@sheinx/base 3.0.0-alpha.5 → 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.
Files changed (109) hide show
  1. package/cjs/animation-list/animation-list.d.ts.map +1 -1
  2. package/cjs/animation-list/animation-list.js +5 -1
  3. package/cjs/cascader/cascader.d.ts.map +1 -1
  4. package/cjs/cascader/cascader.js +67 -52
  5. package/cjs/cascader/cascader.type.d.ts +9 -3
  6. package/cjs/cascader/cascader.type.d.ts.map +1 -1
  7. package/cjs/cascader/filter-list.d.ts.map +1 -1
  8. package/cjs/cascader/filter-list.js +44 -14
  9. package/cjs/cascader/filter-list.type.d.ts +9 -2
  10. package/cjs/cascader/filter-list.type.d.ts.map +1 -1
  11. package/cjs/cascader/filter-node.d.ts +2 -1
  12. package/cjs/cascader/filter-node.d.ts.map +1 -1
  13. package/cjs/cascader/filter-node.js +55 -2
  14. package/cjs/cascader/filter-node.type.d.ts +12 -2
  15. package/cjs/cascader/filter-node.type.d.ts.map +1 -1
  16. package/cjs/cascader/list.d.ts.map +1 -1
  17. package/cjs/cascader/list.js +2 -3
  18. package/cjs/cascader/list.type.d.ts +4 -3
  19. package/cjs/cascader/list.type.d.ts.map +1 -1
  20. package/cjs/collapse/collapse-item.d.ts.map +1 -1
  21. package/cjs/collapse/collapse-item.js +4 -1
  22. package/cjs/date-picker/day.js +1 -1
  23. package/cjs/dropdown/dropdownIn.js +1 -1
  24. package/cjs/input/input-password.d.ts.map +1 -1
  25. package/cjs/input/input-password.js +3 -3
  26. package/cjs/input/input.d.ts.map +1 -1
  27. package/cjs/input/input.js +2 -1
  28. package/cjs/input/input.type.d.ts +3 -1
  29. package/cjs/input/input.type.d.ts.map +1 -1
  30. package/cjs/input/simple-input.d.ts.map +1 -1
  31. package/cjs/input/simple-input.js +3 -2
  32. package/cjs/input/use-input-common.d.ts +1 -1
  33. package/cjs/message/message.d.ts.map +1 -1
  34. package/cjs/message/message.js +1 -0
  35. package/cjs/modal/modal-content.js +2 -2
  36. package/cjs/pagination/pagination-button.d.ts.map +1 -1
  37. package/cjs/pagination/pagination-button.js +4 -1
  38. package/cjs/pagination/pagination.type.d.ts +1 -0
  39. package/cjs/pagination/pagination.type.d.ts.map +1 -1
  40. package/cjs/radio/radio.type.d.ts +2 -0
  41. package/cjs/radio/radio.type.d.ts.map +1 -1
  42. package/cjs/radio/simple-radio.d.ts.map +1 -1
  43. package/cjs/radio/simple-radio.js +4 -2
  44. package/cjs/select/list-columns-option.d.ts.map +1 -1
  45. package/cjs/select/list-columns-option.js +2 -0
  46. package/cjs/select/result.d.ts.map +1 -1
  47. package/cjs/select/result.js +14 -9
  48. package/cjs/select/result.type.d.ts +3 -3
  49. package/cjs/select/result.type.d.ts.map +1 -1
  50. package/cjs/transfer/transfer.js +2 -2
  51. package/cjs/tree/tree-content.d.ts.map +1 -1
  52. package/cjs/tree/tree-content.js +3 -0
  53. package/cjs/tree-select/tree-select.d.ts.map +1 -1
  54. package/cjs/tree-select/tree-select.js +2 -1
  55. package/esm/animation-list/animation-list.d.ts.map +1 -1
  56. package/esm/animation-list/animation-list.js +5 -1
  57. package/esm/cascader/cascader.d.ts.map +1 -1
  58. package/esm/cascader/cascader.js +67 -52
  59. package/esm/cascader/cascader.type.d.ts +9 -3
  60. package/esm/cascader/cascader.type.d.ts.map +1 -1
  61. package/esm/cascader/filter-list.d.ts.map +1 -1
  62. package/esm/cascader/filter-list.js +44 -14
  63. package/esm/cascader/filter-list.type.d.ts +9 -2
  64. package/esm/cascader/filter-list.type.d.ts.map +1 -1
  65. package/esm/cascader/filter-node.d.ts +2 -1
  66. package/esm/cascader/filter-node.d.ts.map +1 -1
  67. package/esm/cascader/filter-node.js +55 -2
  68. package/esm/cascader/filter-node.type.d.ts +12 -2
  69. package/esm/cascader/filter-node.type.d.ts.map +1 -1
  70. package/esm/cascader/list.d.ts.map +1 -1
  71. package/esm/cascader/list.js +2 -3
  72. package/esm/cascader/list.type.d.ts +4 -3
  73. package/esm/cascader/list.type.d.ts.map +1 -1
  74. package/esm/collapse/collapse-item.d.ts.map +1 -1
  75. package/esm/collapse/collapse-item.js +4 -1
  76. package/esm/date-picker/day.js +1 -1
  77. package/esm/dropdown/dropdownIn.js +1 -1
  78. package/esm/input/input-password.d.ts.map +1 -1
  79. package/esm/input/input-password.js +3 -3
  80. package/esm/input/input.d.ts.map +1 -1
  81. package/esm/input/input.js +2 -1
  82. package/esm/input/input.type.d.ts +3 -1
  83. package/esm/input/input.type.d.ts.map +1 -1
  84. package/esm/input/simple-input.d.ts.map +1 -1
  85. package/esm/input/simple-input.js +3 -2
  86. package/esm/input/use-input-common.d.ts +1 -1
  87. package/esm/message/message.d.ts.map +1 -1
  88. package/esm/message/message.js +1 -0
  89. package/esm/modal/modal-content.js +2 -2
  90. package/esm/pagination/pagination-button.d.ts.map +1 -1
  91. package/esm/pagination/pagination-button.js +4 -1
  92. package/esm/pagination/pagination.type.d.ts +1 -0
  93. package/esm/pagination/pagination.type.d.ts.map +1 -1
  94. package/esm/radio/radio.type.d.ts +2 -0
  95. package/esm/radio/radio.type.d.ts.map +1 -1
  96. package/esm/radio/simple-radio.d.ts.map +1 -1
  97. package/esm/radio/simple-radio.js +4 -2
  98. package/esm/select/list-columns-option.d.ts.map +1 -1
  99. package/esm/select/list-columns-option.js +2 -0
  100. package/esm/select/result.d.ts.map +1 -1
  101. package/esm/select/result.js +14 -9
  102. package/esm/select/result.type.d.ts +3 -3
  103. package/esm/select/result.type.d.ts.map +1 -1
  104. package/esm/transfer/transfer.js +2 -2
  105. package/esm/tree/tree-content.d.ts.map +1 -1
  106. package/esm/tree/tree-content.js +3 -0
  107. package/esm/tree-select/tree-select.d.ts.map +1 -1
  108. package/esm/tree-select/tree-select.js +2 -1
  109. package/package.json +2 -2
