--- /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.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});