@feedmepos/mf-hrm-portal 2.3.0-dev.9 → 2.3.0

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 (115) hide show
  1. package/dist/{ApprovalCodeList-BDpxEJpC.js → ApprovalCodeList-DwubNElp.js} +7 -7
  2. package/dist/{AuditLogList-Dgwj1gz8.js → AuditLogList-CTeMbyHL.js} +18 -19
  3. package/dist/{ConditionBuilderForm.vue_vue_type_script_setup_true_lang-BBK2gl7r.js → ConditionBuilderForm.vue_vue_type_script_setup_true_lang-CmLLNcB4.js} +2 -2
  4. package/dist/{EmployeeList-C8cbVcmY.js → EmployeeList-DEAJPx9F.js} +255 -266
  5. package/dist/{FormItem.vue_vue_type_script_setup_true_lang-CUnlKsxk.js → FormItem.vue_vue_type_script_setup_true_lang-OAvd6eHM.js} +6 -6
  6. package/dist/{GrantUserList-zul0_Dlm.js → GrantUserList-Dx4jF2qJ.js} +8 -8
  7. package/dist/{Main-Cjo4FMZZ.js → Main-BirWXk7o.js} +5 -5
  8. package/dist/{Main-DSr9KbjT.js → Main-C2PBSCte.js} +11 -11
  9. package/dist/{Main-5TsFTFpc.js → Main-CL5JYCPg.js} +8 -8
  10. package/dist/{PermissionSetList-CDhiiu37.js → PermissionSetList-BtYcqPiO.js} +19 -18
  11. package/dist/{PortalPermissionEditor.vue_vue_type_script_setup_true_lang-DoK944l0.js → PortalPermissionEditor.vue_vue_type_script_setup_true_lang-BXw4aX39.js} +1127 -1127
  12. package/dist/{PortalUserSearcher.vue_vue_type_style_index_0_scoped_827dfd60_lang-BVz6q3HE.js → PortalUserSearcher.vue_vue_type_style_index_0_scoped_827dfd60_lang-DaAx79pC.js} +1 -1
  13. package/dist/ResponsiveContextMenu.vue_vue_type_script_setup_true_lang-mSJFKo7r.js +132 -0
  14. package/dist/{RoleList-DEbOPQD_.js → RoleList-YS_LBfoJ.js} +21 -20
  15. package/dist/ScheduleAddPositionModal.vue_vue_type_script_setup_true_lang-BorKuXxL.js +530 -0
  16. package/dist/{ScheduleGeneralPage-B8PWNsc2.js → ScheduleGeneralPage-C1p2mivt.js} +252 -248
  17. package/dist/ScheduleModal.vue_vue_type_script_setup_true_lang-CnKzVz3I.js +2457 -0
  18. package/dist/SchedulePage-BP7x7JAl.js +19485 -0
  19. package/dist/{SchedulePositionPage-Cuv4ydOK.js → SchedulePositionPage-BogOQZVW.js} +78 -80
  20. package/dist/{SelectFilter-CG13h83-.js → SelectFilter-Dh3eY1hV.js} +1 -1
  21. package/dist/{TeamMemberList-DpCGqHCk.js → TeamMemberList-Bv6_2bzs.js} +27 -27
  22. package/dist/{TimesheetList-B7HAC5zS.js → TimesheetList-B3BmpH0I.js} +52 -53
  23. package/dist/{TimesheetList.vue_vue_type_style_index_0_scoped_63294af2_lang-BGD6m5M-.js → TimesheetList.vue_vue_type_style_index_0_scoped_63294af2_lang-C4rbnZh1.js} +3 -3
  24. package/dist/{app-Lh0cqgHy.js → app-CyS8c8dx.js} +2879 -2462
  25. package/dist/app.js +1 -1
  26. package/dist/{approval-code-DHsUgc4K.js → approval-code-BIpLingm.js} +1 -1
  27. package/dist/{dayjs.min-joq4stsa.js → dayjs.min-BRlEc3-d.js} +1 -1
  28. package/dist/{employee-BPmp9c6i.js → employee-CcdjLOLQ.js} +51 -47
  29. package/dist/{grant-user-qzKHFTro.js → grant-user-uZmvD_bw.js} +1 -1
  30. package/dist/{iteration-jvdTHQUx.js → iteration-CL1RDmws.js} +1 -1
  31. package/dist/{lodash-CIAEpr9s.js → lodash-C00ieagp.js} +1 -1
  32. package/dist/object-Dwyg2LgX.js +16 -0
  33. package/dist/{restaurant-BbYRA_IT.js → restaurant-CHpkjUPy.js} +46 -47
  34. package/dist/{role-Dd1TUMhn.js → role-DtatkKp9.js} +2 -2
  35. package/dist/{rule-DmxI7qEY.js → rule-DJJMpkoG.js} +3 -3
  36. package/dist/src/api/employee/index.d.ts +2 -2
  37. package/dist/src/api/schedule/index.d.ts +11 -1
  38. package/dist/src/components/layout/SchedulePromoBanner.vue.d.ts +2 -0
  39. package/dist/src/composables/useDiscardConfirm.d.ts +3 -1
  40. package/dist/src/stores/employee.d.ts +12 -12
  41. package/dist/src/types/schedule.d.ts +1 -1
  42. package/dist/src/views/audit-log/locales/index.d.ts +252 -0
  43. package/dist/src/views/scheduling/components/ScheduleAreaRows.vue.d.ts +6 -2
  44. package/dist/src/views/scheduling/components/ScheduleAutoScheduleDoneArt.vue.d.ts +2 -0
  45. package/dist/src/views/scheduling/components/ScheduleBoardAreaRows.vue.d.ts +2 -0
  46. package/dist/src/views/scheduling/components/ScheduleBoardGridHeader.vue.d.ts +5 -0
  47. package/dist/src/views/scheduling/components/ScheduleBoardInteractionOverlays.vue.d.ts +2 -0
  48. package/dist/src/views/scheduling/components/ScheduleBoardOnboardingOverlays.vue.d.ts +1 -0
  49. package/dist/src/views/scheduling/components/ScheduleBoardToolbar.vue.d.ts +0 -1
  50. package/dist/src/views/scheduling/components/ScheduleCompletionDialog.vue.d.ts +1 -1
  51. package/dist/src/views/scheduling/components/ScheduleConfirmModal.vue.d.ts +4 -1
  52. package/dist/src/views/scheduling/components/ScheduleDayTimeline.vue.d.ts +5 -0
  53. package/dist/src/views/scheduling/components/ScheduleLoadState.vue.d.ts +0 -1
  54. package/dist/src/views/scheduling/components/ScheduleOnboardingSettings.vue.d.ts +6 -0
  55. package/dist/src/views/scheduling/components/ScheduleShiftPopover.vue.d.ts +1 -1
  56. package/dist/src/views/scheduling/composables/auto-schedule-mapping.d.ts +3 -3
  57. package/dist/src/views/scheduling/composables/onboarding-types.d.ts +2 -1
  58. package/dist/src/views/scheduling/composables/remyPrompt.d.ts +4 -2
  59. package/dist/src/views/scheduling/composables/schedule-board-helpers.d.ts +4 -0
  60. package/dist/src/views/scheduling/composables/schedule-day-meta.d.ts +1 -3
  61. package/dist/src/views/scheduling/composables/schedule-demand-domain.d.ts +13 -1
  62. package/dist/src/views/scheduling/composables/schedule-error.d.ts +1 -0
  63. package/dist/src/views/scheduling/composables/schedule-leave-split.d.ts +5 -0
  64. package/dist/src/views/scheduling/composables/schedule-quick-pick.d.ts +22 -0
  65. package/dist/src/views/scheduling/composables/schedule-shift-time.d.ts +3 -0
  66. package/dist/src/views/scheduling/composables/schedule-week-cache.d.ts +3 -1
  67. package/dist/src/views/scheduling/composables/useRemyAppStore.d.ts +1 -0
  68. package/dist/src/views/scheduling/composables/useScheduleAddEmployee.d.ts +25 -2
  69. package/dist/src/views/scheduling/composables/useScheduleAddPick.d.ts +3 -11
  70. package/dist/src/views/scheduling/composables/useScheduleAreaDragDrop.d.ts +0 -1
  71. package/dist/src/views/scheduling/composables/useScheduleAutoSchedule.d.ts +22 -13
  72. package/dist/src/views/scheduling/composables/useScheduleBoard.d.ts +58 -7
  73. package/dist/src/views/scheduling/composables/useScheduleCopyWeek.d.ts +3 -10
  74. package/dist/src/views/scheduling/composables/useScheduleCostRail.d.ts +13 -1
  75. package/dist/src/views/scheduling/composables/useScheduleDayNote.d.ts +0 -1
  76. package/dist/src/views/scheduling/composables/useScheduleDayTimeline.d.ts +16 -2
  77. package/dist/src/views/scheduling/composables/useScheduleDemandSheet.d.ts +7 -0
  78. package/dist/src/views/scheduling/composables/useScheduleDragDrop.d.ts +1 -0
  79. package/dist/src/views/scheduling/composables/useScheduleEmployeeAccess.d.ts +14 -6
  80. package/dist/src/views/scheduling/composables/useScheduleEmployeeCandidates.d.ts +26 -4
  81. package/dist/src/views/scheduling/composables/useScheduleEmployeePersistence.d.ts +3 -0
  82. package/dist/src/views/scheduling/composables/useScheduleEmployeeValidation.d.ts +0 -2
  83. package/dist/src/views/scheduling/composables/useScheduleExport.d.ts +1 -0
  84. package/dist/src/views/scheduling/composables/useScheduleLeave.d.ts +5 -1
  85. package/dist/src/views/scheduling/composables/useScheduleOnboardingDemand.d.ts +1 -1
  86. package/dist/src/views/scheduling/composables/useScheduleOnboardingEmployees.d.ts +28 -2
  87. package/dist/src/views/scheduling/composables/useScheduleOnboardingWizard.d.ts +203 -8
  88. package/dist/src/views/scheduling/composables/useScheduleOutlet.d.ts +11 -8
  89. package/dist/src/views/scheduling/composables/useSchedulePageActions.d.ts +1 -1
  90. package/dist/src/views/scheduling/composables/useSchedulePageCellDrop.d.ts +3 -1
  91. package/dist/src/views/scheduling/composables/useSchedulePageClearActions.d.ts +1 -0
  92. package/dist/src/views/scheduling/composables/useSchedulePositions.d.ts +6 -0
  93. package/dist/src/views/scheduling/composables/useSchedulePublish.d.ts +2 -1
  94. package/dist/src/views/scheduling/composables/useScheduleRoster.d.ts +46 -0
  95. package/dist/src/views/scheduling/composables/useScheduleSetupBanner.d.ts +2 -2
  96. package/dist/src/views/scheduling/composables/useScheduleShiftActions.d.ts +29 -1
  97. package/dist/src/views/scheduling/composables/useScheduleShiftPopover.d.ts +32 -3
  98. package/dist/src/views/scheduling/country-rules/index.d.ts +8 -3
  99. package/dist/src/views/scheduling/data.d.ts +17 -0
  100. package/dist/src/views/scheduling/locales/index.d.ts +28 -0
  101. package/dist/src/views/scheduling/schedule-state.d.ts +236 -236
  102. package/dist/src/views/scheduling/schedule-store.d.ts +26 -7
  103. package/dist/src/views/scheduling/types.d.ts +8 -0
  104. package/dist/style.css +1 -1
  105. package/dist/tsconfig.app.tsbuildinfo +1 -1
  106. package/dist/{useAppStore-BoLkvkE2.js → useAppStore-Bp0PwbAN.js} +1 -1
  107. package/dist/useDiscardConfirm-CzZSPyvh.js +28 -0
  108. package/dist/{useLoading-Ch1AUYT1.js → useLoading-sgL8DRUz.js} +1 -1
  109. package/dist/{useReportPermissions-DM3GOFCC.js → useReportPermissions-DI-xg3OX.js} +3 -3
  110. package/package.json +2 -2
  111. package/dist/ScheduleAddPositionModal.vue_vue_type_script_setup_true_lang-Cx9jFgBS.js +0 -492
  112. package/dist/ScheduleModal.vue_vue_type_script_setup_true_lang-V1sZ_xhO.js +0 -2253
  113. package/dist/SchedulePage-ndLByVBl.js +0 -17785
  114. package/dist/_plugin-vue_export-helper-CHgC5LLL.js +0 -9
  115. package/dist/useDiscardConfirm-DPhEV6v0.js +0 -157
