| (function () { |
| var directionality = (function () { |
| 'use strict'; |
|
|
| var global = tinymce.util.Tools.resolve('tinymce.PluginManager'); |
|
|
| var global$1 = tinymce.util.Tools.resolve('tinymce.util.Tools'); |
|
|
| var setDir = function (editor, dir) { |
| var dom = editor.dom; |
| var curDir; |
| var blocks = editor.selection.getSelectedBlocks(); |
| if (blocks.length) { |
| curDir = dom.getAttrib(blocks[0], 'dir'); |
| global$1.each(blocks, function (block) { |
| if (!dom.getParent(block.parentNode, '*[dir="' + dir + '"]', dom.getRoot())) { |
| dom.setAttrib(block, 'dir', curDir !== dir ? dir : null); |
| } |
| }); |
| editor.nodeChanged(); |
| } |
| }; |
| var Direction = { setDir: setDir }; |
|
|
| var register = function (editor) { |
| editor.addCommand('mceDirectionLTR', function () { |
| Direction.setDir(editor, 'ltr'); |
| }); |
| editor.addCommand('mceDirectionRTL', function () { |
| Direction.setDir(editor, 'rtl'); |
| }); |
| }; |
| var Commands = { register: register }; |
|
|
| var generateSelector = function (dir) { |
| var selector = []; |
| global$1.each('h1 h2 h3 h4 h5 h6 div p'.split(' '), function (name) { |
| selector.push(name + '[dir=' + dir + ']'); |
| }); |
| return selector.join(','); |
| }; |
| var register$1 = function (editor) { |
| editor.addButton('ltr', { |
| title: 'Left to right', |
| cmd: 'mceDirectionLTR', |
| stateSelector: generateSelector('ltr') |
| }); |
| editor.addButton('rtl', { |
| title: 'Right to left', |
| cmd: 'mceDirectionRTL', |
| stateSelector: generateSelector('rtl') |
| }); |
| }; |
| var Buttons = { register: register$1 }; |
|
|
| global.add('directionality', function (editor) { |
| Commands.register(editor); |
| Buttons.register(editor); |
| }); |
| function Plugin () { |
| } |
|
|
| return Plugin; |
|
|
| }()); |
| })(); |
|
|