@feedmepos/mf-hrm-portal 2.2.1 → 2.2.2-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 (50) hide show
  1. package/dist/{ApprovalCodeList-BWQBJGCZ.js → ApprovalCodeList-B9O8QzzI.js} +5 -5
  2. package/dist/AuditLogList-CtFEXKWZ.js +1722 -0
  3. package/dist/{ConditionBuilderForm.vue_vue_type_script_setup_true_lang-BDOdtKwI.js → ConditionBuilderForm.vue_vue_type_script_setup_true_lang-C9MYbxum.js} +2 -2
  4. package/dist/{EmployeeList-BZ6fxRCN.js → EmployeeList-BFxMwFJq.js} +71 -71
  5. package/dist/{GrantUserList-CaVpRVzA.js → GrantUserList-CZtmMRoS.js} +6 -6
  6. package/dist/{Main-CEKiyT80.js → Main-B622Z4q4.js} +11 -11
  7. package/dist/{Main-CQpEciKH.js → Main-DD6IthCS.js} +5 -5
  8. package/dist/{Main-DrfRLxA5.js → Main-on0TXkQt.js} +8 -8
  9. package/dist/{PermissionSetList-BgOSJy4y.js → PermissionSetList-FCX3TBoi.js} +77 -78
  10. package/dist/{PortalPermissionEditor.vue_vue_type_script_setup_true_lang-B2SX3ZoV.js → PortalPermissionEditor.vue_vue_type_script_setup_true_lang-Cl_YNh0k.js} +832 -837
  11. package/dist/{PortalUserSearcher.vue_vue_type_style_index_0_scoped_827dfd60_lang-Z-DH7ouY.js → PortalUserSearcher.vue_vue_type_style_index_0_scoped_827dfd60_lang-XHuHin8t.js} +1 -1
  12. package/dist/RoleList-p_9KHzqF.js +725 -0
  13. package/dist/Skeleton.vue_vue_type_script_setup_true_lang-B4PxNMwq.js +16 -0
  14. package/dist/{TeamMemberList-BXk_pXjc.js → TeamMemberList-BAU7Y3jh.js} +313 -312
  15. package/dist/{TimesheetList-DgaZmgug.js → TimesheetList-DtFBWhma.js} +7 -7
  16. package/dist/{TimesheetList.vue_vue_type_style_index_0_scoped_2c7a177a_lang-B_Lc8Xmy.js → TimesheetList.vue_vue_type_style_index_0_scoped_2c7a177a_lang-Tatn3jUv.js} +3 -3
  17. package/dist/{app-DzagkC6l.js → app-Bbf6hEPt.js} +1086 -781
  18. package/dist/app.js +1 -1
  19. package/dist/{approval-code-BRClD2HN.js → approval-code-jIjkeVEb.js} +1 -1
  20. package/dist/{dayjs.min-CqJsImsm.js → dayjs.min-BAnGg8q2.js} +1 -1
  21. package/dist/{employee-CXBuv0Bx.js → employee-DVSD3L51.js} +4 -4
  22. package/dist/{grant-user-Dhi3ilC_.js → grant-user-SNiDV22U.js} +1 -1
  23. package/dist/{iteration-BCfwR_XH.js → iteration-BTZViJtd.js} +1 -1
  24. package/dist/{lodash-BJl3phr9.js → lodash-Cgdk4_YL.js} +1 -1
  25. package/dist/{restaurant-DiYb0pCm.js → restaurant-BTpBmfBV.js} +2 -2
  26. package/dist/{role-BfCNRnuy.js → role-CXVpO6fB.js} +2 -2
  27. package/dist/{rule-B3Eg-J8O.js → rule-TR3MVo-b.js} +259 -279
  28. package/dist/src/api/audit-log/index.d.ts +6 -0
  29. package/dist/src/api/user/index.d.ts +2 -2
  30. package/dist/src/composables/useReportPermissions.d.ts +0 -1
  31. package/dist/src/helpers/rule.d.ts +0 -2
  32. package/dist/src/types/audit-log.d.ts +1 -1
  33. package/dist/src/types/role.d.ts +0 -1
  34. package/dist/src/views/audit-log/change-nodes.d.ts +14 -0
  35. package/dist/src/views/audit-log/event-line.d.ts +13 -0
  36. package/dist/src/views/audit-log/locales/index.d.ts +300 -0
  37. package/dist/src/views/audit-log/operation-status.d.ts +2 -0
  38. package/dist/src/views/audit-log/snapshot-diff.d.ts +11 -0
  39. package/dist/src/views/hr/locales/index.d.ts +0 -4
  40. package/dist/style.css +1 -1
  41. package/dist/tsconfig.app.tsbuildinfo +1 -1
  42. package/dist/{useAppStore-BGhlB1_1.js → useAppStore-DCwd8GWN.js} +1 -1
  43. package/dist/useDebounce-B8ZPVS5C.js +15 -0
  44. package/dist/{useLoading-CvgqVDbF.js → useLoading-CXzTpIVv.js} +1 -1
  45. package/dist/useReportPermissions-BpAFyO17.js +71 -0
  46. package/package.json +1 -1
  47. package/dist/AuditLogList-CymSyHag.js +0 -1149
  48. package/dist/RoleList-C2PrTc1f.js +0 -739
  49. package/dist/useDebounce-CWb5QR9G.js +0 -28
  50. package/dist/useReportPermissions-CXXq725N.js +0 -82
