@feedmepos/mf-hrm-portal 2.3.0-dev → 2.3.0-dev.11
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/dist/{ApprovalCodeList-cG0zmQVJ.js → ApprovalCodeList-Ce9BWzt9.js} +5 -5
- package/dist/{AuditLogList-BTifJhO1.js → AuditLogList-Cw7WN8K4.js} +4 -4
- package/dist/{ConditionBuilderForm.vue_vue_type_script_setup_true_lang-qr5TwLTK.js → ConditionBuilderForm.vue_vue_type_script_setup_true_lang-BuofBFPC.js} +2 -2
- package/dist/{EmployeeList-DzcMtxJ3.js → EmployeeList-B8qWPNvj.js} +25 -24
- package/dist/{GrantUserList-D5b7tJ8Y.js → GrantUserList-CgigJIPF.js} +6 -6
- package/dist/{Main-DFwdAWqn.js → Main-BfoVdxlY.js} +8 -8
- package/dist/{Main-B2r59IOW.js → Main-Cg2vC_cj.js} +5 -5
- package/dist/{Main-DkLBemi7.js → Main-D26pgKy1.js} +11 -11
- package/dist/{PermissionSetList-B80hrfMW.js → PermissionSetList-CbtDiF4k.js} +19 -18
- package/dist/PortalPermissionEditor.vue_vue_type_script_setup_true_lang-DW1oBTbb.js +4167 -0
- package/dist/{PortalUserSearcher.vue_vue_type_style_index_0_scoped_827dfd60_lang-fe-Rdwn4.js → PortalUserSearcher.vue_vue_type_style_index_0_scoped_827dfd60_lang-BVz6q3HE.js} +1 -1
- package/dist/ResponsiveContextMenu.vue_vue_type_script_setup_true_lang-mSJFKo7r.js +132 -0
- package/dist/{RoleList-DHO4JRKF.js → RoleList-D0I8mbyI.js} +21 -20
- package/dist/ScheduleAddPositionModal.vue_vue_type_script_setup_true_lang-Ctwukt6o.js +492 -0
- package/dist/ScheduleGeneralPage-Kv4pnxCL.js +778 -0
- package/dist/ScheduleModal.vue_vue_type_script_setup_true_lang-CSA0aaqJ.js +2285 -0
- package/dist/SchedulePage-BMWd0bod.js +17942 -0
- package/dist/{SchedulePositionPage-C0hrO11d.js → SchedulePositionPage-5Xvx6Dk5.js} +66 -65
- package/dist/{TeamMemberList-CgFWLRBM.js → TeamMemberList-Bh7i5l16.js} +24 -23
- package/dist/{TimesheetList-Dp40G-0I.js → TimesheetList-BJKU-hnk.js} +7 -7
- package/dist/{TimesheetList.vue_vue_type_style_index_0_scoped_63294af2_lang-BFjrMhUG.js → TimesheetList.vue_vue_type_style_index_0_scoped_63294af2_lang-MMWnb9bj.js} +3 -3
- package/dist/{app-CmBSTvaI.js → app-BDJ5qxhF.js} +678 -594
- package/dist/app.js +1 -1
- package/dist/{approval-code-C9DmR4Md.js → approval-code-DHsUgc4K.js} +1 -1
- package/dist/{dayjs.min-CfL2DQ3d.js → dayjs.min-BWM0vY4w.js} +1 -1
- package/dist/{employee-DQcHjoij.js → employee-bBSuAJUr.js} +29 -28
- package/dist/{grant-user-Bv-pJ9Wt.js → grant-user-qzKHFTro.js} +1 -1
- package/dist/{iteration-BlavheWG.js → iteration-Dg7VAkAn.js} +1 -1
- package/dist/{lodash-QerqayrJ.js → lodash-BknY3p4o.js} +1 -1
- package/dist/{restaurant-D7PEQjPY.js → restaurant-BbYRA_IT.js} +4 -3
- package/dist/{role-RM2YLO7n.js → role-BJnJnNd_.js} +2 -2
- package/dist/{rule-DjlvYIuP.js → rule-BEuOY7Wf.js} +3 -3
- package/dist/src/api/schedule/index.d.ts +8 -1
- package/dist/src/components/layout/withScheduleShell.d.ts +10 -0
- package/dist/src/composables/useDiscardConfirm.d.ts +3 -1
- package/dist/src/types/employee.d.ts +1 -0
- package/dist/src/types/schedule.d.ts +3 -4
- package/dist/src/views/scheduling/components/ScheduleAreaRows.vue.d.ts +0 -8
- package/dist/src/views/scheduling/components/ScheduleBoardAreaRows.vue.d.ts +23 -0
- package/dist/src/views/scheduling/components/ScheduleBoardEditOverlays.vue.d.ts +17 -0
- package/dist/src/views/scheduling/components/ScheduleBoardEmployeeRows.vue.d.ts +31 -0
- package/dist/src/views/scheduling/components/ScheduleBoardGridHeader.vue.d.ts +24 -0
- package/dist/src/views/scheduling/components/ScheduleBoardInteractionOverlays.vue.d.ts +32 -0
- package/dist/src/views/scheduling/components/ScheduleBoardOnboardingOverlays.vue.d.ts +25 -0
- package/dist/src/views/scheduling/components/ScheduleBoardRails.vue.d.ts +17 -0
- package/dist/src/views/scheduling/components/ScheduleBoardToolbar.vue.d.ts +38 -0
- package/dist/src/views/scheduling/components/ScheduleBoardUtilityOverlays.vue.d.ts +22 -0
- package/dist/src/views/scheduling/components/{ScheduleOnboardingComplete.vue.d.ts → ScheduleCompletionDialog.vue.d.ts} +8 -3
- package/dist/src/views/scheduling/components/ScheduleConfirmModal.vue.d.ts +2 -1
- package/dist/src/views/scheduling/components/{ScheduleShiftCardMenu.vue.d.ts → ScheduleContextMenu.vue.d.ts} +7 -2
- package/dist/src/views/scheduling/components/{SchedulePdfPreview.vue.d.ts → ScheduleExportPreview.vue.d.ts} +1 -0
- package/dist/src/views/scheduling/components/ScheduleLoadState.vue.d.ts +9 -0
- package/dist/src/views/scheduling/components/ScheduleModal.vue.d.ts +26 -0
- package/dist/src/views/scheduling/components/{ScheduleExportDoneDialog.vue.d.ts → ScheduleOnboardingAssignPositionModal.vue.d.ts} +2 -2
- package/dist/src/views/scheduling/components/{ScheduleAssignEmployeePopover.vue.d.ts → ScheduleOnboardingClosedDayConfirm.vue.d.ts} +2 -2
- package/dist/src/views/scheduling/components/{ScheduleEmployeeMenu.vue.d.ts → ScheduleOnboardingDemandDays.vue.d.ts} +2 -2
- package/dist/src/views/scheduling/components/ScheduleOnboardingDemandFooter.vue.d.ts +6 -0
- package/dist/src/views/scheduling/components/ScheduleOnboardingDemandHeader.vue.d.ts +6 -0
- package/dist/src/views/scheduling/components/ScheduleOnboardingHoursProfileNotice.vue.d.ts +10 -0
- package/dist/src/views/scheduling/components/ScheduleOnboardingPositions.vue.d.ts +6 -0
- package/dist/src/views/scheduling/components/ScheduleOnboardingReview.vue.d.ts +6 -0
- package/dist/src/views/scheduling/components/ScheduleOnboardingWizardFooter.vue.d.ts +6 -0
- package/dist/src/views/scheduling/components/ScheduleOnboardingWizardHeader.vue.d.ts +11 -0
- package/dist/src/views/scheduling/components/ScheduleSelect.vue.d.ts +17 -1
- package/dist/src/views/scheduling/components/ScheduleSetupBanner.vue.d.ts +12 -0
- package/dist/src/views/scheduling/components/ScheduleShiftPopover.vue.d.ts +2 -2
- package/dist/src/views/scheduling/components/ScheduleStaffRail.vue.d.ts +4 -4
- package/dist/src/views/scheduling/components/ScheduleStaffRows.vue.d.ts +2 -12
- package/dist/src/views/scheduling/components/ScheduleTopbar.vue.d.ts +3 -3
- package/dist/src/views/scheduling/composables/onboarding-types.d.ts +1 -1
- package/dist/src/views/scheduling/composables/remyPrompt.d.ts +13 -0
- package/dist/src/views/scheduling/composables/schedule-add-employee-form.d.ts +12 -8
- package/dist/src/views/scheduling/composables/schedule-board-helpers.d.ts +5 -1
- package/dist/src/views/scheduling/composables/schedule-breaks.d.ts +7 -1
- package/dist/src/views/scheduling/composables/schedule-calendar.d.ts +7 -0
- package/dist/src/views/scheduling/composables/schedule-cost.d.ts +19 -0
- package/dist/src/views/scheduling/composables/schedule-day-meta.d.ts +1 -3
- package/dist/src/views/scheduling/composables/schedule-demand-domain.d.ts +11 -0
- package/dist/src/views/scheduling/composables/schedule-export-matrix.d.ts +14 -0
- package/dist/src/views/scheduling/composables/schedule-time.d.ts +8 -0
- package/dist/src/views/scheduling/composables/schedule-week-cache.d.ts +1 -4
- package/dist/src/views/scheduling/composables/useRemyAppStore.d.ts +15 -0
- package/dist/src/views/scheduling/composables/useScheduleAddEmployee.d.ts +35 -21
- package/dist/src/views/scheduling/composables/useScheduleAreaBoard.d.ts +0 -13
- package/dist/src/views/scheduling/composables/useScheduleAreaDragDrop.d.ts +2 -8
- package/dist/src/views/scheduling/composables/useScheduleAssignmentMutations.d.ts +13 -0
- package/dist/src/views/scheduling/composables/useScheduleAutoSchedule.d.ts +3 -3
- package/dist/src/views/scheduling/composables/useScheduleBoard.d.ts +52 -11
- package/dist/src/views/scheduling/composables/useScheduleCloneOutletModal.d.ts +3 -1
- package/dist/src/views/scheduling/composables/useScheduleCostRail.d.ts +6 -1
- package/dist/src/views/scheduling/composables/useScheduleDayNote.d.ts +1 -2
- package/dist/src/views/scheduling/composables/useScheduleDayTimeline.d.ts +0 -3
- package/dist/src/views/scheduling/composables/useScheduleDemand.d.ts +7 -24
- package/dist/src/views/scheduling/composables/useScheduleDemandSheet.d.ts +26 -5
- package/dist/src/views/scheduling/composables/useScheduleEmployeeAccess.d.ts +16 -0
- package/dist/src/views/scheduling/composables/useScheduleEmployeeAvailability.d.ts +13 -0
- package/dist/src/views/scheduling/composables/useScheduleEmployeeCandidates.d.ts +27 -0
- package/dist/src/views/scheduling/composables/useScheduleEmployeeCompensation.d.ts +7 -0
- package/dist/src/views/scheduling/composables/useScheduleEmployeeForm.d.ts +22 -0
- package/dist/src/views/scheduling/composables/useScheduleEmployeeIdentity.d.ts +9 -0
- package/dist/src/views/scheduling/composables/useScheduleEmployeeMenu.d.ts +6 -3
- package/dist/src/views/scheduling/composables/useScheduleEmployeePersistence.d.ts +29 -0
- package/dist/src/views/scheduling/composables/useScheduleEmployeeValidation.d.ts +20 -0
- package/dist/src/views/scheduling/composables/useScheduleExport.d.ts +19 -11
- package/dist/src/views/scheduling/composables/useScheduleGapPopover.d.ts +5 -6
- package/dist/src/views/scheduling/composables/useScheduleOnboardingAvailability.d.ts +58 -0
- package/dist/src/views/scheduling/composables/useScheduleOnboardingDemand.d.ts +45 -0
- package/dist/src/views/scheduling/composables/useScheduleOnboardingEmployees.d.ts +206 -0
- package/dist/src/views/scheduling/composables/useScheduleOnboardingHours.d.ts +15 -0
- package/dist/src/views/scheduling/composables/useScheduleOnboardingNavigation.d.ts +11 -0
- package/dist/src/views/scheduling/composables/useScheduleOnboardingWizard.d.ts +313 -529
- package/dist/src/views/scheduling/composables/useSchedulePageActions.d.ts +18 -0
- package/dist/src/views/scheduling/composables/useSchedulePageCellActions.d.ts +21 -0
- package/dist/src/views/scheduling/composables/useSchedulePageCellDrop.d.ts +18 -0
- package/dist/src/views/scheduling/composables/useSchedulePageEmployeeActions.d.ts +22 -0
- package/dist/src/views/scheduling/composables/useSchedulePageOverlays.d.ts +10 -7
- package/dist/src/views/scheduling/composables/useSchedulePdfExport.d.ts +19 -0
- package/dist/src/views/scheduling/composables/useSchedulePositionModal.d.ts +4 -1
- package/dist/src/views/scheduling/composables/useSchedulePositions.d.ts +4 -2
- package/dist/src/views/scheduling/composables/useSchedulePublish.d.ts +9 -1
- package/dist/src/views/scheduling/composables/useSchedulePublishPersistence.d.ts +11 -0
- package/dist/src/views/scheduling/composables/useScheduleRoster.d.ts +32 -4
- package/dist/src/views/scheduling/composables/useScheduleSettings.d.ts +8 -25
- package/dist/src/views/scheduling/composables/useScheduleShiftActions.d.ts +19 -3
- package/dist/src/views/scheduling/composables/useScheduleShiftDraft.d.ts +63 -0
- package/dist/src/views/scheduling/composables/useScheduleShiftPersistence.d.ts +17 -0
- package/dist/src/views/scheduling/composables/useScheduleShiftPopover.d.ts +31 -9
- package/dist/src/views/scheduling/composables/useScheduleStatsRow.d.ts +4 -1
- package/dist/src/views/scheduling/composables/useScheduleTour.d.ts +6 -4
- package/dist/src/views/scheduling/country-rules/index.d.ts +24 -0
- package/dist/src/views/scheduling/data.d.ts +16 -7
- package/dist/src/views/scheduling/locales/index.d.ts +80 -0
- package/dist/src/views/scheduling/schedule-constants.d.ts +7 -0
- package/dist/src/views/scheduling/schedule-state.d.ts +104 -16
- package/dist/src/views/scheduling/schedule-store.d.ts +30 -6
- package/dist/src/views/scheduling/types.d.ts +29 -5
- package/dist/style.css +1 -1
- package/dist/tsconfig.app.tsbuildinfo +1 -1
- package/dist/{useAppStore-d_nHyK5u.js → useAppStore-BoLkvkE2.js} +1 -1
- package/dist/useDiscardConfirm-CzZSPyvh.js +28 -0
- package/dist/{useLoading-JFoghhRz.js → useLoading-Ch1AUYT1.js} +1 -1
- package/dist/{useReportPermissions-Bl6Br79r.js → useReportPermissions-D8hJ5W0t.js} +3 -3
- package/package.json +2 -1
- package/dist/PortalPermissionEditor.vue_vue_type_script_setup_true_lang-DjNcJQM9.js +0 -4167
- package/dist/ScheduleAddPositionModal.vue_vue_type_script_setup_true_lang-B-XtB64L.js +0 -452
- package/dist/ScheduleGeneralPage-WlBM8bxV.js +0 -629
- package/dist/SchedulePage-Nm0krGVU.js +0 -17056
- package/dist/ScheduleSelect.vue_vue_type_script_setup_true_lang-DTDXir_7.js +0 -1150
- package/dist/src/components/layout/withShell.d.ts +0 -14
- package/dist/src/views/scheduling/components/ScheduleAllShiftsRow.vue.d.ts +0 -22
- package/dist/src/views/scheduling/components/ScheduleOpenShiftCardMenu.vue.d.ts +0 -14
- package/dist/src/views/scheduling/components/ScheduleStackPopover.vue.d.ts +0 -14
- package/dist/src/views/scheduling/components/ScheduleTourAllSet.vue.d.ts +0 -6
- package/dist/src/views/scheduling/composables/useScheduleAllShiftsRow.d.ts +0 -77
- package/dist/src/views/scheduling/composables/useScheduleAssign.d.ts +0 -122
- package/dist/src/views/scheduling/composables/useScheduleOpenShiftCard.d.ts +0 -23
- package/dist/src/views/scheduling/composables/useScheduleStaffRail.d.ts +0 -17
- package/dist/src/views/scheduling/composables/useScheduleTopbar.d.ts +0 -10
- package/dist/useDiscardConfirm-DPhEV6v0.js +0 -157
- /package/dist/src/{components/layout/AppSidebar.vue.d.ts → views/scheduling/components/SchedulePublishShareArt.vue.d.ts} +0 -0
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import type { ScheduleBoardApi } from './useScheduleBoard';
|
|
2
|
+
import type { ScheduleAutoScheduleApi } from './useScheduleAutoSchedule';
|
|
3
|
+
import type { SchedulePublishApi } from './useSchedulePublish';
|
|
4
|
+
interface UseSchedulePageActionsOptions {
|
|
5
|
+
board: ScheduleBoardApi;
|
|
6
|
+
autoSchedule: ScheduleAutoScheduleApi;
|
|
7
|
+
publish: SchedulePublishApi;
|
|
8
|
+
notify: (message: string, type: 'info' | 'success') => void;
|
|
9
|
+
}
|
|
10
|
+
export declare function useSchedulePageActions(options: UseSchedulePageActionsOptions): {
|
|
11
|
+
comingSoon: () => void;
|
|
12
|
+
onSchedStatusClick: () => void;
|
|
13
|
+
onApplyProposals: (count: number) => void;
|
|
14
|
+
onApplyAndPublishProposals: (count: number) => void;
|
|
15
|
+
onProposalDragStart: (id: number, event: DragEvent) => void;
|
|
16
|
+
onScroll: (delta: number) => void;
|
|
17
|
+
};
|
|
18
|
+
export {};
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import type { ScheduleBoardApi } from './useScheduleBoard';
|
|
2
|
+
import type { ScheduleClashDetectionApi } from './useScheduleClashDetection';
|
|
3
|
+
import type { ScheduleDemandApi } from './useScheduleDemand';
|
|
4
|
+
import type { ScheduleAddPickApi } from './useScheduleAddPick';
|
|
5
|
+
import type { ScheduleShiftPopoverApi } from './useScheduleShiftPopover';
|
|
6
|
+
import type { ScheduleDemandSheetApi } from './useScheduleDemandSheet';
|
|
7
|
+
interface UseSchedulePageCellActionsOptions {
|
|
8
|
+
board: ScheduleBoardApi;
|
|
9
|
+
clash: ScheduleClashDetectionApi;
|
|
10
|
+
demand: ScheduleDemandApi;
|
|
11
|
+
addPick: ScheduleAddPickApi;
|
|
12
|
+
popover: ScheduleShiftPopoverApi;
|
|
13
|
+
demandSheet: ScheduleDemandSheetApi;
|
|
14
|
+
}
|
|
15
|
+
export declare function useSchedulePageCellActions(options: UseSchedulePageCellActionsOptions): {
|
|
16
|
+
dayHasAnyShift: (dayIdx: number) => boolean;
|
|
17
|
+
onAddShift: (empId: number, dayIdx: number, anchor: HTMLElement) => void;
|
|
18
|
+
onEditShift: (empId: number, dayIdx: number, slotIndex?: number) => void;
|
|
19
|
+
onOpenDemandSheet: (dayIdx: number) => void;
|
|
20
|
+
};
|
|
21
|
+
export {};
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import type { ScheduleBoardApi } from './useScheduleBoard';
|
|
2
|
+
import type { ScheduleClashDetectionApi } from './useScheduleClashDetection';
|
|
3
|
+
import type { ScheduleDragDropApi } from './useScheduleDragDrop';
|
|
4
|
+
import type { ScheduleShiftActionsApi } from './useScheduleShiftActions';
|
|
5
|
+
import type { ScheduleAutoScheduleApi } from './useScheduleAutoSchedule';
|
|
6
|
+
interface UseSchedulePageCellDropOptions {
|
|
7
|
+
board: ScheduleBoardApi;
|
|
8
|
+
autoSchedule: ScheduleAutoScheduleApi;
|
|
9
|
+
dragDrop: ScheduleDragDropApi;
|
|
10
|
+
shiftActions: ScheduleShiftActionsApi;
|
|
11
|
+
clash: ScheduleClashDetectionApi;
|
|
12
|
+
dayHasAnyShift: (dayIdx: number) => boolean;
|
|
13
|
+
notify: (message: string, type: 'error') => void;
|
|
14
|
+
}
|
|
15
|
+
export declare function useSchedulePageCellDrop(options: UseSchedulePageCellDropOptions): {
|
|
16
|
+
onCellDrop: (empId: number, dayIdx: number, event: DragEvent) => void;
|
|
17
|
+
};
|
|
18
|
+
export {};
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import type { ScheduleBoardApi } from './useScheduleBoard';
|
|
2
|
+
import type { Ref } from 'vue';
|
|
3
|
+
import { useScheduleEmployeeProfile } from './useScheduleEmployeeProfile';
|
|
4
|
+
import type { ScheduleAddEmployeeApi } from './useScheduleAddEmployee';
|
|
5
|
+
import type { ScheduleClashDetectionApi } from './useScheduleClashDetection';
|
|
6
|
+
type ScheduleEmployeeProfileApi = ReturnType<typeof useScheduleEmployeeProfile>;
|
|
7
|
+
interface UseSchedulePageEmployeeActionsOptions {
|
|
8
|
+
board: ScheduleBoardApi;
|
|
9
|
+
employeeProfile: ScheduleEmployeeProfileApi;
|
|
10
|
+
addEmployee: ScheduleAddEmployeeApi;
|
|
11
|
+
removeEmployeeId: Ref<number | null>;
|
|
12
|
+
clash: ScheduleClashDetectionApi;
|
|
13
|
+
notify: (message: string, type: 'error' | 'info' | 'success') => void;
|
|
14
|
+
}
|
|
15
|
+
export declare function useSchedulePageEmployeeActions(options: UseSchedulePageEmployeeActionsOptions): {
|
|
16
|
+
onOpenEmployeeMenu: (empId: number) => void;
|
|
17
|
+
onEditEmployee: () => void;
|
|
18
|
+
onClearAllShifts: (empId: number) => void;
|
|
19
|
+
onRemoveEmployee: () => void;
|
|
20
|
+
onConfirmRemoveEmployee: () => Promise<void>;
|
|
21
|
+
};
|
|
22
|
+
export {};
|
|
@@ -1,18 +1,21 @@
|
|
|
1
|
+
import { ref } from 'vue';
|
|
1
2
|
import type { ScheduleAddPickApi } from './useScheduleAddPick';
|
|
2
|
-
import type { ScheduleAllShiftsRowApi } from './useScheduleAllShiftsRow';
|
|
3
3
|
import type { ScheduleDayNoteApi } from './useScheduleDayNote';
|
|
4
4
|
import type { ScheduleGapPopoverApi } from './useScheduleGapPopover';
|
|
5
|
-
import type { ScheduleOpenShiftCardApi } from './useScheduleOpenShiftCard';
|
|
6
5
|
import type { ScheduleShiftActionsApi } from './useScheduleShiftActions';
|
|
7
6
|
import type { ScheduleTimePickerApi } from './useScheduleTimePicker';
|
|
8
|
-
|
|
7
|
+
export type ScheduleTopbarMenu = 'actions' | 'export';
|
|
8
|
+
export interface ScheduleTopbarApi {
|
|
9
|
+
openMenu: ReturnType<typeof ref<ScheduleTopbarMenu | null>>;
|
|
10
|
+
toggleMenu: (id: ScheduleTopbarMenu) => void;
|
|
11
|
+
closeMenus: () => void;
|
|
12
|
+
}
|
|
9
13
|
export declare function useSchedulePageOverlays(apis: {
|
|
10
|
-
topbar: ScheduleTopbarApi;
|
|
11
14
|
dayNote: ScheduleDayNoteApi;
|
|
12
|
-
allShiftsRow: ScheduleAllShiftsRowApi;
|
|
13
15
|
gap: ScheduleGapPopoverApi;
|
|
14
16
|
timePicker: ScheduleTimePickerApi;
|
|
15
17
|
addPick: ScheduleAddPickApi;
|
|
16
18
|
shiftActions: ScheduleShiftActionsApi;
|
|
17
|
-
|
|
18
|
-
|
|
19
|
+
}): {
|
|
20
|
+
topbar: ScheduleTopbarApi;
|
|
21
|
+
};
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { type ComputedRef, type Ref } from 'vue';
|
|
2
|
+
export interface SchedulePdfCanvas {
|
|
3
|
+
canvas: HTMLCanvasElement;
|
|
4
|
+
}
|
|
5
|
+
export interface SchedulePdfExportOptions {
|
|
6
|
+
subtitle: ComputedRef<string>;
|
|
7
|
+
title: ComputedRef<string>;
|
|
8
|
+
buildCanvas: () => SchedulePdfCanvas | null;
|
|
9
|
+
buildSheetImage: (onReady: () => void) => void;
|
|
10
|
+
jpgPreviewOpen: Ref<boolean>;
|
|
11
|
+
releaseSheetImage: () => void;
|
|
12
|
+
}
|
|
13
|
+
export declare function useSchedulePdfExport(options: SchedulePdfExportOptions): {
|
|
14
|
+
previewOpen: Ref<boolean, boolean>;
|
|
15
|
+
barMeta: ComputedRef<string>;
|
|
16
|
+
openPreview: () => void;
|
|
17
|
+
closePreview: () => void;
|
|
18
|
+
printNow: () => void;
|
|
19
|
+
};
|
|
@@ -4,6 +4,7 @@ export interface PositionModalPerson {
|
|
|
4
4
|
initials: string;
|
|
5
5
|
/** Positions they already hold, main first — the row's second line. */
|
|
6
6
|
held: string[];
|
|
7
|
+
heldPositionIds: string[];
|
|
7
8
|
}
|
|
8
9
|
export interface PositionModalDone {
|
|
9
10
|
name: string;
|
|
@@ -16,7 +17,9 @@ export interface PositionModalDone {
|
|
|
16
17
|
* as their main position when they have none yet, otherwise as one more they are trained in.
|
|
17
18
|
* The profile write replaces `secondaryPositions` wholesale, so a person's existing ones are
|
|
18
19
|
* sent back with the new one rather than being dropped. */
|
|
19
|
-
export declare function useSchedulePositionModal(onCreated?: (positionName: string) => void
|
|
20
|
+
export declare function useSchedulePositionModal(onCreated?: (positionName: string) => void, options?: {
|
|
21
|
+
notify?: (message: string, type?: 'success' | 'error' | 'info') => void;
|
|
22
|
+
}): {
|
|
20
23
|
open: import("vue").Ref<boolean, boolean>;
|
|
21
24
|
name: import("vue").Ref<string, string>;
|
|
22
25
|
search: import("vue").Ref<string, string>;
|
|
@@ -2,7 +2,9 @@ export interface SchedulePositionRow {
|
|
|
2
2
|
id: string;
|
|
3
3
|
name: string;
|
|
4
4
|
}
|
|
5
|
-
export declare function useSchedulePositions(
|
|
5
|
+
export declare function useSchedulePositions(options?: {
|
|
6
|
+
notify?: (message: string, type?: 'success' | 'error' | 'info') => void;
|
|
7
|
+
}): {
|
|
6
8
|
positions: import("vue").Ref<{
|
|
7
9
|
id: string;
|
|
8
10
|
name: string;
|
|
@@ -16,7 +18,7 @@ export declare function useSchedulePositions(): {
|
|
|
16
18
|
pendingDeleteId: import("vue").Ref<string | null, string | null>;
|
|
17
19
|
saving: import("vue").Ref<boolean, boolean>;
|
|
18
20
|
error: import("vue").Ref<string | null, string | null>;
|
|
19
|
-
usageCountFor: (
|
|
21
|
+
usageCountFor: (positionId: string) => number;
|
|
20
22
|
startAdd: () => void;
|
|
21
23
|
cancelAdd: () => void;
|
|
22
24
|
confirmAdd: () => Promise<void>;
|
|
@@ -37,6 +37,7 @@ export declare function useSchedulePublish(board: ScheduleBoardApi): {
|
|
|
37
37
|
start: string;
|
|
38
38
|
end: string;
|
|
39
39
|
role: string;
|
|
40
|
+
positionId?: string | undefined;
|
|
40
41
|
status: import("../types").ShiftStatus;
|
|
41
42
|
clock?: {
|
|
42
43
|
in: string | null;
|
|
@@ -58,6 +59,7 @@ export declare function useSchedulePublish(board: ScheduleBoardApi): {
|
|
|
58
59
|
breakPayType: "PAID" | "UNPAID";
|
|
59
60
|
})[] | undefined;
|
|
60
61
|
assignmentId?: string | undefined;
|
|
62
|
+
updatedAt?: string | undefined;
|
|
61
63
|
splitGroupId?: string | undefined;
|
|
62
64
|
} | {
|
|
63
65
|
timeOff: "approved" | "pending";
|
|
@@ -84,6 +86,7 @@ export declare function useSchedulePublish(board: ScheduleBoardApi): {
|
|
|
84
86
|
start: string;
|
|
85
87
|
end: string;
|
|
86
88
|
role: string;
|
|
89
|
+
positionId?: string | undefined;
|
|
87
90
|
status: import("../types").ShiftStatus;
|
|
88
91
|
clock?: {
|
|
89
92
|
in: string | null;
|
|
@@ -105,6 +108,7 @@ export declare function useSchedulePublish(board: ScheduleBoardApi): {
|
|
|
105
108
|
breakPayType: "PAID" | "UNPAID";
|
|
106
109
|
})[] | undefined;
|
|
107
110
|
assignmentId?: string | undefined;
|
|
111
|
+
updatedAt?: string | undefined;
|
|
108
112
|
splitGroupId?: string | undefined;
|
|
109
113
|
}[] | null)[];
|
|
110
114
|
}[];
|
|
@@ -112,7 +116,11 @@ export declare function useSchedulePublish(board: ScheduleBoardApi): {
|
|
|
112
116
|
toggleAllVersions: () => void;
|
|
113
117
|
toggleVersionDiff: (v: number) => void;
|
|
114
118
|
diffFor: (version: ScheduleVersion) => VersionDiffRow[];
|
|
115
|
-
confirm: () => void
|
|
119
|
+
confirm: () => Promise<void>;
|
|
116
120
|
restoreVersion: (v: number) => void;
|
|
121
|
+
shareOpen: import("vue").Ref<boolean, boolean>;
|
|
122
|
+
shareVersion: import("vue").Ref<number | null, number | null>;
|
|
123
|
+
shareStaffAffected: import("vue").Ref<number, number>;
|
|
124
|
+
closeShare: () => void;
|
|
117
125
|
};
|
|
118
126
|
export type SchedulePublishApi = ReturnType<typeof useSchedulePublish>;
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { WorkSlot } from '../types';
|
|
2
|
+
export interface SchedulePublishPersistenceOptions {
|
|
3
|
+
recoverPersistFailure: (error: unknown, fallback: string) => Promise<void>;
|
|
4
|
+
}
|
|
5
|
+
export declare function useSchedulePublishPersistence(options: SchedulePublishPersistenceOptions): {
|
|
6
|
+
persistPublish: (items: Array<{
|
|
7
|
+
empId: number;
|
|
8
|
+
dayIdx: number;
|
|
9
|
+
slot: WorkSlot;
|
|
10
|
+
}>) => Promise<boolean>;
|
|
11
|
+
};
|
|
@@ -11,6 +11,7 @@ export declare function useScheduleRoster(board: ScheduleBoardApi): {
|
|
|
11
11
|
search: import("vue").Ref<string, string>;
|
|
12
12
|
filteredEmployees: import("vue").ComputedRef<{
|
|
13
13
|
id: number;
|
|
14
|
+
sourceId: string;
|
|
14
15
|
name: string;
|
|
15
16
|
employmentType: "FULLTIME" | "PARTTIME";
|
|
16
17
|
role: string;
|
|
@@ -21,10 +22,12 @@ export declare function useScheduleRoster(board: ScheduleBoardApi): {
|
|
|
21
22
|
contractHours?: number | undefined;
|
|
22
23
|
rate: number;
|
|
23
24
|
positions: string[];
|
|
25
|
+
archivedPositions?: string[] | undefined;
|
|
24
26
|
shifts: ({
|
|
25
27
|
start: string;
|
|
26
28
|
end: string;
|
|
27
29
|
role: string;
|
|
30
|
+
positionId?: string | undefined;
|
|
28
31
|
status: import("../types").ShiftStatus;
|
|
29
32
|
clock?: {
|
|
30
33
|
in: string | null;
|
|
@@ -46,6 +49,7 @@ export declare function useScheduleRoster(board: ScheduleBoardApi): {
|
|
|
46
49
|
breakPayType: "PAID" | "UNPAID";
|
|
47
50
|
})[] | undefined;
|
|
48
51
|
assignmentId?: string | undefined;
|
|
52
|
+
updatedAt?: string | undefined;
|
|
49
53
|
splitGroupId?: string | undefined;
|
|
50
54
|
} | {
|
|
51
55
|
timeOff: "approved" | "pending";
|
|
@@ -72,6 +76,7 @@ export declare function useScheduleRoster(board: ScheduleBoardApi): {
|
|
|
72
76
|
start: string;
|
|
73
77
|
end: string;
|
|
74
78
|
role: string;
|
|
79
|
+
positionId?: string | undefined;
|
|
75
80
|
status: import("../types").ShiftStatus;
|
|
76
81
|
clock?: {
|
|
77
82
|
in: string | null;
|
|
@@ -93,6 +98,7 @@ export declare function useScheduleRoster(board: ScheduleBoardApi): {
|
|
|
93
98
|
breakPayType: "PAID" | "UNPAID";
|
|
94
99
|
})[] | undefined;
|
|
95
100
|
assignmentId?: string | undefined;
|
|
101
|
+
updatedAt?: string | undefined;
|
|
96
102
|
splitGroupId?: string | undefined;
|
|
97
103
|
}[] | null)[];
|
|
98
104
|
remarks: {
|
|
@@ -109,9 +115,16 @@ export declare function useScheduleRoster(board: ScheduleBoardApi): {
|
|
|
109
115
|
payBasis?: "hourly" | "monthly" | undefined;
|
|
110
116
|
payAmount?: number | undefined;
|
|
111
117
|
maxHours?: number | undefined;
|
|
112
|
-
maxOtHours?: number | undefined;
|
|
113
118
|
minHours?: number | undefined;
|
|
114
|
-
|
|
119
|
+
minHoursPerDay?: number | undefined;
|
|
120
|
+
workingHours?: {
|
|
121
|
+
minHoursPerDay: number | null;
|
|
122
|
+
maxHoursPerDay: number | null;
|
|
123
|
+
maxHoursPerWeek: number | null;
|
|
124
|
+
} | undefined;
|
|
125
|
+
overtime?: {
|
|
126
|
+
maxHoursPerMonth: number | null;
|
|
127
|
+
} | undefined;
|
|
115
128
|
preferences?: string[] | undefined;
|
|
116
129
|
seniority?: "senior" | "junior" | "" | undefined;
|
|
117
130
|
availDays?: boolean[] | undefined;
|
|
@@ -120,10 +133,12 @@ export declare function useScheduleRoster(board: ScheduleBoardApi): {
|
|
|
120
133
|
to: string;
|
|
121
134
|
}[] | undefined;
|
|
122
135
|
passcode?: string | undefined;
|
|
136
|
+
code?: string | undefined;
|
|
123
137
|
masterUser?: boolean | undefined;
|
|
124
138
|
}[]>;
|
|
125
139
|
orderedEmployees: import("vue").ComputedRef<{
|
|
126
140
|
id: number;
|
|
141
|
+
sourceId: string;
|
|
127
142
|
name: string;
|
|
128
143
|
employmentType: "FULLTIME" | "PARTTIME";
|
|
129
144
|
role: string;
|
|
@@ -134,10 +149,12 @@ export declare function useScheduleRoster(board: ScheduleBoardApi): {
|
|
|
134
149
|
contractHours?: number | undefined;
|
|
135
150
|
rate: number;
|
|
136
151
|
positions: string[];
|
|
152
|
+
archivedPositions?: string[] | undefined;
|
|
137
153
|
shifts: ({
|
|
138
154
|
start: string;
|
|
139
155
|
end: string;
|
|
140
156
|
role: string;
|
|
157
|
+
positionId?: string | undefined;
|
|
141
158
|
status: import("../types").ShiftStatus;
|
|
142
159
|
clock?: {
|
|
143
160
|
in: string | null;
|
|
@@ -159,6 +176,7 @@ export declare function useScheduleRoster(board: ScheduleBoardApi): {
|
|
|
159
176
|
breakPayType: "PAID" | "UNPAID";
|
|
160
177
|
})[] | undefined;
|
|
161
178
|
assignmentId?: string | undefined;
|
|
179
|
+
updatedAt?: string | undefined;
|
|
162
180
|
splitGroupId?: string | undefined;
|
|
163
181
|
} | {
|
|
164
182
|
timeOff: "approved" | "pending";
|
|
@@ -185,6 +203,7 @@ export declare function useScheduleRoster(board: ScheduleBoardApi): {
|
|
|
185
203
|
start: string;
|
|
186
204
|
end: string;
|
|
187
205
|
role: string;
|
|
206
|
+
positionId?: string | undefined;
|
|
188
207
|
status: import("../types").ShiftStatus;
|
|
189
208
|
clock?: {
|
|
190
209
|
in: string | null;
|
|
@@ -206,6 +225,7 @@ export declare function useScheduleRoster(board: ScheduleBoardApi): {
|
|
|
206
225
|
breakPayType: "PAID" | "UNPAID";
|
|
207
226
|
})[] | undefined;
|
|
208
227
|
assignmentId?: string | undefined;
|
|
228
|
+
updatedAt?: string | undefined;
|
|
209
229
|
splitGroupId?: string | undefined;
|
|
210
230
|
}[] | null)[];
|
|
211
231
|
remarks: {
|
|
@@ -222,9 +242,16 @@ export declare function useScheduleRoster(board: ScheduleBoardApi): {
|
|
|
222
242
|
payBasis?: "hourly" | "monthly" | undefined;
|
|
223
243
|
payAmount?: number | undefined;
|
|
224
244
|
maxHours?: number | undefined;
|
|
225
|
-
maxOtHours?: number | undefined;
|
|
226
245
|
minHours?: number | undefined;
|
|
227
|
-
|
|
246
|
+
minHoursPerDay?: number | undefined;
|
|
247
|
+
workingHours?: {
|
|
248
|
+
minHoursPerDay: number | null;
|
|
249
|
+
maxHoursPerDay: number | null;
|
|
250
|
+
maxHoursPerWeek: number | null;
|
|
251
|
+
} | undefined;
|
|
252
|
+
overtime?: {
|
|
253
|
+
maxHoursPerMonth: number | null;
|
|
254
|
+
} | undefined;
|
|
228
255
|
preferences?: string[] | undefined;
|
|
229
256
|
seniority?: "senior" | "junior" | "" | undefined;
|
|
230
257
|
availDays?: boolean[] | undefined;
|
|
@@ -233,6 +260,7 @@ export declare function useScheduleRoster(board: ScheduleBoardApi): {
|
|
|
233
260
|
to: string;
|
|
234
261
|
}[] | undefined;
|
|
235
262
|
passcode?: string | undefined;
|
|
263
|
+
code?: string | undefined;
|
|
236
264
|
masterUser?: boolean | undefined;
|
|
237
265
|
}[]>;
|
|
238
266
|
order: import("vue").Ref<number[], number[]>;
|
|
@@ -1,25 +1,14 @@
|
|
|
1
|
-
export type ScheduleSettingsSection = 'budget' | 'payrates' | 'overtime' | 'notify';
|
|
2
|
-
/**
|
|
3
|
-
* ScheduleSettingsPage's own note. `ScheduleSettingsSection` stays the full union (rather
|
|
4
|
-
* than narrowing to a literal `'payrates' | 'overtime'`) so `draft`/`save()` below don't have
|
|
5
|
-
* to change shape the day a section comes back; only the nav and the page's own rendering
|
|
6
|
-
* are trimmed. */
|
|
1
|
+
export type ScheduleSettingsSection = 'budget' | 'payrates' | 'overtime' | 'workingHours' | 'notify';
|
|
2
|
+
/** Keep unsupported sections out of the navigation until their API fields exist. */
|
|
7
3
|
export declare const SETTINGS_SECTIONS: {
|
|
8
4
|
key: ScheduleSettingsSection;
|
|
9
5
|
label: string;
|
|
10
6
|
}[];
|
|
11
|
-
/**
|
|
12
|
-
* (Labour budget / Overtime / Notifications). The mockup's sibling Shift & coverage / Seasonal
|
|
13
|
-
* / Positions pages are a separate, out-of-scope epic — not built here. One draft object, like
|
|
14
|
-
* the mockup's settingsDraft/spSnapshot(). */
|
|
7
|
+
/** Settings currently supported by the schedule API: pay rates and monthly OT hours. */
|
|
15
8
|
export declare function useScheduleSettings(): {
|
|
16
9
|
isOpen: import("vue").Ref<boolean, boolean>;
|
|
17
10
|
activeSection: import("vue").Ref<ScheduleSettingsSection, ScheduleSettingsSection>;
|
|
18
11
|
draft: {
|
|
19
|
-
salesForecast: number;
|
|
20
|
-
labourTarget: number;
|
|
21
|
-
budgetFromSales: boolean;
|
|
22
|
-
budget: number;
|
|
23
12
|
payRate: {
|
|
24
13
|
NORMAL: {
|
|
25
14
|
overtime: number;
|
|
@@ -33,17 +22,11 @@ export declare function useScheduleSettings(): {
|
|
|
33
22
|
overtime: number;
|
|
34
23
|
};
|
|
35
24
|
};
|
|
36
|
-
otCapHours: number;
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
waDisplayName: string;
|
|
42
|
-
defaults: {
|
|
43
|
-
wa: boolean;
|
|
44
|
-
push: boolean;
|
|
45
|
-
email: boolean;
|
|
46
|
-
};
|
|
25
|
+
otCapHours: number | null;
|
|
26
|
+
workingHours: {
|
|
27
|
+
minHoursPerDay: number | null;
|
|
28
|
+
maxHoursPerDay: number | null;
|
|
29
|
+
maxHoursPerWeek: number | null;
|
|
47
30
|
};
|
|
48
31
|
};
|
|
49
32
|
dirty: import("vue").ComputedRef<boolean>;
|
|
@@ -36,7 +36,9 @@ export interface ScheduleSwapState {
|
|
|
36
36
|
* and trading two people's shifts on the same day. Both skip the mockup's OT/pay-band cost
|
|
37
37
|
* preview and hard/soft override tiers — this board has no per-person pay bands to price
|
|
38
38
|
* against, so a candidate is either qualified-and-free or it isn't offered at all. */
|
|
39
|
-
export declare function useScheduleShiftActions(board: ScheduleBoardApi
|
|
39
|
+
export declare function useScheduleShiftActions(board: ScheduleBoardApi, options?: {
|
|
40
|
+
onToast?: (message: string, type?: 'success' | 'error' | 'info') => void;
|
|
41
|
+
}): {
|
|
40
42
|
menu: {
|
|
41
43
|
open: boolean;
|
|
42
44
|
empId: number | null;
|
|
@@ -56,6 +58,7 @@ export declare function useScheduleShiftActions(board: ScheduleBoardApi): {
|
|
|
56
58
|
changeSlot: import("vue").ComputedRef<import("../types").WorkSlot[]>;
|
|
57
59
|
changeCandidates: import("vue").ComputedRef<{
|
|
58
60
|
id: number;
|
|
61
|
+
sourceId: string;
|
|
59
62
|
name: string;
|
|
60
63
|
employmentType: "FULLTIME" | "PARTTIME";
|
|
61
64
|
role: string;
|
|
@@ -66,10 +69,12 @@ export declare function useScheduleShiftActions(board: ScheduleBoardApi): {
|
|
|
66
69
|
contractHours?: number | undefined;
|
|
67
70
|
rate: number;
|
|
68
71
|
positions: string[];
|
|
72
|
+
archivedPositions?: string[] | undefined;
|
|
69
73
|
shifts: ({
|
|
70
74
|
start: string;
|
|
71
75
|
end: string;
|
|
72
76
|
role: string;
|
|
77
|
+
positionId?: string | undefined;
|
|
73
78
|
status: import("../types").ShiftStatus;
|
|
74
79
|
clock?: {
|
|
75
80
|
in: string | null;
|
|
@@ -91,6 +96,7 @@ export declare function useScheduleShiftActions(board: ScheduleBoardApi): {
|
|
|
91
96
|
breakPayType: "PAID" | "UNPAID";
|
|
92
97
|
})[] | undefined;
|
|
93
98
|
assignmentId?: string | undefined;
|
|
99
|
+
updatedAt?: string | undefined;
|
|
94
100
|
splitGroupId?: string | undefined;
|
|
95
101
|
} | {
|
|
96
102
|
timeOff: "approved" | "pending";
|
|
@@ -117,6 +123,7 @@ export declare function useScheduleShiftActions(board: ScheduleBoardApi): {
|
|
|
117
123
|
start: string;
|
|
118
124
|
end: string;
|
|
119
125
|
role: string;
|
|
126
|
+
positionId?: string | undefined;
|
|
120
127
|
status: import("../types").ShiftStatus;
|
|
121
128
|
clock?: {
|
|
122
129
|
in: string | null;
|
|
@@ -138,6 +145,7 @@ export declare function useScheduleShiftActions(board: ScheduleBoardApi): {
|
|
|
138
145
|
breakPayType: "PAID" | "UNPAID";
|
|
139
146
|
})[] | undefined;
|
|
140
147
|
assignmentId?: string | undefined;
|
|
148
|
+
updatedAt?: string | undefined;
|
|
141
149
|
splitGroupId?: string | undefined;
|
|
142
150
|
}[] | null)[];
|
|
143
151
|
remarks: {
|
|
@@ -154,9 +162,16 @@ export declare function useScheduleShiftActions(board: ScheduleBoardApi): {
|
|
|
154
162
|
payBasis?: "hourly" | "monthly" | undefined;
|
|
155
163
|
payAmount?: number | undefined;
|
|
156
164
|
maxHours?: number | undefined;
|
|
157
|
-
maxOtHours?: number | undefined;
|
|
158
165
|
minHours?: number | undefined;
|
|
159
|
-
|
|
166
|
+
minHoursPerDay?: number | undefined;
|
|
167
|
+
workingHours?: {
|
|
168
|
+
minHoursPerDay: number | null;
|
|
169
|
+
maxHoursPerDay: number | null;
|
|
170
|
+
maxHoursPerWeek: number | null;
|
|
171
|
+
} | undefined;
|
|
172
|
+
overtime?: {
|
|
173
|
+
maxHoursPerMonth: number | null;
|
|
174
|
+
} | undefined;
|
|
160
175
|
preferences?: string[] | undefined;
|
|
161
176
|
seniority?: "senior" | "junior" | "" | undefined;
|
|
162
177
|
availDays?: boolean[] | undefined;
|
|
@@ -165,6 +180,7 @@ export declare function useScheduleShiftActions(board: ScheduleBoardApi): {
|
|
|
165
180
|
to: string;
|
|
166
181
|
}[] | undefined;
|
|
167
182
|
passcode?: string | undefined;
|
|
183
|
+
code?: string | undefined;
|
|
168
184
|
masterUser?: boolean | undefined;
|
|
169
185
|
}[]>;
|
|
170
186
|
openChange: (empId: number, dayIdx: number, slotIndex?: number) => void;
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
import type { WorkSlot } from '../types';
|
|
2
|
+
import { type ScheduleBreakChoice, type ScheduleShiftSegment } from './schedule-shift-time';
|
|
3
|
+
export interface ScheduleHeadcountRole {
|
|
4
|
+
position: string;
|
|
5
|
+
count: number;
|
|
6
|
+
sen: '' | 'senior' | 'junior';
|
|
7
|
+
}
|
|
8
|
+
export declare function useScheduleShiftDraft(): {
|
|
9
|
+
open: import("vue").Ref<boolean, boolean>;
|
|
10
|
+
dayIdx: import("vue").Ref<number | null, number | null>;
|
|
11
|
+
empId: import("vue").Ref<number | null, number | null>;
|
|
12
|
+
originalEmpId: import("vue").Ref<number | null, number | null>;
|
|
13
|
+
editingOpenShiftId: import("vue").Ref<number | null, number | null>;
|
|
14
|
+
isNew: import("vue").Ref<boolean, boolean>;
|
|
15
|
+
originalSlotIndex: import("vue").Ref<number, number>;
|
|
16
|
+
originalSlotCount: import("vue").Ref<number, number>;
|
|
17
|
+
originalSplitGroupId: import("vue").Ref<string | undefined, string | undefined>;
|
|
18
|
+
originalDayHadContent: import("vue").Ref<boolean, boolean>;
|
|
19
|
+
name: import("vue").Ref<string, string>;
|
|
20
|
+
segments: import("vue").Ref<{
|
|
21
|
+
start: string;
|
|
22
|
+
end: string;
|
|
23
|
+
}[], ScheduleShiftSegment[] | {
|
|
24
|
+
start: string;
|
|
25
|
+
end: string;
|
|
26
|
+
}[]>;
|
|
27
|
+
role: import("vue").Ref<string, string>;
|
|
28
|
+
positionId: import("vue").Ref<string | undefined, string | undefined>;
|
|
29
|
+
required: import("vue").Ref<number, number>;
|
|
30
|
+
sen: import("vue").Ref<"" | "senior" | "junior", "" | "senior" | "junior">;
|
|
31
|
+
empType: import("vue").Ref<"" | "full" | "part", "" | "full" | "part">;
|
|
32
|
+
roles: import("vue").Ref<{
|
|
33
|
+
position: string;
|
|
34
|
+
count: number;
|
|
35
|
+
sen: "" | "senior" | "junior";
|
|
36
|
+
}[], ScheduleHeadcountRole[] | {
|
|
37
|
+
position: string;
|
|
38
|
+
count: number;
|
|
39
|
+
sen: "" | "senior" | "junior";
|
|
40
|
+
}[]>;
|
|
41
|
+
breakChoice: import("vue").Ref<ScheduleBreakChoice, ScheduleBreakChoice>;
|
|
42
|
+
breakCustomMins: import("vue").Ref<number, number>;
|
|
43
|
+
breakCustomUnit: import("vue").Ref<"mins" | "hrs", "mins" | "hrs">;
|
|
44
|
+
breakMode: import("vue").Ref<"time" | "duration", "time" | "duration">;
|
|
45
|
+
breakStartTime: import("vue").Ref<string, string>;
|
|
46
|
+
breakEndTime: import("vue").Ref<string, string>;
|
|
47
|
+
repeatDays: import("vue").Ref<boolean[], boolean[]>;
|
|
48
|
+
gapNote: import("vue").Ref<string | null, string | null>;
|
|
49
|
+
conflictNote: import("vue").Ref<string | null, string | null>;
|
|
50
|
+
grantSkill: import("vue").Ref<boolean, boolean>;
|
|
51
|
+
unassignMode: import("vue").Ref<boolean, boolean>;
|
|
52
|
+
resetCommon: (day: number) => void;
|
|
53
|
+
applyNormalizedBreak: (minutes: number | undefined) => void;
|
|
54
|
+
applyPersistedBreaks: (breaks: WorkSlot["breaks"], fallbackMins: number | undefined) => void;
|
|
55
|
+
resolvedBreakMins: () => number | undefined;
|
|
56
|
+
resolvedBreaks: () => WorkSlot["breaks"];
|
|
57
|
+
buildDraftSlot: () => WorkSlot | WorkSlot[];
|
|
58
|
+
close: () => void;
|
|
59
|
+
removeSegment: (index: number) => void;
|
|
60
|
+
addRole: () => void;
|
|
61
|
+
removeRole: (index: number) => void;
|
|
62
|
+
segmentHoursOf: (segment: ScheduleShiftSegment) => number;
|
|
63
|
+
};
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import type { ComputedRef } from 'vue';
|
|
2
|
+
import type { ScheduleBoardApi } from './useScheduleBoard';
|
|
3
|
+
import { useScheduleShiftDraft } from './useScheduleShiftDraft';
|
|
4
|
+
type ShiftDraft = ReturnType<typeof useScheduleShiftDraft>;
|
|
5
|
+
interface UseScheduleShiftPersistenceOptions {
|
|
6
|
+
draft: ShiftDraft;
|
|
7
|
+
saveDisabled: ComputedRef<boolean>;
|
|
8
|
+
showGrantSkill: ComputedRef<boolean>;
|
|
9
|
+
onToast?: (message: string, type?: 'success' | 'error' | 'info') => void;
|
|
10
|
+
}
|
|
11
|
+
/** Mutations for the shift popover. Draft editing stays separate so the UI can preview and
|
|
12
|
+
* validate without owning board writes. */
|
|
13
|
+
export declare function useScheduleShiftPersistence(board: ScheduleBoardApi, options: UseScheduleShiftPersistenceOptions): {
|
|
14
|
+
save: () => void;
|
|
15
|
+
remove: () => void;
|
|
16
|
+
};
|
|
17
|
+
export {};
|