@feedmepos/mf-hrm-portal 2.2.5-dev.4 → 2.2.5-dev.5

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 (152) hide show
  1. package/dist/{ApprovalCodeList-D0B_X3Sf.js → ApprovalCodeList-DqR6ouRS.js} +4 -4
  2. package/dist/{AuditLogList-D9anf4YQ.js → AuditLogList-CG2BiQX6.js} +17 -18
  3. package/dist/{ConditionBuilderForm.vue_vue_type_script_setup_true_lang-4oENMRO3.js → ConditionBuilderForm.vue_vue_type_script_setup_true_lang-C7nMXx8R.js} +2 -2
  4. package/dist/{EmployeeList-DREDu3Ou.js → EmployeeList-CGZzol7v.js} +27 -29
  5. package/dist/{FormItem.vue_vue_type_script_setup_true_lang-CUnlKsxk.js → FormItem.vue_vue_type_script_setup_true_lang-DPT2FoIc.js} +1 -1
  6. package/dist/{GrantUserList-CLDshEN9.js → GrantUserList-D1fBv1KQ.js} +5 -5
  7. package/dist/{Main-lqlb8tPw.js → Main-BOt-Y1wv.js} +9 -9
  8. package/dist/{Main-QhQxU593.js → Main-CFoZot3K.js} +5 -5
  9. package/dist/{Main-DtMaG42L.js → Main-zg7fbEtx.js} +2 -2
  10. package/dist/{PermissionSetList-BK8yBpJJ.js → PermissionSetList-bJpwD62u.js} +10 -11
  11. package/dist/{PortalPermissionEditor.vue_vue_type_script_setup_true_lang-uSdvH81B.js → PortalPermissionEditor.vue_vue_type_script_setup_true_lang-C4C8Cvf4.js} +911 -912
  12. package/dist/{RoleList-D6AX6BqB.js → RoleList-DUVZ7dkO.js} +7 -7
  13. package/dist/SelectFilter-ATOm0hdn.js +269 -0
  14. package/dist/{TeamMemberList-BM5JoR6J.js → TeamMemberList-DAnM-DSd.js} +34 -36
  15. package/dist/{TimesheetList-Ch_f_PD5.js → TimesheetList-5sdcWjEf.js} +53 -54
  16. package/dist/{TimesheetList.vue_vue_type_style_index_0_scoped_63294af2_lang-CxqxqwyD.js → TimesheetList.vue_vue_type_style_index_0_scoped_63294af2_lang-GhPw_mCW.js} +2 -2
  17. package/dist/{app-tDHL6k4G.js → app-D-cQzgkr.js} +2299 -2884
  18. package/dist/app.js +1 -1
  19. package/dist/{dayjs.min-B_XWc0Hu.js → dayjs.min-DqFS0ebn.js} +1 -1
  20. package/dist/employee-DvvnCQMK.js +204 -0
  21. package/dist/{index-jxRluZiW.js → iteration-BjW8Cs9e.js} +726 -698
  22. package/dist/{lodash-D5vM3paU.js → lodash-wjhSWqez.js} +1 -1
  23. package/dist/{role-7ccipEEe.js → role-CEUcSmA6.js} +3 -4
  24. package/dist/{rule-7faruCdz.js → rule-Df8LOhxm.js} +70 -71
  25. package/dist/src/router/shared.d.ts +1 -4
  26. package/dist/src/views/team/components/PortalConditionForm.vue.d.ts +2 -2
  27. package/dist/src/views/team/condition-builders/ConditionBuilderForm.vue.d.ts +2 -2
  28. package/dist/style.css +1 -1
  29. package/dist/tsconfig.app.tsbuildinfo +1 -1
  30. package/dist/{useReportPermissions-FieO4EAD.js → useReportPermissions-4wm7pJcK.js} +3 -3
  31. package/package.json +1 -1
  32. package/dist/ScheduleGeneralPage-DAECTCDu.js +0 -242
  33. package/dist/SchedulePage-CdFR7JuO.js +0 -10751
  34. package/dist/SchedulePositionPage-DTtKg0sx.js +0 -220
  35. package/dist/ScheduleSelect.vue_vue_type_script_setup_true_lang-BiuUrr50.js +0 -199
  36. package/dist/SelectFilter-CG13h83-.js +0 -264
  37. package/dist/_plugin-vue_export-helper-CHgC5LLL.js +0 -9
  38. package/dist/employee-Bs_2vqBY.js +0 -139
  39. package/dist/index-Cz2b95YF.js +0 -70
  40. package/dist/iteration-CcXrOMQe.js +0 -30
  41. package/dist/src/api/schedule/index.d.ts +0 -44
  42. package/dist/src/components/layout/AppSidebar.vue.d.ts +0 -2
  43. package/dist/src/components/layout/PortalShell.vue.d.ts +0 -12
  44. package/dist/src/components/layout/withShell.d.ts +0 -14
  45. package/dist/src/types/schedule.d.ts +0 -232
  46. package/dist/src/views/scheduling/ScheduleGeneralPage.vue.d.ts +0 -4
  47. package/dist/src/views/scheduling/SchedulePage.vue.d.ts +0 -4
  48. package/dist/src/views/scheduling/SchedulePositionPage.vue.d.ts +0 -4
  49. package/dist/src/views/scheduling/components/ScheduleAddEmployeeIdentitySection.vue.d.ts +0 -6
  50. package/dist/src/views/scheduling/components/ScheduleAddEmployeeModal.vue.d.ts +0 -6
  51. package/dist/src/views/scheduling/components/ScheduleAddEmployeeModeStep.vue.d.ts +0 -6
  52. package/dist/src/views/scheduling/components/ScheduleAddEmployeePosAccessSection.vue.d.ts +0 -6
  53. package/dist/src/views/scheduling/components/ScheduleAddEmployeePositionsSection.vue.d.ts +0 -6
  54. package/dist/src/views/scheduling/components/ScheduleAddEmployeeSchedulingSection.vue.d.ts +0 -6
  55. package/dist/src/views/scheduling/components/ScheduleAddPickPopover.vue.d.ts +0 -6
  56. package/dist/src/views/scheduling/components/ScheduleAllShiftsRow.vue.d.ts +0 -22
  57. package/dist/src/views/scheduling/components/ScheduleAreaRows.vue.d.ts +0 -34
  58. package/dist/src/views/scheduling/components/ScheduleAssignEmployeePopover.vue.d.ts +0 -6
  59. package/dist/src/views/scheduling/components/ScheduleAutoScheduleModal.vue.d.ts +0 -6
  60. package/dist/src/views/scheduling/components/ScheduleChangeEmployeeModal.vue.d.ts +0 -8
  61. package/dist/src/views/scheduling/components/ScheduleConfirmModal.vue.d.ts +0 -24
  62. package/dist/src/views/scheduling/components/ScheduleCostRail.vue.d.ts +0 -8
  63. package/dist/src/views/scheduling/components/ScheduleDateRangePopover.vue.d.ts +0 -6
  64. package/dist/src/views/scheduling/components/ScheduleDayNotePopover.vue.d.ts +0 -6
  65. package/dist/src/views/scheduling/components/ScheduleDayTimeline.vue.d.ts +0 -12
  66. package/dist/src/views/scheduling/components/ScheduleDemandRow.vue.d.ts +0 -23
  67. package/dist/src/views/scheduling/components/ScheduleDemandSheet.vue.d.ts +0 -10
  68. package/dist/src/views/scheduling/components/ScheduleDotsIcon.vue.d.ts +0 -2
  69. package/dist/src/views/scheduling/components/ScheduleEmployeeDetailPanel.vue.d.ts +0 -12
  70. package/dist/src/views/scheduling/components/ScheduleEmployeeIdentity.vue.d.ts +0 -17
  71. package/dist/src/views/scheduling/components/ScheduleFilterBar.vue.d.ts +0 -18
  72. package/dist/src/views/scheduling/components/ScheduleGapPopover.vue.d.ts +0 -6
  73. package/dist/src/views/scheduling/components/ScheduleGridHeader.vue.d.ts +0 -18
  74. package/dist/src/views/scheduling/components/ScheduleLeaveEditModal.vue.d.ts +0 -6
  75. package/dist/src/views/scheduling/components/ScheduleLegendBar.vue.d.ts +0 -6
  76. package/dist/src/views/scheduling/components/ScheduleOnboardingWelcome.vue.d.ts +0 -12
  77. package/dist/src/views/scheduling/components/ScheduleOnboardingWizard.vue.d.ts +0 -6
  78. package/dist/src/views/scheduling/components/ScheduleOpenShiftCardMenu.vue.d.ts +0 -14
  79. package/dist/src/views/scheduling/components/SchedulePdfPreview.vue.d.ts +0 -6
  80. package/dist/src/views/scheduling/components/SchedulePublishModal.vue.d.ts +0 -8
  81. package/dist/src/views/scheduling/components/ScheduleReviewBar.vue.d.ts +0 -12
  82. package/dist/src/views/scheduling/components/ScheduleSelect.vue.d.ts +0 -24
  83. package/dist/src/views/scheduling/components/ScheduleSelectExistingEmployeeModal.vue.d.ts +0 -6
  84. package/dist/src/views/scheduling/components/ScheduleShiftCardMenu.vue.d.ts +0 -12
  85. package/dist/src/views/scheduling/components/ScheduleShiftCell.vue.d.ts +0 -31
  86. package/dist/src/views/scheduling/components/ScheduleShiftHeadcountEditor.vue.d.ts +0 -6
  87. package/dist/src/views/scheduling/components/ScheduleShiftImpact.vue.d.ts +0 -6
  88. package/dist/src/views/scheduling/components/ScheduleShiftMoreOptions.vue.d.ts +0 -6
  89. package/dist/src/views/scheduling/components/ScheduleShiftPopover.vue.d.ts +0 -14
  90. package/dist/src/views/scheduling/components/ScheduleShiftRepeatDaysRow.vue.d.ts +0 -8
  91. package/dist/src/views/scheduling/components/ScheduleShiftSegmentsEditor.vue.d.ts +0 -8
  92. package/dist/src/views/scheduling/components/ScheduleShiftWhoPicker.vue.d.ts +0 -25
  93. package/dist/src/views/scheduling/components/ScheduleStackPopover.vue.d.ts +0 -14
  94. package/dist/src/views/scheduling/components/ScheduleStaffRail.vue.d.ts +0 -16
  95. package/dist/src/views/scheduling/components/ScheduleStaffRows.vue.d.ts +0 -54
  96. package/dist/src/views/scheduling/components/ScheduleStatsRow.vue.d.ts +0 -12
  97. package/dist/src/views/scheduling/components/ScheduleSwapShiftsModal.vue.d.ts +0 -8
  98. package/dist/src/views/scheduling/components/ScheduleTimePickerPopover.vue.d.ts +0 -6
  99. package/dist/src/views/scheduling/components/ScheduleTopbar.vue.d.ts +0 -22
  100. package/dist/src/views/scheduling/composables/schedule-add-employee-form.d.ts +0 -67
  101. package/dist/src/views/scheduling/composables/schedule-board-helpers.d.ts +0 -38
  102. package/dist/src/views/scheduling/composables/schedule-day-meta.d.ts +0 -29
  103. package/dist/src/views/scheduling/composables/schedule-employee-profile.d.ts +0 -7
  104. package/dist/src/views/scheduling/composables/schedule-shift-time.d.ts +0 -14
  105. package/dist/src/views/scheduling/composables/schedule-week-cache.d.ts +0 -10
  106. package/dist/src/views/scheduling/composables/useScheduleAddEmployee.d.ts +0 -86
  107. package/dist/src/views/scheduling/composables/useScheduleAddPick.d.ts +0 -66
  108. package/dist/src/views/scheduling/composables/useScheduleAllShiftsRow.d.ts +0 -77
  109. package/dist/src/views/scheduling/composables/useScheduleAreaBoard.d.ts +0 -50
  110. package/dist/src/views/scheduling/composables/useScheduleAreaDragDrop.d.ts +0 -18
  111. package/dist/src/views/scheduling/composables/useScheduleAssign.d.ts +0 -113
  112. package/dist/src/views/scheduling/composables/useScheduleAutoSchedule.d.ts +0 -136
  113. package/dist/src/views/scheduling/composables/useScheduleBoard.d.ts +0 -415
  114. package/dist/src/views/scheduling/composables/useScheduleCellState.d.ts +0 -27
  115. package/dist/src/views/scheduling/composables/useScheduleClashDetection.d.ts +0 -18
  116. package/dist/src/views/scheduling/composables/useScheduleCopyWeek.d.ts +0 -17
  117. package/dist/src/views/scheduling/composables/useScheduleCostRail.d.ts +0 -43
  118. package/dist/src/views/scheduling/composables/useScheduleDayNote.d.ts +0 -48
  119. package/dist/src/views/scheduling/composables/useScheduleDayTimeline.d.ts +0 -82
  120. package/dist/src/views/scheduling/composables/useScheduleDemand.d.ts +0 -68
  121. package/dist/src/views/scheduling/composables/useScheduleDemandRow.d.ts +0 -45
  122. package/dist/src/views/scheduling/composables/useScheduleDemandSheet.d.ts +0 -139
  123. package/dist/src/views/scheduling/composables/useScheduleDragDrop.d.ts +0 -22
  124. package/dist/src/views/scheduling/composables/useScheduleEmployeeIdentity.d.ts +0 -32
  125. package/dist/src/views/scheduling/composables/useScheduleEmployeeProfile.d.ts +0 -16
  126. package/dist/src/views/scheduling/composables/useScheduleExport.d.ts +0 -26
  127. package/dist/src/views/scheduling/composables/useScheduleFilterBar.d.ts +0 -14
  128. package/dist/src/views/scheduling/composables/useScheduleGapPopover.d.ts +0 -80
  129. package/dist/src/views/scheduling/composables/useScheduleLeave.d.ts +0 -20
  130. package/dist/src/views/scheduling/composables/useScheduleLegend.d.ts +0 -15
  131. package/dist/src/views/scheduling/composables/useScheduleLegendBar.d.ts +0 -35
  132. package/dist/src/views/scheduling/composables/useScheduleOnboardingWizard.d.ts +0 -179
  133. package/dist/src/views/scheduling/composables/useScheduleOpenShiftCard.d.ts +0 -23
  134. package/dist/src/views/scheduling/composables/useScheduleOutlet.d.ts +0 -19
  135. package/dist/src/views/scheduling/composables/useSchedulePositions.d.ts +0 -32
  136. package/dist/src/views/scheduling/composables/useSchedulePublish.d.ts +0 -91
  137. package/dist/src/views/scheduling/composables/useScheduleRangeCalendar.d.ts +0 -18
  138. package/dist/src/views/scheduling/composables/useScheduleRoster.d.ts +0 -183
  139. package/dist/src/views/scheduling/composables/useScheduleSettings.d.ts +0 -54
  140. package/dist/src/views/scheduling/composables/useScheduleSetupBanner.d.ts +0 -18
  141. package/dist/src/views/scheduling/composables/useScheduleShiftActions.d.ts +0 -225
  142. package/dist/src/views/scheduling/composables/useScheduleShiftPopover.d.ts +0 -174
  143. package/dist/src/views/scheduling/composables/useScheduleStaffRail.d.ts +0 -20
  144. package/dist/src/views/scheduling/composables/useScheduleStatsRow.d.ts +0 -25
  145. package/dist/src/views/scheduling/composables/useScheduleTimePicker.d.ts +0 -44
  146. package/dist/src/views/scheduling/composables/useScheduleTopbar.d.ts +0 -10
  147. package/dist/src/views/scheduling/data.d.ts +0 -105
  148. package/dist/src/views/scheduling/locales/index.d.ts +0 -496
  149. package/dist/src/views/scheduling/schedule-store.d.ts +0 -116
  150. package/dist/src/views/scheduling/types.d.ts +0 -311
  151. package/dist/useScheduleOutlet-CmIG5dwQ.js +0 -557
  152. package/dist/useSchedulePositions-DPVAgdB2.js +0 -103
