@skbkontur/react-ui 6.1.4-4e59f.0 → 6.1.4-d7626.0
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/components/FxInput/FxInput.d.ts +1 -1
- package/components/FxInput/FxInput.js.map +1 -1
- package/components/Group/Group.js +2 -3
- package/components/Group/Group.js.map +1 -1
- package/components/Input/Input.d.ts +1 -1
- package/components/Input/Input.js.map +1 -1
- package/components/MaskedInput/MaskedInput.d.ts +3 -2
- package/components/MaskedInput/MaskedInput.js +10 -126
- package/components/MaskedInput/MaskedInput.js.map +1 -1
- package/components/MaskedInput/MaskedInputLegacy.d.ts +3 -0
- package/components/MaskedInput/MaskedInputLegacy.js +142 -0
- package/components/MaskedInput/MaskedInputLegacy.js.map +1 -0
- package/components/MaskedInputV2/MaskedInputV2.d.ts +58 -0
- package/components/MaskedInputV2/MaskedInputV2.helpers.d.ts +9 -0
- package/components/MaskedInputV2/MaskedInputV2.helpers.js +17 -0
- package/components/MaskedInputV2/MaskedInputV2.helpers.js.map +1 -0
- package/components/MaskedInputV2/MaskedInputV2.js +286 -0
- package/components/MaskedInputV2/MaskedInputV2.js.map +1 -0
- package/{internal/TimeInput/TimeInput.styles.d.ts → components/MaskedInputV2/MaskedInputV2.styles.d.ts} +4 -3
- package/components/MaskedInputV2/MaskedInputV2.styles.js +19 -0
- package/components/MaskedInputV2/MaskedInputV2.styles.js.map +1 -0
- package/components/MaskedInputV2/index.d.ts +1 -0
- package/components/MaskedInputV2/index.js +2 -0
- package/components/MaskedInputV2/index.js.map +1 -0
- package/components/MaskedInputV2/internal/MaskOverlay.d.ts +19 -0
- package/components/MaskedInputV2/internal/MaskOverlay.js +54 -0
- package/components/MaskedInputV2/internal/MaskOverlay.js.map +1 -0
- package/components/MaskedInputV2/internal/MaskedCore.d.ts +8 -0
- package/components/MaskedInputV2/internal/MaskedCore.js +126 -0
- package/components/MaskedInputV2/internal/MaskedCore.js.map +1 -0
- package/components/MaskedInputV2/internal/MaskedCore.types.d.ts +32 -0
- package/components/MaskedInputV2/internal/MaskedCore.types.js +2 -0
- package/components/MaskedInputV2/internal/MaskedCore.types.js.map +1 -0
- package/components/MaskedInputV2/internal/MaskedInternal.styles.d.ts +15 -0
- package/components/MaskedInputV2/internal/MaskedInternal.styles.js +34 -0
- package/components/MaskedInputV2/internal/MaskedInternal.styles.js.map +1 -0
- package/components/MaskedInputV2/internal/buildSlotMap.d.ts +11 -0
- package/components/MaskedInputV2/internal/buildSlotMap.js +37 -0
- package/components/MaskedInputV2/internal/buildSlotMap.js.map +1 -0
- package/components/MaskedInputV2/internal/computeMaskAlignPadding.d.ts +6 -0
- package/components/MaskedInputV2/internal/computeMaskAlignPadding.js +47 -0
- package/components/MaskedInputV2/internal/computeMaskAlignPadding.js.map +1 -0
- package/components/MaskedInputV2/internal/computePasteMaskedCursor.d.ts +3 -0
- package/components/MaskedInputV2/internal/computePasteMaskedCursor.js +11 -0
- package/components/MaskedInputV2/internal/computePasteMaskedCursor.js.map +1 -0
- package/components/MaskedInputV2/internal/extractRaw.d.ts +10 -0
- package/components/MaskedInputV2/internal/extractRaw.js +16 -0
- package/components/MaskedInputV2/internal/extractRaw.js.map +1 -0
- package/components/MaskedInputV2/internal/findNearestRawLeft.d.ts +10 -0
- package/components/MaskedInputV2/internal/findNearestRawLeft.js +18 -0
- package/components/MaskedInputV2/internal/findNearestRawLeft.js.map +1 -0
- package/components/MaskedInputV2/internal/helpers.d.ts +8 -0
- package/components/MaskedInputV2/internal/helpers.js +9 -0
- package/components/MaskedInputV2/internal/helpers.js.map +1 -0
- package/components/MaskedInputV2/internal/maskedCoreClipboard.d.ts +25 -0
- package/components/MaskedInputV2/internal/maskedCoreClipboard.js +30 -0
- package/components/MaskedInputV2/internal/maskedCoreClipboard.js.map +1 -0
- package/components/MaskedInputV2/internal/maskedCoreDeletion.d.ts +28 -0
- package/components/MaskedInputV2/internal/maskedCoreDeletion.js +70 -0
- package/components/MaskedInputV2/internal/maskedCoreDeletion.js.map +1 -0
- package/components/MaskedInputV2/internal/maskedCoreInputChange.d.ts +35 -0
- package/components/MaskedInputV2/internal/maskedCoreInputChange.js +31 -0
- package/components/MaskedInputV2/internal/maskedCoreInputChange.js.map +1 -0
- package/components/MaskedInputV2/internal/maskedCoreNavigation.d.ts +13 -0
- package/components/MaskedInputV2/internal/maskedCoreNavigation.js +79 -0
- package/components/MaskedInputV2/internal/maskedCoreNavigation.js.map +1 -0
- package/components/MaskedInputV2/internal/measureInputTextWidth.d.ts +2 -0
- package/components/MaskedInputV2/internal/measureInputTextWidth.js +30 -0
- package/components/MaskedInputV2/internal/measureInputTextWidth.js.map +1 -0
- package/components/MaskedInputV2/internal/setMaskInputSelectionRange.d.ts +2 -0
- package/components/MaskedInputV2/internal/setMaskInputSelectionRange.js +25 -0
- package/components/MaskedInputV2/internal/setMaskInputSelectionRange.js.map +1 -0
- package/components/MaskedInputV2/internal/showOverlay.d.ts +3 -0
- package/components/MaskedInputV2/internal/showOverlay.js +16 -0
- package/components/MaskedInputV2/internal/showOverlay.js.map +1 -0
- package/components/MaskedInputV2/internal/stripMaskChars.d.ts +11 -0
- package/components/MaskedInputV2/internal/stripMaskChars.js +20 -0
- package/components/MaskedInputV2/internal/stripMaskChars.js.map +1 -0
- package/components/MaskedInputV2/internal/types.d.ts +74 -0
- package/components/MaskedInputV2/internal/types.js.map +1 -0
- package/components/MaskedInputV2/internal/useInputOverflow.d.ts +4 -0
- package/components/MaskedInputV2/internal/useInputOverflow.js +34 -0
- package/components/MaskedInputV2/internal/useInputOverflow.js.map +1 -0
- package/components/MaskedInputV2/internal/useMaskAlignPadding.d.ts +2 -0
- package/components/MaskedInputV2/internal/useMaskAlignPadding.js +33 -0
- package/components/MaskedInputV2/internal/useMaskAlignPadding.js.map +1 -0
- package/components/MaskedInputV2/internal/useMaskEngine.d.ts +42 -0
- package/components/MaskedInputV2/internal/useMaskEngine.js +82 -0
- package/components/MaskedInputV2/internal/useMaskEngine.js.map +1 -0
- package/components/MaskedInputV2/internal/useMaskedCoreHandlers.d.ts +33 -0
- package/components/MaskedInputV2/internal/useMaskedCoreHandlers.js +244 -0
- package/components/MaskedInputV2/internal/useMaskedCoreHandlers.js.map +1 -0
- package/components/MaskedInputV2/react-imask/imask/controls/html-input-mask-element.d.ts +16 -0
- package/components/MaskedInputV2/react-imask/imask/controls/html-input-mask-element.js +59 -0
- package/components/MaskedInputV2/react-imask/imask/controls/html-input-mask-element.js.map +1 -0
- package/components/MaskedInputV2/react-imask/imask/controls/html-mask-element.d.ts +20 -0
- package/components/MaskedInputV2/react-imask/imask/controls/html-mask-element.js +106 -0
- package/components/MaskedInputV2/react-imask/imask/controls/html-mask-element.js.map +1 -0
- package/components/MaskedInputV2/react-imask/imask/controls/input-history.d.ts +17 -0
- package/components/MaskedInputV2/react-imask/imask/controls/input-history.js +49 -0
- package/components/MaskedInputV2/react-imask/imask/controls/input-history.js.map +1 -0
- package/components/MaskedInputV2/react-imask/imask/controls/input.d.ts +95 -0
- package/components/MaskedInputV2/react-imask/imask/controls/input.js +420 -0
- package/components/MaskedInputV2/react-imask/imask/controls/input.js.map +1 -0
- package/components/MaskedInputV2/react-imask/imask/controls/mask-element.d.ts +30 -0
- package/components/MaskedInputV2/react-imask/imask/controls/mask-element.js +59 -0
- package/components/MaskedInputV2/react-imask/imask/controls/mask-element.js.map +1 -0
- package/components/MaskedInputV2/react-imask/imask/core/action-details.d.ts +30 -0
- package/components/MaskedInputV2/react-imask/imask/core/action-details.js +100 -0
- package/components/MaskedInputV2/react-imask/imask/core/action-details.js.map +1 -0
- package/components/MaskedInputV2/react-imask/imask/core/change-details.d.ts +20 -0
- package/components/MaskedInputV2/react-imask/imask/core/change-details.js +46 -0
- package/components/MaskedInputV2/react-imask/imask/core/change-details.js.map +1 -0
- package/components/MaskedInputV2/react-imask/imask/core/continuous-tail-details.d.ts +21 -0
- package/components/MaskedInputV2/react-imask/imask/core/continuous-tail-details.js +52 -0
- package/components/MaskedInputV2/react-imask/imask/core/continuous-tail-details.js.map +1 -0
- package/components/MaskedInputV2/react-imask/imask/core/holder.d.ts +34 -0
- package/components/MaskedInputV2/react-imask/imask/core/holder.js +38 -0
- package/components/MaskedInputV2/react-imask/imask/core/holder.js.map +1 -0
- package/components/MaskedInputV2/react-imask/imask/core/tail-details.d.ts +20 -0
- package/components/MaskedInputV2/react-imask/imask/core/tail-details.js +2 -0
- package/components/MaskedInputV2/react-imask/imask/core/tail-details.js.map +1 -0
- package/components/MaskedInputV2/react-imask/imask/core/utils.d.ts +24 -0
- package/components/MaskedInputV2/react-imask/imask/core/utils.js +100 -0
- package/components/MaskedInputV2/react-imask/imask/core/utils.js.map +1 -0
- package/components/MaskedInputV2/react-imask/imask/imask.d.ts +5 -0
- package/components/MaskedInputV2/react-imask/imask/imask.js +7 -0
- package/components/MaskedInputV2/react-imask/imask/imask.js.map +1 -0
- package/components/MaskedInputV2/react-imask/imask/index.d.ts +17 -0
- package/components/MaskedInputV2/react-imask/imask/index.js +16 -0
- package/components/MaskedInputV2/react-imask/imask/index.js.map +1 -0
- package/components/MaskedInputV2/react-imask/imask/masked/base.d.ts +114 -0
- package/components/MaskedInputV2/react-imask/imask/masked/base.js +411 -0
- package/components/MaskedInputV2/react-imask/imask/masked/base.js.map +1 -0
- package/components/MaskedInputV2/react-imask/imask/masked/factory.d.ts +62 -0
- package/components/MaskedInputV2/react-imask/imask/masked/factory.js +96 -0
- package/components/MaskedInputV2/react-imask/imask/masked/factory.js.map +1 -0
- package/components/MaskedInputV2/react-imask/imask/masked/pattern.d.ts +101 -0
- package/components/MaskedInputV2/react-imask/imask/masked/pattern.js +543 -0
- package/components/MaskedInputV2/react-imask/imask/masked/pattern.js.map +1 -0
- package/components/MaskedInputV2/react-imask/imask/masked/patterns/block.d.ts +30 -0
- package/components/MaskedInputV2/react-imask/imask/masked/patterns/block.js +2 -0
- package/components/MaskedInputV2/react-imask/imask/masked/patterns/block.js.map +1 -0
- package/components/MaskedInputV2/react-imask/imask/masked/patterns/chunk-tail-details.d.ts +21 -0
- package/components/MaskedInputV2/react-imask/imask/masked/patterns/chunk-tail-details.js +180 -0
- package/components/MaskedInputV2/react-imask/imask/masked/patterns/chunk-tail-details.js.map +1 -0
- package/components/MaskedInputV2/react-imask/imask/masked/patterns/cursor.d.ts +31 -0
- package/components/MaskedInputV2/react-imask/imask/masked/patterns/cursor.js +163 -0
- package/components/MaskedInputV2/react-imask/imask/masked/patterns/cursor.js.map +1 -0
- package/components/MaskedInputV2/react-imask/imask/masked/patterns/fixed-definition.d.ts +42 -0
- package/components/MaskedInputV2/react-imask/imask/masked/patterns/fixed-definition.js +158 -0
- package/components/MaskedInputV2/react-imask/imask/masked/patterns/fixed-definition.js.map +1 -0
- package/components/MaskedInputV2/react-imask/imask/masked/patterns/input-definition.d.ts +56 -0
- package/components/MaskedInputV2/react-imask/imask/masked/patterns/input-definition.js +185 -0
- package/components/MaskedInputV2/react-imask/imask/masked/patterns/input-definition.js.map +1 -0
- package/components/MaskedInputV2/react-imask/imask/masked/regexp.d.ts +17 -0
- package/components/MaskedInputV2/react-imask/imask/masked/regexp.js +36 -0
- package/components/MaskedInputV2/react-imask/imask/masked/regexp.js.map +1 -0
- package/components/MaskedInputV2/react-imask/index.d.ts +3 -0
- package/components/MaskedInputV2/react-imask/index.js +4 -0
- package/components/MaskedInputV2/react-imask/index.js.map +1 -0
- package/components/MaskedInputV2/react-imask/input.d.ts +8 -0
- package/components/MaskedInputV2/react-imask/input.js +35 -0
- package/components/MaskedInputV2/react-imask/input.js.map +1 -0
- package/components/MaskedInputV2/react-imask/mixin.d.ts +31 -0
- package/components/MaskedInputV2/react-imask/mixin.js +246 -0
- package/components/MaskedInputV2/react-imask/mixin.js.map +1 -0
- package/components/TokenInput/TokenInput.d.ts +7 -3
- package/components/TokenInput/TokenInput.js +0 -1
- package/components/TokenInput/TokenInput.js.map +1 -1
- package/index.d.ts +0 -1
- package/index.js +0 -1
- package/index.js.map +1 -1
- package/internal/themes/BasicTheme.d.ts +0 -34
- package/internal/themes/BasicTheme.js +0 -96
- package/internal/themes/BasicTheme.js.map +1 -1
- package/lib/events/keyboard/KeyboardEventCodes.d.ts +2 -0
- package/lib/events/keyboard/KeyboardEventCodes.js +2 -0
- package/lib/events/keyboard/KeyboardEventCodes.js.map +1 -1
- package/lib/events/keyboard/KeyboardMapKeys.js +2 -0
- package/lib/events/keyboard/KeyboardMapKeys.js.map +1 -1
- package/lib/events/keyboard/identifiers.d.ts +2 -0
- package/lib/events/keyboard/identifiers.js +6 -0
- package/lib/events/keyboard/identifiers.js.map +1 -1
- package/lib/featureFlagsContext/ReactUIFeatureFlagsContext.d.ts +2 -0
- package/lib/featureFlagsContext/ReactUIFeatureFlagsContext.js +1 -0
- package/lib/featureFlagsContext/ReactUIFeatureFlagsContext.js.map +1 -1
- package/lib/locale/types.d.ts +0 -2
- package/lib/locale/types.js.map +1 -1
- package/lib/utils.d.ts +0 -2
- package/lib/utils.js +0 -1
- package/lib/utils.js.map +1 -1
- package/package.json +4 -9
- package/components/TimePicker/TimeClockIcon.d.ts +0 -3
- package/components/TimePicker/TimeClockIcon.js +0 -11
- package/components/TimePicker/TimeClockIcon.js.map +0 -1
- package/components/TimePicker/TimePicker.d.ts +0 -79
- package/components/TimePicker/TimePicker.js +0 -513
- package/components/TimePicker/TimePicker.js.map +0 -1
- package/components/TimePicker/TimePicker.styles.d.ts +0 -11
- package/components/TimePicker/TimePicker.styles.js +0 -36
- package/components/TimePicker/TimePicker.styles.js.map +0 -1
- package/components/TimePicker/TimePickerItems.d.ts +0 -17
- package/components/TimePicker/TimePickerItems.js +0 -80
- package/components/TimePicker/TimePickerItems.js.map +0 -1
- package/components/TimePicker/TimePickerMobilePopup.d.ts +0 -38
- package/components/TimePicker/TimePickerMobilePopup.js +0 -21
- package/components/TimePicker/TimePickerMobilePopup.js.map +0 -1
- package/components/TimePicker/TimePickerPopup.d.ts +0 -20
- package/components/TimePicker/TimePickerPopup.js +0 -18
- package/components/TimePicker/TimePickerPopup.js.map +0 -1
- package/components/TimePicker/helpers/TimePicker.constants.d.ts +0 -22
- package/components/TimePicker/helpers/TimePicker.constants.js +0 -31
- package/components/TimePicker/helpers/TimePicker.constants.js.map +0 -1
- package/components/TimePicker/helpers/TimePicker.editing.d.ts +0 -23
- package/components/TimePicker/helpers/TimePicker.editing.js +0 -101
- package/components/TimePicker/helpers/TimePicker.editing.js.map +0 -1
- package/components/TimePicker/helpers/TimePicker.layout.d.ts +0 -6
- package/components/TimePicker/helpers/TimePicker.layout.js +0 -49
- package/components/TimePicker/helpers/TimePicker.layout.js.map +0 -1
- package/components/TimePicker/helpers/TimePicker.selection.d.ts +0 -5
- package/components/TimePicker/helpers/TimePicker.selection.js +0 -23
- package/components/TimePicker/helpers/TimePicker.selection.js.map +0 -1
- package/components/TimePicker/helpers/TimePicker.shared.d.ts +0 -47
- package/components/TimePicker/helpers/TimePicker.shared.js +0 -70
- package/components/TimePicker/helpers/TimePicker.shared.js.map +0 -1
- package/components/TimePicker/helpers/TimePicker.value.d.ts +0 -30
- package/components/TimePicker/helpers/TimePicker.value.js +0 -96
- package/components/TimePicker/helpers/TimePicker.value.js.map +0 -1
- package/components/TimePicker/helpers/scrollSelectedItemIntoView.d.ts +0 -4
- package/components/TimePicker/helpers/scrollSelectedItemIntoView.js +0 -24
- package/components/TimePicker/helpers/scrollSelectedItemIntoView.js.map +0 -1
- package/components/TimePicker/helpers/validateTimePicker.d.ts +0 -8
- package/components/TimePicker/helpers/validateTimePicker.js +0 -16
- package/components/TimePicker/helpers/validateTimePicker.js.map +0 -1
- package/components/TimePicker/hooks/useTimePickerDropdown.d.ts +0 -17
- package/components/TimePicker/hooks/useTimePickerDropdown.js +0 -62
- package/components/TimePicker/hooks/useTimePickerDropdown.js.map +0 -1
- package/components/TimePicker/hooks/useTimePickerSelection.d.ts +0 -18
- package/components/TimePicker/hooks/useTimePickerSelection.js +0 -66
- package/components/TimePicker/hooks/useTimePickerSelection.js.map +0 -1
- package/components/TimePicker/hooks/useTimePickerValue.d.ts +0 -18
- package/components/TimePicker/hooks/useTimePickerValue.js +0 -59
- package/components/TimePicker/hooks/useTimePickerValue.js.map +0 -1
- package/components/TimePicker/index.d.ts +0 -2
- package/components/TimePicker/index.js +0 -2
- package/components/TimePicker/index.js.map +0 -1
- package/components/TimePicker/locale/index.d.ts +0 -4
- package/components/TimePicker/locale/index.js +0 -9
- package/components/TimePicker/locale/index.js.map +0 -1
- package/components/TimePicker/locale/locales/en.d.ts +0 -2
- package/components/TimePicker/locale/locales/en.js +0 -5
- package/components/TimePicker/locale/locales/en.js.map +0 -1
- package/components/TimePicker/locale/locales/ru.d.ts +0 -2
- package/components/TimePicker/locale/locales/ru.js +0 -5
- package/components/TimePicker/locale/locales/ru.js.map +0 -1
- package/components/TimePicker/locale/types.d.ts +0 -4
- package/components/TimePicker/locale/types.js.map +0 -1
- package/internal/NativeTimeInput/NativeTimeInput.d.ts +0 -16
- package/internal/NativeTimeInput/NativeTimeInput.js +0 -25
- package/internal/NativeTimeInput/NativeTimeInput.js.map +0 -1
- package/internal/NativeTimeInput/NativeTimeInput.styles.d.ts +0 -3
- package/internal/NativeTimeInput/NativeTimeInput.styles.js +0 -15
- package/internal/NativeTimeInput/NativeTimeInput.styles.js.map +0 -1
- package/internal/NativeTimeInput/NativeTimeInput.utils.d.ts +0 -7
- package/internal/NativeTimeInput/NativeTimeInput.utils.js +0 -28
- package/internal/NativeTimeInput/NativeTimeInput.utils.js.map +0 -1
- package/internal/NativeTimeInput/index.d.ts +0 -1
- package/internal/NativeTimeInput/index.js +0 -2
- package/internal/NativeTimeInput/index.js.map +0 -1
- package/internal/TimeInput/TimeFragments.d.ts +0 -15
- package/internal/TimeInput/TimeFragments.js +0 -72
- package/internal/TimeInput/TimeFragments.js.map +0 -1
- package/internal/TimeInput/TimeFragments.styles.d.ts +0 -12
- package/internal/TimeInput/TimeFragments.styles.js +0 -43
- package/internal/TimeInput/TimeFragments.styles.js.map +0 -1
- package/internal/TimeInput/TimeInput.d.ts +0 -22
- package/internal/TimeInput/TimeInput.js +0 -103
- package/internal/TimeInput/TimeInput.js.map +0 -1
- package/internal/TimeInput/TimeInput.styles.js +0 -21
- package/internal/TimeInput/TimeInput.styles.js.map +0 -1
- package/internal/TimeInput/index.d.ts +0 -1
- package/internal/TimeInput/index.js +0 -2
- package/internal/TimeInput/index.js.map +0 -1
- package/internal/icons2022/TimeClockIcon/TimeClockIcon16Light.d.ts +0 -2
- package/internal/icons2022/TimeClockIcon/TimeClockIcon16Light.js +0 -20
- package/internal/icons2022/TimeClockIcon/TimeClockIcon16Light.js.map +0 -1
- package/internal/icons2022/TimeClockIcon/TimeClockIcon20Light.d.ts +0 -2
- package/internal/icons2022/TimeClockIcon/TimeClockIcon20Light.js +0 -20
- package/internal/icons2022/TimeClockIcon/TimeClockIcon20Light.js.map +0 -1
- package/internal/icons2022/TimeClockIcon/TimeClockIcon24Regular.d.ts +0 -2
- package/internal/icons2022/TimeClockIcon/TimeClockIcon24Regular.js +0 -20
- package/internal/icons2022/TimeClockIcon/TimeClockIcon24Regular.js.map +0 -1
- /package/components/{TimePicker/locale → MaskedInputV2/internal}/types.js +0 -0
|
@@ -0,0 +1,246 @@
|
|
|
1
|
+
var __extends = (this && this.__extends) || (function () {
|
|
2
|
+
var extendStatics = function (d, b) {
|
|
3
|
+
extendStatics = Object.setPrototypeOf ||
|
|
4
|
+
({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
|
|
5
|
+
function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
|
|
6
|
+
return extendStatics(d, b);
|
|
7
|
+
};
|
|
8
|
+
return function (d, b) {
|
|
9
|
+
if (typeof b !== "function" && b !== null)
|
|
10
|
+
throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
|
|
11
|
+
extendStatics(d, b);
|
|
12
|
+
function __() { this.constructor = d; }
|
|
13
|
+
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
|
|
14
|
+
};
|
|
15
|
+
})();
|
|
16
|
+
var __assign = (this && this.__assign) || function () {
|
|
17
|
+
__assign = Object.assign || function(t) {
|
|
18
|
+
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
19
|
+
s = arguments[i];
|
|
20
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
|
21
|
+
t[p] = s[p];
|
|
22
|
+
}
|
|
23
|
+
return t;
|
|
24
|
+
};
|
|
25
|
+
return __assign.apply(this, arguments);
|
|
26
|
+
};
|
|
27
|
+
var __rest = (this && this.__rest) || function (s, e) {
|
|
28
|
+
var t = {};
|
|
29
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
|
|
30
|
+
t[p] = s[p];
|
|
31
|
+
if (s != null && typeof Object.getOwnPropertySymbols === "function")
|
|
32
|
+
for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
|
|
33
|
+
if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
|
|
34
|
+
t[p[i]] = s[p[i]];
|
|
35
|
+
}
|
|
36
|
+
return t;
|
|
37
|
+
};
|
|
38
|
+
import React from 'react';
|
|
39
|
+
import { IMask } from './imask/core/holder.js';
|
|
40
|
+
var MASK_PROPS_NAMES = [
|
|
41
|
+
// common
|
|
42
|
+
'mask',
|
|
43
|
+
'unmask',
|
|
44
|
+
'prepare',
|
|
45
|
+
'prepareChar',
|
|
46
|
+
'validate',
|
|
47
|
+
'commit',
|
|
48
|
+
'overwrite',
|
|
49
|
+
'eager',
|
|
50
|
+
'skipInvalid',
|
|
51
|
+
'autofix',
|
|
52
|
+
// events
|
|
53
|
+
'onAccept',
|
|
54
|
+
'onComplete',
|
|
55
|
+
// pattern
|
|
56
|
+
'placeholderChar',
|
|
57
|
+
'displayChar',
|
|
58
|
+
'lazy',
|
|
59
|
+
'definitions',
|
|
60
|
+
'blocks',
|
|
61
|
+
// ref
|
|
62
|
+
'inputRef',
|
|
63
|
+
];
|
|
64
|
+
var NON_MASK_OPTIONS_NAMES = ['value', 'unmask', 'onAccept', 'onComplete', 'inputRef'];
|
|
65
|
+
var MASK_OPTIONS_NAMES = MASK_PROPS_NAMES.filter(function (pName) { return NON_MASK_OPTIONS_NAMES.indexOf(pName) < 0; });
|
|
66
|
+
export function IMaskMixin(ComposedComponent) {
|
|
67
|
+
var MaskedComponent = /** @class */ (function (_super) {
|
|
68
|
+
__extends(class_1, _super);
|
|
69
|
+
function class_1(props) {
|
|
70
|
+
var _this = _super.call(this, props) || this;
|
|
71
|
+
_this._inputRef = _this._inputRef.bind(_this);
|
|
72
|
+
_this.prevMaskProp = props.mask;
|
|
73
|
+
_this.prevUnmaskProp = props.unmask;
|
|
74
|
+
return _this;
|
|
75
|
+
}
|
|
76
|
+
class_1.prototype.componentDidMount = function () {
|
|
77
|
+
if (!this.props.mask) {
|
|
78
|
+
return;
|
|
79
|
+
}
|
|
80
|
+
this.initMask();
|
|
81
|
+
};
|
|
82
|
+
class_1.prototype.componentDidUpdate = function () {
|
|
83
|
+
var _a, _b, _c, _d;
|
|
84
|
+
var props = this.props;
|
|
85
|
+
var maskOptions = this._extractMaskOptionsFromProps(props);
|
|
86
|
+
if (maskOptions.mask) {
|
|
87
|
+
if (this.maskRef) {
|
|
88
|
+
var maskPropChanged = this.prevMaskProp !== props.mask || this.prevUnmaskProp !== props.unmask;
|
|
89
|
+
var elementAsUnknown = this.element;
|
|
90
|
+
var isNativeInputField = elementAsUnknown instanceof HTMLInputElement || elementAsUnknown instanceof HTMLTextAreaElement;
|
|
91
|
+
var shouldKeepSelection = maskPropChanged && isNativeInputField && document.activeElement === this.element;
|
|
92
|
+
var prevSelection_1 = shouldKeepSelection
|
|
93
|
+
? {
|
|
94
|
+
start: (_a = this.element.selectionStart) !== null && _a !== void 0 ? _a : 0,
|
|
95
|
+
end: (_b = this.element.selectionEnd) !== null && _b !== void 0 ? _b : 0,
|
|
96
|
+
direction: (_c = this.element.selectionDirection) !== null && _c !== void 0 ? _c : 'none',
|
|
97
|
+
}
|
|
98
|
+
: null;
|
|
99
|
+
this.maskRef.updateOptions(maskOptions);
|
|
100
|
+
if ('value' in props && props.value !== undefined) {
|
|
101
|
+
var nextValue = props.value;
|
|
102
|
+
if (this.maskValue !== nextValue) {
|
|
103
|
+
this.maskValue = nextValue;
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
if (prevSelection_1 && isNativeInputField) {
|
|
107
|
+
var inputElement_1 = this.element;
|
|
108
|
+
var restoreSelection = function () {
|
|
109
|
+
if (!inputElement_1.isConnected) {
|
|
110
|
+
return;
|
|
111
|
+
}
|
|
112
|
+
var valueLength = inputElement_1.value.length;
|
|
113
|
+
var nextStart = Math.min(prevSelection_1.start, valueLength);
|
|
114
|
+
var nextEnd = Math.min(prevSelection_1.end, valueLength);
|
|
115
|
+
inputElement_1.setSelectionRange(nextStart, nextEnd, prevSelection_1.direction);
|
|
116
|
+
};
|
|
117
|
+
restoreSelection();
|
|
118
|
+
setTimeout(restoreSelection, 0);
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
else {
|
|
122
|
+
this.initMask(maskOptions);
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
else {
|
|
126
|
+
this.destroyMask();
|
|
127
|
+
if ('value' in props && props.value !== undefined) {
|
|
128
|
+
if (((_d = this.element) === null || _d === void 0 ? void 0 : _d.isContentEditable) &&
|
|
129
|
+
this.element.tagName !== 'INPUT' &&
|
|
130
|
+
this.element.tagName !== 'TEXTAREA') {
|
|
131
|
+
this.element.textContent = props.value;
|
|
132
|
+
}
|
|
133
|
+
else {
|
|
134
|
+
this.element.value = props.value;
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
}
|
|
138
|
+
// Keep prev props in sync for next update
|
|
139
|
+
this.prevMaskProp = this.props.mask;
|
|
140
|
+
this.prevUnmaskProp = this.props.unmask;
|
|
141
|
+
};
|
|
142
|
+
class_1.prototype.componentWillUnmount = function () {
|
|
143
|
+
this.destroyMask();
|
|
144
|
+
};
|
|
145
|
+
class_1.prototype._inputRef = function (el) {
|
|
146
|
+
this.element = el;
|
|
147
|
+
if (this.props.inputRef) {
|
|
148
|
+
if (Object.prototype.hasOwnProperty.call(this.props.inputRef, 'current')) {
|
|
149
|
+
this.props.inputRef.current = el;
|
|
150
|
+
}
|
|
151
|
+
else {
|
|
152
|
+
this.props.inputRef(el);
|
|
153
|
+
}
|
|
154
|
+
}
|
|
155
|
+
};
|
|
156
|
+
class_1.prototype.initMask = function (maskOptions) {
|
|
157
|
+
if (maskOptions === void 0) { maskOptions = this._extractMaskOptionsFromProps(this.props); }
|
|
158
|
+
// eslint-disable-next-line new-cap
|
|
159
|
+
this.maskRef = IMask(this.element, maskOptions)
|
|
160
|
+
.on('accept', this._onAccept.bind(this))
|
|
161
|
+
.on('complete', this._onComplete.bind(this));
|
|
162
|
+
if ('value' in this.props && this.props.value !== undefined) {
|
|
163
|
+
this.maskValue = this.props.value;
|
|
164
|
+
}
|
|
165
|
+
};
|
|
166
|
+
class_1.prototype.destroyMask = function () {
|
|
167
|
+
if (this.maskRef) {
|
|
168
|
+
this.maskRef.destroy();
|
|
169
|
+
delete this.maskRef;
|
|
170
|
+
}
|
|
171
|
+
};
|
|
172
|
+
class_1.prototype._extractMaskOptionsFromProps = function (props) {
|
|
173
|
+
var cloneProps = __rest(props, []);
|
|
174
|
+
// keep only mask options
|
|
175
|
+
Object.keys(cloneProps)
|
|
176
|
+
.filter(function (prop) { return MASK_OPTIONS_NAMES.indexOf(prop) < 0; })
|
|
177
|
+
.forEach(function (nonMaskProp) {
|
|
178
|
+
delete cloneProps[nonMaskProp];
|
|
179
|
+
});
|
|
180
|
+
return cloneProps;
|
|
181
|
+
};
|
|
182
|
+
class_1.prototype._extractNonMaskProps = function (props) {
|
|
183
|
+
var cloneProps = __rest(props, []);
|
|
184
|
+
MASK_PROPS_NAMES.forEach(function (maskProp) {
|
|
185
|
+
delete cloneProps[maskProp];
|
|
186
|
+
});
|
|
187
|
+
if (!('defaultValue' in cloneProps)) {
|
|
188
|
+
cloneProps.defaultValue = props.mask ? '' : cloneProps.value;
|
|
189
|
+
}
|
|
190
|
+
delete cloneProps.value;
|
|
191
|
+
return cloneProps;
|
|
192
|
+
};
|
|
193
|
+
Object.defineProperty(class_1.prototype, "maskValue", {
|
|
194
|
+
get: function () {
|
|
195
|
+
if (!this.maskRef) {
|
|
196
|
+
return '';
|
|
197
|
+
}
|
|
198
|
+
if (this.props.unmask === 'typed') {
|
|
199
|
+
return this.maskRef.typedValue;
|
|
200
|
+
}
|
|
201
|
+
if (this.props.unmask) {
|
|
202
|
+
return this.maskRef.unmaskedValue;
|
|
203
|
+
}
|
|
204
|
+
return this.maskRef.value;
|
|
205
|
+
},
|
|
206
|
+
set: function (value) {
|
|
207
|
+
if (!this.maskRef) {
|
|
208
|
+
return;
|
|
209
|
+
}
|
|
210
|
+
// eslint-disable-next-line no-param-reassign, eqeqeq
|
|
211
|
+
value = (value == null && this.props.unmask !== 'typed' ? '' : value);
|
|
212
|
+
if (this.props.unmask === 'typed') {
|
|
213
|
+
this.maskRef.typedValue = value;
|
|
214
|
+
}
|
|
215
|
+
else if (this.props.unmask) {
|
|
216
|
+
this.maskRef.unmaskedValue = value;
|
|
217
|
+
}
|
|
218
|
+
else {
|
|
219
|
+
this.maskRef.value = value;
|
|
220
|
+
}
|
|
221
|
+
},
|
|
222
|
+
enumerable: false,
|
|
223
|
+
configurable: true
|
|
224
|
+
});
|
|
225
|
+
class_1.prototype._onAccept = function (e) {
|
|
226
|
+
if (this.props.onAccept && this.maskRef) {
|
|
227
|
+
this.props.onAccept(this.maskValue, this.maskRef, e);
|
|
228
|
+
}
|
|
229
|
+
};
|
|
230
|
+
class_1.prototype._onComplete = function (e) {
|
|
231
|
+
if (this.props.onComplete && this.maskRef) {
|
|
232
|
+
this.props.onComplete(this.maskValue, this.maskRef, e);
|
|
233
|
+
}
|
|
234
|
+
};
|
|
235
|
+
class_1.prototype.render = function () {
|
|
236
|
+
return React.createElement(ComposedComponent, __assign(__assign({}, this._extractNonMaskProps(this.props)), { inputRef: this._inputRef }));
|
|
237
|
+
};
|
|
238
|
+
return class_1;
|
|
239
|
+
}(React.Component));
|
|
240
|
+
var nestedComponentName = ComposedComponent.displayName || ComposedComponent.name || 'Component';
|
|
241
|
+
MaskedComponent.displayName = "IMask(".concat(nestedComponentName, ")");
|
|
242
|
+
return React.forwardRef(function (props, ref) {
|
|
243
|
+
return React.createElement(MaskedComponent, __assign(__assign({}, props), { ref: ref }));
|
|
244
|
+
});
|
|
245
|
+
}
|
|
246
|
+
//# sourceMappingURL=mixin.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mixin.js","sourceRoot":"","sources":["mixin.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAE,KAAK,EAAE,MAAM,wBAAwB,CAAC;AA2C/C,IAAM,gBAAgB,GAAG;IACvB,SAAS;IACT,MAAM;IACN,QAAQ;IACR,SAAS;IACT,aAAa;IACb,UAAU;IACV,QAAQ;IACR,WAAW;IACX,OAAO;IACP,aAAa;IACb,SAAS;IAET,SAAS;IACT,UAAU;IACV,YAAY;IAEZ,UAAU;IACV,iBAAiB;IACjB,aAAa;IACb,MAAM;IACN,aAAa;IACb,QAAQ;IAER,MAAM;IACN,UAAU;CACF,CAAC;AACX,IAAM,sBAAsB,GAAG,CAAC,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,YAAY,EAAE,UAAU,CAAU,CAAC;AAoBlG,IAAM,kBAAkB,GAAG,gBAAgB,CAAC,MAAM,CAChD,UAAC,KAAK,IAAK,OAAA,sBAAsB,CAAC,OAAO,CAAC,KAAgD,CAAC,GAAG,CAAC,EAApF,CAAoF,CAC7E,CAAC;AAarB,MAAM,UAAU,UAAU,CACxB,iBAA0D;IAE1D,IAAM,eAAe;QAAiB,2BAAsB;QAQ1D,iBAAY,KAAY;YACtB,YAAA,MAAK,YAAC,KAAK,CAAC,SAAC;YACb,KAAI,CAAC,SAAS,GAAG,KAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAI,CAAC,CAAC;YAC3C,KAAI,CAAC,YAAY,GAAG,KAAK,CAAC,IAAI,CAAC;YAC/B,KAAI,CAAC,cAAc,GAAG,KAAK,CAAC,MAAM,CAAC;;QACrC,CAAC;QAED,mCAAiB,GAAjB;YACE,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;gBACrB,OAAO;YACT,CAAC;YAED,IAAI,CAAC,QAAQ,EAAE,CAAC;QAClB,CAAC;QAED,oCAAkB,GAAlB;;YACE,IAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;YACzB,IAAM,WAAW,GAAG,IAAI,CAAC,4BAA4B,CAAC,KAAK,CAAC,CAAC;YAC7D,IAAI,WAAW,CAAC,IAAI,EAAE,CAAC;gBACrB,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;oBACjB,IAAM,eAAe,GAAG,IAAI,CAAC,YAAY,KAAK,KAAK,CAAC,IAAI,IAAI,IAAI,CAAC,cAAc,KAAK,KAAK,CAAC,MAAM,CAAC;oBACjG,IAAM,gBAAgB,GAAG,IAAI,CAAC,OAAkB,CAAC;oBACjD,IAAM,kBAAkB,GACtB,gBAAgB,YAAY,gBAAgB,IAAI,gBAAgB,YAAY,mBAAmB,CAAC;oBAClG,IAAM,mBAAmB,GAAG,eAAe,IAAI,kBAAkB,IAAI,QAAQ,CAAC,aAAa,KAAK,IAAI,CAAC,OAAO,CAAC;oBAC7G,IAAM,eAAa,GAAG,mBAAmB;wBACvC,CAAC,CAAC;4BACE,KAAK,EAAE,MAAC,IAAI,CAAC,OAAkD,CAAC,cAAc,mCAAI,CAAC;4BACnF,GAAG,EAAE,MAAC,IAAI,CAAC,OAAkD,CAAC,YAAY,mCAAI,CAAC;4BAC/E,SAAS,EAAE,MAAC,IAAI,CAAC,OAAkD,CAAC,kBAAkB,mCAAI,MAAM;yBACjG;wBACH,CAAC,CAAC,IAAI,CAAC;oBAET,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,WAAyE,CAAC,CAAC;oBACtG,IAAI,OAAO,IAAI,KAAK,IAAI,KAAK,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;wBAClD,IAAM,SAAS,GAAG,KAAK,CAAC,KAA8D,CAAC;wBACvF,IAAI,IAAI,CAAC,SAAS,KAAK,SAAS,EAAE,CAAC;4BACjC,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;wBAC7B,CAAC;oBACH,CAAC;oBAED,IAAI,eAAa,IAAI,kBAAkB,EAAE,CAAC;wBACxC,IAAM,cAAY,GAAG,IAAI,CAAC,OAAiD,CAAC;wBAC5E,IAAM,gBAAgB,GAAG;4BACvB,IAAI,CAAC,cAAY,CAAC,WAAW,EAAE,CAAC;gCAC9B,OAAO;4BACT,CAAC;4BACD,IAAM,WAAW,GAAG,cAAY,CAAC,KAAK,CAAC,MAAM,CAAC;4BAC9C,IAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,eAAa,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC;4BAC7D,IAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,eAAa,CAAC,GAAG,EAAE,WAAW,CAAC,CAAC;4BACzD,cAAY,CAAC,iBAAiB,CAAC,SAAS,EAAE,OAAO,EAAE,eAAa,CAAC,SAAS,CAAC,CAAC;wBAC9E,CAAC,CAAC;wBACF,gBAAgB,EAAE,CAAC;wBACnB,UAAU,CAAC,gBAAgB,EAAE,CAAC,CAAC,CAAC;oBAClC,CAAC;gBACH,CAAC;qBAAM,CAAC;oBACN,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;gBAC7B,CAAC;YACH,CAAC;iBAAM,CAAC;gBACN,IAAI,CAAC,WAAW,EAAE,CAAC;gBACnB,IAAI,OAAO,IAAI,KAAK,IAAI,KAAK,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;oBAClD,IACE,CAAA,MAAC,IAAI,CAAC,OAAuB,0CAAE,iBAAiB;wBAC/C,IAAI,CAAC,OAAuB,CAAC,OAAO,KAAK,OAAO;wBAChD,IAAI,CAAC,OAAuB,CAAC,OAAO,KAAK,UAAU,EACpD,CAAC;wBACA,IAAI,CAAC,OAAuB,CAAC,WAAW,GAAG,KAAK,CAAC,KAAK,CAAC;oBAC1D,CAAC;yBAAM,CAAC;wBACL,IAAI,CAAC,OAA4B,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC;oBACzD,CAAC;gBACH,CAAC;YACH,CAAC;YAED,0CAA0C;YAC1C,IAAI,CAAC,YAAY,GAAI,IAAI,CAAC,KAAe,CAAC,IAAI,CAAC;YAC/C,IAAI,CAAC,cAAc,GAAI,IAAI,CAAC,KAAe,CAAC,MAAM,CAAC;QACrD,CAAC;QAED,sCAAoB,GAApB;YACE,IAAI,CAAC,WAAW,EAAE,CAAC;QACrB,CAAC;QAED,2BAAS,GAAT,UAAU,EAAe;YACvB,IAAI,CAAC,OAAO,GAAG,EAAE,CAAC;YAClB,IAAI,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC;gBACxB,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,SAAS,CAAC,EAAE,CAAC;oBACxE,IAAI,CAAC,KAAK,CAAC,QAAgD,CAAC,OAAO,GAAG,EAAE,CAAC;gBAC5E,CAAC;qBAAM,CAAC;oBACL,IAAI,CAAC,KAAK,CAAC,QAA2C,CAAC,EAAE,CAAC,CAAC;gBAC9D,CAAC;YACH,CAAC;QACH,CAAC;QAED,0BAAQ,GAAR,UAAS,WAAgG;YAAhG,4BAAA,EAAA,cAAmD,IAAI,CAAC,4BAA4B,CAAC,IAAI,CAAC,KAAK,CAAC;YACvG,mCAAmC;YACnC,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,WAAW,CAAC;iBAC5C,EAAE,CAAC,QAAQ,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;iBACvC,EAAE,CAAC,UAAU,EAAE,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;YAE/C,IAAI,OAAO,IAAI,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;gBAC5D,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC;YACpC,CAAC;QACH,CAAC;QAED,6BAAW,GAAX;YACE,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;gBACjB,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;gBACvB,OAAO,IAAI,CAAC,OAAO,CAAC;YACtB,CAAC;QACH,CAAC;QAED,8CAA4B,GAA5B,UAA6B,KAAsB;YACjD,IAAW,UAAU,UAAsB,KAAK,EAA1C,EAAiB,CAAyB,CAAC;YAEjD,yBAAyB;YACxB,MAAM,CAAC,IAAI,CAAC,UAAU,CAAwB;iBAC5C,MAAM,CAAC,UAAC,IAAI,IAAK,OAAA,kBAAkB,CAAC,OAAO,CAAC,IAAqB,CAAC,GAAG,CAAC,EAArD,CAAqD,CAAC;iBACvE,OAAO,CAAC,UAAC,WAAW;gBACnB,OAAO,UAAU,CAAC,WAAW,CAAC,CAAC;YACjC,CAAC,CAAC,CAAC;YAEL,OAAO,UAAiD,CAAC;QAC3D,CAAC;QAED,sCAAoB,GAApB,UAAqB,KAAsB;YACzC,IAAW,UAAU,UAAK,KAAc,EAAlC,EAAiB,CAAiB,CAAC;YAExC,gBAAkD,CAAC,OAAO,CAAC,UAAC,QAAQ;gBACnE,OAAO,UAAU,CAAC,QAAQ,CAAC,CAAC;YAC9B,CAAC,CAAC,CAAC;YACH,IAAI,CAAC,CAAC,cAAc,IAAI,UAAU,CAAC,EAAE,CAAC;gBACpC,UAAU,CAAC,YAAY,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC;YAC/D,CAAC;YACD,OAAO,UAAU,CAAC,KAAK,CAAC;YAExB,OAAO,UAA8C,CAAC;QACxD,CAAC;QAED,sBAAI,8BAAS;iBAAb;gBACE,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;oBAClB,OAAO,EAA2D,CAAC;gBACrE,CAAC;gBAED,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,KAAK,OAAO,EAAE,CAAC;oBAClC,OAAO,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC;gBACjC,CAAC;gBACD,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;oBACtB,OAAO,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC;gBACpC,CAAC;gBACD,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC;YAC5B,CAAC;iBAED,UAAc,KAA4D;gBACxE,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;oBAClB,OAAO;gBACT,CAAC;gBAED,qDAAqD;gBACrD,KAAK,GAAG,CAAC,KAAK,IAAI,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,KAAK,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAEnE,CAAC;gBACF,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,KAAK,OAAO,EAAE,CAAC;oBAClC,IAAI,CAAC,OAAO,CAAC,UAAU,GAAG,KAAK,CAAC;gBAClC,CAAC;qBAAM,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;oBAC7B,IAAI,CAAC,OAAO,CAAC,aAAa,GAAG,KAAK,CAAC;gBACrC,CAAC;qBAAM,CAAC;oBACN,IAAI,CAAC,OAAO,CAAC,KAAK,GAAG,KAAK,CAAC;gBAC7B,CAAC;YACH,CAAC;;;WAlBA;QAoBD,2BAAS,GAAT,UAAU,CAAc;YACtB,IAAI,IAAI,CAAC,KAAK,CAAC,QAAQ,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;gBACxC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;YACvD,CAAC;QACH,CAAC;QAED,6BAAW,GAAX,UAAY,CAAc;YACxB,IAAI,IAAI,CAAC,KAAK,CAAC,UAAU,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;gBAC1C,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;YACzD,CAAC;QACH,CAAC;QAED,wBAAM,GAAN;YACE,OAAO,KAAK,CAAC,aAAa,CAAC,iBAAiB,wBACvC,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,KAAK,CAAC,KACxC,QAAQ,EAAE,IAAI,CAAC,SAAS,IACxB,CAAC;QACL,CAAC;QACH,cAAC;IAAD,CAAC,AApMuB,CAAc,KAAK,CAAC,SAAS,EAoMpD,CAAC;IAEF,IAAM,mBAAmB,GAAG,iBAAiB,CAAC,WAAW,IAAI,iBAAiB,CAAC,IAAI,IAAI,WAAW,CAAC;IACnG,eAAe,CAAC,WAAW,GAAG,gBAAS,mBAAmB,MAAG,CAAC;IAE9D,OAAO,KAAK,CAAC,UAAU,CAA8C,UAAC,KAAK,EAAE,GAAG;QAC9E,OAAA,KAAK,CAAC,aAAa,CAAC,eAAe,wBAAQ,KAAe,KAAE,GAAG,KAAA,IAAG;IAAlE,CAAkE,CAC1B,CAAC;AAC7C,CAAC","sourcesContent":["import React from 'react';\n\nimport { IMask } from './imask/core/holder.js';\nimport { type InputMask, type InputMaskElement, type FactoryOpts, type UpdateOpts } from './imask/index.js';\nimport { type MaskedPatternOptions } from './imask/masked/pattern.js';\n\ntype AnyProps = Record<string, unknown>;\n\nexport type Falsy = false | 0 | '' | null | undefined;\n\n// Плоский (не union) тип для публичного API — устраняет union-распределение в JSX.\n// Опирается только на MaskedPatternOptions, т.к. проект использует исключительно строковые маски.\nexport type ReactMaskOpts = MaskedPatternOptions & { unmask?: 'typed' | boolean };\n\nexport type UnmaskValue<Opts extends ReactMaskOpts> = Opts['unmask'] extends 'typed'\n ? InputMask<Opts>['typedValue']\n : Opts['unmask'] extends Falsy\n ? InputMask<Opts>['value']\n : InputMask<Opts>['unmaskedValue'];\n\nexport type ExtractReactMaskOpts<\n MaskElement extends InputMaskElement,\n Props extends IMaskInputProps<MaskElement>,\n> = Extract<Props, ReactMaskOpts>;\n\nexport interface ReactMaskProps<\n MaskElement extends InputMaskElement,\n Props extends IMaskInputProps<MaskElement> = AnyProps,\n> {\n onAccept?: (\n value: UnmaskValue<ExtractReactMaskOpts<MaskElement, Props>>,\n maskRef: InputMask<ExtractMaskOpts<MaskElement, Props>>,\n e?: InputEvent,\n ) => void;\n onComplete?: (\n value: UnmaskValue<ExtractReactMaskOpts<MaskElement, Props>>,\n maskRef: InputMask<ExtractMaskOpts<MaskElement, Props>>,\n e?: InputEvent,\n ) => void;\n unmask?: ExtractReactMaskOpts<MaskElement, Props>['unmask'];\n value?: UnmaskValue<ExtractReactMaskOpts<MaskElement, Props>>;\n inputRef?: React.Ref<MaskElement>;\n ref?: React.Ref<React.ComponentType<Props>>;\n}\n\nconst MASK_PROPS_NAMES = [\n // common\n 'mask',\n 'unmask',\n 'prepare',\n 'prepareChar',\n 'validate',\n 'commit',\n 'overwrite',\n 'eager',\n 'skipInvalid',\n 'autofix',\n\n // events\n 'onAccept',\n 'onComplete',\n\n // pattern\n 'placeholderChar',\n 'displayChar',\n 'lazy',\n 'definitions',\n 'blocks',\n\n // ref\n 'inputRef',\n] as const;\nconst NON_MASK_OPTIONS_NAMES = ['value', 'unmask', 'onAccept', 'onComplete', 'inputRef'] as const;\n\nexport type ReactElementProps<MaskElement extends InputMaskElement> = Omit<\n React.HTMLProps<MaskElement>,\n (typeof MASK_PROPS_NAMES)[number] | 'value' | (typeof NON_MASK_OPTIONS_NAMES)[number] | 'ref'\n>;\n\ntype NonMaskProps<MaskElement extends InputMaskElement, Props extends IMaskMixinProps<MaskElement> = AnyProps> = Omit<\n Props,\n keyof FactoryOpts\n>;\n\nexport type ReactMixinComponent<\n MaskElement extends InputMaskElement,\n Props extends IMaskMixinProps<MaskElement> = AnyProps,\n> = React.ComponentType<\n ReactElementProps<MaskElement> & { inputRef: React.Ref<MaskElement> } & NonMaskProps<MaskElement, Props>\n>;\n\nexport type MaskPropsKeys = Exclude<(typeof MASK_PROPS_NAMES)[number], (typeof NON_MASK_OPTIONS_NAMES)[number]>;\nconst MASK_OPTIONS_NAMES = MASK_PROPS_NAMES.filter(\n (pName) => NON_MASK_OPTIONS_NAMES.indexOf(pName as (typeof NON_MASK_OPTIONS_NAMES)[number]) < 0,\n) as MaskPropsKeys[];\n\nexport type ExtractMaskOpts<MaskElement extends InputMaskElement, Props extends IMaskInputProps<MaskElement>> = Extract<\n Props,\n FactoryOpts\n>;\n\nexport type IMaskMixinProps<MaskElement extends InputMaskElement> = Omit<ReactMaskProps<MaskElement>, 'ref'> &\n MaskedPatternOptions;\n\nexport type IMaskInputProps<MaskElement extends InputMaskElement> = ReactElementProps<MaskElement> &\n IMaskMixinProps<MaskElement>;\n\nexport function IMaskMixin<MaskElement extends InputMaskElement, Props extends IMaskInputProps<MaskElement> = AnyProps>(\n ComposedComponent: ReactMixinComponent<MaskElement, Props>,\n): React.ComponentType<Props> {\n const MaskedComponent = class extends React.Component<Props> {\n static displayName: string;\n\n element!: MaskElement;\n maskRef?: InputMask<ExtractMaskOpts<MaskElement, Props>>;\n private prevMaskProp?: unknown;\n private prevUnmaskProp?: unknown;\n\n constructor(props: Props) {\n super(props);\n this._inputRef = this._inputRef.bind(this);\n this.prevMaskProp = props.mask;\n this.prevUnmaskProp = props.unmask;\n }\n\n componentDidMount() {\n if (!this.props.mask) {\n return;\n }\n\n this.initMask();\n }\n\n componentDidUpdate() {\n const props = this.props;\n const maskOptions = this._extractMaskOptionsFromProps(props);\n if (maskOptions.mask) {\n if (this.maskRef) {\n const maskPropChanged = this.prevMaskProp !== props.mask || this.prevUnmaskProp !== props.unmask;\n const elementAsUnknown = this.element as unknown;\n const isNativeInputField =\n elementAsUnknown instanceof HTMLInputElement || elementAsUnknown instanceof HTMLTextAreaElement;\n const shouldKeepSelection = maskPropChanged && isNativeInputField && document.activeElement === this.element;\n const prevSelection = shouldKeepSelection\n ? {\n start: (this.element as HTMLInputElement | HTMLTextAreaElement).selectionStart ?? 0,\n end: (this.element as HTMLInputElement | HTMLTextAreaElement).selectionEnd ?? 0,\n direction: (this.element as HTMLInputElement | HTMLTextAreaElement).selectionDirection ?? 'none',\n }\n : null;\n\n this.maskRef.updateOptions(maskOptions as unknown as UpdateOpts<ExtractMaskOpts<MaskElement, Props>>);\n if ('value' in props && props.value !== undefined) {\n const nextValue = props.value as UnmaskValue<ExtractReactMaskOpts<MaskElement, Props>>;\n if (this.maskValue !== nextValue) {\n this.maskValue = nextValue;\n }\n }\n\n if (prevSelection && isNativeInputField) {\n const inputElement = this.element as HTMLInputElement | HTMLTextAreaElement;\n const restoreSelection = () => {\n if (!inputElement.isConnected) {\n return;\n }\n const valueLength = inputElement.value.length;\n const nextStart = Math.min(prevSelection.start, valueLength);\n const nextEnd = Math.min(prevSelection.end, valueLength);\n inputElement.setSelectionRange(nextStart, nextEnd, prevSelection.direction);\n };\n restoreSelection();\n setTimeout(restoreSelection, 0);\n }\n } else {\n this.initMask(maskOptions);\n }\n } else {\n this.destroyMask();\n if ('value' in props && props.value !== undefined) {\n if (\n (this.element as HTMLElement)?.isContentEditable &&\n (this.element as HTMLElement).tagName !== 'INPUT' &&\n (this.element as HTMLElement).tagName !== 'TEXTAREA'\n ) {\n (this.element as HTMLElement).textContent = props.value;\n } else {\n (this.element as HTMLInputElement).value = props.value;\n }\n }\n }\n\n // Keep prev props in sync for next update\n this.prevMaskProp = (this.props as Props).mask;\n this.prevUnmaskProp = (this.props as Props).unmask;\n }\n\n componentWillUnmount() {\n this.destroyMask();\n }\n\n _inputRef(el: MaskElement) {\n this.element = el;\n if (this.props.inputRef) {\n if (Object.prototype.hasOwnProperty.call(this.props.inputRef, 'current')) {\n (this.props.inputRef as React.MutableRefObject<MaskElement>).current = el;\n } else {\n (this.props.inputRef as React.RefCallback<MaskElement>)(el);\n }\n }\n }\n\n initMask(maskOptions: ExtractMaskOpts<MaskElement, Props> = this._extractMaskOptionsFromProps(this.props)) {\n // eslint-disable-next-line new-cap\n this.maskRef = IMask(this.element, maskOptions)\n .on('accept', this._onAccept.bind(this))\n .on('complete', this._onComplete.bind(this));\n\n if ('value' in this.props && this.props.value !== undefined) {\n this.maskValue = this.props.value;\n }\n }\n\n destroyMask() {\n if (this.maskRef) {\n this.maskRef.destroy();\n delete this.maskRef;\n }\n }\n\n _extractMaskOptionsFromProps(props: Readonly<Props>): ExtractMaskOpts<MaskElement, Props> {\n const { ...cloneProps }: Readonly<Props> = props;\n\n // keep only mask options\n (Object.keys(cloneProps) as Array<keyof Props>)\n .filter((prop) => MASK_OPTIONS_NAMES.indexOf(prop as MaskPropsKeys) < 0)\n .forEach((nonMaskProp) => {\n delete cloneProps[nonMaskProp];\n });\n\n return cloneProps as ExtractMaskOpts<MaskElement, Props>;\n }\n\n _extractNonMaskProps(props: Readonly<Props>): NonMaskProps<MaskElement, Props> {\n const { ...cloneProps } = props as Props;\n\n (MASK_PROPS_NAMES as unknown as Array<keyof Props>).forEach((maskProp) => {\n delete cloneProps[maskProp];\n });\n if (!('defaultValue' in cloneProps)) {\n cloneProps.defaultValue = props.mask ? '' : cloneProps.value;\n }\n delete cloneProps.value;\n\n return cloneProps as NonMaskProps<MaskElement, Props>;\n }\n\n get maskValue(): UnmaskValue<ExtractReactMaskOpts<MaskElement, Props>> {\n if (!this.maskRef) {\n return '' as UnmaskValue<ExtractReactMaskOpts<MaskElement, Props>>;\n }\n\n if (this.props.unmask === 'typed') {\n return this.maskRef.typedValue;\n }\n if (this.props.unmask) {\n return this.maskRef.unmaskedValue;\n }\n return this.maskRef.value;\n }\n\n set maskValue(value: UnmaskValue<ExtractReactMaskOpts<MaskElement, Props>>) {\n if (!this.maskRef) {\n return;\n }\n\n // eslint-disable-next-line no-param-reassign, eqeqeq\n value = (value == null && this.props.unmask !== 'typed' ? '' : value) as UnmaskValue<\n ExtractReactMaskOpts<MaskElement, Props>\n >;\n if (this.props.unmask === 'typed') {\n this.maskRef.typedValue = value;\n } else if (this.props.unmask) {\n this.maskRef.unmaskedValue = value;\n } else {\n this.maskRef.value = value;\n }\n }\n\n _onAccept(e?: InputEvent) {\n if (this.props.onAccept && this.maskRef) {\n this.props.onAccept(this.maskValue, this.maskRef, e);\n }\n }\n\n _onComplete(e?: InputEvent) {\n if (this.props.onComplete && this.maskRef) {\n this.props.onComplete(this.maskValue, this.maskRef, e);\n }\n }\n\n render() {\n return React.createElement(ComposedComponent, {\n ...this._extractNonMaskProps(this.props),\n inputRef: this._inputRef,\n });\n }\n };\n\n const nestedComponentName = ComposedComponent.displayName || ComposedComponent.name || 'Component';\n MaskedComponent.displayName = `IMask(${nestedComponentName})`;\n\n return React.forwardRef<InstanceType<typeof MaskedComponent>, Props>((props, ref) =>\n React.createElement(MaskedComponent, { ...(props as Props), ref }),\n ) as unknown as React.ComponentType<Props>;\n}\n"]}
|
|
@@ -44,13 +44,15 @@ export interface TokenInputProps<T> extends CommonProps, Pick<AriaAttributes, 'a
|
|
|
44
44
|
/** Выравнивание выпадающего списка. */
|
|
45
45
|
menuAlign?: TokenInputMenuAlign;
|
|
46
46
|
/** Задаёт функцию поиска значений, которая должна возвращать Promise с массивом значений. По умолчанию ожидаются строки.
|
|
47
|
-
* Элементы могут быть любого типа. В этом случае необходимо определить свойства `renderItem`, `valueToString`. */
|
|
47
|
+
* Элементы могут быть любого типа. В этом случае необходимо определить свойства `renderItem`, `renderToken`, `valueToString` и `valueToItem`. */
|
|
48
48
|
getItems?: (query: string) => Promise<Array<TokenInputExtendedItem<T>>>;
|
|
49
49
|
/** Ограничивает отображение выпадающего списка при фокусе на пустом поле: выпадающий список появится, только когда будет введён хотя бы один символ токена. */
|
|
50
50
|
hideMenuIfEmptyInputValue?: boolean;
|
|
51
51
|
/** Отрисовывает элемент списка. */
|
|
52
52
|
renderItem?: (item: T, state: MenuItemState) => React.ReactNode | null;
|
|
53
|
-
/** Отрисовывает выбранное значение.
|
|
53
|
+
/** Отрисовывает выбранное значение.
|
|
54
|
+
* @deprecated Используйте `renderToken` для отрисовки выбранного значения и `valueToString` для преобразования значения в строку.
|
|
55
|
+
*/
|
|
54
56
|
renderValue?: (item: T) => React.ReactNode;
|
|
55
57
|
/** Возвращает строковое представление `value`. Необходимо при фокусировке.
|
|
56
58
|
* @default item => item */
|
|
@@ -63,7 +65,9 @@ export interface TokenInputProps<T> extends CommonProps, Pick<AriaAttributes, 'a
|
|
|
63
65
|
totalCount?: number;
|
|
64
66
|
/** Отрисовывает сообщение о пустом результате поиска. При `renderAddButton` не работает. */
|
|
65
67
|
renderNotFound?: () => React.ReactNode;
|
|
66
|
-
/**
|
|
68
|
+
/** Преобразовывает значение в элемент списка.
|
|
69
|
+
* @default value => value
|
|
70
|
+
*/
|
|
67
71
|
valueToItem?: (value: string) => T;
|
|
68
72
|
/** Сравнивает полученные результаты с `value`. */
|
|
69
73
|
itemToId?: (item: T) => string | number | undefined;
|
|
@@ -127,7 +127,6 @@ export var TokenInputDataTids = {
|
|
|
127
127
|
tokenInputMenu: 'TokenInputMenu__root',
|
|
128
128
|
label: 'TokenInput__label',
|
|
129
129
|
};
|
|
130
|
-
// eslint-disable-next-line @typescript-eslint/no-unnecessary-type-constraint
|
|
131
130
|
var identity = function (item) { return item; };
|
|
132
131
|
var defaultRenderToken = function (item, _a) {
|
|
133
132
|
var isActive = _a.isActive, onClick = _a.onClick, onDoubleClick = _a.onDoubleClick, onRemove = _a.onRemove, disabled = _a.disabled, size = _a.size;
|