@skbkontur/react-ui 6.1.4-ff219.0 → 6.2.0-beta.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (274) hide show
  1. package/components/Autocomplete/Autocomplete.js +2 -3
  2. package/components/Autocomplete/Autocomplete.js.map +1 -1
  3. package/components/FxInput/FxInput.js +2 -2
  4. package/components/FxInput/FxInput.js.map +1 -1
  5. package/components/Group/Group.js +3 -2
  6. package/components/Group/Group.js.map +1 -1
  7. package/components/Input/Input.d.ts +1 -1
  8. package/components/Input/Input.js.map +1 -1
  9. package/components/MaskedInput/MaskedInput.d.ts +0 -2
  10. package/components/MaskedInput/MaskedInput.js +0 -6
  11. package/components/MaskedInput/MaskedInput.js.map +1 -1
  12. package/components/TimePicker/TimeClockIcon.d.ts +3 -0
  13. package/components/TimePicker/TimeClockIcon.js +11 -0
  14. package/components/TimePicker/TimeClockIcon.js.map +1 -0
  15. package/components/TimePicker/TimePicker.d.ts +79 -0
  16. package/components/TimePicker/TimePicker.js +513 -0
  17. package/components/TimePicker/TimePicker.js.map +1 -0
  18. package/components/TimePicker/TimePicker.styles.d.ts +11 -0
  19. package/components/TimePicker/TimePicker.styles.js +36 -0
  20. package/components/TimePicker/TimePicker.styles.js.map +1 -0
  21. package/components/TimePicker/TimePickerItems.d.ts +17 -0
  22. package/components/TimePicker/TimePickerItems.js +80 -0
  23. package/components/TimePicker/TimePickerItems.js.map +1 -0
  24. package/components/TimePicker/TimePickerMobilePopup.d.ts +38 -0
  25. package/components/TimePicker/TimePickerMobilePopup.js +21 -0
  26. package/components/TimePicker/TimePickerMobilePopup.js.map +1 -0
  27. package/components/TimePicker/TimePickerPopup.d.ts +20 -0
  28. package/components/TimePicker/TimePickerPopup.js +18 -0
  29. package/components/TimePicker/TimePickerPopup.js.map +1 -0
  30. package/components/TimePicker/helpers/TimePicker.constants.d.ts +22 -0
  31. package/components/TimePicker/helpers/TimePicker.constants.js +31 -0
  32. package/components/TimePicker/helpers/TimePicker.constants.js.map +1 -0
  33. package/components/TimePicker/helpers/TimePicker.editing.d.ts +23 -0
  34. package/components/TimePicker/helpers/TimePicker.editing.js +101 -0
  35. package/components/TimePicker/helpers/TimePicker.editing.js.map +1 -0
  36. package/components/TimePicker/helpers/TimePicker.layout.d.ts +6 -0
  37. package/components/TimePicker/helpers/TimePicker.layout.js +49 -0
  38. package/components/TimePicker/helpers/TimePicker.layout.js.map +1 -0
  39. package/components/TimePicker/helpers/TimePicker.selection.d.ts +5 -0
  40. package/components/TimePicker/helpers/TimePicker.selection.js +23 -0
  41. package/components/TimePicker/helpers/TimePicker.selection.js.map +1 -0
  42. package/components/TimePicker/helpers/TimePicker.shared.d.ts +47 -0
  43. package/components/TimePicker/helpers/TimePicker.shared.js +70 -0
  44. package/components/TimePicker/helpers/TimePicker.shared.js.map +1 -0
  45. package/components/TimePicker/helpers/TimePicker.value.d.ts +30 -0
  46. package/components/TimePicker/helpers/TimePicker.value.js +96 -0
  47. package/components/TimePicker/helpers/TimePicker.value.js.map +1 -0
  48. package/components/TimePicker/helpers/scrollSelectedItemIntoView.d.ts +4 -0
  49. package/components/TimePicker/helpers/scrollSelectedItemIntoView.js +24 -0
  50. package/components/TimePicker/helpers/scrollSelectedItemIntoView.js.map +1 -0
  51. package/components/TimePicker/helpers/validateTimePicker.d.ts +8 -0
  52. package/components/TimePicker/helpers/validateTimePicker.js +16 -0
  53. package/components/TimePicker/helpers/validateTimePicker.js.map +1 -0
  54. package/components/TimePicker/hooks/useTimePickerDropdown.d.ts +17 -0
  55. package/components/TimePicker/hooks/useTimePickerDropdown.js +62 -0
  56. package/components/TimePicker/hooks/useTimePickerDropdown.js.map +1 -0
  57. package/components/TimePicker/hooks/useTimePickerSelection.d.ts +18 -0
  58. package/components/TimePicker/hooks/useTimePickerSelection.js +66 -0
  59. package/components/TimePicker/hooks/useTimePickerSelection.js.map +1 -0
  60. package/components/TimePicker/hooks/useTimePickerValue.d.ts +18 -0
  61. package/components/TimePicker/hooks/useTimePickerValue.js +59 -0
  62. package/components/TimePicker/hooks/useTimePickerValue.js.map +1 -0
  63. package/components/TimePicker/index.d.ts +2 -0
  64. package/components/TimePicker/index.js +2 -0
  65. package/components/TimePicker/index.js.map +1 -0
  66. package/components/TimePicker/locale/index.d.ts +4 -0
  67. package/components/TimePicker/locale/index.js +9 -0
  68. package/components/TimePicker/locale/index.js.map +1 -0
  69. package/components/TimePicker/locale/locales/en.d.ts +2 -0
  70. package/components/TimePicker/locale/locales/en.js +5 -0
  71. package/components/TimePicker/locale/locales/en.js.map +1 -0
  72. package/components/TimePicker/locale/locales/ru.d.ts +2 -0
  73. package/components/TimePicker/locale/locales/ru.js +5 -0
  74. package/components/TimePicker/locale/locales/ru.js.map +1 -0
  75. package/components/TimePicker/locale/types.d.ts +4 -0
  76. package/components/TimePicker/locale/types.js.map +1 -0
  77. package/index.d.ts +1 -1
  78. package/index.js +1 -1
  79. package/index.js.map +1 -1
  80. package/internal/CustomComboBox/ComboBoxView.js +2 -2
  81. package/internal/CustomComboBox/ComboBoxView.js.map +1 -1
  82. package/internal/NativeTimeInput/NativeTimeInput.d.ts +16 -0
  83. package/internal/NativeTimeInput/NativeTimeInput.js +25 -0
  84. package/internal/NativeTimeInput/NativeTimeInput.js.map +1 -0
  85. package/internal/NativeTimeInput/NativeTimeInput.styles.d.ts +3 -0
  86. package/internal/NativeTimeInput/NativeTimeInput.styles.js +15 -0
  87. package/internal/NativeTimeInput/NativeTimeInput.styles.js.map +1 -0
  88. package/internal/NativeTimeInput/NativeTimeInput.utils.d.ts +7 -0
  89. package/internal/NativeTimeInput/NativeTimeInput.utils.js +28 -0
  90. package/internal/NativeTimeInput/NativeTimeInput.utils.js.map +1 -0
  91. package/internal/NativeTimeInput/index.d.ts +1 -0
  92. package/internal/NativeTimeInput/index.js +2 -0
  93. package/internal/NativeTimeInput/index.js.map +1 -0
  94. package/internal/TimeInput/TimeFragments.d.ts +15 -0
  95. package/internal/TimeInput/TimeFragments.js +72 -0
  96. package/internal/TimeInput/TimeFragments.js.map +1 -0
  97. package/internal/TimeInput/TimeFragments.styles.d.ts +12 -0
  98. package/internal/TimeInput/TimeFragments.styles.js +43 -0
  99. package/internal/TimeInput/TimeFragments.styles.js.map +1 -0
  100. package/internal/TimeInput/TimeInput.d.ts +22 -0
  101. package/internal/TimeInput/TimeInput.js +103 -0
  102. package/internal/TimeInput/TimeInput.js.map +1 -0
  103. package/{components/MaskedInputV2/MaskedInputV2.styles.d.ts → internal/TimeInput/TimeInput.styles.d.ts} +3 -4
  104. package/internal/TimeInput/TimeInput.styles.js +21 -0
  105. package/internal/TimeInput/TimeInput.styles.js.map +1 -0
  106. package/internal/TimeInput/index.d.ts +1 -0
  107. package/internal/TimeInput/index.js +2 -0
  108. package/internal/TimeInput/index.js.map +1 -0
  109. package/internal/icons2022/TimeClockIcon/TimeClockIcon16Light.d.ts +2 -0
  110. package/internal/icons2022/TimeClockIcon/TimeClockIcon16Light.js +20 -0
  111. package/internal/icons2022/TimeClockIcon/TimeClockIcon16Light.js.map +1 -0
  112. package/internal/icons2022/TimeClockIcon/TimeClockIcon20Light.d.ts +2 -0
  113. package/internal/icons2022/TimeClockIcon/TimeClockIcon20Light.js +20 -0
  114. package/internal/icons2022/TimeClockIcon/TimeClockIcon20Light.js.map +1 -0
  115. package/internal/icons2022/TimeClockIcon/TimeClockIcon24Regular.d.ts +2 -0
  116. package/internal/icons2022/TimeClockIcon/TimeClockIcon24Regular.js +20 -0
  117. package/internal/icons2022/TimeClockIcon/TimeClockIcon24Regular.js.map +1 -0
  118. package/internal/themes/BasicTheme.d.ts +34 -0
  119. package/internal/themes/BasicTheme.js +96 -0
  120. package/internal/themes/BasicTheme.js.map +1 -1
  121. package/lib/events/keyboard/KeyboardEventCodes.d.ts +0 -2
  122. package/lib/events/keyboard/KeyboardEventCodes.js +0 -2
  123. package/lib/events/keyboard/KeyboardEventCodes.js.map +1 -1
  124. package/lib/events/keyboard/KeyboardMapKeys.js +0 -2
  125. package/lib/events/keyboard/KeyboardMapKeys.js.map +1 -1
  126. package/lib/events/keyboard/identifiers.d.ts +0 -2
  127. package/lib/events/keyboard/identifiers.js +0 -6
  128. package/lib/events/keyboard/identifiers.js.map +1 -1
  129. package/lib/featureFlagsContext/ReactUIFeatureFlagsContext.d.ts +0 -2
  130. package/lib/featureFlagsContext/ReactUIFeatureFlagsContext.js +0 -1
  131. package/lib/featureFlagsContext/ReactUIFeatureFlagsContext.js.map +1 -1
  132. package/lib/locale/types.d.ts +2 -0
  133. package/lib/locale/types.js.map +1 -1
  134. package/lib/utils.d.ts +2 -0
  135. package/lib/utils.js +1 -0
  136. package/lib/utils.js.map +1 -1
  137. package/package.json +9 -4
  138. package/components/MaskedInputV2/MaskedInputV2.d.ts +0 -57
  139. package/components/MaskedInputV2/MaskedInputV2.helpers.d.ts +0 -9
  140. package/components/MaskedInputV2/MaskedInputV2.helpers.js +0 -17
  141. package/components/MaskedInputV2/MaskedInputV2.helpers.js.map +0 -1
  142. package/components/MaskedInputV2/MaskedInputV2.js +0 -234
  143. package/components/MaskedInputV2/MaskedInputV2.js.map +0 -1
  144. package/components/MaskedInputV2/MaskedInputV2.styles.js +0 -19
  145. package/components/MaskedInputV2/MaskedInputV2.styles.js.map +0 -1
  146. package/components/MaskedInputV2/index.d.ts +0 -1
  147. package/components/MaskedInputV2/index.js +0 -2
  148. package/components/MaskedInputV2/index.js.map +0 -1
  149. package/components/MaskedInputV2/internal/MaskOverlay.d.ts +0 -19
  150. package/components/MaskedInputV2/internal/MaskOverlay.js +0 -54
  151. package/components/MaskedInputV2/internal/MaskOverlay.js.map +0 -1
  152. package/components/MaskedInputV2/internal/MaskedCore.d.ts +0 -8
  153. package/components/MaskedInputV2/internal/MaskedCore.js +0 -101
  154. package/components/MaskedInputV2/internal/MaskedCore.js.map +0 -1
  155. package/components/MaskedInputV2/internal/MaskedCore.types.d.ts +0 -30
  156. package/components/MaskedInputV2/internal/MaskedCore.types.js +0 -2
  157. package/components/MaskedInputV2/internal/MaskedCore.types.js.map +0 -1
  158. package/components/MaskedInputV2/internal/MaskedInternal.styles.d.ts +0 -15
  159. package/components/MaskedInputV2/internal/MaskedInternal.styles.js +0 -34
  160. package/components/MaskedInputV2/internal/MaskedInternal.styles.js.map +0 -1
  161. package/components/MaskedInputV2/internal/buildSlotMap.d.ts +0 -11
  162. package/components/MaskedInputV2/internal/buildSlotMap.js +0 -37
  163. package/components/MaskedInputV2/internal/buildSlotMap.js.map +0 -1
  164. package/components/MaskedInputV2/internal/extractRaw.d.ts +0 -10
  165. package/components/MaskedInputV2/internal/extractRaw.js +0 -16
  166. package/components/MaskedInputV2/internal/extractRaw.js.map +0 -1
  167. package/components/MaskedInputV2/internal/findNearestRawLeft.d.ts +0 -10
  168. package/components/MaskedInputV2/internal/findNearestRawLeft.js +0 -18
  169. package/components/MaskedInputV2/internal/findNearestRawLeft.js.map +0 -1
  170. package/components/MaskedInputV2/internal/helpers.d.ts +0 -5
  171. package/components/MaskedInputV2/internal/helpers.js +0 -6
  172. package/components/MaskedInputV2/internal/helpers.js.map +0 -1
  173. package/components/MaskedInputV2/internal/maskedCoreClipboard.d.ts +0 -25
  174. package/components/MaskedInputV2/internal/maskedCoreClipboard.js +0 -30
  175. package/components/MaskedInputV2/internal/maskedCoreClipboard.js.map +0 -1
  176. package/components/MaskedInputV2/internal/maskedCoreDeletion.d.ts +0 -28
  177. package/components/MaskedInputV2/internal/maskedCoreDeletion.js +0 -70
  178. package/components/MaskedInputV2/internal/maskedCoreDeletion.js.map +0 -1
  179. package/components/MaskedInputV2/internal/maskedCoreInputChange.d.ts +0 -35
  180. package/components/MaskedInputV2/internal/maskedCoreInputChange.js +0 -31
  181. package/components/MaskedInputV2/internal/maskedCoreInputChange.js.map +0 -1
  182. package/components/MaskedInputV2/internal/maskedCoreNavigation.d.ts +0 -13
  183. package/components/MaskedInputV2/internal/maskedCoreNavigation.js +0 -79
  184. package/components/MaskedInputV2/internal/maskedCoreNavigation.js.map +0 -1
  185. package/components/MaskedInputV2/internal/stripMaskChars.d.ts +0 -11
  186. package/components/MaskedInputV2/internal/stripMaskChars.js +0 -20
  187. package/components/MaskedInputV2/internal/stripMaskChars.js.map +0 -1
  188. package/components/MaskedInputV2/internal/types.d.ts +0 -74
  189. package/components/MaskedInputV2/internal/types.js.map +0 -1
  190. package/components/MaskedInputV2/internal/useMaskEngine.d.ts +0 -42
  191. package/components/MaskedInputV2/internal/useMaskEngine.js +0 -82
  192. package/components/MaskedInputV2/internal/useMaskEngine.js.map +0 -1
  193. package/components/MaskedInputV2/internal/useMaskedCoreHandlers.d.ts +0 -28
  194. package/components/MaskedInputV2/internal/useMaskedCoreHandlers.js +0 -190
  195. package/components/MaskedInputV2/internal/useMaskedCoreHandlers.js.map +0 -1
  196. package/components/MaskedInputV2/react-imask/imask/controls/html-input-mask-element.d.ts +0 -16
  197. package/components/MaskedInputV2/react-imask/imask/controls/html-input-mask-element.js +0 -59
  198. package/components/MaskedInputV2/react-imask/imask/controls/html-input-mask-element.js.map +0 -1
  199. package/components/MaskedInputV2/react-imask/imask/controls/html-mask-element.d.ts +0 -20
  200. package/components/MaskedInputV2/react-imask/imask/controls/html-mask-element.js +0 -106
  201. package/components/MaskedInputV2/react-imask/imask/controls/html-mask-element.js.map +0 -1
  202. package/components/MaskedInputV2/react-imask/imask/controls/input-history.d.ts +0 -17
  203. package/components/MaskedInputV2/react-imask/imask/controls/input-history.js +0 -49
  204. package/components/MaskedInputV2/react-imask/imask/controls/input-history.js.map +0 -1
  205. package/components/MaskedInputV2/react-imask/imask/controls/input.d.ts +0 -95
  206. package/components/MaskedInputV2/react-imask/imask/controls/input.js +0 -420
  207. package/components/MaskedInputV2/react-imask/imask/controls/input.js.map +0 -1
  208. package/components/MaskedInputV2/react-imask/imask/controls/mask-element.d.ts +0 -30
  209. package/components/MaskedInputV2/react-imask/imask/controls/mask-element.js +0 -59
  210. package/components/MaskedInputV2/react-imask/imask/controls/mask-element.js.map +0 -1
  211. package/components/MaskedInputV2/react-imask/imask/core/action-details.d.ts +0 -30
  212. package/components/MaskedInputV2/react-imask/imask/core/action-details.js +0 -100
  213. package/components/MaskedInputV2/react-imask/imask/core/action-details.js.map +0 -1
  214. package/components/MaskedInputV2/react-imask/imask/core/change-details.d.ts +0 -20
  215. package/components/MaskedInputV2/react-imask/imask/core/change-details.js +0 -46
  216. package/components/MaskedInputV2/react-imask/imask/core/change-details.js.map +0 -1
  217. package/components/MaskedInputV2/react-imask/imask/core/continuous-tail-details.d.ts +0 -21
  218. package/components/MaskedInputV2/react-imask/imask/core/continuous-tail-details.js +0 -52
  219. package/components/MaskedInputV2/react-imask/imask/core/continuous-tail-details.js.map +0 -1
  220. package/components/MaskedInputV2/react-imask/imask/core/holder.d.ts +0 -34
  221. package/components/MaskedInputV2/react-imask/imask/core/holder.js +0 -38
  222. package/components/MaskedInputV2/react-imask/imask/core/holder.js.map +0 -1
  223. package/components/MaskedInputV2/react-imask/imask/core/tail-details.d.ts +0 -20
  224. package/components/MaskedInputV2/react-imask/imask/core/tail-details.js +0 -2
  225. package/components/MaskedInputV2/react-imask/imask/core/tail-details.js.map +0 -1
  226. package/components/MaskedInputV2/react-imask/imask/core/utils.d.ts +0 -24
  227. package/components/MaskedInputV2/react-imask/imask/core/utils.js +0 -100
  228. package/components/MaskedInputV2/react-imask/imask/core/utils.js.map +0 -1
  229. package/components/MaskedInputV2/react-imask/imask/imask.d.ts +0 -5
  230. package/components/MaskedInputV2/react-imask/imask/imask.js +0 -7
  231. package/components/MaskedInputV2/react-imask/imask/imask.js.map +0 -1
  232. package/components/MaskedInputV2/react-imask/imask/index.d.ts +0 -17
  233. package/components/MaskedInputV2/react-imask/imask/index.js +0 -16
  234. package/components/MaskedInputV2/react-imask/imask/index.js.map +0 -1
  235. package/components/MaskedInputV2/react-imask/imask/masked/base.d.ts +0 -114
  236. package/components/MaskedInputV2/react-imask/imask/masked/base.js +0 -411
  237. package/components/MaskedInputV2/react-imask/imask/masked/base.js.map +0 -1
  238. package/components/MaskedInputV2/react-imask/imask/masked/factory.d.ts +0 -62
  239. package/components/MaskedInputV2/react-imask/imask/masked/factory.js +0 -96
  240. package/components/MaskedInputV2/react-imask/imask/masked/factory.js.map +0 -1
  241. package/components/MaskedInputV2/react-imask/imask/masked/pattern.d.ts +0 -101
  242. package/components/MaskedInputV2/react-imask/imask/masked/pattern.js +0 -543
  243. package/components/MaskedInputV2/react-imask/imask/masked/pattern.js.map +0 -1
  244. package/components/MaskedInputV2/react-imask/imask/masked/patterns/block.d.ts +0 -30
  245. package/components/MaskedInputV2/react-imask/imask/masked/patterns/block.js +0 -2
  246. package/components/MaskedInputV2/react-imask/imask/masked/patterns/block.js.map +0 -1
  247. package/components/MaskedInputV2/react-imask/imask/masked/patterns/chunk-tail-details.d.ts +0 -21
  248. package/components/MaskedInputV2/react-imask/imask/masked/patterns/chunk-tail-details.js +0 -180
  249. package/components/MaskedInputV2/react-imask/imask/masked/patterns/chunk-tail-details.js.map +0 -1
  250. package/components/MaskedInputV2/react-imask/imask/masked/patterns/cursor.d.ts +0 -31
  251. package/components/MaskedInputV2/react-imask/imask/masked/patterns/cursor.js +0 -163
  252. package/components/MaskedInputV2/react-imask/imask/masked/patterns/cursor.js.map +0 -1
  253. package/components/MaskedInputV2/react-imask/imask/masked/patterns/fixed-definition.d.ts +0 -42
  254. package/components/MaskedInputV2/react-imask/imask/masked/patterns/fixed-definition.js +0 -158
  255. package/components/MaskedInputV2/react-imask/imask/masked/patterns/fixed-definition.js.map +0 -1
  256. package/components/MaskedInputV2/react-imask/imask/masked/patterns/input-definition.d.ts +0 -56
  257. package/components/MaskedInputV2/react-imask/imask/masked/patterns/input-definition.js +0 -185
  258. package/components/MaskedInputV2/react-imask/imask/masked/patterns/input-definition.js.map +0 -1
  259. package/components/MaskedInputV2/react-imask/imask/masked/regexp.d.ts +0 -17
  260. package/components/MaskedInputV2/react-imask/imask/masked/regexp.js +0 -36
  261. package/components/MaskedInputV2/react-imask/imask/masked/regexp.js.map +0 -1
  262. package/components/MaskedInputV2/react-imask/index.d.ts +0 -3
  263. package/components/MaskedInputV2/react-imask/index.js +0 -4
  264. package/components/MaskedInputV2/react-imask/index.js.map +0 -1
  265. package/components/MaskedInputV2/react-imask/input.d.ts +0 -8
  266. package/components/MaskedInputV2/react-imask/input.js +0 -35
  267. package/components/MaskedInputV2/react-imask/input.js.map +0 -1
  268. package/components/MaskedInputV2/react-imask/mixin.d.ts +0 -31
  269. package/components/MaskedInputV2/react-imask/mixin.js +0 -246
  270. package/components/MaskedInputV2/react-imask/mixin.js.map +0 -1
  271. package/internal/FeaturedMaskedInput/FeaturedMaskedInput.d.ts +0 -4
  272. package/internal/FeaturedMaskedInput/FeaturedMaskedInput.js +0 -24
  273. package/internal/FeaturedMaskedInput/FeaturedMaskedInput.js.map +0 -1
  274. /package/components/{MaskedInputV2/internal → TimePicker/locale}/types.js +0 -0
