@feedmepos/mf-hrm-portal 2.3.2-dev → 2.3.2-dev.11

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (296) hide show
  1. package/dist/{ApprovalCodeList-xOyDG5ug.js → ApprovalCodeList-DoNoFW6w.js} +14 -15
  2. package/dist/AuditLogList-D5M0cl8g.js +2026 -0
  3. package/dist/{ConditionBuilderForm.vue_vue_type_script_setup_true_lang-Cixg_icC.js → ConditionBuilderForm.vue_vue_type_script_setup_true_lang-C1dLOPFb.js} +10 -10
  4. package/dist/{EmployeeList-BG2KPvOB.js → EmployeeList-BX9gy9WG.js} +196 -208
  5. package/dist/FormSection.vue_vue_type_script_setup_true_lang-iCgTyICI.js +90 -0
  6. package/dist/{GrantUserList-CUkuf3VV.js → GrantUserList-DNvmmlDI.js} +15 -16
  7. package/dist/{Main-Cg9SOzcz.js → Main-2NivoQNg.js} +5 -5
  8. package/dist/{Main-BSHf8gTE.js → Main-BHmY7VHC.js} +12 -11
  9. package/dist/{Main-BcixH7R5.js → Main-SzU5H5uC.js} +2394 -2383
  10. package/dist/MyPosProfile-2W5mT5d5.js +360 -0
  11. package/dist/{PermissionSetList-I3u2_qHR.js → PermissionSetList-BCAm8rHm.js} +82 -80
  12. package/dist/PortalPermissionEditor.vue_vue_type_script_setup_true_lang-e2vu_Mcn.js +4208 -0
  13. package/dist/PortalUserSearcher.vue_vue_type_style_index_0_scoped_827dfd60_lang-DYbfmF2P.js +1797 -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-o4mXv2hT.js +547 -0
  16. package/dist/RoleList-BXkyCeH0.js +265 -0
  17. package/dist/ScheduleAddPositionModal.vue_vue_type_script_setup_true_lang-DOxRdHY1.js +544 -0
  18. package/dist/ScheduleGeneralPage-4hV53-q6.js +811 -0
  19. package/dist/ScheduleModal.vue_vue_type_script_setup_true_lang-D5jOHLA1.js +2557 -0
  20. package/dist/SchedulePage-CqNa_p32.js +19446 -0
  21. package/dist/SchedulePositionPage-7xYBe1xd.js +282 -0
  22. package/dist/SelectFilter-Dy2Nv1_D.js +263 -0
  23. package/dist/TeamMemberList-okhiXdLg.js +2087 -0
  24. package/dist/TimesheetList-BKj9OnJW.js +437 -0
  25. package/dist/{app-CdrnR_Pw.js → app-C37qvNnc.js} +14439 -5834
  26. package/dist/app.js +1 -1
  27. package/dist/{approval-code-Bwvwehz9.js → approval-code-B7rpc4Oe.js} +4 -4
  28. package/dist/{dayjs.min-BO8bcI17.js → dayjs.min-D35yhU4A.js} +12 -12
  29. package/dist/employee-Bn6HTMxg.js +172 -0
  30. package/dist/{grant-user-whFOaPZI.js → grant-user-CostZ0Md.js} +2 -2
  31. package/dist/{iteration-ZpERYj3o.js → index-DPiNc7mn.js} +698 -726
  32. package/dist/iteration-CcXrOMQe.js +30 -0
  33. package/dist/{lodash-7SZBZ8VQ.js → lodash-C8MGI_QW.js} +1 -1
  34. package/dist/member-grant-CktOoicv.js +54 -0
  35. package/dist/object-Dwyg2LgX.js +16 -0
  36. package/dist/restaurant-BgvuJL8G.js +52 -0
  37. package/dist/role-D8G5QOG1.js +98 -0
  38. package/dist/rule-EYBPBkv_.js +843 -0
  39. package/dist/src/api/audit-log/index.d.ts +6 -0
  40. package/dist/src/api/employee/index.d.ts +3 -4
  41. package/dist/src/api/my-pos-profile/index.d.ts +1 -3
  42. package/dist/src/api/restaurant/index.d.ts +2 -0
  43. package/dist/src/api/schedule/index.d.ts +68 -0
  44. package/dist/src/api/sso-provider/index.d.ts +5 -0
  45. package/dist/src/api/staff-invite/index.d.ts +1 -2
  46. package/dist/src/api/timesheet/index.d.ts +1 -1
  47. package/dist/src/components/AppForm.vue.d.ts +2 -2
  48. package/dist/src/components/CheckboxInput.vue.d.ts +2 -2
  49. package/dist/src/components/layout/PortalShell.vue.d.ts +12 -0
  50. package/dist/src/components/layout/SchedulePromoBanner.vue.d.ts +2 -0
  51. package/dist/src/components/layout/withScheduleShell.d.ts +10 -0
  52. package/dist/src/composables/useDiscardConfirm.d.ts +3 -1
  53. package/dist/src/composables/useMessage.d.ts +8 -2
  54. package/dist/src/composables/useSsoProviders.d.ts +19 -0
  55. package/dist/src/composables/useStaffInviteProviders.d.ts +1 -12
  56. package/dist/src/helpers/permission-set.d.ts +1 -102
  57. package/dist/src/helpers/pos-assignment-rows.d.ts +2 -0
  58. package/dist/src/helpers/rule.d.ts +2 -2
  59. package/dist/src/helpers/staff-invite.d.ts +3 -0
  60. package/dist/src/router/shared.d.ts +3 -0
  61. package/dist/src/stores/approval-code.d.ts +1 -1
  62. package/dist/src/stores/employee.d.ts +15 -21
  63. package/dist/src/stores/grant-user.d.ts +1 -1
  64. package/dist/src/stores/permission-assignment.d.ts +2 -2
  65. package/dist/src/stores/permission-set.d.ts +2 -2
  66. package/dist/src/stores/restaurant.d.ts +63 -3
  67. package/dist/src/stores/role.d.ts +2 -2
  68. package/dist/src/stores/team.d.ts +1 -1
  69. package/dist/src/stores/timesheet.d.ts +68 -53
  70. package/dist/src/types/employee.d.ts +1 -0
  71. package/dist/src/types/my-pos-profile.d.ts +2 -3
  72. package/dist/src/types/schedule.d.ts +23 -0
  73. package/dist/src/types/sso-provider.d.ts +10 -0
  74. package/dist/src/types/timesheet.d.ts +3 -0
  75. package/dist/src/views/audit-log/constants.d.ts +9 -30
  76. package/dist/src/views/audit-log/locales/index.d.ts +528 -0
  77. package/dist/src/views/audit-log/pos-row.d.ts +27 -0
  78. package/dist/src/views/audit-log/useTraceIdDeepLink.d.ts +19 -0
  79. package/dist/src/views/hr/locales/index.d.ts +24 -4
  80. package/dist/src/views/hr/role/RoleForm.vue.d.ts +29 -2
  81. package/dist/src/views/my-pos-profile/components/PasscodeChangedDialog.vue.d.ts +1 -1
  82. package/dist/src/views/my-pos-profile/locales/index.d.ts +40 -4
  83. package/dist/src/views/scheduling/ScheduleGeneralPage.vue.d.ts +3 -0
  84. package/dist/src/views/scheduling/SchedulePage.vue.d.ts +3 -0
  85. package/dist/src/views/scheduling/SchedulePositionPage.vue.d.ts +3 -0
  86. package/dist/src/views/scheduling/components/ScheduleAddEmployeeIdentitySection.vue.d.ts +6 -0
  87. package/dist/src/views/scheduling/components/ScheduleAddEmployeeModal.vue.d.ts +12 -0
  88. package/dist/src/views/scheduling/components/ScheduleAddEmployeeModeStep.vue.d.ts +6 -0
  89. package/dist/src/views/scheduling/components/ScheduleAddEmployeePosAccessSection.vue.d.ts +6 -0
  90. package/dist/src/views/scheduling/components/ScheduleAddEmployeePositionsSection.vue.d.ts +10 -0
  91. package/dist/src/views/scheduling/components/ScheduleAddEmployeeSchedulingSection.vue.d.ts +6 -0
  92. package/dist/src/views/scheduling/components/ScheduleAddPickPopover.vue.d.ts +6 -0
  93. package/dist/src/views/scheduling/components/ScheduleAddPositionModal.vue.d.ts +6 -0
  94. package/dist/src/views/scheduling/components/ScheduleAreaRows.vue.d.ts +41 -0
  95. package/dist/src/views/scheduling/components/ScheduleAutoScheduleDetailsModal.vue.d.ts +6 -0
  96. package/dist/src/views/scheduling/components/ScheduleAutoScheduleDoneArt.vue.d.ts +2 -0
  97. package/dist/src/views/scheduling/components/ScheduleAutoScheduleModal.vue.d.ts +10 -0
  98. package/dist/src/views/scheduling/components/ScheduleBoardAreaRows.vue.d.ts +25 -0
  99. package/dist/src/views/scheduling/components/ScheduleBoardEditOverlays.vue.d.ts +17 -0
  100. package/dist/src/views/scheduling/components/ScheduleBoardEmployeeRows.vue.d.ts +31 -0
  101. package/dist/src/views/scheduling/components/ScheduleBoardGridHeader.vue.d.ts +29 -0
  102. package/dist/src/views/scheduling/components/ScheduleBoardInteractionOverlays.vue.d.ts +34 -0
  103. package/dist/src/views/scheduling/components/ScheduleBoardOnboardingOverlays.vue.d.ts +26 -0
  104. package/dist/src/views/scheduling/components/ScheduleBoardRails.vue.d.ts +17 -0
  105. package/dist/src/views/scheduling/components/ScheduleBoardToolbar.vue.d.ts +38 -0
  106. package/dist/src/views/scheduling/components/ScheduleBoardUtilityOverlays.vue.d.ts +22 -0
  107. package/dist/src/views/scheduling/components/ScheduleButton.vue.d.ts +23 -0
  108. package/dist/src/views/scheduling/components/ScheduleChangeEmployeeModal.vue.d.ts +8 -0
  109. package/dist/src/views/scheduling/components/ScheduleCloneOutletModal.vue.d.ts +6 -0
  110. package/dist/src/views/scheduling/components/ScheduleCoach.vue.d.ts +6 -0
  111. package/dist/src/views/scheduling/components/ScheduleCompletionDialog.vue.d.ts +15 -0
  112. package/dist/src/views/scheduling/components/ScheduleConfirmModal.vue.d.ts +33 -0
  113. package/dist/src/views/scheduling/components/ScheduleContextMenu.vue.d.ts +17 -0
  114. package/dist/src/views/scheduling/components/ScheduleCostRail.vue.d.ts +8 -0
  115. package/dist/src/views/scheduling/components/ScheduleCostRailEmptyArt.vue.d.ts +2 -0
  116. package/dist/src/views/scheduling/components/ScheduleDateRangePopover.vue.d.ts +6 -0
  117. package/dist/src/views/scheduling/components/ScheduleDayNotePopover.vue.d.ts +6 -0
  118. package/dist/src/views/scheduling/components/ScheduleDayTimeline.vue.d.ts +17 -0
  119. package/dist/src/views/scheduling/components/ScheduleDemandRow.vue.d.ts +23 -0
  120. package/dist/src/views/scheduling/components/ScheduleDemandSheet.vue.d.ts +10 -0
  121. package/dist/src/views/scheduling/components/ScheduleDotsIcon.vue.d.ts +2 -0
  122. package/dist/src/views/scheduling/components/ScheduleEmployeeDetailPanel.vue.d.ts +12 -0
  123. package/dist/src/views/scheduling/components/ScheduleEmployeeIdentity.vue.d.ts +17 -0
  124. package/dist/src/views/scheduling/components/ScheduleExportPreview.vue.d.ts +7 -0
  125. package/dist/src/views/scheduling/components/ScheduleFilterBar.vue.d.ts +18 -0
  126. package/dist/src/views/scheduling/components/ScheduleGapPopover.vue.d.ts +6 -0
  127. package/dist/src/views/scheduling/components/ScheduleGridHeader.vue.d.ts +18 -0
  128. package/dist/src/views/scheduling/components/ScheduleGridSkeleton.vue.d.ts +2 -0
  129. package/dist/src/views/scheduling/components/ScheduleLeaveEditModal.vue.d.ts +6 -0
  130. package/dist/src/views/scheduling/components/ScheduleLoadState.vue.d.ts +9 -0
  131. package/dist/src/views/scheduling/components/ScheduleModal.vue.d.ts +26 -0
  132. package/dist/src/views/scheduling/components/ScheduleOnboardingAssignPositionModal.vue.d.ts +6 -0
  133. package/dist/src/views/scheduling/components/ScheduleOnboardingClosedDayConfirm.vue.d.ts +6 -0
  134. package/dist/src/views/scheduling/components/ScheduleOnboardingDemandDays.vue.d.ts +6 -0
  135. package/dist/src/views/scheduling/components/ScheduleOnboardingDemandFooter.vue.d.ts +6 -0
  136. package/dist/src/views/scheduling/components/ScheduleOnboardingDemandHeader.vue.d.ts +6 -0
  137. package/dist/src/views/scheduling/components/ScheduleOnboardingDoneArt.vue.d.ts +2 -0
  138. package/dist/src/views/scheduling/components/ScheduleOnboardingHoursProfileNotice.vue.d.ts +10 -0
  139. package/dist/src/views/scheduling/components/ScheduleOnboardingPositions.vue.d.ts +6 -0
  140. package/dist/src/views/scheduling/components/ScheduleOnboardingReview.vue.d.ts +6 -0
  141. package/dist/src/views/scheduling/components/ScheduleOnboardingSettings.vue.d.ts +6 -0
  142. package/dist/src/views/scheduling/components/ScheduleOnboardingWelcome.vue.d.ts +11 -0
  143. package/dist/src/views/scheduling/components/ScheduleOnboardingWizard.vue.d.ts +9 -0
  144. package/dist/src/views/scheduling/components/ScheduleOnboardingWizardFooter.vue.d.ts +6 -0
  145. package/dist/src/views/scheduling/components/ScheduleOnboardingWizardHeader.vue.d.ts +11 -0
  146. package/dist/src/views/scheduling/components/SchedulePublishModal.vue.d.ts +8 -0
  147. package/dist/src/views/scheduling/components/SchedulePublishShareArt.vue.d.ts +2 -0
  148. package/dist/src/views/scheduling/components/ScheduleReviewBar.vue.d.ts +12 -0
  149. package/dist/src/views/scheduling/components/ScheduleSelect.vue.d.ts +70 -0
  150. package/dist/src/views/scheduling/components/ScheduleSelectExistingEmployeeModal.vue.d.ts +6 -0
  151. package/dist/src/views/scheduling/components/ScheduleSetupBanner.vue.d.ts +12 -0
  152. package/dist/src/views/scheduling/components/ScheduleShiftCell.vue.d.ts +35 -0
  153. package/dist/src/views/scheduling/components/ScheduleShiftHeadcountEditor.vue.d.ts +10 -0
  154. package/dist/src/views/scheduling/components/ScheduleShiftImpact.vue.d.ts +6 -0
  155. package/dist/src/views/scheduling/components/ScheduleShiftMoreOptions.vue.d.ts +8 -0
  156. package/dist/src/views/scheduling/components/ScheduleShiftPopover.vue.d.ts +16 -0
  157. package/dist/src/views/scheduling/components/ScheduleShiftRepeatDaysRow.vue.d.ts +8 -0
  158. package/dist/src/views/scheduling/components/ScheduleShiftSegmentsEditor.vue.d.ts +8 -0
  159. package/dist/src/views/scheduling/components/ScheduleShiftWhoPicker.vue.d.ts +25 -0
  160. package/dist/src/views/scheduling/components/ScheduleStaffRail.vue.d.ts +16 -0
  161. package/dist/src/views/scheduling/components/ScheduleStaffRows.vue.d.ts +50 -0
  162. package/dist/src/views/scheduling/components/ScheduleStatsRow.vue.d.ts +12 -0
  163. package/dist/src/views/scheduling/components/ScheduleSwapShiftsModal.vue.d.ts +8 -0
  164. package/dist/src/views/scheduling/components/ScheduleTimePickerPopover.vue.d.ts +6 -0
  165. package/dist/src/views/scheduling/components/ScheduleTopbar.vue.d.ts +20 -0
  166. package/dist/src/views/scheduling/composables/auto-schedule-mapping.d.ts +35 -0
  167. package/dist/src/views/scheduling/composables/onboarding-constants.d.ts +7 -0
  168. package/dist/src/views/scheduling/composables/onboarding-hours.d.ts +7 -0
  169. package/dist/src/views/scheduling/composables/onboarding-types.d.ts +51 -0
  170. package/dist/src/views/scheduling/composables/remyPrompt.d.ts +15 -0
  171. package/dist/src/views/scheduling/composables/schedule-add-employee-form.d.ts +82 -0
  172. package/dist/src/views/scheduling/composables/schedule-board-helpers.d.ts +63 -0
  173. package/dist/src/views/scheduling/composables/schedule-breaks.d.ts +9 -0
  174. package/dist/src/views/scheduling/composables/schedule-calendar.d.ts +17 -0
  175. package/dist/src/views/scheduling/composables/schedule-cost.d.ts +24 -0
  176. package/dist/src/views/scheduling/composables/schedule-currency.d.ts +22 -0
  177. package/dist/src/views/scheduling/composables/schedule-day-meta.d.ts +21 -0
  178. package/dist/src/views/scheduling/composables/schedule-demand-domain.d.ts +23 -0
  179. package/dist/src/views/scheduling/composables/schedule-employee-profile.d.ts +7 -0
  180. package/dist/src/views/scheduling/composables/schedule-error.d.ts +1 -0
  181. package/dist/src/views/scheduling/composables/schedule-export-matrix.d.ts +14 -0
  182. package/dist/src/views/scheduling/composables/schedule-leave-split.d.ts +9 -0
  183. package/dist/src/views/scheduling/composables/schedule-popover-position.d.ts +16 -0
  184. package/dist/src/views/scheduling/composables/schedule-quick-pick.d.ts +23 -0
  185. package/dist/src/views/scheduling/composables/schedule-shift-time.d.ts +29 -0
  186. package/dist/src/views/scheduling/composables/schedule-time.d.ts +8 -0
  187. package/dist/src/views/scheduling/composables/schedule-week-cache.d.ts +9 -0
  188. package/dist/src/views/scheduling/composables/useCollapsedList.d.ts +9 -0
  189. package/dist/src/views/scheduling/composables/useRemyAppStore.d.ts +16 -0
  190. package/dist/src/views/scheduling/composables/useScheduleAddEmployee.d.ts +137 -0
  191. package/dist/src/views/scheduling/composables/useScheduleAddPick.d.ts +75 -0
  192. package/dist/src/views/scheduling/composables/useScheduleAreaBoard.d.ts +50 -0
  193. package/dist/src/views/scheduling/composables/useScheduleAreaDragDrop.d.ts +11 -0
  194. package/dist/src/views/scheduling/composables/useScheduleAssignmentMutations.d.ts +13 -0
  195. package/dist/src/views/scheduling/composables/useScheduleAutoSchedule.d.ts +301 -0
  196. package/dist/src/views/scheduling/composables/useScheduleBoard.d.ts +615 -0
  197. package/dist/src/views/scheduling/composables/useScheduleCellState.d.ts +27 -0
  198. package/dist/src/views/scheduling/composables/useScheduleClashDetection.d.ts +28 -0
  199. package/dist/src/views/scheduling/composables/useScheduleCloneOutletModal.d.ts +21 -0
  200. package/dist/src/views/scheduling/composables/useScheduleCoach.d.ts +80 -0
  201. package/dist/src/views/scheduling/composables/useScheduleCopyWeek.d.ts +12 -0
  202. package/dist/src/views/scheduling/composables/useScheduleCostRail.d.ts +60 -0
  203. package/dist/src/views/scheduling/composables/useScheduleDayNote.d.ts +44 -0
  204. package/dist/src/views/scheduling/composables/useScheduleDayTimeline.d.ts +111 -0
  205. package/dist/src/views/scheduling/composables/useScheduleDemand.d.ts +59 -0
  206. package/dist/src/views/scheduling/composables/useScheduleDemandRow.d.ts +47 -0
  207. package/dist/src/views/scheduling/composables/useScheduleDemandSheet.d.ts +166 -0
  208. package/dist/src/views/scheduling/composables/useScheduleDragDrop.d.ts +55 -0
  209. package/dist/src/views/scheduling/composables/useScheduleEmployeeAccess.d.ts +24 -0
  210. package/dist/src/views/scheduling/composables/useScheduleEmployeeAvailability.d.ts +13 -0
  211. package/dist/src/views/scheduling/composables/useScheduleEmployeeCandidates.d.ts +49 -0
  212. package/dist/src/views/scheduling/composables/useScheduleEmployeeCompensation.d.ts +7 -0
  213. package/dist/src/views/scheduling/composables/useScheduleEmployeeForm.d.ts +22 -0
  214. package/dist/src/views/scheduling/composables/useScheduleEmployeeIdentity.d.ts +50 -0
  215. package/dist/src/views/scheduling/composables/useScheduleEmployeeMenu.d.ts +38 -0
  216. package/dist/src/views/scheduling/composables/useScheduleEmployeePersistence.d.ts +32 -0
  217. package/dist/src/views/scheduling/composables/useScheduleEmployeeProfile.d.ts +16 -0
  218. package/dist/src/views/scheduling/composables/useScheduleEmployeeValidation.d.ts +18 -0
  219. package/dist/src/views/scheduling/composables/useScheduleExport.d.ts +52 -0
  220. package/dist/src/views/scheduling/composables/useScheduleFilterBar.d.ts +14 -0
  221. package/dist/src/views/scheduling/composables/useScheduleGapPopover.d.ts +79 -0
  222. package/dist/src/views/scheduling/composables/useScheduleLeave.d.ts +60 -0
  223. package/dist/src/views/scheduling/composables/useScheduleLegend.d.ts +15 -0
  224. package/dist/src/views/scheduling/composables/useScheduleOnboardingAvailability.d.ts +58 -0
  225. package/dist/src/views/scheduling/composables/useScheduleOnboardingDemand.d.ts +45 -0
  226. package/dist/src/views/scheduling/composables/useScheduleOnboardingEmployees.d.ts +231 -0
  227. package/dist/src/views/scheduling/composables/useScheduleOnboardingFlow.d.ts +9 -0
  228. package/dist/src/views/scheduling/composables/useScheduleOnboardingHours.d.ts +15 -0
  229. package/dist/src/views/scheduling/composables/useScheduleOnboardingNavigation.d.ts +11 -0
  230. package/dist/src/views/scheduling/composables/useScheduleOnboardingPersistence.d.ts +13 -0
  231. package/dist/src/views/scheduling/composables/useScheduleOnboardingWizard.d.ts +1543 -0
  232. package/dist/src/views/scheduling/composables/useScheduleOutlet.d.ts +25 -0
  233. package/dist/src/views/scheduling/composables/useSchedulePageActions.d.ts +18 -0
  234. package/dist/src/views/scheduling/composables/useSchedulePageBootstrap.d.ts +9 -0
  235. package/dist/src/views/scheduling/composables/useSchedulePageCellActions.d.ts +21 -0
  236. package/dist/src/views/scheduling/composables/useSchedulePageCellDrop.d.ts +20 -0
  237. package/dist/src/views/scheduling/composables/useSchedulePageClearActions.d.ts +33 -0
  238. package/dist/src/views/scheduling/composables/useSchedulePageEmployeeActions.d.ts +22 -0
  239. package/dist/src/views/scheduling/composables/useSchedulePageOverlays.d.ts +21 -0
  240. package/dist/src/views/scheduling/composables/useSchedulePdfExport.d.ts +19 -0
  241. package/dist/src/views/scheduling/composables/useSchedulePositionModal.d.ts +55 -0
  242. package/dist/src/views/scheduling/composables/useSchedulePositions.d.ts +35 -0
  243. package/dist/src/views/scheduling/composables/useSchedulePublish.d.ts +127 -0
  244. package/dist/src/views/scheduling/composables/useSchedulePublishPersistence.d.ts +11 -0
  245. package/dist/src/views/scheduling/composables/useScheduleRangeCalendar.d.ts +27 -0
  246. package/dist/src/views/scheduling/composables/useScheduleRoster.d.ts +313 -0
  247. package/dist/src/views/scheduling/composables/useScheduleSettings.d.ts +40 -0
  248. package/dist/src/views/scheduling/composables/useScheduleSetupBanner.d.ts +17 -0
  249. package/dist/src/views/scheduling/composables/useScheduleShiftActions.d.ts +245 -0
  250. package/dist/src/views/scheduling/composables/useScheduleShiftDraft.d.ts +63 -0
  251. package/dist/src/views/scheduling/composables/useScheduleShiftPersistence.d.ts +17 -0
  252. package/dist/src/views/scheduling/composables/useScheduleShiftPopover.d.ts +255 -0
  253. package/dist/src/views/scheduling/composables/useScheduleStatsRow.d.ts +27 -0
  254. package/dist/src/views/scheduling/composables/useScheduleTimePicker.d.ts +49 -0
  255. package/dist/src/views/scheduling/composables/useScheduleTour.d.ts +95 -0
  256. package/dist/src/views/scheduling/composables/useScheduleViewportFit.d.ts +9 -0
  257. package/dist/src/views/scheduling/country-rules/index.d.ts +33 -0
  258. package/dist/src/views/scheduling/data.d.ts +123 -0
  259. package/dist/src/views/scheduling/locales/index.d.ts +6988 -0
  260. package/dist/src/views/scheduling/schedule-constants.d.ts +7 -0
  261. package/dist/src/views/scheduling/schedule-state.d.ts +767 -0
  262. package/dist/src/views/scheduling/schedule-store.d.ts +140 -0
  263. package/dist/src/views/scheduling/types.d.ts +381 -0
  264. package/dist/src/views/team/components/MemberGrantFields.vue.d.ts +2 -6
  265. package/dist/src/views/team/components/PortalConditionForm.vue.d.ts +2 -2
  266. package/dist/src/views/team/components/PosAssignmentRows.vue.d.ts +0 -2
  267. package/dist/src/views/team/condition-builders/ConditionBuilderForm.vue.d.ts +2 -2
  268. package/dist/src/views/team/member/AddMemberForm.vue.d.ts +0 -2
  269. package/dist/src/views/team/member/TeamMemberMasterUser.vue.d.ts +0 -2
  270. package/dist/style.css +1 -1
  271. package/dist/timesheet-D6jBeR-V.js +76 -0
  272. package/dist/tsconfig.app.tsbuildinfo +1 -1
  273. package/dist/{useAppStore-CL6EEDuw.js → useAppStore-BmBJPo1_.js} +1 -1
  274. package/dist/useDiscardConfirm-CzZSPyvh.js +28 -0
  275. package/dist/{useLoading-BBjBUzGJ.js → useLoading-BtyGXkm_.js} +1 -1
  276. package/dist/useMessage-_ywT_N9X.js +17 -0
  277. package/dist/{useReportPermissions-Bg0fma6m.js → useReportPermissions-C8z7EA7v.js} +13 -13
  278. package/dist/useSsoProviders-CZrTNgfp.js +41 -0
  279. package/package.json +7 -5
  280. package/dist/AuditLogList-Dd6HyFhk.js +0 -1777
  281. package/dist/FormItem.vue_vue_type_script_setup_true_lang-DPT2FoIc.js +0 -45
  282. package/dist/FormSection.vue_vue_type_script_setup_true_lang-DknXTYiK.js +0 -49
  283. package/dist/MyPosProfile-CN8Bj3aV.js +0 -301
  284. package/dist/PortalPermissionEditor.vue_vue_type_script_setup_true_lang-BBoRXQPn.js +0 -4243
  285. package/dist/PortalUserSearcher.vue_vue_type_style_index_0_scoped_827dfd60_lang-B5QDOF0L.js +0 -1840
  286. package/dist/RoleList-ALmAwN0U.js +0 -739
  287. package/dist/SelectFilter-ATOm0hdn.js +0 -269
  288. package/dist/TeamMemberList-DZfEnOs1.js +0 -2097
  289. package/dist/TimesheetList-CECFKt7H.js +0 -402
  290. package/dist/TimesheetList.vue_vue_type_style_index_0_scoped_63294af2_lang-RIyoAmeb.js +0 -58
  291. package/dist/employee-Dg-J9goA.js +0 -205
  292. package/dist/member-grant-C46lvrh2.js +0 -55
  293. package/dist/restaurant-CKhT6kgj.js +0 -45
  294. package/dist/role-C6hFKOfU.js +0 -93
  295. package/dist/rule-BlMymDXm.js +0 -788
  296. package/dist/useDiscardConfirm-DPhEV6v0.js +0 -157
