linear-react-components-ui 2.0.0-beta.4 → 2.0.0-beta.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (89) hide show
  1. package/lib/inputs/date/helpers.js +11 -22
  2. package/lib/inputs/date/helpers.js.map +1 -1
  3. package/lib/inputs/mask/BaseMask.js +55 -65
  4. package/lib/inputs/mask/BaseMask.js.map +1 -1
  5. package/lib/inputs/number/Currency.js +35 -45
  6. package/lib/inputs/number/Currency.js.map +1 -1
  7. package/lib/inputs/number/Decimal.js +38 -48
  8. package/lib/inputs/number/Decimal.js.map +1 -1
  9. package/lib/inputs/number/index.js +38 -48
  10. package/lib/inputs/number/index.js.map +1 -1
  11. package/lib/inputs2/date/datefield/base.js +60 -70
  12. package/lib/inputs2/date/datefield/base.js.map +1 -1
  13. package/lib/inputs2/date/dateperiodfield/base.js +79 -89
  14. package/lib/inputs2/date/dateperiodfield/base.js.map +1 -1
  15. package/lib/inputs2/mask/Cnpj.js +58 -68
  16. package/lib/inputs2/mask/Cnpj.js.map +1 -1
  17. package/lib/inputs2/mask/Cpf.js +38 -48
  18. package/lib/inputs2/mask/Cpf.js.map +1 -1
  19. package/lib/inputs2/mask/index.js +50 -60
  20. package/lib/inputs2/mask/index.js.map +1 -1
  21. package/lib/inputs2/numberfield/currency.js +51 -61
  22. package/lib/inputs2/numberfield/currency.js.map +1 -1
  23. package/lib/inputs2/numberfield/decimal.js +25 -35
  24. package/lib/inputs2/numberfield/decimal.js.map +1 -1
  25. package/lib/inputs2/numberfield/index.js +46 -56
  26. package/lib/inputs2/numberfield/index.js.map +1 -1
  27. package/package.json +9 -6
  28. package/lib/node_modules/imask/esm/controls/html-contenteditable-mask-element.js +0 -35
  29. package/lib/node_modules/imask/esm/controls/html-contenteditable-mask-element.js.map +0 -1
  30. package/lib/node_modules/imask/esm/controls/html-input-mask-element.js +0 -32
  31. package/lib/node_modules/imask/esm/controls/html-input-mask-element.js.map +0 -1
  32. package/lib/node_modules/imask/esm/controls/html-mask-element.js +0 -49
  33. package/lib/node_modules/imask/esm/controls/html-mask-element.js.map +0 -1
  34. package/lib/node_modules/imask/esm/controls/input-history.js +0 -31
  35. package/lib/node_modules/imask/esm/controls/input-history.js.map +0 -1
  36. package/lib/node_modules/imask/esm/controls/input.js +0 -223
  37. package/lib/node_modules/imask/esm/controls/input.js.map +0 -1
  38. package/lib/node_modules/imask/esm/controls/mask-element.js +0 -44
  39. package/lib/node_modules/imask/esm/controls/mask-element.js.map +0 -1
  40. package/lib/node_modules/imask/esm/core/action-details.js +0 -52
  41. package/lib/node_modules/imask/esm/core/action-details.js.map +0 -1
  42. package/lib/node_modules/imask/esm/core/change-details.js +0 -37
  43. package/lib/node_modules/imask/esm/core/change-details.js.map +0 -1
  44. package/lib/node_modules/imask/esm/core/continuous-tail-details.js +0 -43
  45. package/lib/node_modules/imask/esm/core/continuous-tail-details.js.map +0 -1
  46. package/lib/node_modules/imask/esm/core/holder.js +0 -7
  47. package/lib/node_modules/imask/esm/core/holder.js.map +0 -1
  48. package/lib/node_modules/imask/esm/core/utils.js +0 -68
  49. package/lib/node_modules/imask/esm/core/utils.js.map +0 -1
  50. package/lib/node_modules/imask/esm/index.js +0 -51
  51. package/lib/node_modules/imask/esm/index.js.map +0 -1
  52. package/lib/node_modules/imask/esm/masked/base.js +0 -253
  53. package/lib/node_modules/imask/esm/masked/base.js.map +0 -1
  54. package/lib/node_modules/imask/esm/masked/date.js +0 -118
  55. package/lib/node_modules/imask/esm/masked/date.js.map +0 -1
  56. package/lib/node_modules/imask/esm/masked/dynamic.js +0 -223
  57. package/lib/node_modules/imask/esm/masked/dynamic.js.map +0 -1
  58. package/lib/node_modules/imask/esm/masked/enum.js +0 -70
  59. package/lib/node_modules/imask/esm/masked/enum.js.map +0 -1
  60. package/lib/node_modules/imask/esm/masked/factory.js +0 -47
  61. package/lib/node_modules/imask/esm/masked/factory.js.map +0 -1
  62. package/lib/node_modules/imask/esm/masked/function.js +0 -24
  63. package/lib/node_modules/imask/esm/masked/function.js.map +0 -1
  64. package/lib/node_modules/imask/esm/masked/number.js +0 -213
  65. package/lib/node_modules/imask/esm/masked/number.js.map +0 -1
  66. package/lib/node_modules/imask/esm/masked/pattern/chunk-tail-details.js +0 -104
  67. package/lib/node_modules/imask/esm/masked/pattern/chunk-tail-details.js.map +0 -1
  68. package/lib/node_modules/imask/esm/masked/pattern/cursor.js +0 -101
  69. package/lib/node_modules/imask/esm/masked/pattern/cursor.js.map +0 -1
  70. package/lib/node_modules/imask/esm/masked/pattern/fixed-definition.js +0 -103
  71. package/lib/node_modules/imask/esm/masked/pattern/fixed-definition.js.map +0 -1
  72. package/lib/node_modules/imask/esm/masked/pattern/input-definition.js +0 -134
  73. package/lib/node_modules/imask/esm/masked/pattern/input-definition.js.map +0 -1
  74. package/lib/node_modules/imask/esm/masked/pattern.js +0 -323
  75. package/lib/node_modules/imask/esm/masked/pattern.js.map +0 -1
  76. package/lib/node_modules/imask/esm/masked/pipe.js +0 -24
  77. package/lib/node_modules/imask/esm/masked/pipe.js.map +0 -1
  78. package/lib/node_modules/imask/esm/masked/range.js +0 -79
  79. package/lib/node_modules/imask/esm/masked/range.js.map +0 -1
  80. package/lib/node_modules/imask/esm/masked/regexp.js +0 -22
  81. package/lib/node_modules/imask/esm/masked/regexp.js.map +0 -1
  82. package/lib/node_modules/imask/esm/masked/repeat.js +0 -105
  83. package/lib/node_modules/imask/esm/masked/repeat.js.map +0 -1
  84. package/lib/node_modules/react-imask/esm/hook.js +0 -76
  85. package/lib/node_modules/react-imask/esm/hook.js.map +0 -1
  86. package/lib/node_modules/react-imask/esm/input.js +0 -24
  87. package/lib/node_modules/react-imask/esm/input.js.map +0 -1
  88. package/lib/node_modules/react-imask/esm/mixin.js +0 -132
  89. package/lib/node_modules/react-imask/esm/mixin.js.map +0 -1
