@feedmepos/mf-hrm-portal 2.2.5 → 2.3.0-dev.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (230) hide show
  1. package/dist/{ApprovalCodeList-Df5_U7Fj.js → ApprovalCodeList-CJaNPHZC.js} +7 -7
  2. package/dist/{AuditLogList-BT-YM-CP.js → AuditLogList-CHA98ZqW.js} +19 -18
  3. package/dist/{ConditionBuilderForm.vue_vue_type_script_setup_true_lang-Df3IHAyZ.js → ConditionBuilderForm.vue_vue_type_script_setup_true_lang-C7rvthEI.js} +2 -2
  4. package/dist/{EmployeeList-BfhG5ktC.js → EmployeeList-CVmMKt71.js} +31 -30
  5. package/dist/{FormItem.vue_vue_type_script_setup_true_lang-DPT2FoIc.js → FormItem.vue_vue_type_script_setup_true_lang-CUnlKsxk.js} +1 -1
  6. package/dist/{GrantUserList-B_WhIR9L.js → GrantUserList-MYjgt5-F.js} +8 -8
  7. package/dist/{Main-Cxwiaabw.js → Main-BgB9lD4K.js} +11 -11
  8. package/dist/{Main-DKOPDO1K.js → Main-C0cnqQ3B.js} +8 -8
  9. package/dist/{Main-CGrtJkUl.js → Main-hlcHtrsc.js} +5 -5
  10. package/dist/{PermissionSetList-CqiLsqaj.js → PermissionSetList-5f1WIaVa.js} +7 -7
  11. package/dist/{PortalPermissionEditor.vue_vue_type_script_setup_true_lang-CmNTqB0v.js → PortalPermissionEditor.vue_vue_type_script_setup_true_lang-CFoTAGIX.js} +1340 -1340
  12. package/dist/{PortalUserSearcher.vue_vue_type_style_index_0_scoped_827dfd60_lang-Z-DH7ouY.js → PortalUserSearcher.vue_vue_type_style_index_0_scoped_827dfd60_lang-fe-Rdwn4.js} +1 -1
  13. package/dist/{RoleList-iudKGaCg.js → RoleList-DNR4miXr.js} +9 -9
  14. package/dist/ScheduleAddPositionModal.vue_vue_type_script_setup_true_lang-B4VUyKW3.js +470 -0
  15. package/dist/ScheduleGeneralPage-Cd5AlY4z.js +666 -0
  16. package/dist/ScheduleModal.vue_vue_type_script_setup_true_lang-Cf0l2MRg.js +2188 -0
  17. package/dist/SchedulePage-C8m0-m3l.js +18257 -0
  18. package/dist/SchedulePositionPage-DyRckyUx.js +264 -0
  19. package/dist/SelectFilter-CG13h83-.js +264 -0
  20. package/dist/{TeamMemberList-D_8d24Vw.js → TeamMemberList-mw5OveZG.js} +38 -37
  21. package/dist/{TimesheetList-VvIiAVLt.js → TimesheetList-BzXarZbM.js} +54 -53
  22. package/dist/{TimesheetList.vue_vue_type_style_index_0_scoped_63294af2_lang-Bmiz85Y3.js → TimesheetList.vue_vue_type_style_index_0_scoped_63294af2_lang-Dq5i4poN.js} +3 -3
  23. package/dist/_plugin-vue_export-helper-CHgC5LLL.js +9 -0
  24. package/dist/{app-CVqQjVFY.js → app-DSsdRLHg.js} +3252 -2475
  25. package/dist/app.js +1 -1
  26. package/dist/{approval-code-BRClD2HN.js → approval-code-C9DmR4Md.js} +1 -1
  27. package/dist/{dayjs.min-Bhe9FtFt.js → dayjs.min-B6xBXQtU.js} +1 -1
  28. package/dist/{employee-thZndJWE.js → employee-hMhzuqk1.js} +29 -28
  29. package/dist/{grant-user-Dhi3ilC_.js → grant-user-Bv-pJ9Wt.js} +1 -1
  30. package/dist/{iteration-Cd5fl3-x.js → iteration-B34AvpNC.js} +1 -1
  31. package/dist/{lodash-DiJ9xZIF.js → lodash-1Vyuy7Mu.js} +1 -1
  32. package/dist/{restaurant-DiYb0pCm.js → restaurant-D7PEQjPY.js} +258 -252
  33. package/dist/{role-DdizOTVB.js → role-DKOrgO6f.js} +2 -2
  34. package/dist/{rule-CYFm43rI.js → rule-CBzQ3GeV.js} +36 -36
  35. package/dist/src/api/restaurant/index.d.ts +2 -0
  36. package/dist/src/api/schedule/index.d.ts +55 -0
  37. package/dist/src/components/layout/PortalShell.vue.d.ts +12 -0
  38. package/dist/src/components/layout/withScheduleShell.d.ts +10 -0
  39. package/dist/src/composables/useMessage.d.ts +8 -2
  40. package/dist/src/router/shared.d.ts +4 -1
  41. package/dist/src/types/employee.d.ts +1 -0
  42. package/dist/src/types/schedule.d.ts +24 -0
  43. package/dist/src/views/scheduling/ScheduleGeneralPage.vue.d.ts +3 -0
  44. package/dist/src/views/scheduling/SchedulePage.vue.d.ts +3 -0
  45. package/dist/src/views/scheduling/SchedulePositionPage.vue.d.ts +3 -0
  46. package/dist/src/views/scheduling/components/ScheduleAddEmployeeIdentitySection.vue.d.ts +6 -0
  47. package/dist/src/views/scheduling/components/ScheduleAddEmployeeModal.vue.d.ts +12 -0
  48. package/dist/src/views/scheduling/components/ScheduleAddEmployeeModeStep.vue.d.ts +6 -0
  49. package/dist/src/views/scheduling/components/ScheduleAddEmployeePosAccessSection.vue.d.ts +6 -0
  50. package/dist/src/views/scheduling/components/ScheduleAddEmployeePositionsSection.vue.d.ts +10 -0
  51. package/dist/src/views/scheduling/components/ScheduleAddEmployeeSchedulingSection.vue.d.ts +6 -0
  52. package/dist/src/views/scheduling/components/ScheduleAddPickPopover.vue.d.ts +6 -0
  53. package/dist/src/views/scheduling/components/ScheduleAddPositionModal.vue.d.ts +6 -0
  54. package/dist/src/views/scheduling/components/ScheduleAllShiftsRow.vue.d.ts +22 -0
  55. package/dist/src/views/scheduling/components/ScheduleAreaRows.vue.d.ts +45 -0
  56. package/dist/src/views/scheduling/components/ScheduleAssignEmployeePopover.vue.d.ts +6 -0
  57. package/dist/src/views/scheduling/components/ScheduleAutoScheduleDetailsModal.vue.d.ts +6 -0
  58. package/dist/src/views/scheduling/components/ScheduleAutoScheduleModal.vue.d.ts +10 -0
  59. package/dist/src/views/scheduling/components/ScheduleBoardAreaRows.vue.d.ts +28 -0
  60. package/dist/src/views/scheduling/components/ScheduleBoardEditOverlays.vue.d.ts +19 -0
  61. package/dist/src/views/scheduling/components/ScheduleBoardEmployeeRows.vue.d.ts +38 -0
  62. package/dist/src/views/scheduling/components/ScheduleBoardGridHeader.vue.d.ts +24 -0
  63. package/dist/src/views/scheduling/components/ScheduleBoardInteractionOverlays.vue.d.ts +38 -0
  64. package/dist/src/views/scheduling/components/ScheduleBoardOnboardingOverlays.vue.d.ts +25 -0
  65. package/dist/src/views/scheduling/components/ScheduleBoardRails.vue.d.ts +17 -0
  66. package/dist/src/views/scheduling/components/ScheduleBoardToolbar.vue.d.ts +39 -0
  67. package/dist/src/views/scheduling/components/ScheduleBoardUtilityOverlays.vue.d.ts +22 -0
  68. package/dist/src/views/scheduling/components/ScheduleButton.vue.d.ts +23 -0
  69. package/dist/src/views/scheduling/components/ScheduleChangeEmployeeModal.vue.d.ts +8 -0
  70. package/dist/src/views/scheduling/components/ScheduleCloneOutletModal.vue.d.ts +6 -0
  71. package/dist/src/views/scheduling/components/ScheduleCoach.vue.d.ts +6 -0
  72. package/dist/src/views/scheduling/components/ScheduleCompletionDialog.vue.d.ts +15 -0
  73. package/dist/src/views/scheduling/components/ScheduleConfirmModal.vue.d.ts +32 -0
  74. package/dist/src/views/scheduling/components/ScheduleContextMenu.vue.d.ts +21 -0
  75. package/dist/src/views/scheduling/components/ScheduleCostRail.vue.d.ts +8 -0
  76. package/dist/src/views/scheduling/components/ScheduleCostRailEmptyArt.vue.d.ts +2 -0
  77. package/dist/src/views/scheduling/components/ScheduleDateRangePopover.vue.d.ts +6 -0
  78. package/dist/src/views/scheduling/components/ScheduleDayNotePopover.vue.d.ts +6 -0
  79. package/dist/src/views/scheduling/components/ScheduleDayTimeline.vue.d.ts +12 -0
  80. package/dist/src/views/scheduling/components/ScheduleDemandRow.vue.d.ts +23 -0
  81. package/dist/src/views/scheduling/components/ScheduleDemandSheet.vue.d.ts +10 -0
  82. package/dist/src/views/scheduling/components/ScheduleDotsIcon.vue.d.ts +2 -0
  83. package/dist/src/views/scheduling/components/ScheduleEmployeeDetailPanel.vue.d.ts +12 -0
  84. package/dist/src/views/scheduling/components/ScheduleEmployeeIdentity.vue.d.ts +17 -0
  85. package/dist/src/views/scheduling/components/ScheduleExportPreview.vue.d.ts +7 -0
  86. package/dist/src/views/scheduling/components/ScheduleFilterBar.vue.d.ts +18 -0
  87. package/dist/src/views/scheduling/components/ScheduleGapPopover.vue.d.ts +6 -0
  88. package/dist/src/views/scheduling/components/ScheduleGridHeader.vue.d.ts +18 -0
  89. package/dist/src/views/scheduling/components/ScheduleGridSkeleton.vue.d.ts +2 -0
  90. package/dist/src/views/scheduling/components/ScheduleLeaveEditModal.vue.d.ts +6 -0
  91. package/dist/src/views/scheduling/components/ScheduleLoadState.vue.d.ts +10 -0
  92. package/dist/src/views/scheduling/components/ScheduleModal.vue.d.ts +26 -0
  93. package/dist/src/views/scheduling/components/ScheduleOnboardingClosedDayConfirm.vue.d.ts +6 -0
  94. package/dist/src/views/scheduling/components/ScheduleOnboardingDemandDays.vue.d.ts +6 -0
  95. package/dist/src/views/scheduling/components/ScheduleOnboardingDemandFooter.vue.d.ts +6 -0
  96. package/dist/src/views/scheduling/components/ScheduleOnboardingDemandHeader.vue.d.ts +6 -0
  97. package/dist/src/views/scheduling/components/ScheduleOnboardingDoneArt.vue.d.ts +2 -0
  98. package/dist/src/views/scheduling/components/ScheduleOnboardingHoursProfileNotice.vue.d.ts +10 -0
  99. package/dist/src/views/scheduling/components/ScheduleOnboardingPositions.vue.d.ts +6 -0
  100. package/dist/src/views/scheduling/components/ScheduleOnboardingReview.vue.d.ts +6 -0
  101. package/dist/src/views/scheduling/components/ScheduleOnboardingWelcome.vue.d.ts +11 -0
  102. package/dist/src/views/scheduling/components/ScheduleOnboardingWizard.vue.d.ts +9 -0
  103. package/dist/src/views/scheduling/components/ScheduleOnboardingWizardFooter.vue.d.ts +6 -0
  104. package/dist/src/views/scheduling/components/ScheduleOnboardingWizardHeader.vue.d.ts +11 -0
  105. package/dist/src/views/scheduling/components/SchedulePublishModal.vue.d.ts +8 -0
  106. package/dist/src/views/scheduling/components/ScheduleReviewBar.vue.d.ts +12 -0
  107. package/dist/src/views/scheduling/components/ScheduleSelect.vue.d.ts +60 -0
  108. package/dist/src/views/scheduling/components/ScheduleSelectExistingEmployeeModal.vue.d.ts +6 -0
  109. package/dist/src/views/scheduling/components/ScheduleSetupBanner.vue.d.ts +12 -0
  110. package/dist/src/views/scheduling/components/ScheduleShiftCell.vue.d.ts +35 -0
  111. package/dist/src/views/scheduling/components/ScheduleShiftHeadcountEditor.vue.d.ts +10 -0
  112. package/dist/src/views/scheduling/components/ScheduleShiftImpact.vue.d.ts +6 -0
  113. package/dist/src/views/scheduling/components/ScheduleShiftMoreOptions.vue.d.ts +8 -0
  114. package/dist/src/views/scheduling/components/ScheduleShiftPopover.vue.d.ts +16 -0
  115. package/dist/src/views/scheduling/components/ScheduleShiftRepeatDaysRow.vue.d.ts +8 -0
  116. package/dist/src/views/scheduling/components/ScheduleShiftSegmentsEditor.vue.d.ts +8 -0
  117. package/dist/src/views/scheduling/components/ScheduleShiftWhoPicker.vue.d.ts +25 -0
  118. package/dist/src/views/scheduling/components/ScheduleStackPopover.vue.d.ts +14 -0
  119. package/dist/src/views/scheduling/components/ScheduleStaffRail.vue.d.ts +16 -0
  120. package/dist/src/views/scheduling/components/ScheduleStaffRows.vue.d.ts +60 -0
  121. package/dist/src/views/scheduling/components/ScheduleStatsRow.vue.d.ts +12 -0
  122. package/dist/src/views/scheduling/components/ScheduleSwapShiftsModal.vue.d.ts +8 -0
  123. package/dist/src/views/scheduling/components/ScheduleTimePickerPopover.vue.d.ts +6 -0
  124. package/dist/src/views/scheduling/components/ScheduleTopbar.vue.d.ts +20 -0
  125. package/dist/src/views/scheduling/composables/auto-schedule-mapping.d.ts +33 -0
  126. package/dist/src/views/scheduling/composables/onboarding-constants.d.ts +5 -0
  127. package/dist/src/views/scheduling/composables/onboarding-hours.d.ts +7 -0
  128. package/dist/src/views/scheduling/composables/onboarding-types.d.ts +50 -0
  129. package/dist/src/views/scheduling/composables/remyPrompt.d.ts +13 -0
  130. package/dist/src/views/scheduling/composables/schedule-add-employee-form.d.ts +78 -0
  131. package/dist/src/views/scheduling/composables/schedule-board-helpers.d.ts +59 -0
  132. package/dist/src/views/scheduling/composables/schedule-breaks.d.ts +9 -0
  133. package/dist/src/views/scheduling/composables/schedule-calendar.d.ts +7 -0
  134. package/dist/src/views/scheduling/composables/schedule-cost.d.ts +19 -0
  135. package/dist/src/views/scheduling/composables/schedule-day-meta.d.ts +23 -0
  136. package/dist/src/views/scheduling/composables/schedule-demand-domain.d.ts +11 -0
  137. package/dist/src/views/scheduling/composables/schedule-employee-profile.d.ts +7 -0
  138. package/dist/src/views/scheduling/composables/schedule-export-matrix.d.ts +14 -0
  139. package/dist/src/views/scheduling/composables/schedule-popover-position.d.ts +16 -0
  140. package/dist/src/views/scheduling/composables/schedule-shift-time.d.ts +26 -0
  141. package/dist/src/views/scheduling/composables/schedule-time.d.ts +8 -0
  142. package/dist/src/views/scheduling/composables/schedule-week-cache.d.ts +7 -0
  143. package/dist/src/views/scheduling/composables/useCollapsedList.d.ts +9 -0
  144. package/dist/src/views/scheduling/composables/useRemyAppStore.d.ts +10 -0
  145. package/dist/src/views/scheduling/composables/useScheduleAddEmployee.d.ts +102 -0
  146. package/dist/src/views/scheduling/composables/useScheduleAddPick.d.ts +81 -0
  147. package/dist/src/views/scheduling/composables/useScheduleAllShiftsRow.d.ts +77 -0
  148. package/dist/src/views/scheduling/composables/useScheduleAreaBoard.d.ts +63 -0
  149. package/dist/src/views/scheduling/composables/useScheduleAreaDragDrop.d.ts +18 -0
  150. package/dist/src/views/scheduling/composables/useScheduleAssign.d.ts +124 -0
  151. package/dist/src/views/scheduling/composables/useScheduleAssignmentMutations.d.ts +13 -0
  152. package/dist/src/views/scheduling/composables/useScheduleAutoSchedule.d.ts +289 -0
  153. package/dist/src/views/scheduling/composables/useScheduleBoard.d.ts +539 -0
  154. package/dist/src/views/scheduling/composables/useScheduleCellState.d.ts +27 -0
  155. package/dist/src/views/scheduling/composables/useScheduleClashDetection.d.ts +28 -0
  156. package/dist/src/views/scheduling/composables/useScheduleCloneOutletModal.d.ts +21 -0
  157. package/dist/src/views/scheduling/composables/useScheduleCoach.d.ts +80 -0
  158. package/dist/src/views/scheduling/composables/useScheduleCopyWeek.d.ts +19 -0
  159. package/dist/src/views/scheduling/composables/useScheduleCostRail.d.ts +48 -0
  160. package/dist/src/views/scheduling/composables/useScheduleDayNote.d.ts +45 -0
  161. package/dist/src/views/scheduling/composables/useScheduleDayTimeline.d.ts +100 -0
  162. package/dist/src/views/scheduling/composables/useScheduleDemand.d.ts +61 -0
  163. package/dist/src/views/scheduling/composables/useScheduleDemandRow.d.ts +47 -0
  164. package/dist/src/views/scheduling/composables/useScheduleDemandSheet.d.ts +156 -0
  165. package/dist/src/views/scheduling/composables/useScheduleDragDrop.d.ts +54 -0
  166. package/dist/src/views/scheduling/composables/useScheduleEmployeeAccess.d.ts +11 -0
  167. package/dist/src/views/scheduling/composables/useScheduleEmployeeAvailability.d.ts +13 -0
  168. package/dist/src/views/scheduling/composables/useScheduleEmployeeCandidates.d.ts +26 -0
  169. package/dist/src/views/scheduling/composables/useScheduleEmployeeCompensation.d.ts +7 -0
  170. package/dist/src/views/scheduling/composables/useScheduleEmployeeForm.d.ts +22 -0
  171. package/dist/src/views/scheduling/composables/useScheduleEmployeeIdentity.d.ts +50 -0
  172. package/dist/src/views/scheduling/composables/useScheduleEmployeeMenu.d.ts +38 -0
  173. package/dist/src/views/scheduling/composables/useScheduleEmployeePersistence.d.ts +25 -0
  174. package/dist/src/views/scheduling/composables/useScheduleEmployeeProfile.d.ts +16 -0
  175. package/dist/src/views/scheduling/composables/useScheduleEmployeeValidation.d.ts +18 -0
  176. package/dist/src/views/scheduling/composables/useScheduleExport.d.ts +51 -0
  177. package/dist/src/views/scheduling/composables/useScheduleFilterBar.d.ts +14 -0
  178. package/dist/src/views/scheduling/composables/useScheduleGapPopover.d.ts +77 -0
  179. package/dist/src/views/scheduling/composables/useScheduleLeave.d.ts +59 -0
  180. package/dist/src/views/scheduling/composables/useScheduleLegend.d.ts +15 -0
  181. package/dist/src/views/scheduling/composables/useScheduleOnboardingAvailability.d.ts +58 -0
  182. package/dist/src/views/scheduling/composables/useScheduleOnboardingDemand.d.ts +45 -0
  183. package/dist/src/views/scheduling/composables/useScheduleOnboardingEmployees.d.ts +187 -0
  184. package/dist/src/views/scheduling/composables/useScheduleOnboardingFlow.d.ts +9 -0
  185. package/dist/src/views/scheduling/composables/useScheduleOnboardingHours.d.ts +15 -0
  186. package/dist/src/views/scheduling/composables/useScheduleOnboardingNavigation.d.ts +11 -0
  187. package/dist/src/views/scheduling/composables/useScheduleOnboardingPersistence.d.ts +13 -0
  188. package/dist/src/views/scheduling/composables/useScheduleOnboardingWizard.d.ts +1145 -0
  189. package/dist/src/views/scheduling/composables/useScheduleOpenShiftCard.d.ts +23 -0
  190. package/dist/src/views/scheduling/composables/useScheduleOutlet.d.ts +22 -0
  191. package/dist/src/views/scheduling/composables/useSchedulePageActions.d.ts +18 -0
  192. package/dist/src/views/scheduling/composables/useSchedulePageBootstrap.d.ts +9 -0
  193. package/dist/src/views/scheduling/composables/useSchedulePageCellActions.d.ts +21 -0
  194. package/dist/src/views/scheduling/composables/useSchedulePageCellDrop.d.ts +18 -0
  195. package/dist/src/views/scheduling/composables/useSchedulePageClearActions.d.ts +20 -0
  196. package/dist/src/views/scheduling/composables/useSchedulePageEmployeeActions.d.ts +22 -0
  197. package/dist/src/views/scheduling/composables/useSchedulePageOverlays.d.ts +25 -0
  198. package/dist/src/views/scheduling/composables/useSchedulePdfExport.d.ts +19 -0
  199. package/dist/src/views/scheduling/composables/useSchedulePositionModal.d.ts +54 -0
  200. package/dist/src/views/scheduling/composables/useSchedulePositions.d.ts +29 -0
  201. package/dist/src/views/scheduling/composables/useSchedulePublish.d.ts +124 -0
  202. package/dist/src/views/scheduling/composables/useSchedulePublishPersistence.d.ts +11 -0
  203. package/dist/src/views/scheduling/composables/useScheduleRangeCalendar.d.ts +27 -0
  204. package/dist/src/views/scheduling/composables/useScheduleRoster.d.ts +247 -0
  205. package/dist/src/views/scheduling/composables/useScheduleSettings.d.ts +35 -0
  206. package/dist/src/views/scheduling/composables/useScheduleSetupBanner.d.ts +17 -0
  207. package/dist/src/views/scheduling/composables/useScheduleShiftActions.d.ts +207 -0
  208. package/dist/src/views/scheduling/composables/useScheduleShiftDraft.d.ts +62 -0
  209. package/dist/src/views/scheduling/composables/useScheduleShiftPersistence.d.ts +17 -0
  210. package/dist/src/views/scheduling/composables/useScheduleShiftPopover.d.ts +214 -0
  211. package/dist/src/views/scheduling/composables/useScheduleStatsRow.d.ts +27 -0
  212. package/dist/src/views/scheduling/composables/useScheduleTimePicker.d.ts +49 -0
  213. package/dist/src/views/scheduling/composables/useScheduleTour.d.ts +95 -0
  214. package/dist/src/views/scheduling/composables/useScheduleViewportFit.d.ts +9 -0
  215. package/dist/src/views/scheduling/country-rules/index.d.ts +24 -0
  216. package/dist/src/views/scheduling/data.d.ts +102 -0
  217. package/dist/src/views/scheduling/locales/index.d.ts +688 -0
  218. package/dist/src/views/scheduling/schedule-constants.d.ts +7 -0
  219. package/dist/src/views/scheduling/schedule-state.d.ts +703 -0
  220. package/dist/src/views/scheduling/schedule-store.d.ts +110 -0
  221. package/dist/src/views/scheduling/types.d.ts +356 -0
  222. package/dist/src/views/team/components/PortalConditionForm.vue.d.ts +2 -2
  223. package/dist/src/views/team/condition-builders/ConditionBuilderForm.vue.d.ts +2 -2
  224. package/dist/style.css +1 -1
  225. package/dist/tsconfig.app.tsbuildinfo +1 -1
  226. package/dist/{useAppStore-BGhlB1_1.js → useAppStore-d_nHyK5u.js} +1 -1
  227. package/dist/{useLoading-CvgqVDbF.js → useLoading-JFoghhRz.js} +1 -1
  228. package/dist/{useReportPermissions-hVMtRNmj.js → useReportPermissions-B2ev0j4w.js} +3 -3
  229. package/package.json +4 -2
  230. package/dist/SelectFilter-ATOm0hdn.js +0 -269
