@bifrostui/react 2.0.0-beta.10 → 2.0.0-beta.11

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 (211) hide show
  1. package/dist/Calendar/Calendar.js +5 -1
  2. package/dist/Calendar/Calendar.types.d.ts +5 -0
  3. package/dist/Collapse/Collapse.css +0 -1
  4. package/dist/Collapse/Collapse.d.ts +1 -1
  5. package/dist/Collapse/Collapse.js +11 -8
  6. package/dist/Collapse/Collapse.miniapp.d.ts +5 -0
  7. package/dist/Collapse/Collapse.miniapp.js +177 -0
  8. package/dist/CollapsePanel/CollapsePanel.css +4 -2
  9. package/dist/DatePicker/DatePicker.d.ts +4 -0
  10. package/dist/DatePicker/DatePicker.js +335 -0
  11. package/dist/DatePicker/DatePicker.types.d.ts +36 -0
  12. package/dist/DatePicker/DatePicker.types.js +15 -0
  13. package/dist/DatePicker/constants.d.ts +9 -0
  14. package/dist/DatePicker/constants.js +37 -0
  15. package/dist/DatePicker/index.d.ts +3 -0
  16. package/dist/DatePicker/index.js +44 -0
  17. package/dist/DesktopDatePicker/DesktopDatePicker.d.ts +5 -0
  18. package/dist/DesktopDatePicker/DesktopDatePicker.js +280 -0
  19. package/dist/DesktopDatePicker/DesktopDatePicker.types.d.ts +163 -0
  20. package/dist/DesktopDatePicker/DesktopDatePicker.types.js +15 -0
  21. package/dist/DesktopDatePicker/deskTopPickerContainer.css +100 -0
  22. package/dist/DesktopDatePicker/index.css +61 -0
  23. package/dist/DesktopDatePicker/index.d.ts +2 -0
  24. package/dist/DesktopDatePicker/index.js +41 -0
  25. package/dist/DesktopDatePicker/useGetDatePickerContent.d.ts +6 -0
  26. package/dist/DesktopDatePicker/useGetDatePickerContent.js +343 -0
  27. package/dist/DesktopDateTimePicker/DesktopDateTimePicker.d.ts +5 -0
  28. package/dist/DesktopDateTimePicker/DesktopDateTimePicker.js +322 -0
  29. package/dist/DesktopDateTimePicker/DesktopDateTimePicker.types.d.ts +163 -0
  30. package/dist/DesktopDateTimePicker/DesktopDateTimePicker.types.js +15 -0
  31. package/dist/DesktopDateTimePicker/index.css +66 -0
  32. package/dist/DesktopDateTimePicker/index.d.ts +2 -0
  33. package/dist/DesktopDateTimePicker/index.js +41 -0
  34. package/dist/DesktopPicker/DesktopPicker.d.ts +5 -0
  35. package/dist/DesktopPicker/DesktopPicker.js +243 -0
  36. package/dist/DesktopPicker/DesktopPicker.types.d.ts +61 -0
  37. package/dist/DesktopPicker/DesktopPicker.types.js +15 -0
  38. package/dist/DesktopPicker/index.css +39 -0
  39. package/dist/DesktopPicker/index.d.ts +2 -0
  40. package/dist/DesktopPicker/index.js +41 -0
  41. package/dist/DesktopPicker/utils/calcAfterMounted.d.ts +2 -0
  42. package/dist/{Tabs/utils/bound.js → DesktopPicker/utils/calcAfterMounted.js} +7 -14
  43. package/dist/DesktopPicker/utils/calcAfterMounted.miniapp.d.ts +2 -0
  44. package/dist/DesktopPicker/utils/calcAfterMounted.miniapp.js +38 -0
  45. package/dist/DesktopTimePicker/DesktopTimePicker.d.ts +5 -0
  46. package/dist/DesktopTimePicker/DesktopTimePicker.js +288 -0
  47. package/dist/DesktopTimePicker/DesktopTimePicker.types.d.ts +182 -0
  48. package/dist/DesktopTimePicker/DesktopTimePicker.types.js +15 -0
  49. package/dist/DesktopTimePicker/DesktopTimePickerList.d.ts +4 -0
  50. package/dist/DesktopTimePicker/DesktopTimePickerList.js +111 -0
  51. package/dist/DesktopTimePicker/index.css +170 -0
  52. package/dist/DesktopTimePicker/index.d.ts +2 -0
  53. package/dist/DesktopTimePicker/index.js +41 -0
  54. package/dist/DesktopTimePicker/useGetTimePickerContent.d.ts +6 -0
  55. package/dist/DesktopTimePicker/useGetTimePickerContent.js +249 -0
  56. package/dist/DesktopTimePicker/utils/scrollUtil.d.ts +2 -0
  57. package/dist/DesktopTimePicker/utils/scrollUtil.js +27 -0
  58. package/dist/DesktopTimePicker/utils/scrollUtil.miniapp.d.ts +2 -0
  59. package/dist/DesktopTimePicker/utils/scrollUtil.miniapp.js +51 -0
  60. package/dist/DesktopTimePicker/utils/utils.d.ts +28 -0
  61. package/dist/DesktopTimePicker/utils/utils.js +408 -0
  62. package/dist/Dialog/Dialog.types.d.ts +5 -0
  63. package/dist/Dialog/FunctionalDialog.js +13 -2
  64. package/dist/Input/Input.css +0 -2
  65. package/dist/Modal/Modal.miniapp.d.ts +1 -1
  66. package/dist/Picker/Picker.css +5 -0
  67. package/dist/Picker/Picker.js +27 -5
  68. package/dist/Picker/Picker.types.d.ts +15 -2
  69. package/dist/Picker/PickerPanel.css +4 -0
  70. package/dist/Picker/PickerPanel.js +7 -6
  71. package/dist/Popover/Popover.js +70 -27
  72. package/dist/Portal/Portal.miniapp.js +7 -4
  73. package/dist/ScrollView/ScrollView.js +24 -11
  74. package/dist/ScrollView/ScrollView.types.d.ts +0 -1
  75. package/dist/Select/Select.css +1 -4
  76. package/dist/Select/Select.js +62 -37
  77. package/dist/Slider/Slider.js +13 -5
  78. package/dist/SwipeAction/SwipeAction.css +79 -0
  79. package/dist/SwipeAction/SwipeAction.d.ts +5 -0
  80. package/dist/SwipeAction/SwipeAction.js +349 -0
  81. package/dist/SwipeAction/SwipeAction.types.d.ts +75 -0
  82. package/dist/SwipeAction/SwipeAction.types.js +15 -0
  83. package/dist/SwipeAction/SwipeActionContext.d.ts +4 -0
  84. package/dist/SwipeAction/SwipeActionContext.js +30 -0
  85. package/dist/SwipeAction/SwipeActionItem.css +31 -0
  86. package/dist/SwipeAction/SwipeActionItem.d.ts +5 -0
  87. package/dist/SwipeAction/SwipeActionItem.js +105 -0
  88. package/dist/SwipeAction/constants.d.ts +9 -0
  89. package/dist/SwipeAction/constants.js +39 -0
  90. package/dist/SwipeAction/index.d.ts +5 -0
  91. package/dist/SwipeAction/index.js +50 -0
  92. package/dist/Tabs/Tabs.js +29 -14
  93. package/dist/Tabs/utils/scroll.d.ts +2 -0
  94. package/dist/Tabs/utils/scroll.js +55 -0
  95. package/dist/Toast/FunctionalToast.js +13 -2
  96. package/dist/Toast/Toast.css +0 -1
  97. package/dist/Toast/Toast.types.d.ts +5 -0
  98. package/dist/Tooltip/Tooltip.js +70 -27
  99. package/dist/index.d.ts +6 -0
  100. package/dist/index.js +13 -1
  101. package/dist/locales/base.d.ts +11 -0
  102. package/dist/locales/en-US.js +24 -0
  103. package/dist/locales/zh-CN.js +24 -0
  104. package/dist/locales/zh-TW.js +24 -0
  105. package/es/Calendar/Calendar.js +5 -1
  106. package/es/Calendar/Calendar.types.d.ts +5 -0
  107. package/es/Collapse/Collapse.css +0 -1
  108. package/es/Collapse/Collapse.d.ts +1 -1
  109. package/es/Collapse/Collapse.js +11 -8
  110. package/es/Collapse/Collapse.miniapp.d.ts +5 -0
  111. package/es/Collapse/Collapse.miniapp.js +157 -0
  112. package/es/CollapsePanel/CollapsePanel.css +4 -2
  113. package/es/DatePicker/DatePicker.d.ts +4 -0
  114. package/es/DatePicker/DatePicker.js +308 -0
  115. package/es/DatePicker/DatePicker.types.d.ts +36 -0
  116. package/es/DatePicker/DatePicker.types.js +1 -0
  117. package/es/DatePicker/constants.d.ts +9 -0
  118. package/es/DatePicker/constants.js +14 -0
  119. package/es/DatePicker/index.d.ts +3 -0
  120. package/es/DatePicker/index.js +8 -0
  121. package/es/DesktopDatePicker/DesktopDatePicker.d.ts +5 -0
  122. package/es/DesktopDatePicker/DesktopDatePicker.js +253 -0
  123. package/es/DesktopDatePicker/DesktopDatePicker.types.d.ts +163 -0
  124. package/es/DesktopDatePicker/DesktopDatePicker.types.js +1 -0
  125. package/es/DesktopDatePicker/deskTopPickerContainer.css +100 -0
  126. package/es/DesktopDatePicker/index.css +61 -0
  127. package/es/DesktopDatePicker/index.d.ts +2 -0
  128. package/es/DesktopDatePicker/index.js +6 -0
  129. package/es/DesktopDatePicker/useGetDatePickerContent.d.ts +6 -0
  130. package/es/DesktopDatePicker/useGetDatePickerContent.js +316 -0
  131. package/es/DesktopDateTimePicker/DesktopDateTimePicker.d.ts +5 -0
  132. package/es/DesktopDateTimePicker/DesktopDateTimePicker.js +295 -0
  133. package/es/DesktopDateTimePicker/DesktopDateTimePicker.types.d.ts +163 -0
  134. package/es/DesktopDateTimePicker/DesktopDateTimePicker.types.js +1 -0
  135. package/es/DesktopDateTimePicker/index.css +66 -0
  136. package/es/DesktopDateTimePicker/index.d.ts +2 -0
  137. package/es/DesktopDateTimePicker/index.js +9 -0
  138. package/es/DesktopPicker/DesktopPicker.d.ts +5 -0
  139. package/es/DesktopPicker/DesktopPicker.js +226 -0
  140. package/es/DesktopPicker/DesktopPicker.types.d.ts +61 -0
  141. package/es/DesktopPicker/DesktopPicker.types.js +1 -0
  142. package/es/DesktopPicker/index.css +39 -0
  143. package/es/DesktopPicker/index.d.ts +2 -0
  144. package/es/DesktopPicker/index.js +6 -0
  145. package/es/DesktopPicker/utils/calcAfterMounted.d.ts +2 -0
  146. package/es/DesktopPicker/utils/calcAfterMounted.js +6 -0
  147. package/es/DesktopPicker/utils/calcAfterMounted.miniapp.d.ts +2 -0
  148. package/es/DesktopPicker/utils/calcAfterMounted.miniapp.js +9 -0
  149. package/es/DesktopTimePicker/DesktopTimePicker.d.ts +5 -0
  150. package/es/DesktopTimePicker/DesktopTimePicker.js +261 -0
  151. package/es/DesktopTimePicker/DesktopTimePicker.types.d.ts +182 -0
  152. package/es/DesktopTimePicker/DesktopTimePicker.types.js +1 -0
  153. package/es/DesktopTimePicker/DesktopTimePickerList.d.ts +4 -0
  154. package/es/DesktopTimePicker/DesktopTimePickerList.js +84 -0
  155. package/es/DesktopTimePicker/index.css +170 -0
  156. package/es/DesktopTimePicker/index.d.ts +2 -0
  157. package/es/DesktopTimePicker/index.js +6 -0
  158. package/es/DesktopTimePicker/useGetTimePickerContent.d.ts +6 -0
  159. package/es/DesktopTimePicker/useGetTimePickerContent.js +226 -0
  160. package/es/DesktopTimePicker/utils/scrollUtil.d.ts +2 -0
  161. package/es/DesktopTimePicker/utils/scrollUtil.js +8 -0
  162. package/es/DesktopTimePicker/utils/scrollUtil.miniapp.d.ts +2 -0
  163. package/es/DesktopTimePicker/utils/scrollUtil.miniapp.js +22 -0
  164. package/es/DesktopTimePicker/utils/utils.d.ts +28 -0
  165. package/es/DesktopTimePicker/utils/utils.js +365 -0
  166. package/es/Dialog/Dialog.types.d.ts +5 -0
  167. package/es/Dialog/FunctionalDialog.js +14 -3
  168. package/es/Input/Input.css +0 -2
  169. package/es/Picker/Picker.css +5 -0
  170. package/es/Picker/Picker.js +27 -5
  171. package/es/Picker/Picker.types.d.ts +15 -2
  172. package/es/Picker/PickerPanel.css +4 -0
  173. package/es/Picker/PickerPanel.js +7 -6
  174. package/es/Popover/Popover.js +73 -29
  175. package/es/Portal/Portal.miniapp.js +8 -5
  176. package/es/ScrollView/ScrollView.js +24 -11
  177. package/es/ScrollView/ScrollView.types.d.ts +0 -1
  178. package/es/Select/Select.css +1 -4
  179. package/es/Select/Select.js +62 -38
  180. package/es/Slider/Slider.js +16 -6
  181. package/es/SwipeAction/SwipeAction.css +79 -0
  182. package/es/SwipeAction/SwipeAction.d.ts +5 -0
  183. package/es/SwipeAction/SwipeAction.js +334 -0
  184. package/es/SwipeAction/SwipeAction.types.d.ts +75 -0
  185. package/es/SwipeAction/SwipeAction.types.js +1 -0
  186. package/es/SwipeAction/SwipeActionContext.d.ts +4 -0
  187. package/es/SwipeAction/SwipeActionContext.js +11 -0
  188. package/es/SwipeAction/SwipeActionItem.css +31 -0
  189. package/es/SwipeAction/SwipeActionItem.d.ts +5 -0
  190. package/es/SwipeAction/SwipeActionItem.js +78 -0
  191. package/es/SwipeAction/constants.d.ts +9 -0
  192. package/es/SwipeAction/constants.js +15 -0
  193. package/es/SwipeAction/index.d.ts +5 -0
  194. package/es/SwipeAction/index.js +12 -0
  195. package/es/Tabs/Tabs.js +29 -14
  196. package/es/Tabs/utils/scroll.d.ts +2 -0
  197. package/es/Tabs/utils/scroll.js +36 -0
  198. package/es/Toast/FunctionalToast.js +14 -3
  199. package/es/Toast/Toast.css +0 -1
  200. package/es/Toast/Toast.types.d.ts +5 -0
  201. package/es/Tooltip/Tooltip.js +73 -29
  202. package/es/index.d.ts +6 -0
  203. package/es/index.js +6 -0
  204. package/es/locales/base.d.ts +11 -0
  205. package/es/locales/en-US.js +24 -0
  206. package/es/locales/zh-CN.js +24 -0
  207. package/es/locales/zh-TW.js +24 -0
  208. package/package.json +5 -5
  209. package/dist/Tabs/utils/bound.d.ts +0 -1
  210. package/es/Tabs/utils/bound.d.ts +0 -1
  211. package/es/Tabs/utils/bound.js +0 -13