@@ -9,6 +9,9 @@ declare const AuditLogAPI: {
9
9
  actions?: string[];
10
10
  outcomes?: string[];
11
11
  feedmeAdminActors?: boolean;
12
+ search?: string;
13
+ searchUserIds?: string[];
14
+ searchSubjects?: string[];
12
15
  }): Promise<number>;
13
16
  read(params?: {
14
17
  limit?: number;
@@ -21,6 +24,9 @@ declare const AuditLogAPI: {
21
24
  actions?: string[];
22
25
  outcomes?: string[];
23
26
  feedmeAdminActors?: boolean;
27
+ search?: string;
28
+ searchUserIds?: string[];
29
+ searchSubjects?: string[];
24
30
  }): Promise<AuditLogEntry[]>;
25
31
  /**
26
32
  * FeedMe-admin options for the User filter. `actors` is the named admin list (internal
@@ -1,6 +1,6 @@
1
1
  import type { FdoUser } from '@feedmepos/core/entity';
2
2
  export declare const userApi: {
3
- readPermissionUserByPhoneNo(phoneNo: string): Promise<FdoUser | null>;
4
- readPermissionUserByEmail(email: string): Promise<FdoUser | null>;
3
+ readPermissionUserByPhoneNo(phoneNo: string): Promise<FdoUser>;
4
+ readPermissionUserByEmail(email: string): Promise<FdoUser>;
5
5
  };
6
6
  export default userApi;
@@ -10,7 +10,6 @@ export declare function useReportPermissions(): {
10
10
  actions: ("update" | "create" | "read" | "delete" | "manage")[];
11
11
  }[]>;
12
12
  availableReportKeys: import("vue").ComputedRef<Set<string>>;
13
- customReportKeys: import("vue").ComputedRef<Set<string>>;
14
13
  isLoading: import("vue").ComputedRef<boolean>;
15
14
  isLoaded: import("vue").ComputedRef<boolean>;
16
15
  };
@@ -7,8 +7,6 @@ export declare function ruleExtension(rule: FdoPermissionRule): {
7
7
  isDiscountOperation: boolean;
8
8
  isOrderOperation: boolean;
9
9
  isReportPermission: boolean;
10
- isResolvable: boolean;
11
- discriminator: string | undefined;
12
10
  formatted: string;
13
11
  label: string;
14
12
  value: string;
@@ -1 +1 @@
1
- export type { AuditLogEntry, AuditLogMetadata, AuditLogOutcome, AuditLogResolvedFrom } from '@feedmepos/hrm-permission';
1
+ export type { AuditLogEntry, AuditLogMetadata, AuditLogOperation, AuditLogOutcome, AuditLogResolvedFrom, } from '@feedmepos/hrm-permission';
@@ -32,7 +32,6 @@ export interface Rule extends FdoPermissionRule {
32
32
  isDiscountOperation: boolean;
33
33
  isOrderOperation: boolean;
34
34
  isReportPermission: boolean;
35
- isResolvable: boolean;
36
35
  label: string;
37
36
  value: string;
38
37
  }
@@ -0,0 +1,14 @@
1
+ import type { ChangeNode } from '@feedmepos/hrm-permission';
2
+ export interface ChangeNodeDisplay {
3
+ label: string;
4
+ labelKey?: string;
5
+ type: 'add' | 'remove' | 'update';
6
+ beforeDisplay: string;
7
+ afterDisplay: string;
8
+ }
9
+ /** Render a single ChangeNode value (string | string[] | undefined) as display text. */
10
+ export declare function formatChangeValue(value: string | string[] | undefined): string;
11
+ /** Convert a ChangeNode into a flat display object for the UI. */
12
+ export declare function prepareChangeNodeDisplay(node: ChangeNode): ChangeNodeDisplay;
13
+ /** Decide whether to render changeNodes table (true) or fall back to raw diff (false). */
14
+ export declare function shouldRenderChangeNodes(changeNodes: ChangeNode[] | undefined): boolean;
@@ -0,0 +1,13 @@
1
+ export interface EventLineSource {
2
+ eventKey?: string;
3
+ params?: Record<string, string | number>;
4
+ operationLabel?: string;
5
+ }
6
+ type Translate = (key: string, params?: Record<string, unknown>) => string;
7
+ export declare function splitEventKey(key: string): {
8
+ entity: string;
9
+ verb: string;
10
+ } | null;
11
+ export declare function humanizeSegment(segment: string): string;
12
+ export declare function renderEventLine(t: Translate, source: EventLineSource): string;
13
+ export {};
@@ -19,6 +19,9 @@ export declare const i18nMessages: {
19
19
  dateRange: {
20
20
  placeholder: string;
21
21
  };
22
+ search: {
23
+ placeholder: string;
24
+ };
22
25
  user: {
23
26
  feedmeAdmin: string;
24
27
  };
@@ -134,6 +137,78 @@ export declare const i18nMessages: {
134
137
  requestPath: string;
135
138
  requestBody: string;
136
139
  };
140
+ operation: {
141
+ toggle: string;
142
+ rowHint: string;
143
+ unlabeled: string;
144
+ badge: string;
145
+ partialFailure: string;
146
+ sheetHeader: string;
147
+ entity: string;
148
+ duration: string;
149
+ durationValue: string;
150
+ error: string;
151
+ changes: string;
152
+ showData: string;
153
+ added: string;
154
+ removed: string;
155
+ updated: string;
156
+ before: string;
157
+ after: string;
158
+ noChanges: string;
159
+ wholeValue: string;
160
+ };
161
+ event: {
162
+ sentence: {
163
+ "audit-log": {
164
+ view: string;
165
+ };
166
+ restaurant: {
167
+ list: string;
168
+ };
169
+ "permission-assignment": {
170
+ manage: string;
171
+ list: string;
172
+ view: string;
173
+ };
174
+ "permission-set": {
175
+ manage: string;
176
+ list: string;
177
+ view: string;
178
+ };
179
+ "portal-user": {
180
+ list: string;
181
+ "list-page": string;
182
+ view: string;
183
+ create: string;
184
+ update: string;
185
+ delete: string;
186
+ };
187
+ "pos-user": {
188
+ list: string;
189
+ "list-page": string;
190
+ create: string;
191
+ "sync-meta": string;
192
+ update: string;
193
+ migrate: string;
194
+ "generate-passcode": string;
195
+ };
196
+ "pos-master-user": {
197
+ create: string;
198
+ update: string;
199
+ delete: string;
200
+ };
201
+ "pos-role": {
202
+ list: string;
203
+ create: string;
204
+ update: string;
205
+ };
206
+ timesheet: {
207
+ view: string;
208
+ update: string;
209
+ };
210
+ };
211
+ };
137
212
  };
138
213
  };
