src/cm/media/js/lib/yui/yui_3.10.3/build/event-custom-complex/event-custom-complex-debug.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('event-custom-complex', 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
/**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    12
 * Adds event facades, preventable default behavior, and bubbling.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    13
 * events.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    14
 * @module event-custom
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    15
 * @submodule event-custom-complex
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 FACADE,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    19
    FACADE_KEYS,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    20
    YObject = Y.Object,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    21
    key,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    22
    EMPTY = {},
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    23
    CEProto = Y.CustomEvent.prototype,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    24
    ETProto = Y.EventTarget.prototype,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    25
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    26
    mixFacadeProps = function(facade, payload) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    27
        var p;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    28
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    29
        for (p in payload) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    30
            if (!(FACADE_KEYS.hasOwnProperty(p))) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    31
                facade[p] = payload[p];
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    32
            }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    33
        }
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
/**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    37
 * Wraps and protects a custom event for use when emitFacade is set to true.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    38
 * Requires the event-custom-complex module
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    39
 * @class EventFacade
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    40
 * @param e {Event} the custom event
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    41
 * @param currentTarget {HTMLElement} the element the listener was attached to
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    42
 */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    43
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    44
Y.EventFacade = function(e, currentTarget) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    45
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    46
    if (!e) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    47
        e = EMPTY;
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
    this._event = e;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    51
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    52
    /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    53
     * The arguments passed to fire
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    54
     * @property details
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    55
     * @type Array
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.details = e.details;
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
     * The event type, this can be overridden by the fire() payload
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    61
     * @property type
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    62
     * @type string
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    63
     */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    64
    this.type = e.type;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    65
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    66
    /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    67
     * The real event type
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    68
     * @property _type
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    69
     * @type string
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    70
     * @private
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    71
     */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    72
    this._type = e.type;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    73
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    74
    //////////////////////////////////////////////////////
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
     * Node reference for the targeted eventtarget
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    78
     * @property target
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    79
     * @type Node
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    80
     */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    81
    this.target = e.target;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    82
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    83
    /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    84
     * Node reference for the element that the listener was attached to.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    85
     * @property currentTarget
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    86
     * @type Node
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    87
     */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    88
    this.currentTarget = currentTarget;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    89
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    90
    /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    91
     * Node reference to the relatedTarget
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    92
     * @property relatedTarget
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    93
     * @type Node
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.relatedTarget = e.relatedTarget;
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
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    99
Y.mix(Y.EventFacade.prototype, {
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
     * Stops the propagation to the next bubble target
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   103
     * @method stopPropagation
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   104
     */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   105
    stopPropagation: function() {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   106
        this._event.stopPropagation();
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   107
        this.stopped = 1;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   108
    },
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
     * Stops the propagation to the next bubble target and
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   112
     * prevents any additional listeners from being exectued
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   113
     * on the current target.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   114
     * @method stopImmediatePropagation
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   115
     */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   116
    stopImmediatePropagation: function() {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   117
        this._event.stopImmediatePropagation();
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   118
        this.stopped = 2;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   119
    },
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
     * Prevents the event's default behavior
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   123
     * @method preventDefault
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   124
     */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   125
    preventDefault: function() {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   126
        this._event.preventDefault();
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   127
        this.prevented = 1;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   128
    },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   129
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   130
    /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   131
     * Stops the event propagation and prevents the default
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   132
     * event behavior.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   133
     * @method halt
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   134
     * @param immediate {boolean} if true additional listeners
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   135
     * on the current target will not be executed
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   136
     */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   137
    halt: function(immediate) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   138
        this._event.halt(immediate);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   139
        this.prevented = 1;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   140
        this.stopped = (immediate) ? 2 : 1;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   141
    }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   142
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   143
});
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   144
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   145
CEProto.fireComplex = function(args) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   146
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   147
    var es,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   148
        ef,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   149
        q,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   150
        queue,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   151
        ce,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   152
        ret = true,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   153
        events,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   154
        subs,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   155
        ons,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   156
        afters,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   157
        afterQueue,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   158
        postponed,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   159
        prevented,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   160
        preventedFn,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   161
        defaultFn,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   162
        self = this,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   163
        host = self.host || self,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   164
        next,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   165
        oldbubble,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   166
        stack,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   167
        yuievt = host._yuievt,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   168
        hasPotentialSubscribers;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   169
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   170
    stack = self.stack;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   171
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   172
    if (stack) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   173
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   174
        // queue this event if the current item in the queue bubbles
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   175
        if (self.queuable && self.type !== stack.next.type) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   176
            self.log('queue ' + self.type);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   177
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   178
            if (!stack.queue) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   179
                stack.queue = [];
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   180
            }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   181
            stack.queue.push([self, args]);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   182
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   183
            return true;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   184
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   185
    }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   186
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   187
    hasPotentialSubscribers = self.hasSubs() || yuievt.hasTargets || self.broadcast;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   188
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   189
    self.target = self.target || host;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   190
    self.currentTarget = host;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   191
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   192
    self.details = args.concat();
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   193
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   194
    if (hasPotentialSubscribers) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   195
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   196
        es = stack || {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   197
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   198
           id: self.id, // id of the first event in the stack
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   199
           next: self,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   200
           silent: self.silent,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   201
           stopped: 0,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   202
           prevented: 0,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   203
           bubbling: null,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   204
           type: self.type,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   205
           // defaultFnQueue: new Y.Queue(),
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   206
           defaultTargetOnly: self.defaultTargetOnly
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   207
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   208
        };
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   209
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   210
        subs = self.getSubs();
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   211
        ons = subs[0];
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   212
        afters = subs[1];
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   213
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   214
        self.stopped = (self.type !== es.type) ? 0 : es.stopped;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   215
        self.prevented = (self.type !== es.type) ? 0 : es.prevented;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   216
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   217
        if (self.stoppedFn) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   218
            // PERF TODO: Can we replace with callback, like preventedFn. Look into history
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   219
            events = new Y.EventTarget({
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   220
                fireOnce: true,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   221
                context: host
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   222
            });
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   223
            self.events = events;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   224
            events.on('stopped', self.stoppedFn);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   225
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   226
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   227
        // self.log("Firing " + self  + ", " + "args: " + args);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   228
        self.log("Firing " + self.type);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   229
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   230
        self._facade = null; // kill facade to eliminate stale properties
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   231
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   232
        ef = self._getFacade(args);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   233
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   234
        if (ons) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   235
            self._procSubs(ons, args, ef);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   236
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   237
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   238
        // bubble if this is hosted in an event target and propagation has not been stopped
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   239
        if (self.bubbles && host.bubble && !self.stopped) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   240
            oldbubble = es.bubbling;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   241
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   242
            es.bubbling = self.type;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   243
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   244
            if (es.type !== self.type) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   245
                es.stopped = 0;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   246
                es.prevented = 0;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   247
            }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   248
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   249
            ret = host.bubble(self, args, null, es);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   250
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   251
            self.stopped = Math.max(self.stopped, es.stopped);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   252
            self.prevented = Math.max(self.prevented, es.prevented);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   253
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   254
            es.bubbling = oldbubble;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   255
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   256
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   257
        prevented = self.prevented;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   258
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   259
        if (prevented) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   260
            preventedFn = self.preventedFn;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   261
            if (preventedFn) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   262
                preventedFn.apply(host, args);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   263
            }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   264
        } else {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   265
            defaultFn = self.defaultFn;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   266
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   267
            if (defaultFn && ((!self.defaultTargetOnly && !es.defaultTargetOnly) || host === ef.target)) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   268
                defaultFn.apply(host, args);
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
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   272
        // broadcast listeners are fired as discreet events on the
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   273
        // YUI instance and potentially the YUI global.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   274
        if (self.broadcast) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   275
            self._broadcast(args);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   276
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   277
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   278
        if (afters && !self.prevented && self.stopped < 2) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   279
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   280
            // Queue the after
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   281
            afterQueue = es.afterQueue;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   282
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   283
            if (es.id === self.id || self.type !== yuievt.bubbling) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   284
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   285
                self._procSubs(afters, args, ef);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   286
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   287
                if (afterQueue) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   288
                    while ((next = afterQueue.last())) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   289
                        next();
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   290
                    }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   291
                }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   292
            } else {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   293
                postponed = afters;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   294
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   295
                if (es.execDefaultCnt) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   296
                    postponed = Y.merge(postponed);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   297
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   298
                    Y.each(postponed, function(s) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   299
                        s.postponed = true;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   300
                    });
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   301
                }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   302
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   303
                if (!afterQueue) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   304
                    es.afterQueue = new Y.Queue();
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   305
                }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   306
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   307
                es.afterQueue.add(function() {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   308
                    self._procSubs(postponed, args, ef);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   309
                });
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   310
            }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   311
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   312
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   313
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   314
        self.target = null;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   315
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   316
        if (es.id === self.id) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   317
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   318
            queue = es.queue;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   319
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   320
            if (queue) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   321
                while (queue.length) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   322
                    q = queue.pop();
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   323
                    ce = q[0];
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   324
                    // set up stack to allow the next item to be processed
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   325
                    es.next = ce;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   326
                    ce._fire(q[1]);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   327
                }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   328
            }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   329
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   330
            self.stack = null;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   331
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   332
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   333
        ret = !(self.stopped);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   334
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   335
        if (self.type !== yuievt.bubbling) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   336
            es.stopped = 0;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   337
            es.prevented = 0;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   338
            self.stopped = 0;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   339
            self.prevented = 0;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   340
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   341
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   342
    } else {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   343
        defaultFn = self.defaultFn;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   344
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   345
        if(defaultFn) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   346
            ef = self._getFacade(args);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   347
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   348
            if ((!self.defaultTargetOnly) || (host === ef.target)) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   349
                defaultFn.apply(host, args);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   350
            }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   351
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   352
    }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   353
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   354
    // Kill the cached facade to free up memory.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   355
    // Otherwise we have the facade from the last fire, sitting around forever.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   356
    self._facade = null;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   357
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   358
    return ret;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   359
};
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   360
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   361
CEProto._getFacade = function(fireArgs) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   362
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   363
    var userArgs = this.details,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   364
        firstArg = userArgs && userArgs[0],
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   365
        firstArgIsObj = (firstArg && (typeof firstArg === "object")),
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   366
        ef = this._facade;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   367
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   368
    if (!ef) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   369
        ef = new Y.EventFacade(this, this.currentTarget);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   370
    }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   371
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   372
    if (firstArgIsObj) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   373
        // protect the event facade properties
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   374
        mixFacadeProps(ef, firstArg);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   375
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   376
        // Allow the event type to be faked http://yuilibrary.com/projects/yui3/ticket/2528376
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   377
        if (firstArg.type) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   378
            ef.type = firstArg.type;
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
        if (fireArgs) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   382
            fireArgs[0] = ef;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   383
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   384
    } else {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   385
        if (fireArgs) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   386
            fireArgs.unshift(ef);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   387
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   388
    }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   389
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   390
    // update the details field with the arguments
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   391
    ef.details = this.details;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   392
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   393
    // use the original target when the event bubbled to this target
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   394
    ef.target = this.originalTarget || this.target;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   395
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   396
    ef.currentTarget = this.currentTarget;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   397
    ef.stopped = 0;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   398
    ef.prevented = 0;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   399
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   400
    this._facade = ef;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   401
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   402
    return this._facade;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   403
};
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   404
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   405
/**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   406
 * Stop propagation to bubble targets
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   407
 * @for CustomEvent
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   408
 * @method stopPropagation
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   409
 */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   410
