@voplus/morpho-workspace 8.0.0 → 8.0.2
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/data/notification/NotificationStore.d.ts +4 -17
- package/es/data/notification/NotificationStore.js +5 -48
- package/es/data/notification/NotificationStore.js.map +1 -1
- package/es/data/notification/hooks.d.ts +3 -7
- package/es/data/notification/hooks.js +2 -15
- package/es/data/notification/hooks.js.map +1 -1
- package/es/data/notification/interfaces.d.ts +0 -26
- package/es/data/notification/types.d.ts +1 -7
- package/es/data/notification-workspace/NotificationStore.d.ts +26 -0
- package/es/data/notification-workspace/NotificationStore.js +75 -0
- package/es/data/notification-workspace/NotificationStore.js.map +1 -0
- package/es/data/notification-workspace/hooks.d.ts +7 -0
- package/es/data/notification-workspace/hooks.js +17 -0
- package/es/data/notification-workspace/hooks.js.map +1 -0
- package/es/data/notification-workspace/index.d.ts +4 -0
- package/es/data/notification-workspace/index.js +5 -0
- package/es/data/notification-workspace/index.js.map +1 -0
- package/es/data/notification-workspace/interfaces.d.ts +27 -0
- package/es/data/notification-workspace/interfaces.js +2 -0
- package/es/data/notification-workspace/interfaces.js.map +1 -0
- package/es/data/notification-workspace/types.d.ts +21 -0
- package/es/data/notification-workspace/types.js +2 -0
- package/es/data/notification-workspace/types.js.map +1 -0
- package/es/modules/board/components/BoardPropertiesView/index.d.ts +3 -0
- package/es/modules/board/components/BoardPropertiesView/index.js +22 -23
- package/es/modules/board/components/BoardPropertiesView/index.js.map +1 -1
- package/es/modules/board/components/BoardTabs/index.js +9 -5
- package/es/modules/board/components/BoardTabs/index.js.map +1 -1
- package/es/modules/meeting/components/MeetingTabs/index.js +9 -4
- package/es/modules/meeting/components/MeetingTabs/index.js.map +1 -1
- package/es/modules/notification/components/AllNewNotificationItem/index.js +2 -2
- package/es/modules/notification/components/AllNewNotificationItem/index.js.map +1 -1
- package/es/modules/notification/components/AllNewNotificationList/index.js +2 -2
- package/es/modules/notification/components/AllNewNotificationList/index.js.map +1 -1
- package/es/modules/notification/components/AllNewNotificationTableItem/index.js +2 -2
- package/es/modules/notification/components/AllNewNotificationTableItem/index.js.map +1 -1
- package/es/modules/notification/components/AllNewNotificationTableList/index.js +2 -2
- package/es/modules/notification/components/AllNewNotificationTableList/index.js.map +1 -1
- package/es/modules/notification/components/DocumentNotificationCard/NotificationMobileCard.js +2 -2
- package/es/modules/notification/components/DocumentNotificationCard/NotificationMobileCard.js.map +1 -1
- package/es/modules/notification/components/DocumentNotificationCard/index.d.ts +1 -1
- package/es/modules/notification/components/DocumentNotificationCard/index.js +2 -2
- package/es/modules/notification/components/DocumentNotificationCard/index.js.map +1 -1
- package/es/modules/notification/components/DocumentNotificationCard/obsolete.d.ts +1 -1
- package/es/modules/notification/components/DocumentNotificationCard/obsolete.js +2 -2
- package/es/modules/notification/components/DocumentNotificationCard/obsolete.js.map +1 -1
- package/es/modules/notification/components/NotificationHeader/index.js +2 -2
- package/es/modules/notification/components/NotificationHeader/index.js.map +1 -1
- package/es/modules/notification/components/NotificationList/index.d.ts +1 -1
- package/es/modules/notification/components/NotificationList/index.js +2 -2
- package/es/modules/notification/components/NotificationList/index.js.map +1 -1
- package/es/modules/notification/components/NotificationList/state.d.ts +1 -1
- package/es/modules/notification/components/NotificationListHeader/index.js +5 -5
- package/es/modules/notification/components/NotificationListHeader/index.js.map +1 -1
- package/es/modules/notification/components/NotificationOverview/index.d.ts +1 -1
- package/es/modules/notification/components/NotificationProperties/index.js +2 -2
- package/es/modules/notification/components/NotificationProperties/index.js.map +1 -1
- package/es/modules/notification/components/NotificationPropertiesView/index.js +2 -2
- package/es/modules/notification/components/NotificationPropertiesView/index.js.map +1 -1
- package/es/modules/notification/components/NotificationQuickViewDialog/index.js +2 -2
- package/es/modules/notification/components/NotificationQuickViewDialog/index.js.map +1 -1
- package/es/modules/notification/components/NotificationRecipients/index.js +2 -2
- package/es/modules/notification/components/NotificationRecipients/index.js.map +1 -1
- package/es/modules/notification/components/NotificationTabs/index.js +4 -4
- package/es/modules/notification/components/NotificationTabs/index.js.map +1 -1
- package/es/modules/notification/components/NotificationTabs/index.less +15 -22
- package/es/modules/notification/controls/NotificationMenu/index.js +5 -5
- package/es/modules/notification/controls/NotificationMenu/index.js.map +1 -1
- package/es/modules/notification/pages/NotificationDefaultView/index.js +2 -2
- package/es/modules/notification/pages/NotificationDefaultView/index.js.map +1 -1
- package/es/modules/notification/pages/NotificationListPage/index.js +1 -1
- package/es/modules/notification/pages/NotificationListPage/index.js.map +1 -1
- package/es/modules/notification/pages/NotificationListPage/state.d.ts +1 -1
- package/es/modules/tasks/components/TaskTabs/index.js +7 -3
- package/es/modules/tasks/components/TaskTabs/index.js.map +1 -1
- package/es/modules/tasks/pages/TaskListPage/index.js +1 -1
- package/es/modules/tasks/pages/TaskListPage/index.js.map +1 -1
- package/es/modules/work/components/WorkTabs/index.js +6 -1
- package/es/modules/work/components/WorkTabs/index.js.map +1 -1
- package/es/modules/work/controls/WorkMenu/index.js +2 -0
- package/es/modules/work/controls/WorkMenu/index.js.map +1 -1
- package/es/modules/work/pages/WorkListPage2/index.js +1 -1
- package/es/modules/work/pages/WorkListPage2/index.js.map +1 -1
- package/es/modules/work/work-error/components/WorkErrorPropertiesView/index.js +1 -1
- package/es/modules/work/work-error/components/WorkErrorPropertiesView/index.js.map +1 -1
- package/es/modules/work/work-error/components/WorkErrorTabs/index.d.ts +1 -1
- package/es/modules/work/work-error/components/WorkErrorTabs/index.js +12 -10
- package/es/modules/work/work-error/components/WorkErrorTabs/index.js.map +1 -1
- package/es/modules/work/work-error/controls/WorkErrorMenu/index.js +4 -2
- package/es/modules/work/work-error/controls/WorkErrorMenu/index.js.map +1 -1
- package/es/modules/work/work-schedule/components/WorkScheduleTabs/index.js +9 -4
- package/es/modules/work/work-schedule/components/WorkScheduleTabs/index.js.map +1 -1
- package/es/modules/work/work-schedule/controls/WorkScheduleMenu/index.js +2 -0
- package/es/modules/work/work-schedule/controls/WorkScheduleMenu/index.js.map +1 -1
- package/es/modules/work/work-schedule/pages/WorkScheduleListPage/index.js +1 -1
- package/es/modules/work/work-schedule/pages/WorkScheduleListPage/index.js.map +1 -1
- package/es/modules/work/work-type/components/WorkTypePropertiesTabs/index.js +23 -26
- package/es/modules/work/work-type/components/WorkTypePropertiesTabs/index.js.map +1 -1
- package/es/modules/work/work-type/components/WorkTypeTabs/WorkTypeTabsCard.js +28 -27
- package/es/modules/work/work-type/components/WorkTypeTabs/WorkTypeTabsCard.js.map +1 -1
- package/es/modules/work/work-type/components/WorkTypeTabs/index.js +30 -32
- package/es/modules/work/work-type/components/WorkTypeTabs/index.js.map +1 -1
- package/es/modules/work/work-type/controls/WorkTypeMenu/index.js +2 -0
- package/es/modules/work/work-type/controls/WorkTypeMenu/index.js.map +1 -1
- package/es/modules/workspace/components/WorkspaceTabs/index.js +17 -17
- package/es/modules/workspace/components/WorkspaceTabs/index.js.map +1 -1
- package/es/modules/workspace/controls/WorkspaceMenu/index.js +3 -1
- package/es/modules/workspace/controls/WorkspaceMenu/index.js.map +1 -1
- package/es/obsolete/NotificationItem/index.js +2 -2
- package/es/obsolete/NotificationItem/index.js.map +1 -1
- package/es/obsolete/NotificationList2/index.js +2 -2
- package/es/obsolete/NotificationList2/index.js.map +1 -1
- package/es/obsolete/space/components/Notifications/index.js +1 -1
- package/es/obsolete/space/components/Notifications/index.js.map +1 -1
- package/es/obsolete/space/pages/MySpace/index.js +5 -5
- package/es/obsolete/space/pages/MySpace/index.js.map +1 -1
- package/es/obsolete/space/pages/MySpace/state.d.ts +1 -1
- package/package.json +1 -1
- package/es/modules/work/work-type/components/WorkTypePropertiesTabs/index.less +0 -13
- package/es/modules/work/work-type/components/WorkTypeTabs/index.less +0 -45
- package/es/modules/workspace/components/WorkspaceTabs/index.less +0 -13
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { ApiEndPoint } from "@voplus/api";
|
|
2
2
|
import { CountedMap, Store, StoreActionOptions, FilterOption } from "@voplus/morpho-data";
|
|
3
|
-
import {
|
|
3
|
+
import { INewNotification, LoadNewNotificationOptions, CreateNotificationOptions, NotificationEditOptions, DeleteNotificationOptions } from ".";
|
|
4
4
|
import { LoadDocumentListOptions } from "@voplus/morpho-document-core";
|
|
5
5
|
/** Notificaiton store supply backend functions. */
|
|
6
6
|
export declare class NotificationStore extends Store {
|
|
@@ -16,31 +16,18 @@ export declare class NotificationStore extends Store {
|
|
|
16
16
|
/** Event fires when a delete contact has been deleted. */
|
|
17
17
|
get NotificationDeletedEvent(): import("strongly-typed-events").IEvent<NotificationStore, INewNotification>;
|
|
18
18
|
/** All currently used notificaiton. */
|
|
19
|
-
readonly items: CountedMap<string,
|
|
20
|
-
/** All currently used notificaiton. */
|
|
21
|
-
readonly nItems: CountedMap<string, INewNotification>;
|
|
19
|
+
readonly items: CountedMap<string, INewNotification>;
|
|
22
20
|
/** Create a new contact base on type. */
|
|
23
21
|
create(options: CreateNotificationOptions): Promise<INewNotification>;
|
|
24
|
-
/** Load a notificaiton from server.
|
|
25
|
-
* @param {string} id - id of the notificaiton.
|
|
26
|
-
* @param {LoadNotificationOptions} options - Optional load options.
|
|
27
|
-
*/
|
|
28
|
-
load(id: string, options?: LoadNotificationOptions): Promise<INotification>;
|
|
29
|
-
/** Load a list of documents from server.
|
|
30
|
-
* @param {LoadDocumentListOptions}
|
|
31
|
-
*/
|
|
32
|
-
loadList(options?: LoadDocumentListOptions): Promise<INotification[]>;
|
|
33
22
|
/** Load a notificaiton from server.
|
|
34
23
|
* @param {string} id - id of the notificaiton.
|
|
35
24
|
* @param {LoadNewNotificationOptions} options - Optional load options.
|
|
36
25
|
*/
|
|
37
|
-
|
|
26
|
+
load(id: string, options?: LoadNewNotificationOptions): Promise<INewNotification>;
|
|
38
27
|
/** Load a list of documents from server.
|
|
39
28
|
* @param {LoadDocumentListOptions}
|
|
40
29
|
*/
|
|
41
|
-
|
|
42
|
-
/** Edit an existing item on server. */
|
|
43
|
-
edit(id: string, options: NotificationEditOptions): Promise<any>;
|
|
30
|
+
loadList(options?: LoadDocumentListOptions): Promise<INewNotification[]>;
|
|
44
31
|
/** Edit an existing item on server. */
|
|
45
32
|
newEdit(id: string, options: NotificationEditOptions): Promise<any>;
|
|
46
33
|
/** send work.
|
|
@@ -41,13 +41,6 @@ export class NotificationStore extends Store {
|
|
|
41
41
|
writable: true,
|
|
42
42
|
value: new CountedMap((key) => ({ id: key, loaded: false }), observable.map([], { deep: true }))
|
|
43
43
|
});
|
|
44
|
-
/** All currently used notificaiton. */
|
|
45
|
-
Object.defineProperty(this, "nItems", {
|
|
46
|
-
enumerable: true,
|
|
47
|
-
configurable: true,
|
|
48
|
-
writable: true,
|
|
49
|
-
value: new CountedMap((key) => ({ id: key, loaded: false }), observable.map([], { deep: true }))
|
|
50
|
-
});
|
|
51
44
|
}
|
|
52
45
|
/** Event fires when a new notification has been created. */
|
|
53
46
|
get NotificationCreatedEvent() {
|
|
@@ -67,38 +60,11 @@ export class NotificationStore extends Store {
|
|
|
67
60
|
return t;
|
|
68
61
|
}, options);
|
|
69
62
|
}
|
|
70
|
-
/** Load a notificaiton from server.
|
|
71
|
-
* @param {string} id - id of the notificaiton.
|
|
72
|
-
* @param {LoadNotificationOptions} options - Optional load options.
|
|
73
|
-
*/
|
|
74
|
-
async load(id, options) {
|
|
75
|
-
options = options !== null && options !== void 0 ? options : {};
|
|
76
|
-
let query = "";
|
|
77
|
-
if (options.includes)
|
|
78
|
-
query = query.concat(`includes=${options.includes}`);
|
|
79
|
-
if (query)
|
|
80
|
-
query = "?".concat(query);
|
|
81
|
-
const r = await this.endpoint.get(`/api/myspace/notifications/${id}${query}`);
|
|
82
|
-
return await r.json();
|
|
83
|
-
}
|
|
84
|
-
/** Load a list of documents from server.
|
|
85
|
-
* @param {LoadDocumentListOptions}
|
|
86
|
-
*/
|
|
87
|
-
async loadList(options) {
|
|
88
|
-
let query = "";
|
|
89
|
-
if (options === null || options === void 0 ? void 0 : options.Includes) {
|
|
90
|
-
query = query.concat(`includes=${options.Includes}`);
|
|
91
|
-
}
|
|
92
|
-
if (query)
|
|
93
|
-
query = "?".concat(query);
|
|
94
|
-
const r = await this.endpoint.post(`/api/myspace/notifications${query}`, new RequestBuilder().json(options ? options : { Filters: [] }));
|
|
95
|
-
return (await r.json());
|
|
96
|
-
}
|
|
97
63
|
/** Load a notificaiton from server.
|
|
98
64
|
* @param {string} id - id of the notificaiton.
|
|
99
65
|
* @param {LoadNewNotificationOptions} options - Optional load options.
|
|
100
66
|
*/
|
|
101
|
-
async
|
|
67
|
+
async load(id, options) {
|
|
102
68
|
options = options !== null && options !== void 0 ? options : {};
|
|
103
69
|
let query = "";
|
|
104
70
|
if (options.includes)
|
|
@@ -111,7 +77,7 @@ export class NotificationStore extends Store {
|
|
|
111
77
|
/** Load a list of documents from server.
|
|
112
78
|
* @param {LoadDocumentListOptions}
|
|
113
79
|
*/
|
|
114
|
-
async
|
|
80
|
+
async loadList(options) {
|
|
115
81
|
let query = "";
|
|
116
82
|
if (options === null || options === void 0 ? void 0 : options.Includes) {
|
|
117
83
|
query = query.concat(`includes=${options.Includes}`);
|
|
@@ -122,20 +88,11 @@ export class NotificationStore extends Store {
|
|
|
122
88
|
return (await r.json());
|
|
123
89
|
}
|
|
124
90
|
/** Edit an existing item on server. */
|
|
125
|
-
async edit(id, options) {
|
|
126
|
-
return this.action(async () => {
|
|
127
|
-
const r = await this.endpoint.post(`/api/myspace/notifications/${id}`, new RequestBuilder().json(options.data));
|
|
128
|
-
const t = (await r.json());
|
|
129
|
-
this.items.overwrite(t.id, t);
|
|
130
|
-
return t;
|
|
131
|
-
}, options);
|
|
132
|
-
}
|
|
133
|
-
/** Edit an existing item on server. */
|
|
134
91
|
async newEdit(id, options) {
|
|
135
92
|
return this.action(async () => {
|
|
136
93
|
const r = await this.endpoint.post(`/api/notifications/${id}`, new RequestBuilder().json(options.data));
|
|
137
94
|
const t = (await r.json());
|
|
138
|
-
this.
|
|
95
|
+
this.items.overwrite(t.id, t);
|
|
139
96
|
return t;
|
|
140
97
|
}, options);
|
|
141
98
|
}
|
|
@@ -146,7 +103,7 @@ export class NotificationStore extends Store {
|
|
|
146
103
|
return this.action(async () => {
|
|
147
104
|
const r = await this.endpoint.post(`/api/notifications/${id}/send`);
|
|
148
105
|
const t = (await r.json());
|
|
149
|
-
this.
|
|
106
|
+
this.items.overwrite(t.id, t);
|
|
150
107
|
return t;
|
|
151
108
|
}, options);
|
|
152
109
|
}
|
|
@@ -155,7 +112,7 @@ export class NotificationStore extends Store {
|
|
|
155
112
|
await this.endpoint.delete(`/api/notifications/delete`, new RequestBuilder().json({ Ids: ids, Options: options === null || options === void 0 ? void 0 : options.data }));
|
|
156
113
|
const deleted = [];
|
|
157
114
|
for (const id of ids) {
|
|
158
|
-
const item = this.
|
|
115
|
+
const item = this.items.peek(id);
|
|
159
116
|
if (item) {
|
|
160
117
|
deleted.push(item);
|
|
161
118
|
this._deleted.dispatch(this, item);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NotificationStore.js","sourceRoot":"","sources":["../../../src/data/notification/NotificationStore.ts"],"names":[],"mappings":";AAAA,OAAO,EAAe,cAAc,EAAE,MAAM,aAAa,CAAC;AAC1D,OAAO,EACN,UAAU,EACV,KAAK,EACL,qBAAqB,GAGrB,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"NotificationStore.js","sourceRoot":"","sources":["../../../src/data/notification/NotificationStore.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,11 +1,7 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { INewNotification, LoadNewNotificationOptions } from ".";
|
|
2
2
|
import { ListDataContextState } from "@voplus/morpho-ui/es/data";
|
|
3
3
|
import { LoadDocumentListOptions } from "@voplus/morpho-document-core";
|
|
4
|
-
/** notification card */
|
|
5
|
-
export declare const useNotification: (id: string, options?: LoadNotificationOptions) => INotification;
|
|
6
4
|
/** 新的 notification */
|
|
7
|
-
export declare const
|
|
8
|
-
/** notification card list */
|
|
9
|
-
export declare const useNotificationListEffect: (list: ListDataContextState<INotification> | null, effect: (list: INotification[], total?: number) => void, options?: LoadDocumentListOptions) => void;
|
|
5
|
+
export declare const useNotification: (id: string, options?: LoadNewNotificationOptions) => INewNotification;
|
|
10
6
|
/** 新的 notification */
|
|
11
|
-
export declare const
|
|
7
|
+
export declare const useNotificationListEffect: (list: ListDataContextState<INewNotification> | null, effect: (list: INewNotification[], total?: number) => void, options?: LoadDocumentListOptions) => void;
|
|
@@ -1,30 +1,17 @@
|
|
|
1
|
-
import { useNotificationStore
|
|
1
|
+
import { useNotificationStore } from ".";
|
|
2
2
|
import { useListLoaderEffect } from "@voplus/morpho-ui/es/hooks";
|
|
3
3
|
import { useLoadCountedMapItem } from "@voplus/morpho-data";
|
|
4
|
-
/** notification
|
|
4
|
+
/** 新的 notification */
|
|
5
5
|
export const useNotification = (id, options) => {
|
|
6
6
|
options = options ? options : {};
|
|
7
7
|
const store = useNotificationStore();
|
|
8
8
|
return useLoadCountedMapItem(id, store.items, (calculatedOptions) => store.load(id, calculatedOptions), options);
|
|
9
9
|
};
|
|
10
10
|
/** 新的 notification */
|
|
11
|
-
export const useNotifications = (id, options) => {
|
|
12
|
-
options = options ? options : {};
|
|
13
|
-
const store = useNotificationStore();
|
|
14
|
-
return useLoadCountedMapItem(id, store.nItems, (calculatedOptions) => store.newLoad(id, calculatedOptions), options);
|
|
15
|
-
};
|
|
16
|
-
/** notification card list */
|
|
17
11
|
export const useNotificationListEffect = (list, effect, options) => {
|
|
18
12
|
const deps = options ? options : {};
|
|
19
13
|
const store = useNotificationStore();
|
|
20
14
|
// Call useListLoaderEffect and ensure won't load twice for same loading options.
|
|
21
15
|
return useListLoaderEffect(list, store.items, effect, () => store.loadList(options), [deps]);
|
|
22
16
|
};
|
|
23
|
-
/** 新的 notification */
|
|
24
|
-
export const useNotificationsListEffect = (list, effect, options) => {
|
|
25
|
-
const deps = options ? options : {};
|
|
26
|
-
const store = useNotificationStore();
|
|
27
|
-
// Call useListLoaderEffect and ensure won't load twice for same loading options.
|
|
28
|
-
return useListLoaderEffect(list, store.nItems, effect, () => store.newLoadList(options), [deps]);
|
|
29
|
-
};
|
|
30
17
|
//# sourceMappingURL=hooks.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hooks.js","sourceRoot":"","sources":["../../../src/data/notification/hooks.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"hooks.js","sourceRoot":"","sources":["../../../src/data/notification/hooks.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgD,oBAAoB,EAAE,MAAM,GAAG,CAAC;AAIvF,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AACjE,OAAO,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAE5D,sBAAsB;AACtB,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,EAAU,EAAE,OAAoC,EAAE,EAAE;IACnF,OAAO,GAAG,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAE,EAAiC,CAAC;IACjE,MAAM,KAAK,GAAG,oBAAoB,EAAE,CAAC;IAErC,OAAO,qBAAqB,CAC3B,EAAE,EACF,KAAK,CAAC,KAAK,EACX,CAAC,iBAAiB,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,EAAE,iBAAiB,CAAC,EACxD,OAAO,CACP,CAAC;AACH,CAAC,CAAC;AAEF,sBAAsB;AACtB,MAAM,CAAC,MAAM,yBAAyB,GAAG,CACxC,IAAmD,EACnD,MAA0D,EAC1D,OAAiC,EAChC,EAAE;IACH,MAAM,IAAI,GAAG,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAE,EAA8B,CAAC;IAEjE,MAAM,KAAK,GAAG,oBAAoB,EAAE,CAAC;IAErC,iFAAiF;IACjF,OAAO,mBAAmB,CAAC,IAAI,EAAE,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC;AAC9F,CAAC,CAAC"}
|
|
@@ -8,15 +8,6 @@ export type IRrecipient = {
|
|
|
8
8
|
channel: string;
|
|
9
9
|
sentDate: string;
|
|
10
10
|
};
|
|
11
|
-
export type NotificationStatus = "Unread" | "Read" | "Later" | "Dismissed";
|
|
12
|
-
/** notification card list 的 INotification */
|
|
13
|
-
export interface INotification extends ILoadable {
|
|
14
|
-
id: string;
|
|
15
|
-
type: string;
|
|
16
|
-
status: NotificationStatus;
|
|
17
|
-
dismissDate?: Date;
|
|
18
|
-
createDate: string;
|
|
19
|
-
}
|
|
20
11
|
/** 新的INotification corporate/customer里用 */
|
|
21
12
|
export interface INewNotification extends ILoadable, IPermissions {
|
|
22
13
|
id: string;
|
|
@@ -40,20 +31,3 @@ export interface INewNotification extends ILoadable, IPermissions {
|
|
|
40
31
|
type: string;
|
|
41
32
|
};
|
|
42
33
|
}
|
|
43
|
-
export interface IDocumentNotification extends INotification {
|
|
44
|
-
content: {
|
|
45
|
-
title: string;
|
|
46
|
-
content: string;
|
|
47
|
-
};
|
|
48
|
-
notificationType: string;
|
|
49
|
-
createdBy: {
|
|
50
|
-
id: string;
|
|
51
|
-
name: string;
|
|
52
|
-
};
|
|
53
|
-
node: {
|
|
54
|
-
id: string;
|
|
55
|
-
name: string;
|
|
56
|
-
nodeType: string;
|
|
57
|
-
type: string;
|
|
58
|
-
};
|
|
59
|
-
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { INewNotification } from ".";
|
|
2
2
|
import { LoadOptions, StoreActionOptions } from "@voplus/morpho-data";
|
|
3
3
|
import { DeleteDocumentOptions } from "@voplus/morpho-document-core";
|
|
4
4
|
import { FilterOption, PageParameters } from "@voplus/morpho-data/es/types";
|
|
@@ -12,17 +12,11 @@ export type LoadNotificationListOptions = {
|
|
|
12
12
|
Total?: boolean;
|
|
13
13
|
};
|
|
14
14
|
/** Custom load contact options type */
|
|
15
|
-
export type LoadNotificationOptions = {
|
|
16
|
-
/** Comma separated include options e.g. path */
|
|
17
|
-
includes?: string;
|
|
18
|
-
} & LoadOptions<INotification>;
|
|
19
|
-
/** Custom load contact options type */
|
|
20
15
|
export type LoadNewNotificationOptions = {
|
|
21
16
|
/** Comma separated include options e.g. path */
|
|
22
17
|
includes?: string;
|
|
23
18
|
} & LoadOptions<INewNotification>;
|
|
24
19
|
export type NotificationEditDataOptions = {
|
|
25
|
-
status?: NotificationStatus;
|
|
26
20
|
CreateDate?: dayjs.Dayjs | string;
|
|
27
21
|
Subject?: string;
|
|
28
22
|
EmailTemplateId?: string;
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { ApiEndPoint } from "@voplus/api";
|
|
2
|
+
import { CountedMap, Store } from "@voplus/morpho-data";
|
|
3
|
+
import { INotification, LoadNotificationOptions, NotificationEditOptions } from ".";
|
|
4
|
+
import { LoadDocumentListOptions } from "@voplus/morpho-document-core";
|
|
5
|
+
/** Notificaiton store supply backend functions. */
|
|
6
|
+
export declare class NotificationInWorkSpaceStore extends Store {
|
|
7
|
+
readonly endpoint: ApiEndPoint;
|
|
8
|
+
/** Name of the store */
|
|
9
|
+
readonly name: string;
|
|
10
|
+
constructor(endpoint: ApiEndPoint);
|
|
11
|
+
/** All currently used notificaiton. */
|
|
12
|
+
readonly items: CountedMap<string, INotification>;
|
|
13
|
+
/** Load a notificaiton from server.
|
|
14
|
+
* @param {string} id - id of the notificaiton.
|
|
15
|
+
* @param {LoadNotificationOptions} options - Optional load options.
|
|
16
|
+
*/
|
|
17
|
+
load(id: string, options?: LoadNotificationOptions): Promise<INotification>;
|
|
18
|
+
/** Load a list of documents from server.
|
|
19
|
+
* @param {LoadDocumentListOptions}
|
|
20
|
+
*/
|
|
21
|
+
loadList(options?: LoadDocumentListOptions): Promise<INotification[]>;
|
|
22
|
+
/** Edit an existing item on server. */
|
|
23
|
+
edit(id: string, options: NotificationEditOptions): Promise<any>;
|
|
24
|
+
}
|
|
25
|
+
/** React hook to retrieve NotificaitonStore */
|
|
26
|
+
export declare const useNotificationStore: () => NotificationInWorkSpaceStore;
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
import { RequestBuilder } from "@voplus/api";
|
|
2
|
+
import { CountedMap, Store, useApplicationContext } from "@voplus/morpho-data";
|
|
3
|
+
import { observable } from "mobx";
|
|
4
|
+
const StoreName = "NotificationInWorkSpaceStore";
|
|
5
|
+
/** Notificaiton store supply backend functions. */
|
|
6
|
+
export class NotificationInWorkSpaceStore extends Store {
|
|
7
|
+
constructor(endpoint) {
|
|
8
|
+
super();
|
|
9
|
+
Object.defineProperty(this, "endpoint", {
|
|
10
|
+
enumerable: true,
|
|
11
|
+
configurable: true,
|
|
12
|
+
writable: true,
|
|
13
|
+
value: endpoint
|
|
14
|
+
});
|
|
15
|
+
/** Name of the store */
|
|
16
|
+
Object.defineProperty(this, "name", {
|
|
17
|
+
enumerable: true,
|
|
18
|
+
configurable: true,
|
|
19
|
+
writable: true,
|
|
20
|
+
value: StoreName
|
|
21
|
+
});
|
|
22
|
+
/** All currently used notificaiton. */
|
|
23
|
+
Object.defineProperty(this, "items", {
|
|
24
|
+
enumerable: true,
|
|
25
|
+
configurable: true,
|
|
26
|
+
writable: true,
|
|
27
|
+
value: new CountedMap((key) => ({ id: key, loaded: false }), observable.map([], { deep: true }))
|
|
28
|
+
});
|
|
29
|
+
}
|
|
30
|
+
/** Load a notificaiton from server.
|
|
31
|
+
* @param {string} id - id of the notificaiton.
|
|
32
|
+
* @param {LoadNotificationOptions} options - Optional load options.
|
|
33
|
+
*/
|
|
34
|
+
async load(id, options) {
|
|
35
|
+
options = options !== null && options !== void 0 ? options : {};
|
|
36
|
+
let query = "";
|
|
37
|
+
if (options.includes)
|
|
38
|
+
query = query.concat(`includes=${options.includes}`);
|
|
39
|
+
if (query)
|
|
40
|
+
query = "?".concat(query);
|
|
41
|
+
const r = await this.endpoint.get(`/api/myspace/notifications/${id}${query}`);
|
|
42
|
+
return await r.json();
|
|
43
|
+
}
|
|
44
|
+
/** Load a list of documents from server.
|
|
45
|
+
* @param {LoadDocumentListOptions}
|
|
46
|
+
*/
|
|
47
|
+
async loadList(options) {
|
|
48
|
+
let query = "";
|
|
49
|
+
if (options === null || options === void 0 ? void 0 : options.Includes) {
|
|
50
|
+
query = query.concat(`includes=${options.Includes}`);
|
|
51
|
+
}
|
|
52
|
+
if (query)
|
|
53
|
+
query = "?".concat(query);
|
|
54
|
+
const r = await this.endpoint.post(`/api/myspace/notifications${query}`, new RequestBuilder().json(options ? options : { Filters: [] }));
|
|
55
|
+
return (await r.json());
|
|
56
|
+
}
|
|
57
|
+
/** Edit an existing item on server. */
|
|
58
|
+
async edit(id, options) {
|
|
59
|
+
return this.action(async () => {
|
|
60
|
+
const r = await this.endpoint.post(`/api/myspace/notifications/${id}`, new RequestBuilder().json(options.data));
|
|
61
|
+
const t = (await r.json());
|
|
62
|
+
this.items.overwrite(t.id, t);
|
|
63
|
+
return t;
|
|
64
|
+
}, options);
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
/** React hook to retrieve NotificaitonStore */
|
|
68
|
+
export const useNotificationStore = () => {
|
|
69
|
+
const context = useApplicationContext();
|
|
70
|
+
if (!context.getService(StoreName)) {
|
|
71
|
+
context.registerService(new NotificationInWorkSpaceStore(context.api.currentEndPoint));
|
|
72
|
+
}
|
|
73
|
+
return context.getService(StoreName);
|
|
74
|
+
};
|
|
75
|
+
//# sourceMappingURL=NotificationStore.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"NotificationStore.js","sourceRoot":"","sources":["../../../src/data/notification-workspace/NotificationStore.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { INotification, LoadNotificationOptions } from ".";
|
|
2
|
+
import { ListDataContextState } from "@voplus/morpho-ui/es/data";
|
|
3
|
+
import { LoadDocumentListOptions } from "@voplus/morpho-document-core";
|
|
4
|
+
/** notification card */
|
|
5
|
+
export declare const useNotificationInWorkSpace: (id: string, options?: LoadNotificationOptions) => INotification;
|
|
6
|
+
/** notification card list */
|
|
7
|
+
export declare const useNotificationListInWorkSpaceEffect: (list: ListDataContextState<INotification> | null, effect: (list: INotification[], total?: number) => void, options?: LoadDocumentListOptions) => void;
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { useNotificationStore } from ".";
|
|
2
|
+
import { useListLoaderEffect } from "@voplus/morpho-ui/es/hooks";
|
|
3
|
+
import { useLoadCountedMapItem } from "@voplus/morpho-data";
|
|
4
|
+
/** notification card */
|
|
5
|
+
export const useNotificationInWorkSpace = (id, options) => {
|
|
6
|
+
options = options ? options : {};
|
|
7
|
+
const store = useNotificationStore();
|
|
8
|
+
return useLoadCountedMapItem(id, store.items, (calculatedOptions) => store.load(id, calculatedOptions), options);
|
|
9
|
+
};
|
|
10
|
+
/** notification card list */
|
|
11
|
+
export const useNotificationListInWorkSpaceEffect = (list, effect, options) => {
|
|
12
|
+
const deps = options ? options : {};
|
|
13
|
+
const store = useNotificationStore();
|
|
14
|
+
// Call useListLoaderEffect and ensure won't load twice for same loading options.
|
|
15
|
+
return useListLoaderEffect(list, store.items, effect, () => store.loadList(options), [deps]);
|
|
16
|
+
};
|
|
17
|
+
//# sourceMappingURL=hooks.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hooks.js","sourceRoot":"","sources":["../../../src/data/notification-workspace/hooks.ts"],"names":[],"mappings":"AAAA,OAAO,EAA0C,oBAAoB,EAAE,MAAM,GAAG,CAAC;AAIjF,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AACjE,OAAO,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAE5D,wBAAwB;AACxB,MAAM,CAAC,MAAM,0BAA0B,GAAG,CAAC,EAAU,EAAE,OAAiC,EAAE,EAAE;IAC3F,OAAO,GAAG,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAE,EAA8B,CAAC;IAC9D,MAAM,KAAK,GAAG,oBAAoB,EAAE,CAAC;IAErC,OAAO,qBAAqB,CAC3B,EAAE,EACF,KAAK,CAAC,KAAK,EACX,CAAC,iBAAiB,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,EAAE,iBAAiB,CAAC,EACxD,OAAO,CACP,CAAC;AACH,CAAC,CAAC;AAEF,6BAA6B;AAC7B,MAAM,CAAC,MAAM,oCAAoC,GAAG,CACnD,IAAgD,EAChD,MAAuD,EACvD,OAAiC,EAChC,EAAE;IACH,MAAM,IAAI,GAAG,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAE,EAA8B,CAAC;IAEjE,MAAM,KAAK,GAAG,oBAAoB,EAAE,CAAC;IAErC,iFAAiF;IACjF,OAAO,mBAAmB,CAAC,IAAI,EAAE,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC;AAC9F,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/data/notification-workspace/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC;AAC7B,cAAc,SAAS,CAAC;AACxB,cAAc,qBAAqB,CAAC;AACpC,cAAc,SAAS,CAAC"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { ILoadable } from "@voplus/morpho-data";
|
|
2
|
+
export type NotificationStatus = "Unread" | "Read" | "Later" | "Dismissed";
|
|
3
|
+
/** notification card list 的 INotification */
|
|
4
|
+
export interface INotification extends ILoadable {
|
|
5
|
+
id: string;
|
|
6
|
+
type: string;
|
|
7
|
+
status: NotificationStatus;
|
|
8
|
+
dismissDate?: Date;
|
|
9
|
+
createDate: string;
|
|
10
|
+
}
|
|
11
|
+
export interface IDocumentNotification extends INotification {
|
|
12
|
+
content: {
|
|
13
|
+
title: string;
|
|
14
|
+
content: string;
|
|
15
|
+
};
|
|
16
|
+
notificationType: string;
|
|
17
|
+
createdBy: {
|
|
18
|
+
id: string;
|
|
19
|
+
name: string;
|
|
20
|
+
};
|
|
21
|
+
node: {
|
|
22
|
+
id: string;
|
|
23
|
+
name: string;
|
|
24
|
+
nodeType: string;
|
|
25
|
+
type: string;
|
|
26
|
+
};
|
|
27
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"interfaces.js","sourceRoot":"","sources":["../../../src/data/notification-workspace/interfaces.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { INotification, NotificationStatus } from ".";
|
|
2
|
+
import { LoadOptions, StoreActionOptions } from "@voplus/morpho-data";
|
|
3
|
+
import { FilterOption, PageParameters } from "@voplus/morpho-data/es/types";
|
|
4
|
+
/** Custom load notification list options type */
|
|
5
|
+
export type LoadNotificationListOptions = {
|
|
6
|
+
Includes?: string;
|
|
7
|
+
Filters?: FilterOption[];
|
|
8
|
+
Page?: PageParameters;
|
|
9
|
+
Total?: boolean;
|
|
10
|
+
};
|
|
11
|
+
/** Custom load contact options type */
|
|
12
|
+
export type LoadNotificationOptions = {
|
|
13
|
+
/** Comma separated include options e.g. path */
|
|
14
|
+
includes?: string;
|
|
15
|
+
} & LoadOptions<INotification>;
|
|
16
|
+
export type NotificationEditDataOptions = {
|
|
17
|
+
status?: NotificationStatus;
|
|
18
|
+
};
|
|
19
|
+
export type NotificationEditOptions = {
|
|
20
|
+
data: NotificationEditDataOptions;
|
|
21
|
+
} & StoreActionOptions;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/data/notification-workspace/types.ts"],"names":[],"mappings":""}
|
|
@@ -1,7 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 此组件未使用,后续可删除
|
|
3
|
+
* */
|
|
1
4
|
import "./index.less";
|
|
2
5
|
import React, { useMemo, useState } from "react";
|
|
3
6
|
import { ViewContext, ViewContextData, } from "@voplus/morpho-document-core/es/data/context/ViewContext";
|
|
4
|
-
import { useHandleError, useDocument } from "@voplus/morpho-document-core";
|
|
5
7
|
import PropertiesPanelHeader from "@voplus/morpho-document/es/components/PropertiesPanelHeader";
|
|
6
8
|
import ActivityLog from "@voplus/morpho-org/es/components/ActivityLog2/ActivityLog2";
|
|
7
9
|
import DescriptionDocumentList from "@voplus/morpho-document/es/components/DescriptionDocumentList";
|
|
@@ -11,30 +13,27 @@ import { observe } from "@voplus/morpho-ui";
|
|
|
11
13
|
const BoardPropertiesView = (props) => {
|
|
12
14
|
const id = props.id;
|
|
13
15
|
const view = useMemo(() => new ViewContextData("PropertiesView"), []);
|
|
14
|
-
const handleError = useHandleError();
|
|
15
|
-
const document = useDocument(id, { onError: handleError });
|
|
16
16
|
const [loaded, setLoaded] = useState(true);
|
|
17
17
|
const [activeKey, setActiveKey] = useState();
|
|
18
|
-
return observe(() => (React.createElement(ViewContext.Provider, { value: view },
|
|
19
|
-
React.createElement(
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
], onChange: (key) => setActiveKey(key) })))))));
|
|
18
|
+
return observe(() => (React.createElement(ViewContext.Provider, { value: view }, loaded && (React.createElement("div", { className: "module-detail-view" },
|
|
19
|
+
React.createElement(PropertiesPanelHeader, { id: id, onReload: onReload }),
|
|
20
|
+
React.createElement(DocumentTabs, { id: id, tabItems: [
|
|
21
|
+
{
|
|
22
|
+
key: "Details",
|
|
23
|
+
label: "Details",
|
|
24
|
+
children: React.createElement(DescriptionDocumentList, { id: id }),
|
|
25
|
+
},
|
|
26
|
+
{
|
|
27
|
+
key: "Activities",
|
|
28
|
+
label: "Activities",
|
|
29
|
+
children: React.createElement(React.Fragment, null, activeKey === "Activities" ? React.createElement(ActivityLog, { id: id }) : null),
|
|
30
|
+
},
|
|
31
|
+
{
|
|
32
|
+
key: "Links",
|
|
33
|
+
label: "Links",
|
|
34
|
+
children: React.createElement(Links, { id: id }),
|
|
35
|
+
},
|
|
36
|
+
], onChange: (key) => setActiveKey(key) }))))));
|
|
38
37
|
/** reload data */
|
|
39
38
|
function onReload() {
|
|
40
39
|
setLoaded(false);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/modules/board/components/BoardPropertiesView/index.tsx"],"names":[],"mappings":"AAAA,OAAO,cAAc,CAAC;AACtB,OAAO,KAAK,EAAE,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AACjD,OAAO,EACN,WAAW,EACX,eAAe,GACf,MAAM,0DAA0D,CAAC;AAClE,OAAO,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/modules/board/components/BoardPropertiesView/index.tsx"],"names":[],"mappings":"AAAA;;KAEK;AAEL,OAAO,cAAc,CAAC;AACtB,OAAO,KAAK,EAAE,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AACjD,OAAO,EACN,WAAW,EACX,eAAe,GACf,MAAM,0DAA0D,CAAC;AAClE,OAAO,qBAAqB,MAAM,6DAA6D,CAAC;AAChG,OAAO,WAAW,MAAM,4DAA4D,CAAC;AACrF,OAAO,uBAAuB,MAAM,+DAA+D,CAAC;AACpG,OAAO,YAAY,MAAM,oDAAoD,CAAC;AAC9E,OAAO,KAAK,MAAM,6CAA6C,CAAC;AAChE,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAE5C,MAAM,mBAAmB,GAAG,CAAC,KAAwC,EAAE,EAAE;IACxE,MAAM,EAAE,GAAG,KAAK,CAAC,EAAE,CAAC;IACpB,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC,IAAI,eAAe,CAAC,gBAAgB,CAAC,EAAE,EAAE,CAAC,CAAC;IAEtE,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC;IAC3C,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,QAAQ,EAAU,CAAC;IAErD,OAAO,OAAO,CAAC,GAAG,EAAE,CAAC,CACpB,oBAAC,WAAW,CAAC,QAAQ,IAAC,KAAK,EAAE,IAAI,IAC/B,MAAM,IAAI,CACV,6BAAK,SAAS,EAAC,oBAAoB;QAClC,oBAAC,qBAAqB,IAAC,EAAE,EAAE,EAAE,EAAE,QAAQ,EAAE,QAAQ,GAAI;QACrD,oBAAC,YAAY,IACZ,EAAE,EAAE,EAAE,EACN,QAAQ,EAAE;gBACT;oBACC,GAAG,EAAE,SAAS;oBACd,KAAK,EAAE,SAAS;oBAChB,QAAQ,EAAE,oBAAC,uBAAuB,IAAC,EAAE,EAAE,EAAE,GAAI;iBAC7C;gBACD;oBACC,GAAG,EAAE,YAAY;oBACjB,KAAK,EAAE,YAAY;oBACnB,QAAQ,EAAE,0CAAG,SAAS,KAAK,YAAY,CAAC,CAAC,CAAC,oBAAC,WAAW,IAAC,EAAE,EAAE,EAAE,GAAI,CAAC,CAAC,CAAC,IAAI,CAAI;iBAC5E;gBACD;oBACC,GAAG,EAAE,OAAO;oBACZ,KAAK,EAAE,OAAO;oBACd,QAAQ,EAAE,oBAAC,KAAK,IAAC,EAAE,EAAE,EAAE,GAAI;iBAC3B;aACD,EACD,QAAQ,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,YAAY,CAAC,GAAG,CAAC,GACnC,CACG,CACN,CACqB,CACvB,CAAC,CAAC;IACH,kBAAkB;IAClB,SAAS,QAAQ;QAChB,SAAS,CAAC,KAAK,CAAC,CAAC;QACjB,UAAU,CAAC,GAAG,EAAE;YACf,SAAS,CAAC,IAAI,CAAC,CAAC;QACjB,CAAC,EAAE,GAAG,CAAC,CAAC;IACT,CAAC;AACF,CAAC,CAAC;AACF,eAAe,mBAAmB,CAAC"}
|
|
@@ -38,11 +38,15 @@ const BoardTabs = (props) => {
|
|
|
38
38
|
children: React.createElement(Links, { id: id }),
|
|
39
39
|
},
|
|
40
40
|
];
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
41
|
+
console.log("BoardTabs render", board);
|
|
42
|
+
return observe(() => {
|
|
43
|
+
var _a;
|
|
44
|
+
return (React.createElement(React.Fragment, null,
|
|
45
|
+
React.createElement(DocumentTabs, { id: id, active: "Board", tabItems: items, actionPlan: !!((_a = board.flags) === null || _a === void 0 ? void 0 : _a.includes("ActionPlan")), onChange: (key) => setActiveKey(key), className: "board-document-tabs", headerVisibility: true, tabBarExtraContent: React.createElement(React.Fragment, null,
|
|
46
|
+
activeKey === "Board" && board.status !== "Readonly" && (React.createElement(Button, { type: "link", className: "board-tab-create", onClick: () => setAddBoardColumnAble(true) }, "+ Create New Status")),
|
|
47
|
+
React.createElement(ToolBar, { id: id, moreProps: { icon: React.createElement(FAIcon, { icon: faEllipsisVerticalSolid }) } })) }),
|
|
48
|
+
addBoardColumnAble && (React.createElement(NewBoardColumnDialog, { parentId: id, onCancel: () => setAddBoardColumnAble(false) }))));
|
|
49
|
+
});
|
|
46
50
|
};
|
|
47
51
|
export default BoardTabs;
|
|
48
52
|
//# sourceMappingURL=index.js.map
|