@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.
- package/es/modules/my-document/DocumentTableGroup/DocumentSection.d.ts +1 -1
- package/es/modules/my-document/DocumentTableGroup/DocumentSection.js +29 -17
- package/es/modules/my-document/DocumentTableGroup/DocumentSection.js.map +1 -1
- package/es/modules/my-document/DocumentTableGroup/index.d.ts +1 -1
- package/es/modules/my-document/DocumentTableGroup/index.js +30 -9
- package/es/modules/my-document/DocumentTableGroup/index.js.map +1 -1
- package/es/modules/my-document/DocumentViewContext.d.ts +11 -3
- package/es/modules/my-document/DocumentViewContext.js +24 -2
- package/es/modules/my-document/DocumentViewContext.js.map +1 -1
- package/es/modules/my-document/FilterTabsBar/index.d.ts +0 -2
- package/es/modules/my-document/FilterTabsBar/index.js +10 -28
- package/es/modules/my-document/FilterTabsBar/index.js.map +1 -1
- package/es/modules/my-document/FilterUI/TeamFilter/index.d.ts +3 -0
- package/es/modules/my-document/FilterUI/TeamFilter/index.js +31 -0
- package/es/modules/my-document/FilterUI/TeamFilter/index.js.map +1 -0
- package/es/modules/my-document/FilterUI/WorkspaceFilter/index.d.ts +3 -0
- package/es/modules/my-document/FilterUI/WorkspaceFilter/index.js +27 -0
- package/es/modules/my-document/FilterUI/WorkspaceFilter/index.js.map +1 -0
- package/es/modules/my-document/FilterUI/index.css +8 -0
- package/es/modules/my-document/FilterUI/index.d.ts +9 -14
- package/es/modules/my-document/FilterUI/index.js +46 -28
- package/es/modules/my-document/FilterUI/index.js.map +1 -1
- package/es/modules/my-document/SectionTemplate/DocumentViewClass/index.js +4 -4
- package/es/modules/my-document/SectionTemplate/DocumentViewClass/index.js.map +1 -1
- package/es/modules/my-document/SectionTemplate/GridUI/index.d.ts +2 -0
- package/es/modules/my-document/SectionTemplate/GridUI/index.js +27 -19
- package/es/modules/my-document/SectionTemplate/GridUI/index.js.map +1 -1
- package/es/modules/my-document/index.js +6 -8
- package/es/modules/my-document/index.js.map +1 -1
- package/package.json +1 -1
- package/es/modules/my-document/DocumentTableGroup/ReloadContext.d.ts +0 -7
- package/es/modules/my-document/DocumentTableGroup/ReloadContext.js +0 -29
- 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 {
|
|
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
|
|
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
|
|
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:
|
|
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,
|
|
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(() =>
|
|
41
|
-
useOnUnPinDocument(() =>
|
|
42
|
-
useOnFlagChange(() =>
|
|
43
|
-
useOnDeleteDocument(() =>
|
|
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;
|
|
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 {
|
|
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
|
|
12
|
-
const
|
|
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
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
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;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/modules/my-document/DocumentTableGroup/index.tsx"],"names":[],"mappings":"AAAA;;KAEK;AAEL,OAAO,KAAK,EAAE,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AACnD,OAAO,EAAE,sBAAsB,EAAE,MAAM,wBAAwB,CAAC;AAChE,OAAO,EAAE,OAAO,EAAE,sBAAsB,EAAE,MAAM,mBAAmB,CAAC;AACpE,OAAO,EACN,eAAe,IAAI,MAAM,EACzB,iBAAiB,EACjB,WAAW,EACX,wBAAwB,GACxB,MAAM,8BAA8B,CAAC;AACtC,OAAO,sBAAsB,MAAM,mEAAmE,CAAC;AACvG,OAAO,eAAe,MAAM,mBAAmB,CAAC;AAEhD,YAAY;AACZ,MAAM,UAAU,qBAAqB,CAAC,GAAW;IAChD,IAAI,CAAC,GAAG;QAAE,OAAO,GAAG,CAAC;IACrB,OAAO,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AACnD,CAAC;AAED,MAAM,kBAAkB,GAAG,CAAC,KAAyD,EAAE,EAAE;IACxF,MAAM,EAAE,EAAE,EAAE,GAAG,KAAK,CAAC;IAErB,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,aAAa,EAAE,GAAG,sBAAsB,EAAE,CAAC;IACtE,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IAEpD,SAAS,CAAC,GAAG,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,aAAa,CAAC,CAAC,CAAC;IAE5E,MAAM,YAAY,GAAG,sBAAsB,EAAE,CAAC;IAE9C,OAAO,OAAO,CAAC,GAAG,EAAE,CAAC,CACpB,0CACE,MAAM;QACN,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CACjC,6BAAK,SAAS,EAAC,mBAAmB;YACjC,6BAAK,SAAS,EAAC,MAAM;gBACpB,oBAAC,MAAM,IAAC,IAAI,EAAE,iBAAiB,EAAE,SAAS,EAAC,yBAAyB,GAAG,CAClE;YACN,4BAAI,SAAS,EAAC,2CAA2C,yBAAwB;YACjF,2BAAG,SAAS,EAAC,gBAAgB,2DAAyD,CACjF,CACN,CAAC,CAAC,CAAC,CACH;YACC,oBAAC,eAAe,IACf,EAAE,EAAE,EAAE,EACN,IAAI,EAAC,MAAM,EACX,IAAI,EAAE,WAAW,EACjB,KAAK,EAAE,GAAG,qBAAqB,CAAC,SAAS,CAAC,UAAU,EACpD,WAAW,EAAE,WAAW,EACxB,aAAa,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,iBAAiB,CAAC,CAAC,EAAE,KAAK,CAAC,GACpD;YACF,oBAAC,eAAe,IACf,EAAE,EAAE,EAAE,EACN,IAAI,EAAC,QAAQ,EACb,IAAI,EAAE,wBAAwB,EAC9B,KAAK,EAAE,GAAG,qBAAqB,CAAC,SAAS,CAAC,SAAS,EACnD,WAAW,EAAE,WAAW,EACxB,aAAa,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,iBAAiB,CAAC,CAAC,EAAE,KAAK,CAAC,GACpD;YACF,oBAAC,eAAe,IACf,EAAE,EAAE,EAAE,EACN,IAAI,EAAC,MAAM,EACX,KAAK,EAAE,GAAG,qBAAqB,CAAC,SAAS,CAAC,YAAY,EACtD,WAAW,EAAE,WAAW,EACxB,aAAa,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,iBAAiB,CAAC,CAAC,EAAE,KAAK,CAAC,GACpD,CACA,CACH,CAAC,CACD,CACH,CAAC,CAAC;IAEH,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,uBAAuB;IACvB,SAAS,iBAAiB,CAAC,KAAa,EAAE,KAAa;QACtD,WAAW,CAAC,CAAC,IAAI,EAAE,EAAE;YACpB,MAAM,IAAI,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC;YACvB,IAAI,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC;YACpB,OAAO,IAAI,CAAC;QACb,CAAC,CAAC,CAAC;IACJ,CAAC;AACF,CAAC,CAAC;AAEF,eAAe,kBAAkB,CAAC"}
|
|
@@ -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
|
-
|
|
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:
|
|
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
|
-
|
|
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;
|
|
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,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,
|
|
5
|
-
import
|
|
6
|
-
import
|
|
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 {
|
|
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: () =>
|
|
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: () =>
|
|
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(
|
|
39
|
-
React.createElement(
|
|
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":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAC5C,OAAO,EAAE,sBAAsB,EAAE,MAAM,wBAAwB,CAAC;AAChE,OAAO,EACN,eAAe,IAAI,MAAM,EACzB,eAAe,EACf,cAAc,EACd,aAAa,EACb,WAAW,EACX,WAAW,
|
|
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,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,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"}
|
|
@@ -1,21 +1,16 @@
|
|
|
1
1
|
import React from "react";
|
|
2
|
-
|
|
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
|
-
|
|
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
|
-
|
|
12
|
-
selectedIds: string[];
|
|
12
|
+
list: ListDataContextState<T>;
|
|
13
13
|
searchPlaceholder?: string;
|
|
14
|
-
|
|
15
|
-
|
|
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 {
|
|
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
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
const
|
|
8
|
-
|
|
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
|
-
|
|
22
|
-
|
|
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", {
|
|
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",
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
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",
|
|
55
|
-
React.createElement(Button, { type: "link", size: "small",
|
|
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":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;
|
|
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;
|
|
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(
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
React.createElement(
|
|
24
|
-
React.createElement(
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
React.createElement("div", { className: "flex
|
|
30
|
-
|
|
31
|
-
React.createElement("
|
|
32
|
-
|
|
33
|
-
React.createElement(
|
|
34
|
-
|
|
35
|
-
React.createElement(
|
|
36
|
-
|
|
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":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,
|
|
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, {
|
|
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,
|
|
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,
|
|
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,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"}
|