@voplus/morpho-workspace 10.0.21 → 10.0.23

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 (75) hide show
  1. package/es/modules/my-document/DataViewToolbar/index.d.ts +5 -0
  2. package/es/modules/my-document/DataViewToolbar/index.js +23 -0
  3. package/es/modules/my-document/DataViewToolbar/index.js.map +1 -0
  4. package/es/modules/my-document/DocumentTableGroup/DocumentSection.d.ts +4 -4
  5. package/es/modules/my-document/DocumentTableGroup/DocumentSection.js +129 -31
  6. package/es/modules/my-document/DocumentTableGroup/DocumentSection.js.map +1 -1
  7. package/es/modules/my-document/DocumentTableGroup/FilterPillsBar.d.ts +19 -0
  8. package/es/modules/my-document/DocumentTableGroup/FilterPillsBar.js +17 -0
  9. package/es/modules/my-document/DocumentTableGroup/FilterPillsBar.js.map +1 -0
  10. package/es/modules/my-document/DocumentTableGroup/index.d.ts +4 -0
  11. package/es/modules/my-document/DocumentTableGroup/index.js +7 -22
  12. package/es/modules/my-document/DocumentTableGroup/index.js.map +1 -1
  13. package/es/modules/my-document/DocumentViewContext.d.ts +18 -1
  14. package/es/modules/my-document/DocumentViewContext.js +105 -3
  15. package/es/modules/my-document/DocumentViewContext.js.map +1 -1
  16. package/es/modules/my-document/FilterTabsBar/index.d.ts +1 -1
  17. package/es/modules/my-document/FilterTabsBar/index.js +12 -28
  18. package/es/modules/my-document/FilterTabsBar/index.js.map +1 -1
  19. package/es/modules/my-document/FilterUI/TeamFilter/index.js +9 -16
  20. package/es/modules/my-document/FilterUI/TeamFilter/index.js.map +1 -1
  21. package/es/modules/my-document/FilterUI/WorkspaceFilter/index.js +9 -16
  22. package/es/modules/my-document/FilterUI/WorkspaceFilter/index.js.map +1 -1
  23. package/es/modules/my-document/FilterUI/index.d.ts +2 -0
  24. package/es/modules/my-document/FilterUI/index.js +35 -51
  25. package/es/modules/my-document/FilterUI/index.js.map +1 -1
  26. package/es/modules/my-document/SectionTemplate/DocumentTableUI/TableCell.d.ts +20 -0
  27. package/es/modules/my-document/SectionTemplate/DocumentTableUI/TableCell.js +160 -0
  28. package/es/modules/my-document/SectionTemplate/DocumentTableUI/TableCell.js.map +1 -0
  29. package/es/modules/my-document/SectionTemplate/DocumentTableUI/index.css +40 -0
  30. package/es/modules/my-document/SectionTemplate/DocumentTableUI/index.d.ts +5 -10
  31. package/es/modules/my-document/SectionTemplate/DocumentTableUI/index.js +103 -174
  32. package/es/modules/my-document/SectionTemplate/DocumentTableUI/index.js.map +1 -1
  33. package/es/modules/my-document/SectionTemplate/DocumentViewClass/index.d.ts +7 -6
  34. package/es/modules/my-document/SectionTemplate/DocumentViewClass/index.js +3 -20
  35. package/es/modules/my-document/SectionTemplate/DocumentViewClass/index.js.map +1 -1
  36. package/es/modules/my-document/SectionTemplate/GridUI/index.d.ts +5 -9
  37. package/es/modules/my-document/SectionTemplate/GridUI/index.js +49 -37
  38. package/es/modules/my-document/SectionTemplate/GridUI/index.js.map +1 -1
  39. package/es/modules/my-document/SectionTemplate/documentGroups.d.ts +39 -0
  40. package/es/modules/my-document/SectionTemplate/documentGroups.js +40 -0
  41. package/es/modules/my-document/SectionTemplate/documentGroups.js.map +1 -0
  42. package/es/modules/my-document/SectionTemplate/documentGroups.test.d.ts +1 -0
  43. package/es/modules/my-document/SectionTemplate/documentGroups.test.js +64 -0
  44. package/es/modules/my-document/SectionTemplate/documentGroups.test.js.map +1 -0
  45. package/es/modules/my-document/index.js +21 -14
  46. package/es/modules/my-document/index.js.map +1 -1
  47. package/es/modules/my-document/tabClasses.d.ts +3 -0
  48. package/es/modules/my-document/tabClasses.js +4 -0
  49. package/es/modules/my-document/tabClasses.js.map +1 -0
  50. package/es/modules/pin/components/MyPinned/index.css +2 -2
  51. package/es/modules/tasks/components/TaskItem/subTaskItem.css +0 -2
  52. package/es/modules/work/components/WorkListHeader/index.js +1 -1
  53. package/es/modules/work/components/WorkTableCard/TableCellDetail.js +3 -3
  54. package/es/modules/work/components/WorkTableCard/TableCellDetail.js.map +1 -1
  55. package/es/modules/work/components/WorkTableList/TableCell.js +1 -1
  56. package/es/modules/work/components/WorkTableList/TableCell.js.map +1 -1
  57. package/es/modules/work/components/WorkTableListCard/TableCellDetails.js +2 -2
  58. package/es/modules/work/components/WorkTableListCard/TableCellDetails.js.map +1 -1
  59. package/es/modules/work/components/WorkTableListCard/index.css +0 -9
  60. package/es/modules/work/components/WorkTableListCardPage/index.js +1 -1
  61. package/es/modules/work/work-type/components/WorkTypeItem/index.d.ts +0 -1
  62. package/es/modules/work/work-type/components/WorkTypeItem/index.js +17 -12
  63. package/es/modules/work/work-type/components/WorkTypeItem/index.js.map +1 -1
  64. package/es/obsolete/space/components/Notes/index.js +1 -1
  65. package/es/obsolete/space/components/Notes/index.js.map +1 -1
  66. package/package.json +1 -1
  67. package/es/controls/Corner/index.css +0 -5
  68. package/es/controls/Corner/index.d.ts +0 -9
  69. package/es/controls/Corner/index.js +0 -10
  70. package/es/controls/Corner/index.js.map +0 -1
  71. package/es/controls/StickyAddButton/index.css +0 -18
  72. package/es/controls/StickyAddButton/index.d.ts +0 -9
  73. package/es/controls/StickyAddButton/index.js +0 -12
  74. package/es/controls/StickyAddButton/index.js.map +0 -1
  75. package/es/modules/work/work-type/components/WorkTypeItem/index.css +0 -45
