@douyinfe/semi-foundation 2.54.0 → 2.55.0-beta.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -31,7 +31,7 @@ export interface NavigationAdapter<P = Record<string, any>, S = Record<string, a
31
31
  }): void;
32
32
  addSelectedKeys(...keys: (string | number)[]): void;
33
33
  removeSelectedKeys(...keys: (string | number)[]): void;
34
- updateSelectedKeys(keys: (string | number)[]): void;
34
+ updateSelectedKeys(keys: (string | number)[], includeParentKeys?: boolean): void;
35
35
  updateOpenKeys(keys: (string | number)[]): void;
36
36
  addOpenKeys(...keys: (string | number)[]): void;
37
37
  removeOpenKeys(...keys: (string | number)[]): void;
@@ -48,7 +48,7 @@ export default class NavigationFoundation<P = Record<string, any>, S = Record<st
48
48
  * @param {*} lifecycle
49
49
  * @returns
50
50
  */
51
- init(lifecycle: string): {
51
+ init(lifecycle?: string): {
52
52
  selectedKeys: any;
53
53
  itemKeysMap: {};
54
54
  openKeys: any[];
@@ -74,9 +74,9 @@ export default class NavigationFoundation<P = Record<string, any>, S = Record<st
74
74
  * @param {*} itemKeysMap
75
75
  */
76
76
  getWillOpenKeys(itemKeysMap: ItemKey2ParentKeysMap): any[];
77
- getShouldOpenKeys(itemKeysMap?: ItemKey2ParentKeysMap, selectedKeys?: string | number[]): unknown[];
77
+ getShouldOpenKeys(itemKeysMap?: ItemKey2ParentKeysMap, selectedKeys?: (string | number)[]): unknown[];
78
78
  destroy(): void;
79
- selectLevelZeroParentKeys(itemKeysMap: ItemKey2ParentKeysMap, ...itemKeys: (string | number)[]): any[];
79
+ selectLevelZeroParentKeys(itemKeysMap: ItemKey2ParentKeysMap, itemKeys: (string | number)[]): any[];
80
80
  formatItems(items?: ItemProps[]): any[];
81
81
  handleSelect(data: OnSelectData): void;
82
82
  judgeIfOpen(openKeys: (string | number)[], items: NavItemType[]): boolean;
@@ -89,7 +89,8 @@ class NavigationFoundation extends _foundation.default {
89
89
  items: formattedItems
90
90
  };
91
91
  } else {
92
- this._adapter.updateSelectedKeys(willSelectedKeys);
92
+ // already include parentSelectKeys, set second parameter to false
93
+ this._adapter.updateSelectedKeys(willSelectedKeys, false);
93
94
  this._adapter.setItemKeysMap(itemKeysMap);
94
95
  this._adapter.updateOpenKeys(willOpenKeys);
95
96
  this._adapter.updateItems(formattedItems);
@@ -140,10 +141,14 @@ class NavigationFoundation extends _foundation.default {
140
141
  selectedKeys,
141
142
  mode
142
143
  } = this.getProps();
144
+ const {
145
+ openKeys: stateOpenKeys = []
146
+ } = this.getStates();
143
147
  let willOpenKeys = openKeys || defaultOpenKeys || [];
144
148
  if (!(Array.isArray(defaultOpenKeys) || Array.isArray(openKeys)) && mode === _constants.strings.MODE_VERTICAL && (Array.isArray(defaultSelectedKeys) || Array.isArray(selectedKeys))) {
145
149
  const currentSelectedKeys = Array.isArray(selectedKeys) ? selectedKeys : defaultSelectedKeys;
146
- willOpenKeys = this.getShouldOpenKeys(itemKeysMap, currentSelectedKeys);
150
+ willOpenKeys = stateOpenKeys.concat(this.getShouldOpenKeys(itemKeysMap, currentSelectedKeys));
151
+ willOpenKeys = Array.from(new Set(willOpenKeys));
147
152
  }
148
153
  return [...willOpenKeys];
149
154
  }
@@ -164,13 +169,10 @@ class NavigationFoundation extends _foundation.default {
164
169
  return [...willOpenKeySet];
165
170
  }
166
171
  destroy() {}
167
- selectLevelZeroParentKeys(itemKeysMap) {
172
+ selectLevelZeroParentKeys(itemKeysMap, itemKeys) {
168
173
  const _itemKeysMap = (0, _isNullOrUndefined.default)(itemKeysMap) ? this.getState('itemKeysMap') : itemKeysMap;
169
174
  // console.log(itemKeysMap);
170
175
  const willAddKeys = [];
171
- for (var _len2 = arguments.length, itemKeys = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {
172
- itemKeys[_key2 - 1] = arguments[_key2];
173
- }
174
176
  if (itemKeys.length) {
175
177
  for (const itemKey of itemKeys) {
176
178
  if (Array.isArray(_itemKeysMap[itemKey]) && _itemKeysMap[itemKey].length) {
@@ -31,7 +31,7 @@ export interface NavigationAdapter<P = Record<string, any>, S = Record<string, a
31
31
  }): void;
32
32
  addSelectedKeys(...keys: (string | number)[]): void;
33
33
  removeSelectedKeys(...keys: (string | number)[]): void;
34
- updateSelectedKeys(keys: (string | number)[]): void;
34
+ updateSelectedKeys(keys: (string | number)[], includeParentKeys?: boolean): void;
35
35
  updateOpenKeys(keys: (string | number)[]): void;
36
36
  addOpenKeys(...keys: (string | number)[]): void;
37
37
  removeOpenKeys(...keys: (string | number)[]): void;
@@ -48,7 +48,7 @@ export default class NavigationFoundation<P = Record<string, any>, S = Record<st
48
48
  * @param {*} lifecycle
49
49
  * @returns
50
50
  */
51
- init(lifecycle: string): {
51
+ init(lifecycle?: string): {
52
52
  selectedKeys: any;
53
53
  itemKeysMap: {};
54
54
  openKeys: any[];
@@ -74,9 +74,9 @@ export default class NavigationFoundation<P = Record<string, any>, S = Record<st
74
74
  * @param {*} itemKeysMap
75
75
  */
76
76
  getWillOpenKeys(itemKeysMap: ItemKey2ParentKeysMap): any[];
77
- getShouldOpenKeys(itemKeysMap?: ItemKey2ParentKeysMap, selectedKeys?: string | number[]): unknown[];
77
+ getShouldOpenKeys(itemKeysMap?: ItemKey2ParentKeysMap, selectedKeys?: (string | number)[]): unknown[];
78
78
  destroy(): void;
79
- selectLevelZeroParentKeys(itemKeysMap: ItemKey2ParentKeysMap, ...itemKeys: (string | number)[]): any[];
79
+ selectLevelZeroParentKeys(itemKeysMap: ItemKey2ParentKeysMap, itemKeys: (string | number)[]): any[];
80
80
  formatItems(items?: ItemProps[]): any[];
81
81
  handleSelect(data: OnSelectData): void;
82
82
  judgeIfOpen(openKeys: (string | number)[], items: NavItemType[]): boolean;
@@ -82,7 +82,8 @@ export default class NavigationFoundation extends BaseFoundation {
82
82
  items: formattedItems
83
83
  };
84
84
  } else {
85
- this._adapter.updateSelectedKeys(willSelectedKeys);
85
+ // already include parentSelectKeys, set second parameter to false
86
+ this._adapter.updateSelectedKeys(willSelectedKeys, false);
86
87
  this._adapter.setItemKeysMap(itemKeysMap);
87
88
  this._adapter.updateOpenKeys(willOpenKeys);
88
89
  this._adapter.updateItems(formattedItems);
@@ -133,10 +134,14 @@ export default class NavigationFoundation extends BaseFoundation {
133
134
  selectedKeys,
134
135
  mode
135
136
  } = this.getProps();
137
+ const {
138
+ openKeys: stateOpenKeys = []
139
+ } = this.getStates();
136
140
  let willOpenKeys = openKeys || defaultOpenKeys || [];
137
141
  if (!(Array.isArray(defaultOpenKeys) || Array.isArray(openKeys)) && mode === strings.MODE_VERTICAL && (Array.isArray(defaultSelectedKeys) || Array.isArray(selectedKeys))) {
138
142
  const currentSelectedKeys = Array.isArray(selectedKeys) ? selectedKeys : defaultSelectedKeys;
139
- willOpenKeys = this.getShouldOpenKeys(itemKeysMap, currentSelectedKeys);
143
+ willOpenKeys = stateOpenKeys.concat(this.getShouldOpenKeys(itemKeysMap, currentSelectedKeys));
144
+ willOpenKeys = Array.from(new Set(willOpenKeys));
140
145
  }
141
146
  return [...willOpenKeys];
142
147
  }
@@ -157,13 +162,10 @@ export default class NavigationFoundation extends BaseFoundation {
157
162
  return [...willOpenKeySet];
158
163
  }
159
164
  destroy() {}
160
- selectLevelZeroParentKeys(itemKeysMap) {
165
+ selectLevelZeroParentKeys(itemKeysMap, itemKeys) {
161
166
  const _itemKeysMap = isNullOrUndefined(itemKeysMap) ? this.getState('itemKeysMap') : itemKeysMap;
162
167
  // console.log(itemKeysMap);
163
168
  const willAddKeys = [];
164
- for (var _len2 = arguments.length, itemKeys = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {
165
- itemKeys[_key2 - 1] = arguments[_key2];
166
- }
167
169
  if (itemKeys.length) {
168
170
  for (const itemKey of itemKeys) {
169
171
  if (Array.isArray(_itemKeysMap[itemKey]) && _itemKeysMap[itemKey].length) {
@@ -39,7 +39,7 @@ export interface NavigationAdapter<P = Record<string, any>, S = Record<string, a
39
39
  setItemKeysMap(map: { [key: string]: (string | number)[] }): void;
40
40
  addSelectedKeys(...keys: (string | number)[]): void;
41
41
  removeSelectedKeys(...keys: (string | number)[]): void;
42
- updateSelectedKeys(keys: (string | number)[]): void;
42
+ updateSelectedKeys(keys: (string | number)[], includeParentKeys?: boolean): void;
43
43
  updateOpenKeys(keys: (string | number)[]): void;
44
44
  addOpenKeys(...keys: (string | number)[]): void;
45
45
  removeOpenKeys(...keys: (string | number)[]): void;
@@ -114,7 +114,7 @@ export default class NavigationFoundation<P = Record<string, any>, S = Record<st
114
114
  * @param {*} lifecycle
115
115
  * @returns
116
116
  */
117
- init(lifecycle: string) {
117
+ init(lifecycle?: string) {
118
118
  const { defaultSelectedKeys, selectedKeys } = this.getProps();
119
119
  let willSelectedKeys = selectedKeys || defaultSelectedKeys || [];
120
120
  const { itemKeysMap, willOpenKeys, formattedItems } = this.getCalcState();
@@ -129,7 +129,8 @@ export default class NavigationFoundation<P = Record<string, any>, S = Record<st
129
129
  items: formattedItems,
130
130
  };
131
131
  } else {
132
- this._adapter.updateSelectedKeys(willSelectedKeys);
132
+ // already include parentSelectKeys, set second parameter to false
133
+ this._adapter.updateSelectedKeys(willSelectedKeys, false);
133
134
  this._adapter.setItemKeysMap(itemKeysMap);
134
135
  this._adapter.updateOpenKeys(willOpenKeys);
135
136
  this._adapter.updateItems(formattedItems);
@@ -167,6 +168,7 @@ export default class NavigationFoundation<P = Record<string, any>, S = Record<st
167
168
  */
168
169
  getWillOpenKeys(itemKeysMap: ItemKey2ParentKeysMap) {
169
170
  const { defaultOpenKeys, openKeys, defaultSelectedKeys, selectedKeys, mode } = this.getProps();
171
+ const { openKeys: stateOpenKeys = [] } = this.getStates();
170
172
 
171
173
  let willOpenKeys = openKeys || defaultOpenKeys || [];
172
174
  if (
@@ -174,12 +176,13 @@ export default class NavigationFoundation<P = Record<string, any>, S = Record<st
174
176
  Array.isArray(openKeys)) && mode === strings.MODE_VERTICAL && (Array.isArray(defaultSelectedKeys) || Array.isArray(selectedKeys))
175
177
  ) {
176
178
  const currentSelectedKeys = Array.isArray(selectedKeys) ? selectedKeys : defaultSelectedKeys;
177
- willOpenKeys = this.getShouldOpenKeys(itemKeysMap, currentSelectedKeys);
179
+ willOpenKeys = stateOpenKeys.concat(this.getShouldOpenKeys(itemKeysMap, currentSelectedKeys));
180
+ willOpenKeys = Array.from(new Set(willOpenKeys));
178
181
  }
179
182
  return [...willOpenKeys];
180
183
  }
181
184
 
182
- getShouldOpenKeys(itemKeysMap: ItemKey2ParentKeysMap = {}, selectedKeys: string | number[]= []) {
185
+ getShouldOpenKeys(itemKeysMap: ItemKey2ParentKeysMap = {}, selectedKeys: (string | number)[] = []) {
183
186
  const willOpenKeySet = new Set();
184
187
 
185
188
  if (Array.isArray(selectedKeys) && selectedKeys.length) {
@@ -199,7 +202,7 @@ export default class NavigationFoundation<P = Record<string, any>, S = Record<st
199
202
 
200
203
  destroy() {}
201
204
 
202
- selectLevelZeroParentKeys(itemKeysMap: ItemKey2ParentKeysMap, ...itemKeys: (string | number)[]) {
205
+ selectLevelZeroParentKeys(itemKeysMap: ItemKey2ParentKeysMap, itemKeys: (string | number)[]) {
203
206
  const _itemKeysMap = isNullOrUndefined(itemKeysMap) ? this.getState('itemKeysMap') : itemKeysMap;
204
207
  // console.log(itemKeysMap);
205
208
 
package/package.json CHANGED
@@ -1,13 +1,13 @@
1
1
  {
2
2
  "name": "@douyinfe/semi-foundation",
3
- "version": "2.54.0",
3
+ "version": "2.55.0-beta.0",
4
4
  "description": "",
5
5
  "scripts": {
6
6
  "build:lib": "node ./scripts/compileLib.js",
7
7
  "prepublishOnly": "npm run build:lib"
8
8
  },
9
9
  "dependencies": {
10
- "@douyinfe/semi-animation": "2.54.0",
10
+ "@douyinfe/semi-animation": "2.55.0-beta.0",
11
11
  "async-validator": "^3.5.0",
12
12
  "classnames": "^2.2.6",
13
13
  "date-fns": "^2.29.3",
@@ -24,7 +24,7 @@
24
24
  "*.scss",
25
25
  "*.css"
26
26
  ],
27
- "gitHead": "30c24d26549ecb166625ef4f0a731235b71968fc",
27
+ "gitHead": "1b20ba60f41785e247a71987235b5f3bbd577ff0",
28
28
  "devDependencies": {
29
29
  "@babel/plugin-transform-runtime": "^7.15.8",
30
30
  "@babel/preset-env": "^7.15.8",