@feedmepos/mf-hrm-portal 2.2.2 → 2.2.3

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 (39) hide show
  1. package/dist/{ApprovalCodeList-Dpg-lwZA.js → ApprovalCodeList-BnG3T_Lk.js} +2 -2
  2. package/dist/AuditLogList-CpK9-YkB.js +1776 -0
  3. package/dist/{ConditionBuilderForm.vue_vue_type_script_setup_true_lang-Di-1ZwEW.js → ConditionBuilderForm.vue_vue_type_script_setup_true_lang-CzKzq19d.js} +2 -2
  4. package/dist/{EmployeeList-ByeniR1c.js → EmployeeList-CUsRanu7.js} +8 -7
  5. package/dist/{GrantUserList-D0YIdpMH.js → GrantUserList-BJoj3ZcO.js} +3 -3
  6. package/dist/{Main-Bg0Najd8.js → Main-5QLhf80L.js} +5 -5
  7. package/dist/{Main-CTsTrR0m.js → Main-BEUu3Hba.js} +2 -2
  8. package/dist/{Main-C9-EztWV.js → Main-FPpK9B70.js} +9 -9
  9. package/dist/{PermissionSetList-CqVP3iB8.js → PermissionSetList-DZGZ0Pm_.js} +5 -5
  10. package/dist/{PortalPermissionEditor.vue_vue_type_script_setup_true_lang-CXNhJDfA.js → PortalPermissionEditor.vue_vue_type_script_setup_true_lang-BHEW1_dv.js} +1122 -1122
  11. package/dist/{RoleList-CQuV9O_f.js → RoleList-D5yToard.js} +41 -41
  12. package/dist/Skeleton.vue_vue_type_script_setup_true_lang-B4PxNMwq.js +16 -0
  13. package/dist/{TeamMemberList-DNitiMN5.js → TeamMemberList-C4-AHxO4.js} +22 -21
  14. package/dist/{TimesheetList-DYJsjODe.js → TimesheetList-DMo8KXoU.js} +5 -5
  15. package/dist/{TimesheetList.vue_vue_type_style_index_0_scoped_2c7a177a_lang-DWKJIq76.js → TimesheetList.vue_vue_type_style_index_0_scoped_2c7a177a_lang-2KHu-f8U.js} +2 -2
  16. package/dist/{app-BJKd6Faz.js → app-DlSD8S9A.js} +3032 -2324
  17. package/dist/app.js +1 -1
  18. package/dist/{dayjs.min-D8ClaZcZ.js → dayjs.min-DcI2auGP.js} +1 -1
  19. package/dist/{employee-C9VVckRM.js → employee-C_cvCoHM.js} +3 -3
  20. package/dist/{iteration-CMXHdaKL.js → iteration-DSzPQ0fZ.js} +1 -1
  21. package/dist/{lodash-0-Y1xSyQ.js → lodash-Ce0IJ8Y3.js} +1 -1
  22. package/dist/{role-B-Y4JezP.js → role-DkTkfUgR.js} +1 -1
  23. package/dist/rule-B-REsmVM.js +771 -0
  24. package/dist/src/api/audit-log/index.d.ts +6 -0
  25. package/dist/src/types/audit-log.d.ts +1 -1
  26. package/dist/src/views/audit-log/change-nodes.d.ts +14 -0
  27. package/dist/src/views/audit-log/event-line.d.ts +13 -0
  28. package/dist/src/views/audit-log/export-lines.d.ts +8 -0
  29. package/dist/src/views/audit-log/locales/index.d.ts +356 -0
  30. package/dist/src/views/audit-log/operation-status.d.ts +2 -0
  31. package/dist/src/views/audit-log/snapshot-diff.d.ts +11 -0
  32. package/dist/style.css +1 -1
  33. package/dist/tsconfig.app.tsbuildinfo +1 -1
  34. package/dist/useDebounce-B8ZPVS5C.js +15 -0
  35. package/dist/{useReportPermissions-C5_EivtU.js → useReportPermissions-VCzAQXKz.js} +5 -5
  36. package/package.json +2 -2
  37. package/dist/AuditLogList-B8lU5FU1.js +0 -1149
  38. package/dist/rule-raGIIqlH.js +0 -1121
  39. package/dist/useDebounce-CWb5QR9G.js +0 -28
