@elliemae/ds-form 3.1.5-rc.9 → 3.2.0-rc.3

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 (63) hide show
  1. package/dist/cjs/FloatingLabelInput/FloatingLabelInputImpl.js.map +1 -1
  2. package/dist/cjs/FormItem/DSFormItemLayout.js.map +1 -1
  3. package/dist/cjs/FormItem/ValidationFieldWrapper.js.map +1 -1
  4. package/dist/cjs/FormItem/props.js +3 -1
  5. package/dist/cjs/FormItem/props.js.map +2 -2
  6. package/dist/cjs/InputGroup/AddonWrapper.js.map +1 -1
  7. package/dist/cjs/InputMask/mask_types/DateInputMask.js +0 -36
  8. package/dist/cjs/InputMask/mask_types/DateInputMask.js.map +2 -2
  9. package/dist/cjs/InputMask/mask_types/DateTimeInputMask.js +0 -36
  10. package/dist/cjs/InputMask/mask_types/DateTimeInputMask.js.map +2 -2
  11. package/dist/cjs/InputMask/mask_types/DictionaryInputMask.js +0 -39
  12. package/dist/cjs/InputMask/mask_types/DictionaryInputMask.js.map +2 -2
  13. package/dist/cjs/InputMask/mask_types/NumberInputMask.js +0 -48
  14. package/dist/cjs/InputMask/mask_types/NumberInputMask.js.map +2 -2
  15. package/dist/cjs/InputMask/mask_types/PhoneInputMask.js +0 -36
  16. package/dist/cjs/InputMask/mask_types/PhoneInputMask.js.map +2 -2
  17. package/dist/cjs/InputMask/mask_types/PhoneInternationalInputMask.js +0 -36
  18. package/dist/cjs/InputMask/mask_types/PhoneInternationalInputMask.js.map +2 -2
  19. package/dist/cjs/InputMask/mask_types/SsnInputMask.js +0 -36
  20. package/dist/cjs/InputMask/mask_types/SsnInputMask.js.map +2 -2
  21. package/dist/cjs/InputMask/mask_types/UsZipCodeInputMask.js +0 -36
  22. package/dist/cjs/InputMask/mask_types/UsZipCodeInputMask.js.map +2 -2
  23. package/dist/cjs/InputMask/mask_types/ZipCodeSearchInputMask.js +0 -36
  24. package/dist/cjs/InputMask/mask_types/ZipCodeSearchInputMask.js.map +2 -2
  25. package/dist/cjs/InputMask/props.js +2 -1
  26. package/dist/cjs/InputMask/props.js.map +2 -2
  27. package/dist/cjs/InputProtected/props.js +4 -2
  28. package/dist/cjs/InputProtected/props.js.map +2 -2
  29. package/dist/cjs/Radio/DSRadio.js +6 -4
  30. package/dist/cjs/Radio/DSRadio.js.map +2 -2
  31. package/dist/cjs/Toggle/DSToggleImpl.js.map +1 -1
  32. package/dist/esm/FloatingLabelInput/FloatingLabelInputImpl.js.map +1 -1
  33. package/dist/esm/FormItem/DSFormItemLayout.js.map +1 -1
  34. package/dist/esm/FormItem/ValidationFieldWrapper.js.map +1 -1
  35. package/dist/esm/FormItem/props.js +3 -1
  36. package/dist/esm/FormItem/props.js.map +2 -2
  37. package/dist/esm/InputGroup/AddonWrapper.js.map +1 -1
  38. package/dist/esm/InputMask/mask_types/DateInputMask.js +0 -36
  39. package/dist/esm/InputMask/mask_types/DateInputMask.js.map +2 -2
  40. package/dist/esm/InputMask/mask_types/DateTimeInputMask.js +0 -36
  41. package/dist/esm/InputMask/mask_types/DateTimeInputMask.js.map +2 -2
  42. package/dist/esm/InputMask/mask_types/DictionaryInputMask.js +0 -39
  43. package/dist/esm/InputMask/mask_types/DictionaryInputMask.js.map +2 -2
  44. package/dist/esm/InputMask/mask_types/NumberInputMask.js +0 -48
  45. package/dist/esm/InputMask/mask_types/NumberInputMask.js.map +2 -2
  46. package/dist/esm/InputMask/mask_types/PhoneInputMask.js +0 -36
  47. package/dist/esm/InputMask/mask_types/PhoneInputMask.js.map +2 -2
  48. package/dist/esm/InputMask/mask_types/PhoneInternationalInputMask.js +0 -36
  49. package/dist/esm/InputMask/mask_types/PhoneInternationalInputMask.js.map +2 -2
  50. package/dist/esm/InputMask/mask_types/SsnInputMask.js +0 -36
  51. package/dist/esm/InputMask/mask_types/SsnInputMask.js.map +2 -2
  52. package/dist/esm/InputMask/mask_types/UsZipCodeInputMask.js +0 -36
  53. package/dist/esm/InputMask/mask_types/UsZipCodeInputMask.js.map +2 -2
  54. package/dist/esm/InputMask/mask_types/ZipCodeSearchInputMask.js +0 -36
  55. package/dist/esm/InputMask/mask_types/ZipCodeSearchInputMask.js.map +2 -2
  56. package/dist/esm/InputMask/props.js +2 -1
  57. package/dist/esm/InputMask/props.js.map +2 -2
  58. package/dist/esm/InputProtected/props.js +4 -2
  59. package/dist/esm/InputProtected/props.js.map +2 -2
  60. package/dist/esm/Radio/DSRadio.js +6 -4
  61. package/dist/esm/Radio/DSRadio.js.map +2 -2
  62. package/dist/esm/Toggle/DSToggleImpl.js.map +1 -1
  63. package/package.json +19 -20
@@ -2,6 +2,6 @@
2
2
  "version": 3,
3
3
  "sources": ["../../../src/FloatingLabelInput/FloatingLabelInputImpl.tsx", "../../../../../scripts/build/transpile/react-shim.js"],
4
4
  "sourcesContent": ["/* eslint-disable react/no-unused-state */\nimport React, { Component } from 'react';\nimport { aggregatedClasses } from '@elliemae/ds-classnames';\nimport { getComponentFromProps } from '@elliemae/ds-utilities';\nimport { DSTextWrapper } from '@elliemae/ds-text-wrapper';\nimport { ResizeObserver } from 'resize-observer';\nimport { getSvgPath } from './getSvgPath';\nimport { RequiredMark } from '../RequiredMark/RequiredMark';\n\nconst blockName = 'labeled-outline';\n\nconst Wrapper = aggregatedClasses('div')(blockName, null, ({ isOpen }) => ({\n 'has-value': isOpen,\n}));\nconst FloatingLabel = aggregatedClasses('label')(blockName, 'label');\nconst OutlineIdle = aggregatedClasses('div')(blockName, 'idle');\nconst Outline = aggregatedClasses('div')(blockName, 'outline');\nconst OutlinePath = aggregatedClasses('path')(blockName, 'outline__path');\n\nconst shouldUpdateSvgPath = ({ width, height, labelWidth }, prevSizes) => {\n if (width !== prevSizes.width) return true;\n if (height !== prevSizes.height) return true;\n return labelWidth !== prevSizes.labelWidth;\n};\n\nclass FloatingLabelInputImpl extends Component {\n resizeObserver = new ResizeObserver(() => this.updatePath());\n\n prevSizes = {};\n\n static defaultProps = { onChange: () => null };\n\n constructor(props) {\n super(props);\n this.wrapperRef = React.createRef();\n this.outlinePathRef = React.createRef();\n this.outlineIdleRef = React.createRef();\n this.labelRef = React.createRef();\n\n this.sizes = this.sizes.bind(this);\n this.isOpened = this.isOpened.bind(this);\n this.getValue = this.getValue.bind(this);\n this.updatePath = this.updatePath.bind(this);\n }\n\n componentDidMount() {\n this.resizeObserver.observe(this.wrapperRef.current);\n }\n\n componentDidUpdate() {\n if (!shouldUpdateSvgPath(this.sizes, this.prevSizes)) return;\n this.updatePath();\n }\n\n componentWillUnmount() {\n this.resizeObserver.unobserve(this.wrapperRef.current);\n }\n\n get sizes() {\n const { current: labelEl } = this.labelRef;\n const { current: wrapperEl } = this.wrapperRef;\n const { current: outlineIdleEl } = this.outlineIdleRef;\n const elStyles = window.getComputedStyle(outlineIdleEl);\n const leftRadius = elStyles.getPropertyValue('border-top-left-radius');\n const rightRadius = elStyles.getPropertyValue('border-top-right-radius');\n const hasLeftRadius = parseFloat(leftRadius) !== 0;\n const hasRightRadius = parseFloat(rightRadius) !== 0;\n return {\n labelWidth: labelEl.offsetWidth * 0.9,\n width: wrapperEl.offsetWidth,\n height: wrapperEl.offsetHeight,\n radiusStyle: leftRadius,\n hasLeftRadius,\n hasRightRadius,\n };\n }\n\n get isOpened() {\n const { focused, isOpen, value } = this.props;\n return focused || (Array.isArray(value) ? !!value.length : !!value) || isOpen;\n }\n\n getValue(value) {\n const { valueAccessor } = this.props;\n if (valueAccessor) return valueAccessor(value);\n // is an event\n if (value && value.target) return value.target.value;\n\n return value;\n }\n\n updatePath() {\n const path = getSvgPath(this.sizes);\n this.prevSizes = this.sizes;\n this.outlinePathRef.current.setAttribute('d', path);\n }\n\n render() {\n const {\n ariaLabel,\n hasError,\n readOnly,\n disabled,\n inputComponent,\n labelText,\n onBlur,\n onFocus,\n innerRef,\n extraInputProps,\n required,\n value,\n onChange,\n mask,\n useSubfix,\n optional,\n } = this.props;\n\n const inputProps = {\n ariaLabel,\n className: 'floating-label-input-controller',\n disabled,\n hasError,\n onBlur,\n onChange,\n onFocus,\n readOnly,\n value,\n innerRef,\n mask,\n useSubfix,\n ...extraInputProps,\n };\n const InputComponent = getComponentFromProps(inputComponent, inputProps);\n const isOpen = this.isOpened;\n\n return (\n <Wrapper\n classProps={{\n hasError,\n isOpen,\n readOnly,\n disabled,\n }}\n innerRef={this.wrapperRef}\n onBlur={() => null}\n onFocus={() => null}\n onMouseOut={this.handleMouseOut}\n onMouseOver={this.handleMouseOver}\n >\n {InputComponent}\n <FloatingLabel classProps={{ isOpen }} innerRef={this.labelRef}>\n <DSTextWrapper maxWidth=\"100%\" text={labelText} />\n <RequiredMark optional={optional} required={required} />\n </FloatingLabel>\n <Outline>\n <svg>\n <OutlinePath innerRef={this.outlinePathRef} />\n </svg>\n </Outline>\n <OutlineIdle innerRef={this.outlineIdleRef} />\n </Wrapper>\n );\n }\n}\n\nexport { FloatingLabelInputImpl };\nexport default FloatingLabelInputImpl;\n", "import * as React from 'react';\nexport { React };\n"],
5
- "mappings": "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",
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;ACAA,YAAuB;ADCvB,mBAAiC;AACjC,2BAAkC;AAClC,0BAAsC;AACtC,6BAA8B;AAC9B,6BAA+B;AAC/B,wBAA2B;AAC3B,0BAA6B;AAE7B,MAAM,YAAY;AAElB,MAAM,UAAU,4CAAkB,KAAK,EAAE,WAAW,MAAM,CAAC,EAAE,aAAc;AAAA,EACzE,aAAa;AACf,EAAE;AACF,MAAM,gBAAgB,4CAAkB,OAAO,EAAE,WAAW,OAAO;AACnE,MAAM,cAAc,4CAAkB,KAAK,EAAE,WAAW,MAAM;AAC9D,MAAM,UAAU,4CAAkB,KAAK,EAAE,WAAW,SAAS;AAC7D,MAAM,cAAc,4CAAkB,MAAM,EAAE,WAAW,eAAe;AAExE,MAAM,sBAAsB,CAAC,EAAE,OAAO,QAAQ,cAAc,cAAc;AACxE,MAAI,UAAU,UAAU;AAAO,WAAO;AACtC,MAAI,WAAW,UAAU;AAAQ,WAAO;AACxC,SAAO,eAAe,UAAU;AAClC;AAEA,MAAM,+BAA+B,uBAAU;AAAA,EAO7C,YAAY,OAAO;AACjB,UAAM,KAAK;AAPb,0BAAiB,IAAI,sCAAe,MAAM,KAAK,WAAW,CAAC;AAE3D,qBAAY,CAAC;AAMX,SAAK,aAAa,qBAAM,UAAU;AAClC,SAAK,iBAAiB,qBAAM,UAAU;AACtC,SAAK,iBAAiB,qBAAM,UAAU;AACtC,SAAK,WAAW,qBAAM,UAAU;AAEhC,SAAK,QAAQ,KAAK,MAAM,KAAK,IAAI;AACjC,SAAK,WAAW,KAAK,SAAS,KAAK,IAAI;AACvC,SAAK,WAAW,KAAK,SAAS,KAAK,IAAI;AACvC,SAAK,aAAa,KAAK,WAAW,KAAK,IAAI;AAAA,EAC7C;AAAA,EAEA,oBAAoB;AAClB,SAAK,eAAe,QAAQ,KAAK,WAAW,OAAO;AAAA,EACrD;AAAA,EAEA,qBAAqB;AACnB,QAAI,CAAC,oBAAoB,KAAK,OAAO,KAAK,SAAS;AAAG;AACtD,SAAK,WAAW;AAAA,EAClB;AAAA,EAEA,uBAAuB;AACrB,SAAK,eAAe,UAAU,KAAK,WAAW,OAAO;AAAA,EACvD;AAAA,EAEA,IAAI,QAAQ;AACV,UAAM,EAAE,SAAS,YAAY,KAAK;AAClC,UAAM,EAAE,SAAS,cAAc,KAAK;AACpC,UAAM,EAAE,SAAS,kBAAkB,KAAK;AACxC,UAAM,WAAW,OAAO,iBAAiB,aAAa;AACtD,UAAM,aAAa,SAAS,iBAAiB,wBAAwB;AACrE,UAAM,cAAc,SAAS,iBAAiB,yBAAyB;AACvE,UAAM,gBAAgB,WAAW,UAAU,MAAM;AACjD,UAAM,iBAAiB,WAAW,WAAW,MAAM;AACnD,WAAO;AAAA,MACL,YAAY,QAAQ,cAAc;AAAA,MAClC,OAAO,UAAU;AAAA,MACjB,QAAQ,UAAU;AAAA,MAClB,aAAa;AAAA,MACb;AAAA,MACA;AAAA,IACF;AAAA,EACF;AAAA,EAEA,IAAI,WAAW;AACb,UAAM,EAAE,SAAS,QAAQ,UAAU,KAAK;AACxC,WAAO,WAAY,OAAM,QAAQ,KAAK,IAAI,CAAC,CAAC,MAAM,SAAS,CAAC,CAAC,UAAU;AAAA,EACzE;AAAA,EAEA,SAAS,OAAO;AACd,UAAM,EAAE,kBAAkB,KAAK;AAC/B,QAAI;AAAe,aAAO,cAAc,KAAK;AAE7C,QAAI,SAAS,MAAM;AAAQ,aAAO,MAAM,OAAO;AAE/C,WAAO;AAAA,EACT;AAAA,EAEA,aAAa;AACX,UAAM,OAAO,kCAAW,KAAK,KAAK;AAClC,SAAK,YAAY,KAAK;AACtB,SAAK,eAAe,QAAQ,aAAa,KAAK,IAAI;AAAA,EACpD;AAAA,EAEA,SAAS;AACP,UAAM;AAAA,MACJ;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,QACE,KAAK;AAET,UAAM,aAAa;AAAA,MACjB;AAAA,MACA,WAAW;AAAA,MACX;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,OACG;AAEL,UAAM,iBAAiB,+CAAsB,gBAAgB,UAAU;AACvE,UAAM,SAAS,KAAK;AAEpB,WACE,mDAAC;AAAA,MACC,YAAY;AAAA,QACV;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,MACF;AAAA,MACA,UAAU,KAAK;AAAA,MACf,QAAQ,MAAM;AAAA,MACd,SAAS,MAAM;AAAA,MACf,YAAY,KAAK;AAAA,MACjB,aAAa,KAAK;AAAA,OAEjB,gBACD,mDAAC;AAAA,MAAc,YAAY,EAAE,OAAO;AAAA,MAAG,UAAU,KAAK;AAAA,OACpD,mDAAC;AAAA,MAAc,UAAS;AAAA,MAAO,MAAM;AAAA,KAAW,GAChD,mDAAC;AAAA,MAAa;AAAA,MAAoB;AAAA,KAAoB,CACxD,GACA,mDAAC,eACC,mDAAC,aACC,mDAAC;AAAA,MAAY,UAAU,KAAK;AAAA,KAAgB,CAC9C,CACF,GACA,mDAAC;AAAA,MAAY,UAAU,KAAK;AAAA,KAAgB,CAC9C;AAAA,EAEJ;AACF;AArIE,AALI,uBAKG,eAAe,EAAE,UAAU,MAAM,KAAK;AAwI/C,IAAO,iCAAQ;",
6
6
  "names": []
