@trionesdev/antd-taro-react 0.0.2-beta.16 → 0.0.2-beta.18

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 (60) hide show
  1. package/LICENSE +21 -21
  2. package/dist/ActionSheet/style.scss +52 -52
  3. package/dist/Button/button.d.ts +2 -2
  4. package/dist/Button/button.js +2 -3
  5. package/dist/Button/style.scss +246 -235
  6. package/dist/Calendar/style.scss +88 -88
  7. package/dist/Calendar/touchable-calendar-grid.js +9 -9
  8. package/dist/CalendarDatetimePicker/style.scss +62 -62
  9. package/dist/CalendarDatetimePickerCell/CalendarDatetimePickerCell.d.ts +2 -2
  10. package/dist/CalendarDatetimePickerCell/CalendarDatetimePickerCell.js +3 -3
  11. package/dist/CalendarPicker/style.scss +32 -32
  12. package/dist/CalendarPickerCell/CalendarPickerCell.d.ts +2 -2
  13. package/dist/CalendarPickerCell/CalendarPickerCell.js +3 -3
  14. package/dist/CalendarPickerCell/CalendarRangePickerCell.d.ts +2 -2
  15. package/dist/CalendarPickerCell/CalendarRangePickerCell.js +3 -3
  16. package/dist/CascaderPicker/style.scss +45 -45
  17. package/dist/CascaderPickerCell/CascaderPickerCell.d.ts +2 -2
  18. package/dist/CascaderPickerCell/CascaderPickerCell.js +3 -3
  19. package/dist/DatePicker/style.scss +41 -41
  20. package/dist/FetchPicker/FetchPicker.d.ts +113 -0
  21. package/dist/FetchPicker/FetchPicker.js +322 -0
  22. package/dist/FetchPicker/index.d.ts +4 -0
  23. package/dist/FetchPicker/index.js +3 -0
  24. package/dist/FetchPicker/styles.scss +118 -0
  25. package/dist/FloatButton/style.scss +126 -126
  26. package/dist/Form/FormItem/{form-item-input.d.ts → form-item-content.d.ts} +3 -1
  27. package/dist/Form/FormItem/{form-item-input.js → form-item-content.js} +2 -2
  28. package/dist/Form/FormItem/form-item-label.js +2 -8
  29. package/dist/Form/FormItem/form-item.d.ts +3 -2
  30. package/dist/Form/FormItem/form-item.js +23 -19
  31. package/dist/Form/index.d.ts +2 -2
  32. package/dist/Form/style.scss +100 -78
  33. package/dist/FormCell/index.d.ts +3 -0
  34. package/dist/FormCell/index.js +2 -0
  35. package/dist/ImagesPreview/style.scss +34 -34
  36. package/dist/ImagesWall/style.scss +70 -70
  37. package/dist/Input/index.scss +282 -267
  38. package/dist/Input/input-affix-wrapper.js +1 -1
  39. package/dist/Input/taro-input.js +16 -3
  40. package/dist/Input/types.d.ts +3 -3
  41. package/dist/Loading/index.d.ts +4 -0
  42. package/dist/Loading/index.js +3 -0
  43. package/dist/Overlay/style.scss +20 -20
  44. package/dist/Picker/Picker.d.ts +8 -0
  45. package/dist/Picker/Picker.js +6 -7
  46. package/dist/Picker/style.scss +41 -41
  47. package/dist/PickerView/style.scss +13 -13
  48. package/dist/PickerView/types.d.ts +2 -2
  49. package/dist/Popup/style.scss +126 -124
  50. package/dist/SideBar/side-bar.js +6 -6
  51. package/dist/SideBar/style.scss +85 -85
  52. package/dist/Toast/style.scss +63 -63
  53. package/dist/VerificationCodeInput/style.scss +20 -20
  54. package/dist/index.d.ts +8 -3
  55. package/dist/index.js +3 -1
  56. package/dist/style/variable.scss +34 -20
  57. package/package.json +20 -24
  58. package/readme.md +23 -23
  59. package/dist/SpinLoading/index.d.ts +0 -3
  60. package/dist/SpinLoading/index.js +0 -2
