@ -73,7 +73,7 @@
supportDraggable = ! ! ( 'draggable' in document . createElement ( 'div' ) ) ,
supportCssPointerEvents = ( function ( el ) {
// false when IE11
if ( ! ! navigator . userAgent . match ( /Trident.*rv[ :]?11\./ ) ) {
if ( ! ! navigator . userAgent . match ( /(?: Trident.*rv[ :]?11\.|msie) /i ) ) {
return false ;
}
el = document . createElement ( 'x' ) ;
@ -326,6 +326,10 @@
return ; // only left button or enabled
}
// cancel dnd if original target is content editable
if ( originalTarget . isContentEditable ) {
return ;
}
target = _closest ( target , options . draggable , el ) ;
@ -344,7 +348,7 @@
// Check filter
if ( typeof filter === 'function' ) {
if ( filter . call ( this , evt , target , this ) ) {
_dispatchEvent ( _this , originalTarget , 'filter' , target , el , startIndex ) ;
_dispatchEvent ( _this , originalTarget , 'filter' , target , el , el , startIndex ) ;
preventOnFilter && evt . preventDefault ( ) ;
return ; // cancel dnd
}
@ -354,7 +358,7 @@
criteria = _closest ( originalTarget , criteria . trim ( ) , el ) ;
if ( criteria ) {
_dispatchEvent ( _this , criteria , 'filter' , target , el , startIndex ) ;
_dispatchEvent ( _this , criteria , 'filter' , target , el , el , startIndex ) ;
return true ;
}
} ) ;
@ -411,7 +415,7 @@
_this . _triggerDragStart ( evt , touch ) ;
// Drag start event
_dispatchEvent ( _this , rootEl , 'choose' , dragEl , rootEl , oldIndex ) ;
_dispatchEvent ( _this , rootEl , 'choose' , dragEl , rootEl , rootEl , oldIndex ) ;
} ;
// Disable "draggable"
@ -502,7 +506,7 @@
Sortable . active = this ;
// Drag start event
_dispatchEvent ( this , rootEl , 'start' , dragEl , rootEl , oldIndex ) ;
_dispatchEvent ( this , rootEl , 'start' , dragEl , rootEl , rootEl , oldIndex ) ;
} else {
this . _nulling ( ) ;
}
@ -915,21 +919,21 @@
_toggleClass ( dragEl , this . options . chosenClass , false ) ;
// Drag stop event
_dispatchEvent ( this , rootEl , 'unchoose' , dragEl , rootEl , oldIndex ) ;
_dispatchEvent ( this , rootEl , 'unchoose' , dragEl , parentEl , rootEl , oldIndex ) ;
if ( rootEl !== parentEl ) {
newIndex = _index ( dragEl , options . draggable ) ;
if ( newIndex >= 0 ) {
// Add event
_dispatchEvent ( null , parentEl , 'add' , dragEl , rootEl , oldIndex , newIndex ) ;
_dispatchEvent ( null , parentEl , 'add' , dragEl , parentEl , rootEl , oldIndex , newIndex ) ;
// Remove event
_dispatchEvent ( this , rootEl , 'remove' , dragEl , rootEl , oldIndex , newIndex ) ;
_dispatchEvent ( this , rootEl , 'remove' , dragEl , parentEl , rootEl , oldIndex , newIndex ) ;
// drag from one list and drop into another
_dispatchEvent ( null , parentEl , 'sort' , dragEl , rootEl , oldIndex , newIndex ) ;
_dispatchEvent ( this , rootEl , 'sort' , dragEl , rootEl , oldIndex , newIndex ) ;
_dispatchEvent ( null , parentEl , 'sort' , dragEl , parentEl , rootEl , oldIndex , newIndex ) ;
_dispatchEvent ( this , rootEl , 'sort' , dragEl , parentEl , rootEl , oldIndex , newIndex ) ;
}
}
else {
@ -939,8 +943,8 @@
if ( newIndex >= 0 ) {
// drag & drop within the same list
_dispatchEvent ( this , rootEl , 'update' , dragEl , rootEl , oldIndex , newIndex ) ;
_dispatchEvent ( this , rootEl , 'sort' , dragEl , rootEl , oldIndex , newIndex ) ;
_dispatchEvent ( this , rootEl , 'update' , dragEl , parentEl , rootEl , oldIndex , newIndex ) ;
_dispatchEvent ( this , rootEl , 'sort' , dragEl , parentEl , rootEl , oldIndex , newIndex ) ;
}
}
}
@ -951,7 +955,7 @@
newIndex = oldIndex ;
}
_dispatchEvent ( this , rootEl , 'end' , dragEl , rootEl , oldIndex , newIndex ) ;
_dispatchEvent ( this , rootEl , 'end' , dragEl , parentEl , rootEl , oldIndex , newIndex ) ;
// Save sorting
this . save ( ) ;
@ -1256,7 +1260,7 @@
function _dispatchEvent ( sortable , rootEl , name , targetEl , fromEl , startIndex , newIndex ) {
function _dispatchEvent ( sortable , rootEl , name , targetEl , toEl , fromEl , startIndex , newIndex ) {
sortable = ( sortable || rootEl [ expando ] ) ;
var evt = document . createEvent ( 'Event' ) ,
@ -1265,7 +1269,7 @@
evt . initEvent ( name , true , true ) ;
evt . to = rootEl ;
evt . to = toEl || rootEl ;
evt . from = fromEl || rootEl ;
evt . item = targetEl || rootEl ;
evt . clone = cloneEl ;
@ -1421,12 +1425,15 @@
}
function _clone ( el ) {
return $
? $ ( el ) . clone ( true ) [ 0 ]
: ( Polymer && Polymer . dom
? Polymer . dom ( el ) . cloneNode ( true )
: el . cloneNode ( true )
) ;
if ( Polymer && Polymer . dom ) {
return Polymer . dom ( el ) . cloneNode ( true ) ;
}
else if ( $ ) {
return $ ( el ) . clone ( true ) [ 0 ] ;
}
else {
return el . cloneNode ( true ) ;
}
}
function _saveInputCheckedState ( root ) {