Version 3.18.1

APIs

  • Begin typing in the search box above to see results.
Show:

File: button/js/plugin.js

 /**
 * A Button Plugin
 *
 * @module button-plugin
 * @since 3.5.0
 */
 
 /**
 * @class Button
 * @param config {Object} Configuration object
 * @extends ButtonCore
 * @constructor
 * @namespace Plugin
 */
 function ButtonPlugin() {
 ButtonPlugin.superclass.constructor.apply(this, arguments);
 }
 
 Y.extend(ButtonPlugin, Y.ButtonCore, {
 
 /**
 * @method _afterNodeGet
 * @param name {string}
 * @private
 */
 _afterNodeGet: function (name) {
 // TODO: point to method (_uiSetLabel, etc) instead of getter/setter
 var ATTRS = this.constructor.ATTRS,
 fn = ATTRS[name] && ATTRS[name].getter && this[ATTRS[name].getter];
 
 if (fn) {
 return new Y.Do.AlterReturn('get ' + name, fn.call(this));
 }
 },
 
 /**
 * @method _afterNodeSet
 * @param name {String}
 * @param val {String}
 * @private
 */
 _afterNodeSet: function (name, val) {
 var ATTRS = this.constructor.ATTRS,
 fn = ATTRS[name] && ATTRS[name].setter && this[ATTRS[name].setter];
 
 if (fn) {
 fn.call(this, val);
 }
 },
 
 /**
 * @method _initNode
 * @param config {Object}
 * @private
 */
 _initNode: function(config) {
 var node = config.host;
 this._host = node;
 
 Y.Do.after(this._afterNodeGet, node, 'get', this);
 Y.Do.after(this._afterNodeSet, node, 'set', this);
 },
 
 /**
 * @method destroy
 * @private
 */
 destroy: function(){
 // Nothing to do, but things are happier with it here
 }
 
 }, {
 
 /**
 * Attribute configuration.
 *
 * @property ATTRS
 * @type {Object}
 * @private
 * @static
 */
 ATTRS: Y.merge(Y.ButtonCore.ATTRS),
 
 /**
 * Name of this component.
 *
 * @property NAME
 * @type String
 * @static
 */
 NAME: 'buttonPlugin',
 
 /**
 * Namespace of this component.
 *
 * @property NS
 * @type String
 * @static
 */
 NS: 'button'
 
 });
 
 /**
 * @method createNode
 * @description A factory that plugs a Y.Node instance with Y.Plugin.Button
 * @param node {Object}
 * @param config {Object}
 * @return {Object} A plugged Y.Node instance
 * @public
 */
 ButtonPlugin.createNode = function(node, config) {
 var template;
 
 if (node && !config) {
 if (! (node.nodeType || node.getDOMNode || typeof node === 'string')) {
 config = node;
 node = config.srcNode;
 }
 }
 
 config = config || {};
 template = config.template || Y.Plugin.Button.prototype.TEMPLATE;
 node = node || config.srcNode || Y.DOM.create(template);
 
 return Y.one(node).plug(Y.Plugin.Button, config);
 };
 
 Y.namespace('Plugin').Button = ButtonPlugin;
 
 

AltStyle によって変換されたページ (->オリジナル) /