zmp-core
Version:
Full featured mobile HTML framework for building iOS & Android apps
2 lines (1 loc) • 8.68 kB
JavaScript
(function zmpComponentLoader(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),p=n.deleteProps;function i(e){this.wrapped=e}function o(e){var t,a;function n(t,a){try{var u=e[t](a),l=u.value,p=l instanceof i;Promise.resolve(p?l.wrapped:l).then((function(e){p?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 p={key:e,arg:r,resolve:u,reject:l,next:null};a?a=a.next=p:(t=a=p,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}o.prototype["function"==typeof Symbol&&Symbol.asyncIterator||"@@asyncIterator"]=function(){return this},o.prototype.next=function(e){return this._invoke("next",e)},o.prototype.throw=function(e){return this._invoke("throw",e)},o.prototype.return=function(e){return this._invoke("return",e)};var v=function(e){var t,n;function r(t,n){var r,u=c(r=e.call(this,n,[t])||this),p={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(p),u.params=l(p,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 i=u.params.el;if(!i)return u||c(r);var o,s,v=a(i);if(0===v.length)return u||c(r);if(v[0].zmpStepper)return v[0].zmpStepper||c(r);if(u.params.inputEl?o=a(u.params.inputEl):v.find(".stepper-input-wrap").find("input, textarea").length&&(o=v.find(".stepper-input-wrap").find("input, textarea").eq(0)),o&&o.length){"step min max".split(" ").forEach((function(e){!n[e]&&o.attr(e)&&(u.params[e]=parseFloat(o.attr(e)))}));var m=parseInt(u.params.decimalPoint,10);Number.isNaN(m)?u.params.decimalPoint=0:u.params.decimalPoint=m;var f=parseFloat(o.val());void 0!==n.value||Number.isNaN(f)||!f&&0!==f||(u.params.value=f)}u.params.valueEl?s=a(u.params.valueEl):v.find(".stepper-value").length&&(s=v.find(".stepper-value").eq(0));var d=v.find(".stepper-button-plus"),h=v.find(".stepper-button-minus"),g=u.params,y=g.step,E=g.min,M=g.max,$=g.value,b=g.decimalPoint;l(u,{app:t,$el:v,el:v[0],$buttonPlusEl:d,buttonPlusEl:d[0],$buttonMinusEl:h,buttonMinusEl:h[0],$inputEl:o,inputEl:o?o[0]:void 0,$valueEl:s,valueEl:s?s[0]:void 0,step:y,min:E,max:M,value:$,decimalPoint:b,typeModeChanged:!1}),v[0].zmpStepper=u;var x,w,S,I,P,V={},k=null,N=!1,T=!1;function z(e,t,a,n,r,u){clearTimeout(P),P=setTimeout((function(){1===e&&(S=!0,N=!0),clearInterval(I),u(),I=setInterval((function(){u()}),r),e<t&&z(e+1,t,a,n,r/2,u)}),1===e?a:n)}function C(e){x||(T||(a(e.target).closest(d).length?k="increment":a(e.target).closest(h).length&&(k="decrement"),k&&(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,z(1,u.params.autorepeatDynamic?4:1,500,1e3,300,(function(){u[k]()})))))}function O(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(P),clearInterval(I))}}function _(){clearTimeout(P),clearInterval(I),k=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 F(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 j(e){13!==e.keyCode&&13!==e.which||(e.preventDefault(),T=!1,u.endTypeMode())}function X(){T=!1,u.endTypeMode(!0)}function Y(e){T?u.typeValue(e.target.value):e.detail&&e.detail.sentByZMPStepper||u.setValue(e.target.value,!0)}return u.attachEvents=function(){h.on("click",B),d.on("click",D),u.params.watchInput&&o&&o.length&&(o.on("input",Y),o.on("click",F),o.on("blur",X),o.on("keyup",j)),u.params.autorepeat&&(t.on("touchstart:passive",C),t.on("touchmove:active",O),t.on("touchend:passive",_))},u.detachEvents=function(){h.off("click",B),d.off("click",D),u.params.watchInput&&o&&o.length&&(o.off("input",Y),o.off("click",F),o.off("blur",X),o.off("keyup",j))},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,p=n.value,i=Math.round(e/r)*r;if(n.params.wraps&&a?(i>l&&(i=u),i<u&&(i=l)):i=Math.max(Math.min(i,l),u),Number.isNaN(i)&&(i=p),n.value=i,!(p!==i)&&!t)return n;n.$el.trigger("stepper:change",n.value);var o=n.formatValue(n.value);return n.$inputEl&&n.$inputEl.length&&(n.$inputEl.val(o),n.$inputEl.trigger("input change",{sentByZMPStepper:!0})),n.$valueEl&&n.$valueEl.length&&n.$valueEl.html(o),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",{sentByZMPStepper:!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(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].zmpStepper,e.detachEvents(),p(e),e=null},r}(r),m={name:"stepper",create:function(){var e=this;e.stepper=l(u({defaultSelector:".stepper",constructor:v,app:e,domProp:"zmpStepper"}),{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:v},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.zmpStepper&&e.zmpStepper.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.zmpStepper&&e.zmpStepper.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.zmpStepper&&t.zmpStepper.destroy()}}}};if(t){if(e.prototype.modules&&e.prototype.modules[m.name])return;e.use(m),e.instance&&(e.instance.useModuleParams(m,e.instance.params),e.instance.useModule(m))}return m}(ZMP, typeof ZMPAutoInstallComponent === 'undefined' ? undefined : ZMPAutoInstallComponent))