@@ -1,41 +1,41 @@
1
- @use "../style/variable" as variable;
2
-
3
- $datePickerCls: 'triones-antm-date-picker';
4
-
5
- .#{$datePickerCls} {
6
- border-top-left-radius: variable.$trionesBorderRadius;
7
- border-top-right-radius: variable.$trionesBorderRadius;
8
-
9
- &-header {
10
- display: flex;
11
- justify-content: space-between;
12
- align-items: center;
13
- padding: 4Px;
14
- border-bottom: 1Px solid variable.$trionesBorderColor;
15
- &-title {
16
- font-size: 16Px;
17
- padding: 8Px;
18
- text-align: center;
19
- }
20
-
21
- &-button {
22
- padding: 8Px 12Px;
23
- cursor: pointer;
24
- &-cancel{
25
- color: variable.$trionesColorTextSecondary;
26
- }
27
- }
28
- }
29
-
30
- &-body {
31
- .time-picker {
32
- .time-item {
33
- flex-shrink: 0;
34
- display: flex;
35
- align-items: center;
36
- justify-content: center;
37
- height: 32Px;
38
- }
39
- }
40
- }
41
- }
1
+ @use "../style/variable" as variable;
2
+
3
+ $datePickerCls: 'triones-antm-date-picker';
4
+
5
+ .#{$datePickerCls} {
6
+ border-top-left-radius: variable.$trionesBorderRadius;
7
+ border-top-right-radius: variable.$trionesBorderRadius;
8
+
9
+ &-header {
10
+ display: flex;
11
+ justify-content: space-between;
12
+ align-items: center;
13
+ padding: 4Px;
14
+ border-bottom: 1Px solid variable.$trionesBorderColor;
15
+ &-title {
16
+ font-size: 16Px;
17
+ padding: 8Px;
18
+ text-align: center;
19
+ }
20
+
21
+ &-button {
22
+ padding: 8Px 12Px;
23
+ cursor: pointer;
24
+ &-cancel{
25
+ color: variable.$trionesColorTextSecondary;
26
+ }
27
+ }
28
+ }
29
+
30
+ &-body {
31
+ .time-picker {
32
+ .time-item {
33
+ flex-shrink: 0;
34
+ display: flex;
35
+ align-items: center;
36
+ justify-content: center;
37
+ height: 32Px;
38
+ }
39
+ }
40
+ }
41
+ }
@@ -0,0 +1,113 @@
1
+ import React from "react";
2
+ type LabeledValue = {
3
+ label?: string;
4
+ value?: string | number;
5
+ };
6
+ type PickerValue = string | string[] | number | number[] | LabeledValue | LabeledValue[];
7
+ export type FetchPickerProps = {
8
+ open?: boolean;
9
+ /**
10
+ * @description 是否全屏
11
+ * @default false
12
+ */
13
+ fullScreen?: boolean;
14
+ /**
15
+ * @description 搜索框
16
+ * @default false
17
+ */
18
+ showSearch?: boolean;
19
+ /**
20
+ * @description 搜索框占位符
21
+ * @default 搜索
22
+ */
23
+ searchPlaceholder?: string;
24
+ height?: number | string;
25
+ value?: PickerValue;
26
+ /**
27
+ * @description 是否可返回,fullScreen 为 true 时生效
28
+ * @default true
29
+ */
30
+ backable?: boolean;
31
+ /**
32
+ * @description 返回按钮图标,fullScreen 为 true 时生效
33
+ * @default
34
+ */
35
+ backIcon?: React.ReactNode;
36
+ /**
37
+ * @description 是否可关闭,fullScreen 为 true 时生效
38
+ * @default true
39
+ */
40
+ closable?: boolean;
41
+ /**
42
+ * @description 关闭按钮图标,fullScreen 为 true 时生效
43
+ * @default
44
+ */
45
+ closeIcon?: React.ReactNode;
46
+ /**
47
+ * @description 是否多选
48
+ * @default false
49
+ */
50
+ multiple?: boolean;
51
+ labelInValue?: boolean;
52
+ /**
53
+ * @description 弹窗标题
54
+ */
55
+ title?: React.ReactNode;
56
+ /**
57
+ * @description 取消按钮文字,fullScreen 为 false 时生效
58
+ * @default 取消
59
+ */
60
+ cancelText?: string;
61
+ /**
62
+ * @description 确定按钮文字,fullScreen 为 false 时生效
63
+ * @default 确定
64
+ */
65
+ okText?: string;
66
+ /**
67
+ * @description 是否圆角,fullScreen 为 false 时生效
68
+ * @default true
69
+ */
70
+ round?: boolean;
71
+ /**
72
+ * @description 关闭回调
73
+ * @default
74
+ */
75
+ onClose?: () => void;
76
+ /**
77
+ * @description 回退回调
78
+ * @default
79
+ */
80
+ onBack?: () => void;
81
+ onOk?: (value?: PickerValue, option?: any | any[]) => void;
82
+ /**
83
+ * @description 请求
84
+ * @default
85
+ */
86
+ fetch?: (params: {
87
+ page?: number;
88
+ size?: number;
89
+ wd?: string;
90
+ }) => Promise<any[]>;
91
+ fieldNames?: {
92
+ label?: string;
93
+ value?: string;
94
+ };
95
+ /**
96
+ * @description 空状态
97
+ * @default 暂无数据
98
+ */
99
+ empty?: React.ReactNode;
100
+ /**
101
+ * @description 是否分页
102
+ * @default false
103
+ */
104
+ pageable?: boolean;
105
+ /**
106
+ * @description 每页大小,pageable 为 true 时生效
107
+ * @default 20
108
+ */
109
+ pageSize?: number;
110
+ optionRender?: (option: any) => React.ReactNode;
111
+ };
112
+ export declare const FetchPicker: React.FC<FetchPickerProps>;
113
+ export {};
@@ -0,0 +1,322 @@
1
+ function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
2
+ function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
3
+ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
4
+ function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
5
+ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : String(i); }
6
+ function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
7
+ function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }
8
+ function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
9
+ function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); }
10
+ function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }
11
+ function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
12
+ function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
13
+ function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
14
+ function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
15
+ function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t.return && (u = t.return(), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
16
+ function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
17
+ import React, { useCallback, useEffect, useMemo, useRef, useState } from "react";
18
+ import Popup from "../Popup";
19
+ import { Button, DotLoading, SafeArea, SpinLoading } from "../index";
20
+ import { CheckOutline, CloseOutline, LeftOutline, SearchOutline } from "@trionesdev/antd-mobile-icons-react";
21
+ import Space from "../Space";
22
+ import { ScrollView } from "@tarojs/components";
23
+ import Input from "../Input";
24
+ import { debounce, get, isEmpty, isEqual, some } from "lodash-es";
25
+ import classNames from "classnames";
26
+ var cls = "triones-antm-fetch-picker";
27
+ export var FetchPicker = function FetchPicker(_ref) {
28
+ var _ref$open = _ref.open,
29
+ open = _ref$open === void 0 ? false : _ref$open,
30
+ _ref$fullScreen = _ref.fullScreen,
31
+ fullScreen = _ref$fullScreen === void 0 ? false : _ref$fullScreen,
32
+ height = _ref.height,
33
+ _ref$showSearch = _ref.showSearch,
34
+ showSearch = _ref$showSearch === void 0 ? false : _ref$showSearch,
35
+ _ref$searchPlaceholde = _ref.searchPlaceholder,
36
+ searchPlaceholder = _ref$searchPlaceholde === void 0 ? '搜索' : _ref$searchPlaceholde,
37
+ value = _ref.value,
38
+ _ref$backable = _ref.backable,
39
+ backable = _ref$backable === void 0 ? true : _ref$backable,
40
+ backIcon = _ref.backIcon,
41
+ _ref$closable = _ref.closable,
42
+ closable = _ref$closable === void 0 ? true : _ref$closable,
43
+ closeIcon = _ref.closeIcon,
44
+ _ref$multiple = _ref.multiple,
45
+ multiple = _ref$multiple === void 0 ? false : _ref$multiple,
46
+ _ref$labelInValue = _ref.labelInValue,
47
+ labelInValue = _ref$labelInValue === void 0 ? true : _ref$labelInValue,
48
+ title = _ref.title,
49
+ _ref$cancelText = _ref.cancelText,
50
+ cancelText = _ref$cancelText === void 0 ? '取消' : _ref$cancelText,
51
+ _ref$okText = _ref.okText,
52
+ okText = _ref$okText === void 0 ? '确定' : _ref$okText,
53
+ _ref$round = _ref.round,
54
+ round = _ref$round === void 0 ? true : _ref$round,
55
+ onClose = _ref.onClose,
56
+ onBack = _ref.onBack,
57
+ onOk = _ref.onOk,
58
+ fetch = _ref.fetch,
59
+ fieldNames = _ref.fieldNames,
60
+ empty = _ref.empty,
61
+ pageable = _ref.pageable,
62
+ _ref$pageSize = _ref.pageSize,
63
+ pageSize = _ref$pageSize === void 0 ? 20 : _ref$pageSize,
64
+ optionRender = _ref.optionRender;
65
+ var _ref2 = fieldNames || {},
66
+ _ref2$label = _ref2.label,
67
+ labelFieldName = _ref2$label === void 0 ? 'label' : _ref2$label,
68
+ _ref2$value = _ref2.value,
69
+ valueFieldName = _ref2$value === void 0 ? 'value' : _ref2$value;
70
+ var _useState = useState([]),
71
+ _useState2 = _slicedToArray(_useState, 2),
72
+ options = _useState2[0],
73
+ setOptions = _useState2[1];
74
+ var _useState3 = useState({
75
+ page: 1,
76
+ size: pageSize
77
+ }),
78
+ _useState4 = _slicedToArray(_useState3, 2),
79
+ queryParams = _useState4[0],
80
+ setQueryParams = _useState4[1];
81
+ var _useState5 = useState(true),
82
+ _useState6 = _slicedToArray(_useState5, 2),
83
+ hasMore = _useState6[0],
84
+ setHasMore = _useState6[1];
85
+ var _useState7 = useState(false),
86
+ _useState8 = _slicedToArray(_useState7, 2),
87
+ loading = _useState8[0],
88
+ setLoading = _useState8[1];
89
+ var _useState9 = useState(value || (multiple ? [] : undefined)),
90
+ _useState10 = _slicedToArray(_useState9, 2),
91
+ internalValue = _useState10[0],
92
+ setInternalValue = _useState10[1];
93
+ var requestIdRef = useRef(0);
94
+ var handleGetOptions = useCallback(function (value) {
95
+ if (!value) return null;
96
+ if (multiple) {
97
+ if (labelInValue) {
98
+ return options.filter(function (option) {
99
+ return some(value, function (v) {
100
+ return get(option, valueFieldName) === get(v, "value");
101
+ });
102
+ });
103
+ } else {
104
+ return options.filter(function (option) {
105
+ return some(value, function (v) {
106
+ return get(option, valueFieldName) === v;
107
+ });
108
+ });
109
+ }
110
+ } else {
111
+ if (labelInValue) {
112
+ return options.find(function (option) {
113
+ return isEqual(get(option, valueFieldName), get(value, "value"));
114
+ });
115
+ } else {
116
+ return options.find(function (option) {
117
+ return get(option, valueFieldName) === value;
118
+ });
119
+ }
120
+ }
121
+ }, [labelInValue, options]);
122
+ var handleItemClick = useCallback(function (item) {
123
+ var itemValue = get(item, valueFieldName);
124
+ var itemLabel = get(item, labelFieldName);
125
+ var newValue;
126
+ if (multiple) {
127
+ var prevList = Array.isArray(internalValue) ? internalValue : [];
128
+ if (labelInValue) {
129
+ var values = prevList;
130
+ var exists = some(values, function (v) {
131
+ return get(v, "value") === itemValue;
132
+ });
133
+ newValue = exists ? values.filter(function (v) {
134
+ return get(v, "value") !== itemValue;
135
+ }) : [].concat(_toConsumableArray(values), [{
136
+ value: itemValue,
137
+ label: itemLabel
138
+ }]);
139
+ } else {
140
+ var _values = prevList;
141
+ var _exists = _values.includes(itemValue);
142
+ newValue = _exists ? _values.filter(function (v) {
143
+ return v !== itemValue;
144
+ }) : [].concat(_toConsumableArray(_values), [itemValue]);
145
+ }
146
+ } else {
147
+ newValue = labelInValue ? {
148
+ value: itemValue,
149
+ label: itemLabel
150
+ } : itemValue;
151
+ }
152
+ setInternalValue(newValue);
153
+ if (!multiple) {
154
+ var _option = handleGetOptions(newValue);
155
+ onOk === null || onOk === void 0 || onOk(newValue, _option);
156
+ onClose === null || onClose === void 0 || onClose();
157
+ }
158
+ }, [internalValue, labelFieldName, labelInValue, multiple, onClose, onOk, valueFieldName, options]);
159
+ var handleSelected = useCallback(function (item) {
160
+ if (!internalValue || isEmpty(internalValue)) {
161
+ return false;
162
+ }
163
+ if (multiple) {
164
+ if (labelInValue) {
165
+ return some(internalValue, function (v) {
166
+ return get(v, "value") === get(item, valueFieldName);
167
+ });
168
+ } else {
169
+ return internalValue === null || internalValue === void 0 ? void 0 : internalValue.includes(get(item, valueFieldName));
170
+ }
171
+ } else {
172
+ if (labelInValue) {
173
+ return get(internalValue, "value") === get(item, valueFieldName);
174
+ } else {
175
+ return internalValue === get(item, valueFieldName);
176
+ }
177
+ }
178
+ }, [internalValue, labelInValue, multiple, valueFieldName]);
179
+ var handleFetch = useCallback(function (params) {
180
+ if (!fetch) {
181
+ setOptions([]);
182
+ setHasMore(false);
183
+ return;
184
+ }
185
+ var requestId = ++requestIdRef.current;
186
+ setLoading(true);
187
+ fetch(params).then(function (res) {
188
+ if (requestId !== requestIdRef.current) {
189
+ return;
190
+ }
191
+ var nextOptions = res || [];
192
+ setOptions(function (prev) {
193
+ return params.page === 1 ? nextOptions : [].concat(_toConsumableArray(prev), _toConsumableArray(nextOptions));
194
+ });
195
+ setHasMore(pageable ? nextOptions.length >= params.size : false);
196
+ }).finally(function () {
197
+ if (requestId === requestIdRef.current) {
198
+ setLoading(false);
199
+ }
200
+ });
201
+ }, [fetch, pageable]);
202
+ var handleOnOk = function handleOnOk() {
203
+ onOk === null || onOk === void 0 || onOk(internalValue, handleGetOptions(internalValue));
204
+ onClose === null || onClose === void 0 || onClose();
205
+ };
206
+ useEffect(function () {
207
+ if (!open) {
208
+ setInternalValue(multiple ? [] : undefined);
209
+ return;
210
+ }
211
+ handleFetch(queryParams);
212
+ }, [handleFetch, open, queryParams]);
213
+ useEffect(function () {
214
+ if (!open) {
215
+ return;
216
+ }
217
+ if (value == undefined) {
218
+ return;
219
+ }
220
+ setInternalValue(function (prev) {
221
+ return isEqual(value, prev) ? prev : value;
222
+ });
223
+ }, [open, value]);
224
+ var handleSearchChange = useMemo(function () {
225
+ return debounce(function (v) {
226
+ setQueryParams(function (prev) {
227
+ return _objectSpread(_objectSpread({}, prev), {}, {
228
+ page: 1,
229
+ wd: v
230
+ });
231
+ });
232
+ }, 500);
233
+ }, []);
234
+ useEffect(function () {
235
+ return function () {
236
+ return handleSearchChange.cancel();
237
+ };
238
+ }, [handleSearchChange]);
239
+ var header = fullScreen ? /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(Space, null, backable && /*#__PURE__*/React.createElement("div", {
240
+ className: "".concat(cls, "-head-icon"),
241
+ onClick: onBack
242
+ }, backIcon || /*#__PURE__*/React.createElement(LeftOutline, null)), closable && /*#__PURE__*/React.createElement("div", {
243
+ className: "".concat(cls, "-head-icon"),
244
+ onClick: onClose
245
+ }, closeIcon || /*#__PURE__*/React.createElement(CloseOutline, null))), /*#__PURE__*/React.createElement("div", {
246
+ className: "".concat(cls, "-head-title")
247
+ }, title)) : /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement("div", {
248
+ className: "".concat(cls, "-head-button"),
249
+ onClick: onClose
250
+ }, cancelText), /*#__PURE__*/React.createElement("div", {
251
+ className: "".concat(cls, "-head-title")
252
+ }, title), /*#__PURE__*/React.createElement("div", {
253
+ className: "".concat(cls, "-head-button"),
254
+ onClick: handleOnOk
255
+ }, okText));
256
+ return /*#__PURE__*/React.createElement(Popup, {
257
+ open: open,
258
+ onClose: onClose,
259
+ onBack: onBack,
260
+ height: fullScreen ? '100%' : height !== null && height !== void 0 ? height : 'auto',
261
+ round: fullScreen ? false : round
262
+ }, /*#__PURE__*/React.createElement(SafeArea, null, /*#__PURE__*/React.createElement("div", {
263
+ className: cls
264
+ }, /*#__PURE__*/React.createElement("div", {
265
+ className: "".concat(cls, "-head")
266
+ }, header), showSearch && /*#__PURE__*/React.createElement("div", {
267
+ className: "".concat(cls, "-search-bar")
268
+ }, /*#__PURE__*/React.createElement(Input, {
269
+ className: "".concat(cls, "-search-bar-input"),
270
+ prefix: /*#__PURE__*/React.createElement("div", {
271
+ style: {
272
+ paddingInline: 8
273
+ }
274
+ }, /*#__PURE__*/React.createElement(SearchOutline, null)),
275
+ variant: "outlined",
276
+ placeholder: searchPlaceholder,
277
+ value: queryParams.wd,
278
+ onChange: handleSearchChange
279
+ })), /*#__PURE__*/React.createElement(ScrollView, {
280
+ className: "".concat(cls, "-body"),
281
+ scrollY: true,
282
+ onScrollToLower: function onScrollToLower() {
283
+ if (!hasMore || !pageable) {
284
+ return;
285
+ }
286
+ setQueryParams(function (prev) {
287
+ return _objectSpread(_objectSpread({}, prev), {}, {
288
+ page: prev.page + 1
289
+ });
290
+ });
291
+ }
292
+ }, isEmpty(options) && loading && /*#__PURE__*/React.createElement("div", {
293
+ className: "".concat(cls, "-loading")
294
+ }, /*#__PURE__*/React.createElement("div", {
295
+ className: "".concat(cls, "-loading-content")
296
+ }, /*#__PURE__*/React.createElement(SpinLoading, null), /*#__PURE__*/React.createElement("div", null, "\u52A0\u8F7D\u4E2D..."))), isEmpty(options) && !loading && (empty || /*#__PURE__*/React.createElement("div", {
297
+ className: "".concat(cls, "-empty")
298
+ }, "\u6682\u65E0\u6570\u636E")), options === null || options === void 0 ? void 0 : options.map(function (item, index) {
299
+ var _get;
300
+ var selected = handleSelected(item);
301
+ return /*#__PURE__*/React.createElement("div", {
302
+ className: classNames("".concat(cls, "-item"), "".concat(cls, "-item-option"), _defineProperty({}, "".concat(cls, "-item-option-selected"), selected)),
303
+ key: "".concat((_get = get(item, valueFieldName)) !== null && _get !== void 0 ? _get : index),
304
+ onClick: function onClick() {
305
+ handleItemClick(item);
306
+ }
307
+ }, /*#__PURE__*/React.createElement("div", {
308
+ className: "".concat(cls, "-item-option-content")
309
+ }, (optionRender === null || optionRender === void 0 ? void 0 : optionRender(item)) || get(item, labelFieldName)), multiple && selected && /*#__PURE__*/React.createElement("div", {
310
+ className: "".concat(cls, "-item-option-state")
311
+ }, /*#__PURE__*/React.createElement(CheckOutline, null)));
312
+ }), !isEmpty(options) && loading && /*#__PURE__*/React.createElement("div", {
313
+ className: "".concat(cls, "-loading-more")
314
+ }, "\u52A0\u8F7D\u66F4\u591A", /*#__PURE__*/React.createElement(DotLoading, null))), fullScreen && multiple && /*#__PURE__*/React.createElement("div", {
315
+ className: "".concat(cls, "-footer")
316
+ }, /*#__PURE__*/React.createElement(Button, {
317
+ type: 'primary',
318
+ block: true,
319
+ size: 'large',
320
+ onClick: handleOnOk
321
+ }, okText)))));
322
+ };
@@ -0,0 +1,4 @@
1
+ import { FetchPicker, FetchPickerProps } from "./FetchPicker";
2
+ import "./styles.scss";
3
+ export type { FetchPickerProps };
4
+ export default FetchPicker;
@@ -0,0 +1,3 @@
1
+ import { FetchPicker } from "./FetchPicker";
2
+ import "./styles.scss";
3
+ export default FetchPicker;
@@ -0,0 +1,118 @@
1
+ @use "../style/variable" as variable;
2
+
3
+ $cls: 'triones-antm-fetch-picker';
4
+
5
+ .#{$cls} {
6
+ height: 100%;
7
+ display: flex;
8
+ flex-direction: column;
9
+ background-color: #f5f5f5;
10
+
11
+ &-head {
12
+ padding: variable.$trionesPaddingXxs;
13
+ background-color: white;
14
+ display: flex;
15
+ flex-direction: row;
16
+ justify-content: space-between;
17
+ border-bottom: 1Px solid variable.$trionesBorderColor;
18
+
19
+ &-icon {
20
+ padding: 8Px;
21
+ }
22
+
23
+ &-title {
24
+ flex: 1 auto;
25
+ display: flex;
26
+ justify-content: center;
27
+ align-items: center;
28
+ }
29
+
30
+ &-button {
31
+ color: variable.$trionesColorPrimaryText;
32
+ display: inline-block;
33
+ padding: 8Px;
34
+ }
35
+
36
+ }
37
+
38
+ &-search-bar {
39
+ padding: variable.$trionesPaddingXxs;
40
+ background-color: white;
41
+
42
+ &-input {
43
+ background-color: #f5f5f5;
44
+ }
45
+ }
46
+
47
+ &-empty {
48
+ height: 100%;
49
+ display: flex;
50
+ justify-content: center;
51
+ align-items: center;
52
+ min-height: 100Px;
53
+ }
54
+
55
+ &-loading {
56
+ height: 100%;
57
+ display: flex;
58
+ justify-content: center;
59
+ align-items: center;
60
+
61
+ &-content {
62
+ display: flex;
63
+ flex-direction: column;
64
+ justify-content: center;
65
+ align-items: center;
66
+ gap: 8Px;
67
+ font-size: 12Px;
68
+ color: #8c8c8c;
69
+ }
70
+ }
71
+
72
+ &-loading-more {
73
+ padding: variable.$trionesPaddingXxs;
74
+ display: flex;
75
+ justify-content: center;
76
+ align-items: center;
77
+ color: #8c8c8c;
78
+ font-size: 12Px;
79
+ }
80
+
81
+ &-body {
82
+ flex: 1 auto;
83
+
84
+ .#{$cls} {
85
+ &-item {
86
+ padding-block: variable.$trionesPaddingSm;
87
+ padding-inline: variable.$trionesPadding;
88
+ background-color: white;
89
+ border-bottom: 1Px solid #f0f0f0;
90
+ &-option{
91
+ display: flex;
92
+ &-selected{
93
+ background-color: #e6f4ff;
94
+ }
95
+ &-content{
96
+ flex: auto;
97
+ overflow: hidden;
98
+ white-space: nowrap;
99
+ text-overflow: ellipsis;
100
+ }
101
+ &-state{
102
+ .triones-antm-icon{
103
+ color: variable.$trionesColorPrimaryText;
104
+ font-size: variable.$trionesFontSize;
105
+ }
106
+ }
107
+ }
108
+ }
109
+ }
110
+ }
111
+
112
+ &-footer {
113
+ flex-shrink: 0;
114
+ border-top: 1Px solid variable.$trionesBorderColor;
115
+ padding: variable.$trionesPaddingXxs;
116
+ background-color: white;
117
+ }
118
+ }