7
7
  }
@@ -2,6 +2,6 @@
2
2
  "version": 3,
3
3
  "sources": ["../../../src/FormItem/DSFormItemLayout.tsx", "../../../../../scripts/build/transpile/react-shim.js"],
4
4
  "sourcesContent": ["/* eslint-disable complexity */\n/* eslint-disable max-lines */\nimport React from 'react';\nimport { aggregatedClasses } from '@elliemae/ds-classnames';\nimport { describe, getComponentFromProps } from '@elliemae/ds-utilities';\nimport { Group } from '@elliemae/ds-shared';\nimport { DSInputGroup } from '../InputGroup';\nimport { DSFloatingLabelInput } from '../FloatingLabelInput';\nimport { DSError } from './Error/DSError';\nimport { props } from './props';\nimport { defaultProps } from './defaultProps';\nimport { FORMITEM_LAYOUT_VARIANTS } from './variants';\nimport { Suffix, SuffixInputWrapper, SuffixWrapper } from './Suffix/Suffix';\n// import { maskTypes } from '../InputMask/MaskTypes';\n\nexport { DSError, FORMITEM_LAYOUT_VARIANTS };\n\nconst blockName = 'form-item';\n\nconst Wrapper = aggregatedClasses('div')(blockName, null, ({ leftLabel, variant, fitContent, withHighlight }) => ({\n 'with-left-label': leftLabel,\n 'fit-content': fitContent,\n [variant]: variant,\n 'with-highlight': withHighlight,\n}));\n\nconst WrapperContent = aggregatedClasses('div')(`${blockName}-content`);\nconst WrapperContentGroup = aggregatedClasses('fieldset')(`${blockName}-content`);\n\nconst DSFormItemLayout = ({\n leftLabel,\n floatingLabel,\n name,\n id,\n value,\n inputComponent: InputComponent,\n labelComponent: LabelComponent,\n feedbackComponent: FeedbackComponent,\n labelText,\n truncateText,\n hasError,\n // orientation = 'vertical', // one of [ vertical, horizontal ]\n validationState, // one of [ success, error, warning ]\n validationMessage,\n feedbackMessage,\n readOnly,\n focused,\n type,\n autoFocus,\n disabled,\n onChange,\n onBlur,\n onFocus,\n onPaste,\n onKeyUp,\n extraInputProps,\n extraContent,\n leftAddon,\n rightAddon,\n required,\n optional,\n mask,\n useSubfix,\n suffix,\n variant,\n fitContent,\n withHighlight,\n containerProps,\n ...rest\n}) => {\n const isGroup = InputComponent.type === (<Group />).type;\n const floatingLabelOverride = floatingLabel === 'UNSAFE';\n const WrapperContentComp = !isGroup ? WrapperContent : WrapperContentGroup;\n\n // group the input props to not duplicate it inside the specific inputComponent (floating or not)\n const inputProps = {\n ...extraInputProps,\n disabled,\n hasError: hasError || validationState === 'error',\n id,\n name,\n type,\n autoFocus,\n onBlur,\n onChange,\n onFocus,\n onPaste,\n onKeyUp,\n readOnly,\n value,\n mask,\n useSubfix,\n variant,\n required,\n ...rest,\n };\n\n const renderInput = (Input) =>\n leftAddon || rightAddon ? (\n <DSInputGroup leftAddon={leftAddon} rightAddon={rightAddon} variant={variant}>\n {Input}\n </DSInputGroup>\n ) : (\n Input\n );\n\n const renderFloating = (\n <DSFloatingLabelInput\n {...inputProps}\n extraInputProps={extraInputProps}\n focused={focused}\n inputComponent={InputComponent}\n labelComponent={LabelComponent}\n labelText={labelText}\n optional={optional}\n required={required}\n variant={variant}\n />\n );\n\n const InputWithLabel = floatingLabelOverride ? (\n renderInput(renderFloating)\n ) : (\n <>\n <LabelComponent\n htmlFor={id || name}\n label={labelText}\n optional={optional}\n required={required}\n isGroup={isGroup}\n truncateText={truncateText}\n />\n {renderInput(getComponentFromProps(InputComponent, inputProps))}\n </>\n );\n\n if (suffix) {\n return (\n <Wrapper\n classProps={{\n disabled,\n readOnly,\n hasError,\n leftLabel,\n variant,\n fitContent,\n withHighlight,\n }}\n {...containerProps}\n >\n <SuffixWrapper className=\"suffix-wrapper\">\n <SuffixInputWrapper className=\"suffix-input-wrapper\">\n <WrapperContentComp>\n {InputWithLabel}\n {extraContent}\n </WrapperContentComp>\n <FeedbackComponent\n hasError={hasError}\n text={validationState || hasError ? validationMessage : feedbackMessage}\n />\n </SuffixInputWrapper>\n <Suffix\n className=\"suffix-label\"\n label={!!labelText}\n withFeedback={Boolean(validationMessage || feedbackMessage)}\n >\n {suffix}\n </Suffix>\n </SuffixWrapper>\n </Wrapper>\n );\n }\n\n return (\n <Wrapper\n classProps={{\n disabled,\n readOnly,\n hasError,\n leftLabel,\n variant,\n fitContent,\n withHighlight,\n }}\n {...containerProps}\n >\n <WrapperContentComp>\n {InputWithLabel}\n {extraContent}\n </WrapperContentComp>\n <FeedbackComponent hasError={hasError} text={validationState || hasError ? validationMessage : feedbackMessage} />\n </Wrapper>\n );\n};\n\nDSFormItemLayout.propTypes = props;\nDSFormItemLayout.defaultProps = defaultProps;\nDSFormItemLayout.displayName = 'DSFormItemLayout';\nconst DSFormItemLayoutWithSchema = describe(DSFormItemLayout);\nDSFormItemLayoutWithSchema.propTypes = props;\n\nexport default DSFormItemLayout;\nexport { DSFormItemLayoutWithSchema, DSFormItemLayout };\n", "import * as React from 'react';\nexport { React };\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;ACAA,YAAuB;ADEvB,mBAAkB;AAClB,2BAAkC;AAClC,0BAAgD;AAChD,uBAAsB;AACtB,wBAA6B;AAC7B,gCAAqC;AACrC,qBAAwB;AACxB,mBAAsB;AACtB,0BAA6B;AAC7B,sBAAyC;AACzC,oBAA0D;AAK1D,MAAM,YAAY;AAElB,MAAM,UAAU,4CAAkB,KAAK,EAAE,WAAW,MAAM,CAAC,EAAE,WAAW,SAAS,YAAY,oBAAqB;AAAA,EAChH,mBAAmB;AAAA,EACnB,eAAe;AAAA,GACd,UAAU;AAAA,EACX,kBAAkB;AACpB,EAAE;AAEF,MAAM,iBAAiB,4CAAkB,KAAK,EAAE,GAAG,mBAAmB;AACtE,MAAM,sBAAsB,4CAAkB,UAAU,EAAE,GAAG,mBAAmB;AAEhF,MAAM,mBAAmB,CAAC,OAwCpB;AAxCoB,eACxB;AAAA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA,gBAAgB;AAAA,IAChB,gBAAgB;AAAA,IAChB,mBAAmB;AAAA,IACnB;AAAA,IACA;AAAA,IACA;AAAA,IAEA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,MAtCwB,IAuCrB,iBAvCqB,IAuCrB;AAAA,IAtCH;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IAEA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA;AAGA,QAAM,UAAU,eAAe,SAAU,oDAAC,4BAAM,GAAI;AACpD,QAAM,wBAAwB,kBAAkB;AAChD,QAAM,qBAAqB,CAAC,UAAU,iBAAiB;AAGvD,QAAM,aAAa,gDACd,kBADc;AAAA,IAEjB;AAAA,IACA,UAAU,YAAY,oBAAoB;AAAA,IAC1C;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,MACG;AAGL,QAAM,cAAc,CAAC,UACnB,aAAa,aACX,mDAAC;AAAA,IAAa;AAAA,IAAsB;AAAA,IAAwB;AAAA,KACzD,KACH,IAEA;AAGJ,QAAM,iBACJ,mDAAC,iFACK,aADL;AAAA,IAEC;AAAA,IACA;AAAA,IACA,gBAAgB;AAAA,IAChB,gBAAgB;AAAA,IAChB;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACF;AAGF,QAAM,iBAAiB,wBACrB,YAAY,cAAc,IAE1B,wFACE,mDAAC;AAAA,IACC,SAAS,MAAM;AAAA,IACf,OAAO;AAAA,IACP;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,GACF,GACC,YAAY,+CAAsB,gBAAgB,UAAU,CAAC,CAChE;AAGF,MAAI,QAAQ;AACV,WACE,mDAAC;AAAA,MACC,YAAY;AAAA,QACV;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,MACF;AAAA,OACI,iBAEJ,mDAAC;AAAA,MAAc,WAAU;AAAA,OACvB,mDAAC;AAAA,MAAmB,WAAU;AAAA,OAC5B,mDAAC,0BACE,gBACA,YACH,GACA,mDAAC;AAAA,MACC;AAAA,MACA,MAAM,mBAAmB,WAAW,oBAAoB;AAAA,KAC1D,CACF,GACA,mDAAC;AAAA,MACC,WAAU;AAAA,MACV,OAAO,CAAC,CAAC;AAAA,MACT,cAAc,QAAQ,qBAAqB,eAAe;AAAA,OAEzD,MACH,CACF,CACF;AAAA,EAEJ;AAEA,SACE,mDAAC;AAAA,IACC,YAAY;AAAA,MACV;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF;AAAA,KACI,iBAEJ,mDAAC,0BACE,gBACA,YACH,GACA,mDAAC;AAAA,IAAkB;AAAA,IAAoB,MAAM,mBAAmB,WAAW,oBAAoB;AAAA,GAAiB,CAClH;AAEJ;AAEA,iBAAiB,YAAY;AAC7B,iBAAiB,eAAe;AAChC,iBAAiB,cAAc;AAC/B,MAAM,6BAA6B,kCAAS,gBAAgB;AAC5D,2BAA2B,YAAY;AAEvC,IAAO,2BAAQ;",
5
+ "mappings": "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",
6
6
  "names": []
7
7
  }
@@ -2,6 +2,6 @@
2
2
  "version": 3,
3
3
  "sources": ["../../../src/FormItem/ValidationFieldWrapper.tsx", "../../../../../scripts/build/transpile/react-shim.js"],
