@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.
Files changed (160) hide show
  1. package/dist/{ApprovalCodeList-cG0zmQVJ.js → ApprovalCodeList-Ce9BWzt9.js} +5 -5
  2. package/dist/{AuditLogList-BTifJhO1.js → AuditLogList-Cw7WN8K4.js} +4 -4
  3. package/dist/{ConditionBuilderForm.vue_vue_type_script_setup_true_lang-qr5TwLTK.js → ConditionBuilderForm.vue_vue_type_script_setup_true_lang-BuofBFPC.js} +2 -2
  4. package/dist/{EmployeeList-DzcMtxJ3.js → EmployeeList-B8qWPNvj.js} +25 -24
  5. package/dist/{GrantUserList-D5b7tJ8Y.js → GrantUserList-CgigJIPF.js} +6 -6
  6. package/dist/{Main-DFwdAWqn.js → Main-BfoVdxlY.js} +8 -8
  7. package/dist/{Main-B2r59IOW.js → Main-Cg2vC_cj.js} +5 -5
  8. package/dist/{Main-DkLBemi7.js → Main-D26pgKy1.js} +11 -11
  9. package/dist/{PermissionSetList-B80hrfMW.js → PermissionSetList-CbtDiF4k.js} +19 -18
  10. package/dist/PortalPermissionEditor.vue_vue_type_script_setup_true_lang-DW1oBTbb.js +4167 -0
  11. 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
  12. package/dist/ResponsiveContextMenu.vue_vue_type_script_setup_true_lang-mSJFKo7r.js +132 -0
  13. package/dist/{RoleList-DHO4JRKF.js → RoleList-D0I8mbyI.js} +21 -20
  14. package/dist/ScheduleAddPositionModal.vue_vue_type_script_setup_true_lang-Ctwukt6o.js +492 -0
  15. package/dist/ScheduleGeneralPage-Kv4pnxCL.js +778 -0
  16. package/dist/ScheduleModal.vue_vue_type_script_setup_true_lang-CSA0aaqJ.js +2285 -0
  17. package/dist/SchedulePage-BMWd0bod.js +17942 -0
  18. package/dist/{SchedulePositionPage-C0hrO11d.js → SchedulePositionPage-5Xvx6Dk5.js} +66 -65
  19. package/dist/{TeamMemberList-CgFWLRBM.js → TeamMemberList-Bh7i5l16.js} +24 -23
  20. package/dist/{TimesheetList-Dp40G-0I.js → TimesheetList-BJKU-hnk.js} +7 -7
  21. 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
  22. package/dist/{app-CmBSTvaI.js → app-BDJ5qxhF.js} +678 -594
  23. package/dist/app.js +1 -1
  24. package/dist/{approval-code-C9DmR4Md.js → approval-code-DHsUgc4K.js} +1 -1
  25. package/dist/{dayjs.min-CfL2DQ3d.js → dayjs.min-BWM0vY4w.js} +1 -1
  26. package/dist/{employee-DQcHjoij.js → employee-bBSuAJUr.js} +29 -28
  27. package/dist/{grant-user-Bv-pJ9Wt.js → grant-user-qzKHFTro.js} +1 -1
  28. package/dist/{iteration-BlavheWG.js → iteration-Dg7VAkAn.js} +1 -1
  29. package/dist/{lodash-QerqayrJ.js → lodash-BknY3p4o.js} +1 -1
  30. package/dist/{restaurant-D7PEQjPY.js → restaurant-BbYRA_IT.js} +4 -3
  31. package/dist/{role-RM2YLO7n.js → role-BJnJnNd_.js} +2 -2
  32. package/dist/{rule-DjlvYIuP.js → rule-BEuOY7Wf.js} +3 -3
  33. package/dist/src/api/schedule/index.d.ts +8 -1
  34. package/dist/src/components/layout/withScheduleShell.d.ts +10 -0
  35. package/dist/src/composables/useDiscardConfirm.d.ts +3 -1
  36. package/dist/src/types/employee.d.ts +1 -0
  37. package/dist/src/types/schedule.d.ts +3 -4
  38. package/dist/src/views/scheduling/components/ScheduleAreaRows.vue.d.ts +0 -8
  39. package/dist/src/views/scheduling/components/ScheduleBoardAreaRows.vue.d.ts +23 -0
  40. package/dist/src/views/scheduling/components/ScheduleBoardEditOverlays.vue.d.ts +17 -0
  41. package/dist/src/views/scheduling/components/ScheduleBoardEmployeeRows.vue.d.ts +31 -0
  42. package/dist/src/views/scheduling/components/ScheduleBoardGridHeader.vue.d.ts +24 -0
  43. package/dist/src/views/scheduling/components/ScheduleBoardInteractionOverlays.vue.d.ts +32 -0
  44. package/dist/src/views/scheduling/components/ScheduleBoardOnboardingOverlays.vue.d.ts +25 -0
  45. package/dist/src/views/scheduling/components/ScheduleBoardRails.vue.d.ts +17 -0
  46. package/dist/src/views/scheduling/components/ScheduleBoardToolbar.vue.d.ts +38 -0
  47. package/dist/src/views/scheduling/components/ScheduleBoardUtilityOverlays.vue.d.ts +22 -0
  48. package/dist/src/views/scheduling/components/{ScheduleOnboardingComplete.vue.d.ts → ScheduleCompletionDialog.vue.d.ts} +8 -3
  49. package/dist/src/views/scheduling/components/ScheduleConfirmModal.vue.d.ts +2 -1
  50. package/dist/src/views/scheduling/components/{ScheduleShiftCardMenu.vue.d.ts → ScheduleContextMenu.vue.d.ts} +7 -2
  51. package/dist/src/views/scheduling/components/{SchedulePdfPreview.vue.d.ts → ScheduleExportPreview.vue.d.ts} +1 -0
  52. package/dist/src/views/scheduling/components/ScheduleLoadState.vue.d.ts +9 -0
  53. package/dist/src/views/scheduling/components/ScheduleModal.vue.d.ts +26 -0
  54. package/dist/src/views/scheduling/components/{ScheduleExportDoneDialog.vue.d.ts → ScheduleOnboardingAssignPositionModal.vue.d.ts} +2 -2
  55. package/dist/src/views/scheduling/components/{ScheduleAssignEmployeePopover.vue.d.ts → ScheduleOnboardingClosedDayConfirm.vue.d.ts} +2 -2
  56. package/dist/src/views/scheduling/components/{ScheduleEmployeeMenu.vue.d.ts → ScheduleOnboardingDemandDays.vue.d.ts} +2 -2
  57. package/dist/src/views/scheduling/components/ScheduleOnboardingDemandFooter.vue.d.ts +6 -0
  58. package/dist/src/views/scheduling/components/ScheduleOnboardingDemandHeader.vue.d.ts +6 -0
  59. package/dist/src/views/scheduling/components/ScheduleOnboardingHoursProfileNotice.vue.d.ts +10 -0
  60. package/dist/src/views/scheduling/components/ScheduleOnboardingPositions.vue.d.ts +6 -0
  61. package/dist/src/views/scheduling/components/ScheduleOnboardingReview.vue.d.ts +6 -0
  62. package/dist/src/views/scheduling/components/ScheduleOnboardingWizardFooter.vue.d.ts +6 -0
  63. package/dist/src/views/scheduling/components/ScheduleOnboardingWizardHeader.vue.d.ts +11 -0
  64. package/dist/src/views/scheduling/components/ScheduleSelect.vue.d.ts +17 -1
  65. package/dist/src/views/scheduling/components/ScheduleSetupBanner.vue.d.ts +12 -0
  66. package/dist/src/views/scheduling/components/ScheduleShiftPopover.vue.d.ts +2 -2
  67. package/dist/src/views/scheduling/components/ScheduleStaffRail.vue.d.ts +4 -4
  68. package/dist/src/views/scheduling/components/ScheduleStaffRows.vue.d.ts +2 -12
  69. package/dist/src/views/scheduling/components/ScheduleTopbar.vue.d.ts +3 -3
  70. package/dist/src/views/scheduling/composables/onboarding-types.d.ts +1 -1
  71. package/dist/src/views/scheduling/composables/remyPrompt.d.ts +13 -0
  72. package/dist/src/views/scheduling/composables/schedule-add-employee-form.d.ts +12 -8
  73. package/dist/src/views/scheduling/composables/schedule-board-helpers.d.ts +5 -1
  74. package/dist/src/views/scheduling/composables/schedule-breaks.d.ts +7 -1
  75. package/dist/src/views/scheduling/composables/schedule-calendar.d.ts +7 -0
  76. package/dist/src/views/scheduling/composables/schedule-cost.d.ts +19 -0
  77. package/dist/src/views/scheduling/composables/schedule-day-meta.d.ts +1 -3
  78. package/dist/src/views/scheduling/composables/schedule-demand-domain.d.ts +11 -0
  79. package/dist/src/views/scheduling/composables/schedule-export-matrix.d.ts +14 -0
  80. package/dist/src/views/scheduling/composables/schedule-time.d.ts +8 -0
  81. package/dist/src/views/scheduling/composables/schedule-week-cache.d.ts +1 -4
  82. package/dist/src/views/scheduling/composables/useRemyAppStore.d.ts +15 -0
  83. package/dist/src/views/scheduling/composables/useScheduleAddEmployee.d.ts +35 -21
  84. package/dist/src/views/scheduling/composables/useScheduleAreaBoard.d.ts +0 -13
  85. package/dist/src/views/scheduling/composables/useScheduleAreaDragDrop.d.ts +2 -8
  86. package/dist/src/views/scheduling/composables/useScheduleAssignmentMutations.d.ts +13 -0
  87. package/dist/src/views/scheduling/composables/useScheduleAutoSchedule.d.ts +3 -3
  88. package/dist/src/views/scheduling/composables/useScheduleBoard.d.ts +52 -11
  89. package/dist/src/views/scheduling/composables/useScheduleCloneOutletModal.d.ts +3 -1
  90. package/dist/src/views/scheduling/composables/useScheduleCostRail.d.ts +6 -1
  91. package/dist/src/views/scheduling/composables/useScheduleDayNote.d.ts +1 -2
  92. package/dist/src/views/scheduling/composables/useScheduleDayTimeline.d.ts +0 -3
  93. package/dist/src/views/scheduling/composables/useScheduleDemand.d.ts +7 -24
  94. package/dist/src/views/scheduling/composables/useScheduleDemandSheet.d.ts +26 -5
  95. package/dist/src/views/scheduling/composables/useScheduleEmployeeAccess.d.ts +16 -0
  96. package/dist/src/views/scheduling/composables/useScheduleEmployeeAvailability.d.ts +13 -0
  97. package/dist/src/views/scheduling/composables/useScheduleEmployeeCandidates.d.ts +27 -0
  98. package/dist/src/views/scheduling/composables/useScheduleEmployeeCompensation.d.ts +7 -0
  99. package/dist/src/views/scheduling/composables/useScheduleEmployeeForm.d.ts +22 -0
  100. package/dist/src/views/scheduling/composables/useScheduleEmployeeIdentity.d.ts +9 -0
  101. package/dist/src/views/scheduling/composables/useScheduleEmployeeMenu.d.ts +6 -3
  102. package/dist/src/views/scheduling/composables/useScheduleEmployeePersistence.d.ts +29 -0
  103. package/dist/src/views/scheduling/composables/useScheduleEmployeeValidation.d.ts +20 -0
  104. package/dist/src/views/scheduling/composables/useScheduleExport.d.ts +19 -11
  105. package/dist/src/views/scheduling/composables/useScheduleGapPopover.d.ts +5 -6
  106. package/dist/src/views/scheduling/composables/useScheduleOnboardingAvailability.d.ts +58 -0
  107. package/dist/src/views/scheduling/composables/useScheduleOnboardingDemand.d.ts +45 -0
  108. package/dist/src/views/scheduling/composables/useScheduleOnboardingEmployees.d.ts +206 -0
  109. package/dist/src/views/scheduling/composables/useScheduleOnboardingHours.d.ts +15 -0
  110. package/dist/src/views/scheduling/composables/useScheduleOnboardingNavigation.d.ts +11 -0
  111. package/dist/src/views/scheduling/composables/useScheduleOnboardingWizard.d.ts +313 -529
  112. package/dist/src/views/scheduling/composables/useSchedulePageActions.d.ts +18 -0
  113. package/dist/src/views/scheduling/composables/useSchedulePageCellActions.d.ts +21 -0
  114. package/dist/src/views/scheduling/composables/useSchedulePageCellDrop.d.ts +18 -0
  115. package/dist/src/views/scheduling/composables/useSchedulePageEmployeeActions.d.ts +22 -0
  116. package/dist/src/views/scheduling/composables/useSchedulePageOverlays.d.ts +10 -7
  117. package/dist/src/views/scheduling/composables/useSchedulePdfExport.d.ts +19 -0
  118. package/dist/src/views/scheduling/composables/useSchedulePositionModal.d.ts +4 -1
  119. package/dist/src/views/scheduling/composables/useSchedulePositions.d.ts +4 -2
  120. package/dist/src/views/scheduling/composables/useSchedulePublish.d.ts +9 -1
  121. package/dist/src/views/scheduling/composables/useSchedulePublishPersistence.d.ts +11 -0
  122. package/dist/src/views/scheduling/composables/useScheduleRoster.d.ts +32 -4
  123. package/dist/src/views/scheduling/composables/useScheduleSettings.d.ts +8 -25
  124. package/dist/src/views/scheduling/composables/useScheduleShiftActions.d.ts +19 -3
  125. package/dist/src/views/scheduling/composables/useScheduleShiftDraft.d.ts +63 -0
  126. package/dist/src/views/scheduling/composables/useScheduleShiftPersistence.d.ts +17 -0
  127. package/dist/src/views/scheduling/composables/useScheduleShiftPopover.d.ts +31 -9
  128. package/dist/src/views/scheduling/composables/useScheduleStatsRow.d.ts +4 -1
  129. package/dist/src/views/scheduling/composables/useScheduleTour.d.ts +6 -4
  130. package/dist/src/views/scheduling/country-rules/index.d.ts +24 -0
  131. package/dist/src/views/scheduling/data.d.ts +16 -7
  132. package/dist/src/views/scheduling/locales/index.d.ts +80 -0
  133. package/dist/src/views/scheduling/schedule-constants.d.ts +7 -0
  134. package/dist/src/views/scheduling/schedule-state.d.ts +104 -16
  135. package/dist/src/views/scheduling/schedule-store.d.ts +30 -6
  136. package/dist/src/views/scheduling/types.d.ts +29 -5
  137. package/dist/style.css +1 -1
  138. package/dist/tsconfig.app.tsbuildinfo +1 -1
  139. package/dist/{useAppStore-d_nHyK5u.js → useAppStore-BoLkvkE2.js} +1 -1
  140. package/dist/useDiscardConfirm-CzZSPyvh.js +28 -0
  141. package/dist/{useLoading-JFoghhRz.js → useLoading-Ch1AUYT1.js} +1 -1
  142. package/dist/{useReportPermissions-Bl6Br79r.js → useReportPermissions-D8hJ5W0t.js} +3 -3
  143. package/package.json +2 -1
  144. package/dist/PortalPermissionEditor.vue_vue_type_script_setup_true_lang-DjNcJQM9.js +0 -4167
  145. package/dist/ScheduleAddPositionModal.vue_vue_type_script_setup_true_lang-B-XtB64L.js +0 -452
  146. package/dist/ScheduleGeneralPage-WlBM8bxV.js +0 -629
  147. package/dist/SchedulePage-Nm0krGVU.js +0 -17056
  148. package/dist/ScheduleSelect.vue_vue_type_script_setup_true_lang-DTDXir_7.js +0 -1150
  149. package/dist/src/components/layout/withShell.d.ts +0 -14
  150. package/dist/src/views/scheduling/components/ScheduleAllShiftsRow.vue.d.ts +0 -22
  151. package/dist/src/views/scheduling/components/ScheduleOpenShiftCardMenu.vue.d.ts +0 -14
  152. package/dist/src/views/scheduling/components/ScheduleStackPopover.vue.d.ts +0 -14
  153. package/dist/src/views/scheduling/components/ScheduleTourAllSet.vue.d.ts +0 -6
  154. package/dist/src/views/scheduling/composables/useScheduleAllShiftsRow.d.ts +0 -77
  155. package/dist/src/views/scheduling/composables/useScheduleAssign.d.ts +0 -122
  156. package/dist/src/views/scheduling/composables/useScheduleOpenShiftCard.d.ts +0 -23
  157. package/dist/src/views/scheduling/composables/useScheduleStaffRail.d.ts +0 -17
  158. package/dist/src/views/scheduling/composables/useScheduleTopbar.d.ts +0 -10
  159. package/dist/useDiscardConfirm-DPhEV6v0.js +0 -157
  160. /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
- import type { ScheduleTopbarApi } from './useScheduleTopbar';
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
- openShiftCard: ScheduleOpenShiftCardApi;
18
- }): void;
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: (name: string) => number;
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
- otAfterDaily?: number | undefined;
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
- otAfterDaily?: number | undefined;
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
- /** Labour budget and Notifications are out of the General page for now — see
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
- /** The mockup's Scheduling Settings page, scoped to the 3 tabs the topbar gear icon opens
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
- otBudget: number;
38
- notify: {
39
- waConnected: boolean;
40
- waNumber: string;
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
- otAfterDaily?: number | undefined;
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 {};