@@ -0,0 +1,5 @@
1
+ import React from "react";
2
+ declare const DataViewToolbar: (props: {
3
+ onAdd?: () => void;
4
+ }) => React.JSX.Element;
5
+ export default DataViewToolbar;
@@ -0,0 +1,23 @@
1
+ import React from "react";
2
+ import { observe } from "@voplus/morpho-ui";
3
+ import { useDocumentViewContext } from "../DocumentViewContext";
4
+ import { FontAwesomeIcon as FAIcon, faListUlRegular, faThLargeSolid, faPlusRegular, } from "@voplus/morpho-ui/es/faIcons";
5
+ const DataViewToolbar = (props) => {
6
+ const { onAdd } = props;
7
+ const { viewType, setViewType } = useDocumentViewContext();
8
+ return observe(() => (React.createElement("div", { className: "flex items-center gap-3" },
9
+ React.createElement("div", { className: "flex items-center gap-1 bg-bg-grey rounded-base px-1.5 py-[7px]" },
10
+ React.createElement("button", { className: `w-7.5 h-7.5 flex items-center justify-center rounded-base transition-colors cursor-pointer ${viewType === "table"
11
+ ? "bg-white text-font-secondary shadow-sm"
12
+ : "text-font-primary hover:text-font-secondary"}`, title: "List View", onClick: () => setViewType("table") },
13
+ React.createElement(FAIcon, { icon: faListUlRegular, className: "text-sm" })),
14
+ React.createElement("button", { className: `w-7.5 h-7.5 flex items-center justify-center rounded-base transition-colors cursor-pointer ${viewType === "grid"
15
+ ? "bg-white text-font-secondary shadow-sm"
16
+ : "text-font-primary hover:text-font-secondary"}`, title: "Grid View", onClick: () => setViewType("grid") },
17
+ React.createElement(FAIcon, { icon: faThLargeSolid, className: "text-sm" }))),
18
+ React.createElement("button", { className: "h-11 px-4 primary-button", onClick: onAdd },
19
+ React.createElement(FAIcon, { icon: faPlusRegular, className: "mr-2" }),
20
+ "New"))));
21
+ };
22
+ export default DataViewToolbar;
23
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/modules/my-document/DataViewToolbar/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,EACN,eAAe,IAAI,MAAM,EACzB,eAAe,EACf,cAAc,EACd,aAAa,GACb,MAAM,8BAA8B,CAAC;AAEtC,MAAM,eAAe,GAAG,CAAC,KAA6B,EAAE,EAAE;IACzD,MAAM,EAAE,KAAK,EAAE,GAAG,KAAK,CAAC;IAExB,MAAM,EAAE,QAAQ,EAAE,WAAW,EAAE,GAAG,sBAAsB,EAAE,CAAC;IAE3D,OAAO,OAAO,CAAC,GAAG,EAAE,CAAC,CACpB,6BAAK,SAAS,EAAC,yBAAyB;QAEvC,6BAAK,SAAS,EAAC,iEAAiE;YAC/E,gCACC,SAAS,EAAE,8FACV,QAAQ,KAAK,OAAO;oBACnB,CAAC,CAAC,wCAAwC;oBAC1C,CAAC,CAAC,6CACJ,EAAE,EACF,KAAK,EAAC,WAAW,EACjB,OAAO,EAAE,GAAG,EAAE,CAAC,WAAW,CAAC,OAAO,CAAC;gBAEnC,oBAAC,MAAM,IAAC,IAAI,EAAE,eAAe,EAAE,SAAS,EAAC,SAAS,GAAG,CAC7C;YACT,gCACC,SAAS,EAAE,8FACV,QAAQ,KAAK,MAAM;oBAClB,CAAC,CAAC,wCAAwC;oBAC1C,CAAC,CAAC,6CACJ,EAAE,EACF,KAAK,EAAC,WAAW,EACjB,OAAO,EAAE,GAAG,EAAE,CAAC,WAAW,CAAC,MAAM,CAAC;gBAElC,oBAAC,MAAM,IAAC,IAAI,EAAE,cAAc,EAAE,SAAS,EAAC,SAAS,GAAG,CAC5C,CACJ;QAEN,gCAAQ,SAAS,EAAC,0BAA0B,EAAC,OAAO,EAAE,KAAK;YAC1D,oBAAC,MAAM,IAAC,IAAI,EAAE,aAAa,EAAE,SAAS,EAAC,MAAM,GAAG;kBAExC,CACJ,CACN,CAAC,CAAC;AACJ,CAAC,CAAC;AAEF,eAAe,eAAe,CAAC"}
@@ -1,10 +1,10 @@
1
1
  import React from "react";
