@skbkontur/react-ui 6.1.4-4e59f.0 → 6.1.4-d7626.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 +16 -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 +34 -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
@@ -1,513 +0,0 @@
1
- var __assign = (this && this.__assign) || function () {
2
- __assign = Object.assign || function(t) {
3
- for (var s, i = 1, n = arguments.length; i < n; i++) {
4
- s = arguments[i];
5
- for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
6
- t[p] = s[p];
7
- }
8
- return t;
9
- };
10
- return __assign.apply(this, arguments);
11
- };
12
- var __rest = (this && this.__rest) || function (s, e) {
13
- var t = {};
14
- for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
15
- t[p] = s[p];
16
- if (s != null && typeof Object.getOwnPropertySymbols === "function")
17
- for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
18
- if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
19
- t[p[i]] = s[p[i]];
20
- }
21
- return t;
22
- };
23
- import React, { useCallback, useContext, useEffect, useImperativeHandle, useLayoutEffect, useMemo, useRef, useState, } from 'react';
24
- import { CommonWrapper } from '../../internal/CommonWrapper/index.js';
25
- import { NativeTimeInput } from '../../internal/NativeTimeInput/index.js';
26
- import { TimeInput } from '../../internal/TimeInput/index.js';
27
- import { isIOS, isMobile } from '../../lib/client.js';
28
- import { isKeyArrowDown, isKeyArrowLeft, isKeyArrowRight, isKeyArrowUp, isKeyBackspace, isKeyChar, isKeyDelete, isKeyEnter, isKeyEscape, isKeySpace, isKeyTab, isModShift, isShortcutSelectAll, } from '../../lib/events/keyboard/identifiers.js';
29
- import { forwardRefAndName } from '../../lib/forwardRefAndName.js';
30
- import { useLocaleForControl } from '../../lib/locale/useLocaleForControl.js';
31
- import { useStyles } from '../../lib/renderEnvironment/index.js';
32
- import { ThemeContext } from '../../lib/theming/ThemeContext.js';
33
- import { getRandomID } from '../../lib/utils.js';
34
- import { scrollSelectedItemIntoView } from './helpers/scrollSelectedItemIntoView.js';
35
- import { DIGIT_REGEXP, EMPTY_SEGMENT, EMPTY_VALUE, TimePickerDataTids } from './helpers/TimePicker.constants.js';
36
- import { commitTimeSegmentOnLeave, deleteTimeSegmentDigit, formatDigitToTimeSegment, shiftTimeSegmentValue, } from './helpers/TimePicker.editing.js';
37
- import { getTimePickerPopupMaxHeight } from './helpers/TimePicker.layout.js';
38
- import { getNextTimeSegment, getPreviousTimeSegment } from './helpers/TimePicker.selection.js';
39
- import { getEmptyDisplayValue, isTimeDisplayEmpty, isTimeValueOutOfRange, normalizeTimeValue, parsePastedTimeValue, replaceTimeSegment, } from './helpers/TimePicker.value.js';
40
- import { validateTimePicker } from './helpers/validateTimePicker.js';
41
- import { useTimePickerDropdown } from './hooks/useTimePickerDropdown.js';
42
- import { useTimePickerSelection } from './hooks/useTimePickerSelection.js';
43
- import { useTimePickerValue } from './hooks/useTimePickerValue.js';
44
- import { TimePickerLocaleHelper } from './locale/index.js';
45
- import { getStyles } from './TimePicker.styles.js';
46
- import { TimePickerMobilePopup } from './TimePickerMobilePopup.js';
47
- import { TimePickerPopup } from './TimePickerPopup.js';
48
- /** Поле с временем помогает пользователю быстро и удобно указать время в правильном формате.
49
- * В поле можно ввести время с клавиатуры, либо выбрать из выпадающего списка с помощью мыши (нужно активировать, см. примеры с пропом `items`).
50
- */
51
- export var TimePicker = Object.assign(forwardRefAndName('TimePicker', function (props, ref) {
52
- var _a;
53
- var disabled = props.disabled, _b = props.useMobileNativeTimePicker, useMobileNativeTimePicker = _b === void 0 ? false : _b, _c = props.format, format = _c === void 0 ? 'HH:mm' : _c, _d = props.size, size = _d === void 0 ? 'small' : _d, items = props.items, menuPos = props.menuPos, menuAlign = props.menuAlign, menuWidth = props.menuWidth, minTime = props.minTime, maxTime = props.maxTime, rightIcon = props.rightIcon, suffix = props.suffix, corners = props.corners, value = props.value, onValueChange = props.onValueChange, onFocus = props.onFocus, onBlur = props.onBlur, onClick = props.onClick, onKeyDown = props.onKeyDown, onPaste = props.onPaste, inputProps = __rest(props, ["disabled", "useMobileNativeTimePicker", "format", "size", "items", "menuPos", "menuAlign", "menuWidth", "minTime", "maxTime", "rightIcon", "suffix", "corners", "value", "onValueChange", "onFocus", "onBlur", "onClick", "onKeyDown", "onPaste"]);
54
- var theme = useContext(ThemeContext);
55
- var styles = useStyles(getStyles);
56
- var locale = useLocaleForControl('TimePicker', TimePickerLocaleHelper);
57
- var _e = useState(false), isInputFocused = _e[0], setIsInputFocused = _e[1];
58
- var inputRef = useRef(null);
59
- var mobileInputRef = useRef(null);
60
- var nativeInputRef = useRef(null);
61
- var rootRef = useRef(null);
62
- var itemRefs = useRef(new Map());
63
- var isMouseFocusRef = useRef(false);
64
- var isMouseDownOnFragmentRef = useRef(false);
65
- var mouseDownSegmentRef = useRef(null);
66
- var popupIdRef = useRef(TimePickerDataTids.popup + getRandomID());
67
- var _f = useState(false), isMobileDevice = _f[0], setIsMobileDevice = _f[1];
68
- var _g = useState(false), canUseMobileNativeTimePicker = _g[0], setCanUseMobileNativeTimePicker = _g[1];
69
- var _h = useTimePickerValue({ isInputFocused: isInputFocused, format: format, value: value, onValueChange: onValueChange }), editingValue = _h.editingValue, editingValueRef = _h.editingValueRef, setEditingValue = _h.setEditingValue, updateEditingValue = _h.updateEditingValue, commitEditingValue = _h.commitEditingValue, clearEditingValue = _h.clearEditingValue;
70
- var hasDropdown = ((_a = items === null || items === void 0 ? void 0 : items.length) !== null && _a !== void 0 ? _a : 0) > 0;
71
- var resolvedItems = useMemo(function () {
72
- return (items !== null && items !== void 0 ? items : []).map(function (item) { return (__assign(__assign({}, item), { disabled: Boolean(item.disabled) || isTimeValueOutOfRange(item.value, format, minTime, maxTime) })); });
73
- }, [maxTime, minTime, format, items]);
74
- var popupMaxHeight = getTimePickerPopupMaxHeight(size, theme);
75
- var ariaPlaceholder = format === 'HH:mm' ? locale.ariaPlaceholderHHMM : locale.ariaPlaceholderHHMMSS;
76
- var normalizedValue = normalizeTimeValue(editingValue, format);
77
- var selectedItemIndex = resolvedItems.findIndex(function (item) { return normalizeTimeValue(item.value, format) === normalizedValue; });
78
- var canUseMobileDropdownTimePicker = hasDropdown && isMobileDevice && !canUseMobileNativeTimePicker;
79
- var displayValue = editingValue;
80
- if (isInputFocused) {
81
- displayValue = editingValue === EMPTY_VALUE ? getEmptyDisplayValue(format) : editingValue;
82
- }
83
- else if (isTimeDisplayEmpty(editingValue)) {
84
- displayValue = EMPTY_VALUE;
85
- }
86
- var resetMouseInteractionState = useCallback(function () {
87
- isMouseFocusRef.current = false;
88
- isMouseDownOnFragmentRef.current = false;
89
- mouseDownSegmentRef.current = null;
90
- }, []);
91
- var normalizeCurrentSegmentIfNeeded = useCallback(function (segment) {
92
- var nextDisplayValue = commitTimeSegmentOnLeave(editingValue === EMPTY_VALUE ? getEmptyDisplayValue(format) : editingValue, segment, format);
93
- updateEditingValue(nextDisplayValue);
94
- }, [editingValue, format, updateEditingValue]);
95
- var openNativeTimePicker = useCallback(function () {
96
- var _a, _b;
97
- if (!canUseMobileNativeTimePicker || disabled) {
98
- return;
99
- }
100
- if (isIOS) {
101
- (_a = nativeInputRef.current) === null || _a === void 0 ? void 0 : _a.focus();
102
- }
103
- else {
104
- (_b = nativeInputRef.current) === null || _b === void 0 ? void 0 : _b.click();
105
- }
106
- }, [canUseMobileNativeTimePicker, disabled]);
107
- var _j = useTimePickerDropdown({
108
- disabled: disabled,
109
- hasDropdown: hasDropdown,
110
- items: resolvedItems,
111
- selectedItemIndex: selectedItemIndex >= 0 ? selectedItemIndex : null,
112
- }), isDropdownOpened = _j.isDropdownOpened, highlightedItemIndex = _j.highlightedItemIndex, openDropdown = _j.openDropdown, closeDropdown = _j.closeDropdown, resetHighlightedItem = _j.resetHighlightedItem, tryNavigateItems = _j.tryNavigateItems;
113
- var popupId = popupIdRef.current;
114
- var activeDescendantId = hasDropdown && highlightedItemIndex !== null ? "".concat(popupId, "-item-").concat(highlightedItemIndex) : undefined;
115
- var getActiveInput = useCallback(function () { return (canUseMobileDropdownTimePicker && isDropdownOpened ? mobileInputRef.current : inputRef.current); }, [canUseMobileDropdownTimePicker, isDropdownOpened]);
116
- var _k = useTimePickerSelection({
117
- isInputFocused: isInputFocused,
118
- format: format,
119
- displayValue: displayValue,
120
- getInput: getActiveInput,
121
- }), selection = _k.selection, selectedSegment = _k.selectedSegment, selectSegment = _k.selectSegment, selectAll = _k.selectAll, syncSelectionWithDOM = _k.syncSelectionWithDOM;
122
- var closeOpenedDropdown = useCallback(function () {
123
- if (canUseMobileDropdownTimePicker && isDropdownOpened) {
124
- setIsInputFocused(false);
125
- resetMouseInteractionState();
126
- if (isTimeDisplayEmpty(editingValueRef.current)) {
127
- clearEditingValue();
128
- }
129
- else {
130
- commitEditingValue();
131
- }
132
- }
133
- closeDropdown();
134
- }, [
135
- canUseMobileDropdownTimePicker,
136
- clearEditingValue,
137
- closeDropdown,
138
- commitEditingValue,
139
- editingValueRef,
140
- isDropdownOpened,
141
- resetMouseInteractionState,
142
- ]);
143
- var selectItem = useCallback(function (item) {
144
- if (item.disabled) {
145
- return;
146
- }
147
- if (canUseMobileDropdownTimePicker) {
148
- setIsInputFocused(false);
149
- resetMouseInteractionState();
150
- }
151
- updateEditingValue(item.value);
152
- closeDropdown();
153
- }, [canUseMobileDropdownTimePicker, closeDropdown, resetMouseInteractionState, updateEditingValue]);
154
- var isSelectHighlightedItem = useCallback(function () {
155
- if (highlightedItemIndex === null) {
156
- return false;
157
- }
158
- var item = resolvedItems[highlightedItemIndex];
159
- if (!item || item.disabled) {
160
- return true;
161
- }
162
- selectItem(item);
163
- return true;
164
- }, [highlightedItemIndex, resolvedItems, selectItem]);
165
- var focusInput = useCallback(function () {
166
- var _a;
167
- (_a = getActiveInput()) === null || _a === void 0 ? void 0 : _a.focus();
168
- }, [getActiveInput]);
169
- var blurInput = useCallback(function () {
170
- var _a;
171
- (_a = getActiveInput()) === null || _a === void 0 ? void 0 : _a.blur();
172
- }, [getActiveInput]);
173
- var closeInputDropdown = useCallback(function () {
174
- closeOpenedDropdown();
175
- }, [closeOpenedDropdown]);
176
- var blinkInput = useCallback(function () {
177
- var _a;
178
- (_a = getActiveInput()) === null || _a === void 0 ? void 0 : _a.blink();
179
- }, [getActiveInput]);
180
- useImperativeHandle(ref, function () { return ({
181
- focus: focusInput,
182
- blur: blurInput,
183
- blink: blinkInput,
184
- close: closeInputDropdown,
185
- getRootNode: function () { return rootRef.current; },
186
- }); }, [blinkInput, blurInput, closeInputDropdown, focusInput, getActiveInput]);
187
- useLayoutEffect(function () {
188
- if (!isDropdownOpened) {
189
- return;
190
- }
191
- var selectedIndex = highlightedItemIndex !== null && highlightedItemIndex !== void 0 ? highlightedItemIndex : selectedItemIndex;
192
- if (selectedIndex < 0) {
193
- return;
194
- }
195
- var targetNode = itemRefs.current.get(selectedIndex);
196
- if (targetNode) {
197
- scrollSelectedItemIntoView(targetNode);
198
- }
199
- }, [highlightedItemIndex, isDropdownOpened, selectedItemIndex]);
200
- useEffect(function () {
201
- if (disabled && isDropdownOpened) {
202
- closeOpenedDropdown();
203
- }
204
- }, [closeOpenedDropdown, disabled, isDropdownOpened]);
205
- useEffect(function () {
206
- setIsMobileDevice(Boolean(isMobile));
207
- setCanUseMobileNativeTimePicker(useMobileNativeTimePicker && Boolean(isMobile));
208
- }, [useMobileNativeTimePicker]);
209
- var handleCloseMobileDropdown = useCallback(function () {
210
- closeOpenedDropdown();
211
- }, [closeOpenedDropdown]);
212
- var handleFocusBySource = function (event, isMobilePopupInput) {
213
- if (canUseMobileNativeTimePicker) {
214
- openNativeTimePicker();
215
- onFocus === null || onFocus === void 0 ? void 0 : onFocus(event);
216
- return;
217
- }
218
- if (canUseMobileDropdownTimePicker && !isMobilePopupInput) {
219
- openDropdown();
220
- return;
221
- }
222
- setIsInputFocused(true);
223
- openDropdown();
224
- if (isMouseDownOnFragmentRef.current && !isInputFocused) {
225
- if (isTimeDisplayEmpty(editingValueRef.current)) {
226
- selectSegment('hours');
227
- }
228
- else if (mouseDownSegmentRef.current) {
229
- selectSegment(mouseDownSegmentRef.current);
230
- }
231
- }
232
- else {
233
- selectSegment('hours');
234
- }
235
- onFocus === null || onFocus === void 0 ? void 0 : onFocus(event);
236
- };
237
- var handleFocus = function (event) { return handleFocusBySource(event, false); };
238
- var handleMobileFocus = function (event) { return handleFocusBySource(event, true); };
239
- var handleBlurBySource = function (event, isMobilePopupInput) {
240
- if (canUseMobileNativeTimePicker) {
241
- onBlur === null || onBlur === void 0 ? void 0 : onBlur(event);
242
- return;
243
- }
244
- if (canUseMobileDropdownTimePicker && !isMobilePopupInput) {
245
- return;
246
- }
247
- setIsInputFocused(false);
248
- resetMouseInteractionState();
249
- if (isMobilePopupInput) {
250
- onBlur === null || onBlur === void 0 ? void 0 : onBlur(event);
251
- return;
252
- }
253
- closeDropdown();
254
- if (isTimeDisplayEmpty(editingValueRef.current)) {
255
- clearEditingValue();
256
- onBlur === null || onBlur === void 0 ? void 0 : onBlur(event);
257
- return;
258
- }
259
- commitEditingValue();
260
- onBlur === null || onBlur === void 0 ? void 0 : onBlur(event);
261
- };
262
- var handleBlur = function (event) { return handleBlurBySource(event, false); };
263
- var handleMobileBlur = function (event) { return handleBlurBySource(event, true); };
264
- var handleClickBySource = function (event, isMobilePopupInput) {
265
- if (canUseMobileNativeTimePicker) {
266
- openNativeTimePicker();
267
- onClick === null || onClick === void 0 ? void 0 : onClick(event);
268
- return;
269
- }
270
- if (canUseMobileDropdownTimePicker && !isMobilePopupInput) {
271
- openDropdown();
272
- onClick === null || onClick === void 0 ? void 0 : onClick(event);
273
- return;
274
- }
275
- openDropdown();
276
- onClick === null || onClick === void 0 ? void 0 : onClick(event);
277
- };
278
- var handleClick = function (event) { return handleClickBySource(event, false); };
279
- var handleMobileClick = function (event) { return handleClickBySource(event, true); };
280
- var handleMouseDownCaptureBySource = function (event, isMobilePopupInput) {
281
- var _a, _b;
282
- if (canUseMobileNativeTimePicker || (canUseMobileDropdownTimePicker && !isMobilePopupInput)) {
283
- return;
284
- }
285
- var currentInputRef = isMobilePopupInput ? mobileInputRef : inputRef;
286
- var segment = (_b = (_a = currentInputRef.current) === null || _a === void 0 ? void 0 : _a.getSegment(event.target)) !== null && _b !== void 0 ? _b : null;
287
- var isFragment = segment !== null;
288
- if (isInputFocused && !isFragment) {
289
- event.preventDefault();
290
- }
291
- isMouseFocusRef.current = !isInputFocused;
292
- isMouseDownOnFragmentRef.current = isFragment;
293
- mouseDownSegmentRef.current = segment;
294
- };
295
- var handleMouseDownCapture = function (event) {
296
- return handleMouseDownCaptureBySource(event, false);
297
- };
298
- var handleMobileMouseDownCapture = function (event) {
299
- return handleMouseDownCaptureBySource(event, true);
300
- };
301
- var handleMouseUpBySource = function (_event, isMobilePopupInput) {
302
- if (disabled || canUseMobileNativeTimePicker || (canUseMobileDropdownTimePicker && !isMobilePopupInput)) {
303
- return;
304
- }
305
- syncSelectionWithDOM();
306
- };
307
- var handleMouseUp = function (event) { return handleMouseUpBySource(event, false); };
308
- var handleMobileMouseUp = function (event) { return handleMouseUpBySource(event, true); };
309
- var handleSelectSegmentByMouseBySource = function (segment, isMobilePopupInput) {
310
- if (canUseMobileNativeTimePicker) {
311
- openNativeTimePicker();
312
- return;
313
- }
314
- if (canUseMobileDropdownTimePicker && !isMobilePopupInput) {
315
- openDropdown();
316
- return;
317
- }
318
- openDropdown();
319
- if (disabled) {
320
- return;
321
- }
322
- if (!(isMouseFocusRef.current && isTimeDisplayEmpty(editingValueRef.current)) && selectedSegment !== segment) {
323
- normalizeCurrentSegmentIfNeeded(selectedSegment);
324
- selectSegment(segment);
325
- }
326
- resetMouseInteractionState();
327
- };
328
- var handleSelectSegmentByMouse = function (segment) { return handleSelectSegmentByMouseBySource(segment, false); };
329
- var handleMobileSelectSegmentByMouse = function (segment) {
330
- return handleSelectSegmentByMouseBySource(segment, true);
331
- };
332
- var handleKeyDownBySource = function (event, isMobilePopupInput) {
333
- var _a, _b, _c, _d, _e, _f;
334
- onKeyDown === null || onKeyDown === void 0 ? void 0 : onKeyDown(event);
335
- if (event.defaultPrevented || disabled) {
336
- return;
337
- }
338
- if (canUseMobileNativeTimePicker) {
339
- openNativeTimePicker();
340
- return;
341
- }
342
- if (canUseMobileDropdownTimePicker && !isMobilePopupInput) {
343
- openDropdown();
344
- return;
345
- }
346
- if (isShortcutSelectAll(event)) {
347
- event.preventDefault();
348
- selectAll();
349
- return;
350
- }
351
- if (event.altKey || event.ctrlKey || event.metaKey) {
352
- return;
353
- }
354
- var currentDisplayValue = displayValue;
355
- var currentSegment = selectedSegment;
356
- var hasAllSelectionInState = selection === 'all';
357
- var hasAllSelectionInDOM = (_b = (_a = getActiveInput()) === null || _a === void 0 ? void 0 : _a.isAllSelected()) !== null && _b !== void 0 ? _b : false;
358
- var shouldHandleAsAllSelection = hasAllSelectionInState || hasAllSelectionInDOM;
359
- if (hasAllSelectionInDOM && !hasAllSelectionInState) {
360
- syncSelectionWithDOM();
361
- }
362
- if (shouldHandleAsAllSelection && (isKeyBackspace(event) || isKeyDelete(event))) {
363
- event.preventDefault();
364
- updateEditingValue(getEmptyDisplayValue(format));
365
- selectSegment('hours');
366
- return;
367
- }
368
- if (DIGIT_REGEXP.test(event.key)) {
369
- event.preventDefault();
370
- resetHighlightedItem();
371
- var nextDigitInputValue = shouldHandleAsAllSelection ? getEmptyDisplayValue(format) : currentDisplayValue;
372
- var nextDigitInputSegment = shouldHandleAsAllSelection ? 'hours' : currentSegment;
373
- var result = formatDigitToTimeSegment(nextDigitInputValue, nextDigitInputSegment, event.key, format);
374
- if (result.shouldBlink) {
375
- (_c = getActiveInput()) === null || _c === void 0 ? void 0 : _c.blink();
376
- return;
377
- }
378
- updateEditingValue(result.nextValue);
379
- selectSegment(result.selectedSegment);
380
- return;
381
- }
382
- if (isKeyArrowLeft(event)) {
383
- event.preventDefault();
384
- normalizeCurrentSegmentIfNeeded(currentSegment);
385
- selectSegment((_d = getPreviousTimeSegment(currentSegment)) !== null && _d !== void 0 ? _d : currentSegment);
386
- return;
387
- }
388
- if (isModShift(isKeyTab)(event)) {
389
- var previousSegment = getPreviousTimeSegment(currentSegment);
390
- if (previousSegment) {
391
- event.preventDefault();
392
- normalizeCurrentSegmentIfNeeded(currentSegment);
393
- selectSegment(previousSegment);
394
- }
395
- return;
396
- }
397
- if (isKeyArrowRight(event)) {
398
- event.preventDefault();
399
- normalizeCurrentSegmentIfNeeded(currentSegment);
400
- selectSegment((_e = getNextTimeSegment(currentSegment, format)) !== null && _e !== void 0 ? _e : currentSegment);
401
- return;
402
- }
403
- if (isKeyTab(event)) {
404
- var nextSegment = getNextTimeSegment(currentSegment, format);
405
- if (nextSegment) {
406
- event.preventDefault();
407
- normalizeCurrentSegmentIfNeeded(currentSegment);
408
- selectSegment(nextSegment);
409
- }
410
- return;
411
- }
412
- if (isKeyArrowUp(event) || isKeyArrowDown(event)) {
413
- event.preventDefault();
414
- var itemStep = isKeyArrowUp(event) ? -1 : 1;
415
- if (tryNavigateItems(itemStep)) {
416
- return;
417
- }
418
- var step = isKeyArrowUp(event) ? 1 : -1;
419
- updateEditingValue(shiftTimeSegmentValue(currentDisplayValue, currentSegment, step, format));
420
- selectSegment(currentSegment);
421
- return;
422
- }
423
- if (isKeyBackspace(event)) {
424
- event.preventDefault();
425
- var nextDisplayValue = deleteTimeSegmentDigit(currentDisplayValue, currentSegment, format);
426
- var nextSegment = currentSegment;
427
- if (nextDisplayValue === currentDisplayValue) {
428
- var previousSegment = getPreviousTimeSegment(currentSegment);
429
- if (previousSegment) {
430
- nextSegment = previousSegment;
431
- nextDisplayValue = deleteTimeSegmentDigit(currentDisplayValue, previousSegment, format);
432
- }
433
- }
434
- updateEditingValue(nextDisplayValue);
435
- selectSegment(nextSegment);
436
- return;
437
- }
438
- if (isKeyDelete(event)) {
439
- event.preventDefault();
440
- updateEditingValue(replaceTimeSegment(currentDisplayValue, currentSegment, EMPTY_SEGMENT, format));
441
- selectSegment(currentSegment);
442
- return;
443
- }
444
- if (isKeyEscape(event)) {
445
- if (isDropdownOpened) {
446
- event.preventDefault();
447
- closeDropdown();
448
- }
449
- return;
450
- }
451
- if (isKeyEnter(event)) {
452
- if (isSelectHighlightedItem()) {
453
- event.preventDefault();
454
- }
455
- return;
456
- }
457
- if (isKeySpace(event)) {
458
- event.preventDefault();
459
- var nextSegment = getNextTimeSegment(currentSegment, format);
460
- var nextDisplayValue = commitTimeSegmentOnLeave(currentDisplayValue, currentSegment, format);
461
- updateEditingValue(nextDisplayValue);
462
- if (nextSegment) {
463
- selectSegment(nextSegment);
464
- }
465
- else {
466
- selectSegment(currentSegment);
467
- }
468
- return;
469
- }
470
- if (isKeyChar(event)) {
471
- event.preventDefault();
472
- (_f = getActiveInput()) === null || _f === void 0 ? void 0 : _f.blink();
473
- }
474
- };
475
- var handleKeyDown = function (event) { return handleKeyDownBySource(event, false); };
476
- var handleMobileKeyDown = function (event) { return handleKeyDownBySource(event, true); };
477
- var handlePasteBySource = function (event, isMobilePopupInput) {
478
- var _a, _b;
479
- onPaste === null || onPaste === void 0 ? void 0 : onPaste(event);
480
- if (event.defaultPrevented || disabled) {
481
- return;
482
- }
483
- if (canUseMobileNativeTimePicker || (canUseMobileDropdownTimePicker && !isMobilePopupInput)) {
484
- return;
485
- }
486
- var pastedValue = (_a = event.clipboardData) === null || _a === void 0 ? void 0 : _a.getData('text');
487
- var nextDisplayValue = parsePastedTimeValue(pastedValue, format);
488
- event.preventDefault();
489
- if (isTimeDisplayEmpty(nextDisplayValue)) {
490
- (_b = getActiveInput()) === null || _b === void 0 ? void 0 : _b.blink();
491
- return;
492
- }
493
- updateEditingValue(nextDisplayValue);
494
- selectSegment('hours');
495
- };
496
- var handlePaste = function (event) { return handlePasteBySource(event, false); };
497
- var handleMobilePaste = function (event) { return handlePasteBySource(event, true); };
498
- var handleNativeValueChange = useCallback(function (nextValue) {
499
- setEditingValue(nextValue);
500
- onValueChange === null || onValueChange === void 0 ? void 0 : onValueChange(nextValue);
501
- }, [onValueChange, setEditingValue]);
502
- return (React.createElement(CommonWrapper, __assign({}, props),
503
- React.createElement("span", { ref: rootRef, className: styles.root(), "data-tid": TimePickerDataTids.root },
504
- React.createElement(TimeInput, __assign({}, inputProps, { "data-tid": TimePickerDataTids.input, ref: inputRef, disabled: disabled, hasDropdown: hasDropdown, size: size, format: format, corners: corners, rightIcon: rightIcon, suffix: suffix, value: displayValue, "aria-haspopup": hasDropdown ? 'listbox' : undefined, "aria-expanded": hasDropdown && isDropdownOpened ? true : undefined, "aria-controls": hasDropdown && isDropdownOpened ? popupId : undefined, "aria-activedescendant": activeDescendantId, "aria-placeholder": ariaPlaceholder, onClick: handleClick, onBlur: handleBlur, onFocus: handleFocus, onMouseDownCapture: handleMouseDownCapture, onMouseUp: handleMouseUp, onKeyDown: handleKeyDown, onSelectSegment: handleSelectSegmentByMouse, onPaste: handlePaste })),
505
- canUseMobileNativeTimePicker && (React.createElement(NativeTimeInput, { "data-tid": TimePickerDataTids.nativeInput, disabled: disabled, ref: nativeInputRef, format: format, minTime: minTime, maxTime: maxTime, value: editingValue, onValueChange: handleNativeValueChange })),
506
- canUseMobileDropdownTimePicker && isDropdownOpened && (React.createElement(TimePickerMobilePopup, { id: popupId, opened: isDropdownOpened, value: displayValue, inputRef: mobileInputRef, disabled: disabled, format: format, size: size, rightIcon: rightIcon, suffix: suffix, resolvedItems: resolvedItems, highlightedItemIndex: highlightedItemIndex, normalizedValue: normalizedValue, itemRefs: itemRefs, error: props.error, warning: props.warning, "aria-describedby": props['aria-describedby'], "aria-label": props['aria-label'], "aria-placeholder": ariaPlaceholder, onFocus: handleMobileFocus, onBlur: handleMobileBlur, onClick: handleMobileClick, onKeyDown: handleMobileKeyDown, onMouseDownCapture: handleMobileMouseDownCapture, onMouseUp: handleMobileMouseUp, onPaste: handleMobilePaste, onSelectSegment: handleMobileSelectSegmentByMouse, onSelectItem: selectItem, onCloseRequest: handleCloseMobileDropdown })),
507
- hasDropdown &&
508
- !canUseMobileNativeTimePicker &&
509
- !canUseMobileDropdownTimePicker &&
510
- isDropdownOpened &&
511
- rootRef.current && (React.createElement(TimePickerPopup, { id: popupId, anchorElement: rootRef.current, menuPos: menuPos, menuAlign: menuAlign, menuWidth: menuWidth, popupMaxHeight: popupMaxHeight, format: format, size: size, resolvedItems: resolvedItems, highlightedItemIndex: highlightedItemIndex, normalizedValue: normalizedValue, itemRefs: itemRefs, onSelectItem: selectItem })))));
512
- }), { validate: validateTimePicker });
513
- //# sourceMappingURL=TimePicker.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"TimePicker.js","sourceRoot":"","sources":["TimePicker.tsx"],"names":[],"mappings":"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","sourcesContent":["import type { AriaAttributes, HTMLAttributes, ReactNode } from 'react';\nimport React, {\n useCallback,\n useContext,\n useEffect,\n useImperativeHandle,\n useLayoutEffect,\n useMemo,\n useRef,\n useState,\n} from 'react';\n\nimport type { CommonProps } from '../../internal/CommonWrapper/index.js';\nimport { CommonWrapper } from '../../internal/CommonWrapper/index.js';\nimport type { NativeTimeInputRef } from '../../internal/NativeTimeInput/index.js';\nimport { NativeTimeInput } from '../../internal/NativeTimeInput/index.js';\nimport type { TimeInputRef } from '../../internal/TimeInput/index.js';\nimport { TimeInput } from '../../internal/TimeInput/index.js';\nimport { isIOS, isMobile } from '../../lib/client.js';\nimport {\n isKeyArrowDown,\n isKeyArrowLeft,\n isKeyArrowRight,\n isKeyArrowUp,\n isKeyBackspace,\n isKeyChar,\n isKeyDelete,\n isKeyEnter,\n isKeyEscape,\n isKeySpace,\n isKeyTab,\n isModShift,\n isShortcutSelectAll,\n} from '../../lib/events/keyboard/identifiers.js';\nimport { forwardRefAndName } from '../../lib/forwardRefAndName.js';\nimport { useLocaleForControl } from '../../lib/locale/useLocaleForControl.js';\nimport { useStyles } from '../../lib/renderEnvironment/index.js';\nimport { ThemeContext } from '../../lib/theming/ThemeContext.js';\nimport type { SizeProp } from '../../lib/types/props.js';\nimport { getRandomID } from '../../lib/utils.js';\nimport { scrollSelectedItemIntoView } from './helpers/scrollSelectedItemIntoView.js';\nimport { DIGIT_REGEXP, EMPTY_SEGMENT, EMPTY_VALUE, TimePickerDataTids } from './helpers/TimePicker.constants.js';\nimport {\n commitTimeSegmentOnLeave,\n deleteTimeSegmentDigit,\n formatDigitToTimeSegment,\n shiftTimeSegmentValue,\n} from './helpers/TimePicker.editing.js';\nimport { getTimePickerPopupMaxHeight } from './helpers/TimePicker.layout.js';\nimport { getNextTimeSegment, getPreviousTimeSegment } from './helpers/TimePicker.selection.js';\nimport type { TimeFormat, TimeItem, TimeSegment } from './helpers/TimePicker.shared.js';\nimport {\n getEmptyDisplayValue,\n isTimeDisplayEmpty,\n isTimeValueOutOfRange,\n normalizeTimeValue,\n parsePastedTimeValue,\n replaceTimeSegment,\n} from './helpers/TimePicker.value.js';\nimport { validateTimePicker } from './helpers/validateTimePicker.js';\nimport { useTimePickerDropdown } from './hooks/useTimePickerDropdown.js';\nimport { useTimePickerSelection } from './hooks/useTimePickerSelection.js';\nimport { useTimePickerValue } from './hooks/useTimePickerValue.js';\nimport { TimePickerLocaleHelper } from './locale/index.js';\nimport { getStyles } from './TimePicker.styles.js';\nimport { TimePickerMobilePopup } from './TimePickerMobilePopup.js';\nimport { TimePickerPopup } from './TimePickerPopup.js';\n\nexport interface TimePickerProps\n extends\n CommonProps,\n Pick<AriaAttributes, 'aria-describedby' | 'aria-label'>,\n Pick<HTMLAttributes<HTMLElement>, 'id'> {\n /** Устанавливает формат времени @default HH:mm */\n format?: TimeFormat;\n /** Определяет массив объектов с элементами в формате TimeItem. */\n items?: TimeItem[];\n /** Задает нижнюю границу времени. Элементы за границей становятся заблокированными. */\n minTime?: string;\n /** Задает верхнюю границу времени. Элементы за границей становятся заблокированными. */\n maxTime?: string;\n /** Значение поля @param value. */\n value?: string;\n /** Устанавливает фокус на поле ввода после окончания загрузки страницы @default false */\n autoFocus?: boolean;\n /** Делает компонент заблокированным. */\n disabled?: boolean;\n /** Переводит контрол в состояние валидации ошибки. */\n error?: boolean;\n /** Переводит контрол в состояние валидации предупреждения. */\n warning?: boolean;\n /** Включает нативный системный выбор времени на мобильных устройствах. */\n useMobileNativeTimePicker?: boolean;\n /** Расположение выпадающего меню. */\n menuPos?: 'top' | 'bottom';\n /** Выравнивание выпадающего меню. */\n menuAlign?: 'left' | 'right';\n /** Ширина выпадающего меню. По умолчанию — минимальная ширина поля ввода, расширяется по контенту. */\n menuWidth?: string | number;\n /** Задает ширину поля. */\n width?: string | number;\n /** Переопределяет иконку или скрывает, если передать `null`. */\n rightIcon?: React.ReactNode | (() => React.ReactNode);\n /** Устанавливает суффикс после значения и перед иконкой. */\n suffix?: ReactNode;\n /** Размер поля ввода и выпадающего меню. */\n size?: SizeProp;\n /** Устанавливает радиус скруглений углов.\n * @ignore */\n corners?: Partial<\n Pick<\n React.CSSProperties,\n 'borderTopRightRadius' | 'borderBottomRightRadius' | 'borderBottomLeftRadius' | 'borderTopLeftRadius'\n >\n >;\n /** Задает функцию, которая вызывается при нажатии на контрол. */\n onClick?(event: React.MouseEvent<HTMLElement>): void;\n /**\n * Событие изменения значения `value` в поле.\n * Во процессе ввода значение частично нормализуется по сегментам, например `1` => `01`.\n * При потере фокуса возвращает полностью нормализованное значение в формате `HH:mm[:ss]`.\n */\n onValueChange?(value: string): void;\n /** Событие потери фокуса. */\n onBlur?(event: React.FocusEvent<HTMLElement>): void;\n /** Событие получения фокуса. */\n onFocus?(event: React.FocusEvent<HTMLElement>): void;\n /** Событие нажатия клавиши. */\n onKeyDown?(event: React.KeyboardEvent<HTMLElement>): void;\n /** Событие вставки из буфера. */\n onPaste?(event: React.ClipboardEvent<HTMLElement>): void;\n}\n\nexport interface TimePickerRef {\n /** Устанавливает фокус на поле ввода. */\n focus(): void;\n /** Снимает фокус с поля ввода. */\n blur(): void;\n /** Закрывает выпадающее меню. */\n close(): void;\n /** Запускает анимацию blink у поля ввода времени. */\n blink(): void;\n /** Возвращает корневой DOM-узел компонента. */\n getRootNode(): HTMLElement | null;\n}\n\nexport type TimePicker = TimePickerRef;\n\n/** Поле с временем помогает пользователю быстро и удобно указать время в правильном формате.\n * В поле можно ввести время с клавиатуры, либо выбрать из выпадающего списка с помощью мыши (нужно активировать, см. примеры с пропом `items`).\n */\nexport const TimePicker = Object.assign(\n forwardRefAndName<TimePickerRef, TimePickerProps>('TimePicker', (props, ref) => {\n const {\n disabled,\n useMobileNativeTimePicker = false,\n format = 'HH:mm',\n size = 'small',\n items,\n menuPos,\n menuAlign,\n menuWidth,\n minTime,\n maxTime,\n rightIcon,\n suffix,\n corners,\n value,\n onValueChange,\n onFocus,\n onBlur,\n onClick,\n onKeyDown,\n onPaste,\n ...inputProps\n } = props;\n\n const theme = useContext(ThemeContext);\n\n const styles = useStyles(getStyles);\n const locale = useLocaleForControl('TimePicker', TimePickerLocaleHelper);\n\n const [isInputFocused, setIsInputFocused] = useState(false);\n\n const inputRef = useRef<TimeInputRef>(null);\n const mobileInputRef = useRef<TimeInputRef>(null);\n const nativeInputRef = useRef<NativeTimeInputRef>(null);\n const rootRef = useRef<HTMLSpanElement>(null);\n const itemRefs = useRef(new Map<number, HTMLSpanElement>());\n const isMouseFocusRef = useRef(false);\n const isMouseDownOnFragmentRef = useRef(false);\n const mouseDownSegmentRef = useRef<TimeSegment | null>(null);\n const popupIdRef = useRef(TimePickerDataTids.popup + getRandomID());\n\n const [isMobileDevice, setIsMobileDevice] = useState(false);\n const [canUseMobileNativeTimePicker, setCanUseMobileNativeTimePicker] = useState(false);\n\n const {\n editingValue,\n editingValueRef,\n setEditingValue,\n updateEditingValue,\n commitEditingValue,\n clearEditingValue,\n } = useTimePickerValue({ isInputFocused, format, value, onValueChange });\n\n const hasDropdown = (items?.length ?? 0) > 0;\n\n const resolvedItems = useMemo(\n () =>\n (items ?? []).map((item) => ({\n ...item,\n disabled: Boolean(item.disabled) || isTimeValueOutOfRange(item.value, format, minTime, maxTime),\n })),\n [maxTime, minTime, format, items],\n );\n\n const popupMaxHeight = getTimePickerPopupMaxHeight(size, theme);\n\n const ariaPlaceholder = format === 'HH:mm' ? locale.ariaPlaceholderHHMM : locale.ariaPlaceholderHHMMSS;\n\n const normalizedValue = normalizeTimeValue(editingValue, format);\n\n const selectedItemIndex = resolvedItems.findIndex(\n (item) => normalizeTimeValue(item.value, format) === normalizedValue,\n );\n\n const canUseMobileDropdownTimePicker = hasDropdown && isMobileDevice && !canUseMobileNativeTimePicker;\n\n let displayValue = editingValue;\n\n if (isInputFocused) {\n displayValue = editingValue === EMPTY_VALUE ? getEmptyDisplayValue(format) : editingValue;\n } else if (isTimeDisplayEmpty(editingValue)) {\n displayValue = EMPTY_VALUE;\n }\n\n const resetMouseInteractionState = useCallback(() => {\n isMouseFocusRef.current = false;\n isMouseDownOnFragmentRef.current = false;\n mouseDownSegmentRef.current = null;\n }, []);\n\n const normalizeCurrentSegmentIfNeeded = useCallback(\n (segment: TimeSegment) => {\n const nextDisplayValue = commitTimeSegmentOnLeave(\n editingValue === EMPTY_VALUE ? getEmptyDisplayValue(format) : editingValue,\n segment,\n format,\n );\n\n updateEditingValue(nextDisplayValue);\n },\n [editingValue, format, updateEditingValue],\n );\n\n const openNativeTimePicker = useCallback(() => {\n if (!canUseMobileNativeTimePicker || disabled) {\n return;\n }\n\n if (isIOS) {\n nativeInputRef.current?.focus();\n } else {\n nativeInputRef.current?.click();\n }\n }, [canUseMobileNativeTimePicker, disabled]);\n\n const {\n isDropdownOpened,\n highlightedItemIndex,\n openDropdown,\n closeDropdown,\n resetHighlightedItem,\n tryNavigateItems,\n } = useTimePickerDropdown({\n disabled,\n hasDropdown,\n items: resolvedItems,\n selectedItemIndex: selectedItemIndex >= 0 ? selectedItemIndex : null,\n });\n\n const popupId = popupIdRef.current;\n const activeDescendantId =\n hasDropdown && highlightedItemIndex !== null ? `${popupId}-item-${highlightedItemIndex}` : undefined;\n\n const getActiveInput = useCallback(\n () => (canUseMobileDropdownTimePicker && isDropdownOpened ? mobileInputRef.current : inputRef.current),\n [canUseMobileDropdownTimePicker, isDropdownOpened],\n );\n\n const { selection, selectedSegment, selectSegment, selectAll, syncSelectionWithDOM } = useTimePickerSelection({\n isInputFocused,\n format,\n displayValue,\n getInput: getActiveInput,\n });\n\n const closeOpenedDropdown = useCallback(() => {\n if (canUseMobileDropdownTimePicker && isDropdownOpened) {\n setIsInputFocused(false);\n resetMouseInteractionState();\n\n if (isTimeDisplayEmpty(editingValueRef.current)) {\n clearEditingValue();\n } else {\n commitEditingValue();\n }\n }\n\n closeDropdown();\n }, [\n canUseMobileDropdownTimePicker,\n clearEditingValue,\n closeDropdown,\n commitEditingValue,\n editingValueRef,\n isDropdownOpened,\n resetMouseInteractionState,\n ]);\n\n const selectItem = useCallback(\n (item: TimeItem) => {\n if (item.disabled) {\n return;\n }\n\n if (canUseMobileDropdownTimePicker) {\n setIsInputFocused(false);\n resetMouseInteractionState();\n }\n\n updateEditingValue(item.value);\n closeDropdown();\n },\n [canUseMobileDropdownTimePicker, closeDropdown, resetMouseInteractionState, updateEditingValue],\n );\n\n const isSelectHighlightedItem = useCallback(() => {\n if (highlightedItemIndex === null) {\n return false;\n }\n\n const item = resolvedItems[highlightedItemIndex];\n\n if (!item || item.disabled) {\n return true;\n }\n\n selectItem(item);\n return true;\n }, [highlightedItemIndex, resolvedItems, selectItem]);\n\n const focusInput = useCallback(() => {\n getActiveInput()?.focus();\n }, [getActiveInput]);\n\n const blurInput = useCallback(() => {\n getActiveInput()?.blur();\n }, [getActiveInput]);\n\n const closeInputDropdown = useCallback(() => {\n closeOpenedDropdown();\n }, [closeOpenedDropdown]);\n\n const blinkInput = useCallback(() => {\n getActiveInput()?.blink();\n }, [getActiveInput]);\n\n useImperativeHandle(\n ref,\n () => ({\n focus: focusInput,\n blur: blurInput,\n blink: blinkInput,\n close: closeInputDropdown,\n getRootNode: () => rootRef.current,\n }),\n [blinkInput, blurInput, closeInputDropdown, focusInput, getActiveInput],\n );\n\n useLayoutEffect(() => {\n if (!isDropdownOpened) {\n return;\n }\n\n const selectedIndex = highlightedItemIndex ?? selectedItemIndex;\n\n if (selectedIndex < 0) {\n return;\n }\n\n const targetNode = itemRefs.current.get(selectedIndex);\n\n if (targetNode) {\n scrollSelectedItemIntoView(targetNode);\n }\n }, [highlightedItemIndex, isDropdownOpened, selectedItemIndex]);\n\n useEffect(() => {\n if (disabled && isDropdownOpened) {\n closeOpenedDropdown();\n }\n }, [closeOpenedDropdown, disabled, isDropdownOpened]);\n\n useEffect(() => {\n setIsMobileDevice(Boolean(isMobile));\n setCanUseMobileNativeTimePicker(useMobileNativeTimePicker && Boolean(isMobile));\n }, [useMobileNativeTimePicker]);\n\n const handleCloseMobileDropdown = useCallback(() => {\n closeOpenedDropdown();\n }, [closeOpenedDropdown]);\n\n const handleFocusBySource = (event: React.FocusEvent<HTMLInputElement>, isMobilePopupInput: boolean) => {\n if (canUseMobileNativeTimePicker) {\n openNativeTimePicker();\n onFocus?.(event);\n return;\n }\n\n if (canUseMobileDropdownTimePicker && !isMobilePopupInput) {\n openDropdown();\n return;\n }\n\n setIsInputFocused(true);\n openDropdown();\n\n if (isMouseDownOnFragmentRef.current && !isInputFocused) {\n if (isTimeDisplayEmpty(editingValueRef.current)) {\n selectSegment('hours');\n } else if (mouseDownSegmentRef.current) {\n selectSegment(mouseDownSegmentRef.current);\n }\n } else {\n selectSegment('hours');\n }\n\n onFocus?.(event);\n };\n\n const handleFocus = (event: React.FocusEvent<HTMLInputElement>) => handleFocusBySource(event, false);\n\n const handleMobileFocus = (event: React.FocusEvent<HTMLInputElement>) => handleFocusBySource(event, true);\n\n const handleBlurBySource = (event: React.FocusEvent<HTMLInputElement>, isMobilePopupInput: boolean) => {\n if (canUseMobileNativeTimePicker) {\n onBlur?.(event);\n return;\n }\n\n if (canUseMobileDropdownTimePicker && !isMobilePopupInput) {\n return;\n }\n\n setIsInputFocused(false);\n resetMouseInteractionState();\n\n if (isMobilePopupInput) {\n onBlur?.(event);\n return;\n }\n\n closeDropdown();\n\n if (isTimeDisplayEmpty(editingValueRef.current)) {\n clearEditingValue();\n onBlur?.(event);\n return;\n }\n\n commitEditingValue();\n onBlur?.(event);\n };\n\n const handleBlur = (event: React.FocusEvent<HTMLInputElement>) => handleBlurBySource(event, false);\n\n const handleMobileBlur = (event: React.FocusEvent<HTMLInputElement>) => handleBlurBySource(event, true);\n\n const handleClickBySource = (event: React.MouseEvent<HTMLInputElement>, isMobilePopupInput: boolean) => {\n if (canUseMobileNativeTimePicker) {\n openNativeTimePicker();\n onClick?.(event);\n return;\n }\n\n if (canUseMobileDropdownTimePicker && !isMobilePopupInput) {\n openDropdown();\n onClick?.(event);\n return;\n }\n\n openDropdown();\n\n onClick?.(event);\n };\n\n const handleClick = (event: React.MouseEvent<HTMLInputElement>) => handleClickBySource(event, false);\n\n const handleMobileClick = (event: React.MouseEvent<HTMLInputElement>) => handleClickBySource(event, true);\n\n const handleMouseDownCaptureBySource = (event: React.MouseEvent<HTMLInputElement>, isMobilePopupInput: boolean) => {\n if (canUseMobileNativeTimePicker || (canUseMobileDropdownTimePicker && !isMobilePopupInput)) {\n return;\n }\n\n const currentInputRef = isMobilePopupInput ? mobileInputRef : inputRef;\n const segment = currentInputRef.current?.getSegment(event.target) ?? null;\n const isFragment = segment !== null;\n\n if (isInputFocused && !isFragment) {\n event.preventDefault();\n }\n\n isMouseFocusRef.current = !isInputFocused;\n isMouseDownOnFragmentRef.current = isFragment;\n mouseDownSegmentRef.current = segment;\n };\n\n const handleMouseDownCapture = (event: React.MouseEvent<HTMLInputElement>) =>\n handleMouseDownCaptureBySource(event, false);\n\n const handleMobileMouseDownCapture = (event: React.MouseEvent<HTMLInputElement>) =>\n handleMouseDownCaptureBySource(event, true);\n\n const handleMouseUpBySource = (_event: React.MouseEvent<HTMLInputElement>, isMobilePopupInput: boolean) => {\n if (disabled || canUseMobileNativeTimePicker || (canUseMobileDropdownTimePicker && !isMobilePopupInput)) {\n return;\n }\n\n syncSelectionWithDOM();\n };\n\n const handleMouseUp = (event: React.MouseEvent<HTMLInputElement>) => handleMouseUpBySource(event, false);\n\n const handleMobileMouseUp = (event: React.MouseEvent<HTMLInputElement>) => handleMouseUpBySource(event, true);\n\n const handleSelectSegmentByMouseBySource = (segment: TimeSegment, isMobilePopupInput: boolean) => {\n if (canUseMobileNativeTimePicker) {\n openNativeTimePicker();\n return;\n }\n\n if (canUseMobileDropdownTimePicker && !isMobilePopupInput) {\n openDropdown();\n return;\n }\n\n openDropdown();\n\n if (disabled) {\n return;\n }\n\n if (!(isMouseFocusRef.current && isTimeDisplayEmpty(editingValueRef.current)) && selectedSegment !== segment) {\n normalizeCurrentSegmentIfNeeded(selectedSegment);\n selectSegment(segment);\n }\n\n resetMouseInteractionState();\n };\n\n const handleSelectSegmentByMouse = (segment: TimeSegment) => handleSelectSegmentByMouseBySource(segment, false);\n\n const handleMobileSelectSegmentByMouse = (segment: TimeSegment) =>\n handleSelectSegmentByMouseBySource(segment, true);\n\n const handleKeyDownBySource = (event: React.KeyboardEvent<HTMLInputElement>, isMobilePopupInput: boolean) => {\n onKeyDown?.(event);\n\n if (event.defaultPrevented || disabled) {\n return;\n }\n\n if (canUseMobileNativeTimePicker) {\n openNativeTimePicker();\n return;\n }\n\n if (canUseMobileDropdownTimePicker && !isMobilePopupInput) {\n openDropdown();\n return;\n }\n\n if (isShortcutSelectAll(event)) {\n event.preventDefault();\n selectAll();\n return;\n }\n\n if (event.altKey || event.ctrlKey || event.metaKey) {\n return;\n }\n\n const currentDisplayValue = displayValue;\n const currentSegment = selectedSegment;\n const hasAllSelectionInState = selection === 'all';\n const hasAllSelectionInDOM = getActiveInput()?.isAllSelected() ?? false;\n const shouldHandleAsAllSelection = hasAllSelectionInState || hasAllSelectionInDOM;\n\n if (hasAllSelectionInDOM && !hasAllSelectionInState) {\n syncSelectionWithDOM();\n }\n\n if (shouldHandleAsAllSelection && (isKeyBackspace(event) || isKeyDelete(event))) {\n event.preventDefault();\n updateEditingValue(getEmptyDisplayValue(format));\n selectSegment('hours');\n return;\n }\n\n if (DIGIT_REGEXP.test(event.key)) {\n event.preventDefault();\n\n resetHighlightedItem();\n\n const nextDigitInputValue = shouldHandleAsAllSelection ? getEmptyDisplayValue(format) : currentDisplayValue;\n\n const nextDigitInputSegment = shouldHandleAsAllSelection ? 'hours' : currentSegment;\n\n const result = formatDigitToTimeSegment(nextDigitInputValue, nextDigitInputSegment, event.key, format);\n\n if (result.shouldBlink) {\n getActiveInput()?.blink();\n return;\n }\n\n updateEditingValue(result.nextValue);\n selectSegment(result.selectedSegment);\n return;\n }\n\n if (isKeyArrowLeft(event)) {\n event.preventDefault();\n normalizeCurrentSegmentIfNeeded(currentSegment);\n selectSegment(getPreviousTimeSegment(currentSegment) ?? currentSegment);\n return;\n }\n\n if (isModShift(isKeyTab)(event)) {\n const previousSegment = getPreviousTimeSegment(currentSegment);\n\n if (previousSegment) {\n event.preventDefault();\n normalizeCurrentSegmentIfNeeded(currentSegment);\n selectSegment(previousSegment);\n }\n return;\n }\n\n if (isKeyArrowRight(event)) {\n event.preventDefault();\n normalizeCurrentSegmentIfNeeded(currentSegment);\n selectSegment(getNextTimeSegment(currentSegment, format) ?? currentSegment);\n return;\n }\n\n if (isKeyTab(event)) {\n const nextSegment = getNextTimeSegment(currentSegment, format);\n\n if (nextSegment) {\n event.preventDefault();\n normalizeCurrentSegmentIfNeeded(currentSegment);\n selectSegment(nextSegment);\n }\n return;\n }\n\n if (isKeyArrowUp(event) || isKeyArrowDown(event)) {\n event.preventDefault();\n\n const itemStep = isKeyArrowUp(event) ? -1 : 1;\n\n if (tryNavigateItems(itemStep)) {\n return;\n }\n\n const step = isKeyArrowUp(event) ? 1 : -1;\n\n updateEditingValue(shiftTimeSegmentValue(currentDisplayValue, currentSegment, step, format));\n selectSegment(currentSegment);\n return;\n }\n\n if (isKeyBackspace(event)) {\n event.preventDefault();\n\n let nextDisplayValue = deleteTimeSegmentDigit(currentDisplayValue, currentSegment, format);\n let nextSegment = currentSegment;\n\n if (nextDisplayValue === currentDisplayValue) {\n const previousSegment = getPreviousTimeSegment(currentSegment);\n\n if (previousSegment) {\n nextSegment = previousSegment;\n nextDisplayValue = deleteTimeSegmentDigit(currentDisplayValue, previousSegment, format);\n }\n }\n\n updateEditingValue(nextDisplayValue);\n selectSegment(nextSegment);\n return;\n }\n\n if (isKeyDelete(event)) {\n event.preventDefault();\n updateEditingValue(replaceTimeSegment(currentDisplayValue, currentSegment, EMPTY_SEGMENT, format));\n selectSegment(currentSegment);\n return;\n }\n\n if (isKeyEscape(event)) {\n if (isDropdownOpened) {\n event.preventDefault();\n closeDropdown();\n }\n return;\n }\n\n if (isKeyEnter(event)) {\n if (isSelectHighlightedItem()) {\n event.preventDefault();\n }\n return;\n }\n\n if (isKeySpace(event)) {\n event.preventDefault();\n\n const nextSegment = getNextTimeSegment(currentSegment, format);\n const nextDisplayValue = commitTimeSegmentOnLeave(currentDisplayValue, currentSegment, format);\n\n updateEditingValue(nextDisplayValue);\n\n if (nextSegment) {\n selectSegment(nextSegment);\n } else {\n selectSegment(currentSegment);\n }\n return;\n }\n\n if (isKeyChar(event)) {\n event.preventDefault();\n getActiveInput()?.blink();\n }\n };\n\n const handleKeyDown = (event: React.KeyboardEvent<HTMLInputElement>) => handleKeyDownBySource(event, false);\n\n const handleMobileKeyDown = (event: React.KeyboardEvent<HTMLInputElement>) => handleKeyDownBySource(event, true);\n\n const handlePasteBySource = (event: React.ClipboardEvent<HTMLInputElement>, isMobilePopupInput: boolean) => {\n onPaste?.(event);\n\n if (event.defaultPrevented || disabled) {\n return;\n }\n\n if (canUseMobileNativeTimePicker || (canUseMobileDropdownTimePicker && !isMobilePopupInput)) {\n return;\n }\n\n const pastedValue = event.clipboardData?.getData('text');\n const nextDisplayValue = parsePastedTimeValue(pastedValue, format);\n\n event.preventDefault();\n\n if (isTimeDisplayEmpty(nextDisplayValue)) {\n getActiveInput()?.blink();\n return;\n }\n\n updateEditingValue(nextDisplayValue);\n selectSegment('hours');\n };\n\n const handlePaste = (event: React.ClipboardEvent<HTMLInputElement>) => handlePasteBySource(event, false);\n\n const handleMobilePaste = (event: React.ClipboardEvent<HTMLInputElement>) => handlePasteBySource(event, true);\n\n const handleNativeValueChange = useCallback(\n (nextValue: string) => {\n setEditingValue(nextValue);\n onValueChange?.(nextValue);\n },\n [onValueChange, setEditingValue],\n );\n\n return (\n <CommonWrapper {...props}>\n <span ref={rootRef} className={styles.root()} data-tid={TimePickerDataTids.root}>\n <TimeInput\n {...inputProps}\n data-tid={TimePickerDataTids.input}\n ref={inputRef}\n disabled={disabled}\n hasDropdown={hasDropdown}\n size={size}\n format={format}\n corners={corners}\n rightIcon={rightIcon}\n suffix={suffix}\n value={displayValue}\n aria-haspopup={hasDropdown ? 'listbox' : undefined}\n aria-expanded={hasDropdown && isDropdownOpened ? true : undefined}\n aria-controls={hasDropdown && isDropdownOpened ? popupId : undefined}\n aria-activedescendant={activeDescendantId}\n aria-placeholder={ariaPlaceholder}\n onClick={handleClick}\n onBlur={handleBlur}\n onFocus={handleFocus}\n onMouseDownCapture={handleMouseDownCapture}\n onMouseUp={handleMouseUp}\n onKeyDown={handleKeyDown}\n onSelectSegment={handleSelectSegmentByMouse}\n onPaste={handlePaste}\n />\n\n {canUseMobileNativeTimePicker && (\n <NativeTimeInput\n data-tid={TimePickerDataTids.nativeInput}\n disabled={disabled}\n ref={nativeInputRef}\n format={format}\n minTime={minTime}\n maxTime={maxTime}\n value={editingValue}\n onValueChange={handleNativeValueChange}\n />\n )}\n\n {canUseMobileDropdownTimePicker && isDropdownOpened && (\n <TimePickerMobilePopup\n id={popupId}\n opened={isDropdownOpened}\n value={displayValue}\n inputRef={mobileInputRef}\n disabled={disabled}\n format={format}\n size={size}\n rightIcon={rightIcon}\n suffix={suffix}\n resolvedItems={resolvedItems}\n highlightedItemIndex={highlightedItemIndex}\n normalizedValue={normalizedValue}\n itemRefs={itemRefs}\n error={props.error}\n warning={props.warning}\n aria-describedby={props['aria-describedby']}\n aria-label={props['aria-label']}\n aria-placeholder={ariaPlaceholder}\n onFocus={handleMobileFocus}\n onBlur={handleMobileBlur}\n onClick={handleMobileClick}\n onKeyDown={handleMobileKeyDown}\n onMouseDownCapture={handleMobileMouseDownCapture}\n onMouseUp={handleMobileMouseUp}\n onPaste={handleMobilePaste}\n onSelectSegment={handleMobileSelectSegmentByMouse}\n onSelectItem={selectItem}\n onCloseRequest={handleCloseMobileDropdown}\n />\n )}\n\n {hasDropdown &&\n !canUseMobileNativeTimePicker &&\n !canUseMobileDropdownTimePicker &&\n isDropdownOpened &&\n rootRef.current && (\n <TimePickerPopup\n id={popupId}\n anchorElement={rootRef.current}\n menuPos={menuPos}\n menuAlign={menuAlign}\n menuWidth={menuWidth}\n popupMaxHeight={popupMaxHeight}\n format={format}\n size={size}\n resolvedItems={resolvedItems}\n highlightedItemIndex={highlightedItemIndex}\n normalizedValue={normalizedValue}\n itemRefs={itemRefs}\n onSelectItem={selectItem}\n />\n )}\n </span>\n </CommonWrapper>\n );\n }),\n { validate: validateTimePicker },\n);\n"]}
@@ -1,11 +0,0 @@
1
- import type { Theme } from '../../lib/theming/Theme.js';
2
- export declare const getStyles: import("../../lib/theming/Emotion.js").StylesGetter<{
3
- root(): string;
4
- popup(t: Theme): string;
5
- item(): string;
6
- itemSmall(t: Theme): string;
7
- itemMedium(t: Theme): string;
8
- itemLarge(t: Theme): string;
9
- itemValue(): string;
10
- itemLabel(t: Theme): string;
11
- }>;