CEProto.stopPropagation = function() {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   411
    this.stopped = 1;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   412
    if (this.stack) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   413
        this.stack.stopped = 1;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   414
    }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   415
    if (this.events) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   416
        this.events.fire('stopped', this);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   417
    }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   418
};
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   419
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   420
/**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   421
 * Stops propagation to bubble targets, and prevents any remaining
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   422
 * subscribers on the current target from executing.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   423
 * @method stopImmediatePropagation
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   424
 */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   425
CEProto.stopImmediatePropagation = function() {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   426
    this.stopped = 2;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   427
    if (this.stack) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   428
        this.stack.stopped = 2;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   429
    }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   430
    if (this.events) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   431
        this.events.fire('stopped', this);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   432
    }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   433
};
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   434
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   435
/**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   436
 * Prevents the execution of this event's defaultFn
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   437
 * @method preventDefault
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   438
 */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   439
CEProto.preventDefault = function() {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   440
    if (this.preventable) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   441
        this.prevented = 1;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   442
        if (this.stack) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   443
            this.stack.prevented = 1;
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
/**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   449
 * Stops the event propagation and prevents the default
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   450
 * event behavior.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   451
 * @method halt
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   452
 * @param immediate {boolean} if true additional listeners
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   453
 * on the current target will not be executed
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   454
 */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   455
CEProto.halt = function(immediate) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   456
    if (immediate) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   457
        this.stopImmediatePropagation();
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   458
    } else {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   459
        this.stopPropagation();
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   460
    }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   461
    this.preventDefault();
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   462
};
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   463
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   464
/**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   465
 * Registers another EventTarget as a bubble target.  Bubble order
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   466
 * is determined by the order registered.  Multiple targets can
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   467
 * be specified.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   468
 *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   469
 * Events can only bubble if emitFacade is true.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   470
 *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   471
 * Included in the event-custom-complex submodule.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   472
 *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   473
 * @method addTarget
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   474
 * @param o {EventTarget} the target to add
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   475
 * @for EventTarget
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   476
 */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   477
