zmdms-webui 3.1.2 → 3.1.3

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.
@@ -0,0 +1,21 @@
1
+ import { LocalStorageAdapter } from './localStorageAdapter.js';
2
+ import { IndexedDBAdapter } from './indexedDBAdapter.js';
3
+
4
+ /**
5
+ * 创建存储适配器
6
+ * @param config 存储配置
7
+ * @returns 存储适配器实例
8
+ */
9
+ function createStorageAdapter(config) {
10
+ var type = (config === null || config === void 0 ? void 0 : config.type) || "localStorage";
11
+ if (type === "indexedDB") {
12
+ return new IndexedDBAdapter({
13
+ dbName: config === null || config === void 0 ? void 0 : config.dbName,
14
+ storeName: config === null || config === void 0 ? void 0 : config.storeName,
15
+ });
16
+ }
17
+ // 默认使用 localStorage
18
+ return new LocalStorageAdapter();
19
+ }
20
+
21
+ export { IndexedDBAdapter, LocalStorageAdapter, createStorageAdapter };
@@ -0,0 +1,79 @@
1
+ import { __awaiter, __generator } from '../../_virtual/_tslib.js';
2
+ import localforage from '../../node_modules/localforage/dist/localforage.js';
3
+
4
+ /**
5
+ * IndexedDB 存储适配器
6
+ * 使用 localforage 库实现异步操作
7
+ */
8
+ var IndexedDBAdapter = /** @class */ (function () {
9
+ function IndexedDBAdapter(config) {
10
+ this.instance = localforage.createInstance({
11
+ name: (config === null || config === void 0 ? void 0 : config.dbName) || "zmdms_dynamic_setting",
12
+ storeName: (config === null || config === void 0 ? void 0 : config.storeName) || "dynamic_settings",
13
+ driver: localforage.INDEXEDDB,
14
+ });
15
+ }
16
+ IndexedDBAdapter.prototype.getItem = function (key) {
17
+ return __awaiter(this, void 0, void 0, function () {
18
+ var value, err_1;
19
+ return __generator(this, function (_a) {
20
+ switch (_a.label) {
21
+ case 0:
22
+ _a.trys.push([0, 2, , 3]);
23
+ return [4 /*yield*/, this.instance.getItem(key)];
24
+ case 1:
25
+ value = _a.sent();
26
+ return [2 /*return*/, value !== null && value !== void 0 ? value : null];
27
+ case 2:
28
+ err_1 = _a.sent();
29
+ console.error("IndexedDB.getItem error:", err_1);
30
+ return [2 /*return*/, null];
31
+ case 3: return [2 /*return*/];
32
+ }
33
+ });
34
+ });
35
+ };
36
+ IndexedDBAdapter.prototype.setItem = function (key, value) {
37
+ return __awaiter(this, void 0, void 0, function () {
38
+ var err_2;
39
+ return __generator(this, function (_a) {
40
+ switch (_a.label) {
41
+ case 0:
42
+ _a.trys.push([0, 2, , 3]);
43
+ return [4 /*yield*/, this.instance.setItem(key, value)];
44
+ case 1:
45
+ _a.sent();
46
+ return [3 /*break*/, 3];
47
+ case 2:
48
+ err_2 = _a.sent();
49
+ console.error("IndexedDB.setItem error:", err_2);
50
+ return [3 /*break*/, 3];
51
+ case 3: return [2 /*return*/];
52
+ }
53
+ });
54
+ });
55
+ };
56
+ IndexedDBAdapter.prototype.removeItem = function (key) {
57
+ return __awaiter(this, void 0, void 0, function () {
58
+ var err_3;
59
+ return __generator(this, function (_a) {
60
+ switch (_a.label) {
61
+ case 0:
62
+ _a.trys.push([0, 2, , 3]);
63
+ return [4 /*yield*/, this.instance.removeItem(key)];
64
+ case 1:
65
+ _a.sent();
66
+ return [3 /*break*/, 3];
67
+ case 2:
68
+ err_3 = _a.sent();
69
+ console.error("IndexedDB.removeItem error:", err_3);
70
+ return [3 /*break*/, 3];
71
+ case 3: return [2 /*return*/];
72
+ }
73
+ });
74
+ });
75
+ };
76
+ return IndexedDBAdapter;
77
+ }());
78
+
79
+ export { IndexedDBAdapter };
@@ -0,0 +1,53 @@
1
+ import { __awaiter, __generator } from '../../_virtual/_tslib.js';
2
+
3
+ /**
4
+ * localStorage 存储适配器
5
+ * 将同步的 localStorage API 封装为异步 API
6
+ */
7
+ var LocalStorageAdapter = /** @class */ (function () {
8
+ function LocalStorageAdapter() {
9
+ }
10
+ LocalStorageAdapter.prototype.getItem = function (key) {
11
+ return __awaiter(this, void 0, void 0, function () {
12
+ return __generator(this, function (_a) {
13
+ try {
14
+ return [2 /*return*/, localStorage.getItem(key)];
15
+ }
16
+ catch (err) {
17
+ console.error("localStorage.getItem error:", err);
18
+ return [2 /*return*/, null];
19
+ }
20
+ return [2 /*return*/];
21
+ });
22
+ });
23
+ };
24
+ LocalStorageAdapter.prototype.setItem = function (key, value) {
25
+ return __awaiter(this, void 0, void 0, function () {
26
+ return __generator(this, function (_a) {
27
+ try {
28
+ localStorage.setItem(key, value);
29
+ }
30
+ catch (err) {
31
+ console.error("localStorage.setItem error:", err);
32
+ }
33
+ return [2 /*return*/];
34
+ });
35
+ });
36
+ };
37
+ LocalStorageAdapter.prototype.removeItem = function (key) {
38
+ return __awaiter(this, void 0, void 0, function () {
39
+ return __generator(this, function (_a) {
40
+ try {
41
+ localStorage.removeItem(key);
42
+ }
43
+ catch (err) {
44
+ console.error("localStorage.removeItem error:", err);
45
+ }
46
+ return [2 /*return*/];
47
+ });
48
+ });
49
+ };
50
+ return LocalStorageAdapter;
51
+ }());
52
+
53
+ export { LocalStorageAdapter };
@@ -0,0 +1,56 @@
1
+ import { useState, useCallback } from 'react';
2
+ import { getSetDynamicKey } from './useAsyncDynamic.js';
3
+ import '../config/ZtxkContext.js';
4
+ import useBaseContext from '../config/useBaseContext.js';
5
+ import '../config/MyStorage.js';
6
+
7
+ function useAsyncDrawer(currentDynamicList, setCurrentDynamicList, dynamicKey, parentDynamicKey, setTempDynamicList, list, onCurrentListChange, adapter) {
8
+ // 控制抽屉显示隐藏
9
+ var _a = useState(false), visible = _a[0], setVisible = _a[1];
10
+ var customConfigFetch = useBaseContext().customConfigFetch;
11
+ // 设置缓存数据的方法
12
+ var setDynamicKey = useCallback(function () {
13
+ return getSetDynamicKey(adapter, parentDynamicKey, "".concat(parentDynamicKey, "_lru_key"), customConfigFetch);
14
+ }, [parentDynamicKey, adapter, customConfigFetch]);
15
+ // 关闭
16
+ var onClose = useCallback(function () {
17
+ setVisible(false);
18
+ setTempDynamicList(currentDynamicList);
19
+ }, [setTempDynamicList, currentDynamicList]);
20
+ // 重置 (回到用户配置状态)
21
+ var onReset = useCallback(function () {
22
+ setVisible(false);
23
+ setCurrentDynamicList(list);
24
+ onCurrentListChange(list);
25
+ setTempDynamicList(list);
26
+ // 异步保存
27
+ setDynamicKey()(dynamicKey, list);
28
+ // eslint-disable-next-line react-hooks/exhaustive-deps
29
+ }, [
30
+ list,
31
+ setCurrentDynamicList,
32
+ dynamicKey,
33
+ setDynamicKey,
34
+ setTempDynamicList,
35
+ ]);
36
+ // 确认修改
37
+ var onSure = useCallback(function (newList) {
38
+ setVisible(false);
39
+ setCurrentDynamicList(newList);
40
+ setTempDynamicList(newList);
41
+ onCurrentListChange(newList);
42
+ // 异步保存
43
+ setDynamicKey()(dynamicKey, newList);
44
+ },
45
+ // eslint-disable-next-line react-hooks/exhaustive-deps
46
+ [setCurrentDynamicList, dynamicKey, setDynamicKey, setTempDynamicList]);
47
+ return {
48
+ visible: visible,
49
+ setVisible: setVisible,
50
+ onClose: onClose,
51
+ onReset: onReset,
52
+ onSure: onSure,
53
+ };
54
+ }
55
+
56
+ export { useAsyncDrawer };
@@ -0,0 +1,254 @@
1
+ import { __awaiter, __generator, __assign } from '../_virtual/_tslib.js';
2
+ import { useState, useEffect } from 'react';
3
+
4
+ var LRU_MAX_SIZE = 1000;
5
+ /**
6
+ * 递归处理动态配置项 - 将缓存数据合并到配置列表中
7
+ */
8
+ function recursionDynamicItems(list, currentDynamicList) {
9
+ list.forEach(function (item, index) {
10
+ var _a;
11
+ var result = __assign({ checked: true }, item);
12
+ var currentData = (_a = currentDynamicList === null || currentDynamicList === void 0 ? void 0 : currentDynamicList.find) === null || _a === void 0 ? void 0 : _a.call(currentDynamicList, function (currentDynamic) { return currentDynamic.key === result.key; });
13
+ if (currentData) {
14
+ currentData.label = result.label;
15
+ currentData.isFind = true;
16
+ currentData.disabled = result.disabled;
17
+ currentData.isDimension = result.isDimension;
18
+ currentData.dimensionPriority = result.dimensionPriority;
19
+ currentData.dimensionGroup = result.dimensionGroup;
20
+ currentData.dimensionExclusive = result.dimensionExclusive;
21
+ if (item.children) {
22
+ var children = item.children;
23
+ if (!currentData.children) {
24
+ currentData.children = [];
25
+ }
26
+ var dynamicChildren = currentData.children;
27
+ recursionDynamicItems(children, dynamicChildren);
28
+ }
29
+ }
30
+ else {
31
+ var resultChildren = null;
32
+ if (Array.isArray(result.children) && result.children.length > 0) {
33
+ resultChildren = recursionAddFind(result.children);
34
+ }
35
+ if (resultChildren) {
36
+ result.children = resultChildren;
37
+ }
38
+ if (index <= currentDynamicList.length - 1) {
39
+ currentDynamicList.splice(index, 0, __assign(__assign({}, result), { isFind: true }));
40
+ if (result.indexs) {
41
+ var recursionIndexs_1 = function (dynamicList, indexs, parentIndex) {
42
+ if (Array.isArray(dynamicList)) {
43
+ dynamicList.forEach(function (item, index) {
44
+ var newIndexs = indexs ? indexs.slice() : [];
45
+ newIndexs.push(parentIndex ? parentIndex + index : index);
46
+ item.indexs = newIndexs;
47
+ if (Array.isArray(item.children)) {
48
+ recursionIndexs_1(item.children, indexs);
49
+ }
50
+ });
51
+ }
52
+ };
53
+ recursionIndexs_1(currentDynamicList.slice(index + 1), [], index + 1);
54
+ }
55
+ }
56
+ else {
57
+ currentDynamicList.push(__assign(__assign({}, result), { isFind: true }));
58
+ }
59
+ }
60
+ });
61
+ }
62
+ function recursionAddFind(list) {
63
+ var newList = [];
64
+ list.forEach(function (item) {
65
+ var newItem = __assign(__assign({}, item), { checked: item.checked !== undefined ? item.checked : true });
66
+ if (newItem.children) {
67
+ newItem.children = recursionAddFind(newItem.children);
68
+ }
69
+ newList.push(__assign(__assign({}, newItem), { isFind: true }));
70
+ });
71
+ return newList;
72
+ }
73
+ function recursionDeleteDynamicItems(currentDynamicList) {
74
+ return currentDynamicList
75
+ .filter(function (item) {
76
+ if (item.isFind) {
77
+ if (Array.isArray(item.children)) {
78
+ item.children = recursionDeleteDynamicItems(item.children);
79
+ }
80
+ return true;
81
+ }
82
+ return false;
83
+ })
84
+ .map(function (item) {
85
+ var result = __assign({}, item);
86
+ Reflect.deleteProperty(result, "isFind");
87
+ return result;
88
+ });
89
+ }
90
+ /**
91
+ * 异步获取动态配置项
92
+ */
93
+ function getDynamicItems(adapter, dynamicKey, parentDynamicKey, list) {
94
+ return __awaiter(this, void 0, void 0, function () {
95
+ var dynamicList, objStr, obj, err_1, currentDynamicList;
96
+ return __generator(this, function (_a) {
97
+ switch (_a.label) {
98
+ case 0:
99
+ if (!parentDynamicKey || !Array.isArray(list)) {
100
+ return [2 /*return*/, []];
101
+ }
102
+ dynamicList = [];
103
+ _a.label = 1;
104
+ case 1:
105
+ _a.trys.push([1, 3, , 4]);
106
+ return [4 /*yield*/, adapter.getItem(parentDynamicKey)];
107
+ case 2:
108
+ objStr = _a.sent();
109
+ obj = objStr ? JSON.parse(objStr) : {};
110
+ dynamicList = dynamicKey ? obj[dynamicKey] : [];
111
+ return [3 /*break*/, 4];
112
+ case 3:
113
+ err_1 = _a.sent();
114
+ console.log("getDynamicItems error:", err_1);
115
+ return [3 /*break*/, 4];
116
+ case 4:
117
+ currentDynamicList = Array.isArray(dynamicList) && dynamicList.length > 0 ? dynamicList : [];
118
+ if (!dynamicList || dynamicList.length === 0) {
119
+ list.forEach(function (item) {
120
+ var result = __assign(__assign({}, item), { checked: item.checked !== undefined ? item.checked : true });
121
+ if (result.children) {
122
+ result.children = recursionAddFind(result.children);
123
+ }
124
+ currentDynamicList.push(__assign(__assign({}, result), { isFind: true }));
125
+ });
126
+ }
127
+ else {
128
+ recursionDynamicItems(list, currentDynamicList);
129
+ }
130
+ return [2 /*return*/, recursionDeleteDynamicItems(currentDynamicList)];
131
+ }
132
+ });
133
+ });
134
+ }
135
+ /**
136
+ * 获取设置动态键的函数
137
+ */
138
+ function getSetDynamicKey(adapter, LOCAL_STORAGE_KEY, LOCAL_STORAGE_LRU_KEY, customConfigFetch) {
139
+ var _this = this;
140
+ return function (dynamicStorageKey, value) { return __awaiter(_this, void 0, void 0, function () {
141
+ var obj, lruKeys, objStr, lruStr, err_2, currentKeyIndex, length, oldKey, data, lruData;
142
+ return __generator(this, function (_a) {
143
+ switch (_a.label) {
144
+ case 0:
145
+ obj = {};
146
+ lruKeys = [];
147
+ _a.label = 1;
148
+ case 1:
149
+ _a.trys.push([1, 4, , 5]);
150
+ return [4 /*yield*/, adapter.getItem(LOCAL_STORAGE_KEY)];
151
+ case 2:
152
+ objStr = _a.sent();
153
+ return [4 /*yield*/, adapter.getItem(LOCAL_STORAGE_LRU_KEY)];
154
+ case 3:
155
+ lruStr = _a.sent();
156
+ obj = objStr ? JSON.parse(objStr) : {};
157
+ lruKeys = lruStr ? JSON.parse(lruStr) : [];
158
+ return [3 /*break*/, 5];
159
+ case 4:
160
+ err_2 = _a.sent();
161
+ console.error("getSetDynamicKey error:", err_2);
162
+ return [3 /*break*/, 5];
163
+ case 5:
164
+ if (lruKeys.length !== Object.keys(obj).length) {
165
+ lruKeys = Object.keys(obj);
166
+ }
167
+ currentKeyIndex = lruKeys.findIndex(function (lruKey) { return lruKey === dynamicStorageKey; });
168
+ if (currentKeyIndex !== -1) {
169
+ lruKeys.splice(currentKeyIndex, 1);
170
+ lruKeys.push(dynamicStorageKey);
171
+ }
172
+ else {
173
+ lruKeys.push(dynamicStorageKey);
174
+ }
175
+ length = lruKeys.length;
176
+ if (length > LRU_MAX_SIZE) {
177
+ oldKey = lruKeys.shift();
178
+ try {
179
+ delete obj[oldKey];
180
+ }
181
+ catch (err) {
182
+ //
183
+ }
184
+ }
185
+ obj[dynamicStorageKey] = value;
186
+ data = JSON.stringify(obj);
187
+ lruData = JSON.stringify(lruKeys);
188
+ return [4 /*yield*/, adapter.setItem(LOCAL_STORAGE_KEY, data)];
189
+ case 6:
190
+ _a.sent();
191
+ return [4 /*yield*/, adapter.setItem(LOCAL_STORAGE_LRU_KEY, lruData)];
192
+ case 7:
193
+ _a.sent();
194
+ try {
195
+ customConfigFetch === null || customConfigFetch === void 0 ? void 0 : customConfigFetch({
196
+ customKey: LOCAL_STORAGE_KEY,
197
+ customValue: data,
198
+ mark: "表单动态列配置缓存数据-新版组件库",
199
+ });
200
+ customConfigFetch === null || customConfigFetch === void 0 ? void 0 : customConfigFetch({
201
+ customKey: LOCAL_STORAGE_LRU_KEY,
202
+ customValue: lruData,
203
+ mark: "表单动态列配置缓存LRUKey数据-新版组件库",
204
+ });
205
+ }
206
+ catch (err) {
207
+ console.error("\u8BBE\u7F6E\u52A8\u6001\u5217\u7F13\u5B58\u6570\u636E\u5931\u8D25!", err);
208
+ }
209
+ return [2 /*return*/];
210
+ }
211
+ });
212
+ }); };
213
+ }
214
+ /**
215
+ * 获取当前动态配置项
216
+ */
217
+ function getCurrentDynamicItems(adapter, dynamicKey, parentDynamicKey, list) {
218
+ return getDynamicItems(adapter, dynamicKey, parentDynamicKey, list || []);
219
+ }
220
+ /**
221
+ * useAsyncDynamic Hook
222
+ * 统一异步存储的动态配置
223
+ */
224
+ function useAsyncDynamic(dynamicKey, parentDynamicKey, list, adapter) {
225
+ // 初始状态使用传入的 list,避免闪烁
226
+ var _a = useState(list), currentDynamicList = _a[0], setCurrentDynamicList = _a[1];
227
+ var _b = useState(list), tempDynamicList = _b[0], setTempDynamicList = _b[1];
228
+ var _c = useState(false), isReady = _c[0], setIsReady = _c[1];
229
+ // 异步加载存储数据
230
+ useEffect(function () {
231
+ var cancelled = false;
232
+ getDynamicItems(adapter, dynamicKey, parentDynamicKey, list).then(function (result) {
233
+ if (!cancelled) {
234
+ setCurrentDynamicList(result);
235
+ setTempDynamicList(result);
236
+ setIsReady(true);
237
+ }
238
+ });
239
+ return function () {
240
+ cancelled = true;
241
+ };
242
+ // eslint-disable-next-line react-hooks/exhaustive-deps
243
+ }, [dynamicKey, parentDynamicKey, adapter, list]);
244
+ return {
245
+ currentDynamicList: currentDynamicList,
246
+ setCurrentDynamicList: setCurrentDynamicList,
247
+ tempDynamicList: tempDynamicList,
248
+ setTempDynamicList: setTempDynamicList,
249
+ isReady: isReady,
250
+ adapter: adapter,
251
+ };
252
+ }
253
+
254
+ export { getCurrentDynamicItems, getSetDynamicKey, useAsyncDynamic };
@@ -0,0 +1,98 @@
1
+ import { __spreadArray } from '../_virtual/_tslib.js';
2
+ import { useState } from 'react';
3
+ import myMessage from '../message/index.js';
4
+
5
+ function useSearch(dynamicList, checkedValues, isDimensionDynamic) {
6
+ // 过滤后的可见列集合(仅操作此集合中的列)
7
+ var _a = useState(null), filterDynamicColumns = _a[0], setFilterDynamicColumns = _a[1];
8
+ // 未参与过滤的列,但是选中了的值
9
+ var _b = useState([]), filterCheckedValues = _b[0], setFilterCheckedValues = _b[1];
10
+ /**
11
+ * @description 表格列动态显示/隐藏 - 全选/反选按钮点击回调
12
+ * @author (可补充作者姓名)
13
+ * @param {('all' | 'inverse')} type - 操作类型:'all' 全选(仅对「过滤后可见+可动态操作」列生效),'inverse' 反选(同上)
14
+ * @see dynamicColumns - 原始完整表格列集合(包含所有列)
15
+ * @see filterDynamicColumns - 过滤后的可见列集合(仅操作此集合中的列)
16
+ * @see checkedValues - 已选中的列 key 集合(状态变量)
17
+ * @see setCheckedValues - 更新选中列的状态函数
18
+ * @note 核心规则(解决「过滤后操作不影响过滤前数据」的核心诉求):
19
+ * 1. 操作范围严格限制:仅对「过滤后可见列(filterDynamicColumns 优先,无则 dynamicColumns)+ 可动态操作(isNoDynamicHide: false)」的列生效
20
+ * 2. 过滤后隐藏的列(未在 targetColumns 中):无论是否可动态,均不参与全选/反选,保持其原始选中状态不变
21
+ * 3. 禁止动态隐藏的列(isNoDynamicHide: true):即使在过滤后可见,也不参与全选/反选,保持原始选中状态
22
+ * 4. 仅当操作后选中状态发生变化时才更新,避免无效渲染
23
+ */
24
+ var onCheckBtn = function (type, onCheckboxChange) {
25
+ if (isDimensionDynamic) {
26
+ myMessage.warn("维度列不支持全选/反选");
27
+ return;
28
+ }
29
+ // 1. 确定操作的目标列集合:仅对「过滤后可见列」操作(优先 filterDynamicColumns,无则用 dynamicColumns)
30
+ var targetColumns = filterDynamicColumns !== null && filterDynamicColumns !== void 0 ? filterDynamicColumns : dynamicList;
31
+ // 2. 拆分目标列中的两类列(仅在可见列范围内处理)
32
+ // 2.1 「可操作列」:过滤后可见 + 允许动态隐藏(isNoDynamicHide: false)→ 参与全选/反选
33
+ var operableKeys = targetColumns
34
+ .filter(function (column) { return !column.disabled; })
35
+ .map(function (column) { return column.key; });
36
+ var operableLen = operableKeys.length;
37
+ // 2.2 「不可操作列」:过滤后可见 + 禁止动态隐藏(isNoDynamicHide: true)→ 不参与操作,保留原选中状态
38
+ var visibleNonOperableKeys = targetColumns
39
+ .filter(function (column) { return column.disabled; })
40
+ .map(function (column) { return column.key; });
41
+ // 3. 拆分当前已选中的 keys(确保「过滤后隐藏的列」状态不变)
42
+ // 3.1 已选中的「过滤后隐藏的列」:无论是否可动态,均保留原状态(不参与本次操作)
43
+ var hiddenCheckedKeys = checkedValues.filter(function (key) { return !targetColumns.some(function (column) { return column.key === key; }); } // 不在目标列(过滤后隐藏)的选中项
44
+ );
45
+ // 3.2 已选中的「可见不可操作列」:保留原选中状态
46
+ var visibleNonOperableCheckedKeys = checkedValues.filter(function (key) {
47
+ return visibleNonOperableKeys.includes(key);
48
+ });
49
+ // 3.3 已选中的「可见可操作列」:参与本次全选/反选
50
+ var operableCheckedKeys = checkedValues.filter(function (key) {
51
+ return operableKeys.includes(key);
52
+ });
53
+ // 4. 全选逻辑:仅选中「可见可操作列」,其他列(隐藏列、可见不可操作列)保持原状态
54
+ if (type === "all") {
55
+ // 边界判断:仅当「已选中的可操作列数 ≠ 可操作列总数」时才更新(避免无效渲染)
56
+ if (operableCheckedKeys.length !== operableLen) {
57
+ onCheckboxChange(__spreadArray(__spreadArray(__spreadArray(__spreadArray([], filterCheckedValues, true), operableKeys, true), visibleNonOperableCheckedKeys, true), hiddenCheckedKeys, true));
58
+ }
59
+ return;
60
+ }
61
+ // 5. 反选逻辑:仅反选「可见可操作列」,其他列保持原状态
62
+ var inversedOperableKeys = operableKeys.filter(function (key) { return !operableCheckedKeys.includes(key); });
63
+ onCheckboxChange(__spreadArray(__spreadArray(__spreadArray(__spreadArray([], filterCheckedValues, true), inversedOperableKeys, true), visibleNonOperableCheckedKeys, true), hiddenCheckedKeys, true));
64
+ };
65
+ /**
66
+ * @description 搜索过滤触发的回调
67
+ * @param value 搜索值
68
+ */
69
+ var onSearchHandle = function (value) {
70
+ if (!value) {
71
+ setFilterCheckedValues([]);
72
+ setFilterDynamicColumns(null);
73
+ return;
74
+ }
75
+ var filterColumns = dynamicList.filter(function (column) {
76
+ var _a, _b, _c;
77
+ var title = column.label || column.key;
78
+ return (_c = (_b = (_a = title === null || title === void 0 ? void 0 : title.toLowerCase) === null || _a === void 0 ? void 0 : _a.call(title)) === null || _b === void 0 ? void 0 : _b.includes) === null || _c === void 0 ? void 0 : _c.call(_b, value.toLowerCase());
79
+ });
80
+ // 未参与过滤的列,单独缓存起来
81
+ setFilterCheckedValues(checkedValues.filter(function (key) { return !filterColumns.find(function (column) { return column.key === key; }); }));
82
+ setFilterDynamicColumns(filterColumns);
83
+ };
84
+ return {
85
+ onSearchHandle: onSearchHandle,
86
+ onCheckBtn: onCheckBtn,
87
+ /** 未参与过滤的列,但是选中了的值 */
88
+ filterCheckedValues: filterCheckedValues,
89
+ /** 设置未参与过滤的列,但是选中了的值 */
90
+ setFilterCheckedValues: setFilterCheckedValues,
91
+ /** 过滤后的列 */
92
+ filterDynamicColumns: filterDynamicColumns,
93
+ /** 设置过滤后的列 */
94
+ setFilterDynamicColumns: setFilterDynamicColumns,
95
+ };
96
+ }
97
+
98
+ export { useSearch as default };
@@ -11,6 +11,9 @@ export { ILoginChildrenProps, default as Login } from './es/login/index.js';
11
11
  export { default as Icon } from './es/icon/index.js';
12
12
  export { default as IconOss } from './es/icon/icon-oss.js';
13
13
  export { default as DynamicSetting } from './es/dynamicsetting/dynamicSetting.js';
14
+ export { default as AsyncDynamicSetting } from './es/asyncdynamicsetting/asyncDynamicSetting.js';
15
+ export { IAsyncDynamicDrawerProps, IDynamicItem as IAsyncDynamicItem, IRef as IAsyncDynamicRef, IAsyncDynamicSettingProps, IFilter as IAsyncFilter, IStorageConfig, StorageType } from './es/asyncdynamicsetting/interface.js';
16
+ export { IStorageAdapter } from './es/asyncdynamicsetting/storage/IStorageAdapter.js';
14
17
  export { default as Form } from './es/form/form.js';
15
18
  export { default as FormItem } from './es/formitem/formItem.js';
16
19
  export { default as Container } from './es/container/container.js';