139
214
  'zh-CN': {
@@ -154,6 +229,9 @@ export declare const i18nMessages: {
154
229
  dateRange: {
155
230
  placeholder: string;
156
231
  };
232
+ search: {
233
+ placeholder: string;
234
+ };
157
235
  user: {
158
236
  feedmeAdmin: string;
159
237
  };
@@ -270,6 +348,78 @@ export declare const i18nMessages: {
270
348
  requestPath: string;
271
349
  requestBody: string;
272
350
  };
351
+ operation: {
352
+ toggle: string;
353
+ rowHint: string;
354
+ unlabeled: string;
355
+ badge: string;
356
+ partialFailure: string;
357
+ sheetHeader: string;
358
+ entity: string;
359
+ duration: string;
360
+ durationValue: string;
361
+ error: string;
362
+ changes: string;
363
+ showData: string;
364
+ added: string;
365
+ removed: string;
366
+ updated: string;
367
+ before: string;
368
+ after: string;
369
+ noChanges: string;
370
+ wholeValue: string;
371
+ };
372
+ event: {
373
+ sentence: {
374
+ "audit-log": {
375
+ view: string;
376
+ };
377
+ restaurant: {
378
+ list: string;
379
+ };
380
+ "permission-assignment": {
381
+ manage: string;
382
+ list: string;
383
+ view: string;
384
+ };
385
+ "permission-set": {
386
+ manage: string;
387
+ list: string;
388
+ view: string;
389
+ };
390
+ "portal-user": {
391
+ list: string;
392
+ "list-page": string;
393
+ view: string;
394
+ create: string;
395
+ update: string;
396
+ delete: string;
397
+ };
398
+ "pos-user": {
399
+ list: string;
400
+ "list-page": string;
401
+ create: string;
402
+ "sync-meta": string;
403
+ update: string;
404
+ migrate: string;
405
+ "generate-passcode": string;
406
+ };
407
+ "pos-master-user": {
408
+ create: string;
409
+ update: string;
410
+ delete: string;
411
+ };
412
+ "pos-role": {
413
+ list: string;
414
+ create: string;
415
+ update: string;
416
+ };
417
+ timesheet: {
418
+ view: string;
419
+ update: string;
420
+ };
421
+ };
422
+ };
273
423
  };
274
424
  };
