@feedmepos/mf-hrm-portal 2.0.7-dev → 2.0.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.
- package/dist/{AuditLogList-COq6WH3T.js → AuditLogList-BWzKxoBK.js} +24 -23
- package/dist/{EmployeeList-CtosIPFL.js → EmployeeList-CPvHmCle.js} +164 -169
- package/dist/FormSection.vue_vue_type_script_setup_true_lang-BVb8c4YU.js +71 -0
- package/dist/HorizontalSplitter-o860F4xM.js +12 -0
- package/dist/{Main-B4YdcrGe.js → Main-BEj_iUkZ.js} +8 -7
- package/dist/{Main-CdsqeB2G.js → Main-BNywXKr0.js} +11 -10
- package/dist/Main-BkIzKoHQ.js +560 -0
- package/dist/PermissionSetList-B8jSoL19.js +338 -0
- package/dist/PortalPermissionEditor.vue_vue_type_script_setup_true_lang-Ddnj8eg_.js +3356 -0
- package/dist/{RoleList-D1NGE2IC.js → RoleList-BEx1B8PE.js} +26 -24
- package/dist/TeamMemberList-BEDwcjeT.js +989 -0
- package/dist/{TimesheetList-B8yCkaxb.js → TimesheetList-CqZG4xmE.js} +11 -10
- package/dist/{app-CB3ye-CT.js → app-DHtKeCwy.js} +1333 -1060
- package/dist/app.js +2 -2
- package/dist/{dayjs.min-DOxEzdpe.js → dayjs.min-BWWy9u8p.js} +1 -1
- package/dist/{employee-G0pQg8_6.js → employee-C2ys9jf0.js} +21 -20
- package/dist/index-BwYlZrxP.js +968 -0
- package/dist/{index-DQArLkVB.js → index-O9ipnK-U.js} +1 -1
- package/dist/{index-Beu6IuhT.js → iteration-BdhU8jGb.js} +3444 -4352
- package/dist/{lodash-COjtwv4w.js → lodash-CDSEYvRz.js} +1 -1
- package/dist/src/api/grant-user/index.d.ts +8 -0
- package/dist/src/api/index.d.ts +3 -1
- package/dist/src/api/permission-assignment/index.d.ts +1 -1
- package/dist/src/helpers/permission-set.d.ts +26 -4
- package/dist/src/helpers/permission-set.test.d.ts +1 -0
- package/dist/src/router/shared.d.ts +2 -1
- package/dist/src/stores/grant-user.d.ts +86 -0
- package/dist/src/types/grant-user.d.ts +27 -0
- package/dist/src/views/grant/GrantUserList.vue.d.ts +17 -0
- package/dist/src/views/grant/Main.vue.d.ts +2 -0
- package/dist/src/views/grant/components/GrantUserForm.vue.d.ts +17 -0
- package/dist/src/views/grant/locales/index.d.ts +232 -0
- package/dist/{team-CEtKQK6n.js → team-9CwJsJGX.js} +1 -1
- package/dist/{timesheet-DZF9D3QQ.js → timesheet-ChKYJtjK.js} +10 -9
- package/dist/tsconfig.app.tsbuildinfo +1 -1
- package/dist/{useAppStore-9lbKMy_9.js → useAppStore-DGzBzMIR.js} +1 -1
- package/dist/{useLoading-BIIvuJcM.js → useLoading-CzteZR_c.js} +1 -1
- package/dist/{useReportPermissions-BXQ0-WwK.js → useReportPermissions-CaY_wr2l.js} +12 -11
- package/dist/useRestaurantMap-e9fQJiLC.js +39 -0
- package/package.json +2 -2
- package/dist/PermissionSetList-BUORArci.js +0 -327
- package/dist/PortalPermissionEditor.vue_vue_type_script_setup_true_lang-ChqCTn1L.js +0 -3333
- package/dist/TeamMemberList-auSjZRNz.js +0 -979
- package/dist/useRestaurantMap-D5BNPLKh.js +0 -107
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { IFdtoGrantUser, IFdtoCreateGrantUserReq, IFdtoGrantValidationRes } from '@/types/grant-user';
|
|
2
|
+
declare const GrantUserAPI: {
|
|
3
|
+
getGrantUsers(): Promise<IFdtoGrantUser[]>;
|
|
4
|
+
createGrantUser(dto: IFdtoCreateGrantUserReq): Promise<IFdtoGrantUser>;
|
|
5
|
+
revokeGrantUser(id: string, restaurantId: string): Promise<IFdtoGrantUser>;
|
|
6
|
+
validatePasscode(passcode: string, restaurantId: string): Promise<IFdtoGrantValidationRes>;
|
|
7
|
+
};
|
|
8
|
+
export default GrantUserAPI;
|
package/dist/src/api/index.d.ts
CHANGED
|
@@ -3,6 +3,8 @@ export declare class ApiError extends Error {
|
|
|
3
3
|
readonly status: number;
|
|
4
4
|
constructor(message: string, status: number);
|
|
5
5
|
}
|
|
6
|
-
export declare const businessClientInstance: () => AxiosInstance;
|
|
6
|
+
export declare const businessClientInstance: (subPath?: string) => AxiosInstance;
|
|
7
7
|
export declare const queryEngineClientInstance: () => AxiosInstance;
|
|
8
|
+
export declare const grantClientInstance: () => AxiosInstance;
|
|
9
|
+
export declare const grantValidateClientInstance: () => AxiosInstance;
|
|
8
10
|
export declare function getAxiosData<T>(response: AxiosResponse<T>): T;
|
|
@@ -6,7 +6,7 @@ declare const PermissionAssignmentAPI: {
|
|
|
6
6
|
create(dto: IFdtoCreatePermissionAssignmentReq): Promise<IFdtoPermissionAssignment>;
|
|
7
7
|
update(id: string, dto: IFdtoUpdatePermissionAssignmentReq): Promise<IFdtoPermissionAssignment>;
|
|
8
8
|
delete(id: string): Promise<boolean>;
|
|
9
|
-
addReportManagePermission(permissionKey: string): Promise<{
|
|
9
|
+
addReportManagePermission(permissionKey: string, label: string): Promise<{
|
|
10
10
|
success: boolean;
|
|
11
11
|
}>;
|
|
12
12
|
};
|
|
@@ -46,15 +46,37 @@ export declare function materializeSystemPermissionSetOverrides(overridePermissi
|
|
|
46
46
|
* Inverted rules (explicit user denials) are always preserved.
|
|
47
47
|
*/
|
|
48
48
|
export declare function stripSystemExpandedPositives(permissions: FdoPermissionRule[]): FdoPermissionRule[];
|
|
49
|
+
export declare const REPORT_SUBJECT_PREFIX = "business::report::";
|
|
49
50
|
/**
|
|
50
|
-
* Filter out
|
|
51
|
-
*
|
|
51
|
+
* Filter out stale report permission rules.
|
|
52
|
+
*
|
|
53
|
+
* Only rules whose subject starts with `business::report::` are candidates for removal —
|
|
54
|
+
* any other subject (restaurant, role, warehouse, etc.) passes through untouched.
|
|
55
|
+
* A report-prefixed subject is kept only if it exists in `knownReportSubjects`.
|
|
52
56
|
*
|
|
53
57
|
* This handles:
|
|
54
58
|
* - Deprecated/renamed subjects (e.g. `business::report::closeup` → `business::report::reports::closeup`)
|
|
55
59
|
* - Deleted dynamic reports that no longer exist
|
|
56
60
|
*/
|
|
57
|
-
export declare function filterStalePermissions(permissions: FdoPermissionRule[],
|
|
61
|
+
export declare function filterStalePermissions(permissions: FdoPermissionRule[], knownReportSubjects: Set<string>): FdoPermissionRule[];
|
|
62
|
+
/**
|
|
63
|
+
* Strip individual-report actions already covered by an `allDefaultReports` or
|
|
64
|
+
* `allCustomReports` positive grant, preventing redundant data from being saved.
|
|
65
|
+
*
|
|
66
|
+
* - If the cover rule has `manage` selected → every individual rule in that bucket is
|
|
67
|
+
* fully covered and dropped entirely.
|
|
68
|
+
* - Otherwise, only covered non-manage actions are stripped from individual rules.
|
|
69
|
+
* If `manage` was present and any non-manage action is stripped (breaking the
|
|
70
|
+
* "manage = all non-manage selected" invariant), `manage` is also stripped.
|
|
71
|
+
* Rules that end up with no remaining actions are dropped.
|
|
72
|
+
*
|
|
73
|
+
* Inverted rules and the cover subjects themselves pass through untouched.
|
|
74
|
+
*
|
|
75
|
+
* @param defaultReportSubjects Full set of subjects in the "Default Report" UI category —
|
|
76
|
+
* includes static hardcoded subjects AND dynamic reports with `isDefault: true`.
|
|
77
|
+
* Built by the caller from `portalTeamPermissions` + `customReportPermissions`.
|
|
78
|
+
*/
|
|
79
|
+
export declare function filterRedundantReportPermissions(permissions: FdoPermissionRule[], defaultReportSubjects: Set<string>): FdoPermissionRule[];
|
|
58
80
|
/**
|
|
59
81
|
* Combine base permissions with override permissions to get effective permissions
|
|
60
82
|
* @param basePermissions - Base permissions from permission sets
|
|
@@ -69,7 +91,7 @@ export declare function getEffectivePermissions(basePermissions: FdoPermissionRu
|
|
|
69
91
|
* subject is NOT present in any base permission set (i.e. they target system-expanded subjects,
|
|
70
92
|
* not permission-set-inherited subjects). These denials seed `visitedSetIds` in
|
|
71
93
|
* `expandWithSystemPermissionSets` to block runtime re-expansion of system sets that the user
|
|
72
|
-
* explicitly unchecked. Without them the editor would
|
|
94
|
+
* explicitly unchecked. Without them the editor would initialize without the denial guard and
|
|
73
95
|
* those subjects would reappear as checked the next time the form opens.
|
|
74
96
|
*
|
|
75
97
|
* Inverted rules whose subject IS in base are handled correctly by `getEffectivePermissions`
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
import type { IFdtoGrantUser, IFdtoCreateGrantUserReq } from '@/types/grant-user';
|
|
2
|
+
export declare const useGrantUserStore: import("pinia").StoreDefinition<"grantUser", Pick<{
|
|
3
|
+
grantUsers: import("vue").Ref<{
|
|
4
|
+
_id: string;
|
|
5
|
+
passcode: string;
|
|
6
|
+
name: string;
|
|
7
|
+
restaurantId: string;
|
|
8
|
+
roleId: string;
|
|
9
|
+
status: "active" | "used" | "revoked";
|
|
10
|
+
grantById: string;
|
|
11
|
+
grantByName: string;
|
|
12
|
+
createdAt: string;
|
|
13
|
+
updatedAt: string;
|
|
14
|
+
}[], IFdtoGrantUser[] | {
|
|
15
|
+
_id: string;
|
|
16
|
+
passcode: string;
|
|
17
|
+
name: string;
|
|
18
|
+
restaurantId: string;
|
|
19
|
+
roleId: string;
|
|
20
|
+
status: "active" | "used" | "revoked";
|
|
21
|
+
grantById: string;
|
|
22
|
+
grantByName: string;
|
|
23
|
+
createdAt: string;
|
|
24
|
+
updatedAt: string;
|
|
25
|
+
}[]>;
|
|
26
|
+
isLoading: import("vue").Ref<boolean, boolean>;
|
|
27
|
+
readGrantUsers: () => Promise<void>;
|
|
28
|
+
createGrantUser: (dto: IFdtoCreateGrantUserReq) => Promise<IFdtoGrantUser>;
|
|
29
|
+
revokeGrantUser: (id: string, restaurantId: string) => Promise<void>;
|
|
30
|
+
}, "isLoading" | "grantUsers">, Pick<{
|
|
31
|
+
grantUsers: import("vue").Ref<{
|
|
32
|
+
_id: string;
|
|
33
|
+
passcode: string;
|
|
34
|
+
name: string;
|
|
35
|
+
restaurantId: string;
|
|
36
|
+
roleId: string;
|
|
37
|
+
status: "active" | "used" | "revoked";
|
|
38
|
+
grantById: string;
|
|
39
|
+
grantByName: string;
|
|
40
|
+
createdAt: string;
|
|
41
|
+
updatedAt: string;
|
|
42
|
+
}[], IFdtoGrantUser[] | {
|
|
43
|
+
_id: string;
|
|
44
|
+
passcode: string;
|
|
45
|
+
name: string;
|
|
46
|
+
restaurantId: string;
|
|
47
|
+
roleId: string;
|
|
48
|
+
status: "active" | "used" | "revoked";
|
|
49
|
+
grantById: string;
|
|
50
|
+
grantByName: string;
|
|
51
|
+
createdAt: string;
|
|
52
|
+
updatedAt: string;
|
|
53
|
+
}[]>;
|
|
54
|
+
isLoading: import("vue").Ref<boolean, boolean>;
|
|
55
|
+
readGrantUsers: () => Promise<void>;
|
|
56
|
+
createGrantUser: (dto: IFdtoCreateGrantUserReq) => Promise<IFdtoGrantUser>;
|
|
57
|
+
revokeGrantUser: (id: string, restaurantId: string) => Promise<void>;
|
|
58
|
+
}, never>, Pick<{
|
|
59
|
+
grantUsers: import("vue").Ref<{
|
|
60
|
+
_id: string;
|
|
61
|
+
passcode: string;
|
|
62
|
+
name: string;
|
|
63
|
+
restaurantId: string;
|
|
64
|
+
roleId: string;
|
|
65
|
+
status: "active" | "used" | "revoked";
|
|
66
|
+
grantById: string;
|
|
67
|
+
grantByName: string;
|
|
68
|
+
createdAt: string;
|
|
69
|
+
updatedAt: string;
|
|
70
|
+
}[], IFdtoGrantUser[] | {
|
|
71
|
+
_id: string;
|
|
72
|
+
passcode: string;
|
|
73
|
+
name: string;
|
|
74
|
+
restaurantId: string;
|
|
75
|
+
roleId: string;
|
|
76
|
+
status: "active" | "used" | "revoked";
|
|
77
|
+
grantById: string;
|
|
78
|
+
grantByName: string;
|
|
79
|
+
createdAt: string;
|
|
80
|
+
updatedAt: string;
|
|
81
|
+
}[]>;
|
|
82
|
+
isLoading: import("vue").Ref<boolean, boolean>;
|
|
83
|
+
readGrantUsers: () => Promise<void>;
|
|
84
|
+
createGrantUser: (dto: IFdtoCreateGrantUserReq) => Promise<IFdtoGrantUser>;
|
|
85
|
+
revokeGrantUser: (id: string, restaurantId: string) => Promise<void>;
|
|
86
|
+
}, "readGrantUsers" | "createGrantUser" | "revokeGrantUser">>;
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
export interface IFdtoGrantUser {
|
|
2
|
+
_id: string;
|
|
3
|
+
passcode: string;
|
|
4
|
+
name: string;
|
|
5
|
+
restaurantId: string;
|
|
6
|
+
roleId: string;
|
|
7
|
+
status: 'active' | 'used' | 'revoked';
|
|
8
|
+
grantById: string;
|
|
9
|
+
grantByName: string;
|
|
10
|
+
createdAt: string;
|
|
11
|
+
updatedAt: string;
|
|
12
|
+
}
|
|
13
|
+
export interface IFdtoCreateGrantUserReq {
|
|
14
|
+
name: string;
|
|
15
|
+
restaurantId: string;
|
|
16
|
+
roleId: string;
|
|
17
|
+
}
|
|
18
|
+
export interface IFdtoBypassUser {
|
|
19
|
+
id: string;
|
|
20
|
+
name: string;
|
|
21
|
+
role: string;
|
|
22
|
+
passcode: string;
|
|
23
|
+
}
|
|
24
|
+
export interface IFdtoGrantValidationRes {
|
|
25
|
+
bypass: boolean;
|
|
26
|
+
user: IFdtoBypassUser;
|
|
27
|
+
}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
declare function create(): void;
|
|
2
|
+
declare const _default: import("vue").DefineComponent<{}, {
|
|
3
|
+
create: typeof create;
|
|
4
|
+
filteredGrantUsers: import("vue").ComputedRef<{
|
|
5
|
+
_id: string;
|
|
6
|
+
passcode: string;
|
|
7
|
+
name: string;
|
|
8
|
+
restaurantId: string;
|
|
9
|
+
roleId: string;
|
|
10
|
+
status: "active" | "used" | "revoked";
|
|
11
|
+
grantById: string;
|
|
12
|
+
grantByName: string;
|
|
13
|
+
createdAt: string;
|
|
14
|
+
updatedAt: string;
|
|
15
|
+
}[]>;
|
|
16
|
+
}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
|
|
17
|
+
export default _default;
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
declare const _default: import("vue").DefineComponent<{}, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
|
|
2
|
+
export default _default;
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
declare var __VLS_1: {
|
|
2
|
+
trigger: () => void;
|
|
3
|
+
};
|
|
4
|
+
type __VLS_Slots = {} & {
|
|
5
|
+
default?: (props: typeof __VLS_1) => any;
|
|
6
|
+
};
|
|
7
|
+
declare const __VLS_component: import("vue").DefineComponent<{}, {
|
|
8
|
+
show: import("vue").Ref<boolean, boolean>;
|
|
9
|
+
trigger: () => void;
|
|
10
|
+
}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
|
|
11
|
+
declare const _default: __VLS_WithSlots<typeof __VLS_component, __VLS_Slots>;
|
|
12
|
+
export default _default;
|
|
13
|
+
type __VLS_WithSlots<T, S> = T & {
|
|
14
|
+
new (): {
|
|
15
|
+
$slots: S;
|
|
16
|
+
};
|
|
17
|
+
};
|
|
@@ -0,0 +1,232 @@
|
|
|
1
|
+
import * as enUS from './en-US.json';
|
|
2
|
+
export type AppMessagesSchema = typeof enUS;
|
|
3
|
+
export declare const i18nMessages: {
|
|
4
|
+
'en-US': {
|
|
5
|
+
grantUser: {
|
|
6
|
+
title: string;
|
|
7
|
+
actions: {
|
|
8
|
+
create: string;
|
|
9
|
+
revoke: string;
|
|
10
|
+
};
|
|
11
|
+
form: {
|
|
12
|
+
title: string;
|
|
13
|
+
section: string;
|
|
14
|
+
name: string;
|
|
15
|
+
nameRequired: string;
|
|
16
|
+
restaurant: string;
|
|
17
|
+
selectRestaurant: string;
|
|
18
|
+
restaurantRequired: string;
|
|
19
|
+
role: string;
|
|
20
|
+
selectRole: string;
|
|
21
|
+
roleRequired: string;
|
|
22
|
+
};
|
|
23
|
+
columns: {
|
|
24
|
+
passcode: string;
|
|
25
|
+
name: string;
|
|
26
|
+
restaurant: string;
|
|
27
|
+
role: string;
|
|
28
|
+
status: string;
|
|
29
|
+
grantedBy: string;
|
|
30
|
+
createdAt: string;
|
|
31
|
+
};
|
|
32
|
+
status: {
|
|
33
|
+
active: string;
|
|
34
|
+
used: string;
|
|
35
|
+
revoked: string;
|
|
36
|
+
};
|
|
37
|
+
create: {
|
|
38
|
+
successMessage: string;
|
|
39
|
+
};
|
|
40
|
+
revoke: {
|
|
41
|
+
title: string;
|
|
42
|
+
message: string;
|
|
43
|
+
successMessage: string;
|
|
44
|
+
};
|
|
45
|
+
search: {
|
|
46
|
+
placeholder: string;
|
|
47
|
+
};
|
|
48
|
+
filter: {
|
|
49
|
+
selected_status_prefix: string;
|
|
50
|
+
status_placeholder: string;
|
|
51
|
+
};
|
|
52
|
+
noData: {
|
|
53
|
+
title: string;
|
|
54
|
+
subtitle: string;
|
|
55
|
+
};
|
|
56
|
+
passcode: {
|
|
57
|
+
copied: string;
|
|
58
|
+
};
|
|
59
|
+
};
|
|
60
|
+
};
|
|
61
|
+
'zh-CN': {
|
|
62
|
+
grantUser: {
|
|
63
|
+
title: string;
|
|
64
|
+
actions: {
|
|
65
|
+
create: string;
|
|
66
|
+
revoke: string;
|
|
67
|
+
};
|
|
68
|
+
form: {
|
|
69
|
+
title: string;
|
|
70
|
+
section: string;
|
|
71
|
+
name: string;
|
|
72
|
+
nameRequired: string;
|
|
73
|
+
restaurant: string;
|
|
74
|
+
selectRestaurant: string;
|
|
75
|
+
restaurantRequired: string;
|
|
76
|
+
role: string;
|
|
77
|
+
selectRole: string;
|
|
78
|
+
roleRequired: string;
|
|
79
|
+
};
|
|
80
|
+
columns: {
|
|
81
|
+
passcode: string;
|
|
82
|
+
name: string;
|
|
83
|
+
restaurant: string;
|
|
84
|
+
role: string;
|
|
85
|
+
status: string;
|
|
86
|
+
grantedBy: string;
|
|
87
|
+
createdAt: string;
|
|
88
|
+
};
|
|
89
|
+
status: {
|
|
90
|
+
active: string;
|
|
91
|
+
used: string;
|
|
92
|
+
revoked: string;
|
|
93
|
+
};
|
|
94
|
+
create: {
|
|
95
|
+
successMessage: string;
|
|
96
|
+
};
|
|
97
|
+
revoke: {
|
|
98
|
+
title: string;
|
|
99
|
+
message: string;
|
|
100
|
+
successMessage: string;
|
|
101
|
+
};
|
|
102
|
+
search: {
|
|
103
|
+
placeholder: string;
|
|
104
|
+
};
|
|
105
|
+
filter: {
|
|
106
|
+
selected_status_prefix: string;
|
|
107
|
+
status_placeholder: string;
|
|
108
|
+
};
|
|
109
|
+
noData: {
|
|
110
|
+
title: string;
|
|
111
|
+
subtitle: string;
|
|
112
|
+
};
|
|
113
|
+
passcode: {
|
|
114
|
+
copied: string;
|
|
115
|
+
};
|
|
116
|
+
};
|
|
117
|
+
};
|
|
118
|
+
'th-TH': {
|
|
119
|
+
grantUser: {
|
|
120
|
+
title: string;
|
|
121
|
+
actions: {
|
|
122
|
+
create: string;
|
|
123
|
+
revoke: string;
|
|
124
|
+
};
|
|
125
|
+
form: {
|
|
126
|
+
title: string;
|
|
127
|
+
section: string;
|
|
128
|
+
name: string;
|
|
129
|
+
nameRequired: string;
|
|
130
|
+
restaurant: string;
|
|
131
|
+
selectRestaurant: string;
|
|
132
|
+
restaurantRequired: string;
|
|
133
|
+
role: string;
|
|
134
|
+
selectRole: string;
|
|
135
|
+
roleRequired: string;
|
|
136
|
+
};
|
|
137
|
+
columns: {
|
|
138
|
+
passcode: string;
|
|
139
|
+
name: string;
|
|
140
|
+
restaurant: string;
|
|
141
|
+
role: string;
|
|
142
|
+
status: string;
|
|
143
|
+
grantedBy: string;
|
|
144
|
+
createdAt: string;
|
|
145
|
+
};
|
|
146
|
+
status: {
|
|
147
|
+
active: string;
|
|
148
|
+
used: string;
|
|
149
|
+
revoked: string;
|
|
150
|
+
};
|
|
151
|
+
create: {
|
|
152
|
+
successMessage: string;
|
|
153
|
+
};
|
|
154
|
+
revoke: {
|
|
155
|
+
title: string;
|
|
156
|
+
message: string;
|
|
157
|
+
successMessage: string;
|
|
158
|
+
};
|
|
159
|
+
search: {
|
|
160
|
+
placeholder: string;
|
|
161
|
+
};
|
|
162
|
+
filter: {
|
|
163
|
+
selected_status_prefix: string;
|
|
164
|
+
status_placeholder: string;
|
|
165
|
+
};
|
|
166
|
+
noData: {
|
|
167
|
+
title: string;
|
|
168
|
+
subtitle: string;
|
|
169
|
+
};
|
|
170
|
+
passcode: {
|
|
171
|
+
copied: string;
|
|
172
|
+
};
|
|
173
|
+
};
|
|
174
|
+
};
|
|
175
|
+
'zh-Hant': {
|
|
176
|
+
grantUser: {
|
|
177
|
+
title: string;
|
|
178
|
+
actions: {
|
|
179
|
+
create: string;
|
|
180
|
+
revoke: string;
|
|
181
|
+
};
|
|
182
|
+
form: {
|
|
183
|
+
title: string;
|
|
184
|
+
section: string;
|
|
185
|
+
name: string;
|
|
186
|
+
nameRequired: string;
|
|
187
|
+
restaurant: string;
|
|
188
|
+
selectRestaurant: string;
|
|
189
|
+
restaurantRequired: string;
|
|
190
|
+
role: string;
|
|
191
|
+
selectRole: string;
|
|
192
|
+
roleRequired: string;
|
|
193
|
+
};
|
|
194
|
+
columns: {
|
|
195
|
+
passcode: string;
|
|
196
|
+
name: string;
|
|
197
|
+
restaurant: string;
|
|
198
|
+
role: string;
|
|
199
|
+
status: string;
|
|
200
|
+
grantedBy: string;
|
|
201
|
+
createdAt: string;
|
|
202
|
+
};
|
|
203
|
+
status: {
|
|
204
|
+
active: string;
|
|
205
|
+
used: string;
|
|
206
|
+
revoked: string;
|
|
207
|
+
};
|
|
208
|
+
create: {
|
|
209
|
+
successMessage: string;
|
|
210
|
+
};
|
|
211
|
+
revoke: {
|
|
212
|
+
title: string;
|
|
213
|
+
message: string;
|
|
214
|
+
successMessage: string;
|
|
215
|
+
};
|
|
216
|
+
search: {
|
|
217
|
+
placeholder: string;
|
|
218
|
+
};
|
|
219
|
+
filter: {
|
|
220
|
+
selected_status_prefix: string;
|
|
221
|
+
status_placeholder: string;
|
|
222
|
+
};
|
|
223
|
+
noData: {
|
|
224
|
+
title: string;
|
|
225
|
+
subtitle: string;
|
|
226
|
+
};
|
|
227
|
+
passcode: {
|
|
228
|
+
copied: string;
|
|
229
|
+
};
|
|
230
|
+
};
|
|
231
|
+
};
|
|
232
|
+
};
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { defineStore as d } from "pinia";
|
|
2
2
|
import { ref as s, computed as o } from "vue";
|
|
3
|
-
import { t as f } from "./index-
|
|
3
|
+
import { t as f } from "./index-BwYlZrxP.js";
|
|
4
4
|
const I = d("team", () => {
|
|
5
5
|
const r = s([]), a = s(!1), m = o(
|
|
6
6
|
() => Object.fromEntries(r.value.map((e) => [e.doc.userId, e.name]))
|
|
@@ -1,7 +1,8 @@
|
|
|
1
|
-
import { d as i } from "./dayjs.min-
|
|
1
|
+
import { d as i } from "./dayjs.min-BWWy9u8p.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,
|
|
4
|
+
import { b as c, g as y, s as S } from "./iteration-BdhU8jGb.js";
|
|
5
|
+
import { i as u, b as g } from "./index-BwYlZrxP.js";
|
|
5
6
|
const f = {
|
|
6
7
|
async readTimesheets(t, e) {
|
|
7
8
|
return y(await c().get(`timesheet?start=${t}&end=${e}`));
|
|
@@ -11,17 +12,17 @@ const f = {
|
|
|
11
12
|
}
|
|
12
13
|
};
|
|
13
14
|
function A(t) {
|
|
14
|
-
const e = t.map((
|
|
15
|
-
const { startedAt: s, endedAt: a } =
|
|
15
|
+
const e = t.map((n) => {
|
|
16
|
+
const { startedAt: s, endedAt: a } = n, r = i(u(s)), o = a ? i(u(a)) : null, m = (o == null ? void 0 : o.diff(r, "minute", !1)) || 0, h = o ? g(m) : "", d = "YYYY-MM-DD hh:mm a";
|
|
16
17
|
return {
|
|
17
|
-
...
|
|
18
|
+
...n,
|
|
18
19
|
start: r.format(d),
|
|
19
|
-
end:
|
|
20
|
+
end: o ? o.format(d) : "",
|
|
20
21
|
totalMin: m,
|
|
21
22
|
duration: h
|
|
22
23
|
};
|
|
23
24
|
});
|
|
24
|
-
return
|
|
25
|
+
return S(e, { selector: "start" });
|
|
25
26
|
}
|
|
26
27
|
const D = p("timesheet", () => {
|
|
27
28
|
const t = l([]);
|
|
@@ -32,7 +33,7 @@ const D = p("timesheet", () => {
|
|
|
32
33
|
);
|
|
33
34
|
t.value = A(r);
|
|
34
35
|
}
|
|
35
|
-
async function
|
|
36
|
+
async function n(s, a, r) {
|
|
36
37
|
await f.updateTimesheet(s.restaurantId, {
|
|
37
38
|
id: s._id,
|
|
38
39
|
startAt: a,
|
|
@@ -42,7 +43,7 @@ const D = p("timesheet", () => {
|
|
|
42
43
|
return {
|
|
43
44
|
timesheets: t,
|
|
44
45
|
readTimesheet: e,
|
|
45
|
-
updateTimesheet:
|
|
46
|
+
updateTimesheet: n
|
|
46
47
|
};
|
|
47
48
|
}), M = () => {
|
|
48
49
|
const t = D();
|