@salutejs/plasma-new-hope 0.337.0-canary.2255.18028844305.0 → 0.337.0-canary.2257.18032815887.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 (208) hide show
  1. package/cjs/components/Combobox/ComboboxNew/Combobox.js +1 -1
  2. package/cjs/components/Combobox/ComboboxNew/Combobox.js.map +1 -1
  3. package/cjs/components/Dropdown/Dropdown.js +1 -1
  4. package/cjs/components/Dropdown/Dropdown.js.map +1 -1
  5. package/cjs/components/Select/Select.js +1 -1
  6. package/cjs/components/Select/Select.js.map +1 -1
  7. package/cjs/components/TimePicker/TimePicker.css +93 -0
  8. package/cjs/components/TimePicker/TimePicker.js +732 -0
  9. package/cjs/components/TimePicker/TimePicker.js.map +1 -0
  10. package/cjs/components/TimePicker/TimePicker.styles.js +54 -0
  11. package/cjs/components/TimePicker/TimePicker.styles.js.map +1 -0
  12. package/cjs/components/TimePicker/TimePicker.styles_ar3obv.css +4 -0
  13. package/cjs/components/TimePicker/TimePicker.tokens.js +133 -0
  14. package/cjs/components/TimePicker/TimePicker.tokens.js.map +1 -0
  15. package/cjs/components/TimePicker/hooks/useKeyboardNavigation.js +32 -0
  16. package/cjs/components/TimePicker/hooks/useKeyboardNavigation.js.map +1 -0
  17. package/cjs/components/TimePicker/ui/TimeColumn/TimeColumn.css +7 -0
  18. package/cjs/components/TimePicker/ui/TimeColumn/TimeColumn.js +65 -0
  19. package/cjs/components/TimePicker/ui/TimeColumn/TimeColumn.js.map +1 -0
  20. package/cjs/components/TimePicker/ui/TimeColumn/TimeColumn.styles.js +61 -0
  21. package/cjs/components/TimePicker/ui/TimeColumn/TimeColumn.styles.js.map +1 -0
  22. package/cjs/components/TimePicker/ui/TimeColumn/TimeColumn.styles_juymyb.css +7 -0
  23. package/cjs/components/TimePicker/utils/index.js +139 -0
  24. package/cjs/components/TimePicker/utils/index.js.map +1 -0
  25. package/cjs/components/TimePicker/variations/_disabled/base.js +9 -0
  26. package/cjs/components/TimePicker/variations/_disabled/base.js.map +1 -0
  27. package/cjs/components/TimePicker/variations/_disabled/base_nyid0i.css +1 -0
  28. package/cjs/components/TimePicker/variations/_readonly/base.js +9 -0
  29. package/cjs/components/TimePicker/variations/_readonly/base.js.map +1 -0
  30. package/cjs/components/TimePicker/variations/_readonly/base_zalfas.css +1 -0
  31. package/cjs/components/TimePicker/variations/_size/base.js +9 -0
  32. package/cjs/components/TimePicker/variations/_size/base.js.map +1 -0
  33. package/cjs/components/TimePicker/variations/_size/base_x642ct.css +1 -0
  34. package/cjs/components/TimePicker/variations/_view/base.js +9 -0
  35. package/cjs/components/TimePicker/variations/_view/base.js.map +1 -0
  36. package/cjs/components/TimePicker/variations/_view/base_x642ct.css +1 -0
  37. package/cjs/index.css +17 -0
  38. package/cjs/index.js +6 -0
  39. package/cjs/index.js.map +1 -1
  40. package/emotion/cjs/components/Combobox/ComboboxNew/Combobox.js +1 -1
  41. package/emotion/cjs/components/Dropdown/Dropdown.js +1 -1
  42. package/emotion/cjs/components/Select/Select.js +1 -1
  43. package/emotion/cjs/components/TimePicker/TimePicker.js +916 -0
  44. package/emotion/cjs/components/TimePicker/TimePicker.styles.js +55 -0
  45. package/emotion/cjs/components/TimePicker/TimePicker.tokens.js +142 -0
  46. package/emotion/cjs/components/TimePicker/TimePicker.types.js +4 -0
  47. package/emotion/cjs/components/TimePicker/hooks/useKeyboardNavigation.js +30 -0
  48. package/emotion/cjs/components/TimePicker/index.js +26 -0
  49. package/emotion/cjs/components/TimePicker/ui/TimeColumn/TimeColumn.js +65 -0
  50. package/emotion/cjs/components/TimePicker/ui/TimeColumn/TimeColumn.styles.js +71 -0
  51. package/emotion/cjs/components/TimePicker/ui/TimeColumn/TimeColumn.types.js +4 -0
  52. package/emotion/cjs/components/TimePicker/utils/index.js +152 -0
  53. package/emotion/cjs/components/TimePicker/variations/_disabled/base.js +13 -0
  54. package/emotion/cjs/components/TimePicker/variations/_readonly/base.js +12 -0
  55. package/emotion/cjs/components/TimePicker/variations/_size/base.js +12 -0
  56. package/emotion/cjs/components/TimePicker/variations/_view/base.js +12 -0
  57. package/emotion/cjs/examples/components/Chip/Chip.js +5 -29
  58. package/emotion/cjs/examples/components/Combobox/Combobox.js +15 -0
  59. package/emotion/cjs/examples/components/TimePicker/TimePicker.config.js +35 -0
  60. package/emotion/cjs/examples/components/TimePicker/TimePicker.js +15 -0
  61. package/emotion/cjs/index.js +1 -0
  62. package/emotion/es/components/Combobox/ComboboxNew/Combobox.js +1 -1
  63. package/emotion/es/components/Dropdown/Dropdown.js +1 -1
  64. package/emotion/es/components/Select/Select.js +1 -1
  65. package/emotion/es/components/TimePicker/TimePicker.js +852 -0
  66. package/emotion/es/components/TimePicker/TimePicker.styles.js +27 -0
  67. package/emotion/es/components/TimePicker/TimePicker.tokens.js +124 -0
  68. package/emotion/es/components/TimePicker/TimePicker.types.js +1 -0
  69. package/emotion/es/components/TimePicker/hooks/useKeyboardNavigation.js +20 -0
  70. package/emotion/es/components/TimePicker/index.js +2 -0
  71. package/emotion/es/components/TimePicker/ui/TimeColumn/TimeColumn.js +50 -0
  72. package/emotion/es/components/TimePicker/ui/TimeColumn/TimeColumn.styles.js +33 -0
  73. package/emotion/es/components/TimePicker/ui/TimeColumn/TimeColumn.types.js +1 -0
  74. package/emotion/es/components/TimePicker/utils/index.js +125 -0
  75. package/emotion/es/components/TimePicker/variations/_disabled/base.js +3 -0
  76. package/emotion/es/components/TimePicker/variations/_readonly/base.js +2 -0
  77. package/emotion/es/components/TimePicker/variations/_size/base.js +2 -0
  78. package/emotion/es/components/TimePicker/variations/_view/base.js +2 -0
  79. package/emotion/es/examples/components/Chip/Chip.js +2 -15
  80. package/emotion/es/examples/components/TimePicker/TimePicker.config.js +25 -0
  81. package/emotion/es/examples/components/TimePicker/TimePicker.js +5 -0
  82. package/emotion/es/index.js +1 -0
  83. package/es/components/Combobox/ComboboxNew/Combobox.js +1 -1
  84. package/es/components/Combobox/ComboboxNew/Combobox.js.map +1 -1
  85. package/es/components/Dropdown/Dropdown.js +1 -1
  86. package/es/components/Dropdown/Dropdown.js.map +1 -1
  87. package/es/components/Select/Select.js +1 -1
  88. package/es/components/Select/Select.js.map +1 -1
  89. package/es/components/TimePicker/TimePicker.css +93 -0
  90. package/es/components/TimePicker/TimePicker.js +722 -0
  91. package/es/components/TimePicker/TimePicker.js.map +1 -0
  92. package/es/components/TimePicker/TimePicker.styles.js +47 -0
  93. package/es/components/TimePicker/TimePicker.styles.js.map +1 -0
  94. package/es/components/TimePicker/TimePicker.styles_ar3obv.css +4 -0
  95. package/es/components/TimePicker/TimePicker.tokens.js +128 -0
  96. package/es/components/TimePicker/TimePicker.tokens.js.map +1 -0
  97. package/es/components/TimePicker/hooks/useKeyboardNavigation.js +28 -0
  98. package/es/components/TimePicker/hooks/useKeyboardNavigation.js.map +1 -0
  99. package/es/components/TimePicker/ui/TimeColumn/TimeColumn.css +7 -0
  100. package/es/components/TimePicker/ui/TimeColumn/TimeColumn.js +56 -0
  101. package/es/components/TimePicker/ui/TimeColumn/TimeColumn.js.map +1 -0
  102. package/es/components/TimePicker/ui/TimeColumn/TimeColumn.styles.js +51 -0
  103. package/es/components/TimePicker/ui/TimeColumn/TimeColumn.styles.js.map +1 -0
  104. package/es/components/TimePicker/ui/TimeColumn/TimeColumn.styles_juymyb.css +7 -0
  105. package/es/components/TimePicker/utils/index.js +131 -0
  106. package/es/components/TimePicker/utils/index.js.map +1 -0
  107. package/es/components/TimePicker/variations/_disabled/base.js +5 -0
  108. package/es/components/TimePicker/variations/_disabled/base.js.map +1 -0
  109. package/es/components/TimePicker/variations/_disabled/base_nyid0i.css +1 -0
  110. package/es/components/TimePicker/variations/_readonly/base.js +5 -0
  111. package/es/components/TimePicker/variations/_readonly/base.js.map +1 -0
  112. package/es/components/TimePicker/variations/_readonly/base_zalfas.css +1 -0
  113. package/es/components/TimePicker/variations/_size/base.js +5 -0
  114. package/es/components/TimePicker/variations/_size/base.js.map +1 -0
  115. package/es/components/TimePicker/variations/_size/base_x642ct.css +1 -0
  116. package/es/components/TimePicker/variations/_view/base.js +5 -0
  117. package/es/components/TimePicker/variations/_view/base.js.map +1 -0
  118. package/es/components/TimePicker/variations/_view/base_x642ct.css +1 -0
  119. package/es/index.css +17 -0
  120. package/es/index.js +2 -0
  121. package/es/index.js.map +1 -1
  122. package/package.json +2 -2
  123. package/styled-components/cjs/components/Combobox/ComboboxNew/Combobox.js +1 -1
  124. package/styled-components/cjs/components/Dropdown/Dropdown.js +1 -1
  125. package/styled-components/cjs/components/Select/Select.js +1 -1
  126. package/styled-components/cjs/components/TimePicker/TimePicker.js +916 -0
  127. package/styled-components/cjs/components/TimePicker/TimePicker.styles.js +258 -0
  128. package/styled-components/cjs/components/TimePicker/TimePicker.tokens.js +142 -0
  129. package/styled-components/cjs/components/TimePicker/TimePicker.types.js +4 -0
  130. package/styled-components/cjs/components/TimePicker/hooks/useKeyboardNavigation.js +30 -0
  131. package/styled-components/cjs/components/TimePicker/index.js +26 -0
  132. package/styled-components/cjs/components/TimePicker/ui/TimeColumn/TimeColumn.js +65 -0
  133. package/styled-components/cjs/components/TimePicker/ui/TimeColumn/TimeColumn.styles.js +112 -0
  134. package/styled-components/cjs/components/TimePicker/ui/TimeColumn/TimeColumn.types.js +4 -0
  135. package/styled-components/cjs/components/TimePicker/utils/index.js +152 -0
  136. package/styled-components/cjs/components/TimePicker/variations/_disabled/base.js +16 -0
  137. package/styled-components/cjs/components/TimePicker/variations/_readonly/base.js +14 -0
  138. package/styled-components/cjs/components/TimePicker/variations/_size/base.js +14 -0
  139. package/styled-components/cjs/components/TimePicker/variations/_view/base.js +14 -0
  140. package/styled-components/cjs/examples/components/Chip/Chip.js +5 -29
  141. package/styled-components/cjs/examples/components/Combobox/Combobox.js +15 -0
  142. package/styled-components/cjs/examples/components/TimePicker/TimePicker.config.js +289 -0
  143. package/styled-components/cjs/examples/components/TimePicker/TimePicker.js +15 -0
  144. package/styled-components/cjs/index.js +1 -0
  145. package/styled-components/es/components/Combobox/ComboboxNew/Combobox.js +1 -1
  146. package/styled-components/es/components/Dropdown/Dropdown.js +1 -1
  147. package/styled-components/es/components/Select/Select.js +1 -1
  148. package/styled-components/es/components/TimePicker/TimePicker.js +852 -0
  149. package/styled-components/es/components/TimePicker/TimePicker.styles.js +195 -0
  150. package/styled-components/es/components/TimePicker/TimePicker.tokens.js +124 -0
  151. package/styled-components/es/components/TimePicker/TimePicker.types.js +1 -0
  152. package/styled-components/es/components/TimePicker/hooks/useKeyboardNavigation.js +20 -0
  153. package/styled-components/es/components/TimePicker/index.js +2 -0
  154. package/styled-components/es/components/TimePicker/ui/TimeColumn/TimeColumn.js +50 -0
  155. package/styled-components/es/components/TimePicker/ui/TimeColumn/TimeColumn.styles.js +74 -0
  156. package/styled-components/es/components/TimePicker/ui/TimeColumn/TimeColumn.types.js +1 -0
  157. package/styled-components/es/components/TimePicker/utils/index.js +125 -0
  158. package/styled-components/es/components/TimePicker/variations/_disabled/base.js +6 -0
  159. package/styled-components/es/components/TimePicker/variations/_readonly/base.js +4 -0
  160. package/styled-components/es/components/TimePicker/variations/_size/base.js +4 -0
  161. package/styled-components/es/components/TimePicker/variations/_view/base.js +4 -0
  162. package/styled-components/es/examples/components/Chip/Chip.js +2 -15
  163. package/styled-components/es/examples/components/TimePicker/TimePicker.config.js +279 -0
  164. package/styled-components/es/examples/components/TimePicker/TimePicker.js +5 -0
  165. package/styled-components/es/index.js +1 -0
  166. package/types/components/Chip/Chip.types.d.ts +0 -1
  167. package/types/components/Chip/Chip.types.d.ts.map +1 -1
  168. package/types/components/TimePicker/TimePicker.d.ts +81 -0
  169. package/types/components/TimePicker/TimePicker.d.ts.map +1 -0
  170. package/types/components/TimePicker/TimePicker.styles.d.ts +303 -0
  171. package/types/components/TimePicker/TimePicker.styles.d.ts.map +1 -0
  172. package/types/components/TimePicker/TimePicker.tokens.d.ts +126 -0
  173. package/types/components/TimePicker/TimePicker.tokens.d.ts.map +1 -0
  174. package/types/components/TimePicker/TimePicker.types.d.ts +139 -0
  175. package/types/components/TimePicker/TimePicker.types.d.ts.map +1 -0
  176. package/types/components/TimePicker/hooks/useKeyboardNavigation.d.ts +14 -0
  177. package/types/components/TimePicker/hooks/useKeyboardNavigation.d.ts.map +1 -0
  178. package/types/components/TimePicker/index.d.ts +4 -0
  179. package/types/components/TimePicker/index.d.ts.map +1 -0
  180. package/types/components/TimePicker/ui/TimeColumn/TimeColumn.d.ts +3 -0
  181. package/types/components/TimePicker/ui/TimeColumn/TimeColumn.d.ts.map +1 -0
  182. package/types/components/TimePicker/ui/TimeColumn/TimeColumn.styles.d.ts +10 -0
  183. package/types/components/TimePicker/ui/TimeColumn/TimeColumn.styles.d.ts.map +1 -0
  184. package/types/components/TimePicker/ui/TimeColumn/TimeColumn.types.d.ts +35 -0
  185. package/types/components/TimePicker/ui/TimeColumn/TimeColumn.types.d.ts.map +1 -0
  186. package/types/components/TimePicker/utils/index.d.ts +20 -0
  187. package/types/components/TimePicker/utils/index.d.ts.map +1 -0
  188. package/types/components/TimePicker/variations/_disabled/base.d.ts +2 -0
  189. package/types/components/TimePicker/variations/_disabled/base.d.ts.map +1 -0
  190. package/types/components/TimePicker/variations/_readonly/base.d.ts +2 -0
  191. package/types/components/TimePicker/variations/_readonly/base.d.ts.map +1 -0
  192. package/types/components/TimePicker/variations/_size/base.d.ts +2 -0
  193. package/types/components/TimePicker/variations/_size/base.d.ts.map +1 -0
  194. package/types/components/TimePicker/variations/_view/base.d.ts +2 -0
  195. package/types/components/TimePicker/variations/_view/base.d.ts.map +1 -0
  196. package/types/examples/components/Chip/Chip.d.ts +1 -55
  197. package/types/examples/components/Chip/Chip.d.ts.map +1 -1
  198. package/types/examples/components/{Chip/Chip.clear.config.d.ts → TimePicker/TimePicker.config.d.ts} +2 -12
  199. package/types/examples/components/TimePicker/TimePicker.config.d.ts.map +1 -0
  200. package/types/examples/components/TimePicker/TimePicker.d.ts +43 -0
  201. package/types/examples/components/TimePicker/TimePicker.d.ts.map +1 -0
  202. package/types/index.d.ts +1 -0
  203. package/types/index.d.ts.map +1 -1
  204. package/emotion/cjs/examples/components/Chip/Chip.clear.config.js +0 -45
  205. package/emotion/es/examples/components/Chip/Chip.clear.config.js +0 -35
  206. package/styled-components/cjs/examples/components/Chip/Chip.clear.config.js +0 -225
  207. package/styled-components/es/examples/components/Chip/Chip.clear.config.js +0 -215
  208. package/types/examples/components/Chip/Chip.clear.config.d.ts.map +0 -1