@@ -377,10 +377,10 @@ export declare const useEmployeeStore: () => {
377
377
  readEmployees: () => Promise<void>;
378
378
  readEmployeesPage: (query: IReadEmployeesPageReq) => Promise<void>;
379
379
  readAllEmployeesPage: (query: Omit<IReadEmployeesPageReq, "limit" | "offset">, knownTotal?: number) => Promise<Employee[]>;
380
- createEmployee: (dto: FdtoUpdatePosUserReq) => Promise<void>;
380
+ createEmployee: (dto: FdtoUpdatePosUserReq) => Promise<string>;
381
381
  updateEmployee: (userId: string, dto: FdtoUpdatePosUserReq) => Promise<void>;
382
382
  deleteEmployee: (employee: Employee) => Promise<void>;
383
- createMasterEmployee: (dto: FdtoUpdatePosMasterUserReq) => Promise<void>;
383
+ createMasterEmployee: (dto: FdtoUpdatePosMasterUserReq) => Promise<string>;
384
384
  updateMasterEmployee: (userId: string, dto: FdtoUpdatePosMasterUserReq) => Promise<void>;
385
385
  deleteMasterEmployee: (employee: Employee) => Promise<void>;
386
386
  migrateToMasterUser: (userId: string, dto: FdtoUpdatePosMasterUserReq) => Promise<void>;
@@ -695,10 +695,10 @@ export declare const useEmployeeStore: () => {
695
695
  readEmployees: () => Promise<void>;
696
696
  readEmployeesPage: (query: IReadEmployeesPageReq) => Promise<void>;
697
697
  readAllEmployeesPage: (query: Omit<IReadEmployeesPageReq, "limit" | "offset">, knownTotal?: number) => Promise<Employee[]>;
698
- createEmployee: (dto: FdtoUpdatePosUserReq) => Promise<void>;
698
+ createEmployee: (dto: FdtoUpdatePosUserReq) => Promise<string>;
699
699
  updateEmployee: (userId: string, dto: FdtoUpdatePosUserReq) => Promise<void>;
700
700
  deleteEmployee: (employee: Employee) => Promise<void>;
701
- createMasterEmployee: (dto: FdtoUpdatePosMasterUserReq) => Promise<void>;
701
+ createMasterEmployee: (dto: FdtoUpdatePosMasterUserReq) => Promise<string>;
702
702
  updateMasterEmployee: (userId: string, dto: FdtoUpdatePosMasterUserReq) => Promise<void>;
703
703
  deleteMasterEmployee: (employee: Employee) => Promise<void>;
704
704
  migrateToMasterUser: (userId: string, dto: FdtoUpdatePosMasterUserReq) => Promise<void>;
@@ -858,10 +858,10 @@ export declare const useEmployeeStore: () => {
858
858
  readEmployees: () => Promise<void>;
859
859
  readEmployeesPage: (query: IReadEmployeesPageReq) => Promise<void>;
860
860
  readAllEmployeesPage: (query: Omit<IReadEmployeesPageReq, "limit" | "offset">, knownTotal?: number) => Promise<Employee[]>;
861
- createEmployee: (dto: FdtoUpdatePosUserReq) => Promise<void>;
861
+ createEmployee: (dto: FdtoUpdatePosUserReq) => Promise<string>;
862
862
  updateEmployee: (userId: string, dto: FdtoUpdatePosUserReq) => Promise<void>;
863
863
  deleteEmployee: (employee: Employee) => Promise<void>;
864
- createMasterEmployee: (dto: FdtoUpdatePosMasterUserReq) => Promise<void>;
864
+ createMasterEmployee: (dto: FdtoUpdatePosMasterUserReq) => Promise<string>;
865
865
  updateMasterEmployee: (userId: string, dto: FdtoUpdatePosMasterUserReq) => Promise<void>;
866
866
  deleteMasterEmployee: (employee: Employee) => Promise<void>;
867
867
  migrateToMasterUser: (userId: string, dto: FdtoUpdatePosMasterUserReq) => Promise<void>;
@@ -1018,10 +1018,10 @@ export declare const useEmployeeStore: () => {
1018
1018
  readEmployees: () => Promise<void>;
1019
1019
  readEmployeesPage: (query: IReadEmployeesPageReq) => Promise<void>;
1020
1020
  readAllEmployeesPage: (query: Omit<IReadEmployeesPageReq, "limit" | "offset">, knownTotal?: number) => Promise<Employee[]>;
1021
- createEmployee: (dto: FdtoUpdatePosUserReq) => Promise<void>;
1021
+ createEmployee: (dto: FdtoUpdatePosUserReq) => Promise<string>;
1022
1022
  updateEmployee: (userId: string, dto: FdtoUpdatePosUserReq) => Promise<void>;
1023
1023
  deleteEmployee: (employee: Employee) => Promise<void>;
1024
- createMasterEmployee: (dto: FdtoUpdatePosMasterUserReq) => Promise<void>;
1024
+ createMasterEmployee: (dto: FdtoUpdatePosMasterUserReq) => Promise<string>;
1025
1025
  updateMasterEmployee: (userId: string, dto: FdtoUpdatePosMasterUserReq) => Promise<void>;
1026
1026
  deleteMasterEmployee: (employee: Employee) => Promise<void>;
1027
1027
  migrateToMasterUser: (userId: string, dto: FdtoUpdatePosMasterUserReq) => Promise<void>;
@@ -1178,10 +1178,10 @@ export declare const useEmployeeStore: () => {
1178
1178
  readEmployees: () => Promise<void>;
1179
1179
  readEmployeesPage: (query: IReadEmployeesPageReq) => Promise<void>;
1180
1180
  readAllEmployeesPage: (query: Omit<IReadEmployeesPageReq, "limit" | "offset">, knownTotal?: number) => Promise<Employee[]>;
1181
- createEmployee: (dto: FdtoUpdatePosUserReq) => Promise<void>;
1181
+ createEmployee: (dto: FdtoUpdatePosUserReq) => Promise<string>;
1182
1182
  updateEmployee: (userId: string, dto: FdtoUpdatePosUserReq) => Promise<void>;
1183
1183
  deleteEmployee: (employee: Employee) => Promise<void>;
1184
- createMasterEmployee: (dto: FdtoUpdatePosMasterUserReq) => Promise<void>;
1184
+ createMasterEmployee: (dto: FdtoUpdatePosMasterUserReq) => Promise<string>;
1185
1185
  updateMasterEmployee: (userId: string, dto: FdtoUpdatePosMasterUserReq) => Promise<void>;
1186
1186
  deleteMasterEmployee: (employee: Employee) => Promise<void>;
1187
1187
  migrateToMasterUser: (userId: string, dto: FdtoUpdatePosMasterUserReq) => Promise<void>;
@@ -1193,10 +1193,10 @@ export declare const useEmployeeStore: () => {
1193
1193
  readEmployees: () => Promise<void>;
1194
1194
  readEmployeesPage: (query: IReadEmployeesPageReq) => Promise<void>;
1195
1195
  readAllEmployeesPage: (query: Omit<IReadEmployeesPageReq, "limit" | "offset">, knownTotal?: number) => Promise<Employee[]>;
1196
- createEmployee: (dto: FdtoUpdatePosUserReq) => Promise<void>;
1196
+ createEmployee: (dto: FdtoUpdatePosUserReq) => Promise<string>;
1197
1197
  updateEmployee: (userId: string, dto: FdtoUpdatePosUserReq) => Promise<void>;
1198
1198
  deleteEmployee: (employee: Employee) => Promise<void>;
1199
- createMasterEmployee: (dto: FdtoUpdatePosMasterUserReq) => Promise<void>;
1199
+ createMasterEmployee: (dto: FdtoUpdatePosMasterUserReq) => Promise<string>;
1200
1200
  updateMasterEmployee: (userId: string, dto: FdtoUpdatePosMasterUserReq) => Promise<void>;
1201
1201
  deleteMasterEmployee: (employee: Employee) => Promise<void>;
1202
1202
  migrateToMasterUser: (userId: string, dto: FdtoUpdatePosMasterUserReq) => Promise<void>;
@@ -5,7 +5,7 @@
5
5
  * only view-model commands that intentionally do not cross HTTP (for example
6
6
  * replacing a period made up of several persisted demand rows).
7
7
  */
8
- export type { FdtoScheduleAssignment, FdtoScheduleAutoScheduleApplyReq, FdtoScheduleAutoScheduleApplyResult, FdtoScheduleAutoScheduleCapabilities, FdtoScheduleAutoScheduleGenerateReq, FdtoScheduleAutoScheduleObjective, FdtoScheduleAutoSchedulePlanner, FdtoScheduleAutoScheduleProposal, FdtoScheduleAutoScheduleRejection, FdtoScheduleAutoScheduleResult, FdtoScheduleAutoScheduleTiming, FdtoScheduleAutoScheduleUnfilledNeed, FdtoScheduleBoard, FdtoScheduleBulkUpdateAssignmentStatusReq, FdtoScheduleBulkSaveAssignmentsReq, FdtoScheduleBulkSaveAssignmentsResult, FdtoScheduleBulkReplaceDemandReq, FdtoScheduleBreak, FdtoScheduleCreateEmployeeProfileReq, FdtoScheduleEmployeeConfig, FdtoScheduleDayOperatingHours, FdtoScheduleDemand, FdtoScheduleEmployee, FdtoScheduleOptionalDateRange, FdtoSchedulePayRate, FdtoSchedulePosition, FdtoSchedulePositionRef, FdtoSchedulePositionSelectorReq, FdtoScheduleRestaurantProfile, FdtoScheduleSaveAssignmentReq, FdtoScheduleSaveDemandReq, FdtoScheduleReplaceDemandReq, FdtoScheduleSaveEmployeeConfigsReq, FdtoScheduleSavePositionReq, FdtoScheduleSaveScheduleDayReq, FdtoScheduleSaveSettingsReq, FdtoScheduleScheduleDay, FdtoScheduleSettings, FdtoScheduleUpdateEmployeeProfileReq, FdtoScheduleValidatePosAccessReq, FdtoScheduleCreateTimeOffReq, FdtoScheduleTimeOff, FdtoScheduleTimeOffDayPart, FdtoScheduleTimeOffQuery, FdtoScheduleTimeOffStatus, FdtoScheduleTimeOffType, FdtoScheduleUpdateTimeOffStatusReq, } from '@feedmepos/hrm-schedule-contract';
8
+ export type { FdtoScheduleAssignment, FdtoScheduleAutoScheduleApplyReq, FdtoScheduleAutoScheduleApplyResult, FdtoScheduleAutoScheduleCapabilities, FdtoScheduleAutoScheduleGenerateReq, FdtoScheduleAutoScheduleObjective, FdtoScheduleAutoSchedulePlanner, FdtoScheduleAutoScheduleProposal, FdtoScheduleAutoScheduleRejection, FdtoScheduleAutoScheduleResult, FdtoScheduleAutoScheduleTiming, FdtoScheduleAutoScheduleUnfilledNeed, FdtoScheduleBoard, FdtoScheduleBulkUpdateAssignmentStatusReq, FdtoScheduleBulkSaveAssignmentsReq, FdtoScheduleBulkSaveAssignmentsResult, FdtoScheduleBulkReplaceDemandReq, FdtoScheduleClearScheduleReq, FdtoScheduleCopyScheduleReq, FdtoScheduleCompleteOnboardingReq, FdtoScheduleBreak, FdtoScheduleCreateEmployeeProfileReq, FdtoScheduleEmployeeConfig, FdtoScheduleDayOperatingHours, FdtoScheduleDemand, FdtoScheduleEmployee, FdtoScheduleOptionalDateRange, FdtoSchedulePayRate, FdtoSchedulePosition, FdtoSchedulePositionRef, FdtoSchedulePositionSelectorReq, FdtoScheduleRestaurantProfile, FdtoScheduleSaveAssignmentReq, FdtoScheduleSaveDemandReq, FdtoScheduleReplaceDemandReq, FdtoScheduleSaveEmployeeConfigsReq, FdtoScheduleSavePositionReq, FdtoScheduleSaveScheduleDayReq, FdtoScheduleSaveSettingsReq, FdtoScheduleScheduleDay, FdtoScheduleSettings, FdtoScheduleUpdateEmployeeProfileReq, FdtoScheduleValidatePosAccessReq, FdtoScheduleCreateTimeOffReq, FdtoScheduleTimeOff, FdtoScheduleTimeOffDayPart, FdtoScheduleTimeOffQuery, FdtoScheduleTimeOffStatus, FdtoScheduleTimeOffType, FdtoScheduleUpdateTimeOffStatusReq, } from '@feedmepos/hrm-schedule-contract';
9
9
  /** UI-level date replacement command. The store expands these periods into flat
10
10
  * ShiftDemand rows before calling the shared HTTP contract. */
11
11
  export interface ScheduleReplaceDemandReq {
@@ -222,6 +222,69 @@ export declare const i18nMessages: {
222
222
  view: string;
223
223
  update: string;
224
224
  };
225
+ "schedule-shift": {
226
+ create: string;
227
+ update: string;
228
+ "bulk-save": string;
229
+ publish: string;
230
+ unpublish: string;
231
+ confirm: string;
232
+ delete: string;
233
+ "auto-apply": string;
234
+ };
235
+ "schedule-demand": {
236
+ create: string;
237
+ update: string;
238
+ replace: string;
239
+ delete: string;
240
+ };
241
+ "schedule-time-off": {
242
+ create: string;
243
+ "update-status": string;
244
+ delete: string;
245
+ };
246
+ "schedule-day": {
247
+ save: string;
248
+ delete: string;
249
+ };
250
+ "schedule-settings": {
251
+ update: string;
252
+ };
253
+ "schedule-employee-config": {
254
+ update: string;
255
+ };
256
+ "schedule-operating-hours": {
257
+ update: string;
258
+ };
259
+ "schedule-position": {
260
+ create: string;
261
+ update: string;
262
+ delete: string;
263
+ };
264
+ "schedule-employee": {
265
+ create: string;
266
+ delete: string;
267
+ };
268
+ "schedule-shift-item": {
269
+ create: string;
270
+ update: string;
271
+ delete: string;
272
+ publish: string;
273
+ unpublish: string;
274
+ confirm: string;
275
+ };
276
+ "schedule-demand-item": {
277
+ create: string;
278
+ update: string;
279
+ delete: string;
280
+ };
281
+ "schedule-time-off-item": {
282
+ create: string;
283
+ approve: string;
284
+ reject: string;
285
+ cancel: string;
286
+ delete: string;
287
+ };
225
288
  };
226
289
  };
227
290
  };
@@ -448,6 +511,69 @@ export declare const i18nMessages: {
448
511
  view: string;
449
512
  update: string;
450
513
  };
514
+ "schedule-shift": {
515
+ create: string;
516
+ update: string;
517
+ "bulk-save": string;
518
+ publish: string;
519
+ unpublish: string;
520
+ confirm: string;
521
+ delete: string;
522
+ "auto-apply": string;
523
+ };
524
+ "schedule-demand": {
525
+ create: string;
526
+ update: string;
527
+ replace: string;
528
+ delete: string;
529
+ };
530
+ "schedule-time-off": {
531
+ create: string;
532
+ "update-status": string;
533
+ delete: string;
534
+ };
535
+ "schedule-day": {
536
+ save: string;
537
+ delete: string;
538
+ };
539
+ "schedule-settings": {
540
+ update: string;
541
+ };
542
+ "schedule-employee-config": {
543
+ update: string;
544
+ };
545
+ "schedule-operating-hours": {
546
+ update: string;
547
+ };
548
+ "schedule-position": {
549
+ create: string;
550
+ update: string;
551
+ delete: string;
552
+ };
553
+ "schedule-employee": {
554
+ create: string;
555
+ delete: string;
556
+ };
557
+ "schedule-shift-item": {
558
+ create: string;
559
+ update: string;
560
+ delete: string;
561
+ publish: string;
562
+ unpublish: string;
563
+ confirm: string;
564
+ };
565
+ "schedule-demand-item": {
566
+ create: string;
567
+ update: string;
568
+ delete: string;
569
+ };
570
+ "schedule-time-off-item": {
571
+ create: string;
572
+ approve: string;
573
+ reject: string;
574
+ cancel: string;
575
+ delete: string;
576
+ };
451
577
  };
452
578
  };
453
579
  };
@@ -674,6 +800,69 @@ export declare const i18nMessages: {
674
800
  view: string;
675
801
  update: string;
676
802
  };
803
+ "schedule-shift": {
804
+ create: string;
805
+ update: string;
806
+ "bulk-save": string;
807
+ publish: string;
808
+ unpublish: string;
809
+ confirm: string;
810
+ delete: string;
811
+ "auto-apply": string;
812
+ };
813
+ "schedule-demand": {
814
+ create: string;
815
+ update: string;
816
+ replace: string;
817
+ delete: string;
818
+ };
819
+ "schedule-time-off": {
820
+ create: string;
821
+ "update-status": string;
822
+ delete: string;
823
+ };
824
+ "schedule-day": {
825
+ save: string;
826
+ delete: string;
827
+ };
828
+ "schedule-settings": {
829
+ update: string;
830
+ };
831
+ "schedule-employee-config": {
832
+ update: string;
833
+ };
834
+ "schedule-operating-hours": {
835
+ update: string;
836
+ };
837
+ "schedule-position": {
838
+ create: string;
839
+ update: string;
840
+ delete: string;
841
+ };
842
+ "schedule-employee": {
843
+ create: string;
844
+ delete: string;
845
+ };
846
+ "schedule-shift-item": {
847
+ create: string;
848
+ update: string;
849
+ delete: string;
850
+ publish: string;
851
+ unpublish: string;
852
+ confirm: string;
853
+ };
854
+ "schedule-demand-item": {
855
+ create: string;
856
+ update: string;
857
+ delete: string;
858
+ };
859
+ "schedule-time-off-item": {
860
+ create: string;
861
+ approve: string;
862
+ reject: string;
863
+ cancel: string;
864
+ delete: string;
865
+ };
677
866
  };
