@feedmepos/mf-hrm-portal 2.3.0-dev.9 → 2.3.1-dev.1
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-CDU3yUHy.js} +7 -7
- package/dist/AuditLogList-BU11Q5sF.js +1950 -0
- package/dist/{ConditionBuilderForm.vue_vue_type_script_setup_true_lang-BBK2gl7r.js → ConditionBuilderForm.vue_vue_type_script_setup_true_lang-BjHwyaXu.js} +2 -2
- package/dist/{EmployeeList-C8cbVcmY.js → EmployeeList-BqzXg3uA.js} +255 -266
- package/dist/{FormItem.vue_vue_type_script_setup_true_lang-CUnlKsxk.js → FormItem.vue_vue_type_script_setup_true_lang-Clh43Y-8.js} +6 -6
- package/dist/{GrantUserList-zul0_Dlm.js → GrantUserList-Cw8RkFqf.js} +8 -8
- package/dist/{Main-Cjo4FMZZ.js → Main-BxcRbcce.js} +5 -5
- package/dist/{Main-5TsFTFpc.js → Main-CL-ysWRu.js} +8 -8
- package/dist/{Main-DSr9KbjT.js → Main-Dlar77Zq.js} +11 -11
- package/dist/{PermissionSetList-CDhiiu37.js → PermissionSetList-_8aBzGy7.js} +19 -18
- package/dist/{PortalPermissionEditor.vue_vue_type_script_setup_true_lang-DoK944l0.js → PortalPermissionEditor.vue_vue_type_script_setup_true_lang-CNgtAtYH.js} +896 -896
- package/dist/{PortalUserSearcher.vue_vue_type_style_index_0_scoped_827dfd60_lang-BVz6q3HE.js → PortalUserSearcher.vue_vue_type_style_index_0_scoped_827dfd60_lang-DQcgZ0nF.js} +1 -1
- package/dist/ResponsiveContextMenu.vue_vue_type_script_setup_true_lang-mSJFKo7r.js +132 -0
- package/dist/{RoleList-DEbOPQD_.js → RoleList-C3n_zOB3.js} +21 -20
- package/dist/ScheduleAddPositionModal.vue_vue_type_script_setup_true_lang-CnrbCggg.js +544 -0
- package/dist/ScheduleGeneralPage-DGHKW_ww.js +811 -0
- package/dist/ScheduleModal.vue_vue_type_script_setup_true_lang-AfTAGsh1.js +2556 -0
- package/dist/SchedulePage-UzDPRldO.js +19458 -0
- package/dist/SchedulePositionPage-RHETW36P.js +282 -0
- package/dist/{SelectFilter-CG13h83-.js → SelectFilter-CeBV_Kug.js} +1 -1
- package/dist/{TeamMemberList-DpCGqHCk.js → TeamMemberList-B-qR7VS3.js} +27 -27
- package/dist/{TimesheetList-B7HAC5zS.js → TimesheetList-BqRIZBt1.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-oIBUAjtv.js} +3 -3
- package/dist/{app-Lh0cqgHy.js → app-DFL6Nv_p.js} +10822 -3893
- package/dist/app.js +1 -1
- package/dist/{approval-code-DHsUgc4K.js → approval-code-BXUiojPH.js} +1 -1
- package/dist/{dayjs.min-joq4stsa.js → dayjs.min-CH-gVmsz.js} +1 -1
- package/dist/{employee-BPmp9c6i.js → employee-3xpIjR6i.js} +51 -47
- package/dist/{grant-user-qzKHFTro.js → grant-user-CBJ3gEgW.js} +1 -1
- package/dist/{iteration-jvdTHQUx.js → iteration-D6wutq5U.js} +1 -1
- package/dist/{lodash-CIAEpr9s.js → lodash-D5kU1nPN.js} +1 -1
- package/dist/object-Dwyg2LgX.js +16 -0
- package/dist/{restaurant-BbYRA_IT.js → restaurant-D2mfKHaH.js} +44 -45
- package/dist/{role-Dd1TUMhn.js → role-B7nu6hH1.js} +2 -2
- package/dist/{rule-DmxI7qEY.js → rule-CMd6SL3n.js} +3 -3
- package/dist/src/api/audit-log/index.d.ts +4 -0
- 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/constants.d.ts +9 -30
- package/dist/src/views/audit-log/locales/index.d.ts +488 -0
- package/dist/src/views/audit-log/pos-row.d.ts +27 -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 -3
- 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 +7 -5
- package/dist/src/views/scheduling/composables/onboarding-constants.d.ts +2 -0
- 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-add-employee-form.d.ts +1 -1
- package/dist/src/views/scheduling/composables/schedule-board-helpers.d.ts +4 -0
- package/dist/src/views/scheduling/composables/schedule-calendar.d.ts +10 -0
- package/dist/src/views/scheduling/composables/schedule-cost.d.ts +5 -0
- package/dist/src/views/scheduling/composables/schedule-currency.d.ts +22 -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-export-matrix.d.ts +1 -1
- package/dist/src/views/scheduling/composables/schedule-leave-split.d.ts +9 -0
- package/dist/src/views/scheduling/composables/schedule-quick-pick.d.ts +23 -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 +30 -7
- package/dist/src/views/scheduling/composables/useScheduleAddPick.d.ts +5 -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 +9 -2
- 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/useScheduleEmployeeAvailability.d.ts +2 -2
- package/dist/src/views/scheduling/composables/useScheduleEmployeeCandidates.d.ts +26 -4
- package/dist/src/views/scheduling/composables/useScheduleEmployeeCompensation.d.ts +1 -1
- 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 +13 -12
- 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 +210 -14
- 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 +13 -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/useScheduleSettings.d.ts +1 -1
- 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 +33 -4
- package/dist/src/views/scheduling/country-rules/index.d.ts +13 -4
- package/dist/src/views/scheduling/data.d.ts +17 -0
- package/dist/src/views/scheduling/locales/index.d.ts +6300 -0
- package/dist/src/views/scheduling/schedule-state.d.ts +236 -236
- package/dist/src/views/scheduling/schedule-store.d.ts +29 -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-DZCdxlCd.js} +1 -1
- package/dist/useDiscardConfirm-CzZSPyvh.js +28 -0
- package/dist/{useLoading-Ch1AUYT1.js → useLoading-Nygx2zn8.js} +1 -1
- package/dist/{useReportPermissions-DM3GOFCC.js → useReportPermissions-BcxIKxlF.js} +3 -3
- package/package.json +2 -2
- package/dist/AuditLogList-Dgwj1gz8.js +0 -1779
- package/dist/ScheduleAddPositionModal.vue_vue_type_script_setup_true_lang-Cx9jFgBS.js +0 -492
- package/dist/ScheduleGeneralPage-B8PWNsc2.js +0 -776
- package/dist/ScheduleModal.vue_vue_type_script_setup_true_lang-V1sZ_xhO.js +0 -2253
- package/dist/SchedulePage-ndLByVBl.js +0 -17785
- package/dist/SchedulePositionPage-Cuv4ydOK.js +0 -264
- package/dist/_plugin-vue_export-helper-CHgC5LLL.js +0 -9
- package/dist/useDiscardConfirm-DPhEV6v0.js +0 -157
|
@@ -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>;
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import type { ScheduleBoardApi } from './useScheduleBoard';
|
|
2
2
|
import type { ScheduleAddEmployeeApi } from './useScheduleAddEmployee';
|
|
3
3
|
import type { IntroRecapRow, ReviewRow, ScheduleOnboardingStep } from './onboarding-types';
|
|
4
|
-
|
|
4
|
+
/** i18n keys for each step's label — translate at render with `t(STEP_LABEL_KEYS[step])`. */
|
|
5
|
+
export declare const STEP_LABEL_KEYS: Record<ScheduleOnboardingStep, string>;
|
|
5
6
|
export { MAX_OPERATIONAL_SESSIONS } from './useScheduleOnboardingHours';
|
|
6
7
|
/** Steps that can be passed over without answering — the footer shows "Skip for now" on these. */
|
|
7
8
|
/** "Set up scheduling", step by step — V6.2's six-step flow. Positions, staffing demand and the
|
|
@@ -12,14 +13,12 @@ export { MAX_OPERATIONAL_SESSIONS } from './useScheduleOnboardingHours';
|
|
|
12
13
|
export declare function useScheduleOnboardingWizard(board: ScheduleBoardApi, addEmployee: ScheduleAddEmployeeApi, onDemandChanged?: () => void | Promise<void>): {
|
|
13
14
|
board: {
|
|
14
15
|
dayNote: (dayIdx: number) => import("../types").ScheduleDayNote | null;
|
|
15
|
-
setDayNote: (dayIdx: number, title: string, desc: string) => void;
|
|
16
|
+
setDayNote: (dayIdx: number, title: string, desc: string, isPublicHoliday?: boolean) => void;
|
|
16
17
|
clearDayNote: (dayIdx: number) => void;
|
|
17
18
|
isStandingClosedWeekday: (dayIdx: number) => boolean;
|
|
18
19
|
holidayName: (dayIdx: number) => string | null;
|
|
19
|
-
holidayIsAuto: (dayIdx: number) => boolean;
|
|
20
20
|
isPublicHoliday: (dayIdx: number) => boolean;
|
|
21
21
|
holidayRateApplies: (dayIdx: number) => boolean;
|
|
22
|
-
setHolidayNormal: (dayIdx: number, toNormal: boolean) => void;
|
|
23
22
|
setPublicHoliday: (dayIdx: number, on: boolean) => void;
|
|
24
23
|
otRateOn: (dayIdx: number) => number;
|
|
25
24
|
regularRateOn: (dayIdx: number) => number;
|
|
@@ -116,6 +115,28 @@ export declare function useScheduleOnboardingWizard(board: ScheduleBoardApi, add
|
|
|
116
115
|
updatedAt?: string | undefined;
|
|
117
116
|
splitGroupId?: string | undefined;
|
|
118
117
|
}[] | null)[];
|
|
118
|
+
timeOff?: ({
|
|
119
|
+
timeOff: "approved" | "pending";
|
|
120
|
+
requestId?: string | undefined;
|
|
121
|
+
type?: "OFF_DAY" | "LEAVE" | undefined;
|
|
122
|
+
leaveType?: "ANNUAL" | "MEDICAL" | "EMERGENCY" | "UNPAID" | undefined;
|
|
123
|
+
reason: string;
|
|
124
|
+
half?: boolean | undefined;
|
|
125
|
+
halfPart?: "AM" | "PM" | undefined;
|
|
126
|
+
from?: string | undefined;
|
|
127
|
+
to?: string | undefined;
|
|
128
|
+
appliedOn?: string | undefined;
|
|
129
|
+
note?: string | undefined;
|
|
130
|
+
cert?: {
|
|
131
|
+
name: string;
|
|
132
|
+
size: string;
|
|
133
|
+
} | null | undefined;
|
|
134
|
+
bal?: {
|
|
135
|
+
type: string;
|
|
136
|
+
entitled: number;
|
|
137
|
+
used: number;
|
|
138
|
+
} | undefined;
|
|
139
|
+
} | null)[] | undefined;
|
|
119
140
|
remarks: {
|
|
120
141
|
author: string;
|
|
121
142
|
date: string;
|
|
@@ -148,6 +169,7 @@ export declare function useScheduleOnboardingWizard(board: ScheduleBoardApi, add
|
|
|
148
169
|
to: string;
|
|
149
170
|
}[] | undefined;
|
|
150
171
|
passcode?: string | undefined;
|
|
172
|
+
code?: string | undefined;
|
|
151
173
|
masterUser?: boolean | undefined;
|
|
152
174
|
}[], import("../types").Employee[] | {
|
|
153
175
|
id: number;
|
|
@@ -241,6 +263,28 @@ export declare function useScheduleOnboardingWizard(board: ScheduleBoardApi, add
|
|
|
241
263
|
updatedAt?: string | undefined;
|
|
242
264
|
splitGroupId?: string | undefined;
|
|
243
265
|
}[] | null)[];
|
|
266
|
+
timeOff?: ({
|
|
267
|
+
timeOff: "approved" | "pending";
|
|
268
|
+
requestId?: string | undefined;
|
|
269
|
+
type?: "OFF_DAY" | "LEAVE" | undefined;
|
|
270
|
+
leaveType?: "ANNUAL" | "MEDICAL" | "EMERGENCY" | "UNPAID" | undefined;
|
|
271
|
+
reason: string;
|
|
272
|
+
half?: boolean | undefined;
|
|
273
|
+
halfPart?: "AM" | "PM" | undefined;
|
|
274
|
+
from?: string | undefined;
|
|
275
|
+
to?: string | undefined;
|
|
276
|
+
appliedOn?: string | undefined;
|
|
277
|
+
note?: string | undefined;
|
|
278
|
+
cert?: {
|
|
279
|
+
name: string;
|
|
280
|
+
size: string;
|
|
281
|
+
} | null | undefined;
|
|
282
|
+
bal?: {
|
|
283
|
+
type: string;
|
|
284
|
+
entitled: number;
|
|
285
|
+
used: number;
|
|
286
|
+
} | undefined;
|
|
287
|
+
} | null)[] | undefined;
|
|
244
288
|
remarks: {
|
|
245
289
|
author: string;
|
|
246
290
|
date: string;
|
|
@@ -273,6 +317,7 @@ export declare function useScheduleOnboardingWizard(board: ScheduleBoardApi, add
|
|
|
273
317
|
to: string;
|
|
274
318
|
}[] | undefined;
|
|
275
319
|
passcode?: string | undefined;
|
|
320
|
+
code?: string | undefined;
|
|
276
321
|
masterUser?: boolean | undefined;
|
|
277
322
|
}[]>;
|
|
278
323
|
sections: import("vue").Ref<{
|
|
@@ -323,12 +368,14 @@ export declare function useScheduleOnboardingWizard(board: ScheduleBoardApi, add
|
|
|
323
368
|
dayIdx: number;
|
|
324
369
|
kind: "add" | "change" | "remove";
|
|
325
370
|
label: string;
|
|
371
|
+
conflict?: boolean | undefined;
|
|
326
372
|
}[], import("../types").PendingChange[] | {
|
|
327
373
|
empId: number;
|
|
328
374
|
employeeKey: string;
|
|
329
375
|
dayIdx: number;
|
|
330
376
|
kind: "add" | "change" | "remove";
|
|
331
377
|
label: string;
|
|
378
|
+
conflict?: boolean | undefined;
|
|
332
379
|
}[]>;
|
|
333
380
|
unpublishedChanges: import("vue").ComputedRef<import("../types").PendingChange[]>;
|
|
334
381
|
persistPublish: (items: Array<{
|
|
@@ -553,12 +600,17 @@ export declare function useScheduleOnboardingWizard(board: ScheduleBoardApi, add
|
|
|
553
600
|
clearEmployeeShifts: (empId: number) => {
|
|
554
601
|
shifts: number;
|
|
555
602
|
};
|
|
556
|
-
moveShift: (fromEmpId: number, fromDayIdx: number, toEmpId: number, toDayIdx: number, fromSlotIndex?: number, fromSlotCount?: number) => boolean;
|
|
603
|
+
moveShift: (fromEmpId: number, fromDayIdx: number, toEmpId: number, toDayIdx: number, fromSlotIndex?: number, fromSlotCount?: number, targetPosition?: string, allowLocked?: boolean) => boolean;
|
|
557
604
|
swapShifts: (empIdA: number, empIdB: number, dayA: number, dayB?: number, slotIndexA?: number, slotIndexB?: number, slotCountA?: number) => boolean;
|
|
558
|
-
|
|
605
|
+
swapPositions: (empIdA: number, empIdB: number, dayA: number, dayB?: number, slotIndexA?: number, slotIndexB?: number, slotCountA?: number) => boolean;
|
|
606
|
+
clearShiftsInRange: (options?: {
|
|
607
|
+
persist?: boolean;
|
|
608
|
+
mutate?: boolean;
|
|
609
|
+
}) => {
|
|
559
610
|
shifts: number;
|
|
560
611
|
open: number;
|
|
561
612
|
leave: number;
|
|
613
|
+
assignmentIds: string[];
|
|
562
614
|
};
|
|
563
615
|
requiredFor: (dayIdx: number, position: string) => number;
|
|
564
616
|
scheduledFor: (dayIdx: number, position: string) => number;
|
|
@@ -583,6 +635,8 @@ export declare function useScheduleOnboardingWizard(board: ScheduleBoardApi, add
|
|
|
583
635
|
id: string;
|
|
584
636
|
name: string;
|
|
585
637
|
}[]>;
|
|
638
|
+
pendingCreates: string[];
|
|
639
|
+
pendingDeletes: Set<string>;
|
|
586
640
|
count: import("vue").ComputedRef<number>;
|
|
587
641
|
isAdding: import("vue").Ref<boolean, boolean>;
|
|
588
642
|
newName: import("vue").Ref<string, string>;
|
|
@@ -596,6 +650,9 @@ export declare function useScheduleOnboardingWizard(board: ScheduleBoardApi, add
|
|
|
596
650
|
askDelete: (id: string) => void;
|
|
597
651
|
cancelDelete: () => void;
|
|
598
652
|
confirmDelete: (id: string) => Promise<void>;
|
|
653
|
+
commitCreates: () => Promise<void>;
|
|
654
|
+
commitDeletes: () => Promise<void>;
|
|
655
|
+
discardPending: () => void;
|
|
599
656
|
};
|
|
600
657
|
steps: ScheduleOnboardingStep[];
|
|
601
658
|
isSkippable: import("vue").ComputedRef<boolean>;
|
|
@@ -643,8 +700,29 @@ export declare function useScheduleOnboardingWizard(board: ScheduleBoardApi, add
|
|
|
643
700
|
removeRole: (index: number, roleIndex: number) => void;
|
|
644
701
|
namedTotal: (range: import("./onboarding-types").ScheduleOnboardingRange) => number;
|
|
645
702
|
copyDay: (mode: "all" | "wk" | "we") => void;
|
|
703
|
+
settings: {
|
|
704
|
+
payRate: {
|
|
705
|
+
NORMAL: {
|
|
706
|
+
overtime: number;
|
|
707
|
+
};
|
|
708
|
+
REST_DAY: {
|
|
709
|
+
regular: number;
|
|
710
|
+
overtime: number;
|
|
711
|
+
};
|
|
712
|
+
PUBLIC_HOLIDAY: {
|
|
713
|
+
regular: number;
|
|
714
|
+
overtime: number;
|
|
715
|
+
};
|
|
716
|
+
};
|
|
717
|
+
otCapHours: number | null;
|
|
718
|
+
workingHours: {
|
|
719
|
+
minHoursPerDay: number | null;
|
|
720
|
+
maxHoursPerDay: number | null;
|
|
721
|
+
maxHoursPerWeek: number | null;
|
|
722
|
+
};
|
|
723
|
+
};
|
|
646
724
|
addPositionNamed: (name?: string) => void;
|
|
647
|
-
removePosition: (id: string) => void
|
|
725
|
+
removePosition: (id: string) => Promise<void>;
|
|
648
726
|
reviewRows: import("vue").ComputedRef<ReviewRow[]>;
|
|
649
727
|
goTo: (target: ScheduleOnboardingStep) => void;
|
|
650
728
|
avail: Record<number, import("./onboarding-types").AvailRow>;
|
|
@@ -782,6 +860,28 @@ export declare function useScheduleOnboardingWizard(board: ScheduleBoardApi, add
|
|
|
782
860
|
updatedAt?: string | undefined;
|
|
783
861
|
splitGroupId?: string | undefined;
|
|
784
862
|
}[] | null)[];
|
|
863
|
+
timeOff?: ({
|
|
864
|
+
timeOff: "approved" | "pending";
|
|
865
|
+
requestId?: string | undefined;
|
|
866
|
+
type?: "OFF_DAY" | "LEAVE" | undefined;
|
|
867
|
+
leaveType?: "ANNUAL" | "MEDICAL" | "EMERGENCY" | "UNPAID" | undefined;
|
|
868
|
+
reason: string;
|
|
869
|
+
half?: boolean | undefined;
|
|
870
|
+
halfPart?: "AM" | "PM" | undefined;
|
|
871
|
+
from?: string | undefined;
|
|
872
|
+
to?: string | undefined;
|
|
873
|
+
appliedOn?: string | undefined;
|
|
874
|
+
note?: string | undefined;
|
|
875
|
+
cert?: {
|
|
876
|
+
name: string;
|
|
877
|
+
size: string;
|
|
878
|
+
} | null | undefined;
|
|
879
|
+
bal?: {
|
|
880
|
+
type: string;
|
|
881
|
+
entitled: number;
|
|
882
|
+
used: number;
|
|
883
|
+
} | undefined;
|
|
884
|
+
} | null)[] | undefined;
|
|
785
885
|
remarks: {
|
|
786
886
|
author: string;
|
|
787
887
|
date: string;
|
|
@@ -814,6 +914,7 @@ export declare function useScheduleOnboardingWizard(board: ScheduleBoardApi, add
|
|
|
814
914
|
to: string;
|
|
815
915
|
}[] | undefined;
|
|
816
916
|
passcode?: string | undefined;
|
|
917
|
+
code?: string | undefined;
|
|
817
918
|
masterUser?: boolean | undefined;
|
|
818
919
|
};
|
|
819
920
|
row: import("./onboarding-types").TeamRow;
|
|
@@ -823,7 +924,10 @@ export declare function useScheduleOnboardingWizard(board: ScheduleBoardApi, add
|
|
|
823
924
|
teamSomePicked: import("vue").ComputedRef<boolean>;
|
|
824
925
|
pickAll: (checked: boolean) => void;
|
|
825
926
|
setPosition: (empId: number, value: string) => void;
|
|
927
|
+
removePositionFromRows: (position: string) => void;
|
|
928
|
+
toggleSecond: (empId: number, position: string) => void;
|
|
826
929
|
setEmployment: (empId: number, kind: import("./onboarding-types").TeamEmployment) => void;
|
|
930
|
+
maxHoursFor: (employment: import("./onboarding-types").TeamEmployment) => number | null;
|
|
827
931
|
setHours: (empId: number, value: string) => void;
|
|
828
932
|
setRate: (empId: number, value: string) => void;
|
|
829
933
|
bulkOpen: import("vue").Ref<boolean, boolean>;
|
|
@@ -933,6 +1037,28 @@ export declare function useScheduleOnboardingWizard(board: ScheduleBoardApi, add
|
|
|
933
1037
|
updatedAt?: string | undefined;
|
|
934
1038
|
splitGroupId?: string | undefined;
|
|
935
1039
|
}[] | null)[];
|
|
1040
|
+
timeOff?: ({
|
|
1041
|
+
timeOff: "approved" | "pending";
|
|
1042
|
+
requestId?: string | undefined;
|
|
1043
|
+
type?: "OFF_DAY" | "LEAVE" | undefined;
|
|
1044
|
+
leaveType?: "ANNUAL" | "MEDICAL" | "EMERGENCY" | "UNPAID" | undefined;
|
|
1045
|
+
reason: string;
|
|
1046
|
+
half?: boolean | undefined;
|
|
1047
|
+
halfPart?: "AM" | "PM" | undefined;
|
|
1048
|
+
from?: string | undefined;
|
|
1049
|
+
to?: string | undefined;
|
|
1050
|
+
appliedOn?: string | undefined;
|
|
1051
|
+
note?: string | undefined;
|
|
1052
|
+
cert?: {
|
|
1053
|
+
name: string;
|
|
1054
|
+
size: string;
|
|
1055
|
+
} | null | undefined;
|
|
1056
|
+
bal?: {
|
|
1057
|
+
type: string;
|
|
1058
|
+
entitled: number;
|
|
1059
|
+
used: number;
|
|
1060
|
+
} | undefined;
|
|
1061
|
+
} | null)[] | undefined;
|
|
936
1062
|
remarks: {
|
|
937
1063
|
author: string;
|
|
938
1064
|
date: string;
|
|
@@ -965,6 +1091,7 @@ export declare function useScheduleOnboardingWizard(board: ScheduleBoardApi, add
|
|
|
965
1091
|
to: string;
|
|
966
1092
|
}[] | undefined;
|
|
967
1093
|
passcode?: string | undefined;
|
|
1094
|
+
code?: string | undefined;
|
|
968
1095
|
masterUser?: boolean | undefined;
|
|
969
1096
|
}[];
|
|
970
1097
|
candidatesFor: (key: string) => {
|
|
@@ -1059,6 +1186,28 @@ export declare function useScheduleOnboardingWizard(board: ScheduleBoardApi, add
|
|
|
1059
1186
|
updatedAt?: string | undefined;
|
|
1060
1187
|
splitGroupId?: string | undefined;
|
|
1061
1188
|
}[] | null)[];
|
|
1189
|
+
timeOff?: ({
|
|
1190
|
+
timeOff: "approved" | "pending";
|
|
1191
|
+
requestId?: string | undefined;
|
|
1192
|
+
type?: "OFF_DAY" | "LEAVE" | undefined;
|
|
1193
|
+
leaveType?: "ANNUAL" | "MEDICAL" | "EMERGENCY" | "UNPAID" | undefined;
|
|
1194
|
+
reason: string;
|
|
1195
|
+
half?: boolean | undefined;
|
|
1196
|
+
halfPart?: "AM" | "PM" | undefined;
|
|
1197
|
+
from?: string | undefined;
|
|
1198
|
+
to?: string | undefined;
|
|
1199
|
+
appliedOn?: string | undefined;
|
|
1200
|
+
note?: string | undefined;
|
|
1201
|
+
cert?: {
|
|
1202
|
+
name: string;
|
|
1203
|
+
size: string;
|
|
1204
|
+
} | null | undefined;
|
|
1205
|
+
bal?: {
|
|
1206
|
+
type: string;
|
|
1207
|
+
entitled: number;
|
|
1208
|
+
used: number;
|
|
1209
|
+
} | undefined;
|
|
1210
|
+
} | null)[] | undefined;
|
|
1062
1211
|
remarks: {
|
|
1063
1212
|
author: string;
|
|
1064
1213
|
date: string;
|
|
@@ -1091,6 +1240,7 @@ export declare function useScheduleOnboardingWizard(board: ScheduleBoardApi, add
|
|
|
1091
1240
|
to: string;
|
|
1092
1241
|
}[] | undefined;
|
|
1093
1242
|
passcode?: string | undefined;
|
|
1243
|
+
code?: string | undefined;
|
|
1094
1244
|
masterUser?: boolean | undefined;
|
|
1095
1245
|
}[];
|
|
1096
1246
|
posPicker: import("vue").Ref<string | null, string | null>;
|
|
@@ -1189,6 +1339,28 @@ export declare function useScheduleOnboardingWizard(board: ScheduleBoardApi, add
|
|
|
1189
1339
|
updatedAt?: string | undefined;
|
|
1190
1340
|
splitGroupId?: string | undefined;
|
|
1191
1341
|
}[] | null)[];
|
|
1342
|
+
timeOff?: ({
|
|
1343
|
+
timeOff: "approved" | "pending";
|
|
1344
|
+
requestId?: string | undefined;
|
|
1345
|
+
type?: "OFF_DAY" | "LEAVE" | undefined;
|
|
1346
|
+
leaveType?: "ANNUAL" | "MEDICAL" | "EMERGENCY" | "UNPAID" | undefined;
|
|
1347
|
+
reason: string;
|
|
1348
|
+
half?: boolean | undefined;
|
|
1349
|
+
halfPart?: "AM" | "PM" | undefined;
|
|
1350
|
+
from?: string | undefined;
|
|
1351
|
+
to?: string | undefined;
|
|
1352
|
+
appliedOn?: string | undefined;
|
|
1353
|
+
note?: string | undefined;
|
|
1354
|
+
cert?: {
|
|
1355
|
+
name: string;
|
|
1356
|
+
size: string;
|
|
1357
|
+
} | null | undefined;
|
|
1358
|
+
bal?: {
|
|
1359
|
+
type: string;
|
|
1360
|
+
entitled: number;
|
|
1361
|
+
used: number;
|
|
1362
|
+
} | undefined;
|
|
1363
|
+
} | null)[] | undefined;
|
|
1192
1364
|
remarks: {
|
|
1193
1365
|
author: string;
|
|
1194
1366
|
date: string;
|
|
@@ -1221,6 +1393,7 @@ export declare function useScheduleOnboardingWizard(board: ScheduleBoardApi, add
|
|
|
1221
1393
|
to: string;
|
|
1222
1394
|
}[] | undefined;
|
|
1223
1395
|
passcode?: string | undefined;
|
|
1396
|
+
code?: string | undefined;
|
|
1224
1397
|
masterUser?: boolean | undefined;
|
|
1225
1398
|
}[]>;
|
|
1226
1399
|
pickerAllChecked: import("vue").ComputedRef<boolean>;
|
|
@@ -1278,22 +1451,21 @@ export declare function useScheduleOnboardingWizard(board: ScheduleBoardApi, add
|
|
|
1278
1451
|
secondaryOptions: import("vue").ComputedRef<string[]>;
|
|
1279
1452
|
isPart: import("vue").ComputedRef<boolean>;
|
|
1280
1453
|
dayLit: (index: number) => boolean;
|
|
1281
|
-
avLabel: import("vue").ComputedRef<
|
|
1282
|
-
avAllLabel: import("vue").ComputedRef<
|
|
1454
|
+
avLabel: import("vue").ComputedRef<string>;
|
|
1455
|
+
avAllLabel: import("vue").ComputedRef<string>;
|
|
1283
1456
|
maxHoursPlaceholder: import("vue").ComputedRef<string>;
|
|
1284
1457
|
minHoursPlaceholder: import("vue").ComputedRef<string>;
|
|
1285
1458
|
maxHoursPerDayPlaceholder: import("vue").ComputedRef<string>;
|
|
1286
1459
|
maxHoursPerMonthPlaceholder: import("vue").ComputedRef<string>;
|
|
1287
1460
|
toggleOvertime: () => void;
|
|
1288
|
-
payUnit: import("vue").ComputedRef<
|
|
1461
|
+
payUnit: import("vue").ComputedRef<string>;
|
|
1289
1462
|
effectiveRate: import("vue").ComputedRef<number>;
|
|
1290
1463
|
passcodeValue: import("vue").ComputedRef<string>;
|
|
1291
1464
|
passcodeOk: import("vue").ComputedRef<boolean>;
|
|
1292
1465
|
currentLocationLabel: import("vue").ComputedRef<string>;
|
|
1293
1466
|
locationOptions: import("vue").Reactive<string[]>;
|
|
1294
|
-
masterCodeError: import("vue").ComputedRef<boolean>;
|
|
1295
1467
|
isNewUser: import("vue").ComputedRef<boolean>;
|
|
1296
|
-
footerHint: import("vue").ComputedRef<
|
|
1468
|
+
footerHint: import("vue").ComputedRef<string>;
|
|
1297
1469
|
primaryRoleLabel: import("vue").ComputedRef<string>;
|
|
1298
1470
|
locationsSummary: import("vue").ComputedRef<string>;
|
|
1299
1471
|
payLine: import("vue").ComputedRef<string>;
|
|
@@ -1303,10 +1475,30 @@ export declare function useScheduleOnboardingWizard(board: ScheduleBoardApi, add
|
|
|
1303
1475
|
availabilityError: import("vue").ComputedRef<boolean>;
|
|
1304
1476
|
saving: import("vue").Ref<boolean, boolean>;
|
|
1305
1477
|
saveError: import("vue").Ref<string | null, string | null>;
|
|
1478
|
+
deferScheduleWrites: import("vue").Ref<boolean, boolean>;
|
|
1306
1479
|
candidatesLoading: import("vue").Ref<boolean, boolean>;
|
|
1307
1480
|
candidatesError: import("vue").Ref<string | null, string | null>;
|
|
1481
|
+
selectingExisting: import("vue").Ref<boolean, boolean>;
|
|
1482
|
+
candidates: import("vue").Ref<{
|
|
1483
|
+
employeeId: string;
|
|
1484
|
+
name: string;
|
|
1485
|
+
otherOutlets: string[];
|
|
1486
|
+
locations: string[];
|
|
1487
|
+
}[], import("../types").ExistingStaffCandidate[] | {
|
|
1488
|
+
employeeId: string;
|
|
1489
|
+
name: string;
|
|
1490
|
+
otherOutlets: string[];
|
|
1491
|
+
locations: string[];
|
|
1492
|
+
}[]>;
|
|
1493
|
+
candidatesTotal: import("vue").Ref<number, number>;
|
|
1494
|
+
candidatesPage: import("vue").Ref<number, number>;
|
|
1495
|
+
candidatesPageItemCount: import("vue").Ref<number, number>;
|
|
1496
|
+
candidatesPageSize: number;
|
|
1497
|
+
searchExisting: (search: string) => void;
|
|
1498
|
+
goToExistingPage: (page: number, search: string) => void;
|
|
1308
1499
|
openWizard: (section: string) => void;
|
|
1309
1500
|
openEditFor: (emp: import("../types").Employee) => void;
|
|
1501
|
+
confirmClose: () => void;
|
|
1310
1502
|
close: () => void;
|
|
1311
1503
|
setMode: (m: import("./schedule-add-employee-form").ScheduleAddEmployeeMode) => void;
|
|
1312
1504
|
openSelectExisting: () => void;
|
|
@@ -1326,7 +1518,8 @@ export declare function useScheduleOnboardingWizard(board: ScheduleBoardApi, add
|
|
|
1326
1518
|
setAvailHour: (index: number, field: "from" | "to", value: string) => void;
|
|
1327
1519
|
copyAvailHourDown: (index: number) => void;
|
|
1328
1520
|
setPasscodeDigit: (index: number, value: string) => void;
|
|
1329
|
-
generatePasscode: () => void
|
|
1521
|
+
generatePasscode: () => Promise<void>;
|
|
1522
|
+
isGeneratingPasscode: import("vue").Ref<boolean, boolean>;
|
|
1330
1523
|
togglePosAccess: () => void;
|
|
1331
1524
|
addPosRoleRow: () => void;
|
|
1332
1525
|
removePosRoleRow: (index: number) => void;
|
|
@@ -1334,7 +1527,10 @@ export declare function useScheduleOnboardingWizard(board: ScheduleBoardApi, add
|
|
|
1334
1527
|
setPosRoleOutlet: (index: number, outlet: string) => void;
|
|
1335
1528
|
setPosRoleId: (index: number, roleId: string) => void;
|
|
1336
1529
|
posRoleOptionsFor: (outlet: string) => import("../../../types/role").Role[];
|
|
1337
|
-
|
|
1530
|
+
isPosRoleUsable: (role: import("../../../types/role").Role) => boolean;
|
|
1531
|
+
setMasterUserRoleAccess: (roleIds: string[] | null | undefined) => void;
|
|
1532
|
+
isPosOutletUsable: (outlet: string) => boolean;
|
|
1533
|
+
posRolesHint: import("vue").ComputedRef<string>;
|
|
1338
1534
|
create: () => Promise<boolean>;
|
|
1339
1535
|
};
|
|
1340
1536
|
openWizard: () => void;
|
|
@@ -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 {};
|
|
@@ -6,6 +6,13 @@ export declare const CLEAR_COPY: Record<ClearKind, {
|
|
|
6
6
|
message: string;
|
|
7
7
|
confirm: string;
|
|
8
8
|
}>;
|
|
9
|
+
/** i18n keys behind each confirm dialog — `CLEAR_COPY` above is the English fallback kept for
|
|
10
|
+
* existing callers; prefer the translated `clearCopy` the composable returns. */
|
|
11
|
+
export declare const CLEAR_COPY_KEYS: Record<ClearKind, {
|
|
12
|
+
title: string;
|
|
13
|
+
message: string;
|
|
14
|
+
confirm: string;
|
|
15
|
+
}>;
|
|
9
16
|
type Snackbar = {
|
|
10
17
|
open: (options: {
|
|
11
18
|
message: string;
|
|
@@ -14,6 +21,12 @@ type Snackbar = {
|
|
|
14
21
|
};
|
|
15
22
|
export declare function useSchedulePageClearActions(board: ScheduleBoardApi, demand: ScheduleDemandApi, snackbar: Snackbar): {
|
|
16
23
|
clearKind: import("vue").Ref<ClearKind | null, ClearKind | null>;
|
|
24
|
+
clearCopy: import("vue").ComputedRef<{
|
|
25
|
+
title: string;
|
|
26
|
+
message: string;
|
|
27
|
+
confirm: string;
|
|
28
|
+
} | null>;
|
|
29
|
+
clearing: import("vue").Ref<boolean, boolean>;
|
|
17
30
|
onConfirmClear: () => Promise<void>;
|
|
18
31
|
};
|
|
19
32
|
export type SchedulePageClearActionsApi = ReturnType<typeof useSchedulePageClearActions>;
|
|
@@ -4,6 +4,7 @@ export interface SchedulePositionRow {
|
|
|
4
4
|
}
|
|
5
5
|
export declare function useSchedulePositions(options?: {
|
|
6
6
|
notify?: (message: string, type?: 'success' | 'error' | 'info') => void;
|
|
7
|
+
deferWrites?: boolean;
|
|
7
8
|
}): {
|
|
8
9
|
positions: import("vue").Ref<{
|
|
9
10
|
id: string;
|
|
@@ -12,6 +13,8 @@ export declare function useSchedulePositions(options?: {
|
|
|
12
13
|
id: string;
|
|
13
14
|
name: string;
|
|
14
15
|
}[]>;
|
|
16
|
+
pendingCreates: string[];
|
|
17
|
+
pendingDeletes: Set<string>;
|
|
15
18
|
count: import("vue").ComputedRef<number>;
|
|
16
19
|
isAdding: import("vue").Ref<boolean, boolean>;
|
|
17
20
|
newName: import("vue").Ref<string, string>;
|
|
@@ -25,5 +28,8 @@ export declare function useSchedulePositions(options?: {
|
|
|
25
28
|
askDelete: (id: string) => void;
|
|
26
29
|
cancelDelete: () => void;
|
|
27
30
|
confirmDelete: (id: string) => Promise<void>;
|
|
31
|
+
commitCreates: () => Promise<void>;
|
|
32
|
+
commitDeletes: () => Promise<void>;
|
|
33
|
+
discardPending: () => void;
|
|
28
34
|
};
|
|
29
35
|
export type SchedulePositionsApi = ReturnType<typeof useSchedulePositions>;
|
|
@@ -22,6 +22,7 @@ export declare function useSchedulePublish(board: ScheduleBoardApi): {
|
|
|
22
22
|
close: () => void;
|
|
23
23
|
conflicts: import("vue").ComputedRef<number>;
|
|
24
24
|
confirmDisabled: import("vue").ComputedRef<boolean>;
|
|
25
|
+
publishing: import("vue").Ref<boolean, boolean>;
|
|
25
26
|
visibleVersions: import("vue").ComputedRef<{
|
|
26
27
|
v: number;
|
|
27
28
|
at: Date;
|
|
@@ -117,10 +118,10 @@ export declare function useSchedulePublish(board: ScheduleBoardApi): {
|
|
|
117
118
|
toggleVersionDiff: (v: number) => void;
|
|
118
119
|
diffFor: (version: ScheduleVersion) => VersionDiffRow[];
|
|
119
120
|
confirm: () => Promise<void>;
|
|
120
|
-
restoreVersion: (v: number) => void;
|
|
121
121
|
shareOpen: import("vue").Ref<boolean, boolean>;
|
|
122
122
|
shareVersion: import("vue").Ref<number | null, number | null>;
|
|
123
123
|
shareStaffAffected: import("vue").Ref<number, number>;
|
|
124
|
+
showShareCompletion: (changeCount: number, staffAffected: number) => void;
|
|
124
125
|
closeShare: () => void;
|
|
125
126
|
};
|
|
126
127
|
export type SchedulePublishApi = ReturnType<typeof useSchedulePublish>;
|