@sheinx/base 3.0.0-alpha.3 → 3.0.0-alpha.6
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/cjs/animation-list/animation-list.d.ts.map +1 -1
- package/cjs/animation-list/animation-list.js +5 -1
- package/cjs/cascader/cascader.d.ts.map +1 -1
- package/cjs/cascader/cascader.js +67 -52
- package/cjs/cascader/cascader.type.d.ts +9 -3
- package/cjs/cascader/cascader.type.d.ts.map +1 -1
- package/cjs/cascader/filter-list.d.ts.map +1 -1
- package/cjs/cascader/filter-list.js +44 -14
- package/cjs/cascader/filter-list.type.d.ts +9 -2
- package/cjs/cascader/filter-list.type.d.ts.map +1 -1
- package/cjs/cascader/filter-node.d.ts +2 -1
- package/cjs/cascader/filter-node.d.ts.map +1 -1
- package/cjs/cascader/filter-node.js +55 -2
- package/cjs/cascader/filter-node.type.d.ts +12 -2
- package/cjs/cascader/filter-node.type.d.ts.map +1 -1
- package/cjs/cascader/list.d.ts.map +1 -1
- package/cjs/cascader/list.js +2 -3
- package/cjs/cascader/list.type.d.ts +4 -3
- package/cjs/cascader/list.type.d.ts.map +1 -1
- package/cjs/collapse/collapse-item.d.ts.map +1 -1
- package/cjs/collapse/collapse-item.js +4 -1
- package/cjs/date-picker/day.js +1 -1
- package/cjs/dropdown/dropdownIn.js +1 -1
- package/cjs/input/input-password.d.ts.map +1 -1
- package/cjs/input/input-password.js +3 -3
- package/cjs/input/input.d.ts.map +1 -1
- package/cjs/input/input.js +2 -1
- package/cjs/input/input.type.d.ts +3 -1
- package/cjs/input/input.type.d.ts.map +1 -1
- package/cjs/input/simple-input.d.ts.map +1 -1
- package/cjs/input/simple-input.js +3 -2
- package/cjs/input/use-input-common.d.ts +1 -1
- package/cjs/message/message.d.ts.map +1 -1
- package/cjs/message/message.js +1 -0
- package/cjs/modal/modal-content.js +2 -2
- package/cjs/pagination/pagination-button.d.ts.map +1 -1
- package/cjs/pagination/pagination-button.js +4 -1
- package/cjs/pagination/pagination.type.d.ts +1 -0
- package/cjs/pagination/pagination.type.d.ts.map +1 -1
- package/cjs/radio/radio.type.d.ts +2 -0
- package/cjs/radio/radio.type.d.ts.map +1 -1
- package/cjs/radio/simple-radio.d.ts.map +1 -1
- package/cjs/radio/simple-radio.js +4 -2
- package/cjs/select/list-columns-option.d.ts.map +1 -1
- package/cjs/select/list-columns-option.js +2 -0
- package/cjs/select/result.d.ts.map +1 -1
- package/cjs/select/result.js +14 -9
- package/cjs/select/result.type.d.ts +3 -3
- package/cjs/select/result.type.d.ts.map +1 -1
- package/cjs/transfer/transfer.js +2 -2
- package/cjs/tree/tree-content.d.ts.map +1 -1
- package/cjs/tree/tree-content.js +3 -0
- package/cjs/tree-select/tree-select.d.ts.map +1 -1
- package/cjs/tree-select/tree-select.js +2 -1
- package/esm/animation-list/animation-list.d.ts.map +1 -1
- package/esm/animation-list/animation-list.js +5 -1
- package/esm/cascader/cascader.d.ts.map +1 -1
- package/esm/cascader/cascader.js +67 -52
- package/esm/cascader/cascader.type.d.ts +9 -3
- package/esm/cascader/cascader.type.d.ts.map +1 -1
- package/esm/cascader/filter-list.d.ts.map +1 -1
- package/esm/cascader/filter-list.js +44 -14
- package/esm/cascader/filter-list.type.d.ts +9 -2
- package/esm/cascader/filter-list.type.d.ts.map +1 -1
- package/esm/cascader/filter-node.d.ts +2 -1
- package/esm/cascader/filter-node.d.ts.map +1 -1
- package/esm/cascader/filter-node.js +55 -2
- package/esm/cascader/filter-node.type.d.ts +12 -2
- package/esm/cascader/filter-node.type.d.ts.map +1 -1
- package/esm/cascader/list.d.ts.map +1 -1
- package/esm/cascader/list.js +2 -3
- package/esm/cascader/list.type.d.ts +4 -3
- package/esm/cascader/list.type.d.ts.map +1 -1
- package/esm/collapse/collapse-item.d.ts.map +1 -1
- package/esm/collapse/collapse-item.js +4 -1
- package/esm/date-picker/day.js +1 -1
- package/esm/dropdown/dropdownIn.js +1 -1
- package/esm/input/input-password.d.ts.map +1 -1
- package/esm/input/input-password.js +3 -3
- package/esm/input/input.d.ts.map +1 -1
- package/esm/input/input.js +2 -1
- package/esm/input/input.type.d.ts +3 -1
- package/esm/input/input.type.d.ts.map +1 -1
- package/esm/input/simple-input.d.ts.map +1 -1
- package/esm/input/simple-input.js +3 -2
- package/esm/input/use-input-common.d.ts +1 -1
- package/esm/message/message.d.ts.map +1 -1
- package/esm/message/message.js +1 -0
- package/esm/modal/modal-content.js +2 -2
- package/esm/pagination/pagination-button.d.ts.map +1 -1
- package/esm/pagination/pagination-button.js +4 -1
- package/esm/pagination/pagination.type.d.ts +1 -0
- package/esm/pagination/pagination.type.d.ts.map +1 -1
- package/esm/radio/radio.type.d.ts +2 -0
- package/esm/radio/radio.type.d.ts.map +1 -1
- package/esm/radio/simple-radio.d.ts.map +1 -1
- package/esm/radio/simple-radio.js +4 -2
- package/esm/select/list-columns-option.d.ts.map +1 -1
- package/esm/select/list-columns-option.js +2 -0
- package/esm/select/result.d.ts.map +1 -1
- package/esm/select/result.js +14 -9
- package/esm/select/result.type.d.ts +3 -3
- package/esm/select/result.type.d.ts.map +1 -1
- package/esm/transfer/transfer.js +2 -2
- package/esm/tree/tree-content.d.ts.map +1 -1
- package/esm/tree/tree-content.js +3 -0
- package/esm/tree-select/tree-select.d.ts.map +1 -1
- package/esm/tree-select/tree-select.js +2 -1
- package/package.json +2 -2
package/esm/cascader/cascader.js
CHANGED
|
@@ -20,6 +20,7 @@ require("core-js/modules/es.array.reduce.js");
|
|
|
20
20
|
require("core-js/modules/es.array.filter.js");
|
|
21
21
|
require("core-js/modules/es.array.map.js");
|
|
22
22
|
require("core-js/modules/es.array.slice.js");
|
|
23
|
+
require("core-js/modules/es.array.includes.js");
|
|
23
24
|
var _react = _interopRequireWildcard(require("react"));
|
|
24
25
|
var _classnames = _interopRequireDefault(require("classnames"));
|
|
25
26
|
var _hooks = require("@sheinx/hooks");
|
|
@@ -45,6 +46,9 @@ var Cascader = function Cascader(props) {
|
|
|
45
46
|
size = props.size,
|
|
46
47
|
maxLength = props.maxLength,
|
|
47
48
|
defaultValue = props.defaultValue,
|
|
49
|
+
wideMatch = props.wideMatch,
|
|
50
|
+
_props$unmatch = props.unmatch,
|
|
51
|
+
unmatch = _props$unmatch === void 0 ? true : _props$unmatch,
|
|
48
52
|
valueProp = props.value,
|
|
49
53
|
_props$data = props.data,
|
|
50
54
|
data = _props$data === void 0 ? [] : _props$data,
|
|
@@ -78,7 +82,8 @@ var Cascader = function Cascader(props) {
|
|
|
78
82
|
resultClassName = props.resultClassName,
|
|
79
83
|
renderUnmatched = props.renderUnmatched,
|
|
80
84
|
renderOptionList = props.renderOptionList,
|
|
81
|
-
showArrow = props.showArrow,
|
|
85
|
+
_props$showArrow = props.showArrow,
|
|
86
|
+
showArrow = _props$showArrow === void 0 ? true : _props$showArrow,
|
|
82
87
|
compressed = props.compressed,
|
|
83
88
|
compressedBound = props.compressedBound,
|
|
84
89
|
_props$position = props.position,
|
|
@@ -99,9 +104,8 @@ var Cascader = function Cascader(props) {
|
|
|
99
104
|
focused = _useState2[0],
|
|
100
105
|
setFocused = _useState2[1];
|
|
101
106
|
var _useState3 = (0, _react.useState)(false),
|
|
102
|
-
_useState4 = (0, _slicedToArray2.default)(_useState3,
|
|
103
|
-
enter = _useState4[0]
|
|
104
|
-
setEnter = _useState4[1];
|
|
107
|
+
_useState4 = (0, _slicedToArray2.default)(_useState3, 1),
|
|
108
|
+
enter = _useState4[0];
|
|
105
109
|
var _useState5 = (0, _react.useState)([]),
|
|
106
110
|
_useState6 = (0, _slicedToArray2.default)(_useState5, 2),
|
|
107
111
|
path = _useState6[0],
|
|
@@ -115,21 +119,25 @@ var Cascader = function Cascader(props) {
|
|
|
115
119
|
treeData: data,
|
|
116
120
|
keygen: keygen,
|
|
117
121
|
childrenKey: childrenKey,
|
|
122
|
+
firstMatch: true,
|
|
118
123
|
onFilter: onFilterProp,
|
|
124
|
+
showHitDescendants: true,
|
|
119
125
|
onAdvancedFilter: false
|
|
120
126
|
}),
|
|
121
127
|
filterText = _useFilter.filterText,
|
|
122
128
|
inputText = _useFilter.inputText,
|
|
123
129
|
filterData = _useFilter.filterData,
|
|
124
|
-
|
|
125
|
-
expanded = _useFilter.expanded,
|
|
130
|
+
firstMatchNode = _useFilter.firstMatchNode,
|
|
126
131
|
setInputText = _useFilter.setInputText,
|
|
132
|
+
setFilterText = _useFilter.setFilterText,
|
|
133
|
+
filterFunc = _useFilter.filterFunc,
|
|
127
134
|
onFilter = _useFilter.onFilter,
|
|
128
135
|
onResetFilter = _useFilter.onResetFilter;
|
|
129
136
|
var _useCascader = (0, _hooks.useCascader)({
|
|
130
137
|
data: data,
|
|
131
138
|
control: 'value' in props,
|
|
132
139
|
keygen: keygen,
|
|
140
|
+
unmatch: unmatch,
|
|
133
141
|
disabled: disabled,
|
|
134
142
|
mode: mode,
|
|
135
143
|
defaultValue: defaultValue,
|
|
@@ -171,26 +179,26 @@ var Cascader = function Cascader(props) {
|
|
|
171
179
|
var getFinal = function getFinal() {
|
|
172
180
|
return expandTrigger === 'hover-only' || !!final;
|
|
173
181
|
};
|
|
182
|
+
var shouldFinal = getFinal();
|
|
174
183
|
var renderItem = getRenderItem;
|
|
175
|
-
var getRenderResult = function getRenderResult(data) {
|
|
184
|
+
var getRenderResult = function getRenderResult(data, index, nodes) {
|
|
176
185
|
if (!renderResultProp) return renderItem(data);
|
|
177
|
-
return typeof renderResultProp === 'function' ? renderResultProp(data) : data[renderResultProp];
|
|
186
|
+
return typeof renderResultProp === 'function' ? renderResultProp(data, nodes) : data[renderResultProp];
|
|
178
187
|
};
|
|
179
188
|
|
|
180
189
|
// 点击结果框的处理方法
|
|
181
190
|
var handleResultClick = (0, _hooks.usePersistFn)(function () {
|
|
182
|
-
var _inputRef$current;
|
|
183
191
|
if (disabled === true) return;
|
|
184
|
-
|
|
185
|
-
|
|
192
|
+
if (!open) {
|
|
193
|
+
var _inputRef$current;
|
|
194
|
+
openPop();
|
|
195
|
+
(_inputRef$current = inputRef.current) === null || _inputRef$current === void 0 ? void 0 : _inputRef$current.focus();
|
|
196
|
+
} else {
|
|
197
|
+
var _inputRef$current2;
|
|
198
|
+
closePop();
|
|
199
|
+
(_inputRef$current2 = inputRef.current) === null || _inputRef$current2 === void 0 ? void 0 : _inputRef$current2.blur();
|
|
200
|
+
}
|
|
186
201
|
});
|
|
187
|
-
|
|
188
|
-
// 回车时的处理方法
|
|
189
|
-
var handleEnter = function handleEnter() {};
|
|
190
|
-
|
|
191
|
-
// input blur 时的处理方法
|
|
192
|
-
// 注意,在点击 option 的时候也会触发 blur 事件,此时要规避点击 option 后的 blur 事件
|
|
193
|
-
var handleInputBlur = function handleInputBlur(text) {};
|
|
194
202
|
var handleFilter = function handleFilter(text) {
|
|
195
203
|
onFilter === null || onFilter === void 0 ? void 0 : onFilter(trim ? text.trim() : text);
|
|
196
204
|
};
|
|
@@ -206,6 +214,17 @@ var Cascader = function Cascader(props) {
|
|
|
206
214
|
}
|
|
207
215
|
setPath([].concat((0, _toConsumableArray2.default)(nextPath), [id]));
|
|
208
216
|
};
|
|
217
|
+
var updatePath = function updatePath() {
|
|
218
|
+
if (!filterText || !firstMatchNode) {
|
|
219
|
+
setPath([]);
|
|
220
|
+
return;
|
|
221
|
+
}
|
|
222
|
+
var key = _hooks.util.getKey(keygen, firstMatchNode);
|
|
223
|
+
var current = datum.getPath(key) || {
|
|
224
|
+
path: []
|
|
225
|
+
};
|
|
226
|
+
setPath([].concat((0, _toConsumableArray2.default)(current.path), [key]));
|
|
227
|
+
};
|
|
209
228
|
var updatePathByValue = function updatePathByValue() {
|
|
210
229
|
if (mode !== undefined) return;
|
|
211
230
|
if (!value || !value.length) {
|
|
@@ -226,16 +245,6 @@ var Cascader = function Cascader(props) {
|
|
|
226
245
|
console.error(e);
|
|
227
246
|
}
|
|
228
247
|
};
|
|
229
|
-
var handleOptionClick = function handleOptionClick() {
|
|
230
|
-
isPreventBlur.current = true;
|
|
231
|
-
if (multiple) return;
|
|
232
|
-
};
|
|
233
|
-
var handleMouseEnter = function handleMouseEnter() {
|
|
234
|
-
setEnter(true);
|
|
235
|
-
};
|
|
236
|
-
var handleMouseLeave = function handleMouseLeave() {
|
|
237
|
-
setEnter(false);
|
|
238
|
-
};
|
|
239
248
|
var handleKeyDown = function handleKeyDown(e) {
|
|
240
249
|
// 回车或下箭头可打开下拉列表
|
|
241
250
|
if (e.keyCode === 13 || e.code === 'Enter') {
|
|
@@ -273,11 +282,6 @@ var Cascader = function Cascader(props) {
|
|
|
273
282
|
if (!nextValues) return [];
|
|
274
283
|
return datum.getDataByValues(nextValues);
|
|
275
284
|
};
|
|
276
|
-
var getValue = function getValue() {
|
|
277
|
-
var nextValue = datum.getValue();
|
|
278
|
-
if (multiple) return nextValue;
|
|
279
|
-
return nextValue.length ? nextValue[0] : '';
|
|
280
|
-
};
|
|
281
285
|
var checkUnMatched = function checkUnMatched(item) {
|
|
282
286
|
return _hooks.util.isUnMatchedData(item);
|
|
283
287
|
};
|
|
@@ -289,13 +293,6 @@ var Cascader = function Cascader(props) {
|
|
|
289
293
|
setFocused(false);
|
|
290
294
|
onBlur === null || onBlur === void 0 ? void 0 : onBlur(e);
|
|
291
295
|
});
|
|
292
|
-
var handleRemove = function handleRemove(item, key, index) {
|
|
293
|
-
var dataKey = _hooks.util.isUnMatchedData(item) ? item.value : datum.getKey(item, key, index);
|
|
294
|
-
var isDisabled = datum.isDisabled(dataKey);
|
|
295
|
-
if (isDisabled) return;
|
|
296
|
-
datum.set(dataKey, 0);
|
|
297
|
-
handleChange(item);
|
|
298
|
-
};
|
|
299
296
|
|
|
300
297
|
// innerTitle 模式
|
|
301
298
|
var renderInnerTitle = (0, _useInnerTitle.default)({
|
|
@@ -313,7 +310,7 @@ var Cascader = function Cascader(props) {
|
|
|
313
310
|
};
|
|
314
311
|
var renderIcon = function renderIcon() {
|
|
315
312
|
var isEmpty;
|
|
316
|
-
if (
|
|
313
|
+
if (mode !== undefined) {
|
|
317
314
|
isEmpty = !value || Array.isArray(value) && value.length === 0;
|
|
318
315
|
} else {
|
|
319
316
|
isEmpty = _hooks.util.isEmpty(value);
|
|
@@ -321,10 +318,11 @@ var Cascader = function Cascader(props) {
|
|
|
321
318
|
if (clearable && !isEmpty && open || clearable && !isEmpty && enter && disabled !== true) {
|
|
322
319
|
return renderClearable();
|
|
323
320
|
}
|
|
324
|
-
if (!
|
|
321
|
+
if (!mode !== undefined && !showArrow) return null;
|
|
325
322
|
var defaultIcon = compressed ? _icons.default.More : _icons.default.ArrowDown;
|
|
326
323
|
return /*#__PURE__*/(0, _jsxRuntime.jsx)("span", {
|
|
327
324
|
className: (0, _classnames.default)(styles.arrowIcon, open && !compressed && styles.arrowIconOpen),
|
|
325
|
+
onClick: handleResultClick,
|
|
328
326
|
children: defaultIcon
|
|
329
327
|
});
|
|
330
328
|
};
|
|
@@ -361,8 +359,7 @@ var Cascader = function Cascader(props) {
|
|
|
361
359
|
onRef: inputRef,
|
|
362
360
|
onResetFilter: onResetFilter,
|
|
363
361
|
checkUnMatched: checkUnMatched,
|
|
364
|
-
getDataByValues: getDataByValues
|
|
365
|
-
onRemove: handleRemove
|
|
362
|
+
getDataByValues: getDataByValues
|
|
366
363
|
})
|
|
367
364
|
});
|
|
368
365
|
return /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
|
|
@@ -373,7 +370,7 @@ var Cascader = function Cascader(props) {
|
|
|
373
370
|
});
|
|
374
371
|
};
|
|
375
372
|
var renderList = function renderList() {
|
|
376
|
-
var tempData =
|
|
373
|
+
var tempData = filterData;
|
|
377
374
|
var isMultiple = multiple === true || mode !== undefined;
|
|
378
375
|
var cascaderList = [/*#__PURE__*/(0, _jsxRuntime.jsx)(_list.default, {
|
|
379
376
|
jssStyle: jssStyle,
|
|
@@ -386,7 +383,7 @@ var Cascader = function Cascader(props) {
|
|
|
386
383
|
multiple: isMultiple,
|
|
387
384
|
expandTrigger: expandTrigger,
|
|
388
385
|
childrenKey: childrenKey,
|
|
389
|
-
shouldFinal:
|
|
386
|
+
shouldFinal: shouldFinal,
|
|
390
387
|
data: tempData,
|
|
391
388
|
id: path[0],
|
|
392
389
|
parentId: "",
|
|
@@ -410,7 +407,7 @@ var Cascader = function Cascader(props) {
|
|
|
410
407
|
multiple: isMultiple,
|
|
411
408
|
expandTrigger: expandTrigger,
|
|
412
409
|
childrenKey: childrenKey,
|
|
413
|
-
shouldFinal:
|
|
410
|
+
shouldFinal: shouldFinal,
|
|
414
411
|
data: tempData,
|
|
415
412
|
id: path[i + 1],
|
|
416
413
|
parentId: path[i],
|
|
@@ -456,8 +453,17 @@ var Cascader = function Cascader(props) {
|
|
|
456
453
|
style: listStyle,
|
|
457
454
|
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_filterList.default, {
|
|
458
455
|
jssStyle: jssStyle,
|
|
456
|
+
data: filterData,
|
|
459
457
|
datum: datum,
|
|
460
|
-
|
|
458
|
+
wideMatch: wideMatch,
|
|
459
|
+
filterFunc: filterFunc,
|
|
460
|
+
renderItem: renderItem,
|
|
461
|
+
childrenKey: childrenKey,
|
|
462
|
+
shouldFinal: shouldFinal,
|
|
463
|
+
onChange: handleChange,
|
|
464
|
+
setInputText: setInputText,
|
|
465
|
+
setFilterText: setFilterText,
|
|
466
|
+
onPathChange: handlePathChange
|
|
461
467
|
})
|
|
462
468
|
});
|
|
463
469
|
};
|
|
@@ -476,7 +482,19 @@ var Cascader = function Cascader(props) {
|
|
|
476
482
|
(0, _react.useEffect)(function () {
|
|
477
483
|
if (!value) return;
|
|
478
484
|
datum.setValue(value);
|
|
485
|
+
updatePathByValue();
|
|
479
486
|
}, [value]);
|
|
487
|
+
(0, _react.useEffect)(function () {
|
|
488
|
+
if (filterText !== undefined) {
|
|
489
|
+
updatePath();
|
|
490
|
+
}
|
|
491
|
+
}, [filterText]);
|
|
492
|
+
(0, _react.useEffect)(function () {
|
|
493
|
+
updatePathByValue();
|
|
494
|
+
if (mode !== undefined && loader && [0, 1, 2].includes(mode)) {
|
|
495
|
+
console.error(new Error("The mode ".concat(mode, " is not supported when loader setted. Only 3 or 4 can be set.")));
|
|
496
|
+
}
|
|
497
|
+
}, []);
|
|
480
498
|
return /*#__PURE__*/(0, _jsxRuntime.jsxs)("div", {
|
|
481
499
|
tabIndex: disabled === true ? -1 : 0,
|
|
482
500
|
"data-soui-type": 'input',
|
|
@@ -484,10 +502,7 @@ var Cascader = function Cascader(props) {
|
|
|
484
502
|
style: rootStyle,
|
|
485
503
|
onBlur: handleBlur,
|
|
486
504
|
onFocus: handleFocus,
|
|
487
|
-
onKeyDown: handleKeyDown
|
|
488
|
-
// onMouseEnter={handleMouseEnter}
|
|
489
|
-
// onMouseLeave={handleMouseLeave}
|
|
490
|
-
,
|
|
505
|
+
onKeyDown: handleKeyDown,
|
|
491
506
|
children: [renderResult(), renderIcon(), /*#__PURE__*/(0, _jsxRuntime.jsx)(_absoluteList.AbsoluteList, {
|
|
492
507
|
adjust: true,
|
|
493
508
|
focus: open,
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import { KeygenResult, ObjectKey, TreeModeType } from '@sheinx/hooks';
|
|
3
|
+
import { AbsoluteListProps } from '../absolute-list/absolute-list.type';
|
|
3
4
|
import { CommonType } from '../common/type';
|
|
4
5
|
import { TagClasses } from '../tag/tag.type';
|
|
5
6
|
import { SelectClasses, VirtualScrollClasses } from '@sheinx/shineout-style';
|
|
@@ -22,7 +23,7 @@ export declare type JssStyleType = {
|
|
|
22
23
|
input?: () => InputClasses;
|
|
23
24
|
cascader?: () => CascaderClasses;
|
|
24
25
|
};
|
|
25
|
-
export interface CascaderProps<DataItem, Value extends KeygenResult[]> extends Pick<CommonType, 'className' | 'style' | 'size'> {
|
|
26
|
+
export interface CascaderProps<DataItem, Value extends KeygenResult[]> extends Pick<CommonType, 'className' | 'style' | 'size'>, Pick<AbsoluteListProps, 'absolute' | 'zIndex'> {
|
|
26
27
|
jssStyle?: JssStyleType;
|
|
27
28
|
multiple?: boolean;
|
|
28
29
|
mode?: TreeModeType;
|
|
@@ -37,6 +38,11 @@ export interface CascaderProps<DataItem, Value extends KeygenResult[]> extends P
|
|
|
37
38
|
* @cn 选中的 key (受控)
|
|
38
39
|
*/
|
|
39
40
|
value?: Value;
|
|
41
|
+
/**
|
|
42
|
+
* @en Selected key
|
|
43
|
+
* @cn 默认选中的 key
|
|
44
|
+
*/
|
|
45
|
+
defaultValue?: Value;
|
|
40
46
|
/**
|
|
41
47
|
* @en data. The child node is children. If the children value is null or its length is 0, it is render as a leaf node
|
|
42
48
|
* @cn 数据,子节点为children,如果 children 值为 null 或 长度为 0 时,视为叶子节点
|
|
@@ -189,12 +195,12 @@ export interface CascaderProps<DataItem, Value extends KeygenResult[]> extends P
|
|
|
189
195
|
* @en blur event
|
|
190
196
|
* @cn 失焦事件
|
|
191
197
|
*/
|
|
192
|
-
onBlur?: (e?: React.
|
|
198
|
+
onBlur?: (e?: React.KeyboardEvent<HTMLDivElement>) => void;
|
|
193
199
|
/**
|
|
194
200
|
* @en focus event
|
|
195
201
|
* @cn 聚焦事件
|
|
196
202
|
*/
|
|
197
|
-
onFocus?: (e?: React.
|
|
203
|
+
onFocus?: (e?: React.KeyboardEvent<HTMLDivElement>) => void;
|
|
198
204
|
/**
|
|
199
205
|
* @en placeholder
|
|
200
206
|
* @cn 占位符
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cascader.type.d.ts","sourceRoot":"","sources":["cascader.type.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AACtE,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAC5C,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,aAAa,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAC7E,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAC9D,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AACzD,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAC5D,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAEnD,oBAAY,YAAY,GAAG;IACzB,GAAG,CAAC,EAAE,MAAM,UAAU,CAAC;IACvB,MAAM,CAAC,EAAE,MAAM,aAAa,CAAC;IAC7B,UAAU,CAAC,EAAE,MAAM,iBAAiB,CAAC;IACrC,aAAa,CAAC,EAAE,MAAM,oBAAoB,CAAC;IAC3C,OAAO,CAAC,EAAE,MAAM,cAAc,CAAC;IAC/B,QAAQ,CAAC,EAAE,MAAM,eAAe,CAAC;IACjC,KAAK,CAAC,EAAE,MAAM,YAAY,CAAC;IAC3B,IAAI,CAAC,EAAE,MAAM,WAAW,CAAC;IACzB,KAAK,CAAC,EAAE,MAAM,YAAY,CAAC;IAC3B,QAAQ,CAAC,EAAE,MAAM,eAAe,CAAC;CAClC,CAAC;AAEF,MAAM,WAAW,aAAa,CAAC,QAAQ,EAAE,KAAK,SAAS,YAAY,EAAE,CACnE,SAAQ,IAAI,CAAC,UAAU,EAAE,WAAW,GAAG,OAAO,GAAG,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"cascader.type.d.ts","sourceRoot":"","sources":["cascader.type.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"filter-list.d.ts","sourceRoot":"","sources":["filter-list.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,YAAY,
|
|
1
|
+
{"version":3,"file":"filter-list.d.ts","sourceRoot":"","sources":["filter-list.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,YAAY,EAAQ,MAAM,eAAe,CAAC;AAEnD,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAIrD,QAAA,MAAM,UAAU,kGAsEf,CAAC;AAEF,eAAe,UAAU,CAAC"}
|
|
@@ -8,7 +8,9 @@ exports.default = void 0;
|
|
|
8
8
|
require("core-js/modules/es.array.map.js");
|
|
9
9
|
require("core-js/modules/es.array.filter.js");
|
|
10
10
|
var _classnames = _interopRequireDefault(require("classnames"));
|
|
11
|
-
var
|
|
11
|
+
var _hooks = require("@sheinx/hooks");
|
|
12
|
+
var _filterNode = _interopRequireDefault(require("./filter-node"));
|
|
13
|
+
var _spin = _interopRequireDefault(require("../spin"));
|
|
12
14
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
13
15
|
var FilterList = function FilterList(props) {
|
|
14
16
|
var _jssStyle$cascader;
|
|
@@ -16,8 +18,16 @@ var FilterList = function FilterList(props) {
|
|
|
16
18
|
data = props.data,
|
|
17
19
|
datum = props.datum,
|
|
18
20
|
loading = props.loading,
|
|
19
|
-
|
|
20
|
-
|
|
21
|
+
childrenKey = props.childrenKey,
|
|
22
|
+
wideMatch = props.wideMatch,
|
|
23
|
+
shouldFinal = props.shouldFinal,
|
|
24
|
+
filterFunc = props.filterFunc,
|
|
25
|
+
renderItem = props.renderItem,
|
|
26
|
+
renderOptionList = props.renderOptionList,
|
|
27
|
+
setInputText = props.setInputText,
|
|
28
|
+
setFilterText = props.setFilterText,
|
|
29
|
+
onChange = props.onChange,
|
|
30
|
+
onPathChange = props.onPathChange;
|
|
21
31
|
var styles = jssStyle === null || jssStyle === void 0 ? void 0 : (_jssStyle$cascader = jssStyle.cascader) === null || _jssStyle$cascader === void 0 ? void 0 : _jssStyle$cascader.call(jssStyle);
|
|
22
32
|
var getKey = function getKey(path) {
|
|
23
33
|
return path.map(function (d) {
|
|
@@ -27,28 +37,48 @@ var FilterList = function FilterList(props) {
|
|
|
27
37
|
var getWideMatch = function getWideMatch(list) {
|
|
28
38
|
return list.filter(function (arr) {
|
|
29
39
|
return arr.some(function (item) {
|
|
30
|
-
return
|
|
40
|
+
return filterFunc === null || filterFunc === void 0 ? void 0 : filterFunc(item);
|
|
31
41
|
});
|
|
32
42
|
});
|
|
33
43
|
};
|
|
44
|
+
var renderLoading = function renderLoading() {
|
|
45
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_spin.default, {
|
|
46
|
+
jssStyle: jssStyle
|
|
47
|
+
});
|
|
48
|
+
};
|
|
34
49
|
var renderList = function renderList() {
|
|
35
|
-
|
|
36
|
-
|
|
50
|
+
var list = _hooks.util.getFlattenTree(data, childrenKey, wideMatch);
|
|
51
|
+
if (wideMatch) {
|
|
52
|
+
list = getWideMatch(list);
|
|
53
|
+
}
|
|
54
|
+
if (loading) return renderLoading();
|
|
55
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
|
|
56
|
+
className: (0, _classnames.default)(styles.list),
|
|
57
|
+
children: list.map(function (item) {
|
|
58
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_filterNode.default, {
|
|
59
|
+
jssStyle: jssStyle,
|
|
60
|
+
data: item,
|
|
61
|
+
datum: datum,
|
|
62
|
+
shouldFinal: shouldFinal,
|
|
63
|
+
renderItem: renderItem,
|
|
64
|
+
setInputText: setInputText,
|
|
65
|
+
setFilterText: setFilterText,
|
|
66
|
+
onChange: onChange,
|
|
67
|
+
onPathChange: onPathChange
|
|
68
|
+
}, getKey(item));
|
|
69
|
+
})
|
|
37
70
|
});
|
|
38
71
|
};
|
|
39
72
|
var renderEmpety = function renderEmpety() {
|
|
40
|
-
return /*#__PURE__*/(0, _jsxRuntime.
|
|
41
|
-
children:
|
|
73
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsx)("span", {
|
|
74
|
+
children: "noData"
|
|
42
75
|
});
|
|
43
76
|
};
|
|
44
77
|
if (!data || data.length === 0) return renderEmpety();
|
|
45
78
|
var list = renderList();
|
|
46
|
-
return
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
loading: !!loading
|
|
50
|
-
}) : list
|
|
51
|
-
});
|
|
79
|
+
return renderOptionList ? renderOptionList(list, {
|
|
80
|
+
loading: !!loading
|
|
81
|
+
}) : list;
|
|
52
82
|
};
|
|
53
83
|
var _default = FilterList;
|
|
54
84
|
exports.default = _default;
|
|
@@ -1,10 +1,17 @@
|
|
|
1
|
+
/// <reference types="react" />
|
|
1
2
|
import { KeygenResult } from '@sheinx/hooks';
|
|
2
3
|
import { DatumType } from '../tree/tree.type';
|
|
3
4
|
import { JssStyleType, CascaderProps } from './cascader.type';
|
|
4
|
-
export interface FilterListProps<DataItem, Value extends KeygenResult[]> extends Pick<CascaderProps<DataItem, Value>, 'renderOptionList' | 'loading'> {
|
|
5
|
+
export interface FilterListProps<DataItem, Value extends KeygenResult[]> extends Pick<CascaderProps<DataItem, Value>, 'renderOptionList' | 'loading' | 'wideMatch' | 'childrenKey'> {
|
|
5
6
|
jssStyle?: JssStyleType;
|
|
6
7
|
data: DataItem[];
|
|
7
8
|
datum: DatumType<DataItem, KeygenResult>['datum'];
|
|
8
|
-
|
|
9
|
+
filterFunc?: (data: DataItem) => boolean;
|
|
10
|
+
shouldFinal: boolean;
|
|
11
|
+
renderItem: (data: DataItem, active?: boolean, id?: Value[0] | undefined) => React.ReactNode;
|
|
12
|
+
onChange: (item: Value) => void;
|
|
13
|
+
onPathChange: (id: KeygenResult, item: DataItem | null, nextPath: Value, fromClick?: boolean) => void;
|
|
14
|
+
setInputText: (text: string) => void;
|
|
15
|
+
setFilterText: (text: string) => void;
|
|
9
16
|
}
|
|
10
17
|
//# sourceMappingURL=filter-list.type.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"filter-list.type.d.ts","sourceRoot":"","sources":["filter-list.type.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAC7C,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAC9C,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAE9D,MAAM,WAAW,eAAe,CAAC,QAAQ,EAAE,KAAK,SAAS,YAAY,EAAE,CACrE,SAAQ,IAAI,
|
|
1
|
+
{"version":3,"file":"filter-list.type.d.ts","sourceRoot":"","sources":["filter-list.type.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAC7C,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAC9C,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAE9D,MAAM,WAAW,eAAe,CAAC,QAAQ,EAAE,KAAK,SAAS,YAAY,EAAE,CACrE,SAAQ,IAAI,CACV,aAAa,CAAC,QAAQ,EAAE,KAAK,CAAC,EAC9B,kBAAkB,GAAG,SAAS,GAAG,WAAW,GAAG,aAAa,CAC7D;IACD,QAAQ,CAAC,EAAE,YAAY,CAAC;IACxB,IAAI,EAAE,QAAQ,EAAE,CAAC;IACjB,KAAK,EAAE,SAAS,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC,OAAO,CAAC,CAAC;IAClD,UAAU,CAAC,EAAE,CAAC,IAAI,EAAE,QAAQ,KAAK,OAAO,CAAC;IACzC,WAAW,EAAE,OAAO,CAAC;IACrB,UAAU,EAAE,CAAC,IAAI,EAAE,QAAQ,EAAE,MAAM,CAAC,EAAE,OAAO,EAAE,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,GAAG,SAAS,KAAK,KAAK,CAAC,SAAS,CAAC;IAC7F,QAAQ,EAAE,CAAC,IAAI,EAAE,KAAK,KAAK,IAAI,CAAC;IAChC,YAAY,EAAE,CACZ,EAAE,EAAE,YAAY,EAChB,IAAI,EAAE,QAAQ,GAAG,IAAI,EACrB,QAAQ,EAAE,KAAK,EACf,SAAS,CAAC,EAAE,OAAO,KAChB,IAAI,CAAC;IACV,YAAY,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IACrC,aAAa,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;CACvC"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
/// <reference types="react" />
|
|
2
|
+
import { KeygenResult } from '@sheinx/hooks';
|
|
2
3
|
import { FilterNodeProps } from './filter-node.type';
|
|
3
|
-
declare const FilterNode: <DataItem>(props: FilterNodeProps<DataItem>) => JSX.Element;
|
|
4
|
+
declare const FilterNode: <DataItem, Value extends KeygenResult[]>(props: FilterNodeProps<DataItem, Value>) => JSX.Element;
|
|
4
5
|
export default FilterNode;
|
|
5
6
|
//# sourceMappingURL=filter-node.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"filter-node.d.ts","sourceRoot":"","sources":["filter-node.tsx"],"names":[],"mappings":";
|
|
1
|
+
{"version":3,"file":"filter-node.d.ts","sourceRoot":"","sources":["filter-node.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAE7C,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAErD,QAAA,MAAM,UAAU,kGAiEf,CAAC;AAEF,eAAe,UAAU,CAAC"}
|
|
@@ -1,14 +1,67 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
3
4
|
Object.defineProperty(exports, "__esModule", {
|
|
4
5
|
value: true
|
|
5
6
|
});
|
|
6
7
|
exports.default = void 0;
|
|
8
|
+
require("core-js/modules/es.array.map.js");
|
|
9
|
+
require("core-js/modules/es.array.slice.js");
|
|
10
|
+
var _classnames = _interopRequireDefault(require("classnames"));
|
|
7
11
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
8
12
|
var FilterNode = function FilterNode(props) {
|
|
9
|
-
var
|
|
13
|
+
var _jssStyle$cascader;
|
|
14
|
+
var jssStyle = props.jssStyle,
|
|
15
|
+
data = props.data,
|
|
16
|
+
shouldFinal = props.shouldFinal,
|
|
17
|
+
datum = props.datum,
|
|
18
|
+
renderItem = props.renderItem,
|
|
19
|
+
setInputText = props.setInputText,
|
|
20
|
+
setFilterText = props.setFilterText,
|
|
21
|
+
onChange = props.onChange,
|
|
22
|
+
onPathChange = props.onPathChange;
|
|
23
|
+
var styles = jssStyle === null || jssStyle === void 0 ? void 0 : (_jssStyle$cascader = jssStyle.cascader) === null || _jssStyle$cascader === void 0 ? void 0 : _jssStyle$cascader.call(jssStyle);
|
|
24
|
+
var handleSelectItem = function handleSelectItem(index, e) {
|
|
25
|
+
var isFinal = data && index === data.length - 1;
|
|
26
|
+
if (shouldFinal && !isFinal) return;
|
|
27
|
+
if (e) e.stopPropagation();
|
|
28
|
+
var item = data[index];
|
|
29
|
+
var isDisabled = datum.isDisabled(datum.getKey(item));
|
|
30
|
+
if (isDisabled) return;
|
|
31
|
+
var keys = data.slice(0, index + 1).map(function (i) {
|
|
32
|
+
return datum.getKey(i);
|
|
33
|
+
});
|
|
34
|
+
if (onChange) onChange(keys);
|
|
35
|
+
onPathChange(datum.getKey(item), item, keys.slice(0, keys.length - 1), true);
|
|
36
|
+
// TODO: 清空输入框内容
|
|
37
|
+
setInputText('');
|
|
38
|
+
setFilterText('');
|
|
39
|
+
};
|
|
40
|
+
var handleSelect = function handleSelect() {
|
|
41
|
+
handleSelectItem(data.length - 1);
|
|
42
|
+
};
|
|
10
43
|
return /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
|
|
11
|
-
|
|
44
|
+
className: (0, _classnames.default)(styles.option, styles.filterOption),
|
|
45
|
+
onClick: handleSelect,
|
|
46
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
|
|
47
|
+
className: (0, _classnames.default)(styles.optionInner),
|
|
48
|
+
children: data.map(function (item, index) {
|
|
49
|
+
var handleClick = function handleClick(e) {
|
|
50
|
+
handleSelectItem(index, e);
|
|
51
|
+
};
|
|
52
|
+
var isDisabled = datum.isDisabled(datum.getKey(item));
|
|
53
|
+
var content = /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
|
|
54
|
+
onClick: handleClick,
|
|
55
|
+
className: (0, _classnames.default)(isDisabled && styles.filterDisabledOption),
|
|
56
|
+
children: renderItem(item)
|
|
57
|
+
}, 'content');
|
|
58
|
+
if (index === 0) return content;
|
|
59
|
+
return [/*#__PURE__*/(0, _jsxRuntime.jsx)("span", {
|
|
60
|
+
className: (0, _classnames.default)(styles.filterOptionSeparator),
|
|
61
|
+
children: "/"
|
|
62
|
+
}, 'separator'), content];
|
|
63
|
+
})
|
|
64
|
+
})
|
|
12
65
|
});
|
|
13
66
|
};
|
|
14
67
|
var _default = FilterNode;
|
|
@@ -1,6 +1,16 @@
|
|
|
1
|
+
/// <reference types="react" />
|
|
2
|
+
import { KeygenResult } from '@sheinx/hooks';
|
|
3
|
+
import { DatumType } from '../tree/tree.type';
|
|
1
4
|
import { JssStyleType } from './cascader.type';
|
|
2
|
-
export interface FilterNodeProps<DataItem> {
|
|
5
|
+
export interface FilterNodeProps<DataItem, Value extends KeygenResult[]> {
|
|
3
6
|
jssStyle?: JssStyleType;
|
|
4
|
-
data: DataItem;
|
|
7
|
+
data: DataItem[];
|
|
8
|
+
datum: DatumType<DataItem, KeygenResult>['datum'];
|
|
9
|
+
shouldFinal: boolean;
|
|
10
|
+
renderItem: (data: DataItem, active?: boolean, id?: Value[0] | undefined) => React.ReactNode;
|
|
11
|
+
setInputText: (text: string) => void;
|
|
12
|
+
setFilterText: (text: string) => void;
|
|
13
|
+
onChange: (item: Value) => void;
|
|
14
|
+
onPathChange: (id: KeygenResult, item: DataItem | null, nextPath: Value, fromClick?: boolean) => void;
|
|
5
15
|
}
|
|
6
16
|
//# sourceMappingURL=filter-node.type.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"filter-node.type.d.ts","sourceRoot":"","sources":["filter-node.type.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAE/C,MAAM,WAAW,eAAe,CAAC,QAAQ;
|
|
1
|
+
{"version":3,"file":"filter-node.type.d.ts","sourceRoot":"","sources":["filter-node.type.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAC7C,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAC9C,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAE/C,MAAM,WAAW,eAAe,CAAC,QAAQ,EAAE,KAAK,SAAS,YAAY,EAAE;IACrE,QAAQ,CAAC,EAAE,YAAY,CAAC;IACxB,IAAI,EAAE,QAAQ,EAAE,CAAC;IACjB,KAAK,EAAE,SAAS,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC,OAAO,CAAC,CAAC;IAClD,WAAW,EAAE,OAAO,CAAC;IACrB,UAAU,EAAE,CAAC,IAAI,EAAE,QAAQ,EAAE,MAAM,CAAC,EAAE,OAAO,EAAE,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,GAAG,SAAS,KAAK,KAAK,CAAC,SAAS,CAAC;IAC7F,YAAY,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IACrC,aAAa,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IACtC,QAAQ,EAAE,CAAC,IAAI,EAAE,KAAK,KAAK,IAAI,CAAC;IAChC,YAAY,EAAE,CACZ,EAAE,EAAE,YAAY,EAChB,IAAI,EAAE,QAAQ,GAAG,IAAI,EACrB,QAAQ,EAAE,KAAK,EACf,SAAS,CAAC,EAAE,OAAO,KAChB,IAAI,CAAC;CACX"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"list.d.ts","sourceRoot":"","sources":["list.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"list.d.ts","sourceRoot":"","sources":["list.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAE7C,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAGhD,QAAA,MAAM,YAAY,oGAqEjB,CAAC;AAEF,eAAe,YAAY,CAAC"}
|
package/esm/cascader/list.js
CHANGED
|
@@ -7,7 +7,6 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
7
7
|
exports.default = void 0;
|
|
8
8
|
require("core-js/modules/es.array.map.js");
|
|
9
9
|
var _classnames = _interopRequireDefault(require("classnames"));
|
|
10
|
-
var _config = require("../config");
|
|
11
10
|
var _node = _interopRequireDefault(require("./node"));
|
|
12
11
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
13
12
|
var CascaderList = function CascaderList(props) {
|
|
@@ -41,8 +40,8 @@ var CascaderList = function CascaderList(props) {
|
|
|
41
40
|
return parentId + (parentId ? ',' : '') + index;
|
|
42
41
|
};
|
|
43
42
|
var renderEmpety = function renderEmpety() {
|
|
44
|
-
return /*#__PURE__*/(0, _jsxRuntime.
|
|
45
|
-
children:
|
|
43
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsx)("span", {
|
|
44
|
+
children: "noData"
|
|
46
45
|
});
|
|
47
46
|
};
|
|
48
47
|
if (!data || data.length === 0) return renderEmpety();
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { KeygenResult,
|
|
1
|
+
import { KeygenResult, ObjectKey } from '@sheinx/hooks';
|
|
2
2
|
import { DatumType } from '../tree/tree.type';
|
|
3
3
|
import { JssStyleType, CascaderProps } from './cascader.type';
|
|
4
|
-
export interface CascaderListProps<DataItem, Value extends KeygenResult[]> extends Pick<CascaderProps<DataItem, Value>, 'loader' | '
|
|
4
|
+
export interface CascaderListProps<DataItem, Value extends KeygenResult[]> extends Pick<CascaderProps<DataItem, Value>, 'loader' | 'multiple' | 'expandTrigger' | 'renderItem' | 'keygen'> {
|
|
5
5
|
jssStyle?: JssStyleType;
|
|
6
6
|
id: KeygenResult;
|
|
7
7
|
parentId: KeygenResult;
|
|
@@ -9,7 +9,8 @@ export interface CascaderListProps<DataItem, Value extends KeygenResult[]> exten
|
|
|
9
9
|
datum: DatumType<DataItem, KeygenResult>['datum'];
|
|
10
10
|
shouldFinal: boolean;
|
|
11
11
|
path: Value;
|
|
12
|
+
childrenKey: ObjectKey<DataItem>;
|
|
12
13
|
onPathChange: (id: KeygenResult, item: DataItem | null, nextPath: Value, fromClick?: boolean) => void;
|
|
13
|
-
onChange: (item:
|
|
14
|
+
onChange: (item: Value) => void;
|
|
14
15
|
}
|
|
15
16
|
//# sourceMappingURL=list.type.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"list.type.d.ts","sourceRoot":"","sources":["list.type.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,
|
|
1
|
+
{"version":3,"file":"list.type.d.ts","sourceRoot":"","sources":["list.type.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AACxD,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAC9C,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAE9D,MAAM,WAAW,iBAAiB,CAAC,QAAQ,EAAE,KAAK,SAAS,YAAY,EAAE,CACvE,SAAQ,IAAI,CACV,aAAa,CAAC,QAAQ,EAAE,KAAK,CAAC,EAC9B,QAAQ,GAAG,UAAU,GAAG,eAAe,GAAG,YAAY,GAAG,QAAQ,CAClE;IACD,QAAQ,CAAC,EAAE,YAAY,CAAC;IACxB,EAAE,EAAE,YAAY,CAAC;IACjB,QAAQ,EAAE,YAAY,CAAC;IACvB,IAAI,EAAE,QAAQ,EAAE,CAAC;IACjB,KAAK,EAAE,SAAS,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC,OAAO,CAAC,CAAC;IAClD,WAAW,EAAE,OAAO,CAAC;IACrB,IAAI,EAAE,KAAK,CAAC;IACZ,WAAW,EAAE,SAAS,CAAC,QAAQ,CAAC,CAAC;IACjC,YAAY,EAAE,CACZ,EAAE,EAAE,YAAY,EAChB,IAAI,EAAE,QAAQ,GAAG,IAAI,EACrB,QAAQ,EAAE,KAAK,EACf,SAAS,CAAC,EAAE,OAAO,KAChB,IAAI,CAAC;IACV,QAAQ,EAAE,CAAC,IAAI,EAAE,KAAK,KAAK,IAAI,CAAC;CACjC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"collapse-item.d.ts","sourceRoot":"","sources":["collapse-item.tsx"],"names":[],"mappings":";AAEA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAK9D,QAAA,MAAM,YAAY,UAAW,iBAAiB,
|
|
1
|
+
{"version":3,"file":"collapse-item.d.ts","sourceRoot":"","sources":["collapse-item.tsx"],"names":[],"mappings":";AAEA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAK9D,QAAA,MAAM,YAAY,UAAW,iBAAiB,gBAuG7C,CAAC;AAEF,eAAe,YAAY,CAAC"}
|
|
@@ -57,7 +57,10 @@ var CollapseItem = function CollapseItem(props) {
|
|
|
57
57
|
getTitleProps = _useCollapseItem.getTitleProps,
|
|
58
58
|
getExtraProps = _useCollapseItem.getExtraProps;
|
|
59
59
|
var headerIconItem = function headerIconItem() {
|
|
60
|
-
var collapseItemIconClassName = (0, _classnames.default)(jssStyle === null || jssStyle === void 0 ? void 0 : jssStyle.collapseItem.icon,
|
|
60
|
+
var collapseItemIconClassName = (0, _classnames.default)(jssStyle === null || jssStyle === void 0 ? void 0 : jssStyle.collapseItem.icon, jssStyle === null || jssStyle === void 0 ? void 0 : jssStyle.collapseItem.activeTransform // expandIconPosition === 'right'
|
|
61
|
+
// ? jssStyle?.collapseItem.activeTransformRight
|
|
62
|
+
// : jssStyle?.collapseItem.activeTransform,
|
|
63
|
+
);
|
|
61
64
|
var headerIcon = showExpandIcon ? expandIcon !== undefined ? expandIcon : parentExpandIcon : null;
|
|
62
65
|
return headerIcon && /*#__PURE__*/(0, _jsxRuntime.jsx)("div", _objectSpread(_objectSpread({}, getHeaderIconProps({
|
|
63
66
|
className: collapseItemIconClassName
|
package/esm/date-picker/day.js
CHANGED
|
@@ -63,7 +63,7 @@ var Day = function Day(props) {
|
|
|
63
63
|
var now = new Date();
|
|
64
64
|
if (func.isDisabled(now)) return;
|
|
65
65
|
props.setCurrent(new Date(), areaType);
|
|
66
|
-
props.onChange(new Date(),
|
|
66
|
+
props.onChange(new Date(), props.type === 'datetime');
|
|
67
67
|
};
|
|
68
68
|
var renderDay = function renderDay(item, index) {
|
|
69
69
|
var isActive = func.isActive(item);
|