@feedmepos/mf-hrm-portal 2.0.16 → 2.0.17-dev.2

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/{AuditLogList-iyCwZoot.js → AuditLogList-DQOiwup5.js} +324 -350
  2. package/dist/CollapsibleWrapper.vue_vue_type_script_setup_true_lang-BLJlmPVa.js +58 -0
  3. package/dist/EmployeeList-oERrzrAd.js +828 -0
  4. package/dist/FormItem.vue_vue_type_script_setup_true_lang-CoorkndT.js +34 -0
  5. package/dist/FormSection.vue_vue_type_script_setup_true_lang-DknXTYiK.js +49 -0
  6. package/dist/{Main-C-_jj0hE.js → Main-2uJvk5L7.js} +15 -14
  7. package/dist/{Main-Br1NK5Nk.js → Main-5nIpv-Sp.js} +9 -9
  8. package/dist/{Main-CVLdj0vm.js → Main-C8ja5xs6.js} +8 -8
  9. package/dist/PermissionSetList-CtpaWlVM.js +323 -0
  10. package/dist/PortalPermissionEditor.vue_vue_type_script_setup_true_lang-B-hvBqE0.js +3439 -0
  11. package/dist/ResponsiveContextMenu.vue_vue_type_script_setup_true_lang-mSJFKo7r.js +132 -0
  12. package/dist/RoleList-CDBP2W5v.js +544 -0
  13. package/dist/TeamMemberList-DSzNjP4y.js +996 -0
  14. package/dist/{TimesheetList-Cvco7hQ7.js → TimesheetList-D1ByiuwP.js} +6 -6
  15. package/dist/{app-Deq-BbQg.js → app-hS6MBhCw.js} +211 -163
  16. package/dist/app.js +1 -1
  17. package/dist/{dayjs.min-BC7eDcw3.js → dayjs.min-DFcH-XYr.js} +1 -1
  18. package/dist/{employee-CSb8K1_S.js → employee-fBtBUEwZ.js} +3 -3
  19. package/dist/{iteration-CzlBzD5p.js → iteration-D23fqAQH.js} +2 -2
  20. package/dist/{lodash-BxgA1s7j.js → lodash-Cqc7y4P5.js} +1 -1
  21. package/dist/{rule-BYb8TfeP.js → rule-BBJzenE1.js} +2 -2
  22. package/dist/src/components/CheckboxInput.vue.d.ts +1 -1
  23. package/dist/src/components/CollapsibleWrapper.vue.d.ts +2 -0
  24. package/dist/src/composables/useBasePermission.d.ts +1 -0
  25. package/dist/src/views/hr/locales/index.d.ts +16 -0
  26. package/dist/src/views/team/components/BasePermission.vue.d.ts +2 -6
  27. package/dist/src/views/team/components/PosRolePermission.vue.d.ts +2 -2
  28. package/dist/src/views/team/locales/index.d.ts +32 -0
  29. package/dist/src/views/team/member/AddMemberForm.vue.d.ts +3 -3
  30. package/dist/style.css +1 -1
  31. package/dist/team-Dq3VcGNH.js +33 -0
  32. package/dist/{timesheet-BlHG7Fw5.js → timesheet-OfLQjuvO.js} +2 -2
  33. package/dist/tsconfig.app.tsbuildinfo +1 -1
  34. package/dist/{useAppStore-tV67t5M2.js → useAppStore-Du6PRBq0.js} +1 -1
  35. package/dist/{useLoading-DWaMwG8t.js → useLoading-DkTCR5A7.js} +1 -1
  36. package/dist/{useReportPermissions-DJvfurhn.js → useReportPermissions-DhhjBwPs.js} +3 -3
  37. package/dist/useSearch-BAPEUu1R.js +15 -0
  38. package/package.json +1 -1
  39. package/dist/EmployeeList-CJvHFQnQ.js +0 -736
  40. package/dist/FormSection.vue_vue_type_script_setup_true_lang-BVb8c4YU.js +0 -71
  41. package/dist/HorizontalSplitter-o860F4xM.js +0 -12
  42. package/dist/PermissionSetList-4lJbnJsE.js +0 -334
  43. package/dist/PortalPermissionEditor.vue_vue_type_script_setup_true_lang-DJniPhu1.js +0 -3476
  44. package/dist/RoleList-C0NI4ooY.js +0 -528
  45. package/dist/TeamMemberList-CGjxliOv.js +0 -1108
  46. package/dist/useDebounce-B8ZPVS5C.js +0 -15
  47. package/dist/useSearch-B6WK1LBB.js +0 -15
