@voplus/morpho-workspace 9.0.8 → 9.0.9

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 (33) hide show
  1. package/es/modules/my-document/DocumentTableGroup/DocumentSection.d.ts +1 -1
  2. package/es/modules/my-document/DocumentTableGroup/DocumentSection.js +29 -17
  3. package/es/modules/my-document/DocumentTableGroup/DocumentSection.js.map +1 -1
  4. package/es/modules/my-document/DocumentTableGroup/index.d.ts +1 -1
  5. package/es/modules/my-document/DocumentTableGroup/index.js +30 -9
  6. package/es/modules/my-document/DocumentTableGroup/index.js.map +1 -1
  7. package/es/modules/my-document/DocumentViewContext.d.ts +11 -3
  8. package/es/modules/my-document/DocumentViewContext.js +24 -2
  9. package/es/modules/my-document/DocumentViewContext.js.map +1 -1
  10. package/es/modules/my-document/FilterTabsBar/index.d.ts +0 -2
  11. package/es/modules/my-document/FilterTabsBar/index.js +10 -28
  12. package/es/modules/my-document/FilterTabsBar/index.js.map +1 -1
  13. package/es/modules/my-document/FilterUI/TeamFilter/index.d.ts +3 -0
  14. package/es/modules/my-document/FilterUI/TeamFilter/index.js +31 -0
  15. package/es/modules/my-document/FilterUI/TeamFilter/index.js.map +1 -0
  16. package/es/modules/my-document/FilterUI/WorkspaceFilter/index.d.ts +3 -0
  17. package/es/modules/my-document/FilterUI/WorkspaceFilter/index.js +27 -0
  18. package/es/modules/my-document/FilterUI/WorkspaceFilter/index.js.map +1 -0
  19. package/es/modules/my-document/FilterUI/index.css +8 -0
  20. package/es/modules/my-document/FilterUI/index.d.ts +9 -14
  21. package/es/modules/my-document/FilterUI/index.js +46 -28
  22. package/es/modules/my-document/FilterUI/index.js.map +1 -1
  23. package/es/modules/my-document/SectionTemplate/DocumentViewClass/index.js +4 -4
  24. package/es/modules/my-document/SectionTemplate/DocumentViewClass/index.js.map +1 -1
  25. package/es/modules/my-document/SectionTemplate/GridUI/index.d.ts +2 -0
  26. package/es/modules/my-document/SectionTemplate/GridUI/index.js +27 -19
  27. package/es/modules/my-document/SectionTemplate/GridUI/index.js.map +1 -1
  28. package/es/modules/my-document/index.js +6 -8
  29. package/es/modules/my-document/index.js.map +1 -1
  30. package/package.json +1 -1
  31. package/es/modules/my-document/DocumentTableGroup/ReloadContext.d.ts +0 -7
  32. package/es/modules/my-document/DocumentTableGroup/ReloadContext.js +0 -29
  33. package/es/modules/my-document/DocumentTableGroup/ReloadContext.js.map +0 -1
@@ -3,9 +3,9 @@ import { IconProp } from "@voplus/morpho-ui/es/faIcons";
3
3
  declare const DocumentSection: (props: {
4
4
  id: string;
5
5
  title: string;
6
- type: "pinned" | "personal";
7
6
  icon?: IconProp | undefined;
8
7
  flag: "Star" | "Urgent" | "None";
9
8
  onItemClick?: (id: string) => void;
9
+ onTotalChange?: (total: number) => void;
10
10
  }) => React.JSX.Element;
11
11
  export default DocumentSection;
@@ -1,46 +1,58 @@
1
1
  import React from "react";
2
2
  import { useOnDeleteDocument, useAutoUpdateListData, useDocumentListEffect, } from "@voplus/morpho-document-core";
3
- import { useReloadContext } from "./ReloadContext";
3
+ import { useDocumentViewContext } from "../DocumentViewContext";
4
4
  import { observe, useRenderOnChange } 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
7
  import DocumentViewClass from "../SectionTemplate/DocumentViewClass";
8
8
  const DocumentSection = (props) => {
9
- const { id, flag, icon, title, type } = props;
9
+ const { id, flag, icon, title } = props;
10
+ const { activeTab, onReload, filterOptions } = useDocumentViewContext();
10
11
  const [total, setTotal] = React.useState(0);
11
12
  const [page, setPage] = React.useState({
12
13
  Page: 1,
13
14
  PageSize: 20,
14
15
  });
15
- const context = useReloadContext();
16
+ const onFilter = () => {
17
+ let filters = [
18
+ { c: "Flag", o: "contains", l: "And", v1: JSON.stringify([flag]) },
19
+ ];
20
+ switch (activeTab) {
21
+ case "pinned":
22
+ filters = [{ c: "Pin", l: "And", o: "=", v1: "True" }, ...filters];
23
+ break;
24
+ case "personal":
25
+ filters = [{ c: "ParentNodeId", o: "=", l: "And", v1: id }, ...filters];
26
+ break;
27
+ case "team":
28
+ case "workspace":
29
+ filters = filters.concat(filterOptions !== null && filterOptions !== void 0 ? filterOptions : []);
30
+ break;
31
+ }
32
+ return filters;
33
+ };
16
34
  const list = useCreateListDataState({
17
35
  filterDefaults: {
18
36
  includes: "tags,permissions,createdby,folder",
19
- filters: type === "pinned"
20
- ? [
21
- { c: "Pin", l: "And", o: "=", v1: "True" },
22
- { c: "Flag", o: "contains", l: "And", v1: JSON.stringify([flag]) },
23
- ]
24
- : [
25
- { c: "ParentNodeId", o: "=", l: "And", v1: id },
26
- { c: "Flag", o: "contains", l: "And", v1: JSON.stringify([flag]) },
27
- ],
37
+ filters: onFilter(),
28
38
  page,
29
39
  },
30
- }, [id, page, type]);
40
+ }, [id, page, activeTab, filterOptions]);
31
41
  useRenderOnChange(() => [list.filters.options, id]);
32
42
  useDocumentListEffect(list, (result, total) => {
43
+ var _a;
33
44
  list.union(result);
34
45
  setTotal(total !== null && total !== void 0 ? total : 0);
46
+ (_a = props.onTotalChange) === null || _a === void 0 ? void 0 : _a.call(props, total !== null && total !== void 0 ? total : 0);
35
47
  }, {
36
48
  ...list.filters.options,
37
49
  Total: true,
38
50
  });
39
51
  useAutoUpdateListData(list, (d) => d.parentId === id);
40
- useOnPinDocument(() => { var _a; return (_a = context === null || context === void 0 ? void 0 : context.onReload) === null || _a === void 0 ? void 0 : _a.call(context); });
41
- useOnUnPinDocument(() => { var _a; return (_a = context === null || context === void 0 ? void 0 : context.onReload) === null || _a === void 0 ? void 0 : _a.call(context); });
42
- useOnFlagChange(() => { var _a; return (_a = context === null || context === void 0 ? void 0 : context.onReload) === null || _a === void 0 ? void 0 : _a.call(context); });
43
- useOnDeleteDocument(() => { var _a; return (_a = context === null || context === void 0 ? void 0 : context.onReload) === null || _a === void 0 ? void 0 : _a.call(context); });
52
+ useOnPinDocument(() => onReload === null || onReload === void 0 ? void 0 : onReload());
53
+ useOnUnPinDocument(() => onReload === null || onReload === void 0 ? void 0 : onReload());
54
+ useOnFlagChange(() => onReload === null || onReload === void 0 ? void 0 : onReload());
55
+ useOnDeleteDocument(() => onReload === null || onReload === void 0 ? void 0 : onReload());
44
56
  return observe(() => (React.createElement(ListDataContext.Provider, { value: list },
45
57
  React.createElement(DocumentViewClass, { title: title, icon: icon, total: total, list: list, onItemClick: props.onItemClick, onSearch: (val) => list.triggerSearch(val), onPageChange: (page, pageSize) => setPage({ Page: page, PageSize: pageSize }) }))));
46
58
  };