4
4
  "sourcesContent": ["import { Component } from 'react';\n\nexport default class ValidationFieldWrapper extends Component {\n static defaultProps = {\n validateOnBlur: false,\n validateOnChange: false,\n name: '', // name in context of the form\n value: '',\n validate: () => null,\n onChange: () => null,\n onBlur: () => null,\n };\n\n constructor(props) {\n super(props);\n this.state = {\n value: props.value,\n };\n }\n\n componentDidMount() {\n const { value } = this.state;\n this.executeValidations(value);\n }\n\n static getDerivedStateFromProps(nextProps, prevState) {\n const { value } = nextProps;\n if (value === prevState.value) return null;\n return {\n ...prevState,\n value,\n };\n }\n\n handleChange = (e) => {\n const { onChange } = this.props;\n this.setState({ value: e.target.value });\n if (onChange) onChange(e);\n }\n\n handleBlur = (e) => {\n const { onBlur, validateOnBlur } = this.props;\n const { value } = this.state;\n if (validateOnBlur) this.executeValidations(value);\n onBlur(e);\n }\n\n executeValidations = (value) => {\n const { validations } = this.props;\n if (validations && Array.isArray(validations)) {\n if (\n !validations.some(validation => {\n const { error, payload } = validation({ value });\n if (error)\n this.setState({ validationMessage: payload, state: error });\n return error;\n })\n ) {\n this.setState({ hasError: false });\n }\n }\n }\n\n render() {\n const { children } = this.props;\n const { value, validationMessage, validationState, hasError } = this.state;\n return children({\n value,\n validationMessage,\n validationState,\n hasError,\n onChange: this.handleChange,\n onBlur: this.handleBlur,\n });\n }\n}\n", "import * as React from 'react';\nexport { React };\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;ACAA,YAAuB;ADAvB,mBAA0B;AAE1B,MAAO,+BAA6C,uBAAU;AAAA,EAW5D,YAAY,OAAO;AACjB,UAAM,KAAK;AAoBb,wBAAe,CAAC,MAAM;AACpB,YAAM,EAAE,aAAa,KAAK;AAC1B,WAAK,SAAS,EAAE,OAAO,EAAE,OAAO,MAAM,CAAC;AACvC,UAAI;AAAU,iBAAS,CAAC;AAAA,IAC1B;AAEA,sBAAa,CAAC,MAAM;AAClB,YAAM,EAAE,QAAQ,mBAAmB,KAAK;AACxC,YAAM,EAAE,UAAU,KAAK;AACvB,UAAI;AAAgB,aAAK,mBAAmB,KAAK;AACjD,aAAO,CAAC;AAAA,IACV;AAEA,8BAAqB,CAAC,UAAU;AAC9B,YAAM,EAAE,gBAAgB,KAAK;AAC7B,UAAI,eAAe,MAAM,QAAQ,WAAW,GAAG;AAC7C,YACE,CAAC,YAAY,KAAK,gBAAc;AAC9B,gBAAM,EAAE,OAAO,YAAY,WAAW,EAAE,MAAM,CAAC;AAC/C,cAAI;AACF,iBAAK,SAAS,EAAE,mBAAmB,SAAS,OAAO,MAAM,CAAC;AAC5D,iBAAO;AAAA,QACT,CAAC,GACD;AACA,eAAK,SAAS,EAAE,UAAU,MAAM,CAAC;AAAA,QACnC;AAAA,MACF;AAAA,IACF;AA9CE,SAAK,QAAQ;AAAA,MACX,OAAO,MAAM;AAAA,IACf;AAAA,EACF;AAAA,EAEA,oBAAoB;AAClB,UAAM,EAAE,UAAU,KAAK;AACvB,SAAK,mBAAmB,KAAK;AAAA,EAC/B;AAAA,SAEO,yBAAyB,WAAW,WAAW;AACpD,UAAM,EAAE,UAAU;AAClB,QAAI,UAAU,UAAU;AAAO,aAAO;AACtC,WAAO,iCACF,YADE;AAAA,MAEL;AAAA,IACF;AAAA,EACF;AAAA,EA+BA,SAAS;AACP,UAAM,EAAE,aAAa,KAAK;AAC1B,UAAM,EAAE,OAAO,mBAAmB,iBAAiB,aAAa,KAAK;AACrE,WAAO,SAAS;AAAA,MACd;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA,UAAU,KAAK;AAAA,MACf,QAAQ,KAAK;AAAA,IACf,CAAC;AAAA,EACH;AACF;AAxES,AADT,uBACS,eAAe;AAAA,EACpB,gBAAgB;AAAA,EAChB,kBAAkB;AAAA,EAClB,MAAM;AAAA,EACN,OAAO;AAAA,EACP,UAAU,MAAM;AAAA,EAChB,UAAU,MAAM;AAAA,EAChB,QAAQ,MAAM;AAChB;",
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;ACAA,YAAuB;ADAvB,mBAA0B;AAE1B,MAAO,+BAA6C,uBAAU;AAAA,EAW5D,YAAY,OAAO;AACjB,UAAM,KAAK;AAoBb,wBAAe,CAAC,MAAM;AACpB,YAAM,EAAE,aAAa,KAAK;AAC1B,WAAK,SAAS,EAAE,OAAO,EAAE,OAAO,MAAM,CAAC;AACvC,UAAI;AAAU,iBAAS,CAAC;AAAA,IAC1B;AAEA,sBAAa,CAAC,MAAM;AAClB,YAAM,EAAE,QAAQ,mBAAmB,KAAK;AACxC,YAAM,EAAE,UAAU,KAAK;AACvB,UAAI;AAAgB,aAAK,mBAAmB,KAAK;AACjD,aAAO,CAAC;AAAA,IACV;AAEA,8BAAqB,CAAC,UAAU;AAC9B,YAAM,EAAE,gBAAgB,KAAK;AAC7B,UAAI,eAAe,MAAM,QAAQ,WAAW,GAAG;AAC7C,YACE,CAAC,YAAY,KAAK,gBAAc;AAC9B,gBAAM,EAAE,OAAO,YAAY,WAAW,EAAE,MAAM,CAAC;AAC/C,cAAI;AACF,iBAAK,SAAS,EAAE,mBAAmB,SAAS,OAAO,MAAM,CAAC;AAC5D,iBAAO;AAAA,QACT,CAAC,GACD;AACA,eAAK,SAAS,EAAE,UAAU,MAAM,CAAC;AAAA,QACnC;AAAA,MACF;AAAA,IACF;AA9CE,SAAK,QAAQ;AAAA,MACX,OAAO,MAAM;AAAA,IACf;AAAA,EACF;AAAA,EAEA,oBAAoB;AAClB,UAAM,EAAE,UAAU,KAAK;AACvB,SAAK,mBAAmB,KAAK;AAAA,EAC/B;AAAA,EAEA,OAAO,yBAAyB,WAAW,WAAW;AACpD,UAAM,EAAE,UAAU;AAClB,QAAI,UAAU,UAAU;AAAO,aAAO;AACtC,WAAO,iCACF,YADE;AAAA,MAEL;AAAA,IACF;AAAA,EACF;AAAA,EA+BA,SAAS;AACP,UAAM,EAAE,aAAa,KAAK;AAC1B,UAAM,EAAE,OAAO,mBAAmB,iBAAiB,aAAa,KAAK;AACrE,WAAO,SAAS;AAAA,MACd;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA,UAAU,KAAK;AAAA,MACf,QAAQ,KAAK;AAAA,IACf,CAAC;AAAA,EACH;AACF;AAxEE,AADmB,uBACZ,eAAe;AAAA,EACpB,gBAAgB;AAAA,EAChB,kBAAkB;AAAA,EAClB,MAAM;AAAA,EACN,OAAO;AAAA,EACP,UAAU,MAAM;AAAA,EAChB,UAAU,MAAM;AAAA,EAChB,QAAQ,MAAM;AAChB;",
6
6
  "names": []
7
7
  }
@@ -63,7 +63,9 @@ const props = {
63
63
  onKeyUp: import_ds_utilities.PropTypes.func.description("on key up event handler"),
64
64
  mask: import_ds_utilities.PropTypes.oneOfType([
65
65
  import_ds_utilities.PropTypes.string,
66
- import_ds_utilities.PropTypes.func
66
+ import_ds_utilities.PropTypes.func,
67
+ import_ds_utilities.PropTypes.object,
68
+ import_ds_utilities.PropTypes.array
67
69
  ]).description("mask for input mask component"),
68
70
  useSubfix: import_ds_utilities.PropTypes.string.description("add suffix to input"),
69
71
  suffix: import_ds_utilities.PropTypes.string.description("suffix for input"),
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/FormItem/props.tsx", "../../../../../scripts/build/transpile/react-shim.js"],
4
- "sourcesContent": ["import { PropTypes } from '@elliemae/ds-utilities';\nimport { FORMITEM_LAYOUT_VARIANTS } from './variants';\n\nexport const props = {\n /** props to inject to form item layout wrapper */\n containerProps: PropTypes.object.description('props to inject to form item layout wrapper'),\n /** disableTooltip */\n disableTooltip: PropTypes.bool\n .description('Whether to show a tooltip or not when text does not fit')\n .defaultValue(true),\n /** position label on the left */\n leftLabel: PropTypes.bool.description('position label on the left'),\n /** turn on floating label */\n floatingLabel: PropTypes.bool.description('turn on floating label'),\n /** id for form item layout */\n id: PropTypes.string.description('id for form item layout'),\n /** html name prop for form tags */\n name: PropTypes.string.description('html name prop for form tags'),\n /** form item layout element value */\n value: PropTypes.oneOfType([PropTypes.string, PropTypes.number, PropTypes.object]).description(\n 'form item layout element value',\n ),\n /** Any input component */\n inputComponent: PropTypes.oneOfType([PropTypes.func, PropTypes.element]).description('Any input component'),\n /** isShowElipsisActive */\n /** isShowElipsisActive */\n isShowElipsisActive: PropTypes.bool\n .description('Wheter to enable the ellipsis and tooltip functionality or not')\n .defaultValue(true),\n /** Label component */\n labelComponent: PropTypes.func.description('Label component'),\n /** feedback component to embed on form item */\n feedbackComponent: PropTypes.func.description('feedback component to embed on form item'),\n /** label text */\n labelText: PropTypes.oneOfType([PropTypes.string, PropTypes.element]).description('label text'),\n /** error state */\n hasError: PropTypes.bool.description('error state'),\n /** add fit content to form container */\n fitContent: PropTypes.bool.description(\n 'Adds fit content css property to the main container, making the layout width adapt to the input component',\n ),\n /** validation state */\n validationState: PropTypes.oneOf(['success', 'error', 'warning']).description('validation state'),\n /** validation message */\n validationMessage: PropTypes.string.description('validation message'),\n /** feedback message */\n feedbackMessage: PropTypes.string.description('feedback message'),\n /** read only form item */\n readOnly: PropTypes.bool.description('read only form item'),\n /** focused state */\n focused: PropTypes.bool.description('focused state'),\n /** input type */\n type: PropTypes.string.description('input type'),\n /** auto focus input */\n autoFocus: PropTypes.bool.description('auto focus input'),\n /** disabled state */\n disabled: PropTypes.bool.description('disabled state'),\n /** on change handler */\n onChange: PropTypes.func.description('on change handler'),\n /** on blur handler */\n onBlur: PropTypes.func.description('on blur handler'),\n /** extra input props to inject */\n extraInputProps: PropTypes.object.description('extra input props to inject'),\n /** extra content */\n extraContent: PropTypes.element.description('extra content'),\n /** left addon for form item */\n leftAddon: PropTypes.element.description('left addon for form item'),\n /** right addon for form item */\n rightAddon: PropTypes.element.description('right addon for form item'),\n /** add required mark */\n required: PropTypes.bool.description('add required mark'),\n /** add optional mark */\n optional: PropTypes.bool.description('add optional mark'),\n /** on focus handler */\n onFocus: PropTypes.func.description('on focus handler'),\n /** on paste handler */\n onPaste: PropTypes.func.description('on paste handler'),\n /** add truncation and ellipsis */\n truncateText: PropTypes.bool.description('add truncation and ellipsis'),\n /** on key up event handler */\n onKeyUp: PropTypes.func.description('on key up event handler'),\n /** mask for input mask component */\n mask: PropTypes.oneOfType([\n // PropTypes.oneOf(maskTypes),\n PropTypes.string,\n PropTypes.func,\n ]).description('mask for input mask component'),\n /** add suffix to input */\n useSubfix: PropTypes.string.description('add suffix to input'),\n /** suffix for input */\n suffix: PropTypes.string.description('suffix for input'),\n /** form item layout type */\n variant: PropTypes.oneOf([\n FORMITEM_LAYOUT_VARIANTS.DEFAULT,\n FORMITEM_LAYOUT_VARIANTS.FOCUS,\n FORMITEM_LAYOUT_VARIANTS.ACTIVE,\n FORMITEM_LAYOUT_VARIANTS.DISABLED,\n FORMITEM_LAYOUT_VARIANTS.READ_ONLY,\n FORMITEM_LAYOUT_VARIANTS.OPTIONAL,\n ]).description('form item layout type'),\n withHighlight: PropTypes.bool.description('adds highlight style to the input component'),\n};\n", "import * as React from 'react';\nexport { React };\n"],
5
- "mappings": "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",
4
+ "sourcesContent": ["import { PropTypes } from '@elliemae/ds-utilities';\nimport { FORMITEM_LAYOUT_VARIANTS } from './variants';\n\nexport const props = {\n /** props to inject to form item layout wrapper */\n containerProps: PropTypes.object.description('props to inject to form item layout wrapper'),\n /** disableTooltip */\n disableTooltip: PropTypes.bool\n .description('Whether to show a tooltip or not when text does not fit')\n .defaultValue(true),\n /** position label on the left */\n leftLabel: PropTypes.bool.description('position label on the left'),\n /** turn on floating label */\n floatingLabel: PropTypes.bool.description('turn on floating label'),\n /** id for form item layout */\n id: PropTypes.string.description('id for form item layout'),\n /** html name prop for form tags */\n name: PropTypes.string.description('html name prop for form tags'),\n /** form item layout element value */\n value: PropTypes.oneOfType([PropTypes.string, PropTypes.number, PropTypes.object]).description(\n 'form item layout element value',\n ),\n /** Any input component */\n inputComponent: PropTypes.oneOfType([PropTypes.func, PropTypes.element]).description('Any input component'),\n /** isShowElipsisActive */\n /** isShowElipsisActive */\n isShowElipsisActive: PropTypes.bool\n .description('Wheter to enable the ellipsis and tooltip functionality or not')\n .defaultValue(true),\n /** Label component */\n labelComponent: PropTypes.func.description('Label component'),\n /** feedback component to embed on form item */\n feedbackComponent: PropTypes.func.description('feedback component to embed on form item'),\n /** label text */\n labelText: PropTypes.oneOfType([PropTypes.string, PropTypes.element]).description('label text'),\n /** error state */\n hasError: PropTypes.bool.description('error state'),\n /** add fit content to form container */\n fitContent: PropTypes.bool.description(\n 'Adds fit content css property to the main container, making the layout width adapt to the input component',\n ),\n /** validation state */\n validationState: PropTypes.oneOf(['success', 'error', 'warning']).description('validation state'),\n /** validation message */\n validationMessage: PropTypes.string.description('validation message'),\n /** feedback message */\n feedbackMessage: PropTypes.string.description('feedback message'),\n /** read only form item */\n readOnly: PropTypes.bool.description('read only form item'),\n /** focused state */\n focused: PropTypes.bool.description('focused state'),\n /** input type */\n type: PropTypes.string.description('input type'),\n /** auto focus input */\n autoFocus: PropTypes.bool.description('auto focus input'),\n /** disabled state */\n disabled: PropTypes.bool.description('disabled state'),\n /** on change handler */\n onChange: PropTypes.func.description('on change handler'),\n /** on blur handler */\n onBlur: PropTypes.func.description('on blur handler'),\n /** extra input props to inject */\n extraInputProps: PropTypes.object.description('extra input props to inject'),\n /** extra content */\n extraContent: PropTypes.element.description('extra content'),\n /** left addon for form item */\n leftAddon: PropTypes.element.description('left addon for form item'),\n /** right addon for form item */\n rightAddon: PropTypes.element.description('right addon for form item'),\n /** add required mark */\n required: PropTypes.bool.description('add required mark'),\n /** add optional mark */\n optional: PropTypes.bool.description('add optional mark'),\n /** on focus handler */\n onFocus: PropTypes.func.description('on focus handler'),\n /** on paste handler */\n onPaste: PropTypes.func.description('on paste handler'),\n /** add truncation and ellipsis */\n truncateText: PropTypes.bool.description('add truncation and ellipsis'),\n /** on key up event handler */\n onKeyUp: PropTypes.func.description('on key up event handler'),\n /** mask for input mask component */\n mask: PropTypes.oneOfType([\n // PropTypes.oneOf(maskTypes),\n PropTypes.string,\n PropTypes.func,\n PropTypes.object,\n PropTypes.array,\n ]).description('mask for input mask component'),\n /** add suffix to input */\n useSubfix: PropTypes.string.description('add suffix to input'),\n /** suffix for input */\n suffix: PropTypes.string.description('suffix for input'),\n /** form item layout type */\n variant: PropTypes.oneOf([\n FORMITEM_LAYOUT_VARIANTS.DEFAULT,\n FORMITEM_LAYOUT_VARIANTS.FOCUS,\n FORMITEM_LAYOUT_VARIANTS.ACTIVE,\n FORMITEM_LAYOUT_VARIANTS.DISABLED,\n FORMITEM_LAYOUT_VARIANTS.READ_ONLY,\n FORMITEM_LAYOUT_VARIANTS.OPTIONAL,\n ]).description('form item layout type'),\n withHighlight: PropTypes.bool.description('adds highlight style to the input component'),\n};\n", "import * as React from 'react';\nexport { React };\n"],
5
+ "mappings": "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",
6
6
  "names": []
7
7
  }
