framework7
Version:
Full featured mobile HTML framework for building iOS & Android apps
2 lines (1 loc) • 8.72 kB
JavaScript
(function framework7ComponentLoader(e,t){void 0===t&&(t=!0);var a=e.$,n=e.utils,r=(e.getDevice,e.getSupport,e.Class),u=(e.Modal,e.ConstructorMethods),l=(e.ModalMethods,n.extend),i=n.deleteProps;function o(e){this.wrapped=e}function p(e){var t,a;function n(t,a){try{var u=e[t](a),l=u.value,i=l instanceof o;Promise.resolve(i?l.wrapped:l).then((function(e){i?n("return"===t?"return":"next",e):r(u.done?"return":"normal",e)}),(function(e){n("throw",e)}))}catch(e){r("throw",e)}}function r(e,r){switch(e){case"return":t.resolve({value:r,done:!0});break;case"throw":t.reject(r);break;default:t.resolve({value:r,done:!1})}(t=t.next)?n(t.key,t.arg):a=null}this._invoke=function(e,r){return new Promise((function(u,l){var i={key:e,arg:r,resolve:u,reject:l,next:null};a?a=a.next=i:(t=a=i,n(e,r))}))},"function"!=typeof e.return&&(this.return=void 0)}function s(e,t){return(s=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function c(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}p.prototype["function"==typeof Symbol&&Symbol.asyncIterator||"@@asyncIterator"]=function(){return this},p.prototype.next=function(e){return this._invoke("next",e)},p.prototype.throw=function(e){return this._invoke("throw",e)},p.prototype.return=function(e){return this._invoke("return",e)};var f=function(e){var t,n;function r(t,n){var r,u=c(r=e.call(this,n,[t])||this),i={el:null,inputEl:null,valueEl:null,value:0,formatValue:null,step:1,min:0,max:100,watchInput:!0,autorepeat:!1,autorepeatDynamic:!1,wraps:!1,manualInputMode:!1,decimalPoint:4,buttonsEndInputMode:!0};u.useModulesParams(i),u.params=l(i,n),u.params.value<u.params.min&&(u.params.value=u.params.min),u.params.value>u.params.max&&(u.params.value=u.params.max);var o=u.params.el;if(!o)return u||c(r);var p,s,f=a(o);if(0===f.length)return u||c(r);if(f[0].f7Stepper)return f[0].f7Stepper||c(r);if(u.params.inputEl?p=a(u.params.inputEl):f.find(".stepper-input-wrap").find("input, textarea").length&&(p=f.find(".stepper-input-wrap").find("input, textarea").eq(0)),p&&p.length){"step min max".split(" ").forEach((function(e){!n[e]&&p.attr(e)&&(u.params[e]=parseFloat(p.attr(e)))}));var v=parseInt(u.params.decimalPoint,10);Number.isNaN(v)?u.params.decimalPoint=0:u.params.decimalPoint=v;var m=parseFloat(p.val());void 0!==n.value||Number.isNaN(m)||!m&&0!==m||(u.params.value=m)}u.params.valueEl?s=a(u.params.valueEl):f.find(".stepper-value").length&&(s=f.find(".stepper-value").eq(0));var d=f.find(".stepper-button-plus"),h=f.find(".stepper-button-minus"),g=u.params,y=g.step,E=g.min,$=g.max,M=g.value,b=g.decimalPoint;l(u,{app:t,$el:f,el:f[0],$buttonPlusEl:d,buttonPlusEl:d[0],$buttonMinusEl:h,buttonMinusEl:h[0],$inputEl:p,inputEl:p?p[0]:void 0,$valueEl:s,valueEl:s?s[0]:void 0,step:y,min:E,max:$,value:M,decimalPoint:b,typeModeChanged:!1}),f[0].f7Stepper=u;var x,w,S,I,k,V={},P=null,N=!1,T=!1;function C(e,t,a,n,r,u){clearTimeout(k),k=setTimeout((function(){1===e&&(S=!0,N=!0),clearInterval(I),u(),I=setInterval((function(){u()}),r),e<t&&C(e+1,t,a,n,r/2,u)}),1===e?a:n)}function O(e){x||(T||(a(e.target).closest(d).length?P="increment":a(e.target).closest(h).length&&(P="decrement"),P&&(V.x="touchstart"===e.type?e.targetTouches[0].pageX:e.pageX,V.y="touchstart"===e.type?e.targetTouches[0].pageY:e.pageY,x=!0,w=void 0,C(1,u.params.autorepeatDynamic?4:1,500,1e3,300,(function(){u[P]()})))))}function F(e){if(x&&!T){var t="touchmove"===e.type?e.targetTouches[0].pageX:e.pageX,a="touchmove"===e.type?e.targetTouches[0].pageY:e.pageY;void 0!==w||N||(w=!!(w||Math.abs(a-V.y)>Math.abs(t-V.x)));var n=Math.pow(Math.pow(t-V.x,2)+Math.pow(a-V.y,2),.5);(w||n>20)&&(x=!1,clearTimeout(k),clearInterval(I))}}function _(){clearTimeout(k),clearInterval(I),P=null,N=!1,x=!1}function B(){T?u.params.buttonsEndInputMode&&(T=!1,u.endTypeMode(!0)):S?S=!1:u.decrement(!0)}function D(){T?u.params.buttonsEndInputMode&&(T=!1,u.endTypeMode(!0)):S?S=!1:u.increment(!0)}function j(e){!e.target.readOnly&&u.params.manualInputMode&&(T=!0,"number"==typeof e.target.selectionStart&&(e.target.selectionStart=e.target.value.length,e.target.selectionEnd=e.target.value.length))}function X(e){13!==e.keyCode&&13!==e.which||(e.preventDefault(),T=!1,u.endTypeMode())}function Y(){T=!1,u.endTypeMode(!0)}function R(e){T?u.typeValue(e.target.value):e.detail&&e.detail.sentByF7Stepper||u.setValue(e.target.value,!0)}return u.attachEvents=function(){h.on("click",B),d.on("click",D),u.params.watchInput&&p&&p.length&&(p.on("input",R),p.on("click",j),p.on("blur",Y),p.on("keyup",X)),u.params.autorepeat&&(t.on("touchstart:passive",O),t.on("touchmove:active",F),t.on("touchend:passive",_))},u.detachEvents=function(){h.off("click",B),d.off("click",D),u.params.watchInput&&p&&p.length&&(p.off("input",R),p.off("click",j),p.off("blur",Y),p.off("keyup",X))},u.useModules(),u.init(),u||c(r)}n=e,(t=r).prototype=Object.create(n.prototype),t.prototype.constructor=t,s(t,n);var u=r.prototype;return u.minus=function(){return this.decrement()},u.plus=function(){return this.increment()},u.decrement=function(){var e=this;return e.setValue(e.value-e.step,!1,!0)},u.increment=function(){var e=this;return e.setValue(e.value+e.step,!1,!0)},u.setValue=function(e,t,a){var n=this,r=n.step,u=n.min,l=n.max,i=n.value,o=Math.round(e/r)*r;if(n.params.wraps&&a?(o>l&&(o=u),o<u&&(o=l)):o=Math.max(Math.min(o,l),u),Number.isNaN(o)&&(o=i),n.value=o,!(i!==o)&&!t)return n;n.$el.trigger("stepper:change",n.value);var p=n.formatValue(n.value);return n.$inputEl&&n.$inputEl.length&&(n.$inputEl.val(p),n.$inputEl.trigger("input change",{sentByF7Stepper:!0})),n.$valueEl&&n.$valueEl.length&&n.$valueEl.html(p),n.emit("local::change stepperChange",n,n.value),n},u.endTypeMode=function(e){var t=this,a=t.min,n=t.max,r=parseFloat(t.value);if(Number.isNaN(r)&&(r=0),r=Math.max(Math.min(r,n),a),t.value=r,!t.typeModeChanged)return t.$inputEl&&t.$inputEl.length&&!e&&t.$inputEl.blur(),t;t.typeModeChanged=!1,t.$el.trigger("stepper:change",t.value);var u=t.formatValue(t.value);return t.$inputEl&&t.$inputEl.length&&(t.$inputEl.val(u),t.$inputEl.trigger("input change",{sentByF7Stepper:!0}),e||t.$inputEl.blur()),t.$valueEl&&t.$valueEl.length&&t.$valueEl.html(u),t.emit("local::change stepperChange",t,t.value),t},u.typeValue=function(e){var t=this;t.typeModeChanged=!0;var a=String(e);if(1===a.length&&"-"===a)return t;if(a.lastIndexOf(".")+1!==a.length&&a.lastIndexOf(",")+1!==a.length){var n=parseFloat(a.replace(",","."));if(0===n)return t.value=a.replace(",","."),t.$inputEl.val(t.value),t;if(Number.isNaN(n))return t.value=0,t.$inputEl.val(t.value),t;var r=Math.pow(10,t.params.decimalPoint);return n=Math.round(n*r).toFixed(t.params.decimalPoint+1)/r,t.value=parseFloat(String(n).replace(",",".")),t.$inputEl.val(t.value),t}return a.lastIndexOf(".")!==a.indexOf(".")||a.lastIndexOf(",")!==a.indexOf(",")?(a=a.slice(0,-1),t.value=a,t.$inputEl.val(t.value),t):(t.value=a,t.$inputEl.val(a),t)},u.getValue=function(){return this.value},u.formatValue=function(e){var t=this;return t.params.formatValue?t.params.formatValue.call(t,e):e},u.init=function(){var e=this;if(e.attachEvents(),e.$valueEl&&e.$valueEl.length){var t=e.formatValue(e.value);e.$valueEl.html(t)}return e},u.destroy=function(){var e=this;e.$el.trigger("stepper:beforedestroy"),e.emit("local::beforeDestroy stepperBeforeDestroy",e),delete e.$el[0].f7Stepper,e.detachEvents(),i(e),e=null},r}(r),v={name:"stepper",create:function(){var e=this;e.stepper=l(u({defaultSelector:".stepper",constructor:f,app:e,domProp:"f7Stepper"}),{getValue:function(t){void 0===t&&(t=".stepper");var a=e.stepper.get(t);if(a)return a.getValue()},setValue:function(t,a){void 0===t&&(t=".stepper");var n=e.stepper.get(t);if(n)return n.setValue(a)}})},static:{Stepper:f},on:{tabMounted:function(e){var t=this;a(e).find(".stepper-init").each((function(e){var n=a(e).dataset();t.stepper.create(l({el:e},n||{}))}))},tabBeforeRemove:function(e){a(e).find(".stepper-init").each((function(e){e.f7Stepper&&e.f7Stepper.destroy()}))},pageInit:function(e){var t=this;e.$el.find(".stepper-init").each((function(e){var n=a(e).dataset();t.stepper.create(l({el:e},n||{}))}))},pageBeforeRemove:function(e){e.$el.find(".stepper-init").each((function(e){e.f7Stepper&&e.f7Stepper.destroy()}))}},vnode:{"stepper-init":{insert:function(e){var t=e.elm,n=a(t).dataset();this.stepper.create(l({el:t},n||{}))},destroy:function(e){var t=e.elm;t.f7Stepper&&t.f7Stepper.destroy()}}}};if(t){if(e.prototype.modules&&e.prototype.modules[v.name])return;e.use(v),e.instance&&(e.instance.useModuleParams(v,e.instance.params),e.instance.useModule(v))}return v}(Framework7, typeof Framework7AutoInstallComponent === 'undefined' ? undefined : Framework7AutoInstallComponent))