|
(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; |
|
|
|
}()); |
|
})(); |
|
|