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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (160) hide show
  1. package/dist/{ApprovalCodeList-cG0zmQVJ.js → ApprovalCodeList-Ce9BWzt9.js} +5 -5
  2. package/dist/{AuditLogList-BTifJhO1.js → AuditLogList-Cw7WN8K4.js} +4 -4
  3. package/dist/{ConditionBuilderForm.vue_vue_type_script_setup_true_lang-qr5TwLTK.js → ConditionBuilderForm.vue_vue_type_script_setup_true_lang-BuofBFPC.js} +2 -2
  4. package/dist/{EmployeeList-DzcMtxJ3.js → EmployeeList-B8qWPNvj.js} +25 -24
  5. package/dist/{GrantUserList-D5b7tJ8Y.js → GrantUserList-CgigJIPF.js} +6 -6
  6. package/dist/{Main-DFwdAWqn.js → Main-BfoVdxlY.js} +8 -8
  7. package/dist/{Main-B2r59IOW.js → Main-Cg2vC_cj.js} +5 -5
  8. package/dist/{Main-DkLBemi7.js → Main-D26pgKy1.js} +11 -11
  9. package/dist/{PermissionSetList-B80hrfMW.js → PermissionSetList-CbtDiF4k.js} +19 -18
  10. package/dist/PortalPermissionEditor.vue_vue_type_script_setup_true_lang-DW1oBTbb.js +4167 -0
  11. package/dist/{PortalUserSearcher.vue_vue_type_style_index_0_scoped_827dfd60_lang-fe-Rdwn4.js → PortalUserSearcher.vue_vue_type_style_index_0_scoped_827dfd60_lang-BVz6q3HE.js} +1 -1
  12. package/dist/ResponsiveContextMenu.vue_vue_type_script_setup_true_lang-mSJFKo7r.js +132 -0
  13. package/dist/{RoleList-DHO4JRKF.js → RoleList-D0I8mbyI.js} +21 -20
  14. package/dist/ScheduleAddPositionModal.vue_vue_type_script_setup_true_lang-Ctwukt6o.js +492 -0
  15. package/dist/ScheduleGeneralPage-Kv4pnxCL.js +778 -0
  16. package/dist/ScheduleModal.vue_vue_type_script_setup_true_lang-CSA0aaqJ.js +2285 -0
  17. package/dist/SchedulePage-BMWd0bod.js +17942 -0
  18. package/dist/{SchedulePositionPage-C0hrO11d.js → SchedulePositionPage-5Xvx6Dk5.js} +66 -65
  19. package/dist/{TeamMemberList-CgFWLRBM.js → TeamMemberList-Bh7i5l16.js} +24 -23
  20. package/dist/{TimesheetList-Dp40G-0I.js → TimesheetList-BJKU-hnk.js} +7 -7
  21. package/dist/{TimesheetList.vue_vue_type_style_index_0_scoped_63294af2_lang-BFjrMhUG.js → TimesheetList.vue_vue_type_style_index_0_scoped_63294af2_lang-MMWnb9bj.js} +3 -3
  22. package/dist/{app-CmBSTvaI.js → app-BDJ5qxhF.js} +678 -594
  23. package/dist/app.js +1 -1
  24. package/dist/{approval-code-C9DmR4Md.js → approval-code-DHsUgc4K.js} +1 -1
  25. package/dist/{dayjs.min-CfL2DQ3d.js → dayjs.min-BWM0vY4w.js} +1 -1
  26. package/dist/{employee-DQcHjoij.js → employee-bBSuAJUr.js} +29 -28
  27. package/dist/{grant-user-Bv-pJ9Wt.js → grant-user-qzKHFTro.js} +1 -1
  28. package/dist/{iteration-BlavheWG.js → iteration-Dg7VAkAn.js} +1 -1
  29. package/dist/{lodash-QerqayrJ.js → lodash-BknY3p4o.js} +1 -1
  30. package/dist/{restaurant-D7PEQjPY.js → restaurant-BbYRA_IT.js} +4 -3
  31. package/dist/{role-RM2YLO7n.js → role-BJnJnNd_.js} +2 -2
  32. package/dist/{rule-DjlvYIuP.js → rule-BEuOY7Wf.js} +3 -3
  33. package/dist/src/api/schedule/index.d.ts +8 -1
  34. package/dist/src/components/layout/withScheduleShell.d.ts +10 -0
  35. package/dist/src/composables/useDiscardConfirm.d.ts +3 -1
  36. package/dist/src/types/employee.d.ts +1 -0
  37. package/dist/src/types/schedule.d.ts +3 -4
  38. package/dist/src/views/scheduling/components/ScheduleAreaRows.vue.d.ts +0 -8
  39. package/dist/src/views/scheduling/components/ScheduleBoardAreaRows.vue.d.ts +23 -0
  40. package/dist/src/views/scheduling/components/ScheduleBoardEditOverlays.vue.d.ts +17 -0
  41. package/dist/src/views/scheduling/components/ScheduleBoardEmployeeRows.vue.d.ts +31 -0
  42. package/dist/src/views/scheduling/components/ScheduleBoardGridHeader.vue.d.ts +24 -0
  43. package/dist/src/views/scheduling/components/ScheduleBoardInteractionOverlays.vue.d.ts +32 -0
  44. package/dist/src/views/scheduling/components/ScheduleBoardOnboardingOverlays.vue.d.ts +25 -0
  45. package/dist/src/views/scheduling/components/ScheduleBoardRails.vue.d.ts +17 -0
  46. package/dist/src/views/scheduling/components/ScheduleBoardToolbar.vue.d.ts +38 -0
  47. package/dist/src/views/scheduling/components/ScheduleBoardUtilityOverlays.vue.d.ts +22 -0
  48. package/dist/src/views/scheduling/components/{ScheduleOnboardingComplete.vue.d.ts → ScheduleCompletionDialog.vue.d.ts} +8 -3
  49. package/dist/src/views/scheduling/components/ScheduleConfirmModal.vue.d.ts +2 -1
  50. package/dist/src/views/scheduling/components/{ScheduleShiftCardMenu.vue.d.ts → ScheduleContextMenu.vue.d.ts} +7 -2
  51. package/dist/src/views/scheduling/components/{SchedulePdfPreview.vue.d.ts → ScheduleExportPreview.vue.d.ts} +1 -0
  52. package/dist/src/views/scheduling/components/ScheduleLoadState.vue.d.ts +9 -0
  53. package/dist/src/views/scheduling/components/ScheduleModal.vue.d.ts +26 -0
  54. package/dist/src/views/scheduling/components/{ScheduleExportDoneDialog.vue.d.ts → ScheduleOnboardingAssignPositionModal.vue.d.ts} +2 -2
  55. package/dist/src/views/scheduling/components/{ScheduleAssignEmployeePopover.vue.d.ts → ScheduleOnboardingClosedDayConfirm.vue.d.ts} +2 -2
  56. package/dist/src/views/scheduling/components/{ScheduleEmployeeMenu.vue.d.ts → ScheduleOnboardingDemandDays.vue.d.ts} +2 -2
  57. package/dist/src/views/scheduling/components/ScheduleOnboardingDemandFooter.vue.d.ts +6 -0
  58. package/dist/src/views/scheduling/components/ScheduleOnboardingDemandHeader.vue.d.ts +6 -0
  59. package/dist/src/views/scheduling/components/ScheduleOnboardingHoursProfileNotice.vue.d.ts +10 -0
  60. package/dist/src/views/scheduling/components/ScheduleOnboardingPositions.vue.d.ts +6 -0
  61. package/dist/src/views/scheduling/components/ScheduleOnboardingReview.vue.d.ts +6 -0
  62. package/dist/src/views/scheduling/components/ScheduleOnboardingWizardFooter.vue.d.ts +6 -0
  63. package/dist/src/views/scheduling/components/ScheduleOnboardingWizardHeader.vue.d.ts +11 -0
  64. package/dist/src/views/scheduling/components/ScheduleSelect.vue.d.ts +17 -1
  65. package/dist/src/views/scheduling/components/ScheduleSetupBanner.vue.d.ts +12 -0
  66. package/dist/src/views/scheduling/components/ScheduleShiftPopover.vue.d.ts +2 -2
  67. package/dist/src/views/scheduling/components/ScheduleStaffRail.vue.d.ts +4 -4
  68. package/dist/src/views/scheduling/components/ScheduleStaffRows.vue.d.ts +2 -12
  69. package/dist/src/views/scheduling/components/ScheduleTopbar.vue.d.ts +3 -3
  70. package/dist/src/views/scheduling/composables/onboarding-types.d.ts +1 -1
  71. package/dist/src/views/scheduling/composables/remyPrompt.d.ts +13 -0
  72. package/dist/src/views/scheduling/composables/schedule-add-employee-form.d.ts +12 -8
  73. package/dist/src/views/scheduling/composables/schedule-board-helpers.d.ts +5 -1
  74. package/dist/src/views/scheduling/composables/schedule-breaks.d.ts +7 -1
  75. package/dist/src/views/scheduling/composables/schedule-calendar.d.ts +7 -0
  76. package/dist/src/views/scheduling/composables/schedule-cost.d.ts +19 -0
  77. package/dist/src/views/scheduling/composables/schedule-day-meta.d.ts +1 -3
  78. package/dist/src/views/scheduling/composables/schedule-demand-domain.d.ts +11 -0
  79. package/dist/src/views/scheduling/composables/schedule-export-matrix.d.ts +14 -0
  80. package/dist/src/views/scheduling/composables/schedule-time.d.ts +8 -0
  81. package/dist/src/views/scheduling/composables/schedule-week-cache.d.ts +1 -4
  82. package/dist/src/views/scheduling/composables/useRemyAppStore.d.ts +15 -0
  83. package/dist/src/views/scheduling/composables/useScheduleAddEmployee.d.ts +35 -21
  84. package/dist/src/views/scheduling/composables/useScheduleAreaBoard.d.ts +0 -13
  85. package/dist/src/views/scheduling/composables/useScheduleAreaDragDrop.d.ts +2 -8
  86. package/dist/src/views/scheduling/composables/useScheduleAssignmentMutations.d.ts +13 -0
  87. package/dist/src/views/scheduling/composables/useScheduleAutoSchedule.d.ts +3 -3
  88. package/dist/src/views/scheduling/composables/useScheduleBoard.d.ts +52 -11
  89. package/dist/src/views/scheduling/composables/useScheduleCloneOutletModal.d.ts +3 -1
  90. package/dist/src/views/scheduling/composables/useScheduleCostRail.d.ts +6 -1
  91. package/dist/src/views/scheduling/composables/useScheduleDayNote.d.ts +1 -2
  92. package/dist/src/views/scheduling/composables/useScheduleDayTimeline.d.ts +0 -3
  93. package/dist/src/views/scheduling/composables/useScheduleDemand.d.ts +7 -24
  94. package/dist/src/views/scheduling/composables/useScheduleDemandSheet.d.ts +26 -5
  95. package/dist/src/views/scheduling/composables/useScheduleEmployeeAccess.d.ts +16 -0
  96. package/dist/src/views/scheduling/composables/useScheduleEmployeeAvailability.d.ts +13 -0
  97. package/dist/src/views/scheduling/composables/useScheduleEmployeeCandidates.d.ts +27 -0
  98. package/dist/src/views/scheduling/composables/useScheduleEmployeeCompensation.d.ts +7 -0
  99. package/dist/src/views/scheduling/composables/useScheduleEmployeeForm.d.ts +22 -0
  100. package/dist/src/views/scheduling/composables/useScheduleEmployeeIdentity.d.ts +9 -0
  101. package/dist/src/views/scheduling/composables/useScheduleEmployeeMenu.d.ts +6 -3
  102. package/dist/src/views/scheduling/composables/useScheduleEmployeePersistence.d.ts +29 -0
  103. package/dist/src/views/scheduling/composables/useScheduleEmployeeValidation.d.ts +20 -0
  104. package/dist/src/views/scheduling/composables/useScheduleExport.d.ts +19 -11
  105. package/dist/src/views/scheduling/composables/useScheduleGapPopover.d.ts +5 -6
  106. package/dist/src/views/scheduling/composables/useScheduleOnboardingAvailability.d.ts +58 -0
  107. package/dist/src/views/scheduling/composables/useScheduleOnboardingDemand.d.ts +45 -0
  108. package/dist/src/views/scheduling/composables/useScheduleOnboardingEmployees.d.ts +206 -0
  109. package/dist/src/views/scheduling/composables/useScheduleOnboardingHours.d.ts +15 -0
  110. package/dist/src/views/scheduling/composables/useScheduleOnboardingNavigation.d.ts +11 -0
  111. package/dist/src/views/scheduling/composables/useScheduleOnboardingWizard.d.ts +313 -529
  112. package/dist/src/views/scheduling/composables/useSchedulePageActions.d.ts +18 -0
  113. package/dist/src/views/scheduling/composables/useSchedulePageCellActions.d.ts +21 -0
  114. package/dist/src/views/scheduling/composables/useSchedulePageCellDrop.d.ts +18 -0
  115. package/dist/src/views/scheduling/composables/useSchedulePageEmployeeActions.d.ts +22 -0
  116. package/dist/src/views/scheduling/composables/useSchedulePageOverlays.d.ts +10 -7
  117. package/dist/src/views/scheduling/composables/useSchedulePdfExport.d.ts +19 -0
  118. package/dist/src/views/scheduling/composables/useSchedulePositionModal.d.ts +4 -1
  119. package/dist/src/views/scheduling/composables/useSchedulePositions.d.ts +4 -2
  120. package/dist/src/views/scheduling/composables/useSchedulePublish.d.ts +9 -1
  121. package/dist/src/views/scheduling/composables/useSchedulePublishPersistence.d.ts +11 -0
  122. package/dist/src/views/scheduling/composables/useScheduleRoster.d.ts +32 -4
  123. package/dist/src/views/scheduling/composables/useScheduleSettings.d.ts +8 -25
  124. package/dist/src/views/scheduling/composables/useScheduleShiftActions.d.ts +19 -3
  125. package/dist/src/views/scheduling/composables/useScheduleShiftDraft.d.ts +63 -0
  126. package/dist/src/views/scheduling/composables/useScheduleShiftPersistence.d.ts +17 -0
  127. package/dist/src/views/scheduling/composables/useScheduleShiftPopover.d.ts +31 -9
  128. package/dist/src/views/scheduling/composables/useScheduleStatsRow.d.ts +4 -1
  129. package/dist/src/views/scheduling/composables/useScheduleTour.d.ts +6 -4
  130. package/dist/src/views/scheduling/country-rules/index.d.ts +24 -0
  131. package/dist/src/views/scheduling/data.d.ts +16 -7
  132. package/dist/src/views/scheduling/locales/index.d.ts +80 -0
  133. package/dist/src/views/scheduling/schedule-constants.d.ts +7 -0
  134. package/dist/src/views/scheduling/schedule-state.d.ts +104 -16
  135. package/dist/src/views/scheduling/schedule-store.d.ts +30 -6
  136. package/dist/src/views/scheduling/types.d.ts +29 -5
  137. package/dist/style.css +1 -1
  138. package/dist/tsconfig.app.tsbuildinfo +1 -1
  139. package/dist/{useAppStore-d_nHyK5u.js → useAppStore-BoLkvkE2.js} +1 -1
  140. package/dist/useDiscardConfirm-CzZSPyvh.js +28 -0
  141. package/dist/{useLoading-JFoghhRz.js → useLoading-Ch1AUYT1.js} +1 -1
  142. package/dist/{useReportPermissions-Bl6Br79r.js → useReportPermissions-D8hJ5W0t.js} +3 -3
  143. package/package.json +2 -1
  144. package/dist/PortalPermissionEditor.vue_vue_type_script_setup_true_lang-DjNcJQM9.js +0 -4167
  145. package/dist/ScheduleAddPositionModal.vue_vue_type_script_setup_true_lang-B-XtB64L.js +0 -452
  146. package/dist/ScheduleGeneralPage-WlBM8bxV.js +0 -629
  147. package/dist/SchedulePage-Nm0krGVU.js +0 -17056
  148. package/dist/ScheduleSelect.vue_vue_type_script_setup_true_lang-DTDXir_7.js +0 -1150
  149. package/dist/src/components/layout/withShell.d.ts +0 -14
  150. package/dist/src/views/scheduling/components/ScheduleAllShiftsRow.vue.d.ts +0 -22
  151. package/dist/src/views/scheduling/components/ScheduleOpenShiftCardMenu.vue.d.ts +0 -14
  152. package/dist/src/views/scheduling/components/ScheduleStackPopover.vue.d.ts +0 -14
  153. package/dist/src/views/scheduling/components/ScheduleTourAllSet.vue.d.ts +0 -6
  154. package/dist/src/views/scheduling/composables/useScheduleAllShiftsRow.d.ts +0 -77
  155. package/dist/src/views/scheduling/composables/useScheduleAssign.d.ts +0 -122
  156. package/dist/src/views/scheduling/composables/useScheduleOpenShiftCard.d.ts +0 -23
  157. package/dist/src/views/scheduling/composables/useScheduleStaffRail.d.ts +0 -17
  158. package/dist/src/views/scheduling/composables/useScheduleTopbar.d.ts +0 -10
  159. package/dist/useDiscardConfirm-DPhEV6v0.js +0 -157
  160. /package/dist/src/{components/layout/AppSidebar.vue.d.ts → views/scheduling/components/SchedulePublishShareArt.vue.d.ts} +0 -0
