@feedmepos/mf-hrm-portal 2.2.5-dev.7 → 2.2.5-dev.9
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-dn-WwNAd.js → ApprovalCodeList-D5l9vIsE.js} +2 -2
- package/dist/{AuditLogList-BqVp9fxD.js → AuditLogList-ByTa5UJY.js} +3 -3
- package/dist/{ConditionBuilderForm.vue_vue_type_script_setup_true_lang-DnAet2oc.js → ConditionBuilderForm.vue_vue_type_script_setup_true_lang-mNdn1TYV.js} +2 -2
- package/dist/{EmployeeList-BwTJre5k.js → EmployeeList-Bv6ANk-P.js} +8 -9
- package/dist/{GrantUserList-CZek1r4F.js → GrantUserList-Bt8w3p4j.js} +3 -3
- package/dist/{Main-MjSYZdOq.js → Main-DHJcgePj.js} +5 -5
- package/dist/{Main-CbmA-SYo.js → Main-DkP8dWgn.js} +9 -9
- package/dist/{Main-DVA51sj2.js → Main-DqiGpT4v.js} +2 -2
- package/dist/{PermissionSetList-lkHmXhNm.js → PermissionSetList-BIGv1u67.js} +10 -11
- package/dist/{PortalPermissionEditor.vue_vue_type_script_setup_true_lang-cFQDQCal.js → PortalPermissionEditor.vue_vue_type_script_setup_true_lang-niywl_DX.js} +687 -688
- package/dist/{RoleList-BSs0SmFo.js → RoleList-CH6NDKPU.js} +7 -7
- package/dist/ScheduleAddPositionModal.vue_vue_type_script_setup_true_lang-T1ACkX_6.js +426 -0
- package/dist/ScheduleButton.vue_vue_type_script_setup_true_lang-BzQuLLf5.js +690 -0
- package/dist/ScheduleGeneralPage-DJPENJZ2.js +320 -0
- package/dist/SchedulePage-C1egcbIC.js +14421 -0
- package/dist/SchedulePositionPage-OhL_hsqG.js +293 -0
- package/dist/ScheduleSelect.vue_vue_type_script_setup_true_lang-B8W4sTsA.js +242 -0
- package/dist/{TeamMemberList-Dit_nV6d.js → TeamMemberList-BwfG3go2.js} +8 -9
- package/dist/{TimesheetList-B-FlRO7E.js → TimesheetList-DcoqzbLO.js} +5 -5
- package/dist/{TimesheetList.vue_vue_type_style_index_0_scoped_63294af2_lang-DZUJR8K_.js → TimesheetList.vue_vue_type_style_index_0_scoped_63294af2_lang-RyhiKTSd.js} +2 -2
- package/dist/{app-BpnOPodL.js → app-BcZ6C8M8.js} +8 -8
- package/dist/app.js +1 -1
- package/dist/{dayjs.min-4GLfSOGZ.js → dayjs.min-Ch0iysTG.js} +1 -1
- package/dist/employee-DwYHFacQ.js +204 -0
- package/dist/{index-DYoVJQTd.js → iteration-D1uWLp0V.js} +726 -698
- package/dist/{lodash-CcFIMCiJ.js → lodash-DErxm7xf.js} +1 -1
- package/dist/{role-OXCiWTVq.js → role-B9VanAny.js} +3 -4
- package/dist/{rule-8iyCO_LZ.js → rule-C4f_Ilzr.js} +36 -37
- package/dist/src/api/schedule/index.d.ts +0 -3
- package/dist/src/views/scheduling/ScheduleGeneralPage.vue.d.ts +1 -2
- package/dist/src/views/scheduling/SchedulePage.vue.d.ts +1 -2
- package/dist/src/views/scheduling/SchedulePositionPage.vue.d.ts +1 -2
- package/dist/src/views/scheduling/components/ScheduleAddEmployeeModal.vue.d.ts +5 -1
- package/dist/src/views/scheduling/components/ScheduleAddEmployeePositionsSection.vue.d.ts +5 -1
- package/dist/src/views/scheduling/components/ScheduleAddPositionModal.vue.d.ts +6 -0
- package/dist/src/views/scheduling/components/ScheduleAutoScheduleModal.vue.d.ts +5 -1
- package/dist/src/views/scheduling/components/ScheduleButton.vue.d.ts +23 -0
- package/dist/src/views/scheduling/components/ScheduleConfirmModal.vue.d.ts +1 -1
- package/dist/src/views/scheduling/components/ScheduleEmployeeMenu.vue.d.ts +6 -0
- package/dist/src/views/scheduling/components/ScheduleGridSkeleton.vue.d.ts +2 -0
- package/dist/src/views/scheduling/components/ScheduleLeaveEditModal.vue.d.ts +4 -2
- package/dist/src/views/scheduling/components/ScheduleOnboardingWizard.vue.d.ts +3 -0
- package/dist/src/views/scheduling/components/ScheduleSelect.vue.d.ts +32 -2
- package/dist/src/views/scheduling/components/ScheduleShiftCell.vue.d.ts +4 -0
- package/dist/src/views/scheduling/components/ScheduleShiftHeadcountEditor.vue.d.ts +5 -1
- package/dist/src/views/scheduling/components/ScheduleShiftPopover.vue.d.ts +2 -0
- package/dist/src/views/scheduling/components/ScheduleStaffRail.vue.d.ts +4 -2
- package/dist/src/views/scheduling/components/ScheduleStaffRows.vue.d.ts +8 -2
- package/dist/src/views/scheduling/components/ScheduleTopbar.vue.d.ts +4 -6
- package/dist/src/views/scheduling/composables/schedule-add-employee-form.d.ts +5 -0
- package/dist/src/views/scheduling/composables/schedule-popover-position.d.ts +16 -0
- package/dist/src/views/scheduling/composables/scheduleAutoSolver.d.ts +21 -0
- package/dist/src/views/scheduling/composables/useCollapsedList.d.ts +9 -0
- package/dist/src/views/scheduling/composables/useScheduleAddEmployee.d.ts +12 -0
- package/dist/src/views/scheduling/composables/useScheduleAddPick.d.ts +14 -7
- package/dist/src/views/scheduling/composables/useScheduleAssign.d.ts +11 -2
- package/dist/src/views/scheduling/composables/useScheduleAutoSchedule.d.ts +18 -11
- package/dist/src/views/scheduling/composables/useScheduleBoard.d.ts +11 -0
- package/dist/src/views/scheduling/composables/useScheduleCopyWeek.d.ts +5 -3
- package/dist/src/views/scheduling/composables/useScheduleDayTimeline.d.ts +0 -5
- package/dist/src/views/scheduling/composables/useScheduleDemand.d.ts +12 -4
- package/dist/src/views/scheduling/composables/useScheduleDemandSheet.d.ts +7 -1
- package/dist/src/views/scheduling/composables/useScheduleEmployeeIdentity.d.ts +11 -2
- package/dist/src/views/scheduling/composables/useScheduleEmployeeMenu.d.ts +35 -0
- package/dist/src/views/scheduling/composables/useScheduleGapPopover.d.ts +2 -0
- package/dist/src/views/scheduling/composables/useScheduleLeave.d.ts +53 -3
- package/dist/src/views/scheduling/composables/useScheduleOnboardingWizard.d.ts +1192 -55
- package/dist/src/views/scheduling/composables/useScheduleOutlet.d.ts +1 -0
- package/dist/src/views/scheduling/composables/useSchedulePositionModal.d.ts +50 -0
- package/dist/src/views/scheduling/composables/useSchedulePublish.d.ts +2 -0
- package/dist/src/views/scheduling/composables/useScheduleRangeCalendar.d.ts +10 -1
- package/dist/src/views/scheduling/composables/useScheduleRoster.d.ts +6 -0
- package/dist/src/views/scheduling/composables/useScheduleSetupBanner.d.ts +5 -5
- package/dist/src/views/scheduling/composables/useScheduleShiftActions.d.ts +6 -0
- package/dist/src/views/scheduling/composables/useScheduleShiftPopover.d.ts +7 -0
- package/dist/src/views/scheduling/composables/useScheduleStaffRail.d.ts +4 -1
- package/dist/src/views/scheduling/composables/useScheduleTimePicker.d.ts +6 -1
- package/dist/src/views/scheduling/composables/useScheduleViewportFit.d.ts +9 -0
- package/dist/src/views/scheduling/data.d.ts +6 -1
- package/dist/src/views/scheduling/schedule-store.d.ts +36 -1
- package/dist/src/views/scheduling/types.d.ts +14 -1
- package/dist/style.css +1 -1
- package/dist/tsconfig.app.tsbuildinfo +1 -1
- package/dist/{useReportPermissions-C3fuFTUC.js → useReportPermissions-CTr56kBo.js} +3 -3
- package/package.json +1 -1
- package/dist/ScheduleGeneralPage-DD9n2TUe.js +0 -242
- package/dist/SchedulePage-B0X97zVC.js +0 -10761
- package/dist/SchedulePositionPage-BXz1USn3.js +0 -220
- package/dist/ScheduleSelect.vue_vue_type_script_setup_true_lang-DAHke2rH.js +0 -201
- package/dist/employee-ChdVnSmd.js +0 -139
- package/dist/index-CilJxsY7.js +0 -70
- package/dist/iteration-CcXrOMQe.js +0 -30
- package/dist/useScheduleOutlet-TPZJHgSY.js +0 -546
- package/dist/useSchedulePositions-DCkaKHQm.js +0 -103
|
@@ -1,9 +1,8 @@
|
|
|
1
1
|
import { defineStore as x, storeToRefs as b } from "pinia";
|
|
2
2
|
import { ref as w } from "vue";
|
|
3
3
|
import { useCoreStore as B } from "@feedmepos/mf-common";
|
|
4
|
-
import "./
|
|
4
|
+
import { s as v } from "./iteration-D1uWLp0V.js";
|
|
5
5
|
import { g as f, b as p, u as I } from "./restaurant-BTpBmfBV.js";
|
|
6
|
-
import { s as v } from "./iteration-CcXrOMQe.js";
|
|
7
6
|
const R = {
|
|
8
7
|
async readRoles() {
|
|
9
8
|
return f(await p().get("/pos-roles"));
|
|
@@ -81,7 +80,7 @@ const A = x("role", () => {
|
|
|
81
80
|
updateRole: g,
|
|
82
81
|
deleteRole: S
|
|
83
82
|
};
|
|
84
|
-
}),
|
|
83
|
+
}), L = () => {
|
|
85
84
|
const e = A();
|
|
86
85
|
return {
|
|
87
86
|
...e,
|
|
@@ -89,5 +88,5 @@ const A = x("role", () => {
|
|
|
89
88
|
};
|
|
90
89
|
};
|
|
91
90
|
export {
|
|
92
|
-
|
|
91
|
+
L as u
|
|
93
92
|
};
|
|
@@ -1,6 +1,5 @@
|
|
|
1
|
-
import { e as y } from "./
|
|
2
|
-
import { e as O, b as
|
|
3
|
-
import { s as V, c as ee } from "./iteration-CcXrOMQe.js";
|
|
1
|
+
import { s as W, c as q, e as y } from "./iteration-D1uWLp0V.js";
|
|
2
|
+
import { e as O, b as V, c as _, v as F, n as h, O as ee, D as M } from "./app-BcZ6C8M8.js";
|
|
4
3
|
import { s as se } from "./utils-BZkjJbju.js";
|
|
5
4
|
import { g, b as v, q as x, u as te } from "./restaurant-BTpBmfBV.js";
|
|
6
5
|
import { defineStore as z, storeToRefs as K } from "pinia";
|
|
@@ -180,13 +179,13 @@ function H(e, s, r = /* @__PURE__ */ new Set()) {
|
|
|
180
179
|
}
|
|
181
180
|
return n;
|
|
182
181
|
}
|
|
183
|
-
function
|
|
182
|
+
function Ae(e) {
|
|
184
183
|
const s = Q(e).map(
|
|
185
184
|
({ setNames: i, setId: t, ...a }) => a
|
|
186
185
|
), r = s.filter((i) => !i.inverted), n = s.filter((i) => i.inverted);
|
|
187
186
|
return L(r, n);
|
|
188
187
|
}
|
|
189
|
-
function
|
|
188
|
+
function Oe(e, s, r) {
|
|
190
189
|
const n = /* @__PURE__ */ new Map();
|
|
191
190
|
return e.forEach(
|
|
192
191
|
({ name: i, permissions: t }) => t.forEach(({ conditions: a, actions: o }) => {
|
|
@@ -203,7 +202,7 @@ function _e(e, s, r) {
|
|
|
203
202
|
setNames: [...t]
|
|
204
203
|
}));
|
|
205
204
|
}
|
|
206
|
-
function
|
|
205
|
+
function _e(e, s) {
|
|
207
206
|
const r = (o, u) => {
|
|
208
207
|
const c = { ...o }, l = JSON.parse(c.conditions || "{}");
|
|
209
208
|
if (u)
|
|
@@ -269,10 +268,10 @@ function Ee(e, s) {
|
|
|
269
268
|
}
|
|
270
269
|
return t;
|
|
271
270
|
}
|
|
272
|
-
function
|
|
271
|
+
function Ee(e) {
|
|
273
272
|
const s = G(
|
|
274
273
|
e,
|
|
275
|
-
|
|
274
|
+
V
|
|
276
275
|
), r = new Set(
|
|
277
276
|
s.filter((i) => {
|
|
278
277
|
var t;
|
|
@@ -289,7 +288,7 @@ function Ne(e) {
|
|
|
289
288
|
return e.filter((i) => i.inverted ? !(r.has(i.subject) && !n.has(i.subject)) : !r.has(i.subject));
|
|
290
289
|
}
|
|
291
290
|
const oe = "business::report::";
|
|
292
|
-
function
|
|
291
|
+
function Ne(e, s) {
|
|
293
292
|
const r = [], n = e.filter((i) => {
|
|
294
293
|
const t = i.subject;
|
|
295
294
|
return !t.startsWith(oe) || s.has(t) ? !0 : (r.push(t), !1);
|
|
@@ -300,7 +299,7 @@ const ae = "business::report::reports::", ce = _.Subject.Business.report_reports
|
|
|
300
299
|
function le(e, s) {
|
|
301
300
|
return e.conditions ? !!s.conditions && e.conditions === s.conditions : !s.conditions;
|
|
302
301
|
}
|
|
303
|
-
function
|
|
302
|
+
function Ue(e, s) {
|
|
304
303
|
const r = e.find(
|
|
305
304
|
(a) => !a.inverted && a.subject === ce
|
|
306
305
|
), n = e.find(
|
|
@@ -522,7 +521,7 @@ function A(e) {
|
|
|
522
521
|
subject: O(p.subject)
|
|
523
522
|
})), l = L(o, c), d = G(
|
|
524
523
|
de(o, c),
|
|
525
|
-
|
|
524
|
+
V
|
|
526
525
|
).filter((p) => !p.inverted), f = Y(d), m = f ?? n.value.map((p) => p._id);
|
|
527
526
|
return {
|
|
528
527
|
doc: e,
|
|
@@ -530,7 +529,7 @@ function A(e) {
|
|
|
530
529
|
name: e.name && e.name !== e.email && e.name !== e.phoneNumber ? e.name : "-",
|
|
531
530
|
phoneNumber: e.phoneNumber,
|
|
532
531
|
email: e.email,
|
|
533
|
-
restaurants:
|
|
532
|
+
restaurants: W(
|
|
534
533
|
m.map((p) => {
|
|
535
534
|
var b;
|
|
536
535
|
return ((b = n.value.find((Z) => Z._id === p)) == null ? void 0 : b.profile.name) ?? "";
|
|
@@ -542,8 +541,8 @@ function A(e) {
|
|
|
542
541
|
};
|
|
543
542
|
}
|
|
544
543
|
const ve = Object.freeze(
|
|
545
|
-
Object.values(
|
|
546
|
-
),
|
|
544
|
+
Object.values(ee)
|
|
545
|
+
), Ce = {
|
|
547
546
|
async readTeamMembers() {
|
|
548
547
|
return g(
|
|
549
548
|
await v().get("/portal-users")
|
|
@@ -598,7 +597,7 @@ const ve = Object.freeze(
|
|
|
598
597
|
)}`;
|
|
599
598
|
}
|
|
600
599
|
};
|
|
601
|
-
function
|
|
600
|
+
function Je(e, s, r) {
|
|
602
601
|
if (e.some((a) => a.subject === "all")) return "All";
|
|
603
602
|
const n = (r ?? M).filter(
|
|
604
603
|
(a) => a.subject === s
|
|
@@ -606,7 +605,7 @@ function Te(e, s, r) {
|
|
|
606
605
|
return t.length === n.length ? "All" : t.length === 0 ? "-" : `${t.length} permission allow`;
|
|
607
606
|
}
|
|
608
607
|
function w(e) {
|
|
609
|
-
const s =
|
|
608
|
+
const s = q(e), r = s.subject;
|
|
610
609
|
return {
|
|
611
610
|
...s,
|
|
612
611
|
get conditions() {
|
|
@@ -661,7 +660,7 @@ function w(e) {
|
|
|
661
660
|
}
|
|
662
661
|
};
|
|
663
662
|
}
|
|
664
|
-
function
|
|
663
|
+
function Te(e) {
|
|
665
664
|
var n, i;
|
|
666
665
|
const s = e.map((t) => w(t)).find((t) => t.isDiscountOperation);
|
|
667
666
|
if (!s) return 100;
|
|
@@ -674,23 +673,23 @@ function Y(e) {
|
|
|
674
673
|
);
|
|
675
674
|
return s ? s.conditions ? JSON.parse(s.conditions).restaurantId.$in : null : [];
|
|
676
675
|
}
|
|
677
|
-
function
|
|
676
|
+
function Be(e, s) {
|
|
678
677
|
return s.isOwner ? { restaurantIds: null, roleIds: null } : { restaurantIds: Y(e), roleIds: be(e) };
|
|
679
678
|
}
|
|
680
|
-
function
|
|
679
|
+
function Me(e) {
|
|
681
680
|
return (e == null ? void 0 : e.some((s) => s.subject === "all")) ?? !1;
|
|
682
681
|
}
|
|
683
682
|
function be(e) {
|
|
684
683
|
const s = e.find((r) => r.subject === _.Subject.Business.role);
|
|
685
684
|
return s ? s.conditions ? JSON.parse(s.conditions).roleId.$in : null : [];
|
|
686
685
|
}
|
|
687
|
-
function
|
|
686
|
+
function Le(e) {
|
|
688
687
|
const s = w(e);
|
|
689
688
|
if (!s.isReportPermission) return;
|
|
690
689
|
const { name: r, ...n } = s.conditions ?? {};
|
|
691
690
|
return Object.keys(n).length > 0 ? n : void 0;
|
|
692
691
|
}
|
|
693
|
-
function
|
|
692
|
+
function Fe(e, s, r) {
|
|
694
693
|
return e.flatMap((n) => {
|
|
695
694
|
const i = Se(n);
|
|
696
695
|
if (!i) return [];
|
|
@@ -725,7 +724,7 @@ function Se(e) {
|
|
|
725
724
|
reason: ""
|
|
726
725
|
})) : i = M.find((t) => t.subject === r), i ? w(i) : void 0;
|
|
727
726
|
}
|
|
728
|
-
function
|
|
727
|
+
function xe(e, s) {
|
|
729
728
|
const r = { values: [], passthrough: [], dropped: [] };
|
|
730
729
|
for (const n of e) {
|
|
731
730
|
const i = n == null ? void 0 : n.actions;
|
|
@@ -739,7 +738,7 @@ function De(e, s) {
|
|
|
739
738
|
return r;
|
|
740
739
|
}
|
|
741
740
|
function he(e, s = []) {
|
|
742
|
-
return
|
|
741
|
+
return W(
|
|
743
742
|
e.reduce((r, n) => {
|
|
744
743
|
const i = ve.find(
|
|
745
744
|
(t) => t.subject === n.subject && n.actions.includes("manage")
|
|
@@ -756,29 +755,29 @@ export {
|
|
|
756
755
|
G as N,
|
|
757
756
|
Q as P,
|
|
758
757
|
pe as R,
|
|
759
|
-
|
|
758
|
+
Je as a,
|
|
760
759
|
de as b,
|
|
761
760
|
H as c,
|
|
762
761
|
ge as d,
|
|
763
|
-
|
|
764
|
-
|
|
765
|
-
|
|
766
|
-
|
|
762
|
+
Le as e,
|
|
763
|
+
Fe as f,
|
|
764
|
+
Te as g,
|
|
765
|
+
Me as h,
|
|
767
766
|
oe as i,
|
|
768
|
-
|
|
769
|
-
|
|
770
|
-
|
|
771
|
-
|
|
772
|
-
|
|
773
|
-
|
|
767
|
+
Be as j,
|
|
768
|
+
Ee as k,
|
|
769
|
+
_e as l,
|
|
770
|
+
Ae as m,
|
|
771
|
+
Ne as n,
|
|
772
|
+
Ue as o,
|
|
774
773
|
ve as p,
|
|
775
774
|
me as q,
|
|
776
775
|
w as r,
|
|
777
|
-
|
|
778
|
-
|
|
776
|
+
xe as s,
|
|
777
|
+
Ce as t,
|
|
779
778
|
re as u,
|
|
780
779
|
he as v,
|
|
781
|
-
|
|
780
|
+
Oe as w,
|
|
782
781
|
Y as x,
|
|
783
782
|
be as y
|
|
784
783
|
};
|
|
@@ -37,8 +37,5 @@ declare const ScheduleAPI: {
|
|
|
37
37
|
/** Flips a batch of assignments to one status in a single request — e.g. Publish sending
|
|
38
38
|
* every DRAFT shift on the board to PUBLISHED at once. */
|
|
39
39
|
bulkUpdateAssignmentStatus(restaurantId: string, req: FdtoScheduleBulkUpdateAssignmentStatusReq): Promise<FdtoScheduleAssignment[]>;
|
|
40
|
-
devResetOutlet(restaurantId: string): Promise<{
|
|
41
|
-
removed: number;
|
|
42
|
-
}>;
|
|
43
40
|
};
|
|
44
41
|
export default ScheduleAPI;
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import './
|
|
2
|
-
import './scheduling.css';
|
|
1
|
+
import './index.css';
|
|
3
2
|
declare const _default: import("vue").DefineComponent<{}, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
|
|
4
3
|
export default _default;
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import './
|
|
2
|
-
import './scheduling.css';
|
|
1
|
+
import './index.css';
|
|
3
2
|
declare const _default: import("vue").DefineComponent<{}, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
|
|
4
3
|
export default _default;
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import './
|
|
2
|
-
import './scheduling.css';
|
|
1
|
+
import './index.css';
|
|
3
2
|
declare const _default: import("vue").DefineComponent<{}, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
|
|
4
3
|
export default _default;
|
|
@@ -2,5 +2,9 @@ import type { useScheduleAddEmployee } from '../composables/useScheduleAddEmploy
|
|
|
2
2
|
type __VLS_Props = {
|
|
3
3
|
wizard: ReturnType<typeof useScheduleAddEmployee>;
|
|
4
4
|
};
|
|
5
|
-
declare const _default: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
|
|
5
|
+
declare const _default: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
|
|
6
|
+
newPosition: (target: "primary" | "secondary") => any;
|
|
7
|
+
}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{
|
|
8
|
+
onNewPosition?: ((target: "primary" | "secondary") => any) | undefined;
|
|
9
|
+
}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
6
10
|
export default _default;
|
|
@@ -2,5 +2,9 @@ import type { useScheduleAddEmployee } from '../composables/useScheduleAddEmploy
|
|
|
2
2
|
type __VLS_Props = {
|
|
3
3
|
wizard: ReturnType<typeof useScheduleAddEmployee>;
|
|
4
4
|
};
|
|
5
|
-
declare const _default: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
|
|
5
|
+
declare const _default: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
|
|
6
|
+
newPosition: (target: "primary" | "secondary") => any;
|
|
7
|
+
}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{
|
|
8
|
+
onNewPosition?: ((target: "primary" | "secondary") => any) | undefined;
|
|
9
|
+
}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
6
10
|
export default _default;
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import type { SchedulePositionModalApi } from '../composables/useSchedulePositionModal';
|
|
2
|
+
type __VLS_Props = {
|
|
3
|
+
modal: SchedulePositionModalApi;
|
|
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;
|
|
@@ -2,5 +2,9 @@ import type { ScheduleAutoScheduleApi } from '../composables/useScheduleAutoSche
|
|
|
2
2
|
type __VLS_Props = {
|
|
3
3
|
autoSchedule: ScheduleAutoScheduleApi;
|
|
4
4
|
};
|
|
5
|
-
declare const _default: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
|
|
5
|
+
declare const _default: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
|
|
6
|
+
setDemand: () => any;
|
|
7
|
+
}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{
|
|
8
|
+
onSetDemand?: (() => any) | undefined;
|
|
9
|
+
}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
6
10
|
export default _default;
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
export type ScheduleButtonHierarchy = 'primary' | 'secondary' | 'ghost' | 'danger' | 'danger-secondary' | 'danger-ghost';
|
|
2
|
+
export type ScheduleButtonSize = 'xs' | 'sm' | 'md' | 'lg';
|
|
3
|
+
type __VLS_Props = {
|
|
4
|
+
hierarchy?: ScheduleButtonHierarchy;
|
|
5
|
+
size?: ScheduleButtonSize;
|
|
6
|
+
iconOnly?: boolean;
|
|
7
|
+
};
|
|
8
|
+
declare var __VLS_1: {};
|
|
9
|
+
type __VLS_Slots = {} & {
|
|
10
|
+
default?: (props: typeof __VLS_1) => any;
|
|
11
|
+
};
|
|
12
|
+
declare const __VLS_component: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {
|
|
13
|
+
size: ScheduleButtonSize;
|
|
14
|
+
hierarchy: ScheduleButtonHierarchy;
|
|
15
|
+
iconOnly: boolean;
|
|
16
|
+
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
17
|
+
declare const _default: __VLS_WithSlots<typeof __VLS_component, __VLS_Slots>;
|
|
18
|
+
export default _default;
|
|
19
|
+
type __VLS_WithSlots<T, S> = T & {
|
|
20
|
+
new (): {
|
|
21
|
+
$slots: S;
|
|
22
|
+
};
|
|
23
|
+
};
|
|
@@ -16,9 +16,9 @@ declare const _default: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {
|
|
|
16
16
|
onClose?: (() => any) | undefined;
|
|
17
17
|
onConfirm?: (() => any) | undefined;
|
|
18
18
|
}>, {
|
|
19
|
+
tone: "primary" | "danger";
|
|
19
20
|
messageClass: string;
|
|
20
21
|
confirmLabel: string;
|
|
21
22
|
cancelLabel: string;
|
|
22
|
-
tone: "primary" | "danger";
|
|
23
23
|
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
24
24
|
export default _default;
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import type { ScheduleEmployeeMenuApi } from '../composables/useScheduleEmployeeMenu';
|
|
2
|
+
type __VLS_Props = {
|
|
3
|
+
menu: ScheduleEmployeeMenuApi;
|
|
4
|
+
};
|
|
5
|
+
declare const _default: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
6
|
+
export default _default;
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
declare const _default: import("vue").DefineComponent<{}, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
|
|
2
|
+
export default _default;
|
|
@@ -1,6 +1,8 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { ScheduleLeaveApi } from '../composables/useScheduleLeave';
|
|
2
|
+
import { type ScheduleTimePickerApi } from '../composables/useScheduleTimePicker';
|
|
2
3
|
type __VLS_Props = {
|
|
3
|
-
leave:
|
|
4
|
+
leave: ScheduleLeaveApi;
|
|
5
|
+
timePicker: ScheduleTimePickerApi;
|
|
4
6
|
};
|
|
5
7
|
declare const _default: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
6
8
|
export default _default;
|
|
@@ -1,6 +1,9 @@
|
|
|
1
1
|
import type { ScheduleOnboardingWizardApi } from '../composables/useScheduleOnboardingWizard';
|
|
2
|
+
import { type ScheduleTimePickerApi } from '../composables/useScheduleTimePicker';
|
|
2
3
|
type __VLS_Props = {
|
|
3
4
|
wizard: ScheduleOnboardingWizardApi;
|
|
5
|
+
outletName: string;
|
|
6
|
+
timePicker: ScheduleTimePickerApi;
|
|
4
7
|
};
|
|
5
8
|
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
9
|
export default _default;
|
|
@@ -7,18 +7,48 @@ export interface ScheduleSelectOption {
|
|
|
7
7
|
label: string;
|
|
8
8
|
disabled?: boolean;
|
|
9
9
|
group?: string;
|
|
10
|
+
/** Second line under the label. Any option carrying one switches the menu to the rich
|
|
11
|
+
* layout (bold name, muted hint, tick on the right), as V6.2's outlet menu does. */
|
|
12
|
+
hint?: string;
|
|
13
|
+
/** A command rather than a choice ("+ Add a new position…"): drawn in the brand colour, as
|
|
14
|
+
* V6.2 draws it, so it stops reading as one more thing the field could be set to. */
|
|
15
|
+
command?: boolean;
|
|
10
16
|
}
|
|
11
17
|
declare const _default: import("vue").DefineComponent<{
|
|
12
|
-
modelValue
|
|
18
|
+
modelValue?: string;
|
|
13
19
|
options: ScheduleSelectOption[];
|
|
20
|
+
/** Multi-select: the menu stays open on a pick, rows show a tick for every value in
|
|
21
|
+
* `selected`, and a pick emits `toggle` instead of `update:modelValue`. Commands still
|
|
22
|
+
* close the menu and emit `update:modelValue`. */
|
|
23
|
+
multiple?: boolean;
|
|
24
|
+
selected?: string[];
|
|
25
|
+
/** Closed-control text while a multi-select has nothing picked. */
|
|
26
|
+
placeholder?: string;
|
|
14
27
|
disabled?: boolean;
|
|
28
|
+
/** Heading over the menu. Also switches to the rich layout. */
|
|
29
|
+
menuTitle?: string;
|
|
30
|
+
/** A filter box at the top of the menu, for lists long enough to hunt through (outlets). */
|
|
31
|
+
searchable?: boolean;
|
|
15
32
|
}, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
|
|
33
|
+
toggle: (value: string) => any;
|
|
16
34
|
"update:modelValue": (value: string) => any;
|
|
17
35
|
}, string, import("vue").PublicProps, Readonly<{
|
|
18
|
-
modelValue
|
|
36
|
+
modelValue?: string;
|
|
19
37
|
options: ScheduleSelectOption[];
|
|
38
|
+
/** Multi-select: the menu stays open on a pick, rows show a tick for every value in
|
|
39
|
+
* `selected`, and a pick emits `toggle` instead of `update:modelValue`. Commands still
|
|
40
|
+
* close the menu and emit `update:modelValue`. */
|
|
41
|
+
multiple?: boolean;
|
|
42
|
+
selected?: string[];
|
|
43
|
+
/** Closed-control text while a multi-select has nothing picked. */
|
|
44
|
+
placeholder?: string;
|
|
20
45
|
disabled?: boolean;
|
|
46
|
+
/** Heading over the menu. Also switches to the rich layout. */
|
|
47
|
+
menuTitle?: string;
|
|
48
|
+
/** A filter box at the top of the menu, for lists long enough to hunt through (outlets). */
|
|
49
|
+
searchable?: boolean;
|
|
21
50
|
}> & Readonly<{
|
|
51
|
+
onToggle?: ((value: string) => any) | undefined;
|
|
22
52
|
"onUpdate:modelValue"?: ((value: string) => any) | undefined;
|
|
23
53
|
}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
24
54
|
export default _default;
|
|
@@ -18,6 +18,8 @@ declare const _default: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {
|
|
|
18
18
|
dragEnd: () => any;
|
|
19
19
|
openMenu: (empId: number, dayIdx: number, anchor: HTMLElement) => any;
|
|
20
20
|
toggleProposal: (id: number) => any;
|
|
21
|
+
proposalDragStart: (id: number, ev: DragEvent) => any;
|
|
22
|
+
proposalDragEnd: () => any;
|
|
21
23
|
}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{
|
|
22
24
|
onDrop?: ((empId: number, dayIdx: number, ev: DragEvent) => any) | undefined;
|
|
23
25
|
onAddShift?: ((empId: number, dayIdx: number, anchor: HTMLElement) => any) | undefined;
|
|
@@ -27,5 +29,7 @@ declare const _default: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {
|
|
|
27
29
|
onDragEnd?: (() => any) | undefined;
|
|
28
30
|
onOpenMenu?: ((empId: number, dayIdx: number, anchor: HTMLElement) => any) | undefined;
|
|
29
31
|
onToggleProposal?: ((id: number) => any) | undefined;
|
|
32
|
+
onProposalDragStart?: ((id: number, ev: DragEvent) => any) | undefined;
|
|
33
|
+
onProposalDragEnd?: (() => any) | undefined;
|
|
30
34
|
}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
31
35
|
export default _default;
|
|
@@ -2,5 +2,9 @@ import type { ScheduleShiftPopoverApi } from '../composables/useScheduleShiftPop
|
|
|
2
2
|
type __VLS_Props = {
|
|
3
3
|
popover: ScheduleShiftPopoverApi;
|
|
4
4
|
};
|
|
5
|
-
declare const _default: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
|
|
5
|
+
declare const _default: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
|
|
6
|
+
newPosition: (assign: (name: string) => void) => any;
|
|
7
|
+
}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{
|
|
8
|
+
onNewPosition?: ((assign: (name: string) => void) => any) | undefined;
|
|
9
|
+
}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
6
10
|
export default _default;
|
|
@@ -7,8 +7,10 @@ type __VLS_Props = {
|
|
|
7
7
|
timePicker: ScheduleTimePickerApi;
|
|
8
8
|
};
|
|
9
9
|
declare const _default: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
|
|
10
|
+
newPosition: (assign: (name: string) => void) => any;
|
|
10
11
|
swap: (empId: number, dayIdx: number) => any;
|
|
11
12
|
}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{
|
|
13
|
+
onNewPosition?: ((assign: (name: string) => void) => any) | undefined;
|
|
12
14
|
onSwap?: ((empId: number, dayIdx: number) => any) | undefined;
|
|
13
15
|
}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
14
16
|
export default _default;
|
|
@@ -5,12 +5,14 @@ type __VLS_Props = {
|
|
|
5
5
|
dragDrop: ScheduleAreaDragDropApi;
|
|
6
6
|
};
|
|
7
7
|
declare const _default: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
|
|
8
|
+
openEmployee: (empId: number) => any;
|
|
9
|
+
openEmployeeMenu: (empId: number, anchor: HTMLElement) => any;
|
|
8
10
|
addEmployee: () => any;
|
|
9
11
|
jumpToOpen: () => any;
|
|
10
|
-
openEmployee: (empId: number) => any;
|
|
11
12
|
}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{
|
|
13
|
+
onOpenEmployee?: ((empId: number) => any) | undefined;
|
|
14
|
+
onOpenEmployeeMenu?: ((empId: number, anchor: HTMLElement) => any) | undefined;
|
|
12
15
|
onAddEmployee?: (() => any) | undefined;
|
|
13
16
|
onJumpToOpen?: (() => any) | undefined;
|
|
14
|
-
onOpenEmployee?: ((empId: number) => any) | undefined;
|
|
15
17
|
}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
16
18
|
export default _default;
|
|
@@ -18,6 +18,8 @@ declare const _default: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {
|
|
|
18
18
|
editLeave: (empId: number, dayIdx: number) => any;
|
|
19
19
|
dragEnd: () => any;
|
|
20
20
|
toggleProposal: (id: number) => any;
|
|
21
|
+
proposalDragStart: (id: number, ev: DragEvent) => any;
|
|
22
|
+
proposalDragEnd: () => any;
|
|
21
23
|
openAssign: (openId: number) => any;
|
|
22
24
|
openOpenShiftMenu: (openId: number, anchor: HTMLElement) => any;
|
|
23
25
|
addOpenShift: (dayIdx: number) => any;
|
|
@@ -25,7 +27,8 @@ declare const _default: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {
|
|
|
25
27
|
segLeave: () => any;
|
|
26
28
|
segClick: (dayIdx: number, from: number, to: number, anchor: HTMLElement) => any;
|
|
27
29
|
segFocus: (dayIdx: number, from: number, to: number, anchor: HTMLElement) => any;
|
|
28
|
-
|
|
30
|
+
openEmployee: (empId: number) => any;
|
|
31
|
+
openEmployeeMenu: (empId: number, anchor: HTMLElement) => any;
|
|
29
32
|
dragShiftStart: (empId: number, dayIdx: number, ev: DragEvent) => any;
|
|
30
33
|
dropOnCell: (empId: number, dayIdx: number, ev: DragEvent) => any;
|
|
31
34
|
openCardMenu: (empId: number, dayIdx: number, anchor: HTMLElement) => any;
|
|
@@ -37,6 +40,8 @@ declare const _default: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {
|
|
|
37
40
|
onEditLeave?: ((empId: number, dayIdx: number) => any) | undefined;
|
|
38
41
|
onDragEnd?: (() => any) | undefined;
|
|
39
42
|
onToggleProposal?: ((id: number) => any) | undefined;
|
|
43
|
+
onProposalDragStart?: ((id: number, ev: DragEvent) => any) | undefined;
|
|
44
|
+
onProposalDragEnd?: (() => any) | undefined;
|
|
40
45
|
onOpenAssign?: ((openId: number) => any) | undefined;
|
|
41
46
|
onOpenOpenShiftMenu?: ((openId: number, anchor: HTMLElement) => any) | undefined;
|
|
42
47
|
onAddOpenShift?: ((dayIdx: number) => any) | undefined;
|
|
@@ -44,7 +49,8 @@ declare const _default: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {
|
|
|
44
49
|
onSegLeave?: (() => any) | undefined;
|
|
45
50
|
onSegClick?: ((dayIdx: number, from: number, to: number, anchor: HTMLElement) => any) | undefined;
|
|
46
51
|
onSegFocus?: ((dayIdx: number, from: number, to: number, anchor: HTMLElement) => any) | undefined;
|
|
47
|
-
|
|
52
|
+
onOpenEmployee?: ((empId: number) => any) | undefined;
|
|
53
|
+
onOpenEmployeeMenu?: ((empId: number, anchor: HTMLElement) => any) | undefined;
|
|
48
54
|
onDragShiftStart?: ((empId: number, dayIdx: number, ev: DragEvent) => any) | undefined;
|
|
49
55
|
onDropOnCell?: ((empId: number, dayIdx: number, ev: DragEvent) => any) | undefined;
|
|
50
56
|
onOpenCardMenu?: ((empId: number, dayIdx: number, anchor: HTMLElement) => any) | undefined;
|
|
@@ -11,12 +11,10 @@ type __VLS_Props = {
|
|
|
11
11
|
exportApi: ScheduleExportApi;
|
|
12
12
|
};
|
|
13
13
|
declare const _default: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
|
|
14
|
-
"
|
|
15
|
-
"
|
|
16
|
-
"clear-shifts": () => any;
|
|
14
|
+
clear: (kind: "shifts" | "both" | "demand") => any;
|
|
15
|
+
"sch-status-click": () => any;
|
|
17
16
|
}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{
|
|
18
|
-
|
|
19
|
-
"
|
|
20
|
-
"onClear-shifts"?: (() => any) | undefined;
|
|
17
|
+
onClear?: ((kind: "shifts" | "both" | "demand") => any) | undefined;
|
|
18
|
+
"onSch-status-click"?: (() => any) | undefined;
|
|
21
19
|
}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
22
20
|
export default _default;
|
|
@@ -11,6 +11,7 @@ export interface ScheduleAddEmployeeForm {
|
|
|
11
11
|
payBasis: 'hourly' | 'monthly';
|
|
12
12
|
payAmount: string;
|
|
13
13
|
maxHours: string;
|
|
14
|
+
minHours: string;
|
|
14
15
|
otAfterDaily: string;
|
|
15
16
|
maxOtHours: string;
|
|
16
17
|
/** For a part-timer: days they CAN work. For a full-timer: days they're OFF — the
|
|
@@ -23,6 +24,10 @@ export interface ScheduleAddEmployeeForm {
|
|
|
23
24
|
seniority: '' | 'senior' | 'junior';
|
|
24
25
|
passcode: string[];
|
|
25
26
|
masterUser: boolean;
|
|
27
|
+
/** POS role for a brand-new user (applied at every outlet in `locations`). */
|
|
28
|
+
roleId: string;
|
|
29
|
+
/** Required by the POS for a master user. */
|
|
30
|
+
masterCode: string;
|
|
26
31
|
}
|
|
27
32
|
/** A salaried month, for converting a monthly figure into the hourly one the cost rail
|
|
28
33
|
* actually reads. Ported verbatim from the mockup's MONTH_HOURS. */
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
export interface ScheduleAnchorRect {
|
|
2
|
+
left: number;
|
|
3
|
+
right: number;
|
|
4
|
+
top: number;
|
|
5
|
+
bottom: number;
|
|
6
|
+
}
|
|
7
|
+
/** Measures the element a popover was opened from. Takes the rect while the anchor is still on
|
|
8
|
+
* screen; a hidden or detached element measures 0×0 and counts as "no anchor". */
|
|
9
|
+
export declare function anchorRectOf(el: Element | null | undefined): ScheduleAnchorRect | null;
|
|
10
|
+
/** Port of HRM V6.2 placePopover(): below the anchor by preference (6px gap), flipped above when
|
|
11
|
+
* there is no room, clamped to the viewport on both edges. Uses the popover's rendered size, so
|
|
12
|
+
* call it once the element is in the DOM. */
|
|
13
|
+
export declare function placePopover(el: HTMLElement, anchor: ScheduleAnchorRect | null): {
|
|
14
|
+
left: number;
|
|
15
|
+
top: number;
|
|
16
|
+
};
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import type { FdtoScheduleAutoScheduleObjective } from '@/types/schedule';
|
|
2
|
+
import type { CoverageSegment, Employee, Proposal } from '../types';
|
|
3
|
+
export interface SolverInput {
|
|
4
|
+
dayCount: number;
|
|
5
|
+
employees: Employee[];
|
|
6
|
+
/** Coverage of a day against an explicit set of employees (the working copy). */
|
|
7
|
+
segmentsWith: (dayIdx: number, employees: Employee[]) => CoverageSegment[];
|
|
8
|
+
/** Days the board will not take shifts on (locked week). */
|
|
9
|
+
skipDay: (dayIdx: number) => boolean;
|
|
10
|
+
objective: FdtoScheduleAutoScheduleObjective;
|
|
11
|
+
allowOvertime: boolean;
|
|
12
|
+
}
|
|
13
|
+
export interface SolverOutput {
|
|
14
|
+
proposals: Proposal[];
|
|
15
|
+
unfilled: number;
|
|
16
|
+
totalHours: number;
|
|
17
|
+
overtimeHours: number;
|
|
18
|
+
cost: number;
|
|
19
|
+
explanations: string[];
|
|
20
|
+
}
|
|
21
|
+
export declare function solveAutoSchedule(input: SolverInput): SolverOutput;
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/** A long list shown as its first few entries plus "+N more", expandable in place. For chip rows
|
|
2
|
+
* that can run to a hundred items (a person rostered at every outlet), which would otherwise
|
|
3
|
+
* push the rest of the form off screen. */
|
|
4
|
+
export declare function useCollapsedList<T>(items: () => T[], limit?: number): {
|
|
5
|
+
expanded: import("vue").Ref<boolean, boolean>;
|
|
6
|
+
shown: import("vue").ComputedRef<T[]>;
|
|
7
|
+
hiddenCount: import("vue").ComputedRef<number>;
|
|
8
|
+
toggle: () => void;
|
|
9
|
+
};
|