@@ -1,71 +0,0 @@
1
- import { defineComponent as i, createElementBlock as s, openBlock as o, createElementVNode as l, renderSlot as n, createCommentVNode as c, toDisplayString as a, normalizeClass as d, createVNode as m, withCtx as f } from "vue";
2
- const p = { class: "space-y-8" }, y = { class: "flex items-center justify-between" }, h = { class: "space-y-8" }, u = { class: "fm-typo-en-body-lg-600" }, _ = {
3
- key: 0,
4
- class: "fm-typo-en-body-md-400 text-fm-color-typo-secondary"
5
- }, w = /* @__PURE__ */ i({
6
- __name: "FormItem",
7
- props: {
8
- label: {},
9
- description: {}
10
- },
11
- setup(e) {
12
- return (t, r) => (o(), s("div", p, [
13
- l("div", y, [
14
- l("div", h, [
15
- l("p", u, a(e.label), 1),
16
- e.description ? (o(), s("p", _, a(e.description), 1)) : c("", !0)
17
- ]),
18
- n(t.$slots, "append")
19
- ]),
20
- n(t.$slots, "default")
21
- ]));
22
- }
23
- }), b = /* @__PURE__ */ i({
24
- __name: "FormColumn",
25
- props: {
26
- shrinkable: { type: Boolean }
27
- },
28
- setup(e) {
29
- return (t, r) => (o(), s("div", {
30
- class: d(["flex-1 flex flex-col space-y-24", { "min-h-0": e.shrinkable }])
31
- }, [
32
- n(t.$slots, "default")
33
- ], 2));
34
- }
35
- }), k = {
36
- key: 0,
37
- class: "flex flex-row justify-between items-center"
38
- }, $ = { class: "space-y-4" }, x = { class: "fm-typo-en-title-sm-600" }, v = {
39
- key: 0,
40
- class: "fm-typo-en-body-md-400 text-fm-color-typo-secondary"
41
- }, B = /* @__PURE__ */ i({
42
- __name: "FormSection",
43
- props: {
44
- title: {},
45
- subTitle: {},
46
- shrinkable: { type: Boolean }
47
- },
48
- setup(e) {
49
- return (t, r) => (o(), s("div", {
50
- class: d(["flex flex-col space-y-16", { "min-h-0": e.shrinkable }])
51
- }, [
52
- e.title ? (o(), s("div", k, [
53
- l("div", $, [
54
- l("p", x, a(e.title), 1),
55
- e.subTitle ? (o(), s("p", v, a(e.subTitle), 1)) : c("", !0)
56
- ]),
57
- n(t.$slots, "append-title")
58
- ])) : c("", !0),
59
- m(b, { shrinkable: e.shrinkable }, {
60
- default: f(() => [
61
- n(t.$slots, "default")
62
- ]),
63
- _: 3
64
- }, 8, ["shrinkable"])
65
- ], 2));
66
- }
67
- });
68
- export {
69
- B as _,
70
- w as a
71
- };
@@ -1,12 +0,0 @@
1
- import { createElementBlock as e, openBlock as o, createElementVNode as t } from "vue";
2
- import { _ as l } from "./SelectFilter-DUj7GBtT.js";
3
- const n = {};
4
- function c(s, r) {
5
- return o(), e("div", null, [...r[0] || (r[0] = [
6
- t("div", { class: "h-px w-full bg-fm-color-neutral-gray-100" }, null, -1)
7
- ])]);
8
- }
9
- const i = /* @__PURE__ */ l(n, [["render", c]]);
10
- export {
11
- i as H
12
- };
@@ -1,334 +0,0 @@
1
- import { defineComponent as M, computed as S, resolveComponent as c, createElementBlock as L, openBlock as h, createElementVNode as x, createVNode as m, toDisplayString as N, unref as u, withCtx as g, createTextVNode as te, Fragment as H, renderList as oe, ref as _, createBlock as q, nextTick as ne, onMounted as ie, h as z } from "vue";
2
- import { useI18n as K, useCoreStore as ae } from "@feedmepos/mf-common";
3
- import { useSnackbar as Q, useDialog as re, useBreakpoints as le, components as me, FmButtonColorThemeVariant as ue, FmButtonVariant as ce } from "@feedmepos/ui-library";
4
- import { _ as de } from "./index.vue_vue_type_script_setup_true_lang-Vc5ARO29.js";
5
- import { d as G, q as pe, u as Y, c as Z, p as J, i as fe, b as ve, m as A, k as Se, l as be, s as _e, n as Pe } from "./rule-BYb8TfeP.js";
6
- import { A as ge } from "./iteration-CzlBzD5p.js";
7
- import { u as he } from "./useLoading-DWaMwG8t.js";
8
- import { p as X } from "./app-Deq-BbQg.js";
9
- import { a as ye } from "./PortalPermissionEditor.vue_vue_type_script_setup_true_lang-DJniPhu1.js";
10
- const Fe = { class: "flex flex-row items-center gap-8" }, Ve = /* @__PURE__ */ M({
11
- __name: "PermissionWithTooltip",
12
- props: {
13
- modelValue: {
14
- type: Array,
15
- required: !0
16
- }
17
- },
18
- setup($) {
19
- const { customReportPermissions: k } = G(), t = $, i = S(() => pe(t.modelValue, k.value)), { t: r } = K();
20
- return (R, C) => {
21
- const P = c("FmIcon"), y = c("FmTooltip");
22
- return h(), L("div", Fe, [
23
- x("span", null, N(u(r)("team.labels.allowed", { count: i.value.length })), 1),
24
- m(y, {
25
- variant: "plain",
26
- placement: "top"
27
- }, {
28
- content: g(() => [
29
- x("div", null, [
30
- te(N(u(r)("team.labels.permission")) + " ", 1),
31
- (h(!0), L(H, null, oe(i.value, (l, a) => (h(), L("div", {
32
- key: `${l}-${a}`
33
- }, " - " + N(l), 1))), 128))
34
- ])
35
- ]),
36
- default: g(() => [
37
- m(P, {
38
- name: "info",
39
- class: "cursor-pointer text-fm-color-neutral-gray-300"
40
- })
41
- ]),
42
- _: 1
43
- })
44
- ]);
45
- };
46
- }
47
- }), we = { class: "fm-typo-en-title-md-600" }, xe = { class: "flex items-center justify-start gap-8" }, ke = /* @__PURE__ */ M({
48
- __name: "PermissionSetForm",
49
- props: {
50
- modelValue: {
51
- type: Object,
52
- default: () => ({})
53
- }
54
- },
55
- setup($, { expose: k }) {
56
- const t = $, { t: i } = K(), r = _(!1), R = S(() => {
57
- var e;
58
- return (e = t.modelValue) != null && e.id ? i("permissionSet.form.update.title") : i("permissionSet.form.create.title");
59
- }), C = _(), P = Q(), y = he(P), l = Y(), a = _({ ...t.modelValue }), d = _([]), p = _([]), D = [(e) => !!e || "Permission set name is required"], U = S(() => {
60
- var e;
61
- return (e = t.modelValue) != null && e.id ? i("permissionSet.form.update.confirmButtonLabel") : i("permissionSet.form.create.confirmButtonLabel");
62
- }), W = S(
63
- () => l.permissionSets.value.filter((e) => {
64
- var s;
65
- return e.id !== ((s = t.modelValue) == null ? void 0 : s.id);
66
- }).map((e) => ({ label: e.name, value: e.id }))
67
- ), F = S(
68
- () => Z(d.value, l.permissionSets.value)
69
- ), { customReportPermissions: E, isLoaded: n } = G(), o = new Set(
70
- J.filter((e) => e.subject.startsWith(fe)).map((e) => e.subject)
71
- ), f = S(() => {
72
- const e = new Set(o);
73
- for (const s of E.value) e.add(s.subject);
74
- return e;
75
- }), I = S(() => {
76
- const e = /* @__PURE__ */ new Set();
77
- for (const s of J)
78
- s.category === X.reports && e.add(s.subject);
79
- for (const s of E.value)
80
- s.category === X.reports && e.add(s.subject);
81
- return e;
82
- });
83
- async function O() {
84
- var s, v;
85
- await ne(), r.value = !r.value, a.value = { ...t.modelValue }, d.value = ((s = t.modelValue) == null ? void 0 : s.permissionSetIds) ?? [];
86
- const e = ((v = t.modelValue) == null ? void 0 : v.permissions) ?? [];
87
- p.value = ve(
88
- A(F.value),
89
- e
90
- );
91
- }
92
- function T() {
93
- const e = A(F.value), s = n.value ? f.value : o, v = Se(p.value, s), V = be(v, I.value), w = _e(V);
94
- return Pe(e, w);
95
- }
96
- function ee() {
97
- p.value = A(F.value);
98
- }
99
- async function se() {
100
- var v, V;
101
- const e = await ((v = C.value) == null ? void 0 : v.validateInputsWithoutSubmit()), s = (V = ae().currentBusiness.value) == null ? void 0 : V.id;
102
- !(e != null && e.length) && s && y.minor(async () => {
103
- var j;
104
- const w = T();
105
- if ((j = t.modelValue) != null && j.id) {
106
- const B = {
107
- name: a.value.name,
108
- permissions: w,
109
- permissionSetIds: d.value,
110
- businessId: a.value.businessId
111
- };
112
- await l.updatePermissionSet(t.modelValue.id, B);
113
- } else {
114
- const B = {
115
- name: a.value.name,
116
- businessId: s,
117
- permissions: w,
118
- permissionSetIds: d.value
119
- };
120
- await l.createPermissionSet(B);
121
- }
122
- r.value = !1;
123
- });
124
- }
125
- return k({
126
- trigger: O
127
- }), (e, s) => {
128
- const v = c("FmTextField"), V = c("FmSelect"), w = c("FmForm"), j = c("FmButton"), B = c("FmSideSheet");
129
- return h(), q(B, {
130
- modelValue: r.value,
131
- "onUpdate:modelValue": s[4] || (s[4] = (b) => r.value = b),
132
- "max-width": 560,
133
- "dismiss-away": ""
134
- }, {
135
- "side-sheet-header": g(() => [
136
- x("p", we, N(R.value), 1)
137
- ]),
138
- "side-sheet-footer": g(() => [
139
- x("div", xe, [
140
- m(j, {
141
- label: U.value,
142
- size: "md",
143
- variant: "primary",
144
- type: "submit",
145
- onClick: se
146
- }, null, 8, ["label"]),
147
- m(j, {
148
- label: u(i)("common.cancel"),
149
- size: "md",
150
- variant: "secondary",
151
- onClick: s[3] || (s[3] = (b) => r.value = !1)
152
- }, null, 8, ["label"])
153
- ])
154
- ]),
155
- default: g(() => [
156
- m(w, {
157
- ref_key: "formRef",
158
- ref: C
159
- }, {
160
- default: g(() => [
161
- m(v, {
162
- modelValue: a.value.name,
163
- "onUpdate:modelValue": s[0] || (s[0] = (b) => a.value.name = b),
164
- label: u(i)("permissionSet.form.name"),
165
- placeholder: u(i)("permissionSet.form.namePlaceholder"),
166
- rules: D
167
- }, null, 8, ["modelValue", "label", "placeholder"]),
168
- m(V, {
169
- modelValue: d.value,
170
- "onUpdate:modelValue": [
171
- s[1] || (s[1] = (b) => d.value = b),
172
- ee
173
- ],
174
- multiselect: "",
175
- searchable: "",
176
- "search-debounce": 300,
177
- items: W.value,
178
- label: u(i)("permissionSet.form.includedSets"),
179
- placeholder: u(i)("permissionSet.form.includedSetsPlaceholder"),
180
- class: "mt-16"
181
- }, null, 8, ["modelValue", "items", "label", "placeholder"]),
182
- m(ye, {
183
- modelValue: p.value,
184
- "onUpdate:modelValue": s[2] || (s[2] = (b) => p.value = b),
185
- "inherit-permissions": F.value,
186
- class: "mt-24"
187
- }, null, 8, ["modelValue", "inherit-permissions"])
188
- ]),
189
- _: 1
190
- }, 512)
191
- ]),
192
- _: 1
193
- }, 8, ["modelValue"]);
194
- };
195
- }
196
- }), Re = { class: "space-y-8" }, Ce = { class: "flex justify-end xs:px-16" }, De = /* @__PURE__ */ M({
197
- __name: "PermissionSetList",
198
- setup($, { expose: k }) {
199
- const { t } = K(), { fetchCustomReportPermissions: i } = G(), r = Q(), R = re(), { breakpoints: C } = le(), P = _(""), y = S(() => {
200
- var n;
201
- return (n = d.value) == null ? void 0 : n.filter((o) => {
202
- const f = P.value.toLowerCase();
203
- return o.name.toLowerCase().includes(f);
204
- });
205
- }), l = _(), a = Y(), d = S(
206
- () => a.permissionSets.value
207
- ), p = _();
208
- async function D() {
209
- await a.readPermissionSets();
210
- }
211
- function U(n) {
212
- var o;
213
- p.value = n, (o = l.value) == null || o.trigger();
214
- }
215
- const W = [
216
- {
217
- accessorKey: "name",
218
- header: () => t("permissionSet.table.columns.name")
219
- },
220
- {
221
- accessorKey: "permission",
222
- header: () => t("permissionSet.table.columns.permissions"),
223
- enableSorting: !1,
224
- cell(n) {
225
- const o = n.row.original, f = Z(
226
- [o.id],
227
- a.permissionSets.value
228
- ), I = A(f);
229
- return z(Ve, { modelValue: I });
230
- }
231
- },
232
- {
233
- id: "action",
234
- meta: {
235
- cellClass: "pl-16",
236
- headerContentClass: "-mx-16"
237
- },
238
- cell(n) {
239
- return z("div", { class: "w-full flex justify-end items-center" }, [
240
- z(me.FmButton, {
241
- prependIcon: "delete",
242
- variant: ce.Tertiary,
243
- textColor: ue.NeutralGray400,
244
- class: "flex flex-end",
245
- onClick: (o) => {
246
- o.stopPropagation(), E(n.row.original);
247
- }
248
- })
249
- ]);
250
- },
251
- enableSorting: !1
252
- }
253
- ];
254
- function F() {
255
- var n;
256
- p.value = void 0, (n = l.value) == null || n.trigger();
257
- }
258
- async function E(n) {
259
- R.open({
260
- title: t("permissionSet.form.delete.title"),
261
- message: t("permissionSet.form.delete.confirmationMessage", { permissionSetName: n.name }),
262
- minWidth: C.value.lg ? 588 : 0,
263
- primaryActions: {
264
- text: t("common.remove"),
265
- close: !1,
266
- variant: "destructive"
267
- },
268
- secondaryActions: { text: t("common.cancel"), close: !0 }
269
- }).onPrimary(async () => {
270
- try {
271
- await a.deletePermissionSet(n.id), r.open({
272
- message: t("permissionSet.form.delete.successMessage", { permissionSetName: n.name }),
273
- type: "success"
274
- });
275
- } catch (o) {
276
- const f = o instanceof ge && o.status === 409 ? o.message.includes("referenced by") ? t("permissionSet.form.delete.setReferencedConflictError", {
277
- permissionSetName: n.name
278
- }) : t("permissionSet.form.delete.conflictError", { permissionSetName: n.name }) : o instanceof Error ? o.message : `${o}`;
279
- r.open({ message: f, type: "error" });
280
- }
281
- R.close();
282
- });
283
- }
284
- return ie(() => {
285
- D(), i();
286
- }), k({
287
- create: F
288
- }), (n, o) => {
289
- const f = c("FmSearch"), I = c("FmTable"), O = c("FullWrapper");
290
- return h(), L(H, null, [
291
- m(ke, {
292
- ref_key: "permissionSetFormRef",
293
- ref: l,
294
- "model-value": p.value
295
- }, null, 8, ["model-value"]),
296
- x("div", Re, [
297
- x("div", Ce, [
298
- m(f, {
299
- modelValue: P.value,
300
- "onUpdate:modelValue": o[0] || (o[0] = (T) => P.value = T),
301
- class: "w-[320px] xs:w-full",
302
- autofocus: "",
303
- placeholder: u(t)("permissionSet.search.placeholder")
304
- }, null, 8, ["modelValue", "placeholder"])
305
- ]),
306
- d.value.length > 0 ? (h(), q(O, {
307
- key: 0,
308
- class: "overflow-auto"
309
- }, {
310
- default: g(() => [
311
- m(I, {
312
- "column-defs": W,
313
- "row-data": y.value,
314
- "page-size": y.value.length,
315
- "pin-header-row": "",
316
- "hide-footer": "",
317
- "shrink-at": !1,
318
- onRowClick: o[1] || (o[1] = (T) => U(T.original))
319
- }, null, 8, ["row-data", "page-size"])
320
- ]),
321
- _: 1
322
- })) : (h(), q(u(de), {
323
- key: 1,
324
- title: u(t)("permissionSet.noData.title"),
325
- subtitle: u(t)("permissionSet.noData.subtitle")
326
- }, null, 8, ["title", "subtitle"]))
327
- ])
328
- ], 64);
329
- };
330
- }
331
- });
332
- export {
333
- De as default
334
- };