@@ -1 +1 @@
1
- {"version":3,"file":"DocumentSection.js","sourceRoot":"","sources":["../../../../src/modules/my-document/DocumentTableGroup/DocumentSection.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAEN,mBAAmB,EACnB,qBAAqB,EACrB,qBAAqB,GACrB,MAAM,8BAA8B,CAAC;AACtC,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAEnD,OAAO,EAAE,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAC/D,OAAO,EACN,gBAAgB,EAChB,kBAAkB,EAClB,eAAe,GACf,MAAM,qEAAqE,CAAC;AAC7E,OAAO,EAAE,eAAe,EAAE,sBAAsB,EAAE,MAAM,2BAA2B,CAAC;AACpF,OAAO,iBAAiB,MAAM,sCAAsC,CAAC;AAErE,MAAM,eAAe,GAAG,CAAC,KAOxB,EAAE,EAAE;IACJ,MAAM,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,KAAK,CAAC;IAE9C,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAS,CAAC,CAAC,CAAC;IACpD,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAqC;QAC1E,IAAI,EAAE,CAAC;QACP,QAAQ,EAAE,EAAE;KACZ,CAAC,CAAC;IACH,MAAM,OAAO,GAAG,gBAAgB,EAAE,CAAC;IACnC,MAAM,IAAI,GAAG,sBAAsB,CAClC;QACC,cAAc,EAAE;YACf,QAAQ,EAAE,mCAAmC;YAC7C,OAAO,EACN,IAAI,KAAK,QAAQ;gBAChB,CAAC,CAAC;oBACA,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,MAAM,EAAE;oBAC1C,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,UAAU,EAAE,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE;iBACjE;gBACH,CAAC,CAAC;oBACA,EAAE,CAAC,EAAE,cAAc,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,EAAE;oBAC/C,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,UAAU,EAAE,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE;iBACjE;YACL,IAAI;SACJ;KACD,EACD,CAAC,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,CAChB,CAAC;IAEF,iBAAiB,CAAC,GAAG,EAAE,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC;IAEpD,qBAAqB,CACpB,IAAI,EACJ,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE;QACjB,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QACnB,QAAQ,CAAC,KAAK,aAAL,KAAK,cAAL,KAAK,GAAI,CAAC,CAAC,CAAC;IACtB,CAAC,EACD;QACC,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO;QACvB,KAAK,EAAE,IAAI;KACX,CACD,CAAC;IAEF,qBAAqB,CAAC,IAAI,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,EAAE,CAAC,CAAC;IAEtD,gBAAgB,CAAC,GAAG,EAAE,WAAC,OAAA,MAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,QAAQ,uDAAI,CAAA,EAAA,CAAC,CAAC;IAC9C,kBAAkB,CAAC,GAAG,EAAE,WAAC,OAAA,MAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,QAAQ,uDAAI,CAAA,EAAA,CAAC,CAAC;IAChD,eAAe,CAAC,GAAG,EAAE,WAAC,OAAA,MAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,QAAQ,uDAAI,CAAA,EAAA,CAAC,CAAC;IAC7C,mBAAmB,CAAC,GAAG,EAAE,WAAC,OAAA,MAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,QAAQ,uDAAI,CAAA,EAAA,CAAC,CAAC;IAEjD,OAAO,OAAO,CAAC,GAAG,EAAE,CAAC,CACpB,oBAAC,eAAe,CAAC,QAAQ,IAAC,KAAK,EAAE,IAAI;QACpC,oBAAC,iBAAiB,IACjB,KAAK,EAAE,KAAK,EACZ,IAAI,EAAE,IAAI,EACV,KAAK,EAAE,KAAK,EACZ,IAAI,EAAE,IAAI,EACV,WAAW,EAAE,KAAK,CAAC,WAAW,EAC9B,QAAQ,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,EAC1C,YAAY,EAAE,CAAC,IAAI,EAAE,QAAQ,EAAE,EAAE,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC,GAC5E,CACwB,CAC3B,CAAC,CAAC;AACJ,CAAC,CAAC;AAEF,eAAe,eAAe,CAAC"}
1
+ {"version":3,"file":"DocumentSection.js","sourceRoot":"","sources":["../../../../src/modules/my-document/DocumentTableGroup/DocumentSection.tsx"],"names":[],"mappings":"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"}
@@ -2,9 +2,9 @@
2
2
  * 使用在 MyDocument 中的全新 UI 设计
3
3
  * */
4
4
  import React from "react";
5
+ export declare function capitalizeFirstLetter(str: string): string;
5
6
  declare const DocumentTableGroup: (props: {
6
7
  id: string;
7
- type: "pinned" | "personal";
8
8
  onClickItem?: (id: string) => void;
9
9
  }) => React.JSX.Element;
10
10
  export default DocumentTableGroup;
@@ -1,25 +1,46 @@
1
1
  /**
2
2
  * 使用在 MyDocument 中的全新 UI 设计
3
3
  * */
4
- import React from "react";
5
- import { ReloadContext, ReloadState } from "./ReloadContext";
4
+ import React, { useEffect, useState } from "react";
5
+ import { useDocumentViewContext } from "../DocumentViewContext";
6
6
  import { observe, useAsideContentContext } from "@voplus/morpho-ui";
7
- import { faStarSolid, faExclamationCircleSolid } from "@voplus/morpho-ui/es/faIcons";
7
+ import { FontAwesomeIcon as FAIcon, faFolderOpenSolid, faStarSolid, faExclamationCircleSolid, } from "@voplus/morpho-ui/es/faIcons";
8
8
  import DocumentPropertiesView from "@voplus/morpho-document-core/es/components/DocumentPropertiesView";
9
9
  import DocumentSection from "./DocumentSection";
10
+ // 首字母大写工具函数
11
+ export function capitalizeFirstLetter(str) {
12
+ if (!str)
13
+ return str;
14
+ return str.charAt(0).toUpperCase() + str.slice(1);
15
+ }
10
16
  const DocumentTableGroup = (props) => {
11
- const { id, type } = props;
12
- const [context] = React.useState(() => new ReloadState());
17
+ 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]);
13
21
  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: faStarSolid, title: `${capitalizeFirstLetter(activeTab)} Starred`, onItemClick: onItemClick, onTotalChange: (total) => handleTotalChange(0, total) }),
29
+ React.createElement(DocumentSection, { id: id, flag: "Urgent", icon: faExclamationCircleSolid, title: `${capitalizeFirstLetter(activeTab)} Urgent`, onItemClick: onItemClick, onTotalChange: (total) => handleTotalChange(1, total) }),
30
+ React.createElement(DocumentSection, { id: id, flag: "None", title: `${capitalizeFirstLetter(activeTab)} Documents`, onItemClick: onItemClick, onTotalChange: (total) => handleTotalChange(2, total) })))))));
14
31
  function onItemClick(id) {
15
32
  var _a;
16
33
  asideContext === null || asideContext === void 0 ? void 0 : asideContext.openAside(React.createElement(DocumentPropertiesView, { id: id }), { span: 10 });
17
34
  (_a = props.onClickItem) === null || _a === void 0 ? void 0 : _a.call(props, id);
18
35
  }
19
- return observe(() => (React.createElement(ReloadContext.Provider, { value: context }, context.loaded && (React.createElement(React.Fragment, null,
20
- React.createElement(DocumentSection, { id: id, flag: "Star", type: type, icon: faStarSolid, title: type === "pinned" ? "Pinned Starred" : "Personal Starred", onItemClick: onItemClick }),
21
- React.createElement(DocumentSection, { id: id, flag: "Urgent", type: type, icon: faExclamationCircleSolid, title: type === "pinned" ? "Pinned Urgent" : "Personal Urgent", onItemClick: onItemClick }),
22
- React.createElement(DocumentSection, { id: id, type: type, flag: "None", title: type === "pinned" ? "Pinned Documents" : "Personal Documents", onItemClick: onItemClick }))))));
36
+ // 监听每个 section total
37
+ function handleTotalChange(index, total) {
38
+ setTotalArr((prev) => {
39
+ const next = [...prev];
40
+ next[index] = total;
41
+ return next;
42
+ });
43
+ }
23
44
  };
24
45
  export default DocumentTableGroup;
