(function () { var visualblocks = (function () { 'use strict'; var Cell = function (initial) { var value = initial; var get = function () { return value; }; var set = function (v) { value = v; }; var clone = function () { return Cell(get()); }; return { get: get, set: set, clone: clone }; }; var global = tinymce.util.Tools.resolve('tinymce.PluginManager'); var fireVisualBlocks = function (editor, state) { editor.fire('VisualBlocks', { state: state }); }; var $_cfd0xesjjjgwefha = { fireVisualBlocks: fireVisualBlocks }; var isEnabledByDefault = function (editor) { return editor.getParam('visualblocks_default_state', false); }; var getContentCss = function (editor) { return editor.settings.visualblocks_content_css; }; var $_99gi40skjjgwefhb = { isEnabledByDefault: isEnabledByDefault, getContentCss: getContentCss }; var global$1 = tinymce.util.Tools.resolve('tinymce.dom.DOMUtils'); var global$2 = tinymce.util.Tools.resolve('tinymce.util.Tools'); var cssId = global$1.DOM.uniqueId(); var load = function (doc, url) { var linkElements = global$2.toArray(doc.getElementsByTagName('link')); var matchingLinkElms = global$2.grep(linkElements, function (head) { return head.id === cssId; }); if (matchingLinkElms.length === 0) { var linkElm = global$1.DOM.create('link', { id: cssId, rel: 'stylesheet', href: url }); doc.getElementsByTagName('head')[0].appendChild(linkElm); } }; var $_1im807sljjgwefhc = { load: load }; var toggleVisualBlocks = function (editor, pluginUrl, enabledState) { var dom = editor.dom; var contentCss = $_99gi40skjjgwefhb.getContentCss(editor); $_1im807sljjgwefhc.load(editor.getDoc(), contentCss ? contentCss : pluginUrl + '/css/visualblocks.css'); dom.toggleClass(editor.getBody(), 'mce-visualblocks'); enabledState.set(!enabledState.get()); $_cfd0xesjjjgwefha.fireVisualBlocks(editor, enabledState.get()); }; var $_apq7q0sijjgwefh9 = { toggleVisualBlocks: toggleVisualBlocks }; var register = function (editor, pluginUrl, enabledState) { editor.addCommand('mceVisualBlocks', function () { $_apq7q0sijjgwefh9.toggleVisualBlocks(editor, pluginUrl, enabledState); }); }; var $_8z3ztoshjjgwefh8 = { register: register }; var setup = function (editor, pluginUrl, enabledState) { editor.on('PreviewFormats AfterPreviewFormats', function (e) { if (enabledState.get()) { editor.dom.toggleClass(editor.getBody(), 'mce-visualblocks', e.type === 'afterpreviewformats'); } }); editor.on('init', function () { if ($_99gi40skjjgwefhb.isEnabledByDefault(editor)) { $_apq7q0sijjgwefh9.toggleVisualBlocks(editor, pluginUrl, enabledState); } }); editor.on('remove', function () { editor.dom.removeClass(editor.getBody(), 'mce-visualblocks'); }); }; var $_39i156sojjgwefhe = { setup: setup }; var toggleActiveState = function (editor, enabledState) { return function (e) { var ctrl = e.control; ctrl.active(enabledState.get()); editor.on('VisualBlocks', function (e) { ctrl.active(e.state); }); }; }; var register$1 = function (editor, enabledState) { editor.addButton('visualblocks', { active: false, title: 'Show blocks', cmd: 'mceVisualBlocks', onPostRender: toggleActiveState(editor, enabledState) }); editor.addMenuItem('visualblocks', { text: 'Show blocks', cmd: 'mceVisualBlocks', onPostRender: toggleActiveState(editor, enabledState), selectable: true, context: 'view', prependToContext: true }); }; var $_6iz4uwspjjgwefhf = { register: register$1 }; global.add('visualblocks', function (editor, pluginUrl) { var enabledState = Cell(false); $_8z3ztoshjjgwefh8.register(editor, pluginUrl, enabledState); $_6iz4uwspjjgwefhf.register(editor, enabledState); $_39i156sojjgwefhe.setup(editor, pluginUrl, enabledState); }); function Plugin () { } return Plugin; }()); })();