@@ -2,6 +2,6 @@
2
2
  "version": 3,
3
3
  "sources": ["../../../src/InputGroup/AddonWrapper.tsx", "../../../../../scripts/build/transpile/react-shim.js"],
4
4
  "sourcesContent": ["import React, { Component } from 'react';\nimport { aggregatedClasses } from '@elliemae/ds-classnames';\n\nconst blockName = 'input-addon-group';\n\nconst Container = aggregatedClasses('div')(blockName);\nconst InputAddon = aggregatedClasses('span')(blockName, 'addon');\n\nclass AddonWrapper extends Component {\n static defaultProps = {};\n\n state = {};\n\n render() {\n const {\n leftAddon,\n rightAddon,\n children: inputComponent,\n className,\n containerProps,\n } = this.props;\n const childType =\n inputComponent && inputComponent.type && inputComponent.type.name\n ? inputComponent.type.name.toLowerCase()\n : 'default';\n return (\n <Container\n className={`${className} ${blockName}--${childType}`}\n {...containerProps}\n >\n {leftAddon && <InputAddon>{leftAddon}</InputAddon>}\n {inputComponent}\n {rightAddon && <InputAddon>{rightAddon}</InputAddon>}\n </Container>\n );\n }\n}\n\nexport { AddonWrapper };\nexport default AddonWrapper;\n", "import * as React from 'react';\nexport { React };\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;ACAA,YAAuB;ADAvB,mBAAiC;AACjC,2BAAkC;AAElC,MAAM,YAAY;AAElB,MAAM,YAAY,4CAAkB,KAAK,EAAE,SAAS;AACpD,MAAM,aAAa,4CAAkB,MAAM,EAAE,WAAW,OAAO;AAE/D,MAAM,qBAAqB,uBAAU;AAAA,EAArC;AAAA;AAGE,iBAAQ,CAAC;AAAA;AAAA,EAET,SAAS;AACP,UAAM;AAAA,MACJ;AAAA,MACA;AAAA,MACA,UAAU;AAAA,MACV;AAAA,MACA;AAAA,QACE,KAAK;AACT,UAAM,YACJ,kBAAkB,eAAe,QAAQ,eAAe,KAAK,OACzD,eAAe,KAAK,KAAK,YAAY,IACrC;AACN,WACE,mDAAC;AAAA,MACC,WAAW,GAAG,aAAa,cAAc;AAAA,OACrC,iBAEH,aAAa,mDAAC,kBAAY,SAAU,GACpC,gBACA,cAAc,mDAAC,kBAAY,UAAW,CACzC;AAAA,EAEJ;AACF;AA3BS,AADT,aACS,eAAe,CAAC;AA8BzB,IAAO,uBAAQ;",
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;ACAA,YAAuB;ADAvB,mBAAiC;AACjC,2BAAkC;AAElC,MAAM,YAAY;AAElB,MAAM,YAAY,4CAAkB,KAAK,EAAE,SAAS;AACpD,MAAM,aAAa,4CAAkB,MAAM,EAAE,WAAW,OAAO;AAE/D,MAAM,qBAAqB,uBAAU;AAAA,EAArC;AAAA;AAGE,iBAAQ,CAAC;AAAA;AAAA,EAET,SAAS;AACP,UAAM;AAAA,MACJ;AAAA,MACA;AAAA,MACA,UAAU;AAAA,MACV;AAAA,MACA;AAAA,QACE,KAAK;AACT,UAAM,YACJ,kBAAkB,eAAe,QAAQ,eAAe,KAAK,OACzD,eAAe,KAAK,KAAK,YAAY,IACrC;AACN,WACE,mDAAC;AAAA,MACC,WAAW,GAAG,aAAa,cAAc;AAAA,OACrC,iBAEH,aAAa,mDAAC,kBAAY,SAAU,GACpC,gBACA,cAAc,mDAAC,kBAAY,UAAW,CACzC;AAAA,EAEJ;AACF;AA3BE,AADI,aACG,eAAe,CAAC;AA8BzB,IAAO,uBAAQ;",
6
6
  "names": []
7
7
  }
@@ -55,7 +55,6 @@ __export(DateInputMask_exports, {
55
55
  module.exports = __toCommonJS(DateInputMask_exports);
56
56
  var React = __toESM(require("react"));
57
57
  var import_react = __toESM(require("react"));
58
- var import_ds_utilities = require("@elliemae/ds-utilities");
59
58
  var import_TextBox = require("../../TextBox");
60
59
  var import_setCaretPosition = require("../utils/setCaretPosition");
61
60
  const conformValue = (rawValue, cursorPos, lastkeycode) => {
@@ -231,40 +230,5 @@ const DateInputMask = (_a) => {
231
230
  value: maskedValue
232
231
  }));
233
232
  };
234
- DateInputMask.propTypes = {
235
- focus: import_ds_utilities.PropTypes.bool,
236
- setFocus: import_ds_utilities.PropTypes.func,
237
- setRawMask: import_ds_utilities.PropTypes.func,
238
- cursorPosition: import_ds_utilities.PropTypes.shape({ current: import_ds_utilities.PropTypes.number }),
239
- setCursorPosition: import_ds_utilities.PropTypes.func,
240
- lastkey: import_ds_utilities.PropTypes.shape({ code: import_ds_utilities.PropTypes.number, key: import_ds_utilities.PropTypes.string }),
241
- setLastkey: import_ds_utilities.PropTypes.func,
242
- setRawValue: import_ds_utilities.PropTypes.func,
243
- style: import_ds_utilities.PropTypes.object,
244
- disabled: import_ds_utilities.PropTypes.bool,
245
- className: import_ds_utilities.PropTypes.string,
246
- name: import_ds_utilities.PropTypes.string,
247
- maxLength: import_ds_utilities.PropTypes.number,
248
- minLength: import_ds_utilities.PropTypes.number,
249
- fluidWidth: import_ds_utilities.PropTypes.bool,
250
- placeholder: import_ds_utilities.PropTypes.string,
251
- value: import_ds_utilities.PropTypes.string,
252
- onChange: import_ds_utilities.PropTypes.func,
253
- onKeyDown: import_ds_utilities.PropTypes.func,
254
- leftComponent: import_ds_utilities.PropTypes.element,
255
- rightComponent: import_ds_utilities.PropTypes.element,
256
- onFocus: import_ds_utilities.PropTypes.func,
257
- onBlur: import_ds_utilities.PropTypes.func,
258
- onPaste: import_ds_utilities.PropTypes.func,
259
- onKeyUp: import_ds_utilities.PropTypes.func,
260
- hasError: import_ds_utilities.PropTypes.bool,
261
- readOnly: import_ds_utilities.PropTypes.bool,
262
- onClick: import_ds_utilities.PropTypes.func,
263
- clearable: import_ds_utilities.PropTypes.bool,
264
- type: import_ds_utilities.PropTypes.string,
265
- innerRef: import_ds_utilities.PropTypes.any,
266
- mask: import_ds_utilities.PropTypes.any,
267
- placeholderChar: import_ds_utilities.PropTypes.string
268
- };
269
233
  var DateInputMask_default = DateInputMask;
270
234
  //# sourceMappingURL=DateInputMask.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../src/InputMask/mask_types/DateInputMask.tsx", "../../../../../../scripts/build/transpile/react-shim.js"],
4
- "sourcesContent": ["/* eslint-disable max-lines */\n/* eslint-disable complexity */\nimport React, { useCallback, useLayoutEffect, useRef, useState } from 'react';\nimport { PropTypes } from '@elliemae/ds-utilities';\nimport { DSTextBox } from '../../TextBox';\nimport { TCharsToAdd } from '../types';\nimport { setCaretPosition } from '../utils/setCaretPosition';\n\nconst conformValue = (\n rawValue: string,\n cursorPos: number,\n lastkeycode: number,\n) => {\n const nextMaskedValue = rawValue\n .split('')\n .filter((char) => char >= '0' && char <= '9')\n .slice(0, 8);\n\n let maskedPos = 0;\n for (let i = 0; i < cursorPos; i += 1) {\n if (nextMaskedValue[maskedPos] === rawValue[i]) maskedPos += 1;\n }\n\n // list of [string to add, position to add]\n const charactersToAdd: TCharsToAdd = [\n ['/', 2],\n ['/', 5],\n ];\n\n charactersToAdd.forEach(([chars, pos]) => {\n if (nextMaskedValue.length > pos) {\n nextMaskedValue.splice(pos, 0, chars);\n if (maskedPos >= pos) maskedPos += chars.length;\n }\n });\n\n if (lastkeycode !== 8 && maskedPos < nextMaskedValue.length) {\n charactersToAdd.forEach(([chars, pos]) => {\n if (maskedPos === pos) maskedPos += chars.length;\n });\n } else if (lastkeycode === 8 && maskedPos) {\n charactersToAdd.forEach(([chars, pos]) => {\n if (maskedPos === pos + 1) maskedPos -= chars.length;\n });\n }\n\n return { nextMaskedValue: nextMaskedValue.join(''), maskedPos };\n};\n\nconst DateInputMask = ({\n focus,\n setFocus,\n setRawMask,\n cursorPosition,\n setCursorPosition,\n lastkey,\n setLastkey,\n setRawValue,\n style,\n disabled,\n className,\n name,\n maxLength,\n minLength,\n fluidWidth,\n placeholder,\n onKeyDown,\n onClick,\n onChange,\n onFocus,\n onBlur,\n onPaste,\n onKeyUp,\n hasError,\n readOnly,\n type,\n innerRef,\n clearable = false,\n leftComponent,\n rightComponent,\n value,\n ...rest\n}) => {\n const inputRef = useRef();\n const [maskedValue, setMaskedValue] = useState(value);\n\n const conform = useCallback(\n ({ rawValue, cursorPos, lastkeycode, shouldUpdateCursorPos = true }) => {\n const { nextMaskedValue, maskedPos } = conformValue(\n rawValue,\n cursorPos,\n lastkeycode,\n );\n const event = {\n target: {\n value: nextMaskedValue,\n originalValue: rawValue,\n },\n };\n if (onChange && nextMaskedValue !== maskedValue) onChange(event);\n\n setMaskedValue(nextMaskedValue);\n setRawValue(nextMaskedValue);\n\n if (shouldUpdateCursorPos) setCursorPosition({ current: maskedPos });\n },\n [maskedValue, onChange],\n );\n\n const handleOnChange = useCallback(\n (e) => {\n const { value: rawValue, selectionEnd } = e.target;\n setRawMask(rawValue);\n setRawValue(rawValue);\n setCursorPosition({ current: selectionEnd });\n setFocus(true);\n },\n [setRawMask, setRawValue, setCursorPosition, setFocus, lastkey.code],\n );\n\n useLayoutEffect(() => {\n if (focus) setCaretPosition(inputRef.current, cursorPosition.current);\n }, [focus, cursorPosition]);\n\n useLayoutEffect(() => {\n // if the value changes, then re-conform the mask\n conform({\n rawValue: value,\n cursorPos: cursorPosition.current,\n lastkeycode: lastkey.code,\n shouldUpdateCursorPos: focus,\n });\n }, [focus, value, cursorPosition.current]);\n\n const handleKeyDown = useCallback(\n (e) => {\n e.stopPropagation();\n setLastkey({ key: e.key, code: e.keyCode });\n onKeyDown(e);\n },\n [onKeyDown],\n );\n\n const handleBlur = useCallback(\n (e) => {\n setFocus(false);\n onBlur(e);\n },\n [onBlur],\n );\n\n return (\n <DSTextBox\n {...rest}\n className={className}\n clearable={clearable}\n disabled={disabled}\n fluidWidth={fluidWidth}\n hasError={hasError}\n innerRef={(ref) => {\n inputRef.current = ref;\n if (innerRef) innerRef(ref);\n }}\n isActive={focus}\n leftComponent={leftComponent}\n maxLength={maxLength}\n minLength={minLength}\n name={name}\n onBlur={handleBlur}\n onChange={handleOnChange}\n onClick={onClick}\n onFocus={onFocus}\n onKeyDown={handleKeyDown}\n onKeyUp={onKeyUp}\n onPaste={onPaste}\n placeholder={placeholder}\n readOnly={readOnly}\n rightComponent={rightComponent}\n style={style}\n type={type}\n value={maskedValue}\n />\n );\n};\n\nDateInputMask.propTypes = {\n focus: PropTypes.bool,\n setFocus: PropTypes.func,\n setRawMask: PropTypes.func,\n cursorPosition: PropTypes.shape({ current: PropTypes.number }),\n setCursorPosition: PropTypes.func,\n lastkey: PropTypes.shape({ code: PropTypes.number, key: PropTypes.string }),\n setLastkey: PropTypes.func,\n setRawValue: PropTypes.func,\n style: PropTypes.object,\n disabled: PropTypes.bool,\n className: PropTypes.string,\n name: PropTypes.string,\n maxLength: PropTypes.number,\n minLength: PropTypes.number,\n fluidWidth: PropTypes.bool,\n placeholder: PropTypes.string,\n value: PropTypes.string,\n onChange: PropTypes.func,\n onKeyDown: PropTypes.func,\n leftComponent: PropTypes.element,\n rightComponent: PropTypes.element,\n onFocus: PropTypes.func,\n onBlur: PropTypes.func,\n onPaste: PropTypes.func,\n onKeyUp: PropTypes.func,\n hasError: PropTypes.bool,\n readOnly: PropTypes.bool,\n onClick: PropTypes.func,\n clearable: PropTypes.bool,\n type: PropTypes.string,\n innerRef: PropTypes.any,\n mask: PropTypes.any,\n placeholderChar: PropTypes.string,\n};\n\nexport { DateInputMask };\nexport default DateInputMask;\n", "import * as React from 'react';\nexport { React };\n"],
5
- "mappings": "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",
4
+ "sourcesContent": ["/* eslint-disable max-lines */\n/* eslint-disable complexity */\nimport React, { useCallback, useLayoutEffect, useRef, useState } from 'react';\nimport { PropTypes } from '@elliemae/ds-utilities';\nimport { DSTextBox } from '../../TextBox';\nimport { TCharsToAdd } from '../types';\nimport { setCaretPosition } from '../utils/setCaretPosition';\n\nconst conformValue = (\n rawValue: string,\n cursorPos: number,\n lastkeycode: number,\n) => {\n const nextMaskedValue = rawValue\n .split('')\n .filter((char) => char >= '0' && char <= '9')\n .slice(0, 8);\n\n let maskedPos = 0;\n for (let i = 0; i < cursorPos; i += 1) {\n if (nextMaskedValue[maskedPos] === rawValue[i]) maskedPos += 1;\n }\n\n // list of [string to add, position to add]\n const charactersToAdd: TCharsToAdd = [\n ['/', 2],\n ['/', 5],\n ];\n\n charactersToAdd.forEach(([chars, pos]) => {\n if (nextMaskedValue.length > pos) {\n nextMaskedValue.splice(pos, 0, chars);\n if (maskedPos >= pos) maskedPos += chars.length;\n }\n });\n\n if (lastkeycode !== 8 && maskedPos < nextMaskedValue.length) {\n charactersToAdd.forEach(([chars, pos]) => {\n if (maskedPos === pos) maskedPos += chars.length;\n });\n } else if (lastkeycode === 8 && maskedPos) {\n charactersToAdd.forEach(([chars, pos]) => {\n if (maskedPos === pos + 1) maskedPos -= chars.length;\n });\n }\n\n return { nextMaskedValue: nextMaskedValue.join(''), maskedPos };\n};\n\nconst DateInputMask = ({\n focus,\n setFocus,\n setRawMask,\n cursorPosition,\n setCursorPosition,\n lastkey,\n setLastkey,\n setRawValue,\n style,\n disabled,\n className,\n name,\n maxLength,\n minLength,\n fluidWidth,\n placeholder,\n onKeyDown,\n onClick,\n onChange,\n onFocus,\n onBlur,\n onPaste,\n onKeyUp,\n hasError,\n readOnly,\n type,\n innerRef,\n clearable = false,\n leftComponent,\n rightComponent,\n value,\n ...rest\n}) => {\n const inputRef = useRef();\n const [maskedValue, setMaskedValue] = useState(value);\n\n const conform = useCallback(\n ({ rawValue, cursorPos, lastkeycode, shouldUpdateCursorPos = true }) => {\n const { nextMaskedValue, maskedPos } = conformValue(\n rawValue,\n cursorPos,\n lastkeycode,\n );\n const event = {\n target: {\n value: nextMaskedValue,\n originalValue: rawValue,\n },\n };\n if (onChange && nextMaskedValue !== maskedValue) onChange(event);\n\n setMaskedValue(nextMaskedValue);\n setRawValue(nextMaskedValue);\n\n if (shouldUpdateCursorPos) setCursorPosition({ current: maskedPos });\n },\n [maskedValue, onChange],\n );\n\n const handleOnChange = useCallback(\n (e) => {\n const { value: rawValue, selectionEnd } = e.target;\n setRawMask(rawValue);\n setRawValue(rawValue);\n setCursorPosition({ current: selectionEnd });\n setFocus(true);\n },\n [setRawMask, setRawValue, setCursorPosition, setFocus, lastkey.code],\n );\n\n useLayoutEffect(() => {\n if (focus) setCaretPosition(inputRef.current, cursorPosition.current);\n }, [focus, cursorPosition]);\n\n useLayoutEffect(() => {\n // if the value changes, then re-conform the mask\n conform({\n rawValue: value,\n cursorPos: cursorPosition.current,\n lastkeycode: lastkey.code,\n shouldUpdateCursorPos: focus,\n });\n }, [focus, value, cursorPosition.current]);\n\n const handleKeyDown = useCallback(\n (e) => {\n e.stopPropagation();\n setLastkey({ key: e.key, code: e.keyCode });\n onKeyDown(e);\n },\n [onKeyDown],\n );\n\n const handleBlur = useCallback(\n (e) => {\n setFocus(false);\n onBlur(e);\n },\n [onBlur],\n );\n\n return (\n <DSTextBox\n {...rest}\n className={className}\n clearable={clearable}\n disabled={disabled}\n fluidWidth={fluidWidth}\n hasError={hasError}\n innerRef={(ref) => {\n inputRef.current = ref;\n if (innerRef) innerRef(ref);\n }}\n isActive={focus}\n leftComponent={leftComponent}\n maxLength={maxLength}\n minLength={minLength}\n name={name}\n onBlur={handleBlur}\n onChange={handleOnChange}\n onClick={onClick}\n onFocus={onFocus}\n onKeyDown={handleKeyDown}\n onKeyUp={onKeyUp}\n onPaste={onPaste}\n placeholder={placeholder}\n readOnly={readOnly}\n rightComponent={rightComponent}\n style={style}\n type={type}\n value={maskedValue}\n />\n );\n};\n\nexport { DateInputMask };\nexport default DateInputMask;\n", "import * as React from 'react';\nexport { React };\n"],
5
+ "mappings": "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",
6
6
  "names": []
