@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
@@ -1,37 +1,21 @@
1
1
  import React from "react";
2
- import { Button } from "antd";
3
2
  import { observe } from "@voplus/morpho-ui";
4
3
  import { useDocumentViewContext } from "../DocumentViewContext";
5
- import { FontAwesomeIcon as FAIcon, faListUlRegular, faThLargeSolid, faPlusRegular, faStarSolid, faUserSolid, } from "@voplus/morpho-ui/es/faIcons";
4
+ import { FontAwesomeIcon as FAIcon, faStarSolid } from "@voplus/morpho-ui/es/faIcons";
6
5
  import WorkspacesFilter from "../FilterUI/WorkspaceFilter";
7
6
  import TeamFilter from "../FilterUI/TeamFilter";
7
+ import classnames from "classnames";
8
+ import { tabBtnBaseClass, tabBtnDefaultClass, tabBtnActiveClass } from "../tabClasses";
8
9
  const FilterTabsBar = (props) => {
9
- const { onAdd } = props;
10
- const { viewType, setViewType, activeTab, setActiveTab } = useDocumentViewContext();
11
- return observe(() => (React.createElement("div", { className: "px-5 py-4 shrink-0" },
12
- React.createElement("div", { className: "flex items-center justify-between" },
13
- React.createElement("div", { className: "flex items-center gap-2" },
14
- React.createElement(Button, { type: activeTab === "pinned" ? "primary" : "default", onClick: () => setActiveTab("pinned") },
15
- React.createElement(FAIcon, { icon: faStarSolid, className: "mr-2" }),
16
- "Pinned Documents"),
17
- React.createElement(Button, { type: activeTab === "personal" ? "primary" : "default", onClick: () => setActiveTab("personal") },
18
- React.createElement(FAIcon, { icon: faUserSolid, className: "mr-2" }),
19
- "Personal"),
20
- React.createElement(TeamFilter, null),
21
- React.createElement(WorkspacesFilter, null)),
22
- React.createElement("div", { className: "flex items-center gap-3" },
23
- React.createElement("div", { className: "flex items-center gap-1 bg-slate-100 rounded-lg p-1" },
24
- React.createElement("button", { className: `w-6 h-6 flex items-center justify-center rounded transition-colors ${viewType === "table"
25
- ? "bg-white text-slate-900 shadow-sm"
26
- : "text-slate-500 hover:text-slate-700"}`, title: "List View", onClick: () => setViewType("table") },
27
- React.createElement(FAIcon, { icon: faListUlRegular, className: "text-sm" })),
28
- React.createElement("button", { className: `w-6 h-6 flex items-center justify-center rounded transition-colors ${viewType === "grid"
29
- ? "bg-white text-slate-900 shadow-sm"
30
- : "text-slate-500 hover:text-slate-700"}`, title: "Grid View", onClick: () => setViewType("grid") },
31
- React.createElement(FAIcon, { icon: faThLargeSolid, className: "text-sm" }))),
32
- React.createElement(Button, { type: "primary", onClick: onAdd },
33
- React.createElement(FAIcon, { icon: faPlusRegular }),
34
- "New"))))));
10
+ const { activeTab, setActiveTab } = useDocumentViewContext();
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]", activeTab === "pinned" ? tabBtnActiveClass : tabBtnDefaultClass), onClick: () => setActiveTab("pinned") },
13
+ React.createElement(FAIcon, { icon: faStarSolid })),
14
+ React.createElement("span", { className: "h-11 w-px bg-border" }),
15
+ React.createElement("button", { className: classnames(tabBtnBaseClass, "px-5 uppercase", activeTab === "personal" ? tabBtnActiveClass : tabBtnDefaultClass), onClick: () => setActiveTab("personal") }, "Personal"),
16
+ React.createElement(TeamFilter, null),
17
+ React.createElement(WorkspacesFilter, null),
18
+ props.headerTool)));
35
19
  };
36
20
  export default FilterTabsBar;
37
21
  //# sourceMappingURL=index.js.map
