@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,21 +0,0 @@
|
|
|
1
|
-
import { ChangeDetails } from '../../core/change-details.js';
|
|
2
|
-
import type { TailDetails, AppendTail } from '../../core/tail-details.js';
|
|
3
|
-
import { MaskedPattern } from '../pattern.js';
|
|
4
|
-
export type ChunksTailState = Pick<ChunksTailDetails, 'from' | 'stop' | 'blockIndex'> & {
|
|
5
|
-
chunks: Array<TailDetails['state']>;
|
|
6
|
-
};
|
|
7
|
-
export declare class ChunksTailDetails implements TailDetails {
|
|
8
|
-
chunks: TailDetails[];
|
|
9
|
-
from: number;
|
|
10
|
-
stop?: number;
|
|
11
|
-
/** */
|
|
12
|
-
blockIndex?: number;
|
|
13
|
-
constructor(chunks?: TailDetails[], from?: number);
|
|
14
|
-
toString(): string;
|
|
15
|
-
extend(tailChunk: string | TailDetails): void;
|
|
16
|
-
appendTo(masked: AppendTail | MaskedPattern): ChangeDetails;
|
|
17
|
-
get state(): ChunksTailState;
|
|
18
|
-
set state(state: ChunksTailState);
|
|
19
|
-
unshift(beforePos?: number): string;
|
|
20
|
-
shift(): string;
|
|
21
|
-
}
|
|
@@ -1,180 +0,0 @@
|
|
|
1
|
-
var __rest = (this && this.__rest) || function (s, e) {
|
|
2
|
-
var t = {};
|
|
3
|
-
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
|
|
4
|
-
t[p] = s[p];
|
|
5
|
-
if (s != null && typeof Object.getOwnPropertySymbols === "function")
|
|
6
|
-
for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
|
|
7
|
-
if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
|
|
8
|
-
t[p[i]] = s[p[i]];
|
|
9
|
-
}
|
|
10
|
-
return t;
|
|
11
|
-
};
|
|
12
|
-
import { ChangeDetails } from '../../core/change-details.js';
|
|
13
|
-
import { ContinuousTailDetails } from '../../core/continuous-tail-details.js';
|
|
14
|
-
import { isString } from '../../core/utils.js';
|
|
15
|
-
import { MaskedPattern } from '../pattern.js';
|
|
16
|
-
var ChunksTailDetails = /** @class */ (function () {
|
|
17
|
-
function ChunksTailDetails(chunks, from) {
|
|
18
|
-
if (chunks === void 0) { chunks = []; }
|
|
19
|
-
if (from === void 0) { from = 0; }
|
|
20
|
-
this.chunks = chunks;
|
|
21
|
-
this.from = from;
|
|
22
|
-
}
|
|
23
|
-
ChunksTailDetails.prototype.toString = function () {
|
|
24
|
-
return this.chunks.map(String).join('');
|
|
25
|
-
};
|
|
26
|
-
ChunksTailDetails.prototype.extend = function (tailChunk) {
|
|
27
|
-
if (!String(tailChunk)) {
|
|
28
|
-
return;
|
|
29
|
-
}
|
|
30
|
-
// eslint-disable-next-line no-param-reassign
|
|
31
|
-
tailChunk = (isString(tailChunk) ? new ContinuousTailDetails(String(tailChunk)) : tailChunk);
|
|
32
|
-
var lastChunk = this.chunks[this.chunks.length - 1];
|
|
33
|
-
var extendLast = lastChunk &&
|
|
34
|
-
// if stops are same or tail has no stop
|
|
35
|
-
(lastChunk.stop === tailChunk.stop || tailChunk.stop == null) &&
|
|
36
|
-
// if tail chunk goes just after last chunk
|
|
37
|
-
tailChunk.from === lastChunk.from + lastChunk.toString().length;
|
|
38
|
-
if (tailChunk instanceof ContinuousTailDetails) {
|
|
39
|
-
// check the ability to extend previous chunk
|
|
40
|
-
if (extendLast) {
|
|
41
|
-
// extend previous chunk
|
|
42
|
-
lastChunk.extend(tailChunk.toString());
|
|
43
|
-
}
|
|
44
|
-
else {
|
|
45
|
-
// append new chunk
|
|
46
|
-
this.chunks.push(tailChunk);
|
|
47
|
-
}
|
|
48
|
-
}
|
|
49
|
-
else if (tailChunk instanceof ChunksTailDetails) {
|
|
50
|
-
if (tailChunk.stop == null) {
|
|
51
|
-
// unwrap floating chunks to parent, keeping `from` pos
|
|
52
|
-
var firstTailChunk = void 0;
|
|
53
|
-
while (tailChunk.chunks.length && tailChunk.chunks[0].stop == null) {
|
|
54
|
-
firstTailChunk = tailChunk.chunks.shift(); // not possible to be `undefined` because length was checked above
|
|
55
|
-
firstTailChunk.from += tailChunk.from;
|
|
56
|
-
this.extend(firstTailChunk);
|
|
57
|
-
}
|
|
58
|
-
}
|
|
59
|
-
// if tail chunk still has value
|
|
60
|
-
if (tailChunk.toString()) {
|
|
61
|
-
// if chunks contains stops, then popup stop to container
|
|
62
|
-
tailChunk.stop = tailChunk.blockIndex;
|
|
63
|
-
this.chunks.push(tailChunk);
|
|
64
|
-
}
|
|
65
|
-
}
|
|
66
|
-
};
|
|
67
|
-
ChunksTailDetails.prototype.appendTo = function (masked) {
|
|
68
|
-
if (!(masked instanceof MaskedPattern)) {
|
|
69
|
-
var tail = new ContinuousTailDetails(this.toString());
|
|
70
|
-
return tail.appendTo(masked);
|
|
71
|
-
}
|
|
72
|
-
var details = new ChangeDetails();
|
|
73
|
-
for (var ci = 0; ci < this.chunks.length; ++ci) {
|
|
74
|
-
var chunk = this.chunks[ci];
|
|
75
|
-
var lastBlockIter = masked._mapPosToBlock(masked.displayValue.length);
|
|
76
|
-
var stop_1 = chunk.stop;
|
|
77
|
-
var chunkBlock = void 0;
|
|
78
|
-
if (stop_1 != null &&
|
|
79
|
-
// if block not found or stop is behind lastBlock
|
|
80
|
-
(!lastBlockIter || lastBlockIter.index <= stop_1)) {
|
|
81
|
-
if (chunk instanceof ChunksTailDetails ||
|
|
82
|
-
// for continuous block also check if stop is exist
|
|
83
|
-
masked._stops.indexOf(stop_1) >= 0) {
|
|
84
|
-
details.aggregate(masked._appendPlaceholder(stop_1));
|
|
85
|
-
}
|
|
86
|
-
chunkBlock = chunk instanceof ChunksTailDetails && masked._blocks[stop_1];
|
|
87
|
-
}
|
|
88
|
-
if (chunkBlock) {
|
|
89
|
-
var tailDetails = chunkBlock.appendTail(chunk);
|
|
90
|
-
details.aggregate(tailDetails);
|
|
91
|
-
// get not inserted chars
|
|
92
|
-
var remainChars = chunk.toString().slice(tailDetails.rawInserted.length);
|
|
93
|
-
if (remainChars) {
|
|
94
|
-
details.aggregate(masked.append(remainChars, { tail: true }));
|
|
95
|
-
}
|
|
96
|
-
}
|
|
97
|
-
else {
|
|
98
|
-
details.aggregate(masked.append(chunk.toString(), { tail: true }));
|
|
99
|
-
}
|
|
100
|
-
}
|
|
101
|
-
return details;
|
|
102
|
-
};
|
|
103
|
-
Object.defineProperty(ChunksTailDetails.prototype, "state", {
|
|
104
|
-
get: function () {
|
|
105
|
-
return {
|
|
106
|
-
chunks: this.chunks.map(function (c) { return c.state; }),
|
|
107
|
-
from: this.from,
|
|
108
|
-
stop: this.stop,
|
|
109
|
-
blockIndex: this.blockIndex,
|
|
110
|
-
};
|
|
111
|
-
},
|
|
112
|
-
set: function (state) {
|
|
113
|
-
var chunks = state.chunks, props = __rest(state, ["chunks"]);
|
|
114
|
-
Object.assign(this, props);
|
|
115
|
-
this.chunks = chunks.map(function (cstate) {
|
|
116
|
-
var chunk = 'chunks' in cstate ? new ChunksTailDetails() : new ContinuousTailDetails();
|
|
117
|
-
chunk.state = cstate;
|
|
118
|
-
return chunk;
|
|
119
|
-
});
|
|
120
|
-
},
|
|
121
|
-
enumerable: false,
|
|
122
|
-
configurable: true
|
|
123
|
-
});
|
|
124
|
-
ChunksTailDetails.prototype.unshift = function (beforePos) {
|
|
125
|
-
if (!this.chunks.length || (beforePos != null && this.from >= beforePos)) {
|
|
126
|
-
return '';
|
|
127
|
-
}
|
|
128
|
-
var chunkShiftPos = beforePos != null ? beforePos - this.from : beforePos;
|
|
129
|
-
var ci = 0;
|
|
130
|
-
while (ci < this.chunks.length) {
|
|
131
|
-
var chunk = this.chunks[ci];
|
|
132
|
-
var shiftChar = chunk.unshift(chunkShiftPos);
|
|
133
|
-
if (chunk.toString()) {
|
|
134
|
-
// chunk still contains value
|
|
135
|
-
// but not shifted - means no more available chars to shift
|
|
136
|
-
if (!shiftChar) {
|
|
137
|
-
break;
|
|
138
|
-
}
|
|
139
|
-
++ci;
|
|
140
|
-
}
|
|
141
|
-
else {
|
|
142
|
-
// clean if chunk has no value
|
|
143
|
-
this.chunks.splice(ci, 1);
|
|
144
|
-
}
|
|
145
|
-
if (shiftChar) {
|
|
146
|
-
return shiftChar;
|
|
147
|
-
}
|
|
148
|
-
}
|
|
149
|
-
return '';
|
|
150
|
-
};
|
|
151
|
-
ChunksTailDetails.prototype.shift = function () {
|
|
152
|
-
if (!this.chunks.length) {
|
|
153
|
-
return '';
|
|
154
|
-
}
|
|
155
|
-
var ci = this.chunks.length - 1;
|
|
156
|
-
while (ci >= 0) {
|
|
157
|
-
var chunk = this.chunks[ci];
|
|
158
|
-
var shiftChar = chunk.shift();
|
|
159
|
-
if (chunk.toString()) {
|
|
160
|
-
// chunk still contains value
|
|
161
|
-
// but not shifted - means no more available chars to shift
|
|
162
|
-
if (!shiftChar) {
|
|
163
|
-
break;
|
|
164
|
-
}
|
|
165
|
-
--ci;
|
|
166
|
-
}
|
|
167
|
-
else {
|
|
168
|
-
// clean if chunk has no value
|
|
169
|
-
this.chunks.splice(ci, 1);
|
|
170
|
-
}
|
|
171
|
-
if (shiftChar) {
|
|
172
|
-
return shiftChar;
|
|
173
|
-
}
|
|
174
|
-
}
|
|
175
|
-
return '';
|
|
176
|
-
};
|
|
177
|
-
return ChunksTailDetails;
|
|
178
|
-
}());
|
|
179
|
-
export { ChunksTailDetails };
|
|
180
|
-
//# sourceMappingURL=chunk-tail-details.js.map
|
package/components/MaskedInputV2/react-imask/imask/masked/patterns/chunk-tail-details.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"chunk-tail-details.js","sourceRoot":"","sources":["chunk-tail-details.ts"],"names":[],"mappings":"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","sourcesContent":["import { ChangeDetails } from '../../core/change-details.js';\nimport { ContinuousTailDetails } from '../../core/continuous-tail-details.js';\n/* eslint-disable eqeqeq */\nimport type { TailDetails, AppendTail } from '../../core/tail-details.js';\nimport { isString } from '../../core/utils.js';\nimport { MaskedPattern } from '../pattern.js';\n\nexport type ChunksTailState = Pick<ChunksTailDetails, 'from' | 'stop' | 'blockIndex'> & {\n chunks: Array<TailDetails['state']>;\n};\n\nexport class ChunksTailDetails implements TailDetails {\n chunks!: TailDetails[];\n from!: number;\n stop?: number;\n /** */\n blockIndex?: number;\n\n constructor(chunks: TailDetails[] = [], from: number = 0) {\n this.chunks = chunks;\n this.from = from;\n }\n\n toString(): string {\n return this.chunks.map(String).join('');\n }\n\n extend(tailChunk: string | TailDetails): void {\n if (!String(tailChunk)) {\n return;\n }\n // eslint-disable-next-line no-param-reassign\n tailChunk = (isString(tailChunk) ? new ContinuousTailDetails(String(tailChunk)) : tailChunk) as TailDetails;\n\n const lastChunk = this.chunks[this.chunks.length - 1];\n const extendLast =\n lastChunk &&\n // if stops are same or tail has no stop\n (lastChunk.stop === tailChunk.stop || tailChunk.stop == null) &&\n // if tail chunk goes just after last chunk\n tailChunk.from === lastChunk.from + lastChunk.toString().length;\n\n if (tailChunk instanceof ContinuousTailDetails) {\n // check the ability to extend previous chunk\n if (extendLast) {\n // extend previous chunk\n lastChunk.extend(tailChunk.toString());\n } else {\n // append new chunk\n this.chunks.push(tailChunk);\n }\n } else if (tailChunk instanceof ChunksTailDetails) {\n if (tailChunk.stop == null) {\n // unwrap floating chunks to parent, keeping `from` pos\n let firstTailChunk;\n while (tailChunk.chunks.length && tailChunk.chunks[0].stop == null) {\n firstTailChunk = tailChunk.chunks.shift() as TailDetails; // not possible to be `undefined` because length was checked above\n firstTailChunk.from += tailChunk.from;\n this.extend(firstTailChunk);\n }\n }\n\n // if tail chunk still has value\n if (tailChunk.toString()) {\n // if chunks contains stops, then popup stop to container\n tailChunk.stop = tailChunk.blockIndex;\n this.chunks.push(tailChunk);\n }\n }\n }\n\n appendTo(masked: AppendTail | MaskedPattern): ChangeDetails {\n if (!(masked instanceof MaskedPattern)) {\n const tail = new ContinuousTailDetails(this.toString());\n return tail.appendTo(masked);\n }\n\n const details = new ChangeDetails();\n\n for (let ci = 0; ci < this.chunks.length; ++ci) {\n const chunk = this.chunks[ci];\n\n const lastBlockIter = masked._mapPosToBlock(masked.displayValue.length);\n const stop = chunk.stop;\n let chunkBlock;\n if (\n stop != null &&\n // if block not found or stop is behind lastBlock\n (!lastBlockIter || lastBlockIter.index <= stop)\n ) {\n if (\n chunk instanceof ChunksTailDetails ||\n // for continuous block also check if stop is exist\n masked._stops.indexOf(stop) >= 0\n ) {\n details.aggregate(masked._appendPlaceholder(stop));\n }\n chunkBlock = chunk instanceof ChunksTailDetails && masked._blocks[stop];\n }\n\n if (chunkBlock) {\n const tailDetails = chunkBlock.appendTail(chunk);\n details.aggregate(tailDetails);\n\n // get not inserted chars\n const remainChars = chunk.toString().slice(tailDetails.rawInserted.length);\n if (remainChars) {\n details.aggregate(masked.append(remainChars, { tail: true }));\n }\n } else {\n details.aggregate(masked.append(chunk.toString(), { tail: true }));\n }\n }\n\n return details;\n }\n\n get state(): ChunksTailState {\n return {\n chunks: this.chunks.map((c) => c.state),\n from: this.from,\n stop: this.stop,\n blockIndex: this.blockIndex,\n };\n }\n\n set state(state: ChunksTailState) {\n const { chunks, ...props } = state;\n Object.assign(this, props);\n this.chunks = chunks.map((cstate) => {\n const chunk = 'chunks' in cstate ? new ChunksTailDetails() : new ContinuousTailDetails();\n chunk.state = cstate;\n return chunk;\n });\n }\n\n unshift(beforePos?: number): string {\n if (!this.chunks.length || (beforePos != null && this.from >= beforePos)) {\n return '';\n }\n\n const chunkShiftPos = beforePos != null ? beforePos - this.from : beforePos;\n let ci = 0;\n while (ci < this.chunks.length) {\n const chunk = this.chunks[ci];\n const shiftChar = chunk.unshift(chunkShiftPos);\n\n if (chunk.toString()) {\n // chunk still contains value\n // but not shifted - means no more available chars to shift\n if (!shiftChar) {\n break;\n }\n ++ci;\n } else {\n // clean if chunk has no value\n this.chunks.splice(ci, 1);\n }\n\n if (shiftChar) {\n return shiftChar;\n }\n }\n\n return '';\n }\n\n shift(): string {\n if (!this.chunks.length) {\n return '';\n }\n\n let ci = this.chunks.length - 1;\n while (ci >= 0) {\n const chunk = this.chunks[ci];\n const shiftChar = chunk.shift();\n\n if (chunk.toString()) {\n // chunk still contains value\n // but not shifted - means no more available chars to shift\n if (!shiftChar) {\n break;\n }\n --ci;\n } else {\n // clean if chunk has no value\n this.chunks.splice(ci, 1);\n }\n\n if (shiftChar) {\n return shiftChar;\n }\n }\n\n return '';\n }\n}\n"]}
|
|
@@ -1,31 +0,0 @@
|
|
|
1
|
-
import type { MaskedPattern } from '../pattern.js';
|
|
2
|
-
import type { PatternBlock } from './block.js';
|
|
3
|
-
interface PatternCursorState {
|
|
4
|
-
offset: number;
|
|
5
|
-
index: number;
|
|
6
|
-
ok: boolean;
|
|
7
|
-
}
|
|
8
|
-
export declare class PatternCursor<Value> {
|
|
9
|
-
masked: MaskedPattern<Value>;
|
|
10
|
-
offset: number;
|
|
11
|
-
index: number;
|
|
12
|
-
ok: boolean;
|
|
13
|
-
_log: PatternCursorState[];
|
|
14
|
-
constructor(masked: MaskedPattern<Value>, pos: number);
|
|
15
|
-
get block(): PatternBlock;
|
|
16
|
-
get pos(): number;
|
|
17
|
-
get state(): PatternCursorState;
|
|
18
|
-
set state(s: PatternCursorState);
|
|
19
|
-
pushState(): void;
|
|
20
|
-
popState(): PatternCursorState | undefined;
|
|
21
|
-
bindBlock(): void;
|
|
22
|
-
_pushLeft(fn: () => boolean | undefined): boolean;
|
|
23
|
-
_pushRight(fn: () => boolean | undefined): boolean;
|
|
24
|
-
pushLeftBeforeFilled(): boolean;
|
|
25
|
-
pushLeftBeforeInput(): boolean;
|
|
26
|
-
pushLeftBeforeRequired(): boolean;
|
|
27
|
-
pushRightBeforeFilled(): boolean;
|
|
28
|
-
pushRightBeforeInput(): boolean;
|
|
29
|
-
pushRightBeforeRequired(): boolean;
|
|
30
|
-
}
|
|
31
|
-
export {};
|
|
@@ -1,163 +0,0 @@
|
|
|
1
|
-
import { DIRECTION } from '../../core/utils.js';
|
|
2
|
-
var PatternCursor = /** @class */ (function () {
|
|
3
|
-
function PatternCursor(masked, pos) {
|
|
4
|
-
this.masked = masked;
|
|
5
|
-
this._log = [];
|
|
6
|
-
var _a = masked._mapPosToBlock(pos) ||
|
|
7
|
-
(pos < 0
|
|
8
|
-
? // first
|
|
9
|
-
{ index: 0, offset: 0 }
|
|
10
|
-
: // last
|
|
11
|
-
{ index: this.masked._blocks.length, offset: 0 }), offset = _a.offset, index = _a.index;
|
|
12
|
-
this.offset = offset;
|
|
13
|
-
this.index = index;
|
|
14
|
-
this.ok = false;
|
|
15
|
-
}
|
|
16
|
-
Object.defineProperty(PatternCursor.prototype, "block", {
|
|
17
|
-
get: function () {
|
|
18
|
-
return this.masked._blocks[this.index];
|
|
19
|
-
},
|
|
20
|
-
enumerable: false,
|
|
21
|
-
configurable: true
|
|
22
|
-
});
|
|
23
|
-
Object.defineProperty(PatternCursor.prototype, "pos", {
|
|
24
|
-
get: function () {
|
|
25
|
-
return this.masked._blockStartPos(this.index) + this.offset;
|
|
26
|
-
},
|
|
27
|
-
enumerable: false,
|
|
28
|
-
configurable: true
|
|
29
|
-
});
|
|
30
|
-
Object.defineProperty(PatternCursor.prototype, "state", {
|
|
31
|
-
get: function () {
|
|
32
|
-
return { index: this.index, offset: this.offset, ok: this.ok };
|
|
33
|
-
},
|
|
34
|
-
set: function (s) {
|
|
35
|
-
Object.assign(this, s);
|
|
36
|
-
},
|
|
37
|
-
enumerable: false,
|
|
38
|
-
configurable: true
|
|
39
|
-
});
|
|
40
|
-
PatternCursor.prototype.pushState = function () {
|
|
41
|
-
this._log.push(this.state);
|
|
42
|
-
};
|
|
43
|
-
PatternCursor.prototype.popState = function () {
|
|
44
|
-
var s = this._log.pop();
|
|
45
|
-
if (s) {
|
|
46
|
-
this.state = s;
|
|
47
|
-
}
|
|
48
|
-
return s;
|
|
49
|
-
};
|
|
50
|
-
PatternCursor.prototype.bindBlock = function () {
|
|
51
|
-
var _a;
|
|
52
|
-
if (this.block) {
|
|
53
|
-
return;
|
|
54
|
-
}
|
|
55
|
-
if (this.index < 0) {
|
|
56
|
-
this.index = 0;
|
|
57
|
-
this.offset = 0;
|
|
58
|
-
}
|
|
59
|
-
if (this.index >= this.masked._blocks.length) {
|
|
60
|
-
this.index = this.masked._blocks.length - 1;
|
|
61
|
-
var lastBlock = this.masked._blocks[this.masked._blocks.length - 1];
|
|
62
|
-
this.offset = (_a = lastBlock === null || lastBlock === void 0 ? void 0 : lastBlock.displayValue.length) !== null && _a !== void 0 ? _a : 0;
|
|
63
|
-
}
|
|
64
|
-
};
|
|
65
|
-
PatternCursor.prototype._pushLeft = function (fn) {
|
|
66
|
-
var _a;
|
|
67
|
-
this.pushState();
|
|
68
|
-
for (this.bindBlock(); this.index >= 0; --this.index, this.offset = ((_a = this.block) === null || _a === void 0 ? void 0 : _a.displayValue.length) || 0) {
|
|
69
|
-
if (fn()) {
|
|
70
|
-
return (this.ok = true);
|
|
71
|
-
}
|
|
72
|
-
}
|
|
73
|
-
return (this.ok = false);
|
|
74
|
-
};
|
|
75
|
-
PatternCursor.prototype._pushRight = function (fn) {
|
|
76
|
-
this.pushState();
|
|
77
|
-
for (this.bindBlock(); this.index < this.masked._blocks.length; ++this.index, this.offset = 0) {
|
|
78
|
-
if (fn()) {
|
|
79
|
-
return (this.ok = true);
|
|
80
|
-
}
|
|
81
|
-
}
|
|
82
|
-
return (this.ok = false);
|
|
83
|
-
};
|
|
84
|
-
PatternCursor.prototype.pushLeftBeforeFilled = function () {
|
|
85
|
-
var _this = this;
|
|
86
|
-
return this._pushLeft(function () {
|
|
87
|
-
if (_this.block.isFixed || !_this.block.value) {
|
|
88
|
-
return;
|
|
89
|
-
}
|
|
90
|
-
_this.offset = _this.block.nearestInputPos(_this.offset, DIRECTION.FORCE_LEFT);
|
|
91
|
-
if (_this.offset !== 0) {
|
|
92
|
-
return true;
|
|
93
|
-
}
|
|
94
|
-
return;
|
|
95
|
-
});
|
|
96
|
-
};
|
|
97
|
-
PatternCursor.prototype.pushLeftBeforeInput = function () {
|
|
98
|
-
var _this = this;
|
|
99
|
-
// cases:
|
|
100
|
-
// filled input: 00|
|
|
101
|
-
// optional empty input: 00[]|
|
|
102
|
-
// nested block: XX<[]>|
|
|
103
|
-
return this._pushLeft(function () {
|
|
104
|
-
if (_this.block.isFixed) {
|
|
105
|
-
return;
|
|
106
|
-
}
|
|
107
|
-
_this.offset = _this.block.nearestInputPos(_this.offset, DIRECTION.LEFT);
|
|
108
|
-
return true;
|
|
109
|
-
});
|
|
110
|
-
};
|
|
111
|
-
PatternCursor.prototype.pushLeftBeforeRequired = function () {
|
|
112
|
-
var _this = this;
|
|
113
|
-
return this._pushLeft(function () {
|
|
114
|
-
if (_this.block.isFixed || (_this.block.isOptional && !_this.block.value)) {
|
|
115
|
-
return;
|
|
116
|
-
}
|
|
117
|
-
_this.offset = _this.block.nearestInputPos(_this.offset, DIRECTION.LEFT);
|
|
118
|
-
return true;
|
|
119
|
-
});
|
|
120
|
-
};
|
|
121
|
-
PatternCursor.prototype.pushRightBeforeFilled = function () {
|
|
122
|
-
var _this = this;
|
|
123
|
-
return this._pushRight(function () {
|
|
124
|
-
if (_this.block.isFixed || !_this.block.value) {
|
|
125
|
-
return;
|
|
126
|
-
}
|
|
127
|
-
_this.offset = _this.block.nearestInputPos(_this.offset, DIRECTION.FORCE_RIGHT);
|
|
128
|
-
if (_this.offset !== _this.block.value.length) {
|
|
129
|
-
return true;
|
|
130
|
-
}
|
|
131
|
-
return;
|
|
132
|
-
});
|
|
133
|
-
};
|
|
134
|
-
PatternCursor.prototype.pushRightBeforeInput = function () {
|
|
135
|
-
var _this = this;
|
|
136
|
-
return this._pushRight(function () {
|
|
137
|
-
if (_this.block.isFixed) {
|
|
138
|
-
return;
|
|
139
|
-
}
|
|
140
|
-
// const o = this.offset;
|
|
141
|
-
_this.offset = _this.block.nearestInputPos(_this.offset, DIRECTION.NONE);
|
|
142
|
-
// HACK cases like (STILL DOES NOT WORK FOR NESTED)
|
|
143
|
-
// aa|X
|
|
144
|
-
// aa<X|[]>X_ - this will not work
|
|
145
|
-
// if (o && o === this.offset && this.block instanceof PatternInputDefinition) continue;
|
|
146
|
-
return true;
|
|
147
|
-
});
|
|
148
|
-
};
|
|
149
|
-
PatternCursor.prototype.pushRightBeforeRequired = function () {
|
|
150
|
-
var _this = this;
|
|
151
|
-
return this._pushRight(function () {
|
|
152
|
-
if (_this.block.isFixed || (_this.block.isOptional && !_this.block.value)) {
|
|
153
|
-
return;
|
|
154
|
-
}
|
|
155
|
-
// TODO check |[*]XX_
|
|
156
|
-
_this.offset = _this.block.nearestInputPos(_this.offset, DIRECTION.NONE);
|
|
157
|
-
return true;
|
|
158
|
-
});
|
|
159
|
-
};
|
|
160
|
-
return PatternCursor;
|
|
161
|
-
}());
|
|
162
|
-
export { PatternCursor };
|
|
163
|
-
//# sourceMappingURL=cursor.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"cursor.js","sourceRoot":"","sources":["cursor.ts"],"names":[],"mappings":"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","sourcesContent":["import { DIRECTION } from '../../core/utils.js';\nimport type { MaskedPattern } from '../pattern.js';\nimport type { PatternBlock } from './block.js';\n\ninterface PatternCursorState {\n offset: number;\n index: number;\n ok: boolean;\n}\n\nexport class PatternCursor<Value> {\n masked!: MaskedPattern<Value>;\n offset!: number;\n index!: number;\n ok!: boolean;\n _log!: PatternCursorState[];\n\n constructor(masked: MaskedPattern<Value>, pos: number) {\n this.masked = masked;\n this._log = [];\n\n const { offset, index } =\n masked._mapPosToBlock(pos) ||\n (pos < 0\n ? // first\n { index: 0, offset: 0 }\n : // last\n { index: this.masked._blocks.length, offset: 0 });\n this.offset = offset;\n this.index = index;\n this.ok = false;\n }\n\n get block(): PatternBlock {\n return this.masked._blocks[this.index];\n }\n\n get pos(): number {\n return this.masked._blockStartPos(this.index) + this.offset;\n }\n\n get state(): PatternCursorState {\n return { index: this.index, offset: this.offset, ok: this.ok };\n }\n\n set state(s: PatternCursorState) {\n Object.assign(this, s);\n }\n\n pushState(): void {\n this._log.push(this.state);\n }\n\n popState(): PatternCursorState | undefined {\n const s = this._log.pop();\n if (s) {\n this.state = s;\n }\n return s;\n }\n\n bindBlock(): void {\n if (this.block) {\n return;\n }\n if (this.index < 0) {\n this.index = 0;\n this.offset = 0;\n }\n if (this.index >= this.masked._blocks.length) {\n this.index = this.masked._blocks.length - 1;\n const lastBlock = this.masked._blocks[this.masked._blocks.length - 1];\n this.offset = lastBlock?.displayValue.length ?? 0;\n }\n }\n\n _pushLeft(fn: () => boolean | undefined): boolean {\n this.pushState();\n for (this.bindBlock(); this.index >= 0; --this.index, this.offset = this.block?.displayValue.length || 0) {\n if (fn()) {\n return (this.ok = true);\n }\n }\n\n return (this.ok = false);\n }\n\n _pushRight(fn: () => boolean | undefined): boolean {\n this.pushState();\n for (this.bindBlock(); this.index < this.masked._blocks.length; ++this.index, this.offset = 0) {\n if (fn()) {\n return (this.ok = true);\n }\n }\n\n return (this.ok = false);\n }\n\n pushLeftBeforeFilled(): boolean {\n return this._pushLeft(() => {\n if (this.block.isFixed || !this.block.value) {\n return;\n }\n\n this.offset = this.block.nearestInputPos(this.offset, DIRECTION.FORCE_LEFT);\n if (this.offset !== 0) {\n return true;\n }\n return;\n });\n }\n\n pushLeftBeforeInput(): boolean {\n // cases:\n // filled input: 00|\n // optional empty input: 00[]|\n // nested block: XX<[]>|\n return this._pushLeft(() => {\n if (this.block.isFixed) {\n return;\n }\n\n this.offset = this.block.nearestInputPos(this.offset, DIRECTION.LEFT);\n return true;\n });\n }\n\n pushLeftBeforeRequired(): boolean {\n return this._pushLeft(() => {\n if (this.block.isFixed || (this.block.isOptional && !this.block.value)) {\n return;\n }\n\n this.offset = this.block.nearestInputPos(this.offset, DIRECTION.LEFT);\n return true;\n });\n }\n\n pushRightBeforeFilled(): boolean {\n return this._pushRight(() => {\n if (this.block.isFixed || !this.block.value) {\n return;\n }\n\n this.offset = this.block.nearestInputPos(this.offset, DIRECTION.FORCE_RIGHT);\n if (this.offset !== this.block.value.length) {\n return true;\n }\n return;\n });\n }\n\n pushRightBeforeInput(): boolean {\n return this._pushRight(() => {\n if (this.block.isFixed) {\n return;\n }\n\n // const o = this.offset;\n this.offset = this.block.nearestInputPos(this.offset, DIRECTION.NONE);\n // HACK cases like (STILL DOES NOT WORK FOR NESTED)\n // aa|X\n // aa<X|[]>X_ - this will not work\n // if (o && o === this.offset && this.block instanceof PatternInputDefinition) continue;\n return true;\n });\n }\n\n pushRightBeforeRequired(): boolean {\n return this._pushRight(() => {\n if (this.block.isFixed || (this.block.isOptional && !this.block.value)) {\n return;\n }\n\n // TODO check |[*]XX_\n this.offset = this.block.nearestInputPos(this.offset, DIRECTION.NONE);\n return true;\n });\n }\n}\n"]}
|
|
@@ -1,42 +0,0 @@
|
|
|
1
|
-
import { ChangeDetails } from '../../core/change-details.js';
|
|
2
|
-
import { type TailDetails } from '../../core/tail-details.js';
|
|
3
|
-
import { type Direction } from '../../core/utils.js';
|
|
4
|
-
import { type ExtractFlags, type AppendFlags, type MaskedState } from '../base.js';
|
|
5
|
-
import type { PatternBlock } from './block.js';
|
|
6
|
-
export type PatternFixedDefinitionOptions = Pick<PatternFixedDefinition, 'char' | 'isUnmasking' | 'eager'>;
|
|
7
|
-
export declare class PatternFixedDefinition implements PatternBlock {
|
|
8
|
-
/** */
|
|
9
|
-
_value: string;
|
|
10
|
-
/** */
|
|
11
|
-
char: string;
|
|
12
|
-
/** */
|
|
13
|
-
isUnmasking?: boolean;
|
|
14
|
-
/** */
|
|
15
|
-
eager: boolean | 'remove' | 'append' | undefined;
|
|
16
|
-
/** */
|
|
17
|
-
_isRawInput?: boolean;
|
|
18
|
-
/** */
|
|
19
|
-
isFixed: boolean;
|
|
20
|
-
constructor(opts: PatternFixedDefinitionOptions);
|
|
21
|
-
get value(): string;
|
|
22
|
-
get unmaskedValue(): string;
|
|
23
|
-
get rawInputValue(): string;
|
|
24
|
-
get displayValue(): string;
|
|
25
|
-
reset(): void;
|
|
26
|
-
remove(fromPos?: number, toPos?: number): ChangeDetails;
|
|
27
|
-
nearestInputPos(cursorPos: number, direction?: Direction): number;
|
|
28
|
-
totalInputPositions(fromPos?: number, toPos?: number): number;
|
|
29
|
-
extractInput(fromPos?: number, toPos?: number, flags?: ExtractFlags): string;
|
|
30
|
-
get isComplete(): boolean;
|
|
31
|
-
get isFilled(): boolean;
|
|
32
|
-
_appendChar(ch: string, flags?: AppendFlags): ChangeDetails;
|
|
33
|
-
_appendEager(): ChangeDetails;
|
|
34
|
-
_appendPlaceholder(): ChangeDetails;
|
|
35
|
-
extractTail(): TailDetails;
|
|
36
|
-
appendTail(tail: string | TailDetails): ChangeDetails;
|
|
37
|
-
append(str: string, flags?: AppendFlags, tail?: TailDetails): ChangeDetails;
|
|
38
|
-
doCommit(): void;
|
|
39
|
-
get state(): MaskedState;
|
|
40
|
-
set state(state: MaskedState);
|
|
41
|
-
pad(): ChangeDetails;
|
|
42
|
-
}
|
|
@@ -1,158 +0,0 @@
|
|
|
1
|
-
import { ChangeDetails } from '../../core/change-details.js';
|
|
2
|
-
import { ContinuousTailDetails } from '../../core/continuous-tail-details.js';
|
|
3
|
-
import { DIRECTION, isString } from '../../core/utils.js';
|
|
4
|
-
var PatternFixedDefinition = /** @class */ (function () {
|
|
5
|
-
function PatternFixedDefinition(opts) {
|
|
6
|
-
Object.assign(this, opts);
|
|
7
|
-
this._value = '';
|
|
8
|
-
this.isFixed = true;
|
|
9
|
-
}
|
|
10
|
-
Object.defineProperty(PatternFixedDefinition.prototype, "value", {
|
|
11
|
-
get: function () {
|
|
12
|
-
return this._value;
|
|
13
|
-
},
|
|
14
|
-
enumerable: false,
|
|
15
|
-
configurable: true
|
|
16
|
-
});
|
|
17
|
-
Object.defineProperty(PatternFixedDefinition.prototype, "unmaskedValue", {
|
|
18
|
-
get: function () {
|
|
19
|
-
return this.isUnmasking ? this.value : '';
|
|
20
|
-
},
|
|
21
|
-
enumerable: false,
|
|
22
|
-
configurable: true
|
|
23
|
-
});
|
|
24
|
-
Object.defineProperty(PatternFixedDefinition.prototype, "rawInputValue", {
|
|
25
|
-
get: function () {
|
|
26
|
-
return this._isRawInput ? this.value : '';
|
|
27
|
-
},
|
|
28
|
-
enumerable: false,
|
|
29
|
-
configurable: true
|
|
30
|
-
});
|
|
31
|
-
Object.defineProperty(PatternFixedDefinition.prototype, "displayValue", {
|
|
32
|
-
get: function () {
|
|
33
|
-
return this.value;
|
|
34
|
-
},
|
|
35
|
-
enumerable: false,
|
|
36
|
-
configurable: true
|
|
37
|
-
});
|
|
38
|
-
PatternFixedDefinition.prototype.reset = function () {
|
|
39
|
-
this._isRawInput = false;
|
|
40
|
-
this._value = '';
|
|
41
|
-
};
|
|
42
|
-
PatternFixedDefinition.prototype.remove = function (fromPos, toPos) {
|
|
43
|
-
if (fromPos === void 0) { fromPos = 0; }
|
|
44
|
-
if (toPos === void 0) { toPos = this._value.length; }
|
|
45
|
-
this._value = this._value.slice(0, fromPos) + this._value.slice(toPos);
|
|
46
|
-
if (!this._value) {
|
|
47
|
-
this._isRawInput = false;
|
|
48
|
-
}
|
|
49
|
-
return new ChangeDetails();
|
|
50
|
-
};
|
|
51
|
-
PatternFixedDefinition.prototype.nearestInputPos = function (cursorPos, direction) {
|
|
52
|
-
if (direction === void 0) { direction = DIRECTION.NONE; }
|
|
53
|
-
var minPos = 0;
|
|
54
|
-
var maxPos = this._value.length;
|
|
55
|
-
switch (direction) {
|
|
56
|
-
case DIRECTION.LEFT:
|
|
57
|
-
case DIRECTION.FORCE_LEFT:
|
|
58
|
-
return minPos;
|
|
59
|
-
case DIRECTION.NONE:
|
|
60
|
-
case DIRECTION.RIGHT:
|
|
61
|
-
case DIRECTION.FORCE_RIGHT:
|
|
62
|
-
default:
|
|
63
|
-
return maxPos;
|
|
64
|
-
}
|
|
65
|
-
};
|
|
66
|
-
PatternFixedDefinition.prototype.totalInputPositions = function (fromPos, toPos) {
|
|
67
|
-
if (fromPos === void 0) { fromPos = 0; }
|
|
68
|
-
if (toPos === void 0) { toPos = this._value.length; }
|
|
69
|
-
return this._isRawInput ? toPos - fromPos : 0;
|
|
70
|
-
};
|
|
71
|
-
PatternFixedDefinition.prototype.extractInput = function (fromPos, toPos, flags) {
|
|
72
|
-
if (fromPos === void 0) { fromPos = 0; }
|
|
73
|
-
if (toPos === void 0) { toPos = this._value.length; }
|
|
74
|
-
if (flags === void 0) { flags = {}; }
|
|
75
|
-
return (flags.raw && this._isRawInput && this._value.slice(fromPos, toPos)) || '';
|
|
76
|
-
};
|
|
77
|
-
Object.defineProperty(PatternFixedDefinition.prototype, "isComplete", {
|
|
78
|
-
get: function () {
|
|
79
|
-
return true;
|
|
80
|
-
},
|
|
81
|
-
enumerable: false,
|
|
82
|
-
configurable: true
|
|
83
|
-
});
|
|
84
|
-
Object.defineProperty(PatternFixedDefinition.prototype, "isFilled", {
|
|
85
|
-
get: function () {
|
|
86
|
-
return Boolean(this._value);
|
|
87
|
-
},
|
|
88
|
-
enumerable: false,
|
|
89
|
-
configurable: true
|
|
90
|
-
});
|
|
91
|
-
PatternFixedDefinition.prototype._appendChar = function (ch, flags) {
|
|
92
|
-
if (flags === void 0) { flags = {}; }
|
|
93
|
-
if (this.isFilled) {
|
|
94
|
-
return new ChangeDetails();
|
|
95
|
-
}
|
|
96
|
-
var appendEager = this.eager === true || this.eager === 'append';
|
|
97
|
-
var appended = this.char === ch;
|
|
98
|
-
var isResolved = appended && (this.isUnmasking || flags.input || flags.raw) && (!flags.raw || !appendEager) && !flags.tail;
|
|
99
|
-
var details = new ChangeDetails({
|
|
100
|
-
inserted: this.char,
|
|
101
|
-
rawInserted: isResolved ? this.char : '',
|
|
102
|
-
});
|
|
103
|
-
this._value = this.char;
|
|
104
|
-
this._isRawInput = isResolved && flags.raw;
|
|
105
|
-
return details;
|
|
106
|
-
};
|
|
107
|
-
PatternFixedDefinition.prototype._appendEager = function () {
|
|
108
|
-
return this._appendChar(this.char, { tail: true });
|
|
109
|
-
};
|
|
110
|
-
PatternFixedDefinition.prototype._appendPlaceholder = function () {
|
|
111
|
-
var details = new ChangeDetails();
|
|
112
|
-
if (this.isFilled) {
|
|
113
|
-
return details;
|
|
114
|
-
}
|
|
115
|
-
// eslint-disable-next-line no-multi-assign
|
|
116
|
-
this._value = details.inserted = this.char;
|
|
117
|
-
return details;
|
|
118
|
-
};
|
|
119
|
-
PatternFixedDefinition.prototype.extractTail = function () {
|
|
120
|
-
return new ContinuousTailDetails('');
|
|
121
|
-
};
|
|
122
|
-
PatternFixedDefinition.prototype.appendTail = function (tail) {
|
|
123
|
-
if (isString(tail)) {
|
|
124
|
-
// eslint-disable-next-line no-param-reassign
|
|
125
|
-
tail = new ContinuousTailDetails(String(tail));
|
|
126
|
-
}
|
|
127
|
-
return tail.appendTo(this);
|
|
128
|
-
};
|
|
129
|
-
PatternFixedDefinition.prototype.append = function (str, flags, tail) {
|
|
130
|
-
var details = this._appendChar(str[0], flags);
|
|
131
|
-
// eslint-disable-next-line eqeqeq
|
|
132
|
-
if (tail != null) {
|
|
133
|
-
details.tailShift += this.appendTail(tail).tailShift;
|
|
134
|
-
}
|
|
135
|
-
return details;
|
|
136
|
-
};
|
|
137
|
-
PatternFixedDefinition.prototype.doCommit = function () { };
|
|
138
|
-
Object.defineProperty(PatternFixedDefinition.prototype, "state", {
|
|
139
|
-
get: function () {
|
|
140
|
-
return {
|
|
141
|
-
_value: this._value,
|
|
142
|
-
_rawInputValue: this.rawInputValue,
|
|
143
|
-
};
|
|
144
|
-
},
|
|
145
|
-
set: function (state) {
|
|
146
|
-
this._value = state._value;
|
|
147
|
-
this._isRawInput = Boolean(state._rawInputValue);
|
|
148
|
-
},
|
|
149
|
-
enumerable: false,
|
|
150
|
-
configurable: true
|
|
151
|
-
});
|
|
152
|
-
PatternFixedDefinition.prototype.pad = function () {
|
|
153
|
-
return this._appendPlaceholder();
|
|
154
|
-
};
|
|
155
|
-
return PatternFixedDefinition;
|
|
156
|
-
}());
|
|
157
|
-
export { PatternFixedDefinition };
|
|
158
|
-
//# sourceMappingURL=fixed-definition.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"fixed-definition.js","sourceRoot":"","sources":["fixed-definition.ts"],"names":[],"mappings":"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","sourcesContent":["import { ChangeDetails } from '../../core/change-details.js';\nimport { ContinuousTailDetails } from '../../core/continuous-tail-details.js';\nimport { type TailDetails } from '../../core/tail-details.js';\nimport { DIRECTION, type Direction, isString } from '../../core/utils.js';\nimport { type ExtractFlags, type AppendFlags, type MaskedState } from '../base.js';\nimport type { PatternBlock } from './block.js';\n\nexport type PatternFixedDefinitionOptions = Pick<PatternFixedDefinition, 'char' | 'isUnmasking' | 'eager'>;\n\nexport class PatternFixedDefinition implements PatternBlock {\n /** */\n _value!: string;\n /** */\n char!: string;\n /** */\n isUnmasking?: boolean;\n /** */\n eager!: boolean | 'remove' | 'append' | undefined;\n /** */\n _isRawInput?: boolean;\n /** */\n isFixed!: boolean;\n\n constructor(opts: PatternFixedDefinitionOptions) {\n Object.assign(this, opts);\n this._value = '';\n this.isFixed = true;\n }\n\n get value(): string {\n return this._value;\n }\n\n get unmaskedValue(): string {\n return this.isUnmasking ? this.value : '';\n }\n\n get rawInputValue(): string {\n return this._isRawInput ? this.value : '';\n }\n\n get displayValue(): string {\n return this.value;\n }\n\n reset(): void {\n this._isRawInput = false;\n this._value = '';\n }\n\n remove(fromPos: number = 0, toPos: number = this._value.length): ChangeDetails {\n this._value = this._value.slice(0, fromPos) + this._value.slice(toPos);\n if (!this._value) {\n this._isRawInput = false;\n }\n\n return new ChangeDetails();\n }\n\n nearestInputPos(cursorPos: number, direction: Direction = DIRECTION.NONE): number {\n const minPos = 0;\n const maxPos = this._value.length;\n\n switch (direction) {\n case DIRECTION.LEFT:\n case DIRECTION.FORCE_LEFT:\n return minPos;\n case DIRECTION.NONE:\n case DIRECTION.RIGHT:\n case DIRECTION.FORCE_RIGHT:\n default:\n return maxPos;\n }\n }\n\n totalInputPositions(fromPos: number = 0, toPos: number = this._value.length): number {\n return this._isRawInput ? toPos - fromPos : 0;\n }\n\n extractInput(fromPos: number = 0, toPos: number = this._value.length, flags: ExtractFlags = {}): string {\n return (flags.raw && this._isRawInput && this._value.slice(fromPos, toPos)) || '';\n }\n\n get isComplete(): boolean {\n return true;\n }\n\n get isFilled(): boolean {\n return Boolean(this._value);\n }\n\n _appendChar(ch: string, flags: AppendFlags = {}): ChangeDetails {\n if (this.isFilled) {\n return new ChangeDetails();\n }\n const appendEager = this.eager === true || this.eager === 'append';\n\n const appended = this.char === ch;\n const isResolved =\n appended && (this.isUnmasking || flags.input || flags.raw) && (!flags.raw || !appendEager) && !flags.tail;\n const details = new ChangeDetails({\n inserted: this.char,\n rawInserted: isResolved ? this.char : '',\n });\n this._value = this.char;\n this._isRawInput = isResolved && flags.raw;\n\n return details;\n }\n\n _appendEager(): ChangeDetails {\n return this._appendChar(this.char, { tail: true });\n }\n\n _appendPlaceholder(): ChangeDetails {\n const details = new ChangeDetails();\n if (this.isFilled) {\n return details;\n }\n\n // eslint-disable-next-line no-multi-assign\n this._value = details.inserted = this.char;\n return details;\n }\n\n extractTail(): TailDetails {\n return new ContinuousTailDetails('');\n }\n\n appendTail(tail: string | TailDetails): ChangeDetails {\n if (isString(tail)) {\n // eslint-disable-next-line no-param-reassign\n tail = new ContinuousTailDetails(String(tail));\n }\n\n return (tail as TailDetails).appendTo(this);\n }\n\n append(str: string, flags?: AppendFlags, tail?: TailDetails): ChangeDetails {\n const details = this._appendChar(str[0], flags);\n\n // eslint-disable-next-line eqeqeq\n if (tail != null) {\n details.tailShift += this.appendTail(tail).tailShift;\n }\n\n return details;\n }\n\n doCommit(): void {}\n\n get state(): MaskedState {\n return {\n _value: this._value,\n _rawInputValue: this.rawInputValue,\n };\n }\n\n set state(state: MaskedState) {\n this._value = state._value;\n this._isRawInput = Boolean(state._rawInputValue);\n }\n\n pad(): ChangeDetails {\n return this._appendPlaceholder();\n }\n}\n"]}
|