@voplus/morpho-workspace 10.0.26 → 10.0.27
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/es/modules/my-document/DocumentTableGroup/DocumentSection.js +72 -55
- package/es/modules/my-document/DocumentTableGroup/DocumentSection.js.map +1 -1
- package/es/modules/my-document/DocumentViewContext.d.ts +18 -13
- package/es/modules/my-document/DocumentViewContext.js +27 -65
- package/es/modules/my-document/DocumentViewContext.js.map +1 -1
- package/es/modules/my-document/FilterTabsBar/index.js +5 -5
- package/es/modules/my-document/FilterTabsBar/index.js.map +1 -1
- package/es/modules/my-document/FilterUI/TeamFilter/index.js +4 -4
- package/es/modules/my-document/FilterUI/TeamFilter/index.js.map +1 -1
- package/es/modules/my-document/FilterUI/WorkspaceFilter/index.js +4 -4
- package/es/modules/my-document/FilterUI/WorkspaceFilter/index.js.map +1 -1
- package/es/modules/my-document/SectionTemplate/DocumentTableUI/TableCell.js +30 -42
- package/es/modules/my-document/SectionTemplate/DocumentTableUI/TableCell.js.map +1 -1
- package/es/modules/my-document/SectionTemplate/DocumentTableUI/index.css +14 -6
- package/es/modules/my-document/SectionTemplate/DocumentTableUI/index.d.ts +2 -0
- package/es/modules/my-document/SectionTemplate/DocumentTableUI/index.js +48 -23
- package/es/modules/my-document/SectionTemplate/DocumentTableUI/index.js.map +1 -1
- package/es/modules/my-document/SectionTemplate/DocumentViewClass/index.d.ts +2 -0
- package/es/modules/my-document/SectionTemplate/DocumentViewClass/index.js +2 -2
- package/es/modules/my-document/SectionTemplate/DocumentViewClass/index.js.map +1 -1
- package/es/modules/my-document/SectionTemplate/GridUI/GridItem.d.ts +8 -0
- package/es/modules/my-document/SectionTemplate/GridUI/GridItem.js +38 -0
- package/es/modules/my-document/SectionTemplate/GridUI/GridItem.js.map +1 -0
- package/es/modules/my-document/SectionTemplate/GridUI/index.d.ts +2 -0
- package/es/modules/my-document/SectionTemplate/GridUI/index.js +9 -38
- package/es/modules/my-document/SectionTemplate/GridUI/index.js.map +1 -1
- package/es/modules/my-document/SectionTemplate/NoFilterEmpty.d.ts +7 -0
- package/es/modules/my-document/SectionTemplate/NoFilterEmpty.js +10 -0
- package/es/modules/my-document/SectionTemplate/NoFilterEmpty.js.map +1 -0
- package/package.json +1 -1
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import React, { useEffect, useState } from "react";
|
|
2
|
+
import { autorun, runInAction } from "mobx";
|
|
2
3
|
import { useOnDeleteDocument, useAutoUpdateListData, useDocumentListEffect, } from "@voplus/morpho-document-core";
|
|
3
|
-
import { useDocumentViewContext, INITIAL_PAGE } from "../DocumentViewContext";
|
|
4
|
+
import { useDocumentViewContext, INITIAL_PAGE, parentNodeFilterOptions, } from "../DocumentViewContext";
|
|
4
5
|
import { observe, useRenderOnChange, useAsideContentContext } from "@voplus/morpho-ui";
|
|
5
6
|
import { useOnPinDocument, useOnUnPinDocument, useOnFlagChange, } from "@voplus/morpho-document-core/es/data/DocumentStore/hooks/pin-events";
|
|
6
7
|
import { ListDataContext, useCreateListDataState } from "@voplus/morpho-ui/es/data";
|
|
@@ -31,8 +32,11 @@ const FLAG_GROUPS = [
|
|
|
31
32
|
*/
|
|
32
33
|
const DocumentSection = (props) => {
|
|
33
34
|
const { id } = props;
|
|
34
|
-
const {
|
|
35
|
+
const { onReload, filterOptions, pinned, personal, teamItems, workspaceItems, onRemoveTeamItem, onRemoveWorkspaceItem, onResetFilters, } = useDocumentViewContext();
|
|
35
36
|
const asideContext = useAsideContentContext();
|
|
37
|
+
/** 是否有任一过滤生效(Pin/Personal/team/workspace);均未选择时不发起任何查询,
|
|
38
|
+
* totals 归零 → buildGroupTree 过滤掉空分组 → 内容自然为空(empty means empty),UI 结构不变 */
|
|
39
|
+
const hasFilterScope = pinned || personal || teamItems.length > 0 || workspaceItems.length > 0;
|
|
36
40
|
const [starPage, setStarPage] = useState(INITIAL_PAGE);
|
|
37
41
|
const [urgentPage, setUrgentPage] = useState(INITIAL_PAGE);
|
|
38
42
|
const [nonePage, setNonePage] = useState(INITIAL_PAGE);
|
|
@@ -44,31 +48,27 @@ const DocumentSection = (props) => {
|
|
|
44
48
|
[setStarPage, setUrgentPage, setNonePage].forEach((setPage) => setPage((prev) => prev.Page === INITIAL_PAGE.Page && prev.PageSize === INITIAL_PAGE.PageSize
|
|
45
49
|
? prev
|
|
46
50
|
: INITIAL_PAGE));
|
|
47
|
-
}, [
|
|
48
|
-
/**
|
|
51
|
+
}, [pinned, personal]);
|
|
52
|
+
/** Pin/Personal/过滤条件变化时重置各分组总数并取消未完成的搜索防抖,避免短暂显示旧状态 */
|
|
49
53
|
useEffect(() => {
|
|
50
54
|
setTotals({});
|
|
51
55
|
if (searchTimerRef.current)
|
|
52
56
|
clearTimeout(searchTimerRef.current);
|
|
53
|
-
}, [
|
|
54
|
-
/**
|
|
57
|
+
}, [pinned, personal, filterOptions]);
|
|
58
|
+
/**
|
|
59
|
+
* 按 flag 构建当前过滤条件:Pin、Personal、team/workspace 相互独立、可同时生效。
|
|
60
|
+
* Personal 的目录 id 与 team/workspace 的 ParentNodeId 合并为单个 contains 条件,
|
|
61
|
+
* 避免出现两个 ParentNodeId;均无选中时只保留 Flag 分组条件。
|
|
62
|
+
*/
|
|
55
63
|
const onFilter = (flag) => {
|
|
56
|
-
|
|
64
|
+
const filters = [
|
|
57
65
|
{ c: "Flag", o: "contains", l: "And", v1: JSON.stringify([flag]) },
|
|
58
66
|
];
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
filters = [{ c: "Pin", l: "And", o: "=", v1: "True" }, ...filters];
|
|
62
|
-
break;
|
|
63
|
-
case "personal":
|
|
64
|
-
filters = [{ c: "ParentNodeId", o: "=", l: "And", v1: id }, ...filters];
|
|
65
|
-
break;
|
|
66
|
-
case "team":
|
|
67
|
-
case "workspace":
|
|
68
|
-
filters = filters.concat(filterOptions !== null && filterOptions !== void 0 ? filterOptions : []);
|
|
69
|
-
break;
|
|
67
|
+
if (pinned) {
|
|
68
|
+
filters.unshift({ c: "Pin", o: "=", l: "And", v1: "True" });
|
|
70
69
|
}
|
|
71
|
-
|
|
70
|
+
const parentFilter = parentNodeFilterOptions(teamItems, workspaceItems, personal ? id : undefined);
|
|
71
|
+
return parentFilter.concat(filters);
|
|
72
72
|
};
|
|
73
73
|
const starList = useCreateListDataState({
|
|
74
74
|
filterDefaults: {
|
|
@@ -76,43 +76,64 @@ const DocumentSection = (props) => {
|
|
|
76
76
|
filters: onFilter("Star"),
|
|
77
77
|
page: starPage,
|
|
78
78
|
},
|
|
79
|
-
}, [id, starPage,
|
|
79
|
+
}, [id, starPage, pinned, personal, filterOptions]);
|
|
80
80
|
const urgentList = useCreateListDataState({
|
|
81
81
|
filterDefaults: {
|
|
82
82
|
includes: "tags,permissions,createdby,folder",
|
|
83
83
|
filters: onFilter("Urgent"),
|
|
84
84
|
page: urgentPage,
|
|
85
85
|
},
|
|
86
|
-
}, [id, urgentPage,
|
|
86
|
+
}, [id, urgentPage, pinned, personal, filterOptions]);
|
|
87
87
|
const noneList = useCreateListDataState({
|
|
88
88
|
filterDefaults: {
|
|
89
89
|
includes: "tags,permissions,createdby,folder",
|
|
90
90
|
filters: onFilter("None"),
|
|
91
91
|
page: nonePage,
|
|
92
92
|
},
|
|
93
|
-
}, [id, nonePage,
|
|
93
|
+
}, [id, nonePage, pinned, personal, filterOptions]);
|
|
94
94
|
useRenderOnChange(() => [
|
|
95
95
|
[starList.filters.options, urgentList.filters.options, noneList.filters.options],
|
|
96
96
|
id,
|
|
97
97
|
]);
|
|
98
98
|
/** 各分组的服务器总数(undefined 表示尚未收到响应) */
|
|
99
99
|
const [totals, setTotals] = useState({});
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
100
|
+
/** 分组加载 effect:未选择任何过滤时传 null,hooks 对 null effect 跳过请求(不设 loading、不发查询)。
|
|
101
|
+
* as any 原因:声明文件把 null 误标到了返回值上(effect: (...) => void | null),运行时契约见 useCountedMapListEffect */
|
|
102
|
+
const loadEffect = (flag, list) => hasFilterScope
|
|
103
|
+
? (result, total) => {
|
|
104
|
+
list.union(result);
|
|
105
|
+
setTotals((prev) => ({ ...prev, [flag]: total !== null && total !== void 0 ? total : 0 }));
|
|
106
|
+
}
|
|
107
|
+
: null;
|
|
108
|
+
useDocumentListEffect(starList, loadEffect("Star", starList), {
|
|
109
|
+
...starList.filters.options,
|
|
110
|
+
Total: true,
|
|
111
|
+
});
|
|
112
|
+
useDocumentListEffect(urgentList, loadEffect("Urgent", urgentList), {
|
|
113
|
+
...urgentList.filters.options,
|
|
114
|
+
Total: true,
|
|
115
|
+
});
|
|
116
|
+
useDocumentListEffect(noneList, loadEffect("None", noneList), {
|
|
117
|
+
...noneList.filters.options,
|
|
118
|
+
Total: true,
|
|
119
|
+
});
|
|
120
|
+
/** 实时更新与查询范围对齐:空范围(无过滤)下不合并任何实时文档 */
|
|
121
|
+
useAutoUpdateListData(starList, (d) => hasFilterScope && d.parentId === id);
|
|
122
|
+
useAutoUpdateListData(urgentList, (d) => hasFilterScope && d.parentId === id);
|
|
123
|
+
useAutoUpdateListData(noneList, (d) => hasFilterScope && d.parentId === id);
|
|
124
|
+
/** 空范围下 effect 为 null 不会有请求去清 loading,而 triggerSearch/triggerSort(ListHeaderTool
|
|
125
|
+
* 内部触发 noneList,handleSearchAll/handleSortAll 同步另两组)会置 _loading = true —— 反应式
|
|
126
|
+
* 清掉,避免空内容却一直转 loading */
|
|
127
|
+
useEffect(() => {
|
|
128
|
+
if (hasFilterScope)
|
|
129
|
+
return;
|
|
130
|
+
return autorun(() => {
|
|
131
|
+
[starList, urgentList, noneList].forEach((list) => {
|
|
132
|
+
if (list.loading)
|
|
133
|
+
runInAction(() => list.clear());
|
|
134
|
+
});
|
|
135
|
+
});
|
|
136
|
+
}, [hasFilterScope, starList, urgentList, noneList]);
|
|
116
137
|
useOnPinDocument(() => onReload === null || onReload === void 0 ? void 0 : onReload());
|
|
117
138
|
useOnUnPinDocument(() => onReload === null || onReload === void 0 ? void 0 : onReload());
|
|
118
139
|
useOnFlagChange(() => onReload === null || onReload === void 0 ? void 0 : onReload());
|
|
@@ -128,36 +149,32 @@ const DocumentSection = (props) => {
|
|
|
128
149
|
/** 三个分组的总数是否都已收到(避免加载中误判为空状态) */
|
|
129
150
|
const allReceived = totals.Star !== undefined && totals.Urgent !== undefined && totals.None !== undefined;
|
|
130
151
|
const total = allReceived ? sumGroupTotals(groups) : undefined;
|
|
131
|
-
/**
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
const isFiltered = !!(filterOptions === null || filterOptions === void 0 ? void 0 : filterOptions.length);
|
|
135
|
-
/** 无 filter 时三组总和(有 filter 时保持该值不变,作为 "of Y" 基数;重挂载且无历史快照时用当前总和兜底,避免 "of 0") */
|
|
136
|
-
useEffect(() => {
|
|
137
|
-
if (allReceived) {
|
|
138
|
-
setAllTotal((prev) => (!isFiltered || prev === 0 ? sumGroupTotals(groups) : prev));
|
|
139
|
-
}
|
|
140
|
-
}, [isFiltered, allReceived, totals]);
|
|
141
|
-
/** 搜索同步:主列表(None)由 ListHeaderTool 内部 1s 防抖触发,这里同步另外两个分组 */
|
|
152
|
+
/** 搜索同步:主列表(None)由 ListHeaderTool 内部 1s 防抖触发,这里同步另外两个分组。
|
|
153
|
+
* 多个 triggerSearch 必须合并到同一个 action 内执行,否则 mobx reaction 会在两次 action 之间
|
|
154
|
+
* 触发渲染,导致部分分组的 useDocumentListEffect 依赖未及时变化而不重新请求,loading 卡死。 */
|
|
142
155
|
const handleSearchAll = (val) => {
|
|
143
156
|
if (searchTimerRef.current)
|
|
144
157
|
clearTimeout(searchTimerRef.current);
|
|
145
158
|
searchTimerRef.current = setTimeout(() => {
|
|
146
|
-
|
|
159
|
+
runInAction(() => {
|
|
160
|
+
[starList, urgentList].forEach((list) => list.triggerSearch(val !== null && val !== void 0 ? val : ""));
|
|
161
|
+
});
|
|
147
162
|
}, 1000);
|
|
148
163
|
};
|
|
149
|
-
/** 排序同步:主列表(None)由 ListHeaderTool
|
|
164
|
+
/** 排序同步:主列表(None)由 ListHeaderTool 内部触发,这里同步另外两个分组(同一 action 内合并,避免加载卡死) */
|
|
150
165
|
const handleSortAll = (params) => {
|
|
151
|
-
|
|
166
|
+
runInAction(() => {
|
|
167
|
+
[starList, urgentList].forEach((list) => list.triggerSort(params));
|
|
168
|
+
});
|
|
152
169
|
};
|
|
153
|
-
const headerTool = observe(() => (React.createElement(ListHeaderTool, { key:
|
|
170
|
+
const headerTool = observe(() => (React.createElement(ListHeaderTool, { key: `${pinned}-${personal}`, className: classnames("flex-1 [&_>div]:gap-5!", !(asideContext === null || asideContext === void 0 ? void 0 : asideContext.asideContent) ? "p-0!" : "pt-0"), sortable: true, addAble: false, searchHeader: true, searchOptions: { placeholder: "Search in documents", onChange: handleSearchAll }, onSort: handleSortAll })));
|
|
154
171
|
return observe(() => (React.createElement(ListDataContext.Provider, { value: noneList },
|
|
155
172
|
React.createElement("div", { className: "h-full flex flex-col" },
|
|
156
173
|
React.createElement(FilterTabsBar, { headerTool: !(asideContext === null || asideContext === void 0 ? void 0 : asideContext.asideContent) && headerTool }),
|
|
157
|
-
React.createElement(FilterPillsBar, { teamItems: teamItems, workspaceItems: workspaceItems, onRemoveTeamItem: onRemoveTeamItem, onRemoveWorkspaceItem: onRemoveWorkspaceItem, onResetFilters: onResetFilters, showTotal: React.createElement("span", { className: "ml-auto text-sm font-medium text-font-primary" }, `Showing ${total !== null && total !== void 0 ? total : 0}
|
|
174
|
+
React.createElement(FilterPillsBar, { teamItems: teamItems, workspaceItems: workspaceItems, onRemoveTeamItem: onRemoveTeamItem, onRemoveWorkspaceItem: onRemoveWorkspaceItem, onResetFilters: onResetFilters, showTotal: React.createElement("span", { className: "ml-auto text-sm font-medium text-font-primary" }, `Showing ${total !== null && total !== void 0 ? total : 0} total`) }),
|
|
158
175
|
(asideContext === null || asideContext === void 0 ? void 0 : asideContext.asideContent) && headerTool,
|
|
159
176
|
React.createElement("div", { className: "pinned-content h-full" },
|
|
160
|
-
React.createElement(DocumentViewClass, { groups: groups, onItemClick: props.onItemClick }))))));
|
|
177
|
+
React.createElement(DocumentViewClass, { groups: groups, onItemClick: props.onItemClick, noFilter: !hasFilterScope }))))));
|
|
161
178
|
};
|
|
162
179
|
export default DocumentSection;
|
|
163
180
|
//# sourceMappingURL=DocumentSection.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DocumentSection.js","sourceRoot":"","sources":["../../../../src/modules/my-document/DocumentTableGroup/DocumentSection.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AACnD,OAAO,EAEN,mBAAmB,EACnB,qBAAqB,EACrB,qBAAqB,GACrB,MAAM,8BAA8B,CAAC;AAEtC,OAAO,
|
|
1
|
+
{"version":3,"file":"DocumentSection.js","sourceRoot":"","sources":["../../../../src/modules/my-document/DocumentTableGroup/DocumentSection.tsx"],"names":[],"mappings":"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"}
|
|
@@ -3,32 +3,37 @@ import { FilterOption } from "@voplus/morpho-data";
|
|
|
3
3
|
import { IUnit } from "@voplus/morpho-org";
|
|
4
4
|
import { IWorkspace } from "../../data/workspace";
|
|
5
5
|
export type DocumentViewType = "table" | "grid";
|
|
6
|
-
|
|
6
|
+
/** team/workspace 过滤应用类型(Pin/Personal 走独立开关) */
|
|
7
|
+
export type DocumentApplyType = "team" | "workspace";
|
|
7
8
|
export declare const INITIAL_PAGE: {
|
|
8
9
|
Page: number;
|
|
9
10
|
PageSize: number;
|
|
10
11
|
};
|
|
11
|
-
/** team 选中项 → ParentNodeId contains 过滤条件(空数组表示不过滤) */
|
|
12
|
-
export declare const teamItemsToFilterOption: (items: IUnit[]) => FilterOption[];
|
|
13
|
-
/** workspace 选中项 → ParentNodeId contains 过滤条件(空数组表示不过滤) */
|
|
14
|
-
export declare const workspaceItemsToFilterOption: (items: IWorkspace[]) => FilterOption[];
|
|
15
12
|
/**
|
|
16
|
-
* team
|
|
17
|
-
*
|
|
18
|
-
*
|
|
13
|
+
* team/workspace 选中项 → 单个 ParentNodeId contains 过滤条件。
|
|
14
|
+
* 可传入 personalId(当前目录)一起合并进同一个条件,
|
|
15
|
+
* 避免 Personal 与 team/workspace 同时过滤时产生两个 ParentNodeId 条件。
|
|
16
|
+
* 全部为空时不返回条件。
|
|
19
17
|
*/
|
|
20
|
-
export declare const parentNodeFilterOptions: (teamItems: IUnit[], workspaceItems: IWorkspace[]) => FilterOption[];
|
|
18
|
+
export declare const parentNodeFilterOptions: (teamItems: IUnit[], workspaceItems: IWorkspace[], personalId?: string) => FilterOption[];
|
|
21
19
|
interface DocumentViewContextProps {
|
|
22
20
|
loaded: boolean;
|
|
23
|
-
activeTab: DocumentFilterType;
|
|
24
21
|
viewType: DocumentViewType;
|
|
25
|
-
|
|
22
|
+
/** Pin 开关:true 时列表过滤条件包含 Pin=True */
|
|
23
|
+
pinned: boolean;
|
|
24
|
+
/** Personal 开关:true 时列表过滤条件包含 ParentNodeId=当前目录 */
|
|
25
|
+
personal: boolean;
|
|
26
|
+
/** team/workspace 合并后的 ParentNodeId 过滤条件;均无选中时为空数组 */
|
|
27
|
+
filterOptions: FilterOption[];
|
|
26
28
|
teamItems: IUnit[];
|
|
27
29
|
workspaceItems: IWorkspace[];
|
|
28
30
|
onReload: () => void;
|
|
29
|
-
setActiveTab: (activeTab: DocumentFilterType) => void;
|
|
30
31
|
setViewType: (viewType: DocumentViewType) => void;
|
|
31
|
-
|
|
32
|
+
/** 单击选中、再单击取消 */
|
|
33
|
+
togglePinned: () => void;
|
|
34
|
+
/** 单击选中、再单击取消 */
|
|
35
|
+
togglePersonal: () => void;
|
|
36
|
+
onApplyFilter: (type: DocumentApplyType, items?: IUnit[] | IWorkspace[]) => void;
|
|
32
37
|
onRemoveTeamItem: (item: IUnit) => void;
|
|
33
38
|
onRemoveWorkspaceItem: (item: IWorkspace) => void;
|
|
34
39
|
onResetFilters: () => void;
|
|
@@ -3,35 +3,15 @@ export const INITIAL_PAGE = {
|
|
|
3
3
|
Page: 1,
|
|
4
4
|
PageSize: 10,
|
|
5
5
|
};
|
|
6
|
-
/** team 选中项 → ParentNodeId contains 过滤条件(空数组表示不过滤) */
|
|
7
|
-
export const teamItemsToFilterOption = (items) => items.length
|
|
8
|
-
? [
|
|
9
|
-
{
|
|
10
|
-
c: "ParentNodeId",
|
|
11
|
-
o: "contains",
|
|
12
|
-
l: "And",
|
|
13
|
-
v1: JSON.stringify(items.map((item) => item.containerId)),
|
|
14
|
-
},
|
|
15
|
-
]
|
|
16
|
-
: [];
|
|
17
|
-
/** workspace 选中项 → ParentNodeId contains 过滤条件(空数组表示不过滤) */
|
|
18
|
-
export const workspaceItemsToFilterOption = (items) => items.length
|
|
19
|
-
? [
|
|
20
|
-
{
|
|
21
|
-
c: "ParentNodeId",
|
|
22
|
-
o: "contains",
|
|
23
|
-
l: "And",
|
|
24
|
-
v1: JSON.stringify(items.map((item) => item.id)),
|
|
25
|
-
},
|
|
26
|
-
]
|
|
27
|
-
: [];
|
|
28
6
|
/**
|
|
29
|
-
* team
|
|
30
|
-
*
|
|
31
|
-
*
|
|
7
|
+
* team/workspace 选中项 → 单个 ParentNodeId contains 过滤条件。
|
|
8
|
+
* 可传入 personalId(当前目录)一起合并进同一个条件,
|
|
9
|
+
* 避免 Personal 与 team/workspace 同时过滤时产生两个 ParentNodeId 条件。
|
|
10
|
+
* 全部为空时不返回条件。
|
|
32
11
|
*/
|
|
33
|
-
export const parentNodeFilterOptions = (teamItems, workspaceItems) => {
|
|
12
|
+
export const parentNodeFilterOptions = (teamItems, workspaceItems, personalId) => {
|
|
34
13
|
const ids = [
|
|
14
|
+
...(personalId ? [personalId] : []),
|
|
35
15
|
...teamItems.map((item) => item.containerId),
|
|
36
16
|
...workspaceItems.map((item) => item.id),
|
|
37
17
|
];
|
|
@@ -54,74 +34,54 @@ export const useDocumentViewContext = () => {
|
|
|
54
34
|
return ctx;
|
|
55
35
|
};
|
|
56
36
|
export const DocumentViewProvider = ({ children }) => {
|
|
57
|
-
const [filterOptions, setFilterOptions] = useState(
|
|
37
|
+
const [filterOptions, setFilterOptions] = useState([]);
|
|
58
38
|
const [viewType, setViewType] = useState("table");
|
|
59
|
-
|
|
39
|
+
// 刚进入页面默认 Pin 选中
|
|
40
|
+
const [pinned, setPinned] = useState(true);
|
|
41
|
+
const [personal, setPersonal] = useState(false);
|
|
60
42
|
const [loaded, setLoaded] = useState(true);
|
|
61
43
|
const [teamItems, setTeamItems] = useState([]);
|
|
62
44
|
const [workspaceItems, setWorkspaceItems] = useState([]);
|
|
63
|
-
/**
|
|
64
|
-
* 切换 tab。切到 pinned/personal 时清空 team/workspace 选中项与过滤条件,
|
|
65
|
-
* 保证 UI(FilterPillsBar)与后台查询条件(不含 ParentNodeId)一致。
|
|
66
|
-
*/
|
|
67
|
-
const setActiveTab = useCallback((nextTab) => {
|
|
68
|
-
setActiveTabState(nextTab);
|
|
69
|
-
if (nextTab !== "team" && nextTab !== "workspace") {
|
|
70
|
-
setTeamItems([]);
|
|
71
|
-
setWorkspaceItems([]);
|
|
72
|
-
setFilterOptions(undefined);
|
|
73
|
-
}
|
|
74
|
-
}, []);
|
|
75
45
|
const onReload = useCallback(() => {
|
|
76
46
|
setLoaded(false);
|
|
77
47
|
setTimeout(() => {
|
|
78
48
|
setLoaded(true);
|
|
79
49
|
}, 100);
|
|
80
50
|
}, []);
|
|
81
|
-
|
|
51
|
+
/** Pin/Personal 采用 toggle 切换:单击选中、再单击取消 */
|
|
52
|
+
const togglePinned = useCallback(() => setPinned((prev) => !prev), []);
|
|
53
|
+
const togglePersonal = useCallback(() => setPersonal((prev) => !prev), []);
|
|
54
|
+
const onApplyFilter = useCallback((type, items) => {
|
|
82
55
|
var _a, _b;
|
|
83
|
-
|
|
84
|
-
if (activeTab === "team") {
|
|
56
|
+
if (type === "team") {
|
|
85
57
|
const team = (_a = items) !== null && _a !== void 0 ? _a : [];
|
|
86
58
|
setTeamItems(team);
|
|
87
59
|
setFilterOptions(parentNodeFilterOptions(team, workspaceItems));
|
|
88
60
|
}
|
|
89
|
-
else if (
|
|
61
|
+
else if (type === "workspace") {
|
|
90
62
|
const ws = (_b = items) !== null && _b !== void 0 ? _b : [];
|
|
91
63
|
setWorkspaceItems(ws);
|
|
92
64
|
setFilterOptions(parentNodeFilterOptions(teamItems, ws));
|
|
93
65
|
}
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
}
|
|
97
|
-
}, [teamItems, workspaceItems, setActiveTab]);
|
|
98
|
-
/** 重置全部筛选:清空 team/workspace 选中项与过滤条件并回到 pinned */
|
|
66
|
+
}, [teamItems, workspaceItems]);
|
|
67
|
+
/** 重置筛选(FilterPillsBar Reset):只清空 team/workspace 选中项,Pin/Personal 保持原状 */
|
|
99
68
|
const onResetFilters = useCallback(() => {
|
|
100
69
|
setTeamItems([]);
|
|
101
70
|
setWorkspaceItems([]);
|
|
102
|
-
setFilterOptions(
|
|
103
|
-
setActiveTab("pinned");
|
|
71
|
+
setFilterOptions([]);
|
|
104
72
|
}, []);
|
|
105
|
-
/** 移除单个 team
|
|
73
|
+
/** 移除单个 team 项并重新生成过滤条件;另一侧仍有选中项时保留其过滤 */
|
|
106
74
|
const onRemoveTeamItem = useCallback((item) => {
|
|
107
75
|
const next = teamItems.filter((i) => i.id !== item.id);
|
|
108
|
-
if (next.length === 0 && workspaceItems.length === 0) {
|
|
109
|
-
onResetFilters();
|
|
110
|
-
return;
|
|
111
|
-
}
|
|
112
76
|
setTeamItems(next);
|
|
113
77
|
setFilterOptions(parentNodeFilterOptions(next, workspaceItems));
|
|
114
|
-
}, [teamItems, workspaceItems
|
|
115
|
-
/** 移除单个 workspace
|
|
78
|
+
}, [teamItems, workspaceItems]);
|
|
79
|
+
/** 移除单个 workspace 项并重新生成过滤条件;另一侧仍有选中项时保留其过滤 */
|
|
116
80
|
const onRemoveWorkspaceItem = useCallback((item) => {
|
|
117
81
|
const next = workspaceItems.filter((i) => i.id !== item.id);
|
|
118
|
-
if (teamItems.length === 0 && next.length === 0) {
|
|
119
|
-
onResetFilters();
|
|
120
|
-
return;
|
|
121
|
-
}
|
|
122
82
|
setWorkspaceItems(next);
|
|
123
83
|
setFilterOptions(parentNodeFilterOptions(teamItems, next));
|
|
124
|
-
}, [teamItems, workspaceItems
|
|
84
|
+
}, [teamItems, workspaceItems]);
|
|
125
85
|
return (React.createElement(DocumentViewContext.Provider, { value: {
|
|
126
86
|
viewType,
|
|
127
87
|
setViewType,
|
|
@@ -134,8 +94,10 @@ export const DocumentViewProvider = ({ children }) => {
|
|
|
134
94
|
onRemoveTeamItem,
|
|
135
95
|
onRemoveWorkspaceItem,
|
|
136
96
|
onResetFilters,
|
|
137
|
-
|
|
138
|
-
|
|
97
|
+
pinned,
|
|
98
|
+
personal,
|
|
99
|
+
togglePinned,
|
|
100
|
+
togglePersonal,
|
|
139
101
|
} }, children));
|
|
140
102
|
};
|
|
141
103
|
//# sourceMappingURL=DocumentViewContext.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DocumentViewContext.js","sourceRoot":"","sources":["../../../src/modules/my-document/DocumentViewContext.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,aAAa,EAAa,WAAW,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"DocumentViewContext.js","sourceRoot":"","sources":["../../../src/modules/my-document/DocumentViewContext.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1,18 +1,18 @@
|
|
|
1
1
|
import React from "react";
|
|
2
2
|
import { observe } from "@voplus/morpho-ui";
|
|
3
3
|
import { useDocumentViewContext } from "../DocumentViewContext";
|
|
4
|
-
import { FontAwesomeIcon as FAIcon,
|
|
4
|
+
import { FontAwesomeIcon as FAIcon, faThumbtackSolid } from "@voplus/morpho-ui/es/faIcons";
|
|
5
5
|
import WorkspacesFilter from "../FilterUI/WorkspaceFilter";
|
|
6
6
|
import TeamFilter from "../FilterUI/TeamFilter";
|
|
7
7
|
import classnames from "classnames";
|
|
8
8
|
import { tabBtnBaseClass, tabBtnDefaultClass, tabBtnActiveClass } from "../tabClasses";
|
|
9
9
|
const FilterTabsBar = (props) => {
|
|
10
|
-
const {
|
|
10
|
+
const { pinned, personal, togglePinned, togglePersonal } = useDocumentViewContext();
|
|
11
11
|
return observe(() => (React.createElement("div", { className: "flex items-center gap-5 px-5 py-4 shrink-0" },
|
|
12
|
-
React.createElement("button", { className: classnames(tabBtnBaseClass, "w-[45px]",
|
|
13
|
-
React.createElement(FAIcon, { icon:
|
|
12
|
+
React.createElement("button", { className: classnames(tabBtnBaseClass, "w-[45px]", pinned ? tabBtnActiveClass : tabBtnDefaultClass), onClick: togglePinned },
|
|
13
|
+
React.createElement(FAIcon, { icon: faThumbtackSolid })),
|
|
14
14
|
React.createElement("span", { className: "h-11 w-px bg-border" }),
|
|
15
|
-
React.createElement("button", { className: classnames(tabBtnBaseClass, "px-5 uppercase",
|
|
15
|
+
React.createElement("button", { className: classnames(tabBtnBaseClass, "px-5 uppercase", personal ? tabBtnActiveClass : tabBtnDefaultClass), onClick: togglePersonal }, "Personal"),
|
|
16
16
|
React.createElement(TeamFilter, null),
|
|
17
17
|
React.createElement(WorkspacesFilter, null),
|
|
18
18
|
props.headerTool)));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/modules/my-document/FilterTabsBar/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAC5C,OAAO,EAAE,sBAAsB,EAAE,MAAM,wBAAwB,CAAC;AAChE,OAAO,EAAE,eAAe,IAAI,MAAM,EAAE,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/modules/my-document/FilterTabsBar/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAC5C,OAAO,EAAE,sBAAsB,EAAE,MAAM,wBAAwB,CAAC;AAChE,OAAO,EAAE,eAAe,IAAI,MAAM,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAC3F,OAAO,gBAAgB,MAAM,6BAA6B,CAAC;AAC3D,OAAO,UAAU,MAAM,wBAAwB,CAAC;AAChD,OAAO,UAAU,MAAM,YAAY,CAAC;AACpC,OAAO,EAAE,eAAe,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAEvF,MAAM,aAAa,GAAG,CAAC,KAAuC,EAAE,EAAE;IACjE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,YAAY,EAAE,cAAc,EAAE,GAAG,sBAAsB,EAAE,CAAC;IAEpF,OAAO,OAAO,CAAC,GAAG,EAAE,CAAC,CACpB,6BAAK,SAAS,EAAC,4CAA4C;QAC1D,gCACC,SAAS,EAAE,UAAU,CACpB,eAAe,EACf,UAAU,EACV,MAAM,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,kBAAkB,CAC/C,EACD,OAAO,EAAE,YAAY;YAErB,oBAAC,MAAM,IAAC,IAAI,EAAE,gBAAgB,GAAI,CAC1B;QAET,8BAAM,SAAS,EAAC,qBAAqB,GAAQ;QAE7C,gCACC,SAAS,EAAE,UAAU,CACpB,eAAe,EACf,gBAAgB,EAChB,QAAQ,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,kBAAkB,CACjD,EACD,OAAO,EAAE,cAAc,eAGf;QAET,oBAAC,UAAU,OAAG;QACd,oBAAC,gBAAgB,OAAG;QACnB,KAAK,CAAC,UAAU,CACZ,CACN,CAAC,CAAC;AACJ,CAAC,CAAC;AAEF,eAAe,aAAa,CAAC"}
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
import React from "react";
|
|
2
2
|
import { Checkbox } from "antd";
|
|
3
|
-
import { useDocumentViewContext
|
|
3
|
+
import { useDocumentViewContext } from "../../DocumentViewContext";
|
|
4
4
|
import { observe, useRenderOnChange } from "@voplus/morpho-ui";
|
|
5
5
|
import { useCreateListDataState } from "@voplus/morpho-ui/es/data";
|
|
6
6
|
import { useUnitListEffect } from "@voplus/morpho-org";
|
|
7
7
|
import { FontAwesomeIcon as FAIcon, faFilterSolid } from "@voplus/morpho-ui/es/faIcons";
|
|
8
8
|
import FilterUI from "..";
|
|
9
9
|
const TeamFilter = () => {
|
|
10
|
-
const { onApplyFilter,
|
|
10
|
+
const { onApplyFilter, teamItems } = useDocumentViewContext();
|
|
11
11
|
const [showOnlyMyTeams, setShowOnlyMyTeams] = React.useState(true);
|
|
12
12
|
/** 受控回显用的选中 id(context teamItems 变化时才重建引用,避免 wipe 用户下拉草稿) */
|
|
13
13
|
const selectedIds = React.useMemo(() => teamItems.map((item) => item.id), [teamItems]);
|
|
@@ -38,11 +38,11 @@ const TeamFilter = () => {
|
|
|
38
38
|
useRenderOnChange(() => list.filters.options);
|
|
39
39
|
/** 把ListDataState传给useContactListEffect,使之可以自動更新loading, hasmore. */
|
|
40
40
|
useUnitListEffect(list, (result) => list.union(result), list.filters.options);
|
|
41
|
-
return observe(() => (React.createElement(FilterUI, { multiple: true, label: "Team", list: list, active:
|
|
41
|
+
return observe(() => (React.createElement(FilterUI, { multiple: true, label: "Team", list: list, active: teamItems.length > 0, searchPlaceholder: "Search teams...", customDropdownItem: React.createElement("div", { className: "px-4 py-2.5 bg-bg border-b border-border" },
|
|
42
42
|
React.createElement("label", { className: "flex items-center gap-2 cursor-pointer group text-font-grey text-sm font-medium" },
|
|
43
43
|
React.createElement(Checkbox, { checked: showOnlyMyTeams, onChange: (e) => setShowOnlyMyTeams(e.target.checked) }),
|
|
44
44
|
React.createElement(FAIcon, { icon: faFilterSolid }),
|
|
45
|
-
React.createElement("span", { className: "group-hover:text-font-primary" }, "Show only my teams"))), selectedIds: selectedIds, onFilter: (items) => onApplyFilter("team",
|
|
45
|
+
React.createElement("span", { className: "group-hover:text-font-primary" }, "Show only my teams"))), selectedIds: selectedIds, onFilter: (items) => onApplyFilter("team", items) })));
|
|
46
46
|
};
|
|
47
47
|
export default TeamFilter;
|
|
48
48
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/modules/my-document/FilterUI/TeamFilter/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,QAAQ,EAAE,MAAM,MAAM,CAAC;AAChC,OAAO,EAAE,sBAAsB,EAAE,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/modules/my-document/FilterUI/TeamFilter/index.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import React from "react";
|
|
2
2
|
import { Checkbox } from "antd";
|
|
3
|
-
import { useDocumentViewContext
|
|
3
|
+
import { useDocumentViewContext } from "../../DocumentViewContext";
|
|
4
4
|
import { observe, useRenderOnChange } from "@voplus/morpho-ui";
|
|
5
5
|
import { useCreateListDataState } from "@voplus/morpho-ui/es/data";
|
|
6
6
|
import { useWorkspaceListEffect } from "../../../../data/workspace";
|
|
@@ -8,7 +8,7 @@ import { useAutoUpdateListData } from "../../../../data/workspace/workspace-even
|
|
|
8
8
|
import { FontAwesomeIcon as FAIcon, faFilterSolid, } from "@voplus/morpho-ui/es/faIcons";
|
|
9
9
|
import FilterUI from "..";
|
|
10
10
|
const WorkspaceFilter = () => {
|
|
11
|
-
const { onApplyFilter,
|
|
11
|
+
const { onApplyFilter, workspaceItems } = useDocumentViewContext();
|
|
12
12
|
const [showOnlyMyWorkspaces, setShowOnlyMyWorkspaces] = React.useState(true);
|
|
13
13
|
/** 受控回显用的选中 id(context workspaceItems 变化时才重建引用,避免 wipe 用户下拉草稿) */
|
|
14
14
|
const selectedIds = React.useMemo(() => workspaceItems.map((item) => item.id), [workspaceItems]);
|
|
@@ -27,11 +27,11 @@ const WorkspaceFilter = () => {
|
|
|
27
27
|
useWorkspaceListEffect(list, (result) => list.union(result), list.filters.options);
|
|
28
28
|
/** useOnNewWorkspace, useOnDeleteWorkspace的sugar syntax 自動更新list. */
|
|
29
29
|
useAutoUpdateListData(list, (d) => true);
|
|
30
|
-
return observe(() => (React.createElement(FilterUI, { multiple: true, label: "Workspace", active:
|
|
30
|
+
return observe(() => (React.createElement(FilterUI, { multiple: true, label: "Workspace", active: workspaceItems.length > 0, list: list, searchPlaceholder: "Search workspaces...", customDropdownItem: React.createElement("div", { className: "px-4 py-2.5 bg-bg border-b border-border" },
|
|
31
31
|
React.createElement("label", { className: "flex items-center gap-2 cursor-pointer group text-font-grey text-sm font-medium" },
|
|
32
32
|
React.createElement(Checkbox, { checked: showOnlyMyWorkspaces, onChange: (e) => setShowOnlyMyWorkspaces(e.target.checked) }),
|
|
33
33
|
React.createElement(FAIcon, { icon: faFilterSolid }),
|
|
34
|
-
React.createElement("span", { className: "group-hover:text-font-primary" }, "Show only my workspaces"))), selectedIds: selectedIds, onFilter: (items) => onApplyFilter("workspace",
|
|
34
|
+
React.createElement("span", { className: "group-hover:text-font-primary" }, "Show only my workspaces"))), selectedIds: selectedIds, onFilter: (items) => onApplyFilter("workspace", items) })));
|
|
35
35
|
};
|
|
36
36
|
export default WorkspaceFilter;
|
|
37
37
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/modules/my-document/FilterUI/WorkspaceFilter/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,QAAQ,EAAE,MAAM,MAAM,CAAC;AAChC,OAAO,EAAE,sBAAsB,EAAE,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/modules/my-document/FilterUI/WorkspaceFilter/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,QAAQ,EAAE,MAAM,MAAM,CAAC;AAChC,OAAO,EAAE,sBAAsB,EAAE,MAAM,2BAA2B,CAAC;AACnE,OAAO,EAAE,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAC/D,OAAO,EAAE,sBAAsB,EAAE,MAAM,2BAA2B,CAAC;AACnE,OAAO,EAAc,sBAAsB,EAAE,MAAM,4BAA4B,CAAC;AAChF,OAAO,EAAE,qBAAqB,EAAE,MAAM,6CAA6C,CAAC;AACpF,OAAO,EACN,eAAe,IAAI,MAAM,EAEzB,aAAa,GACb,MAAM,8BAA8B,CAAC;AACtC,OAAO,QAAQ,MAAM,IAAI,CAAC;AAE1B,MAAM,eAAe,GAAG,GAAG,EAAE;IAC5B,MAAM,EAAE,aAAa,EAAE,cAAc,EAAE,GAAG,sBAAsB,EAAE,CAAC;IAEnE,MAAM,CAAC,oBAAoB,EAAE,uBAAuB,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;IAE7E,kEAAkE;IAClE,MAAM,WAAW,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,cAAc,CAAC,CAAC,CAAC;IAEjG,mFAAmF;IACnF,MAAM,IAAI,GAAG,sBAAsB,CAClC;QACC,cAAc,EAAE;YACf,OAAO,EAAE,oBAAoB;gBAC5B,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,UAAU,EAAE,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC;gBAC3E,CAAC,CAAC,EAAE;YACL,IAAI,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,QAAQ,EAAE,GAAG,EAAE;SAChC;KACD,EACD,CAAC,oBAAoB,CAAC,CACtB,CAAC;IAEF,wEAAwE;IACxE,iBAAiB,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IAE9C,uEAAuE;IACvE,sBAAsB,CAAC,IAAI,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IAEnF,qEAAqE;IACrE,qBAAqB,CAAC,IAAI,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC;IAEzC,OAAO,OAAO,CAAC,GAAG,EAAE,CAAC,CACpB,oBAAC,QAAQ,IACR,QAAQ,QACR,KAAK,EAAC,WAAW,EACjB,MAAM,EAAE,cAAc,CAAC,MAAM,GAAG,CAAC,EACjC,IAAI,EAAE,IAAI,EACV,iBAAiB,EAAC,sBAAsB,EACxC,kBAAkB,EACjB,6BAAK,SAAS,EAAC,0CAA0C;YACxD,+BAAO,SAAS,EAAC,iFAAiF;gBACjG,oBAAC,QAAQ,IACR,OAAO,EAAE,oBAAoB,EAC7B,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,uBAAuB,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,GACzD;gBACF,oBAAC,MAAM,IAAC,IAAI,EAAE,aAAa,GAAI;gBAC/B,8BAAM,SAAS,EAAC,+BAA+B,8BAA+B,CACvE,CACH,EAEP,WAAW,EAAE,WAAW,EACxB,QAAQ,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,aAAa,CAAC,WAAW,EAAE,KAAK,CAAC,GACrD,CACF,CAAC,CAAC;AACJ,CAAC,CAAC;AAEF,eAAe,eAAe,CAAC"}
|