@@ -0,0 +1,852 @@
1
+ function _array_like_to_array(arr, len) {
2
+ if (len == null || len > arr.length) len = arr.length;
3
+ for(var i = 0, arr2 = new Array(len); i < len; i++)arr2[i] = arr[i];
4
+ return arr2;
5
+ }
6
+ function _array_with_holes(arr) {
7
+ if (Array.isArray(arr)) return arr;
8
+ }
9
+ function _array_without_holes(arr) {
10
+ if (Array.isArray(arr)) return _array_like_to_array(arr);
11
+ }
12
+ function _define_property(obj, key, value) {
13
+ if (key in obj) {
14
+ Object.defineProperty(obj, key, {
15
+ value: value,
16
+ enumerable: true,
17
+ configurable: true,
18
+ writable: true
19
+ });
20
+ } else {
21
+ obj[key] = value;
22
+ }
23
+ return obj;
24
+ }
25
+ function _iterable_to_array(iter) {
26
+ if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter);
27
+ }
28
+ function _iterable_to_array_limit(arr, i) {
29
+ var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"];
30
+ if (_i == null) return;
31
+ var _arr = [];
32
+ var _n = true;
33
+ var _d = false;
34
+ var _s, _e;
35
+ try {
36
+ for(_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true){
37
+ _arr.push(_s.value);
38
+ if (i && _arr.length === i) break;
39
+ }
40
+ } catch (err) {
41
+ _d = true;
42
+ _e = err;
43
+ } finally{
44
+ try {
45
+ if (!_n && _i["return"] != null) _i["return"]();
46
+ } finally{
47
+ if (_d) throw _e;
48
+ }
49
+ }
50
+ return _arr;
51
+ }
52
+ function _non_iterable_rest() {
53
+ throw new TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
54
+ }
55
+ function _non_iterable_spread() {
56
+ throw new TypeError("Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
57
+ }
58
+ function _object_spread(target) {
59
+ for(var i = 1; i < arguments.length; i++){
60
+ var source = arguments[i] != null ? arguments[i] : {};
61
+ var ownKeys = Object.keys(source);
62
+ if (typeof Object.getOwnPropertySymbols === "function") {
63
+ ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function(sym) {
64
+ return Object.getOwnPropertyDescriptor(source, sym).enumerable;
65
+ }));
66
+ }
67
+ ownKeys.forEach(function(key) {
68
+ _define_property(target, key, source[key]);
69
+ });
70
+ }
71
+ return target;
72
+ }
73
+ function ownKeys(object, enumerableOnly) {
74
+ var keys = Object.keys(object);
75
+ if (Object.getOwnPropertySymbols) {
76
+ var symbols = Object.getOwnPropertySymbols(object);
77
+ if (enumerableOnly) {
78
+ symbols = symbols.filter(function(sym) {
79
+ return Object.getOwnPropertyDescriptor(object, sym).enumerable;
80
+ });
81
+ }
82
+ keys.push.apply(keys, symbols);
83
+ }
84
+ return keys;
85
+ }
86
+ function _object_spread_props(target, source) {
87
+ source = source != null ? source : {};
88
+ if (Object.getOwnPropertyDescriptors) {
89
+ Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));
90
+ } else {
91
+ ownKeys(Object(source)).forEach(function(key) {
92
+ Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));
93
+ });
94
+ }
95
+ return target;
96
+ }
97
+ function _object_without_properties(source, excluded) {
98
+ if (source == null) return {};
99
+ var target = _object_without_properties_loose(source, excluded);
100
+ var key, i;
101
+ if (Object.getOwnPropertySymbols) {
102
+ var sourceSymbolKeys = Object.getOwnPropertySymbols(source);
103
+ for(i = 0; i < sourceSymbolKeys.length; i++){
104
+ key = sourceSymbolKeys[i];
105
+ if (excluded.indexOf(key) >= 0) continue;
106
+ if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;
107
+ target[key] = source[key];
108
+ }
109
+ }
110
+ return target;
111
+ }
112
+ function _object_without_properties_loose(source, excluded) {
113
+ if (source == null) return {};
114
+ var target = {};
115
+ var sourceKeys = Object.keys(source);
116
+ var key, i;
117
+ for(i = 0; i < sourceKeys.length; i++){
118
+ key = sourceKeys[i];
119
+ if (excluded.indexOf(key) >= 0) continue;
120
+ target[key] = source[key];
121
+ }
122
+ return target;
123
+ }
124
+ function _sliced_to_array(arr, i) {
125
+ return _array_with_holes(arr) || _iterable_to_array_limit(arr, i) || _unsupported_iterable_to_array(arr, i) || _non_iterable_rest();
126
+ }
127
+ function _to_consumable_array(arr) {
128
+ return _array_without_holes(arr) || _iterable_to_array(arr) || _unsupported_iterable_to_array(arr) || _non_iterable_spread();
129
+ }
130
+ function _unsupported_iterable_to_array(o, minLen) {
131
+ if (!o) return;
132
+ if (typeof o === "string") return _array_like_to_array(o, minLen);
133
+ var n = Object.prototype.toString.call(o).slice(8, -1);
134
+ if (n === "Object" && o.constructor) n = o.constructor.name;
135
+ if (n === "Map" || n === "Set") return Array.from(n);
136
+ if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _array_like_to_array(o, minLen);
137
+ }
138
+ import React, { forwardRef, useRef, useState, useEffect, useCallback } from "react";
139
+ import cls from "classnames";
140
+ import { getPlacements } from "../../utils";
141
+ import { range, processTimeInput, animateScrollTo, delimiter } from "./utils";
142
+ import { base, StyledInput, StyledPopover, StyledTimePicker } from "./TimePicker.styles";
143
+ import { classes } from "./TimePicker.tokens";
144
+ import { base as sizeCSS } from "./variations/_size/base";
145
+ import { base as viewCSS } from "./variations/_view/base";
146
+ import { base as disabledCSS } from "./variations/_disabled/base";
147
+ import { base as readonlyCSS } from "./variations/_readonly/base";
148
+ import { useKeyNavigation } from "./hooks/useKeyboardNavigation";
149
+ import { renderTimeColumn } from "./ui/TimeColumn/TimeColumn";
150
+ export var timePickerRoot = function(Root) {
151
+ return /*#__PURE__*/ forwardRef(function(_param, ref) {
152
+ var className = _param.className, _param_opened = _param.opened, opened = _param_opened === void 0 ? false : _param_opened, outerValue = _param.value, label = _param.label, _param_labelPlacement = _param.labelPlacement, labelPlacement = _param_labelPlacement === void 0 ? 'outer' : _param_labelPlacement, keepPlaceholder = _param.keepPlaceholder, _param_required = _param.required, required = _param_required === void 0 ? false : _param_required, _param_requiredPlacement = _param.requiredPlacement, requiredPlacement = _param_requiredPlacement === void 0 ? 'right' : _param_requiredPlacement, _param_hasRequiredIndicator = _param.hasRequiredIndicator, hasRequiredIndicator = _param_hasRequiredIndicator === void 0 ? true : _param_hasRequiredIndicator, placeholder = _param.placeholder, contentLeft = _param.contentLeft, contentRight = _param.contentRight, textBefore = _param.textBefore, textAfter = _param.textAfter, view = _param.view, size = _param.size, _param_disabled = _param.disabled, disabled = _param_disabled === void 0 ? false : _param_disabled, _param_readonly = _param.readonly, readonly = _param_readonly === void 0 ? false : _param_readonly, _param_frame = _param.frame, frame = _param_frame === void 0 ? 'document' : _param_frame, _param_usePortal = _param.usePortal, usePortal = _param_usePortal === void 0 ? false : _param_usePortal, _param_closeOnOverlayClick = _param.closeOnOverlayClick, closeOnOverlayClick = _param_closeOnOverlayClick === void 0 ? true : _param_closeOnOverlayClick, _param_closeOnEsc = _param.closeOnEsc, closeOnEsc = _param_closeOnEsc === void 0 ? true : _param_closeOnEsc, offset = _param.offset, stretched = _param.stretched, _param_dropdownAlign = _param.dropdownAlign, dropdownAlign = _param_dropdownAlign === void 0 ? 'left' : _param_dropdownAlign, dropdownWidth = _param.dropdownWidth, dropdownHeight = _param.dropdownHeight, _param_columnsQuantity = _param.columnsQuantity, columnsQuantity = _param_columnsQuantity === void 0 ? 2 : _param_columnsQuantity, onToggle = _param.onToggle, onFocus = _param.onFocus, onChange = _param.onChange, rest = _object_without_properties(_param, [
153
+ "className",
154
+ "opened",
155
+ "value",
156
+ "label",
157
+ "labelPlacement",
158
+ "keepPlaceholder",
159
+ "required",
160
+ "requiredPlacement",
161
+ "hasRequiredIndicator",
162
+ "placeholder",
163
+ "contentLeft",
164
+ "contentRight",
165
+ "textBefore",
166
+ "textAfter",
167
+ "view",
168
+ "size",
169
+ "disabled",
170
+ "readonly",
171
+ "frame",
172
+ "usePortal",
173
+ "closeOnOverlayClick",
174
+ "closeOnEsc",
175
+ "offset",
176
+ "stretched",
177
+ "dropdownAlign",
178
+ "dropdownWidth",
179
+ "dropdownHeight",
180
+ "columnsQuantity",
181
+ "onToggle",
182
+ "onFocus",
183
+ "onChange"
184
+ ]);
185
+ var inputRef = useRef(null);
186
+ var timeSelectRootRef = useRef(null);
187
+ var hoursColumnRef = useRef(null);
188
+ var minutesColumnRef = useRef(null);
189
+ var secondsColumnRef = useRef(null);
190
+ var timeItemRefs = useRef({});
191
+ var hoursScrollbarRef = useRef(null);
192
+ var minutesScrollbarRef = useRef(null);
193
+ var secondsScrollbarRef = useRef(null);
194
+ var hoursThumbRef = useRef(null);
195
+ var minutesThumbRef = useRef(null);
196
+ var secondsThumbRef = useRef(null);
197
+ var hoursHideTimeoutRef = useRef(null);
198
+ var minutesHideTimeoutRef = useRef(null);
199
+ var secondsHideTimeoutRef = useRef(null);
200
+ var _useState = _sliced_to_array(useState(opened), 2), isInnerOpen = _useState[0], setIsInnerOpen = _useState[1];
201
+ var _useState1 = _sliced_to_array(useState(outerValue || ''), 2), innerTime = _useState1[0], setInnerTime = _useState1[1];
202
+ var _useState2 = _sliced_to_array(useState({
203
+ hours: null,
204
+ minutes: null,
205
+ seconds: null,
206
+ currentColumn: null
207
+ }), 2), activeTime = _useState2[0], setActiveTime = _useState2[1];
208
+ var _useState3 = _sliced_to_array(useState(0), 2), itemHeight = _useState3[0], setItemHeight = _useState3[1];
209
+ var _useState4 = _sliced_to_array(useState(0), 2), gap = _useState4[0], setGap = _useState4[1];
210
+ var _useState5 = _sliced_to_array(useState({
211
+ isVisible: false,
212
+ thumbHeight: 0,
213
+ thumbPosition: 0,
214
+ isDragging: false
215
+ }), 2), hoursScrollbar = _useState5[0], setHoursScrollbar = _useState5[1];
216
+ var _useState6 = _sliced_to_array(useState({
217
+ isVisible: false,
218
+ thumbHeight: 0,
219
+ thumbPosition: 0,
220
+ isDragging: false
221
+ }), 2), minutesScrollbar = _useState6[0], setMinutesScrollbar = _useState6[1];
222
+ var _useState7 = _sliced_to_array(useState({
223
+ isVisible: false,
224
+ thumbHeight: 0,
225
+ thumbPosition: 0,
226
+ isDragging: false
227
+ }), 2), secondsScrollbar = _useState7[0], setSecondsScrollbar = _useState7[1];
228
+ var viewValue = outerValue !== null && outerValue !== void 0 ? outerValue : innerTime;
229
+ var format = columnsQuantity === 3 ? 'HH:mm:ss' : 'HH:mm';
230
+ var hours = range(24);
231
+ var minutes = range(60);
232
+ var seconds = range(60);
233
+ var minScrollbarTrackHeight = 20;
234
+ var calculateScrollbar = useCallback(function(columnRef) {
235
+ if (!columnRef.current) return {
236
+ thumbHeight: 0,
237
+ thumbPosition: 0
238
+ };
239
+ var _columnRef_current = columnRef.current, scrollTop = _columnRef_current.scrollTop, scrollHeight = _columnRef_current.scrollHeight, clientHeight = _columnRef_current.clientHeight;
240
+ var trackHeight = clientHeight;
241
+ var thumbHeight = Math.max(trackHeight / scrollHeight * trackHeight, minScrollbarTrackHeight);
242
+ var maxScroll = scrollHeight - clientHeight;
243
+ var thumbPosition = maxScroll > 0 ? scrollTop / maxScroll * (trackHeight - thumbHeight) : 0;
244
+ return {
245
+ thumbHeight: thumbHeight,
246
+ thumbPosition: thumbPosition
247
+ };
248
+ }, []);
249
+ var showScrollbarWithDelay = useCallback(function(setScrollbar, timeoutRef, columnRef) {
250
+ if (timeoutRef.current) {
251
+ clearTimeout(timeoutRef.current);
252
+ }
253
+ updateScrollbar(columnRef, setScrollbar, true);
254
+ timeoutRef.current = setTimeout(function() {
255
+ setScrollbar(function(prev) {
256
+ return _object_spread_props(_object_spread({}, prev), {
257
+ isVisible: false
258
+ });
259
+ });
260
+ timeoutRef.current = null;
261
+ }, 2000);
262
+ }, []);
263
+ var updateScrollbar = useCallback(function(columnRef, setScrollbar) {
264
+ var show = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : false;
265
+ if (!columnRef.current) return;
266
+ var _calculateScrollbar = calculateScrollbar(columnRef), thumbHeight = _calculateScrollbar.thumbHeight, thumbPosition = _calculateScrollbar.thumbPosition;
267
+ setScrollbar(function(prev) {
268
+ return _object_spread_props(_object_spread({}, prev), {
269
+ thumbHeight: thumbHeight,
270
+ thumbPosition: thumbPosition,
271
+ isVisible: show || prev.isVisible
272
+ });
273
+ });
274
+ }, [
275
+ calculateScrollbar
276
+ ]);
277
+ var handleColumnScroll = useCallback(function(columnRef, setScrollbar, timeoutRef) {
278
+ showScrollbarWithDelay(setScrollbar, timeoutRef, columnRef);
279
+ }, [
280
+ showScrollbarWithDelay
281
+ ]);
282
+ var createScrollbarDragHandler = useCallback(function(columnRef, setScrollbar, timeoutRef) {
283
+ return function(e) {
284
+ e.preventDefault();
285
+ var thumb = e.currentTarget;
286
+ var track = thumb.parentElement;
287
+ if (!columnRef.current || !track) return;
288
+ if (timeoutRef.current) {
289
+ clearTimeout(timeoutRef.current);
290
+ timeoutRef.current = null;
291
+ }
292
+ var startY = e.clientY;
293
+ var startThumbPosition = parseFloat(thumb.style.top || '0');
294
+ var trackRect = track.getBoundingClientRect();
295
+ var trackHeight = trackRect.height;
296
+ var thumbHeight = thumb.offsetHeight;
297
+ var _columnRef_current = columnRef.current, scrollHeight = _columnRef_current.scrollHeight, clientHeight = _columnRef_current.clientHeight;
298
+ var maxScroll = scrollHeight - clientHeight;
299
+ var handleMouseMove = function(moveEvent) {
300
+ var deltaY = moveEvent.clientY - startY;
301
+ var newThumbPosition = Math.max(0, Math.min(trackHeight - thumbHeight, startThumbPosition + deltaY));
302
+ var scrollPercentage = newThumbPosition / (trackHeight - thumbHeight);
303
+ var newScrollTop = scrollPercentage * maxScroll;
304
+ if (columnRef.current) {
305
+ columnRef.current.scrollTop = newScrollTop;
306
+ }
307
+ setScrollbar(function(prev) {
308
+ return _object_spread_props(_object_spread({}, prev), {
309
+ thumbPosition: newThumbPosition,
310
+ isDragging: true,
311
+ isVisible: true
312
+ });
313
+ });
314
+ };
315
+ var handleMouseUp = function() {
316
+ document.removeEventListener('mousemove', handleMouseMove);
317
+ document.removeEventListener('mouseup', handleMouseUp);
318
+ setScrollbar(function(prev) {
319
+ return _object_spread_props(_object_spread({}, prev), {
320
+ isDragging: false
321
+ });
322
+ });
323
+ showScrollbarWithDelay(setScrollbar, timeoutRef, columnRef);
324
+ };
325
+ document.addEventListener('mousemove', handleMouseMove);
326
+ document.addEventListener('mouseup', handleMouseUp);
327
+ };
328
+ }, [
329
+ showScrollbarWithDelay
330
+ ]);
331
+ useEffect(function() {
332
+ return function() {
333
+ [
334
+ hoursHideTimeoutRef,
335
+ minutesHideTimeoutRef,
336
+ secondsHideTimeoutRef
337
+ ].forEach(function(timeoutRef) {
338
+ if (timeoutRef.current) {
339
+ clearTimeout(timeoutRef.current);
340
+ }
341
+ });
342
+ };
343
+ }, []);
344
+ useEffect(function() {
345
+ if (!isInnerOpen) {
346
+ return;
347
+ }
348
+ setTimeout(function() {
349
+ updateScrollbar(hoursColumnRef, setHoursScrollbar);
350
+ updateScrollbar(minutesColumnRef, setMinutesScrollbar);
351
+ if (columnsQuantity === 3) {
352
+ updateScrollbar(secondsColumnRef, setSecondsScrollbar);
353
+ }
354
+ }, 100);
355
+ }, [
356
+ isInnerOpen,
357
+ columnsQuantity,
358
+ updateScrollbar
359
+ ]);
360
+ useEffect(function() {
361
+ if (!viewValue) {
362
+ return;
363
+ }
364
+ var timeString = viewValue;
365
+ if (format === 'HH:mm' && viewValue.length > 5) {
366
+ timeString = viewValue.substring(0, 5);
367
+ }
368
+ setInnerTime(viewValue);
369
+ var _timeString_split_map = _sliced_to_array(timeString.split(delimiter).map(Number), 3), hh = _timeString_split_map[0], mm = _timeString_split_map[1], ss = _timeString_split_map[2];
370
+ setActiveTime({
371
+ hours: !Number.isNaN(hh) ? hh : null,
372
+ minutes: !Number.isNaN(mm) ? mm : null,
373
+ seconds: format === 'HH:mm:ss' && !Number.isNaN(ss) ? ss : null,
374
+ currentColumn: null
375
+ });
376
+ }, [
377
+ outerValue,
378
+ format
379
+ ]);
380
+ useEffect(function() {
381
+ if (isInnerOpen && (disabled || readonly)) {
382
+ setIsInnerOpen(false);
383
+ }
384
+ }, [
385
+ disabled,
386
+ readonly
387
+ ]);
388
+ useEffect(function() {
389
+ if (isInnerOpen && Object.keys(timeItemRefs.current).length > 0) {
390
+ var firstItem = Object.values(timeItemRefs.current)[0];
391
+ if (firstItem) {
392
+ setItemHeight(firstItem.offsetHeight);
393
+ }
394
+ }
395
+ if (isInnerOpen && hoursColumnRef.current) {
396
+ var computedStyle = getComputedStyle(hoursColumnRef.current);
397
+ var gapValue = parseFloat(computedStyle.gap || '0');
398
+ setGap(gapValue);
399
+ }
400
+ }, [
401
+ isInnerOpen
402
+ ]);
403
+ useEffect(function() {
404
+ if (!isInnerOpen || itemHeight === 0) return;
405
+ var scrollToActiveItem = function(columnRef, index) {
406
+ if (columnRef.current && index !== null) {
407
+ var scrollPosition = index * (itemHeight + gap);
408
+ animateScrollTo(columnRef.current, scrollPosition);
409
+ setTimeout(function() {
410
+ updateScrollbar(columnRef, setHoursScrollbar);
411
+ }, 300);
412
+ }
413
+ };
414
+ scrollToActiveItem(hoursColumnRef, activeTime.hours);
415
+ scrollToActiveItem(minutesColumnRef, activeTime.minutes);
416
+ scrollToActiveItem(secondsColumnRef, activeTime.seconds);
417
+ }, [
418
+ activeTime,
419
+ isInnerOpen,
420
+ itemHeight,
421
+ gap,
422
+ updateScrollbar
423
+ ]);
424
+ useEffect(function() {
425
+ var hoursColumn = hoursColumnRef.current;
426
+ var minutesColumn = minutesColumnRef.current;
427
+ var secondsColumn = secondsColumnRef.current;
428
+ var handleHoursScroll = function() {
429
+ return handleColumnScroll(hoursColumnRef, setHoursScrollbar, hoursHideTimeoutRef);
430
+ };
431
+ var handleMinutesScroll = function() {
432
+ return handleColumnScroll(minutesColumnRef, setMinutesScrollbar, minutesHideTimeoutRef);
433
+ };
434
+ var handleSecondsScroll = function() {
435
+ return handleColumnScroll(secondsColumnRef, setSecondsScrollbar, secondsHideTimeoutRef);
436
+ };
437
+ if (hoursColumn) {
438
+ hoursColumn.addEventListener('scroll', handleHoursScroll);
439
+ }
440
+ if (minutesColumn) {
441
+ minutesColumn.addEventListener('scroll', handleMinutesScroll);
442
+ }
443
+ if (secondsColumn) {
444
+ secondsColumn.addEventListener('scroll', handleSecondsScroll);
445
+ }
446
+ return function() {
447
+ if (hoursColumn) {
448
+ hoursColumn.removeEventListener('scroll', handleHoursScroll);
449
+ }
450
+ if (minutesColumn) {
451
+ minutesColumn.removeEventListener('scroll', handleMinutesScroll);
452
+ }
453
+ if (secondsColumn) {
454
+ secondsColumn.removeEventListener('scroll', handleSecondsScroll);
455
+ }
456
+ };
457
+ }, [
458
+ isInnerOpen,
459
+ handleColumnScroll
460
+ ]);
461
+ useEffect(function() {
462
+ var hoursColumn = hoursColumnRef.current;
463
+ var minutesColumn = minutesColumnRef.current;
464
+ var secondsColumn = secondsColumnRef.current;
465
+ var handleHoursMouseEnter = function() {
466
+ return showScrollbarWithDelay(setHoursScrollbar, hoursHideTimeoutRef, hoursColumnRef);
467
+ };
468
+ var handleMinutesMouseEnter = function() {
469
+ return showScrollbarWithDelay(setMinutesScrollbar, minutesHideTimeoutRef, minutesColumnRef);
470
+ };
471
+ var handleSecondsMouseEnter = function() {
472
+ return showScrollbarWithDelay(setSecondsScrollbar, secondsHideTimeoutRef, secondsColumnRef);
473
+ };
474
+ if (hoursColumn) {
475
+ hoursColumn.addEventListener('mouseenter', handleHoursMouseEnter);
476
+ }
477
+ if (minutesColumn) {
478
+ minutesColumn.addEventListener('mouseenter', handleMinutesMouseEnter);
479
+ }
480
+ if (secondsColumn) {
481
+ secondsColumn.addEventListener('mouseenter', handleSecondsMouseEnter);
482
+ }
483
+ return function() {
484
+ if (hoursColumn) {
485
+ hoursColumn.removeEventListener('mouseenter', handleHoursMouseEnter);
486
+ }
487
+ if (minutesColumn) {
488
+ minutesColumn.removeEventListener('mouseenter', handleMinutesMouseEnter);
489
+ }
490
+ if (secondsColumn) {
491
+ secondsColumn.removeEventListener('mouseenter', handleSecondsMouseEnter);
492
+ }
493
+ };
494
+ }, [
495
+ isInnerOpen,
496
+ showScrollbarWithDelay
497
+ ]);
498
+ var handleToggle = function() {
499
+ if (disabled || readonly) return;
500
+ var newState = !isInnerOpen;
501
+ setIsInnerOpen(newState);
502
+ if (newState) {
503
+ setActiveTime(function(prev) {
504
+ return _object_spread_props(_object_spread({}, prev), {
505
+ currentColumn: 'hours'
506
+ });
507
+ });
508
+ }
509
+ onToggle === null || onToggle === void 0 ? void 0 : onToggle(newState);
510
+ };
511
+ var handleCalendarRootClick = function(event) {
512
+ if (disabled || readonly) return;
513
+ if (isInnerOpen && stretched && event.target === (timeSelectRootRef === null || timeSelectRootRef === void 0 ? void 0 : timeSelectRootRef.current)) {
514
+ setIsInnerOpen(false);
515
+ onToggle === null || onToggle === void 0 ? void 0 : onToggle(false);
516
+ }
517
+ };
518
+ var handleTimeItemClick = function(value, column) {
519
+ var isNextColumn = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : true;
520
+ var currentTime = innerTime.split(delimiter);
521
+ var newTime = [];
522
+ if (format === 'HH:mm:ss') {
523
+ newTime = _to_consumable_array(currentTime);
524
+ while(newTime.length < 3){
525
+ newTime.push('00');
526
+ }
527
+ } else {
528
+ newTime = _to_consumable_array(currentTime);
529
+ while(newTime.length < 2){
530
+ newTime.push('00');
531
+ }
532
+ newTime = newTime.slice(0, 2);
533
+ }
534
+ switch(column){
535
+ case 'hours':
536
+ newTime[0] = value;
537
+ if (!currentTime[1]) {
538
+ newTime[1] = '00';
539
+ }
540
+ if (format === 'HH:mm:ss' && !currentTime[2]) {
541
+ newTime[2] = '00';
542
+ }
543
+ break;
544
+ case 'minutes':
545
+ newTime[1] = value;
546
+ if (!currentTime[0]) {
547
+ newTime[0] = '00';
548
+ }
549
+ if (format === 'HH:mm:ss' && !currentTime[2]) {
550
+ newTime[2] = '00';
551
+ }
552
+ break;
553
+ case 'seconds':
554
+ if (format === 'HH:mm:ss') {
555
+ newTime[2] = value;
556
+ if (!currentTime[0]) {
557
+ newTime[0] = '00';
558
+ }
559
+ if (!currentTime[1]) {
560
+ newTime[1] = '00';
561
+ }
562
+ }
563
+ break;
564
+ default:
565
+ break;
566
+ }
567
+ var newTimeString = newTime.join(delimiter);
568
+ setInnerTime(newTimeString);
569
+ var nextColumn = null;
570
+ if (column === 'hours' && isNextColumn) {
571
+ nextColumn = 'minutes';
572
+ } else if (column === 'minutes' && isNextColumn) {
573
+ nextColumn = format === 'HH:mm:ss' ? 'seconds' : null;
574
+ } else {
575
+ nextColumn = activeTime.currentColumn;
576
+ }
577
+ var newActiveTime = {
578
+ hours: column === 'hours' ? parseInt(value, 10) : activeTime.hours,
579
+ minutes: column === 'minutes' ? parseInt(value, 10) : activeTime.minutes,
580
+ seconds: column === 'seconds' ? parseInt(value, 10) : activeTime.seconds,
581
+ currentColumn: nextColumn
582
+ };
583
+ setActiveTime(newActiveTime);
584
+ onChange === null || onChange === void 0 ? void 0 : onChange({
585
+ value: newTimeString,
586
+ timeValues: {
587
+ hh: parseInt(newTime[0], 10),
588
+ mm: parseInt(newTime[1], 10),
589
+ ss: format === 'HH:mm:ss' ? parseInt(newTime[2] || '0', 10) : null
590
+ }
591
+ });
592
+ };
593
+ var handleInputChange = function(event) {
594
+ var input = event.target.value;
595
+ var cursorPos = event.target.selectionStart;
596
+ var _processTimeInput = processTimeInput(input, format, cursorPos), innerString = _processTimeInput.innerString, values = _processTimeInput.values, newCursorPosition = _processTimeInput.newCursorPosition;
597
+ setInnerTime(innerString);
598
+ setActiveTime(function(prev) {
599
+ return _object_spread_props(_object_spread({}, prev), {
600
+ hours: values.hh,
601
+ minutes: values.mm,
602
+ seconds: values.ss
603
+ });
604
+ });
605
+ if (onChange) {
606
+ onChange(_object_spread_props(_object_spread({}, event), {
607
+ target: _object_spread_props(_object_spread({}, event.target), {
608
+ value: innerString,
609
+ timeValues: values
610
+ })
611
+ }));
612
+ }
613
+ requestAnimationFrame(function() {
614
+ if (inputRef.current) {
615
+ inputRef.current.setSelectionRange(newCursorPosition, newCursorPosition);
616
+ }
617
+ });
618
+ };
619
+ var handleKeyDown = function(event) {
620
+ if (event.key === 'Enter' && !isInnerOpen) {
621
+ event.preventDefault();
622
+ setIsInnerOpen(true);
623
+ setActiveTime(function(prev) {
624
+ return _object_spread_props(_object_spread({}, prev), {
625
+ currentColumn: 'hours'
626
+ });
627
+ });
628
+ onToggle === null || onToggle === void 0 ? void 0 : onToggle(true);
629
+ return;
630
+ }
631
+ if (!isInnerOpen) {
632
+ return;
633
+ }
634
+ var currentColumn = activeTime.currentColumn;
635
+ if (!currentColumn) {
636
+ return;
637
+ }
638
+ var newIndex = null;
639
+ var newColumn = currentColumn;
640
+ if ([
641
+ 'ArrowUp',
642
+ 'ArrowDown',
643
+ 'Enter'
644
+ ].includes(event.key)) {
645
+ event.preventDefault();
646
+ }
647
+ if ([
648
+ 'ArrowRight'
649
+ ].includes(event.key) && currentColumn !== 'seconds') {
650
+ event.preventDefault();
651
+ }
652
+ if ([
653
+ 'ArrowLeft'
654
+ ].includes(event.key) && currentColumn !== 'hours') {
655
+ event.preventDefault();
656
+ }
657
+ switch(event.key){
658
+ case 'ArrowUp':
659
+ var _activeTime_currentColumn;
660
+ newIndex = Math.max(0, ((_activeTime_currentColumn = activeTime[currentColumn]) !== null && _activeTime_currentColumn !== void 0 ? _activeTime_currentColumn : 0) - 1);
661
+ if (newIndex !== null) {
662
+ var value = newIndex.toString().padStart(2, '0');
663
+ handleTimeItemClick(value, currentColumn, false);
664
+ }
665
+ break;
666
+ case 'ArrowDown':
667
+ case 'Tab':
668
+ event.preventDefault();
669
+ var _activeTime_currentColumn1;
670
+ newIndex = Math.min(currentColumn === 'hours' ? 23 : 59, ((_activeTime_currentColumn1 = activeTime[currentColumn]) !== null && _activeTime_currentColumn1 !== void 0 ? _activeTime_currentColumn1 : 0) + 1);
671
+ if (newIndex !== null) {
672
+ var value1 = newIndex.toString().padStart(2, '0');
673
+ handleTimeItemClick(value1, currentColumn, false);
674
+ }
675
+ break;
676
+ case 'ArrowRight':
677
+ case 'Enter':
678
+ if (currentColumn === 'hours') newColumn = 'minutes';
679
+ else if (currentColumn === 'minutes' && format === 'HH:mm:ss') newColumn = 'seconds';
680
+ var _activeTime_newColumn;
681
+ newIndex = (_activeTime_newColumn = activeTime[newColumn]) !== null && _activeTime_newColumn !== void 0 ? _activeTime_newColumn : 0;
682
+ setActiveTime(_object_spread_props(_object_spread({}, activeTime), _define_property({
683
+ currentColumn: newColumn
684
+ }, newColumn, newIndex)));
685
+ if (currentColumn === 'seconds' && format === 'HH:mm:ss' || currentColumn === 'minutes' && format === 'HH:mm') {
686
+ setIsInnerOpen(false);
687
+ }
688
+ break;
689
+ case 'ArrowLeft':
690
+ if (currentColumn === 'minutes') {
691
+ newColumn = 'hours';
692
+ } else if (currentColumn === 'seconds') {
693
+ newColumn = 'minutes';
694
+ }
695
+ var _activeTime_newColumn1;
696
+ newIndex = (_activeTime_newColumn1 = activeTime[newColumn]) !== null && _activeTime_newColumn1 !== void 0 ? _activeTime_newColumn1 : 0;
697
+ setActiveTime(_object_spread_props(_object_spread({}, activeTime), _define_property({
698
+ currentColumn: newColumn
699
+ }, newColumn, newIndex)));
700
+ if (currentColumn === 'hours') {
701
+ setIsInnerOpen(false);
702
+ }
703
+ break;
704
+ // eslint-disable-next-line no-fallthrough
705
+ default:
706
+ }
707
+ };
708
+ var handleTimeItemKeyDown = function(event, column, value) {
709
+ if (event.key === 'Enter') {
710
+ event.preventDefault();
711
+ handleTimeItemClick(value, column);
712
+ }
713
+ };
714
+ var handleOnKeyDown = function(e) {
715
+ onKeyDownNavigation(e);
716
+ handleKeyDown(e);
717
+ };
718
+ var _useKeyNavigation = useKeyNavigation({
719
+ isCalendarOpen: isInnerOpen,
720
+ format: format,
721
+ maskWithFormat: true,
722
+ delimiter: delimiter,
723
+ closeOnEsc: closeOnEsc,
724
+ onToggle: handleToggle
725
+ }), onKeyDownNavigation = _useKeyNavigation.onKeyDown;
726
+ var TimePickerInput = /*#__PURE__*/ React.createElement(StyledInput, {
727
+ ref: inputRef,
728
+ value: viewValue,
729
+ size: size,
730
+ disabled: disabled,
731
+ readOnly: readonly,
732
+ placeholder: placeholder,
733
+ contentLeft: contentLeft,
734
+ contentRight: contentRight,
735
+ textBefore: textBefore,
736
+ textAfter: textAfter,
737
+ onChange: handleInputChange,
738
+ onFocus: onFocus,
739
+ onKeyDown: handleOnKeyDown,
740
+ required: required,
741
+ requiredPlacement: requiredPlacement,
742
+ hasRequiredIndicator: hasRequiredIndicator,
743
+ label: label,
744
+ labelPlacement: labelPlacement,
745
+ keepPlaceholder: keepPlaceholder
746
+ });
747
+ return /*#__PURE__*/ React.createElement(Root, _object_spread({
748
+ stretched: stretched,
749
+ view: view,
750
+ size: size,
751
+ className: cls(classes.timePickerRoot, className, _define_property({}, classes.timePickerstretched, stretched)),
752
+ disabled: disabled,
753
+ readonly: readonly,
754
+ ref: ref
755
+ }, rest), /*#__PURE__*/ React.createElement(StyledPopover, {
756
+ opened: isInnerOpen,
757
+ usePortal: usePortal,
758
+ frame: frame,
759
+ onToggle: handleToggle,
760
+ offset: offset,
761
+ placement: getPlacements(dropdownAlign === 'left' ? 'bottom-start' : 'bottom-end', false),
762
+ trigger: "click",
763
+ closeOnOverlayClick: closeOnOverlayClick,
764
+ isFocusTrapped: false,
765
+ target: TimePickerInput,
766
+ preventOverflow: false,
767
+ align: dropdownAlign
768
+ }, /*#__PURE__*/ React.createElement(Root, {
769
+ ref: timeSelectRootRef,
770
+ view: view,
771
+ size: size,
772
+ disabled: disabled,
773
+ readonly: readonly,
774
+ onClick: handleCalendarRootClick,
775
+ className: dropdownAlign === 'right' ? classes.timePickerPlacementRight : '',
776
+ stretched: stretched
777
+ }, /*#__PURE__*/ React.createElement(StyledTimePicker, {
778
+ width: dropdownWidth
779
+ }, renderTimeColumn({
780
+ values: hours,
781
+ dropdownHeight: dropdownHeight,
782
+ column: 'hours',
783
+ columnRef: hoursColumnRef,
784
+ scrollbarState: hoursScrollbar,
785
+ setScrollbar: setHoursScrollbar,
786
+ scrollbarRef: hoursScrollbarRef,
787
+ thumbRef: hoursThumbRef,
788
+ timeoutRef: hoursHideTimeoutRef,
789
+ timeItemRefs: timeItemRefs,
790
+ activeTime: activeTime,
791
+ handleTimeItemClick: handleTimeItemClick,
792
+ handleTimeItemKeyDown: handleTimeItemKeyDown,
793
+ createScrollbarDragHandler: createScrollbarDragHandler
794
+ }), renderTimeColumn({
795
+ values: minutes,
796
+ dropdownHeight: dropdownHeight,
797
+ column: 'minutes',
798
+ columnRef: minutesColumnRef,
799
+ scrollbarState: minutesScrollbar,
800
+ setScrollbar: setMinutesScrollbar,
801
+ scrollbarRef: minutesScrollbarRef,
802
+ thumbRef: minutesThumbRef,
803
+ timeoutRef: minutesHideTimeoutRef,
804
+ timeItemRefs: timeItemRefs,
805
+ activeTime: activeTime,
806
+ handleTimeItemClick: handleTimeItemClick,
807
+ handleTimeItemKeyDown: handleTimeItemKeyDown,
808
+ createScrollbarDragHandler: createScrollbarDragHandler
809
+ }), columnsQuantity === 3 && renderTimeColumn({
810
+ values: seconds,
811
+ dropdownHeight: dropdownHeight,
812
+ column: 'seconds',
813
+ columnRef: secondsColumnRef,
814
+ scrollbarState: secondsScrollbar,
815
+ setScrollbar: setSecondsScrollbar,
816
+ scrollbarRef: secondsScrollbarRef,
817
+ thumbRef: secondsThumbRef,
818
+ timeoutRef: secondsHideTimeoutRef,
819
+ timeItemRefs: timeItemRefs,
820
+ activeTime: activeTime,
821
+ handleTimeItemClick: handleTimeItemClick,
822
+ handleTimeItemKeyDown: handleTimeItemKeyDown,
823
+ createScrollbarDragHandler: createScrollbarDragHandler
824
+ })))));
825
+ });
826
+ };
827
+ export var timePickerConfig = {
828
+ name: 'TimePicker',
829
+ tag: 'div',
830
+ layout: timePickerRoot,
831
+ base: base,
832
+ variations: {
833
+ view: {
834
+ css: viewCSS
835
+ },
836
+ size: {
837
+ css: sizeCSS
838
+ },
839
+ disabled: {
840
+ css: disabledCSS,
841
+ attrs: true
842
+ },
843
+ readonly: {
844
+ css: readonlyCSS,
845
+ attrs: true
846
+ }
847
+ },
848
+ defaults: {
849
+ size: 'm',
850
+ view: 'default'
851
+ }
852
+ };