275
425
  'th-TH': {
@@ -290,6 +440,9 @@ export declare const i18nMessages: {
290
440
  dateRange: {
291
441
  placeholder: string;
292
442
  };
443
+ search: {
444
+ placeholder: string;
445
+ };
293
446
  user: {
294
447
  feedmeAdmin: string;
295
448
  };
@@ -406,6 +559,78 @@ export declare const i18nMessages: {
406
559
  requestPath: string;
407
560
  requestBody: string;
408
561
  };
562
+ operation: {
563
+ toggle: string;
564
+ rowHint: string;
565
+ unlabeled: string;
566
+ badge: string;
567
+ partialFailure: string;
568
+ sheetHeader: string;
569
+ entity: string;
570
+ duration: string;
571
+ durationValue: string;
572
+ error: string;
573
+ changes: string;
574
+ showData: string;
575
+ added: string;
576
+ removed: string;
577
+ updated: string;
578
+ before: string;
579
+ after: string;
580
+ noChanges: string;
581
+ wholeValue: string;
582
+ };
583
+ event: {
584
+ sentence: {
585
+ "audit-log": {
586
+ view: string;
587
+ };
588
+ restaurant: {
589
+ list: string;
590
+ };
591
+ "permission-assignment": {
592
+ manage: string;
593
+ list: string;
594
+ view: string;
595
+ };
596
+ "permission-set": {
597
+ manage: string;
598
+ list: string;
599
+ view: string;
600
+ };
601
+ "portal-user": {
602
+ list: string;
603
+ "list-page": string;
604
+ view: string;
605
+ create: string;
606
+ update: string;
607
+ delete: string;
608
+ };
609
+ "pos-user": {
610
+ list: string;
611
+ "list-page": string;
612
+ create: string;
613
+ "sync-meta": string;
614
+ update: string;
615
+ migrate: string;
616
+ "generate-passcode": string;
617
+ };
618
+ "pos-master-user": {
619
+ create: string;
620
+ update: string;
621
+ delete: string;
622
+ };
623
+ "pos-role": {
624
+ list: string;
625
+ create: string;
626
+ update: string;
627
+ };
628
+ timesheet: {
629
+ view: string;
630
+ update: string;
631
+ };
632
+ };
633
+ };
409
634
  };
410
635
  };
