UNPKG

framework7

Version:

Full featured mobile HTML framework for building iOS & Android apps

1 lines 1.8 kB
(function framework7ComponentLoader(n,i){void 0===i&&(i=!0);document,window;var f=n.$,e=(n.Template7,n.utils),t=(n.device,n.support,n.Class,n.Modal,n.ConstructorMethods,n.ModalMethods,{handleScroll:function(n,i){var e,t=f(n),o=t[0].scrollTop,r=t[0].scrollHeight,l=t[0].offsetHeight,c=t[0].getAttribute("data-infinite-distance"),a=t.find(".virtual-list"),s=t.hasClass("infinite-scroll-top");if(c||(c=50),"string"==typeof c&&0<=c.indexOf("%")&&(c=parseInt(c,10)/100*l),l<c&&(c=l),s)o<c&&(t.trigger("infinite",i),this.emit("infinite",t[0],i));else if(r-c<=o+l){if(0<a.length&&(e=a.eq(-1)[0].f7VirtualList)&&!e.reachEnd&&!e.params.updatableScroll)return;t.trigger("infinite",i),this.emit("infinite",t[0],i)}},create:function(n){var i=f(n),e=this;i.on("scroll",function(n){e.infiniteScroll.handle(this,n)})},destroy:function(n){f(n).off("scroll")}}),o={name:"infiniteScroll",create:function(){var n=this;e.extend(n,{infiniteScroll:{handle:t.handleScroll.bind(n),create:t.create.bind(n),destroy:t.destroy.bind(n)}})},on:{tabMounted:function(n){var e=this;f(n).find(".infinite-scroll-content").each(function(n,i){e.infiniteScroll.create(i)})},tabBeforeRemove:function(n){var i=f(n),e=this;i.find(".infinite-scroll-content").each(function(n,i){e.infiniteScroll.destroy(i)})},pageInit:function(n){var e=this;n.$el.find(".infinite-scroll-content").each(function(n,i){e.infiniteScroll.create(i)})},pageBeforeRemove:function(n){var e=this;n.$el.find(".infinite-scroll-content").each(function(n,i){e.infiniteScroll.destroy(i)})}}};if(i){if(n.prototype.modules&&n.prototype.modules[o.name])return;n.use(o),n.instance&&(n.instance.useModuleParams(o,n.instance.params),n.instance.useModule(o))}return o}(Framework7, typeof Framework7AutoInstallComponent === 'undefined' ? undefined : Framework7AutoInstallComponent))