@feedmepos/mf-hrm-portal 2.0.18-dev → 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.
- package/dist/AuditLogList-CPG5uNyJ.js +980 -0
- package/dist/EmployeeList-CyF7_ax8.js +736 -0
- package/dist/FormSection.vue_vue_type_script_setup_true_lang-BVb8c4YU.js +71 -0
- package/dist/HorizontalSplitter-o860F4xM.js +12 -0
- package/dist/{Main-CvW6Vu8N.js → Main-BwMCrfKS.js} +761 -758
- package/dist/Main-S5kR_LNV.js +85 -0
- package/dist/{Main-CleutFvF.js → Main-y2ea2vuC.js} +176 -183
- package/dist/PermissionSetList-C5oGIsQP.js +341 -0
- package/dist/PortalPermissionEditor.vue_vue_type_script_setup_true_lang-VaY4Fg_h.js +3480 -0
- package/dist/RoleList-C95uKJ8O.js +530 -0
- package/dist/TeamMemberList-CEqYCWn6.js +1114 -0
- package/dist/TeamMemberList.vue_vue_type_style_index_0_scoped_473cbd86_lang-DJ-znUI3.js +34 -0
- package/dist/{TimesheetList-WqqoKPbg.js → TimesheetList-DXtxCeNh.js} +126 -132
- package/dist/{app-R5EioPr4.js → app-BwtXEFgW.js} +711 -759
- package/dist/app.js +1 -1
- package/dist/{dayjs.min-CN15Ft3o.js → dayjs.min-uVMAR_wK.js} +1 -1
- package/dist/employee-ImeXt_Q7.js +204 -0
- package/dist/{iteration-UBGGRoxQ.js → iteration-BjJgU8cS.js} +4688 -4732
- package/dist/{lodash-CC6qHVUo.js → lodash-CSw3Ei7_.js} +1 -1
- package/dist/{rule-B519XbW6.js → rule-B6wBPpcM.js} +265 -263
- package/dist/src/api/account/index.d.ts +4 -0
- package/dist/src/api/audit-log/index.d.ts +0 -9
- package/dist/src/api/index.d.ts +1 -0
- package/dist/src/components/CheckboxInput.vue.d.ts +1 -1
- package/dist/src/components/CollapsibleWrapper.vue.d.ts +0 -2
- package/dist/src/composables/useBasePermission.d.ts +0 -1
- package/dist/src/composables/useRestaurantMap.d.ts +329 -2
- package/dist/src/composables/useSupportedCountries.d.ts +5 -0
- package/dist/src/stores/role.d.ts +7 -7
- package/dist/src/stores/team.d.ts +6 -6
- package/dist/src/types/restaurant.d.ts +0 -11
- package/dist/src/types/team.d.ts +1 -1
- package/dist/src/views/hr/locales/index.d.ts +0 -16
- package/dist/src/views/team/components/BasePermission.vue.d.ts +7 -3
- package/dist/src/views/team/components/PosRolePermission.vue.d.ts +2 -2
- package/dist/src/views/team/locales/index.d.ts +0 -32
- package/dist/src/views/team/member/AddMemberForm.vue.d.ts +3 -5
- package/dist/style.css +1 -1
- package/dist/{timesheet-BylrXRfd.js → timesheet-D1f9XDxj.js} +2 -2
- package/dist/tsconfig.app.tsbuildinfo +1 -1
- package/dist/useAppStore-D7jswOfq.js +171 -0
- package/dist/useDebounce-B8ZPVS5C.js +15 -0
- package/dist/useDiscardConfirm-BHni0LNu.js +28 -0
- package/dist/{useLoading-rbrVwWuj.js → useLoading-kFlAIf6Y.js} +1 -1
- package/dist/{useReportPermissions-BOEZU86S.js → useReportPermissions-ClWD1GSr.js} +3 -3
- package/dist/useSearch-B6WK1LBB.js +15 -0
- package/package.json +1 -1
- package/dist/AuditLogList-CaoW9uYd.js +0 -1011
- package/dist/CollapsibleWrapper.vue_vue_type_script_setup_true_lang-BLJlmPVa.js +0 -58
- package/dist/EmployeeList-DcMvF9U5.js +0 -839
- package/dist/FormItem.vue_vue_type_script_setup_true_lang-CoorkndT.js +0 -34
- package/dist/FormSection.vue_vue_type_script_setup_true_lang-DknXTYiK.js +0 -49
- package/dist/Main-D7k57uq5.js +0 -87
- package/dist/PermissionSetList-CM7kbWkO.js +0 -347
- package/dist/PortalPermissionEditor.vue_vue_type_script_setup_true_lang-Ces9YwYB.js +0 -3443
- package/dist/RoleList-DR3eVJ9f.js +0 -545
- package/dist/Skeleton.vue_vue_type_script_setup_true_lang-B4PxNMwq.js +0 -16
- package/dist/TeamMemberList-CZZv4Pu5.js +0 -1038
- package/dist/employee-DwQlWLkL.js +0 -204
- package/dist/src/api/restaurant/index.d.ts +0 -5
- package/dist/src/components/Skeleton.vue.d.ts +0 -7
- package/dist/src/stores/restaurant.d.ts +0 -181
- package/dist/team-BGLhgx5P.js +0 -33
- package/dist/useAppStore-Akl8AoVN.js +0 -171
- package/dist/useDiscardConfirm-DPhEV6v0.js +0 -157
- package/dist/useSearch-BAPEUu1R.js +0 -15
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import { g as b, b as v, q as
|
|
2
|
-
import { e as I, P as
|
|
3
|
-
import { s as
|
|
4
|
-
import { defineStore as
|
|
1
|
+
import { g as b, b as v, q as F, s as k, d as H, e as h } from "./iteration-BjJgU8cS.js";
|
|
2
|
+
import { e as I, P as W, d as D, y as j, C as Y, i as J } from "./app-BwtXEFgW.js";
|
|
3
|
+
import { s as Z } from "./utils-BZkjJbju.js";
|
|
4
|
+
import { defineStore as V, storeToRefs as z } from "pinia";
|
|
5
5
|
import { ref as S, computed as T } from "vue";
|
|
6
|
-
import { useCoreStore as
|
|
6
|
+
import { useCoreStore as M } from "@feedmepos/mf-common";
|
|
7
7
|
const B = [
|
|
8
8
|
{
|
|
9
9
|
label: "",
|
|
@@ -351,83 +351,83 @@ const B = [
|
|
|
351
351
|
async delete(e) {
|
|
352
352
|
return b(await v().delete(`${A}/${e}`));
|
|
353
353
|
}
|
|
354
|
-
},
|
|
355
|
-
const { currentBusiness: e } =
|
|
354
|
+
}, q = V("permissionSet", () => {
|
|
355
|
+
const { currentBusiness: e } = M(), s = S([]), n = S(null);
|
|
356
356
|
async function o() {
|
|
357
357
|
var l;
|
|
358
|
-
const
|
|
359
|
-
if (
|
|
358
|
+
const c = ((l = e.value) == null ? void 0 : l._id) ?? null;
|
|
359
|
+
if (n.value === c) return;
|
|
360
360
|
const u = await O.read();
|
|
361
|
-
s.value = r(u),
|
|
361
|
+
s.value = r(u), n.value = c;
|
|
362
362
|
}
|
|
363
|
-
async function i(
|
|
364
|
-
const u = await O.create(
|
|
363
|
+
async function i(c) {
|
|
364
|
+
const u = await O.create(c);
|
|
365
365
|
s.value = r([...s.value, u]);
|
|
366
366
|
}
|
|
367
|
-
async function
|
|
368
|
-
const l = await O.update(
|
|
369
|
-
s.value = r(s.value.map((d) => d.id ===
|
|
367
|
+
async function t(c, u) {
|
|
368
|
+
const l = await O.update(c, u);
|
|
369
|
+
s.value = r(s.value.map((d) => d.id === c ? l : d));
|
|
370
370
|
}
|
|
371
|
-
async function c
|
|
372
|
-
await O.delete(
|
|
371
|
+
async function a(c) {
|
|
372
|
+
await O.delete(c), s.value = r(s.value.filter((u) => u.id !== c));
|
|
373
373
|
}
|
|
374
|
-
function r(
|
|
375
|
-
return
|
|
374
|
+
function r(c) {
|
|
375
|
+
return c.sort((u, l) => u.name.localeCompare(l.name));
|
|
376
376
|
}
|
|
377
377
|
return {
|
|
378
378
|
permissionSets: s,
|
|
379
379
|
readPermissionSets: o,
|
|
380
380
|
createPermissionSet: i,
|
|
381
|
-
updatePermissionSet:
|
|
382
|
-
deletePermissionSet:
|
|
381
|
+
updatePermissionSet: t,
|
|
382
|
+
deletePermissionSet: a
|
|
383
383
|
};
|
|
384
|
-
}),
|
|
385
|
-
const e =
|
|
384
|
+
}), ee = () => {
|
|
385
|
+
const e = q();
|
|
386
386
|
return {
|
|
387
387
|
...e,
|
|
388
|
-
...
|
|
388
|
+
...z(e)
|
|
389
389
|
};
|
|
390
390
|
};
|
|
391
391
|
function K(e) {
|
|
392
|
-
const s = /* @__PURE__ */ new Map(),
|
|
393
|
-
var r,
|
|
394
|
-
const u = `${
|
|
392
|
+
const s = /* @__PURE__ */ new Map(), n = /* @__PURE__ */ new Map(), o = (i, t, a) => {
|
|
393
|
+
var r, c;
|
|
394
|
+
const u = `${t.subject}::${JSON.stringify([...t.actions].sort())}`, l = i.get(u);
|
|
395
395
|
if (!l) {
|
|
396
|
-
i.set(u, { ...
|
|
396
|
+
i.set(u, { ...t, setNames: [a.name], setId: a._id });
|
|
397
397
|
return;
|
|
398
398
|
}
|
|
399
|
-
if (l.setNames.push(
|
|
400
|
-
const d = typeof l.conditions == "string" ? JSON.parse(l.conditions) : l.conditions, p = typeof
|
|
399
|
+
if (l.setNames.push(a.name), l.conditions && t.conditions) {
|
|
400
|
+
const d = typeof l.conditions == "string" ? JSON.parse(l.conditions) : l.conditions, p = typeof t.conditions == "string" ? JSON.parse(t.conditions) : t.conditions;
|
|
401
401
|
for (const m in p)
|
|
402
|
-
(r = d[m]) != null && r.$in && (
|
|
402
|
+
(r = d[m]) != null && r.$in && (c = p[m]) != null && c.$in ? d[m].$in = Array.from(/* @__PURE__ */ new Set([...d[m].$in, ...p[m].$in])) : d[m] || (d[m] = p[m]);
|
|
403
403
|
l.conditions = JSON.stringify(d);
|
|
404
404
|
}
|
|
405
405
|
};
|
|
406
406
|
for (const i of e)
|
|
407
|
-
for (const
|
|
408
|
-
o(
|
|
409
|
-
return [...Array.from(s.values()), ...Array.from(
|
|
407
|
+
for (const t of i.permissions)
|
|
408
|
+
o(t.inverted ? n : s, t, i);
|
|
409
|
+
return [...Array.from(s.values()), ...Array.from(n.values())];
|
|
410
410
|
}
|
|
411
411
|
function U(e, s) {
|
|
412
412
|
return `${e}::${[...s].sort().join(",")}`;
|
|
413
413
|
}
|
|
414
414
|
function X(e, s) {
|
|
415
|
-
const
|
|
415
|
+
const n = [...e], o = /* @__PURE__ */ new Set(), i = /* @__PURE__ */ new Set(), t = /* @__PURE__ */ new Set();
|
|
416
416
|
for (const r of e) {
|
|
417
|
-
const
|
|
418
|
-
o.add(U(
|
|
417
|
+
const c = I(r.subject);
|
|
418
|
+
o.add(U(c, r.actions)), r.inverted && r.actions.includes("manage") && i.add(`set_${c}`), !r.inverted && r.actions.includes("manage") && t.add(c);
|
|
419
419
|
}
|
|
420
|
-
const
|
|
421
|
-
for (;
|
|
422
|
-
const r =
|
|
423
|
-
if (!u || i.has(
|
|
424
|
-
i.add(
|
|
425
|
-
const l =
|
|
420
|
+
const a = [...e];
|
|
421
|
+
for (; a.length > 0; ) {
|
|
422
|
+
const r = a.shift(), c = `set_${I(r.subject)}`, u = s[c];
|
|
423
|
+
if (!u || i.has(c) || !r.actions.includes("manage") || r.inverted) continue;
|
|
424
|
+
i.add(c);
|
|
425
|
+
const l = se(r);
|
|
426
426
|
r.source && !r.source.trace && (r.source = { ...r.source, trace: l });
|
|
427
427
|
const d = [...l, `${u.name} (system)`];
|
|
428
428
|
for (const p of u.permissions ?? []) {
|
|
429
429
|
const m = I(p.subject), f = U(m, p.actions);
|
|
430
|
-
o.has(f) ||
|
|
430
|
+
o.has(f) || t.has(m) || (o.add(f), n.push({
|
|
431
431
|
...p,
|
|
432
432
|
// FdoPermissionRule.fields is string[] | null; RawRule expects string[] | undefined
|
|
433
433
|
fields: p.fields ?? void 0,
|
|
@@ -450,15 +450,15 @@ function X(e, s) {
|
|
|
450
450
|
trace: d
|
|
451
451
|
}
|
|
452
452
|
};
|
|
453
|
-
o.has(f) || (o.add(f),
|
|
453
|
+
o.has(f) || (o.add(f), n.push(g)), a.push(g);
|
|
454
454
|
}
|
|
455
455
|
}
|
|
456
|
-
return [...
|
|
456
|
+
return [...n.filter((r) => !r.inverted), ...n.filter((r) => r.inverted)];
|
|
457
457
|
}
|
|
458
|
-
function
|
|
458
|
+
function se(e) {
|
|
459
459
|
if (!e.source) return [];
|
|
460
|
-
const { type: s, trace:
|
|
461
|
-
if (
|
|
460
|
+
const { type: s, trace: n, permissionSetName: o } = e.source;
|
|
461
|
+
if (n && n.length > 0) return n;
|
|
462
462
|
switch (s) {
|
|
463
463
|
case "permissionSet":
|
|
464
464
|
return o ? [o] : [];
|
|
@@ -468,47 +468,47 @@ function ne(e) {
|
|
|
468
468
|
return [];
|
|
469
469
|
}
|
|
470
470
|
}
|
|
471
|
-
function Q(e, s,
|
|
471
|
+
function Q(e, s, n = /* @__PURE__ */ new Set()) {
|
|
472
472
|
var i;
|
|
473
473
|
const o = [];
|
|
474
|
-
for (const
|
|
475
|
-
if (
|
|
476
|
-
|
|
477
|
-
const
|
|
478
|
-
|
|
474
|
+
for (const t of e) {
|
|
475
|
+
if (n.has(t)) continue;
|
|
476
|
+
n.add(t);
|
|
477
|
+
const a = s.find((r) => r.id === t);
|
|
478
|
+
a && (o.push(a), (i = a.permissionSetIds) != null && i.length && o.push(...Q(a.permissionSetIds, s, n)));
|
|
479
479
|
}
|
|
480
480
|
return o;
|
|
481
481
|
}
|
|
482
|
-
function
|
|
482
|
+
function ye(e) {
|
|
483
483
|
const s = K(e).map(
|
|
484
|
-
({ setNames: i, setId:
|
|
485
|
-
),
|
|
486
|
-
return
|
|
484
|
+
({ setNames: i, setId: t, ...a }) => a
|
|
485
|
+
), n = s.filter((i) => !i.inverted), o = s.filter((i) => i.inverted);
|
|
486
|
+
return L(n, o);
|
|
487
487
|
}
|
|
488
|
-
function
|
|
488
|
+
function Pe(e, s, n) {
|
|
489
489
|
const o = /* @__PURE__ */ new Map();
|
|
490
490
|
return e.forEach(
|
|
491
|
-
({ name: i, permissions:
|
|
491
|
+
({ name: i, permissions: t }) => t.forEach(({ conditions: a, actions: r }) => {
|
|
492
492
|
var u, l;
|
|
493
|
-
const
|
|
494
|
-
(u =
|
|
493
|
+
const c = JSON.parse(a || "{}");
|
|
494
|
+
(u = c[s]) != null && u.$in ? (l = c[s]) == null || l.$in.forEach(
|
|
495
495
|
(d) => (o.get(d) ?? o.set(d, /* @__PURE__ */ new Set()).get(d)).add(i)
|
|
496
|
-
) : r[0] === "manage" &&
|
|
496
|
+
) : r[0] === "manage" && n.forEach((d) => {
|
|
497
497
|
(o.get(d) ?? o.set(d, /* @__PURE__ */ new Set()).get(d)).add(i);
|
|
498
498
|
});
|
|
499
499
|
})
|
|
500
|
-
), [...o].map(([i,
|
|
500
|
+
), [...o].map(([i, t]) => ({
|
|
501
501
|
id: i,
|
|
502
|
-
setNames: [...
|
|
502
|
+
setNames: [...t]
|
|
503
503
|
}));
|
|
504
504
|
}
|
|
505
|
-
function
|
|
506
|
-
const
|
|
505
|
+
function we(e, s) {
|
|
506
|
+
const n = (r, c) => {
|
|
507
507
|
const u = { ...r }, l = JSON.parse(u.conditions || "{}");
|
|
508
|
-
if (
|
|
509
|
-
if (
|
|
508
|
+
if (c)
|
|
509
|
+
if (c.length > 0) {
|
|
510
510
|
const d = Object.keys(l)[0];
|
|
511
|
-
l[d].$in =
|
|
511
|
+
l[d].$in = c;
|
|
512
512
|
} else
|
|
513
513
|
delete u.conditions;
|
|
514
514
|
return {
|
|
@@ -516,151 +516,151 @@ function $e(e, s) {
|
|
|
516
516
|
inverted: !0,
|
|
517
517
|
...u.conditions && { conditions: JSON.stringify(l) }
|
|
518
518
|
};
|
|
519
|
-
}, o = new Map(e.map((r) => [r.subject, r])), i = new Map(s.map((r) => [r.subject, r])),
|
|
520
|
-
for (const r of
|
|
521
|
-
const
|
|
522
|
-
if (
|
|
523
|
-
if (
|
|
524
|
-
const l = JSON.parse(
|
|
519
|
+
}, o = new Map(e.map((r) => [r.subject, r])), i = new Map(s.map((r) => [r.subject, r])), t = [], a = /* @__PURE__ */ new Set([...o.keys(), ...i.keys()]);
|
|
520
|
+
for (const r of a) {
|
|
521
|
+
const c = o.get(r), u = i.get(r);
|
|
522
|
+
if (c && u) {
|
|
523
|
+
if (c.conditions && u.conditions) {
|
|
524
|
+
const l = JSON.parse(c.conditions), d = JSON.parse(u.conditions), p = Object.keys(l)[0], m = l[p].$in.filter(
|
|
525
525
|
(g) => !d[p].$in.includes(g)
|
|
526
526
|
);
|
|
527
|
-
m.length > 0 &&
|
|
527
|
+
m.length > 0 && t.push(n(c, m)), d[p].$in.filter(
|
|
528
528
|
(g) => !l[p].$in.includes(g)
|
|
529
|
-
).length > 0 &&
|
|
530
|
-
} else if (!
|
|
531
|
-
|
|
532
|
-
else if (!
|
|
533
|
-
const l = new Set(
|
|
529
|
+
).length > 0 && t.push(u);
|
|
530
|
+
} else if (!c.conditions && u.conditions)
|
|
531
|
+
t.push(u);
|
|
532
|
+
else if (!c.conditions && !u.conditions) {
|
|
533
|
+
const l = new Set(c.actions), d = new Set(u.actions), p = u.actions.some((f) => !l.has(f)), m = c.actions.filter((f) => !d.has(f));
|
|
534
534
|
if (p) {
|
|
535
535
|
const f = u.actions.filter((g) => !l.has(g));
|
|
536
|
-
|
|
536
|
+
t.push({
|
|
537
537
|
...u,
|
|
538
538
|
actions: f
|
|
539
539
|
});
|
|
540
540
|
}
|
|
541
|
-
m.length > 0 &&
|
|
542
|
-
...
|
|
541
|
+
m.length > 0 && t.push({
|
|
542
|
+
...c,
|
|
543
543
|
actions: m,
|
|
544
544
|
inverted: !0
|
|
545
545
|
});
|
|
546
546
|
}
|
|
547
547
|
continue;
|
|
548
548
|
}
|
|
549
|
-
if (
|
|
550
|
-
|
|
551
|
-
|
|
552
|
-
|
|
549
|
+
if (c) {
|
|
550
|
+
t.push(
|
|
551
|
+
n(
|
|
552
|
+
c,
|
|
553
553
|
// If base has conditions, set diffIds to empty array, disallow all access to collection
|
|
554
554
|
// otherwise, invert directly
|
|
555
|
-
|
|
555
|
+
c.conditions && []
|
|
556
556
|
)
|
|
557
557
|
);
|
|
558
558
|
continue;
|
|
559
559
|
}
|
|
560
|
-
u &&
|
|
560
|
+
u && t.push(u);
|
|
561
561
|
}
|
|
562
|
-
return
|
|
562
|
+
return t;
|
|
563
563
|
}
|
|
564
|
-
function
|
|
564
|
+
function $e(e) {
|
|
565
565
|
const s = X(
|
|
566
566
|
e,
|
|
567
|
-
|
|
568
|
-
),
|
|
567
|
+
W
|
|
568
|
+
), n = new Set(
|
|
569
569
|
s.filter((i) => {
|
|
570
|
-
var
|
|
571
|
-
return ((
|
|
570
|
+
var t;
|
|
571
|
+
return ((t = i.source) == null ? void 0 : t.type) === "systemPermissionSet" && !i.inverted;
|
|
572
572
|
}).map((i) => i.subject)
|
|
573
573
|
), o = new Set(
|
|
574
574
|
s.filter(
|
|
575
575
|
(i) => {
|
|
576
|
-
var
|
|
577
|
-
return ((
|
|
576
|
+
var t;
|
|
577
|
+
return ((t = i.source) == null ? void 0 : t.type) === "systemPermissionSet" && !i.inverted && i.actions.includes("manage");
|
|
578
578
|
}
|
|
579
579
|
).map((i) => i.subject)
|
|
580
580
|
);
|
|
581
|
-
return e.filter((i) => i.inverted ? !(
|
|
581
|
+
return e.filter((i) => i.inverted ? !(n.has(i.subject) && !o.has(i.subject)) : !n.has(i.subject));
|
|
582
582
|
}
|
|
583
|
-
const
|
|
584
|
-
function
|
|
585
|
-
const
|
|
586
|
-
const
|
|
587
|
-
return !
|
|
583
|
+
const ne = "business::report::";
|
|
584
|
+
function Re(e, s) {
|
|
585
|
+
const n = [], o = e.filter((i) => {
|
|
586
|
+
const t = i.subject;
|
|
587
|
+
return !t.startsWith(ne) || s.has(t) ? !0 : (n.push(t), !1);
|
|
588
588
|
});
|
|
589
|
-
return
|
|
589
|
+
return n.length > 0 && console.warn("[filterStalePermissions] dropped stale report permissions:", n), o;
|
|
590
590
|
}
|
|
591
|
-
const
|
|
592
|
-
function
|
|
593
|
-
const
|
|
594
|
-
(
|
|
591
|
+
const te = "business::report::reports::", oe = "business::report::allDefaultReports", ie = "business::report::allCustomReports";
|
|
592
|
+
function Ie(e, s) {
|
|
593
|
+
const n = e.find(
|
|
594
|
+
(a) => !a.inverted && a.subject === oe
|
|
595
595
|
), o = e.find(
|
|
596
|
-
(
|
|
596
|
+
(a) => !a.inverted && a.subject === ie
|
|
597
597
|
);
|
|
598
|
-
if (!
|
|
599
|
-
const i =
|
|
600
|
-
return e.reduce((
|
|
598
|
+
if (!n && !o) return e;
|
|
599
|
+
const i = n ? new Set(n.actions) : null, t = o ? new Set(o.actions) : null;
|
|
600
|
+
return e.reduce((a, r) => {
|
|
601
601
|
if (r.inverted)
|
|
602
|
-
return
|
|
603
|
-
const
|
|
604
|
-
if (!
|
|
605
|
-
return
|
|
606
|
-
const l = s.has(
|
|
602
|
+
return a.push(r), a;
|
|
603
|
+
const c = r.subject;
|
|
604
|
+
if (!c.startsWith(te))
|
|
605
|
+
return a.push(r), a;
|
|
606
|
+
const l = s.has(c) ? i : t;
|
|
607
607
|
if (!l)
|
|
608
|
-
return
|
|
609
|
-
if (l.has("manage")) return
|
|
608
|
+
return a.push(r), a;
|
|
609
|
+
if (l.has("manage")) return a;
|
|
610
610
|
const d = new Set(r.actions), p = d.has("manage");
|
|
611
611
|
let m = !1;
|
|
612
612
|
for (const f of l)
|
|
613
613
|
f !== "manage" && d.delete(f) && (m = !0);
|
|
614
|
-
return p && m && d.delete("manage"), d.size === 0 ||
|
|
614
|
+
return p && m && d.delete("manage"), d.size === 0 || a.push({ ...r, actions: Array.from(d) }), a;
|
|
615
615
|
}, []);
|
|
616
616
|
}
|
|
617
|
-
function
|
|
617
|
+
function L(e, s) {
|
|
618
618
|
var o, i;
|
|
619
|
-
const
|
|
620
|
-
for (const
|
|
621
|
-
if (
|
|
622
|
-
const r =
|
|
623
|
-
if (
|
|
619
|
+
const n = new Map(e.map((t) => [t.subject, t]));
|
|
620
|
+
for (const t of s) {
|
|
621
|
+
if (t.inverted) {
|
|
622
|
+
const r = n.get(t.subject);
|
|
623
|
+
if (t.conditions) {
|
|
624
624
|
if (r != null && r.conditions) {
|
|
625
|
-
const
|
|
626
|
-
m.length > 0 ?
|
|
625
|
+
const c = JSON.parse(r.conditions), u = JSON.parse(t.conditions), l = Object.keys(u)[0], d = ((o = u[l]) == null ? void 0 : o.$in) ?? [], m = (((i = c[l]) == null ? void 0 : i.$in) ?? []).filter((f) => !d.includes(f));
|
|
626
|
+
m.length > 0 ? n.set(t.subject, {
|
|
627
627
|
...r,
|
|
628
628
|
conditions: JSON.stringify({ [l]: { $in: m } })
|
|
629
|
-
}) :
|
|
629
|
+
}) : n.delete(t.subject);
|
|
630
630
|
} else
|
|
631
|
-
|
|
631
|
+
n.delete(t.subject);
|
|
632
632
|
continue;
|
|
633
633
|
}
|
|
634
634
|
if (r) {
|
|
635
|
-
const
|
|
636
|
-
u.length > 0 ?
|
|
635
|
+
const c = new Set(t.actions), u = r.actions.filter((l) => !c.has(l));
|
|
636
|
+
u.length > 0 ? n.set(t.subject, { ...r, actions: u }) : n.delete(t.subject);
|
|
637
637
|
continue;
|
|
638
638
|
}
|
|
639
639
|
continue;
|
|
640
640
|
}
|
|
641
|
-
if (
|
|
642
|
-
|
|
641
|
+
if (t.conditions) {
|
|
642
|
+
n.set(t.subject, t);
|
|
643
643
|
continue;
|
|
644
644
|
}
|
|
645
|
-
const
|
|
646
|
-
if (
|
|
645
|
+
const a = n.get(t.subject);
|
|
646
|
+
if (a) {
|
|
647
647
|
const r = [
|
|
648
648
|
.../* @__PURE__ */ new Set([
|
|
649
|
-
...
|
|
650
|
-
...
|
|
649
|
+
...a.actions,
|
|
650
|
+
...t.actions
|
|
651
651
|
])
|
|
652
652
|
];
|
|
653
|
-
|
|
653
|
+
n.set(t.subject, { ...a, actions: r });
|
|
654
654
|
} else
|
|
655
|
-
|
|
655
|
+
n.set(t.subject, t);
|
|
656
656
|
}
|
|
657
|
-
return Array.from(
|
|
657
|
+
return Array.from(n.values());
|
|
658
658
|
}
|
|
659
|
-
function
|
|
660
|
-
const
|
|
661
|
-
(
|
|
659
|
+
function re(e, s) {
|
|
660
|
+
const n = L(e, s), o = new Set(e.map((t) => t.subject)), i = s.filter(
|
|
661
|
+
(t) => t.inverted && !o.has(t.subject)
|
|
662
662
|
);
|
|
663
|
-
return [...
|
|
663
|
+
return [...n, ...i];
|
|
664
664
|
}
|
|
665
665
|
const y = "/permission-assignments", P = {
|
|
666
666
|
async readAll() {
|
|
@@ -686,89 +686,89 @@ const y = "/permission-assignments", P = {
|
|
|
686
686
|
await v().post("/my-permissions/report-manage", { permissionKey: e, label: s })
|
|
687
687
|
);
|
|
688
688
|
}
|
|
689
|
-
},
|
|
689
|
+
}, ae = V("permissionAssignment", () => {
|
|
690
690
|
const e = S([]);
|
|
691
691
|
async function s() {
|
|
692
692
|
const r = await P.readAll();
|
|
693
693
|
e.value = r;
|
|
694
694
|
}
|
|
695
|
-
async function
|
|
695
|
+
async function n(r) {
|
|
696
696
|
return await P.readByUserId(r);
|
|
697
697
|
}
|
|
698
698
|
async function o(r) {
|
|
699
|
-
const
|
|
700
|
-
e.value = [...e.value,
|
|
699
|
+
const c = await P.create(r);
|
|
700
|
+
e.value = [...e.value, c];
|
|
701
701
|
}
|
|
702
|
-
async function i(r,
|
|
703
|
-
const u = await P.update(r,
|
|
702
|
+
async function i(r, c) {
|
|
703
|
+
const u = await P.update(r, c);
|
|
704
704
|
e.value = e.value.map((l) => l.id === r ? u : l);
|
|
705
705
|
}
|
|
706
|
-
async function
|
|
707
|
-
await P.delete(r), e.value = e.value.filter((
|
|
706
|
+
async function t(r) {
|
|
707
|
+
await P.delete(r), e.value = e.value.filter((c) => c.id !== r);
|
|
708
708
|
}
|
|
709
|
-
function
|
|
710
|
-
return e.value.find((
|
|
709
|
+
function a(r) {
|
|
710
|
+
return e.value.find((c) => c.userId === r);
|
|
711
711
|
}
|
|
712
712
|
return {
|
|
713
713
|
permissionAssignments: e,
|
|
714
714
|
readPermissionAssignments: s,
|
|
715
|
-
readPermissionAssignmentByUserId:
|
|
715
|
+
readPermissionAssignmentByUserId: n,
|
|
716
716
|
createPermissionAssignment: o,
|
|
717
717
|
updatePermissionAssignment: i,
|
|
718
|
-
deletePermissionAssignment:
|
|
719
|
-
getPermissionAssignmentByUserId:
|
|
718
|
+
deletePermissionAssignment: t,
|
|
719
|
+
getPermissionAssignmentByUserId: a
|
|
720
720
|
};
|
|
721
|
-
}),
|
|
722
|
-
const e =
|
|
721
|
+
}), ce = () => {
|
|
722
|
+
const e = ae();
|
|
723
723
|
return {
|
|
724
724
|
...e,
|
|
725
|
-
...
|
|
725
|
+
...z(e)
|
|
726
726
|
};
|
|
727
|
-
},
|
|
727
|
+
}, ue = {
|
|
728
728
|
async fetchReportPermissions(e, s) {
|
|
729
|
-
const
|
|
729
|
+
const n = s ? { lang: s } : {};
|
|
730
730
|
return b(
|
|
731
|
-
await
|
|
731
|
+
await F().get(`/report-query/hrm/${e}/reports`, { params: n })
|
|
732
732
|
);
|
|
733
733
|
},
|
|
734
734
|
async fetchReportPermissionsForPortal(e, s) {
|
|
735
|
-
const
|
|
735
|
+
const n = s ? { isSupportPos: !1, lang: s } : { isSupportPos: !1 };
|
|
736
736
|
return b(
|
|
737
|
-
await
|
|
737
|
+
await F().get(`/report-query/hrm/${e}/reports`, { params: n })
|
|
738
738
|
);
|
|
739
739
|
}
|
|
740
|
-
}, _ = S([]), E = S(!1), w = S(!1), $ = S(null),
|
|
741
|
-
function
|
|
742
|
-
const e =
|
|
740
|
+
}, _ = S([]), E = S(!1), w = S(!1), $ = S(null), x = S(null), C = S(!1);
|
|
741
|
+
function le() {
|
|
742
|
+
const e = M();
|
|
743
743
|
async function s() {
|
|
744
|
-
var
|
|
745
|
-
const o = (
|
|
744
|
+
var t;
|
|
745
|
+
const o = (t = e.currentBusiness.value) == null ? void 0 : t.id;
|
|
746
746
|
if (!o) return;
|
|
747
747
|
const i = localStorage.getItem("locale");
|
|
748
|
-
if ($.value !== o && (_.value = [], E.value = !1, w.value = !1, $.value = o, C.value = !1), !(E.value &&
|
|
748
|
+
if ($.value !== o && (_.value = [], E.value = !1, w.value = !1, $.value = o, C.value = !1), !(E.value && x.value === i)) {
|
|
749
749
|
if (w.value) {
|
|
750
750
|
C.value = !0;
|
|
751
751
|
return;
|
|
752
752
|
}
|
|
753
753
|
w.value = !0;
|
|
754
754
|
try {
|
|
755
|
-
const
|
|
755
|
+
const a = await ue.fetchReportPermissionsForPortal(o, i);
|
|
756
756
|
if ($.value !== o) return;
|
|
757
|
-
_.value =
|
|
758
|
-
} catch (
|
|
757
|
+
_.value = a, E.value = !0, x.value = i;
|
|
758
|
+
} catch (a) {
|
|
759
759
|
if ($.value !== o) return;
|
|
760
|
-
console.warn("Failed to fetch custom report permissions:",
|
|
760
|
+
console.warn("Failed to fetch custom report permissions:", a), _.value = [];
|
|
761
761
|
} finally {
|
|
762
762
|
$.value === o && (w.value = !1, C.value && (C.value = !1, await s()));
|
|
763
763
|
}
|
|
764
764
|
}
|
|
765
765
|
}
|
|
766
|
-
const
|
|
766
|
+
const n = T(() => _.value.map(
|
|
767
767
|
(o) => o.isDefault ? {
|
|
768
768
|
label: o.name,
|
|
769
769
|
subject: `business::report::reports::${o.permissionKey}`,
|
|
770
770
|
actions: [j.manage, j.read, j.create],
|
|
771
|
-
category:
|
|
771
|
+
category: D.reports
|
|
772
772
|
} : {
|
|
773
773
|
label: o.name,
|
|
774
774
|
subject: `business::report::reports::${o.permissionKey}`,
|
|
@@ -779,63 +779,65 @@ function de() {
|
|
|
779
779
|
j.update,
|
|
780
780
|
j.delete
|
|
781
781
|
],
|
|
782
|
-
category:
|
|
782
|
+
category: D.customReports
|
|
783
783
|
}
|
|
784
784
|
));
|
|
785
785
|
return {
|
|
786
786
|
fetchCustomReportPermissions: s,
|
|
787
|
-
customReportPermissions:
|
|
787
|
+
customReportPermissions: n,
|
|
788
788
|
isLoading: T(() => w.value),
|
|
789
789
|
isLoaded: T(() => E.value)
|
|
790
790
|
};
|
|
791
791
|
}
|
|
792
792
|
function R(e) {
|
|
793
|
-
const s =
|
|
794
|
-
(
|
|
795
|
-
|
|
796
|
-
),
|
|
793
|
+
const s = M(), n = ee(), o = ce(), i = s.restaurants, { customReportPermissions: t } = le(), a = o.getPermissionAssignmentByUserId(e.id), r = Q(
|
|
794
|
+
(a == null ? void 0 : a.permissionSetIds) ?? [],
|
|
795
|
+
n.permissionSets.value
|
|
796
|
+
), c = K(r).map(
|
|
797
797
|
({ setNames: f, ...g }) => g
|
|
798
|
-
),
|
|
798
|
+
), u = a == null ? void 0 : a.customPermissions, l = u ?? e.permissions.map((f) => ({
|
|
799
799
|
...f,
|
|
800
800
|
subject: I(f.subject)
|
|
801
|
-
})),
|
|
802
|
-
|
|
803
|
-
|
|
804
|
-
).filter((f) => !f.inverted),
|
|
801
|
+
})), d = L(c, l), p = X(
|
|
802
|
+
re(c, l),
|
|
803
|
+
W
|
|
804
|
+
).filter((f) => !f.inverted), m = me(p) || i.value.map((f) => f._id);
|
|
805
805
|
return {
|
|
806
806
|
doc: e,
|
|
807
807
|
id: e.id,
|
|
808
808
|
name: e.name && e.name !== e.email && e.name !== e.phoneNumber ? e.name : "-",
|
|
809
809
|
phoneNumber: e.phoneNumber,
|
|
810
810
|
email: e.email,
|
|
811
|
-
restaurants:
|
|
812
|
-
m.map(
|
|
813
|
-
|
|
814
|
-
|
|
815
|
-
|
|
811
|
+
restaurants: k(
|
|
812
|
+
m.map(
|
|
813
|
+
(f) => {
|
|
814
|
+
var g;
|
|
815
|
+
return ((g = i.value.find((G) => G._id === f)) == null ? void 0 : g.profile.name) ?? "";
|
|
816
|
+
}
|
|
817
|
+
)
|
|
816
818
|
),
|
|
817
|
-
managableRestaurantIds:
|
|
818
|
-
permissionLabels:
|
|
819
|
-
permissions:
|
|
819
|
+
managableRestaurantIds: m,
|
|
820
|
+
permissionLabels: pe(p, t.value),
|
|
821
|
+
permissions: d
|
|
820
822
|
};
|
|
821
823
|
}
|
|
822
|
-
const
|
|
823
|
-
Object.values(
|
|
824
|
-
),
|
|
824
|
+
const de = Object.freeze(
|
|
825
|
+
Object.values(Y)
|
|
826
|
+
), Ae = {
|
|
825
827
|
async readTeamMembers() {
|
|
826
828
|
return b(
|
|
827
829
|
await v().get("/portal-users")
|
|
828
830
|
).map(R);
|
|
829
831
|
},
|
|
830
832
|
async readTeamMembersPage(e) {
|
|
831
|
-
var
|
|
833
|
+
var n, o;
|
|
832
834
|
const s = b(
|
|
833
835
|
await v().get("/portal-users/paged", {
|
|
834
836
|
params: {
|
|
835
837
|
limit: e.limit,
|
|
836
838
|
offset: e.offset,
|
|
837
839
|
search: e.search,
|
|
838
|
-
restaurantIds: (
|
|
840
|
+
restaurantIds: (n = e.restaurantIds) != null && n.length ? e.restaurantIds : void 0,
|
|
839
841
|
permissionSubjects: (o = e.permissionSubjects) != null && o.length ? e.permissionSubjects : void 0
|
|
840
842
|
}
|
|
841
843
|
})
|
|
@@ -867,15 +869,15 @@ const me = Object.freeze(
|
|
|
867
869
|
return b(await v().get("/portal-users")).map((s) => s.posUserId);
|
|
868
870
|
}
|
|
869
871
|
};
|
|
870
|
-
function
|
|
871
|
-
if (e.some((
|
|
872
|
-
const o = (
|
|
873
|
-
(
|
|
874
|
-
), i = new Set(o.map((
|
|
875
|
-
return
|
|
872
|
+
function Oe(e, s, n) {
|
|
873
|
+
if (e.some((a) => a.subject === "all")) return "All";
|
|
874
|
+
const o = (n ?? B).filter(
|
|
875
|
+
(a) => a.subject === s
|
|
876
|
+
), i = new Set(o.map((a) => N(a).value)), t = e.filter((a) => a.subject === s).filter((a) => i.has(N(a).value));
|
|
877
|
+
return t.length === o.length ? "All" : t.length === 0 ? "-" : `${t.length} permission allow`;
|
|
876
878
|
}
|
|
877
879
|
function N(e) {
|
|
878
|
-
const s =
|
|
880
|
+
const s = H(e), n = s.subject;
|
|
879
881
|
return {
|
|
880
882
|
...s,
|
|
881
883
|
get conditions() {
|
|
@@ -883,46 +885,46 @@ function N(e) {
|
|
|
883
885
|
},
|
|
884
886
|
get isDiscountOperation() {
|
|
885
887
|
var o;
|
|
886
|
-
return
|
|
888
|
+
return n === h.F_RULE_SUBJECT.enum.order && ((o = this.conditions) == null ? void 0 : o.operation) === h.F_RULE_ORDER_OPERATION.enum.discount;
|
|
887
889
|
},
|
|
888
890
|
get isOrderOperation() {
|
|
889
|
-
return
|
|
891
|
+
return n === h.F_RULE_SUBJECT.enum.order;
|
|
890
892
|
},
|
|
891
893
|
get isReportPermission() {
|
|
892
|
-
return
|
|
894
|
+
return n === h.F_RULE_SUBJECT.enum.report;
|
|
893
895
|
},
|
|
894
896
|
get formatted() {
|
|
895
897
|
const o = (i) => i.endsWith("_") ? i.slice(0, i.length - 1) : i;
|
|
896
|
-
return this.isOrderOperation ? o(this.conditions.operation) : this.isReportPermission ? o(this.conditions.name) :
|
|
898
|
+
return this.isOrderOperation ? o(this.conditions.operation) : this.isReportPermission ? o(this.conditions.name) : n.toString();
|
|
897
899
|
},
|
|
898
900
|
get label() {
|
|
899
|
-
return s.label ||
|
|
901
|
+
return s.label || Z(this.formatted);
|
|
900
902
|
},
|
|
901
903
|
get value() {
|
|
902
|
-
return this.isOrderOperation ? `${
|
|
904
|
+
return this.isOrderOperation ? `${n}:${this.conditions.operation}` : this.isReportPermission ? `${n}:${this.conditions.name}` : n.toString();
|
|
903
905
|
}
|
|
904
906
|
};
|
|
905
907
|
}
|
|
906
|
-
function
|
|
907
|
-
const s = e.map((
|
|
908
|
+
function _e(e) {
|
|
909
|
+
const s = e.map((n) => N(n)).find((n) => n.isDiscountOperation);
|
|
908
910
|
return s ? parseInt((s.conditions.adjustment.$lte * 100).toFixed(0)) : 100;
|
|
909
911
|
}
|
|
910
|
-
function
|
|
912
|
+
function me(e) {
|
|
911
913
|
const s = e.find(
|
|
912
|
-
(
|
|
914
|
+
(n) => n.subject === J.Subject.Restaurant.restaurant
|
|
913
915
|
);
|
|
914
916
|
return s ? s.conditions ? JSON.parse(s.conditions).restaurantId.$in : null : [];
|
|
915
917
|
}
|
|
916
|
-
function
|
|
918
|
+
function Ee(e) {
|
|
917
919
|
return (e == null ? void 0 : e.some((s) => s.subject === "all")) ?? !1;
|
|
918
920
|
}
|
|
919
|
-
function
|
|
920
|
-
const s = e.find((
|
|
921
|
+
function Ce(e) {
|
|
922
|
+
const s = e.find((n) => n.subject === J.Subject.Business.role);
|
|
921
923
|
return s ? s.conditions ? JSON.parse(s.conditions).roleId.$in : null : [];
|
|
922
924
|
}
|
|
923
|
-
function
|
|
924
|
-
return e.map((
|
|
925
|
-
const o =
|
|
925
|
+
function Ne(e, s) {
|
|
926
|
+
return e.map((n) => {
|
|
927
|
+
const o = fe(n);
|
|
926
928
|
return {
|
|
927
929
|
subject: o.subject,
|
|
928
930
|
actions: o.actions,
|
|
@@ -933,62 +935,62 @@ function Te(e, s) {
|
|
|
933
935
|
};
|
|
934
936
|
});
|
|
935
937
|
}
|
|
936
|
-
function
|
|
937
|
-
const [s,
|
|
938
|
+
function fe(e) {
|
|
939
|
+
const [s, n] = e.split(":");
|
|
938
940
|
let o;
|
|
939
|
-
return
|
|
941
|
+
return n ? (o = B.find(
|
|
940
942
|
(i) => i.subject === s && [
|
|
941
943
|
(typeof i.conditions == "object" ? i.conditions : JSON.parse(i.conditions)).operation,
|
|
942
944
|
i.conditions.name
|
|
943
|
-
].includes(
|
|
945
|
+
].includes(n)
|
|
944
946
|
), !o && s === h.F_RULE_SUBJECT.enum.report && (o = {
|
|
945
947
|
label: "",
|
|
946
948
|
subject: h.F_RULE_SUBJECT.enum.report,
|
|
947
949
|
actions: ["read"],
|
|
948
|
-
conditions: { name:
|
|
950
|
+
conditions: { name: n },
|
|
949
951
|
inverted: !1,
|
|
950
952
|
reason: ""
|
|
951
953
|
})) : o = B.find((i) => i.subject === s), N(o || { subject: h.F_RULE_SUBJECT.enum.order, actions: [], label: "" });
|
|
952
954
|
}
|
|
953
|
-
function
|
|
954
|
-
return
|
|
955
|
-
e.reduce((
|
|
956
|
-
const i =
|
|
957
|
-
(
|
|
958
|
-
) || s.find((
|
|
955
|
+
function pe(e, s = []) {
|
|
956
|
+
return k(
|
|
957
|
+
e.reduce((n, o) => {
|
|
958
|
+
const i = de.find(
|
|
959
|
+
(t) => t.subject === o.subject && o.actions.includes("manage")
|
|
960
|
+
) || s.find((t) => t.subject === o.subject);
|
|
959
961
|
if (i) {
|
|
960
|
-
const
|
|
961
|
-
|
|
962
|
+
const t = i.subject === J.Subject.Business.inventory_stock ? "Warehouse Management" : i.label;
|
|
963
|
+
n.push(t);
|
|
962
964
|
}
|
|
963
|
-
return
|
|
965
|
+
return n;
|
|
964
966
|
}, [])
|
|
965
967
|
);
|
|
966
968
|
}
|
|
967
969
|
export {
|
|
968
970
|
X as $,
|
|
969
|
-
|
|
970
|
-
|
|
971
|
-
|
|
971
|
+
ue as R,
|
|
972
|
+
Oe as a,
|
|
973
|
+
re as b,
|
|
972
974
|
Q as c,
|
|
973
|
-
|
|
975
|
+
le as d,
|
|
974
976
|
B as e,
|
|
975
|
-
|
|
976
|
-
|
|
977
|
-
|
|
978
|
-
|
|
979
|
-
|
|
980
|
-
|
|
981
|
-
|
|
982
|
-
|
|
983
|
-
|
|
984
|
-
|
|
985
|
-
|
|
986
|
-
|
|
977
|
+
Ne as f,
|
|
978
|
+
_e as g,
|
|
979
|
+
Ee as h,
|
|
980
|
+
ne as i,
|
|
981
|
+
Ce as j,
|
|
982
|
+
Re as k,
|
|
983
|
+
Ie as l,
|
|
984
|
+
ye as m,
|
|
985
|
+
we as n,
|
|
986
|
+
ce as o,
|
|
987
|
+
de as p,
|
|
988
|
+
pe as q,
|
|
987
989
|
N as r,
|
|
988
|
-
|
|
989
|
-
|
|
990
|
-
|
|
990
|
+
$e as s,
|
|
991
|
+
Ae as t,
|
|
992
|
+
ee as u,
|
|
991
993
|
K as v,
|
|
992
|
-
|
|
993
|
-
|
|
994
|
+
Pe as w,
|
|
995
|
+
me as x
|
|
994
996
|
};
|