src/cm/media/js/lib/yui/yui3-3.15.0/build/datatable-highlight/datatable-highlight.js
author Yves-Marie Haussonne <ymh.work+github@gmail.com>
Fri, 09 May 2014 18:35:26 +0200
changeset 656 a84519031134
parent 602 e16a97fb364a
permissions -rw-r--r--
add link to "privacy policy" in the header test
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
602
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
     1
YUI.add('datatable-highlight', function (Y, NAME) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
     2
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
     3
/**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
     4
 Adds support for highlighting columns with the mouse in a DataTable
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
     5
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
     6
 @module datatable
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
     7
 @submodule datatable-highlight
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
     8
 @since 3.13.0
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
     9
 */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    10
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    11
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    12
var getClassName = Y.ClassNameManager.getClassName;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    13
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    14
/**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    15
 @class DataTable.Highlight
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    16
 @since 3.13.0
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    17
 */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    18
function Highlight() {}
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    19
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    20
Highlight.ATTRS = {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    21
    /**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    22
     Setting this to true will create a delegate on the DataTable adding the
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    23
     default classname to the row when the mouse is over the row.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    24
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    25
     @attribute highlightRows
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    26
     @default false
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    27
     @since 3.13.0
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    28
     */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    29
    highlightRows: {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    30
        value: false,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    31
        setter: '_setHighlightRows',
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    32
        validator: Y.Lang.isBoolean
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    33
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    34
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    35
    /**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    36
     Setting this to true will create a delegate on the DataTable adding the
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    37
     default classname to the column when the mouse is over the column.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    38
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    39
     @attribute highlightCols
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    40
     @default false
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    41
     @since 3.13.0
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    42
     */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    43
    highlightCols: {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    44
        value: false,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    45
        setter: '_setHighlightCols',
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    46
        validator: Y.Lang.isBoolean
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    47
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    48
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    49
    /**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    50
     Setting this to true will create a delegate on the DataTable adding the
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    51
     default classname to the cell when the mouse is over it.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    52
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    53
     @attribute highlightCells
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    54
     @default false
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    55
     @since 3.13.0
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    56
     */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    57
    highlightCells: {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    58
        value: false,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    59
        setter: '_setHighlightCells',
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    60
        validator: Y.Lang.isBoolean
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    61
    }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    62
};
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    63
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    64
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    65
Highlight.prototype = {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    66
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    67
    /**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    68
     An object consisting of classnames for a `row`, a `col` and a `cell` to
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    69
     be applied to their respective objects when the user moves the mouse over
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    70
     the item and the attribute is set to true.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    71
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    72
     @public
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    73
     @property highlightClassNames
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    74
     @type Object
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    75
     @since 3.13.0
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    76
     */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    77
    highlightClassNames: {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    78
        row: getClassName(NAME, 'row'),
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    79
        col: getClassName(NAME, 'col'),
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    80
        cell: getClassName(NAME, 'cell')
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    81
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    82
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    83
    /**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    84
     A string that is used to create a column selector when the column is has
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    85
     the mouse over it. Can contain the css prefix (`{prefix}`) and the column
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    86
     name (`{col}`). Further substitution will require `_highlightCol` to be
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    87
     overwritten.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    88
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    89
     @protected
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    90
     @property _colSelector
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    91
     @type String
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    92
     @since 3.13.0
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    93
     */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    94
    _colSelector: '.{prefix}-data .{prefix}-col-{col}',
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    95
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    96
    /**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    97
     A string that will be used to create Regular Expression when column
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    98
     highlighting is set to true. Uses the css prefix (`{prefix}`) from the
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    99
     DataTable object to populate.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   100
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   101
     @protected
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   102
     @property _colNameRegex
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   103
     @type String
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   104
     @since 3.13.0
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   105
     */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   106
    _colNameRegex: '{prefix}-col-(\\S*)',
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   107
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   108
    /**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   109
     This object will contain any delegates created when their feature is
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   110
     turned on.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   111
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   112
     @protected
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   113
     @property _highlightDelegates
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   114
     @type Object
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   115
     @since 3.13.0
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   116
     */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   117
    _highlightDelegates: {},
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   118
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   119
    /**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   120
     Default setter method for row highlighting. If the value is true, a
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   121
     delegate is created and stored in `this._highlightDelegates.row`. This
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   122
     delegate will add/remove the row highlight classname to/from the row when
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   123
     the mouse enters/leaves a row on the `tbody`
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   124
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   125
     @protected
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   126
     @method _setHighlightRows
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   127
     @param {Boolean} val
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   128
     @return val
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   129
     @since 3.13.0
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   130
     */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   131
    _setHighlightRows: function (val) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   132
        var del = this._highlightDelegates;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   133
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   134
        if (del.row) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   135
            del.row.detach();
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   136
        }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   137
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   138
        if (val === true) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   139
            del.row = this.delegate('hover',
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   140
                Y.bind(this._highlightRow, this),
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   141
                Y.bind(this._highlightRow, this),
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   142
            "tbody tr");
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   143
        }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   144
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   145
        return val;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   146
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   147
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   148
    /**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   149
     Default setter method for column highlighting. If the value is true, a
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   150
     delegate is created and stored in `this._highlightDelegates.col`. This
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   151
     delegate will add/remove the column highlight classname to/from the
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   152
     column when the mouse enters/leaves a column on the `tbody`
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   153
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   154
     @protected
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   155
     @method _setHighlightCols
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   156
     @param {Boolean} val
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   157
     @return val
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   158
     @since 3.13.0
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   159
     */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   160
    _setHighlightCols: function (val) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   161
        var del = this._highlightDelegates;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   162
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   163
        if (del.col) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   164
            del.col.detach();
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   165
        }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   166
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   167
        if (val === true) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   168
            this._buildColSelRegex();
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   169
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   170
            del.col = this.delegate('hover',
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   171
                Y.bind(this._highlightCol, this),
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   172
                Y.bind(this._highlightCol, this),
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   173
            "tr td");
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   174
        }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   175
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   176
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   177
    /**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   178
     Default setter method for cell highlighting. If the value is true, a
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   179
     delegate is created and stored in `this._highlightDelegates.cell`. This
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   180
     delegate will add/remove the cell highlight classname to/from the cell
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   181
     when the mouse enters/leaves a cell on the `tbody`
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   182
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   183
     @protected
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   184
     @method _setHighlightCells
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   185
     @param {Boolean} val
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   186
     @return val
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   187
     @since 3.13.0
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   188
     */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   189
    _setHighlightCells: function (val) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   190
        var del = this._highlightDelegates;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   191
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   192
        if (del.cell) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   193
            del.cell.detach();
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   194
        }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   195
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   196
        if (val === true) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   197
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   198
            del.cell = this.delegate('hover',
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   199
                Y.bind(this._highlightCell, this),
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   200
                Y.bind(this._highlightCell, this),
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   201
            "tbody td");
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   202
        }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   203
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   204
        return val;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   205
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   206
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   207
    /**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   208
     Method called to turn on or off the row highlighting when the mouse
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   209
     enters or leaves the row. This is determined by the event phase of the
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   210
     hover event. Where `over` will turn on the highlighting and anything else
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   211
     will turn it off.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   212
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   213
     @protected
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   214
     @method _highlightRow
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   215
     @param {EventFacade} e Event from the hover event
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   216
     @since 3.13.0
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   217
     */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   218
    _highlightRow: function (e) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   219
        e.currentTarget.toggleClass(this.highlightClassNames.row, (e.phase === 'over'));
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   220
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   221
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   222
    /**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   223
     Method called to turn on or off the column highlighting when the mouse
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   224
     enters or leaves the column. This is determined by the event phase of the
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   225
     hover event. Where `over` will turn on the highlighting and anything else
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   226
     will turn it off.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   227
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   228
     @protected
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   229
     @method _highlightCol
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   230
     @param {EventFacade} e Event from the hover event
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   231
     @since 3.13.0
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   232
     */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   233
    _highlightCol: function(e) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   234
        var colName = this._colNameRegex.exec(e.currentTarget.getAttribute('class')),
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   235
            selector = Y.Lang.sub(this._colSelector, {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   236
                prefix: this._cssPrefix,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   237
                col: colName[1]
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   238
            });
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   239
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   240
        this.view.tableNode.all(selector).toggleClass(this.highlightClassNames.col, (e.phase === 'over'));
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   241
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   242
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   243
    /**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   244
     Method called to turn on or off the cell highlighting when the mouse
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   245
     enters or leaves the cell. This is determined by the event phase of the
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   246
     hover event. Where `over` will turn on the highlighting and anything else
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   247
     will turn it off.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   248
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   249
     @protected
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   250
     @method _highlightCell
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   251
     @param {EventFacade} e Event from the hover event
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   252
     @since 3.13.0
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   253
     */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   254
    _highlightCell: function(e) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   255
        e.currentTarget.toggleClass(this.highlightClassNames.cell, (e.phase === 'over'));
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   256
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   257
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   258
    /**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   259
     Used to transform the `_colNameRegex` to a Regular Expression when the
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   260
     column highlighting is initially turned on. If `_colNameRegex` is not a
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   261
     string when this method is called, no action is taken.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   262
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   263
     @protected
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   264
     @method _buildColSelRegex
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   265
     @since 3.13.0
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   266
     */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   267
    _buildColSelRegex: function () {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   268
        var str = this._colNameRegex,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   269
            regex;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   270
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   271
        if (typeof str === 'string') {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   272
            this._colNameRegex = new RegExp(Y.Lang.sub(str, { prefix: this._cssPrefix }));
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   273
        }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   274
    }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   275
};
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   276
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   277
Y.DataTable.Highlight = Highlight;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   278
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   279
Y.Base.mix(Y.DataTable, [Y.DataTable.Highlight]);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   280
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   281
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   282
}, '@VERSION@', {"requires": ["datatable-base", "event-hover"], "skinnable": true});