src/cm/media/js/lib/yui/yui_3.10.3/build/slider-base/slider-base.js
author Yves-Marie Haussonne <ymh.work+github@gmail.com>
Fri, 09 May 2014 18:35:26 +0200
changeset 656 a84519031134
parent 525 89ef5ed3c48b
permissions -rw-r--r--
add link to "privacy policy" in the header test
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
525
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
     1
/*
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
     2
YUI 3.10.3 (build 2fb5187)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
     3
Copyright 2013 Yahoo! Inc. All rights reserved.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
     4
Licensed under the BSD License.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
     5
http://yuilibrary.com/license/
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
     6
*/
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
     7
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
     8
YUI.add('slider-base', function (Y, NAME) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
     9
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    10
/**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    11
 * Create a sliding value range input visualized as a draggable thumb on a
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    12
 * background element.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    13
 * 
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    14
 * @module slider
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    15
 * @submodule slider-base
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    16
 */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    17
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    18
var INVALID_VALUE = Y.Attribute.INVALID_VALUE;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    19
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    20
/**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    21
 * Create a slider to represent an input control capable of representing a
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    22
 * series of intermediate states based on the position of the slider's thumb.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    23
 * These states are typically aligned to a value algorithm whereby the thumb
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    24
 * position corresponds to a given value. Sliders may be oriented vertically or
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    25
 * horizontally, based on the <code>axis</code> configuration.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    26
 *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    27
 * @class SliderBase
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    28
 * @extends Widget
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    29
 * @param config {Object} Configuration object
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    30
 * @constructor
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    31
 */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    32
function SliderBase() {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    33
    SliderBase.superclass.constructor.apply( this, arguments );
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    34
}
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    35
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    36
Y.SliderBase = Y.extend( SliderBase, Y.Widget, {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    37
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    38
    // Y.Slider prototype
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    39
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    40
    /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    41
     * Construction logic executed during Slider instantiation.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    42
     *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    43
     * @method initializer
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    44
     * @protected
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    45
     */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    46
    initializer : function () {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    47
        /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    48
         * The configured axis, stored for fast lookup since it's a writeOnce
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    49
         * attribute.  This is for use by extension classes.  For
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    50
         * implementation code, use <code>get( &quot;axis&quot; )</code> for
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    51
         * authoritative source.  Never write to this property.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    52
         *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    53
         * @property axis
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    54
         * @type {String}
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    55
         * @protected
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    56
         */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    57
        this.axis = this.get( 'axis' );
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    58
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    59
        /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    60
         * Cached fast access map for DOM properties and attributes that
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    61
         * pertain to accessing dimensional or positioning information
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    62
         * according to the Slider's axis (e.g. &quot;height&quot; vs.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    63
         * &quot;width&quot;).  Extension classes should add to this collection
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    64
         * for axis related strings if necessary.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    65
         *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    66
         * @property _key
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    67
         * @type {Object}
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    68
         * @protected
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    69
         */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    70
        this._key = {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    71
            dim    : ( this.axis === 'y' ) ? 'height' : 'width',
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    72
            minEdge: ( this.axis === 'y' ) ? 'top'    : 'left',
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    73
            maxEdge: ( this.axis === 'y' ) ? 'bottom' : 'right',
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    74
            xyIndex: ( this.axis === 'y' ) ? 1 : 0
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    75
        };
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    76
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    77
        /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    78
         * Signals that the thumb has moved.  Payload includes the thumb's
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    79
         * pixel offset from the top/left edge of the rail, and if triggered by
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    80
         * dragging the thumb, the <code>drag:drag</code> event.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    81
         *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    82
         * @event thumbMove
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    83
         * @param event {Event} The event object for the thumbMove with the
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    84
         *                      following extra properties:
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    85
         *  <dl>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    86
         *      <dt>offset</dt>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    87
         *          <dd>Pixel offset from top/left of the slider to the new
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    88
         *          thumb position</dd>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    89
         *      <dt>ddEvent (deprecated)</dt>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    90
         *          <dd><code>drag:drag</code> event from the thumb</dd>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    91
         *      <dt>originEvent</dt>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    92
         *          <dd><code>drag:drag</code> event from the thumb</dd>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    93
         *  </dl>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    94
         */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    95
        this.publish( 'thumbMove', {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    96
            defaultFn: this._defThumbMoveFn,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    97
            queuable : true
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    98
        } );
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    99
    },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   100
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   101
    /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   102
     * Create the DOM structure for the Slider.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   103
     *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   104
     * @method renderUI
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   105
     * @protected
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   106
     */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   107
    renderUI : function () {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   108
        var contentBox = this.get( 'contentBox' );
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   109
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   110
        /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   111
         * The Node instance of the Slider's rail element.  Do not write to
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   112
         * this property.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   113
         *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   114
         * @property rail
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   115
         * @type {Node}
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   116
         */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   117
        this.rail = this.renderRail();
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   118
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   119
        this._uiSetRailLength( this.get( 'length' ) );
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   120
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   121
        /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   122
         * The Node instance of the Slider's thumb element.  Do not write to
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   123
         * this property.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   124
         *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   125
         * @property thumb
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   126
         * @type {Node}
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   127
         */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   128
        this.thumb = this.renderThumb();
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   129
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   130
        this.rail.appendChild( this.thumb );
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   131
        // @TODO: insert( contentBox, 'replace' ) or setHTML?
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   132
        contentBox.appendChild( this.rail );
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   133
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   134
        // <span class="yui3-slider-x">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   135
        contentBox.addClass( this.getClassName( this.axis ) );
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   136
    },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   137
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   138
    /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   139
     * Creates the Slider rail DOM subtree for insertion into the Slider's
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   140
     * <code>contentBox</code>.  Override this method if you want to provide
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   141
     * the rail element (presumably from existing markup).
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   142
     *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   143
     * @method renderRail
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   144
     * @return {Node} the rail node subtree
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   145
     */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   146
    renderRail: function () {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   147
        var minCapClass = this.getClassName( 'rail', 'cap', this._key.minEdge ),
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   148
            maxCapClass = this.getClassName( 'rail', 'cap', this._key.maxEdge );
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   149
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   150
        return Y.Node.create(
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   151
            Y.Lang.sub( this.RAIL_TEMPLATE, {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   152
                railClass      : this.getClassName( 'rail' ),
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   153
                railMinCapClass: minCapClass,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   154
                railMaxCapClass: maxCapClass
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   155
            } ) );
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   156
    },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   157
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   158
    /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   159
     * Sets the rail length according to the <code>length</code> attribute.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   160
     *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   161
     * @method _uiSetRailLength
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   162
     * @param length {String} the length to apply to the rail style
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   163
     * @protected
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   164
     */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   165
    _uiSetRailLength: function ( length ) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   166
        this.rail.setStyle( this._key.dim, length );
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   167
    },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   168
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   169
    /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   170
     * Creates the Slider thumb DOM subtree for insertion into the Slider's
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   171
     * rail.  Override this method if you want to provide the thumb element
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   172
     * (presumably from existing markup).
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   173
     *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   174
     * @method renderThumb
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   175
     * @return {Node} the thumb node subtree
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   176
     */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   177
    renderThumb: function () {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   178
        this._initThumbUrl();
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   179
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   180
        var imageUrl = this.get( 'thumbUrl' );
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   181
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   182
        return Y.Node.create(
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   183
            Y.Lang.sub( this.THUMB_TEMPLATE, {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   184
                thumbClass      : this.getClassName( 'thumb' ),
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   185
                thumbShadowClass: this.getClassName( 'thumb', 'shadow' ),
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   186
                thumbImageClass : this.getClassName( 'thumb', 'image' ),
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   187
                thumbShadowUrl  : imageUrl,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   188
                thumbImageUrl   : imageUrl,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   189
                thumbAriaLabelId: this.getClassName( 'label', Y.guid()) // get unique id for specifying a label for ARIA
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   190
            } ) );
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   191
    },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   192
    
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   193
    /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   194
     * Gives focus to the thumb enabling keyboard access after clicking thumb
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   195
     *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   196
     * @method _onThumbClick
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   197
     * @protected
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   198
     */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   199
    _onThumbClick : function(e){
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   200
        this.thumb.focus();
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   201
    },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   202
    
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   203
    
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   204
    /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   205
     * Creates the Y.DD.Drag instance used to handle the thumb movement and
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   206
     * binds Slider interaction to the configured value model.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   207
     *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   208
     * @method bindUI
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   209
     * @protected
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   210
     */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   211
    bindUI : function () {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   212
    
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   213
        // Begin keyboard listeners ///////////////////////////////
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   214
        var boundingBox = this.get("boundingBox"), //Y.one('body'),
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   215
        // Looking for a key event which will fire continously across browsers while the key is held down.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   216
        keyEvent = (!Y.UA.opera) ? "down:" : "press:",            
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   217
        // 38, 40 = arrow up/down, 33, 34 = page up/down,  35 , 36 = end/home
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   218
        keyEventSpec = keyEvent + "38,40,33,34,35,36",
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   219
        // 37 , 39 = arrow left/right
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   220
        keyLeftRightSpec = keyEvent + "37,39",
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   221
        // 37 , 39 = arrow left/right + meta (command/apple key) for mac
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   222
        keyLeftRightSpecMeta = keyEvent + "37+meta,39+meta";
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   223
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   224
        boundingBox.on("key", this._onDirectionKey, keyEventSpec, this);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   225
        boundingBox.on("key", this._onLeftRightKey, keyLeftRightSpec, this);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   226
        boundingBox.on("key", this._onLeftRightKeyMeta, keyLeftRightSpecMeta, this);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   227
        // End keyboard listeners //////////////////////////////////
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   228
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   229
        this.thumb.on('click', this._onThumbClick, this);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   230
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   231
        this._bindThumbDD();
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   232
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   233
        this._bindValueLogic();
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   234
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   235
        this.after( 'disabledChange', this._afterDisabledChange );
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   236
        this.after( 'lengthChange',   this._afterLengthChange );
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   237
        
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   238
    },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   239
                      
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   240
    /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   241
     * increments Slider value by a minor increment
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   242
     *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   243
     * @method _incrMinor
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   244
     * @protected
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   245
     */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   246
    _incrMinor : function(){
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   247
        this.set('value', (this.get('value') + this.get('minorStep')));
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   248
    },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   249
    
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   250
    /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   251
     * decrements Slider value by a minor increment
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   252
     *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   253
     * @method _decrMinor
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   254
     * @protected
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   255
     */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   256
    _decrMinor : function(){
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   257
        this.set('value', (this.get('value') - this.get('minorStep')));
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   258
    },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   259
        
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   260
    /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   261
     * increments Slider value by a major increment
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   262
     *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   263
     * @method _incrMajor
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   264
     * @protected
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   265
     */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   266
    _incrMajor : function(){
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   267
        this.set('value', (this.get('value') + this.get('majorStep')));
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   268
    },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   269
    
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   270
    /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   271
     * decrements Slider value by a major increment
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   272
     *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   273
     * @method _decrMajor
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   274
     * @protected
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   275
     */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   276
    _decrMajor : function(){
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   277
        this.set('value', (this.get('value') - this.get('majorStep')));
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   278
    },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   279
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   280
    /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   281
     * sets the Slider value to the min value. 
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   282
     *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   283
     * @method _setToMin
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   284
     * @protected
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   285
     */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   286
    _setToMin : function(e){
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   287
        this.set('value', this.get('min'));
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   288
    },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   289
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   290
    /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   291
     * sets the Slider value to the max value. 
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   292
     *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   293
     * @method _setToMax
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   294
     * @protected
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   295
     */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   296
    _setToMax : function(e){
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   297
        this.set('value', this.get('max'));
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   298
    },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   299
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   300
    /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   301
     * sets the Slider's value in response to key events.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   302
     * Left and right keys are in a separate method 
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   303
     * in case an implementation wants to increment values
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   304
     * but needs left and right arrow keys for other purposes.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   305
     *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   306
     * @method _onDirectionKey
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   307
     * @param e {Event} the key event
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   308
     * @protected
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   309
     */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   310
    _onDirectionKey : function(e) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   311
        e.preventDefault();
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   312
        if(this.get('disabled') === false){
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   313
            switch (e.charCode) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   314
                case 38: // up
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   315
                    this._incrMinor();
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   316
                    break;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   317
                case 40: // down
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   318
                    this._decrMinor();
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   319
                    break;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   320
                case 36: // home
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   321
                    this._setToMin();
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   322
                    break;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   323
                case 35: // end
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   324
                    this._setToMax();
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   325
                    break;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   326
                case 33: // page up
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   327
                    this._incrMajor();
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   328
                    break;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   329
                case 34: // page down
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   330
                    this._decrMajor();
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   331
                    break;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   332
            }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   333
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   334
    },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   335
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   336
    /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   337
     * sets the Slider's value in response to left or right key events
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   338
     *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   339
     * @method _onLeftRightKey
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   340
     * @param e {Event} the key event
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   341
     * @protected
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   342
     */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   343
    _onLeftRightKey : function(e) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   344
        e.preventDefault();
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   345
        if(this.get('disabled') === false){
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   346
            switch (e.charCode) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   347
                case 37: // left
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   348
                    this._decrMinor();
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   349
                    break;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   350
                case 39: // right
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   351
                    this._incrMinor();
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   352
                    break;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   353
            }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   354
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   355
    },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   356
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   357
    /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   358
     * sets the Slider's value in response to left or right key events when a meta (mac command/apple) key is also pressed
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   359
     *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   360
     * @method _onLeftRightKeyMeta
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   361
     * @param e {Event} the key event
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   362
     * @protected
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   363
     */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   364
    _onLeftRightKeyMeta : function(e) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   365
        e.preventDefault();
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   366
        if(this.get('disabled') === false){
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   367
            switch (e.charCode) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   368
                case 37: // left + meta
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   369
                    this._setToMin();
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   370
                    break;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   371
                case 39: // right + meta
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   372
                    this._setToMax();
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   373
                    break;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   374
            }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   375
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   376
    },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   377
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   378
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   379
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   380
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   381
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   382
    /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   383
     * Makes the thumb draggable and constrains it to the rail.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   384
     *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   385
     * @method _bindThumbDD
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   386
     * @protected
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   387
     */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   388
    _bindThumbDD: function () {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   389
        var config = { constrain: this.rail };
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   390
        
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   391
        // { constrain: rail, stickX: true }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   392
        config[ 'stick' + this.axis.toUpperCase() ] = true;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   393
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   394
        /** 
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   395
         * The DD.Drag instance linked to the thumb node.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   396
         *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   397
         * @property _dd
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   398
         * @type {DD.Drag}
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   399
         * @protected
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   400
         */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   401
        this._dd = new Y.DD.Drag( {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   402
            node   : this.thumb,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   403
            bubble : false,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   404
            on     : {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   405
                'drag:start': Y.bind( this._onDragStart, this )
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   406
            },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   407
            after  : {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   408
                'drag:drag': Y.bind( this._afterDrag,    this ),
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   409
                'drag:end' : Y.bind( this._afterDragEnd, this )
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   410
            }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   411
        } );
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   412
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   413
        // Constrain the thumb to the rail
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   414
        this._dd.plug( Y.Plugin.DDConstrained, config );
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   415
    },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   416
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   417
    /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   418
     * Stub implementation.  Override this (presumably in a class extension) to
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   419
     * initialize any value logic that depends on the presence of the Drag
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   420
     * instance.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   421
     *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   422
     * @method _bindValueLogic
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   423
     * @protected
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   424
     */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   425
    _bindValueLogic: function () {},
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   426
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   427
    /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   428
     * Moves the thumb to pixel offset position along the rail.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   429
     *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   430
     * @method _uiMoveThumb
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   431
     * @param offset {Number} the pixel offset to set as left or top style
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   432
     * @param [options] {Object} Details to send with the `thumbMove` event
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   433
     * @protected
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   434
     */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   435
    _uiMoveThumb: function ( offset, options ) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   436
        if ( this.thumb ) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   437
            this.thumb.setStyle( this._key.minEdge, offset + 'px' );
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   438
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   439
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   440
            options || (options = {});
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   441
            options.offset = offset;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   442
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   443
            this.fire( 'thumbMove', options );
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   444
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   445
    },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   446
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   447
    /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   448
     * Dispatches the <code>slideStart</code> event.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   449
     *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   450
     * @method _onDragStart
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   451
     * @param e {Event} the <code>drag:start</code> event from the thumb
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   452
     * @protected
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   453
     */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   454
    _onDragStart: function ( e ) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   455
        /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   456
         * Signals the beginning of a thumb drag operation.  Payload includes
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   457
         * the thumb's drag:start event.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   458
         *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   459
         * @event slideStart
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   460
         * @param event {Event} The event object for the slideStart with the
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   461
         *                      following extra properties:
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   462
         *  <dl>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   463
         *      <dt>ddEvent (deprecated)</dt>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   464
         *          <dd><code>drag:start</code> event from the thumb</dd>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   465
         *      <dt>originEvent</dt>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   466
         *          <dd><code>drag:start</code> event from the thumb</dd>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   467
         *  </dl>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   468
         */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   469
        this.fire('slideStart', {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   470
           ddEvent: e, // for backward compatibility
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   471
           originEvent: e
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   472
        });
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   473
    },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   474
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   475
    /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   476
     * Dispatches the <code>thumbMove</code> event.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   477
     *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   478
     * @method _afterDrag
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   479
     * @param e {Event} the <code>drag:drag</code> event from the thumb
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   480
     * @protected
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   481
     */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   482
    _afterDrag: function ( e ) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   483
        var thumbXY = e.info.xy[ this._key.xyIndex ],
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   484
            railXY  = e.target.con._regionCache[ this._key.minEdge ];
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   485
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   486
        this.fire( 'thumbMove', {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   487
            offset : (thumbXY - railXY),
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   488
            ddEvent: e, // for backward compatibility
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   489
            originEvent: e
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   490
        } );
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   491
    },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   492
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   493
    /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   494
     * Dispatches the <code>slideEnd</code> event.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   495
     *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   496
     * @method _onDragEnd
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   497
     * @param e {Event} the <code>drag:end</code> event from the thumb
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   498
     * @protected
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   499
     */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   500
    _afterDragEnd: function ( e ) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   501
        /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   502
         * Signals the end of a thumb drag operation.  Payload includes
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   503
         * the thumb's drag:end event.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   504
         *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   505
         * @event slideEnd
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   506
         * @param event {Event} The event object for the slideEnd with the
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   507
         *                      following extra properties:
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   508
         *  <dl>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   509
         *      <dt>ddEvent (deprecated)</dt>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   510
         *          <dd><code>drag:end</code> event from the thumb</dd>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   511
         *      <dt>originEvent</dt>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   512
         *          <dd><code>drag:end</code> event from the thumb</dd>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   513
         *  </dl>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   514
         */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   515
        this.fire('slideEnd', {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   516
            ddEvent: e,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   517
            originEvent: e
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   518
        });
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   519
    },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   520
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   521
    /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   522
     * Locks or unlocks the thumb.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   523
     *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   524
     * @method _afterDisabledChange
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   525
     * @param e {Event} The disabledChange event object
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   526
     * @protected
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   527
     */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   528
    _afterDisabledChange: function ( e ) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   529
        this._dd.set( 'lock', e.newVal );
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   530
    },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   531
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   532
    /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   533
     * Handles changes to the <code>length</code> attribute.  By default, it
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   534
     * triggers an update to the UI.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   535
     *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   536
     * @method _afterLengthChange
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   537
     * @param e {Event} The lengthChange event object
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   538
     * @protected
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   539
     */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   540
    _afterLengthChange: function ( e ) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   541
        if ( this.get( 'rendered' ) ) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   542
            this._uiSetRailLength( e.newVal );
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   543
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   544
            this.syncUI();
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   545
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   546
    },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   547
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   548
    /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   549
     * Synchronizes the DOM state with the attribute settings.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   550
     *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   551
     * @method syncUI
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   552
     */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   553
    syncUI : function () {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   554
        this._dd.con.resetCache();
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   555
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   556
        this._syncThumbPosition();
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   557
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   558
        // Forces a reflow of the bounding box to address IE8 inline-block
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   559
        // container not expanding correctly. bug 2527905
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   560
        //this.get('boundingBox').toggleClass('');
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   561
        this.thumb.set('aria-valuemin', this.get('min'));
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   562
        this.thumb.set('aria-valuemax', this.get('max'));
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   563
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   564
        this._dd.set('lock', this.get('disabled'));
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   565
    },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   566
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   567
    /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   568
     * Stub implementation.  Override this (presumably in a class extension) to
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   569
     * ensure the thumb is in the correct position according to the value
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   570
     * alogorithm.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   571
     * instance.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   572
     *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   573
     * @method _syncThumbPosition
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   574
     * @protected
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   575
     */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   576
    _syncThumbPosition: function () {},
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   577
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   578
    /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   579
     * Validates the axis is &quot;x&quot; or &quot;y&quot; (case insensitive).
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   580
     * Converts to lower case for storage.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   581
     *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   582
     * @method _setAxis
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   583
     * @param v {String} proposed value for the axis attribute
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   584
     * @return {String} lowercased first character of the input string
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   585
     * @protected
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   586
     */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   587
    _setAxis : function (v) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   588
        v = ( v + '' ).toLowerCase();
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   589
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   590
        return ( v === 'x' || v === 'y' ) ? v : INVALID_VALUE;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   591
    },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   592
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   593
    /** 
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   594
     * <p>Ensures the stored length value is a string with a quantity and unit.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   595
     * Unit will be defaulted to &quot;px&quot; if not included.  Rejects
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   596
     * values less than or equal to 0 and those that don't at least start with
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   597
     * a number.</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   598
     *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   599
     * <p>Currently only pixel lengths are supported.</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   600
     *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   601
     * @method _setLength
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   602
     * @param v {String} proposed value for the length attribute
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   603
     * @return {String} the sanitized value
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   604
     * @protected
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   605
     */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   606
    _setLength: function ( v ) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   607
        v = ( v + '' ).toLowerCase();
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   608
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   609
        var length = parseFloat( v, 10 ),
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   610
            units  = v.replace( /[\d\.\-]/g, '' ) || this.DEF_UNIT;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   611
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   612
        return length > 0 ? ( length + units ) : INVALID_VALUE;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   613
    },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   614
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   615
    /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   616
     * <p>Defaults the thumbURL attribute according to the current skin, or
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   617
     * &quot;sam&quot; if none can be determined.  Horizontal Sliders will have
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   618
     * their <code>thumbUrl</code> attribute set to</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   619
     * <p><code>&quot;/<em>configured</em>/<em>yu</em>i/<em>builddi</em>r/slider-base/assets/skins/sam/thumb-x.png&quot;</code></p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   620
     * <p>And vertical thumbs will get</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   621
     * <p><code>&quot;/<em>configured</em>/<em>yui</em>/<em>builddir</em>/slider-base/assets/skins/sam/thumb-y.png&quot;</code></p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   622
     *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   623
     * @method _initThumbUrl
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   624
     * @protected
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   625
     */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   626
    _initThumbUrl: function () {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   627
        if (!this.get('thumbUrl')) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   628
            var skin = this.getSkinName() || 'sam',
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   629
                base = Y.config.base;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   630
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   631
            // Unfortunate hack to avoid requesting image resources from the
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   632
            // combo service.  The combo service does not serve images.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   633
            if (base.indexOf('http://yui.yahooapis.com/combo') === 0) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   634
                base = 'http://yui.yahooapis.com/' + Y.version + '/build/';
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   635
            }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   636
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   637
            // <img src="/path/to/build/slider-base/assets/skins/sam/thumb-x.png">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   638
            this.set('thumbUrl', base + 'slider-base/assets/skins/' +
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   639
                                 skin + '/thumb-' + this.axis + '.png');
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   640
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   641
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   642
    },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   643
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   644
    /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   645
     * Bounding box template that will contain the Slider's DOM subtree.  &lt;span&gt;s are used to support inline-block styling.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   646
     *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   647
     * @property BOUNDING_TEMPLATE
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   648
     * @type {String}
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   649
     * @default &lt;span>&lt;/span>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   650
     */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   651
    BOUNDING_TEMPLATE : '<span></span>',
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   652
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   653
    /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   654
     * Content box template that will contain the Slider's rail and thumb.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   655
     *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   656
     * @property CONTENT_TEMPLATE
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   657
     * @type {String}
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   658
     * @default &lt;span>&lt;/span>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   659
     */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   660
    CONTENT_TEMPLATE  : '<span></span>',
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   661
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   662
    /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   663
     * Rail template that will contain the end caps and the thumb.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   664
     * {placeholder}s are used for template substitution at render time.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   665
     *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   666
     * @property RAIL_TEMPLATE
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   667
     * @type {String}
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   668
     * @default &lt;span class="{railClass}">&lt;span class="{railMinCapClass}">&lt;/span>&lt;span class="{railMaxCapClass}">&lt;/span>&lt;/span>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   669
     */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   670
    RAIL_TEMPLATE     : '<span class="{railClass}">' +
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   671
                            '<span class="{railMinCapClass}"></span>' +
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   672
                            '<span class="{railMaxCapClass}"></span>' +
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   673
                        '</span>',
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   674
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   675
    /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   676
     * Thumb template that will contain the thumb image and shadow. &lt;img>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   677
     * tags are used instead of background images to avoid a flicker bug in IE.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   678
     * {placeholder}s are used for template substitution at render time.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   679
     *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   680
     * @property THUMB_TEMPLATE
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   681
     * @type {String}
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   682
     * @default &lt;span class="{thumbClass}" tabindex="-1">&lt;img src="{thumbShadowUrl}" alt="Slider thumb shadow" class="{thumbShadowClass}">&lt;img src="{thumbImageUrl}" alt="Slider thumb" class="{thumbImageClass}">&lt;/span>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   683
     */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   684
    THUMB_TEMPLATE    : '<span class="{thumbClass}" aria-labelledby="{thumbAriaLabelId}" aria-valuetext="" aria-valuemax="" aria-valuemin="" aria-valuenow="" role="slider" tabindex="0">' +   // keyboard access jeff     tabindex="-1"
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   685
                            '<img src="{thumbShadowUrl}" ' +
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   686
                                'alt="Slider thumb shadow" ' +
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   687
                                'class="{thumbShadowClass}">' +
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   688
                            '<img src="{thumbImageUrl}" ' +
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   689
                                'alt="Slider thumb" ' +
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   690
                                'class="{thumbImageClass}">' +
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   691
                        '</span>'
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   692
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   693
}, {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   694
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   695
    // Y.SliderBase static properties
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   696
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   697
    /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   698
     * The identity of the widget.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   699
     *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   700
     * @property NAME
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   701
     * @type String
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   702
     * @default 'sliderBase'
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   703
     * @readOnly
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   704
     * @protected
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   705
     * @static
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   706
     */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   707
    NAME : 'sliderBase',
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   708
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   709
    /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   710
     * Static property used to define the default attribute configuration of
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   711
     * the Widget.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   712
     *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   713
     * @property ATTRS
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   714
     * @type {Object}
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   715
     * @protected
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   716
     * @static
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   717
     */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   718
    ATTRS : {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   719
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   720
        /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   721
         * Axis upon which the Slider's thumb moves.  &quot;x&quot; for
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   722
         * horizontal, &quot;y&quot; for vertical.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   723
         *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   724
         * @attribute axis
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   725
         * @type {String}
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   726
         * @default &quot;x&quot;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   727
         * @writeOnce
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   728
         */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   729
        axis : {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   730
            value     : 'x',
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   731
            writeOnce : true,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   732
            setter    : '_setAxis',
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   733
            lazyAdd   : false
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   734
        },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   735
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   736
        /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   737
         * The length of the rail (exclusive of the end caps if positioned by
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   738
         * CSS).  This corresponds to the movable range of the thumb.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   739
         *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   740
         * @attribute length
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   741
         * @type {String | Number} e.g. "200px" or 200
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   742
         * @default 150px
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   743
         */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   744
        length: {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   745
            value: '150px',
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   746
            setter: '_setLength'
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   747
        },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   748
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   749
        /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   750
         * Path to the thumb image.  This will be used as both the thumb and
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   751
         * shadow as a sprite.  Defaults at render() to thumb-x.png or
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   752
         * thumb-y.png in the skin directory of the current skin.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   753
         *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   754
         * @attribute thumbUrl
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   755
         * @type {String}
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   756
         * @default thumb-x.png or thumb-y.png in the sam skin directory of the
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   757
         *          current build path for Slider
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   758
         */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   759
        thumbUrl: {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   760
            value: null,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   761
            validator: Y.Lang.isString
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   762
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   763
    }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   764
});
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   765
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   766
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   767
}, '3.10.3', {"requires": ["widget", "dd-constrain", "event-key"], "skinnable": true});