@feedmepos/mf-hrm-portal 2.3.0-dev.2 → 2.3.0-dev.3

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 (45) hide show
  1. package/dist/{ApprovalCodeList-CJaNPHZC.js → ApprovalCodeList-SjyWZghY.js} +2 -2
  2. package/dist/{AuditLogList-CHA98ZqW.js → AuditLogList-aTI3QeO0.js} +3 -3
  3. package/dist/{ConditionBuilderForm.vue_vue_type_script_setup_true_lang-C7rvthEI.js → ConditionBuilderForm.vue_vue_type_script_setup_true_lang--JTV7non.js} +2 -2
  4. package/dist/{EmployeeList-CVmMKt71.js → EmployeeList-D2Q_2ZE0.js} +4 -4
  5. package/dist/{GrantUserList-MYjgt5-F.js → GrantUserList-6YXLPuHR.js} +3 -3
  6. package/dist/{Main-C0cnqQ3B.js → Main-B-a6F9g8.js} +5 -5
  7. package/dist/{Main-hlcHtrsc.js → Main-CFIWlIaC.js} +2 -2
  8. package/dist/{Main-BgB9lD4K.js → Main-dSqOeBRJ.js} +9 -9
  9. package/dist/{PermissionSetList-5f1WIaVa.js → PermissionSetList-DxkaPCMs.js} +5 -5
  10. package/dist/{PortalPermissionEditor.vue_vue_type_script_setup_true_lang-CFoTAGIX.js → PortalPermissionEditor.vue_vue_type_script_setup_true_lang-DnKckKZ0.js} +999 -999
  11. package/dist/{RoleList-DNR4miXr.js → RoleList-DQZ_w5uM.js} +7 -7
  12. package/dist/{ScheduleAddPositionModal.vue_vue_type_script_setup_true_lang-B4VUyKW3.js → ScheduleAddPositionModal.vue_vue_type_script_setup_true_lang-Dr6QruG6.js} +1 -1
  13. package/dist/{ScheduleGeneralPage-Cd5AlY4z.js → ScheduleGeneralPage-CvskrXcV.js} +6 -6
  14. package/dist/{ScheduleModal.vue_vue_type_script_setup_true_lang-Cf0l2MRg.js → ScheduleModal.vue_vue_type_script_setup_true_lang-C4On5sVD.js} +178 -209
  15. package/dist/SchedulePage-CW-K836l.js +18248 -0
  16. package/dist/{SchedulePositionPage-DyRckyUx.js → SchedulePositionPage-BGrZBU3g.js} +8 -8
  17. package/dist/{TeamMemberList-mw5OveZG.js → TeamMemberList-BiTHVJwE.js} +6 -6
  18. package/dist/{TimesheetList-BzXarZbM.js → TimesheetList-CUkYacGW.js} +5 -5
  19. package/dist/{TimesheetList.vue_vue_type_style_index_0_scoped_63294af2_lang-Dq5i4poN.js → TimesheetList.vue_vue_type_style_index_0_scoped_63294af2_lang-B1Y587O-.js} +2 -2
  20. package/dist/{app-DSsdRLHg.js → app-CAKCDrbJ.js} +8 -8
  21. package/dist/app.js +1 -1
  22. package/dist/{dayjs.min-B6xBXQtU.js → dayjs.min-CZ8QYRoc.js} +1 -1
  23. package/dist/{employee-hMhzuqk1.js → employee-D56eWEFe.js} +3 -3
  24. package/dist/{iteration-B34AvpNC.js → iteration-BVJdyLNq.js} +1 -1
  25. package/dist/{lodash-1Vyuy7Mu.js → lodash-BcIRkQPW.js} +1 -1
  26. package/dist/{role-DKOrgO6f.js → role-B-eZDaBX.js} +1 -1
  27. package/dist/{rule-CBzQ3GeV.js → rule-D6AIfx8b.js} +2 -2
  28. package/dist/src/api/schedule/index.d.ts +2 -4
  29. package/dist/src/composables/useMessage.d.ts +2 -8
  30. package/dist/src/types/schedule.d.ts +1 -1
  31. package/dist/src/views/scheduling/composables/scheduleAutoSolver.d.ts +23 -0
  32. package/dist/src/views/scheduling/composables/useScheduleAutoSchedule.d.ts +4 -114
  33. package/dist/src/views/scheduling/composables/useScheduleDemandSheet.d.ts +0 -1
  34. package/dist/src/views/scheduling/schedule-state.d.ts +106 -106
  35. package/dist/src/views/scheduling/schedule-store.d.ts +2 -4
  36. package/dist/src/views/scheduling/types.d.ts +0 -3
  37. package/dist/style.css +1 -1
  38. package/dist/tsconfig.app.tsbuildinfo +1 -1
  39. package/dist/{useReportPermissions-B2ev0j4w.js → useReportPermissions-DHA0jrIr.js} +3 -3
  40. package/package.json +1 -2
  41. package/dist/SchedulePage-C8m0-m3l.js +0 -18257
  42. package/dist/src/views/scheduling/components/ScheduleAutoScheduleDetailsModal.vue.d.ts +0 -6
  43. package/dist/src/views/scheduling/composables/auto-schedule-mapping.d.ts +0 -33
  44. package/dist/src/views/scheduling/composables/remyPrompt.d.ts +0 -13
  45. package/dist/src/views/scheduling/composables/useRemyAppStore.d.ts +0 -10
