@feedmepos/mf-hrm-portal 2.0.11 → 2.0.12-dev

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 (44) hide show
  1. package/dist/AuditLogList-Am6PW6qN.js +941 -0
  2. package/dist/EmployeeList-00LF0l6U.js +696 -0
  3. package/dist/{Main-SeHua_qu.js → Main-BC_y5Gzg.js} +4 -4
  4. package/dist/{Main-C-iGHHd0.js → Main-BY_V1guq.js} +2469 -2459
  5. package/dist/{Main-Dsuhh6Fk.js → Main-Chau30wK.js} +8 -9
  6. package/dist/{PermissionSetList-BncaRNzo.js → PermissionSetList-CDUFrGRE.js} +124 -128
  7. package/dist/{PortalPermissionEditor.vue_vue_type_script_setup_true_lang--O2VRpc8.js → PortalPermissionEditor.vue_vue_type_script_setup_true_lang-CGIontQw.js} +950 -950
  8. package/dist/RoleList-BVQ4zkA8.js +519 -0
  9. package/dist/TeamMemberList-D65MpqIr.js +1098 -0
  10. package/dist/{TimesheetList-B1-VPwJq.js → TimesheetList-Dc295zCI.js} +74 -74
  11. package/dist/{app-DpmQDU7C.js → app-Iv5hLrRX.js} +50 -47
  12. package/dist/app.js +1 -1
  13. package/dist/{dayjs.min-BJfcKBYO.js → dayjs.min-CJGjjQIJ.js} +1 -1
  14. package/dist/employee-C2Qhr8xO.js +207 -0
  15. package/dist/{index-F3OZA8nn.js → index-5ziPpN4I.js} +107 -84
  16. package/dist/{index-UgV84dZR.js → index-DzRWjF3a.js} +1 -1
  17. package/dist/{iteration-CF55rP35.js → iteration-L8TLGaCI.js} +489 -477
  18. package/dist/{lodash-CFUqrzKZ.js → lodash-Bbes-RWy.js} +1 -1
  19. package/dist/src/api/employee/index.d.ts +9 -8
  20. package/dist/src/api/team/index.d.ts +3 -1
  21. package/dist/src/composables/useDebounce.d.ts +9 -0
  22. package/dist/src/stores/employee.d.ts +515 -6
  23. package/dist/src/stores/team.d.ts +6 -0
  24. package/dist/src/types/employee.d.ts +35 -1
  25. package/dist/src/types/team.d.ts +18 -2
  26. package/dist/src/views/hr/employee/EmployeeForm.vue.d.ts +6 -2
  27. package/dist/src/views/hr/employee/EmployeeList.vue.d.ts +3 -0
  28. package/dist/src/views/team/locales/index.d.ts +3 -0
  29. package/dist/src/views/team/member/AddMemberForm.vue.d.ts +9 -0
  30. package/dist/src/views/team/member/TeamMemberMasterUser.vue.d.ts +5 -5
  31. package/dist/style.css +1 -1
  32. package/dist/{timesheet-BEr75UJg.js → timesheet-Dbp6blBA.js} +3 -3
  33. package/dist/tsconfig.app.tsbuildinfo +1 -1
  34. package/dist/{useAppStore-qId__2vQ.js → useAppStore-e7cSGuDZ.js} +1 -1
  35. package/dist/useDebounce-BngBuKwH.js +12 -0
  36. package/dist/{useLoading-InEdxgzy.js → useLoading-C8ko-jia.js} +1 -1
  37. package/dist/{useReportPermissions-DOCdQzP7.js → useReportPermissions-B0EDgKey.js} +3 -3
  38. package/package.json +2 -2
  39. package/dist/AuditLogList-B1WVHfHe.js +0 -915
  40. package/dist/EmployeeList-D8pV4P6r.js +0 -621
  41. package/dist/RoleList-C3R_DmG3.js +0 -499
  42. package/dist/TeamMemberList-LkYfoLD1.js +0 -989
  43. package/dist/employee-CtTZ2RR7.js +0 -145
  44. package/dist/team-B-CRADxz.js +0 -33
