diff options
-rw-r--r-- | ui/jquery.ui.droppable.js | 232 |
1 files changed, 116 insertions, 116 deletions
diff --git a/ui/jquery.ui.droppable.js b/ui/jquery.ui.droppable.js index 8857f09c0..a51c3a335 100644 --- a/ui/jquery.ui.droppable.js +++ b/ui/jquery.ui.droppable.js @@ -20,7 +20,7 @@ function isOverAxis( x, reference, size ) { return ( x >= reference ) && ( x < ( reference + size ) ); } -$.widget("ui.droppable", { +$.widget( "ui.droppable", { version: "@VERSION", widgetEventPrefix: "drop", options: { @@ -48,8 +48,8 @@ $.widget("ui.droppable", { this.isover = false; this.isout = true; - this.accept = $.isFunction(accept) ? accept : function(d) { - return d.is(accept); + this.accept = $.isFunction( accept ) ? accept : function( d ) { + return d.is( accept ); }; this.proportions = function( /* valueToWrite */ ) { @@ -68,124 +68,124 @@ $.widget("ui.droppable", { }; // Add the reference and positions to the manager - $.ui.ddmanager.droppables[o.scope] = $.ui.ddmanager.droppables[o.scope] || []; - $.ui.ddmanager.droppables[o.scope].push(this); + $.ui.ddmanager.droppables[ o.scope ] = $.ui.ddmanager.droppables[ o.scope ] || []; + $.ui.ddmanager.droppables[ o.scope ].push( this ); - (o.addClasses && this.element.addClass("ui-droppable")); + o.addClasses && this.element.addClass( "ui-droppable" ); }, _destroy: function() { var i = 0, - drop = $.ui.ddmanager.droppables[this.options.scope]; + drop = $.ui.ddmanager.droppables[ this.options.scope ]; for ( ; i < drop.length; i++ ) { - if ( drop[i] === this ) { - drop.splice(i, 1); + if ( drop[ i ] === this ) { + drop.splice( i, 1 ); } } - this.element.removeClass("ui-droppable ui-droppable-disabled"); + this.element.removeClass( "ui-droppable ui-droppable-disabled" ); }, - _setOption: function(key, value) { + _setOption: function( key, value ) { - if(key === "accept") { - this.accept = $.isFunction(value) ? value : function(d) { - return d.is(value); + if ( key === "accept" ) { + this.accept = $.isFunction( value ) ? value : function( d ) { + return d.is( value ); }; } this._super( key, value ); }, - _activate: function(event) { + _activate: function( event ) { var draggable = $.ui.ddmanager.current; - if(this.options.activeClass) { - this.element.addClass(this.options.activeClass); + if ( this.options.activeClass ) { + this.element.addClass( this.options.activeClass ); } - if(draggable){ - this._trigger("activate", event, this.ui(draggable)); + if ( draggable ){ + this._trigger( "activate", event, this.ui( draggable ) ); } }, - _deactivate: function(event) { + _deactivate: function( event ) { var draggable = $.ui.ddmanager.current; - if(this.options.activeClass) { - this.element.removeClass(this.options.activeClass); + if ( this.options.activeClass ) { + this.element.removeClass( this.options.activeClass ); } - if(draggable){ - this._trigger("deactivate", event, this.ui(draggable)); + if ( draggable ){ + this._trigger( "deactivate", event, this.ui( draggable ) ); } }, - _over: function(event) { + _over: function( event ) { var draggable = $.ui.ddmanager.current; // Bail if draggable and droppable are same element - if (!draggable || (draggable.currentItem || draggable.element)[0] === this.element[0]) { + if ( !draggable || ( draggable.currentItem || draggable.element )[ 0 ] === this.element[ 0 ] ) { return; } - if (this.accept.call(this.element[0],(draggable.currentItem || draggable.element))) { - if(this.options.hoverClass) { - this.element.addClass(this.options.hoverClass); + if ( this.accept.call( this.element[ 0 ], ( draggable.currentItem || draggable.element ) ) ) { + if ( this.options.hoverClass ) { + this.element.addClass( this.options.hoverClass ); } - this._trigger("over", event, this.ui(draggable)); + this._trigger( "over", event, this.ui( draggable ) ); } }, - _out: function(event) { + _out: function( event ) { var draggable = $.ui.ddmanager.current; // Bail if draggable and droppable are same element - if (!draggable || (draggable.currentItem || draggable.element)[0] === this.element[0]) { + if ( !draggable || ( draggable.currentItem || draggable.element )[ 0 ] === this.element[ 0 ] ) { return; } - if (this.accept.call(this.element[0],(draggable.currentItem || draggable.element))) { - if(this.options.hoverClass) { - this.element.removeClass(this.options.hoverClass); + if ( this.accept.call( this.element[ 0 ], ( draggable.currentItem || draggable.element ) ) ) { + if ( this.options.hoverClass ) { + this.element.removeClass( this.options.hoverClass ); } - this._trigger("out", event, this.ui(draggable)); + this._trigger( "out", event, this.ui( draggable ) ); } }, - _drop: function(event,custom) { + _drop: function( event, custom ) { var draggable = custom || $.ui.ddmanager.current, childrenIntersection = false; // Bail if draggable and droppable are same element - if (!draggable || (draggable.currentItem || draggable.element)[0] === this.element[0]) { + if ( !draggable || ( draggable.currentItem || draggable.element )[ 0 ] === this.element[ 0 ] ) { return false; } - this.element.find(":data(ui-droppable)").not(".ui-draggable-dragging").each(function() { + this.element.find( ":data(ui-droppable)" ).not( ".ui-draggable-dragging" ).each(function() { var inst = $( this ).droppable( "instance" ); - if( + if ( inst.options.greedy && !inst.options.disabled && inst.options.scope === draggable.options.scope && - inst.accept.call(inst.element[0], (draggable.currentItem || draggable.element)) && - $.ui.intersect(draggable, $.extend(inst, { offset: inst.element.offset() }), inst.options.tolerance) + inst.accept.call( inst.element[ 0 ], ( draggable.currentItem || draggable.element ) ) && + $.ui.intersect( draggable, $.extend( inst, { offset: inst.element.offset() } ), inst.options.tolerance ) ) { childrenIntersection = true; return false; } }); - if(childrenIntersection) { + if ( childrenIntersection ) { return false; } - if(this.accept.call(this.element[0],(draggable.currentItem || draggable.element))) { - if(this.options.activeClass) { - this.element.removeClass(this.options.activeClass); + if ( this.accept.call( this.element[ 0 ], ( draggable.currentItem || draggable.element ) ) ) { + if ( this.options.activeClass ) { + this.element.removeClass( this.options.activeClass ); } - if(this.options.hoverClass) { - this.element.removeClass(this.options.hoverClass); + if ( this.options.hoverClass ) { + this.element.removeClass( this.options.hoverClass ); } - this._trigger("drop", event, this.ui(draggable)); + this._trigger( "drop", event, this.ui( draggable ) ); return this.element; } @@ -193,9 +193,9 @@ $.widget("ui.droppable", { }, - ui: function(c) { + ui: function( c ) { return { - draggable: (c.currentItem || c.element), + draggable: ( c.currentItem || c.element ), helper: c.helper, position: c.position, offset: c.positionAbs @@ -204,15 +204,15 @@ $.widget("ui.droppable", { }); -$.ui.intersect = function(draggable, droppable, toleranceMode) { +$.ui.intersect = function( draggable, droppable, toleranceMode ) { - if (!droppable.offset) { + if ( !droppable.offset ) { return false; } var draggableLeft, draggableTop, - x1 = (draggable.positionAbs || draggable.position.absolute).left, - y1 = (draggable.positionAbs || draggable.position.absolute).top, + x1 = ( draggable.positionAbs || draggable.position.absolute ).left, + y1 = ( draggable.positionAbs || draggable.position.absolute ).top, x2 = x1 + draggable.helperProportions.width, y2 = y1 + draggable.helperProportions.height, l = droppable.offset.left, @@ -220,27 +220,27 @@ $.ui.intersect = function(draggable, droppable, toleranceMode) { r = l + droppable.proportions().width, b = t + droppable.proportions().height; - switch (toleranceMode) { + switch ( toleranceMode ) { case "fit": - return (l <= x1 && x2 <= r && t <= y1 && y2 <= b); + return ( l <= x1 && x2 <= r && t <= y1 && y2 <= b ); case "intersect": - return (l < x1 + (draggable.helperProportions.width / 2) && // Right Half - x2 - (draggable.helperProportions.width / 2) < r && // Left Half - t < y1 + (draggable.helperProportions.height / 2) && // Bottom Half - y2 - (draggable.helperProportions.height / 2) < b ); // Top Half + return ( l < x1 + ( draggable.helperProportions.width / 2 ) && // Right Half + x2 - ( draggable.helperProportions.width / 2 ) < r && // Left Half + t < y1 + ( draggable.helperProportions.height / 2 ) && // Bottom Half + y2 - ( draggable.helperProportions.height / 2 ) < b ); // Top Half case "pointer": - draggableLeft = ((draggable.positionAbs || draggable.position.absolute).left + (draggable.clickOffset || draggable.offset.click).left); - draggableTop = ((draggable.positionAbs || draggable.position.absolute).top + (draggable.clickOffset || draggable.offset.click).top); + draggableLeft = ( ( draggable.positionAbs || draggable.position.absolute ).left + ( draggable.clickOffset || draggable.offset.click ).left ); + draggableTop = ( ( draggable.positionAbs || draggable.position.absolute ).top + ( draggable.clickOffset || draggable.offset.click ).top ); return isOverAxis( draggableTop, t, droppable.proportions().height ) && isOverAxis( draggableLeft, l, droppable.proportions().width ); case "touch": return ( - (y1 >= t && y1 <= b) || // Top edge touching - (y2 >= t && y2 <= b) || // Bottom edge touching - (y1 < t && y2 > b) // Surrounded vertically + ( y1 >= t && y1 <= b ) || // Top edge touching + ( y2 >= t && y2 <= b ) || // Bottom edge touching + ( y1 < t && y2 > b ) // Surrounded vertically ) && ( - (x1 >= l && x1 <= r) || // Left edge touching - (x2 >= l && x2 <= r) || // Right edge touching - (x1 < l && x2 > r) // Surrounded horizontally + ( x1 >= l && x1 <= r ) || // Left edge touching + ( x2 >= l && x2 <= r ) || // Right edge touching + ( x1 < l && x2 > r ) // Surrounded horizontally ); default: return false; @@ -254,36 +254,36 @@ $.ui.intersect = function(draggable, droppable, toleranceMode) { $.ui.ddmanager = { current: null, droppables: { "default": [] }, - prepareOffsets: function(t, event) { + prepareOffsets: function( t, event ) { var i, j, - m = $.ui.ddmanager.droppables[t.options.scope] || [], + m = $.ui.ddmanager.droppables[ t.options.scope ] || [], type = event ? event.type : null, // workaround for #2317 - list = (t.currentItem || t.element).find(":data(ui-droppable)").addBack(); + list = ( t.currentItem || t.element ).find( ":data(ui-droppable)" ).addBack(); - droppablesLoop: for (i = 0; i < m.length; i++) { + droppablesLoop: for ( i = 0; i < m.length; i++ ) { - //No disabled and non-accepted - if(m[i].options.disabled || (t && !m[i].accept.call(m[i].element[0],(t.currentItem || t.element)))) { + // No disabled and non-accepted + if ( m[ i ].options.disabled || ( t && !m[ i ].accept.call( m[ i ].element[ 0 ], ( t.currentItem || t.element ) ) ) ) { continue; } // Filter out elements in the current dragged item - for (j=0; j < list.length; j++) { - if(list[j] === m[i].element[0]) { - m[i].proportions().height = 0; + for ( j=0; j < list.length; j++ ) { + if ( list[ j ] === m[ i ].element[ 0 ] ) { + m[ i ].proportions().height = 0; continue droppablesLoop; } } - m[i].visible = m[i].element.css("display") !== "none"; - if(!m[i].visible) { + m[ i ].visible = m[ i ].element.css( "display" ) !== "none"; + if ( !m[ i ].visible ) { continue; } - //Activate the droppable if used directly from draggables - if(type === "mousedown") { - m[i]._activate.call(m[i], event); + // Activate the droppable if used directly from draggables + if ( type === "mousedown" ) { + m[ i ]._activate.call( m[ i ], event ); } m[ i ].offset = m[ i ].element.offset(); @@ -292,23 +292,23 @@ $.ui.ddmanager = { } }, - drop: function(draggable, event) { + drop: function( draggable, event ) { var dropped = false; // Create a copy of the droppables in case the list changes during the drop (#9116) - $.each(($.ui.ddmanager.droppables[draggable.options.scope] || []).slice(), function() { + $.each( ( $.ui.ddmanager.droppables[ draggable.options.scope ] || [] ).slice(), function() { - if(!this.options) { + if ( !this.options ) { return; } - if (!this.options.disabled && this.visible && $.ui.intersect(draggable, this, this.options.tolerance)) { - dropped = this._drop.call(this, event) || dropped; + if ( !this.options.disabled && this.visible && $.ui.intersect( draggable, this, this.options.tolerance ) ) { + dropped = this._drop.call( this, event ) || dropped; } - if (!this.options.disabled && this.visible && this.accept.call(this.element[0],(draggable.currentItem || draggable.element))) { + if ( !this.options.disabled && this.visible && this.accept.call( this.element[ 0 ], ( draggable.currentItem || draggable.element ) ) ) { this.isout = true; this.isover = false; - this._deactivate.call(this, event); + this._deactivate.call( this, event ); } }); @@ -316,74 +316,74 @@ $.ui.ddmanager = { }, dragStart: function( draggable, event ) { - //Listen for scrolling so that if the dragging causes scrolling the position of the droppables can be recalculated (see #5003) + // Listen for scrolling so that if the dragging causes scrolling the position of the droppables can be recalculated (see #5003) draggable.element.parentsUntil( "body" ).bind( "scroll.droppable", function() { - if( !draggable.options.refreshPositions ) { + if ( !draggable.options.refreshPositions ) { $.ui.ddmanager.prepareOffsets( draggable, event ); } }); }, - drag: function(draggable, event) { + drag: function( draggable, event ) { - //If you have a highly dynamic page, you might try this option. It renders positions every time you move the mouse. - if(draggable.options.refreshPositions) { - $.ui.ddmanager.prepareOffsets(draggable, event); + // If you have a highly dynamic page, you might try this option. It renders positions every time you move the mouse. + if ( draggable.options.refreshPositions ) { + $.ui.ddmanager.prepareOffsets( draggable, event ); } - //Run through all droppables and check their positions based on specific tolerance options - $.each($.ui.ddmanager.droppables[draggable.options.scope] || [], function() { + // Run through all droppables and check their positions based on specific tolerance options + $.each( $.ui.ddmanager.droppables[ draggable.options.scope ] || [], function() { - if(this.options.disabled || this.greedyChild || !this.visible) { + if ( this.options.disabled || this.greedyChild || !this.visible ) { return; } var parentInstance, scope, parent, - intersects = $.ui.intersect(draggable, this, this.options.tolerance), - c = !intersects && this.isover ? "isout" : (intersects && !this.isover ? "isover" : null); - if(!c) { + intersects = $.ui.intersect( draggable, this, this.options.tolerance ), + c = !intersects && this.isover ? "isout" : ( intersects && !this.isover ? "isover" : null ); + if ( !c ) { return; } - if (this.options.greedy) { + if ( this.options.greedy ) { // find droppable parents with same scope scope = this.options.scope; - parent = this.element.parents(":data(ui-droppable)").filter(function () { - return $(this).droppable( "instance" ).options.scope === scope; + parent = this.element.parents( ":data(ui-droppable)" ).filter(function () { + return $( this ).droppable( "instance" ).options.scope === scope; }); - if (parent.length) { + if ( parent.length ) { parentInstance = $( parent[ 0 ] ).droppable( "instance" ); - parentInstance.greedyChild = (c === "isover"); + parentInstance.greedyChild = ( c === "isover" ); } } // we just moved into a greedy child - if (parentInstance && c === "isover") { + if ( parentInstance && c === "isover" ) { parentInstance.isover = false; parentInstance.isout = true; - parentInstance._out.call(parentInstance, event); + parentInstance._out.call( parentInstance, event ); } - this[c] = true; + this[ c ] = true; this[c === "isout" ? "isover" : "isout"] = false; - this[c === "isover" ? "_over" : "_out"].call(this, event); + this[c === "isover" ? "_over" : "_out"].call( this, event ); // we just moved out of a greedy child - if (parentInstance && c === "isout") { + if ( parentInstance && c === "isout" ) { parentInstance.isout = false; parentInstance.isover = true; - parentInstance._over.call(parentInstance, event); + parentInstance._over.call( parentInstance, event ); } }); }, dragStop: function( draggable, event ) { draggable.element.parentsUntil( "body" ).unbind( "scroll.droppable" ); - //Call prepareOffsets one final time since IE does not fire return scroll events when overflow was caused by drag (see #5003) - if( !draggable.options.refreshPositions ) { + // Call prepareOffsets one final time since IE does not fire return scroll events when overflow was caused by drag (see #5003) + if ( !draggable.options.refreshPositions ) { $.ui.ddmanager.prepareOffsets( draggable, event ); } } }; -})(jQuery); +})( jQuery ); |