@@ -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,MAAM,EAAE,MAAM,MAAM,CAAC;AAC9B,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,EACb,WAAW,EACX,WAAW,GACX,MAAM,8BAA8B,CAAC;AACtC,OAAO,gBAAgB,MAAM,6BAA6B,CAAC;AAC3D,OAAO,UAAU,MAAM,wBAAwB,CAAC;AAEhD,MAAM,aAAa,GAAG,CAAC,KAA6B,EAAE,EAAE;IACvD,MAAM,EAAE,KAAK,EAAE,GAAG,KAAK,CAAC;IAExB,MAAM,EAAE,QAAQ,EAAE,WAAW,EAAE,SAAS,EAAE,YAAY,EAAE,GAAG,sBAAsB,EAAE,CAAC;IAEpF,OAAO,OAAO,CAAC,GAAG,EAAE,CAAC,CACpB,6BAAK,SAAS,EAAC,oBAAoB;QAClC,6BAAK,SAAS,EAAC,mCAAmC;YACjD,6BAAK,SAAS,EAAC,yBAAyB;gBAEvC,oBAAC,MAAM,IACN,IAAI,EAAE,SAAS,KAAK,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,EACpD,OAAO,EAAE,GAAG,EAAE,CAAC,YAAY,CAAC,QAAQ,CAAC;oBAErC,oBAAC,MAAM,IAAC,IAAI,EAAE,WAAW,EAAE,SAAS,EAAC,MAAM,GAAG;uCAEtC;gBAGT,oBAAC,MAAM,IACN,IAAI,EAAE,SAAS,KAAK,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,EACtD,OAAO,EAAE,GAAG,EAAE,CAAC,YAAY,CAAC,UAAU,CAAC;oBAEvC,oBAAC,MAAM,IAAC,IAAI,EAAE,WAAW,EAAE,SAAS,EAAC,MAAM,GAAG;+BAEtC;gBAGT,oBAAC,UAAU,OAAG;gBAGd,oBAAC,gBAAgB,OAAG,CACf;YAGN,6BAAK,SAAS,EAAC,yBAAyB;gBAEvC,6BAAK,SAAS,EAAC,qDAAqD;oBACnE,gCACC,SAAS,EAAE,sEACV,QAAQ,KAAK,OAAO;4BACnB,CAAC,CAAC,mCAAmC;4BACrC,CAAC,CAAC,qCACJ,EAAE,EACF,KAAK,EAAC,WAAW,EACjB,OAAO,EAAE,GAAG,EAAE,CAAC,WAAW,CAAC,OAAO,CAAC;wBAEnC,oBAAC,MAAM,IAAC,IAAI,EAAE,eAAe,EAAE,SAAS,EAAC,SAAS,GAAG,CAC7C;oBACT,gCACC,SAAS,EAAE,sEACV,QAAQ,KAAK,MAAM;4BAClB,CAAC,CAAC,mCAAmC;4BACrC,CAAC,CAAC,qCACJ,EAAE,EACF,KAAK,EAAC,WAAW,EACjB,OAAO,EAAE,GAAG,EAAE,CAAC,WAAW,CAAC,MAAM,CAAC;wBAElC,oBAAC,MAAM,IAAC,IAAI,EAAE,cAAc,EAAE,SAAS,EAAC,SAAS,GAAG,CAC5C,CACJ;gBAEN,oBAAC,MAAM,IAAC,IAAI,EAAC,SAAS,EAAC,OAAO,EAAE,KAAK;oBACpC,oBAAC,MAAM,IAAC,IAAI,EAAE,aAAa,GAAI;0BAEvB,CACJ,CACD,CACD,CACN,CAAC,CAAC;AACJ,CAAC,CAAC;AAEF,eAAe,aAAa,CAAC"}
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,WAAW,EAAE,MAAM,8BAA8B,CAAC;AACtF,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,SAAS,EAAE,YAAY,EAAE,GAAG,sBAAsB,EAAE,CAAC;IAE7D,OAAO,OAAO,CAAC,GAAG,EAAE,CAAC,CACpB,6BAAK,SAAS,EAAC,4CAA4C;QAC1D,gCACC,SAAS,EAAE,UAAU,CACpB,eAAe,EACf,UAAU,EACV,SAAS,KAAK,QAAQ,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,kBAAkB,CAC/D,EACD,OAAO,EAAE,GAAG,EAAE,CAAC,YAAY,CAAC,QAAQ,CAAC;YAErC,oBAAC,MAAM,IAAC,IAAI,EAAE,WAAW,GAAI,CACrB;QAET,8BAAM,SAAS,EAAC,qBAAqB,GAAQ;QAE7C,gCACC,SAAS,EAAE,UAAU,CACpB,eAAe,EACf,gBAAgB,EAChB,SAAS,KAAK,UAAU,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,kBAAkB,CACjE,EACD,OAAO,EAAE,GAAG,EAAE,CAAC,YAAY,CAAC,UAAU,CAAC,eAG/B;QAET,oBAAC,UAAU,OAAG;QACd,oBAAC,gBAAgB,OAAG;QACnB,KAAK,CAAC,UAAU,CAWZ,CACN,CAAC,CAAC;AACJ,CAAC,CAAC;AAEF,eAAe,aAAa,CAAC"}
@@ -1,14 +1,16 @@
1
1
  import React from "react";
2
2
  import { Checkbox } from "antd";
3
- import { useDocumentViewContext } from "../../DocumentViewContext";
3
+ import { useDocumentViewContext, teamItemsToFilterOption } 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
- import { FontAwesomeIcon as FAIcon, faUsersSolid, faFilterSolid, } from "@voplus/morpho-ui/es/faIcons";
7
+ import { FontAwesomeIcon as FAIcon, faFilterSolid } from "@voplus/morpho-ui/es/faIcons";
8
8
  import FilterUI from "..";