@@ -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, 2),
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
- createdData = _useFilter.createdData,
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
- openPop();
185
- (_inputRef$current = inputRef.current) === null || _inputRef$current === void 0 ? void 0 : _inputRef$current.focus();
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 (multiple) {
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 (!multiple && !showArrow) return null;
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 = data;
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: getFinal(),
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: getFinal(),
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
- data: filterData
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.FocusEvent) => void;
198
+ onBlur?: (e?: React.KeyboardEvent<HTMLDivElement>) => void;
193
199
  /**
194
200
  * @en focus event
195
201
  * @cn 聚焦事件
196
202
  */
197
- onFocus?: (e?: React.FocusEvent) => void;
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":"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"}
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,EAAE,MAAM,eAAe,CAAC;AAE7C,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAIrD,QAAA,MAAM,UAAU,kGA+Bf,CAAC;AAEF,eAAe,UAAU,CAAC"}
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 _config = require("../config");
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
- filterDataChange = props.filterDataChange,
20
- renderOptionList = props.renderOptionList;
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 filterDataChange(item);
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
- return /*#__PURE__*/(0, _jsxRuntime.jsx)("span", {
36
- children: "noData"
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.jsxs)("span", {
41
- children: [" ", (0, _config.getLocale)('noData')]
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 /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
47
- className: (0, _classnames.default)(styles.list),
48
- children: renderOptionList ? renderOptionList(list, {
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
- filterDataChange: (data: DataItem) => boolean;
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,CAAC,aAAa,CAAC,QAAQ,EAAE,KAAK,CAAC,EAAE,kBAAkB,GAAG,SAAS,CAAC;IAC5E,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,gBAAgB,EAAE,CAAC,IAAI,EAAE,QAAQ,KAAK,OAAO,CAAA;CAC9C"}
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":";AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAErD,QAAA,MAAM,UAAU,6DAGf,CAAC;AAEF,eAAe,UAAU,CAAC"}
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 data = props.data;
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
- children: "FilterNode"
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;IACvC,QAAQ,CAAC,EAAE,YAAY,CAAC;IACxB,IAAI,EAAE,QAAQ,CAAC;CAChB"}
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;AAG7C,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAGhD,QAAA,MAAM,YAAY,oGAqEjB,CAAC;AAEF,eAAe,YAAY,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"}
@@ -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.jsxs)("span", {
45
- children: [" ", (0, _config.getLocale)('noData')]
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, UnMatchedData } from '@sheinx/hooks';
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' | 'childrenKey' | 'multiple' | 'expandTrigger' | 'renderItem' | 'keygen'> {
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: (DataItem | UnMatchedData)[]) => void;
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,aAAa,EAAE,MAAM,eAAe,CAAC;AAC5D,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,aAAa,GAAG,UAAU,GAAG,eAAe,GAAG,YAAY,GAAG,QAAQ,CAClF;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,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,CAAC,QAAQ,GAAG,aAAa,CAAC,EAAE,KAAK,IAAI,CAAC;CACxD"}
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,gBAsG7C,CAAC;AAEF,eAAe,YAAY,CAAC"}
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, expandIconPosition === 'right' ? jssStyle === null || jssStyle === void 0 ? void 0 : jssStyle.collapseItem.activeTransformRight : jssStyle === null || jssStyle === void 0 ? void 0 : jssStyle.collapseItem.activeTransform);
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
@@ -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(), true);
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);