@@ -1,225 +0,0 @@
1
- import type { ScheduleBoardApi } from './useScheduleBoard';
2
- export interface ScheduleCardMenuState {
3
- open: boolean;
4
- empId: number | null;
5
- dayIdx: number | null;
6
- left: number;
7
- top: number;
8
- }
9
- export interface ScheduleChangeState {
10
- open: boolean;
11
- empId: number | null;
12
- dayIdx: number | null;
13
- }
14
- export interface ScheduleSwapState {
15
- open: boolean;
16
- empId: number | null;
17
- dayIdx: number | null;
18
- }
19
- /** The shift card's "⋯" menu (Change employee / Swap shifts / Edit / Remove), plus the two
20
- * dialogs it opens that the rest of Phase 1 didn't need: handing a shift to somebody else,
21
- * and trading two people's shifts on the same day. Both skip the mockup's OT/pay-band cost
22
- * preview and hard/soft override tiers — this board has no per-person pay bands to price
23
- * against, so a candidate is either qualified-and-free or it isn't offered at all. */
24
- export declare function useScheduleShiftActions(board: ScheduleBoardApi): {
25
- menu: {
26
- open: boolean;
27
- empId: number | null;
28
- dayIdx: number | null;
29
- left: number;
30
- top: number;
31
- };
32
- openMenu: (empId: number, dayIdx: number, anchor: HTMLElement) => void;
33
- closeMenu: () => void;
34
- change: {
35
- open: boolean;
36
- empId: number | null;
37
- dayIdx: number | null;
38
- };
39
- changeSlot: import("vue").ComputedRef<import("../types").WorkSlot[]>;
40
- changeCandidates: import("vue").ComputedRef<{
41
- id: number;
42
- name: string;
43
- role: string;
44
- initials: string;
45
- color: string;
46
- weekHours: number;
47
- pct: number;
48
- contractHours?: number | undefined;
49
- rate: number;
50
- positions: string[];
51
- shifts: ({
52
- start: string;
53
- end: string;
54
- role: string;
55
- status: import("../types").ShiftStatus;
56
- clock?: {
57
- in: string | null;
58
- out: string | null;
59
- status: "on-time" | "late" | "early-out" | "absent";
60
- } | undefined;
61
- conflict?: boolean | undefined;
62
- conflictReason?: string | undefined;
63
- openId?: number | undefined;
64
- breakMins?: number | undefined;
65
- assignmentId?: string | undefined;
66
- } | {
67
- timeOff: "approved" | "pending";
68
- reason: string;
69
- half?: boolean | undefined;
70
- halfPart?: "AM" | "PM" | undefined;
71
- appliedOn?: string | undefined;
72
- note?: string | undefined;
73
- cert?: {
74
- name: string;
75
- size: string;
76
- } | null | undefined;
77
- bal?: {
78
- type: string;
79
- entitled: number;
80
- used: number;
81
- } | undefined;
82
- } | {
83
- start: string;
84
- end: string;
85
- role: string;
86
- status: import("../types").ShiftStatus;
87
- clock?: {
88
- in: string | null;
89
- out: string | null;
90
- status: "on-time" | "late" | "early-out" | "absent";
91
- } | undefined;
92
- conflict?: boolean | undefined;
93
- conflictReason?: string | undefined;
94
- openId?: number | undefined;
95
- breakMins?: number | undefined;
96
- assignmentId?: string | undefined;
97
- }[] | null)[];
98
- remarks: {
99
- author: string;
100
- date: string;
101
- type: "note" | "warning" | "praise";
102
- text: string;
103
- }[];
104
- section: string;
105
- compGroup?: string | undefined;
106
- mobile?: string | undefined;
107
- dial?: string | undefined;
108
- locations?: string[] | undefined;
109
- payBasis?: "hourly" | "monthly" | undefined;
110
- payAmount?: number | undefined;
111
- maxHours?: number | undefined;
112
- maxOtHours?: number | undefined;
113
- otAfterDaily?: number | undefined;
114
- preferences?: string[] | undefined;
115
- seniority?: "senior" | "junior" | "" | undefined;
116
- availDays?: boolean[] | undefined;
117
- availHours?: {
118
- from: string;
119
- to: string;
120
- }[] | undefined;
121
- passcode?: string | undefined;
122
- masterUser?: boolean | undefined;
123
- }[]>;
124
- openChange: (empId: number, dayIdx: number) => void;
125
- closeChange: () => void;
126
- confirmChange: (toId: number) => void;
127
- swap: {
128
- open: boolean;
129
- empId: number | null;
130
- dayIdx: number | null;
131
- };
132
- swapSlot: import("vue").ComputedRef<import("../types").WorkSlot[]>;
133
- swapCandidates: import("vue").ComputedRef<{
134
- emp: {
135
- id: number;
136
- name: string;
137
- role: string;
138
- initials: string;
139
- color: string;
140
- weekHours: number;
141
- pct: number;
142
- contractHours?: number | undefined;
143
- rate: number;
144
- positions: string[];
145
- shifts: ({
146
- start: string;
147
- end: string;
148
- role: string;
149
- status: import("../types").ShiftStatus;
150
- clock?: {
151
- in: string | null;
152
- out: string | null;
153
- status: "on-time" | "late" | "early-out" | "absent";
154
- } | undefined;
155
- conflict?: boolean | undefined;
156
- conflictReason?: string | undefined;
157
- openId?: number | undefined;
158
- breakMins?: number | undefined;
159
- assignmentId?: string | undefined;
160
- } | {
161
- timeOff: "approved" | "pending";
162
- reason: string;
163
- half?: boolean | undefined;
164
- halfPart?: "AM" | "PM" | undefined;
165
- appliedOn?: string | undefined;
166
- note?: string | undefined;
167
- cert?: {
168
- name: string;
169
- size: string;
170
- } | null | undefined;
171
- bal?: {
172
- type: string;
173
- entitled: number;
174
- used: number;
175
- } | undefined;
176
- } | {
177
- start: string;
178
- end: string;
179
- role: string;
180
- status: import("../types").ShiftStatus;
181
- clock?: {
182
- in: string | null;
183
- out: string | null;
184
- status: "on-time" | "late" | "early-out" | "absent";
185
- } | undefined;
186
- conflict?: boolean | undefined;
187
- conflictReason?: string | undefined;
188
- openId?: number | undefined;
189
- breakMins?: number | undefined;
190
- assignmentId?: string | undefined;
191
- }[] | null)[];
192
- remarks: {
193
- author: string;
194
- date: string;
195
- type: "note" | "warning" | "praise";
196
- text: string;
197
- }[];
198
- section: string;
199
- compGroup?: string | undefined;
200
- mobile?: string | undefined;
201
- dial?: string | undefined;
202
- locations?: string[] | undefined;
203
- payBasis?: "hourly" | "monthly" | undefined;
204
- payAmount?: number | undefined;
205
- maxHours?: number | undefined;
206
- maxOtHours?: number | undefined;
207
- otAfterDaily?: number | undefined;
208
- preferences?: string[] | undefined;
209
- seniority?: "senior" | "junior" | "" | undefined;
210
- availDays?: boolean[] | undefined;
211
- availHours?: {
212
- from: string;
213
- to: string;
214
- }[] | undefined;
215
- passcode?: string | undefined;
216
- masterUser?: boolean | undefined;
217
- };
218
- slot: import("../types").WorkSlot[];
219
- }[]>;
220
- openSwap: (empId: number, dayIdx: number) => void;
221
- closeSwap: () => void;
222
- confirmSwap: (toEmpId: number) => void;
223
- removeShift: (empId: number, dayIdx: number) => void;
224
- };
225
- export type ScheduleShiftActionsApi = ReturnType<typeof useScheduleShiftActions>;
@@ -1,174 +0,0 @@
1
- import type { ScheduleBoardApi } from './useScheduleBoard';
2
- import type { ScheduleDemandApi } from './useScheduleDemand';
3
- import { type ScheduleBreakChoice, type ScheduleShiftSegment } from './schedule-shift-time';
4
- export type { ScheduleBreakChoice, ScheduleShiftSegment } from './schedule-shift-time';
5
- export interface ScheduleHeadcountRole {
6
- position: string;
7
- count: number;
8
- sen: '' | 'senior' | 'junior';
9
- }
10
- /** The unified shift popover — ported from the mockup's single `.shift-pop`, which answers
11
- * both "who is on this shift" and "what does this shift need" from one form. Picking a real
12
- * person in the `who` select turns it into an assignment; leaving it on "Empty shift" turns
13
- * it into open demand. Opened three ways: for an employee's cell (assign/edit), for a brand
14
- * new open shift (multi-position headcount authoring), or to edit one existing open-shift
15
- * record (single position, like an assigned shift's "Position needed" row). */
16
- export declare function useScheduleShiftPopover(board: ScheduleBoardApi, demand: ScheduleDemandApi): {
17
- open: import("vue").Ref<boolean, boolean>;
18
- dayIdx: import("vue").Ref<number | null, number | null>;
19
- empId: import("vue").Ref<number | null, number | null>;
20
- originalEmpId: import("vue").Ref<number | null, number | null>;
21
- editingOpenShiftId: import("vue").Ref<number | null, number | null>;
22
- isNew: import("vue").Ref<boolean, boolean>;
23
- name: import("vue").Ref<string, string>;
24
- segments: import("vue").Ref<{
25
- start: string;
26
- end: string;
27
- }[], ScheduleShiftSegment[] | {
28
- start: string;
29
- end: string;
30
- }[]>;
31
- role: import("vue").Ref<string, string>;
32
- required: import("vue").Ref<number, number>;
33
- sen: import("vue").Ref<"" | "senior" | "junior", "" | "senior" | "junior">;
34
- empType: import("vue").Ref<"" | "full" | "part", "" | "full" | "part">;
35
- roles: import("vue").Ref<{
36
- position: string;
37
- count: number;
38
- sen: "" | "senior" | "junior";
39
- }[], ScheduleHeadcountRole[] | {
40
- position: string;
41
- count: number;
42
- sen: "" | "senior" | "junior";
43
- }[]>;
44
- impact: import("vue").ComputedRef<{
45
- when: string;
46
- before: {
47
- required: number;
48
- scheduled: number;
49
- };
50
- after: {
51
- required: number;
52
- scheduled: number;
53
- };
54
- beforeSegs: import("../types").CoverageSegment[];
55
- afterSegs: import("../types").CoverageSegment[];
56
- axis: import("./useScheduleDemand").ScheduleCoverageAxis;
57
- } | null>;
58
- requiresAssignment: import("vue").ComputedRef<boolean>;
59
- saveDisabled: import("vue").ComputedRef<boolean>;
60
- saveTitle: import("vue").ComputedRef<"" | "Choose who covers it — this shift is answering a staffing gap, and a shift with nobody on it leaves that gap exactly as it is">;
61
- saveLabel: import("vue").ComputedRef<"Create & assign" | "Save">;
62
- breakChoice: import("vue").Ref<ScheduleBreakChoice, ScheduleBreakChoice>;
63
- breakCustomMins: import("vue").Ref<number, number>;
64
- breakCustomUnit: import("vue").Ref<"mins" | "hrs", "mins" | "hrs">;
65
- repeatDays: import("vue").Ref<boolean[], boolean[]>;
66
- gapNote: import("vue").Ref<string | null, string | null>;
67
- conflictNote: import("vue").Ref<string | null, string | null>;
68
- grantSkill: import("vue").Ref<boolean, boolean>;
69
- showGrantSkill: import("vue").ComputedRef<boolean>;
70
- unassignMode: import("vue").Ref<boolean, boolean>;
71
- positionOptions: import("vue").ComputedRef<string[]>;
72
- whoOptions: import("vue").ComputedRef<{
73
- id: number;
74
- name: string;
75
- role: string;
76
- initials: string;
77
- color: string;
78
- weekHours: number;
79
- pct: number;
80
- contractHours?: number | undefined;
81
- rate: number;
82
- positions: string[];
83
- shifts: ({
84
- start: string;
85
- end: string;
86
- role: string;
87
- status: import("../types").ShiftStatus;
88
- clock?: {
89
- in: string | null;
90
- out: string | null;
91
- status: "on-time" | "late" | "early-out" | "absent";
92
- } | undefined;
93
- conflict?: boolean | undefined;
94
- conflictReason?: string | undefined;
95
- openId?: number | undefined;
96
- breakMins?: number | undefined;
97
- assignmentId?: string | undefined;
98
- } | {
99
- timeOff: "approved" | "pending";
100
- reason: string;
101
- half?: boolean | undefined;
102
- halfPart?: "AM" | "PM" | undefined;
103
- appliedOn?: string | undefined;
104
- note?: string | undefined;
105
- cert?: {
106
- name: string;
107
- size: string;
108
- } | null | undefined;
109
- bal?: {
110
- type: string;
111
- entitled: number;
112
- used: number;
113
- } | undefined;
114
- } | {
115
- start: string;
116
- end: string;
117
- role: string;
118
- status: import("../types").ShiftStatus;
119
- clock?: {
120
- in: string | null;
121
- out: string | null;
122
- status: "on-time" | "late" | "early-out" | "absent";
123
- } | undefined;
124
- conflict?: boolean | undefined;
125
- conflictReason?: string | undefined;
126
- openId?: number | undefined;
127
- breakMins?: number | undefined;
128
- assignmentId?: string | undefined;
129
- }[] | null)[];
130
- remarks: {
131
- author: string;
132
- date: string;
133
- type: "note" | "warning" | "praise";
134
- text: string;
135
- }[];
136
- section: string;
137
- compGroup?: string | undefined;
138
- mobile?: string | undefined;
139
- dial?: string | undefined;
140
- locations?: string[] | undefined;
141
- payBasis?: "hourly" | "monthly" | undefined;
142
- payAmount?: number | undefined;
143
- maxHours?: number | undefined;
144
- maxOtHours?: number | undefined;
145
- otAfterDaily?: number | undefined;
146
- preferences?: string[] | undefined;
147
- seniority?: "senior" | "junior" | "" | undefined;
148
- availDays?: boolean[] | undefined;
149
- availHours?: {
150
- from: string;
151
- to: string;
152
- }[] | undefined;
153
- passcode?: string | undefined;
154
- masterUser?: boolean | undefined;
155
- }[]>;
156
- isAssigned: import("vue").ComputedRef<boolean>;
157
- isReleasingToOpen: import("vue").ComputedRef<boolean>;
158
- isEditingOpenShift: import("vue").ComputedRef<boolean>;
159
- isNewOpenShift: import("vue").ComputedRef<boolean>;
160
- isSingleOpenRecord: import("vue").ComputedRef<boolean>;
161
- totalHours: import("vue").ComputedRef<number>;
162
- totalLabel: import("vue").ComputedRef<string>;
163
- openForEmployee: (forEmpId: number, day: number, roleHint?: string, hours?: ScheduleShiftSegment) => void;
164
- openForNewOpenShift: (day: number, roleHint?: string, hours?: ScheduleShiftSegment) => void;
165
- openForEditOpenShift: (openShiftId: number) => void;
166
- close: () => void;
167
- addSegment: () => void;
168
- removeSegment: (i: number) => void;
169
- addRole: () => void;
170
- removeRole: (i: number) => void;
171
- save: () => void;
172
- remove: () => void;
173
- };
174
- export type ScheduleShiftPopoverApi = ReturnType<typeof useScheduleShiftPopover>;
@@ -1,20 +0,0 @@
1
- import type { ScheduleBoardApi } from './useScheduleBoard';
2
- import type { ScheduleEmployeeLoad } from './useScheduleEmployeeIdentity';
3
- export type ScheduleRailSort = 'load' | 'name' | 'hours' | 'cost';
4
- /** The rail's rows ARE the shared identity block's data — one derivation, so the rail and the
5
- * employee grid's name column can't disagree about somebody's load. */
6
- export type ScheduleRailRow = ScheduleEmployeeLoad;
7
- /** The area view's staff rail — search/sort over the same roster the employee view's name
8
- * column shows, plus each person's load bar and an "Open shifts" jump summary. Ported from
9
- * the mockup's renderStaffRail()/orderedRoster()/staffLoad(), scoped to a single week (no
10
- * day/area combination — Daily view stays employee-only for now). */
11
- export declare function useScheduleStaffRail(board: ScheduleBoardApi): {
12
- search: import("vue").Ref<string, string>;
13
- sort: import("vue").Ref<ScheduleRailSort, ScheduleRailSort>;
14
- rows: import("vue").ComputedRef<ScheduleEmployeeLoad[]>;
15
- openSummary: import("vue").ComputedRef<{
16
- count: number;
17
- hours: number;
18
- }>;
19
- };
20
- export type ScheduleStaffRailApi = ReturnType<typeof useScheduleStaffRail>;
@@ -1,25 +0,0 @@
1
- import type { ScheduleBoardApi } from './useScheduleBoard';
2
- import type { ScheduleCostRailApi } from './useScheduleCostRail';
3
- import type { useScheduleLegend } from './useScheduleLegend';
4
- /** The collapsible weekly-summary band under the day header: totals when collapsed,
5
- * a per-day cost/hours/forecast breakdown when open. Ported from the mockup's
6
- * buildStatsRow() — the band always mirrors whatever days the grid currently shows
7
- * (board.visibleDayIndices), collapsing to one day's figures in Daily view exactly like
8
- * the reference's renderedDays()-scoped totals. The 7-day RULES.salesForecast/SALES_CURVE
9
- * baseline underneath it stays weekly regardless — only the on-screen total and the
10
- * redistribution on edit are span-scoped. */
11
- export declare function useScheduleStatsRow(board: ScheduleBoardApi, costRail: ScheduleCostRailApi, legend: ReturnType<typeof useScheduleLegend>): {
12
- open: import("vue").Ref<boolean, boolean>;
13
- toggle: () => void;
14
- forecast: import("vue").Ref<number, number>;
15
- visibleForecast: import("vue").ComputedRef<number>;
16
- visibleCost: import("vue").ComputedRef<number>;
17
- visibleHours: import("vue").ComputedRef<number>;
18
- salesFor: (dayIdx: number) => number;
19
- isDayOverridden: (dayIdx: number) => boolean;
20
- setForecast: (value: string) => void;
21
- setDayForecast: (dayIdx: number, value: string) => void;
22
- labourPct: (dayIdx: number) => number | null;
23
- isShort: (dayIdx: number) => boolean;
24
- };
25
- export type ScheduleStatsRowApi = ReturnType<typeof useScheduleStatsRow>;
@@ -1,44 +0,0 @@
1
- export interface ScheduleTimePickerOption {
2
- value: string;
3
- label: string;
4
- am: boolean;
5
- sel: boolean;
6
- typed: boolean;
7
- /** An existing value that doesn't land on the half hour — kept in the list rather than
8
- * snapped, because silently moving somebody's 11:20 start is a change to their shift, not
9
- * a rounding. */
10
- odd: boolean;
11
- }
12
- export interface ScheduleTimePickerState {
13
- open: boolean;
14
- /** The field's own value when the popover opened — what `.sel` marks, and what an off-grid
15
- * value gets read from to appear in the list at all. */
16
- value: string;
17
- query: string;
18
- left: number;
19
- top: number;
20
- }
21
- /** "8:00 AM", "10:15 PM" — the picker's own display face, and the trigger button's label. */
22
- export declare function formatTime12(hhmm: string): string;
23
- /** The time-of-day combobox behind every `sp2-time.tp-btn` field on the board (demand periods,
24
- * shift segments) — one popover instance shared across all of them, the same way the add-pick
25
- * and gap popovers are. Half-hour options grouped AM/PM, plus a type-in field for anything the
26
- * grid doesn't land on and a search over the same list. */
27
- export declare function useScheduleTimePicker(): {
28
- state: {
29
- open: boolean;
30
- value: string;
31
- query: string;
32
- left: number;
33
- top: number;
34
- };
35
- options: import("vue").ComputedRef<ScheduleTimePickerOption[]>;
36
- amOptions: import("vue").ComputedRef<ScheduleTimePickerOption[]>;
37
- pmOptions: import("vue").ComputedRef<ScheduleTimePickerOption[]>;
38
- typedValue: import("vue").ComputedRef<string | null>;
39
- openFor: (anchor: HTMLElement, value: string, pick: (hhmm: string) => void) => void;
40
- close: () => void;
41
- pick: (value: string) => void;
42
- submitQuery: () => void;
43
- };
44
- export type ScheduleTimePickerApi = ReturnType<typeof useScheduleTimePicker>;
@@ -1,10 +0,0 @@
1
- export type ScheduleTopbarMenu = 'copy' | 'actions' | 'export';
2
- /** Open/close state for the topbar's three dropdowns (Copy schedule, Actions, Share) — only
3
- * one is ever open at a time, matching the mockup's toggleMenu()/closeMenus() behavior of
4
- * closing the others whenever one opens. */
5
- export declare function useScheduleTopbar(): {
6
- openMenu: import("vue").Ref<ScheduleTopbarMenu | null, ScheduleTopbarMenu | null>;
7
- toggleMenu: (id: ScheduleTopbarMenu) => void;
8
- closeMenus: () => void;
9
- };
10
- export type ScheduleTopbarApi = ReturnType<typeof useScheduleTopbar>;
@@ -1,105 +0,0 @@
1
- import type { CompGroupMeta, Employee, ExistingStaffCandidate, OpenShift, ScheduleRules, Section, ShiftTemplate } from './types';
2
- import type { FdtoSchedulePosition, FdtoSchedulePositionSelectorReq } from '@/types/schedule';
3
- export declare const UNASSIGNED = "unassigned";
4
- export declare const WEEKDAYS: string[];
5
- export declare const DEFAULT_POSITION = "Any position";
6
- export declare const ALL_STATIONS = "All Stations";
7
- /** Employment seniority is a closed set in the model, not something an outlet configures. */
8
- export declare const SENIORITY_OPTIONS: Array<'senior' | 'junior'>;
9
- /** The one section every board has. Scheduling sections are not a Mongo concept yet, so the
10
- * whole roster sits in this bucket and its `roles` list stays empty. */
11
- export declare const SECTIONS: Section[];
12
- /** The position catalogue, from the Positions collection. Name-only: this is read as plain
13
- * strings everywhere on this board (dropdown options, coverage-matrix keys, role lookups), and
14
- * changing its shape would touch every one of those. */
15
- export declare const POSITIONS: string[];
16
- /** The same catalogue, kept with its real backend id — the id-less `POSITIONS` above can't
17
- * identify which document to edit or delete. Only the Position management page reads this. */
18
- export declare const POSITION_RECORDS: FdtoSchedulePosition[];
19
- /** Resolves a position name (every picker on this board only ever offers a name — see
20
- * `POSITIONS` above) to its backend id, for save requests that can now name a position by id
21
- * instead. `undefined` when the catalogue hasn't loaded yet or the name no longer matches one —
22
- * callers still send the name alongside, so the backend's own by-name lookup is the fallback. */
23
- export declare function positionIdOf(name: string): string | undefined;
24
- /** The selector shape every position-carrying save request wants — `undefined` for a blank
25
- * name (the field itself has nothing to name), a resolved id alongside the name otherwise. */
26
- export declare function positionSelectorOf(name: string | undefined): FdtoSchedulePositionSelectorReq | undefined;
27
- /** Which coverage positions a station label counts toward. Positions ARE the roles in this
28
- * model — a shift records the position it is for — so nothing needs translating and this stays
29
- * empty, which makes `positionKeyOf()` pass a role through unchanged. */
30
- export declare const ROLE_POSITIONS: Record<string, string[]>;
31
- /** The outlet this board is scheduling, from the Restaurants document. An object rather than a
32
- * bare string so the two components that name it re-render when it arrives. */
33
- export declare const OUTLET: {
34
- name: string;
35
- };
36
- /** Outlets a person may be rostered at. Filled by useScheduleOutlet from the restaurant store
37
- * — the board payload only ever describes the one outlet it was asked for. */
38
- export declare const LOCATION_OPTIONS: string[];
39
- /** No Mongo source: departments and compensation groups are not modelled. The Add Employee
40
- * form renders these as empty pickers rather than offering choices nobody configured. */
41
- export declare const DEPT_OPTIONS: string[];
42
- export declare const COMPGRP_OPTIONS: string[];
43
- export declare const COMPGRP_META: Record<string, CompGroupMeta>;
44
- /** Candidates for "add an employee who already exists elsewhere in the business". No source
45
- * yet — EmployeeProfiles is per-outlet, and the business-wide directory lives in CouchDB. */
46
- export declare const EXISTING_STAFF: ExistingStaffCandidate[];
47
- /** The venue's shift patterns. No collection holds these yet; consumers already handle an empty
48
- * list by falling back to the trading window in RULES. */
49
- export declare const SHIFT_TEMPLATES: ShiftTemplate[];
50
- /** Mon → Sun weighting used to spread a weekly sales forecast across days. Flat while there is
51
- * no real forecast to shape: a curve invented here would make one day look busier than another
52
- * for no reason anybody could point at. */
53
- export declare const SALES_CURVE: number[];
54
- /** Scheduling configuration, from two places and no others: `payRate` is the whole content of
55
- * the ScheduleSettings document, and the trading window comes from the outlet's own Restaurants
56
- * profile (see `restaurantProfile` on the DTO).
57
- *
58
- * The fields with no Mongo source stay zero rather than being guessed: `coverage` (per-template
59
- * headcount matrices), `salesForecast`, `labourTarget`, `budget`, the OT caps and the
60
- * notification channels. Nothing on screen derived from them is a figure this file made up.
61
- *
62
- * `openFrom`/`openTo` are the one pair that must never be blank — they are the axis every
63
- * coverage bar, day timeline and shift form is drawn against, and there is no such thing as a
64
- * zero-length day to draw. A neutral 00:00–24:00 stands in until a real window lands.
65
- *
66
- * `payRate` defaults to 1× throughout for the same reason the API does: billing a premium hour
67
- * as an ordinary one understates a wage bill, and understating is the safe direction to be wrong
68
- * in where inventing a 1.5 is not. */
69
- export declare const RULES: ScheduleRules;
70
- /** JS `getDay()` (0 = Sunday) → grid column (0 = Monday). */
71
- export declare function gridDayIdx(dayOfWeek: number): number;
72
- /** Grid column (0 = Monday) → JS `getDay()` (0 = Sunday). Inverse of gridDayIdx — needed
73
- * wherever the board writes a day back to Mongo instead of reading one from it. */
74
- export declare function jsDayOfWeek(gridIdx: number): number;
75
- export declare function employeeIdOf(num: number): string | undefined;
76
- export declare function employeeNumberOf(employeeId: string): number;
77
- export declare function createScheduleEmployees(dates?: Date[]): Employee[];
78
- /** Open shifts backed by a persisted Shift requirement never shipped — the backend never
79
- * carried that collection, so this always produced an empty list in practice. Kept as a stub,
80
- * rather than removed, so the week cache's seed call (`schedule-week-cache.ts`) doesn't need
81
- * its own special-casing: every open-shift row on the board today is added ad hoc through the
82
- * shift popover instead (`useScheduleShiftPopover`'s `pushOpenShift`), entirely in local state. */
83
- export declare function createScheduleOpenShifts(): OpenShift[];
84
- /** Staffing demand for the held window, in the shape useScheduleDemand stores it: dated
85
- * overrides keyed by ISO date, standing rules keyed by grid weekday. */
86
- export declare function scheduleDemand(): {
87
- byDate: Record<string, Array<{
88
- from: string;
89
- to: string;
90
- n: number;
91
- roles: Array<{
92
- position: string;
93
- n: number;
94
- }>;
95
- }>>;
96
- byWeekday: Record<number, Array<{
97
- from: string;
98
- to: string;
99
- n: number;
100
- roles: Array<{
101
- position: string;
102
- n: number;
103
- }>;
104
- }>>;
105
- };