7
7
  }
@@ -55,7 +55,6 @@ __export(DateTimeInputMask_exports, {
55
55
  module.exports = __toCommonJS(DateTimeInputMask_exports);
56
56
  var React = __toESM(require("react"));
57
57
  var import_react = __toESM(require("react"));
58
- var import_ds_utilities = require("@elliemae/ds-utilities");
59
58
  var import_TextBox = require("../../TextBox");
60
59
  var import_setCaretPosition = require("../utils/setCaretPosition");
61
60
  const conformValue = (rawValue, cursorPos, lastkeycode) => {
@@ -237,40 +236,5 @@ const DateTimeInputMask = (_a) => {
237
236
  value: maskedValue
238
237
  }));
239
238
  };
240
- DateTimeInputMask.propTypes = {
241
- focus: import_ds_utilities.PropTypes.bool,
242
- setFocus: import_ds_utilities.PropTypes.func,
243
- setRawMask: import_ds_utilities.PropTypes.func,
244
- cursorPosition: import_ds_utilities.PropTypes.shape({ current: import_ds_utilities.PropTypes.number }),
245
- setCursorPosition: import_ds_utilities.PropTypes.func,
246
- lastkey: import_ds_utilities.PropTypes.shape({ code: import_ds_utilities.PropTypes.number, key: import_ds_utilities.PropTypes.string }),
247
- setLastkey: import_ds_utilities.PropTypes.func,
248
- setRawValue: import_ds_utilities.PropTypes.func,
249
- style: import_ds_utilities.PropTypes.object,
250
- disabled: import_ds_utilities.PropTypes.bool,
251
- className: import_ds_utilities.PropTypes.string,
252
- name: import_ds_utilities.PropTypes.string,
253
- maxLength: import_ds_utilities.PropTypes.number,
254
- minLength: import_ds_utilities.PropTypes.number,
255
- fluidWidth: import_ds_utilities.PropTypes.bool,
256
- placeholder: import_ds_utilities.PropTypes.string,
257
- value: import_ds_utilities.PropTypes.string,
258
- onChange: import_ds_utilities.PropTypes.func,
259
- onKeyDown: import_ds_utilities.PropTypes.func,
260
- leftComponent: import_ds_utilities.PropTypes.element,
261
- rightComponent: import_ds_utilities.PropTypes.element,
262
- onFocus: import_ds_utilities.PropTypes.func,
263
- onBlur: import_ds_utilities.PropTypes.func,
264
- onPaste: import_ds_utilities.PropTypes.func,
265
- onKeyUp: import_ds_utilities.PropTypes.func,
266
- hasError: import_ds_utilities.PropTypes.bool,
267
- readOnly: import_ds_utilities.PropTypes.bool,
268
- onClick: import_ds_utilities.PropTypes.func,
269
- clearable: import_ds_utilities.PropTypes.bool,
270
- type: import_ds_utilities.PropTypes.string,
271
- innerRef: import_ds_utilities.PropTypes.any,
272
- mask: import_ds_utilities.PropTypes.any,
273
- placeholderChar: import_ds_utilities.PropTypes.string
274
- };
275
239
  var DateTimeInputMask_default = DateTimeInputMask;
276
240
  //# sourceMappingURL=DateTimeInputMask.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../src/InputMask/mask_types/DateTimeInputMask.tsx", "../../../../../../scripts/build/transpile/react-shim.js"],
4
- "sourcesContent": ["/* eslint-disable max-statements */\n/* eslint-disable max-lines */\n/* eslint-disable complexity */\nimport React, { useCallback, useLayoutEffect, useRef, useState } from 'react';\nimport { PropTypes } from '@elliemae/ds-utilities';\nimport { DSTextBox } from '../../TextBox';\nimport { TCharsToAdd } from '../types';\nimport { setCaretPosition } from '../utils/setCaretPosition';\n\nconst conformValue = (\n rawValue: string,\n cursorPos: number,\n lastkeycode: number,\n) => {\n const nextMaskedValue = rawValue\n .split('')\n .filter((char) => char >= '0' && char <= '9')\n .slice(0, 12);\n\n while (nextMaskedValue.length > 8 && !nextMaskedValue[8].match(/[0-2]/))\n nextMaskedValue.splice(8, 1);\n while (nextMaskedValue.length > 10 && !nextMaskedValue[10].match(/[0-5]/))\n nextMaskedValue.splice(10, 1);\n\n let maskedPos = 0;\n for (let i = 0; i < cursorPos; i += 1) {\n if (nextMaskedValue[maskedPos] === rawValue[i]) maskedPos += 1;\n }\n\n // list of [string to add, position to add]\n const charactersToAdd: TCharsToAdd = [\n ['/', 2],\n ['/', 5],\n [' ', 10],\n [':', 13],\n ];\n\n charactersToAdd.forEach(([chars, pos]) => {\n if (nextMaskedValue.length > pos) {\n nextMaskedValue.splice(pos, 0, chars);\n if (maskedPos >= pos) maskedPos += chars.length;\n }\n });\n\n if (lastkeycode !== 8 && maskedPos < nextMaskedValue.length) {\n charactersToAdd.forEach(([chars, pos]) => {\n if (maskedPos === pos) maskedPos += chars.length;\n });\n } else if (lastkeycode === 8 && maskedPos) {\n charactersToAdd.forEach(([chars, pos]) => {\n if (maskedPos === pos + 1) maskedPos -= chars.length;\n });\n }\n\n return { nextMaskedValue: nextMaskedValue.join(''), maskedPos };\n};\n\nconst DateTimeInputMask = ({\n focus,\n setFocus,\n setRawMask,\n cursorPosition,\n setCursorPosition,\n lastkey,\n setLastkey,\n setRawValue,\n style,\n disabled,\n className,\n name,\n maxLength,\n minLength,\n fluidWidth,\n placeholder,\n onKeyDown,\n onClick,\n onChange,\n onFocus,\n onBlur,\n onPaste,\n onKeyUp,\n hasError,\n readOnly,\n type,\n innerRef,\n clearable = false,\n leftComponent,\n rightComponent,\n value,\n ...rest\n}) => {\n const inputRef = useRef();\n const [maskedValue, setMaskedValue] = useState(value);\n\n const conform = useCallback(\n ({ rawValue, cursorPos, lastkeycode, shouldUpdateCursorPos = true }) => {\n const { nextMaskedValue, maskedPos } = conformValue(\n rawValue,\n cursorPos,\n lastkeycode,\n );\n const event = {\n target: {\n value: nextMaskedValue,\n originalValue: rawValue,\n },\n };\n if (onChange && nextMaskedValue !== maskedValue) onChange(event);\n\n setMaskedValue(nextMaskedValue);\n setRawValue(nextMaskedValue);\n\n if (shouldUpdateCursorPos) setCursorPosition({ current: maskedPos });\n },\n [maskedValue, onChange],\n );\n\n const handleOnChange = useCallback(\n (e) => {\n const { value: rawValue, selectionEnd } = e.target;\n setRawMask(rawValue);\n setRawValue(rawValue);\n setCursorPosition({ current: selectionEnd });\n setFocus(true);\n },\n [setRawMask, setRawValue, setCursorPosition, setFocus, lastkey.code],\n );\n\n useLayoutEffect(() => {\n if (focus) setCaretPosition(inputRef.current, cursorPosition.current);\n }, [focus, cursorPosition]);\n\n useLayoutEffect(() => {\n // if the value changes, then re-conform the mask\n conform({\n rawValue: value,\n cursorPos: cursorPosition.current,\n lastkeycode: lastkey.code,\n shouldUpdateCursorPos: focus,\n });\n }, [focus, value, cursorPosition.current]);\n\n const handleKeyDown = useCallback(\n (e) => {\n e.stopPropagation();\n setLastkey({ key: e.key, code: e.keyCode });\n onKeyDown(e);\n },\n [onKeyDown],\n );\n\n const handleBlur = useCallback(\n (e) => {\n setFocus(false);\n onBlur(e);\n },\n [onBlur],\n );\n\n return (\n <DSTextBox\n {...rest}\n className={className}\n clearable={clearable}\n disabled={disabled}\n fluidWidth={fluidWidth}\n hasError={hasError}\n innerRef={(ref) => {\n inputRef.current = ref;\n if (innerRef) innerRef(ref);\n }}\n isActive={focus}\n leftComponent={leftComponent}\n maxLength={maxLength}\n minLength={minLength}\n name={name}\n onBlur={handleBlur}\n onChange={handleOnChange}\n onClick={onClick}\n onFocus={onFocus}\n onKeyDown={handleKeyDown}\n onKeyUp={onKeyUp}\n onPaste={onPaste}\n placeholder={placeholder}\n readOnly={readOnly}\n rightComponent={rightComponent}\n style={style}\n type={type}\n value={maskedValue}\n />\n );\n};\n\nDateTimeInputMask.propTypes = {\n focus: PropTypes.bool,\n setFocus: PropTypes.func,\n setRawMask: PropTypes.func,\n cursorPosition: PropTypes.shape({ current: PropTypes.number }),\n setCursorPosition: PropTypes.func,\n lastkey: PropTypes.shape({ code: PropTypes.number, key: PropTypes.string }),\n setLastkey: PropTypes.func,\n setRawValue: PropTypes.func,\n style: PropTypes.object,\n disabled: PropTypes.bool,\n className: PropTypes.string,\n name: PropTypes.string,\n maxLength: PropTypes.number,\n minLength: PropTypes.number,\n fluidWidth: PropTypes.bool,\n placeholder: PropTypes.string,\n value: PropTypes.string,\n onChange: PropTypes.func,\n onKeyDown: PropTypes.func,\n leftComponent: PropTypes.element,\n rightComponent: PropTypes.element,\n onFocus: PropTypes.func,\n onBlur: PropTypes.func,\n onPaste: PropTypes.func,\n onKeyUp: PropTypes.func,\n hasError: PropTypes.bool,\n readOnly: PropTypes.bool,\n onClick: PropTypes.func,\n clearable: PropTypes.bool,\n type: PropTypes.string,\n innerRef: PropTypes.any,\n mask: PropTypes.any,\n placeholderChar: PropTypes.string,\n};\n\nexport { DateTimeInputMask };\nexport default DateTimeInputMask;\n", "import * as React from 'react';\nexport { React };\n"],
5
- "mappings": "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",
4
+ "sourcesContent": ["/* eslint-disable max-statements */\n/* eslint-disable max-lines */\n/* eslint-disable complexity */\nimport React, { useCallback, useLayoutEffect, useRef, useState } from 'react';\nimport { PropTypes } from '@elliemae/ds-utilities';\nimport { DSTextBox } from '../../TextBox';\nimport { TCharsToAdd } from '../types';\nimport { setCaretPosition } from '../utils/setCaretPosition';\n\nconst conformValue = (\n rawValue: string,\n cursorPos: number,\n lastkeycode: number,\n) => {\n const nextMaskedValue = rawValue\n .split('')\n .filter((char) => char >= '0' && char <= '9')\n .slice(0, 12);\n\n while (nextMaskedValue.length > 8 && !nextMaskedValue[8].match(/[0-2]/))\n nextMaskedValue.splice(8, 1);\n while (nextMaskedValue.length > 10 && !nextMaskedValue[10].match(/[0-5]/))\n nextMaskedValue.splice(10, 1);\n\n let maskedPos = 0;\n for (let i = 0; i < cursorPos; i += 1) {\n if (nextMaskedValue[maskedPos] === rawValue[i]) maskedPos += 1;\n }\n\n // list of [string to add, position to add]\n const charactersToAdd: TCharsToAdd = [\n ['/', 2],\n ['/', 5],\n [' ', 10],\n [':', 13],\n ];\n\n charactersToAdd.forEach(([chars, pos]) => {\n if (nextMaskedValue.length > pos) {\n nextMaskedValue.splice(pos, 0, chars);\n if (maskedPos >= pos) maskedPos += chars.length;\n }\n });\n\n if (lastkeycode !== 8 && maskedPos < nextMaskedValue.length) {\n charactersToAdd.forEach(([chars, pos]) => {\n if (maskedPos === pos) maskedPos += chars.length;\n });\n } else if (lastkeycode === 8 && maskedPos) {\n charactersToAdd.forEach(([chars, pos]) => {\n if (maskedPos === pos + 1) maskedPos -= chars.length;\n });\n }\n\n return { nextMaskedValue: nextMaskedValue.join(''), maskedPos };\n};\n\nconst DateTimeInputMask = ({\n focus,\n setFocus,\n setRawMask,\n cursorPosition,\n setCursorPosition,\n lastkey,\n setLastkey,\n setRawValue,\n style,\n disabled,\n className,\n name,\n maxLength,\n minLength,\n fluidWidth,\n placeholder,\n onKeyDown,\n onClick,\n onChange,\n onFocus,\n onBlur,\n onPaste,\n onKeyUp,\n hasError,\n readOnly,\n type,\n innerRef,\n clearable = false,\n leftComponent,\n rightComponent,\n value,\n ...rest\n}) => {\n const inputRef = useRef();\n const [maskedValue, setMaskedValue] = useState(value);\n\n const conform = useCallback(\n ({ rawValue, cursorPos, lastkeycode, shouldUpdateCursorPos = true }) => {\n const { nextMaskedValue, maskedPos } = conformValue(\n rawValue,\n cursorPos,\n lastkeycode,\n );\n const event = {\n target: {\n value: nextMaskedValue,\n originalValue: rawValue,\n },\n };\n if (onChange && nextMaskedValue !== maskedValue) onChange(event);\n\n setMaskedValue(nextMaskedValue);\n setRawValue(nextMaskedValue);\n\n if (shouldUpdateCursorPos) setCursorPosition({ current: maskedPos });\n },\n [maskedValue, onChange],\n );\n\n const handleOnChange = useCallback(\n (e) => {\n const { value: rawValue, selectionEnd } = e.target;\n setRawMask(rawValue);\n setRawValue(rawValue);\n setCursorPosition({ current: selectionEnd });\n setFocus(true);\n },\n [setRawMask, setRawValue, setCursorPosition, setFocus, lastkey.code],\n );\n\n useLayoutEffect(() => {\n if (focus) setCaretPosition(inputRef.current, cursorPosition.current);\n }, [focus, cursorPosition]);\n\n useLayoutEffect(() => {\n // if the value changes, then re-conform the mask\n conform({\n rawValue: value,\n cursorPos: cursorPosition.current,\n lastkeycode: lastkey.code,\n shouldUpdateCursorPos: focus,\n });\n }, [focus, value, cursorPosition.current]);\n\n const handleKeyDown = useCallback(\n (e) => {\n e.stopPropagation();\n setLastkey({ key: e.key, code: e.keyCode });\n onKeyDown(e);\n },\n [onKeyDown],\n );\n\n const handleBlur = useCallback(\n (e) => {\n setFocus(false);\n onBlur(e);\n },\n [onBlur],\n );\n\n return (\n <DSTextBox\n {...rest}\n className={className}\n clearable={clearable}\n disabled={disabled}\n fluidWidth={fluidWidth}\n hasError={hasError}\n innerRef={(ref) => {\n inputRef.current = ref;\n if (innerRef) innerRef(ref);\n }}\n isActive={focus}\n leftComponent={leftComponent}\n maxLength={maxLength}\n minLength={minLength}\n name={name}\n onBlur={handleBlur}\n onChange={handleOnChange}\n onClick={onClick}\n onFocus={onFocus}\n onKeyDown={handleKeyDown}\n onKeyUp={onKeyUp}\n onPaste={onPaste}\n placeholder={placeholder}\n readOnly={readOnly}\n rightComponent={rightComponent}\n style={style}\n type={type}\n value={maskedValue}\n />\n );\n};\n\nexport { DateTimeInputMask };\nexport default DateTimeInputMask;\n", "import * as React from 'react';\nexport { React };\n"],
5
+ "mappings": "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",
6
6
  "names": []