2
+ /**
3
+ * 单一文档分组视图:内部创建 Star/Urgent/None 三个查询列表,
4
+ * 组装为 groups 供表格/网格分组展示,并承载 FilterTabsBar、统计行与空状态。
5
+ */
2
6
  declare const DocumentSection: (props: {
3
7
  id: string;
4
- title: string;
5
- icon?: React.ReactNode;
6
- flag: "Star" | "Urgent" | "None";
7
8
  onItemClick?: (id?: string) => void;
8
- onTotalChange?: (total: number) => void;
9
9
  }) => React.JSX.Element;
10
10
  export default DocumentSection;
@@ -1,24 +1,58 @@
1
- import React from "react";
1
+ import React, { useEffect, useState } from "react";
2
2
  import { useOnDeleteDocument, useAutoUpdateListData, useDocumentListEffect, } from "@voplus/morpho-document-core";
3
3
  import { useDocumentViewContext, INITIAL_PAGE } from "../DocumentViewContext";
4
- import { observe, useRenderOnChange } from "@voplus/morpho-ui";
4
+ import { observe, useRenderOnChange, useAsideContentContext } from "@voplus/morpho-ui";
5
5
  import { useOnPinDocument, useOnUnPinDocument, useOnFlagChange, } from "@voplus/morpho-document-core/es/data/DocumentStore/hooks/pin-events";
6
6
  import { ListDataContext, useCreateListDataState } from "@voplus/morpho-ui/es/data";
7
+ import { FontAwesomeIcon as FAIcon, faStarSolid, faExclamationCircleSolid, } from "@voplus/morpho-ui/es/faIcons";
7
8
  import DocumentViewClass from "../SectionTemplate/DocumentViewClass";