678
867
  };
679
868
  };
@@ -900,6 +1089,69 @@ export declare const i18nMessages: {
900
1089
  view: string;
901
1090
  update: string;
902
1091
  };
1092
+ "schedule-shift": {
1093
+ create: string;
1094
+ update: string;
1095
+ "bulk-save": string;
1096
+ publish: string;
1097
+ unpublish: string;
1098
+ confirm: string;
1099
+ delete: string;
1100
+ "auto-apply": string;
1101
+ };
1102
+ "schedule-demand": {
1103
+ create: string;
1104
+ update: string;
1105
+ replace: string;
1106
+ delete: string;
1107
+ };
1108
+ "schedule-time-off": {
1109
+ create: string;
1110
+ "update-status": string;
1111
+ delete: string;
1112
+ };
1113
+ "schedule-day": {
1114
+ save: string;
1115
+ delete: string;
1116
+ };
1117
+ "schedule-settings": {
1118
+ update: string;
1119
+ };
1120
+ "schedule-employee-config": {
1121
+ update: string;
1122
+ };
1123
+ "schedule-operating-hours": {
1124
+ update: string;
1125
+ };
1126
+ "schedule-position": {
1127
+ create: string;
1128
+ update: string;
1129
+ delete: string;
1130
+ };
1131
+ "schedule-employee": {
1132
+ create: string;
1133
+ delete: string;
1134
+ };
1135
+ "schedule-shift-item": {
1136
+ create: string;
1137
+ update: string;
1138
+ delete: string;
1139
+ publish: string;
1140
+ unpublish: string;
1141
+ confirm: string;
1142
+ };
1143
+ "schedule-demand-item": {
1144
+ create: string;
1145
+ update: string;
1146
+ delete: string;
1147
+ };
1148
+ "schedule-time-off-item": {
1149
+ create: string;
1150
+ approve: string;
1151
+ reject: string;
1152
+ cancel: string;
1153
+ delete: string;
1154
+ };
903
1155
  };
