@feedmepos/mf-hrm-portal 2.0.24-dev.5 → 2.0.24-dev.7

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