@bifrostui/react 1.4.5 → 1.4.7-beta.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.
- package/dist/Calendar/Calendar.js +5 -1
- package/dist/Calendar/Calendar.types.d.ts +5 -0
- package/dist/CitySelector/CitySelectorCore.js +3 -3
- package/dist/Collapse/Collapse.css +0 -1
- package/dist/Collapse/Collapse.d.ts +1 -1
- package/dist/Collapse/Collapse.js +11 -8
- package/dist/Collapse/Collapse.miniapp.d.ts +5 -0
- package/dist/Collapse/Collapse.miniapp.js +177 -0
- package/dist/CollapsePanel/CollapsePanel.css +4 -2
- package/dist/DatePicker/DatePicker.d.ts +4 -0
- package/dist/DatePicker/DatePicker.js +335 -0
- package/dist/DatePicker/DatePicker.types.d.ts +43 -0
- package/dist/DatePicker/DatePicker.types.js +35 -0
- package/dist/DatePicker/index.d.ts +2 -0
- package/dist/DatePicker/index.js +41 -0
- package/dist/DesktopDatePicker/DesktopDatePicker.d.ts +5 -0
- package/dist/DesktopDatePicker/DesktopDatePicker.js +280 -0
- package/dist/DesktopDatePicker/DesktopDatePicker.types.d.ts +163 -0
- package/dist/DesktopDatePicker/DesktopDatePicker.types.js +15 -0
- package/dist/DesktopDatePicker/deskTopPickerContainer.css +100 -0
- package/dist/DesktopDatePicker/index.css +61 -0
- package/dist/DesktopDatePicker/index.d.ts +2 -0
- package/dist/DesktopDatePicker/index.js +41 -0
- package/dist/DesktopDatePicker/useGetDatePickerContent.d.ts +6 -0
- package/dist/DesktopDatePicker/useGetDatePickerContent.js +343 -0
- package/dist/DesktopDateTimePicker/DesktopDateTimePicker.d.ts +5 -0
- package/dist/DesktopDateTimePicker/DesktopDateTimePicker.js +322 -0
- package/dist/DesktopDateTimePicker/DesktopDateTimePicker.types.d.ts +163 -0
- package/dist/DesktopDateTimePicker/DesktopDateTimePicker.types.js +15 -0
- package/dist/DesktopDateTimePicker/index.css +66 -0
- package/dist/DesktopDateTimePicker/index.d.ts +2 -0
- package/dist/DesktopDateTimePicker/index.js +41 -0
- package/dist/DesktopPicker/DesktopPicker.d.ts +5 -0
- package/dist/DesktopPicker/DesktopPicker.js +238 -0
- package/dist/DesktopPicker/DesktopPicker.types.d.ts +57 -0
- package/dist/DesktopPicker/DesktopPicker.types.js +15 -0
- package/dist/DesktopPicker/index.css +37 -0
- package/dist/DesktopPicker/index.d.ts +2 -0
- package/dist/DesktopPicker/index.js +41 -0
- package/dist/DesktopPicker/utils/calcAfterMounted.d.ts +2 -0
- package/dist/{Tabs/utils/bound.js → DesktopPicker/utils/calcAfterMounted.js} +7 -14
- package/dist/DesktopPicker/utils/calcAfterMounted.miniapp.d.ts +2 -0
- package/dist/DesktopPicker/utils/calcAfterMounted.miniapp.js +38 -0
- package/dist/DesktopTimePicker/DesktopTimePicker.d.ts +5 -0
- package/dist/DesktopTimePicker/DesktopTimePicker.js +288 -0
- package/dist/DesktopTimePicker/DesktopTimePicker.types.d.ts +182 -0
- package/dist/DesktopTimePicker/DesktopTimePicker.types.js +15 -0
- package/dist/DesktopTimePicker/DesktopTimePickerList.d.ts +4 -0
- package/dist/DesktopTimePicker/DesktopTimePickerList.js +111 -0
- package/dist/DesktopTimePicker/index.css +170 -0
- package/dist/DesktopTimePicker/index.d.ts +2 -0
- package/dist/DesktopTimePicker/index.js +41 -0
- package/dist/DesktopTimePicker/useGetTimePickerContent.d.ts +6 -0
- package/dist/DesktopTimePicker/useGetTimePickerContent.js +246 -0
- package/dist/DesktopTimePicker/utils/scrollUtil.d.ts +2 -0
- package/dist/DesktopTimePicker/utils/scrollUtil.js +27 -0
- package/dist/DesktopTimePicker/utils/scrollUtil.miniapp.d.ts +2 -0
- package/dist/DesktopTimePicker/utils/scrollUtil.miniapp.js +51 -0
- package/dist/DesktopTimePicker/utils/utils.d.ts +28 -0
- package/dist/DesktopTimePicker/utils/utils.js +408 -0
- package/dist/Dialog/FunctionalDialog.js +1 -1
- package/dist/ItemSelector/ItemSelector.css +120 -0
- package/dist/ItemSelector/ItemSelector.d.ts +4 -0
- package/dist/ItemSelector/ItemSelector.js +84 -0
- package/dist/ItemSelector/ItemSelector.miniapp.d.ts +5 -0
- package/dist/ItemSelector/ItemSelector.miniapp.js +125 -0
- package/dist/ItemSelector/ItemSelector.types.d.ts +40 -0
- package/dist/ItemSelector/ItemSelector.types.js +15 -0
- package/dist/ItemSelector/ItemSelectorCore.d.ts +5 -0
- package/dist/ItemSelector/ItemSelectorCore.js +217 -0
- package/dist/ItemSelector/Selector/index.css +11 -0
- package/dist/ItemSelector/Selector/index.d.ts +9 -0
- package/dist/ItemSelector/Selector/index.js +48 -0
- package/dist/ItemSelector/index.d.ts +2 -0
- package/dist/ItemSelector/index.js +41 -0
- package/dist/ItemSelector/miniapp.css +4 -0
- package/dist/Modal/Modal.miniapp.d.ts +1 -1
- package/dist/Picker/Picker.css +5 -0
- package/dist/Picker/Picker.js +27 -5
- package/dist/Picker/Picker.types.d.ts +15 -2
- package/dist/Picker/PickerPanel.css +4 -0
- package/dist/Picker/PickerPanel.js +7 -6
- package/dist/Popover/Popover.js +70 -27
- package/dist/Portal/Portal.miniapp.js +7 -4
- package/dist/ScrollView/ScrollView.js +24 -11
- package/dist/ScrollView/ScrollView.types.d.ts +0 -1
- package/dist/Select/Select.css +1 -4
- package/dist/Select/Select.js +63 -40
- package/dist/Slider/Slider.js +13 -5
- package/dist/SwipeAction/SwipeAction.css +79 -0
- package/dist/SwipeAction/SwipeAction.d.ts +5 -0
- package/dist/SwipeAction/SwipeAction.js +349 -0
- package/dist/SwipeAction/SwipeAction.types.d.ts +83 -0
- package/dist/SwipeAction/SwipeAction.types.js +39 -0
- package/dist/SwipeAction/SwipeActionContext.d.ts +4 -0
- package/dist/SwipeAction/SwipeActionContext.js +30 -0
- package/dist/SwipeAction/SwipeActionItem.css +31 -0
- package/dist/SwipeAction/SwipeActionItem.d.ts +5 -0
- package/dist/SwipeAction/SwipeActionItem.js +105 -0
- package/dist/SwipeAction/index.d.ts +4 -0
- package/dist/SwipeAction/index.js +45 -0
- package/dist/Tabs/Tab.js +13 -4
- package/dist/Tabs/Tabs.js +30 -15
- package/dist/Tabs/utils/scroll.d.ts +2 -0
- package/dist/Tabs/utils/scroll.js +55 -0
- package/dist/Toast/FunctionalToast.js +1 -1
- package/dist/Toast/Toast.css +0 -1
- package/dist/Tooltip/Tooltip.js +70 -27
- package/dist/index.d.ts +7 -0
- package/dist/index.js +15 -1
- package/dist/locales/base.d.ts +11 -0
- package/dist/locales/en-US.js +24 -0
- package/dist/locales/zh-CN.js +24 -0
- package/dist/locales/zh-TW.js +24 -0
- package/es/Calendar/Calendar.js +5 -1
- package/es/Calendar/Calendar.types.d.ts +5 -0
- package/es/CitySelector/CitySelectorCore.js +3 -3
- package/es/Collapse/Collapse.css +0 -1
- package/es/Collapse/Collapse.d.ts +1 -1
- package/es/Collapse/Collapse.js +11 -8
- package/es/Collapse/Collapse.miniapp.d.ts +5 -0
- package/es/Collapse/Collapse.miniapp.js +157 -0
- package/es/CollapsePanel/CollapsePanel.css +4 -2
- package/es/DatePicker/DatePicker.d.ts +4 -0
- package/es/DatePicker/DatePicker.js +310 -0
- package/es/DatePicker/DatePicker.types.d.ts +43 -0
- package/es/DatePicker/DatePicker.types.js +1 -0
- package/es/DatePicker/index.d.ts +2 -0
- package/es/DatePicker/index.js +6 -0
- package/es/DesktopDatePicker/DesktopDatePicker.d.ts +5 -0
- package/es/DesktopDatePicker/DesktopDatePicker.js +253 -0
- package/es/DesktopDatePicker/DesktopDatePicker.types.d.ts +163 -0
- package/es/DesktopDatePicker/DesktopDatePicker.types.js +1 -0
- package/es/DesktopDatePicker/deskTopPickerContainer.css +100 -0
- package/es/DesktopDatePicker/index.css +61 -0
- package/es/DesktopDatePicker/index.d.ts +2 -0
- package/es/DesktopDatePicker/index.js +6 -0
- package/es/DesktopDatePicker/useGetDatePickerContent.d.ts +6 -0
- package/es/DesktopDatePicker/useGetDatePickerContent.js +316 -0
- package/es/DesktopDateTimePicker/DesktopDateTimePicker.d.ts +5 -0
- package/es/DesktopDateTimePicker/DesktopDateTimePicker.js +295 -0
- package/es/DesktopDateTimePicker/DesktopDateTimePicker.types.d.ts +163 -0
- package/es/DesktopDateTimePicker/DesktopDateTimePicker.types.js +1 -0
- package/es/DesktopDateTimePicker/index.css +66 -0
- package/es/DesktopDateTimePicker/index.d.ts +2 -0
- package/es/DesktopDateTimePicker/index.js +9 -0
- package/es/DesktopPicker/DesktopPicker.d.ts +5 -0
- package/es/DesktopPicker/DesktopPicker.js +221 -0
- package/es/DesktopPicker/DesktopPicker.types.d.ts +57 -0
- package/es/DesktopPicker/DesktopPicker.types.js +1 -0
- package/es/DesktopPicker/index.css +37 -0
- package/es/DesktopPicker/index.d.ts +2 -0
- package/es/DesktopPicker/index.js +6 -0
- package/es/DesktopPicker/utils/calcAfterMounted.d.ts +2 -0
- package/es/DesktopPicker/utils/calcAfterMounted.js +6 -0
- package/es/DesktopPicker/utils/calcAfterMounted.miniapp.d.ts +2 -0
- package/es/DesktopPicker/utils/calcAfterMounted.miniapp.js +9 -0
- package/es/DesktopTimePicker/DesktopTimePicker.d.ts +5 -0
- package/es/DesktopTimePicker/DesktopTimePicker.js +261 -0
- package/es/DesktopTimePicker/DesktopTimePicker.types.d.ts +182 -0
- package/es/DesktopTimePicker/DesktopTimePicker.types.js +1 -0
- package/es/DesktopTimePicker/DesktopTimePickerList.d.ts +4 -0
- package/es/DesktopTimePicker/DesktopTimePickerList.js +84 -0
- package/es/DesktopTimePicker/index.css +170 -0
- package/es/DesktopTimePicker/index.d.ts +2 -0
- package/es/DesktopTimePicker/index.js +6 -0
- package/es/DesktopTimePicker/useGetTimePickerContent.d.ts +6 -0
- package/es/DesktopTimePicker/useGetTimePickerContent.js +223 -0
- package/es/DesktopTimePicker/utils/scrollUtil.d.ts +2 -0
- package/es/DesktopTimePicker/utils/scrollUtil.js +8 -0
- package/es/DesktopTimePicker/utils/scrollUtil.miniapp.d.ts +2 -0
- package/es/DesktopTimePicker/utils/scrollUtil.miniapp.js +22 -0
- package/es/DesktopTimePicker/utils/utils.d.ts +28 -0
- package/es/DesktopTimePicker/utils/utils.js +365 -0
- package/es/Dialog/FunctionalDialog.js +2 -2
- package/es/ItemSelector/ItemSelector.css +120 -0
- package/es/ItemSelector/ItemSelector.d.ts +4 -0
- package/es/ItemSelector/ItemSelector.js +57 -0
- package/es/ItemSelector/ItemSelector.miniapp.d.ts +5 -0
- package/es/ItemSelector/ItemSelector.miniapp.js +98 -0
- package/es/ItemSelector/ItemSelector.types.d.ts +40 -0
- package/es/ItemSelector/ItemSelector.types.js +1 -0
- package/es/ItemSelector/ItemSelectorCore.d.ts +5 -0
- package/es/ItemSelector/ItemSelectorCore.js +190 -0
- package/es/ItemSelector/Selector/index.css +11 -0
- package/es/ItemSelector/Selector/index.d.ts +9 -0
- package/es/ItemSelector/Selector/index.js +19 -0
- package/es/ItemSelector/index.d.ts +2 -0
- package/es/ItemSelector/index.js +6 -0
- package/es/ItemSelector/miniapp.css +4 -0
- package/es/Picker/Picker.css +5 -0
- package/es/Picker/Picker.js +27 -5
- package/es/Picker/Picker.types.d.ts +15 -2
- package/es/Picker/PickerPanel.css +4 -0
- package/es/Picker/PickerPanel.js +7 -6
- package/es/Popover/Popover.js +73 -29
- package/es/Portal/Portal.miniapp.js +8 -5
- package/es/ScrollView/ScrollView.js +24 -11
- package/es/ScrollView/ScrollView.types.d.ts +0 -1
- package/es/Select/Select.css +1 -4
- package/es/Select/Select.js +63 -41
- package/es/Slider/Slider.js +16 -6
- package/es/SwipeAction/SwipeAction.css +79 -0
- package/es/SwipeAction/SwipeAction.d.ts +5 -0
- package/es/SwipeAction/SwipeAction.js +337 -0
- package/es/SwipeAction/SwipeAction.types.d.ts +83 -0
- package/es/SwipeAction/SwipeAction.types.js +1 -0
- package/es/SwipeAction/SwipeActionContext.d.ts +4 -0
- package/es/SwipeAction/SwipeActionContext.js +11 -0
- package/es/SwipeAction/SwipeActionItem.css +31 -0
- package/es/SwipeAction/SwipeActionItem.d.ts +5 -0
- package/es/SwipeAction/SwipeActionItem.js +78 -0
- package/es/SwipeAction/index.d.ts +4 -0
- package/es/SwipeAction/index.js +9 -0
- package/es/Tabs/Tab.js +13 -4
- package/es/Tabs/Tabs.js +30 -15
- package/es/Tabs/utils/scroll.d.ts +2 -0
- package/es/Tabs/utils/scroll.js +36 -0
- package/es/Toast/FunctionalToast.js +2 -2
- package/es/Toast/Toast.css +0 -1
- package/es/Tooltip/Tooltip.js +73 -29
- package/es/index.d.ts +7 -0
- package/es/index.js +7 -0
- package/es/locales/base.d.ts +11 -0
- package/es/locales/en-US.js +24 -0
- package/es/locales/zh-CN.js +24 -0
- package/es/locales/zh-TW.js +24 -0
- package/package.json +5 -5
- package/dist/Tabs/utils/bound.d.ts +0 -1
- package/es/Tabs/utils/bound.d.ts +0 -1
- package/es/Tabs/utils/bound.js +0 -13
|
@@ -0,0 +1,125 @@
|
|
|
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 ItemSelector_miniapp_exports = {};
|
|
46
|
+
__export(ItemSelector_miniapp_exports, {
|
|
47
|
+
default: () => ItemSelector_miniapp_default
|
|
48
|
+
});
|
|
49
|
+
module.exports = __toCommonJS(ItemSelector_miniapp_exports);
|
|
50
|
+
var import_react = __toESM(require("react"));
|
|
51
|
+
var import_taro = __toESM(require("@tarojs/taro"));
|
|
52
|
+
var import_ItemSelectorCore = __toESM(require("./ItemSelectorCore"));
|
|
53
|
+
var import_miniapp = require("./miniapp.css");
|
|
54
|
+
const ItemSelector = /* @__PURE__ */ import_react.default.forwardRef(
|
|
55
|
+
(props, ref) => {
|
|
56
|
+
const { items } = props;
|
|
57
|
+
const containerTop = (0, import_react.useRef)(0);
|
|
58
|
+
const codeHeight = (0, import_react.useRef)(0);
|
|
59
|
+
const [height, setHeight] = (0, import_react.useState)("");
|
|
60
|
+
const queryContainerTop = (cbk) => {
|
|
61
|
+
const query = import_taro.default.createSelectorQuery();
|
|
62
|
+
query.select(".bui-item-selector-index-container").boundingClientRect();
|
|
63
|
+
query.exec((res) => {
|
|
64
|
+
var _a;
|
|
65
|
+
containerTop.current = (_a = res[0]) == null ? void 0 : _a.top;
|
|
66
|
+
cbk == null ? void 0 : cbk();
|
|
67
|
+
});
|
|
68
|
+
};
|
|
69
|
+
(0, import_react.useEffect)(() => {
|
|
70
|
+
if ((items == null ? void 0 : items.length) === 0 || codeHeight.current)
|
|
71
|
+
return;
|
|
72
|
+
setTimeout(() => {
|
|
73
|
+
const query = import_taro.default.createSelectorQuery();
|
|
74
|
+
query.select(".bui-item-selector-index-item").boundingClientRect();
|
|
75
|
+
query.exec((res) => {
|
|
76
|
+
var _a;
|
|
77
|
+
codeHeight.current = (_a = res[0]) == null ? void 0 : _a.height;
|
|
78
|
+
});
|
|
79
|
+
}, 300);
|
|
80
|
+
}, [items, height]);
|
|
81
|
+
(0, import_react.useEffect)(() => {
|
|
82
|
+
if (!(items == null ? void 0 : items.length) || height)
|
|
83
|
+
return;
|
|
84
|
+
const { screenHeight } = import_taro.default.getSystemInfoSync();
|
|
85
|
+
const query = import_taro.default.createSelectorQuery();
|
|
86
|
+
query.select(".bui-item-selector-scroll-view-container").boundingClientRect();
|
|
87
|
+
query.exec((codeRect) => {
|
|
88
|
+
var _a;
|
|
89
|
+
const domHeight = (_a = codeRect == null ? void 0 : codeRect[0]) == null ? void 0 : _a.height;
|
|
90
|
+
setHeight(`${domHeight / screenHeight * 100}vh`);
|
|
91
|
+
});
|
|
92
|
+
}, [items]);
|
|
93
|
+
const parseIndex = (length, index) => {
|
|
94
|
+
if (index <= 0)
|
|
95
|
+
return 0;
|
|
96
|
+
if (index >= length - 1)
|
|
97
|
+
return length - 1;
|
|
98
|
+
return index;
|
|
99
|
+
};
|
|
100
|
+
const pxToCode = (clientY, scrollToCode, codeGroup) => {
|
|
101
|
+
let index = Math.floor(
|
|
102
|
+
(clientY - containerTop.current) / codeHeight.current
|
|
103
|
+
);
|
|
104
|
+
index = parseIndex(codeGroup.length, index);
|
|
105
|
+
const codeItem = codeGroup[index];
|
|
106
|
+
scrollToCode(codeItem.code || codeItem);
|
|
107
|
+
};
|
|
108
|
+
const touchHandler = (event, scrollToCode, codeGroup) => {
|
|
109
|
+
const { clientY } = event.changedTouches[0];
|
|
110
|
+
queryContainerTop(() => {
|
|
111
|
+
pxToCode(clientY, scrollToCode, codeGroup);
|
|
112
|
+
});
|
|
113
|
+
};
|
|
114
|
+
return /* @__PURE__ */ import_react.default.createElement(
|
|
115
|
+
import_ItemSelectorCore.default,
|
|
116
|
+
__spreadProps(__spreadValues({}, props), {
|
|
117
|
+
ref,
|
|
118
|
+
touchHandler,
|
|
119
|
+
height
|
|
120
|
+
})
|
|
121
|
+
);
|
|
122
|
+
}
|
|
123
|
+
);
|
|
124
|
+
ItemSelector.displayName = "BuiItemSelector";
|
|
125
|
+
var ItemSelector_miniapp_default = ItemSelector;
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
/// <reference types="react" />
|
|
2
|
+
import { OverrideProps } from '@bifrostui/types';
|
|
3
|
+
export type itemType = {
|
|
4
|
+
/** Item名 */
|
|
5
|
+
name: string;
|
|
6
|
+
};
|
|
7
|
+
export type ItemGroup = {
|
|
8
|
+
/** Item列表 */
|
|
9
|
+
items: itemType[];
|
|
10
|
+
/** 组名 */
|
|
11
|
+
groupName?: string;
|
|
12
|
+
/** 索引字母 */
|
|
13
|
+
indexName?: string;
|
|
14
|
+
/** 索引Code */
|
|
15
|
+
indexCode?: string;
|
|
16
|
+
/** 是否平铺 */
|
|
17
|
+
isFlat?: boolean;
|
|
18
|
+
};
|
|
19
|
+
export type ItemSelectorProps<D extends React.ElementType = 'div', P = {}> = OverrideProps<{
|
|
20
|
+
props: P & {
|
|
21
|
+
/** Item列表 */
|
|
22
|
+
items: ItemGroup[];
|
|
23
|
+
/** 禁用展示索引 默认false 即展示索引 */
|
|
24
|
+
disableIndex?: boolean;
|
|
25
|
+
/** 头部标题 */
|
|
26
|
+
title?: string;
|
|
27
|
+
/** 选择Item回调 */
|
|
28
|
+
onSelect: (e: React.SyntheticEvent, data: {
|
|
29
|
+
item: itemType;
|
|
30
|
+
group: ItemGroup;
|
|
31
|
+
}) => void;
|
|
32
|
+
/** 和title配合使用,头部右侧的关闭回调 */
|
|
33
|
+
onClose?: (e: React.SyntheticEvent) => void;
|
|
34
|
+
};
|
|
35
|
+
defaultComponent: D;
|
|
36
|
+
}, D>;
|
|
37
|
+
export type ItemSelectorCoreProps = ItemSelectorProps & {
|
|
38
|
+
touchHandler: any;
|
|
39
|
+
height?: string;
|
|
40
|
+
};
|
|
@@ -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 ItemSelector_types_exports = {};
|
|
15
|
+
module.exports = __toCommonJS(ItemSelector_types_exports);
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { ItemSelectorCoreProps } from './ItemSelector.types';
|
|
3
|
+
import './ItemSelector.less';
|
|
4
|
+
declare const ItemSelector: React.ForwardRefExoticComponent<Omit<ItemSelectorCoreProps, "ref"> & React.RefAttributes<HTMLDivElement>>;
|
|
5
|
+
export default ItemSelector;
|
|
@@ -0,0 +1,217 @@
|
|
|
1
|
+
var __create = Object.create;
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __getOwnPropSymbols = Object.getOwnPropertySymbols;
|
|
6
|
+
var __getProtoOf = Object.getPrototypeOf;
|
|
7
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
8
|
+
var __propIsEnum = Object.prototype.propertyIsEnumerable;
|
|
9
|
+
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
|
10
|
+
var __spreadValues = (a, b) => {
|
|
11
|
+
for (var prop in b || (b = {}))
|
|
12
|
+
if (__hasOwnProp.call(b, prop))
|
|
13
|
+
__defNormalProp(a, prop, b[prop]);
|
|
14
|
+
if (__getOwnPropSymbols)
|
|
15
|
+
for (var prop of __getOwnPropSymbols(b)) {
|
|
16
|
+
if (__propIsEnum.call(b, prop))
|
|
17
|
+
__defNormalProp(a, prop, b[prop]);
|
|
18
|
+
}
|
|
19
|
+
return a;
|
|
20
|
+
};
|
|
21
|
+
var __objRest = (source, exclude) => {
|
|
22
|
+
var target = {};
|
|
23
|
+
for (var prop in source)
|
|
24
|
+
if (__hasOwnProp.call(source, prop) && exclude.indexOf(prop) < 0)
|
|
25
|
+
target[prop] = source[prop];
|
|
26
|
+
if (source != null && __getOwnPropSymbols)
|
|
27
|
+
for (var prop of __getOwnPropSymbols(source)) {
|
|
28
|
+
if (exclude.indexOf(prop) < 0 && __propIsEnum.call(source, prop))
|
|
29
|
+
target[prop] = source[prop];
|
|
30
|
+
}
|
|
31
|
+
return target;
|
|
32
|
+
};
|
|
33
|
+
var __export = (target, all) => {
|
|
34
|
+
for (var name in all)
|
|
35
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
36
|
+
};
|
|
37
|
+
var __copyProps = (to, from, except, desc) => {
|
|
38
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
39
|
+
for (let key of __getOwnPropNames(from))
|
|
40
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
41
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
42
|
+
}
|
|
43
|
+
return to;
|
|
44
|
+
};
|
|
45
|
+
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
|
46
|
+
// If the importer is in node compatibility mode or this is not an ESM
|
|
47
|
+
// file that has been converted to a CommonJS file using a Babel-
|
|
48
|
+
// compatible transform (i.e. "__esModule" has not been set), then set
|
|
49
|
+
// "default" to the CommonJS "module.exports" for node compatibility.
|
|
50
|
+
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
|
|
51
|
+
mod
|
|
52
|
+
));
|
|
53
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
54
|
+
var ItemSelectorCore_exports = {};
|
|
55
|
+
__export(ItemSelectorCore_exports, {
|
|
56
|
+
default: () => ItemSelectorCore_default
|
|
57
|
+
});
|
|
58
|
+
module.exports = __toCommonJS(ItemSelectorCore_exports);
|
|
59
|
+
var import_react = __toESM(require("react"));
|
|
60
|
+
var import_clsx = __toESM(require("clsx"));
|
|
61
|
+
var import_utils = require("@bifrostui/utils");
|
|
62
|
+
var import_ScrollView = __toESM(require("../ScrollView"));
|
|
63
|
+
var import_Selector = __toESM(require("./Selector"));
|
|
64
|
+
var import_ItemSelector2 = require("./ItemSelector.css");
|
|
65
|
+
const DEVIATION_HEIGHT = "6vmin";
|
|
66
|
+
const prefixCls = "bui-item-selector";
|
|
67
|
+
const ItemSelector = /* @__PURE__ */ import_react.default.forwardRef(
|
|
68
|
+
(props, ref) => {
|
|
69
|
+
const _a = props, {
|
|
70
|
+
className,
|
|
71
|
+
title: pageTitle,
|
|
72
|
+
items,
|
|
73
|
+
disableIndex,
|
|
74
|
+
touchHandler,
|
|
75
|
+
height,
|
|
76
|
+
onSelect,
|
|
77
|
+
onClose
|
|
78
|
+
} = _a, others = __objRest(_a, [
|
|
79
|
+
"className",
|
|
80
|
+
"title",
|
|
81
|
+
"items",
|
|
82
|
+
"disableIndex",
|
|
83
|
+
"touchHandler",
|
|
84
|
+
"height",
|
|
85
|
+
"onSelect",
|
|
86
|
+
"onClose"
|
|
87
|
+
]);
|
|
88
|
+
const itemRef = (0, import_react.useRef)(null);
|
|
89
|
+
const nodeRef = (0, import_utils.useForkRef)(ref, itemRef);
|
|
90
|
+
(0, import_utils.useTouchEmulator)(itemRef.current);
|
|
91
|
+
const [codeGroup, setCodeGroup] = (0, import_react.useState)([]);
|
|
92
|
+
const [codeShow, setCodeShow] = (0, import_react.useState)(false);
|
|
93
|
+
const [targetId, setTargetId] = (0, import_react.useState)("");
|
|
94
|
+
const getGroupName = (item) => item.groupName || "";
|
|
95
|
+
const getIdxName = (item) => typeof item.indexName === "string" ? item.indexName : getGroupName(item);
|
|
96
|
+
const getIdxCode = (item) => typeof item.indexCode === "string" ? item.indexCode : getIdxName(item);
|
|
97
|
+
const renderTitle = (item) => {
|
|
98
|
+
const title = getGroupName(item);
|
|
99
|
+
return title ? /* @__PURE__ */ import_react.default.createElement(
|
|
100
|
+
"div",
|
|
101
|
+
{
|
|
102
|
+
className: "select-item-title",
|
|
103
|
+
id: disableIndex ? "" : getIdxCode(item)
|
|
104
|
+
},
|
|
105
|
+
title
|
|
106
|
+
) : null;
|
|
107
|
+
};
|
|
108
|
+
(0, import_react.useEffect)(() => {
|
|
109
|
+
if (!items || (items == null ? void 0 : items.length) === 0 || codeGroup.length !== 0 || disableIndex) {
|
|
110
|
+
return;
|
|
111
|
+
}
|
|
112
|
+
setCodeGroup(
|
|
113
|
+
items.map((item) => {
|
|
114
|
+
return {
|
|
115
|
+
name: getIdxName(item),
|
|
116
|
+
code: getIdxCode(item)
|
|
117
|
+
};
|
|
118
|
+
})
|
|
119
|
+
);
|
|
120
|
+
}, [items]);
|
|
121
|
+
(0, import_react.useEffect)(() => {
|
|
122
|
+
if (codeGroup.length === 0)
|
|
123
|
+
return;
|
|
124
|
+
setCodeShow(true);
|
|
125
|
+
}, [codeGroup]);
|
|
126
|
+
const scrollToCode = (targetCode) => {
|
|
127
|
+
if (!targetCode)
|
|
128
|
+
return;
|
|
129
|
+
setTargetId((oldCode) => {
|
|
130
|
+
if (targetCode !== oldCode)
|
|
131
|
+
return targetCode;
|
|
132
|
+
return oldCode;
|
|
133
|
+
});
|
|
134
|
+
};
|
|
135
|
+
const touchCbk = (e) => {
|
|
136
|
+
e.stopPropagation();
|
|
137
|
+
touchHandler == null ? void 0 : touchHandler(e, scrollToCode, codeGroup);
|
|
138
|
+
};
|
|
139
|
+
const codeClickHandler = (rightCode) => {
|
|
140
|
+
setTargetId(rightCode);
|
|
141
|
+
};
|
|
142
|
+
const scrollHandler = (0, import_utils.throttle)(() => {
|
|
143
|
+
if (targetId) {
|
|
144
|
+
setTargetId(void 0);
|
|
145
|
+
}
|
|
146
|
+
}, 500);
|
|
147
|
+
const closeHandler = (e) => {
|
|
148
|
+
onClose == null ? void 0 : onClose(e);
|
|
149
|
+
};
|
|
150
|
+
return /* @__PURE__ */ import_react.default.createElement("div", __spreadValues({ className: (0, import_clsx.default)(prefixCls, className), ref: nodeRef }, others), pageTitle ? /* @__PURE__ */ import_react.default.createElement("div", { className: `${prefixCls}-title` }, pageTitle, /* @__PURE__ */ import_react.default.createElement("div", { className: `${prefixCls}-btn-close`, onClick: closeHandler }, "\u2715")) : null, /* @__PURE__ */ import_react.default.createElement(
|
|
151
|
+
import_ScrollView.default,
|
|
152
|
+
{
|
|
153
|
+
scrollIntoView: targetId,
|
|
154
|
+
scrollY: true,
|
|
155
|
+
className: (0, import_clsx.default)(`${prefixCls}-scroll-view-container tph`, {
|
|
156
|
+
"container-has-title": pageTitle
|
|
157
|
+
}),
|
|
158
|
+
onScroll: scrollHandler
|
|
159
|
+
},
|
|
160
|
+
/* @__PURE__ */ import_react.default.createElement("div", { className: `${prefixCls}-all-item` }, (items == null ? void 0 : items.length) > 0 ? /* @__PURE__ */ import_react.default.createElement("div", { className: `${prefixCls}-list-container` }, items.map((item, itemGroupIndex) => {
|
|
161
|
+
if (!(item == null ? void 0 : item.groupName))
|
|
162
|
+
return null;
|
|
163
|
+
return /* @__PURE__ */ import_react.default.createElement("div", { key: itemGroupIndex }, renderTitle(item), item.isFlat ? /* @__PURE__ */ import_react.default.createElement("div", { className: "select-item-buttons" }, item.items.map((it, index) => {
|
|
164
|
+
return /* @__PURE__ */ import_react.default.createElement(
|
|
165
|
+
import_Selector.default,
|
|
166
|
+
{
|
|
167
|
+
key: index,
|
|
168
|
+
item: it,
|
|
169
|
+
onSelect: (e) => {
|
|
170
|
+
onSelect(e, { item: it, group: item });
|
|
171
|
+
}
|
|
172
|
+
}
|
|
173
|
+
);
|
|
174
|
+
})) : /* @__PURE__ */ import_react.default.createElement("ul", { className: `${prefixCls}-list` }, item.items.map((it, itemIndex) => {
|
|
175
|
+
return /* @__PURE__ */ import_react.default.createElement(
|
|
176
|
+
"li",
|
|
177
|
+
{
|
|
178
|
+
className: `${prefixCls}-list-item`,
|
|
179
|
+
key: itemIndex,
|
|
180
|
+
onClick: (e) => {
|
|
181
|
+
onSelect(e, { item: it, group: item });
|
|
182
|
+
}
|
|
183
|
+
},
|
|
184
|
+
it.name
|
|
185
|
+
);
|
|
186
|
+
})));
|
|
187
|
+
})) : null)
|
|
188
|
+
), (codeGroup == null ? void 0 : codeGroup.length) > 0 && height ? /* @__PURE__ */ import_react.default.createElement(
|
|
189
|
+
"div",
|
|
190
|
+
{
|
|
191
|
+
className: (0, import_clsx.default)(`${prefixCls}-index-container`, {
|
|
192
|
+
"left-in": codeShow,
|
|
193
|
+
"item-index-has-title": pageTitle
|
|
194
|
+
})
|
|
195
|
+
},
|
|
196
|
+
/* @__PURE__ */ import_react.default.createElement("ul", { onTouchMove: touchCbk, className: `${prefixCls}-index-list` }, codeGroup.map((item, idx) => {
|
|
197
|
+
return item.name ? /* @__PURE__ */ import_react.default.createElement(
|
|
198
|
+
"li",
|
|
199
|
+
{
|
|
200
|
+
className: `${prefixCls}-index-item`,
|
|
201
|
+
key: idx,
|
|
202
|
+
"data-code": item.code,
|
|
203
|
+
onClick: () => {
|
|
204
|
+
codeClickHandler(item.code);
|
|
205
|
+
},
|
|
206
|
+
style: {
|
|
207
|
+
maxHeight: `calc((${height} - ${DEVIATION_HEIGHT}) / ${codeGroup.length})`
|
|
208
|
+
}
|
|
209
|
+
},
|
|
210
|
+
item.name
|
|
211
|
+
) : null;
|
|
212
|
+
}))
|
|
213
|
+
) : null);
|
|
214
|
+
}
|
|
215
|
+
);
|
|
216
|
+
ItemSelector.displayName = "BuiItemSelector";
|
|
217
|
+
var ItemSelectorCore_default = ItemSelector;
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
.bui-item-selector-item {
|
|
2
|
+
width: var(--bui-item-selector-item-width);
|
|
3
|
+
height: var(--bui-item-selector-item-height);
|
|
4
|
+
display: inline-flex;
|
|
5
|
+
justify-content: center;
|
|
6
|
+
align-items: center;
|
|
7
|
+
border-radius: var(--bui-item-selector-item-border-radius);
|
|
8
|
+
margin: var(--bui-item-selector-item-margin);
|
|
9
|
+
background-color: var(--bui-color-bg-default);
|
|
10
|
+
font-size: var(--bui-text-size-2);
|
|
11
|
+
}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { itemType } from '../ItemSelector.types';
|
|
3
|
+
import './index.less';
|
|
4
|
+
type propsType = {
|
|
5
|
+
item: itemType;
|
|
6
|
+
onSelect: (e: React.SyntheticEvent, item: itemType) => void;
|
|
7
|
+
};
|
|
8
|
+
declare const Selector: (props: propsType) => React.JSX.Element;
|
|
9
|
+
export default Selector;
|
|
@@ -0,0 +1,48 @@
|
|
|
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 __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
|
20
|
+
// If the importer is in node compatibility mode or this is not an ESM
|
|
21
|
+
// file that has been converted to a CommonJS file using a Babel-
|
|
22
|
+
// compatible transform (i.e. "__esModule" has not been set), then set
|
|
23
|
+
// "default" to the CommonJS "module.exports" for node compatibility.
|
|
24
|
+
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
|
|
25
|
+
mod
|
|
26
|
+
));
|
|
27
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
28
|
+
var Selector_exports = {};
|
|
29
|
+
__export(Selector_exports, {
|
|
30
|
+
default: () => Selector_default
|
|
31
|
+
});
|
|
32
|
+
module.exports = __toCommonJS(Selector_exports);
|
|
33
|
+
var import_react = __toESM(require("react"));
|
|
34
|
+
var import_index = require("./index.css");
|
|
35
|
+
const Selector = (props) => {
|
|
36
|
+
const { item, onSelect } = props;
|
|
37
|
+
return /* @__PURE__ */ import_react.default.createElement(
|
|
38
|
+
"span",
|
|
39
|
+
{
|
|
40
|
+
className: "bui-item-selector-item",
|
|
41
|
+
onClick: (e) => {
|
|
42
|
+
onSelect == null ? void 0 : onSelect(e, item);
|
|
43
|
+
}
|
|
44
|
+
},
|
|
45
|
+
item.name
|
|
46
|
+
);
|
|
47
|
+
};
|
|
48
|
+
var Selector_default = Selector;
|
|
@@ -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 ItemSelector_exports = {};
|
|
30
|
+
__export(ItemSelector_exports, {
|
|
31
|
+
ItemSelector: () => import_ItemSelector.default,
|
|
32
|
+
default: () => import_ItemSelector.default
|
|
33
|
+
});
|
|
34
|
+
module.exports = __toCommonJS(ItemSelector_exports);
|
|
35
|
+
var import_ItemSelector = __toESM(require("./ItemSelector"));
|
|
36
|
+
__reExport(ItemSelector_exports, require("./ItemSelector.types"), module.exports);
|
|
37
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
38
|
+
0 && (module.exports = {
|
|
39
|
+
ItemSelector,
|
|
40
|
+
...require("./ItemSelector.types")
|
|
41
|
+
});
|
|
@@ -12,5 +12,5 @@ declare const Modal: React.ForwardRefExoticComponent<Omit<ViewProps & {
|
|
|
12
12
|
keepMounted?: boolean;
|
|
13
13
|
} & import("@bifrostui/types").ICommonProps & Omit<Omit<React.DetailedHTMLProps<React.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "ref"> & {
|
|
14
14
|
ref?: React.Ref<HTMLDivElement>;
|
|
15
|
-
},
|
|
15
|
+
}, keyof import("@bifrostui/types").ICommonProps | "open" | "container" | "disablePortal" | "hideBackdrop" | "BackdropProps" | "onClose" | "disableScrollLock" | "keepMounted">, "ref"> & React.RefAttributes<HTMLDivElement>>;
|
|
16
16
|
export default Modal;
|
package/dist/Picker/Picker.css
CHANGED
|
@@ -8,6 +8,7 @@
|
|
|
8
8
|
--panel-container-height: var(--bui-picker-panel-height, 260px);
|
|
9
9
|
--indicator-top: var(--bui-picker-indicator-top, 108px);
|
|
10
10
|
--option-height: var(--bui-picker-option-height, 36px);
|
|
11
|
+
--bui-picker-confirm-disabled-opacity: 0.38;
|
|
11
12
|
font-family: var(--bui-font-family);
|
|
12
13
|
}
|
|
13
14
|
.bui-picker .bui-drawer-content {
|
|
@@ -41,6 +42,10 @@
|
|
|
41
42
|
line-height: var(--confirm-line-height);
|
|
42
43
|
color: var(--bui-color-primary);
|
|
43
44
|
}
|
|
45
|
+
.bui-picker-confirm-disabled {
|
|
46
|
+
color: var(--bui-color-fg-default);
|
|
47
|
+
opacity: var(--bui-picker-confirm-disabled-opacity);
|
|
48
|
+
}
|
|
44
49
|
.bui-picker-container {
|
|
45
50
|
width: 100%;
|
|
46
51
|
height: var(--panel-container-height);
|
package/dist/Picker/Picker.js
CHANGED
|
@@ -67,6 +67,12 @@ var import_locales = require("../locales");
|
|
|
67
67
|
var import_utils = require("./utils");
|
|
68
68
|
var import_Picker2 = require("./Picker.css");
|
|
69
69
|
const prefixCls = "bui-picker";
|
|
70
|
+
const checkDisabled = (values, columns) => values.find(
|
|
71
|
+
(value, index) => {
|
|
72
|
+
var _a, _b;
|
|
73
|
+
return (_b = (_a = columns == null ? void 0 : columns[index]) == null ? void 0 : _a.find((column) => (column == null ? void 0 : column.value) === value)) == null ? void 0 : _b.disabled;
|
|
74
|
+
}
|
|
75
|
+
);
|
|
70
76
|
const Picker = /* @__PURE__ */ import_react.default.forwardRef((props, ref) => {
|
|
71
77
|
const _a = props, {
|
|
72
78
|
className,
|
|
@@ -74,6 +80,8 @@ const Picker = /* @__PURE__ */ import_react.default.forwardRef((props, ref) => {
|
|
|
74
80
|
title,
|
|
75
81
|
options = [],
|
|
76
82
|
value,
|
|
83
|
+
confirmText: propConfirmText,
|
|
84
|
+
cancelText: propCancelText,
|
|
77
85
|
contentProps,
|
|
78
86
|
onConfirm,
|
|
79
87
|
onOptionChange,
|
|
@@ -85,6 +93,8 @@ const Picker = /* @__PURE__ */ import_react.default.forwardRef((props, ref) => {
|
|
|
85
93
|
"title",
|
|
86
94
|
"options",
|
|
87
95
|
"value",
|
|
96
|
+
"confirmText",
|
|
97
|
+
"cancelText",
|
|
88
98
|
"contentProps",
|
|
89
99
|
"onConfirm",
|
|
90
100
|
"onOptionChange",
|
|
@@ -96,6 +106,7 @@ const Picker = /* @__PURE__ */ import_react.default.forwardRef((props, ref) => {
|
|
|
96
106
|
const [columns, setColumns] = (0, import_react.useState)([]);
|
|
97
107
|
const [internalValue, setInternalValue] = (0, import_react.useState)([]);
|
|
98
108
|
const { cancel: cancelText, confirm: confirmText } = (0, import_locales.useLocaleText)("picker");
|
|
109
|
+
const disabled = checkDisabled(internalValue, columns);
|
|
99
110
|
(0, import_react.useEffect)(() => {
|
|
100
111
|
if (!open)
|
|
101
112
|
return;
|
|
@@ -118,7 +129,7 @@ const Picker = /* @__PURE__ */ import_react.default.forwardRef((props, ref) => {
|
|
|
118
129
|
}, [value, options]);
|
|
119
130
|
const confirm = (e) => {
|
|
120
131
|
const isMoving = rollerRefs.current.some((roller) => roller == null ? void 0 : roller.isMoving);
|
|
121
|
-
if (isMoving)
|
|
132
|
+
if (isMoving || disabled)
|
|
122
133
|
return;
|
|
123
134
|
const { safeValue } = (0, import_utils.safeData)({
|
|
124
135
|
value: internalValue,
|
|
@@ -177,7 +188,8 @@ const Picker = /* @__PURE__ */ import_react.default.forwardRef((props, ref) => {
|
|
|
177
188
|
onOptionChange == null ? void 0 : onOptionChange(e, {
|
|
178
189
|
value: conbineValues,
|
|
179
190
|
options: formatted,
|
|
180
|
-
currentOption: columnOption
|
|
191
|
+
currentOption: columnOption,
|
|
192
|
+
columnIndex
|
|
181
193
|
});
|
|
182
194
|
} else {
|
|
183
195
|
const result = [...internalValue];
|
|
@@ -186,7 +198,8 @@ const Picker = /* @__PURE__ */ import_react.default.forwardRef((props, ref) => {
|
|
|
186
198
|
onOptionChange == null ? void 0 : onOptionChange(e, {
|
|
187
199
|
value: result,
|
|
188
200
|
options,
|
|
189
|
-
currentOption: columnOption
|
|
201
|
+
currentOption: columnOption,
|
|
202
|
+
columnIndex
|
|
190
203
|
});
|
|
191
204
|
}
|
|
192
205
|
}
|
|
@@ -228,7 +241,16 @@ const Picker = /* @__PURE__ */ import_react.default.forwardRef((props, ref) => {
|
|
|
228
241
|
__spreadProps(__spreadValues({}, contentProps), {
|
|
229
242
|
className: (0, import_clsx.default)(`${prefixCls}-content`, contentProps == null ? void 0 : contentProps.className)
|
|
230
243
|
}),
|
|
231
|
-
/* @__PURE__ */ import_react.default.createElement("div", { className: `${prefixCls}-header` }, /* @__PURE__ */ import_react.default.createElement("div", { className: `${prefixCls}-cancel`, onClick: cancel }, cancelText), title && /* @__PURE__ */ import_react.default.createElement("div", { className: `${prefixCls}-title` }, title), /* @__PURE__ */ import_react.default.createElement(
|
|
244
|
+
/* @__PURE__ */ import_react.default.createElement("div", { className: `${prefixCls}-header` }, /* @__PURE__ */ import_react.default.createElement("div", { className: `${prefixCls}-cancel`, onClick: cancel }, propCancelText || cancelText), title && /* @__PURE__ */ import_react.default.createElement("div", { className: `${prefixCls}-title` }, title), /* @__PURE__ */ import_react.default.createElement(
|
|
245
|
+
"div",
|
|
246
|
+
{
|
|
247
|
+
className: (0, import_clsx.default)(`${prefixCls}-confirm`, {
|
|
248
|
+
[`${prefixCls}-confirm-disabled`]: disabled
|
|
249
|
+
}),
|
|
250
|
+
onClick: confirm
|
|
251
|
+
},
|
|
252
|
+
propConfirmText || confirmText
|
|
253
|
+
)),
|
|
232
254
|
/* @__PURE__ */ import_react.default.createElement("div", { className: `${prefixCls}-container` }, columns.map((column, index) => /* @__PURE__ */ import_react.default.createElement(
|
|
233
255
|
import_PickerPanel.default,
|
|
234
256
|
{
|
|
@@ -236,7 +258,7 @@ const Picker = /* @__PURE__ */ import_react.default.forwardRef((props, ref) => {
|
|
|
236
258
|
key: index,
|
|
237
259
|
options: column,
|
|
238
260
|
columnIndex: index,
|
|
239
|
-
|
|
261
|
+
value: internalValue == null ? void 0 : internalValue[index],
|
|
240
262
|
onSelect: handleSelect,
|
|
241
263
|
pickerStyle: others == null ? void 0 : others.style
|
|
242
264
|
}
|