25
46
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
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,aAAa,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAC7D,OAAO,EAAE,OAAO,EAAE,sBAAsB,EAAE,MAAM,mBAAmB,CAAC;AACpE,OAAO,EAAE,WAAW,EAAE,wBAAwB,EAAE,MAAM,8BAA8B,CAAC;AACrF,OAAO,sBAAsB,MAAM,mEAAmE,CAAC;AACvG,OAAO,eAAe,MAAM,mBAAmB,CAAC;AAEhD,MAAM,kBAAkB,GAAG,CAAC,KAI3B,EAAE,EAAE;IACJ,MAAM,EAAE,EAAE,EAAE,IAAI,EAAE,GAAG,KAAK,CAAC;IAC3B,MAAM,CAAC,OAAO,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC,IAAI,WAAW,EAAE,CAAC,CAAC;IAC1D,MAAM,YAAY,GAAG,sBAAsB,EAAE,CAAC;IAE9C,SAAS,WAAW,CAAC,EAAU;;QAC9B,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;IAED,OAAO,OAAO,CAAC,GAAG,EAAE,CAAC,CACpB,oBAAC,aAAa,CAAC,QAAQ,IAAC,KAAK,EAAE,OAAO,IACpC,OAAO,CAAC,MAAM,IAAI,CAClB;QACC,oBAAC,eAAe,IACf,EAAE,EAAE,EAAE,EACN,IAAI,EAAC,MAAM,EACX,IAAI,EAAE,IAAI,EACV,IAAI,EAAE,WAAW,EACjB,KAAK,EAAE,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,kBAAkB,EAChE,WAAW,EAAE,WAAW,GACvB;QACF,oBAAC,eAAe,IACf,EAAE,EAAE,EAAE,EACN,IAAI,EAAC,QAAQ,EACb,IAAI,EAAE,IAAI,EACV,IAAI,EAAE,wBAAwB,EAC9B,KAAK,EAAE,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,iBAAiB,EAC9D,WAAW,EAAE,WAAW,GACvB;QACF,oBAAC,eAAe,IACf,EAAE,EAAE,EAAE,EACN,IAAI,EAAE,IAAI,EACV,IAAI,EAAC,MAAM,EACX,KAAK,EAAE,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,oBAAoB,EACpE,WAAW,EAAE,WAAW,GACvB,CACA,CACH,CACuB,CACzB,CAAC,CAAC;AACJ,CAAC,CAAC;AAEF,eAAe,kBAAkB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/modules/my-document/DocumentTableGroup/index.tsx"],"names":[],"mappings":"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"}
@@ -1,11 +1,19 @@
1
- import React from "react";
1
+ import React, { ReactNode } from "react";
2
+ import { FilterOption } from "@voplus/morpho-data";
2
3
  export type DocumentViewType = "table" | "grid";
4
+ export type DocumentFilterType = "pinned" | "personal" | "team" | "workspace";
3
5
  interface DocumentViewContextProps {
6
+ loaded: boolean;
7
+ activeTab: DocumentFilterType;
4
8
  viewType: DocumentViewType;
5
- setViewType: (type: DocumentViewType) => void;
9
+ filterOptions?: FilterOption[];
10
+ onReload: () => void;
11
+ setActiveTab: (activeTab: DocumentFilterType) => void;
12
+ setViewType: (viewType: DocumentViewType) => void;
13
+ onApplyFilter: (activeTab: DocumentFilterType, value: FilterOption[] | []) => void;
6
14
  }
7
15
  export declare const useDocumentViewContext: () => DocumentViewContextProps;
8
16
  export declare const DocumentViewProvider: React.FC<{
9
- children: React.ReactNode;
17
+ children: ReactNode;
10
18
  }>;
11
19
  export {};
@@ -1,4 +1,4 @@
1
- import React, { createContext, useContext, useState } from "react";
1
+ import React, { createContext, useCallback, useContext, useState } from "react";
2
2
  const DocumentViewContext = createContext(undefined);
