@feedmepos/mf-hrm-portal 2.3.2-dev → 2.3.2-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 (268) hide show
  1. package/dist/{ApprovalCodeList-xOyDG5ug.js → ApprovalCodeList-sHnINTik.js} +14 -15
  2. package/dist/AuditLogList-C9C2emU9.js +1950 -0
  3. package/dist/{ConditionBuilderForm.vue_vue_type_script_setup_true_lang-Cixg_icC.js → ConditionBuilderForm.vue_vue_type_script_setup_true_lang-BbsPesWY.js} +2 -2
  4. package/dist/{EmployeeList-BG2KPvOB.js → EmployeeList-D4oy5hXz.js} +196 -208
  5. package/dist/FormSection.vue_vue_type_script_setup_true_lang-Cl053Tg1.js +90 -0
  6. package/dist/{GrantUserList-CUkuf3VV.js → GrantUserList-LWpqhl-5.js} +15 -16
  7. package/dist/{Main-BcixH7R5.js → Main-BWKb-QIE.js} +11 -11
  8. package/dist/{Main-BSHf8gTE.js → Main-CVGiOYpC.js} +12 -11
  9. package/dist/{Main-Cg9SOzcz.js → Main-PBJjfzBg.js} +5 -5
  10. package/dist/{MyPosProfile-CN8Bj3aV.js → MyPosProfile-BQCBFMFw.js} +1 -1
  11. package/dist/{PermissionSetList-I3u2_qHR.js → PermissionSetList-D2qZVlF4.js} +32 -31
  12. package/dist/{PortalPermissionEditor.vue_vue_type_script_setup_true_lang-BBoRXQPn.js → PortalPermissionEditor.vue_vue_type_script_setup_true_lang-ZSREAS1r.js} +927 -927
  13. package/dist/PortalUserSearcher.vue_vue_type_style_index_0_scoped_827dfd60_lang-DRGTxOMW.js +1831 -0
  14. package/dist/ResponsiveContextMenu.vue_vue_type_script_setup_true_lang-mSJFKo7r.js +132 -0
  15. package/dist/RoleForm.vue_vue_type_script_setup_true_lang-DFDTw0lj.js +547 -0
  16. package/dist/RoleList-DG0crFzW.js +274 -0
  17. package/dist/ScheduleAddPositionModal.vue_vue_type_script_setup_true_lang-Cs0rhCa3.js +544 -0
  18. package/dist/ScheduleGeneralPage-C4J6jYtG.js +811 -0
  19. package/dist/ScheduleModal.vue_vue_type_script_setup_true_lang-3UqO6uPu.js +2557 -0
  20. package/dist/SchedulePage-ICzggri0.js +19458 -0
  21. package/dist/SchedulePositionPage-BshUCd_C.js +282 -0
  22. package/dist/SelectFilter-D9T0nFvG.js +264 -0
  23. package/dist/TeamMemberList-C970Iqlj.js +2086 -0
  24. package/dist/{TimesheetList-CECFKt7H.js → TimesheetList-nxhr0EWj.js} +10 -10
  25. package/dist/{TimesheetList.vue_vue_type_style_index_0_scoped_63294af2_lang-RIyoAmeb.js → TimesheetList.vue_vue_type_style_index_0_scoped_63294af2_lang-BLqgALLe.js} +3 -3
  26. package/dist/{app-CdrnR_Pw.js → app-n6d4AmtP.js} +12373 -4651
  27. package/dist/app.js +1 -1
  28. package/dist/{approval-code-Bwvwehz9.js → approval-code-1j1OoXt1.js} +1 -1
  29. package/dist/{dayjs.min-BO8bcI17.js → dayjs.min-DdNivv4b.js} +26 -26
  30. package/dist/{employee-Dg-J9goA.js → employee-BlfleiCU.js} +40 -35
  31. package/dist/{grant-user-whFOaPZI.js → grant-user-BmTyexk3.js} +1 -1
  32. package/dist/{iteration-ZpERYj3o.js → iteration-y_jodvfN.js} +1 -1
  33. package/dist/{lodash-7SZBZ8VQ.js → lodash-B2eWEGH4.js} +1 -1
  34. package/dist/{member-grant-C46lvrh2.js → member-grant-CzZUdO_s.js} +2 -2
  35. package/dist/object-Dwyg2LgX.js +16 -0
  36. package/dist/restaurant-Dl6yx37M.js +51 -0
  37. package/dist/{role-C6hFKOfU.js → role-DfZi7Ssk.js} +3 -3
  38. package/dist/{rule-BlMymDXm.js → rule-ChmhcGgA.js} +13 -13
  39. package/dist/src/api/audit-log/index.d.ts +4 -0
  40. package/dist/src/api/employee/index.d.ts +2 -2
  41. package/dist/src/api/restaurant/index.d.ts +2 -0
  42. package/dist/src/api/schedule/index.d.ts +68 -0
  43. package/dist/src/api/sso-provider/index.d.ts +5 -0
  44. package/dist/src/api/staff-invite/index.d.ts +1 -2
  45. package/dist/src/components/AppForm.vue.d.ts +2 -2
  46. package/dist/src/components/CheckboxInput.vue.d.ts +2 -2
  47. package/dist/src/components/layout/PortalShell.vue.d.ts +12 -0
  48. package/dist/src/components/layout/SchedulePromoBanner.vue.d.ts +2 -0
  49. package/dist/src/components/layout/withScheduleShell.d.ts +10 -0
  50. package/dist/src/composables/useDiscardConfirm.d.ts +3 -1
  51. package/dist/src/composables/useMessage.d.ts +8 -2
  52. package/dist/src/composables/useSsoProviders.d.ts +19 -0
  53. package/dist/src/composables/useStaffInviteProviders.d.ts +1 -12
  54. package/dist/src/helpers/pos-assignment-rows.d.ts +2 -0
  55. package/dist/src/helpers/staff-invite.d.ts +3 -0
  56. package/dist/src/router/shared.d.ts +3 -0
  57. package/dist/src/stores/employee.d.ts +12 -12
  58. package/dist/src/types/employee.d.ts +1 -0
  59. package/dist/src/types/schedule.d.ts +23 -0
  60. package/dist/src/types/sso-provider.d.ts +10 -0
  61. package/dist/src/views/audit-log/constants.d.ts +9 -30
  62. package/dist/src/views/audit-log/locales/index.d.ts +488 -0
  63. package/dist/src/views/audit-log/pos-row.d.ts +27 -0
  64. package/dist/src/views/hr/locales/index.d.ts +20 -0
  65. package/dist/src/views/hr/role/RoleForm.vue.d.ts +29 -2
  66. package/dist/src/views/scheduling/ScheduleGeneralPage.vue.d.ts +3 -0
  67. package/dist/src/views/scheduling/SchedulePage.vue.d.ts +3 -0
  68. package/dist/src/views/scheduling/SchedulePositionPage.vue.d.ts +3 -0
  69. package/dist/src/views/scheduling/components/ScheduleAddEmployeeIdentitySection.vue.d.ts +6 -0
  70. package/dist/src/views/scheduling/components/ScheduleAddEmployeeModal.vue.d.ts +12 -0
  71. package/dist/src/views/scheduling/components/ScheduleAddEmployeeModeStep.vue.d.ts +6 -0
  72. package/dist/src/views/scheduling/components/ScheduleAddEmployeePosAccessSection.vue.d.ts +6 -0
  73. package/dist/src/views/scheduling/components/ScheduleAddEmployeePositionsSection.vue.d.ts +10 -0
  74. package/dist/src/views/scheduling/components/ScheduleAddEmployeeSchedulingSection.vue.d.ts +6 -0
  75. package/dist/src/views/scheduling/components/ScheduleAddPickPopover.vue.d.ts +6 -0
  76. package/dist/src/views/scheduling/components/ScheduleAddPositionModal.vue.d.ts +6 -0
  77. package/dist/src/views/scheduling/components/ScheduleAreaRows.vue.d.ts +41 -0
  78. package/dist/src/views/scheduling/components/ScheduleAutoScheduleDetailsModal.vue.d.ts +6 -0
  79. package/dist/src/views/scheduling/components/ScheduleAutoScheduleDoneArt.vue.d.ts +2 -0
  80. package/dist/src/views/scheduling/components/ScheduleAutoScheduleModal.vue.d.ts +10 -0
  81. package/dist/src/views/scheduling/components/ScheduleBoardAreaRows.vue.d.ts +25 -0
  82. package/dist/src/views/scheduling/components/ScheduleBoardEditOverlays.vue.d.ts +17 -0
  83. package/dist/src/views/scheduling/components/ScheduleBoardEmployeeRows.vue.d.ts +31 -0
  84. package/dist/src/views/scheduling/components/ScheduleBoardGridHeader.vue.d.ts +29 -0
  85. package/dist/src/views/scheduling/components/ScheduleBoardInteractionOverlays.vue.d.ts +34 -0
  86. package/dist/src/views/scheduling/components/ScheduleBoardOnboardingOverlays.vue.d.ts +26 -0
  87. package/dist/src/views/scheduling/components/ScheduleBoardRails.vue.d.ts +17 -0
  88. package/dist/src/views/scheduling/components/ScheduleBoardToolbar.vue.d.ts +38 -0
  89. package/dist/src/views/scheduling/components/ScheduleBoardUtilityOverlays.vue.d.ts +22 -0
  90. package/dist/src/views/scheduling/components/ScheduleButton.vue.d.ts +23 -0
  91. package/dist/src/views/scheduling/components/ScheduleChangeEmployeeModal.vue.d.ts +8 -0
  92. package/dist/src/views/scheduling/components/ScheduleCloneOutletModal.vue.d.ts +6 -0
  93. package/dist/src/views/scheduling/components/ScheduleCoach.vue.d.ts +6 -0
  94. package/dist/src/views/scheduling/components/ScheduleCompletionDialog.vue.d.ts +15 -0
  95. package/dist/src/views/scheduling/components/ScheduleConfirmModal.vue.d.ts +33 -0
  96. package/dist/src/views/scheduling/components/ScheduleContextMenu.vue.d.ts +17 -0
  97. package/dist/src/views/scheduling/components/ScheduleCostRail.vue.d.ts +8 -0
  98. package/dist/src/views/scheduling/components/ScheduleCostRailEmptyArt.vue.d.ts +2 -0
  99. package/dist/src/views/scheduling/components/ScheduleDateRangePopover.vue.d.ts +6 -0
  100. package/dist/src/views/scheduling/components/ScheduleDayNotePopover.vue.d.ts +6 -0
  101. package/dist/src/views/scheduling/components/ScheduleDayTimeline.vue.d.ts +17 -0
  102. package/dist/src/views/scheduling/components/ScheduleDemandRow.vue.d.ts +23 -0
  103. package/dist/src/views/scheduling/components/ScheduleDemandSheet.vue.d.ts +10 -0
  104. package/dist/src/views/scheduling/components/ScheduleDotsIcon.vue.d.ts +2 -0
  105. package/dist/src/views/scheduling/components/ScheduleEmployeeDetailPanel.vue.d.ts +12 -0
  106. package/dist/src/views/scheduling/components/ScheduleEmployeeIdentity.vue.d.ts +17 -0
  107. package/dist/src/views/scheduling/components/ScheduleExportPreview.vue.d.ts +7 -0
  108. package/dist/src/views/scheduling/components/ScheduleFilterBar.vue.d.ts +18 -0
  109. package/dist/src/views/scheduling/components/ScheduleGapPopover.vue.d.ts +6 -0
  110. package/dist/src/views/scheduling/components/ScheduleGridHeader.vue.d.ts +18 -0
  111. package/dist/src/views/scheduling/components/ScheduleGridSkeleton.vue.d.ts +2 -0
  112. package/dist/src/views/scheduling/components/ScheduleLeaveEditModal.vue.d.ts +6 -0
  113. package/dist/src/views/scheduling/components/ScheduleLoadState.vue.d.ts +9 -0
  114. package/dist/src/views/scheduling/components/ScheduleModal.vue.d.ts +26 -0
  115. package/dist/src/views/scheduling/components/ScheduleOnboardingAssignPositionModal.vue.d.ts +6 -0
  116. package/dist/src/views/scheduling/components/ScheduleOnboardingClosedDayConfirm.vue.d.ts +6 -0
  117. package/dist/src/views/scheduling/components/ScheduleOnboardingDemandDays.vue.d.ts +6 -0
  118. package/dist/src/views/scheduling/components/ScheduleOnboardingDemandFooter.vue.d.ts +6 -0
  119. package/dist/src/views/scheduling/components/ScheduleOnboardingDemandHeader.vue.d.ts +6 -0
  120. package/dist/src/views/scheduling/components/ScheduleOnboardingDoneArt.vue.d.ts +2 -0
  121. package/dist/src/views/scheduling/components/ScheduleOnboardingHoursProfileNotice.vue.d.ts +10 -0
  122. package/dist/src/views/scheduling/components/ScheduleOnboardingPositions.vue.d.ts +6 -0
  123. package/dist/src/views/scheduling/components/ScheduleOnboardingReview.vue.d.ts +6 -0
  124. package/dist/src/views/scheduling/components/ScheduleOnboardingSettings.vue.d.ts +6 -0
  125. package/dist/src/views/scheduling/components/ScheduleOnboardingWelcome.vue.d.ts +11 -0
  126. package/dist/src/views/scheduling/components/ScheduleOnboardingWizard.vue.d.ts +9 -0
  127. package/dist/src/views/scheduling/components/ScheduleOnboardingWizardFooter.vue.d.ts +6 -0
  128. package/dist/src/views/scheduling/components/ScheduleOnboardingWizardHeader.vue.d.ts +11 -0
  129. package/dist/src/views/scheduling/components/SchedulePublishModal.vue.d.ts +8 -0
  130. package/dist/src/views/scheduling/components/SchedulePublishShareArt.vue.d.ts +2 -0
  131. package/dist/src/views/scheduling/components/ScheduleReviewBar.vue.d.ts +12 -0
  132. package/dist/src/views/scheduling/components/ScheduleSelect.vue.d.ts +70 -0
  133. package/dist/src/views/scheduling/components/ScheduleSelectExistingEmployeeModal.vue.d.ts +6 -0
  134. package/dist/src/views/scheduling/components/ScheduleSetupBanner.vue.d.ts +12 -0
  135. package/dist/src/views/scheduling/components/ScheduleShiftCell.vue.d.ts +35 -0
  136. package/dist/src/views/scheduling/components/ScheduleShiftHeadcountEditor.vue.d.ts +10 -0
  137. package/dist/src/views/scheduling/components/ScheduleShiftImpact.vue.d.ts +6 -0
  138. package/dist/src/views/scheduling/components/ScheduleShiftMoreOptions.vue.d.ts +8 -0
  139. package/dist/src/views/scheduling/components/ScheduleShiftPopover.vue.d.ts +16 -0
  140. package/dist/src/views/scheduling/components/ScheduleShiftRepeatDaysRow.vue.d.ts +8 -0
  141. package/dist/src/views/scheduling/components/ScheduleShiftSegmentsEditor.vue.d.ts +8 -0
  142. package/dist/src/views/scheduling/components/ScheduleShiftWhoPicker.vue.d.ts +25 -0
  143. package/dist/src/views/scheduling/components/ScheduleStaffRail.vue.d.ts +16 -0
  144. package/dist/src/views/scheduling/components/ScheduleStaffRows.vue.d.ts +50 -0
  145. package/dist/src/views/scheduling/components/ScheduleStatsRow.vue.d.ts +12 -0
  146. package/dist/src/views/scheduling/components/ScheduleSwapShiftsModal.vue.d.ts +8 -0
  147. package/dist/src/views/scheduling/components/ScheduleTimePickerPopover.vue.d.ts +6 -0
  148. package/dist/src/views/scheduling/components/ScheduleTopbar.vue.d.ts +20 -0
  149. package/dist/src/views/scheduling/composables/auto-schedule-mapping.d.ts +35 -0
  150. package/dist/src/views/scheduling/composables/onboarding-constants.d.ts +7 -0
  151. package/dist/src/views/scheduling/composables/onboarding-hours.d.ts +7 -0
  152. package/dist/src/views/scheduling/composables/onboarding-types.d.ts +51 -0
  153. package/dist/src/views/scheduling/composables/remyPrompt.d.ts +15 -0
  154. package/dist/src/views/scheduling/composables/schedule-add-employee-form.d.ts +82 -0
  155. package/dist/src/views/scheduling/composables/schedule-board-helpers.d.ts +63 -0
  156. package/dist/src/views/scheduling/composables/schedule-breaks.d.ts +9 -0
  157. package/dist/src/views/scheduling/composables/schedule-calendar.d.ts +17 -0
  158. package/dist/src/views/scheduling/composables/schedule-cost.d.ts +24 -0
  159. package/dist/src/views/scheduling/composables/schedule-currency.d.ts +22 -0
  160. package/dist/src/views/scheduling/composables/schedule-day-meta.d.ts +21 -0
  161. package/dist/src/views/scheduling/composables/schedule-demand-domain.d.ts +23 -0
  162. package/dist/src/views/scheduling/composables/schedule-employee-profile.d.ts +7 -0
  163. package/dist/src/views/scheduling/composables/schedule-error.d.ts +1 -0
  164. package/dist/src/views/scheduling/composables/schedule-export-matrix.d.ts +14 -0
  165. package/dist/src/views/scheduling/composables/schedule-leave-split.d.ts +9 -0
  166. package/dist/src/views/scheduling/composables/schedule-popover-position.d.ts +16 -0
  167. package/dist/src/views/scheduling/composables/schedule-quick-pick.d.ts +23 -0
  168. package/dist/src/views/scheduling/composables/schedule-shift-time.d.ts +29 -0
  169. package/dist/src/views/scheduling/composables/schedule-time.d.ts +8 -0
  170. package/dist/src/views/scheduling/composables/schedule-week-cache.d.ts +9 -0
  171. package/dist/src/views/scheduling/composables/useCollapsedList.d.ts +9 -0
  172. package/dist/src/views/scheduling/composables/useRemyAppStore.d.ts +16 -0
  173. package/dist/src/views/scheduling/composables/useScheduleAddEmployee.d.ts +137 -0
  174. package/dist/src/views/scheduling/composables/useScheduleAddPick.d.ts +75 -0
  175. package/dist/src/views/scheduling/composables/useScheduleAreaBoard.d.ts +50 -0
  176. package/dist/src/views/scheduling/composables/useScheduleAreaDragDrop.d.ts +11 -0
  177. package/dist/src/views/scheduling/composables/useScheduleAssignmentMutations.d.ts +13 -0
  178. package/dist/src/views/scheduling/composables/useScheduleAutoSchedule.d.ts +301 -0
  179. package/dist/src/views/scheduling/composables/useScheduleBoard.d.ts +615 -0
  180. package/dist/src/views/scheduling/composables/useScheduleCellState.d.ts +27 -0
  181. package/dist/src/views/scheduling/composables/useScheduleClashDetection.d.ts +28 -0
  182. package/dist/src/views/scheduling/composables/useScheduleCloneOutletModal.d.ts +21 -0
  183. package/dist/src/views/scheduling/composables/useScheduleCoach.d.ts +80 -0
  184. package/dist/src/views/scheduling/composables/useScheduleCopyWeek.d.ts +12 -0
  185. package/dist/src/views/scheduling/composables/useScheduleCostRail.d.ts +60 -0
  186. package/dist/src/views/scheduling/composables/useScheduleDayNote.d.ts +44 -0
  187. package/dist/src/views/scheduling/composables/useScheduleDayTimeline.d.ts +111 -0
  188. package/dist/src/views/scheduling/composables/useScheduleDemand.d.ts +59 -0
  189. package/dist/src/views/scheduling/composables/useScheduleDemandRow.d.ts +47 -0
  190. package/dist/src/views/scheduling/composables/useScheduleDemandSheet.d.ts +166 -0
  191. package/dist/src/views/scheduling/composables/useScheduleDragDrop.d.ts +55 -0
  192. package/dist/src/views/scheduling/composables/useScheduleEmployeeAccess.d.ts +24 -0
  193. package/dist/src/views/scheduling/composables/useScheduleEmployeeAvailability.d.ts +13 -0
  194. package/dist/src/views/scheduling/composables/useScheduleEmployeeCandidates.d.ts +49 -0
  195. package/dist/src/views/scheduling/composables/useScheduleEmployeeCompensation.d.ts +7 -0
  196. package/dist/src/views/scheduling/composables/useScheduleEmployeeForm.d.ts +22 -0
  197. package/dist/src/views/scheduling/composables/useScheduleEmployeeIdentity.d.ts +50 -0
  198. package/dist/src/views/scheduling/composables/useScheduleEmployeeMenu.d.ts +38 -0
  199. package/dist/src/views/scheduling/composables/useScheduleEmployeePersistence.d.ts +32 -0
  200. package/dist/src/views/scheduling/composables/useScheduleEmployeeProfile.d.ts +16 -0
  201. package/dist/src/views/scheduling/composables/useScheduleEmployeeValidation.d.ts +18 -0
  202. package/dist/src/views/scheduling/composables/useScheduleExport.d.ts +52 -0
  203. package/dist/src/views/scheduling/composables/useScheduleFilterBar.d.ts +14 -0
  204. package/dist/src/views/scheduling/composables/useScheduleGapPopover.d.ts +79 -0
  205. package/dist/src/views/scheduling/composables/useScheduleLeave.d.ts +60 -0
  206. package/dist/src/views/scheduling/composables/useScheduleLegend.d.ts +15 -0
  207. package/dist/src/views/scheduling/composables/useScheduleOnboardingAvailability.d.ts +58 -0
  208. package/dist/src/views/scheduling/composables/useScheduleOnboardingDemand.d.ts +45 -0
  209. package/dist/src/views/scheduling/composables/useScheduleOnboardingEmployees.d.ts +231 -0
  210. package/dist/src/views/scheduling/composables/useScheduleOnboardingFlow.d.ts +9 -0
  211. package/dist/src/views/scheduling/composables/useScheduleOnboardingHours.d.ts +15 -0
  212. package/dist/src/views/scheduling/composables/useScheduleOnboardingNavigation.d.ts +11 -0
  213. package/dist/src/views/scheduling/composables/useScheduleOnboardingPersistence.d.ts +13 -0
  214. package/dist/src/views/scheduling/composables/useScheduleOnboardingWizard.d.ts +1543 -0
  215. package/dist/src/views/scheduling/composables/useScheduleOutlet.d.ts +25 -0
  216. package/dist/src/views/scheduling/composables/useSchedulePageActions.d.ts +18 -0
  217. package/dist/src/views/scheduling/composables/useSchedulePageBootstrap.d.ts +9 -0
  218. package/dist/src/views/scheduling/composables/useSchedulePageCellActions.d.ts +21 -0
  219. package/dist/src/views/scheduling/composables/useSchedulePageCellDrop.d.ts +20 -0
  220. package/dist/src/views/scheduling/composables/useSchedulePageClearActions.d.ts +33 -0
  221. package/dist/src/views/scheduling/composables/useSchedulePageEmployeeActions.d.ts +22 -0
  222. package/dist/src/views/scheduling/composables/useSchedulePageOverlays.d.ts +21 -0
  223. package/dist/src/views/scheduling/composables/useSchedulePdfExport.d.ts +19 -0
  224. package/dist/src/views/scheduling/composables/useSchedulePositionModal.d.ts +55 -0
  225. package/dist/src/views/scheduling/composables/useSchedulePositions.d.ts +35 -0
  226. package/dist/src/views/scheduling/composables/useSchedulePublish.d.ts +127 -0
  227. package/dist/src/views/scheduling/composables/useSchedulePublishPersistence.d.ts +11 -0
  228. package/dist/src/views/scheduling/composables/useScheduleRangeCalendar.d.ts +27 -0
  229. package/dist/src/views/scheduling/composables/useScheduleRoster.d.ts +313 -0
  230. package/dist/src/views/scheduling/composables/useScheduleSettings.d.ts +40 -0
  231. package/dist/src/views/scheduling/composables/useScheduleSetupBanner.d.ts +17 -0
  232. package/dist/src/views/scheduling/composables/useScheduleShiftActions.d.ts +245 -0
  233. package/dist/src/views/scheduling/composables/useScheduleShiftDraft.d.ts +63 -0
  234. package/dist/src/views/scheduling/composables/useScheduleShiftPersistence.d.ts +17 -0
  235. package/dist/src/views/scheduling/composables/useScheduleShiftPopover.d.ts +255 -0
  236. package/dist/src/views/scheduling/composables/useScheduleStatsRow.d.ts +27 -0
  237. package/dist/src/views/scheduling/composables/useScheduleTimePicker.d.ts +49 -0
  238. package/dist/src/views/scheduling/composables/useScheduleTour.d.ts +95 -0
  239. package/dist/src/views/scheduling/composables/useScheduleViewportFit.d.ts +9 -0
  240. package/dist/src/views/scheduling/country-rules/index.d.ts +33 -0
  241. package/dist/src/views/scheduling/data.d.ts +123 -0
  242. package/dist/src/views/scheduling/locales/index.d.ts +6988 -0
  243. package/dist/src/views/scheduling/schedule-constants.d.ts +7 -0
  244. package/dist/src/views/scheduling/schedule-state.d.ts +767 -0
  245. package/dist/src/views/scheduling/schedule-store.d.ts +140 -0
  246. package/dist/src/views/scheduling/types.d.ts +381 -0
  247. package/dist/src/views/team/components/MemberGrantFields.vue.d.ts +2 -6
  248. package/dist/src/views/team/components/PortalConditionForm.vue.d.ts +2 -2
  249. package/dist/src/views/team/components/PosAssignmentRows.vue.d.ts +0 -2
  250. package/dist/src/views/team/condition-builders/ConditionBuilderForm.vue.d.ts +2 -2
  251. package/dist/src/views/team/member/AddMemberForm.vue.d.ts +0 -2
  252. package/dist/src/views/team/member/TeamMemberMasterUser.vue.d.ts +0 -2
  253. package/dist/style.css +1 -1
  254. package/dist/tsconfig.app.tsbuildinfo +1 -1
  255. package/dist/{useAppStore-CL6EEDuw.js → useAppStore-BPARQyvJ.js} +1 -1
  256. package/dist/useDiscardConfirm-CzZSPyvh.js +28 -0
  257. package/dist/{useLoading-BBjBUzGJ.js → useLoading-iPESFb6R.js} +1 -1
  258. package/dist/{useReportPermissions-Bg0fma6m.js → useReportPermissions-By-BoJZb.js} +5 -5
  259. package/package.json +5 -3
  260. package/dist/AuditLogList-Dd6HyFhk.js +0 -1777
  261. package/dist/FormItem.vue_vue_type_script_setup_true_lang-DPT2FoIc.js +0 -45
  262. package/dist/FormSection.vue_vue_type_script_setup_true_lang-DknXTYiK.js +0 -49
  263. package/dist/PortalUserSearcher.vue_vue_type_style_index_0_scoped_827dfd60_lang-B5QDOF0L.js +0 -1840
  264. package/dist/RoleList-ALmAwN0U.js +0 -739
  265. package/dist/SelectFilter-ATOm0hdn.js +0 -269
  266. package/dist/TeamMemberList-DZfEnOs1.js +0 -2097
  267. package/dist/restaurant-CKhT6kgj.js +0 -45
  268. package/dist/useDiscardConfirm-DPhEV6v0.js +0 -157