@@ -1,21 +0,0 @@
1
- import { ChangeDetails } from '../../core/change-details.js';
2
- import type { TailDetails, AppendTail } from '../../core/tail-details.js';
3
- import { MaskedPattern } from '../pattern.js';
4
- export type ChunksTailState = Pick<ChunksTailDetails, 'from' | 'stop' | 'blockIndex'> & {
5
- chunks: Array<TailDetails['state']>;
6
- };
7
- export declare class ChunksTailDetails implements TailDetails {
8
- chunks: TailDetails[];
9
- from: number;
10
- stop?: number;
11
- /** */
12
- blockIndex?: number;
13
- constructor(chunks?: TailDetails[], from?: number);
14
- toString(): string;
15
- extend(tailChunk: string | TailDetails): void;
16
- appendTo(masked: AppendTail | MaskedPattern): ChangeDetails;
17
- get state(): ChunksTailState;
18
- set state(state: ChunksTailState);
19
- unshift(beforePos?: number): string;
20
- shift(): string;
21
- }
@@ -1,180 +0,0 @@
1
- var __rest = (this && this.__rest) || function (s, e) {
2
- var t = {};
3
- for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
4
- t[p] = s[p];
5
- if (s != null && typeof Object.getOwnPropertySymbols === "function")
6
- for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
7
- if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
8
- t[p[i]] = s[p[i]];
9
- }
10
- return t;
11
- };
12
- import { ChangeDetails } from '../../core/change-details.js';
13
- import { ContinuousTailDetails } from '../../core/continuous-tail-details.js';
14
- import { isString } from '../../core/utils.js';
15
- import { MaskedPattern } from '../pattern.js';
16
- var ChunksTailDetails = /** @class */ (function () {
17
- function ChunksTailDetails(chunks, from) {
18
- if (chunks === void 0) { chunks = []; }
19
- if (from === void 0) { from = 0; }
20
- this.chunks = chunks;
21
- this.from = from;
22
- }
23
- ChunksTailDetails.prototype.toString = function () {
24
- return this.chunks.map(String).join('');
25
- };
26
- ChunksTailDetails.prototype.extend = function (tailChunk) {
27
- if (!String(tailChunk)) {
28
- return;
29
- }
30
- // eslint-disable-next-line no-param-reassign
31
- tailChunk = (isString(tailChunk) ? new ContinuousTailDetails(String(tailChunk)) : tailChunk);
32
- var lastChunk = this.chunks[this.chunks.length - 1];
33
- var extendLast = lastChunk &&
34
- // if stops are same or tail has no stop
35
- (lastChunk.stop === tailChunk.stop || tailChunk.stop == null) &&
36
- // if tail chunk goes just after last chunk
37
- tailChunk.from === lastChunk.from + lastChunk.toString().length;
38
- if (tailChunk instanceof ContinuousTailDetails) {
39
- // check the ability to extend previous chunk
40
- if (extendLast) {
41
- // extend previous chunk
42
- lastChunk.extend(tailChunk.toString());
43
- }
44
- else {
45
- // append new chunk
46
- this.chunks.push(tailChunk);
47
- }
48
- }
49
- else if (tailChunk instanceof ChunksTailDetails) {
50
- if (tailChunk.stop == null) {
51
- // unwrap floating chunks to parent, keeping `from` pos
52
- var firstTailChunk = void 0;
53
- while (tailChunk.chunks.length && tailChunk.chunks[0].stop == null) {
54
- firstTailChunk = tailChunk.chunks.shift(); // not possible to be `undefined` because length was checked above
55
- firstTailChunk.from += tailChunk.from;
56
- this.extend(firstTailChunk);
57
- }
58
- }
59
- // if tail chunk still has value
60
- if (tailChunk.toString()) {
61
- // if chunks contains stops, then popup stop to container
62
- tailChunk.stop = tailChunk.blockIndex;
63
- this.chunks.push(tailChunk);
64
- }
65
- }
66
- };
67
- ChunksTailDetails.prototype.appendTo = function (masked) {
68
- if (!(masked instanceof MaskedPattern)) {
69
- var tail = new ContinuousTailDetails(this.toString());
70
- return tail.appendTo(masked);
71
- }
72
- var details = new ChangeDetails();
73
- for (var ci = 0; ci < this.chunks.length; ++ci) {
74
- var chunk = this.chunks[ci];
75
- var lastBlockIter = masked._mapPosToBlock(masked.displayValue.length);
76
- var stop_1 = chunk.stop;
77
- var chunkBlock = void 0;
78
- if (stop_1 != null &&
79
- // if block not found or stop is behind lastBlock
80
- (!lastBlockIter || lastBlockIter.index <= stop_1)) {
81
- if (chunk instanceof ChunksTailDetails ||
82
- // for continuous block also check if stop is exist
83
- masked._stops.indexOf(stop_1) >= 0) {
84
- details.aggregate(masked._appendPlaceholder(stop_1));
85
- }
86
- chunkBlock = chunk instanceof ChunksTailDetails && masked._blocks[stop_1];
87
- }
88
- if (chunkBlock) {
89
- var tailDetails = chunkBlock.appendTail(chunk);
90
- details.aggregate(tailDetails);
91
- // get not inserted chars
92
- var remainChars = chunk.toString().slice(tailDetails.rawInserted.length);
93
- if (remainChars) {
94
- details.aggregate(masked.append(remainChars, { tail: true }));
95
- }
96
- }
97
- else {
98
- details.aggregate(masked.append(chunk.toString(), { tail: true }));
99
- }
100
- }
101
- return details;
102
- };
103
- Object.defineProperty(ChunksTailDetails.prototype, "state", {
104
- get: function () {
105
- return {
106
- chunks: this.chunks.map(function (c) { return c.state; }),
107
- from: this.from,
108
- stop: this.stop,
109
- blockIndex: this.blockIndex,
110
- };
111
- },
112
- set: function (state) {
113
- var chunks = state.chunks, props = __rest(state, ["chunks"]);
114
- Object.assign(this, props);
115
- this.chunks = chunks.map(function (cstate) {
116
- var chunk = 'chunks' in cstate ? new ChunksTailDetails() : new ContinuousTailDetails();
117
- chunk.state = cstate;
118
- return chunk;
119
- });
120
- },
121
- enumerable: false,
122
- configurable: true
123
- });
124
- ChunksTailDetails.prototype.unshift = function (beforePos) {
125
- if (!this.chunks.length || (beforePos != null && this.from >= beforePos)) {
126
- return '';
127
- }
128
- var chunkShiftPos = beforePos != null ? beforePos - this.from : beforePos;
129
- var ci = 0;
130
- while (ci < this.chunks.length) {
131
- var chunk = this.chunks[ci];
132
- var shiftChar = chunk.unshift(chunkShiftPos);
133
- if (chunk.toString()) {
134
- // chunk still contains value
135
- // but not shifted - means no more available chars to shift
136
- if (!shiftChar) {
137
- break;
138
- }
139
- ++ci;
140
- }
141
- else {
142
- // clean if chunk has no value
143
- this.chunks.splice(ci, 1);
144
- }
145
- if (shiftChar) {
146
- return shiftChar;
147
- }
148
- }
149
- return '';
150
- };
151
- ChunksTailDetails.prototype.shift = function () {
152
- if (!this.chunks.length) {
153
- return '';
154
- }
155
- var ci = this.chunks.length - 1;
156
- while (ci >= 0) {
157
- var chunk = this.chunks[ci];
158
- var shiftChar = chunk.shift();
159
- if (chunk.toString()) {
160
- // chunk still contains value
161
- // but not shifted - means no more available chars to shift
162
- if (!shiftChar) {
163
- break;
164
- }
165
- --ci;
166
- }
167
- else {
168
- // clean if chunk has no value
169
- this.chunks.splice(ci, 1);
170
- }
171
- if (shiftChar) {
172
- return shiftChar;
173
- }
174
- }
175
- return '';
176
- };
177
- return ChunksTailDetails;
178
- }());
179
- export { ChunksTailDetails };
180
- //# sourceMappingURL=chunk-tail-details.js.map
@@ -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"]}