@voplus/morpho-workspace 11.1.0 → 11.2.0
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/AutoSequenceDialog/index.js +1 -1
- package/es/components/AutoSequenceDialog/index.js.map +1 -1
- package/es/components/TeamTaskList/index.js +1 -1
- package/es/components/TeamTaskList/index.js.map +1 -1
- package/es/controls/filters/AssigneeViewFilter/index.js +4 -12
- package/es/controls/filters/AssigneeViewFilter/index.js.map +1 -1
- package/es/controls/filters/EventsFilter/state.js +1 -6
- package/es/controls/filters/EventsFilter/state.js.map +1 -1
- package/es/controls/filters/TaskStatusFilter/state.js +1 -6
- package/es/controls/filters/TaskStatusFilter/state.js.map +1 -1
- package/es/controls/filters/WorkStatusFilter/state.js +1 -6
- package/es/controls/filters/WorkStatusFilter/state.js.map +1 -1
- package/es/controls/filters/WorkTypeStatusFilter/state.js +1 -6
- package/es/controls/filters/WorkTypeStatusFilter/state.js.map +1 -1
- package/es/controls/filters/WorkTypesFilter/state.js +1 -6
- package/es/controls/filters/WorkTypesFilter/state.js.map +1 -1
- package/es/data/board/hooks.js.map +1 -1
- package/es/data/calendar/CalendarStore.js +1 -1
- package/es/data/calendar/CalendarStore.js.map +1 -1
- package/es/data/calendar/hooks.js.map +1 -1
- package/es/data/meeting/MeetingStore.js.map +1 -1
- package/es/data/meeting/hooks.js.map +1 -1
- package/es/data/notification/NotificationStore.js.map +1 -1
- package/es/data/notification/hooks.js.map +1 -1
- package/es/data/notification-workspace/NotificationStore.js.map +1 -1
- package/es/data/notification-workspace/hooks.js.map +1 -1
- package/es/data/reports/useEstimatedTimeEffect.js.map +1 -1
- package/es/data/reports/useTaskSummaryEffect.js.map +1 -1
- package/es/data/work/hook.js.map +1 -1
- package/es/data/work-report/WorkReportStore.js.map +1 -1
- package/es/data/work-schedule/WorkScheduleStore.js.map +1 -1
- package/es/data/work-schedule/hooks.js.map +1 -1
- package/es/data/workerror/WorkErrorStore.js.map +1 -1
- package/es/data/workerror/hook.js.map +1 -1
- package/es/data/workspace/WorkSpaceStore.js.map +1 -1
- package/es/data/workspace/hooks.js.map +1 -1
- package/es/data/worktype/WorkTypeStore.js.map +1 -1
- package/es/data/worktype/hook.js.map +1 -1
- package/es/modules/Routes.d.ts +6 -0
- package/es/modules/Routes.js +13 -0
- package/es/modules/Routes.js.map +1 -1
- package/es/modules/board/components/Board/index.js +2 -3
- package/es/modules/board/components/Board/index.js.map +1 -1
- package/es/modules/board/components/BoardColumn/index.js +1 -1
- package/es/modules/board/components/BoardColumn/index.js.map +1 -1
- package/es/modules/board/components/NewBoardColumnDialog/index.js +1 -1
- package/es/modules/board/components/NewBoardColumnDialog/index.js.map +1 -1
- package/es/modules/board/components/SubDocumentList/index.js +1 -1
- package/es/modules/board/components/SubDocumentList/index.js.map +1 -1
- package/es/modules/calendar/pages/CalendarMonth/index.d.ts +1 -0
- package/es/modules/calendar/pages/CalendarMonth/index.js +15 -1
- package/es/modules/calendar/pages/CalendarMonth/index.js.map +1 -1
- package/es/modules/calendar-board/CalendarBoardRoutes.d.ts +12 -0
- package/es/modules/calendar-board/CalendarBoardRoutes.js +28 -0
- package/es/modules/calendar-board/CalendarBoardRoutes.js.map +1 -0
- package/es/modules/calendar-board/components/CalendarBoardGrid/index.d.ts +45 -0
- package/es/modules/calendar-board/components/CalendarBoardGrid/index.js +48 -0
- package/es/modules/calendar-board/components/CalendarBoardGrid/index.js.map +1 -0
- package/es/modules/calendar-board/components/CalendarEventChip/index.d.ts +22 -0
- package/es/modules/calendar-board/components/CalendarEventChip/index.js +20 -0
- package/es/modules/calendar-board/components/CalendarEventChip/index.js.map +1 -0
- package/es/modules/calendar-board/components/CalendarLegend/index.d.ts +37 -0
- package/es/modules/calendar-board/components/CalendarLegend/index.js +81 -0
- package/es/modules/calendar-board/components/CalendarLegend/index.js.map +1 -0
- package/es/modules/calendar-board/components/CalendarMoreLink/index.d.ts +11 -0
- package/es/modules/calendar-board/components/CalendarMoreLink/index.js +12 -0
- package/es/modules/calendar-board/components/CalendarMoreLink/index.js.map +1 -0
- package/es/modules/calendar-board/components/CalendarSidebar/index.d.ts +27 -0
- package/es/modules/calendar-board/components/CalendarSidebar/index.js +43 -0
- package/es/modules/calendar-board/components/CalendarSidebar/index.js.map +1 -0
- package/es/modules/calendar-board/components/CalendarToolbar/index.d.ts +23 -0
- package/es/modules/calendar-board/components/CalendarToolbar/index.js +28 -0
- package/es/modules/calendar-board/components/CalendarToolbar/index.js.map +1 -0
- package/es/modules/calendar-board/event-meta.d.ts +160 -0
- package/es/modules/calendar-board/event-meta.js +209 -0
- package/es/modules/calendar-board/event-meta.js.map +1 -0
- package/es/modules/calendar-board/pages/CalendarBoard/index.css +262 -0
- package/es/modules/calendar-board/pages/CalendarBoard/index.d.ts +4 -0
- package/es/modules/calendar-board/pages/CalendarBoard/index.js +181 -0
- package/es/modules/calendar-board/pages/CalendarBoard/index.js.map +1 -0
- package/es/modules/calendar-board/pages/CalendarBoard/state.d.ts +116 -0
- package/es/modules/calendar-board/pages/CalendarBoard/state.js +232 -0
- package/es/modules/calendar-board/pages/CalendarBoard/state.js.map +1 -0
- package/es/modules/calendar-board/sidebar-data.d.ts +27 -0
- package/es/modules/calendar-board/sidebar-data.js +19 -0
- package/es/modules/calendar-board/sidebar-data.js.map +1 -0
- package/es/modules/meeting/components/AgendaList/AgendaItem/components/TaskList/index.js +1 -1
- package/es/modules/meeting/components/AgendaList/AgendaItem/components/TaskList/index.js.map +1 -1
- package/es/modules/meeting/components/AgendaList/AgendaNewForm/index.js +1 -1
- package/es/modules/meeting/components/AgendaList/AgendaNewForm/index.js.map +1 -1
- package/es/modules/meeting/components/AgendaList/index.js +1 -1
- package/es/modules/meeting/components/AgendaList/index.js.map +1 -1
- package/es/modules/meeting/components/MeetingHeader/index.js +2 -2
- package/es/modules/meeting/components/MeetingHeader/index.js.map +1 -1
- package/es/modules/meeting/components/MeetingProperties/index.js +1 -1
- package/es/modules/meeting/components/MeetingProperties/index.js.map +1 -1
- package/es/modules/meeting/components/NewMeetingForm/index.js +2 -2
- package/es/modules/meeting/components/NewMeetingForm/index.js.map +1 -1
- package/es/modules/my-document/DocumentViewContext.js.map +1 -1
- package/es/modules/my-document/SectionTemplate/DocumentTableUI/index.js.map +1 -1
- package/es/modules/notification/components/NewNotificationForm/NotificationForm.js +2 -2
- package/es/modules/notification/components/NewNotificationForm/NotificationForm.js.map +1 -1
- package/es/modules/notification/components/NotificationTabs/index.js +1 -2
- package/es/modules/notification/components/NotificationTabs/index.js.map +1 -1
- package/es/modules/notification/controls/NotificationStatusFilter/state.js +1 -6
- package/es/modules/notification/controls/NotificationStatusFilter/state.js.map +1 -1
- package/es/modules/notification-workspace/components/NotificationList/index.js +1 -5
- package/es/modules/notification-workspace/components/NotificationList/index.js.map +1 -1
- package/es/modules/project/data/hook.js.map +1 -1
- package/es/modules/tasks/components/AddTaskDropdown/index.js +1 -2
- package/es/modules/tasks/components/AddTaskDropdown/index.js.map +1 -1
- package/es/modules/tasks/components/DelegateDialog/index.js +2 -3
- package/es/modules/tasks/components/DelegateDialog/index.js.map +1 -1
- package/es/modules/tasks/components/NewTaskForm/NewTaskFormDialog.js +4 -5
- package/es/modules/tasks/components/NewTaskForm/NewTaskFormDialog.js.map +1 -1
- package/es/modules/tasks/components/NewTaskForm/index.js +2 -5
- package/es/modules/tasks/components/NewTaskForm/index.js.map +1 -1
- package/es/modules/tasks/components/NotificationNewTaskForm/index.js +1 -1
- package/es/modules/tasks/components/NotificationNewTaskForm/index.js.map +1 -1
- package/es/modules/tasks/components/SubTaskList/index.js +2 -2
- package/es/modules/tasks/components/SubTaskList/index.js.map +1 -1
- package/es/modules/tasks/components/TaskCheckActiveTab/index.js +5 -5
- package/es/modules/tasks/components/TaskCheckActiveTab/index.js.map +1 -1
- package/es/modules/tasks/components/TaskCheckDoneTab/index.js.map +1 -1
- package/es/modules/tasks/components/TaskCheckItem/index.js +7 -14
- package/es/modules/tasks/components/TaskCheckItem/index.js.map +1 -1
- package/es/modules/tasks/components/TaskCheckList/index.js.map +1 -1
- package/es/modules/tasks/components/TaskCheckNewForm/index.js +1 -1
- package/es/modules/tasks/components/TaskCheckNewForm/index.js.map +1 -1
- package/es/modules/tasks/components/TaskEstimatedTime/index.js +1 -1
- package/es/modules/tasks/components/TaskEstimatedTime/index.js.map +1 -1
- package/es/modules/tasks/components/TaskEstimatedTime/state.js.map +1 -1
- package/es/modules/tasks/components/TaskItem/DefaultTaskItem.js +4 -9
- package/es/modules/tasks/components/TaskItem/DefaultTaskItem.js.map +1 -1
- package/es/modules/tasks/components/TaskItem/SubTaskItem.js +2 -2
- package/es/modules/tasks/components/TaskItem/SubTaskItem.js.map +1 -1
- package/es/modules/tasks/components/TaskItem/state.js +1 -3
- package/es/modules/tasks/components/TaskItem/state.js.map +1 -1
- package/es/modules/tasks/components/TaskProperties/index.js +2 -4
- package/es/modules/tasks/components/TaskProperties/index.js.map +1 -1
- package/es/modules/tasks/components/TaskSimpleProperties/index.js +3 -5
- package/es/modules/tasks/components/TaskSimpleProperties/index.js.map +1 -1
- package/es/modules/tasks/components/TaskTabs/index.js +1 -2
- package/es/modules/tasks/components/TaskTabs/index.js.map +1 -1
- package/es/modules/tasks/components/task-check/TaskCheckDoneTab/index.js.map +1 -1
- package/es/modules/tasks/components/task-check/TaskCheckNewForm/index.js +1 -1
- package/es/modules/tasks/components/task-check/TaskCheckNewForm/index.js.map +1 -1
- package/es/modules/tasks/components/task-check/TaskCheckTableCard/TableCell.js +3 -5
- package/es/modules/tasks/components/task-check/TaskCheckTableCard/TableCell.js.map +1 -1
- package/es/modules/tasks/components/task-check/TaskCheckTableList/index.js.map +1 -1
- package/es/modules/tasks/controls/DueDateToolBar/index.js +4 -9
- package/es/modules/tasks/controls/DueDateToolBar/index.js.map +1 -1
- package/es/modules/tasks/controls/TaskStatusDataIcon/index.js +4 -9
- package/es/modules/tasks/controls/TaskStatusDataIcon/index.js.map +1 -1
- package/es/modules/tasks/pages/TaskList/index.js +1 -1
- package/es/modules/tasks/pages/TaskList/index.js.map +1 -1
- package/es/modules/tasks/pages/TaskTabView/index.js +2 -4
- package/es/modules/tasks/pages/TaskTabView/index.js.map +1 -1
- package/es/modules/work/components/NewWorkForm/index.js +3 -5
- package/es/modules/work/components/NewWorkForm/index.js.map +1 -1
- package/es/modules/work/components/RelatedWorkList/RelatedWorkList.js +1 -2
- package/es/modules/work/components/RelatedWorkList/RelatedWorkList.js.map +1 -1
- package/es/modules/work/components/WorkList/index.js +1 -1
- package/es/modules/work/components/WorkList/index.js.map +1 -1
- package/es/modules/work/components/WorkTableCard/index.js.map +1 -1
- package/es/modules/work/components/WorkTableListCard/TableCell.js +9 -13
- package/es/modules/work/components/WorkTableListCard/TableCell.js.map +1 -1
- package/es/modules/work/components/WorkTableListCard/index.js.map +1 -1
- package/es/modules/work/components/WorkTableListCardPage/index.js.map +1 -1
- package/es/modules/work/components/WorkTabs/index.js +1 -2
- package/es/modules/work/components/WorkTabs/index.js.map +1 -1
- package/es/modules/work/components/WorksProperties/index.js +2 -2
- package/es/modules/work/components/WorksProperties/index.js.map +1 -1
- package/es/modules/work/controls/WorkMenu/item/Accept.js +2 -5
- package/es/modules/work/controls/WorkMenu/item/Accept.js.map +1 -1
- package/es/modules/work/controls/WorkMenu/item/Reject.js +2 -5
- package/es/modules/work/controls/WorkMenu/item/Reject.js.map +1 -1
- package/es/modules/work/controls/WorkMenu/item/Send.js +4 -7
- package/es/modules/work/controls/WorkMenu/item/Send.js.map +1 -1
- package/es/modules/work/controls/WorkMenu/item/Took.js +2 -5
- package/es/modules/work/controls/WorkMenu/item/Took.js.map +1 -1
- package/es/modules/work/controls/WorkStatusDataIcon/index.js +4 -8
- package/es/modules/work/controls/WorkStatusDataIcon/index.js.map +1 -1
- package/es/modules/work/work-error/components/NewWorkErrorDialog/index.js +1 -1
- package/es/modules/work/work-error/components/NewWorkErrorDialog/index.js.map +1 -1
- package/es/modules/work/work-error/components/WorkErrorProperties/index.js +7 -9
- package/es/modules/work/work-error/components/WorkErrorProperties/index.js.map +1 -1
- package/es/modules/work/work-error/components/WorkErrorTabs/index.js +1 -2
- package/es/modules/work/work-error/components/WorkErrorTabs/index.js.map +1 -1
- package/es/modules/work/work-schedule/components/NewWorkScheduleForm/index.js +3 -5
- package/es/modules/work/work-schedule/components/NewWorkScheduleForm/index.js.map +1 -1
- package/es/modules/work/work-schedule/components/WorkScheduleProperties/index.js +7 -9
- package/es/modules/work/work-schedule/components/WorkScheduleProperties/index.js.map +1 -1
- package/es/modules/work/work-schedule/components/WorkScheduleTabs/index.js +1 -2
- package/es/modules/work/work-schedule/components/WorkScheduleTabs/index.js.map +1 -1
- package/es/modules/work/work-schedule/controls/WorkScheduleMenu/item/LinkWork.js +5 -7
- package/es/modules/work/work-schedule/controls/WorkScheduleMenu/item/LinkWork.js.map +1 -1
- package/es/modules/work/work-type/components/ChangeWorkDefaultFolderDialog/index.js +3 -5
- package/es/modules/work/work-type/components/ChangeWorkDefaultFolderDialog/index.js.map +1 -1
- package/es/modules/work/work-type/components/NewTypeForm/index.js +1 -1
- package/es/modules/work/work-type/components/NewTypeForm/index.js.map +1 -1
- package/es/modules/work/work-type/components/WorkTypeProperties/Properties.js +3 -5
- package/es/modules/work/work-type/components/WorkTypeProperties/Properties.js.map +1 -1
- package/es/modules/work/work-type/components/WorkTypeQA/index.js +1 -1
- package/es/modules/work/work-type/components/WorkTypeQA/index.js.map +1 -1
- package/es/modules/work/work-type/pages/WorkTypePage/index.js +1 -2
- package/es/modules/work/work-type/pages/WorkTypePage/index.js.map +1 -1
- package/es/modules/workspace/components/NewWorkspaceDialog/index.js +1 -1
- package/es/modules/workspace/components/NewWorkspaceDialog/index.js.map +1 -1
- package/es/obsolete/BoardPropertiesView/index.d.ts +9 -0
- package/es/obsolete/BoardPropertiesView/index.js +45 -0
- package/es/obsolete/BoardPropertiesView/index.js.map +1 -0
- package/es/obsolete/NotificationItem/index.css +21 -0
- package/es/obsolete/NotificationItem/index.d.ts +6 -0
- package/es/obsolete/NotificationItem/index.js +34 -0
- package/es/obsolete/NotificationItem/index.js.map +1 -0
- package/es/obsolete/NotificationList2/index.css +9 -0
- package/es/obsolete/NotificationList2/index.d.ts +13 -0
- package/es/obsolete/NotificationList2/index.js +50 -0
- package/es/obsolete/NotificationList2/index.js.map +1 -0
- package/es/obsolete/WorkTypeDefaultView/index.css +17 -0
- package/es/obsolete/WorkTypeDefaultView/index.d.ts +4 -0
- package/es/obsolete/WorkTypeDefaultView/index.js +32 -0
- package/es/obsolete/WorkTypeDefaultView/index.js.map +1 -0
- package/es/obsolete/WorkTypePage/Dashboard.d.ts +6 -0
- package/es/obsolete/WorkTypePage/Dashboard.js +18 -0
- package/es/obsolete/WorkTypePage/Dashboard.js.map +1 -0
- package/es/obsolete/WorkTypePage/Summary.d.ts +6 -0
- package/es/obsolete/WorkTypePage/Summary.js +21 -0
- package/es/obsolete/WorkTypePage/Summary.js.map +1 -0
- package/es/obsolete/WorkTypePage/WorkListPage.d.ts +7 -0
- package/es/obsolete/WorkTypePage/WorkListPage.js +25 -0
- package/es/obsolete/WorkTypePage/WorkListPage.js.map +1 -0
- package/es/obsolete/WorkTypePage/WorkTypeDescriptionCard.d.ts +5 -0
- package/es/obsolete/WorkTypePage/WorkTypeDescriptionCard.js +14 -0
- package/es/obsolete/WorkTypePage/WorkTypeDescriptionCard.js.map +1 -0
- package/es/obsolete/WorkTypePage/index.css +50 -0
- package/es/obsolete/WorkTypePage/index.d.ts +4 -0
- package/es/obsolete/WorkTypePage/index.js +180 -0
- package/es/obsolete/WorkTypePage/index.js.map +1 -0
- package/es/obsolete/WorkTypePage/state.d.ts +16 -0
- package/es/obsolete/WorkTypePage/state.js +163 -0
- package/es/obsolete/WorkTypePage/state.js.map +1 -0
- package/es/obsolete/WorkTypeQA/index.css +38 -0
- package/es/obsolete/WorkTypeQA/index.d.ts +6 -0
- package/es/obsolete/WorkTypeQA/index.js +40 -0
- package/es/obsolete/WorkTypeQA/index.js.map +1 -0
- package/es/obsolete/WorkTypeQA/state.d.ts +17 -0
- package/es/obsolete/WorkTypeQA/state.js +133 -0
- package/es/obsolete/WorkTypeQA/state.js.map +1 -0
- package/es/obsolete/member/components/MemberDropdown.d.ts +5 -0
- package/es/obsolete/member/components/MemberDropdown.js +15 -0
- package/es/obsolete/member/components/MemberDropdown.js.map +1 -0
- package/es/obsolete/member/components/MemberList.d.ts +7 -0
- package/es/obsolete/member/components/MemberList.js +27 -0
- package/es/obsolete/member/components/MemberList.js.map +1 -0
- package/es/obsolete/member/components/MemberMenu.d.ts +7 -0
- package/es/obsolete/member/components/MemberMenu.js +15 -0
- package/es/obsolete/member/components/MemberMenu.js.map +1 -0
- package/es/obsolete/member/components/MemberSelect.d.ts +5 -0
- package/es/obsolete/member/components/MemberSelect.js +11 -0
- package/es/obsolete/member/components/MemberSelect.js.map +1 -0
- package/es/obsolete/member/components/member.css +25 -0
- package/es/obsolete/member/pages/MemberListView/index.d.ts +4 -0
- package/es/obsolete/member/pages/MemberListView/index.js +227 -0
- package/es/obsolete/member/pages/MemberListView/index.js.map +1 -0
- package/es/obsolete/member/pages/MemberRoutes.d.ts +2 -0
- package/es/obsolete/member/pages/MemberRoutes.js +25 -0
- package/es/obsolete/member/pages/MemberRoutes.js.map +1 -0
- package/es/obsolete/member/styles/MemberMinView.css +22 -0
- package/es/obsolete/space/components/Notes/ColorSelect/index.css +15 -0
- package/es/obsolete/space/components/Notes/ColorSelect/index.d.ts +10 -0
- package/es/obsolete/space/components/Notes/ColorSelect/index.js +29 -0
- package/es/obsolete/space/components/Notes/ColorSelect/index.js.map +1 -0
- package/es/obsolete/space/components/Notes/NewNoteDialog/index.css +76 -0
- package/es/obsolete/space/components/Notes/NewNoteDialog/index.d.ts +10 -0
- package/es/obsolete/space/components/Notes/NewNoteDialog/index.js +38 -0
- package/es/obsolete/space/components/Notes/NewNoteDialog/index.js.map +1 -0
- package/es/obsolete/space/components/Notes/TextNoteCard/index.css +54 -0
- package/es/obsolete/space/components/Notes/TextNoteCard/index.d.ts +6 -0
- package/es/obsolete/space/components/Notes/TextNoteCard/index.js +35 -0
- package/es/obsolete/space/components/Notes/TextNoteCard/index.js.map +1 -0
- package/es/obsolete/space/components/Notes/TextNoteCard/state.d.ts +5 -0
- package/es/obsolete/space/components/Notes/TextNoteCard/state.js +39 -0
- package/es/obsolete/space/components/Notes/TextNoteCard/state.js.map +1 -0
- package/es/obsolete/space/components/Notes/index.d.ts +5 -0
- package/es/obsolete/space/components/Notes/index.js +50 -0
- package/es/obsolete/space/components/Notes/index.js.map +1 -0
- package/es/obsolete/space/components/Notifications/index.d.ts +7 -0
- package/es/obsolete/space/components/Notifications/index.js +34 -0
- package/es/obsolete/space/components/Notifications/index.js.map +1 -0
- package/es/obsolete/space/components/Projects/index.d.ts +5 -0
- package/es/obsolete/space/components/Projects/index.js +35 -0
- package/es/obsolete/space/components/Projects/index.js.map +1 -0
- package/es/obsolete/space/components/Roles/index.d.ts +5 -0
- package/es/obsolete/space/components/Roles/index.js +14 -0
- package/es/obsolete/space/components/Roles/index.js.map +1 -0
- package/es/obsolete/space/components/Tasks/index.css +15 -0
- package/es/obsolete/space/components/Tasks/index.d.ts +8 -0
- package/es/obsolete/space/components/Tasks/index.js +204 -0
- package/es/obsolete/space/components/Tasks/index.js.map +1 -0
- package/es/obsolete/space/components/Teams/index.d.ts +5 -0
- package/es/obsolete/space/components/Teams/index.js +14 -0
- package/es/obsolete/space/components/Teams/index.js.map +1 -0
- package/es/obsolete/space/components/Works/index.d.ts +7 -0
- package/es/obsolete/space/components/Works/index.js +22 -0
- package/es/obsolete/space/components/Works/index.js.map +1 -0
- package/es/obsolete/space/components/Workspaces/index.d.ts +5 -0
- package/es/obsolete/space/components/Workspaces/index.js +18 -0
- package/es/obsolete/space/components/Workspaces/index.js.map +1 -0
- package/es/obsolete/space/pages/MySpace/index.css +52 -0
- package/es/obsolete/space/pages/MySpace/index.d.ts +7 -0
- package/es/obsolete/space/pages/MySpace/index.js +248 -0
- package/es/obsolete/space/pages/MySpace/index.js.map +1 -0
- package/es/obsolete/space/pages/MySpace/state.d.ts +30 -0
- package/es/obsolete/space/pages/MySpace/state.js +148 -0
- package/es/obsolete/space/pages/MySpace/state.js.map +1 -0
- package/es/obsolete/space/pages/MySpace/taskState.d.ts +36 -0
- package/es/obsolete/space/pages/MySpace/taskState.js +339 -0
- package/es/obsolete/space/pages/MySpace/taskState.js.map +1 -0
- package/es/obsolete/space/pages/MySpace/workState.d.ts +32 -0
- package/es/obsolete/space/pages/MySpace/workState.js +249 -0
- package/es/obsolete/space/pages/MySpace/workState.js.map +1 -0
- package/es/routes.js +3 -2
- package/es/routes.js.map +1 -1
- package/package.json +3 -3
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"event-meta.js","sourceRoot":"","sources":["../../../src/modules/calendar-board/event-meta.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,262 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* CalendarBoard 的 FullCalendar 皮肤。
|
|
3
|
+
*
|
|
4
|
+
* FullCalendar 的内部 DOM(表格、日期格、时间轴、+N 徽标)由它自己生成,挂不上 Tailwind 类,
|
|
5
|
+
* 因此这里用官方 CSS 变量(--fc-*)为主、少量选择器覆盖为辅。覆盖的选择器都取自
|
|
6
|
+
* FullCalendar 6.1 实际注入的默认样式(见 daygrid / timegrid 的 internal.js)。
|
|
7
|
+
*
|
|
8
|
+
* 颜色一律走 morpho-theme token(var(--color-*) / var(--font-size-*)),不写死色值;
|
|
9
|
+
* 事件卡的分类原色在 event-meta.ts 的 CHIP_COLOR_CLASS 里,不走这里。
|
|
10
|
+
*/
|
|
11
|
+
|
|
12
|
+
.calendar-board {
|
|
13
|
+
/* ═══ FullCalendar 官方 CSS 变量:把内置皮肤换成设计稿的灰白体系 ═══ */
|
|
14
|
+
--fc-border-color: var(--color-border);
|
|
15
|
+
--fc-page-bg-color: var(--color-bg-white);
|
|
16
|
+
--fc-neutral-bg-color: var(--color-bg-table);
|
|
17
|
+
--fc-neutral-text-color: var(--color-font-grey);
|
|
18
|
+
--fc-today-bg-color: var(--color-bg-blue-data);
|
|
19
|
+
--fc-highlight-color: var(--color-bg-blue-data);
|
|
20
|
+
--fc-now-indicator-color: var(--color-font-secondary);
|
|
21
|
+
--fc-more-link-bg-color: transparent;
|
|
22
|
+
--fc-more-link-text-color: inherit;
|
|
23
|
+
/* 事件节点本身不画底色 / 边框:描边浅底由 .calendar-event-chip 负责 */
|
|
24
|
+
--fc-event-bg-color: transparent;
|
|
25
|
+
--fc-event-border-color: transparent;
|
|
26
|
+
--fc-event-text-color: inherit;
|
|
27
|
+
--fc-small-font-size: var(--font-size-2xs);
|
|
28
|
+
|
|
29
|
+
/* 最后一个事件卡要给 +N 让出的宽度 */
|
|
30
|
+
--board-more-gutter: 36px;
|
|
31
|
+
|
|
32
|
+
.fc {
|
|
33
|
+
font-size: var(--font-size-xs);
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
/* ═══ 事件节点:剥掉 FullCalendar 自带外观,只剩我们的卡片 ═══ */
|
|
37
|
+
.fc-h-event {
|
|
38
|
+
border: 0;
|
|
39
|
+
background: transparent;
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
.fc-event-main {
|
|
43
|
+
height: 100%;
|
|
44
|
+
padding: 0;
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
/*
|
|
48
|
+
* ═══ 只去掉最外圈的边框(内部网格线全部保留)═══
|
|
49
|
+
*
|
|
50
|
+
* 边缘线一共有三层,来自不同元素,必须分别处理:
|
|
51
|
+
*
|
|
52
|
+
* 1. .fc-scrollgrid 自身 —— 但 FullCalendar 只让它的上 + 左可见
|
|
53
|
+
* (.fc .fc-scrollgrid 把 right/bottom 清零了);
|
|
54
|
+
* 2. .fc-scrollgrid 自己的格子(每个 section 一行、一行一个 th/td)——
|
|
55
|
+
* 右 + 下都在(FullCalendar 只把它们的 left/top 清零);
|
|
56
|
+
* 3. 紧贴外框的内层表格(列头 / 日期网格 / 时间轴)——
|
|
57
|
+
* 它们的最后一列、最后一行同样各画一条边线。
|
|
58
|
+
*
|
|
59
|
+
* 选择器的安全性:每一层每行的**最后一个**格子才是右侧边缘
|
|
60
|
+
* (时间轴与泳道的分隔线在行内前两个格子之间,不受影响);
|
|
61
|
+
* 底边则只取最后一行的格子,并排除 .fc-col-header —— 它的底边是
|
|
62
|
+
* 「列头与日期格之间」的内部线,必须留着。
|
|
63
|
+
*/
|
|
64
|
+
.fc-theme-standard .fc-scrollgrid {
|
|
65
|
+
border: 0;
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
/** 右边缘:所有层级的最后一个格子 */
|
|
69
|
+
.fc-scrollgrid tr > *:last-child {
|
|
70
|
+
border-right-width: 0;
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
/** 下边缘:外框自身的最后一行 */
|
|
74
|
+
.fc-scrollgrid > tbody > tr:last-child > * {
|
|
75
|
+
border-bottom-width: 0;
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
/**
|
|
79
|
+
* 下边缘:最底部那张内层表的最后一行。
|
|
80
|
+
*
|
|
81
|
+
* 限定在「外框最后一行格子的内部」,而不是所有内层表 ——
|
|
82
|
+
* 日视图里全天行在外框第 2 行、并不贴底,它的底边是全天区与时间轴之间的
|
|
83
|
+
* 内部分隔线(那条由 .fc-timegrid-divider 负责画),不该被清掉。
|
|
84
|
+
*/
|
|
85
|
+
.fc-scrollgrid > tbody > tr:last-child > * table:not(.fc-col-header) tr:last-child > * {
|
|
86
|
+
border-bottom-width: 0;
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
/* ═══ 列头 SUN / MON / ... ═══ */
|
|
90
|
+
.fc-col-header-cell {
|
|
91
|
+
background-color: var(--color-bg-white);
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
.fc-col-header-cell-cushion {
|
|
95
|
+
padding: var(--space-sm) var(--space-md);
|
|
96
|
+
font-size: var(--font-size-2xs);
|
|
97
|
+
font-weight: 600;
|
|
98
|
+
letter-spacing: 0.05em;
|
|
99
|
+
text-transform: uppercase;
|
|
100
|
+
color: var(--color-font-grey);
|
|
101
|
+
text-decoration: none;
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
/* ═══ 月 / 周视图的日期格 ═══ */
|
|
105
|
+
/* FullCalendar 默认 row-reverse(日期数字靠右),设计稿是左上角 */
|
|
106
|
+
.fc .fc-daygrid-day-top {
|
|
107
|
+
flex-direction: row;
|
|
108
|
+
}
|
|
109
|
+
|
|
110
|
+
.fc-daygrid-day-number {
|
|
111
|
+
padding: var(--space-sm) var(--space-md);
|
|
112
|
+
font-weight: 500;
|
|
113
|
+
color: var(--color-font-primary);
|
|
114
|
+
text-decoration: none;
|
|
115
|
+
}
|
|
116
|
+
|
|
117
|
+
.fc-day-today .fc-daygrid-day-number {
|
|
118
|
+
font-weight: 600;
|
|
119
|
+
color: var(--color-font-secondary);
|
|
120
|
+
}
|
|
121
|
+
|
|
122
|
+
.fc-day-other .fc-daygrid-day-number {
|
|
123
|
+
color: var(--color-font-disabled);
|
|
124
|
+
}
|
|
125
|
+
|
|
126
|
+
.fc .fc-daygrid-day-events {
|
|
127
|
+
margin: 0 var(--space-sm) var(--space-sm);
|
|
128
|
+
}
|
|
129
|
+
|
|
130
|
+
.fc-daygrid-event {
|
|
131
|
+
margin-top: var(--space-xs);
|
|
132
|
+
border-radius: 0;
|
|
133
|
+
/* 旧 index.css 同样关掉 nowrap,让长标题能换行 */
|
|
134
|
+
white-space: normal;
|
|
135
|
+
}
|
|
136
|
+
|
|
137
|
+
/* ═══ +N 徽标:外观由 CalendarMoreLink 负责 ═══ */
|
|
138
|
+
.fc-daygrid-more-link {
|
|
139
|
+
margin: 0;
|
|
140
|
+
padding: 0;
|
|
141
|
+
border-radius: 0;
|
|
142
|
+
text-decoration: none;
|
|
143
|
+
}
|
|
144
|
+
|
|
145
|
+
.fc-daygrid-more-link:hover {
|
|
146
|
+
background-color: transparent;
|
|
147
|
+
}
|
|
148
|
+
|
|
149
|
+
/*
|
|
150
|
+
* +N 与最后一个可见事件卡同排。
|
|
151
|
+
*
|
|
152
|
+
* 设计稿就是这么排的:最后一张卡让位收窄、+N 紧跟在它右边,而不是单独占一行。
|
|
153
|
+
* FullCalendar 没有「内联 +N」的选项;搬运 DOM 也不行 —— Preact 重渲染时会把
|
|
154
|
+
* .fc-daygrid-day-bottom 重新插回 .fc-daygrid-day-events,徽标跳回原位
|
|
155
|
+
* (实测:setOption("eventSources") 之后节点身份不变,但父级被还原)。
|
|
156
|
+
* 因此只能用 CSS 叠回去,好处是天然不受重渲染影响。
|
|
157
|
+
*
|
|
158
|
+
* 两步:
|
|
159
|
+
* 1) 让 +N 脱离文档流,钉在最后一张卡那一行的右侧;
|
|
160
|
+
* 2) 让最后一张「可见」卡右侧留出 +N 的位置。
|
|
161
|
+
*
|
|
162
|
+
* 第 1 步用 position: absolute + bottom: 0,而不是「上移一行」的负 margin:
|
|
163
|
+
* 容器底部就是最后一张卡的底部,这样不需要写死卡片高度 —— 卡片样式随时可能调,
|
|
164
|
+
* 任何像素常量都会在别人改 py-/text- 的时候静默失准。容器本身有 position: relative
|
|
165
|
+
* (FullCalendar 的 unbalanced / balanced 两种布局都会给它定位)。
|
|
166
|
+
*
|
|
167
|
+
* 门禁用 .fc-daygrid-more-link 而不是 .fc-daygrid-day-bottom:
|
|
168
|
+
* 后者是**每个格子都会渲染**的空容器,拿它当条件等于恒真,会让所有格子的
|
|
169
|
+
* 最后一张卡都被平白缩窄(这个坑是测试先发现的)。
|
|
170
|
+
*
|
|
171
|
+
* 关于「最后一个可见卡」:被收起的事件仍然留在 DOM 里(带 inline 的
|
|
172
|
+
* visibility: hidden),所以要按可见性过滤。这里刻意拆成两条规则
|
|
173
|
+
* (先给所有可见卡留位,再把后面还有可见卡的取消),避免写 :not(:has(~ …))
|
|
174
|
+
* 这种嵌套形式 —— 部分 CSS 引擎不支持,那会导致 +N 叠在卡片上面而不是并排。
|
|
175
|
+
*/
|
|
176
|
+
.fc-daygrid-day-events:has(.fc-daygrid-more-link)
|
|
177
|
+
> .fc-daygrid-event-harness:not([style*="visibility: hidden"]) {
|
|
178
|
+
padding-right: var(--board-more-gutter);
|
|
179
|
+
}
|
|
180
|
+
|
|
181
|
+
.fc-daygrid-day-events:has(.fc-daygrid-more-link)
|
|
182
|
+
> .fc-daygrid-event-harness:not([style*="visibility: hidden"]):has(
|
|
183
|
+
~ .fc-daygrid-event-harness:not([style*="visibility: hidden"])
|
|
184
|
+
) {
|
|
185
|
+
padding-right: 0;
|
|
186
|
+
}
|
|
187
|
+
|
|
188
|
+
.fc .fc-daygrid-day-events:has(.fc-daygrid-more-link) > .fc-daygrid-day-bottom {
|
|
189
|
+
position: absolute;
|
|
190
|
+
right: 0;
|
|
191
|
+
bottom: 0;
|
|
192
|
+
display: flex;
|
|
193
|
+
justify-content: flex-end;
|
|
194
|
+
/* 抵消 FullCalendar 给它的行偏移与左右外边距 */
|
|
195
|
+
margin: 0 !important;
|
|
196
|
+
}
|
|
197
|
+
|
|
198
|
+
/* ═══ 日视图:时间轴 ═══ */
|
|
199
|
+
.fc .fc-timegrid-axis-cushion,
|
|
200
|
+
.fc .fc-timegrid-slot-label-cushion {
|
|
201
|
+
padding: 0 var(--space-md) 0 0;
|
|
202
|
+
font-size: var(--font-size-xs);
|
|
203
|
+
color: var(--color-font-grey);
|
|
204
|
+
}
|
|
205
|
+
|
|
206
|
+
.fc .fc-timegrid-axis-cushion {
|
|
207
|
+
max-width: none;
|
|
208
|
+
}
|
|
209
|
+
|
|
210
|
+
.fc-timegrid-event {
|
|
211
|
+
border-radius: var(--radius-base);
|
|
212
|
+
}
|
|
213
|
+
|
|
214
|
+
/* 卡片撑满 FullCalendar 按事件时长算出的定位盒子 */
|
|
215
|
+
.fc-timegrid-event .calendar-event-chip {
|
|
216
|
+
height: 100%;
|
|
217
|
+
}
|
|
218
|
+
|
|
219
|
+
.fc .fc-timegrid-now-indicator-line {
|
|
220
|
+
border-width: 1.5px 0 0;
|
|
221
|
+
}
|
|
222
|
+
|
|
223
|
+
/* ═══ 溢出弹层(moreLinkClick 默认 popover)═══ */
|
|
224
|
+
.fc-more-popover {
|
|
225
|
+
border-radius: var(--radius-base);
|
|
226
|
+
box-shadow: var(--shadow-card);
|
|
227
|
+
}
|
|
228
|
+
|
|
229
|
+
.fc-popover-header {
|
|
230
|
+
background-color: var(--color-bg-table);
|
|
231
|
+
}
|
|
232
|
+
|
|
233
|
+
/* ═══ 滚动条:沿用旧 index.css 的细条写法 ═══ */
|
|
234
|
+
.fc-scroller {
|
|
235
|
+
&::-webkit-scrollbar {
|
|
236
|
+
width: 7px;
|
|
237
|
+
height: 7px;
|
|
238
|
+
}
|
|
239
|
+
&::-webkit-scrollbar-track {
|
|
240
|
+
background-color: transparent;
|
|
241
|
+
border-radius: 2em;
|
|
242
|
+
}
|
|
243
|
+
&::-webkit-scrollbar-thumb {
|
|
244
|
+
background-color: rgba(0, 0, 0, 0.2);
|
|
245
|
+
background-clip: padding-box;
|
|
246
|
+
border-radius: 2em;
|
|
247
|
+
}
|
|
248
|
+
}
|
|
249
|
+
}
|
|
250
|
+
|
|
251
|
+
/**
|
|
252
|
+
* 盖在标题上的透明 DatePicker。
|
|
253
|
+
*
|
|
254
|
+
* 沿用 CalendarMonth 的 .calendar-ant-picker 做法:点标题即可跳到某月 / 某周 / 某天。
|
|
255
|
+
*/
|
|
256
|
+
.calendar-board-picker {
|
|
257
|
+
position: absolute;
|
|
258
|
+
inset: 0;
|
|
259
|
+
width: 100%;
|
|
260
|
+
height: 100%;
|
|
261
|
+
opacity: 0;
|
|
262
|
+
}
|
|
@@ -0,0 +1,181 @@
|
|
|
1
|
+
import React, { useEffect, useRef, useState } from "react";
|
|
2
|
+
import { observe, useRenderOnChange } from "@voplus/morpho-ui";
|
|
3
|
+
import { message } from "antd";
|
|
4
|
+
import { useOnDeleteDocument } from "@voplus/morpho-document-core";
|
|
5
|
+
import { useOnDeleteWorkSchedule } from "../../../../data/work-schedule/work-schedule-events";
|
|
6
|
+
import { FilterOptionsContext, FilterOptionsContextState } from "@voplus/morpho-ui/es/data";
|
|
7
|
+
import { useCalendarListEffect, useCalendarStore } from "../../../../data/calendar";
|
|
8
|
+
import QuickView from "@voplus/morpho-document-core/es/components/QuickView";
|
|
9
|
+
import { useDeepMemo, useTabItem } from "@voplus/morpho-data";
|
|
10
|
+
import { runInAction } from "mobx";
|
|
11
|
+
import dayjs from "dayjs";
|
|
12
|
+
import { ConfigProvider } from "antd";
|
|
13
|
+
import antdTheme from "@voplus/morpho-theme/antdTheme";
|
|
14
|
+
import FilterView from "@voplus/morpho-ui/es/controls/FilterView";
|
|
15
|
+
import EventsFilter from "../../../../controls/filters/EventsFilter";
|
|
16
|
+
import { applyDropToEvents, buildDropPayload, findEventById, } from "../../event-meta";
|
|
17
|
+
import CalendarToolbar from "../../components/CalendarToolbar";
|
|
18
|
+
import CalendarLegend from "../../components/CalendarLegend";
|
|
19
|
+
import CalendarBoardGrid from "../../components/CalendarBoardGrid";
|
|
20
|
+
import CalendarSidebar from "../../components/CalendarSidebar";
|
|
21
|
+
import { FULL_CALENDAR_VIEW, State } from "./state";
|
|
22
|
+
import "./index.css";
|
|
23
|
+
const CalendarBoard = () => {
|
|
24
|
+
const tab = useTabItem();
|
|
25
|
+
const filterState = useDeepMemo(() => new FilterOptionsContextState({
|
|
26
|
+
defaults: {
|
|
27
|
+
filters: [{ c: "OwnerType", o: "contains", v1: JSON.stringify(["My"]), l: "And" }],
|
|
28
|
+
page: { Page: 1, PageSize: 200 },
|
|
29
|
+
},
|
|
30
|
+
}), []);
|
|
31
|
+
const [state] = useState(new State());
|
|
32
|
+
const [currentTime, setCurrentTime] = useState();
|
|
33
|
+
const [calendarApi, setCalendarApi] = useState();
|
|
34
|
+
const calendarRef = useRef(null);
|
|
35
|
+
const calendar = useCalendarStore();
|
|
36
|
+
useEffect(() => {
|
|
37
|
+
runInAction(() => (tab.title = "Calendar"));
|
|
38
|
+
}, []);
|
|
39
|
+
useEffect(() => {
|
|
40
|
+
setCalendarApi(calendarRef?.current?.getApi());
|
|
41
|
+
}, [calendarRef]);
|
|
42
|
+
useOnDeleteDocument((s, doc) => {
|
|
43
|
+
state.listOptions = state.listOptions.filter((i) => i.source?.id !== doc.id);
|
|
44
|
+
});
|
|
45
|
+
useOnDeleteWorkSchedule((s, doc) => {
|
|
46
|
+
state.listOptions = state.listOptions.filter((i) => i.source?.id !== doc.id);
|
|
47
|
+
});
|
|
48
|
+
useRenderOnChange(() => filterState.options);
|
|
49
|
+
useCalendarListEffect(null, (list) => {
|
|
50
|
+
runInAction(() => {
|
|
51
|
+
const events = list;
|
|
52
|
+
events.forEach((item) => {
|
|
53
|
+
// 事件卡颜色改由 CHIP_COLOR_CLASS 按 source.type 着色(见 event-meta.ts),
|
|
54
|
+
// 这里只补齐 source.title,其余沿用 CalendarMonth 的写法
|
|
55
|
+
if (item.source)
|
|
56
|
+
item.source.title = item.title;
|
|
57
|
+
});
|
|
58
|
+
state.listOptions = events;
|
|
59
|
+
});
|
|
60
|
+
}, filterState.options);
|
|
61
|
+
/**
|
|
62
|
+
* 点击事件卡 / 侧栏条目 → 打开 QuickView。
|
|
63
|
+
*
|
|
64
|
+
* 只把节点的 id 交给 state,弹窗本身由 morpho-document-core 的 QuickView 负责:
|
|
65
|
+
* 它自己 useDocument 加载节点,再按 type 派发到对应 meta 的 getQuickView
|
|
66
|
+
* (Task / WorkSchedule / Meeting … 各有自己的对话框,未注册的 type 落到通用文档视图)。
|
|
67
|
+
*/
|
|
68
|
+
const openSource = (source) => state.openQuickView(source?.id);
|
|
69
|
+
/** 切换 month / week / day 视图 */
|
|
70
|
+
const handleChangeType = (value) => {
|
|
71
|
+
runInAction(() => (state.type = value));
|
|
72
|
+
calendarApi?.changeView(FULL_CALENDAR_VIEW[value]);
|
|
73
|
+
};
|
|
74
|
+
/** 日期发生变化的回调 */
|
|
75
|
+
const onChange = (date, dateString) => {
|
|
76
|
+
const dateText = Array.isArray(dateString) ? dateString[0] : dateString;
|
|
77
|
+
setCurrentTime(date);
|
|
78
|
+
if (state.type === "week") {
|
|
79
|
+
calendarApi?.gotoDate(`${dayjs(date).format("YYYY-MM-DD")}`);
|
|
80
|
+
}
|
|
81
|
+
else if (dateText) {
|
|
82
|
+
calendarApi?.gotoDate(dateText);
|
|
83
|
+
}
|
|
84
|
+
};
|
|
85
|
+
/**
|
|
86
|
+
* 当拖动停止并且事件已移至其他日期/时间时触发。
|
|
87
|
+
*
|
|
88
|
+
* 四件事都和「拖完跳回原位 / 刷新后位置不对」有关,逐条说明:
|
|
89
|
+
*
|
|
90
|
+
* 1. 时间格式:交给 buildDropPayload 写成**本地时间**的 `YYYY-MM-DDTHH:mm:ss.SSS`,
|
|
91
|
+
* 而不是 toISOString()(UTC 时刻,UTC+8 下拖到某天零点时日期会退回前一天,
|
|
92
|
+
* 服务端按本地时间解析就落到错误日期)。
|
|
93
|
+
* 2. **先乐观写回本地模型再发请求**:请求往返期间只要有任意一次重渲染,事件源就可能
|
|
94
|
+
* 被重置,本地数据若还停在旧位置,刚拖过去的卡片会立刻被打回原位 —— 这就是
|
|
95
|
+
* 「拖拽当时跳回原位」的直接原因。
|
|
96
|
+
* 3. 失败要可见并回退:原先用 `error: "message"`,Store.action 会吞掉异常只弹个 toast,
|
|
97
|
+
* 事件仍停在拖过去的位置、看着像保存成功。改成回调显式判断,
|
|
98
|
+
* 失败就把本地模型与卡片一起退回拖拽前(changelog 的既有约定:
|
|
99
|
+
* 「改进edit处理,错误时UI重设回原值」)。
|
|
100
|
+
* 4. 事件源引用稳定:见 state.ts 的 sidebarData 与 CalendarBoardGrid 里的 useMemo。
|
|
101
|
+
*/
|
|
102
|
+
const eventDrop = async (info) => {
|
|
103
|
+
const id = info.event.id;
|
|
104
|
+
/*
|
|
105
|
+
* 拒绝这次拖拽的三种情况都退回,但各自留下可诊断的线索 ——
|
|
106
|
+
* 静默 revert 的后果就是用户只看到「拖完立刻跳回」,却无从知道为什么。
|
|
107
|
+
*/
|
|
108
|
+
if (!info.event.extendedProps.allowChangeStart) {
|
|
109
|
+
// 服务端没给改期权限(或压根没下发这个字段):这是设计如此,直接退回
|
|
110
|
+
console.warn("[CalendarBoard] 该事件不允许改期,已退回", {
|
|
111
|
+
id,
|
|
112
|
+
allowChangeStart: info.event.extendedProps.allowChangeStart,
|
|
113
|
+
extendedProps: Object.keys(info.event.extendedProps ?? {}),
|
|
114
|
+
});
|
|
115
|
+
info.revert();
|
|
116
|
+
return;
|
|
117
|
+
}
|
|
118
|
+
if (!id) {
|
|
119
|
+
// FullCalendar 对没有 id 的事件给的是空字符串,此时无从定位服务端记录
|
|
120
|
+
console.warn("[CalendarBoard] 事件没有 id,无法保存改期结果", {
|
|
121
|
+
title: info.event.title,
|
|
122
|
+
extendedProps: Object.keys(info.event.extendedProps ?? {}),
|
|
123
|
+
});
|
|
124
|
+
info.revert();
|
|
125
|
+
return;
|
|
126
|
+
}
|
|
127
|
+
const drop = { start: info.event.start, end: info.event.end };
|
|
128
|
+
const payload = buildDropPayload(drop);
|
|
129
|
+
if (!payload) {
|
|
130
|
+
console.warn("[CalendarBoard] 拿不到有效的落点时间,已退回", {
|
|
131
|
+
id,
|
|
132
|
+
start: info.event.start,
|
|
133
|
+
end: info.event.end,
|
|
134
|
+
});
|
|
135
|
+
info.revert();
|
|
136
|
+
return;
|
|
137
|
+
}
|
|
138
|
+
// 回退用的快照要从列表里取:info.oldEvent 不保证存在,
|
|
139
|
+
// 拿不到时回退会静默失效 —— 模型留在新位置、卡片却退回原位,两边不一致
|
|
140
|
+
const before = findEventById(state.listOptions, id);
|
|
141
|
+
const rollback = { start: before?.start ?? before?.startDate, end: before?.end };
|
|
142
|
+
runInAction(() => {
|
|
143
|
+
state.listOptions = applyDropToEvents(state.listOptions, id, drop);
|
|
144
|
+
});
|
|
145
|
+
let failed = false;
|
|
146
|
+
await calendar.edit(id, {
|
|
147
|
+
data: payload,
|
|
148
|
+
error: (error) => {
|
|
149
|
+
failed = true;
|
|
150
|
+
message.error(error.message);
|
|
151
|
+
runInAction(() => {
|
|
152
|
+
state.listOptions = applyDropToEvents(state.listOptions, id, rollback);
|
|
153
|
+
});
|
|
154
|
+
info.revert();
|
|
155
|
+
},
|
|
156
|
+
});
|
|
157
|
+
if (failed)
|
|
158
|
+
return;
|
|
159
|
+
};
|
|
160
|
+
return observe(() => {
|
|
161
|
+
/**
|
|
162
|
+
* 侧栏、图例、事件卡的推导(纯前端,见 sidebar-data.ts)。
|
|
163
|
+
*
|
|
164
|
+
* 取的是 state 上的 computed:既保证响应式(observe 是 <Observer>,只追踪它这次
|
|
165
|
+
* 渲染读到的 observable),又保证引用稳定 —— 详见 state.ts 里 sidebarData 的注释。
|
|
166
|
+
*/
|
|
167
|
+
const sidebar = state.sidebarData;
|
|
168
|
+
return (React.createElement(ConfigProvider, { theme: antdTheme },
|
|
169
|
+
React.createElement("div", { className: "calendar-board flex h-full w-full flex-col overflow-hidden text-sm" },
|
|
170
|
+
React.createElement(CalendarToolbar, { type: state.type, title: state.title, currentTime: currentTime, onChangeType: handleChangeType, onToday: () => calendarApi?.today(), onPrev: () => calendarApi?.prev(), onNext: () => calendarApi?.next(), onChangeDate: onChange },
|
|
171
|
+
React.createElement(FilterOptionsContext.Provider, { value: filterState },
|
|
172
|
+
React.createElement(FilterView, { columns: [React.createElement(EventsFilter, { key: "EventsFilter", defaultValue: ["My"] })] }))),
|
|
173
|
+
React.createElement(CalendarLegend, { categories: sidebar.summary.categories, onSelectEvent: openSource }),
|
|
174
|
+
React.createElement("div", { className: "flex flex-1 min-h-0 overflow-hidden" },
|
|
175
|
+
React.createElement(CalendarBoardGrid, { events: sidebar.visibleEvents, initialView: state.type, colorMap: sidebar.summary.colorMap, calendarRef: calendarRef, onSelectEvent: openSource, onEventDrop: eventDrop, onDatesSet: (info) => state.datesRender(info) }),
|
|
176
|
+
React.createElement(CalendarSidebar, { upcoming: sidebar.upcoming, search: state.search, tab: state.sidebarTab, onSearch: state.setSearch, onChangeTab: state.setSidebarTab, onSelectEvent: openSource })),
|
|
177
|
+
state.quickViewId ? (React.createElement(QuickView, { id: state.quickViewId, visible: true, onCancel: state.closeQuickView })) : null)));
|
|
178
|
+
});
|
|
179
|
+
};
|
|
180
|
+
export default CalendarBoard;
|
|
181
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/modules/calendar-board/pages/CalendarBoard/index.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,116 @@
|
|
|
1
|
+
import type { CalendarBoardEvent } from "../../event-meta";
|
|
2
|
+
import { type ISidebarData } from "../../sidebar-data";
|
|
3
|
+
/** 设计稿工具栏的三个视图 */
|
|
4
|
+
export type CalendarViewType = "month" | "week" | "day";
|
|
5
|
+
/**
|
|
6
|
+
* 视图类型 → FullCalendar 视图名。
|
|
7
|
+
*
|
|
8
|
+
* - month → dayGridMonth(月格子,对应 calendar-recreation.html)
|
|
9
|
+
* - week → dayGridWeek(按天堆叠事件卡、无时间轴,对应 calendar-week-view.html)
|
|
10
|
+
* - day → timeGridDay(时间轴,对应 calendar-day-view.html)
|
|
11
|
+
*
|
|
12
|
+
* 三个视图全部由已安装的 daygrid / timegrid 插件提供,未引入新插件。
|
|
13
|
+
*/
|
|
14
|
+
export declare const FULL_CALENDAR_VIEW: Record<CalendarViewType, string>;
|
|
15
|
+
/**
|
|
16
|
+
* 上班时段:Day 视图只显示这一段,不再铺满 24 小时。
|
|
17
|
+
*
|
|
18
|
+
* slotMaxTime 是**开区间**,所以 09:00–18:00 的最后一格正好是 17:00–18:00。
|
|
19
|
+
* 这两个值目前只用在 timeGridDay;将来若把周视图换成 timeGridWeek,
|
|
20
|
+
* 直接复用即可。
|
|
21
|
+
*/
|
|
22
|
+
export declare const WORKDAY_START_TIME = "09:00:00";
|
|
23
|
+
export declare const WORKDAY_END_TIME = "18:00:00";
|
|
24
|
+
/**
|
|
25
|
+
* 周视图单列最多显示几条事件,其余收进 +N。
|
|
26
|
+
*
|
|
27
|
+
* 月视图每格只有一两行的空间(全局 DAY_MAX_EVENTS = 2),周视图则是一整列、
|
|
28
|
+
* 稿子里单列排了 5 张卡,所以单独给一个宽松的上限,不跟着月视图一起收紧。
|
|
29
|
+
*/
|
|
30
|
+
export declare const WEEK_MAX_EVENTS = 15;
|
|
31
|
+
/**
|
|
32
|
+
* FullCalendar 的按视图覆盖选项。
|
|
33
|
+
*
|
|
34
|
+
* dayGridWeek 要还原 calendar-week-view.html:表头只留 SUN..SAT、日期标签落在格子里。
|
|
35
|
+
* 收起的口径与月视图不同:不受行数上限约束(dayMaxEventRows: false,同时也让它
|
|
36
|
+
* 不跟着全局的 DAY_MAX_EVENTS 一起收紧),只按 WEEK_MAX_EVENTS 这个事件数上限收起。
|
|
37
|
+
*
|
|
38
|
+
* timeGridDay 只保留上班时段(见 WORKDAY_START_TIME):
|
|
39
|
+
* - slotMinTime / slotMaxTime 裁掉时段外的行;
|
|
40
|
+
* - scrollTime 让初始滚动停在 9:00(默认值是 06:00,裁掉后已经越界);
|
|
41
|
+
* - expandRows 让这 9 小时撑满可用高度,否则默认 30 分钟格高 1.5em,
|
|
42
|
+
* 9 小时只有约 320px,高面板下方会留一大片空白。
|
|
43
|
+
*/
|
|
44
|
+
export declare const FULL_CALENDAR_VIEW_OPTIONS: {
|
|
45
|
+
dayGridWeek: {
|
|
46
|
+
/** 不设行数上限(默认也是 false,这里写出来是为了不被外面的全局配置影响) */
|
|
47
|
+
dayMaxEventRows: boolean;
|
|
48
|
+
dayMaxEvents: number;
|
|
49
|
+
dayHeaderFormat: {
|
|
50
|
+
weekday: string;
|
|
51
|
+
};
|
|
52
|
+
dayCellContent: (arg: any) => string;
|
|
53
|
+
};
|
|
54
|
+
timeGridDay: {
|
|
55
|
+
slotMinTime: string;
|
|
56
|
+
slotMaxTime: string;
|
|
57
|
+
scrollTime: string;
|
|
58
|
+
expandRows: boolean;
|
|
59
|
+
};
|
|
60
|
+
};
|
|
61
|
+
/** 工具栏 MONTH / WEEK / DAY 按钮 */
|
|
62
|
+
export declare const VIEW_TYPE_OPTIONS: {
|
|
63
|
+
value: CalendarViewType;
|
|
64
|
+
label: string;
|
|
65
|
+
}[];
|
|
66
|
+
/** 侧栏页签 */
|
|
67
|
+
export type CalendarSidebarTab = "upcoming" | "activity";
|
|
68
|
+
export declare class State {
|
|
69
|
+
accessor listOptions: CalendarBoardEvent[];
|
|
70
|
+
/** 当前视图类型 */
|
|
71
|
+
accessor type: CalendarViewType;
|
|
72
|
+
/** FullCalendar 头部日期(由 datesSet 同步) */
|
|
73
|
+
accessor title: string;
|
|
74
|
+
/** 侧栏搜索关键字(纯前端过滤,不触发重新请求) */
|
|
75
|
+
accessor search: string;
|
|
76
|
+
/** 被隐藏的事件分类(source.type) */
|
|
77
|
+
accessor hiddenTypes: Set<string>;
|
|
78
|
+
/** 侧栏页签 */
|
|
79
|
+
accessor sidebarTab: CalendarSidebarTab;
|
|
80
|
+
/** 当前打开的 QuickView 目标节点 id;为空表示没有弹窗 */
|
|
81
|
+
accessor quickViewId: string | undefined;
|
|
82
|
+
/** 呈现一组新日期时触发。 */
|
|
83
|
+
datesRender(info: any): void;
|
|
84
|
+
/**
|
|
85
|
+
* 切换某个分类的显示 / 隐藏。
|
|
86
|
+
*
|
|
87
|
+
* 下面三个 action 写成箭头属性:它们会被直接当作 props 传给侧栏,
|
|
88
|
+
* 方法体里用到 this,脱离实例调用会抛
|
|
89
|
+
* `Cannot set properties of undefined`(MobX 的 action 用调用时的 this 作为 scope)。
|
|
90
|
+
*/
|
|
91
|
+
toggleType: (type: string) => void;
|
|
92
|
+
setSearch: (value: string) => void;
|
|
93
|
+
setSidebarTab: (tab: CalendarSidebarTab) => void;
|
|
94
|
+
/**
|
|
95
|
+
* 打开某个节点的 QuickView。
|
|
96
|
+
*
|
|
97
|
+
* 传 id 即可:真正的弹窗由 morpho-document-core 的 QuickView 负责,
|
|
98
|
+
* 它会自己加载节点并按 type 派发到对应 meta 的对话框。
|
|
99
|
+
*/
|
|
100
|
+
openQuickView: (id?: string) => void;
|
|
101
|
+
/** 关闭 QuickView */
|
|
102
|
+
closeQuickView: () => void;
|
|
103
|
+
/**
|
|
104
|
+
* 侧栏 / 图例 / 网格共用的推导结果。
|
|
105
|
+
*
|
|
106
|
+
* 用 computed 而不是每次渲染现算,关键是为了**引用稳定**:其中的 visibleEvents 会交给
|
|
107
|
+
* FullCalendar 当 eventSources,而每次渲染都换一个新数组会让 FullCalendar 重置事件源,
|
|
108
|
+
* 用它手上的外部数据覆盖内部状态 —— 刚拖拽出来的位置就会被打回原位。
|
|
109
|
+
* 依赖(listOptions / search / hiddenTypes)不变时,这里返回同一个对象。
|
|
110
|
+
*
|
|
111
|
+
* ⚠️ computed 只在**被观察时**才缓存,所以这个 getter 必须在 observe()(即
|
|
112
|
+
* mobx-react-lite 的 <Observer>)内部读 —— 挪到组件体里就会退化成每次现算,
|
|
113
|
+
* 引用不再稳定,拖拽结果又会被打回原位。测试里用 autorun 复刻了这个前提。
|
|
114
|
+
*/
|
|
115
|
+
get sidebarData(): ISidebarData;
|
|
116
|
+
}
|