@feedmepos/mf-hrm-portal 2.3.0-dev → 2.3.0-dev.10
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.
- package/dist/{ApprovalCodeList-cG0zmQVJ.js → ApprovalCodeList-BLA2rhLB.js} +5 -5
- package/dist/{AuditLogList-BTifJhO1.js → AuditLogList-DBYdZhZl.js} +4 -4
- package/dist/{ConditionBuilderForm.vue_vue_type_script_setup_true_lang-qr5TwLTK.js → ConditionBuilderForm.vue_vue_type_script_setup_true_lang-CtCEzPbE.js} +2 -2
- package/dist/{EmployeeList-DzcMtxJ3.js → EmployeeList-CA7DWLmy.js} +6 -6
- package/dist/{GrantUserList-D5b7tJ8Y.js → GrantUserList-BYnegeEr.js} +6 -6
- package/dist/{Main-DFwdAWqn.js → Main-BeXx0hAc.js} +8 -8
- package/dist/{Main-B2r59IOW.js → Main-Dh-gZSaa.js} +5 -5
- package/dist/{Main-DkLBemi7.js → Main-NDK7LUmm.js} +11 -11
- package/dist/{PermissionSetList-B80hrfMW.js → PermissionSetList-DDIacDpQ.js} +7 -7
- package/dist/PortalPermissionEditor.vue_vue_type_script_setup_true_lang-ONMn3v_f.js +4167 -0
- 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
- package/dist/{RoleList-DHO4JRKF.js → RoleList-B30FHIzu.js} +9 -9
- package/dist/ScheduleAddPositionModal.vue_vue_type_script_setup_true_lang-CRRguWTG.js +492 -0
- package/dist/ScheduleGeneralPage-8gEeZbFR.js +776 -0
- package/dist/ScheduleModal.vue_vue_type_script_setup_true_lang-TfxTAjO8.js +2252 -0
- package/dist/SchedulePage-DQ0VXWWi.js +17832 -0
- package/dist/{SchedulePositionPage-C0hrO11d.js → SchedulePositionPage-oGIDGneA.js} +66 -65
- package/dist/{TeamMemberList-CgFWLRBM.js → TeamMemberList-Drj6R4Y3.js} +10 -10
- package/dist/{TimesheetList-Dp40G-0I.js → TimesheetList-CDQfN5LE.js} +7 -7
- package/dist/{TimesheetList.vue_vue_type_style_index_0_scoped_63294af2_lang-BFjrMhUG.js → TimesheetList.vue_vue_type_style_index_0_scoped_63294af2_lang-Bx-6hjs7.js} +3 -3
- package/dist/{app-CmBSTvaI.js → app-DWe_4-ct.js} +678 -594
- package/dist/app.js +1 -1
- package/dist/{approval-code-C9DmR4Md.js → approval-code-DHsUgc4K.js} +1 -1
- package/dist/{dayjs.min-CfL2DQ3d.js → dayjs.min-QSwC9dtX.js} +1 -1
- package/dist/{employee-DQcHjoij.js → employee-Bb2b3dP6.js} +29 -28
- package/dist/{grant-user-Bv-pJ9Wt.js → grant-user-qzKHFTro.js} +1 -1
- package/dist/{iteration-BlavheWG.js → iteration-TDU7bFxZ.js} +1 -1
- package/dist/{lodash-QerqayrJ.js → lodash-D3Ns5VMN.js} +1 -1
- package/dist/{restaurant-D7PEQjPY.js → restaurant-BbYRA_IT.js} +4 -3
- package/dist/{role-RM2YLO7n.js → role-D57Le_-U.js} +2 -2
- package/dist/{rule-DjlvYIuP.js → rule-DzesUEX7.js} +3 -3
- package/dist/src/api/schedule/index.d.ts +8 -1
- package/dist/src/components/layout/withScheduleShell.d.ts +10 -0
- package/dist/src/types/employee.d.ts +1 -0
- package/dist/src/types/schedule.d.ts +3 -4
- package/dist/src/views/scheduling/components/ScheduleAreaRows.vue.d.ts +0 -8
- package/dist/src/views/scheduling/components/ScheduleBoardAreaRows.vue.d.ts +23 -0
- package/dist/src/views/scheduling/components/ScheduleBoardEditOverlays.vue.d.ts +17 -0
- package/dist/src/views/scheduling/components/ScheduleBoardEmployeeRows.vue.d.ts +31 -0
- package/dist/src/views/scheduling/components/ScheduleBoardGridHeader.vue.d.ts +24 -0
- package/dist/src/views/scheduling/components/ScheduleBoardInteractionOverlays.vue.d.ts +32 -0
- package/dist/src/views/scheduling/components/ScheduleBoardOnboardingOverlays.vue.d.ts +25 -0
- package/dist/src/views/scheduling/components/ScheduleBoardRails.vue.d.ts +17 -0
- package/dist/src/views/scheduling/components/ScheduleBoardToolbar.vue.d.ts +38 -0
- package/dist/src/views/scheduling/components/ScheduleBoardUtilityOverlays.vue.d.ts +22 -0
- package/dist/src/views/scheduling/components/{ScheduleOnboardingComplete.vue.d.ts → ScheduleCompletionDialog.vue.d.ts} +8 -3
- package/dist/src/views/scheduling/components/{ScheduleShiftCardMenu.vue.d.ts → ScheduleContextMenu.vue.d.ts} +7 -2
- package/dist/src/views/scheduling/components/{SchedulePdfPreview.vue.d.ts → ScheduleExportPreview.vue.d.ts} +1 -0
- package/dist/src/views/scheduling/components/ScheduleLoadState.vue.d.ts +9 -0
- package/dist/src/views/scheduling/components/ScheduleModal.vue.d.ts +26 -0
- package/dist/src/views/scheduling/components/{ScheduleExportDoneDialog.vue.d.ts → ScheduleOnboardingAssignPositionModal.vue.d.ts} +2 -2
- package/dist/src/views/scheduling/components/{ScheduleAssignEmployeePopover.vue.d.ts → ScheduleOnboardingClosedDayConfirm.vue.d.ts} +2 -2
- package/dist/src/views/scheduling/components/{ScheduleEmployeeMenu.vue.d.ts → ScheduleOnboardingDemandDays.vue.d.ts} +2 -2
- package/dist/src/views/scheduling/components/ScheduleOnboardingDemandFooter.vue.d.ts +6 -0
- package/dist/src/views/scheduling/components/ScheduleOnboardingDemandHeader.vue.d.ts +6 -0
- package/dist/src/views/scheduling/components/ScheduleOnboardingHoursProfileNotice.vue.d.ts +10 -0
- package/dist/src/views/scheduling/components/ScheduleOnboardingPositions.vue.d.ts +6 -0
- package/dist/src/views/scheduling/components/ScheduleOnboardingReview.vue.d.ts +6 -0
- package/dist/src/views/scheduling/components/ScheduleOnboardingWizardFooter.vue.d.ts +6 -0
- package/dist/src/views/scheduling/components/ScheduleOnboardingWizardHeader.vue.d.ts +11 -0
- package/dist/src/views/scheduling/components/ScheduleSelect.vue.d.ts +17 -1
- package/dist/src/views/scheduling/components/ScheduleSetupBanner.vue.d.ts +12 -0
- package/dist/src/views/scheduling/components/ScheduleShiftPopover.vue.d.ts +2 -2
- package/dist/src/views/scheduling/components/ScheduleStaffRail.vue.d.ts +4 -4
- package/dist/src/views/scheduling/components/ScheduleStaffRows.vue.d.ts +2 -12
- package/dist/src/views/scheduling/components/ScheduleTopbar.vue.d.ts +3 -3
- package/dist/src/views/scheduling/composables/onboarding-types.d.ts +1 -1
- package/dist/src/views/scheduling/composables/remyPrompt.d.ts +13 -0
- package/dist/src/views/scheduling/composables/schedule-add-employee-form.d.ts +12 -8
- package/dist/src/views/scheduling/composables/schedule-board-helpers.d.ts +5 -1
- package/dist/src/views/scheduling/composables/schedule-breaks.d.ts +7 -1
- package/dist/src/views/scheduling/composables/schedule-calendar.d.ts +7 -0
- package/dist/src/views/scheduling/composables/schedule-cost.d.ts +19 -0
- package/dist/src/views/scheduling/composables/schedule-day-meta.d.ts +1 -3
- package/dist/src/views/scheduling/composables/schedule-demand-domain.d.ts +11 -0
- package/dist/src/views/scheduling/composables/schedule-export-matrix.d.ts +14 -0
- package/dist/src/views/scheduling/composables/schedule-time.d.ts +8 -0
- package/dist/src/views/scheduling/composables/schedule-week-cache.d.ts +1 -4
- package/dist/src/views/scheduling/composables/useRemyAppStore.d.ts +15 -0
- package/dist/src/views/scheduling/composables/useScheduleAddEmployee.d.ts +34 -21
- package/dist/src/views/scheduling/composables/useScheduleAreaBoard.d.ts +0 -13
- package/dist/src/views/scheduling/composables/useScheduleAreaDragDrop.d.ts +2 -8
- package/dist/src/views/scheduling/composables/useScheduleAssignmentMutations.d.ts +13 -0
- package/dist/src/views/scheduling/composables/useScheduleAutoSchedule.d.ts +3 -0
- package/dist/src/views/scheduling/composables/useScheduleBoard.d.ts +50 -11
- package/dist/src/views/scheduling/composables/useScheduleCloneOutletModal.d.ts +3 -1
- package/dist/src/views/scheduling/composables/useScheduleCostRail.d.ts +6 -1
- package/dist/src/views/scheduling/composables/useScheduleDayNote.d.ts +1 -2
- package/dist/src/views/scheduling/composables/useScheduleDayTimeline.d.ts +0 -3
- package/dist/src/views/scheduling/composables/useScheduleDemand.d.ts +7 -24
- package/dist/src/views/scheduling/composables/useScheduleDemandSheet.d.ts +19 -5
- package/dist/src/views/scheduling/composables/useScheduleEmployeeAccess.d.ts +16 -0
- package/dist/src/views/scheduling/composables/useScheduleEmployeeAvailability.d.ts +13 -0
- package/dist/src/views/scheduling/composables/useScheduleEmployeeCandidates.d.ts +27 -0
- package/dist/src/views/scheduling/composables/useScheduleEmployeeCompensation.d.ts +7 -0
- package/dist/src/views/scheduling/composables/useScheduleEmployeeForm.d.ts +22 -0
- package/dist/src/views/scheduling/composables/useScheduleEmployeeIdentity.d.ts +9 -0
- package/dist/src/views/scheduling/composables/useScheduleEmployeeMenu.d.ts +6 -3
- package/dist/src/views/scheduling/composables/useScheduleEmployeePersistence.d.ts +29 -0
- package/dist/src/views/scheduling/composables/useScheduleEmployeeValidation.d.ts +20 -0
- package/dist/src/views/scheduling/composables/useScheduleExport.d.ts +19 -11
- package/dist/src/views/scheduling/composables/useScheduleGapPopover.d.ts +5 -6
- package/dist/src/views/scheduling/composables/useScheduleOnboardingAvailability.d.ts +58 -0
- package/dist/src/views/scheduling/composables/useScheduleOnboardingDemand.d.ts +45 -0
- package/dist/src/views/scheduling/composables/useScheduleOnboardingEmployees.d.ts +205 -0
- package/dist/src/views/scheduling/composables/useScheduleOnboardingHours.d.ts +15 -0
- package/dist/src/views/scheduling/composables/useScheduleOnboardingNavigation.d.ts +11 -0
- package/dist/src/views/scheduling/composables/useScheduleOnboardingWizard.d.ts +306 -529
- package/dist/src/views/scheduling/composables/useSchedulePageActions.d.ts +18 -0
- package/dist/src/views/scheduling/composables/useSchedulePageCellActions.d.ts +21 -0
- package/dist/src/views/scheduling/composables/useSchedulePageCellDrop.d.ts +18 -0
- package/dist/src/views/scheduling/composables/useSchedulePageEmployeeActions.d.ts +22 -0
- package/dist/src/views/scheduling/composables/useSchedulePageOverlays.d.ts +10 -7
- package/dist/src/views/scheduling/composables/useSchedulePdfExport.d.ts +19 -0
- package/dist/src/views/scheduling/composables/useSchedulePositionModal.d.ts +4 -1
- package/dist/src/views/scheduling/composables/useSchedulePositions.d.ts +4 -2
- package/dist/src/views/scheduling/composables/useSchedulePublish.d.ts +9 -1
- package/dist/src/views/scheduling/composables/useSchedulePublishPersistence.d.ts +11 -0
- package/dist/src/views/scheduling/composables/useScheduleRoster.d.ts +30 -4
- package/dist/src/views/scheduling/composables/useScheduleSettings.d.ts +8 -25
- package/dist/src/views/scheduling/composables/useScheduleShiftActions.d.ts +18 -3
- package/dist/src/views/scheduling/composables/useScheduleShiftDraft.d.ts +63 -0
- package/dist/src/views/scheduling/composables/useScheduleShiftPersistence.d.ts +17 -0
- package/dist/src/views/scheduling/composables/useScheduleShiftPopover.d.ts +25 -8
- package/dist/src/views/scheduling/composables/useScheduleStatsRow.d.ts +4 -1
- package/dist/src/views/scheduling/composables/useScheduleTour.d.ts +6 -4
- package/dist/src/views/scheduling/country-rules/index.d.ts +24 -0
- package/dist/src/views/scheduling/data.d.ts +16 -7
- package/dist/src/views/scheduling/locales/index.d.ts +80 -0
- package/dist/src/views/scheduling/schedule-constants.d.ts +7 -0
- package/dist/src/views/scheduling/schedule-state.d.ts +104 -16
- package/dist/src/views/scheduling/schedule-store.d.ts +17 -6
- package/dist/src/views/scheduling/types.d.ts +27 -5
- package/dist/style.css +1 -1
- package/dist/tsconfig.app.tsbuildinfo +1 -1
- package/dist/{useAppStore-d_nHyK5u.js → useAppStore-BoLkvkE2.js} +1 -1
- package/dist/{useLoading-JFoghhRz.js → useLoading-Ch1AUYT1.js} +1 -1
- package/dist/{useReportPermissions-Bl6Br79r.js → useReportPermissions-Cmuead1K.js} +3 -3
- package/package.json +2 -1
- package/dist/PortalPermissionEditor.vue_vue_type_script_setup_true_lang-DjNcJQM9.js +0 -4167
- package/dist/ScheduleAddPositionModal.vue_vue_type_script_setup_true_lang-B-XtB64L.js +0 -452
- package/dist/ScheduleGeneralPage-WlBM8bxV.js +0 -629
- package/dist/SchedulePage-Nm0krGVU.js +0 -17056
- package/dist/ScheduleSelect.vue_vue_type_script_setup_true_lang-DTDXir_7.js +0 -1150
- package/dist/src/components/layout/withShell.d.ts +0 -14
- package/dist/src/views/scheduling/components/ScheduleAllShiftsRow.vue.d.ts +0 -22
- package/dist/src/views/scheduling/components/ScheduleOpenShiftCardMenu.vue.d.ts +0 -14
- package/dist/src/views/scheduling/components/ScheduleStackPopover.vue.d.ts +0 -14
- package/dist/src/views/scheduling/components/ScheduleTourAllSet.vue.d.ts +0 -6
- package/dist/src/views/scheduling/composables/useScheduleAllShiftsRow.d.ts +0 -77
- package/dist/src/views/scheduling/composables/useScheduleAssign.d.ts +0 -122
- package/dist/src/views/scheduling/composables/useScheduleOpenShiftCard.d.ts +0 -23
- package/dist/src/views/scheduling/composables/useScheduleStaffRail.d.ts +0 -17
- package/dist/src/views/scheduling/composables/useScheduleTopbar.d.ts +0 -10
- /package/dist/src/{components/layout/AppSidebar.vue.d.ts → views/scheduling/components/SchedulePublishShareArt.vue.d.ts} +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { ScheduleBoardApi } from './useScheduleBoard';
|
|
2
2
|
import type { ScheduleDemandApi } from './useScheduleDemand';
|
|
3
|
-
import { type
|
|
3
|
+
import { type ScheduleShiftSegment } from './schedule-shift-time';
|
|
4
4
|
export type { ScheduleBreakChoice, ScheduleShiftSegment } from './schedule-shift-time';
|
|
5
5
|
export interface ScheduleHeadcountRole {
|
|
6
6
|
position: string;
|
|
@@ -13,7 +13,9 @@ export interface ScheduleHeadcountRole {
|
|
|
13
13
|
* it into open demand. Opened three ways: for an employee's cell (assign/edit), for a brand
|
|
14
14
|
* new open shift (multi-position headcount authoring), or to edit one existing open-shift
|
|
15
15
|
* record (single position, like an assigned shift's "Position needed" row). */
|
|
16
|
-
export declare function useScheduleShiftPopover(board: ScheduleBoardApi, demand: ScheduleDemandApi
|
|
16
|
+
export declare function useScheduleShiftPopover(board: ScheduleBoardApi, demand: ScheduleDemandApi, options?: {
|
|
17
|
+
onToast?: (message: string, type?: 'success' | 'error' | 'info') => void;
|
|
18
|
+
}): {
|
|
17
19
|
open: import("vue").Ref<boolean, boolean>;
|
|
18
20
|
dayIdx: import("vue").Ref<number | null, number | null>;
|
|
19
21
|
empId: import("vue").Ref<number | null, number | null>;
|
|
@@ -29,6 +31,7 @@ export declare function useScheduleShiftPopover(board: ScheduleBoardApi, demand:
|
|
|
29
31
|
end: string;
|
|
30
32
|
}[]>;
|
|
31
33
|
role: import("vue").Ref<string, string>;
|
|
34
|
+
positionId: import("vue").Ref<string | undefined, string | undefined>;
|
|
32
35
|
required: import("vue").Ref<number, number>;
|
|
33
36
|
sen: import("vue").Ref<"" | "senior" | "junior", "" | "senior" | "junior">;
|
|
34
37
|
empType: import("vue").Ref<"" | "full" | "part", "" | "full" | "part">;
|
|
@@ -36,7 +39,7 @@ export declare function useScheduleShiftPopover(board: ScheduleBoardApi, demand:
|
|
|
36
39
|
position: string;
|
|
37
40
|
count: number;
|
|
38
41
|
sen: "" | "senior" | "junior";
|
|
39
|
-
}[], ScheduleHeadcountRole[] | {
|
|
42
|
+
}[], import("./useScheduleShiftDraft").ScheduleHeadcountRole[] | {
|
|
40
43
|
position: string;
|
|
41
44
|
count: number;
|
|
42
45
|
sen: "" | "senior" | "junior";
|
|
@@ -56,13 +59,14 @@ export declare function useScheduleShiftPopover(board: ScheduleBoardApi, demand:
|
|
|
56
59
|
};
|
|
57
60
|
beforeSegs: import("../types").CoverageSegment[];
|
|
58
61
|
afterSegs: import("../types").CoverageSegment[];
|
|
59
|
-
axis: import("./
|
|
62
|
+
axis: import("./schedule-demand-domain").ScheduleCoverageAxis;
|
|
60
63
|
} | null>;
|
|
61
64
|
requiresAssignment: import("vue").ComputedRef<boolean>;
|
|
62
65
|
saveDisabled: import("vue").ComputedRef<boolean>;
|
|
63
|
-
|
|
66
|
+
dailyLimitExceeded: import("vue").ComputedRef<boolean>;
|
|
67
|
+
saveTitle: import("vue").ComputedRef<string>;
|
|
64
68
|
saveLabel: import("vue").ComputedRef<"Create & assign" | "Save">;
|
|
65
|
-
breakChoice: import("vue").Ref<ScheduleBreakChoice, ScheduleBreakChoice>;
|
|
69
|
+
breakChoice: import("vue").Ref<import("./schedule-shift-time").ScheduleBreakChoice, import("./schedule-shift-time").ScheduleBreakChoice>;
|
|
66
70
|
breakCustomMins: import("vue").Ref<number, number>;
|
|
67
71
|
breakCustomUnit: import("vue").Ref<"mins" | "hrs", "mins" | "hrs">;
|
|
68
72
|
breakMode: import("vue").Ref<"time" | "duration", "time" | "duration">;
|
|
@@ -77,6 +81,7 @@ export declare function useScheduleShiftPopover(board: ScheduleBoardApi, demand:
|
|
|
77
81
|
positionOptions: import("vue").ComputedRef<string[]>;
|
|
78
82
|
whoOptions: import("vue").ComputedRef<{
|
|
79
83
|
id: number;
|
|
84
|
+
sourceId: string;
|
|
80
85
|
name: string;
|
|
81
86
|
employmentType: "FULLTIME" | "PARTTIME";
|
|
82
87
|
role: string;
|
|
@@ -87,10 +92,12 @@ export declare function useScheduleShiftPopover(board: ScheduleBoardApi, demand:
|
|
|
87
92
|
contractHours?: number | undefined;
|
|
88
93
|
rate: number;
|
|
89
94
|
positions: string[];
|
|
95
|
+
archivedPositions?: string[] | undefined;
|
|
90
96
|
shifts: ({
|
|
91
97
|
start: string;
|
|
92
98
|
end: string;
|
|
93
99
|
role: string;
|
|
100
|
+
positionId?: string | undefined;
|
|
94
101
|
status: import("../types").ShiftStatus;
|
|
95
102
|
clock?: {
|
|
96
103
|
in: string | null;
|
|
@@ -112,6 +119,7 @@ export declare function useScheduleShiftPopover(board: ScheduleBoardApi, demand:
|
|
|
112
119
|
breakPayType: "PAID" | "UNPAID";
|
|
113
120
|
})[] | undefined;
|
|
114
121
|
assignmentId?: string | undefined;
|
|
122
|
+
updatedAt?: string | undefined;
|
|
115
123
|
splitGroupId?: string | undefined;
|
|
116
124
|
} | {
|
|
117
125
|
timeOff: "approved" | "pending";
|
|
@@ -138,6 +146,7 @@ export declare function useScheduleShiftPopover(board: ScheduleBoardApi, demand:
|
|
|
138
146
|
start: string;
|
|
139
147
|
end: string;
|
|
140
148
|
role: string;
|
|
149
|
+
positionId?: string | undefined;
|
|
141
150
|
status: import("../types").ShiftStatus;
|
|
142
151
|
clock?: {
|
|
143
152
|
in: string | null;
|
|
@@ -159,6 +168,7 @@ export declare function useScheduleShiftPopover(board: ScheduleBoardApi, demand:
|
|
|
159
168
|
breakPayType: "PAID" | "UNPAID";
|
|
160
169
|
})[] | undefined;
|
|
161
170
|
assignmentId?: string | undefined;
|
|
171
|
+
updatedAt?: string | undefined;
|
|
162
172
|
splitGroupId?: string | undefined;
|
|
163
173
|
}[] | null)[];
|
|
164
174
|
remarks: {
|
|
@@ -175,9 +185,16 @@ export declare function useScheduleShiftPopover(board: ScheduleBoardApi, demand:
|
|
|
175
185
|
payBasis?: "hourly" | "monthly" | undefined;
|
|
176
186
|
payAmount?: number | undefined;
|
|
177
187
|
maxHours?: number | undefined;
|
|
178
|
-
maxOtHours?: number | undefined;
|
|
179
188
|
minHours?: number | undefined;
|
|
180
|
-
|
|
189
|
+
minHoursPerDay?: number | undefined;
|
|
190
|
+
workingHours?: {
|
|
191
|
+
minHoursPerDay: number | null;
|
|
192
|
+
maxHoursPerDay: number | null;
|
|
193
|
+
maxHoursPerWeek: number | null;
|
|
194
|
+
} | undefined;
|
|
195
|
+
overtime?: {
|
|
196
|
+
maxHoursPerMonth: number | null;
|
|
197
|
+
} | undefined;
|
|
181
198
|
preferences?: string[] | undefined;
|
|
182
199
|
seniority?: "senior" | "junior" | "" | undefined;
|
|
183
200
|
availDays?: boolean[] | undefined;
|
|
@@ -8,7 +8,10 @@ import type { useScheduleLegend } from './useScheduleLegend';
|
|
|
8
8
|
* the reference's renderedDays()-scoped totals. The 7-day RULES.salesForecast/SALES_CURVE
|
|
9
9
|
* baseline underneath it stays weekly regardless — only the on-screen total and the
|
|
10
10
|
* redistribution on edit are span-scoped. */
|
|
11
|
-
export declare function useScheduleStatsRow(board: ScheduleBoardApi, costRail: ScheduleCostRailApi, legend: ReturnType<typeof useScheduleLegend
|
|
11
|
+
export declare function useScheduleStatsRow(board: ScheduleBoardApi, costRail: ScheduleCostRailApi, legend: ReturnType<typeof useScheduleLegend>, handlers?: {
|
|
12
|
+
onPersistError?: (message: string) => void;
|
|
13
|
+
onPersistSuccess?: (message: string) => void;
|
|
14
|
+
}): {
|
|
12
15
|
open: import("vue").Ref<boolean, boolean>;
|
|
13
16
|
toggle: () => void;
|
|
14
17
|
forecast: import("vue").Ref<number, number>;
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { type Ref } from 'vue';
|
|
1
2
|
import type { ScheduleBoardApi } from './useScheduleBoard';
|
|
2
3
|
import type { ScheduleDemandRowApi } from './useScheduleDemandRow';
|
|
3
4
|
import type { ScheduleDemandSheetApi } from './useScheduleDemandSheet';
|
|
@@ -7,6 +8,7 @@ import type { SchedulePublishApi } from './useSchedulePublish';
|
|
|
7
8
|
import type { ScheduleExportApi } from './useScheduleExport';
|
|
8
9
|
import type { IntroRecapRow } from './onboarding-types';
|
|
9
10
|
interface TourDeps {
|
|
11
|
+
rootEl: Ref<HTMLElement | null>;
|
|
10
12
|
board: ScheduleBoardApi;
|
|
11
13
|
demandRow: ScheduleDemandRowApi;
|
|
12
14
|
demandSheet: ScheduleDemandSheetApi;
|
|
@@ -22,9 +24,9 @@ interface TourDeps {
|
|
|
22
24
|
* popover. No Back button, matching the source: the only way on is Next or Skip. */
|
|
23
25
|
export declare function useScheduleTour(deps: TourDeps): {
|
|
24
26
|
coach: {
|
|
25
|
-
open:
|
|
26
|
-
placing:
|
|
27
|
-
tip:
|
|
27
|
+
open: Ref<boolean, boolean>;
|
|
28
|
+
placing: Ref<boolean, boolean>;
|
|
29
|
+
tip: Ref<{
|
|
28
30
|
title: string;
|
|
29
31
|
body: string;
|
|
30
32
|
count?: string | undefined;
|
|
@@ -85,7 +87,7 @@ export declare function useScheduleTour(deps: TourDeps): {
|
|
|
85
87
|
skip: () => void;
|
|
86
88
|
};
|
|
87
89
|
start: () => void;
|
|
88
|
-
allSetOpen:
|
|
90
|
+
allSetOpen: Ref<boolean, boolean>;
|
|
89
91
|
allSetRecap: import("vue").ComputedRef<IntroRecapRow[]>;
|
|
90
92
|
closeAllSet: () => void;
|
|
91
93
|
};
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import type { PayRate } from '../types';
|
|
2
|
+
export interface CountryScheduleRules {
|
|
3
|
+
countryCode: string;
|
|
4
|
+
timezone: string;
|
|
5
|
+
payRate: PayRate;
|
|
6
|
+
overtime: {
|
|
7
|
+
maxHoursPerMonth: number | null;
|
|
8
|
+
};
|
|
9
|
+
workingHours: {
|
|
10
|
+
minHoursPerDay: number | null;
|
|
11
|
+
maxHoursPerDay: number | null;
|
|
12
|
+
maxHoursPerWeek: number | null;
|
|
13
|
+
};
|
|
14
|
+
recurringPublicHolidays: Array<{
|
|
15
|
+
month: number;
|
|
16
|
+
day: number;
|
|
17
|
+
name: string;
|
|
18
|
+
}>;
|
|
19
|
+
publicHolidays: Record<string, Record<string, string>>;
|
|
20
|
+
}
|
|
21
|
+
export declare function normalizeCountryCode(country: unknown): string;
|
|
22
|
+
export declare function getCountryScheduleRules(country?: unknown): CountryScheduleRules;
|
|
23
|
+
export declare function holidayNameForDate(rules: CountryScheduleRules, date: string): string | null;
|
|
24
|
+
export declare const SUPPORTED_SCHEDULE_COUNTRIES: string[];
|
|
@@ -7,7 +7,10 @@ export declare const ALL_STATIONS = "All Stations";
|
|
|
7
7
|
/** Employment seniority is a closed set in the model, not something an outlet configures. */
|
|
8
8
|
export declare const SENIORITY_OPTIONS: Array<'senior' | 'junior'>;
|
|
9
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.
|
|
10
|
+
* whole roster sits in this bucket and its `roles` list stays empty. Labelled "Assigned" rather
|
|
11
|
+
* than the id's own `UNASSIGNED` — this is where every shift's actual cost lives (the cost rail
|
|
12
|
+
* is the only place this label shows), and "Unassigned" read like a warning that nobody was
|
|
13
|
+
* covering those hours rather than just "not sorted into a work area yet". */
|
|
11
14
|
export declare const SECTIONS: Section[];
|
|
12
15
|
/** The position catalogue, from the Positions collection. Name-only: this is read as plain
|
|
13
16
|
* strings everywhere on this board (dropdown options, coverage-matrix keys, role lookups), and
|
|
@@ -21,7 +24,9 @@ export declare const SECTIONS: Section[];
|
|
|
21
24
|
export declare function positionIdOf(name: string): string | undefined;
|
|
22
25
|
/** The selector shape every position-carrying save request wants — `undefined` for a blank
|
|
23
26
|
* name (the field itself has nothing to name), a resolved id alongside the name otherwise. */
|
|
24
|
-
export declare function positionSelectorOf(name: string | undefined): FdtoSchedulePositionSelectorReq | undefined;
|
|
27
|
+
export declare function positionSelectorOf(name: string | undefined, positionId?: string): FdtoSchedulePositionSelectorReq | undefined;
|
|
28
|
+
/** A saved position reference can outlive its catalogue entry after a soft delete. */
|
|
29
|
+
export declare function isArchivedPosition(name: string | undefined, positionId?: string): boolean;
|
|
25
30
|
/** Which coverage positions a station label counts toward. Positions ARE the roles in this
|
|
26
31
|
* model — a shift records the position it is for — so nothing needs translating and this stays
|
|
27
32
|
* empty, which makes `positionKeyOf()` pass a role through unchanged. */
|
|
@@ -41,13 +46,13 @@ export declare function positionSelectorOf(name: string | undefined): FdtoSchedu
|
|
|
41
46
|
* no real forecast to shape: a curve invented here would make one day look busier than another
|
|
42
47
|
* for no reason anybody could point at. */
|
|
43
48
|
export declare const SALES_CURVE: number[];
|
|
44
|
-
/** Scheduling configuration, from two places and no others:
|
|
45
|
-
* the ScheduleSettings document, and the trading window comes from the
|
|
46
|
-
* profile (see `restaurantProfile` on the DTO).
|
|
49
|
+
/** Scheduling configuration, from two places and no others: pay rates, setup state, and the
|
|
50
|
+
* monthly OT cap come from the ScheduleSettings document, and the trading window comes from the
|
|
51
|
+
* outlet's own Restaurants profile (see `restaurantProfile` on the DTO).
|
|
47
52
|
*
|
|
48
53
|
* The fields with no Mongo source stay zero rather than being guessed: `coverage` (per-template
|
|
49
|
-
* headcount matrices), `salesForecast`, `labourTarget`, `budget`,
|
|
50
|
-
*
|
|
54
|
+
* headcount matrices), `salesForecast`, `labourTarget`, `budget`, and notification channels.
|
|
55
|
+
* Nothing on screen derived from them is a figure this file made up.
|
|
51
56
|
*
|
|
52
57
|
* `openFrom`/`openTo` are the one pair that must never be blank — they are the axis every
|
|
53
58
|
* coverage bar, day timeline and shift form is drawn against, and there is no such thing as a
|
|
@@ -63,6 +68,8 @@ export declare function gridDayIdx(dayOfWeek: number): number;
|
|
|
63
68
|
export declare function jsDayOfWeek(gridIdx: number): number;
|
|
64
69
|
export declare function employeeIdOf(num: number): string | undefined;
|
|
65
70
|
export declare function employeeNumberOf(employeeId: string): number;
|
|
71
|
+
/** Stable identity for change tracking. Keep the numeric id only for legacy board lookups. */
|
|
72
|
+
export declare function employeeKeyOf(employee: Pick<Employee, 'sourceId' | 'id'>): string;
|
|
66
73
|
/** The outlets a person is rostered at, by name, from the POS roster's `restaurantRole`. */
|
|
67
74
|
/** The outlet being scheduled goes first in a list of locations; the rest keep their order. */
|
|
68
75
|
export declare function currentLocationFirst(locations: string[]): string[];
|
|
@@ -82,6 +89,7 @@ export declare function scheduleDemand(): {
|
|
|
82
89
|
n: number;
|
|
83
90
|
roles: Array<{
|
|
84
91
|
position: string;
|
|
92
|
+
positionId?: string;
|
|
85
93
|
n: number;
|
|
86
94
|
}>;
|
|
87
95
|
}>>;
|
|
@@ -91,6 +99,7 @@ export declare function scheduleDemand(): {
|
|
|
91
99
|
n: number;
|
|
92
100
|
roles: Array<{
|
|
93
101
|
position: string;
|
|
102
|
+
positionId?: string;
|
|
94
103
|
n: number;
|
|
95
104
|
}>;
|
|
96
105
|
}>>;
|
|
@@ -49,6 +49,7 @@ export declare const i18nMessages: {
|
|
|
49
49
|
status: {
|
|
50
50
|
draft: string;
|
|
51
51
|
published: string;
|
|
52
|
+
locked: string;
|
|
52
53
|
};
|
|
53
54
|
staffRail: {
|
|
54
55
|
title: string;
|
|
@@ -149,6 +150,25 @@ export declare const i18nMessages: {
|
|
|
149
150
|
thisWeek: string;
|
|
150
151
|
nextWeek: string;
|
|
151
152
|
};
|
|
153
|
+
common: {
|
|
154
|
+
anyPosition: string;
|
|
155
|
+
none: string;
|
|
156
|
+
leaveAsIs: string;
|
|
157
|
+
monthly: string;
|
|
158
|
+
hourly: string;
|
|
159
|
+
everyone: string;
|
|
160
|
+
fullTime: string;
|
|
161
|
+
partTime: string;
|
|
162
|
+
noPosition: string;
|
|
163
|
+
noPay: string;
|
|
164
|
+
cancel: string;
|
|
165
|
+
done: string;
|
|
166
|
+
tryAgain: string;
|
|
167
|
+
};
|
|
168
|
+
positionModal: {
|
|
169
|
+
editTitle: string;
|
|
170
|
+
addTitle: string;
|
|
171
|
+
};
|
|
152
172
|
comingSoon: string;
|
|
153
173
|
};
|
|
154
174
|
};
|
|
@@ -200,6 +220,7 @@ export declare const i18nMessages: {
|
|
|
200
220
|
status: {
|
|
201
221
|
draft: string;
|
|
202
222
|
published: string;
|
|
223
|
+
locked: string;
|
|
203
224
|
};
|
|
204
225
|
staffRail: {
|
|
205
226
|
title: string;
|
|
@@ -300,6 +321,25 @@ export declare const i18nMessages: {
|
|
|
300
321
|
thisWeek: string;
|
|
301
322
|
nextWeek: string;
|
|
302
323
|
};
|
|
324
|
+
common: {
|
|
325
|
+
anyPosition: string;
|
|
326
|
+
none: string;
|
|
327
|
+
leaveAsIs: string;
|
|
328
|
+
monthly: string;
|
|
329
|
+
hourly: string;
|
|
330
|
+
everyone: string;
|
|
331
|
+
fullTime: string;
|
|
332
|
+
partTime: string;
|
|
333
|
+
noPosition: string;
|
|
334
|
+
noPay: string;
|
|
335
|
+
cancel: string;
|
|
336
|
+
done: string;
|
|
337
|
+
tryAgain: string;
|
|
338
|
+
};
|
|
339
|
+
positionModal: {
|
|
340
|
+
editTitle: string;
|
|
341
|
+
addTitle: string;
|
|
342
|
+
};
|
|
303
343
|
comingSoon: string;
|
|
304
344
|
};
|
|
305
345
|
};
|
|
@@ -351,6 +391,7 @@ export declare const i18nMessages: {
|
|
|
351
391
|
status: {
|
|
352
392
|
draft: string;
|
|
353
393
|
published: string;
|
|
394
|
+
locked: string;
|
|
354
395
|
};
|
|
355
396
|
staffRail: {
|
|
356
397
|
title: string;
|
|
@@ -451,6 +492,25 @@ export declare const i18nMessages: {
|
|
|
451
492
|
thisWeek: string;
|
|
452
493
|
nextWeek: string;
|
|
453
494
|
};
|
|
495
|
+
common: {
|
|
496
|
+
anyPosition: string;
|
|
497
|
+
none: string;
|
|
498
|
+
leaveAsIs: string;
|
|
499
|
+
monthly: string;
|
|
500
|
+
hourly: string;
|
|
501
|
+
everyone: string;
|
|
502
|
+
fullTime: string;
|
|
503
|
+
partTime: string;
|
|
504
|
+
noPosition: string;
|
|
505
|
+
noPay: string;
|
|
506
|
+
cancel: string;
|
|
507
|
+
done: string;
|
|
508
|
+
tryAgain: string;
|
|
509
|
+
};
|
|
510
|
+
positionModal: {
|
|
511
|
+
editTitle: string;
|
|
512
|
+
addTitle: string;
|
|
513
|
+
};
|
|
454
514
|
comingSoon: string;
|
|
455
515
|
};
|
|
456
516
|
};
|
|
@@ -502,6 +562,7 @@ export declare const i18nMessages: {
|
|
|
502
562
|
status: {
|
|
503
563
|
draft: string;
|
|
504
564
|
published: string;
|
|
565
|
+
locked: string;
|
|
505
566
|
};
|
|
506
567
|
staffRail: {
|
|
507
568
|
title: string;
|
|
@@ -602,6 +663,25 @@ export declare const i18nMessages: {
|
|
|
602
663
|
thisWeek: string;
|
|
603
664
|
nextWeek: string;
|
|
604
665
|
};
|
|
666
|
+
common: {
|
|
667
|
+
anyPosition: string;
|
|
668
|
+
none: string;
|
|
669
|
+
leaveAsIs: string;
|
|
670
|
+
monthly: string;
|
|
671
|
+
hourly: string;
|
|
672
|
+
everyone: string;
|
|
673
|
+
fullTime: string;
|
|
674
|
+
partTime: string;
|
|
675
|
+
noPosition: string;
|
|
676
|
+
noPay: string;
|
|
677
|
+
cancel: string;
|
|
678
|
+
done: string;
|
|
679
|
+
tryAgain: string;
|
|
680
|
+
};
|
|
681
|
+
positionModal: {
|
|
682
|
+
editTitle: string;
|
|
683
|
+
addTitle: string;
|
|
684
|
+
};
|
|
605
685
|
comingSoon: string;
|
|
606
686
|
};
|
|
607
687
|
};
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/** Shared scheduling limits and UI timing values. Keeping these named makes the product
|
|
2
|
+
* trade-offs visible when the API or board behavior changes. */
|
|
3
|
+
export declare const EMPLOYEE_PAGE_SIZE = 500;
|
|
4
|
+
export declare const MAX_BUSINESS_EMPLOYEE_PAGES = 10;
|
|
5
|
+
export declare const PREFETCH_WEEKS = 6;
|
|
6
|
+
export declare const RECENT_SAVE_FLASH_MS = 1500;
|
|
7
|
+
export declare const EMPLOYEE_ID_BASE = 1000000;
|