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

136 lines
4.1 KiB
JavaScript
Raw Normal View History

2017-12-09 12:42:35 +00:00
(function () {
2018-01-19 11:36:38 +00:00
var visualblocks = (function () {
'use strict';
2017-12-09 12:42:35 +00:00
2018-01-19 11:36:38 +00:00
var Cell = function (initial) {
var value = initial;
var get = function () {
return value;
2017-12-09 12:42:35 +00:00
};
2018-01-19 11:36:38 +00:00
var set = function (v) {
value = v;
2017-12-09 12:42:35 +00:00
};
2018-01-19 11:36:38 +00:00
var clone = function () {
return Cell(get());
2017-12-09 12:42:35 +00:00
};
return {
2018-01-19 11:36:38 +00:00
get: get,
set: set,
clone: clone
2017-12-09 12:42:35 +00:00
};
2018-01-19 11:36:38 +00:00
};
2017-12-09 12:42:35 +00:00
2018-01-19 11:36:38 +00:00
var PluginManager = tinymce.util.Tools.resolve('tinymce.PluginManager');
2017-12-09 12:42:35 +00:00
2018-01-19 11:36:38 +00:00
var fireVisualBlocks = function (editor, state) {
editor.fire('VisualBlocks', { state: state });
};
2018-01-25 16:14:37 +00:00
var $_2ds9kuqtjcun40h5 = { fireVisualBlocks: fireVisualBlocks };
2017-12-09 12:42:35 +00:00
2018-01-19 11:36:38 +00:00
var isEnabledByDefault = function (editor) {
return editor.getParam('visualblocks_default_state', false);
};
var getContentCss = function (editor) {
return editor.settings.visualblocks_content_css;
};
2018-01-25 16:14:37 +00:00
var $_9c4baiqujcun40h8 = {
2018-01-19 11:36:38 +00:00
isEnabledByDefault: isEnabledByDefault,
getContentCss: getContentCss
};
2017-12-09 12:42:35 +00:00
2018-01-19 11:36:38 +00:00
var DOMUtils = tinymce.util.Tools.resolve('tinymce.dom.DOMUtils');
2017-12-09 12:42:35 +00:00
2018-01-19 11:36:38 +00:00
var Tools = tinymce.util.Tools.resolve('tinymce.util.Tools');
2017-12-09 12:42:35 +00:00
2018-01-19 11:36:38 +00:00
var cssId = DOMUtils.DOM.uniqueId();
var load = function (doc, url) {
var linkElements = Tools.toArray(doc.getElementsByTagName('link'));
var matchingLinkElms = Tools.grep(linkElements, function (head) {
return head.id === cssId;
});
if (matchingLinkElms.length === 0) {
var linkElm = DOMUtils.DOM.create('link', {
id: cssId,
rel: 'stylesheet',
href: url
2017-12-09 12:42:35 +00:00
});
2018-01-19 11:36:38 +00:00
doc.getElementsByTagName('head')[0].appendChild(linkElm);
}
};
2018-01-25 16:14:37 +00:00
var $_1icck6qvjcun40h9 = { load: load };
2018-01-19 11:36:38 +00:00
var toggleVisualBlocks = function (editor, pluginUrl, enabledState) {
var dom = editor.dom;
2018-01-25 16:14:37 +00:00
var contentCss = $_9c4baiqujcun40h8.getContentCss(editor);
$_1icck6qvjcun40h9.load(editor.getDoc(), contentCss ? contentCss : pluginUrl + '/css/visualblocks.css');
2018-01-19 11:36:38 +00:00
dom.toggleClass(editor.getBody(), 'mce-visualblocks');
enabledState.set(!enabledState.get());
2018-01-25 16:14:37 +00:00
$_2ds9kuqtjcun40h5.fireVisualBlocks(editor, enabledState.get());
2018-01-19 11:36:38 +00:00
};
2018-01-25 16:14:37 +00:00
var $_cmi1xwqsjcun40h4 = { toggleVisualBlocks: toggleVisualBlocks };
2017-12-09 12:42:35 +00:00
2018-01-19 11:36:38 +00:00
var register = function (editor, pluginUrl, enabledState) {
editor.addCommand('mceVisualBlocks', function () {
2018-01-25 16:14:37 +00:00
$_cmi1xwqsjcun40h4.toggleVisualBlocks(editor, pluginUrl, enabledState);
2018-01-19 11:36:38 +00:00
});
};
2018-01-25 16:14:37 +00:00
var $_4lx296qrjcun40h3 = { register: register };
2017-12-09 12:42:35 +00:00
2018-01-19 11:36:38 +00:00
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');
2017-12-09 12:42:35 +00:00
}
2018-01-19 11:36:38 +00:00
});
editor.on('init', function () {
2018-01-25 16:14:37 +00:00
if ($_9c4baiqujcun40h8.isEnabledByDefault(editor)) {
$_cmi1xwqsjcun40h4.toggleVisualBlocks(editor, pluginUrl, enabledState);
2018-01-19 11:36:38 +00:00
}
});
editor.on('remove', function () {
editor.dom.removeClass(editor.getBody(), 'mce-visualblocks');
});
};
2018-01-25 16:14:37 +00:00
var $_7vtoukqyjcun40ha = { setup: setup };
2018-01-19 11:36:38 +00:00
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);
2017-12-09 12:42:35 +00:00
});
};
2018-01-19 11:36:38 +00:00
};
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
2017-12-09 12:42:35 +00:00
});
2018-01-19 11:36:38 +00:00
};
2018-01-25 16:14:37 +00:00
var $_48nlixqzjcun40hc = { register: register$1 };
2018-01-19 11:36:38 +00:00
PluginManager.add('visualblocks', function (editor, pluginUrl) {
var enabledState = Cell(false);
2018-01-25 16:14:37 +00:00
$_4lx296qrjcun40h3.register(editor, pluginUrl, enabledState);
$_48nlixqzjcun40hc.register(editor, enabledState);
$_7vtoukqyjcun40ha.setup(editor, pluginUrl, enabledState);
2018-01-19 11:36:38 +00:00
});
var Plugin = function () {
};
return Plugin;
2017-12-09 12:42:35 +00:00
2018-01-19 11:36:38 +00:00
}());
})()