@feedmepos/mf-hrm-portal 2.0.3-dev → 2.0.3-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.
Files changed (130) hide show
  1. package/dist/AuditLogList-nj1Wv5Pm.js +492 -0
  2. package/dist/{EmployeeList-D5IfP20e.js → EmployeeList-tJ_8fXvn.js} +6 -6
  3. package/dist/{Main-mvm27j-a.js → Main-C5mi0cBN.js} +8 -8
  4. package/dist/{Main-hADhiwrp.js → Main-CSpXz9-V.js} +5 -5
  5. package/dist/PermissionSetList-BneQTgIB.js +337 -0
  6. package/dist/PortalPermissionEditor.vue_vue_type_script_setup_true_lang-KKEXB9vy.js +3360 -0
  7. package/dist/{RoleList-C0gK0AMO.js → RoleList-RE9X2cqV.js} +6 -6
  8. package/dist/{SelectFilter-NbXrJ4iH.js → SelectFilter-DUj7GBtT.js} +93 -89
  9. package/dist/TeamMemberList-NfQcfSNW.js +988 -0
  10. package/dist/{TimesheetList-C3jduNcK.js → TimesheetList-DiXTM5OX.js} +6 -6
  11. package/dist/{app-CXscIHdd.js → app-CAP5yR_0.js} +762 -809
  12. package/dist/app.js +2 -2
  13. package/dist/{dayjs.min-Bc0i83P9.js → dayjs.min-CrMzpHrr.js} +1 -1
  14. package/dist/{employee-Se3Yks-o.js → employee-DOdgA898.js} +3 -3
  15. package/dist/{index-D35d9iES.js → index-BlcsFvi0.js} +1 -1
  16. package/dist/{index-DOp84DcN.js → index-Dof0lO4V.js} +1878 -1804
  17. package/dist/{lodash-DuiYjdnV.js → lodash-DGVUsswA.js} +1 -1
  18. package/dist/{api → src/api}/permission-assignment/index.d.ts +3 -0
  19. package/dist/{api → src/api}/report-query/index.d.ts +1 -0
  20. package/dist/{components → src/components}/form/SelectFilter.vue.d.ts +2 -0
  21. package/dist/{helpers → src/helpers}/permission-set.d.ts +26 -4
  22. package/dist/src/helpers/permission-set.test.d.ts +1 -0
  23. package/dist/{types → src/types}/report-query.d.ts +1 -0
  24. package/dist/{team-CT4SDg-h.js → team-BUqVA-9z.js} +1 -1
  25. package/dist/{timesheet-D0SI4Zli.js → timesheet-CBKxY8ci.js} +2 -2
  26. package/dist/tsconfig.app.tsbuildinfo +1 -1
  27. package/dist/{useAppStore-TCd8aSgi.js → useAppStore-CbeE2lJk.js} +1 -1
  28. package/dist/{useLoading-CwO9YfJb.js → useLoading-DW9R2n6z.js} +1 -1
  29. package/dist/{useReportPermissions-CmtxmL3h.js → useReportPermissions-DIoCe06r.js} +2 -2
  30. package/package.json +3 -3
  31. package/dist/AuditLogList-wzVOem7J.js +0 -474
  32. package/dist/PermissionSetList-DgaTwV_y.js +0 -327
  33. package/dist/PortalPermissionEditor.vue_vue_type_script_setup_true_lang-BzA__vQJ.js +0 -3287
  34. package/dist/TeamMemberList-BVAbjvKZ.js +0 -979
  35. /package/dist/{App.vue.d.ts → src/App.vue.d.ts} +0 -0
  36. /package/dist/{Entry.vue.d.ts → src/Entry.vue.d.ts} +0 -0
  37. /package/dist/{api → src/api}/audit-log/index.d.ts +0 -0
  38. /package/dist/{api → src/api}/employee/index.d.ts +0 -0
  39. /package/dist/{api → src/api}/index.d.ts +0 -0
  40. /package/dist/{api → src/api}/inventory/index.d.ts +0 -0
  41. /package/dist/{api → src/api}/permission-set/index.d.ts +0 -0
  42. /package/dist/{api → src/api}/public-setting/index.d.ts +0 -0
  43. /package/dist/{api → src/api}/role/index.d.ts +0 -0
  44. /package/dist/{api → src/api}/team/index.d.ts +0 -0
  45. /package/dist/{api → src/api}/timesheet/index.d.ts +0 -0
  46. /package/dist/{api → src/api}/user/index.d.ts +0 -0
  47. /package/dist/{app.d.ts → src/app.d.ts} +0 -0
  48. /package/dist/{components → src/components}/AppForm.vue.d.ts +0 -0
  49. /package/dist/{components → src/components}/CheckboxInput.vue.d.ts +0 -0
  50. /package/dist/{components → src/components}/CollapsibleWrapper.vue.d.ts +0 -0
  51. /package/dist/{components → src/components}/Navigator.vue.d.ts +0 -0
  52. /package/dist/{components → src/components}/Splash.vue.d.ts +0 -0
  53. /package/dist/{components → src/components}/button/ResponsiveFabButton.vue.d.ts +0 -0
  54. /package/dist/{components → src/components}/layout/FormColumn.vue.d.ts +0 -0
  55. /package/dist/{components → src/components}/layout/FormItem.vue.d.ts +0 -0
  56. /package/dist/{components → src/components}/layout/FormSection.vue.d.ts +0 -0
  57. /package/dist/{components → src/components}/layout/FullWrapper.vue.d.ts +0 -0
  58. /package/dist/{components → src/components}/layout/HorizontalSplitter.vue.d.ts +0 -0
  59. /package/dist/{components → src/components}/layout/LottieAnimation.vue.d.ts +0 -0
  60. /package/dist/{components → src/components}/layout/PageLayout.vue.d.ts +0 -0
  61. /package/dist/{components → src/components}/loading/AppLoading.vue.d.ts +0 -0
  62. /package/dist/{components → src/components}/loading/PageLoading.vue.d.ts +0 -0
  63. /package/dist/{components → src/components}/loading/index.d.ts +0 -0
  64. /package/dist/{components → src/components}/menu/BottomSheetMenu.vue.d.ts +0 -0
  65. /package/dist/{components → src/components}/menu/BottomSheetMenuItem.vue.d.ts +0 -0
  66. /package/dist/{components → src/components}/menu/ResponsiveContextMenu.vue.d.ts +0 -0
  67. /package/dist/{components → src/components}/table/EmptyDataTemplate/Icon.vue.d.ts +0 -0
  68. /package/dist/{components → src/components}/table/EmptyDataTemplate/index.d.ts +0 -0
  69. /package/dist/{components → src/components}/table/EmptyDataTemplate/index.vue.d.ts +0 -0
  70. /package/dist/{composables → src/composables}/useAppStore.d.ts +0 -0
  71. /package/dist/{composables → src/composables}/useCustomReportPermissions.d.ts +0 -0
  72. /package/dist/{composables → src/composables}/useDateRange.d.ts +0 -0
  73. /package/dist/{composables → src/composables}/useDiscardConfirm.d.ts +0 -0
  74. /package/dist/{composables → src/composables}/useElementPosition.d.ts +0 -0
  75. /package/dist/{composables → src/composables}/useFilterSelector.d.ts +0 -0
  76. /package/dist/{composables → src/composables}/useLoading.d.ts +0 -0
  77. /package/dist/{composables → src/composables}/useMessage.d.ts +0 -0
  78. /package/dist/{composables → src/composables}/useReportPermissions.d.ts +0 -0
  79. /package/dist/{composables → src/composables}/useRestaurantMap.d.ts +0 -0
  80. /package/dist/{composables → src/composables}/useSearch.d.ts +0 -0
  81. /package/dist/{composables → src/composables}/useSheet.d.ts +0 -0
  82. /package/dist/{helpers → src/helpers}/component.d.ts +0 -0
  83. /package/dist/{helpers → src/helpers}/iteration.d.ts +0 -0
  84. /package/dist/{helpers → src/helpers}/object.d.ts +0 -0
  85. /package/dist/{helpers → src/helpers}/portal-user.d.ts +0 -0
  86. /package/dist/{helpers → src/helpers}/rule.d.ts +0 -0
  87. /package/dist/{helpers → src/helpers}/string.d.ts +0 -0
  88. /package/dist/{helpers → src/helpers}/utils.d.ts +0 -0
  89. /package/dist/{main.d.ts → src/main.d.ts} +0 -0
  90. /package/dist/{router → src/router}/index.d.ts +0 -0
  91. /package/dist/{router → src/router}/shared.d.ts +0 -0
  92. /package/dist/{stores → src/stores}/employee.d.ts +0 -0
  93. /package/dist/{stores → src/stores}/permission-assignment.d.ts +0 -0
  94. /package/dist/{stores → src/stores}/permission-set.d.ts +0 -0
  95. /package/dist/{stores → src/stores}/role.d.ts +0 -0
  96. /package/dist/{stores → src/stores}/team.d.ts +0 -0
  97. /package/dist/{stores → src/stores}/timesheet.d.ts +0 -0
  98. /package/dist/{types → src/types}/audit-log.d.ts +0 -0
  99. /package/dist/{types → src/types}/employee.d.ts +0 -0
  100. /package/dist/{types → src/types}/permission-assignment.d.ts +0 -0
  101. /package/dist/{types → src/types}/permission-set.d.ts +0 -0
  102. /package/dist/{types → src/types}/restaurant.d.ts +0 -0
  103. /package/dist/{types → src/types}/role.d.ts +0 -0
  104. /package/dist/{types → src/types}/team.d.ts +0 -0
  105. /package/dist/{types → src/types}/timesheet.d.ts +0 -0
  106. /package/dist/{views → src/views}/audit-log/AuditLogList.vue.d.ts +0 -0
  107. /package/dist/{views → src/views}/audit-log/locales/index.d.ts +0 -0
  108. /package/dist/{views → src/views}/hr/Main.vue.d.ts +0 -0
  109. /package/dist/{views → src/views}/hr/employee/Employee.vue.d.ts +0 -0
  110. /package/dist/{views → src/views}/hr/employee/EmployeeForm.vue.d.ts +0 -0
  111. /package/dist/{views → src/views}/hr/employee/EmployeeList.vue.d.ts +0 -0
  112. /package/dist/{views → src/views}/hr/locales/index.d.ts +0 -0
  113. /package/dist/{views → src/views}/hr/role/RoleForm.vue.d.ts +0 -0
  114. /package/dist/{views → src/views}/hr/role/RoleList.vue.d.ts +0 -0
  115. /package/dist/{views → src/views}/hr/timesheet/TimesheetList.vue.d.ts +0 -0
  116. /package/dist/{views → src/views}/team/Main.vue.d.ts +0 -0
  117. /package/dist/{views → src/views}/team/components/BasePermission.vue.d.ts +0 -0
  118. /package/dist/{views → src/views}/team/components/ConditionPermission.vue.d.ts +0 -0
  119. /package/dist/{views → src/views}/team/components/InheritPermissionTooltip.vue.d.ts +0 -0
  120. /package/dist/{views → src/views}/team/components/PermissionWithTooltip.vue.d.ts +0 -0
  121. /package/dist/{views → src/views}/team/components/PortalPermissionEditor.vue.d.ts +0 -0
  122. /package/dist/{views → src/views}/team/components/PortalUserSearcher.vue.d.ts +0 -0
  123. /package/dist/{views → src/views}/team/components/PosRolePermission.vue.d.ts +0 -0
  124. /package/dist/{views → src/views}/team/locales/index.d.ts +0 -0
  125. /package/dist/{views → src/views}/team/member/AddMemberForm.vue.d.ts +0 -0
  126. /package/dist/{views → src/views}/team/member/MemberInfo.vue.d.ts +0 -0
  127. /package/dist/{views → src/views}/team/member/TeamMemberList.vue.d.ts +0 -0
  128. /package/dist/{views → src/views}/team/member/TeamMemberMasterUser.vue.d.ts +0 -0
  129. /package/dist/{views → src/views}/team/permission-set/PermissionSetForm.vue.d.ts +0 -0
  130. /package/dist/{views → src/views}/team/permission-set/PermissionSetList.vue.d.ts +0 -0
