tenon 1.1.2 → 1.1.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/lib/tenon/version.rb +1 -1
- metadata +1 -60
- data/app/assets/javascripts/ckeditor/samples/css/samples.css +0 -1640
- data/app/assets/javascripts/ckeditor/samples/img/github-top.png +0 -0
- data/app/assets/javascripts/ckeditor/samples/img/header-bg.png +0 -0
- data/app/assets/javascripts/ckeditor/samples/img/header-separator.png +0 -0
- data/app/assets/javascripts/ckeditor/samples/img/logo.png +0 -0
- data/app/assets/javascripts/ckeditor/samples/img/navigation-tip.png +0 -0
- data/app/assets/javascripts/ckeditor/samples/index.html +0 -128
- data/app/assets/javascripts/ckeditor/samples/js/sample.js +0 -53
- data/app/assets/javascripts/ckeditor/samples/js/sf.js +0 -17
- data/app/assets/javascripts/ckeditor/samples/old/ajax.html +0 -85
- data/app/assets/javascripts/ckeditor/samples/old/api.html +0 -210
- data/app/assets/javascripts/ckeditor/samples/old/appendto.html +0 -59
- data/app/assets/javascripts/ckeditor/samples/old/assets/inlineall/logo.png +0 -0
- data/app/assets/javascripts/ckeditor/samples/old/assets/outputxhtml/outputxhtml.css +0 -204
- data/app/assets/javascripts/ckeditor/samples/old/assets/posteddata.php +0 -59
- data/app/assets/javascripts/ckeditor/samples/old/assets/sample.jpg +0 -0
- data/app/assets/javascripts/ckeditor/samples/old/assets/uilanguages/languages.js +0 -7
- data/app/assets/javascripts/ckeditor/samples/old/datafiltering.html +0 -508
- data/app/assets/javascripts/ckeditor/samples/old/dialog/assets/my_dialog.js +0 -48
- data/app/assets/javascripts/ckeditor/samples/old/dialog/dialog.html +0 -190
- data/app/assets/javascripts/ckeditor/samples/old/divreplace.html +0 -144
- data/app/assets/javascripts/ckeditor/samples/old/enterkey/enterkey.html +0 -106
- data/app/assets/javascripts/ckeditor/samples/old/index.html +0 -125
- data/app/assets/javascripts/ckeditor/samples/old/inlineall.html +0 -314
- data/app/assets/javascripts/ckeditor/samples/old/inlinebycode.html +0 -124
- data/app/assets/javascripts/ckeditor/samples/old/inlinetextarea.html +0 -113
- data/app/assets/javascripts/ckeditor/samples/old/jquery.html +0 -103
- data/app/assets/javascripts/ckeditor/samples/old/readonly.html +0 -76
- data/app/assets/javascripts/ckeditor/samples/old/replacebyclass.html +0 -60
- data/app/assets/javascripts/ckeditor/samples/old/replacebycode.html +0 -59
- data/app/assets/javascripts/ckeditor/samples/old/sample.css +0 -357
- data/app/assets/javascripts/ckeditor/samples/old/sample.js +0 -50
- data/app/assets/javascripts/ckeditor/samples/old/sample_posteddata.php +0 -16
- data/app/assets/javascripts/ckeditor/samples/old/sourcedialog/sourcedialog.html +0 -121
- data/app/assets/javascripts/ckeditor/samples/old/tabindex.html +0 -78
- data/app/assets/javascripts/ckeditor/samples/old/toolbar/toolbar.html +0 -235
- data/app/assets/javascripts/ckeditor/samples/old/uicolor.html +0 -72
- data/app/assets/javascripts/ckeditor/samples/old/uilanguages.html +0 -122
- data/app/assets/javascripts/ckeditor/samples/old/wysiwygarea/fullpage.html +0 -80
- data/app/assets/javascripts/ckeditor/samples/old/xhtmlstyle.html +0 -234
- data/app/assets/javascripts/ckeditor/samples/toolbarconfigurator/css/fontello.css +0 -55
- data/app/assets/javascripts/ckeditor/samples/toolbarconfigurator/font/LICENSE.txt +0 -10
- data/app/assets/javascripts/ckeditor/samples/toolbarconfigurator/font/config.json +0 -28
- data/app/assets/javascripts/ckeditor/samples/toolbarconfigurator/font/fontello.eot +0 -0
- data/app/assets/javascripts/ckeditor/samples/toolbarconfigurator/font/fontello.svg +0 -14
- data/app/assets/javascripts/ckeditor/samples/toolbarconfigurator/font/fontello.ttf +0 -0
- data/app/assets/javascripts/ckeditor/samples/toolbarconfigurator/font/fontello.woff +0 -0
- data/app/assets/javascripts/ckeditor/samples/toolbarconfigurator/index.html +0 -446
- data/app/assets/javascripts/ckeditor/samples/toolbarconfigurator/js/abstracttoolbarmodifier.js +0 -13
- data/app/assets/javascripts/ckeditor/samples/toolbarconfigurator/js/fulltoolbareditor.js +0 -9
- data/app/assets/javascripts/ckeditor/samples/toolbarconfigurator/js/toolbarmodifier.js +0 -33
- data/app/assets/javascripts/ckeditor/samples/toolbarconfigurator/js/toolbartextmodifier.js +0 -14
- data/app/assets/javascripts/ckeditor/samples/toolbarconfigurator/lib/codemirror/LICENSE +0 -19
- data/app/assets/javascripts/ckeditor/samples/toolbarconfigurator/lib/codemirror/codemirror.css +0 -325
- data/app/assets/javascripts/ckeditor/samples/toolbarconfigurator/lib/codemirror/codemirror.js +0 -288
- data/app/assets/javascripts/ckeditor/samples/toolbarconfigurator/lib/codemirror/javascript.js +0 -25
- data/app/assets/javascripts/ckeditor/samples/toolbarconfigurator/lib/codemirror/neo.css +0 -36
- data/app/assets/javascripts/ckeditor/samples/toolbarconfigurator/lib/codemirror/show-hint.css +0 -38
- data/app/assets/javascripts/ckeditor/samples/toolbarconfigurator/lib/codemirror/show-hint.js +0 -16
|
@@ -1,446 +0,0 @@
|
|
|
1
|
-
<!DOCTYPE html>
|
|
2
|
-
<!--
|
|
3
|
-
Copyright (c) 2003-2015, CKSource - Frederico Knabben. All rights reserved.
|
|
4
|
-
For licensing, see LICENSE.md or http://ckeditor.com/license
|
|
5
|
-
-->
|
|
6
|
-
<!--[if IE 8]><html class="ie8"><![endif]-->
|
|
7
|
-
<!--[if gt IE 8]><html><![endif]-->
|
|
8
|
-
<!--[if !IE]><!--><html><!--<![endif]-->
|
|
9
|
-
<head>
|
|
10
|
-
<meta charset="utf-8">
|
|
11
|
-
<title>Toolbar Configurator</title>
|
|
12
|
-
<script src="../../ckeditor.js"></script>
|
|
13
|
-
<script>
|
|
14
|
-
if ( CKEDITOR.env.ie && CKEDITOR.env.version < 9 )
|
|
15
|
-
CKEDITOR.tools.enableHtml5Elements( document );
|
|
16
|
-
</script>
|
|
17
|
-
<link rel="stylesheet" href="lib/codemirror/codemirror.css">
|
|
18
|
-
<link rel="stylesheet" href="lib/codemirror/show-hint.css">
|
|
19
|
-
<link rel="stylesheet" href="lib/codemirror/neo.css">
|
|
20
|
-
<link rel="stylesheet" href="css/fontello.css">
|
|
21
|
-
<link rel="stylesheet" href="../css/samples.css">
|
|
22
|
-
</head>
|
|
23
|
-
<body id="toolbar">
|
|
24
|
-
|
|
25
|
-
<nav class="navigation-a">
|
|
26
|
-
<div class="grid-container">
|
|
27
|
-
<ul class="navigation-a-left grid-width-70">
|
|
28
|
-
<li><a href="http://ckeditor.com">Project Homepage</a></li>
|
|
29
|
-
<li><a href="http://dev.ckeditor.com/">I found a bug</a></li>
|
|
30
|
-
<li><a href="http://github.com/ckeditor/ckeditor-dev" class="icon-pos-right icon-navigation-a-github">Fork CKEditor on GitHub</a></li>
|
|
31
|
-
</ul>
|
|
32
|
-
<ul class="navigation-a-right grid-width-30">
|
|
33
|
-
<li><a href="http://ckeditor.com/blog-list">CKEditor Blog</a></li>
|
|
34
|
-
</ul>
|
|
35
|
-
</div>
|
|
36
|
-
</nav>
|
|
37
|
-
|
|
38
|
-
<header class="header-a">
|
|
39
|
-
<div class="grid-container">
|
|
40
|
-
<h1 class="header-a-logo grid-width-30">
|
|
41
|
-
<a href="../index.html"><img src="../img/logo.png" alt="CKEditor Logo"></a>
|
|
42
|
-
</h1>
|
|
43
|
-
<nav class="navigation-b grid-width-70">
|
|
44
|
-
<ul>
|
|
45
|
-
<li><a href="../index.html" class="button-a">Start</a></li>
|
|
46
|
-
<li><a href="index.html" class="button-a button-a-background">Toolbar configurator</a></li>
|
|
47
|
-
</ul>
|
|
48
|
-
</nav>
|
|
49
|
-
</div>
|
|
50
|
-
</header>
|
|
51
|
-
|
|
52
|
-
<main>
|
|
53
|
-
<div class="adjoined-top">
|
|
54
|
-
<div class="grid-container">
|
|
55
|
-
<div class="content grid-width-100">
|
|
56
|
-
<div class="grid-container-nested">
|
|
57
|
-
<h1 class="grid-width-60">
|
|
58
|
-
Toolbar Configurator
|
|
59
|
-
<a href="#help-content" type="button" title="Configurator help" id="help" class="button-a button-a-background button-a-no-text icon-pos-left icon-question-mark">Help</a>
|
|
60
|
-
</h1>
|
|
61
|
-
|
|
62
|
-
<div class="grid-width-40 grid-switch-magic">
|
|
63
|
-
<div class="switch">
|
|
64
|
-
<span class="balloon-a balloon-a-se">Select configurator type</span>
|
|
65
|
-
<input type="radio" name="radio" data-num="1" id="radio-basic" />
|
|
66
|
-
<input type="radio" name="radio" data-num="2" id="radio-advanced" />
|
|
67
|
-
<label data-for="1" for="radio-basic">Basic</label>
|
|
68
|
-
<span class="switch-inner">
|
|
69
|
-
<span class="handler"></span>
|
|
70
|
-
</span>
|
|
71
|
-
<label data-for="2" for="radio-advanced">Advanced</label>
|
|
72
|
-
</div>
|
|
73
|
-
</div>
|
|
74
|
-
</div>
|
|
75
|
-
</div>
|
|
76
|
-
</div>
|
|
77
|
-
</div>
|
|
78
|
-
<div class="adjoined-bottom">
|
|
79
|
-
<div class="grid-container">
|
|
80
|
-
<div class="grid-width-100">
|
|
81
|
-
<div class="editors-container">
|
|
82
|
-
<div id="editor-basic"></div>
|
|
83
|
-
<div id="editor-advanced"></div>
|
|
84
|
-
</div>
|
|
85
|
-
</div>
|
|
86
|
-
</div>
|
|
87
|
-
</div>
|
|
88
|
-
|
|
89
|
-
<div class="grid-container configurator">
|
|
90
|
-
<div class="content grid-width-100">
|
|
91
|
-
<div class="configurator">
|
|
92
|
-
<div>
|
|
93
|
-
<div id="toolbarModifierWrapper"></div>
|
|
94
|
-
</div>
|
|
95
|
-
</div>
|
|
96
|
-
</div>
|
|
97
|
-
</div>
|
|
98
|
-
|
|
99
|
-
<div id="help-content">
|
|
100
|
-
<div class="grid-container">
|
|
101
|
-
<div class="grid-width-100">
|
|
102
|
-
<h2>What Am I Doing Here?</h2>
|
|
103
|
-
|
|
104
|
-
<div class="grid-container grid-container-nested">
|
|
105
|
-
<div class="basic">
|
|
106
|
-
<div class="grid-width-50">
|
|
107
|
-
<p>Arrange <a href="http://docs.ckeditor.com/#!/api/CKEDITOR.config-cfg-toolbarGroups">toolbar groups</a>, toggle <a href="http://docs.ckeditor.com/#!/api/CKEDITOR.config-cfg-removeButtons">button visibility</a> according to your needs and get your toolbar configuration.</p>
|
|
108
|
-
<p>You can replace the content of the <a href="../../config.js"><code>config.js</code></a> file with the generated configuration. If you already set some configuration options you will need to merge both configurations.</p>
|
|
109
|
-
</div>
|
|
110
|
-
<div class="grid-width-50">
|
|
111
|
-
<p>Read more about different ways of <a href="http://docs.ckeditor.com/#!/guide/dev_configuration">setting configuration</a> and do not forget about <strong>clearing browser cache</strong>.</p>
|
|
112
|
-
<p>Arranging toolbar groups is the recommended way of configuring the toolbar, but if you need more freedom you can use the <a href="#advanced">advanced configurator</a>.</p>
|
|
113
|
-
</div>
|
|
114
|
-
</div>
|
|
115
|
-
<div class="advanced" style="display: none;">
|
|
116
|
-
<div class="grid-width-50">
|
|
117
|
-
<p>With this code editor you can edit your <a href="http://docs.ckeditor.com/#!/api/CKEDITOR.config-cfg-toolbar">toolbar configuration</a> live.</p>
|
|
118
|
-
<p>You can replace the content of the <a href="../../config.js"><code>config.js</code></a> file with the generated configuration. If you already set some configuration options you will need to merge both configurations.</p>
|
|
119
|
-
</div>
|
|
120
|
-
<div class="grid-width-50">
|
|
121
|
-
<p>Read more about different ways of <a href="http://docs.ckeditor.com/#!/guide/dev_configuration">setting configuration</a> and do not forget about <strong>clearing browser cache</strong>.</p>
|
|
122
|
-
</div>
|
|
123
|
-
</div>
|
|
124
|
-
</div>
|
|
125
|
-
|
|
126
|
-
<p class="grid-container grid-container-nested">
|
|
127
|
-
<button type="button" class="help-content-close grid-width-100 button-a button-a-background">Got it. Let's play!</button>
|
|
128
|
-
</p>
|
|
129
|
-
</div>
|
|
130
|
-
</div>
|
|
131
|
-
</div>
|
|
132
|
-
</main>
|
|
133
|
-
|
|
134
|
-
<footer class="footer-a grid-container">
|
|
135
|
-
<p class="grid-width-100">
|
|
136
|
-
CKEditor – The text editor for the Internet – <a class="samples" href="http://ckeditor.com/">http://ckeditor.com</a>
|
|
137
|
-
</p>
|
|
138
|
-
<p class="grid-width-100" id="copy">
|
|
139
|
-
Copyright © 2003-2015, <a class="samples" href="http://cksource.com/">CKSource</a> – Frederico Knabben. All rights reserved.
|
|
140
|
-
</p>
|
|
141
|
-
</footer>
|
|
142
|
-
|
|
143
|
-
<script src="lib/codemirror/codemirror.js"></script>
|
|
144
|
-
<script src="lib/codemirror/javascript.js"></script>
|
|
145
|
-
<script src="lib/codemirror/show-hint.js"></script>
|
|
146
|
-
|
|
147
|
-
<script src="js/fulltoolbareditor.js"></script>
|
|
148
|
-
<script src="js/abstracttoolbarmodifier.js"></script>
|
|
149
|
-
<script src="js/toolbarmodifier.js"></script>
|
|
150
|
-
<script src="js/toolbartextmodifier.js"></script>
|
|
151
|
-
<script src="../js/sf.js"></script>
|
|
152
|
-
|
|
153
|
-
<script>
|
|
154
|
-
( function() {
|
|
155
|
-
'use strict';
|
|
156
|
-
|
|
157
|
-
var mode = ( window.location.hash.substr( 1 ) === 'advanced' ) ? 'advanced' : 'basic',
|
|
158
|
-
configuratorSection = CKEDITOR.document.findOne( 'main > .grid-container.configurator' ),
|
|
159
|
-
basicInstruction = CKEDITOR.document.findOne( '#help-content .basic' ),
|
|
160
|
-
advancedInstruction = CKEDITOR.document.findOne( '#help-content .advanced' ),
|
|
161
|
-
|
|
162
|
-
// Configurator mode switcher.
|
|
163
|
-
modeSwitchBasic = CKEDITOR.document.getById( 'radio-basic' ),
|
|
164
|
-
modeSwitchAdvanced = CKEDITOR.document.getById( 'radio-advanced' );
|
|
165
|
-
|
|
166
|
-
// Initial setup
|
|
167
|
-
function updateSwitcher() {
|
|
168
|
-
if ( mode === 'advanced' ) {
|
|
169
|
-
modeSwitchAdvanced.$.checked = true;
|
|
170
|
-
} else {
|
|
171
|
-
modeSwitchBasic.$.checked = true;
|
|
172
|
-
}
|
|
173
|
-
}
|
|
174
|
-
|
|
175
|
-
updateSwitcher();
|
|
176
|
-
|
|
177
|
-
CKEDITOR.document.getWindow().on( 'hashchange', function( e ) {
|
|
178
|
-
var hash = window.location.hash.substr( 1 );
|
|
179
|
-
if ( !( hash === 'advanced' || hash === 'basic' ) ) {
|
|
180
|
-
return;
|
|
181
|
-
}
|
|
182
|
-
mode = hash;
|
|
183
|
-
onToolbarsDone( mode );
|
|
184
|
-
} );
|
|
185
|
-
|
|
186
|
-
CKEDITOR.document.getWindow().on( 'resize', function() {
|
|
187
|
-
updateToolbar( ( mode === 'basic' ? toolbarModifier : toolbarTextModifier )[ 'editorInstance' ] );
|
|
188
|
-
} );
|
|
189
|
-
|
|
190
|
-
function onRefresh( modifier ) {
|
|
191
|
-
modifier = modifier || this;
|
|
192
|
-
|
|
193
|
-
if ( mode === 'basic' && modifier instanceof ToolbarConfigurator.ToolbarTextModifier ) {
|
|
194
|
-
return;
|
|
195
|
-
}
|
|
196
|
-
|
|
197
|
-
// CodeMirror container becomes visible, so we need to refresh and to avoid rendering problems.
|
|
198
|
-
if ( mode === 'advanced' && modifier instanceof ToolbarConfigurator.ToolbarTextModifier ) {
|
|
199
|
-
modifier.codeContainer.refresh();
|
|
200
|
-
}
|
|
201
|
-
|
|
202
|
-
updateToolbar( modifier.editorInstance );
|
|
203
|
-
}
|
|
204
|
-
|
|
205
|
-
function updateToolbar( editor ) {
|
|
206
|
-
var editorContainer = editor.container;
|
|
207
|
-
|
|
208
|
-
// Not always editor is loaded.
|
|
209
|
-
if ( !editorContainer ) {
|
|
210
|
-
return;
|
|
211
|
-
}
|
|
212
|
-
|
|
213
|
-
var displayStyle = editorContainer.getStyle( 'display' );
|
|
214
|
-
|
|
215
|
-
editorContainer.setStyle( 'display', 'block' );
|
|
216
|
-
|
|
217
|
-
var newHeight = editorContainer.getSize( 'height' );
|
|
218
|
-
|
|
219
|
-
var newMarginTop = parseInt( editorContainer.getComputedStyle( 'margin-top' ), 10 );
|
|
220
|
-
newMarginTop = ( isNaN( newMarginTop ) ? 0 : Number( newMarginTop ) );
|
|
221
|
-
|
|
222
|
-
var newMarginBottom = parseInt( editorContainer.getComputedStyle( 'margin-bottom' ), 10 );
|
|
223
|
-
newMarginBottom = ( isNaN( newMarginBottom ) ? 0 : Number( newMarginBottom ) );
|
|
224
|
-
|
|
225
|
-
var result = newHeight + newMarginTop + newMarginBottom;
|
|
226
|
-
|
|
227
|
-
editorContainer.setStyle( 'display', displayStyle );
|
|
228
|
-
|
|
229
|
-
editor.container.getAscendant( 'div' ).setStyle( 'height', result + 'px' );
|
|
230
|
-
}
|
|
231
|
-
|
|
232
|
-
var toolbarModifier = new ToolbarConfigurator.ToolbarModifier( 'editor-basic' );
|
|
233
|
-
|
|
234
|
-
var done = 0;
|
|
235
|
-
toolbarModifier.init( onToolbarInit );
|
|
236
|
-
toolbarModifier.onRefresh = onRefresh;
|
|
237
|
-
|
|
238
|
-
CKEDITOR.document.getById( 'toolbarModifierWrapper' ).append( toolbarModifier.mainContainer );
|
|
239
|
-
|
|
240
|
-
var toolbarTextModifier = new ToolbarConfigurator.ToolbarTextModifier( 'editor-advanced' );
|
|
241
|
-
toolbarTextModifier.init( onToolbarInit );
|
|
242
|
-
toolbarTextModifier.onRefresh = onRefresh;
|
|
243
|
-
|
|
244
|
-
function onToolbarInit() {
|
|
245
|
-
if ( ++done === 2 ) {
|
|
246
|
-
onToolbarsDone();
|
|
247
|
-
|
|
248
|
-
positionSticky.watch( CKEDITOR.document.findOne( '.toolbar' ), function() {
|
|
249
|
-
return mode === 'advanced';
|
|
250
|
-
} );
|
|
251
|
-
}
|
|
252
|
-
}
|
|
253
|
-
|
|
254
|
-
function onToolbarsDone() {
|
|
255
|
-
if ( mode === 'basic' ) {
|
|
256
|
-
toggleModeBasic( false );
|
|
257
|
-
} else {
|
|
258
|
-
toggleModeAdvanced( false );
|
|
259
|
-
}
|
|
260
|
-
|
|
261
|
-
updateSwitcher();
|
|
262
|
-
|
|
263
|
-
setTimeout( function() {
|
|
264
|
-
CKEDITOR.document.findOne( '.editors-container' ).addClass( 'active' );
|
|
265
|
-
CKEDITOR.document.findOne( '#toolbarModifierWrapper' ).addClass( 'active' );
|
|
266
|
-
}, 200 );
|
|
267
|
-
}
|
|
268
|
-
|
|
269
|
-
CKEDITOR.document.getById( 'toolbarModifierWrapper' ).append( toolbarTextModifier.mainContainer );
|
|
270
|
-
|
|
271
|
-
function toogleModeSwitch( onElement, offElement, onModifier, offModifier ) {
|
|
272
|
-
onElement.addClass( 'fancy-button-active' );
|
|
273
|
-
offElement.removeClass( 'fancy-button-active' );
|
|
274
|
-
|
|
275
|
-
onModifier.showUI();
|
|
276
|
-
offModifier.hideUI();
|
|
277
|
-
}
|
|
278
|
-
|
|
279
|
-
function toggleModeBasic( callOnRefresh ) {
|
|
280
|
-
callOnRefresh = ( callOnRefresh !== false );
|
|
281
|
-
mode = 'basic';
|
|
282
|
-
window.location.hash = '#basic';
|
|
283
|
-
toogleModeSwitch( modeSwitchBasic, modeSwitchAdvanced, toolbarModifier, toolbarTextModifier );
|
|
284
|
-
|
|
285
|
-
configuratorSection.removeClass( 'freed-width' );
|
|
286
|
-
basicInstruction.show();
|
|
287
|
-
advancedInstruction.hide();
|
|
288
|
-
|
|
289
|
-
callOnRefresh && onRefresh( toolbarModifier );
|
|
290
|
-
}
|
|
291
|
-
|
|
292
|
-
function toggleModeAdvanced( callOnRefresh ) {
|
|
293
|
-
callOnRefresh = ( callOnRefresh !== false );
|
|
294
|
-
mode = 'advanced';
|
|
295
|
-
window.location.hash = '#advanced';
|
|
296
|
-
toogleModeSwitch( modeSwitchAdvanced, modeSwitchBasic, toolbarTextModifier, toolbarModifier );
|
|
297
|
-
|
|
298
|
-
configuratorSection.addClass( 'freed-width' );
|
|
299
|
-
advancedInstruction.show();
|
|
300
|
-
basicInstruction.hide();
|
|
301
|
-
|
|
302
|
-
callOnRefresh && onRefresh( toolbarTextModifier );
|
|
303
|
-
}
|
|
304
|
-
|
|
305
|
-
modeSwitchBasic.on( 'click', toggleModeBasic );
|
|
306
|
-
modeSwitchAdvanced.on( 'click', toggleModeAdvanced );
|
|
307
|
-
|
|
308
|
-
//
|
|
309
|
-
// Position:sticky for the toolbar.
|
|
310
|
-
//
|
|
311
|
-
|
|
312
|
-
// Will make elements behave like they were styled with position:sticky.
|
|
313
|
-
var positionSticky = {
|
|
314
|
-
// Store object: {
|
|
315
|
-
// element: CKEDITOR.dom.element, // Element which will float.
|
|
316
|
-
// placeholder: CKEDITOR.dom.element, // Placeholder which is place to prevent page bounce.
|
|
317
|
-
// isFixed: boolean // Whether element float now.
|
|
318
|
-
// }
|
|
319
|
-
watched: [],
|
|
320
|
-
|
|
321
|
-
active: [],
|
|
322
|
-
|
|
323
|
-
staticContainer: null,
|
|
324
|
-
|
|
325
|
-
init: function() {
|
|
326
|
-
var element = CKEDITOR.dom.element.createFromHtml(
|
|
327
|
-
'<div class="staticContainer">' +
|
|
328
|
-
'<div class="grid-container" >' +
|
|
329
|
-
'<div class="grid-width-100">' +
|
|
330
|
-
'<div class="inner"></div>' +
|
|
331
|
-
'</div>' +
|
|
332
|
-
'</div>' +
|
|
333
|
-
'</div>' );
|
|
334
|
-
|
|
335
|
-
this.staticContainer = element.findOne( '.inner' );
|
|
336
|
-
|
|
337
|
-
CKEDITOR.document.getBody().append( element );
|
|
338
|
-
},
|
|
339
|
-
|
|
340
|
-
watch: function( element, preventFunc ) {
|
|
341
|
-
this.watched.push( {
|
|
342
|
-
element: element,
|
|
343
|
-
placeholder: new CKEDITOR.dom.element( 'div' ),
|
|
344
|
-
isFixed: false,
|
|
345
|
-
preventFunc: preventFunc
|
|
346
|
-
} );
|
|
347
|
-
},
|
|
348
|
-
|
|
349
|
-
checkAll: function() {
|
|
350
|
-
for ( var i = 0; i < this.watched.length; i++ ) {
|
|
351
|
-
this.check( this.watched[ i ] );
|
|
352
|
-
}
|
|
353
|
-
},
|
|
354
|
-
|
|
355
|
-
check: function( element ) {
|
|
356
|
-
var isFixed = element.isFixed;
|
|
357
|
-
var shouldBeFixed = this.shouldBeFixed( element );
|
|
358
|
-
|
|
359
|
-
// Nothing to be done.
|
|
360
|
-
if ( isFixed === shouldBeFixed ) {
|
|
361
|
-
return;
|
|
362
|
-
}
|
|
363
|
-
|
|
364
|
-
var placeholder = element.placeholder;
|
|
365
|
-
|
|
366
|
-
if ( isFixed ) {
|
|
367
|
-
// Unfixing.
|
|
368
|
-
|
|
369
|
-
element.element.insertBefore( placeholder );
|
|
370
|
-
placeholder.remove();
|
|
371
|
-
|
|
372
|
-
element.element.removeStyle( 'margin' );
|
|
373
|
-
|
|
374
|
-
this.active.splice( CKEDITOR.tools.indexOf( this.active, element ), 1 );
|
|
375
|
-
|
|
376
|
-
} else {
|
|
377
|
-
// Fixing.
|
|
378
|
-
placeholder.setStyle( 'width', element.element.getSize( 'width' ) + 'px' );
|
|
379
|
-
placeholder.setStyle( 'height', element.element.getSize( 'height' ) + 'px' );
|
|
380
|
-
placeholder.setStyle( 'margin-bottom', element.element.getComputedStyle( 'margin-bottom' ) );
|
|
381
|
-
placeholder.setStyle( 'display', element.element.getComputedStyle( 'display' ) );
|
|
382
|
-
placeholder.insertAfter( element.element );
|
|
383
|
-
|
|
384
|
-
this.staticContainer.append( element.element );
|
|
385
|
-
|
|
386
|
-
this.active.push( element );
|
|
387
|
-
}
|
|
388
|
-
|
|
389
|
-
element.isFixed = !element.isFixed;
|
|
390
|
-
},
|
|
391
|
-
|
|
392
|
-
shouldBeFixed: function( element ) {
|
|
393
|
-
if ( element.preventFunc && element.preventFunc() ) {
|
|
394
|
-
return false;
|
|
395
|
-
}
|
|
396
|
-
|
|
397
|
-
// If element is already fixed we are checking it's placeholder.
|
|
398
|
-
var related = ( element.isFixed ? element.placeholder : element.element ),
|
|
399
|
-
clientRect = related.$.getBoundingClientRect(),
|
|
400
|
-
staticHeight = this.staticContainer.getSize('height' ),
|
|
401
|
-
elemHeight = element.element.getSize( 'height' );
|
|
402
|
-
|
|
403
|
-
if ( element.isFixed ) {
|
|
404
|
-
return ( clientRect.top + elemHeight < staticHeight );
|
|
405
|
-
} else {
|
|
406
|
-
return ( clientRect.top < staticHeight );
|
|
407
|
-
}
|
|
408
|
-
}
|
|
409
|
-
};
|
|
410
|
-
|
|
411
|
-
positionSticky.init();
|
|
412
|
-
|
|
413
|
-
CKEDITOR.document.getWindow().on( 'scroll',
|
|
414
|
-
new CKEDITOR.tools.eventsBuffer( 100, positionSticky.checkAll, positionSticky ).input
|
|
415
|
-
);
|
|
416
|
-
|
|
417
|
-
// Make the toolbar sticky.
|
|
418
|
-
positionSticky.watch( CKEDITOR.document.findOne( '.editors-container' ) );
|
|
419
|
-
|
|
420
|
-
// Help button and help-content.
|
|
421
|
-
( function() {
|
|
422
|
-
var helpButton = CKEDITOR.document.getById( 'help' ),
|
|
423
|
-
helpContent = CKEDITOR.document.getById( 'help-content' );
|
|
424
|
-
|
|
425
|
-
// Don't show help button on IE8 because it's unsupported by Pico Modal.
|
|
426
|
-
if ( CKEDITOR.env.ie && CKEDITOR.env.version == 8 ) {
|
|
427
|
-
helpButton.hide();
|
|
428
|
-
} else {
|
|
429
|
-
// Display help modal when the button is clicked.
|
|
430
|
-
helpButton.on( 'click', function( evt ) {
|
|
431
|
-
SF.modal( {
|
|
432
|
-
// Clone modal content from DOM.
|
|
433
|
-
content: helpContent.getHtml(),
|
|
434
|
-
|
|
435
|
-
afterCreate: function( modal ) {
|
|
436
|
-
// Enable modal content button to close the modal.
|
|
437
|
-
new CKEDITOR.dom.element( modal.modalElem() ).findOne( '.help-content-close' ).once( 'click', modal.close );
|
|
438
|
-
}
|
|
439
|
-
} ).show();
|
|
440
|
-
} );
|
|
441
|
-
}
|
|
442
|
-
} )();
|
|
443
|
-
} )();
|
|
444
|
-
</script>
|
|
445
|
-
</body>
|
|
446
|
-
</html>
|
data/app/assets/javascripts/ckeditor/samples/toolbarconfigurator/js/abstracttoolbarmodifier.js
DELETED
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
"function"!=typeof Object.create&&function(){var a=function(){};Object.create=function(b){if(1<arguments.length)throw Error("Second argument not supported");if(null===b)throw Error("Cannot set a null [[Prototype]]");if("object"!=typeof b)throw TypeError("Argument must be an object");a.prototype=b;return new a}}();
|
|
2
|
-
CKEDITOR.plugins.add("toolbarconfiguratorarea",{afterInit:function(a){a.addMode("wysiwyg",function(b){var c=CKEDITOR.dom.element.createFromHtml('\x3cdiv class\x3d"cke_wysiwyg_div cke_reset" hidefocus\x3d"true"\x3e\x3c/div\x3e');a.ui.space("contents").append(c);c=a.editable(c);c.detach=CKEDITOR.tools.override(c.detach,function(b){return function(){b.apply(this,arguments);this.remove()}});a.setData(a.getData(1),b);a.fire("contentDom")});a.dataProcessor.toHtml=function(b){return b};a.dataProcessor.toDataFormat=
|
|
3
|
-
function(b){return b}}});Object.keys||(Object.keys=function(){var a=Object.prototype.hasOwnProperty,b=!{toString:null}.propertyIsEnumerable("toString"),c="toString toLocaleString valueOf hasOwnProperty isPrototypeOf propertyIsEnumerable constructor".split(" "),e=c.length;return function(d){if("object"!==typeof d&&("function"!==typeof d||null===d))throw new TypeError("Object.keys called on non-object");var g=[],f;for(f in d)a.call(d,f)&&g.push(f);if(b)for(f=0;f<e;f++)a.call(d,c[f])&&g.push(c[f]);return g}}());
|
|
4
|
-
(function(){function a(b,c){this.cfg=c||{};this.hidden=!1;this.editorId=b;this.fullToolbarEditor=new ToolbarConfigurator.FullToolbarEditor;this.actualConfig=this.originalConfig=this.mainContainer=null;this.isEditableVisible=this.waitForReady=!1;this.toolbarContainer=null;this.toolbarButtons=[]}ToolbarConfigurator.AbstractToolbarModifier=a;a.prototype.setConfig=function(b){this._onInit(void 0,b,!0)};a.prototype.init=function(b){var c=this;this.mainContainer=new CKEDITOR.dom.element("div");if(null!==
|
|
5
|
-
this.fullToolbarEditor.editorInstance)throw"Only one instance of ToolbarModifier is allowed";this.editorInstance||this._createEditor(!1);this.editorInstance.once("loaded",function(){c.fullToolbarEditor.init(function(){c._onInit(b);if("function"==typeof c.onRefresh)c.onRefresh()},c.editorInstance.config)});return this.mainContainer};a.prototype._onInit=function(b,c){this.originalConfig=this.editorInstance.config;this.actualConfig=c?JSON.parse(c):JSON.parse(JSON.stringify(this.originalConfig));if(!this.actualConfig.toolbarGroups&&
|
|
6
|
-
!this.actualConfig.toolbar){for(var a=this.actualConfig,d=this.editorInstance.toolbar,g=[],f=d.length,k=0;k<f;k++){var h=d[k];"string"==typeof h?g.push(h):g.push({name:h.name,groups:h.groups?h.groups.slice():[]})}a.toolbarGroups=g}"function"===typeof b&&b(this.mainContainer)};a.prototype._createModifier=function(){this.mainContainer.addClass("unselectable");this.modifyContainer&&this.modifyContainer.remove();this.modifyContainer=new CKEDITOR.dom.element("div");this.modifyContainer.addClass("toolbarModifier");
|
|
7
|
-
this.mainContainer.append(this.modifyContainer);return this.mainContainer};a.prototype.getEditableArea=function(){return this.editorInstance.container.findOne("#"+this.editorInstance.id+"_contents")};a.prototype._hideEditable=function(){var b=this.getEditableArea();this.isEditableVisible=!1;this.lastEditableAreaHeight=b.getStyle("height");b.setStyle("height","0")};a.prototype._showEditable=function(){this.isEditableVisible=!0;this.getEditableArea().setStyle("height",this.lastEditableAreaHeight||"auto")};
|
|
8
|
-
a.prototype._toggleEditable=function(){this.isEditableVisible?this._hideEditable():this._showEditable()};a.prototype._refreshEditor=function(){function b(){c.editorInstance.destroy();c._createEditor(!0,c.getActualConfig());c.waitForReady=!1}var c=this,a=this.editorInstance.status;this.waitForReady||("unloaded"==a||"loaded"==a?(this.waitForReady=!0,this.editorInstance.once("instanceReady",function(){b()},this)):b())};a.prototype._createEditor=function(b,c){function e(){}var d=this;this.editorInstance=
|
|
9
|
-
CKEDITOR.replace(this.editorId);this.editorInstance.on("configLoaded",function(){var b=d.editorInstance.config;c&&CKEDITOR.tools.extend(b,c,!0);a.extendPluginsConfig(b)});this.editorInstance.on("uiSpace",function(b){"top"!=b.data.space&&b.stop()},null,null,-999);this.editorInstance.once("loaded",function(){var c=d.editorInstance.ui.instances,a;for(a in c)c[a]&&(c[a].click=e,c[a].onClick=e);d.isEditableVisible||d._hideEditable();d.currentActive&&d.currentActive.name&&d._highlightGroup(d.currentActive.name);
|
|
10
|
-
d.hidden?d.hideUI():d.showUI();if(b&&"function"===typeof d.onRefresh)d.onRefresh()})};a.prototype.getActualConfig=function(){return JSON.parse(JSON.stringify(this.actualConfig))};a.prototype._createToolbar=function(){if(this.toolbarButtons.length){this.toolbarContainer=new CKEDITOR.dom.element("div");this.toolbarContainer.addClass("toolbar");for(var b=this.toolbarButtons.length,c=0;c<b;c+=1)this._createToolbarBtn(this.toolbarButtons[c])}};a.prototype._createToolbarBtn=function(b){var c=ToolbarConfigurator.FullToolbarEditor.createButton("string"===
|
|
11
|
-
typeof b.text?b.text:b.text.inactive,b.cssClass);this.toolbarContainer.append(c);c.data("group",b.group);c.addClass(b.position);c.on("click",function(){b.clickCallback.call(this,c,b)},this);return c};a.prototype._fixGroups=function(b){b=b.toolbarGroups||[];for(var c=b.length,a=0;a<c;a+=1){var d=b[a];"/"==d?(d=b[a]={},d.type="separator",d.name="separator"+CKEDITOR.tools.getNextNumber()):(d.groups=d.groups||[],-1==CKEDITOR.tools.indexOf(d.groups,d.name)&&(this.editorInstance.ui.addToolbarGroup(d.name,
|
|
12
|
-
d.groups[d.groups.length-1],d.name),d.groups.push(d.name)),this._fixSubgroups(d))}};a.prototype._fixSubgroups=function(b){b=b.groups;for(var c=b.length,a=0;a<c;a+=1){var d=b[a];b[a]={name:d,totalBtns:ToolbarConfigurator.ToolbarModifier.getTotalSubGroupButtonsNumber(d,this.fullToolbarEditor)}}};a.stringifyJSONintoOneLine=function(b,a){a=a||{};var e=JSON.stringify(b,null,""),e=e.replace(/\n/g,"");a.addSpaces&&(e=e.replace(/(\{|:|,|\[|\])/g,function(a){return a+" "}),e=e.replace(/(\])/g,function(a){return" "+
|
|
13
|
-
a}));a.noQuotesOnKey&&(e=e.replace(/"(\w*)":/g,function(a,b){return b+":"}));a.singleQuotes&&(e=e.replace(/\"/g,"'"));return e};a.prototype.hideUI=function(){this.hidden=!0;this.mainContainer.hide();this.editorInstance.container&&this.editorInstance.container.hide()};a.prototype.showUI=function(){this.hidden=!1;this.mainContainer.show();this.editorInstance.container&&this.editorInstance.container.show()};a.extendPluginsConfig=function(a){var c=a.extraPlugins;a.extraPlugins=(c?c+",":"")+"toolbarconfiguratorarea"}})();
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
window.ToolbarConfigurator={};
|
|
2
|
-
(function(){function e(){this.instanceid="fte"+CKEDITOR.tools.getNextId();this.textarea=new CKEDITOR.dom.element("textarea");this.textarea.setAttributes({id:this.instanceid,name:this.instanceid,contentEditable:!0});this.editorInstance=this.buttons=null}ToolbarConfigurator.FullToolbarEditor=e;e.prototype.init=function(b){var a=this;document.body.appendChild(this.textarea.$);CKEDITOR.replace(this.instanceid);this.editorInstance=CKEDITOR.instances[this.instanceid];this.editorInstance.once("configLoaded",function(d){var c=
|
|
3
|
-
d.editor.config;delete c.removeButtons;delete c.toolbarGroups;delete c.toolbar;ToolbarConfigurator.AbstractToolbarModifier.extendPluginsConfig(c);d.editor.once("loaded",function(){a.buttons=e.toolbarToButtons(a.editorInstance.toolbar);a.buttonsByGroup=e.groupButtons(a.buttons);a.buttonNamesByGroup=a.groupButtonNamesByGroup(a.buttons);d.editor.container.hide();"function"===typeof b&&b(a.buttons)})})};e.prototype.groupButtonNamesByGroup=function(b){var a=this;b=e.groupButtons(b);for(var d in b)b[d]=
|
|
4
|
-
e.map(b[d],function(b){return a.getCamelCasedButtonName(b.name)});return b};e.prototype.getGroupByName=function(b){for(var a=this.editorInstance.config.toolbarGroups||this.getFullToolbarGroupsConfig(),d=a.length,c=0;c<d;c+=1)if(a[c].name===b)return a[c];return null};e.prototype.getCamelCasedButtonName=function(b){var a=this.editorInstance.ui.items,d;for(d in a)if(a[d].name==b)return d;return null};e.prototype.getFullToolbarGroupsConfig=function(b){b=!0===b?!0:!1;for(var a=[],d=this.editorInstance.toolbar,
|
|
5
|
-
c=d.length,f=0;f<c;f+=1){var e=d[f],g={};"string"!=typeof e.name?b&&a.push("/"):(g.name=e.name,e.groups&&(g.groups=Array.prototype.slice.call(e.groups)),a.push(g))}return a};e.filter=function(b,a){for(var d=b&&b.length?b.length:0,c=[],f=0;f<d;f+=1)a(b[f])&&c.push(b[f]);return c};e.map=function(b,a){var d;if(CKEDITOR.tools.isArray(b)){d=[];for(var c=b.length,f=0;f<c;f+=1)d.push(a(b[f]))}else for(c in d={},b)d[c]=a(b[c]);return d};e.groupButtons=function(b){for(var a={},d=b.length,c=0;c<d;c+=1){var f=
|
|
6
|
-
b[c],e=f.toolbar.split(",")[0];a[e]=a[e]||[];a[e].push(f)}return a};e.toolbarToButtons=function(b){for(var a=[],d=b.length,c=0;c<d;c+=1)"object"==typeof b[c]&&(a=a.concat(e.groupToButtons(b[c])));return a};e.createToolbarButton=function(b){var a=new CKEDITOR.dom.element("a"),d=e.createIcon(b.name,b.icon,b.command);a.setStyle("float","none");a.addClass("cke_"+("rtl"==CKEDITOR.lang.dir?"rtl":"ltr"));if(b instanceof CKEDITOR.ui.button)a.addClass("cke_button"),a.addClass("cke_toolgroup"),a.append(d);
|
|
7
|
-
else if(CKEDITOR.ui.richCombo&&b instanceof CKEDITOR.ui.richCombo){var d=new CKEDITOR.dom.element("span"),c=new CKEDITOR.dom.element("span"),f=new CKEDITOR.dom.element("span");a.addClass("cke_combo_button");d.addClass("cke_combo_text");d.addClass("cke_combo_inlinelabel");d.setText(b.label);c.addClass("cke_combo_open");f.addClass("cke_combo_arrow");c.append(f);a.append(d);a.append(c)}return a};e.createIcon=function(b,a,d){var c=CKEDITOR.skin.getIconStyle(b,"rtl"==CKEDITOR.lang.dir),c=(c=c||CKEDITOR.skin.getIconStyle(a,
|
|
8
|
-
"rtl"==CKEDITOR.lang.dir))||CKEDITOR.skin.getIconStyle(d,"rtl"==CKEDITOR.lang.dir);a=new CKEDITOR.dom.element("span");a.addClass("cke_button_icon");a.addClass("cke_button__"+b+"_icon");a.setAttribute("style",c);a.setStyle("float","none");return a};e.createButton=function(b,a){var d=new CKEDITOR.dom.element("button");d.addClass("button-a");d.setAttribute("type","button");if("string"==typeof a){a=a.split(" ");for(var c=a.length;c--;)d.addClass(a[c])}d.setHtml(b);return d};e.groupToButtons=function(b){for(var a=
|
|
9
|
-
[],d=(b=b.items)?b.length:0,c=0;c<d;c+=1){var f=b[c];if(f instanceof CKEDITOR.ui.button||CKEDITOR.ui.richCombo&&f instanceof CKEDITOR.ui.richCombo)f.$=e.createToolbarButton(f),a.push(f)}return a}})();
|
|
@@ -1,33 +0,0 @@
|
|
|
1
|
-
(function(){function d(a,b){l.call(this,a,b);this.actualConfig=this.originalConfig=this.removedButtons=null;this.emptyVisible=!1;this.state="edit";this.toolbarButtons=[{text:{active:"Hide empty toolbar groups",inactive:"Show empty toolbar groups"},group:"edit",position:"left",cssClass:"button-a-soft",clickCallback:function(a,b){a[a.hasClass("button-a-background")?"removeClass":"addClass"]("button-a-background");this._toggleVisibilityEmptyElements();this.emptyVisible?a.setText(b.text.active):a.setText(b.text.inactive)}},
|
|
2
|
-
{text:"Add row separator",group:"edit",position:"left",cssClass:"button-a-soft",clickCallback:function(){this._addSeparator()}},{text:"Select config",group:"config",position:"left",cssClass:"button-a-soft",clickCallback:function(){this.configContainer.findOne("textarea").$.select()}},{text:"Back to configurator",group:"config",position:"right",cssClass:"button-a-background",clickCallback:function(){if("paste"===this.state){var a=this.configContainer.findOne("textarea").getValue();(a=d.evaluateToolbarGroupsConfig(a))?
|
|
3
|
-
this.setConfig(a):alert("Your pasted config is wrong.")}this.state="edit";this._showConfigurationTool();this.showToolbarBtnsByGroupName(this.state)}},{text:'Get toolbar \x3cspan class\x3d"highlight"\x3econfig\x3c/span\x3e',group:"edit",position:"right",cssClass:"button-a-background icon-pos-left icon-download",clickCallback:function(){this.state="config";this._showConfig();this.showToolbarBtnsByGroupName(this.state)}}];this.cachedActiveElement=null}var l=ToolbarConfigurator.AbstractToolbarModifier;
|
|
4
|
-
ToolbarConfigurator.ToolbarModifier=d;d.prototype=Object.create(ToolbarConfigurator.AbstractToolbarModifier.prototype);d.prototype.getActualConfig=function(){var a=l.prototype.getActualConfig.call(this);if(a.toolbarGroups)for(var b=a.toolbarGroups.length,c=0;c<b;c+=1)a.toolbarGroups[c]=d.parseGroupToConfigValue(a.toolbarGroups[c]);return a};d.prototype._onInit=function(a,b,c){c=!0===c;l.prototype._onInit.call(this,void 0,b);this.removedButtons=[];c?this.removedButtons=this.actualConfig.removeButtons?
|
|
5
|
-
this.actualConfig.removeButtons.split(","):[]:"removeButtons"in this.originalConfig?this.removedButtons=this.originalConfig.removeButtons?this.originalConfig.removeButtons.split(","):[]:(this.originalConfig.removeButtons="",this.removedButtons=[]);this.actualConfig.toolbarGroups||(this.actualConfig.toolbarGroups=this.fullToolbarEditor.getFullToolbarGroupsConfig());this._fixGroups(this.actualConfig);this._calculateTotalBtns();this._createModifier();this._refreshMoveBtnsAvalibility();this._refreshBtnTabIndexes();
|
|
6
|
-
"function"===typeof a&&a(this.mainContainer)};d.prototype._showConfigurationTool=function(){this.configContainer.addClass("hidden");this.modifyContainer.removeClass("hidden")};d.prototype._showConfig=function(){var a=this.getActualConfig(),b,c;if(a.toolbarGroups){b=a.toolbarGroups;for(var e=this.cfg.trimEmptyGroups,f=[],g=b.length,m=0;m<g;m++){var h=b[m];if("/"===h)f.push("'/'");else{if(e)for(var k=h.groups.length;k--;)0===d.getTotalSubGroupButtonsNumber(h.groups[k],this.fullToolbarEditor)&&h.groups.splice(k,
|
|
7
|
-
1);e&&0===h.groups.length||f.push(l.stringifyJSONintoOneLine(h,{addSpaces:!0,noQuotesOnKey:!0,singleQuotes:!0}))}}b="\n\t\t"+f.join(",\n\t\t")}a.removeButtons&&(c=a.removeButtons);a=['\x3ctextarea class\x3d"configCode" readonly\x3eCKEDITOR.editorConfig \x3d function( config ) {\n',b?"\tconfig.toolbarGroups \x3d ["+b+"\n\t];":"",c?"\n\n":"",c?"\tconfig.removeButtons \x3d '"+c+"';":"","\n};\x3c/textarea\x3e"].join("");this.modifyContainer.addClass("hidden");this.configContainer.removeClass("hidden");
|
|
8
|
-
this.configContainer.setHtml(a)};d.prototype._toggleVisibilityEmptyElements=function(){this.modifyContainer.hasClass("empty-visible")?(this.modifyContainer.removeClass("empty-visible"),this.emptyVisible=!1):(this.modifyContainer.addClass("empty-visible"),this.emptyVisible=!0);this._refreshMoveBtnsAvalibility()};d.prototype._createModifier=function(){function a(){b._highlightGroup(this.data("name"))}var b=this;l.prototype._createModifier.call(this);this.modifyContainer.setHtml(this._toolbarConfigToListString());
|
|
9
|
-
var c=this.modifyContainer.find('li[data-type\x3d"group"]');this.modifyContainer.on("mouseleave",function(){this._dehighlightActiveToolGroup()},this);for(var e=c.count(),f=0;f<e;f+=1)c.getItem(f).on("mouseenter",a);CKEDITOR.document.on("keypress",function(a){a=a.data.$.keyCode;a=32===a||13===a;var c=new CKEDITOR.dom.element(CKEDITOR.document.$.activeElement);c.getAscendant(function(a){return a.$===b.mainContainer.$})&&a&&"button"===c.data("type")&&c.findOne("input").$.click()});this.modifyContainer.on("click",
|
|
10
|
-
function(a){var c=a.data.$,e=new CKEDITOR.dom.element(c.target||c.srcElement);if(a=d.getGroupOrSeparatorLiAncestor(e)){b.cachedActiveElement=document.activeElement;if(e.$ instanceof HTMLInputElement)b._handleCheckboxClicked(e);else if(e.$ instanceof HTMLButtonElement&&(c.preventDefault?c.preventDefault():c.returnValue=!1,(c=b._handleAnchorClicked(e.$))&&"remove"==c.action))return;c=a.data("type");a=a.data("name");b._setActiveElement(c,a);b.cachedActiveElement&&b.cachedActiveElement.focus()}});this.toolbarContainer||
|
|
11
|
-
(this._createToolbar(),this.toolbarContainer.insertBefore(this.mainContainer.getChildren().getItem(0)));this.showToolbarBtnsByGroupName("edit");this.configContainer||(this.configContainer=new CKEDITOR.dom.element("div"),this.configContainer.addClass("configContainer"),this.configContainer.addClass("hidden"),this.mainContainer.append(this.configContainer));return this.mainContainer};d.prototype.showToolbarBtnsByGroupName=function(a){if(this.toolbarContainer)for(var b=this.toolbarContainer.find("button"),
|
|
12
|
-
c=b.count(),e=0;e<c;e+=1){var d=b.getItem(e);d.data("group")==a?d.removeClass("hidden"):d.addClass("hidden")}};d.parseGroupToConfigValue=function(a){if("separator"==a.type)return"/";var b=a.groups,c=b.length;delete a.totalBtns;for(var e=0;e<c;e+=1)b[e]=b[e].name;return a};d.getGroupOrSeparatorLiAncestor=function(a){return a.$ instanceof HTMLLIElement&&"group"==a.data("type")?a:d.getFirstAncestor(a,function(a){a=a.data("type");return"group"==a||"separator"==a})};d.prototype._setActiveElement=function(a,
|
|
13
|
-
b){this.currentActive&&this.currentActive.elem.removeClass("active");if(null===a)this._dehighlightActiveToolGroup(),this.currentActive=null;else{var c=this.mainContainer.findOne('ul[data-type\x3dtable-body] li[data-type\x3d"'+a+'"][data-name\x3d"'+b+'"]');c.addClass("active");this.currentActive={type:a,name:b,elem:c};"group"==a&&this._highlightGroup(b);"separator"==a&&this._dehighlightActiveToolGroup()}};d.prototype.getActiveToolGroup=function(){return this.editorInstance.container?this.editorInstance.container.findOne(".cke_toolgroup.active, .cke_toolbar.active"):
|
|
14
|
-
null};d.prototype._dehighlightActiveToolGroup=function(){var a=this.getActiveToolGroup();a&&a.removeClass("active");this.editorInstance.container&&this.editorInstance.container.removeClass("some-toolbar-active")};d.prototype._highlightGroup=function(a){this.editorInstance.container&&(a=this.getFirstEnabledButtonInGroup(a),a=this.editorInstance.container.findOne(".cke_button__"+a+", .cke_combo__"+a),this._dehighlightActiveToolGroup(),this.editorInstance.container&&this.editorInstance.container.addClass("some-toolbar-active"),
|
|
15
|
-
a&&(a=d.getFirstAncestor(a,function(a){return a.hasClass("cke_toolbar")}))&&a.addClass("active"))};d.prototype.getFirstEnabledButtonInGroup=function(a){var b=this.actualConfig.toolbarGroups;a=this.getGroupIndex(a);b=b[a];if(-1===a)return null;a=b.groups?b.groups.length:0;for(var c=0;c<a;c+=1){var e=this.getFirstEnabledButtonInSubgroup(b.groups[c].name);if(e)return e}return null};d.prototype.getFirstEnabledButtonInSubgroup=function(a){for(var b=(a=this.fullToolbarEditor.buttonsByGroup[a])?a.length:
|
|
16
|
-
0,c=0;c<b;c+=1){var e=a[c].name;if(!this.isButtonRemoved(e))return e}return null};d.prototype._handleCheckboxClicked=function(a){var b=a.getAscendant("li").data("name");a.$.checked?this._removeButtonFromRemoved(b):this._addButtonToRemoved(b)};d.prototype._handleAnchorClicked=function(a){a=new CKEDITOR.dom.element(a);var b=a.getAscendant("li"),c=b.getAscendant("ul"),e=b.data("type"),d=b.data("name"),g=a.data("direction"),m="up"===g?b.getPrevious():b.getNext(),h;if(a.hasClass("disabled"))return null;
|
|
17
|
-
if(a.hasClass("remove"))return b.remove(),this._removeSeparator(b.data("name")),this._setActiveElement(null),{action:"remove"};if(!a.hasClass("move")||!m)return{action:null};if("group"===e||"separator"===e)h=this._moveGroup(g,d);"subgroup"===e&&(h=b.getAscendant("li").data("name"),h=this._moveSubgroup(g,h,d));"up"===g&&b.insertBefore(c.getChild(h));"down"===g&&b.insertAfter(c.getChild(h));for(var k;b="up"===g?b.getPrevious():b.getNext();)if(this.emptyVisible||!b.hasClass("empty")){k=b;break}k||(k=
|
|
18
|
-
'[data-direction\x3d"'+("up"===g?"down":"up")+'"]',this.cachedActiveElement=a.getParent().findOne(k));this._refreshMoveBtnsAvalibility();this._refreshBtnTabIndexes();return{action:"move"}};d.prototype._refreshMoveBtnsAvalibility=function(){function a(a){var c=a.count();for(d=0;d<c;d+=1)b._disableElementsInList(a.getItem(d))}for(var b=this,c=this.mainContainer.find("ul[data-type\x3dtable-body] li \x3e p \x3e span \x3e button.move.disabled"),e=c.count(),d=0;d<e;d+=1)c.getItem(d).removeClass("disabled");
|
|
19
|
-
a(this.mainContainer.find("ul[data-type\x3dtable-body]"));a(this.mainContainer.find("ul[data-type\x3dtable-body] \x3e li \x3e ul"))};d.prototype._refreshBtnTabIndexes=function(){for(var a=this.mainContainer.find('[data-tab\x3d"true"]'),b=a.count(),c=0;c<b;c++){var e=a.getItem(c),d=e.hasClass("disabled");e.setAttribute("tabindex",d?-1:c)}};d.prototype._disableElementsInList=function(a){function b(a){return!a.hasClass("empty")}if(a.getChildren().count()){var c;this.emptyVisible?(c=a.getFirst(),a=a.getLast()):
|
|
20
|
-
(c=a.getFirst(b),a=a.getLast(b));if(c)var e=c.findOne('p button[data-direction\x3d"up"]');if(a)var d=a.findOne('p button[data-direction\x3d"down"]');e&&(e.addClass("disabled"),e.setAttribute("tabindex","-1"));d&&(d.addClass("disabled"),d.setAttribute("tabindex","-1"))}};d.prototype.getGroupIndex=function(a){for(var b=this.actualConfig.toolbarGroups,c=b.length,d=0;d<c;d+=1)if(b[d].name===a)return d;return-1};d.prototype._addSeparator=function(){var a=this._determineSeparatorToAddIndex(),b=d.createSeparatorLiteral(),
|
|
21
|
-
c=CKEDITOR.dom.element.createFromHtml(d.getToolbarSeparatorString(b));this.actualConfig.toolbarGroups.splice(a,0,b);c.insertBefore(this.modifyContainer.findOne("ul[data-type\x3dtable-body]").getChild(a));this._setActiveElement("separator",b.name);this._refreshMoveBtnsAvalibility();this._refreshBtnTabIndexes();this._refreshEditor()};d.prototype._removeSeparator=function(a){var b=CKEDITOR.tools.indexOf(this.actualConfig.toolbarGroups,function(b){return"separator"==b.type&&b.name==a});this.actualConfig.toolbarGroups.splice(b,
|
|
22
|
-
1);this._refreshMoveBtnsAvalibility();this._refreshBtnTabIndexes();this._refreshEditor()};d.prototype._determineSeparatorToAddIndex=function(){return this.currentActive?("group"==this.currentActive.elem.data("type")||"separator"==this.currentActive.elem.data("type")?this.currentActive.elem:this.currentActive.elem.getAscendant("li")).getIndex():0};d.prototype._moveElement=function(a,b,c){function e(a){return a.totalBtns||"separator"==a.type}c=this.emptyVisible?"down"==c?b+1:b-1:d.getFirstElementIndexWith(a,
|
|
23
|
-
b,c,e);return d.moveTo(c-b,a,b)};d.prototype._moveGroup=function(a,b){var c=this.getGroupIndex(b),c=this._moveElement(this.actualConfig.toolbarGroups,c,a);this._refreshMoveBtnsAvalibility();this._refreshBtnTabIndexes();this._refreshEditor();return c};d.prototype._moveSubgroup=function(a,b,c){b=this.getGroupIndex(b);b=this.actualConfig.toolbarGroups[b];var d=CKEDITOR.tools.indexOf(b.groups,function(a){return a.name==c});a=this._moveElement(b.groups,d,a);this._refreshEditor();return a};d.prototype._calculateTotalBtns=
|
|
24
|
-
function(){for(var a=this.actualConfig.toolbarGroups,b=a.length;b--;){var c=a[b],e=d.getTotalGroupButtonsNumber(c,this.fullToolbarEditor);"separator"!=c.type&&(c.totalBtns=e)}};d.prototype._addButtonToRemoved=function(a){if(-1!=CKEDITOR.tools.indexOf(this.removedButtons,a))throw"Button already added to removed";this.removedButtons.push(a);this.actualConfig.removeButtons=this.removedButtons.join(",");this._refreshEditor()};d.prototype._removeButtonFromRemoved=function(a){a=CKEDITOR.tools.indexOf(this.removedButtons,
|
|
25
|
-
a);if(-1===a)throw"Trying to remove button from removed, but not found";this.removedButtons.splice(a,1);this.actualConfig.removeButtons=this.removedButtons.join(",");this._refreshEditor()};d.parseGroupToConfigValue=function(a){if("separator"==a.type)return"/";var b=a.groups,c=b.length;delete a.totalBtns;for(var d=0;d<c;d+=1)b[d]=b[d].name;return a};d.getGroupOrSeparatorLiAncestor=function(a){return a.$ instanceof HTMLLIElement&&"group"==a.data("type")?a:d.getFirstAncestor(a,function(a){a=a.data("type");
|
|
26
|
-
return"group"==a||"separator"==a})};d.createSeparatorLiteral=function(){return{type:"separator",name:"separator"+CKEDITOR.tools.getNextNumber()}};d.prototype._toolbarConfigToListString=function(){for(var a=this.actualConfig.toolbarGroups||[],b='\x3cul data-type\x3d"table-body"\x3e',c=a.length,e=0;e<c;e+=1)var f=a[e],b="separator"===f.type?b+d.getToolbarSeparatorString(f):b+this._getToolbarGroupString(f);b+="\x3c/ul\x3e";return d.getToolbarHeaderString()+b};d.prototype._getToolbarGroupString=function(a){var b=
|
|
27
|
-
a.groups,c;c=""+['\x3cli data-type\x3d"group" data-name\x3d"',a.name,'" ',a.totalBtns?"":'class\x3d"empty"',"\x3e"].join("");c+=d.getToolbarElementPreString(a)+"\x3cul\x3e";a=b.length;for(var e=0;e<a;e+=1){var f=b[e];c+=this._getToolbarSubgroupString(f,this.fullToolbarEditor.buttonsByGroup[f.name])}return c+"\x3c/ul\x3e\x3c/li\x3e"};d.getToolbarSeparatorString=function(a){return['\x3cli data-type\x3d"',a.type,'" data-name\x3d"',a.name,'"\x3e',d.getToolbarElementPreString("row separator"),"\x3c/li\x3e"].join("")};
|
|
28
|
-
d.getToolbarHeaderString=function(){return'\x3cul data-type\x3d"table-header"\x3e\x3cli data-type\x3d"header"\x3e\x3cp\x3eToolbars\x3c/p\x3e\x3cul\x3e\x3cli\x3e\x3cp\x3eToolbar groups\x3c/p\x3e\x3cp\x3eToolbar group items\x3c/p\x3e\x3c/li\x3e\x3c/ul\x3e\x3c/li\x3e\x3c/ul\x3e'};d.getFirstAncestor=function(a,b){for(var c=a.getParents(),d=c.length;d--;)if(b(c[d]))return c[d];return null};d.getFirstElementIndexWith=function(a,b,c,d){for(;"up"===c?b--:++b<a.length;)if(d(a[b]))return b;return-1};d.moveTo=
|
|
29
|
-
function(a,b,c){var d;-1!==c&&(d=b.splice(c,1)[0]);a=c+a;b.splice(a,0,d);return a};d.getTotalSubGroupButtonsNumber=function(a,b){var c=b.buttonsByGroup["string"==typeof a?a:a.name];return c?c.length:0};d.getTotalGroupButtonsNumber=function(a,b){for(var c=0,e=a.groups,f=e?e.length:0,g=0;g<f;g+=1)c+=d.getTotalSubGroupButtonsNumber(e[g],b);return c};d.prototype._getToolbarSubgroupString=function(a,b){var c;c=""+['\x3cli data-type\x3d"subgroup" data-name\x3d"',a.name,'" ',a.totalBtns?"":'class\x3d"empty" ',
|
|
30
|
-
"\x3e"].join("");c+=d.getToolbarElementPreString(a.name);c+="\x3cul\x3e";for(var e=b?b.length:0,f=0;f<e;f+=1)c+=this.getButtonString(b[f]);return c+="\x3c/ul\x3e\x3c/li\x3e"};d.prototype._getConfigButtonName=function(a){var b=this.fullToolbarEditor.editorInstance.ui.items,c;for(c in b)if(b[c].name==a)return c;return null};d.prototype.isButtonRemoved=function(a){return-1!=CKEDITOR.tools.indexOf(this.removedButtons,this._getConfigButtonName(a))};d.prototype.getButtonString=function(a){var b=this.isButtonRemoved(a.name)?
|
|
31
|
-
"":'checked\x3d"checked"';return['\x3cli data-tab\x3d"true" data-type\x3d"button" data-name\x3d"',this._getConfigButtonName(a.name),'"\x3e\x3clabel title\x3d"',a.label,'" \x3e\x3cinput tabindex\x3d"-1"type\x3d"checkbox"',b,"/\x3e",a.$.getOuterHtml(),"\x3c/label\x3e\x3c/li\x3e"].join("")};d.getToolbarElementPreString=function(a){a=a.name?a.name:a;return['\x3cp\x3e\x3cspan\x3e\x3cbutton title\x3d"Move element upward" data-tab\x3d"true" data-direction\x3d"up" class\x3d"move icon-up-big"\x3e\x3c/button\x3e\x3cbutton title\x3d"Move element downward" data-tab\x3d"true" data-direction\x3d"down" class\x3d"move icon-down-big"\x3e\x3c/button\x3e',
|
|
32
|
-
"row separator"==a?'\x3cbutton title\x3d"Remove element" data-tab\x3d"true" class\x3d"remove icon-trash"\x3e\x3c/button\x3e':"",a,"\x3c/span\x3e\x3c/p\x3e"].join("")};d.evaluateToolbarGroupsConfig=function(a){return a=function(a){var c={},d;try{d=eval("("+a+")")}catch(f){try{d=eval(a)}catch(g){return null}}return c.toolbarGroups&&"number"===typeof c.toolbarGroups.length?JSON.stringify(c):d&&"number"===typeof d.length?JSON.stringify({toolbarGroups:d}):d&&d.toolbarGroups?JSON.stringify(d):null}(a)};
|
|
33
|
-
return d})();
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
(function(){function e(a){l.call(this,a);this.hintContainer=this.codeContainer=null}var l=ToolbarConfigurator.AbstractToolbarModifier,g=ToolbarConfigurator.FullToolbarEditor;ToolbarConfigurator.ToolbarTextModifier=e;e.prototype=Object.create(l.prototype);e.prototype._onInit=function(a,d){l.prototype._onInit.call(this,void 0,d);this._createModifier(d?this.actualConfig:void 0);"function"===typeof a&&a(this.mainContainer)};e.prototype._createModifier=function(a){function d(a){var b=c(a);if(null!==b.charsBetween){var d=
|
|
2
|
-
k.getUnusedButtonsArray(k.actualConfig.toolbar,!0,b.charsBetween),e=a.getCursor(),b=CodeMirror.Pos(e.line,e.ch-b.charsBetween.length),h=a.getTokenAt(e);"{"===a.getTokenAt({line:e.line,ch:h.start}).string&&(d=["name"]);if(0!==d.length)return new f(b,e,d)}}function f(a,c,b){this.from=a;this.to=c;this.list=b;this._handlers=[]}function c(a,c){var b={};b.cur=a.getCursor();b.tok=a.getTokenAt(b.cur);b["char"]=c||b.tok.string.charAt(b.tok.string.length-1);var d=a.getRange(CodeMirror.Pos(b.cur.line,0),b.cur).split("").reverse().join(""),
|
|
3
|
-
d=d.replace(/(['|"]\w*['|"])/g,"");b.charsBetween=d.match(/(^\w*)(['|"])/);b.charsBetween&&(b.endChar=b.charsBetween[2],b.charsBetween=b.charsBetween[1].split("").reverse().join(""));return b}function b(a){setTimeout(function(){a.state.completionActive||CodeMirror.showHint(a,d,{hintsClass:"toolbar-modifier",completeSingle:!1})},100);return CodeMirror.Pass}var k=this;this._createToolbar();this.toolbarContainer&&this.mainContainer.append(this.toolbarContainer);l.prototype._createModifier.call(this);
|
|
4
|
-
this._setupActualConfig(a);a=this.actualConfig.toolbar;a=CKEDITOR.tools.isArray(a)?"\tconfig.toolbar \x3d "+("[\n\t\t"+g.map(a,function(a){return l.stringifyJSONintoOneLine(a,{addSpaces:!0,noQuotesOnKey:!0,singleQuotes:!0})}).join(",\n\t\t")+"\n\t]")+";":"config.toolbar \x3d [];";a=["CKEDITOR.editorConfig \x3d function( config ) {\n",a,"\n};"].join("");var e=new CKEDITOR.dom.element("div");e.addClass("codemirror-wrapper");this.modifyContainer.append(e);this.codeContainer=CodeMirror(e.$,{mode:{name:"javascript",
|
|
5
|
-
json:!0},lineNumbers:!1,lineWrapping:!0,viewportMargin:Infinity,value:a,smartIndent:!1,indentWithTabs:!0,indentUnit:4,tabSize:4,theme:"neo",extraKeys:{Left:b,Right:b,"'''":b,"'\"'":b,Backspace:b,Delete:b,"Shift-Tab":"indentLess"}});this.codeContainer.on("endCompletion",function(a,b){var d=c(a);void 0!==b&&a.replaceSelection(d.endChar)});this.codeContainer.on("change",function(){var a=k.codeContainer.getValue(),a=k._evaluateValue(a);null!==a?(k.actualConfig.toolbar=a.toolbar?a.toolbar:k.actualConfig.toolbar,
|
|
6
|
-
k._fillHintByUnusedElements(),k._refreshEditor(),k.mainContainer.removeClass("invalid")):k.mainContainer.addClass("invalid")});this.hintContainer=new CKEDITOR.dom.element("div");this.hintContainer.addClass("toolbarModifier-hints");this._fillHintByUnusedElements();this.hintContainer.insertBefore(e)};e.prototype._fillHintByUnusedElements=function(){var a=this.getUnusedButtonsArray(this.actualConfig.toolbar,!0),a=this.groupButtonNamesByGroup(a),d=g.map(a,function(a){var b=g.map(a.buttons,function(a){return"\x3ccode\x3e"+
|
|
7
|
-
a+"\x3c/code\x3e "}).join("");return["\x3cdt\x3e\x3ccode\x3e",a.name,"\x3c/code\x3e\x3c/dt\x3e\x3cdd\x3e",b,"\x3c/dd\x3e"].join("")}).join(" "),f='\x3cdt class\x3d"list-header"\x3eToolbar group\x3c/dt\x3e\x3cdd class\x3d"list-header"\x3eUnused items\x3c/dd\x3e';a.length||(f="\x3cp\x3eAll items are in use.\x3c/p\x3e");this.codeContainer.refresh();this.hintContainer.setHtml("\x3ch3\x3eUnused toolbar items\x3c/h3\x3e\x3cdl\x3e"+f+d+"\x3c/dl\x3e")};e.prototype.getToolbarGroupByButtonName=function(a){var d=
|
|
8
|
-
this.fullToolbarEditor.buttonNamesByGroup,f;for(f in d)for(var c=d[f],b=c.length;b--;)if(a===c[b])return f;return null};e.prototype.getUnusedButtonsArray=function(a,d,f){d=!0===d?!0:!1;var c=e.mapToolbarCfgToElementsList(a);a=Object.keys(this.fullToolbarEditor.editorInstance.ui.items);a=g.filter(a,function(a){var d="-"===a;a=void 0===f||0===a.toLowerCase().indexOf(f.toLowerCase());return!d&&a});a=g.filter(a,function(a){return-1==CKEDITOR.tools.indexOf(c,a)});d&&a.sort();return a};e.prototype.groupButtonNamesByGroup=
|
|
9
|
-
function(a){var d=[],f=JSON.parse(JSON.stringify(this.fullToolbarEditor.buttonNamesByGroup)),c;for(c in f){var b=f[c],b=g.filter(b,function(b){return-1!==CKEDITOR.tools.indexOf(a,b)});b.length&&d.push({name:c,buttons:b})}return d};e.mapToolbarCfgToElementsList=function(a){function d(a){return"-"!==a}for(var f=[],c=a.length,b=0;b<c;b+=1)a[b]&&"string"!==typeof a[b]&&(f=f.concat(g.filter(a[b].items,d)));return f};e.prototype._setupActualConfig=function(a){a=a||this.editorInstance.config;CKEDITOR.tools.isArray(a.toolbar)||
|
|
10
|
-
(a.toolbarGroups||(a.toolbarGroups=this.fullToolbarEditor.getFullToolbarGroupsConfig(!0)),this._fixGroups(a),a.toolbar=this._mapToolbarGroupsToToolbar(a.toolbarGroups,this.actualConfig.removeButtons),this.actualConfig.toolbar=a.toolbar,this.actualConfig.removeButtons="")};e.prototype._mapToolbarGroupsToToolbar=function(a,d){d=d||this.editorInstance.config.removedBtns;d="string"==typeof d?d.split(","):[];for(var f=a.length;f--;){var c=this._mapToolbarSubgroup(a[f],d);"separator"===a[f].type?a[f]="/":
|
|
11
|
-
CKEDITOR.tools.isArray(c)&&0===c.length?a.splice(f,1):a[f]="string"==typeof c?c:{name:a[f].name,items:c}}return a};e.prototype._mapToolbarSubgroup=function(a,d){if("string"==typeof a)return a;for(var f=a.groups?a.groups.length:0,c=[],b=0;b<f;b+=1){var e=a.groups[b],e=this.fullToolbarEditor.buttonsByGroup["string"===typeof e?e:e.name]||[],e=this._mapButtonsToButtonsNames(e,d),g=e.length,c=c.concat(e);g&&c.push("-")}"-"==c[c.length-1]&&c.pop();return c};e.prototype._mapButtonsToButtonsNames=function(a,
|
|
12
|
-
d){for(var f=a.length;f--;){var c=a[f],c="string"===typeof c?c:this.fullToolbarEditor.getCamelCasedButtonName(c.name);-1!==CKEDITOR.tools.indexOf(d,c)?a.splice(f,1):a[f]=c}return a};e.prototype._evaluateValue=function(a){var d;try{var f={};Function("var CKEDITOR \x3d {}; "+a+"; return CKEDITOR;")().editorConfig(f);d=f;for(var c=d.toolbar.length;c--;)d.toolbar[c]||d.toolbar.splice(c,1)}catch(b){d=null}return d};e.prototype.mapToolbarToToolbarGroups=function(a){function d(a,b){a=a.slice();for(var d=
|
|
13
|
-
b.length;d--;){var c=a.indexOf(b[d]);-1!==c&&a.splice(c,1)}return a}for(var f={},c=[],b=[],c=a.length,e=0;e<c;e++)if("/"===a[e])b.push("/");else{var g=a[e].items,m={};m.name=a[e].name;m.groups=[];for(var l=g.length,p=0;p<l;p++){var n=g[p];if("-"!==n){var h=this.getToolbarGroupByButtonName(n);-1===m.groups.indexOf(h)&&m.groups.push(h);f[h]=f[h]||{};h=f[h].buttons=f[h].buttons||{};h[n]=h[n]||{used:0,origin:m.name};h[n].used++}}b.push(m)}c=function(a,b){var c=[],e;for(e in a)var f=a[e],g=b[e].slice(),
|
|
14
|
-
c=c.concat(d(g,Object.keys(f.buttons)));return c}(f,this.fullToolbarEditor.buttonNamesByGroup);return{toolbarGroups:b,removeButtons:c.join(",")}};return e})();
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
Copyright (C) 2014 by Marijn Haverbeke <marijnh@gmail.com> and others
|
|
2
|
-
|
|
3
|
-
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
4
|
-
of this software and associated documentation files (the "Software"), to deal
|
|
5
|
-
in the Software without restriction, including without limitation the rights
|
|
6
|
-
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
7
|
-
copies of the Software, and to permit persons to whom the Software is
|
|
8
|
-
furnished to do so, subject to the following conditions:
|
|
9
|
-
|
|
10
|
-
The above copyright notice and this permission notice shall be included in
|
|
11
|
-
all copies or substantial portions of the Software.
|
|
12
|
-
|
|
13
|
-
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
14
|
-
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
15
|
-
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
16
|
-
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
17
|
-
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
18
|
-
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
|
19
|
-
THE SOFTWARE.
|