@hi-ui/check-cascader 4.3.0 → 4.3.1-alpha.1

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.
@@ -251,6 +251,7 @@ var CheckCascader = /*#__PURE__*/React.forwardRef(function (_a, ref) {
251
251
  flatted: flatted || !!searchValue,
252
252
  // @ts-ignore
253
253
  flattedData: selectProps.data,
254
+ originalFlattedData: flattedData,
254
255
  data: cascaderData,
255
256
  onChangeData: setCascaderData,
256
257
  checkedMode: checkedMode,
@@ -41,6 +41,7 @@ var CheckCascaderMenuList = /*#__PURE__*/React.forwardRef(function (_a, ref) {
41
41
  role = _a$role === void 0 ? _role : _a$role,
42
42
  className = _a.className,
43
43
  flattedData = _a.flattedData,
44
+ originalFlattedData = _a.originalFlattedData,
44
45
  onChangeData = _a.onChangeData,
45
46
  valueProp = _a.value,
46
47
  _a$defaultValue = _a.defaultValue,
@@ -60,7 +61,7 @@ var CheckCascaderMenuList = /*#__PURE__*/React.forwardRef(function (_a, ref) {
60
61
  flatted = _a.flatted,
61
62
  _a$checkedMode = _a.checkedMode,
62
63
  checkedMode = _a$checkedMode === void 0 ? 'ALL' : _a$checkedMode,
63
- rest = tslib.__rest(_a, ["prefixCls", "role", "className", "children", "data", "flattedData", "onChangeData", "value", "defaultValue", "disabled", "expandTrigger", "changeOnSelect", "checkCascaded", "onLoadChildren", "onChange", "onSelect", "titleRender", "dropdownColumnRender", "flatted", "checkedMode"]);
64
+ rest = tslib.__rest(_a, ["prefixCls", "role", "className", "children", "data", "flattedData", "originalFlattedData", "onChangeData", "value", "defaultValue", "disabled", "expandTrigger", "changeOnSelect", "checkCascaded", "onLoadChildren", "onChange", "onSelect", "titleRender", "dropdownColumnRender", "flatted", "checkedMode"]);
64
65
  if (checkCascaded === false) {
65
66
  checkedMode = 'SEPARATE';
66
67
  }
@@ -71,7 +72,7 @@ var CheckCascaderMenuList = /*#__PURE__*/React.forwardRef(function (_a, ref) {
71
72
  var _useAsyncSwitch = useAsyncSwitch.useAsyncSwitch(onChangeData, onOptionSelect, onLoadChildren),
72
73
  isLoadingId = _useAsyncSwitch[0],
73
74
  onItemExpand = _useAsyncSwitch[1];
74
- var _useCheck = useCheck.useCheck(checkedMode, disabled, flattedData, defaultValue, valueProp, function (_ref, target, shouldChecked) {
75
+ var _useCheck = useCheck.useCheck(checkedMode, disabled, originalFlattedData, defaultValue, valueProp, function (_ref, target, shouldChecked) {
75
76
  var checkedIds = _ref.checkedIds;
76
77
  // @ts-ignore
77
78
  onChange === null || onChange === void 0 ? void 0 : onChange(checkedIds, target, shouldChecked);
@@ -101,10 +101,13 @@ function getCascaderItemEventData(node, requiredProps) {
101
101
  */
102
102
  var processCheckedIds = function processCheckedIds(type, checkedIds, flattenData, allowCheck) {
103
103
  var keySet = new Set(checkedIds);
104
+ var flattenDataMap = new Map(flattenData.map(function (node) {
105
+ return [node.id, node];
106
+ }));
104
107
  switch (type) {
105
108
  case 'CHILD':
106
109
  return checkedIds.filter(function (id) {
107
- var node = treeUtils.fFindNodeById(flattenData, id);
110
+ var node = flattenDataMap.get(id);
108
111
  if (node) {
109
112
  var children = node.children;
110
113
  if (typeAssertion.isArrayNonEmpty(children)) {
@@ -120,7 +123,7 @@ var processCheckedIds = function processCheckedIds(type, checkedIds, flattenData
120
123
  });
121
124
  case 'PARENT':
122
125
  return checkedIds.filter(function (id) {
123
- var node = treeUtils.fFindNodeById(flattenData, id);
126
+ var node = flattenDataMap.get(id);
124
127
  if (node) {
125
128
  // 向上递归遍历是否被勾选
126
129
  var ancestors = treeUtils.getNodeAncestors(node);
@@ -239,6 +239,7 @@ var CheckCascader = /*#__PURE__*/forwardRef(function (_a, ref) {
239
239
  flatted: flatted || !!searchValue,
240
240
  // @ts-ignore
241
241
  flattedData: selectProps.data,
242
+ originalFlattedData: flattedData,
242
243
  data: cascaderData,
243
244
  onChangeData: setCascaderData,
244
245
  checkedMode: checkedMode,
@@ -29,6 +29,7 @@ var CheckCascaderMenuList = /*#__PURE__*/forwardRef(function (_a, ref) {
29
29
  role = _a$role === void 0 ? _role : _a$role,
30
30
  className = _a.className,
31
31
  flattedData = _a.flattedData,
32
+ originalFlattedData = _a.originalFlattedData,
32
33
  onChangeData = _a.onChangeData,
33
34
  valueProp = _a.value,
34
35
  _a$defaultValue = _a.defaultValue,
@@ -48,7 +49,7 @@ var CheckCascaderMenuList = /*#__PURE__*/forwardRef(function (_a, ref) {
48
49
  flatted = _a.flatted,
49
50
  _a$checkedMode = _a.checkedMode,
50
51
  checkedMode = _a$checkedMode === void 0 ? 'ALL' : _a$checkedMode,
51
- rest = __rest(_a, ["prefixCls", "role", "className", "children", "data", "flattedData", "onChangeData", "value", "defaultValue", "disabled", "expandTrigger", "changeOnSelect", "checkCascaded", "onLoadChildren", "onChange", "onSelect", "titleRender", "dropdownColumnRender", "flatted", "checkedMode"]);
52
+ rest = __rest(_a, ["prefixCls", "role", "className", "children", "data", "flattedData", "originalFlattedData", "onChangeData", "value", "defaultValue", "disabled", "expandTrigger", "changeOnSelect", "checkCascaded", "onLoadChildren", "onChange", "onSelect", "titleRender", "dropdownColumnRender", "flatted", "checkedMode"]);
52
53
  if (checkCascaded === false) {
53
54
  checkedMode = 'SEPARATE';
54
55
  }
@@ -59,7 +60,7 @@ var CheckCascaderMenuList = /*#__PURE__*/forwardRef(function (_a, ref) {
59
60
  var _useAsyncSwitch = useAsyncSwitch(onChangeData, onOptionSelect, onLoadChildren),
60
61
  isLoadingId = _useAsyncSwitch[0],
61
62
  onItemExpand = _useAsyncSwitch[1];
62
- var _useCheck = useCheck(checkedMode, disabled, flattedData, defaultValue, valueProp, function (_ref, target, shouldChecked) {
63
+ var _useCheck = useCheck(checkedMode, disabled, originalFlattedData, defaultValue, valueProp, function (_ref, target, shouldChecked) {
63
64
  var checkedIds = _ref.checkedIds;
64
65
  // @ts-ignore
65
66
  onChange === null || onChange === void 0 ? void 0 : onChange(checkedIds, target, shouldChecked);
@@ -7,7 +7,7 @@
7
7
  * This source code is licensed under the MIT license found in the
8
8
  * LICENSE file in the root directory of this source tree.
9
9
  */
10
- import { baseFlattenTree, getTopDownAncestors, fFindNodeById, getNodeAncestors, findNestedChildren } from '@hi-ui/tree-utils';
10
+ import { baseFlattenTree, getTopDownAncestors, getNodeAncestors, findNestedChildren } from '@hi-ui/tree-utils';
11
11
  import { isArrayNonEmpty } from '@hi-ui/type-assertion';
12
12
 
13
13
  /**
@@ -96,10 +96,13 @@ function getCascaderItemEventData(node, requiredProps) {
96
96
  */
97
97
  var processCheckedIds = function processCheckedIds(type, checkedIds, flattenData, allowCheck) {
98
98
  var keySet = new Set(checkedIds);
99
+ var flattenDataMap = new Map(flattenData.map(function (node) {
100
+ return [node.id, node];
101
+ }));
99
102
  switch (type) {
100
103
  case 'CHILD':
101
104
  return checkedIds.filter(function (id) {
102
- var node = fFindNodeById(flattenData, id);
105
+ var node = flattenDataMap.get(id);
103
106
  if (node) {
104
107
  var children = node.children;
105
108
  if (isArrayNonEmpty(children)) {
@@ -115,7 +118,7 @@ var processCheckedIds = function processCheckedIds(type, checkedIds, flattenData
115
118
  });
116
119
  case 'PARENT':
117
120
  return checkedIds.filter(function (id) {
118
- var node = fFindNodeById(flattenData, id);
121
+ var node = flattenDataMap.get(id);
119
122
  if (node) {
120
123
  // 向上递归遍历是否被勾选
121
124
  var ancestors = getNodeAncestors(node);
@@ -30,6 +30,11 @@ export interface CascaderMenusProps {
30
30
  * 设置选择项数据源
31
31
  */
32
32
  flattedData: FlattedCheckCascaderDataItem[];
33
+ /**
34
+ * 未被过滤的选择项数据源,Hotfix:https://github.com/XiaoMi/hiui/issues/2992
35
+ * @private
36
+ */
37
+ originalFlattedData: FlattedCheckCascaderDataItem[];
33
38
  /**
34
39
  * 设置当前多选值
35
40
  */
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@hi-ui/check-cascader",
3
- "version": "4.3.0",
3
+ "version": "4.3.1-alpha.1",
4
4
  "description": "A sub-package for @hi-ui/hiui.",
5
5
  "keywords": [],
6
6
  "author": "HiUI <mi-hiui@xiaomi.com>",