{"version":3,"file":"main.min.js","mappings":"oCACA,IAAIA,EAAsB,CCA1BA,EAAyBC,IACxB,IAAIC,EAASD,GAAUA,EAAOE,WAC7B,IAAOF,EAAiB,QACxB,IAAM,EAEP,OADAD,EAAoBI,EAAEF,EAAQ,CAAEG,EAAGH,IAC5BA,CAAM,ECLdF,EAAwB,CAACM,EAASC,KACjC,IAAI,IAAIC,KAAOD,EACXP,EAAoBS,EAAEF,EAAYC,KAASR,EAAoBS,EAAEH,EAASE,IAC5EE,OAAOC,eAAeL,EAASE,EAAK,CAAEI,YAAY,EAAMC,IAAKN,EAAWC,IAE1E,ECNDR,EAAwB,CAACc,EAAKC,IAAUL,OAAOM,UAAUC,eAAeC,KAAKJ,EAAKC,GCClFf,EAAyBM,IACH,oBAAXa,QAA0BA,OAAOC,aAC1CV,OAAOC,eAAeL,EAASa,OAAOC,YAAa,CAAEC,MAAO,WAE7DX,OAAOC,eAAeL,EAAS,aAAc,CAAEe,OAAO,GAAO,G,mCCL9D,MAAM,EAA+BC,M,aCArC,MAAMC,EAAMC,GAAQA,EAAOA,IAAS,KAEvBC,EAAe,CAACC,EAAUC,KACrC,GAAID,EAAU,CACZ,MAAMF,EAAOd,OAAOkB,QAAQD,GAASE,MAAK,EAAErB,EAAKa,KAAWK,EAASlB,GAAOa,EAAQ,OACpF,OAAcE,EAAPC,EAAWA,EAAK,GAAUG,EAAmB,UACtD,CACA,OAAOJ,EAAII,EAAmB,UAAE,E,oOCHlC,MAAMG,UAAkBC,EAAAA,UACtBC,YAAaC,GACXC,MAAMD,GAENE,KAAKC,YAAc,KAEnBD,KAAKT,SAAWO,EAAMP,SAEtBS,KAAKE,MAAQ,CACXC,WAAY,GACZC,KAAM,GACNlB,MAAO,GAEX,CAEAmB,oBACE,MAAM,OAAEC,EAAM,MAAEpB,GAAUc,KAAKF,MAE/B,IAAIM,EAASE,EAAOC,SAAaD,EAAOE,QACpC,SACAF,EAAOF,KACLE,EAAOF,KACP,SAEN,MAAMK,EAAcvB,EACN,WAATkB,EACClB,EAAMwB,WACNC,OAAOzB,GACT,GAEJc,KAAKY,SAAS,CACZT,WAAYM,EACZL,QAEJ,CAEAS,uBACEC,aAAad,KAAKC,YACpB,CAEAc,mBAAmBC,EAAWC,EAAWC,GACvC,MAAMC,EAAuC,iBAApBH,EAAU9B,OAA0C,WAApBc,KAAKE,MAAME,KAAoBgB,SAASJ,EAAU9B,OAAS8B,EAAU9B,MACxHmC,EAA2C,iBAArBrB,KAAKF,MAAMZ,OAA0C,WAApBc,KAAKE,MAAME,KAAoBgB,SAASpB,KAAKF,MAAMZ,OAASc,KAAKF,MAAMZ,OACxF,WAApBc,KAAKE,MAAME,KAC5BkB,MAAMH,IAAeG,MAAMD,IAAiBF,IAAcE,GAAgBA,IAAiBrB,KAAKE,MAAMhB,MACvGiC,IAAcE,GAAgBA,IAAiBrB,KAAKE,MAAMhB,OAIvC,KAAdiC,GAAqC,KAAjBE,GAAuBF,IAAcE,GAAgBA,IAAiBrB,KAAKE,MAAMhB,OAC9Gc,KAAKuB,eAAe,CAACC,OAAQ,CAACtC,MAAO,MAFrCc,KAAKuB,eAAe,CAACC,OAAQ,CAACtC,MAAOc,KAAKF,MAAMZ,SAAS,EAI7D,CAEAqC,eAAiB,CAACE,EAAGC,KACnB,MAAMC,EAAWF,EAAED,OAAOtC,MACpB0C,GAAYN,MAAMF,SAASO,IAE3BE,EAAmC,WAApB7B,KAAKE,MAAME,MAAsBuB,GAAYC,EAAWjB,OAAOgB,GAAYA,EAChG3B,KAAKY,SAAS,CACZT,WAAY0B,EACZ3C,MAAO2C,IAGLH,IAGJZ,aAAad,KAAKC,aAClBD,KAAKC,YAAc6B,YAAW,KAC5B9B,KAAKF,MAAMiC,SAASF,EAAY,GAC/B,KAAI,EAGTG,aAAe,KACbhC,KAAKF,MAAMiC,SAAS/B,KAAKE,MAAMC,WAAW,EAG5C8B,SACE,MAAM,QAAEzC,EAAU,CAChB0C,OAAQ,CAAEC,WAAW,GACrBC,UAAU,GACX,SACCC,EAAQ,SACRC,EAAQ,SACRF,EAAQ,SACRG,GACEvC,KAAKF,OAEH,WAAEK,EAAU,KAAEC,GAASJ,KAAKE,MAElC,OACE,6BACGV,EAAQ0C,OAAOC,UACZ,8BACAI,SAAUA,EACVR,SAAU/B,KAAKuB,eACfiB,UAAU,8BACVtD,MAAOiB,EACPkC,SAAUD,GAAY5C,EAAQ4C,UAAYC,EAC1CI,OAAQzC,KAAKgC,aACbU,IAAKJ,EACL,uBAAqB,SAErB,2BACIlC,KAAMd,EAAaU,KAAKT,SAAU,CAChCoD,iBAAkB,IAAM,GACxBC,UAAW,IAAMxC,IAEvBmC,SAAUA,EACVR,SAAU/B,KAAKuB,eACfiB,UAAU,8BACVtD,MAAOiB,EACPkC,SAAUD,GAAY5C,EAAQ4C,UAAYC,EAC1CI,OAAQzC,KAAKgC,aACbU,IAAKJ,EACL,uBAAqB,SAK/B,EAGF,MAAMO,GAAyBC,EAAAA,EAAAA,aAAW,CAAChD,EAAO4C,IACzC,kBAAC/C,EAAS,KAAKG,EAAK,CAAEwC,SAAUI,OAGnB,oBAAXK,SACTA,OAAOC,WAAaD,OAAOC,YAAc,GACzCD,OAAOC,WAAWC,KAAK,CAAEC,KAAM,YAAaC,UAAWN,EAAwBO,aAAc,CAAC,uBAAuB,aAAa,2BAGpI,U","sources":["webpack://TextInputDuc/webpack/bootstrap","webpack://TextInputDuc/webpack/runtime/compat get default export","webpack://TextInputDuc/webpack/runtime/define property getters","webpack://TextInputDuc/webpack/runtime/hasOwnProperty shorthand","webpack://TextInputDuc/webpack/runtime/make namespace object","webpack://TextInputDuc/external var \"React\"","webpack://TextInputDuc/./utils/runByFeature.js","webpack://TextInputDuc/./TextInputDuc.duc.js"],"sourcesContent":["// The require scope\nvar __webpack_require__ = {};\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","const __WEBPACK_NAMESPACE_OBJECT__ = React;","const run = func => func ? func() : null\n\nexport const runByFeature = (features, options) => {\n if (features) {\n const func = Object.entries(options).find(([key, value]) => features[key] ? value : null);\n return func ? run(func[1]) : run(options['otherwise'])\n }\n return run(options['otherwise'])\n}\n","import React, { Component, forwardRef } from 'react'\nimport './styles/textInput.scss'\nimport {runByFeature} from './utils/runByFeature'\n\nclass TextInput extends Component {\n constructor (props) {\n super(props)\n\n this.typingTimer = null\n\n this.features = props.features\n\n this.state = {\n inputValue: '',\n type: '',\n value: ''\n }\n }\n\n componentDidMount() {\n const { schema, value } = this.props\n\n let type = ((schema.minimum) || (schema.maximum))\n ? 'number'\n : schema.type\n ? schema.type\n : 'string'\n\n const valueByType = value\n ? (type === 'string'\n ? value.toString()\n : Number(value))\n : ''\n\n this.setState({\n inputValue: valueByType,\n type\n })\n }\n\n componentWillUnmount() {\n clearTimeout(this.typingTimer)\n }\n\n componentDidUpdate(prevProps, prevState, snapshot) {\n const prevValue = typeof prevProps.value === 'string' && this.state.type === 'number' ? parseInt(prevProps.value) : prevProps.value\n const currentValue = typeof this.props.value === 'string' && this.state.type === 'number' ? parseInt(this.props.value) : this.props.value\n const changeCondition = this.state.type === 'number'\n ? !isNaN(prevValue) && !isNaN(currentValue) && prevValue !== currentValue && currentValue !== this.state.value\n : prevValue !== currentValue && currentValue !== this.state.value\n\n if (changeCondition) {\n this.onInputChanged({target: {value: this.props.value}}, true)\n } else if (prevValue !== '' && currentValue === '' && prevValue !== currentValue && currentValue !== this.state.value) {\n this.onInputChanged({target: {value: ''}})\n }\n }\n\n onInputChanged = (e, skipOnChange) => {\n const newValue = e.target.value\n const isNumber = !isNaN(parseInt(newValue))\n\n const parsedValue = (this.state.type === 'number') && newValue && isNumber ? Number(newValue) : newValue\n this.setState({\n inputValue: parsedValue,\n value: parsedValue\n })\n\n if (skipOnChange) {\n return\n }\n clearTimeout(this.typingTimer)\n this.typingTimer = setTimeout(() => {\n this.props.onChange(parsedValue)\n }, 750)\n }\n\n handleOnBlur = () => {\n this.props.onChange(this.state.inputValue)\n }\n\n render () {\n const { options = {\n custom: { multiline: false },\n readonly: false\n },\n disabled,\n innerRef,\n readonly,\n required\n } = this.props\n\n const { inputValue, type } = this.state\n\n return (\n