@voplus/morpho-workspace 1.0.0-dev41 → 1.0.0-dev43
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/components/AvatarList/index.js +19 -11
- package/es/components/AvatarList/index.js.map +1 -1
- package/es/components/AvatarList/index.less +13 -4
- package/es/components/AvatarList/state.d.ts +1 -0
- package/es/components/AvatarList/state.js +4 -0
- package/es/components/AvatarList/state.js.map +1 -1
- package/es/components/PageListView/index.d.ts +1 -7
- package/es/components/PageListView/index.js +16 -63
- package/es/components/PageListView/index.js.map +1 -1
- package/es/components/PageListView/index.less +3 -64
- package/es/components/PageListView/state.d.ts +0 -3
- package/es/components/PageListView/state.js +0 -12
- package/es/components/PageListView/state.js.map +1 -1
- package/es/components/ToolBar/index.d.ts +4 -1
- package/es/components/ToolBar/index.js +17 -6
- package/es/components/ToolBar/index.js.map +1 -1
- package/es/components/ToolBar/index.less +4 -1
- package/es/controls/FlagIcon/index.d.ts +2 -1
- package/es/controls/FlagIcon/index.js +13 -3
- package/es/controls/FlagIcon/index.js.map +1 -1
- package/es/data/board/BoardStore.d.ts +21 -0
- package/es/data/board/BoardStore.js +39 -0
- package/es/data/board/BoardStore.js.map +1 -0
- package/es/data/board/hooks.d.ts +12 -0
- package/es/data/board/hooks.js +24 -0
- package/es/data/board/hooks.js.map +1 -0
- package/es/data/board/index.d.ts +4 -0
- package/es/data/board/index.js +3 -0
- package/es/data/board/index.js.map +1 -0
- package/es/data/board/interfaces.d.ts +25 -0
- package/es/data/board/interfaces.js +1 -0
- package/es/data/board/interfaces.js.map +1 -0
- package/es/data/board/mock.d.ts +3 -0
- package/es/data/board/mock.js +37 -0
- package/es/data/board/mock.js.map +1 -0
- package/es/data/board/types.d.ts +14 -0
- package/es/data/board/types.js +1 -0
- package/es/data/board/types.js.map +1 -0
- package/es/data/meeting/interfaces.d.ts +1 -0
- package/es/data/task/interfaces.d.ts +1 -0
- package/es/modules/BoardView/components/BoardColumn/index.d.ts +5 -2
- package/es/modules/BoardView/components/BoardColumn/index.js +49 -224
- package/es/modules/BoardView/components/BoardColumn/index.js.map +1 -1
- package/es/modules/BoardView/components/BoardColumn/index.less +49 -108
- package/es/modules/BoardView/components/BoardColumn/state.d.ts +11 -0
- package/es/modules/BoardView/components/BoardColumn/state.js +38 -0
- package/es/modules/BoardView/components/BoardColumn/state.js.map +1 -0
- package/es/modules/BoardView/components/BoardList/index.d.ts +5 -0
- package/es/modules/BoardView/components/BoardList/index.js +35 -0
- package/es/modules/BoardView/components/BoardList/index.js.map +1 -0
- package/es/modules/BoardView/components/BoardList/index.less +39 -0
- package/es/modules/BoardView/components/BoardList/state.d.ts +7 -0
- package/es/modules/BoardView/components/BoardList/state.js +23 -0
- package/es/modules/BoardView/components/BoardList/state.js.map +1 -0
- package/es/modules/BoardView/components/NewTaskForm/index.d.ts +11 -0
- package/es/modules/BoardView/components/NewTaskForm/index.js +66 -0
- package/es/modules/BoardView/components/NewTaskForm/index.js.map +1 -0
- package/es/modules/BoardView/components/NewTaskForm/index.less +91 -0
- package/es/modules/BoardView/components/NewTaskForm/state.d.ts +24 -0
- package/es/modules/BoardView/components/NewTaskForm/state.js +37 -0
- package/es/modules/BoardView/components/NewTaskForm/state.js.map +1 -0
- package/es/modules/BoardView/components/TaskCard/index.d.ts +4 -1
- package/es/modules/BoardView/components/TaskCard/index.js +113 -33
- package/es/modules/BoardView/components/TaskCard/index.js.map +1 -1
- package/es/modules/BoardView/components/TaskCard/index.less +55 -19
- package/es/modules/BoardView/components/TaskCard/state.d.ts +15 -0
- package/es/modules/BoardView/components/TaskCard/state.js +54 -0
- package/es/modules/BoardView/components/TaskCard/state.js.map +1 -0
- package/es/modules/BoardView/components/TaskList/index.d.ts +10 -0
- package/es/modules/BoardView/components/TaskList/index.js +45 -0
- package/es/modules/BoardView/components/TaskList/index.js.map +1 -0
- package/es/modules/BoardView/components/TaskList/state.d.ts +7 -0
- package/es/modules/BoardView/components/TaskList/state.js +23 -0
- package/es/modules/BoardView/components/TaskList/state.js.map +1 -0
- package/es/modules/BoardView/pages/BoardViewList/index.d.ts +2 -2
- package/es/modules/BoardView/pages/BoardViewList/index.js +13 -11
- package/es/modules/BoardView/pages/BoardViewList/index.js.map +1 -1
- package/es/modules/BoardView/pages/BoardViewRoutes.js +1 -1
- package/es/modules/BoardView/pages/BoardViewRoutes.js.map +1 -1
- package/es/modules/calendar/CalendarRoutes.d.ts +11 -0
- package/es/modules/calendar/CalendarRoutes.js +25 -0
- package/es/modules/calendar/CalendarRoutes.js.map +1 -0
- package/es/modules/calendar/pages/CalendarMonth/index.d.ts +7 -0
- package/es/modules/calendar/pages/CalendarMonth/index.js +193 -0
- package/es/modules/calendar/pages/CalendarMonth/index.js.map +1 -0
- package/es/modules/calendar/pages/CalendarMonth/index.less +144 -0
- package/es/modules/calendar/pages/CalendarMonth/state.d.ts +3 -0
- package/es/modules/calendar/pages/CalendarMonth/state.js +12 -0
- package/es/modules/calendar/pages/CalendarMonth/state.js.map +1 -0
- package/es/modules/calendar/pages/CalendarWeek/index.d.ts +0 -0
- package/es/modules/calendar/pages/CalendarWeek/index.js +1 -0
- package/es/modules/calendar/pages/CalendarWeek/index.js.map +1 -0
- package/es/modules/meeting/MeetingRoutes.js +2 -2
- package/es/modules/meeting/MeetingRoutes.js.map +1 -1
- package/es/modules/meeting/components/AgendaList/AgendaItem/components/TaskList/index.d.ts +1 -0
- package/es/modules/meeting/components/AgendaList/AgendaItem/components/TaskList/index.js +4 -4
- package/es/modules/meeting/components/AgendaList/AgendaItem/components/TaskList/index.js.map +1 -1
- package/es/modules/meeting/components/AgendaList/AgendaItem/index.js +1 -2
- package/es/modules/meeting/components/AgendaList/AgendaItem/index.js.map +1 -1
- package/es/modules/meeting/components/AgendaList/AgendaItem/index.less +8 -10
- package/es/modules/meeting/components/AgendaList/index.js +23 -18
- package/es/modules/meeting/components/AgendaList/index.js.map +1 -1
- package/es/modules/meeting/components/AgendaList/index.less +4 -35
- package/es/modules/meeting/components/AgendaList/state.d.ts +1 -1
- package/es/modules/meeting/components/AgendaList/state.js +2 -2
- package/es/modules/meeting/components/MeetingDescription/index.d.ts +6 -0
- package/es/modules/meeting/components/MeetingDescription/index.js +26 -0
- package/es/modules/meeting/components/MeetingDescription/index.js.map +1 -0
- package/es/modules/meeting/components/MeetingDescription/index.less +12 -0
- package/es/modules/meeting/components/MeetingDetail/index.js +24 -45
- package/es/modules/meeting/components/MeetingDetail/index.js.map +1 -1
- package/es/modules/meeting/components/MeetingHeader/index.d.ts +10 -0
- package/es/modules/meeting/components/MeetingHeader/index.js +90 -0
- package/es/modules/meeting/components/MeetingHeader/index.js.map +1 -0
- package/es/modules/meeting/components/MeetingHeader/index.less +26 -0
- package/es/modules/meeting/components/MeetingItem/index.d.ts +0 -1
- package/es/modules/meeting/components/MeetingItem/index.js +5 -54
- package/es/modules/meeting/components/MeetingItem/index.js.map +1 -1
- package/es/modules/meeting/components/MeetingItem/index.less +7 -81
- package/es/modules/meeting/components/MeetingQuickViewDialog/index.d.ts +7 -0
- package/es/modules/meeting/components/MeetingQuickViewDialog/index.js +13 -0
- package/es/modules/meeting/components/MeetingQuickViewDialog/index.js.map +1 -0
- package/es/modules/meeting/components/MeetingQuickViewDialog/index.less +0 -0
- package/es/modules/meeting/pages/MeetingList/index.js +40 -0
- package/es/modules/meeting/pages/MeetingList/index.js.map +1 -0
- package/es/modules/meeting/{components → pages}/MeetingList/state.d.ts +2 -0
- package/es/modules/meeting/{components → pages}/MeetingList/state.js +4 -0
- package/es/modules/meeting/pages/MeetingList/state.js.map +1 -0
- package/es/modules/meeting/pages/MeetingTabView/index.js +26 -38
- package/es/modules/meeting/pages/MeetingTabView/index.js.map +1 -1
- package/es/modules/meeting/pages/MeetingTabView/index.less +4 -0
- package/es/modules/tasks/TasksRoutes.d.ts +0 -6
- package/es/modules/tasks/TasksRoutes.js +3 -11
- package/es/modules/tasks/TasksRoutes.js.map +1 -1
- package/es/modules/tasks/components/SubTaskList/index.js +30 -10
- package/es/modules/tasks/components/SubTaskList/index.js.map +1 -1
- package/es/modules/tasks/components/SubTaskList/index.less +3 -67
- package/es/modules/tasks/components/TaskDescription/index.d.ts +6 -0
- package/es/modules/tasks/components/TaskDescription/index.js +33 -0
- package/es/modules/tasks/components/TaskDescription/index.js.map +1 -0
- package/es/modules/tasks/components/TaskDescription/index.less +11 -0
- package/es/modules/tasks/components/TaskDetail/index.js +21 -57
- package/es/modules/tasks/components/TaskDetail/index.js.map +1 -1
- package/es/modules/tasks/components/TaskHeader/index.d.ts +10 -0
- package/es/modules/tasks/components/TaskHeader/index.js +46 -0
- package/es/modules/tasks/components/TaskHeader/index.js.map +1 -0
- package/es/modules/tasks/components/TaskHeader/index.less +6 -0
- package/es/modules/tasks/components/TaskItem/TaskItem.js +94 -48
- package/es/modules/tasks/components/TaskItem/TaskItem.js.map +1 -1
- package/es/modules/tasks/components/TaskItem/index.less +6 -2
- package/es/modules/tasks/components/TaskItem/state.d.ts +2 -0
- package/es/modules/tasks/components/TaskItem/state.js +8 -0
- package/es/modules/tasks/components/TaskItem/state.js.map +1 -1
- package/es/modules/tasks/components/TaskQuickViewDialog/index.d.ts +7 -0
- package/es/modules/tasks/components/TaskQuickViewDialog/index.js +13 -0
- package/es/modules/tasks/components/TaskQuickViewDialog/index.js.map +1 -0
- package/es/modules/tasks/components/TaskQuickViewDialog/index.less +7 -0
- package/es/modules/tasks/pages/TaskList/index.js +73 -0
- package/es/modules/tasks/pages/TaskList/index.js.map +1 -0
- package/es/modules/tasks/{components → pages}/TaskList/state.d.ts +2 -1
- package/es/modules/tasks/pages/TaskList/state.js.map +1 -0
- package/es/modules/tasks/pages/TaskTabView/index.js +34 -29
- package/es/modules/tasks/pages/TaskTabView/index.js.map +1 -1
- package/es/modules/tasks/pages/TaskTabView/index.less +3 -3
- package/es/modules/tasks/pages/TaskTabView/state.d.ts +0 -1
- package/es/modules/tasks/pages/TaskTabView/state.js +0 -4
- package/es/modules/tasks/pages/TaskTabView/state.js.map +1 -1
- package/package.json +16 -10
- package/es/modules/BoardView/components/AddBoard/index.d.ts +0 -3
- package/es/modules/BoardView/components/AddBoard/index.js +0 -24
- package/es/modules/BoardView/components/AddBoard/index.js.map +0 -1
- package/es/modules/BoardView/components/AddBoard/index.less +0 -48
- package/es/modules/meeting/components/MeetingList/index.js +0 -36
- package/es/modules/meeting/components/MeetingList/index.js.map +0 -1
- package/es/modules/meeting/components/MeetingList/state.js.map +0 -1
- package/es/modules/meeting/pages/MeetingListView/index.d.ts +0 -3
- package/es/modules/meeting/pages/MeetingListView/index.js +0 -8
- package/es/modules/meeting/pages/MeetingListView/index.js.map +0 -1
- package/es/modules/tasks/components/TaskList/index.js +0 -76
- package/es/modules/tasks/components/TaskList/index.js.map +0 -1
- package/es/modules/tasks/components/TaskList/state.js.map +0 -1
- package/es/modules/tasks/pages/TaskDefaultView/index.d.ts +0 -3
- package/es/modules/tasks/pages/TaskDefaultView/index.js +0 -63
- package/es/modules/tasks/pages/TaskDefaultView/index.js.map +0 -1
- package/es/modules/tasks/pages/TaskListView/index.d.ts +0 -3
- package/es/modules/tasks/pages/TaskListView/index.js +0 -9
- package/es/modules/tasks/pages/TaskListView/index.js.map +0 -1
- /package/es/modules/meeting/{components → pages}/MeetingList/index.d.ts +0 -0
- /package/es/modules/tasks/{components → pages}/TaskList/index.d.ts +0 -0
- /package/es/modules/tasks/{components → pages}/TaskList/state.js +0 -0
@@ -0,0 +1,39 @@
|
|
1
|
+
import { EventDispatcher } from "strongly-typed-events";
|
2
|
+
import { useStore } from "@voplus/morpho-data";
|
3
|
+
import { DocumentTypeStore, useDocumentStore } from "@voplus/morpho-document";
|
4
|
+
const StoreName = "BoardStore";
|
5
|
+
/** Board store provides service for board operations */
|
6
|
+
export class BoardStore extends DocumentTypeStore {
|
7
|
+
constructor(endpoint, documents) {
|
8
|
+
super(endpoint, "/boards", documents);
|
9
|
+
/** Board moved event dispatcher */
|
10
|
+
this._boardMoved = new EventDispatcher();
|
11
|
+
/** Name of the store */
|
12
|
+
this.name = StoreName;
|
13
|
+
}
|
14
|
+
/** Event fires when a new board has been moved. */
|
15
|
+
get BoardMovedEvent() {
|
16
|
+
return this._boardMoved.asEvent();
|
17
|
+
}
|
18
|
+
/** drag && drop of sort */
|
19
|
+
async moveAfter(id, afterId) {
|
20
|
+
let r = await this._documents.moveAfter(id, afterId);
|
21
|
+
}
|
22
|
+
/** Move a list of documents to target
|
23
|
+
* @param ids - list of document ids to be moved
|
24
|
+
*/
|
25
|
+
async move(ids, targetId) {
|
26
|
+
if (!targetId)
|
27
|
+
return;
|
28
|
+
let r = await this._documents.move(ids, targetId);
|
29
|
+
const list = r.filter(({ type }) => type === "Board");
|
30
|
+
this.DispatchDeletedEvent(this, r);
|
31
|
+
this._boardMoved.dispatch(targetId, list);
|
32
|
+
}
|
33
|
+
}
|
34
|
+
/** React hook to retrieve BoardStore */
|
35
|
+
export const useBoardStore = () => {
|
36
|
+
const documents = useDocumentStore();
|
37
|
+
return useStore(StoreName, context => new BoardStore(context.api.currentEndPoint, documents));
|
38
|
+
};
|
39
|
+
//# sourceMappingURL=BoardStore.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"BoardStore.js","sourceRoot":"","sources":["../../../src/data/board/BoardStore.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAGxD,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAC/C,OAAO,EAEN,iBAAiB,EAGjB,gBAAgB,EAChB,MAAM,yBAAyB,CAAC;AAIjC,MAAM,SAAS,GAAG,YAAY,CAAC;AAE/B,wDAAwD;AACxD,MAAM,OAAO,UAAW,SAAQ,iBAO/B;IAYA,YAAmB,QAAqB,EAAE,SAAwB;QACjE,KAAK,CAAC,QAAQ,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC;QAZvC,mCAAmC;QAClB,gBAAW,GAAG,IAAI,eAAe,EAAoB,CAAC;QAEvE,wBAAwB;QACR,SAAI,GAAW,SAAS,CAAC;IASzC,CAAC;IAPD,mDAAmD;IACnD,IAAW,eAAe;QACzB,OAAO,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,CAAC;IACnC,CAAC;IAMD,2BAA2B;IACpB,KAAK,CAAC,SAAS,CAAC,EAAU,EAAE,OAAe;QACjD,IAAI,CAAC,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC;IACtD,CAAC;IAED;;OAEG;IACI,KAAK,CAAC,IAAI,CAAC,GAAa,EAAE,QAAgB;QAChD,IAAI,CAAC,QAAQ;YAAE,OAAO;QACtB,IAAI,CAAC,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;QAClD,MAAM,IAAI,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,IAAI,EAAU,EAAE,EAAE,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC;QAC9D,IAAI,CAAC,oBAAoB,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;QACnC,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;IAC3C,CAAC;CACD;AAGD,wCAAwC;AACxC,MAAM,CAAC,MAAM,aAAa,GAAG,GAAG,EAAE;IACjC,MAAM,SAAS,GAAG,gBAAgB,EAAE,CAAC;IACrC,OAAO,QAAQ,CACd,SAAS,EACT,OAAO,CAAC,EAAE,CAAC,IAAI,UAAU,CAAC,OAAO,CAAC,GAAG,CAAC,eAAe,EAAE,SAAS,CAAC,CACjE,CAAC;AACH,CAAC,CAAC"}
|
@@ -0,0 +1,12 @@
|
|
1
|
+
import { LoadDocumentListOptions, LoadDocumentOptions } from "@voplus/morpho-document";
|
2
|
+
import { IBoard } from ".";
|
3
|
+
/** React hook to retrieve a board
|
4
|
+
* @param {string} id - id of the board
|
5
|
+
* @param {LoadTaskOptions} options - options
|
6
|
+
*/
|
7
|
+
export declare const useBoard: (id: string, options?: LoadDocumentOptions | undefined) => IBoard;
|
8
|
+
/** React hook to retrieve a list of boards
|
9
|
+
* @param effect - Effect callback to be ran after successful retrieved the list.
|
10
|
+
* @param options - Optional board list loading options.
|
11
|
+
*/
|
12
|
+
export declare const useBoardListEffect: (effect: (list: IBoard[]) => void, options?: LoadDocumentListOptions | undefined) => void;
|
@@ -0,0 +1,24 @@
|
|
1
|
+
import { useLoadCountedMapItem } from "@voplus/morpho-data";
|
2
|
+
import { useDocumentListLoaderEffect, useDocumentStore } from "@voplus/morpho-document";
|
3
|
+
import { useBoardStore } from ".";
|
4
|
+
/** React hook to retrieve a board
|
5
|
+
* @param {string} id - id of the board
|
6
|
+
* @param {LoadTaskOptions} options - options
|
7
|
+
*/
|
8
|
+
export const useBoard = (id, options) => {
|
9
|
+
options = options ? options : {};
|
10
|
+
const store = useBoardStore();
|
11
|
+
const documents = useDocumentStore();
|
12
|
+
return useLoadCountedMapItem(id, documents.items, () => store.load(id, options), options);
|
13
|
+
};
|
14
|
+
/** React hook to retrieve a list of boards
|
15
|
+
* @param effect - Effect callback to be ran after successful retrieved the list.
|
16
|
+
* @param options - Optional board list loading options.
|
17
|
+
*/
|
18
|
+
export const useBoardListEffect = (effect, options) => {
|
19
|
+
const deps = options ? options : {};
|
20
|
+
const boards = useBoardStore();
|
21
|
+
// Call useDocumentListEffect and ensure won't load twice for same loading options.
|
22
|
+
return useDocumentListLoaderEffect(effect, () => boards.loadList(options), [deps]);
|
23
|
+
};
|
24
|
+
//# sourceMappingURL=hooks.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"hooks.js","sourceRoot":"","sources":["../../../src/data/board/hooks.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAC5D,OAAO,EAGN,2BAA2B,EAC3B,gBAAgB,EAChB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAU,aAAa,EAAE,MAAM,GAAG,CAAC;AAE1C;;;GAGG;AACH,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,EAAU,EAAE,OAA6B,EAAE,EAAE;IACrE,OAAO,GAAG,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAE,EAA0B,CAAC;IAC1D,MAAM,KAAK,GAAG,aAAa,EAAE,CAAC;IAC9B,MAAM,SAAS,GAAG,gBAAgB,EAAE,CAAC;IAErC,OAAO,qBAAqB,CAC3B,EAAE,EACF,SAAS,CAAC,KAAK,EACf,GAAG,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,EAAE,OAAQ,CAAC,EAC9B,OAAO,CACG,CAAC;AACb,CAAC,CAAC;AAGF;;;GAGG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG,CACjC,MAAgC,EAChC,OAAiC,EAChC,EAAE;IACH,MAAM,IAAI,GAAG,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAE,EAA8B,CAAC;IACjE,MAAM,MAAM,GAAG,aAAa,EAAE,CAAC;IAC/B,mFAAmF;IACnF,OAAO,2BAA2B,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC;AACpF,CAAC,CAAC"}
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/data/board/index.ts"],"names":[],"mappings":"AACA,cAAc,cAAc,CAAC;AAC7B,cAAc,SAAS,CAAC"}
|
@@ -0,0 +1,25 @@
|
|
1
|
+
import { IDocument } from "@voplus/morpho-document";
|
2
|
+
import { ITask } from "../task";
|
3
|
+
export interface IContactAvatar {
|
4
|
+
/** Id of the contact */
|
5
|
+
id: string;
|
6
|
+
/** Name of the contact */
|
7
|
+
name: string;
|
8
|
+
/** avatar image url */
|
9
|
+
avatarUrl: string;
|
10
|
+
}
|
11
|
+
export declare type BoardStatus = "Open" | "Pending" | "InProgress" | "Review" | "Ready";
|
12
|
+
export interface IBoard extends IDocument {
|
13
|
+
/** Due date of the board */
|
14
|
+
dueDate?: Date;
|
15
|
+
/** Number of tasks */
|
16
|
+
tasks?: number;
|
17
|
+
/** Number of references */
|
18
|
+
references?: number;
|
19
|
+
}
|
20
|
+
export interface IBoardColumn {
|
21
|
+
/** boardItme of boardColumn */
|
22
|
+
board: IBoard;
|
23
|
+
/** status of the boardColumn */
|
24
|
+
task?: ITask[];
|
25
|
+
}
|
@@ -0,0 +1 @@
|
|
1
|
+
//# sourceMappingURL=interfaces.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"interfaces.js","sourceRoot":"","sources":["../../../src/data/board/interfaces.ts"],"names":[],"mappings":""}
|
@@ -0,0 +1,37 @@
|
|
1
|
+
import Mock from "mockjs";
|
2
|
+
const boardList = Mock.mock({
|
3
|
+
"list|5": [
|
4
|
+
{
|
5
|
+
"id|+1": 11,
|
6
|
+
"name|+1": ["OPEN", "PENDING", "IN PROGRESS", "REIEW", "READY"],
|
7
|
+
type: "board",
|
8
|
+
"status|+1": ["Open", "Pending", "InPRogress", "Reiew", "Ready"],
|
9
|
+
"tasks|0-10": 1
|
10
|
+
}
|
11
|
+
]
|
12
|
+
});
|
13
|
+
const taskList = Mock.mock({
|
14
|
+
"list|1-5": [
|
15
|
+
{
|
16
|
+
// 随机生成1到2个数组元素
|
17
|
+
"name|1": ["Fix routing problems", "Implement pretty URLs", "Document build plans"],
|
18
|
+
"id|+1": 1,
|
19
|
+
"tasks|0-10": 1,
|
20
|
+
"comments|0-10": 1,
|
21
|
+
"documents|0-10": 1,
|
22
|
+
"status|1": ["Draft", "Normal", "Readonly", "Archived", "Deleted"],
|
23
|
+
"flag|1": ["None", "Star", "Urgent"],
|
24
|
+
"label|0-1": ["very critical", "project"],
|
25
|
+
startDate: '@date("yyyy-MM-dd")',
|
26
|
+
dueDate: '@date("yyyy-MM-dd")',
|
27
|
+
"members|0-10": [
|
28
|
+
{
|
29
|
+
"id|+1": 10,
|
30
|
+
name: "@last"
|
31
|
+
}
|
32
|
+
]
|
33
|
+
}
|
34
|
+
]
|
35
|
+
});
|
36
|
+
export { boardList, taskList };
|
37
|
+
//# sourceMappingURL=mock.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"mock.js","sourceRoot":"","sources":["../../../src/data/board/mock.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,QAAQ,CAAC;AAE1B,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC;IAC3B,QAAQ,EAAE;QACT;YACC,OAAO,EAAE,EAAE;YACX,SAAS,EAAE,CAAC,MAAM,EAAE,SAAS,EAAE,aAAa,EAAE,OAAO,EAAE,OAAO,CAAC;YAC/D,IAAI,EAAE,OAAO;YACb,WAAW,EAAE,CAAC,MAAM,EAAE,SAAS,EAAE,YAAY,EAAE,OAAO,EAAE,OAAO,CAAC;YAChE,YAAY,EAAE,CAAC;SACf;KACD;CACD,CAAC,CAAC;AAEH,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC;IAC1B,UAAU,EAAE;QACX;YACC,eAAe;YACf,QAAQ,EAAE,CAAC,sBAAsB,EAAE,uBAAuB,EAAE,sBAAsB,CAAC;YACnF,OAAO,EAAE,CAAC;YACV,YAAY,EAAE,CAAC;YACf,eAAe,EAAE,CAAC;YAClB,gBAAgB,EAAE,CAAC;YACnB,UAAU,EAAE,CAAC,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,UAAU,EAAE,SAAS,CAAC;YAClE,QAAQ,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,CAAC;YACpC,WAAW,EAAE,CAAC,eAAe,EAAE,SAAS,CAAC;YACzC,SAAS,EAAE,qBAAqB;YAChC,OAAO,EAAE,qBAAqB;YAC9B,cAAc,EAAE;gBACf;oBACC,OAAO,EAAE,EAAE;oBACX,IAAI,EAAE,OAAO;iBACb;aACD;SACD;KACD;CACD,CAAC,CAAC;AAEH,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,CAAC"}
|
@@ -0,0 +1,14 @@
|
|
1
|
+
/** Custom create board options type. Use TitleCase to fit server need. */
|
2
|
+
export declare type CreateBoardOptions = {
|
3
|
+
ParentId?: string;
|
4
|
+
Name: string;
|
5
|
+
Description?: string;
|
6
|
+
StartDate?: Date;
|
7
|
+
DueDate?: Date;
|
8
|
+
};
|
9
|
+
/**
|
10
|
+
* Custom edit board options type. Use TitleCase to fit server need.
|
11
|
+
*/
|
12
|
+
export declare type EditBoardOptions = {
|
13
|
+
Name?: string;
|
14
|
+
};
|
@@ -0,0 +1 @@
|
|
1
|
+
//# sourceMappingURL=types.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/data/board/types.ts"],"names":[],"mappings":""}
|
@@ -1,232 +1,57 @@
|
|
1
1
|
import { faEllipsisH, faPlus } from "@fortawesome/pro-light-svg-icons";
|
2
2
|
import { FontAwesomeIcon as FAIcon } from "@fortawesome/react-fontawesome";
|
3
|
+
import { Checkbox, Input, Spin } from "@voplus/antd";
|
3
4
|
import DocumentMenu from "@voplus/morpho-document/es/components/DocumentMenu";
|
4
5
|
import Card from "@voplus/morpho-ui/es/controls/Card";
|
5
|
-
import
|
6
|
-
import React from "react";
|
7
|
-
import
|
8
|
-
import
|
6
|
+
import { useObserver } from "mobx-react-lite";
|
7
|
+
import React, { useState } from "react";
|
8
|
+
import { useBoard, useBoardStore } from "../../../../data/board";
|
9
|
+
import TaskList from "../TaskList";
|
9
10
|
import styles from "./index.less";
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
name: "William Lim"
|
33
|
-
},
|
34
|
-
{
|
35
|
-
id: "3",
|
36
|
-
name: "Yu Shui Dan"
|
37
|
-
}
|
38
|
-
]
|
39
|
-
},
|
40
|
-
{
|
41
|
-
id: "002",
|
42
|
-
tasks: 1,
|
43
|
-
comments: 0,
|
44
|
-
documents: 5,
|
45
|
-
status: "general",
|
46
|
-
name: "Implement pretty URLs",
|
47
|
-
startDate: "2019-11-19T04:30:06.544",
|
48
|
-
dueDate: "2019-11-23T04:30:08.786",
|
49
|
-
label: ["very critical"],
|
50
|
-
type: "Task",
|
51
|
-
members: [
|
52
|
-
{
|
53
|
-
id: "1",
|
54
|
-
name: "Karen Tng"
|
55
|
-
},
|
56
|
-
{
|
57
|
-
id: "3",
|
58
|
-
name: "Yu Shui Dan"
|
59
|
-
}
|
60
|
-
]
|
61
|
-
},
|
62
|
-
{
|
63
|
-
id: "003",
|
64
|
-
tasks: 1,
|
65
|
-
comments: 0,
|
66
|
-
documents: 5,
|
67
|
-
status: "general",
|
68
|
-
name: "Document build plans",
|
69
|
-
startDate: "2019-11-19T04:30:06.544",
|
70
|
-
dueDate: "2019-11-23T04:30:08.786",
|
71
|
-
label: ["very critical"],
|
72
|
-
type: "Task",
|
73
|
-
members: [
|
74
|
-
{
|
75
|
-
id: "1",
|
76
|
-
name: "Karen Tng"
|
77
|
-
},
|
78
|
-
{
|
79
|
-
id: "3",
|
80
|
-
name: "Yu Shui Dan"
|
81
|
-
}
|
82
|
-
]
|
83
|
-
}
|
84
|
-
]
|
85
|
-
},
|
86
|
-
{
|
87
|
-
name: "PENDING",
|
88
|
-
list: [
|
89
|
-
{
|
90
|
-
id: "001",
|
91
|
-
tasks: 1,
|
92
|
-
comments: 0,
|
93
|
-
documents: 5,
|
94
|
-
status: "important",
|
95
|
-
name: "Bug report",
|
96
|
-
startDate: "2019-11-19T04:30:06.544",
|
97
|
-
dueDate: "2019-11-23T04:30:08.786",
|
98
|
-
label: [],
|
99
|
-
members: [
|
100
|
-
{
|
101
|
-
id: "1",
|
102
|
-
name: "Karen Tng"
|
103
|
-
},
|
104
|
-
{
|
105
|
-
id: "2",
|
106
|
-
name: "William Lim"
|
107
|
-
},
|
108
|
-
{
|
109
|
-
id: "3",
|
110
|
-
name: "Yu Shui Dan"
|
111
|
-
}
|
112
|
-
]
|
113
|
-
},
|
114
|
-
{
|
115
|
-
id: "002",
|
116
|
-
tasks: 1,
|
117
|
-
comments: 0,
|
118
|
-
documents: 5,
|
119
|
-
status: "general",
|
120
|
-
name: "Custormer request",
|
121
|
-
startDate: "2019-11-19T04:30:06.544",
|
122
|
-
dueDate: "2019-11-23T04:30:08.786",
|
123
|
-
label: ["very critical"],
|
124
|
-
type: "Task",
|
125
|
-
members: [
|
126
|
-
{
|
127
|
-
id: "1",
|
128
|
-
name: "Karen Tng"
|
129
|
-
},
|
130
|
-
{
|
131
|
-
id: "3",
|
132
|
-
name: "Yu Shui Dan"
|
133
|
-
}
|
134
|
-
]
|
135
|
-
}
|
136
|
-
]
|
137
|
-
},
|
138
|
-
{
|
139
|
-
name: "IN PROGRESS",
|
140
|
-
list: [
|
141
|
-
{
|
142
|
-
id: "001",
|
143
|
-
tasks: 1,
|
144
|
-
comments: 0,
|
145
|
-
documents: 5,
|
146
|
-
status: "important",
|
147
|
-
name: "Fix routing problems",
|
148
|
-
startDate: "2019-11-19T04:30:06.544",
|
149
|
-
dueDate: "2019-11-23T04:30:08.786",
|
150
|
-
label: [],
|
151
|
-
members: [
|
152
|
-
{
|
153
|
-
id: "1",
|
154
|
-
name: "Karen Tng"
|
155
|
-
},
|
156
|
-
{
|
157
|
-
id: "2",
|
158
|
-
name: "William Lim"
|
159
|
-
},
|
160
|
-
{
|
161
|
-
id: "3",
|
162
|
-
name: "Yu Shui Dan"
|
163
|
-
}
|
164
|
-
]
|
165
|
-
},
|
166
|
-
{
|
167
|
-
id: "002",
|
168
|
-
tasks: 1,
|
169
|
-
comments: 0,
|
170
|
-
documents: 5,
|
171
|
-
status: "general",
|
172
|
-
name: "Implement pretty URLs",
|
173
|
-
startDate: "2019-11-19T04:30:06.544",
|
174
|
-
dueDate: "2019-11-23T04:30:08.786",
|
175
|
-
label: ["very critical"],
|
176
|
-
type: "Task",
|
177
|
-
members: [
|
178
|
-
{
|
179
|
-
id: "1",
|
180
|
-
name: "Karen Tng"
|
181
|
-
},
|
182
|
-
{
|
183
|
-
id: "3",
|
184
|
-
name: "Yu Shui Dan"
|
185
|
-
}
|
186
|
-
]
|
187
|
-
}
|
188
|
-
]
|
189
|
-
},
|
190
|
-
{
|
191
|
-
name: "REIEW",
|
192
|
-
list: [
|
193
|
-
{
|
194
|
-
id: "001",
|
195
|
-
tasks: 1,
|
196
|
-
comments: 0,
|
197
|
-
documents: 5,
|
198
|
-
status: "important",
|
199
|
-
name: "Fix routing problems",
|
200
|
-
startDate: "2019-11-19T04:30:06.544",
|
201
|
-
dueDate: "2019-11-23T04:30:08.786",
|
202
|
-
label: ["project"],
|
203
|
-
members: []
|
204
|
-
}
|
205
|
-
]
|
206
|
-
},
|
207
|
-
{
|
208
|
-
name: "READY",
|
209
|
-
list: []
|
11
|
+
import { State } from "./state";
|
12
|
+
const BoardColumn = (props) => {
|
13
|
+
const boardStore = useBoardStore();
|
14
|
+
const [state] = useState(new State());
|
15
|
+
state.board = useBoard(props.id);
|
16
|
+
const onAddTaskAble = (addAble) => {
|
17
|
+
state.AddTaskAble = addAble;
|
18
|
+
};
|
19
|
+
const onEdit = () => {
|
20
|
+
state.name = state.board.name;
|
21
|
+
state.editable = !state.editable;
|
22
|
+
};
|
23
|
+
const onDelete = async () => {
|
24
|
+
await boardStore.delete([state.board.id], { DeleteChilds: true });
|
25
|
+
};
|
26
|
+
const onSave = async () => {
|
27
|
+
if (!state.name)
|
28
|
+
return;
|
29
|
+
const noChange = state.name.trim() === state.board.name;
|
30
|
+
// 有变更才保存
|
31
|
+
if (!noChange) {
|
32
|
+
await boardStore.edit(state.board.id, { Name: state.name });
|
210
33
|
}
|
211
|
-
|
212
|
-
|
213
|
-
|
214
|
-
|
215
|
-
|
216
|
-
|
217
|
-
|
218
|
-
|
219
|
-
|
220
|
-
|
221
|
-
|
222
|
-
|
223
|
-
React.createElement(
|
224
|
-
|
225
|
-
|
226
|
-
|
227
|
-
|
228
|
-
|
229
|
-
|
230
|
-
|
34
|
+
state.editable = false;
|
35
|
+
};
|
36
|
+
const onCheckAllChange = (e) => {
|
37
|
+
state.checkAll = e.target.checked;
|
38
|
+
state.multiple = e.target.checked;
|
39
|
+
};
|
40
|
+
const onCheck = (checkAll) => {
|
41
|
+
state.checkAll = checkAll;
|
42
|
+
};
|
43
|
+
return useObserver(() => (React.createElement("div", { className: styles["board-column"] },
|
44
|
+
React.createElement(Card, { className: "content-top", padding: "0 15px", style: { borderTop: ` solid 2px ${props.colorStyle}` } },
|
45
|
+
React.createElement("div", { className: "board-name" },
|
46
|
+
state.checked && React.createElement(Checkbox, { onChange: onCheckAllChange, checked: state.checkAll }),
|
47
|
+
state.editable ? (React.createElement(Spin, { spinning: state.loading },
|
48
|
+
React.createElement(Input.TextArea, { autosize: true, autoFocus: true, value: state.name, onChange: e => (state.name = e.target.value) }))) : (React.createElement("div", { className: "task-card-title" }, state.board.name)),
|
49
|
+
!state.editable && React.createElement("span", { className: "board-length" }, state.board.tasks)),
|
50
|
+
React.createElement("div", { className: "board-control" },
|
51
|
+
React.createElement(DocumentMenu, { icon: faEllipsisH, onEdit: onEdit, onDelete: onDelete }),
|
52
|
+
React.createElement("span", { onClick: () => (state.AddTaskAble = !state.AddTaskAble) },
|
53
|
+
React.createElement(FAIcon, { style: { marginLeft: "15px", color: props.colorStyle }, icon: faPlus })))),
|
54
|
+
React.createElement(TaskList, { id: state.board.id, checked: state.checked, checkAll: state.multiple, onCheck: onCheck, addAble: state.AddTaskAble, onAddAble: onAddTaskAble }))));
|
231
55
|
};
|
56
|
+
export default BoardColumn;
|
232
57
|
//# sourceMappingURL=index.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/modules/BoardView/components/BoardColumn/index.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,kCAAkC,CAAC;AACvE,OAAO,EAAE,eAAe,IAAI,MAAM,EAAE,MAAM,gCAAgC,CAAC;AAC3E,OAAO,
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/modules/BoardView/components/BoardColumn/index.tsx"],"names":[],"mappings":"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"}
|