src/cm/media/js/lib/yui/yui3-3.15.0/build/datatable-highlight/datatable-highlight-debug.js
changeset 602 e16a97fb364a
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/cm/media/js/lib/yui/yui3-3.15.0/build/datatable-highlight/datatable-highlight-debug.js	Mon Mar 10 15:19:48 2014 +0100
@@ -0,0 +1,282 @@
+YUI.add('datatable-highlight', function (Y, NAME) {
+
+/**
+ Adds support for highlighting columns with the mouse in a DataTable
+
+ @module datatable
+ @submodule datatable-highlight
+ @since 3.13.0
+ */
+
+
+var getClassName = Y.ClassNameManager.getClassName;
+
+/**
+ @class DataTable.Highlight
+ @since 3.13.0
+ */
+function Highlight() {}
+
+Highlight.ATTRS = {
+    /**
+     Setting this to true will create a delegate on the DataTable adding the
+     default classname to the row when the mouse is over the row.
+
+     @attribute highlightRows
+     @default false
+     @since 3.13.0
+     */
+    highlightRows: {
+        value: false,
+        setter: '_setHighlightRows',
+        validator: Y.Lang.isBoolean
+    },
+
+    /**
+     Setting this to true will create a delegate on the DataTable adding the
+     default classname to the column when the mouse is over the column.
+
+     @attribute highlightCols
+     @default false
+     @since 3.13.0
+     */
+    highlightCols: {
+        value: false,
+        setter: '_setHighlightCols',
+        validator: Y.Lang.isBoolean
+    },
+
+    /**
+     Setting this to true will create a delegate on the DataTable adding the
+     default classname to the cell when the mouse is over it.
+
+     @attribute highlightCells
+     @default false
+     @since 3.13.0
+     */
+    highlightCells: {
+        value: false,
+        setter: '_setHighlightCells',
+        validator: Y.Lang.isBoolean
+    }
+};
+
+
+Highlight.prototype = {
+
+    /**
+     An object consisting of classnames for a `row`, a `col` and a `cell` to
+     be applied to their respective objects when the user moves the mouse over
+     the item and the attribute is set to true.
+
+     @public
+     @property highlightClassNames
+     @type Object
+     @since 3.13.0
+     */
+    highlightClassNames: {
+        row: getClassName(NAME, 'row'),
+        col: getClassName(NAME, 'col'),
+        cell: getClassName(NAME, 'cell')
+    },
+
+    /**
+     A string that is used to create a column selector when the column is has
+     the mouse over it. Can contain the css prefix (`{prefix}`) and the column
+     name (`{col}`). Further substitution will require `_highlightCol` to be
+     overwritten.
+
+     @protected
+     @property _colSelector
+     @type String
+     @since 3.13.0
+     */
+    _colSelector: '.{prefix}-data .{prefix}-col-{col}',
+
+    /**
+     A string that will be used to create Regular Expression when column
+     highlighting is set to true. Uses the css prefix (`{prefix}`) from the
+     DataTable object to populate.
+
+     @protected
+     @property _colNameRegex
+     @type String
+     @since 3.13.0
+     */
+    _colNameRegex: '{prefix}-col-(\\S*)',
+
+    /**
+     This object will contain any delegates created when their feature is
+     turned on.
+
+     @protected
+     @property _highlightDelegates
+     @type Object
+     @since 3.13.0
+     */
+    _highlightDelegates: {},
+
+    /**
+     Default setter method for row highlighting. If the value is true, a
+     delegate is created and stored in `this._highlightDelegates.row`. This
+     delegate will add/remove the row highlight classname to/from the row when
+     the mouse enters/leaves a row on the `tbody`
+
+     @protected
+     @method _setHighlightRows
+     @param {Boolean} val
+     @return val
+     @since 3.13.0
+     */
+    _setHighlightRows: function (val) {
+        var del = this._highlightDelegates;
+
+        if (del.row) {
+            del.row.detach();
+        }
+
+        if (val === true) {
+            del.row = this.delegate('hover',
+                Y.bind(this._highlightRow, this),
+                Y.bind(this._highlightRow, this),
+            "tbody tr");
+        }
+
+        return val;
+    },
+
+    /**
+     Default setter method for column highlighting. If the value is true, a
+     delegate is created and stored in `this._highlightDelegates.col`. This
+     delegate will add/remove the column highlight classname to/from the
+     column when the mouse enters/leaves a column on the `tbody`
+
+     @protected
+     @method _setHighlightCols
+     @param {Boolean} val
+     @return val
+     @since 3.13.0
+     */
+    _setHighlightCols: function (val) {
+        var del = this._highlightDelegates;
+
+        if (del.col) {
+            del.col.detach();
+        }
+
+        if (val === true) {
+            this._buildColSelRegex();
+
+            del.col = this.delegate('hover',
+                Y.bind(this._highlightCol, this),
+                Y.bind(this._highlightCol, this),
+            "tr td");
+        }
+    },
+
+    /**
+     Default setter method for cell highlighting. If the value is true, a
+     delegate is created and stored in `this._highlightDelegates.cell`. This
+     delegate will add/remove the cell highlight classname to/from the cell
+     when the mouse enters/leaves a cell on the `tbody`
+
+     @protected
+     @method _setHighlightCells
+     @param {Boolean} val
+     @return val
+     @since 3.13.0
+     */
+    _setHighlightCells: function (val) {
+        var del = this._highlightDelegates;
+
+        if (del.cell) {
+            del.cell.detach();
+        }
+
+        if (val === true) {
+
+            del.cell = this.delegate('hover',
+                Y.bind(this._highlightCell, this),
+                Y.bind(this._highlightCell, this),
+            "tbody td");
+        }
+
+        return val;
+    },
+
+    /**
+     Method called to turn on or off the row highlighting when the mouse
+     enters or leaves the row. This is determined by the event phase of the
+     hover event. Where `over` will turn on the highlighting and anything else
+     will turn it off.
+
+     @protected
+     @method _highlightRow
+     @param {EventFacade} e Event from the hover event
+     @since 3.13.0
+     */
+    _highlightRow: function (e) {
+        e.currentTarget.toggleClass(this.highlightClassNames.row, (e.phase === 'over'));
+    },
+
+    /**
+     Method called to turn on or off the column highlighting when the mouse
+     enters or leaves the column. This is determined by the event phase of the
+     hover event. Where `over` will turn on the highlighting and anything else
+     will turn it off.
+
+     @protected
+     @method _highlightCol
+     @param {EventFacade} e Event from the hover event
+     @since 3.13.0
+     */
+    _highlightCol: function(e) {
+        var colName = this._colNameRegex.exec(e.currentTarget.getAttribute('class')),
+            selector = Y.Lang.sub(this._colSelector, {
+                prefix: this._cssPrefix,
+                col: colName[1]
+            });
+
+        this.view.tableNode.all(selector).toggleClass(this.highlightClassNames.col, (e.phase === 'over'));
+    },
+
+    /**
+     Method called to turn on or off the cell highlighting when the mouse
+     enters or leaves the cell. This is determined by the event phase of the
+     hover event. Where `over` will turn on the highlighting and anything else
+     will turn it off.
+
+     @protected
+     @method _highlightCell
+     @param {EventFacade} e Event from the hover event
+     @since 3.13.0
+     */
+    _highlightCell: function(e) {
+        e.currentTarget.toggleClass(this.highlightClassNames.cell, (e.phase === 'over'));
+    },
+
+    /**
+     Used to transform the `_colNameRegex` to a Regular Expression when the
+     column highlighting is initially turned on. If `_colNameRegex` is not a
+     string when this method is called, no action is taken.
+
+     @protected
+     @method _buildColSelRegex
+     @since 3.13.0
+     */
+    _buildColSelRegex: function () {
+        var str = this._colNameRegex,
+            regex;
+
+        if (typeof str === 'string') {
+            this._colNameRegex = new RegExp(Y.Lang.sub(str, { prefix: this._cssPrefix }));
+        }
+    }
+};
+
+Y.DataTable.Highlight = Highlight;
+
+Y.Base.mix(Y.DataTable, [Y.DataTable.Highlight]);
+
+
+}, '@VERSION@', {"requires": ["datatable-base", "event-hover"], "skinnable": true});