src/cm/media/js/lib/yui/yui3-3.15.0/build/dd-delegate/dd-delegate-debug.js
author gibus
Mon, 10 Mar 2014 15:19:48 +0100
changeset 602 e16a97fb364a
permissions -rw-r--r--
Use YUI 3.15
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
602
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
     1
YUI.add('dd-delegate', function (Y, NAME) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
     2
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
     3
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
     4
    /**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
     5
     * Provides the ability to drag multiple nodes under a container element using only one Y.DD.Drag instance as a delegate.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
     6
     * @module dd
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
     7
     * @submodule dd-delegate
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
     8
     */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
     9
    /**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    10
     * Provides the ability to drag multiple nodes under a container element using only one Y.DD.Drag instance as a delegate.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    11
     * @class Delegate
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    12
     * @extends Base
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    13
     * @constructor
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    14
     * @namespace DD
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    15
     */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    16
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    17
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    18
    var Delegate = function() {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    19
        Delegate.superclass.constructor.apply(this, arguments);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    20
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    21
    CONT = 'container',
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    22
    NODES = 'nodes',
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    23
    _tmpNode = Y.Node.create('<div>Temp Node</div>');
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    24
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    25
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    26
    Y.extend(Delegate, Y.Base, {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    27
        /**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    28
        * The default bubbleTarget for this object. Default: Y.DD.DDM
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    29
        * @private
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    30
        * @property _bubbleTargets
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    31
        */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    32
        _bubbleTargets: Y.DD.DDM,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    33
        /**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    34
        * A reference to the temporary dd instance used under the hood.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    35
        * @property dd
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    36
        */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    37
        dd: null,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    38
        /**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    39
        * The state of the Y.DD.DDM._noShim property to it can be reset.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    40
        * @property _shimState
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    41
        * @private
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    42
        */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    43
        _shimState: null,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    44
        /**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    45
        * Array of event handles to be destroyed
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    46
        * @private
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    47
        * @property _handles
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    48
        */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    49
        _handles: null,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    50
        /**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    51
        * Listens to the nodeChange event and sets the dragNode on the temp dd instance.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    52
        * @private
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    53
        * @method _onNodeChange
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    54
        * @param {Event} e The Event.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    55
        */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    56
        _onNodeChange: function(e) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    57
            this.set('dragNode', e.newVal);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    58
        },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    59
        /**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    60
        * Listens for the drag:end event and updates the temp dd instance.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    61
        * @private
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    62
        * @method _afterDragEnd
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    63
        * @param {Event} e The Event.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    64
        */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    65
        _afterDragEnd: function() {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    66
            Y.DD.DDM._noShim = this._shimState;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    67
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    68
            this.set('lastNode', this.dd.get('node'));
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    69
            this.get('lastNode').removeClass(Y.DD.DDM.CSS_PREFIX + '-dragging');
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    70
            this.dd._unprep();
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    71
            this.dd.set('node', _tmpNode);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    72
        },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    73
        /**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    74
        * The callback for the Y.DD.Delegate instance used
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    75
        * @private
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    76
        * @method _delMouseDown
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    77
        * @param {Event} e The MouseDown Event.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    78
        */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    79
        _delMouseDown: function(e) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    80
            var tar = e.currentTarget,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    81
                dd = this.dd,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    82
                dNode = tar,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    83
                config = this.get('dragConfig');
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    84
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    85
            if (tar.test(this.get(NODES)) && !tar.test(this.get('invalid'))) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    86
                this._shimState = Y.DD.DDM._noShim;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    87
                Y.DD.DDM._noShim = true;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    88
                this.set('currentNode', tar);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    89
                dd.set('node', tar);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    90
                if (config && config.dragNode) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    91
                    dNode = config.dragNode;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    92
                } else if (dd.proxy) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    93
                    dNode = Y.DD.DDM._proxy;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    94
                }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    95
                dd.set('dragNode', dNode);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    96
                dd._prep();
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    97
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    98
                dd.fire('drag:mouseDown', { ev: e });
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    99
            }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   100
        },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   101
        /**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   102
        * Sets the target shim state
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   103
        * @private
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   104
        * @method _onMouseEnter
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   105
        * @param {Event} e The MouseEnter Event
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   106
        */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   107
        _onMouseEnter: function() {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   108
            this._shimState = Y.DD.DDM._noShim;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   109
            Y.DD.DDM._noShim = true;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   110
        },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   111
        /**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   112
        * Resets the target shim state
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   113
        * @private
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   114
        * @method _onMouseLeave
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   115
        * @param {Event} e The MouseLeave Event
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   116
        */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   117
        _onMouseLeave: function() {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   118
            Y.DD.DDM._noShim = this._shimState;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   119
        },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   120
        initializer: function() {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   121
            this._handles = [];
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   122
            //Create a tmp DD instance under the hood.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   123
            //var conf = Y.clone(this.get('dragConfig') || {}),
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   124
            var conf = this.get('dragConfig') || {},
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   125
                cont = this.get(CONT);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   126
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   127
            conf.node = _tmpNode.cloneNode(true);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   128
            conf.bubbleTargets = this;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   129
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   130
            if (this.get('handles')) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   131
                conf.handles = this.get('handles');
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   132
            }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   133
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   134
            this.dd = new Y.DD.Drag(conf);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   135
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   136
            //On end drag, detach the listeners
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   137
            this.dd.after('drag:end', Y.bind(this._afterDragEnd, this));
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   138
            this.dd.on('dragNodeChange', Y.bind(this._onNodeChange, this));
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   139
            this.dd.after('drag:mouseup', function() {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   140
                this._unprep();
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   141
            });
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   142
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   143
            //Attach the delegate to the container
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   144
            this._handles.push(Y.delegate(Y.DD.Drag.START_EVENT, Y.bind(this._delMouseDown, this), cont, this.get(NODES)));
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   145
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   146
            this._handles.push(Y.on('mouseenter', Y.bind(this._onMouseEnter, this), cont));
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   147
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   148
            this._handles.push(Y.on('mouseleave', Y.bind(this._onMouseLeave, this), cont));
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   149
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   150
            Y.later(50, this, this.syncTargets);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   151
            Y.DD.DDM.regDelegate(this);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   152
        },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   153
        /**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   154
        * Applies the Y.Plugin.Drop to all nodes matching the cont + nodes selector query.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   155
        * @method syncTargets
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   156
        * @chainable
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   157
        */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   158
        syncTargets: function() {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   159
            if (!Y.Plugin.Drop || this.get('destroyed')) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   160
                return;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   161
            }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   162
            var items, groups, config;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   163
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   164
            if (this.get('target')) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   165
                items = Y.one(this.get(CONT)).all(this.get(NODES));
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   166
                groups = this.dd.get('groups');
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   167
                config = this.get('dragConfig');
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   168
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   169
                if (config && config.groups) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   170
                    groups = config.groups;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   171
                }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   172
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   173
                items.each(function(i) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   174
                    this.createDrop(i, groups);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   175
                }, this);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   176
            }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   177
            return this;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   178
        },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   179
        /**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   180
        * Apply the Drop plugin to this node
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   181
        * @method createDrop
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   182
        * @param {Node} node The Node to apply the plugin to
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   183
        * @param {Array} groups The default groups to assign this target to.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   184
        * @return Node
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   185
        */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   186
        createDrop: function(node, groups) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   187
            var config = {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   188
                useShim: false,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   189
                bubbleTargets: this
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   190
            };
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   191
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   192
            if (!node.drop) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   193
                node.plug(Y.Plugin.Drop, config);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   194
            }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   195
            node.drop.set('groups', groups);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   196
            return node;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   197
        },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   198
        destructor: function() {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   199
            if (this.dd) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   200
                this.dd.destroy();
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   201
            }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   202
            if (Y.Plugin.Drop) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   203
                var targets = Y.one(this.get(CONT)).all(this.get(NODES));
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   204
                targets.unplug(Y.Plugin.Drop);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   205
            }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   206
            Y.Array.each(this._handles, function(v) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   207
                v.detach();
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   208
            });
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   209
        }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   210
    }, {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   211
        NAME: 'delegate',
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   212
        ATTRS: {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   213
            /**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   214
            * A selector query to get the container to listen for mousedown events on. All "nodes" should be a child of this container.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   215
            * @attribute container
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   216
            * @type String
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   217
            */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   218
            container: {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   219
                value: 'body'
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   220
            },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   221
            /**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   222
            * A selector query to get the children of the "container" to make draggable elements from.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   223
            * @attribute nodes
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   224
            * @type String
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   225
            */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   226
            nodes: {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   227
                value: '.dd-draggable'
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   228
            },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   229
            /**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   230
            * A selector query to test a node to see if it's an invalid item.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   231
            * @attribute invalid
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   232
            * @type String
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   233
            */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   234
            invalid: {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   235
                value: 'input, select, button, a, textarea'
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   236
            },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   237
            /**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   238
            * Y.Node instance of the last item dragged.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   239
            * @attribute lastNode
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   240
            * @type Node
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   241
            */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   242
            lastNode: {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   243
                value: _tmpNode
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   244
            },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   245
            /**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   246
            * Y.Node instance of the dd node.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   247
            * @attribute currentNode
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   248
            * @type Node
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   249
            */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   250
            currentNode: {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   251
                value: _tmpNode
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   252
            },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   253
            /**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   254
            * Y.Node instance of the dd dragNode.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   255
            * @attribute dragNode
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   256
            * @type Node
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   257
            */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   258
            dragNode: {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   259
                value: _tmpNode
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   260
            },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   261
            /**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   262
            * Is the mouse currently over the container
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   263
            * @attribute over
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   264
            * @type Boolean
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   265
            */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   266
            over: {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   267
                value: false
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   268
            },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   269
            /**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   270
            * Should the items also be a drop target.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   271
            * @attribute target
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   272
            * @type Boolean
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   273
            */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   274
            target: {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   275
                value: false
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   276
            },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   277
            /**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   278
            * The default config to be used when creating the DD instance.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   279
            * @attribute dragConfig
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   280
            * @type Object
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   281
            */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   282
            dragConfig: {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   283
                value: null
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   284
            },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   285
            /**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   286
            * The handles config option added to the temp DD instance.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   287
            * @attribute handles
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   288
            * @type Array
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   289
            */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   290
            handles: {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   291
                value: null
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   292
            }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   293
        }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   294
    });
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   295
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   296
    Y.mix(Y.DD.DDM, {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   297
        /**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   298
        * Holder for all Y.DD.Delegate instances
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   299
        * @private
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   300
        * @for DDM
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   301
        * @property _delegates
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   302
        * @type Array
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   303
        */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   304
        _delegates: [],
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   305
        /**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   306
        * Register a Delegate with the DDM
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   307
        * @for DDM
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   308
        * @method regDelegate
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   309
        */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   310
        regDelegate: function(del) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   311
            this._delegates.push(del);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   312
        },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   313
        /**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   314
        * Get a delegate instance from a container node
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   315
        * @for DDM
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   316
        * @method getDelegate
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   317
        * @return Y.DD.Delegate
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   318
        */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   319
        getDelegate: function(node) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   320
            var del = null;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   321
            node = Y.one(node);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   322
            Y.Array.each(this._delegates, function(v) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   323
                if (node.test(v.get(CONT))) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   324
                    del = v;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   325
                }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   326
            }, this);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   327
            return del;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   328
        }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   329
    });
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   330
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   331
    Y.namespace('DD');
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   332
    Y.DD.Delegate = Delegate;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   333
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   334
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   335
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   336
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   337
}, '@VERSION@', {"requires": ["dd-drag", "dd-drop-plugin", "event-mouseenter"]});