@feedmepos/mf-hrm-portal 2.3.2-dev.3 → 2.3.2-dev.5

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 (99) hide show
  1. package/dist/{ApprovalCodeList-D3U4nvlF.js → ApprovalCodeList-NYJNwdDZ.js} +14 -15
  2. package/dist/{AuditLogList-qGCW7tf0.js → AuditLogList-Ghn4aBnn.js} +12 -12
  3. package/dist/ConditionBuilderForm.vue_vue_type_script_setup_true_lang-BxZ9t3MZ.js +459 -0
  4. package/dist/EmployeeList-jc8LTznV.js +896 -0
  5. package/dist/FormSection.vue_vue_type_script_setup_true_lang-DLgm6oCz.js +90 -0
  6. package/dist/{GrantUserList-C71pal0N.js → GrantUserList-BtPTpypR.js} +15 -16
  7. package/dist/Main-BF8hlYeV.js +101 -0
  8. package/dist/{Main-CCdTWngg.js → Main-BizCV-_x.js} +11 -11
  9. package/dist/{Main-BWJPyEU1.js → Main-McMZU_cR.js} +5 -5
  10. package/dist/MyPosProfile-BjeCnBvL.js +290 -0
  11. package/dist/PasscodePinField.vue_vue_type_script_setup_true_lang-TXPEqa46.js +126 -0
  12. package/dist/{PermissionSetList-BS-oBunI.js → PermissionSetList-NWLoqFHC.js} +45 -46
  13. package/dist/PortalPermissionEditor.vue_vue_type_script_setup_true_lang-UPcpeVD5.js +4243 -0
  14. package/dist/PortalUserSearcher.vue_vue_type_style_index_0_scoped_827dfd60_lang-nwpdr7T7.js +1831 -0
  15. package/dist/RoleForm.vue_vue_type_script_setup_true_lang-eT-dPsOX.js +547 -0
  16. package/dist/RoleList-CIfN10zu.js +274 -0
  17. package/dist/{ScheduleAddPositionModal.vue_vue_type_script_setup_true_lang-BXihM4sl.js → ScheduleAddPositionModal.vue_vue_type_script_setup_true_lang-CMTXC_UR.js} +1 -1
  18. package/dist/{ScheduleGeneralPage-DpNvWNGs.js → ScheduleGeneralPage-8vS1DUrk.js} +2 -2
  19. package/dist/{ScheduleModal.vue_vue_type_script_setup_true_lang-DIYLOF9N.js → ScheduleModal.vue_vue_type_script_setup_true_lang-Br4AcF1g.js} +187 -186
  20. package/dist/{SchedulePage-QW-cYvu2.js → SchedulePage-DqbE1PoV.js} +13 -13
  21. package/dist/{SchedulePositionPage-BtFfVo2N.js → SchedulePositionPage-DUnkT0Tp.js} +3 -3
  22. package/dist/{SelectFilter-BXeVKgHN.js → SelectFilter-voMj4_j1.js} +1 -1
  23. package/dist/TeamMemberList-DoEOWNDC.js +2086 -0
  24. package/dist/{TimesheetList-D-bESKe5.js → TimesheetList-BBv2SV96.js} +9 -9
  25. package/dist/{TimesheetList.vue_vue_type_style_index_0_scoped_63294af2_lang-D0zAVqCa.js → TimesheetList.vue_vue_type_style_index_0_scoped_63294af2_lang-h-bWBmpI.js} +3 -3
  26. package/dist/{app-D-MUq9Ab.js → app-CDCO87ji.js} +6389 -3455
  27. package/dist/app.js +3 -3
  28. package/dist/{approval-code-BXUiojPH.js → approval-code-CLE9s5dL.js} +1 -1
  29. package/dist/{dayjs.min-BZ1pM-6M.js → dayjs.min-BW6-XAUB.js} +21 -21
  30. package/dist/{employee-HQEU8fjb.js → employee-BaCU-FLC.js} +48 -47
  31. package/dist/{grant-user-CBJ3gEgW.js → grant-user-DMtilLJx.js} +1 -1
  32. package/dist/{iteration-ogxW2-Tv.js → iteration-CPLGGFBb.js} +1 -1
  33. package/dist/{lodash-Def4gaas.js → lodash-snXoiw60.js} +1 -1
  34. package/dist/member-grant-CJyOr-q0.js +55 -0
  35. package/dist/restaurant-BMlLIUqe.js +51 -0
  36. package/dist/{role-JDoDFVd9.js → role-DqcBOWHL.js} +5 -4
  37. package/dist/{rule-DPtqlnz-.js → rule-B5YNhGJ4.js} +105 -100
  38. package/dist/src/api/my-pos-profile/index.d.ts +3 -0
  39. package/dist/src/api/sso-provider/index.d.ts +5 -0
  40. package/dist/src/api/staff-invite/index.d.ts +16 -0
  41. package/dist/src/components/CollapsibleWrapper.vue.d.ts +11 -3
  42. package/dist/src/components/form/SegmentedTabs.vue.d.ts +23 -0
  43. package/dist/src/composables/useMenuAccess.d.ts +56 -0
  44. package/dist/src/composables/useSsoProviders.d.ts +19 -0
  45. package/dist/src/composables/useStaffInviteProviders.d.ts +8 -0
  46. package/dist/src/helpers/member-grant.d.ts +36 -0
  47. package/dist/src/helpers/my-pos-profile.d.ts +37 -0
  48. package/dist/src/helpers/pos-assignment-rows.d.ts +28 -0
  49. package/dist/src/helpers/staff-invite.d.ts +54 -0
  50. package/dist/src/helpers/string.d.ts +10 -1
  51. package/dist/src/router/menu-access-guard.d.ts +17 -0
  52. package/dist/src/router/shared.d.ts +3 -1
  53. package/dist/src/stores/restaurant.d.ts +7 -7
  54. package/dist/src/stores/team.d.ts +30 -0
  55. package/dist/src/types/my-pos-profile.d.ts +24 -0
  56. package/dist/src/types/sso-provider.d.ts +10 -0
  57. package/dist/src/types/staff-invite.d.ts +100 -0
  58. package/dist/src/types/team.d.ts +17 -1
  59. package/dist/src/views/hr/locales/index.d.ts +20 -0
  60. package/dist/src/views/hr/role/RoleForm.vue.d.ts +29 -2
  61. package/dist/src/views/my-pos-profile/MyPosProfile.vue.d.ts +2 -0
  62. package/dist/src/views/my-pos-profile/components/PasscodeChangedDialog.vue.d.ts +4 -0
  63. package/dist/src/views/my-pos-profile/locales/index.d.ts +196 -0
  64. package/dist/src/views/scheduling/composables/useScheduleOnboardingAvailability.d.ts +1 -1
  65. package/dist/src/views/scheduling/composables/useScheduleOnboardingWizard.d.ts +1 -1
  66. package/dist/src/views/scheduling/composables/useScheduleShiftDraft.d.ts +1 -1
  67. package/dist/src/views/scheduling/composables/useScheduleShiftPopover.d.ts +1 -1
  68. package/dist/src/views/team/components/BasePermission.vue.d.ts +11 -0
  69. package/dist/src/views/team/components/ConditionPermission.vue.d.ts +11 -0
  70. package/dist/src/views/team/components/MemberGrantFields.vue.d.ts +51 -0
  71. package/dist/src/views/team/{member/MemberInfo.vue.d.ts → components/MemberStatusBadge.vue.d.ts} +2 -2
  72. package/dist/src/views/team/components/PortalPermissionEditor.vue.d.ts +21 -0
  73. package/dist/src/views/team/components/PosAssignmentRows.vue.d.ts +44 -0
  74. package/dist/src/views/team/components/PosRolePermission.vue.d.ts +11 -0
  75. package/dist/src/views/team/locales/index.d.ts +716 -0
  76. package/dist/src/views/team/member/AddMemberForm.vue.d.ts +48 -3
  77. package/dist/src/views/team/member/ExistingMemberNotice.vue.d.ts +11 -0
  78. package/dist/src/views/team/member/MemberDetailsCard.vue.d.ts +35 -0
  79. package/dist/src/views/team/member/MemberHeaderCard.vue.d.ts +19 -0
  80. package/dist/src/views/team/member/TeamMemberList.vue.d.ts +1 -0
  81. package/dist/string-DZQ1uNjn.js +22 -0
  82. package/dist/style.css +1 -1
  83. package/dist/tsconfig.app.tsbuildinfo +1 -1
  84. package/dist/{useAppStore-DZCdxlCd.js → useAppStore-pKAGQL6q.js} +1 -1
  85. package/dist/{useLoading-Nygx2zn8.js → useLoading-D67DIqfk.js} +1 -1
  86. package/dist/{useReportPermissions-CxV7Dz1B.js → useReportPermissions-CfgnE0NY.js} +5 -5
  87. package/package.json +1 -1
  88. package/dist/ConditionBuilderForm.vue_vue_type_script_setup_true_lang-B0VcRYUg.js +0 -438
  89. package/dist/EmployeeList-Bd73xDCX.js +0 -776
  90. package/dist/FormItem.vue_vue_type_script_setup_true_lang-cLEnrtC6.js +0 -45
  91. package/dist/FormSection.vue_vue_type_script_setup_true_lang-DknXTYiK.js +0 -49
  92. package/dist/Main-DGf0bQvy.js +0 -96
  93. package/dist/PasscodePinField.vue_vue_type_script_setup_true_lang-CqG0v0Sz.js +0 -243
  94. package/dist/PortalPermissionEditor.vue_vue_type_script_setup_true_lang-CkOAT-oX.js +0 -4167
  95. package/dist/PortalUserSearcher.vue_vue_type_style_index_0_scoped_827dfd60_lang-DQcgZ0nF.js +0 -35
  96. package/dist/RoleList-B_7UnVNb.js +0 -740
  97. package/dist/TeamMemberList-DoisBYnk.js +0 -1154
  98. package/dist/restaurant-D2mfKHaH.js +0 -1880
  99. 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
- };
@@ -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
- };