@skbkontur/react-ui 6.1.4-ff219.0 → 6.1.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (233) hide show
  1. package/CHANGELOG.md +23 -0
  2. package/components/Autocomplete/Autocomplete.js +2 -3
  3. package/components/Autocomplete/Autocomplete.js.map +1 -1
  4. package/components/Button/Button.classes.d.ts +8 -0
  5. package/components/Button/Button.classes.js +10 -0
  6. package/components/Button/Button.classes.js.map +1 -0
  7. package/components/Button/Button.mixins.js +1 -1
  8. package/components/Button/Button.mixins.js.map +1 -1
  9. package/components/Button/Button.styles.d.ts +2 -8
  10. package/components/Button/Button.styles.js +3 -9
  11. package/components/Button/Button.styles.js.map +1 -1
  12. package/components/Calendar/Calendar.d.ts +2 -8
  13. package/components/Calendar/Calendar.js +2 -7
  14. package/components/Calendar/Calendar.js.map +1 -1
  15. package/components/Calendar/CalendarDay.js +1 -1
  16. package/components/Calendar/CalendarDay.js.map +1 -1
  17. package/components/Calendar/MonthView.js +1 -1
  18. package/components/Calendar/MonthView.js.map +1 -1
  19. package/components/Calendar/MonthViewModel.js +1 -2
  20. package/components/Calendar/MonthViewModel.js.map +1 -1
  21. package/components/Calendar/tids.d.ts +7 -0
  22. package/components/Calendar/tids.js +8 -0
  23. package/components/Calendar/tids.js.map +1 -0
  24. package/components/FxInput/FxInput.js +2 -2
  25. package/components/FxInput/FxInput.js.map +1 -1
  26. package/components/MaskedInput/MaskedInput.d.ts +0 -2
  27. package/components/MaskedInput/MaskedInput.js +0 -6
  28. package/components/MaskedInput/MaskedInput.js.map +1 -1
  29. package/components/MenuItem/MenuItem.mixins.d.ts +1 -0
  30. package/components/MenuItem/MenuItem.mixins.js +6 -1
  31. package/components/MenuItem/MenuItem.mixins.js.map +1 -1
  32. package/components/MenuItem/MenuItem.styles.d.ts +2 -1
  33. package/components/MenuItem/MenuItem.styles.js +2 -7
  34. package/components/MenuItem/MenuItem.styles.js.map +1 -1
  35. package/components/MiniModal/MiniModal.d.ts +2 -7
  36. package/components/MiniModal/MiniModal.js +2 -7
  37. package/components/MiniModal/MiniModal.js.map +1 -1
  38. package/components/MiniModal/MiniModalBody.js +1 -1
  39. package/components/MiniModal/MiniModalBody.js.map +1 -1
  40. package/components/MiniModal/MiniModalFooter.js +1 -1
  41. package/components/MiniModal/MiniModalFooter.js.map +1 -1
  42. package/components/MiniModal/MiniModalHeader.js +1 -1
  43. package/components/MiniModal/MiniModalHeader.js.map +1 -1
  44. package/components/MiniModal/MiniModalIndent.js +1 -1
  45. package/components/MiniModal/MiniModalIndent.js.map +1 -1
  46. package/components/MiniModal/tids.d.ts +7 -0
  47. package/components/MiniModal/tids.js +8 -0
  48. package/components/MiniModal/tids.js.map +1 -0
  49. package/components/Modal/Modal.constants.d.ts +9 -0
  50. package/components/Modal/Modal.constants.js +10 -0
  51. package/components/Modal/Modal.constants.js.map +1 -0
  52. package/components/Modal/Modal.d.ts +2 -10
  53. package/components/Modal/Modal.js +2 -9
  54. package/components/Modal/Modal.js.map +1 -1
  55. package/components/Modal/ModalBody.js +1 -1
  56. package/components/Modal/ModalBody.js.map +1 -1
  57. package/components/Modal/ModalClose.js +1 -1
  58. package/components/Modal/ModalClose.js.map +1 -1
  59. package/components/Toggle/Toggle.classes.d.ts +8 -0
  60. package/components/Toggle/Toggle.classes.js +10 -0
  61. package/components/Toggle/Toggle.classes.js.map +1 -0
  62. package/components/Toggle/Toggle.mixins.js +1 -1
  63. package/components/Toggle/Toggle.mixins.js.map +1 -1
  64. package/components/Toggle/Toggle.styles.d.ts +2 -8
  65. package/components/Toggle/Toggle.styles.js +3 -9
  66. package/components/Toggle/Toggle.styles.js.map +1 -1
  67. package/components/TokenInput/TokenInput.d.ts +7 -3
  68. package/components/TokenInput/TokenInput.js +0 -1
  69. package/components/TokenInput/TokenInput.js.map +1 -1
  70. package/index.d.ts +0 -1
  71. package/index.js +0 -1
  72. package/index.js.map +1 -1
  73. package/internal/CustomComboBox/ComboBoxView.js +2 -2
  74. package/internal/CustomComboBox/ComboBoxView.js.map +1 -1
  75. package/internal/Popup/PopupPin.js +8 -6
  76. package/internal/Popup/PopupPin.js.map +1 -1
  77. package/internal/themes/BasicTheme.d.ts +162 -0
  78. package/internal/themes/BasicTheme.js +162 -0
  79. package/internal/themes/BasicTheme.js.map +1 -1
  80. package/lib/date/InternalDateValidator.js +1 -2
  81. package/lib/date/InternalDateValidator.js.map +1 -1
  82. package/lib/events/keyListener.js +6 -0
  83. package/lib/events/keyListener.js.map +1 -1
  84. package/lib/events/keyboard/KeyboardEventCodes.d.ts +0 -2
  85. package/lib/events/keyboard/KeyboardEventCodes.js +0 -2
  86. package/lib/events/keyboard/KeyboardEventCodes.js.map +1 -1
  87. package/lib/events/keyboard/KeyboardMapKeys.js +0 -2
  88. package/lib/events/keyboard/KeyboardMapKeys.js.map +1 -1
  89. package/lib/events/keyboard/identifiers.d.ts +0 -2
  90. package/lib/events/keyboard/identifiers.js +0 -6
  91. package/lib/events/keyboard/identifiers.js.map +1 -1
  92. package/lib/featureFlagsContext/ReactUIFeatureFlagsContext.d.ts +0 -2
  93. package/lib/featureFlagsContext/ReactUIFeatureFlagsContext.js +0 -1
  94. package/lib/featureFlagsContext/ReactUIFeatureFlagsContext.js.map +1 -1
  95. package/package.json +1 -4
  96. package/components/MaskedInputV2/MaskedInputV2.d.ts +0 -57
  97. package/components/MaskedInputV2/MaskedInputV2.helpers.d.ts +0 -9
  98. package/components/MaskedInputV2/MaskedInputV2.helpers.js +0 -17
  99. package/components/MaskedInputV2/MaskedInputV2.helpers.js.map +0 -1
  100. package/components/MaskedInputV2/MaskedInputV2.js +0 -234
  101. package/components/MaskedInputV2/MaskedInputV2.js.map +0 -1
  102. package/components/MaskedInputV2/MaskedInputV2.styles.d.ts +0 -7
  103. package/components/MaskedInputV2/MaskedInputV2.styles.js +0 -19
  104. package/components/MaskedInputV2/MaskedInputV2.styles.js.map +0 -1
  105. package/components/MaskedInputV2/index.d.ts +0 -1
  106. package/components/MaskedInputV2/index.js +0 -2
  107. package/components/MaskedInputV2/index.js.map +0 -1
  108. package/components/MaskedInputV2/internal/MaskOverlay.d.ts +0 -19
  109. package/components/MaskedInputV2/internal/MaskOverlay.js +0 -54
  110. package/components/MaskedInputV2/internal/MaskOverlay.js.map +0 -1
  111. package/components/MaskedInputV2/internal/MaskedCore.d.ts +0 -8
  112. package/components/MaskedInputV2/internal/MaskedCore.js +0 -101
  113. package/components/MaskedInputV2/internal/MaskedCore.js.map +0 -1
  114. package/components/MaskedInputV2/internal/MaskedCore.types.d.ts +0 -30
  115. package/components/MaskedInputV2/internal/MaskedCore.types.js +0 -2
  116. package/components/MaskedInputV2/internal/MaskedCore.types.js.map +0 -1
  117. package/components/MaskedInputV2/internal/MaskedInternal.styles.d.ts +0 -15
  118. package/components/MaskedInputV2/internal/MaskedInternal.styles.js +0 -34
  119. package/components/MaskedInputV2/internal/MaskedInternal.styles.js.map +0 -1
  120. package/components/MaskedInputV2/internal/buildSlotMap.d.ts +0 -11
  121. package/components/MaskedInputV2/internal/buildSlotMap.js +0 -37
  122. package/components/MaskedInputV2/internal/buildSlotMap.js.map +0 -1
  123. package/components/MaskedInputV2/internal/extractRaw.d.ts +0 -10
  124. package/components/MaskedInputV2/internal/extractRaw.js +0 -16
  125. package/components/MaskedInputV2/internal/extractRaw.js.map +0 -1
  126. package/components/MaskedInputV2/internal/findNearestRawLeft.d.ts +0 -10
  127. package/components/MaskedInputV2/internal/findNearestRawLeft.js +0 -18
  128. package/components/MaskedInputV2/internal/findNearestRawLeft.js.map +0 -1
  129. package/components/MaskedInputV2/internal/helpers.d.ts +0 -5
  130. package/components/MaskedInputV2/internal/helpers.js +0 -6
  131. package/components/MaskedInputV2/internal/helpers.js.map +0 -1
  132. package/components/MaskedInputV2/internal/maskedCoreClipboard.d.ts +0 -25
  133. package/components/MaskedInputV2/internal/maskedCoreClipboard.js +0 -30
  134. package/components/MaskedInputV2/internal/maskedCoreClipboard.js.map +0 -1
  135. package/components/MaskedInputV2/internal/maskedCoreDeletion.d.ts +0 -28
  136. package/components/MaskedInputV2/internal/maskedCoreDeletion.js +0 -70
  137. package/components/MaskedInputV2/internal/maskedCoreDeletion.js.map +0 -1
  138. package/components/MaskedInputV2/internal/maskedCoreInputChange.d.ts +0 -35
  139. package/components/MaskedInputV2/internal/maskedCoreInputChange.js +0 -31
  140. package/components/MaskedInputV2/internal/maskedCoreInputChange.js.map +0 -1
  141. package/components/MaskedInputV2/internal/maskedCoreNavigation.d.ts +0 -13
  142. package/components/MaskedInputV2/internal/maskedCoreNavigation.js +0 -79
  143. package/components/MaskedInputV2/internal/maskedCoreNavigation.js.map +0 -1
  144. package/components/MaskedInputV2/internal/stripMaskChars.d.ts +0 -11
  145. package/components/MaskedInputV2/internal/stripMaskChars.js +0 -20
  146. package/components/MaskedInputV2/internal/stripMaskChars.js.map +0 -1
  147. package/components/MaskedInputV2/internal/types.d.ts +0 -74
  148. package/components/MaskedInputV2/internal/types.js +0 -2
  149. package/components/MaskedInputV2/internal/types.js.map +0 -1
  150. package/components/MaskedInputV2/internal/useMaskEngine.d.ts +0 -42
  151. package/components/MaskedInputV2/internal/useMaskEngine.js +0 -82
  152. package/components/MaskedInputV2/internal/useMaskEngine.js.map +0 -1
  153. package/components/MaskedInputV2/internal/useMaskedCoreHandlers.d.ts +0 -28
  154. package/components/MaskedInputV2/internal/useMaskedCoreHandlers.js +0 -190
  155. package/components/MaskedInputV2/internal/useMaskedCoreHandlers.js.map +0 -1
  156. package/components/MaskedInputV2/react-imask/imask/controls/html-input-mask-element.d.ts +0 -16
  157. package/components/MaskedInputV2/react-imask/imask/controls/html-input-mask-element.js +0 -59
  158. package/components/MaskedInputV2/react-imask/imask/controls/html-input-mask-element.js.map +0 -1
  159. package/components/MaskedInputV2/react-imask/imask/controls/html-mask-element.d.ts +0 -20
  160. package/components/MaskedInputV2/react-imask/imask/controls/html-mask-element.js +0 -106
  161. package/components/MaskedInputV2/react-imask/imask/controls/html-mask-element.js.map +0 -1
  162. package/components/MaskedInputV2/react-imask/imask/controls/input-history.d.ts +0 -17
  163. package/components/MaskedInputV2/react-imask/imask/controls/input-history.js +0 -49
  164. package/components/MaskedInputV2/react-imask/imask/controls/input-history.js.map +0 -1
  165. package/components/MaskedInputV2/react-imask/imask/controls/input.d.ts +0 -95
  166. package/components/MaskedInputV2/react-imask/imask/controls/input.js +0 -420
  167. package/components/MaskedInputV2/react-imask/imask/controls/input.js.map +0 -1
  168. package/components/MaskedInputV2/react-imask/imask/controls/mask-element.d.ts +0 -30
  169. package/components/MaskedInputV2/react-imask/imask/controls/mask-element.js +0 -59
  170. package/components/MaskedInputV2/react-imask/imask/controls/mask-element.js.map +0 -1
  171. package/components/MaskedInputV2/react-imask/imask/core/action-details.d.ts +0 -30
  172. package/components/MaskedInputV2/react-imask/imask/core/action-details.js +0 -100
  173. package/components/MaskedInputV2/react-imask/imask/core/action-details.js.map +0 -1
  174. package/components/MaskedInputV2/react-imask/imask/core/change-details.d.ts +0 -20
  175. package/components/MaskedInputV2/react-imask/imask/core/change-details.js +0 -46
  176. package/components/MaskedInputV2/react-imask/imask/core/change-details.js.map +0 -1
  177. package/components/MaskedInputV2/react-imask/imask/core/continuous-tail-details.d.ts +0 -21
  178. package/components/MaskedInputV2/react-imask/imask/core/continuous-tail-details.js +0 -52
  179. package/components/MaskedInputV2/react-imask/imask/core/continuous-tail-details.js.map +0 -1
  180. package/components/MaskedInputV2/react-imask/imask/core/holder.d.ts +0 -34
  181. package/components/MaskedInputV2/react-imask/imask/core/holder.js +0 -38
  182. package/components/MaskedInputV2/react-imask/imask/core/holder.js.map +0 -1
  183. package/components/MaskedInputV2/react-imask/imask/core/tail-details.d.ts +0 -20
  184. package/components/MaskedInputV2/react-imask/imask/core/tail-details.js +0 -2
  185. package/components/MaskedInputV2/react-imask/imask/core/tail-details.js.map +0 -1
  186. package/components/MaskedInputV2/react-imask/imask/core/utils.d.ts +0 -24
  187. package/components/MaskedInputV2/react-imask/imask/core/utils.js +0 -100
  188. package/components/MaskedInputV2/react-imask/imask/core/utils.js.map +0 -1
  189. package/components/MaskedInputV2/react-imask/imask/imask.d.ts +0 -5
  190. package/components/MaskedInputV2/react-imask/imask/imask.js +0 -7
  191. package/components/MaskedInputV2/react-imask/imask/imask.js.map +0 -1
  192. package/components/MaskedInputV2/react-imask/imask/index.d.ts +0 -17
  193. package/components/MaskedInputV2/react-imask/imask/index.js +0 -16
  194. package/components/MaskedInputV2/react-imask/imask/index.js.map +0 -1
  195. package/components/MaskedInputV2/react-imask/imask/masked/base.d.ts +0 -114
  196. package/components/MaskedInputV2/react-imask/imask/masked/base.js +0 -411
  197. package/components/MaskedInputV2/react-imask/imask/masked/base.js.map +0 -1
  198. package/components/MaskedInputV2/react-imask/imask/masked/factory.d.ts +0 -62
  199. package/components/MaskedInputV2/react-imask/imask/masked/factory.js +0 -96
  200. package/components/MaskedInputV2/react-imask/imask/masked/factory.js.map +0 -1
  201. package/components/MaskedInputV2/react-imask/imask/masked/pattern.d.ts +0 -101
  202. package/components/MaskedInputV2/react-imask/imask/masked/pattern.js +0 -543
  203. package/components/MaskedInputV2/react-imask/imask/masked/pattern.js.map +0 -1
  204. package/components/MaskedInputV2/react-imask/imask/masked/patterns/block.d.ts +0 -30
  205. package/components/MaskedInputV2/react-imask/imask/masked/patterns/block.js +0 -2
  206. package/components/MaskedInputV2/react-imask/imask/masked/patterns/block.js.map +0 -1
  207. package/components/MaskedInputV2/react-imask/imask/masked/patterns/chunk-tail-details.d.ts +0 -21
  208. package/components/MaskedInputV2/react-imask/imask/masked/patterns/chunk-tail-details.js +0 -180
  209. package/components/MaskedInputV2/react-imask/imask/masked/patterns/chunk-tail-details.js.map +0 -1
  210. package/components/MaskedInputV2/react-imask/imask/masked/patterns/cursor.d.ts +0 -31
  211. package/components/MaskedInputV2/react-imask/imask/masked/patterns/cursor.js +0 -163
  212. package/components/MaskedInputV2/react-imask/imask/masked/patterns/cursor.js.map +0 -1
  213. package/components/MaskedInputV2/react-imask/imask/masked/patterns/fixed-definition.d.ts +0 -42
  214. package/components/MaskedInputV2/react-imask/imask/masked/patterns/fixed-definition.js +0 -158
  215. package/components/MaskedInputV2/react-imask/imask/masked/patterns/fixed-definition.js.map +0 -1
  216. package/components/MaskedInputV2/react-imask/imask/masked/patterns/input-definition.d.ts +0 -56
  217. package/components/MaskedInputV2/react-imask/imask/masked/patterns/input-definition.js +0 -185
  218. package/components/MaskedInputV2/react-imask/imask/masked/patterns/input-definition.js.map +0 -1
  219. package/components/MaskedInputV2/react-imask/imask/masked/regexp.d.ts +0 -17
  220. package/components/MaskedInputV2/react-imask/imask/masked/regexp.js +0 -36
  221. package/components/MaskedInputV2/react-imask/imask/masked/regexp.js.map +0 -1
  222. package/components/MaskedInputV2/react-imask/index.d.ts +0 -3
  223. package/components/MaskedInputV2/react-imask/index.js +0 -4
  224. package/components/MaskedInputV2/react-imask/index.js.map +0 -1
  225. package/components/MaskedInputV2/react-imask/input.d.ts +0 -8
  226. package/components/MaskedInputV2/react-imask/input.js +0 -35
  227. package/components/MaskedInputV2/react-imask/input.js.map +0 -1
  228. package/components/MaskedInputV2/react-imask/mixin.d.ts +0 -31
  229. package/components/MaskedInputV2/react-imask/mixin.js +0 -246
  230. package/components/MaskedInputV2/react-imask/mixin.js.map +0 -1
  231. package/internal/FeaturedMaskedInput/FeaturedMaskedInput.d.ts +0 -4
  232. package/internal/FeaturedMaskedInput/FeaturedMaskedInput.js +0 -24
  233. package/internal/FeaturedMaskedInput/FeaturedMaskedInput.js.map +0 -1
@@ -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
@@ -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"]}