@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 useScheduleRoster(board: ScheduleBoardApi): {
|
|
|
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 useScheduleRoster(board: ScheduleBoardApi): {
|
|
|
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
|
orderedEmployees: import("vue").ComputedRef<{
|
|
@@ -227,6 +250,28 @@ export declare function useScheduleRoster(board: ScheduleBoardApi): {
|
|
|
227
250
|
updatedAt?: string | undefined;
|
|
228
251
|
splitGroupId?: string | undefined;
|
|
229
252
|
}[] | null)[];
|
|
253
|
+
timeOff?: ({
|
|
254
|
+
timeOff: "approved" | "pending";
|
|
255
|
+
requestId?: string | undefined;
|
|
256
|
+
type?: "OFF_DAY" | "LEAVE" | undefined;
|
|
257
|
+
leaveType?: "ANNUAL" | "MEDICAL" | "EMERGENCY" | "UNPAID" | undefined;
|
|
258
|
+
reason: string;
|
|
259
|
+
half?: boolean | undefined;
|
|
260
|
+
halfPart?: "AM" | "PM" | undefined;
|
|
261
|
+
from?: string | undefined;
|
|
262
|
+
to?: string | undefined;
|
|
263
|
+
appliedOn?: string | undefined;
|
|
264
|
+
note?: string | undefined;
|
|
265
|
+
cert?: {
|
|
266
|
+
name: string;
|
|
267
|
+
size: string;
|
|
268
|
+
} | null | undefined;
|
|
269
|
+
bal?: {
|
|
270
|
+
type: string;
|
|
271
|
+
entitled: number;
|
|
272
|
+
used: number;
|
|
273
|
+
} | undefined;
|
|
274
|
+
} | null)[] | undefined;
|
|
230
275
|
remarks: {
|
|
231
276
|
author: string;
|
|
232
277
|
date: string;
|
|
@@ -259,6 +304,7 @@ export declare function useScheduleRoster(board: ScheduleBoardApi): {
|
|
|
259
304
|
to: string;
|
|
260
305
|
}[] | undefined;
|
|
261
306
|
passcode?: string | undefined;
|
|
307
|
+
code?: string | undefined;
|
|
262
308
|
masterUser?: boolean | undefined;
|
|
263
309
|
}[]>;
|
|
264
310
|
order: import("vue").Ref<number[], number[]>;
|
|
@@ -2,7 +2,7 @@ export type ScheduleSettingsSection = 'budget' | 'payrates' | 'overtime' | 'work
|
|
|
2
2
|
/** Keep unsupported sections out of the navigation until their API fields exist. */
|
|
3
3
|
export declare const SETTINGS_SECTIONS: {
|
|
4
4
|
key: ScheduleSettingsSection;
|
|
5
|
-
|
|
5
|
+
labelKey: string;
|
|
6
6
|
}[];
|
|
7
7
|
/** Settings currently supported by the schedule API: pay rates and monthly OT hours. */
|
|
8
8
|
export declare function useScheduleSettings(): {
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/** "Set it up" banner — shown while the outlet has not finished scheduling setup, i.e. while
|
|
2
|
-
* `scheduleSetupCompleted` (schedule-store) is false. Dismissing
|
|
3
|
-
*
|
|
2
|
+
* `scheduleSetupCompleted` (schedule-store) is false. Dismissing marks the outlet's setup complete (`setupCompleted`
|
|
3
|
+
* is persisted), so neither the banner nor the welcome dialog returns.
|
|
4
4
|
*
|
|
5
5
|
* The welcome dialog shares that same gate, plus its own session dismiss so closing it doesn't
|
|
6
6
|
* also close the banner. `scheduleSetupCompleted` lands from an async fetch and starts `false`
|
|
@@ -29,7 +29,10 @@ export interface ScheduleSwapState {
|
|
|
29
29
|
preset: {
|
|
30
30
|
empId: number;
|
|
31
31
|
dayIdx: number;
|
|
32
|
+
slotIndex?: number;
|
|
32
33
|
} | null;
|
|
34
|
+
/** Area/Position view exchanges roles; employee view exchanges shift ownership. */
|
|
35
|
+
kind: 'employee' | 'position';
|
|
33
36
|
}
|
|
34
37
|
/** The shift card's "⋯" menu (Change employee / Swap shifts / Edit / Remove), plus the two
|
|
35
38
|
* dialogs it opens that the rest of Phase 1 didn't need: handing a shift to somebody else,
|
|
@@ -148,6 +151,28 @@ export declare function useScheduleShiftActions(board: ScheduleBoardApi, options
|
|
|
148
151
|
updatedAt?: string | undefined;
|
|
149
152
|
splitGroupId?: string | undefined;
|
|
150
153
|
}[] | null)[];
|
|
154
|
+
timeOff?: ({
|
|
155
|
+
timeOff: "approved" | "pending";
|
|
156
|
+
requestId?: string | undefined;
|
|
157
|
+
type?: "OFF_DAY" | "LEAVE" | undefined;
|
|
158
|
+
leaveType?: "ANNUAL" | "MEDICAL" | "EMERGENCY" | "UNPAID" | undefined;
|
|
159
|
+
reason: string;
|
|
160
|
+
half?: boolean | undefined;
|
|
161
|
+
halfPart?: "AM" | "PM" | undefined;
|
|
162
|
+
from?: string | undefined;
|
|
163
|
+
to?: string | undefined;
|
|
164
|
+
appliedOn?: string | undefined;
|
|
165
|
+
note?: string | undefined;
|
|
166
|
+
cert?: {
|
|
167
|
+
name: string;
|
|
168
|
+
size: string;
|
|
169
|
+
} | null | undefined;
|
|
170
|
+
bal?: {
|
|
171
|
+
type: string;
|
|
172
|
+
entitled: number;
|
|
173
|
+
used: number;
|
|
174
|
+
} | undefined;
|
|
175
|
+
} | null)[] | undefined;
|
|
151
176
|
remarks: {
|
|
152
177
|
author: string;
|
|
153
178
|
date: string;
|
|
@@ -180,6 +205,7 @@ export declare function useScheduleShiftActions(board: ScheduleBoardApi, options
|
|
|
180
205
|
to: string;
|
|
181
206
|
}[] | undefined;
|
|
182
207
|
passcode?: string | undefined;
|
|
208
|
+
code?: string | undefined;
|
|
183
209
|
masterUser?: boolean | undefined;
|
|
184
210
|
}[]>;
|
|
185
211
|
openChange: (empId: number, dayIdx: number, slotIndex?: number) => void;
|
|
@@ -194,7 +220,9 @@ export declare function useScheduleShiftActions(board: ScheduleBoardApi, options
|
|
|
194
220
|
preset: {
|
|
195
221
|
empId: number;
|
|
196
222
|
dayIdx: number;
|
|
223
|
+
slotIndex?: number | undefined;
|
|
197
224
|
} | null;
|
|
225
|
+
kind: "employee" | "position";
|
|
198
226
|
};
|
|
199
227
|
swapSlot: import("vue").ComputedRef<import("../types").WorkSlot[]>;
|
|
200
228
|
swapCandidates: import("vue").ComputedRef<{
|
|
@@ -209,7 +237,7 @@ export declare function useScheduleShiftActions(board: ScheduleBoardApi, options
|
|
|
209
237
|
slot: import("../types").WorkSlot[];
|
|
210
238
|
soft: string | null;
|
|
211
239
|
} | null>;
|
|
212
|
-
openSwap: (empId: number, dayIdx: number, preset?: ScheduleSwapState["preset"], slotIndex?: number, slotCount?: number) => void;
|
|
240
|
+
openSwap: (empId: number, dayIdx: number, preset?: ScheduleSwapState["preset"], slotIndex?: number, slotCount?: number, kind?: ScheduleSwapState["kind"]) => void;
|
|
213
241
|
closeSwap: () => void;
|
|
214
242
|
confirmSwap: (toEmpId: number, toDayIdx: number) => void;
|
|
215
243
|
removeShift: (empId: number, dayIdx: number, slotIndex?: number) => void;
|
|
@@ -7,6 +7,10 @@ export interface ScheduleHeadcountRole {
|
|
|
7
7
|
count: number;
|
|
8
8
|
sen: '' | 'senior' | 'junior';
|
|
9
9
|
}
|
|
10
|
+
export interface ScheduleWarningPart {
|
|
11
|
+
text: string;
|
|
12
|
+
emphasis?: boolean;
|
|
13
|
+
}
|
|
10
14
|
/** The unified shift popover — ported from the mockup's single `.shift-pop`, which answers
|
|
11
15
|
* both "who is on this shift" and "what does this shift need" from one form. Picking a real
|
|
12
16
|
* person in the `who` select turns it into an assignment; leaving it on "Empty shift" turns
|
|
@@ -15,6 +19,7 @@ export interface ScheduleHeadcountRole {
|
|
|
15
19
|
* record (single position, like an assigned shift's "Position needed" row). */
|
|
16
20
|
export declare function useScheduleShiftPopover(board: ScheduleBoardApi, demand: ScheduleDemandApi, options?: {
|
|
17
21
|
onToast?: (message: string, type?: 'success' | 'error' | 'info') => void;
|
|
22
|
+
onAvailabilityWarning?: (message: string, onConfirm: () => void) => void;
|
|
18
23
|
}): {
|
|
19
24
|
open: import("vue").Ref<boolean, boolean>;
|
|
20
25
|
dayIdx: import("vue").Ref<number | null, number | null>;
|
|
@@ -65,7 +70,7 @@ export declare function useScheduleShiftPopover(board: ScheduleBoardApi, demand:
|
|
|
65
70
|
saveDisabled: import("vue").ComputedRef<boolean>;
|
|
66
71
|
dailyLimitExceeded: import("vue").ComputedRef<boolean>;
|
|
67
72
|
saveTitle: import("vue").ComputedRef<string>;
|
|
68
|
-
saveLabel: import("vue").ComputedRef<
|
|
73
|
+
saveLabel: import("vue").ComputedRef<string>;
|
|
69
74
|
breakChoice: import("vue").Ref<import("./schedule-shift-time").ScheduleBreakChoice, import("./schedule-shift-time").ScheduleBreakChoice>;
|
|
70
75
|
breakCustomMins: import("vue").Ref<number, number>;
|
|
71
76
|
breakCustomUnit: import("vue").Ref<"mins" | "hrs", "mins" | "hrs">;
|
|
@@ -75,6 +80,7 @@ export declare function useScheduleShiftPopover(board: ScheduleBoardApi, demand:
|
|
|
75
80
|
repeatDays: import("vue").Ref<boolean[], boolean[]>;
|
|
76
81
|
gapNote: import("vue").Ref<string | null, string | null>;
|
|
77
82
|
conflictNote: import("vue").Ref<string | null, string | null>;
|
|
83
|
+
availabilityConflictNote: import("vue").ComputedRef<string | null>;
|
|
78
84
|
grantSkill: import("vue").Ref<boolean, boolean>;
|
|
79
85
|
showGrantSkill: import("vue").ComputedRef<boolean>;
|
|
80
86
|
unassignMode: import("vue").Ref<boolean, boolean>;
|
|
@@ -171,6 +177,28 @@ export declare function useScheduleShiftPopover(board: ScheduleBoardApi, demand:
|
|
|
171
177
|
updatedAt?: string | undefined;
|
|
172
178
|
splitGroupId?: string | undefined;
|
|
173
179
|
}[] | null)[];
|
|
180
|
+
timeOff?: ({
|
|
181
|
+
timeOff: "approved" | "pending";
|
|
182
|
+
requestId?: string | undefined;
|
|
183
|
+
type?: "OFF_DAY" | "LEAVE" | undefined;
|
|
184
|
+
leaveType?: "ANNUAL" | "MEDICAL" | "EMERGENCY" | "UNPAID" | undefined;
|
|
185
|
+
reason: string;
|
|
186
|
+
half?: boolean | undefined;
|
|
187
|
+
halfPart?: "AM" | "PM" | undefined;
|
|
188
|
+
from?: string | undefined;
|
|
189
|
+
to?: string | undefined;
|
|
190
|
+
appliedOn?: string | undefined;
|
|
191
|
+
note?: string | undefined;
|
|
192
|
+
cert?: {
|
|
193
|
+
name: string;
|
|
194
|
+
size: string;
|
|
195
|
+
} | null | undefined;
|
|
196
|
+
bal?: {
|
|
197
|
+
type: string;
|
|
198
|
+
entitled: number;
|
|
199
|
+
used: number;
|
|
200
|
+
} | undefined;
|
|
201
|
+
} | null)[] | undefined;
|
|
174
202
|
remarks: {
|
|
175
203
|
author: string;
|
|
176
204
|
date: string;
|
|
@@ -203,6 +231,7 @@ export declare function useScheduleShiftPopover(board: ScheduleBoardApi, demand:
|
|
|
203
231
|
to: string;
|
|
204
232
|
}[] | undefined;
|
|
205
233
|
passcode?: string | undefined;
|
|
234
|
+
code?: string | undefined;
|
|
206
235
|
masterUser?: boolean | undefined;
|
|
207
236
|
}[]>;
|
|
208
237
|
isAssigned: import("vue").ComputedRef<boolean>;
|
|
@@ -212,9 +241,9 @@ export declare function useScheduleShiftPopover(board: ScheduleBoardApi, demand:
|
|
|
212
241
|
isSingleOpenRecord: import("vue").ComputedRef<boolean>;
|
|
213
242
|
totalHours: import("vue").ComputedRef<number>;
|
|
214
243
|
totalLabel: import("vue").ComputedRef<string>;
|
|
215
|
-
warnings: import("vue").ComputedRef<
|
|
216
|
-
openForEmployee: (forEmpId: number, day: number, roleHint?: string, hours?: ScheduleShiftSegment, slotIndex?: number) => void;
|
|
217
|
-
openForNewOpenShift: (day: number, roleHint?: string, hours?: ScheduleShiftSegment) => void;
|
|
244
|
+
warnings: import("vue").ComputedRef<ScheduleWarningPart[][]>;
|
|
245
|
+
openForEmployee: (forEmpId: number, day: number, roleHint?: string, hours?: ScheduleShiftSegment, slotIndex?: number, warnAvailability?: boolean) => void;
|
|
246
|
+
openForNewOpenShift: (day: number, roleHint?: string, hours?: ScheduleShiftSegment, requireAssignment?: boolean) => void;
|
|
218
247
|
openForEditOpenShift: (openShiftId: number) => void;
|
|
219
248
|
close: () => void;
|
|
220
249
|
removeSegment: (i: number) => void;
|
|
@@ -7,9 +7,14 @@ export interface CountryScheduleRules {
|
|
|
7
7
|
maxHoursPerMonth: number | null;
|
|
8
8
|
};
|
|
9
9
|
workingHours: {
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
10
|
+
fullTime: {
|
|
11
|
+
minHoursPerDay: number | null;
|
|
12
|
+
maxHoursPerDay: number | null;
|
|
13
|
+
maxHoursPerWeek: number | null;
|
|
14
|
+
};
|
|
15
|
+
partTime: {
|
|
16
|
+
maxHoursPerWeek: number | null;
|
|
17
|
+
};
|
|
13
18
|
};
|
|
14
19
|
recurringPublicHolidays: Array<{
|
|
15
20
|
month: number;
|
|
@@ -17,8 +22,12 @@ export interface CountryScheduleRules {
|
|
|
17
22
|
name: string;
|
|
18
23
|
}>;
|
|
19
24
|
publicHolidays: Record<string, Record<string, string>>;
|
|
25
|
+
/** Local holiday names keyed by language (e.g. "th") then by the English name above. */
|
|
26
|
+
holidayNames?: Record<string, Record<string, string>>;
|
|
20
27
|
}
|
|
21
28
|
export declare function normalizeCountryCode(country: unknown): string;
|
|
22
29
|
export declare function getCountryScheduleRules(country?: unknown): CountryScheduleRules;
|
|
23
|
-
|
|
30
|
+
/** The holiday on `date`, in the UI language when the country has a name for it (`locale` like
|
|
31
|
+
* "th-TH"), otherwise the English name. */
|
|
32
|
+
export declare function holidayNameForDate(rules: CountryScheduleRules, date: string, locale?: string): string | null;
|
|
24
33
|
export declare const SUPPORTED_SCHEDULE_COUNTRIES: string[];
|
|
@@ -25,6 +25,23 @@ export declare function positionIdOf(name: string): string | undefined;
|
|
|
25
25
|
/** The selector shape every position-carrying save request wants — `undefined` for a blank
|
|
26
26
|
* name (the field itself has nothing to name), a resolved id alongside the name otherwise. */
|
|
27
27
|
export declare function positionSelectorOf(name: string | undefined, positionId?: string): FdtoSchedulePositionSelectorReq | undefined;
|
|
28
|
+
/** Position IDs are authoritative after a rename. Keep the stored name only as a fallback for
|
|
29
|
+
* archived or legacy references that cannot be resolved back to the active catalogue. */
|
|
30
|
+
export declare function positionNameOf(position: {
|
|
31
|
+
positionId?: string | null;
|
|
32
|
+
positionName: string;
|
|
33
|
+
} | null | undefined, catalogue?: readonly {
|
|
34
|
+
id: string;
|
|
35
|
+
name: string;
|
|
36
|
+
}[]): string | undefined;
|
|
37
|
+
/** Resolves a position only when it still exists in the active catalogue. */
|
|
38
|
+
export declare function activePositionNameOf(position: {
|
|
39
|
+
positionId?: string | null;
|
|
40
|
+
positionName: string;
|
|
41
|
+
} | null | undefined, catalogue?: readonly {
|
|
42
|
+
id: string;
|
|
43
|
+
name: string;
|
|
44
|
+
}[]): string | undefined;
|
|
28
45
|
/** A saved position reference can outlive its catalogue entry after a soft delete. */
|
|
29
46
|
export declare function isArchivedPosition(name: string | undefined, positionId?: string): boolean;
|
|
30
47
|
/** Which coverage positions a station label counts toward. Positions ARE the roles in this
|