@@ -1,10 +1,10 @@
1
1
  import { defineComponent as M, ref as A, onMounted as x, computed as z, createElementBlock as a, openBlock as l, createElementVNode as o, createVNode as i, withCtx as d, unref as s, toDisplayString as c, createTextVNode as r, normalizeClass as h, createCommentVNode as E, withDirectives as S, withKeys as b, vModelText as P, Fragment as C, renderList as V, withModifiers as g } from "vue";
2
2
  import { useRouter as F } from "vue-router";
3
3
  import { useSnackbar as B } from "@feedmepos/ui-library";
4
- import { R as I } from "./app-DSsdRLHg.js";
5
- import { an as L, ao as O, a7 as R, ak as u, al as K } from "./ScheduleModal.vue_vue_type_script_setup_true_lang-Cf0l2MRg.js";
6
- import { u as T, a as U, _ as W } from "./ScheduleAddPositionModal.vue_vue_type_script_setup_true_lang-B4VUyKW3.js";
7
- import { _ as j } from "./_plugin-vue_export-helper-CHgC5LLL.js";
4
+ import { R as I } from "./app-CAKCDrbJ.js";
5
+ import { aj as L, ak as O, a3 as R, ag as u, ah as j } from "./ScheduleModal.vue_vue_type_script_setup_true_lang-C4On5sVD.js";
6
+ import { u as K, a as T, _ as U } from "./ScheduleAddPositionModal.vue_vue_type_script_setup_true_lang-Dr6QruG6.js";
7
+ import { _ as W } from "./_plugin-vue_export-helper-CHgC5LLL.js";
8
8
  const q = { class: "main" }, H = {
9
9
  id: "viewPositions",
10
10
  class: "view"
@@ -25,7 +25,7 @@ const q = { class: "main" }, H = {
25
25
  setup(ve) {
26
26
  const y = A(null);
27
27
  L(y);
28
- const _ = F(), w = B(), k = (f, e = "info") => w.open({ message: f, type: e }), t = T({ notify: k }), v = O(), m = U(void 0, { notify: k });
28
+ const _ = F(), w = B(), k = (f, e = "info") => w.open({ message: f, type: e }), t = K({ notify: k }), v = O(), m = T(void 0, { notify: k });
29
29
  x(async () => {
30
30
  await v.resolve() && await R(/* @__PURE__ */ new Date());
31
31
  });
@@ -77,7 +77,7 @@ const q = { class: "main" }, H = {
77
77
  e[10] || (e[10] = o("div", { class: "sp-sub" }, "What your staff can do — the same catalogue across every outlet.", -1)),
78
78
  o("div", J, [
79
79
  e[8] || (e[8] = o("span", { class: "outlet-bar-lbl" }, "Outlet", -1)),
80
- i(K, {
80
+ i(j, {
81
81
  class: "outlet-sel",
82
82
  "aria-label": "Outlet being configured",
83
83
  searchable: "",
@@ -255,10 +255,10 @@ const q = { class: "main" }, H = {
255
255
  ])
256
256
  ])
257
257
  ]),
258
- i(W, { modal: s(m) }, null, 8, ["modal"])
258
+ i(U, { modal: s(m) }, null, 8, ["modal"])
259
259
  ], 512));
260
260
  }
261
- }), be = /* @__PURE__ */ j(ce, [["__scopeId", "data-v-40bada6a"]]);
261
+ }), be = /* @__PURE__ */ W(ce, [["__scopeId", "data-v-40bada6a"]]);
262
262
  export {
263
263
  be as default
264
264
  };
@@ -3,20 +3,20 @@ import { useI18n as Ve, useCoreStore as Ze } from "@feedmepos/mf-common";
3
3
  import { useSnackbar as Le, useDialog as Qe, useBreakpoints as Ye, components as Oe } from "@feedmepos/ui-library";
4
4
  import { u as ps } from "./useDebounce-B8ZPVS5C.js";
5
5
  import { S as ye } from "./SelectFilter-CG13h83-.js";
6
- import { v as Te, m as vs, O as fs, _ as bs, a as hs } from "./app-DSsdRLHg.js";
6
+ import { v as Te, m as vs, O as fs, _ as bs, a as hs } from "./app-CAKCDrbJ.js";
7
7
  import { u as ys, _ as gs } from "./useDiscardConfirm-DPhEV6v0.js";