@@ -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 +1 @@
1
- export type { AuditLogEntry, AuditLogMetadata, AuditLogOutcome, AuditLogResolvedFrom } from '@feedmepos/hrm-permission';
1
+ export type { AuditLogEntry, AuditLogMetadata, AuditLogOperation, AuditLogOutcome, AuditLogResolvedFrom, } from '@feedmepos/hrm-permission';
@@ -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 {};
@@ -0,0 +1,8 @@
1
+ import type { AuditLogOperation, ChangeNode } from '@feedmepos/hrm-permission';
2
+ type Translate = (key: string, params?: Record<string, unknown>) => string;
3
+ type TranslationExists = (key: string) => boolean;
4
+ /** Resolve label with i18n fallback: use labelKey if available and translatable, else label. */
5
+ export declare function resolveChangeNodeLabel(t: Translate, te: TranslationExists, node: Pick<ChangeNode, 'label' | 'labelKey'>): string;
6
+ export declare function formatOperationEventLines(t: Translate, operations: AuditLogOperation[] | undefined): string;
7
+ export declare function formatChangeLines(t: Translate, te: TranslationExists, operations: AuditLogOperation[] | undefined): string;
8
+ 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
  };
@@ -92,12 +95,15 @@ export declare const i18nMessages: {
92
95
  action: string;
93
96
  operation: string;
94
97
  outcome: string;
98
+ operationEvents: string;
99
+ changes: string;
95
100
  businessId: string;
96
101
  restaurantId: string;
97
102
  country: string;
98
103
  resolvedFrom: string;
99
104
  requestMethod: string;
100
105
  requestPath: string;
106
+ traceId: string;
101
107
  };
102
108
  detail: {
103
109
  header: string;
@@ -134,6 +140,89 @@ export declare const i18nMessages: {
134
140
  requestPath: string;
135
141
  requestBody: string;
136
142
  };
143
+ operation: {
144
+ toggle: string;
145
+ rowHint: string;
146
+ unlabeled: string;
147
+ badge: string;
148
+ partialFailure: string;
149
+ sheetHeader: string;
150
+ entity: string;
151
+ duration: string;
152
+ durationValue: string;
153
+ error: string;
154
+ changes: string;
155
+ showData: string;
156
+ added: string;
157
+ removed: string;
158
+ updated: string;
159
+ before: string;
160
+ after: string;
161
+ noChanges: string;
162
+ wholeValue: string;
163
+ };
164
+ event: {
165
+ sentence: {
166
+ restaurant: {
167
+ list: string;
168
+ };
169
+ "permission-assignment": {
170
+ manage: string;
171
+ list: string;
172
+ view: string;
173
+ create: string;
174
+ update: string;
175
+ delete: string;
176
+ };
177
+ "permission-set": {
178
+ manage: string;
179
+ list: string;
180
+ view: string;
181
+ create: string;
182
+ update: string;
183
+ delete: string;
184
+ };
185
+ "grant-user": {
186
+ create: string;
187
+ revoke: string;
188
+ };
189
+ "approval-code": {
190
+ create: string;
191
+ revoke: string;
192
+ };
193
+ "portal-user": {
194
+ list: string;
195
+ "list-page": string;
196
+ view: string;
197
+ create: string;
198
+ update: string;
199
+ delete: string;
200
+ };
201
+ "pos-user": {
202
+ list: string;
203
+ "list-page": string;
204
+ create: string;
205
+ "sync-meta": string;
206
+ update: string;
207
+ migrate: string;
208
+ "generate-passcode": string;
209
+ };
210
+ "pos-master-user": {
211
+ create: string;
212
+ update: string;
213
+ delete: string;
214
+ };
215
+ "pos-role": {
216
+ list: string;
217
+ create: string;
218
+ update: string;
219
+ };
220
+ timesheet: {
221
+ view: string;
222
+ update: string;
223
+ };
224
+ };
225
+ };
137
226
  };
138
227
  };
