@feedmepos/mf-hrm-portal 2.0.24-dev.4 → 2.0.24-dev.6
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-mfHfCrDp.js → AuditLogList-CYAykl2D.js} +391 -391
- package/dist/{EmployeeList-mnaGEL4R.js → EmployeeList-jGvj5Kjs.js} +6 -6
- package/dist/{Main-BWSMKWxB.js → Main-CCgt3-bl.js} +6 -6
- package/dist/{Main-B4Xf2dm4.js → Main-CMzANrJ-.js} +4 -4
- package/dist/{Main-DTJOj2jJ.js → Main-D07IsGsd.js} +9 -9
- package/dist/{PermissionSetList-CgPUMTJg.js → PermissionSetList-B8_eRM-R.js} +6 -6
- package/dist/{PortalPermissionEditor.vue_vue_type_script_setup_true_lang-CfHx0q1H.js → PortalPermissionEditor.vue_vue_type_script_setup_true_lang-BjRb1dnQ.js} +795 -795
- package/dist/{PortalUserSearcher.vue_vue_type_style_index_0_scoped_a439fdd8_lang-Cod0zTbu.js → PortalUserSearcher.vue_vue_type_style_index_0_scoped_a439fdd8_lang-ZzioHV1l.js} +1 -1
- package/dist/{RoleList-Cg8Ye2Zk.js → RoleList-BmvFGl6T.js} +7 -7
- package/dist/{TeamMemberList-BoVZBjtB.js → TeamMemberList-BjeZXuOZ.js} +8 -8
- package/dist/{TimesheetList-BiQswrw7.js → TimesheetList-BT-HR4np.js} +6 -6
- package/dist/{TimesheetList.vue_vue_type_style_index_0_scoped_d7ed31d7_lang-Bx5-vyxN.js → TimesheetList.vue_vue_type_style_index_0_scoped_d7ed31d7_lang-vO6F5Zc6.js} +2 -2
- package/dist/{app-CZLWCtKb.js → app-DXMxGLgF.js} +4 -4
- package/dist/app.js +1 -1
- package/dist/{dayjs.min-BMdREwIr.js → dayjs.min-CLlZV7c8.js} +1 -1
- package/dist/{employee-CHBituQX.js → employee-DnqW35Vb.js} +3 -3
- package/dist/{iteration-DLrwtjjD.js → iteration-CuaOtnox.js} +1 -1
- package/dist/{lodash-DrGn50Sb.js → lodash-CMfO1W5S.js} +1 -1
- package/dist/{rule-BFOjocRa.js → rule-C5hRUHsA.js} +2 -2
- package/dist/style.css +1 -1
- package/dist/tsconfig.app.tsbuildinfo +1 -1
- package/dist/{useAppStore-C1TRO_QU.js → useAppStore-DqFkF7Pg.js} +1 -1
- package/dist/{useLoading-BBHvBcQn.js → useLoading-kPp1XRGN.js} +1 -1
- package/dist/{useReportPermissions-DhyumGy6.js → useReportPermissions-DUhrchnA.js} +3 -3
- package/package.json +1 -1
|
@@ -1,14 +1,14 @@
|
|
|
1
|
-
import { defineComponent as
|
|
2
|
-
import { d as
|
|
3
|
-
import { useI18n as
|
|
4
|
-
import { G as
|
|
5
|
-
import { components as
|
|
6
|
-
import { g as
|
|
7
|
-
import { S as
|
|
8
|
-
import { _ as
|
|
9
|
-
import { _ as
|
|
10
|
-
import { t as
|
|
11
|
-
import { defineStore as
|
|
1
|
+
import { defineComponent as Ke, ref as b, computed as y, onMounted as Mt, onBeforeUnmount as Ft, watch as ue, resolveComponent as C, createElementBlock as I, openBlock as h, createBlock as Q, createCommentVNode as N, createElementVNode as l, Fragment as Z, renderList as ie, withCtx as B, createVNode as p, toDisplayString as u, unref as n, nextTick as Dt } from "vue";
|
|
2
|
+
import { d as _ } from "./dayjs.min-CLlZV7c8.js";
|
|
3
|
+
import { useI18n as ze, useCoreStore as It } from "@feedmepos/mf-common";
|
|
4
|
+
import { G as Re, _ as Ot } from "./app-DXMxGLgF.js";
|
|
5
|
+
import { components as Ce } from "@feedmepos/ui-library";
|
|
6
|
+
import { g as Ue, b as $e } from "./iteration-CuaOtnox.js";
|
|
7
|
+
import { S as fe, _ as Tt } from "./SelectFilter-C61IZSID.js";
|
|
8
|
+
import { _ as jt } from "./PageLayout.vue_vue_type_script_setup_true_lang-HKK4cbW8.js";
|
|
9
|
+
import { _ as Pt } from "./index.vue_vue_type_script_setup_true_lang-Vc5ARO29.js";
|
|
10
|
+
import { t as Vt, p as Ye } from "./rule-C5hRUHsA.js";
|
|
11
|
+
import { defineStore as At } from "pinia";
|
|
12
12
|
const se = [
|
|
13
13
|
{ key: "all", label: "All", subjectPrefixes: [] },
|
|
14
14
|
{ key: "inventory", label: "Inventory", subjectPrefixes: ["business::inventory", "inventory"] },
|
|
@@ -19,65 +19,65 @@ const se = [
|
|
|
19
19
|
{ key: "crm", label: "CRM", subjectPrefixes: ["business::crm", "crm"] }
|
|
20
20
|
// Add more as modules are revamped with new actionguard:
|
|
21
21
|
// { key: 'restaurantOperation', label: 'Restaurant Operation', subjectPrefixes: ['restaurant'] },
|
|
22
|
-
],
|
|
22
|
+
], Ne = "/audit-logs", _e = {
|
|
23
23
|
async count(a) {
|
|
24
|
-
var w,
|
|
24
|
+
var w, P, M, S, s;
|
|
25
25
|
const o = {
|
|
26
26
|
...a != null && a.from ? { from: a.from } : {},
|
|
27
27
|
...a != null && a.to ? { to: a.to } : {},
|
|
28
28
|
...(w = a == null ? void 0 : a.userIds) != null && w.length ? { userIds: a.userIds } : {},
|
|
29
|
-
...(
|
|
29
|
+
...(P = a == null ? void 0 : a.subjects) != null && P.length ? { subjects: a.subjects } : {},
|
|
30
30
|
...(M = a == null ? void 0 : a.subjectPrefixes) != null && M.length ? { subjectPrefixes: a.subjectPrefixes } : {},
|
|
31
|
-
...(
|
|
31
|
+
...(S = a == null ? void 0 : a.actions) != null && S.length ? { actions: a.actions } : {},
|
|
32
32
|
...(s = a == null ? void 0 : a.outcomes) != null && s.length ? { outcomes: a.outcomes } : {}
|
|
33
33
|
};
|
|
34
|
-
return (await
|
|
35
|
-
await
|
|
34
|
+
return (await Ue(
|
|
35
|
+
await $e().get(`${Ne}/count`, {
|
|
36
36
|
params: o,
|
|
37
37
|
paramsSerializer: (O) => {
|
|
38
|
-
const
|
|
38
|
+
const V = new URLSearchParams();
|
|
39
39
|
for (const [c, F] of Object.entries(O))
|
|
40
40
|
if (Array.isArray(F))
|
|
41
|
-
for (const K of F)
|
|
42
|
-
else F != null &&
|
|
43
|
-
return
|
|
41
|
+
for (const K of F) V.append(c, String(K));
|
|
42
|
+
else F != null && V.append(c, String(F));
|
|
43
|
+
return V.toString();
|
|
44
44
|
}
|
|
45
45
|
})
|
|
46
46
|
)).total;
|
|
47
47
|
},
|
|
48
48
|
async read(a) {
|
|
49
|
-
var
|
|
49
|
+
var f, w, P, M, S;
|
|
50
50
|
const o = {
|
|
51
51
|
limit: (a == null ? void 0 : a.limit) ?? 100,
|
|
52
52
|
offset: (a == null ? void 0 : a.offset) ?? 0,
|
|
53
53
|
...a != null && a.from ? { from: a.from } : {},
|
|
54
54
|
...a != null && a.to ? { to: a.to } : {},
|
|
55
|
-
...(
|
|
55
|
+
...(f = a == null ? void 0 : a.userIds) != null && f.length ? { userIds: a.userIds } : {},
|
|
56
56
|
...(w = a == null ? void 0 : a.subjects) != null && w.length ? { subjects: a.subjects } : {},
|
|
57
|
-
...(
|
|
57
|
+
...(P = a == null ? void 0 : a.subjectPrefixes) != null && P.length ? { subjectPrefixes: a.subjectPrefixes } : {},
|
|
58
58
|
...(M = a == null ? void 0 : a.actions) != null && M.length ? { actions: a.actions } : {},
|
|
59
|
-
...(
|
|
59
|
+
...(S = a == null ? void 0 : a.outcomes) != null && S.length ? { outcomes: a.outcomes } : {}
|
|
60
60
|
};
|
|
61
|
-
return
|
|
62
|
-
await
|
|
61
|
+
return Ue(
|
|
62
|
+
await $e().get(Ne, {
|
|
63
63
|
params: o,
|
|
64
64
|
// Serialize arrays as repeated params: key=val1&key=val2
|
|
65
65
|
// (NestJS @Query expects this; axios default adds brackets which break matching)
|
|
66
66
|
paramsSerializer: (s) => {
|
|
67
67
|
const O = new URLSearchParams();
|
|
68
|
-
for (const [
|
|
68
|
+
for (const [V, c] of Object.entries(s))
|
|
69
69
|
if (Array.isArray(c))
|
|
70
|
-
for (const F of c) O.append(
|
|
71
|
-
else c != null && O.append(
|
|
70
|
+
for (const F of c) O.append(V, String(F));
|
|
71
|
+
else c != null && O.append(V, String(c));
|
|
72
72
|
return O.toString();
|
|
73
73
|
}
|
|
74
74
|
})
|
|
75
75
|
);
|
|
76
76
|
}
|
|
77
|
-
},
|
|
77
|
+
}, Et = { class: "flex h-[46px] items-center gap-8 rounded-sm px-16 hover:bg-fm-color-opacity-sm" }, Rt = { class: "fm-typo-en-body-lg-400 text-fm-color-typo-secondary" }, Ct = {
|
|
78
78
|
"data-more-measure": "",
|
|
79
79
|
class: "flex h-[46px] items-center gap-8 rounded-sm px-16"
|
|
80
|
-
},
|
|
80
|
+
}, Ut = { class: "fm-typo-en-body-lg-400 text-fm-color-typo-secondary" }, $t = /* @__PURE__ */ Ke({
|
|
81
81
|
__name: "AuditLogModuleTabs",
|
|
82
82
|
props: {
|
|
83
83
|
modelValue: {},
|
|
@@ -85,73 +85,73 @@ const se = [
|
|
|
85
85
|
},
|
|
86
86
|
emits: ["update:modelValue"],
|
|
87
87
|
setup(a, { emit: o }) {
|
|
88
|
-
const
|
|
88
|
+
const f = a, w = o, { t: P } = ze(), M = b(!1), S = b(null), s = b(null), O = b([]), V = b(0), c = b(0);
|
|
89
89
|
let F = null;
|
|
90
90
|
async function K() {
|
|
91
|
-
if (await
|
|
92
|
-
const
|
|
93
|
-
O.value = Array.from(
|
|
91
|
+
if (await Dt(), !s.value) return;
|
|
92
|
+
const v = s.value.querySelectorAll("[data-tab-measure]");
|
|
93
|
+
O.value = Array.from(v).map((k) => k.offsetWidth);
|
|
94
94
|
const m = s.value.querySelector("[data-more-measure]");
|
|
95
|
-
|
|
95
|
+
V.value = (m == null ? void 0 : m.offsetWidth) ?? 0;
|
|
96
96
|
}
|
|
97
|
-
const ve =
|
|
98
|
-
const
|
|
99
|
-
if (
|
|
100
|
-
if (!c.value || O.value.length !==
|
|
97
|
+
const ve = y(() => {
|
|
98
|
+
const v = f.items.length;
|
|
99
|
+
if (v === 0) return 0;
|
|
100
|
+
if (!c.value || O.value.length !== v) return v;
|
|
101
101
|
const m = O.value;
|
|
102
|
-
if (m.reduce((r,
|
|
103
|
-
const x =
|
|
104
|
-
let T = 0,
|
|
105
|
-
for (let r = 0; r <
|
|
106
|
-
T += m[r],
|
|
107
|
-
return
|
|
108
|
-
}),
|
|
109
|
-
const
|
|
110
|
-
if (
|
|
111
|
-
const
|
|
112
|
-
if (!x ||
|
|
113
|
-
if (
|
|
114
|
-
const T =
|
|
115
|
-
let
|
|
116
|
-
for (;
|
|
117
|
-
|
|
118
|
-
return [...
|
|
119
|
-
}),
|
|
120
|
-
const
|
|
121
|
-
return
|
|
102
|
+
if (m.reduce((r, q) => r + q, 0) <= c.value) return v;
|
|
103
|
+
const x = V.value;
|
|
104
|
+
let T = 0, j = 0;
|
|
105
|
+
for (let r = 0; r < v && !(T + m[r] + x > c.value); r++)
|
|
106
|
+
T += m[r], j++;
|
|
107
|
+
return j;
|
|
108
|
+
}), W = y(() => {
|
|
109
|
+
const v = ve.value, m = f.items.length;
|
|
110
|
+
if (v >= m) return [...f.items];
|
|
111
|
+
const k = f.items.slice(0, v), x = f.items.find((E) => E.value === f.modelValue);
|
|
112
|
+
if (!x || k.some((E) => E.value === x.value)) return k;
|
|
113
|
+
if (v === 0) return [x];
|
|
114
|
+
const T = f.items.findIndex((E) => E.value === x.value), j = O.value, r = V.value, q = j[T] ?? 0;
|
|
115
|
+
let Y = v, oe = j.slice(0, Y - 1).reduce((E, ae) => E + ae, 0);
|
|
116
|
+
for (; Y > 1 && oe + q + r > c.value; )
|
|
117
|
+
Y--, oe = j.slice(0, Y - 1).reduce((E, ae) => E + ae, 0);
|
|
118
|
+
return [...f.items.slice(0, Math.max(Y - 1, 0)), x];
|
|
119
|
+
}), ee = y(() => {
|
|
120
|
+
const v = new Set(W.value.map((m) => m.value));
|
|
121
|
+
return f.items.filter((m) => !v.has(m.value));
|
|
122
122
|
});
|
|
123
|
-
function
|
|
124
|
-
M.value = !1, w("update:modelValue",
|
|
123
|
+
function te(v) {
|
|
124
|
+
M.value = !1, w("update:modelValue", v);
|
|
125
125
|
}
|
|
126
|
-
return
|
|
127
|
-
await K(),
|
|
128
|
-
|
|
129
|
-
}), F.observe(
|
|
130
|
-
}),
|
|
126
|
+
return Mt(async () => {
|
|
127
|
+
await K(), S.value && (c.value = S.value.clientWidth, F = new ResizeObserver(() => {
|
|
128
|
+
S.value && (c.value = S.value.clientWidth);
|
|
129
|
+
}), F.observe(S.value));
|
|
130
|
+
}), Ft(() => {
|
|
131
131
|
F == null || F.disconnect(), F = null;
|
|
132
|
-
}),
|
|
133
|
-
() =>
|
|
132
|
+
}), ue(
|
|
133
|
+
() => f.items,
|
|
134
134
|
() => {
|
|
135
135
|
K();
|
|
136
136
|
},
|
|
137
137
|
{ deep: !0 }
|
|
138
|
-
), (
|
|
139
|
-
const
|
|
140
|
-
return
|
|
138
|
+
), (v, m) => {
|
|
139
|
+
const k = C("FmTab"), x = C("FmIcon"), T = C("FmMenuItem"), j = C("FmMenu");
|
|
140
|
+
return h(), I("div", {
|
|
141
141
|
ref_key: "containerRef",
|
|
142
|
-
ref:
|
|
142
|
+
ref: S,
|
|
143
143
|
class: "relative flex w-full flex-row items-center"
|
|
144
144
|
}, [
|
|
145
|
-
(
|
|
145
|
+
(h(!0), I(Z, null, ie(W.value, (r) => (h(), Q(k, {
|
|
146
146
|
key: r.value,
|
|
147
147
|
"model-value": a.modelValue,
|
|
148
148
|
label: r.label,
|
|
149
149
|
badge: r.badge,
|
|
150
150
|
disabled: r.disabled,
|
|
151
151
|
value: r.value,
|
|
152
|
-
"onUpdate:modelValue":
|
|
152
|
+
"onUpdate:modelValue": te
|
|
153
153
|
}, null, 8, ["model-value", "label", "badge", "disabled", "value"]))), 128)),
|
|
154
|
-
|
|
154
|
+
ee.value.length > 0 ? (h(), Q(j, {
|
|
155
155
|
key: 0,
|
|
156
156
|
"show-menu": M.value,
|
|
157
157
|
class: "max-w-[360px] min-w-[90px] rounded-sm",
|
|
@@ -159,33 +159,33 @@ const se = [
|
|
|
159
159
|
onMenuChanged: m[0] || (m[0] = (r) => M.value = r)
|
|
160
160
|
}, {
|
|
161
161
|
"menu-button": B(() => [
|
|
162
|
-
l("div",
|
|
163
|
-
|
|
164
|
-
l("span",
|
|
162
|
+
l("div", Et, [
|
|
163
|
+
p(x, { name: "more_vert" }),
|
|
164
|
+
l("span", Rt, u(n(P)("auditLog.modules.more")), 1)
|
|
165
165
|
])
|
|
166
166
|
]),
|
|
167
167
|
default: B(() => [
|
|
168
|
-
(
|
|
168
|
+
(h(!0), I(Z, null, ie(ee.value, (r) => (h(), Q(T, {
|
|
169
169
|
key: r.value,
|
|
170
170
|
"model-value": a.modelValue === r.value,
|
|
171
171
|
label: r.label,
|
|
172
172
|
disabled: r.disabled,
|
|
173
|
-
onClick: (
|
|
173
|
+
onClick: (q) => te(r.value)
|
|
174
174
|
}, null, 8, ["model-value", "label", "disabled", "onClick"]))), 128))
|
|
175
175
|
]),
|
|
176
176
|
_: 1
|
|
177
|
-
}, 8, ["show-menu"])) :
|
|
177
|
+
}, 8, ["show-menu"])) : N("", !0),
|
|
178
178
|
l("div", {
|
|
179
179
|
ref_key: "measurerRef",
|
|
180
180
|
ref: s,
|
|
181
181
|
"aria-hidden": "true",
|
|
182
182
|
class: "pointer-events-none invisible absolute -left-[9999px] -top-[9999px] flex flex-row items-center"
|
|
183
183
|
}, [
|
|
184
|
-
(
|
|
184
|
+
(h(!0), I(Z, null, ie(a.items, (r) => (h(), I("div", {
|
|
185
185
|
key: `measure-${r.value}`,
|
|
186
186
|
"data-tab-measure": ""
|
|
187
187
|
}, [
|
|
188
|
-
|
|
188
|
+
p(k, {
|
|
189
189
|
"model-value": a.modelValue,
|
|
190
190
|
label: r.label,
|
|
191
191
|
badge: r.badge,
|
|
@@ -193,28 +193,28 @@ const se = [
|
|
|
193
193
|
value: r.value
|
|
194
194
|
}, null, 8, ["model-value", "label", "badge", "disabled", "value"])
|
|
195
195
|
]))), 128)),
|
|
196
|
-
l("div",
|
|
197
|
-
|
|
198
|
-
l("span",
|
|
196
|
+
l("div", Ct, [
|
|
197
|
+
p(x, { name: "more_vert" }),
|
|
198
|
+
l("span", Ut, u(n(P)("auditLog.modules.more")), 1)
|
|
199
199
|
])
|
|
200
200
|
], 512)
|
|
201
201
|
], 512);
|
|
202
202
|
};
|
|
203
203
|
}
|
|
204
|
-
}),
|
|
205
|
-
const a =
|
|
204
|
+
}), Yt = At("team", () => {
|
|
205
|
+
const a = b([]), o = b(!1), f = b(!1), w = y(
|
|
206
206
|
() => Object.fromEntries(a.value.map((s) => [s.doc.userId, s.name]))
|
|
207
|
-
),
|
|
207
|
+
), P = y(
|
|
208
208
|
() => Object.fromEntries(a.value.map((s) => [s.doc.userId, s.email]))
|
|
209
|
-
), M =
|
|
209
|
+
), M = y(
|
|
210
210
|
() => Object.fromEntries(a.value.map((s) => [s.doc.userId, s.phoneNumber]))
|
|
211
211
|
);
|
|
212
|
-
async function
|
|
212
|
+
async function S({ force: s = !1 } = {}) {
|
|
213
213
|
if (!(!s && a.value.length > 0))
|
|
214
214
|
try {
|
|
215
215
|
o.value = !0;
|
|
216
|
-
const O = await
|
|
217
|
-
a.value = O.sort((
|
|
216
|
+
const O = await Vt.readTeamMembers();
|
|
217
|
+
a.value = O.sort((V, c) => V.doc.isOwner ? -1 : V.name.localeCompare(c.name)), f.value = !0;
|
|
218
218
|
} finally {
|
|
219
219
|
o.value = !1;
|
|
220
220
|
}
|
|
@@ -222,151 +222,149 @@ const se = [
|
|
|
222
222
|
return {
|
|
223
223
|
members: a,
|
|
224
224
|
isLoading: o,
|
|
225
|
-
hasLoaded:
|
|
225
|
+
hasLoaded: f,
|
|
226
226
|
userIdToName: w,
|
|
227
|
-
userIdToEmail:
|
|
227
|
+
userIdToEmail: P,
|
|
228
228
|
userIdToPhone: M,
|
|
229
|
-
readTeamMembers:
|
|
229
|
+
readTeamMembers: S
|
|
230
230
|
};
|
|
231
|
-
}),
|
|
231
|
+
}), Nt = {
|
|
232
232
|
class: "flex flex-col gap-4 p-12 w-[260px]"
|
|
233
|
-
}, Nt = {
|
|
234
|
-
class: "text-xs font-semibold text-fm-color-typo-secondary mb-4"
|
|
235
233
|
}, Bt = {
|
|
236
|
-
class: "
|
|
234
|
+
class: "text-xs font-semibold text-fm-color-typo-secondary mb-4"
|
|
237
235
|
}, Kt = {
|
|
238
|
-
class: "
|
|
236
|
+
class: "flex min-h-0 flex-1 flex-col gap-16"
|
|
239
237
|
}, zt = {
|
|
240
|
-
class: "
|
|
238
|
+
class: "space-y-16"
|
|
241
239
|
}, qt = {
|
|
242
|
-
class: "
|
|
240
|
+
class: "flex flex-wrap items-center gap-8"
|
|
243
241
|
}, Ht = {
|
|
244
|
-
key: 0,
|
|
245
242
|
class: "w-fit"
|
|
246
243
|
}, Wt = {
|
|
247
244
|
class: "w-fit"
|
|
248
245
|
}, Jt = {
|
|
249
246
|
class: "w-fit"
|
|
250
247
|
}, Gt = {
|
|
248
|
+
class: "w-fit"
|
|
249
|
+
}, Xt = {
|
|
251
250
|
key: 0,
|
|
252
251
|
class: "space-y-12 p-4 text-sm"
|
|
253
|
-
}, Xt = {
|
|
254
|
-
class: "flex items-start justify-between gap-8 rounded-lg border border-fm-color-border-default p-12"
|
|
255
252
|
}, Qt = {
|
|
256
|
-
class: "
|
|
253
|
+
class: "flex items-start justify-between gap-8 rounded-lg border border-fm-color-border-default p-12"
|
|
257
254
|
}, Zt = {
|
|
258
|
-
class: "
|
|
255
|
+
class: "min-w-0 flex-1"
|
|
259
256
|
}, eo = {
|
|
260
|
-
class: "
|
|
257
|
+
class: "audit-log-operation-label-detail text-base font-bold leading-snug text-fm-color-typo-primary"
|
|
261
258
|
}, to = {
|
|
262
|
-
class: "
|
|
259
|
+
class: "rounded-lg border border-fm-color-border-default p-12"
|
|
263
260
|
}, oo = {
|
|
264
|
-
class: "
|
|
261
|
+
class: "space-y-12"
|
|
265
262
|
}, ao = {
|
|
266
|
-
class: "font-semibold"
|
|
267
|
-
}, lo = {
|
|
268
263
|
class: "text-xs text-fm-color-typo-secondary"
|
|
269
|
-
},
|
|
264
|
+
}, lo = {
|
|
270
265
|
class: "font-semibold"
|
|
271
|
-
},
|
|
266
|
+
}, so = {
|
|
272
267
|
class: "text-xs text-fm-color-typo-secondary"
|
|
268
|
+
}, no = {
|
|
269
|
+
class: "font-semibold"
|
|
273
270
|
}, uo = {
|
|
274
|
-
class: "
|
|
271
|
+
class: "text-xs text-fm-color-typo-secondary"
|
|
275
272
|
}, io = {
|
|
276
|
-
|
|
273
|
+
class: "break-all font-semibold"
|
|
277
274
|
}, ro = {
|
|
278
|
-
|
|
275
|
+
key: 0
|
|
279
276
|
}, co = {
|
|
280
|
-
class: "break-all font-mono text-xs font-semibold"
|
|
281
|
-
}, mo = {
|
|
282
277
|
class: "text-xs text-fm-color-typo-secondary"
|
|
283
|
-
},
|
|
278
|
+
}, mo = {
|
|
284
279
|
class: "break-all font-mono text-xs font-semibold"
|
|
285
|
-
},
|
|
280
|
+
}, fo = {
|
|
286
281
|
class: "text-xs text-fm-color-typo-secondary"
|
|
282
|
+
}, vo = {
|
|
283
|
+
class: "break-all font-mono text-xs font-semibold"
|
|
287
284
|
}, bo = {
|
|
288
|
-
class: "
|
|
285
|
+
class: "text-xs text-fm-color-typo-secondary"
|
|
289
286
|
}, go = {
|
|
290
|
-
|
|
291
|
-
class: "rounded-lg border border-fm-color-border-default"
|
|
287
|
+
class: "font-semibold"
|
|
292
288
|
}, po = {
|
|
293
|
-
class: "
|
|
289
|
+
class: "rounded-lg border border-fm-color-border-default"
|
|
294
290
|
}, ho = {
|
|
295
|
-
class: "
|
|
291
|
+
class: "p-12"
|
|
296
292
|
}, yo = {
|
|
297
|
-
class: "
|
|
293
|
+
class: "text-base font-bold text-fm-color-typo-primary"
|
|
298
294
|
}, _o = {
|
|
299
|
-
class: "
|
|
295
|
+
class: "space-y-12 p-12"
|
|
300
296
|
}, xo = {
|
|
301
|
-
class: "
|
|
297
|
+
class: "text-xs text-fm-color-typo-secondary"
|
|
302
298
|
}, Lo = {
|
|
303
|
-
class: "
|
|
299
|
+
class: "font-semibold"
|
|
304
300
|
}, So = {
|
|
305
|
-
class: "
|
|
301
|
+
class: "rounded-lg border border-fm-color-border-default"
|
|
306
302
|
}, ko = {
|
|
307
|
-
class: "
|
|
303
|
+
class: "p-12"
|
|
308
304
|
}, wo = {
|
|
309
|
-
class: "
|
|
305
|
+
class: "text-base font-bold text-fm-color-typo-primary"
|
|
310
306
|
}, Mo = {
|
|
311
|
-
class: "
|
|
307
|
+
class: "space-y-12 p-12"
|
|
312
308
|
}, Fo = {
|
|
313
|
-
class: "
|
|
309
|
+
class: "text-xs text-fm-color-typo-secondary"
|
|
314
310
|
}, Do = {
|
|
315
|
-
|
|
311
|
+
class: "font-semibold"
|
|
316
312
|
}, Io = {
|
|
317
|
-
|
|
313
|
+
key: 0
|
|
318
314
|
}, Oo = {
|
|
315
|
+
class: "text-xs text-fm-color-typo-secondary"
|
|
316
|
+
}, To = {
|
|
319
317
|
key: 0,
|
|
320
318
|
class: "font-semibold"
|
|
321
|
-
},
|
|
319
|
+
}, jo = {
|
|
322
320
|
key: 1,
|
|
323
321
|
class: "break-all font-mono text-xs text-fm-color-typo-secondary"
|
|
324
|
-
}, jo = {
|
|
325
|
-
key: 1
|
|
326
322
|
}, Po = {
|
|
327
|
-
|
|
323
|
+
key: 1
|
|
328
324
|
}, Vo = {
|
|
329
|
-
class: "font-semibold whitespace-pre-line"
|
|
330
|
-
}, Ao = {
|
|
331
325
|
class: "text-xs text-fm-color-typo-secondary"
|
|
326
|
+
}, Ao = {
|
|
327
|
+
class: "font-semibold whitespace-pre-line"
|
|
332
328
|
}, Eo = {
|
|
333
|
-
class: "font-semibold"
|
|
334
|
-
}, Ro = {
|
|
335
329
|
class: "text-xs text-fm-color-typo-secondary"
|
|
330
|
+
}, Ro = {
|
|
331
|
+
class: "font-semibold"
|
|
336
332
|
}, Co = {
|
|
337
|
-
class: "
|
|
333
|
+
class: "text-xs text-fm-color-typo-secondary"
|
|
338
334
|
}, Uo = {
|
|
339
|
-
|
|
335
|
+
class: "break-all font-mono text-xs font-semibold"
|
|
340
336
|
}, $o = {
|
|
341
|
-
|
|
337
|
+
key: 2
|
|
342
338
|
}, Yo = {
|
|
343
|
-
class: "
|
|
339
|
+
class: "text-xs text-fm-color-typo-secondary"
|
|
344
340
|
}, No = {
|
|
345
|
-
class: "
|
|
341
|
+
class: "mt-4 space-y-4"
|
|
346
342
|
}, Bo = {
|
|
347
|
-
class: "text-xs font-
|
|
343
|
+
class: "flex h-16 w-16 shrink-0 items-center justify-center rounded-full bg-fm-color-primary-default text-xs font-bold text-white"
|
|
348
344
|
}, Ko = {
|
|
345
|
+
class: "text-xs font-semibold"
|
|
346
|
+
}, zo = {
|
|
349
347
|
key: 0,
|
|
350
348
|
class: "text-fm-color-typo-secondary"
|
|
351
|
-
}, zo = {
|
|
352
|
-
key: 3
|
|
353
349
|
}, qo = {
|
|
354
|
-
|
|
350
|
+
key: 3
|
|
355
351
|
}, Ho = {
|
|
352
|
+
class: "text-xs text-fm-color-typo-secondary"
|
|
353
|
+
}, Wo = {
|
|
356
354
|
class: "mt-4 max-h-[400px] overflow-auto rounded bg-gray-100 p-8 font-mono text-xs leading-relaxed shadow-inner whitespace-pre-wrap break-all"
|
|
357
|
-
}, ne = 100, xe = 1e3,
|
|
355
|
+
}, ne = 100, xe = 1e3, Jo = "D MMM YYYY h:mm A", Go = "YYYY-MM-DD HH:mm", A = "YYYY-MM-DD", Be = "audit-log-export-fields", Xo = /* @__PURE__ */ Ke({
|
|
358
356
|
__name: "AuditLogList",
|
|
359
357
|
setup(a) {
|
|
360
358
|
const {
|
|
361
359
|
t: o
|
|
362
|
-
} =
|
|
363
|
-
async function
|
|
364
|
-
const t = Uint8Array.from(atob(e), (
|
|
360
|
+
} = ze(), f = It(), w = Yt(), P = b(!1), M = b(!1), S = b([]), s = b(null), O = b(!1);
|
|
361
|
+
async function V(e) {
|
|
362
|
+
const t = Uint8Array.from(atob(e), (g) => g.charCodeAt(0)), i = new DecompressionStream("gzip"), L = i.writable.getWriter();
|
|
365
363
|
return await L.write(t), await L.close(), new Response(i.readable).text();
|
|
366
364
|
}
|
|
367
|
-
const c =
|
|
365
|
+
const c = b("");
|
|
368
366
|
let F = 0;
|
|
369
|
-
|
|
367
|
+
ue(() => {
|
|
370
368
|
var e, t;
|
|
371
369
|
return (t = (e = s.value) == null ? void 0 : e.metadata) == null ? void 0 : t.requestBody;
|
|
372
370
|
}, async (e) => {
|
|
@@ -381,7 +379,7 @@ const se = [
|
|
|
381
379
|
}
|
|
382
380
|
if (e.startsWith("gzip:")) {
|
|
383
381
|
try {
|
|
384
|
-
const i = await
|
|
382
|
+
const i = await V(e.slice(5));
|
|
385
383
|
if (t !== F) return;
|
|
386
384
|
c.value = JSON.stringify(JSON.parse(i), null, 2);
|
|
387
385
|
} catch {
|
|
@@ -398,88 +396,88 @@ const se = [
|
|
|
398
396
|
}, {
|
|
399
397
|
immediate: !0
|
|
400
398
|
});
|
|
401
|
-
const K =
|
|
402
|
-
startDate: `${
|
|
403
|
-
endDate: `${
|
|
404
|
-
}), m =
|
|
399
|
+
const K = b(1), ve = b(!1), W = b(0), ee = y(() => Math.max(1, Math.ceil(W.value / ne))), te = _().format("YYYY-MM-DD"), v = b({
|
|
400
|
+
startDate: `${te} 00:00`,
|
|
401
|
+
endDate: `${te} 23:59`
|
|
402
|
+
}), m = b(), k = b(), x = b(), T = b(), j = b("all");
|
|
405
403
|
function r(e) {
|
|
406
404
|
return typeof e == "string" ? [e] : Array.isArray(e) ? e.filter((t) => typeof t == "string") : [];
|
|
407
405
|
}
|
|
408
|
-
const
|
|
409
|
-
function
|
|
406
|
+
const q = se.filter((e) => e.key !== "all").map((e) => e.key);
|
|
407
|
+
function Y(e) {
|
|
410
408
|
const t = se.find((i) => i.key !== "all" && i.subjectPrefixes.some((L) => e.startsWith(L)));
|
|
411
409
|
return (t == null ? void 0 : t.key) ?? "other";
|
|
412
410
|
}
|
|
413
|
-
function
|
|
414
|
-
const t =
|
|
415
|
-
return t === -1 ?
|
|
411
|
+
function oe(e) {
|
|
412
|
+
const t = q.indexOf(e);
|
|
413
|
+
return t === -1 ? q.length : t;
|
|
416
414
|
}
|
|
417
|
-
const Le =
|
|
415
|
+
const Le = y(() => se.map(({
|
|
418
416
|
key: e
|
|
419
417
|
}) => ({
|
|
420
418
|
label: o(`auditLog.modules.${e}`),
|
|
421
419
|
value: e
|
|
422
|
-
}))), E =
|
|
420
|
+
}))), E = y(() => se.find((e) => e.key === j.value) ?? se[0]), ae = y(() => j.value === "all"), qe = y(() => w.members.map((e) => ({
|
|
423
421
|
label: e.name,
|
|
424
422
|
value: e.doc.userId
|
|
425
|
-
}))),
|
|
426
|
-
const e =
|
|
427
|
-
label:
|
|
428
|
-
value:
|
|
429
|
-
}))), t = Object.entries(
|
|
430
|
-
label:
|
|
431
|
-
value:
|
|
423
|
+
}))), Se = y(() => {
|
|
424
|
+
const e = Ye.flatMap((g) => r(g.subject).map((D) => ({
|
|
425
|
+
label: g.label,
|
|
426
|
+
value: D
|
|
427
|
+
}))), t = Object.entries(Re).map(([g, D]) => ({
|
|
428
|
+
label: D,
|
|
429
|
+
value: g
|
|
432
430
|
})), i = /* @__PURE__ */ new Set(), L = [];
|
|
433
|
-
for (const
|
|
434
|
-
if (!i.has(
|
|
435
|
-
i.add(
|
|
436
|
-
const
|
|
431
|
+
for (const g of [...e, ...t])
|
|
432
|
+
if (!i.has(g.value)) {
|
|
433
|
+
i.add(g.value);
|
|
434
|
+
const D = Y(g.value);
|
|
437
435
|
L.push({
|
|
438
|
-
...
|
|
439
|
-
group: o(`auditLog.modules.${
|
|
436
|
+
...g,
|
|
437
|
+
group: o(`auditLog.modules.${D}`)
|
|
440
438
|
});
|
|
441
439
|
}
|
|
442
|
-
return L.sort((
|
|
443
|
-
});
|
|
444
|
-
function
|
|
440
|
+
return L.sort((g, D) => oe(Y(g.value)) - oe(Y(D.value)));
|
|
441
|
+
}), He = y(() => ae.value ? Se.value : Se.value.filter((e) => Y(e.value) === j.value));
|
|
442
|
+
function We(e, t) {
|
|
445
443
|
const i = t.toLowerCase();
|
|
446
444
|
return e.label.toLowerCase().includes(i) || e.value.replace(/^business::/, "").toLowerCase().includes(i) ? !0 : e.value.toLowerCase().includes(i);
|
|
447
445
|
}
|
|
448
|
-
const
|
|
446
|
+
const U = y(() => ({
|
|
449
447
|
manage: o("auditLog.action.manage"),
|
|
450
448
|
create: o("auditLog.action.create"),
|
|
451
449
|
read: o("auditLog.action.read"),
|
|
452
450
|
update: o("auditLog.action.update"),
|
|
453
451
|
delete: o("auditLog.action.delete")
|
|
454
|
-
})),
|
|
455
|
-
label:
|
|
452
|
+
})), Je = y(() => [{
|
|
453
|
+
label: U.value.manage,
|
|
456
454
|
value: "manage"
|
|
457
455
|
}, {
|
|
458
|
-
label:
|
|
456
|
+
label: U.value.create,
|
|
459
457
|
value: "create"
|
|
460
458
|
}, {
|
|
461
|
-
label:
|
|
459
|
+
label: U.value.read,
|
|
462
460
|
value: "read"
|
|
463
461
|
}, {
|
|
464
|
-
label:
|
|
462
|
+
label: U.value.update,
|
|
465
463
|
value: "update"
|
|
466
464
|
}, {
|
|
467
|
-
label:
|
|
465
|
+
label: U.value.delete,
|
|
468
466
|
value: "delete"
|
|
469
|
-
}]),
|
|
467
|
+
}]), re = y(() => ({
|
|
470
468
|
allowed: o("auditLog.outcome.success"),
|
|
471
469
|
denied: o("auditLog.outcome.failed"),
|
|
472
470
|
skipped: o("auditLog.outcome.skipped")
|
|
473
|
-
})),
|
|
474
|
-
label:
|
|
471
|
+
})), Ge = y(() => [{
|
|
472
|
+
label: re.value.allowed,
|
|
475
473
|
value: "allowed"
|
|
476
474
|
}, {
|
|
477
|
-
label:
|
|
475
|
+
label: re.value.denied,
|
|
478
476
|
value: "denied"
|
|
479
477
|
}, {
|
|
480
|
-
label:
|
|
478
|
+
label: re.value.skipped,
|
|
481
479
|
value: "skipped"
|
|
482
|
-
}]),
|
|
480
|
+
}]), Xe = y(() => ({
|
|
483
481
|
admin: o("auditLog.detail.resolvedFromValue.admin"),
|
|
484
482
|
staff: o("auditLog.detail.resolvedFromValue.staff"),
|
|
485
483
|
permissionSet: o("auditLog.detail.resolvedFromValue.permissionSet"),
|
|
@@ -487,126 +485,126 @@ const se = [
|
|
|
487
485
|
custom: o("auditLog.detail.resolvedFromValue.custom"),
|
|
488
486
|
"no-match": o("auditLog.detail.resolvedFromValue.noMatch"),
|
|
489
487
|
unknown: o("auditLog.detail.resolvedFromValue.unknown")
|
|
490
|
-
})),
|
|
491
|
-
GET:
|
|
492
|
-
POST:
|
|
493
|
-
PUT:
|
|
494
|
-
PATCH:
|
|
495
|
-
DELETE:
|
|
496
|
-
})),
|
|
488
|
+
})), Qe = y(() => ({
|
|
489
|
+
GET: U.value.read,
|
|
490
|
+
POST: U.value.create,
|
|
491
|
+
PUT: U.value.update,
|
|
492
|
+
PATCH: U.value.update,
|
|
493
|
+
DELETE: U.value.delete
|
|
494
|
+
})), ke = {
|
|
497
495
|
allowed: "success",
|
|
498
496
|
denied: "critical",
|
|
499
497
|
skipped: "warning"
|
|
500
498
|
};
|
|
501
|
-
function
|
|
502
|
-
return
|
|
499
|
+
function de(e) {
|
|
500
|
+
return _(e).format(Jo);
|
|
503
501
|
}
|
|
504
|
-
const
|
|
502
|
+
const Ze = y(() => {
|
|
505
503
|
const {
|
|
506
504
|
startDate: e,
|
|
507
505
|
endDate: t
|
|
508
|
-
} =
|
|
509
|
-
return e && t ? `${
|
|
510
|
-
}),
|
|
506
|
+
} = v.value;
|
|
507
|
+
return e && t ? `${de(e)} – ${de(t)}` : e ? de(e) : t ? de(t) : o("auditLog.dateRange.placeholder");
|
|
508
|
+
}), et = y(() => [{
|
|
511
509
|
label: o("date.predefinedRanges.today"),
|
|
512
510
|
value: {
|
|
513
|
-
startDate:
|
|
514
|
-
endDate:
|
|
511
|
+
startDate: _().format(A),
|
|
512
|
+
endDate: _().format(A)
|
|
515
513
|
}
|
|
516
514
|
}, {
|
|
517
515
|
label: o("date.predefinedRanges.yesterday"),
|
|
518
516
|
value: {
|
|
519
|
-
startDate:
|
|
520
|
-
endDate:
|
|
517
|
+
startDate: _().subtract(1, "day").format(A),
|
|
518
|
+
endDate: _().subtract(1, "day").format(A)
|
|
521
519
|
}
|
|
522
520
|
}, {
|
|
523
521
|
label: o("date.predefinedRanges.thisWeek"),
|
|
524
522
|
value: {
|
|
525
|
-
startDate:
|
|
526
|
-
endDate:
|
|
523
|
+
startDate: _().startOf("week").format(A),
|
|
524
|
+
endDate: _().endOf("week").format(A)
|
|
527
525
|
}
|
|
528
526
|
}, {
|
|
529
527
|
label: o("date.predefinedRanges.lastWeek"),
|
|
530
528
|
value: {
|
|
531
|
-
startDate:
|
|
532
|
-
endDate:
|
|
529
|
+
startDate: _().subtract(1, "week").startOf("week").format(A),
|
|
530
|
+
endDate: _().subtract(1, "week").endOf("week").format(A)
|
|
533
531
|
}
|
|
534
532
|
}, {
|
|
535
533
|
label: o("date.predefinedRanges.last7Days"),
|
|
536
534
|
value: {
|
|
537
|
-
startDate:
|
|
538
|
-
endDate:
|
|
535
|
+
startDate: _().subtract(7, "day").format(A),
|
|
536
|
+
endDate: _().subtract(1, "day").format(A)
|
|
539
537
|
}
|
|
540
538
|
}, {
|
|
541
539
|
label: o("date.predefinedRanges.thisMonth"),
|
|
542
540
|
value: {
|
|
543
|
-
startDate:
|
|
544
|
-
endDate:
|
|
541
|
+
startDate: _().startOf("month").format(A),
|
|
542
|
+
endDate: _().endOf("month").format(A)
|
|
545
543
|
}
|
|
546
544
|
}, {
|
|
547
545
|
label: o("date.predefinedRanges.lastMonth"),
|
|
548
546
|
value: {
|
|
549
|
-
startDate:
|
|
550
|
-
endDate:
|
|
547
|
+
startDate: _().subtract(1, "month").startOf("month").format(A),
|
|
548
|
+
endDate: _().subtract(1, "month").endOf("month").format(A)
|
|
551
549
|
}
|
|
552
550
|
}]);
|
|
553
551
|
function be(e) {
|
|
554
552
|
var t;
|
|
555
|
-
return ((t =
|
|
553
|
+
return ((t = Ye.find((i) => i.subject === e)) == null ? void 0 : t.label) ?? Re[e];
|
|
556
554
|
}
|
|
557
|
-
function
|
|
555
|
+
function ce(e) {
|
|
558
556
|
var i;
|
|
559
557
|
const t = w.userIdToName[e.userId];
|
|
560
|
-
return t || (w.hasLoaded ? (i =
|
|
561
|
-
}
|
|
562
|
-
function ke(e) {
|
|
563
|
-
return w.userIdToPhone[e.userId] || "-";
|
|
564
|
-
}
|
|
565
|
-
function et(e) {
|
|
566
|
-
return w.userIdToEmail[e.userId] || "-";
|
|
558
|
+
return t || (w.hasLoaded ? (i = f.sessionUser.value) != null && i.isInternal ? `${e.actorName ?? e.userId} (${o("auditLog.user.feedmeAdmin")})` : o("auditLog.user.feedmeAdmin") : e.userId);
|
|
567
559
|
}
|
|
568
560
|
function we(e) {
|
|
569
|
-
return
|
|
561
|
+
return w.userIdToPhone[e.userId] || "-";
|
|
570
562
|
}
|
|
571
563
|
function tt(e) {
|
|
572
|
-
return
|
|
564
|
+
return w.userIdToEmail[e.userId] || "-";
|
|
573
565
|
}
|
|
574
566
|
function Me(e) {
|
|
575
|
-
return
|
|
567
|
+
return _(e).format("DD MMM YYYY, HH:mm");
|
|
568
|
+
}
|
|
569
|
+
function ot(e) {
|
|
570
|
+
return _(e).format("DD MMM YYYY, HH:mm:ss").toUpperCase();
|
|
576
571
|
}
|
|
577
572
|
function Fe(e) {
|
|
578
|
-
return e
|
|
573
|
+
return U.value[e] ?? e;
|
|
579
574
|
}
|
|
580
|
-
function
|
|
575
|
+
function De(e) {
|
|
576
|
+
return e.metadata.operationLabel ?? Fe(e.action);
|
|
577
|
+
}
|
|
578
|
+
function at(e) {
|
|
581
579
|
return be(e.subject) ?? e.subject;
|
|
582
580
|
}
|
|
583
581
|
function ge(e) {
|
|
584
|
-
return
|
|
585
|
-
}
|
|
586
|
-
function at(e) {
|
|
587
|
-
return Ge.value[e] ?? e;
|
|
582
|
+
return re.value[e];
|
|
588
583
|
}
|
|
589
584
|
function lt(e) {
|
|
590
|
-
return
|
|
585
|
+
return Xe.value[e] ?? e;
|
|
591
586
|
}
|
|
592
|
-
function
|
|
587
|
+
function st(e) {
|
|
588
|
+
return e.metadata.requestMethod ? Qe.value[e.metadata.requestMethod] ?? e.metadata.requestMethod : Fe(e.action);
|
|
589
|
+
}
|
|
590
|
+
function Ie(e) {
|
|
593
591
|
const t = String(e ?? "");
|
|
594
592
|
return `"${(/^[=+\-@\t\r]/.test(t) ? `'${t}` : t).replace(/"/g, '""')}"`;
|
|
595
593
|
}
|
|
596
594
|
const pe = [{
|
|
597
595
|
key: "timestamp",
|
|
598
596
|
labelKey: "auditLog.exportFields.timestamp",
|
|
599
|
-
getValue: (e) =>
|
|
597
|
+
getValue: (e) => Me(e.timestamp),
|
|
600
598
|
defaultSelected: !0
|
|
601
599
|
}, {
|
|
602
600
|
key: "userName",
|
|
603
601
|
labelKey: "auditLog.exportFields.userName",
|
|
604
|
-
getValue: (e) =>
|
|
602
|
+
getValue: (e) => ce(e),
|
|
605
603
|
defaultSelected: !0
|
|
606
604
|
}, {
|
|
607
605
|
key: "userPhone",
|
|
608
606
|
labelKey: "auditLog.exportFields.userPhone",
|
|
609
|
-
getValue: (e) =>
|
|
607
|
+
getValue: (e) => we(e),
|
|
610
608
|
defaultSelected: !0
|
|
611
609
|
}, {
|
|
612
610
|
key: "subject",
|
|
@@ -621,7 +619,7 @@ const se = [
|
|
|
621
619
|
}, {
|
|
622
620
|
key: "operation",
|
|
623
621
|
labelKey: "auditLog.exportFields.operation",
|
|
624
|
-
getValue: (e) =>
|
|
622
|
+
getValue: (e) => De(e),
|
|
625
623
|
defaultSelected: !0
|
|
626
624
|
}, {
|
|
627
625
|
key: "outcome",
|
|
@@ -668,9 +666,9 @@ const se = [
|
|
|
668
666
|
},
|
|
669
667
|
defaultSelected: !1
|
|
670
668
|
}];
|
|
671
|
-
function
|
|
669
|
+
function nt() {
|
|
672
670
|
try {
|
|
673
|
-
const e = localStorage.getItem(
|
|
671
|
+
const e = localStorage.getItem(Be);
|
|
674
672
|
if (e) {
|
|
675
673
|
const t = JSON.parse(e);
|
|
676
674
|
if (Array.isArray(t) && t.length > 0) return new Set(t);
|
|
@@ -679,41 +677,41 @@ const se = [
|
|
|
679
677
|
}
|
|
680
678
|
return new Set(pe.filter((e) => e.defaultSelected).map((e) => e.key));
|
|
681
679
|
}
|
|
682
|
-
const
|
|
683
|
-
function
|
|
684
|
-
const t = new Set(
|
|
680
|
+
const J = b(nt());
|
|
681
|
+
function ut(e) {
|
|
682
|
+
const t = new Set(J.value);
|
|
685
683
|
if (t.has(e)) {
|
|
686
684
|
if (t.size <= 1) return;
|
|
687
685
|
t.delete(e);
|
|
688
686
|
} else
|
|
689
687
|
t.add(e);
|
|
690
|
-
|
|
688
|
+
J.value = t;
|
|
691
689
|
try {
|
|
692
|
-
localStorage.setItem(
|
|
690
|
+
localStorage.setItem(Be, JSON.stringify([...t]));
|
|
693
691
|
} catch {
|
|
694
692
|
}
|
|
695
693
|
}
|
|
696
|
-
async function
|
|
697
|
-
var e, t, i, L,
|
|
694
|
+
async function it() {
|
|
695
|
+
var e, t, i, L, g, D;
|
|
698
696
|
if (!M.value) {
|
|
699
697
|
M.value = !0;
|
|
700
698
|
try {
|
|
701
699
|
const {
|
|
702
|
-
startDate:
|
|
703
|
-
endDate:
|
|
704
|
-
} =
|
|
705
|
-
|
|
706
|
-
from:
|
|
700
|
+
startDate: $,
|
|
701
|
+
endDate: z
|
|
702
|
+
} = v.value, H = E.value.subjectPrefixes, me = (/* @__PURE__ */ new Date()).toISOString().slice(0, 19).replace("T", " "), d = z ? G(z) : null, X = d && d < me ? d : me, vt = {
|
|
703
|
+
...$ ? {
|
|
704
|
+
from: G($)
|
|
707
705
|
} : {},
|
|
708
|
-
to:
|
|
706
|
+
to: X,
|
|
709
707
|
...(e = m.value) != null && e.length ? {
|
|
710
708
|
userIds: m.value
|
|
711
709
|
} : {},
|
|
712
|
-
...
|
|
713
|
-
subjects:
|
|
710
|
+
...(t = k.value) != null && t.length ? {
|
|
711
|
+
subjects: k.value
|
|
714
712
|
} : {},
|
|
715
|
-
...
|
|
716
|
-
subjectPrefixes: [...
|
|
713
|
+
...H.length ? {
|
|
714
|
+
subjectPrefixes: [...H]
|
|
717
715
|
} : {},
|
|
718
716
|
...(i = T.value) != null && i.length ? {
|
|
719
717
|
actions: T.value
|
|
@@ -721,32 +719,32 @@ const se = [
|
|
|
721
719
|
...(L = x.value) != null && L.length ? {
|
|
722
720
|
outcomes: x.value
|
|
723
721
|
} : {}
|
|
724
|
-
},
|
|
725
|
-
let
|
|
722
|
+
}, je = [];
|
|
723
|
+
let Pe = 0;
|
|
726
724
|
for (; ; ) {
|
|
727
725
|
const R = await _e.read({
|
|
728
|
-
...
|
|
726
|
+
...vt,
|
|
729
727
|
limit: xe,
|
|
730
|
-
offset:
|
|
728
|
+
offset: Pe
|
|
731
729
|
});
|
|
732
|
-
if (
|
|
733
|
-
|
|
730
|
+
if (je.push(...R), R.length < xe) break;
|
|
731
|
+
Pe += xe;
|
|
734
732
|
}
|
|
735
|
-
const
|
|
736
|
-
`),
|
|
733
|
+
const Ve = pe.filter((R) => J.value.has(R.key)), bt = Ve.map((R) => o(R.labelKey)), gt = je.map((R) => Ve.map((wt) => wt.getValue(R) ?? "")), ye = -(/* @__PURE__ */ new Date()).getTimezoneOffset(), pt = ye >= 0 ? "+" : "-", ht = String(Math.floor(Math.abs(ye) / 60)).padStart(2, "0"), yt = String(Math.abs(ye) % 60).padStart(2, "0"), _t = `UTC${pt}${ht}:${yt}`, Ae = ((g = f.currentBusiness.value) == null ? void 0 : g.name) || "", xt = [$, z].filter(Boolean).join(" – "), Lt = [...[[o("auditLog.title")], [`${o("auditLog.frontMatter.date")}: ${xt}`], ...Ae ? [[`${o("auditLog.frontMatter.business")}: ${Ae}`]] : [], [`${o("auditLog.frontMatter.generatedBy")}: ${_().format("DD MMM YYYY, HH:mm")} (${_t})`], []].map((R) => R.map(Ie).join(",")), ...[bt, ...gt].map((R) => R.map(Ie).join(","))].join(`
|
|
734
|
+
`), St = `audit-log_${(((D = f.currentBusiness.value) == null ? void 0 : D.name) || "business").replace(/[^a-z0-9_-]+/gi, "_")}_${_().format("YYYYMMDD_HHmmss")}.csv`, kt = new Blob([`\uFEFF${Lt}`], {
|
|
737
735
|
type: "text/csv;charset=utf-8;"
|
|
738
|
-
}),
|
|
739
|
-
le.href =
|
|
736
|
+
}), Ee = window.URL.createObjectURL(kt), le = document.createElement("a");
|
|
737
|
+
le.href = Ee, le.download = St, document.body.appendChild(le), le.click(), le.remove(), window.URL.revokeObjectURL(Ee);
|
|
740
738
|
} finally {
|
|
741
739
|
M.value = !1;
|
|
742
740
|
}
|
|
743
741
|
}
|
|
744
742
|
}
|
|
745
|
-
const
|
|
743
|
+
const rt = [{
|
|
746
744
|
accessorKey: "timestamp",
|
|
747
745
|
header: () => o("auditLog.columns.timestamp"),
|
|
748
746
|
cell(e) {
|
|
749
|
-
return
|
|
747
|
+
return Me(e.row.original.timestamp);
|
|
750
748
|
}
|
|
751
749
|
}, {
|
|
752
750
|
accessorKey: "userId",
|
|
@@ -755,19 +753,19 @@ const se = [
|
|
|
755
753
|
size: 220,
|
|
756
754
|
cell(e) {
|
|
757
755
|
const t = e.row.original;
|
|
758
|
-
return
|
|
756
|
+
return p("div", {
|
|
759
757
|
class: "flex items-center gap-8"
|
|
760
|
-
}, [
|
|
761
|
-
name:
|
|
758
|
+
}, [p(Ce.FmAvatar, {
|
|
759
|
+
name: ce(t),
|
|
762
760
|
size: "sm",
|
|
763
761
|
class: "shrink-0"
|
|
764
|
-
}, null),
|
|
762
|
+
}, null), p("div", {
|
|
765
763
|
class: "min-w-0"
|
|
766
|
-
}, [
|
|
764
|
+
}, [p("p", {
|
|
767
765
|
class: "truncate font-semibold"
|
|
768
|
-
}, [
|
|
766
|
+
}, [ce(t)]), p("p", {
|
|
769
767
|
class: "truncate text-fm-color-typo-secondary"
|
|
770
|
-
}, [
|
|
768
|
+
}, [we(t)])])]);
|
|
771
769
|
}
|
|
772
770
|
}, {
|
|
773
771
|
accessorKey: "subject",
|
|
@@ -785,7 +783,7 @@ const se = [
|
|
|
785
783
|
cellSpanClass: "audit-log-action-label"
|
|
786
784
|
},
|
|
787
785
|
cell(e) {
|
|
788
|
-
return
|
|
786
|
+
return De(e.row.original);
|
|
789
787
|
}
|
|
790
788
|
}, {
|
|
791
789
|
accessorKey: "outcome",
|
|
@@ -793,41 +791,41 @@ const se = [
|
|
|
793
791
|
enableSorting: !1,
|
|
794
792
|
cell(e) {
|
|
795
793
|
const t = e.row.original;
|
|
796
|
-
return
|
|
797
|
-
variant:
|
|
794
|
+
return p(Ce.FmChip, {
|
|
795
|
+
variant: ke[t.outcome] ?? "neutral",
|
|
798
796
|
label: ge(t.outcome),
|
|
799
797
|
compact: !0
|
|
800
798
|
}, null);
|
|
801
799
|
}
|
|
802
800
|
}];
|
|
803
|
-
function
|
|
804
|
-
const t =
|
|
801
|
+
function G(e) {
|
|
802
|
+
const t = _(e, Go);
|
|
805
803
|
return new Date(t.year(), t.month(), t.date(), t.hour(), t.minute(), 0).toISOString().slice(0, 19).replace("T", " ");
|
|
806
804
|
}
|
|
807
|
-
async function
|
|
805
|
+
async function Oe() {
|
|
808
806
|
var e, t, i, L;
|
|
809
|
-
|
|
807
|
+
P.value = !0;
|
|
810
808
|
try {
|
|
811
809
|
const {
|
|
812
|
-
startDate:
|
|
813
|
-
endDate:
|
|
814
|
-
} =
|
|
810
|
+
startDate: g,
|
|
811
|
+
endDate: D
|
|
812
|
+
} = v.value, $ = (K.value - 1) * ne, z = E.value.subjectPrefixes, H = await _e.read({
|
|
815
813
|
limit: ne,
|
|
816
|
-
offset:
|
|
817
|
-
...
|
|
818
|
-
from:
|
|
814
|
+
offset: $,
|
|
815
|
+
...g ? {
|
|
816
|
+
from: G(g)
|
|
819
817
|
} : {},
|
|
820
|
-
...
|
|
821
|
-
to:
|
|
818
|
+
...D ? {
|
|
819
|
+
to: G(D)
|
|
822
820
|
} : {},
|
|
823
821
|
...(e = m.value) != null && e.length ? {
|
|
824
822
|
userIds: m.value
|
|
825
823
|
} : {},
|
|
826
|
-
...
|
|
827
|
-
subjects:
|
|
824
|
+
...(t = k.value) != null && t.length ? {
|
|
825
|
+
subjects: k.value
|
|
828
826
|
} : {},
|
|
829
|
-
...
|
|
830
|
-
subjectPrefixes: [...
|
|
827
|
+
...z.length ? {
|
|
828
|
+
subjectPrefixes: [...z]
|
|
831
829
|
} : {},
|
|
832
830
|
...(i = T.value) != null && i.length ? {
|
|
833
831
|
actions: T.value
|
|
@@ -836,219 +834,221 @@ const se = [
|
|
|
836
834
|
outcomes: x.value
|
|
837
835
|
} : {}
|
|
838
836
|
});
|
|
839
|
-
|
|
837
|
+
S.value = H, ve.value = H.length === ne;
|
|
840
838
|
} finally {
|
|
841
|
-
|
|
839
|
+
P.value = !1;
|
|
842
840
|
}
|
|
843
841
|
}
|
|
844
|
-
const
|
|
842
|
+
const Te = y(() => {
|
|
845
843
|
var e;
|
|
846
844
|
return JSON.stringify({
|
|
847
|
-
businessId: ((e =
|
|
848
|
-
dateRange:
|
|
845
|
+
businessId: ((e = f.currentBusiness.value) == null ? void 0 : e._id) ?? "",
|
|
846
|
+
dateRange: v.value,
|
|
849
847
|
users: [...m.value ?? []].sort(),
|
|
850
|
-
subjects: [...
|
|
848
|
+
subjects: [...k.value ?? []].sort(),
|
|
851
849
|
outcomes: [...x.value ?? []].sort(),
|
|
852
850
|
actions: [...T.value ?? []].sort(),
|
|
853
|
-
moduleKey:
|
|
851
|
+
moduleKey: j.value
|
|
854
852
|
});
|
|
855
853
|
});
|
|
856
|
-
async function
|
|
857
|
-
var L,
|
|
854
|
+
async function dt() {
|
|
855
|
+
var L, g, D, $;
|
|
858
856
|
const {
|
|
859
857
|
startDate: e,
|
|
860
858
|
endDate: t
|
|
861
|
-
} =
|
|
862
|
-
|
|
859
|
+
} = v.value, i = E.value.subjectPrefixes;
|
|
860
|
+
W.value = await _e.count({
|
|
863
861
|
...e ? {
|
|
864
|
-
from:
|
|
862
|
+
from: G(e)
|
|
865
863
|
} : {},
|
|
866
864
|
...t ? {
|
|
867
|
-
to:
|
|
865
|
+
to: G(t)
|
|
868
866
|
} : {},
|
|
869
867
|
...(L = m.value) != null && L.length ? {
|
|
870
868
|
userIds: m.value
|
|
871
869
|
} : {},
|
|
872
|
-
...
|
|
873
|
-
subjects:
|
|
870
|
+
...(g = k.value) != null && g.length ? {
|
|
871
|
+
subjects: k.value
|
|
874
872
|
} : {},
|
|
875
873
|
...i.length ? {
|
|
876
874
|
subjectPrefixes: [...i]
|
|
877
875
|
} : {},
|
|
878
|
-
...(
|
|
876
|
+
...(D = T.value) != null && D.length ? {
|
|
879
877
|
actions: T.value
|
|
880
878
|
} : {},
|
|
881
|
-
...(
|
|
879
|
+
...($ = x.value) != null && $.length ? {
|
|
882
880
|
outcomes: x.value
|
|
883
881
|
} : {}
|
|
884
882
|
});
|
|
885
883
|
}
|
|
886
|
-
|
|
884
|
+
ue(Te, async () => {
|
|
887
885
|
var e;
|
|
888
|
-
K.value = 1, (e =
|
|
886
|
+
K.value = 1, (e = f.currentBusiness.value) != null && e._id && await Promise.all([dt(), Oe()]);
|
|
889
887
|
}, {
|
|
890
888
|
immediate: !0
|
|
889
|
+
}), ue(j, () => {
|
|
890
|
+
k.value = void 0;
|
|
891
891
|
});
|
|
892
892
|
let he = !1;
|
|
893
|
-
async function
|
|
893
|
+
async function ct({
|
|
894
894
|
pageIndex: e
|
|
895
895
|
}) {
|
|
896
896
|
var t;
|
|
897
|
-
if ((t =
|
|
897
|
+
if ((t = f.currentBusiness.value) != null && t._id && e !== 0 && !he) {
|
|
898
898
|
he = !0, K.value = e + 1;
|
|
899
899
|
try {
|
|
900
|
-
await
|
|
900
|
+
await Oe();
|
|
901
901
|
} finally {
|
|
902
902
|
he = !1;
|
|
903
903
|
}
|
|
904
904
|
}
|
|
905
905
|
}
|
|
906
|
-
function
|
|
906
|
+
function mt(e) {
|
|
907
907
|
s.value = e, O.value = !0;
|
|
908
908
|
}
|
|
909
|
-
function
|
|
909
|
+
function ft() {
|
|
910
910
|
O.value = !1, s.value = null;
|
|
911
911
|
}
|
|
912
|
-
return
|
|
912
|
+
return ue(f.currentBusiness, (e) => {
|
|
913
913
|
e && w.readTeamMembers();
|
|
914
914
|
}, {
|
|
915
915
|
immediate: !0
|
|
916
916
|
}), (e, t) => {
|
|
917
|
-
const i =
|
|
918
|
-
return
|
|
917
|
+
const i = C("FmSpacer"), L = C("FmButton"), g = C("FmMenuItem"), D = C("FmMenu"), $ = C("FmChip"), z = C("FmDateRangePicker"), H = C("FmTable"), me = C("FmSideSheet");
|
|
918
|
+
return h(), I(Z, null, [p(jt, {
|
|
919
919
|
heading: n(o)("auditLog.title")
|
|
920
920
|
}, {
|
|
921
|
-
"append-heading": B(() => [
|
|
921
|
+
"append-heading": B(() => [p(i), p(L, {
|
|
922
922
|
variant: "primary",
|
|
923
923
|
"prepend-icon": "upload",
|
|
924
924
|
label: n(o)("auditLog.export"),
|
|
925
|
-
disabled:
|
|
925
|
+
disabled: S.value.length === 0 || M.value || n(w).isLoading || n(w).members.length === 0,
|
|
926
926
|
loading: M.value,
|
|
927
|
-
onClick:
|
|
928
|
-
}, null, 8, ["label", "disabled", "loading"]),
|
|
927
|
+
onClick: it
|
|
928
|
+
}, null, 8, ["label", "disabled", "loading"]), p(D, {
|
|
929
929
|
"close-on-click": !1,
|
|
930
930
|
"z-index": 50
|
|
931
931
|
}, {
|
|
932
|
-
"menu-button": B(() => [
|
|
932
|
+
"menu-button": B(() => [p(L, {
|
|
933
933
|
variant: "tertiary",
|
|
934
934
|
icon: "settings",
|
|
935
935
|
"aria-label": n(o)("auditLog.exportSettings.title"),
|
|
936
936
|
disabled: M.value
|
|
937
937
|
}, null, 8, ["aria-label", "disabled"])]),
|
|
938
|
-
default: B(() => [l("div",
|
|
938
|
+
default: B(() => [l("div", Nt, [l("p", Bt, u(n(o)("auditLog.exportSettings.title")), 1), (h(), I(Z, null, ie(pe, (d) => p(g, {
|
|
939
939
|
key: d.key,
|
|
940
940
|
label: n(o)(d.labelKey),
|
|
941
941
|
"has-checkbox": "",
|
|
942
|
-
"model-value":
|
|
943
|
-
disabled:
|
|
944
|
-
onClick: (
|
|
942
|
+
"model-value": J.value.has(d.key),
|
|
943
|
+
disabled: J.value.has(d.key) && J.value.size === 1,
|
|
944
|
+
onClick: (X) => ut(d.key)
|
|
945
945
|
}, null, 8, ["label", "model-value", "disabled", "onClick"])), 64))])]),
|
|
946
946
|
_: 1
|
|
947
947
|
})]),
|
|
948
|
-
default: B(() => [l("div",
|
|
949
|
-
modelValue:
|
|
950
|
-
"onUpdate:modelValue": t[0] || (t[0] = (d) =>
|
|
948
|
+
default: B(() => [l("div", Kt, [l("div", zt, [p($t, {
|
|
949
|
+
modelValue: j.value,
|
|
950
|
+
"onUpdate:modelValue": t[0] || (t[0] = (d) => j.value = d),
|
|
951
951
|
items: Le.value
|
|
952
|
-
}, null, 8, ["modelValue", "items"]), l("div",
|
|
953
|
-
modelValue:
|
|
954
|
-
"onUpdate:modelValue": t[1] || (t[1] = (d) =>
|
|
952
|
+
}, null, 8, ["modelValue", "items"]), l("div", qt, [p(z, {
|
|
953
|
+
modelValue: v.value,
|
|
954
|
+
"onUpdate:modelValue": t[1] || (t[1] = (d) => v.value = d),
|
|
955
955
|
"show-predefined-range": "",
|
|
956
956
|
"show-time": "",
|
|
957
|
-
"predefined-range":
|
|
957
|
+
"predefined-range": et.value
|
|
958
958
|
}, {
|
|
959
|
-
"trigger-button": B(() => [
|
|
960
|
-
label:
|
|
959
|
+
"trigger-button": B(() => [p($, {
|
|
960
|
+
label: Ze.value,
|
|
961
961
|
icon: "calendar_month"
|
|
962
962
|
}, null, 8, ["label"])]),
|
|
963
963
|
_: 1
|
|
964
|
-
}, 8, ["modelValue", "predefined-range"]), l("div",
|
|
964
|
+
}, 8, ["modelValue", "predefined-range"]), l("div", Ht, [p(fe, {
|
|
965
965
|
modelValue: m.value,
|
|
966
966
|
"onUpdate:modelValue": t[2] || (t[2] = (d) => m.value = d),
|
|
967
|
-
items:
|
|
967
|
+
items: qe.value,
|
|
968
968
|
multiple: "",
|
|
969
969
|
variant: "dark",
|
|
970
970
|
placeholder: n(o)("auditLog.filter.user_placeholder"),
|
|
971
971
|
"selected-prefix": n(o)("auditLog.filter.selected_user_prefix"),
|
|
972
972
|
"chip-icon": "account_circle"
|
|
973
|
-
}, null, 8, ["modelValue", "items", "placeholder", "selected-prefix"])]),
|
|
974
|
-
modelValue:
|
|
975
|
-
"onUpdate:modelValue": t[3] || (t[3] = (d) =>
|
|
976
|
-
items:
|
|
977
|
-
"filter-fn":
|
|
973
|
+
}, null, 8, ["modelValue", "items", "placeholder", "selected-prefix"])]), l("div", Wt, [p(fe, {
|
|
974
|
+
modelValue: k.value,
|
|
975
|
+
"onUpdate:modelValue": t[3] || (t[3] = (d) => k.value = d),
|
|
976
|
+
items: He.value,
|
|
977
|
+
"filter-fn": We,
|
|
978
978
|
multiple: "",
|
|
979
979
|
variant: "dark",
|
|
980
980
|
placeholder: n(o)("auditLog.filter.subject_placeholder"),
|
|
981
981
|
"selected-prefix": n(o)("auditLog.filter.selected_subject_prefix"),
|
|
982
982
|
"chip-icon": "badge"
|
|
983
|
-
}, null, 8, ["modelValue", "items", "placeholder", "selected-prefix"])])
|
|
983
|
+
}, null, 8, ["modelValue", "items", "placeholder", "selected-prefix"])]), l("div", Jt, [p(fe, {
|
|
984
984
|
modelValue: T.value,
|
|
985
985
|
"onUpdate:modelValue": t[4] || (t[4] = (d) => T.value = d),
|
|
986
|
-
items:
|
|
986
|
+
items: Je.value,
|
|
987
987
|
multiple: "",
|
|
988
988
|
variant: "dark",
|
|
989
989
|
placeholder: n(o)("auditLog.filter.action_placeholder"),
|
|
990
990
|
"selected-prefix": n(o)("auditLog.filter.selected_action_prefix"),
|
|
991
991
|
searchable: !1
|
|
992
|
-
}, null, 8, ["modelValue", "items", "placeholder", "selected-prefix"])]), l("div",
|
|
992
|
+
}, null, 8, ["modelValue", "items", "placeholder", "selected-prefix"])]), l("div", Gt, [p(fe, {
|
|
993
993
|
modelValue: x.value,
|
|
994
994
|
"onUpdate:modelValue": t[5] || (t[5] = (d) => x.value = d),
|
|
995
|
-
items:
|
|
995
|
+
items: Ge.value,
|
|
996
996
|
multiple: "",
|
|
997
997
|
variant: "dark",
|
|
998
998
|
placeholder: n(o)("auditLog.filter.status_placeholder"),
|
|
999
999
|
"selected-prefix": n(o)("auditLog.filter.selected_status_prefix"),
|
|
1000
1000
|
searchable: !1,
|
|
1001
1001
|
"chip-icon": "check_circle"
|
|
1002
|
-
}, null, 8, ["modelValue", "items", "placeholder", "selected-prefix"])])])]), !
|
|
1002
|
+
}, null, 8, ["modelValue", "items", "placeholder", "selected-prefix"])])])]), !P.value && S.value.length === 0 ? (h(), Q(n(Pt), {
|
|
1003
1003
|
key: 0,
|
|
1004
1004
|
title: n(o)("auditLog.noData.title"),
|
|
1005
1005
|
subtitle: n(o)("auditLog.noData.subtitle")
|
|
1006
|
-
}, null, 8, ["title", "subtitle"])) : (
|
|
1006
|
+
}, null, 8, ["title", "subtitle"])) : (h(), Q(Ot, {
|
|
1007
1007
|
key: 1
|
|
1008
1008
|
}, {
|
|
1009
|
-
default: B(() => [(
|
|
1010
|
-
key:
|
|
1011
|
-
"column-defs":
|
|
1012
|
-
"row-data":
|
|
1009
|
+
default: B(() => [(h(), Q(H, {
|
|
1010
|
+
key: Te.value,
|
|
1011
|
+
"column-defs": rt,
|
|
1012
|
+
"row-data": S.value,
|
|
1013
1013
|
"page-size": ne,
|
|
1014
|
-
"page-count":
|
|
1015
|
-
"row-count":
|
|
1016
|
-
"fetch-fn":
|
|
1017
|
-
"hide-footer":
|
|
1018
|
-
loading:
|
|
1014
|
+
"page-count": ee.value,
|
|
1015
|
+
"row-count": W.value,
|
|
1016
|
+
"fetch-fn": ct,
|
|
1017
|
+
"hide-footer": ee.value <= 1,
|
|
1018
|
+
loading: P.value,
|
|
1019
1019
|
"pin-header-row": "",
|
|
1020
1020
|
class: "audit-log-list-table min-h-0 flex-1 cursor-pointer",
|
|
1021
|
-
onRowClick: t[6] || (t[6] = (d) =>
|
|
1021
|
+
onRowClick: t[6] || (t[6] = (d) => mt(d.original))
|
|
1022
1022
|
}, null, 8, ["row-data", "page-count", "row-count", "hide-footer", "loading"]))]),
|
|
1023
1023
|
_: 1
|
|
1024
1024
|
}))])]),
|
|
1025
1025
|
_: 1
|
|
1026
|
-
}, 8, ["heading"]),
|
|
1026
|
+
}, 8, ["heading"]), p(me, {
|
|
1027
1027
|
header: n(o)("auditLog.detail.header"),
|
|
1028
1028
|
"model-value": O.value,
|
|
1029
1029
|
"max-width": 480,
|
|
1030
1030
|
"dismiss-away": "",
|
|
1031
1031
|
"onUpdate:modelValue": t[7] || (t[7] = (d) => {
|
|
1032
|
-
d ||
|
|
1032
|
+
d || ft();
|
|
1033
1033
|
})
|
|
1034
1034
|
}, {
|
|
1035
|
-
default: B(() => [s.value ? (
|
|
1036
|
-
variant:
|
|
1035
|
+
default: B(() => [s.value ? (h(), I("div", Xt, [l("div", Qt, [l("div", Zt, [l("p", eo, u(at(s.value)), 1)]), p($, {
|
|
1036
|
+
variant: ke[s.value.outcome] ?? "neutral",
|
|
1037
1037
|
label: ge(s.value.outcome),
|
|
1038
1038
|
compact: ""
|
|
1039
|
-
}, null, 8, ["variant", "label"])]), l("div",
|
|
1039
|
+
}, null, 8, ["variant", "label"])]), l("div", to, [l("div", oo, [l("div", null, [l("p", ao, u(n(o)("auditLog.detail.date")), 1), l("p", lo, u(ot(s.value.timestamp)), 1)]), l("div", null, [l("p", so, u(n(o)("auditLog.detail.user")), 1), l("p", no, u(ce(s.value)), 1)]), l("div", null, [l("p", uo, u(n(o)("auditLog.detail.email")), 1), l("p", io, u(tt(s.value)), 1)]), s.value.field ? (h(), I("div", ro, [l("p", co, u(n(o)("auditLog.detail.field")), 1), l("p", mo, u(s.value.field), 1)])) : N("", !0), l("div", null, [l("p", fo, u(n(o)("auditLog.detail.business")), 1), l("p", vo, u(s.value.businessId || "-"), 1)]), l("div", null, [l("p", bo, u(n(o)("auditLog.detail.restaurant")), 1), l("p", go, u(s.value.restaurantId || "-"), 1)])])]), l("div", po, [l("div", ho, [l("p", yo, u(n(o)("auditLog.detail.eventDetails")), 1)]), t[8] || (t[8] = l("hr", {
|
|
1040
1040
|
class: "border-fm-color-border-default"
|
|
1041
|
-
}, null, -1)), l("div",
|
|
1041
|
+
}, null, -1)), l("div", _o, [l("div", null, [l("p", xo, u(n(o)("auditLog.detail.actionDescription")), 1), l("p", Lo, u(s.value.metadata.operationLabel || "-"), 1)])])]), l("div", So, [l("div", ko, [l("p", wo, u(n(o)("auditLog.detail.metadata")), 1)]), t[9] || (t[9] = l("hr", {
|
|
1042
1042
|
class: "border-fm-color-border-default"
|
|
1043
|
-
}, null, -1)), l("div",
|
|
1044
|
-
key:
|
|
1043
|
+
}, null, -1)), l("div", Mo, [l("div", null, [l("p", Fo, u(n(o)("auditLog.detail.resolvedFrom")), 1), l("p", Do, u(lt(s.value.metadata.resolvedFrom)), 1)]), (s.value.metadata.resolvedFrom === "permissionSet" || s.value.metadata.resolvedFrom === "systemPermissionSet") && (s.value.metadata.permissionSetName || s.value.metadata.permissionSetId) ? (h(), I("div", Io, [l("p", Oo, u(n(o)("auditLog.detail.permissionSet")), 1), s.value.metadata.permissionSetName ? (h(), I("p", To, u(s.value.metadata.permissionSetName), 1)) : N("", !0), s.value.metadata.permissionSetId ? (h(), I("p", jo, u(s.value.metadata.permissionSetId), 1)) : N("", !0)])) : N("", !0), s.value.metadata.reason ? (h(), I("div", Po, [l("p", Vo, u(n(o)("auditLog.detail.reason")), 1), l("p", Ao, u(s.value.metadata.reason), 1)])) : N("", !0), l("div", null, [l("p", Eo, u(n(o)("auditLog.detail.requestMethod")), 1), l("p", Ro, u(st(s.value)), 1)]), l("div", null, [l("p", Co, u(n(o)("auditLog.detail.requestPath")), 1), l("p", Uo, u(s.value.metadata.requestPath || "-"), 1)]), s.value.metadata.trace && s.value.metadata.trace.length > 0 ? (h(), I("div", $o, [l("p", Yo, u(n(o)("auditLog.detail.permissionTrace")), 1), l("ol", No, [(h(!0), I(Z, null, ie(s.value.metadata.trace, (d, X) => (h(), I("li", {
|
|
1044
|
+
key: X,
|
|
1045
1045
|
class: "flex items-center gap-6"
|
|
1046
|
-
}, [l("span",
|
|
1046
|
+
}, [l("span", Bo, u(X + 1), 1), l("span", Ko, u(d), 1), X < s.value.metadata.trace.length - 1 ? (h(), I("span", zo, "→")) : N("", !0)]))), 128))])])) : N("", !0), c.value ? (h(), I("div", qo, [l("p", Ho, u(n(o)("auditLog.detail.requestBody")), 1), l("pre", Wo, u(c.value), 1)])) : N("", !0)])])])) : N("", !0)]),
|
|
1047
1047
|
_: 1
|
|
1048
1048
|
}, 8, ["header", "model-value"])], 64);
|
|
1049
1049
|
};
|
|
1050
1050
|
}
|
|
1051
|
-
}),
|
|
1051
|
+
}), ca = /* @__PURE__ */ Tt(Xo, [["__scopeId", "data-v-cf386576"]]);
|
|
1052
1052
|
export {
|
|
1053
|
-
|
|
1053
|
+
ca as default
|
|
1054
1054
|
};
|