7
7
  }
@@ -55,7 +55,6 @@ __export(DictionaryInputMask_exports, {
55
55
  module.exports = __toCommonJS(DictionaryInputMask_exports);
56
56
  var React = __toESM(require("react"));
57
57
  var import_react = __toESM(require("react"));
58
- var import_ds_utilities = require("@elliemae/ds-utilities");
59
58
  var import_TextBox = require("../../TextBox");
60
59
  var import_setCaretPosition = require("../utils/setCaretPosition");
61
60
  const startsWith = (a, b, ignoreCase) => {
@@ -225,43 +224,5 @@ const DictionaryInputMask = (_a) => {
225
224
  value: maskedValue
226
225
  }));
227
226
  };
228
- DictionaryInputMask.propTypes = {
229
- focus: import_ds_utilities.PropTypes.bool,
230
- setFocus: import_ds_utilities.PropTypes.func,
231
- setRawMask: import_ds_utilities.PropTypes.func,
232
- cursorPosition: import_ds_utilities.PropTypes.shape({ current: import_ds_utilities.PropTypes.number }),
233
- setCursorPosition: import_ds_utilities.PropTypes.func,
234
- lastkey: import_ds_utilities.PropTypes.shape({ code: import_ds_utilities.PropTypes.number, key: import_ds_utilities.PropTypes.string }),
235
- setLastkey: import_ds_utilities.PropTypes.func,
236
- setRawValue: import_ds_utilities.PropTypes.func,
237
- allowedWords: import_ds_utilities.PropTypes.arrayOf(import_ds_utilities.PropTypes.string),
238
- ignoreCase: import_ds_utilities.PropTypes.bool,
239
- autoFocus: import_ds_utilities.PropTypes.bool,
240
- style: import_ds_utilities.PropTypes.object,
241
- disabled: import_ds_utilities.PropTypes.bool,
242
- className: import_ds_utilities.PropTypes.string,
243
- name: import_ds_utilities.PropTypes.string,
244
- maxLength: import_ds_utilities.PropTypes.number,
245
- minLength: import_ds_utilities.PropTypes.number,
246
- fluidWidth: import_ds_utilities.PropTypes.bool,
247
- placeholder: import_ds_utilities.PropTypes.string,
248
- value: import_ds_utilities.PropTypes.string,
249
- onChange: import_ds_utilities.PropTypes.func,
250
- onKeyDown: import_ds_utilities.PropTypes.func,
251
- leftComponent: import_ds_utilities.PropTypes.element,
252
- rightComponent: import_ds_utilities.PropTypes.element,
253
- onFocus: import_ds_utilities.PropTypes.func,
254
- onBlur: import_ds_utilities.PropTypes.func,
255
- onPaste: import_ds_utilities.PropTypes.func,
256
- onKeyUp: import_ds_utilities.PropTypes.func,
257
- hasError: import_ds_utilities.PropTypes.bool,
258
- readOnly: import_ds_utilities.PropTypes.bool,
259
- onClick: import_ds_utilities.PropTypes.func,
260
- clearable: import_ds_utilities.PropTypes.bool,
261
- type: import_ds_utilities.PropTypes.string,
262
- innerRef: import_ds_utilities.PropTypes.any,
263
- mask: import_ds_utilities.PropTypes.any,
264
- placeholderChar: import_ds_utilities.PropTypes.string
265
- };
266
227
  var DictionaryInputMask_default = DictionaryInputMask;
267
228
  //# sourceMappingURL=DictionaryInputMask.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../src/InputMask/mask_types/DictionaryInputMask.tsx", "../../../../../../scripts/build/transpile/react-shim.js"],
