--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/src/cm/media/js/lib/yui/yui3-3.15.0/build/button/button.js Mon Mar 10 15:19:48 2014 +0100
@@ -0,0 +1,332 @@
+YUI.add('button', function (Y, NAME) {
+
+/**
+ * A Button Widget
+ *
+ * @module button
+ * @since 3.5.0
+ */
+
+var ButtonCore = Y.ButtonCore,
+ CLASS_NAMES = ButtonCore.CLASS_NAMES,
+ ARIA_STATES = ButtonCore.ARIA_STATES,
+ ARIA_ROLES = ButtonCore.ARIA_ROLES;
+
+/**
+ * Creates a Button
+ *
+ * @class Button
+ * @extends Widget
+ * @uses ButtonCore
+ * @param config {Object} Configuration object
+ * @constructor
+ */
+function Button() {
+ Button.superclass.constructor.apply(this, arguments);
+}
+
+/* Button extends Widget */
+Y.extend(Button, Y.Widget, {
+
+ // Y.Button prototype properties
+
+ /**
+ * Bounding box template that will contain the Button's DOM subtree.
+ *
+ * @property BOUNDING_TEMPLATE
+ * @type {String}
+ * @default <button/>
+ */
+ BOUNDING_TEMPLATE : ButtonCore.prototype.TEMPLATE,
+
+ /**
+ * Content box template
+ *
+ * @property CONTENT_TEMPLATE
+ * @type {String}
+ * @default null
+ */
+ CONTENT_TEMPLATE : null
+
+}, {
+
+ // Y.Button static properties
+
+ /**
+ * The identity of the widget.
+ *
+ * @property NAME
+ * @type String
+ * @default 'button'
+ * @readOnly
+ * @protected
+ * @static
+ */
+ NAME: ButtonCore.NAME,
+
+ /**
+ * Static property used to define the default attribute configuration of
+ * the Widget.
+ *
+ * @property ATTRS
+ * @type {Object}
+ * @protected
+ * @static
+ */
+ ATTRS: ButtonCore.ATTRS,
+
+ /**
+ * The text of the button's label
+ *
+ * @attribute label
+ * @type String
+ */
+
+ /**
+ * The HTML of the button's label
+ *
+ * This attribute accepts HTML and inserts it into the DOM **without**
+ * sanitization. This attribute should only be used with HTML that has
+ * either been escaped (using `Y.Escape.html`), or sanitized according to
+ * the requirements of your application.
+ *
+ * If all you need is support for text labels, please use the `label`
+ * attribute instead.
+ *
+ * @attribute labelHTML
+ * @type HTML
+ */
+
+ /**
+ * @property HTML_PARSER
+ * @type {Object}
+ * @protected
+ * @static
+ */
+ HTML_PARSER: {
+ labelHTML: ButtonCore._getHTMLFromNode,
+ disabled: ButtonCore._getDisabledFromNode
+ },
+
+ /**
+ * List of class names used in the Button's DOM
+ *
+ * @property CLASS_NAMES
+ * @type Object
+ * @static
+ */
+ CLASS_NAMES: CLASS_NAMES
+});
+
+Y.mix(Button.prototype, ButtonCore.prototype);
+
+/**
+ * Creates a ToggleButton
+ *
+ * @class ToggleButton
+ * @extends Button
+ * @param config {Object} Configuration object
+ * @constructor
+ */
+function ToggleButton() {
+ Button.superclass.constructor.apply(this, arguments);
+}
+
+// TODO: move to ButtonCore subclass to enable toggle plugin, widget, etc.
+/* ToggleButton extends Button */
+Y.extend(ToggleButton, Button, {
+
+ /**
+ *
+ *
+ * @property trigger
+ * @type {String}
+ * @default
+ */
+ trigger: 'click',
+
+ /**
+ *
+ *
+ * @property selectedAttrName
+ * @type {String}
+ * @default
+ */
+ selectedAttrName: '',
+
+ /**
+ *
+ * @method initializer
+ */
+ initializer: function (config) {
+ var button = this,
+ type = button.get('type'),
+ selectedAttrName = (type === "checkbox" ? 'checked' : 'pressed'),
+ selectedState = config[selectedAttrName] || false;
+
+ // Create the checked/pressed attribute
+ button.addAttr(selectedAttrName, {
+ value: selectedState
+ });
+
+ button.selectedAttrName = selectedAttrName;
+ },
+
+ /**
+ *
+ * @method destructor
+ */
+ destructor: function () {
+ delete this.selectedAttrName;
+ },
+
+ /**
+ * @method bindUI
+ * @description Hooks up events for the widget
+ */
+ bindUI: function() {
+ var button = this,
+ cb = button.get('contentBox');
+
+ ToggleButton.superclass.bindUI.call(button);
+
+ cb.on(button.trigger, button.toggle, button);
+ button.after(button.selectedAttrName + 'Change', button._afterSelectedChange);
+ },
+
+ /**
+ * @method syncUI
+ * @description Syncs the UI for the widget
+ */
+ syncUI: function() {
+ var button = this,
+ cb = button.get('contentBox'),
+ type = button.get('type'),
+ ROLES = ToggleButton.ARIA_ROLES,
+ role = (type === 'checkbox' ? ROLES.CHECKBOX : ROLES.TOGGLE),
+ selectedAttrName = button.selectedAttrName;
+
+ ToggleButton.superclass.syncUI.call(button);
+
+ cb.set('role', role);
+ button._uiSetSelected(button.get(selectedAttrName));
+ },
+
+ /**
+ * @method _afterSelectedChange
+ * @private
+ */
+ _afterSelectedChange: function(e){
+ this._uiSetSelected(e.newVal);
+ },
+
+ /**
+ * @method _uiSetSelected
+ * @private
+ */
+ _uiSetSelected: function(value) {
+ var button = this,
+ cb = button.get('contentBox'),
+ STATES = ToggleButton.ARIA_STATES,
+ type = button.get('type'),
+ ariaState = (type === 'checkbox' ? STATES.CHECKED : STATES.PRESSED);
+
+ cb.toggleClass(Button.CLASS_NAMES.SELECTED, value);
+ cb.set(ariaState, value);
+ },
+
+ /**
+ * @method toggle
+ * @description Toggles the selected/pressed/checked state of a ToggleButton
+ * @public
+ */
+ toggle: function() {
+ var button = this;
+ button._set(button.selectedAttrName, !button.get(button.selectedAttrName));
+ }
+
+}, {
+
+ /**
+ * The identity of the widget.
+ *
+ * @property NAME
+ * @type {String}
+ * @default 'buttongroup'
+ * @readOnly
+ * @protected
+ * @static
+ */
+ NAME: 'toggleButton',
+
+ /**
+ * Static property used to define the default attribute configuration of
+ * the Widget.
+ *
+ * @property ATTRS
+ * @type {Object}
+ * @protected
+ * @static
+ */
+ ATTRS: {
+
+ /**
+ *
+ *
+ * @attribute type
+ * @type String
+ */
+ type: {
+ value: 'toggle',
+ writeOnce: 'initOnly'
+ }
+ },
+
+ /**
+ * @property HTML_PARSER
+ * @type {Object}
+ * @protected
+ * @static
+ */
+ HTML_PARSER: {
+ checked: function(node) {
+ return node.hasClass(CLASS_NAMES.SELECTED);
+ },
+ pressed: function(node) {
+ return node.hasClass(CLASS_NAMES.SELECTED);
+ }
+ },
+
+ /**
+ * @property ARIA_STATES
+ * @type {Object}
+ * @protected
+ * @static
+ */
+ ARIA_STATES: ARIA_STATES,
+
+ /**
+ * @property ARIA_ROLES
+ * @type {Object}
+ * @protected
+ * @static
+ */
+ ARIA_ROLES: ARIA_ROLES,
+
+ /**
+ * Array of static constants used to identify the classnames applied to DOM nodes
+ *
+ * @property CLASS_NAMES
+ * @type Object
+ * @static
+ */
+ CLASS_NAMES: CLASS_NAMES
+
+});
+
+// Export
+Y.Button = Button;
+Y.ToggleButton = ToggleButton;
+
+
+}, '@VERSION@', {"requires": ["button-core", "cssbutton", "widget"]});