@@ -0,0 +1,63 @@
1
+ import type { ScheduleBoardApi } from './useScheduleBoard';
2
+ import type { Employee, WorkSlot } from '../types';
3
+ export interface ScheduleAssignedSlot {
4
+ emp: Employee;
5
+ slot: WorkSlot;
6
+ /** This slot's position within the employee's day — what a drag of this card has to hand
7
+ * `board.moveShift`/`swapShifts` to pick the right period out of a day holding more than one. */
8
+ slotIndex: number;
9
+ }
10
+ export interface SchedulePositionCellMeta {
11
+ required: number;
12
+ filled: number;
13
+ open: number;
14
+ short: number;
15
+ }
16
+ /** Shared by the week and day area views, so a position's colour never disagrees between them. */
17
+ export declare function positionSwatchClass(position: string): string;
18
+ /** Where shifts and employees go that name no station at all — either because the outlet
19
+ * hasn't named its positions yet, or because a shift deliberately names none. Rostering
20
+ * shouldn't be blocked on the Positions page being filled in first, so this row exists
21
+ * whenever there's anyone or anything to put in it (see `positionRows`). */
22
+ export declare const ANY_POSITION_ROW = "Any position";
23
+ /** Every other row is named after the position its shifts carry, so the row name and the
24
+ * position key are the same string. This one differs: it collects records that name nothing,
25
+ * so anything that queries BY position — qualifiedFor, assignedOn, a new shift's role — has to
26
+ * ask for '' instead, or the row would answer "nobody holds Any position". */
27
+ export declare function rowAsk(row: string): string;
28
+ /** Whether this employee can be put on `position` — ported from the mockup's qualifiedFor().
29
+ * Nobody having a named position yet reads as "any station", the same way an unspecialised
30
+ * new-account roster does in the reference: rostering shouldn't be blocked on the Positions
31
+ * page being filled in first. */
32
+ export declare function qualifiedFor(emp: Employee, position: string): boolean;
33
+ /** Week-by-area grouping: rows are positions (a RULES.coverage.full key), not employees.
34
+ * Ported from the mockup's positionRows()/renderPositionBlock() — scoped to this board's single
35
+ * "Unassigned" section and its existing WorkSlot/OpenShift model, so no split shifts and
36
+ * no locked/closed-day states (neither exists anywhere in this port yet). */
37
+ export declare function useScheduleAreaBoard(board: ScheduleBoardApi): {
38
+ positionRows: import("vue").ComputedRef<string[]>;
39
+ assignedOn: (dayIdx: number, position: string) => ScheduleAssignedSlot[];
40
+ unfilledOpenShiftsOn: (dayIdx: number, position: string) => {
41
+ id: number;
42
+ dayIdx: number;
43
+ position: string;
44
+ required: number;
45
+ filledBy: number | null;
46
+ sen?: "junior" | "senior" | undefined;
47
+ empType?: "full" | "part" | undefined;
48
+ name?: string | undefined;
49
+ start: string;
50
+ end: string;
51
+ breakMins?: number | undefined;
52
+ }[];
53
+ poolFor: (position: string) => Employee[];
54
+ cellMeta: (dayIdx: number, position: string) => SchedulePositionCellMeta;
55
+ positionWeekMeta: (position: string) => {
56
+ required: number;
57
+ filled: number;
58
+ open: number;
59
+ short: number;
60
+ pool: number;
61
+ };
62
+ };
63
+ export type ScheduleAreaBoardApi = ReturnType<typeof useScheduleAreaBoard>;
@@ -0,0 +1,18 @@
1
+ import type { ScheduleBoardApi } from './useScheduleBoard';
2
+ import type { ScheduleAreaBoardApi } from './useScheduleAreaBoard';
3
+ /** Dragging a person from the staff rail onto a position/day cell — ported from the mockup's
4
+ * dropStaffOnCell(), scoped to this board's model (no "unspecialised, so ask what they can
5
+ * do" grant flow, no split shifts): dropping fills an existing open shift for that position/day
6
+ * if there is one, otherwise opens the shift editor pre-filled with this person, day and
7
+ * position so the manager sets the hours. */
8
+ export declare function useScheduleAreaDragDrop(board: ScheduleBoardApi, areaBoard: ScheduleAreaBoardApi, handlers: {
9
+ onFillOpenShift: (openId: number, empId: number) => void;
10
+ onCreateShift: (empId: number, dayIdx: number, position: string) => void;
11
+ onNotQualified: (empName: string, position: string) => void;
12
+ }): {
13
+ draggingEmpId: import("vue").Ref<number | null, number | null>;
14
+ startRailDrag: (empId: number) => void;
15
+ endRailDrag: () => void;
16
+ dropOnCell: (dayIdx: number, position: string) => void;
17
+ };
18
+ export type ScheduleAreaDragDropApi = ReturnType<typeof useScheduleAreaDragDrop>;
@@ -0,0 +1,124 @@
1
+ import type { ScheduleBoardApi } from './useScheduleBoard';
2
+ import type { ScheduleClashDetectionApi } from './useScheduleClashDetection';
3
+ import type { ScheduleDemandApi } from './useScheduleDemand';
4
+ /** What this sitting is trying to fill — an on-screen open-shift row (never backed by a
5
+ * persisted Shift doc; `openShiftId` only ever identifies it within this session) or a raw
6
+ * demand gap. Either way the assignment created is a plain one-off, same shape as the +Add
7
+ * popover's — nothing here carries a shift/assignment linkage back to the server. */
8
+ export interface ScheduleAssignTarget {
9
+ dayIdx: number;
10
+ position: string;
11
+ start: string;
12
+ end: string;
13
+ breakMins?: number;
14
+ openShiftId?: number;
15
+ }
16
+ export interface ScheduleAssignState {
17
+ open: boolean;
18
+ target: ScheduleAssignTarget | null;
19
+ /** How many heads this sitting is answering, and how many it has landed so far — the
20
+ * footer's "N still needed" note. Tracked locally rather than re-derived from
21
+ * `demand.coverageSegments` on every assign: a fresh assign can reshape segment boundaries
22
+ * entirely (met/short is a function of ALL current coverage, not just this one target), so a
23
+ * simple running count is the honest thing to show without re-deriving segment math here. */
24
+ required: number;
25
+ scheduled: number;
26
+ }
27
+ /** `free` — no shift that day, the ordinary case. `busy` — has a shift, but this is the
28
+ * manager's call to override (soft clash, asks first). `leave` — approved leave, a hard block:
29
+ * inert, not something a second tap should be able to push past. `mine` — already the one
30
+ * filling THIS open shift; only meaningful when the target has an `openShiftId` (a demand gap
31
+ * has no single "holder"), and the tile becomes the unassign control instead. */
32
+ export type ScheduleAssignTileState = 'free' | 'busy' | 'leave' | 'mine';
33
+ export interface ScheduleAssignTile {
34
+ id: number;
35
+ name: string;
36
+ initials: string;
37
+ weekHours: number;
38
+ cap: number;
39
+ over: boolean;
40
+ state: ScheduleAssignTileState;
41
+ title: string;
42
+ }
43
+ export interface ScheduleAssignGroup {
44
+ label: string;
45
+ tiles: ScheduleAssignTile[];
46
+ }
47
+ /** One entry in the day's shift rail — either the thing this sitting was opened to answer (the
48
+ * ORIGIN, always first), or another shift already on the same day, so a manager can jump to
49
+ * reassigning it without leaving the panel. Every entry is a `target` the tile grid can be
50
+ * pointed at via `switchTo`. */
51
+ export interface ScheduleAssignSlot {
52
+ key: string;
53
+ position: string;
54
+ /** One requirement of a demand gap: shows whether the people scheduled fulfil it (progress bar),
55
+ * and can be picked to assign people as that position. */
56
+ tracker?: boolean;
57
+ /** 0–100, for a tracker's progress bar. */
58
+ pct?: number;
59
+ start: string;
60
+ end: string;
61
+ chip: string;
62
+ full: boolean;
63
+ sub: string;
64
+ who: string;
65
+ whoNone: boolean;
66
+ on: boolean;
67
+ target: ScheduleAssignTarget;
68
+ required: number;
69
+ scheduled: number;
70
+ }
71
+ /** Assign panel — the one modal both the open-shifts row and a demand gap's "Assign employee"
72
+ * button open, per the reference's own note that they are "the same assign panel". Every pick
73
+ * lands immediately (through the canonical `commitShift` mutator, so it persists exactly like
74
+ * any other assignment); a soft clash — the person already has a shift that day — asks first via
75
+ * the shared clash-confirmation dialog, and approved leave is a hard block the tile itself
76
+ * refuses rather than asking about. */
77
+ export declare function useScheduleAssign(board: ScheduleBoardApi, demand: ScheduleDemandApi, clash: ScheduleClashDetectionApi, options?: {
78
+ onToast?: (message: string, type?: 'success' | 'error' | 'info') => void;
79
+ }): {
80
+ state: {
81
+ open: boolean;
82
+ target: {
83
+ dayIdx: number;
84
+ position: string;
85
+ start: string;
86
+ end: string;
87
+ breakMins?: number | undefined;
88
+ openShiftId?: number | undefined;
89
+ } | null;
90
+ required: number;
91
+ scheduled: number;
92
+ };
93
+ search: import("vue").Ref<string, string>;
94
+ activeOpenShift: import("vue").ComputedRef<{
95
+ id: number;
96
+ dayIdx: number;
97
+ position: string;
98
+ required: number;
99
+ filledBy: number | null;
100
+ sen?: "junior" | "senior" | undefined;
101
+ empType?: "full" | "part" | undefined;
102
+ name?: string | undefined;
103
+ start: string;
104
+ end: string;
105
+ breakMins?: number | undefined;
106
+ } | null>;
107
+ title: import("vue").ComputedRef<string>;
108
+ subParts: import("vue").ComputedRef<{
109
+ position: string;
110
+ range: string;
111
+ duration: string;
112
+ } | null>;
113
+ footLead: import("vue").ComputedRef<string>;
114
+ footRest: import("vue").ComputedRef<string>;
115
+ groups: import("vue").ComputedRef<ScheduleAssignGroup[]>;
116
+ shiftSlots: import("vue").ComputedRef<ScheduleAssignSlot[]>;
117
+ switchTo: (slot: ScheduleAssignSlot) => void;
118
+ openFor: (openShiftId: number) => void;
119
+ openForGap: (dayIdx: number, _position: string, start: string, end: string, required: number, scheduled: number, gapFrom: number, gapTo: number) => void;
120
+ close: () => void;
121
+ fillOpenShift: (openShiftId: number, empId: number) => void;
122
+ armAssign: (empId: number) => void;
123
+ };
124
+ export type ScheduleAssignApi = ReturnType<typeof useScheduleAssign>;
@@ -0,0 +1,13 @@
1
+ import type { DaySlot, Employee, WorkSlot } from '../types';
2
+ export interface ScheduleAssignmentMutationOptions {
3
+ dateFor: (offset: number, dayIdx: number) => string | null;
4
+ employeeAt: (offset: number, employeeId: number) => Employee | undefined;
5
+ currentOffset: () => number;
6
+ onPersistError?: (message: string) => void;
7
+ }
8
+ export declare function useScheduleAssignmentMutations(options: ScheduleAssignmentMutationOptions): {
9
+ persistSlot: (empId: number, dayIdx: number, oldSlot: DaySlot, newSlot: WorkSlot | WorkSlot[], dateOverride?: string | null, offset?: number, restoreDaySlot?: DaySlot) => Promise<void>;
10
+ persistRemoval: (oldSlot: DaySlot) => Promise<void>;
11
+ persistMove: (toEmpId: number, dayIdx: number, slot: WorkSlot | WorkSlot[], dateOverride?: string | null) => Promise<void>;
12
+ recoverPersistFailure: (error: unknown, fallback: string) => Promise<void>;
13
+ };
@@ -0,0 +1,289 @@
1
+ import type { FdtoScheduleAutoScheduleObjective, FdtoScheduleAutoSchedulePlanner } from '@/types/schedule';
2
+ import type { Proposal } from '../types';
3
+ import type { ScheduleBoardApi } from './useScheduleBoard';
4
+ import type { ScheduleDemandApi } from './useScheduleDemand';
5
+ export type ScheduleAutoScheduleStep = 'options' | 'summary';
6
+ export interface ScheduleAutoScheduleOptions {
7
+ fillGaps: boolean;
8
+ objective: FdtoScheduleAutoScheduleObjective;
9
+ planner: FdtoScheduleAutoSchedulePlanner;
10
+ allowOvertime: boolean;
11
+ /** Shown as preferences in the dialog but not sent: the generator takes no input for them yet
12
+ * (availability and time off are always respected; patterns and cost ride on the objective). */
13
+ respectAvailability: boolean;
14
+ followPatterns: boolean;
15
+ costEfficient: boolean;
16
+ }
17
+ /** Backend-powered draft generation and local proposal review — the engine lives in hr-backend;
18
+ * this composable only maps its result onto the board and lets a manager review it. Generation
19
+ * never writes; accepted proposals use the board's existing assignment persistence path. */
20
+ export declare function useScheduleAutoSchedule(board: ScheduleBoardApi, demand: ScheduleDemandApi): {
21
+ wizardOpen: import("vue").Ref<boolean, boolean>;
22
+ step: import("vue").Ref<ScheduleAutoScheduleStep, ScheduleAutoScheduleStep>;
23
+ options: {
24
+ fillGaps: boolean;
25
+ objective: FdtoScheduleAutoScheduleObjective;
26
+ planner: FdtoScheduleAutoSchedulePlanner;
27
+ allowOvertime: boolean;
28
+ respectAvailability: boolean;
29
+ followPatterns: boolean;
30
+ costEfficient: boolean;
31
+ };
32
+ planners: import("vue").Ref<("GREEDY" | "LLM")[], ("GREEDY" | "LLM")[]>;
33
+ plannerChoice: import("vue").ComputedRef<boolean>;
34
+ generating: import("vue").Ref<boolean, boolean>;
35
+ generateError: import("vue").Ref<string | null, string | null>;
36
+ result: import("vue").Ref<{
37
+ objective: "BALANCED" | "SERVICE" | "LOWER_COST" | "STABLE_HOURS";
38
+ allowOvertime: boolean;
39
+ proposals: {
40
+ date: string;
41
+ startTime: string;
42
+ endTime: string;
43
+ positionId: string | null;
44
+ employeeId: string;
45
+ employeeName: string;
46
+ position: string;
47
+ reason: string;
48
+ }[];
49
+ unfilledCount: number;
50
+ unfilledNeeds: {
51
+ date: string;
52
+ startTime: string;
53
+ endTime: string;
54
+ position: string | null;
55
+ short: number;
56
+ excluded: {
57
+ occupied: number;
58
+ notQualified: number;
59
+ weeklyCap: number;
60
+ rest: number;
61
+ dayOff: number;
62
+ dayCap: number;
63
+ };
64
+ }[];
65
+ metrics: {
66
+ minimumCoveragePercent: number;
67
+ recommendedCoveragePercent: number;
68
+ totalHours: number;
69
+ estimatedLabourCost: number | null;
70
+ costCoveragePercent: number;
71
+ overtimeHours: number;
72
+ targetHoursVariance: number;
73
+ unfilledIntervals: number;
74
+ };
75
+ readiness: {
76
+ ready: boolean;
77
+ capabilities: string[];
78
+ issues: {
79
+ code: string;
80
+ message: string;
81
+ severity: "BLOCKER" | "WARNING" | "INFO";
82
+ }[];
83
+ coverage: {
84
+ wage: number;
85
+ availability: number;
86
+ position: number;
87
+ targetHours: number;
88
+ };
89
+ };
90
+ explanations: string[];
91
+ solver: string;
92
+ week: {
93
+ from: string;
94
+ to: string;
95
+ };
96
+ timing: {
97
+ totalMs: number;
98
+ modelMs: number | null;
99
+ };
100
+ } | null, {
101
+ objective: "BALANCED" | "SERVICE" | "LOWER_COST" | "STABLE_HOURS";
102
+ allowOvertime: boolean;
103
+ proposals: {
104
+ date: string;
105
+ startTime: string;
106
+ endTime: string;
107
+ positionId: string | null;
108
+ employeeId: string;
109
+ employeeName: string;
110
+ position: string;
111
+ reason: string;
112
+ }[];
113
+ unfilledCount: number;
114
+ unfilledNeeds: {
115
+ date: string;
116
+ startTime: string;
117
+ endTime: string;
118
+ position: string | null;
119
+ short: number;
120
+ excluded: {
121
+ occupied: number;
122
+ notQualified: number;
123
+ weeklyCap: number;
124
+ rest: number;
125
+ dayOff: number;
126
+ dayCap: number;
127
+ };
128
+ }[];
129
+ metrics: {
130
+ minimumCoveragePercent: number;
131
+ recommendedCoveragePercent: number;
132
+ totalHours: number;
133
+ estimatedLabourCost: number | null;
134
+ costCoveragePercent: number;
135
+ overtimeHours: number;
136
+ targetHoursVariance: number;
137
+ unfilledIntervals: number;
138
+ };
139
+ readiness: {
140
+ ready: boolean;
141
+ capabilities: string[];
142
+ issues: {
143
+ code: string;
144
+ message: string;
145
+ severity: "BLOCKER" | "WARNING" | "INFO";
146
+ }[];
147
+ coverage: {
148
+ wage: number;
149
+ availability: number;
150
+ position: number;
151
+ targetHours: number;
152
+ };
153
+ };
154
+ explanations: string[];
155
+ solver: string;
156
+ week: {
157
+ from: string;
158
+ to: string;
159
+ };
160
+ timing: {
161
+ totalMs: number;
162
+ modelMs: number | null;
163
+ };
164
+ } | {
165
+ objective: "BALANCED" | "SERVICE" | "LOWER_COST" | "STABLE_HOURS";
166
+ allowOvertime: boolean;
167
+ proposals: {
168
+ date: string;
169
+ startTime: string;
170
+ endTime: string;
171
+ positionId: string | null;
172
+ employeeId: string;
173
+ employeeName: string;
174
+ position: string;
175
+ reason: string;
176
+ }[];
177
+ unfilledCount: number;
178
+ unfilledNeeds: {
179
+ date: string;
180
+ startTime: string;
181
+ endTime: string;
182
+ position: string | null;
183
+ short: number;
184
+ excluded: {
185
+ occupied: number;
186
+ notQualified: number;
187
+ weeklyCap: number;
188
+ rest: number;
189
+ dayOff: number;
190
+ dayCap: number;
191
+ };
192
+ }[];
193
+ metrics: {
194
+ minimumCoveragePercent: number;
195
+ recommendedCoveragePercent: number;
196
+ totalHours: number;
197
+ estimatedLabourCost: number | null;
198
+ costCoveragePercent: number;
199
+ overtimeHours: number;
200
+ targetHoursVariance: number;
201
+ unfilledIntervals: number;
202
+ };
203
+ readiness: {
204
+ ready: boolean;
205
+ capabilities: string[];
206
+ issues: {
207
+ code: string;
208
+ message: string;
209
+ severity: "BLOCKER" | "WARNING" | "INFO";
210
+ }[];
211
+ coverage: {
212
+ wage: number;
213
+ availability: number;
214
+ position: number;
215
+ targetHours: number;
216
+ };
217
+ };
218
+ explanations: string[];
219
+ solver: string;
220
+ week: {
221
+ from: string;
222
+ to: string;
223
+ };
224
+ timing: {
225
+ totalMs: number;
226
+ modelMs: number | null;
227
+ };
228
+ } | null>;
229
+ gapCount: import("vue").ComputedRef<number>;
230
+ hasDemand: import("vue").ComputedRef<boolean>;
231
+ noDemandOpen: import("vue").Ref<boolean, boolean>;
232
+ rangeLabel: import("vue").ComputedRef<string>;
233
+ openWizard: () => void;
234
+ closeWizard: () => void;
235
+ next: () => void;
236
+ back: () => void;
237
+ generate: () => Promise<void>;
238
+ reviewMode: import("vue").ComputedRef<boolean>;
239
+ proposals: import("vue").ComputedRef<{
240
+ id: number;
241
+ empId: number;
242
+ dayIdx: number;
243
+ start: string;
244
+ end: string;
245
+ role: string;
246
+ positionId?: string | null | undefined;
247
+ openId?: number | undefined;
248
+ status: "pending" | "rejected";
249
+ weekKey?: string | undefined;
250
+ reason?: string | undefined;
251
+ }[]>;
252
+ weekHasProposals: import("vue").ComputedRef<boolean>;
253
+ unmetCount: import("vue").Ref<number, number>;
254
+ acceptedCount: import("vue").ComputedRef<number>;
255
+ rejectedCount: import("vue").ComputedRef<number>;
256
+ removedCount: import("vue").ComputedRef<number>;
257
+ changedCount: import("vue").ComputedRef<number>;
258
+ unqualifiedCount: import("vue").ComputedRef<number>;
259
+ conflictCount: import("vue").ComputedRef<number>;
260
+ projectedCost: import("vue").ComputedRef<number | null>;
261
+ proposalAt: (empId: number, dayIdx: number) => Proposal | undefined;
262
+ draggingId: import("vue").Ref<number | null, number | null>;
263
+ moveProposal: (id: number, empId: number, dayIdx: number) => string | null;
264
+ toggleReject: (id: number) => void;
265
+ rejectAll: () => void;
266
+ exitReview: () => void;
267
+ apply: () => Promise<number | null>;
268
+ applying: import("vue").Ref<boolean, boolean>;
269
+ applyRejections: import("vue").Ref<{
270
+ employeeName: string;
271
+ day: string;
272
+ time: string;
273
+ message: string;
274
+ }[], {
275
+ employeeName: string;
276
+ day: string;
277
+ time: string;
278
+ message: string;
279
+ }[] | {
280
+ employeeName: string;
281
+ day: string;
282
+ time: string;
283
+ message: string;
284
+ }[]>;
285
+ applyError: import("vue").Ref<string | null, string | null>;
286
+ detailsOpen: import("vue").Ref<boolean, boolean>;
287
+ toggleDetails: () => void;
288
+ };
289
+ export type ScheduleAutoScheduleApi = ReturnType<typeof useScheduleAutoSchedule>;