UNPKG

input-plus-minus

Version:
1 lines 16.9 kB
!function(e){var t={};function n(i){if(t[i])return t[i].exports;var r=t[i]={i:i,l:!1,exports:{}};return e[i].call(r.exports,r,r.exports,n),r.l=!0,r.exports}n.m=e,n.c=t,n.d=function(e,t,i){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:i})},n.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.t=function(e,t){if(1&t&&(e=n(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var i=Object.create(null);if(n.r(i),Object.defineProperty(i,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var r in e)n.d(i,r,function(t){return e[t]}.bind(null,r));return i},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="",n(n.s=3)}([function(e,t){e.exports=Inputmask},function(e,t,n){"use strict";n.r(t);var i=n(0),r=n.n(i);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function s(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=[],i=!0,r=!1,a=void 0;try{for(var s,u=e[Symbol.iterator]();!(i=(s=u.next()).done)&&(n.push(s.value),!t||n.length!==t);i=!0);}catch(e){r=!0,a=e}finally{try{i||null==u.return||u.return()}finally{if(r)throw a}}return n}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance")}()}function u(e){return(u="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function o(e){return function(e){if(Array.isArray(e)){for(var t=0,n=new Array(e.length);t<e.length;t++)n[t]=e[t];return n}}(e)||function(e){if(Symbol.iterator in Object(e)||"[object Arguments]"===Object.prototype.toString.call(e))return Array.from(e)}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance")}()}var l=function(e){if("string"==typeof e){var t=document.querySelector(e);if(null===t)throw new Error("This element not find on page");return t}if(e instanceof HTMLInputElement&&"INPUT"===e.tagName)return e;throw new TypeError("Bad type initElement")},c=function(e,t){var n=document.createElement("div");return n.classList.add(t),e.parentNode.insertBefore(n,e),n.appendChild(e),n},h=function(e,t){var n,i=document.createElement("button");return i.setAttribute("type","button"),(n=i.classList).add.apply(n,o(t)),i.innerHTML=e,i},f=function(e){return"object"===u(e)&&null!==e},d=function(e){return"number"==typeof e},m=function(e){return parseFloat(e)},v=function(e){return parseFloat(e).toString()===e},p=function(e,t,n){var i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:0,r=n-e;if(r<=t)return e+r;var a=(e+t-i)/t;return i+Math.floor(a)*t},g=function(e,t,n){var i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:0,r=Math.abs(n-e);if(r<=t)return e-r;var a=(e-t-i)/t;return i+Math.ceil(a)*t},y=function(e,t){var n=Array.from(t).reverse().filter(function(t){var n=s(t,1)[0],i=parseFloat(n);return e>=i}).shift();if(void 0===n)throw new Error("Object step hasn't field for value = "+e);return n},b=function(e,t){return m(e[0])-m(t[0])},k=function(e){return Object.entries(e).sort(b)},w=function(e){return e.map(function(e){return e[0]})},E=function(e){var t=k(e)[0];return m(t[0])},M=function(e,t,n){return!(e<t||e>n)},S=function(e){var t,n,i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[],r=document.createElement("span");return(t=r.classList).add.apply(t,o(i)),e.appendChild(r),(n=console).log.apply(n,o(i).concat([r.classList])),r},C=function(e){return e instanceof Element},x=function(e,t,n){var i=[t];""!==n&&i.push(n),e.innerHTML=i.join(" ")},T=function(e,t){return 0===t?e:e/Math.pow(10,t)},V=function(e,t){return i.format(e,Object.assign({},{alias:"numeric",radixPoint:".",digits:"2",integerDigits:"13",groupSeparator:" ",autoGroup:!0},t))},I=function(e,t,n){return t?function(e,t){var n,i,r=Math.abs(e),a=Array.from(t).reverse().find(function(e){return 0===e.compression||T(r,e.compression)>1}),s=T(e,a.compression),u=V((n=s,i=a.digits,n.toFixed(i)),{digits:a.digits.toString()});return a.text?u+" "+a.text:u}(e,n):V(e.toString(),{})},j=function(e,t){return Array.from(e.entries()).filter(function(e){var n=e[1];return t===n.eventName}).map(function(e){return function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},i=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(i=i.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),i.forEach(function(t){a(e,t,n[t])})}return e}({key:e[0]},e[1])})},O=function(e,t){return t.map(function(t){return function(e,t){return"".concat(e,"_theme_").concat(t)}(e,t)})},P=function(e,t){var n=t.id,i=document.querySelector('[for="'.concat(n,'"]'));if("string"==typeof n&&C(i)){var r=document.createElement("span");return r.innerHTML=", "+e,i.appendChild(r),r}return null},L=(n(2),function(e){return{instance:e}});function A(e,t){for(var n=0;n<t.length;n++){var i=t[n];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(e,i.key,i)}}var N=function(){function e(){var t,n,i;!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),i=void 0,(n="list")in(t=this)?Object.defineProperty(t,n,{value:i,enumerable:!0,configurable:!0,writable:!0}):t[n]=i,this.list=new Map}var t,n,i;return t=e,(n=[{key:"add",value:function(e,t,n){if(this.checkIssetKey(e))throw new Error('This key = "'.concat(e,'" isset in list!'));this.list.set(e,{eventName:t,cb:n})}},{key:"remove",value:function(e){return this.list.delete(e)}},{key:"fireCallbacksByType",value:function(e,t){j(this.list,e).forEach(function(e){(0,e.cb)(t)})}},{key:"checkIssetKey",value:function(e){return this.list.has(e)}},{key:"getList",value:function(){return this.list}},{key:"destructor",value:function(){this.list.clear()}}])&&A(t.prototype,n),i&&A(t,i),e}();function _(e){return function(e){if(Array.isArray(e)){for(var t=0,n=new Array(e.length);t<e.length;t++)n[t]=e[t];return n}}(e)||function(e){if(Symbol.iterator in Object(e)||"[object Arguments]"===Object.prototype.toString.call(e))return Array.from(e)}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance")}()}function F(e,t){for(var n=0;n<t.length;n++){var i=t[n];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(e,i.key,i)}}var G=function(){function e(){var t,n,i;!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),i=void 0,(n="listThemes")in(t=this)?Object.defineProperty(t,n,{value:i,enumerable:!0,configurable:!0,writable:!0}):t[n]=i,this.listThemes=new Map}var t,n,i;return t=e,(n=[{key:"add",value:function(e,t){if(this.checkIssetKey(e))throw new Error('Theme with such key("'.concat(e,'") exists'));this.listThemes.set(e,t)}},{key:"remove",value:function(e){return this.listThemes.delete(e)}},{key:"get",value:function(e){if(this.checkIssetKey(e))return this.listThemes.get(e);throw new Error('Theme with such key("'.concat(e,'") does not exists'))}},{key:"getThemesObject",value:function(e){var t=this;if(!Array.isArray(e))return{};var n=e.map(function(e){return t.get(e)});return Object.assign.apply(Object,[{}].concat(_(n)))}},{key:"checkIssetKey",value:function(e){return this.listThemes.has(e)}}])&&F(t.prototype,n),i&&F(t,i),e}();function B(e,t){for(var n=0;n<t.length;n++){var i=t[n];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(e,i.key,i)}}function K(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var H={wrapper:"InputPlusMinus",element:"InputPlusMinus-Element",changer:"InputPlusMinus-Changer",minus:"InputPlusMinus-Minus",plus:"InputPlusMinus-Plus",grid:"InputPlusMinus-Grid",gridElement:"InputPlusMinus-GridElement",gridElementMin:"InputPlusMinus-GridElement_min",gridElementMax:"InputPlusMinus-GridElement_max"},D=Number.MAX_SAFE_INTEGER,R=Number.MIN_SAFE_INTEGER,q=function(){function e(t,n,i){var r=this;!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),K(this,"self",void 0),K(this,"saveValidValue",void 0),K(this,"lastInputValue",void 0),K(this,"configuration",void 0),K(this,"usedChanges",void 0),K(this,"mask",void 0),K(this,"callbacks",void 0),K(this,"themes",[]),K(this,"elements",{wrapper:null,minus:null,plus:null,grid:null,gridMin:null,gridMax:null,thumb:null}),K(this,"handleInput",function(){var e=r.self.value;r.lastInputValue=e,r.validateValue(e)&&r.onChange(e)}),K(this,"handleBlur",function(){var e=r.lastInputValue,t=r.getValidValue(e).toString();e!==t&&(r.self.value=t,r.generateEvent("input"))}),K(this,"handleMinusClick",function(){r.prev()}),K(this,"handlePlusClick",function(){r.next()});var a=f(n);if(this.self=l(t),e.checkInstance(this.self))throw new Error("This element has instance!");this.self.classList.add(H.element),this.elements.wrapper=c(this.self,H.wrapper),this.callbacks=new N,a?this.updateConfiguration(n,i,!1,!0):this.updateConfiguration({},i,!1,!0),this.elements.minus=h(this.configuration.minusText,[H.changer,H.minus]),this.self.parentNode.insertBefore(this.elements.minus,this.self),this.elements.plus=h(this.configuration.plusText,[H.changer,H.plus]),this.elements.wrapper.appendChild(this.elements.plus),this.updateStatusChangers(),this.addEventListeners(),e.addInstanceToList(this)}var t,n,i;return t=e,i=[{key:"defaultMaskSettings",value:function(){return{radixPoint:".",digits:"2",integerDigits:"13",groupSeparator:" ",autoGroup:!0,rightAlign:!1,autoUnmask:!0}}},{key:"defaultSettings",value:function(){return{minusText:"−",plusText:"+",step:1,min:R,max:D,digits:2,grid:!1,gridSuffix:"",gridCompression:!0,gridCompressionValues:[{text:"",compression:0,digits:0},{text:"тыс.",compression:3,digits:0},{text:"млн.",compression:6,digits:1},{text:"млрд.",compression:9,digits:1}],thumbCreator:P}}},{key:"getInstance",value:function(e){var t=this.instances,n=l(e);if(t.has(n))return t.get(n);throw new Error("Нет инициализированного элемента!")}},{key:"checkInstance",value:function(e){return this.instances.has(e)}},{key:"addInstanceToList",value:function(e){this.instances.set(e.self,e)}},{key:"removeInstanceFromList",value:function(e){this.instances.delete(e)}}],(n=[{key:"addEventListeners",value:function(){this.self.addEventListener("input",this.handleInput),this.self.addEventListener("blur",this.handleBlur),this.elements.minus.addEventListener("click",this.handleMinusClick),this.elements.plus.addEventListener("click",this.handlePlusClick)}},{key:"removeEventListeners",value:function(){this.self.removeEventListener("input",this.handleInput),this.self.removeEventListener("blur",this.handleBlur),this.elements.minus.addEventListener("click",this.handleMinusClick),this.elements.plus.addEventListener("click",this.handlePlusClick)}},{key:"onChange",value:function(e){var t,n,i;this.generateEvent("beforeChange",(t=this,n=this.saveValidValue,i=m(e),Object.assign({},L(t),{current:n,next:i}))),this.saveValidValue=m(e),this.updateStatusChangers(),this.generateEvent("afterChange",function(e,t){return Object.assign({},L(e),{current:t})}(this,this.saveValidValue))}},{key:"changeValue",value:function(e){var t=this.configuration,n=t.min,i=t.max;if(M(e,n,i))return this.self.value=e.toString(),void this.generateEvent("input");throw new Error('Value "'.concat(e,'" not allowed!'))}},{key:"updateConfiguration",value:function(t,n){var i,r,a,s,u,l=arguments.length>2&&void 0!==arguments[2]&&arguments[2],c=arguments.length>3&&void 0!==arguments[3]&&arguments[3],h=this.self.value;this.usedChanges=Object.assign({},e.themes.getThemesObject(n),t),this.configuration=Object.assign({},e.defaultSettings(),this.usedChanges),i=this.elements.wrapper,r=H.wrapper,a=this.themes,(u=O(r,a)).length&&(s=i.classList).remove.apply(s,o(u)),this.themes=Array.isArray(n)?n:[],function(e,t,n){var i,r=O(t,n);r.length&&(i=e.classList).add.apply(i,o(r))}(this.elements.wrapper,H.wrapper,this.themes);var f=this.configuration.step;if(!d(f)){var m=E(f),p=this.usedChanges.min;d(p)&&m>p&&(this.configuration.min=E(f))}d(t.start)&&(h=t.start.toString()),v(h)||(h="0"),this.saveValidValue=this.getValidValue(h),this.updateMask({}),this.self.value=this.saveValidValue.toString(),this.createGrid(),this.createThumb(),c||this.updateStatusChangers(),l&&this.generateEvent("input")}},{key:"next",value:function(){var e=this.saveValidValue,t=this.getStepNextValue(e);this.changeValue(t)}},{key:"prev",value:function(){var e=this.saveValidValue,t=this.getStepPrevValue(e);this.changeValue(t)}},{key:"validateValue",value:function(e){if(!this.mask.isValid())return!1;if(!v(e))return!1;var t=m(e),n=this.configuration,i=n.min,r=n.max;return M(t,i,r)}},{key:"getValidValue",value:function(e){var t=this.configuration,n=t.min,i=t.max,r=m(e);return isNaN(r)?this.saveValidValue:r<n?n:r>i?i:r}},{key:"getStepNextValue",value:function(e){var t=this.configuration.step,n=this.configuration.max;return d(t)?p(e,t,n):function(e,t,n){var i,r=k(t),a=s(y(e,r),2),u=a[0],o=a[1],l=w(r),c=l.indexOf(u);i=c<l.length-1?l[c+1]:Number.MAX_SAFE_INTEGER;var h=Math.min(i,n);return p(e,o,h,parseFloat(u))}(e,t,n)}},{key:"getStepPrevValue",value:function(e){var t=this.configuration.step,n=this.configuration.min;return d(t)?g(e,t,n):function e(t,n,i){var r=k(n),a=s(y(t,r),2),u=a[0],o=a[1],l=parseFloat(u),c=Math.max(i,l);if(t===l){var h=w(r),f=parseFloat(h[0]);return f===t?f:e(t-1e-10,n,i)}return g(t,o,c,l)}(e,t,n)}},{key:"updateMask",value:function(t){f(this.mask)&&this.mask instanceof r.a&&this.mask.remove();var n=Object.assign({},e.defaultMaskSettings(),this.getMaskSettingsFromConfig(),t);this.mask=r()("numeric",n).mask(this.self)}},{key:"getMaskSettingsFromConfig",value:function(){var e=this.configuration,t=e.digits,n=e.max,i=e.min;return{digits:t.toString(),max:n.toString(),min:i.toString(),allowMinus:i<0}}},{key:"updateStatusChangers",value:function(){var e=m(this.self.value),t=this.configuration,n=t.min,i=t.max,r=this.elements,a=r.minus,s=r.plus;a.disabled=e<=n,s.disabled=e>=i}},{key:"generateEvent",value:function(e,t){var n,i=this.self;switch(e){case"input":n=function(e){var t;return"function"==typeof Event?t=new Event(e):(t=document.createEvent("Event")).initEvent(e,!0,!0),t}("input"),i.dispatchEvent(n);break;case"beforeChange":case"afterChange":this.callbacks.fireCallbacksByType(e,t),n=new CustomEvent(e+"_InputPlusMinus",{detail:t}),i.dispatchEvent(n);break;default:throw new Error('Event with name: "'.concat(e,"\" can't generate"))}}},{key:"getBorderValuesFromChanges",value:function(){var t,n,i=this.configuration,r=i.min,a=i.max;return r!==e.defaultSettings().min&&(t=r),a!==e.defaultSettings().max&&(n=a),{min:t,max:n}}},{key:"createGrid",value:function(){this.removeGrid();var e=this.configuration,t=e.grid,n=e.gridSuffix,i=this.getBorderValuesFromChanges(),r=i.min,a=i.max,s=d(r),u=d(a);if(t&&(u||s)){var l=this.elements.grid;if(C(l)||(l=function(e){var t,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[],i=document.createElement("div");return(t=i.classList).add.apply(t,o(n)),e.appendChild(i),i}(this.elements.wrapper,[H.grid]),this.elements.grid=l),s){var c=this.elements.gridMin;C(c)||(c=S(l,[H.gridElement,H.gridElementMin]),this.elements.gridMin=c);var h=I(r,this.configuration.gridCompression,this.configuration.gridCompressionValues);x(c,h,n)}if(u){var f=this.elements.gridMax;C(f)||(f=S(l,[H.gridElement,H.gridElementMax]),this.elements.gridMax=f);var m=I(a,this.configuration.gridCompression,this.configuration.gridCompressionValues);x(f,m,n)}}}},{key:"removeGrid",value:function(){var e=this.elements.grid;C(e)&&(e.parentNode.removeChild(e),this.elements.grid=null,this.elements.gridMin=null,this.elements.gridMax=null)}},{key:"createThumb",value:function(){this.removeThumb();var e=this.configuration,t=e.thumb,n=e.thumbCreator;"string"==typeof t&&(this.elements.thumb=n(t,this.self))}},{key:"removeThumb",value:function(){var e=this.elements.thumb;C(e)&&(e.parentNode.removeChild(e),this.elements.thumb=null)}},{key:"destructor",value:function(){var t=this.self,n=this.elements.wrapper.parentNode;this.callbacks.destructor(),t.classList.remove(H.element),this.removeEventListeners(),n.appendChild(t),n.removeChild(this.elements.wrapper),this.mask.remove(),this.removeThumb(),e.removeInstanceFromList(t)}}])&&B(t.prototype,n),i&&B(t,i),e}();K(q,"themes",new G),K(q,"instances",new WeakMap);t.default=q},function(e,t,n){},function(e,t,n){"use strict";n.r(t);var i=n(1);void 0===window.InputPlusMinus&&(window.InputPlusMinus=i.default)}]);