ETProto.addTarget = function(o) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   478
    var etState = this._yuievt;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   479
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   480
    if (!etState.targets) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   481
        etState.targets = {};
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   482
    }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   483
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   484
    etState.targets[Y.stamp(o)] = o;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   485
    etState.hasTargets = true;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   486
};
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   487
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   488
/**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   489
 * Returns an array of bubble targets for this object.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   490
 * @method getTargets
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   491
 * @return EventTarget[]
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   492
 */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   493
ETProto.getTargets = function() {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   494
    var targets = this._yuievt.targets;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   495
    return targets ? YObject.values(targets) : [];
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   496
};
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   497
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   498
/**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   499
 * Removes a bubble target
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   500
 * @method removeTarget
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   501
 * @param o {EventTarget} the target to remove
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   502
 * @for EventTarget
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   503
 */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   504
ETProto.removeTarget = function(o) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   505
    var targets = this._yuievt.targets;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   506
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   507
    if (targets) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   508
        delete targets[Y.stamp(o, true)];
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   509
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   510
        if (YObject.size(targets) === 0) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   511
            this._yuievt.hasTargets = false;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   512
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   513
    }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   514
};
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   515
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   516
/**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   517
 * Propagate an event.  Requires the event-custom-complex module.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   518
 * @method bubble
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   519
 * @param evt {CustomEvent} the custom event to propagate
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   520
 * @return {boolean} the aggregated return value from Event.Custom.fire
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   521
 * @for EventTarget
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   522
 */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   523