@@ -0,0 +1,288 @@
1
+ var __create = Object.create;
2
+ var __defProp = Object.defineProperty;
3
+ var __defProps = Object.defineProperties;
4
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
+ var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
6
+ var __getOwnPropNames = Object.getOwnPropertyNames;
7
+ var __getOwnPropSymbols = Object.getOwnPropertySymbols;
8
+ var __getProtoOf = Object.getPrototypeOf;
9
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
10
+ var __propIsEnum = Object.prototype.propertyIsEnumerable;
11
+ var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
12
+ var __spreadValues = (a, b) => {
13
+ for (var prop in b || (b = {}))
14
+ if (__hasOwnProp.call(b, prop))
15
+ __defNormalProp(a, prop, b[prop]);
16
+ if (__getOwnPropSymbols)
17
+ for (var prop of __getOwnPropSymbols(b)) {
18
+ if (__propIsEnum.call(b, prop))
19
+ __defNormalProp(a, prop, b[prop]);
20
+ }
21
+ return a;
22
+ };
23
+ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
24
+ var __objRest = (source, exclude) => {
25
+ var target = {};
26
+ for (var prop in source)
27
+ if (__hasOwnProp.call(source, prop) && exclude.indexOf(prop) < 0)
28
+ target[prop] = source[prop];
29
+ if (source != null && __getOwnPropSymbols)
30
+ for (var prop of __getOwnPropSymbols(source)) {
31
+ if (exclude.indexOf(prop) < 0 && __propIsEnum.call(source, prop))
32
+ target[prop] = source[prop];
33
+ }
34
+ return target;
35
+ };
36
+ var __export = (target, all) => {
37
+ for (var name in all)
38
+ __defProp(target, name, { get: all[name], enumerable: true });
39
+ };
40
+ var __copyProps = (to, from, except, desc) => {
41
+ if (from && typeof from === "object" || typeof from === "function") {
42
+ for (let key of __getOwnPropNames(from))
43
+ if (!__hasOwnProp.call(to, key) && key !== except)
44
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
45
+ }
46
+ return to;
47
+ };
48
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
49
+ // If the importer is in node compatibility mode or this is not an ESM
50
+ // file that has been converted to a CommonJS file using a Babel-
51
+ // compatible transform (i.e. "__esModule" has not been set), then set
52
+ // "default" to the CommonJS "module.exports" for node compatibility.
53
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
54
+ mod
55
+ ));
56
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
57
+ var DesktopTimePicker_exports = {};
58
+ __export(DesktopTimePicker_exports, {
59
+ default: () => DesktopTimePicker_default
60
+ });
61
+ module.exports = __toCommonJS(DesktopTimePicker_exports);
62
+ var import_icons = require("@bifrostui/icons");
63
+ var import_dayjs = __toESM(require("dayjs"));
64
+ var import_customParseFormat = __toESM(require("dayjs/plugin/customParseFormat"));
65
+ var import_clsx = __toESM(require("clsx"));
66
+ var import_react = __toESM(require("react"));
67
+ var import_utils = require("@bifrostui/utils");
68
+ var import_utils2 = require("./utils/utils");
69
+ var import_DesktopPicker = __toESM(require("../DesktopPicker"));
70
+ var import_useGetTimePickerContent = __toESM(require("./useGetTimePickerContent"));
71
+ var import_index = require("./index.css");
72
+ import_dayjs.default.extend(import_customParseFormat.default);
73
+ const prefixCls = "bui-d-time-picker";
74
+ const allowedViews = ["hour", "minute", "second"];
75
+ const DesktopTimePicker = /* @__PURE__ */ import_react.default.forwardRef(
76
+ (props, ref) => {
77
+ const _a = props, {
78
+ views = allowedViews,
79
+ timeSteps = { hour: 1, minute: 1, second: 1 },
80
+ ampm = false,
81
+ className,
82
+ inputRef,
83
+ inputProps,
84
+ value,
85
+ defaultValue,
86
+ disabled = false,
87
+ disableOpenPicker = false,
88
+ placeholder,
89
+ open,
90
+ format = ampm ? "hh:mm:ss A" : "HH:mm:ss",
91
+ disabledTimeView = () => ({
92
+ hour: () => [],
93
+ minute: () => [],
94
+ second: () => []
95
+ }),
96
+ minTime,
97
+ maxTime,
98
+ icon,
99
+ closeOnSelect = true,
100
+ onChange,
101
+ onClose,
102
+ onOpen,
103
+ DesktopPickerProps,
104
+ timeRender
105
+ } = _a, others = __objRest(_a, [
106
+ "views",
107
+ "timeSteps",
108
+ "ampm",
109
+ "className",
110
+ "inputRef",
111
+ "inputProps",
112
+ "value",
113
+ "defaultValue",
114
+ "disabled",
115
+ "disableOpenPicker",
116
+ "placeholder",
117
+ "open",
118
+ "format",
119
+ "disabledTimeView",
120
+ "minTime",
121
+ "maxTime",
122
+ "icon",
123
+ "closeOnSelect",
124
+ "onChange",
125
+ "onClose",
126
+ "onOpen",
127
+ "DesktopPickerProps",
128
+ "timeRender"
129
+ ]);
130
+ const [isOpen, setIsOpen] = (0, import_react.useState)(false);
131
+ const [inputStr, setInputStr] = (0, import_react.useState)("");
132
+ const [useUserStr, setUseUserStr] = (0, import_react.useState)(false);
133
+ const [isInvalid, setIsInvalid] = (0, import_react.useState)(false);
134
+ const [timeValue, triggerChange] = (0, import_utils.useValue)({
135
+ value,
136
+ defaultValue,
137
+ onChange
138
+ });
139
+ const handleDatePickerIconClick = (e) => {
140
+ e.stopPropagation();
141
+ if (disabled || disableOpenPicker || open !== void 0)
142
+ return;
143
+ setIsOpen(!isOpen);
144
+ };
145
+ const handleTimePickerInputClick = (e) => {
146
+ e.stopPropagation();
147
+ if (inputProps == null ? void 0 : inputProps.readOnly) {
148
+ if (disabled || disableOpenPicker || open !== void 0)
149
+ return;
150
+ setIsOpen(!isOpen);
151
+ return;
152
+ }
153
+ setIsOpen(false);
154
+ };
155
+ const { desktopTimePanel } = (0, import_useGetTimePickerContent.default)({
156
+ views: Array.from(
157
+ new Set(views.filter((view) => allowedViews.includes(view)))
158
+ ),
159
+ timeSteps,
160
+ ampm,
161
+ minTime: (0, import_utils2.dateToDayjs)(minTime),
162
+ maxTime: (0, import_utils2.dateToDayjs)(maxTime),
163
+ setIsOpen,
164
+ triggerChange,
165
+ disabledTimeView,
166
+ timeValue: (0, import_utils2.dateToDayjs)(timeValue),
167
+ onClose,
168
+ onOpen,
169
+ closeOnSelect,
170
+ timeRender,
171
+ setIsInvalid
172
+ });
173
+ const onInputChange = (e) => {
174
+ e.stopPropagation();
175
+ const newValue = e.target.value;
176
+ if (newValue.length === 0) {
177
+ setInputStr("");
178
+ setUseUserStr(true);
179
+ triggerChange(e, null);
180
+ return;
181
+ }
182
+ if (!(0, import_dayjs.default)(newValue, format, true).isValid()) {
183
+ setInputStr(newValue);
184
+ setUseUserStr(true);
185
+ } else {
186
+ setInputStr("");
187
+ setUseUserStr(false);
188
+ let validTime;
189
+ if ((0, import_utils2.dateToDayjs)(timeValue)) {
190
+ validTime = (0, import_utils2.dateToDayjs)(timeValue);
191
+ } else if (minTime) {
192
+ validTime = (0, import_utils2.dateToDayjs)(minTime);
193
+ } else if (maxTime) {
194
+ validTime = (0, import_utils2.dateToDayjs)(maxTime);
195
+ } else {
196
+ validTime = (0, import_dayjs.default)();
197
+ }
198
+ const year = validTime.year();
199
+ const month = validTime.month() + 1;
200
+ const date = validTime.date();
201
+ const newTimeValue = (0, import_dayjs.default)(`${year}-${month}-${date} ${newValue}`);
202
+ if ((0, import_utils2.isDisabledTime)(
203
+ newTimeValue,
204
+ (0, import_utils2.dateToDayjs)(minTime),
205
+ (0, import_utils2.dateToDayjs)(maxTime),
206
+ disabledTimeView
207
+ )) {
208
+ return;
209
+ }
210
+ triggerChange(e, newTimeValue.toDate());
211
+ }
212
+ };
213
+ const onMount = () => {
214
+ onOpen == null ? void 0 : onOpen();
215
+ };
216
+ const unMounted = () => {
217
+ onClose == null ? void 0 : onClose();
218
+ };
219
+ const showPlaceholder = (0, import_react.useMemo)(
220
+ () => placeholder || format,
221
+ [placeholder, format]
222
+ );
223
+ const inputValue = (0, import_react.useMemo)(() => {
224
+ if (useUserStr) {
225
+ return inputStr;
226
+ }
227
+ if (timeValue) {
228
+ return (0, import_dayjs.default)(timeValue).format(format);
229
+ }
230
+ return "";
231
+ }, [timeValue, inputStr, useUserStr, format]);
232
+ (0, import_react.useEffect)(() => {
233
+ setUseUserStr(false);
234
+ }, [timeValue]);
235
+ return /* @__PURE__ */ import_react.default.createElement(
236
+ "div",
237
+ __spreadProps(__spreadValues({}, others), {
238
+ className: (0, import_clsx.default)(prefixCls, className, {
239
+ [`${prefixCls}-disabled`]: disabled,
240
+ [`${prefixCls}-active`]: isOpen,
241
+ [`${prefixCls}-invalid`]: isInvalid
242
+ }),
243
+ ref
244
+ }),
245
+ /* @__PURE__ */ import_react.default.createElement(
246
+ import_DesktopPicker.default,
247
+ __spreadValues({
248
+ open: open != null ? open : isOpen,
249
+ miniBackdropInvisible: open !== void 0,
250
+ onClose: (e, data) => {
251
+ setIsOpen(data == null ? void 0 : data.value);
252
+ },
253
+ onMount,
254
+ onUnmounted: unMounted,
255
+ content: desktopTimePanel(),
256
+ inheritWidth: false
257
+ }, DesktopPickerProps),
258
+ /* @__PURE__ */ import_react.default.createElement("div", { className: `${prefixCls}-container` }, /* @__PURE__ */ import_react.default.createElement(
259
+ "input",
260
+ __spreadProps(__spreadValues({}, inputProps), {
261
+ "aria-invalid": true,
262
+ autoComplete: "off",
263
+ placeholder: showPlaceholder,
264
+ type: "text",
265
+ inputMode: "text",
266
+ ref: inputRef,
267
+ className: (0, import_clsx.default)(`${prefixCls}-content`, {
268
+ [inputProps == null ? void 0 : inputProps.className]: inputProps == null ? void 0 : inputProps.className
269
+ }),
270
+ onBlur: () => setUseUserStr(false),
271
+ onClick: handleTimePickerInputClick,
272
+ onChange: onInputChange,
273
+ value: inputValue
274
+ })
275
+ ), /* @__PURE__ */ import_react.default.createElement(
276
+ "div",
277
+ {
278
+ onClick: handleDatePickerIconClick,
279
+ className: `${prefixCls}-icon`
280
+ },
281
+ icon || /* @__PURE__ */ import_react.default.createElement(import_icons.AccessTimeCircleOutlinedIcon, { htmlColor: "#9c9ca5" })
282
+ ))
283
+ )
284
+ );
285
+ }
286
+ );
287
+ DesktopTimePicker.displayName = "BUITimePicker";
288
+ var DesktopTimePicker_default = DesktopTimePicker;
@@ -0,0 +1,182 @@
1
+ import React, { Ref } from 'react';
2
+ import { OverrideProps } from '@bifrostui/types';
3
+ import { Dayjs } from 'dayjs';
4
+ import { DesktopPickerProps } from '../DesktopPicker';
5
+ export type Views = Array<'hour' | 'minute' | 'second'>;
6
+ export type ViewType = 'hour' | 'minute' | 'second';
7
+ export type ViewTypeWithMeridiem = ViewType | 'meridiem';
8
+ export type TimeSteps = {
9
+ hour?: number;
10
+ minute?: number;
11
+ second?: number;
12
+ };
13
+ export type TimePickerProps<D extends React.ElementType = 'div', P = {}> = OverrideProps<{
14
+ props: P & {
15
+ /**
16
+ * 默认选中的值,当组件非受控时使用
17
+ */
18
+ defaultValue?: Date;
19
+ /**
20
+ * 选中的值,当组件受控时使用
21
+ */
22
+ value?: Date;
23
+ /**
24
+ * 输入框占位内容
25
+ */
26
+ placeholder?: string;
27
+ /**
28
+ * 面板视图选择
29
+ */
30
+ views?: Views;
31
+ /**
32
+ * 时间间隔
33
+ */
34
+ timeSteps?: TimeSteps;
35
+ /**
36
+ * 是否使用十二小时制模式
37
+ */
38
+ ampm?: boolean;
39
+ /**
40
+ * 时间格式化
41
+ */
42
+ format?: string;
43
+ /**
44
+ * 可选择的最小时间
45
+ */
46
+ minTime?: Date;
47
+ /**
48
+ * 可选择的最大时间
49
+ */
50
+ maxTime?: Date;
51
+ /**
52
+ * 禁止选择的时间
53
+ */
54
+ disabledTimeView?: DisabledTimeView;
55
+ /**
56
+ * 禁用弹层选择功能
57
+ */
58
+ disableOpenPicker?: boolean;
59
+ /**
60
+ * 是否禁用时间选择器
61
+ */
62
+ disabled?: boolean;
63
+ /**
64
+ * 选择时间后是否立刻关闭
65
+ */
66
+ closeOnSelect?: boolean;
67
+ /**
68
+ * 弹层是否打开
69
+ */
70
+ open?: boolean;
71
+ /**
72
+ * 输入框icon
73
+ */
74
+ icon?: React.ReactNode;
75
+ /**
76
+ * 时间发生变化的回调
77
+ */
78
+ onChange?: (e: React.SyntheticEvent, data: {
79
+ value: Date | null;
80
+ }) => void;
81
+ /**
82
+ * 弹层关闭的回调
83
+ */
84
+ onClose?: () => void;
85
+ /**
86
+ * 弹层打开的回调
87
+ */
88
+ onOpen?: () => void;
89
+ /**
90
+ * inputRef
91
+ */
92
+ inputRef?: Ref<HTMLInputElement>;
93
+ /**
94
+ * inputProp
95
+ */
96
+ inputProps?: React.InputHTMLAttributes<HTMLInputElement>;
97
+ /**
98
+ * DesktopPickerProps
99
+ */
100
+ DesktopPickerProps?: Omit<DesktopPickerProps, 'open'>;
101
+ /**
102
+ * 自定义时间单元格渲染内容
103
+ */
104
+ timeRender?: (item: ITimeInstance) => React.ReactNode;
105
+ };
106
+ defaultComponent: D;
107
+ }, D>;
108
+ export type DisabledTimeView = () => {
109
+ hour?: () => number[];
110
+ minute?: (selectedHour: number) => number[];
111
+ second?: (selectedHour: number, selectedMinute: number) => number[];
112
+ };
113
+ export interface TimePickerContentProps {
114
+ setIsOpen: Function;
115
+ triggerChange: Function;
116
+ disabledTimeView?: DisabledTimeView;
117
+ timeValue: Dayjs;
118
+ /**
119
+ * 关闭浮层
120
+ */
121
+ onClose?: (e: React.MouseEvent<any>, data: {
122
+ value: boolean;
123
+ }) => void;
124
+ /**
125
+ * 打开浮层
126
+ */
127
+ onOpen?: (e: React.MouseEvent<any>, data: {
128
+ value: boolean;
129
+ }) => void;
130
+ /**
131
+ * 选择时间后是否立刻关闭
132
+ */
133
+ closeOnSelect?: boolean;
134
+ /**
135
+ * 打开浮层的视图
136
+ */
137
+ views?: Views;
138
+ /**
139
+ * 时间间隔
140
+ */
141
+ timeSteps?: TimeSteps;
142
+ /**
143
+ * 是否使用十二小时制模式
144
+ */
145
+ ampm?: boolean;
146
+ /**
147
+ * 可选择的最小时间
148
+ */
149
+ minTime?: Dayjs;
150
+ /**
151
+ * 可选择的最大时间
152
+ */
153
+ maxTime?: Dayjs;
154
+ /**
155
+ * 自定义时间单元格渲染内容
156
+ */
157
+ timeRender?: (item: ITimeInstance) => React.ReactNode;
158
+ /**
159
+ * 校验timeValue是否有效
160
+ */
161
+ setIsInvalid: (a: boolean) => void;
162
+ }
163
+ /** 时间面板单元格对象 */
164
+ export interface ITimeInstance {
165
+ value: number | string;
166
+ label: string;
167
+ disabled: boolean;
168
+ }
169
+ /** 时分秒面板单元格对象 */
170
+ export interface ITimeItemNumberInstance {
171
+ value: number;
172
+ label: string;
173
+ }
174
+ export interface DesktopTimePickerListProps {
175
+ timeValue: Dayjs;
176
+ type: ViewTypeWithMeridiem;
177
+ dataList: ITimeInstance[];
178
+ selectedValue: string | number;
179
+ prefixCls: string;
180
+ handleClick: Function;
181
+ timeRender: (item: ITimeInstance) => React.ReactNode;
182
+ }
@@ -0,0 +1,15 @@
1
+ var __defProp = Object.defineProperty;
2
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
3
+ var __getOwnPropNames = Object.getOwnPropertyNames;
4
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
5
+ var __copyProps = (to, from, except, desc) => {
6
+ if (from && typeof from === "object" || typeof from === "function") {
7
+ for (let key of __getOwnPropNames(from))
8
+ if (!__hasOwnProp.call(to, key) && key !== except)
9
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
10
+ }
11
+ return to;
12
+ };
13
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
14
+ var DesktopTimePicker_types_exports = {};
15
+ module.exports = __toCommonJS(DesktopTimePicker_types_exports);
@@ -0,0 +1,4 @@
1
+ import React from 'react';
2
+ import { DesktopTimePickerListProps } from './DesktopTimePicker.types';
3
+ declare const DesktopTimePickerList: React.ForwardRefExoticComponent<DesktopTimePickerListProps & React.RefAttributes<HTMLDivElement>>;
4
+ export default DesktopTimePickerList;
@@ -0,0 +1,111 @@
1
+ var __create = Object.create;
2
+ var __defProp = Object.defineProperty;
3
+ var __defProps = Object.defineProperties;
4
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
+ var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
6
+ var __getOwnPropNames = Object.getOwnPropertyNames;
7
+ var __getOwnPropSymbols = Object.getOwnPropertySymbols;
8
+ var __getProtoOf = Object.getPrototypeOf;
9
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
10
+ var __propIsEnum = Object.prototype.propertyIsEnumerable;
11
+ var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
12
+ var __spreadValues = (a, b) => {
13
+ for (var prop in b || (b = {}))
14
+ if (__hasOwnProp.call(b, prop))
15
+ __defNormalProp(a, prop, b[prop]);
16
+ if (__getOwnPropSymbols)
17
+ for (var prop of __getOwnPropSymbols(b)) {
18
+ if (__propIsEnum.call(b, prop))
19
+ __defNormalProp(a, prop, b[prop]);
20
+ }
21
+ return a;
22
+ };
23
+ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
24
+ var __export = (target, all) => {
25
+ for (var name in all)
26
+ __defProp(target, name, { get: all[name], enumerable: true });
27
+ };
28
+ var __copyProps = (to, from, except, desc) => {
29
+ if (from && typeof from === "object" || typeof from === "function") {
30
+ for (let key of __getOwnPropNames(from))
31
+ if (!__hasOwnProp.call(to, key) && key !== except)
32
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
33
+ }
34
+ return to;
35
+ };
36
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
37
+ // If the importer is in node compatibility mode or this is not an ESM
38
+ // file that has been converted to a CommonJS file using a Babel-
39
+ // compatible transform (i.e. "__esModule" has not been set), then set
40
+ // "default" to the CommonJS "module.exports" for node compatibility.
41
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
42
+ mod
43
+ ));
44
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
45
+ var DesktopTimePickerList_exports = {};
46
+ __export(DesktopTimePickerList_exports, {
47
+ default: () => DesktopTimePickerList_default
48
+ });
49
+ module.exports = __toCommonJS(DesktopTimePickerList_exports);
50
+ var import_react = __toESM(require("react"));
51
+ var import_utils = require("@bifrostui/utils");
52
+ var import_clsx = __toESM(require("clsx"));
53
+ var import_ScrollView = require("../ScrollView");
54
+ var import_scrollUtil = __toESM(require("./utils/scrollUtil"));
55
+ const DesktopTimePickerList = /* @__PURE__ */ import_react.default.forwardRef((props, ref) => {
56
+ const {
57
+ timeValue,
58
+ type,
59
+ dataList,
60
+ selectedValue,
61
+ prefixCls,
62
+ handleClick,
63
+ timeRender
64
+ } = props;
65
+ const ulRef = (0, import_react.useRef)(null);
66
+ const [scrollTop, setScrollTop] = (0, import_react.useState)(0);
67
+ (0, import_react.useEffect)(() => {
68
+ if (!ulRef.current)
69
+ return;
70
+ const elementName = `.${prefixCls}-${type}-active`;
71
+ if (!import_utils.isMini) {
72
+ (0, import_scrollUtil.default)(elementName, setScrollTop);
73
+ } else {
74
+ const index = dataList.findIndex((item) => item.value === selectedValue);
75
+ if (index === -1)
76
+ return;
77
+ (0, import_scrollUtil.default)(elementName, setScrollTop, index);
78
+ }
79
+ }, [timeValue]);
80
+ return /* @__PURE__ */ import_react.default.createElement(
81
+ import_ScrollView.ScrollView,
82
+ {
83
+ scrollY: true,
84
+ scrollWithAnimation: true,
85
+ className: (0, import_clsx.default)(`${prefixCls}-${type}-ul`),
86
+ key: type,
87
+ scrollTop,
88
+ scrollAnimationDuration: 300,
89
+ ref: ulRef
90
+ },
91
+ dataList.map((item, index) => {
92
+ const { value, label, disabled } = item;
93
+ return /* @__PURE__ */ import_react.default.createElement(
94
+ "div",
95
+ {
96
+ key: index,
97
+ className: (0, import_clsx.default)(`${prefixCls}-${type}-li`, {
98
+ [`${prefixCls}-${type}-active`]: value === selectedValue,
99
+ [`${prefixCls}-${type}-disabled`]: disabled
100
+ }),
101
+ onClick: (e) => {
102
+ handleClick(e, disabled, item);
103
+ }
104
+ },
105
+ (timeRender == null ? void 0 : timeRender(__spreadProps(__spreadValues({}, item), { disabled }))) || label
106
+ );
107
+ })
108
+ );
109
+ });
110
+ DesktopTimePickerList.displayName = "BuiDesktopTimePickerList";
111
+ var DesktopTimePickerList_default = DesktopTimePickerList;