UNPKG

zmp-core

Version:

Full featured mobile HTML framework for building iOS & Android apps

2 lines (1 loc) 9.49 kB
(function zmpComponentLoader(e,t){void 0===t&&(t=!0);var o=e.$,s=e.utils,i=(e.getDevice,e.getSupport),n=(e.Class,e.Modal,e.ConstructorMethods,e.ModalMethods,s.bindMethods),a=s.nextFrame,r={init:function(){var e,t,s,n,a,p,l,u,f,w,d,c,h,m,v,g,C,x,O,z,M,E=this,T={};var L=!!i().passiveListener&&{passive:!0};E.on("touchstart",(function(e){if(r.el){var t=o(e.target);o(r.el).is(t[0])||t.parents(".swipeout").is(r.el)||t.hasClass("modal-in")||(t.attr("class")||"").indexOf("-backdrop")>0||t.hasClass("actions-modal")||t.parents(".actions-modal.modal-in, .dialog.modal-in").length>0||E.swipeout.close(r.el)}})),o(document).on(E.touchEvents.start,"li.swipeout",(function(i){E.swipeout.allow&&(t=!1,e=!0,s=void 0,T.x="touchstart"===i.type?i.targetTouches[0].pageX:i.pageX,T.y="touchstart"===i.type?i.targetTouches[0].pageY:i.pageY,n=(new Date).getTime(),p=o(this))}),L),E.on("touchmove:active",(function(i){if(e){var n="touchmove"===i.type?i.targetTouches[0].pageX:i.pageX,r="touchmove"===i.type?i.targetTouches[0].pageY:i.pageY;if(void 0===s&&(s=!!(s||Math.abs(r-T.y)>Math.abs(n-T.x))),s)e=!1;else{if(!t){if(o(".list.sortable-opened").length>0)return;l=p.find(".swipeout-content"),u=p.find(".swipeout-actions-right"),f=p.find(".swipeout-actions-left"),w=null,d=null,v=null,g=null,O=null,x=null,f.length>0&&(w=f.outerWidth(),v=f.children("a"),x=f.find(".swipeout-overswipe")),u.length>0&&(d=u.outerWidth(),g=u.children("a"),O=u.find(".swipeout-overswipe")),(h=p.hasClass("swipeout-opened"))&&(m=p.find(".swipeout-actions-left.swipeout-actions-opened").length>0?"left":"right"),p.removeClass("swipeout-transitioning"),E.params.swipeout.noFollow||(p.find(".swipeout-actions-opened").removeClass("swipeout-actions-opened"),p.removeClass("swipeout-opened"))}if(t=!0,i.preventDefault(),a=n-T.x,c=a,h&&("right"===m?c-=d:c+=w),c>0&&0===f.length||c<0&&0===u.length){if(!h)return e=!1,t=!1,l.transform(""),g&&g.length>0&&g.transform(""),void(v&&v.length>0&&v.transform(""));c=0}var L,S;if(c<0?C="to-left":c>0?C="to-right":C||(C="to-left"),i.zmpPreventSwipePanel=!0,E.params.swipeout.noFollow)return h?("right"===m&&a>0&&E.swipeout.close(p),"left"===m&&a<0&&E.swipeout.close(p)):(a<0&&u.length>0&&E.swipeout.open(p,"right"),a>0&&f.length>0&&E.swipeout.open(p,"left")),e=!1,void(t=!1);if(z=!1,M=!1,u.length>0){var y=c;if(S=y/d,y<-d){var B=y/-d;y=-d-Math.pow(-y-d,.8),c=y,O.length>0&&B>E.params.swipeout.overswipeRatio&&(M=!0)}"to-left"!==C&&(S=0,y=0),g.each((function(e){var t=o(e);void 0===e.zmpSwipeoutButtonOffset&&(t[0].zmpSwipeoutButtonOffset=e.offsetLeft),L=e.zmpSwipeoutButtonOffset,O.length>0&&t.hasClass("swipeout-overswipe")&&"to-left"===C&&(t.css({left:(M?-L:0)+"px"}),M?(t.hasClass("swipeout-overswipe-active")||(p.trigger("swipeout:overswipeenter"),E.emit("swipeoutOverswipeEnter",p[0])),t.addClass("swipeout-overswipe-active")):(t.hasClass("swipeout-overswipe-active")&&(p.trigger("swipeout:overswipeexit"),E.emit("swipeoutOverswipeExit",p[0])),t.removeClass("swipeout-overswipe-active"))),t.transform("translate3d("+(y-L*(1+Math.max(S,-1)))+"px,0,0)")}))}if(f.length>0){var W=c;if(S=W/w,W>w){var b=W/d;W=w+Math.pow(W-w,.8),c=W,x.length>0&&b>E.params.swipeout.overswipeRatio&&(z=!0)}"to-right"!==C&&(W=0,S=0),v.each((function(e,t){var s=o(e);void 0===e.zmpSwipeoutButtonOffset&&(s[0].zmpSwipeoutButtonOffset=w-e.offsetLeft-e.offsetWidth),L=e.zmpSwipeoutButtonOffset,x.length>0&&s.hasClass("swipeout-overswipe")&&"to-right"===C&&(s.css({left:(z?L:0)+"px"}),z?(s.hasClass("swipeout-overswipe-active")||(p.trigger("swipeout:overswipeenter"),E.emit("swipeoutOverswipeEnter",p[0])),s.addClass("swipeout-overswipe-active")):(s.hasClass("swipeout-overswipe-active")&&(p.trigger("swipeout:overswipeexit"),E.emit("swipeoutOverswipeExit",p[0])),s.removeClass("swipeout-overswipe-active"))),v.length>1&&s.css("z-index",v.length-t),s.transform("translate3d("+(W+L*(1-Math.min(S,1)))+"px,0,0)")}))}p.trigger("swipeout",S),E.emit("swipeout",p[0],S),l.transform("translate3d("+c+"px,0,0)")}}})),E.on("touchend:passive",(function(){if(!e||!t)return e=!1,void(t=!1);e=!1,t=!1;var s,i,m,x,O=(new Date).getTime()-n,T="to-left"===C?u:f,L="to-left"===C?d:w;if(s=O<300&&(a<-10&&"to-left"===C||a>10&&"to-right"===C)||O>=300&&Math.abs(c)>L/2?"open":"close",O<300&&(0===Math.abs(c)&&(s="close"),Math.abs(c)===L&&(s="open")),"open"===s){r.el=p[0],p.trigger("swipeout:open"),E.emit("swipeoutOpen",p[0]),p.addClass("swipeout-opened swipeout-transitioning");var S="to-left"===C?-L:L;if(l.transform("translate3d("+S+"px,0,0)"),T.addClass("swipeout-actions-opened"),i="to-left"===C?g:v)for(m=0;m<i.length;m+=1)o(i[m]).transform("translate3d("+S+"px,0,0)");M&&u.find(".swipeout-overswipe").trigger("click","zmpOverswipe"),z&&f.find(".swipeout-overswipe").trigger("click","zmpOverswipe")}else p.trigger("swipeout:close"),E.emit("swipeoutClose",p[0]),r.el=void 0,p.addClass("swipeout-transitioning").removeClass("swipeout-opened"),l.transform(""),T.removeClass("swipeout-actions-opened");v&&v.length>0&&v!==i&&v.each((function(e){var t=o(e);void 0===(x=e.zmpSwipeoutButtonOffset)&&(t[0].zmpSwipeoutButtonOffset=w-e.offsetLeft-e.offsetWidth),t.transform("translate3d("+x+"px,0,0)")})),g&&g.length>0&&g!==i&&g.each((function(e){var t=o(e);void 0===(x=e.zmpSwipeoutButtonOffset)&&(t[0].zmpSwipeoutButtonOffset=e.offsetLeft),t.transform("translate3d("+-x+"px,0,0)")})),l.transitionEnd((function(){h&&"open"===s||!h&&"close"===s||(p.trigger("open"===s?"swipeout:opened":"swipeout:closed"),E.emit("open"===s?"swipeoutOpened":"swipeoutClosed",p[0]),p.removeClass("swipeout-transitioning"),h&&"close"===s&&(u.length>0&&g.transform(""),f.length>0&&v.transform("")))}))}))},allow:!0,el:void 0,open:function(){for(var e=this,t=arguments.length,s=new Array(t),i=0;i<t;i++)s[i]=arguments[i];var n=s[0],p=s[1],l=s[2];"function"==typeof s[1]&&(n=s[0],l=s[1],p=s[2]);var u=o(n).eq(0);if(0!==u.length&&u.hasClass("swipeout")&&!u.hasClass("swipeout-opened")){p||(p=u.find(".swipeout-actions-right").length>0?"right":"left");var f=u.find(".swipeout-actions-"+p),w=u.find(".swipeout-content");if(0!==f.length){u.trigger("swipeout:open").addClass("swipeout-opened").removeClass("swipeout-transitioning"),e.emit("swipeoutOpen",u[0]),f.addClass("swipeout-actions-opened");var d=f.children("a"),c=f.outerWidth(),h="right"===p?-c:c;d.length>1&&d.each((function(e,t){var s=o(e);"right"===p?s.transform("translate3d("+-e.offsetLeft+"px,0,0)"):s.css("z-index",d.length-t).transform("translate3d("+(c-e.offsetWidth-e.offsetLeft)+"px,0,0)")})),u.addClass("swipeout-transitioning"),w.transitionEnd((function(){u.trigger("swipeout:opened"),e.emit("swipeoutOpened",u[0]),l&&l.call(u[0])})),a((function(){d.transform("translate3d("+h+"px,0,0)"),w.transform("translate3d("+h+"px,0,0)")})),r.el=u[0]}}},close:function(e,t){var s=this,i=o(e).eq(0);if(0!==i.length&&i.hasClass("swipeout-opened")){var n,a=i.find(".swipeout-actions-opened").hasClass("swipeout-actions-right")?"right":"left",p=i.find(".swipeout-actions-opened").removeClass("swipeout-actions-opened"),l=p.children("a"),u=p.outerWidth();s.swipeout.allow=!1,i.trigger("swipeout:close"),s.emit("swipeoutClose",i[0]),i.removeClass("swipeout-opened").addClass("swipeout-transitioning"),i.find(".swipeout-content").transform("").transitionEnd(f),n=setTimeout(f,500),l.each((function(e){var t=o(e);"right"===a?t.transform("translate3d("+-e.offsetLeft+"px,0,0)"):t.transform("translate3d("+(u-e.offsetWidth-e.offsetLeft)+"px,0,0)"),t.css({left:"0px"}).removeClass("swipeout-overswipe-active")})),r.el&&r.el===i[0]&&(r.el=void 0)}function f(){s.swipeout.allow=!0,i.hasClass("swipeout-opened")||(i.removeClass("swipeout-transitioning"),l.transform(""),i.trigger("swipeout:closed"),s.emit("swipeoutClosed",i[0]),t&&t.call(i[0]),n&&clearTimeout(n))}},delete:function(e,t){var s=this,i=o(e).eq(0);0!==i.length&&(r.el=void 0,i.trigger("swipeout:delete"),s.emit("swipeoutDelete",i[0]),i.css({height:i.outerHeight()+"px"}),i.transitionEnd((function(){if(i.trigger("swipeout:deleted"),s.emit("swipeoutDeleted",i[0]),t&&t.call(i[0]),i.parents(".virtual-list").length>0){var e=i.parents(".virtual-list")[0].zmpVirtualList,o=i[0].zmpVirtualListIndex;e&&void 0!==o&&e.deleteItem(o)}else s.params.swipeout.removeElements?s.params.swipeout.removeElementsWithTimeout?setTimeout((function(){i.remove()}),s.params.swipeout.removeElementsTimeout):i.remove():i.removeClass("swipeout-deleting swipeout-transitioning")})),a((function(){i.addClass("swipeout-deleting swipeout-transitioning").css({height:"0px"}).find(".swipeout-content").transform("translate3d(-100%,0,0)")})))}},p={name:"swipeout",params:{swipeout:{actionsNoFold:!1,noFollow:!1,removeElements:!0,removeElementsWithTimeout:!1,removeElementsTimeout:0,overswipeRatio:1.2}},create:function(){n(this,{swipeout:r})},clicks:{".swipeout-open":function(e,t){void 0===t&&(t={});this.swipeout.open(t.swipeout,t.side)},".swipeout-close":function(e){var t=e.closest(".swipeout");0!==t.length&&this.swipeout.close(t)},".swipeout-delete":function(e,t){void 0===t&&(t={});var o=this,s=e.closest(".swipeout");if(0!==s.length){var i=t,n=i.confirm,a=i.confirmTitle;t.confirm?o.dialog.confirm(n,a,(function(){o.swipeout.delete(s)})):o.swipeout.delete(s)}}},on:{init:function(){this.params.swipeout&&this.swipeout.init()}}};if(t){if(e.prototype.modules&&e.prototype.modules[p.name])return;e.use(p),e.instance&&(e.instance.useModuleParams(p,e.instance.params),e.instance.useModule(p))}return p}(ZMP, typeof ZMPAutoInstallComponent === 'undefined' ? undefined : ZMPAutoInstallComponent))