@skbkontur/react-ui 6.1.4-4e59f.0 → 6.1.4-6d143.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.
Files changed (294) hide show
  1. package/components/FxInput/FxInput.d.ts +1 -1
  2. package/components/FxInput/FxInput.js.map +1 -1
  3. package/components/Group/Group.js +2 -3
  4. package/components/Group/Group.js.map +1 -1
  5. package/components/Input/Input.d.ts +1 -1
  6. package/components/Input/Input.js.map +1 -1
  7. package/components/MaskedInput/MaskedInput.d.ts +3 -2
  8. package/components/MaskedInput/MaskedInput.js +10 -126
  9. package/components/MaskedInput/MaskedInput.js.map +1 -1
  10. package/components/MaskedInput/MaskedInputLegacy.d.ts +3 -0
  11. package/components/MaskedInput/MaskedInputLegacy.js +142 -0
  12. package/components/MaskedInput/MaskedInputLegacy.js.map +1 -0
  13. package/components/MaskedInputV2/MaskedInputV2.d.ts +58 -0
  14. package/components/MaskedInputV2/MaskedInputV2.helpers.d.ts +9 -0
  15. package/components/MaskedInputV2/MaskedInputV2.helpers.js +17 -0
  16. package/components/MaskedInputV2/MaskedInputV2.helpers.js.map +1 -0
  17. package/components/MaskedInputV2/MaskedInputV2.js +286 -0
  18. package/components/MaskedInputV2/MaskedInputV2.js.map +1 -0
  19. package/{internal/TimeInput/TimeInput.styles.d.ts → components/MaskedInputV2/MaskedInputV2.styles.d.ts} +4 -3
  20. package/components/MaskedInputV2/MaskedInputV2.styles.js +19 -0
  21. package/components/MaskedInputV2/MaskedInputV2.styles.js.map +1 -0
  22. package/components/MaskedInputV2/index.d.ts +1 -0
  23. package/components/MaskedInputV2/index.js +2 -0
  24. package/components/MaskedInputV2/index.js.map +1 -0
  25. package/components/MaskedInputV2/internal/MaskOverlay.d.ts +19 -0
  26. package/components/MaskedInputV2/internal/MaskOverlay.js +54 -0
  27. package/components/MaskedInputV2/internal/MaskOverlay.js.map +1 -0
  28. package/components/MaskedInputV2/internal/MaskedCore.d.ts +8 -0
  29. package/components/MaskedInputV2/internal/MaskedCore.js +126 -0
  30. package/components/MaskedInputV2/internal/MaskedCore.js.map +1 -0
  31. package/components/MaskedInputV2/internal/MaskedCore.types.d.ts +32 -0
  32. package/components/MaskedInputV2/internal/MaskedCore.types.js +2 -0
  33. package/components/MaskedInputV2/internal/MaskedCore.types.js.map +1 -0
  34. package/components/MaskedInputV2/internal/MaskedInternal.styles.d.ts +15 -0
  35. package/components/MaskedInputV2/internal/MaskedInternal.styles.js +34 -0
  36. package/components/MaskedInputV2/internal/MaskedInternal.styles.js.map +1 -0
  37. package/components/MaskedInputV2/internal/buildSlotMap.d.ts +11 -0
  38. package/components/MaskedInputV2/internal/buildSlotMap.js +37 -0
  39. package/components/MaskedInputV2/internal/buildSlotMap.js.map +1 -0
  40. package/components/MaskedInputV2/internal/computeMaskAlignPadding.d.ts +6 -0
  41. package/components/MaskedInputV2/internal/computeMaskAlignPadding.js +47 -0
  42. package/components/MaskedInputV2/internal/computeMaskAlignPadding.js.map +1 -0
  43. package/components/MaskedInputV2/internal/computePasteMaskedCursor.d.ts +3 -0
  44. package/components/MaskedInputV2/internal/computePasteMaskedCursor.js +11 -0
  45. package/components/MaskedInputV2/internal/computePasteMaskedCursor.js.map +1 -0
  46. package/components/MaskedInputV2/internal/extractRaw.d.ts +10 -0
  47. package/components/MaskedInputV2/internal/extractRaw.js +16 -0
  48. package/components/MaskedInputV2/internal/extractRaw.js.map +1 -0
  49. package/components/MaskedInputV2/internal/findNearestRawLeft.d.ts +10 -0
  50. package/components/MaskedInputV2/internal/findNearestRawLeft.js +18 -0
  51. package/components/MaskedInputV2/internal/findNearestRawLeft.js.map +1 -0
  52. package/components/MaskedInputV2/internal/helpers.d.ts +8 -0
  53. package/components/MaskedInputV2/internal/helpers.js +9 -0
  54. package/components/MaskedInputV2/internal/helpers.js.map +1 -0
  55. package/components/MaskedInputV2/internal/maskedCoreClipboard.d.ts +25 -0
  56. package/components/MaskedInputV2/internal/maskedCoreClipboard.js +30 -0
  57. package/components/MaskedInputV2/internal/maskedCoreClipboard.js.map +1 -0
  58. package/components/MaskedInputV2/internal/maskedCoreDeletion.d.ts +28 -0
  59. package/components/MaskedInputV2/internal/maskedCoreDeletion.js +70 -0
  60. package/components/MaskedInputV2/internal/maskedCoreDeletion.js.map +1 -0
  61. package/components/MaskedInputV2/internal/maskedCoreInputChange.d.ts +35 -0
  62. package/components/MaskedInputV2/internal/maskedCoreInputChange.js +31 -0
  63. package/components/MaskedInputV2/internal/maskedCoreInputChange.js.map +1 -0
  64. package/components/MaskedInputV2/internal/maskedCoreNavigation.d.ts +13 -0
  65. package/components/MaskedInputV2/internal/maskedCoreNavigation.js +79 -0
  66. package/components/MaskedInputV2/internal/maskedCoreNavigation.js.map +1 -0
  67. package/components/MaskedInputV2/internal/measureInputTextWidth.d.ts +2 -0
  68. package/components/MaskedInputV2/internal/measureInputTextWidth.js +30 -0
  69. package/components/MaskedInputV2/internal/measureInputTextWidth.js.map +1 -0
  70. package/components/MaskedInputV2/internal/setMaskInputSelectionRange.d.ts +2 -0
  71. package/components/MaskedInputV2/internal/setMaskInputSelectionRange.js +25 -0
  72. package/components/MaskedInputV2/internal/setMaskInputSelectionRange.js.map +1 -0
  73. package/components/MaskedInputV2/internal/showOverlay.d.ts +3 -0
  74. package/components/MaskedInputV2/internal/showOverlay.js +14 -0
  75. package/components/MaskedInputV2/internal/showOverlay.js.map +1 -0
  76. package/components/MaskedInputV2/internal/stripMaskChars.d.ts +11 -0
  77. package/components/MaskedInputV2/internal/stripMaskChars.js +20 -0
  78. package/components/MaskedInputV2/internal/stripMaskChars.js.map +1 -0
  79. package/components/MaskedInputV2/internal/types.d.ts +74 -0
  80. package/components/MaskedInputV2/internal/types.js.map +1 -0
  81. package/components/MaskedInputV2/internal/useInputOverflow.d.ts +4 -0
  82. package/components/MaskedInputV2/internal/useInputOverflow.js +30 -0
  83. package/components/MaskedInputV2/internal/useInputOverflow.js.map +1 -0
  84. package/components/MaskedInputV2/internal/useMaskAlignPadding.d.ts +2 -0
  85. package/components/MaskedInputV2/internal/useMaskAlignPadding.js +33 -0
  86. package/components/MaskedInputV2/internal/useMaskAlignPadding.js.map +1 -0
  87. package/components/MaskedInputV2/internal/useMaskEngine.d.ts +42 -0
  88. package/components/MaskedInputV2/internal/useMaskEngine.js +82 -0
  89. package/components/MaskedInputV2/internal/useMaskEngine.js.map +1 -0
  90. package/components/MaskedInputV2/internal/useMaskedCoreHandlers.d.ts +33 -0
  91. package/components/MaskedInputV2/internal/useMaskedCoreHandlers.js +244 -0
  92. package/components/MaskedInputV2/internal/useMaskedCoreHandlers.js.map +1 -0
  93. package/components/MaskedInputV2/react-imask/imask/controls/html-input-mask-element.d.ts +16 -0
  94. package/components/MaskedInputV2/react-imask/imask/controls/html-input-mask-element.js +59 -0
  95. package/components/MaskedInputV2/react-imask/imask/controls/html-input-mask-element.js.map +1 -0
  96. package/components/MaskedInputV2/react-imask/imask/controls/html-mask-element.d.ts +20 -0
  97. package/components/MaskedInputV2/react-imask/imask/controls/html-mask-element.js +106 -0
  98. package/components/MaskedInputV2/react-imask/imask/controls/html-mask-element.js.map +1 -0
  99. package/components/MaskedInputV2/react-imask/imask/controls/input-history.d.ts +17 -0
  100. package/components/MaskedInputV2/react-imask/imask/controls/input-history.js +49 -0
  101. package/components/MaskedInputV2/react-imask/imask/controls/input-history.js.map +1 -0
  102. package/components/MaskedInputV2/react-imask/imask/controls/input.d.ts +95 -0
  103. package/components/MaskedInputV2/react-imask/imask/controls/input.js +420 -0
  104. package/components/MaskedInputV2/react-imask/imask/controls/input.js.map +1 -0
  105. package/components/MaskedInputV2/react-imask/imask/controls/mask-element.d.ts +30 -0
  106. package/components/MaskedInputV2/react-imask/imask/controls/mask-element.js +59 -0
  107. package/components/MaskedInputV2/react-imask/imask/controls/mask-element.js.map +1 -0
  108. package/components/MaskedInputV2/react-imask/imask/core/action-details.d.ts +30 -0
  109. package/components/MaskedInputV2/react-imask/imask/core/action-details.js +100 -0
  110. package/components/MaskedInputV2/react-imask/imask/core/action-details.js.map +1 -0
  111. package/components/MaskedInputV2/react-imask/imask/core/change-details.d.ts +20 -0
  112. package/components/MaskedInputV2/react-imask/imask/core/change-details.js +46 -0
  113. package/components/MaskedInputV2/react-imask/imask/core/change-details.js.map +1 -0
  114. package/components/MaskedInputV2/react-imask/imask/core/continuous-tail-details.d.ts +21 -0
  115. package/components/MaskedInputV2/react-imask/imask/core/continuous-tail-details.js +52 -0
  116. package/components/MaskedInputV2/react-imask/imask/core/continuous-tail-details.js.map +1 -0
  117. package/components/MaskedInputV2/react-imask/imask/core/holder.d.ts +34 -0
  118. package/components/MaskedInputV2/react-imask/imask/core/holder.js +38 -0
  119. package/components/MaskedInputV2/react-imask/imask/core/holder.js.map +1 -0
  120. package/components/MaskedInputV2/react-imask/imask/core/tail-details.d.ts +20 -0
  121. package/components/MaskedInputV2/react-imask/imask/core/tail-details.js +2 -0
  122. package/components/MaskedInputV2/react-imask/imask/core/tail-details.js.map +1 -0
  123. package/components/MaskedInputV2/react-imask/imask/core/utils.d.ts +24 -0
  124. package/components/MaskedInputV2/react-imask/imask/core/utils.js +100 -0
  125. package/components/MaskedInputV2/react-imask/imask/core/utils.js.map +1 -0
  126. package/components/MaskedInputV2/react-imask/imask/imask.d.ts +5 -0
  127. package/components/MaskedInputV2/react-imask/imask/imask.js +7 -0
  128. package/components/MaskedInputV2/react-imask/imask/imask.js.map +1 -0
  129. package/components/MaskedInputV2/react-imask/imask/index.d.ts +17 -0
  130. package/components/MaskedInputV2/react-imask/imask/index.js +16 -0
  131. package/components/MaskedInputV2/react-imask/imask/index.js.map +1 -0
  132. package/components/MaskedInputV2/react-imask/imask/masked/base.d.ts +114 -0
  133. package/components/MaskedInputV2/react-imask/imask/masked/base.js +411 -0
  134. package/components/MaskedInputV2/react-imask/imask/masked/base.js.map +1 -0
  135. package/components/MaskedInputV2/react-imask/imask/masked/factory.d.ts +62 -0
  136. package/components/MaskedInputV2/react-imask/imask/masked/factory.js +96 -0
  137. package/components/MaskedInputV2/react-imask/imask/masked/factory.js.map +1 -0
  138. package/components/MaskedInputV2/react-imask/imask/masked/pattern.d.ts +101 -0
  139. package/components/MaskedInputV2/react-imask/imask/masked/pattern.js +543 -0
  140. package/components/MaskedInputV2/react-imask/imask/masked/pattern.js.map +1 -0
  141. package/components/MaskedInputV2/react-imask/imask/masked/patterns/block.d.ts +30 -0
  142. package/components/MaskedInputV2/react-imask/imask/masked/patterns/block.js +2 -0
  143. package/components/MaskedInputV2/react-imask/imask/masked/patterns/block.js.map +1 -0
  144. package/components/MaskedInputV2/react-imask/imask/masked/patterns/chunk-tail-details.d.ts +21 -0
  145. package/components/MaskedInputV2/react-imask/imask/masked/patterns/chunk-tail-details.js +180 -0
  146. package/components/MaskedInputV2/react-imask/imask/masked/patterns/chunk-tail-details.js.map +1 -0
  147. package/components/MaskedInputV2/react-imask/imask/masked/patterns/cursor.d.ts +31 -0
  148. package/components/MaskedInputV2/react-imask/imask/masked/patterns/cursor.js +163 -0
  149. package/components/MaskedInputV2/react-imask/imask/masked/patterns/cursor.js.map +1 -0
  150. package/components/MaskedInputV2/react-imask/imask/masked/patterns/fixed-definition.d.ts +42 -0
  151. package/components/MaskedInputV2/react-imask/imask/masked/patterns/fixed-definition.js +158 -0
  152. package/components/MaskedInputV2/react-imask/imask/masked/patterns/fixed-definition.js.map +1 -0
  153. package/components/MaskedInputV2/react-imask/imask/masked/patterns/input-definition.d.ts +56 -0
  154. package/components/MaskedInputV2/react-imask/imask/masked/patterns/input-definition.js +185 -0
  155. package/components/MaskedInputV2/react-imask/imask/masked/patterns/input-definition.js.map +1 -0
  156. package/components/MaskedInputV2/react-imask/imask/masked/regexp.d.ts +17 -0
  157. package/components/MaskedInputV2/react-imask/imask/masked/regexp.js +36 -0
  158. package/components/MaskedInputV2/react-imask/imask/masked/regexp.js.map +1 -0
  159. package/components/MaskedInputV2/react-imask/index.d.ts +3 -0
  160. package/components/MaskedInputV2/react-imask/index.js +4 -0
  161. package/components/MaskedInputV2/react-imask/index.js.map +1 -0
  162. package/components/MaskedInputV2/react-imask/input.d.ts +8 -0
  163. package/components/MaskedInputV2/react-imask/input.js +35 -0
  164. package/components/MaskedInputV2/react-imask/input.js.map +1 -0
  165. package/components/MaskedInputV2/react-imask/mixin.d.ts +31 -0
  166. package/components/MaskedInputV2/react-imask/mixin.js +246 -0
  167. package/components/MaskedInputV2/react-imask/mixin.js.map +1 -0
  168. package/components/TokenInput/TokenInput.d.ts +7 -3
  169. package/components/TokenInput/TokenInput.js +0 -1
  170. package/components/TokenInput/TokenInput.js.map +1 -1
  171. package/index.d.ts +0 -1
  172. package/index.js +0 -1
  173. package/index.js.map +1 -1
  174. package/internal/themes/BasicTheme.d.ts +0 -34
  175. package/internal/themes/BasicTheme.js +0 -96
  176. package/internal/themes/BasicTheme.js.map +1 -1
  177. package/lib/events/keyboard/KeyboardEventCodes.d.ts +2 -0
  178. package/lib/events/keyboard/KeyboardEventCodes.js +2 -0
  179. package/lib/events/keyboard/KeyboardEventCodes.js.map +1 -1
  180. package/lib/events/keyboard/KeyboardMapKeys.js +2 -0
  181. package/lib/events/keyboard/KeyboardMapKeys.js.map +1 -1
  182. package/lib/events/keyboard/identifiers.d.ts +2 -0
  183. package/lib/events/keyboard/identifiers.js +6 -0
  184. package/lib/events/keyboard/identifiers.js.map +1 -1
  185. package/lib/featureFlagsContext/ReactUIFeatureFlagsContext.d.ts +2 -0
  186. package/lib/featureFlagsContext/ReactUIFeatureFlagsContext.js +1 -0
  187. package/lib/featureFlagsContext/ReactUIFeatureFlagsContext.js.map +1 -1
  188. package/lib/locale/types.d.ts +0 -2
  189. package/lib/locale/types.js.map +1 -1
  190. package/lib/utils.d.ts +0 -2
  191. package/lib/utils.js +0 -1
  192. package/lib/utils.js.map +1 -1
  193. package/package.json +4 -9
  194. package/components/TimePicker/TimeClockIcon.d.ts +0 -3
  195. package/components/TimePicker/TimeClockIcon.js +0 -11
  196. package/components/TimePicker/TimeClockIcon.js.map +0 -1
  197. package/components/TimePicker/TimePicker.d.ts +0 -79
  198. package/components/TimePicker/TimePicker.js +0 -513
  199. package/components/TimePicker/TimePicker.js.map +0 -1
  200. package/components/TimePicker/TimePicker.styles.d.ts +0 -11
  201. package/components/TimePicker/TimePicker.styles.js +0 -36
  202. package/components/TimePicker/TimePicker.styles.js.map +0 -1
  203. package/components/TimePicker/TimePickerItems.d.ts +0 -17
  204. package/components/TimePicker/TimePickerItems.js +0 -80
  205. package/components/TimePicker/TimePickerItems.js.map +0 -1
  206. package/components/TimePicker/TimePickerMobilePopup.d.ts +0 -38
  207. package/components/TimePicker/TimePickerMobilePopup.js +0 -21
  208. package/components/TimePicker/TimePickerMobilePopup.js.map +0 -1
  209. package/components/TimePicker/TimePickerPopup.d.ts +0 -20
  210. package/components/TimePicker/TimePickerPopup.js +0 -18
  211. package/components/TimePicker/TimePickerPopup.js.map +0 -1
  212. package/components/TimePicker/helpers/TimePicker.constants.d.ts +0 -22
  213. package/components/TimePicker/helpers/TimePicker.constants.js +0 -31
  214. package/components/TimePicker/helpers/TimePicker.constants.js.map +0 -1
  215. package/components/TimePicker/helpers/TimePicker.editing.d.ts +0 -23
  216. package/components/TimePicker/helpers/TimePicker.editing.js +0 -101
  217. package/components/TimePicker/helpers/TimePicker.editing.js.map +0 -1
  218. package/components/TimePicker/helpers/TimePicker.layout.d.ts +0 -6
  219. package/components/TimePicker/helpers/TimePicker.layout.js +0 -49
  220. package/components/TimePicker/helpers/TimePicker.layout.js.map +0 -1
  221. package/components/TimePicker/helpers/TimePicker.selection.d.ts +0 -5
  222. package/components/TimePicker/helpers/TimePicker.selection.js +0 -23
  223. package/components/TimePicker/helpers/TimePicker.selection.js.map +0 -1
  224. package/components/TimePicker/helpers/TimePicker.shared.d.ts +0 -47
  225. package/components/TimePicker/helpers/TimePicker.shared.js +0 -70
  226. package/components/TimePicker/helpers/TimePicker.shared.js.map +0 -1
  227. package/components/TimePicker/helpers/TimePicker.value.d.ts +0 -30
  228. package/components/TimePicker/helpers/TimePicker.value.js +0 -96
  229. package/components/TimePicker/helpers/TimePicker.value.js.map +0 -1
  230. package/components/TimePicker/helpers/scrollSelectedItemIntoView.d.ts +0 -4
  231. package/components/TimePicker/helpers/scrollSelectedItemIntoView.js +0 -24
  232. package/components/TimePicker/helpers/scrollSelectedItemIntoView.js.map +0 -1
  233. package/components/TimePicker/helpers/validateTimePicker.d.ts +0 -8
  234. package/components/TimePicker/helpers/validateTimePicker.js +0 -16
  235. package/components/TimePicker/helpers/validateTimePicker.js.map +0 -1
  236. package/components/TimePicker/hooks/useTimePickerDropdown.d.ts +0 -17
  237. package/components/TimePicker/hooks/useTimePickerDropdown.js +0 -62
  238. package/components/TimePicker/hooks/useTimePickerDropdown.js.map +0 -1
  239. package/components/TimePicker/hooks/useTimePickerSelection.d.ts +0 -18
  240. package/components/TimePicker/hooks/useTimePickerSelection.js +0 -66
  241. package/components/TimePicker/hooks/useTimePickerSelection.js.map +0 -1
  242. package/components/TimePicker/hooks/useTimePickerValue.d.ts +0 -18
  243. package/components/TimePicker/hooks/useTimePickerValue.js +0 -59
  244. package/components/TimePicker/hooks/useTimePickerValue.js.map +0 -1
  245. package/components/TimePicker/index.d.ts +0 -2
  246. package/components/TimePicker/index.js +0 -2
  247. package/components/TimePicker/index.js.map +0 -1
  248. package/components/TimePicker/locale/index.d.ts +0 -4
  249. package/components/TimePicker/locale/index.js +0 -9
  250. package/components/TimePicker/locale/index.js.map +0 -1
  251. package/components/TimePicker/locale/locales/en.d.ts +0 -2
  252. package/components/TimePicker/locale/locales/en.js +0 -5
  253. package/components/TimePicker/locale/locales/en.js.map +0 -1
  254. package/components/TimePicker/locale/locales/ru.d.ts +0 -2
  255. package/components/TimePicker/locale/locales/ru.js +0 -5
  256. package/components/TimePicker/locale/locales/ru.js.map +0 -1
  257. package/components/TimePicker/locale/types.d.ts +0 -4
  258. package/components/TimePicker/locale/types.js.map +0 -1
  259. package/internal/NativeTimeInput/NativeTimeInput.d.ts +0 -16
  260. package/internal/NativeTimeInput/NativeTimeInput.js +0 -25
  261. package/internal/NativeTimeInput/NativeTimeInput.js.map +0 -1
  262. package/internal/NativeTimeInput/NativeTimeInput.styles.d.ts +0 -3
  263. package/internal/NativeTimeInput/NativeTimeInput.styles.js +0 -15
  264. package/internal/NativeTimeInput/NativeTimeInput.styles.js.map +0 -1
  265. package/internal/NativeTimeInput/NativeTimeInput.utils.d.ts +0 -7
  266. package/internal/NativeTimeInput/NativeTimeInput.utils.js +0 -28
  267. package/internal/NativeTimeInput/NativeTimeInput.utils.js.map +0 -1
  268. package/internal/NativeTimeInput/index.d.ts +0 -1
  269. package/internal/NativeTimeInput/index.js +0 -2
  270. package/internal/NativeTimeInput/index.js.map +0 -1
  271. package/internal/TimeInput/TimeFragments.d.ts +0 -15
  272. package/internal/TimeInput/TimeFragments.js +0 -72
  273. package/internal/TimeInput/TimeFragments.js.map +0 -1
  274. package/internal/TimeInput/TimeFragments.styles.d.ts +0 -12
  275. package/internal/TimeInput/TimeFragments.styles.js +0 -43
  276. package/internal/TimeInput/TimeFragments.styles.js.map +0 -1
  277. package/internal/TimeInput/TimeInput.d.ts +0 -22
  278. package/internal/TimeInput/TimeInput.js +0 -103
  279. package/internal/TimeInput/TimeInput.js.map +0 -1
  280. package/internal/TimeInput/TimeInput.styles.js +0 -21
  281. package/internal/TimeInput/TimeInput.styles.js.map +0 -1
  282. package/internal/TimeInput/index.d.ts +0 -1
  283. package/internal/TimeInput/index.js +0 -2
  284. package/internal/TimeInput/index.js.map +0 -1
  285. package/internal/icons2022/TimeClockIcon/TimeClockIcon16Light.d.ts +0 -2
  286. package/internal/icons2022/TimeClockIcon/TimeClockIcon16Light.js +0 -20
  287. package/internal/icons2022/TimeClockIcon/TimeClockIcon16Light.js.map +0 -1
  288. package/internal/icons2022/TimeClockIcon/TimeClockIcon20Light.d.ts +0 -2
  289. package/internal/icons2022/TimeClockIcon/TimeClockIcon20Light.js +0 -20
  290. package/internal/icons2022/TimeClockIcon/TimeClockIcon20Light.js.map +0 -1
  291. package/internal/icons2022/TimeClockIcon/TimeClockIcon24Regular.d.ts +0 -2
  292. package/internal/icons2022/TimeClockIcon/TimeClockIcon24Regular.js +0 -20
  293. package/internal/icons2022/TimeClockIcon/TimeClockIcon24Regular.js.map +0 -1
  294. /package/components/{TimePicker/locale → MaskedInputV2/internal}/types.js +0 -0
@@ -0,0 +1,21 @@
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
+ }
@@ -0,0 +1,180 @@
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
@@ -0,0 +1 @@
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"]}
@@ -0,0 +1,31 @@
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 {};
@@ -0,0 +1,163 @@
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
@@ -0,0 +1 @@
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"]}
@@ -0,0 +1,42 @@
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
+ }
@@ -0,0 +1,158 @@
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
@@ -0,0 +1 @@
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"]}