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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (64) hide show
  1. package/dist/AuditLogList-CPG5uNyJ.js +980 -0
  2. package/dist/EmployeeList-CyF7_ax8.js +736 -0
  3. package/dist/FormSection.vue_vue_type_script_setup_true_lang-BVb8c4YU.js +71 -0
  4. package/dist/HorizontalSplitter-o860F4xM.js +12 -0
  5. package/dist/{Main-BbOMNP31.js → Main-BwMCrfKS.js} +761 -758
  6. package/dist/Main-S5kR_LNV.js +85 -0
  7. package/dist/{Main-dqgR1UXY.js → Main-y2ea2vuC.js} +175 -181
  8. package/dist/PermissionSetList-C5oGIsQP.js +341 -0
  9. package/dist/PortalPermissionEditor.vue_vue_type_script_setup_true_lang-VaY4Fg_h.js +3480 -0
  10. package/dist/RoleList-C95uKJ8O.js +530 -0
  11. package/dist/TeamMemberList-CEqYCWn6.js +1114 -0
  12. package/dist/TeamMemberList.vue_vue_type_style_index_0_scoped_473cbd86_lang-DJ-znUI3.js +34 -0
  13. package/dist/{TimesheetList-D29EFj1Q.js → TimesheetList-DXtxCeNh.js} +126 -132
  14. package/dist/{app-SadE2J6-.js → app-BwtXEFgW.js} +711 -759
  15. package/dist/app.js +1 -1
  16. package/dist/{dayjs.min-DKCxxK08.js → dayjs.min-uVMAR_wK.js} +1 -1
  17. package/dist/employee-ImeXt_Q7.js +204 -0
  18. package/dist/{iteration-QZxp7XeE.js → iteration-BjJgU8cS.js} +4688 -4732
  19. package/dist/{lodash-DrksHyHu.js → lodash-CSw3Ei7_.js} +1 -1
  20. package/dist/{rule-CSsgDC6F.js → rule-B6wBPpcM.js} +265 -263
  21. package/dist/src/api/account/index.d.ts +4 -0
  22. package/dist/src/api/audit-log/index.d.ts +0 -9
  23. package/dist/src/api/index.d.ts +1 -0
  24. package/dist/src/components/CheckboxInput.vue.d.ts +1 -1
  25. package/dist/src/components/CollapsibleWrapper.vue.d.ts +0 -2
  26. package/dist/src/composables/useBasePermission.d.ts +0 -1
  27. package/dist/src/composables/useRestaurantMap.d.ts +329 -2
  28. package/dist/src/composables/useSupportedCountries.d.ts +5 -0
  29. package/dist/src/stores/role.d.ts +7 -7
  30. package/dist/src/stores/team.d.ts +6 -6
  31. package/dist/src/types/restaurant.d.ts +0 -11
  32. package/dist/src/types/team.d.ts +1 -1
  33. package/dist/src/views/hr/locales/index.d.ts +0 -16
  34. package/dist/src/views/team/components/BasePermission.vue.d.ts +7 -3
  35. package/dist/src/views/team/components/PosRolePermission.vue.d.ts +2 -2
  36. package/dist/src/views/team/locales/index.d.ts +0 -32
  37. package/dist/src/views/team/member/AddMemberForm.vue.d.ts +3 -5
  38. package/dist/style.css +1 -1
  39. package/dist/{timesheet-sBe_HCZh.js → timesheet-D1f9XDxj.js} +2 -2
  40. package/dist/tsconfig.app.tsbuildinfo +1 -1
  41. package/dist/useAppStore-D7jswOfq.js +171 -0
  42. package/dist/useDebounce-B8ZPVS5C.js +15 -0
  43. package/dist/useDiscardConfirm-BHni0LNu.js +28 -0
  44. package/dist/{useLoading-PTqnaz_W.js → useLoading-kFlAIf6Y.js} +1 -1
  45. package/dist/{useReportPermissions-C3Uzu7vB.js → useReportPermissions-ClWD1GSr.js} +3 -3
  46. package/dist/useSearch-B6WK1LBB.js +15 -0
  47. package/package.json +1 -1
  48. package/dist/AuditLogList-D4E8pss5.js +0 -1037
  49. package/dist/CollapsibleWrapper.vue_vue_type_script_setup_true_lang-BLJlmPVa.js +0 -58
  50. package/dist/EmployeeList-BfJO89pN.js +0 -827
  51. package/dist/FormItem.vue_vue_type_script_setup_true_lang-D3MOFOUI.js +0 -45
  52. package/dist/FormSection.vue_vue_type_script_setup_true_lang-DknXTYiK.js +0 -49
  53. package/dist/Main-XmxzThcC.js +0 -86
  54. package/dist/PermissionSetList-DO0PRS6Z.js +0 -347
  55. package/dist/PortalPermissionEditor.vue_vue_type_script_setup_true_lang-DL4_xvBZ.js +0 -3443
  56. package/dist/RoleList-DB3NfUYF.js +0 -545
  57. package/dist/TeamMemberList-4hEx6L5r.js +0 -1090
  58. package/dist/employee-3KJs872J.js +0 -204
  59. package/dist/src/api/restaurant/index.d.ts +0 -5
  60. package/dist/src/components/Skeleton.vue.d.ts +0 -7
  61. package/dist/src/stores/restaurant.d.ts +0 -181
  62. package/dist/useAppStore-BDADkWuX.js +0 -171
  63. package/dist/useDebounce-CWb5QR9G.js +0 -28
  64. package/dist/useDiscardConfirm-DPhEV6v0.js +0 -157