@@ -38,6 +38,7 @@ export declare const scheduleState: {
38
38
  days: {
39
39
  date: string;
40
40
  id: string;
41
+ updatedAt: string;
41
42
  isPublicHoliday: boolean;
42
43
  title: string;
43
44
  description: string;
@@ -56,6 +57,10 @@ export declare const scheduleState: {
56
57
  headcount: number;
57
58
  }[];
58
59
  settings: {
60
+ settingsConfigured?: boolean | undefined;
61
+ overtime: {
62
+ maxHoursPerMonth: number | null;
63
+ };
59
64
  payRate: {
60
65
  NORMAL: {
61
66
  overtime: number;
@@ -70,15 +75,20 @@ export declare const scheduleState: {
70
75
  };
71
76
  };
72
77
  setupCompleted: boolean;
78
+ workingHours: {
79
+ minHoursPerDay: number | null;
80
+ maxHoursPerDay: number | null;
81
+ maxHoursPerWeek: number | null;
82
+ };
73
83
  };
74
84
  restaurantProfile: {
75
85
  operatingHours: {
76
- dayOfWeek: number;
77
- closed: boolean;
78
86
  hours: {
79
87
  start: string;
80
88
  end: string;
81
89
  }[];
90
+ dayOfWeek: number;
91
+ closed: boolean;
82
92
  }[];
83
93
  };
84
94
  positions: {
@@ -86,10 +96,18 @@ export declare const scheduleState: {
86
96
  name: string;
87
97
  }[];
88
98
  employees: {
99
+ overtime?: {
100
+ maxHoursPerMonth: number | null;
101
+ } | undefined;
102
+ minHoursPerDay?: number | null | undefined;
103
+ workingHours?: {
104
+ minHoursPerDay: number | null;
105
+ maxHoursPerDay: number | null;
106
+ maxHoursPerWeek: number | null;
107
+ } | undefined;
89
108
  name: string;
90
109
  employeeId: string;
91
110
  employmentType: "FULLTIME" | "PARTTIME";
92
- workingHour: number;
93
111
  wage: {
94
112
  type: "HOURLY" | "MONTHLY";
95
113
  amount: number;
@@ -129,6 +147,7 @@ export declare const scheduleState: {
129
147
  startTime: string;
130
148
  endTime: string;
131
149
  })[];
150
+ updatedAt: string;
132
151
  }[];
133
152
  } | null, {
134
153
  timeOff: {
@@ -160,6 +179,7 @@ export declare const scheduleState: {
160
179
  days: {
161
180
  date: string;
162
181
  id: string;
182
+ updatedAt: string;
163
183
  isPublicHoliday: boolean;
164
184
  title: string;
165
185
  description: string;
@@ -178,6 +198,10 @@ export declare const scheduleState: {
178
198
  headcount: number;
179
199
  }[];
180
200
  settings: {
201
+ settingsConfigured?: boolean | undefined;
202
+ overtime: {
203
+ maxHoursPerMonth: number | null;
204
+ };
181
205
  payRate: {
182
206
  NORMAL: {
183
207
  overtime: number;
@@ -192,15 +216,20 @@ export declare const scheduleState: {
192
216
  };
193
217
  };
194
218
  setupCompleted: boolean;
219
+ workingHours: {
220
+ minHoursPerDay: number | null;
221
+ maxHoursPerDay: number | null;
222
+ maxHoursPerWeek: number | null;
223
+ };
195
224
  };
196
225
  restaurantProfile: {
197
226
  operatingHours: {
198
- dayOfWeek: number;
199
- closed: boolean;
200
227
  hours: {
201
228
  start: string;
202
229
  end: string;
203
230
  }[];
231
+ dayOfWeek: number;
232
+ closed: boolean;
204
233
  }[];
205
234
  };
206
235
  positions: {
@@ -208,10 +237,18 @@ export declare const scheduleState: {
208
237
  name: string;
209
238
  }[];
210
239
  employees: {
240
+ overtime?: {
241
+ maxHoursPerMonth: number | null;
242
+ } | undefined;
243
+ minHoursPerDay?: number | null | undefined;
244
+ workingHours?: {
245
+ minHoursPerDay: number | null;
246
+ maxHoursPerDay: number | null;
247
+ maxHoursPerWeek: number | null;
248
+ } | undefined;
211
249
  name: string;
212
250
  employeeId: string;
213
251
  employmentType: "FULLTIME" | "PARTTIME";
214
- workingHour: number;
215
252
  wage: {
216
253
  type: "HOURLY" | "MONTHLY";
217
254
  amount: number;
@@ -251,6 +288,7 @@ export declare const scheduleState: {
251
288
  startTime: string;
252
289
  endTime: string;
253
290
  })[];
291
+ updatedAt: string;
254
292
  }[];
255
293
  } | null>;
256
294
  loading: import("vue").Ref<boolean, boolean>;
@@ -334,13 +372,17 @@ export declare const scheduleState: {
334
372
  overtime: number;
335
373
  };
336
374
  };
337
- otAfterDaily: number;
338
375
  salesForecast: number;
339
376
  closedWeekdays: number[];
340
377
  labourTarget: number;
341
378
  budgetFromSales: boolean;
342
379
  budget: number;
343
- otCapHours: number;
380
+ otCapHours: number | null;
381
+ workingHours: {
382
+ minHoursPerDay: number | null;
383
+ maxHoursPerDay: number | null;
384
+ maxHoursPerWeek: number | null;
385
+ };
344
386
  otBudget: number;
345
387
  notify: {
346
388
  waConnected: boolean;
@@ -384,6 +426,7 @@ export declare const payload: import("vue").ShallowRef<{
384
426
  days: {
385
427
  date: string;
386
428
  id: string;
429
+ updatedAt: string;
387
430
  isPublicHoliday: boolean;
388
431
  title: string;
389
432
  description: string;
@@ -402,6 +445,10 @@ export declare const payload: import("vue").ShallowRef<{
402
445
  headcount: number;
403
446
  }[];
404
447
  settings: {
448
+ settingsConfigured?: boolean | undefined;
449
+ overtime: {
450
+ maxHoursPerMonth: number | null;
451
+ };
405
452
  payRate: {
406
453
  NORMAL: {
407
454
  overtime: number;
@@ -416,15 +463,20 @@ export declare const payload: import("vue").ShallowRef<{
416
463
  };
417
464
  };
418
465
  setupCompleted: boolean;
466
+ workingHours: {
467
+ minHoursPerDay: number | null;
468
+ maxHoursPerDay: number | null;
469
+ maxHoursPerWeek: number | null;
470
+ };
419
471
  };
420
472
  restaurantProfile: {
421
473
  operatingHours: {
422
- dayOfWeek: number;
423
- closed: boolean;
424
474
  hours: {
425
475
  start: string;
426
476
  end: string;
427
477
  }[];
478
+ dayOfWeek: number;
479
+ closed: boolean;
428
480
  }[];
429
481
  };
430
482
  positions: {
@@ -432,10 +484,18 @@ export declare const payload: import("vue").ShallowRef<{
432
484
  name: string;
433
485
  }[];
434
486
  employees: {
487
+ overtime?: {
488
+ maxHoursPerMonth: number | null;
489
+ } | undefined;
490
+ minHoursPerDay?: number | null | undefined;
491
+ workingHours?: {
492
+ minHoursPerDay: number | null;
493
+ maxHoursPerDay: number | null;
494
+ maxHoursPerWeek: number | null;
495
+ } | undefined;
435
496
  name: string;
436
497
  employeeId: string;
437
498
  employmentType: "FULLTIME" | "PARTTIME";
438
- workingHour: number;
439
499
  wage: {
440
500
  type: "HOURLY" | "MONTHLY";
441
501
  amount: number;
@@ -475,6 +535,7 @@ export declare const payload: import("vue").ShallowRef<{
475
535
  startTime: string;
476
536
  endTime: string;
477
537
  })[];
538
+ updatedAt: string;
478
539
  }[];
479
540
  } | null, {
480
541
  timeOff: {
@@ -506,6 +567,7 @@ export declare const payload: import("vue").ShallowRef<{
506
567
  days: {
507
568
  date: string;
508
569
  id: string;
570
+ updatedAt: string;
509
571
  isPublicHoliday: boolean;
510
572
  title: string;
511
573
  description: string;
@@ -524,6 +586,10 @@ export declare const payload: import("vue").ShallowRef<{
524
586
  headcount: number;
525
587
  }[];
526
588
  settings: {
589
+ settingsConfigured?: boolean | undefined;
590
+ overtime: {
591
+ maxHoursPerMonth: number | null;
592
+ };
527
593
  payRate: {
528
594
  NORMAL: {
529
595
  overtime: number;
@@ -538,15 +604,20 @@ export declare const payload: import("vue").ShallowRef<{
538
604
  };
539
605
  };
540
606
  setupCompleted: boolean;
607
+ workingHours: {
608
+ minHoursPerDay: number | null;
609
+ maxHoursPerDay: number | null;
610
+ maxHoursPerWeek: number | null;
611
+ };
541
612
  };
542
613
  restaurantProfile: {
543
614
  operatingHours: {
544
- dayOfWeek: number;
545
- closed: boolean;
546
615
  hours: {
547
616
  start: string;
548
617
  end: string;
549
618
  }[];
619
+ dayOfWeek: number;
620
+ closed: boolean;
550
621
  }[];
551
622
  };
552
623
  positions: {
@@ -554,10 +625,18 @@ export declare const payload: import("vue").ShallowRef<{
554
625
  name: string;
555
626
  }[];
556
627
  employees: {
628
+ overtime?: {
629
+ maxHoursPerMonth: number | null;
630
+ } | undefined;
631
+ minHoursPerDay?: number | null | undefined;
632
+ workingHours?: {
633
+ minHoursPerDay: number | null;
634
+ maxHoursPerDay: number | null;
635
+ maxHoursPerWeek: number | null;
636
+ } | undefined;
557
637
  name: string;
558
638
  employeeId: string;
559
639
  employmentType: "FULLTIME" | "PARTTIME";
560
- workingHour: number;
561
640
  wage: {
562
641
  type: "HOURLY" | "MONTHLY";
563
642
  amount: number;
@@ -597,6 +676,7 @@ export declare const payload: import("vue").ShallowRef<{
597
676
  startTime: string;
598
677
  endTime: string;
599
678
  })[];
679
+ updatedAt: string;
600
680
  }[];
601
681
  } | null>, loading: import("vue").Ref<boolean, boolean>, rosterLoading: import("vue").Ref<boolean, boolean>, loadError: import("vue").Ref<string | null, string | null>, scheduleSetupCompleted: import("vue").Ref<boolean, boolean>, dataVersion: import("vue").Ref<number, number>, outletId: import("vue").Ref<string, string>, restaurantEmployees: import("vue").Ref<{
602
682
  _id: string;
@@ -658,13 +738,17 @@ export declare const payload: import("vue").ShallowRef<{
658
738
  overtime: number;
659
739
  };
660
740
  };
661
- otAfterDaily: number;
662
741
  salesForecast: number;
663
742
  closedWeekdays: number[];
664
743
  labourTarget: number;
665
744
  budgetFromSales: boolean;
666
745
  budget: number;
667
- otCapHours: number;
746
+ otCapHours: number | null;
747
+ workingHours: {
748
+ minHoursPerDay: number | null;
749
+ maxHoursPerDay: number | null;
750
+ maxHoursPerWeek: number | null;
751
+ };
668
752
  otBudget: number;
669
753
  notify: {
670
754
  waConnected: boolean;
@@ -677,3 +761,7 @@ export declare const payload: import("vue").ShallowRef<{
677
761
  };
678
762
  };
679
763
  };
764
+ /** Restore all outlet-scoped rules before another outlet is allowed to populate them. Keeping
765
+ * the reactive object and its nested containers alive matters because many board composables
766
+ * hold references to RULES members rather than reading the store object afresh. */
767
+ export declare function resetRules(): void;
@@ -1,10 +1,12 @@
1
+ import ScheduleAPI from '@/api/schedule';
1
2
  import type { IFdtoPosUserSummary } from '@/types/employee';
2
- import type { FdtoScheduleAssignment, FdtoScheduleAutoScheduleApplyReq, FdtoScheduleAutoScheduleApplyResult, FdtoScheduleAutoScheduleCapabilities, FdtoScheduleAutoScheduleGenerateReq, FdtoScheduleAutoScheduleResult, FdtoScheduleBulkUpdateAssignmentStatusReq, FdtoScheduleCreateEmployeeProfileReq, FdtoScheduleSaveAssignmentReq, FdtoScheduleSavePositionReq, FdtoScheduleSaveScheduleDayReq, FdtoScheduleUpdateEmployeeProfileReq, FdtoScheduleCreateTimeOffReq, FdtoScheduleTimeOff, FdtoScheduleUpdateTimeOffStatusReq, FdtoScheduleSaveEmployeeConfigsReq, ScheduleReplaceDemandReq } from '@/types/schedule';
3
+ import type { FdtoScheduleAssignment, FdtoScheduleAutoScheduleApplyReq, FdtoScheduleAutoScheduleApplyResult, FdtoScheduleAutoScheduleCapabilities, FdtoScheduleAutoScheduleGenerateReq, FdtoScheduleAutoScheduleResult, FdtoScheduleBulkUpdateAssignmentStatusReq, FdtoScheduleCreateEmployeeProfileReq, FdtoScheduleSaveAssignmentReq, FdtoScheduleSavePositionReq, FdtoScheduleSaveScheduleDayReq, FdtoScheduleUpdateEmployeeProfileReq, FdtoScheduleValidatePosAccessReq, FdtoScheduleCreateTimeOffReq, FdtoScheduleTimeOff, FdtoScheduleUpdateTimeOffStatusReq, FdtoScheduleSaveEmployeeConfigsReq, ScheduleReplaceDemandReq } from '@/types/schedule';
4
+ import { isoDateKey } from './composables/schedule-calendar';
3
5
  export { businessEmployees, dataVersion, employeeOutletIds, loadError, loading, outletId, payload, restaurantEmployees, employeeConfigs, rosterLoading, scheduleSetupCompleted, } from './schedule-state';
4
6
  /** dayjs-free local-date key — the board's own isoDateKey, repeated here so the store does not
5
7
  * have to import a composable. Local Y/M/D, never UTC: a BSON-free 'YYYY-MM-DD' that survives
6
8
  * a timezone west of Greenwich. */
7
- export declare function isoDate(d: Date): string;
9
+ export declare const isoDate: typeof isoDateKey;
8
10
  /** Points the board at an outlet. Switching throws the held window away rather than widening
9
11
  * it — two outlets' rosters are not one dataset, and half of each is not a schedule.
10
12
  *
@@ -33,6 +35,27 @@ export declare function addEmployeeToOutlets(employeeId: string, restaurantIds:
33
35
  export declare function removeEmployeeFromOutlets(employeeId: string, restaurantIds: string[]): Promise<void>;
34
36
  /** Takes a POS user off this outlet's roster only. */
35
37
  export declare function removeEmployeeFromOutlet(employeeId: string): Promise<void>;
38
+ /** Sets the POS role each of these outlets grants a user — every other outlet on their roster
39
+ * is untouched. An empty roleId means "linked to this outlet, no role assigned" (the same thing
40
+ * `addEmployeeToOutlets`' default gives), not "remove them from it" — use
41
+ * `removeEmployeeFromOutlets` for that. A duplicate restaurantId keeps only the last entry. */
42
+ export declare function setEmployeePosRoles(employeeId: string, assignments: {
43
+ restaurantId: string;
44
+ roleId: string;
45
+ }[]): Promise<void>;
46
+ /** Saves the POS-owned part of an existing scheduling employee. The scheduling profile and the
47
+ * POS user are separate records, so passcode/master-user changes must use the POS user API too.
48
+ * A normalized comparison avoids rewriting the POS user when the employee form was unchanged. */
49
+ export declare function saveEmployeePosAccess(employeeId: string, request: {
50
+ name: string;
51
+ passcode: string;
52
+ masterUser: boolean;
53
+ masterCode: string;
54
+ roles: {
55
+ restaurantId: string;
56
+ roleId: string;
57
+ }[];
58
+ }): Promise<void>;
36
59
  /** The cached business roster, fetched on first use. `force` re-reads it (after a write, or to
37
60
  * refresh a list that is already on screen). Concurrent callers share one request. */
38
61
  export declare function ensureBusinessEmployees(force?: boolean): Promise<IFdtoPosUserSummary[]>;
@@ -52,6 +75,7 @@ export declare function reload(): Promise<void>;
52
75
  * Throws on failure (a duplicate profile, a network error) — the caller decides how to show
53
76
  * that, this just doesn't pretend it succeeded. */
54
77
  export declare function createEmployeeProfile(req: FdtoScheduleCreateEmployeeProfileReq): Promise<void>;
78
+ export declare function validateSchedulePosAccess(req: FdtoScheduleValidatePosAccessReq): Promise<void>;
55
79
  /** Edits a profile already on this outlet's schedule. The caller (useScheduleAddEmployee's
56
80
  * `updateExisting`) applies the form to the live `Employee` object itself for instant feedback,
57
81
  * so this does not bump `dataVersion` — nothing needs a board cache rebuild. The raw payload is
@@ -75,15 +99,14 @@ export declare function deletePosition(id: string): Promise<void>;
75
99
  * to land there for that seed to stay correct — without a `dataVersion` bump, which would
76
100
  * invalidate the per-week employee cache and risk reverting an unsaved shift. */
77
101
  export declare function saveScheduleDay(date: string, req: FdtoScheduleSaveScheduleDayReq): Promise<void>;
78
- /** Replaces one date/weekday's UI demand by expanding every period into flat ShiftDemand rows.
102
+ /** Replaces one date's UI demand by expanding every period into flat ShiftDemand rows.
79
103
  * Position-specific headcount becomes its own row; any remaining headcount becomes an
80
104
  * unpositioned row for the same time range. */
81
105
  export declare function saveDemand(req: ScheduleReplaceDemandReq): Promise<void>;
106
+ export declare function saveDemandsBulk(requests: ScheduleReplaceDemandReq[]): Promise<void>;
82
107
  /** Copies one date's own demand rows onto another date, as that date's own rows. A date that
83
108
  * already has demand of its own is left alone (nothing is overwritten), and a source date with
84
- * none has nothing to copy: the standing weekday rule already covers the same weekday in every
85
- * week, so repeating it per date would only shadow later edits to the rule. Returns how many rows
86
- * were written. */
109
+ * no explicit rows has nothing to copy. Returns how many rows were written. */
87
110
  export declare function copyDateDemand(fromDate: string, toDate: string): Promise<number>;
88
111
  export declare function generateAutoSchedule(req: FdtoScheduleAutoScheduleGenerateReq): Promise<FdtoScheduleAutoScheduleResult>;
89
112
  export declare function getAutoScheduleCapabilities(): Promise<FdtoScheduleAutoScheduleCapabilities>;
@@ -96,6 +119,7 @@ export declare function applyAutoSchedule(req: FdtoScheduleAutoScheduleApplyReq)
96
119
  * their own to read back from yet). */
97
120
  export declare function createAssignment(req: FdtoScheduleSaveAssignmentReq): Promise<FdtoScheduleAssignment>;
98
121
  export declare function updateAssignment(id: string, req: FdtoScheduleSaveAssignmentReq): Promise<FdtoScheduleAssignment | null>;
122
+ export declare function bulkSaveAssignments(req: Parameters<typeof ScheduleAPI.bulkSaveAssignments>[1]): Promise<Awaited<ReturnType<typeof ScheduleAPI.bulkSaveAssignments>>>;
99
123
  /** Deletes a batch of existing assignments in a single request — see
100
124
  * `ScheduleAPI.deleteAssignments`. Deleting one is just this with a single-id array. */
101
125
  export declare function deleteAssignments(ids: string[]): Promise<void>;
@@ -8,6 +8,8 @@ export interface WorkSlot {
8
8
  start: string;
9
9
  end: string;
10
10
  role: string;
11
+ /** The persisted position identity, retained even when the position is soft-deleted. */
12
+ positionId?: string;
11
13
  status: ShiftStatus;
12
14
  clock?: ShiftClock;
13
15
  conflict?: boolean;
@@ -35,6 +37,8 @@ export interface WorkSlot {
35
37
  * round-tripped to the backend yet, or it's an OpenShift fill (see openId), which has its
36
38
  * own record shape and no write path of its own yet. */
37
39
  assignmentId?: string;
40
+ /** Server timestamp used to reject stale background saves. */
41
+ updatedAt?: string;
38
42
  /** Client-only — never sent to the backend (there's no linking field in
39
43
  * FdtoScheduleAssignment to persist it against). Shared by every period of ONE shift
40
44
  * authored through the popover's "+ Split", set there and nowhere else. Two workslots on
@@ -85,6 +89,8 @@ export interface EmployeeAvailHours {
85
89
  }
86
90
  export interface Employee {
87
91
  id: number;
92
+ /** Stable backend identity. The numeric id is only a board/view-model id. */
93
+ sourceId: string;
88
94
  name: string;
89
95
  employmentType: 'FULLTIME' | 'PARTTIME';
90
96
  role: string;
@@ -94,11 +100,13 @@ export interface Employee {
94
100
  /** Full-time-equivalent percentage, e.g. 100 for a full-timer, 60 for 0.6 FTE. */
95
101
  pct: number;
96
102
  /** Hours per week this person is contracted to, as agreed with them. Per-person rather than
97
- * a venue default: ScheduleSettings holds pay rates only, and EmployeeProfiles.workingHour
103
+ * a venue default: ScheduleSettings holds pay rates and employee-hour defaults, and EmployeeProfiles.workingHours
98
104
  * is where the figure is actually stated. Undefined means nobody has agreed one. */
99
105
  contractHours?: number;
100
106
  rate: number;
101
107
  positions: string[];
108
+ /** Position references that remain on the employee profile but are no longer active in the catalogue. */
109
+ archivedPositions?: string[];
102
110
  /** One entry per visible day of the horizon; null = day off. */
103
111
  shifts: DaySlot[];
104
112
  remarks: EmployeeRemark[];
@@ -113,11 +121,18 @@ export interface Employee {
113
121
  * hourly figure derived from this and is what the grid actually costs shifts with. */
114
122
  payAmount?: number;
115
123
  maxHours?: number;
116
- maxOtHours?: number;
117
124
  /** Shortest shift, in hours, this person will come in for. Asking for less is allowed but
118
125
  * warned about in the shift popover. */
119
126
  minHours?: number;
120
- otAfterDaily?: number;
127
+ minHoursPerDay?: number;
128
+ workingHours?: {
129
+ minHoursPerDay: number | null;
130
+ maxHoursPerDay: number | null;
131
+ maxHoursPerWeek: number | null;
132
+ };
133
+ overtime?: {
134
+ maxHoursPerMonth: number | null;
135
+ };
121
136
  preferences?: string[];
122
137
  seniority?: 'senior' | 'junior' | '';
123
138
  /** Recurring days off (full-timer) or days available (part-timer) — see
@@ -126,6 +141,8 @@ export interface Employee {
126
141
  availHours?: EmployeeAvailHours[];
127
142
  /** POS sign-in code. Optional: rostering, costing and publishing never depend on it. */
128
143
  passcode?: string;
144
+ /** POS master-user code, when this employee is a master user. */
145
+ code?: string;
129
146
  masterUser?: boolean;
130
147
  }
131
148
  export interface Section {
@@ -196,7 +213,6 @@ export interface ScheduleRules {
196
213
  end: string;
197
214
  }>[];
198
215
  payRate: PayRate;
199
- otAfterDaily: number;
200
216
  /** Weekly sales forecast (RM) — the stats row's editable input and the figure the
201
217
  * per-day forecast curve distributes across the week. */
202
218
  salesForecast: number;
@@ -211,7 +227,12 @@ export interface ScheduleRules {
211
227
  /** Weekly labour cap (RM), editable directly when budgetFromSales is false. */
212
228
  budget: number;
213
229
  /** Monthly OT cap (hours) — Settings page "Overtime" tab. */
214
- otCapHours: number;
230
+ otCapHours: number | null;
231
+ workingHours: {
232
+ minHoursPerDay: number | null;
233
+ maxHoursPerDay: number | null;
234
+ maxHoursPerWeek: number | null;
235
+ };
215
236
  /** Monthly OT budget (RM), advisory only. */
216
237
  otBudget: number;
217
238
  notify: {
@@ -227,6 +248,7 @@ export interface ScheduleRules {
227
248
  }
228
249
  export interface PendingChange {
229
250
  empId: number;
251
+ employeeKey: string;
230
252
  dayIdx: number;
231
253
  kind: 'add' | 'change' | 'remove';
232
254
  label: string;
@@ -285,6 +307,8 @@ export interface ScheduleDayNote {
285
307
  * "any position" remainder, which is derived and never stored. */
286
308
  export interface DemandRole {
287
309
  position: string;
310
+ /** Persisted position identity; the name is only the display label. */
311
+ positionId?: string;
288
312
  n: number;
289
313
  }
290
314
  /** A stretch of a day and how many people the floor needs across it. Deliberately not a shift: