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