src/cm/media/js/lib/yui/yui_3.10.3/build/dd-ddm-drop/dd-ddm-drop-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('dd-ddm-drop', 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
     * Extends the dd-ddm Class to add support for the placement of Drop Target
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    13
     * shims inside the viewport shim. It also handles all Drop Target related events and interactions.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    14
     * @module dd
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    15
     * @submodule dd-ddm-drop
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    16
     * @for DDM
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    17
     * @namespace DD
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    18
     */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    19
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    20
    //TODO CSS class name for the bestMatch..
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    21
    Y.mix(Y.DD.DDM, {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    22
        /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    23
        * This flag turns off the use of the mouseover/mouseout shim. It should not be used unless you know what you are doing.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    24
        * @private
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    25
        * @property _noShim
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    26
        * @type {Boolean}
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    27
        */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    28
        _noShim: false,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    29
        /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    30
        * Placeholder for all active shims on the page
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    31
        * @private
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    32
        * @property _activeShims
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    33
        * @type {Array}
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    34
        */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    35
        _activeShims: [],
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    36
        /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    37
        * This method checks the _activeShims Object to see if there is a shim active.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    38
        * @private
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    39
        * @method _hasActiveShim
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    40
        * @return {Boolean}
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    41
        */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    42
        _hasActiveShim: function() {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    43
            if (this._noShim) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    44
                return true;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    45
            }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    46
            return this._activeShims.length;
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
        * Adds a Drop Target to the list of active shims
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    50
        * @private
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    51
        * @method _addActiveShim
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    52
        * @param {Object} d The Drop instance to add to the list.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    53
        */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    54
        _addActiveShim: function(d) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    55
            this._activeShims.push(d);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    56
        },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    57
        /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    58
        * Removes a Drop Target to the list of active shims
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    59
        * @private
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    60
        * @method _removeActiveShim
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    61
        * @param {Object} d The Drop instance to remove from the list.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    62
        */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    63
        _removeActiveShim: function(d) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    64
            var s = [];
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    65
            Y.Array.each(this._activeShims, function(v) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    66
                if (v._yuid !== d._yuid) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    67
                    s.push(v);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    68
                }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    69
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    70
            });
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    71
            this._activeShims = s;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    72
        },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    73
        /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    74
        * This method will sync the position of the shims on the Drop Targets that are currently active.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    75
        * @method syncActiveShims
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    76
        * @param {Boolean} force Resize/sync all Targets.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    77
        */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    78
        syncActiveShims: function(force) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    79
            Y.later(0, this, function(force) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    80
                var drops = ((force) ? this.targets : this._lookup());
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    81
                Y.Array.each(drops, function(v) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    82
                    v.sizeShim.call(v);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    83
                }, this);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    84
            }, force);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    85
        },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    86
        /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    87
        * The mode that the drag operations will run in 0 for Point, 1 for Intersect, 2 for Strict
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    88
        * @private
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    89
        * @property mode
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    90
        * @type Number
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    91
        */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    92
        mode: 0,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    93
        /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    94
        * In point mode, a Drop is targeted by the cursor being over the Target
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    95
        * @private
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    96
        * @property POINT
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    97
        * @type Number
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    98
        */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    99
        POINT: 0,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   100
        /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   101
        * In intersect mode, a Drop is targeted by "part" of the drag node being over the Target
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   102
        * @private
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   103
        * @property INTERSECT
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   104
        * @type Number
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   105
        */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   106
        INTERSECT: 1,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   107
        /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   108
        * In strict mode, a Drop is targeted by the "entire" drag node being over the Target
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   109
        * @private
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   110
        * @property STRICT
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   111
        * @type Number
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   112
        */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   113
        STRICT: 2,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   114
        /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   115
        * Should we only check targets that are in the viewport on drags (for performance), default: true
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   116
        * @property useHash
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   117
        * @type {Boolean}
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   118
        */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   119
        useHash: true,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   120
        /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   121
        * A reference to the active Drop Target
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   122
        * @property activeDrop
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   123
        * @type {Object}
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   124
        */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   125
        activeDrop: null,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   126
        /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   127
        * An array of the valid Drop Targets for this interaction.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   128
        * @property validDrops
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   129
        * @type {Array}
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   130
        */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   131
        //TODO Change array/object literals to be in sync..
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   132
        validDrops: [],
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   133
        /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   134
        * An object literal of Other Drop Targets that we encountered during this interaction (in the case of overlapping Drop Targets)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   135
        * @property otherDrops
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   136
        * @type {Object}
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   137
        */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   138
        otherDrops: {},
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   139
        /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   140
        * All of the Targets
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   141
        * @property targets
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   142
        * @type {Array}
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   143
        */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   144
        targets: [],
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   145
        /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   146
        * Add a Drop Target to the list of Valid Targets. This list get's regenerated on each new drag operation.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   147
        * @private
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   148
        * @method _addValid
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   149
        * @param {Object} drop
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   150
        * @return {Self}
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   151
        * @chainable
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   152
        */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   153
        _addValid: function(drop) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   154
            this.validDrops.push(drop);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   155
            return this;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   156
        },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   157
        /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   158
        * Removes a Drop Target from the list of Valid Targets. This list get's regenerated on each new drag operation.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   159
        * @private
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   160
        * @method _removeValid
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   161
        * @param {Object} drop
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   162
        * @return {Self}
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   163
        * @chainable
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   164
        */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   165
        _removeValid: function(drop) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   166
            var drops = [];
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   167
            Y.Array.each(this.validDrops, function(v) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   168
                if (v !== drop) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   169
                    drops.push(v);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   170
                }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   171
            });
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.validDrops = drops;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   174
            return this;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   175
        },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   176
        /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   177
        * Check to see if the Drag element is over the target, method varies on current mode
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   178
        * @method isOverTarget
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   179
        * @param {Object} drop The drop to check against
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   180
        * @return {Boolean}
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   181
        */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   182
        isOverTarget: function(drop) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   183
            if (this.activeDrag && drop) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   184
                var xy = this.activeDrag.mouseXY, r, dMode = this.activeDrag.get('dragMode'),
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   185
                    aRegion, node = drop.shim;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   186
                if (xy && this.activeDrag) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   187
                    aRegion = this.activeDrag.region;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   188
                    if (dMode === this.STRICT) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   189
                        return this.activeDrag.get('dragNode').inRegion(drop.region, true, aRegion);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   190
                    }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   191
                    if (drop && drop.shim) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   192
                        if ((dMode === this.INTERSECT) && this._noShim) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   193
                            r = aRegion || this.activeDrag.get('node');
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   194
                            return drop.get('node').intersect(r, drop.region).inRegion;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   195
                        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   196
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   197
                        if (this._noShim) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   198
                            node = drop.get('node');
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   199
                        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   200
                        return node.intersect({
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   201
                            top: xy[1],
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   202
                            bottom: xy[1],
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   203
                            left: xy[0],
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   204
                            right: xy[0]
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   205
                        }, drop.region).inRegion;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   206
                    }
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
            return false;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   210
        },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   211
        /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   212
        * Clears the cache data used for this interaction.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   213
        * @method clearCache
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   214
        */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   215
        clearCache: function() {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   216
            this.validDrops = [];
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   217
            this.otherDrops = {};
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   218
            this._activeShims = [];
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   219
        },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   220
        /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   221
        * Clear the cache and activate the shims of all the targets
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   222
        * @private
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   223
        * @method _activateTargets
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   224
        */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   225
        _activateTargets: function() {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   226
            this._noShim = true;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   227
            this.clearCache();
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   228
            Y.Array.each(this.targets, function(v) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   229
                v._activateShim([]);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   230
                if (v.get('noShim') === true) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   231
                    this._noShim = false;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   232
                }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   233
            }, this);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   234
            this._handleTargetOver();
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   235
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
        * This method will gather the area for all potential targets and see which has the hightest covered area and return it.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   239
        * @method getBestMatch
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   240
        * @param {Array} drops An Array of drops to scan for the best match.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   241
        * @param {Boolean} all If present, it returns an Array. First item is best match, second is an Array of the other items in the original Array.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   242
        * @return {Object or Array}
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   243
        */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   244
        getBestMatch: function(drops, all) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   245
            var biggest = null, area = 0, out;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   246
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   247
            Y.Array.each(drops, function(v) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   248
                var inter = this.activeDrag.get('dragNode').intersect(v.get('node'));
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   249
                v.region.area = inter.area;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   250
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   251
                if (inter.inRegion) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   252
                    if (inter.area > area) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   253
                        area = inter.area;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   254
                        biggest = v;
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
            }, this);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   258
            if (all) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   259
                out = [];
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   260
                //TODO Sort the others in numeric order by area covered..
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   261
                Y.Array.each(drops, function(v) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   262
                    if (v !== biggest) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   263
                        out.push(v);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   264
                    }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   265
                }, this);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   266
                return [biggest, out];
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   267
            }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   268
            return biggest;
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
        * This method fires the drop:hit, drag:drophit, drag:dropmiss methods and deactivates the shims..
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   272
        * @private
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   273
        * @method _deactivateTargets
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   274
        */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   275
        _deactivateTargets: function() {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   276
            var other = [], tmp,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   277
                activeDrag = this.activeDrag,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   278
                activeDrop = this.activeDrop;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   279
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   280
            //TODO why is this check so hard??
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   281
            if (activeDrag && activeDrop && this.otherDrops[activeDrop]) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   282
                if (!activeDrag.get('dragMode')) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   283
                    //TODO otherDrops -- private..
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   284
                    other = this.otherDrops;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   285
                    delete other[activeDrop];
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   286
                } else {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   287
                    tmp = this.getBestMatch(this.otherDrops, true);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   288
                    activeDrop = tmp[0];
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   289
                    other = tmp[1];
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   290
                }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   291
                activeDrag.get('node').removeClass(this.CSS_PREFIX + '-drag-over');
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   292
                if (activeDrop) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   293
                    activeDrop.fire('drop:hit', { drag: activeDrag, drop: activeDrop, others: other });
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   294
                    activeDrag.fire('drag:drophit', { drag: activeDrag,  drop: activeDrop, others: other });
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   295
                }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   296
            } else if (activeDrag && activeDrag.get('dragging')) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   297
                activeDrag.get('node').removeClass(this.CSS_PREFIX + '-drag-over');
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   298
                activeDrag.fire('drag:dropmiss', { pageX: activeDrag.lastXY[0], pageY: activeDrag.lastXY[1] });
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   299
            }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   300
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   301
            this.activeDrop = null;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   302
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   303
            Y.Array.each(this.targets, function(v) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   304
                v._deactivateShim([]);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   305
            }, this);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   306
        },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   307
        /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   308
        * This method is called when the move method is called on the Drag Object.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   309
        * @private
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   310
        * @method _dropMove
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   311
        */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   312
        _dropMove: function() {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   313
            if (this._hasActiveShim()) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   314
                this._handleTargetOver();
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   315
            } else {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   316
                Y.Array.each(this.otherDrops, function(v) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   317
                    v._handleOut.apply(v, []);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   318
                });
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   319
            }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   320
        },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   321
        /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   322
        * Filters the list of Drops down to those in the viewport.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   323
        * @private
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   324
        * @method _lookup
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   325
        * @return {Array} The valid Drop Targets that are in the viewport.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   326
        */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   327
        _lookup: function() {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   328
            if (!this.useHash || this._noShim) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   329
                return this.validDrops;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   330
            }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   331
            var drops = [];
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   332
            //Only scan drop shims that are in the Viewport
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   333
            Y.Array.each(this.validDrops, function(v) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   334
                if (v.shim && v.shim.inViewportRegion(false, v.region)) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   335
                    drops.push(v);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   336
                }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   337
            });
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   338
            return drops;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   339
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
        * This method execs _handleTargetOver on all valid Drop Targets
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   343
        * @private
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   344
        * @method _handleTargetOver
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   345
        */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   346
        _handleTargetOver: function() {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   347
            var drops = this._lookup();
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   348
            Y.Array.each(drops, function(v) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   349
                v._handleTargetOver.call(v);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   350
            }, this);
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
        * Add the passed in Target to the targets collection
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   354
        * @private
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   355
        * @method _regTarget
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   356
        * @param {Object} t The Target to add to the targets collection
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   357
        */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   358
        _regTarget: function(t) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   359
            this.targets.push(t);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   360
        },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   361
        /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   362
        * Remove the passed in Target from the targets collection
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   363
        * @private
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   364
        * @method _unregTarget
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   365
        * @param {Object} drop The Target to remove from the targets collection
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   366
        */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   367
        _unregTarget: function(drop) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   368
            var targets = [], vdrops;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   369
            Y.Array.each(this.targets, function(v) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   370
                if (v !== drop) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   371
                    targets.push(v);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   372
                }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   373
            }, this);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   374
            this.targets = targets;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   375
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   376
            vdrops = [];
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   377
            Y.Array.each(this.validDrops, function(v) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   378
                if (v !== drop) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   379
                    vdrops.push(v);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   380
                }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   381
            });
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   382
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   383
            this.validDrops = vdrops;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   384
        },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   385
        /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   386
        * Get a valid Drop instance back from a Node or a selector string, false otherwise
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   387
        * @method getDrop
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   388
        * @param {String/Object} node The Node instance or Selector string to check for a valid Drop Object
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   389
        * @return {Object}
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   390
        */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   391
        getDrop: function(node) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   392
            var drop = false,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   393
                n = Y.one(node);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   394
            if (n instanceof Y.Node) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   395
                Y.Array.each(this.targets, function(v) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   396
                    if (n.compareTo(v.get('node'))) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   397
                        drop = v;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   398
                    }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   399
                });
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   400
            }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   401
            return drop;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   402
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   403
    }, true);
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
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   407
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   408
}, '3.10.3', {"requires": ["dd-ddm"]});