@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.
Files changed (94) hide show
  1. package/dist/{ApprovalCodeList-dn-WwNAd.js → ApprovalCodeList-D5l9vIsE.js} +2 -2
  2. package/dist/{AuditLogList-BqVp9fxD.js → AuditLogList-ByTa5UJY.js} +3 -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
  4. package/dist/{EmployeeList-BwTJre5k.js → EmployeeList-Bv6ANk-P.js} +8 -9
  5. package/dist/{GrantUserList-CZek1r4F.js → GrantUserList-Bt8w3p4j.js} +3 -3
  6. package/dist/{Main-MjSYZdOq.js → Main-DHJcgePj.js} +5 -5
  7. package/dist/{Main-CbmA-SYo.js → Main-DkP8dWgn.js} +9 -9
  8. package/dist/{Main-DVA51sj2.js → Main-DqiGpT4v.js} +2 -2
  9. package/dist/{PermissionSetList-lkHmXhNm.js → PermissionSetList-BIGv1u67.js} +10 -11
  10. 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
  11. package/dist/{RoleList-BSs0SmFo.js → RoleList-CH6NDKPU.js} +7 -7
  12. package/dist/ScheduleAddPositionModal.vue_vue_type_script_setup_true_lang-T1ACkX_6.js +426 -0
  13. package/dist/ScheduleButton.vue_vue_type_script_setup_true_lang-BzQuLLf5.js +690 -0
  14. package/dist/ScheduleGeneralPage-DJPENJZ2.js +320 -0
  15. package/dist/SchedulePage-C1egcbIC.js +14421 -0
  16. package/dist/SchedulePositionPage-OhL_hsqG.js +293 -0
  17. package/dist/ScheduleSelect.vue_vue_type_script_setup_true_lang-B8W4sTsA.js +242 -0
  18. package/dist/{TeamMemberList-Dit_nV6d.js → TeamMemberList-BwfG3go2.js} +8 -9
  19. package/dist/{TimesheetList-B-FlRO7E.js → TimesheetList-DcoqzbLO.js} +5 -5
  20. 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
  21. package/dist/{app-BpnOPodL.js → app-BcZ6C8M8.js} +8 -8
  22. package/dist/app.js +1 -1
  23. package/dist/{dayjs.min-4GLfSOGZ.js → dayjs.min-Ch0iysTG.js} +1 -1
  24. package/dist/employee-DwYHFacQ.js +204 -0
  25. package/dist/{index-DYoVJQTd.js → iteration-D1uWLp0V.js} +726 -698
  26. package/dist/{lodash-CcFIMCiJ.js → lodash-DErxm7xf.js} +1 -1
  27. package/dist/{role-OXCiWTVq.js → role-B9VanAny.js} +3 -4
  28. package/dist/{rule-8iyCO_LZ.js → rule-C4f_Ilzr.js} +36 -37
  29. package/dist/src/api/schedule/index.d.ts +0 -3
  30. package/dist/src/views/scheduling/ScheduleGeneralPage.vue.d.ts +1 -2
  31. package/dist/src/views/scheduling/SchedulePage.vue.d.ts +1 -2
  32. package/dist/src/views/scheduling/SchedulePositionPage.vue.d.ts +1 -2
  33. package/dist/src/views/scheduling/components/ScheduleAddEmployeeModal.vue.d.ts +5 -1
  34. package/dist/src/views/scheduling/components/ScheduleAddEmployeePositionsSection.vue.d.ts +5 -1
  35. package/dist/src/views/scheduling/components/ScheduleAddPositionModal.vue.d.ts +6 -0
  36. package/dist/src/views/scheduling/components/ScheduleAutoScheduleModal.vue.d.ts +5 -1
  37. package/dist/src/views/scheduling/components/ScheduleButton.vue.d.ts +23 -0
  38. package/dist/src/views/scheduling/components/ScheduleConfirmModal.vue.d.ts +1 -1
  39. package/dist/src/views/scheduling/components/ScheduleEmployeeMenu.vue.d.ts +6 -0
  40. package/dist/src/views/scheduling/components/ScheduleGridSkeleton.vue.d.ts +2 -0
  41. package/dist/src/views/scheduling/components/ScheduleLeaveEditModal.vue.d.ts +4 -2
  42. package/dist/src/views/scheduling/components/ScheduleOnboardingWizard.vue.d.ts +3 -0
  43. package/dist/src/views/scheduling/components/ScheduleSelect.vue.d.ts +32 -2
  44. package/dist/src/views/scheduling/components/ScheduleShiftCell.vue.d.ts +4 -0
  45. package/dist/src/views/scheduling/components/ScheduleShiftHeadcountEditor.vue.d.ts +5 -1
  46. package/dist/src/views/scheduling/components/ScheduleShiftPopover.vue.d.ts +2 -0
  47. package/dist/src/views/scheduling/components/ScheduleStaffRail.vue.d.ts +4 -2
  48. package/dist/src/views/scheduling/components/ScheduleStaffRows.vue.d.ts +8 -2
  49. package/dist/src/views/scheduling/components/ScheduleTopbar.vue.d.ts +4 -6
  50. package/dist/src/views/scheduling/composables/schedule-add-employee-form.d.ts +5 -0
  51. package/dist/src/views/scheduling/composables/schedule-popover-position.d.ts +16 -0
  52. package/dist/src/views/scheduling/composables/scheduleAutoSolver.d.ts +21 -0
  53. package/dist/src/views/scheduling/composables/useCollapsedList.d.ts +9 -0
  54. package/dist/src/views/scheduling/composables/useScheduleAddEmployee.d.ts +12 -0
  55. package/dist/src/views/scheduling/composables/useScheduleAddPick.d.ts +14 -7
  56. package/dist/src/views/scheduling/composables/useScheduleAssign.d.ts +11 -2
  57. package/dist/src/views/scheduling/composables/useScheduleAutoSchedule.d.ts +18 -11
  58. package/dist/src/views/scheduling/composables/useScheduleBoard.d.ts +11 -0
  59. package/dist/src/views/scheduling/composables/useScheduleCopyWeek.d.ts +5 -3
  60. package/dist/src/views/scheduling/composables/useScheduleDayTimeline.d.ts +0 -5
  61. package/dist/src/views/scheduling/composables/useScheduleDemand.d.ts +12 -4
  62. package/dist/src/views/scheduling/composables/useScheduleDemandSheet.d.ts +7 -1
  63. package/dist/src/views/scheduling/composables/useScheduleEmployeeIdentity.d.ts +11 -2
  64. package/dist/src/views/scheduling/composables/useScheduleEmployeeMenu.d.ts +35 -0
  65. package/dist/src/views/scheduling/composables/useScheduleGapPopover.d.ts +2 -0
  66. package/dist/src/views/scheduling/composables/useScheduleLeave.d.ts +53 -3
  67. package/dist/src/views/scheduling/composables/useScheduleOnboardingWizard.d.ts +1192 -55
  68. package/dist/src/views/scheduling/composables/useScheduleOutlet.d.ts +1 -0
  69. package/dist/src/views/scheduling/composables/useSchedulePositionModal.d.ts +50 -0
  70. package/dist/src/views/scheduling/composables/useSchedulePublish.d.ts +2 -0
  71. package/dist/src/views/scheduling/composables/useScheduleRangeCalendar.d.ts +10 -1
  72. package/dist/src/views/scheduling/composables/useScheduleRoster.d.ts +6 -0
  73. package/dist/src/views/scheduling/composables/useScheduleSetupBanner.d.ts +5 -5
  74. package/dist/src/views/scheduling/composables/useScheduleShiftActions.d.ts +6 -0
  75. package/dist/src/views/scheduling/composables/useScheduleShiftPopover.d.ts +7 -0
  76. package/dist/src/views/scheduling/composables/useScheduleStaffRail.d.ts +4 -1
  77. package/dist/src/views/scheduling/composables/useScheduleTimePicker.d.ts +6 -1
  78. package/dist/src/views/scheduling/composables/useScheduleViewportFit.d.ts +9 -0
  79. package/dist/src/views/scheduling/data.d.ts +6 -1
  80. package/dist/src/views/scheduling/schedule-store.d.ts +36 -1
  81. package/dist/src/views/scheduling/types.d.ts +14 -1
  82. package/dist/style.css +1 -1
  83. package/dist/tsconfig.app.tsbuildinfo +1 -1
  84. package/dist/{useReportPermissions-C3fuFTUC.js → useReportPermissions-CTr56kBo.js} +3 -3
  85. package/package.json +1 -1
  86. package/dist/ScheduleGeneralPage-DD9n2TUe.js +0 -242
  87. package/dist/SchedulePage-B0X97zVC.js +0 -10761
  88. package/dist/SchedulePositionPage-BXz1USn3.js +0 -220
  89. package/dist/ScheduleSelect.vue_vue_type_script_setup_true_lang-DAHke2rH.js +0 -201
  90. package/dist/employee-ChdVnSmd.js +0 -139
  91. package/dist/index-CilJxsY7.js +0 -70
  92. package/dist/iteration-CcXrOMQe.js +0 -30
  93. package/dist/useScheduleOutlet-TPZJHgSY.js +0 -546
  94. package/dist/useSchedulePositions-DCkaKHQm.js +0 -103