8
8
  import { _ as _s } from "./TableEmptyState.vue_vue_type_script_setup_true_lang-IfAZmWr0.js";
9
9
  import { s as Us, _ as Ss, a as xs, b as Fs, c as Ps } from "./PasscodePinField.vue_vue_type_script_setup_true_lang-CqG0v0Sz.js";
10
10
  import { u as He } from "./useLoading-JFoghhRz.js";
11
11
  import { n as es } from "./string-VNuQNweN.js";
12
- import { l as Pe } from "./lodash-1Vyuy7Mu.js";
13
- import { c as he } from "./iteration-B34AvpNC.js";
14
- import { t as _e, u as ss, c as Ae, b as qe, m as $e, d as ts, p as Ge, i as Is, j as Ke, k as ws, l as Vs, n as ks, o as Rs, q as Cs } from "./rule-CBzQ3GeV.js";
15
- import { u as as } from "./role-DKOrgO6f.js";
12
+ import { l as Pe } from "./lodash-BcIRkQPW.js";
13
+ import { c as he } from "./iteration-BVJdyLNq.js";
14
+ import { t as _e, u as ss, c as Ae, b as qe, m as $e, d as ts, p as Ge, i as Is, j as Ke, k as ws, l as Vs, n as ks, o as Rs, q as Cs } from "./rule-D6AIfx8b.js";
15
+ import { u as as } from "./role-B-eZDaBX.js";
16
16
  import { u as ls, i as $s } from "./PortalUserSearcher.vue_vue_type_style_index_0_scoped_827dfd60_lang-fe-Rdwn4.js";
17
17
  import "./useAppStore-d_nHyK5u.js";
18
18
  import { g as ze, b as We, u as os } from "./restaurant-D7PEQjPY.js";
19
- import { _ as Ms } from "./PortalPermissionEditor.vue_vue_type_script_setup_true_lang-CFoTAGIX.js";
19
+ import { _ as Ms } from "./PortalPermissionEditor.vue_vue_type_script_setup_true_lang-DnKckKZ0.js";
20
20
  import { _ as Ns } from "./_plugin-vue_export-helper-CHgC5LLL.js";
21
21
  var Ue = /* @__PURE__ */ ((o) => (o.Update = "Update", o.Remove = "Remove", o))(Ue || {});
22
22
  const Ie = "__unassigned__";
@@ -1,17 +1,17 @@
1
1
  import { ref as d, computed as g, defineComponent as pe, onMounted as fe, watch as Z, resolveComponent as u, createElementBlock as P, openBlock as E, Fragment as ee, createVNode as l, createElementVNode as i, unref as r, withCtx as b, createCommentVNode as ve, toDisplayString as O, createTextVNode as he, isRef as ge, renderList as we, createBlock as te, nextTick as ye } from "vue";
2
- import { d as v } from "./dayjs.min-B6xBXQtU.js";
2
+ import { d as v } from "./dayjs.min-CZ8QYRoc.js";
3
3
  import { useI18n as _e } from "@feedmepos/mf-common";
4
4
  import { useSnackbar as be, components as xe } from "@feedmepos/ui-library";
5
5
  import { S as De } from "./SelectFilter-CG13h83-.js";
6
- import { _ as Se } from "./app-DSsdRLHg.js";
6
+ import { _ as Se } from "./app-CAKCDrbJ.js";
7
7
  import { _ as Ve } from "./TableEmptyState.vue_vue_type_script_setup_true_lang-IfAZmWr0.js";
8
8
  import { u as ke } from "./useLoading-JFoghhRz.js";
9
- import { g as Ce, s as Fe } from "./iteration-B34AvpNC.js";
9
+ import { g as Ce, s as Fe } from "./iteration-BVJdyLNq.js";
10
10
  import { f as Ye } from "./utils-BZkjJbju.js";
11
11
  import { n as Le } from "./string-VNuQNweN.js";
12
- import { u as Me } from "./employee-hMhzuqk1.js";
12
+ import { u as Me } from "./employee-D56eWEFe.js";
13
13
  import { u as Te } from "./restaurant-D7PEQjPY.js";
14
- import { u as Ie } from "./TimesheetList.vue_vue_type_style_index_0_scoped_63294af2_lang-Dq5i4poN.js";
14
+ import { u as Ie } from "./TimesheetList.vue_vue_type_style_index_0_scoped_63294af2_lang-B1Y587O-.js";
15
15
  import { _ as Re } from "./_plugin-vue_export-helper-CHgC5LLL.js";
