{"version":3,"file":"js/calcWidget.b5ad1c70435371933692.min.js","mappings":"kKAAMA,EAAY,OACGC,EAAAA,WACjB,WAAYC,IAAW,eACnBC,KAAKC,IAAMF,EACXC,KAAKE,OAASF,KAAKC,IAAIE,cAAT,WAA2BN,EAA3B,YACdG,KAAKI,QAAUJ,KAAKC,IAAIE,cAAT,WAA2BN,EAA3B,wBACfG,KAAKK,QAAUL,KAAKC,IAAIE,cAAT,WAA2BN,EAA3B,wBACfG,KAAKM,YAAcN,KAAKC,IAAIM,QAAQD,aAAe,KACnDN,KAAKQ,UAAYR,KAAKC,IAAIM,QAAQC,WAAa,GAC/CR,KAAKS,iBAAmBT,KAAKC,IAAIM,QAAQE,iBAAkB,EAC3DT,KAAKU,MAAQC,SAASX,KAAKE,OAAOQ,OAClCV,KAAKY,SAAW,EAChBZ,KAAKa,IAAMC,KAAKC,MAAMJ,SAASX,KAAKC,IAAIM,QAAQM,OAAS,EACzDb,KAAKgB,IAAMF,KAAKC,MAAMJ,SAASX,KAAKC,IAAIM,QAAQS,OAAS,IAEzDhB,KAAKiB,O,mCAGT,WAAO,WACHjB,KAAKC,IAAIS,MAAQV,KAAKU,MACtBV,KAAKC,IAAIiB,OAAS,SAACC,GAAD,OAAU,EAAKC,cAAcD,IAC/CnB,KAAKC,IAAIoB,SAAW,SAACC,GAAD,OAAS,EAAKD,SAASC,IAC3CtB,KAAKuB,iB,uBAGT,WACIvB,KAAKU,MAAQV,KAAKU,MAAQV,KAAKa,IAAMb,KAAKU,MAAQV,KAAKY,SAAWZ,KAAKU,MACvEV,KAAKwB,gB,uBAGT,WACIxB,KAAKU,MAAQV,KAAKU,MAAQV,KAAKgB,IAAMhB,KAAKU,MAAQV,KAAKY,SAAWZ,KAAKU,MACvEV,KAAKwB,gB,2BAGT,WACI,IAAMC,EAASd,SAASX,KAAKE,OAAOQ,OACpCV,KAAKU,MAAQe,GAAUzB,KAAKa,KAAOY,GAAUzB,KAAKgB,IAAMS,EAASzB,KAAKU,MACtEV,KAAKwB,gB,4BAGT,WACI,IAAIE,EAAiB,GAErB,GAAI1B,KAAKM,YAAa,CAClB,IAAIqB,EAAS3B,KAAKM,YAClBqB,EAAS3B,KAAKU,MAAQ,EAAb,UAAoBiB,EAApB,KAAgCA,EACzCD,EAAiB1B,KAAK4B,qBAAqBC,QAAQ,eAAgBF,QAEnED,EAAiB1B,KAAK4B,qBAE1B,OAAOF,I,gCAGX,WACI,OAAOZ,KAAKC,MAAMf,KAAKU,OAAOoB,WAAWD,QAAQ,wBAAyB,O,mBAG9E,WAEI,QAAO7B,KAAKE,OAAOQ,MAAMqB,MADb,c,yBAIhB,WAAc,WACV/B,KAAKE,OAAOQ,MAAQV,KAAKU,MACzBV,KAAKC,IAAIS,MAAQV,KAAKU,MACtBV,KAAKC,IAAI+B,cAAc,IAAIC,YAAY,eAAgB,CAAEC,SAAS,EAAMC,OAAQ,CAAEzB,MAAO,kBAAM,EAAKA,WACjGV,KAAKS,gBAAgBT,KAAKoC,gB,yBAGjC,WACI,IAAMC,EAASC,SAASnC,cAAcH,KAAKQ,WACxC6B,IAAQA,EAAOE,UAAYvC,KAAK0B,oB,2BAGvC,YAA0B,IAAXb,EAAW,EAAXA,IAAKG,EAAM,EAANA,SACLwB,IAAR3B,IAAmBb,KAAKa,IAAMA,QACtB2B,IAARxB,IAAmBhB,KAAKgB,IAAMA,K,sBAGrC,SAASM,GAEL,GADAtB,KAAKE,OAAOQ,MAAQY,EAChB,gBAAiBgB,SAAU,CAC3B,IAAIG,EAAMH,SAASI,YAAY,cAC/BD,EAAIE,UAAU,UAAU,GAAO,GAC/B3C,KAAKE,OAAO8B,cAAcS,QAE1BzC,KAAKE,OAAO0C,UAAU,c,0BAG9B,WAAe,WACX5C,KAAKI,QAAQyC,iBAAiB,SAAS,kBAAM,EAAKC,eAClD9C,KAAKK,QAAQwC,iBAAiB,SAAS,kBAAM,EAAKE,eAClD/C,KAAKE,OAAO2C,iBAAiB,UAAU,kBAAM,EAAKG,uB,EA5FrClD","sources":["webpack:///./scripts/calc-input/Calc.js"],"sourcesContent":["const CLASS_PRE = 'calc'\r\nexport default class CalcWidget {\r\n constructor(container) {\r\n this.$el = container\r\n this.$input = this.$el.querySelector(`.${CLASS_PRE}__input`)\r\n this.$incBtn = this.$el.querySelector(`.${CLASS_PRE}__action--increment`)\r\n this.$decBtn = this.$el.querySelector(`.${CLASS_PRE}__action--decrement`)\r\n this.labelFormat = this.$el.dataset.labelFormat || '$1'\r\n this.labelLink = this.$el.dataset.labelLink || ''\r\n this.autoApplyLabel = !!this.$el.dataset.autoApplyLabel || false\r\n this.value = parseInt(this.$input.value)\r\n this.incCount = 1\r\n this.min = Math.round(parseInt(this.$el.dataset.min)) || 0\r\n this.max = Math.round(parseInt(this.$el.dataset.max)) || 100\r\n\r\n this.init()\r\n }\r\n\r\n init() {\r\n this.$el.value = this.value\r\n this.$el.update = (opts) => this.updateOptions(opts)\r\n this.$el.setValue = (val) => this.setValue(val)\r\n this.addListeners()\r\n }\r\n\r\n decrement() {\r\n this.value = this.value > this.min ? this.value - this.incCount : this.value\r\n this.updateInput()\r\n }\r\n\r\n increment() {\r\n this.value = this.value < this.max ? this.value + this.incCount : this.value\r\n this.updateInput()\r\n }\r\n\r\n onInputChange() {\r\n const newVal = parseInt(this.$input.value)\r\n this.value = newVal >= this.min && newVal <= this.max ? newVal : this.value\r\n this.updateInput()\r\n }\r\n\r\n formatedString() {\r\n let formatedString = ''\r\n \r\n if (this.labelFormat) {\r\n let format = this.labelFormat\r\n format = this.value > 1 ? `${format}s` : format\r\n formatedString = this.addNumberSeperator().replace(/^([\\d-,]*)$/g, format)\r\n } else {\r\n formatedString = this.addNumberSeperator()\r\n }\r\n return formatedString\r\n }\r\n\r\n addNumberSeperator() {\r\n return Math.round(this.value).toString().replace(/\\B(?=(\\d{3})+(?!\\d))/g, \",\");\r\n }\r\n\r\n isNum() {\r\n let regex = /^[0-9]+$/\r\n return this.$input.value.match(regex) ? true : false\r\n }\r\n\r\n updateInput() {\r\n this.$input.value = this.value\r\n this.$el.value = this.value\r\n this.$el.dispatchEvent(new CustomEvent('valueUpdated', { bubbles: true, detail: { value: () => this.value } }))\r\n if(this.autoApplyLabel) this.updateLabel()\r\n }\r\n\r\n updateLabel() {\r\n const $label = document.querySelector(this.labelLink)\r\n if($label) $label.innerHTML = this.formatedString()\r\n }\r\n\r\n updateOptions({min, max}) {\r\n if(min !== undefined) this.min = min\r\n if(max !== undefined) this.max = max\r\n }\r\n\r\n setValue(val) {\r\n this.$input.value = val\r\n if (\"createEvent\" in document) {\r\n var evt = document.createEvent(\"HTMLEvents\")\r\n evt.initEvent(\"change\", false, true)\r\n this.$input.dispatchEvent(evt)\r\n } else\r\n this.$input.fireEvent(\"onchange\")\r\n }\r\n\r\n addListeners() {\r\n this.$incBtn.addEventListener(\"click\", () => this.increment())\r\n this.$decBtn.addEventListener(\"click\", () => this.decrement())\r\n this.$input.addEventListener(\"change\", () => this.onInputChange())\r\n }\r\n}"],"names":["CLASS_PRE","CalcWidget","container","this","$el","$input","querySelector","$incBtn","$decBtn","labelFormat","dataset","labelLink","autoApplyLabel","value","parseInt","incCount","min","Math","round","max","init","update","opts","updateOptions","setValue","val","addListeners","updateInput","newVal","formatedString","format","addNumberSeperator","replace","toString","match","dispatchEvent","CustomEvent","bubbles","detail","updateLabel","$label","document","innerHTML","undefined","evt","createEvent","initEvent","fireEvent","addEventListener","increment","decrement","onInputChange"],"sourceRoot":""}