904
1156
  };
905
1157
  };
@@ -20,9 +20,11 @@ declare const _default: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {
20
20
  segClick: (dayIdx: number, from: number, to: number, anchor: HTMLElement) => any;
21
21
  segFocus: (dayIdx: number, from: number, to: number, anchor: HTMLElement) => any;
22
22
  openDemandSheet: (dayIdx: number) => any;
23
+ openNewShift: (dayIdx: number, position: string) => any;
24
+ openPositionDrop: (dayIdx: number, position: string) => any;
23
25
  addPosition: () => any;
24
26
  scheduleByPerson: () => any;
25
- openSwap: (fromEmpId: number, fromDayIdx: number, toEmpId: number, toDayIdx: number, slotIndex: number) => any;
27
+ openSwap: (fromEmpId: number, fromDayIdx: number, toEmpId: number, toDayIdx: number, slotIndex: number, targetSlotIndex: number) => any;
26
28
  }, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{
27
29
  onEditShift?: ((empId: number, dayIdx: number) => any) | undefined;
28
30
  onSegEnter?: ((dayIdx: number, from: number, to: number, anchor: HTMLElement) => any) | undefined;
@@ -30,8 +32,10 @@ declare const _default: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {
30
32
  onSegClick?: ((dayIdx: number, from: number, to: number, anchor: HTMLElement) => any) | undefined;
31
33
  onSegFocus?: ((dayIdx: number, from: number, to: number, anchor: HTMLElement) => any) | undefined;
32
34
  onOpenDemandSheet?: ((dayIdx: number) => any) | undefined;
35
+ onOpenNewShift?: ((dayIdx: number, position: string) => any) | undefined;
36
+ onOpenPositionDrop?: ((dayIdx: number, position: string) => any) | undefined;
33
37
  onAddPosition?: (() => any) | undefined;
34
38
  onScheduleByPerson?: (() => any) | undefined;
35
- onOpenSwap?: ((fromEmpId: number, fromDayIdx: number, toEmpId: number, toDayIdx: number, slotIndex: number) => any) | undefined;
39
+ onOpenSwap?: ((fromEmpId: number, fromDayIdx: number, toEmpId: number, toDayIdx: number, slotIndex: number, targetSlotIndex: number) => any) | undefined;
36
40
  }>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
37
41
  export default _default;
@@ -0,0 +1,2 @@
1
+ declare const _default: import("vue").DefineComponent<{}, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
2
+ export default _default;
@@ -10,6 +10,8 @@ type __VLS_Props = {
10
10
  shiftDragDrop: ScheduleDragDropApi;
11
11
  demandRow: ScheduleDemandRowApi;
12
12
  onEditShift: (...args: any[]) => void;
13
+ onOpenNewShift: (...args: any[]) => void;
14
+ onOpenPositionDrop: (...args: any[]) => void;
13
15
  onOpenDemandSheet: (...args: any[]) => void;
14
16
  onSegEnter: (...args: any[]) => void;
15
17
  onSegLeave: (...args: any[]) => void;
@@ -5,6 +5,7 @@ import type { useScheduleStatsRow } from '../composables/useScheduleStatsRow';
5
5
  import type { ScheduleDayTimelineApi } from '../composables/useScheduleDayTimeline';
6
6
  import type { ScheduleRosterApi } from '../composables/useScheduleRoster';
7
7
  import type { ScheduleAreaDragDropApi } from '../composables/useScheduleAreaDragDrop';
8
+ import type { ScheduleDragDropApi } from '../composables/useScheduleDragDrop';
8
9
  type ScheduleLegendApi = ReturnType<typeof useScheduleLegend>;
9
10
  type ScheduleStatsRowApi = ReturnType<typeof useScheduleStatsRow>;
10
11
  type __VLS_Props = {
@@ -15,6 +16,10 @@ type __VLS_Props = {
15
16
  dayTimeline: ScheduleDayTimelineApi;
16
17
  roster: ScheduleRosterApi;
17
18
  areaDragDrop: ScheduleAreaDragDropApi;
19
+ shiftDragDrop: ScheduleDragDropApi;
20
+ onDropEmployee: (employeeId: number, event: DragEvent, slotIndex?: number) => void;
21
+ onDropPosition: (employeeId: number, event: DragEvent, slotIndex?: number) => void;
22
+ onDropPositionCell: (position: string, event: DragEvent) => void;
18
23
  mode: 'employee' | 'area';
19
24
  onScroll: (delta: number) => void;
20
25
  onComingSoon: () => void;
@@ -6,6 +6,7 @@ import type { SchedulePositionModalApi } from '../composables/useSchedulePositio
6
6
  import type { ScheduleShiftActionsApi } from '../composables/useScheduleShiftActions';
7
7
  import type { ScheduleShiftPopoverApi } from '../composables/useScheduleShiftPopover';
8
8
  import type { ScheduleAutoScheduleApi } from '../composables/useScheduleAutoSchedule';
9
+ import type { ScheduleTourApi } from '../composables/useScheduleTour';
9
10
  import type { ScheduleDemandSheetApi } from '../composables/useScheduleDemandSheet';
10
11
  type ScheduleEmployeeProfileApi = ReturnType<typeof useScheduleEmployeeProfile>;
11
12
  type __VLS_Props = {
@@ -17,6 +18,7 @@ type __VLS_Props = {
17
18
  shiftActions: ScheduleShiftActionsApi;
18
19
  popover: ScheduleShiftPopoverApi;
19
20
  autoSchedule: ScheduleAutoScheduleApi;
21
+ tour: ScheduleTourApi;
20
22
  demandSheet: ScheduleDemandSheetApi;
21
23
  removeEmployeeOpen: boolean;
22
24
  removeEmployeeName: string;
@@ -18,6 +18,7 @@ type __VLS_Props = {
18
18
  clearTitle: string;
19
19
  clearMessage: string;
20
20
  clearConfirmLabel: string;
21
+ clearLoading: boolean;
21
22
  onConfirmClear: () => void;
22
23
  onCloseClear: () => void;
23
24
  };
@@ -22,7 +22,6 @@ type __VLS_Props = {
22
22
  filterBar: ScheduleFilterBarApi;
23
23
  outlet: ScheduleOutletApi;
24
24
  roster: ScheduleRosterApi;
25
- loading: boolean;
26
25
  error: string | null;
27
26
  onSchedStatusClick: () => void;
28
27
  onComingSoon: () => void;
@@ -4,7 +4,7 @@ import type { ScheduleAutoScheduleApi } from '../composables/useScheduleAutoSche
4
4
  import type { ScheduleExportApi } from '../composables/useScheduleExport';
5
5
  import type { SchedulePublishApi } from '../composables/useSchedulePublish';
6
6
  type __VLS_Props = {
7
- kind: 'onboarding' | 'tour' | 'export' | 'publish-share';
7
+ kind: 'onboarding' | 'tour' | 'auto-schedule' | 'export' | 'publish-share';
8
8
  wizard?: ScheduleOnboardingWizardApi;
9
9
  tour?: ScheduleTourApi;
10
10
  autoSchedule?: ScheduleAutoScheduleApi;
@@ -2,6 +2,7 @@ type __VLS_Props = {
2
2
  open: boolean;
3
3
  title: string;
4
4
  message: string;
5
+ affectedDates?: string[];
5
6
  /** `clash-q` gives the message an orange warning-callout background instead of plain text —
6
7
  * used by the "might conflict" dialog, kept as an opt-in rather than the default look. */
7
8
  messageClass?: string;
@@ -10,6 +11,7 @@ type __VLS_Props = {
10
11
  * consequence of pressing the button. Omitted entirely when there's nothing to point to. */
11
12
  note?: string;
12
13
  confirmLabel?: string;
14
+ loading?: boolean;
13
15
  cancelLabel?: string;
14
16
  tone?: 'primary' | 'danger';
15
17
  /** The "!" mark is for dialogs guarding something irreversible — a reversible action
@@ -24,9 +26,10 @@ declare const _default: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {
24
26
  onConfirm?: (() => any) | undefined;
25
27
  }>, {
26
28
  icon: boolean;
29
+ loading: boolean;
27
30
  confirmLabel: string;
28
- tone: "primary" | "danger";
29
31
  messageClass: string;
30
32
  cancelLabel: string;
33
+ tone: "primary" | "danger";
31
34
  }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
32
35
  export default _default;
@@ -2,11 +2,16 @@ import type { ScheduleDayTimelineApi } from '../composables/useScheduleDayTimeli
2
2
  import type { ScheduleRosterApi } from '../composables/useScheduleRoster';
3
3
  import type { ScheduleViewMode } from '../composables/useScheduleFilterBar';
4
4
  import type { ScheduleAreaDragDropApi } from '../composables/useScheduleAreaDragDrop';
5
+ import type { ScheduleDragDropApi } from '../composables/useScheduleDragDrop';
5
6
  type __VLS_Props = {
6
7
  timeline: ScheduleDayTimelineApi;
7
8
  roster: ScheduleRosterApi;
8
9
  mode: ScheduleViewMode;
9
10
  dragDrop?: ScheduleAreaDragDropApi;
11
+ shiftDragDrop?: ScheduleDragDropApi;
12
+ onDropEmployee?: (employeeId: number, event: DragEvent, slotIndex?: number) => void;
13
+ onDropPosition?: (employeeId: number, event: DragEvent, slotIndex?: number) => void;
14
+ onDropPositionCell?: (position: string, event: DragEvent) => void;
10
15
  };
11
16
  declare const _default: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
12
17
  export default _default;
@@ -1,5 +1,4 @@
1
1
  type __VLS_Props = {
2
- loading: boolean;
3
2
  error: string | null;
4
3
  };
5
4
  declare const _default: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
@@ -0,0 +1,6 @@
1
+ import type { ScheduleOnboardingWizardApi } from '../composables/useScheduleOnboardingWizard';
2
+ type __VLS_Props = {
3
+ wizard: ScheduleOnboardingWizardApi;
4
+ };
5
+ declare const _default: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
6
+ export default _default;
@@ -1,6 +1,6 @@
1
1
  import type { ScheduleBoardApi } from '../composables/useScheduleBoard';
2
2
  import type { ScheduleShiftPopoverApi } from '../composables/useScheduleShiftPopover';
3
- import type { ScheduleTimePickerApi } from '../composables/useScheduleTimePicker';
3
+ import { type ScheduleTimePickerApi } from '../composables/useScheduleTimePicker';
4
4
  type __VLS_Props = {
5
5
  board: ScheduleBoardApi;
6
6
  popover: ScheduleShiftPopoverApi;
@@ -1,4 +1,4 @@
1
- import type { FdtoScheduleAutoScheduleApplyReq, FdtoScheduleAutoScheduleObjective, FdtoScheduleAutoSchedulePlanner, FdtoScheduleAutoScheduleProposal, FdtoScheduleAutoScheduleResult } from '@/types/schedule';
1
+ import type { FdtoScheduleAutoScheduleApplyReq, FdtoScheduleAutoScheduleObjective, FdtoScheduleAutoScheduleProposal, FdtoScheduleAutoScheduleResult } from '@/types/schedule';
2
2
  import { ApiError } from '@/api';
3
3
  import type { Proposal } from '../types';
4
4
  /** ISO date of `dayIdx` in the week starting `weekKey` (YYYY-MM-DD, local arithmetic). */
@@ -8,7 +8,7 @@ export declare function dateOfProposal(weekKey: string, dayIdx: number): string;
8
8
  * dropped. Ids come from `nextId` so they stay unique across weeks. */
9
9
  export declare function proposalsFromResult(proposals: FdtoScheduleAutoScheduleProposal[], weekKey: string, dateKeyOf: (dayIdx: number) => string | null, nextId: () => number, holds: (empId: number) => boolean): Proposal[];
10
10
  /** The apply body for the accepted proposals, each re-dated from its own week and day. */
11
- export declare function applyRequestOf(proposals: Proposal[], allowOvertime: boolean): FdtoScheduleAutoScheduleApplyReq;
11
+ export declare function applyRequestOf(proposals: Proposal[], allowOvertime: boolean, status?: FdtoScheduleAutoScheduleApplyReq['status']): FdtoScheduleAutoScheduleApplyReq;
12
12
  export interface ClassifiedExplanation {
13
13
  kind: 'reject' | 'ai' | 'plain';
14
14
  text: string;
@@ -30,4 +30,4 @@ export declare function fillGapsOffResult(week: {
30
30
  /** The snackbar shown once a run finishes, whether it went to the server or (fill gaps off) was
31
31
  * answered locally. `wallMs` is measured client-side around the request — it is what the manager
32
32
  * actually waited, not just the server's own `timing.totalMs`. */
33
- export declare function generateDoneMessage(result: FdtoScheduleAutoScheduleResult, requested: FdtoScheduleAutoSchedulePlanner, wallMs: number): string;
33
+ export declare function generateDoneMessage(result: FdtoScheduleAutoScheduleResult, wallMs: number): string;
@@ -23,7 +23,8 @@ export interface TeamRow {
23
23
  picked: boolean;
24
24
  /** '' means "Any position" — a person with none. */
25
25
  position: string;
26
- second: string;
26
+ /** Additional positions this employee also covers. */
27
+ second: string[];
27
28
  employment: TeamEmployment;
28
29
  maxHours: string;
29
30
  rate: string;
@@ -8,6 +8,8 @@ export type RemyDemandScope = {
8
8
  } | {
9
9
  mode: 'weekdays';
10
10
  };
11
- /** The sentence prefilled into the host Remy panel. Names the outlet the way a manager knows it;
12
- * Remy resolves it to an id itself (hrm_find_outlet), so no identifier appears in the text. */
11
+ /** The text prefilled into the host Remy panel: one line naming the outlet and day, which the
12
+ * user continues with their demand. The "attach a roster image or describe it in words" guidance
13
+ * lives on the sheet's Ask Remy tooltip, not here. Names the outlet the way a manager knows it;
14
+ * Remy resolves it to an id itself (hrm_find_outlet), so no outlet id appears in the text. */
13
15
  export declare function remyDemandPrompt(outletName: string, scope: RemyDemandScope): string;
@@ -6,6 +6,10 @@ export { isoDateKey } from './schedule-calendar';
6
6
  export declare function isWorkSlot(slot: DaySlot): slot is WorkSlot;
7
7
  export declare function isLeaveSlot(slot: DaySlot): slot is LeaveSlot;
8
8
  export declare function workSlotsOf(day: DaySlot): WorkSlot[];
9
+ /** Whether two periods occupy any of the same working time. Endpoints that touch are
10
+ * back-to-back, not a conflict. Overnight ranges use the shared clock rules. */
11
+ export declare function shiftsOverlap(a: Pick<WorkSlot, 'start' | 'end'>, b: Pick<WorkSlot, 'start' | 'end'>): boolean;
12
+ export declare function overlapsAnotherSlot(slots: WorkSlot[], target: WorkSlot): boolean;
9
13
  /** The inverse of `workSlotsOf` — bare slot for one, the array for two or more, so a day
10
14
  * that's back down to its last period reads as a normal single shift again rather than a
11
15
  * one-element array everything else has to unwrap. */
@@ -8,14 +8,12 @@ export declare function useScheduleDayMeta(dateKey: (dayIdx: number) => string |
8
8
  onPersistError?: (message: string) => void;
9
9
  }): {
10
10
  dayNote: (dayIdx: number) => ScheduleDayNote | null;
11
- setDayNote: (dayIdx: number, title: string, desc: string) => void;
11
+ setDayNote: (dayIdx: number, title: string, desc: string, isPublicHoliday?: boolean) => void;
12
12
  clearDayNote: (dayIdx: number) => void;
13
13
  isStandingClosedWeekday: (dayIdx: number) => boolean;
14
14
  holidayName: (dayIdx: number) => string | null;
15
- holidayIsAuto: (dayIdx: number) => boolean;
16
15
  isPublicHoliday: (dayIdx: number) => boolean;
17
16
  holidayRateApplies: (dayIdx: number) => boolean;
18
- setHolidayNormal: (dayIdx: number, toNormal: boolean) => void;
19
17
  setPublicHoliday: (dayIdx: number, on: boolean) => void;
20
18
  otRateOn: (dayIdx: number) => number;
21
19
  regularRateOn: (dayIdx: number) => number;
@@ -1,4 +1,4 @@
1
- import type { DemandPeriod } from '../types';
1
+ import type { DemandPeriod, Employee } from '../types';
2
2
  import { format12h as t12, formatShortMinutes as minToShort, fromMinutes as minToHHMM, spanMinutes as spanOf, toMinutes as toMin } from './schedule-time';
3
3
  export { minToHHMM, minToShort, spanOf, t12, toMin };
4
4
  export declare function rangeText(from: number, to: number): string;
@@ -9,3 +9,15 @@ export interface ScheduleCoverageAxis {
9
9
  from: number;
10
10
  to: number;
11
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
+ };