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