diff options
author | Ismaël Bouya <ismael.bouya@normalesup.org> | 2016-01-25 17:45:33 +0100 |
---|---|---|
committer | Ismaël Bouya <ismael.bouya@normalesup.org> | 2016-01-25 18:00:33 +0100 |
commit | 7adcb81e4f83f98c468889aaa5a85558ba88c770 (patch) | |
tree | 0d6ede733777b29060b48df4afaa2c64bfbae276 /sources/plugins/indent | |
download | connexionswing-ckeditor-component-7adcb81e4f83f98c468889aaa5a85558ba88c770.tar.gz connexionswing-ckeditor-component-7adcb81e4f83f98c468889aaa5a85558ba88c770.tar.zst connexionswing-ckeditor-component-7adcb81e4f83f98c468889aaa5a85558ba88c770.zip |
Initial commit4.5.6
Diffstat (limited to 'sources/plugins/indent')
76 files changed, 1273 insertions, 0 deletions
diff --git a/sources/plugins/indent/dev/indent.html b/sources/plugins/indent/dev/indent.html new file mode 100644 index 00000000..0a3a8288 --- /dev/null +++ b/sources/plugins/indent/dev/indent.html | |||
@@ -0,0 +1,284 @@ | |||
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 | <html> | ||
7 | <head> | ||
8 | <meta charset="utf-8"> | ||
9 | <title>Indent DEV sample</title> | ||
10 | <script src="../../../ckeditor.js"></script> | ||
11 | <style> | ||
12 | body { | ||
13 | padding: 20px; | ||
14 | margin: 0; | ||
15 | } | ||
16 | .editors { | ||
17 | display: block; | ||
18 | overflow: hidden; | ||
19 | width: 100%; | ||
20 | margin: 0px auto; | ||
21 | list-style-type: none; | ||
22 | margin: 0; | ||
23 | padding: 0; | ||
24 | |||
25 | box-sizing: content-box; | ||
26 | |||
27 | background: #eee; | ||
28 | } | ||
29 | .editors li { | ||
30 | width: 50%; | ||
31 | margin: 0; | ||
32 | padding: 10px; | ||
33 | float: left; | ||
34 | |||
35 | box-sizing: border-box; | ||
36 | } | ||
37 | .editors li:nth-child(2n) { | ||
38 | background: #D4E59A; | ||
39 | } | ||
40 | #menu { | ||
41 | position: fixed; | ||
42 | top: 0; | ||
43 | right: 20px; | ||
44 | padding: 5px; | ||
45 | border: 1px solid #aaa; | ||
46 | background: #eee; | ||
47 | } | ||
48 | |||
49 | </style> | ||
50 | </head> | ||
51 | <body> | ||
52 | <p id="menu"> | ||
53 | <a href="#listnblock">List & Block</a>, | ||
54 | <a href="#classes">Classes</a>, | ||
55 | <a href="#list">List</a>, | ||
56 | <a href="#block">Block</a>, | ||
57 | <a href="#br">ENTER_BR</a> | ||
58 | </p> | ||
59 | |||
60 | <h1 class="samples">Indent DEV sample</h1> | ||
61 | <h2 id="listnblock">List & Block</h2> | ||
62 | <ul class="editors"> | ||
63 | <li> | ||
64 | <textarea cols="80" id="editor1" rows="10"> | ||
65 | <p>xx</p> | ||
66 | <ul> | ||
67 | <li>x</li> | ||
68 | <li>y</li> | ||
69 | </ul> | ||
70 | <p>xx</p> | ||
71 | |||
72 | <br> | ||
73 | |||
74 | <ul><li><ol><li>xx</li></ol></li><li>yy</li></ul> | ||
75 | </textarea> | ||
76 | </li> | ||
77 | <li> | ||
78 | <pre id="editor1_out"></pre> | ||
79 | </li> | ||
80 | </ul> | ||
81 | |||
82 | <h2 id="classes">Indent classes</h2> | ||
83 | <ul class="editors"> | ||
84 | <li> | ||
85 | <textarea cols="80" id="editor2" rows="10"> | ||
86 | <ul> | ||
87 | <li>a</li> | ||
88 | <li> | ||
89 | b | ||
90 | <ol> | ||
91 | <li>inner</li> | ||
92 | </ol> | ||
93 | </li> | ||
94 | <li>c</li> | ||
95 | </ul> | ||
96 | <p>moo</p> | ||
97 | </textarea> | ||
98 | </li> | ||
99 | <li> | ||
100 | <pre id="editor2_out"></pre> | ||
101 | </li> | ||
102 | </ul> | ||
103 | |||
104 | <h2 id="list">List only</h2> | ||
105 | <ul class="editors"> | ||
106 | <li> | ||
107 | <textarea cols="80" id="editor3" rows="10"> | ||
108 | <ul> | ||
109 | <li>a</li> | ||
110 | <li> | ||
111 | b | ||
112 | <ol> | ||
113 | <li>inner</li> | ||
114 | </ol> | ||
115 | </li> | ||
116 | <li>c</li> | ||
117 | </ul> | ||
118 | <p>moo</p> | ||
119 | </textarea> | ||
120 | </li> | ||
121 | <li> | ||
122 | <pre id="editor3_out"></pre> | ||
123 | </li> | ||
124 | </ul> | ||
125 | |||
126 | <h2 id="block">Block only</h2> | ||
127 | <ul class="editors"> | ||
128 | <li> | ||
129 | <textarea cols="80" id="editor4" rows="10"> | ||
130 | <ul> | ||
131 | <li>a</li> | ||
132 | <li> | ||
133 | b | ||
134 | <ol> | ||
135 | <li>inner</li> | ||
136 | </ol> | ||
137 | </li> | ||
138 | <li>c</li> | ||
139 | </ul> | ||
140 | <p>moo</p> | ||
141 | </textarea> | ||
142 | </li> | ||
143 | <li> | ||
144 | <pre id="editor4_out"></pre> | ||
145 | </li> | ||
146 | </ul> | ||
147 | |||
148 | <h2 id="br">CKEDITOR.ENTER_BR</h2> | ||
149 | <ul class="editors"> | ||
150 | <li> | ||
151 | <textarea cols="80" id="editor5" rows="10"> | ||
152 | Text | ||
153 | <br> | ||
154 | <ul> | ||
155 | <li>a</li> | ||
156 | <li>b</li> | ||
157 | </ul> | ||
158 | </textarea> | ||
159 | </li> | ||
160 | <li> | ||
161 | <pre id="editor5_out"></pre> | ||
162 | </li> | ||
163 | </ul> | ||
164 | <script> | ||
165 | |||
166 | var plugins = 'enterkey,toolbar,htmlwriter,wysiwygarea,undo,sourcearea,clipboard,list,justify,indent,indentlist,indentblock'; | ||
167 | |||
168 | CKEDITOR.config.indentOffset = 10; | ||
169 | CKEDITOR.addCss( '\ | ||
170 | .i1{ margin-left: 10px}\ | ||
171 | .i2{ margin-left: 20px}\ | ||
172 | .i3{ margin-left: 30px}' ); | ||
173 | |||
174 | function showData( event ) { | ||
175 | CKEDITOR.document.getById( this.name + '_out' ).setText( getHtmlWithSelection( this ) ); | ||
176 | } | ||
177 | |||
178 | function browserHtmlFix( html ) { | ||
179 | if ( CKEDITOR.env.ie && ( document.documentMode || CKEDITOR.env.version ) < 9 ) { | ||
180 | // Fix output base href on anchored link. | ||
181 | html = html.replace( /href="(.*?)#(.*?)"/gi, | ||
182 | function( m, base, anchor ) { | ||
183 | if ( base == window.location.href.replace( window.location.hash, '' ) ) | ||
184 | return 'href="#' + anchor + '"'; | ||
185 | |||
186 | return m; | ||
187 | } ); | ||
188 | |||
189 | // Fix output line break after HR. | ||
190 | html = html.replace( /(<HR>)\r\n/gi, function( m, hr ) { return hr; } ); | ||
191 | } | ||
192 | |||
193 | return html; | ||
194 | } | ||
195 | |||
196 | function getHtmlWithSelection( editorOrElement, root ) { | ||
197 | var isEditor = editorOrElement instanceof CKEDITOR.editor, | ||
198 | element = isEditor ? editorOrElement.editable() : editorOrElement; | ||
199 | |||
200 | root = isEditor ? element : | ||
201 | root instanceof CKEDITOR.dom.document ? | ||
202 | root.getBody() : root || CKEDITOR.document.getBody(); | ||
203 | |||
204 | function replaceWithBookmark( match, startOrEnd ) { | ||
205 | var bookmark; | ||
206 | switch( startOrEnd ) { | ||
207 | case 'S' : | ||
208 | bookmark = '['; | ||
209 | break; | ||
210 | case 'E' : | ||
211 | bookmark = ']'; | ||
212 | break; | ||
213 | case 'C' : | ||
214 | bookmark = '^'; | ||
215 | break; | ||
216 | } | ||
217 | return bookmark; | ||
218 | } | ||
219 | |||
220 | // Hack: force remove the filling char hack in Webkit. | ||
221 | isEditor && CKEDITOR.env.webkit && editorOrElement.fire( 'beforeSetMode' ); | ||
222 | |||
223 | var sel = isEditor ? editorOrElement.getSelection() | ||
224 | : new CKEDITOR.dom.selection( root ); | ||
225 | |||
226 | var doc = sel.document; | ||
227 | var ranges = sel.getRanges(), | ||
228 | range; | ||
229 | |||
230 | var bms = []; | ||
231 | var iter = ranges.createIterator(); | ||
232 | while( range = iter.getNextRange() ) | ||
233 | bms.push( range.createBookmark( 1 ) ); | ||
234 | |||
235 | var html = browserHtmlFix( isEditor ? editorOrElement.getData() : element.getHtml() ); | ||
236 | html = html.replace( /<span\b[^>]*?id="?cke_bm_\d+(\w)"?\b[^>]*?>.*?<\/span>/gi, | ||
237 | replaceWithBookmark ); | ||
238 | |||
239 | for ( var i = 0, bm; i < bms.length; i++ ) { | ||
240 | bm = bms[ i ]; | ||
241 | var start = doc.getById( bm.startNode ), | ||
242 | end = doc.getById( bm.endNode ); | ||
243 | |||
244 | start && start.remove(); | ||
245 | end && end.remove(); | ||
246 | } | ||
247 | |||
248 | return html; | ||
249 | } | ||
250 | |||
251 | CKEDITOR.on( 'instanceReady', function ( event ) { | ||
252 | var editor = event.editor; | ||
253 | |||
254 | showData.call( editor ); | ||
255 | |||
256 | editor.on( 'afterCommandExec', showData, editor ); | ||
257 | }); | ||
258 | |||
259 | CKEDITOR.replace( 'editor1', { | ||
260 | plugins: plugins | ||
261 | } ); | ||
262 | |||
263 | CKEDITOR.replace( 'editor2', { | ||
264 | plugins: plugins, | ||
265 | indentClasses: [ 'i1', 'i2', 'i3' ] | ||
266 | } ); | ||
267 | |||
268 | CKEDITOR.replace( 'editor3', { | ||
269 | plugins: plugins, | ||
270 | removePlugins: 'indentblock' | ||
271 | } ); | ||
272 | |||
273 | CKEDITOR.replace( 'editor4', { | ||
274 | plugins: plugins, | ||
275 | removePlugins: 'indentlist' | ||
276 | } ); | ||
277 | |||
278 | CKEDITOR.replace( 'editor5', { | ||
279 | plugins: plugins, | ||
280 | enterMode: CKEDITOR.ENTER_BR | ||
281 | } ); | ||
282 | </script> | ||
283 | </body> | ||
284 | </html> | ||
diff --git a/sources/plugins/indent/icons/hidpi/indent-rtl.png b/sources/plugins/indent/icons/hidpi/indent-rtl.png new file mode 100644 index 00000000..e14dc308 --- /dev/null +++ b/sources/plugins/indent/icons/hidpi/indent-rtl.png | |||
Binary files differ | |||
diff --git a/sources/plugins/indent/icons/hidpi/indent.png b/sources/plugins/indent/icons/hidpi/indent.png new file mode 100644 index 00000000..c629bb41 --- /dev/null +++ b/sources/plugins/indent/icons/hidpi/indent.png | |||
Binary files differ | |||
diff --git a/sources/plugins/indent/icons/hidpi/outdent-rtl.png b/sources/plugins/indent/icons/hidpi/outdent-rtl.png new file mode 100644 index 00000000..35f69abf --- /dev/null +++ b/sources/plugins/indent/icons/hidpi/outdent-rtl.png | |||
Binary files differ | |||
diff --git a/sources/plugins/indent/icons/hidpi/outdent.png b/sources/plugins/indent/icons/hidpi/outdent.png new file mode 100644 index 00000000..b00179e2 --- /dev/null +++ b/sources/plugins/indent/icons/hidpi/outdent.png | |||
Binary files differ | |||
diff --git a/sources/plugins/indent/icons/indent-rtl.png b/sources/plugins/indent/icons/indent-rtl.png new file mode 100644 index 00000000..ff3fd222 --- /dev/null +++ b/sources/plugins/indent/icons/indent-rtl.png | |||
Binary files differ | |||
diff --git a/sources/plugins/indent/icons/indent.png b/sources/plugins/indent/icons/indent.png new file mode 100644 index 00000000..3e151bc6 --- /dev/null +++ b/sources/plugins/indent/icons/indent.png | |||
Binary files differ | |||
diff --git a/sources/plugins/indent/icons/outdent-rtl.png b/sources/plugins/indent/icons/outdent-rtl.png new file mode 100644 index 00000000..7165424d --- /dev/null +++ b/sources/plugins/indent/icons/outdent-rtl.png | |||
Binary files differ | |||
diff --git a/sources/plugins/indent/icons/outdent.png b/sources/plugins/indent/icons/outdent.png new file mode 100644 index 00000000..54f205d6 --- /dev/null +++ b/sources/plugins/indent/icons/outdent.png | |||
Binary files differ | |||
diff --git a/sources/plugins/indent/lang/af.js b/sources/plugins/indent/lang/af.js new file mode 100644 index 00000000..dcf8aeed --- /dev/null +++ b/sources/plugins/indent/lang/af.js | |||
@@ -0,0 +1,8 @@ | |||
1 | /* | ||
2 | Copyright (c) 2003-2015, CKSource - Frederico Knabben. All rights reserved. | ||
3 | For licensing, see LICENSE.md or http://ckeditor.com/license | ||
4 | */ | ||
5 | CKEDITOR.plugins.setLang( 'indent', 'af', { | ||
6 | indent: 'Vergroot inspring', | ||
7 | outdent: 'Verklein inspring' | ||
8 | } ); | ||
diff --git a/sources/plugins/indent/lang/ar.js b/sources/plugins/indent/lang/ar.js new file mode 100644 index 00000000..bf427cba --- /dev/null +++ b/sources/plugins/indent/lang/ar.js | |||
@@ -0,0 +1,8 @@ | |||
1 | /* | ||
2 | Copyright (c) 2003-2015, CKSource - Frederico Knabben. All rights reserved. | ||
3 | For licensing, see LICENSE.md or http://ckeditor.com/license | ||
4 | */ | ||
5 | CKEDITOR.plugins.setLang( 'indent', 'ar', { | ||
6 | indent: 'زيادة المسافة البادئة', | ||
7 | outdent: 'إنقاص المسافة البادئة' | ||
8 | } ); | ||
diff --git a/sources/plugins/indent/lang/bg.js b/sources/plugins/indent/lang/bg.js new file mode 100644 index 00000000..329363a6 --- /dev/null +++ b/sources/plugins/indent/lang/bg.js | |||
@@ -0,0 +1,8 @@ | |||
1 | /* | ||
2 | Copyright (c) 2003-2015, CKSource - Frederico Knabben. All rights reserved. | ||
3 | For licensing, see LICENSE.md or http://ckeditor.com/license | ||
4 | */ | ||
5 | CKEDITOR.plugins.setLang( 'indent', 'bg', { | ||
6 | indent: 'Увеличаване на отстъпа', | ||
7 | outdent: 'Намаляване на отстъпа' | ||
8 | } ); | ||
diff --git a/sources/plugins/indent/lang/bn.js b/sources/plugins/indent/lang/bn.js new file mode 100644 index 00000000..331bede3 --- /dev/null +++ b/sources/plugins/indent/lang/bn.js | |||
@@ -0,0 +1,8 @@ | |||
1 | /* | ||
2 | Copyright (c) 2003-2015, CKSource - Frederico Knabben. All rights reserved. | ||
3 | For licensing, see LICENSE.md or http://ckeditor.com/license | ||
4 | */ | ||
5 | CKEDITOR.plugins.setLang( 'indent', 'bn', { | ||
6 | indent: 'ইনডেন্ট বাড়াও', | ||
7 | outdent: 'ইনডেন্ট কমাও' | ||
8 | } ); | ||
diff --git a/sources/plugins/indent/lang/bs.js b/sources/plugins/indent/lang/bs.js new file mode 100644 index 00000000..ee41a42d --- /dev/null +++ b/sources/plugins/indent/lang/bs.js | |||
@@ -0,0 +1,8 @@ | |||
1 | /* | ||
2 | Copyright (c) 2003-2015, CKSource - Frederico Knabben. All rights reserved. | ||
3 | For licensing, see LICENSE.md or http://ckeditor.com/license | ||
4 | */ | ||
5 | CKEDITOR.plugins.setLang( 'indent', 'bs', { | ||
6 | indent: 'Poveæaj uvod', | ||
7 | outdent: 'Smanji uvod' | ||
8 | } ); | ||
diff --git a/sources/plugins/indent/lang/ca.js b/sources/plugins/indent/lang/ca.js new file mode 100644 index 00000000..60756840 --- /dev/null +++ b/sources/plugins/indent/lang/ca.js | |||
@@ -0,0 +1,8 @@ | |||
1 | /* | ||
2 | Copyright (c) 2003-2015, CKSource - Frederico Knabben. All rights reserved. | ||
3 | For licensing, see LICENSE.md or http://ckeditor.com/license | ||
4 | */ | ||
5 | CKEDITOR.plugins.setLang( 'indent', 'ca', { | ||
6 | indent: 'Augmenta el sagnat', | ||
7 | outdent: 'Redueix el sagnat' | ||
8 | } ); | ||
diff --git a/sources/plugins/indent/lang/cs.js b/sources/plugins/indent/lang/cs.js new file mode 100644 index 00000000..14b1474b --- /dev/null +++ b/sources/plugins/indent/lang/cs.js | |||
@@ -0,0 +1,8 @@ | |||
1 | /* | ||
2 | Copyright (c) 2003-2015, CKSource - Frederico Knabben. All rights reserved. | ||
3 | For licensing, see LICENSE.md or http://ckeditor.com/license | ||
4 | */ | ||
5 | CKEDITOR.plugins.setLang( 'indent', 'cs', { | ||
6 | indent: 'Zvětšit odsazení', | ||
7 | outdent: 'Zmenšit odsazení' | ||
8 | } ); | ||
diff --git a/sources/plugins/indent/lang/cy.js b/sources/plugins/indent/lang/cy.js new file mode 100644 index 00000000..fe38f2ff --- /dev/null +++ b/sources/plugins/indent/lang/cy.js | |||
@@ -0,0 +1,8 @@ | |||
1 | /* | ||
2 | Copyright (c) 2003-2015, CKSource - Frederico Knabben. All rights reserved. | ||
3 | For licensing, see LICENSE.md or http://ckeditor.com/license | ||
4 | */ | ||
5 | CKEDITOR.plugins.setLang( 'indent', 'cy', { | ||
6 | indent: 'Cynyddu\'r Mewnoliad', | ||
7 | outdent: 'Lleihau\'r Mewnoliad' | ||
8 | } ); | ||
diff --git a/sources/plugins/indent/lang/da.js b/sources/plugins/indent/lang/da.js new file mode 100644 index 00000000..fa22b3b3 --- /dev/null +++ b/sources/plugins/indent/lang/da.js | |||
@@ -0,0 +1,8 @@ | |||
1 | /* | ||
2 | Copyright (c) 2003-2015, CKSource - Frederico Knabben. All rights reserved. | ||
3 | For licensing, see LICENSE.md or http://ckeditor.com/license | ||
4 | */ | ||
5 | CKEDITOR.plugins.setLang( 'indent', 'da', { | ||
6 | indent: 'Forøg indrykning', | ||
7 | outdent: 'Formindsk indrykning' | ||
8 | } ); | ||
diff --git a/sources/plugins/indent/lang/de.js b/sources/plugins/indent/lang/de.js new file mode 100644 index 00000000..315311dd --- /dev/null +++ b/sources/plugins/indent/lang/de.js | |||
@@ -0,0 +1,8 @@ | |||
1 | /* | ||
2 | Copyright (c) 2003-2015, CKSource - Frederico Knabben. All rights reserved. | ||
3 | For licensing, see LICENSE.md or http://ckeditor.com/license | ||
4 | */ | ||
5 | CKEDITOR.plugins.setLang( 'indent', 'de', { | ||
6 | indent: 'Einzug erhöhen', | ||
7 | outdent: 'Einzug verringern' | ||
8 | } ); | ||
diff --git a/sources/plugins/indent/lang/el.js b/sources/plugins/indent/lang/el.js new file mode 100644 index 00000000..55e5678e --- /dev/null +++ b/sources/plugins/indent/lang/el.js | |||
@@ -0,0 +1,8 @@ | |||
1 | /* | ||
2 | Copyright (c) 2003-2015, CKSource - Frederico Knabben. All rights reserved. | ||
3 | For licensing, see LICENSE.md or http://ckeditor.com/license | ||
4 | */ | ||
5 | CKEDITOR.plugins.setLang( 'indent', 'el', { | ||
6 | indent: 'Αύξηση Εσοχής', | ||
7 | outdent: 'Μείωση Εσοχής' | ||
8 | } ); | ||
diff --git a/sources/plugins/indent/lang/en-au.js b/sources/plugins/indent/lang/en-au.js new file mode 100644 index 00000000..be93b7b0 --- /dev/null +++ b/sources/plugins/indent/lang/en-au.js | |||
@@ -0,0 +1,8 @@ | |||
1 | /* | ||
2 | Copyright (c) 2003-2015, CKSource - Frederico Knabben. All rights reserved. | ||
3 | For licensing, see LICENSE.md or http://ckeditor.com/license | ||
4 | */ | ||
5 | CKEDITOR.plugins.setLang( 'indent', 'en-au', { | ||
6 | indent: 'Increase Indent', | ||
7 | outdent: 'Decrease Indent' | ||
8 | } ); | ||
diff --git a/sources/plugins/indent/lang/en-ca.js b/sources/plugins/indent/lang/en-ca.js new file mode 100644 index 00000000..91b5f051 --- /dev/null +++ b/sources/plugins/indent/lang/en-ca.js | |||
@@ -0,0 +1,8 @@ | |||
1 | /* | ||
2 | Copyright (c) 2003-2015, CKSource - Frederico Knabben. All rights reserved. | ||
3 | For licensing, see LICENSE.md or http://ckeditor.com/license | ||
4 | */ | ||
5 | CKEDITOR.plugins.setLang( 'indent', 'en-ca', { | ||
6 | indent: 'Increase Indent', | ||
7 | outdent: 'Decrease Indent' | ||
8 | } ); | ||
diff --git a/sources/plugins/indent/lang/en-gb.js b/sources/plugins/indent/lang/en-gb.js new file mode 100644 index 00000000..6f98aa99 --- /dev/null +++ b/sources/plugins/indent/lang/en-gb.js | |||
@@ -0,0 +1,8 @@ | |||
1 | /* | ||
2 | Copyright (c) 2003-2015, CKSource - Frederico Knabben. All rights reserved. | ||
3 | For licensing, see LICENSE.md or http://ckeditor.com/license | ||
4 | */ | ||
5 | CKEDITOR.plugins.setLang( 'indent', 'en-gb', { | ||
6 | indent: 'Increase Indent', | ||
7 | outdent: 'Decrease Indent' | ||
8 | } ); | ||
diff --git a/sources/plugins/indent/lang/en.js b/sources/plugins/indent/lang/en.js new file mode 100644 index 00000000..6403f726 --- /dev/null +++ b/sources/plugins/indent/lang/en.js | |||
@@ -0,0 +1,8 @@ | |||
1 | /* | ||
2 | Copyright (c) 2003-2015, CKSource - Frederico Knabben. All rights reserved. | ||
3 | For licensing, see LICENSE.md or http://ckeditor.com/license | ||
4 | */ | ||
5 | CKEDITOR.plugins.setLang( 'indent', 'en', { | ||
6 | indent: 'Increase Indent', | ||
7 | outdent: 'Decrease Indent' | ||
8 | } ); | ||
diff --git a/sources/plugins/indent/lang/eo.js b/sources/plugins/indent/lang/eo.js new file mode 100644 index 00000000..6dc6e0dc --- /dev/null +++ b/sources/plugins/indent/lang/eo.js | |||
@@ -0,0 +1,8 @@ | |||
1 | /* | ||
2 | Copyright (c) 2003-2015, CKSource - Frederico Knabben. All rights reserved. | ||
3 | For licensing, see LICENSE.md or http://ckeditor.com/license | ||
4 | */ | ||
5 | CKEDITOR.plugins.setLang( 'indent', 'eo', { | ||
6 | indent: 'Pligrandigi Krommarĝenon', | ||
7 | outdent: 'Malpligrandigi Krommarĝenon' | ||
8 | } ); | ||
diff --git a/sources/plugins/indent/lang/es.js b/sources/plugins/indent/lang/es.js new file mode 100644 index 00000000..cd8845b2 --- /dev/null +++ b/sources/plugins/indent/lang/es.js | |||
@@ -0,0 +1,8 @@ | |||
1 | /* | ||
2 | Copyright (c) 2003-2015, CKSource - Frederico Knabben. All rights reserved. | ||
3 | For licensing, see LICENSE.md or http://ckeditor.com/license | ||
4 | */ | ||
5 | CKEDITOR.plugins.setLang( 'indent', 'es', { | ||
6 | indent: 'Aumentar Sangría', | ||
7 | outdent: 'Disminuir Sangría' | ||
8 | } ); | ||
diff --git a/sources/plugins/indent/lang/et.js b/sources/plugins/indent/lang/et.js new file mode 100644 index 00000000..30082dae --- /dev/null +++ b/sources/plugins/indent/lang/et.js | |||
@@ -0,0 +1,8 @@ | |||
1 | /* | ||
2 | Copyright (c) 2003-2015, CKSource - Frederico Knabben. All rights reserved. | ||
3 | For licensing, see LICENSE.md or http://ckeditor.com/license | ||
4 | */ | ||
5 | CKEDITOR.plugins.setLang( 'indent', 'et', { | ||
6 | indent: 'Taande suurendamine', | ||
7 | outdent: 'Taande vähendamine' | ||
8 | } ); | ||
diff --git a/sources/plugins/indent/lang/eu.js b/sources/plugins/indent/lang/eu.js new file mode 100644 index 00000000..ae12a9b0 --- /dev/null +++ b/sources/plugins/indent/lang/eu.js | |||
@@ -0,0 +1,8 @@ | |||
1 | /* | ||
2 | Copyright (c) 2003-2015, CKSource - Frederico Knabben. All rights reserved. | ||
3 | For licensing, see LICENSE.md or http://ckeditor.com/license | ||
4 | */ | ||
5 | CKEDITOR.plugins.setLang( 'indent', 'eu', { | ||
6 | indent: 'Handitu koska', | ||
7 | outdent: 'Txikitu koska' | ||
8 | } ); | ||
diff --git a/sources/plugins/indent/lang/fa.js b/sources/plugins/indent/lang/fa.js new file mode 100644 index 00000000..71a60492 --- /dev/null +++ b/sources/plugins/indent/lang/fa.js | |||
@@ -0,0 +1,8 @@ | |||
1 | /* | ||
2 | Copyright (c) 2003-2015, CKSource - Frederico Knabben. All rights reserved. | ||
3 | For licensing, see LICENSE.md or http://ckeditor.com/license | ||
4 | */ | ||
5 | CKEDITOR.plugins.setLang( 'indent', 'fa', { | ||
6 | indent: 'افزایش تورفتگی', | ||
7 | outdent: 'کاهش تورفتگی' | ||
8 | } ); | ||
diff --git a/sources/plugins/indent/lang/fi.js b/sources/plugins/indent/lang/fi.js new file mode 100644 index 00000000..42c28b01 --- /dev/null +++ b/sources/plugins/indent/lang/fi.js | |||
@@ -0,0 +1,8 @@ | |||
1 | /* | ||
2 | Copyright (c) 2003-2015, CKSource - Frederico Knabben. All rights reserved. | ||
3 | For licensing, see LICENSE.md or http://ckeditor.com/license | ||
4 | */ | ||
5 | CKEDITOR.plugins.setLang( 'indent', 'fi', { | ||
6 | indent: 'Suurenna sisennystä', | ||
7 | outdent: 'Pienennä sisennystä' | ||
8 | } ); | ||
diff --git a/sources/plugins/indent/lang/fo.js b/sources/plugins/indent/lang/fo.js new file mode 100644 index 00000000..582cf2ae --- /dev/null +++ b/sources/plugins/indent/lang/fo.js | |||
@@ -0,0 +1,8 @@ | |||
1 | /* | ||
2 | Copyright (c) 2003-2015, CKSource - Frederico Knabben. All rights reserved. | ||
3 | For licensing, see LICENSE.md or http://ckeditor.com/license | ||
4 | */ | ||
5 | CKEDITOR.plugins.setLang( 'indent', 'fo', { | ||
6 | indent: 'Økja reglubrotarinntriv', | ||
7 | outdent: 'Minka reglubrotarinntriv' | ||
8 | } ); | ||
diff --git a/sources/plugins/indent/lang/fr-ca.js b/sources/plugins/indent/lang/fr-ca.js new file mode 100644 index 00000000..37725cea --- /dev/null +++ b/sources/plugins/indent/lang/fr-ca.js | |||
@@ -0,0 +1,8 @@ | |||
1 | /* | ||
2 | Copyright (c) 2003-2015, CKSource - Frederico Knabben. All rights reserved. | ||
3 | For licensing, see LICENSE.md or http://ckeditor.com/license | ||
4 | */ | ||
5 | CKEDITOR.plugins.setLang( 'indent', 'fr-ca', { | ||
6 | indent: 'Augmenter le retrait', | ||
7 | outdent: 'Diminuer le retrait' | ||
8 | } ); | ||
diff --git a/sources/plugins/indent/lang/fr.js b/sources/plugins/indent/lang/fr.js new file mode 100644 index 00000000..eda26f40 --- /dev/null +++ b/sources/plugins/indent/lang/fr.js | |||
@@ -0,0 +1,8 @@ | |||
1 | /* | ||
2 | Copyright (c) 2003-2015, CKSource - Frederico Knabben. All rights reserved. | ||
3 | For licensing, see LICENSE.md or http://ckeditor.com/license | ||
4 | */ | ||
5 | CKEDITOR.plugins.setLang( 'indent', 'fr', { | ||
6 | indent: 'Augmenter le retrait (tabulation)', | ||
7 | outdent: 'Diminuer le retrait (tabulation)' | ||
8 | } ); | ||
diff --git a/sources/plugins/indent/lang/gl.js b/sources/plugins/indent/lang/gl.js new file mode 100644 index 00000000..1fc4350d --- /dev/null +++ b/sources/plugins/indent/lang/gl.js | |||
@@ -0,0 +1,8 @@ | |||
1 | /* | ||
2 | Copyright (c) 2003-2015, CKSource - Frederico Knabben. All rights reserved. | ||
3 | For licensing, see LICENSE.md or http://ckeditor.com/license | ||
4 | */ | ||
5 | CKEDITOR.plugins.setLang( 'indent', 'gl', { | ||
6 | indent: 'Aumentar a sangría', | ||
7 | outdent: 'Reducir a sangría' | ||
8 | } ); | ||
diff --git a/sources/plugins/indent/lang/gu.js b/sources/plugins/indent/lang/gu.js new file mode 100644 index 00000000..935bbaf3 --- /dev/null +++ b/sources/plugins/indent/lang/gu.js | |||
@@ -0,0 +1,8 @@ | |||
1 | /* | ||
2 | Copyright (c) 2003-2015, CKSource - Frederico Knabben. All rights reserved. | ||
3 | For licensing, see LICENSE.md or http://ckeditor.com/license | ||
4 | */ | ||
5 | CKEDITOR.plugins.setLang( 'indent', 'gu', { | ||
6 | indent: 'ઇન્ડેન્ટ, લીટીના આરંભમાં જગ્યા વધારવી', | ||
7 | outdent: 'ઇન્ડેન્ટ લીટીના આરંભમાં જગ્યા ઘટાડવી' | ||
8 | } ); | ||
diff --git a/sources/plugins/indent/lang/he.js b/sources/plugins/indent/lang/he.js new file mode 100644 index 00000000..a653131e --- /dev/null +++ b/sources/plugins/indent/lang/he.js | |||
@@ -0,0 +1,8 @@ | |||
1 | /* | ||
2 | Copyright (c) 2003-2015, CKSource - Frederico Knabben. All rights reserved. | ||
3 | For licensing, see LICENSE.md or http://ckeditor.com/license | ||
4 | */ | ||
5 | CKEDITOR.plugins.setLang( 'indent', 'he', { | ||
6 | indent: 'הגדלת הזחה', | ||
7 | outdent: 'הקטנת הזחה' | ||
8 | } ); | ||
diff --git a/sources/plugins/indent/lang/hi.js b/sources/plugins/indent/lang/hi.js new file mode 100644 index 00000000..e48eeafb --- /dev/null +++ b/sources/plugins/indent/lang/hi.js | |||
@@ -0,0 +1,8 @@ | |||
1 | /* | ||
2 | Copyright (c) 2003-2015, CKSource - Frederico Knabben. All rights reserved. | ||
3 | For licensing, see LICENSE.md or http://ckeditor.com/license | ||
4 | */ | ||
5 | CKEDITOR.plugins.setLang( 'indent', 'hi', { | ||
6 | indent: 'इन्डॅन्ट बढ़ायें', | ||
7 | outdent: 'इन्डॅन्ट कम करें' | ||
8 | } ); | ||
diff --git a/sources/plugins/indent/lang/hr.js b/sources/plugins/indent/lang/hr.js new file mode 100644 index 00000000..47a0b2c2 --- /dev/null +++ b/sources/plugins/indent/lang/hr.js | |||
@@ -0,0 +1,8 @@ | |||
1 | /* | ||
2 | Copyright (c) 2003-2015, CKSource - Frederico Knabben. All rights reserved. | ||
3 | For licensing, see LICENSE.md or http://ckeditor.com/license | ||
4 | */ | ||
5 | CKEDITOR.plugins.setLang( 'indent', 'hr', { | ||
6 | indent: 'Pomakni udesno', | ||
7 | outdent: 'Pomakni ulijevo' | ||
8 | } ); | ||
diff --git a/sources/plugins/indent/lang/hu.js b/sources/plugins/indent/lang/hu.js new file mode 100644 index 00000000..1a55b43f --- /dev/null +++ b/sources/plugins/indent/lang/hu.js | |||
@@ -0,0 +1,8 @@ | |||
1 | /* | ||
2 | Copyright (c) 2003-2015, CKSource - Frederico Knabben. All rights reserved. | ||
3 | For licensing, see LICENSE.md or http://ckeditor.com/license | ||
4 | */ | ||
5 | CKEDITOR.plugins.setLang( 'indent', 'hu', { | ||
6 | indent: 'Behúzás növelése', | ||
7 | outdent: 'Behúzás csökkentése' | ||
8 | } ); | ||
diff --git a/sources/plugins/indent/lang/id.js b/sources/plugins/indent/lang/id.js new file mode 100644 index 00000000..4b26b7ca --- /dev/null +++ b/sources/plugins/indent/lang/id.js | |||
@@ -0,0 +1,8 @@ | |||
1 | /* | ||
2 | Copyright (c) 2003-2015, CKSource - Frederico Knabben. All rights reserved. | ||
3 | For licensing, see LICENSE.md or http://ckeditor.com/license | ||
4 | */ | ||
5 | CKEDITOR.plugins.setLang( 'indent', 'id', { | ||
6 | indent: 'Tingkatkan Lekuk', | ||
7 | outdent: 'Kurangi Lekuk' | ||
8 | } ); | ||
diff --git a/sources/plugins/indent/lang/is.js b/sources/plugins/indent/lang/is.js new file mode 100644 index 00000000..4ef6c390 --- /dev/null +++ b/sources/plugins/indent/lang/is.js | |||
@@ -0,0 +1,8 @@ | |||
1 | /* | ||
2 | Copyright (c) 2003-2015, CKSource - Frederico Knabben. All rights reserved. | ||
3 | For licensing, see LICENSE.md or http://ckeditor.com/license | ||
4 | */ | ||
5 | CKEDITOR.plugins.setLang( 'indent', 'is', { | ||
6 | indent: 'Minnka inndrátt', | ||
7 | outdent: 'Auka inndrátt' | ||
8 | } ); | ||
diff --git a/sources/plugins/indent/lang/it.js b/sources/plugins/indent/lang/it.js new file mode 100644 index 00000000..aa70e80d --- /dev/null +++ b/sources/plugins/indent/lang/it.js | |||
@@ -0,0 +1,8 @@ | |||
1 | /* | ||
2 | Copyright (c) 2003-2015, CKSource - Frederico Knabben. All rights reserved. | ||
3 | For licensing, see LICENSE.md or http://ckeditor.com/license | ||
4 | */ | ||
5 | CKEDITOR.plugins.setLang( 'indent', 'it', { | ||
6 | indent: 'Aumenta rientro', | ||
7 | outdent: 'Riduci rientro' | ||
8 | } ); | ||
diff --git a/sources/plugins/indent/lang/ja.js b/sources/plugins/indent/lang/ja.js new file mode 100644 index 00000000..daaaa77d --- /dev/null +++ b/sources/plugins/indent/lang/ja.js | |||
@@ -0,0 +1,8 @@ | |||
1 | /* | ||
2 | Copyright (c) 2003-2015, CKSource - Frederico Knabben. All rights reserved. | ||
3 | For licensing, see LICENSE.md or http://ckeditor.com/license | ||
4 | */ | ||
5 | CKEDITOR.plugins.setLang( 'indent', 'ja', { | ||
6 | indent: 'インデント', | ||
7 | outdent: 'インデント解除' | ||
8 | } ); | ||
diff --git a/sources/plugins/indent/lang/ka.js b/sources/plugins/indent/lang/ka.js new file mode 100644 index 00000000..7c179132 --- /dev/null +++ b/sources/plugins/indent/lang/ka.js | |||
@@ -0,0 +1,8 @@ | |||
1 | /* | ||
2 | Copyright (c) 2003-2015, CKSource - Frederico Knabben. All rights reserved. | ||
3 | For licensing, see LICENSE.md or http://ckeditor.com/license | ||
4 | */ | ||
5 | CKEDITOR.plugins.setLang( 'indent', 'ka', { | ||
6 | indent: 'მეტად შეწევა', | ||
7 | outdent: 'ნაკლებად შეწევა' | ||
8 | } ); | ||
diff --git a/sources/plugins/indent/lang/km.js b/sources/plugins/indent/lang/km.js new file mode 100644 index 00000000..4c6cb692 --- /dev/null +++ b/sources/plugins/indent/lang/km.js | |||
@@ -0,0 +1,8 @@ | |||
1 | /* | ||
2 | Copyright (c) 2003-2015, CKSource - Frederico Knabben. All rights reserved. | ||
3 | For licensing, see LICENSE.md or http://ckeditor.com/license | ||
4 | */ | ||
5 | CKEDITOR.plugins.setLang( 'indent', 'km', { | ||
6 | indent: 'បន្ថែមការចូលបន្ទាត់', | ||
7 | outdent: 'បន្ថយការចូលបន្ទាត់' | ||
8 | } ); | ||
diff --git a/sources/plugins/indent/lang/ko.js b/sources/plugins/indent/lang/ko.js new file mode 100644 index 00000000..39f63737 --- /dev/null +++ b/sources/plugins/indent/lang/ko.js | |||
@@ -0,0 +1,8 @@ | |||
1 | /* | ||
2 | Copyright (c) 2003-2015, CKSource - Frederico Knabben. All rights reserved. | ||
3 | For licensing, see LICENSE.md or http://ckeditor.com/license | ||
4 | */ | ||
5 | CKEDITOR.plugins.setLang( 'indent', 'ko', { | ||
6 | indent: '들여쓰기', | ||
7 | outdent: '내어쓰기' | ||
8 | } ); | ||
diff --git a/sources/plugins/indent/lang/ku.js b/sources/plugins/indent/lang/ku.js new file mode 100644 index 00000000..25349904 --- /dev/null +++ b/sources/plugins/indent/lang/ku.js | |||
@@ -0,0 +1,8 @@ | |||
1 | /* | ||
2 | Copyright (c) 2003-2015, CKSource - Frederico Knabben. All rights reserved. | ||
3 | For licensing, see LICENSE.md or http://ckeditor.com/license | ||
4 | */ | ||
5 | CKEDITOR.plugins.setLang( 'indent', 'ku', { | ||
6 | indent: 'زیادکردنی بۆشایی', | ||
7 | outdent: 'کەمکردنەوەی بۆشایی' | ||
8 | } ); | ||
diff --git a/sources/plugins/indent/lang/lt.js b/sources/plugins/indent/lang/lt.js new file mode 100644 index 00000000..263fa04d --- /dev/null +++ b/sources/plugins/indent/lang/lt.js | |||
@@ -0,0 +1,8 @@ | |||
1 | /* | ||
2 | Copyright (c) 2003-2015, CKSource - Frederico Knabben. All rights reserved. | ||
3 | For licensing, see LICENSE.md or http://ckeditor.com/license | ||
4 | */ | ||
5 | CKEDITOR.plugins.setLang( 'indent', 'lt', { | ||
6 | indent: 'Padidinti įtrauką', | ||
7 | outdent: 'Sumažinti įtrauką' | ||
8 | } ); | ||
diff --git a/sources/plugins/indent/lang/lv.js b/sources/plugins/indent/lang/lv.js new file mode 100644 index 00000000..0315bfb7 --- /dev/null +++ b/sources/plugins/indent/lang/lv.js | |||
@@ -0,0 +1,8 @@ | |||
1 | /* | ||
2 | Copyright (c) 2003-2015, CKSource - Frederico Knabben. All rights reserved. | ||
3 | For licensing, see LICENSE.md or http://ckeditor.com/license | ||
4 | */ | ||
5 | CKEDITOR.plugins.setLang( 'indent', 'lv', { | ||
6 | indent: 'Palielināt atkāpi', | ||
7 | outdent: 'Samazināt atkāpi' | ||
8 | } ); | ||
diff --git a/sources/plugins/indent/lang/mk.js b/sources/plugins/indent/lang/mk.js new file mode 100644 index 00000000..52d13c35 --- /dev/null +++ b/sources/plugins/indent/lang/mk.js | |||
@@ -0,0 +1,8 @@ | |||
1 | /* | ||
2 | Copyright (c) 2003-2015, CKSource - Frederico Knabben. All rights reserved. | ||
3 | For licensing, see LICENSE.md or http://ckeditor.com/license | ||
4 | */ | ||
5 | CKEDITOR.plugins.setLang( 'indent', 'mk', { | ||
6 | indent: 'Increase Indent', // MISSING | ||
7 | outdent: 'Decrease Indent' // MISSING | ||
8 | } ); | ||
diff --git a/sources/plugins/indent/lang/mn.js b/sources/plugins/indent/lang/mn.js new file mode 100644 index 00000000..9eded3ef --- /dev/null +++ b/sources/plugins/indent/lang/mn.js | |||
@@ -0,0 +1,8 @@ | |||
1 | /* | ||
2 | Copyright (c) 2003-2015, CKSource - Frederico Knabben. All rights reserved. | ||
3 | For licensing, see LICENSE.md or http://ckeditor.com/license | ||
4 | */ | ||
5 | CKEDITOR.plugins.setLang( 'indent', 'mn', { | ||
6 | indent: 'Догол мөр хасах', | ||
7 | outdent: 'Догол мөр нэмэх' | ||
8 | } ); | ||
diff --git a/sources/plugins/indent/lang/ms.js b/sources/plugins/indent/lang/ms.js new file mode 100644 index 00000000..7d3a5f29 --- /dev/null +++ b/sources/plugins/indent/lang/ms.js | |||
@@ -0,0 +1,8 @@ | |||
1 | /* | ||
2 | Copyright (c) 2003-2015, CKSource - Frederico Knabben. All rights reserved. | ||
3 | For licensing, see LICENSE.md or http://ckeditor.com/license | ||
4 | */ | ||
5 | CKEDITOR.plugins.setLang( 'indent', 'ms', { | ||
6 | indent: 'Tambahkan Inden', | ||
7 | outdent: 'Kurangkan Inden' | ||
8 | } ); | ||
diff --git a/sources/plugins/indent/lang/nb.js b/sources/plugins/indent/lang/nb.js new file mode 100644 index 00000000..3e124d55 --- /dev/null +++ b/sources/plugins/indent/lang/nb.js | |||
@@ -0,0 +1,8 @@ | |||
1 | /* | ||
2 | Copyright (c) 2003-2015, CKSource - Frederico Knabben. All rights reserved. | ||
3 | For licensing, see LICENSE.md or http://ckeditor.com/license | ||
4 | */ | ||
5 | CKEDITOR.plugins.setLang( 'indent', 'nb', { | ||
6 | indent: 'Øk innrykk', | ||
7 | outdent: 'Reduser innrykk' | ||
8 | } ); | ||
diff --git a/sources/plugins/indent/lang/nl.js b/sources/plugins/indent/lang/nl.js new file mode 100644 index 00000000..0cdf066f --- /dev/null +++ b/sources/plugins/indent/lang/nl.js | |||
@@ -0,0 +1,8 @@ | |||
1 | /* | ||
2 | Copyright (c) 2003-2015, CKSource - Frederico Knabben. All rights reserved. | ||
3 | For licensing, see LICENSE.md or http://ckeditor.com/license | ||
4 | */ | ||
5 | CKEDITOR.plugins.setLang( 'indent', 'nl', { | ||
6 | indent: 'Inspringing vergroten', | ||
7 | outdent: 'Inspringing verkleinen' | ||
8 | } ); | ||
diff --git a/sources/plugins/indent/lang/no.js b/sources/plugins/indent/lang/no.js new file mode 100644 index 00000000..eeb5e1ce --- /dev/null +++ b/sources/plugins/indent/lang/no.js | |||
@@ -0,0 +1,8 @@ | |||
1 | /* | ||
2 | Copyright (c) 2003-2015, CKSource - Frederico Knabben. All rights reserved. | ||
3 | For licensing, see LICENSE.md or http://ckeditor.com/license | ||
4 | */ | ||
5 | CKEDITOR.plugins.setLang( 'indent', 'no', { | ||
6 | indent: 'Øk innrykk', | ||
7 | outdent: 'Reduser innrykk' | ||
8 | } ); | ||
diff --git a/sources/plugins/indent/lang/pl.js b/sources/plugins/indent/lang/pl.js new file mode 100644 index 00000000..321f520b --- /dev/null +++ b/sources/plugins/indent/lang/pl.js | |||
@@ -0,0 +1,8 @@ | |||
1 | /* | ||
2 | Copyright (c) 2003-2015, CKSource - Frederico Knabben. All rights reserved. | ||
3 | For licensing, see LICENSE.md or http://ckeditor.com/license | ||
4 | */ | ||
5 | CKEDITOR.plugins.setLang( 'indent', 'pl', { | ||
6 | indent: 'Zwiększ wcięcie', | ||
7 | outdent: 'Zmniejsz wcięcie' | ||
8 | } ); | ||
diff --git a/sources/plugins/indent/lang/pt-br.js b/sources/plugins/indent/lang/pt-br.js new file mode 100644 index 00000000..b2334695 --- /dev/null +++ b/sources/plugins/indent/lang/pt-br.js | |||
@@ -0,0 +1,8 @@ | |||
1 | /* | ||
2 | Copyright (c) 2003-2015, CKSource - Frederico Knabben. All rights reserved. | ||
3 | For licensing, see LICENSE.md or http://ckeditor.com/license | ||
4 | */ | ||
5 | CKEDITOR.plugins.setLang( 'indent', 'pt-br', { | ||
6 | indent: 'Aumentar Recuo', | ||
7 | outdent: 'Diminuir Recuo' | ||
8 | } ); | ||
diff --git a/sources/plugins/indent/lang/pt.js b/sources/plugins/indent/lang/pt.js new file mode 100644 index 00000000..5e395317 --- /dev/null +++ b/sources/plugins/indent/lang/pt.js | |||
@@ -0,0 +1,8 @@ | |||
1 | /* | ||
2 | Copyright (c) 2003-2015, CKSource - Frederico Knabben. All rights reserved. | ||
3 | For licensing, see LICENSE.md or http://ckeditor.com/license | ||
4 | */ | ||
5 | CKEDITOR.plugins.setLang( 'indent', 'pt', { | ||
6 | indent: 'Aumentar Avanço', | ||
7 | outdent: 'Diminuir Avanço' | ||
8 | } ); | ||
diff --git a/sources/plugins/indent/lang/ro.js b/sources/plugins/indent/lang/ro.js new file mode 100644 index 00000000..639d4f03 --- /dev/null +++ b/sources/plugins/indent/lang/ro.js | |||
@@ -0,0 +1,8 @@ | |||
1 | /* | ||
2 | Copyright (c) 2003-2015, CKSource - Frederico Knabben. All rights reserved. | ||
3 | For licensing, see LICENSE.md or http://ckeditor.com/license | ||
4 | */ | ||
5 | CKEDITOR.plugins.setLang( 'indent', 'ro', { | ||
6 | indent: 'Creşte indentarea', | ||
7 | outdent: 'Scade indentarea' | ||
8 | } ); | ||
diff --git a/sources/plugins/indent/lang/ru.js b/sources/plugins/indent/lang/ru.js new file mode 100644 index 00000000..ddbb0508 --- /dev/null +++ b/sources/plugins/indent/lang/ru.js | |||
@@ -0,0 +1,8 @@ | |||
1 | /* | ||
2 | Copyright (c) 2003-2015, CKSource - Frederico Knabben. All rights reserved. | ||
3 | For licensing, see LICENSE.md or http://ckeditor.com/license | ||
4 | */ | ||
5 | CKEDITOR.plugins.setLang( 'indent', 'ru', { | ||
6 | indent: 'Увеличить отступ', | ||
7 | outdent: 'Уменьшить отступ' | ||
8 | } ); | ||
diff --git a/sources/plugins/indent/lang/si.js b/sources/plugins/indent/lang/si.js new file mode 100644 index 00000000..fe5a8e2b --- /dev/null +++ b/sources/plugins/indent/lang/si.js | |||
@@ -0,0 +1,8 @@ | |||
1 | /* | ||
2 | Copyright (c) 2003-2015, CKSource - Frederico Knabben. All rights reserved. | ||
3 | For licensing, see LICENSE.md or http://ckeditor.com/license | ||
4 | */ | ||
5 | CKEDITOR.plugins.setLang( 'indent', 'si', { | ||
6 | indent: 'අතර පරතරය වැඩිකරන්න', | ||
7 | outdent: 'අතර පරතරය අඩුකරන්න' | ||
8 | } ); | ||
diff --git a/sources/plugins/indent/lang/sk.js b/sources/plugins/indent/lang/sk.js new file mode 100644 index 00000000..a5210ee0 --- /dev/null +++ b/sources/plugins/indent/lang/sk.js | |||
@@ -0,0 +1,8 @@ | |||
1 | /* | ||
2 | Copyright (c) 2003-2015, CKSource - Frederico Knabben. All rights reserved. | ||
3 | For licensing, see LICENSE.md or http://ckeditor.com/license | ||
4 | */ | ||
5 | CKEDITOR.plugins.setLang( 'indent', 'sk', { | ||
6 | indent: 'Zväčšiť odsadenie', | ||
7 | outdent: 'Zmenšiť odsadenie' | ||
8 | } ); | ||
diff --git a/sources/plugins/indent/lang/sl.js b/sources/plugins/indent/lang/sl.js new file mode 100644 index 00000000..1cef8167 --- /dev/null +++ b/sources/plugins/indent/lang/sl.js | |||
@@ -0,0 +1,8 @@ | |||
1 | /* | ||
2 | Copyright (c) 2003-2015, CKSource - Frederico Knabben. All rights reserved. | ||
3 | For licensing, see LICENSE.md or http://ckeditor.com/license | ||
4 | */ | ||
5 | CKEDITOR.plugins.setLang( 'indent', 'sl', { | ||
6 | indent: 'Povečaj zamik', | ||
7 | outdent: 'Zmanjšaj zamik' | ||
8 | } ); | ||
diff --git a/sources/plugins/indent/lang/sq.js b/sources/plugins/indent/lang/sq.js new file mode 100644 index 00000000..670b1065 --- /dev/null +++ b/sources/plugins/indent/lang/sq.js | |||
@@ -0,0 +1,8 @@ | |||
1 | /* | ||
2 | Copyright (c) 2003-2015, CKSource - Frederico Knabben. All rights reserved. | ||
3 | For licensing, see LICENSE.md or http://ckeditor.com/license | ||
4 | */ | ||
5 | CKEDITOR.plugins.setLang( 'indent', 'sq', { | ||
6 | indent: 'Rrite Identin', | ||
7 | outdent: 'Zvogëlo Identin' | ||
8 | } ); | ||
diff --git a/sources/plugins/indent/lang/sr-latn.js b/sources/plugins/indent/lang/sr-latn.js new file mode 100644 index 00000000..a79ff72b --- /dev/null +++ b/sources/plugins/indent/lang/sr-latn.js | |||
@@ -0,0 +1,8 @@ | |||
1 | /* | ||
2 | Copyright (c) 2003-2015, CKSource - Frederico Knabben. All rights reserved. | ||
3 | For licensing, see LICENSE.md or http://ckeditor.com/license | ||
4 | */ | ||
5 | CKEDITOR.plugins.setLang( 'indent', 'sr-latn', { | ||
6 | indent: 'Uvećaj levu marginu', | ||
7 | outdent: 'Smanji levu marginu' | ||
8 | } ); | ||
diff --git a/sources/plugins/indent/lang/sr.js b/sources/plugins/indent/lang/sr.js new file mode 100644 index 00000000..92f11970 --- /dev/null +++ b/sources/plugins/indent/lang/sr.js | |||
@@ -0,0 +1,8 @@ | |||
1 | /* | ||
2 | Copyright (c) 2003-2015, CKSource - Frederico Knabben. All rights reserved. | ||
3 | For licensing, see LICENSE.md or http://ckeditor.com/license | ||
4 | */ | ||
5 | CKEDITOR.plugins.setLang( 'indent', 'sr', { | ||
6 | indent: 'Увећај леву маргину', | ||
7 | outdent: 'Смањи леву маргину' | ||
8 | } ); | ||
diff --git a/sources/plugins/indent/lang/sv.js b/sources/plugins/indent/lang/sv.js new file mode 100644 index 00000000..c9141012 --- /dev/null +++ b/sources/plugins/indent/lang/sv.js | |||
@@ -0,0 +1,8 @@ | |||
1 | /* | ||
2 | Copyright (c) 2003-2015, CKSource - Frederico Knabben. All rights reserved. | ||
3 | For licensing, see LICENSE.md or http://ckeditor.com/license | ||
4 | */ | ||
5 | CKEDITOR.plugins.setLang( 'indent', 'sv', { | ||
6 | indent: 'Öka indrag', | ||
7 | outdent: 'Minska indrag' | ||
8 | } ); | ||
diff --git a/sources/plugins/indent/lang/th.js b/sources/plugins/indent/lang/th.js new file mode 100644 index 00000000..1a4f2cde --- /dev/null +++ b/sources/plugins/indent/lang/th.js | |||
@@ -0,0 +1,8 @@ | |||
1 | /* | ||
2 | Copyright (c) 2003-2015, CKSource - Frederico Knabben. All rights reserved. | ||
3 | For licensing, see LICENSE.md or http://ckeditor.com/license | ||
4 | */ | ||
5 | CKEDITOR.plugins.setLang( 'indent', 'th', { | ||
6 | indent: 'เพิ่มระยะย่อหน้า', | ||
7 | outdent: 'ลดระยะย่อหน้า' | ||
8 | } ); | ||
diff --git a/sources/plugins/indent/lang/tr.js b/sources/plugins/indent/lang/tr.js new file mode 100644 index 00000000..227e2cd9 --- /dev/null +++ b/sources/plugins/indent/lang/tr.js | |||
@@ -0,0 +1,8 @@ | |||
1 | /* | ||
2 | Copyright (c) 2003-2015, CKSource - Frederico Knabben. All rights reserved. | ||
3 | For licensing, see LICENSE.md or http://ckeditor.com/license | ||
4 | */ | ||
5 | CKEDITOR.plugins.setLang( 'indent', 'tr', { | ||
6 | indent: 'Sekme Arttır', | ||
7 | outdent: 'Sekme Azalt' | ||
8 | } ); | ||
diff --git a/sources/plugins/indent/lang/tt.js b/sources/plugins/indent/lang/tt.js new file mode 100644 index 00000000..465b4ce3 --- /dev/null +++ b/sources/plugins/indent/lang/tt.js | |||
@@ -0,0 +1,8 @@ | |||
1 | /* | ||
2 | Copyright (c) 2003-2015, CKSource - Frederico Knabben. All rights reserved. | ||
3 | For licensing, see LICENSE.md or http://ckeditor.com/license | ||
4 | */ | ||
5 | CKEDITOR.plugins.setLang( 'indent', 'tt', { | ||
6 | indent: 'Отступны арттыру', | ||
7 | outdent: 'Отступны кечерәйтү' | ||
8 | } ); | ||
diff --git a/sources/plugins/indent/lang/ug.js b/sources/plugins/indent/lang/ug.js new file mode 100644 index 00000000..956e6a4c --- /dev/null +++ b/sources/plugins/indent/lang/ug.js | |||
@@ -0,0 +1,8 @@ | |||
1 | /* | ||
2 | Copyright (c) 2003-2015, CKSource - Frederico Knabben. All rights reserved. | ||
3 | For licensing, see LICENSE.md or http://ckeditor.com/license | ||
4 | */ | ||
5 | CKEDITOR.plugins.setLang( 'indent', 'ug', { | ||
6 | indent: 'تارايت', | ||
7 | outdent: 'كەڭەيت' | ||
8 | } ); | ||
diff --git a/sources/plugins/indent/lang/uk.js b/sources/plugins/indent/lang/uk.js new file mode 100644 index 00000000..80d77f76 --- /dev/null +++ b/sources/plugins/indent/lang/uk.js | |||
@@ -0,0 +1,8 @@ | |||
1 | /* | ||
2 | Copyright (c) 2003-2015, CKSource - Frederico Knabben. All rights reserved. | ||
3 | For licensing, see LICENSE.md or http://ckeditor.com/license | ||
4 | */ | ||
5 | CKEDITOR.plugins.setLang( 'indent', 'uk', { | ||
6 | indent: 'Збільшити відступ', | ||
7 | outdent: 'Зменшити відступ' | ||
8 | } ); | ||
diff --git a/sources/plugins/indent/lang/vi.js b/sources/plugins/indent/lang/vi.js new file mode 100644 index 00000000..c423837d --- /dev/null +++ b/sources/plugins/indent/lang/vi.js | |||
@@ -0,0 +1,8 @@ | |||
1 | /* | ||
2 | Copyright (c) 2003-2015, CKSource - Frederico Knabben. All rights reserved. | ||
3 | For licensing, see LICENSE.md or http://ckeditor.com/license | ||
4 | */ | ||
5 | CKEDITOR.plugins.setLang( 'indent', 'vi', { | ||
6 | indent: 'Dịch vào trong', | ||
7 | outdent: 'Dịch ra ngoài' | ||
8 | } ); | ||
diff --git a/sources/plugins/indent/lang/zh-cn.js b/sources/plugins/indent/lang/zh-cn.js new file mode 100644 index 00000000..2ce406f2 --- /dev/null +++ b/sources/plugins/indent/lang/zh-cn.js | |||
@@ -0,0 +1,8 @@ | |||
1 | /* | ||
2 | Copyright (c) 2003-2015, CKSource - Frederico Knabben. All rights reserved. | ||
3 | For licensing, see LICENSE.md or http://ckeditor.com/license | ||
4 | */ | ||
5 | CKEDITOR.plugins.setLang( 'indent', 'zh-cn', { | ||
6 | indent: '增加缩进量', | ||
7 | outdent: '减少缩进量' | ||
8 | } ); | ||
diff --git a/sources/plugins/indent/lang/zh.js b/sources/plugins/indent/lang/zh.js new file mode 100644 index 00000000..4aa2abf8 --- /dev/null +++ b/sources/plugins/indent/lang/zh.js | |||
@@ -0,0 +1,8 @@ | |||
1 | /* | ||
2 | Copyright (c) 2003-2015, CKSource - Frederico Knabben. All rights reserved. | ||
3 | For licensing, see LICENSE.md or http://ckeditor.com/license | ||
4 | */ | ||
5 | CKEDITOR.plugins.setLang( 'indent', 'zh', { | ||
6 | indent: '增加縮排', | ||
7 | outdent: '減少縮排' | ||
8 | } ); | ||
diff --git a/sources/plugins/indent/plugin.js b/sources/plugins/indent/plugin.js new file mode 100644 index 00000000..325503d6 --- /dev/null +++ b/sources/plugins/indent/plugin.js | |||
@@ -0,0 +1,461 @@ | |||
1 | /** | ||
2 | * @license Copyright (c) 2003-2015, CKSource - Frederico Knabben. All rights reserved. | ||
3 | * For licensing, see LICENSE.md or http://ckeditor.com/license | ||
4 | */ | ||
5 | |||
6 | /** | ||
7 | * @fileOverview Increase and Decrease Indent commands. | ||
8 | */ | ||
9 | |||
10 | ( function() { | ||
11 | 'use strict'; | ||
12 | |||
13 | var TRISTATE_DISABLED = CKEDITOR.TRISTATE_DISABLED, | ||
14 | TRISTATE_OFF = CKEDITOR.TRISTATE_OFF; | ||
15 | |||
16 | CKEDITOR.plugins.add( 'indent', { | ||
17 | // jscs:disable maximumLineLength | ||
18 | lang: 'af,ar,bg,bn,bs,ca,cs,cy,da,de,el,en,en-au,en-ca,en-gb,eo,es,et,eu,fa,fi,fo,fr,fr-ca,gl,gu,he,hi,hr,hu,id,is,it,ja,ka,km,ko,ku,lt,lv,mk,mn,ms,nb,nl,no,pl,pt,pt-br,ro,ru,si,sk,sl,sq,sr,sr-latn,sv,th,tr,tt,ug,uk,vi,zh,zh-cn', // %REMOVE_LINE_CORE% | ||
19 | // jscs:enable maximumLineLength | ||
20 | icons: 'indent,indent-rtl,outdent,outdent-rtl', // %REMOVE_LINE_CORE% | ||
21 | hidpi: true, // %REMOVE_LINE_CORE% | ||
22 | |||
23 | init: function( editor ) { | ||
24 | var genericDefinition = CKEDITOR.plugins.indent.genericDefinition; | ||
25 | |||
26 | // Register generic commands. | ||
27 | setupGenericListeners( editor, editor.addCommand( 'indent', new genericDefinition( true ) ) ); | ||
28 | setupGenericListeners( editor, editor.addCommand( 'outdent', new genericDefinition() ) ); | ||
29 | |||
30 | // Create and register toolbar button if possible. | ||
31 | if ( editor.ui.addButton ) { | ||
32 | editor.ui.addButton( 'Indent', { | ||
33 | label: editor.lang.indent.indent, | ||
34 | command: 'indent', | ||
35 | directional: true, | ||
36 | toolbar: 'indent,20' | ||
37 | } ); | ||
38 | |||
39 | editor.ui.addButton( 'Outdent', { | ||
40 | label: editor.lang.indent.outdent, | ||
41 | command: 'outdent', | ||
42 | directional: true, | ||
43 | toolbar: 'indent,10' | ||
44 | } ); | ||
45 | } | ||
46 | |||
47 | // Register dirChanged listener. | ||
48 | editor.on( 'dirChanged', function( evt ) { | ||
49 | var range = editor.createRange(), | ||
50 | dataNode = evt.data.node; | ||
51 | |||
52 | range.setStartBefore( dataNode ); | ||
53 | range.setEndAfter( dataNode ); | ||
54 | |||
55 | var walker = new CKEDITOR.dom.walker( range ), | ||
56 | node; | ||
57 | |||
58 | while ( ( node = walker.next() ) ) { | ||
59 | if ( node.type == CKEDITOR.NODE_ELEMENT ) { | ||
60 | // A child with the defined dir is to be ignored. | ||
61 | if ( !node.equals( dataNode ) && node.getDirection() ) { | ||
62 | range.setStartAfter( node ); | ||
63 | walker = new CKEDITOR.dom.walker( range ); | ||
64 | continue; | ||
65 | } | ||
66 | |||
67 | // Switch alignment classes. | ||
68 | var classes = editor.config.indentClasses; | ||
69 | if ( classes ) { | ||
70 | var suffix = ( evt.data.dir == 'ltr' ) ? [ '_rtl', '' ] : [ '', '_rtl' ]; | ||
71 | for ( var i = 0; i < classes.length; i++ ) { | ||
72 | if ( node.hasClass( classes[ i ] + suffix[ 0 ] ) ) { | ||
73 | node.removeClass( classes[ i ] + suffix[ 0 ] ); | ||
74 | node.addClass( classes[ i ] + suffix[ 1 ] ); | ||
75 | } | ||
76 | } | ||
77 | } | ||
78 | |||
79 | // Switch the margins. | ||
80 | var marginLeft = node.getStyle( 'margin-right' ), | ||
81 | marginRight = node.getStyle( 'margin-left' ); | ||
82 | |||
83 | marginLeft ? node.setStyle( 'margin-left', marginLeft ) : node.removeStyle( 'margin-left' ); | ||
84 | marginRight ? node.setStyle( 'margin-right', marginRight ) : node.removeStyle( 'margin-right' ); | ||
85 | } | ||
86 | } | ||
87 | } ); | ||
88 | } | ||
89 | } ); | ||
90 | |||
91 | /** | ||
92 | * Global command class definitions and global helpers. | ||
93 | * | ||
94 | * @class | ||
95 | * @singleton | ||
96 | */ | ||
97 | CKEDITOR.plugins.indent = { | ||
98 | /** | ||
99 | * A base class for a generic command definition, responsible mainly for creating | ||
100 | * Increase Indent and Decrease Indent toolbar buttons as well as for refreshing | ||
101 | * UI states. | ||
102 | * | ||
103 | * Commands of this class do not perform any indentation by themselves. They | ||
104 | * delegate this job to content-specific indentation commands (i.e. indentlist). | ||
105 | * | ||
106 | * @class CKEDITOR.plugins.indent.genericDefinition | ||
107 | * @extends CKEDITOR.commandDefinition | ||
108 | * @param {CKEDITOR.editor} editor The editor instance this command will be | ||
109 | * applied to. | ||
110 | * @param {String} name The name of the command. | ||
111 | * @param {Boolean} [isIndent] Defines the command as indenting or outdenting. | ||
112 | */ | ||
113 | genericDefinition: function( isIndent ) { | ||
114 | /** | ||
115 | * Determines whether the command belongs to the indentation family. | ||
116 | * Otherwise it is assumed to be an outdenting command. | ||
117 | * | ||
118 | * @readonly | ||
119 | * @property {Boolean} [=false] | ||
120 | */ | ||
121 | this.isIndent = !!isIndent; | ||
122 | |||
123 | // Mimic naive startDisabled behavior for outdent. | ||
124 | this.startDisabled = !this.isIndent; | ||
125 | }, | ||
126 | |||
127 | /** | ||
128 | * A base class for specific indentation command definitions responsible for | ||
129 | * handling a pre-defined set of elements i.e. indentlist for lists or | ||
130 | * indentblock for text block elements. | ||
131 | * | ||
132 | * Commands of this class perform indentation operations and modify the DOM structure. | ||
133 | * They listen for events fired by {@link CKEDITOR.plugins.indent.genericDefinition} | ||
134 | * and execute defined actions. | ||
135 | * | ||
136 | * **NOTE**: This is not an {@link CKEDITOR.command editor command}. | ||
137 | * Context-specific commands are internal, for indentation system only. | ||
138 | * | ||
139 | * @class CKEDITOR.plugins.indent.specificDefinition | ||
140 | * @param {CKEDITOR.editor} editor The editor instance this command will be | ||
141 | * applied to. | ||
142 | * @param {String} name The name of the command. | ||
143 | * @param {Boolean} [isIndent] Defines the command as indenting or outdenting. | ||
144 | */ | ||
145 | specificDefinition: function( editor, name, isIndent ) { | ||
146 | this.name = name; | ||
147 | this.editor = editor; | ||
148 | |||
149 | /** | ||
150 | * An object of jobs handled by the command. Each job consists | ||
151 | * of two functions: `refresh` and `exec` as well as the execution priority. | ||
152 | * | ||
153 | * * The `refresh` function determines whether a job is doable for | ||
154 | * a particular context. These functions are executed in the | ||
155 | * order of priorities, one by one, for all plugins that registered | ||
156 | * jobs. As jobs are related to generic commands, refreshing | ||
157 | * occurs when the global command is firing the `refresh` event. | ||
158 | * | ||
159 | * **Note**: This function must return either {@link CKEDITOR#TRISTATE_DISABLED} | ||
160 | * or {@link CKEDITOR#TRISTATE_OFF}. | ||
161 | * | ||
162 | * * The `exec` function modifies the DOM if possible. Just like | ||
163 | * `refresh`, `exec` functions are executed in the order of priorities | ||
164 | * while the generic command is executed. This function is not executed | ||
165 | * if `refresh` for this job returned {@link CKEDITOR#TRISTATE_DISABLED}. | ||
166 | * | ||
167 | * **Note**: This function must return a Boolean value, indicating whether it | ||
168 | * was successful. If a job was successful, then no other jobs are being executed. | ||
169 | * | ||
170 | * Sample definition: | ||
171 | * | ||
172 | * command.jobs = { | ||
173 | * // Priority = 20. | ||
174 | * '20': { | ||
175 | * refresh( editor, path ) { | ||
176 | * if ( condition ) | ||
177 | * return CKEDITOR.TRISTATE_OFF; | ||
178 | * else | ||
179 | * return CKEDITOR.TRISTATE_DISABLED; | ||
180 | * }, | ||
181 | * exec( editor ) { | ||
182 | * // DOM modified! This was OK. | ||
183 | * return true; | ||
184 | * } | ||
185 | * }, | ||
186 | * // Priority = 60. This job is done later. | ||
187 | * '60': { | ||
188 | * // Another job. | ||
189 | * } | ||
190 | * }; | ||
191 | * | ||
192 | * For additional information, please check comments for | ||
193 | * the `setupGenericListeners` function. | ||
194 | * | ||
195 | * @readonly | ||
196 | * @property {Object} [={}] | ||
197 | */ | ||
198 | this.jobs = {}; | ||
199 | |||
200 | /** | ||
201 | * Determines whether the editor that the command belongs to has | ||
202 | * {@link CKEDITOR.config#enterMode config.enterMode} set to {@link CKEDITOR#ENTER_BR}. | ||
203 | * | ||
204 | * @readonly | ||
205 | * @see CKEDITOR.config#enterMode | ||
206 | * @property {Boolean} [=false] | ||
207 | */ | ||
208 | this.enterBr = editor.config.enterMode == CKEDITOR.ENTER_BR; | ||
209 | |||
210 | /** | ||
211 | * Determines whether the command belongs to the indentation family. | ||
212 | * Otherwise it is assumed to be an outdenting command. | ||
213 | * | ||
214 | * @readonly | ||
215 | * @property {Boolean} [=false] | ||
216 | */ | ||
217 | this.isIndent = !!isIndent; | ||
218 | |||
219 | /** | ||
220 | * The name of the global command related to this one. | ||
221 | * | ||
222 | * @readonly | ||
223 | */ | ||
224 | this.relatedGlobal = isIndent ? 'indent' : 'outdent'; | ||
225 | |||
226 | /** | ||
227 | * A keystroke associated with this command (*Tab* or *Shift+Tab*). | ||
228 | * | ||
229 | * @readonly | ||
230 | */ | ||
231 | this.indentKey = isIndent ? 9 : CKEDITOR.SHIFT + 9; | ||
232 | |||
233 | /** | ||
234 | * Stores created markers for the command so they can eventually be | ||
235 | * purged after the `exec` function is run. | ||
236 | */ | ||
237 | this.database = {}; | ||
238 | }, | ||
239 | |||
240 | /** | ||
241 | * Registers content-specific commands as a part of the indentation system | ||
242 | * directed by generic commands. Once a command is registered, | ||
243 | * it listens for events of a related generic command. | ||
244 | * | ||
245 | * CKEDITOR.plugins.indent.registerCommands( editor, { | ||
246 | * 'indentlist': new indentListCommand( editor, 'indentlist' ), | ||
247 | * 'outdentlist': new indentListCommand( editor, 'outdentlist' ) | ||
248 | * } ); | ||
249 | * | ||
250 | * Content-specific commands listen for the generic command's `exec` and | ||
251 | * try to execute their own jobs, one after another. If some execution is | ||
252 | * successful, `evt.data.done` is set so no more jobs (commands) are involved. | ||
253 | * | ||
254 | * Content-specific commands also listen for the generic command's `refresh` | ||
255 | * and fill the `evt.data.states` object with states of jobs. A generic command | ||
256 | * uses this data to determine its own state and to update the UI. | ||
257 | * | ||
258 | * @member CKEDITOR.plugins.indent | ||
259 | * @param {CKEDITOR.editor} editor The editor instance this command is | ||
260 | * applied to. | ||
261 | * @param {Object} commands An object of {@link CKEDITOR.command}. | ||
262 | */ | ||
263 | registerCommands: function( editor, commands ) { | ||
264 | editor.on( 'pluginsLoaded', function() { | ||
265 | for ( var name in commands ) { | ||
266 | ( function( editor, command ) { | ||
267 | var relatedGlobal = editor.getCommand( command.relatedGlobal ); | ||
268 | |||
269 | for ( var priority in command.jobs ) { | ||
270 | // Observe generic exec event and execute command when necessary. | ||
271 | // If the command was successfully handled by the command and | ||
272 | // DOM has been modified, stop event propagation so no other plugin | ||
273 | // will bother. Job is done. | ||
274 | relatedGlobal.on( 'exec', function( evt ) { | ||
275 | if ( evt.data.done ) | ||
276 | return; | ||
277 | |||
278 | // Make sure that anything this command will do is invisible | ||
279 | // for undoManager. What undoManager only can see and | ||
280 | // remember is the execution of the global command (relatedGlobal). | ||
281 | editor.fire( 'lockSnapshot' ); | ||
282 | |||
283 | if ( command.execJob( editor, priority ) ) | ||
284 | evt.data.done = true; | ||
285 | |||
286 | editor.fire( 'unlockSnapshot' ); | ||
287 | |||
288 | // Clean up the markers. | ||
289 | CKEDITOR.dom.element.clearAllMarkers( command.database ); | ||
290 | }, this, null, priority ); | ||
291 | |||
292 | // Observe generic refresh event and force command refresh. | ||
293 | // Once refreshed, save command state in event data | ||
294 | // so generic command plugin can update its own state and UI. | ||
295 | relatedGlobal.on( 'refresh', function( evt ) { | ||
296 | if ( !evt.data.states ) | ||
297 | evt.data.states = {}; | ||
298 | |||
299 | evt.data.states[ command.name + '@' + priority ] = | ||
300 | command.refreshJob( editor, priority, evt.data.path ); | ||
301 | }, this, null, priority ); | ||
302 | } | ||
303 | |||
304 | // Since specific indent commands have no UI elements, | ||
305 | // they need to be manually registered as a editor feature. | ||
306 | editor.addFeature( command ); | ||
307 | } )( this, commands[ name ] ); | ||
308 | } | ||
309 | } ); | ||
310 | } | ||
311 | }; | ||
312 | |||
313 | CKEDITOR.plugins.indent.genericDefinition.prototype = { | ||
314 | context: 'p', | ||
315 | |||
316 | exec: function() {} | ||
317 | }; | ||
318 | |||
319 | CKEDITOR.plugins.indent.specificDefinition.prototype = { | ||
320 | /** | ||
321 | * Executes the content-specific procedure if the context is correct. | ||
322 | * It calls the `exec` function of a job of the given `priority` | ||
323 | * that modifies the DOM. | ||
324 | * | ||
325 | * @param {CKEDITOR.editor} editor The editor instance this command | ||
326 | * will be applied to. | ||
327 | * @param {Number} priority The priority of the job to be executed. | ||
328 | * @returns {Boolean} Indicates whether the job was successful. | ||
329 | */ | ||
330 | execJob: function( editor, priority ) { | ||
331 | var job = this.jobs[ priority ]; | ||
332 | |||
333 | if ( job.state != TRISTATE_DISABLED ) | ||
334 | return job.exec.call( this, editor ); | ||
335 | }, | ||
336 | |||
337 | /** | ||
338 | * Calls the `refresh` function of a job of the given `priority`. | ||
339 | * The function returns the state of the job which can be either | ||
340 | * {@link CKEDITOR#TRISTATE_DISABLED} or {@link CKEDITOR#TRISTATE_OFF}. | ||
341 | * | ||
342 | * @param {CKEDITOR.editor} editor The editor instance this command | ||
343 | * will be applied to. | ||
344 | * @param {Number} priority The priority of the job to be executed. | ||
345 | * @returns {Number} The state of the job. | ||
346 | */ | ||
347 | refreshJob: function( editor, priority, path ) { | ||
348 | var job = this.jobs[ priority ]; | ||
349 | |||
350 | if ( !editor.activeFilter.checkFeature( this ) ) | ||
351 | job.state = TRISTATE_DISABLED; | ||
352 | else | ||
353 | job.state = job.refresh.call( this, editor, path ); | ||
354 | |||
355 | return job.state; | ||
356 | }, | ||
357 | |||
358 | /** | ||
359 | * Checks if the element path contains the element handled | ||
360 | * by this indentation command. | ||
361 | * | ||
362 | * @param {CKEDITOR.dom.elementPath} node A path to be checked. | ||
363 | * @returns {CKEDITOR.dom.element} | ||
364 | */ | ||
365 | getContext: function( path ) { | ||
366 | return path.contains( this.context ); | ||
367 | } | ||
368 | }; | ||
369 | |||
370 | /** | ||
371 | * Attaches event listeners for this generic command. Since the indentation | ||
372 | * system is event-oriented, generic commands communicate with | ||
373 | * content-specific commands using the `exec` and `refresh` events. | ||
374 | * | ||
375 | * Listener priorities are crucial. Different indentation phases | ||
376 | * are executed with different priorities. | ||
377 | * | ||
378 | * For the `exec` event: | ||
379 | * | ||
380 | * * 0: Selection and bookmarks are saved by the generic command. | ||
381 | * * 1-99: Content-specific commands try to indent the code by executing | ||
382 | * their own jobs ({@link CKEDITOR.plugins.indent.specificDefinition#jobs}). | ||
383 | * * 100: Bookmarks are re-selected by the generic command. | ||
384 | * | ||
385 | * The visual interpretation looks as follows: | ||
386 | * | ||
387 | * +------------------+ | ||
388 | * | Exec event fired | | ||
389 | * +------ + ---------+ | ||
390 | * | | ||
391 | * 0 -<----------+ Selection and bookmarks saved. | ||
392 | * | | ||
393 | * | | ||
394 | * 25 -<---+ Exec 1st job of plugin#1 (return false, continuing...). | ||
395 | * | | ||
396 | * | | ||
397 | * 50 -<---+ Exec 1st job of plugin#2 (return false, continuing...). | ||
398 | * | | ||
399 | * | | ||
400 | * 75 -<---+ Exec 2nd job of plugin#1 (only if plugin#2 failed). | ||
401 | * | | ||
402 | * | | ||
403 | * 100 -<-----------+ Re-select bookmarks, clean-up. | ||
404 | * | | ||
405 | * +-------- v ----------+ | ||
406 | * | Exec event finished | | ||
407 | * +---------------------+ | ||
408 | * | ||
409 | * For the `refresh` event: | ||
410 | * | ||
411 | * * <100: Content-specific commands refresh their job states according | ||
412 | * to the given path. Jobs save their states in the `evt.data.states` object | ||
413 | * passed along with the event. This can be either {@link CKEDITOR#TRISTATE_DISABLED} | ||
414 | * or {@link CKEDITOR#TRISTATE_OFF}. | ||
415 | * * 100: Command state is determined according to what states | ||
416 | * have been returned by content-specific jobs (`evt.data.states`). | ||
417 | * UI elements are updated at this stage. | ||
418 | * | ||
419 | * **Note**: If there is at least one job with the {@link CKEDITOR#TRISTATE_OFF} state, | ||
420 | * then the generic command state is also {@link CKEDITOR#TRISTATE_OFF}. Otherwise, | ||
421 | * the command state is {@link CKEDITOR#TRISTATE_DISABLED}. | ||
422 | * | ||
423 | * @param {CKEDITOR.command} command The command to be set up. | ||
424 | * @private | ||
425 | */ | ||
426 | function setupGenericListeners( editor, command ) { | ||
427 | var selection, bookmarks; | ||
428 | |||
429 | // Set the command state according to content-specific | ||
430 | // command states. | ||
431 | command.on( 'refresh', function( evt ) { | ||
432 | // If no state comes with event data, disable command. | ||
433 | var states = [ TRISTATE_DISABLED ]; | ||
434 | |||
435 | for ( var s in evt.data.states ) | ||
436 | states.push( evt.data.states[ s ] ); | ||
437 | |||
438 | this.setState( CKEDITOR.tools.search( states, TRISTATE_OFF ) ? TRISTATE_OFF : TRISTATE_DISABLED ); | ||
439 | }, command, null, 100 ); | ||
440 | |||
441 | // Initialization. Save bookmarks and mark event as not handled | ||
442 | // by any plugin (command) yet. | ||
443 | command.on( 'exec', function( evt ) { | ||
444 | selection = editor.getSelection(); | ||
445 | bookmarks = selection.createBookmarks( 1 ); | ||
446 | |||
447 | // Mark execution as not handled yet. | ||
448 | if ( !evt.data ) | ||
449 | evt.data = {}; | ||
450 | |||
451 | evt.data.done = false; | ||
452 | }, command, null, 0 ); | ||
453 | |||
454 | // Housekeeping. Make sure selectionChange will be called. | ||
455 | // Also re-select previously saved bookmarks. | ||
456 | command.on( 'exec', function() { | ||
457 | editor.forceNextSelectionCheck(); | ||
458 | selection.selectBookmarks( bookmarks ); | ||
459 | }, command, null, 100 ); | ||
460 | } | ||
461 | } )(); | ||