@@ -1 +0,0 @@
1
- {"version":3,"file":"dynamic.js","sources":["../../../../../node_modules/imask/esm/masked/dynamic.js"],"sourcesContent":["import { DIRECTION, objectIncludes } from '../core/utils.js';\nimport ChangeDetails from '../core/change-details.js';\nimport createMask, { normalizeOpts } from './factory.js';\nimport Masked from './base.js';\nimport IMask from '../core/holder.js';\nimport '../core/continuous-tail-details.js';\n\n/** Dynamic mask for choosing appropriate mask in run-time */\nclass MaskedDynamic extends Masked {\n constructor(opts) {\n super({\n ...MaskedDynamic.DEFAULTS,\n ...opts\n });\n this.currentMask = undefined;\n }\n updateOptions(opts) {\n super.updateOptions(opts);\n }\n _update(opts) {\n super._update(opts);\n if ('mask' in opts) {\n this.exposeMask = undefined;\n // mask could be totally dynamic with only `dispatch` option\n this.compiledMasks = Array.isArray(opts.mask) ? opts.mask.map(m => {\n const {\n expose,\n ...maskOpts\n } = normalizeOpts(m);\n const masked = createMask({\n overwrite: this._overwrite,\n eager: this._eager,\n skipInvalid: this._skipInvalid,\n ...maskOpts\n });\n if (expose) this.exposeMask = masked;\n return masked;\n }) : [];\n\n // this.currentMask = this.doDispatch(''); // probably not needed but lets see\n }\n }\n _appendCharRaw(ch, flags) {\n if (flags === void 0) {\n flags = {};\n }\n const details = this._applyDispatch(ch, flags);\n if (this.currentMask) {\n details.aggregate(this.currentMask._appendChar(ch, this.currentMaskFlags(flags)));\n }\n return details;\n }\n _applyDispatch(appended, flags, tail) {\n if (appended === void 0) {\n appended = '';\n }\n if (flags === void 0) {\n flags = {};\n }\n if (tail === void 0) {\n tail = '';\n }\n const prevValueBeforeTail = flags.tail && flags._beforeTailState != null ? flags._beforeTailState._value : this.value;\n const inputValue = this.rawInputValue;\n const insertValue = flags.tail && flags._beforeTailState != null ? flags._beforeTailState._rawInputValue : inputValue;\n const tailValue = inputValue.slice(insertValue.length);\n const prevMask = this.currentMask;\n const details = new ChangeDetails();\n const prevMaskState = prevMask == null ? void 0 : prevMask.state;\n\n // clone flags to prevent overwriting `_beforeTailState`\n this.currentMask = this.doDispatch(appended, {\n ...flags\n }, tail);\n\n // restore state after dispatch\n if (this.currentMask) {\n if (this.currentMask !== prevMask) {\n // if mask changed reapply input\n this.currentMask.reset();\n if (insertValue) {\n this.currentMask.append(insertValue, {\n raw: true\n });\n details.tailShift = this.currentMask.value.length - prevValueBeforeTail.length;\n }\n if (tailValue) {\n details.tailShift += this.currentMask.append(tailValue, {\n raw: true,\n tail: true\n }).tailShift;\n }\n } else if (prevMaskState) {\n // Dispatch can do something bad with state, so\n // restore prev mask state\n this.currentMask.state = prevMaskState;\n }\n }\n return details;\n }\n _appendPlaceholder() {\n const details = this._applyDispatch();\n if (this.currentMask) {\n details.aggregate(this.currentMask._appendPlaceholder());\n }\n return details;\n }\n _appendEager() {\n const details = this._applyDispatch();\n if (this.currentMask) {\n details.aggregate(this.currentMask._appendEager());\n }\n return details;\n }\n appendTail(tail) {\n const details = new ChangeDetails();\n if (tail) details.aggregate(this._applyDispatch('', {}, tail));\n return details.aggregate(this.currentMask ? this.currentMask.appendTail(tail) : super.appendTail(tail));\n }\n currentMaskFlags(flags) {\n var _flags$_beforeTailSta, _flags$_beforeTailSta2;\n return {\n ...flags,\n _beforeTailState: ((_flags$_beforeTailSta = flags._beforeTailState) == null ? void 0 : _flags$_beforeTailSta.currentMaskRef) === this.currentMask && ((_flags$_beforeTailSta2 = flags._beforeTailState) == null ? void 0 : _flags$_beforeTailSta2.currentMask) || flags._beforeTailState\n };\n }\n doDispatch(appended, flags, tail) {\n if (flags === void 0) {\n flags = {};\n }\n if (tail === void 0) {\n tail = '';\n }\n return this.dispatch(appended, this, flags, tail);\n }\n doValidate(flags) {\n return super.doValidate(flags) && (!this.currentMask || this.currentMask.doValidate(this.currentMaskFlags(flags)));\n }\n doPrepare(str, flags) {\n if (flags === void 0) {\n flags = {};\n }\n let [s, details] = super.doPrepare(str, flags);\n if (this.currentMask) {\n let currentDetails;\n [s, currentDetails] = super.doPrepare(s, this.currentMaskFlags(flags));\n details = details.aggregate(currentDetails);\n }\n return [s, details];\n }\n doPrepareChar(str, flags) {\n if (flags === void 0) {\n flags = {};\n }\n let [s, details] = super.doPrepareChar(str, flags);\n if (this.currentMask) {\n let currentDetails;\n [s, currentDetails] = super.doPrepareChar(s, this.currentMaskFlags(flags));\n details = details.aggregate(currentDetails);\n }\n return [s, details];\n }\n reset() {\n var _this$currentMask;\n (_this$currentMask = this.currentMask) == null || _this$currentMask.reset();\n this.compiledMasks.forEach(m => m.reset());\n }\n get value() {\n return this.exposeMask ? this.exposeMask.value : this.currentMask ? this.currentMask.value : '';\n }\n set value(value) {\n if (this.exposeMask) {\n this.exposeMask.value = value;\n this.currentMask = this.exposeMask;\n this._applyDispatch();\n } else super.value = value;\n }\n get unmaskedValue() {\n return this.exposeMask ? this.exposeMask.unmaskedValue : this.currentMask ? this.currentMask.unmaskedValue : '';\n }\n set unmaskedValue(unmaskedValue) {\n if (this.exposeMask) {\n this.exposeMask.unmaskedValue = unmaskedValue;\n this.currentMask = this.exposeMask;\n this._applyDispatch();\n } else super.unmaskedValue = unmaskedValue;\n }\n get typedValue() {\n return this.exposeMask ? this.exposeMask.typedValue : this.currentMask ? this.currentMask.typedValue : '';\n }\n set typedValue(typedValue) {\n if (this.exposeMask) {\n this.exposeMask.typedValue = typedValue;\n this.currentMask = this.exposeMask;\n this._applyDispatch();\n return;\n }\n let unmaskedValue = String(typedValue);\n\n // double check it\n if (this.currentMask) {\n this.currentMask.typedValue = typedValue;\n unmaskedValue = this.currentMask.unmaskedValue;\n }\n this.unmaskedValue = unmaskedValue;\n }\n get displayValue() {\n return this.currentMask ? this.currentMask.displayValue : '';\n }\n get isComplete() {\n var _this$currentMask2;\n return Boolean((_this$currentMask2 = this.currentMask) == null ? void 0 : _this$currentMask2.isComplete);\n }\n get isFilled() {\n var _this$currentMask3;\n return Boolean((_this$currentMask3 = this.currentMask) == null ? void 0 : _this$currentMask3.isFilled);\n }\n remove(fromPos, toPos) {\n const details = new ChangeDetails();\n if (this.currentMask) {\n details.aggregate(this.currentMask.remove(fromPos, toPos))\n // update with dispatch\n .aggregate(this._applyDispatch());\n }\n return details;\n }\n get state() {\n var _this$currentMask4;\n return {\n ...super.state,\n _rawInputValue: this.rawInputValue,\n compiledMasks: this.compiledMasks.map(m => m.state),\n currentMaskRef: this.currentMask,\n currentMask: (_this$currentMask4 = this.currentMask) == null ? void 0 : _this$currentMask4.state\n };\n }\n set state(state) {\n const {\n compiledMasks,\n currentMaskRef,\n currentMask,\n ...maskedState\n } = state;\n if (compiledMasks) this.compiledMasks.forEach((m, mi) => m.state = compiledMasks[mi]);\n if (currentMaskRef != null) {\n this.currentMask = currentMaskRef;\n this.currentMask.state = currentMask;\n }\n super.state = maskedState;\n }\n extractInput(fromPos, toPos, flags) {\n return this.currentMask ? this.currentMask.extractInput(fromPos, toPos, flags) : '';\n }\n extractTail(fromPos, toPos) {\n return this.currentMask ? this.currentMask.extractTail(fromPos, toPos) : super.extractTail(fromPos, toPos);\n }\n doCommit() {\n if (this.currentMask) this.currentMask.doCommit();\n super.doCommit();\n }\n nearestInputPos(cursorPos, direction) {\n return this.currentMask ? this.currentMask.nearestInputPos(cursorPos, direction) : super.nearestInputPos(cursorPos, direction);\n }\n get overwrite() {\n return this.currentMask ? this.currentMask.overwrite : this._overwrite;\n }\n set overwrite(overwrite) {\n this._overwrite = overwrite;\n }\n get eager() {\n return this.currentMask ? this.currentMask.eager : this._eager;\n }\n set eager(eager) {\n this._eager = eager;\n }\n get skipInvalid() {\n return this.currentMask ? this.currentMask.skipInvalid : this._skipInvalid;\n }\n set skipInvalid(skipInvalid) {\n this._skipInvalid = skipInvalid;\n }\n get autofix() {\n return this.currentMask ? this.currentMask.autofix : this._autofix;\n }\n set autofix(autofix) {\n this._autofix = autofix;\n }\n maskEquals(mask) {\n return Array.isArray(mask) ? this.compiledMasks.every((m, mi) => {\n if (!mask[mi]) return;\n const {\n mask: oldMask,\n ...restOpts\n } = mask[mi];\n return objectIncludes(m, restOpts) && m.maskEquals(oldMask);\n }) : super.maskEquals(mask);\n }\n typedValueEquals(value) {\n var _this$currentMask5;\n return Boolean((_this$currentMask5 = this.currentMask) == null ? void 0 : _this$currentMask5.typedValueEquals(value));\n }\n}\n/** Currently chosen mask */\n/** Currently chosen mask */\n/** Compliled {@link Masked} options */\n/** Chooses {@link Masked} depending on input value */\nMaskedDynamic.DEFAULTS = {\n ...Masked.DEFAULTS,\n dispatch: (appended, masked, flags, tail) => {\n if (!masked.compiledMasks.length) return;\n const inputValue = masked.rawInputValue;\n\n // simulate input\n const inputs = masked.compiledMasks.map((m, index) => {\n const isCurrent = masked.currentMask === m;\n const startInputPos = isCurrent ? m.displayValue.length : m.nearestInputPos(m.displayValue.length, DIRECTION.FORCE_LEFT);\n if (m.rawInputValue !== inputValue) {\n m.reset();\n m.append(inputValue, {\n raw: true\n });\n } else if (!isCurrent) {\n m.remove(startInputPos);\n }\n m.append(appended, masked.currentMaskFlags(flags));\n m.appendTail(tail);\n return {\n index,\n weight: m.rawInputValue.length,\n totalInputPositions: m.totalInputPositions(0, Math.max(startInputPos, m.nearestInputPos(m.displayValue.length, DIRECTION.FORCE_LEFT)))\n };\n });\n\n // pop masks with longer values first\n inputs.sort((i1, i2) => i2.weight - i1.weight || i2.totalInputPositions - i1.totalInputPositions);\n return masked.compiledMasks[inputs[0].index];\n }\n};\nIMask.MaskedDynamic = MaskedDynamic;\n\nexport { MaskedDynamic as default };\n"],"names":["MaskedDynamic","Masked","opts","m","expose","maskOpts","normalizeOpts","masked","createMask","ch","flags","details","appended","tail","prevValueBeforeTail","inputValue","insertValue","tailValue","prevMask","ChangeDetails","prevMaskState","_flags$_beforeTailSta","_flags$_beforeTailSta2","str","currentDetails","_this$currentMask","value","unmaskedValue","typedValue","_this$currentMask2","_this$currentMask3","fromPos","toPos","_this$currentMask4","state","compiledMasks","currentMaskRef","currentMask","maskedState","mi","cursorPos","direction","overwrite","eager","skipInvalid","autofix","mask","oldMask","restOpts","objectIncludes","_this$currentMask5","inputs","index","isCurrent","startInputPos","DIRECTION","i1","i2","IMask"],"mappings":";;;;;AAQA,MAAMA,UAAsBC,EAAO;AAAA,EACjC,YAAYC,GAAM;AAChB,UAAM;AAAA,MACJ,GAAGF,EAAc;AAAA,MACjB,GAAGE;AAAA,IACT,CAAK,GACD,KAAK,cAAc;AAAA,EACrB;AAAA,EACA,cAAcA,GAAM;AAClB,UAAM,cAAcA,CAAI;AAAA,EAC1B;AAAA,EACA,QAAQA,GAAM;AACZ,UAAM,QAAQA,CAAI,GACd,UAAUA,MACZ,KAAK,aAAa,QAElB,KAAK,gBAAgB,MAAM,QAAQA,EAAK,IAAI,IAAIA,EAAK,KAAK,IAAI,CAAAC,MAAK;AACjE,YAAM;AAAA,QACJ,QAAAC;AAAA,QACA,GAAGC;AAAA,MACb,IAAYC,EAAcH,CAAC,GACbI,IAASC,EAAW;AAAA,QACxB,WAAW,KAAK;AAAA,QAChB,OAAO,KAAK;AAAA,QACZ,aAAa,KAAK;AAAA,QAClB,GAAGH;AAAA,MACb,CAAS;AACD,aAAID,MAAQ,KAAK,aAAaG,IACvBA;AAAA,IACT,CAAC,IAAI,CAAA;AAAA,EAIT;AAAA,EACA,eAAeE,GAAIC,GAAO;AACxB,IAAIA,MAAU,WACZA,IAAQ,CAAA;AAEV,UAAMC,IAAU,KAAK,eAAeF,GAAIC,CAAK;AAC7C,WAAI,KAAK,eACPC,EAAQ,UAAU,KAAK,YAAY,YAAYF,GAAI,KAAK,iBAAiBC,CAAK,CAAC,CAAC,GAE3EC;AAAA,EACT;AAAA,EACA,eAAeC,GAAUF,GAAOG,GAAM;AACpC,IAAID,MAAa,WACfA,IAAW,KAETF,MAAU,WACZA,IAAQ,CAAA,IAENG,MAAS,WACXA,IAAO;AAET,UAAMC,IAAsBJ,EAAM,QAAQA,EAAM,oBAAoB,OAAOA,EAAM,iBAAiB,SAAS,KAAK,OAC1GK,IAAa,KAAK,eAClBC,IAAcN,EAAM,QAAQA,EAAM,oBAAoB,OAAOA,EAAM,iBAAiB,iBAAiBK,GACrGE,IAAYF,EAAW,MAAMC,EAAY,MAAM,GAC/CE,IAAW,KAAK,aAChBP,IAAU,IAAIQ,EAAa,GAC3BC,IAA4CF,GAAS;AAG3D,gBAAK,cAAc,KAAK,WAAWN,GAAU;AAAA,MAC3C,GAAGF;AAAA,IACT,GAAOG,CAAI,GAGH,KAAK,gBACH,KAAK,gBAAgBK,KAEvB,KAAK,YAAY,MAAK,GAClBF,MACF,KAAK,YAAY,OAAOA,GAAa;AAAA,MACnC,KAAK;AAAA,IACjB,CAAW,GACDL,EAAQ,YAAY,KAAK,YAAY,MAAM,SAASG,EAAoB,SAEtEG,MACFN,EAAQ,aAAa,KAAK,YAAY,OAAOM,GAAW;AAAA,MACtD,KAAK;AAAA,MACL,MAAM;AAAA,IAClB,CAAW,EAAE,cAEIG,MAGT,KAAK,YAAY,QAAQA,KAGtBT;AAAA,EACT;AAAA,EACA,qBAAqB;AACnB,UAAMA,IAAU,KAAK,eAAc;AACnC,WAAI,KAAK,eACPA,EAAQ,UAAU,KAAK,YAAY,mBAAkB,CAAE,GAElDA;AAAA,EACT;AAAA,EACA,eAAe;AACb,UAAMA,IAAU,KAAK,eAAc;AACnC,WAAI,KAAK,eACPA,EAAQ,UAAU,KAAK,YAAY,aAAY,CAAE,GAE5CA;AAAA,EACT;AAAA,EACA,WAAWE,GAAM;AACf,UAAMF,IAAU,IAAIQ,EAAa;AACjC,WAAIN,KAAMF,EAAQ,UAAU,KAAK,eAAe,IAAI,IAAIE,CAAI,CAAC,GACtDF,EAAQ,UAAU,KAAK,cAAc,KAAK,YAAY,WAAWE,CAAI,IAAI,MAAM,WAAWA,CAAI,CAAC;AAAA,EACxG;AAAA,EACA,iBAAiBH,GAAO;AACtB,QAAIW,GAAuBC;AAC3B,WAAO;AAAA,MACL,GAAGZ;AAAA,MACH,oBAAoBW,IAAwBX,EAAM,qBAAqB,OAAO,SAASW,EAAsB,oBAAoB,KAAK,iBAAiBC,IAAyBZ,EAAM,qBAAqB,OAAO,SAASY,EAAuB,gBAAgBZ,EAAM;AAAA,IAC9Q;AAAA,EACE;AAAA,EACA,WAAWE,GAAUF,GAAOG,GAAM;AAChC,WAAIH,MAAU,WACZA,IAAQ,CAAA,IAENG,MAAS,WACXA,IAAO,KAEF,KAAK,SAASD,GAAU,MAAMF,GAAOG,CAAI;AAAA,EAClD;AAAA,EACA,WAAWH,GAAO;AAChB,WAAO,MAAM,WAAWA,CAAK,MAAM,CAAC,KAAK,eAAe,KAAK,YAAY,WAAW,KAAK,iBAAiBA,CAAK,CAAC;AAAA,EAClH;AAAA,EACA,UAAUa,GAAKb,GAAO;AACpB,IAAIA,MAAU,WACZA,IAAQ,CAAA;AAEV,QAAI,CAAC,GAAGC,CAAO,IAAI,MAAM,UAAUY,GAAKb,CAAK;AAC7C,QAAI,KAAK,aAAa;AACpB,UAAIc;AACJ,OAAC,GAAGA,CAAc,IAAI,MAAM,UAAU,GAAG,KAAK,iBAAiBd,CAAK,CAAC,GACrEC,IAAUA,EAAQ,UAAUa,CAAc;AAAA,IAC5C;AACA,WAAO,CAAC,GAAGb,CAAO;AAAA,EACpB;AAAA,EACA,cAAcY,GAAKb,GAAO;AACxB,IAAIA,MAAU,WACZA,IAAQ,CAAA;AAEV,QAAI,CAAC,GAAGC,CAAO,IAAI,MAAM,cAAcY,GAAKb,CAAK;AACjD,QAAI,KAAK,aAAa;AACpB,UAAIc;AACJ,OAAC,GAAGA,CAAc,IAAI,MAAM,cAAc,GAAG,KAAK,iBAAiBd,CAAK,CAAC,GACzEC,IAAUA,EAAQ,UAAUa,CAAc;AAAA,IAC5C;AACA,WAAO,CAAC,GAAGb,CAAO;AAAA,EACpB;AAAA,EACA,QAAQ;AACN,QAAIc;AACJ,KAACA,IAAoB,KAAK,gBAAgB,QAAQA,EAAkB,MAAK,GACzE,KAAK,cAAc,QAAQ,CAAAtB,MAAKA,EAAE,MAAK,CAAE;AAAA,EAC3C;AAAA,EACA,IAAI,QAAQ;AACV,WAAO,KAAK,aAAa,KAAK,WAAW,QAAQ,KAAK,cAAc,KAAK,YAAY,QAAQ;AAAA,EAC/F;AAAA,EACA,IAAI,MAAMuB,GAAO;AACf,IAAI,KAAK,cACP,KAAK,WAAW,QAAQA,GACxB,KAAK,cAAc,KAAK,YACxB,KAAK,eAAc,KACd,MAAM,QAAQA;AAAA,EACvB;AAAA,EACA,IAAI,gBAAgB;AAClB,WAAO,KAAK,aAAa,KAAK,WAAW,gBAAgB,KAAK,cAAc,KAAK,YAAY,gBAAgB;AAAA,EAC/G;AAAA,EACA,IAAI,cAAcC,GAAe;AAC/B,IAAI,KAAK,cACP,KAAK,WAAW,gBAAgBA,GAChC,KAAK,cAAc,KAAK,YACxB,KAAK,eAAc,KACd,MAAM,gBAAgBA;AAAA,EAC/B;AAAA,EACA,IAAI,aAAa;AACf,WAAO,KAAK,aAAa,KAAK,WAAW,aAAa,KAAK,cAAc,KAAK,YAAY,aAAa;AAAA,EACzG;AAAA,EACA,IAAI,WAAWC,GAAY;AACzB,QAAI,KAAK,YAAY;AACnB,WAAK,WAAW,aAAaA,GAC7B,KAAK,cAAc,KAAK,YACxB,KAAK,eAAc;AACnB;AAAA,IACF;AACA,QAAID,IAAgB,OAAOC,CAAU;AAGrC,IAAI,KAAK,gBACP,KAAK,YAAY,aAAaA,GAC9BD,IAAgB,KAAK,YAAY,gBAEnC,KAAK,gBAAgBA;AAAA,EACvB;AAAA,EACA,IAAI,eAAe;AACjB,WAAO,KAAK,cAAc,KAAK,YAAY,eAAe;AAAA,EAC5D;AAAA,EACA,IAAI,aAAa;AACf,QAAIE;AACJ,WAAO,IAASA,IAAqB,KAAK,gBAAgB,QAAgBA,EAAmB;AAAA,EAC/F;AAAA,EACA,IAAI,WAAW;AACb,QAAIC;AACJ,WAAO,IAASA,IAAqB,KAAK,gBAAgB,QAAgBA,EAAmB;AAAA,EAC/F;AAAA,EACA,OAAOC,GAASC,GAAO;AACrB,UAAMrB,IAAU,IAAIQ,EAAa;AACjC,WAAI,KAAK,eACPR,EAAQ,UAAU,KAAK,YAAY,OAAOoB,GAASC,CAAK,CAAC,EAExD,UAAU,KAAK,gBAAgB,GAE3BrB;AAAA,EACT;AAAA,EACA,IAAI,QAAQ;AACV,QAAIsB;AACJ,WAAO;AAAA,MACL,GAAG,MAAM;AAAA,MACT,gBAAgB,KAAK;AAAA,MACrB,eAAe,KAAK,cAAc,IAAI,CAAA9B,MAAKA,EAAE,KAAK;AAAA,MAClD,gBAAgB,KAAK;AAAA,MACrB,cAAc8B,IAAqB,KAAK,gBAAgB,OAAO,SAASA,EAAmB;AAAA,IACjG;AAAA,EACE;AAAA,EACA,IAAI,MAAMC,GAAO;AACf,UAAM;AAAA,MACJ,eAAAC;AAAA,MACA,gBAAAC;AAAA,MACA,aAAAC;AAAA,MACA,GAAGC;AAAA,IACT,IAAQJ;AACJ,IAAIC,KAAe,KAAK,cAAc,QAAQ,CAAChC,GAAGoC,MAAOpC,EAAE,QAAQgC,EAAcI,CAAE,CAAC,GAChFH,KAAkB,SACpB,KAAK,cAAcA,GACnB,KAAK,YAAY,QAAQC,IAE3B,MAAM,QAAQC;AAAA,EAChB;AAAA,EACA,aAAaP,GAASC,GAAOtB,GAAO;AAClC,WAAO,KAAK,cAAc,KAAK,YAAY,aAAaqB,GAASC,GAAOtB,CAAK,IAAI;AAAA,EACnF;AAAA,EACA,YAAYqB,GAASC,GAAO;AAC1B,WAAO,KAAK,cAAc,KAAK,YAAY,YAAYD,GAASC,CAAK,IAAI,MAAM,YAAYD,GAASC,CAAK;AAAA,EAC3G;AAAA,EACA,WAAW;AACT,IAAI,KAAK,eAAa,KAAK,YAAY,SAAQ,GAC/C,MAAM,SAAQ;AAAA,EAChB;AAAA,EACA,gBAAgBQ,GAAWC,GAAW;AACpC,WAAO,KAAK,cAAc,KAAK,YAAY,gBAAgBD,GAAWC,CAAS,IAAI,MAAM,gBAAgBD,GAAWC,CAAS;AAAA,EAC/H;AAAA,EACA,IAAI,YAAY;AACd,WAAO,KAAK,cAAc,KAAK,YAAY,YAAY,KAAK;AAAA,EAC9D;AAAA,EACA,IAAI,UAAUC,GAAW;AACvB,SAAK,aAAaA;AAAA,EACpB;AAAA,EACA,IAAI,QAAQ;AACV,WAAO,KAAK,cAAc,KAAK,YAAY,QAAQ,KAAK;AAAA,EAC1D;AAAA,EACA,IAAI,MAAMC,GAAO;AACf,SAAK,SAASA;AAAA,EAChB;AAAA,EACA,IAAI,cAAc;AAChB,WAAO,KAAK,cAAc,KAAK,YAAY,cAAc,KAAK;AAAA,EAChE;AAAA,EACA,IAAI,YAAYC,GAAa;AAC3B,SAAK,eAAeA;AAAA,EACtB;AAAA,EACA,IAAI,UAAU;AACZ,WAAO,KAAK,cAAc,KAAK,YAAY,UAAU,KAAK;AAAA,EAC5D;AAAA,EACA,IAAI,QAAQC,GAAS;AACnB,SAAK,WAAWA;AAAA,EAClB;AAAA,EACA,WAAWC,GAAM;AACf,WAAO,MAAM,QAAQA,CAAI,IAAI,KAAK,cAAc,MAAM,CAAC3C,GAAGoC,MAAO;AAC/D,UAAI,CAACO,EAAKP,CAAE,EAAG;AACf,YAAM;AAAA,QACJ,MAAMQ;AAAA,QACN,GAAGC;AAAA,MACX,IAAUF,EAAKP,CAAE;AACX,aAAOU,EAAe9C,GAAG6C,CAAQ,KAAK7C,EAAE,WAAW4C,CAAO;AAAA,IAC5D,CAAC,IAAI,MAAM,WAAWD,CAAI;AAAA,EAC5B;AAAA,EACA,iBAAiBpB,GAAO;AACtB,QAAIwB;AACJ,WAAO,IAASA,IAAqB,KAAK,gBAAgB,QAAgBA,EAAmB,iBAAiBxB,CAAK;AAAA,EACrH;AACF;AAKA1B,EAAc,WAAW;AAAA,EACvB,GAAGC,EAAO;AAAA,EACV,UAAU,CAACW,GAAUL,GAAQG,GAAOG,MAAS;AAC3C,QAAI,CAACN,EAAO,cAAc,OAAQ;AAClC,UAAMQ,IAAaR,EAAO,eAGpB4C,IAAS5C,EAAO,cAAc,IAAI,CAACJ,GAAGiD,MAAU;AACpD,YAAMC,IAAY9C,EAAO,gBAAgBJ,GACnCmD,IAAgBD,IAAYlD,EAAE,aAAa,SAASA,EAAE,gBAAgBA,EAAE,aAAa,QAAQoD,EAAU,UAAU;AACvH,aAAIpD,EAAE,kBAAkBY,KACtBZ,EAAE,MAAK,GACPA,EAAE,OAAOY,GAAY;AAAA,QACnB,KAAK;AAAA,MACf,CAAS,KACSsC,KACVlD,EAAE,OAAOmD,CAAa,GAExBnD,EAAE,OAAOS,GAAUL,EAAO,iBAAiBG,CAAK,CAAC,GACjDP,EAAE,WAAWU,CAAI,GACV;AAAA,QACL,OAAAuC;AAAA,QACA,QAAQjD,EAAE,cAAc;AAAA,QACxB,qBAAqBA,EAAE,oBAAoB,GAAG,KAAK,IAAImD,GAAenD,EAAE,gBAAgBA,EAAE,aAAa,QAAQoD,EAAU,UAAU,CAAC,CAAC;AAAA,MAC7I;AAAA,IACI,CAAC;AAGD,WAAAJ,EAAO,KAAK,CAACK,GAAIC,MAAOA,EAAG,SAASD,EAAG,UAAUC,EAAG,sBAAsBD,EAAG,mBAAmB,GACzFjD,EAAO,cAAc4C,EAAO,CAAC,EAAE,KAAK;AAAA,EAC7C;AACF;AACAO,EAAM,gBAAgB1D;","x_google_ignoreList":[0]}
@@ -1,70 +0,0 @@
1
- import m from "./pattern.js";
2
- import c from "../core/holder.js";
3
- import l from "../core/change-details.js";
4
- import { DIRECTION as p } from "../core/utils.js";
5
- import d from "../core/continuous-tail-details.js";
6
- import "./base.js";
7
- import "./factory.js";
8
- import "./pattern/input-definition.js";
9
- import "./regexp.js";
10
- class r extends m {
11
- constructor(e) {
12
- super({
13
- ...r.DEFAULTS,
14
- ...e
15
- });
16
- }
17
- updateOptions(e) {
18
- super.updateOptions(e);
19
- }
20
- _update(e) {
21
- const {
22
- enum: t,
23
- ...s
24
- } = e;
25
- if (t) {
26
- const i = t.map((h) => h.length), a = Math.min(...i), n = Math.max(...i) - a;
27
- s.mask = "*".repeat(a), n && (s.mask += "[" + "*".repeat(n) + "]"), this.enum = t;
28
- }
29
- super._update(s);
30
- }
31
- _appendCharRaw(e, t) {
32
- t === void 0 && (t = {});
33
- const s = Math.min(this.nearestInputPos(0, p.FORCE_RIGHT), this.value.length), i = this.enum.filter((a) => this.matchValue(a, this.unmaskedValue + e, s));
34
- if (i.length) {
35
- i.length === 1 && this._forEachBlocksInRange(0, this.value.length, (n, h) => {
36
- const u = i[0][h];
37
- h >= this.value.length || u === n.value || (n.reset(), n._appendChar(u, t));
38
- });
39
- const a = super._appendCharRaw(i[0][this.value.length], t);
40
- return i.length === 1 && i[0].slice(this.unmaskedValue.length).split("").forEach((n) => a.aggregate(super._appendCharRaw(n))), a;
41
- }
42
- return new l({
43
- skip: !this.isComplete
44
- });
45
- }
46
- extractTail(e, t) {
47
- return e === void 0 && (e = 0), t === void 0 && (t = this.displayValue.length), new d("", e);
48
- }
49
- remove(e, t) {
50
- if (e === void 0 && (e = 0), t === void 0 && (t = this.displayValue.length), e === t) return new l();
51
- const s = Math.min(super.nearestInputPos(0, p.FORCE_RIGHT), this.value.length);
52
- let i;
53
- for (i = e; i >= 0 && !(this.enum.filter((h) => this.matchValue(h, this.value.slice(s, i), s)).length > 1); --i)
54
- ;
55
- const a = super.remove(i, t);
56
- return a.tailShift += i - e, a;
57
- }
58
- get isComplete() {
59
- return this.enum.indexOf(this.value) >= 0;
60
- }
61
- }
62
- r.DEFAULTS = {
63
- ...m.DEFAULTS,
64
- matchValue: (o, e, t) => o.indexOf(e, t) === t
65
- };
66
- c.MaskedEnum = r;
67
- export {
68
- r as default
69
- };
70
- //# sourceMappingURL=enum.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"enum.js","sources":["../../../../../node_modules/imask/esm/masked/enum.js"],"sourcesContent":["import MaskedPattern from './pattern.js';\nimport IMask from '../core/holder.js';\nimport ChangeDetails from '../core/change-details.js';\nimport { DIRECTION } from '../core/utils.js';\nimport ContinuousTailDetails from '../core/continuous-tail-details.js';\nimport './base.js';\nimport './factory.js';\nimport './pattern/chunk-tail-details.js';\nimport './pattern/cursor.js';\nimport './pattern/fixed-definition.js';\nimport './pattern/input-definition.js';\nimport './regexp.js';\n\n/** Pattern which validates enum values */\nclass MaskedEnum extends MaskedPattern {\n constructor(opts) {\n super({\n ...MaskedEnum.DEFAULTS,\n ...opts\n }); // mask will be created in _update\n }\n updateOptions(opts) {\n super.updateOptions(opts);\n }\n _update(opts) {\n const {\n enum: enum_,\n ...eopts\n } = opts;\n if (enum_) {\n const lengths = enum_.map(e => e.length);\n const requiredLength = Math.min(...lengths);\n const optionalLength = Math.max(...lengths) - requiredLength;\n eopts.mask = '*'.repeat(requiredLength);\n if (optionalLength) eopts.mask += '[' + '*'.repeat(optionalLength) + ']';\n this.enum = enum_;\n }\n super._update(eopts);\n }\n _appendCharRaw(ch, flags) {\n if (flags === void 0) {\n flags = {};\n }\n const matchFrom = Math.min(this.nearestInputPos(0, DIRECTION.FORCE_RIGHT), this.value.length);\n const matches = this.enum.filter(e => this.matchValue(e, this.unmaskedValue + ch, matchFrom));\n if (matches.length) {\n if (matches.length === 1) {\n this._forEachBlocksInRange(0, this.value.length, (b, bi) => {\n const mch = matches[0][bi];\n if (bi >= this.value.length || mch === b.value) return;\n b.reset();\n b._appendChar(mch, flags);\n });\n }\n const d = super._appendCharRaw(matches[0][this.value.length], flags);\n if (matches.length === 1) {\n matches[0].slice(this.unmaskedValue.length).split('').forEach(mch => d.aggregate(super._appendCharRaw(mch)));\n }\n return d;\n }\n return new ChangeDetails({\n skip: !this.isComplete\n });\n }\n extractTail(fromPos, toPos) {\n if (fromPos === void 0) {\n fromPos = 0;\n }\n if (toPos === void 0) {\n toPos = this.displayValue.length;\n }\n // just drop tail\n return new ContinuousTailDetails('', fromPos);\n }\n remove(fromPos, toPos) {\n if (fromPos === void 0) {\n fromPos = 0;\n }\n if (toPos === void 0) {\n toPos = this.displayValue.length;\n }\n if (fromPos === toPos) return new ChangeDetails();\n const matchFrom = Math.min(super.nearestInputPos(0, DIRECTION.FORCE_RIGHT), this.value.length);\n let pos;\n for (pos = fromPos; pos >= 0; --pos) {\n const matches = this.enum.filter(e => this.matchValue(e, this.value.slice(matchFrom, pos), matchFrom));\n if (matches.length > 1) break;\n }\n const details = super.remove(pos, toPos);\n details.tailShift += pos - fromPos;\n return details;\n }\n get isComplete() {\n return this.enum.indexOf(this.value) >= 0;\n }\n}\n/** Match enum value */\nMaskedEnum.DEFAULTS = {\n ...MaskedPattern.DEFAULTS,\n matchValue: (estr, istr, matchFrom) => estr.indexOf(istr, matchFrom) === matchFrom\n};\nIMask.MaskedEnum = MaskedEnum;\n\nexport { MaskedEnum as default };\n"],"names":["MaskedEnum","MaskedPattern","opts","enum_","eopts","lengths","e","requiredLength","optionalLength","ch","flags","matchFrom","DIRECTION","matches","b","bi","mch","d","ChangeDetails","fromPos","toPos","ContinuousTailDetails","pos","details","estr","istr","IMask"],"mappings":"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","x_google_ignoreList":[0]}
@@ -1,47 +0,0 @@
1
- import { isObject as t, pick as o, isString as f } from "../core/utils.js";
2
- import r from "../core/holder.js";
3
- function d(e) {
4
- if (e == null) throw new Error("mask property should be defined");
5
- return e instanceof RegExp ? r.MaskedRegExp : f(e) ? r.MaskedPattern : e === Date ? r.MaskedDate : e === Number ? r.MaskedNumber : Array.isArray(e) || e === Array ? r.MaskedDynamic : r.Masked && e.prototype instanceof r.Masked ? e : r.Masked && e instanceof r.Masked ? e.constructor : e instanceof Function ? r.MaskedFunction : (console.warn("Mask not found for mask", e), r.Masked);
6
- }
7
- function k(e) {
8
- if (!e) throw new Error("Options in not defined");
9
- if (r.Masked) {
10
- if (e.prototype instanceof r.Masked) return {
11
- mask: e
12
- };
13
- const {
14
- mask: n = void 0,
15
- ...a
16
- } = e instanceof r.Masked ? {
17
- mask: e
18
- } : t(e) && e.mask instanceof r.Masked ? e : {};
19
- if (n) {
20
- const s = n.mask;
21
- return {
22
- ...o(n, (c, i) => !i.startsWith("_")),
23
- mask: n.constructor,
24
- _mask: s,
25
- ...a
26
- };
27
- }
28
- }
29
- return t(e) ? {
30
- ...e
31
- } : {
32
- mask: e
33
- };
34
- }
35
- function u(e) {
36
- if (r.Masked && e instanceof r.Masked) return e;
37
- const n = k(e), a = d(n.mask);
38
- if (!a) throw new Error("Masked class is not found for provided mask " + n.mask + ", appropriate module needs to be imported manually before creating mask.");
39
- return n.mask === a && delete n.mask, n._mask && (n.mask = n._mask, delete n._mask), new a(n);
40
- }
41
- r.createMask = u;
42
- export {
43
- u as default,
44
- d as maskedClass,
45
- k as normalizeOpts
46
- };
47
- //# sourceMappingURL=factory.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"factory.js","sources":["../../../../../node_modules/imask/esm/masked/factory.js"],"sourcesContent":["import { isString, isObject, pick } from '../core/utils.js';\nimport IMask from '../core/holder.js';\n\n// TODO can't use overloads here because of https://github.com/microsoft/TypeScript/issues/50754\n// export function maskedClass(mask: string): typeof MaskedPattern;\n// export function maskedClass(mask: DateConstructor): typeof MaskedDate;\n// export function maskedClass(mask: NumberConstructor): typeof MaskedNumber;\n// export function maskedClass(mask: Array<any> | ArrayConstructor): typeof MaskedDynamic;\n// export function maskedClass(mask: MaskedDate): typeof MaskedDate;\n// export function maskedClass(mask: MaskedNumber): typeof MaskedNumber;\n// export function maskedClass(mask: MaskedEnum): typeof MaskedEnum;\n// export function maskedClass(mask: MaskedRange): typeof MaskedRange;\n// export function maskedClass(mask: MaskedRegExp): typeof MaskedRegExp;\n// export function maskedClass(mask: MaskedFunction): typeof MaskedFunction;\n// export function maskedClass(mask: MaskedPattern): typeof MaskedPattern;\n// export function maskedClass(mask: MaskedDynamic): typeof MaskedDynamic;\n// export function maskedClass(mask: Masked): typeof Masked;\n// export function maskedClass(mask: typeof Masked): typeof Masked;\n// export function maskedClass(mask: typeof MaskedDate): typeof MaskedDate;\n// export function maskedClass(mask: typeof MaskedNumber): typeof MaskedNumber;\n// export function maskedClass(mask: typeof MaskedEnum): typeof MaskedEnum;\n// export function maskedClass(mask: typeof MaskedRange): typeof MaskedRange;\n// export function maskedClass(mask: typeof MaskedRegExp): typeof MaskedRegExp;\n// export function maskedClass(mask: typeof MaskedFunction): typeof MaskedFunction;\n// export function maskedClass(mask: typeof MaskedPattern): typeof MaskedPattern;\n// export function maskedClass(mask: typeof MaskedDynamic): typeof MaskedDynamic;\n// export function maskedClass<Mask extends typeof Masked> (mask: Mask): Mask;\n// export function maskedClass(mask: RegExp): typeof MaskedRegExp;\n// export function maskedClass(mask: (value: string, ...args: any[]) => boolean): typeof MaskedFunction;\n\n/** Get Masked class by mask type */\nfunction maskedClass(mask) /* TODO */{\n if (mask == null) throw new Error('mask property should be defined');\n if (mask instanceof RegExp) return IMask.MaskedRegExp;\n if (isString(mask)) return IMask.MaskedPattern;\n if (mask === Date) return IMask.MaskedDate;\n if (mask === Number) return IMask.MaskedNumber;\n if (Array.isArray(mask) || mask === Array) return IMask.MaskedDynamic;\n if (IMask.Masked && mask.prototype instanceof IMask.Masked) return mask;\n if (IMask.Masked && mask instanceof IMask.Masked) return mask.constructor;\n if (mask instanceof Function) return IMask.MaskedFunction;\n console.warn('Mask not found for mask', mask); // eslint-disable-line no-console\n return IMask.Masked;\n}\nfunction normalizeOpts(opts) {\n if (!opts) throw new Error('Options in not defined');\n if (IMask.Masked) {\n if (opts.prototype instanceof IMask.Masked) return {\n mask: opts\n };\n\n /*\n handle cases like:\n 1) opts = Masked\n 2) opts = { mask: Masked, ...instanceOpts }\n */\n const {\n mask = undefined,\n ...instanceOpts\n } = opts instanceof IMask.Masked ? {\n mask: opts\n } : isObject(opts) && opts.mask instanceof IMask.Masked ? opts : {};\n if (mask) {\n const _mask = mask.mask;\n return {\n ...pick(mask, (_, k) => !k.startsWith('_')),\n mask: mask.constructor,\n _mask,\n ...instanceOpts\n };\n }\n }\n if (!isObject(opts)) return {\n mask: opts\n };\n return {\n ...opts\n };\n}\n\n// TODO can't use overloads here because of https://github.com/microsoft/TypeScript/issues/50754\n\n// From masked\n// export default function createMask<Opts extends Masked, ReturnMasked=Opts> (opts: Opts): ReturnMasked;\n// // From masked class\n// export default function createMask<Opts extends MaskedOptions<typeof Masked>, ReturnMasked extends Masked=InstanceType<Opts['mask']>> (opts: Opts): ReturnMasked;\n// export default function createMask<Opts extends MaskedOptions<typeof MaskedDate>, ReturnMasked extends MaskedDate=MaskedDate<Opts['parent']>> (opts: Opts): ReturnMasked;\n// export default function createMask<Opts extends MaskedOptions<typeof MaskedNumber>, ReturnMasked extends MaskedNumber=MaskedNumber<Opts['parent']>> (opts: Opts): ReturnMasked;\n// export default function createMask<Opts extends MaskedOptions<typeof MaskedEnum>, ReturnMasked extends MaskedEnum=MaskedEnum<Opts['parent']>> (opts: Opts): ReturnMasked;\n// export default function createMask<Opts extends MaskedOptions<typeof MaskedRange>, ReturnMasked extends MaskedRange=MaskedRange<Opts['parent']>> (opts: Opts): ReturnMasked;\n// export default function createMask<Opts extends MaskedOptions<typeof MaskedRegExp>, ReturnMasked extends MaskedRegExp=MaskedRegExp<Opts['parent']>> (opts: Opts): ReturnMasked;\n// export default function createMask<Opts extends MaskedOptions<typeof MaskedFunction>, ReturnMasked extends MaskedFunction=MaskedFunction<Opts['parent']>> (opts: Opts): ReturnMasked;\n// export default function createMask<Opts extends MaskedOptions<typeof MaskedPattern>, ReturnMasked extends MaskedPattern=MaskedPattern<Opts['parent']>> (opts: Opts): ReturnMasked;\n// export default function createMask<Opts extends MaskedOptions<typeof MaskedDynamic>, ReturnMasked extends MaskedDynamic=MaskedDynamic<Opts['parent']>> (opts: Opts): ReturnMasked;\n// // From mask opts\n// export default function createMask<Opts extends MaskedOptions<Masked>, ReturnMasked=Opts extends MaskedOptions<infer M> ? M : never> (opts: Opts): ReturnMasked;\n// export default function createMask<Opts extends MaskedNumberOptions, ReturnMasked extends MaskedNumber=MaskedNumber<Opts['parent']>> (opts: Opts): ReturnMasked;\n// export default function createMask<Opts extends MaskedDateFactoryOptions, ReturnMasked extends MaskedDate=MaskedDate<Opts['parent']>> (opts: Opts): ReturnMasked;\n// export default function createMask<Opts extends MaskedEnumOptions, ReturnMasked extends MaskedEnum=MaskedEnum<Opts['parent']>> (opts: Opts): ReturnMasked;\n// export default function createMask<Opts extends MaskedRangeOptions, ReturnMasked extends MaskedRange=MaskedRange<Opts['parent']>> (opts: Opts): ReturnMasked;\n// export default function createMask<Opts extends MaskedPatternOptions, ReturnMasked extends MaskedPattern=MaskedPattern<Opts['parent']>> (opts: Opts): ReturnMasked;\n// export default function createMask<Opts extends MaskedDynamicOptions, ReturnMasked extends MaskedDynamic=MaskedDynamic<Opts['parent']>> (opts: Opts): ReturnMasked;\n// export default function createMask<Opts extends MaskedOptions<RegExp>, ReturnMasked extends MaskedRegExp=MaskedRegExp<Opts['parent']>> (opts: Opts): ReturnMasked;\n// export default function createMask<Opts extends MaskedOptions<Function>, ReturnMasked extends MaskedFunction=MaskedFunction<Opts['parent']>> (opts: Opts): ReturnMasked;\n\n/** Creates new {@link Masked} depending on mask type */\nfunction createMask(opts) {\n if (IMask.Masked && opts instanceof IMask.Masked) return opts;\n const nOpts = normalizeOpts(opts);\n const MaskedClass = maskedClass(nOpts.mask);\n if (!MaskedClass) throw new Error(\"Masked class is not found for provided mask \" + nOpts.mask + \", appropriate module needs to be imported manually before creating mask.\");\n if (nOpts.mask === MaskedClass) delete nOpts.mask;\n if (nOpts._mask) {\n nOpts.mask = nOpts._mask;\n delete nOpts._mask;\n }\n return new MaskedClass(nOpts);\n}\nIMask.createMask = createMask;\n\nexport { createMask as default, maskedClass, normalizeOpts };\n"],"names":["maskedClass","mask","IMask","isString","normalizeOpts","opts","instanceOpts","isObject","_mask","pick","_","k","createMask","nOpts","MaskedClass"],"mappings":";;AA+BA,SAASA,EAAYC,GAAgB;AACnC,MAAIA,KAAQ,KAAM,OAAM,IAAI,MAAM,iCAAiC;AACnE,SAAIA,aAAgB,SAAeC,EAAM,eACrCC,EAASF,CAAI,IAAUC,EAAM,gBAC7BD,MAAS,OAAaC,EAAM,aAC5BD,MAAS,SAAeC,EAAM,eAC9B,MAAM,QAAQD,CAAI,KAAKA,MAAS,QAAcC,EAAM,gBACpDA,EAAM,UAAUD,EAAK,qBAAqBC,EAAM,SAAeD,IAC/DC,EAAM,UAAUD,aAAgBC,EAAM,SAAeD,EAAK,cAC1DA,aAAgB,WAAiBC,EAAM,kBAC3C,QAAQ,KAAK,2BAA2BD,CAAI,GACrCC,EAAM;AACf;AACA,SAASE,EAAcC,GAAM;AAC3B,MAAI,CAACA,EAAM,OAAM,IAAI,MAAM,wBAAwB;AACnD,MAAIH,EAAM,QAAQ;AAChB,QAAIG,EAAK,qBAAqBH,EAAM,OAAQ,QAAO;AAAA,MACjD,MAAMG;AAAA,IACZ;AAOI,UAAM;AAAA,MACJ,MAAAJ,IAAO;AAAA,MACP,GAAGK;AAAA,IACT,IAAQD,aAAgBH,EAAM,SAAS;AAAA,MACjC,MAAMG;AAAA,IACZ,IAAQE,EAASF,CAAI,KAAKA,EAAK,gBAAgBH,EAAM,SAASG,IAAO,CAAA;AACjE,QAAIJ,GAAM;AACR,YAAMO,IAAQP,EAAK;AACnB,aAAO;AAAA,QACL,GAAGQ,EAAKR,GAAM,CAACS,GAAGC,MAAM,CAACA,EAAE,WAAW,GAAG,CAAC;AAAA,QAC1C,MAAMV,EAAK;AAAA,QACX,OAAAO;AAAA,QACA,GAAGF;AAAA,MACX;AAAA,IACI;AAAA,EACF;AACA,SAAKC,EAASF,CAAI,IAGX;AAAA,IACL,GAAGA;AAAA,EACP,IAL8B;AAAA,IAC1B,MAAMA;AAAA,EACV;AAIA;AA4BA,SAASO,EAAWP,GAAM;AACxB,MAAIH,EAAM,UAAUG,aAAgBH,EAAM,OAAQ,QAAOG;AACzD,QAAMQ,IAAQT,EAAcC,CAAI,GAC1BS,IAAcd,EAAYa,EAAM,IAAI;AAC1C,MAAI,CAACC,EAAa,OAAM,IAAI,MAAM,iDAAiDD,EAAM,OAAO,0EAA0E;AAC1K,SAAIA,EAAM,SAASC,KAAa,OAAOD,EAAM,MACzCA,EAAM,UACRA,EAAM,OAAOA,EAAM,OACnB,OAAOA,EAAM,QAER,IAAIC,EAAYD,CAAK;AAC9B;AACAX,EAAM,aAAaU;","x_google_ignoreList":[0]}
@@ -1,24 +0,0 @@
1
- import e from "./base.js";
2
- import t from "../core/holder.js";
3
- import "../core/change-details.js";
4
- class s extends e {
5
- /** */
6
- /** Enable characters overwriting */
7
- /** */
8
- /** */
9
- /** */
10
- updateOptions(a) {
11
- super.updateOptions(a);
12
- }
13
- _update(a) {
14
- super._update({
15
- ...a,
16
- validate: a.mask
17
- });
18
- }
19
- }
20
- t.MaskedFunction = s;
21
- export {
22
- s as default
23
- };
24
- //# sourceMappingURL=function.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"function.js","sources":["../../../../../node_modules/imask/esm/masked/function.js"],"sourcesContent":["import Masked from './base.js';\nimport IMask from '../core/holder.js';\nimport '../core/change-details.js';\nimport '../core/continuous-tail-details.js';\nimport '../core/utils.js';\n\n/** Masking by custom Function */\nclass MaskedFunction extends Masked {\n /** */\n\n /** Enable characters overwriting */\n\n /** */\n\n /** */\n\n /** */\n\n updateOptions(opts) {\n super.updateOptions(opts);\n }\n _update(opts) {\n super._update({\n ...opts,\n validate: opts.mask\n });\n }\n}\nIMask.MaskedFunction = MaskedFunction;\n\nexport { MaskedFunction as default };\n"],"names":["MaskedFunction","Masked","opts","IMask"],"mappings":";;;AAOA,MAAMA,UAAuBC,EAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAWlC,cAAcC,GAAM;AAClB,UAAM,cAAcA,CAAI;AAAA,EAC1B;AAAA,EACA,QAAQA,GAAM;AACZ,UAAM,QAAQ;AAAA,MACZ,GAAGA;AAAA,MACH,UAAUA,EAAK;AAAA,IACrB,CAAK;AAAA,EACH;AACF;AACAC,EAAM,iBAAiBH;","x_google_ignoreList":[0]}
@@ -1,213 +0,0 @@
1
- import { escapeRegExp as d, DIRECTION as n } from "../core/utils.js";
2
- import m from "../core/change-details.js";
3
- import _ from "./base.js";
4
- import x from "../core/holder.js";
5
- var S;
6
- class i extends _ {
7
- /** Single char */
8
- /** Single char */
9
- /** Array of single chars */
10
- /** */
11
- /** */
12
- /** Digits after point */
13
- /** Flag to remove leading and trailing zeros in the end of editing */
14
- /** Flag to pad trailing zeros after point in the end of editing */
15
- /** Enable characters overwriting */
16
- /** */
17
- /** */
18
- /** */
19
- /** Format typed value to string */
20
- /** Parse string to get typed value */
21
- constructor(e) {
22
- super({
23
- ...i.DEFAULTS,
24
- ...e
25
- });
26
- }
27
- updateOptions(e) {
28
- super.updateOptions(e);
29
- }
30
- _update(e) {
31
- super._update(e), this._updateRegExps();
32
- }
33
- _updateRegExps() {
34
- const e = "^" + (this.allowNegative ? "[+|\\-]?" : ""), t = "\\d*", a = (this.scale ? "(" + d(this.radix) + "\\d{0," + this.scale + "})?" : "") + "$";
35
- this._numberRegExp = new RegExp(e + t + a), this._mapToRadixRegExp = new RegExp("[" + this.mapToRadix.map(d).join("") + "]", "g"), this._thousandsSeparatorRegExp = new RegExp(d(this.thousandsSeparator), "g");
36
- }
37
- _removeThousandsSeparators(e) {
38
- return e.replace(this._thousandsSeparatorRegExp, "");
39
- }
40
- _insertThousandsSeparators(e) {
41
- const t = e.split(this.radix);
42
- return t[0] = t[0].replace(/\B(?=(\d{3})+(?!\d))/g, this.thousandsSeparator), t.join(this.radix);
43
- }
44
- doPrepareChar(e, t) {
45
- t === void 0 && (t = {});
46
- const [a, s] = super.doPrepareChar(this._removeThousandsSeparators(this.scale && this.mapToRadix.length && /*
47
- radix should be mapped when
48
- 1) input is done from keyboard = flags.input && flags.raw
49
- 2) unmasked value is set = !flags.input && !flags.raw
50
- and should not be mapped when
51
- 1) value is set = flags.input && !flags.raw
52
- 2) raw value is set = !flags.input && flags.raw
53
- */
54
- (t.input && t.raw || !t.input && !t.raw) ? e.replace(this._mapToRadixRegExp, this.radix) : e), t);
55
- return e && !a && (s.skip = !0), a && !this.allowPositive && !this.value && a !== "-" && s.aggregate(this._appendChar("-")), [a, s];
56
- }
57
- _separatorsCount(e, t) {
58
- t === void 0 && (t = !1);
59
- let a = 0;
60
- for (let s = 0; s < e; ++s)
61
- this._value.indexOf(this.thousandsSeparator, s) === s && (++a, t && (e += this.thousandsSeparator.length));
62
- return a;
63
- }
64
- _separatorsCountFromSlice(e) {
65
- return e === void 0 && (e = this._value), this._separatorsCount(this._removeThousandsSeparators(e).length, !0);
66
- }
67
- extractInput(e, t, a) {
68
- return e === void 0 && (e = 0), t === void 0 && (t = this.displayValue.length), [e, t] = this._adjustRangeWithSeparators(e, t), this._removeThousandsSeparators(super.extractInput(e, t, a));
69
- }
70
- _appendCharRaw(e, t) {
71
- t === void 0 && (t = {});
72
- const a = t.tail && t._beforeTailState ? t._beforeTailState._value : this._value, s = this._separatorsCountFromSlice(a);
73
- this._value = this._removeThousandsSeparators(this.value);
74
- const r = this._value;
75
- this._value += e;
76
- const h = this.number;
77
- let o = !isNaN(h), u = !1;
78
- if (o) {
79
- let p;
80
- this.min != null && this.min < 0 && this.number < this.min && (p = this.min), this.max != null && this.max > 0 && this.number > this.max && (p = this.max), p != null && (this.autofix ? (this._value = this.format(p, this).replace(i.UNMASKED_RADIX, this.radix), u || (u = r === this._value && !t.tail)) : o = !1), o && (o = !!this._value.match(this._numberRegExp));
81
- }
82
- let l;
83
- o ? l = new m({
84
- inserted: this._value.slice(r.length),
85
- rawInserted: u ? "" : e,
86
- skip: u
87
- }) : (this._value = r, l = new m()), this._value = this._insertThousandsSeparators(this._value);
88
- const v = t.tail && t._beforeTailState ? t._beforeTailState._value : this._value, f = this._separatorsCountFromSlice(v);
89
- return l.tailShift += (f - s) * this.thousandsSeparator.length, l;
90
- }
91
- _findSeparatorAround(e) {
92
- if (this.thousandsSeparator) {
93
- const t = e - this.thousandsSeparator.length + 1, a = this.value.indexOf(this.thousandsSeparator, t);
94
- if (a <= e) return a;
95
- }
96
- return -1;
97
- }
98
- _adjustRangeWithSeparators(e, t) {
99
- const a = this._findSeparatorAround(e);
100
- a >= 0 && (e = a);
101
- const s = this._findSeparatorAround(t);
102
- return s >= 0 && (t = s + this.thousandsSeparator.length), [e, t];
103
- }
104
- remove(e, t) {
105
- e === void 0 && (e = 0), t === void 0 && (t = this.displayValue.length), [e, t] = this._adjustRangeWithSeparators(e, t);
106
- const a = this.value.slice(0, e), s = this.value.slice(t), r = this._separatorsCount(a.length);
107
- this._value = this._insertThousandsSeparators(this._removeThousandsSeparators(a + s));
108
- const h = this._separatorsCountFromSlice(a);
109
- return new m({
110
- tailShift: (h - r) * this.thousandsSeparator.length
111
- });
112
- }
113
- nearestInputPos(e, t) {
114
- if (!this.thousandsSeparator) return e;
115
- switch (t) {
116
- case n.NONE:
117
- case n.LEFT:
118
- case n.FORCE_LEFT: {
119
- const a = this._findSeparatorAround(e - 1);
120
- if (a >= 0) {
121
- const s = a + this.thousandsSeparator.length;
122
- if (e < s || this.value.length <= s || t === n.FORCE_LEFT)
123
- return a;
124
- }
125
- break;
126
- }
127
- case n.RIGHT:
128
- case n.FORCE_RIGHT: {
129
- const a = this._findSeparatorAround(e);
130
- if (a >= 0)
131
- return a + this.thousandsSeparator.length;
132
- }
133
- }
134
- return e;
135
- }
136
- doCommit() {
137
- if (this.value) {
138
- const e = this.number;
139
- let t = e;
140
- this.min != null && (t = Math.max(t, this.min)), this.max != null && (t = Math.min(t, this.max)), t !== e && (this.unmaskedValue = this.format(t, this));
141
- let a = this.value;
142
- this.normalizeZeros && (a = this._normalizeZeros(a)), this.padFractionalZeros && this.scale > 0 && (a = this._padFractionalZeros(a)), this._value = a;
143
- }
144
- super.doCommit();
145
- }
146
- _normalizeZeros(e) {
147
- const t = this._removeThousandsSeparators(e).split(this.radix);
148
- return t[0] = t[0].replace(/^(\D*)(0*)(\d*)/, (a, s, r, h) => s + h), e.length && !/\d$/.test(t[0]) && (t[0] = t[0] + "0"), t.length > 1 && (t[1] = t[1].replace(/0*$/, ""), t[1].length || (t.length = 1)), this._insertThousandsSeparators(t.join(this.radix));
149
- }
150
- _padFractionalZeros(e) {
151
- if (!e) return e;
152
- const t = e.split(this.radix);
153
- return t.length < 2 && t.push(""), t[1] = t[1].padEnd(this.scale, "0"), t.join(this.radix);
154
- }
155
- doSkipInvalid(e, t, a) {
156
- t === void 0 && (t = {});
157
- const s = this.scale === 0 && e !== this.thousandsSeparator && (e === this.radix || e === i.UNMASKED_RADIX || this.mapToRadix.includes(e));
158
- return super.doSkipInvalid(e, t, a) && !s;
159
- }
160
- get unmaskedValue() {
161
- return this._removeThousandsSeparators(this._normalizeZeros(this.value)).replace(this.radix, i.UNMASKED_RADIX);
162
- }
163
- set unmaskedValue(e) {
164
- super.unmaskedValue = e;
165
- }
166
- get typedValue() {
167
- return this.parse(this.unmaskedValue, this);
168
- }
169
- set typedValue(e) {
170
- this.rawInputValue = this.format(e, this).replace(i.UNMASKED_RADIX, this.radix);
171
- }
172
- /** Parsed Number */
173
- get number() {
174
- return this.typedValue;
175
- }
176
- set number(e) {
177
- this.typedValue = e;
178
- }
179
- get allowNegative() {
180
- return this.min != null && this.min < 0 || this.max != null && this.max < 0;
181
- }
182
- get allowPositive() {
183
- return this.min != null && this.min > 0 || this.max != null && this.max > 0;
184
- }
185
- typedValueEquals(e) {
186
- return (super.typedValueEquals(e) || i.EMPTY_VALUES.includes(e) && i.EMPTY_VALUES.includes(this.typedValue)) && !(e === 0 && this.value === "");
187
- }
188
- }
189
- S = i;
190
- i.UNMASKED_RADIX = ".";
191
- i.EMPTY_VALUES = [..._.EMPTY_VALUES, 0];
192
- i.DEFAULTS = {
193
- ..._.DEFAULTS,
194
- mask: Number,
195
- radix: ",",
196
- thousandsSeparator: "",
197
- mapToRadix: [S.UNMASKED_RADIX],
198
- min: Number.MIN_SAFE_INTEGER,
199
- max: Number.MAX_SAFE_INTEGER,
200
- scale: 2,
201
- normalizeZeros: !0,
202
- padFractionalZeros: !1,
203
- parse: Number,
204
- format: (c) => c.toLocaleString("en-US", {
205
- useGrouping: !1,
206
- maximumFractionDigits: 20
207
- })
208
- };
209
- x.MaskedNumber = i;
210
- export {
211
- i as default
212
- };
213
- //# sourceMappingURL=number.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"number.js","sources":["../../../../../node_modules/imask/esm/masked/number.js"],"sourcesContent":["import { escapeRegExp, DIRECTION } from '../core/utils.js';\nimport ChangeDetails from '../core/change-details.js';\nimport Masked from './base.js';\nimport IMask from '../core/holder.js';\nimport '../core/continuous-tail-details.js';\n\nvar _MaskedNumber;\n/** Number mask */\nclass MaskedNumber extends Masked {\n /** Single char */\n\n /** Single char */\n\n /** Array of single chars */\n\n /** */\n\n /** */\n\n /** Digits after point */\n\n /** Flag to remove leading and trailing zeros in the end of editing */\n\n /** Flag to pad trailing zeros after point in the end of editing */\n\n /** Enable characters overwriting */\n\n /** */\n\n /** */\n\n /** */\n\n /** Format typed value to string */\n\n /** Parse string to get typed value */\n\n constructor(opts) {\n super({\n ...MaskedNumber.DEFAULTS,\n ...opts\n });\n }\n updateOptions(opts) {\n super.updateOptions(opts);\n }\n _update(opts) {\n super._update(opts);\n this._updateRegExps();\n }\n _updateRegExps() {\n const start = '^' + (this.allowNegative ? '[+|\\\\-]?' : '');\n const mid = '\\\\d*';\n const end = (this.scale ? \"(\" + escapeRegExp(this.radix) + \"\\\\d{0,\" + this.scale + \"})?\" : '') + '$';\n this._numberRegExp = new RegExp(start + mid + end);\n this._mapToRadixRegExp = new RegExp(\"[\" + this.mapToRadix.map(escapeRegExp).join('') + \"]\", 'g');\n this._thousandsSeparatorRegExp = new RegExp(escapeRegExp(this.thousandsSeparator), 'g');\n }\n _removeThousandsSeparators(value) {\n return value.replace(this._thousandsSeparatorRegExp, '');\n }\n _insertThousandsSeparators(value) {\n // https://stackoverflow.com/questions/2901102/how-to-print-a-number-with-commas-as-thousands-separators-in-javascript\n const parts = value.split(this.radix);\n parts[0] = parts[0].replace(/\\B(?=(\\d{3})+(?!\\d))/g, this.thousandsSeparator);\n return parts.join(this.radix);\n }\n doPrepareChar(ch, flags) {\n if (flags === void 0) {\n flags = {};\n }\n const [prepCh, details] = super.doPrepareChar(this._removeThousandsSeparators(this.scale && this.mapToRadix.length && (\n /*\n radix should be mapped when\n 1) input is done from keyboard = flags.input && flags.raw\n 2) unmasked value is set = !flags.input && !flags.raw\n and should not be mapped when\n 1) value is set = flags.input && !flags.raw\n 2) raw value is set = !flags.input && flags.raw\n */\n flags.input && flags.raw || !flags.input && !flags.raw) ? ch.replace(this._mapToRadixRegExp, this.radix) : ch), flags);\n if (ch && !prepCh) details.skip = true;\n if (prepCh && !this.allowPositive && !this.value && prepCh !== '-') details.aggregate(this._appendChar('-'));\n return [prepCh, details];\n }\n _separatorsCount(to, extendOnSeparators) {\n if (extendOnSeparators === void 0) {\n extendOnSeparators = false;\n }\n let count = 0;\n for (let pos = 0; pos < to; ++pos) {\n if (this._value.indexOf(this.thousandsSeparator, pos) === pos) {\n ++count;\n if (extendOnSeparators) to += this.thousandsSeparator.length;\n }\n }\n return count;\n }\n _separatorsCountFromSlice(slice) {\n if (slice === void 0) {\n slice = this._value;\n }\n return this._separatorsCount(this._removeThousandsSeparators(slice).length, true);\n }\n extractInput(fromPos, toPos, flags) {\n if (fromPos === void 0) {\n fromPos = 0;\n }\n if (toPos === void 0) {\n toPos = this.displayValue.length;\n }\n [fromPos, toPos] = this._adjustRangeWithSeparators(fromPos, toPos);\n return this._removeThousandsSeparators(super.extractInput(fromPos, toPos, flags));\n }\n _appendCharRaw(ch, flags) {\n if (flags === void 0) {\n flags = {};\n }\n const prevBeforeTailValue = flags.tail && flags._beforeTailState ? flags._beforeTailState._value : this._value;\n const prevBeforeTailSeparatorsCount = this._separatorsCountFromSlice(prevBeforeTailValue);\n this._value = this._removeThousandsSeparators(this.value);\n const oldValue = this._value;\n this._value += ch;\n const num = this.number;\n let accepted = !isNaN(num);\n let skip = false;\n if (accepted) {\n let fixedNum;\n if (this.min != null && this.min < 0 && this.number < this.min) fixedNum = this.min;\n if (this.max != null && this.max > 0 && this.number > this.max) fixedNum = this.max;\n if (fixedNum != null) {\n if (this.autofix) {\n this._value = this.format(fixedNum, this).replace(MaskedNumber.UNMASKED_RADIX, this.radix);\n skip || (skip = oldValue === this._value && !flags.tail); // if not changed on tail it's still ok to proceed\n } else {\n accepted = false;\n }\n }\n accepted && (accepted = Boolean(this._value.match(this._numberRegExp)));\n }\n let appendDetails;\n if (!accepted) {\n this._value = oldValue;\n appendDetails = new ChangeDetails();\n } else {\n appendDetails = new ChangeDetails({\n inserted: this._value.slice(oldValue.length),\n rawInserted: skip ? '' : ch,\n skip\n });\n }\n this._value = this._insertThousandsSeparators(this._value);\n const beforeTailValue = flags.tail && flags._beforeTailState ? flags._beforeTailState._value : this._value;\n const beforeTailSeparatorsCount = this._separatorsCountFromSlice(beforeTailValue);\n appendDetails.tailShift += (beforeTailSeparatorsCount - prevBeforeTailSeparatorsCount) * this.thousandsSeparator.length;\n return appendDetails;\n }\n _findSeparatorAround(pos) {\n if (this.thousandsSeparator) {\n const searchFrom = pos - this.thousandsSeparator.length + 1;\n const separatorPos = this.value.indexOf(this.thousandsSeparator, searchFrom);\n if (separatorPos <= pos) return separatorPos;\n }\n return -1;\n }\n _adjustRangeWithSeparators(from, to) {\n const separatorAroundFromPos = this._findSeparatorAround(from);\n if (separatorAroundFromPos >= 0) from = separatorAroundFromPos;\n const separatorAroundToPos = this._findSeparatorAround(to);\n if (separatorAroundToPos >= 0) to = separatorAroundToPos + this.thousandsSeparator.length;\n return [from, to];\n }\n remove(fromPos, toPos) {\n if (fromPos === void 0) {\n fromPos = 0;\n }\n if (toPos === void 0) {\n toPos = this.displayValue.length;\n }\n [fromPos, toPos] = this._adjustRangeWithSeparators(fromPos, toPos);\n const valueBeforePos = this.value.slice(0, fromPos);\n const valueAfterPos = this.value.slice(toPos);\n const prevBeforeTailSeparatorsCount = this._separatorsCount(valueBeforePos.length);\n this._value = this._insertThousandsSeparators(this._removeThousandsSeparators(valueBeforePos + valueAfterPos));\n const beforeTailSeparatorsCount = this._separatorsCountFromSlice(valueBeforePos);\n return new ChangeDetails({\n tailShift: (beforeTailSeparatorsCount - prevBeforeTailSeparatorsCount) * this.thousandsSeparator.length\n });\n }\n nearestInputPos(cursorPos, direction) {\n if (!this.thousandsSeparator) return cursorPos;\n switch (direction) {\n case DIRECTION.NONE:\n case DIRECTION.LEFT:\n case DIRECTION.FORCE_LEFT:\n {\n const separatorAtLeftPos = this._findSeparatorAround(cursorPos - 1);\n if (separatorAtLeftPos >= 0) {\n const separatorAtLeftEndPos = separatorAtLeftPos + this.thousandsSeparator.length;\n if (cursorPos < separatorAtLeftEndPos || this.value.length <= separatorAtLeftEndPos || direction === DIRECTION.FORCE_LEFT) {\n return separatorAtLeftPos;\n }\n }\n break;\n }\n case DIRECTION.RIGHT:\n case DIRECTION.FORCE_RIGHT:\n {\n const separatorAtRightPos = this._findSeparatorAround(cursorPos);\n if (separatorAtRightPos >= 0) {\n return separatorAtRightPos + this.thousandsSeparator.length;\n }\n }\n }\n return cursorPos;\n }\n doCommit() {\n if (this.value) {\n const number = this.number;\n let validnum = number;\n\n // check bounds\n if (this.min != null) validnum = Math.max(validnum, this.min);\n if (this.max != null) validnum = Math.min(validnum, this.max);\n if (validnum !== number) this.unmaskedValue = this.format(validnum, this);\n let formatted = this.value;\n if (this.normalizeZeros) formatted = this._normalizeZeros(formatted);\n if (this.padFractionalZeros && this.scale > 0) formatted = this._padFractionalZeros(formatted);\n this._value = formatted;\n }\n super.doCommit();\n }\n _normalizeZeros(value) {\n const parts = this._removeThousandsSeparators(value).split(this.radix);\n\n // remove leading zeros\n parts[0] = parts[0].replace(/^(\\D*)(0*)(\\d*)/, (match, sign, zeros, num) => sign + num);\n // add leading zero\n if (value.length && !/\\d$/.test(parts[0])) parts[0] = parts[0] + '0';\n if (parts.length > 1) {\n parts[1] = parts[1].replace(/0*$/, ''); // remove trailing zeros\n if (!parts[1].length) parts.length = 1; // remove fractional\n }\n return this._insertThousandsSeparators(parts.join(this.radix));\n }\n _padFractionalZeros(value) {\n if (!value) return value;\n const parts = value.split(this.radix);\n if (parts.length < 2) parts.push('');\n parts[1] = parts[1].padEnd(this.scale, '0');\n return parts.join(this.radix);\n }\n doSkipInvalid(ch, flags, checkTail) {\n if (flags === void 0) {\n flags = {};\n }\n const dropFractional = this.scale === 0 && ch !== this.thousandsSeparator && (ch === this.radix || ch === MaskedNumber.UNMASKED_RADIX || this.mapToRadix.includes(ch));\n return super.doSkipInvalid(ch, flags, checkTail) && !dropFractional;\n }\n get unmaskedValue() {\n return this._removeThousandsSeparators(this._normalizeZeros(this.value)).replace(this.radix, MaskedNumber.UNMASKED_RADIX);\n }\n set unmaskedValue(unmaskedValue) {\n super.unmaskedValue = unmaskedValue;\n }\n get typedValue() {\n return this.parse(this.unmaskedValue, this);\n }\n set typedValue(n) {\n this.rawInputValue = this.format(n, this).replace(MaskedNumber.UNMASKED_RADIX, this.radix);\n }\n\n /** Parsed Number */\n get number() {\n return this.typedValue;\n }\n set number(number) {\n this.typedValue = number;\n }\n get allowNegative() {\n return this.min != null && this.min < 0 || this.max != null && this.max < 0;\n }\n get allowPositive() {\n return this.min != null && this.min > 0 || this.max != null && this.max > 0;\n }\n typedValueEquals(value) {\n // handle 0 -> '' case (typed = 0 even if value = '')\n // for details see https://github.com/uNmAnNeR/imaskjs/issues/134\n return (super.typedValueEquals(value) || MaskedNumber.EMPTY_VALUES.includes(value) && MaskedNumber.EMPTY_VALUES.includes(this.typedValue)) && !(value === 0 && this.value === '');\n }\n}\n_MaskedNumber = MaskedNumber;\nMaskedNumber.UNMASKED_RADIX = '.';\nMaskedNumber.EMPTY_VALUES = [...Masked.EMPTY_VALUES, 0];\nMaskedNumber.DEFAULTS = {\n ...Masked.DEFAULTS,\n mask: Number,\n radix: ',',\n thousandsSeparator: '',\n mapToRadix: [_MaskedNumber.UNMASKED_RADIX],\n min: Number.MIN_SAFE_INTEGER,\n max: Number.MAX_SAFE_INTEGER,\n scale: 2,\n normalizeZeros: true,\n padFractionalZeros: false,\n parse: Number,\n format: n => n.toLocaleString('en-US', {\n useGrouping: false,\n maximumFractionDigits: 20\n })\n};\nIMask.MaskedNumber = MaskedNumber;\n\nexport { MaskedNumber as default };\n"],"names":["_MaskedNumber","MaskedNumber","Masked","opts","start","mid","end","escapeRegExp","value","parts","ch","flags","prepCh","details","to","extendOnSeparators","count","pos","slice","fromPos","toPos","prevBeforeTailValue","prevBeforeTailSeparatorsCount","oldValue","num","accepted","skip","fixedNum","appendDetails","ChangeDetails","beforeTailValue","beforeTailSeparatorsCount","searchFrom","separatorPos","from","separatorAroundFromPos","separatorAroundToPos","valueBeforePos","valueAfterPos","cursorPos","direction","DIRECTION","separatorAtLeftPos","separatorAtLeftEndPos","separatorAtRightPos","number","validnum","formatted","match","sign","zeros","checkTail","dropFractional","unmaskedValue","n","IMask"],"mappings":"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","x_google_ignoreList":[0]}
@@ -1,104 +0,0 @@
1
- import p from "../../core/change-details.js";
2
- import { isString as g } from "../../core/utils.js";
3
- import c from "../../core/continuous-tail-details.js";
4
- import u from "../../core/holder.js";
5
- class r {
6
- /** */
7
- constructor(t, s) {
8
- t === void 0 && (t = []), s === void 0 && (s = 0), this.chunks = t, this.from = s;
9
- }
10
- toString() {
11
- return this.chunks.map(String).join("");
12
- }
13
- extend(t) {
14
- if (!String(t)) return;
15
- t = g(t) ? new c(String(t)) : t;
16
- const s = this.chunks[this.chunks.length - 1], n = s && // if stops are same or tail has no stop
17
- (s.stop === t.stop || t.stop == null) && // if tail chunk goes just after last chunk
18
- t.from === s.from + s.toString().length;
19
- if (t instanceof c)
20
- n ? s.extend(t.toString()) : this.chunks.push(t);
21
- else if (t instanceof r) {
22
- if (t.stop == null) {
23
- let e;
24
- for (; t.chunks.length && t.chunks[0].stop == null; )
25
- e = t.chunks.shift(), e.from += t.from, this.extend(e);
26
- }
27
- t.toString() && (t.stop = t.blockIndex, this.chunks.push(t));
28
- }
29
- }
30
- appendTo(t) {
31
- if (!(t instanceof u.MaskedPattern))
32
- return new c(this.toString()).appendTo(t);
33
- const s = new p();
34
- for (let n = 0; n < this.chunks.length; ++n) {
35
- const e = this.chunks[n], i = t._mapPosToBlock(t.displayValue.length), o = e.stop;
36
- let h;
37
- if (o != null && // if block not found or stop is behind lastBlock
38
- (!i || i.index <= o) && ((e instanceof r || // for continuous block also check if stop is exist
39
- t._stops.indexOf(o) >= 0) && s.aggregate(t._appendPlaceholder(o)), h = e instanceof r && t._blocks[o]), h) {
40
- const f = h.appendTail(e);
41
- s.aggregate(f);
42
- const l = e.toString().slice(f.rawInserted.length);
43
- l && s.aggregate(t.append(l, {
44
- tail: !0
45
- }));
46
- } else
47
- s.aggregate(t.append(e.toString(), {
48
- tail: !0
49
- }));
50
- }
51
- return s;
52
- }
53
- get state() {
54
- return {
55
- chunks: this.chunks.map((t) => t.state),
56
- from: this.from,
57
- stop: this.stop,
58
- blockIndex: this.blockIndex
59
- };
60
- }
61
- set state(t) {
62
- const {
63
- chunks: s,
64
- ...n
65
- } = t;
66
- Object.assign(this, n), this.chunks = s.map((e) => {
67
- const i = "chunks" in e ? new r() : new c();
68
- return i.state = e, i;
69
- });
70
- }
71
- unshift(t) {
72
- if (!this.chunks.length || t != null && this.from >= t) return "";
73
- const s = t != null ? t - this.from : t;
74
- let n = 0;
75
- for (; n < this.chunks.length; ) {
76
- const e = this.chunks[n], i = e.unshift(s);
77
- if (e.toString()) {
78
- if (!i) break;
79
- ++n;
80
- } else
81
- this.chunks.splice(n, 1);
82
- if (i) return i;
83
- }
84
- return "";
85
- }
86
- shift() {
87
- if (!this.chunks.length) return "";
88
- let t = this.chunks.length - 1;
89
- for (; 0 <= t; ) {
90
- const s = this.chunks[t], n = s.shift();
91
- if (s.toString()) {
92
- if (!n) break;
93
- --t;
94
- } else
95
- this.chunks.splice(t, 1);
96
- if (n) return n;
97
- }
98
- return "";
99
- }
100
- }
101
- export {
102
- r as default
103
- };
104
- //# sourceMappingURL=chunk-tail-details.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"chunk-tail-details.js","sources":["../../../../../../node_modules/imask/esm/masked/pattern/chunk-tail-details.js"],"sourcesContent":["import ChangeDetails from '../../core/change-details.js';\nimport { isString } from '../../core/utils.js';\nimport ContinuousTailDetails from '../../core/continuous-tail-details.js';\nimport IMask from '../../core/holder.js';\n\nclass ChunksTailDetails {\n /** */\n\n constructor(chunks, from) {\n if (chunks === void 0) {\n chunks = [];\n }\n if (from === void 0) {\n from = 0;\n }\n this.chunks = chunks;\n this.from = from;\n }\n toString() {\n return this.chunks.map(String).join('');\n }\n extend(tailChunk) {\n if (!String(tailChunk)) return;\n tailChunk = isString(tailChunk) ? new ContinuousTailDetails(String(tailChunk)) : tailChunk;\n const lastChunk = this.chunks[this.chunks.length - 1];\n const extendLast = lastChunk && (\n // if stops are same or tail has no stop\n lastChunk.stop === tailChunk.stop || tailChunk.stop == null) &&\n // if tail chunk goes just after last chunk\n tailChunk.from === lastChunk.from + lastChunk.toString().length;\n if (tailChunk instanceof ContinuousTailDetails) {\n // check the ability to extend previous chunk\n if (extendLast) {\n // extend previous chunk\n lastChunk.extend(tailChunk.toString());\n } else {\n // append new chunk\n this.chunks.push(tailChunk);\n }\n } else if (tailChunk instanceof ChunksTailDetails) {\n if (tailChunk.stop == null) {\n // unwrap floating chunks to parent, keeping `from` pos\n let firstTailChunk;\n while (tailChunk.chunks.length && tailChunk.chunks[0].stop == null) {\n firstTailChunk = tailChunk.chunks.shift(); // not possible to be `undefined` because length was checked above\n firstTailChunk.from += tailChunk.from;\n this.extend(firstTailChunk);\n }\n }\n\n // if tail chunk still has value\n if (tailChunk.toString()) {\n // if chunks contains stops, then popup stop to container\n tailChunk.stop = tailChunk.blockIndex;\n this.chunks.push(tailChunk);\n }\n }\n }\n appendTo(masked) {\n if (!(masked instanceof IMask.MaskedPattern)) {\n const tail = new ContinuousTailDetails(this.toString());\n return tail.appendTo(masked);\n }\n const details = new ChangeDetails();\n for (let ci = 0; ci < this.chunks.length; ++ci) {\n const chunk = this.chunks[ci];\n const lastBlockIter = masked._mapPosToBlock(masked.displayValue.length);\n const stop = chunk.stop;\n let chunkBlock;\n if (stop != null && (\n // if block not found or stop is behind lastBlock\n !lastBlockIter || lastBlockIter.index <= stop)) {\n if (chunk instanceof ChunksTailDetails ||\n // for continuous block also check if stop is exist\n masked._stops.indexOf(stop) >= 0) {\n details.aggregate(masked._appendPlaceholder(stop));\n }\n chunkBlock = chunk instanceof ChunksTailDetails && masked._blocks[stop];\n }\n if (chunkBlock) {\n const tailDetails = chunkBlock.appendTail(chunk);\n details.aggregate(tailDetails);\n\n // get not inserted chars\n const remainChars = chunk.toString().slice(tailDetails.rawInserted.length);\n if (remainChars) details.aggregate(masked.append(remainChars, {\n tail: true\n }));\n } else {\n details.aggregate(masked.append(chunk.toString(), {\n tail: true\n }));\n }\n }\n return details;\n }\n get state() {\n return {\n chunks: this.chunks.map(c => c.state),\n from: this.from,\n stop: this.stop,\n blockIndex: this.blockIndex\n };\n }\n set state(state) {\n const {\n chunks,\n ...props\n } = state;\n Object.assign(this, props);\n this.chunks = chunks.map(cstate => {\n const chunk = \"chunks\" in cstate ? new ChunksTailDetails() : new ContinuousTailDetails();\n chunk.state = cstate;\n return chunk;\n });\n }\n unshift(beforePos) {\n if (!this.chunks.length || beforePos != null && this.from >= beforePos) return '';\n const chunkShiftPos = beforePos != null ? beforePos - this.from : beforePos;\n let ci = 0;\n while (ci < this.chunks.length) {\n const chunk = this.chunks[ci];\n const shiftChar = chunk.unshift(chunkShiftPos);\n if (chunk.toString()) {\n // chunk still contains value\n // but not shifted - means no more available chars to shift\n if (!shiftChar) break;\n ++ci;\n } else {\n // clean if chunk has no value\n this.chunks.splice(ci, 1);\n }\n if (shiftChar) return shiftChar;\n }\n return '';\n }\n shift() {\n if (!this.chunks.length) return '';\n let ci = this.chunks.length - 1;\n while (0 <= ci) {\n const chunk = this.chunks[ci];\n const shiftChar = chunk.shift();\n if (chunk.toString()) {\n // chunk still contains value\n // but not shifted - means no more available chars to shift\n if (!shiftChar) break;\n --ci;\n } else {\n // clean if chunk has no value\n this.chunks.splice(ci, 1);\n }\n if (shiftChar) return shiftChar;\n }\n return '';\n }\n}\n\nexport { ChunksTailDetails as default };\n"],"names":["ChunksTailDetails","chunks","from","tailChunk","isString","ContinuousTailDetails","lastChunk","extendLast","firstTailChunk","masked","IMask","details","ChangeDetails","ci","chunk","lastBlockIter","stop","chunkBlock","tailDetails","remainChars","c","state","props","cstate","beforePos","chunkShiftPos","shiftChar"],"mappings":"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","x_google_ignoreList":[0]}