@bifrostui/react 2.0.0-beta.1 → 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 (213) 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/Picker/Picker.css +5 -0
  66. package/dist/Picker/Picker.js +27 -5
  67. package/dist/Picker/Picker.types.d.ts +15 -2
  68. package/dist/Picker/PickerPanel.css +4 -0
  69. package/dist/Picker/PickerPanel.js +7 -6
  70. package/dist/Popover/Popover.js +70 -27
  71. package/dist/Portal/Portal.miniapp.js +7 -4
  72. package/dist/ScrollView/ScrollView.js +24 -11
  73. package/dist/ScrollView/ScrollView.types.d.ts +0 -1
  74. package/dist/Select/Select.css +1 -4
  75. package/dist/Select/Select.js +62 -37
  76. package/dist/Slider/Slider.js +13 -5
  77. package/dist/SwipeAction/SwipeAction.css +79 -0
  78. package/dist/SwipeAction/SwipeAction.d.ts +5 -0
  79. package/dist/SwipeAction/SwipeAction.js +349 -0
  80. package/dist/SwipeAction/SwipeAction.types.d.ts +75 -0
  81. package/dist/SwipeAction/SwipeAction.types.js +15 -0
  82. package/dist/SwipeAction/SwipeActionContext.d.ts +4 -0
  83. package/dist/SwipeAction/SwipeActionContext.js +30 -0
  84. package/dist/SwipeAction/SwipeActionItem.css +31 -0
  85. package/dist/SwipeAction/SwipeActionItem.d.ts +5 -0
  86. package/dist/SwipeAction/SwipeActionItem.js +105 -0
  87. package/dist/SwipeAction/constants.d.ts +9 -0
  88. package/dist/SwipeAction/constants.js +39 -0
  89. package/dist/SwipeAction/index.d.ts +5 -0
  90. package/dist/SwipeAction/index.js +50 -0
  91. package/dist/Swiper/Swiper.js +18 -4
  92. package/dist/Tabs/Tabs.js +30 -15
  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/Modal/Modal.miniapp.d.ts +1 -1
  170. package/es/Picker/Picker.css +5 -0
  171. package/es/Picker/Picker.js +27 -5
  172. package/es/Picker/Picker.types.d.ts +15 -2
  173. package/es/Picker/PickerPanel.css +4 -0
  174. package/es/Picker/PickerPanel.js +7 -6
  175. package/es/Popover/Popover.js +73 -29
  176. package/es/Portal/Portal.miniapp.js +8 -5
  177. package/es/ScrollView/ScrollView.js +24 -11
  178. package/es/ScrollView/ScrollView.types.d.ts +0 -1
  179. package/es/Select/Select.css +1 -4
  180. package/es/Select/Select.js +62 -38
  181. package/es/Slider/Slider.js +16 -6
  182. package/es/SwipeAction/SwipeAction.css +79 -0
  183. package/es/SwipeAction/SwipeAction.d.ts +5 -0
  184. package/es/SwipeAction/SwipeAction.js +334 -0
  185. package/es/SwipeAction/SwipeAction.types.d.ts +75 -0
  186. package/es/SwipeAction/SwipeAction.types.js +1 -0
  187. package/es/SwipeAction/SwipeActionContext.d.ts +4 -0
  188. package/es/SwipeAction/SwipeActionContext.js +11 -0
  189. package/es/SwipeAction/SwipeActionItem.css +31 -0
  190. package/es/SwipeAction/SwipeActionItem.d.ts +5 -0
  191. package/es/SwipeAction/SwipeActionItem.js +78 -0
  192. package/es/SwipeAction/constants.d.ts +9 -0
  193. package/es/SwipeAction/constants.js +15 -0
  194. package/es/SwipeAction/index.d.ts +5 -0
  195. package/es/SwipeAction/index.js +12 -0
  196. package/es/Swiper/Swiper.js +18 -4
  197. package/es/Tabs/Tabs.js +30 -15
  198. package/es/Tabs/utils/scroll.d.ts +2 -0
  199. package/es/Tabs/utils/scroll.js +36 -0
  200. package/es/Toast/FunctionalToast.js +14 -3
  201. package/es/Toast/Toast.css +0 -1
  202. package/es/Toast/Toast.types.d.ts +5 -0
  203. package/es/Tooltip/Tooltip.js +73 -29
  204. package/es/index.d.ts +6 -0
  205. package/es/index.js +6 -0
  206. package/es/locales/base.d.ts +11 -0
  207. package/es/locales/en-US.js +24 -0
  208. package/es/locales/zh-CN.js +24 -0
  209. package/es/locales/zh-TW.js +24 -0
  210. package/package.json +5 -5
  211. package/dist/Tabs/utils/bound.d.ts +0 -1
  212. package/es/Tabs/utils/bound.d.ts +0 -1
  213. package/es/Tabs/utils/bound.js +0 -13
