@elliemae/ds-form 1.61.12 → 1.61.13
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.
- package/cjs/Checkbox/DSCheckbox.js.map +1 -1
- package/cjs/Checkbox/defaultProps.js.map +1 -1
- package/cjs/Checkbox/elements/CheckMark.js.map +1 -1
- package/cjs/Checkbox/props.js.map +1 -1
- package/cjs/CheckboxGroup/DSCheckboxGroup.js.map +1 -1
- package/cjs/CheckboxGroup/defaultProps.js.map +1 -1
- package/cjs/CheckboxGroup/props.js.map +1 -1
- package/cjs/ComboBox/v1/DSComboBox.js.map +1 -1
- package/cjs/ComboBox/v1/components/AllOption.js.map +1 -1
- package/cjs/ComboBox/v1/components/ClearIndicator.js.map +1 -1
- package/cjs/ComboBox/v1/components/Control.js.map +1 -1
- package/cjs/ComboBox/v1/components/CustomOption.js.map +1 -1
- package/cjs/ComboBox/v1/components/CustomOptionMulti.js.map +1 -1
- package/cjs/ComboBox/v1/components/DropdownIndicator.js.map +1 -1
- package/cjs/ComboBox/v1/components/MenuList.js.map +1 -1
- package/cjs/ComboBox/v1/components/MultiSelectHeader.js.map +1 -1
- package/cjs/ComboBox/v1/components/MultiValueLabel.js.map +1 -1
- package/cjs/ComboBox/v1/components/MultiValueRemove.js.map +1 -1
- package/cjs/ComboBox/v1/components/SelectMenu.js.map +1 -1
- package/cjs/ComboBox/v1/components/SingleValueLabel.js.map +1 -1
- package/cjs/ComboBox/v1/components/ValueContainer.js.map +1 -1
- package/cjs/ComboBox/v1/components/calculateWidth.js.map +1 -1
- package/cjs/ComboBox/v1/components/getoptions.js.map +1 -1
- package/cjs/ComboBox/v1/withSelectStringValueConverter.js +3 -3
- package/cjs/ComboBox/v1/withSelectStringValueConverter.js.map +1 -1
- package/cjs/ComboBox/v2/Combobox.js.map +1 -1
- package/cjs/ComboBox/v2/components/AllOption.js.map +1 -1
- package/cjs/ComboBox/v2/components/ClearIndicator.js.map +1 -1
- package/cjs/ComboBox/v2/components/Content.js.map +1 -1
- package/cjs/ComboBox/v2/components/Control.js.map +1 -1
- package/cjs/ComboBox/v2/components/CustomOption.js.map +1 -1
- package/cjs/ComboBox/v2/components/CustomOptionMulti.js.map +1 -1
- package/cjs/ComboBox/v2/components/DropdownIndicator.js.map +1 -1
- package/cjs/ComboBox/v2/components/GroupHeading.js.map +1 -1
- package/cjs/ComboBox/v2/components/IndicatorSeparator.js.map +1 -1
- package/cjs/ComboBox/v2/components/LoadingIndicator.js.map +1 -1
- package/cjs/ComboBox/v2/components/MenuList.js.map +1 -1
- package/cjs/ComboBox/v2/components/MultiSelectHeader.js.map +1 -1
- package/cjs/ComboBox/v2/components/MultiValueLabel.js.map +1 -1
- package/cjs/ComboBox/v2/components/MultiValueRemove.js.map +1 -1
- package/cjs/ComboBox/v2/components/SelectMenu.js.map +1 -1
- package/cjs/ComboBox/v2/components/SingleValueLabel.js.map +1 -1
- package/cjs/ComboBox/v2/components/ValueContainer.js.map +1 -1
- package/cjs/ComboBox/v2/components/calculateWidth.js.map +1 -1
- package/cjs/ComboBox/v2/components/getoptions.js.map +1 -1
- package/cjs/ComboBox/v2/components/useMenuListHeight.js.map +1 -1
- package/cjs/ComboBox/v2/components/utils.js.map +1 -1
- package/cjs/ComboBox/v2/mockOptions.js.map +1 -1
- package/cjs/ComboBox/v3/ComboBox.js.map +1 -1
- package/cjs/ComboBox/v3/ComboBoxCTX.js.map +1 -1
- package/cjs/ComboBox/v3/ComboboxDataTestids.js.map +1 -1
- package/cjs/ComboBox/v3/config/constants.js.map +1 -1
- package/cjs/ComboBox/v3/config/useComboBox.js.map +1 -1
- package/cjs/ComboBox/v3/config/useGetPropsWithDefault.js.map +1 -1
- package/cjs/ComboBox/v3/parts/a11y-messages/MultiAllyMessages.js.map +1 -1
- package/cjs/ComboBox/v3/parts/a11y-messages/SingleAllyMessages.js.map +1 -1
- package/cjs/ComboBox/v3/parts/a11y-messages/styled.js.map +1 -1
- package/cjs/ComboBox/v3/parts/container/Container.js.map +1 -1
- package/cjs/ComboBox/v3/parts/container/styled.js.map +1 -1
- package/cjs/ComboBox/v3/parts/controls/Controls.js.map +1 -1
- package/cjs/ComboBox/v3/parts/controls/styled.js.map +1 -1
- package/cjs/ComboBox/v3/parts/controls-input/ControlsInput.js.map +1 -1
- package/cjs/ComboBox/v3/parts/controls-input/styled.js.map +1 -1
- package/cjs/ComboBox/v3/parts/controls-input/useControlsInput.js.map +1 -1
- package/cjs/ComboBox/v3/parts/dropdown-indicator/DropdownIndicator.js.map +1 -1
- package/cjs/ComboBox/v3/parts/dropdown-indicator/styled.js.map +1 -1
- package/cjs/ComboBox/v3/parts/empty-state/index.js.map +1 -1
- package/cjs/ComboBox/v3/parts/empty-state/styled.js.map +1 -1
- package/cjs/ComboBox/v3/parts/header-list/HeaderList.js.map +1 -1
- package/cjs/ComboBox/v3/parts/header-list/styled.js.map +1 -1
- package/cjs/ComboBox/v3/parts/menu-list/MenuList.js.map +1 -1
- package/cjs/ComboBox/v3/parts/menu-list/styled.js.map +1 -1
- package/cjs/ComboBox/v3/parts/menu-list/useMenuList.js.map +1 -1
- package/cjs/ComboBox/v3/parts/multi-selected-values-container/MultiSelectedValuesContainer.js.map +1 -1
- package/cjs/ComboBox/v3/parts/multi-selected-values-container/styled.js.map +1 -1
- package/cjs/ComboBox/v3/parts/multi-selected-values-container/useGroupPills.js.map +1 -1
- package/cjs/ComboBox/v3/parts/single-selected-value-container/SingleSelectedValueContainer.js.map +1 -1
- package/cjs/ComboBox/v3/parts/single-selected-value-container/styled.js.map +1 -1
- package/cjs/ComboBox/v3/propTypes.js.map +1 -1
- package/cjs/ComboBox/v3/tests/utils.js.map +1 -1
- package/cjs/ComboBox/v3/utils/hooks/useKeyboardNavigation.js.map +1 -1
- package/cjs/ComboBox/v3/utils/hooks/useOnElementResize.js.map +1 -1
- package/cjs/ComboBox/v3/utils/hooks/useOnWindowResize.js.map +1 -1
- package/cjs/ComboBox/v3/utils/listHelper.js.map +1 -1
- package/cjs/ComboBoxFreeSolo/ComboBoxFreeSolo.js.map +1 -1
- package/cjs/ComboBoxFreeSolo/components/MultiValueLabel.js.map +1 -1
- package/cjs/ComboBoxFreeSolo/components/MultiValueRemove.js.map +1 -1
- package/cjs/ComboBoxFreeSolo/components/SingleValue.js.map +1 -1
- package/cjs/ComboBoxFreeSolo/components/SingleValueRemove.js.map +1 -1
- package/cjs/DateInput/DSDateInput.js.map +1 -1
- package/cjs/DateInput/components/DateInputImpl.js.map +1 -1
- package/cjs/DateInput/components/DateInputs.js.map +1 -1
- package/cjs/DateInput/components/utils.js.map +1 -1
- package/cjs/DateInput/defaultProps.js.map +1 -1
- package/cjs/DateInput/props.js.map +1 -1
- package/cjs/DateInputV2/components/DSDateInput.js.map +1 -1
- package/cjs/DateInputV2/components/DateInputs.js.map +1 -1
- package/cjs/DateInputV2/components/helpers.js.map +1 -1
- package/cjs/DateInputV2/components/props.js.map +1 -1
- package/cjs/DateInputV2/components/propsTypes.js.map +1 -1
- package/cjs/DateInputV2/components/styled.js.map +1 -1
- package/cjs/DateInputV2/components/utils.js.map +1 -1
- package/cjs/ExpandableInput/DSExpandableInput.js.map +1 -1
- package/cjs/ExpandableInput/ExpandableInputImpl.js.map +1 -1
- package/cjs/FloatingLabelInput/DSFloatingLabelInput.js.map +1 -1
- package/cjs/FloatingLabelInput/FloatingLabelInputImpl.js.map +1 -1
- package/cjs/FloatingLabelInput/getSvgPath.js.map +1 -1
- package/cjs/FormItem/DSFormItemLayout.js.map +1 -1
- package/cjs/FormItem/Error/DSError.js.map +1 -1
- package/cjs/FormItem/Feedback.js.map +1 -1
- package/cjs/FormItem/Label/DSLabel.js.map +1 -1
- package/cjs/FormItem/Suffix/Suffix.js.map +1 -1
- package/cjs/FormItem/ValidationFieldWrapper.js.map +1 -1
- package/cjs/FormItem/defaultProps.js.map +1 -1
- package/cjs/FormItem/props.js.map +1 -1
- package/cjs/FormItem/variants.js.map +1 -1
- package/cjs/Input/DSInput.js.map +1 -1
- package/cjs/Input/InputAddonWrapper.js.map +1 -1
- package/cjs/Input/InputImpl.js.map +1 -1
- package/cjs/InputGroup/AddonWrapper.js.map +1 -1
- package/cjs/InputGroup/DSInputGroup.js.map +1 -1
- package/cjs/InputGroup/defaultProps.js.map +1 -1
- package/cjs/InputGroup/props.js.map +1 -1
- package/cjs/InputMask/DSInputMask.js.map +1 -1
- package/cjs/InputMask/DSInputMaskDeprecated.js.map +1 -1
- package/cjs/InputMask/InputMaskContext.js.map +1 -1
- package/cjs/InputMask/MaskPipes.js.map +1 -1
- package/cjs/InputMask/MaskTypes.js.map +1 -1
- package/cjs/InputMask/addons/AutoCorrectedDatePipe.js.map +1 -1
- package/cjs/InputMask/defaultProps.js.map +1 -1
- package/cjs/InputMask/mask_types/DateInputMask.js.map +1 -1
- package/cjs/InputMask/mask_types/DateTimeInputMask.js.map +1 -1
- package/cjs/InputMask/mask_types/DictionaryInputMask.js.map +1 -1
- package/cjs/InputMask/mask_types/NumberInputMask.js.map +1 -1
- package/cjs/InputMask/mask_types/PhoneInputMask.js.map +1 -1
- package/cjs/InputMask/mask_types/PhoneInternationalInputMask.js.map +1 -1
- package/cjs/InputMask/mask_types/SsnInputMask.js.map +1 -1
- package/cjs/InputMask/mask_types/UsZipCodeInputMask.js.map +1 -1
- package/cjs/InputMask/mask_types/ZipCodeSearchInputMask.js.map +1 -1
- package/cjs/InputMask/mask_types/index.js.map +1 -1
- package/cjs/InputMask/props.js.map +1 -1
- package/cjs/InputMask/utils/setCaretPosition.js.map +1 -1
- package/cjs/InputProtected/DSInputProtected.js.map +1 -1
- package/cjs/InputProtected/defaultProps.js.map +1 -1
- package/cjs/InputProtected/options.js.map +1 -1
- package/cjs/InputProtected/props.js.map +1 -1
- package/cjs/LargeInputText/DSLargeInputText.js.map +1 -1
- package/cjs/LargeInputText/defaultProps.js.map +1 -1
- package/cjs/LargeInputText/props.js.map +1 -1
- package/cjs/MenuItem/components/MenuItem/index.js.map +1 -1
- package/cjs/MenuItem/components/MenuItem/styled.js.map +1 -1
- package/cjs/MenuItem/components/MultiMenuItem/MultiMenuItem.js.map +1 -1
- package/cjs/MenuItem/components/MultiMenuItem/styled.js.map +1 -1
- package/cjs/MenuItem/components/Section/index.js.map +1 -1
- package/cjs/MenuItem/components/Section/props.js.map +1 -1
- package/cjs/MenuItem/components/Section/styled.js.map +1 -1
- package/cjs/MenuItem/components/Separator/index.js.map +1 -1
- package/cjs/MenuItem/components/Separator/styled.js.map +1 -1
- package/cjs/MenuItem/components/SingleMenuItem/SingleMenuItem.js.map +1 -1
- package/cjs/MenuItem/components/SingleMenuItem/styled.js.map +1 -1
- package/cjs/MenuItem/components/SubmenuItem/index.js.map +1 -1
- package/cjs/MenuItem/components/SubmenuItem/styled.js.map +1 -1
- package/cjs/MenuItem/components/styled.js.map +1 -1
- package/cjs/MenuItem/props.js.map +1 -1
- package/cjs/Radio/Circle.js.map +1 -1
- package/cjs/Radio/DSRadio.js.map +1 -1
- package/cjs/RadioGroup/DSRadioGroup.js.map +1 -1
- package/cjs/RadioGroup/defaultProps.js.map +1 -1
- package/cjs/RadioGroup/props.js.map +1 -1
- package/cjs/RequiredMark/RequiredMark.js.map +1 -1
- package/cjs/SearchBox/DSSearchBox.js.map +1 -1
- package/cjs/SearchBox/NavSearchBox.js.map +1 -1
- package/cjs/SearchBox/SButton.js.map +1 -1
- package/cjs/SearchBox/SearchBoxToggle.js.map +1 -1
- package/cjs/SearchBox/defaultProps.js.map +1 -1
- package/cjs/SearchBox/props.js.map +1 -1
- package/cjs/SearchBox/styled.js.map +1 -1
- package/cjs/SearchBox/useSearch.js.map +1 -1
- package/cjs/SearchBox/withSearchable.js.map +1 -1
- package/cjs/TextBox/DSTextBox.js.map +1 -1
- package/cjs/TimeInput/DSTimeInput.js.map +1 -1
- package/cjs/TimeInput/TimeInputImpl.js.map +1 -1
- package/cjs/TimeInput/TimeInputs.js.map +1 -1
- package/cjs/Toggle/DSToggle.js.map +1 -1
- package/cjs/Toggle/DSToggleImpl.js.map +1 -1
- package/cjs/Toggle/DSToggleRender.js.map +1 -1
- package/cjs/Toggle/props.js.map +1 -1
- package/cjs/Toggle/toggleHelper.js.map +1 -1
- package/cjs/utils-f82fe290.js.map +1 -1
- package/esm/Checkbox/DSCheckbox.js.map +1 -1
- package/esm/Checkbox/defaultProps.js.map +1 -1
- package/esm/Checkbox/elements/CheckMark.js.map +1 -1
- package/esm/Checkbox/props.js.map +1 -1
- package/esm/CheckboxGroup/DSCheckboxGroup.js.map +1 -1
- package/esm/CheckboxGroup/defaultProps.js.map +1 -1
- package/esm/CheckboxGroup/props.js.map +1 -1
- package/esm/ComboBox/v1/DSComboBox.js.map +1 -1
- package/esm/ComboBox/v1/components/AllOption.js.map +1 -1
- package/esm/ComboBox/v1/components/ClearIndicator.js.map +1 -1
- package/esm/ComboBox/v1/components/Control.js.map +1 -1
- package/esm/ComboBox/v1/components/CustomOption.js.map +1 -1
- package/esm/ComboBox/v1/components/CustomOptionMulti.js.map +1 -1
- package/esm/ComboBox/v1/components/DropdownIndicator.js.map +1 -1
- package/esm/ComboBox/v1/components/MenuList.js.map +1 -1
- package/esm/ComboBox/v1/components/MultiSelectHeader.js.map +1 -1
- package/esm/ComboBox/v1/components/MultiValueLabel.js.map +1 -1
- package/esm/ComboBox/v1/components/MultiValueRemove.js.map +1 -1
- package/esm/ComboBox/v1/components/SelectMenu.js.map +1 -1
- package/esm/ComboBox/v1/components/SingleValueLabel.js.map +1 -1
- package/esm/ComboBox/v1/components/ValueContainer.js.map +1 -1
- package/esm/ComboBox/v1/components/calculateWidth.js.map +1 -1
- package/esm/ComboBox/v1/components/getoptions.js.map +1 -1
- package/esm/ComboBox/v1/withSelectStringValueConverter.js +3 -3
- package/esm/ComboBox/v1/withSelectStringValueConverter.js.map +1 -1
- package/esm/ComboBox/v2/Combobox.js.map +1 -1
- package/esm/ComboBox/v2/components/AllOption.js.map +1 -1
- package/esm/ComboBox/v2/components/ClearIndicator.js.map +1 -1
- package/esm/ComboBox/v2/components/Content.js.map +1 -1
- package/esm/ComboBox/v2/components/Control.js.map +1 -1
- package/esm/ComboBox/v2/components/CustomOption.js.map +1 -1
- package/esm/ComboBox/v2/components/CustomOptionMulti.js.map +1 -1
- package/esm/ComboBox/v2/components/DropdownIndicator.js.map +1 -1
- package/esm/ComboBox/v2/components/GroupHeading.js.map +1 -1
- package/esm/ComboBox/v2/components/IndicatorSeparator.js.map +1 -1
- package/esm/ComboBox/v2/components/LoadingIndicator.js.map +1 -1
- package/esm/ComboBox/v2/components/MenuList.js.map +1 -1
- package/esm/ComboBox/v2/components/MultiSelectHeader.js.map +1 -1
- package/esm/ComboBox/v2/components/MultiValueLabel.js.map +1 -1
- package/esm/ComboBox/v2/components/MultiValueRemove.js.map +1 -1
- package/esm/ComboBox/v2/components/SelectMenu.js.map +1 -1
- package/esm/ComboBox/v2/components/SingleValueLabel.js.map +1 -1
- package/esm/ComboBox/v2/components/ValueContainer.js.map +1 -1
- package/esm/ComboBox/v2/components/calculateWidth.js.map +1 -1
- package/esm/ComboBox/v2/components/getoptions.js.map +1 -1
- package/esm/ComboBox/v2/components/useMenuListHeight.js.map +1 -1
- package/esm/ComboBox/v2/components/utils.js.map +1 -1
- package/esm/ComboBox/v2/mockOptions.js.map +1 -1
- package/esm/ComboBox/v3/ComboBox.js.map +1 -1
- package/esm/ComboBox/v3/ComboBoxCTX.js.map +1 -1
- package/esm/ComboBox/v3/ComboboxDataTestids.js.map +1 -1
- package/esm/ComboBox/v3/config/constants.js.map +1 -1
- package/esm/ComboBox/v3/config/useComboBox.js.map +1 -1
- package/esm/ComboBox/v3/config/useGetPropsWithDefault.js.map +1 -1
- package/esm/ComboBox/v3/parts/a11y-messages/MultiAllyMessages.js.map +1 -1
- package/esm/ComboBox/v3/parts/a11y-messages/SingleAllyMessages.js.map +1 -1
- package/esm/ComboBox/v3/parts/a11y-messages/styled.js.map +1 -1
- package/esm/ComboBox/v3/parts/container/Container.js.map +1 -1
- package/esm/ComboBox/v3/parts/container/styled.js.map +1 -1
- package/esm/ComboBox/v3/parts/controls/Controls.js.map +1 -1
- package/esm/ComboBox/v3/parts/controls/styled.js.map +1 -1
- package/esm/ComboBox/v3/parts/controls-input/ControlsInput.js.map +1 -1
- package/esm/ComboBox/v3/parts/controls-input/styled.js.map +1 -1
- package/esm/ComboBox/v3/parts/controls-input/useControlsInput.js.map +1 -1
- package/esm/ComboBox/v3/parts/dropdown-indicator/DropdownIndicator.js.map +1 -1
- package/esm/ComboBox/v3/parts/dropdown-indicator/styled.js.map +1 -1
- package/esm/ComboBox/v3/parts/empty-state/index.js.map +1 -1
- package/esm/ComboBox/v3/parts/empty-state/styled.js.map +1 -1
- package/esm/ComboBox/v3/parts/header-list/HeaderList.js.map +1 -1
- package/esm/ComboBox/v3/parts/header-list/styled.js.map +1 -1
- package/esm/ComboBox/v3/parts/menu-list/MenuList.js.map +1 -1
- package/esm/ComboBox/v3/parts/menu-list/styled.js.map +1 -1
- package/esm/ComboBox/v3/parts/menu-list/useMenuList.js.map +1 -1
- package/esm/ComboBox/v3/parts/multi-selected-values-container/MultiSelectedValuesContainer.js.map +1 -1
- package/esm/ComboBox/v3/parts/multi-selected-values-container/styled.js.map +1 -1
- package/esm/ComboBox/v3/parts/multi-selected-values-container/useGroupPills.js.map +1 -1
- package/esm/ComboBox/v3/parts/single-selected-value-container/SingleSelectedValueContainer.js.map +1 -1
- package/esm/ComboBox/v3/parts/single-selected-value-container/styled.js.map +1 -1
- package/esm/ComboBox/v3/propTypes.js.map +1 -1
- package/esm/ComboBox/v3/tests/utils.js.map +1 -1
- package/esm/ComboBox/v3/utils/hooks/useKeyboardNavigation.js.map +1 -1
- package/esm/ComboBox/v3/utils/hooks/useOnElementResize.js.map +1 -1
- package/esm/ComboBox/v3/utils/hooks/useOnWindowResize.js.map +1 -1
- package/esm/ComboBox/v3/utils/listHelper.js.map +1 -1
- package/esm/ComboBoxFreeSolo/ComboBoxFreeSolo.js.map +1 -1
- package/esm/ComboBoxFreeSolo/components/MultiValueLabel.js.map +1 -1
- package/esm/ComboBoxFreeSolo/components/MultiValueRemove.js.map +1 -1
- package/esm/ComboBoxFreeSolo/components/SingleValue.js.map +1 -1
- package/esm/ComboBoxFreeSolo/components/SingleValueRemove.js.map +1 -1
- package/esm/DateInput/DSDateInput.js.map +1 -1
- package/esm/DateInput/components/DateInputImpl.js.map +1 -1
- package/esm/DateInput/components/DateInputs.js.map +1 -1
- package/esm/DateInput/components/utils.js.map +1 -1
- package/esm/DateInput/defaultProps.js.map +1 -1
- package/esm/DateInput/props.js.map +1 -1
- package/esm/DateInputV2/components/DSDateInput.js.map +1 -1
- package/esm/DateInputV2/components/DateInputs.js.map +1 -1
- package/esm/DateInputV2/components/helpers.js.map +1 -1
- package/esm/DateInputV2/components/props.js.map +1 -1
- package/esm/DateInputV2/components/propsTypes.js.map +1 -1
- package/esm/DateInputV2/components/styled.js.map +1 -1
- package/esm/DateInputV2/components/utils.js.map +1 -1
- package/esm/ExpandableInput/DSExpandableInput.js.map +1 -1
- package/esm/ExpandableInput/ExpandableInputImpl.js.map +1 -1
- package/esm/FloatingLabelInput/DSFloatingLabelInput.js.map +1 -1
- package/esm/FloatingLabelInput/FloatingLabelInputImpl.js.map +1 -1
- package/esm/FloatingLabelInput/getSvgPath.js.map +1 -1
- package/esm/FormItem/DSFormItemLayout.js.map +1 -1
- package/esm/FormItem/Error/DSError.js.map +1 -1
- package/esm/FormItem/Feedback.js.map +1 -1
- package/esm/FormItem/Label/DSLabel.js.map +1 -1
- package/esm/FormItem/Suffix/Suffix.js.map +1 -1
- package/esm/FormItem/ValidationFieldWrapper.js.map +1 -1
- package/esm/FormItem/defaultProps.js.map +1 -1
- package/esm/FormItem/props.js.map +1 -1
- package/esm/FormItem/variants.js.map +1 -1
- package/esm/Input/DSInput.js.map +1 -1
- package/esm/Input/InputAddonWrapper.js.map +1 -1
- package/esm/Input/InputImpl.js.map +1 -1
- package/esm/InputGroup/AddonWrapper.js.map +1 -1
- package/esm/InputGroup/DSInputGroup.js.map +1 -1
- package/esm/InputGroup/defaultProps.js.map +1 -1
- package/esm/InputGroup/props.js.map +1 -1
- package/esm/InputMask/DSInputMask.js.map +1 -1
- package/esm/InputMask/DSInputMaskDeprecated.js.map +1 -1
- package/esm/InputMask/InputMaskContext.js.map +1 -1
- package/esm/InputMask/MaskPipes.js.map +1 -1
- package/esm/InputMask/MaskTypes.js.map +1 -1
- package/esm/InputMask/addons/AutoCorrectedDatePipe.js.map +1 -1
- package/esm/InputMask/defaultProps.js.map +1 -1
- package/esm/InputMask/mask_types/DateInputMask.js.map +1 -1
- package/esm/InputMask/mask_types/DateTimeInputMask.js.map +1 -1
- package/esm/InputMask/mask_types/DictionaryInputMask.js.map +1 -1
- package/esm/InputMask/mask_types/NumberInputMask.js.map +1 -1
- package/esm/InputMask/mask_types/PhoneInputMask.js.map +1 -1
- package/esm/InputMask/mask_types/PhoneInternationalInputMask.js.map +1 -1
- package/esm/InputMask/mask_types/SsnInputMask.js.map +1 -1
- package/esm/InputMask/mask_types/UsZipCodeInputMask.js.map +1 -1
- package/esm/InputMask/mask_types/ZipCodeSearchInputMask.js.map +1 -1
- package/esm/InputMask/mask_types/index.js.map +1 -1
- package/esm/InputMask/props.js.map +1 -1
- package/esm/InputMask/utils/setCaretPosition.js.map +1 -1
- package/esm/InputProtected/DSInputProtected.js.map +1 -1
- package/esm/InputProtected/defaultProps.js.map +1 -1
- package/esm/InputProtected/options.js.map +1 -1
- package/esm/InputProtected/props.js.map +1 -1
- package/esm/LargeInputText/DSLargeInputText.js.map +1 -1
- package/esm/LargeInputText/defaultProps.js.map +1 -1
- package/esm/LargeInputText/props.js.map +1 -1
- package/esm/MenuItem/components/MenuItem/index.js.map +1 -1
- package/esm/MenuItem/components/MenuItem/styled.js.map +1 -1
- package/esm/MenuItem/components/MultiMenuItem/MultiMenuItem.js.map +1 -1
- package/esm/MenuItem/components/MultiMenuItem/styled.js.map +1 -1
- package/esm/MenuItem/components/Section/index.js.map +1 -1
- package/esm/MenuItem/components/Section/props.js.map +1 -1
- package/esm/MenuItem/components/Section/styled.js.map +1 -1
- package/esm/MenuItem/components/Separator/index.js.map +1 -1
- package/esm/MenuItem/components/Separator/styled.js.map +1 -1
- package/esm/MenuItem/components/SingleMenuItem/SingleMenuItem.js.map +1 -1
- package/esm/MenuItem/components/SingleMenuItem/styled.js.map +1 -1
- package/esm/MenuItem/components/SubmenuItem/index.js.map +1 -1
- package/esm/MenuItem/components/SubmenuItem/styled.js.map +1 -1
- package/esm/MenuItem/components/styled.js.map +1 -1
- package/esm/MenuItem/props.js.map +1 -1
- package/esm/Radio/Circle.js.map +1 -1
- package/esm/Radio/DSRadio.js.map +1 -1
- package/esm/RadioGroup/DSRadioGroup.js.map +1 -1
- package/esm/RadioGroup/defaultProps.js.map +1 -1
- package/esm/RadioGroup/props.js.map +1 -1
- package/esm/RequiredMark/RequiredMark.js.map +1 -1
- package/esm/SearchBox/DSSearchBox.js.map +1 -1
- package/esm/SearchBox/NavSearchBox.js.map +1 -1
- package/esm/SearchBox/SButton.js.map +1 -1
- package/esm/SearchBox/SearchBoxToggle.js.map +1 -1
- package/esm/SearchBox/defaultProps.js.map +1 -1
- package/esm/SearchBox/props.js.map +1 -1
- package/esm/SearchBox/styled.js.map +1 -1
- package/esm/SearchBox/useSearch.js.map +1 -1
- package/esm/SearchBox/withSearchable.js.map +1 -1
- package/esm/TextBox/DSTextBox.js.map +1 -1
- package/esm/TimeInput/DSTimeInput.js.map +1 -1
- package/esm/TimeInput/TimeInputImpl.js.map +1 -1
- package/esm/TimeInput/TimeInputs.js.map +1 -1
- package/esm/Toggle/DSToggle.js.map +1 -1
- package/esm/Toggle/DSToggleImpl.js.map +1 -1
- package/esm/Toggle/DSToggleRender.js.map +1 -1
- package/esm/Toggle/props.js.map +1 -1
- package/esm/Toggle/toggleHelper.js.map +1 -1
- package/esm/utils-ced363ec.js.map +1 -1
- package/package.json +17 -17
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DateInputMask.js","sources":["../../../../src/InputMask/mask_types/DateInputMask.tsx"],"sourcesContent":["/* eslint-disable max-lines */\n/* eslint-disable complexity */\nimport React, { useCallback, useLayoutEffect, useRef, useState } from 'react';\nimport { PropTypes } from 'react-desc';\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 default DateInputMask;\n"],"names":["conformValue","rawValue","cursorPos","lastkeycode","nextMaskedValue","split","filter","char","slice","maskedPos","i","charactersToAdd","forEach","chars","pos","length","splice","join","DateInputMask","focus","setFocus","setRawMask","cursorPosition","setCursorPosition","lastkey","setLastkey","setRawValue","style","disabled","className","name","maxLength","minLength","fluidWidth","placeholder","onKeyDown","onClick","onChange","onFocus","onBlur","onPaste","onKeyUp","hasError","readOnly","type","innerRef","clearable","leftComponent","rightComponent","value","rest","inputRef","useRef","useState","maskedValue","setMaskedValue","conform","useCallback","shouldUpdateCursorPos","event","target","originalValue","current","handleOnChange","e","selectionEnd","code","useLayoutEffect","setCaretPosition","handleKeyDown","stopPropagation","key","keyCode","handleBlur","React","DSTextBox","ref","propTypes","PropTypes","bool","func","shape","number","string","object","element","any","mask","placeholderChar"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"DateInputMask.js","sources":["../../../../src/InputMask/mask_types/DateInputMask.tsx"],"sourcesContent":["/* eslint-disable max-lines */\n/* eslint-disable complexity */\nimport React, { useCallback, useLayoutEffect, useRef, useState } from 'react';\nimport { PropTypes } from 'react-desc';\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 default DateInputMask;\n"],"names":["conformValue","rawValue","cursorPos","lastkeycode","nextMaskedValue","split","filter","char","slice","maskedPos","i","charactersToAdd","forEach","chars","pos","length","splice","join","DateInputMask","focus","setFocus","setRawMask","cursorPosition","setCursorPosition","lastkey","setLastkey","setRawValue","style","disabled","className","name","maxLength","minLength","fluidWidth","placeholder","onKeyDown","onClick","onChange","onFocus","onBlur","onPaste","onKeyUp","hasError","readOnly","type","innerRef","clearable","leftComponent","rightComponent","value","rest","inputRef","useRef","useState","maskedValue","setMaskedValue","conform","useCallback","shouldUpdateCursorPos","event","target","originalValue","current","handleOnChange","e","selectionEnd","code","useLayoutEffect","setCaretPosition","handleKeyDown","stopPropagation","key","keyCode","handleBlur","React","DSTextBox","ref","propTypes","PropTypes","bool","func","shape","number","string","object","element","any","mask","placeholderChar"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DateTimeInputMask.js","sources":["../../../../src/InputMask/mask_types/DateTimeInputMask.tsx"],"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 'react-desc';\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 default DateTimeInputMask;\n"],"names":["conformValue","rawValue","cursorPos","lastkeycode","nextMaskedValue","split","filter","char","slice","length","match","splice","maskedPos","i","charactersToAdd","forEach","chars","pos","join","DateTimeInputMask","focus","setFocus","setRawMask","cursorPosition","setCursorPosition","lastkey","setLastkey","setRawValue","style","disabled","className","name","maxLength","minLength","fluidWidth","placeholder","onKeyDown","onClick","onChange","onFocus","onBlur","onPaste","onKeyUp","hasError","readOnly","type","innerRef","clearable","leftComponent","rightComponent","value","rest","inputRef","useRef","useState","maskedValue","setMaskedValue","conform","useCallback","shouldUpdateCursorPos","event","target","originalValue","current","handleOnChange","e","selectionEnd","code","useLayoutEffect","setCaretPosition","handleKeyDown","stopPropagation","key","keyCode","handleBlur","React","DSTextBox","ref","propTypes","PropTypes","bool","func","shape","number","string","object","element","any","mask","placeholderChar"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"DateTimeInputMask.js","sources":["../../../../src/InputMask/mask_types/DateTimeInputMask.tsx"],"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 'react-desc';\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 default DateTimeInputMask;\n"],"names":["conformValue","rawValue","cursorPos","lastkeycode","nextMaskedValue","split","filter","char","slice","length","match","splice","maskedPos","i","charactersToAdd","forEach","chars","pos","join","DateTimeInputMask","focus","setFocus","setRawMask","cursorPosition","setCursorPosition","lastkey","setLastkey","setRawValue","style","disabled","className","name","maxLength","minLength","fluidWidth","placeholder","onKeyDown","onClick","onChange","onFocus","onBlur","onPaste","onKeyUp","hasError","readOnly","type","innerRef","clearable","leftComponent","rightComponent","value","rest","inputRef","useRef","useState","maskedValue","setMaskedValue","conform","useCallback","shouldUpdateCursorPos","event","target","originalValue","current","handleOnChange","e","selectionEnd","code","useLayoutEffect","setCaretPosition","handleKeyDown","stopPropagation","key","keyCode","handleBlur","React","DSTextBox","ref","propTypes","PropTypes","bool","func","shape","number","string","object","element","any","mask","placeholderChar"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DictionaryInputMask.js","sources":["../../../../src/InputMask/mask_types/DictionaryInputMask.tsx"],"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 'react-desc';\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 default DictionaryInputMask;\n"],"names":["startsWith","a","b","ignoreCase","toLowerCase","conformValue","rawValue","cursorPos","lastkeycode","allowedWords","nextMaskedValue","currentPosibleWords","i","matchingWords","filter","word","length","maskedPos","DictionaryInputMask","focus","setFocus","setRawMask","cursorPosition","setCursorPosition","lastkey","setLastkey","setRawValue","autoFocus","style","disabled","className","name","maxLength","minLength","fluidWidth","placeholder","onKeyDown","onClick","onChange","onFocus","onBlur","onPaste","onKeyUp","hasError","readOnly","type","innerRef","clearable","leftComponent","rightComponent","value","rest","inputRef","useRef","useState","maskedValue","setMaskedValue","conform","useCallback","shouldUpdateCursorPos","event","target","originalValue","current","handleOnChange","e","selectionEnd","code","useLayoutEffect","setCaretPosition","handleKeyDown","stopPropagation","key","keyCode","handleBlur","React","DSTextBox","ref","propTypes","PropTypes","bool","func","shape","number","string","arrayOf","object","element","any","mask","placeholderChar"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"DictionaryInputMask.js","sources":["../../../../src/InputMask/mask_types/DictionaryInputMask.tsx"],"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 'react-desc';\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 default DictionaryInputMask;\n"],"names":["startsWith","a","b","ignoreCase","toLowerCase","conformValue","rawValue","cursorPos","lastkeycode","allowedWords","nextMaskedValue","currentPosibleWords","i","matchingWords","filter","word","length","maskedPos","DictionaryInputMask","focus","setFocus","setRawMask","cursorPosition","setCursorPosition","lastkey","setLastkey","setRawValue","autoFocus","style","disabled","className","name","maxLength","minLength","fluidWidth","placeholder","onKeyDown","onClick","onChange","onFocus","onBlur","onPaste","onKeyUp","hasError","readOnly","type","innerRef","clearable","leftComponent","rightComponent","value","rest","inputRef","useRef","useState","maskedValue","setMaskedValue","conform","useCallback","shouldUpdateCursorPos","event","target","originalValue","current","handleOnChange","e","selectionEnd","code","useLayoutEffect","setCaretPosition","handleKeyDown","stopPropagation","key","keyCode","handleBlur","React","DSTextBox","ref","propTypes","PropTypes","bool","func","shape","number","string","arrayOf","object","element","any","mask","placeholderChar"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NumberInputMask.js","sources":["../../../../src/InputMask/mask_types/NumberInputMask.tsx"],"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 'react-desc';\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 =\n 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(\n (char) =>\n (char >= '0' && char <= '9') || char === decimalSymbol || char === '-',\n );\n\n let isNegative =\n allowNegative &&\n negativeIndex !== -1 &&\n (prefixIndex === -1 || negativeIndex < prefixIndex);\n\n let integer = '';\n let decimal = '';\n let foundDecimalSymbol = false;\n\n const integerFits = () =>\n integerLimit === null || integer.length < integerLimit;\n const decimalFits = () =>\n decimalLimit === null || decimal.length < decimalLimit;\n\n filteredRawValue.forEach((char) => {\n if (allowDecimal && !foundDecimalSymbol && char === decimalSymbol) {\n foundDecimalSymbol = true;\n } else if (\n allowNegative &&\n !integer.length &&\n !foundDecimalSymbol &&\n char === '-'\n ) {\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')\n integer = integer.substring(1);\n }\n\n let nextMaskedValue = includeThousandsSeparator\n ? addThousandsSeparator(integer, thousandsSeparatorSymbol)\n : integer;\n nextMaskedValue += foundDecimalSymbol ? decimalSymbol : '';\n\n if (shouldCompleteDecimals)\n 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)\n nextMaskedValue = `-${nextMaskedValue}`;\n maskedPos += 1;\n }\n\n nextMaskedValue += suffix;\n }\n\n if (lastkeycode !== 8 && maskedPos < nextMaskedValue.length) {\n if (\n nextMaskedValue[maskedPos] === decimalSymbol &&\n integer.length === integerLimit\n ) {\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 ({\n rawValue,\n cursorPos,\n lastkeycode,\n shouldUpdateCursorPos = true,\n shouldCompleteDecimals = false,\n }) => {\n const { nextMaskedValue, maskedPos } = conformValue(\n rawValue,\n cursorPos,\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 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 default NumberInputMask;\n"],"names":["addThousandsSeparator","n","thousandsSeparatorSymbol","replace","conformValue","prevRawValue","prevCursorPos","lastkeycode","prefix","suffix","includeThousandsSeparator","allowDecimal","decimalSymbol","decimalLimit","requireDecimal","allowNegative","allowLeadingZeroes","integerLimit","shouldCompleteDecimals","prefixIndex","indexOf","suffixIndex","lastIndexOf","negativeIndex","cursorPos","length","rawValue","substring","filteredRawValue","split","filter","char","isNegative","integer","decimal","foundDecimalSymbol","integerFits","decimalFits","forEach","nextMaskedValue","maskedPos","i","Math","min","NumberInputMask","focus","setFocus","setRawMask","cursorPosition","setCursorPosition","lastkey","setLastkey","setRawValue","autoFocus","className","clearable","disabled","fluidWidth","hasError","innerRef","leftComponent","maxLength","minLength","name","onBlur","onChange","onClick","onFocus","onKeyDown","onKeyUp","onPaste","placeholder","readOnly","rightComponent","style","type","value","rest","inputRef","useRef","useState","maskedValue","setMaskedValue","conform","useCallback","shouldUpdateCursorPos","event","target","originalValue","current","handleOnChange","e","selectionEnd","code","useLayoutEffect","setCaretPosition","handleKeyDown","stopPropagation","key","keyCode","handleBlur","React","DSTextBox","ref","propTypes","PropTypes","bool","func","shape","number","string","any","element","mask","placeholderChar","object"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"NumberInputMask.js","sources":["../../../../src/InputMask/mask_types/NumberInputMask.tsx"],"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 'react-desc';\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 =\n 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(\n (char) =>\n (char >= '0' && char <= '9') || char === decimalSymbol || char === '-',\n );\n\n let isNegative =\n allowNegative &&\n negativeIndex !== -1 &&\n (prefixIndex === -1 || negativeIndex < prefixIndex);\n\n let integer = '';\n let decimal = '';\n let foundDecimalSymbol = false;\n\n const integerFits = () =>\n integerLimit === null || integer.length < integerLimit;\n const decimalFits = () =>\n decimalLimit === null || decimal.length < decimalLimit;\n\n filteredRawValue.forEach((char) => {\n if (allowDecimal && !foundDecimalSymbol && char === decimalSymbol) {\n foundDecimalSymbol = true;\n } else if (\n allowNegative &&\n !integer.length &&\n !foundDecimalSymbol &&\n char === '-'\n ) {\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')\n integer = integer.substring(1);\n }\n\n let nextMaskedValue = includeThousandsSeparator\n ? addThousandsSeparator(integer, thousandsSeparatorSymbol)\n : integer;\n nextMaskedValue += foundDecimalSymbol ? decimalSymbol : '';\n\n if (shouldCompleteDecimals)\n 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)\n nextMaskedValue = `-${nextMaskedValue}`;\n maskedPos += 1;\n }\n\n nextMaskedValue += suffix;\n }\n\n if (lastkeycode !== 8 && maskedPos < nextMaskedValue.length) {\n if (\n nextMaskedValue[maskedPos] === decimalSymbol &&\n integer.length === integerLimit\n ) {\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 ({\n rawValue,\n cursorPos,\n lastkeycode,\n shouldUpdateCursorPos = true,\n shouldCompleteDecimals = false,\n }) => {\n const { nextMaskedValue, maskedPos } = conformValue(\n rawValue,\n cursorPos,\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 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 default NumberInputMask;\n"],"names":["addThousandsSeparator","n","thousandsSeparatorSymbol","replace","conformValue","prevRawValue","prevCursorPos","lastkeycode","prefix","suffix","includeThousandsSeparator","allowDecimal","decimalSymbol","decimalLimit","requireDecimal","allowNegative","allowLeadingZeroes","integerLimit","shouldCompleteDecimals","prefixIndex","indexOf","suffixIndex","lastIndexOf","negativeIndex","cursorPos","length","rawValue","substring","filteredRawValue","split","filter","char","isNegative","integer","decimal","foundDecimalSymbol","integerFits","decimalFits","forEach","nextMaskedValue","maskedPos","i","Math","min","NumberInputMask","focus","setFocus","setRawMask","cursorPosition","setCursorPosition","lastkey","setLastkey","setRawValue","autoFocus","className","clearable","disabled","fluidWidth","hasError","innerRef","leftComponent","maxLength","minLength","name","onBlur","onChange","onClick","onFocus","onKeyDown","onKeyUp","onPaste","placeholder","readOnly","rightComponent","style","type","value","rest","inputRef","useRef","useState","maskedValue","setMaskedValue","conform","useCallback","shouldUpdateCursorPos","event","target","originalValue","current","handleOnChange","e","selectionEnd","code","useLayoutEffect","setCaretPosition","handleKeyDown","stopPropagation","key","keyCode","handleBlur","React","DSTextBox","ref","propTypes","PropTypes","bool","func","shape","number","string","any","element","mask","placeholderChar","object"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PhoneInputMask.js","sources":["../../../../src/InputMask/mask_types/PhoneInputMask.tsx"],"sourcesContent":["/* eslint-disable max-lines */\n/* eslint-disable complexity */\nimport React, { useCallback, useLayoutEffect, useRef, useState } from 'react';\nimport { PropTypes } from 'react-desc';\nimport DSTextBox from '../../TextBox';\nimport { TCharsToAdd } from '../types';\nimport setCaretPosition from '../utils/setCaretPosition';\n\nconst conformValue = (rawValue, cursorPos, lastkeycode) => {\n let nextMaskedValue = rawValue\n .split('')\n .filter((char) => char >= '0' && char <= '9');\n\n while (nextMaskedValue.length && nextMaskedValue[0] === '0')\n nextMaskedValue.splice(0, 1);\n\n nextMaskedValue = nextMaskedValue.slice(0, 10);\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]\nconst charactersToAdd: TCharsToAdd = [\n ['(', 0],\n [') ', 4],\n ['-', 9],\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 return { nextMaskedValue: nextMaskedValue.join(''), maskedPos };\n};\n\nconst PhoneInputMask = ({\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\nPhoneInputMask.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 default PhoneInputMask;\n"],"names":["conformValue","rawValue","cursorPos","lastkeycode","nextMaskedValue","split","filter","char","length","splice","slice","maskedPos","i","charactersToAdd","forEach","chars","pos","join","PhoneInputMask","focus","setFocus","setRawMask","cursorPosition","setCursorPosition","lastkey","setLastkey","setRawValue","style","disabled","className","name","maxLength","minLength","fluidWidth","placeholder","onKeyDown","onClick","onChange","onFocus","onBlur","onPaste","onKeyUp","hasError","readOnly","type","innerRef","clearable","leftComponent","rightComponent","value","rest","inputRef","useRef","useState","maskedValue","setMaskedValue","conform","useCallback","shouldUpdateCursorPos","event","target","originalValue","current","handleOnChange","e","selectionEnd","code","useLayoutEffect","setCaretPosition","handleKeyDown","stopPropagation","key","keyCode","handleBlur","React","DSTextBox","ref","propTypes","PropTypes","bool","func","shape","number","string","object","element","any","mask","placeholderChar"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAQA,IAAMA,YAAY,GAAG,SAAfA,YAAe,CAACC,QAAD,EAAWC,SAAX,EAAsBC,WAAtB,EAAsC;AACzD,MAAIC,eAAe,GAAGH,QAAQ,CAC3BI,KADmB,CACb,EADa,EAEnBC,MAFmB,CAEZ,UAACC,IAAD;AAAA,WAAUA,IAAI,IAAI,GAAR,IAAeA,IAAI,IAAI,GAAjC;AAAA,GAFY,CAAtB;;AAIA,SAAOH,eAAe,CAACI,MAAhB,IAA0BJ,eAAe,CAAC,CAAD,CAAf,KAAuB,GAAxD;AACEA,IAAAA,eAAe,CAACK,MAAhB,CAAuB,CAAvB,EAA0B,CAA1B;AADF;;AAGAL,EAAAA,eAAe,GAAGA,eAAe,CAACM,KAAhB,CAAsB,CAAtB,EAAyB,EAAzB,CAAlB;AAEA,MAAIC,SAAS,GAAG,CAAhB;;AACA,OAAK,IAAIC,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGV,SAApB,EAA+BU,CAAC,IAAI,CAApC,EAAuC;AACrC,QAAIR,eAAe,CAACO,SAAD,CAAf,KAA+BV,QAAQ,CAACW,CAAD,CAA3C,EAAgDD,SAAS,IAAI,CAAb;AACjD,GAbwD;;;AAgB3D,MAAME,eAA4B,GAAG,CACjC,CAAC,GAAD,EAAM,CAAN,CADiC,EAEjC,CAAC,IAAD,EAAO,CAAP,CAFiC,EAGjC,CAAC,GAAD,EAAM,CAAN,CAHiC,CAArC;AAMEA,EAAAA,eAAe,CAACC,OAAhB,CAAwB,gBAAkB;AAAA;AAAA,QAAhBC,KAAgB;AAAA,QAATC,GAAS;;AACxC,QAAIZ,eAAe,CAACI,MAAhB,GAAyBQ,GAA7B,EAAkC;AAAA;;AAChC,0BAAAZ,eAAe,EAACK,MAAhB,0BAAuBO,GAAvB,EAA4B,CAA5B,gDAAkCD,KAAlC;;AACA,UAAIJ,SAAS,IAAIK,GAAjB,EAAsBL,SAAS,IAAII,KAAK,CAACP,MAAnB;AACvB;AACF,GALD;;AAOA,MAAIL,WAAW,KAAK,CAAhB,IAAqBQ,SAAS,GAAGP,eAAe,CAACI,MAArD,EAA6D;AAC3DK,IAAAA,eAAe,CAACC,OAAhB,CAAwB,iBAAkB;AAAA;AAAA,UAAhBC,KAAgB;AAAA,UAATC,GAAS;;AACxC,UAAIL,SAAS,KAAKK,GAAlB,EAAuBL,SAAS,IAAII,KAAK,CAACP,MAAnB;AACxB,KAFD;AAGD,GAJD,MAIO,IAAIL,WAAW,KAAK,CAAhB,IAAqBQ,SAAzB,EAAoC;AACzCE,IAAAA,eAAe,CAACC,OAAhB,CAAwB,iBAAkB;AAAA;AAAA,UAAhBC,KAAgB;AAAA,UAATC,GAAS;;AACxC,UAAIL,SAAS,KAAKK,GAAG,GAAG,CAAxB,EAA2BL,SAAS,IAAII,KAAK,CAACP,MAAnB;AAC5B,KAFD;AAGD;;AACD,SAAO;AAAEJ,IAAAA,eAAe,EAAEA,eAAe,CAACa,IAAhB,CAAqB,EAArB,CAAnB;AAA6CN,IAAAA,SAAS,EAATA;AAA7C,GAAP;AACD,CAvCD;;IAyCMO,cAAc,GAAG,SAAjBA,cAAiB,QAiCjB;AAAA,MAhCJC,KAgCI,SAhCJA,KAgCI;AAAA,MA/BJC,QA+BI,SA/BJA,QA+BI;AAAA,MA9BJC,UA8BI,SA9BJA,UA8BI;AAAA,MA7BJC,cA6BI,SA7BJA,cA6BI;AAAA,MA5BJC,iBA4BI,SA5BJA,iBA4BI;AAAA,MA3BJC,OA2BI,SA3BJA,OA2BI;AAAA,MA1BJC,UA0BI,SA1BJA,UA0BI;AAAA,MAzBJC,WAyBI,SAzBJA,WAyBI;AAAA,MAxBJC,KAwBI,SAxBJA,KAwBI;AAAA,MAvBJC,QAuBI,SAvBJA,QAuBI;AAAA,MAtBJC,SAsBI,SAtBJA,SAsBI;AAAA,MArBJC,IAqBI,SArBJA,IAqBI;AAAA,MApBJC,SAoBI,SApBJA,SAoBI;AAAA,MAnBJC,SAmBI,SAnBJA,SAmBI;AAAA,MAlBJC,UAkBI,SAlBJA,UAkBI;AAAA,MAjBJC,WAiBI,SAjBJA,WAiBI;AAAA,MAhBJC,SAgBI,SAhBJA,SAgBI;AAAA,MAfJC,OAeI,SAfJA,OAeI;AAAA,MAdJC,QAcI,SAdJA,QAcI;AAAA,MAbJC,OAaI,SAbJA,OAaI;AAAA,MAZJC,MAYI,SAZJA,MAYI;AAAA,MAXJC,OAWI,SAXJA,OAWI;AAAA,MAVJC,OAUI,SAVJA,OAUI;AAAA,MATJC,QASI,SATJA,QASI;AAAA,MARJC,QAQI,SARJA,QAQI;AAAA,MAPJC,IAOI,SAPJA,IAOI;AAAA,MANJC,SAMI,SANJA,QAMI;AAAA,8BALJC,SAKI;AAAA,MALJA,SAKI,gCALQ,KAKR;AAAA,MAJJC,aAII,SAJJA,aAII;AAAA,MAHJC,cAGI,SAHJA,cAGI;AAAA,MAFJC,KAEI,SAFJA,KAEI;AAAA,MADDC,IACC;;AACJ,MAAMC,QAAQ,GAAGC,YAAM,EAAvB;;AACA,kBAAsCC,cAAQ,CAACJ,KAAD,CAA9C;AAAA;AAAA,MAAOK,WAAP;AAAA,MAAoBC,cAApB;;AAEA,MAAMC,OAAO,GAAGC,iBAAW,CACzB,iBAAwE;AAAA,QAArExD,QAAqE,SAArEA,QAAqE;AAAA,QAA3DC,SAA2D,SAA3DA,SAA2D;AAAA,QAAhDC,WAAgD,SAAhDA,WAAgD;AAAA,sCAAnCuD,qBAAmC;AAAA,QAAnCA,qBAAmC,sCAAX,IAAW;;AACtE,wBAAuC1D,YAAY,CACjDC,QADiD,EAEjDC,SAFiD,EAGjDC,WAHiD,CAAnD;AAAA,QAAQC,eAAR,iBAAQA,eAAR;AAAA,QAAyBO,SAAzB,iBAAyBA,SAAzB;;AAKA,QAAMgD,KAAK,GAAG;AACZC,MAAAA,MAAM,EAAE;AACNX,QAAAA,KAAK,EAAE7C,eADD;AAENyD,QAAAA,aAAa,EAAE5D;AAFT;AADI,KAAd;AAMA,QAAIoC,QAAQ,IAAIjC,eAAe,KAAKkD,WAApC,EAAiDjB,QAAQ,CAACsB,KAAD,CAAR;AAEjDJ,IAAAA,cAAc,CAACnD,eAAD,CAAd;AACAsB,IAAAA,WAAW,CAACtB,eAAD,CAAX;AAEA,QAAIsD,qBAAJ,EAA2BnC,iBAAiB,CAAC;AAAEuC,MAAAA,OAAO,EAAEnD;AAAX,KAAD,CAAjB;AAC5B,GAnBwB,EAoBzB,CAAC2C,WAAD,EAAcjB,QAAd,CApByB,CAA3B;AAuBA,MAAM0B,cAAc,GAAGN,iBAAW,CAChC,UAACO,CAAD,EAAO;AACL,oBAA0CA,CAAC,CAACJ,MAA5C;AAAA,QAAe3D,QAAf,aAAQgD,KAAR;AAAA,QAAyBgB,YAAzB,aAAyBA,YAAzB;AACA5C,IAAAA,UAAU,CAACpB,QAAD,CAAV;AACAyB,IAAAA,WAAW,CAACzB,QAAD,CAAX;AACAsB,IAAAA,iBAAiB,CAAC;AAAEuC,MAAAA,OAAO,EAAEG;AAAX,KAAD,CAAjB;AACA7C,IAAAA,QAAQ,CAAC,IAAD,CAAR;AACD,GAP+B,EAQhC,CAACC,UAAD,EAAaK,WAAb,EAA0BH,iBAA1B,EAA6CH,QAA7C,EAAuDI,OAAO,CAAC0C,IAA/D,CARgC,CAAlC;AAWAC,EAAAA,qBAAe,CAAC,YAAM;AACpB,QAAIhD,KAAJ,EAAWiD,gCAAgB,CAACjB,QAAQ,CAACW,OAAV,EAAmBxC,cAAc,CAACwC,OAAlC,CAAhB;AACZ,GAFc,EAEZ,CAAC3C,KAAD,EAAQG,cAAR,CAFY,CAAf;AAIA6C,EAAAA,qBAAe,CAAC,YAAM;AACpB;AACAX,IAAAA,OAAO,CAAC;AACNvD,MAAAA,QAAQ,EAAEgD,KADJ;AAEN/C,MAAAA,SAAS,EAAEoB,cAAc,CAACwC,OAFpB;AAGN3D,MAAAA,WAAW,EAAEqB,OAAO,CAAC0C,IAHf;AAINR,MAAAA,qBAAqB,EAAEvC;AAJjB,KAAD,CAAP;AAMD,GARc,EAQZ,CAACA,KAAD,EAAQ8B,KAAR,EAAe3B,cAAc,CAACwC,OAA9B,CARY,CAAf;AAUA,MAAMO,aAAa,GAAGZ,iBAAW,CAC/B,UAACO,CAAD,EAAO;AACLA,IAAAA,CAAC,CAACM,eAAF;AACA7C,IAAAA,UAAU,CAAC;AAAE8C,MAAAA,GAAG,EAAEP,CAAC,CAACO,GAAT;AAAcL,MAAAA,IAAI,EAAEF,CAAC,CAACQ;AAAtB,KAAD,CAAV;AACArC,IAAAA,SAAS,CAAC6B,CAAD,CAAT;AACD,GAL8B,EAM/B,CAAC7B,SAAD,CAN+B,CAAjC;AASA,MAAMsC,UAAU,GAAGhB,iBAAW,CAC5B,UAACO,CAAD,EAAO;AACL5C,IAAAA,QAAQ,CAAC,KAAD,CAAR;AACAmB,IAAAA,MAAM,CAACyB,CAAD,CAAN;AACD,GAJ2B,EAK5B,CAACzB,MAAD,CAL4B,CAA9B;AAQA,sBACEmC,wCAACC,4BAAD,mCACMzB,IADN;AAEE,IAAA,SAAS,EAAErB,SAFb;AAGE,IAAA,SAAS,EAAEiB,SAHb;AAIE,IAAA,QAAQ,EAAElB,QAJZ;AAKE,IAAA,UAAU,EAAEK,UALd;AAME,IAAA,QAAQ,EAAES,QANZ;AAOE,IAAA,QAAQ,EAAE,kBAACkC,GAAD,EAAS;AACjBzB,MAAAA,QAAQ,CAACW,OAAT,GAAmBc,GAAnB;AACA,UAAI/B,SAAJ,EAAcA,SAAQ,CAAC+B,GAAD,CAAR;AACf,KAVH;AAWE,IAAA,QAAQ,EAAEzD,KAXZ;AAYE,IAAA,aAAa,EAAE4B,aAZjB;AAaE,IAAA,SAAS,EAAEhB,SAbb;AAcE,IAAA,SAAS,EAAEC,SAdb;AAeE,IAAA,IAAI,EAAEF,IAfR;AAgBE,IAAA,MAAM,EAAE2C,UAhBV;AAiBE,IAAA,QAAQ,EAAEV,cAjBZ;AAkBE,IAAA,OAAO,EAAE3B,OAlBX;AAmBE,IAAA,OAAO,EAAEE,OAnBX;AAoBE,IAAA,SAAS,EAAE+B,aApBb;AAqBE,IAAA,OAAO,EAAE5B,OArBX;AAsBE,IAAA,OAAO,EAAED,OAtBX;AAuBE,IAAA,WAAW,EAAEN,WAvBf;AAwBE,IAAA,QAAQ,EAAES,QAxBZ;AAyBE,IAAA,cAAc,EAAEK,cAzBlB;AA0BE,IAAA,KAAK,EAAErB,KA1BT;AA2BE,IAAA,IAAI,EAAEiB,IA3BR;AA4BE,IAAA,KAAK,EAAEU;AA5BT,KADF;AAgCD;;AAEDpC,cAAc,CAAC2D,SAAf,GAA2B;AACzB1D,EAAAA,KAAK,EAAE2D,mBAAS,CAACC,IADQ;AAEzB3D,EAAAA,QAAQ,EAAE0D,mBAAS,CAACE,IAFK;AAGzB3D,EAAAA,UAAU,EAAEyD,mBAAS,CAACE,IAHG;AAIzB1D,EAAAA,cAAc,EAAEwD,mBAAS,CAACG,KAAV,CAAgB;AAAEnB,IAAAA,OAAO,EAAEgB,mBAAS,CAACI;AAArB,GAAhB,CAJS;AAKzB3D,EAAAA,iBAAiB,EAAEuD,mBAAS,CAACE,IALJ;AAMzBxD,EAAAA,OAAO,EAAEsD,mBAAS,CAACG,KAAV,CAAgB;AAAEf,IAAAA,IAAI,EAAEY,mBAAS,CAACI,MAAlB;AAA0BX,IAAAA,GAAG,EAAEO,mBAAS,CAACK;AAAzC,GAAhB,CANgB;AAOzB1D,EAAAA,UAAU,EAAEqD,mBAAS,CAACE,IAPG;AAQzBtD,EAAAA,WAAW,EAAEoD,mBAAS,CAACE,IARE;AASzBrD,EAAAA,KAAK,EAAEmD,mBAAS,CAACM,MATQ;AAUzBxD,EAAAA,QAAQ,EAAEkD,mBAAS,CAACC,IAVK;AAWzBlD,EAAAA,SAAS,EAAEiD,mBAAS,CAACK,MAXI;AAYzBrD,EAAAA,IAAI,EAAEgD,mBAAS,CAACK,MAZS;AAazBpD,EAAAA,SAAS,EAAE+C,mBAAS,CAACI,MAbI;AAczBlD,EAAAA,SAAS,EAAE8C,mBAAS,CAACI,MAdI;AAezBjD,EAAAA,UAAU,EAAE6C,mBAAS,CAACC,IAfG;AAgBzB7C,EAAAA,WAAW,EAAE4C,mBAAS,CAACK,MAhBE;AAiBzBlC,EAAAA,KAAK,EAAE6B,mBAAS,CAACK,MAjBQ;AAkBzB9C,EAAAA,QAAQ,EAAEyC,mBAAS,CAACE,IAlBK;AAmBzB7C,EAAAA,SAAS,EAAE2C,mBAAS,CAACE,IAnBI;AAoBzBjC,EAAAA,aAAa,EAAE+B,mBAAS,CAACO,OApBA;AAqBzBrC,EAAAA,cAAc,EAAE8B,mBAAS,CAACO,OArBD;AAsBzB/C,EAAAA,OAAO,EAAEwC,mBAAS,CAACE,IAtBM;AAuBzBzC,EAAAA,MAAM,EAAEuC,mBAAS,CAACE,IAvBO;AAwBzBxC,EAAAA,OAAO,EAAEsC,mBAAS,CAACE,IAxBM;AAyBzBvC,EAAAA,OAAO,EAAEqC,mBAAS,CAACE,IAzBM;AA0BzBtC,EAAAA,QAAQ,EAAEoC,mBAAS,CAACC,IA1BK;AA2BzBpC,EAAAA,QAAQ,EAAEmC,mBAAS,CAACC,IA3BK;AA4BzB3C,EAAAA,OAAO,EAAE0C,mBAAS,CAACE,IA5BM;AA6BzBlC,EAAAA,SAAS,EAAEgC,mBAAS,CAACC,IA7BI;AA8BzBnC,EAAAA,IAAI,EAAEkC,mBAAS,CAACK,MA9BS;AA+BzBtC,EAAAA,QAAQ,EAAEiC,mBAAS,CAACQ,GA/BK;AAgCzBC,EAAAA,IAAI,EAAET,mBAAS,CAACQ,GAhCS;AAiCzBE,EAAAA,eAAe,EAAEV,mBAAS,CAACK;AAjCF,CAA3B;;;;"}
|
|
1
|
+
{"version":3,"file":"PhoneInputMask.js","sources":["../../../../src/InputMask/mask_types/PhoneInputMask.tsx"],"sourcesContent":["/* eslint-disable max-lines */\n/* eslint-disable complexity */\nimport React, { useCallback, useLayoutEffect, useRef, useState } from 'react';\nimport { PropTypes } from 'react-desc';\nimport DSTextBox from '../../TextBox';\nimport { TCharsToAdd } from '../types';\nimport setCaretPosition from '../utils/setCaretPosition';\n\nconst conformValue = (rawValue, cursorPos, lastkeycode) => {\n let nextMaskedValue = rawValue\n .split('')\n .filter((char) => char >= '0' && char <= '9');\n\n while (nextMaskedValue.length && nextMaskedValue[0] === '0')\n nextMaskedValue.splice(0, 1);\n\n nextMaskedValue = nextMaskedValue.slice(0, 10);\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]\nconst charactersToAdd: TCharsToAdd = [\n ['(', 0],\n [') ', 4],\n ['-', 9],\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 return { nextMaskedValue: nextMaskedValue.join(''), maskedPos };\n};\n\nconst PhoneInputMask = ({\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\nPhoneInputMask.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 default PhoneInputMask;\n"],"names":["conformValue","rawValue","cursorPos","lastkeycode","nextMaskedValue","split","filter","char","length","splice","slice","maskedPos","i","charactersToAdd","forEach","chars","pos","join","PhoneInputMask","focus","setFocus","setRawMask","cursorPosition","setCursorPosition","lastkey","setLastkey","setRawValue","style","disabled","className","name","maxLength","minLength","fluidWidth","placeholder","onKeyDown","onClick","onChange","onFocus","onBlur","onPaste","onKeyUp","hasError","readOnly","type","innerRef","clearable","leftComponent","rightComponent","value","rest","inputRef","useRef","useState","maskedValue","setMaskedValue","conform","useCallback","shouldUpdateCursorPos","event","target","originalValue","current","handleOnChange","e","selectionEnd","code","useLayoutEffect","setCaretPosition","handleKeyDown","stopPropagation","key","keyCode","handleBlur","React","DSTextBox","ref","propTypes","PropTypes","bool","func","shape","number","string","object","element","any","mask","placeholderChar"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PhoneInternationalInputMask.js","sources":["../../../../src/InputMask/mask_types/PhoneInternationalInputMask.tsx"],"sourcesContent":["/* eslint-disable max-lines */\n/* eslint-disable complexity */\nimport React, { useCallback, useLayoutEffect, useRef, useState } from 'react';\nimport { PropTypes } from 'react-desc';\nimport DSTextBox from '../../TextBox';\nimport { TCharsToAdd } from '../types';\nimport setCaretPosition from '../utils/setCaretPosition';\n\nconst conformValue = (rawValue, cursorPos, lastkeycode) => {\n let nextMaskedValue = rawValue\n .split('+1')\n .slice(-1)[0]\n .split('')\n .filter((char) => char >= '0' && char <= '9');\n\n while (nextMaskedValue.length && nextMaskedValue[0] === '0')\n nextMaskedValue.splice(0, 1);\n\n nextMaskedValue = nextMaskedValue.slice(0, 10);\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]\nconst charactersToAdd: TCharsToAdd = [\n ['+1 (', 0],\n [') ', 7],\n ['-', 12],\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 return { nextMaskedValue: nextMaskedValue.join(''), maskedPos };\n};\n\nconst PhoneInternationalInputMask = ({\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\nPhoneInternationalInputMask.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 default PhoneInternationalInputMask;\n"],"names":["conformValue","rawValue","cursorPos","lastkeycode","nextMaskedValue","split","slice","filter","char","length","splice","maskedPos","i","charactersToAdd","forEach","chars","pos","join","PhoneInternationalInputMask","focus","setFocus","setRawMask","cursorPosition","setCursorPosition","lastkey","setLastkey","setRawValue","style","disabled","className","name","maxLength","minLength","fluidWidth","placeholder","onKeyDown","onClick","onChange","onFocus","onBlur","onPaste","onKeyUp","hasError","readOnly","type","innerRef","clearable","leftComponent","rightComponent","value","rest","inputRef","useRef","useState","maskedValue","setMaskedValue","conform","useCallback","shouldUpdateCursorPos","event","target","originalValue","current","handleOnChange","e","selectionEnd","code","useLayoutEffect","setCaretPosition","handleKeyDown","stopPropagation","key","keyCode","handleBlur","React","DSTextBox","ref","propTypes","PropTypes","bool","func","shape","number","string","object","element","any","mask","placeholderChar"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"PhoneInternationalInputMask.js","sources":["../../../../src/InputMask/mask_types/PhoneInternationalInputMask.tsx"],"sourcesContent":["/* eslint-disable max-lines */\n/* eslint-disable complexity */\nimport React, { useCallback, useLayoutEffect, useRef, useState } from 'react';\nimport { PropTypes } from 'react-desc';\nimport DSTextBox from '../../TextBox';\nimport { TCharsToAdd } from '../types';\nimport setCaretPosition from '../utils/setCaretPosition';\n\nconst conformValue = (rawValue, cursorPos, lastkeycode) => {\n let nextMaskedValue = rawValue\n .split('+1')\n .slice(-1)[0]\n .split('')\n .filter((char) => char >= '0' && char <= '9');\n\n while (nextMaskedValue.length && nextMaskedValue[0] === '0')\n nextMaskedValue.splice(0, 1);\n\n nextMaskedValue = nextMaskedValue.slice(0, 10);\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]\nconst charactersToAdd: TCharsToAdd = [\n ['+1 (', 0],\n [') ', 7],\n ['-', 12],\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 return { nextMaskedValue: nextMaskedValue.join(''), maskedPos };\n};\n\nconst PhoneInternationalInputMask = ({\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\nPhoneInternationalInputMask.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 default PhoneInternationalInputMask;\n"],"names":["conformValue","rawValue","cursorPos","lastkeycode","nextMaskedValue","split","slice","filter","char","length","splice","maskedPos","i","charactersToAdd","forEach","chars","pos","join","PhoneInternationalInputMask","focus","setFocus","setRawMask","cursorPosition","setCursorPosition","lastkey","setLastkey","setRawValue","style","disabled","className","name","maxLength","minLength","fluidWidth","placeholder","onKeyDown","onClick","onChange","onFocus","onBlur","onPaste","onKeyUp","hasError","readOnly","type","innerRef","clearable","leftComponent","rightComponent","value","rest","inputRef","useRef","useState","maskedValue","setMaskedValue","conform","useCallback","shouldUpdateCursorPos","event","target","originalValue","current","handleOnChange","e","selectionEnd","code","useLayoutEffect","setCaretPosition","handleKeyDown","stopPropagation","key","keyCode","handleBlur","React","DSTextBox","ref","propTypes","PropTypes","bool","func","shape","number","string","object","element","any","mask","placeholderChar"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SsnInputMask.js","sources":["../../../../src/InputMask/mask_types/SsnInputMask.tsx"],"sourcesContent":["/* eslint-disable max-lines */\n/* eslint-disable complexity */\nimport React, { useCallback, useLayoutEffect, useRef, useState } from 'react';\nimport { PropTypes } from 'react-desc';\nimport DSTextBox from '../../TextBox';\nimport { TCharsToAdd } from '../types';\nimport setCaretPosition from '../utils/setCaretPosition';\n\nconst conformValue = (rawValue, cursorPos, lastkeycode) => {\n const nextMaskedValue = rawValue\n .split('')\n .filter((char) => char >= '0' && char <= '9')\n .slice(0, 9);\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]\nconst charactersToAdd: TCharsToAdd = [\n ['-', 3],\n ['-', 6],\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 return { nextMaskedValue: nextMaskedValue.join(''), maskedPos };\n};\n\nconst SsnInputMask = ({\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\nSsnInputMask.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 default SsnInputMask;\n"],"names":["conformValue","rawValue","cursorPos","lastkeycode","nextMaskedValue","split","filter","char","slice","maskedPos","i","charactersToAdd","forEach","chars","pos","length","splice","join","SsnInputMask","focus","setFocus","setRawMask","cursorPosition","setCursorPosition","lastkey","setLastkey","setRawValue","style","disabled","className","name","maxLength","minLength","fluidWidth","placeholder","onKeyDown","onClick","onChange","onFocus","onBlur","onPaste","onKeyUp","hasError","readOnly","type","innerRef","clearable","leftComponent","rightComponent","value","rest","inputRef","useRef","useState","maskedValue","setMaskedValue","conform","useCallback","shouldUpdateCursorPos","event","target","originalValue","current","handleOnChange","e","selectionEnd","code","useLayoutEffect","setCaretPosition","handleKeyDown","stopPropagation","key","keyCode","handleBlur","React","DSTextBox","ref","propTypes","PropTypes","bool","func","shape","number","string","object","element","any","mask","placeholderChar"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"SsnInputMask.js","sources":["../../../../src/InputMask/mask_types/SsnInputMask.tsx"],"sourcesContent":["/* eslint-disable max-lines */\n/* eslint-disable complexity */\nimport React, { useCallback, useLayoutEffect, useRef, useState } from 'react';\nimport { PropTypes } from 'react-desc';\nimport DSTextBox from '../../TextBox';\nimport { TCharsToAdd } from '../types';\nimport setCaretPosition from '../utils/setCaretPosition';\n\nconst conformValue = (rawValue, cursorPos, lastkeycode) => {\n const nextMaskedValue = rawValue\n .split('')\n .filter((char) => char >= '0' && char <= '9')\n .slice(0, 9);\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]\nconst charactersToAdd: TCharsToAdd = [\n ['-', 3],\n ['-', 6],\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 return { nextMaskedValue: nextMaskedValue.join(''), maskedPos };\n};\n\nconst SsnInputMask = ({\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\nSsnInputMask.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 default SsnInputMask;\n"],"names":["conformValue","rawValue","cursorPos","lastkeycode","nextMaskedValue","split","filter","char","slice","maskedPos","i","charactersToAdd","forEach","chars","pos","length","splice","join","SsnInputMask","focus","setFocus","setRawMask","cursorPosition","setCursorPosition","lastkey","setLastkey","setRawValue","style","disabled","className","name","maxLength","minLength","fluidWidth","placeholder","onKeyDown","onClick","onChange","onFocus","onBlur","onPaste","onKeyUp","hasError","readOnly","type","innerRef","clearable","leftComponent","rightComponent","value","rest","inputRef","useRef","useState","maskedValue","setMaskedValue","conform","useCallback","shouldUpdateCursorPos","event","target","originalValue","current","handleOnChange","e","selectionEnd","code","useLayoutEffect","setCaretPosition","handleKeyDown","stopPropagation","key","keyCode","handleBlur","React","DSTextBox","ref","propTypes","PropTypes","bool","func","shape","number","string","object","element","any","mask","placeholderChar"],"mappings":"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"}
|