@feedmepos/mf-hrm-portal 2.2.1-dev.2 → 2.2.1-dev.4

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 (47) hide show
  1. package/dist/{ApprovalCodeList-DZajn7xx.js → ApprovalCodeList-CJpbX8H_.js} +5 -5
  2. package/dist/AuditLogList-A1217xlw.js +1722 -0
  3. package/dist/ConditionBuilderForm.vue_vue_type_script_setup_true_lang-BWNAtv1G.js +438 -0
  4. package/dist/{EmployeeList-DDuxDdlJ.js → EmployeeList-Gh8aU7BY.js} +6 -6
  5. package/dist/{GrantUserList-735upmIE.js → GrantUserList-vpaCAv1u.js} +6 -6
  6. package/dist/{Main-tQ6MrkkP.js → Main-38YNSkW6.js} +11 -11
  7. package/dist/{Main-DyZ6dJ2d.js → Main-CXjbH7aE.js} +8 -8
  8. package/dist/{Main-CHHR0r5b.js → Main-GwRBJ3al.js} +5 -5
  9. package/dist/{PermissionSetList-ZxLNYPEB.js → PermissionSetList-CuzFQm7J.js} +7 -7
  10. package/dist/PortalPermissionEditor.vue_vue_type_script_setup_true_lang-C9bkMb41.js +4169 -0
  11. package/dist/{PortalUserSearcher.vue_vue_type_style_index_0_scoped_827dfd60_lang-DVVSBIx2.js → PortalUserSearcher.vue_vue_type_style_index_0_scoped_827dfd60_lang-XHuHin8t.js} +1 -1
  12. package/dist/RoleList-C5VZbU3f.js +725 -0
  13. package/dist/{TeamMemberList-B58boeR9.js → TeamMemberList-ChrUNLsA.js} +9 -9
  14. package/dist/{TimesheetList-DMnNVVlB.js → TimesheetList-Dqx3RZ4c.js} +7 -7
  15. package/dist/{TimesheetList.vue_vue_type_style_index_0_scoped_2c7a177a_lang-Ch8Ng6wi.js → TimesheetList.vue_vue_type_style_index_0_scoped_2c7a177a_lang-rtbLyLSE.js} +3 -3
  16. package/dist/{app-CtuaUGnw.js → app-CPByRtdD.js} +10 -6
  17. package/dist/app.js +1 -1
  18. package/dist/{approval-code-Q4666xp5.js → approval-code-jIjkeVEb.js} +1 -1
  19. package/dist/{dayjs.min-9pRWRTS9.js → dayjs.min-DeAdykwc.js} +1 -1
  20. package/dist/{employee-JmfN-rQF.js → employee-dFHap_s3.js} +4 -4
  21. package/dist/{grant-user-CQZaTzVt.js → grant-user-SNiDV22U.js} +1 -1
  22. package/dist/{iteration-CkzTvtOv.js → iteration-B_EcCwqv.js} +1 -1
  23. package/dist/{lodash-BNBzabCH.js → lodash-C5UxxqU2.js} +1 -1
  24. package/dist/{restaurant-YOVMuuFY.js → restaurant-BTpBmfBV.js} +12 -14
  25. package/dist/role-8ZQb8Cap.js +92 -0
  26. package/dist/rule-DJZO_Kev.js +1094 -0
  27. package/dist/src/composables/useReportPermissions.d.ts +1 -0
  28. package/dist/src/helpers/rule.d.ts +10 -1
  29. package/dist/src/stores/role.d.ts +6 -6
  30. package/dist/src/views/audit-log/change-nodes.d.ts +14 -0
  31. package/dist/src/views/audit-log/locales/index.d.ts +4 -0
  32. package/dist/src/views/audit-log/operation-status.d.ts +2 -0
  33. package/dist/src/views/team/components/PortalConditionForm.vue.d.ts +44 -0
  34. package/dist/src/views/team/condition-builders/ConditionBuilderForm.vue.d.ts +39 -0
  35. package/dist/style.css +1 -1
  36. package/dist/tsconfig.app.tsbuildinfo +1 -1
  37. package/dist/{useAppStore-DNTlIeMv.js → useAppStore-DCwd8GWN.js} +1 -1
  38. package/dist/{useLoading-BH02lYns.js → useLoading-CXzTpIVv.js} +1 -1
  39. package/dist/useReportPermissions-Phq7vqLK.js +71 -0
  40. package/package.json +1 -1
  41. package/dist/AuditLogList-CpKIq8I0.js +0 -1611
  42. package/dist/ConditionFormHost.vue_vue_type_script_setup_true_lang-DCfvikJB.js +0 -387
  43. package/dist/PortalPermissionEditor.vue_vue_type_script_setup_true_lang-MoFevdmL.js +0 -4122
  44. package/dist/RoleList-BZbEGpCi.js +0 -685
  45. package/dist/role-R_9sO2QD.js +0 -82
  46. package/dist/rule-D1pKbnKR.js +0 -1066
  47. package/dist/useReportPermissions-ByxRc3kz.js +0 -70
