@voplus/morpho-workspace 6.0.34 → 6.0.36
Sign up to get free protection for your applications and to get access to all the features.
- package/es/data/workspace/WorkSpaceStore.d.ts +5 -7
- package/es/data/workspace/WorkSpaceStore.js +3 -3
- package/es/data/workspace/WorkSpaceStore.js.map +1 -1
- package/es/data/workspace/interfaces.d.ts +2 -5
- package/es/data/workspace/types.d.ts +5 -0
- package/es/modules/tasks/components/TaskCheckActiveTab/index.d.ts +8 -0
- package/es/modules/tasks/components/TaskCheckActiveTab/index.js +106 -0
- package/es/modules/tasks/components/TaskCheckActiveTab/index.js.map +1 -0
- package/es/modules/tasks/components/TaskCheckActiveTab/index.less +21 -0
- package/es/modules/tasks/components/TaskCheckActiveTab/state.d.ts +15 -0
- package/es/modules/tasks/components/TaskCheckActiveTab/state.js +128 -0
- package/es/modules/tasks/components/TaskCheckActiveTab/state.js.map +1 -0
- package/es/modules/tasks/components/TaskCheckDoneTab/index.d.ts +7 -0
- package/es/modules/tasks/components/TaskCheckDoneTab/index.js +60 -0
- package/es/modules/tasks/components/TaskCheckDoneTab/index.js.map +1 -0
- package/es/modules/tasks/components/TaskCheckDoneTab/state.d.ts +4 -0
- package/es/modules/tasks/components/TaskCheckDoneTab/state.js +17 -0
- package/es/modules/tasks/components/TaskCheckDoneTab/state.js.map +1 -0
- package/es/modules/tasks/components/TaskCheckItem/index.d.ts +8 -0
- package/es/modules/tasks/components/TaskCheckItem/index.js +36 -0
- package/es/modules/tasks/components/TaskCheckItem/index.js.map +1 -0
- package/es/modules/tasks/components/TaskCheckItem/index.less +28 -0
- package/es/modules/tasks/components/TaskCheckItem/state.d.ts +9 -0
- package/es/modules/tasks/components/TaskCheckItem/state.js +43 -0
- package/es/modules/tasks/components/TaskCheckItem/state.js.map +1 -0
- package/es/modules/tasks/components/TaskCheckList/index.d.ts +6 -0
- package/es/modules/tasks/components/TaskCheckList/index.js +72 -0
- package/es/modules/tasks/components/TaskCheckList/index.js.map +1 -0
- package/es/modules/tasks/components/TaskCheckList/index.less +43 -0
- package/es/modules/tasks/components/TaskCheckList/state.d.ts +10 -0
- package/es/modules/tasks/components/TaskCheckList/state.js +65 -0
- package/es/modules/tasks/components/TaskCheckList/state.js.map +1 -0
- package/es/modules/tasks/components/TaskCheckListCard/index.d.ts +12 -0
- package/es/modules/tasks/components/TaskCheckListCard/index.js +14 -0
- package/es/modules/tasks/components/TaskCheckListCard/index.js.map +1 -0
- package/es/modules/tasks/components/TaskCheckNewForm/index.d.ts +9 -0
- package/es/modules/tasks/components/TaskCheckNewForm/index.js +76 -0
- package/es/modules/tasks/components/TaskCheckNewForm/index.js.map +1 -0
- package/es/modules/tasks/components/TaskCheckNewForm/index.less +21 -0
- package/es/modules/tasks/components/TaskCheckNewForm/state.d.ts +15 -0
- package/es/modules/tasks/components/TaskCheckNewForm/state.js +45 -0
- package/es/modules/tasks/components/TaskCheckNewForm/state.js.map +1 -0
- package/es/modules/workspace/controls/WorkspaceMenu/index.js +21 -18
- package/es/modules/workspace/controls/WorkspaceMenu/index.js.map +1 -1
- package/package.json +1 -1
@@ -1,6 +1,6 @@
|
|
1
1
|
import { ApiEndPoint } from "@voplus/api";
|
2
2
|
import { CountedMap, Store } from "@voplus/morpho-data";
|
3
|
-
import { CreateWorkspaceOptions, EditWorkspaceOptions, IWorkspace, LoadWorkspaceOptions } from "./";
|
3
|
+
import { CreateWorkspaceOptions, EditWorkspaceOptions, IWorkspace, LoadWorkspaceOptions, DeleteWorkspaceOptions } from "./";
|
4
4
|
import { IDocumentAccessSettings, LoadDocumentListOptions } from "@voplus/morpho-document-core";
|
5
5
|
/** Workspace store provides service for workspace operations */
|
6
6
|
export declare class WorkspaceStore extends Store {
|
@@ -18,9 +18,9 @@ export declare class WorkspaceStore extends Store {
|
|
18
18
|
/** All currently used workspace. */
|
19
19
|
readonly items: CountedMap<string, IWorkspace>;
|
20
20
|
/** Load a workspace from server.
|
21
|
-
|
22
|
-
|
23
|
-
|
21
|
+
* @param {string} id - id of the workspace.
|
22
|
+
* @param {LoadWorkspaceOptions} options - Optional load options.
|
23
|
+
*/
|
24
24
|
load(id: string, options?: LoadWorkspaceOptions): Promise<IWorkspace>;
|
25
25
|
/** Load a list of workspaces from server.
|
26
26
|
* @param {LoadDocumentListOptions}
|
@@ -30,9 +30,7 @@ export declare class WorkspaceStore extends Store {
|
|
30
30
|
create(options: CreateWorkspaceOptions): Promise<IWorkspace>;
|
31
31
|
/** Edit an existing item on server. */
|
32
32
|
edit(id: string, options: EditWorkspaceOptions): Promise<any>;
|
33
|
-
delete(ids: string[], options:
|
34
|
-
DeleteChilds?: boolean;
|
35
|
-
}): Promise<IWorkspace[]>;
|
33
|
+
delete(ids: string[], options: DeleteWorkspaceOptions): Promise<IWorkspace[]>;
|
36
34
|
loadAccess(id: string): Promise<IDocumentAccessSettings>;
|
37
35
|
}
|
38
36
|
/** React hook to retrieve WorkspaceStore */
|
@@ -53,9 +53,9 @@ export class WorkspaceStore extends Store {
|
|
53
53
|
});
|
54
54
|
}
|
55
55
|
/** Load a workspace from server.
|
56
|
-
|
57
|
-
|
58
|
-
|
56
|
+
* @param {string} id - id of the workspace.
|
57
|
+
* @param {LoadWorkspaceOptions} options - Optional load options.
|
58
|
+
*/
|
59
59
|
async load(id, options) {
|
60
60
|
options = options !== null && options !== void 0 ? options : {};
|
61
61
|
let query = "";
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"WorkSpaceStore.js","sourceRoot":"","sources":["../../../src/data/workspace/WorkSpaceStore.ts"],"names":[],"mappings":";AAAA,OAAO,EAAe,cAAc,EAAE,MAAM,aAAa,CAAC;AAC1D,OAAO,EAAE,UAAU,EAAE,KAAK,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;
|
1
|
+
{"version":3,"file":"WorkSpaceStore.js","sourceRoot":"","sources":["../../../src/data/workspace/WorkSpaceStore.ts"],"names":[],"mappings":"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"}
|
@@ -1,6 +1,7 @@
|
|
1
1
|
import { ILoadable } from "@voplus/morpho-data";
|
2
|
+
import { INode } from "@voplus/morpho-document-core";
|
2
3
|
export type MessageStatus = "New" | "Due" | "Pending" | "Done" | "Cancelled";
|
3
|
-
export interface IWorkspace extends ILoadable {
|
4
|
+
export interface IWorkspace extends ILoadable, INode {
|
4
5
|
/** id of the workspace. */
|
5
6
|
id: string;
|
6
7
|
/** name of the workspace. */
|
@@ -11,10 +12,6 @@ export interface IWorkspace extends ILoadable {
|
|
11
12
|
stats?: {
|
12
13
|
activeWorks: number;
|
13
14
|
};
|
14
|
-
/** actions of the workspace */
|
15
|
-
actions?: {
|
16
|
-
canDelete: boolean;
|
17
|
-
};
|
18
15
|
/** Create date of the workspace. */
|
19
16
|
createDate?: string;
|
20
17
|
/** Owner of the workspace. */
|
@@ -0,0 +1,8 @@
|
|
1
|
+
import React from "react";
|
2
|
+
import { State as TaskCheckState } from "../TaskCheckList/state";
|
3
|
+
import "./index.less";
|
4
|
+
declare const TaskCheckActiveTab: (props: {
|
5
|
+
parentId: string;
|
6
|
+
taskCheckState: TaskCheckState;
|
7
|
+
}) => React.JSX.Element;
|
8
|
+
export default TaskCheckActiveTab;
|
@@ -0,0 +1,106 @@
|
|
1
|
+
import React, { useState } from "react";
|
2
|
+
import { observe } from "@voplus/morpho-ui";
|
3
|
+
import { Skeleton, Collapse, Empty } from "antd";
|
4
|
+
import { useOnNewDocument, useOnDeleteDocument } from "@voplus/morpho-document-core";
|
5
|
+
import { CaretRightOutlined } from "@ant-design/icons";
|
6
|
+
import TaskCheckItem from "../TaskCheckItem";
|
7
|
+
import DocumentItemFrame from "@voplus/morpho-document/es/controls/DocumentItemFrame";
|
8
|
+
import { useRenderOnChange } from "@voplus/morpho-ui";
|
9
|
+
import { State } from "./state";
|
10
|
+
import { runInAction } from "mobx";
|
11
|
+
import { ListDataContext, useCreateListDataState } from "@voplus/morpho-ui/es/data";
|
12
|
+
import { useTaskListEffect } from "@voplus/morpho-document-core";
|
13
|
+
import "./index.less";
|
14
|
+
const TaskCheckActiveTab = (props) => {
|
15
|
+
const { parentId, taskCheckState } = props;
|
16
|
+
const [state] = useState(new State());
|
17
|
+
const list = useCreateListDataState({
|
18
|
+
filterDefaults: {
|
19
|
+
includes: "tags",
|
20
|
+
filters: [
|
21
|
+
{ c: "ParentNodeId", o: "=", l: "And", v1: parentId },
|
22
|
+
{ c: "TaskStatus", o: "!=", l: "And", v1: "Done" },
|
23
|
+
/** 必須提供parent node id或assignee filter */
|
24
|
+
// {
|
25
|
+
// c: "Members",
|
26
|
+
// o: "contains",
|
27
|
+
// v1: JSON.stringify(Array.from(this.members.keys())),
|
28
|
+
// l: "And",
|
29
|
+
// },
|
30
|
+
],
|
31
|
+
page: { Page: 1, PageSize: 500 },
|
32
|
+
},
|
33
|
+
}, [parentId]);
|
34
|
+
/** 如果 list.filters.options变更了就重渲染,使下一行的useTaskListEffect 可以接收新参数*/
|
35
|
+
useRenderOnChange(() => list.filters.options);
|
36
|
+
/** 把ListDataState传给useTaskListEffect,使之可以自動更新loading, hasmore. */
|
37
|
+
useTaskListEffect(list, (result, total) => {
|
38
|
+
list.union(result);
|
39
|
+
state.update(result, "new");
|
40
|
+
runInAction(() => {
|
41
|
+
state.total = total;
|
42
|
+
taskCheckState.updateActiveTotals(total);
|
43
|
+
});
|
44
|
+
}, { ...list.filters.options, Total: true });
|
45
|
+
/** 新增task */
|
46
|
+
useOnNewDocument((s, doc) => {
|
47
|
+
if (doc.parentId === props.parentId && doc.type === "Task") {
|
48
|
+
state.total += 1;
|
49
|
+
taskCheckState.updateActiveTotals(state.total);
|
50
|
+
state.update([doc], "new");
|
51
|
+
}
|
52
|
+
});
|
53
|
+
/** 删除task */
|
54
|
+
useOnDeleteDocument((s, doc) => {
|
55
|
+
if (doc.parentId === props.parentId && doc.type === "Task") {
|
56
|
+
state.total -= 1;
|
57
|
+
taskCheckState.updateActiveTotals(state.total);
|
58
|
+
state.update([doc], "del");
|
59
|
+
}
|
60
|
+
});
|
61
|
+
return observe(() => {
|
62
|
+
const items = [];
|
63
|
+
if (state.dueList.length)
|
64
|
+
items.push({
|
65
|
+
key: "Due",
|
66
|
+
label: "Due",
|
67
|
+
children: (React.createElement(React.Fragment, null, state.dueList.map((item) => (React.createElement(DocumentItemFrame, { key: item.id },
|
68
|
+
React.createElement(TaskCheckItem, { id: item.id, dueDate: true })))))),
|
69
|
+
});
|
70
|
+
if (state.todayList.length)
|
71
|
+
items.push({
|
72
|
+
key: "Today",
|
73
|
+
label: "Today",
|
74
|
+
children: (React.createElement(React.Fragment, null, state.todayList.map((item) => (React.createElement(DocumentItemFrame, { key: item.id },
|
75
|
+
React.createElement(TaskCheckItem, { id: item.id })))))),
|
76
|
+
});
|
77
|
+
if (state.tomorrowList.length)
|
78
|
+
items.push({
|
79
|
+
key: "Tomorrow",
|
80
|
+
label: "Tomorrow",
|
81
|
+
children: (React.createElement(React.Fragment, null, state.tomorrowList.map((item) => (React.createElement(DocumentItemFrame, { key: item.id },
|
82
|
+
React.createElement(TaskCheckItem, { id: item.id })))))),
|
83
|
+
});
|
84
|
+
if (state.thisWeekList.length)
|
85
|
+
items.push({
|
86
|
+
key: "This Week",
|
87
|
+
label: "This Week",
|
88
|
+
children: (React.createElement(React.Fragment, null, state.thisWeekList.map((item) => (React.createElement(DocumentItemFrame, { key: item.id },
|
89
|
+
React.createElement(TaskCheckItem, { id: item.id })))))),
|
90
|
+
});
|
91
|
+
if (state.upcomingList.length)
|
92
|
+
items.push({
|
93
|
+
key: "Upcoming",
|
94
|
+
label: "Upcoming",
|
95
|
+
children: (React.createElement(React.Fragment, null, state.upcomingList.map((item) => (React.createElement(DocumentItemFrame, { key: item.id },
|
96
|
+
React.createElement(TaskCheckItem, { id: item.id, dueDate: true })))))),
|
97
|
+
});
|
98
|
+
return (React.createElement(ListDataContext.Provider, { value: list },
|
99
|
+
React.createElement("div", { className: "active-tab-task-list" },
|
100
|
+
React.createElement(Skeleton, { loading: list.loading },
|
101
|
+
React.createElement(Collapse, { className: "active-task-collapse", bordered: false, defaultActiveKey: ["Due", "Today", "Tomorrow", "This Week", "Upcoming"], expandIcon: ({ isActive }) => React.createElement(CaretRightOutlined, { rotate: isActive ? 90 : 0 }), items: items }),
|
102
|
+
!items.length && React.createElement(Empty, null)))));
|
103
|
+
});
|
104
|
+
};
|
105
|
+
export default TaskCheckActiveTab;
|
106
|
+
//# sourceMappingURL=index.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/modules/tasks/components/TaskCheckActiveTab/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,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,MAAM,CAAC;AACjD,OAAO,EAAiB,gBAAgB,EAAE,mBAAmB,EAAE,MAAM,8BAA8B,CAAC;AACpG,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AACvD,OAAO,aAAa,MAAM,kBAAkB,CAAC;AAE7C,OAAO,iBAAiB,MAAM,uDAAuD,CAAC;AACtF,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAEhC,OAAO,EAAE,WAAW,EAAE,MAAM,MAAM,CAAC;AACnC,OAAO,EAAE,eAAe,EAAE,sBAAsB,EAAE,MAAM,2BAA2B,CAAC;AACpF,OAAO,EAAS,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AACxE,OAAO,cAAc,CAAC;AAEtB,MAAM,kBAAkB,GAAG,CAAC,KAA2D,EAAE,EAAE;IAC1F,MAAM,EAAE,QAAQ,EAAE,cAAc,EAAE,GAAG,KAAK,CAAC;IAC3C,MAAM,CAAC,KAAK,CAAC,GAAG,QAAQ,CAAC,IAAI,KAAK,EAAE,CAAC,CAAC;IACtC,MAAM,IAAI,GAAG,sBAAsB,CAClC;QACC,cAAc,EAAE;YACf,QAAQ,EAAE,MAAM;YAChB,OAAO,EAAE;gBACR,EAAE,CAAC,EAAE,cAAc,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,QAAQ,EAAE;gBACrD,EAAE,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE,IAAW,EAAE,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,MAAM,EAAE;gBACzD,yCAAyC;gBACzC,IAAI;gBACJ,iBAAiB;gBACjB,kBAAkB;gBAClB,wDAAwD;gBACxD,aAAa;gBACb,KAAK;aACL;YACD,IAAI,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,QAAQ,EAAE,GAAG,EAAE;SAChC;KACD,EACD,CAAC,QAAQ,CAAC,CACV,CAAC;IAEF,mEAAmE;IACnE,iBAAiB,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IAE9C,kEAAkE;IAClE,iBAAiB,CAChB,IAAI,EACJ,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE;QACjB,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QACnB,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;QAC5B,WAAW,CAAC,GAAG,EAAE;YAChB,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC;YACpB,cAAc,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC;QAC1C,CAAC,CAAC,CAAC;IACJ,CAAC,EACD,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,CACxC,CAAC;IAEF,aAAa;IACb,gBAAgB,CAAC,CAAC,CAAgB,EAAE,GAAU,EAAE,EAAE;QACjD,IAAI,GAAG,CAAC,QAAQ,KAAK,KAAK,CAAC,QAAQ,IAAI,GAAG,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;YAC5D,KAAK,CAAC,KAAK,IAAI,CAAC,CAAC;YACjB,cAAc,CAAC,kBAAkB,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;YAC/C,KAAK,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,EAAE,KAAK,CAAC,CAAC;QAC5B,CAAC;IACF,CAAC,CAAC,CAAC;IAEH,aAAa;IACb,mBAAmB,CAAC,CAAC,CAAgB,EAAE,GAAU,EAAE,EAAE;QACpD,IAAI,GAAG,CAAC,QAAQ,KAAK,KAAK,CAAC,QAAQ,IAAI,GAAG,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;YAC5D,KAAK,CAAC,KAAK,IAAI,CAAC,CAAC;YACjB,cAAc,CAAC,kBAAkB,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;YAC/C,KAAK,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,EAAE,KAAK,CAAC,CAAC;QAC5B,CAAC;IACF,CAAC,CAAC,CAAC;IAEH,OAAO,OAAO,CAAC,GAAG,EAAE;QACnB,MAAM,KAAK,GAA2B,EAAE,CAAC;QACzC,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM;YACvB,KAAK,CAAC,IAAI,CAAC;gBACV,GAAG,EAAE,KAAK;gBACV,KAAK,EAAE,KAAK;gBACZ,QAAQ,EAAE,CACT,0CACE,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAC5B,oBAAC,iBAAiB,IAAC,GAAG,EAAE,IAAI,CAAC,EAAE;oBAC9B,oBAAC,aAAa,IAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,OAAO,SAAG,CACnB,CACpB,CAAC,CACA,CACH;aACD,CAAC,CAAC;QACJ,IAAI,KAAK,CAAC,SAAS,CAAC,MAAM;YACzB,KAAK,CAAC,IAAI,CAAC;gBACV,GAAG,EAAE,OAAO;gBACZ,KAAK,EAAE,OAAO;gBACd,QAAQ,EAAE,CACT,0CACE,KAAK,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAC9B,oBAAC,iBAAiB,IAAC,GAAG,EAAE,IAAI,CAAC,EAAE;oBAC9B,oBAAC,aAAa,IAAC,EAAE,EAAE,IAAI,CAAC,EAAE,GAAI,CACX,CACpB,CAAC,CACA,CACH;aACD,CAAC,CAAC;QACJ,IAAI,KAAK,CAAC,YAAY,CAAC,MAAM;YAC5B,KAAK,CAAC,IAAI,CAAC;gBACV,GAAG,EAAE,UAAU;gBACf,KAAK,EAAE,UAAU;gBACjB,QAAQ,EAAE,CACT,0CACE,KAAK,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CACjC,oBAAC,iBAAiB,IAAC,GAAG,EAAE,IAAI,CAAC,EAAE;oBAC9B,oBAAC,aAAa,IAAC,EAAE,EAAE,IAAI,CAAC,EAAE,GAAI,CACX,CACpB,CAAC,CACA,CACH;aACD,CAAC,CAAC;QACJ,IAAI,KAAK,CAAC,YAAY,CAAC,MAAM;YAC5B,KAAK,CAAC,IAAI,CAAC;gBACV,GAAG,EAAE,WAAW;gBAChB,KAAK,EAAE,WAAW;gBAClB,QAAQ,EAAE,CACT,0CACE,KAAK,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CACjC,oBAAC,iBAAiB,IAAC,GAAG,EAAE,IAAI,CAAC,EAAE;oBAC9B,oBAAC,aAAa,IAAC,EAAE,EAAE,IAAI,CAAC,EAAE,GAAI,CACX,CACpB,CAAC,CACA,CACH;aACD,CAAC,CAAC;QACJ,IAAI,KAAK,CAAC,YAAY,CAAC,MAAM;YAC5B,KAAK,CAAC,IAAI,CAAC;gBACV,GAAG,EAAE,UAAU;gBACf,KAAK,EAAE,UAAU;gBACjB,QAAQ,EAAE,CACT,0CACE,KAAK,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CACjC,oBAAC,iBAAiB,IAAC,GAAG,EAAE,IAAI,CAAC,EAAE;oBAC9B,oBAAC,aAAa,IAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,OAAO,SAAG,CACnB,CACpB,CAAC,CACA,CACH;aACD,CAAC,CAAC;QAEJ,OAAO,CACN,oBAAC,eAAe,CAAC,QAAQ,IAAC,KAAK,EAAE,IAAI;YACpC,6BAAK,SAAS,EAAC,sBAAsB;gBACpC,oBAAC,QAAQ,IAAC,OAAO,EAAE,IAAI,CAAC,OAAO;oBAC9B,oBAAC,QAAQ,IACR,SAAS,EAAC,sBAAsB,EAChC,QAAQ,EAAE,KAAK,EACf,gBAAgB,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,UAAU,CAAC,EACvE,UAAU,EAAE,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,oBAAC,kBAAkB,IAAC,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAI,EAC/E,KAAK,EAAE,KAAK,GACX;oBACD,CAAC,KAAK,CAAC,MAAM,IAAI,oBAAC,KAAK,OAAG,CACjB,CACN,CACoB,CAC3B,CAAC;IACH,CAAC,CAAC,CAAC;AACJ,CAAC,CAAC;AAEF,eAAe,kBAAkB,CAAC"}
|
@@ -0,0 +1,21 @@
|
|
1
|
+
:global {
|
2
|
+
.active-tab-task-list {
|
3
|
+
.active-task-collapse {
|
4
|
+
background: #fff;
|
5
|
+
.ant-collapse-item {
|
6
|
+
border-bottom: none;
|
7
|
+
.ant-collapse-header {
|
8
|
+
font-size: 20px;
|
9
|
+
color: #000;
|
10
|
+
align-items: center;
|
11
|
+
}
|
12
|
+
.ant-collapse-arrow {
|
13
|
+
font-size: 20px;
|
14
|
+
}
|
15
|
+
.document-name {
|
16
|
+
color: #797979;
|
17
|
+
}
|
18
|
+
}
|
19
|
+
}
|
20
|
+
}
|
21
|
+
}
|
@@ -0,0 +1,15 @@
|
|
1
|
+
import { ITask } from "@voplus/morpho-document-core";
|
2
|
+
import { Dayjs } from "dayjs";
|
3
|
+
export declare class State {
|
4
|
+
constructor();
|
5
|
+
total: number;
|
6
|
+
/** Due, Today, Tomorrow, This Week, Upcoming */
|
7
|
+
dueList: ITask[];
|
8
|
+
todayList: ITask[];
|
9
|
+
tomorrowList: ITask[];
|
10
|
+
thisWeekList: ITask[];
|
11
|
+
upcomingList: ITask[];
|
12
|
+
update(list: ITask[], type?: "new" | "del"): void;
|
13
|
+
/** 检查特定日期是否在本周内 */
|
14
|
+
isDateInThisWeek(dateToCheck: Dayjs): boolean;
|
15
|
+
}
|
@@ -0,0 +1,128 @@
|
|
1
|
+
import { __decorate } from "tslib";
|
2
|
+
import { makeObservable, observable, action } from "mobx";
|
3
|
+
import dayjs from "dayjs";
|
4
|
+
export class State {
|
5
|
+
constructor() {
|
6
|
+
Object.defineProperty(this, "total", {
|
7
|
+
enumerable: true,
|
8
|
+
configurable: true,
|
9
|
+
writable: true,
|
10
|
+
value: 0
|
11
|
+
});
|
12
|
+
/** Due, Today, Tomorrow, This Week, Upcoming */
|
13
|
+
Object.defineProperty(this, "dueList", {
|
14
|
+
enumerable: true,
|
15
|
+
configurable: true,
|
16
|
+
writable: true,
|
17
|
+
value: []
|
18
|
+
});
|
19
|
+
Object.defineProperty(this, "todayList", {
|
20
|
+
enumerable: true,
|
21
|
+
configurable: true,
|
22
|
+
writable: true,
|
23
|
+
value: []
|
24
|
+
});
|
25
|
+
Object.defineProperty(this, "tomorrowList", {
|
26
|
+
enumerable: true,
|
27
|
+
configurable: true,
|
28
|
+
writable: true,
|
29
|
+
value: []
|
30
|
+
});
|
31
|
+
Object.defineProperty(this, "thisWeekList", {
|
32
|
+
enumerable: true,
|
33
|
+
configurable: true,
|
34
|
+
writable: true,
|
35
|
+
value: []
|
36
|
+
});
|
37
|
+
Object.defineProperty(this, "upcomingList", {
|
38
|
+
enumerable: true,
|
39
|
+
configurable: true,
|
40
|
+
writable: true,
|
41
|
+
value: []
|
42
|
+
});
|
43
|
+
makeObservable(this);
|
44
|
+
}
|
45
|
+
update(list, type) {
|
46
|
+
list.map((i) => {
|
47
|
+
if (i.dueDate) {
|
48
|
+
const dueDate = dayjs(i.dueDate);
|
49
|
+
// 获取当前日期
|
50
|
+
const today = dayjs();
|
51
|
+
/** 获取明天的日期 */
|
52
|
+
const tomorrow = today.add(1, "day");
|
53
|
+
if (dueDate.isSame(today, "day")) {
|
54
|
+
if (type === "new")
|
55
|
+
this.todayList.push(i);
|
56
|
+
else
|
57
|
+
this.todayList = this.todayList.filter((item) => item.id !== i.id);
|
58
|
+
}
|
59
|
+
else if (dueDate.isSame(tomorrow, "day")) {
|
60
|
+
if (type === "new")
|
61
|
+
this.tomorrowList.push(i);
|
62
|
+
else
|
63
|
+
this.tomorrowList = this.tomorrowList.filter((item) => item.id !== i.id);
|
64
|
+
}
|
65
|
+
else if (dueDate.isBefore(today)) {
|
66
|
+
if (type === "new")
|
67
|
+
this.dueList.push(i);
|
68
|
+
else
|
69
|
+
this.dueList = this.dueList.filter((item) => item.id !== i.id);
|
70
|
+
}
|
71
|
+
else if (this.isDateInThisWeek(dueDate)) {
|
72
|
+
if (type === "new")
|
73
|
+
this.thisWeekList.push(i);
|
74
|
+
else
|
75
|
+
this.thisWeekList = this.thisWeekList.filter((item) => item.id !== i.id);
|
76
|
+
}
|
77
|
+
else {
|
78
|
+
if (type === "new")
|
79
|
+
this.upcomingList.push(i);
|
80
|
+
else
|
81
|
+
this.upcomingList = this.upcomingList.filter((item) => item.id !== i.id);
|
82
|
+
}
|
83
|
+
}
|
84
|
+
else {
|
85
|
+
if (type === "new")
|
86
|
+
this.upcomingList.push(i);
|
87
|
+
else
|
88
|
+
this.upcomingList = this.upcomingList.filter((item) => item.id !== i.id);
|
89
|
+
}
|
90
|
+
});
|
91
|
+
}
|
92
|
+
/** 检查特定日期是否在本周内 */
|
93
|
+
isDateInThisWeek(dateToCheck) {
|
94
|
+
// 获取当前日期
|
95
|
+
const now = dayjs();
|
96
|
+
// 本周区间
|
97
|
+
const startOfWeek = now.startOf("week");
|
98
|
+
const endOfWeek = now.endOf("week");
|
99
|
+
return (dateToCheck.isSame(startOfWeek, "day") ||
|
100
|
+
dateToCheck.isSame(endOfWeek, "day") ||
|
101
|
+
(dateToCheck.isAfter(startOfWeek) && dateToCheck.isBefore(endOfWeek)));
|
102
|
+
}
|
103
|
+
}
|
104
|
+
__decorate([
|
105
|
+
observable
|
106
|
+
], State.prototype, "total", void 0);
|
107
|
+
__decorate([
|
108
|
+
observable
|
109
|
+
], State.prototype, "dueList", void 0);
|
110
|
+
__decorate([
|
111
|
+
observable
|
112
|
+
], State.prototype, "todayList", void 0);
|
113
|
+
__decorate([
|
114
|
+
observable
|
115
|
+
], State.prototype, "tomorrowList", void 0);
|
116
|
+
__decorate([
|
117
|
+
observable
|
118
|
+
], State.prototype, "thisWeekList", void 0);
|
119
|
+
__decorate([
|
120
|
+
observable
|
121
|
+
], State.prototype, "upcomingList", void 0);
|
122
|
+
__decorate([
|
123
|
+
action
|
124
|
+
], State.prototype, "update", null);
|
125
|
+
__decorate([
|
126
|
+
action
|
127
|
+
], State.prototype, "isDateInThisWeek", null);
|
128
|
+
//# sourceMappingURL=state.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"state.js","sourceRoot":"","sources":["../../../../../src/modules/tasks/components/TaskCheckActiveTab/state.ts"],"names":[],"mappings":"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"}
|
@@ -0,0 +1,60 @@
|
|
1
|
+
import React, { useState } from "react";
|
2
|
+
import { observe } from "@voplus/morpho-ui";
|
3
|
+
import { useOnNewDocument, useOnDeleteDocument } from "@voplus/morpho-document-core";
|
4
|
+
import TaskCheckItem from "../TaskCheckItem";
|
5
|
+
import DocumentItemFrame from "@voplus/morpho-document/es/controls/DocumentItemFrame";
|
6
|
+
import { useRenderOnChange } from "@voplus/morpho-ui";
|
7
|
+
import ListView from "@voplus/morpho-ui/es/components/layout/ListView/ListView2";
|
8
|
+
import { runInAction } from "mobx";
|
9
|
+
import { State } from "./state";
|
10
|
+
import { ListDataContext, useCreateListDataState } from "@voplus/morpho-ui/es/data";
|
11
|
+
import { useTaskListEffect } from "@voplus/morpho-document-core";
|
12
|
+
const TaskCheckDoneTab = (props) => {
|
13
|
+
const { parentId, taskCheckState } = props;
|
14
|
+
const [state] = useState(new State());
|
15
|
+
const list = useCreateListDataState({
|
16
|
+
filterDefaults: {
|
17
|
+
includes: "tags",
|
18
|
+
filters: [
|
19
|
+
{ c: "ParentNodeId", o: "=", l: "And", v1: parentId },
|
20
|
+
{ c: "TaskStatus", o: "contains", l: "And", v1: "['Done']" },
|
21
|
+
/** 必須提供parent node id或assignee filter */
|
22
|
+
// {
|
23
|
+
// c: "Members",
|
24
|
+
// o: "contains",
|
25
|
+
// v1: JSON.stringify(Array.from(this.members.keys())),
|
26
|
+
// l: "And",
|
27
|
+
// },
|
28
|
+
],
|
29
|
+
},
|
30
|
+
}, [parentId]);
|
31
|
+
/** 如果 list.filters.options变更了就重渲染,使下一行的useTaskListEffect 可以接收新参数*/
|
32
|
+
useRenderOnChange(() => list.filters.options);
|
33
|
+
/** 把ListDataState传给useTaskListEffect,使之可以自動更新loading, hasmore. */
|
34
|
+
useTaskListEffect(list, (result, total) => {
|
35
|
+
list.union(result);
|
36
|
+
runInAction(() => {
|
37
|
+
state.total = total;
|
38
|
+
taskCheckState.updateDoneTotals(total);
|
39
|
+
});
|
40
|
+
}, { ...list.filters.options, Total: true });
|
41
|
+
/** 新增task */
|
42
|
+
useOnNewDocument((s, doc) => {
|
43
|
+
if (doc.parentId === props.parentId && doc.type === "Task") {
|
44
|
+
state.total += 1;
|
45
|
+
taskCheckState.updateDoneTotals(state.total);
|
46
|
+
}
|
47
|
+
});
|
48
|
+
/** 删除task */
|
49
|
+
useOnDeleteDocument((s, doc) => {
|
50
|
+
if (doc.parentId === props.parentId && doc.type === "Task") {
|
51
|
+
state.total -= 1;
|
52
|
+
taskCheckState.updateDoneTotals(state.total);
|
53
|
+
}
|
54
|
+
});
|
55
|
+
return observe(() => (React.createElement(ListDataContext.Provider, { value: list },
|
56
|
+
React.createElement(ListView, { renderId: props.parentId, asideable: false, headerProps: { visible: false }, renderItem: ({ item }) => (React.createElement(DocumentItemFrame, { key: item.id },
|
57
|
+
React.createElement(TaskCheckItem, { id: item.id, dueDate: true }))) }))));
|
58
|
+
};
|
59
|
+
export default TaskCheckDoneTab;
|
60
|
+
//# sourceMappingURL=index.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/modules/tasks/components/TaskCheckDoneTab/index.tsx"],"names":[],"mappings":"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"}
|
@@ -0,0 +1,17 @@
|
|
1
|
+
import { __decorate } from "tslib";
|
2
|
+
import { makeObservable, observable } from "mobx";
|
3
|
+
export class State {
|
4
|
+
constructor() {
|
5
|
+
Object.defineProperty(this, "total", {
|
6
|
+
enumerable: true,
|
7
|
+
configurable: true,
|
8
|
+
writable: true,
|
9
|
+
value: 0
|
10
|
+
});
|
11
|
+
makeObservable(this);
|
12
|
+
}
|
13
|
+
}
|
14
|
+
__decorate([
|
15
|
+
observable
|
16
|
+
], State.prototype, "total", void 0);
|
17
|
+
//# sourceMappingURL=state.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"state.js","sourceRoot":"","sources":["../../../../../src/modules/tasks/components/TaskCheckDoneTab/state.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,cAAc,EAAE,UAAU,EAAU,MAAM,MAAM,CAAC;AAE1D,MAAM,OAAO,KAAK;IACjB;QAImB;;;;mBAAgB,CAAC;WAAC;QAHpC,cAAc,CAAC,IAAI,CAAC,CAAC;IACtB,CAAC;CAGD;AADmB;IAAlB,UAAU;oCAA0B"}
|
@@ -0,0 +1,36 @@
|
|
1
|
+
import React, { useState } from "react";
|
2
|
+
import { observe } from "@voplus/morpho-ui";
|
3
|
+
import { Checkbox, message } from "antd";
|
4
|
+
import classnames from "classnames";
|
5
|
+
import { Open } from "@voplus/morpho-document/es/controls/ToolBar/buttons";
|
6
|
+
import ToolBar from "@voplus/morpho-document/es/controls/ToolBar/ToolBar2";
|
7
|
+
import FlagIcon from "@voplus/morpho-document/es/controls/data-icons/FlagIcon";
|
8
|
+
import { useTask, useTaskStore, useMetaStore } from "@voplus/morpho-document-core";
|
9
|
+
import dayjs from "dayjs";
|
10
|
+
import { State } from "./state";
|
11
|
+
import DocumentHeader from "@voplus/morpho-document/es/components/DocumentHeader";
|
12
|
+
import "./index.less";
|
13
|
+
const TaskCheckItem = (props) => {
|
14
|
+
const { id, dueDate } = props;
|
15
|
+
const [state] = useState(new State());
|
16
|
+
const meta = useMetaStore();
|
17
|
+
const taskStore = useTaskStore();
|
18
|
+
const task = useTask(id);
|
19
|
+
state.update(task);
|
20
|
+
return observe(() => (React.createElement(DocumentHeader, { id: id, flagVisible: false, tagsVisible: false, quickDataBarVisible: false, className: "task-check-item", clickNameEffect: "default", onMouse: (over) => (state.isHover = over), pre: React.createElement("div", null,
|
21
|
+
React.createElement(Checkbox, { checked: state.checked, onChange: async (e) => {
|
22
|
+
state.checked = e.target.checked;
|
23
|
+
await taskStore.edit(task.id, {
|
24
|
+
data: { TaskStatus: e.target.checked === true ? "Done" : "Progress" },
|
25
|
+
error: (error) => message.error(error.message),
|
26
|
+
});
|
27
|
+
state.checked = task.taskStatus === "Done";
|
28
|
+
} }),
|
29
|
+
React.createElement(FlagIcon, { id: task.id, flag: task.flag, editable: !task.readonly })), tools: React.createElement(React.Fragment, null,
|
30
|
+
dueDate && task.dueDate && (React.createElement("span", { className: classnames("task-dueDate", { hide: state.isHover }) }, dayjs(task.dueDate).format("DD MMM YYYY"))),
|
31
|
+
React.createElement("div", { className: classnames("hover-operate-icon", { show: state.isHover }) },
|
32
|
+
React.createElement(ToolBar, { id: id, moreProps: { buttonProps: { size: "middle" } } },
|
33
|
+
React.createElement(Open, { size: "middle", url: meta.getRoute(task) })))) })));
|
34
|
+
};
|
35
|
+
export default TaskCheckItem;
|
36
|
+
//# sourceMappingURL=index.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/modules/tasks/components/TaskCheckItem/index.tsx"],"names":[],"mappings":"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"}
|
@@ -0,0 +1,28 @@
|
|
1
|
+
:global {
|
2
|
+
.task-check-item {
|
3
|
+
position: relative;
|
4
|
+
cursor: pointer;
|
5
|
+
align-items: center;
|
6
|
+
background-color: transparent;
|
7
|
+
padding: 10px 20px 10px 0;
|
8
|
+
.task-dueDate {
|
9
|
+
opacity: 1;
|
10
|
+
// transition: opacity 0.3s;
|
11
|
+
flex-shrink: 0;
|
12
|
+
&.hide {
|
13
|
+
opacity: 0;
|
14
|
+
}
|
15
|
+
}
|
16
|
+
.hover-operate-icon {
|
17
|
+
display: none;
|
18
|
+
position: absolute;
|
19
|
+
right: 20px;
|
20
|
+
.ant-btn:first-child {
|
21
|
+
margin-left: 0;
|
22
|
+
}
|
23
|
+
&.show {
|
24
|
+
display: block;
|
25
|
+
}
|
26
|
+
}
|
27
|
+
}
|
28
|
+
}
|
@@ -0,0 +1,43 @@
|
|
1
|
+
import { __decorate } from "tslib";
|
2
|
+
import { makeObservable, observable, action } from "mobx";
|
3
|
+
export class State {
|
4
|
+
constructor() {
|
5
|
+
/** */
|
6
|
+
Object.defineProperty(this, "checked", {
|
7
|
+
enumerable: true,
|
8
|
+
configurable: true,
|
9
|
+
writable: true,
|
10
|
+
value: false
|
11
|
+
});
|
12
|
+
Object.defineProperty(this, "isHover", {
|
13
|
+
enumerable: true,
|
14
|
+
configurable: true,
|
15
|
+
writable: true,
|
16
|
+
value: false
|
17
|
+
});
|
18
|
+
Object.defineProperty(this, "task", {
|
19
|
+
enumerable: true,
|
20
|
+
configurable: true,
|
21
|
+
writable: true,
|
22
|
+
value: void 0
|
23
|
+
});
|
24
|
+
makeObservable(this);
|
25
|
+
}
|
26
|
+
update(task) {
|
27
|
+
this.task = task;
|
28
|
+
this.checked = task.taskStatus === "Done";
|
29
|
+
}
|
30
|
+
}
|
31
|
+
__decorate([
|
32
|
+
observable
|
33
|
+
], State.prototype, "checked", void 0);
|
34
|
+
__decorate([
|
35
|
+
observable
|
36
|
+
], State.prototype, "isHover", void 0);
|
37
|
+
__decorate([
|
38
|
+
observable
|
39
|
+
], State.prototype, "task", void 0);
|
40
|
+
__decorate([
|
41
|
+
action
|
42
|
+
], State.prototype, "update", null);
|
43
|
+
//# sourceMappingURL=state.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"state.js","sourceRoot":"","sources":["../../../../../src/modules/tasks/components/TaskCheckItem/state.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,MAAM,CAAC;AAG1D,MAAM,OAAO,KAAK;IACjB;QAIA,OAAO;QACY;;;;mBAAU,KAAK;WAAC;QAChB;;;;mBAAU,KAAK;WAAC;QAChB;;;;;WAAY;QAN9B,cAAc,CAAC,IAAI,CAAC,CAAC;IACtB,CAAC;IAOc,MAAM,CAAC,IAAW;QAChC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,UAAU,KAAK,MAAM,CAAC;IAC3C,CAAC;CACD;AARmB;IAAlB,UAAU;sCAAwB;AAChB;IAAlB,UAAU;sCAAwB;AAChB;IAAlB,UAAU;mCAAoB;AAEhB;IAAd,MAAM;mCAGN"}
|
@@ -0,0 +1,72 @@
|
|
1
|
+
import React, { useState, useMemo } from "react";
|
2
|
+
import { observe } from "@voplus/morpho-ui";
|
3
|
+
import TaskCheckActiveTab from "../TaskCheckActiveTab";
|
4
|
+
import TaskCheckDoneTab from "../TaskCheckDoneTab";
|
5
|
+
import { Button, Tabs, Badge } from "antd";
|
6
|
+
import { Scrollbars } from "react-custom-scrollbars-2";
|
7
|
+
import { FontAwesomeIcon as FAIcon } from "@fortawesome/react-fontawesome";
|
8
|
+
import { faEllipsis } from "@fortawesome/pro-solid-svg-icons";
|
9
|
+
import TaskCheckNewForm from "../TaskCheckNewForm";
|
10
|
+
import { State } from "./state";
|
11
|
+
import classnames from "classnames";
|
12
|
+
import { useTaskListEffect } from "@voplus/morpho-document-core";
|
13
|
+
import { ViewContext, ViewContextData, } from "@voplus/morpho-document-core/es/data/context/ViewContext";
|
14
|
+
import "./index.less";
|
15
|
+
const TaskCheckList = (props) => {
|
16
|
+
const { id } = props;
|
17
|
+
const [state] = useState(new State());
|
18
|
+
const view = useMemo(() => new ViewContextData("PropertiesView"), []);
|
19
|
+
useTaskListEffect(null, (result, total) => state.updateActiveTotals(total), {
|
20
|
+
Total: true,
|
21
|
+
List: false,
|
22
|
+
Filters: [
|
23
|
+
{ c: "ParentNodeId", o: "=", l: "And", v1: id },
|
24
|
+
{ c: "TaskStatus", o: "!=", l: "And", v1: "Done" },
|
25
|
+
],
|
26
|
+
});
|
27
|
+
useTaskListEffect(null, (result, total) => state.updateDoneTotals(total), {
|
28
|
+
Total: true,
|
29
|
+
List: false,
|
30
|
+
Filters: [
|
31
|
+
{ c: "ParentNodeId", o: "=", l: "And", v1: id },
|
32
|
+
{ c: "TaskStatus", o: "contains", l: "And", v1: "['Done']" },
|
33
|
+
],
|
34
|
+
});
|
35
|
+
return observe(() => (React.createElement(ViewContext.Provider, { value: view },
|
36
|
+
React.createElement("div", { className: "task-check-list" },
|
37
|
+
React.createElement("div", { className: "task-check-header" },
|
38
|
+
React.createElement("h3", { className: "text-lg font-medium leading-6 text-gray-900" }, "Tasks"),
|
39
|
+
React.createElement("div", null,
|
40
|
+
React.createElement(Button, { type: "primary", onClick: onMore },
|
41
|
+
React.createElement(FAIcon, { icon: faEllipsis })))),
|
42
|
+
React.createElement(Tabs, { className: classnames("task-check-tabs", { "show-tabbar": state.showTabbar }), tabBarExtraContent: React.createElement(Button, { onClick: onCreate }, "Create"), activeKey: state.activeKey, onChange: (activeKey) => (state.activeKey = activeKey), items: [
|
43
|
+
{
|
44
|
+
key: "Active",
|
45
|
+
label: (React.createElement(React.Fragment, null,
|
46
|
+
"Active",
|
47
|
+
React.createElement(Badge, { overflowCount: 9999, count: state.activeTotals }))),
|
48
|
+
children: (React.createElement(Scrollbars, { autoHide: true },
|
49
|
+
React.createElement(TaskCheckActiveTab, { parentId: props.id, taskCheckState: state }))),
|
50
|
+
},
|
51
|
+
{
|
52
|
+
key: "Done",
|
53
|
+
label: (React.createElement(React.Fragment, null,
|
54
|
+
"Done",
|
55
|
+
React.createElement(Badge, { overflowCount: 9999, count: state.doneTotals }))),
|
56
|
+
children: (React.createElement(Scrollbars, { autoHide: true },
|
57
|
+
React.createElement(TaskCheckDoneTab, { parentId: props.id, taskCheckState: state }))),
|
58
|
+
},
|
59
|
+
] }),
|
60
|
+
state.addAble && (React.createElement(TaskCheckNewForm, { parentId: props.id, onCancel: () => (state.addAble = false), onSave: () => (state.addAble = false) }))))));
|
61
|
+
function onCreate() {
|
62
|
+
state.addAble = true;
|
63
|
+
state.activeKey = "Active";
|
64
|
+
}
|
65
|
+
function onMore() {
|
66
|
+
state.showTabbar = !state.showTabbar;
|
67
|
+
if (!state.showTabbar)
|
68
|
+
state.activeKey = "Active";
|
69
|
+
}
|
70
|
+
};
|
71
|
+
export default TaskCheckList;
|
72
|
+
//# sourceMappingURL=index.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/modules/tasks/components/TaskCheckList/index.tsx"],"names":[],"mappings":"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"}
|
@@ -0,0 +1,43 @@
|
|
1
|
+
:global {
|
2
|
+
.task-check-list {
|
3
|
+
height: 100%;
|
4
|
+
display: flex;
|
5
|
+
flex-direction: column;
|
6
|
+
.task-check-header {
|
7
|
+
display: flex;
|
8
|
+
align-items: center;
|
9
|
+
justify-content: space-between;
|
10
|
+
padding: 10px 20px 10px 20px;
|
11
|
+
border-bottom: 1px solid #e6e6e6;
|
12
|
+
}
|
13
|
+
.task-check-tabs {
|
14
|
+
flex: 1;
|
15
|
+
|
16
|
+
&.show-tabbar {
|
17
|
+
.ant-tabs-nav-wrap {
|
18
|
+
display: flex;
|
19
|
+
}
|
20
|
+
.ant-tabs-extra-content {
|
21
|
+
display: block;
|
22
|
+
}
|
23
|
+
}
|
24
|
+
.ant-tabs-nav-wrap {
|
25
|
+
display: none;
|
26
|
+
}
|
27
|
+
.ant-tabs-extra-content {
|
28
|
+
display: none;
|
29
|
+
}
|
30
|
+
.ant-tabs-tab-btn {
|
31
|
+
.ant-badge {
|
32
|
+
margin-left: 5px;
|
33
|
+
}
|
34
|
+
}
|
35
|
+
.ant-tabs-extra-content {
|
36
|
+
padding-right: 20px;
|
37
|
+
}
|
38
|
+
}
|
39
|
+
.ant-tabs-nav-wrap {
|
40
|
+
padding-left: 20px;
|
41
|
+
}
|
42
|
+
}
|
43
|
+
}
|
@@ -0,0 +1,65 @@
|
|
1
|
+
import { __decorate } from "tslib";
|
2
|
+
import { makeObservable, observable, action } from "mobx";
|
3
|
+
export class State {
|
4
|
+
constructor() {
|
5
|
+
Object.defineProperty(this, "addAble", {
|
6
|
+
enumerable: true,
|
7
|
+
configurable: true,
|
8
|
+
writable: true,
|
9
|
+
value: false
|
10
|
+
});
|
11
|
+
Object.defineProperty(this, "showTabbar", {
|
12
|
+
enumerable: true,
|
13
|
+
configurable: true,
|
14
|
+
writable: true,
|
15
|
+
value: false
|
16
|
+
});
|
17
|
+
Object.defineProperty(this, "activeKey", {
|
18
|
+
enumerable: true,
|
19
|
+
configurable: true,
|
20
|
+
writable: true,
|
21
|
+
value: "Active"
|
22
|
+
});
|
23
|
+
Object.defineProperty(this, "activeTotals", {
|
24
|
+
enumerable: true,
|
25
|
+
configurable: true,
|
26
|
+
writable: true,
|
27
|
+
value: void 0
|
28
|
+
});
|
29
|
+
Object.defineProperty(this, "doneTotals", {
|
30
|
+
enumerable: true,
|
31
|
+
configurable: true,
|
32
|
+
writable: true,
|
33
|
+
value: void 0
|
34
|
+
});
|
35
|
+
makeObservable(this);
|
36
|
+
}
|
37
|
+
updateActiveTotals(total) {
|
38
|
+
this.activeTotals = total;
|
39
|
+
}
|
40
|
+
updateDoneTotals(total) {
|
41
|
+
this.doneTotals = total;
|
42
|
+
}
|
43
|
+
}
|
44
|
+
__decorate([
|
45
|
+
observable
|
46
|
+
], State.prototype, "addAble", void 0);
|
47
|
+
__decorate([
|
48
|
+
observable
|
49
|
+
], State.prototype, "showTabbar", void 0);
|
50
|
+
__decorate([
|
51
|
+
observable
|
52
|
+
], State.prototype, "activeKey", void 0);
|
53
|
+
__decorate([
|
54
|
+
observable
|
55
|
+
], State.prototype, "activeTotals", void 0);
|
56
|
+
__decorate([
|
57
|
+
observable
|
58
|
+
], State.prototype, "doneTotals", void 0);
|
59
|
+
__decorate([
|
60
|
+
action
|
61
|
+
], State.prototype, "updateActiveTotals", null);
|
62
|
+
__decorate([
|
63
|
+
action
|
64
|
+
], State.prototype, "updateDoneTotals", null);
|
65
|
+
//# sourceMappingURL=state.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"state.js","sourceRoot":"","sources":["../../../../../src/modules/tasks/components/TaskCheckList/state.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,MAAM,CAAC;AAE1D,MAAM,OAAO,KAAK;IACjB;QAImB;;;;mBAAU,KAAK;WAAC;QAChB;;;;mBAAa,KAAK;WAAC;QACnB;;;;mBAAY,QAAQ;WAAC;QACrB;;;;;WAAsB;QACtB;;;;;WAAoB;QAPtC,cAAc,CAAC,IAAI,CAAC,CAAC;IACtB,CAAC;IAQc,kBAAkB,CAAC,KAAa;QAC9C,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;IAC3B,CAAC;IAEc,gBAAgB,CAAC,KAAa;QAC5C,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;IACzB,CAAC;CACD;AAbmB;IAAlB,UAAU;sCAAwB;AAChB;IAAlB,UAAU;yCAA2B;AACnB;IAAlB,UAAU;wCAA6B;AACrB;IAAlB,UAAU;2CAA8B;AACtB;IAAlB,UAAU;yCAA4B;AAExB;IAAd,MAAM;+CAEN;AAEc;IAAd,MAAM;6CAEN"}
|
@@ -0,0 +1,12 @@
|
|
1
|
+
import React from "react";
|
2
|
+
declare const TaskCheckListCard: {
|
3
|
+
(props: {
|
4
|
+
style?: React.CSSProperties;
|
5
|
+
id: string;
|
6
|
+
}): React.JSX.Element;
|
7
|
+
defaultProps: {
|
8
|
+
openNewFormMode: string;
|
9
|
+
total: boolean;
|
10
|
+
};
|
11
|
+
};
|
12
|
+
export default TaskCheckListCard;
|
@@ -0,0 +1,14 @@
|
|
1
|
+
import React from "react";
|
2
|
+
import { observe } from "@voplus/morpho-ui";
|
3
|
+
import ListCard from "@voplus/morpho-ui/es/controls/ListCard";
|
4
|
+
import TaskCheckList from "../TaskCheckList";
|
5
|
+
const TaskCheckListCard = (props) => {
|
6
|
+
return observe(() => (React.createElement(ListCard, { style: props.style },
|
7
|
+
React.createElement(TaskCheckList, { id: props.id }))));
|
8
|
+
};
|
9
|
+
TaskCheckListCard.defaultProps = {
|
10
|
+
openNewFormMode: "openDialog",
|
11
|
+
total: true,
|
12
|
+
};
|
13
|
+
export default TaskCheckListCard;
|
14
|
+
//# sourceMappingURL=index.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/modules/tasks/components/TaskCheckListCard/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAC5C,OAAO,QAAQ,MAAM,wCAAwC,CAAC;AAC9D,OAAO,aAAa,MAAM,kBAAkB,CAAC;AAE7C,MAAM,iBAAiB,GAAG,CAAC,KAAkD,EAAE,EAAE;IAChF,OAAO,OAAO,CAAC,GAAG,EAAE,CAAC,CACpB,oBAAC,QAAQ,IAAC,KAAK,EAAE,KAAK,CAAC,KAAK;QAC3B,oBAAC,aAAa,IAAC,EAAE,EAAE,KAAK,CAAC,EAAE,GAAI,CACrB,CACX,CAAC,CAAC;AACJ,CAAC,CAAC;AAEF,iBAAiB,CAAC,YAAY,GAAG;IAChC,eAAe,EAAE,YAAY;IAC7B,KAAK,EAAE,IAAI;CACX,CAAC;AAEF,eAAe,iBAAiB,CAAC"}
|
@@ -0,0 +1,9 @@
|
|
1
|
+
import React from "react";
|
2
|
+
import "./index.less";
|
3
|
+
declare const TaskCheckNewForm: (props: {
|
4
|
+
parentId?: string | undefined;
|
5
|
+
className?: string | undefined;
|
6
|
+
onSave?: ((params?: any) => void) | undefined;
|
7
|
+
onCancel?: (() => void) | undefined;
|
8
|
+
}) => React.JSX.Element;
|
9
|
+
export default TaskCheckNewForm;
|
@@ -0,0 +1,76 @@
|
|
1
|
+
import React, { useState } from "react";
|
2
|
+
import { Col, Spin, Form, Input, Row, message } from "antd";
|
3
|
+
import { State } from "./state";
|
4
|
+
import { observe } from "@voplus/morpho-ui";
|
5
|
+
import PresetDatePicker from "@voplus/morpho-ui/es/controls/PresetDatePicker";
|
6
|
+
import { runInAction } from "mobx";
|
7
|
+
import { useTaskStore } from "@voplus/morpho-document-core";
|
8
|
+
import { faListAlt } from "@fortawesome/pro-light-svg-icons";
|
9
|
+
import { FontAwesomeIcon as FAIcon } from "@fortawesome/react-fontawesome";
|
10
|
+
import classnames from "classnames";
|
11
|
+
import "./index.less";
|
12
|
+
import dayjs from "dayjs";
|
13
|
+
const TaskCheckNewForm = (props) => {
|
14
|
+
const tasks = useTaskStore();
|
15
|
+
const [state] = useState(new State());
|
16
|
+
return observe(() => (React.createElement("div", { className: classnames("new-task-check-form", props.className) },
|
17
|
+
React.createElement(Form, { layout: "vertical" },
|
18
|
+
React.createElement(Spin, { spinning: state.loading },
|
19
|
+
React.createElement(Form.Item, null,
|
20
|
+
React.createElement(Row, { justify: "space-between" },
|
21
|
+
React.createElement(Col, { flex: 1 },
|
22
|
+
React.createElement(Input, { autoFocus: true, value: state.params.Name, className: "task-name-input", placeholder: `Enter a title for this task`, onChange: (e) => runInAction(() => (state.params.Name = e.target.value)), onPressEnter: onSubmit, onKeyDown: onKeyDown })),
|
23
|
+
React.createElement(Col, null,
|
24
|
+
React.createElement("span", { onClick: onShowMore, className: "detailed" },
|
25
|
+
React.createElement(FAIcon, { icon: faListAlt, size: "lg" }))))),
|
26
|
+
state.showMore && (React.createElement(Form.Item, null,
|
27
|
+
React.createElement(Row, { justify: "space-between" },
|
28
|
+
React.createElement(Col, { flex: 1 },
|
29
|
+
React.createElement(PresetDatePicker, { onChange: (preset, date) => {
|
30
|
+
state.params.DueDate = preset
|
31
|
+
? dayjs(preset).format("YYYY-MM-DD")
|
32
|
+
: dayjs(date).format("YYYY-MM-DD");
|
33
|
+
const dateElement = document.querySelector(".ant-picker-input input");
|
34
|
+
const inputlement = document.querySelector(".task-name-input");
|
35
|
+
if (dateElement) {
|
36
|
+
dateElement.blur();
|
37
|
+
}
|
38
|
+
if (inputlement) {
|
39
|
+
inputlement.focus();
|
40
|
+
}
|
41
|
+
}, style: { width: "100%" } })),
|
42
|
+
React.createElement(Col, null,
|
43
|
+
React.createElement("span", { className: "dueDate" }, "Due Dtae"))))))))));
|
44
|
+
function onKeyDown(e) {
|
45
|
+
if (e.keyCode !== 27)
|
46
|
+
return;
|
47
|
+
onCancel();
|
48
|
+
}
|
49
|
+
function onShowMore() {
|
50
|
+
state.showMore = !state.showMore;
|
51
|
+
}
|
52
|
+
async function onSubmit() {
|
53
|
+
var _a;
|
54
|
+
if (!state.params.Name)
|
55
|
+
return message.warning("Title is required");
|
56
|
+
runInAction(() => (state.loading = true));
|
57
|
+
await tasks.create({
|
58
|
+
data: { ...state.params, ParentId: props.parentId },
|
59
|
+
error: "message",
|
60
|
+
});
|
61
|
+
runInAction(() => {
|
62
|
+
state.loading = false;
|
63
|
+
state.params = state.Params;
|
64
|
+
});
|
65
|
+
(_a = props.onSave) === null || _a === void 0 ? void 0 : _a.call(props);
|
66
|
+
return;
|
67
|
+
}
|
68
|
+
// cancel add task
|
69
|
+
function onCancel() {
|
70
|
+
var _a;
|
71
|
+
state.params = state.Params;
|
72
|
+
(_a = props.onCancel) === null || _a === void 0 ? void 0 : _a.call(props);
|
73
|
+
}
|
74
|
+
};
|
75
|
+
export default TaskCheckNewForm;
|
76
|
+
//# sourceMappingURL=index.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/modules/tasks/components/TaskCheckNewForm/index.tsx"],"names":[],"mappings":"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"}
|
@@ -0,0 +1,21 @@
|
|
1
|
+
@import "~@voplus/morpho-theme/styles/index.less";
|
2
|
+
|
3
|
+
:global {
|
4
|
+
.new-task-check-form {
|
5
|
+
padding: 10px 20px 0;
|
6
|
+
.ant-form-item {
|
7
|
+
margin-bottom: 10px;
|
8
|
+
.detailed {
|
9
|
+
font-size: 20px;
|
10
|
+
margin-left: 10px;
|
11
|
+
cursor: pointer;
|
12
|
+
}
|
13
|
+
.dueDate{
|
14
|
+
// font-size: 20px;
|
15
|
+
line-height: 30px;
|
16
|
+
color: @heading-subtitle-color;
|
17
|
+
margin-left: 10px;
|
18
|
+
}
|
19
|
+
}
|
20
|
+
}
|
21
|
+
}
|
@@ -0,0 +1,15 @@
|
|
1
|
+
export declare class State {
|
2
|
+
constructor();
|
3
|
+
Params: {
|
4
|
+
Name: string;
|
5
|
+
DueDate: string;
|
6
|
+
InheritMembers: boolean;
|
7
|
+
};
|
8
|
+
params: {
|
9
|
+
Name: string;
|
10
|
+
DueDate: string;
|
11
|
+
InheritMembers: boolean;
|
12
|
+
};
|
13
|
+
showMore: boolean;
|
14
|
+
loading: boolean;
|
15
|
+
}
|
@@ -0,0 +1,45 @@
|
|
1
|
+
import { __decorate } from "tslib";
|
2
|
+
import { makeObservable, observable } from "mobx";
|
3
|
+
export class State {
|
4
|
+
constructor() {
|
5
|
+
Object.defineProperty(this, "Params", {
|
6
|
+
enumerable: true,
|
7
|
+
configurable: true,
|
8
|
+
writable: true,
|
9
|
+
value: {
|
10
|
+
Name: "",
|
11
|
+
DueDate: "",
|
12
|
+
InheritMembers: false,
|
13
|
+
}
|
14
|
+
});
|
15
|
+
Object.defineProperty(this, "params", {
|
16
|
+
enumerable: true,
|
17
|
+
configurable: true,
|
18
|
+
writable: true,
|
19
|
+
value: this.Params
|
20
|
+
});
|
21
|
+
Object.defineProperty(this, "showMore", {
|
22
|
+
enumerable: true,
|
23
|
+
configurable: true,
|
24
|
+
writable: true,
|
25
|
+
value: false
|
26
|
+
});
|
27
|
+
Object.defineProperty(this, "loading", {
|
28
|
+
enumerable: true,
|
29
|
+
configurable: true,
|
30
|
+
writable: true,
|
31
|
+
value: false
|
32
|
+
});
|
33
|
+
makeObservable(this);
|
34
|
+
}
|
35
|
+
}
|
36
|
+
__decorate([
|
37
|
+
observable
|
38
|
+
], State.prototype, "params", void 0);
|
39
|
+
__decorate([
|
40
|
+
observable
|
41
|
+
], State.prototype, "showMore", void 0);
|
42
|
+
__decorate([
|
43
|
+
observable
|
44
|
+
], State.prototype, "loading", void 0);
|
45
|
+
//# sourceMappingURL=state.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"state.js","sourceRoot":"","sources":["../../../../../src/modules/tasks/components/TaskCheckNewForm/state.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,MAAM,CAAC;AAElD,MAAM,OAAO,KAAK;IACjB;QAGO;;;;mBAAS;gBACf,IAAI,EAAE,EAAE;gBACR,OAAO,EAAE,EAAE;gBACX,cAAc,EAAE,KAAK;aACrB;WAAC;QACiB;;;;mBAAS,IAAI,CAAC,MAAM;WAAC;QACrB;;;;mBAAW,KAAK;WAAC;QACjB;;;;mBAAU,KAAK;WAAC;QATlC,cAAc,CAAC,IAAI,CAAC,CAAC;IACtB,CAAC;CASD;AAHmB;IAAlB,UAAU;qCAA6B;AACrB;IAAlB,UAAU;uCAAyB;AACjB;IAAlB,UAAU;sCAAwB"}
|
@@ -2,35 +2,38 @@ import React from "react";
|
|
2
2
|
import { Button } from "antd";
|
3
3
|
import { useWorkspace, useWorkspaceStore } from "../../../../data/workspace";
|
4
4
|
import { faEllipsisVertical, faUserLock, faUserUnlock } from "@fortawesome/pro-light-svg-icons";
|
5
|
-
import { observe } from "@voplus/morpho-ui";
|
5
|
+
import { observe, useAsideContentContext } from "@voplus/morpho-ui";
|
6
|
+
import { useApplicationContext } from "@voplus/morpho-data";
|
6
7
|
import { FontAwesomeIcon as FAIcon } from "@fortawesome/react-fontawesome";
|
7
8
|
import { Paste, Access, Delete } from "@voplus/morpho-org/es/controls/NodeMenu/items";
|
8
9
|
import NodeMenu from "@voplus/morpho-org/es/controls/NodeMenu";
|
9
10
|
const WorkspaceMenu = (props) => {
|
10
11
|
/** 加class name 为了方便做integration tests */
|
11
12
|
const classId = "workSpace-menu";
|
13
|
+
const asideContext = useAsideContentContext();
|
14
|
+
const { user } = useApplicationContext();
|
12
15
|
const store = useWorkspaceStore();
|
13
|
-
const workspace = useWorkspace(props.id
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
!((_c = workspace.actions) === null || _c === void 0 ? void 0 : _c.canDelete) && workspace.status === "Disabled" && (React.createElement(Button, { type: "link", onClick: () => onChangeStatus("Enable"), className: classId + "-enable" },
|
25
|
-
React.createElement(FAIcon, { icon: faUserUnlock }),
|
26
|
-
React.createElement("span", null, "Enable"))),
|
27
|
-
React.createElement(Access, null),
|
28
|
-
React.createElement(Paste, { types: ["Document", "WorkTypeNode"] })) }));
|
29
|
-
});
|
16
|
+
const workspace = useWorkspace(props.id);
|
17
|
+
return observe(() => (React.createElement(NodeMenu, { id: props.id, icon: React.createElement(FAIcon, { icon: faEllipsisVertical }), menus: React.createElement(React.Fragment, null,
|
18
|
+
user.can("delete", workspace.p) && React.createElement(Delete, { action: onDelete }),
|
19
|
+
user.can("disable", workspace.p) && (React.createElement(Button, { type: "link", onClick: () => onChangeStatus("Disabled"), className: classId + "-disabled" },
|
20
|
+
React.createElement(FAIcon, { icon: faUserLock }),
|
21
|
+
React.createElement("span", null, "Disabled"))),
|
22
|
+
user.can("enable", workspace.p) && (React.createElement(Button, { type: "link", onClick: () => onChangeStatus("Enable"), className: classId + "-enable" },
|
23
|
+
React.createElement(FAIcon, { icon: faUserUnlock }),
|
24
|
+
React.createElement("span", null, "Enable"))),
|
25
|
+
React.createElement(Access, null),
|
26
|
+
React.createElement(Paste, { types: ["Document", "WorkTypeNode"] })) })));
|
30
27
|
/** Disabled/Enable function */
|
31
28
|
function onChangeStatus(status) {
|
32
29
|
store.edit(props.id, { data: { Status: status }, error: "message" });
|
33
30
|
}
|
31
|
+
function onDelete() {
|
32
|
+
store.delete([props.id], { data: { DeleteChilds: true }, error: "message" });
|
33
|
+
/** 删除后是否关闭Aside */
|
34
|
+
if (!!props.closeAside && (asideContext === null || asideContext === void 0 ? void 0 : asideContext.asideContent))
|
35
|
+
asideContext === null || asideContext === void 0 ? void 0 : asideContext.closeAside();
|
36
|
+
}
|
34
37
|
};
|
35
38
|
export default WorkspaceMenu;
|
36
39
|
//# sourceMappingURL=index.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/modules/workspace/controls/WorkspaceMenu/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,MAAM,EAAE,MAAM,MAAM,CAAC;AAC9B,OAAO,
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/modules/workspace/controls/WorkspaceMenu/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,MAAM,EAAE,MAAM,MAAM,CAAC;AAC9B,OAAO,EAAE,YAAY,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAC7E,OAAO,EAAE,kBAAkB,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,kCAAkC,CAAC;AAChG,OAAO,EAAE,OAAO,EAAE,sBAAsB,EAAE,MAAM,mBAAmB,CAAC;AACpE,OAAO,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAC5D,OAAO,EAAE,eAAe,IAAI,MAAM,EAAE,MAAM,gCAAgC,CAAC;AAC3E,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,+CAA+C,CAAC;AACtF,OAAO,QAAQ,MAAM,yCAAyC,CAAC;AAE/D,MAAM,aAAa,GAAG,CAAC,KAA+D,EAAE,EAAE;IACzF,yCAAyC;IACzC,MAAM,OAAO,GAAG,gBAAgB,CAAC;IACjC,MAAM,YAAY,GAAG,sBAAsB,EAAE,CAAC;IAC9C,MAAM,EAAE,IAAI,EAAE,GAAG,qBAAqB,EAAE,CAAC;IACzC,MAAM,KAAK,GAAG,iBAAiB,EAAE,CAAC;IAElC,MAAM,SAAS,GAAG,YAAY,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IAEzC,OAAO,OAAO,CAAC,GAAG,EAAE,CAAC,CACpB,oBAAC,QAAQ,IACR,EAAE,EAAE,KAAK,CAAC,EAAE,EACZ,IAAI,EAAE,oBAAC,MAAM,IAAC,IAAI,EAAE,kBAAkB,GAAI,EAC1C,KAAK,EACJ;YACE,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC,CAAC,IAAI,oBAAC,MAAM,IAAC,MAAM,EAAE,QAAQ,GAAI;YAC/D,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC,IAAI,CACpC,oBAAC,MAAM,IACN,IAAI,EAAC,MAAM,EACX,OAAO,EAAE,GAAG,EAAE,CAAC,cAAc,CAAC,UAAU,CAAC,EACzC,SAAS,EAAE,OAAO,GAAG,WAAW;gBAEhC,oBAAC,MAAM,IAAC,IAAI,EAAE,UAAU,GAAI;gBAC5B,6CAAqB,CACb,CACT;YACA,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC,CAAC,IAAI,CACnC,oBAAC,MAAM,IACN,IAAI,EAAC,MAAM,EACX,OAAO,EAAE,GAAG,EAAE,CAAC,cAAc,CAAC,QAAQ,CAAC,EACvC,SAAS,EAAE,OAAO,GAAG,SAAS;gBAE9B,oBAAC,MAAM,IAAC,IAAI,EAAE,YAAY,GAAI;gBAC9B,2CAAmB,CACX,CACT;YACD,oBAAC,MAAM,OAAG;YACV,oBAAC,KAAK,IAAC,KAAK,EAAE,CAAC,UAAU,EAAE,cAAc,CAAC,GAAI,CAC5C,GAEH,CACF,CAAC,CAAC;IAEH,+BAA+B;IAC/B,SAAS,cAAc,CAAC,MAAe;QACtC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC;IACtE,CAAC;IAED,SAAS,QAAQ;QAChB,KAAK,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE,EAAE,IAAI,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC;QAC7E,mBAAmB;QACnB,IAAI,CAAC,CAAC,KAAK,CAAC,UAAU,KAAI,YAAY,aAAZ,YAAY,uBAAZ,YAAY,CAAE,YAAY,CAAA;YAAE,YAAY,aAAZ,YAAY,uBAAZ,YAAY,CAAE,UAAU,EAAE,CAAC;IAClF,CAAC;AACF,CAAC,CAAC;AAEF,eAAe,aAAa,CAAC"}
|