@feedmepos/mf-hrm-portal 2.2.5-dev.9 → 2.3.0-dev
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-D5l9vIsE.js → ApprovalCodeList-cG0zmQVJ.js} +5 -5
- package/dist/{AuditLogList-ByTa5UJY.js → AuditLogList-BTifJhO1.js} +4 -4
- package/dist/{ConditionBuilderForm.vue_vue_type_script_setup_true_lang-mNdn1TYV.js → ConditionBuilderForm.vue_vue_type_script_setup_true_lang-qr5TwLTK.js} +2 -2
- package/dist/{EmployeeList-Bv6ANk-P.js → EmployeeList-DzcMtxJ3.js} +6 -6
- package/dist/{GrantUserList-Bt8w3p4j.js → GrantUserList-D5b7tJ8Y.js} +6 -6
- package/dist/{Main-DqiGpT4v.js → Main-B2r59IOW.js} +5 -5
- package/dist/{Main-DHJcgePj.js → Main-DFwdAWqn.js} +8 -8
- package/dist/{Main-DkP8dWgn.js → Main-DkLBemi7.js} +11 -11
- package/dist/{PermissionSetList-BIGv1u67.js → PermissionSetList-B80hrfMW.js} +7 -7
- package/dist/PortalPermissionEditor.vue_vue_type_script_setup_true_lang-DjNcJQM9.js +4167 -0
- package/dist/{PortalUserSearcher.vue_vue_type_style_index_0_scoped_827dfd60_lang-XHuHin8t.js → PortalUserSearcher.vue_vue_type_style_index_0_scoped_827dfd60_lang-fe-Rdwn4.js} +1 -1
- package/dist/{RoleList-CH6NDKPU.js → RoleList-DHO4JRKF.js} +9 -9
- package/dist/ScheduleAddPositionModal.vue_vue_type_script_setup_true_lang-B-XtB64L.js +452 -0
- package/dist/ScheduleGeneralPage-WlBM8bxV.js +629 -0
- package/dist/SchedulePage-Nm0krGVU.js +17056 -0
- package/dist/SchedulePositionPage-C0hrO11d.js +263 -0
- package/dist/ScheduleSelect.vue_vue_type_script_setup_true_lang-DTDXir_7.js +1150 -0
- package/dist/{TeamMemberList-BwfG3go2.js → TeamMemberList-CgFWLRBM.js} +10 -10
- package/dist/{TimesheetList-DcoqzbLO.js → TimesheetList-Dp40G-0I.js} +7 -7
- package/dist/{TimesheetList.vue_vue_type_style_index_0_scoped_63294af2_lang-RyhiKTSd.js → TimesheetList.vue_vue_type_style_index_0_scoped_63294af2_lang-BFjrMhUG.js} +3 -3
- package/dist/{app-BcZ6C8M8.js → app-CmBSTvaI.js} +851 -739
- package/dist/app.js +1 -1
- package/dist/{approval-code-jIjkeVEb.js → approval-code-C9DmR4Md.js} +1 -1
- package/dist/{dayjs.min-Ch0iysTG.js → dayjs.min-CfL2DQ3d.js} +1 -1
- package/dist/{employee-DwYHFacQ.js → employee-DQcHjoij.js} +4 -4
- package/dist/{grant-user-SNiDV22U.js → grant-user-Bv-pJ9Wt.js} +1 -1
- package/dist/{iteration-D1uWLp0V.js → iteration-BlavheWG.js} +1 -1
- package/dist/{lodash-DErxm7xf.js → lodash-QerqayrJ.js} +1 -1
- package/dist/{restaurant-BTpBmfBV.js → restaurant-D7PEQjPY.js} +257 -251
- package/dist/{role-B9VanAny.js → role-RM2YLO7n.js} +2 -2
- package/dist/{rule-C4f_Ilzr.js → rule-DjlvYIuP.js} +3 -3
- package/dist/src/api/restaurant/index.d.ts +2 -0
- package/dist/src/api/schedule/index.d.ts +12 -2
- package/dist/src/composables/useMessage.d.ts +8 -2
- package/dist/src/types/schedule.d.ts +10 -218
- package/dist/src/views/scheduling/components/ScheduleAddEmployeeModal.vue.d.ts +2 -0
- package/dist/src/views/scheduling/components/ScheduleAreaRows.vue.d.ts +11 -0
- package/dist/src/views/scheduling/components/ScheduleAutoScheduleDetailsModal.vue.d.ts +6 -0
- package/dist/src/views/scheduling/components/ScheduleCloneOutletModal.vue.d.ts +6 -0
- package/dist/src/views/scheduling/components/{ScheduleLegendBar.vue.d.ts → ScheduleCoach.vue.d.ts} +2 -2
- package/dist/src/views/scheduling/components/ScheduleConfirmModal.vue.d.ts +9 -1
- package/dist/src/views/scheduling/components/ScheduleCostRailEmptyArt.vue.d.ts +2 -0
- package/dist/src/views/scheduling/components/ScheduleExportDoneDialog.vue.d.ts +6 -0
- package/dist/src/views/scheduling/components/ScheduleLeaveEditModal.vue.d.ts +0 -2
- package/dist/src/views/scheduling/components/ScheduleOnboardingComplete.vue.d.ts +10 -0
- package/dist/src/views/scheduling/components/ScheduleOnboardingDoneArt.vue.d.ts +2 -0
- package/dist/src/views/scheduling/components/ScheduleOnboardingWelcome.vue.d.ts +1 -2
- package/dist/src/views/scheduling/components/ScheduleShiftCardMenu.vue.d.ts +2 -2
- package/dist/src/views/scheduling/components/ScheduleShiftCell.vue.d.ts +6 -6
- package/dist/src/views/scheduling/components/ScheduleShiftMoreOptions.vue.d.ts +2 -0
- package/dist/src/views/scheduling/components/ScheduleStaffRail.vue.d.ts +0 -2
- package/dist/src/views/scheduling/components/ScheduleStaffRows.vue.d.ts +6 -6
- package/dist/src/views/scheduling/components/ScheduleTourAllSet.vue.d.ts +6 -0
- package/dist/src/views/scheduling/composables/auto-schedule-mapping.d.ts +33 -0
- package/dist/src/views/scheduling/composables/onboarding-constants.d.ts +5 -0
- package/dist/src/views/scheduling/composables/onboarding-hours.d.ts +7 -0
- package/dist/src/views/scheduling/composables/onboarding-types.d.ts +50 -0
- package/dist/src/views/scheduling/composables/schedule-add-employee-form.d.ts +8 -2
- package/dist/src/views/scheduling/composables/schedule-board-helpers.d.ts +22 -1
- package/dist/src/views/scheduling/composables/schedule-breaks.d.ts +3 -0
- package/dist/src/views/scheduling/composables/schedule-day-meta.d.ts +2 -8
- package/dist/src/views/scheduling/composables/schedule-shift-time.d.ts +12 -0
- package/dist/src/views/scheduling/composables/useScheduleAddEmployee.d.ts +11 -8
- package/dist/src/views/scheduling/composables/useScheduleAddPick.d.ts +10 -2
- package/dist/src/views/scheduling/composables/useScheduleAreaBoard.d.ts +13 -0
- package/dist/src/views/scheduling/composables/useScheduleAutoSchedule.d.ts +158 -12
- package/dist/src/views/scheduling/composables/useScheduleBoard.d.ts +110 -13
- package/dist/src/views/scheduling/composables/useScheduleClashDetection.d.ts +11 -1
- package/dist/src/views/scheduling/composables/useScheduleCloneOutletModal.d.ts +19 -0
- package/dist/src/views/scheduling/composables/useScheduleCoach.d.ts +80 -0
- package/dist/src/views/scheduling/composables/useScheduleDayNote.d.ts +0 -3
- package/dist/src/views/scheduling/composables/useScheduleDayTimeline.d.ts +24 -1
- package/dist/src/views/scheduling/composables/useScheduleDemandRow.d.ts +4 -2
- package/dist/src/views/scheduling/composables/useScheduleDragDrop.d.ts +33 -1
- package/dist/src/views/scheduling/composables/useScheduleExport.d.ts +17 -0
- package/dist/src/views/scheduling/composables/useScheduleGapPopover.d.ts +1 -3
- package/dist/src/views/scheduling/composables/useScheduleLeave.d.ts +20 -31
- package/dist/src/views/scheduling/composables/useScheduleOnboardingFlow.d.ts +9 -0
- package/dist/src/views/scheduling/composables/useScheduleOnboardingPersistence.d.ts +13 -0
- package/dist/src/views/scheduling/composables/useScheduleOnboardingWizard.d.ts +327 -75
- package/dist/src/views/scheduling/composables/useScheduleOutlet.d.ts +5 -3
- package/dist/src/views/scheduling/composables/useSchedulePageBootstrap.d.ts +9 -0
- package/dist/src/views/scheduling/composables/useSchedulePageClearActions.d.ts +20 -0
- package/dist/src/views/scheduling/composables/useSchedulePageOverlays.d.ts +18 -0
- package/dist/src/views/scheduling/composables/useSchedulePositionModal.d.ts +2 -0
- package/dist/src/views/scheduling/composables/useSchedulePositions.d.ts +0 -5
- package/dist/src/views/scheduling/composables/useSchedulePublish.d.ts +25 -0
- package/dist/src/views/scheduling/composables/useScheduleRoster.d.ts +53 -1
- package/dist/src/views/scheduling/composables/useScheduleSettings.d.ts +7 -4
- package/dist/src/views/scheduling/composables/useScheduleSetupBanner.d.ts +8 -9
- package/dist/src/views/scheduling/composables/useScheduleShiftActions.d.ts +63 -92
- package/dist/src/views/scheduling/composables/useScheduleShiftPopover.d.ts +30 -2
- package/dist/src/views/scheduling/composables/useScheduleStaffRail.d.ts +5 -11
- package/dist/src/views/scheduling/composables/useScheduleStatsRow.d.ts +0 -1
- package/dist/src/views/scheduling/composables/useScheduleTopbar.d.ts +4 -4
- package/dist/src/views/scheduling/composables/useScheduleTour.d.ts +93 -0
- package/dist/src/views/scheduling/data.d.ts +6 -19
- package/dist/src/views/scheduling/locales/index.d.ts +116 -4
- package/dist/src/views/scheduling/schedule-state.d.ts +679 -0
- package/dist/src/views/scheduling/schedule-store.d.ts +16 -60
- package/dist/src/views/scheduling/types.d.ts +29 -2
- package/dist/style.css +1 -1
- package/dist/tsconfig.app.tsbuildinfo +1 -1
- package/dist/{useAppStore-DCwd8GWN.js → useAppStore-d_nHyK5u.js} +1 -1
- package/dist/{useLoading-CXzTpIVv.js → useLoading-JFoghhRz.js} +1 -1
- package/dist/{useReportPermissions-CTr56kBo.js → useReportPermissions-Bl6Br79r.js} +3 -3
- package/package.json +3 -2
- package/dist/PortalPermissionEditor.vue_vue_type_script_setup_true_lang-niywl_DX.js +0 -4167
- package/dist/ScheduleAddPositionModal.vue_vue_type_script_setup_true_lang-T1ACkX_6.js +0 -426
- package/dist/ScheduleButton.vue_vue_type_script_setup_true_lang-BzQuLLf5.js +0 -690
- package/dist/ScheduleGeneralPage-DJPENJZ2.js +0 -320
- package/dist/SchedulePage-C1egcbIC.js +0 -14421
- package/dist/SchedulePositionPage-OhL_hsqG.js +0 -293
- package/dist/ScheduleSelect.vue_vue_type_script_setup_true_lang-B8W4sTsA.js +0 -242
- package/dist/src/views/scheduling/composables/scheduleAutoSolver.d.ts +0 -21
- package/dist/src/views/scheduling/composables/useScheduleLegendBar.d.ts +0 -35
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { defineStore as x, storeToRefs as b } from "pinia";
|
|
2
2
|
import { ref as w } from "vue";
|
|
3
3
|
import { useCoreStore as B } from "@feedmepos/mf-common";
|
|
4
|
-
import { s as v } from "./iteration-
|
|
5
|
-
import { g as f, b as p, u as I } from "./restaurant-
|
|
4
|
+
import { s as v } from "./iteration-BlavheWG.js";
|
|
5
|
+
import { g as f, b as p, u as I } from "./restaurant-D7PEQjPY.js";
|
|
6
6
|
const R = {
|
|
7
7
|
async readRoles() {
|
|
8
8
|
return f(await p().get("/pos-roles"));
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { s as W, c as q, e as y } from "./iteration-
|
|
2
|
-
import { e as O, b as V, c as _, v as F, n as h, O as ee, D as M } from "./app-
|
|
1
|
+
import { s as W, c as q, e as y } from "./iteration-BlavheWG.js";
|
|
2
|
+
import { e as O, b as V, c as _, v as F, n as h, O as ee, D as M } from "./app-CmBSTvaI.js";
|
|
3
3
|
import { s as se } from "./utils-BZkjJbju.js";
|
|
4
|
-
import { g, b as v, q as x, u as te } from "./restaurant-
|
|
4
|
+
import { g, b as v, q as x, u as te } from "./restaurant-D7PEQjPY.js";
|
|
5
5
|
import { defineStore as z, storeToRefs as K } from "pinia";
|
|
6
6
|
import { ref as S, computed as T } from "vue";
|
|
7
7
|
import { useCoreStore as X } from "@feedmepos/mf-common";
|
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
import type { HrmRestaurant } from '@/types/restaurant';
|
|
2
|
+
import type { FdtoScheduleDayOperatingHours } from '@feedmepos/hrm-schedule-contract';
|
|
2
3
|
declare const RestaurantAPI: {
|
|
3
4
|
readRestaurants(): Promise<HrmRestaurant[]>;
|
|
5
|
+
saveOperationalHours(restaurantId: string, operatingHours: FdtoScheduleDayOperatingHours[]): Promise<void>;
|
|
4
6
|
};
|
|
5
7
|
export default RestaurantAPI;
|
|
@@ -1,8 +1,18 @@
|
|
|
1
|
-
import type { FdtoScheduleAssignment,
|
|
1
|
+
import type { FdtoScheduleAssignment, FdtoScheduleAutoScheduleApplyReq, FdtoScheduleAutoScheduleApplyResult, FdtoScheduleAutoScheduleCapabilities, FdtoScheduleAutoScheduleGenerateReq, FdtoScheduleAutoScheduleResult, FdtoScheduleBoard, FdtoScheduleBulkUpdateAssignmentStatusReq, FdtoScheduleCreateEmployeeProfileReq, FdtoScheduleEmployeeConfig, FdtoScheduleDemand, FdtoScheduleEmployee, FdtoSchedulePosition, FdtoScheduleSaveAssignmentReq, FdtoScheduleSaveDemandReq, FdtoScheduleSaveEmployeeConfigsReq, FdtoScheduleSavePositionReq, FdtoScheduleSaveScheduleDayReq, FdtoScheduleSaveSettingsReq, FdtoScheduleSettings, FdtoScheduleScheduleDay, FdtoScheduleUpdateEmployeeProfileReq, FdtoScheduleCreateTimeOffReq, FdtoScheduleTimeOff, FdtoScheduleUpdateTimeOffStatusReq } from '@/types/schedule';
|
|
2
2
|
declare const ScheduleAPI: {
|
|
3
|
-
|
|
3
|
+
listEmployeeProfiles(employeeIds?: string[]): Promise<FdtoScheduleEmployee[]>;
|
|
4
|
+
listEmployeeConfigs(restaurantId: string): Promise<FdtoScheduleEmployeeConfig[]>;
|
|
5
|
+
saveEmployeeConfigs(restaurantId: string, req: FdtoScheduleSaveEmployeeConfigsReq): Promise<FdtoScheduleEmployeeConfig[]>;
|
|
6
|
+
getSettings(restaurantId: string): Promise<FdtoScheduleSettings>;
|
|
7
|
+
saveSettings(restaurantId: string, req: FdtoScheduleSaveSettingsReq): Promise<FdtoScheduleSettings>;
|
|
8
|
+
generateAutoSchedule(restaurantId: string, req: FdtoScheduleAutoScheduleGenerateReq): Promise<FdtoScheduleAutoScheduleResult>;
|
|
9
|
+
getAutoScheduleCapabilities(restaurantId: string): Promise<FdtoScheduleAutoScheduleCapabilities>;
|
|
10
|
+
applyAutoSchedule(restaurantId: string, req: FdtoScheduleAutoScheduleApplyReq): Promise<FdtoScheduleAutoScheduleApplyResult>;
|
|
4
11
|
/** One outlet's whole board over `[from, to]` (inclusive, 'YYYY-MM-DD'). */
|
|
5
12
|
readBoard(restaurantId: string, from: string, to: string): Promise<FdtoScheduleBoard>;
|
|
13
|
+
createTimeOff(restaurantId: string, req: FdtoScheduleCreateTimeOffReq): Promise<FdtoScheduleTimeOff>;
|
|
14
|
+
updateTimeOffStatus(restaurantId: string, id: string, req: FdtoScheduleUpdateTimeOffStatusReq): Promise<FdtoScheduleTimeOff | null>;
|
|
15
|
+
deleteTimeOff(restaurantId: string, id: string): Promise<void>;
|
|
6
16
|
/** Creates or updates the employee's shared business-level scheduling profile. */
|
|
7
17
|
createEmployeeProfile(_restaurantId: string, req: FdtoScheduleCreateEmployeeProfileReq): Promise<FdtoScheduleEmployee>;
|
|
8
18
|
/** Edits the employee's shared business-level scheduling profile. */
|
|
@@ -1,4 +1,10 @@
|
|
|
1
|
+
import { SnackbarPosition } from '@feedmepos/ui-library';
|
|
2
|
+
export interface MessageOptions {
|
|
3
|
+
/** Where the snackbar is anchored. Defaults to the library's own default (top-right). */
|
|
4
|
+
position?: SnackbarPosition;
|
|
5
|
+
}
|
|
1
6
|
export declare function useMessage(): {
|
|
2
|
-
success: (message: string) => void;
|
|
3
|
-
error: (message: string) => void;
|
|
7
|
+
success: (message: string, options?: MessageOptions) => void;
|
|
8
|
+
error: (message: string, options?: MessageOptions) => void;
|
|
4
9
|
};
|
|
10
|
+
export { SnackbarPosition };
|
|
@@ -1,187 +1,13 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
*
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
positionId: string;
|
|
12
|
-
positionName: string;
|
|
13
|
-
}
|
|
14
|
-
/** What a create/update request names a position by — see the backend DTO of the same name.
|
|
15
|
-
* `positionId` wins server-side when it resolves; `positionName` is what every picker on this
|
|
16
|
-
* board actually has to offer (see `POSITIONS`/`positionIdOf` in `data.ts`), so it's always
|
|
17
|
-
* sent too, as the fallback a stale or not-yet-loaded id catalogue would need. */
|
|
18
|
-
export interface FdtoSchedulePositionSelectorReq {
|
|
19
|
-
positionId?: string;
|
|
20
|
-
positionName: string;
|
|
21
|
-
}
|
|
22
|
-
/** Multipliers on an hour's pay, by the kind of day it falls on. A NORMAL day carries only an
|
|
23
|
-
* overtime multiplier — its ordinary hours are 1× by definition. */
|
|
24
|
-
export interface FdtoSchedulePayRate {
|
|
25
|
-
NORMAL: {
|
|
26
|
-
overtime: number;
|
|
27
|
-
};
|
|
28
|
-
REST_DAY: {
|
|
29
|
-
regular: number;
|
|
30
|
-
overtime: number;
|
|
31
|
-
};
|
|
32
|
-
PUBLIC_HOLIDAY: {
|
|
33
|
-
regular: number;
|
|
34
|
-
overtime: number;
|
|
35
|
-
};
|
|
36
|
-
}
|
|
37
|
-
export interface FdtoScheduleSettings {
|
|
38
|
-
payRate: FdtoSchedulePayRate;
|
|
39
|
-
}
|
|
40
|
-
/** When the outlet trades, from its own Restaurants profile — ScheduleSettings no longer
|
|
41
|
-
* carries it. `dayOfWeek` is JS `getDay()` (0 = Sunday). A closed day carries no windows; an
|
|
42
|
-
* open day carries one or more `{start, end}` windows (a lunch/dinner split reads as two, not
|
|
43
|
-
* one that spans the gap between them). */
|
|
44
|
-
export interface FdtoScheduleDayOperatingHours {
|
|
45
|
-
dayOfWeek: number;
|
|
46
|
-
closed: boolean;
|
|
47
|
-
hours: Array<{
|
|
48
|
-
start: string;
|
|
49
|
-
end: string;
|
|
50
|
-
}>;
|
|
51
|
-
}
|
|
52
|
-
export interface FdtoScheduleRestaurantProfile {
|
|
53
|
-
operatingHours: FdtoScheduleDayOperatingHours[];
|
|
54
|
-
}
|
|
55
|
-
/** Creates or updates the employee's business-level scheduling profile through POST /employees. */
|
|
56
|
-
export interface FdtoScheduleCreateEmployeeProfileReq {
|
|
57
|
-
employeeId: string;
|
|
58
|
-
employeeName: string;
|
|
59
|
-
employmentType?: 'FULLTIME' | 'PARTTIME';
|
|
60
|
-
workingHour?: number;
|
|
61
|
-
wage?: {
|
|
62
|
-
type: 'HOURLY' | 'MONTHLY';
|
|
63
|
-
amount: number;
|
|
64
|
-
};
|
|
65
|
-
primaryPosition?: FdtoSchedulePositionSelectorReq;
|
|
66
|
-
secondaryPositions?: FdtoSchedulePositionSelectorReq[];
|
|
67
|
-
availability?: Array<{
|
|
68
|
-
dayOfWeek: number;
|
|
69
|
-
start: string;
|
|
70
|
-
end: string;
|
|
71
|
-
}>;
|
|
72
|
-
}
|
|
73
|
-
/** Editable profile fields. The API helper adds employeeId to the POST /employees body. */
|
|
74
|
-
export type FdtoScheduleUpdateEmployeeProfileReq = Omit<FdtoScheduleCreateEmployeeProfileReq, 'employeeId'>;
|
|
75
|
-
export interface FdtoScheduleEmployee {
|
|
76
|
-
employeeId: string;
|
|
77
|
-
name: string;
|
|
78
|
-
employmentType: 'FULLTIME' | 'PARTTIME';
|
|
79
|
-
workingHour: number;
|
|
80
|
-
wage: {
|
|
81
|
-
type: 'HOURLY' | 'MONTHLY';
|
|
82
|
-
amount: number;
|
|
83
|
-
};
|
|
84
|
-
primaryPosition: FdtoSchedulePositionRef | null;
|
|
85
|
-
secondaryPositions: FdtoSchedulePositionRef[];
|
|
86
|
-
availability: Array<{
|
|
87
|
-
dayOfWeek: number;
|
|
88
|
-
start: string;
|
|
89
|
-
end: string;
|
|
90
|
-
}>;
|
|
91
|
-
}
|
|
92
|
-
export interface FdtoScheduleAssignment {
|
|
93
|
-
id: string;
|
|
94
|
-
employeeId: string;
|
|
95
|
-
position: FdtoSchedulePositionRef | null;
|
|
96
|
-
date: string;
|
|
97
|
-
startTime: string;
|
|
98
|
-
endTime: string;
|
|
99
|
-
breakMinutes: number;
|
|
100
|
-
status: 'DRAFT' | 'PUBLISHED' | 'CONFIRMED';
|
|
101
|
-
}
|
|
102
|
-
/** Creates or replaces one plain assignment — see the backend DTO of the same name for the
|
|
103
|
-
* full contract. */
|
|
104
|
-
export interface FdtoScheduleSaveAssignmentReq {
|
|
105
|
-
employeeId: string;
|
|
106
|
-
date: string;
|
|
107
|
-
startTime: string;
|
|
108
|
-
endTime: string;
|
|
109
|
-
breakMinutes?: number;
|
|
110
|
-
position?: FdtoSchedulePositionSelectorReq;
|
|
111
|
-
status?: 'DRAFT' | 'PUBLISHED' | 'CONFIRMED';
|
|
112
|
-
}
|
|
113
|
-
/** Flips a batch of existing assignments to one status in a single request — see the backend
|
|
114
|
-
* DTO of the same name. */
|
|
115
|
-
export interface FdtoScheduleBulkUpdateAssignmentStatusReq {
|
|
116
|
-
ids: string[];
|
|
117
|
-
status: 'DRAFT' | 'PUBLISHED' | 'CONFIRMED';
|
|
118
|
-
}
|
|
119
|
-
export type FdtoScheduleAutoScheduleObjective = 'BALANCED' | 'SERVICE' | 'LOWER_COST' | 'STABLE_HOURS';
|
|
120
|
-
export interface FdtoScheduleAutoScheduleReq {
|
|
121
|
-
from: string;
|
|
122
|
-
to: string;
|
|
123
|
-
objective: FdtoScheduleAutoScheduleObjective;
|
|
124
|
-
fillDemandGaps: boolean;
|
|
125
|
-
allowOvertime?: boolean;
|
|
126
|
-
minimumCoveragePercent?: number;
|
|
127
|
-
}
|
|
128
|
-
export interface FdtoScheduleAutoScheduleProposal {
|
|
129
|
-
employeeId: string;
|
|
130
|
-
date: string;
|
|
131
|
-
startTime: string;
|
|
132
|
-
endTime: string;
|
|
133
|
-
position: string;
|
|
134
|
-
}
|
|
135
|
-
export interface FdtoScheduleAutoScheduleResult {
|
|
136
|
-
proposals: FdtoScheduleAutoScheduleProposal[];
|
|
137
|
-
unfilledCount: number;
|
|
138
|
-
metrics: {
|
|
139
|
-
minimumCoveragePercent: number;
|
|
140
|
-
recommendedCoveragePercent: number;
|
|
141
|
-
totalHours: number;
|
|
142
|
-
estimatedLabourCost: number | null;
|
|
143
|
-
costCoveragePercent: number;
|
|
144
|
-
overtimeHours: number;
|
|
145
|
-
targetHoursVariance: number;
|
|
146
|
-
unfilledIntervals: number;
|
|
147
|
-
};
|
|
148
|
-
readiness: {
|
|
149
|
-
ready: boolean;
|
|
150
|
-
capabilities: string[];
|
|
151
|
-
issues: Array<{
|
|
152
|
-
code: string;
|
|
153
|
-
severity: 'BLOCKER' | 'WARNING' | 'INFO';
|
|
154
|
-
message: string;
|
|
155
|
-
}>;
|
|
156
|
-
coverage: {
|
|
157
|
-
position: number;
|
|
158
|
-
availability: number;
|
|
159
|
-
wage: number;
|
|
160
|
-
targetHours: number;
|
|
161
|
-
};
|
|
162
|
-
};
|
|
163
|
-
explanations: string[];
|
|
164
|
-
solver: string;
|
|
165
|
-
}
|
|
166
|
-
export interface FdtoScheduleDemand {
|
|
167
|
-
id: string;
|
|
168
|
-
date: string | null;
|
|
169
|
-
dayOfWeek: number | null;
|
|
170
|
-
startTime: string;
|
|
171
|
-
endTime: string;
|
|
172
|
-
headcount: number;
|
|
173
|
-
position: FdtoSchedulePositionRef | null;
|
|
174
|
-
}
|
|
175
|
-
/** Creates or updates one flat demand interval for a date OR standing weekday. */
|
|
176
|
-
export interface FdtoScheduleSaveDemandReq {
|
|
177
|
-
date?: string;
|
|
178
|
-
dayOfWeek?: number;
|
|
179
|
-
startTime: string;
|
|
180
|
-
endTime: string;
|
|
181
|
-
headcount: number;
|
|
182
|
-
position?: FdtoSchedulePositionSelectorReq;
|
|
183
|
-
}
|
|
184
|
-
/** UI-level replacement command. The store expands these periods into flat ShiftDemand rows. */
|
|
1
|
+
/**
|
|
2
|
+
* Public portal-facing Schedule types.
|
|
3
|
+
*
|
|
4
|
+
* Wire contracts are inferred once from the shared package. This file keeps
|
|
5
|
+
* only view-model commands that intentionally do not cross HTTP (for example
|
|
6
|
+
* replacing a period made up of several persisted demand rows).
|
|
7
|
+
*/
|
|
8
|
+
export type { FdtoScheduleAssignment, FdtoScheduleAutoScheduleApplyReq, FdtoScheduleAutoScheduleApplyResult, FdtoScheduleAutoScheduleCapabilities, FdtoScheduleAutoScheduleGenerateReq, FdtoScheduleAutoScheduleObjective, FdtoScheduleAutoSchedulePlanner, FdtoScheduleAutoScheduleProposal, FdtoScheduleAutoScheduleRejection, FdtoScheduleAutoScheduleResult, FdtoScheduleAutoScheduleTiming, FdtoScheduleAutoScheduleUnfilledNeed, FdtoScheduleBoard, FdtoScheduleBulkUpdateAssignmentStatusReq, FdtoScheduleBreak, FdtoScheduleCreateEmployeeProfileReq, FdtoScheduleEmployeeConfig, FdtoScheduleDayOperatingHours, FdtoScheduleDemand, FdtoScheduleEmployee, FdtoScheduleOptionalDateRange, FdtoSchedulePayRate, FdtoSchedulePosition, FdtoSchedulePositionRef, FdtoSchedulePositionSelectorReq, FdtoScheduleRestaurantProfile, FdtoScheduleSaveAssignmentReq, FdtoScheduleSaveDemandReq, FdtoScheduleSaveEmployeeConfigsReq, FdtoScheduleSavePositionReq, FdtoScheduleSaveScheduleDayReq, FdtoScheduleSaveSettingsReq, FdtoScheduleScheduleDay, FdtoScheduleSettings, FdtoScheduleUpdateEmployeeProfileReq, FdtoScheduleCreateTimeOffReq, FdtoScheduleTimeOff, FdtoScheduleTimeOffDayPart, FdtoScheduleTimeOffQuery, FdtoScheduleTimeOffStatus, FdtoScheduleTimeOffType, FdtoScheduleUpdateTimeOffStatusReq, } from '@feedmepos/hrm-schedule-contract';
|
|
9
|
+
/** UI-level replacement command. The store expands these periods into flat
|
|
10
|
+
* ShiftDemand rows before calling the shared HTTP contract. */
|
|
185
11
|
export interface ScheduleReplaceDemandReq {
|
|
186
12
|
date?: string;
|
|
187
13
|
dayOfWeek?: number;
|
|
@@ -196,37 +22,3 @@ export interface ScheduleReplaceDemandReq {
|
|
|
196
22
|
}>;
|
|
197
23
|
}>;
|
|
198
24
|
}
|
|
199
|
-
/** Whatever a manager has authored about one DATE — a titled note, and whether it bills at the
|
|
200
|
-
* holiday rate — see the backend DTO of the same name. A date nothing has ever been set on
|
|
201
|
-
* reads the same as one whose document was deleted after being cleared back to empty. */
|
|
202
|
-
export interface FdtoScheduleScheduleDay {
|
|
203
|
-
id: string;
|
|
204
|
-
date: string;
|
|
205
|
-
title: string;
|
|
206
|
-
description: string;
|
|
207
|
-
isPublicHoliday: boolean;
|
|
208
|
-
}
|
|
209
|
-
/** Replaces one date's note/holiday-mark in one write — see the backend DTO of the same name.
|
|
210
|
-
* All three fields back to empty/false clears it. */
|
|
211
|
-
export interface FdtoScheduleSaveScheduleDayReq {
|
|
212
|
-
title?: string;
|
|
213
|
-
description?: string;
|
|
214
|
-
isPublicHoliday?: boolean;
|
|
215
|
-
}
|
|
216
|
-
export interface FdtoScheduleBoard {
|
|
217
|
-
outlet: {
|
|
218
|
-
id: string;
|
|
219
|
-
name: string;
|
|
220
|
-
};
|
|
221
|
-
range: {
|
|
222
|
-
from: string;
|
|
223
|
-
to: string;
|
|
224
|
-
};
|
|
225
|
-
settings: FdtoScheduleSettings;
|
|
226
|
-
restaurantProfile: FdtoScheduleRestaurantProfile;
|
|
227
|
-
positions: FdtoSchedulePosition[];
|
|
228
|
-
employees: FdtoScheduleEmployee[];
|
|
229
|
-
assignments: FdtoScheduleAssignment[];
|
|
230
|
-
demands: FdtoScheduleDemand[];
|
|
231
|
-
days: FdtoScheduleScheduleDay[];
|
|
232
|
-
}
|
|
@@ -3,8 +3,10 @@ type __VLS_Props = {
|
|
|
3
3
|
wizard: ReturnType<typeof useScheduleAddEmployee>;
|
|
4
4
|
};
|
|
5
5
|
declare const _default: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
|
|
6
|
+
remove: (employeeId: number | null) => any;
|
|
6
7
|
newPosition: (target: "primary" | "secondary") => any;
|
|
7
8
|
}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{
|
|
9
|
+
onRemove?: ((employeeId: number | null) => any) | undefined;
|
|
8
10
|
onNewPosition?: ((target: "primary" | "secondary") => any) | undefined;
|
|
9
11
|
}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
10
12
|
export default _default;
|
|
@@ -2,12 +2,17 @@ import type { ScheduleBoardApi } from '../composables/useScheduleBoard';
|
|
|
2
2
|
import type { ScheduleAreaBoardApi } from '../composables/useScheduleAreaBoard';
|
|
3
3
|
import type { ScheduleOpenShiftCardApi } from '../composables/useScheduleOpenShiftCard';
|
|
4
4
|
import type { ScheduleAreaDragDropApi } from '../composables/useScheduleAreaDragDrop';
|
|
5
|
+
import type { ScheduleDragDropApi } from '../composables/useScheduleDragDrop';
|
|
5
6
|
import type { ScheduleDemandRowApi } from '../composables/useScheduleDemandRow';
|
|
6
7
|
type __VLS_Props = {
|
|
7
8
|
board: ScheduleBoardApi;
|
|
8
9
|
areaBoard: ScheduleAreaBoardApi;
|
|
9
10
|
openShiftCard: ScheduleOpenShiftCardApi;
|
|
10
11
|
dragDrop: ScheduleAreaDragDropApi;
|
|
12
|
+
/** A card's own drag — dropping it on another card offers a swap, dropping it on empty cell
|
|
13
|
+
* space moves it to that day, the same two gestures the employee view's grid has. Distinct
|
|
14
|
+
* from `dragDrop` above, which is only the staff rail dragged onto an empty cell. */
|
|
15
|
+
shiftDragDrop: ScheduleDragDropApi;
|
|
11
16
|
demandRow: ScheduleDemandRowApi;
|
|
12
17
|
};
|
|
13
18
|
declare const _default: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
|
|
@@ -20,6 +25,9 @@ declare const _default: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {
|
|
|
20
25
|
segFocus: (dayIdx: number, from: number, to: number, anchor: HTMLElement) => any;
|
|
21
26
|
openDemandSheet: (dayIdx: number) => any;
|
|
22
27
|
openNewShift: (dayIdx: number, position: string) => any;
|
|
28
|
+
addPosition: () => any;
|
|
29
|
+
scheduleByPerson: () => any;
|
|
30
|
+
openSwap: (fromEmpId: number, fromDayIdx: number, toEmpId: number, toDayIdx: number, slotIndex: number) => any;
|
|
23
31
|
}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{
|
|
24
32
|
onEditShift?: ((empId: number, dayIdx: number) => any) | undefined;
|
|
25
33
|
onOpenAssign?: ((openId: number) => any) | undefined;
|
|
@@ -30,5 +38,8 @@ declare const _default: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {
|
|
|
30
38
|
onSegFocus?: ((dayIdx: number, from: number, to: number, anchor: HTMLElement) => any) | undefined;
|
|
31
39
|
onOpenDemandSheet?: ((dayIdx: number) => any) | undefined;
|
|
32
40
|
onOpenNewShift?: ((dayIdx: number, position: string) => any) | undefined;
|
|
41
|
+
onAddPosition?: (() => any) | undefined;
|
|
42
|
+
onScheduleByPerson?: (() => any) | undefined;
|
|
43
|
+
onOpenSwap?: ((fromEmpId: number, fromDayIdx: number, toEmpId: number, toDayIdx: number, slotIndex: number) => any) | undefined;
|
|
33
44
|
}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
34
45
|
export default _default;
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import type { ScheduleAutoScheduleApi } from '../composables/useScheduleAutoSchedule';
|
|
2
|
+
type __VLS_Props = {
|
|
3
|
+
autoSchedule: ScheduleAutoScheduleApi;
|
|
4
|
+
};
|
|
5
|
+
declare const _default: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
6
|
+
export default _default;
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import type { ScheduleCloneOutletModalApi } from '../composables/useScheduleCloneOutletModal';
|
|
2
|
+
type __VLS_Props = {
|
|
3
|
+
modal: ScheduleCloneOutletModalApi;
|
|
4
|
+
};
|
|
5
|
+
declare const _default: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
6
|
+
export default _default;
|
package/dist/src/views/scheduling/components/{ScheduleLegendBar.vue.d.ts → ScheduleCoach.vue.d.ts}
RENAMED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { ScheduleCoachApi } from '../composables/useScheduleCoach';
|
|
2
2
|
type __VLS_Props = {
|
|
3
|
-
|
|
3
|
+
coach: ScheduleCoachApi;
|
|
4
4
|
};
|
|
5
5
|
declare const _default: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
6
6
|
export default _default;
|
|
@@ -5,9 +5,16 @@ type __VLS_Props = {
|
|
|
5
5
|
/** `clash-q` gives the message an orange warning-callout background instead of plain text —
|
|
6
6
|
* used by the "might conflict" dialog, kept as an opt-in rather than the default look. */
|
|
7
7
|
messageClass?: string;
|
|
8
|
+
/** A quieter footnote below the message, set off by a hairline — for a pointer to
|
|
9
|
+
* somewhere else ("go to the Employee page to remove permanently"), not a second
|
|
10
|
+
* consequence of pressing the button. Omitted entirely when there's nothing to point to. */
|
|
11
|
+
note?: string;
|
|
8
12
|
confirmLabel?: string;
|
|
9
13
|
cancelLabel?: string;
|
|
10
14
|
tone?: 'primary' | 'danger';
|
|
15
|
+
/** The "!" mark is for dialogs guarding something irreversible — a reversible action
|
|
16
|
+
* (like coming off the roster, profile and POS access untouched) asks plainly instead. */
|
|
17
|
+
icon?: boolean;
|
|
11
18
|
};
|
|
12
19
|
declare const _default: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
|
|
13
20
|
close: () => any;
|
|
@@ -16,9 +23,10 @@ declare const _default: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {
|
|
|
16
23
|
onClose?: (() => any) | undefined;
|
|
17
24
|
onConfirm?: (() => any) | undefined;
|
|
18
25
|
}>, {
|
|
26
|
+
icon: boolean;
|
|
27
|
+
confirmLabel: string;
|
|
19
28
|
tone: "primary" | "danger";
|
|
20
29
|
messageClass: string;
|
|
21
|
-
confirmLabel: string;
|
|
22
30
|
cancelLabel: string;
|
|
23
31
|
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
24
32
|
export default _default;
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
declare const _default: import("vue").DefineComponent<{}, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
|
|
2
|
+
export default _default;
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import type { ScheduleExportApi } from '../composables/useScheduleExport';
|
|
2
|
+
type __VLS_Props = {
|
|
3
|
+
exportApi: ScheduleExportApi;
|
|
4
|
+
};
|
|
5
|
+
declare const _default: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
6
|
+
export default _default;
|
|
@@ -1,8 +1,6 @@
|
|
|
1
1
|
import type { ScheduleLeaveApi } from '../composables/useScheduleLeave';
|
|
2
|
-
import { type ScheduleTimePickerApi } from '../composables/useScheduleTimePicker';
|
|
3
2
|
type __VLS_Props = {
|
|
4
3
|
leave: ScheduleLeaveApi;
|
|
5
|
-
timePicker: ScheduleTimePickerApi;
|
|
6
4
|
};
|
|
7
5
|
declare const _default: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
8
6
|
export default _default;
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { ScheduleOnboardingWizardApi } from '../composables/useScheduleOnboardingWizard';
|
|
2
|
+
import type { ScheduleTourApi } from '../composables/useScheduleTour';
|
|
3
|
+
import type { ScheduleAutoScheduleApi } from '../composables/useScheduleAutoSchedule';
|
|
4
|
+
type __VLS_Props = {
|
|
5
|
+
wizard: ScheduleOnboardingWizardApi;
|
|
6
|
+
tour: ScheduleTourApi;
|
|
7
|
+
autoSchedule: ScheduleAutoScheduleApi;
|
|
8
|
+
};
|
|
9
|
+
declare const _default: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
10
|
+
export default _default;
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
declare const _default: import("vue").DefineComponent<{}, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
|
|
2
|
+
export default _default;
|
|
@@ -1,12 +1,11 @@
|
|
|
1
1
|
import type { useScheduleSetupBanner } from '../composables/useScheduleSetupBanner';
|
|
2
2
|
type __VLS_Props = {
|
|
3
3
|
setupBanner: ReturnType<typeof useScheduleSetupBanner>;
|
|
4
|
+
outletName: string;
|
|
4
5
|
};
|
|
5
6
|
declare const _default: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
|
|
6
7
|
setUp: () => any;
|
|
7
|
-
uploadSchedule: () => any;
|
|
8
8
|
}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{
|
|
9
9
|
onSetUp?: (() => any) | undefined;
|
|
10
|
-
onUploadSchedule?: (() => any) | undefined;
|
|
11
10
|
}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
12
11
|
export default _default;
|
|
@@ -5,8 +5,8 @@ type __VLS_Props = {
|
|
|
5
5
|
actions: ScheduleShiftActionsApi;
|
|
6
6
|
};
|
|
7
7
|
declare const _default: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
|
|
8
|
-
editShift: (empId: number, dayIdx: number) => any;
|
|
8
|
+
editShift: (empId: number, dayIdx: number, slotIndex: number) => any;
|
|
9
9
|
}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{
|
|
10
|
-
onEditShift?: ((empId: number, dayIdx: number) => any) | undefined;
|
|
10
|
+
onEditShift?: ((empId: number, dayIdx: number, slotIndex: number) => any) | undefined;
|
|
11
11
|
}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
12
12
|
export default _default;
|
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
import type { DaySlot, Proposal } from '../types';
|
|
2
2
|
import type { ScheduleBoardApi } from '../composables/useScheduleBoard';
|
|
3
|
+
import type { ScheduleDragDropApi } from '../composables/useScheduleDragDrop';
|
|
3
4
|
type __VLS_Props = {
|
|
4
5
|
board: ScheduleBoardApi;
|
|
6
|
+
dragDrop: ScheduleDragDropApi;
|
|
5
7
|
slot: DaySlot;
|
|
6
8
|
empId: number;
|
|
7
9
|
dayIdx: number;
|
|
@@ -12,22 +14,20 @@ type __VLS_Props = {
|
|
|
12
14
|
declare const _default: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
|
|
13
15
|
drop: (empId: number, dayIdx: number, ev: DragEvent) => any;
|
|
14
16
|
addShift: (empId: number, dayIdx: number, anchor: HTMLElement) => any;
|
|
15
|
-
editShift: (empId: number, dayIdx: number) => any;
|
|
17
|
+
editShift: (empId: number, dayIdx: number, slotIndex: number) => any;
|
|
16
18
|
editLeave: (empId: number, dayIdx: number) => any;
|
|
17
|
-
dragStart: (empId: number, dayIdx: number, ev: DragEvent) => any;
|
|
19
|
+
dragStart: (empId: number, dayIdx: number, ev: DragEvent, slotIndex: number) => any;
|
|
18
20
|
dragEnd: () => any;
|
|
19
|
-
openMenu: (empId: number, dayIdx: number, anchor: HTMLElement) => any;
|
|
20
21
|
toggleProposal: (id: number) => any;
|
|
21
22
|
proposalDragStart: (id: number, ev: DragEvent) => any;
|
|
22
23
|
proposalDragEnd: () => any;
|
|
23
24
|
}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{
|
|
24
25
|
onDrop?: ((empId: number, dayIdx: number, ev: DragEvent) => any) | undefined;
|
|
25
26
|
onAddShift?: ((empId: number, dayIdx: number, anchor: HTMLElement) => any) | undefined;
|
|
26
|
-
onEditShift?: ((empId: number, dayIdx: number) => any) | undefined;
|
|
27
|
+
onEditShift?: ((empId: number, dayIdx: number, slotIndex: number) => any) | undefined;
|
|
27
28
|
onEditLeave?: ((empId: number, dayIdx: number) => any) | undefined;
|
|
28
|
-
onDragStart?: ((empId: number, dayIdx: number, ev: DragEvent) => any) | undefined;
|
|
29
|
+
onDragStart?: ((empId: number, dayIdx: number, ev: DragEvent, slotIndex: number) => any) | undefined;
|
|
29
30
|
onDragEnd?: (() => any) | undefined;
|
|
30
|
-
onOpenMenu?: ((empId: number, dayIdx: number, anchor: HTMLElement) => any) | undefined;
|
|
31
31
|
onToggleProposal?: ((id: number) => any) | undefined;
|
|
32
32
|
onProposalDragStart?: ((id: number, ev: DragEvent) => any) | undefined;
|
|
33
33
|
onProposalDragEnd?: (() => any) | undefined;
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
import type { ScheduleShiftPopoverApi } from '../composables/useScheduleShiftPopover';
|
|
2
|
+
import { type ScheduleTimePickerApi } from '../composables/useScheduleTimePicker';
|
|
2
3
|
type __VLS_Props = {
|
|
3
4
|
popover: ScheduleShiftPopoverApi;
|
|
5
|
+
timePicker: ScheduleTimePickerApi;
|
|
4
6
|
};
|
|
5
7
|
declare const _default: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
6
8
|
export default _default;
|
|
@@ -8,11 +8,9 @@ declare const _default: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {
|
|
|
8
8
|
openEmployee: (empId: number) => any;
|
|
9
9
|
openEmployeeMenu: (empId: number, anchor: HTMLElement) => any;
|
|
10
10
|
addEmployee: () => any;
|
|
11
|
-
jumpToOpen: () => any;
|
|
12
11
|
}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{
|
|
13
12
|
onOpenEmployee?: ((empId: number) => any) | undefined;
|
|
14
13
|
onOpenEmployeeMenu?: ((empId: number, anchor: HTMLElement) => any) | undefined;
|
|
15
14
|
onAddEmployee?: (() => any) | undefined;
|
|
16
|
-
onJumpToOpen?: (() => any) | undefined;
|
|
17
15
|
}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
18
16
|
export default _default;
|
|
@@ -1,11 +1,13 @@
|
|
|
1
1
|
import type { Proposal } from '../types';
|
|
2
2
|
import type { ScheduleBoardApi } from '../composables/useScheduleBoard';
|
|
3
|
+
import type { ScheduleDragDropApi } from '../composables/useScheduleDragDrop';
|
|
3
4
|
import type { ScheduleRosterApi } from '../composables/useScheduleRoster';
|
|
4
5
|
import type { ScheduleOpenShiftCardApi } from '../composables/useScheduleOpenShiftCard';
|
|
5
6
|
import type { ScheduleAllShiftsRowApi } from '../composables/useScheduleAllShiftsRow';
|
|
6
7
|
import type { ScheduleDemandRowApi } from '../composables/useScheduleDemandRow';
|
|
7
8
|
type __VLS_Props = {
|
|
8
9
|
board: ScheduleBoardApi;
|
|
10
|
+
dragDrop: ScheduleDragDropApi;
|
|
9
11
|
roster: ScheduleRosterApi;
|
|
10
12
|
openShiftCard: ScheduleOpenShiftCardApi;
|
|
11
13
|
allShiftsRow: ScheduleAllShiftsRowApi;
|
|
@@ -14,7 +16,7 @@ type __VLS_Props = {
|
|
|
14
16
|
};
|
|
15
17
|
declare const _default: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
|
|
16
18
|
addShift: (empId: number, dayIdx: number, anchor: HTMLElement) => any;
|
|
17
|
-
editShift: (empId: number, dayIdx: number) => any;
|
|
19
|
+
editShift: (empId: number, dayIdx: number, slotIndex?: number | undefined) => any;
|
|
18
20
|
editLeave: (empId: number, dayIdx: number) => any;
|
|
19
21
|
dragEnd: () => any;
|
|
20
22
|
toggleProposal: (id: number) => any;
|
|
@@ -29,14 +31,13 @@ declare const _default: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {
|
|
|
29
31
|
segFocus: (dayIdx: number, from: number, to: number, anchor: HTMLElement) => any;
|
|
30
32
|
openEmployee: (empId: number) => any;
|
|
31
33
|
openEmployeeMenu: (empId: number, anchor: HTMLElement) => any;
|
|
32
|
-
dragShiftStart: (empId: number, dayIdx: number, ev: DragEvent) => any;
|
|
34
|
+
dragShiftStart: (empId: number, dayIdx: number, ev: DragEvent, slotIndex: number) => any;
|
|
33
35
|
dropOnCell: (empId: number, dayIdx: number, ev: DragEvent) => any;
|
|
34
|
-
openCardMenu: (empId: number, dayIdx: number, anchor: HTMLElement) => any;
|
|
35
36
|
addEmployee: () => any;
|
|
36
37
|
openDemandSheet: (dayIdx: number) => any;
|
|
37
38
|
}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{
|
|
38
39
|
onAddShift?: ((empId: number, dayIdx: number, anchor: HTMLElement) => any) | undefined;
|
|
39
|
-
onEditShift?: ((empId: number, dayIdx: number) => any) | undefined;
|
|
40
|
+
onEditShift?: ((empId: number, dayIdx: number, slotIndex?: number | undefined) => any) | undefined;
|
|
40
41
|
onEditLeave?: ((empId: number, dayIdx: number) => any) | undefined;
|
|
41
42
|
onDragEnd?: (() => any) | undefined;
|
|
42
43
|
onToggleProposal?: ((id: number) => any) | undefined;
|
|
@@ -51,9 +52,8 @@ declare const _default: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {
|
|
|
51
52
|
onSegFocus?: ((dayIdx: number, from: number, to: number, anchor: HTMLElement) => any) | undefined;
|
|
52
53
|
onOpenEmployee?: ((empId: number) => any) | undefined;
|
|
53
54
|
onOpenEmployeeMenu?: ((empId: number, anchor: HTMLElement) => any) | undefined;
|
|
54
|
-
onDragShiftStart?: ((empId: number, dayIdx: number, ev: DragEvent) => any) | undefined;
|
|
55
|
+
onDragShiftStart?: ((empId: number, dayIdx: number, ev: DragEvent, slotIndex: number) => any) | undefined;
|
|
55
56
|
onDropOnCell?: ((empId: number, dayIdx: number, ev: DragEvent) => any) | undefined;
|
|
56
|
-
onOpenCardMenu?: ((empId: number, dayIdx: number, anchor: HTMLElement) => any) | undefined;
|
|
57
57
|
onAddEmployee?: (() => any) | undefined;
|
|
58
58
|
onOpenDemandSheet?: ((dayIdx: number) => any) | undefined;
|
|
59
59
|
}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import type { ScheduleTourApi } from '../composables/useScheduleTour';
|
|
2
|
+
type __VLS_Props = {
|
|
3
|
+
tour: ScheduleTourApi;
|
|
4
|
+
};
|
|
5
|
+
declare const _default: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
6
|
+
export default _default;
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import type { FdtoScheduleAutoScheduleApplyReq, FdtoScheduleAutoScheduleObjective, FdtoScheduleAutoSchedulePlanner, FdtoScheduleAutoScheduleProposal, FdtoScheduleAutoScheduleResult } from '@/types/schedule';
|
|
2
|
+
import { ApiError } from '@/api';
|
|
3
|
+
import type { Proposal } from '../types';
|
|
4
|
+
/** ISO date of `dayIdx` in the week starting `weekKey` (YYYY-MM-DD, local arithmetic). */
|
|
5
|
+
export declare function dateOfProposal(weekKey: string, dayIdx: number): string;
|
|
6
|
+
/** Server proposals → board proposals for the week whose Monday is `weekKey`. A proposal whose
|
|
7
|
+
* date is not one of `dateKeyOf(0..RANGE_LEN-1)` or whose employee the board does not hold is
|
|
8
|
+
* dropped. Ids come from `nextId` so they stay unique across weeks. */
|
|
9
|
+
export declare function proposalsFromResult(proposals: FdtoScheduleAutoScheduleProposal[], weekKey: string, dateKeyOf: (dayIdx: number) => string | null, nextId: () => number, holds: (empId: number) => boolean): Proposal[];
|
|
10
|
+
/** The apply body for the accepted proposals, each re-dated from its own week and day. */
|
|
11
|
+
export declare function applyRequestOf(proposals: Proposal[], allowOvertime: boolean): FdtoScheduleAutoScheduleApplyReq;
|
|
12
|
+
export interface ClassifiedExplanation {
|
|
13
|
+
kind: 'reject' | 'ai' | 'plain';
|
|
14
|
+
text: string;
|
|
15
|
+
}
|
|
16
|
+
/** Sorts one `result.explanations` line into what the Details panel renders it as. The matched
|
|
17
|
+
* prefix is stripped from `text` in every case — the panel re-adds its own label/marker for
|
|
18
|
+
* `reject` and `ai`, so the raw wire prefix never doubles up with it. */
|
|
19
|
+
export declare function classifyExplanation(line: string): ClassifiedExplanation;
|
|
20
|
+
/** Whether `error` is a server refusal whose own message is meant for the user: a client error
|
|
21
|
+
* (0 < status < 500). A network failure (0) or a server error (5xx) is not. */
|
|
22
|
+
export declare function isClientRefusal(error: unknown): error is ApiError;
|
|
23
|
+
/** A client-error refusal shows its own message; a network failure or 5xx shows the generic one. */
|
|
24
|
+
export declare function generateErrorMessage(error: unknown): string;
|
|
25
|
+
/** The result shown when "fill gaps" is off: nothing proposed, one explanation. */
|
|
26
|
+
export declare function fillGapsOffResult(week: {
|
|
27
|
+
from: string;
|
|
28
|
+
to: string;
|
|
29
|
+
}, objective: FdtoScheduleAutoScheduleObjective, allowOvertime: boolean): FdtoScheduleAutoScheduleResult;
|
|
30
|
+
/** The snackbar shown once a run finishes, whether it went to the server or (fill gaps off) was
|
|
31
|
+
* answered locally. `wallMs` is measured client-side around the request — it is what the manager
|
|
32
|
+
* actually waited, not just the server's own `timing.totalMs`. */
|
|
33
|
+
export declare function generateDoneMessage(result: FdtoScheduleAutoScheduleResult, requested: FdtoScheduleAutoSchedulePlanner, wallMs: number): string;
|