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

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 (88) hide show
  1. package/dist/{ApprovalCodeList-J-NC4Z5M.js → ApprovalCodeList-BDpxEJpC.js} +5 -5
  2. package/dist/{AuditLogList-B1Sb8HDk.js → AuditLogList-Dgwj1gz8.js} +4 -4
  3. package/dist/{ConditionBuilderForm.vue_vue_type_script_setup_true_lang-BlXgJvsO.js → ConditionBuilderForm.vue_vue_type_script_setup_true_lang-BBK2gl7r.js} +2 -2
  4. package/dist/{EmployeeList-DprCwGC9.js → EmployeeList-C8cbVcmY.js} +6 -6
  5. package/dist/{GrantUserList-BWeZAzUC.js → GrantUserList-zul0_Dlm.js} +6 -6
  6. package/dist/{Main-Dna6CkrV.js → Main-5TsFTFpc.js} +8 -8
  7. package/dist/{Main-BZCIlbf3.js → Main-Cjo4FMZZ.js} +5 -5
  8. package/dist/{Main-CGlnX97k.js → Main-DSr9KbjT.js} +11 -11
  9. package/dist/{PermissionSetList-DuJjihft.js → PermissionSetList-CDhiiu37.js} +7 -7
  10. package/dist/{PortalPermissionEditor.vue_vue_type_script_setup_true_lang-RI8tMDoe.js → PortalPermissionEditor.vue_vue_type_script_setup_true_lang-DoK944l0.js} +971 -971
  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/{RoleList-Jn8EeYqo.js → RoleList-DEbOPQD_.js} +9 -9
  13. package/dist/ScheduleAddPositionModal.vue_vue_type_script_setup_true_lang-Cx9jFgBS.js +492 -0
  14. package/dist/ScheduleGeneralPage-B8PWNsc2.js +776 -0
  15. package/dist/{ScheduleModal.vue_vue_type_script_setup_true_lang-DLpFG65j.js → ScheduleModal.vue_vue_type_script_setup_true_lang-V1sZ_xhO.js} +858 -793
  16. package/dist/SchedulePage-ndLByVBl.js +17785 -0
  17. package/dist/{SchedulePositionPage-B7S3G8gO.js → SchedulePositionPage-Cuv4ydOK.js} +18 -18
  18. package/dist/{TeamMemberList-Bx_I5hO6.js → TeamMemberList-DpCGqHCk.js} +10 -10
  19. package/dist/{TimesheetList-DjDoOqih.js → TimesheetList-B7HAC5zS.js} +7 -7
  20. package/dist/{TimesheetList.vue_vue_type_style_index_0_scoped_63294af2_lang-pRgaW5ro.js → TimesheetList.vue_vue_type_style_index_0_scoped_63294af2_lang-BGD6m5M-.js} +3 -3
  21. package/dist/{app-uVAVK4Qd.js → app-Lh0cqgHy.js} +20 -20
  22. package/dist/app.js +1 -1
  23. package/dist/{approval-code-C9DmR4Md.js → approval-code-DHsUgc4K.js} +1 -1
  24. package/dist/{dayjs.min-CdEA8bsz.js → dayjs.min-joq4stsa.js} +1 -1
  25. package/dist/{employee-mq8mZRLE.js → employee-BPmp9c6i.js} +4 -4
  26. package/dist/{grant-user-Bv-pJ9Wt.js → grant-user-qzKHFTro.js} +1 -1
  27. package/dist/{iteration-B5TN8t9O.js → iteration-jvdTHQUx.js} +1 -1
  28. package/dist/{lodash-DxYGKySa.js → lodash-CIAEpr9s.js} +1 -1
  29. package/dist/{restaurant-D7PEQjPY.js → restaurant-BbYRA_IT.js} +4 -3
  30. package/dist/{role-DiyMdYM9.js → role-Dd1TUMhn.js} +2 -2
  31. package/dist/{rule-BGlU-EJ_.js → rule-DmxI7qEY.js} +3 -3
  32. package/dist/src/api/schedule/index.d.ts +4 -1
  33. package/dist/src/types/schedule.d.ts +3 -4
  34. package/dist/src/views/scheduling/components/ScheduleAreaRows.vue.d.ts +0 -8
  35. package/dist/src/views/scheduling/components/ScheduleBoardAreaRows.vue.d.ts +0 -5
  36. package/dist/src/views/scheduling/components/ScheduleBoardEditOverlays.vue.d.ts +0 -2
  37. package/dist/src/views/scheduling/components/ScheduleBoardEmployeeRows.vue.d.ts +0 -7
  38. package/dist/src/views/scheduling/components/ScheduleBoardInteractionOverlays.vue.d.ts +0 -6
  39. package/dist/src/views/scheduling/components/ScheduleContextMenu.vue.d.ts +1 -5
  40. package/dist/src/views/scheduling/components/{ScheduleAssignEmployeePopover.vue.d.ts → ScheduleOnboardingAssignPositionModal.vue.d.ts} +2 -2
  41. package/dist/src/views/scheduling/components/SchedulePublishShareArt.vue.d.ts +2 -0
  42. package/dist/src/views/scheduling/components/ScheduleSelect.vue.d.ts +10 -0
  43. package/dist/src/views/scheduling/components/ScheduleStaffRows.vue.d.ts +0 -10
  44. package/dist/src/views/scheduling/composables/schedule-add-employee-form.d.ts +12 -8
  45. package/dist/src/views/scheduling/composables/useScheduleAddEmployee.d.ts +21 -9
  46. package/dist/src/views/scheduling/composables/useScheduleAreaBoard.d.ts +0 -13
  47. package/dist/src/views/scheduling/composables/useScheduleAreaDragDrop.d.ts +2 -8
  48. package/dist/src/views/scheduling/composables/useScheduleAutoSchedule.d.ts +3 -0
  49. package/dist/src/views/scheduling/composables/useScheduleBoard.d.ts +29 -4
  50. package/dist/src/views/scheduling/composables/useScheduleDayTimeline.d.ts +0 -3
  51. package/dist/src/views/scheduling/composables/useScheduleDemand.d.ts +3 -5
  52. package/dist/src/views/scheduling/composables/useScheduleDemandSheet.d.ts +6 -3
  53. package/dist/src/views/scheduling/composables/useScheduleEmployeeAccess.d.ts +7 -2
  54. package/dist/src/views/scheduling/composables/useScheduleEmployeeAvailability.d.ts +1 -1
  55. package/dist/src/views/scheduling/composables/useScheduleEmployeeCandidates.d.ts +1 -0
  56. package/dist/src/views/scheduling/composables/useScheduleEmployeePersistence.d.ts +4 -0
  57. package/dist/src/views/scheduling/composables/useScheduleEmployeeValidation.d.ts +2 -0
  58. package/dist/src/views/scheduling/composables/useScheduleGapPopover.d.ts +2 -0
  59. package/dist/src/views/scheduling/composables/useScheduleOnboardingEmployees.d.ts +21 -3
  60. package/dist/src/views/scheduling/composables/useScheduleOnboardingWizard.d.ts +223 -21
  61. package/dist/src/views/scheduling/composables/useSchedulePageOverlays.d.ts +0 -4
  62. package/dist/src/views/scheduling/composables/useSchedulePositionModal.d.ts +1 -0
  63. package/dist/src/views/scheduling/composables/useSchedulePositions.d.ts +1 -1
  64. package/dist/src/views/scheduling/composables/useSchedulePublish.d.ts +2 -0
  65. package/dist/src/views/scheduling/composables/useScheduleRoster.d.ts +24 -4
  66. package/dist/src/views/scheduling/composables/useScheduleSettings.d.ts +7 -2
  67. package/dist/src/views/scheduling/composables/useScheduleShiftActions.d.ts +12 -2
  68. package/dist/src/views/scheduling/composables/useScheduleShiftDraft.d.ts +1 -0
  69. package/dist/src/views/scheduling/composables/useScheduleShiftPopover.d.ts +15 -3
  70. package/dist/src/views/scheduling/country-rules/index.d.ts +4 -4
  71. package/dist/src/views/scheduling/data.d.ts +5 -1
  72. package/dist/src/views/scheduling/schedule-state.d.ts +76 -12
  73. package/dist/src/views/scheduling/schedule-store.d.ts +13 -5
  74. package/dist/src/views/scheduling/types.d.ts +22 -5
  75. package/dist/style.css +1 -1
  76. package/dist/tsconfig.app.tsbuildinfo +1 -1
  77. package/dist/{useAppStore-d_nHyK5u.js → useAppStore-BoLkvkE2.js} +1 -1
  78. package/dist/{useLoading-JFoghhRz.js → useLoading-Ch1AUYT1.js} +1 -1
  79. package/dist/{useReportPermissions-CV0b4SBk.js → useReportPermissions-DM3GOFCC.js} +3 -3
  80. package/package.json +1 -1
  81. package/dist/ScheduleAddPositionModal.vue_vue_type_script_setup_true_lang-CV0DRK1L.js +0 -470
  82. package/dist/ScheduleGeneralPage-DMMqTMQs.js +0 -666
  83. package/dist/SchedulePage-3MWnazgL.js +0 -18251
  84. package/dist/src/views/scheduling/components/ScheduleAllShiftsRow.vue.d.ts +0 -22
  85. package/dist/src/views/scheduling/components/ScheduleStackPopover.vue.d.ts +0 -14
  86. package/dist/src/views/scheduling/composables/useScheduleAllShiftsRow.d.ts +0 -77
  87. package/dist/src/views/scheduling/composables/useScheduleAssign.d.ts +0 -124
  88. package/dist/src/views/scheduling/composables/useScheduleOpenShiftCard.d.ts +0 -23
