@feedmepos/mf-hrm-portal 1.1.6-dev → 2.0.0

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 (98) hide show
  1. package/dist/AuditLogList-Cm3ueTso.js +474 -0
  2. package/dist/EmployeeList-vMcIqBU_.js +626 -0
  3. package/dist/{main-C370wsCl.js → Main-CeGYov-a.js} +1502 -1531
  4. package/dist/Main-gHCENd4i.js +86 -0
  5. package/dist/{PageLayout.vue_vue_type_script_setup_true_lang-DuwNwJDM.js → PageLayout.vue_vue_type_script_setup_true_lang-HKK4cbW8.js} +2 -2
  6. package/dist/PermissionSetList-Dw69OYF4.js +323 -0
  7. package/dist/PortalPermissionEditor.vue_vue_type_script_setup_true_lang-bvPOPUhu.js +3092 -0
  8. package/dist/ResponsiveFabButton.vue_vue_type_script_setup_true_lang-Cn-3MRBO.js +38 -0
  9. package/dist/RoleList-D1CrixYc.js +497 -0
  10. package/dist/{useSearch-C25VELOk.js → SelectFilter-NbXrJ4iH.js} +90 -101
  11. package/dist/TeamMemberList-M0Q8CP4h.js +973 -0
  12. package/dist/{TimesheetList-qaolOL4w.js → TimesheetList-BmOfy0pc.js} +31 -29
  13. package/dist/api/audit-log/index.d.ts +14 -0
  14. package/dist/api/index.d.ts +5 -0
  15. package/dist/api/permission-assignment/index.d.ts +10 -0
  16. package/dist/api/permission-set/index.d.ts +8 -0
  17. package/dist/api/report-query/index.d.ts +5 -0
  18. package/dist/api/team/index.d.ts +2 -1
  19. package/dist/app-RUdgf-7_.js +3286 -0
  20. package/dist/app.js +1 -1
  21. package/dist/components/AppForm.vue.d.ts +3 -2
  22. package/dist/components/CheckboxInput.vue.d.ts +10 -4
  23. package/dist/components/CollapsibleWrapper.vue.d.ts +3 -2
  24. package/dist/components/form/SelectFilter.vue.d.ts +3 -2
  25. package/dist/components/layout/FormColumn.vue.d.ts +6 -3
  26. package/dist/components/layout/FormItem.vue.d.ts +2 -1
  27. package/dist/components/layout/FormSection.vue.d.ts +2 -1
  28. package/dist/components/layout/FullWrapper.vue.d.ts +6 -3
  29. package/dist/components/layout/PageLayout.vue.d.ts +2 -1
  30. package/dist/components/menu/BottomSheetMenu.vue.d.ts +2 -1
  31. package/dist/components/menu/BottomSheetMenuItem.vue.d.ts +6 -3
  32. package/dist/components/table/EmptyDataTemplate/index.vue.d.ts +6 -3
  33. package/dist/composables/useAppStore.d.ts +6 -6
  34. package/dist/composables/useDateRange.d.ts +1 -1
  35. package/dist/composables/useReportPermissions.d.ts +14 -0
  36. package/dist/composables/useRestaurantMap.d.ts +4 -8
  37. package/dist/composables/useSheet.d.ts +1 -1
  38. package/dist/dayjs.min-D9w2-Exz.js +282 -0
  39. package/dist/employee-B3jBmvNJ.js +144 -0
  40. package/dist/helpers/permission-set.d.ts +69 -0
  41. package/dist/helpers/portal-user.d.ts +8 -0
  42. package/dist/helpers/rule.d.ts +5 -4
  43. package/dist/index-BMVQbdBd.js +827 -0
  44. package/dist/index-BS6B6k7h.js +10340 -0
  45. package/dist/{empty-placeholder-ey8LJtN1.js → index.vue_vue_type_script_setup_true_lang-Vc5ARO29.js} +43 -2
  46. package/dist/{lodash-B5BTJU4_.js → lodash-CglPbFKR.js} +326 -343
  47. package/dist/router/shared.d.ts +4 -1
  48. package/dist/stores/employee.d.ts +4 -4
  49. package/dist/stores/permission-assignment.d.ts +277 -0
  50. package/dist/stores/permission-set.d.ts +265 -0
  51. package/dist/stores/role.d.ts +4 -4
  52. package/dist/stores/team.d.ts +300 -0
  53. package/dist/stores/timesheet.d.ts +19 -19
  54. package/dist/style.css +1 -1
  55. package/dist/team-afjBSzOz.js +33 -0
  56. package/dist/{timesheet-Cy-jSzje.js → timesheet-fOBJOS1i.js} +14 -14
  57. package/dist/tsconfig.app.tsbuildinfo +1 -1
  58. package/dist/types/audit-log.d.ts +1 -0
  59. package/dist/types/permission-assignment.d.ts +20 -0
  60. package/dist/types/permission-set.d.ts +24 -0
  61. package/dist/types/report-query.d.ts +6 -0
  62. package/dist/types/team.d.ts +13 -3
  63. package/dist/useAppStore-D-SLROq6.js +168 -0
  64. package/dist/useLoading-CLQGJW7G.js +99 -0
  65. package/dist/useReportPermissions-Cx4ghxj6.js +65 -0
  66. package/dist/{useRestaurantMap-CpS9-OSq.js → useRestaurantMap-D5BNPLKh.js} +7 -7
  67. package/dist/useSearch-B6WK1LBB.js +15 -0
  68. package/dist/views/audit-log/locales/index.d.ts +295 -0
  69. package/dist/views/hr/employee/{components/EmployeeForm.vue.d.ts → EmployeeForm.vue.d.ts} +10 -7
  70. package/dist/views/team/Main.vue.d.ts +2 -0
  71. package/dist/views/team/components/BasePermission.vue.d.ts +64 -0
  72. package/dist/views/team/components/{TeamMemberConditionPermission.vue.d.ts → ConditionPermission.vue.d.ts} +14 -1
  73. package/dist/views/team/components/InheritPermissionTooltip.vue.d.ts +14 -0
  74. package/dist/views/team/components/PermissionWithTooltip.vue.d.ts +14 -0
  75. package/dist/views/team/components/PortalPermissionEditor.vue.d.ts +68 -28
  76. package/dist/views/team/components/{TeamMemberRolePermission.vue.d.ts → PosRolePermission.vue.d.ts} +14 -1
  77. package/dist/views/team/locales/index.d.ts +200 -4
  78. package/dist/views/team/{components → member}/AddMemberForm.vue.d.ts +1 -0
  79. package/dist/views/team/member/TeamMemberList.vue.d.ts +4 -0
  80. package/dist/views/team/member/TeamMemberMasterUser.vue.d.ts +55 -0
  81. package/dist/views/team/permission-set/PermissionSetForm.vue.d.ts +19 -0
  82. package/dist/views/team/permission-set/PermissionSetList.vue.d.ts +5 -0
  83. package/package.json +15 -8
  84. package/dist/EmployeeList-CP42mLpi.js +0 -605
  85. package/dist/RoleList-CsctaXlu.js +0 -492
  86. package/dist/TeamMemberList-DtXoUa5K.js +0 -1508
  87. package/dist/app-G_Dbs0OJ.js +0 -1202
  88. package/dist/employee-BTWpYxn5.js +0 -449
  89. package/dist/index-8ift6lz3.js +0 -57
  90. package/dist/rule-CM7JgjNr.js +0 -142112
  91. package/dist/types/permission.d.ts +0 -4
  92. package/dist/useAppStore-zINIo0LR.js +0 -93
  93. package/dist/useLoading-CWBRIBiy.js +0 -141
  94. package/dist/views/team/components/TeamMemberBasePermission.vue.d.ts +0 -36
  95. package/dist/views/team/components/TeamMemberMasterUser.vue.d.ts +0 -718
  96. /package/dist/views/{hr/main.vue.d.ts → audit-log/AuditLogList.vue.d.ts} +0 -0
  97. /package/dist/views/{team/TeamMemberList.vue.d.ts → hr/Main.vue.d.ts} +0 -0
  98. /package/dist/views/team/{components → member}/MemberInfo.vue.d.ts +0 -0
