@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
@@ -12,8 +12,8 @@ export declare const scheduleState: {
12
12
  timeOff: {
13
13
  type: "OFF_DAY" | "LEAVE";
14
14
  status: "PENDING" | "APPROVED" | "REJECTED" | "CANCELLED";
15
- id: string;
16
15
  employeeId: string;
16
+ id: string;
17
17
  leaveType: "UNPAID" | "ANNUAL" | "MEDICAL" | "EMERGENCY" | null;
18
18
  startDate: string;
19
19
  endDate: string;
@@ -56,6 +56,64 @@ export declare const scheduleState: {
56
56
  } | null;
57
57
  headcount: number;
58
58
  }[];
59
+ assignments: {
60
+ status: "DRAFT" | "PUBLISHED" | "CONFIRMED";
61
+ date: string;
62
+ startTime: string;
63
+ endTime: string;
64
+ employeeId: string;
65
+ id: string;
66
+ position: {
67
+ positionId: string;
68
+ positionName: string;
69
+ } | null;
70
+ breaks: ({
71
+ type: "DURATION";
72
+ minutes: number;
73
+ breakPayType: "PAID" | "UNPAID";
74
+ } | {
75
+ type: "TIME_RANGE";
76
+ breakPayType: "PAID" | "UNPAID";
77
+ startTime: string;
78
+ endTime: string;
79
+ })[];
80
+ updatedAt: string;
81
+ }[];
82
+ positions: {
83
+ id: string;
84
+ name: string;
85
+ }[];
86
+ employees: {
87
+ minHoursPerDay?: number | null | undefined;
88
+ overtime?: {
89
+ maxHoursPerMonth: number | null;
90
+ } | undefined;
91
+ workingHours?: {
92
+ minHoursPerDay: number | null;
93
+ maxHoursPerDay: number | null;
94
+ maxHoursPerWeek: number | null;
95
+ } | undefined;
96
+ employeeId: string;
97
+ name: string;
98
+ employmentType: "FULLTIME" | "PARTTIME";
99
+ wage: {
100
+ type: "HOURLY" | "MONTHLY";
101
+ amount: number;
102
+ };
103
+ primaryPosition: {
104
+ positionId: string;
105
+ positionName: string;
106
+ } | null;
107
+ secondaryPositions: {
108
+ positionId: string;
109
+ positionName: string;
110
+ }[];
111
+ availability: {
112
+ dayOfWeek: number;
113
+ start: string;
114
+ end: string;
115
+ }[];
116
+ }[];
59
117
  settings: {
60
118
  settingsConfigured?: boolean | undefined;
61
119
  overtime: {
@@ -91,70 +149,12 @@ export declare const scheduleState: {
91
149
  closed: boolean;
92
150
  }[];
93
151
  };
94
- positions: {
95
- id: string;
96
- name: string;
97
- }[];
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;
108
- name: string;
109
- employeeId: string;
110
- employmentType: "FULLTIME" | "PARTTIME";
111
- wage: {
112
- type: "HOURLY" | "MONTHLY";
113
- amount: number;
114
- };
115
- primaryPosition: {
116
- positionId: string;
117
- positionName: string;
118
- } | null;
119
- secondaryPositions: {
120
- positionId: string;
121
- positionName: string;
122
- }[];
123
- availability: {
124
- dayOfWeek: number;
125
- start: string;
126
- end: string;
127
- }[];
128
- }[];
129
- assignments: {
130
- status: "DRAFT" | "PUBLISHED" | "CONFIRMED";
131
- date: string;
132
- startTime: string;
133
- endTime: string;
134
- id: string;
135
- employeeId: string;
136
- position: {
137
- positionId: string;
138
- positionName: string;
139
- } | null;
140
- breaks: ({
141
- type: "DURATION";
142
- minutes: number;
143
- breakPayType: "PAID" | "UNPAID";
144
- } | {
145
- type: "TIME_RANGE";
146
- breakPayType: "PAID" | "UNPAID";
147
- startTime: string;
148
- endTime: string;
149
- })[];
150
- updatedAt: string;
151
- }[];
152
152
  } | null, {
153
153
  timeOff: {
154
154
  type: "OFF_DAY" | "LEAVE";
155
155
  status: "PENDING" | "APPROVED" | "REJECTED" | "CANCELLED";
156
- id: string;
157
156
  employeeId: string;
157
+ id: string;
158
158
  leaveType: "UNPAID" | "ANNUAL" | "MEDICAL" | "EMERGENCY" | null;
159
159
  startDate: string;
160
160
  endDate: string;
@@ -197,6 +197,64 @@ export declare const scheduleState: {
197
197
  } | null;
198
198
  headcount: number;
199
199
  }[];
200
+ assignments: {
201
+ status: "DRAFT" | "PUBLISHED" | "CONFIRMED";
202
+ date: string;
203
+ startTime: string;
204
+ endTime: string;
205
+ employeeId: string;
206
+ id: string;
207
+ position: {
208
+ positionId: string;
209
+ positionName: string;
210
+ } | null;
211
+ breaks: ({
212
+ type: "DURATION";
213
+ minutes: number;
214
+ breakPayType: "PAID" | "UNPAID";
215
+ } | {
216
+ type: "TIME_RANGE";
217
+ breakPayType: "PAID" | "UNPAID";
218
+ startTime: string;
219
+ endTime: string;
220
+ })[];
221
+ updatedAt: string;
222
+ }[];
223
+ positions: {
224
+ id: string;
225
+ name: string;
226
+ }[];
227
+ employees: {
228
+ minHoursPerDay?: number | null | undefined;
229
+ overtime?: {
230
+ maxHoursPerMonth: number | null;
231
+ } | undefined;
232
+ workingHours?: {
233
+ minHoursPerDay: number | null;
234
+ maxHoursPerDay: number | null;
235
+ maxHoursPerWeek: number | null;
236
+ } | undefined;
237
+ employeeId: string;
238
+ name: string;
239
+ employmentType: "FULLTIME" | "PARTTIME";
240
+ wage: {
241
+ type: "HOURLY" | "MONTHLY";
242
+ amount: number;
243
+ };
244
+ primaryPosition: {
245
+ positionId: string;
246
+ positionName: string;
247
+ } | null;
248
+ secondaryPositions: {
249
+ positionId: string;
250
+ positionName: string;
251
+ }[];
252
+ availability: {
253
+ dayOfWeek: number;
254
+ start: string;
255
+ end: string;
256
+ }[];
257
+ }[];
200
258
  settings: {
201
259
  settingsConfigured?: boolean | undefined;
202
260
  overtime: {
@@ -232,64 +290,6 @@ export declare const scheduleState: {
232
290
  closed: boolean;
233
291
  }[];
234
292
  };
235
- positions: {
236
- id: string;
237
- name: string;
238
- }[];
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;
249
- name: string;
250
- employeeId: string;
251
- employmentType: "FULLTIME" | "PARTTIME";
252
- wage: {
253
- type: "HOURLY" | "MONTHLY";
254
- amount: number;
255
- };
256
- primaryPosition: {
257
- positionId: string;
258
- positionName: string;
259
- } | null;
260
- secondaryPositions: {
261
- positionId: string;
262
- positionName: string;
263
- }[];
264
- availability: {
265
- dayOfWeek: number;
266
- start: string;
267
- end: string;
268
- }[];
269
- }[];
270
- assignments: {
271
- status: "DRAFT" | "PUBLISHED" | "CONFIRMED";
272
- date: string;
273
- startTime: string;
274
- endTime: string;
275
- id: string;
276
- employeeId: string;
277
- position: {
278
- positionId: string;
279
- positionName: string;
280
- } | null;
281
- breaks: ({
282
- type: "DURATION";
283
- minutes: number;
284
- breakPayType: "PAID" | "UNPAID";
285
- } | {
286
- type: "TIME_RANGE";
287
- breakPayType: "PAID" | "UNPAID";
288
- startTime: string;
289
- endTime: string;
290
- })[];
291
- updatedAt: string;
292
- }[];
293
293
  } | null>;