@@ -1,979 +0,0 @@
1
- import { defineComponent as le, ref as F, resolveComponent as g, createBlock as I, openBlock as f, withCtx as A, createElementVNode as i, renderSlot as be, createCommentVNode as G, withModifiers as Pe, nextTick as ke, createElementBlock as T, normalizeClass as $e, createTextVNode as Re, toDisplayString as N, computed as k, Fragment as ue, renderList as ye, createVNode as c, unref as r, watch as Ie, isRef as he, createSlots as je } from "vue";
2
- import { useI18n as de, useCoreStore as ce, baseClientInstance as ge, RestaurantSelector as Ve } from "@feedmepos/mf-common";
3
- import { useBreakpoints as Ce, useSnackbar as Me, useDialog as Le, components as Fe } from "@feedmepos/ui-library";
4
- import { _ as Ee, S as xe } from "./SelectFilter-NbXrJ4iH.js";
5
- import { s as Te, U as ze, _ as qe } from "./app-CXscIHdd.js";
6
- import { _ as Ke } from "./index.vue_vue_type_script_setup_true_lang-Vc5ARO29.js";
7
- import { u as Ne } from "./useSearch-B6WK1LBB.js";
8
- import { u as Ge } from "./useLoading-CwO9YfJb.js";
9
- import { g as Se, l as Be, u as De, m as We, n as Je, o as pe, q as Oe, p as Qe, v as Ue, w as Xe, x as Ye, y as Ze, z as He, t as fe } from "./index-DOp84DcN.js";
10
- import "./index-D35d9iES.js";
11
- import { u as Ae } from "./useAppStore-TCd8aSgi.js";
12
- /* empty css */
13
- import { _ as es, a as ss } from "./PortalPermissionEditor.vue_vue_type_script_setup_true_lang-BzA__vQJ.js";
14
- import { u as ts } from "./team-CT4SDg-h.js";
15
- const os = /* @__PURE__ */ le({
16
- __name: "BottomSheetMenu",
17
- setup(t) {
18
- const p = F(!1);
19
- async function l() {
20
- await ke(), p.value = !p.value;
21
- }
22
- return (s, m) => {
23
- const B = g("FmButton"), M = g("FmBottomSheet");
24
- return f(), I(M, {
25
- modelValue: p.value,
26
- "onUpdate:modelValue": m[1] || (m[1] = (h) => p.value = h),
27
- "dismiss-away": "",
28
- "no-header": "",
29
- "z-index": 110
30
- }, {
31
- "bottom-sheet-button": A(() => [
32
- s.$slots.button ? G("", !0) : (f(), I(B, {
33
- key: 0,
34
- icon: "more_vert",
35
- variant: "tertiary",
36
- onClick: Pe(l, ["stop"])
37
- })),
38
- be(s.$slots, "button")
39
- ]),
40
- default: A(() => [
41
- i("div", {
42
- onClick: m[0] || (m[0] = (h) => p.value = !1)
43
- }, [
44
- be(s.$slots, "default")
45
- ])
46
- ]),
47
- _: 3
48
- }, 8, ["modelValue"]);
49
- };
50
- }
51
- }), as = { class: "py-8 px-12 hover:bg-fm-color-neutral-gray-100" }, ls = /* @__PURE__ */ le({
52
- __name: "BottomSheetMenuItem",
53
- props: {
54
- label: {},
55
- icon: {},
56
- disabled: { type: Boolean },
57
- itemClass: {}
58
- },
59
- setup(t) {
60
- const p = t;
61
- return (l, s) => {
62
- const m = g("FmIcon");
63
- return f(), T("div", as, [
64
- l.$slots.content ? G("", !0) : (f(), T("div", {
65
- key: 0,
66
- class: $e(["flex items-center", {
67
- "text-fm-color-typo-disabled": p.disabled,
68
- "cursor-pointer": !p.disabled,
69
- "cursor-not-allowed": p.disabled,
70
- [p.itemClass || ""]: p.itemClass && !p.disabled
71
- }])
72
- }, [
73
- t.icon ? (f(), I(m, {
74
- key: 0,
75
- name: t.icon
76
- }, null, 8, ["name"])) : G("", !0),
77
- Re(" " + N(t.label), 1)
78
- ], 2)),
79
- be(l.$slots, "content")
80
- ]);
81
- };
82
- }
83
- }), ns = /* @__PURE__ */ le({
84
- __name: "ResponsiveContextMenu",
85
- props: {
86
- items: {}
87
- },
88
- setup(t) {
89
- const p = Ce(), l = k(() => p.breakpoints.value.xs);
90
- return (s, m) => {
91
- const B = g("FmButton"), M = g("FmMenuItem"), h = g("FmMenu");
92
- return l.value ? (f(), I(os, { key: 0 }, {
93
- default: A(() => [
94
- (f(!0), T(ue, null, ye(t.items, ({ icon: y, label: d, disabled: S, itemClass: U, onClick: D }) => (f(), I(ls, {
95
- key: d,
96
- icon: y,
97
- label: d,
98
- disabled: S,
99
- itemClass: U,
100
- onClick: () => {
101
- !S && (D == null || D());
102
- }
103
- }, null, 8, ["icon", "label", "disabled", "itemClass", "onClick"]))), 128))
104
- ]),
105
- _: 1
106
- })) : (f(), I(h, {
107
- key: 1,
108
- "stop-click-propagation": "",
109
- shift: !0
110
- }, {
111
- "menu-button": A(() => [
112
- c(B, {
113
- type: "button",
114
- variant: "tertiary",
115
- icon: "more_vert",
116
- "text-color": "neutral-gray-400",
117
- size: "md"
118
- })
119
- ]),
120
- default: A(() => [
121
- (f(!0), T(ue, null, ye(t.items, ({ label: y, disabled: d, itemClass: S, onClick: U }) => (f(), I(M, {
122
- key: y,
123
- disabled: d,
124
- label: y,
125
- onClick: () => {
126
- !d && (U == null || U());
127
- }
128
- }, {
129
- label: A(() => [
130
- i("span", {
131
- class: $e(d ? "text-fm-color-typo-disabled" : S)
132
- }, N(y), 3)
133
- ]),
134
- _: 2
135
- }, 1032, ["disabled", "label", "onClick"]))), 128))
136
- ]),
137
- _: 1
138
- }));
139
- };
140
- }
141
- });
142
- var me = /* @__PURE__ */ ((t) => (t.Update = "Update", t.Remove = "Remove", t))(me || {});
143
- const rs = { class: "w-full flex flex-col gap-16" }, is = { class: "flex items-center gap-16" }, ms = { class: "space-y-4 min-w-0 flex-1" }, us = { class: "text-fm-color-typo-secondary fm-typo-en-body-lg-400" }, cs = { class: "fm-typo-en-body-lg-600 truncate" }, ds = { class: "w-full flex gap-16 items-center" }, ps = { class: "flex-1 flex flex-col gap-4 min-w-0" }, fs = { class: "text-fm-color-typo-secondary fm-typo-en-body-lg-400" }, vs = { class: "fm-typo-en-body-lg-600 truncate" }, bs = { class: "flex-1 flex flex-col gap-4 min-w-0" }, ys = { class: "text-fm-color-typo-secondary fm-typo-en-body-lg-400" }, hs = { class: "fm-typo-en-body-lg-600 truncate" }, _s = /* @__PURE__ */ le({
144
- __name: "MemberInfo",
145
- props: {
146
- data: {}
147
- },
148
- setup(t) {
149
- const { t: p } = de();
150
- return (l, s) => {
151
- const m = g("FmAvatar");
152
- return f(), T("div", rs, [
153
- i("div", is, [
154
- c(m, {
155
- size: "xl",
156
- initials: t.data.name
157
- }, null, 8, ["initials"]),
158
- i("div", ms, [
159
- i("p", us, N(r(p)("team.memberForm.memberInfo.memberName")), 1),
160
- i("p", cs, N(t.data.name || "--"), 1)
161
- ])
162
- ]),
163
- i("div", ds, [
164
- i("div", ps, [
165
- i("p", fs, N(r(p)("team.memberForm.memberInfo.mobileNumber")), 1),
166
- i("p", vs, N(t.data.phoneNumber || "--"), 1)
167
- ]),
168
- i("div", bs, [
169
- i("p", ys, N(r(p)("team.memberForm.memberInfo.emailAddress")), 1),
170
- i("p", hs, N(t.data.email || "--"), 1)
171
- ])
172
- ])
173
- ]);
174
- };
175
- }
176
- }), we = {
177
- async readPermissionUserByPhoneNo(t) {
178
- var l;
179
- const { currentBusiness: p } = ce();
180
- return Se(
181
- await ge("/").get(`/user/b/${(l = p.value) == null ? void 0 : l._id}/phone/${t}`)
182
- );
183
- },
184
- async readPermissionUserByEmail(t) {
185
- var l;
186
- const { currentBusiness: p } = ce();
187
- return Se(
188
- await ge("/").get(`/user/b/${(l = p.value) == null ? void 0 : l._id}/email/${t}`)
189
- );
190
- }
191
- }, gs = { class: "flex flex-col gap-24 w-full" }, Vs = {
192
- key: 0,
193
- class: "flex flex-col gap-8"
194
- }, Fs = { class: "user-info-icon user-info-icon--lg" }, xs = { class: "flex-1 overflow-hidden" }, Ss = { class: "profile-displayName" }, Us = { class: "profile-email" }, ws = { class: "profile-phone" }, Ps = { key: 2 }, ks = /* @__PURE__ */ le({
195
- __name: "PortalUserSearcher",
196
- emits: ["invite"],
197
- setup(t, { emit: p }) {
198
- const l = p, { t: s } = de(), m = Me(), B = ce(), M = F("phone"), h = F(""), y = F(""), d = F();
199
- async function S() {
200
- if (!h.value && !y.value) {
201
- m.open({
202
- type: "error",
203
- title: s("team.memberForm.searchUser.emptyError")
204
- });
205
- return;
206
- }
207
- const V = M.value === "phone" ? await we.readPermissionUserByPhoneNo(h.value.replace(/ /g, "")) : await we.readPermissionUserByEmail(y.value);
208
- V || m.open({
209
- type: "error",
210
- title: s("team.memberForm.searchUser.userNotFound")
211
- }), d.value = V;
212
- }
213
- const U = k(() => {
214
- var W;
215
- let V = ((W = d.value) == null ? void 0 : W.displayName) ?? "";
216
- V || (V = "Feed Me");
217
- const [$, j] = V.split(" ");
218
- return j ? `${$[0]}${j[0]}` : $.slice(0, 2);
219
- }), D = F(!1);
220
- function H(V) {
221
- l("invite", V), D.value = !0;
222
- }
223
- function ne() {
224
- D.value = !1;
225
- }
226
- return (V, $) => {
227
- var x, w, J;
228
- const j = g("FmRadio"), W = g("FmPhoneNumber"), C = g("FmTextField"), o = g("FmRadioGroup"), n = g("FmButton");
229
- return f(), T("div", gs, [
230
- D.value ? G("", !0) : (f(), T("div", Vs, [
231
- c(o, {
232
- modelValue: M.value,
233
- "onUpdate:modelValue": $[2] || ($[2] = (R) => M.value = R)
234
- }, {
235
- default: A(() => [
236
- c(j, {
237
- value: "phone",
238
- label: r(s)("team.memberForm.searchUser.phoneNumber")
239
- }, null, 8, ["label"]),
240
- M.value === "phone" ? (f(), I(W, {
241
- key: 0,
242
- modelValue: h.value,
243
- "onUpdate:modelValue": $[0] || ($[0] = (R) => h.value = R),
244
- "extra-country-codes": r(B).enabledCountries.value,
245
- class: "ml-8"
246
- }, null, 8, ["modelValue", "extra-country-codes"])) : G("", !0),
247
- c(j, {
248
- value: "email",
249
- label: r(s)("team.memberForm.searchUser.email")
250
- }, null, 8, ["label"]),
251
- M.value === "email" ? (f(), I(C, {
252
- key: 1,
253
- modelValue: y.value,
254
- "onUpdate:modelValue": $[1] || ($[1] = (R) => y.value = R),
255
- placeholder: r(s)("team.memberForm.searchUser.emailPlaceholder"),
256
- class: "ml-8"
257
- }, null, 8, ["modelValue", "placeholder"])) : G("", !0)
258
- ]),
259
- _: 1
260
- }, 8, ["modelValue"]),
261
- c(n, {
262
- label: r(s)("team.memberForm.searchUser.search"),
263
- variant: "secondary",
264
- onClick: S
265
- }, null, 8, ["label"])
266
- ])),
267
- d.value ? (f(), T("div", {
268
- key: 1,
269
- class: "profile-menu--profile cursor-pointer hover:bg-fm-color-opacity-sm",
270
- onClick: $[3] || ($[3] = (R) => H(d.value))
271
- }, [
272
- i("div", Fs, N(U.value), 1),
273
- i("div", xs, [
274
- i("p", Ss, N((x = d.value) == null ? void 0 : x.displayName), 1),
275
- i("p", Us, N((w = d.value) == null ? void 0 : w.email), 1),
276
- i("p", ws, N((J = d.value) == null ? void 0 : J.phoneNumber), 1)
277
- ])
278
- ])) : G("", !0),
279
- D.value ? (f(), T("div", Ps, [
280
- c(n, {
281
- label: r(s)("team.memberForm.searchUser.changeUser"),
282
- variant: "secondary",
283
- onClick: ne
284
- }, null, 8, ["label"])
285
- ])) : G("", !0)
286
- ]);
287
- };
288
- }
289
- }), $s = /* @__PURE__ */ Ee(ks, [["__scopeId", "data-v-c2c7ed35"]]), Rs = { class: "flex flex-col gap-40" }, Is = { class: "flex items-center" }, Cs = { class: "flex-1 flex flex-col" }, Ms = { class: "fm-typo-en-title-sm-600" }, Ns = { class: "fm-typo-en-body-md-400 text-fm-color-typo-secondary" }, Bs = { class: "flex flex-row gap-16" }, Ds = { class: "flex flex-col gap-8" }, Os = { class: "fm-typo-en-body-lg-400" }, As = { class: "p-16 fm-corner-radius-lg border border-fm-color-neutral-gray-200" }, ve = 4, js = /* @__PURE__ */ le({
290
- __name: "TeamMemberMasterUser",
291
- props: {
292
- modelValue: {
293
- type: Object,
294
- default: void 0
295
- },
296
- fallbackName: {
297
- type: String,
298
- required: !0
299
- },
300
- fallbackPasscode: {
301
- type: String,
302
- default: void 0
303
- },
304
- restaurants: {
305
- type: Array,
306
- required: !0
307
- },
308
- roles: {
309
- type: Array,
310
- required: !0
311
- }
312
- },
313
- emits: ["update:model-value"],
314
- setup(t, { emit: p }) {
315
- const l = t, s = p, { t: m } = de(), { searchKey: B, filter: M } = Ne(""), h = F(!0), y = F([]), d = k(() => {
316
- const o = {};
317
- return l.roles.forEach((n) => {
318
- o[n.value] = n.label;
319
- }), o;
320
- }), S = k(() => {
321
- var n;
322
- const o = {};
323
- return (n = l.modelValue) == null || n.roles.forEach((x) => {
324
- o[x.restaurantId] = x.roleId;
325
- }), o;
326
- }), U = k(() => l.restaurants.filter((o) => M([o.profile.name, o.profile.code, H(o._id)])).map((o) => ({
327
- label: `${o.profile.code ? o.profile.code + "-" : ""}${o.profile.name}`,
328
- value: o._id,
329
- slot: `checkbox-${o._id}-bottom`,
330
- disable: l.roles.filter((n) => !n.disabled).length === 0,
331
- roleOptions: l.roles
332
- }))), D = k(() => {
333
- const o = l.roles.find((n) => !n.disabled);
334
- return o ? o.value : null;
335
- });
336
- function H(o) {
337
- const n = S.value[o] ?? "";
338
- return d.value[n] || "";
339
- }
340
- function ne(o) {
341
- o ? l.modelValue || s("update:model-value", {
342
- code: "",
343
- name: l.fallbackName,
344
- roles: [],
345
- passcode: l.fallbackPasscode || ""
346
- }) : s("update:model-value", void 0);
347
- }
348
- function V(o, n) {
349
- if (!l.modelValue || o === "passcode" && l.modelValue.passcode === n)
350
- return;
351
- const x = Be(l.modelValue);
352
- x[o] = n, s("update:model-value", x);
353
- }
354
- function $(o) {
355
- V(
356
- "roles",
357
- o.map((n) => {
358
- var J, R, oe;
359
- const x = (R = (J = U.value.find((z) => z.value === n)) == null ? void 0 : J.roleOptions.find((z) => !z.disabled)) == null ? void 0 : R.value, w = (oe = l.modelValue) == null ? void 0 : oe.roles.find((z) => z.restaurantId === n);
360
- return {
361
- restaurantId: n,
362
- roleId: (w == null ? void 0 : w.roleId) || x
363
- };
364
- })
365
- );
366
- }
367
- function j(o, n) {
368
- V("roles", [
369
- ...l.modelValue.roles.filter(
370
- (x) => x.restaurantId !== o
371
- ),
372
- {
373
- restaurantId: o,
374
- roleId: n
375
- }
376
- ]);
377
- }
378
- function W() {
379
- h.value && (h.value = !1, y.value = [], V("passcode", ""));
380
- }
381
- Ie(
382
- () => {
383
- var o;
384
- return (o = l.modelValue) == null ? void 0 : o.passcode;
385
- },
386
- (o) => {
387
- o && o.length === ve ? (y.value = o.split(""), h.value = !0) : (y.value = [], h.value = !1);
388
- },
389
- { immediate: !0 }
390
- );
391
- const C = k({
392
- get: () => {
393
- var o;
394
- return ((o = l.modelValue) == null ? void 0 : o.roles) ?? [];
395
- },
396
- set: () => {
397
- }
398
- });
399
- return (o, n) => {
400
- const x = g("FmSwitch"), w = g("FmTextField"), J = g("FmPinField"), R = g("FmFormGroup"), oe = g("FmSearch"), z = g("FmSelect");
401
- return f(), T("div", Rs, [
402
- i("div", Is, [
403
- i("div", Cs, [
404
- i("div", Ms, N(r(m)("team.memberForm.masterUser.title")), 1),
405
- i("div", Ns, N(r(m)("team.memberForm.masterUser.sublabel")), 1)
406
- ]),
407
- i("div", null, [
408
- c(x, {
409
- "model-value": !!t.modelValue,
410
- value: "master-user",
411
- "onUpdate:modelValue": ne
412
- }, null, 8, ["model-value"])
413
- ])
414
- ]),
415
- t.modelValue ? (f(), T(ue, { key: 0 }, [
416
- i("div", Bs, [
417
- c(w, {
418
- "model-value": t.modelValue.code,
419
- label: r(m)("team.memberForm.masterUser.code"),
420
- "onUpdate:modelValue": n[0] || (n[0] = (u) => V("code", u))
421
- }, null, 8, ["model-value", "label"]),
422
- c(w, {
423
- "model-value": t.modelValue.name,
424
- class: "w-full",
425
- label: r(m)("team.memberForm.masterUser.name"),
426
- rules: [(u) => !!u || r(m)("team.memberForm.masterUser.nameEmptyError")],
427
- "onUpdate:modelValue": n[1] || (n[1] = (u) => V("name", u))
428
- }, null, 8, ["model-value", "label", "rules"])
429
- ]),
430
- i("div", Ds, [
431
- i("div", Os, N(r(m)("team.memberForm.masterUser.passcode")), 1),
432
- c(R, {
433
- modelValue: y.value,
434
- "onUpdate:modelValue": n[4] || (n[4] = (u) => y.value = u),
435
- rules: [
436
- (u) => (u == null ? void 0 : u.filter((q) => !!q).length) !== ve ? r(m)("team.memberForm.masterUser.passcodeRequired") : !0
437
- ]
438
- }, {
439
- default: A(() => [
440
- (f(), I(J, {
441
- key: `pin-field-${h.value}`,
442
- modelValue: y.value,
443
- "onUpdate:modelValue": n[2] || (n[2] = (u) => y.value = u),
444
- length: ve,
445
- masked: h.value,
446
- onComplete: n[3] || (n[3] = (u) => V("passcode", u)),
447
- onFocus: W
448
- }, null, 8, ["modelValue", "masked"]))
449
- ]),
450
- _: 1
451
- }, 8, ["modelValue", "rules"])
452
- ]),
453
- c(R, {
454
- modelValue: C.value,
455
- "onUpdate:modelValue": n[6] || (n[6] = (u) => C.value = u),
456
- rules: [
457
- (u) => !u || u.length === 0 ? r(m)("team.memberForm.masterUser.restaurantRequired") : u.some((q) => !q.roleId) ? r(m)("team.memberForm.masterUser.roleRequired") : !0
458
- ]
459
- }, {
460
- default: A(() => [
461
- i("div", As, [
462
- c(oe, {
463
- modelValue: r(B),
464
- "onUpdate:modelValue": n[5] || (n[5] = (u) => he(B) ? B.value = u : null),
465
- placeholder: r(m)("team.memberForm.posRole.placeholder"),
466
- class: "mb-16"
467
- }, null, 8, ["modelValue", "placeholder"]),
468
- c(es, {
469
- "model-value": t.modelValue.roles.map((u) => u.restaurantId),
470
- options: U.value,
471
- min: 1,
472
- title: r(m)("team.memberForm.masterUser.role"),
473
- "onUpdate:modelValue": $
474
- }, je({ _: 2 }, [
475
- ye(U.value, (u) => ({
476
- name: u.slot,
477
- fn: A(() => {
478
- var q;
479
- return [
480
- i("div", null, [
481
- c(z, {
482
- "model-value": ((q = t.modelValue.roles.find((L) => L.restaurantId === u.value)) == null ? void 0 : q.roleId) || D.value,
483
- items: u.roleOptions,
484
- "onUpdate:modelValue": (L) => j(u.value, L)
485
- }, null, 8, ["model-value", "items", "onUpdate:modelValue"])
486
- ])
487
- ];
488
- })
489
- }))
490
- ]), 1032, ["model-value", "options", "title"])
491
- ])
492
- ]),
493
- _: 1
494
- }, 8, ["modelValue", "rules"])
495
- ], 64)) : G("", !0)
496
- ]);
497
- };
498
- }
499
- }), Ls = { class: "flex flex-col gap-32" }, Es = { class: "flex w-full" }, Ts = /* @__PURE__ */ le({
500
- __name: "AddMemberForm",
501
- props: {
502
- initialValue: {
503
- type: Object
504
- },
505
- roleErrorMessage: {
506
- type: String,
507
- default: ""
508
- }
509
- },
510
- setup(t, { expose: p }) {
511
- var q, L, ee;
512
- const l = t, { t: s } = de(), m = F(), B = De(), M = k(
513
- () => B.permissionSets.value.map((v) => ({
514
- label: v.name,
515
- value: v.id
516
- }))
517
- ), h = F(((q = l.initialValue) == null ? void 0 : q.permissionSetIds) || []), y = k(
518
- () => We(h.value, B.permissionSets.value)
519
- ), d = F((L = l.initialValue) == null ? void 0 : L.posUser), S = F(
520
- Je(
521
- pe(y.value),
522
- ((ee = l.initialValue) == null ? void 0 : ee.permissions) || []
523
- )
524
- ), { customReportPermissions: U, isLoaded: D } = Oe(), H = new Set(Qe.map((v) => v.subject)), ne = k(() => {
525
- const v = new Set(H);
526
- for (const b of U.value) v.add(b.subject);
527
- return v;
528
- }), { restaurants: V } = ce(), $ = Ae().roles, j = k(() => Ue(S.value)), W = k(() => {
529
- const v = j.value;
530
- return $.value.map(
531
- (b) => ({
532
- label: b.name,
533
- value: b._id,
534
- disabled: !!v && !v.includes(b._id)
535
- })
536
- );
537
- });
538
- function C(v) {
539
- m.value = v;
540
- }
541
- function o(v) {
542
- d.value = R(d.value, v);
543
- }
544
- function n() {
545
- const v = pe(y.value), b = D.value ? ne.value : H, Q = Xe(S.value, b), E = Ye(Q);
546
- return Ze(v, E);
547
- }
548
- function x() {
549
- var Q, E, Z, K, se, re, ie, ae, e, a;
550
- const v = n(), b = S.value.filter((_) => !_.inverted);
551
- return {
552
- email: ((Q = m.value) == null ? void 0 : Q.email) ?? void 0,
553
- phoneNumber: ((E = m.value) == null ? void 0 : E.phoneNumber) ?? void 0,
554
- customPermissions: v,
555
- // Deprecated: keep for backward compatibility, will be removed in the future
556
- permissions: b.map((_) => ({
557
- ..._,
558
- subject: Te(_.subject)
559
- })),
560
- permissionSetIds: h.value,
561
- name: ((Z = m.value) == null ? void 0 : Z.displayName) || ((K = l.initialValue) == null ? void 0 : K.name) || "",
562
- posUser: d.value ? {
563
- ...d.value,
564
- name: d.value.name || ((re = (se = l.initialValue) == null ? void 0 : se.posUser) == null ? void 0 : re.name) || ((ie = l.initialValue) == null ? void 0 : ie.name) || ((ae = m.value) == null ? void 0 : ae.displayName) || "",
565
- code: d.value.code || ((a = (e = l.initialValue) == null ? void 0 : e.posUser) == null ? void 0 : a.code) || "",
566
- passcode: d.value.passcode,
567
- roles: d.value.roles.filter((_) => !!_.roleId)
568
- } : void 0
569
- };
570
- }
571
- const w = F();
572
- function J() {
573
- S.value = pe(y.value);
574
- }
575
- function R(v, b) {
576
- if (!v) return;
577
- const Q = Ue(b);
578
- if (!Q) return v;
579
- const E = Be(v);
580
- return E.roles = E.roles.reduce((Z, K) => (Q.includes(K.roleId) && Z.push(K), Z), []), E;
581
- }
582
- async function oe() {
583
- await ke(), w.value && w.value.$el.scrollIntoView({ behavior: "smooth", block: "start" });
584
- }
585
- const z = F();
586
- async function u() {
587
- return (await z.value.validateInputsWithoutSubmit()).length ? null : x();
588
- }
589
- return p({
590
- readFormData: x,
591
- validate: u
592
- }), (v, b) => {
593
- const Q = g("FmSelect"), E = g("FmForm");
594
- return f(), I(E, {
595
- ref_key: "formRef",
596
- ref: z,
597
- class: "mx-4"
598
- }, {
599
- default: A(() => {
600
- var Z, K, se, re, ie, ae;
601
- return [
602
- i("div", Ls, [
603
- i("div", Es, [
604
- t.initialValue ? (f(), I(_s, {
605
- key: 1,
606
- data: t.initialValue
607
- }, null, 8, ["data"])) : (f(), I($s, {
608
- key: 0,
609
- onInvite: b[0] || (b[0] = (e) => C(e))
610
- }))
611
- ]),
612
- m.value || t.initialValue ? (f(), T(ue, { key: 0 }, [
613
- (Z = t.initialValue) != null && Z.isOwner ? G("", !0) : (f(), I(Q, {
614
- key: 0,
615
- modelValue: h.value,
616
- "onUpdate:modelValue": [
617
- b[1] || (b[1] = (e) => h.value = e),
618
- J
619
- ],
620
- multiselect: "",
621
- searchable: "",
622
- "search-debounce": 300,
623
- items: M.value,
624
- label: r(s)("team.memberForm.permissionSet.title"),
625
- placeholder: r(s)("team.memberForm.permissionSet.selectPlaceholder")
626
- }, null, 8, ["modelValue", "items", "label", "placeholder"])),
627
- (K = t.initialValue) != null && K.isOwner ? G("", !0) : (f(), I(ss, {
628
- key: 1,
629
- modelValue: S.value,
630
- "onUpdate:modelValue": b[2] || (b[2] = (e) => S.value = e),
631
- "inherit-permissions": y.value,
632
- onPermissionChanged: o
633
- }, null, 8, ["modelValue", "inherit-permissions"])),
634
- c(js, {
635
- ref_key: "masterUserContentRef",
636
- ref: w,
637
- modelValue: d.value,
638
- "onUpdate:modelValue": [
639
- b[3] || (b[3] = (e) => d.value = e),
640
- oe
641
- ],
642
- "fallback-name": ((se = t.initialValue) == null ? void 0 : se.name) || ((re = m.value) == null ? void 0 : re.displayName) || "",
643
- "fallback-passcode": (ae = (ie = t.initialValue) == null ? void 0 : ie.posUser) == null ? void 0 : ae.passcode,
644
- roles: W.value,
645
- restaurants: r(V)
646
- }, null, 8, ["modelValue", "fallback-name", "fallback-passcode", "roles", "restaurants"])
647
- ], 64)) : G("", !0)
648
- ])
649
- ];
650
- }),
651
- _: 1
652
- }, 512);
653
- };
654
- }
655
- }), zs = {
656
- class: "space-y-24"
657
- }, qs = {
658
- class: "space-y-8"
659
- }, Ks = {
660
- class: "xs:hidden flex w-full items-start justify-between px-16"
661
- }, Gs = {
662
- class: "flex items-start gap-8"
663
- }, Ws = {
664
- class: "space-y-4 sm:hidden md:hidden lg:hidden px-16"
665
- }, Js = {
666
- class: "flex items-start gap-8"
667
- }, Qs = {
668
- class: "flex items-center justify-start gap-8"
669
- };
670
- var Y = /* @__PURE__ */ function(t) {
671
- return t[t.ADD = 0] = "ADD", t[t.UPDATE = 1] = "UPDATE", t[t.CLOSED = 2] = "CLOSED", t;
672
- }(Y || {});
673
- const ut = /* @__PURE__ */ le({
674
- __name: "TeamMemberList",
675
- setup(t, {
676
- expose: p
677
- }) {
678
- const {
679
- fetchCustomReportPermissions: l
680
- } = Oe(), {
681
- t: s
682
- } = de(), m = ce(), B = Ae(), M = Me(), h = Ge(M), y = De(), d = He(), S = ts(), U = F(!0), D = ({
683
- member: e,
684
- className: a = ""
685
- }) => {
686
- const _ = {
687
- label: s("common.update"),
688
- onClick: () => j(me.Update, e)
689
- }, te = {
690
- label: s("common.remove"),
691
- onClick: () => j(me.Remove, e),
692
- itemClass: "text-fm-color-typo-error"
693
- }, X = e.doc.isOwner ? [_] : [_, te];
694
- return c(ns, {
695
- class: a,
696
- items: X
697
- }, null);
698
- }, H = (e) => e.doc.isOwner ? s("team.labels.businessOwner") : e.restaurants.join(", "), ne = [{
699
- accessorKey: "name",
700
- header: () => s("team.table.columns.name"),
701
- enableSorting: !1
702
- }, {
703
- accessorKey: "phoneNumber",
704
- header: () => s("team.table.columns.phoneNumber"),
705
- enableSorting: !1
706
- }, {
707
- accessorKey: "restaurant",
708
- header: () => s("team.table.columns.restaurant"),
709
- enableSorting: !1,
710
- cell(e) {
711
- const a = e.row.original;
712
- return H(a);
713
- }
714
- }, {
715
- accessorKey: "assignedRoles",
716
- header: () => s("team.table.columns.assignedRoles"),
717
- enableSorting: !1,
718
- cell(e) {
719
- const a = e.row.original, _ = d.getPermissionAssignmentByUserId(a.id), te = (_ == null ? void 0 : _.permissionSetIds) || a.doc.permissionSetIds || [];
720
- return y.permissionSets.value.filter((O) => te.includes(O.id)).map((O) => O.name).join(", ");
721
- }
722
- }, {
723
- accessorKey: "permission",
724
- header: () => s("team.table.columns.permission"),
725
- enableSorting: !1,
726
- cell(e) {
727
- const a = e.row.original;
728
- return V(a);
729
- },
730
- meta: {
731
- width: "200px"
732
- }
733
- }, {
734
- id: "action",
735
- meta: {
736
- cellClass: "pl-16",
737
- headerContentClass: "-mx-16"
738
- },
739
- cell(e) {
740
- const a = e.row.original;
741
- return D({
742
- member: a,
743
- className: "flex justify-end w-full"
744
- });
745
- },
746
- enableSorting: !1
747
- }];
748
- function V(e) {
749
- if (e.doc.isOwner)
750
- return s("team.labels.businessOwner");
751
- const a = c(Fe.FmTooltip, {
752
- variant: "plain",
753
- placement: "top"
754
- }, {
755
- default: () => c(Fe.FmIcon, {
756
- name: "info",
757
- class: "cursor-pointer text-fm-color-neutral-gray-300"
758
- }, null),
759
- content: () => c("div", null, [s("team.labels.permission"), e.permissionLabels.map((_) => c("div", null, [Re("- "), _]))])
760
- });
761
- return c("div", {
762
- class: "flex flex-row items-center gap-8"
763
- }, [c("span", null, [s("team.labels.allowed", {
764
- count: e.permissionLabels.length
765
- })]), e.permissionLabels.length > 0 && a]);
766
- }
767
- function $(e) {
768
- var X, O, P, _e;
769
- const a = d.getPermissionAssignmentByUserId(e.id), _ = (a == null ? void 0 : a.customPermissions) || e.permissions || [], te = (a == null ? void 0 : a.permissionSetIds) || [];
770
- return {
771
- id: e.id,
772
- isOwner: e.doc.isOwner,
773
- name: e.name,
774
- phoneNumber: e.phoneNumber,
775
- email: e.email,
776
- permissions: _,
777
- permissionSetIds: te,
778
- posUser: e.doc.posUser ? {
779
- code: ((X = e.doc.posUser) == null ? void 0 : X.code) ?? "",
780
- name: ((O = e.doc.posUser) == null ? void 0 : O.name) ?? e.name,
781
- passcode: ((P = e.doc.posUser) == null ? void 0 : P.passcode) ?? "",
782
- roles: ((_e = e.doc.posUser) == null ? void 0 : _e.roles) ?? []
783
- } : void 0
784
- };
785
- }
786
- const j = (e, a) => {
787
- if (e == me.Update) {
788
- const _ = $(a);
789
- w.value = _, C.value = Y.UPDATE;
790
- }
791
- e == me.Remove && z(a);
792
- }, W = Le(), C = F(Y.CLOSED), o = k(() => C.value !== Y.CLOSED), n = k(() => C.value === Y.ADD ? s("common.add") : s("common.update")), x = k(() => C.value === Y.ADD ? s("team.actions.addMember") : s("team.actions.updateMember")), w = F();
793
- function J(e) {
794
- e || (C.value = Y.CLOSED);
795
- }
796
- function R() {
797
- C.value = Y.CLOSED;
798
- }
799
- const {
800
- breakpoints: oe
801
- } = Ce(), z = (e) => {
802
- W.open({
803
- title: s("team.actions.removeMember"),
804
- message: s("team.removeMember.confirmationMessage", {
805
- memberName: e.name
806
- }),
807
- minWidth: oe.value.lg ? 588 : 0,
808
- primaryActions: {
809
- text: "Remove",
810
- close: !1,
811
- variant: "destructive"
812
- },
813
- secondaryActions: {
814
- text: "Cancel",
815
- close: !0
816
- }
817
- }).onPrimary(async () => {
818
- await h.minor(async () => {
819
- await fe.deleteTeamMember(e.id), await K({
820
- force: !0
821
- });
822
- }, {
823
- successMessage: s("team.removeMember.successMessage", {
824
- memberName: e.name
825
- })
826
- }), W.close();
827
- });
828
- }, u = () => {
829
- w.value = null, C.value = Y.ADD;
830
- }, q = k(() => S.members), L = F(), ee = F(), v = k(() => Object.values(ze).map((e) => ({
831
- label: e.label,
832
- value: e.subject
833
- }))), {
834
- searchKey: b,
835
- filter: Q
836
- } = Ne(""), E = k(() => q.value.filter((e) => {
837
- var X;
838
- const a = !L.value || e.managableRestaurantIds.some((O) => L.value.includes(O)), _ = ((X = e.permissions) == null ? void 0 : X.map((O) => O.subject).flat().filter(Boolean)) || [], te = !ee.value || _.some((O) => ee.value.includes(O));
839
- return a && te && Q([e.name, e.phoneNumber, H(e)]);
840
- }));
841
- async function Z() {
842
- await B.readRoles();
843
- }
844
- async function K({
845
- force: e = !1
846
- } = {}) {
847
- U.value = !0;
848
- try {
849
- await S.readTeamMembers({
850
- force: e
851
- });
852
- } finally {
853
- U.value = !1;
854
- }
855
- }
856
- const se = F();
857
- async function re() {
858
- if (!se.value) return;
859
- const e = await se.value.validate();
860
- if (!e) return;
861
- const a = C.value === Y.ADD;
862
- await h.minor(async () => {
863
- await (a ? fe.createTeamMember(e) : fe.updateTeamMember(w.value.id, e)), R(), await ae(), await K({
864
- force: !0
865
- });
866
- }, {
867
- successMessage: a ? s("team.addMember.successMessage", {
868
- memberName: e.name
869
- }) : s("team.updateMember.successMessage", {
870
- memberName: e.name
871
- })
872
- }), C.value = Y.CLOSED;
873
- }
874
- async function ie() {
875
- await y.readPermissionSets();
876
- }
877
- async function ae() {
878
- await d.readPermissionAssignments();
879
- }
880
- return Ie(m.currentBusiness, async () => {
881
- var e;
882
- (e = m.currentBusiness.value) != null && e._id && (await Promise.all([ie(), ae(), l()]), K(), Z());
883
- }, {
884
- immediate: !0
885
- }), p({
886
- create: u
887
- }), (e, a) => {
888
- const _ = g("FmSearch"), te = g("FmTable"), X = g("FmButton"), O = g("FmSideSheet");
889
- return f(), T(ue, null, [i("div", zs, [i("div", qs, [i("div", Ks, [i("div", Gs, [c(r(Ve), {
890
- modelValue: L.value,
891
- "onUpdate:modelValue": a[0] || (a[0] = (P) => L.value = P),
892
- "managable-only": !1,
893
- multiple: "",
894
- variant: "dark",
895
- class: "!w-auto"
896
- }, null, 8, ["modelValue"]), c(xe, {
897
- modelValue: ee.value,
898
- "onUpdate:modelValue": a[1] || (a[1] = (P) => ee.value = P),
899
- multiple: "",
900
- variant: "dark",
901
- items: v.value,
902
- "selected-prefix": r(s)("team.filter.selected_permission_prefix"),
903
- placeholder: r(s)("team.filter.permission_placeholder")
904
- }, null, 8, ["modelValue", "items", "selected-prefix", "placeholder"])]), c(_, {
905
- modelValue: r(b),
906
- "onUpdate:modelValue": a[2] || (a[2] = (P) => he(b) ? b.value = P : null),
907
- class: "w-[320px] xs:w-full xs:mt-8",
908
- autofocus: "",
909
- placeholder: r(s)("team.search.placeholder")
910
- }, null, 8, ["modelValue", "placeholder"])]), i("div", Ws, [c(_, {
911
- modelValue: r(b),
912
- "onUpdate:modelValue": a[3] || (a[3] = (P) => he(b) ? b.value = P : null),
913
- class: "w-[320px] xs:w-full xs:mt-8",
914
- autofocus: "",
915
- placeholder: r(s)("team.search.placeholder")
916
- }, null, 8, ["modelValue", "placeholder"]), i("div", Js, [c(r(Ve), {
917
- modelValue: L.value,
918
- "onUpdate:modelValue": a[4] || (a[4] = (P) => L.value = P),
919
- "managable-only": !1,
920
- multiple: "",
921
- variant: "dark",
922
- class: "!w-auto"
923
- }, null, 8, ["modelValue"]), c(xe, {
924
- modelValue: ee.value,
925
- "onUpdate:modelValue": a[5] || (a[5] = (P) => ee.value = P),
926
- multiple: "",
927
- variant: "dark",
928
- items: v.value,
929
- "selected-prefix": r(s)("team.filter.selected_permission_prefix"),
930
- placeholder: r(s)("team.filter.permission_placeholder")
931
- }, null, 8, ["modelValue", "items", "selected-prefix", "placeholder"])])]), q.value.length === 0 && !U.value ? (f(), I(r(Ke), {
932
- key: 0,
933
- title: r(s)("team.emptyState.title"),
934
- subtitle: r(s)("team.emptyState.description")
935
- }, null, 8, ["title", "subtitle"])) : (f(), I(qe, {
936
- key: 1
937
- }, {
938
- default: A(() => [c(te, {
939
- "column-defs": ne,
940
- "row-data": E.value,
941
- "page-size": E.value.length,
942
- loading: U.value,
943
- "pin-header-row": "",
944
- "hide-footer": "",
945
- onRowClick: a[6] || (a[6] = (P) => j(r(me).Update, P.original))
946
- }, null, 8, ["row-data", "page-size", "loading"])]),
947
- _: 1
948
- }))])]), c(O, {
949
- header: x.value,
950
- "model-value": o.value,
951
- "max-width": 560,
952
- "dismiss-away": "",
953
- "onUpdate:modelValue": a[7] || (a[7] = (P) => J(P))
954
- }, {
955
- "side-sheet-footer": A(() => [i("div", Qs, [c(X, {
956
- label: n.value,
957
- size: "md",
958
- variant: "primary",
959
- onClick: Pe(re, ["prevent"])
960
- }, null, 8, ["label"]), c(X, {
961
- label: r(s)("common.cancel"),
962
- size: "md",
963
- variant: "secondary",
964
- onClick: R
965
- }, null, 8, ["label"])])]),
966
- default: A(() => [c(Ts, {
967
- ref_key: "memberForm",
968
- ref: se,
969
- initialValue: w.value,
970
- class: "gap-8"
971
- }, null, 8, ["initialValue"])]),
972
- _: 1
973
- }, 8, ["header", "model-value"])], 64);
974
- };
975
- }
976
- });
977
- export {
978
- ut as default
979
- };