!function(){"use strict";var n,e,t,r,o=function(n){var e=n,t=function(){return e};return{get:t,set:function(n){e=n},clone:function(){return o(t())}}},u=tinymce.util.Tools.resolve("tinymce.PluginManager"),i=function(n){return{isEnabled:function(){return n.get()}}},c=function(n,e){return n.fire("VisualChars",{state:e})},a={"\xa0":"nbsp","\xad":"shy"},f=function(n,e){var t,r="";for(t in n)r+=t;return new RegExp("["+r+"]",e?"g":"")},l=function(n){var e,t="";for(e in n)t&&(t+=","),t+="span.mce-"+n[e];return t},s={charMap:a,regExp:f(a),regExpGlobal:f(a,!0),selector:l(a),charMapToRegExp:f,charMapToSelector:l},d=function(n){return function(){return n}},m=d(!1),p=d(!0),v={noop:function(){for(var n=[],e=0;e'+n+""},F=function(n,e){var t=[],r=n.dom(),o=A(r.childNodes,M.fromDom);return O(o,function(n){e(n)&&(t=t.concat([n])),t=t.concat(F(n,e))}),t},z={isMatch:function(n){return R.isText(n)&&R.value(n)!==undefined&&s.regExp.test(R.value(n))},filterDescendants:F,findParentElm:function(n,e){for(;n.parentNode;){if(n.parentNode===e)return n;n=n.parentNode}},replaceWithSpans:function(n){return n.replace(s.regExpGlobal,_)}},G=function(t,n){var r,o,e=z.filterDescendants(M.fromDom(n),z.isMatch);O(e,function(n){var e=z.replaceWithSpans(R.value(n));for(o=t.dom.create("div",null,e);r=o.lastChild;)t.dom.insertAfter(r,n.dom());t.dom.remove(n.dom())})},W=function(e,n){var t=e.dom.select(s.selector,n);O(t,function(n){e.dom.remove(n,1)})},I=G,U=W,J=function(n){var e=n.getBody(),t=n.selection.getBookmark(),r=z.findParentElm(n.selection.getNode(),e);r=r!==undefined?r:e,W(n,r),G(n,r),n.selection.moveToBookmark(t)},K=function(n,e){var t,r=n.getBody(),o=n.selection;e.set(!e.get()),c(n,e.get()),t=o.getBookmark(),!0===e.get()?I(n,r):U(n,r),o.moveToBookmark(t)},Q=function(n,e){n.addCommand("mceVisualChars",function(){K(n,e)})},X=tinymce.util.Tools.resolve("tinymce.util.Delay"),Y=function(e,t){var r=X.debounce(function(){J(e)},300);!1!==e.settings.forced_root_block&&e.on("keydown",function(n){!0===t.get()&&(13===n.keyCode?J(e):r())})},Z=function(t){return function(n){var e=n.control;t.on("VisualChars",function(n){e.active(n.state)})}};u.add("visualchars",function(n){var e,t=o(!1);return Q(n,t),(e=n).addButton("visualchars",{active:!1,title:"Show invisible characters",cmd:"mceVisualChars",onPostRender:Z(e)}),e.addMenuItem("visualchars",{text:"Show invisible characters",cmd:"mceVisualChars",onPostRender:Z(e),selectable:!0,context:"view",prependToContext:!0}),Y(n,t),i(t)})}();