411
636
  'zh-Hant': {
@@ -426,6 +651,9 @@ export declare const i18nMessages: {
426
651
  dateRange: {
427
652
  placeholder: string;
428
653
  };
654
+ search: {
655
+ placeholder: string;
656
+ };
429
657
  user: {
430
658
  feedmeAdmin: string;
431
659
  };
@@ -542,6 +770,78 @@ export declare const i18nMessages: {
542
770
  requestPath: string;
543
771
  requestBody: string;
544
772
  };
773
+ operation: {
774
+ toggle: string;
775
+ rowHint: string;
776
+ unlabeled: string;
777
+ badge: string;
778
+ partialFailure: string;
779
+ sheetHeader: string;
780
+ entity: string;
781
+ duration: string;
782
+ durationValue: string;
783
+ error: string;
784
+ changes: string;
785
+ showData: string;
786
+ added: string;
787
+ removed: string;
788
+ updated: string;
789
+ before: string;
790
+ after: string;
791
+ noChanges: string;
792
+ wholeValue: string;
793
+ };
794
+ event: {
795
+ sentence: {
796
+ "audit-log": {
797
+ view: string;
798
+ };
799
+ restaurant: {
800
+ list: string;
801
+ };
802
+ "permission-assignment": {
803
+ manage: string;
804
+ list: string;
805
+ view: string;
806
+ };
807
+ "permission-set": {
808
+ manage: string;
809
+ list: string;
810
+ view: string;
811
+ };
812
+ "portal-user": {
813
+ list: string;
814
+ "list-page": string;
815
+ view: string;
816
+ create: string;
817
+ update: string;
818
+ delete: string;
819
+ };
820
+ "pos-user": {
821
+ list: string;
822
+ "list-page": string;
823
+ create: string;
824
+ "sync-meta": string;
825
+ update: string;
826
+ migrate: string;
827
+ "generate-passcode": string;
828
+ };
829
+ "pos-master-user": {
830
+ create: string;
831
+ update: string;
832
+ delete: string;
833
+ };
834
+ "pos-role": {
835
+ list: string;
836
+ create: string;
837
+ update: string;
838
+ };
839
+ timesheet: {
840
+ view: string;
841
+ update: string;
842
+ };
843
+ };
844
+ };
545
845
  };
546
846
  };
547
847
  };
