1 /** |
1 (function () { |
2 * plugin.js |
2 var directionality = (function () { |
3 * |
3 'use strict'; |
4 * Copyright, Moxiecode Systems AB |
|
5 * Released under LGPL License. |
|
6 * |
|
7 * License: http://www.tinymce.com/license |
|
8 * Contributing: http://www.tinymce.com/contributing |
|
9 */ |
|
10 |
4 |
11 /*global tinymce:true */ |
5 var global = tinymce.util.Tools.resolve('tinymce.PluginManager'); |
12 |
6 |
13 tinymce.PluginManager.add('directionality', function(editor) { |
7 var global$1 = tinymce.util.Tools.resolve('tinymce.util.Tools'); |
14 function setDir(dir) { |
|
15 var dom = editor.dom, curDir, blocks = editor.selection.getSelectedBlocks(); |
|
16 |
8 |
17 if (blocks.length) { |
9 var setDir = function (editor, dir) { |
18 curDir = dom.getAttrib(blocks[0], "dir"); |
10 var dom = editor.dom; |
|
11 var curDir; |
|
12 var blocks = editor.selection.getSelectedBlocks(); |
|
13 if (blocks.length) { |
|
14 curDir = dom.getAttrib(blocks[0], 'dir'); |
|
15 global$1.each(blocks, function (block) { |
|
16 if (!dom.getParent(block.parentNode, '*[dir="' + dir + '"]', dom.getRoot())) { |
|
17 dom.setAttrib(block, 'dir', curDir !== dir ? dir : null); |
|
18 } |
|
19 }); |
|
20 editor.nodeChanged(); |
|
21 } |
|
22 }; |
|
23 var $_fd54yfb4jjgwebo5 = { setDir: setDir }; |
19 |
24 |
20 tinymce.each(blocks, function(block) { |
25 var register = function (editor) { |
21 // Add dir to block if the parent block doesn't already have that dir |
26 editor.addCommand('mceDirectionLTR', function () { |
22 if (!dom.getParent(block.parentNode, "*[dir='" + dir + "']", dom.getRoot())) { |
27 $_fd54yfb4jjgwebo5.setDir(editor, 'ltr'); |
23 if (curDir != dir) { |
28 }); |
24 dom.setAttrib(block, "dir", dir); |
29 editor.addCommand('mceDirectionRTL', function () { |
25 } else { |
30 $_fd54yfb4jjgwebo5.setDir(editor, 'rtl'); |
26 dom.setAttrib(block, "dir", null); |
31 }); |
27 } |
32 }; |
28 } |
33 var $_cpb3fob3jjgwebo4 = { register: register }; |
29 }); |
|
30 |
34 |
31 editor.nodeChanged(); |
35 var generateSelector = function (dir) { |
32 } |
36 var selector = []; |
33 } |
37 global$1.each('h1 h2 h3 h4 h5 h6 div p'.split(' '), function (name) { |
|
38 selector.push(name + '[dir=' + dir + ']'); |
|
39 }); |
|
40 return selector.join(','); |
|
41 }; |
|
42 var register$1 = function (editor) { |
|
43 editor.addButton('ltr', { |
|
44 title: 'Left to right', |
|
45 cmd: 'mceDirectionLTR', |
|
46 stateSelector: generateSelector('ltr') |
|
47 }); |
|
48 editor.addButton('rtl', { |
|
49 title: 'Right to left', |
|
50 cmd: 'mceDirectionRTL', |
|
51 stateSelector: generateSelector('rtl') |
|
52 }); |
|
53 }; |
|
54 var $_8ch9fzb6jjgwebo7 = { register: register$1 }; |
34 |
55 |
35 function generateSelector(dir) { |
56 global.add('directionality', function (editor) { |
36 var selector = []; |
57 $_cpb3fob3jjgwebo4.register(editor); |
|
58 $_8ch9fzb6jjgwebo7.register(editor); |
|
59 }); |
|
60 function Plugin () { |
|
61 } |
37 |
62 |
38 tinymce.each('h1 h2 h3 h4 h5 h6 div p'.split(' '), function(name) { |
63 return Plugin; |
39 selector.push(name + '[dir=' + dir + ']'); |
|
40 }); |
|
41 |
64 |
42 return selector.join(','); |
65 }()); |
43 } |
66 })(); |
44 |
|
45 editor.addCommand('mceDirectionLTR', function() { |
|
46 setDir("ltr"); |
|
47 }); |
|
48 |
|
49 editor.addCommand('mceDirectionRTL', function() { |
|
50 setDir("rtl"); |
|
51 }); |
|
52 |
|
53 editor.addButton('ltr', { |
|
54 title: 'Left to right', |
|
55 cmd: 'mceDirectionLTR', |
|
56 stateSelector: generateSelector('ltr') |
|
57 }); |
|
58 |
|
59 editor.addButton('rtl', { |
|
60 title: 'Right to left', |
|
61 cmd: 'mceDirectionRTL', |
|
62 stateSelector: generateSelector('rtl') |
|
63 }); |
|
64 }); |
|