@feedmepos/mf-hrm-portal 2.3.0-dev.9 → 2.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{ApprovalCodeList-BDpxEJpC.js → ApprovalCodeList-DwubNElp.js} +7 -7
- package/dist/{AuditLogList-Dgwj1gz8.js → AuditLogList-CTeMbyHL.js} +18 -19
- package/dist/{ConditionBuilderForm.vue_vue_type_script_setup_true_lang-BBK2gl7r.js → ConditionBuilderForm.vue_vue_type_script_setup_true_lang-CmLLNcB4.js} +2 -2
- package/dist/{EmployeeList-C8cbVcmY.js → EmployeeList-DEAJPx9F.js} +255 -266
- package/dist/{FormItem.vue_vue_type_script_setup_true_lang-CUnlKsxk.js → FormItem.vue_vue_type_script_setup_true_lang-OAvd6eHM.js} +6 -6
- package/dist/{GrantUserList-zul0_Dlm.js → GrantUserList-Dx4jF2qJ.js} +8 -8
- package/dist/{Main-Cjo4FMZZ.js → Main-BirWXk7o.js} +5 -5
- package/dist/{Main-DSr9KbjT.js → Main-C2PBSCte.js} +11 -11
- package/dist/{Main-5TsFTFpc.js → Main-CL5JYCPg.js} +8 -8
- package/dist/{PermissionSetList-CDhiiu37.js → PermissionSetList-BtYcqPiO.js} +19 -18
- package/dist/{PortalPermissionEditor.vue_vue_type_script_setup_true_lang-DoK944l0.js → PortalPermissionEditor.vue_vue_type_script_setup_true_lang-BXw4aX39.js} +1127 -1127
- package/dist/{PortalUserSearcher.vue_vue_type_style_index_0_scoped_827dfd60_lang-BVz6q3HE.js → PortalUserSearcher.vue_vue_type_style_index_0_scoped_827dfd60_lang-DaAx79pC.js} +1 -1
- package/dist/ResponsiveContextMenu.vue_vue_type_script_setup_true_lang-mSJFKo7r.js +132 -0
- package/dist/{RoleList-DEbOPQD_.js → RoleList-YS_LBfoJ.js} +21 -20
- package/dist/ScheduleAddPositionModal.vue_vue_type_script_setup_true_lang-BorKuXxL.js +530 -0
- package/dist/{ScheduleGeneralPage-B8PWNsc2.js → ScheduleGeneralPage-C1p2mivt.js} +252 -248
- package/dist/ScheduleModal.vue_vue_type_script_setup_true_lang-CnKzVz3I.js +2457 -0
- package/dist/SchedulePage-BP7x7JAl.js +19485 -0
- package/dist/{SchedulePositionPage-Cuv4ydOK.js → SchedulePositionPage-BogOQZVW.js} +78 -80
- package/dist/{SelectFilter-CG13h83-.js → SelectFilter-Dh3eY1hV.js} +1 -1
- package/dist/{TeamMemberList-DpCGqHCk.js → TeamMemberList-Bv6_2bzs.js} +27 -27
- package/dist/{TimesheetList-B7HAC5zS.js → TimesheetList-B3BmpH0I.js} +52 -53
- package/dist/{TimesheetList.vue_vue_type_style_index_0_scoped_63294af2_lang-BGD6m5M-.js → TimesheetList.vue_vue_type_style_index_0_scoped_63294af2_lang-C4rbnZh1.js} +3 -3
- package/dist/{app-Lh0cqgHy.js → app-CyS8c8dx.js} +2879 -2462
- package/dist/app.js +1 -1
- package/dist/{approval-code-DHsUgc4K.js → approval-code-BIpLingm.js} +1 -1
- package/dist/{dayjs.min-joq4stsa.js → dayjs.min-BRlEc3-d.js} +1 -1
- package/dist/{employee-BPmp9c6i.js → employee-CcdjLOLQ.js} +51 -47
- package/dist/{grant-user-qzKHFTro.js → grant-user-uZmvD_bw.js} +1 -1
- package/dist/{iteration-jvdTHQUx.js → iteration-CL1RDmws.js} +1 -1
- package/dist/{lodash-CIAEpr9s.js → lodash-C00ieagp.js} +1 -1
- package/dist/object-Dwyg2LgX.js +16 -0
- package/dist/{restaurant-BbYRA_IT.js → restaurant-CHpkjUPy.js} +46 -47
- package/dist/{role-Dd1TUMhn.js → role-DtatkKp9.js} +2 -2
- package/dist/{rule-DmxI7qEY.js → rule-DJJMpkoG.js} +3 -3
- package/dist/src/api/employee/index.d.ts +2 -2
- package/dist/src/api/schedule/index.d.ts +11 -1
- package/dist/src/components/layout/SchedulePromoBanner.vue.d.ts +2 -0
- package/dist/src/composables/useDiscardConfirm.d.ts +3 -1
- package/dist/src/stores/employee.d.ts +12 -12
- package/dist/src/types/schedule.d.ts +1 -1
- package/dist/src/views/audit-log/locales/index.d.ts +252 -0
- package/dist/src/views/scheduling/components/ScheduleAreaRows.vue.d.ts +6 -2
- package/dist/src/views/scheduling/components/ScheduleAutoScheduleDoneArt.vue.d.ts +2 -0
- package/dist/src/views/scheduling/components/ScheduleBoardAreaRows.vue.d.ts +2 -0
- package/dist/src/views/scheduling/components/ScheduleBoardGridHeader.vue.d.ts +5 -0
- package/dist/src/views/scheduling/components/ScheduleBoardInteractionOverlays.vue.d.ts +2 -0
- package/dist/src/views/scheduling/components/ScheduleBoardOnboardingOverlays.vue.d.ts +1 -0
- package/dist/src/views/scheduling/components/ScheduleBoardToolbar.vue.d.ts +0 -1
- package/dist/src/views/scheduling/components/ScheduleCompletionDialog.vue.d.ts +1 -1
- package/dist/src/views/scheduling/components/ScheduleConfirmModal.vue.d.ts +4 -1
- package/dist/src/views/scheduling/components/ScheduleDayTimeline.vue.d.ts +5 -0
- package/dist/src/views/scheduling/components/ScheduleLoadState.vue.d.ts +0 -1
- package/dist/src/views/scheduling/components/ScheduleOnboardingSettings.vue.d.ts +6 -0
- package/dist/src/views/scheduling/components/ScheduleShiftPopover.vue.d.ts +1 -1
- package/dist/src/views/scheduling/composables/auto-schedule-mapping.d.ts +3 -3
- package/dist/src/views/scheduling/composables/onboarding-types.d.ts +2 -1
- package/dist/src/views/scheduling/composables/remyPrompt.d.ts +4 -2
- package/dist/src/views/scheduling/composables/schedule-board-helpers.d.ts +4 -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 +13 -1
- package/dist/src/views/scheduling/composables/schedule-error.d.ts +1 -0
- package/dist/src/views/scheduling/composables/schedule-leave-split.d.ts +5 -0
- package/dist/src/views/scheduling/composables/schedule-quick-pick.d.ts +22 -0
- package/dist/src/views/scheduling/composables/schedule-shift-time.d.ts +3 -0
- package/dist/src/views/scheduling/composables/schedule-week-cache.d.ts +3 -1
- package/dist/src/views/scheduling/composables/useRemyAppStore.d.ts +1 -0
- package/dist/src/views/scheduling/composables/useScheduleAddEmployee.d.ts +25 -2
- package/dist/src/views/scheduling/composables/useScheduleAddPick.d.ts +3 -11
- package/dist/src/views/scheduling/composables/useScheduleAreaDragDrop.d.ts +0 -1
- package/dist/src/views/scheduling/composables/useScheduleAutoSchedule.d.ts +22 -13
- package/dist/src/views/scheduling/composables/useScheduleBoard.d.ts +58 -7
- package/dist/src/views/scheduling/composables/useScheduleCopyWeek.d.ts +3 -10
- package/dist/src/views/scheduling/composables/useScheduleCostRail.d.ts +13 -1
- package/dist/src/views/scheduling/composables/useScheduleDayNote.d.ts +0 -1
- package/dist/src/views/scheduling/composables/useScheduleDayTimeline.d.ts +16 -2
- package/dist/src/views/scheduling/composables/useScheduleDemandSheet.d.ts +7 -0
- package/dist/src/views/scheduling/composables/useScheduleDragDrop.d.ts +1 -0
- package/dist/src/views/scheduling/composables/useScheduleEmployeeAccess.d.ts +14 -6
- package/dist/src/views/scheduling/composables/useScheduleEmployeeCandidates.d.ts +26 -4
- package/dist/src/views/scheduling/composables/useScheduleEmployeePersistence.d.ts +3 -0
- package/dist/src/views/scheduling/composables/useScheduleEmployeeValidation.d.ts +0 -2
- package/dist/src/views/scheduling/composables/useScheduleExport.d.ts +1 -0
- package/dist/src/views/scheduling/composables/useScheduleLeave.d.ts +5 -1
- package/dist/src/views/scheduling/composables/useScheduleOnboardingDemand.d.ts +1 -1
- package/dist/src/views/scheduling/composables/useScheduleOnboardingEmployees.d.ts +28 -2
- package/dist/src/views/scheduling/composables/useScheduleOnboardingWizard.d.ts +203 -8
- package/dist/src/views/scheduling/composables/useScheduleOutlet.d.ts +11 -8
- package/dist/src/views/scheduling/composables/useSchedulePageActions.d.ts +1 -1
- package/dist/src/views/scheduling/composables/useSchedulePageCellDrop.d.ts +3 -1
- package/dist/src/views/scheduling/composables/useSchedulePageClearActions.d.ts +1 -0
- package/dist/src/views/scheduling/composables/useSchedulePositions.d.ts +6 -0
- package/dist/src/views/scheduling/composables/useSchedulePublish.d.ts +2 -1
- package/dist/src/views/scheduling/composables/useScheduleRoster.d.ts +46 -0
- package/dist/src/views/scheduling/composables/useScheduleSetupBanner.d.ts +2 -2
- package/dist/src/views/scheduling/composables/useScheduleShiftActions.d.ts +29 -1
- package/dist/src/views/scheduling/composables/useScheduleShiftPopover.d.ts +32 -3
- package/dist/src/views/scheduling/country-rules/index.d.ts +8 -3
- package/dist/src/views/scheduling/data.d.ts +17 -0
- package/dist/src/views/scheduling/locales/index.d.ts +28 -0
- package/dist/src/views/scheduling/schedule-state.d.ts +236 -236
- package/dist/src/views/scheduling/schedule-store.d.ts +26 -7
- package/dist/src/views/scheduling/types.d.ts +8 -0
- package/dist/style.css +1 -1
- package/dist/tsconfig.app.tsbuildinfo +1 -1
- package/dist/{useAppStore-BoLkvkE2.js → useAppStore-Bp0PwbAN.js} +1 -1
- package/dist/useDiscardConfirm-CzZSPyvh.js +28 -0
- package/dist/{useLoading-Ch1AUYT1.js → useLoading-sgL8DRUz.js} +1 -1
- package/dist/{useReportPermissions-DM3GOFCC.js → useReportPermissions-DI-xg3OX.js} +3 -3
- package/package.json +2 -2
- package/dist/ScheduleAddPositionModal.vue_vue_type_script_setup_true_lang-Cx9jFgBS.js +0 -492
- package/dist/ScheduleModal.vue_vue_type_script_setup_true_lang-V1sZ_xhO.js +0 -2253
- package/dist/SchedulePage-ndLByVBl.js +0 -17785
- package/dist/_plugin-vue_export-helper-CHgC5LLL.js +0 -9
- package/dist/useDiscardConfirm-DPhEV6v0.js +0 -157
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
import { type ComputedRef } from 'vue';
|
|
2
|
+
import type { IFdtoPosUserSummary } from '@/types/employee';
|
|
2
3
|
import type { ScheduleAddEmployeeForm, ScheduleAddEmployeeStep } from './schedule-add-employee-form';
|
|
4
|
+
import type { ExistingStaffCandidate } from '../types';
|
|
3
5
|
import type { ScheduleBoardApi } from './useScheduleBoard';
|
|
4
6
|
interface UseScheduleEmployeeCandidatesOptions {
|
|
5
7
|
board: ScheduleBoardApi;
|
|
@@ -11,16 +13,36 @@ interface UseScheduleEmployeeCandidatesOptions {
|
|
|
11
13
|
open: {
|
|
12
14
|
value: boolean;
|
|
13
15
|
};
|
|
14
|
-
onPicked: (employeeId: string) => void;
|
|
15
|
-
onPrefillPasscode: (employeeId: string) => void
|
|
16
|
-
onPrefillPosRoles: (employeeId: string) => void
|
|
16
|
+
onPicked: (employeeId: string, employee?: IFdtoPosUserSummary) => void;
|
|
17
|
+
onPrefillPasscode: (employeeId: string, employee?: IFdtoPosUserSummary) => void | Promise<void>;
|
|
18
|
+
onPrefillPosRoles: (employeeId: string, employee?: IFdtoPosUserSummary) => void | Promise<void>;
|
|
19
|
+
onPrefillPosRoleAccess: (roleIds: string[] | null | undefined) => void;
|
|
20
|
+
onPrefillPosRestaurantAccess: (restaurantIds: string[] | null | undefined) => void;
|
|
17
21
|
}
|
|
18
22
|
/** Directory lookup and profile prefill for the existing-employee path of the add wizard. */
|
|
19
23
|
export declare function useScheduleEmployeeCandidates(options: UseScheduleEmployeeCandidatesOptions): {
|
|
20
24
|
selectExistingOpen: import("vue").Ref<boolean, boolean>;
|
|
25
|
+
candidates: import("vue").Ref<{
|
|
26
|
+
employeeId: string;
|
|
27
|
+
name: string;
|
|
28
|
+
otherOutlets: string[];
|
|
29
|
+
locations: string[];
|
|
30
|
+
}[], ExistingStaffCandidate[] | {
|
|
31
|
+
employeeId: string;
|
|
32
|
+
name: string;
|
|
33
|
+
otherOutlets: string[];
|
|
34
|
+
locations: string[];
|
|
35
|
+
}[]>;
|
|
36
|
+
candidatesTotal: import("vue").Ref<number, number>;
|
|
37
|
+
candidatesPage: import("vue").Ref<number, number>;
|
|
38
|
+
candidatesPageItemCount: import("vue").Ref<number, number>;
|
|
39
|
+
candidatesPageSize: number;
|
|
21
40
|
candidatesLoading: import("vue").Ref<boolean, boolean>;
|
|
22
41
|
candidatesError: import("vue").Ref<string | null, string | null>;
|
|
23
|
-
|
|
42
|
+
selectingExisting: import("vue").Ref<boolean, boolean>;
|
|
43
|
+
openSelectExisting: (search?: string) => void;
|
|
44
|
+
searchExisting: (search: string) => void;
|
|
45
|
+
goToExistingPage: (page: number, search: string) => void;
|
|
24
46
|
closeSelectExisting: () => void;
|
|
25
47
|
pickExisting: (employeeId: string) => Promise<void>;
|
|
26
48
|
};
|
|
@@ -1,9 +1,11 @@
|
|
|
1
1
|
import type { ComputedRef, Ref } from 'vue';
|
|
2
|
+
import type { IFdtoPosUserSummary } from '@/types/employee';
|
|
2
3
|
import { type ScheduleAddEmployeeForm } from './schedule-add-employee-form';
|
|
3
4
|
import type { ScheduleBoardApi } from './useScheduleBoard';
|
|
4
5
|
interface UseScheduleEmployeePersistenceOptions {
|
|
5
6
|
form: ScheduleAddEmployeeForm;
|
|
6
7
|
pickedEmployeeId: Ref<string | null>;
|
|
8
|
+
selectedBusinessEmployee: Ref<IFdtoPosUserSummary | null>;
|
|
7
9
|
payAmountNumber: ComputedRef<number>;
|
|
8
10
|
saving: Ref<boolean>;
|
|
9
11
|
saveError: Ref<string | null>;
|
|
@@ -18,6 +20,7 @@ interface UseScheduleEmployeePersistenceOptions {
|
|
|
18
20
|
}[]>;
|
|
19
21
|
effectiveRate: ComputedRef<number>;
|
|
20
22
|
passcodeValue: ComputedRef<string>;
|
|
23
|
+
deferScheduleWrites: Ref<boolean>;
|
|
21
24
|
notify?: (message: string, type?: 'success' | 'error' | 'info') => void;
|
|
22
25
|
}
|
|
23
26
|
/** Persistence for an existing business employee being added to this schedule. */
|
|
@@ -4,7 +4,6 @@ interface UseScheduleEmployeeValidationOptions {
|
|
|
4
4
|
form: ScheduleAddEmployeeForm;
|
|
5
5
|
submitAttempted: Ref<boolean>;
|
|
6
6
|
passcodeOk: ComputedRef<boolean>;
|
|
7
|
-
isNewUser: ComputedRef<boolean>;
|
|
8
7
|
}
|
|
9
8
|
/** Validation guards for the add/edit employee form. Keeping them together makes create and
|
|
10
9
|
* the field-level error indicators consume the same rules. */
|
|
@@ -15,6 +14,5 @@ export declare function useScheduleEmployeeValidation(options: UseScheduleEmploy
|
|
|
15
14
|
posRolesError: ComputedRef<boolean>;
|
|
16
15
|
availabilityOk: ComputedRef<boolean>;
|
|
17
16
|
availabilityError: ComputedRef<boolean>;
|
|
18
|
-
masterCodeError: ComputedRef<boolean>;
|
|
19
17
|
};
|
|
20
18
|
export {};
|
|
@@ -26,6 +26,7 @@ export declare function useScheduleExport(board: ScheduleBoardApi): {
|
|
|
26
26
|
printNow: () => void;
|
|
27
27
|
jpgPreviewOpen: import("vue").Ref<boolean, boolean>;
|
|
28
28
|
jpgPreviewUrl: import("vue").Ref<string | null, string | null>;
|
|
29
|
+
jpgPreviewError: import("vue").Ref<string | null, string | null>;
|
|
29
30
|
jpgPreviewWidth: import("vue").Ref<number, number>;
|
|
30
31
|
jpgPreviewHeight: import("vue").Ref<number, number>;
|
|
31
32
|
jpgFilename: import("vue").Ref<string, string>;
|
|
@@ -15,10 +15,13 @@ export interface ScheduleLeaveState {
|
|
|
15
15
|
selection: TimeOffSelection;
|
|
16
16
|
mode: ScheduleLeaveMode;
|
|
17
17
|
}
|
|
18
|
+
interface ScheduleLeaveOptions {
|
|
19
|
+
notify?: (message: string, type?: 'success' | 'error' | 'info') => void;
|
|
20
|
+
}
|
|
18
21
|
/** The leave editor — V6.2's "Book leave" dialog: a reason, how much of the day it covers, and
|
|
19
22
|
* what that does to the person's availability. Opened from the add popup's Off day / Leave rows
|
|
20
23
|
* (booking) and from an existing leave card (editing, or approving a pending request). */
|
|
21
|
-
export declare function useScheduleLeave(board: ScheduleBoardApi): {
|
|
24
|
+
export declare function useScheduleLeave(board: ScheduleBoardApi, leaveOptions?: ScheduleLeaveOptions): {
|
|
22
25
|
state: {
|
|
23
26
|
open: boolean;
|
|
24
27
|
empId: number | null;
|
|
@@ -57,3 +60,4 @@ export declare function useScheduleLeave(board: ScheduleBoardApi): {
|
|
|
57
60
|
remove: () => Promise<void>;
|
|
58
61
|
};
|
|
59
62
|
export type ScheduleLeaveApi = ReturnType<typeof useScheduleLeave>;
|
|
63
|
+
export {};
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { type Ref } from 'vue';
|
|
2
2
|
import type { ScheduleOnboardingDayHours, ScheduleOnboardingRange } from './onboarding-types';
|
|
3
3
|
import type { SchedulePositionsApi } from './useSchedulePositions';
|
|
4
|
-
export declare function useScheduleOnboardingDemand(hours: ScheduleOnboardingDayHours[], positions: SchedulePositionsApi, note: Ref<string
|
|
4
|
+
export declare function useScheduleOnboardingDemand(hours: ScheduleOnboardingDayHours[], positions: SchedulePositionsApi, note: Ref<string>, isPastDay?: (dayIdx: number) => boolean): {
|
|
5
5
|
demand: import("vue").Reactive<ScheduleOnboardingRange[][]>;
|
|
6
6
|
dmDay: Ref<number, number>;
|
|
7
7
|
staffingSaving: Ref<boolean, boolean>;
|
|
@@ -101,6 +101,28 @@ export declare function useScheduleOnboardingEmployees(options: ScheduleOnboardi
|
|
|
101
101
|
updatedAt?: string | undefined;
|
|
102
102
|
splitGroupId?: string | undefined;
|
|
103
103
|
}[] | null)[];
|
|
104
|
+
timeOff?: ({
|
|
105
|
+
timeOff: "approved" | "pending";
|
|
106
|
+
requestId?: string | undefined;
|
|
107
|
+
type?: "OFF_DAY" | "LEAVE" | undefined;
|
|
108
|
+
leaveType?: "ANNUAL" | "MEDICAL" | "EMERGENCY" | "UNPAID" | undefined;
|
|
109
|
+
reason: string;
|
|
110
|
+
half?: boolean | undefined;
|
|
111
|
+
halfPart?: "AM" | "PM" | undefined;
|
|
112
|
+
from?: string | undefined;
|
|
113
|
+
to?: string | undefined;
|
|
114
|
+
appliedOn?: string | undefined;
|
|
115
|
+
note?: string | undefined;
|
|
116
|
+
cert?: {
|
|
117
|
+
name: string;
|
|
118
|
+
size: string;
|
|
119
|
+
} | null | undefined;
|
|
120
|
+
bal?: {
|
|
121
|
+
type: string;
|
|
122
|
+
entitled: number;
|
|
123
|
+
used: number;
|
|
124
|
+
} | undefined;
|
|
125
|
+
} | null)[] | undefined;
|
|
104
126
|
remarks: {
|
|
105
127
|
author: string;
|
|
106
128
|
date: string;
|
|
@@ -133,6 +155,7 @@ export declare function useScheduleOnboardingEmployees(options: ScheduleOnboardi
|
|
|
133
155
|
to: string;
|
|
134
156
|
}[] | undefined;
|
|
135
157
|
passcode?: string | undefined;
|
|
158
|
+
code?: string | undefined;
|
|
136
159
|
masterUser?: boolean | undefined;
|
|
137
160
|
};
|
|
138
161
|
row: TeamRow;
|
|
@@ -147,17 +170,17 @@ export declare function useScheduleOnboardingEmployees(options: ScheduleOnboardi
|
|
|
147
170
|
end: string;
|
|
148
171
|
}[]>;
|
|
149
172
|
rawEmployee: (empId: number) => {
|
|
173
|
+
minHoursPerDay?: number | null | undefined;
|
|
150
174
|
overtime?: {
|
|
151
175
|
maxHoursPerMonth: number | null;
|
|
152
176
|
} | undefined;
|
|
153
|
-
minHoursPerDay?: number | null | undefined;
|
|
154
177
|
workingHours?: {
|
|
155
178
|
minHoursPerDay: number | null;
|
|
156
179
|
maxHoursPerDay: number | null;
|
|
157
180
|
maxHoursPerWeek: number | null;
|
|
158
181
|
} | undefined;
|
|
159
|
-
name: string;
|
|
160
182
|
employeeId: string;
|
|
183
|
+
name: string;
|
|
161
184
|
employmentType: "FULLTIME" | "PARTTIME";
|
|
162
185
|
wage: {
|
|
163
186
|
type: "HOURLY" | "MONTHLY";
|
|
@@ -180,7 +203,10 @@ export declare function useScheduleOnboardingEmployees(options: ScheduleOnboardi
|
|
|
180
203
|
seedEmployees: (missingOnly?: boolean) => void;
|
|
181
204
|
pickAll: (checked: boolean) => void;
|
|
182
205
|
setPosition: (empId: number, value: string) => void;
|
|
206
|
+
removePositionFromRows: (position: string) => void;
|
|
207
|
+
toggleSecond: (empId: number, position: string) => void;
|
|
183
208
|
setEmployment: (empId: number, kind: TeamEmployment) => void;
|
|
209
|
+
maxHoursFor: (employment: TeamEmployment) => number | null;
|
|
184
210
|
setHours: (empId: number, value: string) => void;
|
|
185
211
|
setRate: (empId: number, value: string) => void;
|
|
186
212
|
bulkOpen: import("vue").Ref<boolean, boolean>;
|
|
@@ -12,14 +12,12 @@ export { MAX_OPERATIONAL_SESSIONS } from './useScheduleOnboardingHours';
|
|
|
12
12
|
export declare function useScheduleOnboardingWizard(board: ScheduleBoardApi, addEmployee: ScheduleAddEmployeeApi, onDemandChanged?: () => void | Promise<void>): {
|
|
13
13
|
board: {
|
|
14
14
|
dayNote: (dayIdx: number) => import("../types").ScheduleDayNote | null;
|
|
15
|
-
setDayNote: (dayIdx: number, title: string, desc: string) => void;
|
|
15
|
+
setDayNote: (dayIdx: number, title: string, desc: string, isPublicHoliday?: boolean) => void;
|
|
16
16
|
clearDayNote: (dayIdx: number) => void;
|
|
17
17
|
isStandingClosedWeekday: (dayIdx: number) => boolean;
|
|
18
18
|
holidayName: (dayIdx: number) => string | null;
|
|
19
|
-
holidayIsAuto: (dayIdx: number) => boolean;
|
|
20
19
|
isPublicHoliday: (dayIdx: number) => boolean;
|
|
21
20
|
holidayRateApplies: (dayIdx: number) => boolean;
|
|
22
|
-
setHolidayNormal: (dayIdx: number, toNormal: boolean) => void;
|
|
23
21
|
setPublicHoliday: (dayIdx: number, on: boolean) => void;
|
|
24
22
|
otRateOn: (dayIdx: number) => number;
|
|
25
23
|
regularRateOn: (dayIdx: number) => number;
|
|
@@ -116,6 +114,28 @@ export declare function useScheduleOnboardingWizard(board: ScheduleBoardApi, add
|
|
|
116
114
|
updatedAt?: string | undefined;
|
|
117
115
|
splitGroupId?: string | undefined;
|
|
118
116
|
}[] | null)[];
|
|
117
|
+
timeOff?: ({
|
|
118
|
+
timeOff: "approved" | "pending";
|
|
119
|
+
requestId?: string | undefined;
|
|
120
|
+
type?: "OFF_DAY" | "LEAVE" | undefined;
|
|
121
|
+
leaveType?: "ANNUAL" | "MEDICAL" | "EMERGENCY" | "UNPAID" | undefined;
|
|
122
|
+
reason: string;
|
|
123
|
+
half?: boolean | undefined;
|
|
124
|
+
halfPart?: "AM" | "PM" | undefined;
|
|
125
|
+
from?: string | undefined;
|
|
126
|
+
to?: string | undefined;
|
|
127
|
+
appliedOn?: string | undefined;
|
|
128
|
+
note?: string | undefined;
|
|
129
|
+
cert?: {
|
|
130
|
+
name: string;
|
|
131
|
+
size: string;
|
|
132
|
+
} | null | undefined;
|
|
133
|
+
bal?: {
|
|
134
|
+
type: string;
|
|
135
|
+
entitled: number;
|
|
136
|
+
used: number;
|
|
137
|
+
} | undefined;
|
|
138
|
+
} | null)[] | undefined;
|
|
119
139
|
remarks: {
|
|
120
140
|
author: string;
|
|
121
141
|
date: string;
|
|
@@ -148,6 +168,7 @@ export declare function useScheduleOnboardingWizard(board: ScheduleBoardApi, add
|
|
|
148
168
|
to: string;
|
|
149
169
|
}[] | undefined;
|
|
150
170
|
passcode?: string | undefined;
|
|
171
|
+
code?: string | undefined;
|
|
151
172
|
masterUser?: boolean | undefined;
|
|
152
173
|
}[], import("../types").Employee[] | {
|
|
153
174
|
id: number;
|
|
@@ -241,6 +262,28 @@ export declare function useScheduleOnboardingWizard(board: ScheduleBoardApi, add
|
|
|
241
262
|
updatedAt?: string | undefined;
|
|
242
263
|
splitGroupId?: string | undefined;
|
|
243
264
|
}[] | null)[];
|
|
265
|
+
timeOff?: ({
|
|
266
|
+
timeOff: "approved" | "pending";
|
|
267
|
+
requestId?: string | undefined;
|
|
268
|
+
type?: "OFF_DAY" | "LEAVE" | undefined;
|
|
269
|
+
leaveType?: "ANNUAL" | "MEDICAL" | "EMERGENCY" | "UNPAID" | undefined;
|
|
270
|
+
reason: string;
|
|
271
|
+
half?: boolean | undefined;
|
|
272
|
+
halfPart?: "AM" | "PM" | undefined;
|
|
273
|
+
from?: string | undefined;
|
|
274
|
+
to?: string | undefined;
|
|
275
|
+
appliedOn?: string | undefined;
|
|
276
|
+
note?: string | undefined;
|
|
277
|
+
cert?: {
|
|
278
|
+
name: string;
|
|
279
|
+
size: string;
|
|
280
|
+
} | null | undefined;
|
|
281
|
+
bal?: {
|
|
282
|
+
type: string;
|
|
283
|
+
entitled: number;
|
|
284
|
+
used: number;
|
|
285
|
+
} | undefined;
|
|
286
|
+
} | null)[] | undefined;
|
|
244
287
|
remarks: {
|
|
245
288
|
author: string;
|
|
246
289
|
date: string;
|
|
@@ -273,6 +316,7 @@ export declare function useScheduleOnboardingWizard(board: ScheduleBoardApi, add
|
|
|
273
316
|
to: string;
|
|
274
317
|
}[] | undefined;
|
|
275
318
|
passcode?: string | undefined;
|
|
319
|
+
code?: string | undefined;
|
|
276
320
|
masterUser?: boolean | undefined;
|
|
277
321
|
}[]>;
|
|
278
322
|
sections: import("vue").Ref<{
|
|
@@ -323,12 +367,14 @@ export declare function useScheduleOnboardingWizard(board: ScheduleBoardApi, add
|
|
|
323
367
|
dayIdx: number;
|
|
324
368
|
kind: "add" | "change" | "remove";
|
|
325
369
|
label: string;
|
|
370
|
+
conflict?: boolean | undefined;
|
|
326
371
|
}[], import("../types").PendingChange[] | {
|
|
327
372
|
empId: number;
|
|
328
373
|
employeeKey: string;
|
|
329
374
|
dayIdx: number;
|
|
330
375
|
kind: "add" | "change" | "remove";
|
|
331
376
|
label: string;
|
|
377
|
+
conflict?: boolean | undefined;
|
|
332
378
|
}[]>;
|
|
333
379
|
unpublishedChanges: import("vue").ComputedRef<import("../types").PendingChange[]>;
|
|
334
380
|
persistPublish: (items: Array<{
|
|
@@ -553,12 +599,17 @@ export declare function useScheduleOnboardingWizard(board: ScheduleBoardApi, add
|
|
|
553
599
|
clearEmployeeShifts: (empId: number) => {
|
|
554
600
|
shifts: number;
|
|
555
601
|
};
|
|
556
|
-
moveShift: (fromEmpId: number, fromDayIdx: number, toEmpId: number, toDayIdx: number, fromSlotIndex?: number, fromSlotCount?: number) => boolean;
|
|
602
|
+
moveShift: (fromEmpId: number, fromDayIdx: number, toEmpId: number, toDayIdx: number, fromSlotIndex?: number, fromSlotCount?: number, targetPosition?: string, allowLocked?: boolean) => boolean;
|
|
557
603
|
swapShifts: (empIdA: number, empIdB: number, dayA: number, dayB?: number, slotIndexA?: number, slotIndexB?: number, slotCountA?: number) => boolean;
|
|
558
|
-
|
|
604
|
+
swapPositions: (empIdA: number, empIdB: number, dayA: number, dayB?: number, slotIndexA?: number, slotIndexB?: number, slotCountA?: number) => boolean;
|
|
605
|
+
clearShiftsInRange: (options?: {
|
|
606
|
+
persist?: boolean;
|
|
607
|
+
mutate?: boolean;
|
|
608
|
+
}) => {
|
|
559
609
|
shifts: number;
|
|
560
610
|
open: number;
|
|
561
611
|
leave: number;
|
|
612
|
+
assignmentIds: string[];
|
|
562
613
|
};
|
|
563
614
|
requiredFor: (dayIdx: number, position: string) => number;
|
|
564
615
|
scheduledFor: (dayIdx: number, position: string) => number;
|
|
@@ -583,6 +634,8 @@ export declare function useScheduleOnboardingWizard(board: ScheduleBoardApi, add
|
|
|
583
634
|
id: string;
|
|
584
635
|
name: string;
|
|
585
636
|
}[]>;
|
|
637
|
+
pendingCreates: string[];
|
|
638
|
+
pendingDeletes: Set<string>;
|
|
586
639
|
count: import("vue").ComputedRef<number>;
|
|
587
640
|
isAdding: import("vue").Ref<boolean, boolean>;
|
|
588
641
|
newName: import("vue").Ref<string, string>;
|
|
@@ -596,6 +649,9 @@ export declare function useScheduleOnboardingWizard(board: ScheduleBoardApi, add
|
|
|
596
649
|
askDelete: (id: string) => void;
|
|
597
650
|
cancelDelete: () => void;
|
|
598
651
|
confirmDelete: (id: string) => Promise<void>;
|
|
652
|
+
commitCreates: () => Promise<void>;
|
|
653
|
+
commitDeletes: () => Promise<void>;
|
|
654
|
+
discardPending: () => void;
|
|
599
655
|
};
|
|
600
656
|
steps: ScheduleOnboardingStep[];
|
|
601
657
|
isSkippable: import("vue").ComputedRef<boolean>;
|
|
@@ -643,8 +699,29 @@ export declare function useScheduleOnboardingWizard(board: ScheduleBoardApi, add
|
|
|
643
699
|
removeRole: (index: number, roleIndex: number) => void;
|
|
644
700
|
namedTotal: (range: import("./onboarding-types").ScheduleOnboardingRange) => number;
|
|
645
701
|
copyDay: (mode: "all" | "wk" | "we") => void;
|
|
702
|
+
settings: {
|
|
703
|
+
payRate: {
|
|
704
|
+
NORMAL: {
|
|
705
|
+
overtime: number;
|
|
706
|
+
};
|
|
707
|
+
REST_DAY: {
|
|
708
|
+
regular: number;
|
|
709
|
+
overtime: number;
|
|
710
|
+
};
|
|
711
|
+
PUBLIC_HOLIDAY: {
|
|
712
|
+
regular: number;
|
|
713
|
+
overtime: number;
|
|
714
|
+
};
|
|
715
|
+
};
|
|
716
|
+
otCapHours: number | null;
|
|
717
|
+
workingHours: {
|
|
718
|
+
minHoursPerDay: number | null;
|
|
719
|
+
maxHoursPerDay: number | null;
|
|
720
|
+
maxHoursPerWeek: number | null;
|
|
721
|
+
};
|
|
722
|
+
};
|
|
646
723
|
addPositionNamed: (name?: string) => void;
|
|
647
|
-
removePosition: (id: string) => void
|
|
724
|
+
removePosition: (id: string) => Promise<void>;
|
|
648
725
|
reviewRows: import("vue").ComputedRef<ReviewRow[]>;
|
|
649
726
|
goTo: (target: ScheduleOnboardingStep) => void;
|
|
650
727
|
avail: Record<number, import("./onboarding-types").AvailRow>;
|
|
@@ -782,6 +859,28 @@ export declare function useScheduleOnboardingWizard(board: ScheduleBoardApi, add
|
|
|
782
859
|
updatedAt?: string | undefined;
|
|
783
860
|
splitGroupId?: string | undefined;
|
|
784
861
|
}[] | null)[];
|
|
862
|
+
timeOff?: ({
|
|
863
|
+
timeOff: "approved" | "pending";
|
|
864
|
+
requestId?: string | undefined;
|
|
865
|
+
type?: "OFF_DAY" | "LEAVE" | undefined;
|
|
866
|
+
leaveType?: "ANNUAL" | "MEDICAL" | "EMERGENCY" | "UNPAID" | undefined;
|
|
867
|
+
reason: string;
|
|
868
|
+
half?: boolean | undefined;
|
|
869
|
+
halfPart?: "AM" | "PM" | undefined;
|
|
870
|
+
from?: string | undefined;
|
|
871
|
+
to?: string | undefined;
|
|
872
|
+
appliedOn?: string | undefined;
|
|
873
|
+
note?: string | undefined;
|
|
874
|
+
cert?: {
|
|
875
|
+
name: string;
|
|
876
|
+
size: string;
|
|
877
|
+
} | null | undefined;
|
|
878
|
+
bal?: {
|
|
879
|
+
type: string;
|
|
880
|
+
entitled: number;
|
|
881
|
+
used: number;
|
|
882
|
+
} | undefined;
|
|
883
|
+
} | null)[] | undefined;
|
|
785
884
|
remarks: {
|
|
786
885
|
author: string;
|
|
787
886
|
date: string;
|
|
@@ -814,6 +913,7 @@ export declare function useScheduleOnboardingWizard(board: ScheduleBoardApi, add
|
|
|
814
913
|
to: string;
|
|
815
914
|
}[] | undefined;
|
|
816
915
|
passcode?: string | undefined;
|
|
916
|
+
code?: string | undefined;
|
|
817
917
|
masterUser?: boolean | undefined;
|
|
818
918
|
};
|
|
819
919
|
row: import("./onboarding-types").TeamRow;
|
|
@@ -823,7 +923,10 @@ export declare function useScheduleOnboardingWizard(board: ScheduleBoardApi, add
|
|
|
823
923
|
teamSomePicked: import("vue").ComputedRef<boolean>;
|
|
824
924
|
pickAll: (checked: boolean) => void;
|
|
825
925
|
setPosition: (empId: number, value: string) => void;
|
|
926
|
+
removePositionFromRows: (position: string) => void;
|
|
927
|
+
toggleSecond: (empId: number, position: string) => void;
|
|
826
928
|
setEmployment: (empId: number, kind: import("./onboarding-types").TeamEmployment) => void;
|
|
929
|
+
maxHoursFor: (employment: import("./onboarding-types").TeamEmployment) => number | null;
|
|
827
930
|
setHours: (empId: number, value: string) => void;
|
|
828
931
|
setRate: (empId: number, value: string) => void;
|
|
829
932
|
bulkOpen: import("vue").Ref<boolean, boolean>;
|
|
@@ -933,6 +1036,28 @@ export declare function useScheduleOnboardingWizard(board: ScheduleBoardApi, add
|
|
|
933
1036
|
updatedAt?: string | undefined;
|
|
934
1037
|
splitGroupId?: string | undefined;
|
|
935
1038
|
}[] | null)[];
|
|
1039
|
+
timeOff?: ({
|
|
1040
|
+
timeOff: "approved" | "pending";
|
|
1041
|
+
requestId?: string | undefined;
|
|
1042
|
+
type?: "OFF_DAY" | "LEAVE" | undefined;
|
|
1043
|
+
leaveType?: "ANNUAL" | "MEDICAL" | "EMERGENCY" | "UNPAID" | undefined;
|
|
1044
|
+
reason: string;
|
|
1045
|
+
half?: boolean | undefined;
|
|
1046
|
+
halfPart?: "AM" | "PM" | undefined;
|
|
1047
|
+
from?: string | undefined;
|
|
1048
|
+
to?: string | undefined;
|
|
1049
|
+
appliedOn?: string | undefined;
|
|
1050
|
+
note?: string | undefined;
|
|
1051
|
+
cert?: {
|
|
1052
|
+
name: string;
|
|
1053
|
+
size: string;
|
|
1054
|
+
} | null | undefined;
|
|
1055
|
+
bal?: {
|
|
1056
|
+
type: string;
|
|
1057
|
+
entitled: number;
|
|
1058
|
+
used: number;
|
|
1059
|
+
} | undefined;
|
|
1060
|
+
} | null)[] | undefined;
|
|
936
1061
|
remarks: {
|
|
937
1062
|
author: string;
|
|
938
1063
|
date: string;
|
|
@@ -965,6 +1090,7 @@ export declare function useScheduleOnboardingWizard(board: ScheduleBoardApi, add
|
|
|
965
1090
|
to: string;
|
|
966
1091
|
}[] | undefined;
|
|
967
1092
|
passcode?: string | undefined;
|
|
1093
|
+
code?: string | undefined;
|
|
968
1094
|
masterUser?: boolean | undefined;
|
|
969
1095
|
}[];
|
|
970
1096
|
candidatesFor: (key: string) => {
|
|
@@ -1059,6 +1185,28 @@ export declare function useScheduleOnboardingWizard(board: ScheduleBoardApi, add
|
|
|
1059
1185
|
updatedAt?: string | undefined;
|
|
1060
1186
|
splitGroupId?: string | undefined;
|
|
1061
1187
|
}[] | null)[];
|
|
1188
|
+
timeOff?: ({
|
|
1189
|
+
timeOff: "approved" | "pending";
|
|
1190
|
+
requestId?: string | undefined;
|
|
1191
|
+
type?: "OFF_DAY" | "LEAVE" | undefined;
|
|
1192
|
+
leaveType?: "ANNUAL" | "MEDICAL" | "EMERGENCY" | "UNPAID" | undefined;
|
|
1193
|
+
reason: string;
|
|
1194
|
+
half?: boolean | undefined;
|
|
1195
|
+
halfPart?: "AM" | "PM" | undefined;
|
|
1196
|
+
from?: string | undefined;
|
|
1197
|
+
to?: string | undefined;
|
|
1198
|
+
appliedOn?: string | undefined;
|
|
1199
|
+
note?: string | undefined;
|
|
1200
|
+
cert?: {
|
|
1201
|
+
name: string;
|
|
1202
|
+
size: string;
|
|
1203
|
+
} | null | undefined;
|
|
1204
|
+
bal?: {
|
|
1205
|
+
type: string;
|
|
1206
|
+
entitled: number;
|
|
1207
|
+
used: number;
|
|
1208
|
+
} | undefined;
|
|
1209
|
+
} | null)[] | undefined;
|
|
1062
1210
|
remarks: {
|
|
1063
1211
|
author: string;
|
|
1064
1212
|
date: string;
|
|
@@ -1091,6 +1239,7 @@ export declare function useScheduleOnboardingWizard(board: ScheduleBoardApi, add
|
|
|
1091
1239
|
to: string;
|
|
1092
1240
|
}[] | undefined;
|
|
1093
1241
|
passcode?: string | undefined;
|
|
1242
|
+
code?: string | undefined;
|
|
1094
1243
|
masterUser?: boolean | undefined;
|
|
1095
1244
|
}[];
|
|
1096
1245
|
posPicker: import("vue").Ref<string | null, string | null>;
|
|
@@ -1189,6 +1338,28 @@ export declare function useScheduleOnboardingWizard(board: ScheduleBoardApi, add
|
|
|
1189
1338
|
updatedAt?: string | undefined;
|
|
1190
1339
|
splitGroupId?: string | undefined;
|
|
1191
1340
|
}[] | null)[];
|
|
1341
|
+
timeOff?: ({
|
|
1342
|
+
timeOff: "approved" | "pending";
|
|
1343
|
+
requestId?: string | undefined;
|
|
1344
|
+
type?: "OFF_DAY" | "LEAVE" | undefined;
|
|
1345
|
+
leaveType?: "ANNUAL" | "MEDICAL" | "EMERGENCY" | "UNPAID" | undefined;
|
|
1346
|
+
reason: string;
|
|
1347
|
+
half?: boolean | undefined;
|
|
1348
|
+
halfPart?: "AM" | "PM" | undefined;
|
|
1349
|
+
from?: string | undefined;
|
|
1350
|
+
to?: string | undefined;
|
|
1351
|
+
appliedOn?: string | undefined;
|
|
1352
|
+
note?: string | undefined;
|
|
1353
|
+
cert?: {
|
|
1354
|
+
name: string;
|
|
1355
|
+
size: string;
|
|
1356
|
+
} | null | undefined;
|
|
1357
|
+
bal?: {
|
|
1358
|
+
type: string;
|
|
1359
|
+
entitled: number;
|
|
1360
|
+
used: number;
|
|
1361
|
+
} | undefined;
|
|
1362
|
+
} | null)[] | undefined;
|
|
1192
1363
|
remarks: {
|
|
1193
1364
|
author: string;
|
|
1194
1365
|
date: string;
|
|
@@ -1221,6 +1392,7 @@ export declare function useScheduleOnboardingWizard(board: ScheduleBoardApi, add
|
|
|
1221
1392
|
to: string;
|
|
1222
1393
|
}[] | undefined;
|
|
1223
1394
|
passcode?: string | undefined;
|
|
1395
|
+
code?: string | undefined;
|
|
1224
1396
|
masterUser?: boolean | undefined;
|
|
1225
1397
|
}[]>;
|
|
1226
1398
|
pickerAllChecked: import("vue").ComputedRef<boolean>;
|
|
@@ -1291,7 +1463,6 @@ export declare function useScheduleOnboardingWizard(board: ScheduleBoardApi, add
|
|
|
1291
1463
|
passcodeOk: import("vue").ComputedRef<boolean>;
|
|
1292
1464
|
currentLocationLabel: import("vue").ComputedRef<string>;
|
|
1293
1465
|
locationOptions: import("vue").Reactive<string[]>;
|
|
1294
|
-
masterCodeError: import("vue").ComputedRef<boolean>;
|
|
1295
1466
|
isNewUser: import("vue").ComputedRef<boolean>;
|
|
1296
1467
|
footerHint: import("vue").ComputedRef<"Pick who — this outlet's own pay, position and hours are still set here." | "One short form. Rest days are set on their profile afterwards.">;
|
|
1297
1468
|
primaryRoleLabel: import("vue").ComputedRef<string>;
|
|
@@ -1303,10 +1474,30 @@ export declare function useScheduleOnboardingWizard(board: ScheduleBoardApi, add
|
|
|
1303
1474
|
availabilityError: import("vue").ComputedRef<boolean>;
|
|
1304
1475
|
saving: import("vue").Ref<boolean, boolean>;
|
|
1305
1476
|
saveError: import("vue").Ref<string | null, string | null>;
|
|
1477
|
+
deferScheduleWrites: import("vue").Ref<boolean, boolean>;
|
|
1306
1478
|
candidatesLoading: import("vue").Ref<boolean, boolean>;
|
|
1307
1479
|
candidatesError: import("vue").Ref<string | null, string | null>;
|
|
1480
|
+
selectingExisting: import("vue").Ref<boolean, boolean>;
|
|
1481
|
+
candidates: import("vue").Ref<{
|
|
1482
|
+
employeeId: string;
|
|
1483
|
+
name: string;
|
|
1484
|
+
otherOutlets: string[];
|
|
1485
|
+
locations: string[];
|
|
1486
|
+
}[], import("../types").ExistingStaffCandidate[] | {
|
|
1487
|
+
employeeId: string;
|
|
1488
|
+
name: string;
|
|
1489
|
+
otherOutlets: string[];
|
|
1490
|
+
locations: string[];
|
|
1491
|
+
}[]>;
|
|
1492
|
+
candidatesTotal: import("vue").Ref<number, number>;
|
|
1493
|
+
candidatesPage: import("vue").Ref<number, number>;
|
|
1494
|
+
candidatesPageItemCount: import("vue").Ref<number, number>;
|
|
1495
|
+
candidatesPageSize: number;
|
|
1496
|
+
searchExisting: (search: string) => void;
|
|
1497
|
+
goToExistingPage: (page: number, search: string) => void;
|
|
1308
1498
|
openWizard: (section: string) => void;
|
|
1309
1499
|
openEditFor: (emp: import("../types").Employee) => void;
|
|
1500
|
+
confirmClose: () => void;
|
|
1310
1501
|
close: () => void;
|
|
1311
1502
|
setMode: (m: import("./schedule-add-employee-form").ScheduleAddEmployeeMode) => void;
|
|
1312
1503
|
openSelectExisting: () => void;
|
|
@@ -1326,7 +1517,8 @@ export declare function useScheduleOnboardingWizard(board: ScheduleBoardApi, add
|
|
|
1326
1517
|
setAvailHour: (index: number, field: "from" | "to", value: string) => void;
|
|
1327
1518
|
copyAvailHourDown: (index: number) => void;
|
|
1328
1519
|
setPasscodeDigit: (index: number, value: string) => void;
|
|
1329
|
-
generatePasscode: () => void
|
|
1520
|
+
generatePasscode: () => Promise<void>;
|
|
1521
|
+
isGeneratingPasscode: import("vue").Ref<boolean, boolean>;
|
|
1330
1522
|
togglePosAccess: () => void;
|
|
1331
1523
|
addPosRoleRow: () => void;
|
|
1332
1524
|
removePosRoleRow: (index: number) => void;
|
|
@@ -1334,6 +1526,9 @@ export declare function useScheduleOnboardingWizard(board: ScheduleBoardApi, add
|
|
|
1334
1526
|
setPosRoleOutlet: (index: number, outlet: string) => void;
|
|
1335
1527
|
setPosRoleId: (index: number, roleId: string) => void;
|
|
1336
1528
|
posRoleOptionsFor: (outlet: string) => import("../../../types/role").Role[];
|
|
1529
|
+
isPosRoleUsable: (role: import("../../../types/role").Role) => boolean;
|
|
1530
|
+
setMasterUserRoleAccess: (roleIds: string[] | null | undefined) => void;
|
|
1531
|
+
isPosOutletUsable: (outlet: string) => boolean;
|
|
1337
1532
|
posRolesHint: import("vue").ComputedRef<"" | "No outlet assigned, so their passcode will not open a till yet." | "The same outlet is listed twice — only the last role on it will apply.">;
|
|
1338
1533
|
create: () => Promise<boolean>;
|
|
1339
1534
|
};
|
|
@@ -1,16 +1,18 @@
|
|
|
1
1
|
import type { ScheduleSelectOption } from '../components/ScheduleSelect.vue';
|
|
2
2
|
/** Which outlet the board is scheduling, and the picker that changes it.
|
|
3
3
|
*
|
|
4
|
-
* On entry the
|
|
5
|
-
*
|
|
6
|
-
*
|
|
7
|
-
*
|
|
4
|
+
* On entry the outlet last picked in the schedule wins, remembered per business in localStorage.
|
|
5
|
+
* The host shell (mf-common) resets its own `currentRestaurant` to the first manageable outlet
|
|
6
|
+
* and rewrites `?restaurantId=` on every reload, so neither the URL nor the shell's selection
|
|
7
|
+
* can carry the user's pick across a refresh. Only when nothing was ever picked here does the
|
|
8
|
+
* shell's selection decide, so arriving from elsewhere in the portal lands on the outlet that
|
|
9
|
+
* was already being looked at. Failing that it falls back to the first outlet in the business,
|
|
10
|
+
* which is better than an empty board. The picker offers only restaurants the user can manage.
|
|
8
11
|
*
|
|
9
|
-
* Switching from the picker writes the new id back into `?restaurantId=` too
|
|
10
|
-
* `router.replace`, not a navigation, so it does not reload the page or add a history entry.
|
|
12
|
+
* Switching from the picker saves the pick and writes the new id back into `?restaurantId=` too,
|
|
13
|
+
* via `router.replace`, not a navigation, so it does not reload the page or add a history entry.
|
|
11
14
|
* The picker already re-fetches everything the new outlet needs (see switchTo below); this just
|
|
12
|
-
* keeps the address bar honest about which one is on screen
|
|
13
|
-
* back on it instead of silently snapping to whatever the shell had before. */
|
|
15
|
+
* keeps the address bar honest about which one is on screen. */
|
|
14
16
|
export declare function useScheduleOutlet(): {
|
|
15
17
|
options: import("vue").ComputedRef<ScheduleSelectOption[]>;
|
|
16
18
|
ready: import("vue").Ref<boolean, boolean>;
|
|
@@ -18,5 +20,6 @@ export declare function useScheduleOutlet(): {
|
|
|
18
20
|
resolve: () => Promise<string>;
|
|
19
21
|
resolveOutlet: () => Promise<string>;
|
|
20
22
|
switchTo: (restaurantId: string, weekStart: Date) => Promise<boolean>;
|
|
23
|
+
setBeforeSwitch: (handler: (restaurantId: string) => boolean | Promise<boolean>) => void;
|
|
21
24
|
};
|
|
22
25
|
export type ScheduleOutletApi = ReturnType<typeof useScheduleOutlet>;
|
|
@@ -11,7 +11,7 @@ export declare function useSchedulePageActions(options: UseSchedulePageActionsOp
|
|
|
11
11
|
comingSoon: () => void;
|
|
12
12
|
onSchedStatusClick: () => void;
|
|
13
13
|
onApplyProposals: (count: number) => void;
|
|
14
|
-
onApplyAndPublishProposals: (count: number) => void
|
|
14
|
+
onApplyAndPublishProposals: (count: number) => Promise<void>;
|
|
15
15
|
onProposalDragStart: (id: number, event: DragEvent) => void;
|
|
16
16
|
onScroll: (delta: number) => void;
|
|
17
17
|
};
|
|
@@ -13,6 +13,8 @@ interface UseSchedulePageCellDropOptions {
|
|
|
13
13
|
notify: (message: string, type: 'error') => void;
|
|
14
14
|
}
|
|
15
15
|
export declare function useSchedulePageCellDrop(options: UseSchedulePageCellDropOptions): {
|
|
16
|
-
onCellDrop: (empId: number, dayIdx: number, event: DragEvent) => void;
|
|
16
|
+
onCellDrop: (empId: number, dayIdx: number, event: DragEvent, targetSlotIndex?: number, kind?: "employee" | "position") => void;
|
|
17
|
+
confirmPositionSwap: (toEmpId: number, toDayIdx: number, onConfirm: () => void) => void;
|
|
18
|
+
confirmPositionDrop: (targetDayIdx: number, onConfirm: () => void) => void;
|
|
17
19
|
};
|
|
18
20
|
export {};
|
|
@@ -14,6 +14,7 @@ type Snackbar = {
|
|
|
14
14
|
};
|
|
15
15
|
export declare function useSchedulePageClearActions(board: ScheduleBoardApi, demand: ScheduleDemandApi, snackbar: Snackbar): {
|
|
16
16
|
clearKind: import("vue").Ref<ClearKind | null, ClearKind | null>;
|
|
17
|
+
clearing: import("vue").Ref<boolean, boolean>;
|
|
17
18
|
onConfirmClear: () => Promise<void>;
|
|
18
19
|
};
|
|
19
20
|
export type SchedulePageClearActionsApi = ReturnType<typeof useSchedulePageClearActions>;
|