@feedmepos/mf-hrm-portal 2.2.4 → 2.2.5-dev.10
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{ApprovalCodeList-ChGQwko6.js → ApprovalCodeList-BsDMMSIz.js} +7 -7
- package/dist/{AuditLogList-Cpj8O5qS.js → AuditLogList-CGNZdtmn.js} +244 -241
- package/dist/{ConditionBuilderForm.vue_vue_type_script_setup_true_lang-CNmbZlVZ.js → ConditionBuilderForm.vue_vue_type_script_setup_true_lang-C6MoToqi.js} +2 -2
- package/dist/EmployeeList-B_OuDWWQ.js +787 -0
- package/dist/{FormItem.vue_vue_type_script_setup_true_lang-DPT2FoIc.js → FormItem.vue_vue_type_script_setup_true_lang-CUnlKsxk.js} +1 -1
- package/dist/{GrantUserList-CAXJmQ4i.js → GrantUserList-Bd0lXmFo.js} +8 -8
- package/dist/{Main-Ada9K_jO.js → Main-B66lSeOv.js} +8 -8
- package/dist/{Main-T9-30vq8.js → Main-CzHSNHsH.js} +5 -5
- package/dist/{Main-7yT_w5vt.js → Main-njRQ1tFk.js} +11 -11
- package/dist/PasscodePinField.vue_vue_type_script_setup_true_lang-CqG0v0Sz.js +243 -0
- package/dist/{PermissionSetList-CkWYPmT2.js → PermissionSetList-GTI6Cwj5.js} +20 -20
- package/dist/{PortalPermissionEditor.vue_vue_type_script_setup_true_lang-CCLLrSyq.js → PortalPermissionEditor.vue_vue_type_script_setup_true_lang-C-QEQ-js.js} +937 -944
- package/dist/{PortalUserSearcher.vue_vue_type_style_index_0_scoped_827dfd60_lang-Z-DH7ouY.js → PortalUserSearcher.vue_vue_type_style_index_0_scoped_827dfd60_lang-XHuHin8t.js} +1 -1
- package/dist/{RoleList-Do36AmlU.js → RoleList-CmHgtM0m.js} +9 -9
- package/dist/ScheduleAddPositionModal.vue_vue_type_script_setup_true_lang-SFqxftRx.js +426 -0
- package/dist/ScheduleButton.vue_vue_type_script_setup_true_lang-CrWfo-zF.js +690 -0
- package/dist/ScheduleGeneralPage-DxFxJN5j.js +320 -0
- package/dist/SchedulePage-cJDI3-E7.js +14647 -0
- package/dist/SchedulePositionPage-n1wUShIM.js +293 -0
- package/dist/ScheduleSelect.vue_vue_type_script_setup_true_lang-B8W4sTsA.js +242 -0
- package/dist/SelectFilter-CG13h83-.js +264 -0
- package/dist/TeamMemberList-ByZt3VqN.js +1154 -0
- package/dist/{TimesheetList-DboJ2_89.js → TimesheetList-Dv0-W--W.js} +71 -68
- package/dist/{TimesheetList.vue_vue_type_style_index_0_scoped_2c7a177a_lang-C4g8wRjv.js → TimesheetList.vue_vue_type_style_index_0_scoped_63294af2_lang-DIo6h5-a.js} +3 -3
- package/dist/_plugin-vue_export-helper-CHgC5LLL.js +9 -0
- package/dist/{app-CcCcPbyB.js → app-SCXGJ95F.js} +3182 -2565
- package/dist/app.js +1 -1
- package/dist/{approval-code-BRClD2HN.js → approval-code-jIjkeVEb.js} +1 -1
- package/dist/{dayjs.min-lvkj1Rwa.js → dayjs.min-DqMLPYv-.js} +1 -1
- package/dist/employee-DT_xYQkz.js +204 -0
- package/dist/{grant-user-Dhi3ilC_.js → grant-user-SNiDV22U.js} +1 -1
- package/dist/{iteration-LZbo-knt.js → iteration-B5dB9ecy.js} +1 -1
- package/dist/{lodash-CKzaMa7f.js → lodash-CRHFapxI.js} +1 -1
- package/dist/{restaurant-DiYb0pCm.js → restaurant-BTpBmfBV.js} +2 -2
- package/dist/{role-BZr8zzeq.js → role-CJm8pXaw.js} +2 -2
- package/dist/{rule-DNaqlUUB.js → rule-AJm-eVzJ.js} +291 -279
- package/dist/src/api/employee/index.d.ts +5 -1
- package/dist/src/api/schedule/index.d.ts +41 -0
- package/dist/src/api/team/index.d.ts +3 -0
- package/dist/src/components/form/OutletRoleAssignment.vue.d.ts +16 -0
- package/dist/src/components/form/PasscodeGenerateButton.vue.d.ts +15 -0
- package/dist/src/components/form/PasscodePinField.vue.d.ts +18 -0
- package/dist/src/components/layout/AppSidebar.vue.d.ts +2 -0
- package/dist/src/components/layout/PortalShell.vue.d.ts +12 -0
- package/dist/src/components/layout/withShell.d.ts +14 -0
- package/dist/src/helpers/outlet-role-assignment.d.ts +40 -0
- package/dist/src/helpers/rule.d.ts +15 -0
- package/dist/src/helpers/string.d.ts +2 -1
- package/dist/src/router/shared.d.ts +4 -1
- package/dist/src/types/schedule.d.ts +232 -0
- package/dist/src/views/audit-log/locales/index.d.ts +4 -0
- package/dist/src/views/hr/locales/index.d.ts +8 -0
- package/dist/src/views/scheduling/ScheduleGeneralPage.vue.d.ts +3 -0
- package/dist/src/views/scheduling/SchedulePage.vue.d.ts +3 -0
- package/dist/src/views/scheduling/SchedulePositionPage.vue.d.ts +3 -0
- package/dist/src/views/scheduling/components/ScheduleAddEmployeeIdentitySection.vue.d.ts +6 -0
- package/dist/src/views/scheduling/components/ScheduleAddEmployeeModal.vue.d.ts +10 -0
- package/dist/src/views/scheduling/components/ScheduleAddEmployeeModeStep.vue.d.ts +6 -0
- package/dist/src/views/scheduling/components/ScheduleAddEmployeePosAccessSection.vue.d.ts +6 -0
- package/dist/src/views/scheduling/components/ScheduleAddEmployeePositionsSection.vue.d.ts +10 -0
- package/dist/src/views/scheduling/components/ScheduleAddEmployeeSchedulingSection.vue.d.ts +6 -0
- package/dist/src/views/scheduling/components/ScheduleAddPickPopover.vue.d.ts +6 -0
- package/dist/src/views/scheduling/components/ScheduleAddPositionModal.vue.d.ts +6 -0
- package/dist/src/views/scheduling/components/ScheduleAllShiftsRow.vue.d.ts +22 -0
- package/dist/src/views/scheduling/components/ScheduleAreaRows.vue.d.ts +34 -0
- package/dist/src/views/scheduling/components/ScheduleAssignEmployeePopover.vue.d.ts +6 -0
- package/dist/src/views/scheduling/components/ScheduleAutoScheduleModal.vue.d.ts +10 -0
- package/dist/src/views/scheduling/components/ScheduleButton.vue.d.ts +23 -0
- package/dist/src/views/scheduling/components/ScheduleChangeEmployeeModal.vue.d.ts +8 -0
- package/dist/src/views/scheduling/components/ScheduleConfirmModal.vue.d.ts +24 -0
- package/dist/src/views/scheduling/components/ScheduleCostRail.vue.d.ts +8 -0
- package/dist/src/views/scheduling/components/ScheduleDateRangePopover.vue.d.ts +6 -0
- package/dist/src/views/scheduling/components/ScheduleDayNotePopover.vue.d.ts +6 -0
- package/dist/src/views/scheduling/components/ScheduleDayTimeline.vue.d.ts +12 -0
- package/dist/src/views/scheduling/components/ScheduleDemandRow.vue.d.ts +23 -0
- package/dist/src/views/scheduling/components/ScheduleDemandSheet.vue.d.ts +10 -0
- package/dist/src/views/scheduling/components/ScheduleDotsIcon.vue.d.ts +2 -0
- package/dist/src/views/scheduling/components/ScheduleEmployeeDetailPanel.vue.d.ts +12 -0
- package/dist/src/views/scheduling/components/ScheduleEmployeeIdentity.vue.d.ts +17 -0
- package/dist/src/views/scheduling/components/ScheduleEmployeeMenu.vue.d.ts +6 -0
- package/dist/src/views/scheduling/components/ScheduleFilterBar.vue.d.ts +18 -0
- package/dist/src/views/scheduling/components/ScheduleGapPopover.vue.d.ts +6 -0
- package/dist/src/views/scheduling/components/ScheduleGridHeader.vue.d.ts +18 -0
- package/dist/src/views/scheduling/components/ScheduleGridSkeleton.vue.d.ts +2 -0
- package/dist/src/views/scheduling/components/ScheduleLeaveEditModal.vue.d.ts +8 -0
- package/dist/src/views/scheduling/components/ScheduleLegendBar.vue.d.ts +6 -0
- package/dist/src/views/scheduling/components/ScheduleOnboardingWelcome.vue.d.ts +12 -0
- package/dist/src/views/scheduling/components/ScheduleOnboardingWizard.vue.d.ts +9 -0
- package/dist/src/views/scheduling/components/ScheduleOpenShiftCardMenu.vue.d.ts +14 -0
- package/dist/src/views/scheduling/components/SchedulePdfPreview.vue.d.ts +6 -0
- package/dist/src/views/scheduling/components/SchedulePublishModal.vue.d.ts +8 -0
- package/dist/src/views/scheduling/components/ScheduleReviewBar.vue.d.ts +12 -0
- package/dist/src/views/scheduling/components/ScheduleSelect.vue.d.ts +54 -0
- package/dist/src/views/scheduling/components/ScheduleSelectExistingEmployeeModal.vue.d.ts +6 -0
- package/dist/src/views/scheduling/components/ScheduleShiftCardMenu.vue.d.ts +12 -0
- package/dist/src/views/scheduling/components/ScheduleShiftCell.vue.d.ts +35 -0
- package/dist/src/views/scheduling/components/ScheduleShiftHeadcountEditor.vue.d.ts +10 -0
- package/dist/src/views/scheduling/components/ScheduleShiftImpact.vue.d.ts +6 -0
- package/dist/src/views/scheduling/components/ScheduleShiftMoreOptions.vue.d.ts +6 -0
- package/dist/src/views/scheduling/components/ScheduleShiftPopover.vue.d.ts +16 -0
- package/dist/src/views/scheduling/components/ScheduleShiftRepeatDaysRow.vue.d.ts +8 -0
- package/dist/src/views/scheduling/components/ScheduleShiftSegmentsEditor.vue.d.ts +8 -0
- package/dist/src/views/scheduling/components/ScheduleShiftWhoPicker.vue.d.ts +25 -0
- package/dist/src/views/scheduling/components/ScheduleStackPopover.vue.d.ts +14 -0
- package/dist/src/views/scheduling/components/ScheduleStaffRail.vue.d.ts +18 -0
- package/dist/src/views/scheduling/components/ScheduleStaffRows.vue.d.ts +60 -0
- package/dist/src/views/scheduling/components/ScheduleStatsRow.vue.d.ts +12 -0
- package/dist/src/views/scheduling/components/ScheduleSwapShiftsModal.vue.d.ts +8 -0
- package/dist/src/views/scheduling/components/ScheduleTimePickerPopover.vue.d.ts +6 -0
- package/dist/src/views/scheduling/components/ScheduleTopbar.vue.d.ts +20 -0
- package/dist/src/views/scheduling/composables/schedule-add-employee-form.d.ts +72 -0
- package/dist/src/views/scheduling/composables/schedule-board-helpers.d.ts +38 -0
- package/dist/src/views/scheduling/composables/schedule-day-meta.d.ts +29 -0
- package/dist/src/views/scheduling/composables/schedule-employee-profile.d.ts +7 -0
- package/dist/src/views/scheduling/composables/schedule-popover-position.d.ts +16 -0
- package/dist/src/views/scheduling/composables/schedule-shift-time.d.ts +14 -0
- package/dist/src/views/scheduling/composables/schedule-week-cache.d.ts +10 -0
- package/dist/src/views/scheduling/composables/scheduleAutoSolver.d.ts +21 -0
- package/dist/src/views/scheduling/composables/useCollapsedList.d.ts +9 -0
- package/dist/src/views/scheduling/composables/useScheduleAddEmployee.d.ts +98 -0
- package/dist/src/views/scheduling/composables/useScheduleAddPick.d.ts +73 -0
- package/dist/src/views/scheduling/composables/useScheduleAllShiftsRow.d.ts +77 -0
- package/dist/src/views/scheduling/composables/useScheduleAreaBoard.d.ts +50 -0
- package/dist/src/views/scheduling/composables/useScheduleAreaDragDrop.d.ts +18 -0
- package/dist/src/views/scheduling/composables/useScheduleAssign.d.ts +122 -0
- package/dist/src/views/scheduling/composables/useScheduleAutoSchedule.d.ts +143 -0
- package/dist/src/views/scheduling/composables/useScheduleBoard.d.ts +426 -0
- package/dist/src/views/scheduling/composables/useScheduleCellState.d.ts +27 -0
- package/dist/src/views/scheduling/composables/useScheduleClashDetection.d.ts +18 -0
- package/dist/src/views/scheduling/composables/useScheduleCopyWeek.d.ts +19 -0
- package/dist/src/views/scheduling/composables/useScheduleCostRail.d.ts +43 -0
- package/dist/src/views/scheduling/composables/useScheduleDayNote.d.ts +48 -0
- package/dist/src/views/scheduling/composables/useScheduleDayTimeline.d.ts +77 -0
- package/dist/src/views/scheduling/composables/useScheduleDemand.d.ts +76 -0
- package/dist/src/views/scheduling/composables/useScheduleDemandRow.d.ts +45 -0
- package/dist/src/views/scheduling/composables/useScheduleDemandSheet.d.ts +145 -0
- package/dist/src/views/scheduling/composables/useScheduleDragDrop.d.ts +22 -0
- package/dist/src/views/scheduling/composables/useScheduleEmployeeIdentity.d.ts +41 -0
- package/dist/src/views/scheduling/composables/useScheduleEmployeeMenu.d.ts +35 -0
- package/dist/src/views/scheduling/composables/useScheduleEmployeeProfile.d.ts +16 -0
- package/dist/src/views/scheduling/composables/useScheduleExport.d.ts +26 -0
- package/dist/src/views/scheduling/composables/useScheduleFilterBar.d.ts +14 -0
- package/dist/src/views/scheduling/composables/useScheduleGapPopover.d.ts +82 -0
- package/dist/src/views/scheduling/composables/useScheduleLeave.d.ts +70 -0
- package/dist/src/views/scheduling/composables/useScheduleLegend.d.ts +15 -0
- package/dist/src/views/scheduling/composables/useScheduleLegendBar.d.ts +35 -0
- package/dist/src/views/scheduling/composables/useScheduleOnboardingWizard.d.ts +1316 -0
- package/dist/src/views/scheduling/composables/useScheduleOpenShiftCard.d.ts +23 -0
- package/dist/src/views/scheduling/composables/useScheduleOutlet.d.ts +20 -0
- package/dist/src/views/scheduling/composables/useSchedulePositionModal.d.ts +50 -0
- package/dist/src/views/scheduling/composables/useSchedulePositions.d.ts +32 -0
- package/dist/src/views/scheduling/composables/useSchedulePublish.d.ts +93 -0
- package/dist/src/views/scheduling/composables/useScheduleRangeCalendar.d.ts +27 -0
- package/dist/src/views/scheduling/composables/useScheduleRoster.d.ts +189 -0
- package/dist/src/views/scheduling/composables/useScheduleSettings.d.ts +54 -0
- package/dist/src/views/scheduling/composables/useScheduleSetupBanner.d.ts +18 -0
- package/dist/src/views/scheduling/composables/useScheduleShiftActions.d.ts +163 -0
- package/dist/src/views/scheduling/composables/useScheduleShiftPopover.d.ts +181 -0
- package/dist/src/views/scheduling/composables/useScheduleStaffRail.d.ts +23 -0
- package/dist/src/views/scheduling/composables/useScheduleStatsRow.d.ts +25 -0
- package/dist/src/views/scheduling/composables/useScheduleTimePicker.d.ts +49 -0
- package/dist/src/views/scheduling/composables/useScheduleTopbar.d.ts +10 -0
- package/dist/src/views/scheduling/composables/useScheduleViewportFit.d.ts +9 -0
- package/dist/src/views/scheduling/data.d.ts +110 -0
- package/dist/src/views/scheduling/locales/index.d.ts +496 -0
- package/dist/src/views/scheduling/schedule-store.d.ts +151 -0
- package/dist/src/views/scheduling/types.d.ts +324 -0
- package/dist/src/views/team/components/PortalConditionForm.vue.d.ts +2 -2
- package/dist/src/views/team/condition-builders/ConditionBuilderForm.vue.d.ts +2 -2
- package/dist/src/views/team/locales/index.d.ts +12 -0
- package/dist/src/views/team/member/AddMemberForm.vue.d.ts +1 -0
- package/dist/src/views/team/member/TeamMemberMasterUser.vue.d.ts +21 -3
- package/dist/string-VNuQNweN.js +15 -0
- package/dist/style.css +1 -1
- package/dist/tsconfig.app.tsbuildinfo +1 -1
- package/dist/{useAppStore-BGhlB1_1.js → useAppStore-DCwd8GWN.js} +1 -1
- package/dist/{useLoading-CvgqVDbF.js → useLoading-CXzTpIVv.js} +1 -1
- package/dist/{useReportPermissions-Buzv6pkY.js → useReportPermissions-Cg3lV70m.js} +3 -3
- package/package.json +1 -1
- package/dist/EmployeeList-PdGzSCP-.js +0 -887
- package/dist/SelectFilter-ATOm0hdn.js +0 -269
- package/dist/Skeleton.vue_vue_type_script_setup_true_lang-B4PxNMwq.js +0 -16
- package/dist/TeamMemberList-CVVNnz0R.js +0 -1216
- package/dist/employee-CLgrXpmZ.js +0 -201
|
@@ -1,25 +1,25 @@
|
|
|
1
|
-
import { s as W, c as
|
|
2
|
-
import {
|
|
3
|
-
import { s as
|
|
4
|
-
import { g, b, q as
|
|
1
|
+
import { s as W, c as q, e as y } from "./iteration-B5dB9ecy.js";
|
|
2
|
+
import { e as O, b as V, c as _, v as F, n as h, O as ee, D as M } from "./app-SCXGJ95F.js";
|
|
3
|
+
import { s as se } from "./utils-BZkjJbju.js";
|
|
4
|
+
import { g, b as v, q as x, u as te } from "./restaurant-BTpBmfBV.js";
|
|
5
5
|
import { defineStore as z, storeToRefs as K } from "pinia";
|
|
6
6
|
import { ref as S, computed as T } from "vue";
|
|
7
7
|
import { useCoreStore as X } from "@feedmepos/mf-common";
|
|
8
8
|
const E = "/permission-sets", N = {
|
|
9
9
|
async read() {
|
|
10
|
-
return g(await
|
|
10
|
+
return g(await v().get(E));
|
|
11
11
|
},
|
|
12
12
|
async create(e) {
|
|
13
|
-
return g(await
|
|
13
|
+
return g(await v().post(E, e));
|
|
14
14
|
},
|
|
15
|
-
async update(e,
|
|
16
|
-
return g(await
|
|
15
|
+
async update(e, s) {
|
|
16
|
+
return g(await v().put(`${E}/${e}`, s));
|
|
17
17
|
},
|
|
18
18
|
async delete(e) {
|
|
19
|
-
return g(await
|
|
19
|
+
return g(await v().delete(`${E}/${e}`));
|
|
20
20
|
}
|
|
21
|
-
},
|
|
22
|
-
const { currentBusiness: e } = X(),
|
|
21
|
+
}, ne = z("permissionSet", () => {
|
|
22
|
+
const { currentBusiness: e } = X(), s = S([]), r = S(!1), n = S(null);
|
|
23
23
|
async function i() {
|
|
24
24
|
var l;
|
|
25
25
|
const c = ((l = e.value) == null ? void 0 : l._id) ?? null;
|
|
@@ -27,41 +27,41 @@ const E = "/permission-sets", N = {
|
|
|
27
27
|
try {
|
|
28
28
|
r.value = !0;
|
|
29
29
|
const d = await N.read();
|
|
30
|
-
|
|
30
|
+
s.value = u(d), n.value = c;
|
|
31
31
|
} finally {
|
|
32
32
|
r.value = !1;
|
|
33
33
|
}
|
|
34
34
|
}
|
|
35
|
-
async function
|
|
35
|
+
async function t(c) {
|
|
36
36
|
const l = await N.create(c);
|
|
37
|
-
|
|
37
|
+
s.value = u([...s.value, l]);
|
|
38
38
|
}
|
|
39
39
|
async function a(c, l) {
|
|
40
40
|
const d = await N.update(c, l);
|
|
41
|
-
|
|
41
|
+
s.value = u(s.value.map((f) => f.id === c ? d : f));
|
|
42
42
|
}
|
|
43
43
|
async function o(c) {
|
|
44
|
-
await N.delete(c),
|
|
44
|
+
await N.delete(c), s.value = u(s.value.filter((l) => l.id !== c));
|
|
45
45
|
}
|
|
46
46
|
function u(c) {
|
|
47
47
|
return c.sort((l, d) => l.name.localeCompare(d.name));
|
|
48
48
|
}
|
|
49
49
|
return {
|
|
50
|
-
permissionSets:
|
|
50
|
+
permissionSets: s,
|
|
51
51
|
isLoading: r,
|
|
52
52
|
readPermissionSets: i,
|
|
53
|
-
createPermissionSet:
|
|
53
|
+
createPermissionSet: t,
|
|
54
54
|
updatePermissionSet: a,
|
|
55
55
|
deletePermissionSet: o
|
|
56
56
|
};
|
|
57
|
-
}),
|
|
58
|
-
const e =
|
|
57
|
+
}), re = () => {
|
|
58
|
+
const e = ne();
|
|
59
59
|
return {
|
|
60
60
|
...e,
|
|
61
61
|
...K(e)
|
|
62
62
|
};
|
|
63
63
|
};
|
|
64
|
-
function
|
|
64
|
+
function D(e) {
|
|
65
65
|
if (e) {
|
|
66
66
|
if (typeof e == "string") {
|
|
67
67
|
if (e === "{}") return;
|
|
@@ -77,60 +77,60 @@ function k(e) {
|
|
|
77
77
|
}
|
|
78
78
|
function j(e) {
|
|
79
79
|
return e ? Object.values(e).every(
|
|
80
|
-
(
|
|
80
|
+
(s) => s !== null && typeof s == "object" && !Array.isArray(s) && Object.keys(s).length === 1 && Array.isArray(s.$in)
|
|
81
81
|
) : !0;
|
|
82
82
|
}
|
|
83
83
|
function Q(e) {
|
|
84
|
-
const
|
|
84
|
+
const s = /* @__PURE__ */ new Map(), r = /* @__PURE__ */ new Map(), n = (i, t, a) => {
|
|
85
85
|
var o, u;
|
|
86
|
-
const c =
|
|
87
|
-
let l = `${
|
|
86
|
+
const c = D(t.conditions);
|
|
87
|
+
let l = `${t.subject}::${JSON.stringify([...t.actions].sort())}`;
|
|
88
88
|
j(c) || (l += `::${JSON.stringify(c)}`);
|
|
89
89
|
const d = i.get(l);
|
|
90
90
|
if (!d) {
|
|
91
|
-
i.set(l, { ...
|
|
91
|
+
i.set(l, { ...t, setNames: [a.name], setId: a._id });
|
|
92
92
|
return;
|
|
93
93
|
}
|
|
94
94
|
d.setNames.push(a.name);
|
|
95
|
-
const
|
|
96
|
-
if (!
|
|
95
|
+
const f = D(d.conditions);
|
|
96
|
+
if (!f || !c) {
|
|
97
97
|
d.conditions = void 0;
|
|
98
98
|
return;
|
|
99
99
|
}
|
|
100
|
-
for (const
|
|
101
|
-
(o = m
|
|
102
|
-
/* @__PURE__ */ new Set([...m
|
|
103
|
-
) : m
|
|
104
|
-
d.conditions = JSON.stringify(
|
|
100
|
+
for (const m in c)
|
|
101
|
+
(o = f[m]) != null && o.$in && (u = c[m]) != null && u.$in ? f[m].$in = Array.from(
|
|
102
|
+
/* @__PURE__ */ new Set([...f[m].$in, ...c[m].$in])
|
|
103
|
+
) : f[m] || (f[m] = c[m]);
|
|
104
|
+
d.conditions = JSON.stringify(f);
|
|
105
105
|
};
|
|
106
106
|
for (const i of e)
|
|
107
|
-
for (const
|
|
108
|
-
n(
|
|
109
|
-
return [...Array.from(
|
|
107
|
+
for (const t of i.permissions)
|
|
108
|
+
n(t.inverted ? r : s, t, i);
|
|
109
|
+
return [...Array.from(s.values()), ...Array.from(r.values())];
|
|
110
110
|
}
|
|
111
|
-
function B(e,
|
|
112
|
-
return `${e}::${[...
|
|
111
|
+
function B(e, s) {
|
|
112
|
+
return `${e}::${[...s].sort().join(",")}`;
|
|
113
113
|
}
|
|
114
|
-
function G(e,
|
|
115
|
-
const r = [...e], n = /* @__PURE__ */ new Set(), i = /* @__PURE__ */ new Set(),
|
|
114
|
+
function G(e, s) {
|
|
115
|
+
const r = [...e], n = /* @__PURE__ */ new Set(), i = /* @__PURE__ */ new Set(), t = /* @__PURE__ */ new Set();
|
|
116
116
|
for (const o of e) {
|
|
117
117
|
const u = O(o.subject);
|
|
118
|
-
n.add(B(u, o.actions)), o.inverted && o.actions.includes("manage") && i.add(`set_${u}`), !o.inverted && o.actions.includes("manage") &&
|
|
118
|
+
n.add(B(u, o.actions)), o.inverted && o.actions.includes("manage") && i.add(`set_${u}`), !o.inverted && o.actions.includes("manage") && t.add(u);
|
|
119
119
|
}
|
|
120
120
|
const a = [...e];
|
|
121
121
|
for (; a.length > 0; ) {
|
|
122
|
-
const o = a.shift(), u = `set_${O(o.subject)}`, c =
|
|
122
|
+
const o = a.shift(), u = `set_${O(o.subject)}`, c = s[u];
|
|
123
123
|
if (!c || i.has(u) || !o.actions.includes("manage") || o.inverted) continue;
|
|
124
124
|
i.add(u);
|
|
125
|
-
const l =
|
|
125
|
+
const l = ie(o);
|
|
126
126
|
o.source && !o.source.trace && (o.source = { ...o.source, trace: l });
|
|
127
127
|
const d = [...l, `${c.name} (system)`];
|
|
128
|
-
for (const
|
|
129
|
-
const
|
|
130
|
-
n.has(p) ||
|
|
131
|
-
...
|
|
128
|
+
for (const f of c.permissions ?? []) {
|
|
129
|
+
const m = O(f.subject), p = B(m, f.actions);
|
|
130
|
+
n.has(p) || t.has(m) || (n.add(p), r.push({
|
|
131
|
+
...f,
|
|
132
132
|
// FdoPermissionRule.fields is string[] | null; RawRule expects string[] | undefined
|
|
133
|
-
fields:
|
|
133
|
+
fields: f.fields ?? void 0,
|
|
134
134
|
source: {
|
|
135
135
|
type: "systemPermissionSet",
|
|
136
136
|
permissionSetId: c.key,
|
|
@@ -139,9 +139,9 @@ function G(e, t) {
|
|
|
139
139
|
}
|
|
140
140
|
}));
|
|
141
141
|
}
|
|
142
|
-
for (const
|
|
143
|
-
const
|
|
144
|
-
subject:
|
|
142
|
+
for (const f of c.permissionSets ?? []) {
|
|
143
|
+
const m = O(f), p = B(m, ["manage"]), b = {
|
|
144
|
+
subject: m,
|
|
145
145
|
actions: ["manage"],
|
|
146
146
|
source: {
|
|
147
147
|
type: "systemPermissionSet",
|
|
@@ -150,16 +150,16 @@ function G(e, t) {
|
|
|
150
150
|
trace: d
|
|
151
151
|
}
|
|
152
152
|
};
|
|
153
|
-
n.has(p) || (n.add(p), r.push(
|
|
153
|
+
n.has(p) || (n.add(p), r.push(b)), a.push(b);
|
|
154
154
|
}
|
|
155
155
|
}
|
|
156
156
|
return [...r.filter((o) => !o.inverted), ...r.filter((o) => o.inverted)];
|
|
157
157
|
}
|
|
158
|
-
function
|
|
158
|
+
function ie(e) {
|
|
159
159
|
if (!e.source) return [];
|
|
160
|
-
const { type:
|
|
160
|
+
const { type: s, trace: r, permissionSetName: n } = e.source;
|
|
161
161
|
if (r && r.length > 0) return r;
|
|
162
|
-
switch (
|
|
162
|
+
switch (s) {
|
|
163
163
|
case "permissionSet":
|
|
164
164
|
return n ? [n] : [];
|
|
165
165
|
case "custom":
|
|
@@ -168,41 +168,41 @@ function re(e) {
|
|
|
168
168
|
return [];
|
|
169
169
|
}
|
|
170
170
|
}
|
|
171
|
-
function H(e,
|
|
171
|
+
function H(e, s, r = /* @__PURE__ */ new Set()) {
|
|
172
172
|
var i;
|
|
173
173
|
const n = [];
|
|
174
|
-
for (const
|
|
175
|
-
if (r.has(
|
|
176
|
-
r.add(
|
|
177
|
-
const a =
|
|
178
|
-
a && (n.push(a), (i = a.permissionSetIds) != null && i.length && n.push(...H(a.permissionSetIds,
|
|
174
|
+
for (const t of e) {
|
|
175
|
+
if (r.has(t)) continue;
|
|
176
|
+
r.add(t);
|
|
177
|
+
const a = s.find((o) => o.id === t);
|
|
178
|
+
a && (n.push(a), (i = a.permissionSetIds) != null && i.length && n.push(...H(a.permissionSetIds, s, r)));
|
|
179
179
|
}
|
|
180
180
|
return n;
|
|
181
181
|
}
|
|
182
|
-
function
|
|
183
|
-
const
|
|
184
|
-
({ setNames: i, setId:
|
|
185
|
-
), r =
|
|
186
|
-
return
|
|
182
|
+
function Ae(e) {
|
|
183
|
+
const s = Q(e).map(
|
|
184
|
+
({ setNames: i, setId: t, ...a }) => a
|
|
185
|
+
), r = s.filter((i) => !i.inverted), n = s.filter((i) => i.inverted);
|
|
186
|
+
return L(r, n);
|
|
187
187
|
}
|
|
188
|
-
function
|
|
188
|
+
function Oe(e, s, r) {
|
|
189
189
|
const n = /* @__PURE__ */ new Map();
|
|
190
190
|
return e.forEach(
|
|
191
|
-
({ name: i, permissions:
|
|
191
|
+
({ name: i, permissions: t }) => t.forEach(({ conditions: a, actions: o }) => {
|
|
192
192
|
var c, l;
|
|
193
193
|
const u = JSON.parse(a || "{}");
|
|
194
|
-
(c = u[
|
|
194
|
+
(c = u[s]) != null && c.$in ? (l = u[s]) == null || l.$in.forEach(
|
|
195
195
|
(d) => (n.get(d) ?? n.set(d, /* @__PURE__ */ new Set()).get(d)).add(i)
|
|
196
196
|
) : o[0] === "manage" && r.forEach((d) => {
|
|
197
197
|
(n.get(d) ?? n.set(d, /* @__PURE__ */ new Set()).get(d)).add(i);
|
|
198
198
|
});
|
|
199
199
|
})
|
|
200
|
-
), [...n].map(([i,
|
|
200
|
+
), [...n].map(([i, t]) => ({
|
|
201
201
|
id: i,
|
|
202
|
-
setNames: [...
|
|
202
|
+
setNames: [...t]
|
|
203
203
|
}));
|
|
204
204
|
}
|
|
205
|
-
function
|
|
205
|
+
function _e(e, s) {
|
|
206
206
|
const r = (o, u) => {
|
|
207
207
|
const c = { ...o }, l = JSON.parse(c.conditions || "{}");
|
|
208
208
|
if (u)
|
|
@@ -216,45 +216,45 @@ function Oe(e, t) {
|
|
|
216
216
|
inverted: !0,
|
|
217
217
|
...c.conditions && { conditions: JSON.stringify(l) }
|
|
218
218
|
};
|
|
219
|
-
}, n = new Map(e.map((o) => [o.subject, o])), i = new Map(
|
|
219
|
+
}, n = new Map(e.map((o) => [o.subject, o])), i = new Map(s.map((o) => [o.subject, o])), t = [], a = /* @__PURE__ */ new Set([...n.keys(), ...i.keys()]);
|
|
220
220
|
for (const o of a) {
|
|
221
221
|
const u = n.get(o), c = i.get(o);
|
|
222
222
|
if (u && c) {
|
|
223
223
|
if (u.conditions && c.conditions) {
|
|
224
224
|
const l = JSON.parse(u.conditions), d = JSON.parse(c.conditions);
|
|
225
225
|
if (!j(l) || !j(d)) {
|
|
226
|
-
JSON.stringify(l) !== JSON.stringify(d) &&
|
|
226
|
+
JSON.stringify(l) !== JSON.stringify(d) && t.push(c);
|
|
227
227
|
continue;
|
|
228
228
|
}
|
|
229
|
-
const
|
|
230
|
-
(
|
|
229
|
+
const f = Object.keys(l)[0], m = l[f].$in.filter(
|
|
230
|
+
(b) => !d[f].$in.includes(b)
|
|
231
231
|
);
|
|
232
|
-
|
|
233
|
-
(
|
|
234
|
-
).length > 0 &&
|
|
232
|
+
m.length > 0 && t.push(r(u, m)), d[f].$in.filter(
|
|
233
|
+
(b) => !l[f].$in.includes(b)
|
|
234
|
+
).length > 0 && t.push(c);
|
|
235
235
|
} else if (!u.conditions && c.conditions)
|
|
236
|
-
|
|
236
|
+
t.push(c);
|
|
237
237
|
else if (u.conditions && !c.conditions)
|
|
238
|
-
j(JSON.parse(u.conditions)) ||
|
|
238
|
+
j(JSON.parse(u.conditions)) || t.push(c);
|
|
239
239
|
else if (!u.conditions && !c.conditions) {
|
|
240
|
-
const l = new Set(u.actions), d = new Set(c.actions),
|
|
241
|
-
if (
|
|
242
|
-
const p = c.actions.filter((
|
|
243
|
-
|
|
240
|
+
const l = new Set(u.actions), d = new Set(c.actions), f = c.actions.some((p) => !l.has(p)), m = u.actions.filter((p) => !d.has(p));
|
|
241
|
+
if (f) {
|
|
242
|
+
const p = c.actions.filter((b) => !l.has(b));
|
|
243
|
+
t.push({
|
|
244
244
|
...c,
|
|
245
245
|
actions: p
|
|
246
246
|
});
|
|
247
247
|
}
|
|
248
|
-
|
|
248
|
+
m.length > 0 && t.push({
|
|
249
249
|
...u,
|
|
250
|
-
actions:
|
|
250
|
+
actions: m,
|
|
251
251
|
inverted: !0
|
|
252
252
|
});
|
|
253
253
|
}
|
|
254
254
|
continue;
|
|
255
255
|
}
|
|
256
256
|
if (u) {
|
|
257
|
-
|
|
257
|
+
t.push(
|
|
258
258
|
r(
|
|
259
259
|
u,
|
|
260
260
|
// If base has conditions, set diffIds to empty array, disallow all access to collection
|
|
@@ -264,227 +264,227 @@ function Oe(e, t) {
|
|
|
264
264
|
);
|
|
265
265
|
continue;
|
|
266
266
|
}
|
|
267
|
-
c &&
|
|
267
|
+
c && t.push(c);
|
|
268
268
|
}
|
|
269
|
-
return
|
|
269
|
+
return t;
|
|
270
270
|
}
|
|
271
|
-
function
|
|
272
|
-
const
|
|
271
|
+
function Ee(e) {
|
|
272
|
+
const s = G(
|
|
273
273
|
e,
|
|
274
274
|
V
|
|
275
275
|
), r = new Set(
|
|
276
|
-
|
|
277
|
-
var
|
|
278
|
-
return ((
|
|
276
|
+
s.filter((i) => {
|
|
277
|
+
var t;
|
|
278
|
+
return ((t = i.source) == null ? void 0 : t.type) === "systemPermissionSet" && !i.inverted;
|
|
279
279
|
}).map((i) => i.subject)
|
|
280
280
|
), n = new Set(
|
|
281
|
-
|
|
281
|
+
s.filter(
|
|
282
282
|
(i) => {
|
|
283
|
-
var
|
|
284
|
-
return ((
|
|
283
|
+
var t;
|
|
284
|
+
return ((t = i.source) == null ? void 0 : t.type) === "systemPermissionSet" && !i.inverted && i.actions.includes("manage");
|
|
285
285
|
}
|
|
286
286
|
).map((i) => i.subject)
|
|
287
287
|
);
|
|
288
288
|
return e.filter((i) => i.inverted ? !(r.has(i.subject) && !n.has(i.subject)) : !r.has(i.subject));
|
|
289
289
|
}
|
|
290
|
-
const
|
|
291
|
-
function
|
|
290
|
+
const oe = "business::report::";
|
|
291
|
+
function Ne(e, s) {
|
|
292
292
|
const r = [], n = e.filter((i) => {
|
|
293
|
-
const
|
|
294
|
-
return !
|
|
293
|
+
const t = i.subject;
|
|
294
|
+
return !t.startsWith(oe) || s.has(t) ? !0 : (r.push(t), !1);
|
|
295
295
|
});
|
|
296
296
|
return r.length > 0 && console.warn("[filterStalePermissions] dropped stale report permissions:", r), n;
|
|
297
297
|
}
|
|
298
|
-
const
|
|
299
|
-
function
|
|
300
|
-
return e.conditions ? !!
|
|
298
|
+
const ae = "business::report::reports::", ce = _.Subject.Business.report_reports_allDefaultReports, ue = _.Subject.Business.report_reports_allCustomReports;
|
|
299
|
+
function le(e, s) {
|
|
300
|
+
return e.conditions ? !!s.conditions && e.conditions === s.conditions : !s.conditions;
|
|
301
301
|
}
|
|
302
|
-
function
|
|
302
|
+
function Ue(e, s) {
|
|
303
303
|
const r = e.find(
|
|
304
|
-
(a) => !a.inverted && a.subject === ae
|
|
305
|
-
), n = e.find(
|
|
306
304
|
(a) => !a.inverted && a.subject === ce
|
|
305
|
+
), n = e.find(
|
|
306
|
+
(a) => !a.inverted && a.subject === ue
|
|
307
307
|
);
|
|
308
308
|
if (!r && !n) return e;
|
|
309
|
-
const i = r ? new Set(r.actions) : null,
|
|
309
|
+
const i = r ? new Set(r.actions) : null, t = n ? new Set(n.actions) : null;
|
|
310
310
|
return e.reduce((a, o) => {
|
|
311
311
|
if (o.inverted)
|
|
312
312
|
return a.push(o), a;
|
|
313
313
|
const u = o.subject;
|
|
314
|
-
if (!u.startsWith(
|
|
314
|
+
if (!u.startsWith(ae))
|
|
315
315
|
return a.push(o), a;
|
|
316
|
-
const c =
|
|
317
|
-
if (!l || !d || !
|
|
316
|
+
const c = s.has(u), l = c ? i : t, d = c ? r : n;
|
|
317
|
+
if (!l || !d || !le(d, o))
|
|
318
318
|
return a.push(o), a;
|
|
319
319
|
if (l.has("manage")) return a;
|
|
320
|
-
const
|
|
321
|
-
if (
|
|
320
|
+
const f = o.actions;
|
|
321
|
+
if (f.includes("manage"))
|
|
322
322
|
return a.push(o), a;
|
|
323
|
-
const
|
|
323
|
+
const m = new Set(f);
|
|
324
324
|
for (const p of l)
|
|
325
|
-
|
|
326
|
-
return
|
|
325
|
+
m.delete(p);
|
|
326
|
+
return m.size === 0 || a.push({ ...o, actions: Array.from(m) }), a;
|
|
327
327
|
}, []);
|
|
328
328
|
}
|
|
329
|
-
function
|
|
329
|
+
function L(e, s) {
|
|
330
330
|
var n, i;
|
|
331
|
-
const r = new Map(e.map((
|
|
332
|
-
for (const
|
|
333
|
-
if (
|
|
334
|
-
const o = r.get(
|
|
335
|
-
if (
|
|
331
|
+
const r = new Map(e.map((t) => [t.subject, t]));
|
|
332
|
+
for (const t of s) {
|
|
333
|
+
if (t.inverted) {
|
|
334
|
+
const o = r.get(t.subject);
|
|
335
|
+
if (t.conditions) {
|
|
336
336
|
if (o != null && o.conditions) {
|
|
337
|
-
const u = JSON.parse(o.conditions), c = JSON.parse(
|
|
337
|
+
const u = JSON.parse(o.conditions), c = JSON.parse(t.conditions);
|
|
338
338
|
if (!j(u) || !j(c)) {
|
|
339
|
-
r.delete(
|
|
339
|
+
r.delete(t.subject);
|
|
340
340
|
continue;
|
|
341
341
|
}
|
|
342
|
-
const l = Object.keys(c)[0], d = ((n = c[l]) == null ? void 0 : n.$in) ?? [],
|
|
343
|
-
|
|
342
|
+
const l = Object.keys(c)[0], d = ((n = c[l]) == null ? void 0 : n.$in) ?? [], m = (((i = u[l]) == null ? void 0 : i.$in) ?? []).filter((p) => !d.includes(p));
|
|
343
|
+
m.length > 0 ? r.set(t.subject, {
|
|
344
344
|
...o,
|
|
345
|
-
conditions: JSON.stringify({ [l]: { $in:
|
|
346
|
-
}) : r.delete(
|
|
345
|
+
conditions: JSON.stringify({ [l]: { $in: m } })
|
|
346
|
+
}) : r.delete(t.subject);
|
|
347
347
|
} else
|
|
348
|
-
r.delete(
|
|
348
|
+
r.delete(t.subject);
|
|
349
349
|
continue;
|
|
350
350
|
}
|
|
351
351
|
if (o) {
|
|
352
|
-
const u = new Set(
|
|
353
|
-
c.length > 0 ? r.set(
|
|
352
|
+
const u = new Set(t.actions), c = o.actions.filter((l) => !u.has(l));
|
|
353
|
+
c.length > 0 ? r.set(t.subject, { ...o, actions: c }) : r.delete(t.subject);
|
|
354
354
|
continue;
|
|
355
355
|
}
|
|
356
356
|
continue;
|
|
357
357
|
}
|
|
358
|
-
if (
|
|
359
|
-
r.set(
|
|
358
|
+
if (t.conditions) {
|
|
359
|
+
r.set(t.subject, t);
|
|
360
360
|
continue;
|
|
361
361
|
}
|
|
362
|
-
const a = r.get(
|
|
362
|
+
const a = r.get(t.subject);
|
|
363
363
|
if (a != null && a.conditions && !j(JSON.parse(a.conditions))) {
|
|
364
|
-
r.set(
|
|
364
|
+
r.set(t.subject, t);
|
|
365
365
|
continue;
|
|
366
366
|
}
|
|
367
367
|
if (a) {
|
|
368
368
|
const o = [
|
|
369
369
|
.../* @__PURE__ */ new Set([
|
|
370
370
|
...a.actions,
|
|
371
|
-
...
|
|
371
|
+
...t.actions
|
|
372
372
|
])
|
|
373
373
|
];
|
|
374
|
-
r.set(
|
|
374
|
+
r.set(t.subject, { ...a, actions: o });
|
|
375
375
|
} else
|
|
376
|
-
r.set(
|
|
376
|
+
r.set(t.subject, t);
|
|
377
377
|
}
|
|
378
378
|
return Array.from(r.values());
|
|
379
379
|
}
|
|
380
|
-
function
|
|
381
|
-
const r =
|
|
382
|
-
(
|
|
380
|
+
function de(e, s) {
|
|
381
|
+
const r = L(e, s), n = new Set(e.map((t) => t.subject)), i = s.filter(
|
|
382
|
+
(t) => t.inverted && !n.has(t.subject)
|
|
383
383
|
);
|
|
384
384
|
return [...r, ...i];
|
|
385
385
|
}
|
|
386
|
-
const P = "/permission-assignments",
|
|
386
|
+
const P = "/permission-assignments", I = {
|
|
387
387
|
async readAll() {
|
|
388
|
-
return g(await
|
|
388
|
+
return g(await v().get(P));
|
|
389
389
|
},
|
|
390
390
|
async readByUserId(e) {
|
|
391
|
-
return g(await
|
|
391
|
+
return g(await v().get(`${P}/user/${e}`));
|
|
392
392
|
},
|
|
393
393
|
async readById(e) {
|
|
394
|
-
return g(await
|
|
394
|
+
return g(await v().get(`${P}/${e}`));
|
|
395
395
|
},
|
|
396
396
|
async create(e) {
|
|
397
|
-
return g(await
|
|
397
|
+
return g(await v().post(P, e));
|
|
398
398
|
},
|
|
399
|
-
async update(e,
|
|
400
|
-
return g(await
|
|
399
|
+
async update(e, s) {
|
|
400
|
+
return g(await v().put(`${P}/${e}`, s));
|
|
401
401
|
},
|
|
402
402
|
async delete(e) {
|
|
403
|
-
return g(await
|
|
403
|
+
return g(await v().delete(`${P}/${e}`));
|
|
404
404
|
},
|
|
405
|
-
async addReportManagePermission(e,
|
|
405
|
+
async addReportManagePermission(e, s) {
|
|
406
406
|
return g(
|
|
407
|
-
await
|
|
407
|
+
await v().post("/my-permissions/report-manage", { permissionKey: e, label: s })
|
|
408
408
|
);
|
|
409
409
|
}
|
|
410
|
-
},
|
|
410
|
+
}, fe = z("permissionAssignment", () => {
|
|
411
411
|
const e = S([]);
|
|
412
|
-
async function
|
|
413
|
-
const o = await
|
|
412
|
+
async function s() {
|
|
413
|
+
const o = await I.readAll();
|
|
414
414
|
e.value = o;
|
|
415
415
|
}
|
|
416
416
|
async function r(o) {
|
|
417
|
-
return await
|
|
417
|
+
return await I.readByUserId(o);
|
|
418
418
|
}
|
|
419
419
|
async function n(o) {
|
|
420
|
-
const u = await
|
|
420
|
+
const u = await I.create(o);
|
|
421
421
|
e.value = [...e.value, u];
|
|
422
422
|
}
|
|
423
423
|
async function i(o, u) {
|
|
424
|
-
const c = await
|
|
424
|
+
const c = await I.update(o, u);
|
|
425
425
|
e.value = e.value.map((l) => l.id === o ? c : l);
|
|
426
426
|
}
|
|
427
|
-
async function
|
|
428
|
-
await
|
|
427
|
+
async function t(o) {
|
|
428
|
+
await I.delete(o), e.value = e.value.filter((u) => u.id !== o);
|
|
429
429
|
}
|
|
430
430
|
function a(o) {
|
|
431
431
|
return e.value.find((u) => u.userId === o);
|
|
432
432
|
}
|
|
433
433
|
return {
|
|
434
434
|
permissionAssignments: e,
|
|
435
|
-
readPermissionAssignments:
|
|
435
|
+
readPermissionAssignments: s,
|
|
436
436
|
readPermissionAssignmentByUserId: r,
|
|
437
437
|
createPermissionAssignment: n,
|
|
438
438
|
updatePermissionAssignment: i,
|
|
439
|
-
deletePermissionAssignment:
|
|
439
|
+
deletePermissionAssignment: t,
|
|
440
440
|
getPermissionAssignmentByUserId: a
|
|
441
441
|
};
|
|
442
442
|
}), me = () => {
|
|
443
|
-
const e =
|
|
443
|
+
const e = fe();
|
|
444
444
|
return {
|
|
445
445
|
...e,
|
|
446
446
|
...K(e)
|
|
447
447
|
};
|
|
448
|
-
},
|
|
449
|
-
async fetchReportPermissions(e,
|
|
450
|
-
const r =
|
|
448
|
+
}, pe = {
|
|
449
|
+
async fetchReportPermissions(e, s) {
|
|
450
|
+
const r = s ? { lang: s } : {};
|
|
451
451
|
return g(
|
|
452
|
-
await
|
|
452
|
+
await x().get(`/report-query/hrm/${e}/reports`, { params: r })
|
|
453
453
|
);
|
|
454
454
|
},
|
|
455
|
-
async fetchReportPermissionsForPortal(e,
|
|
456
|
-
const r =
|
|
455
|
+
async fetchReportPermissionsForPortal(e, s) {
|
|
456
|
+
const r = s ? { isSupportPos: !1, lang: s } : { isSupportPos: !1 };
|
|
457
457
|
return g(
|
|
458
|
-
await
|
|
458
|
+
await x().get(`/report-query/hrm/${e}/reports`, { params: r })
|
|
459
459
|
);
|
|
460
460
|
}
|
|
461
|
-
},
|
|
462
|
-
function
|
|
461
|
+
}, U = S([]), C = S(!1), R = S(!1), $ = S(null), k = S(null), J = S(!1);
|
|
462
|
+
function ge() {
|
|
463
463
|
const e = X();
|
|
464
|
-
async function
|
|
465
|
-
var
|
|
466
|
-
const n = (
|
|
464
|
+
async function s() {
|
|
465
|
+
var t;
|
|
466
|
+
const n = (t = e.currentBusiness.value) == null ? void 0 : t.id;
|
|
467
467
|
if (!n) return;
|
|
468
468
|
const i = localStorage.getItem("locale");
|
|
469
|
-
if (
|
|
470
|
-
if (
|
|
471
|
-
|
|
469
|
+
if ($.value !== n && (U.value = [], C.value = !1, R.value = !1, $.value = n, J.value = !1), !(C.value && k.value === i)) {
|
|
470
|
+
if (R.value) {
|
|
471
|
+
J.value = !0;
|
|
472
472
|
return;
|
|
473
473
|
}
|
|
474
|
-
|
|
474
|
+
R.value = !0;
|
|
475
475
|
try {
|
|
476
|
-
const a = await
|
|
477
|
-
if (
|
|
478
|
-
|
|
476
|
+
const a = await pe.fetchReportPermissionsForPortal(n, i);
|
|
477
|
+
if ($.value !== n) return;
|
|
478
|
+
U.value = a, C.value = !0, k.value = i;
|
|
479
479
|
} catch (a) {
|
|
480
|
-
if (
|
|
481
|
-
console.warn("Failed to fetch custom report permissions:", a),
|
|
480
|
+
if ($.value !== n) return;
|
|
481
|
+
console.warn("Failed to fetch custom report permissions:", a), U.value = [];
|
|
482
482
|
} finally {
|
|
483
|
-
|
|
483
|
+
$.value === n && (R.value = !1, J.value && (J.value = !1, await s()));
|
|
484
484
|
}
|
|
485
485
|
}
|
|
486
486
|
}
|
|
487
|
-
const r = T(() =>
|
|
487
|
+
const r = T(() => U.value.map(
|
|
488
488
|
(n) => n.isDefault ? {
|
|
489
489
|
label: n.name,
|
|
490
490
|
subject: `business::report::reports::${n.permissionKey}`,
|
|
@@ -504,25 +504,25 @@ function pe() {
|
|
|
504
504
|
}
|
|
505
505
|
));
|
|
506
506
|
return {
|
|
507
|
-
fetchCustomReportPermissions:
|
|
507
|
+
fetchCustomReportPermissions: s,
|
|
508
508
|
customReportPermissions: r,
|
|
509
|
-
isLoading: T(() =>
|
|
510
|
-
isLoaded: T(() =>
|
|
509
|
+
isLoading: T(() => R.value),
|
|
510
|
+
isLoaded: T(() => C.value)
|
|
511
511
|
};
|
|
512
512
|
}
|
|
513
513
|
function A(e) {
|
|
514
|
-
const
|
|
515
|
-
(
|
|
516
|
-
|
|
514
|
+
const s = re(), r = me(), n = te().restaurants, { customReportPermissions: i } = ge(), t = r.getPermissionAssignmentByUserId(e.id), a = H(
|
|
515
|
+
(t == null ? void 0 : t.permissionSetIds) ?? [],
|
|
516
|
+
s.permissionSets.value
|
|
517
517
|
), o = Q(a).map(
|
|
518
|
-
({ setNames: p, ...
|
|
519
|
-
), u =
|
|
518
|
+
({ setNames: p, ...b }) => b
|
|
519
|
+
), u = t == null ? void 0 : t.customPermissions, c = u ?? e.permissions.map((p) => ({
|
|
520
520
|
...p,
|
|
521
521
|
subject: O(p.subject)
|
|
522
|
-
})), l =
|
|
523
|
-
|
|
522
|
+
})), l = L(o, c), d = G(
|
|
523
|
+
de(o, c),
|
|
524
524
|
V
|
|
525
|
-
).filter((p) => !p.inverted),
|
|
525
|
+
).filter((p) => !p.inverted), f = Y(d), m = f ?? n.value.map((p) => p._id);
|
|
526
526
|
return {
|
|
527
527
|
doc: e,
|
|
528
528
|
id: e.id,
|
|
@@ -530,28 +530,28 @@ function A(e) {
|
|
|
530
530
|
phoneNumber: e.phoneNumber,
|
|
531
531
|
email: e.email,
|
|
532
532
|
restaurants: W(
|
|
533
|
-
|
|
534
|
-
var
|
|
535
|
-
return ((
|
|
533
|
+
m.map((p) => {
|
|
534
|
+
var b;
|
|
535
|
+
return ((b = n.value.find((Z) => Z._id === p)) == null ? void 0 : b.profile.name) ?? "";
|
|
536
536
|
})
|
|
537
537
|
),
|
|
538
|
-
managableRestaurantIds:
|
|
539
|
-
permissionLabels:
|
|
538
|
+
managableRestaurantIds: f,
|
|
539
|
+
permissionLabels: he(d, i.value),
|
|
540
540
|
permissions: l
|
|
541
541
|
};
|
|
542
542
|
}
|
|
543
|
-
const
|
|
544
|
-
Object.values(
|
|
543
|
+
const ve = Object.freeze(
|
|
544
|
+
Object.values(ee)
|
|
545
545
|
), Ce = {
|
|
546
546
|
async readTeamMembers() {
|
|
547
547
|
return g(
|
|
548
|
-
await
|
|
548
|
+
await v().get("/portal-users")
|
|
549
549
|
).map(A);
|
|
550
550
|
},
|
|
551
551
|
async readTeamMembersPage(e) {
|
|
552
552
|
var r, n, i;
|
|
553
|
-
const
|
|
554
|
-
await
|
|
553
|
+
const s = g(
|
|
554
|
+
await v().get("/portal-users/paged", {
|
|
555
555
|
params: {
|
|
556
556
|
limit: e.limit,
|
|
557
557
|
offset: e.offset,
|
|
@@ -563,47 +563,55 @@ const ge = Object.freeze(
|
|
|
563
563
|
})
|
|
564
564
|
);
|
|
565
565
|
return {
|
|
566
|
-
items:
|
|
567
|
-
total:
|
|
566
|
+
items: s.items.map(A),
|
|
567
|
+
total: s.total
|
|
568
568
|
};
|
|
569
569
|
},
|
|
570
570
|
async readTeamMember(e) {
|
|
571
571
|
return A(
|
|
572
|
-
g(await
|
|
572
|
+
g(await v().get(`/portal-users/${e}`))
|
|
573
573
|
);
|
|
574
574
|
},
|
|
575
575
|
async createTeamMember(e) {
|
|
576
576
|
return A(
|
|
577
|
-
g(await
|
|
577
|
+
g(await v().post("/portal-users", e))
|
|
578
578
|
);
|
|
579
579
|
},
|
|
580
|
-
async updateTeamMember(e,
|
|
580
|
+
async updateTeamMember(e, s) {
|
|
581
581
|
return A(
|
|
582
|
-
g(await
|
|
582
|
+
g(await v().put(`/portal-users/${e}`, s))
|
|
583
583
|
);
|
|
584
584
|
},
|
|
585
585
|
async deleteTeamMember(e) {
|
|
586
|
-
return g(await
|
|
586
|
+
return g(await v().delete(`/portal-users/${e}`));
|
|
587
587
|
},
|
|
588
588
|
async readTeamMemberPosUserIds() {
|
|
589
|
-
return g(await
|
|
589
|
+
return g(await v().get("/portal-users")).map((s) => s.posUserId);
|
|
590
|
+
},
|
|
591
|
+
async generateMasterUserPasscode(e) {
|
|
592
|
+
return `${g(
|
|
593
|
+
await v().post("/portal-users/generate-passcode", {
|
|
594
|
+
restaurantIds: e.restaurantIds,
|
|
595
|
+
excludePosUserId: e.excludePosUserId
|
|
596
|
+
})
|
|
597
|
+
)}`;
|
|
590
598
|
}
|
|
591
599
|
};
|
|
592
|
-
function Je(e,
|
|
600
|
+
function Je(e, s, r) {
|
|
593
601
|
if (e.some((a) => a.subject === "all")) return "All";
|
|
594
|
-
const n = (r ??
|
|
595
|
-
(a) => a.subject ===
|
|
596
|
-
), i = new Set(n.map((a) => w(a).value)),
|
|
597
|
-
return
|
|
602
|
+
const n = (r ?? M).filter(
|
|
603
|
+
(a) => a.subject === s
|
|
604
|
+
), i = new Set(n.map((a) => w(a).value)), t = e.filter((a) => a.subject === s).filter((a) => i.has(w(a).value));
|
|
605
|
+
return t.length === n.length ? "All" : t.length === 0 ? "-" : `${t.length} permission allow`;
|
|
598
606
|
}
|
|
599
607
|
function w(e) {
|
|
600
|
-
const
|
|
608
|
+
const s = q(e), r = s.subject;
|
|
601
609
|
return {
|
|
602
|
-
...
|
|
610
|
+
...s,
|
|
603
611
|
get conditions() {
|
|
604
|
-
if (typeof
|
|
612
|
+
if (typeof s.conditions != "string") return s.conditions;
|
|
605
613
|
try {
|
|
606
|
-
return JSON.parse(
|
|
614
|
+
return JSON.parse(s.conditions);
|
|
607
615
|
} catch {
|
|
608
616
|
return;
|
|
609
617
|
}
|
|
@@ -644,7 +652,7 @@ function w(e) {
|
|
|
644
652
|
return n === void 0 ? r.toString() : n.endsWith("_") ? n.slice(0, n.length - 1) : n;
|
|
645
653
|
},
|
|
646
654
|
get label() {
|
|
647
|
-
return
|
|
655
|
+
return s.label || se(this.formatted);
|
|
648
656
|
},
|
|
649
657
|
get value() {
|
|
650
658
|
const n = this.discriminator;
|
|
@@ -652,57 +660,60 @@ function w(e) {
|
|
|
652
660
|
}
|
|
653
661
|
};
|
|
654
662
|
}
|
|
655
|
-
function
|
|
663
|
+
function Te(e) {
|
|
656
664
|
var n, i;
|
|
657
|
-
const
|
|
658
|
-
if (!
|
|
659
|
-
const r = Number((i = (n =
|
|
665
|
+
const s = e.map((t) => w(t)).find((t) => t.isDiscountOperation);
|
|
666
|
+
if (!s) return 100;
|
|
667
|
+
const r = Number((i = (n = s.conditions) == null ? void 0 : n.adjustment) == null ? void 0 : i.$lte);
|
|
660
668
|
return Number.isFinite(r) ? parseInt((r * 100).toFixed(0)) : 0;
|
|
661
669
|
}
|
|
662
|
-
function
|
|
663
|
-
const
|
|
670
|
+
function Y(e) {
|
|
671
|
+
const s = e.find(
|
|
664
672
|
(r) => r.subject === _.Subject.Restaurant.restaurant
|
|
665
673
|
);
|
|
666
|
-
return
|
|
674
|
+
return s ? s.conditions ? JSON.parse(s.conditions).restaurantId.$in : null : [];
|
|
667
675
|
}
|
|
668
|
-
function
|
|
669
|
-
return
|
|
676
|
+
function Be(e, s) {
|
|
677
|
+
return s.isOwner ? { restaurantIds: null, roleIds: null } : { restaurantIds: Y(e), roleIds: be(e) };
|
|
670
678
|
}
|
|
671
|
-
function
|
|
672
|
-
|
|
673
|
-
|
|
679
|
+
function Me(e) {
|
|
680
|
+
return (e == null ? void 0 : e.some((s) => s.subject === "all")) ?? !1;
|
|
681
|
+
}
|
|
682
|
+
function be(e) {
|
|
683
|
+
const s = e.find((r) => r.subject === _.Subject.Business.role);
|
|
684
|
+
return s ? s.conditions ? JSON.parse(s.conditions).roleId.$in : null : [];
|
|
674
685
|
}
|
|
675
686
|
function Le(e) {
|
|
676
|
-
const
|
|
677
|
-
if (!
|
|
678
|
-
const { name: r, ...n } =
|
|
687
|
+
const s = w(e);
|
|
688
|
+
if (!s.isReportPermission) return;
|
|
689
|
+
const { name: r, ...n } = s.conditions ?? {};
|
|
679
690
|
return Object.keys(n).length > 0 ? n : void 0;
|
|
680
691
|
}
|
|
681
|
-
function
|
|
692
|
+
function Fe(e, s, r) {
|
|
682
693
|
return e.flatMap((n) => {
|
|
683
|
-
const i =
|
|
694
|
+
const i = Se(n);
|
|
684
695
|
if (!i) return [];
|
|
685
|
-
const
|
|
696
|
+
const t = i.isReportPermission ? r == null ? void 0 : r.get(n) : void 0;
|
|
686
697
|
return [
|
|
687
698
|
{
|
|
688
699
|
subject: i.subject,
|
|
689
700
|
actions: i.actions,
|
|
690
701
|
conditions: {
|
|
691
702
|
...i.conditions,
|
|
692
|
-
...
|
|
693
|
-
adjustment: i.isDiscountOperation ? { $lte: parseFloat((
|
|
703
|
+
...t ?? {},
|
|
704
|
+
adjustment: i.isDiscountOperation ? { $lte: parseFloat((s / 100).toFixed(2)) } : void 0
|
|
694
705
|
}
|
|
695
706
|
}
|
|
696
707
|
];
|
|
697
708
|
});
|
|
698
709
|
}
|
|
699
|
-
function
|
|
700
|
-
const
|
|
701
|
-
if (
|
|
710
|
+
function Se(e) {
|
|
711
|
+
const s = e.indexOf(":"), r = s === -1 ? e : e.slice(0, s), n = s === -1 ? void 0 : e.slice(s + 1);
|
|
712
|
+
if (s !== -1 && !n) return;
|
|
702
713
|
let i;
|
|
703
|
-
return n ? (i =
|
|
704
|
-
if (
|
|
705
|
-
const a = typeof
|
|
714
|
+
return n ? (i = M.find((t) => {
|
|
715
|
+
if (t.subject !== r) return !1;
|
|
716
|
+
const a = typeof t.conditions == "string" ? JSON.parse(t.conditions) : t.conditions;
|
|
706
717
|
return [a == null ? void 0 : a.operation, a == null ? void 0 : a.name].includes(n);
|
|
707
718
|
}), !i && r === y.F_RULE_SUBJECT.enum.report && (i = {
|
|
708
719
|
label: "",
|
|
@@ -711,9 +722,9 @@ function ve(e) {
|
|
|
711
722
|
conditions: { name: n },
|
|
712
723
|
inverted: !1,
|
|
713
724
|
reason: ""
|
|
714
|
-
})) : i =
|
|
725
|
+
})) : i = M.find((t) => t.subject === r), i ? w(i) : void 0;
|
|
715
726
|
}
|
|
716
|
-
function
|
|
727
|
+
function xe(e, s) {
|
|
717
728
|
const r = { values: [], passthrough: [], dropped: [] };
|
|
718
729
|
for (const n of e) {
|
|
719
730
|
const i = n == null ? void 0 : n.actions;
|
|
@@ -721,20 +732,20 @@ function Fe(e, t) {
|
|
|
721
732
|
r.dropped.push(n);
|
|
722
733
|
continue;
|
|
723
734
|
}
|
|
724
|
-
const
|
|
725
|
-
|
|
735
|
+
const t = w(n).value, a = `${y.F_RULE_SUBJECT.enum.report}:`, o = t.startsWith(a) ? t.slice(a.length) : "";
|
|
736
|
+
s.has(t) || o && o !== "undefined" ? r.values.push(t) : r.passthrough.push(n);
|
|
726
737
|
}
|
|
727
738
|
return r;
|
|
728
739
|
}
|
|
729
|
-
function
|
|
740
|
+
function he(e, s = []) {
|
|
730
741
|
return W(
|
|
731
742
|
e.reduce((r, n) => {
|
|
732
|
-
const i =
|
|
733
|
-
(
|
|
734
|
-
) ||
|
|
743
|
+
const i = ve.find(
|
|
744
|
+
(t) => t.subject === n.subject && n.actions.includes("manage")
|
|
745
|
+
) || s.find((t) => t.subject === n.subject);
|
|
735
746
|
if (i) {
|
|
736
|
-
const
|
|
737
|
-
r.push(
|
|
747
|
+
const t = i.subject === _.Subject.Business.inventory_stock ? "Warehouse Management" : i.label;
|
|
748
|
+
r.push(t);
|
|
738
749
|
}
|
|
739
750
|
return r;
|
|
740
751
|
}, [])
|
|
@@ -743,29 +754,30 @@ function Se(e, t = []) {
|
|
|
743
754
|
export {
|
|
744
755
|
G as N,
|
|
745
756
|
Q as P,
|
|
746
|
-
|
|
757
|
+
pe as R,
|
|
747
758
|
Je as a,
|
|
748
|
-
|
|
759
|
+
de as b,
|
|
749
760
|
H as c,
|
|
750
|
-
|
|
761
|
+
ge as d,
|
|
751
762
|
Le as e,
|
|
752
|
-
|
|
753
|
-
|
|
754
|
-
|
|
755
|
-
|
|
763
|
+
Fe as f,
|
|
764
|
+
Te as g,
|
|
765
|
+
Me as h,
|
|
766
|
+
oe as i,
|
|
756
767
|
Be as j,
|
|
757
|
-
|
|
768
|
+
Ee as k,
|
|
758
769
|
_e as l,
|
|
759
|
-
|
|
760
|
-
|
|
761
|
-
|
|
762
|
-
|
|
763
|
-
|
|
770
|
+
Ae as m,
|
|
771
|
+
Ne as n,
|
|
772
|
+
Ue as o,
|
|
773
|
+
ve as p,
|
|
774
|
+
me as q,
|
|
764
775
|
w as r,
|
|
765
|
-
|
|
776
|
+
xe as s,
|
|
766
777
|
Ce as t,
|
|
767
|
-
|
|
768
|
-
|
|
769
|
-
|
|
770
|
-
|
|
778
|
+
re as u,
|
|
779
|
+
he as v,
|
|
780
|
+
Oe as w,
|
|
781
|
+
Y as x,
|
|
782
|
+
be as y
|
|
771
783
|
};
|