@@ -0,0 +1,140 @@
1
+ import ScheduleAPI from '@/api/schedule';
2
+ import type { IFdtoPosUserSummary } from '@/types/employee';
3
+ import type { FdtoScheduleAssignment, FdtoScheduleAutoScheduleApplyReq, FdtoScheduleAutoScheduleApplyResult, FdtoScheduleAutoScheduleCapabilities, FdtoScheduleAutoScheduleGenerateReq, FdtoScheduleAutoScheduleResult, FdtoScheduleBulkUpdateAssignmentStatusReq, FdtoScheduleCreateEmployeeProfileReq, FdtoScheduleSaveAssignmentReq, FdtoScheduleSavePositionReq, FdtoScheduleSaveScheduleDayReq, FdtoScheduleSaveSettingsReq, FdtoScheduleSettings, FdtoScheduleUpdateEmployeeProfileReq, FdtoScheduleValidatePosAccessReq, FdtoScheduleCreateTimeOffReq, FdtoScheduleTimeOff, FdtoScheduleUpdateTimeOffStatusReq, FdtoScheduleSaveEmployeeConfigsReq, ScheduleReplaceDemandReq } from '@/types/schedule';
4
+ import { isoDateKey } from './composables/schedule-calendar';
5
+ export { businessEmployees, dataVersion, employeeOutletIds, loadError, loading, outletId, payload, restaurantEmployees, employeeConfigs, rosterLoading, scheduleSetupCompleted, } from './schedule-state';
6
+ /** dayjs-free local-date key — the board's own isoDateKey, repeated here so the store does not
7
+ * have to import a composable. Local Y/M/D, never UTC: a BSON-free 'YYYY-MM-DD' that survives
8
+ * a timezone west of Greenwich. */
9
+ export declare const isoDate: typeof isoDateKey;
10
+ /** Called from the scheduling page's setup with `useI18n().t`, so the store's errors follow
11
+ * the portal locale. Pass `null` to fall back to English. */
12
+ export declare function setScheduleStoreTranslator(t: ((key: string) => string) | null): void;
13
+ /** Points the board at an outlet. Switching throws the held window away rather than widening
14
+ * it — two outlets' rosters are not one dataset, and half of each is not a schedule.
15
+ *
16
+ * Returns whether anything changed, so a caller that has to follow up with a fetch can skip
17
+ * the round trip when the picker was set to what was already showing. */
18
+ export declare function setOutlet(restaurantId: string): boolean;
19
+ /** Fetches (once per outlet) who the POS roster says works here, straight off the same
20
+ * `restaurantIds`-filterable endpoint the portal's own Employee List uses — no Schedule-side
21
+ * concept of outlet membership to keep in sync with it. Bumps `dataVersion` on arrival so the
22
+ * board's per-week employee cache (keyed off it already) picks the roster up without a second,
23
+ * separate invalidation path. A generous page size rather than looping pages: real restaurant
24
+ * headcounts sit nowhere near it. */
25
+ export declare function ensureRestaurantEmployeesLoaded(restaurantId: string): Promise<void>;
26
+ export declare function saveEmployeeConfigs(configs: FdtoScheduleSaveEmployeeConfigsReq['configs']): Promise<void>;
27
+ /** Saves outlet settings and keeps the board payload authoritative for any later cache rebuild. */
28
+ export declare function saveScheduleSettings(req: FdtoScheduleSaveSettingsReq): Promise<FdtoScheduleSettings>;
29
+ export declare function setEmployeeSchedulingEnabled(employeeId: string, enabled: boolean): Promise<void>;
30
+ /** Removes this employee's future shifts before disabling their scheduling row. */
31
+ export declare function deleteEmployeeFutureAssignments(employeeId: string, from?: string): Promise<void>;
32
+ /** Re-reads this outlet's POS roster. The roster is what the board's rows are built from and is
33
+ * otherwise fetched once per outlet, so any write that changes who works here (add, remove)
34
+ * has to call this for the grid to show it. */
35
+ export declare function refreshRestaurantEmployees(): Promise<void>;
36
+ /** Gives an existing POS user a role at this outlet, so they land on its roster. */
37
+ export declare function addEmployeeToOutlet(employeeId: string, roleId: string): Promise<void>;
38
+ /** Adds an employee to several outlets at once. Scheduling does not require a POS role, so the
39
+ * caller may pass an empty role id and assign the POS role later from Employee. */
40
+ export declare function addEmployeeToOutlets(employeeId: string, restaurantIds: string[], roleId?: string, enableScheduling?: boolean): Promise<void>;
41
+ /** Takes a POS user off the given outlets' rosters; their other outlets are untouched. */
42
+ export declare function removeEmployeeFromOutlets(employeeId: string, restaurantIds: string[]): Promise<void>;
43
+ /** Takes a POS user off this outlet's roster only. */
44
+ export declare function removeEmployeeFromOutlet(employeeId: string): Promise<void>;
45
+ /** Sets the POS role each of these outlets grants a user — every other outlet on their roster
46
+ * is untouched. An empty roleId means "linked to this outlet, no role assigned" (the same thing
47
+ * `addEmployeeToOutlets`' default gives), not "remove them from it" — use
48
+ * `removeEmployeeFromOutlets` for that. A duplicate restaurantId keeps only the last entry. */
49
+ export declare function setEmployeePosRoles(employeeId: string, assignments: {
50
+ restaurantId: string;
51
+ roleId: string;
52
+ }[]): Promise<void>;
53
+ /** Saves the POS-owned part of an existing scheduling employee. The scheduling profile and the
54
+ * POS user are separate records, so passcode/master-user changes must use the POS user API too.
55
+ * A normalized comparison avoids rewriting the POS user when the employee form was unchanged. */
56
+ export declare function saveEmployeePosAccess(employeeId: string, request: {
57
+ name: string;
58
+ passcode: string;
59
+ masterUser: boolean;
60
+ masterCode: string;
61
+ roles: {
62
+ restaurantId: string;
63
+ roleId: string;
64
+ }[];
65
+ }, knownEmployee?: IFdtoPosUserSummary): Promise<void>;
66
+ /** The cached business roster, fetched on first use. `force` re-reads it (after a write, or to
67
+ * refresh a list that is already on screen). Concurrent callers share one request. */
68
+ export declare function ensureBusinessEmployees(force?: boolean): Promise<IFdtoPosUserSummary[]>;
69
+ /** Guarantees the week starting `weekStart` is in memory, fetching a padded window around it
70
+ * if it is not. Safe to call on every navigation: a week already covered costs nothing. */
71
+ export declare function ensureWeekLoaded(weekStart: Date): Promise<void>;
72
+ /** Re-reads the currently held window from the API — what a write path calls once it has
73
+ * saved, and what the page offers after a failure. */
74
+ export declare function reload(): Promise<void>;
75
+ /** Puts an existing employee onto the current outlet's schedule. Pushes the record the API
76
+ * hands back straight onto the held payload instead of reloading — a reload re-derives every
77
+ * employee's shifts from what's actually stored, and shifts have no write path of their own
78
+ * yet, so it would silently discard any shift assigned to anyone else on the board earlier in
79
+ * the same sitting (the same bug shape saveDemand's callers used to have). data.ts's
80
+ * `employeeNumberOf` assigns the new hire a board id the next time it runs, same as it does for
81
+ * everyone loaded from the initial read, so nothing here needs to know that mapping itself.
82
+ * Throws on failure (a duplicate profile, a network error) — the caller decides how to show
83
+ * that, this just doesn't pretend it succeeded. */
84
+ export declare function createEmployeeProfile(req: FdtoScheduleCreateEmployeeProfileReq): Promise<void>;
85
+ export declare function validateSchedulePosAccess(req: FdtoScheduleValidatePosAccessReq): Promise<void>;
86
+ /** Edits a profile already on this outlet's schedule. The caller (useScheduleAddEmployee's
87
+ * `updateExisting`) applies the form to the live `Employee` object itself for instant feedback,
88
+ * so this does not bump `dataVersion` — nothing needs a board cache rebuild. The raw payload is
89
+ * still replaced immutably so other views, such as the position usage counter, observe the
90
+ * profile change immediately instead of waiting for the next full board reload. */
91
+ export declare function updateEmployeeProfile(employeeId: string, req: FdtoScheduleUpdateEmployeeProfileReq): Promise<void>;
92
+ /** Positions are business-level, not per-outlet (see `ScheduleAPI.createPosition`'s own note)
93
+ * — so unlike the shift-shaped writes below, there's no "discards an unsaved shift" risk in
94
+ * refreshing the catalogue here: `payload` is reassigned as a NEW top-level object (same
95
+ * `employees`/`assignments`/etc. array references, only `positions` itself replaced) so
96
+ * data.ts's `watch(payload, applyCatalogues)` re-derives `POSITIONS`/`POSITION_RECORDS` —
97
+ * without touching `dataVersion`, which would otherwise invalidate the board's per-week
98
+ * employee cache and risk reverting a shift committed earlier in the same sitting that hasn't
99
+ * round-tripped into `payload.value.assignments` yet (see createAssignment's own note below). */
100
+ export declare function createPosition(req: FdtoScheduleSavePositionReq): Promise<void>;
101
+ export declare function updatePosition(id: string, req: FdtoScheduleSavePositionReq): Promise<void>;
102
+ export declare function deletePosition(id: string): Promise<void>;
103
+ /** Replaces one date's note/holiday-mark. Same shallow `payload` reassignment as the position
104
+ * writes above and for the same reason: `useScheduleBoard.ts` seeds its `dayNotes`/
105
+ * `manualHolidays` state from `payload.value.days` on every `payload` reassignment, so this has
106
+ * to land there for that seed to stay correct — without a `dataVersion` bump, which would
107
+ * invalidate the per-week employee cache and risk reverting an unsaved shift. */
108
+ export declare function saveScheduleDay(date: string, req: FdtoScheduleSaveScheduleDayReq): Promise<void>;
109
+ /** Replaces one date's UI demand by expanding every period into flat ShiftDemand rows.
110
+ * Position-specific headcount becomes its own row; any remaining headcount becomes an
111
+ * unpositioned row for the same time range. */
112
+ export declare function saveDemand(req: ScheduleReplaceDemandReq): Promise<void>;
113
+ export declare function saveDemandsBulk(requests: ScheduleReplaceDemandReq[]): Promise<void>;
114
+ /** Copies one date's own demand rows onto another date, as that date's own rows. A date that
115
+ * already has demand of its own is left alone (nothing is overwritten), and a source date with
116
+ * no explicit rows has nothing to copy. Returns how many rows were written. */
117
+ export declare function copyDateDemand(fromDate: string, toDate: string): Promise<number>;
118
+ export declare function generateAutoSchedule(req: FdtoScheduleAutoScheduleGenerateReq): Promise<FdtoScheduleAutoScheduleResult>;
119
+ export declare function getAutoScheduleCapabilities(): Promise<FdtoScheduleAutoScheduleCapabilities>;
120
+ export declare function applyAutoSchedule(req: FdtoScheduleAutoScheduleApplyReq): Promise<FdtoScheduleAutoScheduleApplyResult>;
121
+ /** A one-off shift assignment — someone working these hours on this date, not answering any
122
+ * Shift requirement. Keep the raw payload in sync without bumping `dataVersion`: the current
123
+ * board owns the live draft, while a later roster refresh may rebuild the week cache from this
124
+ * payload. */
125
+ export declare function createAssignment(req: FdtoScheduleSaveAssignmentReq): Promise<FdtoScheduleAssignment>;
126
+ export declare function updateAssignment(id: string, req: FdtoScheduleSaveAssignmentReq): Promise<FdtoScheduleAssignment | null>;
127
+ export declare function bulkSaveAssignments(req: Parameters<typeof ScheduleAPI.bulkSaveAssignments>[1]): Promise<Awaited<ReturnType<typeof ScheduleAPI.bulkSaveAssignments>>>;
128
+ /** Replaces demand and/or assignments in one backend transaction. */
129
+ export declare function copySchedule(req: Parameters<typeof ScheduleAPI.copySchedule>[1]): Promise<Awaited<ReturnType<typeof ScheduleAPI.copySchedule>>>;
130
+ /** Clears demand and/or assignments in one backend transaction. */
131
+ export declare function clearSchedule(req: Parameters<typeof ScheduleAPI.clearSchedule>[1]): Promise<Awaited<ReturnType<typeof ScheduleAPI.clearSchedule>>>;
132
+ /** Deletes a batch of existing assignments in a single request — see
133
+ * `ScheduleAPI.deleteAssignments`. Deleting one is just this with a single-id array. */
134
+ export declare function deleteAssignments(ids: string[]): Promise<void>;
135
+ export declare function createTimeOff(req: FdtoScheduleCreateTimeOffReq): Promise<FdtoScheduleTimeOff>;
136
+ export declare function updateTimeOffStatus(id: string, req: FdtoScheduleUpdateTimeOffStatusReq): Promise<FdtoScheduleTimeOff | null>;
137
+ export declare function deleteTimeOff(id: string): Promise<void>;
138
+ /** Flips a batch of existing assignments to one status in a single request — see
139
+ * `ScheduleAPI.bulkUpdateAssignmentStatus`. */
140
+ export declare function bulkUpdateAssignmentStatus(req: FdtoScheduleBulkUpdateAssignmentStatusReq): Promise<FdtoScheduleAssignment[]>;
@@ -0,0 +1,381 @@
1
+ export type ShiftStatus = 'confirmed' | 'pending' | 'ot';
2
+ export interface ShiftClock {
3
+ in: string | null;
4
+ out: string | null;
5
+ status: 'on-time' | 'late' | 'early-out' | 'absent';
6
+ }
7
+ export interface WorkSlot {
8
+ start: string;
9
+ end: string;
10
+ role: string;
11
+ /** The persisted position identity, retained even when the position is soft-deleted. */
12
+ positionId?: string;
13
+ status: ShiftStatus;
14
+ clock?: ShiftClock;
15
+ conflict?: boolean;
16
+ conflictReason?: string;
17
+ /** Set when this slot is the filled form of an OpenShift record. */
18
+ openId?: number;
19
+ /** Unpaid break length in minutes, authored in the shift popover. Not currently
20
+ * subtracted by the cost rail / stats row's hour totals — those stay gross-hours,
21
+ * matching how this board priced shifts before the popover surfaced a break field. */
22
+ breakMins?: number;
23
+ /** Breaks as persisted by ScheduleShiftAssignments. `breakMins` remains a derived board calculation
24
+ * value; API writes use only this array. */
25
+ breaks?: Array<{
26
+ type: 'DURATION';
27
+ minutes: number;
28
+ breakPayType: 'PAID' | 'UNPAID';
29
+ } | {
30
+ type: 'TIME_RANGE';
31
+ startTime: string;
32
+ endTime: string;
33
+ breakPayType: 'PAID' | 'UNPAID';
34
+ }>;
35
+ /** The ScheduleShiftAssignments document this slot is saved as, once it has one — see
36
+ * useScheduleBoard's commitShift/removeShift/moveShift. Absent means either it hasn't
37
+ * round-tripped to the backend yet, or it's an OpenShift fill (see openId), which has its
38
+ * own record shape and no write path of its own yet. */
39
+ assignmentId?: string;
40
+ /** Server timestamp used to reject stale background saves. */
41
+ updatedAt?: string;
42
+ /** Client-only — never sent to the backend (there's no linking field in
43
+ * FdtoScheduleAssignment to persist it against). Shared by every period of ONE shift
44
+ * authored through the popover's "+ Split", set there and nowhere else. Two workslots on
45
+ * the same day with no matching `splitGroupId` are two independent shifts, not one split
46
+ * shift — e.g. a day where a swap landed a second shift alongside one the person already
47
+ * had. Lost on reload, which is the safe direction to fail in: an unrecognised pair just
48
+ * reads as two separate shifts rather than a false merge. */
49
+ splitGroupId?: string;
50
+ }
51
+ export interface LeaveBalance {
52
+ type: string;
53
+ entitled: number;
54
+ used: number;
55
+ }
56
+ export interface LeaveSlot {
57
+ timeOff: 'approved' | 'pending';
58
+ requestId?: string;
59
+ type?: 'OFF_DAY' | 'LEAVE';
60
+ leaveType?: 'ANNUAL' | 'MEDICAL' | 'EMERGENCY' | 'UNPAID';
61
+ reason: string;
62
+ half?: boolean;
63
+ halfPart?: 'AM' | 'PM';
64
+ /** Half-day leave's displayed time window, when supplied by the board data. */
65
+ from?: string;
66
+ to?: string;
67
+ appliedOn?: string;
68
+ note?: string;
69
+ cert?: {
70
+ name: string;
71
+ size: string;
72
+ } | null;
73
+ bal?: LeaveBalance;
74
+ }
75
+ export type DaySlot = WorkSlot | WorkSlot[] | LeaveSlot | null;
76
+ export interface EmployeeRemark {
77
+ author: string;
78
+ date: string;
79
+ type: 'note' | 'warning' | 'praise';
80
+ text: string;
81
+ }
82
+ /** One weekday's availability window, used only for the part-timer "hours they can work"
83
+ * editor on the Add Employee form — informational HR data, not read by the grid. This board
84
+ * has no standing weekly rest-day pattern (see cellStateClasses); a day someone is actually
85
+ * away is booked as dated leave, not derived from this. */
86
+ export interface EmployeeAvailHours {
87
+ from: string;
88
+ to: string;
89
+ }
90
+ export interface Employee {
91
+ id: number;
92
+ /** Stable backend identity. The numeric id is only a board/view-model id. */
93
+ sourceId: string;
94
+ name: string;
95
+ employmentType: 'FULLTIME' | 'PARTTIME';
96
+ role: string;
97
+ initials: string;
98
+ color: string;
99
+ weekHours: number;
100
+ /** Full-time-equivalent percentage, e.g. 100 for a full-timer, 60 for 0.6 FTE. */
101
+ pct: number;
102
+ /** Hours per week this person is contracted to, as agreed with them. Per-person rather than
103
+ * a venue default: ScheduleSettings holds pay rates and employee-hour defaults, and EmployeeProfiles.workingHours
104
+ * is where the figure is actually stated. Undefined means nobody has agreed one. */
105
+ contractHours?: number;
106
+ rate: number;
107
+ positions: string[];
108
+ /** Position references that remain on the employee profile but are no longer active in the catalogue. */
109
+ archivedPositions?: string[];
110
+ /** One entry per visible day of the horizon; null = day off. */
111
+ shifts: DaySlot[];
112
+ /** Dated time-off records are kept beside shifts so an off/leave card remains visible when
113
+ * a manager adds a shift on the same day. */
114
+ timeOff?: Array<LeaveSlot | null>;
115
+ remarks: EmployeeRemark[];
116
+ section: string;
117
+ compGroup?: string;
118
+ mobile?: string;
119
+ dial?: string;
120
+ /** Outlets this person may be rostered at. */
121
+ locations?: string[];
122
+ payBasis?: 'hourly' | 'monthly';
123
+ /** The figure as agreed with them, in payBasis's unit — `rate` above is always the
124
+ * hourly figure derived from this and is what the grid actually costs shifts with. */
125
+ payAmount?: number;
126
+ maxHours?: number;
127
+ /** Shortest shift, in hours, this person will come in for. Asking for less is allowed but
128
+ * warned about in the shift popover. */
129
+ minHours?: number;
130
+ minHoursPerDay?: number;
131
+ workingHours?: {
132
+ minHoursPerDay: number | null;
133
+ maxHoursPerDay: number | null;
134
+ maxHoursPerWeek: number | null;
135
+ };
136
+ overtime?: {
137
+ maxHoursPerMonth: number | null;
138
+ };
139
+ preferences?: string[];
140
+ seniority?: 'senior' | 'junior' | '';
141
+ /** Recurring days off (full-timer) or days available (part-timer) — see
142
+ * EmployeeAvailHours above for why the grid does not read this. */
143
+ availDays?: boolean[];
144
+ availHours?: EmployeeAvailHours[];
145
+ /** POS sign-in code. Optional: rostering, costing and publishing never depend on it. */
146
+ passcode?: string;
147
+ /** POS master-user code, when this employee is a master user. */
148
+ code?: string;
149
+ masterUser?: boolean;
150
+ }
151
+ export interface Section {
152
+ id: string;
153
+ label: string;
154
+ roles: string[];
155
+ /** The "Unassigned" bucket — always present, never deletable. */
156
+ system?: boolean;
157
+ }
158
+ export interface OpenShift {
159
+ id: number;
160
+ dayIdx: number;
161
+ position: string;
162
+ required: number;
163
+ filledBy: number | null;
164
+ sen?: 'junior' | 'senior';
165
+ empType?: 'full' | 'part';
166
+ /** Optional custom label for this open shift, shown above the time on its card
167
+ * (e.g. "Weekend cover") — distinct from the position it asks for. */
168
+ name?: string;
169
+ /** Hours this record asks for. Defaults to the active shift template's hours at
170
+ * creation, but the shift popover lets a manager retime one open shift on its own. */
171
+ start: string;
172
+ end: string;
173
+ breakMins?: number;
174
+ }
175
+ export interface ShiftTemplate {
176
+ key: string;
177
+ label: string;
178
+ start: string;
179
+ end: string;
180
+ color: string;
181
+ active: boolean;
182
+ breakMins: number;
183
+ }
184
+ /** Coverage requirement for one shift template: position -> [Mon..Sun] headcount. */
185
+ export type CoverageRow = Record<string, number[]>;
186
+ /** What an hour costs, by the kind of day it falls on — the ScheduleSettings document's whole
187
+ * content. `regular` multiplies ORDINARY hours and `overtime` multiplies hours past the OT
188
+ * threshold; a NORMAL day has no `regular` because an ordinary hour at ordinary pay is 1×.
189
+ *
190
+ * REST_DAY is carried but unread: this board has no standing weekly rest-day pattern to decide
191
+ * which dates are rest days (see cellStateClasses), so nothing can ask for its rates yet. */
192
+ export interface PayRate {
193
+ NORMAL: {
194
+ overtime: number;
195
+ };
196
+ REST_DAY: {
197
+ regular: number;
198
+ overtime: number;
199
+ };
200
+ PUBLIC_HOLIDAY: {
201
+ regular: number;
202
+ overtime: number;
203
+ };
204
+ }
205
+ export interface ScheduleRules {
206
+ coverage: Record<string, CoverageRow>;
207
+ openFrom: string;
208
+ openTo: string;
209
+ /** Per grid day (0 = Mon) trading windows straight off the outlet's own profile — one or
210
+ * more `{start, end}` pairs a day (a lunch/dinner split reads as two windows, not one that
211
+ * spans the gap between them), empty for a structurally closed day. `openFrom`/`openTo`
212
+ * above stay the widest span across the whole week: the coverage bar, day timeline and shift
213
+ * forms are still drawn against one axis for the whole board, not a different one per day. */
214
+ dayHours: Array<{
215
+ start: string;
216
+ end: string;
217
+ }>[];
218
+ payRate: PayRate;
219
+ /** Weekly sales forecast (RM) — the stats row's editable input and the figure the
220
+ * per-day forecast curve distributes across the week. */
221
+ salesForecast: number;
222
+ /** Weekday indices (0 = Mon) the venue never opens on. Empty by default — this seed venue
223
+ * runs every day. Feeds copy-week's and export's "Closed" labeling. */
224
+ closedWeekdays: number[];
225
+ /** Labour cost target as a % of sales — Settings page "Labour budget" tab. */
226
+ labourTarget: number;
227
+ /** When true, the weekly labour cap is derived from salesForecast * labourTarget instead
228
+ * of being a standalone figure. */
229
+ budgetFromSales: boolean;
230
+ /** Weekly labour cap (RM), editable directly when budgetFromSales is false. */
231
+ budget: number;
232
+ /** Monthly OT cap (hours) — Settings page "Overtime" tab. */
233
+ otCapHours: number | null;
234
+ workingHours: {
235
+ minHoursPerDay: number | null;
236
+ maxHoursPerDay: number | null;
237
+ maxHoursPerWeek: number | null;
238
+ };
239
+ /** Monthly OT budget (RM), advisory only. */
240
+ otBudget: number;
241
+ notify: {
242
+ waConnected: boolean;
243
+ waNumber: string;
244
+ waDisplayName: string;
245
+ defaults: {
246
+ wa: boolean;
247
+ push: boolean;
248
+ email: boolean;
249
+ };
250
+ };
251
+ }
252
+ export interface PendingChange {
253
+ empId: number;
254
+ employeeKey: string;
255
+ dayIdx: number;
256
+ kind: 'add' | 'change' | 'remove';
257
+ label: string;
258
+ conflict?: boolean;
259
+ }
260
+ export type NotifyChannel = 'wa' | 'push' | 'email';
261
+ export interface ScheduleVersionSnapshot {
262
+ id: number;
263
+ name: string;
264
+ weekHours: number;
265
+ shifts: DaySlot[];
266
+ }
267
+ export interface ScheduleVersion {
268
+ v: number;
269
+ at: Date;
270
+ by: string;
271
+ note: string;
272
+ changeCount: number;
273
+ staffAffected: number;
274
+ snapshot: ScheduleVersionSnapshot[];
275
+ }
276
+ export type ScheduleStatusTone = 'neutral' | 'warn' | 'ok' | 'locked';
277
+ export interface ScheduleStatusInfo {
278
+ tone: ScheduleStatusTone;
279
+ label: string;
280
+ hint: string;
281
+ allLocked: boolean;
282
+ }
283
+ /** Someone in the business's employee directory who is not yet on THIS outlet's schedule —
284
+ * they may already be scheduled elsewhere (see `otherOutlets`), or nowhere at all. Picking one
285
+ * puts a second, independent EmployeeProfiles document against their `employeeId`; it does not
286
+ * move or copy their profile from wherever else they work. */
287
+ export interface ExistingStaffCandidate {
288
+ employeeId: string;
289
+ name: string;
290
+ /** Other outlets this person already has a POS/HR association with — not necessarily a
291
+ * scheduling profile there, just enough context to tell two same-named people apart and to
292
+ * warn against loaning someone who's clearly based elsewhere. */
293
+ otherOutlets: string[];
294
+ /** Every outlet the person works at, by name (this one included when the POS lists it). */
295
+ locations: string[];
296
+ }
297
+ export interface CompGroupMeta {
298
+ basis: 'Hourly' | 'Monthly';
299
+ rate: number;
300
+ note: string;
301
+ }
302
+ /** A manager's note on a DATE, not on a shift — it survives every shift on that date being
303
+ * deleted, because a day with nothing rostered can still be an event day. The title is what
304
+ * makes the note visible on the day card; the description shows on hover. */
305
+ export interface ScheduleDayNote {
306
+ title: string;
307
+ desc: string;
308
+ }
309
+ /** One named slice of a staffing-demand period: "of the 8 people, 2 on grill". Named rows are
310
+ * a PART of the period's headcount, never an addition to it — whatever they don't name is the
311
+ * "any position" remainder, which is derived and never stored. */
312
+ export interface DemandRole {
313
+ position: string;
314
+ /** Persisted position identity; the name is only the display label. */
315
+ positionId?: string;
316
+ n: number;
317
+ }
318
+ /** A stretch of a day and how many people the floor needs across it. Deliberately not a shift:
319
+ * it carries no person and no times anybody works, so five staggered shifts can add up to the
320
+ * five people it asks for at 4pm without any of them being "the" shift for it. */
321
+ export interface DemandPeriod {
322
+ from: string;
323
+ to: string;
324
+ n: number;
325
+ /** Absent and empty mean the same thing — "anybody" — so only a stated breakdown is kept. */
326
+ roles?: DemandRole[];
327
+ }
328
+ /** One slice of a day where neither what was asked for nor who is on the floor changes. The
329
+ * timeline draws one of these per segment and the day's percentage is their weighted sum. */
330
+ export interface CoverageSegment {
331
+ from: number;
332
+ to: number;
333
+ required: number;
334
+ scheduled: number;
335
+ /** Heads asked for that nobody present answers — which is not the same as "too few bodies":
336
+ * eight people none of whom is a cook leaves a 2-grill ask two short with nobody missing. */
337
+ short: number;
338
+ over: number;
339
+ roles: Array<DemandRole & {
340
+ required: number;
341
+ got: number;
342
+ short: number;
343
+ }>;
344
+ /** The unnamed remainder of the period's headcount, and how much of it is covered. */
345
+ anyReq: number;
346
+ anyGot: number;
347
+ /** Nothing was asked for in these hours — an absence of a question, not a gap in one. */
348
+ none: boolean;
349
+ }
350
+ export type DemandApplyMode = 'day' | 'every' | 'weekday' | 'weekdays' | 'custom';
351
+ export interface NoticeBanner {
352
+ variant: 'holiday' | 'info' | 'warning';
353
+ dayIdx: number;
354
+ label: string;
355
+ detail: string;
356
+ action?: string;
357
+ }
358
+ /** One Auto-Schedule suggestion: put `empId` on `dayIdx` for the given hours/position.
359
+ * Phase 2 only ever proposes filling an empty day (an open shift or a coverage gap),
360
+ * so there is no 'change'/'remove' kind like the mockup's fuller engine. */
361
+ export interface Proposal {
362
+ id: number;
363
+ empId: number;
364
+ dayIdx: number;
365
+ start: string;
366
+ end: string;
367
+ role: string;
368
+ /** The position backing `role`, when the auto-schedule result named one. `null`/absent means
369
+ * any position (an unnamed need). */
370
+ positionId?: string | null;
371
+ /** Set when this proposal would fill a named OpenShift record. */
372
+ openId?: number;
373
+ status: 'pending' | 'rejected';
374
+ /** The week these belong to: its first day's date. Proposals are day positions, so without
375
+ * this they would appear on whichever week is showing. */
376
+ weekKey?: string;
377
+ /** Why this person, for the card's tooltip. */
378
+ reason?: string;
379
+ /** Set when the server already knows applying this row would be refused; it starts rejected. */
380
+ rejectReason?: string;
381
+ }
@@ -31,9 +31,7 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
31
31
  }>, {
32
32
  readGrantData: typeof readGrantData;
33
33
  isModified: typeof isModified;
34
- }, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {} & {
35
- "create-pos-role": () => any;
36
- }, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
34
+ }, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
37
35
  initialValue: {
38
36
  type: PropType<MemberGrantInitialValue | null>;
39
37
  };
