@feedmepos/mf-hrm-portal 2.3.0-dev.13 → 2.3.0-dev.15
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-D3egZFML.js → ApprovalCodeList-CY0ox1dX.js} +4 -4
- package/dist/{AuditLogList-BzbaEsSj.js → AuditLogList-CBkA-KQT.js} +17 -18
- package/dist/{ConditionBuilderForm.vue_vue_type_script_setup_true_lang-Do52KbKm.js → ConditionBuilderForm.vue_vue_type_script_setup_true_lang-B8cb8yqV.js} +2 -2
- package/dist/{EmployeeList-BiM8dRwZ.js → EmployeeList-0PrcuHPJ.js} +255 -267
- package/dist/{FormItem.vue_vue_type_script_setup_true_lang-CUnlKsxk.js → FormItem.vue_vue_type_script_setup_true_lang-rjDE1B4E.js} +6 -6
- package/dist/{GrantUserList-Dj2ms20E.js → GrantUserList-Dw923P2j.js} +5 -5
- package/dist/{Main-DmpwTPaI.js → Main-BqX7n1ik.js} +9 -9
- package/dist/{Main-C2z7Jf9A.js → Main-C0bcn2NY.js} +5 -5
- package/dist/{Main-DklZWoKj.js → Main-Dpf2KdSH.js} +2 -2
- package/dist/{PermissionSetList-C-qgCcRO.js → PermissionSetList-xrI130SW.js} +5 -5
- package/dist/{PortalPermissionEditor.vue_vue_type_script_setup_true_lang-ggZB5zWW.js → PortalPermissionEditor.vue_vue_type_script_setup_true_lang-3_8qycrF.js} +465 -465
- package/dist/{RoleList-ohfin77B.js → RoleList-DPkG5dg9.js} +7 -7
- package/dist/ScheduleAddPositionModal.vue_vue_type_script_setup_true_lang-DYLLW46A.js +501 -0
- package/dist/{ScheduleGeneralPage-aCljFf21.js → ScheduleGeneralPage-CISbuAff.js} +141 -143
- package/dist/{ScheduleModal.vue_vue_type_script_setup_true_lang-x_-BYkcc.js → ScheduleModal.vue_vue_type_script_setup_true_lang-BeTuMw3f.js} +989 -858
- package/dist/SchedulePage-Dn6_TiBS.js +18757 -0
- package/dist/{SchedulePositionPage-CID91orD.js → SchedulePositionPage-Cu3WRfH-.js} +79 -81
- package/dist/{SelectFilter-CG13h83-.js → SelectFilter-ssnRUIN6.js} +1 -1
- package/dist/{TeamMemberList-DJIKL4dE.js → TeamMemberList-DTqNCDJb.js} +35 -36
- package/dist/{TimesheetList-BPXWPNfT.js → TimesheetList-CA19TmKm.js} +52 -53
- package/dist/{TimesheetList.vue_vue_type_style_index_0_scoped_63294af2_lang-DVcV0knM.js → TimesheetList.vue_vue_type_style_index_0_scoped_63294af2_lang-B1jnsZpD.js} +2 -2
- package/dist/{app-Bz8568j8.js → app-3xGY2Rn0.js} +2062 -1800
- package/dist/app.js +1 -1
- package/dist/{dayjs.min-DhSRKSu4.js → dayjs.min-C_c8OoEU.js} +1 -1
- package/dist/{employee-BM44u8b-.js → employee-Dt0y51t3.js} +3 -3
- package/dist/{iteration-BHDxs89d.js → iteration-C4YvbrCe.js} +1 -1
- package/dist/{lodash-DgSYLwYD.js → lodash-huRs3Cbj.js} +1 -1
- package/dist/object-Dwyg2LgX.js +16 -0
- package/dist/{role-BMJ7LEHN.js → role-fM58UmtC.js} +1 -1
- package/dist/{rule-CCo7_ckA.js → rule-CCN0QCPF.js} +2 -2
- package/dist/src/views/audit-log/locales/index.d.ts +252 -0
- package/dist/src/views/scheduling/components/ScheduleAreaRows.vue.d.ts +2 -0
- package/dist/src/views/scheduling/components/ScheduleBoardAreaRows.vue.d.ts +1 -0
- package/dist/src/views/scheduling/components/ScheduleOnboardingSettings.vue.d.ts +6 -0
- package/dist/src/views/scheduling/composables/onboarding-types.d.ts +2 -1
- package/dist/src/views/scheduling/composables/schedule-demand-domain.d.ts +13 -1
- package/dist/src/views/scheduling/composables/schedule-error.d.ts +3 -0
- package/dist/src/views/scheduling/composables/schedule-quick-pick.d.ts +22 -0
- package/dist/src/views/scheduling/composables/useScheduleAddEmployee.d.ts +5 -2
- package/dist/src/views/scheduling/composables/useScheduleAddPick.d.ts +3 -11
- package/dist/src/views/scheduling/composables/useScheduleAutoSchedule.d.ts +7 -0
- package/dist/src/views/scheduling/composables/useScheduleBoard.d.ts +45 -1
- package/dist/src/views/scheduling/composables/useScheduleCostRail.d.ts +13 -1
- package/dist/src/views/scheduling/composables/useScheduleDayTimeline.d.ts +2 -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/useScheduleEmployeeCandidates.d.ts +3 -0
- package/dist/src/views/scheduling/composables/useScheduleEmployeeValidation.d.ts +0 -2
- package/dist/src/views/scheduling/composables/useScheduleOnboardingEmployees.d.ts +25 -0
- package/dist/src/views/scheduling/composables/useScheduleOnboardingWizard.d.ts +163 -4
- package/dist/src/views/scheduling/composables/useScheduleRoster.d.ts +44 -0
- package/dist/src/views/scheduling/composables/useScheduleSetupBanner.d.ts +2 -2
- package/dist/src/views/scheduling/composables/useScheduleShiftActions.d.ts +22 -0
- package/dist/src/views/scheduling/composables/useScheduleShiftPopover.d.ts +26 -2
- package/dist/src/views/scheduling/country-rules/index.d.ts +8 -3
- package/dist/src/views/scheduling/data.d.ts +17 -0
- package/dist/src/views/scheduling/schedule-store.d.ts +7 -7
- package/dist/src/views/scheduling/types.d.ts +5 -0
- package/dist/style.css +1 -1
- package/dist/tsconfig.app.tsbuildinfo +1 -1
- package/dist/{useReportPermissions-C_Cd__n1.js → useReportPermissions-BlX_Mk5f.js} +3 -3
- package/package.json +1 -1
- package/dist/ScheduleAddPositionModal.vue_vue_type_script_setup_true_lang-diuWysro.js +0 -492
- package/dist/SchedulePage-DdMHF6kX.js +0 -17993
- package/dist/_plugin-vue_export-helper-CHgC5LLL.js +0 -9
package/dist/app.js
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import { d as g } from "./dayjs.min-
|
|
1
|
+
import { d as g } from "./dayjs.min-C_c8OoEU.js";
|
|
2
2
|
import { defineStore as $, storeToRefs as x } from "pinia";
|
|
3
3
|
import { ref as m } from "vue";
|
|
4
|
-
import { s as E } from "./iteration-
|
|
4
|
+
import { s as E } from "./iteration-C4YvbrCe.js";
|
|
5
5
|
import { b as l, g as f, u as I } from "./restaurant-BbYRA_IT.js";
|
|
6
6
|
import { i as v } from "./utils-BZkjJbju.js";
|
|
7
|
-
import { u as P } from "./role-
|
|
7
|
+
import { u as P } from "./role-fM58UmtC.js";
|
|
8
8
|
const o = {
|
|
9
9
|
async readEmployees() {
|
|
10
10
|
return f(await l().get("/pos-users"));
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { f as B } from "./app-
|
|
1
|
+
import { f as B } from "./app-3xGY2Rn0.js";
|
|
2
2
|
var ma = {}, Zt = {}, l = {}, ji = {}, Ei = {}, Ii = {}, Dn = {};
|
|
3
3
|
(function(e) {
|
|
4
4
|
Object.defineProperty(e, "__esModule", { value: !0 }), e.getParsedType = e.ZodParsedType = e.util = void 0;
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { toRaw as n } from "vue";
|
|
2
|
+
function t(r) {
|
|
3
|
+
return JSON.parse(JSON.stringify(r));
|
|
4
|
+
}
|
|
5
|
+
function o(r) {
|
|
6
|
+
if (typeof structuredClone > "u")
|
|
7
|
+
return t(r);
|
|
8
|
+
try {
|
|
9
|
+
return structuredClone(n(r));
|
|
10
|
+
} catch {
|
|
11
|
+
return t(r);
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
export {
|
|
15
|
+
o as c
|
|
16
|
+
};
|
|
@@ -1,7 +1,7 @@
|
|
|
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-
|
|
4
|
+
import { s as v } from "./iteration-C4YvbrCe.js";
|
|
5
5
|
import { g as f, b as p, u as I } from "./restaurant-BbYRA_IT.js";
|
|
6
6
|
const R = {
|
|
7
7
|
async readRoles() {
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { s as W, c as q, e as y } from "./iteration-
|
|
2
|
-
import {
|
|
1
|
+
import { s as W, c as q, e as y } from "./iteration-C4YvbrCe.js";
|
|
2
|
+
import { h as O, c as V, d as _, v as F, n as h, O as ee, D as M } from "./app-3xGY2Rn0.js";
|
|
3
3
|
import { s as se } from "./utils-BZkjJbju.js";
|
|
4
4
|
import { g, b as v, q as x, u as te } from "./restaurant-BbYRA_IT.js";
|
|
5
5
|
import { defineStore as z, storeToRefs as K } from "pinia";
|
|
@@ -222,6 +222,69 @@ export declare const i18nMessages: {
|
|
|
222
222
|
view: string;
|
|
223
223
|
update: string;
|
|
224
224
|
};
|
|
225
|
+
"schedule-shift": {
|
|
226
|
+
create: string;
|
|
227
|
+
update: string;
|
|
228
|
+
"bulk-save": string;
|
|
229
|
+
publish: string;
|
|
230
|
+
unpublish: string;
|
|
231
|
+
confirm: string;
|
|
232
|
+
delete: string;
|
|
233
|
+
"auto-apply": string;
|
|
234
|
+
};
|
|
235
|
+
"schedule-demand": {
|
|
236
|
+
create: string;
|
|
237
|
+
update: string;
|
|
238
|
+
replace: string;
|
|
239
|
+
delete: string;
|
|
240
|
+
};
|
|
241
|
+
"schedule-time-off": {
|
|
242
|
+
create: string;
|
|
243
|
+
"update-status": string;
|
|
244
|
+
delete: string;
|
|
245
|
+
};
|
|
246
|
+
"schedule-day": {
|
|
247
|
+
save: string;
|
|
248
|
+
delete: string;
|
|
249
|
+
};
|
|
250
|
+
"schedule-settings": {
|
|
251
|
+
update: string;
|
|
252
|
+
};
|
|
253
|
+
"schedule-employee-config": {
|
|
254
|
+
update: string;
|
|
255
|
+
};
|
|
256
|
+
"schedule-operating-hours": {
|
|
257
|
+
update: string;
|
|
258
|
+
};
|
|
259
|
+
"schedule-position": {
|
|
260
|
+
create: string;
|
|
261
|
+
update: string;
|
|
262
|
+
delete: string;
|
|
263
|
+
};
|
|
264
|
+
"schedule-employee": {
|
|
265
|
+
create: string;
|
|
266
|
+
delete: string;
|
|
267
|
+
};
|
|
268
|
+
"schedule-shift-item": {
|
|
269
|
+
create: string;
|
|
270
|
+
update: string;
|
|
271
|
+
delete: string;
|
|
272
|
+
publish: string;
|
|
273
|
+
unpublish: string;
|
|
274
|
+
confirm: string;
|
|
275
|
+
};
|
|
276
|
+
"schedule-demand-item": {
|
|
277
|
+
create: string;
|
|
278
|
+
update: string;
|
|
279
|
+
delete: string;
|
|
280
|
+
};
|
|
281
|
+
"schedule-time-off-item": {
|
|
282
|
+
create: string;
|
|
283
|
+
approve: string;
|
|
284
|
+
reject: string;
|
|
285
|
+
cancel: string;
|
|
286
|
+
delete: string;
|
|
287
|
+
};
|
|
225
288
|
};
|
|
226
289
|
};
|
|
227
290
|
};
|
|
@@ -448,6 +511,69 @@ export declare const i18nMessages: {
|
|
|
448
511
|
view: string;
|
|
449
512
|
update: string;
|
|
450
513
|
};
|
|
514
|
+
"schedule-shift": {
|
|
515
|
+
create: string;
|
|
516
|
+
update: string;
|
|
517
|
+
"bulk-save": string;
|
|
518
|
+
publish: string;
|
|
519
|
+
unpublish: string;
|
|
520
|
+
confirm: string;
|
|
521
|
+
delete: string;
|
|
522
|
+
"auto-apply": string;
|
|
523
|
+
};
|
|
524
|
+
"schedule-demand": {
|
|
525
|
+
create: string;
|
|
526
|
+
update: string;
|
|
527
|
+
replace: string;
|
|
528
|
+
delete: string;
|
|
529
|
+
};
|
|
530
|
+
"schedule-time-off": {
|
|
531
|
+
create: string;
|
|
532
|
+
"update-status": string;
|
|
533
|
+
delete: string;
|
|
534
|
+
};
|
|
535
|
+
"schedule-day": {
|
|
536
|
+
save: string;
|
|
537
|
+
delete: string;
|
|
538
|
+
};
|
|
539
|
+
"schedule-settings": {
|
|
540
|
+
update: string;
|
|
541
|
+
};
|
|
542
|
+
"schedule-employee-config": {
|
|
543
|
+
update: string;
|
|
544
|
+
};
|
|
545
|
+
"schedule-operating-hours": {
|
|
546
|
+
update: string;
|
|
547
|
+
};
|
|
548
|
+
"schedule-position": {
|
|
549
|
+
create: string;
|
|
550
|
+
update: string;
|
|
551
|
+
delete: string;
|
|
552
|
+
};
|
|
553
|
+
"schedule-employee": {
|
|
554
|
+
create: string;
|
|
555
|
+
delete: string;
|
|
556
|
+
};
|
|
557
|
+
"schedule-shift-item": {
|
|
558
|
+
create: string;
|
|
559
|
+
update: string;
|
|
560
|
+
delete: string;
|
|
561
|
+
publish: string;
|
|
562
|
+
unpublish: string;
|
|
563
|
+
confirm: string;
|
|
564
|
+
};
|
|
565
|
+
"schedule-demand-item": {
|
|
566
|
+
create: string;
|
|
567
|
+
update: string;
|
|
568
|
+
delete: string;
|
|
569
|
+
};
|
|
570
|
+
"schedule-time-off-item": {
|
|
571
|
+
create: string;
|
|
572
|
+
approve: string;
|
|
573
|
+
reject: string;
|
|
574
|
+
cancel: string;
|
|
575
|
+
delete: string;
|
|
576
|
+
};
|
|
451
577
|
};
|
|
452
578
|
};
|
|
453
579
|
};
|
|
@@ -674,6 +800,69 @@ export declare const i18nMessages: {
|
|
|
674
800
|
view: string;
|
|
675
801
|
update: string;
|
|
676
802
|
};
|
|
803
|
+
"schedule-shift": {
|
|
804
|
+
create: string;
|
|
805
|
+
update: string;
|
|
806
|
+
"bulk-save": string;
|
|
807
|
+
publish: string;
|
|
808
|
+
unpublish: string;
|
|
809
|
+
confirm: string;
|
|
810
|
+
delete: string;
|
|
811
|
+
"auto-apply": string;
|
|
812
|
+
};
|
|
813
|
+
"schedule-demand": {
|
|
814
|
+
create: string;
|
|
815
|
+
update: string;
|
|
816
|
+
replace: string;
|
|
817
|
+
delete: string;
|
|
818
|
+
};
|
|
819
|
+
"schedule-time-off": {
|
|
820
|
+
create: string;
|
|
821
|
+
"update-status": string;
|
|
822
|
+
delete: string;
|
|
823
|
+
};
|
|
824
|
+
"schedule-day": {
|
|
825
|
+
save: string;
|
|
826
|
+
delete: string;
|
|
827
|
+
};
|
|
828
|
+
"schedule-settings": {
|
|
829
|
+
update: string;
|
|
830
|
+
};
|
|
831
|
+
"schedule-employee-config": {
|
|
832
|
+
update: string;
|
|
833
|
+
};
|
|
834
|
+
"schedule-operating-hours": {
|
|
835
|
+
update: string;
|
|
836
|
+
};
|
|
837
|
+
"schedule-position": {
|
|
838
|
+
create: string;
|
|
839
|
+
update: string;
|
|
840
|
+
delete: string;
|
|
841
|
+
};
|
|
842
|
+
"schedule-employee": {
|
|
843
|
+
create: string;
|
|
844
|
+
delete: string;
|
|
845
|
+
};
|
|
846
|
+
"schedule-shift-item": {
|
|
847
|
+
create: string;
|
|
848
|
+
update: string;
|
|
849
|
+
delete: string;
|
|
850
|
+
publish: string;
|
|
851
|
+
unpublish: string;
|
|
852
|
+
confirm: string;
|
|
853
|
+
};
|
|
854
|
+
"schedule-demand-item": {
|
|
855
|
+
create: string;
|
|
856
|
+
update: string;
|
|
857
|
+
delete: string;
|
|
858
|
+
};
|
|
859
|
+
"schedule-time-off-item": {
|
|
860
|
+
create: string;
|
|
861
|
+
approve: string;
|
|
862
|
+
reject: string;
|
|
863
|
+
cancel: string;
|
|
864
|
+
delete: string;
|
|
865
|
+
};
|
|
677
866
|
};
|
|
678
867
|
};
|
|
679
868
|
};
|
|
@@ -900,6 +1089,69 @@ export declare const i18nMessages: {
|
|
|
900
1089
|
view: string;
|
|
901
1090
|
update: string;
|
|
902
1091
|
};
|
|
1092
|
+
"schedule-shift": {
|
|
1093
|
+
create: string;
|
|
1094
|
+
update: string;
|
|
1095
|
+
"bulk-save": string;
|
|
1096
|
+
publish: string;
|
|
1097
|
+
unpublish: string;
|
|
1098
|
+
confirm: string;
|
|
1099
|
+
delete: string;
|
|
1100
|
+
"auto-apply": string;
|
|
1101
|
+
};
|
|
1102
|
+
"schedule-demand": {
|
|
1103
|
+
create: string;
|
|
1104
|
+
update: string;
|
|
1105
|
+
replace: string;
|
|
1106
|
+
delete: string;
|
|
1107
|
+
};
|
|
1108
|
+
"schedule-time-off": {
|
|
1109
|
+
create: string;
|
|
1110
|
+
"update-status": string;
|
|
1111
|
+
delete: string;
|
|
1112
|
+
};
|
|
1113
|
+
"schedule-day": {
|
|
1114
|
+
save: string;
|
|
1115
|
+
delete: string;
|
|
1116
|
+
};
|
|
1117
|
+
"schedule-settings": {
|
|
1118
|
+
update: string;
|
|
1119
|
+
};
|
|
1120
|
+
"schedule-employee-config": {
|
|
1121
|
+
update: string;
|
|
1122
|
+
};
|
|
1123
|
+
"schedule-operating-hours": {
|
|
1124
|
+
update: string;
|
|
1125
|
+
};
|
|
1126
|
+
"schedule-position": {
|
|
1127
|
+
create: string;
|
|
1128
|
+
update: string;
|
|
1129
|
+
delete: string;
|
|
1130
|
+
};
|
|
1131
|
+
"schedule-employee": {
|
|
1132
|
+
create: string;
|
|
1133
|
+
delete: string;
|
|
1134
|
+
};
|
|
1135
|
+
"schedule-shift-item": {
|
|
1136
|
+
create: string;
|
|
1137
|
+
update: string;
|
|
1138
|
+
delete: string;
|
|
1139
|
+
publish: string;
|
|
1140
|
+
unpublish: string;
|
|
1141
|
+
confirm: string;
|
|
1142
|
+
};
|
|
1143
|
+
"schedule-demand-item": {
|
|
1144
|
+
create: string;
|
|
1145
|
+
update: string;
|
|
1146
|
+
delete: string;
|
|
1147
|
+
};
|
|
1148
|
+
"schedule-time-off-item": {
|
|
1149
|
+
create: string;
|
|
1150
|
+
approve: string;
|
|
1151
|
+
reject: string;
|
|
1152
|
+
cancel: string;
|
|
1153
|
+
delete: string;
|
|
1154
|
+
};
|
|
903
1155
|
};
|
|
904
1156
|
};
|
|
905
1157
|
};
|
|
@@ -20,6 +20,7 @@ declare const _default: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {
|
|
|
20
20
|
segClick: (dayIdx: number, from: number, to: number, anchor: HTMLElement) => any;
|
|
21
21
|
segFocus: (dayIdx: number, from: number, to: number, anchor: HTMLElement) => any;
|
|
22
22
|
openDemandSheet: (dayIdx: number) => any;
|
|
23
|
+
openNewShift: (dayIdx: number, position: string) => any;
|
|
23
24
|
addPosition: () => any;
|
|
24
25
|
scheduleByPerson: () => any;
|
|
25
26
|
openSwap: (fromEmpId: number, fromDayIdx: number, toEmpId: number, toDayIdx: number, slotIndex: number) => any;
|
|
@@ -30,6 +31,7 @@ declare const _default: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {
|
|
|
30
31
|
onSegClick?: ((dayIdx: number, from: number, to: number, anchor: HTMLElement) => any) | undefined;
|
|
31
32
|
onSegFocus?: ((dayIdx: number, from: number, to: number, anchor: HTMLElement) => any) | undefined;
|
|
32
33
|
onOpenDemandSheet?: ((dayIdx: number) => any) | undefined;
|
|
34
|
+
onOpenNewShift?: ((dayIdx: number, position: string) => any) | undefined;
|
|
33
35
|
onAddPosition?: (() => any) | undefined;
|
|
34
36
|
onScheduleByPerson?: (() => any) | undefined;
|
|
35
37
|
onOpenSwap?: ((fromEmpId: number, fromDayIdx: number, toEmpId: number, toDayIdx: number, slotIndex: number) => any) | undefined;
|
|
@@ -10,6 +10,7 @@ type __VLS_Props = {
|
|
|
10
10
|
shiftDragDrop: ScheduleDragDropApi;
|
|
11
11
|
demandRow: ScheduleDemandRowApi;
|
|
12
12
|
onEditShift: (...args: any[]) => void;
|
|
13
|
+
onOpenNewShift: (...args: any[]) => void;
|
|
13
14
|
onOpenDemandSheet: (...args: any[]) => void;
|
|
14
15
|
onSegEnter: (...args: any[]) => void;
|
|
15
16
|
onSegLeave: (...args: any[]) => void;
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import type { ScheduleOnboardingWizardApi } from '../composables/useScheduleOnboardingWizard';
|
|
2
|
+
type __VLS_Props = {
|
|
3
|
+
wizard: ScheduleOnboardingWizardApi;
|
|
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;
|
|
@@ -23,7 +23,8 @@ export interface TeamRow {
|
|
|
23
23
|
picked: boolean;
|
|
24
24
|
/** '' means "Any position" — a person with none. */
|
|
25
25
|
position: string;
|
|
26
|
-
|
|
26
|
+
/** Additional positions this employee also covers. */
|
|
27
|
+
second: string[];
|
|
27
28
|
employment: TeamEmployment;
|
|
28
29
|
maxHours: string;
|
|
29
30
|
rate: string;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { DemandPeriod } from '../types';
|
|
1
|
+
import type { DemandPeriod, Employee } from '../types';
|
|
2
2
|
import { format12h as t12, formatShortMinutes as minToShort, fromMinutes as minToHHMM, spanMinutes as spanOf, toMinutes as toMin } from './schedule-time';
|
|
3
3
|
export { minToHHMM, minToShort, spanOf, t12, toMin };
|
|
4
4
|
export declare function rangeText(from: number, to: number): string;
|
|
@@ -9,3 +9,15 @@ export interface ScheduleCoverageAxis {
|
|
|
9
9
|
from: number;
|
|
10
10
|
to: number;
|
|
11
11
|
}
|
|
12
|
+
/** Fills named position rows from the people on, as a maximum matching (Kuhn's augmenting
|
|
13
|
+
* paths) so a flexible person is moved off one row when another row has nobody else. Rows are
|
|
14
|
+
* tried in the order given (scarcest first); within a row, main-position holders are offered
|
|
15
|
+
* first, then secondary holders, then people with no positions. Returns heads filled per row
|
|
16
|
+
* (same order as `rows`) and the ids spent. */
|
|
17
|
+
export declare function matchSlots(rows: Array<{
|
|
18
|
+
position: string;
|
|
19
|
+
required: number;
|
|
20
|
+
}>, on: Employee[], qualified: (e: Employee, position: string) => boolean): {
|
|
21
|
+
got: number[];
|
|
22
|
+
spent: Set<number>;
|
|
23
|
+
};
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import type { CoverageSegment, Employee } from '../types';
|
|
2
|
+
import type { ScheduleCoverageAxis } from './schedule-demand-domain';
|
|
3
|
+
export interface QuickPickRules {
|
|
4
|
+
minHoursPerDay: number | null;
|
|
5
|
+
maxHoursPerDay: number | null;
|
|
6
|
+
}
|
|
7
|
+
export interface QuickPickCandidate {
|
|
8
|
+
start: string;
|
|
9
|
+
end: string;
|
|
10
|
+
/** Position name, or '' for any position. */
|
|
11
|
+
role: string;
|
|
12
|
+
/** Max short among the runs this shift covers. */
|
|
13
|
+
short: number;
|
|
14
|
+
label: string;
|
|
15
|
+
covers: string;
|
|
16
|
+
title: string;
|
|
17
|
+
}
|
|
18
|
+
/** Up to 3 shifts for one employee on one day, built the way the auto-schedule planner builds
|
|
19
|
+
* them: one per (short run, position the person can fill), padded to their daily minimum,
|
|
20
|
+
* capped at their maximum, kept inside their availability window and clear of their existing
|
|
21
|
+
* shifts. Rest-gap and weekly-cap checks are left to the shift editor's own warnings. */
|
|
22
|
+
export declare function buildQuickPicks(emp: Employee, dayIdx: number, segments: CoverageSegment[], axis: ScheduleCoverageAxis, rules: QuickPickRules, qualifiedFor: (emp: Employee, position: string) => boolean): QuickPickCandidate[];
|
|
@@ -65,7 +65,6 @@ export declare function useScheduleAddEmployee(board: ScheduleBoardApi, options?
|
|
|
65
65
|
passcodeOk: import("vue").ComputedRef<boolean>;
|
|
66
66
|
currentLocationLabel: import("vue").ComputedRef<string>;
|
|
67
67
|
locationOptions: import("vue").Reactive<string[]>;
|
|
68
|
-
masterCodeError: import("vue").ComputedRef<boolean>;
|
|
69
68
|
isNewUser: import("vue").ComputedRef<boolean>;
|
|
70
69
|
footerHint: import("vue").ComputedRef<"Pick who — this outlet's own pay, position and hours are still set here." | "One short form. Rest days are set on their profile afterwards.">;
|
|
71
70
|
primaryRoleLabel: import("vue").ComputedRef<string>;
|
|
@@ -101,7 +100,8 @@ export declare function useScheduleAddEmployee(board: ScheduleBoardApi, options?
|
|
|
101
100
|
setAvailHour: (index: number, field: "from" | "to", value: string) => void;
|
|
102
101
|
copyAvailHourDown: (index: number) => void;
|
|
103
102
|
setPasscodeDigit: (index: number, value: string) => void;
|
|
104
|
-
generatePasscode: () => void
|
|
103
|
+
generatePasscode: () => Promise<void>;
|
|
104
|
+
isGeneratingPasscode: import("vue").Ref<boolean, boolean>;
|
|
105
105
|
togglePosAccess: () => void;
|
|
106
106
|
addPosRoleRow: () => void;
|
|
107
107
|
removePosRoleRow: (index: number) => void;
|
|
@@ -109,6 +109,9 @@ export declare function useScheduleAddEmployee(board: ScheduleBoardApi, options?
|
|
|
109
109
|
setPosRoleOutlet: (index: number, outlet: string) => void;
|
|
110
110
|
setPosRoleId: (index: number, roleId: string) => void;
|
|
111
111
|
posRoleOptionsFor: (outlet: string) => import("../../../types/role").Role[];
|
|
112
|
+
isPosRoleUsable: (role: import("../../../types/role").Role) => boolean;
|
|
113
|
+
setMasterUserRoleAccess: (roleIds: string[] | null | undefined) => void;
|
|
114
|
+
isPosOutletUsable: (outlet: string) => boolean;
|
|
112
115
|
posRolesHint: import("vue").ComputedRef<"" | "No outlet assigned, so their passcode will not open a till yet." | "The same outlet is listed twice — only the last role on it will apply.">;
|
|
113
116
|
create: () => Promise<boolean>;
|
|
114
117
|
};
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import type { ScheduleBoardApi } from './useScheduleBoard';
|
|
2
2
|
import type { ScheduleDemandApi } from './useScheduleDemand';
|
|
3
|
+
import { type QuickPickCandidate } from './schedule-quick-pick';
|
|
3
4
|
import { type ScheduleAnchorRect } from './schedule-popover-position';
|
|
4
5
|
export interface ScheduleAddPickState {
|
|
5
6
|
open: boolean;
|
|
@@ -15,15 +16,6 @@ export interface ScheduleAddPickLeaveOption {
|
|
|
15
16
|
reason: string;
|
|
16
17
|
swatch: string;
|
|
17
18
|
}
|
|
18
|
-
export interface ScheduleAddPickSuggestion {
|
|
19
|
-
start: string;
|
|
20
|
-
end: string;
|
|
21
|
-
short: number;
|
|
22
|
-
label: string;
|
|
23
|
-
/** "Covers 16:00–22:00 demand" — the demand this offer answers, shown under the label. */
|
|
24
|
-
covers: string;
|
|
25
|
-
title: string;
|
|
26
|
-
}
|
|
27
19
|
/** The "+ Add" quick-pick popover on an employee's empty cell — ported from the mockup's
|
|
28
20
|
* openAddShiftPicker()/renderAddPickList(), scoped to what this board actually has: our one
|
|
29
21
|
* active shift pattern, a fixed leave-reason list, and a demand-gap suggestion, all committed
|
|
@@ -57,7 +49,7 @@ export declare function useScheduleAddPick(board: ScheduleBoardApi, demand: Sche
|
|
|
57
49
|
start: string;
|
|
58
50
|
end: string;
|
|
59
51
|
} | null>;
|
|
60
|
-
|
|
52
|
+
suggestions: import("vue").ComputedRef<QuickPickCandidate[]>;
|
|
61
53
|
filteredPatterns: import("vue").ComputedRef<{
|
|
62
54
|
key: string;
|
|
63
55
|
label: string;
|
|
@@ -71,7 +63,7 @@ export declare function useScheduleAddPick(board: ScheduleBoardApi, demand: Sche
|
|
|
71
63
|
hasResults: import("vue").ComputedRef<boolean>;
|
|
72
64
|
openFor: (empId: number, dayIdx: number, anchor: HTMLElement) => void;
|
|
73
65
|
close: () => void;
|
|
74
|
-
pickSuggested: () => void;
|
|
66
|
+
pickSuggested: (index: number) => void;
|
|
75
67
|
pickPattern: (key: string) => void;
|
|
76
68
|
pickTypedRange: (start: string, end: string) => void;
|
|
77
69
|
pickLeave: (reason: string) => void;
|
|
@@ -37,6 +37,7 @@ export declare function useScheduleAutoSchedule(board: ScheduleBoardApi, demand:
|
|
|
37
37
|
objective: "BALANCED" | "SERVICE" | "LOWER_COST" | "STABLE_HOURS";
|
|
38
38
|
allowOvertime: boolean;
|
|
39
39
|
proposals: {
|
|
40
|
+
rejectReason?: string | null | undefined | undefined;
|
|
40
41
|
date: string;
|
|
41
42
|
startTime: string;
|
|
42
43
|
endTime: string;
|
|
@@ -101,6 +102,7 @@ export declare function useScheduleAutoSchedule(board: ScheduleBoardApi, demand:
|
|
|
101
102
|
objective: "BALANCED" | "SERVICE" | "LOWER_COST" | "STABLE_HOURS";
|
|
102
103
|
allowOvertime: boolean;
|
|
103
104
|
proposals: {
|
|
105
|
+
rejectReason?: string | null | undefined;
|
|
104
106
|
date: string;
|
|
105
107
|
startTime: string;
|
|
106
108
|
endTime: string;
|
|
@@ -165,6 +167,7 @@ export declare function useScheduleAutoSchedule(board: ScheduleBoardApi, demand:
|
|
|
165
167
|
objective: "BALANCED" | "SERVICE" | "LOWER_COST" | "STABLE_HOURS";
|
|
166
168
|
allowOvertime: boolean;
|
|
167
169
|
proposals: {
|
|
170
|
+
rejectReason?: string | null | undefined | undefined;
|
|
168
171
|
date: string;
|
|
169
172
|
startTime: string;
|
|
170
173
|
endTime: string;
|
|
@@ -248,6 +251,7 @@ export declare function useScheduleAutoSchedule(board: ScheduleBoardApi, demand:
|
|
|
248
251
|
status: "pending" | "rejected";
|
|
249
252
|
weekKey?: string | undefined;
|
|
250
253
|
reason?: string | undefined;
|
|
254
|
+
rejectReason?: string | undefined;
|
|
251
255
|
}[]>;
|
|
252
256
|
weekHasProposals: import("vue").ComputedRef<boolean>;
|
|
253
257
|
unmetCount: import("vue").Ref<number, number>;
|
|
@@ -264,6 +268,9 @@ export declare function useScheduleAutoSchedule(board: ScheduleBoardApi, demand:
|
|
|
264
268
|
toggleReject: (id: number) => void;
|
|
265
269
|
rejectAll: () => void;
|
|
266
270
|
exitReview: () => void;
|
|
271
|
+
leaveReviewOpen: import("vue").Ref<boolean, boolean>;
|
|
272
|
+
confirmLeaveReview: () => void;
|
|
273
|
+
cancelLeaveReview: () => void;
|
|
267
274
|
apply: () => Promise<number | null>;
|
|
268
275
|
applying: import("vue").Ref<boolean, boolean>;
|
|
269
276
|
applyRejections: import("vue").Ref<{
|
|
@@ -110,6 +110,28 @@ export declare function useScheduleBoard(handlers?: {
|
|
|
110
110
|
updatedAt?: string | undefined;
|
|
111
111
|
splitGroupId?: string | undefined;
|
|
112
112
|
}[] | null)[];
|
|
113
|
+
timeOff?: ({
|
|
114
|
+
timeOff: "approved" | "pending";
|
|
115
|
+
requestId?: string | undefined;
|
|
116
|
+
type?: "OFF_DAY" | "LEAVE" | undefined;
|
|
117
|
+
leaveType?: "ANNUAL" | "MEDICAL" | "EMERGENCY" | "UNPAID" | undefined;
|
|
118
|
+
reason: string;
|
|
119
|
+
half?: boolean | undefined;
|
|
120
|
+
halfPart?: "AM" | "PM" | undefined;
|
|
121
|
+
from?: string | undefined;
|
|
122
|
+
to?: string | undefined;
|
|
123
|
+
appliedOn?: string | undefined;
|
|
124
|
+
note?: string | undefined;
|
|
125
|
+
cert?: {
|
|
126
|
+
name: string;
|
|
127
|
+
size: string;
|
|
128
|
+
} | null | undefined;
|
|
129
|
+
bal?: {
|
|
130
|
+
type: string;
|
|
131
|
+
entitled: number;
|
|
132
|
+
used: number;
|
|
133
|
+
} | undefined;
|
|
134
|
+
} | null)[] | undefined;
|
|
113
135
|
remarks: {
|
|
114
136
|
author: string;
|
|
115
137
|
date: string;
|
|
@@ -236,6 +258,28 @@ export declare function useScheduleBoard(handlers?: {
|
|
|
236
258
|
updatedAt?: string | undefined;
|
|
237
259
|
splitGroupId?: string | undefined;
|
|
238
260
|
}[] | null)[];
|
|
261
|
+
timeOff?: ({
|
|
262
|
+
timeOff: "approved" | "pending";
|
|
263
|
+
requestId?: string | undefined;
|
|
264
|
+
type?: "OFF_DAY" | "LEAVE" | undefined;
|
|
265
|
+
leaveType?: "ANNUAL" | "MEDICAL" | "EMERGENCY" | "UNPAID" | undefined;
|
|
266
|
+
reason: string;
|
|
267
|
+
half?: boolean | undefined;
|
|
268
|
+
halfPart?: "AM" | "PM" | undefined;
|
|
269
|
+
from?: string | undefined;
|
|
270
|
+
to?: string | undefined;
|
|
271
|
+
appliedOn?: string | undefined;
|
|
272
|
+
note?: string | undefined;
|
|
273
|
+
cert?: {
|
|
274
|
+
name: string;
|
|
275
|
+
size: string;
|
|
276
|
+
} | null | undefined;
|
|
277
|
+
bal?: {
|
|
278
|
+
type: string;
|
|
279
|
+
entitled: number;
|
|
280
|
+
used: number;
|
|
281
|
+
} | undefined;
|
|
282
|
+
} | null)[] | undefined;
|
|
239
283
|
remarks: {
|
|
240
284
|
author: string;
|
|
241
285
|
date: string;
|
|
@@ -549,7 +593,7 @@ export declare function useScheduleBoard(handlers?: {
|
|
|
549
593
|
clearEmployeeShifts: (empId: number) => {
|
|
550
594
|
shifts: number;
|
|
551
595
|
};
|
|
552
|
-
moveShift: (fromEmpId: number, fromDayIdx: number, toEmpId: number, toDayIdx: number, fromSlotIndex?: number, fromSlotCount?: number) => boolean;
|
|
596
|
+
moveShift: (fromEmpId: number, fromDayIdx: number, toEmpId: number, toDayIdx: number, fromSlotIndex?: number, fromSlotCount?: number, targetPosition?: string) => boolean;
|
|
553
597
|
swapShifts: (empIdA: number, empIdB: number, dayA: number, dayB?: number, slotIndexA?: number, slotIndexB?: number, slotCountA?: number) => boolean;
|
|
554
598
|
clearShiftsInRange: () => {
|
|
555
599
|
shifts: number;
|
|
@@ -27,8 +27,17 @@ export interface ScheduleOtRisk {
|
|
|
27
27
|
empId: number;
|
|
28
28
|
name: string;
|
|
29
29
|
hours: number;
|
|
30
|
+
otHours: number;
|
|
30
31
|
contract: number;
|
|
31
32
|
}
|
|
33
|
+
export interface ScheduleMonthlyOtSummary {
|
|
34
|
+
key: string;
|
|
35
|
+
label: string;
|
|
36
|
+
used: number;
|
|
37
|
+
cap: number | null;
|
|
38
|
+
progress: number;
|
|
39
|
+
high: boolean;
|
|
40
|
+
}
|
|
32
41
|
/** The staff rail consumes the same employee identity/load derivation as the area view. */
|
|
33
42
|
export type ScheduleRailRow = ScheduleEmployeeLoad;
|
|
34
43
|
/** Weekly labour cost + monthly OT gauge for the collapsible cost rail, built off one
|
|
@@ -41,7 +50,10 @@ export declare function useScheduleCostRail(board: ScheduleBoardApi, proposalAt?
|
|
|
41
50
|
weeklyCost: import("vue").ComputedRef<number>;
|
|
42
51
|
otHours: import("vue").ComputedRef<number>;
|
|
43
52
|
monthlyOtUsed: import("vue").ComputedRef<number>;
|
|
44
|
-
|
|
53
|
+
monthlyOtSummaries: import("vue").ComputedRef<ScheduleMonthlyOtSummary[]>;
|
|
54
|
+
monthlyOtCapHours: import("vue").ComputedRef<number | null>;
|
|
55
|
+
monthlyOtProgress: import("vue").ComputedRef<number>;
|
|
56
|
+
monthlyOtHigh: import("vue").ComputedRef<boolean>;
|
|
45
57
|
bySection: import("vue").ComputedRef<ScheduleSectionCost[]>;
|
|
46
58
|
otRisk: import("vue").ComputedRef<ScheduleOtRisk[]>;
|
|
47
59
|
};
|