@@ -21,6 +21,7 @@ declare const useTeamStore: import("pinia").StoreDefinition<"team", Pick<{
21
21
  id: string;
22
22
  posUserId: string;
23
23
  isOwner: boolean;
24
+ hasPosUser?: boolean | undefined;
24
25
  name: string;
25
26
  phoneNumber: string;
26
27
  email: string;
@@ -66,6 +67,7 @@ declare const useTeamStore: import("pinia").StoreDefinition<"team", Pick<{
66
67
  id: string;
67
68
  posUserId: string;
68
69
  isOwner: boolean;
70
+ hasPosUser?: boolean | undefined;
69
71
  name: string;
70
72
  phoneNumber: string;
71
73
  email: string;
@@ -120,6 +122,7 @@ declare const useTeamStore: import("pinia").StoreDefinition<"team", Pick<{
120
122
  id: string;
121
123
  posUserId: string;
122
124
  isOwner: boolean;
125
+ hasPosUser?: boolean | undefined;
123
126
  name: string;
124
127
  phoneNumber: string;
125
128
  email: string;
@@ -165,6 +168,7 @@ declare const useTeamStore: import("pinia").StoreDefinition<"team", Pick<{
165
168
  id: string;
166
169
  posUserId: string;
167
170
  isOwner: boolean;
171
+ hasPosUser?: boolean | undefined;
168
172
  name: string;
169
173
  phoneNumber: string;
170
174
  email: string;
@@ -219,6 +223,7 @@ declare const useTeamStore: import("pinia").StoreDefinition<"team", Pick<{
219
223
  id: string;
220
224
  posUserId: string;
221
225
  isOwner: boolean;
226
+ hasPosUser?: boolean | undefined;
222
227
  name: string;
223
228
  phoneNumber: string;
224
229
  email: string;
@@ -264,6 +269,7 @@ declare const useTeamStore: import("pinia").StoreDefinition<"team", Pick<{
264
269
  id: string;
265
270
  posUserId: string;
266
271
  isOwner: boolean;
272
+ hasPosUser?: boolean | undefined;
267
273
  name: string;
268
274
  phoneNumber: string;
269
275
  email: string;
@@ -1,4 +1,4 @@
1
- import type { FdoEmployee, FdoAdvanceEmployee } from '@feedmepos/core/entity';
1
+ import type { FdoEmployee, FdoAdvanceEmployee, FdtoUpdatePosUserReq as BaseFdtoUpdatePosUserReq, FdtoUpdatePosMasterUserReq as BaseFdtoUpdatePosMasterUserReq } from '@feedmepos/core/entity';
2
2
  type FdtoPosUserBaseType = FdoEmployee | FdoAdvanceEmployee;
3
3
  export type FdtoPosUserType = FdtoPosUserBaseType & {
4
4
  isMasterUser: boolean;
@@ -8,6 +8,28 @@ export type IFdtoPosUser = FdtoPosUserType & {
8
8
  name: string;
9
9
  code?: string;
10
10
  };
11
+ export interface IFdtoPosUserSummary {
12
+ _id: string;
13
+ name: string;
14
+ code?: string;
15
+ passcode: string;
16
+ isMasterUser: boolean;
17
+ restaurantRole: {
18
+ restaurantId: string;
19
+ roleId: string;
20
+ }[];
21
+ }
22
+ export interface IReadEmployeesPageReq {
23
+ limit: number;
24
+ offset: number;
25
+ search?: string;
26
+ restaurantIds?: string[];
27
+ roleIds?: string[];
28
+ }
29
+ export interface IFdtoEmployeePage {
30
+ items: IFdtoPosUserSummary[];
31
+ total: number;
32
+ }
11
33
  export type Employee = IFdtoPosUser & {
12
34
  restaurants: {
13
35
  restaurantId: string;
@@ -27,4 +49,16 @@ export interface EmployeeData {
27
49
  roleId: string;
28
50
  }[];
29
51
  }
52
+ export type FdtoUpdatePosUserReq = BaseFdtoUpdatePosUserReq & {
53
+ previousRoles?: {
54
+ restaurantId: string;
55
+ roleId: string;
56
+ }[];
57
+ };
58
+ export type FdtoUpdatePosMasterUserReq = BaseFdtoUpdatePosMasterUserReq & {
59
+ previousRoles?: {
60
+ restaurantId: string;
61
+ roleId: string;
62
+ }[];
63
+ };
30
64
  export {};
@@ -14,11 +14,16 @@ export interface IFdtoPortalUser extends IPermissionUser {
14
14
  id: string;
15
15
  posUserId: string;
16
16
  isOwner: boolean;
17
+ hasPosUser?: boolean;
17
18
  name: string;
18
19
  phoneNumber: string;
19
20
  email: string;
20
21
  posUser?: IFdtoPermissionPosUser;
21
22
  }
23
+ export interface IFdtoPortalUserPage {
24
+ items: IFdtoPortalUser[];
25
+ total: number;
26
+ }
22
27
  export interface IFdtoPermissionPosUser {
23
28
  code: string;
24
29
  name: string;
@@ -32,7 +37,7 @@ export interface IFdtoPermissionPosUserRole {
32
37
  export interface IFdtoUpdatePortalUserReq {
33
38
  /** @deprecated use customPermissions instead */
34
39
  permissions?: FdoPermissionRule[];
35
- posUser?: IFdtoPermissionPosUser;
40
+ posUser?: IFdtoPermissionPosUser | null;
36
41
  permissionSetIds?: string[];
37
42
  customPermissions?: FdoPermissionRule[];
38
43
  }
@@ -44,7 +49,7 @@ export interface IFdtoCreatePortalUserReq {
44
49
  permissionSetIds?: string[];
45
50
  customPermissions: FdoPermissionRule[];
46
51
  name?: string;
47
- posUser?: IFdtoPermissionPosUser;
52
+ posUser?: IFdtoPermissionPosUser | null;
48
53
  }
49
54
  export interface FTeamMember {
50
55
  id: string;
@@ -57,3 +62,14 @@ export interface FTeamMember {
57
62
  permissionLabels: string[];
58
63
  doc: IFdtoPortalUser;
59
64
  }
65
+ export interface IReadTeamMembersPageReq {
66
+ limit: number;
67
+ offset: number;
68
+ search?: string;
69
+ restaurantIds?: string[];
70
+ permissionSubjects?: string[];
71
+ }
72
+ export interface IFdtoTeamMemberPage {
73
+ items: FTeamMember[];
74
+ total: number;
75
+ }
@@ -13,12 +13,16 @@ declare const __VLS_component: import("vue").DefineComponent<import("vue").Extra
13
13
  }>, {
14
14
  show: import("vue").Ref<boolean, boolean>;
15
15
  trigger: (data?: EmployeeData) => void;
16
- }, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
16
+ }, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
17
+ submitted: () => any;
18
+ }, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
17
19
  roleErrorMessage: {
18
20
  type: StringConstructor;
19
21
  default: string;
20
22
  };
21
- }>> & Readonly<{}>, {
23
+ }>> & Readonly<{
24
+ onSubmitted?: (() => any) | undefined;
25
+ }>, {
22
26
  roleErrorMessage: string;
23
27
  }, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
24
28
  declare const _default: __VLS_WithSlots<typeof __VLS_component, __VLS_Slots>;
@@ -1,4 +1,6 @@
1
+ import { type Employee } from '@/types/employee';
1
2
  declare function create(): void;
3
+ declare function exportEmployees(): Promise<Employee[]>;
2
4
  declare const _default: import("vue").DefineComponent<{}, {
3
5
  create: typeof create;
4
6
  filteredEmployees: import("vue").ComputedRef<({
@@ -34,5 +36,6 @@ declare const _default: import("vue").DefineComponent<{}, {
34
36
  }[];
35
37
  since: string;
36
38
  })[]>;
39
+ exportEmployees: typeof exportEmployees;
37
40
  }, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
38
41
  export default _default;
@@ -152,6 +152,7 @@ export declare const i18nMessages: {
152
152
  phoneNumber: string;
153
153
  restaurant: string;
154
154
  permission: string;
155
+ assignedRoles: string;
155
156
  };
156
157
  };
157
158
  labels: {
@@ -288,6 +289,7 @@ export declare const i18nMessages: {
288
289
  phoneNumber: string;
289
290
  restaurant: string;
290
291
  permission: string;
292
+ assignedRoles: string;
291
293
  };
292
294
  };
293
295
  labels: {
@@ -424,6 +426,7 @@ export declare const i18nMessages: {
424
426
  phoneNumber: string;
425
427
  restaurant: string;
426
428
  permission: string;
429
+ assignedRoles: string;
427
430
  };
428
431
  };
429
432
  labels: {
@@ -21,6 +21,10 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
21
21
  type: StringConstructor;
22
22
  default: string;
23
23
  };
24
+ isLoadingMasterUser: {
25
+ type: BooleanConstructor;
26
+ default: boolean;
27
+ };
24
28
  }>, {
25
29
  readFormData: typeof readFormData;
26
30
  validate: typeof validate;
@@ -32,7 +36,12 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
32
36
  type: StringConstructor;
33
37
  default: string;
34
38
  };
39
+ isLoadingMasterUser: {
40
+ type: BooleanConstructor;
41
+ default: boolean;
42
+ };
35
43
  }>> & Readonly<{}>, {
36
44
  roleErrorMessage: string;
45
+ isLoadingMasterUser: boolean;
37
46
  }, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
38
47
  export default _default;
@@ -4,7 +4,7 @@ import type { CheckboxOption } from '@/components/CheckboxInput.vue';
4
4
  import type { IFdtoPermissionPosUser } from '@/types/team';
5
5
  declare const _default: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
6
6
  modelValue: {
7
- type: PropType<IFdtoPermissionPosUser>;
7
+ type: PropType<IFdtoPermissionPosUser | null>;
8
8
  default: undefined;
9
9
  };
10
10
  fallbackName: {
@@ -24,10 +24,10 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
24
24
  required: true;
25
25
  };
26
26
  }>, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {} & {
27
- "update:model-value": (user: IFdtoPermissionPosUser | undefined) => any;
27
+ "update:model-value": (user: IFdtoPermissionPosUser | null | undefined) => any;
28
28
  }, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
29
29
  modelValue: {
30
- type: PropType<IFdtoPermissionPosUser>;
30
+ type: PropType<IFdtoPermissionPosUser | null>;
31
31
  default: undefined;
32
32
  };
33
33
  fallbackName: {
@@ -47,9 +47,9 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
47
47
  required: true;
48
48
  };
49
49
  }>> & Readonly<{
50
- "onUpdate:model-value"?: ((user: IFdtoPermissionPosUser | undefined) => any) | undefined;
50
+ "onUpdate:model-value"?: ((user: IFdtoPermissionPosUser | null | undefined) => any) | undefined;
51
51
  }>, {
52
- modelValue: IFdtoPermissionPosUser;
52
+ modelValue: IFdtoPermissionPosUser | null;
53
53
  fallbackPasscode: string;
54
54
  }, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
55
55
  export default _default;
package/dist/style.css CHANGED
@@ -1 +1 @@
1
- .user-info-icon[data-v-c2c7ed35]{flex-shrink:0;cursor:pointer;font-size:.75rem;font-weight:600;line-height:1rem;letter-spacing:.02em;text-decoration-line:none;color:var(--fm-color-neutral-white);display:flex;align-items:center;justify-content:center;background:linear-gradient(201deg,#fc9b40 10.3%,#ff6052 98.36%)}.user-info-icon--md[data-v-c2c7ed35]{height:2.25rem;width:2.25rem;border-radius:8px}.user-info-icon--lg[data-v-c2c7ed35]{height:48px;width:48px;border-radius:16px}.profile-menu[data-v-c2c7ed35]{width:280px;padding-top:12px;padding-bottom:12px}.profile-menu--profile[data-v-c2c7ed35]>:not([hidden])~:not([hidden]){--tw-space-x-reverse: 0;margin-right:calc(8px * var(--tw-space-x-reverse));margin-left:calc(8px * calc(1 - var(--tw-space-x-reverse)))}.profile-menu--profile[data-v-c2c7ed35]{padding:16px 16px 12px;border-radius:8px;display:flex;align-items:center;border-width:1px;border-color:var(--fm-color-neutral-gray-200)}.profile-menu--profile .profile-displayName[data-v-c2c7ed35]{font-size:1rem;font-weight:400;line-height:1.25rem;letter-spacing:.005em;text-decoration-line:none;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.profile-menu--profile .profile-email[data-v-c2c7ed35],.profile-menu--profile .profile-phone[data-v-c2c7ed35]{font-size:.875rem;font-weight:400;line-height:1.125rem;letter-spacing:.0125em;text-decoration-line:none;color:var(--fm-color-neutral-gray-300);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.audit-log-action-label{display:block;width:100%;max-width:100%;max-height:6.25rem;overflow-y:auto;white-space:pre-line;word-break:break-word;line-height:1.25rem;scrollbar-width:none;-ms-overflow-style:none}.audit-log-action-label::-webkit-scrollbar{display:none}.audit-log-operation-label-detail{max-height:6.875rem;overflow-y:auto;white-space:pre-line;word-break:break-word;line-height:1.375rem;scrollbar-width:none;-ms-overflow-style:none}.audit-log-operation-label-detail::-webkit-scrollbar{display:none}
1
+ .employee-list-table[data-v-2c260e49] [class~=gap-24]>div:first-child{display:none}.user-info-icon[data-v-c2c7ed35]{flex-shrink:0;cursor:pointer;font-size:.75rem;font-weight:600;line-height:1rem;letter-spacing:.02em;text-decoration-line:none;color:var(--fm-color-neutral-white);display:flex;align-items:center;justify-content:center;background:linear-gradient(201deg,#fc9b40 10.3%,#ff6052 98.36%)}.user-info-icon--md[data-v-c2c7ed35]{height:2.25rem;width:2.25rem;border-radius:8px}.user-info-icon--lg[data-v-c2c7ed35]{height:48px;width:48px;border-radius:16px}.profile-menu[data-v-c2c7ed35]{width:280px;padding-top:12px;padding-bottom:12px}.profile-menu--profile[data-v-c2c7ed35]>:not([hidden])~:not([hidden]){--tw-space-x-reverse: 0;margin-right:calc(8px * var(--tw-space-x-reverse));margin-left:calc(8px * calc(1 - var(--tw-space-x-reverse)))}.profile-menu--profile[data-v-c2c7ed35]{padding:16px 16px 12px;border-radius:8px;display:flex;align-items:center;border-width:1px;border-color:var(--fm-color-neutral-gray-200)}.profile-menu--profile .profile-displayName[data-v-c2c7ed35]{font-size:1rem;font-weight:400;line-height:1.25rem;letter-spacing:.005em;text-decoration-line:none;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.profile-menu--profile .profile-email[data-v-c2c7ed35],.profile-menu--profile .profile-phone[data-v-c2c7ed35]{font-size:.875rem;font-weight:400;line-height:1.125rem;letter-spacing:.0125em;text-decoration-line:none;color:var(--fm-color-neutral-gray-300);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.team-member-list-table[data-v-c0fa95de] [class~=gap-24]>div:first-child{display:none}.audit-log-action-label{display:block;width:100%;max-width:100%;max-height:6.25rem;overflow-y:auto;white-space:pre-line;word-break:break-word;line-height:1.25rem;scrollbar-width:none;-ms-overflow-style:none}.audit-log-action-label::-webkit-scrollbar{display:none}.audit-log-operation-label-detail{max-height:6.875rem;overflow-y:auto;white-space:pre-line;word-break:break-word;line-height:1.375rem;scrollbar-width:none;-ms-overflow-style:none}.audit-log-operation-label-detail::-webkit-scrollbar{display:none}
@@ -1,8 +1,8 @@
1
- import { d as i } from "./dayjs.min-BJfcKBYO.js";
1
+ import { d as i } from "./dayjs.min-CJGjjQIJ.js";
2
2
  import { defineStore as p, storeToRefs as T } from "pinia";
3
3
  import { ref as l } from "vue";
4
- import { b as c, g as y, s as S } from "./iteration-CF55rP35.js";
5
- import { i as u, b as g } from "./index-F3OZA8nn.js";
4
+ import { b as c, g as y, s as S } from "./iteration-L8TLGaCI.js";
5
+ import { i as u, b as g } from "./index-5ziPpN4I.js";
6
6
  const f = {
7
7
  async readTimesheets(t, e) {
8
8
  return y(await c().get(`timesheet?start=${t}&end=${e}`));