@@ -0,0 +1,341 @@
1
+ import { defineComponent as M, computed as S, resolveComponent as d, createElementBlock as $, openBlock as g, createElementVNode as x, createVNode as m, toDisplayString as L, unref as c, withCtx as P, createTextVNode as oe, Fragment as H, renderList as ne, ref as _, watch as ie, createBlock as q, nextTick as ae, onMounted as re, h as z } from "vue";
2
+ import { useI18n as K, useCoreStore as le } from "@feedmepos/mf-common";
3
+ import { useSnackbar as Q, useDialog as me, useBreakpoints as ce, components as ue, FmButtonColorThemeVariant as de, FmButtonVariant as pe } from "@feedmepos/ui-library";
4
+ import { _ as fe } from "./index.vue_vue_type_script_setup_true_lang-Vc5ARO29.js";
5
+ import { d as G, q as ve, u as Y, c as Z, p as J, i as Se, b as be, m as N, k as _e, l as he, s as Pe, n as ge } from "./rule-B6wBPpcM.js";
6
+ import { A as ye } from "./iteration-BjJgU8cS.js";
7
+ import { u as Fe } from "./useLoading-kFlAIf6Y.js";
8
+ import { d as X } from "./app-BwtXEFgW.js";
9
+ import { a as Ve } from "./PortalPermissionEditor.vue_vue_type_script_setup_true_lang-VaY4Fg_h.js";
10
+ const we = { class: "flex flex-row items-center gap-8" }, xe = /* @__PURE__ */ M({
11
+ __name: "PermissionWithTooltip",
12
+ props: {
13
+ modelValue: {
14
+ type: Array,
15
+ required: !0
16
+ }
17
+ },
18
+ setup(E) {
19
+ const { customReportPermissions: R } = G(), t = E, i = S(() => ve(t.modelValue, R.value)), { t: a } = K();
20
+ return (k, C) => {
21
+ const h = d("FmIcon"), y = d("FmTooltip");
22
+ return g(), $("div", we, [
23
+ x("span", null, L(c(a)("team.labels.allowed", { count: i.value.length })), 1),
24
+ m(y, {
25
+ variant: "plain",
26
+ placement: "top"
27
+ }, {
28
+ content: P(() => [
29
+ x("div", null, [
30
+ oe(L(c(a)("team.labels.permission")) + " ", 1),
31
+ (g(!0), $(H, null, ne(i.value, (l, r) => (g(), $("div", {
32
+ key: `${l}-${r}`
33
+ }, " - " + L(l), 1))), 128))
34
+ ])
35
+ ]),
36
+ default: P(() => [
37
+ m(h, {
38
+ name: "info",
39
+ class: "cursor-pointer text-fm-color-neutral-gray-300"
40
+ })
41
+ ]),
42
+ _: 1
43
+ })
44
+ ]);
45
+ };
46
+ }
47
+ }), Re = { class: "fm-typo-en-title-md-600" }, ke = { class: "flex items-center justify-start gap-8" }, Ce = /* @__PURE__ */ M({
48
+ __name: "PermissionSetForm",
49
+ props: {
50
+ modelValue: {
51
+ type: Object,
52
+ default: () => ({})
53
+ }
54
+ },
55
+ setup(E, { expose: R }) {
56
+ const t = E, { t: i } = K(), a = _(!1), k = S(() => {
57
+ var e;
58
+ return (e = t.modelValue) != null && e.id ? i("permissionSet.form.update.title") : i("permissionSet.form.create.title");
59
+ }), C = _(), h = Q(), y = Fe(h), l = Y(), r = _({ ...t.modelValue }), p = _([]), f = _([]), A = [(e) => !!e || i("permissionSet.form.nameRequired")], D = S(() => {
60
+ var e;
61
+ return (e = t.modelValue) != null && e.id ? i("permissionSet.form.update.confirmButtonLabel") : i("permissionSet.form.create.confirmButtonLabel");
62
+ }), U = S(
63
+ () => l.permissionSets.value.filter((e) => {
64
+ var s;
65
+ return e.id !== ((s = t.modelValue) == null ? void 0 : s.id);
66
+ }).map((e) => ({ label: e.name, value: e.id }))
67
+ ), F = S(
68
+ () => Z(p.value, l.permissionSets.value)
69
+ ), {
70
+ fetchCustomReportPermissions: W,
71
+ customReportPermissions: n,
72
+ isLoaded: o
73
+ } = G(), u = new Set(
74
+ J.filter((e) => e.subject.startsWith(Se)).map((e) => e.subject)
75
+ ), I = S(() => {
76
+ const e = new Set(u);
77
+ for (const s of n.value) e.add(s.subject);
78
+ return e;
79
+ }), O = S(() => {
80
+ const e = /* @__PURE__ */ new Set();
81
+ for (const s of J)
82
+ s.category === X.reports && e.add(s.subject);
83
+ for (const s of n.value)
84
+ s.category === X.reports && e.add(s.subject);
85
+ return e;
86
+ });
87
+ async function T() {
88
+ var s, v;
89
+ await ae(), a.value = !a.value, r.value = { ...t.modelValue }, p.value = ((s = t.modelValue) == null ? void 0 : s.permissionSetIds) ?? [];
90
+ const e = ((v = t.modelValue) == null ? void 0 : v.permissions) ?? [];
91
+ f.value = be(
92
+ N(F.value),
93
+ e
94
+ );
95
+ }
96
+ ie(a, async (e) => {
97
+ e && await W();
98
+ });
99
+ function ee() {
100
+ const e = N(F.value), s = o.value ? I.value : u, v = _e(f.value, s), V = he(v, O.value), w = Pe(V);
101
+ return ge(e, w);
102
+ }
103
+ function se() {
104
+ f.value = N(F.value);
105
+ }
106
+ async function te() {
107
+ var v, V;
108
+ const e = await ((v = C.value) == null ? void 0 : v.validateInputsWithoutSubmit()), s = (V = le().currentBusiness.value) == null ? void 0 : V.id;
109
+ !(e != null && e.length) && s && y.minor(async () => {
110
+ var j;
111
+ const w = ee();
112
+ if ((j = t.modelValue) != null && j.id) {
113
+ const B = {
114
+ name: r.value.name,
115
+ permissions: w,
116
+ permissionSetIds: p.value,
117
+ businessId: r.value.businessId
118
+ };
119
+ await l.updatePermissionSet(t.modelValue.id, B);
120
+ } else {
121
+ const B = {
122
+ name: r.value.name,
123
+ businessId: s,
124
+ permissions: w,
125
+ permissionSetIds: p.value
126
+ };
127
+ await l.createPermissionSet(B);
128
+ }
129
+ a.value = !1;
130
+ });
131
+ }
132
+ return R({
133
+ trigger: T
134
+ }), (e, s) => {
135
+ const v = d("FmTextField"), V = d("FmSelect"), w = d("FmForm"), j = d("FmButton"), B = d("FmSideSheet");
136
+ return g(), q(B, {
137
+ modelValue: a.value,
138
+ "onUpdate:modelValue": s[4] || (s[4] = (b) => a.value = b),
139
+ "max-width": 560,
140
+ "dismiss-away": ""
141
+ }, {
142
+ "side-sheet-header": P(() => [
143
+ x("p", Re, L(k.value), 1)
144
+ ]),
145
+ "side-sheet-footer": P(() => [
146
+ x("div", ke, [
147
+ m(j, {
148
+ label: D.value,
149
+ size: "md",
150
+ variant: "primary",
151
+ type: "submit",
152
+ onClick: te
153
+ }, null, 8, ["label"]),
154
+ m(j, {
155
+ label: c(i)("common.cancel"),
156
+ size: "md",
157
+ variant: "secondary",
158
+ onClick: s[3] || (s[3] = (b) => a.value = !1)
159
+ }, null, 8, ["label"])
160
+ ])
161
+ ]),
162
+ default: P(() => [
163
+ m(w, {
164
+ ref_key: "formRef",
165
+ ref: C
166
+ }, {
167
+ default: P(() => [
168
+ m(v, {
169
+ modelValue: r.value.name,
170
+ "onUpdate:modelValue": s[0] || (s[0] = (b) => r.value.name = b),
171
+ label: c(i)("permissionSet.form.name"),
172
+ placeholder: c(i)("permissionSet.form.namePlaceholder"),
173
+ rules: A
174
+ }, null, 8, ["modelValue", "label", "placeholder"]),
175
+ m(V, {
176
+ modelValue: p.value,
177
+ "onUpdate:modelValue": [
178
+ s[1] || (s[1] = (b) => p.value = b),
179
+ se
180
+ ],
181
+ multiselect: "",
182
+ searchable: "",
183
+ "search-debounce": 300,
184
+ items: U.value,
185
+ label: c(i)("permissionSet.form.includedSets"),
186
+ placeholder: c(i)("permissionSet.form.includedSetsPlaceholder"),
187
+ class: "mt-16"
188
+ }, null, 8, ["modelValue", "items", "label", "placeholder"]),
189
+ m(Ve, {
190
+ modelValue: f.value,
191
+ "onUpdate:modelValue": s[2] || (s[2] = (b) => f.value = b),
192
+ "inherit-permissions": F.value,
193
+ class: "mt-24"
194
+ }, null, 8, ["modelValue", "inherit-permissions"])
195
+ ]),
196
+ _: 1
197
+ }, 512)
198
+ ]),
199
+ _: 1
200
+ }, 8, ["modelValue"]);
201
+ };
202
+ }
203
+ }), Ie = { class: "space-y-8" }, Te = { class: "flex justify-end xs:px-16" }, We = /* @__PURE__ */ M({
204
+ __name: "PermissionSetList",
205
+ setup(E, { expose: R }) {
206
+ const { t } = K(), { fetchCustomReportPermissions: i } = G(), a = Q(), k = me(), { breakpoints: C } = ce(), h = _(""), y = S(() => {
207
+ var n;
208
+ return (n = p.value) == null ? void 0 : n.filter((o) => {
209
+ const u = h.value.toLowerCase();
210
+ return o.name.toLowerCase().includes(u);
211
+ });
212
+ }), l = _(), r = Y(), p = S(
213
+ () => r.permissionSets.value
214
+ ), f = _();
215
+ async function A() {
216
+ await r.readPermissionSets();
217
+ }
218
+ function D(n) {
219
+ var o;
220
+ f.value = n, (o = l.value) == null || o.trigger();
221
+ }
222
+ const U = [
223
+ {
224
+ accessorKey: "name",
225
+ header: () => t("permissionSet.table.columns.name")
226
+ },
227
+ {
228
+ accessorKey: "permission",
229
+ header: () => t("permissionSet.table.columns.permissions"),
230
+ enableSorting: !1,
231
+ cell(n) {
232
+ const o = n.row.original, u = Z(
233
+ [o.id],
234
+ r.permissionSets.value
235
+ ), I = N(u);
236
+ return z(xe, { modelValue: I });
237
+ }
238
+ },
239
+ {
240
+ id: "action",
241
+ meta: {
242
+ cellClass: "pl-16",
243
+ headerContentClass: "-mx-16"
244
+ },
245
+ cell(n) {
246
+ return z("div", { class: "w-full flex justify-end items-center" }, [
247
+ z(ue.FmButton, {
248
+ prependIcon: "delete",
249
+ variant: pe.Tertiary,
250
+ textColor: de.NeutralGray400,
251
+ class: "flex flex-end",
252
+ onClick: (o) => {
253
+ o.stopPropagation(), W(n.row.original);
254
+ }
255
+ })
256
+ ]);
257
+ },
258
+ enableSorting: !1
259
+ }
260
+ ];
261
+ function F() {
262
+ var n;
263
+ f.value = void 0, (n = l.value) == null || n.trigger();
264
+ }
265
+ async function W(n) {
266
+ k.open({
267
+ title: t("permissionSet.form.delete.title"),
268
+ message: t("permissionSet.form.delete.confirmationMessage", { permissionSetName: n.name }),
269
+ minWidth: C.value.lg ? 588 : 0,
270
+ primaryActions: {
271
+ text: t("common.remove"),
272
+ close: !1,
273
+ variant: "destructive"
274
+ },
275
+ secondaryActions: { text: t("common.cancel"), close: !0 }
276
+ }).onPrimary(async () => {
277
+ try {
278
+ await r.deletePermissionSet(n.id), a.open({
279
+ message: t("permissionSet.form.delete.successMessage", { permissionSetName: n.name }),
280
+ type: "success"
281
+ });
282
+ } catch (o) {
283
+ const u = o instanceof ye && o.status === 409 ? o.message.includes("referenced by") ? t("permissionSet.form.delete.setReferencedConflictError", {
284
+ permissionSetName: n.name
285
+ }) : t("permissionSet.form.delete.conflictError", { permissionSetName: n.name }) : o instanceof Error ? o.message : `${o}`;
286
+ a.open({ message: u, type: "error" });
287
+ }
288
+ k.close();
289
+ });
290
+ }
291
+ return re(() => {
292
+ A(), i();
293
+ }), R({
294
+ create: F
295
+ }), (n, o) => {
296
+ const u = d("FmSearch"), I = d("FmTable"), O = d("FullWrapper");
297
+ return g(), $(H, null, [
298
+ m(Ce, {
299
+ ref_key: "permissionSetFormRef",
300
+ ref: l,
301
+ "model-value": f.value
302
+ }, null, 8, ["model-value"]),
303
+ x("div", Ie, [
304
+ x("div", Te, [
305
+ m(u, {
306
+ modelValue: h.value,
307
+ "onUpdate:modelValue": o[0] || (o[0] = (T) => h.value = T),
308
+ class: "w-[320px] xs:w-full",
309
+ autofocus: "",
310
+ placeholder: c(t)("permissionSet.search.placeholder")
311
+ }, null, 8, ["modelValue", "placeholder"])
312
+ ]),
313
+ p.value.length > 0 ? (g(), q(O, {
314
+ key: 0,
315
+ class: "overflow-auto"
316
+ }, {
317
+ default: P(() => [
318
+ m(I, {
319
+ "column-defs": U,
320
+ "row-data": y.value,
321
+ "page-size": y.value.length,
322
+ "pin-header-row": "",
323
+ "hide-footer": "",
324
+ "shrink-at": !1,
325
+ onRowClick: o[1] || (o[1] = (T) => D(T.original))
326
+ }, null, 8, ["row-data", "page-size"])
327
+ ]),
328
+ _: 1
329
+ })) : (g(), q(c(fe), {
330
+ key: 1,
331
+ title: c(t)("permissionSet.noData.title"),
332
+ subtitle: c(t)("permissionSet.noData.subtitle")
333
+ }, null, 8, ["title", "subtitle"]))
334
+ ])
335
+ ], 64);
336
+ };
337
+ }
338
+ });
339
+ export {
340
+ We as default
341
+ };