src/cm/media/js/lib/yui/yui3-3.15.0/build/scrollview-scrollbars/scrollview-scrollbars-debug.js
author gibus
Mon, 10 Mar 2014 15:19:48 +0100
changeset 602 e16a97fb364a
permissions -rw-r--r--
Use YUI 3.15
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
602
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
     1
YUI.add('scrollview-scrollbars', 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
 * Provides a plugin, which adds support for a scroll indicator to ScrollView instances
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
     5
 *
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
     6
 * @module scrollview
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
     7
 * @submodule scrollview-scrollbars
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
     8
 */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
     9
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    10
var getClassName = Y.ClassNameManager.getClassName,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    11
    _classNames,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    12
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    13
    Transition = Y.Transition,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    14
    NATIVE_TRANSITIONS = Transition.useNative,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    15
    SCROLLBAR = 'scrollbar',
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    16
    SCROLLVIEW = 'scrollview',
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    17
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    18
    VERTICAL_NODE = "verticalNode",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    19
    HORIZONTAL_NODE = "horizontalNode",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    20
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    21
    CHILD_CACHE = "childCache",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    22
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    23
    TOP = "top",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    24
    LEFT = "left",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    25
    WIDTH = "width",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    26
    HEIGHT = "height",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    27
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    28
    HORIZ_CACHE = "_sbh",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    29
    VERT_CACHE = "_sbv",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    30
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    31
    TRANSITION_PROPERTY = Y.ScrollView._TRANSITION.PROPERTY,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    32
    TRANSFORM = "transform",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    33
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    34
    TRANSLATE_X = "translateX(",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    35
    TRANSLATE_Y = "translateY(",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    36
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    37
    SCALE_X = "scaleX(",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    38
    SCALE_Y = "scaleY(",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    39
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    40
    SCROLL_X = "scrollX",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    41
    SCROLL_Y = "scrollY",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    42
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    43
    PX = "px",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    44
    CLOSE = ")",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    45
    PX_CLOSE = PX + CLOSE;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    46
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    47
/**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    48
 * ScrollView plugin that adds scroll indicators to ScrollView instances
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    49
 *
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    50
 * @class ScrollViewScrollbars
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    51
 * @namespace Plugin
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    52
 * @extends Plugin.Base
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    53
 * @constructor
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    54
 */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    55
function ScrollbarsPlugin() {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    56
    ScrollbarsPlugin.superclass.constructor.apply(this, arguments);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    57
}
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    58
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    59
ScrollbarsPlugin.CLASS_NAMES = {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    60
    showing: getClassName(SCROLLVIEW, SCROLLBAR, 'showing'),
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    61
    scrollbar: getClassName(SCROLLVIEW, SCROLLBAR),
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    62
    scrollbarV: getClassName(SCROLLVIEW, SCROLLBAR, 'vert'),
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    63
    scrollbarH: getClassName(SCROLLVIEW, SCROLLBAR, 'horiz'),
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    64
    scrollbarVB: getClassName(SCROLLVIEW, SCROLLBAR, 'vert', 'basic'),
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    65
    scrollbarHB: getClassName(SCROLLVIEW, SCROLLBAR, 'horiz', 'basic'),
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    66
    child: getClassName(SCROLLVIEW, 'child'),
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    67
    first: getClassName(SCROLLVIEW, 'first'),
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    68
    middle: getClassName(SCROLLVIEW, 'middle'),
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    69
    last: getClassName(SCROLLVIEW, 'last')
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    70
};
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    71
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    72
_classNames = ScrollbarsPlugin.CLASS_NAMES;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    73
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    74
/**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    75
 * The identity of the plugin
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    76
 *
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    77
 * @property NAME
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    78
 * @type String
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    79
 * @default 'pluginScrollViewScrollbars'
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    80
 * @static
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    81
 */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    82
ScrollbarsPlugin.NAME = 'pluginScrollViewScrollbars';
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    83
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    84
/**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    85
 * The namespace on which the plugin will reside.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    86
 *
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    87
 * @property NS
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    88
 * @type String
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    89
 * @default 'scrollbars'
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    90
 * @static
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    91
 */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    92
ScrollbarsPlugin.NS = 'scrollbars';
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    93
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    94
/**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    95
 * HTML template for the scrollbar
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    96
 *
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    97
 * @property SCROLLBAR_TEMPLATE
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    98
 * @type Object
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    99
 * @static
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   100
 */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   101
ScrollbarsPlugin.SCROLLBAR_TEMPLATE = [
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   102
    '<div>',
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   103
    '<span class="' + _classNames.child + ' ' + _classNames.first + '"></span>',
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   104
    '<span class="' + _classNames.child + ' ' + _classNames.middle + '"></span>',
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   105
    '<span class="' + _classNames.child + ' ' + _classNames.last + '"></span>',
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   106
    '</div>'
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   107
].join('');
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   108
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   109
/**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   110
 * The default attribute configuration for the plugin
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   111
 *
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   112
 * @property ATTRS
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   113
 * @type Object
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   114
 * @static
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   115
 */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   116
ScrollbarsPlugin.ATTRS = {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   117
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   118
    /**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   119
     * Vertical scrollbar node
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   120
     *
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   121
     * @attribute verticalNode
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   122
     * @type Y.Node
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   123
     */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   124
    verticalNode: {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   125
        setter: '_setNode',
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   126
        valueFn: '_defaultNode'
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   127
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   128
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   129
    /**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   130
     * Horizontal scrollbar node
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   131
     *
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   132
     * @attribute horizontalNode
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   133
     * @type Y.Node
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   134
     */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   135
    horizontalNode: {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   136
        setter: '_setNode',
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   137
        valueFn: '_defaultNode'
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   138
    }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   139
};
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   140
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   141
Y.namespace("Plugin").ScrollViewScrollbars = Y.extend(ScrollbarsPlugin, Y.Plugin.Base, {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   142
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   143
    /**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   144
     * Designated initializer
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   145
     *
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   146
     * @method initializer
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   147
     */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   148
    initializer: function() {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   149
        this._host = this.get("host");
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   150
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   151
        this.afterHostEvent('scrollEnd', this._hostScrollEnd);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   152
        this.afterHostMethod('scrollTo', this._update);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   153
        this.afterHostMethod('_uiDimensionsChange', this._hostDimensionsChange);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   154
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   155
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   156
    /**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   157
     * Set up the DOM nodes for the scrollbars. This method is invoked whenever the
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   158
     * host's _uiDimensionsChange fires, giving us the opportunity to remove un-needed
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   159
     * scrollbars, as well as add one if necessary.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   160
     *
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   161
     * @method _hostDimensionsChange
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   162
     * @protected
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   163
     */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   164
    _hostDimensionsChange: function() {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   165
        var host = this._host,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   166
            axis = host._cAxis,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   167
            scrollX = host.get(SCROLL_X),
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   168
            scrollY = host.get(SCROLL_Y);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   169
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   170
        this._dims = host._getScrollDims();
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   171
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   172
        if (axis && axis.y) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   173
            this._renderBar(this.get(VERTICAL_NODE), true, 'vert');
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
        if (axis && axis.x) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   177
            this._renderBar(this.get(HORIZONTAL_NODE), true, 'horiz');
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   178
        }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   179
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   180
        this._update(scrollX, scrollY);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   181
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   182
        Y.later(500, this, 'flash', true);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   183
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   184
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   185
    /**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   186
     * Handler for the scrollEnd event fired by the host. Default implementation flashes the scrollbar
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   187
     *
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   188
     * @method _hostScrollEnd
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   189
     * @param {EventFacade} e The event facade.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   190
     * @protected
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   191
     */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   192
    _hostScrollEnd : function() {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   193
        var host = this._host,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   194
            scrollX = host.get(SCROLL_X),
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   195
            scrollY = host.get(SCROLL_Y);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   196
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   197
        this.flash();
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   198
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   199
        this._update(scrollX, scrollY);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   200
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   201
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   202
    /**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   203
     * Adds or removes a scrollbar node from the document.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   204
     *
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   205
     * @method _renderBar
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   206
     * @private
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   207
     * @param {Node} bar The scrollbar node
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   208
     * @param {boolean} add true, to add the node, false to remove it
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   209
     */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   210
    _renderBar: function(bar, add) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   211
        var inDoc = bar.inDoc(),
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   212
            bb = this._host._bb,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   213
            className = bar.getData("isHoriz") ? _classNames.scrollbarHB : _classNames.scrollbarVB;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   214
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   215
        if (add && !inDoc) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   216
            bb.append(bar);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   217
            bar.toggleClass(className, this._basic);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   218
            this._setChildCache(bar);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   219
        } else if(!add && inDoc) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   220
            bar.remove();
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   221
            this._clearChildCache(bar);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   222
        }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   223
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   224
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   225
    /**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   226
     * Caches scrollbar child element information,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   227
     * to optimize _update implementation
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   228
     *
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   229
     * @method _setChildCache
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   230
     * @private
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   231
     * @param {Node} node
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   232
     */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   233
    _setChildCache : function(node) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   234
        var c = node.get("children"),
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   235
            fc = c.item(0),
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   236
            mc = c.item(1),
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   237
            lc = c.item(2),
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   238
            size = node.getData("isHoriz") ? "offsetWidth" : "offsetHeight";
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   239
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   240
        node.setStyle(TRANSITION_PROPERTY, TRANSFORM);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   241
        mc.setStyle(TRANSITION_PROPERTY, TRANSFORM);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   242
        lc.setStyle(TRANSITION_PROPERTY, TRANSFORM);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   243
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   244
        node.setData(CHILD_CACHE, {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   245
            fc : fc,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   246
            lc : lc,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   247
            mc : mc,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   248
            fcSize : fc && fc.get(size),
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   249
            lcSize : lc && lc.get(size)
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   250
        });
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   251
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   252
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   253
    /**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   254
     * Clears child cache
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   255
     *
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   256
     * @method _clearChildCache
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   257
     * @private
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   258
     * @param {Node} node
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   259
     */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   260
    _clearChildCache : function(node) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   261
        node.clearData(CHILD_CACHE);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   262
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   263
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   264
    /**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   265
     * Utility method, to move/resize either vertical or horizontal scrollbars
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   266
     *
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   267
     * @method _updateBar
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   268
     * @private
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   269
     *
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   270
     * @param {Node} scrollbar The scrollbar node.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   271
     * @param {Number} current The current scroll position.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   272
     * @param {Number} duration The transition duration.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   273
     * @param {boolean} horiz true if horizontal, false if vertical.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   274
     */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   275
    _updateBar : function(scrollbar, current, duration, horiz) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   276
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   277
        var host = this._host,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   278
            basic = this._basic,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   279
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   280
            scrollbarSize = 0,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   281
            scrollbarPos = 1,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   282
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   283
            childCache = scrollbar.getData(CHILD_CACHE),
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   284
            lastChild = childCache.lc,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   285
            middleChild = childCache.mc,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   286
            firstChildSize = childCache.fcSize,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   287
            lastChildSize = childCache.lcSize,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   288
            middleChildSize,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   289
            lastChildPosition,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   290
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   291
            transition,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   292
            translate,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   293
            scale,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   294
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   295
            dim,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   296
            dimOffset,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   297
            dimCache,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   298
            widgetSize,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   299
            contentSize;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   300
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   301
        if (horiz) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   302
            dim = WIDTH;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   303
            dimOffset = LEFT;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   304
            dimCache = HORIZ_CACHE;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   305
            widgetSize = this._dims.offsetWidth;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   306
            contentSize = this._dims.scrollWidth;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   307
            translate = TRANSLATE_X;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   308
            scale = SCALE_X;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   309
            current = (current !== undefined) ? current : host.get(SCROLL_X);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   310
        } else {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   311
            dim = HEIGHT;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   312
            dimOffset = TOP;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   313
            dimCache = VERT_CACHE;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   314
            widgetSize = this._dims.offsetHeight;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   315
            contentSize = this._dims.scrollHeight;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   316
            translate = TRANSLATE_Y;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   317
            scale = SCALE_Y;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   318
            current = (current !== undefined) ? current : host.get(SCROLL_Y);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   319
        }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   320
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   321
        scrollbarSize = Math.floor(widgetSize * (widgetSize/contentSize));
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   322
        scrollbarPos = Math.floor((current/(contentSize - widgetSize)) * (widgetSize - scrollbarSize));
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   323
        if (scrollbarSize > widgetSize) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   324
            scrollbarSize = 1;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   325
        }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   326
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   327
        if (scrollbarPos > (widgetSize - scrollbarSize)) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   328
            scrollbarSize = scrollbarSize - (scrollbarPos - (widgetSize - scrollbarSize));
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   329
        } else if (scrollbarPos < 0) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   330
            scrollbarSize = scrollbarPos + scrollbarSize;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   331
            scrollbarPos = 0;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   332
        } else if (isNaN(scrollbarPos)) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   333
            scrollbarPos = 0;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   334
        }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   335
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   336
        middleChildSize = (scrollbarSize - (firstChildSize + lastChildSize));
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   337
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   338
        if (middleChildSize < 0) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   339
            middleChildSize = 0;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   340
        }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   341
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   342
        if (middleChildSize === 0 && scrollbarPos !== 0) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   343
            scrollbarPos = widgetSize - (firstChildSize + lastChildSize) - 1;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   344
        }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   345
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   346
        if (duration !== 0) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   347
            // Position Scrollbar
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   348
            transition = {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   349
                duration : duration
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   350
            };
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   351
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   352
            if (NATIVE_TRANSITIONS) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   353
                transition.transform = translate + scrollbarPos + PX_CLOSE;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   354
            } else {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   355
                transition[dimOffset] = scrollbarPos + PX;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   356
            }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   357
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   358
            scrollbar.transition(transition);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   359
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   360
        } else {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   361
            if (NATIVE_TRANSITIONS) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   362
                scrollbar.setStyle(TRANSFORM, translate + scrollbarPos + PX_CLOSE);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   363
            } else {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   364
                scrollbar.setStyle(dimOffset, scrollbarPos + PX);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   365
            }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   366
        }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   367
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   368
        // Resize Scrollbar Middle Child
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   369
        if (this[dimCache] !== middleChildSize) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   370
            this[dimCache] = middleChildSize;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   371
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   372
            if (middleChildSize > 0) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   373
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   374
                if (duration !== 0) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   375
                    transition = {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   376
                        duration : duration
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   377
                    };
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   378
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   379
                    if(NATIVE_TRANSITIONS) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   380
                        transition.transform = scale + middleChildSize + CLOSE;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   381
                    } else {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   382
                        transition[dim] = middleChildSize + PX;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   383
                    }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   384
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   385
                    middleChild.transition(transition);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   386
                } else {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   387
                    if (NATIVE_TRANSITIONS) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   388
                        middleChild.setStyle(TRANSFORM, scale + middleChildSize + CLOSE);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   389
                    } else {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   390
                        middleChild.setStyle(dim, middleChildSize + PX);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   391
                    }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   392
                }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   393
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   394
                // Position Last Child
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   395
                if (!horiz || !basic) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   396
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   397
                    lastChildPosition = scrollbarSize - lastChildSize;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   398
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   399
                    if(duration !== 0) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   400
                        transition = {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   401
                            duration : duration
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   402
                        };
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   403
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   404
                        if (NATIVE_TRANSITIONS) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   405
                            transition.transform = translate + lastChildPosition + PX_CLOSE;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   406
                        } else {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   407
                            transition[dimOffset] = lastChildPosition;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   408
                        }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   409
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   410
                        lastChild.transition(transition);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   411
                    } else {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   412
                        if (NATIVE_TRANSITIONS) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   413
                            lastChild.setStyle(TRANSFORM, translate + lastChildPosition + PX_CLOSE);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   414
                        } else {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   415
                            lastChild.setStyle(dimOffset, lastChildPosition + PX);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   416
                        }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   417
                    }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   418
                }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   419
            }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   420
        }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   421
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   422
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   423
    /**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   424
     * AOP method, invoked after the host's _uiScrollTo method,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   425
     *  to position and resize the scroll bars
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   426
     *
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   427
     * @method _update
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   428
     * @param x {Number} The current scrollX value
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   429
     * @param y {Number} The current scrollY value
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   430
     * @param duration {Number} Number of ms of animation (optional) - used when snapping to bounds
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   431
     * @param easing {String} Optional easing equation to use during the animation, if duration is set
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   432
     * @protected
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   433
     */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   434
    _update: function(x, y, duration) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   435
        var vNode = this.get(VERTICAL_NODE),
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   436
            hNode = this.get(HORIZONTAL_NODE),
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   437
            host = this._host,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   438
            axis = host._cAxis;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   439
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   440
        duration = (duration || 0)/1000;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   441
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   442
        if (!this._showing) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   443
            this.show();
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   444
        }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   445
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   446
        if (axis && axis.y && vNode && y !== null) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   447
            this._updateBar(vNode, y, duration, false);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   448
        }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   449
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   450
        if (axis && axis.x && hNode && x !== null) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   451
            this._updateBar(hNode, x, duration, true);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   452
        }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   453
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   454
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   455
    /**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   456
     * Show the scroll bar indicators
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   457
     *
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   458
     * @method show
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   459
     * @param animated {Boolean} Whether or not to animate the showing
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   460
     */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   461
    show: function(animated) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   462
        this._show(true, animated);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   463
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   464
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   465
    /**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   466
     * Hide the scroll bar indicators
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   467
     *
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   468
     * @method hide
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   469
     * @param animated {Boolean} Whether or not to animate the hiding
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   470
     */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   471
    hide: function(animated) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   472
        this._show(false, animated);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   473
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   474
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   475
    /**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   476
     * Internal hide/show implementation utility method
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   477
     *
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   478
     * @method _show
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   479
     * @param {boolean} show Whether to show or hide the scrollbar
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   480
     * @param {bolean} animated Whether or not to animate while showing/hide
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   481
     * @protected
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   482
     */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   483
    _show : function(show, animated) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   484
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   485
        var verticalNode = this.get(VERTICAL_NODE),
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   486
            horizontalNode = this.get(HORIZONTAL_NODE),
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   487
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   488
            duration = (animated) ? 0.6 : 0,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   489
            opacity = (show) ? 1 : 0,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   490
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   491
            transition;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   492
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   493
        this._showing = show;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   494
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   495
        if (this._flashTimer) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   496
            this._flashTimer.cancel();
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   497
        }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   498
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   499
        transition = {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   500
            duration : duration,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   501
            opacity : opacity
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   502
        };
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   503
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   504
        if (verticalNode && verticalNode._node) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   505
            verticalNode.transition(transition);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   506
        }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   507
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   508
        if (horizontalNode && horizontalNode._node) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   509
            horizontalNode.transition(transition);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   510
        }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   511
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   512
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   513
    /**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   514
     * Momentarily flash the scroll bars to indicate current scroll position
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   515
     *
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   516
     * @method flash
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   517
     */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   518
    flash: function() {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   519
        this.show(true);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   520
        this._flashTimer = Y.later(800, this, 'hide', true);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   521
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   522
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   523
    /**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   524
     * Setter for the verticalNode and horizontalNode attributes
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   525
     *
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   526
     * @method _setNode
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   527
     * @param node {Node} The Y.Node instance for the scrollbar
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   528
     * @param name {String} The attribute name
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   529
     * @return {Node} The Y.Node instance for the scrollbar
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   530
     *
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   531
     * @protected
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   532
     */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   533
    _setNode: function(node, name) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   534
        var horiz = (name === HORIZONTAL_NODE);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   535
            node = Y.one(node);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   536
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   537
        if (node) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   538
            node.addClass(_classNames.scrollbar);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   539
            node.addClass( (horiz) ? _classNames.scrollbarH : _classNames.scrollbarV );
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   540
            node.setData("isHoriz", horiz);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   541
        }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   542
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   543
        return node;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   544
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   545
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   546
    /**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   547
     * Creates default node instances for scrollbars
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   548
     *
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   549
     * @method _defaultNode
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   550
     * @return {Node} The Y.Node instance for the scrollbar
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   551
     *
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   552
     * @protected
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   553
     */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   554
    _defaultNode: function() {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   555
        return Y.Node.create(ScrollbarsPlugin.SCROLLBAR_TEMPLATE);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   556
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   557
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   558
    _basic: Y.UA.ie && Y.UA.ie <= 8
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   559
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   560
});
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   561
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   562
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   563
}, '@VERSION@', {"requires": ["classnamemanager", "transition", "plugin"], "skinnable": true});