4
- "sourcesContent": ["/* eslint-disable no-loop-func */\n/* eslint-disable max-params */\n/* eslint-disable max-lines */\n/* eslint-disable complexity */\nimport React, { useCallback, useLayoutEffect, useRef, useState } from 'react';\nimport { PropTypes } from '@elliemae/ds-utilities';\nimport { DSTextBox } from '../../TextBox';\nimport { setCaretPosition } from '../utils/setCaretPosition';\n\nconst startsWith = (a: string, b: string, ignoreCase: boolean): boolean => {\n if (ignoreCase) {\n a = a.toLowerCase();\n b = b.toLowerCase();\n }\n return a.startsWith(b);\n};\n\nconst conformValue = (\n rawValue: string,\n cursorPos: number,\n lastkeycode: number,\n allowedWords: string[],\n ignoreCase: boolean,\n) => {\n let nextMaskedValue = '';\n let currentPosibleWords = allowedWords;\n for (let i = 0; i < rawValue.length; i += 1) {\n const matchingWords = currentPosibleWords.filter((word) =>\n startsWith(word, nextMaskedValue + rawValue[i], ignoreCase),\n );\n if (matchingWords.length) {\n nextMaskedValue += rawValue[i];\n currentPosibleWords = matchingWords;\n }\n }\n\n return { nextMaskedValue, maskedPos: cursorPos };\n};\n\nconst DictionaryInputMask = ({\n focus,\n setFocus,\n setRawMask,\n cursorPosition,\n setCursorPosition,\n lastkey,\n setLastkey,\n setRawValue,\n allowedWords,\n ignoreCase = true,\n autoFocus,\n style,\n disabled,\n className,\n name,\n maxLength,\n minLength,\n fluidWidth,\n placeholder,\n onKeyDown,\n onClick,\n onChange,\n onFocus,\n onBlur,\n onPaste,\n onKeyUp,\n hasError,\n readOnly,\n type,\n innerRef,\n clearable = false,\n leftComponent,\n rightComponent,\n value,\n ...rest\n}) => {\n const inputRef = useRef();\n const [maskedValue, setMaskedValue] = useState(value);\n\n const conform = useCallback(\n ({ rawValue, cursorPos, lastkeycode, shouldUpdateCursorPos = true }) => {\n const { nextMaskedValue, maskedPos } = conformValue(\n rawValue,\n cursorPos,\n lastkeycode,\n allowedWords,\n ignoreCase,\n );\n const event = {\n target: {\n value: nextMaskedValue,\n originalValue: rawValue,\n },\n };\n if (onChange && nextMaskedValue !== maskedValue) onChange(event);\n\n setMaskedValue(nextMaskedValue);\n setRawValue(nextMaskedValue);\n\n if (shouldUpdateCursorPos) setCursorPosition({ current: maskedPos });\n },\n [maskedValue, onChange],\n );\n\n const handleOnChange = useCallback(\n (e) => {\n const { value: rawValue, selectionEnd } = e.target;\n setRawMask(rawValue);\n setRawValue(rawValue);\n setCursorPosition({ current: selectionEnd });\n setFocus(true);\n },\n [setRawMask, setRawValue, setCursorPosition, setFocus, lastkey.code],\n );\n\n useLayoutEffect(() => {\n if (focus) setCaretPosition(inputRef.current, cursorPosition.current);\n }, [focus, cursorPosition]);\n\n useLayoutEffect(() => {\n // if the value changes, then re-conform the mask\n conform({\n rawValue: value,\n cursorPos: cursorPosition.current,\n lastkeycode: lastkey.code,\n shouldUpdateCursorPos: focus,\n });\n }, [focus, value, cursorPosition.current]);\n\n const handleKeyDown = useCallback(\n (e) => {\n e.stopPropagation();\n setLastkey({ key: e.key, code: e.keyCode });\n onKeyDown(e);\n },\n [onKeyDown],\n );\n\n const handleBlur = useCallback(\n (e) => {\n setFocus(false);\n onBlur(e);\n },\n [onBlur],\n );\n\n return (\n <DSTextBox\n {...rest}\n className={className}\n clearable={clearable}\n disabled={disabled}\n fluidWidth={fluidWidth}\n hasError={hasError}\n innerRef={(ref) => {\n inputRef.current = ref;\n if (innerRef) innerRef(ref);\n }}\n isActive={focus}\n leftComponent={leftComponent}\n maxLength={maxLength}\n minLength={minLength}\n name={name}\n onBlur={handleBlur}\n onChange={handleOnChange}\n onClick={onClick}\n onFocus={onFocus}\n onKeyDown={handleKeyDown}\n onKeyUp={onKeyUp}\n onPaste={onPaste}\n placeholder={placeholder}\n readOnly={readOnly}\n rightComponent={rightComponent}\n style={style}\n type={type}\n value={maskedValue}\n />\n );\n};\n\nDictionaryInputMask.propTypes = {\n focus: PropTypes.bool,\n setFocus: PropTypes.func,\n setRawMask: PropTypes.func,\n cursorPosition: PropTypes.shape({ current: PropTypes.number }),\n setCursorPosition: PropTypes.func,\n lastkey: PropTypes.shape({ code: PropTypes.number, key: PropTypes.string }),\n setLastkey: PropTypes.func,\n setRawValue: PropTypes.func,\n allowedWords: PropTypes.arrayOf(PropTypes.string),\n ignoreCase: PropTypes.bool,\n autoFocus: PropTypes.bool,\n style: PropTypes.object,\n disabled: PropTypes.bool,\n className: PropTypes.string,\n name: PropTypes.string,\n maxLength: PropTypes.number,\n minLength: PropTypes.number,\n fluidWidth: PropTypes.bool,\n placeholder: PropTypes.string,\n value: PropTypes.string,\n onChange: PropTypes.func,\n onKeyDown: PropTypes.func,\n leftComponent: PropTypes.element,\n rightComponent: PropTypes.element,\n onFocus: PropTypes.func,\n onBlur: PropTypes.func,\n onPaste: PropTypes.func,\n onKeyUp: PropTypes.func,\n hasError: PropTypes.bool,\n readOnly: PropTypes.bool,\n onClick: PropTypes.func,\n clearable: PropTypes.bool,\n type: PropTypes.string,\n innerRef: PropTypes.any,\n mask: PropTypes.any,\n placeholderChar: PropTypes.string,\n};\n\nexport { DictionaryInputMask };\nexport default DictionaryInputMask;\n", "import * as React from 'react';\nexport { React };\n"],
5
- "mappings": "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",
4
+ "sourcesContent": ["/* eslint-disable no-loop-func */\n/* eslint-disable max-params */\n/* eslint-disable max-lines */\n/* eslint-disable complexity */\nimport React, { useCallback, useLayoutEffect, useRef, useState } from 'react';\nimport { PropTypes } from '@elliemae/ds-utilities';\nimport { DSTextBox } from '../../TextBox';\nimport { setCaretPosition } from '../utils/setCaretPosition';\n\nconst startsWith = (a: string, b: string, ignoreCase: boolean): boolean => {\n if (ignoreCase) {\n a = a.toLowerCase();\n b = b.toLowerCase();\n }\n return a.startsWith(b);\n};\n\nconst conformValue = (\n rawValue: string,\n cursorPos: number,\n lastkeycode: number,\n allowedWords: string[],\n ignoreCase: boolean,\n) => {\n let nextMaskedValue = '';\n let currentPosibleWords = allowedWords;\n for (let i = 0; i < rawValue.length; i += 1) {\n const matchingWords = currentPosibleWords.filter((word) =>\n startsWith(word, nextMaskedValue + rawValue[i], ignoreCase),\n );\n if (matchingWords.length) {\n nextMaskedValue += rawValue[i];\n currentPosibleWords = matchingWords;\n }\n }\n\n return { nextMaskedValue, maskedPos: cursorPos };\n};\n\nconst DictionaryInputMask = ({\n focus,\n setFocus,\n setRawMask,\n cursorPosition,\n setCursorPosition,\n lastkey,\n setLastkey,\n setRawValue,\n allowedWords,\n ignoreCase = true,\n autoFocus,\n style,\n disabled,\n className,\n name,\n maxLength,\n minLength,\n fluidWidth,\n placeholder,\n onKeyDown,\n onClick,\n onChange,\n onFocus,\n onBlur,\n onPaste,\n onKeyUp,\n hasError,\n readOnly,\n type,\n innerRef,\n clearable = false,\n leftComponent,\n rightComponent,\n value,\n ...rest\n}) => {\n const inputRef = useRef();\n const [maskedValue, setMaskedValue] = useState(value);\n\n const conform = useCallback(\n ({ rawValue, cursorPos, lastkeycode, shouldUpdateCursorPos = true }) => {\n const { nextMaskedValue, maskedPos } = conformValue(\n rawValue,\n cursorPos,\n lastkeycode,\n allowedWords,\n ignoreCase,\n );\n const event = {\n target: {\n value: nextMaskedValue,\n originalValue: rawValue,\n },\n };\n if (onChange && nextMaskedValue !== maskedValue) onChange(event);\n\n setMaskedValue(nextMaskedValue);\n setRawValue(nextMaskedValue);\n\n if (shouldUpdateCursorPos) setCursorPosition({ current: maskedPos });\n },\n [maskedValue, onChange],\n );\n\n const handleOnChange = useCallback(\n (e) => {\n const { value: rawValue, selectionEnd } = e.target;\n setRawMask(rawValue);\n setRawValue(rawValue);\n setCursorPosition({ current: selectionEnd });\n setFocus(true);\n },\n [setRawMask, setRawValue, setCursorPosition, setFocus, lastkey.code],\n );\n\n useLayoutEffect(() => {\n if (focus) setCaretPosition(inputRef.current, cursorPosition.current);\n }, [focus, cursorPosition]);\n\n useLayoutEffect(() => {\n // if the value changes, then re-conform the mask\n conform({\n rawValue: value,\n cursorPos: cursorPosition.current,\n lastkeycode: lastkey.code,\n shouldUpdateCursorPos: focus,\n });\n }, [focus, value, cursorPosition.current]);\n\n const handleKeyDown = useCallback(\n (e) => {\n e.stopPropagation();\n setLastkey({ key: e.key, code: e.keyCode });\n onKeyDown(e);\n },\n [onKeyDown],\n );\n\n const handleBlur = useCallback(\n (e) => {\n setFocus(false);\n onBlur(e);\n },\n [onBlur],\n );\n\n return (\n <DSTextBox\n {...rest}\n className={className}\n clearable={clearable}\n disabled={disabled}\n fluidWidth={fluidWidth}\n hasError={hasError}\n innerRef={(ref) => {\n inputRef.current = ref;\n if (innerRef) innerRef(ref);\n }}\n isActive={focus}\n leftComponent={leftComponent}\n maxLength={maxLength}\n minLength={minLength}\n name={name}\n onBlur={handleBlur}\n onChange={handleOnChange}\n onClick={onClick}\n onFocus={onFocus}\n onKeyDown={handleKeyDown}\n onKeyUp={onKeyUp}\n onPaste={onPaste}\n placeholder={placeholder}\n readOnly={readOnly}\n rightComponent={rightComponent}\n style={style}\n type={type}\n value={maskedValue}\n />\n );\n};\n\nexport { DictionaryInputMask };\nexport default DictionaryInputMask;\n", "import * as React from 'react';\nexport { React };\n"],
5
+ "mappings": "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",
6
6
  "names": []
7
7
  }
@@ -55,7 +55,6 @@ __export(NumberInputMask_exports, {
55
55
  module.exports = __toCommonJS(NumberInputMask_exports);
56
56
  var React = __toESM(require("react"));
57
57
  var import_react = __toESM(require("react"));
58
- var import_ds_utilities = require("@elliemae/ds-utilities");
59
58
  var import_TextBox = require("../../TextBox");
60
59
  var import_setCaretPosition = require("../utils/setCaretPosition");
61
60
  const addThousandsSeparator = (n, thousandsSeparatorSymbol) => n.replace(/\B(?=(\d{3})+(?!\d))/g, thousandsSeparatorSymbol);
@@ -335,52 +334,5 @@ const NumberInputMask = (_a) => {
335
334
  value: maskedValue
336
335
  }));
337
336
  };
338
- NumberInputMask.propTypes = {
339
- focus: import_ds_utilities.PropTypes.bool,
340
- setFocus: import_ds_utilities.PropTypes.func,
341
- setRawMask: import_ds_utilities.PropTypes.func,
342
- cursorPosition: import_ds_utilities.PropTypes.shape({ current: import_ds_utilities.PropTypes.number }),
343
- setCursorPosition: import_ds_utilities.PropTypes.func,
344
- lastkey: import_ds_utilities.PropTypes.shape({ code: import_ds_utilities.PropTypes.number, key: import_ds_utilities.PropTypes.string }),
345
- setLastkey: import_ds_utilities.PropTypes.func,
346
- setRawValue: import_ds_utilities.PropTypes.func,
347
- allowDecimal: import_ds_utilities.PropTypes.bool,
348
- allowLeadingZeroes: import_ds_utilities.PropTypes.bool,
349
- allowNegative: import_ds_utilities.PropTypes.bool,
350
- autoFocus: import_ds_utilities.PropTypes.bool,
351
- className: import_ds_utilities.PropTypes.string,
352
- clearable: import_ds_utilities.PropTypes.bool,
353
- decimalLimit: import_ds_utilities.PropTypes.number,
354
- decimalSymbol: import_ds_utilities.PropTypes.string,
355
- disabled: import_ds_utilities.PropTypes.bool,
356
- fluidWidth: import_ds_utilities.PropTypes.bool,
357
- hasError: import_ds_utilities.PropTypes.bool,
358
- includeThousandsSeparator: import_ds_utilities.PropTypes.bool,
359
- innerRef: import_ds_utilities.PropTypes.any,
360
- integerLimit: import_ds_utilities.PropTypes.number,
361
- leftComponent: import_ds_utilities.PropTypes.element,
362
- mask: import_ds_utilities.PropTypes.any,
363
- maxLength: import_ds_utilities.PropTypes.number,
364
- minLength: import_ds_utilities.PropTypes.number,
365
- name: import_ds_utilities.PropTypes.string,
366
- onBlur: import_ds_utilities.PropTypes.func,
367
- onChange: import_ds_utilities.PropTypes.func,
368
- onClick: import_ds_utilities.PropTypes.func,
369
- onFocus: import_ds_utilities.PropTypes.func,
370
- onKeyDown: import_ds_utilities.PropTypes.func,
371
- onKeyUp: import_ds_utilities.PropTypes.func,
372
- onPaste: import_ds_utilities.PropTypes.func,
373
- placeholder: import_ds_utilities.PropTypes.string,
374
- placeholderChar: import_ds_utilities.PropTypes.string,
375
- prefix: import_ds_utilities.PropTypes.string,
376
- readOnly: import_ds_utilities.PropTypes.bool,
377
- requireDecimal: import_ds_utilities.PropTypes.bool,
378
- rightComponent: import_ds_utilities.PropTypes.element,
379
- style: import_ds_utilities.PropTypes.object,
380
- suffix: import_ds_utilities.PropTypes.string,
381
- thousandsSeparatorSymbol: import_ds_utilities.PropTypes.string,
382
- type: import_ds_utilities.PropTypes.string,
383
- value: import_ds_utilities.PropTypes.string
384
- };
385
337
  var NumberInputMask_default = NumberInputMask;
386
338
  //# sourceMappingURL=NumberInputMask.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../src/InputMask/mask_types/NumberInputMask.tsx", "../../../../../../scripts/build/transpile/react-shim.js"],
