src/cm/media/js/lib/yui/yui_3.10.3/build/widget-anim/widget-anim-debug.js
author gibus
Tue, 16 Jul 2013 14:29:46 +0200
changeset 525 89ef5ed3c48b
permissions -rw-r--r--
Upgrades to yui 3.10.3
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('widget-anim', 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
 * Provides a plugin which can be used to animate widget visibility changes.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    12
 *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    13
 * @module widget-anim
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    14
 */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    15
var BOUNDING_BOX = "boundingBox",
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    16
    HOST = "host",
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    17
    NODE = "node",
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    18
    OPACITY = "opacity",
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    19
    EMPTY_STR = "",
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    20
    VISIBLE = "visible",
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    21
    DESTROY = "destroy",
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    22
    HIDDEN = "hidden",
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    23
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    24
    RENDERED = "rendered",
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    25
    
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    26
    START = "start",
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    27
    END = "end",
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    28
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    29
    DURATION = "duration",
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    30
    ANIM_SHOW = "animShow",
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    31
    ANIM_HIDE = "animHide",
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    32
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    33
    _UI_SET_VISIBLE = "_uiSetVisible",
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    34
    
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    35
    ANIM_SHOW_CHANGE = "animShowChange",
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    36
    ANIM_HIDE_CHANGE = "animHideChange";
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    37
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    38
/**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    39
 * A plugin class which can be used to animate widget visibility changes.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    40
 *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    41
 * @class WidgetAnim
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    42
 * @extends Plugin.Base
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    43
 * @namespace Plugin
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    44
 */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    45
function WidgetAnim(config) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    46
    WidgetAnim.superclass.constructor.apply(this, arguments);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    47
}
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    48
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    49
/**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    50
 * The namespace for the plugin. This will be the property on the widget, which will 
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    51
 * reference the plugin instance, when it's plugged in.
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 NS
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    54
 * @static
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    55
 * @type String
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    56
 * @default "anim"
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    57
 */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    58
WidgetAnim.NS = "anim";
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    59
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    60
/**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    61
 * The NAME of the WidgetAnim class. Used to prefix events generated
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    62
 * by the plugin class.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    63
 *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    64
 * @property NAME
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    65
 * @static
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    66
 * @type String
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    67
 * @default "pluginWidgetAnim"
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    68
 */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    69
WidgetAnim.NAME = "pluginWidgetAnim";
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    70
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    71
/**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    72
 * Pre-Packaged Animation implementations, which can be used for animShow and animHide attribute 
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    73
 * values.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    74
 *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    75
 * @property ANIMATIONS
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    76
 * @static
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    77
 * @type Object
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    78
 * @default "pluginWidgetAnim"
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    79
 */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    80
WidgetAnim.ANIMATIONS = {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    81
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    82
    fadeIn : function() {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    83
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    84
        var widget = this.get(HOST),
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    85
            boundingBox = widget.get(BOUNDING_BOX),
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    86
            
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    87
            anim = new Y.Anim({
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    88
                node: boundingBox,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    89
                to: { opacity: 1 },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    90
                duration: this.get(DURATION)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    91
            });
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    92
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    93
        // Set initial opacity, to avoid initial flicker
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    94
        if (!widget.get(VISIBLE)) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    95
            boundingBox.setStyle(OPACITY, 0);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    96
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    97
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    98
        // Clean up, on destroy. Where supported, remove
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    99
        // opacity set using style. Else make 100% opaque
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   100
        anim.on(DESTROY, function() {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   101
            this.get(NODE).setStyle(OPACITY, (Y.UA.ie) ? 1 : EMPTY_STR);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   102
        });
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   103
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   104
        return anim;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   105
    },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   106
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   107
    fadeOut : function() {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   108
        return new Y.Anim({
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   109
            node: this.get(HOST).get(BOUNDING_BOX),
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   110
            to: { opacity: 0 },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   111
            duration: this.get(DURATION)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   112
        });
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   113
    }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   114
};
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   115
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   116
/**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   117
 * Static property used to define the default attribute 
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   118
 * configuration for the plugin.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   119
 *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   120
 * @property ATTRS
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   121
 * @type Object
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   122
 * @static
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   123
 */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   124