ETProto.bubble = function(evt, args, target, es) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   524
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   525
    var targs = this._yuievt.targets,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   526
        ret = true,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   527
        t,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   528
        ce,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   529
        i,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   530
        bc,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   531
        ce2,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   532
        type = evt && evt.type,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   533
        originalTarget = target || (evt && evt.target) || this,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   534
        oldbubble;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   535
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   536
    if (!evt || ((!evt.stopped) && targs)) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   537
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   538
        for (i in targs) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   539
            if (targs.hasOwnProperty(i)) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   540
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   541
                t = targs[i];
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   542
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   543
                ce = t._yuievt.events[type];
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   544
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   545
                if (t._hasSiblings) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   546
                    ce2 = t.getSibling(type, ce);
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
                if (ce2 && !ce) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   550
                    ce = t.publish(type);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   551
                }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   552
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   553
                oldbubble = t._yuievt.bubbling;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   554
                t._yuievt.bubbling = type;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   555
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   556
                // if this event was not published on the bubble target,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   557
                // continue propagating the event.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   558
                if (!ce) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   559
                    if (t._yuievt.hasTargets) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   560
                        t.bubble(evt, args, originalTarget, es);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   561
                    }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   562
                } else {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   563
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   564
                    if (ce2) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   565
                        ce.sibling = ce2;
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
                    // set the original target to that the target payload on the facade is correct.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   569
                    ce.target = originalTarget;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   570
                    ce.originalTarget = originalTarget;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   571
                    ce.currentTarget = t;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   572
                    bc = ce.broadcast;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   573
                    ce.broadcast = false;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   574
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   575
                    // default publish may not have emitFacade true -- that
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   576
                    // shouldn't be what the implementer meant to do
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   577
                    ce.emitFacade = true;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   578
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   579
                    ce.stack = es;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   580
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   581
                    // TODO: See what's getting in the way of changing this to use
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   582
                    // the more performant ce._fire(args || evt.details || []).
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   583
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   584
                    // Something in Widget Parent/Child tests is not happy if we
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   585
                    // change it - maybe evt.details related?
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   586
                    ret = ret && ce.fire.apply(ce, args || evt.details || []);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   587
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   588
                    ce.broadcast = bc;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   589
                    ce.originalTarget = null;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   590
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   591
                    // stopPropagation() was called
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   592
                    if (ce.stopped) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   593
                        break;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   594
                    }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   595
                }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   596
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   597
                t._yuievt.bubbling = oldbubble;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   598
            }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   599
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   600
    }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   601
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   602
    return ret;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   603
};
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   604
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   605
FACADE = new Y.EventFacade();
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   606
FACADE_KEYS = {};
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   607
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   608
// Flatten whitelist
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   609
for (key in FACADE) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   610
    FACADE_KEYS[key] = true;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   611
}
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   612
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   613
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   614
}, '3.10.3', {"requires": ["event-custom-base"]});