wssf-kage-ui 0.1.1 → 0.1.2

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 (179) hide show
  1. package/dist/cjs/Avatar/index.d.ts +47 -0
  2. package/dist/cjs/Avatar/index.js +147 -0
  3. package/dist/cjs/Avatar/style.less +193 -0
  4. package/dist/cjs/Badge/index.d.ts +48 -0
  5. package/dist/cjs/Badge/index.js +141 -0
  6. package/dist/cjs/Badge/style.less +237 -0
  7. package/dist/cjs/Calendar/index.d.ts +33 -0
  8. package/dist/cjs/Calendar/index.js +296 -0
  9. package/dist/cjs/Calendar/style.less +384 -0
  10. package/dist/cjs/Card/index.d.ts +68 -0
  11. package/dist/cjs/Card/index.js +155 -0
  12. package/dist/cjs/Card/style.less +356 -0
  13. package/dist/cjs/Carousel/index.d.ts +33 -0
  14. package/dist/cjs/Carousel/index.js +169 -0
  15. package/dist/cjs/Carousel/style.less +232 -0
  16. package/dist/cjs/Collapse/index.d.ts +55 -0
  17. package/dist/cjs/Collapse/index.js +191 -0
  18. package/dist/cjs/Collapse/style.less +217 -0
  19. package/dist/cjs/Descriptions/index.d.ts +54 -0
  20. package/dist/cjs/Descriptions/index.js +181 -0
  21. package/dist/cjs/Descriptions/style.less +259 -0
  22. package/dist/cjs/Empty/index.d.ts +21 -0
  23. package/dist/cjs/Empty/index.js +115 -0
  24. package/dist/cjs/Empty/style.less +103 -0
  25. package/dist/cjs/Image/index.d.ts +30 -0
  26. package/dist/cjs/Image/index.js +153 -0
  27. package/dist/cjs/Image/style.less +156 -0
  28. package/dist/cjs/Input/index.d.ts +24 -0
  29. package/dist/cjs/Input/index.js +158 -0
  30. package/dist/cjs/Input/style.less +276 -0
  31. package/dist/cjs/InputNumber/index.d.ts +47 -0
  32. package/dist/cjs/InputNumber/index.js +323 -0
  33. package/dist/cjs/InputNumber/style.less +392 -0
  34. package/dist/cjs/Mentions/index.d.ts +57 -0
  35. package/dist/cjs/Mentions/index.js +378 -0
  36. package/dist/cjs/Mentions/style.less +297 -0
  37. package/dist/cjs/Popover/index.d.ts +30 -0
  38. package/dist/cjs/Popover/index.js +131 -0
  39. package/dist/cjs/Popover/style.less +279 -0
  40. package/dist/cjs/QRCode/index.d.ts +30 -0
  41. package/dist/cjs/QRCode/index.js +167 -0
  42. package/dist/cjs/QRCode/style.less +201 -0
  43. package/dist/cjs/Radio/index.d.ts +70 -0
  44. package/dist/cjs/Radio/index.js +199 -0
  45. package/dist/cjs/Radio/style.less +326 -0
  46. package/dist/cjs/Rate/index.d.ts +37 -0
  47. package/dist/cjs/Rate/index.js +151 -0
  48. package/dist/cjs/Rate/style.less +170 -0
  49. package/dist/cjs/Segmented/index.d.ts +31 -0
  50. package/dist/cjs/Segmented/index.js +121 -0
  51. package/dist/cjs/Segmented/style.less +167 -0
  52. package/dist/cjs/Select/index.d.ts +67 -0
  53. package/dist/cjs/Select/index.js +403 -0
  54. package/dist/cjs/Select/style.less +523 -0
  55. package/dist/cjs/Slider/index.d.ts +41 -0
  56. package/dist/cjs/Slider/index.js +325 -0
  57. package/dist/cjs/Slider/style.less +287 -0
  58. package/dist/cjs/Statistic/index.d.ts +26 -0
  59. package/dist/cjs/Statistic/index.js +71 -0
  60. package/dist/cjs/Statistic/style.less +94 -0
  61. package/dist/cjs/Switch/index.d.ts +28 -0
  62. package/dist/cjs/Switch/index.js +71 -0
  63. package/dist/cjs/Switch/style.less +212 -0
  64. package/dist/cjs/Table/index.d.ts +188 -0
  65. package/dist/cjs/Table/index.js +787 -0
  66. package/dist/cjs/Table/style.less +663 -0
  67. package/dist/cjs/Tag/index.d.ts +51 -0
  68. package/dist/cjs/Tag/index.js +142 -0
  69. package/dist/cjs/Tag/style.less +356 -0
  70. package/dist/cjs/TimePicker/index.d.ts +51 -0
  71. package/dist/cjs/TimePicker/index.js +332 -0
  72. package/dist/cjs/TimePicker/style.less +384 -0
  73. package/dist/cjs/Timeline/index.d.ts +47 -0
  74. package/dist/cjs/Timeline/index.js +127 -0
  75. package/dist/cjs/Timeline/style.less +265 -0
  76. package/dist/cjs/Tooltip/index.d.ts +53 -0
  77. package/dist/cjs/Tooltip/index.js +468 -0
  78. package/dist/cjs/Tooltip/style.less +237 -0
  79. package/dist/cjs/Transfer/index.d.ts +52 -0
  80. package/dist/cjs/Transfer/index.js +344 -0
  81. package/dist/cjs/Transfer/style.less +331 -0
  82. package/dist/cjs/TreeSelect/index.d.ts +54 -0
  83. package/dist/cjs/TreeSelect/index.js +373 -0
  84. package/dist/cjs/TreeSelect/style.less +471 -0
  85. package/dist/cjs/Upload/index.d.ts +65 -0
  86. package/dist/cjs/Upload/index.js +517 -0
  87. package/dist/cjs/Upload/style.less +424 -0
  88. package/dist/cjs/index.d.ts +58 -0
  89. package/dist/cjs/index.js +227 -0
  90. package/dist/esm/Avatar/index.d.ts +47 -0
  91. package/dist/esm/Avatar/index.js +142 -0
  92. package/dist/esm/Avatar/style.less +193 -0
  93. package/dist/esm/Badge/index.d.ts +48 -0
  94. package/dist/esm/Badge/index.js +137 -0
  95. package/dist/esm/Badge/style.less +237 -0
  96. package/dist/esm/Calendar/index.d.ts +33 -0
  97. package/dist/esm/Calendar/index.js +291 -0
  98. package/dist/esm/Calendar/style.less +384 -0
  99. package/dist/esm/Card/index.d.ts +68 -0
  100. package/dist/esm/Card/index.js +149 -0
  101. package/dist/esm/Card/style.less +356 -0
  102. package/dist/esm/Carousel/index.d.ts +33 -0
  103. package/dist/esm/Carousel/index.js +163 -0
  104. package/dist/esm/Carousel/style.less +232 -0
  105. package/dist/esm/Collapse/index.d.ts +55 -0
  106. package/dist/esm/Collapse/index.js +187 -0
  107. package/dist/esm/Collapse/style.less +217 -0
  108. package/dist/esm/Descriptions/index.d.ts +54 -0
  109. package/dist/esm/Descriptions/index.js +179 -0
  110. package/dist/esm/Descriptions/style.less +259 -0
  111. package/dist/esm/Empty/index.d.ts +21 -0
  112. package/dist/esm/Empty/index.js +109 -0
  113. package/dist/esm/Empty/style.less +103 -0
  114. package/dist/esm/Image/index.d.ts +30 -0
  115. package/dist/esm/Image/index.js +149 -0
  116. package/dist/esm/Image/style.less +156 -0
  117. package/dist/esm/Input/index.d.ts +24 -0
  118. package/dist/esm/Input/index.js +151 -0
  119. package/dist/esm/Input/style.less +276 -0
  120. package/dist/esm/InputNumber/index.d.ts +47 -0
  121. package/dist/esm/InputNumber/index.js +316 -0
  122. package/dist/esm/InputNumber/style.less +392 -0
  123. package/dist/esm/Mentions/index.d.ts +57 -0
  124. package/dist/esm/Mentions/index.js +374 -0
  125. package/dist/esm/Mentions/style.less +297 -0
  126. package/dist/esm/Popover/index.d.ts +30 -0
  127. package/dist/esm/Popover/index.js +126 -0
  128. package/dist/esm/Popover/style.less +279 -0
  129. package/dist/esm/QRCode/index.d.ts +30 -0
  130. package/dist/esm/QRCode/index.js +158 -0
  131. package/dist/esm/QRCode/style.less +201 -0
  132. package/dist/esm/Radio/index.d.ts +70 -0
  133. package/dist/esm/Radio/index.js +193 -0
  134. package/dist/esm/Radio/style.less +326 -0
  135. package/dist/esm/Rate/index.d.ts +37 -0
  136. package/dist/esm/Rate/index.js +143 -0
  137. package/dist/esm/Rate/style.less +170 -0
  138. package/dist/esm/Segmented/index.d.ts +31 -0
  139. package/dist/esm/Segmented/index.js +113 -0
  140. package/dist/esm/Segmented/style.less +167 -0
  141. package/dist/esm/Select/index.d.ts +67 -0
  142. package/dist/esm/Select/index.js +398 -0
  143. package/dist/esm/Select/style.less +523 -0
  144. package/dist/esm/Slider/index.d.ts +41 -0
  145. package/dist/esm/Slider/index.js +318 -0
  146. package/dist/esm/Slider/style.less +287 -0
  147. package/dist/esm/Statistic/index.d.ts +26 -0
  148. package/dist/esm/Statistic/index.js +65 -0
  149. package/dist/esm/Statistic/style.less +94 -0
  150. package/dist/esm/Switch/index.d.ts +28 -0
  151. package/dist/esm/Switch/index.js +63 -0
  152. package/dist/esm/Switch/style.less +212 -0
  153. package/dist/esm/Table/index.d.ts +188 -0
  154. package/dist/esm/Table/index.js +797 -0
  155. package/dist/esm/Table/style.less +663 -0
  156. package/dist/esm/Tag/index.d.ts +51 -0
  157. package/dist/esm/Tag/index.js +144 -0
  158. package/dist/esm/Tag/style.less +356 -0
  159. package/dist/esm/TimePicker/index.d.ts +51 -0
  160. package/dist/esm/TimePicker/index.js +327 -0
  161. package/dist/esm/TimePicker/style.less +384 -0
  162. package/dist/esm/Timeline/index.d.ts +47 -0
  163. package/dist/esm/Timeline/index.js +130 -0
  164. package/dist/esm/Timeline/style.less +265 -0
  165. package/dist/esm/Tooltip/index.d.ts +53 -0
  166. package/dist/esm/Tooltip/index.js +471 -0
  167. package/dist/esm/Tooltip/style.less +237 -0
  168. package/dist/esm/Transfer/index.d.ts +52 -0
  169. package/dist/esm/Transfer/index.js +340 -0
  170. package/dist/esm/Transfer/style.less +331 -0
  171. package/dist/esm/TreeSelect/index.d.ts +54 -0
  172. package/dist/esm/TreeSelect/index.js +369 -0
  173. package/dist/esm/TreeSelect/style.less +471 -0
  174. package/dist/esm/Upload/index.d.ts +65 -0
  175. package/dist/esm/Upload/index.js +513 -0
  176. package/dist/esm/Upload/style.less +424 -0
  177. package/dist/esm/index.d.ts +58 -0
  178. package/dist/esm/index.js +30 -1
  179. package/package.json +6 -3
