src/cm/media/js/lib/yui/yui_3.10.3/build/dd-ddm/dd-ddm.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', 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-base Class to add support for the viewport shim to allow a draggable
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    13
     * anode to drag to be dragged over an iframe or any other node that traps mousemove events.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    14
     * It is also required to have Drop Targets enabled, as the viewport shim will contain the shims for the Drop Targets.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    15
     * @module dd
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    16
     * @submodule dd-ddm
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    17
     * @for DDM
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    18
     * @namespace DD
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    19
     */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    20
    Y.mix(Y.DD.DDM, {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    21
        /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    22
        * The shim placed over the screen to track the mousemove event.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    23
        * @private
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    24
        * @property _pg
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    25
        * @type {Node}
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    26
        */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    27
        _pg: null,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    28
        /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    29
        * Set this to true to set the shims opacity to .5 for debugging it, default: false.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    30
        * @private
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    31
        * @property _debugShim
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    32
        * @type {Boolean}
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    33
        */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    34
        _debugShim: false,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    35
        _activateTargets: function() { },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    36
        _deactivateTargets: function() {},
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    37
        _startDrag: function() {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    38
            if (this.activeDrag && this.activeDrag.get('useShim')) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    39
                this._shimming = true;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    40
                this._pg_activate();
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    41
                this._activateTargets();
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
        _endDrag: function() {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    45
            this._pg_deactivate();
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    46
            this._deactivateTargets();
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
        * Deactivates the shim
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 _pg_deactivate
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    52
        */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    53
        _pg_deactivate: function() {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    54
            this._pg.setStyle('display', 'none');
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    55
        },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    56
        /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    57
        * Activates the shim
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    58
        * @private
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    59
        * @method _pg_activate
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    60
        */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    61
        _pg_activate: function() {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    62
            if (!this._pg) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    63
                this._createPG();
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    64
            }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    65
            var ah = this.activeDrag.get('activeHandle'), cur = 'auto';
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    66
            if (ah) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    67
                cur = ah.getStyle('cursor');
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    68
            }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    69
            if (cur === 'auto') {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    70
                cur = this.get('dragCursor');
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    71
            }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    72
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    73
            this._pg_size();
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    74
            this._pg.setStyles({
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    75
                top: 0,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    76
                left: 0,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    77
                display: 'block',
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    78
                opacity: ((this._debugShim) ? '.5' : '0'),
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    79
                cursor: cur
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    80
            });
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    81
        },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    82
        /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    83
        * Sizes the shim on: activatation, window:scroll, window:resize
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    84
        * @private
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    85
        * @method _pg_size
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    86
        */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    87
        _pg_size: function() {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    88
            if (this.activeDrag) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    89
                var b = Y.one('body'),
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    90
                h = b.get('docHeight'),
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    91
                w = b.get('docWidth');
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    92
                this._pg.setStyles({
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    93
                    height: h + 'px',
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    94
                    width: w + 'px'
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    95
                });
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
        * Creates the shim and adds it's listeners to it.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   100
        * @private
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   101
        * @method _createPG
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   102
        */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   103
        _createPG: function() {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   104
            var pg = Y.Node.create('<div></div>'),
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   105
            bd = Y.one('body'), win;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   106
            pg.setStyles({
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   107
                top: '0',
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   108
                left: '0',
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   109
                position: 'absolute',
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   110
                zIndex: '9999',
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   111
                overflow: 'hidden',
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   112
                backgroundColor: 'red',
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   113
                display: 'none',
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   114
                height: '5px',
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   115
                width: '5px'
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   116
            });
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   117
            pg.set('id', Y.stamp(pg));
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   118
            pg.addClass(Y.DD.DDM.CSS_PREFIX + '-shim');
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   119
            bd.prepend(pg);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   120
            this._pg = pg;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   121
            this._pg.on('mousemove', Y.throttle(Y.bind(this._move, this), this.get('throttleTime')));
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   122
            this._pg.on('mouseup', Y.bind(this._end, this));
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   123
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   124
            win = Y.one('win');
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   125
            Y.on('window:resize', Y.bind(this._pg_size, this));
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   126
            win.on('scroll', Y.bind(this._pg_size, this));
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   127
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   128
    }, true);
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
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   132
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   133
}, '3.10.3', {"requires": ["dd-ddm-base", "event-resize"]});