16
16
  function $e(x, a) {
17
17
  return ["years", "months"].find((S) => {
@@ -1,8 +1,8 @@
1
- import { d as i } from "./dayjs.min-B6xBXQtU.js";
1
+ import { d as i } from "./dayjs.min-CZ8QYRoc.js";
2
2
  import { defineStore as p, storeToRefs as T } from "pinia";
3
3
  import { ref as l } from "vue";
4
4
  import { b as c, g as y } from "./restaurant-D7PEQjPY.js";
5
- import { s as S } from "./iteration-B34AvpNC.js";
5
+ import { s as S } from "./iteration-BVJdyLNq.js";
6
6
  import { i as f, f as g } from "./utils-BZkjJbju.js";
7
7
  const u = {
8
8
  async readTimesheets(t, e) {
@@ -9833,16 +9833,16 @@ const _e = (e) => ({
9833
9833
  }
9834
9834
  ]
9835
9835
  }
9836
- }), jc = ot(pe(() => import("./Main-BgB9lD4K.js"))), Ec = ot(pe(() => import("./Main-C0cnqQ3B.js"))), Pc = ot(
9837
- pe(() => import("./AuditLogList-CHA98ZqW.js"))
9838
- ), Oc = ot(pe(() => import("./Main-hlcHtrsc.js"))), Gc = pe(() => import("./ApprovalCodeList-CJaNPHZC.js")), Yc = pe(() => import("./GrantUserList-MYjgt5-F.js")), Vc = pe(() => import("./EmployeeList-CVmMKt71.js")), Fc = pe(() => import("./RoleList-DNR4miXr.js")), Sc = pe(() => import("./TimesheetList-BzXarZbM.js")), kc = pe(() => import("./TeamMemberList-mw5OveZG.js")), Rc = pe(
9839
- () => import("./PermissionSetList-5f1WIaVa.js")
9836
+ }), jc = ot(pe(() => import("./Main-dSqOeBRJ.js"))), Ec = ot(pe(() => import("./Main-B-a6F9g8.js"))), Pc = ot(
9837
+ pe(() => import("./AuditLogList-aTI3QeO0.js"))
9838
+ ), Oc = ot(pe(() => import("./Main-CFIWlIaC.js"))), Gc = pe(() => import("./ApprovalCodeList-SjyWZghY.js")), Yc = pe(() => import("./GrantUserList-6YXLPuHR.js")), Vc = pe(() => import("./EmployeeList-D2Q_2ZE0.js")), Fc = pe(() => import("./RoleList-DQZ_w5uM.js")), Sc = pe(() => import("./TimesheetList-CUkYacGW.js")), kc = pe(() => import("./TeamMemberList-BiTHVJwE.js")), Rc = pe(
9839
+ () => import("./PermissionSetList-DxkaPCMs.js")
9840
9840
  ), Hc = Ws(
9841
- ot(pe(() => import("./SchedulePage-C8m0-m3l.js")))
9841
+ ot(pe(() => import("./SchedulePage-CW-K836l.js")))
9842
9842
  ), Ic = Ws(
9843
- ot(pe(() => import("./SchedulePositionPage-DyRckyUx.js")))
9843
+ ot(pe(() => import("./SchedulePositionPage-BGrZBU3g.js")))
9844
9844
  ), Tc = Ws(
9845
- ot(pe(() => import("./ScheduleGeneralPage-Cd5AlY4z.js")))
9845
+ ot(pe(() => import("./ScheduleGeneralPage-CvskrXcV.js")))
9846
9846
  ), ou = [
9847
9847
  {
9848
9848
  path: "/",
@@ -10888,7 +10888,7 @@ const iu = /* @__PURE__ */ at({
10888
10888
  };
10889
10889
  }
10890
10890
  });
10891
- var xs = { name: "@feedmepos/mf-hrm-portal", version: "2.3.0-dev.2", mode: "fmmf" };
10891
+ var xs = { name: "@feedmepos/mf-hrm-portal", version: "2.3.0-dev.3", mode: "fmmf" };
10892
10892
  console.log(
10893
10893
  `%c${xs.name}%c v${xs.version} %c${xs.mode}`,
10894
10894
  "background:#1f1f1f;color:#fff;padding:2px 6px;border-radius:3px 0 0 3px",
package/dist/app.js CHANGED
@@ -1,4 +1,4 @@
1
- import { h as e, i as r, r as o } from "./app-DSsdRLHg.js";
1
+ import { h as e, i as r, r as o } from "./app-CAKCDrbJ.js";
2
2
  export {
3
3
  e as FmApp,
4
4
  r as i18nMessages,
@@ -1,4 +1,4 @@
1
- import { g as Q, f as K } from "./app-DSsdRLHg.js";
1
+ import { g as Q, f as K } from "./app-CAKCDrbJ.js";
2
2
  var E = { exports: {} };
3
3
  (function(V, X) {
4
4
  (function(W, k) {
@@ -1,10 +1,10 @@
1
- import { d as g } from "./dayjs.min-B6xBXQtU.js";
1
+ import { d as g } from "./dayjs.min-CZ8QYRoc.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-B34AvpNC.js";
4
+ import { s as E } from "./iteration-BVJdyLNq.js";
5
5
  import { b as l, g as f, u as I } from "./restaurant-D7PEQjPY.js";
6
6
  import { i as v } from "./utils-BZkjJbju.js";
7
- import { u as P } from "./role-DKOrgO6f.js";
7
+ import { u as P } from "./role-B-eZDaBX.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-DSsdRLHg.js";
1
+ import { f as B } from "./app-CAKCDrbJ.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;
@@ -1,4 +1,4 @@
1
- import { f as jt } from "./app-DSsdRLHg.js";
1
+ import { f as jt } from "./app-CAKCDrbJ.js";
2
2
  var Jr = { exports: {} };
3
3
  /**
4
4
  * @license
@@ -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-B34AvpNC.js";
4
+ import { s as v } from "./iteration-BVJdyLNq.js";
5
5
  import { g as f, b as p, u as I } from "./restaurant-D7PEQjPY.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-B34AvpNC.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-DSsdRLHg.js";
1
+ import { s as W, c as q, e as y } from "./iteration-BVJdyLNq.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-CAKCDrbJ.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-D7PEQjPY.js";
5
5
  import { defineStore as z, storeToRefs as K } from "pinia";
@@ -1,13 +1,11 @@
1
- import type { FdtoScheduleAssignment, FdtoScheduleAutoScheduleApplyReq, FdtoScheduleAutoScheduleApplyResult, FdtoScheduleAutoScheduleCapabilities, FdtoScheduleAutoScheduleGenerateReq, FdtoScheduleAutoScheduleResult, FdtoScheduleBoard, FdtoScheduleBulkUpdateAssignmentStatusReq, FdtoScheduleBulkSaveAssignmentsReq, FdtoScheduleBulkSaveAssignmentsResult, FdtoScheduleCreateEmployeeProfileReq, FdtoScheduleEmployeeConfig, FdtoScheduleDemand, FdtoScheduleEmployee, FdtoSchedulePosition, FdtoScheduleSaveAssignmentReq, FdtoScheduleSaveDemandReq, FdtoScheduleSaveEmployeeConfigsReq, FdtoScheduleSavePositionReq, FdtoScheduleSaveScheduleDayReq, FdtoScheduleSaveSettingsReq, FdtoScheduleReplaceDemandReq, FdtoScheduleSettings, FdtoScheduleScheduleDay, FdtoScheduleUpdateEmployeeProfileReq, FdtoScheduleCreateTimeOffReq, FdtoScheduleTimeOff, FdtoScheduleUpdateTimeOffStatusReq } from '@/types/schedule';
1
+ import type { FdtoScheduleAssignment, FdtoScheduleAutoScheduleReq, FdtoScheduleAutoScheduleResult, FdtoScheduleBoard, FdtoScheduleBulkUpdateAssignmentStatusReq, FdtoScheduleBulkSaveAssignmentsReq, FdtoScheduleBulkSaveAssignmentsResult, FdtoScheduleCreateEmployeeProfileReq, FdtoScheduleEmployeeConfig, FdtoScheduleDemand, FdtoScheduleEmployee, FdtoSchedulePosition, FdtoScheduleSaveAssignmentReq, FdtoScheduleSaveDemandReq, FdtoScheduleSaveEmployeeConfigsReq, FdtoScheduleSavePositionReq, FdtoScheduleSaveScheduleDayReq, FdtoScheduleSaveSettingsReq, FdtoScheduleReplaceDemandReq, FdtoScheduleSettings, FdtoScheduleScheduleDay, FdtoScheduleUpdateEmployeeProfileReq, FdtoScheduleCreateTimeOffReq, FdtoScheduleTimeOff, FdtoScheduleUpdateTimeOffStatusReq } from '@/types/schedule';
2
2
  declare const ScheduleAPI: {
3
3
  listEmployeeProfiles(employeeIds?: string[]): Promise<FdtoScheduleEmployee[]>;
4
4
  listEmployeeConfigs(restaurantId: string): Promise<FdtoScheduleEmployeeConfig[]>;
5
5
  saveEmployeeConfigs(restaurantId: string, req: FdtoScheduleSaveEmployeeConfigsReq): Promise<FdtoScheduleEmployeeConfig[]>;
6
6
  getSettings(restaurantId: string): Promise<FdtoScheduleSettings>;
7
7
  saveSettings(restaurantId: string, req: FdtoScheduleSaveSettingsReq): Promise<FdtoScheduleSettings>;
8
- generateAutoSchedule(restaurantId: string, req: FdtoScheduleAutoScheduleGenerateReq): Promise<FdtoScheduleAutoScheduleResult>;
9
- getAutoScheduleCapabilities(restaurantId: string): Promise<FdtoScheduleAutoScheduleCapabilities>;
10
- applyAutoSchedule(restaurantId: string, req: FdtoScheduleAutoScheduleApplyReq): Promise<FdtoScheduleAutoScheduleApplyResult>;
8
+ generateAutoSchedule(restaurantId: string, req: FdtoScheduleAutoScheduleReq): Promise<FdtoScheduleAutoScheduleResult>;
11
9
  /** One outlet's whole board over `[from, to]` (inclusive, 'YYYY-MM-DD'). */
12
10
  readBoard(restaurantId: string, from: string, to: string): Promise<FdtoScheduleBoard>;
13
11
  createTimeOff(restaurantId: string, req: FdtoScheduleCreateTimeOffReq): Promise<FdtoScheduleTimeOff>;
@@ -1,10 +1,4 @@
1
- import { SnackbarPosition } from '@feedmepos/ui-library';
2
- export interface MessageOptions {
3
- /** Where the snackbar is anchored. Defaults to the library's own default (top-right). */
4
- position?: SnackbarPosition;
5
- }
6
1
  export declare function useMessage(): {
7
- success: (message: string, options?: MessageOptions) => void;
8
- error: (message: string, options?: MessageOptions) => void;
2
+ success: (message: string) => void;
3
+ error: (message: string) => void;
9
4
  };
10
- export { SnackbarPosition };
@@ -5,7 +5,7 @@
5
5
  * only view-model commands that intentionally do not cross HTTP (for example
6
6
  * replacing a period made up of several persisted demand rows).
7
7
  */
8
- export type { FdtoScheduleAssignment, FdtoScheduleAutoScheduleApplyReq, FdtoScheduleAutoScheduleApplyResult, FdtoScheduleAutoScheduleCapabilities, FdtoScheduleAutoScheduleGenerateReq, FdtoScheduleAutoScheduleObjective, FdtoScheduleAutoSchedulePlanner, FdtoScheduleAutoScheduleProposal, FdtoScheduleAutoScheduleRejection, FdtoScheduleAutoScheduleResult, FdtoScheduleAutoScheduleTiming, FdtoScheduleAutoScheduleUnfilledNeed, FdtoScheduleBoard, FdtoScheduleBulkUpdateAssignmentStatusReq, FdtoScheduleBulkSaveAssignmentsReq, FdtoScheduleBulkSaveAssignmentsResult, FdtoScheduleBreak, FdtoScheduleCreateEmployeeProfileReq, FdtoScheduleEmployeeConfig, FdtoScheduleDayOperatingHours, FdtoScheduleDemand, FdtoScheduleEmployee, FdtoScheduleOptionalDateRange, FdtoSchedulePayRate, FdtoSchedulePosition, FdtoSchedulePositionRef, FdtoSchedulePositionSelectorReq, FdtoScheduleRestaurantProfile, FdtoScheduleSaveAssignmentReq, FdtoScheduleSaveDemandReq, FdtoScheduleReplaceDemandReq, FdtoScheduleSaveEmployeeConfigsReq, FdtoScheduleSavePositionReq, FdtoScheduleSaveScheduleDayReq, FdtoScheduleSaveSettingsReq, FdtoScheduleScheduleDay, FdtoScheduleSettings, FdtoScheduleUpdateEmployeeProfileReq, FdtoScheduleCreateTimeOffReq, FdtoScheduleTimeOff, FdtoScheduleTimeOffDayPart, FdtoScheduleTimeOffQuery, FdtoScheduleTimeOffStatus, FdtoScheduleTimeOffType, FdtoScheduleUpdateTimeOffStatusReq, } from '@feedmepos/hrm-schedule-contract';
8
+ export type { FdtoScheduleAssignment, FdtoScheduleAutoScheduleObjective, FdtoScheduleAutoScheduleProposal, FdtoScheduleAutoScheduleReq, FdtoScheduleAutoScheduleResult, FdtoScheduleBoard, FdtoScheduleBulkUpdateAssignmentStatusReq, FdtoScheduleBulkSaveAssignmentsReq, FdtoScheduleBulkSaveAssignmentsResult, FdtoScheduleBreak, FdtoScheduleCreateEmployeeProfileReq, FdtoScheduleEmployeeConfig, FdtoScheduleDayOperatingHours, FdtoScheduleDemand, FdtoScheduleEmployee, FdtoScheduleOptionalDateRange, FdtoSchedulePayRate, FdtoSchedulePosition, FdtoSchedulePositionRef, FdtoSchedulePositionSelectorReq, FdtoScheduleRestaurantProfile, FdtoScheduleSaveAssignmentReq, FdtoScheduleSaveDemandReq, FdtoScheduleReplaceDemandReq, FdtoScheduleSaveEmployeeConfigsReq, FdtoScheduleSavePositionReq, FdtoScheduleSaveScheduleDayReq, FdtoScheduleSaveSettingsReq, FdtoScheduleScheduleDay, FdtoScheduleSettings, FdtoScheduleUpdateEmployeeProfileReq, FdtoScheduleCreateTimeOffReq, FdtoScheduleTimeOff, FdtoScheduleTimeOffDayPart, FdtoScheduleTimeOffQuery, FdtoScheduleTimeOffStatus, FdtoScheduleTimeOffType, FdtoScheduleUpdateTimeOffStatusReq, } from '@feedmepos/hrm-schedule-contract';
9
9
  /** UI-level replacement command. The store expands these periods into flat
10
10
  * ShiftDemand rows before calling the shared HTTP contract. */
11
11
  export interface ScheduleReplaceDemandReq {
@@ -0,0 +1,23 @@
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
+ /** Lets a caller stop work when a newer board/options snapshot supersedes this run. */
13
+ shouldCancel?: () => boolean;
14
+ }
15
+ export interface SolverOutput {
16
+ proposals: Proposal[];
17
+ unfilled: number;
18
+ totalHours: number;
19
+ overtimeHours: number;
20
+ cost: number;
21
+ explanations: string[];
22
+ }
23
+ export declare function solveAutoSchedule(input: SolverInput): SolverOutput;
@@ -1,4 +1,4 @@
1
- import type { FdtoScheduleAutoScheduleObjective, FdtoScheduleAutoSchedulePlanner } from '@/types/schedule';
1
+ import type { FdtoScheduleAutoScheduleObjective } from '@/types/schedule';
2
2
  import type { Proposal } from '../types';
3
3
  import type { ScheduleBoardApi } from './useScheduleBoard';
4
4
  import type { ScheduleDemandApi } from './useScheduleDemand';
@@ -6,7 +6,6 @@ export type ScheduleAutoScheduleStep = 'options' | 'summary';
6
6
  export interface ScheduleAutoScheduleOptions {
7
7
  fillGaps: boolean;
8
8
  objective: FdtoScheduleAutoScheduleObjective;
9
- planner: FdtoScheduleAutoSchedulePlanner;
10
9
  allowOvertime: boolean;
11
10
  /** Shown as preferences in the dialog but not sent: the generator takes no input for them yet
12
11
  * (availability and time off are always respected; patterns and cost ride on the objective). */
@@ -14,54 +13,30 @@ export interface ScheduleAutoScheduleOptions {
14
13
  followPatterns: boolean;
15
14
  costEfficient: boolean;
16
15
  }
17
- /** Backend-powered draft generation and local proposal review — the engine lives in hr-backend;
18
- * this composable only maps its result onto the board and lets a manager review it. Generation
19
- * never writes; accepted proposals use the board's existing assignment persistence path. */
16
+ /** Backend-powered draft generation and local proposal review. Generation never writes;
17
+ * accepted proposals use the board's existing assignment persistence path. */
20
18
  export declare function useScheduleAutoSchedule(board: ScheduleBoardApi, demand: ScheduleDemandApi): {
21
19
  wizardOpen: import("vue").Ref<boolean, boolean>;
22
20
  step: import("vue").Ref<ScheduleAutoScheduleStep, ScheduleAutoScheduleStep>;
23
21
  options: {
24
22
  fillGaps: boolean;
25
23
  objective: FdtoScheduleAutoScheduleObjective;
26
- planner: FdtoScheduleAutoSchedulePlanner;
27
24
  allowOvertime: boolean;
28
25
  respectAvailability: boolean;
29
26
  followPatterns: boolean;
30
27
  costEfficient: boolean;
31
28
  };
32
- planners: import("vue").Ref<("GREEDY" | "LLM")[], ("GREEDY" | "LLM")[]>;
33
- plannerChoice: import("vue").ComputedRef<boolean>;
34
29
  generating: import("vue").Ref<boolean, boolean>;
35
30
  generateError: import("vue").Ref<string | null, string | null>;
36
31
  result: import("vue").Ref<{
37
- objective: "BALANCED" | "SERVICE" | "LOWER_COST" | "STABLE_HOURS";
38
- allowOvertime: boolean;
39
32
  proposals: {
40
33
  date: string;
41
34
  startTime: string;
42
35
  endTime: string;
43
- positionId: string | null;
44
36
  employeeId: string;
45
- employeeName: string;
46
37
  position: string;
47
- reason: string;
48
38
  }[];
49
39
  unfilledCount: number;
50
- unfilledNeeds: {
51
- date: string;
52
- startTime: string;
53
- endTime: string;
54
- position: string | null;
55
- short: number;
56
- excluded: {
57
- occupied: number;
58
- notQualified: number;
59
- weeklyCap: number;
60
- rest: number;
61
- dayOff: number;
62
- dayCap: number;
63
- };
64
- }[];
65
40
  metrics: {
66
41
  minimumCoveragePercent: number;
67
42
  recommendedCoveragePercent: number;
@@ -89,43 +64,15 @@ export declare function useScheduleAutoSchedule(board: ScheduleBoardApi, demand:
89
64
  };
90
65
  explanations: string[];
91
66
  solver: string;
92
- week: {
93
- from: string;
94
- to: string;
95
- };
96
- timing: {
97
- totalMs: number;
98
- modelMs: number | null;
99
- };
100
67
  } | null, {
101
- objective: "BALANCED" | "SERVICE" | "LOWER_COST" | "STABLE_HOURS";
102
- allowOvertime: boolean;
103
68
  proposals: {
104
69
  date: string;
105
70
  startTime: string;
106
71
  endTime: string;
107
- positionId: string | null;
108
72
  employeeId: string;
109
- employeeName: string;
110
73
  position: string;
111
- reason: string;
112
74
  }[];
113
75
  unfilledCount: number;
114
- unfilledNeeds: {
115
- date: string;
116
- startTime: string;
117
- endTime: string;
118
- position: string | null;
119
- short: number;
120
- excluded: {
121
- occupied: number;
122
- notQualified: number;
123
- weeklyCap: number;
124
- rest: number;
125
- dayOff: number;
126
- dayCap: number;
127
- };
128
- }[];
129
76
  metrics: {
130
77
  minimumCoveragePercent: number;
131
78
  recommendedCoveragePercent: number;
@@ -153,43 +100,15 @@ export declare function useScheduleAutoSchedule(board: ScheduleBoardApi, demand:
153
100
  };
154
101
  explanations: string[];
155
102
  solver: string;
156
- week: {
157
- from: string;
158
- to: string;
159
- };
160
- timing: {
161
- totalMs: number;
162
- modelMs: number | null;
163
- };
164
103
  } | {
165
- objective: "BALANCED" | "SERVICE" | "LOWER_COST" | "STABLE_HOURS";
166
- allowOvertime: boolean;
167
104
  proposals: {
168
105
  date: string;
169
106
  startTime: string;
170
107
  endTime: string;
171
- positionId: string | null;
172
108
  employeeId: string;
173
- employeeName: string;
174
109
  position: string;
175
- reason: string;
176
110
  }[];
177
111
  unfilledCount: number;
178
- unfilledNeeds: {
179
- date: string;
180
- startTime: string;
181
- endTime: string;
182
- position: string | null;
183
- short: number;
184
- excluded: {
185
- occupied: number;
186
- notQualified: number;
187
- weeklyCap: number;
188
- rest: number;
189
- dayOff: number;
190
- dayCap: number;
191
- };
192
- }[];
193
112
  metrics: {
194
113
  minimumCoveragePercent: number;
195
114
  recommendedCoveragePercent: number;
@@ -217,14 +136,6 @@ export declare function useScheduleAutoSchedule(board: ScheduleBoardApi, demand:
217
136
  };
218
137
  explanations: string[];
219
138
  solver: string;
220
- week: {
221
- from: string;
222
- to: string;
223
- };
224
- timing: {
225
- totalMs: number;
226
- modelMs: number | null;
227
- };
228
139
  } | null>;
229
140
  gapCount: import("vue").ComputedRef<number>;
230
141
  hasDemand: import("vue").ComputedRef<boolean>;
@@ -243,7 +154,6 @@ export declare function useScheduleAutoSchedule(board: ScheduleBoardApi, demand:
243
154
  start: string;
244
155
  end: string;
245
156
  role: string;
246
- positionId?: string | null | undefined;
247
157
  openId?: number | undefined;
248
158
  status: "pending" | "rejected";
249
159
  weekKey?: string | undefined;
@@ -264,26 +174,6 @@ export declare function useScheduleAutoSchedule(board: ScheduleBoardApi, demand:
264
174
  toggleReject: (id: number) => void;
265
175
  rejectAll: () => void;
266
176
  exitReview: () => void;
267
- apply: () => Promise<number | null>;
268
- applying: import("vue").Ref<boolean, boolean>;
269
- applyRejections: import("vue").Ref<{
270
- employeeName: string;
271
- day: string;
272
- time: string;
273
- message: string;
274
- }[], {
275
- employeeName: string;
276
- day: string;
277
- time: string;
278
- message: string;
279
- }[] | {
280
- employeeName: string;
281
- day: string;
282
- time: string;
283
- message: string;
284
- }[]>;
285
- applyError: import("vue").Ref<string | null, string | null>;
286
- detailsOpen: import("vue").Ref<boolean, boolean>;
287
- toggleDetails: () => void;
177
+ apply: () => number;
288
178
  };
289
179
  export type ScheduleAutoScheduleApi = ReturnType<typeof useScheduleAutoSchedule>;
@@ -136,7 +136,6 @@ export declare function useScheduleDemandSheet(board: ScheduleBoardApi, demand:
136
136
  word: string;
137
137
  }[]>;
138
138
  suggest: () => void;
139
- askRemy: () => Promise<void>;
140
139
  acceptSuggestion: () => void;
141
140
  dismissSuggestion: () => void;
142
141
  canCopy: import("vue").ComputedRef<boolean>;