WidgetAnim.ATTRS = {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   125
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   126
    /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   127
     * Default duration in seconds. Used as the default duration for the default animation implementations
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   128
     *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   129
     * @attribute duration
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   130
     * @type Number
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   131
     * @default 0.2 (seconds 
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   132
     */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   133
    duration : {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   134
        value: 0.2
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   135
    },
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
     * Default animation instance used for showing the widget (opacity fade-in)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   139
     * 
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   140
     * @attribute animShow
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   141
     * @type Anim
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   142
     * @default WidgetAnim.ANIMATIONS.fadeIn
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   143
     */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   144
    animShow : {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   145
        valueFn: WidgetAnim.ANIMATIONS.fadeIn
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   146
    },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   147
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   148
    /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   149
     * Default animation instance used for hiding the widget (opacity fade-out)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   150
     *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   151
     * @attribute animHide
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   152
     * @type Anim
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   153
     * @default WidgetAnim.ANIMATIONS.fadeOut
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   154
     */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   155
    animHide : {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   156
        valueFn: WidgetAnim.ANIMATIONS.fadeOut
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
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   160
Y.extend(WidgetAnim, Y.Plugin.Base, {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   161
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   162
    /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   163
     * The initializer lifecycle implementation. Modifies the host widget's 
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   164
     * visibililty implementation to add animation.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   165
     *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   166
     * @method initializer
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   167
     * @param {Object} config The user configuration for the plugin  
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   168
     */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   169
    initializer : function(config) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   170
        this._bindAnimShow();
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   171
        this._bindAnimHide();
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   172
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   173
        this.after(ANIM_SHOW_CHANGE, this._bindAnimShow);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   174
        this.after(ANIM_HIDE_CHANGE, this._bindAnimHide);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   175
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   176
        // Override default _uiSetVisible method, with custom animated method
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   177
        this.beforeHostMethod(_UI_SET_VISIBLE, this._uiAnimSetVisible);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   178
    },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   179
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   180
    /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   181
     * The initializer destructor implementation. Responsible for destroying the configured
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   182
     * animation instances.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   183
     * 
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   184
     * @method destructor
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   185
     */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   186
    destructor : function() {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   187
        this.get(ANIM_SHOW).destroy();
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   188
        this.get(ANIM_HIDE).destroy();
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   189
    },
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
     * The injected method used to override the host widget's _uiSetVisible implementation with
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   193
     * an animated version of the same.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   194
     *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   195
     * <p>This method replaces the default _uiSetVisible handler
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   196
     * Widget provides, by injecting itself before _uiSetVisible,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   197
     * and preventing the default behavior. </p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   198
     *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   199
     * @method _uiAnimSetVisible
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   200
     * @protected
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   201
     * @param {boolean} val true, if making the widget visible. false, if hiding it.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   202
     */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   203
    _uiAnimSetVisible : function(val) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   204
        if (this.get(HOST).get(RENDERED)) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   205
            if (val) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   206
                this.get(ANIM_HIDE).stop();
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   207
                this.get(ANIM_SHOW).run();
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   208
            } else {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   209
                this.get(ANIM_SHOW).stop();
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   210
                this.get(ANIM_HIDE).run();
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   211
            }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   212
            return new Y.Do.Prevent();
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   213
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   214
    },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   215
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   216
    /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   217
     * The original Widget _uiSetVisible implementation. This currently needs to be replicated,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   218
     * so it can be invoked before or after the animation starts or stops, since the original
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   219
     * methods is not available to the AOP implementation.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   220
     *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   221
     * @method _uiSetVisible
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   222
     * @param {boolean} val true, if making the widget visible. false, if hiding it.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   223
     * @private
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   224
     */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   225
    _uiSetVisible : function(val) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   226
        var host = this.get(HOST),
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   227
            hiddenClass = host.getClassName(HIDDEN);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   228
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   229
        host.get(BOUNDING_BOX).toggleClass(hiddenClass, !val);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   230
    },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   231
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   232
    /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   233
     * Binds a listener to invoke the original visibility handling when the animShow animation is started
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   234
     *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   235
     * @method _bindAnimShow
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   236
     * @private
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   237
     */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   238
    _bindAnimShow : function() {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   239
        // Setup original visibility handling (for show) before starting to animate
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   240
        this.get(ANIM_SHOW).on(START, 
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   241
            Y.bind(function() {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   242
                this._uiSetVisible(true);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   243
            }, this));
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   244
    },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   245
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   246
    /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   247
     * Binds a listener to invoke the original visibility handling when the animHide animation is complete
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   248
     *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   249
     * @method _bindAnimHide
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   250
     * @private
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   251
     */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   252
    _bindAnimHide : function() {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   253
        // Setup original visibility handling (for hide) after completing animation
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   254
        this.get(ANIM_HIDE).after(END, 
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   255
            Y.bind(function() {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   256
                this._uiSetVisible(false);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   257
            }, this));
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
Y.namespace("Plugin").WidgetAnim = WidgetAnim;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   262
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   263
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   264
}, '3.10.3', {"requires": ["anim-base", "plugin", "widget"]});