@@ -1,4 +1,4 @@
1
- import { f as jt } from "./app-BpnOPodL.js";
1
+ import { f as jt } from "./app-BcZ6C8M8.js";
2
2
  var Jr = { exports: {} };
3
3
  /**
4
4
  * @license
@@ -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 "./index-DYoVJQTd.js";
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
- }), P = () => {
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
- P as u
91
+ L as u
93
92
  };
@@ -1,6 +1,5 @@
1
- import { e as y } from "./index-DYoVJQTd.js";
2
- import { e as O, b as W, c as _, v as F, n as h, O as q, D as M } from "./app-BpnOPodL.js";
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 Oe(e) {
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 _e(e, s, r) {
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 Ee(e, s) {
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 Ne(e) {
271
+ function Ee(e) {
273
272
  const s = G(
274
273
  e,
275
- W
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 Ue(e, s) {
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 Ce(e, s) {
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
- W
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: V(
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(q)
546
- ), Je = {
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 Te(e, s, r) {
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 = ee(e), r = s.subject;
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 Be(e) {
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 Me(e, s) {
676
+ function Be(e, s) {
678
677
  return s.isOwner ? { restaurantIds: null, roleIds: null } : { restaurantIds: Y(e), roleIds: be(e) };
679
678
  }
680
- function Le(e) {
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 Fe(e) {
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 xe(e, s, r) {
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 De(e, s) {
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 V(
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
- Te as a,
758
+ Je as a,
760
759
  de as b,
761
760
  H as c,
762
761
  ge as d,
763
- Fe as e,
764
- xe as f,
765
- Be as g,
766
- Le as h,
762
+ Le as e,
763
+ Fe as f,
764
+ Te as g,
765
+ Me as h,
767
766
  oe as i,
768
- Me as j,
769
- Ne as k,
770
- Ee as l,
771
- Oe as m,
772
- Ue as n,
773
- Ce as o,
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
- De as s,
778
- Je as t,
776
+ xe as s,
777
+ Ce as t,
779
778
  re as u,
780
779
  he as v,
781
- _e as w,
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 './scheduling-tokens.css';
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 './scheduling-tokens.css';
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 './scheduling-tokens.css';
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, {}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
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, {}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
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, {}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
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 { useScheduleLeave } from '../composables/useScheduleLeave';
1
+ import type { ScheduleLeaveApi } from '../composables/useScheduleLeave';
2
+ import { type ScheduleTimePickerApi } from '../composables/useScheduleTimePicker';
2
3
  type __VLS_Props = {
3
- leave: ReturnType<typeof useScheduleLeave>;
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: string;
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: string;
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, {}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
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
- openEmployeeMenu: (empId: number) => any;
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
- onOpenEmployeeMenu?: ((empId: number) => any) | undefined;
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
- "dev-reset": () => any;
15
- "sched-status-click": () => any;
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
- "onDev-reset"?: (() => any) | undefined;
19
- "onSched-status-click"?: (() => any) | undefined;
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
+ };