9
+ import ListHeaderTool from "@voplus/morpho-ui/es/components/layout/ListView/headers/ListHeaderTool";
10
+ import FilterTabsBar from "../FilterTabsBar";
11
+ import FilterPillsBar from "./FilterPillsBar";
12
+ import { sumGroupTotals, } from "../SectionTemplate/documentGroups";
13
+ import classnames from "classnames";
14
+ /** 分组展示配置(按 Star / Urgent / None 顺序) */
15
+ const FLAG_GROUPS = [
16
+ {
17
+ flag: "Star",
18
+ title: "Starred",
19
+ icon: React.createElement(FAIcon, { icon: faStarSolid }),
20
+ },
21
+ {
22
+ flag: "Urgent",
23
+ title: "Urgent",
24
+ icon: React.createElement(FAIcon, { icon: faExclamationCircleSolid }),
25
+ },
26
+ { flag: "None", title: "Documents" },
27
+ ];
28
+ /**
29
+ * 单一文档分组视图:内部创建 Star/Urgent/None 三个查询列表,
30
+ * 组装为 groups 供表格/网格分组展示,并承载 FilterTabsBar、统计行与空状态。
31
+ */
8
32
  const DocumentSection = (props) => {
9
- const { id, flag, icon, title } = props;
10
- const { activeTab, onReload, filterOptions } = useDocumentViewContext();
11
- const [total, setTotal] = React.useState(0);
12
- const [page, setPage] = React.useState(INITIAL_PAGE);
13
- React.useEffect(() => {
14
- setPage((prev) => {
15
- if (prev.Page === INITIAL_PAGE.Page && prev.PageSize === INITIAL_PAGE.PageSize) {
16
- return prev;
17
- }
18
- return INITIAL_PAGE;
19
- });
33
+ const { id } = props;
34
+ const { activeTab, onReload, filterOptions, teamItems, workspaceItems, onRemoveTeamItem, onRemoveWorkspaceItem, onResetFilters, } = useDocumentViewContext();
35
+ const asideContext = useAsideContentContext();
36
+ const [starPage, setStarPage] = useState(INITIAL_PAGE);
37
+ const [urgentPage, setUrgentPage] = useState(INITIAL_PAGE);
38
+ const [nonePage, setNonePage] = useState(INITIAL_PAGE);
39
+ /** 搜索防抖定时器(tab 切换或卸载时取消未完成的搜索同步) */
40
+ const searchTimerRef = React.useRef();
41
+ /** 卸载时清理搜索防抖定时器 */
42
+ useEffect(() => () => clearTimeout(searchTimerRef.current), []);
43
+ useEffect(() => {
44
+ [setStarPage, setUrgentPage, setNonePage].forEach((setPage) => setPage((prev) => prev.Page === INITIAL_PAGE.Page && prev.PageSize === INITIAL_PAGE.PageSize
45
+ ? prev
46
+ : INITIAL_PAGE));
20
47
  }, [activeTab]);
21
- const onFilter = () => {
48
+ /** tab 或过滤条件变化时重置各分组总数并取消未完成的搜索防抖,避免短暂显示旧 tab 的状态 */
49
+ useEffect(() => {
50
+ setTotals({});
51
+ if (searchTimerRef.current)
52
+ clearTimeout(searchTimerRef.current);
53
+ }, [activeTab, filterOptions]);
54
+ /** 按 flag 构建当前 tab 的过滤条件 */
55
+ const onFilter = (flag) => {
22
56
  let filters = [
23
57
  { c: "Flag", o: "contains", l: "And", v1: JSON.stringify([flag]) },
24
58
  ];
@@ -36,30 +70,94 @@ const DocumentSection = (props) => {
36
70
  }
37
71
  return filters;
38
72
  };
39
- const list = useCreateListDataState({
73
+ const starList = useCreateListDataState({
40
74
  filterDefaults: {
41
75
  includes: "tags,permissions,createdby,folder",
42
- filters: onFilter(),
43
- page,
76
+ filters: onFilter("Star"),
77
+ page: starPage,
44
78
  },
45
- }, [id, page, activeTab, filterOptions]);
46
- useRenderOnChange(() => [list.filters.options, id]);
47
- useDocumentListEffect(list, (result, total) => {
48
- var _a;
49
- list.union(result);
50
- setTotal(total !== null && total !== void 0 ? total : 0);
51
- (_a = props.onTotalChange) === null || _a === void 0 ? void 0 : _a.call(props, total !== null && total !== void 0 ? total : 0);
52
- }, {
53
- ...list.filters.options,
54
- Total: true,
55
- });
56
- useAutoUpdateListData(list, (d) => d.parentId === id);
79
+ }, [id, starPage, activeTab, filterOptions]);
80
+ const urgentList = useCreateListDataState({
81
+ filterDefaults: {
82
+ includes: "tags,permissions,createdby,folder",
83
+ filters: onFilter("Urgent"),
84
+ page: urgentPage,
85
+ },
86
+ }, [id, urgentPage, activeTab, filterOptions]);
87
+ const noneList = useCreateListDataState({
88
+ filterDefaults: {
89
+ includes: "tags,permissions,createdby,folder",
90
+ filters: onFilter("None"),
91
+ page: nonePage,
92
+ },
93
+ }, [id, nonePage, activeTab, filterOptions]);
94
+ useRenderOnChange(() => [
95
+ [starList.filters.options, urgentList.filters.options, noneList.filters.options],
96
+ id,
97
+ ]);
98
+ /** 各分组的服务器总数(undefined 表示尚未收到响应) */
99
+ const [totals, setTotals] = useState({});
100
+ const [allTotal, setAllTotal] = useState(0);
101
+ useDocumentListEffect(starList, (result, total) => {
102
+ starList.union(result);
103
+ setTotals((prev) => ({ ...prev, Star: total !== null && total !== void 0 ? total : 0 }));
104
+ }, { ...starList.filters.options, Total: true });
105
+ useDocumentListEffect(urgentList, (result, total) => {
106
+ urgentList.union(result);
107
+ setTotals((prev) => ({ ...prev, Urgent: total !== null && total !== void 0 ? total : 0 }));
108
+ }, { ...urgentList.filters.options, Total: true });
109
+ useDocumentListEffect(noneList, (result, total) => {
110
+ noneList.union(result);
111
+ setTotals((prev) => ({ ...prev, None: total !== null && total !== void 0 ? total : 0 }));
112
+ }, { ...noneList.filters.options, Total: true });
113
+ useAutoUpdateListData(starList, (d) => d.parentId === id);
114
+ useAutoUpdateListData(urgentList, (d) => d.parentId === id);
115
+ useAutoUpdateListData(noneList, (d) => d.parentId === id);
57
116
  useOnPinDocument(() => onReload === null || onReload === void 0 ? void 0 : onReload());
58
117
  useOnUnPinDocument(() => onReload === null || onReload === void 0 ? void 0 : onReload());
59
118
  useOnFlagChange(() => onReload === null || onReload === void 0 ? void 0 : onReload());
60
119
  useOnDeleteDocument(() => onReload === null || onReload === void 0 ? void 0 : onReload());
61
- return observe(() => (React.createElement(ListDataContext.Provider, { value: list },
62
- React.createElement(DocumentViewClass, { title: title, icon: icon, total: total, list: list, page: page, onItemClick: props.onItemClick, onSearch: (val) => list.triggerSearch(val !== null && val !== void 0 ? val : ""), onPageChange: (page, pageSize) => setPage({ Page: page, PageSize: pageSize }) }))));
120
+ const groups = FLAG_GROUPS.map((g) => {
121
+ var _a;
122
+ return ({
123
+ ...g,
124
+ list: g.flag === "Star" ? starList : g.flag === "Urgent" ? urgentList : noneList,
125
+ total: (_a = totals[g.flag]) !== null && _a !== void 0 ? _a : 0,
126
+ });
127
+ });
128
+ /** 三个分组的总数是否都已收到(避免加载中误判为空状态) */
129
+ const allReceived = totals.Star !== undefined && totals.Urgent !== undefined && totals.None !== undefined;
130
+ const total = allReceived ? sumGroupTotals(groups) : undefined;
131
+ /** 三个分组中任一列表正在请求(filter 变化/首次加载等)时视为加载中 */
132
+ const loading = groups.some((g) => g.list.loading);
133
+ /** 是否处于 team/workspace 过滤状态 */
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 防抖触发,这里同步另外两个分组 */
142
+ const handleSearchAll = (val) => {
143
+ if (searchTimerRef.current)
144
+ clearTimeout(searchTimerRef.current);
145
+ searchTimerRef.current = setTimeout(() => {
146
+ [starList, urgentList].forEach((list) => list.triggerSearch(val !== null && val !== void 0 ? val : ""));
147
+ }, 1000);
148
+ };
149
+ /** 排序同步:主列表(None)由 ListHeaderTool 内部触发,这里同步另外两个分组 */
150
+ const handleSortAll = (params) => {
151
+ [starList, urgentList].forEach((list) => list.triggerSort(params));
152
+ };
153
+ const headerTool = observe(() => (React.createElement(ListHeaderTool, { key: activeTab, 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
+ return observe(() => (React.createElement(ListDataContext.Provider, { value: noneList },
155
+ React.createElement("div", { className: "h-full flex flex-col" },
156
+ 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" }, loading ? "Loading..." : `Showing ${total !== null && total !== void 0 ? total : 0} of ${allTotal} total`) }),
158
+ (asideContext === null || asideContext === void 0 ? void 0 : asideContext.asideContent) && headerTool,
159
+ React.createElement("div", { className: "pinned-content h-full" },
160
+ React.createElement(DocumentViewClass, { groups: groups, onItemClick: props.onItemClick }))))));
63
161
  };
64
162
  export default DocumentSection;
65
163
  //# sourceMappingURL=DocumentSection.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"DocumentSection.js","sourceRoot":"","sources":["../../../../src/modules/my-document/DocumentTableGroup/DocumentSection.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"DocumentSection.js","sourceRoot":"","sources":["../../../../src/modules/my-document/DocumentTableGroup/DocumentSection.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,19 @@
1
+ import React from "react";
2
+ import type { IUnit } from "@voplus/morpho-org";
3
+ import type { IWorkspace } from "../../../data/workspace";
4
+ /** 统计行内的筛选 pill 条:展示 team/workspace 选中项,每项一个可关闭 pill,支持全量重置 */
5
+ export declare const FilterPillsBar: (props: {
6
+ /** 选中的 team 项 */
7
+ teamItems: IUnit[];
8
+ /** 选中的 workspace 项 */
9
+ workspaceItems: IWorkspace[];
10
+ /** 移除单个 team 项(触发重新过滤) */
11
+ onRemoveTeamItem: (item: IUnit) => void;
12
+ /** 移除单个 workspace 项(触发重新过滤) */
13
+ onRemoveWorkspaceItem: (item: IWorkspace) => void;
14
+ /** 重置全部筛选 */
15
+ onResetFilters: () => void;
16
+ /** 统计文本(Showing X of Y total) */
17
+ showTotal: React.ReactNode;
18
+ }) => React.JSX.Element;
19
+ export default FilterPillsBar;
@@ -0,0 +1,17 @@
1
+ import React from "react";
2
+ import { FontAwesomeIcon as FAIcon, faXmarkSolid } from "@voplus/morpho-ui/es/faIcons";
3
+ /** 统计行内的筛选 pill 条:展示 team/workspace 选中项,每项一个可关闭 pill,支持全量重置 */
4
+ export const FilterPillsBar = (props) => {
5
+ const { teamItems, workspaceItems, onRemoveTeamItem, onRemoveWorkspaceItem, onResetFilters } = props;
6
+ const hasFilters = teamItems.length > 0 || workspaceItems.length > 0;
7
+ const Item = ({ item, onRemove, }) => (React.createElement("span", { className: "flex h-9.5 items-center gap-3 rounded-full border border-font-disabled pl-4 pr-3 text-xs font-semibold text-font-primary" },
8
+ item.name,
9
+ React.createElement(FAIcon, { className: "cursor-pointer text-font-disabled", icon: faXmarkSolid, onClick: () => onRemove(item) })));
10
+ return (React.createElement("div", { className: "flex flex-wrap items-center gap-3 px-5 pb-3.5" },
11
+ teamItems.map((item) => (React.createElement(Item, { key: `team-${item.id}`, item: item, onRemove: onRemoveTeamItem }))),
12
+ workspaceItems.map((item) => (React.createElement(Item, { key: `workspace-${item.id}`, item: item, onRemove: onRemoveWorkspaceItem }))),
13
+ hasFilters && (React.createElement("button", { className: "text-sm font-semibold uppercase tracking-wide text-font-grey underline cursor-pointer", onClick: onResetFilters }, "Reset")),
14
+ React.createElement("span", { className: "ml-auto text-sm font-medium text-font-primary" }, props.showTotal)));
15
+ };
16
+ export default FilterPillsBar;
17
+ //# sourceMappingURL=FilterPillsBar.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FilterPillsBar.js","sourceRoot":"","sources":["../../../../src/modules/my-document/DocumentTableGroup/FilterPillsBar.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAG1B,OAAO,EAAE,eAAe,IAAI,MAAM,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AAEvF,+DAA+D;AAC/D,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,KAa9B,EAAE,EAAE;IACJ,MAAM,EAAE,SAAS,EAAE,cAAc,EAAE,gBAAgB,EAAE,qBAAqB,EAAE,cAAc,EAAE,GAC3F,KAAK,CAAC;IACP,MAAM,UAAU,GAAG,SAAS,CAAC,MAAM,GAAG,CAAC,IAAI,cAAc,CAAC,MAAM,GAAG,CAAC,CAAC;IAErE,MAAM,IAAI,GAAG,CAAC,EACb,IAAI,EACJ,QAAQ,GAIR,EAAE,EAAE,CAAC,CACL,8BAAM,SAAS,EAAC,0HAA0H;QACxI,IAAI,CAAC,IAAI;QACV,oBAAC,MAAM,IACN,SAAS,EAAC,mCAAmC,EAC7C,IAAI,EAAE,YAAY,EAClB,OAAO,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,GAC5B,CACI,CACP,CAAC;IACF,OAAO,CACN,6BAAK,SAAS,EAAC,+CAA+C;QAC5D,SAAS,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CACxB,oBAAC,IAAI,IAAC,GAAG,EAAE,QAAQ,IAAI,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,gBAAgB,GAAI,CACxE,CAAC;QACD,cAAc,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAC7B,oBAAC,IAAI,IAAC,GAAG,EAAE,aAAa,IAAI,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,qBAAqB,GAAI,CAClF,CAAC;QACD,UAAU,IAAI,CACd,gCACC,SAAS,EAAC,uFAAuF,EACjG,OAAO,EAAE,cAAc,YAGf,CACT;QACD,8BAAM,SAAS,EAAC,+CAA+C,IAAE,KAAK,CAAC,SAAS,CAAQ,CACnF,CACN,CAAC;AACH,CAAC,CAAC;AAEF,eAAe,cAAc,CAAC"}
@@ -3,6 +3,10 @@
3
3
  * */
4
4
  import React from "react";
5
5
  export declare function capitalizeFirstLetter(str: string): string;
6
+ /**
7
+ * 文档分组视图容器:负责加载门控,始终渲染单一 DocumentSection
8
+ * (Star/Urgent/None 三分组);空状态由 Section 内部呈现,保证工具栏可用。
9
+ */
6
10
  declare const DocumentTableGroup: (props: {
7
11
  id: string;
8
12
  onClickItem?: (id?: string) => void;
@@ -1,10 +1,9 @@
1
1
  /**
2
2
  * 使用在 MyDocument 中的全新 UI 设计
3
3
  * */
4
- import React, { useEffect, useState } from "react";
4
+ import React from "react";
5
5
  import { useDocumentViewContext } from "../DocumentViewContext";
6
6
  import { observe, useAsideContentContext } from "@voplus/morpho-ui";
7
- import { FontAwesomeIcon as FAIcon, faFolderOpenSolid, faStarSolid, faExclamationCircleSolid, } from "@voplus/morpho-ui/es/faIcons";
8
7
  import DocumentPropertiesView from "@voplus/morpho-document-core/es/components/DocumentPropertiesView";
9
8
  import DocumentSection from "./DocumentSection";
10
9
  // 首字母大写工具函数
@@ -13,21 +12,15 @@ export function capitalizeFirstLetter(str) {
13
12
  return str;
14
13
  return str.charAt(0).toUpperCase() + str.slice(1);
15
14
  }
15
+ /**
16
+ * 文档分组视图容器:负责加载门控,始终渲染单一 DocumentSection
17
+ * (Star/Urgent/None 三分组);空状态由 Section 内部呈现,保证工具栏可用。
18
+ */
16
19
  const DocumentTableGroup = (props) => {
17
20
  const { id } = props;
18
- const { loaded, activeTab, filterOptions } = useDocumentViewContext();
19
- const [totalArr, setTotalArr] = useState([0, 0, 1]);
20
- useEffect(() => setTotalArr([0, 0, 1]), [activeTab, loaded, filterOptions]);
21
+ const { loaded } = useDocumentViewContext();
21
22
  const asideContext = useAsideContentContext();
22
- return observe(() => (React.createElement(React.Fragment, null, loaded &&
23
- (totalArr.every((t) => t === 0) ? (React.createElement("div", { className: "text-center py-12" },
24
- React.createElement("div", { className: "mb-4" },
25
- React.createElement(FAIcon, { icon: faFolderOpenSolid, className: "text-slate-300 text-6xl" })),
26
- React.createElement("h3", { className: "text-lg font-semibold text-slate-900 mb-2" }, "No documents found"),
27
- React.createElement("p", { className: "text-slate-600" }, "Try adjusting your filters or create a new document."))) : (React.createElement(React.Fragment, null,
28
- React.createElement(DocumentSection, { id: id, flag: "Star", icon: React.createElement(FAIcon, { icon: faStarSolid, className: "text-yellow-500" }), title: `Starred`, onItemClick: onItemClick, onTotalChange: (total) => handleTotalChange(0, total) }),
29
- React.createElement(DocumentSection, { id: id, flag: "Urgent", icon: React.createElement(FAIcon, { icon: faExclamationCircleSolid, className: "text-red-500" }), title: `Urgent`, onItemClick: onItemClick, onTotalChange: (total) => handleTotalChange(1, total) }),
30
- React.createElement(DocumentSection, { id: id, flag: "None", title: `Documents`, onItemClick: onItemClick, onTotalChange: (total) => handleTotalChange(2, total) })))))));
23
+ return observe(() => (React.createElement(React.Fragment, null, loaded && React.createElement(DocumentSection, { id: id, onItemClick: onItemClick }))));
31
24
  function onItemClick(id) {
32
25
  var _a;
33
26
  if (!id)
@@ -35,14 +28,6 @@ const DocumentTableGroup = (props) => {
35
28
  asideContext === null || asideContext === void 0 ? void 0 : asideContext.openAside(React.createElement(DocumentPropertiesView, { id: id }), { span: 10 });
36
29
  (_a = props.onClickItem) === null || _a === void 0 ? void 0 : _a.call(props, id);
37
30
  }
38
- // 监听每个 section 的 total
39
- function handleTotalChange(index, total) {
40
- setTotalArr((prev) => {
41
- const next = [...prev];
42
- next[index] = total;
43
- return next;
44
- });
45
- }
46
31
  };
47
32
  export default DocumentTableGroup;
48
33
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/modules/my-document/DocumentTableGroup/index.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/modules/my-document/DocumentTableGroup/index.tsx"],"names":[],"mappings":"AAAA;;KAEK;AAEL,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,sBAAsB,EAAE,MAAM,wBAAwB,CAAC;AAChE,OAAO,EAAE,OAAO,EAAE,sBAAsB,EAAE,MAAM,mBAAmB,CAAC;AACpE,OAAO,sBAAsB,MAAM,mEAAmE,CAAC;AACvG,OAAO,eAAe,MAAM,mBAAmB,CAAC;AAEhD,YAAY;AACZ,MAAM,UAAU,qBAAqB,CAAC,GAAW;IAChD,IAAI,CAAC,GAAG;QAAE,OAAO,GAAG,CAAC;IACrB,OAAO,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AACnD,CAAC;AAED;;;GAGG;AACH,MAAM,kBAAkB,GAAG,CAAC,KAA0D,EAAE,EAAE;IACzF,MAAM,EAAE,EAAE,EAAE,GAAG,KAAK,CAAC;IAErB,MAAM,EAAE,MAAM,EAAE,GAAG,sBAAsB,EAAE,CAAC;IAE5C,MAAM,YAAY,GAAG,sBAAsB,EAAE,CAAC;IAE9C,OAAO,OAAO,CAAC,GAAG,EAAE,CAAC,CACpB,0CACE,MAAM,IAAI,oBAAC,eAAe,IAAC,EAAE,EAAE,EAAE,EAAE,WAAW,EAAE,WAAW,GAAI,CAC9D,CACH,CAAC,CAAC;IAEH,SAAS,WAAW,CAAC,EAAW;;QAC/B,IAAI,CAAC,EAAE;YAAE,OAAO;QAChB,YAAY,aAAZ,YAAY,uBAAZ,YAAY,CAAE,SAAS,CAAC,oBAAC,sBAAsB,IAAC,EAAE,EAAE,EAAE,GAAI,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC;QAC1E,MAAA,KAAK,CAAC,WAAW,sDAAG,EAAE,CAAC,CAAC;IACzB,CAAC;AACF,CAAC,CAAC;AAEF,eAAe,kBAAkB,CAAC"}
@@ -1,20 +1,37 @@
1
1
  import React, { ReactNode } from "react";
2
2
  import { FilterOption } from "@voplus/morpho-data";
3
+ import { IUnit } from "@voplus/morpho-org";
4
+ import { IWorkspace } from "../../data/workspace";
3
5
  export type DocumentViewType = "table" | "grid";
4
6
  export type DocumentFilterType = "pinned" | "personal" | "team" | "workspace";
5
7
  export declare const INITIAL_PAGE: {
6
8
  Page: number;
7
9
  PageSize: number;
8
10
  };
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
+ /**
16
+ * team + workspace 选中项 → 单个 ParentNodeId contains 过滤条件。
17
+ * 两侧的 id(team 用 containerId,workspace 用 id)合并进同一个条件,
18
+ * 避免同时过滤时产生两个 ParentNodeId 条件(全部为空数组时不返回条件)。
19
+ */
20
+ export declare const parentNodeFilterOptions: (teamItems: IUnit[], workspaceItems: IWorkspace[]) => FilterOption[];
9
21
  interface DocumentViewContextProps {
10
22
  loaded: boolean;
11
23
  activeTab: DocumentFilterType;
12
24
  viewType: DocumentViewType;
13
25
  filterOptions?: FilterOption[];
26
+ teamItems: IUnit[];
27
+ workspaceItems: IWorkspace[];
14
28
  onReload: () => void;
15
29
  setActiveTab: (activeTab: DocumentFilterType) => void;
16
30
  setViewType: (viewType: DocumentViewType) => void;
17
- onApplyFilter: (activeTab: DocumentFilterType, value: FilterOption[] | []) => void;
31
+ onApplyFilter: (activeTab: DocumentFilterType, value: FilterOption[] | [], items?: IUnit[] | IWorkspace[]) => void;
32
+ onRemoveTeamItem: (item: IUnit) => void;
33
+ onRemoveWorkspaceItem: (item: IWorkspace) => void;
34
+ onResetFilters: () => void;
18
35
  }
19
36
  export declare const useDocumentViewContext: () => DocumentViewContextProps;
20
37
  export declare const DocumentViewProvider: React.FC<{
@@ -3,6 +3,49 @@ 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
+ /**
29
+ * team + workspace 选中项 → 单个 ParentNodeId contains 过滤条件。
30
+ * 两侧的 id(team 用 containerId,workspace 用 id)合并进同一个条件,
31
+ * 避免同时过滤时产生两个 ParentNodeId 条件(全部为空数组时不返回条件)。
32
+ */
33
+ export const parentNodeFilterOptions = (teamItems, workspaceItems) => {
34
+ const ids = [
35
+ ...teamItems.map((item) => item.containerId),
36
+ ...workspaceItems.map((item) => item.id),
37
+ ];
38
+ return ids.length
39
+ ? [
40
+ {
41
+ c: "ParentNodeId",
42
+ o: "contains",
43
+ l: "And",
44
+ v1: JSON.stringify(ids),
45
+ },
46
+ ]
47
+ : [];
48
+ };
6
49
  const DocumentViewContext = createContext(undefined);
7
50
  export const useDocumentViewContext = () => {
8
51
  const ctx = useContext(DocumentViewContext);
@@ -13,18 +56,72 @@ export const useDocumentViewContext = () => {
13
56
  export const DocumentViewProvider = ({ children }) => {
14
57
  const [filterOptions, setFilterOptions] = useState(undefined);
15
58
  const [viewType, setViewType] = useState("table");
16
- const [activeTab, setActiveTab] = useState("pinned");
59
+ const [activeTab, setActiveTabState] = useState("pinned");
17
60
  const [loaded, setLoaded] = useState(true);
61
+ const [teamItems, setTeamItems] = useState([]);
62
+ 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
+ }, []);
18
75
  const onReload = useCallback(() => {
19
76
  setLoaded(false);
20
77
  setTimeout(() => {
21
78
  setLoaded(true);
22
79
  }, 100);
23
80
  }, []);
24
- const onApplyFilter = useCallback((activeTab, value) => {
25
- setFilterOptions(value);
81
+ const onApplyFilter = useCallback((activeTab, value, items) => {
82
+ var _a, _b;
26
83
  setActiveTab(activeTab);
84
+ if (activeTab === "team") {
85
+ const team = (_a = items) !== null && _a !== void 0 ? _a : [];
86
+ setTeamItems(team);
87
+ setFilterOptions(parentNodeFilterOptions(team, workspaceItems));
88
+ }
89
+ else if (activeTab === "workspace") {
90
+ const ws = (_b = items) !== null && _b !== void 0 ? _b : [];
91
+ setWorkspaceItems(ws);
92
+ setFilterOptions(parentNodeFilterOptions(teamItems, ws));
93
+ }
94
+ else {
95
+ setFilterOptions(value);
96
+ }
97
+ }, [teamItems, workspaceItems, setActiveTab]);
98
+ /** 重置全部筛选:清空 team/workspace 选中项与过滤条件并回到 pinned */
99
+ const onResetFilters = useCallback(() => {
100
+ setTeamItems([]);
101
+ setWorkspaceItems([]);
102
+ setFilterOptions(undefined);
103
+ setActiveTab("pinned");
27
104
  }, []);
105
+ /** 移除单个 team 项并重新生成过滤条件;两侧均无选中项时调用 onResetFilters 回到 pinned */
106
+ const onRemoveTeamItem = useCallback((item) => {
107
+ const next = teamItems.filter((i) => i.id !== item.id);
108
+ if (next.length === 0 && workspaceItems.length === 0) {
109
+ onResetFilters();
110
+ return;
111
+ }
112
+ setTeamItems(next);
113
+ setFilterOptions(parentNodeFilterOptions(next, workspaceItems));
114
+ }, [teamItems, workspaceItems, onResetFilters]);
115
+ /** 移除单个 workspace 项并重新生成过滤条件;两侧均无选中项时调用 onResetFilters 回到 pinned */
116
+ const onRemoveWorkspaceItem = useCallback((item) => {
117
+ const next = workspaceItems.filter((i) => i.id !== item.id);
118
+ if (teamItems.length === 0 && next.length === 0) {
119
+ onResetFilters();
120
+ return;
121
+ }
122
+ setWorkspaceItems(next);
123
+ setFilterOptions(parentNodeFilterOptions(teamItems, next));
124
+ }, [teamItems, workspaceItems, onResetFilters]);
28
125
  return (React.createElement(DocumentViewContext.Provider, { value: {
29
126
  viewType,
30
127
  setViewType,
@@ -32,6 +129,11 @@ export const DocumentViewProvider = ({ children }) => {
32
129
  onReload,
33
130
  filterOptions,
34
131
  onApplyFilter,
132
+ teamItems,
133
+ workspaceItems,
134
+ onRemoveTeamItem,
135
+ onRemoveWorkspaceItem,
136
+ onResetFilters,
35
137
  activeTab,
36
138
  setActiveTab,
37
139
  } }, children));
@@ -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;AAO3F,MAAM,CAAC,MAAM,YAAY,GAAG;IAC3B,IAAI,EAAE,CAAC;IACP,QAAQ,EAAE,EAAE;CACZ,CAAC;AAaF,MAAM,mBAAmB,GAAG,aAAa,CAAuC,SAAS,CAAC,CAAC;AAE3F,MAAM,CAAC,MAAM,sBAAsB,GAAG,GAAG,EAAE;IAC1C,MAAM,GAAG,GAAG,UAAU,CAAC,mBAAmB,CAAC,CAAC;IAE5C,IAAI,CAAC,GAAG;QAAE,MAAM,IAAI,KAAK,CAAC,mEAAmE,CAAC,CAAC;IAC/F,OAAO,GAAG,CAAC;AACZ,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,oBAAoB,GAAsC,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE;IACvF,MAAM,CAAC,aAAa,EAAE,gBAAgB,CAAC,GAAG,QAAQ,CAA6B,SAAS,CAAC,CAAC;IAC1F,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAG,QAAQ,CAAmB,OAAO,CAAC,CAAC;IACpE,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,QAAQ,CAAqB,QAAQ,CAAC,CAAC;IACzE,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC;IAE3C,MAAM,QAAQ,GAAG,WAAW,CAAC,GAAG,EAAE;QACjC,SAAS,CAAC,KAAK,CAAC,CAAC;QACjB,UAAU,CAAC,GAAG,EAAE;YACf,SAAS,CAAC,IAAI,CAAC,CAAC;QACjB,CAAC,EAAE,GAAG,CAAC,CAAC;IACT,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,MAAM,aAAa,GAAG,WAAW,CAAC,CAAC,SAA6B,EAAE,KAA0B,EAAE,EAAE;QAC/F,gBAAgB,CAAC,KAAK,CAAC,CAAC;QACxB,YAAY,CAAC,SAAS,CAAC,CAAC;IACzB,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,OAAO,CACN,oBAAC,mBAAmB,CAAC,QAAQ,IAC5B,KAAK,EAAE;YACN,QAAQ;YACR,WAAW;YACX,MAAM;YACN,QAAQ;YACR,aAAa;YACb,aAAa;YACb,SAAS;YACT,YAAY;SACZ,IAEA,QAAQ,CACqB,CAC/B,CAAC;AACH,CAAC,CAAC"}
1
+ {"version":3,"file":"DocumentViewContext.js","sourceRoot":"","sources":["../../../src/modules/my-document/DocumentViewContext.tsx"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import React from "react";
2
2
  declare const FilterTabsBar: (props: {
3
- onAdd?: () => void;
3
+ headerTool?: React.ReactNode;
4
4
  }) => React.JSX.Element;
5
5
  export default FilterTabsBar;