139
228
  'zh-CN': {
@@ -154,6 +243,9 @@ export declare const i18nMessages: {
154
243
  dateRange: {
155
244
  placeholder: string;
156
245
  };
246
+ search: {
247
+ placeholder: string;
248
+ };
157
249
  user: {
158
250
  feedmeAdmin: string;
159
251
  };
@@ -227,12 +319,15 @@ export declare const i18nMessages: {
227
319
  action: string;
228
320
  operation: string;
229
321
  outcome: string;
322
+ operationEvents: string;
323
+ changes: string;
230
324
  businessId: string;
231
325
  restaurantId: string;
232
326
  country: string;
233
327
  resolvedFrom: string;
234
328
  requestMethod: string;
235
329
  requestPath: string;
330
+ traceId: string;
236
331
  };
237
332
  detail: {
238
333
  header: string;
@@ -270,6 +365,89 @@ export declare const i18nMessages: {
270
365
  requestPath: string;
271
366
  requestBody: string;
272
367
  };
368
+ operation: {
369
+ toggle: string;
370
+ rowHint: string;
371
+ unlabeled: string;
372
+ badge: string;
373
+ partialFailure: string;
374
+ sheetHeader: string;
375
+ entity: string;
376
+ duration: string;
377
+ durationValue: string;
378
+ error: string;
379
+ changes: string;
380
+ showData: string;
381
+ added: string;
382
+ removed: string;
383
+ updated: string;
384
+ before: string;
385
+ after: string;
386
+ noChanges: string;
387
+ wholeValue: string;
388
+ };
389
+ event: {
390
+ sentence: {
391
+ restaurant: {
392
+ list: string;
393
+ };
394
+ "permission-assignment": {
395
+ manage: string;
396
+ list: string;
397
+ view: string;
398
+ create: string;
399
+ update: string;
400
+ delete: string;
401
+ };
402
+ "permission-set": {
403
+ manage: string;
404
+ list: string;
405
+ view: string;
406
+ create: string;
407
+ update: string;
408
+ delete: string;
409
+ };
410
+ "grant-user": {
411
+ create: string;
412
+ revoke: string;
413
+ };
414
+ "approval-code": {
415
+ create: string;
416
+ revoke: string;
417
+ };
418
+ "portal-user": {
419
+ list: string;
420
+ "list-page": string;
421
+ view: string;
422
+ create: string;
423
+ update: string;
424
+ delete: string;
425
+ };
426
+ "pos-user": {
427
+ list: string;
428
+ "list-page": string;
429
+ create: string;
430
+ "sync-meta": string;
431
+ update: string;
432
+ migrate: string;
433
+ "generate-passcode": string;
434
+ };
435
+ "pos-master-user": {
436
+ create: string;
437
+ update: string;
438
+ delete: string;
439
+ };
440
+ "pos-role": {
441
+ list: string;
442
+ create: string;
443
+ update: string;
444
+ };
445
+ timesheet: {
446
+ view: string;
447
+ update: string;
448
+ };
449
+ };
450
+ };
273
451
  };
274
452
  };
275
453
  'th-TH': {
@@ -290,6 +468,9 @@ export declare const i18nMessages: {
290
468
  dateRange: {
291
469
  placeholder: string;
292
470
  };
471
+ search: {
472
+ placeholder: string;
473
+ };
293
474
  user: {
294
475
  feedmeAdmin: string;
295
476
  };
@@ -363,12 +544,15 @@ export declare const i18nMessages: {
363
544
  action: string;
364
545
  operation: string;
365
546
  outcome: string;
547
+ operationEvents: string;
548
+ changes: string;
366
549
  businessId: string;
367
550
  restaurantId: string;
368
551
  country: string;
369
552
  resolvedFrom: string;
370
553
  requestMethod: string;
371
554
  requestPath: string;
555
+ traceId: string;
372
556
  };
373
557
  detail: {
374
558
  header: string;
@@ -406,6 +590,89 @@ export declare const i18nMessages: {
406
590
  requestPath: string;
407
591
  requestBody: string;
408
592
  };
593
+ operation: {
594
+ toggle: string;
595
+ rowHint: string;
596
+ unlabeled: string;
597
+ badge: string;
598
+ partialFailure: string;
599
+ sheetHeader: string;
600
+ entity: string;
601
+ duration: string;
602
+ durationValue: string;
603
+ error: string;
604
+ changes: string;
605
+ showData: string;
606
+ added: string;
607
+ removed: string;
608
+ updated: string;
609
+ before: string;
610
+ after: string;
611
+ noChanges: string;
612
+ wholeValue: string;
613
+ };
614
+ event: {
615
+ sentence: {
616
+ restaurant: {
617
+ list: string;
618
+ };
619
+ "permission-assignment": {
620
+ manage: string;
621
+ list: string;
622
+ view: string;
623
+ create: string;
624
+ update: string;
625
+ delete: string;
626
+ };
627
+ "permission-set": {
628
+ manage: string;
629
+ list: string;
630
+ view: string;
631
+ create: string;
632
+ update: string;
633
+ delete: string;
634
+ };
635
+ "grant-user": {
636
+ create: string;
637
+ revoke: string;
638
+ };
639
+ "approval-code": {
640
+ create: string;
641
+ revoke: string;
642
+ };
643
+ "portal-user": {
644
+ list: string;
645
+ "list-page": string;
646
+ view: string;
647
+ create: string;
648
+ update: string;
649
+ delete: string;
650
+ };
651
+ "pos-user": {
652
+ list: string;
653
+ "list-page": string;
654
+ create: string;
655
+ "sync-meta": string;
656
+ update: string;
657
+ migrate: string;
658
+ "generate-passcode": string;
659
+ };
660
+ "pos-master-user": {
661
+ create: string;
662
+ update: string;
663
+ delete: string;
664
+ };
665
+ "pos-role": {
666
+ list: string;
667
+ create: string;
668
+ update: string;
669
+ };
670
+ timesheet: {
671
+ view: string;
672
+ update: string;
673
+ };
674
+ };
675
+ };
409
676
  };
410
677
  };
411
678
  'zh-Hant': {
@@ -426,6 +693,9 @@ export declare const i18nMessages: {
426
693
  dateRange: {
427
694
  placeholder: string;
428
695
  };
696
+ search: {
697
+ placeholder: string;
698
+ };
429
699
  user: {
430
700
  feedmeAdmin: string;
431
701
  };
@@ -499,12 +769,15 @@ export declare const i18nMessages: {
499
769
  action: string;
500
770
  operation: string;
501
771
  outcome: string;
772
+ operationEvents: string;
773
+ changes: string;
502
774
  businessId: string;
503
775
  restaurantId: string;
504
776
  country: string;
505
777
  resolvedFrom: string;
506
778
  requestMethod: string;
507
779
  requestPath: string;
780
+ traceId: string;
508
781
  };
509
782
  detail: {
510
783
  header: string;
@@ -542,6 +815,89 @@ export declare const i18nMessages: {
542
815
  requestPath: string;
543
816
  requestBody: string;
544
817
  };
818
+ operation: {
819
+ toggle: string;
820
+ rowHint: string;
821
+ unlabeled: string;
822
+ badge: string;
823
+ partialFailure: string;
824
+ sheetHeader: string;
825
+ entity: string;
826
+ duration: string;
827
+ durationValue: string;
828
+ error: string;
829
+ changes: string;
830
+ showData: string;
831
+ added: string;
832
+ removed: string;
833
+ updated: string;
834
+ before: string;
835
+ after: string;
836
+ noChanges: string;
837
+ wholeValue: string;
838
+ };
839
+ event: {
840
+ sentence: {
841
+ restaurant: {
842
+ list: string;
843
+ };
844
+ "permission-assignment": {
845
+ manage: string;
846
+ list: string;
847
+ view: string;
848
+ create: string;
849
+ update: string;
850
+ delete: string;
851
+ };
852
+ "permission-set": {
853
+ manage: string;
854
+ list: string;
855
+ view: string;
856
+ create: string;
857
+ update: string;
858
+ delete: string;
859
+ };
860
+ "grant-user": {
861
+ create: string;
862
+ revoke: string;
863
+ };
864
+ "approval-code": {
865
+ create: string;
866
+ revoke: string;
867
+ };
868
+ "portal-user": {
869
+ list: string;
870
+ "list-page": string;
871
+ view: string;
872
+ create: string;
873
+ update: string;
874
+ delete: string;
875
+ };
876
+ "pos-user": {
877
+ list: string;
878
+ "list-page": string;
879
+ create: string;
880
+ "sync-meta": string;
881
+ update: string;
882
+ migrate: string;
883
+ "generate-passcode": string;
884
+ };
885
+ "pos-master-user": {
886
+ create: string;
887
+ update: string;
888
+ delete: string;
889
+ };
890
+ "pos-role": {
891
+ list: string;
892
+ create: string;
893
+ update: string;
894
+ };
895
+ timesheet: {
896
+ view: string;
897
+ update: string;
898
+ };
899
+ };
900
+ };
545
901
  };
546
902
  };
547
903
  };
@@ -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[];
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-8abe880c] [class~=gap-24]>div:first-child{display:none}.audit-log-list-table[data-v-8abe880c] 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-8abe880c] tr:has(.audit-op-marker):hover{background-color:#e8e8ed}.audit-log-action-label[data-v-8abe880c]{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-8abe880c]::-webkit-scrollbar{display:none}.audit-log-operation-label-detail[data-v-8abe880c]{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-8abe880c]::-webkit-scrollbar{display:none}