9
9
  const TeamFilter = () => {
10
- const { onApplyFilter, activeTab } = useDocumentViewContext();
10
+ const { onApplyFilter, activeTab, teamItems } = useDocumentViewContext();
11
11
  const [showOnlyMyTeams, setShowOnlyMyTeams] = React.useState(true);
12
+ /** 受控回显用的选中 id(context teamItems 变化时才重建引用,避免 wipe 用户下拉草稿) */
13
+ const selectedIds = React.useMemo(() => teamItems.map((item) => item.id), [teamItems]);
12
14
  const list = useCreateListDataState({
13
15
  filterDefaults: {
14
16
  filters: showOnlyMyTeams
@@ -36,20 +38,11 @@ const TeamFilter = () => {
36
38
  useRenderOnChange(() => list.filters.options);
37
39
  /** 把ListDataState传给useContactListEffect,使之可以自動更新loading, hasmore. */
38
40
  useUnitListEffect(list, (result) => list.union(result), list.filters.options);
39
- return observe(() => (React.createElement(FilterUI, { multiple: true, label: "Teams", icon: React.createElement(FAIcon, { icon: faUsersSolid, className: "mr-2" }), list: list, active: activeTab === "team", searchPlaceholder: "Search teams...", customDropdownItem: React.createElement("div", { className: "px-4 py-2.5 bg-slate-50 border-b border-slate-200" },
40
- React.createElement("label", { className: "flex items-center gap-2 cursor-pointer group" },
41
+ return observe(() => (React.createElement(FilterUI, { multiple: true, label: "Team", list: list, active: activeTab === "team", searchPlaceholder: "Search teams...", customDropdownItem: React.createElement("div", { className: "px-4 py-2.5 bg-bg border-b border-border" },
42
+ React.createElement("label", { className: "flex items-center gap-2 cursor-pointer group text-font-grey text-sm font-medium" },
41
43
  React.createElement(Checkbox, { checked: showOnlyMyTeams, onChange: (e) => setShowOnlyMyTeams(e.target.checked) }),
42
- React.createElement(FAIcon, { icon: faFilterSolid, className: "text-slate-400 text-xs" }),
43
- React.createElement("span", { className: "text-xs font-medium text-slate-700 group-hover:text-slate-900" }, "Show only my teams"))), onFilter: (items) => onApplyFilter("team", items.length
44
- ? [
45
- {
46
- c: "ParentNodeId",
47
- o: "contains",
48
- l: "And",
49
- v1: JSON.stringify(items.map((item) => item.containerId)),
50
- },
51
- ]
52
- : []) })));
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", teamItemsToFilterOption(items), items) })));
53
46
  };
54
47
  export default TeamFilter;
55
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":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/modules/my-document/FilterUI/TeamFilter/index.tsx"],"names":[],"mappings":"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"}
@@ -1,15 +1,17 @@
1
1
  import React from "react";
2
2
  import { Checkbox } from "antd";
3
- import { useDocumentViewContext } from "../../DocumentViewContext";
3
+ import { useDocumentViewContext, workspaceItemsToFilterOption } 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";
7
7
  import { useAutoUpdateListData } from "../../../../data/workspace/workspace-events";
8
- import { FontAwesomeIcon as FAIcon, faBriefcaseSolid, faFilterSolid, } from "@voplus/morpho-ui/es/faIcons";
8
+ import { FontAwesomeIcon as FAIcon, faFilterSolid, } from "@voplus/morpho-ui/es/faIcons";
9
9
  import FilterUI from "..";
10
10
  const WorkspaceFilter = () => {
11
- const { onApplyFilter, activeTab } = useDocumentViewContext();
11
+ const { onApplyFilter, activeTab, workspaceItems } = useDocumentViewContext();
12
12
  const [showOnlyMyWorkspaces, setShowOnlyMyWorkspaces] = React.useState(true);
13
+ /** 受控回显用的选中 id(context workspaceItems 变化时才重建引用,避免 wipe 用户下拉草稿) */
14
+ const selectedIds = React.useMemo(() => workspaceItems.map((item) => item.id), [workspaceItems]);
13
15
  /** 建立 ListView 和useWorkspaceListEffect所需的ListDataState. 会根据state.id重建所以不需reset. */
14
16
  const list = useCreateListDataState({
15
17
  filterDefaults: {
@@ -25,20 +27,11 @@ const WorkspaceFilter = () => {
25
27
  useWorkspaceListEffect(list, (result) => list.union(result), list.filters.options);
26
28
  /** useOnNewWorkspace, useOnDeleteWorkspace的sugar syntax 自動更新list. */
27
29
  useAutoUpdateListData(list, (d) => true);
28
- return observe(() => (React.createElement(FilterUI, { multiple: true, label: "Workspaces", active: activeTab === "workspace", icon: React.createElement(FAIcon, { icon: faBriefcaseSolid, className: "mr-2" }), list: list, searchPlaceholder: "Search workspaces...", customDropdownItem: React.createElement("div", { className: "px-4 py-2.5 bg-slate-50 border-b border-slate-200" },
29
- React.createElement("label", { className: "flex items-center gap-2 cursor-pointer group" },
30
+ return observe(() => (React.createElement(FilterUI, { multiple: true, label: "Workspace", active: activeTab === "workspace", list: list, searchPlaceholder: "Search workspaces...", customDropdownItem: React.createElement("div", { className: "px-4 py-2.5 bg-bg border-b border-border" },
31
+ React.createElement("label", { className: "flex items-center gap-2 cursor-pointer group text-font-grey text-sm font-medium" },
30
32
  React.createElement(Checkbox, { checked: showOnlyMyWorkspaces, onChange: (e) => setShowOnlyMyWorkspaces(e.target.checked) }),
31
- React.createElement(FAIcon, { icon: faFilterSolid, className: "text-slate-400 text-xs" }),
32
- React.createElement("span", { className: "text-xs font-medium text-slate-700 group-hover:text-slate-900" }, "Show only my workspaces"))), onFilter: (items) => onApplyFilter("workspace", items.length
33
- ? [
34
- {
35
- c: "ParentNodeId",
36
- o: "contains",
37
- l: "And",
38
- v1: JSON.stringify(items.map((item) => item.id)),
39
- },
40
- ]
41
- : []) })));
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", workspaceItemsToFilterOption(items), items) })));
42
35
  };
43
36
  export default WorkspaceFilter;
44
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":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/modules/my-document/FilterUI/WorkspaceFilter/index.tsx"],"names":[],"mappings":"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"}
@@ -13,5 +13,7 @@ declare const FilterUI: <T extends {
13
13
  searchPlaceholder?: string;
14
14
  customDropdownItem?: React.ReactNode;
15
15
  onFilter?: (selectedArr: T[]) => void;
16
+ /** 外部驱动的选中 id(pill 关闭等路径变更时同步本地勾选状态) */
17
+ selectedIds?: string[];
16
18
  }) => React.JSX.Element;
17
19
  export default FilterUI;
@@ -2,77 +2,61 @@ import React, { useEffect, useRef, useState } from "react";
2
2
  import { debounce } from "lodash-es";
3
3
  import { observe } from "@voplus/morpho-ui";
4
4
  import { FontAwesomeIcon as FAIcon, faChevronDownRegular, faChevronUpRegular, } from "@voplus/morpho-ui/es/faIcons";
5
- import { Button, Input, Checkbox, Space, Skeleton } from "antd";
5
+ import { Input, Checkbox, Skeleton, Dropdown } from "antd";
6
+ import { tabBtnBaseClass, tabBtnDefaultClass, tabBtnActiveClass } from "../tabClasses";
7
+ import FilterDropdown from "@voplus/morpho-ui/es/controls/FilterDropdown";
8
+ import classnames from "classnames";
6
9
  import "./index.css";
7
10
  const FilterUI = (props) => {
8
- const { label, icon, list, active = false, searchPlaceholder = "Search...", multiple = false, onFilter, } = props;
11
+ const { label, icon, list, active = false, searchPlaceholder = "Search...", multiple = false, onFilter, selectedIds, } = props;
9
12
  const [showDropdown, setShowDropdown] = useState(false);
10
- const [selectedIds, setSelectedIds] = useState([]);
13
+ const [selectedIdsLocal, setSelectedIdsLocal] = useState([]);
14
+ // 外部选中项变化时同步本地勾选(如 pill 关闭清空后,下拉不再残留勾选)
15
+ useEffect(() => {
16
+ if (selectedIds)
17
+ setSelectedIdsLocal(selectedIds);
18
+ }, [selectedIds]);
11
19
  // 处理选中逻辑
12
20
  const handleCheckboxChange = (id) => {
13
21
  if (multiple) {
14
- setSelectedIds((prev) => (prev.includes(id) ? prev.filter((v) => v !== id) : [...prev, id]));
22
+ setSelectedIdsLocal((prev) => prev.includes(id) ? prev.filter((v) => v !== id) : [...prev, id]);
15
23
  }
16
24
  else {
17
- setSelectedIds((prev) => (prev.includes(id) ? [] : [id]));
25
+ setSelectedIdsLocal((prev) => (prev.includes(id) ? [] : [id]));
18
26
  }
19
27
  };
20
28
  const handleReset = () => {
21
- setSelectedIds([]);
29
+ setSelectedIdsLocal([]);
22
30
  // onFilter?.([]);
23
31
  };
24
32
  const handleApply = () => {
25
- onFilter === null || onFilter === void 0 ? void 0 : onFilter(list.data.filter((item) => selectedIds.includes(item.id)));
33
+ onFilter === null || onFilter === void 0 ? void 0 : onFilter(list.data.filter((item) => selectedIdsLocal.includes(item.id)));
26
34
  setShowDropdown(false);
27
35
  };
28
- const dropdownRef = useRef(null);
29
36
  // 防抖处理 search input
30
37
  const debouncedSearch = useRef(debounce((value) => {
31
38
  list.triggerSearch(value !== null && value !== void 0 ? value : "");
32
39
  }, 500)).current;
33
- useEffect(() => {
34
- if (!showDropdown)
35
- return;
36
- const handleClickOutside = (event) => {
37
- if (dropdownRef.current && !dropdownRef.current.contains(event.target)) {
38
- setShowDropdown(false);
39
- }
40
- };
41
- document.addEventListener("mousedown", handleClickOutside);
42
- return () => {
43
- document.removeEventListener("mousedown", handleClickOutside);
44
- };
45
- }, [showDropdown]);
46
- return observe(() => (React.createElement("div", { className: "relative", ref: dropdownRef },
47
- React.createElement(Button, { type: active ? "primary" : "default", onClick: () => setShowDropdown((v) => !v) },
48
- icon,
49
- label,
50
- showDropdown ? (React.createElement(FAIcon, { icon: faChevronUpRegular, className: "ml-1 text-xs" })) : (React.createElement(FAIcon, { icon: faChevronDownRegular, className: "ml-1 text-xs" }))),
51
- showDropdown && (React.createElement("div", { className: "absolute top-full left-0 mt-2 w-72 bg-white border border-slate-200 rounded-lg shadow-lg z-999" },
52
- React.createElement("div", { className: "p-3 border-b border-slate-200" },
53
- React.createElement("h3", { className: "text-sm font-semibold text-slate-900 mb-2" },
54
- "Select ",
55
- label),
56
- React.createElement("div", { className: "relative" },
57
- React.createElement("i", { className: "fas fa-search absolute left-3 top-1/2 transform -translate-y-1/2 text-slate-400 text-sm" }),
58
- React.createElement(Input, { placeholder: searchPlaceholder, className: "w-full pl-9 pr-3 py-2 border border-slate-300 rounded-lg text-sm focus:outline-none focus:ring-2 focus:ring-blue-500", onChange: (e) => debouncedSearch(e.target.value) }))),
59
- React.createElement("div", { className: "max-h-80 overflow-y-auto scrollbar-hide" },
60
- React.createElement(Skeleton, { loading: list.loading, active: true },
61
- props.customDropdownItem ? props.customDropdownItem : null,
62
- list.data.length > 0 ? (list.data.map((opt) => (React.createElement("div", { key: opt.id, className: "flex items-center gap-3 px-4 py-2.5 hover:bg-slate-50 cursor-pointer" },
63
- React.createElement(Checkbox, { checked: selectedIds.includes(opt.id), onChange: () => handleCheckboxChange(opt.id) }),
64
- React.createElement("div", { className: "flex-1" },
65
- React.createElement("div", { className: "text-sm font-medium text-slate-900" }, opt.name)))))) : (React.createElement("div", { className: "px-4 py-8 text-center text-sm text-slate-500" },
66
- "No ",
67
- label.toLowerCase(),
68
- " found")))),
69
- React.createElement("div", { className: "p-3 border-t border-slate-200 flex items-center justify-between" },
70
- React.createElement("span", { className: "text-xs text-slate-600" },
71
- selectedIds.length,
72
- " selected"),
73
- React.createElement(Space, null,
74
- React.createElement(Button, { type: "link", size: "small", className: "text-xs font-medium", onClick: handleReset }, "Clear"),
75
- React.createElement(Button, { type: "link", size: "small", className: "text-xs text-blue-600 hover:text-blue-700 font-medium", onClick: handleApply }, "Apply"))))))));
40
+ const overlay = observe(() => (React.createElement(FilterDropdown, { className: "w-74", title: `Select ${label}`, clearText: "Clear", onClear: handleReset, onApply: handleApply },
41
+ React.createElement(Input, { className: classnames("h-10 bg-bg-table! [&_input::placeholder]:text-font-grey!"), prefix: " ", placeholder: searchPlaceholder, onChange: (e) => debouncedSearch(e.target.value) }),
42
+ React.createElement("div", { className: "max-h-80 mt-3 overflow-y-auto scrollbar-hide" },
43
+ React.createElement(Skeleton, { loading: list.loading, active: true },
44
+ props.customDropdownItem ? props.customDropdownItem : null,
45
+ list.data.length > 0 ? (list.data.map((opt) => (React.createElement("div", { key: opt.id, className: "px-4 py-2.5 hover:bg-bg-blue cursor-pointer" },
46
+ React.createElement(Checkbox, { checked: selectedIdsLocal.includes(opt.id), onChange: () => handleCheckboxChange(opt.id) },
47
+ React.createElement("div", { className: "text-sm font-medium text-font-primary" }, opt.name)))))) : (React.createElement("div", { className: "px-4 py-8 text-center text-sm text-font-grey" },
48
+ "No ",
49
+ label.toLowerCase(),
50
+ " found")))),
51
+ React.createElement("div", { className: "text-sm text-font-grey pt-2" },
52
+ selectedIdsLocal.length,
53
+ " selected"))));
54
+ return observe(() => (React.createElement("div", { className: "relative" },
55
+ React.createElement(Dropdown, { popupRender: (menu) => overlay, trigger: ["click"], open: showDropdown, destroyOnHidden: true, onOpenChange: (open) => setShowDropdown(open) },
56
+ React.createElement("button", { className: classnames(tabBtnBaseClass, "px-5", active ? tabBtnActiveClass : tabBtnDefaultClass) },
57
+ icon,
58
+ label,
59
+ showDropdown ? (React.createElement(FAIcon, { icon: faChevronUpRegular, className: "ml-2 text-xs" })) : (React.createElement(FAIcon, { icon: faChevronDownRegular, className: "ml-2 text-xs" })))))));
76
60
  };
77
61
  export default FilterUI;
78
62
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/modules/my-document/FilterUI/index.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/modules/my-document/FilterUI/index.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,20 @@
1
+ import React from "react";
2
+ /** 列定义(render 可选:分组行首列由 TableUI 覆盖渲染 GroupTitle) */
3
+ export type TableCellColumn = {
4
+ title: React.ReactNode;
5
+ dataIndex: string;
6
+ width?: string | number;
7
+ fixed?: "start" | "end";
8
+ render?: (value: unknown, record: any) => React.ReactNode;
9
+ };
10
+ /** 完整列表列定义 */
11
+ export declare const columnsList: TableCellColumn[];
12
+ /** 侧栏打开时的精简列定义 */
13
+ export declare const columnsSimpleList: TableCellColumn[];
14
+ /** 分组行标题内容(渲染在首列,与展开图标并排) */
15
+ export declare const GroupTitle: ({ record }: {
16
+ record: any;
17
+ }) => React.JSX.Element;
18
+ /** 表格单元格组件:文档行渲染各列内容,分组行渲染标题/图标/计数(整行其余单元格留空) */
19
+ declare const TableCell: (props: any) => React.JSX.Element;
20
+ export default TableCell;
@@ -0,0 +1,160 @@
1
+ import { faCalendarSolid, faFileSolid, faBarsProgressSolid, faUserSolid, faClockSolid, faFolderSolid, faStarSolid, faExclamationCircleSolid, FontAwesomeIcon as FAIcon, } from "@voplus/morpho-ui/es/faIcons";
2
+ import TagView from "@voplus/morpho-org/es/modules/tag/TagView";
3
+ import { Restore, Open, Versions, Download, } from "@voplus/morpho-document/es/controls/DocumentToolbar/buttons";
4
+ import DocumentToolbar from "@voplus/morpho-document/es/controls/DocumentToolbar";
5
+ import { observe } from "@voplus/morpho-ui";
6
+ import UnitAvatar from "@voplus/morpho-org/es/components/UnitAvatar/LoadedUnitAvatar";
7
+ import UnitNameNoteAlert from "@voplus/morpho-org/es/components/UnitNameNoteAlert";
8
+ import UTCShortDate from "@voplus/morpho-ui/es/controls/UTCShortDate";
9
+ import DocumentReference from "@voplus/morpho-document/es/controls/DocumentReference";
10
+ import { useMetaStore, useDocumentStore } from "@voplus/morpho-document-core";
11
+ import React from "react";
12
+ /** 完整列表列定义 */
13
+ export const columnsList = [
14
+ {
15
+ title: (React.createElement(React.Fragment, null,
16
+ React.createElement(FAIcon, { icon: faFileSolid }),
17
+ " File Name")),
18
+ dataIndex: "name",
19
+ width: "26%",
20
+ },
21
+ {
22
+ title: (React.createElement(React.Fragment, null,
23
+ React.createElement(FAIcon, { icon: faCalendarSolid }),
24
+ " CREATED DATE")),
25
+ dataIndex: "createDate",
26
+ },
27
+ {
28
+ title: (React.createElement(React.Fragment, null,
29
+ React.createElement(FAIcon, { icon: faClockSolid }),
30
+ " DOCUMENT DATE")),
31
+ dataIndex: "documentDate",
32
+ },
33
+ {
34
+ title: (React.createElement(React.Fragment, null,
35
+ React.createElement(FAIcon, { icon: faFolderSolid }),
36
+ " Folder")),
37
+ dataIndex: "folder",
38
+ },
39
+ {
40
+ title: (React.createElement(React.Fragment, null,
41
+ React.createElement(FAIcon, { icon: faBarsProgressSolid }),
42
+ " TAG")),
43
+ dataIndex: "tag",
44
+ },
45
+ {
46
+ title: (React.createElement(React.Fragment, null,
47
+ React.createElement(FAIcon, { icon: faUserSolid }),
48
+ " CREATED BY")),
49
+ dataIndex: "by",
50
+ },
51
+ {
52
+ title: "",
53
+ dataIndex: "menu",
54
+ },
55
+ ];
56
+ /** 侧栏打开时的精简列定义 */
57
+ export const columnsSimpleList = [
58
+ {
59
+ title: (React.createElement(React.Fragment, null,
60
+ React.createElement(FAIcon, { icon: faFileSolid }),
61
+ " File Name")),
62
+ dataIndex: "detail",
63
+ width: "35%",
64
+ },
65
+ {
66
+ title: (React.createElement(React.Fragment, null,
67
+ React.createElement(FAIcon, { icon: faFolderSolid }),
68
+ " Folder")),
69
+ dataIndex: "folder",
70
+ },
71
+ {
72
+ title: (React.createElement(React.Fragment, null,
73
+ React.createElement(FAIcon, { icon: faBarsProgressSolid }),
74
+ " TAG")),
75
+ dataIndex: "tag",
76
+ },
77
+ {
78
+ title: " ",
79
+ dataIndex: "menu",
80
+ },
81
+ ];
82
+ /** 分组行图标(按 flag 映射;None 无图标) */
83
+ const groupFlagIcon = (flag) => {
84
+ switch (flag) {
85
+ case "Star":
86
+ return React.createElement(FAIcon, { icon: faStarSolid });
87
+ case "Urgent":
88
+ return React.createElement(FAIcon, { icon: faExclamationCircleSolid });
89
+ default:
90
+ return null;
91
+ }
92
+ };
93
+ /** 分组行标题内容(渲染在首列,与展开图标并排) */
94
+ export const GroupTitle = ({ record }) => {
95
+ var _a;
96
+ return (React.createElement("div", { className: "flex items-center gap-2 text-sm text-font-primary font-semibold" },
97
+ groupFlagIcon(record === null || record === void 0 ? void 0 : record.flag),
98
+ React.createElement("span", null, record === null || record === void 0 ? void 0 :
99
+ record.name,
100
+ " (", (_a = record === null || record === void 0 ? void 0 : record.count) !== null && _a !== void 0 ? _a : 0,
101
+ ")")));
102
+ };
103
+ /** 表格单元格组件:文档行渲染各列内容,分组行渲染标题/图标/计数(整行其余单元格留空) */
104
+ const TableCell = (props) => {
105
+ const { dataIndex, record, children, firstDataIndex, ...restProps } = props;
106
+ const meta = useMetaStore();
107
+ const store = useDocumentStore();
108
+ return observe(() => {
109
+ if (record === null || record === void 0 ? void 0 : record.isGroup) {
110
+ if (dataIndex && dataIndex === firstDataIndex) {
111
+ // children 含 rc-table 注入的展开图标(appendNode),必须渲染
112
+ return React.createElement("td", { ...restProps }, children);
113
+ }
114
+ return React.createElement("td", { ...restProps });
115
+ }
116
+ const renderContent = () => {
117
+ var _a;
118
+ switch (dataIndex) {
119
+ case "name":
120
+ return React.createElement("div", { className: "font-semibold text-font-primary uppercase" }, record.name);
121
+ case "detail":
122
+ return (React.createElement("div", { className: "flex flex-col gap-1" },
123
+ React.createElement("div", { className: "field-label truncate" }, record.name),
124
+ React.createElement("div", { className: "flex items-center gap-5 text-sm text-font-grey font-medium" },
125
+ React.createElement("div", { className: "flex items-center gap-1" },
126
+ React.createElement(FAIcon, { icon: faCalendarSolid }),
127
+ React.createElement(UTCShortDate, { value: record.createDate, format: "DD MMM YYYY" })),
128
+ React.createElement("div", { className: "flex items-center gap-1" },
129
+ React.createElement(FAIcon, { icon: faUserSolid }),
130
+ record.createdBy ? (React.createElement(UnitNameNoteAlert, { id: record.createdBy.id, name: record.createdBy.name })) : ("__")))));
131
+ case "createDate":
132
+ return (React.createElement(UTCShortDate, { value: record.createDate, format: "DD MMM YYYY", className: "text-sm font-medium tracking-wide text-font-primary" }));
133
+ case "documentDate":
134
+ return (React.createElement(UTCShortDate, { value: record.date, format: "DD MMM YYYY", className: "text-sm font-medium tracking-wide text-font-primary" }));
135
+ case "folder":
136
+ return record.folder ? (React.createElement("div", { onClick: (e) => e.stopPropagation() },
137
+ React.createElement(DocumentReference, { id: record.parentId, type: "link" }))) : ("__");
138
+ case "by":
139
+ return (React.createElement("div", { className: "flex min-w-0 items-center gap-1 font-medium text-font-primary" },
140
+ record.createdBy && (React.createElement("div", { className: "shrink-0" },
141
+ React.createElement(UnitAvatar, { unit: record.createdBy }))),
142
+ React.createElement("div", { className: "min-w-0 whitespace-normal wrap-break-word line-clamp-2 text-font-secondary underline" }, record.createdBy ? (React.createElement(UnitNameNoteAlert, { id: record.createdBy.id, name: record.createdBy.name })) : null)));
143
+ case "tag":
144
+ return (React.createElement(React.Fragment, null, ((_a = record.tags) === null || _a === void 0 ? void 0 : _a.length) ? (React.createElement(TagView, { id: record.id, tags: record.tags, items: store.items, maxCount: 1, tagClassName: "primary-tag" })) : ("__")));
145
+ case "menu":
146
+ return (React.createElement("div", { className: "flex justify-end", onClick: (e) => e.stopPropagation() },
147
+ React.createElement(DocumentToolbar, { id: record.id },
148
+ React.createElement(Open, { url: meta.getRoute(record) }),
149
+ record.status === "Archived" && React.createElement(Restore, null),
150
+ React.createElement(Versions, null),
151
+ record.type === "File" && React.createElement(Download, null))));
152
+ default:
153
+ return children;
154
+ }
155
+ };
156
+ return React.createElement("td", { ...restProps }, renderContent());
157
+ });
158
+ };
159
+ export default TableCell;
160
+ //# sourceMappingURL=TableCell.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TableCell.js","sourceRoot":"","sources":["../../../../../src/modules/my-document/SectionTemplate/DocumentTableUI/TableCell.tsx"],"names":[],"mappings":"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"}
@@ -1,5 +1,13 @@
1
1
  .document-table-ui-hide-scrollbar {
2
2
  /* 兼容 antd Table 横向滚动条隐藏 */
3
+
4
+ .prosemirror-mention-node {
5
+ background: transparent;
6
+ color: var(--color-font-secondary);
7
+ font-weight: 500;
8
+ margin: 0;
9
+ padding: 0;
10
+ }
3
11
  }
4
12
 
5
13
  .document-table-ui-hide-scrollbar .ant-table-content,
@@ -13,3 +21,35 @@
13
21
  .document-table-ui-hide-scrollbar .ant-table-body::-webkit-scrollbar {
14
22
  height: 0 !important;
15
23
  }
24
+
25
+ /* 分组行(group-Star/Urgent/None):
26
+ 1) 图标左移对齐复选框左缘,与普通行复选框/文件名对齐线垂直一致。
27
+ 保留 selection 列 td 占位(不使用 display:none,避免影响表格列宽/滚动测量):
28
+ 左移量 = selection 列宽 45px + 首列 td 左 padding 16px - selection 列左 padding 8px = 53px
29
+ 2) 移除行间分割边框
30
+ 3) 背景继承 tr 的 bg-slate-50 铺满整行(覆盖 antd 固定列的白底) */
31
+ .document-table-ui-hide-scrollbar .ant-table-row[data-row-key^="group-"] .ant-table-row-indent {
32
+ display: none;
33
+ }
34
+
35
+ .document-table-ui-hide-scrollbar
36
+ .ant-table-row[data-row-key^="group-"]
37
+ .ant-table-cell-with-append
38
+ > div {
39
+ margin-inline-start: -42px;
40
+ }
41
+
42
+ .document-table-ui-hide-scrollbar .ant-table-row[data-row-key^="group-"] > td {
43
+ background: inherit !important;
44
+ border-bottom: none !important;
45
+ }
46
+
47
+ /* 表头 selection 列与 tbody 复选框对齐:
48
+ - RegisterTable 自带 [&_.ant-table-thead>tr>th]:p-5!(Tailwind @layer utilities 内的 !important,padding 20px),
49
+ 非 layer 的 !important 规则在层叠中输给 layer 内的 !important 规则,因此必须放入 @layer utilities 才能覆盖;
50
+ - 同 layer 内比 specificity 即可获胜,强制表头 selection 列与 tbody 一致(居中 + 水平 padding 8px) */
51
+ @layer utilities {
52
+ .document-table-ui-hide-scrollbar .ant-table-tbody .ant-table-selection-column {
53
+ padding: 16px 20px !important;
54
+ }
55
+ }
@@ -1,16 +1,11 @@
1
1
  import React from "react";
2
- import { IDocument } from "@voplus/morpho-document-core";
3
- import { ListDataContextState } from "@voplus/morpho-ui/es/data/ListDataContext";
2
+ import { type DocumentGroup } from "../documentGroups";
4
3
  import "./index.css";
4
+ /** 分组表格视图:将 Star/Urgent/None 分组合并为树形 RegisterTable,默认全部展开,可折叠;多选工具条复用 morpho-ui 批量操作组件 */
5
5
  declare const TableView: (props: {
6
- list: ListDataContextState<IDocument>;
7
- total?: number;
8
- loading?: boolean;
9
- page?: {
10
- Page: number;
11
- PageSize: number;
12
- };
6
+ /** 分组列表(Star/Urgent/None) */
7
+ groups: DocumentGroup[];
8
+ /** 文档行点击回调 */
13
9
  onItemClick?: (id?: string) => void;
14
- onPageChange?: (page: number, pageSize: number) => void;
15
10
  }) => React.JSX.Element;
16
11
  export default TableView;