@@ -37,10 +37,12 @@ export declare function useScheduleOnboardingWizard(board: ScheduleBoardApi, add
37
37
  contractHours?: number | undefined;
38
38
  rate: number;
39
39
  positions: string[];
40
+ archivedPositions?: string[] | undefined;
40
41
  shifts: ({
41
42
  start: string;
42
43
  end: string;
43
44
  role: string;
45
+ positionId?: string | undefined;
44
46
  status: import("../types").ShiftStatus;
45
47
  clock?: {
46
48
  in: string | null;
@@ -89,6 +91,7 @@ export declare function useScheduleOnboardingWizard(board: ScheduleBoardApi, add
89
91
  start: string;
90
92
  end: string;
91
93
  role: string;
94
+ positionId?: string | undefined;
92
95
  status: import("../types").ShiftStatus;
93
96
  clock?: {
94
97
  in: string | null;
@@ -127,9 +130,16 @@ export declare function useScheduleOnboardingWizard(board: ScheduleBoardApi, add
127
130
  payBasis?: "hourly" | "monthly" | undefined;
128
131
  payAmount?: number | undefined;
129
132
  maxHours?: number | undefined;
130
- maxOtHours?: number | undefined;
131
133
  minHours?: number | undefined;
132
- otAfterDaily?: number | undefined;
134
+ minHoursPerDay?: number | undefined;
135
+ workingHours?: {
136
+ minHoursPerDay: number | null;
137
+ maxHoursPerDay: number | null;
138
+ maxHoursPerWeek: number | null;
139
+ } | undefined;
140
+ overtime?: {
141
+ maxHoursPerMonth: number | null;
142
+ } | undefined;
133
143
  preferences?: string[] | undefined;
134
144
  seniority?: "senior" | "junior" | "" | undefined;
135
145
  availDays?: boolean[] | undefined;
@@ -152,10 +162,12 @@ export declare function useScheduleOnboardingWizard(board: ScheduleBoardApi, add
152
162
  contractHours?: number | undefined;
153
163
  rate: number;
154
164
  positions: string[];
165
+ archivedPositions?: string[] | undefined;
155
166
  shifts: ({
156
167
  start: string;
157
168
  end: string;
158
169
  role: string;
170
+ positionId?: string | undefined;
159
171
  status: import("../types").ShiftStatus;
160
172
  clock?: {
161
173
  in: string | null;
@@ -204,6 +216,7 @@ export declare function useScheduleOnboardingWizard(board: ScheduleBoardApi, add
204
216
  start: string;
205
217
  end: string;
206
218
  role: string;
219
+ positionId?: string | undefined;
207
220
  status: import("../types").ShiftStatus;
208
221
  clock?: {
209
222
  in: string | null;
@@ -242,9 +255,16 @@ export declare function useScheduleOnboardingWizard(board: ScheduleBoardApi, add
242
255
  payBasis?: "hourly" | "monthly" | undefined;
243
256
  payAmount?: number | undefined;
244
257
  maxHours?: number | undefined;
245
- maxOtHours?: number | undefined;
246
258
  minHours?: number | undefined;
247
- otAfterDaily?: number | undefined;
259
+ minHoursPerDay?: number | undefined;
260
+ workingHours?: {
261
+ minHoursPerDay: number | null;
262
+ maxHoursPerDay: number | null;
263
+ maxHoursPerWeek: number | null;
264
+ } | undefined;
265
+ overtime?: {
266
+ maxHoursPerMonth: number | null;
267
+ } | undefined;
248
268
  preferences?: string[] | undefined;
249
269
  seniority?: "senior" | "junior" | "" | undefined;
250
270
  availDays?: boolean[] | undefined;
@@ -333,6 +353,7 @@ export declare function useScheduleOnboardingWizard(board: ScheduleBoardApi, add
333
353
  start: string;
334
354
  end: string;
335
355
  role: string;
356
+ positionId?: string | undefined;
336
357
  status: import("../types").ShiftStatus;
337
358
  clock?: {
338
359
  in: string | null;
@@ -381,6 +402,7 @@ export declare function useScheduleOnboardingWizard(board: ScheduleBoardApi, add
381
402
  start: string;
382
403
  end: string;
383
404
  role: string;
405
+ positionId?: string | undefined;
384
406
  status: import("../types").ShiftStatus;
385
407
  clock?: {
386
408
  in: string | null;
@@ -421,6 +443,7 @@ export declare function useScheduleOnboardingWizard(board: ScheduleBoardApi, add
421
443
  start: string;
422
444
  end: string;
423
445
  role: string;
446
+ positionId?: string | undefined;
424
447
  status: import("../types").ShiftStatus;
425
448
  clock?: {
426
449
  in: string | null;
@@ -469,6 +492,7 @@ export declare function useScheduleOnboardingWizard(board: ScheduleBoardApi, add
469
492
  start: string;
470
493
  end: string;
471
494
  role: string;
495
+ positionId?: string | undefined;
472
496
  status: import("../types").ShiftStatus;
473
497
  clock?: {
474
498
  in: string | null;
@@ -514,6 +538,7 @@ export declare function useScheduleOnboardingWizard(board: ScheduleBoardApi, add
514
538
  rangeLabel: import("vue").ComputedRef<string>;
515
539
  isToday: (dayIdx: number) => boolean;
516
540
  dateKey: (dayIdx: number) => string | null;
541
+ dateKeyAt: (offset: number, dayIdx: number) => string | null;
517
542
  navigate: (delta: number) => void;
518
543
  goToday: () => void;
519
544
  membersOf: (sectionId: string) => import("../types").Employee[];
@@ -564,7 +589,7 @@ export declare function useScheduleOnboardingWizard(board: ScheduleBoardApi, add
564
589
  pendingDeleteId: import("vue").Ref<string | null, string | null>;
565
590
  saving: import("vue").Ref<boolean, boolean>;
566
591
  error: import("vue").Ref<string | null, string | null>;
567
- usageCountFor: (name: string) => number;
592
+ usageCountFor: (positionId: string) => number;
568
593
  startAdd: () => void;
569
594
  cancelAdd: () => void;
570
595
  confirmAdd: () => Promise<void>;
@@ -678,10 +703,12 @@ export declare function useScheduleOnboardingWizard(board: ScheduleBoardApi, add
678
703
  contractHours?: number | undefined;
679
704
  rate: number;
680
705
  positions: string[];
706
+ archivedPositions?: string[] | undefined;
681
707
  shifts: ({
682
708
  start: string;
683
709
  end: string;
684
710
  role: string;
711
+ positionId?: string | undefined;
685
712
  status: import("../types").ShiftStatus;
686
713
  clock?: {
687
714
  in: string | null;
@@ -730,6 +757,7 @@ export declare function useScheduleOnboardingWizard(board: ScheduleBoardApi, add
730
757
  start: string;
731
758
  end: string;
732
759
  role: string;
760
+ positionId?: string | undefined;
733
761
  status: import("../types").ShiftStatus;
734
762
  clock?: {
735
763
  in: string | null;
@@ -768,9 +796,16 @@ export declare function useScheduleOnboardingWizard(board: ScheduleBoardApi, add
768
796
  payBasis?: "hourly" | "monthly" | undefined;
769
797
  payAmount?: number | undefined;
770
798
  maxHours?: number | undefined;
771
- maxOtHours?: number | undefined;
772
799
  minHours?: number | undefined;
773
- otAfterDaily?: number | undefined;
800
+ minHoursPerDay?: number | undefined;
801
+ workingHours?: {
802
+ minHoursPerDay: number | null;
803
+ maxHoursPerDay: number | null;
804
+ maxHoursPerWeek: number | null;
805
+ } | undefined;
806
+ overtime?: {
807
+ maxHoursPerMonth: number | null;
808
+ } | undefined;
774
809
  preferences?: string[] | undefined;
775
810
  seniority?: "senior" | "junior" | "" | undefined;
776
811
  availDays?: boolean[] | undefined;
@@ -819,10 +854,12 @@ export declare function useScheduleOnboardingWizard(board: ScheduleBoardApi, add
819
854
  contractHours?: number | undefined;
820
855
  rate: number;
821
856
  positions: string[];
857
+ archivedPositions?: string[] | undefined;
822
858
  shifts: ({
823
859
  start: string;
824
860
  end: string;
825
861
  role: string;
862
+ positionId?: string | undefined;
826
863
  status: import("../types").ShiftStatus;
827
864
  clock?: {
828
865
  in: string | null;
@@ -871,6 +908,7 @@ export declare function useScheduleOnboardingWizard(board: ScheduleBoardApi, add
871
908
  start: string;
872
909
  end: string;
873
910
  role: string;
911
+ positionId?: string | undefined;
874
912
  status: import("../types").ShiftStatus;
875
913
  clock?: {
876
914
  in: string | null;
@@ -909,9 +947,16 @@ export declare function useScheduleOnboardingWizard(board: ScheduleBoardApi, add
909
947
  payBasis?: "hourly" | "monthly" | undefined;
910
948
  payAmount?: number | undefined;
911
949
  maxHours?: number | undefined;
912
- maxOtHours?: number | undefined;
913
950
  minHours?: number | undefined;
914
- otAfterDaily?: number | undefined;
951
+ minHoursPerDay?: number | undefined;
952
+ workingHours?: {
953
+ minHoursPerDay: number | null;
954
+ maxHoursPerDay: number | null;
955
+ maxHoursPerWeek: number | null;
956
+ } | undefined;
957
+ overtime?: {
958
+ maxHoursPerMonth: number | null;
959
+ } | undefined;
915
960
  preferences?: string[] | undefined;
916
961
  seniority?: "senior" | "junior" | "" | undefined;
917
962
  availDays?: boolean[] | undefined;
@@ -935,10 +980,12 @@ export declare function useScheduleOnboardingWizard(board: ScheduleBoardApi, add
935
980
  contractHours?: number | undefined;
936
981
  rate: number;
937
982
  positions: string[];
983
+ archivedPositions?: string[] | undefined;
938
984
  shifts: ({
939
985
  start: string;
940
986
  end: string;
941
987
  role: string;
988
+ positionId?: string | undefined;
942
989
  status: import("../types").ShiftStatus;
943
990
  clock?: {
944
991
  in: string | null;
@@ -987,6 +1034,7 @@ export declare function useScheduleOnboardingWizard(board: ScheduleBoardApi, add
987
1034
  start: string;
988
1035
  end: string;
989
1036
  role: string;
1037
+ positionId?: string | undefined;
990
1038
  status: import("../types").ShiftStatus;
991
1039
  clock?: {
992
1040
  in: string | null;
@@ -1025,9 +1073,16 @@ export declare function useScheduleOnboardingWizard(board: ScheduleBoardApi, add
1025
1073
  payBasis?: "hourly" | "monthly" | undefined;
1026
1074
  payAmount?: number | undefined;
1027
1075
  maxHours?: number | undefined;
1028
- maxOtHours?: number | undefined;
1029
1076
  minHours?: number | undefined;
1030
- otAfterDaily?: number | undefined;
1077
+ minHoursPerDay?: number | undefined;
1078
+ workingHours?: {
1079
+ minHoursPerDay: number | null;
1080
+ maxHoursPerDay: number | null;
1081
+ maxHoursPerWeek: number | null;
1082
+ } | undefined;
1083
+ overtime?: {
1084
+ maxHoursPerMonth: number | null;
1085
+ } | undefined;
1031
1086
  preferences?: string[] | undefined;
1032
1087
  seniority?: "senior" | "junior" | "" | undefined;
1033
1088
  availDays?: boolean[] | undefined;
@@ -1039,7 +1094,142 @@ export declare function useScheduleOnboardingWizard(board: ScheduleBoardApi, add
1039
1094
  masterUser?: boolean | undefined;
1040
1095
  }[];
1041
1096
  posPicker: import("vue").Ref<string | null, string | null>;
1042
- togglePicker: (key: string) => void;
1097
+ posPickerLabel: import("vue").Ref<string, string>;
1098
+ posPickQuery: import("vue").Ref<string, string>;
1099
+ posPickSelected: import("vue").Ref<Set<number> & Omit<Set<number>, keyof Set<any>>, Set<number> | (Set<number> & Omit<Set<number>, keyof Set<any>>)>;
1100
+ pickerCandidates: import("vue").ComputedRef<{
1101
+ id: number;
1102
+ sourceId: string;
1103
+ name: string;
1104
+ employmentType: "FULLTIME" | "PARTTIME";
1105
+ role: string;
1106
+ initials: string;
1107
+ color: string;
1108
+ weekHours: number;
1109
+ pct: number;
1110
+ contractHours?: number | undefined;
1111
+ rate: number;
1112
+ positions: string[];
1113
+ archivedPositions?: string[] | undefined;
1114
+ shifts: ({
1115
+ start: string;
1116
+ end: string;
1117
+ role: string;
1118
+ positionId?: string | undefined;
1119
+ status: import("../types").ShiftStatus;
1120
+ clock?: {
1121
+ in: string | null;
1122
+ out: string | null;
1123
+ status: "on-time" | "late" | "early-out" | "absent";
1124
+ } | undefined;
1125
+ conflict?: boolean | undefined;
1126
+ conflictReason?: string | undefined;
1127
+ openId?: number | undefined;
1128
+ breakMins?: number | undefined;
1129
+ breaks?: ({
1130
+ type: "DURATION";
1131
+ minutes: number;
1132
+ breakPayType: "PAID" | "UNPAID";
1133
+ } | {
1134
+ type: "TIME_RANGE";
1135
+ startTime: string;
1136
+ endTime: string;
1137
+ breakPayType: "PAID" | "UNPAID";
1138
+ })[] | undefined;
1139
+ assignmentId?: string | undefined;
1140
+ updatedAt?: string | undefined;
1141
+ splitGroupId?: string | undefined;
1142
+ } | {
1143
+ timeOff: "approved" | "pending";
1144
+ requestId?: string | undefined;
1145
+ type?: "OFF_DAY" | "LEAVE" | undefined;
1146
+ leaveType?: "ANNUAL" | "MEDICAL" | "EMERGENCY" | "UNPAID" | undefined;
1147
+ reason: string;
1148
+ half?: boolean | undefined;
1149
+ halfPart?: "AM" | "PM" | undefined;
1150
+ from?: string | undefined;
1151
+ to?: string | undefined;
1152
+ appliedOn?: string | undefined;
1153
+ note?: string | undefined;
1154
+ cert?: {
1155
+ name: string;
1156
+ size: string;
1157
+ } | null | undefined;
1158
+ bal?: {
1159
+ type: string;
1160
+ entitled: number;
1161
+ used: number;
1162
+ } | undefined;
1163
+ } | {
1164
+ start: string;
1165
+ end: string;
1166
+ role: string;
1167
+ positionId?: string | undefined;
1168
+ status: import("../types").ShiftStatus;
1169
+ clock?: {
1170
+ in: string | null;
1171
+ out: string | null;
1172
+ status: "on-time" | "late" | "early-out" | "absent";
1173
+ } | undefined;
1174
+ conflict?: boolean | undefined;
1175
+ conflictReason?: string | undefined;
1176
+ openId?: number | undefined;
1177
+ breakMins?: number | undefined;
1178
+ breaks?: ({
1179
+ type: "DURATION";
1180
+ minutes: number;
1181
+ breakPayType: "PAID" | "UNPAID";
1182
+ } | {
1183
+ type: "TIME_RANGE";
1184
+ startTime: string;
1185
+ endTime: string;
1186
+ breakPayType: "PAID" | "UNPAID";
1187
+ })[] | undefined;
1188
+ assignmentId?: string | undefined;
1189
+ updatedAt?: string | undefined;
1190
+ splitGroupId?: string | undefined;
1191
+ }[] | null)[];
1192
+ remarks: {
1193
+ author: string;
1194
+ date: string;
1195
+ type: "note" | "warning" | "praise";
1196
+ text: string;
1197
+ }[];
1198
+ section: string;
1199
+ compGroup?: string | undefined;
1200
+ mobile?: string | undefined;
1201
+ dial?: string | undefined;
1202
+ locations?: string[] | undefined;
1203
+ payBasis?: "hourly" | "monthly" | undefined;
1204
+ payAmount?: number | undefined;
1205
+ maxHours?: number | undefined;
1206
+ minHours?: number | undefined;
1207
+ minHoursPerDay?: number | undefined;
1208
+ workingHours?: {
1209
+ minHoursPerDay: number | null;
1210
+ maxHoursPerDay: number | null;
1211
+ maxHoursPerWeek: number | null;
1212
+ } | undefined;
1213
+ overtime?: {
1214
+ maxHoursPerMonth: number | null;
1215
+ } | undefined;
1216
+ preferences?: string[] | undefined;
1217
+ seniority?: "senior" | "junior" | "" | undefined;
1218
+ availDays?: boolean[] | undefined;
1219
+ availHours?: {
1220
+ from: string;
1221
+ to: string;
1222
+ }[] | undefined;
1223
+ passcode?: string | undefined;
1224
+ masterUser?: boolean | undefined;
1225
+ }[]>;
1226
+ pickerAllChecked: import("vue").ComputedRef<boolean>;
1227
+ pickerSomeChecked: import("vue").ComputedRef<boolean>;
1228
+ openPositionPicker: (key: string, label: string) => void;
1229
+ closePositionPicker: () => void;
1230
+ pickerToggleOne: (empId: number, checked: boolean) => void;
1231
+ pickerToggleAll: (checked: boolean) => void;
1232
+ applyPositionPicker: () => Promise<void>;
1043
1233
  assignTo: (empId: number, key: string) => Promise<void>;
1044
1234
  unassign: (empId: number, key: string) => Promise<void>;
1045
1235
  employeeCount: import("vue").ComputedRef<number>;
@@ -1057,10 +1247,11 @@ export declare function useScheduleOnboardingWizard(board: ScheduleBoardApi, add
1057
1247
  payBasis: "hourly" | "monthly";
1058
1248
  payAmount: string;
1059
1249
  maxHours: string;
1250
+ maxHoursPerDay: string;
1060
1251
  minHours: string;
1061
- otEnabled: boolean;
1062
- otAfterDaily: string;
1063
- maxOtHours: string;
1252
+ workingHoursEnabled: boolean;
1253
+ overtimeEnabled: boolean;
1254
+ maxHoursPerMonth: string;
1064
1255
  availDays: boolean[];
1065
1256
  availHours: {
1066
1257
  from: string;
@@ -1074,7 +1265,10 @@ export declare function useScheduleOnboardingWizard(board: ScheduleBoardApi, add
1074
1265
  masterUser: boolean;
1075
1266
  masterCode: string;
1076
1267
  posAccessEnabled: boolean;
1077
- posRoleId: string;
1268
+ posRoles: {
1269
+ outlet: string;
1270
+ roleId: string;
1271
+ }[];
1078
1272
  };
1079
1273
  sectionId: import("vue").Ref<string, string>;
1080
1274
  isEditing: import("vue").ComputedRef<boolean>;
@@ -1086,9 +1280,11 @@ export declare function useScheduleOnboardingWizard(board: ScheduleBoardApi, add
1086
1280
  dayLit: (index: number) => boolean;
1087
1281
  avLabel: import("vue").ComputedRef<"Weekly availability" | "Time off days">;
1088
1282
  avAllLabel: import("vue").ComputedRef<"Clear all" | "Select all" | "No days off" | "Every day off">;
1089
- maxHoursPlaceholder: import("vue").ComputedRef<"Hours per week" | "No cap">;
1090
- otAfterDailyPlaceholder: import("vue").ComputedRef<string>;
1091
- toggleOt: () => void;
1283
+ maxHoursPlaceholder: import("vue").ComputedRef<string>;
1284
+ minHoursPlaceholder: import("vue").ComputedRef<string>;
1285
+ maxHoursPerDayPlaceholder: import("vue").ComputedRef<string>;
1286
+ maxHoursPerMonthPlaceholder: import("vue").ComputedRef<string>;
1287
+ toggleOvertime: () => void;
1092
1288
  payUnit: import("vue").ComputedRef<"/month" | "/hour">;
1093
1289
  effectiveRate: import("vue").ComputedRef<number>;
1094
1290
  passcodeValue: import("vue").ComputedRef<string>;
@@ -1103,6 +1299,7 @@ export declare function useScheduleOnboardingWizard(board: ScheduleBoardApi, add
1103
1299
  payLine: import("vue").ComputedRef<string>;
1104
1300
  nameError: import("vue").ComputedRef<boolean>;
1105
1301
  passError: import("vue").ComputedRef<boolean>;
1302
+ posRolesError: import("vue").ComputedRef<boolean>;
1106
1303
  availabilityError: import("vue").ComputedRef<boolean>;
1107
1304
  saving: import("vue").Ref<boolean, boolean>;
1108
1305
  saveError: import("vue").Ref<string | null, string | null>;
@@ -1131,8 +1328,13 @@ export declare function useScheduleOnboardingWizard(board: ScheduleBoardApi, add
1131
1328
  setPasscodeDigit: (index: number, value: string) => void;
1132
1329
  generatePasscode: () => void;
1133
1330
  togglePosAccess: () => void;
1134
- setPosRole: (roleId: string) => void;
1135
- posRoleOptions: import("vue").ComputedRef<import("../../../types/role").Role[]>;
1331
+ addPosRoleRow: () => void;
1332
+ removePosRoleRow: (index: number) => void;
1333
+ isCurrentOutletRow: (index: number) => boolean;
1334
+ setPosRoleOutlet: (index: number, outlet: string) => void;
1335
+ setPosRoleId: (index: number, roleId: string) => void;
1336
+ posRoleOptionsFor: (outlet: string) => import("../../../types/role").Role[];
1337
+ posRolesHint: import("vue").ComputedRef<"" | "No outlet assigned, so their passcode will not open a till yet." | "The same outlet is listed twice — only the last role on it will apply.">;
1136
1338
  create: () => Promise<boolean>;
1137
1339
  };
1138
1340
  openWizard: () => void;
@@ -1,9 +1,7 @@
1
1
  import { ref } from 'vue';
2
2
  import type { ScheduleAddPickApi } from './useScheduleAddPick';
3
- import type { ScheduleAllShiftsRowApi } from './useScheduleAllShiftsRow';
4
3
  import type { ScheduleDayNoteApi } from './useScheduleDayNote';
5
4
  import type { ScheduleGapPopoverApi } from './useScheduleGapPopover';
6
- import type { ScheduleOpenShiftCardApi } from './useScheduleOpenShiftCard';
7
5
  import type { ScheduleShiftActionsApi } from './useScheduleShiftActions';
8
6
  import type { ScheduleTimePickerApi } from './useScheduleTimePicker';
9
7
  export type ScheduleTopbarMenu = 'actions' | 'export';
@@ -14,12 +12,10 @@ export interface ScheduleTopbarApi {
14
12
  }
15
13
  export declare function useSchedulePageOverlays(apis: {
16
14
  dayNote: ScheduleDayNoteApi;
17
- allShiftsRow: ScheduleAllShiftsRowApi;
18
15
  gap: ScheduleGapPopoverApi;
19
16
  timePicker: ScheduleTimePickerApi;
20
17
  addPick: ScheduleAddPickApi;
21
18
  shiftActions: ScheduleShiftActionsApi;
22
- openShiftCard: ScheduleOpenShiftCardApi;
23
19
  }): {
24
20
  topbar: ScheduleTopbarApi;
25
21
  };
@@ -4,6 +4,7 @@ export interface PositionModalPerson {
4
4
  initials: string;
5
5
  /** Positions they already hold, main first — the row's second line. */
6
6
  held: string[];
7
+ heldPositionIds: string[];
7
8
  }
8
9
  export interface PositionModalDone {
9
10
  name: string;
@@ -18,7 +18,7 @@ export declare function useSchedulePositions(options?: {
18
18
  pendingDeleteId: import("vue").Ref<string | null, string | null>;
19
19
  saving: import("vue").Ref<boolean, boolean>;
20
20
  error: import("vue").Ref<string | null, string | null>;
21
- usageCountFor: (name: string) => number;
21
+ usageCountFor: (positionId: string) => number;
22
22
  startAdd: () => void;
23
23
  cancelAdd: () => void;
24
24
  confirmAdd: () => Promise<void>;
@@ -37,6 +37,7 @@ export declare function useSchedulePublish(board: ScheduleBoardApi): {
37
37
  start: string;
38
38
  end: string;
39
39
  role: string;
40
+ positionId?: string | undefined;
40
41
  status: import("../types").ShiftStatus;
41
42
  clock?: {
42
43
  in: string | null;
@@ -85,6 +86,7 @@ export declare function useSchedulePublish(board: ScheduleBoardApi): {
85
86
  start: string;
86
87
  end: string;
87
88
  role: string;
89
+ positionId?: string | undefined;
88
90
  status: import("../types").ShiftStatus;
89
91
  clock?: {
90
92
  in: string | null;
@@ -22,10 +22,12 @@ export declare function useScheduleRoster(board: ScheduleBoardApi): {
22
22
  contractHours?: number | undefined;
23
23
  rate: number;
24
24
  positions: string[];
25
+ archivedPositions?: string[] | undefined;
25
26
  shifts: ({
26
27
  start: string;
27
28
  end: string;
28
29
  role: string;
30
+ positionId?: string | undefined;
29
31
  status: import("../types").ShiftStatus;
30
32
  clock?: {
31
33
  in: string | null;
@@ -74,6 +76,7 @@ export declare function useScheduleRoster(board: ScheduleBoardApi): {
74
76
  start: string;
75
77
  end: string;
76
78
  role: string;
79
+ positionId?: string | undefined;
77
80
  status: import("../types").ShiftStatus;
78
81
  clock?: {
79
82
  in: string | null;
@@ -112,9 +115,16 @@ export declare function useScheduleRoster(board: ScheduleBoardApi): {
112
115
  payBasis?: "hourly" | "monthly" | undefined;
113
116
  payAmount?: number | undefined;
114
117
  maxHours?: number | undefined;
115
- maxOtHours?: number | undefined;
116
118
  minHours?: number | undefined;
117
- otAfterDaily?: number | undefined;
119
+ minHoursPerDay?: number | undefined;
120
+ workingHours?: {
121
+ minHoursPerDay: number | null;
122
+ maxHoursPerDay: number | null;
123
+ maxHoursPerWeek: number | null;
124
+ } | undefined;
125
+ overtime?: {
126
+ maxHoursPerMonth: number | null;
127
+ } | undefined;
118
128
  preferences?: string[] | undefined;
119
129
  seniority?: "senior" | "junior" | "" | undefined;
120
130
  availDays?: boolean[] | undefined;
@@ -138,10 +148,12 @@ export declare function useScheduleRoster(board: ScheduleBoardApi): {
138
148
  contractHours?: number | undefined;
139
149
  rate: number;
140
150
  positions: string[];
151
+ archivedPositions?: string[] | undefined;
141
152
  shifts: ({
142
153
  start: string;
143
154
  end: string;
144
155
  role: string;
156
+ positionId?: string | undefined;
145
157
  status: import("../types").ShiftStatus;
146
158
  clock?: {
147
159
  in: string | null;
@@ -190,6 +202,7 @@ export declare function useScheduleRoster(board: ScheduleBoardApi): {
190
202
  start: string;
191
203
  end: string;
192
204
  role: string;
205
+ positionId?: string | undefined;
193
206
  status: import("../types").ShiftStatus;
194
207
  clock?: {
195
208
  in: string | null;
@@ -228,9 +241,16 @@ export declare function useScheduleRoster(board: ScheduleBoardApi): {
228
241
  payBasis?: "hourly" | "monthly" | undefined;
229
242
  payAmount?: number | undefined;
230
243
  maxHours?: number | undefined;
231
- maxOtHours?: number | undefined;
232
244
  minHours?: number | undefined;
233
- otAfterDaily?: number | undefined;
245
+ minHoursPerDay?: number | undefined;
246
+ workingHours?: {
247
+ minHoursPerDay: number | null;
248
+ maxHoursPerDay: number | null;
249
+ maxHoursPerWeek: number | null;
250
+ } | undefined;
251
+ overtime?: {
252
+ maxHoursPerMonth: number | null;
253
+ } | undefined;
234
254
  preferences?: string[] | undefined;
235
255
  seniority?: "senior" | "junior" | "" | undefined;
236
256
  availDays?: boolean[] | undefined;
@@ -1,4 +1,4 @@
1
- export type ScheduleSettingsSection = 'budget' | 'payrates' | 'overtime' | 'notify';
1
+ export type ScheduleSettingsSection = 'budget' | 'payrates' | 'overtime' | 'workingHours' | 'notify';
2
2
  /** Keep unsupported sections out of the navigation until their API fields exist. */
3
3
  export declare const SETTINGS_SECTIONS: {
4
4
  key: ScheduleSettingsSection;
@@ -22,7 +22,12 @@ export declare function useScheduleSettings(): {
22
22
  overtime: number;
23
23
  };
24
24
  };
25
- otCapHours: number;
25
+ otCapHours: number | null;
26
+ workingHours: {
27
+ minHoursPerDay: number | null;
28
+ maxHoursPerDay: number | null;
29
+ maxHoursPerWeek: number | null;
30
+ };
26
31
  };
27
32
  dirty: import("vue").ComputedRef<boolean>;
28
33
  loading: import("vue").Ref<boolean, boolean>;
@@ -69,10 +69,12 @@ export declare function useScheduleShiftActions(board: ScheduleBoardApi, options
69
69
  contractHours?: number | undefined;
70
70
  rate: number;
71
71
  positions: string[];
72
+ archivedPositions?: string[] | undefined;
72
73
  shifts: ({
73
74
  start: string;
74
75
  end: string;
75
76
  role: string;
77
+ positionId?: string | undefined;
76
78
  status: import("../types").ShiftStatus;
77
79
  clock?: {
78
80
  in: string | null;
@@ -121,6 +123,7 @@ export declare function useScheduleShiftActions(board: ScheduleBoardApi, options
121
123
  start: string;
122
124
  end: string;
123
125
  role: string;
126
+ positionId?: string | undefined;
124
127
  status: import("../types").ShiftStatus;
125
128
  clock?: {
126
129
  in: string | null;
@@ -159,9 +162,16 @@ export declare function useScheduleShiftActions(board: ScheduleBoardApi, options
159
162
  payBasis?: "hourly" | "monthly" | undefined;
160
163
  payAmount?: number | undefined;
161
164
  maxHours?: number | undefined;
162
- maxOtHours?: number | undefined;
163
165
  minHours?: number | undefined;
164
- otAfterDaily?: number | undefined;
166
+ minHoursPerDay?: number | undefined;
167
+ workingHours?: {
168
+ minHoursPerDay: number | null;
169
+ maxHoursPerDay: number | null;
170
+ maxHoursPerWeek: number | null;
171
+ } | undefined;
172
+ overtime?: {
173
+ maxHoursPerMonth: number | null;
174
+ } | undefined;
165
175
  preferences?: string[] | undefined;
166
176
  seniority?: "senior" | "junior" | "" | undefined;
167
177
  availDays?: boolean[] | undefined;
@@ -25,6 +25,7 @@ export declare function useScheduleShiftDraft(): {
25
25
  end: string;
26
26
  }[]>;
27
27
  role: import("vue").Ref<string, string>;
28
+ positionId: import("vue").Ref<string | undefined, string | undefined>;
28
29
  required: import("vue").Ref<number, number>;
29
30
  sen: import("vue").Ref<"" | "senior" | "junior", "" | "senior" | "junior">;
30
31
  empType: import("vue").Ref<"" | "full" | "part", "" | "full" | "part">;