plugin.js
4.09 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
(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 PluginManager = tinymce.util.Tools.resolve('tinymce.PluginManager');
var fireVisualBlocks = function (editor, state) {
editor.fire('VisualBlocks', { state: state });
};
var $_3jospyqtjd09eytu = { fireVisualBlocks: fireVisualBlocks };
var isEnabledByDefault = function (editor) {
return editor.getParam('visualblocks_default_state', false);
};
var getContentCss = function (editor) {
return editor.settings.visualblocks_content_css;
};
var $_1qoc0hqujd09eyu1 = {
isEnabledByDefault: isEnabledByDefault,
getContentCss: getContentCss
};
var DOMUtils = tinymce.util.Tools.resolve('tinymce.dom.DOMUtils');
var Tools = tinymce.util.Tools.resolve('tinymce.util.Tools');
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
});
doc.getElementsByTagName('head')[0].appendChild(linkElm);
}
};
var $_ekswvdqvjd09eyu3 = { load: load };
var toggleVisualBlocks = function (editor, pluginUrl, enabledState) {
var dom = editor.dom;
var contentCss = $_1qoc0hqujd09eyu1.getContentCss(editor);
$_ekswvdqvjd09eyu3.load(editor.getDoc(), contentCss ? contentCss : pluginUrl + '/css/visualblocks.css');
dom.toggleClass(editor.getBody(), 'mce-visualblocks');
enabledState.set(!enabledState.get());
$_3jospyqtjd09eytu.fireVisualBlocks(editor, enabledState.get());
};
var $_e5lq04qsjd09eyts = { toggleVisualBlocks: toggleVisualBlocks };
var register = function (editor, pluginUrl, enabledState) {
editor.addCommand('mceVisualBlocks', function () {
$_e5lq04qsjd09eyts.toggleVisualBlocks(editor, pluginUrl, enabledState);
});
};
var $_dwdf1dqrjd09eytr = { 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 ($_1qoc0hqujd09eyu1.isEnabledByDefault(editor)) {
$_e5lq04qsjd09eyts.toggleVisualBlocks(editor, pluginUrl, enabledState);
}
});
editor.on('remove', function () {
editor.dom.removeClass(editor.getBody(), 'mce-visualblocks');
});
};
var $_cetkyyqyjd09eyu5 = { 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 $_24lut4qzjd09eyu7 = { register: register$1 };
PluginManager.add('visualblocks', function (editor, pluginUrl) {
var enabledState = Cell(false);
$_dwdf1dqrjd09eytr.register(editor, pluginUrl, enabledState);
$_24lut4qzjd09eyu7.register(editor, enabledState);
$_cetkyyqyjd09eyu5.setup(editor, pluginUrl, enabledState);
});
function Plugin () {
}
return Plugin;
}());
})()