@@ -1,11 +1,13 @@
1
- import { ref as d, computed as b, defineComponent as ce, onMounted as me, watch as X, resolveComponent as i, openBlock as D, createElementBlock as B, Fragment as Z, createVNode as l, unref as n, withCtx as C, createElementVNode as u, toDisplayString as $, createTextVNode as pe, createCommentVNode as ve, isRef as fe, renderList as he, createBlock as z, nextTick as ge } from "vue";
2
- import { D as v, u as we } from "./employee-BTWpYxn5.js";
3
- import { useI18n as ye, useCoreStore as be, RestaurantSelector as _e } from "@feedmepos/mf-common";
4
- import { useSnackbar as De, components as xe } from "@feedmepos/ui-library";
5
- import { _ as Se } from "./app-G_Dbs0OJ.js";
6
- import { u as ke, _ as Ce } from "./useLoading-CWBRIBiy.js";
7
- import { n as Ve, o as Fe, s as Ye } from "./rule-CM7JgjNr.js";
8
- import { u as Le } from "./timesheet-Cy-jSzje.js";
1
+ import { ref as d, computed as b, defineComponent as ce, onMounted as me, watch as X, resolveComponent as i, createElementBlock as B, openBlock as D, Fragment as Z, createVNode as l, createElementVNode as u, unref as n, withCtx as C, createCommentVNode as pe, toDisplayString as $, createTextVNode as ve, createBlock as z, isRef as fe, renderList as he, nextTick as ge } from "vue";
2
+ import { d as v } from "./dayjs.min-D9w2-Exz.js";
3
+ import { useI18n as we, useCoreStore as ye, RestaurantSelector as be } from "@feedmepos/mf-common";
4
+ import { useSnackbar as _e, components as De } from "@feedmepos/ui-library";
5
+ import { _ as xe } from "./app-RUdgf-7_.js";
6
+ import { _ as Se } from "./index.vue_vue_type_script_setup_true_lang-Vc5ARO29.js";
7
+ import { u as ke } from "./useLoading-CLQGJW7G.js";
8
+ import { i as Ce, j as Ve, s as Fe } from "./index-BS6B6k7h.js";
9
+ import { u as Ye } from "./employee-B3jBmvNJ.js";
10
+ import { u as Le } from "./timesheet-fOBJOS1i.js";
9
11
  function Me(x, a) {
10
12
  return ["years", "months"].find((S) => {
11
13
  const k = x.startOf(S), f = x.endOf(S);
@@ -58,20 +60,20 @@ const Re = {
58
60
  }, Pe = {
59
61
  key: 0,
60
62
  class: "fm-typo-body-sm-400 text-fm-color-typo-error mt-1 flex items-center gap-4"
61
- }, He = {
62
- class: "flex items-center justify-start gap-8"
63
63
  }, je = {
64
+ class: "flex items-center justify-start gap-8"
65
+ }, He = {
64
66
  class: "space-y-8"
65
67
  }, Ge = {
66
68
  class: "flex items-start gap-8 flex-wrap xs:px-16"
67
69
  }, qe = {
68
70
  class: "flex items-center gap-8"
69
- }, st = /* @__PURE__ */ ce({
71
+ }, nt = /* @__PURE__ */ ce({
70
72
  __name: "TimesheetList",
71
73
  setup(x) {
72
74
  const {
73
75
  t: a
74
- } = ye(), V = De(), S = ke(V), k = [{
76
+ } = we(), V = _e(), S = ke(V), k = [{
75
77
  label: a("hr.timesheet.listView"),
76
78
  value: "listView"
77
79
  }, {
@@ -80,7 +82,7 @@ const Re = {
80
82
  }], f = d("listView"), _ = b(() => {
81
83
  var t;
82
84
  return (t = k.find((e) => e.value === f.value)) == null ? void 0 : t.label;
83
- }), c = d(""), h = Le(), A = we(), F = b(() => A.employees.value), g = b(() => h.timesheets.value.filter((s) => !E.value || E.value.includes(s.restaurantId)).map((s) => {
85
+ }), c = d(""), h = Le(), A = Ye(), F = b(() => A.employees.value), g = b(() => h.timesheets.value.filter((s) => !E.value || E.value.includes(s.restaurantId)).map((s) => {
84
86
  var y;
85
87
  const r = (y = ee.restaurants.value.find((p) => p._id === s.restaurantId)) == null ? void 0 : y.profile.code, w = F.value.find((p) => p._id === s.user.id);
86
88
  return {
@@ -94,21 +96,21 @@ const Re = {
94
96
  })), P = b(() => g.value.filter((t) => {
95
97
  var e, s;
96
98
  return t.user.name.toLowerCase().includes(c.value.toLowerCase()) || t.restaurantName.toLowerCase().includes(c.value.toLowerCase()) || ((e = t.restaurantCode) == null ? void 0 : e.toLowerCase().includes(c.value.toLowerCase())) || ((s = t.user.code) == null ? void 0 : s.toLowerCase().includes(c.value.toLowerCase()));
97
- })), H = b(() => {
98
- const t = Ve(g.value, (s) => s.user.name), e = Object.entries(t).map(([s, r]) => {
99
+ })), j = b(() => {
100
+ const t = Ce(g.value, (s) => s.user.name), e = Object.entries(t).map(([s, r]) => {
99
101
  const w = F.value.find((y) => y._id === r[0].user.id);
100
102
  return {
101
103
  key: s,
102
104
  user: r[0].user.name,
103
105
  code: w ? w.code : "",
104
106
  timesheets: r,
105
- total: Fe(r.reduce((y, p) => y + p.totalMin, 0))
107
+ total: Ve(r.reduce((y, p) => y + p.totalMin, 0))
106
108
  };
107
109
  });
108
- return Ye(e, {
110
+ return Fe(e, {
109
111
  selector: "user"
110
112
  });
111
- }), j = b(() => H.value.filter((t) => {
113
+ }), H = b(() => j.value.filter((t) => {
112
114
  var e;
113
115
  return t.user.toLowerCase().includes(c.value.toLowerCase()) || ((e = t.code) == null ? void 0 : e.toLowerCase().includes(c.value.toLowerCase()));
114
116
  })), Y = d(!1), N = async () => {
@@ -118,7 +120,7 @@ const Re = {
118
120
  } = L.value;
119
121
  Y.value = !0;
120
122
  try {
121
- await h.readTimesheet(new Date(t), new Date(e)), await ge(), U.value = Object.fromEntries(Object.entries(new Array(H.value.length).fill(!0)));
123
+ await h.readTimesheet(new Date(t), new Date(e)), await ge(), U.value = Object.fromEntries(Object.entries(new Array(j.value.length).fill(!0)));
122
124
  } catch (s) {
123
125
  V.open({
124
126
  title: s instanceof Error ? s.message : `${s}`,
@@ -131,7 +133,7 @@ const Re = {
131
133
  me(() => {
132
134
  N();
133
135
  });
134
- const ee = be(), E = d(), {
136
+ const ee = ye(), E = d(), {
135
137
  dateRange: L,
136
138
  dateRangeLabel: te,
137
139
  setRange: G
@@ -193,7 +195,7 @@ const Re = {
193
195
  onClick: (r) => {
194
196
  r.stopPropagation(), t.row.getToggleExpandedHandler()(r);
195
197
  }
196
- }, [l(xe.FmButton, {
198
+ }, [l(De.FmButton, {
197
199
  variant: "tertiary",
198
200
  icon: s ? "keyboard_arrow_up" : "keyboard_arrow_down"
199
201
  }, null)]), e.user]);
@@ -253,7 +255,7 @@ const Re = {
253
255
  "dismiss-away": "",
254
256
  header: n(a)("hr.timesheet.update.title")
255
257
  }, {
256
- "side-sheet-footer": C(() => [u("div", He, [l(p, {
258
+ "side-sheet-footer": C(() => [u("div", je, [l(p, {
257
259
  label: n(a)("common.update"),
258
260
  size: "md",
259
261
  variant: "primary",
@@ -289,9 +291,9 @@ const Re = {
289
291
  color: "#FF3B30",
290
292
  name: "error",
291
293
  size: "sm"
292
- }), pe(" " + $(K.value), 1)])) : ve("", !0)])]),
294
+ }), ve(" " + $(K.value), 1)])) : pe("", !0)])]),
293
295
  _: 1
294
- }, 8, ["modelValue", "header"]), u("div", je, [u("div", Ge, [l(n(_e), {
296
+ }, 8, ["modelValue", "header"]), u("div", He, [u("div", Ge, [l(n(be), {
295
297
  modelValue: E.value,
296
298
  "onUpdate:modelValue": e[6] || (e[6] = (o) => E.value = o),
297
299
  "managable-only": "",
@@ -333,11 +335,11 @@ const Re = {
333
335
  "onUpdate:modelValue": e[10] || (e[10] = (o) => c.value = o),
334
336
  class: "w-[320px]",
335
337
  placeholder: n(a)("hr.timesheet.search.placeholder")
336
- }, null, 8, ["modelValue", "placeholder"])]), g.value.length === 0 && !Y.value ? (D(), z(n(Ce), {
338
+ }, null, 8, ["modelValue", "placeholder"])]), g.value.length === 0 && !Y.value ? (D(), z(n(Se), {
337
339
  key: 0,
338
340
  title: n(a)("hr.timesheet.noData.title"),
339
341
  subtitle: ""
340
- }, null, 8, ["title"])) : (D(), z(Se, {
342
+ }, null, 8, ["title"])) : (D(), z(xe, {
341
343
  key: 1,
342
344
  class: "w-full xs:px-16 overflow-auto"
343
345
  }, {
@@ -356,8 +358,8 @@ const Re = {
356
358
  key: 1,
357
359
  class: "min-w-[640px]",
358
360
  "column-defs": oe,
359
- "row-data": j.value,
360
- "page-size": g.value.length + j.value.length,
361
+ "row-data": H.value,
362
+ "page-size": g.value.length + H.value.length,
361
363
  loading: Y.value,
362
364
  "pin-header-row": "",
363
365
  "hide-footer": "",
@@ -373,5 +375,5 @@ const Re = {
373
375
  }
374
376
  });
375
377
  export {
376
- st as default
378
+ nt as default
377
379
  };
@@ -0,0 +1,14 @@
1
+ import type { AuditLogEntry } from '@/types/audit-log';
2
+ declare const AuditLogAPI: {
3
+ read(params?: {
4
+ limit?: number;
5
+ offset?: number;
6
+ from?: string;
7
+ to?: string;
8
+ userIds?: string[];
9
+ subjects?: string[];
10
+ actions?: string[];
11
+ outcomes?: string[];
12
+ }): Promise<AuditLogEntry[]>;
13
+ };
14
+ export default AuditLogAPI;
@@ -1,3 +1,8 @@
1
1
  import { type AxiosInstance, type AxiosResponse } from 'axios';
2
+ export declare class ApiError extends Error {
3
+ readonly status: number;
4
+ constructor(message: string, status: number);
5
+ }
2
6
  export declare const businessClientInstance: () => AxiosInstance;
7
+ export declare const queryEngineClientInstance: () => AxiosInstance;
3
8
  export declare function getAxiosData<T>(response: AxiosResponse<T>): T;
@@ -0,0 +1,10 @@
1
+ import type { IFdtoCreatePermissionAssignmentReq, IFdtoPermissionAssignment, IFdtoUpdatePermissionAssignmentReq } from '@/types/permission-assignment';
2
+ declare const PermissionAssignmentAPI: {
3
+ readAll(): Promise<IFdtoPermissionAssignment[]>;
4
+ readByUserId(userId: string): Promise<IFdtoPermissionAssignment | null>;
5
+ readById(id: string): Promise<IFdtoPermissionAssignment>;
6
+ create(dto: IFdtoCreatePermissionAssignmentReq): Promise<IFdtoPermissionAssignment>;
7
+ update(id: string, dto: IFdtoUpdatePermissionAssignmentReq): Promise<IFdtoPermissionAssignment>;
8
+ delete(id: string): Promise<boolean>;
9
+ };
10
+ export default PermissionAssignmentAPI;
@@ -0,0 +1,8 @@
1
+ import type { IFdtoCreatePermissionSetReq, IFdtoPermissionSet, IFdtoUpdatePermissionSetReq } from '@/types/permission-set';
2
+ declare const PermissionSetAPI: {
3
+ read(): Promise<IFdtoPermissionSet[]>;
4
+ create(dto: IFdtoCreatePermissionSetReq): Promise<IFdtoPermissionSet>;
5
+ update(id: string, dto: IFdtoUpdatePermissionSetReq): Promise<IFdtoPermissionSet>;
6
+ delete(id: string): Promise<boolean>;
7
+ };
8
+ export default PermissionSetAPI;
@@ -0,0 +1,5 @@
1
+ import type { ReportPermissionItem } from '@/types/report-query';
2
+ declare const ReportQueryAPI: {
3
+ fetchReportPermissions(businessId: string): Promise<ReportPermissionItem[]>;
4
+ };
5
+ export default ReportQueryAPI;
@@ -1,5 +1,6 @@
1
+ import { type IFdtoPortalPermissionsWithVisibilityCondition } from '@feedmepos/hrm-permission';
1
2
  import type { FTeamMember, IFdtoCreatePortalUserReq, IFdtoUpdatePortalUserReq } from '@/types/team';
2
- export declare const portalTeamPermissions: readonly import("@feedmepos/mf-common").IFdtoPortalPermission[];
3
+ export declare const portalTeamPermissions: IFdtoPortalPermissionsWithVisibilityCondition[];
3
4
  export declare const teamApi: {
4
5
  readTeamMembers(): Promise<FTeamMember[]>;
5
6
  createTeamMember(req: IFdtoCreatePortalUserReq): Promise<FTeamMember>;