4
- "sourcesContent": ["/* eslint-disable max-params */\n/* eslint-disable max-statements */\n/* eslint-disable max-lines */\n/* eslint-disable complexity */\n\nimport React, { useCallback, useLayoutEffect, useRef, useState } from 'react';\nimport { PropTypes } from '@elliemae/ds-utilities';\nimport { DSTextBox } from '../../TextBox';\nimport { setCaretPosition } from '../utils/setCaretPosition';\n\n// http://stackoverflow.com/a/10899795/604296\nconst addThousandsSeparator = (n, thousandsSeparatorSymbol) =>\n n.replace(/\\B(?=(\\d{3})+(?!\\d))/g, thousandsSeparatorSymbol);\n\nconst conformValue = (\n prevRawValue,\n prevCursorPos,\n lastkeycode,\n {\n prefix,\n suffix,\n includeThousandsSeparator,\n thousandsSeparatorSymbol,\n allowDecimal,\n decimalSymbol,\n decimalLimit,\n requireDecimal,\n allowNegative,\n allowLeadingZeroes,\n integerLimit,\n shouldCompleteDecimals,\n },\n) => {\n const prefixIndex = prevRawValue.indexOf(prefix);\n const suffixIndex = prevRawValue.lastIndexOf(suffix);\n const negativeIndex = prevRawValue.indexOf('-');\n\n const cursorPos = prevCursorPos - (prefixIndex === -1 ? 0 : prefixIndex + prefix.length);\n\n const rawValue = prevRawValue.substring(\n prefixIndex === -1 ? 0 : prefixIndex + prefix.length,\n suffixIndex === -1 ? prevRawValue.length : suffixIndex,\n );\n\n const filteredRawValue = rawValue\n .split('')\n .filter((char) => (char >= '0' && char <= '9') || char === decimalSymbol || char === '-');\n\n let isNegative = allowNegative && negativeIndex !== -1 && (prefixIndex === -1 || negativeIndex < prefixIndex);\n\n let integer = '';\n let decimal = '';\n let foundDecimalSymbol = false;\n\n const integerFits = () => integerLimit === null || integer.length < integerLimit;\n const decimalFits = () => decimalLimit === null || decimal.length < decimalLimit;\n\n filteredRawValue.forEach((char) => {\n if (allowDecimal && !foundDecimalSymbol && char === decimalSymbol) {\n foundDecimalSymbol = true;\n } else if (allowNegative && !integer.length && !foundDecimalSymbol && char === '-') {\n isNegative = true;\n } else if (char >= '0' && char <= '9') {\n if (!foundDecimalSymbol && integerFits()) {\n integer += char;\n } else if (foundDecimalSymbol && decimalFits()) {\n decimal += char;\n }\n }\n });\n\n if (requireDecimal) foundDecimalSymbol = true;\n if (!requireDecimal && !decimal?.length && lastkeycode === 8) {\n foundDecimalSymbol = false;\n }\n if (!integer && !decimal) foundDecimalSymbol = false;\n\n if (foundDecimalSymbol && !integer && decimal) {\n integer = '0';\n }\n\n if (!allowLeadingZeroes) {\n while (integer.length > 1 && integer[0] === '0') integer = integer.substring(1);\n }\n\n let nextMaskedValue = includeThousandsSeparator ? addThousandsSeparator(integer, thousandsSeparatorSymbol) : integer;\n nextMaskedValue += foundDecimalSymbol ? decimalSymbol : '';\n\n if (shouldCompleteDecimals) while (decimal.length !== decimalLimit) decimal += '0';\n\n nextMaskedValue += decimal;\n\n let maskedPos = 0;\n for (let i = 0; i < cursorPos; i += 1) {\n if (nextMaskedValue[maskedPos] === thousandsSeparatorSymbol) maskedPos += 1;\n if (nextMaskedValue[maskedPos] === rawValue[i]) maskedPos += 1;\n }\n if (nextMaskedValue.length || isNegative) {\n nextMaskedValue = prefix + nextMaskedValue;\n maskedPos += prefix.length;\n\n if (isNegative) {\n if (lastkeycode !== 8 || nextMaskedValue !== prefix) nextMaskedValue = `-${nextMaskedValue}`;\n maskedPos += 1;\n }\n\n nextMaskedValue += suffix;\n }\n\n if (lastkeycode !== 8 && maskedPos < nextMaskedValue.length) {\n if (nextMaskedValue[maskedPos] === decimalSymbol && integer.length === integerLimit) {\n maskedPos += 1;\n } else if (nextMaskedValue[maskedPos] === thousandsSeparatorSymbol) {\n maskedPos += 1;\n }\n }\n\n return {\n nextMaskedValue,\n maskedPos: Math.min(maskedPos, nextMaskedValue.length - suffix.length),\n };\n};\n\nconst NumberInputMask = ({\n focus,\n setFocus,\n setRawMask,\n cursorPosition,\n setCursorPosition,\n lastkey,\n setLastkey,\n setRawValue,\n allowDecimal,\n allowLeadingZeroes,\n allowNegative,\n autoFocus,\n className,\n clearable = false,\n decimalLimit,\n decimalSymbol,\n disabled,\n fluidWidth,\n hasError,\n includeThousandsSeparator,\n innerRef,\n integerLimit,\n leftComponent,\n maxLength,\n minLength,\n name,\n onBlur,\n onChange,\n onClick,\n onFocus,\n onKeyDown,\n onKeyUp,\n onPaste,\n placeholder,\n prefix,\n readOnly,\n requireDecimal,\n rightComponent,\n style,\n suffix,\n thousandsSeparatorSymbol,\n type,\n value,\n ...rest\n}) => {\n const inputRef = useRef();\n const [maskedValue, setMaskedValue] = useState(value);\n\n const conform = useCallback(\n ({ rawValue, cursorPos, lastkeycode, shouldUpdateCursorPos = true, shouldCompleteDecimals = false }) => {\n const { nextMaskedValue, maskedPos } = conformValue(rawValue, cursorPos, lastkeycode, {\n prefix,\n suffix,\n includeThousandsSeparator,\n thousandsSeparatorSymbol,\n allowDecimal,\n decimalSymbol,\n decimalLimit,\n requireDecimal,\n allowNegative,\n allowLeadingZeroes,\n integerLimit,\n shouldCompleteDecimals,\n });\n const event = {\n target: {\n value: nextMaskedValue,\n originalValue: rawValue,\n },\n };\n if (onChange && nextMaskedValue !== maskedValue) onChange(event);\n\n setMaskedValue(nextMaskedValue);\n setRawValue(nextMaskedValue);\n\n if (shouldUpdateCursorPos) setCursorPosition({ current: maskedPos });\n },\n [maskedValue, onChange],\n );\n\n const handleOnChange = useCallback(\n (e) => {\n const { value: rawValue, selectionEnd } = e.target;\n setRawMask(rawValue);\n setRawValue(rawValue);\n setCursorPosition({ current: selectionEnd });\n setFocus(true);\n },\n [setRawMask, setRawValue, setCursorPosition, setFocus, lastkey.code],\n );\n\n useLayoutEffect(() => {\n if (focus) setCaretPosition(inputRef.current, cursorPosition.current);\n }, [focus, cursorPosition]);\n\n useLayoutEffect(() => {\n // if the value changes, then re-conform the mask\n conform({\n rawValue: value,\n cursorPos: cursorPosition.current,\n lastkeycode: lastkey.code,\n shouldUpdateCursorPos: focus,\n });\n }, [focus, value, cursorPosition.current]);\n\n const handleKeyDown = useCallback(\n (e) => {\n e.stopPropagation();\n setLastkey({ key: e.key, code: e.keyCode });\n onKeyDown(e);\n },\n [onKeyDown],\n );\n\n const handleBlur = useCallback(\n (e) => {\n setFocus(false);\n onBlur(e);\n if (requireDecimal && maskedValue !== '') {\n conform({\n rawValue: maskedValue,\n cursorPos: 0,\n lastkey: 0,\n shouldUpdateCursorPos: 0,\n shouldCompleteDecimals: true,\n });\n }\n },\n [maskedValue, requireDecimal, suffix, decimalLimit, onBlur],\n );\n\n return (\n <DSTextBox\n {...rest}\n className={className}\n clearable={clearable}\n disabled={disabled}\n fluidWidth={fluidWidth}\n hasError={hasError}\n innerRef={(ref) => {\n inputRef.current = ref;\n if (innerRef) innerRef(ref);\n }}\n isActive={focus}\n leftComponent={leftComponent}\n maxLength={maxLength}\n minLength={minLength}\n name={name}\n onBlur={handleBlur}\n onChange={handleOnChange}\n onClick={onClick}\n onFocus={onFocus}\n onKeyDown={handleKeyDown}\n onKeyUp={onKeyUp}\n onPaste={onPaste}\n placeholder={placeholder}\n readOnly={readOnly}\n rightComponent={rightComponent}\n style={style}\n type={type}\n value={maskedValue}\n />\n );\n};\n\nNumberInputMask.propTypes = {\n focus: PropTypes.bool,\n setFocus: PropTypes.func,\n setRawMask: PropTypes.func,\n cursorPosition: PropTypes.shape({ current: PropTypes.number }),\n setCursorPosition: PropTypes.func,\n lastkey: PropTypes.shape({ code: PropTypes.number, key: PropTypes.string }),\n setLastkey: PropTypes.func,\n setRawValue: PropTypes.func,\n allowDecimal: PropTypes.bool,\n allowLeadingZeroes: PropTypes.bool,\n allowNegative: PropTypes.bool,\n autoFocus: PropTypes.bool,\n className: PropTypes.string,\n clearable: PropTypes.bool,\n decimalLimit: PropTypes.number,\n decimalSymbol: PropTypes.string,\n disabled: PropTypes.bool,\n fluidWidth: PropTypes.bool,\n hasError: PropTypes.bool,\n includeThousandsSeparator: PropTypes.bool,\n innerRef: PropTypes.any,\n integerLimit: PropTypes.number,\n leftComponent: PropTypes.element,\n mask: PropTypes.any,\n maxLength: PropTypes.number,\n minLength: PropTypes.number,\n name: PropTypes.string,\n onBlur: PropTypes.func,\n onChange: PropTypes.func,\n onClick: PropTypes.func,\n onFocus: PropTypes.func,\n onKeyDown: PropTypes.func,\n onKeyUp: PropTypes.func,\n onPaste: PropTypes.func,\n placeholder: PropTypes.string,\n placeholderChar: PropTypes.string,\n prefix: PropTypes.string,\n readOnly: PropTypes.bool,\n requireDecimal: PropTypes.bool,\n rightComponent: PropTypes.element,\n style: PropTypes.object,\n suffix: PropTypes.string,\n thousandsSeparatorSymbol: PropTypes.string,\n type: PropTypes.string,\n value: PropTypes.string,\n};\n\nexport { NumberInputMask };\nexport default NumberInputMask;\n", "import * as React from 'react';\nexport { React };\n"],
5
- "mappings": "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",
4
+ "sourcesContent": ["/* eslint-disable max-params */\n/* eslint-disable max-statements */\n/* eslint-disable max-lines */\n/* eslint-disable complexity */\n\nimport React, { useCallback, useLayoutEffect, useRef, useState } from 'react';\nimport { PropTypes } from '@elliemae/ds-utilities';\nimport { DSTextBox } from '../../TextBox';\nimport { setCaretPosition } from '../utils/setCaretPosition';\n\n// http://stackoverflow.com/a/10899795/604296\nconst addThousandsSeparator = (n, thousandsSeparatorSymbol) =>\n n.replace(/\\B(?=(\\d{3})+(?!\\d))/g, thousandsSeparatorSymbol);\n\nconst conformValue = (\n prevRawValue,\n prevCursorPos,\n lastkeycode,\n {\n prefix,\n suffix,\n includeThousandsSeparator,\n thousandsSeparatorSymbol,\n allowDecimal,\n decimalSymbol,\n decimalLimit,\n requireDecimal,\n allowNegative,\n allowLeadingZeroes,\n integerLimit,\n shouldCompleteDecimals,\n },\n) => {\n const prefixIndex = prevRawValue.indexOf(prefix);\n const suffixIndex = prevRawValue.lastIndexOf(suffix);\n const negativeIndex = prevRawValue.indexOf('-');\n\n const cursorPos = prevCursorPos - (prefixIndex === -1 ? 0 : prefixIndex + prefix.length);\n\n const rawValue = prevRawValue.substring(\n prefixIndex === -1 ? 0 : prefixIndex + prefix.length,\n suffixIndex === -1 ? prevRawValue.length : suffixIndex,\n );\n\n const filteredRawValue = rawValue\n .split('')\n .filter((char) => (char >= '0' && char <= '9') || char === decimalSymbol || char === '-');\n\n let isNegative = allowNegative && negativeIndex !== -1 && (prefixIndex === -1 || negativeIndex < prefixIndex);\n\n let integer = '';\n let decimal = '';\n let foundDecimalSymbol = false;\n\n const integerFits = () => integerLimit === null || integer.length < integerLimit;\n const decimalFits = () => decimalLimit === null || decimal.length < decimalLimit;\n\n filteredRawValue.forEach((char) => {\n if (allowDecimal && !foundDecimalSymbol && char === decimalSymbol) {\n foundDecimalSymbol = true;\n } else if (allowNegative && !integer.length && !foundDecimalSymbol && char === '-') {\n isNegative = true;\n } else if (char >= '0' && char <= '9') {\n if (!foundDecimalSymbol && integerFits()) {\n integer += char;\n } else if (foundDecimalSymbol && decimalFits()) {\n decimal += char;\n }\n }\n });\n\n if (requireDecimal) foundDecimalSymbol = true;\n if (!requireDecimal && !decimal?.length && lastkeycode === 8) {\n foundDecimalSymbol = false;\n }\n if (!integer && !decimal) foundDecimalSymbol = false;\n\n if (foundDecimalSymbol && !integer && decimal) {\n integer = '0';\n }\n\n if (!allowLeadingZeroes) {\n while (integer.length > 1 && integer[0] === '0') integer = integer.substring(1);\n }\n\n let nextMaskedValue = includeThousandsSeparator ? addThousandsSeparator(integer, thousandsSeparatorSymbol) : integer;\n nextMaskedValue += foundDecimalSymbol ? decimalSymbol : '';\n\n if (shouldCompleteDecimals) while (decimal.length !== decimalLimit) decimal += '0';\n\n nextMaskedValue += decimal;\n\n let maskedPos = 0;\n for (let i = 0; i < cursorPos; i += 1) {\n if (nextMaskedValue[maskedPos] === thousandsSeparatorSymbol) maskedPos += 1;\n if (nextMaskedValue[maskedPos] === rawValue[i]) maskedPos += 1;\n }\n if (nextMaskedValue.length || isNegative) {\n nextMaskedValue = prefix + nextMaskedValue;\n maskedPos += prefix.length;\n\n if (isNegative) {\n if (lastkeycode !== 8 || nextMaskedValue !== prefix) nextMaskedValue = `-${nextMaskedValue}`;\n maskedPos += 1;\n }\n\n nextMaskedValue += suffix;\n }\n\n if (lastkeycode !== 8 && maskedPos < nextMaskedValue.length) {\n if (nextMaskedValue[maskedPos] === decimalSymbol && integer.length === integerLimit) {\n maskedPos += 1;\n } else if (nextMaskedValue[maskedPos] === thousandsSeparatorSymbol) {\n maskedPos += 1;\n }\n }\n\n return {\n nextMaskedValue,\n maskedPos: Math.min(maskedPos, nextMaskedValue.length - suffix.length),\n };\n};\n\nconst NumberInputMask = ({\n focus,\n setFocus,\n setRawMask,\n cursorPosition,\n setCursorPosition,\n lastkey,\n setLastkey,\n setRawValue,\n allowDecimal,\n allowLeadingZeroes,\n allowNegative,\n autoFocus,\n className,\n clearable = false,\n decimalLimit,\n decimalSymbol,\n disabled,\n fluidWidth,\n hasError,\n includeThousandsSeparator,\n innerRef,\n integerLimit,\n leftComponent,\n maxLength,\n minLength,\n name,\n onBlur,\n onChange,\n onClick,\n onFocus,\n onKeyDown,\n onKeyUp,\n onPaste,\n placeholder,\n prefix,\n readOnly,\n requireDecimal,\n rightComponent,\n style,\n suffix,\n thousandsSeparatorSymbol,\n type,\n value,\n ...rest\n}) => {\n const inputRef = useRef();\n const [maskedValue, setMaskedValue] = useState(value);\n\n const conform = useCallback(\n ({ rawValue, cursorPos, lastkeycode, shouldUpdateCursorPos = true, shouldCompleteDecimals = false }) => {\n const { nextMaskedValue, maskedPos } = conformValue(rawValue, cursorPos, lastkeycode, {\n prefix,\n suffix,\n includeThousandsSeparator,\n thousandsSeparatorSymbol,\n allowDecimal,\n decimalSymbol,\n decimalLimit,\n requireDecimal,\n allowNegative,\n allowLeadingZeroes,\n integerLimit,\n shouldCompleteDecimals,\n });\n const event = {\n target: {\n value: nextMaskedValue,\n originalValue: rawValue,\n },\n };\n if (onChange && nextMaskedValue !== maskedValue) onChange(event);\n\n setMaskedValue(nextMaskedValue);\n setRawValue(nextMaskedValue);\n\n if (shouldUpdateCursorPos) setCursorPosition({ current: maskedPos });\n },\n [maskedValue, onChange],\n );\n\n const handleOnChange = useCallback(\n (e) => {\n const { value: rawValue, selectionEnd } = e.target;\n setRawMask(rawValue);\n setRawValue(rawValue);\n setCursorPosition({ current: selectionEnd });\n setFocus(true);\n },\n [setRawMask, setRawValue, setCursorPosition, setFocus, lastkey.code],\n );\n\n useLayoutEffect(() => {\n if (focus) setCaretPosition(inputRef.current, cursorPosition.current);\n }, [focus, cursorPosition]);\n\n useLayoutEffect(() => {\n // if the value changes, then re-conform the mask\n conform({\n rawValue: value,\n cursorPos: cursorPosition.current,\n lastkeycode: lastkey.code,\n shouldUpdateCursorPos: focus,\n });\n }, [focus, value, cursorPosition.current]);\n\n const handleKeyDown = useCallback(\n (e) => {\n e.stopPropagation();\n setLastkey({ key: e.key, code: e.keyCode });\n onKeyDown(e);\n },\n [onKeyDown],\n );\n\n const handleBlur = useCallback(\n (e) => {\n setFocus(false);\n onBlur(e);\n if (requireDecimal && maskedValue !== '') {\n conform({\n rawValue: maskedValue,\n cursorPos: 0,\n lastkey: 0,\n shouldUpdateCursorPos: 0,\n shouldCompleteDecimals: true,\n });\n }\n },\n [maskedValue, requireDecimal, suffix, decimalLimit, onBlur],\n );\n\n return (\n <DSTextBox\n {...rest}\n className={className}\n clearable={clearable}\n disabled={disabled}\n fluidWidth={fluidWidth}\n hasError={hasError}\n innerRef={(ref) => {\n inputRef.current = ref;\n if (innerRef) innerRef(ref);\n }}\n isActive={focus}\n leftComponent={leftComponent}\n maxLength={maxLength}\n minLength={minLength}\n name={name}\n onBlur={handleBlur}\n onChange={handleOnChange}\n onClick={onClick}\n onFocus={onFocus}\n onKeyDown={handleKeyDown}\n onKeyUp={onKeyUp}\n onPaste={onPaste}\n placeholder={placeholder}\n readOnly={readOnly}\n rightComponent={rightComponent}\n style={style}\n type={type}\n value={maskedValue}\n />\n );\n};\n\nexport { NumberInputMask };\nexport default NumberInputMask;\n", "import * as React from 'react';\nexport { React };\n"],
5
+ "mappings": "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",
6
6
  "names": []
7
7
  }