@@ -0,0 +1,17 @@
1
+ export declare const RANGE_LEN = 7;
2
+ export declare function isoDateKey(date: Date): string;
3
+ export declare function addDays(date: Date, days: number): Date;
4
+ export declare function mostRecentMonday(from: Date): Date;
5
+ export declare function weekDates(offset: number, from?: Date): Date[];
6
+ export declare function weeksBetween(a: Date, b: Date): number;
7
+ export declare function todayWeekdayIdx(): number;
8
+ /** Monday-first weekday ids, matching the board's `dayIdx` (0 = Mon .. 6 = Sun). */
9
+ export declare const WEEKDAY_IDS: readonly ["mon", "tue", "wed", "thu", "fri", "sat", "sun"];
10
+ /** i18n key of a weekday's short name ("Mon" / "จ."). */
11
+ export declare function weekdayShortKey(dayIdx: number): string;
12
+ /** i18n key of a weekday's full name ("Monday" / "วันจันทร์"). */
13
+ export declare function weekdayLongKey(dayIdx: number): string;
14
+ /** BCP 47 tag for `Intl`/`toLocale*String` from the active i18n locale. English keeps the
15
+ * board's existing format (`enFallback`); Thai stays on the Gregorian calendar so years line up
16
+ * with ISO dates shown elsewhere instead of switching to the Buddhist era. */
17
+ export declare function intlLocale(locale: string | undefined, enFallback?: string): string;
@@ -0,0 +1,24 @@
1
+ import type { Employee, WorkSlot } from '../types';
2
+ export interface ScheduleCostBreakdown {
3
+ hours: number;
4
+ overtimeHours: number;
5
+ baseCost: number;
6
+ overtimeCost: number;
7
+ totalCost: number;
8
+ }
9
+ export declare function costOfSlot(slot: WorkSlot, rate: number, multiplier: number): {
10
+ hours: number;
11
+ cost: number;
12
+ };
13
+ /** Splits a sequence of paid shift minutes at the employee's contract line. This is the single
14
+ * overtime/cost calculation used by rails and exports; callers provide the applicable pay rate
15
+ * multiplier for each slot. */
16
+ export declare function costOfSlots(employee: Employee, slots: Array<{
17
+ slot: WorkSlot;
18
+ multiplier: number;
19
+ }>): ScheduleCostBreakdown;
20
+ /** The slice of vue-i18n's `t` the format helpers below need, so pure modules can take it as a
21
+ * parameter instead of calling `useI18n()` themselves. */
22
+ export type ScheduleTranslate = (key: string, named?: Record<string, unknown>) => string;
23
+ /** "7h 30m" / "7 ชม. 30 น." — hours rendered as whole hours plus leftover minutes. */
24
+ export declare function formatHoursMinutes(hours: number, t: ScheduleTranslate): string;
@@ -0,0 +1,22 @@
1
+ import { type ComputedRef } from 'vue';
2
+ interface CurrencyFormat {
3
+ label: string;
4
+ /** Where the label sits next to the number: "RM 3" vs "3 บาท" — how each market reads it. */
5
+ position: 'before' | 'after';
6
+ }
7
+ export declare function currencyFormatFor(country: string | null | undefined): CurrencyFormat;
8
+ export declare function currencyLabelFor(country: string | null | undefined): string;
9
+ /** Adds the label to an already-formatted number, on the side that market reads it. */
10
+ export declare function withCurrency(value: string, format: CurrencyFormat): string;
11
+ export interface ScheduleCurrency {
12
+ /** "RM" / "บาท", from the current business country (not the UI language). */
13
+ currency: ComputedRef<string>;
14
+ /** True when the label goes after the number (บาท), so input adornments flip sides. */
15
+ currencyAfter: ComputedRef<boolean>;
16
+ /** "RM 1,234" / "1,234 บาท" — rounded to whole units unless `fractionDigits` is given. */
17
+ formatMoney: (amount: number, fractionDigits?: number) => string;
18
+ /** Adds the currency label to a number that is already formatted. */
19
+ withCurrency: (value: string | number) => string;
20
+ }
21
+ export declare function useScheduleCurrency(): ScheduleCurrency;
22
+ export {};
@@ -0,0 +1,21 @@
1
+ import type { ScheduleDayNote } from '../types';
2
+ /** Everything a manager authors about a DATE rather than about a shift — the note on its
3
+ * card, whether the venue opens, whether it bills at the holiday rate. Keyed by ISO date
4
+ * (via the board's `dateKey`), not by weekday index: the mockup's flat single-week horizon
5
+ * could use the weekday index directly, but the board pages through weeks, and a note put on
6
+ * this Monday must not reappear on every other Monday. */
7
+ export declare function useScheduleDayMeta(dateKey: (dayIdx: number) => string | null, handlers?: {
8
+ onPersistError?: (message: string) => void;
9
+ }): {
10
+ dayNote: (dayIdx: number) => ScheduleDayNote | null;
11
+ setDayNote: (dayIdx: number, title: string, desc: string, isPublicHoliday?: boolean) => void;
12
+ clearDayNote: (dayIdx: number) => void;
13
+ isStandingClosedWeekday: (dayIdx: number) => boolean;
14
+ holidayName: (dayIdx: number) => string | null;
15
+ isPublicHoliday: (dayIdx: number) => boolean;
16
+ holidayRateApplies: (dayIdx: number) => boolean;
17
+ setPublicHoliday: (dayIdx: number, on: boolean) => void;
18
+ otRateOn: (dayIdx: number) => number;
19
+ regularRateOn: (dayIdx: number) => number;
20
+ isHoliday: (dayIdx: number) => boolean;
21
+ };
@@ -0,0 +1,23 @@
1
+ import type { DemandPeriod, Employee } from '../types';
2
+ import { format12h as t12, formatShortMinutes as minToShort, fromMinutes as minToHHMM, spanMinutes as spanOf, toMinutes as toMin } from './schedule-time';
3
+ export { minToHHMM, minToShort, spanOf, t12, toMin };
4
+ export declare function rangeText(from: number, to: number): string;
5
+ export declare function roleTotalOf(period: DemandPeriod): number;
6
+ /** The unnamed part of a period's headcount. Derived so it cannot disagree with the total. */
7
+ export declare function anyLeftOf(period: DemandPeriod): number;
8
+ export interface ScheduleCoverageAxis {
9
+ from: number;
10
+ to: number;
11
+ }
12
+ /** Fills named position rows from the people on, as a maximum matching (Kuhn's augmenting
13
+ * paths) so a flexible person is moved off one row when another row has nobody else. Rows are
14
+ * tried in the order given (scarcest first); within a row, main-position holders are offered
15
+ * first, then secondary holders, then people with no positions. Returns heads filled per row
16
+ * (same order as `rows`) and the ids spent. */
17
+ export declare function matchSlots(rows: Array<{
18
+ position: string;
19
+ required: number;
20
+ }>, on: Employee[], qualified: (e: Employee, position: string) => boolean): {
21
+ got: number[];
22
+ spent: Set<number>;
23
+ };
@@ -0,0 +1,7 @@
1
+ import type { Employee } from '../types';
2
+ /** Adds `positionName` to the employee's own profile — the backend write path a real
3
+ * "existing employee" record has (see `useScheduleAddEmployee.ts`'s `toEmployeeProfileFields`
4
+ * for the same shape, built from the add-employee form instead of a live `Employee`).
5
+ * Fire-and-forget: the local roster already shows the grant, and a failed profile write isn't
6
+ * worth a second error dialog on top of whatever caller-side save this followed. */
7
+ export declare function grantSkillToEmployee(emp: Employee, positionName: string): void;
@@ -0,0 +1 @@
1
+ export declare function errorMessage(error: unknown, fallback: string): string;
@@ -0,0 +1,14 @@
1
+ export interface ExportShiftCell {
2
+ note: string;
3
+ shifts: {
4
+ when: string;
5
+ pos: string;
6
+ }[];
7
+ }
8
+ export declare function esc(value: string | number): string;
9
+ export declare function cellText(value: string | ExportShiftCell): string;
10
+ export declare function dayCellLines(value: ExportShiftCell): {
11
+ text: string;
12
+ kind: 'note' | 'when' | 'pos';
13
+ }[];
14
+ export declare function dayHeaderLabel(date: Date, locale?: string): string;
@@ -0,0 +1,9 @@
1
+ import type { FdtoScheduleCreateTimeOffReq, FdtoScheduleTimeOff } from '@/types/schedule';
2
+ import type { LeaveSlot } from '../types';
3
+ /** The i18n key naming a leave slot's type, for display — `LeaveSlot.reason` stays English
4
+ * (other code matches on it). */
5
+ export declare function timeOffLabelKey(slot: Pick<LeaveSlot, 'type' | 'leaveType'>): string;
6
+ /** The create requests that keep the rest of a multi-day record alive once `date` is carved out
7
+ * of it. Single-day records leave nothing behind. The contract requires a same-day request to
8
+ * have matching parts, so a one-day remainder takes the part from its outer edge. */
9
+ export declare function remainderRequests(record: FdtoScheduleTimeOff, date: string): FdtoScheduleCreateTimeOffReq[];
@@ -0,0 +1,16 @@
1
+ export interface ScheduleAnchorRect {
2
+ left: number;
3
+ right: number;
4
+ top: number;
5
+ bottom: number;
6
+ }
7
+ /** Measures the element a popover was opened from. Takes the rect while the anchor is still on
8
+ * screen; a hidden or detached element measures 0×0 and counts as "no anchor". */
9
+ export declare function anchorRectOf(el: Element | null | undefined): ScheduleAnchorRect | null;
10
+ /** Port of HRM V6.2 placePopover(): below the anchor by preference (6px gap), flipped above when
11
+ * there is no room, clamped to the viewport on both edges. Uses the popover's rendered size, so
12
+ * call it once the element is in the DOM. */
13
+ export declare function placePopover(el: HTMLElement, anchor: ScheduleAnchorRect | null): {
14
+ left: number;
15
+ top: number;
16
+ };
@@ -0,0 +1,23 @@
1
+ import type { CoverageSegment, Employee } from '../types';
2
+ import type { ScheduleCoverageAxis } from './schedule-demand-domain';
3
+ export interface QuickPickRules {
4
+ minHoursPerDay: number | null;
5
+ maxHoursPerDay: number | null;
6
+ }
7
+ export interface QuickPickCandidate {
8
+ start: string;
9
+ end: string;
10
+ /** Position name, or '' for any position. */
11
+ role: string;
12
+ /** Max short among the runs this shift covers. */
13
+ short: number;
14
+ label: string;
15
+ covers: string;
16
+ title: string;
17
+ }
18
+ export type QuickPickTranslate = (key: string, named?: Record<string, unknown>) => string;
19
+ /** Up to 3 shifts for one employee on one day, built the way the auto-schedule planner builds
20
+ * them: one per (short run, position the person can fill), padded to their daily minimum,
21
+ * capped at their maximum, kept inside their availability window and clear of their existing
22
+ * shifts. Rest-gap and weekly-cap checks are left to the shift editor's own warnings. */
23
+ export declare function buildQuickPicks(emp: Employee, dayIdx: number, segments: CoverageSegment[], axis: ScheduleCoverageAxis, rules: QuickPickRules, qualifiedFor: (emp: Employee, position: string) => boolean, t?: QuickPickTranslate): QuickPickCandidate[];
@@ -0,0 +1,29 @@
1
+ import type { WorkSlot } from '../types';
2
+ export type ScheduleBreakChoice = 0 | 30 | 60 | 90 | 120 | 'custom';
3
+ export interface ScheduleShiftSegment {
4
+ start: string;
5
+ end: string;
6
+ }
7
+ /** The one break shape that names a clock window rather than just a duration — when present,
8
+ * the card reads as two periods around it, each on its own line, instead of one span that
9
+ * quietly got shorter. Shared by the employee view's own card and the area view's position-row
10
+ * card, so a TIME_RANGE break draws the same split face wherever a shift is shown. */
11
+ export declare function timeRangeBreakOf(sl: WorkSlot): {
12
+ startTime: string;
13
+ endTime: string;
14
+ } | null;
15
+ /** The two visible paid periods around a custom clock-window break. Shared by Weekly cards and
16
+ * Daily timeline bars so the split wording cannot drift between views. */
17
+ export declare function splitTimeLabels(sl: WorkSlot): [string, string] | null;
18
+ /** Same face as `t12`, but never drops the minutes — two ranges stacked on a split card need
19
+ * to line up at a glance, and "10am" next to "10:30am" reads as two different units. */
20
+ export declare function t12Full(hhmm: string): string;
21
+ /** A break length that doesn't match one of the presets becomes 'custom', carrying its own
22
+ * minutes/unit back out for the caller to seed its custom-break fields from. */
23
+ export declare function normalizeBreak(mins: number | undefined): {
24
+ choice: ScheduleBreakChoice;
25
+ customMins?: number;
26
+ customUnit?: 'mins' | 'hrs';
27
+ };
28
+ export declare function resolvedBreakMins(choice: ScheduleBreakChoice, customMins: number, customUnit: 'mins' | 'hrs'): number | undefined;
29
+ export declare function segmentHours(seg: ScheduleShiftSegment, breakMins: number): number;
@@ -0,0 +1,8 @@
1
+ /** Shared clock arithmetic for the scheduling board. All spans are minutes from midnight;
2
+ * an end at or before the start is treated as an overnight end on the following day. */
3
+ export declare function toMinutes(value: string): number;
4
+ export declare function fromMinutes(value: number): string;
5
+ export declare function spanMinutes(start: string, end: string): [number, number];
6
+ export declare function durationMinutes(start: string, end: string): number;
7
+ export declare function format12h(value: string): string;
8
+ export declare function formatShortMinutes(value: number): string;
@@ -0,0 +1,9 @@
1
+ import type { Employee, OpenShift } from '../types';
2
+ export { RANGE_LEN, mostRecentMonday, weekDates, weeksBetween } from './schedule-calendar';
3
+ export interface WeekBucket {
4
+ employees: Employee[];
5
+ openShifts: OpenShift[];
6
+ }
7
+ /** `from` is the date the offset is relative to (the board passes the Monday it anchored on, so a
8
+ * tab left open past midnight keeps building the week it is showing). */
9
+ export declare function weekData(offset: number, from?: Date): WeekBucket;
@@ -0,0 +1,9 @@
1
+ /** A long list shown as its first few entries plus "+N more", expandable in place. For chip rows
2
+ * that can run to a hundred items (a person rostered at every outlet), which would otherwise
3
+ * push the rest of the form off screen. */
4
+ export declare function useCollapsedList<T>(items: () => T[], limit?: number): {
5
+ expanded: import("vue").Ref<boolean, boolean>;
6
+ shown: import("vue").ComputedRef<T[]>;
7
+ hiddenCount: import("vue").ComputedRef<number>;
8
+ toggle: () => void;
9
+ };
@@ -0,0 +1,16 @@
1
+ import { useAppStore } from '@feedmepos/mf-remy-panel';
2
+ export interface RemyActivateOptions {
3
+ prompt?: string;
4
+ forceNewConversation?: boolean;
5
+ fullscreen?: boolean;
6
+ }
7
+ /** HRM never bundles or mounts a Remy panel of its own — `@feedmepos/mf-remy-panel` is externalised
8
+ * by the shared vite preset, so inside the host portal this import resolves to the ONE panel
9
+ * instance the host already created. The host portal owns initialisation (with env-specific
10
+ * backend/license URLs) before any HRM view mounts. HRM must never call `initializeRemyChat`:
11
+ * it re-initialises the shared panel instance and, without arguments, points it at production. */
12
+ export interface RemyAppStoreApi {
13
+ store: ReturnType<typeof useAppStore>;
14
+ activate: (options: RemyActivateOptions) => Promise<void>;
15
+ }
16
+ export declare function useRemyAppStore(): RemyAppStoreApi;
@@ -0,0 +1,137 @@
1
+ import type { Employee } from '../types';
2
+ import type { ScheduleBoardApi } from './useScheduleBoard';
3
+ import { type ScheduleAddEmployeeMode, type ScheduleAddEmployeeStep } from './schedule-add-employee-form';
4
+ export type { ScheduleAddEmployeeForm, ScheduleAddEmployeeMode, ScheduleAddEmployeeStep, } from './schedule-add-employee-form';
5
+ /** Add-employee wizard: a "how do you want to add them" step, then one detail form covering
6
+ * identity, locations, pay, scheduling caps, availability, positions and POS access — plus
7
+ * the "select existing POS staff" side dialog the first step can hand off to. */
8
+ export declare function useScheduleAddEmployee(board: ScheduleBoardApi, options?: {
9
+ notify?: (message: string, type?: 'success' | 'error' | 'info') => void;
10
+ }): {
11
+ open: import("vue").Ref<boolean, boolean>;
12
+ selectExistingOpen: import("vue").Ref<boolean, boolean>;
13
+ step: import("vue").Ref<ScheduleAddEmployeeStep, ScheduleAddEmployeeStep>;
14
+ mode: import("vue").Ref<ScheduleAddEmployeeMode, ScheduleAddEmployeeMode>;
15
+ form: {
16
+ name: string;
17
+ mobile: string;
18
+ dial: string;
19
+ employment: "full" | "part";
20
+ locations: string[];
21
+ payBasis: "hourly" | "monthly";
22
+ payAmount: string;
23
+ maxHours: string;
24
+ maxHoursPerDay: string;
25
+ minHours: string;
26
+ workingHoursEnabled: boolean;
27
+ overtimeEnabled: boolean;
28
+ maxHoursPerMonth: string;
29
+ availDays: boolean[];
30
+ availHours: {
31
+ from: string;
32
+ to: string;
33
+ }[];
34
+ preferences: string;
35
+ primaryPosition: string;
36
+ secondaryPositions: string[];
37
+ seniority: "" | "senior" | "junior";
38
+ passcode: string[];
39
+ masterUser: boolean;
40
+ masterCode: string;
41
+ posAccessEnabled: boolean;
42
+ posRoles: {
43
+ outlet: string;
44
+ roleId: string;
45
+ }[];
46
+ };
47
+ sectionId: import("vue").Ref<string, string>;
48
+ isEditing: import("vue").ComputedRef<boolean>;
49
+ editingEmployeeId: import("vue").Ref<number | null, number | null>;
50
+ locOpen: import("vue").Ref<boolean, boolean>;
51
+ secOpen: import("vue").Ref<boolean, boolean>;
52
+ secondaryOptions: import("vue").ComputedRef<string[]>;
53
+ isPart: import("vue").ComputedRef<boolean>;
54
+ dayLit: (index: number) => boolean;
55
+ avLabel: import("vue").ComputedRef<string>;
56
+ avAllLabel: import("vue").ComputedRef<string>;
57
+ maxHoursPlaceholder: import("vue").ComputedRef<string>;
58
+ minHoursPlaceholder: import("vue").ComputedRef<string>;
59
+ maxHoursPerDayPlaceholder: import("vue").ComputedRef<string>;
60
+ maxHoursPerMonthPlaceholder: import("vue").ComputedRef<string>;
61
+ toggleOvertime: () => void;
62
+ payUnit: import("vue").ComputedRef<string>;
63
+ effectiveRate: import("vue").ComputedRef<number>;
64
+ passcodeValue: import("vue").ComputedRef<string>;
65
+ passcodeOk: import("vue").ComputedRef<boolean>;
66
+ currentLocationLabel: import("vue").ComputedRef<string>;
67
+ locationOptions: import("vue").Reactive<string[]>;
68
+ isNewUser: import("vue").ComputedRef<boolean>;
69
+ footerHint: import("vue").ComputedRef<string>;
70
+ primaryRoleLabel: import("vue").ComputedRef<string>;
71
+ locationsSummary: import("vue").ComputedRef<string>;
72
+ payLine: import("vue").ComputedRef<string>;
73
+ nameError: import("vue").ComputedRef<boolean>;
74
+ passError: import("vue").ComputedRef<boolean>;
75
+ posRolesError: import("vue").ComputedRef<boolean>;
76
+ availabilityError: import("vue").ComputedRef<boolean>;
77
+ saving: import("vue").Ref<boolean, boolean>;
78
+ saveError: import("vue").Ref<string | null, string | null>;
79
+ deferScheduleWrites: import("vue").Ref<boolean, boolean>;
80
+ candidatesLoading: import("vue").Ref<boolean, boolean>;
81
+ candidatesError: import("vue").Ref<string | null, string | null>;
82
+ selectingExisting: import("vue").Ref<boolean, boolean>;
83
+ candidates: import("vue").Ref<{
84
+ employeeId: string;
85
+ name: string;
86
+ otherOutlets: string[];
87
+ locations: string[];
88
+ }[], import("../types").ExistingStaffCandidate[] | {
89
+ employeeId: string;
90
+ name: string;
91
+ otherOutlets: string[];
92
+ locations: string[];
93
+ }[]>;
94
+ candidatesTotal: import("vue").Ref<number, number>;
95
+ candidatesPage: import("vue").Ref<number, number>;
96
+ candidatesPageItemCount: import("vue").Ref<number, number>;
97
+ candidatesPageSize: number;
98
+ searchExisting: (search: string) => void;
99
+ goToExistingPage: (page: number, search: string) => void;
100
+ openWizard: (section: string) => void;
101
+ openEditFor: (emp: Employee) => void;
102
+ confirmClose: () => void;
103
+ close: () => void;
104
+ setMode: (m: ScheduleAddEmployeeMode) => void;
105
+ openSelectExisting: () => void;
106
+ closeSelectExisting: () => void;
107
+ pickExisting: (employeeId: string) => Promise<void>;
108
+ next: () => void;
109
+ back: () => void;
110
+ toggleMulti: (which: "loc" | "sec") => void;
111
+ toggleLocation: (location: string) => void;
112
+ removeLocation: (location: string) => void;
113
+ toggleSecondary: (position: string) => void;
114
+ removeSecondary: (position: string) => void;
115
+ setPrimaryPosition: (position: string) => void;
116
+ setPayBasis: (basis: "hourly" | "monthly") => void;
117
+ toggleAvailDay: (index: number) => void;
118
+ availAll: () => void;
119
+ setAvailHour: (index: number, field: "from" | "to", value: string) => void;
120
+ copyAvailHourDown: (index: number) => void;
121
+ setPasscodeDigit: (index: number, value: string) => void;
122
+ generatePasscode: () => Promise<void>;
123
+ isGeneratingPasscode: import("vue").Ref<boolean, boolean>;
124
+ togglePosAccess: () => void;
125
+ addPosRoleRow: () => void;
126
+ removePosRoleRow: (index: number) => void;
127
+ isCurrentOutletRow: (index: number) => boolean;
128
+ setPosRoleOutlet: (index: number, outlet: string) => void;
129
+ setPosRoleId: (index: number, roleId: string) => void;
130
+ posRoleOptionsFor: (outlet: string) => import("../../../types/role").Role[];
131
+ isPosRoleUsable: (role: import("../../../types/role").Role) => boolean;
132
+ setMasterUserRoleAccess: (roleIds: string[] | null | undefined) => void;
133
+ isPosOutletUsable: (outlet: string) => boolean;
134
+ posRolesHint: import("vue").ComputedRef<string>;
135
+ create: () => Promise<boolean>;
136
+ };
137
+ export type ScheduleAddEmployeeApi = ReturnType<typeof useScheduleAddEmployee>;
@@ -0,0 +1,75 @@
1
+ import type { ScheduleBoardApi } from './useScheduleBoard';
2
+ import type { ScheduleDemandApi } from './useScheduleDemand';
3
+ import { type QuickPickCandidate } from './schedule-quick-pick';
4
+ import { type ScheduleAnchorRect } from './schedule-popover-position';
5
+ export interface ScheduleAddPickState {
6
+ open: boolean;
7
+ empId: number | null;
8
+ dayIdx: number | null;
9
+ /** Measured rect of the cell the popup opened from; the popup component places itself from it
10
+ * once rendered (V6.2 placePopover), writing the result to `left`/`top`. */
11
+ anchor: ScheduleAnchorRect | null;
12
+ left: number;
13
+ top: number;
14
+ }
15
+ export interface ScheduleAddPickLeaveOption {
16
+ reason: string;
17
+ /** i18n key for the row's label — `reason` itself is an id and stays English. */
18
+ labelKey: string;
19
+ swatch: string;
20
+ }
21
+ /** The "+ Add" quick-pick popover on an employee's empty cell — ported from the mockup's
22
+ * openAddShiftPicker()/renderAddPickList(), scoped to what this board actually has: our one
23
+ * active shift pattern, a fixed leave-reason list, and a demand-gap suggestion, all committed
24
+ * directly (no clash confirmation dialogs — this board has no such infrastructure yet, and none
25
+ * of its existing write paths gate on one either). Leave picks write a full-day approved leave
26
+ * immediately rather than opening a creation form — there's no "book a leave" authoring flow
27
+ * anywhere in this port yet, only the existing pending-request review modal, which assumes the
28
+ * leave already exists. The mockup's "On this day" (join an existing open-shift group) section is
29
+ * left out — it needs split-shift/group-joining machinery this board doesn't model. */
30
+ export declare function useScheduleAddPick(board: ScheduleBoardApi, demand: ScheduleDemandApi, handlers: {
31
+ onCommitted: (message: string) => void;
32
+ onOpenFullEditor: (empId: number, dayIdx: number, slotIndex: number) => void;
33
+ /** The leave editor, on this cell. `reason` is the row's own type, or null for the plain "Leave" row. */
34
+ onOpenLeave: (empId: number, dayIdx: number, reason: string | null) => void;
35
+ }): {
36
+ state: {
37
+ open: boolean;
38
+ empId: number | null;
39
+ dayIdx: number | null;
40
+ anchor: {
41
+ left: number;
42
+ right: number;
43
+ top: number;
44
+ bottom: number;
45
+ } | null;
46
+ left: number;
47
+ top: number;
48
+ };
49
+ query: import("vue").Ref<string, string>;
50
+ parsedRange: import("vue").ComputedRef<{
51
+ start: string;
52
+ end: string;
53
+ } | null>;
54
+ suggestions: import("vue").ComputedRef<QuickPickCandidate[]>;
55
+ filteredPatterns: import("vue").ComputedRef<{
56
+ key: string;
57
+ label: string;
58
+ start: string;
59
+ end: string;
60
+ color: string;
61
+ active: boolean;
62
+ breakMins: number;
63
+ }[]>;
64
+ filteredLeaves: import("vue").ComputedRef<ScheduleAddPickLeaveOption[]>;
65
+ hasResults: import("vue").ComputedRef<boolean>;
66
+ openFor: (empId: number, dayIdx: number, anchor: HTMLElement) => void;
67
+ close: () => void;
68
+ pickSuggested: (index: number) => void;
69
+ pickPattern: (key: string) => void;
70
+ pickTypedRange: (start: string, end: string) => void;
71
+ pickLeave: (reason: string) => void;
72
+ submitQuery: () => void;
73
+ openBlank: () => void;
74
+ };
75
+ export type ScheduleAddPickApi = ReturnType<typeof useScheduleAddPick>;
@@ -0,0 +1,50 @@
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
+ poolFor: (position: string) => Employee[];
41
+ cellMeta: (dayIdx: number, position: string) => SchedulePositionCellMeta;
42
+ positionWeekMeta: (position: string) => {
43
+ required: number;
44
+ filled: number;
45
+ open: number;
46
+ short: number;
47
+ pool: number;
48
+ };
49
+ };
50
+ export type ScheduleAreaBoardApi = ReturnType<typeof useScheduleAreaBoard>;
@@ -0,0 +1,11 @@
1
+ import type { ScheduleBoardApi } from './useScheduleBoard';
2
+ /** Dragging a person from the staff rail onto a position/day cell opens a normal assigned shift. */
3
+ export declare function useScheduleAreaDragDrop(board: ScheduleBoardApi, handlers: {
4
+ onCreateShift: (empId: number, dayIdx: number, position: string) => void;
5
+ }): {
6
+ draggingEmpId: import("vue").Ref<number | null, number | null>;
7
+ startRailDrag: (empId: number) => void;
8
+ endRailDrag: () => void;
9
+ dropOnCell: (dayIdx: number, position: string) => void;
10
+ };
11
+ export type ScheduleAreaDragDropApi = ReturnType<typeof useScheduleAreaDragDrop>;
@@ -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
+ };