3
3
  export const useDocumentViewContext = () => {
4
4
  const ctx = useContext(DocumentViewContext);
@@ -7,7 +7,29 @@ export const useDocumentViewContext = () => {
7
7
  return ctx;
8
8
  };
9
9
  export const DocumentViewProvider = ({ children }) => {
10
+ const [filterOptions, setFilterOptions] = useState(undefined);
10
11
  const [viewType, setViewType] = useState("table");
11
- return (React.createElement(DocumentViewContext.Provider, { value: { viewType, setViewType } }, children));
12
+ const [activeTab, setActiveTab] = useState("pinned");
13
+ const [loaded, setLoaded] = useState(true);
14
+ const onReload = useCallback(() => {
15
+ setLoaded(false);
16
+ setTimeout(() => {
17
+ setLoaded(true);
18
+ }, 100);
19
+ }, []);
20
+ const onApplyFilter = useCallback((activeTab, value) => {
21
+ setFilterOptions(value);
22
+ setActiveTab(activeTab);
23
+ }, []);
24
+ return (React.createElement(DocumentViewContext.Provider, { value: {
25
+ viewType,
26
+ setViewType,
27
+ loaded,
28
+ onReload,
29
+ filterOptions,
30
+ onApplyFilter,
31
+ activeTab,
32
+ setActiveTab,
33
+ } }, children));
12
34
  };
13
35
  //# 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,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AASnE,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;IAC5C,IAAI,CAAC,GAAG;QAAE,MAAM,IAAI,KAAK,CAAC,mEAAmE,CAAC,CAAC;IAC/F,OAAO,GAAG,CAAC;AACZ,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,oBAAoB,GAA4C,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE;IAC7F,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAG,QAAQ,CAAmB,OAAO,CAAC,CAAC;IACpE,OAAO,CACN,oBAAC,mBAAmB,CAAC,QAAQ,IAAC,KAAK,EAAE,EAAE,QAAQ,EAAE,WAAW,EAAE,IAC5D,QAAQ,CACqB,CAC/B,CAAC;AACH,CAAC,CAAC"}
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;AAkB3F,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,7 +1,5 @@
1
1
  import React from "react";
2
2
  declare const FilterTabsBar: (props: {
3
- activeTab: "pinned" | "personal";
4
3
  onAdd?: () => void;
5
- onChange: (activeTab: "pinned" | "personal") => void;
6
4
  }) => React.JSX.Element;
7
5
  export default FilterTabsBar;
@@ -1,42 +1,24 @@
1
1
  import React from "react";
2
+ import { Button } from "antd";
2
3
  import { observe } from "@voplus/morpho-ui";
3
4
  import { useDocumentViewContext } from "../DocumentViewContext";
4
- import { FontAwesomeIcon as FAIcon, faListUlRegular, faThLargeSolid, faPlusRegular, faStarSolid, faUserSolid, faUsersSolid, faBriefcaseSolid, } from "@voplus/morpho-ui/es/faIcons";
5
- import { Button } from "antd";
6
- import FilterUI from "../FilterUI";
5
+ import { FontAwesomeIcon as FAIcon, faListUlRegular, faThLargeSolid, faPlusRegular, faStarSolid, faUserSolid, } from "@voplus/morpho-ui/es/faIcons";
6
+ import WorkspacesFilter from "../FilterUI/WorkspaceFilter";
7
+ import TeamFilter from "../FilterUI/TeamFilter";
7
8
  const FilterTabsBar = (props) => {
8
- const { activeTab, onAdd, onChange } = props;
9
- const { viewType, setViewType } = useDocumentViewContext();
10
- // Mock Data from HTML
11
- const teams = [
12
- { id: "marketing", name: "Marketing Team", count: 45 },
13
- { id: "sales", name: "Sales Team", count: 78 },
14
- { id: "finance", name: "Finance Team", count: 23 },
15
- { id: "hr", name: "HR Team", count: 12 },
16
- { id: "legal", name: "Legal Team", count: 56 },
17
- ];
18
- const workspaces = [
19
- { id: "acme", name: "ACME Corporation", count: 234 },
20
- { id: "client-beta", name: "Client Beta Inc", count: 89 },
21
- { id: "operations", name: "Operations Hub", count: 34 },
22
- { id: "launch", name: "Product Launch Q1", count: 123 },
23
- { id: "research", name: "R&D Projects", count: 67 },
24
- ];
25
- const [selectedTeams, setSelectedTeams] = React.useState([]);
26
- const [selectedWorkspaces, setSelectedWorkspaces] = React.useState([]);
27
- const [teamsSearch, setTeamsSearch] = React.useState("");
28
- const [workspacesSearch, setWorkspacesSearch] = React.useState("");
9
+ const { onAdd } = props;
10
+ const { viewType, setViewType, activeTab, setActiveTab } = useDocumentViewContext();
29
11
  return observe(() => (React.createElement("div", { className: "px-5 py-4 shrink-0" },
30
12
  React.createElement("div", { className: "flex items-center justify-between" },
31
13
  React.createElement("div", { className: "flex items-center gap-2" },
32
- React.createElement(Button, { type: activeTab === "pinned" ? "primary" : "default", onClick: () => onChange("pinned") },
14
+ React.createElement(Button, { type: activeTab === "pinned" ? "primary" : "default", onClick: () => setActiveTab("pinned") },
33
15
  React.createElement(FAIcon, { icon: faStarSolid, className: "mr-2" }),
34
16
  "Pinned Documents"),
35
- React.createElement(Button, { type: activeTab === "personal" ? "primary" : "default", onClick: () => onChange("personal") },
17
+ React.createElement(Button, { type: activeTab === "personal" ? "primary" : "default", onClick: () => setActiveTab("personal") },
36
18
  React.createElement(FAIcon, { icon: faUserSolid, className: "mr-2" }),
37
19
  "Personal"),
38
- React.createElement(FilterUI, { label: "Teams", icon: React.createElement(FAIcon, { icon: faUsersSolid, className: "mr-2" }), options: teams, selectedIds: selectedTeams, searchPlaceholder: "Search teams...", badgeId: "teams-badge", dropdownId: "teams-dropdown", onToggle: (id) => setSelectedTeams((prev) => prev.includes(id) ? prev.filter((t) => t !== id) : [...prev, id]), onClearAll: () => setSelectedTeams([]), onSearch: setTeamsSearch }),
39
- React.createElement(FilterUI, { label: "Workspaces", icon: React.createElement(FAIcon, { icon: faBriefcaseSolid, className: "mr-2" }), options: workspaces, selectedIds: selectedWorkspaces, searchPlaceholder: "Search workspaces...", badgeId: "workspaces-badge", dropdownId: "workspaces-dropdown", onToggle: (id) => setSelectedWorkspaces((prev) => prev.includes(id) ? prev.filter((w) => w !== id) : [...prev, id]), onClearAll: () => setSelectedWorkspaces([]), onSearch: setWorkspacesSearch })),
20
+ React.createElement(TeamFilter, null),
21
+ React.createElement(WorkspacesFilter, null)),
40
22
  React.createElement("div", { className: "flex items-center gap-3" },
41
23
  React.createElement("div", { className: "flex items-center gap-1 bg-slate-100 rounded-lg p-1" },
42
24
  React.createElement("button", { className: `w-6 h-6 flex items-center justify-center rounded transition-colors ${viewType === "table"
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/modules/my-document/FilterTabsBar/index.tsx"],"names":[],"mappings":"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"}
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"}
@@ -0,0 +1,3 @@
1
+ import React from "react";
2
+ declare const TeamFilter: () => React.JSX.Element;
3
+ export default TeamFilter;
@@ -0,0 +1,31 @@
1
+ import React from "react";
2
+ import { useDocumentViewContext } from "../../DocumentViewContext";
3
+ import { observe, useRenderOnChange } from "@voplus/morpho-ui";
4
+ import { useCreateListDataState } from "@voplus/morpho-ui/es/data";
5
+ import { useUnitListEffect } from "@voplus/morpho-org";
6
+ import { FontAwesomeIcon as FAIcon, faUsersSolid } from "@voplus/morpho-ui/es/faIcons";
7
+ import FilterUI from "..";
8
+ const TeamFilter = () => {
9
+ const { onApplyFilter, activeTab } = useDocumentViewContext();
10
+ const list = useCreateListDataState({
11
+ filterDefaults: {
12
+ filters: [
13
+ {
14
+ c: "Type",
15
+ o: "contains",
16
+ l: "And",
17
+ v1: JSON.stringify(["Team"]),
18
+ },
19
+ ],
20
+ page: { Page: 1, PageSize: 300 },
21
+ },
22
+ }, []);
23
+ /** 如果 list.filters.options变更了就重渲染,使下一行的useContactListEffect 可以接收新参数*/
24
+ useRenderOnChange(() => list.filters.options);
25
+ /** 把ListDataState传给useContactListEffect,使之可以自動更新loading, hasmore. */
26
+ useUnitListEffect(list, (result) => list.union(result), list.filters.options);
27
+ return observe(() => (React.createElement(FilterUI, { label: "Teams", icon: React.createElement(FAIcon, { icon: faUsersSolid, className: "mr-2" }), list: list, active: activeTab === "team", searchPlaceholder: "Search teams...", onFilter: (items) => onApplyFilter("team", (items === null || items === void 0 ? void 0 : items.map((item) => ({ c: "ParentNodeId", o: "=", l: "And", v1: item.containerId }))) ||
28
+ []) })));
29
+ };
30
+ export default TeamFilter;
31
+ //# sourceMappingURL=index.js.map
@@ -0,0 +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,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,EAAS,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAC9D,OAAO,EAAE,eAAe,IAAI,MAAM,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AACvF,OAAO,QAAQ,MAAM,IAAI,CAAC;AAE1B,MAAM,UAAU,GAAG,GAAG,EAAE;IACvB,MAAM,EAAE,aAAa,EAAE,SAAS,EAAE,GAAG,sBAAsB,EAAE,CAAC;IAE9D,MAAM,IAAI,GAAG,sBAAsB,CAClC;QACC,cAAc,EAAE;YACf,OAAO,EAAE;gBACR;oBACC,CAAC,EAAE,MAAM;oBACT,CAAC,EAAE,UAAU;oBACb,CAAC,EAAE,KAAK;oBACR,EAAE,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,CAAC;iBAC5B;aACD;YACD,IAAI,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,QAAQ,EAAE,GAAG,EAAE;SAChC;KACD,EACD,EAAE,CACF,CAAC;IAEF,sEAAsE;IACtE,iBAAiB,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IAE9C,qEAAqE;IACrE,iBAAiB,CAAC,IAAI,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IAE9E,OAAO,OAAO,CAAC,GAAG,EAAE,CAAC,CACpB,oBAAC,QAAQ,IACR,KAAK,EAAC,OAAO,EACb,IAAI,EAAE,oBAAC,MAAM,IAAC,IAAI,EAAE,YAAY,EAAE,SAAS,EAAC,MAAM,GAAG,EACrD,IAAI,EAAE,IAAI,EACV,MAAM,EAAE,SAAS,KAAK,MAAM,EAC5B,iBAAiB,EAAC,iBAAiB,EACnC,QAAQ,EAAE,CAAC,KAAK,EAAE,EAAE,CACnB,aAAa,CACZ,MAAM,EACN,CAAA,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,cAAc,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC;YACpF,EAAE,CACH,GAED,CACF,CAAC,CAAC;AACJ,CAAC,CAAC;AAEF,eAAe,UAAU,CAAC"}
@@ -0,0 +1,3 @@
1
+ import React from "react";
2
+ declare const WorkspaceFilter: () => React.JSX.Element;
3
+ export default WorkspaceFilter;
@@ -0,0 +1,27 @@
1
+ import React from "react";
2
+ import { useDocumentViewContext } from "../../DocumentViewContext";
3
+ import { observe, useRenderOnChange } from "@voplus/morpho-ui";
4
+ import { useCreateListDataState } from "@voplus/morpho-ui/es/data";
5
+ import { useWorkspaceListEffect } from "../../../../data/workspace";
6
+ import { useAutoUpdateListData } from "../../../../data/workspace/workspace-events";
7
+ import { FontAwesomeIcon as FAIcon, faBriefcaseSolid } from "@voplus/morpho-ui/es/faIcons";
8
+ import FilterUI from "..";
9
+ const WorkspaceFilter = () => {
10
+ const { onApplyFilter, activeTab } = useDocumentViewContext();
11
+ /** 建立 ListView 和useWorkspaceListEffect所需的ListDataState. 会根据state.id重建所以不需reset. */
12
+ const list = useCreateListDataState({
13
+ filterDefaults: {
14
+ filters: [],
15
+ page: { Page: 1, PageSize: 200 },
16
+ },
17
+ }, []);
18
+ /** 如果 list.filters.options变更了就重渲染,使下一行的useWorkspaceListEffect 可以接收新参数*/
19
+ useRenderOnChange(() => list.filters.options);
20
+ /** 把ListDataState传给useWorkspaceListEffect,使之可以自動更新loading, hasmore. */
21
+ useWorkspaceListEffect(list, (result) => list.union(result), list.filters.options);
22
+ /** useOnNewWorkspace, useOnDeleteWorkspace的sugar syntax 自動更新list. */
23
+ useAutoUpdateListData(list, (d) => true);
24
+ return observe(() => (React.createElement(FilterUI, { label: "Workspaces", active: activeTab === "workspace", icon: React.createElement(FAIcon, { icon: faBriefcaseSolid, className: "mr-2" }), list: list, searchPlaceholder: "Search workspaces...", onFilter: (items) => onApplyFilter("workspace", (items === null || items === void 0 ? void 0 : items.map((item) => ({ c: "ParentNodeId", o: "=", l: "And", v1: item.id }))) || []) })));
25
+ };
26
+ export default WorkspaceFilter;
27
+ //# sourceMappingURL=index.js.map
@@ -0,0 +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,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,EAAE,eAAe,IAAI,MAAM,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAC3F,OAAO,QAAQ,MAAM,IAAI,CAAC;AAE1B,MAAM,eAAe,GAAG,GAAG,EAAE;IAC5B,MAAM,EAAE,aAAa,EAAE,SAAS,EAAE,GAAG,sBAAsB,EAAE,CAAC;IAE9D,mFAAmF;IACnF,MAAM,IAAI,GAAG,sBAAsB,CAClC;QACC,cAAc,EAAE;YACf,OAAO,EAAE,EAAE;YACX,IAAI,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,QAAQ,EAAE,GAAG,EAAE;SAChC;KACD,EACD,EAAE,CACF,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,KAAK,EAAC,YAAY,EAClB,MAAM,EAAE,SAAS,KAAK,WAAW,EACjC,IAAI,EAAE,oBAAC,MAAM,IAAC,IAAI,EAAE,gBAAgB,EAAE,SAAS,EAAC,MAAM,GAAG,EACzD,IAAI,EAAE,IAAI,EACV,iBAAiB,EAAC,sBAAsB,EACxC,QAAQ,EAAE,CAAC,KAAK,EAAE,EAAE,CACnB,aAAa,CACZ,WAAW,EACX,CAAA,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,cAAc,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC,KAAI,EAAE,CAClF,GAED,CACF,CAAC,CAAC;AACJ,CAAC,CAAC;AAEF,eAAe,eAAe,CAAC"}
@@ -0,0 +1,8 @@
1
+ /* 隐藏滚动条的通用样式 */
2
+ .scrollbar-hide {
3
+ scrollbar-width: none; /* Firefox */
4
+ -ms-overflow-style: none; /* IE 10+ */
5
+ }
6
+ .scrollbar-hide::-webkit-scrollbar {
7
+ display: none; /* Chrome/Safari/Webkit */
8
+ }
@@ -1,21 +1,16 @@
1
1
  import React from "react";
2
- export interface FilterUIOption {
2
+ import { ListDataContextState } from "@voplus/morpho-ui/es/data";
3
+ import "./index.css";
4
+ declare const FilterUI: <T extends {
3
5
  id: string;
4
6
  name: string;
5
- count?: number;
6
- checked?: boolean;
7
- }
8
- export interface FilterUIProps {
7
+ }>(props: {
9
8
  label: string;
9
+ active?: boolean;
10
+ multiple?: boolean;
10
11
  icon?: React.ReactNode;
11
- options: FilterUIOption[];
12
- selectedIds: string[];
12
+ list: ListDataContextState<T>;
13
13
  searchPlaceholder?: string;
14
- badgeId?: string;
15
- dropdownId?: string;
16
- onToggle: (id: string) => void;
17
- onClearAll: () => void;
18
- onSearch: (query: string) => void;
19
- }
20
- declare const FilterUI: React.FC<FilterUIProps>;
14
+ onFilter?: (selectedArr: T[]) => void;
15
+ }) => React.JSX.Element;
21
16
  export default FilterUI;
@@ -1,11 +1,36 @@
1
- import React from "react";
2
- import { Button, Input, Checkbox, Space } from "antd";
1
+ import React, { useEffect, useRef, useState } from "react";
2
+ import { debounce } from "lodash-es";
3
+ import { observe } from "@voplus/morpho-ui";
3
4
  import { FontAwesomeIcon as FAIcon, faChevronDownRegular, faChevronUpRegular, } from "@voplus/morpho-ui/es/faIcons";
4
- const FilterUI = ({ label, icon, options, selectedIds, searchPlaceholder = "Search...", badgeId, dropdownId, onToggle, onClearAll, onSearch, }) => {
5
- const [showDropdown, setShowDropdown] = React.useState(false);
6
- const [search, setSearch] = React.useState("");
7
- const dropdownRef = React.useRef(null);
8
- React.useEffect(() => {
5
+ import { Button, Input, Checkbox, Space, Skeleton } from "antd";
6
+ import "./index.css";
7
+ const FilterUI = (props) => {
8
+ const { label, icon, list, active = false, searchPlaceholder = "Search...", multiple = false, onFilter, } = props;
9
+ const [showDropdown, setShowDropdown] = useState(false);
10
+ const [selectedIds, setSelectedIds] = useState([]);
11
+ // 处理选中逻辑
12
+ const handleCheckboxChange = (id) => {
13
+ if (multiple) {
14
+ setSelectedIds((prev) => (prev.includes(id) ? prev.filter((v) => v !== id) : [...prev, id]));
15
+ }
16
+ else {
17
+ setSelectedIds((prev) => (prev.includes(id) ? [] : [id]));
18
+ }
19
+ };
20
+ const handleReset = () => {
21
+ setSelectedIds([]);
22
+ onFilter === null || onFilter === void 0 ? void 0 : onFilter([]);
23
+ };
24
+ const handleApply = () => {
25
+ onFilter === null || onFilter === void 0 ? void 0 : onFilter(list.data.filter((item) => selectedIds.includes(item.id)));
26
+ setShowDropdown(false);
27
+ };
28
+ const dropdownRef = useRef(null);
29
+ // 防抖处理 search input
30
+ const debouncedSearch = useRef(debounce((value) => {
31
+ list.triggerSearch(value);
32
+ }, 500)).current;
33
+ useEffect(() => {
9
34
  if (!showDropdown)
10
35
  return;
11
36
  const handleClickOutside = (event) => {
@@ -18,41 +43,34 @@ const FilterUI = ({ label, icon, options, selectedIds, searchPlaceholder = "Sear
18
43
  document.removeEventListener("mousedown", handleClickOutside);
19
44
  };
20
45
  }, [showDropdown]);
21
- const filteredOptions = options.filter((opt) => opt.name.toLowerCase().includes(search.toLowerCase()));
22
- return (React.createElement("div", { className: "relative", ref: dropdownRef },
23
- React.createElement(Button, { disabled: true, type: "default", onClick: () => setShowDropdown((v) => !v) },
46
+ return observe(() => (React.createElement("div", { className: "relative", ref: dropdownRef },
47
+ React.createElement(Button, { type: active ? "primary" : "default", onClick: () => setShowDropdown((v) => !v) },
24
48
  icon,
25
49
  label,
26
- selectedIds.length > 0 && (React.createElement("span", { id: badgeId, className: "ml-1 px-2 py-0.5 bg-blue-100 text-blue-700 rounded-full text-xs" }, selectedIds.length)),
27
50
  showDropdown ? (React.createElement(FAIcon, { icon: faChevronUpRegular, className: "ml-1 text-xs" })) : (React.createElement(FAIcon, { icon: faChevronDownRegular, className: "ml-1 text-xs" }))),
28
- showDropdown && (React.createElement("div", { id: dropdownId, className: "absolute top-full left-0 mt-2 w-72 bg-white border border-slate-200 rounded-lg shadow-lg z-10" },
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" },
29
52
  React.createElement("div", { className: "p-3 border-b border-slate-200" },
30
53
  React.createElement("h3", { className: "text-sm font-semibold text-slate-900 mb-2" },
31
54
  "Select ",
32
55
  label),
33
56
  React.createElement("div", { className: "relative" },
34
57
  React.createElement("i", { className: "fas fa-search absolute left-3 top-1/2 transform -translate-y-1/2 text-slate-400 text-sm" }),
35
- 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", value: search, onChange: (e) => {
36
- setSearch(e.target.value);
37
- onSearch(e.target.value);
38
- }, onClick: (e) => e.stopPropagation() }))),
39
- React.createElement("div", { className: "max-h-80 overflow-y-auto" }, filteredOptions.length > 0 ? (filteredOptions.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" },
40
- React.createElement(Checkbox, { checked: selectedIds.includes(opt.id), onChange: () => onToggle(opt.id), className: "w-4 h-4 text-blue-600 border-slate-300 rounded focus:ring-blue-500" }),
41
- React.createElement("div", { className: "flex-1" },
42
- React.createElement("div", { className: "text-sm font-medium text-slate-900" }, opt.name),
43
- typeof opt.count === "number" && (React.createElement("div", { className: "text-xs text-slate-500" },
44
- opt.count,
45
- " documents"))))))) : (React.createElement("div", { className: "px-4 py-8 text-center text-sm text-slate-500" },
46
- "No ",
47
- label.toLowerCase(),
48
- " found"))),
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 }, 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" },
61
+ React.createElement(Checkbox, { checked: selectedIds.includes(opt.id), onChange: () => handleCheckboxChange(opt.id), className: "w-4 h-4 text-blue-600 border-slate-300 rounded focus:ring-blue-500" }),
62
+ React.createElement("div", { className: "flex-1" },
63
+ 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" },
64
+ "No ",
65
+ label.toLowerCase(),
66
+ " found")))),
49
67
  React.createElement("div", { className: "p-3 border-t border-slate-200 flex items-center justify-between" },
50
68
  React.createElement("span", { className: "text-xs text-slate-600" },
51
69
  selectedIds.length,
52
70
  " selected"),
53
71
  React.createElement(Space, null,
54
- React.createElement(Button, { type: "link", size: "small", onClick: onClearAll, className: "text-xs font-medium" }, "Reset"),
55
- React.createElement(Button, { type: "link", size: "small", onClick: onClearAll, className: "text-xs text-blue-600 hover:text-blue-700 font-medium" }, "Apply")))))));
72
+ React.createElement(Button, { type: "link", size: "small", className: "text-xs font-medium", onClick: handleReset }, "Reset"),
73
+ React.createElement(Button, { type: "link", size: "small", className: "text-xs text-blue-600 hover:text-blue-700 font-medium", onClick: handleApply }, "Apply"))))))));
56
74
  };
57
75
  export default FilterUI;
58
76
  //# 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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"}
@@ -6,19 +6,19 @@ import QuickSearch from "@voplus/morpho-ui/es/components/layout/ListView/control
6
6
  import TableUI from "../DocumentTableUI";
7
7
  import GridUI from "../GridUI";
8
8
  const DocumentViewClass = (props) => {
9
- const { list, title, icon, search = true } = props;
9
+ const { list, title, icon, search = true, total } = props;
10
10
  const { viewType } = useDocumentViewContext();
11
- return observe(() => (React.createElement("div", { className: "mb-8" },
11
+ return observe(() => (React.createElement(React.Fragment, null, total !== undefined && total > 0 ? (React.createElement("div", { className: "mb-8" },
12
12
  React.createElement("div", { className: "flex items-center justify-between mb-4" },
13
13
  React.createElement("div", { className: "flex items-center gap-2" },
14
14
  icon && React.createElement(FAIcon, { icon: icon }),
15
15
  React.createElement("h2", { className: "text-xl font-bold text-slate-900" }, title),
16
16
  React.createElement("span", { className: "text-sm text-slate-500" },
17
17
  "(",
18
- list.data.length,
18
+ total || list.data.length,
19
19
  ")")),
20
20
  React.createElement("div", { className: "flex items-center gap-2" }, search && React.createElement(QuickSearch, { onChange: (val) => { var _a; return (_a = props.onSearch) === null || _a === void 0 ? void 0 : _a.call(props, val); } }))),
21
- React.createElement("div", { className: "pinned-content" }, viewType === "table" ? React.createElement(TableUI, { ...props }) : React.createElement(GridUI, { ...props })))));
21
+ React.createElement("div", { className: "pinned-content" }, viewType === "table" ? React.createElement(TableUI, { ...props }) : React.createElement(GridUI, { ...props })))) : null)));
22
22
  };
23
23
  export default DocumentViewClass;
24
24
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/modules/my-document/SectionTemplate/DocumentViewClass/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAC5C,OAAO,EAAE,sBAAsB,EAAE,MAAM,2BAA2B,CAAC;AACnE,OAAO,EAAE,eAAe,IAAI,MAAM,EAAY,MAAM,8BAA8B,CAAC;AACnF,OAAO,WAAW,MAAM,sEAAsE,CAAC;AAC/F,OAAO,OAAO,MAAM,oBAAoB,CAAC;AACzC,OAAO,MAAM,MAAM,WAAW,CAAC;AAE/B,MAAM,iBAAiB,GAAG,CACzB,KAKwC,EACvC,EAAE;IACH,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI,EAAE,GAAG,KAAK,CAAC;IAEnD,MAAM,EAAE,QAAQ,EAAE,GAAG,sBAAsB,EAAE,CAAC;IAE9C,OAAO,OAAO,CAAC,GAAG,EAAE,CAAC,CACpB,6BAAK,SAAS,EAAC,MAAM;QACpB,6BAAK,SAAS,EAAC,wCAAwC;YACtD,6BAAK,SAAS,EAAC,yBAAyB;gBACtC,IAAI,IAAI,oBAAC,MAAM,IAAC,IAAI,EAAE,IAAI,GAAI;gBAC/B,4BAAI,SAAS,EAAC,kCAAkC,IAAE,KAAK,CAAM;gBAC7D,8BAAM,SAAS,EAAC,wBAAwB;;oBAAG,IAAI,CAAC,IAAI,CAAC,MAAM;wBAAS,CAC/D;YAEN,6BAAK,SAAS,EAAC,yBAAyB,IACtC,MAAM,IAAI,oBAAC,WAAW,IAAC,QAAQ,EAAE,CAAC,GAAG,EAAE,EAAE,WAAC,OAAA,MAAA,KAAK,CAAC,QAAQ,sDAAG,GAAG,CAAC,CAAA,EAAA,GAAI,CAC/D,CACD;QAEN,6BAAK,SAAS,EAAC,gBAAgB,IAC7B,QAAQ,KAAK,OAAO,CAAC,CAAC,CAAC,oBAAC,OAAO,OAAK,KAAK,GAAI,CAAC,CAAC,CAAC,oBAAC,MAAM,OAAK,KAAK,GAAI,CACjE,CACD,CACN,CAAC,CAAC;AACJ,CAAC,CAAC;AAEF,eAAe,iBAAiB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/modules/my-document/SectionTemplate/DocumentViewClass/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAC5C,OAAO,EAAE,sBAAsB,EAAE,MAAM,2BAA2B,CAAC;AACnE,OAAO,EAAE,eAAe,IAAI,MAAM,EAAY,MAAM,8BAA8B,CAAC;AACnF,OAAO,WAAW,MAAM,sEAAsE,CAAC;AAC/F,OAAO,OAAO,MAAM,oBAAoB,CAAC;AACzC,OAAO,MAAM,MAAM,WAAW,CAAC;AAE/B,MAAM,iBAAiB,GAAG,CACzB,KAKwC,EACvC,EAAE;IACH,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI,EAAE,KAAK,EAAE,GAAG,KAAK,CAAC;IAE1D,MAAM,EAAE,QAAQ,EAAE,GAAG,sBAAsB,EAAE,CAAC;IAE9C,OAAO,OAAO,CAAC,GAAG,EAAE,CAAC,CACpB,0CACE,KAAK,KAAK,SAAS,IAAI,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CACnC,6BAAK,SAAS,EAAC,MAAM;QACpB,6BAAK,SAAS,EAAC,wCAAwC;YACtD,6BAAK,SAAS,EAAC,yBAAyB;gBACtC,IAAI,IAAI,oBAAC,MAAM,IAAC,IAAI,EAAE,IAAI,GAAI;gBAC/B,4BAAI,SAAS,EAAC,kCAAkC,IAAE,KAAK,CAAM;gBAC7D,8BAAM,SAAS,EAAC,wBAAwB;;oBAAG,KAAK,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM;wBAAS,CACxE;YAEN,6BAAK,SAAS,EAAC,yBAAyB,IACtC,MAAM,IAAI,oBAAC,WAAW,IAAC,QAAQ,EAAE,CAAC,GAAG,EAAE,EAAE,WAAC,OAAA,MAAA,KAAK,CAAC,QAAQ,sDAAG,GAAG,CAAC,CAAA,EAAA,GAAI,CAC/D,CACD;QAEN,6BAAK,SAAS,EAAC,gBAAgB,IAC7B,QAAQ,KAAK,OAAO,CAAC,CAAC,CAAC,oBAAC,OAAO,OAAK,KAAK,GAAI,CAAC,CAAC,CAAC,oBAAC,MAAM,OAAK,KAAK,GAAI,CACjE,CACD,CACN,CAAC,CAAC,CAAC,IAAI,CACN,CACH,CAAC,CAAC;AACJ,CAAC,CAAC;AAEF,eAAe,iBAAiB,CAAC"}
@@ -2,7 +2,9 @@ import React from "react";
2
2
  import { ListDataContextState } from "@voplus/morpho-ui/es/data/ListDataContext";
3
3
  import { IDocument } from "@voplus/morpho-document-core";
4
4
  declare const GridView: (props: {
5
+ total?: number;
5
6
  list: ListDataContextState<IDocument>;
6
7
  onItemClick?: (id: string) => void;
8
+ onPageChange?: (page: number, pageSize: number) => void;
7
9
  }) => React.JSX.Element;
8
10
  export default GridView;
@@ -1,6 +1,6 @@
1
1
  import React from "react";
2
- import { Skeleton } from "antd";
3
2
  import { observe } from "@voplus/morpho-ui";
3
+ import { Skeleton, Pagination } from "antd";
4
4
  import { useElementWidth } from "./useElementWidth";
5
5
  import { useApplicationContext } from "@voplus/morpho-data";
6
6
  import { FontAwesomeIcon as FAIcon, faFolderOpenSolid } from "@voplus/morpho-ui/es/faIcons";
@@ -11,29 +11,37 @@ import DocumentToolbar from "@voplus/morpho-document/es/controls/DocumentToolbar
11
11
  import MentionList from "@voplus/morpho-org/es/controls/MentionList";
12
12
  import TagView from "@voplus/morpho-org/es/modules/tag/TagView";
13
13
  const GridView = (props) => {
14
- const { list } = props;
14
+ const { list, total } = props;
15
15
  const { user } = useApplicationContext();
16
16
  const meta = useMetaStore();
17
17
  const store = useDocumentStore();
18
+ const [currentPage, setCurrentPage] = React.useState(1);
18
19
  // 使用自定义 hook 检测宽度
19
20
  const [gridRef, , isNarrow] = useElementWidth(1200);
20
- return observe(() => (React.createElement(Skeleton, { loading: list.loading, active: true, paragraph: { rows: 3 } }, list.data.length > 0 ? (React.createElement("div", { ref: gridRef, className: `grid gap-4 items-stretch [grid-auto-rows:1fr] ` +
21
- (isNarrow ? "grid-cols-2" : "grid-cols-1 md:grid-cols-2 lg:grid-cols-3") }, list.data.map((doc) => (React.createElement("div", { key: doc.id, onClick: () => { var _a; return (_a = props.onItemClick) === null || _a === void 0 ? void 0 : _a.call(props, doc.id); }, className: "group relative bg-white border rounded-lg p-4 hover:shadow-md transition-all cursor-pointer border-slate-200" },
22
- React.createElement("div", { className: "absolute top-2 right-2" },
23
- React.createElement(DocumentToolbar, { id: doc.id },
24
- React.createElement(Open, { url: meta.getRoute(doc) }),
25
- doc.status === "Archived" && React.createElement(Restore, null),
26
- React.createElement(Versions, null),
27
- doc.type === "File" && React.createElement(Download, null))),
28
- React.createElement("div", { className: "flex items-start gap-3" },
29
- React.createElement("div", { className: "flex-shrink-0 text-slate-500 text-xl" }, meta.getIcon(doc)),
30
- React.createElement("div", { className: "flex-1 min-w-0" },
31
- React.createElement("h3", { className: "font-semibold text-slate-900 truncate group-hover:text-blue-600 transition-colors" }, doc.name),
32
- React.createElement("div", { className: "mt-2 flex flex-wrap items-center! gap-2 text-xs text-slate-500" },
33
- React.createElement(MentionList, { contacts: doc.createdBy ? [doc.createdBy] : [], placeholder: "no Data", canEdit: false }),
34
- React.createElement("div", null,
35
- React.createElement(DocumentDataIconBar, { id: doc.id }))),
36
- React.createElement(TagView, { id: doc.id, tags: doc.tags, items: store.items, editable: user.can("edit", doc.p, { asset: "Tags" }) && !doc.readonly })))))))) : (React.createElement("div", { className: "text-center py-12" },
21
+ return observe(() => (React.createElement(Skeleton, { loading: list.loading, active: true, paragraph: { rows: 3 } }, list.data.length > 0 ? (React.createElement(React.Fragment, null,
22
+ React.createElement("div", { ref: gridRef, className: `grid gap-4 items-stretch [grid-auto-rows:1fr] ` +
23
+ (isNarrow ? "grid-cols-2" : "grid-cols-1 md:grid-cols-2 lg:grid-cols-3") }, list.data.map((doc) => (React.createElement("div", { key: doc.id, onClick: () => { var _a; return (_a = props.onItemClick) === null || _a === void 0 ? void 0 : _a.call(props, doc.id); }, className: "group relative bg-white border rounded-lg p-4 hover:shadow-md transition-all cursor-pointer border-slate-200" },
24
+ React.createElement("div", { className: "absolute top-2 right-2" },
25
+ React.createElement(DocumentToolbar, { id: doc.id },
26
+ React.createElement(Open, { url: meta.getRoute(doc) }),
27
+ doc.status === "Archived" && React.createElement(Restore, null),
28
+ React.createElement(Versions, null),
29
+ doc.type === "File" && React.createElement(Download, null))),
30
+ React.createElement("div", { className: "flex items-start gap-3" },
31
+ React.createElement("div", { className: "flex-shrink-0 text-slate-500 text-xl" }, meta.getIcon(doc)),
32
+ React.createElement("div", { className: "flex-1 min-w-0" },
33
+ React.createElement("h3", { className: "font-semibold text-slate-900 truncate group-hover:text-blue-600 transition-colors" }, doc.name),
34
+ React.createElement("div", { className: "mt-2 flex flex-wrap items-center! gap-2 text-xs text-slate-500" },
35
+ React.createElement(MentionList, { contacts: doc.createdBy ? [doc.createdBy] : [], placeholder: "no Data", canEdit: false }),
36
+ React.createElement("div", null,
37
+ React.createElement(DocumentDataIconBar, { id: doc.id }))),
38
+ React.createElement(TagView, { id: doc.id, tags: doc.tags, items: store.items, editable: user.can("edit", doc.p, { asset: "Tags" }) && !doc.readonly }))))))),
39
+ React.createElement("div", { className: "flex justify-end mt-4" },
40
+ React.createElement(Pagination, { current: currentPage, total: total, pageSize: 20, onChange: (newPage, newPageSize) => {
41
+ var _a;
42
+ setCurrentPage(newPage);
43
+ (_a = props.onPageChange) === null || _a === void 0 ? void 0 : _a.call(props, newPage, newPageSize);
44
+ } })))) : (React.createElement("div", { className: "text-center py-12" },
37
45
  React.createElement("div", { className: "mb-4" },
38
46
  React.createElement(FAIcon, { icon: faFolderOpenSolid, className: "text-slate-300 text-6xl" })),
39
47
  React.createElement("h3", { className: "text-lg font-semibold text-slate-900 mb-2" }, "No documents found"),
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/modules/my-document/SectionTemplate/GridUI/index.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/modules/my-document/SectionTemplate/GridUI/index.tsx"],"names":[],"mappings":"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"}
@@ -10,22 +10,20 @@ import DocumentTableGroup from "./DocumentTableGroup";
10
10
  import Header from "./Header";
11
11
  const MyDocumentPage = (props) => {
12
12
  const [asideContext] = useState(AsideContent.createContext());
13
- const [active, setActive] = useState("pinned");
14
13
  const layout = useLayout();
15
14
  return observe(() => (React.createElement(AsideContent, { context: asideContext },
16
15
  React.createElement(DocumentViewProvider, null,
17
16
  React.createElement("div", { className: "inset-0 flex flex-col bg-slate-50" },
18
- React.createElement(Header, { activeTab: active, onAdd: handleAdd, onChange: setActive }),
17
+ React.createElement(Header, { onAdd: () => {
18
+ asideContext.openAside(React.createElement(NewDocumentForm, { parentId: props.parentId }), {
19
+ span: 10,
20
+ });
21
+ } }),
19
22
  React.createElement("div", { className: "flex-1 p-5 bg-slate-50" },
20
23
  React.createElement(Scrollbars, { autoHide: true },
21
- React.createElement(DocumentTableGroup, { id: props.parentId, type: active, onClickItem: (id) => {
24
+ React.createElement(DocumentTableGroup, { id: props.parentId, onClickItem: (id) => {
22
25
  layout.history.push(generatePath(props.path, { active: id }));
23
26
  } }))))))));
24
- function handleAdd() {
25
- asideContext.openAside(React.createElement(NewDocumentForm, { parentId: props.parentId }), {
26
- span: 10,
27
- });
28
- }
29
27
  };
30
28
  export default MyDocumentPage;
31
29
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/modules/my-document/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AACxC,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAC5C,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAC5C,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAChD,OAAO,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AACvD,OAAO,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAC7D,OAAO,YAAY,MAAM,qDAAqD,CAAC;AAC/E,OAAO,eAAe,MAAM,uDAAuD,CAAC;AACpF,OAAO,kBAAkB,MAAM,sBAAsB,CAAC;AACtD,OAAO,MAAM,MAAM,UAAU,CAAC;AAE9B,MAAM,cAAc,GAAG,CAAC,KAAyC,EAAE,EAAE;IACpE,MAAM,CAAC,YAAY,CAAC,GAAG,QAAQ,CAAC,YAAY,CAAC,aAAa,EAAE,CAAC,CAAC;IAC9D,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,QAAQ,CAAwB,QAAQ,CAAC,CAAC;IAEtE,MAAM,MAAM,GAAG,SAAS,EAAE,CAAC;IAE3B,OAAO,OAAO,CAAC,GAAG,EAAE,CAAC,CACpB,oBAAC,YAAY,IAAC,OAAO,EAAE,YAAY;QAClC,oBAAC,oBAAoB;YACpB,6BAAK,SAAS,EAAC,mCAAmC;gBAEjD,oBAAC,MAAM,IAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,SAAS,GAAI;gBAEpE,6BAAK,SAAS,EAAC,wBAAwB;oBACtC,oBAAC,UAAU,IAAC,QAAQ;wBACnB,oBAAC,kBAAkB,IAClB,EAAE,EAAE,KAAK,CAAC,QAAQ,EAClB,IAAI,EAAE,MAAM,EACZ,WAAW,EAAE,CAAC,EAAE,EAAE,EAAE;gCACnB,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,IAAI,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;4BAC/D,CAAC,GACA,CACU,CACR,CACD,CACgB,CACT,CACf,CAAC,CAAC;IAEH,SAAS,SAAS;QACjB,YAAY,CAAC,SAAS,CAAC,oBAAC,eAAe,IAAC,QAAQ,EAAE,KAAK,CAAC,QAAQ,GAAI,EAAE;YACrE,IAAI,EAAE,EAAE;SACR,CAAC,CAAC;IACJ,CAAC;AACF,CAAC,CAAC;AAEF,eAAe,cAAc,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/modules/my-document/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AACxC,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAC5C,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAC5C,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAChD,OAAO,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AACvD,OAAO,EAAE,oBAAoB,EAA0B,MAAM,uBAAuB,CAAC;AACrF,OAAO,YAAY,MAAM,qDAAqD,CAAC;AAC/E,OAAO,eAAe,MAAM,uDAAuD,CAAC;AACpF,OAAO,kBAAkB,MAAM,sBAAsB,CAAC;AACtD,OAAO,MAAM,MAAM,UAAU,CAAC;AAE9B,MAAM,cAAc,GAAG,CAAC,KAAyC,EAAE,EAAE;IACpE,MAAM,CAAC,YAAY,CAAC,GAAG,QAAQ,CAAC,YAAY,CAAC,aAAa,EAAE,CAAC,CAAC;IAE9D,MAAM,MAAM,GAAG,SAAS,EAAE,CAAC;IAE3B,OAAO,OAAO,CAAC,GAAG,EAAE,CAAC,CACpB,oBAAC,YAAY,IAAC,OAAO,EAAE,YAAY;QAClC,oBAAC,oBAAoB;YACpB,6BAAK,SAAS,EAAC,mCAAmC;gBAEjD,oBAAC,MAAM,IACN,KAAK,EAAE,GAAG,EAAE;wBACX,YAAY,CAAC,SAAS,CACrB,oBAAC,eAAe,IACf,QAAQ,EAAE,KAAK,CAAC,QAAQ,GAMvB,EACF;4BACC,IAAI,EAAE,EAAE;yBACR,CACD,CAAC;oBACH,CAAC,GACA;gBAEF,6BAAK,SAAS,EAAC,wBAAwB;oBACtC,oBAAC,UAAU,IAAC,QAAQ;wBACnB,oBAAC,kBAAkB,IAClB,EAAE,EAAE,KAAK,CAAC,QAAQ,EAClB,WAAW,EAAE,CAAC,EAAE,EAAE,EAAE;gCACnB,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,IAAI,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;4BAC/D,CAAC,GACA,CACU,CACR,CACD,CACgB,CACT,CACf,CAAC,CAAC;AACJ,CAAC,CAAC;AAEF,eAAe,cAAc,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@voplus/morpho-workspace",
3
- "version": "9.0.8",
3
+ "version": "9.0.9",
4
4
  "description": "morpho workspace module",
5
5
  "repository": {
6
6
  "type": "git",
@@ -1,7 +0,0 @@
1
- export declare class ReloadState {
2
- loaded: boolean;
3
- constructor();
4
- onReload(): void;
5
- }
6
- export declare const ReloadContext: import("react").Context<ReloadState>;
7
- export declare const useReloadContext: () => ReloadState;
@@ -1,29 +0,0 @@
1
- import { __decorate } from "tslib";
2
- import { createContext, useContext } from "react";
3
- import { makeObservable, observable, action } from "mobx";
4
- export class ReloadState {
5
- constructor() {
6
- Object.defineProperty(this, "loaded", {
7
- enumerable: true,
8
- configurable: true,
9
- writable: true,
10
- value: true
11
- });
12
- makeObservable(this);
13
- }
14
- onReload() {
15
- this.loaded = false;
16
- setTimeout(() => {
17
- this.loaded = true;
18
- }, 100);
19
- }
20
- }
21
- __decorate([
22
- observable
23
- ], ReloadState.prototype, "loaded", void 0);
24
- __decorate([
25
- action
26
- ], ReloadState.prototype, "onReload", null);
27
- export const ReloadContext = createContext(null);
28
- export const useReloadContext = () => useContext(ReloadContext);
29
- //# sourceMappingURL=ReloadContext.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ReloadContext.js","sourceRoot":"","sources":["../../../../src/modules/my-document/DocumentTableGroup/ReloadContext.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC;AAClD,OAAO,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,MAAM,CAAC;AAE1D,MAAM,OAAO,WAAW;IAGvB;QAFmB;;;;mBAAS,IAAI;WAAC;QAGhC,cAAc,CAAC,IAAI,CAAC,CAAC;IACtB,CAAC;IAEO,QAAQ;QACf,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;QACpB,UAAU,CAAC,GAAG,EAAE;YACf,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;QACpB,CAAC,EAAE,GAAG,CAAC,CAAC;IACT,CAAC;CACD;AAZmB;IAAlB,UAAU;2CAAsB;AAMzB;IAAP,MAAM;2CAKN;AAGF,MAAM,CAAC,MAAM,aAAa,GAAG,aAAa,CAAc,IAAW,CAAC,CAAC;AACrE,MAAM,CAAC,MAAM,gBAAgB,GAAG,GAAG,EAAE,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC"}