You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
1 line
7.3 KiB
JavaScript
1 line
7.3 KiB
JavaScript
2 months ago
|
!function(a,b,c,d){function k(c,d){this.w=a(b),this.el=a(c),this.options=a.extend({},j,d),this.init()}var e="ontouchstart"in b,f=function(){var a=c.createElement("div"),d=c.documentElement;if(!("pointerEvents"in a.style))return!1;a.style.pointerEvents="auto",a.style.pointerEvents="x",d.appendChild(a);var e=b.getComputedStyle&&"auto"===b.getComputedStyle(a,"").pointerEvents;return d.removeChild(a),!!e}(),g=e?"touchstart":"mousedown",h=e?"touchmove":"mousemove",i=e?"touchend":"mouseup";eCancel=e?"touchcancel":"mouseup";var j={listNodeName:"ol",itemNodeName:"li",rootClass:"dd",listClass:"dd-list",itemClass:"dd-item",dragClass:"dd-dragel",handleClass:"dd-handle",collapsedClass:"dd-collapsed",placeClass:"dd-placeholder",noDragClass:"dd-nodrag",emptyClass:"dd-empty",expandBtnHTML:'<button data-action="expand" type="button">Expand</button>',collapseBtnHTML:'<button data-action="collapse" type="button">Collapse</button>',group:0,maxDepth:5,threshold:20};k.prototype={init:function(){var c=this;c.reset(),c.el.data("nestable-group",this.options.group),c.placeEl=a('<div class="'+c.options.placeClass+'"/>'),a.each(this.el.find(c.options.itemNodeName),function(b,d){c.setParent(a(d))}),c.el.on("click","button",function(b){if(!c.dragEl&&(e||0===b.button)){var d=a(b.currentTarget),f=d.data("action"),g=d.parent(c.options.itemNodeName);"collapse"===f&&c.collapseItem(g),"expand"===f&&c.expandItem(g)}});var d=function(b){var d=a(b.target);if(!d.hasClass(c.options.handleClass)){if(d.closest("."+c.options.noDragClass).length)return;d=d.closest("."+c.options.handleClass)}!d.length||c.dragEl||!e&&0!==b.button||e&&1!==b.touches.length||(b.preventDefault(),c.dragStart(e?b.touches[0]:b))},f=function(a){c.dragEl&&(a.preventDefault(),c.dragMove(e?a.touches[0]:a))},j=function(a){c.dragEl&&(a.preventDefault(),c.dragStop(e?a.touches[0]:a))};e?(c.el[0].addEventListener(g,d,!1),b.addEventListener(h,f,!1),b.addEventListener(i,j,!1),b.addEventListener(eCancel,j,!1)):(c.el.on(g,d),c.w.on(h,f),c.w.on(i,j))},serialize:function(){var b,c=0,d=this;return step=function(b,c){var e=[],f=b.children(d.options.itemNodeName);return f.each(function(){var b=a(this),f=a.extend({},b.data()),g=b.children(d.options.listNodeName);g.length&&(f.children=step(g,c+1)),e.push(f)}),e},b=step(d.el.find(d.options.listNodeName).first(),c)},serialise:function(){return this.serialize()},reset:function(){this.mouse={offsetX:0,offsetY:0,startX:0,startY:0,lastX:0,lastY:0,nowX:0,nowY:0,distX:0,distY:0,dirAx:0,dirX:0,dirY:0,lastDirX:0,lastDirY:0,distAxX:0,distAxY:0},this.moving=!1,this.dragEl=null,this.dragRootEl=null,this.dragDepth=0,this.hasNewRoot=!1,this.pointEl=null},expandItem:function(a){a.removeClass(this.options.collapsedClass),a.children('[data-action="expand"]').hide(),a.children('[data-action="collapse"]').show(),a.children(this.options.listNodeName).show()},collapseItem:function(a){var b=a.children(this.options.listNodeName);b.length&&(a.addClass(this.options.collapsedClass),a.children('[data-action="collapse"]').hide(),a.children('[data-action="expand"]').show(),a.children(this.options.listNodeName).hide())},expandAll:function(){var b=this;b.el.find(b.options.itemNodeName).each(function(){b.expandItem(a(this))})},collapseAll:function(){var b=this;b.el.find(b.options.itemNodeName).each(function(){b.collapseItem(a(this))})},setParent:function(b){b.children(this.options.listNodeName).length&&(b.prepend(a(this.options.expandBtnHTML)),b.prepend(a(this.options.collapseBtnHTML))),b.children('[data-action="expand"]').hide()},unsetParent:function(a){a.removeClass(this.options.collapsedClass),a.children("[data-action]").remove(),a.children(this.options.listNodeName).remove()},dragStart:function(b){var e=this.mouse,f=a(b.target),g=f.closest(this.options.itemNodeName);this.placeEl.css("height",g.height()),e.offsetX=b.offsetX!==d?b.offsetX:b.pageX-f.offset().left,e.offsetY=b.offsetY!==d?b.offsetY:b.pageY-f.offset().top,e.startX=e.lastX=b.pageX,e.startY=e.lastY=b.pageY,this.dragRootEl=this.el,this.dragEl=a(c.createElement(this.options.listNodeName)).addClass(this.options.listClass+" "+this.
|