@@ -0,0 +1,2 @@
1
+ import type { AuditLogEntry } from '@/types/audit-log';
2
+ export declare function hasFailedOperation(entry: Pick<AuditLogEntry, 'operations'>): boolean;
@@ -0,0 +1,11 @@
1
+ export type SnapshotDiffType = 'added' | 'removed' | 'changed';
2
+ export interface SnapshotDiffRow {
3
+ /** e.g. "name", "permissions[business::unitCostHistory]", "roles[0].roleId" */
4
+ path: string;
5
+ type: SnapshotDiffType;
6
+ /** null = value absent on the before side (render as em dash by caller) */
7
+ before: string | null;
8
+ /** null = value absent on the after side */
9
+ after: string | null;
10
+ }
11
+ export declare function computeSnapshotDiff(before: unknown, after: unknown): SnapshotDiffRow[];
@@ -113,7 +113,6 @@ export declare const i18nMessages: {
113
113
  maxValueIs: string;
114
114
  minValueIs: string;
115
115
  restaurant: string;
116
- v8OnlyReportTag: string;
117
116
  permissionLabels: {
118
117
  "order:discount": string;
119
118
  "order:changePrice": string;
@@ -319,7 +318,6 @@ export declare const i18nMessages: {
319
318
  maxValueIs: string;
320
319
  minValueIs: string;
321
320
  restaurant: string;
322
- v8OnlyReportTag: string;
323
321
  permissionLabels: {
324
322
  "order:discount": string;
325
323
  "order:changePrice": string;
@@ -525,7 +523,6 @@ export declare const i18nMessages: {
525
523
  maxValueIs: string;
526
524
  minValueIs: string;
527
525
  restaurant: string;
528
- v8OnlyReportTag: string;
529
526
  permissionLabels: {
530
527
  "order:discount": string;
531
528
  "order:changePrice": string;
@@ -730,7 +727,6 @@ export declare const i18nMessages: {
730
727
  maxValueIs: string;
731
728
  minValueIs: string;
732
729
  restaurant: string;
733
- v8OnlyReportTag: string;
734
730
  permissionLabels: {
735
731
  "order:discount": string;
736
732
  "order:changePrice": string;
package/dist/style.css CHANGED
@@ -1 +1 @@
1
- .employee-list-table[data-v-9cf34375] [class~=gap-24]>div:first-child{display:none}.timesheet-user-view[data-v-2c7a177a] .basis-72{display:none}.user-info-icon[data-v-827dfd60]{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-827dfd60]{height:2.25rem;width:2.25rem;border-radius:8px}.user-info-icon--lg[data-v-827dfd60]{height:48px;width:48px;border-radius:16px}.profile-menu[data-v-827dfd60]{width:280px;padding-top:12px;padding-bottom:12px}.profile-menu--profile[data-v-827dfd60]>: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-827dfd60]{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-827dfd60]{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-827dfd60],.profile-menu--profile .profile-phone[data-v-827dfd60]{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-list-table[data-v-ab237027] [class~=gap-24]>div:first-child{display:none}.audit-log-action-label[data-v-ab237027]{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[data-v-ab237027]::-webkit-scrollbar{display:none}.audit-log-operation-label-detail[data-v-ab237027]{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[data-v-ab237027]::-webkit-scrollbar{display:none}
1
+ .employee-list-table[data-v-9cf34375] [class~=gap-24]>div:first-child{display:none}.timesheet-user-view[data-v-2c7a177a] .basis-72{display:none}.user-info-icon[data-v-827dfd60]{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-827dfd60]{height:2.25rem;width:2.25rem;border-radius:8px}.user-info-icon--lg[data-v-827dfd60]{height:48px;width:48px;border-radius:16px}.profile-menu[data-v-827dfd60]{width:280px;padding-top:12px;padding-bottom:12px}.profile-menu--profile[data-v-827dfd60]>: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-827dfd60]{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-827dfd60]{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-827dfd60],.profile-menu--profile .profile-phone[data-v-827dfd60]{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-list-table[data-v-9d69ce94] [class~=gap-24]>div:first-child{display:none}.audit-log-list-table[data-v-9d69ce94] tr:has(.audit-op-marker){background-color:var(--fm-color-neutral-gray-100);border-top:1px solid var(--fm-color-neutral-gray-200)}.audit-log-list-table[data-v-9d69ce94] tr:has(.audit-op-marker):hover{background-color:#e8e8ed}.audit-log-action-label[data-v-9d69ce94]{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[data-v-9d69ce94]::-webkit-scrollbar{display:none}.audit-log-operation-label-detail[data-v-9d69ce94]{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[data-v-9d69ce94]::-webkit-scrollbar{display:none}