@skbkontur/react-ui 6.1.4-ff219.0 → 6.2.0-beta.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/Autocomplete/Autocomplete.js +2 -3
- package/components/Autocomplete/Autocomplete.js.map +1 -1
- package/components/FxInput/FxInput.js +2 -2
- package/components/FxInput/FxInput.js.map +1 -1
- package/components/Group/Group.js +3 -2
- 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 +0 -2
- package/components/MaskedInput/MaskedInput.js +0 -6
- package/components/MaskedInput/MaskedInput.js.map +1 -1
- package/components/TimePicker/TimeClockIcon.d.ts +3 -0
- package/components/TimePicker/TimeClockIcon.js +11 -0
- package/components/TimePicker/TimeClockIcon.js.map +1 -0
- package/components/TimePicker/TimePicker.d.ts +79 -0
- package/components/TimePicker/TimePicker.js +513 -0
- package/components/TimePicker/TimePicker.js.map +1 -0
- package/components/TimePicker/TimePicker.styles.d.ts +11 -0
- package/components/TimePicker/TimePicker.styles.js +36 -0
- package/components/TimePicker/TimePicker.styles.js.map +1 -0
- package/components/TimePicker/TimePickerItems.d.ts +17 -0
- package/components/TimePicker/TimePickerItems.js +80 -0
- package/components/TimePicker/TimePickerItems.js.map +1 -0
- package/components/TimePicker/TimePickerMobilePopup.d.ts +38 -0
- package/components/TimePicker/TimePickerMobilePopup.js +21 -0
- package/components/TimePicker/TimePickerMobilePopup.js.map +1 -0
- package/components/TimePicker/TimePickerPopup.d.ts +20 -0
- package/components/TimePicker/TimePickerPopup.js +18 -0
- package/components/TimePicker/TimePickerPopup.js.map +1 -0
- package/components/TimePicker/helpers/TimePicker.constants.d.ts +22 -0
- package/components/TimePicker/helpers/TimePicker.constants.js +31 -0
- package/components/TimePicker/helpers/TimePicker.constants.js.map +1 -0
- package/components/TimePicker/helpers/TimePicker.editing.d.ts +23 -0
- package/components/TimePicker/helpers/TimePicker.editing.js +101 -0
- package/components/TimePicker/helpers/TimePicker.editing.js.map +1 -0
- package/components/TimePicker/helpers/TimePicker.layout.d.ts +6 -0
- package/components/TimePicker/helpers/TimePicker.layout.js +49 -0
- package/components/TimePicker/helpers/TimePicker.layout.js.map +1 -0
- package/components/TimePicker/helpers/TimePicker.selection.d.ts +5 -0
- package/components/TimePicker/helpers/TimePicker.selection.js +23 -0
- package/components/TimePicker/helpers/TimePicker.selection.js.map +1 -0
- package/components/TimePicker/helpers/TimePicker.shared.d.ts +47 -0
- package/components/TimePicker/helpers/TimePicker.shared.js +70 -0
- package/components/TimePicker/helpers/TimePicker.shared.js.map +1 -0
- package/components/TimePicker/helpers/TimePicker.value.d.ts +30 -0
- package/components/TimePicker/helpers/TimePicker.value.js +96 -0
- package/components/TimePicker/helpers/TimePicker.value.js.map +1 -0
- package/components/TimePicker/helpers/scrollSelectedItemIntoView.d.ts +4 -0
- package/components/TimePicker/helpers/scrollSelectedItemIntoView.js +24 -0
- package/components/TimePicker/helpers/scrollSelectedItemIntoView.js.map +1 -0
- package/components/TimePicker/helpers/validateTimePicker.d.ts +8 -0
- package/components/TimePicker/helpers/validateTimePicker.js +16 -0
- package/components/TimePicker/helpers/validateTimePicker.js.map +1 -0
- package/components/TimePicker/hooks/useTimePickerDropdown.d.ts +17 -0
- package/components/TimePicker/hooks/useTimePickerDropdown.js +62 -0
- package/components/TimePicker/hooks/useTimePickerDropdown.js.map +1 -0
- package/components/TimePicker/hooks/useTimePickerSelection.d.ts +18 -0
- package/components/TimePicker/hooks/useTimePickerSelection.js +66 -0
- package/components/TimePicker/hooks/useTimePickerSelection.js.map +1 -0
- package/components/TimePicker/hooks/useTimePickerValue.d.ts +18 -0
- package/components/TimePicker/hooks/useTimePickerValue.js +59 -0
- package/components/TimePicker/hooks/useTimePickerValue.js.map +1 -0
- package/components/TimePicker/index.d.ts +2 -0
- package/components/TimePicker/index.js +2 -0
- package/components/TimePicker/index.js.map +1 -0
- package/components/TimePicker/locale/index.d.ts +4 -0
- package/components/TimePicker/locale/index.js +9 -0
- package/components/TimePicker/locale/index.js.map +1 -0
- package/components/TimePicker/locale/locales/en.d.ts +2 -0
- package/components/TimePicker/locale/locales/en.js +5 -0
- package/components/TimePicker/locale/locales/en.js.map +1 -0
- package/components/TimePicker/locale/locales/ru.d.ts +2 -0
- package/components/TimePicker/locale/locales/ru.js +5 -0
- package/components/TimePicker/locale/locales/ru.js.map +1 -0
- package/components/TimePicker/locale/types.d.ts +4 -0
- package/components/TimePicker/locale/types.js.map +1 -0
- package/index.d.ts +1 -1
- package/index.js +1 -1
- package/index.js.map +1 -1
- package/internal/CustomComboBox/ComboBoxView.js +2 -2
- package/internal/CustomComboBox/ComboBoxView.js.map +1 -1
- package/internal/NativeTimeInput/NativeTimeInput.d.ts +16 -0
- package/internal/NativeTimeInput/NativeTimeInput.js +25 -0
- package/internal/NativeTimeInput/NativeTimeInput.js.map +1 -0
- package/internal/NativeTimeInput/NativeTimeInput.styles.d.ts +3 -0
- package/internal/NativeTimeInput/NativeTimeInput.styles.js +15 -0
- package/internal/NativeTimeInput/NativeTimeInput.styles.js.map +1 -0
- package/internal/NativeTimeInput/NativeTimeInput.utils.d.ts +7 -0
- package/internal/NativeTimeInput/NativeTimeInput.utils.js +28 -0
- package/internal/NativeTimeInput/NativeTimeInput.utils.js.map +1 -0
- package/internal/NativeTimeInput/index.d.ts +1 -0
- package/internal/NativeTimeInput/index.js +2 -0
- package/internal/NativeTimeInput/index.js.map +1 -0
- package/internal/TimeInput/TimeFragments.d.ts +15 -0
- package/internal/TimeInput/TimeFragments.js +72 -0
- package/internal/TimeInput/TimeFragments.js.map +1 -0
- package/internal/TimeInput/TimeFragments.styles.d.ts +12 -0
- package/internal/TimeInput/TimeFragments.styles.js +43 -0
- package/internal/TimeInput/TimeFragments.styles.js.map +1 -0
- package/internal/TimeInput/TimeInput.d.ts +22 -0
- package/internal/TimeInput/TimeInput.js +103 -0
- package/internal/TimeInput/TimeInput.js.map +1 -0
- package/{components/MaskedInputV2/MaskedInputV2.styles.d.ts → internal/TimeInput/TimeInput.styles.d.ts} +3 -4
- package/internal/TimeInput/TimeInput.styles.js +21 -0
- package/internal/TimeInput/TimeInput.styles.js.map +1 -0
- package/internal/TimeInput/index.d.ts +1 -0
- package/internal/TimeInput/index.js +2 -0
- package/internal/TimeInput/index.js.map +1 -0
- package/internal/icons2022/TimeClockIcon/TimeClockIcon16Light.d.ts +2 -0
- package/internal/icons2022/TimeClockIcon/TimeClockIcon16Light.js +20 -0
- package/internal/icons2022/TimeClockIcon/TimeClockIcon16Light.js.map +1 -0
- package/internal/icons2022/TimeClockIcon/TimeClockIcon20Light.d.ts +2 -0
- package/internal/icons2022/TimeClockIcon/TimeClockIcon20Light.js +20 -0
- package/internal/icons2022/TimeClockIcon/TimeClockIcon20Light.js.map +1 -0
- package/internal/icons2022/TimeClockIcon/TimeClockIcon24Regular.d.ts +2 -0
- package/internal/icons2022/TimeClockIcon/TimeClockIcon24Regular.js +20 -0
- package/internal/icons2022/TimeClockIcon/TimeClockIcon24Regular.js.map +1 -0
- package/internal/themes/BasicTheme.d.ts +34 -0
- package/internal/themes/BasicTheme.js +96 -0
- package/internal/themes/BasicTheme.js.map +1 -1
- package/lib/events/keyboard/KeyboardEventCodes.d.ts +0 -2
- package/lib/events/keyboard/KeyboardEventCodes.js +0 -2
- package/lib/events/keyboard/KeyboardEventCodes.js.map +1 -1
- package/lib/events/keyboard/KeyboardMapKeys.js +0 -2
- package/lib/events/keyboard/KeyboardMapKeys.js.map +1 -1
- package/lib/events/keyboard/identifiers.d.ts +0 -2
- package/lib/events/keyboard/identifiers.js +0 -6
- package/lib/events/keyboard/identifiers.js.map +1 -1
- package/lib/featureFlagsContext/ReactUIFeatureFlagsContext.d.ts +0 -2
- package/lib/featureFlagsContext/ReactUIFeatureFlagsContext.js +0 -1
- package/lib/featureFlagsContext/ReactUIFeatureFlagsContext.js.map +1 -1
- package/lib/locale/types.d.ts +2 -0
- package/lib/locale/types.js.map +1 -1
- package/lib/utils.d.ts +2 -0
- package/lib/utils.js +1 -0
- package/lib/utils.js.map +1 -1
- package/package.json +9 -4
- package/components/MaskedInputV2/MaskedInputV2.d.ts +0 -57
- package/components/MaskedInputV2/MaskedInputV2.helpers.d.ts +0 -9
- package/components/MaskedInputV2/MaskedInputV2.helpers.js +0 -17
- package/components/MaskedInputV2/MaskedInputV2.helpers.js.map +0 -1
- package/components/MaskedInputV2/MaskedInputV2.js +0 -234
- package/components/MaskedInputV2/MaskedInputV2.js.map +0 -1
- package/components/MaskedInputV2/MaskedInputV2.styles.js +0 -19
- package/components/MaskedInputV2/MaskedInputV2.styles.js.map +0 -1
- package/components/MaskedInputV2/index.d.ts +0 -1
- package/components/MaskedInputV2/index.js +0 -2
- package/components/MaskedInputV2/index.js.map +0 -1
- package/components/MaskedInputV2/internal/MaskOverlay.d.ts +0 -19
- package/components/MaskedInputV2/internal/MaskOverlay.js +0 -54
- package/components/MaskedInputV2/internal/MaskOverlay.js.map +0 -1
- package/components/MaskedInputV2/internal/MaskedCore.d.ts +0 -8
- package/components/MaskedInputV2/internal/MaskedCore.js +0 -101
- package/components/MaskedInputV2/internal/MaskedCore.js.map +0 -1
- package/components/MaskedInputV2/internal/MaskedCore.types.d.ts +0 -30
- package/components/MaskedInputV2/internal/MaskedCore.types.js +0 -2
- package/components/MaskedInputV2/internal/MaskedCore.types.js.map +0 -1
- package/components/MaskedInputV2/internal/MaskedInternal.styles.d.ts +0 -15
- package/components/MaskedInputV2/internal/MaskedInternal.styles.js +0 -34
- package/components/MaskedInputV2/internal/MaskedInternal.styles.js.map +0 -1
- package/components/MaskedInputV2/internal/buildSlotMap.d.ts +0 -11
- package/components/MaskedInputV2/internal/buildSlotMap.js +0 -37
- package/components/MaskedInputV2/internal/buildSlotMap.js.map +0 -1
- package/components/MaskedInputV2/internal/extractRaw.d.ts +0 -10
- package/components/MaskedInputV2/internal/extractRaw.js +0 -16
- package/components/MaskedInputV2/internal/extractRaw.js.map +0 -1
- package/components/MaskedInputV2/internal/findNearestRawLeft.d.ts +0 -10
- package/components/MaskedInputV2/internal/findNearestRawLeft.js +0 -18
- package/components/MaskedInputV2/internal/findNearestRawLeft.js.map +0 -1
- package/components/MaskedInputV2/internal/helpers.d.ts +0 -5
- package/components/MaskedInputV2/internal/helpers.js +0 -6
- package/components/MaskedInputV2/internal/helpers.js.map +0 -1
- package/components/MaskedInputV2/internal/maskedCoreClipboard.d.ts +0 -25
- package/components/MaskedInputV2/internal/maskedCoreClipboard.js +0 -30
- package/components/MaskedInputV2/internal/maskedCoreClipboard.js.map +0 -1
- package/components/MaskedInputV2/internal/maskedCoreDeletion.d.ts +0 -28
- package/components/MaskedInputV2/internal/maskedCoreDeletion.js +0 -70
- package/components/MaskedInputV2/internal/maskedCoreDeletion.js.map +0 -1
- package/components/MaskedInputV2/internal/maskedCoreInputChange.d.ts +0 -35
- package/components/MaskedInputV2/internal/maskedCoreInputChange.js +0 -31
- package/components/MaskedInputV2/internal/maskedCoreInputChange.js.map +0 -1
- package/components/MaskedInputV2/internal/maskedCoreNavigation.d.ts +0 -13
- package/components/MaskedInputV2/internal/maskedCoreNavigation.js +0 -79
- package/components/MaskedInputV2/internal/maskedCoreNavigation.js.map +0 -1
- package/components/MaskedInputV2/internal/stripMaskChars.d.ts +0 -11
- package/components/MaskedInputV2/internal/stripMaskChars.js +0 -20
- package/components/MaskedInputV2/internal/stripMaskChars.js.map +0 -1
- package/components/MaskedInputV2/internal/types.d.ts +0 -74
- package/components/MaskedInputV2/internal/types.js.map +0 -1
- package/components/MaskedInputV2/internal/useMaskEngine.d.ts +0 -42
- package/components/MaskedInputV2/internal/useMaskEngine.js +0 -82
- package/components/MaskedInputV2/internal/useMaskEngine.js.map +0 -1
- package/components/MaskedInputV2/internal/useMaskedCoreHandlers.d.ts +0 -28
- package/components/MaskedInputV2/internal/useMaskedCoreHandlers.js +0 -190
- package/components/MaskedInputV2/internal/useMaskedCoreHandlers.js.map +0 -1
- package/components/MaskedInputV2/react-imask/imask/controls/html-input-mask-element.d.ts +0 -16
- package/components/MaskedInputV2/react-imask/imask/controls/html-input-mask-element.js +0 -59
- package/components/MaskedInputV2/react-imask/imask/controls/html-input-mask-element.js.map +0 -1
- package/components/MaskedInputV2/react-imask/imask/controls/html-mask-element.d.ts +0 -20
- package/components/MaskedInputV2/react-imask/imask/controls/html-mask-element.js +0 -106
- package/components/MaskedInputV2/react-imask/imask/controls/html-mask-element.js.map +0 -1
- package/components/MaskedInputV2/react-imask/imask/controls/input-history.d.ts +0 -17
- package/components/MaskedInputV2/react-imask/imask/controls/input-history.js +0 -49
- package/components/MaskedInputV2/react-imask/imask/controls/input-history.js.map +0 -1
- package/components/MaskedInputV2/react-imask/imask/controls/input.d.ts +0 -95
- package/components/MaskedInputV2/react-imask/imask/controls/input.js +0 -420
- package/components/MaskedInputV2/react-imask/imask/controls/input.js.map +0 -1
- package/components/MaskedInputV2/react-imask/imask/controls/mask-element.d.ts +0 -30
- package/components/MaskedInputV2/react-imask/imask/controls/mask-element.js +0 -59
- package/components/MaskedInputV2/react-imask/imask/controls/mask-element.js.map +0 -1
- package/components/MaskedInputV2/react-imask/imask/core/action-details.d.ts +0 -30
- package/components/MaskedInputV2/react-imask/imask/core/action-details.js +0 -100
- package/components/MaskedInputV2/react-imask/imask/core/action-details.js.map +0 -1
- package/components/MaskedInputV2/react-imask/imask/core/change-details.d.ts +0 -20
- package/components/MaskedInputV2/react-imask/imask/core/change-details.js +0 -46
- package/components/MaskedInputV2/react-imask/imask/core/change-details.js.map +0 -1
- package/components/MaskedInputV2/react-imask/imask/core/continuous-tail-details.d.ts +0 -21
- package/components/MaskedInputV2/react-imask/imask/core/continuous-tail-details.js +0 -52
- package/components/MaskedInputV2/react-imask/imask/core/continuous-tail-details.js.map +0 -1
- package/components/MaskedInputV2/react-imask/imask/core/holder.d.ts +0 -34
- package/components/MaskedInputV2/react-imask/imask/core/holder.js +0 -38
- package/components/MaskedInputV2/react-imask/imask/core/holder.js.map +0 -1
- package/components/MaskedInputV2/react-imask/imask/core/tail-details.d.ts +0 -20
- package/components/MaskedInputV2/react-imask/imask/core/tail-details.js +0 -2
- package/components/MaskedInputV2/react-imask/imask/core/tail-details.js.map +0 -1
- package/components/MaskedInputV2/react-imask/imask/core/utils.d.ts +0 -24
- package/components/MaskedInputV2/react-imask/imask/core/utils.js +0 -100
- package/components/MaskedInputV2/react-imask/imask/core/utils.js.map +0 -1
- package/components/MaskedInputV2/react-imask/imask/imask.d.ts +0 -5
- package/components/MaskedInputV2/react-imask/imask/imask.js +0 -7
- package/components/MaskedInputV2/react-imask/imask/imask.js.map +0 -1
- package/components/MaskedInputV2/react-imask/imask/index.d.ts +0 -17
- package/components/MaskedInputV2/react-imask/imask/index.js +0 -16
- package/components/MaskedInputV2/react-imask/imask/index.js.map +0 -1
- package/components/MaskedInputV2/react-imask/imask/masked/base.d.ts +0 -114
- package/components/MaskedInputV2/react-imask/imask/masked/base.js +0 -411
- package/components/MaskedInputV2/react-imask/imask/masked/base.js.map +0 -1
- package/components/MaskedInputV2/react-imask/imask/masked/factory.d.ts +0 -62
- package/components/MaskedInputV2/react-imask/imask/masked/factory.js +0 -96
- package/components/MaskedInputV2/react-imask/imask/masked/factory.js.map +0 -1
- package/components/MaskedInputV2/react-imask/imask/masked/pattern.d.ts +0 -101
- package/components/MaskedInputV2/react-imask/imask/masked/pattern.js +0 -543
- package/components/MaskedInputV2/react-imask/imask/masked/pattern.js.map +0 -1
- package/components/MaskedInputV2/react-imask/imask/masked/patterns/block.d.ts +0 -30
- package/components/MaskedInputV2/react-imask/imask/masked/patterns/block.js +0 -2
- package/components/MaskedInputV2/react-imask/imask/masked/patterns/block.js.map +0 -1
- package/components/MaskedInputV2/react-imask/imask/masked/patterns/chunk-tail-details.d.ts +0 -21
- package/components/MaskedInputV2/react-imask/imask/masked/patterns/chunk-tail-details.js +0 -180
- package/components/MaskedInputV2/react-imask/imask/masked/patterns/chunk-tail-details.js.map +0 -1
- package/components/MaskedInputV2/react-imask/imask/masked/patterns/cursor.d.ts +0 -31
- package/components/MaskedInputV2/react-imask/imask/masked/patterns/cursor.js +0 -163
- package/components/MaskedInputV2/react-imask/imask/masked/patterns/cursor.js.map +0 -1
- package/components/MaskedInputV2/react-imask/imask/masked/patterns/fixed-definition.d.ts +0 -42
- package/components/MaskedInputV2/react-imask/imask/masked/patterns/fixed-definition.js +0 -158
- package/components/MaskedInputV2/react-imask/imask/masked/patterns/fixed-definition.js.map +0 -1
- package/components/MaskedInputV2/react-imask/imask/masked/patterns/input-definition.d.ts +0 -56
- package/components/MaskedInputV2/react-imask/imask/masked/patterns/input-definition.js +0 -185
- package/components/MaskedInputV2/react-imask/imask/masked/patterns/input-definition.js.map +0 -1
- package/components/MaskedInputV2/react-imask/imask/masked/regexp.d.ts +0 -17
- package/components/MaskedInputV2/react-imask/imask/masked/regexp.js +0 -36
- package/components/MaskedInputV2/react-imask/imask/masked/regexp.js.map +0 -1
- package/components/MaskedInputV2/react-imask/index.d.ts +0 -3
- package/components/MaskedInputV2/react-imask/index.js +0 -4
- package/components/MaskedInputV2/react-imask/index.js.map +0 -1
- package/components/MaskedInputV2/react-imask/input.d.ts +0 -8
- package/components/MaskedInputV2/react-imask/input.js +0 -35
- package/components/MaskedInputV2/react-imask/input.js.map +0 -1
- package/components/MaskedInputV2/react-imask/mixin.d.ts +0 -31
- package/components/MaskedInputV2/react-imask/mixin.js +0 -246
- package/components/MaskedInputV2/react-imask/mixin.js.map +0 -1
- package/internal/FeaturedMaskedInput/FeaturedMaskedInput.d.ts +0 -4
- package/internal/FeaturedMaskedInput/FeaturedMaskedInput.js +0 -24
- package/internal/FeaturedMaskedInput/FeaturedMaskedInput.js.map +0 -1
- /package/components/{MaskedInputV2/internal → TimePicker/locale}/types.js +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MaskedInput.js","sourceRoot":"","sources":["MaskedInput.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;AACA,OAAO,KAAK,EAAE,EAAE,UAAU,EAAE,SAAS,EAAE,mBAAmB,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAE5F,OAAO,OAAO,MAAM,SAAS,CAAC;AAE9B,OAAO,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,0CAA0C,CAAC;AACvF,OAAO,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAC;AACnE,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,sCAAsC,CAAC;AAC7E,OAAO,EAAE,YAAY,EAAE,MAAM,mCAAmC,CAAC;AAEjE,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAC1C,OAAO,EAAE,qBAAqB,EAAE,MAAM,kCAAkC,CAAC;AACzE,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AACvE,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AA0DnE,MAAM,CAAC,IAAM,oBAAoB,GAAG,UAAC,IAAgB;IACnD,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,OAAO,IAAI,CAAC;IACd,CAAC;IAED,QAAQ,IAAI,EAAE,CAAC;QACb,KAAK,QAAQ,CAAC;QACd,KAAK,MAAM,CAAC;QACZ,KAAK,MAAM,CAAC;QACZ,KAAK,UAAU;YACb,OAAO,MAAM,CAAC;QAChB;YACE,OAAO,IAAI,CAAC;IAChB,CAAC;AACH,CAAC,CAAC;AAYF;;;GAGG;AACH,MAAM,CAAC,IAAM,WAAW,GAAG,iBAAiB,CAC1C,aAAa,EACb,SAAS,WAAW,CAAC,KAAuB,EAAE,GAAsB;IAEhE,IAAA,IAAI,GAgBF,KAAK,KAhBH,EACJ,QAAQ,GAeN,KAAK,SAfC,EACR,WAAW,GAcT,KAAK,YAdI,EACX,KAaE,KAAK,eAbe,EAAtB,cAAc,mBAAG,KAAK,KAAA,EACtB,KAYE,KAAK,QAZO,EAAd,OAAO,mBAAG,IAAI,KAAA,EACd,KAWE,KAAK,WAX0B,EAArB,gBAAgB,mBAAG,EAAE,KAAA,EACjC,KAUE,KAAK,OAVO,EAAd,MAAM,mBAAG,KAAK,KAAA,EACd,aAAa,GASX,KAAK,cATM,EACb,iBAAiB,GAQf,KAAK,kBARU,EACjB,QAAQ,GAON,KAAK,SAPC,EACR,kBAAkB,GAMhB,KAAK,mBANW,EAClB,OAAO,GAKL,KAAK,QALA,EACP,SAAS,GAIP,KAAK,UAJE;IACT,sDAAsD;IACtD,SAAS,GAEP,KAAK,UAFE,EACN,UAAU,UACX,KAAK,EAjBH,qMAiBL,CADc,CACL;IACV,IAAM,KAAK,GAAG,UAAU,CAAC,YAAY,CAAC,CAAC;IAC/B,IAAA,EAAE,GAAK,UAAU,EAAE,GAAjB,CAAkB;IAC5B,IAAM,MAAM,GAAG,SAAS,CAAC,SAAS,CAAC,CAAC;IAEpC,IAAM,QAAQ,GAAG,MAAM,CAAQ,IAAI,CAAC,CAAC;IAE/B,IAAA,KAAwB,QAAQ,CAAC,KAAK,CAAC,EAAtC,OAAO,QAAA,EAAE,UAAU,QAAmB,CAAC;IAC9C,IAAM,SAAS,GAAG,MAAM,CAAS,KAAK,CAAC,KAAK,IAAI,MAAM,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC,CAAC;IAClF,IAAM,kBAAkB,GAAG,MAAM,CAAgB,IAAI,CAAC,CAAC;IAEvD,mBAAmB,CACjB,GAAG,EACH;QACE,OAAA,QAAQ,CAAC,OAAO;YAChB,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,EAAE;gBAC9B,SAAS,EAAE;;oBACT,MAAA,QAAQ,CAAC,OAAO,0CAAE,KAAK,EAAE,CAAC;oBAC1B,MAAA,QAAQ,CAAC,OAAO,0CAAE,cAAc,EAAE,CAAC;gBACrC,CAAC;aACF,CAAC;IANF,CAME,EACJ,EAAE,CACH,CAAC;IAEF,SAAS,CAAC;QACR,OAAO,CAAC,KAAK,EAAE,8DAA8D,CAAC,CAAC;IACjF,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,SAAS,CAAC;;QACR,uEAAuE;QACvE,uFAAuF;QACvF,kEAAkE;QAClE,IAAI,MAAA,QAAQ,CAAC,OAAO,0CAAE,KAAK,EAAE,CAAC;YAC5B,SAAS,CAAC,OAAO,GAAG,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC;YACjD,kBAAkB,CAAC,OAAO,GAAG,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,cAAc,CAAC;QACrE,CAAC;IACH,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,IAAM,UAAU,GAAG,uBAAuB,EAAE,CAAC;IAE7C,OAAO,CACL,oBAAC,KAAK,aACJ,GAAG,EAAE,QAAQ,IACT,UAAU,IACd,OAAO,EAAE,WAAW,EACpB,MAAM,EAAE,UAAU,EAClB,OAAO,EAAE,WAAW,EACpB,SAAS,EAAE,aAAa,EACxB,OAAO,EAAE,WAAW,EACpB,SAAS,EAAE,EAAE,CAAC,aAAa,CAAC,IAAI,EAAE,SAAS,EAAE,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAChE,OAAO,EACL,OAAO,CAAC,CAAC,CAAC,CACR,oBAAC,qBAAqB,IAAC,WAAW,EAAE,KAAK,EAAE,cAAc,EAAE,cAAc;YACvE,oBAAC,eAAe,eAAK,UAAU,IAAE,QAAQ,EAAE,YAAY,IAAI,CACrC,CACzB,CAAC,CAAC,CAAC,CACF,oBAAC,eAAe,eAAK,UAAU,IAAE,QAAQ,EAAE,YAAY,IAAI,CAC5D,IAEH,CACH,CAAC;IAEF,SAAS,WAAW,CAAC,KAA6C;;QAChE,IAAI,kBAAkB,IAAI,aAAa,EAAE,CAAC;YACxC,KAAK,CAAC,cAAc,EAAE,CAAC;YACvB,aAAa,aAAb,aAAa,uBAAb,aAAa,CAAG,kBAAkB,CAAC,MAAA,MAAA,KAAK,CAAC,aAAa,0CAAE,OAAO,CAAC,MAAM,CAAC,mCAAI,EAAE,CAAC,CAAC,CAAC;QAClF,CAAC;QAED,MAAA,KAAK,CAAC,OAAO,sDAAG,KAAK,CAAC,CAAC;IACzB,CAAC;IAED,SAAS,uBAAuB;QAC9B,OAAO,WACL,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAQ,EACxC,eAAe,EAAE,WAAW,CAAC,QAAQ,CAAC,EACtC,WAAW,EAAE,cAAc,CAAC,WAAW,CAAC;YACxC,wEAAwE;YACxE,KAAK,EAAE,QAAQ,EACf,SAAS,EAAE,OAAO,EAClB,IAAI,EAAE,CAAC,cAAc,IAAI,CAAC,KAAK,CAAC,QAAQ,IAAI,CAAC,OAAO,CAAC,EACrD,MAAM,QAAA,IACH,gBAAgB,CACiB,CAAC;IACzC,CAAC;IAED,SAAS,YAAY;QAAC,cAA4E;aAA5E,UAA4E,EAA5E,qBAA4E,EAA5E,IAA4E;YAA5E,yBAA4E;;QACzF,IAAA,KAAK,GAAS,IAAI,GAAb,EAAI,CAAC,GAAI,IAAI,GAAR,CAAS;QAE1B,qFAAqF;QACrF,mEAAmE;QACnE,yFAAyF;QACzF,yFAAyF;QACzF,qDAAqD;QACrD,CAAC,KAAI,aAAa,aAAb,aAAa,uBAAb,aAAa,CAAG,KAAK,CAAC,CAAA,CAAC;QAC5B,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,GAAG,KAAK,CAAC,CAAC;IACpC,CAAC;IAED;;;;OAIG;IACH,SAAS,WAAW,CAAC,CAAsC;;QACnD,IAAA,KAA4B,CAAC,CAAC,aAAa,EAAzC,KAAK,WAAA,EAAE,cAAc,oBAAoB,CAAC;QAElD,iGAAiG;QACjG,kGAAkG;QAClG,IAAI,SAAS,CAAC,OAAO,KAAK,KAAK,IAAI,cAAc,KAAK,kBAAkB,CAAC,OAAO,EAAE,CAAC;YACjF,qBAAqB,CAAC,KAAK,CAAC,CAAC;QAC/B,CAAC;QACD,SAAS,CAAC,OAAO,GAAG,KAAK,CAAC;QAC1B,kBAAkB,CAAC,OAAO,GAAG,cAAc,CAAC;QAE5C,MAAA,KAAK,CAAC,OAAO,sDAAG,CAAC,CAAC,CAAC;IACrB,CAAC;IAED,SAAS,WAAW,CAAC,CAAqC;;QACxD,UAAU,CAAC,IAAI,CAAC,CAAC;QACjB,MAAA,KAAK,CAAC,OAAO,sDAAG,CAAC,CAAC,CAAC;QAEnB,oFAAoF;QACpF,iEAAiE;QACjE,KAAK,CAAC,gBAAgB,KAAI,MAAA,QAAQ,CAAC,OAAO,0CAAE,cAAc,EAAE,CAAA,CAAC;IAC/D,CAAC;IAED,SAAS,qBAAqB,CAAC,KAAa;;QAC1C,IAAM,KAAK,GAAG,CAAA,MAAA,QAAQ,CAAC,OAAO,0CAAE,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAI,CAAC,cAAM,OAAA,SAAS,EAAT,CAAS,CAAC,CAAC;QAClF,iBAAiB,CAAC,CAAC,CAAC,iBAAiB,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC;IAChE,CAAC;IAED,SAAS,UAAU,CAAC,CAAqC;;QACvD,UAAU,CAAC,KAAK,CAAC,CAAC;QAClB,MAAA,KAAK,CAAC,MAAM,sDAAG,CAAC,CAAC,CAAC;IACpB,CAAC;IAED,SAAS,aAAa,CAAC,CAAwC;;QACvD,IAAA,KAA0C,CAAC,CAAC,aAAa,EAAvD,KAAK,WAAA,EAAE,cAAc,oBAAA,EAAE,YAAY,kBAAoB,CAAC;QAEhE,IACE,CAAC,cAAc,CAAC,CAAC,CAAC,IAAI,cAAc,KAAK,CAAC,IAAI,YAAY,KAAK,CAAC,CAAC;YACjE,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,kBAAkB,CAAC,OAAO,KAAK,KAAK,CAAC,MAAM,CAAC,EAC/D,CAAC;YACD,qDAAqD;YACrD,qBAAqB,CAAC,KAAK,CAAC,CAAC;YAC7B,SAAS,CAAC,OAAO,GAAG,CAAC,CAAC,aAAa,CAAC,KAAK,CAAC;QAC5C,CAAC;QACD,kBAAkB,CAAC,OAAO,GAAG,cAAc,CAAC;QAE5C,MAAA,KAAK,CAAC,SAAS,sDAAG,CAAC,CAAC,CAAC;IACvB,CAAC;AACH,CAAC,CACF,CAAC","sourcesContent":["import type { IMaskInputProps } from '@skbkontur/react-imask';\nimport React, { useContext, useEffect, useImperativeHandle, useRef, useState } from 'react';\nimport type { Ref } from 'react';\nimport warning from 'warning';\n\nimport { isKeyBackspace, isKeyDelete } from '../../lib/events/keyboard/identifiers.js';\nimport { forwardRefAndName } from '../../lib/forwardRefAndName.js';\nimport { useEmotion, useStyles } from '../../lib/renderEnvironment/index.js';\nimport { ThemeContext } from '../../lib/theming/ThemeContext.js';\nimport type { InputProps, InputType } from '../Input/index.js';\nimport { Input } from '../Input/index.js';\nimport { ColorableInputElement } from './ColorableInputElement/index.js';\nimport { FixedIMaskInput } from './FixedIMaskInput.js';\nimport { getDefinitions, getMaskChar } from './MaskedInput.helpers.js';\nimport { getStyles, globalClasses } from './MaskedInput.styles.js';\n\nexport type MaskedInputOnBeforePasteValue = (value: string) => string;\n\nexport interface MaskedProps {\n /** Шаблон ввода, определяющий допустимые символы. */\n mask: string;\n\n /** Плейсхолдер, который отображается на месте ещё не введённых пользователем символов.\n * @default _ */\n maskChar?: string;\n\n /** Словарь правил для настройки маски, где:\n * ключ — символ для использования в маске;\n * значение — регулярка-правило.\n * @default { '9': '[0-9]', 'a': '[A-Za-z]', '*': '[A-Za-z0-9]' } */\n formatChars?: Record<string, string>;\n\n /** Всегда показывать символы маски, независимо от фокуса в поле.\n * @default false */\n alwaysShowMask?: boolean;\n\n /** Событие некорректного ввода.\n * Вторым аргументом передаётся метод вспыхивания рамки поля.\n *\n * Если обработчик не задан, то при событии рамка всегда вспыхивает.\n *\n * @param value значение поля\n * @param blink метод вспыхивания рамки поля\n */\n onUnexpectedInput?: (value: string, blink: () => void) => void;\n\n /**\n * Событие перед вставкой текста в поле.\n * Вызывается с аргументом value — текст из буфера.\n *\n * Обработчик должен вернуть текст — он попадёт в поле.\n *\n * @param value значение вставки.\n */\n onBeforePasteValue?: MaskedInputOnBeforePasteValue;\n\n /** Убирает из value символы маски, которые пользователь не вводил.\n * @default false */\n unmask?: boolean;\n\n /** Раскрашивает символы маски.\n * @default true\n * @ignore */\n colored?: boolean;\n\n /** Задает пропсы для компонента `IMaskInput`. Необходимы для юнит-тестов\n * @ignore */\n imaskProps?: IMaskInputProps<HTMLInputElement>;\n}\n\nexport type MaskInputType = Exclude<InputType, 'number' | 'date' | 'time' | 'password'>;\n\nexport const getSafeMaskInputType = (type?: InputType): MaskInputType | undefined => {\n if (!type) {\n return type;\n }\n\n switch (type) {\n case 'number':\n case 'date':\n case 'time':\n case 'password':\n return 'text';\n default:\n return type;\n }\n};\n\nexport interface MaskedInputProps\n extends\n MaskedProps,\n Omit<\n InputProps,\n 'showClearIcon' | 'mask' | 'maxLength' | 'type' | 'alwaysShowMask' | 'onUnexpectedInput' | 'maskChar'\n > {\n type?: MaskInputType;\n}\n\n/** Поле ввода, которое ограничивает формат вводимого значения по заданной маске. Такое поле облегчает пользователю ввод и снижает количество ошибок.\n *\n * @deprecated Используйте {@link MaskedInputV2}. Будет удалён в `7.0`.\n */\nexport const MaskedInput = forwardRefAndName(\n 'MaskedInput',\n function MaskedInput(props: MaskedInputProps, ref: Ref<Input | null>) {\n const {\n mask,\n maskChar,\n formatChars,\n alwaysShowMask = false,\n colored = true,\n imaskProps: customIMaskProps = {},\n unmask = false,\n onValueChange,\n onUnexpectedInput,\n onChange,\n onBeforePasteValue,\n element,\n className,\n // @ts-expect-error: могут передавать игнорируя ошибку\n maxLength,\n ...inputProps\n } = props;\n const theme = useContext(ThemeContext);\n const { cx } = useEmotion();\n const styles = useStyles(getStyles);\n\n const inputRef = useRef<Input>(null);\n\n const [focused, setFocused] = useState(false);\n const prevValue = useRef<string>(props.value || String(props.defaultValue) || '');\n const prevSelectionStart = useRef<number | null>(null);\n\n useImperativeHandle<typeof inputRef.current, typeof inputRef.current>(\n ref,\n () =>\n inputRef.current &&\n Object.assign(inputRef.current, {\n selectAll: () => {\n inputRef.current?.focus();\n inputRef.current?.delaySelectAll();\n },\n }),\n [],\n );\n\n useEffect(() => {\n warning(false, '[MaskedInput]: компонент устарел. Используйте MaskedInputV2.');\n }, []);\n\n useEffect(() => {\n // Для корректной работы onUnexpectedInput надо знать предыдущий value,\n // но imask при монтировании не вызывает onAccept, если value невалиден или laze=false.\n // Поэтому актуальный value при монтировании надо получать вручную\n if (inputRef.current?.input) {\n prevValue.current = inputRef.current.input.value;\n prevSelectionStart.current = inputRef.current.input.selectionStart;\n }\n }, []);\n\n const imaskProps = getCompatibleIMaskProps();\n\n return (\n <Input\n ref={inputRef}\n {...inputProps}\n onFocus={handleFocus}\n onBlur={handleBlur}\n onInput={handleInput}\n onKeyDown={handleKeyDown}\n onPaste={handlePaste}\n className={cx(globalClasses.root, className, styles.root(theme))}\n element={\n colored ? (\n <ColorableInputElement showOnFocus={false} alwaysShowMask={alwaysShowMask}>\n <FixedIMaskInput {...imaskProps} onAccept={handleAccept} />\n </ColorableInputElement>\n ) : (\n <FixedIMaskInput {...imaskProps} onAccept={handleAccept} />\n )\n }\n />\n );\n\n function handlePaste(event: React.ClipboardEvent<HTMLInputElement>) {\n if (onBeforePasteValue && onValueChange) {\n event.preventDefault();\n onValueChange?.(onBeforePasteValue(event.clipboardData?.getData('text') ?? ''));\n }\n\n props.onPaste?.(event);\n }\n\n function getCompatibleIMaskProps(): IMaskInputProps<HTMLInputElement> {\n return {\n mask: mask.replace(/0/g, '{\\\\0}') as any,\n placeholderChar: getMaskChar(maskChar),\n definitions: getDefinitions(formatChars),\n // FIXME: Должно быть eager=true, но в imask ломается удаление по delete\n eager: 'append',\n overwrite: 'shift',\n lazy: !alwaysShowMask && (props.disabled || !focused),\n unmask,\n ...customIMaskProps,\n } as IMaskInputProps<HTMLInputElement>;\n }\n\n function handleAccept(...args: Parameters<Required<IMaskInputProps<HTMLInputElement>>['onAccept']>) {\n const [value, , e] = args;\n\n // Метод onAccept может вызываться при монтировании, если не задан проп defaultValue.\n // Но нативный input никогда не вызывает onChange при монтировании.\n // Наше событие onValueChange в Input вывается в тех же случаях, что и нативный onChange,\n // поэтому чтобы сохранить консинстентность будем ориентироваться на наличие аргумента e.\n // Он содержит нативное событие, вызвавшее изменение.\n e && onValueChange?.(value);\n !e && (prevValue.current = value);\n }\n\n /**\n * Отслеживаем неожиданные нажатия\n * handleAccept не вызывается когда значение с маской не меняется\n * Сначала вызывается handleAccept, затем handleInput\n */\n function handleInput(e: React.ChangeEvent<HTMLInputElement>) {\n const { value, selectionStart } = e.currentTarget;\n\n // При вводе неожиданных символов или удалении каретка может перепрыгивать фиксированные символы.\n // Такие случаи не расцениваем как неожиданный ввод, т.к. пользователь может намеренно их вводить.\n if (prevValue.current === value && selectionStart === prevSelectionStart.current) {\n handleUnexpectedInput(value);\n }\n prevValue.current = value;\n prevSelectionStart.current = selectionStart;\n\n props.onInput?.(e);\n }\n\n function handleFocus(e: React.FocusEvent<HTMLInputElement>) {\n setFocused(true);\n props.onFocus?.(e);\n\n // Если value из пропсов отличается от value, которое получит input после обработки,\n // то imask будет ставить каретку за последним валидным символом.\n props.selectAllOnFocus && inputRef.current?.delaySelectAll();\n }\n\n function handleUnexpectedInput(value: string) {\n const blink = inputRef.current?.blink.bind(inputRef.current) || (() => undefined);\n onUnexpectedInput ? onUnexpectedInput(value, blink) : blink();\n }\n\n function handleBlur(e: React.FocusEvent<HTMLInputElement>) {\n setFocused(false);\n props.onBlur?.(e);\n }\n\n function handleKeyDown(e: React.KeyboardEvent<HTMLInputElement>) {\n const { value, selectionStart, selectionEnd } = e.currentTarget;\n\n if (\n (isKeyBackspace(e) && selectionStart === 0 && selectionEnd === 0) ||\n (isKeyDelete(e) && prevSelectionStart.current === value.length)\n ) {\n // Случаи, когда нажатие клавиш не тригерит `onInput`\n handleUnexpectedInput(value);\n prevValue.current = e.currentTarget.value;\n }\n prevSelectionStart.current = selectionStart;\n\n props.onKeyDown?.(e);\n }\n },\n);\n"]}
|
|
1
|
+
{"version":3,"file":"MaskedInput.js","sourceRoot":"","sources":["MaskedInput.tsx"],"names":[],"mappings":"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","sourcesContent":["import type { IMaskInputProps } from '@skbkontur/react-imask';\nimport React, { useContext, useEffect, useImperativeHandle, useRef, useState } from 'react';\nimport type { Ref } from 'react';\n\nimport { isKeyBackspace, isKeyDelete } from '../../lib/events/keyboard/identifiers.js';\nimport { forwardRefAndName } from '../../lib/forwardRefAndName.js';\nimport { useEmotion, useStyles } from '../../lib/renderEnvironment/index.js';\nimport { ThemeContext } from '../../lib/theming/ThemeContext.js';\nimport type { InputProps, InputType } from '../Input/index.js';\nimport { Input } from '../Input/index.js';\nimport { ColorableInputElement } from './ColorableInputElement/index.js';\nimport { FixedIMaskInput } from './FixedIMaskInput.js';\nimport { getDefinitions, getMaskChar } from './MaskedInput.helpers.js';\nimport { getStyles, globalClasses } from './MaskedInput.styles.js';\n\nexport type MaskedInputOnBeforePasteValue = (value: string) => string;\n\nexport interface MaskedProps {\n /** Шаблон ввода, определяющий допустимые символы. */\n mask: string;\n\n /** Плейсхолдер, который отображается на месте ещё не введённых пользователем символов.\n * @default _ */\n maskChar?: string;\n\n /** Словарь правил для настройки маски, где:\n * ключ — символ для использования в маске;\n * значение — регулярка-правило.\n * @default { '9': '[0-9]', 'a': '[A-Za-z]', '*': '[A-Za-z0-9]' } */\n formatChars?: Record<string, string>;\n\n /** Всегда показывать символы маски, независимо от фокуса в поле.\n * @default false */\n alwaysShowMask?: boolean;\n\n /** Событие некорректного ввода.\n * Вторым аргументом передаётся метод вспыхивания рамки поля.\n *\n * Если обработчик не задан, то при событии рамка всегда вспыхивает.\n *\n * @param value значение поля\n * @param blink метод вспыхивания рамки поля\n */\n onUnexpectedInput?: (value: string, blink: () => void) => void;\n\n /**\n * Событие перед вставкой текста в поле.\n * Вызывается с аргументом value — текст из буфера.\n *\n * Обработчик должен вернуть текст — он попадёт в поле.\n *\n * @param value значение вставки.\n */\n onBeforePasteValue?: MaskedInputOnBeforePasteValue;\n\n /** Убирает из value символы маски, которые пользователь не вводил.\n * @default false */\n unmask?: boolean;\n\n /** Раскрашивает символы маски.\n * @default true\n * @ignore */\n colored?: boolean;\n\n /** Задает пропсы для компонента `IMaskInput`. Необходимы для юнит-тестов\n * @ignore */\n imaskProps?: IMaskInputProps<HTMLInputElement>;\n}\n\nexport type MaskInputType = Exclude<InputType, 'number' | 'date' | 'time' | 'password'>;\n\nexport const getSafeMaskInputType = (type?: InputType): MaskInputType | undefined => {\n if (!type) {\n return type;\n }\n\n switch (type) {\n case 'number':\n case 'date':\n case 'time':\n case 'password':\n return 'text';\n default:\n return type;\n }\n};\n\nexport interface MaskedInputProps\n extends\n MaskedProps,\n Omit<\n InputProps,\n 'showClearIcon' | 'mask' | 'maxLength' | 'type' | 'alwaysShowMask' | 'onUnexpectedInput' | 'maskChar'\n > {\n type?: MaskInputType;\n}\n\n/** Поле ввода, которое ограничивает формат вводимого значения по заданной маске. Такое поле облегчает пользователю ввод и снижает количество ошибок.\n */\nexport const MaskedInput = forwardRefAndName(\n 'MaskedInput',\n function MaskedInput(props: MaskedInputProps, ref: Ref<Input | null>) {\n const {\n mask,\n maskChar,\n formatChars,\n alwaysShowMask = false,\n colored = true,\n imaskProps: customIMaskProps = {},\n unmask = false,\n onValueChange,\n onUnexpectedInput,\n onChange,\n onBeforePasteValue,\n element,\n className,\n // @ts-expect-error: могут передавать игнорируя ошибку\n maxLength,\n ...inputProps\n } = props;\n const theme = useContext(ThemeContext);\n const { cx } = useEmotion();\n const styles = useStyles(getStyles);\n\n const inputRef = useRef<Input>(null);\n\n const [focused, setFocused] = useState(false);\n const prevValue = useRef<string>(props.value || String(props.defaultValue) || '');\n const prevSelectionStart = useRef<number | null>(null);\n\n useImperativeHandle<typeof inputRef.current, typeof inputRef.current>(\n ref,\n () =>\n inputRef.current &&\n Object.assign(inputRef.current, {\n selectAll: () => {\n inputRef.current?.focus();\n inputRef.current?.delaySelectAll();\n },\n }),\n [],\n );\n\n useEffect(() => {\n // Для корректной работы onUnexpectedInput надо знать предыдущий value,\n // но imask при монтировании не вызывает onAccept, если value невалиден или laze=false.\n // Поэтому актуальный value при монтировании надо получать вручную\n if (inputRef.current?.input) {\n prevValue.current = inputRef.current.input.value;\n prevSelectionStart.current = inputRef.current.input.selectionStart;\n }\n }, []);\n\n const imaskProps = getCompatibleIMaskProps();\n\n return (\n <Input\n ref={inputRef}\n {...inputProps}\n onFocus={handleFocus}\n onBlur={handleBlur}\n onInput={handleInput}\n onKeyDown={handleKeyDown}\n onPaste={handlePaste}\n className={cx(globalClasses.root, className, styles.root(theme))}\n element={\n colored ? (\n <ColorableInputElement showOnFocus={false} alwaysShowMask={alwaysShowMask}>\n <FixedIMaskInput {...imaskProps} onAccept={handleAccept} />\n </ColorableInputElement>\n ) : (\n <FixedIMaskInput {...imaskProps} onAccept={handleAccept} />\n )\n }\n />\n );\n\n function handlePaste(event: React.ClipboardEvent<HTMLInputElement>) {\n if (onBeforePasteValue && onValueChange) {\n event.preventDefault();\n onValueChange?.(onBeforePasteValue(event.clipboardData?.getData('text') ?? ''));\n }\n\n props.onPaste?.(event);\n }\n\n function getCompatibleIMaskProps(): IMaskInputProps<HTMLInputElement> {\n return {\n mask: mask.replace(/0/g, '{\\\\0}') as any,\n placeholderChar: getMaskChar(maskChar),\n definitions: getDefinitions(formatChars),\n // FIXME: Должно быть eager=true, но в imask ломается удаление по delete\n eager: 'append',\n overwrite: 'shift',\n lazy: !alwaysShowMask && (props.disabled || !focused),\n unmask,\n ...customIMaskProps,\n } as IMaskInputProps<HTMLInputElement>;\n }\n\n function handleAccept(...args: Parameters<Required<IMaskInputProps<HTMLInputElement>>['onAccept']>) {\n const [value, , e] = args;\n\n // Метод onAccept может вызываться при монтировании, если не задан проп defaultValue.\n // Но нативный input никогда не вызывает onChange при монтировании.\n // Наше событие onValueChange в Input вывается в тех же случаях, что и нативный onChange,\n // поэтому чтобы сохранить консинстентность будем ориентироваться на наличие аргумента e.\n // Он содержит нативное событие, вызвавшее изменение.\n e && onValueChange?.(value);\n !e && (prevValue.current = value);\n }\n\n /**\n * Отслеживаем неожиданные нажатия\n * handleAccept не вызывается когда значение с маской не меняется\n * Сначала вызывается handleAccept, затем handleInput\n */\n function handleInput(e: React.ChangeEvent<HTMLInputElement>) {\n const { value, selectionStart } = e.currentTarget;\n\n // При вводе неожиданных символов или удалении каретка может перепрыгивать фиксированные символы.\n // Такие случаи не расцениваем как неожиданный ввод, т.к. пользователь может намеренно их вводить.\n if (prevValue.current === value && selectionStart === prevSelectionStart.current) {\n handleUnexpectedInput(value);\n }\n prevValue.current = value;\n prevSelectionStart.current = selectionStart;\n\n props.onInput?.(e);\n }\n\n function handleFocus(e: React.FocusEvent<HTMLInputElement>) {\n setFocused(true);\n props.onFocus?.(e);\n\n // Если value из пропсов отличается от value, которое получит input после обработки,\n // то imask будет ставить каретку за последним валидным символом.\n props.selectAllOnFocus && inputRef.current?.delaySelectAll();\n }\n\n function handleUnexpectedInput(value: string) {\n const blink = inputRef.current?.blink.bind(inputRef.current) || (() => undefined);\n onUnexpectedInput ? onUnexpectedInput(value, blink) : blink();\n }\n\n function handleBlur(e: React.FocusEvent<HTMLInputElement>) {\n setFocused(false);\n props.onBlur?.(e);\n }\n\n function handleKeyDown(e: React.KeyboardEvent<HTMLInputElement>) {\n const { value, selectionStart, selectionEnd } = e.currentTarget;\n\n if (\n (isKeyBackspace(e) && selectionStart === 0 && selectionEnd === 0) ||\n (isKeyDelete(e) && prevSelectionStart.current === value.length)\n ) {\n // Случаи, когда нажатие клавиш не тригерит `onInput`\n handleUnexpectedInput(value);\n prevValue.current = e.currentTarget.value;\n }\n prevSelectionStart.current = selectionStart;\n\n props.onKeyDown?.(e);\n }\n },\n);\n"]}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
export declare const TimeClockIcon: import("../../lib/forwardRefAndName.js").ReactUIIconWithRef<SVGSVGElement, Omit<import("../../internal/icons2022/BaseIcon.js").IconProps, "size"> & {
|
|
2
|
+
size?: import("../../internal/icons2022/BaseIcon.js").IconProps["size"] | import("../../internal/icons2022/iconConstants.js").IconSizeAliases;
|
|
3
|
+
}>;
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { iconSizer } from '../../internal/icons2022/iconSizer.js';
|
|
3
|
+
import { TimeClockIcon16Light } from '../../internal/icons2022/TimeClockIcon/TimeClockIcon16Light.js';
|
|
4
|
+
import { TimeClockIcon20Light } from '../../internal/icons2022/TimeClockIcon/TimeClockIcon20Light.js';
|
|
5
|
+
import { TimeClockIcon24Regular } from '../../internal/icons2022/TimeClockIcon/TimeClockIcon24Regular.js';
|
|
6
|
+
export var TimeClockIcon = iconSizer({
|
|
7
|
+
small: function () { return React.createElement(TimeClockIcon16Light, null); },
|
|
8
|
+
medium: function () { return React.createElement(TimeClockIcon20Light, null); },
|
|
9
|
+
large: function () { return React.createElement(TimeClockIcon24Regular, null); },
|
|
10
|
+
}, 'TimeClockIcon');
|
|
11
|
+
//# sourceMappingURL=TimeClockIcon.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TimeClockIcon.js","sourceRoot":"","sources":["TimeClockIcon.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAE,SAAS,EAAE,MAAM,uCAAuC,CAAC;AAClE,OAAO,EAAE,oBAAoB,EAAE,MAAM,gEAAgE,CAAC;AACtG,OAAO,EAAE,oBAAoB,EAAE,MAAM,gEAAgE,CAAC;AACtG,OAAO,EAAE,sBAAsB,EAAE,MAAM,kEAAkE,CAAC;AAE1G,MAAM,CAAC,IAAM,aAAa,GAAG,SAAS,CACpC;IACE,KAAK,EAAE,cAAM,OAAA,oBAAC,oBAAoB,OAAG,EAAxB,CAAwB;IACrC,MAAM,EAAE,cAAM,OAAA,oBAAC,oBAAoB,OAAG,EAAxB,CAAwB;IACtC,KAAK,EAAE,cAAM,OAAA,oBAAC,sBAAsB,OAAG,EAA1B,CAA0B;CACxC,EACD,eAAe,CAChB,CAAC","sourcesContent":["import React from 'react';\n\nimport { iconSizer } from '../../internal/icons2022/iconSizer.js';\nimport { TimeClockIcon16Light } from '../../internal/icons2022/TimeClockIcon/TimeClockIcon16Light.js';\nimport { TimeClockIcon20Light } from '../../internal/icons2022/TimeClockIcon/TimeClockIcon20Light.js';\nimport { TimeClockIcon24Regular } from '../../internal/icons2022/TimeClockIcon/TimeClockIcon24Regular.js';\n\nexport const TimeClockIcon = iconSizer(\n {\n small: () => <TimeClockIcon16Light />,\n medium: () => <TimeClockIcon20Light />,\n large: () => <TimeClockIcon24Regular />,\n },\n 'TimeClockIcon',\n);\n"]}
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
import type { AriaAttributes, HTMLAttributes, ReactNode } from 'react';
|
|
2
|
+
import React from 'react';
|
|
3
|
+
import type { CommonProps } from '../../internal/CommonWrapper/index.js';
|
|
4
|
+
import type { SizeProp } from '../../lib/types/props.js';
|
|
5
|
+
import type { TimeFormat, TimeItem } from './helpers/TimePicker.shared.js';
|
|
6
|
+
export interface TimePickerProps extends CommonProps, Pick<AriaAttributes, 'aria-describedby' | 'aria-label'>, Pick<HTMLAttributes<HTMLElement>, 'id'> {
|
|
7
|
+
/** Устанавливает формат времени @default HH:mm */
|
|
8
|
+
format?: TimeFormat;
|
|
9
|
+
/** Определяет массив объектов с элементами в формате TimeItem. */
|
|
10
|
+
items?: TimeItem[];
|
|
11
|
+
/** Задает нижнюю границу времени. Элементы за границей становятся заблокированными. */
|
|
12
|
+
minTime?: string;
|
|
13
|
+
/** Задает верхнюю границу времени. Элементы за границей становятся заблокированными. */
|
|
14
|
+
maxTime?: string;
|
|
15
|
+
/** Значение поля @param value. */
|
|
16
|
+
value?: string;
|
|
17
|
+
/** Устанавливает фокус на поле ввода после окончания загрузки страницы @default false */
|
|
18
|
+
autoFocus?: boolean;
|
|
19
|
+
/** Делает компонент заблокированным. */
|
|
20
|
+
disabled?: boolean;
|
|
21
|
+
/** Переводит контрол в состояние валидации ошибки. */
|
|
22
|
+
error?: boolean;
|
|
23
|
+
/** Переводит контрол в состояние валидации предупреждения. */
|
|
24
|
+
warning?: boolean;
|
|
25
|
+
/** Включает нативный системный выбор времени на мобильных устройствах. */
|
|
26
|
+
useMobileNativeTimePicker?: boolean;
|
|
27
|
+
/** Расположение выпадающего меню. */
|
|
28
|
+
menuPos?: 'top' | 'bottom';
|
|
29
|
+
/** Выравнивание выпадающего меню. */
|
|
30
|
+
menuAlign?: 'left' | 'right';
|
|
31
|
+
/** Ширина выпадающего меню. По умолчанию — минимальная ширина поля ввода, расширяется по контенту. */
|
|
32
|
+
menuWidth?: string | number;
|
|
33
|
+
/** Задает ширину поля. */
|
|
34
|
+
width?: string | number;
|
|
35
|
+
/** Переопределяет иконку или скрывает, если передать `null`. */
|
|
36
|
+
rightIcon?: React.ReactNode | (() => React.ReactNode);
|
|
37
|
+
/** Устанавливает суффикс после значения и перед иконкой. */
|
|
38
|
+
suffix?: ReactNode;
|
|
39
|
+
/** Размер поля ввода и выпадающего меню. */
|
|
40
|
+
size?: SizeProp;
|
|
41
|
+
/** Устанавливает радиус скруглений углов.
|
|
42
|
+
* @ignore */
|
|
43
|
+
corners?: Partial<Pick<React.CSSProperties, 'borderTopRightRadius' | 'borderBottomRightRadius' | 'borderBottomLeftRadius' | 'borderTopLeftRadius'>>;
|
|
44
|
+
/** Задает функцию, которая вызывается при нажатии на контрол. */
|
|
45
|
+
onClick?(event: React.MouseEvent<HTMLElement>): void;
|
|
46
|
+
/**
|
|
47
|
+
* Событие изменения значения `value` в поле.
|
|
48
|
+
* Во процессе ввода значение частично нормализуется по сегментам, например `1` => `01`.
|
|
49
|
+
* При потере фокуса возвращает полностью нормализованное значение в формате `HH:mm[:ss]`.
|
|
50
|
+
*/
|
|
51
|
+
onValueChange?(value: string): void;
|
|
52
|
+
/** Событие потери фокуса. */
|
|
53
|
+
onBlur?(event: React.FocusEvent<HTMLElement>): void;
|
|
54
|
+
/** Событие получения фокуса. */
|
|
55
|
+
onFocus?(event: React.FocusEvent<HTMLElement>): void;
|
|
56
|
+
/** Событие нажатия клавиши. */
|
|
57
|
+
onKeyDown?(event: React.KeyboardEvent<HTMLElement>): void;
|
|
58
|
+
/** Событие вставки из буфера. */
|
|
59
|
+
onPaste?(event: React.ClipboardEvent<HTMLElement>): void;
|
|
60
|
+
}
|
|
61
|
+
export interface TimePickerRef {
|
|
62
|
+
/** Устанавливает фокус на поле ввода. */
|
|
63
|
+
focus(): void;
|
|
64
|
+
/** Снимает фокус с поля ввода. */
|
|
65
|
+
blur(): void;
|
|
66
|
+
/** Закрывает выпадающее меню. */
|
|
67
|
+
close(): void;
|
|
68
|
+
/** Запускает анимацию blink у поля ввода времени. */
|
|
69
|
+
blink(): void;
|
|
70
|
+
/** Возвращает корневой DOM-узел компонента. */
|
|
71
|
+
getRootNode(): HTMLElement | null;
|
|
72
|
+
}
|
|
73
|
+
export type TimePicker = TimePickerRef;
|
|
74
|
+
/** Поле с временем помогает пользователю быстро и удобно указать время в правильном формате.
|
|
75
|
+
* В поле можно ввести время с клавиатуры, либо выбрать из выпадающего списка с помощью мыши (нужно активировать, см. примеры с пропом `items`).
|
|
76
|
+
*/
|
|
77
|
+
export declare const TimePicker: import("../../lib/forwardRefAndName.js").ReactUIComponentWithRef<TimePickerRef, TimePickerProps> & Record<never, never> & {
|
|
78
|
+
validate: (value: import("../../typings/utility-types.js").Nullable<string>, options?: import("./helpers/validateTimePicker.js").TimePickerValidationOptions) => boolean;
|
|
79
|
+
};
|