@feedmepos/mf-hrm-portal 2.3.0-dev.17 → 2.3.0-dev.18
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-CQp5AXmP.js → ApprovalCodeList-B10IvyLu.js} +4 -4
- package/dist/{AuditLogList-CBOp_hDR.js → AuditLogList-BJ8GXIzu.js} +4 -4
- package/dist/{ConditionBuilderForm.vue_vue_type_script_setup_true_lang-_2_usHCJ.js → ConditionBuilderForm.vue_vue_type_script_setup_true_lang-DfXqKPnU.js} +2 -2
- package/dist/{EmployeeList-1vR0zMMp.js → EmployeeList-CNj262HG.js} +6 -6
- package/dist/{FormItem.vue_vue_type_script_setup_true_lang-NR_aWS7l.js → FormItem.vue_vue_type_script_setup_true_lang-BvSLGM1C.js} +1 -1
- package/dist/{GrantUserList-CmeAG1Gy.js → GrantUserList-R259wy0R.js} +5 -5
- package/dist/{Main-BUTiZtwj.js → Main-DLgW7BX_.js} +2 -2
- package/dist/{Main-DTAb8QWQ.js → Main-DZ5T4TP1.js} +9 -9
- package/dist/{Main-DLh6VmQX.js → Main-yUEWFlC3.js} +5 -5
- package/dist/{PermissionSetList-BtaX2k3V.js → PermissionSetList-Xrzkx52n.js} +5 -5
- package/dist/{PortalPermissionEditor.vue_vue_type_script_setup_true_lang-B6dR75q1.js → PortalPermissionEditor.vue_vue_type_script_setup_true_lang-BhR3MM-s.js} +732 -732
- package/dist/{RoleList-Qyyi7w2u.js → RoleList-RRDkrVmu.js} +7 -7
- package/dist/{ScheduleAddPositionModal.vue_vue_type_script_setup_true_lang-EPVMITc0.js → ScheduleAddPositionModal.vue_vue_type_script_setup_true_lang-BhkmMQxt.js} +1 -1
- package/dist/{ScheduleGeneralPage-CjZ8OFnN.js → ScheduleGeneralPage-CfcIh0Fy.js} +2 -2
- package/dist/{ScheduleModal.vue_vue_type_script_setup_true_lang-KOLBDv21.js → ScheduleModal.vue_vue_type_script_setup_true_lang-WYuVJxed.js} +211 -206
- package/dist/SchedulePage-CHu1VI-U.js +19201 -0
- package/dist/{SchedulePositionPage-Cu6rRBlZ.js → SchedulePositionPage-Dx2fZ1QI.js} +27 -27
- package/dist/{SelectFilter-D58Vrs_W.js → SelectFilter-DoeKbbjT.js} +1 -1
- package/dist/{TeamMemberList-CC_okKtX.js → TeamMemberList-CPpBsvi7.js} +7 -7
- package/dist/{TimesheetList-ULjiy1OT.js → TimesheetList-CWl2faUZ.js} +6 -6
- package/dist/{TimesheetList.vue_vue_type_style_index_0_scoped_63294af2_lang-D9xXvYuA.js → TimesheetList.vue_vue_type_style_index_0_scoped_63294af2_lang-Dc0_djRp.js} +2 -2
- package/dist/{app-COD0IHk1.js → app-COWpQb6i.js} +8 -8
- package/dist/app.js +1 -1
- package/dist/{dayjs.min-jNfjc_8X.js → dayjs.min-Dv2S110T.js} +1 -1
- package/dist/{employee-Db1gyZQZ.js → employee-Drs22uVf.js} +3 -3
- package/dist/{iteration-z1uPD-7T.js → iteration-B23jisFZ.js} +1 -1
- package/dist/{lodash-uwLYB3oL.js → lodash-CQM_jgZN.js} +1 -1
- package/dist/{role-BhO6Cl-l.js → role-k4mdt-op.js} +1 -1
- package/dist/{rule-BZ340_dr.js → rule-xOAXApqp.js} +2 -2
- package/dist/src/views/scheduling/components/ScheduleAreaRows.vue.d.ts +4 -2
- package/dist/src/views/scheduling/components/ScheduleBoardAreaRows.vue.d.ts +1 -0
- package/dist/src/views/scheduling/components/ScheduleBoardGridHeader.vue.d.ts +5 -0
- package/dist/src/views/scheduling/components/ScheduleDayTimeline.vue.d.ts +5 -0
- package/dist/src/views/scheduling/composables/schedule-shift-time.d.ts +3 -0
- package/dist/src/views/scheduling/composables/useScheduleAreaDragDrop.d.ts +0 -1
- package/dist/src/views/scheduling/composables/useScheduleAutoSchedule.d.ts +1 -0
- package/dist/src/views/scheduling/composables/useScheduleBoard.d.ts +2 -1
- package/dist/src/views/scheduling/composables/useScheduleDayTimeline.d.ts +14 -0
- package/dist/src/views/scheduling/composables/useScheduleDragDrop.d.ts +1 -1
- package/dist/src/views/scheduling/composables/useScheduleOnboardingWizard.d.ts +2 -1
- package/dist/src/views/scheduling/composables/useScheduleOutlet.d.ts +1 -0
- package/dist/src/views/scheduling/composables/useSchedulePageCellDrop.d.ts +3 -1
- package/dist/src/views/scheduling/composables/useScheduleShiftActions.d.ts +6 -1
- package/dist/style.css +1 -1
- package/dist/tsconfig.app.tsbuildinfo +1 -1
- package/dist/{useReportPermissions-BjkeMcNA.js → useReportPermissions-BB4JiYDf.js} +3 -3
- package/package.json +1 -1
- package/dist/SchedulePage-BWpgAx3a.js +0 -18831
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import { defineComponent as M, ref as A, onMounted as
|
|
1
|
+
import { defineComponent as M, ref as A, onMounted as F, computed as S, createElementBlock as i, openBlock as l, createElementVNode as o, createVNode as n, createStaticVNode as x, withCtx as d, unref as s, toDisplayString as c, createTextVNode as r, normalizeClass as h, createCommentVNode as z, withDirectives as E, withKeys as k, vModelText as P, Fragment as C, renderList as V, withModifiers as g } from "vue";
|
|
2
2
|
import { useRouter as B } from "vue-router";
|
|
3
3
|
import { useSnackbar as I } from "@feedmepos/ui-library";
|
|
4
|
-
import { R as L, a as O } from "./app-
|
|
5
|
-
import { av as R, aw as K, ag as T, ar as u, as as U } from "./ScheduleModal.vue_vue_type_script_setup_true_lang-
|
|
6
|
-
import { u as W, a as j, _ as q } from "./ScheduleAddPositionModal.vue_vue_type_script_setup_true_lang-
|
|
4
|
+
import { R as L, a as O } from "./app-COWpQb6i.js";
|
|
5
|
+
import { av as R, aw as K, ag as T, ar as u, as as U } from "./ScheduleModal.vue_vue_type_script_setup_true_lang-WYuVJxed.js";
|
|
6
|
+
import { u as W, a as j, _ as q } from "./ScheduleAddPositionModal.vue_vue_type_script_setup_true_lang-BhkmMQxt.js";
|
|
7
7
|
const H = { class: "main" }, G = {
|
|
8
8
|
id: "viewPositions",
|
|
9
9
|
class: "view"
|
|
@@ -24,20 +24,20 @@ const H = { class: "main" }, G = {
|
|
|
24
24
|
setup(fe) {
|
|
25
25
|
const y = A(null);
|
|
26
26
|
R(y);
|
|
27
|
-
const
|
|
28
|
-
|
|
27
|
+
const w = B(), _ = I(), b = (m, e = "info") => _.open({ message: m, type: e }), t = W({ notify: b }), v = K(), f = j(void 0, { notify: b });
|
|
28
|
+
F(async () => {
|
|
29
29
|
await v.resolve() && await T(/* @__PURE__ */ new Date());
|
|
30
30
|
});
|
|
31
|
-
const
|
|
31
|
+
const $ = S(
|
|
32
32
|
() => v.options.value.length ? v.options.value : [{ value: "", label: "No outlet selected", disabled: !0 }]
|
|
33
33
|
);
|
|
34
|
-
function
|
|
35
|
-
v.switchTo(
|
|
34
|
+
function D(m) {
|
|
35
|
+
v.switchTo(m, /* @__PURE__ */ new Date());
|
|
36
36
|
}
|
|
37
37
|
function N() {
|
|
38
|
-
|
|
38
|
+
w.push({ name: L.SCHEDULE });
|
|
39
39
|
}
|
|
40
|
-
return (
|
|
40
|
+
return (m, e) => (l(), i("div", {
|
|
41
41
|
ref_key: "rootEl",
|
|
42
42
|
ref: y,
|
|
43
43
|
class: "sch"
|
|
@@ -72,7 +72,7 @@ const H = { class: "main" }, G = {
|
|
|
72
72
|
])]),
|
|
73
73
|
_: 1
|
|
74
74
|
}),
|
|
75
|
-
e[9] || (e[9] =
|
|
75
|
+
e[9] || (e[9] = x('<div class="sp-title-row" data-v-77f876af><div class="sp-title" data-v-77f876af>Position</div><span class="page-tags" data-v-77f876af><span class="sch-badge page-tag-premium" data-color="brand" data-v-77f876af>Premium</span><span class="sch-badge" data-color="info" data-v-77f876af>Free until 31 Dec 2026</span></span></div><div class="sp-sub" data-v-77f876af>What your employees can do — the same catalogue across every outlet.</div>', 2)),
|
|
76
76
|
o("div", Q, [
|
|
77
77
|
e[8] || (e[8] = o("span", { class: "outlet-bar-lbl" }, "Outlet", -1)),
|
|
78
78
|
n(U, {
|
|
@@ -81,8 +81,8 @@ const H = { class: "main" }, G = {
|
|
|
81
81
|
searchable: "",
|
|
82
82
|
title: "Which outlet's roster the staff counts below are read from",
|
|
83
83
|
"model-value": s(v).outletId.value,
|
|
84
|
-
options:
|
|
85
|
-
"onUpdate:modelValue":
|
|
84
|
+
options: $.value,
|
|
85
|
+
"onUpdate:modelValue": D
|
|
86
86
|
}, null, 8, ["model-value", "options"])
|
|
87
87
|
])
|
|
88
88
|
]),
|
|
@@ -117,7 +117,7 @@ const H = { class: "main" }, G = {
|
|
|
117
117
|
])])) : (l(), i("div", ae, [
|
|
118
118
|
s(t).isAdding.value ? (l(), i("div", ne, [
|
|
119
119
|
o("div", ie, [
|
|
120
|
-
|
|
120
|
+
E(o("input", {
|
|
121
121
|
"onUpdate:modelValue": e[1] || (e[1] = (a) => s(t).newName.value = a),
|
|
122
122
|
type: "text",
|
|
123
123
|
class: "cfg-name-input",
|
|
@@ -128,7 +128,7 @@ const H = { class: "main" }, G = {
|
|
|
128
128
|
e[3] || (e[3] = k((a) => s(t).cancelAdd(), ["esc"]))
|
|
129
129
|
]
|
|
130
130
|
}, null, 544), [
|
|
131
|
-
[
|
|
131
|
+
[P, s(t).newName.value]
|
|
132
132
|
])
|
|
133
133
|
]),
|
|
134
134
|
n(u, {
|
|
@@ -157,24 +157,24 @@ const H = { class: "main" }, G = {
|
|
|
157
157
|
])]),
|
|
158
158
|
_: 1
|
|
159
159
|
}, 8, ["disabled"])
|
|
160
|
-
])) :
|
|
161
|
-
(l(!0), i(
|
|
160
|
+
])) : z("", !0),
|
|
161
|
+
(l(!0), i(C, null, V(s(t).positions.value, (a) => (l(), i("div", {
|
|
162
162
|
key: a.id,
|
|
163
163
|
class: h(["cfg-row", { "is-clickable": s(t).pendingDeleteId.value !== a.id }]),
|
|
164
|
-
onClick: (
|
|
164
|
+
onClick: (p) => s(t).pendingDeleteId.value !== a.id && s(f).openEdit(a.id, a.name)
|
|
165
165
|
}, [
|
|
166
166
|
o("div", de, [
|
|
167
167
|
o("div", re, c(a.name), 1)
|
|
168
168
|
]),
|
|
169
169
|
s(t).pendingDeleteId.value === a.id ? (l(), i("div", ue, [
|
|
170
|
-
o("span", ce, c(s(t).usageCountFor(a.id) ? `Remove from ${s(t).usageCountFor(a.id)}
|
|
170
|
+
o("span", ce, c(s(t).usageCountFor(a.id) ? `Remove from ${s(t).usageCountFor(a.id)} employee${s(t).usageCountFor(a.id) === 1 ? "" : "s"}?` : "Delete?"), 1),
|
|
171
171
|
n(u, {
|
|
172
172
|
hierarchy: "danger",
|
|
173
173
|
size: "sm",
|
|
174
174
|
class: "cfg-yes",
|
|
175
175
|
type: "button",
|
|
176
176
|
disabled: s(t).saving.value,
|
|
177
|
-
onClick: g((
|
|
177
|
+
onClick: g((p) => s(t).confirmDelete(a.id), ["stop"])
|
|
178
178
|
}, {
|
|
179
179
|
default: d(() => [
|
|
180
180
|
r(c(s(t).saving.value ? "Deleting…" : "Delete"), 1)
|
|
@@ -187,23 +187,23 @@ const H = { class: "main" }, G = {
|
|
|
187
187
|
class: "cfg-no",
|
|
188
188
|
type: "button",
|
|
189
189
|
disabled: s(t).saving.value,
|
|
190
|
-
onClick: e[6] || (e[6] = g((
|
|
190
|
+
onClick: e[6] || (e[6] = g((p) => s(t).cancelDelete(), ["stop"]))
|
|
191
191
|
}, {
|
|
192
192
|
default: d(() => [...e[15] || (e[15] = [
|
|
193
193
|
r(" Keep ", -1)
|
|
194
194
|
])]),
|
|
195
195
|
_: 1
|
|
196
196
|
}, 8, ["disabled"])
|
|
197
|
-
])) : (l(), i(
|
|
197
|
+
])) : (l(), i(C, { key: 1 }, [
|
|
198
198
|
o("span", {
|
|
199
199
|
class: h(["cfg-used", { none: !s(t).usageCountFor(a.id) }])
|
|
200
|
-
}, c(s(t).usageCountFor(a.id) ? `${s(t).usageCountFor(a.id)}
|
|
200
|
+
}, c(s(t).usageCountFor(a.id) ? `${s(t).usageCountFor(a.id)} employee${s(t).usageCountFor(a.id) === 1 ? "" : "s"}` : "unused"), 3),
|
|
201
201
|
n(u, {
|
|
202
202
|
hierarchy: "secondary",
|
|
203
203
|
size: "sm",
|
|
204
204
|
class: "cfg-btn",
|
|
205
205
|
type: "button",
|
|
206
|
-
onClick: g((
|
|
206
|
+
onClick: g((p) => s(f).openEdit(a.id, a.name), ["stop"])
|
|
207
207
|
}, {
|
|
208
208
|
default: d(() => [...e[16] || (e[16] = [
|
|
209
209
|
r(" Edit ", -1)
|
|
@@ -217,7 +217,7 @@ const H = { class: "main" }, G = {
|
|
|
217
217
|
class: "cfg-del",
|
|
218
218
|
type: "button",
|
|
219
219
|
"aria-label": `Delete ${a.name}`,
|
|
220
|
-
onClick: g((
|
|
220
|
+
onClick: g((p) => s(t).askDelete(a.id), ["stop"])
|
|
221
221
|
}, {
|
|
222
222
|
default: d(() => [...e[17] || (e[17] = [
|
|
223
223
|
o("svg", {
|
|
@@ -256,7 +256,7 @@ const H = { class: "main" }, G = {
|
|
|
256
256
|
n(q, { modal: s(f) }, null, 8, ["modal"])
|
|
257
257
|
], 512));
|
|
258
258
|
}
|
|
259
|
-
}), ke = /* @__PURE__ */ O(ve, [["__scopeId", "data-v-
|
|
259
|
+
}), ke = /* @__PURE__ */ O(ve, [["__scopeId", "data-v-77f876af"]]);
|
|
260
260
|
export {
|
|
261
261
|
ke as default
|
|
262
262
|
};
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { ref as $, computed as v, defineComponent as X, watch as Y, nextTick as Z, resolveComponent as F, createElementBlock as d, openBlock as c, createElementVNode as A, createVNode as b, renderSlot as z, withCtx as O, createCommentVNode as x, normalizeStyle as ee, Fragment as S, createBlock as T, unref as k, renderList as R, toDisplayString as N, normalizeClass as le, withModifiers as te } from "vue";
|
|
2
2
|
import "@feedmepos/ui-library";
|
|
3
3
|
/* empty css */
|
|
4
|
-
import { a as ae } from "./app-
|
|
4
|
+
import { a as ae } from "./app-COWpQb6i.js";
|
|
5
5
|
function ue(r, u, _ = r) {
|
|
6
6
|
const t = $(!0), C = v(() => {
|
|
7
7
|
if (!t.value && !u.value)
|
|
@@ -2,22 +2,22 @@ import { defineComponent as we, resolveComponent as F, createElementBlock as L,
|
|
|
2
2
|
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
|
-
import { S as ye } from "./SelectFilter-
|
|
6
|
-
import { a as vs, v as Te, m as fs, O as bs, _ as hs, b as ys } from "./app-
|
|
5
|
+
import { S as ye } from "./SelectFilter-DoeKbbjT.js";
|
|
6
|
+
import { a as vs, v as Te, m as fs, O as bs, _ as hs, b as ys } from "./app-COWpQb6i.js";
|
|
7
7
|
import { _ as gs } from "./ResponsiveContextMenu.vue_vue_type_script_setup_true_lang-mSJFKo7r.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-Nygx2zn8.js";
|
|
11
11
|
import { u as Is } from "./useDiscardConfirm-CzZSPyvh.js";
|
|
12
12
|
import { n as es } from "./string-VNuQNweN.js";
|
|
13
|
-
import { l as Pe } from "./lodash-
|
|
14
|
-
import { c as he } from "./iteration-
|
|
15
|
-
import { t as _e, u as ss, c as Ae, b as qe, m as $e, d as ts, p as Ge, i as ws, j as Ke, k as Vs, l as ks, n as Rs, o as Cs, q as $s } from "./rule-
|
|
16
|
-
import { u as as } from "./role-
|
|
13
|
+
import { l as Pe } from "./lodash-CQM_jgZN.js";
|
|
14
|
+
import { c as he } from "./iteration-B23jisFZ.js";
|
|
15
|
+
import { t as _e, u as ss, c as Ae, b as qe, m as $e, d as ts, p as Ge, i as ws, j as Ke, k as Vs, l as ks, n as Rs, o as Cs, q as $s } from "./rule-xOAXApqp.js";
|
|
16
|
+
import { u as as } from "./role-k4mdt-op.js";
|
|
17
17
|
import { u as ls, i as Ms } from "./PortalUserSearcher.vue_vue_type_style_index_0_scoped_827dfd60_lang-DQcgZ0nF.js";
|
|
18
18
|
import "./useAppStore-DZCdxlCd.js";
|
|
19
19
|
import { g as ze, b as We, u as os } from "./restaurant-D2mfKHaH.js";
|
|
20
|
-
import { _ as Ns } from "./PortalPermissionEditor.vue_vue_type_script_setup_true_lang-
|
|
20
|
+
import { _ as Ns } from "./PortalPermissionEditor.vue_vue_type_script_setup_true_lang-BhR3MM-s.js";
|
|
21
21
|
var Ue = /* @__PURE__ */ ((o) => (o.Update = "Update", o.Remove = "Remove", o))(Ue || {});
|
|
22
22
|
const Ie = "__unassigned__";
|
|
23
23
|
function Je(o) {
|
|
@@ -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 n, 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-
|
|
2
|
+
import { d as v } from "./dayjs.min-Dv2S110T.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
|
-
import { S as De } from "./SelectFilter-
|
|
6
|
-
import { _ as Se, a as Ve } from "./app-
|
|
5
|
+
import { S as De } from "./SelectFilter-DoeKbbjT.js";
|
|
6
|
+
import { _ as Se, a as Ve } from "./app-COWpQb6i.js";
|
|
7
7
|
import { _ as ke } from "./TableEmptyState.vue_vue_type_script_setup_true_lang-IfAZmWr0.js";
|
|
8
8
|
import { u as Ce } from "./useLoading-Nygx2zn8.js";
|
|
9
|
-
import { g as Fe, s as Ye } from "./iteration-
|
|
9
|
+
import { g as Fe, s as Ye } from "./iteration-B23jisFZ.js";
|
|
10
10
|
import { f as Le } from "./utils-BZkjJbju.js";
|
|
11
11
|
import { n as Me } from "./string-VNuQNweN.js";
|
|
12
|
-
import { u as Te } from "./employee-
|
|
12
|
+
import { u as Te } from "./employee-Drs22uVf.js";
|
|
13
13
|
import { u as Ie } from "./restaurant-D2mfKHaH.js";
|
|
14
|
-
import { u as Re } from "./TimesheetList.vue_vue_type_style_index_0_scoped_63294af2_lang-
|
|
14
|
+
import { u as Re } from "./TimesheetList.vue_vue_type_style_index_0_scoped_63294af2_lang-Dc0_djRp.js";
|
|
15
15
|
function $e(x, a) {
|
|
16
16
|
return ["years", "months"].find((S) => {
|
|
17
17
|
const V = x.startOf(S), p = x.endOf(S);
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { d as i } from "./dayjs.min-
|
|
1
|
+
import { d as i } from "./dayjs.min-Dv2S110T.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-D2mfKHaH.js";
|
|
5
|
-
import { s as S } from "./iteration-
|
|
5
|
+
import { s as S } from "./iteration-B23jisFZ.js";
|
|
6
6
|
import { i as f, f as g } from "./utils-BZkjJbju.js";
|
|
7
7
|
const u = {
|
|
8
8
|
async readTimesheets(t, e) {
|
|
@@ -10115,16 +10115,16 @@ const _e = (e) => ({
|
|
|
10115
10115
|
}
|
|
10116
10116
|
]
|
|
10117
10117
|
}
|
|
10118
|
-
}), jc = ot(pe(() => import("./Main-
|
|
10119
|
-
pe(() => import("./AuditLogList-
|
|
10120
|
-
), Oc = ot(pe(() => import("./Main-
|
|
10121
|
-
() => import("./PermissionSetList-
|
|
10118
|
+
}), jc = ot(pe(() => import("./Main-DZ5T4TP1.js"))), Ec = ot(pe(() => import("./Main-yUEWFlC3.js"))), Pc = ot(
|
|
10119
|
+
pe(() => import("./AuditLogList-BJ8GXIzu.js"))
|
|
10120
|
+
), Oc = ot(pe(() => import("./Main-DLgW7BX_.js"))), Gc = pe(() => import("./ApprovalCodeList-B10IvyLu.js")), Yc = pe(() => import("./GrantUserList-R259wy0R.js")), Vc = pe(() => import("./EmployeeList-CNj262HG.js")), Fc = pe(() => import("./RoleList-RRDkrVmu.js")), Sc = pe(() => import("./TimesheetList-CWl2faUZ.js")), Tc = pe(() => import("./TeamMemberList-CPpBsvi7.js")), kc = pe(
|
|
10121
|
+
() => import("./PermissionSetList-Xrzkx52n.js")
|
|
10122
10122
|
), Rc = Ws(
|
|
10123
|
-
ot(pe(() => import("./SchedulePage-
|
|
10123
|
+
ot(pe(() => import("./SchedulePage-CHu1VI-U.js")))
|
|
10124
10124
|
), Nc = Ws(
|
|
10125
|
-
ot(pe(() => import("./SchedulePositionPage-
|
|
10125
|
+
ot(pe(() => import("./SchedulePositionPage-Dx2fZ1QI.js")))
|
|
10126
10126
|
), Hc = Ws(
|
|
10127
|
-
ot(pe(() => import("./ScheduleGeneralPage-
|
|
10127
|
+
ot(pe(() => import("./ScheduleGeneralPage-CfcIh0Fy.js")))
|
|
10128
10128
|
), lu = [
|
|
10129
10129
|
{
|
|
10130
10130
|
path: "/",
|
|
@@ -11183,7 +11183,7 @@ const cu = /* @__PURE__ */ nt({
|
|
|
11183
11183
|
};
|
|
11184
11184
|
}
|
|
11185
11185
|
});
|
|
11186
|
-
var xs = { name: "@feedmepos/mf-hrm-portal", version: "2.3.0-dev.
|
|
11186
|
+
var xs = { name: "@feedmepos/mf-hrm-portal", version: "2.3.0-dev.18", mode: "fmmf" };
|
|
11187
11187
|
console.log(
|
|
11188
11188
|
`%c${xs.name}%c v${xs.version} %c${xs.mode}`,
|
|
11189
11189
|
"background:#1f1f1f;color:#fff;padding:2px 6px;border-radius:3px 0 0 3px",
|
package/dist/app.js
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import { d as g } from "./dayjs.min-
|
|
1
|
+
import { d as g } from "./dayjs.min-Dv2S110T.js";
|
|
2
2
|
import { defineStore as $, storeToRefs as x } from "pinia";
|
|
3
3
|
import { ref as m } from "vue";
|
|
4
|
-
import { s as E } from "./iteration-
|
|
4
|
+
import { s as E } from "./iteration-B23jisFZ.js";
|
|
5
5
|
import { b as l, g as f, u as I } from "./restaurant-D2mfKHaH.js";
|
|
6
6
|
import { i as v } from "./utils-BZkjJbju.js";
|
|
7
|
-
import { u as P } from "./role-
|
|
7
|
+
import { u as P } from "./role-k4mdt-op.js";
|
|
8
8
|
const o = {
|
|
9
9
|
async readEmployees() {
|
|
10
10
|
return f(await l().get("/pos-users"));
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { f as B } from "./app-
|
|
1
|
+
import { f as B } from "./app-COWpQb6i.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,7 +1,7 @@
|
|
|
1
1
|
import { defineStore as x, storeToRefs as b } from "pinia";
|
|
2
2
|
import { ref as w } from "vue";
|
|
3
3
|
import { useCoreStore as B } from "@feedmepos/mf-common";
|
|
4
|
-
import { s as v } from "./iteration-
|
|
4
|
+
import { s as v } from "./iteration-B23jisFZ.js";
|
|
5
5
|
import { g as f, b as p, u as I } from "./restaurant-D2mfKHaH.js";
|
|
6
6
|
const R = {
|
|
7
7
|
async readRoles() {
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { s as W, c as q, e as y } from "./iteration-
|
|
2
|
-
import { h as O, c as V, d as _, v as F, n as h, O as ee, D as M } from "./app-
|
|
1
|
+
import { s as W, c as q, e as y } from "./iteration-B23jisFZ.js";
|
|
2
|
+
import { h as O, c as V, d as _, v as F, n as h, O as ee, D as M } from "./app-COWpQb6i.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-D2mfKHaH.js";
|
|
5
5
|
import { defineStore as z, storeToRefs as K } from "pinia";
|
|
@@ -21,9 +21,10 @@ declare const _default: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {
|
|
|
21
21
|
segFocus: (dayIdx: number, from: number, to: number, anchor: HTMLElement) => any;
|
|
22
22
|
openDemandSheet: (dayIdx: number) => any;
|
|
23
23
|
openNewShift: (dayIdx: number, position: string) => any;
|
|
24
|
+
openPositionDrop: (dayIdx: number, position: string) => any;
|
|
24
25
|
addPosition: () => any;
|
|
25
26
|
scheduleByPerson: () => any;
|
|
26
|
-
openSwap: (fromEmpId: number, fromDayIdx: number, toEmpId: number, toDayIdx: number, slotIndex: number) => any;
|
|
27
|
+
openSwap: (fromEmpId: number, fromDayIdx: number, toEmpId: number, toDayIdx: number, slotIndex: number, targetSlotIndex: number) => any;
|
|
27
28
|
}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{
|
|
28
29
|
onEditShift?: ((empId: number, dayIdx: number) => any) | undefined;
|
|
29
30
|
onSegEnter?: ((dayIdx: number, from: number, to: number, anchor: HTMLElement) => any) | undefined;
|
|
@@ -32,8 +33,9 @@ declare const _default: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {
|
|
|
32
33
|
onSegFocus?: ((dayIdx: number, from: number, to: number, anchor: HTMLElement) => any) | undefined;
|
|
33
34
|
onOpenDemandSheet?: ((dayIdx: number) => any) | undefined;
|
|
34
35
|
onOpenNewShift?: ((dayIdx: number, position: string) => any) | undefined;
|
|
36
|
+
onOpenPositionDrop?: ((dayIdx: number, position: string) => any) | undefined;
|
|
35
37
|
onAddPosition?: (() => any) | undefined;
|
|
36
38
|
onScheduleByPerson?: (() => any) | undefined;
|
|
37
|
-
onOpenSwap?: ((fromEmpId: number, fromDayIdx: number, toEmpId: number, toDayIdx: number, slotIndex: number) => any) | undefined;
|
|
39
|
+
onOpenSwap?: ((fromEmpId: number, fromDayIdx: number, toEmpId: number, toDayIdx: number, slotIndex: number, targetSlotIndex: number) => any) | undefined;
|
|
38
40
|
}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
39
41
|
export default _default;
|
|
@@ -11,6 +11,7 @@ type __VLS_Props = {
|
|
|
11
11
|
demandRow: ScheduleDemandRowApi;
|
|
12
12
|
onEditShift: (...args: any[]) => void;
|
|
13
13
|
onOpenNewShift: (...args: any[]) => void;
|
|
14
|
+
onOpenPositionDrop: (...args: any[]) => void;
|
|
14
15
|
onOpenDemandSheet: (...args: any[]) => void;
|
|
15
16
|
onSegEnter: (...args: any[]) => void;
|
|
16
17
|
onSegLeave: (...args: any[]) => void;
|
|
@@ -5,6 +5,7 @@ import type { useScheduleStatsRow } from '../composables/useScheduleStatsRow';
|
|
|
5
5
|
import type { ScheduleDayTimelineApi } from '../composables/useScheduleDayTimeline';
|
|
6
6
|
import type { ScheduleRosterApi } from '../composables/useScheduleRoster';
|
|
7
7
|
import type { ScheduleAreaDragDropApi } from '../composables/useScheduleAreaDragDrop';
|
|
8
|
+
import type { ScheduleDragDropApi } from '../composables/useScheduleDragDrop';
|
|
8
9
|
type ScheduleLegendApi = ReturnType<typeof useScheduleLegend>;
|
|
9
10
|
type ScheduleStatsRowApi = ReturnType<typeof useScheduleStatsRow>;
|
|
10
11
|
type __VLS_Props = {
|
|
@@ -15,6 +16,10 @@ type __VLS_Props = {
|
|
|
15
16
|
dayTimeline: ScheduleDayTimelineApi;
|
|
16
17
|
roster: ScheduleRosterApi;
|
|
17
18
|
areaDragDrop: ScheduleAreaDragDropApi;
|
|
19
|
+
shiftDragDrop: ScheduleDragDropApi;
|
|
20
|
+
onDropEmployee: (employeeId: number, event: DragEvent, slotIndex?: number) => void;
|
|
21
|
+
onDropPosition: (employeeId: number, event: DragEvent, slotIndex?: number) => void;
|
|
22
|
+
onDropPositionCell: (position: string, event: DragEvent) => void;
|
|
18
23
|
mode: 'employee' | 'area';
|
|
19
24
|
onScroll: (delta: number) => void;
|
|
20
25
|
onComingSoon: () => void;
|
|
@@ -2,11 +2,16 @@ import type { ScheduleDayTimelineApi } from '../composables/useScheduleDayTimeli
|
|
|
2
2
|
import type { ScheduleRosterApi } from '../composables/useScheduleRoster';
|
|
3
3
|
import type { ScheduleViewMode } from '../composables/useScheduleFilterBar';
|
|
4
4
|
import type { ScheduleAreaDragDropApi } from '../composables/useScheduleAreaDragDrop';
|
|
5
|
+
import type { ScheduleDragDropApi } from '../composables/useScheduleDragDrop';
|
|
5
6
|
type __VLS_Props = {
|
|
6
7
|
timeline: ScheduleDayTimelineApi;
|
|
7
8
|
roster: ScheduleRosterApi;
|
|
8
9
|
mode: ScheduleViewMode;
|
|
9
10
|
dragDrop?: ScheduleAreaDragDropApi;
|
|
11
|
+
shiftDragDrop?: ScheduleDragDropApi;
|
|
12
|
+
onDropEmployee?: (employeeId: number, event: DragEvent, slotIndex?: number) => void;
|
|
13
|
+
onDropPosition?: (employeeId: number, event: DragEvent, slotIndex?: number) => void;
|
|
14
|
+
onDropPositionCell?: (position: string, event: DragEvent) => void;
|
|
10
15
|
};
|
|
11
16
|
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>;
|
|
12
17
|
export default _default;
|
|
@@ -12,6 +12,9 @@ export declare function timeRangeBreakOf(sl: WorkSlot): {
|
|
|
12
12
|
startTime: string;
|
|
13
13
|
endTime: string;
|
|
14
14
|
} | null;
|
|
15
|
+
/** The two visible paid periods around a custom clock-window break. Shared by Weekly cards and
|
|
16
|
+
* Daily timeline bars so the split wording cannot drift between views. */
|
|
17
|
+
export declare function splitTimeLabels(sl: WorkSlot): [string, string] | null;
|
|
15
18
|
/** Same face as `t12`, but never drops the minutes — two ranges stacked on a split card need
|
|
16
19
|
* to line up at a glance, and "10am" next to "10:30am" reads as two different units. */
|
|
17
20
|
export declare function t12Full(hhmm: string): string;
|
|
@@ -2,7 +2,6 @@ import type { ScheduleBoardApi } from './useScheduleBoard';
|
|
|
2
2
|
/** Dragging a person from the staff rail onto a position/day cell opens a normal assigned shift. */
|
|
3
3
|
export declare function useScheduleAreaDragDrop(board: ScheduleBoardApi, handlers: {
|
|
4
4
|
onCreateShift: (empId: number, dayIdx: number, position: string) => void;
|
|
5
|
-
onNotQualified: (empName: string, position: string) => void;
|
|
6
5
|
}): {
|
|
7
6
|
draggingEmpId: import("vue").Ref<number | null, number | null>;
|
|
8
7
|
startRailDrag: (empId: number) => void;
|
|
@@ -239,6 +239,7 @@ export declare function useScheduleAutoSchedule(board: ScheduleBoardApi, demand:
|
|
|
239
239
|
back: () => void;
|
|
240
240
|
generate: () => Promise<void>;
|
|
241
241
|
reviewMode: import("vue").ComputedRef<boolean>;
|
|
242
|
+
hasPendingChanges: import("vue").ComputedRef<boolean>;
|
|
242
243
|
proposals: import("vue").ComputedRef<{
|
|
243
244
|
id: number;
|
|
244
245
|
empId: number;
|
|
@@ -593,8 +593,9 @@ export declare function useScheduleBoard(handlers?: {
|
|
|
593
593
|
clearEmployeeShifts: (empId: number) => {
|
|
594
594
|
shifts: number;
|
|
595
595
|
};
|
|
596
|
-
moveShift: (fromEmpId: number, fromDayIdx: number, toEmpId: number, toDayIdx: number, fromSlotIndex?: number, fromSlotCount?: number, targetPosition?: string) => boolean;
|
|
596
|
+
moveShift: (fromEmpId: number, fromDayIdx: number, toEmpId: number, toDayIdx: number, fromSlotIndex?: number, fromSlotCount?: number, targetPosition?: string, allowLocked?: boolean) => boolean;
|
|
597
597
|
swapShifts: (empIdA: number, empIdB: number, dayA: number, dayB?: number, slotIndexA?: number, slotIndexB?: number, slotCountA?: number) => boolean;
|
|
598
|
+
swapPositions: (empIdA: number, empIdB: number, dayA: number, dayB?: number, slotIndexA?: number, slotIndexB?: number, slotCountA?: number) => boolean;
|
|
598
599
|
clearShiftsInRange: (options?: {
|
|
599
600
|
persist?: boolean;
|
|
600
601
|
}) => {
|
|
@@ -2,14 +2,19 @@ import type { ScheduleBoardApi } from './useScheduleBoard';
|
|
|
2
2
|
import type { ScheduleRosterApi } from './useScheduleRoster';
|
|
3
3
|
import type { ScheduleAreaBoardApi } from './useScheduleAreaBoard';
|
|
4
4
|
import type { ScheduleDemandApi } from './useScheduleDemand';
|
|
5
|
+
import { type ScheduleEmployeeLoad } from './useScheduleEmployeeIdentity';
|
|
5
6
|
declare function minToHHMM(m: number): string;
|
|
6
7
|
export interface ScheduleTimelineBar {
|
|
7
8
|
key: string;
|
|
9
|
+
start: number;
|
|
10
|
+
end: number;
|
|
8
11
|
left: number;
|
|
9
12
|
width: number;
|
|
10
13
|
cls: string;
|
|
11
14
|
label: string;
|
|
15
|
+
labels?: string[];
|
|
12
16
|
sub?: string;
|
|
17
|
+
conflict?: boolean;
|
|
13
18
|
title: string;
|
|
14
19
|
brk?: {
|
|
15
20
|
left: number;
|
|
@@ -17,6 +22,8 @@ export interface ScheduleTimelineBar {
|
|
|
17
22
|
};
|
|
18
23
|
laneTop?: number;
|
|
19
24
|
laneHeight?: number;
|
|
25
|
+
employeeId?: number;
|
|
26
|
+
slotIndex?: number;
|
|
20
27
|
onClick?: () => void;
|
|
21
28
|
}
|
|
22
29
|
export interface ScheduleTimelineRow {
|
|
@@ -27,6 +34,7 @@ export interface ScheduleTimelineRow {
|
|
|
27
34
|
avatarInitials?: string;
|
|
28
35
|
avatarColor?: string;
|
|
29
36
|
employeeId?: number;
|
|
37
|
+
employeeLoad?: ScheduleEmployeeLoad;
|
|
30
38
|
roleLabel?: string;
|
|
31
39
|
hoursLabel?: string;
|
|
32
40
|
hoursPct?: number;
|
|
@@ -34,6 +42,11 @@ export interface ScheduleTimelineRow {
|
|
|
34
42
|
name: string;
|
|
35
43
|
sub: string;
|
|
36
44
|
bars: ScheduleTimelineBar[];
|
|
45
|
+
pastDay?: boolean;
|
|
46
|
+
lockedDay?: boolean;
|
|
47
|
+
closedDay?: boolean;
|
|
48
|
+
availabilityDay?: boolean;
|
|
49
|
+
availabilityLabel?: string;
|
|
37
50
|
minHeight?: number;
|
|
38
51
|
emptyText?: string;
|
|
39
52
|
onTrackClick?: (anchor: HTMLElement) => void;
|
|
@@ -49,6 +62,7 @@ export interface ScheduleHourCell {
|
|
|
49
62
|
}
|
|
50
63
|
export declare function useScheduleDayTimeline(board: ScheduleBoardApi, roster: ScheduleRosterApi, areaBoard: ScheduleAreaBoardApi, demand: ScheduleDemandApi, handlers: {
|
|
51
64
|
onAddShift: (empId: number, dayIdx: number, anchor: HTMLElement) => void;
|
|
65
|
+
onAddPositionShift: (dayIdx: number, position: string, anchor: HTMLElement) => void;
|
|
52
66
|
onEditShift: (empId: number, dayIdx: number) => void;
|
|
53
67
|
onEditLeave: (empId: number, dayIdx: number) => void;
|
|
54
68
|
onOpenDemand: (dayIdx: number) => void;
|
|
@@ -50,6 +50,6 @@ export declare function useScheduleDragDrop(board: ScheduleBoardApi): {
|
|
|
50
50
|
setDragHover: (empId: number, dayIdx: number, onCard: boolean, slotIndex: number | null) => void;
|
|
51
51
|
clearDragHover: (empId: number, dayIdx: number) => void;
|
|
52
52
|
dropOnCell: (targetEmpId: number, targetDayIdx: number) => void;
|
|
53
|
-
dropOnPosition: (targetDayIdx: number, targetPosition: string) => void;
|
|
53
|
+
dropOnPosition: (targetDayIdx: number, targetPosition: string, allowLocked?: boolean) => void;
|
|
54
54
|
};
|
|
55
55
|
export type ScheduleDragDropApi = ReturnType<typeof useScheduleDragDrop>;
|
|
@@ -597,8 +597,9 @@ export declare function useScheduleOnboardingWizard(board: ScheduleBoardApi, add
|
|
|
597
597
|
clearEmployeeShifts: (empId: number) => {
|
|
598
598
|
shifts: number;
|
|
599
599
|
};
|
|
600
|
-
moveShift: (fromEmpId: number, fromDayIdx: number, toEmpId: number, toDayIdx: number, fromSlotIndex?: number, fromSlotCount?: number, targetPosition?: string) => boolean;
|
|
600
|
+
moveShift: (fromEmpId: number, fromDayIdx: number, toEmpId: number, toDayIdx: number, fromSlotIndex?: number, fromSlotCount?: number, targetPosition?: string, allowLocked?: boolean) => boolean;
|
|
601
601
|
swapShifts: (empIdA: number, empIdB: number, dayA: number, dayB?: number, slotIndexA?: number, slotIndexB?: number, slotCountA?: number) => boolean;
|
|
602
|
+
swapPositions: (empIdA: number, empIdB: number, dayA: number, dayB?: number, slotIndexA?: number, slotIndexB?: number, slotCountA?: number) => boolean;
|
|
602
603
|
clearShiftsInRange: (options?: {
|
|
603
604
|
persist?: boolean;
|
|
604
605
|
}) => {
|
|
@@ -20,5 +20,6 @@ export declare function useScheduleOutlet(): {
|
|
|
20
20
|
resolve: () => Promise<string>;
|
|
21
21
|
resolveOutlet: () => Promise<string>;
|
|
22
22
|
switchTo: (restaurantId: string, weekStart: Date) => Promise<boolean>;
|
|
23
|
+
setBeforeSwitch: (handler: (restaurantId: string) => boolean | Promise<boolean>) => void;
|
|
23
24
|
};
|
|
24
25
|
export type ScheduleOutletApi = ReturnType<typeof useScheduleOutlet>;
|
|
@@ -13,6 +13,8 @@ interface UseSchedulePageCellDropOptions {
|
|
|
13
13
|
notify: (message: string, type: 'error') => void;
|
|
14
14
|
}
|
|
15
15
|
export declare function useSchedulePageCellDrop(options: UseSchedulePageCellDropOptions): {
|
|
16
|
-
onCellDrop: (empId: number, dayIdx: number, event: DragEvent) => void;
|
|
16
|
+
onCellDrop: (empId: number, dayIdx: number, event: DragEvent, targetSlotIndex?: number, kind?: "employee" | "position") => void;
|
|
17
|
+
confirmPositionSwap: (toEmpId: number, toDayIdx: number, onConfirm: () => void) => void;
|
|
18
|
+
confirmPositionDrop: (targetDayIdx: number, onConfirm: () => void) => void;
|
|
17
19
|
};
|
|
18
20
|
export {};
|
|
@@ -29,7 +29,10 @@ export interface ScheduleSwapState {
|
|
|
29
29
|
preset: {
|
|
30
30
|
empId: number;
|
|
31
31
|
dayIdx: number;
|
|
32
|
+
slotIndex?: number;
|
|
32
33
|
} | null;
|
|
34
|
+
/** Area/Position view exchanges roles; employee view exchanges shift ownership. */
|
|
35
|
+
kind: 'employee' | 'position';
|
|
33
36
|
}
|
|
34
37
|
/** The shift card's "⋯" menu (Change employee / Swap shifts / Edit / Remove), plus the two
|
|
35
38
|
* dialogs it opens that the rest of Phase 1 didn't need: handing a shift to somebody else,
|
|
@@ -217,7 +220,9 @@ export declare function useScheduleShiftActions(board: ScheduleBoardApi, options
|
|
|
217
220
|
preset: {
|
|
218
221
|
empId: number;
|
|
219
222
|
dayIdx: number;
|
|
223
|
+
slotIndex?: number | undefined;
|
|
220
224
|
} | null;
|
|
225
|
+
kind: "employee" | "position";
|
|
221
226
|
};
|
|
222
227
|
swapSlot: import("vue").ComputedRef<import("../types").WorkSlot[]>;
|
|
223
228
|
swapCandidates: import("vue").ComputedRef<{
|
|
@@ -232,7 +237,7 @@ export declare function useScheduleShiftActions(board: ScheduleBoardApi, options
|
|
|
232
237
|
slot: import("../types").WorkSlot[];
|
|
233
238
|
soft: string | null;
|
|
234
239
|
} | null>;
|
|
235
|
-
openSwap: (empId: number, dayIdx: number, preset?: ScheduleSwapState["preset"], slotIndex?: number, slotCount?: number) => void;
|
|
240
|
+
openSwap: (empId: number, dayIdx: number, preset?: ScheduleSwapState["preset"], slotIndex?: number, slotCount?: number, kind?: ScheduleSwapState["kind"]) => void;
|
|
236
241
|
closeSwap: () => void;
|
|
237
242
|
confirmSwap: (toEmpId: number, toDayIdx: number) => void;
|
|
238
243
|
removeShift: (empId: number, dayIdx: number, slotIndex?: number) => void;
|