wp/wp-includes/js/tinymce/plugins/directionality/plugin.js
changeset 7 cf61fcea0001
parent 5 5e2f62d02dcd
child 9 177826044cd9
equal deleted inserted replaced
6:490d5cc509ed 7:cf61fcea0001
     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 });