@feedmepos/mf-hrm-portal 2.3.0-dev → 2.3.0-dev.11
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{ApprovalCodeList-cG0zmQVJ.js → ApprovalCodeList-Ce9BWzt9.js} +5 -5
- package/dist/{AuditLogList-BTifJhO1.js → AuditLogList-Cw7WN8K4.js} +4 -4
- package/dist/{ConditionBuilderForm.vue_vue_type_script_setup_true_lang-qr5TwLTK.js → ConditionBuilderForm.vue_vue_type_script_setup_true_lang-BuofBFPC.js} +2 -2
- package/dist/{EmployeeList-DzcMtxJ3.js → EmployeeList-B8qWPNvj.js} +25 -24
- package/dist/{GrantUserList-D5b7tJ8Y.js → GrantUserList-CgigJIPF.js} +6 -6
- package/dist/{Main-DFwdAWqn.js → Main-BfoVdxlY.js} +8 -8
- package/dist/{Main-B2r59IOW.js → Main-Cg2vC_cj.js} +5 -5
- package/dist/{Main-DkLBemi7.js → Main-D26pgKy1.js} +11 -11
- package/dist/{PermissionSetList-B80hrfMW.js → PermissionSetList-CbtDiF4k.js} +19 -18
- package/dist/PortalPermissionEditor.vue_vue_type_script_setup_true_lang-DW1oBTbb.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/ResponsiveContextMenu.vue_vue_type_script_setup_true_lang-mSJFKo7r.js +132 -0
- package/dist/{RoleList-DHO4JRKF.js → RoleList-D0I8mbyI.js} +21 -20
- package/dist/ScheduleAddPositionModal.vue_vue_type_script_setup_true_lang-Ctwukt6o.js +492 -0
- package/dist/ScheduleGeneralPage-Kv4pnxCL.js +778 -0
- package/dist/ScheduleModal.vue_vue_type_script_setup_true_lang-CSA0aaqJ.js +2285 -0
- package/dist/SchedulePage-BMWd0bod.js +17942 -0
- package/dist/{SchedulePositionPage-C0hrO11d.js → SchedulePositionPage-5Xvx6Dk5.js} +66 -65
- package/dist/{TeamMemberList-CgFWLRBM.js → TeamMemberList-Bh7i5l16.js} +24 -23
- package/dist/{TimesheetList-Dp40G-0I.js → TimesheetList-BJKU-hnk.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-MMWnb9bj.js} +3 -3
- package/dist/{app-CmBSTvaI.js → app-BDJ5qxhF.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-BWM0vY4w.js} +1 -1
- package/dist/{employee-DQcHjoij.js → employee-bBSuAJUr.js} +29 -28
- package/dist/{grant-user-Bv-pJ9Wt.js → grant-user-qzKHFTro.js} +1 -1
- package/dist/{iteration-BlavheWG.js → iteration-Dg7VAkAn.js} +1 -1
- package/dist/{lodash-QerqayrJ.js → lodash-BknY3p4o.js} +1 -1
- package/dist/{restaurant-D7PEQjPY.js → restaurant-BbYRA_IT.js} +4 -3
- package/dist/{role-RM2YLO7n.js → role-BJnJnNd_.js} +2 -2
- package/dist/{rule-DjlvYIuP.js → rule-BEuOY7Wf.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/composables/useDiscardConfirm.d.ts +3 -1
- 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/ScheduleConfirmModal.vue.d.ts +2 -1
- 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 +35 -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 -3
- package/dist/src/views/scheduling/composables/useScheduleBoard.d.ts +52 -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 +26 -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 +206 -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 +313 -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 +32 -4
- package/dist/src/views/scheduling/composables/useScheduleSettings.d.ts +8 -25
- package/dist/src/views/scheduling/composables/useScheduleShiftActions.d.ts +19 -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 +31 -9
- 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 +30 -6
- package/dist/src/views/scheduling/types.d.ts +29 -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/useDiscardConfirm-CzZSPyvh.js +28 -0
- package/dist/{useLoading-JFoghhRz.js → useLoading-Ch1AUYT1.js} +1 -1
- package/dist/{useReportPermissions-Bl6Br79r.js → useReportPermissions-D8hJ5W0t.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/useDiscardConfirm-DPhEV6v0.js +0 -157
- /package/dist/src/{components/layout/AppSidebar.vue.d.ts → views/scheduling/components/SchedulePublishShareArt.vue.d.ts} +0 -0
|
@@ -1,19 +1,25 @@
|
|
|
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;
|
|
7
7
|
count: number;
|
|
8
8
|
sen: '' | 'senior' | 'junior';
|
|
9
9
|
}
|
|
10
|
+
export interface ScheduleWarningPart {
|
|
11
|
+
text: string;
|
|
12
|
+
emphasis?: boolean;
|
|
13
|
+
}
|
|
10
14
|
/** The unified shift popover — ported from the mockup's single `.shift-pop`, which answers
|
|
11
15
|
* both "who is on this shift" and "what does this shift need" from one form. Picking a real
|
|
12
16
|
* person in the `who` select turns it into an assignment; leaving it on "Empty shift" turns
|
|
13
17
|
* it into open demand. Opened three ways: for an employee's cell (assign/edit), for a brand
|
|
14
18
|
* new open shift (multi-position headcount authoring), or to edit one existing open-shift
|
|
15
19
|
* record (single position, like an assigned shift's "Position needed" row). */
|
|
16
|
-
export declare function useScheduleShiftPopover(board: ScheduleBoardApi, demand: ScheduleDemandApi
|
|
20
|
+
export declare function useScheduleShiftPopover(board: ScheduleBoardApi, demand: ScheduleDemandApi, options?: {
|
|
21
|
+
onToast?: (message: string, type?: 'success' | 'error' | 'info') => void;
|
|
22
|
+
}): {
|
|
17
23
|
open: import("vue").Ref<boolean, boolean>;
|
|
18
24
|
dayIdx: import("vue").Ref<number | null, number | null>;
|
|
19
25
|
empId: import("vue").Ref<number | null, number | null>;
|
|
@@ -29,6 +35,7 @@ export declare function useScheduleShiftPopover(board: ScheduleBoardApi, demand:
|
|
|
29
35
|
end: string;
|
|
30
36
|
}[]>;
|
|
31
37
|
role: import("vue").Ref<string, string>;
|
|
38
|
+
positionId: import("vue").Ref<string | undefined, string | undefined>;
|
|
32
39
|
required: import("vue").Ref<number, number>;
|
|
33
40
|
sen: import("vue").Ref<"" | "senior" | "junior", "" | "senior" | "junior">;
|
|
34
41
|
empType: import("vue").Ref<"" | "full" | "part", "" | "full" | "part">;
|
|
@@ -36,7 +43,7 @@ export declare function useScheduleShiftPopover(board: ScheduleBoardApi, demand:
|
|
|
36
43
|
position: string;
|
|
37
44
|
count: number;
|
|
38
45
|
sen: "" | "senior" | "junior";
|
|
39
|
-
}[], ScheduleHeadcountRole[] | {
|
|
46
|
+
}[], import("./useScheduleShiftDraft").ScheduleHeadcountRole[] | {
|
|
40
47
|
position: string;
|
|
41
48
|
count: number;
|
|
42
49
|
sen: "" | "senior" | "junior";
|
|
@@ -56,13 +63,14 @@ export declare function useScheduleShiftPopover(board: ScheduleBoardApi, demand:
|
|
|
56
63
|
};
|
|
57
64
|
beforeSegs: import("../types").CoverageSegment[];
|
|
58
65
|
afterSegs: import("../types").CoverageSegment[];
|
|
59
|
-
axis: import("./
|
|
66
|
+
axis: import("./schedule-demand-domain").ScheduleCoverageAxis;
|
|
60
67
|
} | null>;
|
|
61
68
|
requiresAssignment: import("vue").ComputedRef<boolean>;
|
|
62
69
|
saveDisabled: import("vue").ComputedRef<boolean>;
|
|
63
|
-
|
|
70
|
+
dailyLimitExceeded: import("vue").ComputedRef<boolean>;
|
|
71
|
+
saveTitle: import("vue").ComputedRef<string>;
|
|
64
72
|
saveLabel: import("vue").ComputedRef<"Create & assign" | "Save">;
|
|
65
|
-
breakChoice: import("vue").Ref<ScheduleBreakChoice, ScheduleBreakChoice>;
|
|
73
|
+
breakChoice: import("vue").Ref<import("./schedule-shift-time").ScheduleBreakChoice, import("./schedule-shift-time").ScheduleBreakChoice>;
|
|
66
74
|
breakCustomMins: import("vue").Ref<number, number>;
|
|
67
75
|
breakCustomUnit: import("vue").Ref<"mins" | "hrs", "mins" | "hrs">;
|
|
68
76
|
breakMode: import("vue").Ref<"time" | "duration", "time" | "duration">;
|
|
@@ -77,6 +85,7 @@ export declare function useScheduleShiftPopover(board: ScheduleBoardApi, demand:
|
|
|
77
85
|
positionOptions: import("vue").ComputedRef<string[]>;
|
|
78
86
|
whoOptions: import("vue").ComputedRef<{
|
|
79
87
|
id: number;
|
|
88
|
+
sourceId: string;
|
|
80
89
|
name: string;
|
|
81
90
|
employmentType: "FULLTIME" | "PARTTIME";
|
|
82
91
|
role: string;
|
|
@@ -87,10 +96,12 @@ export declare function useScheduleShiftPopover(board: ScheduleBoardApi, demand:
|
|
|
87
96
|
contractHours?: number | undefined;
|
|
88
97
|
rate: number;
|
|
89
98
|
positions: string[];
|
|
99
|
+
archivedPositions?: string[] | undefined;
|
|
90
100
|
shifts: ({
|
|
91
101
|
start: string;
|
|
92
102
|
end: string;
|
|
93
103
|
role: string;
|
|
104
|
+
positionId?: string | undefined;
|
|
94
105
|
status: import("../types").ShiftStatus;
|
|
95
106
|
clock?: {
|
|
96
107
|
in: string | null;
|
|
@@ -112,6 +123,7 @@ export declare function useScheduleShiftPopover(board: ScheduleBoardApi, demand:
|
|
|
112
123
|
breakPayType: "PAID" | "UNPAID";
|
|
113
124
|
})[] | undefined;
|
|
114
125
|
assignmentId?: string | undefined;
|
|
126
|
+
updatedAt?: string | undefined;
|
|
115
127
|
splitGroupId?: string | undefined;
|
|
116
128
|
} | {
|
|
117
129
|
timeOff: "approved" | "pending";
|
|
@@ -138,6 +150,7 @@ export declare function useScheduleShiftPopover(board: ScheduleBoardApi, demand:
|
|
|
138
150
|
start: string;
|
|
139
151
|
end: string;
|
|
140
152
|
role: string;
|
|
153
|
+
positionId?: string | undefined;
|
|
141
154
|
status: import("../types").ShiftStatus;
|
|
142
155
|
clock?: {
|
|
143
156
|
in: string | null;
|
|
@@ -159,6 +172,7 @@ export declare function useScheduleShiftPopover(board: ScheduleBoardApi, demand:
|
|
|
159
172
|
breakPayType: "PAID" | "UNPAID";
|
|
160
173
|
})[] | undefined;
|
|
161
174
|
assignmentId?: string | undefined;
|
|
175
|
+
updatedAt?: string | undefined;
|
|
162
176
|
splitGroupId?: string | undefined;
|
|
163
177
|
}[] | null)[];
|
|
164
178
|
remarks: {
|
|
@@ -175,9 +189,16 @@ export declare function useScheduleShiftPopover(board: ScheduleBoardApi, demand:
|
|
|
175
189
|
payBasis?: "hourly" | "monthly" | undefined;
|
|
176
190
|
payAmount?: number | undefined;
|
|
177
191
|
maxHours?: number | undefined;
|
|
178
|
-
maxOtHours?: number | undefined;
|
|
179
192
|
minHours?: number | undefined;
|
|
180
|
-
|
|
193
|
+
minHoursPerDay?: number | undefined;
|
|
194
|
+
workingHours?: {
|
|
195
|
+
minHoursPerDay: number | null;
|
|
196
|
+
maxHoursPerDay: number | null;
|
|
197
|
+
maxHoursPerWeek: number | null;
|
|
198
|
+
} | undefined;
|
|
199
|
+
overtime?: {
|
|
200
|
+
maxHoursPerMonth: number | null;
|
|
201
|
+
} | undefined;
|
|
181
202
|
preferences?: string[] | undefined;
|
|
182
203
|
seniority?: "senior" | "junior" | "" | undefined;
|
|
183
204
|
availDays?: boolean[] | undefined;
|
|
@@ -186,6 +207,7 @@ export declare function useScheduleShiftPopover(board: ScheduleBoardApi, demand:
|
|
|
186
207
|
to: string;
|
|
187
208
|
}[] | undefined;
|
|
188
209
|
passcode?: string | undefined;
|
|
210
|
+
code?: string | undefined;
|
|
189
211
|
masterUser?: boolean | undefined;
|
|
190
212
|
}[]>;
|
|
191
213
|
isAssigned: import("vue").ComputedRef<boolean>;
|
|
@@ -195,7 +217,7 @@ export declare function useScheduleShiftPopover(board: ScheduleBoardApi, demand:
|
|
|
195
217
|
isSingleOpenRecord: import("vue").ComputedRef<boolean>;
|
|
196
218
|
totalHours: import("vue").ComputedRef<number>;
|
|
197
219
|
totalLabel: import("vue").ComputedRef<string>;
|
|
198
|
-
warnings: import("vue").ComputedRef<
|
|
220
|
+
warnings: import("vue").ComputedRef<ScheduleWarningPart[][]>;
|
|
199
221
|
openForEmployee: (forEmpId: number, day: number, roleHint?: string, hours?: ScheduleShiftSegment, slotIndex?: number) => void;
|
|
200
222
|
openForNewOpenShift: (day: number, roleHint?: string, hours?: ScheduleShiftSegment) => void;
|
|
201
223
|
openForEditOpenShift: (openShiftId: number) => void;
|
|
@@ -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;
|