snappymail/vendors/knockout-sortable/build/knockout-sortable.min.js

2 lines
4.2 KiB
JavaScript

// knockout-sortable 1.2.0 | (c) 2019 Ryan Niemeyer | http://www.opensource.org/licenses/mit-license
!function(e,t){var n="ko_sortItem",o=e.utils.unwrapObservable,s=e.utils.domData.get,r=e.utils.domData.set,a=function(t,o){e.utils.arrayForEach(t,function(e){1===e.nodeType&&(r(e,n,o),r(e,"ko_parentList",s(e.parentNode,"ko_sortList")))})},i=function(t,n){var s,r={},i={};return e.utils.peekObservable(t()).data?(i=o(t()||{}),r[n]=i.data,i.hasOwnProperty("template")&&(r.name=i.template)):r[n]=t(),e.utils.arrayForEach(["afterAdd","afterRender","as","beforeRemove","includeDestroyed","templateEngine","templateOptions","nodes"],function(t){i.hasOwnProperty(t)?r[t]=i[t]:e.bindingHandlers.sortable.hasOwnProperty(t)&&(r[t]=e.bindingHandlers.sortable[t])}),"foreach"===n&&(r.afterRender?(s=r.afterRender,r.afterRender=function(e,t){a.call(t,e,t),s.call(t,e,t)}):r.afterRender=a),r},l=function(e,t){var n=o(t);if(n)for(var s=0;s<=e;s++)n[s]&&o(n[s]._destroy)&&e++;return e};e.bindingHandlers.sortable={init:function(a,d,c,u,p){var f,m,h=t(a),v=o(d())||{},b=i(d,"foreach"),g={};!function(n,o){var s,r;o?(r=document.getElementById(o))&&(s=new e.templateSources.domElement(r)).text(t.trim(s.text())):t(n).contents().each(function(){this&&1!==this.nodeType&&n.removeChild(this)})}(a,b.name),t.extend(!0,g,e.bindingHandlers.sortable),v.options&&g.options&&(e.utils.extend(g.options,v.options),delete v.options),e.utils.extend(g,v),g.connectClass&&(e.isObservable(g.allowDrop)||"function"==typeof g.allowDrop)?e.computed({read:function(){var t=o(g.allowDrop),n="function"==typeof t?t.call(this,b.foreach):t;e.utils.toggleDomNodeCssClass(a,g.connectClass,n)},disposeWhenNodeIsRemoved:a},this):e.utils.toggleDomNodeCssClass(a,g.connectClass,g.allowDrop),e.bindingHandlers.template.init(a,function(){return b},c,u,p),f=g.options.start,m=g.options.update,g.options.helper||(g.options.helper=function(e,n){return n.is("tr")&&n.children().each(function(){t(this).width(t(this).width())}),n});var y=setTimeout(function(){var i,d=g.options.receive;h.sortable(e.utils.extend(g.options,{start:function(t,n){var o=n.item[0];r(o,"ko_sourceIndex",e.utils.arrayIndexOf(n.item.parent().children(),o)),n.item.find("input:focus").change(),f&&f.apply(this,arguments)},receive:function(e,t){"function"==typeof d&&d.call(this,e,t),(i=s(t.item[0],"ko_dragItem"))&&(i.clone&&(i=i.clone()),g.dragged&&(i=g.dragged.call(this,i,e,t)||i))},update:function(a,d){var c,u,p,f,h,v=d.item[0],y=d.item.parent()[0],D=s(v,n)||i;if(D||t(v).remove(),i=null,D&&this===y){if(c=s(v,"ko_parentList"),p=s(v,"ko_sourceIndex"),u=s(v.parentNode,"ko_sortList"),f=e.utils.arrayIndexOf(d.item.parent().children(),v),b.includeDestroyed||(p=l(p,c),f=l(f,u)),(g.beforeMove||g.afterMove)&&(h={item:D,sourceParent:c,sourceParentNode:c&&d.sender||v.parentNode,sourceIndex:p,targetParent:u,targetIndex:f,cancelDrop:!1},g.beforeMove&&g.beforeMove.call(this,h,a,d)),c?t(c===u?this:d.sender||this).sortable("cancel"):t(v).remove(),h&&h.cancelDrop)return;if(g.hasOwnProperty("strategyMove")&&!1!==g.strategyMove){if(f>=0)if(c)if(c!==u)c.splice(p,1),u.splice(f,0,D),r(v,n,null),d.item.remove();else{var C=o(c);c.valueWillMutate&&c.valueWillMutate(),C.splice(p,1),C.splice(f,0,D),c.valueHasMutated&&c.valueHasMutated()}else u.splice(f,0,D),r(v,n,null),d.item.remove()}else f>=0&&(c&&(c.splice(p,1),e.processAllDeferredBindingUpdates&&e.processAllDeferredBindingUpdates(),e.options&&e.options.deferUpdates&&e.tasks.runEarly()),u.splice(f,0,D)),r(v,n,null);e.processAllDeferredBindingUpdates&&e.processAllDeferredBindingUpdates(),g.afterMove&&g.afterMove.call(this,h,a,d)}m&&m.apply(this,arguments)},connectWith:!!g.connectClass&&"."+g.connectClass})),void 0!==g.isEnabled&&e.computed({read:function(){h.sortable(o(g.isEnabled)?"enable":"disable")},disposeWhenNodeIsRemoved:a})},0);return e.utils.domNodeDisposal.addDisposeCallback(a,function(){(h.data("ui-sortable")||h.data("sortable"))&&h.sortable("destroy"),e.utils.toggleDomNodeCssClass(a,g.connectClass,!1),clearTimeout(y)}),{controlsDescendantBindings:!0}},update:function(t,n,o,s,a){var l=i(n,"foreach");r(t,"ko_sortList",l.foreach),e.bindingHandlers.template.update(t,function(){return l},o,s,a)},connectClass:"ko_container",allowDrop:!0,afterMove:null,beforeMove:null,options:{}}}(this.ko,this.jQuery);