You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
75 lines
1.8 KiB
75 lines
1.8 KiB
/*
|
|
YUI 3.17.2 (build 9c3c78e)
|
|
Copyright 2014 Yahoo! Inc. All rights reserved.
|
|
Licensed under the BSD License.
|
|
http://yuilibrary.com/license/
|
|
*/
|
|
|
|
YUI.add('editor-tab', function (Y, NAME) {
|
|
|
|
|
|
/**
|
|
* Handles tab and shift-tab indent/outdent support.
|
|
* @class Plugin.EditorTab
|
|
* @constructor
|
|
* @extends Base
|
|
* @module editor
|
|
* @submodule editor-tab
|
|
*/
|
|
|
|
var EditorTab = function() {
|
|
EditorTab.superclass.constructor.apply(this, arguments);
|
|
}, HOST = 'host';
|
|
|
|
Y.extend(EditorTab, Y.Base, {
|
|
/**
|
|
* Listener for host's nodeChange event and captures the tabkey interaction.
|
|
* @private
|
|
* @method _onNodeChange
|
|
* @param {Event} e The Event facade passed from the host.
|
|
*/
|
|
_onNodeChange: function(e) {
|
|
var action = 'indent';
|
|
|
|
if (e.changedType === 'tab') {
|
|
if (!e.changedNode.test('li, li *')) {
|
|
e.changedEvent.halt();
|
|
e.preventDefault();
|
|
if (e.changedEvent.shiftKey) {
|
|
action = 'outdent';
|
|
}
|
|
|
|
this.get(HOST).execCommand(action, '');
|
|
}
|
|
}
|
|
},
|
|
initializer: function() {
|
|
this.get(HOST).on('nodeChange', Y.bind(this._onNodeChange, this));
|
|
}
|
|
}, {
|
|
/**
|
|
* editorTab
|
|
* @property NAME
|
|
* @static
|
|
*/
|
|
NAME: 'editorTab',
|
|
/**
|
|
* tab
|
|
* @property NS
|
|
* @static
|
|
*/
|
|
NS: 'tab',
|
|
ATTRS: {
|
|
host: {
|
|
value: false
|
|
}
|
|
}
|
|
});
|
|
|
|
|
|
Y.namespace('Plugin');
|
|
|
|
Y.Plugin.EditorTab = EditorTab;
|
|
|
|
|
|
}, '3.17.2', {"requires": ["editor-base"]});
|
|
|