framework7
Version:
Full featured mobile HTML framework for building iOS & Android apps
2 lines (1 loc) • 4.39 kB
JavaScript
(function framework7ComponentLoader(t,e){void 0===e&&(e=!0);var a=t.$,s=t.utils,o=(t.getDevice,t.getSupport),r=(t.Class,t.Modal,t.ConstructorMethods,t.ModalMethods,s.bindMethods),i={init:function(){var t,e,s,r,i,l,n,d,p,v,b,u,f,g,c,h,m,x,w,C,M,T=this;function I(o,r){e=!1,t=!0,M=!1,s="touchstart"===o.type?o.targetTouches[0].pageY:o.pageY,i=a(o.target).closest("li").eq(0),f=i.index(),n=i.parents(".sortable");var d=i.parents(".list-group");d.length&&d.parents(n).length&&(n=d),l=n.children("ul").children("li:not(.disallow-sorting):not(.no-sorting)"),T.panel&&(T.panel.allowOpen=!1),T.swipeout&&(T.swipeout.allow=!1),r&&(i.addClass("sorting"),n.addClass("sortable-sorting"),M=!0)}var L=!!o().passiveListener&&{passive:!1,capture:!1};a(document).on(T.touchEvents.start,".list.sortable .sortable-handler",I,L),T.on("touchmove:active",(function(o){if(t&&i){var f="touchmove"===o.type?o.targetTouches[0].pageY:o.pageY;if(!e){g=i.parents(".page"),c=i.parents(".page-content");var M=parseInt(c.css("padding-top"),10),I=parseInt(c.css("padding-bottom"),10);C=c[0].scrollTop,m=g.offset().top+M,h=g.height()-M-I,i.addClass("sorting"),n.addClass("sortable-sorting"),x=i[0].offsetTop,p=i[0].offsetTop,v=i.parent().height()-x-i.height(),d=i[0].offsetHeight,w=i.offset().top}e=!0,o.preventDefault(),o.f7PreventSwipePanel=!0,r=f-s;var L=c[0].scrollTop-C,E=Math.min(Math.max(r+L,-p),v);i.transform("translate3d(0,"+E+"px,0)");var y,V=44,Y=!0;r+L+V<-p&&(Y=!1),r+L-V>v&&(Y=!1),u=void 0,b=void 0,Y&&(w+r+d+V>m+h&&(y=w+r+d+V-(m+h)),w+r<m+V&&(y=w+r-m-V),y&&(c[0].scrollTop+=y)),l.each((function(t){var e=a(t);if(e[0]!==i[0]){var s,o=e[0].offsetTop,r=e.height(),l=x+E,p=e[0].f7Translate;l>=o-r/2&&i.index()<e.index()?(s=-d,e.transform("translate3d(0, "+s+"px,0)"),b=e,u=void 0):l<=o+r/2&&i.index()>e.index()?(s=d,e[0].f7Translate=s,e.transform("translate3d(0, "+s+"px,0)"),b=void 0,u||(u=e)):(s=void 0,e.transform("translate3d(0, 0%,0)")),p!==s&&(e.trigger("sortable:move"),T.emit("sortableMove",e[0],n[0])),e[0].f7Translate=s}}))}})),T.on("touchend:passive",(function(){if(!t||!e)return t&&!e&&(T.panel&&(T.panel.allowOpen=!0),T.swipeout&&(T.swipeout.allow=!0),M&&(i.removeClass("sorting"),n.removeClass("sortable-sorting"))),t=!1,void(e=!1);var a;T.panel&&(T.panel.allowOpen=!0),T.swipeout&&(T.swipeout.allow=!0),l.transform(""),i.removeClass("sorting"),n.removeClass("sortable-sorting"),b?a=b.index():u&&(a=u.index());var s=n.dataset().sortableMoveElements;if(void 0===s&&(s=T.params.sortable.moveElements),s&&(b&&i.insertAfter(b),u&&i.insertBefore(u)),(b||u)&&n.hasClass("virtual-list")){void 0===(f=i[0].f7VirtualListIndex)&&(f=i.attr("data-virtual-list-index")),u?void 0===(a=u[0].f7VirtualListIndex)&&(a=u.attr("data-virtual-list-index")):void 0===(a=b[0].f7VirtualListIndex)&&(a=b.attr("data-virtual-list-index")),a=null!==a?parseInt(a,10):void 0;var o=n[0].f7VirtualList;f&&(f=parseInt(f,10)),a&&(a=parseInt(a,10)),o&&o.moveItem(f,a)}void 0===a||Number.isNaN(a)||a===f||(i.trigger("sortable:sort",{from:f,to:a}),T.emit("sortableSort",i[0],{from:f,to:a,el:i[0]},n[0])),u=void 0,b=void 0,t=!1,e=!1})),a(document).on("taphold",".sortable-tap-hold",(function(t,e){I(e,!0)}))},enable:function(t){void 0===t&&(t=".list.sortable");var e=a(t);0!==e.length&&(e.addClass("sortable-enabled"),e.trigger("sortable:enable"),this.emit("sortableEnable",e[0]))},disable:function(t){void 0===t&&(t=".list.sortable");var e=a(t);0!==e.length&&(e.removeClass("sortable-enabled"),e.trigger("sortable:disable"),this.emit("sortableDisable",e[0]))},toggle:function(t){void 0===t&&(t=".list.sortable");var e=a(t);0!==e.length&&(e.hasClass("sortable-enabled")?this.sortable.disable(e):this.sortable.enable(e))}},l={name:"sortable",params:{sortable:{moveElements:!0}},create:function(){r(this,{sortable:i})},on:{init:function(){this.params.sortable&&this.sortable.init()}},clicks:{".sortable-enable":function(t,e){void 0===e&&(e={});this.sortable.enable(e.sortable)},".sortable-disable":function(t,e){void 0===e&&(e={});this.sortable.disable(e.sortable)},".sortable-toggle":function(t,e){void 0===e&&(e={});this.sortable.toggle(e.sortable)}}};if(e){if(t.prototype.modules&&t.prototype.modules[l.name])return;t.use(l),t.instance&&(t.instance.useModuleParams(l,t.instance.params),t.instance.useModule(l))}return l}(Framework7, typeof Framework7AutoInstallComponent === 'undefined' ? undefined : Framework7AutoInstallComponent))