: str_replace(): Passing null to parameter #2 ($replace) of type array|string is deprecated in
this._trigger( "receive", event, this._uiHash( this.fromOutside ) );
if ( ( this.fromOutside ||
this.domPosition.prev !==
this.currentItem.prev().not( ".ui-sortable-helper" )[ 0 ] ||
this.domPosition.parent !== this.currentItem.parent()[ 0 ] ) && !noPropagation ) {
// Trigger update callback if the DOM position has changed
delayedTriggers.push( function( event ) {
this._trigger( "update", event, this._uiHash() );
// Check if the items Container has Changed and trigger appropriate
if ( this !== this.currentContainer ) {
delayedTriggers.push( function( event ) {
this._trigger( "remove", event, this._uiHash() );
delayedTriggers.push( ( function( c ) {
return function( event ) {
c._trigger( "receive", event, this._uiHash( this ) );
} ).call( this, this.currentContainer ) );
delayedTriggers.push( ( function( c ) {
return function( event ) {
c._trigger( "update", event, this._uiHash( this ) );
} ).call( this, this.currentContainer ) );
//Post events to containers
function delayEvent( type, instance, container ) {
return function( event ) {
container._trigger( type, event, instance._uiHash( instance ) );
for ( i = this.containers.length - 1; i >= 0; i-- ) {
delayedTriggers.push( delayEvent( "deactivate", this, this.containers[ i ] ) );
if ( this.containers[ i ].containerCache.over ) {
delayedTriggers.push( delayEvent( "out", this, this.containers[ i ] ) );
this.containers[ i ].containerCache.over = 0;
//Do what was originally in plugins
if ( this.storedCursor ) {
this.document.find( "body" ).css( "cursor", this.storedCursor );
this.storedStylesheet.remove();
if ( this._storedOpacity ) {
this.helper.css( "opacity", this._storedOpacity );
if ( this._storedZIndex ) {
this.helper.css( "zIndex", this._storedZIndex === "auto" ? "" : this._storedZIndex );
this._trigger( "beforeStop", event, this._uiHash() );
//$(this.placeholder[0]).remove(); would have been the jQuery way - unfortunately,
// it unbinds ALL events from the original node!
this.placeholder[ 0 ].parentNode.removeChild( this.placeholder[ 0 ] );
if ( !this.cancelHelperRemoval ) {
if ( this.helper[ 0 ] !== this.currentItem[ 0 ] ) {
for ( i = 0; i < delayedTriggers.length; i++ ) {
// Trigger all delayed events
delayedTriggers[ i ].call( this, event );
this._trigger( "stop", event, this._uiHash() );
this.fromOutside = false;
return !this.cancelHelperRemoval;
if ( $.Widget.prototype._trigger.apply( this, arguments ) === false ) {
_uiHash: function( _inst ) {
var inst = _inst || this;
placeholder: inst.placeholder || $( [] ),
originalPosition: inst.originalPosition,
offset: inst.positionAbs,
sender: _inst ? _inst.element : null