294
294
  loading: import("vue").Ref<boolean, boolean>;
295
295
  rosterLoading: import("vue").Ref<boolean, boolean>;
@@ -400,8 +400,8 @@ export declare const payload: import("vue").ShallowRef<{
400
400
  timeOff: {
401
401
  type: "OFF_DAY" | "LEAVE";
402
402
  status: "PENDING" | "APPROVED" | "REJECTED" | "CANCELLED";
403
- id: string;
404
403
  employeeId: string;
404
+ id: string;
405
405
  leaveType: "UNPAID" | "ANNUAL" | "MEDICAL" | "EMERGENCY" | null;
406
406
  startDate: string;
407
407
  endDate: string;
@@ -444,6 +444,64 @@ export declare const payload: import("vue").ShallowRef<{
444
444
  } | null;
445
445
  headcount: number;
446
446
  }[];
447
+ assignments: {
448
+ status: "DRAFT" | "PUBLISHED" | "CONFIRMED";
449
+ date: string;
450
+ startTime: string;
451
+ endTime: string;
452
+ employeeId: string;
453
+ id: string;
454
+ position: {
455
+ positionId: string;
456
+ positionName: string;
457
+ } | null;
458
+ breaks: ({
459
+ type: "DURATION";
460
+ minutes: number;
461
+ breakPayType: "PAID" | "UNPAID";
462
+ } | {
463
+ type: "TIME_RANGE";
464
+ breakPayType: "PAID" | "UNPAID";
465
+ startTime: string;
466
+ endTime: string;
467
+ })[];
468
+ updatedAt: string;
469
+ }[];
470
+ positions: {
471
+ id: string;
472
+ name: string;
473
+ }[];
474
+ employees: {
475
+ minHoursPerDay?: number | null | undefined;
476
+ overtime?: {
477
+ maxHoursPerMonth: number | null;
478
+ } | undefined;
479
+ workingHours?: {
480
+ minHoursPerDay: number | null;
481
+ maxHoursPerDay: number | null;
482
+ maxHoursPerWeek: number | null;
483
+ } | undefined;
484
+ employeeId: string;
485
+ name: string;
486
+ employmentType: "FULLTIME" | "PARTTIME";
487
+ wage: {
488
+ type: "HOURLY" | "MONTHLY";
489
+ amount: number;
490
+ };
491
+ primaryPosition: {
492
+ positionId: string;
493
+ positionName: string;
494
+ } | null;
495
+ secondaryPositions: {
496
+ positionId: string;
497
+ positionName: string;
498
+ }[];
499
+ availability: {
500
+ dayOfWeek: number;
501
+ start: string;
502
+ end: string;
503
+ }[];
504
+ }[];
447
505
  settings: {
448
506
  settingsConfigured?: boolean | undefined;
449
507
  overtime: {
@@ -479,70 +537,12 @@ export declare const payload: import("vue").ShallowRef<{
479
537
  closed: boolean;
480
538
  }[];
481
539
  };
482
- positions: {
483
- id: string;
484
- name: string;
485
- }[];
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;
496
- name: string;
497
- employeeId: string;
498
- employmentType: "FULLTIME" | "PARTTIME";
499
- wage: {
500
- type: "HOURLY" | "MONTHLY";
501
- amount: number;
502
- };
503
- primaryPosition: {
504
- positionId: string;
505
- positionName: string;
506
- } | null;
507
- secondaryPositions: {
508
- positionId: string;
509
- positionName: string;
510
- }[];
511
- availability: {
512
- dayOfWeek: number;
513
- start: string;
514
- end: string;
515
- }[];
516
- }[];
517
- assignments: {
518
- status: "DRAFT" | "PUBLISHED" | "CONFIRMED";
519
- date: string;
520
- startTime: string;
521
- endTime: string;
522
- id: string;
523
- employeeId: string;
524
- position: {
525
- positionId: string;
526
- positionName: string;
527
- } | null;
528
- breaks: ({
529
- type: "DURATION";
530
- minutes: number;
531
- breakPayType: "PAID" | "UNPAID";
532
- } | {
533
- type: "TIME_RANGE";
534
- breakPayType: "PAID" | "UNPAID";
535
- startTime: string;
536
- endTime: string;
537
- })[];
538
- updatedAt: string;
539
- }[];
540
540
  } | null, {
541
541
  timeOff: {
542
542
  type: "OFF_DAY" | "LEAVE";
543
543
  status: "PENDING" | "APPROVED" | "REJECTED" | "CANCELLED";
544
- id: string;
545
544
  employeeId: string;
545
+ id: string;
546
546
  leaveType: "UNPAID" | "ANNUAL" | "MEDICAL" | "EMERGENCY" | null;
547
547
  startDate: string;
548
548
  endDate: string;
@@ -585,6 +585,64 @@ export declare const payload: import("vue").ShallowRef<{
585
585
  } | null;
586
586
  headcount: number;
587
587
  }[];
588
+ assignments: {
589
+ status: "DRAFT" | "PUBLISHED" | "CONFIRMED";
590
+ date: string;
591
+ startTime: string;
592
+ endTime: string;
593
+ employeeId: string;
594
+ id: string;
595
+ position: {
596
+ positionId: string;
597
+ positionName: string;
598
+ } | null;
599
+ breaks: ({
600
+ type: "DURATION";
601
+ minutes: number;
602
+ breakPayType: "PAID" | "UNPAID";
603
+ } | {
604
+ type: "TIME_RANGE";
605
+ breakPayType: "PAID" | "UNPAID";
606
+ startTime: string;
607
+ endTime: string;
608
+ })[];
609
+ updatedAt: string;
610
+ }[];
611
+ positions: {
612
+ id: string;
613
+ name: string;
614
+ }[];
615
+ employees: {
616
+ minHoursPerDay?: number | null | undefined;
617
+ overtime?: {
618
+ maxHoursPerMonth: number | null;
619
+ } | undefined;
620
+ workingHours?: {
621
+ minHoursPerDay: number | null;
622
+ maxHoursPerDay: number | null;
623
+ maxHoursPerWeek: number | null;
624
+ } | undefined;
625
+ employeeId: string;
626
+ name: string;
627
+ employmentType: "FULLTIME" | "PARTTIME";
628
+ wage: {
629
+ type: "HOURLY" | "MONTHLY";
630
+ amount: number;
631
+ };
632
+ primaryPosition: {
633
+ positionId: string;
634
+ positionName: string;
635
+ } | null;
636
+ secondaryPositions: {
637
+ positionId: string;
638
+ positionName: string;
639
+ }[];
640
+ availability: {
641
+ dayOfWeek: number;
642
+ start: string;
643
+ end: string;
644
+ }[];
645
+ }[];
588
646
  settings: {
589
647
  settingsConfigured?: boolean | undefined;
590
648
  overtime: {
@@ -620,64 +678,6 @@ export declare const payload: import("vue").ShallowRef<{
620
678
  closed: boolean;
621
679
  }[];
622
680
  };
623
- positions: {
624
- id: string;
625
- name: string;
626
- }[];
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;
637
- name: string;
638
- employeeId: string;
639
- employmentType: "FULLTIME" | "PARTTIME";
640
- wage: {
641
- type: "HOURLY" | "MONTHLY";
642
- amount: number;
643
- };
644
- primaryPosition: {
645
- positionId: string;
646
- positionName: string;
647
- } | null;
648
- secondaryPositions: {
649
- positionId: string;
650
- positionName: string;
651
- }[];
652
- availability: {
653
- dayOfWeek: number;
654
- start: string;
655
- end: string;
656
- }[];
657
- }[];
658
- assignments: {
659
- status: "DRAFT" | "PUBLISHED" | "CONFIRMED";
660
- date: string;
661
- startTime: string;
662
- endTime: string;
663
- id: string;
664
- employeeId: string;
665
- position: {
666
- positionId: string;
667
- positionName: string;
668
- } | null;
669
- breaks: ({
670
- type: "DURATION";
671
- minutes: number;
672
- breakPayType: "PAID" | "UNPAID";
673
- } | {
674
- type: "TIME_RANGE";
675
- breakPayType: "PAID" | "UNPAID";
676
- startTime: string;
677
- endTime: string;
678
- })[];
679
- updatedAt: string;
680
- }[];
681
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<{
682
682
  _id: string;
683
683
  name: string;
@@ -1,6 +1,6 @@
1
1
  import ScheduleAPI from '@/api/schedule';
2
2
  import type { IFdtoPosUserSummary } from '@/types/employee';
3
- import type { FdtoScheduleAssignment, FdtoScheduleAutoScheduleApplyReq, FdtoScheduleAutoScheduleApplyResult, FdtoScheduleAutoScheduleCapabilities, FdtoScheduleAutoScheduleGenerateReq, FdtoScheduleAutoScheduleResult, FdtoScheduleBulkUpdateAssignmentStatusReq, FdtoScheduleCreateEmployeeProfileReq, FdtoScheduleSaveAssignmentReq, FdtoScheduleSavePositionReq, FdtoScheduleSaveScheduleDayReq, FdtoScheduleUpdateEmployeeProfileReq, FdtoScheduleValidatePosAccessReq, FdtoScheduleCreateTimeOffReq, FdtoScheduleTimeOff, FdtoScheduleUpdateTimeOffStatusReq, FdtoScheduleSaveEmployeeConfigsReq, ScheduleReplaceDemandReq } from '@/types/schedule';
3
+ import type { FdtoScheduleAssignment, FdtoScheduleAutoScheduleApplyReq, FdtoScheduleAutoScheduleApplyResult, FdtoScheduleAutoScheduleCapabilities, FdtoScheduleAutoScheduleGenerateReq, FdtoScheduleAutoScheduleResult, FdtoScheduleBulkUpdateAssignmentStatusReq, FdtoScheduleCreateEmployeeProfileReq, FdtoScheduleSaveAssignmentReq, FdtoScheduleSavePositionReq, FdtoScheduleSaveScheduleDayReq, FdtoScheduleSaveSettingsReq, FdtoScheduleSettings, FdtoScheduleUpdateEmployeeProfileReq, FdtoScheduleValidatePosAccessReq, FdtoScheduleCreateTimeOffReq, FdtoScheduleTimeOff, FdtoScheduleUpdateTimeOffStatusReq, FdtoScheduleSaveEmployeeConfigsReq, ScheduleReplaceDemandReq } from '@/types/schedule';
4
4
  import { isoDateKey } from './composables/schedule-calendar';
5
5
  export { businessEmployees, dataVersion, employeeOutletIds, loadError, loading, outletId, payload, restaurantEmployees, employeeConfigs, rosterLoading, scheduleSetupCompleted, } from './schedule-state';
6
6
  /** dayjs-free local-date key — the board's own isoDateKey, repeated here so the store does not
@@ -21,7 +21,11 @@ export declare function setOutlet(restaurantId: string): boolean;
21
21
  * headcounts sit nowhere near it. */
22
22
  export declare function ensureRestaurantEmployeesLoaded(restaurantId: string): Promise<void>;
23
23
  export declare function saveEmployeeConfigs(configs: FdtoScheduleSaveEmployeeConfigsReq['configs']): Promise<void>;
24
+ /** Saves outlet settings and keeps the board payload authoritative for any later cache rebuild. */
25
+ export declare function saveScheduleSettings(req: FdtoScheduleSaveSettingsReq): Promise<FdtoScheduleSettings>;
24
26
  export declare function setEmployeeSchedulingEnabled(employeeId: string, enabled: boolean): Promise<void>;
27
+ /** Removes this employee's future shifts before disabling their scheduling row. */
28
+ export declare function deleteEmployeeFutureAssignments(employeeId: string, from?: string): Promise<void>;
25
29
  /** Re-reads this outlet's POS roster. The roster is what the board's rows are built from and is
26
30
  * otherwise fetched once per outlet, so any write that changes who works here (add, remove)
27
31
  * has to call this for the grid to show it. */
@@ -30,7 +34,7 @@ export declare function refreshRestaurantEmployees(): Promise<void>;
30
34
  export declare function addEmployeeToOutlet(employeeId: string, roleId: string): Promise<void>;
31
35
  /** Adds an employee to several outlets at once. Scheduling does not require a POS role, so the
32
36
  * caller may pass an empty role id and assign the POS role later from Employee. */
33
- export declare function addEmployeeToOutlets(employeeId: string, restaurantIds: string[], roleId?: string): Promise<void>;
37
+ export declare function addEmployeeToOutlets(employeeId: string, restaurantIds: string[], roleId?: string, enableScheduling?: boolean): Promise<void>;
34
38
  /** Takes a POS user off the given outlets' rosters; their other outlets are untouched. */
35
39
  export declare function removeEmployeeFromOutlets(employeeId: string, restaurantIds: string[]): Promise<void>;
36
40
  /** Takes a POS user off this outlet's roster only. */
@@ -43,6 +47,19 @@ export declare function setEmployeePosRoles(employeeId: string, assignments: {
43
47
  restaurantId: string;
44
48
  roleId: string;
45
49
  }[]): Promise<void>;
50
+ /** Saves the POS-owned part of an existing scheduling employee. The scheduling profile and the
51
+ * POS user are separate records, so passcode/master-user changes must use the POS user API too.
52
+ * A normalized comparison avoids rewriting the POS user when the employee form was unchanged. */
53
+ export declare function saveEmployeePosAccess(employeeId: string, request: {
54
+ name: string;
55
+ passcode: string;
56
+ masterUser: boolean;
57
+ masterCode: string;
58
+ roles: {
59
+ restaurantId: string;
60
+ roleId: string;
61
+ }[];
62
+ }, knownEmployee?: IFdtoPosUserSummary): Promise<void>;
46
63
  /** The cached business roster, fetched on first use. `force` re-reads it (after a write, or to
47
64
  * refresh a list that is already on screen). Concurrent callers share one request. */
48
65
  export declare function ensureBusinessEmployees(force?: boolean): Promise<IFdtoPosUserSummary[]>;
@@ -99,14 +116,16 @@ export declare function generateAutoSchedule(req: FdtoScheduleAutoScheduleGenera
99
116
  export declare function getAutoScheduleCapabilities(): Promise<FdtoScheduleAutoScheduleCapabilities>;
100
117
  export declare function applyAutoSchedule(req: FdtoScheduleAutoScheduleApplyReq): Promise<FdtoScheduleAutoScheduleApplyResult>;
101
118
  /** A one-off shift assignment — someone working these hours on this date, not answering any
102
- * Shift requirement. Deliberately does not reload: unlike `createEmployeeProfile` above, there
103
- * is nothing here a reload could bring back that the caller doesn't already have — `commitShift`
104
- * writes `assignmentId` onto the slot itself once this resolves, and a reload would only risk
105
- * discarding some OTHER unsaved shift elsewhere on the board (shifts have no write path of
106
- * their own to read back from yet). */
119
+ * Shift requirement. Keep the raw payload in sync without bumping `dataVersion`: the current
120
+ * board owns the live draft, while a later roster refresh may rebuild the week cache from this
121
+ * payload. */
107
122
  export declare function createAssignment(req: FdtoScheduleSaveAssignmentReq): Promise<FdtoScheduleAssignment>;
108
123
  export declare function updateAssignment(id: string, req: FdtoScheduleSaveAssignmentReq): Promise<FdtoScheduleAssignment | null>;
109
124
  export declare function bulkSaveAssignments(req: Parameters<typeof ScheduleAPI.bulkSaveAssignments>[1]): Promise<Awaited<ReturnType<typeof ScheduleAPI.bulkSaveAssignments>>>;
125
+ /** Replaces demand and/or assignments in one backend transaction. */
126
+ export declare function copySchedule(req: Parameters<typeof ScheduleAPI.copySchedule>[1]): Promise<Awaited<ReturnType<typeof ScheduleAPI.copySchedule>>>;
127
+ /** Clears demand and/or assignments in one backend transaction. */
128
+ export declare function clearSchedule(req: Parameters<typeof ScheduleAPI.clearSchedule>[1]): Promise<Awaited<ReturnType<typeof ScheduleAPI.clearSchedule>>>;
110
129
  /** Deletes a batch of existing assignments in a single request — see
111
130
  * `ScheduleAPI.deleteAssignments`. Deleting one is just this with a single-id array. */
112
131
  export declare function deleteAssignments(ids: string[]): Promise<void>;
@@ -109,6 +109,9 @@ export interface Employee {
109
109
  archivedPositions?: string[];
110
110
  /** One entry per visible day of the horizon; null = day off. */
111
111
  shifts: DaySlot[];
112
+ /** Dated time-off records are kept beside shifts so an off/leave card remains visible when
113
+ * a manager adds a shift on the same day. */
114
+ timeOff?: Array<LeaveSlot | null>;
112
115
  remarks: EmployeeRemark[];
113
116
  section: string;
114
117
  compGroup?: string;
@@ -141,6 +144,8 @@ export interface Employee {
141
144
  availHours?: EmployeeAvailHours[];
142
145
  /** POS sign-in code. Optional: rostering, costing and publishing never depend on it. */
143
146
  passcode?: string;
147
+ /** POS master-user code, when this employee is a master user. */
148
+ code?: string;
144
149
  masterUser?: boolean;
145
150
  }
146
151
  export interface Section {
@@ -250,6 +255,7 @@ export interface PendingChange {
250
255
  dayIdx: number;
251
256
  kind: 'add' | 'change' | 'remove';
252
257
  label: string;
258
+ conflict?: boolean;
253
259
  }
254
260
  export type NotifyChannel = 'wa' | 'push' | 'email';
255
261
  export interface ScheduleVersionSnapshot {
@@ -370,4 +376,6 @@ export interface Proposal {
370
376
  weekKey?: string;
371
377
  /** Why this person, for the card's tooltip. */
372
378
  reason?: string;
379
+ /** Set when the server already knows applying this row would be refused; it starts rejected. */
380
+ rejectReason?: string;
373
381
  }