@@ -0,0 +1,332 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = exports.TimePicker = void 0;
7
+ var _react = _interopRequireWildcard(require("react"));
8
+ require("./style.less");
9
+ var _jsxRuntime = require("react/jsx-runtime");
10
+ function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
11
+ function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
12
+ function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
13
+ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : String(i); }
14
+ function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
15
+ function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
16
+ function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
17
+ function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
18
+ function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
19
+ function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t.return && (u = t.return(), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
20
+ function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
21
+ function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); } // ============ 时间工具函数 ============
22
+ var formatTime = function formatTime(hour, minute, second, format) {
23
+ var h12 = hour % 12 || 12;
24
+ var period = hour < 12 ? 'AM' : 'PM';
25
+ return format.replace('HH', String(hour).padStart(2, '0')).replace('H', String(hour)).replace('hh', String(h12).padStart(2, '0')).replace('h', String(h12)).replace('mm', String(minute).padStart(2, '0')).replace('m', String(minute)).replace('ss', String(second).padStart(2, '0')).replace('s', String(second)).replace('A', period).replace('a', period.toLowerCase());
26
+ };
27
+ var parseTime = function parseTime(timeStr, format) {
28
+ if (!timeStr) return null;
29
+ var is12Hour = format.includes('h');
30
+ var hasSecond = format.includes('s');
31
+ var parts = timeStr.split(':');
32
+ if (parts.length < 2) return null;
33
+ var hour = parseInt(parts[0], 10);
34
+ var minute = parseInt(parts[1], 10);
35
+ var second = hasSecond && parts.length > 2 ? parseInt(parts[2], 10) : 0;
36
+
37
+ // 处理 12 小时制
38
+ if (is12Hour) {
39
+ var isPM = timeStr.toLowerCase().includes('pm');
40
+ if (isPM && hour < 12) hour += 12;
41
+ if (!isPM && hour === 12) hour = 0;
42
+ }
43
+ if (isNaN(hour) || isNaN(minute) || isNaN(second)) return null;
44
+ if (hour < 0 || hour > 23 || minute < 0 || minute > 59 || second < 0 || second > 59) return null;
45
+ return {
46
+ hour: hour,
47
+ minute: minute,
48
+ second: second
49
+ };
50
+ };
51
+
52
+ // ============ TimePicker Props ============
53
+
54
+ // ============ TimePicker Component ============
55
+ var TimePicker = exports.TimePicker = function TimePicker(_ref) {
56
+ var controlledValue = _ref.value,
57
+ defaultValue = _ref.defaultValue,
58
+ _ref$placeholder = _ref.placeholder,
59
+ placeholder = _ref$placeholder === void 0 ? '请选择时间' : _ref$placeholder,
60
+ _ref$format = _ref.format,
61
+ format = _ref$format === void 0 ? 'HH:mm:ss' : _ref$format,
62
+ _ref$disabled = _ref.disabled,
63
+ disabled = _ref$disabled === void 0 ? false : _ref$disabled,
64
+ _ref$allowClear = _ref.allowClear,
65
+ allowClear = _ref$allowClear === void 0 ? true : _ref$allowClear,
66
+ _ref$size = _ref.size,
67
+ size = _ref$size === void 0 ? 'middle' : _ref$size,
68
+ status = _ref.status,
69
+ _ref$hourStep = _ref.hourStep,
70
+ hourStep = _ref$hourStep === void 0 ? 1 : _ref$hourStep,
71
+ _ref$minuteStep = _ref.minuteStep,
72
+ minuteStep = _ref$minuteStep === void 0 ? 1 : _ref$minuteStep,
73
+ _ref$secondStep = _ref.secondStep,
74
+ secondStep = _ref$secondStep === void 0 ? 1 : _ref$secondStep,
75
+ disabledHours = _ref.disabledHours,
76
+ disabledMinutes = _ref.disabledMinutes,
77
+ disabledSeconds = _ref.disabledSeconds,
78
+ _ref$hideDisabledOpti = _ref.hideDisabledOptions,
79
+ hideDisabledOptions = _ref$hideDisabledOpti === void 0 ? false : _ref$hideDisabledOpti,
80
+ _ref$use12Hours = _ref.use12Hours,
81
+ use12Hours = _ref$use12Hours === void 0 ? false : _ref$use12Hours,
82
+ onChange = _ref.onChange,
83
+ onOpenChange = _ref.onOpenChange,
84
+ _ref$className = _ref.className,
85
+ className = _ref$className === void 0 ? '' : _ref$className,
86
+ style = _ref.style;
87
+ var showSecond = format.includes('s');
88
+ var actualFormat = use12Hours && !format.includes('h') ? format.replace('HH', 'hh') + ' A' : format;
89
+
90
+ // 解析初始值
91
+ var parseInitialValue = function parseInitialValue(val) {
92
+ if (!val) return null;
93
+ if (_typeof(val) === 'object') return val;
94
+ return parseTime(val, actualFormat);
95
+ };
96
+ var _useState = (0, _react.useState)(parseInitialValue(defaultValue)),
97
+ _useState2 = _slicedToArray(_useState, 2),
98
+ internalValue = _useState2[0],
99
+ setInternalValue = _useState2[1];
100
+ var _useState3 = (0, _react.useState)(false),
101
+ _useState4 = _slicedToArray(_useState3, 2),
102
+ isOpen = _useState4[0],
103
+ setIsOpen = _useState4[1];
104
+ var containerRef = (0, _react.useRef)(null);
105
+ var hourRef = (0, _react.useRef)(null);
106
+ var minuteRef = (0, _react.useRef)(null);
107
+ var secondRef = (0, _react.useRef)(null);
108
+ var value = controlledValue !== undefined ? parseInitialValue(controlledValue) : internalValue;
109
+
110
+ // 打开/关闭面板
111
+ var setOpen = (0, _react.useCallback)(function (open) {
112
+ if (disabled) return;
113
+ setIsOpen(open);
114
+ onOpenChange === null || onOpenChange === void 0 || onOpenChange(open);
115
+ }, [disabled, onOpenChange]);
116
+
117
+ // 点击外部关闭
118
+ (0, _react.useEffect)(function () {
119
+ var handleClickOutside = function handleClickOutside(e) {
120
+ if (containerRef.current && !containerRef.current.contains(e.target)) {
121
+ setOpen(false);
122
+ }
123
+ };
124
+ document.addEventListener('mousedown', handleClickOutside);
125
+ return function () {
126
+ return document.removeEventListener('mousedown', handleClickOutside);
127
+ };
128
+ }, [setOpen]);
129
+
130
+ // 滚动到选中项
131
+ (0, _react.useEffect)(function () {
132
+ if (isOpen && value) {
133
+ setTimeout(function () {
134
+ var scrollToValue = function scrollToValue(ref, targetValue) {
135
+ if (ref.current) {
136
+ var item = ref.current.querySelector("[data-value=\"".concat(targetValue, "\"]"));
137
+ if (item) {
138
+ ref.current.scrollTop = item.offsetTop - ref.current.offsetHeight / 2 + item.offsetHeight / 2;
139
+ }
140
+ }
141
+ };
142
+ scrollToValue(hourRef, value.hour);
143
+ scrollToValue(minuteRef, value.minute);
144
+ if (showSecond) {
145
+ scrollToValue(secondRef, value.second);
146
+ }
147
+ }, 0);
148
+ }
149
+ }, [isOpen, value, showSecond]);
150
+
151
+ // 生成选项列表
152
+ var generateOptions = (0, _react.useCallback)(function (max, step, disabledFn, currentHour, currentMinute) {
153
+ var options = [];
154
+ for (var i = 0; i < max; i += step) {
155
+ var isDisabled = false;
156
+ if (disabledFn) {
157
+ if (typeof disabledFn === 'function') {
158
+ var _disabled = [];
159
+ if (disabledFn.length === 0) {
160
+ _disabled = disabledFn();
161
+ } else if (disabledFn.length === 1) {
162
+ _disabled = disabledFn(currentHour);
163
+ } else {
164
+ _disabled = disabledFn(currentHour, currentMinute);
165
+ }
166
+ isDisabled = Array.isArray(_disabled) && _disabled.includes(i);
167
+ }
168
+ }
169
+ if (!hideDisabledOptions || !isDisabled) {
170
+ options.push(i);
171
+ }
172
+ }
173
+ return options;
174
+ }, [hideDisabledOptions]);
175
+
176
+ // 小时选项
177
+ var hourOptions = (0, _react.useMemo)(function () {
178
+ var max = use12Hours ? 12 : 24;
179
+ var options = generateOptions(max, hourStep);
180
+ if (use12Hours && !options.includes(12)) {
181
+ options.push(12);
182
+ }
183
+ if (disabledHours) {
184
+ var _disabled2 = disabledHours();
185
+ return options.filter(function (h) {
186
+ return !_disabled2.includes(h);
187
+ });
188
+ }
189
+ return options;
190
+ }, [use12Hours, hourStep, disabledHours, generateOptions]);
191
+
192
+ // 分钟选项
193
+ var minuteOptions = (0, _react.useMemo)(function () {
194
+ var options = generateOptions(60, minuteStep);
195
+ if (disabledMinutes && value) {
196
+ var _disabled3 = disabledMinutes(value.hour);
197
+ return options.filter(function (m) {
198
+ return !_disabled3.includes(m);
199
+ });
200
+ }
201
+ return options;
202
+ }, [minuteStep, disabledMinutes, value, generateOptions]);
203
+
204
+ // 秒选项
205
+ var secondOptions = (0, _react.useMemo)(function () {
206
+ var options = generateOptions(60, secondStep);
207
+ if (disabledSeconds && value) {
208
+ var _disabled4 = disabledSeconds(value.hour, value.minute);
209
+ return options.filter(function (s) {
210
+ return !_disabled4.includes(s);
211
+ });
212
+ }
213
+ return options;
214
+ }, [secondStep, disabledSeconds, value, generateOptions]);
215
+
216
+ // 选择时间
217
+ var handleSelectTime = (0, _react.useCallback)(function (type, val) {
218
+ var _value$hour, _value$minute, _value$second;
219
+ var newValue = _defineProperty({
220
+ hour: (_value$hour = value === null || value === void 0 ? void 0 : value.hour) !== null && _value$hour !== void 0 ? _value$hour : 0,
221
+ minute: (_value$minute = value === null || value === void 0 ? void 0 : value.minute) !== null && _value$minute !== void 0 ? _value$minute : 0,
222
+ second: (_value$second = value === null || value === void 0 ? void 0 : value.second) !== null && _value$second !== void 0 ? _value$second : 0
223
+ }, type, val);
224
+ if (controlledValue === undefined) {
225
+ setInternalValue(newValue);
226
+ }
227
+ var timeString = formatTime(newValue.hour, newValue.minute, newValue.second, actualFormat);
228
+ onChange === null || onChange === void 0 || onChange(newValue, timeString);
229
+ }, [value, controlledValue, actualFormat, onChange]);
230
+
231
+ // 清除
232
+ var handleClear = (0, _react.useCallback)(function (e) {
233
+ e.stopPropagation();
234
+ if (controlledValue === undefined) {
235
+ setInternalValue(null);
236
+ }
237
+ onChange === null || onChange === void 0 || onChange(null, '');
238
+ }, [controlledValue, onChange]);
239
+
240
+ // 当前时间
241
+ var handleNow = (0, _react.useCallback)(function () {
242
+ var now = new Date();
243
+ var newValue = {
244
+ hour: now.getHours(),
245
+ minute: now.getMinutes(),
246
+ second: now.getSeconds()
247
+ };
248
+ if (controlledValue === undefined) {
249
+ setInternalValue(newValue);
250
+ }
251
+ var timeString = formatTime(newValue.hour, newValue.minute, newValue.second, actualFormat);
252
+ onChange === null || onChange === void 0 || onChange(newValue, timeString);
253
+ setOpen(false);
254
+ }, [controlledValue, actualFormat, onChange, setOpen]);
255
+ var classNames = ['kage-timepicker', "kage-timepicker-".concat(size), disabled && 'kage-timepicker-disabled', status && "kage-timepicker-status-".concat(status), isOpen && 'kage-timepicker-open', className].filter(Boolean).join(' ');
256
+ var displayValue = value ? formatTime(value.hour, value.minute, value.second, actualFormat) : '';
257
+ return /*#__PURE__*/(0, _jsxRuntime.jsxs)("div", {
258
+ ref: containerRef,
259
+ className: classNames,
260
+ style: style,
261
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsxs)("div", {
262
+ className: "kage-timepicker-input",
263
+ onClick: function onClick() {
264
+ return setOpen(!isOpen);
265
+ },
266
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)("span", {
267
+ className: "kage-timepicker-value ".concat(!value ? 'kage-timepicker-placeholder' : ''),
268
+ children: value ? displayValue : placeholder
269
+ }), allowClear && value && !disabled && /*#__PURE__*/(0, _jsxRuntime.jsx)("span", {
270
+ className: "kage-timepicker-clear",
271
+ onClick: handleClear,
272
+ children: "\xD7"
273
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)("span", {
274
+ className: "kage-timepicker-icon",
275
+ children: "\uD83D\uDD50"
276
+ })]
277
+ }), isOpen && /*#__PURE__*/(0, _jsxRuntime.jsxs)("div", {
278
+ className: "kage-timepicker-panel",
279
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsxs)("div", {
280
+ className: "kage-timepicker-panel-inner",
281
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
282
+ className: "kage-timepicker-column",
283
+ ref: hourRef,
284
+ children: hourOptions.map(function (hour) {
285
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
286
+ "data-value": hour,
287
+ className: "kage-timepicker-cell ".concat((value === null || value === void 0 ? void 0 : value.hour) === hour ? 'kage-timepicker-cell-selected' : ''),
288
+ onClick: function onClick() {
289
+ return handleSelectTime('hour', hour);
290
+ },
291
+ children: String(hour).padStart(2, '0')
292
+ }, hour);
293
+ })
294
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
295
+ className: "kage-timepicker-column",
296
+ ref: minuteRef,
297
+ children: minuteOptions.map(function (minute) {
298
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
299
+ "data-value": minute,
300
+ className: "kage-timepicker-cell ".concat((value === null || value === void 0 ? void 0 : value.minute) === minute ? 'kage-timepicker-cell-selected' : ''),
301
+ onClick: function onClick() {
302
+ return handleSelectTime('minute', minute);
303
+ },
304
+ children: String(minute).padStart(2, '0')
305
+ }, minute);
306
+ })
307
+ }), showSecond && /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
308
+ className: "kage-timepicker-column",
309
+ ref: secondRef,
310
+ children: secondOptions.map(function (second) {
311
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
312
+ "data-value": second,
313
+ className: "kage-timepicker-cell ".concat((value === null || value === void 0 ? void 0 : value.second) === second ? 'kage-timepicker-cell-selected' : ''),
314
+ onClick: function onClick() {
315
+ return handleSelectTime('second', second);
316
+ },
317
+ children: String(second).padStart(2, '0')
318
+ }, second);
319
+ })
320
+ })]
321
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
322
+ className: "kage-timepicker-footer",
323
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)("button", {
324
+ className: "kage-timepicker-now",
325
+ onClick: handleNow,
326
+ children: "\u6B64\u523B"
327
+ })
328
+ })]
329
+ })]
330
+ });
331
+ };
332
+ var _default = exports.default = TimePicker;