mirror of
https://github.com/alibaba/anyproxy.git
synced 2025-04-23 20:51:26 +00:00
3 lines
8.8 KiB
JavaScript
Executable File
3 lines
8.8 KiB
JavaScript
Executable File
/*! UIkit 2.9.0 | http://www.getuikit.com | (c) 2014 YOOtheme | MIT License */
|
|
|
|
!function(a){var b;jQuery&&jQuery.UIkit&&(b=a(jQuery,jQuery.UIkit)),"function"==typeof define&&define.amd&&define("uikit-nestable",["uikit"],function(){return b||a(jQuery,jQuery.UIkit)})}(function(a,b){var c="ontouchstart"in window,d=a("html"),e=[],f=b.$win,g=function(){var a=document.createElement("div"),b=document.documentElement;if(!("pointerEvents"in a.style))return!1;a.style.pointerEvents="auto",a.style.pointerEvents="x",b.appendChild(a);var c=window.getComputedStyle&&"auto"===window.getComputedStyle(a,"").pointerEvents;return b.removeChild(a),!!c}(),h=c?"touchstart":"mousedown",i=c?"touchmove":"mousemove",j=c?"touchend":"mouseup",k=c?"touchcancel":"mouseup";return b.component("nestable",{defaults:{prefix:"uk",listNodeName:"ul",itemNodeName:"li",listBaseClass:"{prefix}-nestable",listClass:"{prefix}-nestable-list",listitemClass:"{prefix}-nestable-list-item",itemClass:"{prefix}-nestable-item",dragClass:"{prefix}-nestable-list-dragged",movingClass:"{prefix}-nestable-moving",handleClass:"{prefix}-nestable-handle",collapsedClass:"{prefix}-collapsed",placeClass:"{prefix}-nestable-placeholder",noDragClass:"{prefix}-nestable-nodrag",emptyClass:"{prefix}-nestable-empty",group:0,maxDepth:10,threshold:20},init:function(){var b=this;Object.keys(this.options).forEach(function(a){-1!=String(b.options[a]).indexOf("{prefix}")&&(b.options[a]=b.options[a].replace("{prefix}",b.options.prefix))}),this.tplempty='<div class="'+this.options.emptyClass+'"/>',this.find(">"+this.options.itemNodeName).addClass(this.options.listitemClass).end().find("ul:not(.ignore-list)").addClass(this.options.listClass).find(">li").addClass(this.options.listitemClass),this.element.children(this.options.itemNodeName).length||this.element.append(this.tplempty),this.element.data("nestable-id","ID"+(new Date).getTime()+"RAND"+Math.ceil(1e5*Math.random())),this.reset(),this.element.data("nestable-group",this.options.group),this.placeEl=a('<div class="'+this.options.placeClass+'"/>'),this.find(this.options.itemNodeName).each(function(){b.setParent(a(this))}),this.on("click","[data-nestable-action]",function(d){if(!b.dragEl&&(c||0===d.button)){d.preventDefault();var e=a(d.currentTarget),f=e.data("nestableAction"),g=e.closest(b.options.itemNodeName);"collapse"===f&&b.collapseItem(g),"expand"===f&&b.expandItem(g),"toggle"===f&&b.toggleItem(g)}});var d=function(d){var e=a(d.target);if(!e.hasClass(b.options.handleClass)){if(e.closest("."+b.options.noDragClass).length)return;e=e.closest("."+b.options.handleClass)}!e.length||b.dragEl||!c&&0!==d.button||c&&1!==d.touches.length||(d.preventDefault(),b.dragStart(c?d.touches[0]:d),b.trigger("nestable-start",[b]))},e=function(a){b.dragEl&&(a.preventDefault(),b.dragMove(c?a.touches[0]:a),b.trigger("nestable-move",[b]))},g=function(a){b.dragEl&&(a.preventDefault(),b.dragStop(c?a.touches[0]:a),b.trigger("nestable-stop",[b]))};c?(this.element[0].addEventListener(h,d,!1),window.addEventListener(i,e,!1),window.addEventListener(j,g,!1),window.addEventListener(k,g,!1)):(this.on(h,d),f.on(i,e),f.on(j,g))},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.element,c)},list:function(b){var c=[],d=this,e=0,b=a.extend({},d.options,b),f=function(d,e,g){var h=d.children(b.itemNodeName);h.each(function(d){var h=a(this),i=a.extend({parent_id:g?g:null,depth:e,order:d},h.data()),j=h.children(b.listNodeName);c.push(i),j.length&&f(j,e+1,h.data(b.idProperty||"id"))})};return f(d.element,e),c},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;for(var a=0;a<e.length;a++)e[a].children().length||e[a].append(this.tplempty);e=[]},toggleItem:function(a){this[a.hasClass(this.options.collapsedClass)?"expandItem":"collapseItem"](a)},expandItem:function(a){a.removeClass(this.options.collapsedClass)},collapseItem:function(a){var b=a.children(this.options.listNodeName);b.length&&a.addClass(this.options.collapsedClass)},expandAll:function(){var b=this;this.find(b.options.itemNodeName).each(function(){b.expandItem(a(this))})},collapseAll:function(){var b=this;this.find(b.options.itemNodeName).each(function(){b.collapseItem(a(this))})},setParent:function(a){a.children(this.options.listNodeName).length&&a.addClass("uk-parent")},unsetParent:function(a){a.removeClass("uk-parent "+this.options.collapsedClass),a.children(this.options.listNodeName).remove()},dragStart:function(b){var c=this.mouse,e=a(b.target),f=e.closest(this.options.itemNodeName),g=f.offset();this.placeEl.css("height",f.height()),c.offsetX=b.pageX-g.left,c.offsetY=b.pageY-g.top,c.startX=c.lastX=g.left,c.startY=c.lastY=g.top,this.dragRootEl=this.element,this.dragEl=a(document.createElement(this.options.listNodeName)).addClass(this.options.listClass+" "+this.options.dragClass),this.dragEl.css("width",f.width()),this.tmpDragOnSiblings=[f[0].previousSibling,f[0].nextSibling],f.after(this.placeEl),f[0].parentNode.removeChild(f[0]),f.appendTo(this.dragEl),a(document.body).append(this.dragEl),this.dragEl.css({left:g.left,top:g.top});var h,i,j=this.dragEl.find(this.options.itemNodeName);for(h=0;h<j.length;h++)i=a(j[h]).parents(this.options.listNodeName).length,i>this.dragDepth&&(this.dragDepth=i);d.addClass(this.options.movingClass)},dragStop:function(){var a=this.dragEl.children(this.options.itemNodeName).first();a[0].parentNode.removeChild(a[0]),this.placeEl.replaceWith(a),this.dragEl.remove(),(this.tmpDragOnSiblings[0]!=a[0].previousSibling||this.tmpDragOnSiblings[0]!=a[0].previousSibling)&&(this.element.trigger("nestable-change",[a,this.hasNewRoot?"added":"moved"]),this.hasNewRoot&&this.dragRootEl.trigger("nestable-change",[a,"removed"])),this.reset(),d.removeClass(this.options.movingClass)},dragMove:function(b){var c,d,f,h,i,j=this.options,k=this.mouse;this.dragEl.css({left:b.pageX-k.offsetX,top:b.pageY-k.offsetY}),k.lastX=k.nowX,k.lastY=k.nowY,k.nowX=b.pageX,k.nowY=b.pageY,k.distX=k.nowX-k.lastX,k.distY=k.nowY-k.lastY,k.lastDirX=k.dirX,k.lastDirY=k.dirY,k.dirX=0===k.distX?0:k.distX>0?1:-1,k.dirY=0===k.distY?0:k.distY>0?1:-1;var l=Math.abs(k.distX)>Math.abs(k.distY)?1:0;if(!k.moving)return k.dirAx=l,void(k.moving=!0);k.dirAx!==l?(k.distAxX=0,k.distAxY=0):(k.distAxX+=Math.abs(k.distX),0!==k.dirX&&k.dirX!==k.lastDirX&&(k.distAxX=0),k.distAxY+=Math.abs(k.distY),0!==k.dirY&&k.dirY!==k.lastDirY&&(k.distAxY=0)),k.dirAx=l,k.dirAx&&k.distAxX>=j.threshold&&(k.distAxX=0,f=this.placeEl.prev(j.itemNodeName),k.distX>0&&f.length&&!f.hasClass(j.collapsedClass)&&(c=f.find(j.listNodeName).last(),i=this.placeEl.parents(j.listNodeName).length,i+this.dragDepth<=j.maxDepth&&(c.length?(c=f.children(j.listNodeName).last(),c.append(this.placeEl)):(c=a("<"+j.listNodeName+"/>").addClass(j.listClass),c.append(this.placeEl),f.append(c),this.setParent(f)))),k.distX<0&&(h=this.placeEl.next(j.itemNodeName),h.length||(d=this.placeEl.parent(),this.placeEl.closest(j.itemNodeName).after(this.placeEl),d.children().length||this.unsetParent(d.parent()))));var m=!1;if(g||(this.dragEl[0].style.visibility="hidden"),this.pointEl=a(document.elementFromPoint(b.pageX-document.body.scrollLeft,b.pageY-(window.pageYOffset||document.documentElement.scrollTop))),g||(this.dragEl[0].style.visibility="visible"),this.pointEl.hasClass(j.handleClass))this.pointEl=this.pointEl.closest(j.itemNodeName);else{var n=this.pointEl.closest("."+j.itemClass);n.length&&(this.pointEl=n.closest(j.itemNodeName))}if(this.pointEl.hasClass(j.emptyClass))m=!0;else if(this.pointEl.data("nestable")&&!this.pointEl.children().length)m=!0,this.pointEl=a(this.tplempty).appendTo(this.pointEl);else if(!this.pointEl.length||!this.pointEl.hasClass(j.listitemClass))return;var o=this.element,p=this.pointEl.closest("."+this.options.listBaseClass),q=o[0]!==this.pointEl.closest("."+this.options.listBaseClass)[0],r=p;if(!k.dirAx||q||m){if(q&&j.group!==r.data("nestable-group"))return;if(e.push(o),i=this.dragDepth-1+this.pointEl.parents(j.listNodeName).length,i>j.maxDepth)return;var s=b.pageY<this.pointEl.offset().top+this.pointEl.height()/2;d=this.placeEl.parent(),m?this.pointEl.replaceWith(this.placeEl):s?this.pointEl.before(this.placeEl):this.pointEl.after(this.placeEl),d.children().length||d.data("nestable")||this.unsetParent(d.parent()),this.dragRootEl.find(j.itemNodeName).length||this.dragRootEl.children().length||this.dragRootEl.append(this.tplempty),q&&(this.dragRootEl=p,this.hasNewRoot=this.element[0]!==this.dragRootEl[0])}}}),b.ready(function(c){a("[data-uk-nestable]",c).each(function(){var c=a(this);if(!c.data("nestable")){b.nestable(c,b.Utils.options(c.attr("data-uk-nestable")))}})}),b.nestable}); |