1
0
Fork 0
mirror of https://github.com/documize/community.git synced 2025-07-21 06:09:42 +02:00
documize/gui/public/tinymce/plugins/spellchecker/plugin.min.js

1 line
10 KiB
JavaScript
Raw Normal View History

2018-01-19 11:36:38 +00:00
!function(){"use strict";function e(e){return e&&1===e.nodeType&&"false"===e.contentEditable}var t,n=function(e){var t=e,r=function(){return t};return{get:r,set:function(e){t=e},clone:function(){return n(r())}}},r=tinymce.util.Tools.resolve("tinymce.PluginManager"),o=function(e){return!(!/(^|[ ,])tinymcespellchecker([, ]|$)/.test(e.settings.plugins)||!r.get("tinymcespellchecker")||("undefined"!=typeof window.console&&window.console.log&&window.console.log("Spell Checker Pro is incompatible with Spell Checker plugin! Remove 'spellchecker' from the 'plugins' option."),0))},i=function(e){return e.getParam("spellchecker_languages","English=en,Danish=da,Dutch=nl,Finnish=fi,French=fr_FR,German=de,Italian=it,Polish=pl,Portuguese=pt_BR,Spanish=es,Swedish=sv")},c=function(e){var t=e.getParam("language","en");return e.getParam("spellchecker_language",t)},a=function(e){return e.getParam("spellchecker_rpc_url")},l=function(e){return e.getParam("spellchecker_callback")},s=function(e){var t=new RegExp('[^\\s!"#$%&()*+,-./:;<=>?@[\\]^_{|}`\xa7\xa9\xab\xae\xb1\xb6\xb7\xb8\xbb\xbc\xbd\xbe\xbf\xd7\xf7\xa4\u201d\u201c\u201e\xa0\u2002\u2003\u2009]+',"g");return e.getParam("spellchecker_wordchar_pattern",t)},u=tinymce.util.Tools.resolve("tinymce.util.Tools"),d=tinymce.util.Tools.resolve("tinymce.util.URI"),f=tinymce.util.Tools.resolve("tinymce.util.XHR"),h=function(e){return e.fire("SpellcheckStart")},g=function(e){return e.fire("SpellcheckEnd")},m=function(t,n){function r(e,t){if(!e[0])throw new Error("findAndReplaceDOMText cannot handle zero-length matches");return{start:e.index,end:e.index+e[0].length,text:e[0],data:t}}function o(t){var n;if(3===t.nodeType)return t.data;if(m[t.nodeName]&&!g[t.nodeName])return"";if(e(t))return"\n";if(n="",(g[t.nodeName]||p[t.nodeName])&&(n+="\n"),t=t.firstChild)do{n+=o(t)}while(t=t.nextSibling);return n}function i(e){e.parentNode.insertBefore(e.firstChild,e),e.parentNode.removeChild(e)}function c(e){return-1!==e.className.indexOf("mce-spellchecker-word")}function a(e){var n=t.getElementsByTagName("*"),r=[];e="number"==typeof e?""+e:null;for(var o=0;o<n.length;o++){var i=n[o],a=i.getAttribute("data-mce-index");null!==a&&a.length&&c(i)&&(a!==e&&null!==e||r.push(i))}return r}function l(e){for(var t=v.length;t--;)if(v[t]===e)return t;return-1}function s(e){for(var t=0,n=v.length;t<n&&!1!==e(v[t],t);t++);return this}function u(e){var t,n=a(e?l(e):null);for(t=n.length;t--;)i(n[t]);return this}function d(e){var t=a(l(e)),r=n.dom.createRng();return r.setStartBefore(t[0]),r.setEndAfter(t[t.length-1]),r}var f,h,g,m,p,v=[],x=n.dom;return g=n.schema.getBlockElements(),m=n.schema.getWhiteSpaceElements(),p=n.schema.getShortEndedElements(),h=o(t),{text:h,matches:v,each:s,filter:function(e){var t=[];return s(function(n,r){e(n,r)&&t.push(n)}),v=t,this},reset:function(){return v.splice(0,v.length),u(),this},matchFromElement:function(e){return v[e.getAttribute("data-mce-index")]},elementFromMatch:function(e){return a(l(e))[0]},find:function(e,t){if(h&&e.global)for(;f=e.exec(h);)v.push(r(f,t));return this},add:function(e,t,n){return v.push({start:e,end:e+t,text:h.substr(e,t),data:n}),this},wrap:function(n){return v.length&&function(t,n,r){var o,i,c,a,l,s=[],u=0,d=t,f=0;(n=n.slice(0)).sort(function(e,t){return e.start-t.start}),l=n.shift();e:for(;;){if((g[d.nodeName]||p[d.nodeName]||e(d))&&u++,3===d.nodeType&&(!i&&d.length+u>=l.end?(i=d,a=l.end-u):o&&s.push(d),!o&&d.length+u>l.start&&(o=d,c=l.start-u),u+=d.length),o&&i){if(d=r({startNode:o,startNodeIndex:c,endNode:i,endNodeIndex:a,innerNodes:s,match:l.text,matchIndex:f}),u-=i.length-a,o=null,i=null,s=[],l=n.shift(),f++,!l)break}else if(m[d.nodeName]&&!g[d.nodeName]||!d.firstChild){if(d.nextSibling){d=d.nextSibling;continue}}else if(!e(d)){d=d.firstChild;continue}for(;;){if(d.nextSibling){d=d.nextSibling;break}if(d.parentNode===t)break e;d=d.parentNode}}}(t,v,function(e){function t(t,n){var r=v[n];r.stencil||(r.stencil=e(r));var o=r.stencil.cloneNode(!1);return o.setAttribute("data-mce-index",n),t&&o.appendChild(x.doc.createTextNode(t)),o}return function(e){var n,r,o,i=e.start