@feedmepos/mf-hrm-portal 2.3.2-dev.3 → 2.3.2-dev.4
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-D3U4nvlF.js → ApprovalCodeList-BPTnWcra.js} +14 -15
- package/dist/{AuditLogList-qGCW7tf0.js → AuditLogList-CvEF4bit.js} +12 -12
- package/dist/ConditionBuilderForm.vue_vue_type_script_setup_true_lang-CPX0sv64.js +459 -0
- package/dist/EmployeeList-CANPsrQY.js +896 -0
- package/dist/FormSection.vue_vue_type_script_setup_true_lang-mdfK9rtZ.js +90 -0
- package/dist/{GrantUserList-C71pal0N.js → GrantUserList-DPj_6Wsg.js} +15 -16
- package/dist/{Main-CCdTWngg.js → Main-BWRMirTY.js} +11 -11
- package/dist/{Main-BWJPyEU1.js → Main-Cob4hcf-.js} +5 -5
- package/dist/Main-DXcSgkhR.js +101 -0
- package/dist/MyPosProfile-Bp7-pATz.js +301 -0
- package/dist/PasscodePinField.vue_vue_type_script_setup_true_lang-TXPEqa46.js +126 -0
- package/dist/{PermissionSetList-BS-oBunI.js → PermissionSetList-DvAW1q0c.js} +45 -46
- package/dist/PortalPermissionEditor.vue_vue_type_script_setup_true_lang-DmbI5vgH.js +4243 -0
- package/dist/PortalUserSearcher.vue_vue_type_style_index_0_scoped_827dfd60_lang-C8hcooKP.js +1831 -0
- package/dist/RoleForm.vue_vue_type_script_setup_true_lang-Bq8-aBSv.js +547 -0
- package/dist/RoleList-DsrHgU4s.js +274 -0
- package/dist/{ScheduleAddPositionModal.vue_vue_type_script_setup_true_lang-BXihM4sl.js → ScheduleAddPositionModal.vue_vue_type_script_setup_true_lang-CRR18xmB.js} +1 -1
- package/dist/{ScheduleGeneralPage-DpNvWNGs.js → ScheduleGeneralPage-C_Kj9wmp.js} +2 -2
- package/dist/{ScheduleModal.vue_vue_type_script_setup_true_lang-DIYLOF9N.js → ScheduleModal.vue_vue_type_script_setup_true_lang-3oQ6lE86.js} +187 -186
- package/dist/{SchedulePage-QW-cYvu2.js → SchedulePage-9dFXxWwZ.js} +13 -13
- package/dist/{SchedulePositionPage-BtFfVo2N.js → SchedulePositionPage-Dea5X8Sa.js} +3 -3
- package/dist/{SelectFilter-BXeVKgHN.js → SelectFilter-Dr9lB6Ta.js} +1 -1
- package/dist/TeamMemberList-Bu9QNP9W.js +2086 -0
- package/dist/{TimesheetList-D-bESKe5.js → TimesheetList-B98l028z.js} +9 -9
- package/dist/{TimesheetList.vue_vue_type_style_index_0_scoped_63294af2_lang-D0zAVqCa.js → TimesheetList.vue_vue_type_style_index_0_scoped_63294af2_lang-DIQ7kjG8.js} +3 -3
- package/dist/{app-D-MUq9Ab.js → app-BHQJX4L4.js} +6398 -3459
- package/dist/app.js +3 -3
- package/dist/{approval-code-BXUiojPH.js → approval-code-w0rZJeYU.js} +1 -1
- package/dist/{dayjs.min-BZ1pM-6M.js → dayjs.min-C4H4diN8.js} +34 -34
- package/dist/{employee-HQEU8fjb.js → employee-BEwUmdt6.js} +48 -47
- package/dist/{grant-user-CBJ3gEgW.js → grant-user-DdxPMH5_.js} +1 -1
- package/dist/{iteration-ogxW2-Tv.js → iteration-DBHifssn.js} +1 -1
- package/dist/{lodash-Def4gaas.js → lodash-DqZsWm-0.js} +1 -1
- package/dist/member-grant-DOigVnBR.js +55 -0
- package/dist/restaurant-2xCb2x26.js +51 -0
- package/dist/{role-JDoDFVd9.js → role-C8STcmLJ.js} +5 -4
- package/dist/{rule-DPtqlnz-.js → rule-BkL34-Ma.js} +105 -100
- package/dist/src/api/my-pos-profile/index.d.ts +5 -0
- package/dist/src/api/sso-provider/index.d.ts +5 -0
- package/dist/src/api/staff-invite/index.d.ts +16 -0
- package/dist/src/components/CollapsibleWrapper.vue.d.ts +11 -3
- package/dist/src/components/form/SegmentedTabs.vue.d.ts +23 -0
- package/dist/src/composables/useMenuAccess.d.ts +56 -0
- package/dist/src/composables/useSsoProviders.d.ts +19 -0
- package/dist/src/composables/useStaffInviteProviders.d.ts +8 -0
- package/dist/src/helpers/member-grant.d.ts +36 -0
- package/dist/src/helpers/my-pos-profile.d.ts +37 -0
- package/dist/src/helpers/pos-assignment-rows.d.ts +28 -0
- package/dist/src/helpers/staff-invite.d.ts +54 -0
- package/dist/src/helpers/string.d.ts +10 -1
- package/dist/src/router/menu-access-guard.d.ts +17 -0
- package/dist/src/router/shared.d.ts +3 -1
- package/dist/src/stores/restaurant.d.ts +7 -7
- package/dist/src/stores/team.d.ts +30 -0
- package/dist/src/types/my-pos-profile.d.ts +25 -0
- package/dist/src/types/sso-provider.d.ts +10 -0
- package/dist/src/types/staff-invite.d.ts +100 -0
- package/dist/src/types/team.d.ts +17 -1
- package/dist/src/views/hr/locales/index.d.ts +20 -0
- package/dist/src/views/hr/role/RoleForm.vue.d.ts +29 -2
- package/dist/src/views/my-pos-profile/MyPosProfile.vue.d.ts +2 -0
- package/dist/src/views/my-pos-profile/components/PasscodeChangedDialog.vue.d.ts +4 -0
- package/dist/src/views/my-pos-profile/locales/index.d.ts +200 -0
- package/dist/src/views/scheduling/composables/useScheduleOnboardingAvailability.d.ts +1 -1
- package/dist/src/views/scheduling/composables/useScheduleOnboardingWizard.d.ts +1 -1
- package/dist/src/views/scheduling/composables/useScheduleShiftDraft.d.ts +1 -1
- package/dist/src/views/scheduling/composables/useScheduleShiftPopover.d.ts +1 -1
- package/dist/src/views/team/components/BasePermission.vue.d.ts +11 -0
- package/dist/src/views/team/components/ConditionPermission.vue.d.ts +11 -0
- package/dist/src/views/team/components/MemberGrantFields.vue.d.ts +51 -0
- package/dist/src/views/team/{member/MemberInfo.vue.d.ts → components/MemberStatusBadge.vue.d.ts} +2 -2
- package/dist/src/views/team/components/PortalPermissionEditor.vue.d.ts +21 -0
- package/dist/src/views/team/components/PosAssignmentRows.vue.d.ts +44 -0
- package/dist/src/views/team/components/PosRolePermission.vue.d.ts +11 -0
- package/dist/src/views/team/locales/index.d.ts +716 -0
- package/dist/src/views/team/member/AddMemberForm.vue.d.ts +48 -3
- package/dist/src/views/team/member/ExistingMemberNotice.vue.d.ts +11 -0
- package/dist/src/views/team/member/MemberDetailsCard.vue.d.ts +35 -0
- package/dist/src/views/team/member/MemberHeaderCard.vue.d.ts +19 -0
- package/dist/src/views/team/member/TeamMemberList.vue.d.ts +1 -0
- package/dist/string-DZQ1uNjn.js +22 -0
- package/dist/style.css +1 -1
- package/dist/tsconfig.app.tsbuildinfo +1 -1
- package/dist/{useAppStore-DZCdxlCd.js → useAppStore-BUmFt2dT.js} +1 -1
- package/dist/{useLoading-Nygx2zn8.js → useLoading-oHRj4RgU.js} +1 -1
- package/dist/{useReportPermissions-CxV7Dz1B.js → useReportPermissions-CpcyfEuV.js} +5 -5
- package/package.json +1 -1
- package/dist/ConditionBuilderForm.vue_vue_type_script_setup_true_lang-B0VcRYUg.js +0 -438
- package/dist/EmployeeList-Bd73xDCX.js +0 -776
- package/dist/FormItem.vue_vue_type_script_setup_true_lang-cLEnrtC6.js +0 -45
- package/dist/FormSection.vue_vue_type_script_setup_true_lang-DknXTYiK.js +0 -49
- package/dist/Main-DGf0bQvy.js +0 -96
- package/dist/PasscodePinField.vue_vue_type_script_setup_true_lang-CqG0v0Sz.js +0 -243
- package/dist/PortalPermissionEditor.vue_vue_type_script_setup_true_lang-CkOAT-oX.js +0 -4167
- package/dist/PortalUserSearcher.vue_vue_type_style_index_0_scoped_827dfd60_lang-DQcgZ0nF.js +0 -35
- package/dist/RoleList-B_7UnVNb.js +0 -740
- package/dist/TeamMemberList-DoisBYnk.js +0 -1154
- package/dist/restaurant-D2mfKHaH.js +0 -1880
- package/dist/string-VNuQNweN.js +0 -15
|
@@ -1,45 +0,0 @@
|
|
|
1
|
-
import { createElementBlock as r, openBlock as c, createElementVNode as o, ref as m, computed as f, defineComponent as p, renderSlot as l, createCommentVNode as _, toDisplayString as i } from "vue";
|
|
2
|
-
import { a as y } from "./app-D-MUq9Ab.js";
|
|
3
|
-
const h = {};
|
|
4
|
-
function v(t, e) {
|
|
5
|
-
return c(), r("div", null, [...e[0] || (e[0] = [
|
|
6
|
-
o("div", { class: "h-px w-full bg-fm-color-neutral-gray-100" }, null, -1)
|
|
7
|
-
])]);
|
|
8
|
-
}
|
|
9
|
-
const C = /* @__PURE__ */ y(h, [["render", v]]), V = (t) => {
|
|
10
|
-
const e = m("");
|
|
11
|
-
function s(n) {
|
|
12
|
-
return `${n}`.trim().toLowerCase();
|
|
13
|
-
}
|
|
14
|
-
const a = f(() => s(e.value));
|
|
15
|
-
function d(n) {
|
|
16
|
-
return a.value ? n.some((u) => s(u).includes(a.value)) : !0;
|
|
17
|
-
}
|
|
18
|
-
return { searchKey: e, filter: d };
|
|
19
|
-
}, b = { class: "space-y-8" }, x = { class: "flex items-center justify-between" }, S = { class: "space-y-8" }, g = { class: "fm-typo-en-body-lg-600" }, $ = {
|
|
20
|
-
key: 0,
|
|
21
|
-
class: "fm-typo-en-body-md-400 text-fm-color-typo-secondary"
|
|
22
|
-
}, B = /* @__PURE__ */ p({
|
|
23
|
-
__name: "FormItem",
|
|
24
|
-
props: {
|
|
25
|
-
label: {},
|
|
26
|
-
description: {}
|
|
27
|
-
},
|
|
28
|
-
setup(t) {
|
|
29
|
-
return (e, s) => (c(), r("div", b, [
|
|
30
|
-
o("div", x, [
|
|
31
|
-
o("div", S, [
|
|
32
|
-
o("p", g, i(t.label), 1),
|
|
33
|
-
t.description ? (c(), r("p", $, i(t.description), 1)) : _("", !0)
|
|
34
|
-
]),
|
|
35
|
-
l(e.$slots, "append")
|
|
36
|
-
]),
|
|
37
|
-
l(e.$slots, "default")
|
|
38
|
-
]));
|
|
39
|
-
}
|
|
40
|
-
});
|
|
41
|
-
export {
|
|
42
|
-
C as H,
|
|
43
|
-
B as _,
|
|
44
|
-
V as u
|
|
45
|
-
};
|
|
@@ -1,49 +0,0 @@
|
|
|
1
|
-
import { defineComponent as c, createElementBlock as s, openBlock as l, normalizeClass as r, renderSlot as n, createCommentVNode as o, createVNode as d, createElementVNode as a, toDisplayString as i, withCtx as f } from "vue";
|
|
2
|
-
const h = /* @__PURE__ */ c({
|
|
3
|
-
__name: "FormColumn",
|
|
4
|
-
props: {
|
|
5
|
-
shrinkable: { type: Boolean }
|
|
6
|
-
},
|
|
7
|
-
setup(e) {
|
|
8
|
-
return (t, m) => (l(), s("div", {
|
|
9
|
-
class: r(["flex-1 flex flex-col space-y-24", { "min-h-0": e.shrinkable }])
|
|
10
|
-
}, [
|
|
11
|
-
n(t.$slots, "default")
|
|
12
|
-
], 2));
|
|
13
|
-
}
|
|
14
|
-
}), u = {
|
|
15
|
-
key: 0,
|
|
16
|
-
class: "flex flex-row justify-between items-center"
|
|
17
|
-
}, y = { class: "space-y-4" }, p = { class: "fm-typo-en-title-sm-600" }, b = {
|
|
18
|
-
key: 0,
|
|
19
|
-
class: "fm-typo-en-body-md-400 text-fm-color-typo-secondary"
|
|
20
|
-
}, x = /* @__PURE__ */ c({
|
|
21
|
-
__name: "FormSection",
|
|
22
|
-
props: {
|
|
23
|
-
title: {},
|
|
24
|
-
subTitle: {},
|
|
25
|
-
shrinkable: { type: Boolean }
|
|
26
|
-
},
|
|
27
|
-
setup(e) {
|
|
28
|
-
return (t, m) => (l(), s("div", {
|
|
29
|
-
class: r(["flex flex-col space-y-16", { "min-h-0": e.shrinkable }])
|
|
30
|
-
}, [
|
|
31
|
-
e.title ? (l(), s("div", u, [
|
|
32
|
-
a("div", y, [
|
|
33
|
-
a("p", p, i(e.title), 1),
|
|
34
|
-
e.subTitle ? (l(), s("p", b, i(e.subTitle), 1)) : o("", !0)
|
|
35
|
-
]),
|
|
36
|
-
n(t.$slots, "append-title")
|
|
37
|
-
])) : o("", !0),
|
|
38
|
-
d(h, { shrinkable: e.shrinkable }, {
|
|
39
|
-
default: f(() => [
|
|
40
|
-
n(t.$slots, "default")
|
|
41
|
-
]),
|
|
42
|
-
_: 3
|
|
43
|
-
}, 8, ["shrinkable"])
|
|
44
|
-
], 2));
|
|
45
|
-
}
|
|
46
|
-
});
|
|
47
|
-
export {
|
|
48
|
-
x as _
|
|
49
|
-
};
|
package/dist/Main-DGf0bQvy.js
DELETED
|
@@ -1,96 +0,0 @@
|
|
|
1
|
-
import { defineComponent as M, ref as R, computed as s, resolveComponent as i, createBlock as c, openBlock as p, withCtx as l, createElementVNode as S, createVNode as d, resolveDynamicComponent as g, createCommentVNode as y, createTextVNode as A, toDisplayString as C } from "vue";
|
|
2
|
-
import { useRouter as N, useRoute as h } from "vue-router";
|
|
3
|
-
import { useI18n as k } from "@feedmepos/mf-common";
|
|
4
|
-
import { _ as x } from "./ResponsiveFabButton.vue_vue_type_script_setup_true_lang-QrqYEy8i.js";
|
|
5
|
-
import { _ as F } from "./PageLayout.vue_vue_type_script_setup_true_lang-HKK4cbW8.js";
|
|
6
|
-
import { u as w } from "./restaurant-D2mfKHaH.js";
|
|
7
|
-
import "@feedmepos/ui-library";
|
|
8
|
-
import "./rule-DPtqlnz-.js";
|
|
9
|
-
import "./lodash-Def4gaas.js";
|
|
10
|
-
import "./iteration-ogxW2-Tv.js";
|
|
11
|
-
import "./useAppStore-DZCdxlCd.js";
|
|
12
|
-
import { R as v } from "./app-D-MUq9Ab.js";
|
|
13
|
-
import "./role-JDoDFVd9.js";
|
|
14
|
-
/* empty css */
|
|
15
|
-
import "./PortalUserSearcher.vue_vue_type_style_index_0_scoped_827dfd60_lang-DQcgZ0nF.js";
|
|
16
|
-
const $ = { class: "space-y-24" }, Z = /* @__PURE__ */ M({
|
|
17
|
-
__name: "Main",
|
|
18
|
-
setup(q) {
|
|
19
|
-
const { t: o } = k(), b = N(), B = h(), { readRestaurants: T } = w(), _ = R(), f = R(), a = s({
|
|
20
|
-
get: () => B.name === v.TEAM_ROLE ? "role" : "member",
|
|
21
|
-
set: (e) => {
|
|
22
|
-
b.push({
|
|
23
|
-
name: e === "role" ? v.TEAM_ROLE : v.TEAM_MEMBER,
|
|
24
|
-
query: b.currentRoute.value.query
|
|
25
|
-
});
|
|
26
|
-
}
|
|
27
|
-
});
|
|
28
|
-
T();
|
|
29
|
-
const r = s(() => u.value.find((e) => e.value === a.value) || u.value[0]), u = s(() => [
|
|
30
|
-
{
|
|
31
|
-
label: o("team.title"),
|
|
32
|
-
subTitle: o("team.subtitle"),
|
|
33
|
-
value: "member",
|
|
34
|
-
createButtonLabel: o("team.actions.addMember"),
|
|
35
|
-
createButtonAction: () => {
|
|
36
|
-
var e;
|
|
37
|
-
(e = _.value) == null || e.create();
|
|
38
|
-
}
|
|
39
|
-
},
|
|
40
|
-
{
|
|
41
|
-
label: o("permissionSet.title"),
|
|
42
|
-
value: "role",
|
|
43
|
-
createButtonLabel: o("permissionSet.createButtonLabel"),
|
|
44
|
-
createButtonAction: () => {
|
|
45
|
-
var e;
|
|
46
|
-
(e = f.value) == null || e.create();
|
|
47
|
-
}
|
|
48
|
-
}
|
|
49
|
-
]);
|
|
50
|
-
return (e, n) => {
|
|
51
|
-
const L = i("FmSpacer"), V = i("FmTabs"), E = i("RouterView");
|
|
52
|
-
return p(), c(F, {
|
|
53
|
-
heading: r.value.label
|
|
54
|
-
}, {
|
|
55
|
-
"sub-heading": l(() => [
|
|
56
|
-
A(C(r.value.subTitle), 1)
|
|
57
|
-
]),
|
|
58
|
-
"append-heading": l(() => {
|
|
59
|
-
var t;
|
|
60
|
-
return [
|
|
61
|
-
d(L),
|
|
62
|
-
(t = r.value) != null && t.createButtonLabel ? (p(), c(x, {
|
|
63
|
-
key: 0,
|
|
64
|
-
icon: "add",
|
|
65
|
-
label: r.value.createButtonLabel,
|
|
66
|
-
onClick: n[0] || (n[0] = (m) => r.value.createButtonAction())
|
|
67
|
-
}, null, 8, ["label"])) : y("", !0)
|
|
68
|
-
];
|
|
69
|
-
}),
|
|
70
|
-
default: l(() => [
|
|
71
|
-
S("div", $, [
|
|
72
|
-
d(V, {
|
|
73
|
-
modelValue: a.value,
|
|
74
|
-
"onUpdate:modelValue": n[1] || (n[1] = (t) => a.value = t),
|
|
75
|
-
items: u.value
|
|
76
|
-
}, null, 8, ["modelValue", "items"]),
|
|
77
|
-
d(E, null, {
|
|
78
|
-
default: l(({ Component: t }) => [
|
|
79
|
-
(p(), c(g(t), {
|
|
80
|
-
ref: (m) => {
|
|
81
|
-
a.value === "member" && (_.value = m), a.value === "role" && (f.value = m);
|
|
82
|
-
}
|
|
83
|
-
}, null, 512))
|
|
84
|
-
]),
|
|
85
|
-
_: 1
|
|
86
|
-
})
|
|
87
|
-
])
|
|
88
|
-
]),
|
|
89
|
-
_: 1
|
|
90
|
-
}, 8, ["heading"]);
|
|
91
|
-
};
|
|
92
|
-
}
|
|
93
|
-
});
|
|
94
|
-
export {
|
|
95
|
-
Z as default
|
|
96
|
-
};
|
|
@@ -1,243 +0,0 @@
|
|
|
1
|
-
import { defineComponent as I, createElementBlock as u, openBlock as m, normalizeStyle as P, computed as x, resolveComponent as k, createElementVNode as r, createVNode as p, toDisplayString as _, Fragment as L, renderList as S, createCommentVNode as $, withKeys as F, withModifiers as V, normalizeClass as j } from "vue";
|
|
2
|
-
const ee = /* @__PURE__ */ I({
|
|
3
|
-
__name: "Skeleton",
|
|
4
|
-
props: {
|
|
5
|
-
width: { default: "160px" }
|
|
6
|
-
},
|
|
7
|
-
setup(e) {
|
|
8
|
-
return (a, t) => (m(), u("div", {
|
|
9
|
-
class: "h-16 animate-pulse rounded bg-fm-color-neutral-gray-200",
|
|
10
|
-
style: P({ width: e.width })
|
|
11
|
-
}, null, 4));
|
|
12
|
-
}
|
|
13
|
-
});
|
|
14
|
-
function B(e) {
|
|
15
|
-
return e.map((a) => a.restaurantId).filter(Boolean);
|
|
16
|
-
}
|
|
17
|
-
function w(e, a, t) {
|
|
18
|
-
const o = B(a);
|
|
19
|
-
return e.filter((l) => l.managable || l._id === t).map((l) => ({
|
|
20
|
-
label: `${l.profile.code ? `${l.profile.code} - ` : ""}${l.profile.name}`,
|
|
21
|
-
value: l._id,
|
|
22
|
-
disabled: o.includes(l._id) && l._id !== t
|
|
23
|
-
}));
|
|
24
|
-
}
|
|
25
|
-
function C(e, a, t, o) {
|
|
26
|
-
return a ? e.filter((l) => l.restaurants.some((s) => s.id == a)).map((l) => ({
|
|
27
|
-
label: l.name,
|
|
28
|
-
value: l._id,
|
|
29
|
-
disabled: !o.isRoleUsable(l, a) && l._id !== t
|
|
30
|
-
})) : [];
|
|
31
|
-
}
|
|
32
|
-
function K(e, a, t, o) {
|
|
33
|
-
var s, c;
|
|
34
|
-
const l = C(e, a, t, o);
|
|
35
|
-
return ((s = l.find((n) => n.value === t && !n.disabled)) == null ? void 0 : s.value) ?? ((c = l.find((n) => !n.disabled)) == null ? void 0 : c.value) ?? "";
|
|
36
|
-
}
|
|
37
|
-
function N(e, a) {
|
|
38
|
-
const t = B(a), o = e.some(
|
|
39
|
-
(s) => s.managable && !t.includes(s._id)
|
|
40
|
-
), l = a.every((s) => s.restaurantId && s.roleId);
|
|
41
|
-
return o && l;
|
|
42
|
-
}
|
|
43
|
-
function E(e, a, t, o) {
|
|
44
|
-
var s;
|
|
45
|
-
const l = ((s = e[a]) == null ? void 0 : s.restaurantId) ?? "";
|
|
46
|
-
return o.isRestaurantLocked(l) ? e : e.length === 1 ? [t()] : e.filter((c, n) => n !== a);
|
|
47
|
-
}
|
|
48
|
-
const M = { class: "rounded-lg border border-fm-color-neutral-gray-200 p-16 space-y-16" }, D = { class: "fm-typo-en-title-sm-600" }, G = { class: "space-y-16" }, q = { class: "grid grid-cols-[minmax(0,1fr)_minmax(0,1fr)_auto] gap-16" }, H = { class: "text-sm font-semibold text-fm-color-typo-primary" }, J = { class: "text-sm font-semibold text-fm-color-typo-primary" }, Q = { class: "flex justify-self-end" }, T = ["tabindex", "aria-disabled", "aria-label", "onClick", "onKeydown"], te = /* @__PURE__ */ I({
|
|
49
|
-
__name: "OutletRoleAssignment",
|
|
50
|
-
props: {
|
|
51
|
-
modelValue: {},
|
|
52
|
-
restaurants: {},
|
|
53
|
-
roles: {},
|
|
54
|
-
isRoleUsable: {},
|
|
55
|
-
isRestaurantLocked: { type: Function, default: () => !1 },
|
|
56
|
-
createRow: {},
|
|
57
|
-
title: {},
|
|
58
|
-
restaurantLabel: {},
|
|
59
|
-
roleLabel: {},
|
|
60
|
-
addLabel: {},
|
|
61
|
-
removeLabel: {}
|
|
62
|
-
},
|
|
63
|
-
emits: ["update:modelValue"],
|
|
64
|
-
setup(e, { emit: a }) {
|
|
65
|
-
const t = e, o = a, l = x(() => ({
|
|
66
|
-
isRoleUsable: t.isRoleUsable,
|
|
67
|
-
isRestaurantLocked: t.isRestaurantLocked
|
|
68
|
-
}));
|
|
69
|
-
function s(d) {
|
|
70
|
-
return w(t.restaurants, t.modelValue, d);
|
|
71
|
-
}
|
|
72
|
-
function c(d) {
|
|
73
|
-
return C(t.roles, d.restaurantId, d.roleId, l.value);
|
|
74
|
-
}
|
|
75
|
-
function n(d) {
|
|
76
|
-
return t.isRestaurantLocked(d);
|
|
77
|
-
}
|
|
78
|
-
function U(d, f) {
|
|
79
|
-
const b = t.modelValue[d], v = K(t.roles, f, b.roleId, l.value), h = [...t.modelValue];
|
|
80
|
-
h[d] = { ...b, restaurantId: f, roleId: v }, o("update:modelValue", h);
|
|
81
|
-
}
|
|
82
|
-
function z(d, f) {
|
|
83
|
-
const b = t.modelValue[d], v = [...t.modelValue];
|
|
84
|
-
v[d] = { ...b, roleId: f }, o("update:modelValue", v);
|
|
85
|
-
}
|
|
86
|
-
function O() {
|
|
87
|
-
o("update:modelValue", [...t.modelValue, t.createRow()]);
|
|
88
|
-
}
|
|
89
|
-
function R(d) {
|
|
90
|
-
o(
|
|
91
|
-
"update:modelValue",
|
|
92
|
-
E(t.modelValue, d, t.createRow, l.value)
|
|
93
|
-
);
|
|
94
|
-
}
|
|
95
|
-
const A = x(() => N(t.restaurants, t.modelValue));
|
|
96
|
-
return (d, f) => {
|
|
97
|
-
const b = k("FmSelect"), v = k("FmIcon"), h = k("FmButton");
|
|
98
|
-
return m(), u("div", M, [
|
|
99
|
-
r("div", D, _(e.title), 1),
|
|
100
|
-
r("div", G, [
|
|
101
|
-
r("div", q, [
|
|
102
|
-
r("div", H, _(e.restaurantLabel), 1),
|
|
103
|
-
r("div", J, _(e.roleLabel), 1),
|
|
104
|
-
f[0] || (f[0] = r("div", null, null, -1))
|
|
105
|
-
]),
|
|
106
|
-
(m(!0), u(L, null, S(e.modelValue, (i, y) => (m(), u("div", {
|
|
107
|
-
key: `${i.restaurantId || "new"}-${y}`,
|
|
108
|
-
class: "grid grid-cols-[minmax(0,1fr)_minmax(0,1fr)_auto] items-center gap-16"
|
|
109
|
-
}, [
|
|
110
|
-
p(b, {
|
|
111
|
-
class: "min-w-0",
|
|
112
|
-
"model-value": i.restaurantId,
|
|
113
|
-
items: s(i.restaurantId),
|
|
114
|
-
multiselect: !1,
|
|
115
|
-
searchable: "",
|
|
116
|
-
"search-debounce": 300,
|
|
117
|
-
placeholder: e.restaurantLabel,
|
|
118
|
-
disabled: n(i.restaurantId),
|
|
119
|
-
"onUpdate:modelValue": (g) => U(y, g)
|
|
120
|
-
}, null, 8, ["model-value", "items", "placeholder", "disabled", "onUpdate:modelValue"]),
|
|
121
|
-
p(b, {
|
|
122
|
-
class: "min-w-0",
|
|
123
|
-
"model-value": i.roleId,
|
|
124
|
-
items: c(i),
|
|
125
|
-
multiselect: !1,
|
|
126
|
-
placeholder: e.roleLabel,
|
|
127
|
-
disabled: !i.restaurantId || n(i.restaurantId),
|
|
128
|
-
"onUpdate:modelValue": (g) => z(y, g)
|
|
129
|
-
}, null, 8, ["model-value", "items", "placeholder", "disabled", "onUpdate:modelValue"]),
|
|
130
|
-
r("div", Q, [
|
|
131
|
-
e.modelValue.length > 1 ? (m(), u("div", {
|
|
132
|
-
key: 0,
|
|
133
|
-
role: "button",
|
|
134
|
-
tabindex: n(i.restaurantId) ? -1 : 0,
|
|
135
|
-
"aria-disabled": n(i.restaurantId),
|
|
136
|
-
class: j(["inline-flex h-40 w-40 shrink-0 items-center justify-center rounded-lg text-fm-color-neutral-gray-400 transition-colors hover:bg-fm-color-neutral-gray-100 focus:outline-none focus:ring-2 focus:ring-fm-color-primary disabled:cursor-not-allowed disabled:text-fm-color-neutral-gray-200 disabled:hover:bg-transparent", {
|
|
137
|
-
"cursor-pointer": !n(i.restaurantId),
|
|
138
|
-
"pointer-events-none": n(i.restaurantId)
|
|
139
|
-
}]),
|
|
140
|
-
"aria-label": e.removeLabel,
|
|
141
|
-
onClick: V((g) => R(y), ["stop"]),
|
|
142
|
-
onKeydown: [
|
|
143
|
-
F(V((g) => R(y), ["prevent", "stop"]), ["enter"]),
|
|
144
|
-
F(V((g) => R(y), ["prevent", "stop"]), ["space"])
|
|
145
|
-
]
|
|
146
|
-
}, [
|
|
147
|
-
p(v, {
|
|
148
|
-
name: "delete",
|
|
149
|
-
size: "md"
|
|
150
|
-
})
|
|
151
|
-
], 42, T)) : $("", !0)
|
|
152
|
-
])
|
|
153
|
-
]))), 128))
|
|
154
|
-
]),
|
|
155
|
-
p(h, {
|
|
156
|
-
type: "button",
|
|
157
|
-
variant: "secondary",
|
|
158
|
-
"text-color": "primary",
|
|
159
|
-
"border-color": "primary",
|
|
160
|
-
"prepend-icon": "add",
|
|
161
|
-
label: e.addLabel,
|
|
162
|
-
size: "md",
|
|
163
|
-
disabled: !A.value,
|
|
164
|
-
onClick: V(O, ["stop"])
|
|
165
|
-
}, null, 8, ["label", "disabled"])
|
|
166
|
-
]);
|
|
167
|
-
};
|
|
168
|
-
}
|
|
169
|
-
}), W = {
|
|
170
|
-
key: 0,
|
|
171
|
-
class: "fm-typo-body-sm-400 text-fm-color-typo-secondary"
|
|
172
|
-
}, le = /* @__PURE__ */ I({
|
|
173
|
-
__name: "PasscodeGenerateButton",
|
|
174
|
-
props: {
|
|
175
|
-
label: {},
|
|
176
|
-
hint: {},
|
|
177
|
-
disabled: { type: Boolean, default: !1 },
|
|
178
|
-
loading: { type: Boolean, default: !1 }
|
|
179
|
-
},
|
|
180
|
-
emits: ["click"],
|
|
181
|
-
setup(e) {
|
|
182
|
-
return (a, t) => {
|
|
183
|
-
const o = k("FmButton");
|
|
184
|
-
return m(), u(L, null, [
|
|
185
|
-
p(o, {
|
|
186
|
-
variant: "secondary",
|
|
187
|
-
"text-color": "primary",
|
|
188
|
-
"border-color": "primary",
|
|
189
|
-
label: e.label,
|
|
190
|
-
size: "md",
|
|
191
|
-
loading: e.loading,
|
|
192
|
-
disabled: e.disabled,
|
|
193
|
-
onClick: t[0] || (t[0] = (l) => a.$emit("click"))
|
|
194
|
-
}, null, 8, ["label", "loading", "disabled"]),
|
|
195
|
-
e.disabled ? (m(), u("div", W, _(e.hint), 1)) : $("", !0)
|
|
196
|
-
], 64);
|
|
197
|
-
};
|
|
198
|
-
}
|
|
199
|
-
}), X = { class: "flex items-center gap-8" }, Y = ["aria-label"], ae = /* @__PURE__ */ I({
|
|
200
|
-
__name: "PasscodePinField",
|
|
201
|
-
props: {
|
|
202
|
-
modelValue: {},
|
|
203
|
-
masked: { type: Boolean },
|
|
204
|
-
length: { default: 4 },
|
|
205
|
-
toggleLabel: {}
|
|
206
|
-
},
|
|
207
|
-
emits: ["update:modelValue", "update:masked", "complete"],
|
|
208
|
-
setup(e, { emit: a }) {
|
|
209
|
-
const t = a;
|
|
210
|
-
return (o, l) => {
|
|
211
|
-
const s = k("FmPinField"), c = k("FmIcon");
|
|
212
|
-
return m(), u("div", X, [
|
|
213
|
-
p(s, {
|
|
214
|
-
"model-value": e.modelValue,
|
|
215
|
-
length: e.length,
|
|
216
|
-
masked: e.masked,
|
|
217
|
-
"onUpdate:modelValue": l[0] || (l[0] = (n) => t("update:modelValue", n)),
|
|
218
|
-
onComplete: l[1] || (l[1] = (n) => t("complete", n)),
|
|
219
|
-
onFocus: l[2] || (l[2] = (n) => t("update:masked", !1))
|
|
220
|
-
}, null, 8, ["model-value", "length", "masked"]),
|
|
221
|
-
r("button", {
|
|
222
|
-
type: "button",
|
|
223
|
-
class: "flex items-center justify-center rounded-full p-4 hover:bg-fm-color-neutral-gray-100",
|
|
224
|
-
"aria-label": e.toggleLabel,
|
|
225
|
-
onClick: l[3] || (l[3] = (n) => t("update:masked", !e.masked))
|
|
226
|
-
}, [
|
|
227
|
-
p(c, {
|
|
228
|
-
name: e.masked ? "visibility" : "visibility_off",
|
|
229
|
-
size: "md",
|
|
230
|
-
class: "text-fm-color-neutral-gray-300"
|
|
231
|
-
}, null, 8, ["name"])
|
|
232
|
-
], 8, Y)
|
|
233
|
-
]);
|
|
234
|
-
};
|
|
235
|
-
}
|
|
236
|
-
});
|
|
237
|
-
export {
|
|
238
|
-
ae as _,
|
|
239
|
-
le as a,
|
|
240
|
-
te as b,
|
|
241
|
-
ee as c,
|
|
242
|
-
B as s
|
|
243
|
-
};
|