@@ -46,9 +44,7 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
46
44
  type: BooleanConstructor;
47
45
  default: boolean;
48
46
  };
49
- }>> & Readonly<{
50
- "onCreate-pos-role"?: (() => any) | undefined;
51
- }>, {
47
+ }>> & Readonly<{}>, {
52
48
  loading: boolean;
53
49
  fallbackName: string;
54
50
  }, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
@@ -17,21 +17,21 @@ type __VLS_Props = {
17
17
  title?: string;
18
18
  };
19
19
  declare const _default: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {} & {
20
- apply: () => any;
21
20
  "update-form": (payload: {
22
21
  builder: ConditionBuilder;
23
22
  form: unknown;
24
23
  }) => any;
24
+ apply: () => any;
25
25
  "update-inherit-mode": (payload: {
26
26
  builder: ConditionBuilder;
27
27
  mode: "inherit" | "custom";
28
28
  }) => any;
29
29
  }, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{
30
- onApply?: (() => any) | undefined;
31
30
  "onUpdate-form"?: ((payload: {
32
31
  builder: ConditionBuilder;
33
32
  form: unknown;
34
33
  }) => any) | undefined;
34
+ onApply?: (() => any) | undefined;
35
35
  "onUpdate-inherit-mode"?: ((payload: {
36
36
  builder: ConditionBuilder;
37
37
  mode: "inherit" | "custom";
@@ -21,7 +21,6 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
21
21
  };
22
22
  }>, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {} & {
23
23
  "update:modelValue": (roles: IFdtoPermissionPosUserRole[]) => any;
24
- "create-role": () => any;
25
24
  }, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
26
25
  modelValue: {
27
26
  type: PropType<IFdtoPermissionPosUserRole[]>;
@@ -41,6 +40,5 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
41
40
  };
42
41
  }>> & Readonly<{
43
42
  "onUpdate:modelValue"?: ((roles: IFdtoPermissionPosUserRole[]) => any) | undefined;
44
- "onCreate-role"?: (() => any) | undefined;
45
43
  }>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
46
44
  export default _default;
@@ -14,17 +14,17 @@ type __VLS_Slots = {} & {
14
14
  section?: (props: typeof __VLS_1) => any;
15
15
  };
16
16
  declare const __VLS_component: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {} & {
17
- apply: () => any;
18
17
  "update-form": (payload: {
19
18
  builder: ConditionBuilder;
20
19
  form: unknown;
21
20
  }) => any;
21
+ apply: () => any;
22
22
  }, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{
23
- onApply?: (() => any) | undefined;
24
23
  "onUpdate-form"?: ((payload: {
25
24
  builder: ConditionBuilder;
26
25
  form: unknown;
27
26
  }) => any) | undefined;
27
+ onApply?: (() => any) | undefined;
28
28
  }>, {
29
29
  title: string;
30
30
  disable: boolean;
@@ -65,7 +65,6 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
65
65
  providerLabel: import("vue").ComputedRef<string>;
66
66
  }, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {} & {
67
67
  "update-existing": (existing: IFdtoStaffInviteLookup) => any;
68
- "create-pos-role": () => any;
69
68
  }, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
70
69
  initialValue: {
71
70
  type: PropType<TeamDialogData>;
@@ -88,7 +87,6 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
88
87
  };
89
88
  }>> & Readonly<{
90
89
  "onUpdate-existing"?: ((existing: IFdtoStaffInviteLookup) => any) | undefined;
91
- "onCreate-pos-role"?: (() => any) | undefined;
92
90
  }>, {
93
91
  loading: boolean;
94
92
  roleErrorMessage: string;
@@ -33,7 +33,6 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
33
33
  };
34
34
  }>, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {} & {
35
35
  "update:model-value": (user: IFdtoPermissionPosUser | null | undefined) => any;
36
- "create-role": () => any;
37
36
  }, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
38
37
  modelValue: {
39
38
  type: PropType<IFdtoPermissionPosUser | null>;
@@ -65,7 +64,6 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
65
64
  };
66
65
  }>> & Readonly<{
67
66
  "onUpdate:model-value"?: ((user: IFdtoPermissionPosUser | null | undefined) => any) | undefined;
68
- "onCreate-role"?: (() => any) | undefined;
69
67
  }>, {
70
68
  modelValue: IFdtoPermissionPosUser | null;
71
69
  fallbackPasscode: string;