@@ -0,0 +1,322 @@
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 DesktopDateTimePicker_exports = {};
58
+ __export(DesktopDateTimePicker_exports, {
59
+ default: () => DesktopDateTimePicker_default
60
+ });
61
+ module.exports = __toCommonJS(DesktopDateTimePicker_exports);
62
+ var import_icons = require("@bifrostui/icons");
63
+ var import_dayjs = __toESM(require("dayjs"));
64
+ var import_clsx = __toESM(require("clsx"));
65
+ var import_react = __toESM(require("react"));
66
+ var import_utils = require("@bifrostui/utils");
67
+ var import_DesktopPicker = __toESM(require("../DesktopPicker"));
68
+ var import_useGetDatePickerContent = __toESM(require("../DesktopDatePicker/useGetDatePickerContent"));
69
+ var import_useGetTimePickerContent = __toESM(require("../DesktopTimePicker/useGetTimePickerContent"));
70
+ var import_index = require("./index.css");
71
+ const prefixCls = "bui-datetime-picker";
72
+ const DesktopDateTimePicker = /* @__PURE__ */ import_react.default.forwardRef((props, ref) => {
73
+ const _a = props, {
74
+ className,
75
+ inputRef,
76
+ inputProps,
77
+ value,
78
+ defaultValue,
79
+ disabled = false,
80
+ disableOpenPicker = false,
81
+ placeholder,
82
+ format = "YYYY/MM/DD HH:mm:ss",
83
+ open,
84
+ disabledDate,
85
+ views = ["year", "month", "day", "hour", "minute", "second"],
86
+ minDate = (0, import_dayjs.default)((0, import_dayjs.default)().format("YYYYMMDD")).subtract(10, "year").toDate(),
87
+ maxDate = (0, import_dayjs.default)((0, import_dayjs.default)().format("YYYYMMDD")).add(10, "year").toDate(),
88
+ icon,
89
+ headerBarLeftIcon,
90
+ headerBarRightIcon,
91
+ closeOnSelect = true,
92
+ onChange,
93
+ onClose,
94
+ onOpen,
95
+ monthRender,
96
+ yearRender,
97
+ onMonthChange,
98
+ onYearChange,
99
+ DesktopPickerProps,
100
+ CalendarProps
101
+ } = _a, others = __objRest(_a, [
102
+ "className",
103
+ "inputRef",
104
+ "inputProps",
105
+ "value",
106
+ "defaultValue",
107
+ "disabled",
108
+ "disableOpenPicker",
109
+ "placeholder",
110
+ "format",
111
+ "open",
112
+ "disabledDate",
113
+ "views",
114
+ "minDate",
115
+ "maxDate",
116
+ "icon",
117
+ "headerBarLeftIcon",
118
+ "headerBarRightIcon",
119
+ "closeOnSelect",
120
+ "onChange",
121
+ "onClose",
122
+ "onOpen",
123
+ "monthRender",
124
+ "yearRender",
125
+ "onMonthChange",
126
+ "onYearChange",
127
+ "DesktopPickerProps",
128
+ "CalendarProps"
129
+ ]);
130
+ const [isOpen, setIsOpen] = (0, import_react.useState)(open);
131
+ const [isInvalid, setIsInvalid] = (0, import_react.useState)(false);
132
+ const getPicker = (0, import_react.useMemo)(() => {
133
+ if (views.includes("day")) {
134
+ return "day";
135
+ }
136
+ if (views.includes("month")) {
137
+ return "month";
138
+ }
139
+ if (views.includes("year")) {
140
+ return "year";
141
+ }
142
+ return "day";
143
+ }, [views]);
144
+ const [selectType, setSelectType] = (0, import_react.useState)(
145
+ getPicker
146
+ );
147
+ const [inputStr, setInputStr] = (0, import_react.useState)("");
148
+ const [useUserStr, setUseUserStr] = (0, import_react.useState)(false);
149
+ const [calendarValue, triggerChange] = (0, import_utils.useValue)({
150
+ value,
151
+ defaultValue,
152
+ onChange
153
+ });
154
+ const handleDatePickerIconClick = (e) => {
155
+ if (disabled || disableOpenPicker || open !== void 0)
156
+ return;
157
+ setIsOpen(!isOpen);
158
+ };
159
+ const handleDatePickerInputClick = (e) => {
160
+ e.stopPropagation();
161
+ if (inputProps == null ? void 0 : inputProps.readOnly) {
162
+ if (disabled || disableOpenPicker || open !== void 0)
163
+ return;
164
+ setIsOpen(!isOpen);
165
+ return;
166
+ }
167
+ setIsOpen(false);
168
+ };
169
+ const { desktopDatePicker } = (0, import_useGetDatePickerContent.default)({
170
+ format,
171
+ minDate,
172
+ maxDate,
173
+ setIsOpen,
174
+ triggerChange,
175
+ disabledDate,
176
+ calendarValue,
177
+ setSelectType,
178
+ picker: getPicker,
179
+ selectType,
180
+ headerBarLeftIcon,
181
+ headerBarRightIcon,
182
+ CalendarProps,
183
+ onClose,
184
+ monthRender,
185
+ yearRender,
186
+ onMonthChange,
187
+ onYearChange,
188
+ closeOnSelect: false,
189
+ style: {
190
+ borderRadius: "3px 0px 0px 3px"
191
+ }
192
+ });
193
+ const { desktopTimePanel } = (0, import_useGetTimePickerContent.default)({
194
+ views: views.filter(
195
+ (item) => item !== "day" && item !== "month" && item !== "year"
196
+ ),
197
+ minTime: (0, import_dayjs.default)(minDate),
198
+ maxTime: (0, import_dayjs.default)(maxDate),
199
+ setIsOpen,
200
+ triggerChange,
201
+ closeOnSelect,
202
+ timeValue: (0, import_dayjs.default)(calendarValue),
203
+ setIsInvalid
204
+ });
205
+ const onInputChange = (e) => {
206
+ e.stopPropagation();
207
+ const newValue = e.target.value;
208
+ if (newValue.length === 0) {
209
+ setInputStr("");
210
+ setUseUserStr(true);
211
+ triggerChange(e, null);
212
+ return;
213
+ }
214
+ if ((0, import_dayjs.default)(newValue, format, true).isValid()) {
215
+ setInputStr("");
216
+ setUseUserStr(false);
217
+ if (disabledDate == null ? void 0 : disabledDate((0, import_dayjs.default)(newValue).toDate())) {
218
+ return;
219
+ }
220
+ if ((0, import_dayjs.default)(newValue).isAfter(maxDate)) {
221
+ triggerChange(e, maxDate);
222
+ return;
223
+ }
224
+ if ((0, import_dayjs.default)(newValue).isBefore(minDate)) {
225
+ triggerChange(e, minDate);
226
+ return;
227
+ }
228
+ triggerChange(e, (0, import_dayjs.default)(e.target.value).toDate());
229
+ } else {
230
+ setUseUserStr(true);
231
+ setInputStr(e.target.value);
232
+ }
233
+ };
234
+ const onmount = () => {
235
+ onOpen == null ? void 0 : onOpen();
236
+ };
237
+ const unMounted = () => {
238
+ onClose == null ? void 0 : onClose();
239
+ setSelectType(getPicker);
240
+ };
241
+ const showPlaceholder = (0, import_react.useMemo)(() => {
242
+ if (placeholder) {
243
+ return placeholder;
244
+ }
245
+ return format;
246
+ }, [placeholder, format]);
247
+ const renderValue = (0, import_react.useMemo)(() => {
248
+ if (useUserStr) {
249
+ return inputStr;
250
+ }
251
+ if (calendarValue) {
252
+ return (0, import_dayjs.default)(calendarValue).format(format);
253
+ }
254
+ return "";
255
+ }, [calendarValue, inputStr, useUserStr, format]);
256
+ (0, import_react.useEffect)(() => {
257
+ setUseUserStr(false);
258
+ }, [calendarValue]);
259
+ return /* @__PURE__ */ import_react.default.createElement(
260
+ "div",
261
+ __spreadProps(__spreadValues({}, others), {
262
+ className: (0, import_clsx.default)(prefixCls, className, {
263
+ [`${prefixCls}-disabled`]: disabled,
264
+ [`${prefixCls}-active`]: isOpen,
265
+ [`${prefixCls}-invalid`]: isInvalid
266
+ }),
267
+ ref
268
+ }),
269
+ /* @__PURE__ */ import_react.default.createElement(
270
+ import_DesktopPicker.default,
271
+ __spreadProps(__spreadValues({
272
+ open: open != null ? open : isOpen,
273
+ miniBackdropInvisible: open !== void 0,
274
+ onClose: (e, data) => {
275
+ setIsOpen(data == null ? void 0 : data.value);
276
+ },
277
+ onMount: onmount,
278
+ onUnmounted: unMounted,
279
+ content: /* @__PURE__ */ import_react.default.createElement(
280
+ "div",
281
+ {
282
+ className: `${prefixCls}-box`,
283
+ onClick: (e) => {
284
+ e.stopPropagation();
285
+ }
286
+ },
287
+ desktopDatePicker(),
288
+ desktopTimePanel()
289
+ )
290
+ }, DesktopPickerProps), {
291
+ inheritWidth: false
292
+ }),
293
+ /* @__PURE__ */ import_react.default.createElement("div", { className: `${prefixCls}-container` }, /* @__PURE__ */ import_react.default.createElement(
294
+ "input",
295
+ __spreadProps(__spreadValues({}, inputProps), {
296
+ "aria-invalid": true,
297
+ autoComplete: "off",
298
+ placeholder: showPlaceholder,
299
+ type: "text",
300
+ inputMode: "text",
301
+ ref: inputRef,
302
+ className: (0, import_clsx.default)(`${prefixCls}-input`, {
303
+ [inputProps == null ? void 0 : inputProps.className]: inputProps == null ? void 0 : inputProps.className
304
+ }),
305
+ onBlur: () => setUseUserStr(false),
306
+ onClick: handleDatePickerInputClick,
307
+ onChange: onInputChange,
308
+ value: renderValue
309
+ })
310
+ ), /* @__PURE__ */ import_react.default.createElement(
311
+ "div",
312
+ {
313
+ onClick: handleDatePickerIconClick,
314
+ className: `${prefixCls}-icon`
315
+ },
316
+ icon || /* @__PURE__ */ import_react.default.createElement(import_icons.DateOutlinedIcon, { htmlColor: "var(--bui-color-neutral-3)" })
317
+ ))
318
+ )
319
+ );
320
+ });
321
+ DesktopDateTimePicker.displayName = "BUIDesktopDateTimePicker";
322
+ var DesktopDateTimePicker_default = DesktopDateTimePicker;
@@ -0,0 +1,163 @@
1
+ import React, { Ref } from 'react';
2
+ import { OverrideProps } from '@bifrostui/types';
3
+ import { DesktopPickerProps } from '../DesktopPicker';
4
+ import { CalendarProps } from '../Calendar';
5
+ export type IDateTimePickerValue = Date | null;
6
+ export interface IDateTimePickerInstance {
7
+ /** 日期对象 */
8
+ day: Date;
9
+ /** 是否禁用 */
10
+ disabled: boolean;
11
+ }
12
+ export interface IDateTimePickerCustomIconProps {
13
+ /**
14
+ * 是否是最小时间
15
+ */
16
+ isMinMonth?: boolean;
17
+ /**
18
+ * 是否是最大时间
19
+ */
20
+ isMaxMonth?: boolean;
21
+ }
22
+ export interface IDateTimePickerCalendarProps {
23
+ /**
24
+ * 是否隐藏当前月之外的日期,默认为false
25
+ */
26
+ hideDaysOutsideCurrentMonth?: boolean;
27
+ /**
28
+ * 高亮的日期,默认为today
29
+ * today 若选中的非当天,则当天高亮显示,若选中的是当天,则当天展示选中态
30
+ * weekend 可选的周末高亮显示
31
+ */
32
+ highlightDate?: 'today' | 'weekend';
33
+ /**
34
+ * 自定义日期单元格的内容
35
+ */
36
+ dateRender?: (currentDate: IDateTimePickerInstance) => React.ReactNode;
37
+ /**
38
+ * 自定义周单元格的内容
39
+ */
40
+ weekRender?: (week: string) => React.ReactNode;
41
+ }
42
+ export type DateTimePickerProps<D extends React.ElementType = 'div', P = {}> = OverrideProps<{
43
+ props: P & {
44
+ /**
45
+ * 默认选中的值,当组件非受控时使用
46
+ */
47
+ defaultValue?: IDateTimePickerValue;
48
+ /**
49
+ * 选中的值,当组件受控时使用
50
+ */
51
+ value?: IDateTimePickerValue;
52
+ /**
53
+ * 输入框占位内容
54
+ */
55
+ placeholder?: string;
56
+ /**
57
+ * 可选择的最小日期,默认为当前日期
58
+ * 渲染指定月时:value=null并指定minDate
59
+ */
60
+ minDate?: Date;
61
+ /**
62
+ * 可选择的最大日期,默认为当前日期的一年后
63
+ */
64
+ maxDate?: Date;
65
+ /**
66
+ * 弹层是否打开
67
+ */
68
+ open?: boolean;
69
+ /**
70
+ * 输入框icon
71
+ */
72
+ icon?: React.ReactNode;
73
+ /**
74
+ * inputRef
75
+ */
76
+ inputRef?: Ref<HTMLInputElement>;
77
+ /**
78
+ * inputProp
79
+ */
80
+ inputProps?: React.InputHTMLAttributes<HTMLInputElement>;
81
+ /**
82
+ * 选择器类型
83
+ */
84
+ views?: Array<'year' | 'month' | 'day' | 'hour' | 'minute' | 'second'>;
85
+ /**
86
+ * 头部操作栏左边图标
87
+ */
88
+ headerBarLeftIcon?: (options: IDateTimePickerCustomIconProps) => React.ReactNode;
89
+ /**
90
+ * 头部操作栏右边图标
91
+ */
92
+ headerBarRightIcon?: (options: IDateTimePickerCustomIconProps) => React.ReactNode;
93
+ /**
94
+ * 是否禁用日期选择器
95
+ */
96
+ disabled?: boolean;
97
+ /**
98
+ * 不可选择的日期
99
+ */
100
+ disabledDate?: (currentDate: Date) => boolean;
101
+ /**
102
+ * 自定义月份单元格的内容
103
+ */
104
+ monthRender?: ({ month, currentDate, }: {
105
+ month: string | number;
106
+ currentDate: IDateTimePickerInstance;
107
+ }) => React.ReactNode;
108
+ /**
109
+ * 自定义年份单元格的内容
110
+ */
111
+ yearRender?: ({ year, currentDate, }: {
112
+ year: string | number;
113
+ currentDate: IDateTimePickerInstance;
114
+ }) => React.ReactNode;
115
+ /**
116
+ * 日期发生变化的回调
117
+ */
118
+ onChange?: (e: React.SyntheticEvent, data: {
119
+ value: IDateTimePickerValue;
120
+ }) => void;
121
+ /**
122
+ * 选择日期后是否立刻关闭
123
+ */
124
+ closeOnSelect?: boolean;
125
+ /**
126
+ * 禁用弹层选择功能
127
+ */
128
+ disableOpenPicker?: boolean;
129
+ /**
130
+ * 日期格式化
131
+ */
132
+ format?: string;
133
+ /**
134
+ * 弹层关闭的回调
135
+ */
136
+ onClose?: () => void;
137
+ /**
138
+ * 弹层打开的回调
139
+ */
140
+ onOpen?: () => void;
141
+ /**
142
+ * 月份切换的回调
143
+ */
144
+ onMonthChange?: (e: React.SyntheticEvent, data: {
145
+ value: Date;
146
+ }) => void;
147
+ /**
148
+ * 年份切换的回调
149
+ */
150
+ onYearChange?: (e: React.SyntheticEvent, data: {
151
+ value: Date;
152
+ }) => void;
153
+ /**
154
+ * DesktopPickerProps
155
+ */
156
+ DesktopPickerProps?: Omit<DesktopPickerProps, 'open'>;
157
+ /**
158
+ * CalendarProps
159
+ */
160
+ CalendarProps?: CalendarProps;
161
+ };
162
+ defaultComponent: D;
163
+ }, D>;
@@ -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 DesktopDateTimePicker_types_exports = {};
15
+ module.exports = __toCommonJS(DesktopDateTimePicker_types_exports);
@@ -0,0 +1,66 @@
1
+ :root,
2
+ page,
3
+ xhs-page {
4
+ --bui-datetime-picker-height: var(--bui-input-height, 32px);
5
+ --bui-datetime-picker-min-width: var(--bui-input-min-width, 100px);
6
+ --bui-datetime-picker-icon-size: var(--bui-title-size-3, 16px);
7
+ --bui-datetime-picker-font-size: var(--bui-title-size-3, 16px);
8
+ --bui-datetime-picker-container-padding: var(--bui-spacing-md, 9px);
9
+ --bui-datetime-picker-bg: var(--bui-color-bg-view);
10
+ --bui-datetime-picker-font-family: var(--bui-font-family);
11
+ --bui-datetime-picker-border: 1px solid var(--bui-color-border-default);
12
+ --bui-datetime-picker-shadow: 0 0 0 2px var(--bui-color-bg-default);
13
+ --bui-datetime-picker-disabled-color: var(--bui-color-fg-subtle);
14
+ }
15
+ .bui-datetime-picker {
16
+ position: relative;
17
+ cursor: pointer;
18
+ height: var(--bui-datetime-picker-height);
19
+ min-width: 100px;
20
+ font-size: var(--bui-datetime-picker-font-size);
21
+ border-radius: 5px;
22
+ background-color: var(--bui-datetime-picker-bg);
23
+ font-family: var(--bui-datetime-picker-font-family);
24
+ box-sizing: border-box;
25
+ border: var(--bui-datetime-picker-border);
26
+ }
27
+ .bui-datetime-picker:active,
28
+ .bui-datetime-picker-active {
29
+ box-shadow: var(--bui-datetime-picker-shadow);
30
+ }
31
+ .bui-datetime-picker-invalid {
32
+ border: 1px solid var(--bui-color-danger);
33
+ }
34
+ .bui-datetime-picker-icon {
35
+ display: flex;
36
+ align-items: center;
37
+ font-size: var(--bui-datetime-picker-icon-size);
38
+ }
39
+ .bui-datetime-picker-container {
40
+ display: flex;
41
+ align-items: center;
42
+ padding: 0 10px;
43
+ height: 100%;
44
+ }
45
+ .bui-datetime-picker-input {
46
+ display: flex;
47
+ justify-content: space-between;
48
+ align-items: center;
49
+ flex: 1;
50
+ height: 100%;
51
+ background-color: transparent;
52
+ outline: none;
53
+ border: 0;
54
+ }
55
+ .bui-datetime-picker-box {
56
+ display: flex;
57
+ width: 420px;
58
+ }
59
+ .bui-datetime-picker.bui-datetime-picker-disabled {
60
+ pointer-events: none;
61
+ box-shadow: none;
62
+ background-color: rgba(188, 188, 188, 0.2);
63
+ }
64
+ .bui-datetime-picker.bui-datetime-picker-disabled input {
65
+ color: var(--bui-datetime-picker-disabled-color);
66
+ }
@@ -0,0 +1,2 @@
1
+ export { default, default as DesktopDateTimePicker, } from './DesktopDateTimePicker';
2
+ export * from './DesktopDateTimePicker.types';
@@ -0,0 +1,41 @@
1
+ var __create = Object.create;
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __getProtoOf = Object.getPrototypeOf;
6
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
7
+ var __export = (target, all) => {
8
+ for (var name in all)
9
+ __defProp(target, name, { get: all[name], enumerable: true });
10
+ };
11
+ var __copyProps = (to, from, except, desc) => {
12
+ if (from && typeof from === "object" || typeof from === "function") {
13
+ for (let key of __getOwnPropNames(from))
14
+ if (!__hasOwnProp.call(to, key) && key !== except)
15
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
16
+ }
17
+ return to;
18
+ };
19
+ var __reExport = (target, mod, secondTarget) => (__copyProps(target, mod, "default"), secondTarget && __copyProps(secondTarget, mod, "default"));
20
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
21
+ // If the importer is in node compatibility mode or this is not an ESM
22
+ // file that has been converted to a CommonJS file using a Babel-
23
+ // compatible transform (i.e. "__esModule" has not been set), then set
24
+ // "default" to the CommonJS "module.exports" for node compatibility.
25
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
26
+ mod
27
+ ));
28
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
29
+ var DesktopDateTimePicker_exports = {};
30
+ __export(DesktopDateTimePicker_exports, {
31
+ DesktopDateTimePicker: () => import_DesktopDateTimePicker.default,
32
+ default: () => import_DesktopDateTimePicker.default
33
+ });
34
+ module.exports = __toCommonJS(DesktopDateTimePicker_exports);
35
+ var import_DesktopDateTimePicker = __toESM(require("./DesktopDateTimePicker"));
36
+ __reExport(DesktopDateTimePicker_exports, require("./DesktopDateTimePicker.types"), module.exports);
37
+ // Annotate the CommonJS export names for ESM import in node:
38
+ 0 && (module.exports = {
39
+ DesktopDateTimePicker,
40
+ ...require("./DesktopDateTimePicker.types")
41
+ });
@@ -0,0 +1,5 @@
1
+ import React from 'react';
2
+ import { DesktopPickerProps } from './DesktopPicker.types';
3
+ import './index.less';
4
+ declare const DesktopPicker: React.ForwardRefExoticComponent<Omit<DesktopPickerProps<"div", {}>, "ref"> & React.RefAttributes<HTMLDivElement>>;
5
+ export default DesktopPicker;