@@ -0,0 +1,438 @@
1
+ import { defineComponent as M, ref as S, onMounted as ae, nextTick as le, onUnmounted as ue, resolveComponent as F, createElementBlock as p, openBlock as s, Fragment as C, createElementVNode as U, renderSlot as _, createCommentVNode as w, toDisplayString as J, createVNode as E, normalizeStyle as re, watch as X, defineAsyncComponent as se, computed as z, renderList as T, createBlock as h, withCtx as H, unref as x, resolveDynamicComponent as ie, normalizeClass as de } from "vue";
2
+ import { useI18n as q, useCoreStore as me } from "@feedmepos/mf-common";
3
+ import { O as j, f as ce, U as L } from "./app-CPByRtdD.js";
4
+ import { l as fe } from "./lodash-C5UxxqU2.js";
5
+ const ye = { class: "flex items-center" }, be = {
6
+ key: 0,
7
+ class: "ml-8 fm-typo-en-body-sm-400 text-fm-color-typo-secondary"
8
+ }, ve = { class: "ml-auto" }, Be = /* @__PURE__ */ M({
9
+ __name: "CollapsibleWrapper",
10
+ props: {
11
+ title: { default: "" },
12
+ subtitle: { default: "" },
13
+ initiallyCollapsed: { type: Boolean, default: !1 }
14
+ },
15
+ setup(t) {
16
+ const a = S(t.initiallyCollapsed), c = S(), f = S(0);
17
+ let m;
18
+ function g() {
19
+ a.value = !a.value;
20
+ }
21
+ function d() {
22
+ c.value && (f.value = c.value.scrollHeight);
23
+ }
24
+ return ae(async () => {
25
+ await le(), c.value && (m = new ResizeObserver(() => {
26
+ d();
27
+ }), m.observe(c.value));
28
+ }), ue(() => {
29
+ m == null || m.disconnect();
30
+ }), (b, r) => {
31
+ const y = F("FmButton");
32
+ return s(), p(C, null, [
33
+ U("div", { onClick: g }, [
34
+ U("div", ye, [
35
+ _(b.$slots, "title"),
36
+ a.value && t.subtitle ? (s(), p("span", be, J(t.subtitle), 1)) : w("", !0),
37
+ U("div", ve, [
38
+ E(y, {
39
+ icon: a.value ? "keyboard_arrow_down" : "keyboard_arrow_up",
40
+ "text-color": "neutral-gray-400",
41
+ variant: "tertiary",
42
+ size: "md"
43
+ }, null, 8, ["icon"])
44
+ ])
45
+ ])
46
+ ]),
47
+ U("div", {
48
+ ref_key: "contentRef",
49
+ ref: c,
50
+ class: "transition-all duration-300 ease-in-out overflow-hidden",
51
+ style: re({ maxHeight: a.value ? "0" : f.value + "px" })
52
+ }, [
53
+ _(b.$slots, "default")
54
+ ], 4)
55
+ ], 64);
56
+ };
57
+ }
58
+ });
59
+ function I(t) {
60
+ return `${t.subject}::${t.builderKey}`;
61
+ }
62
+ function Oe(t) {
63
+ const u = S(/* @__PURE__ */ new Map());
64
+ function a(r, y) {
65
+ const k = new Map(u.value);
66
+ k.set(I(r), y), u.value = k;
67
+ }
68
+ function c(r) {
69
+ return u.value.get(I(r));
70
+ }
71
+ function f(r) {
72
+ for (const y of u.value.keys())
73
+ if (y.startsWith(`${r}::`)) return !0;
74
+ return !1;
75
+ }
76
+ function m(r) {
77
+ const y = /* @__PURE__ */ new Map();
78
+ for (const [k, A] of u.value.entries())
79
+ k.startsWith(`${r}::`) && y.set(k, A);
80
+ return y;
81
+ }
82
+ function g(r) {
83
+ const y = new Map(u.value);
84
+ for (const k of Array.from(y.keys()))
85
+ k.startsWith(`${r}::`) && y.delete(k);
86
+ u.value = y;
87
+ }
88
+ function d() {
89
+ u.value = /* @__PURE__ */ new Map();
90
+ }
91
+ function b(r) {
92
+ const y = new Map(u.value);
93
+ y.delete(I(r)), u.value = y;
94
+ }
95
+ return t && X(
96
+ t,
97
+ () => {
98
+ d();
99
+ },
100
+ { deep: !0 }
101
+ ), {
102
+ drafts: u,
103
+ setDraft: a,
104
+ getDraft: c,
105
+ hasDraftsForSubject: f,
106
+ getDraftsForSubject: m,
107
+ clearDraftsForSubject: g,
108
+ clearAllDrafts: d,
109
+ clearDraft: b
110
+ };
111
+ }
112
+ const pe = {}, W = /* @__PURE__ */ new Map();
113
+ function ke(t) {
114
+ const u = W.get(t);
115
+ if (u) return u;
116
+ const a = pe[t];
117
+ if (!a) return;
118
+ const c = se(a);
119
+ return W.set(t, c), c;
120
+ }
121
+ function he(t, u) {
122
+ return !fe.isEqual(t, u);
123
+ }
124
+ const Ve = { class: "flex flex-col gap-8" }, Fe = { class: "flex flex-col gap-4" }, ge = "condition-form-select-menu", Z = 120, Ce = 220, De = /* @__PURE__ */ M({
125
+ __name: "ConditionFormRenderer",
126
+ props: {
127
+ config: {},
128
+ modelValue: {},
129
+ disabled: { type: Boolean, default: !1 },
130
+ optionProviders: { default: () => ({}) }
131
+ },
132
+ emits: ["update:modelValue"],
133
+ setup(t, { emit: u }) {
134
+ const a = t, c = u, { t: f } = q(), m = me(), g = z(() => j(a.config, a.modelValue));
135
+ let d = a.modelValue;
136
+ X(
137
+ () => a.modelValue,
138
+ (e) => {
139
+ d = e;
140
+ }
141
+ );
142
+ function b(e) {
143
+ return "static" in e ? e.static.map((n) => ({ value: n.value, label: f(n.labelKey) })) : a.optionProviders[e.provider] ?? [];
144
+ }
145
+ function r(e, n) {
146
+ const l = y(
147
+ ce(a.config, { ...a.modelValue, [e]: n })
148
+ );
149
+ he(l, d) && (d = l, c("update:modelValue", l));
150
+ }
151
+ function y(e) {
152
+ const n = { ...e };
153
+ for (const l of j(a.config, n))
154
+ l.kind === "date" && !n[l.key] && (n[l.key] = P(Y()));
155
+ return n;
156
+ }
157
+ function k() {
158
+ const e = m.currentBusiness.value;
159
+ if (e != null && e.timezone) return e.timezone;
160
+ if (e != null && e.timeZone) return e.timeZone;
161
+ const n = (e == null ? void 0 : e.country) ?? (m.currentCountry.value instanceof Object ? m.currentCountry.value.code : m.currentCountry.value);
162
+ return A(n);
163
+ }
164
+ function A(e) {
165
+ switch ((e || "").toUpperCase()) {
166
+ case "MY":
167
+ return "Asia/Kuala_Lumpur";
168
+ case "SG":
169
+ return "Asia/Singapore";
170
+ case "TH":
171
+ return "Asia/Bangkok";
172
+ case "ID":
173
+ return "Asia/Jakarta";
174
+ case "MO":
175
+ return "Asia/Macau";
176
+ case "BN":
177
+ return "Asia/Brunei";
178
+ case "PK":
179
+ return "Asia/Karachi";
180
+ case "MV":
181
+ return "Indian/Maldives";
182
+ case "VN":
183
+ return "Asia/Ho_Chi_Minh";
184
+ case "JP":
185
+ return "Asia/Tokyo";
186
+ case "AU":
187
+ return "Australia/Sydney";
188
+ case "AE":
189
+ return "Asia/Dubai";
190
+ case "UK":
191
+ return "Europe/London";
192
+ default:
193
+ return Intl.DateTimeFormat().resolvedOptions().timeZone;
194
+ }
195
+ }
196
+ function K(e, n) {
197
+ const l = new Intl.DateTimeFormat("en-CA", {
198
+ timeZone: n,
199
+ year: "numeric",
200
+ month: "2-digit",
201
+ day: "2-digit",
202
+ hour: "2-digit",
203
+ minute: "2-digit",
204
+ second: "2-digit",
205
+ hourCycle: "h23"
206
+ }).formatToParts(e), v = Object.fromEntries(
207
+ l.filter((V) => V.type !== "literal").map((V) => [V.type, V.value])
208
+ );
209
+ return {
210
+ year: Number(v.year),
211
+ month: Number(v.month),
212
+ day: Number(v.day),
213
+ hour: Number(v.hour),
214
+ minute: Number(v.minute),
215
+ second: Number(v.second)
216
+ };
217
+ }
218
+ function R(e, n) {
219
+ try {
220
+ const l = K(n, e);
221
+ return (Date.UTC(
222
+ l.year,
223
+ l.month - 1,
224
+ l.day,
225
+ l.hour,
226
+ l.minute,
227
+ l.second
228
+ ) - n.getTime()) / 6e4;
229
+ } catch {
230
+ return 0;
231
+ }
232
+ }
233
+ function P(e) {
234
+ const [n, l, v] = e.split("-").map(Number);
235
+ if (!n || !l || !v) return "";
236
+ const V = k(), D = new Date(Date.UTC(n, l - 1, v, 0, 0, 0, 0)), O = R(V, D), N = new Date(D.getTime() - O * 6e4), $ = R(V, N);
237
+ return new Date(D.getTime() - $ * 6e4).toISOString();
238
+ }
239
+ function G(e) {
240
+ const n = new Date(e);
241
+ if (Number.isNaN(n.getTime())) return "";
242
+ try {
243
+ const l = K(n, k());
244
+ return `${String(l.year).padStart(4, "0")}-${String(l.month).padStart(2, "0")}-${String(l.day).padStart(2, "0")}`;
245
+ } catch {
246
+ return e.slice(0, 10);
247
+ }
248
+ }
249
+ function Y() {
250
+ return G((/* @__PURE__ */ new Date()).toISOString());
251
+ }
252
+ function B(e) {
253
+ return "options" in e ? b(e.options) : [];
254
+ }
255
+ function Q(e) {
256
+ const n = a.modelValue[e];
257
+ return n == null ? "" : String(n);
258
+ }
259
+ function ee(e) {
260
+ const n = a.modelValue[e];
261
+ return typeof n != "string" || !n ? "" : G(n);
262
+ }
263
+ function te(e, n) {
264
+ r(e, n ? P(n) : "");
265
+ }
266
+ function ne(e, n) {
267
+ let l = Math.floor(Number(n) || (e.min ?? 0));
268
+ e.min !== void 0 && (l = Math.max(e.min, l)), e.max !== void 0 && (l = Math.min(e.max, l)), r(e.key, l);
269
+ }
270
+ return (e, n) => {
271
+ const l = F("FmRadio"), v = F("FmRadioGroup"), V = F("FmSelect"), D = F("FmTextField"), O = F("FmDatePicker"), N = F("FmCheckbox"), $ = F("FmFormGroup");
272
+ return s(), p("div", Ve, [
273
+ (s(!0), p(C, null, T(g.value, (o) => (s(), p(C, {
274
+ key: o.key
275
+ }, [
276
+ o.kind === "radio" ? (s(), h(v, {
277
+ key: 0,
278
+ "model-value": t.modelValue[o.key],
279
+ disabled: t.disabled,
280
+ "onUpdate:modelValue": (i) => r(o.key, i)
281
+ }, {
282
+ default: H(() => [
283
+ (s(!0), p(C, null, T(B(o), (i) => (s(), h(l, {
284
+ key: i.value,
285
+ value: i.value,
286
+ label: i.label
287
+ }, null, 8, ["value", "label"]))), 128))
288
+ ]),
289
+ _: 2
290
+ }, 1032, ["model-value", "disabled", "onUpdate:modelValue"])) : o.kind === "select" ? (s(), h(V, {
291
+ key: 1,
292
+ "model-value": t.modelValue[o.key],
293
+ label: x(f)(o.labelKey),
294
+ items: B(o),
295
+ "menu-id": ge,
296
+ "menu-z-index": Z,
297
+ "max-height": Ce,
298
+ "shift-menu": "",
299
+ placement: "bottom-start",
300
+ disabled: t.disabled,
301
+ "onUpdate:modelValue": (i) => r(o.key, i)
302
+ }, null, 8, ["model-value", "label", "items", "disabled", "onUpdate:modelValue"])) : o.kind === "number" ? (s(), h(D, {
303
+ key: 2,
304
+ "model-value": Q(o.key),
305
+ type: "number",
306
+ class: "!w-[120px] ml-32",
307
+ label: x(f)(o.labelKey),
308
+ disabled: t.disabled,
309
+ "onUpdate:modelValue": (i) => ne(o, i)
310
+ }, null, 8, ["model-value", "label", "disabled", "onUpdate:modelValue"])) : o.kind === "text" ? (s(), h(D, {
311
+ key: 3,
312
+ "model-value": t.modelValue[o.key] ?? "",
313
+ label: x(f)(o.labelKey),
314
+ disabled: t.disabled,
315
+ "onUpdate:modelValue": (i) => r(o.key, i)
316
+ }, null, 8, ["model-value", "label", "disabled", "onUpdate:modelValue"])) : o.kind === "date" ? (s(), h(O, {
317
+ key: 4,
318
+ "model-value": ee(o.key),
319
+ label: x(f)(o.labelKey),
320
+ "z-index": Z,
321
+ disabled: t.disabled,
322
+ "onUpdate:modelValue": (i) => te(o.key, i)
323
+ }, null, 8, ["model-value", "label", "disabled", "onUpdate:modelValue"])) : o.kind === "switch" ? (s(), h(N, {
324
+ key: 5,
325
+ "model-value": !!t.modelValue[o.key],
326
+ value: !0,
327
+ label: x(f)(o.labelKey),
328
+ disabled: t.disabled,
329
+ "onUpdate:modelValue": (i) => r(o.key, i)
330
+ }, null, 8, ["model-value", "label", "disabled", "onUpdate:modelValue"])) : o.kind === "multiselect" ? (s(), h($, {
331
+ key: 6,
332
+ "model-value": t.modelValue[o.key] ?? [],
333
+ "onUpdate:modelValue": (i) => r(o.key, i)
334
+ }, {
335
+ default: H(() => [
336
+ U("div", Fe, [
337
+ (s(!0), p(C, null, T(B(o), (i) => (s(), h(N, {
338
+ key: i.value,
339
+ "model-value": t.modelValue[o.key] ?? [],
340
+ value: i.value,
341
+ label: i.label,
342
+ disabled: t.disabled,
343
+ "onUpdate:modelValue": (oe) => r(o.key, oe)
344
+ }, null, 8, ["model-value", "value", "label", "disabled", "onUpdate:modelValue"]))), 128))
345
+ ])
346
+ ]),
347
+ _: 2
348
+ }, 1032, ["model-value", "onUpdate:modelValue"])) : w("", !0)
349
+ ], 64))), 128))
350
+ ]);
351
+ };
352
+ }
353
+ }), xe = /* @__PURE__ */ M({
354
+ __name: "ConditionFormHost",
355
+ props: {
356
+ builder: {},
357
+ modelValue: {},
358
+ disable: { type: Boolean, default: !1 },
359
+ optionProviders: { default: () => ({}) }
360
+ },
361
+ emits: ["update:modelValue"],
362
+ setup(t, { emit: u }) {
363
+ const a = t, c = u, f = z(
364
+ () => a.builder.form && L(a.builder.form) ? a.builder.form : void 0
365
+ ), m = z(
366
+ () => a.builder.form && !L(a.builder.form) ? ke(a.builder.form.component) : void 0
367
+ );
368
+ return (g, d) => f.value ? (s(), h(De, {
369
+ key: 0,
370
+ config: f.value,
371
+ "model-value": t.modelValue ?? f.value.defaults,
372
+ disabled: t.disable,
373
+ "option-providers": t.optionProviders,
374
+ "onUpdate:modelValue": d[0] || (d[0] = (b) => c("update:modelValue", b))
375
+ }, null, 8, ["config", "model-value", "disabled", "option-providers"])) : m.value ? (s(), h(ie(m.value), {
376
+ key: 1,
377
+ "model-value": t.modelValue,
378
+ disable: t.disable,
379
+ "onUpdate:modelValue": d[1] || (d[1] = (b) => c("update:modelValue", b))
380
+ }, null, 8, ["model-value", "disable"])) : w("", !0);
381
+ }
382
+ }), Ue = {
383
+ key: 0,
384
+ class: "fm-typo-en-title-sm-600"
385
+ }, we = {
386
+ key: 0,
387
+ class: "h-px w-full bg-fm-color-neutral-gray-200"
388
+ }, Ne = { class: "flex justify-end pt-8" }, $e = /* @__PURE__ */ M({
389
+ __name: "ConditionBuilderForm",
390
+ props: {
391
+ builders: {},
392
+ formValueFor: {},
393
+ hasChanges: { type: Boolean },
394
+ title: { default: "" },
395
+ disable: { type: Boolean, default: !1 },
396
+ fullWidth: { type: Boolean, default: !1 }
397
+ },
398
+ emits: ["update-form", "apply"],
399
+ setup(t, { emit: u }) {
400
+ const a = u, { t: c } = q();
401
+ return (f, m) => {
402
+ const g = F("FmButton");
403
+ return s(), p("div", {
404
+ class: de(["flex flex-col gap-12 p-16", t.fullWidth ? "w-full" : "w-[320px]"])
405
+ }, [
406
+ t.title ? (s(), p("p", Ue, J(t.title), 1)) : w("", !0),
407
+ (s(!0), p(C, null, T(t.builders, (d, b) => (s(), p(C, {
408
+ key: d.builderKey
409
+ }, [
410
+ b > 0 ? (s(), p("div", we)) : w("", !0),
411
+ _(f.$slots, "section", { builder: d }, () => [
412
+ E(xe, {
413
+ builder: d,
414
+ "model-value": t.formValueFor(d),
415
+ disable: t.disable,
416
+ "onUpdate:modelValue": (r) => a("update-form", { builder: d, form: r })
417
+ }, null, 8, ["builder", "model-value", "disable", "onUpdate:modelValue"])
418
+ ])
419
+ ], 64))), 128)),
420
+ U("div", Ne, [
421
+ E(g, {
422
+ label: x(c)("team.memberForm.permissions.conditionApply"),
423
+ size: "md",
424
+ variant: "primary",
425
+ disabled: t.disable || !t.hasChanges,
426
+ onClick: m[0] || (m[0] = (d) => a("apply"))
427
+ }, null, 8, ["label", "disabled"])
428
+ ])
429
+ ], 2);
430
+ };
431
+ }
432
+ });
433
+ export {
434
+ Be as _,
435
+ $e as a,
436
+ xe as b,
437
+ Oe as u
438
+ };
@@ -2,18 +2,18 @@ import { toRaw as je, defineComponent as Ae, ref as v, computed as x, watch as a
2
2
  import { useI18n as De, useCoreStore as We } from "@feedmepos/mf-common";
3
3
  import { useSnackbar as Ne, components as ze, useDialog as Qe, useBreakpoints as Ye } from "@feedmepos/ui-library";
4
4
  import { S as fe, _ as Ze } from "./SelectFilter-ATOm0hdn.js";
5
- import { _ as Xe, a as ea } from "./app-CtuaUGnw.js";
5
+ import { _ as Xe, a as ea } from "./app-CPByRtdD.js";
6
6
  import { _ as Re, u as aa, H as la } from "./FormItem.vue_vue_type_script_setup_true_lang-DPT2FoIc.js";
7
7
  import { u as ta, _ as sa } from "./useDiscardConfirm-DPhEV6v0.js";
8
8
  import { _ as oa } from "./TableEmptyState.vue_vue_type_script_setup_true_lang-IfAZmWr0.js";
9
9
  import { _ as Ue } from "./Skeleton.vue_vue_type_script_setup_true_lang-B4PxNMwq.js";
10
10
  import { u as ra } from "./useDebounce-B8ZPVS5C.js";
11
- import { u as Ke, E as na } from "./employee-JmfN-rQF.js";
12
- import { u as Oe } from "./restaurant-YOVMuuFY.js";
13
- import { l as ia } from "./lodash-BNBzabCH.js";
11
+ import { u as Ke, E as na } from "./employee-dFHap_s3.js";
12
+ import { u as Oe } from "./restaurant-BTpBmfBV.js";
13
+ import { l as ia } from "./lodash-C5UxxqU2.js";
14
14
  import { _ as $e } from "./FormSection.vue_vue_type_script_setup_true_lang-DknXTYiK.js";
15
- import { u as Be } from "./useLoading-BH02lYns.js";
16
- import { u as Ee } from "./role-R_9sO2QD.js";
15
+ import { u as Be } from "./useLoading-CXzTpIVv.js";
16
+ import { u as Ee } from "./role-8ZQb8Cap.js";
17
17
  /* empty css */
18
18
  function Me(z) {
19
19
  return JSON.parse(JSON.stringify(z));
@@ -1,15 +1,15 @@
1
1
  import { defineComponent as X, ref as S, computed as f, watch as ue, resolveComponent as v, createElementBlock as D, openBlock as w, Fragment as E, renderSlot as de, createVNode as l, unref as s, withCtx as g, createElementVNode as o, toDisplayString as _, isRef as H, renderList as me, createBlock as pe, createCommentVNode as fe, withModifiers as W, createTextVNode as J, normalizeClass as ve, h as p } from "vue";
2
- import { d as ge } from "./dayjs.min-9pRWRTS9.js";
2
+ import { d as ge } from "./dayjs.min-DeAdykwc.js";
3
3
  import { useI18n as Z } from "@feedmepos/mf-common";
4
4
  import { useSnackbar as ee, components as K, useDialog as _e, useBreakpoints as ye, FmButtonVariant as O } from "@feedmepos/ui-library";
5
5
  import { S as A } from "./SelectFilter-ATOm0hdn.js";
6
- import { _ as he } from "./app-CtuaUGnw.js";
6
+ import { _ as he } from "./app-CPByRtdD.js";
7
7
  import { _ as Q, u as Ue, H as xe } from "./FormItem.vue_vue_type_script_setup_true_lang-DPT2FoIc.js";
8
8
  import { _ as be } from "./TableEmptyState.vue_vue_type_script_setup_true_lang-IfAZmWr0.js";
9
- import { u as te } from "./useLoading-BH02lYns.js";
10
- import { u as ae } from "./grant-user-CQZaTzVt.js";
11
- import { u as se } from "./restaurant-YOVMuuFY.js";
12
- import { u as re } from "./role-R_9sO2QD.js";
9
+ import { u as te } from "./useLoading-CXzTpIVv.js";
10
+ import { u as ae } from "./grant-user-SNiDV22U.js";
11
+ import { u as se } from "./restaurant-BTpBmfBV.js";
12
+ import { u as re } from "./role-8ZQb8Cap.js";
13
13
  import { _ as Ve } from "./FormSection.vue_vue_type_script_setup_true_lang-DknXTYiK.js";
14
14
  const ke = { class: "fm-typo-en-title-md-600" }, Fe = { class: "space-y-40" }, we = { class: "flex gap-8 items-center justify-start" }, Se = /* @__PURE__ */ X({
15
15
  __name: "GrantUserForm",
@@ -4,19 +4,19 @@ import { useCoreStore as uf, useI18n as vf } from "@feedmepos/mf-common";
4
4
  import { useSnackbar as pf } from "@feedmepos/ui-library";
5
5
  import { _ as df } from "./ResponsiveFabButton.vue_vue_type_script_setup_true_lang-QrqYEy8i.js";
6
6
  import { _ as mf } from "./PageLayout.vue_vue_type_script_setup_true_lang-HKK4cbW8.js";
7
- import { u as gf } from "./restaurant-YOVMuuFY.js";
8
- import { u as _f } from "./role-R_9sO2QD.js";
7
+ import { u as gf } from "./restaurant-BTpBmfBV.js";
8
+ import { u as _f } from "./role-8ZQb8Cap.js";
9
9
  /* empty css */
10
- import "./employee-JmfN-rQF.js";
11
- import "./lodash-BNBzabCH.js";
12
- import "./useAppStore-DNTlIeMv.js";
13
- import "./iteration-CkzTvtOv.js";
10
+ import "./employee-dFHap_s3.js";
11
+ import "./lodash-C5UxxqU2.js";
12
+ import "./useAppStore-DCwd8GWN.js";
13
+ import "./iteration-B_EcCwqv.js";
14
14
  /* empty css */
15
- import { R as pt } from "./app-CtuaUGnw.js";
16
- import "./rule-D1pKbnKR.js";
17
- import "./useReportPermissions-ByxRc3kz.js";
18
- import "./dayjs.min-9pRWRTS9.js";
19
- import "./TimesheetList.vue_vue_type_style_index_0_scoped_2c7a177a_lang-Ch8Ng6wi.js";
15
+ import { R as pt } from "./app-CPByRtdD.js";
16
+ import "./rule-DJZO_Kev.js";
17
+ import "./useReportPermissions-Phq7vqLK.js";
18
+ import "./dayjs.min-DeAdykwc.js";
19
+ import "./TimesheetList.vue_vue_type_style_index_0_scoped_2c7a177a_lang-rtbLyLSE.js";
20
20
  var Nn = {};
21
21
  /*! xlsx.js (C) 2013-present SheetJS -- http://sheetjs.com */
22
22
  var qt = {};
@@ -3,16 +3,16 @@ import { useRouter as N, useRoute as h } from "vue-router";
3
3
  import { useI18n as k } from "@feedmepos/mf-common";
4
4
  import { _ as x } from "./ResponsiveFabButton.vue_vue_type_script_setup_true_lang-QrqYEy8i.js";
5
5
  import { _ as F } from "./PageLayout.vue_vue_type_script_setup_true_lang-HKK4cbW8.js";
6
- import { u as w } from "./restaurant-YOVMuuFY.js";
6
+ import { u as w } from "./restaurant-BTpBmfBV.js";
7
7
  import "@feedmepos/ui-library";
8
- import "./rule-D1pKbnKR.js";
9
- import "./lodash-BNBzabCH.js";
10
- import "./iteration-CkzTvtOv.js";
11
- import "./useAppStore-DNTlIeMv.js";
12
- import { R as v } from "./app-CtuaUGnw.js";
13
- import "./role-R_9sO2QD.js";
8
+ import "./rule-DJZO_Kev.js";
9
+ import "./lodash-C5UxxqU2.js";
10
+ import "./iteration-B_EcCwqv.js";
11
+ import "./useAppStore-DCwd8GWN.js";
12
+ import { R as v } from "./app-CPByRtdD.js";
13
+ import "./role-8ZQb8Cap.js";
14
14
  /* empty css */
15
- import "./PortalUserSearcher.vue_vue_type_style_index_0_scoped_827dfd60_lang-DVVSBIx2.js";
15
+ import "./PortalUserSearcher.vue_vue_type_style_index_0_scoped_827dfd60_lang-XHuHin8t.js";
16
16
  const $ = { class: "space-y-24" }, Z = /* @__PURE__ */ M({
17
17
  __name: "Main",
18
18
  setup(q) {
@@ -4,11 +4,11 @@ import { useI18n as E, useCoreStore as $ } from "@feedmepos/mf-common";
4
4
  import { useSnackbar as I } from "@feedmepos/ui-library";
5
5
  import { _ as z } from "./ResponsiveFabButton.vue_vue_type_script_setup_true_lang-QrqYEy8i.js";
6
6
  import { _ as M } from "./PageLayout.vue_vue_type_script_setup_true_lang-HKK4cbW8.js";
7
- import { u as j } from "./restaurant-YOVMuuFY.js";
8
- import { u as H } from "./role-R_9sO2QD.js";
9
- import { u as J } from "./grant-user-CQZaTzVt.js";
10
- import { u as K } from "./approval-code-Q4666xp5.js";
11
- import { R as n } from "./app-CtuaUGnw.js";
7
+ import { u as j } from "./restaurant-BTpBmfBV.js";
8
+ import { u as H } from "./role-8ZQb8Cap.js";
9
+ import { u as J } from "./grant-user-SNiDV22U.js";
10
+ import { u as K } from "./approval-code-jIjkeVEb.js";
11
+ import { R as n } from "./app-CPByRtdD.js";
12
12
  const Q = { class: "space-y-24" }, ue = /* @__PURE__ */ D({
13
13
  __name: "Main",
14
14
  setup(W) {
@@ -1,15 +1,15 @@
1
1
  import { defineComponent as Z, ref as f, computed as h, watch as ue, resolveComponent as b, createBlock as de, openBlock as ee, unref as r, withCtx as C, createVNode as m, createElementVNode as y, toDisplayString as G, nextTick as pe, onMounted as fe, createElementBlock as ve, Fragment as Se, h as S } from "vue";
2
2
  import { useI18n as se, useCoreStore as he } from "@feedmepos/mf-common";
3
3
  import { useSnackbar as oe, useDialog as te, useBreakpoints as ne, components as H } from "@feedmepos/ui-library";
4
- import { b as Q, _ as be } from "./app-CtuaUGnw.js";
4
+ import { b as Q, _ as be } from "./app-CPByRtdD.js";
5
5
  import { _ as _e } from "./TableEmptyState.vue_vue_type_script_setup_true_lang-IfAZmWr0.js";
6
6
  import { u as ge, _ as Pe } from "./useDiscardConfirm-DPhEV6v0.js";
7
- import { u as ie, c as M, i as ae, p as Y, j as ye, d as we, m as L, o as xe, q as Fe, s as ke, n as Ce, w as Ie } from "./rule-D1pKbnKR.js";
8
- import { l as j } from "./lodash-BNBzabCH.js";
9
- import { c as Re } from "./iteration-CkzTvtOv.js";
10
- import { u as Ve } from "./useLoading-BH02lYns.js";
11
- import { _ as Ee } from "./PortalPermissionEditor.vue_vue_type_script_setup_true_lang-MoFevdmL.js";
12
- import { A as je } from "./restaurant-YOVMuuFY.js";
7
+ import { u as ie, c as M, i as ae, p as Y, j as ye, d as we, m as L, q as xe, v as Fe, n as ke, o as Ce, x as Ie } from "./rule-DJZO_Kev.js";
8
+ import { l as j } from "./lodash-C5UxxqU2.js";
9
+ import { c as Re } from "./iteration-B_EcCwqv.js";
10
+ import { u as Ve } from "./useLoading-CXzTpIVv.js";
11
+ import { _ as Ee } from "./PortalPermissionEditor.vue_vue_type_script_setup_true_lang-C9bkMb41.js";
12
+ import { A as je } from "./restaurant-BTpBmfBV.js";
13
13
  const Te = { class: "flex w-full items-center justify-between" }, $e = { class: "fm-typo-en-title-md-600" }, Be = { class: "fm-typo-en-title-sm-600 mt-24" }, Le = { class: "flex items-center justify-start gap-8" }, Ae = /* @__PURE__ */ Z({
14
14
  __name: "PermissionSetForm",
15
15
  props: {