@feedmepos/mf-hrm-portal 2.1.0 → 2.1.1-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 (35) hide show
  1. package/dist/AuditLogList-Cvp-5_0y.js +1608 -0
  2. package/dist/{ConditionFormHost.vue_vue_type_script_setup_true_lang-CJEkZVoJ.js → ConditionFormHost.vue_vue_type_script_setup_true_lang-Cb8-YaiH.js} +2 -2
  3. package/dist/{EmployeeList-CckyPQlP.js → EmployeeList-DgrD3Hjm.js} +10 -9
  4. package/dist/{Main-BUvX24j0.js → Main-BLRr_ORG.js} +9 -9
  5. package/dist/{Main-BdPIZkik.js → Main-G3am-0Xi.js} +4 -4
  6. package/dist/{Main-C4cSWAts.js → Main-mTxcltDY.js} +6 -6
  7. package/dist/{PermissionSetList-CP8J9Prx.js → PermissionSetList-OzyfE-Yg.js} +6 -6
  8. package/dist/{PortalPermissionEditor.vue_vue_type_script_setup_true_lang-C7X69eQq.js → PortalPermissionEditor.vue_vue_type_script_setup_true_lang-Ca2NnAAF.js} +1308 -1308
  9. package/dist/{PortalUserSearcher.vue_vue_type_style_index_0_scoped_79737e32_lang-ZAEcrK9Q.js → PortalUserSearcher.vue_vue_type_style_index_0_scoped_79737e32_lang-Czo3FLbc.js} +1 -1
  10. package/dist/{RoleList-BHvGGF82.js → RoleList-DOZ5RJ6A.js} +8 -8
  11. package/dist/Skeleton.vue_vue_type_script_setup_true_lang-B4PxNMwq.js +16 -0
  12. package/dist/{TeamMemberList-DPkocw3U.js → TeamMemberList-CAqLUyQK.js} +24 -23
  13. package/dist/{TimesheetList-mOWHmWwo.js → TimesheetList-D21j4zLV.js} +6 -6
  14. package/dist/{TimesheetList.vue_vue_type_style_index_0_scoped_2c7a177a_lang-CpUHcGUj.js → TimesheetList.vue_vue_type_style_index_0_scoped_2c7a177a_lang-CRmmIfTk.js} +2 -2
  15. package/dist/{app-DnaRDAJY.js → app-CX-St7pv.js} +596 -300
  16. package/dist/app.js +1 -1
  17. package/dist/{dayjs.min-NAaPKajp.js → dayjs.min-MDoe5X-P.js} +1 -1
  18. package/dist/{employee-CILPIL-b.js → employee-B2cdx2t4.js} +3 -3
  19. package/dist/{iteration-B7PEDIWb.js → iteration-B38iapI_.js} +3 -3
  20. package/dist/{lodash-CgE5OnVa.js → lodash-DZAGPZLQ.js} +1 -1
  21. package/dist/{rule-BmSYQ3Op.js → rule-DftQBR76.js} +2 -2
  22. package/dist/src/api/audit-log/index.d.ts +6 -0
  23. package/dist/src/types/audit-log.d.ts +1 -1
  24. package/dist/src/views/audit-log/event-line.d.ts +13 -0
  25. package/dist/src/views/audit-log/locales/index.d.ts +296 -0
  26. package/dist/src/views/audit-log/snapshot-diff.d.ts +11 -0
  27. package/dist/style.css +1 -1
  28. package/dist/tsconfig.app.tsbuildinfo +1 -1
  29. package/dist/{useAppStore-DMmL9JnJ.js → useAppStore-BBsP5C3E.js} +1 -1
  30. package/dist/useDebounce-B8ZPVS5C.js +15 -0
  31. package/dist/{useLoading-D56E7ykF.js → useLoading-qgSjOzRD.js} +1 -1
  32. package/dist/{useReportPermissions-BKj02rVj.js → useReportPermissions-CIhkjN3B.js} +3 -3
  33. package/package.json +1 -1
  34. package/dist/AuditLogList-Rrg_dNYp.js +0 -1149
  35. package/dist/useDebounce-CWb5QR9G.js +0 -28
package/dist/app.js CHANGED
@@ -1,4 +1,4 @@
1
- import { j as e, i as r, r as o } from "./app-DnaRDAJY.js";
1
+ import { j as e, i as r, r as o } from "./app-CX-St7pv.js";
2
2
  export {
3
3
  e as FmApp,
4
4
  r as i18nMessages,
@@ -1,4 +1,4 @@
1
- import { g as Q, c as K } from "./app-DnaRDAJY.js";
1
+ import { g as Q, c as K } from "./app-CX-St7pv.js";
2
2
  var E = { exports: {} };
3
3
  (function(V, X) {
4
4
  (function(W, k) {
@@ -1,9 +1,9 @@
1
- import { d as g } from "./dayjs.min-NAaPKajp.js";
1
+ import { d as g } from "./dayjs.min-MDoe5X-P.js";
2
2
  import { defineStore as $, storeToRefs as T } from "pinia";
3
3
  import { ref as m } from "vue";
4
- import { b as l, g as f, u as w, s as E } from "./iteration-B7PEDIWb.js";
4
+ import { b as l, g as f, u as w, s as E } from "./iteration-B38iapI_.js";
5
5
  import { i as v } from "./utils-BZkjJbju.js";
6
- import { u as _ } from "./useAppStore-DMmL9JnJ.js";
6
+ import { u as _ } from "./useAppStore-BBsP5C3E.js";
7
7
  const o = {
8
8
  async readEmployees() {
9
9
  return f(await l().get("/pos-users"));
@@ -1,7 +1,7 @@
1
1
  import { defineStore as Gs, storeToRefs as Hs } from "pinia";
2
2
  import { ref as eo } from "vue";
3
3
  import { useCoreStore as ui, baseClientInstance as Dr, FeedMeAuth as qs } from "@feedmepos/mf-common";
4
- import { c as U } from "./app-DnaRDAJY.js";
4
+ import { c as U } from "./app-CX-St7pv.js";
5
5
  function Ur(e, n) {
6
6
  return function() {
7
7
  return e.apply(n, arguments);
@@ -1820,9 +1820,9 @@ const sa = (e) => (n) => {
1820
1820
  throw new Error("Invalid business");
1821
1821
  }, Vc = () => {
1822
1822
  var a;
1823
- const n = (a = ui().currentCountry.value) == null ? void 0 : a.toLowerCase(), i = "feedmeapi.com", o = !n || n === "my" ? `https://query-engine.${i}` : `https://query-engine.${n}.${i}`;
1823
+ const n = (a = ui().currentCountry.value) == null ? void 0 : a.toLowerCase(), i = "feedmeapidev.com", o = !n || n === "my" ? `https://query-engine.${i}` : `https://query-engine.${n}.${i}`;
1824
1824
  return sa(o)("");
1825
- }, Zc = () => sa("https://account.feedme.cc/api")(""), Yc = () => Dr("user/bypass/validate/");
1825
+ }, Zc = () => sa("https://account.feedmedev.cc/api")(""), Yc = () => Dr("user/bypass/validate/");
1826
1826
  function vl(e) {
1827
1827
  return e.data;
1828
1828
  }
@@ -1,4 +1,4 @@
1
- import { c as jt } from "./app-DnaRDAJY.js";
1
+ import { c as jt } from "./app-CX-St7pv.js";
2
2
  var Jr = { exports: {} };
3
3
  /**
4
4
  * @license
@@ -1,5 +1,5 @@
1
- import { g as b, b as v, q as F, u as Z, s as W, d as q, e as y } from "./iteration-B7PEDIWb.js";
2
- import { h as A, P as V, d as _, v as k, n as j, b as ee } from "./app-DnaRDAJY.js";
1
+ import { g as b, b as v, q as F, u as Z, s as W, d as q, e as y } from "./iteration-B38iapI_.js";
2
+ import { h as A, P as V, d as _, v as k, n as j, b as ee } from "./app-CX-St7pv.js";
3
3
  import { s as ne } from "./utils-BZkjJbju.js";
4
4
  import { defineStore as z, storeToRefs as K } from "pinia";
5
5
  import { ref as S, computed as U } from "vue";
@@ -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,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,77 @@ 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
+ sheetHeader: string;
146
+ entity: string;
147
+ duration: string;
148
+ durationValue: string;
149
+ error: string;
150
+ changes: string;
151
+ showData: string;
152
+ added: string;
153
+ removed: string;
154
+ updated: string;
155
+ before: string;
156
+ after: string;
157
+ noChanges: string;
158
+ wholeValue: string;
159
+ };
160
+ event: {
161
+ sentence: {
162
+ "audit-log": {
163
+ view: string;
164
+ };
165
+ restaurant: {
166
+ list: string;
167
+ };
168
+ "permission-assignment": {
169
+ manage: string;
170
+ list: string;
171
+ view: string;
172
+ };
173
+ "permission-set": {
174
+ manage: string;
175
+ list: string;
176
+ view: string;
177
+ };
178
+ "portal-user": {
179
+ list: string;
180
+ "list-page": string;
181
+ view: string;
182
+ create: string;
183
+ update: string;
184
+ delete: string;
185
+ };
186
+ "pos-user": {
187
+ list: string;
188
+ "list-page": string;
189
+ create: string;
190
+ "sync-meta": string;
191
+ update: string;
192
+ migrate: string;
193
+ "generate-passcode": string;
194
+ };
195
+ "pos-master-user": {
196
+ create: string;
197
+ update: string;
198
+ delete: string;
199
+ };
200
+ "pos-role": {
201
+ list: string;
202
+ create: string;
203
+ update: string;
204
+ };
205
+ timesheet: {
206
+ view: string;
207
+ update: string;
208
+ };
209
+ };
210
+ };
137
211
  };
138
212
  };
139
213
  'zh-CN': {
@@ -154,6 +228,9 @@ export declare const i18nMessages: {
154
228
  dateRange: {
155
229
  placeholder: string;
156
230
  };
231
+ search: {
232
+ placeholder: string;
233
+ };
157
234
  user: {
158
235
  feedmeAdmin: string;
159
236
  };
@@ -270,6 +347,77 @@ export declare const i18nMessages: {
270
347
  requestPath: string;
271
348
  requestBody: string;
272
349
  };
350
+ operation: {
351
+ toggle: string;
352
+ rowHint: string;
353
+ unlabeled: string;
354
+ badge: string;
355
+ sheetHeader: string;
356
+ entity: string;
357
+ duration: string;
358
+ durationValue: string;
359
+ error: string;
360
+ changes: string;
361
+ showData: string;
362
+ added: string;
363
+ removed: string;
364
+ updated: string;
365
+ before: string;
366
+ after: string;
367
+ noChanges: string;
368
+ wholeValue: string;
369
+ };
370
+ event: {
371
+ sentence: {
372
+ "audit-log": {
373
+ view: string;
374
+ };
375
+ restaurant: {
376
+ list: string;
377
+ };
378
+ "permission-assignment": {
379
+ manage: string;
380
+ list: string;
381
+ view: string;
382
+ };
383
+ "permission-set": {
384
+ manage: string;
385
+ list: string;
386
+ view: string;
387
+ };
388
+ "portal-user": {
389
+ list: string;
390
+ "list-page": string;
391
+ view: string;
392
+ create: string;
393
+ update: string;
394
+ delete: string;
395
+ };
396
+ "pos-user": {
397
+ list: string;
398
+ "list-page": string;
399
+ create: string;
400
+ "sync-meta": string;
401
+ update: string;
402
+ migrate: string;
403
+ "generate-passcode": string;
404
+ };
405
+ "pos-master-user": {
406
+ create: string;
407
+ update: string;
408
+ delete: string;
409
+ };
410
+ "pos-role": {
411
+ list: string;
412
+ create: string;
413
+ update: string;
414
+ };
415
+ timesheet: {
416
+ view: string;
417
+ update: string;
418
+ };
419
+ };
420
+ };
273
421
  };
274
422
  };
275
423
  'th-TH': {
@@ -290,6 +438,9 @@ export declare const i18nMessages: {
290
438
  dateRange: {
291
439
  placeholder: string;
292
440
  };
441
+ search: {
442
+ placeholder: string;
443
+ };
293
444
  user: {
294
445
  feedmeAdmin: string;
295
446
  };
@@ -406,6 +557,77 @@ export declare const i18nMessages: {
406
557
  requestPath: string;
407
558
  requestBody: string;
408
559
  };
560
+ operation: {
561
+ toggle: string;
562
+ rowHint: string;
563
+ unlabeled: string;
564
+ badge: string;
565
+ sheetHeader: string;
566
+ entity: string;
567
+ duration: string;
568
+ durationValue: string;
569
+ error: string;
570
+ changes: string;
571
+ showData: string;
572
+ added: string;
573
+ removed: string;
574
+ updated: string;
575
+ before: string;
576
+ after: string;
577
+ noChanges: string;
578
+ wholeValue: string;
579
+ };
580
+ event: {
581
+ sentence: {
582
+ "audit-log": {
583
+ view: string;
584
+ };
585
+ restaurant: {
586
+ list: string;
587
+ };
588
+ "permission-assignment": {
589
+ manage: string;
590
+ list: string;
591
+ view: string;
592
+ };
593
+ "permission-set": {
594
+ manage: string;
595
+ list: string;
596
+ view: string;
597
+ };
598
+ "portal-user": {
599
+ list: string;
600
+ "list-page": string;
601
+ view: string;
602
+ create: string;
603
+ update: string;
604
+ delete: string;
605
+ };
606
+ "pos-user": {
607
+ list: string;
608
+ "list-page": string;
609
+ create: string;
610
+ "sync-meta": string;
611
+ update: string;
612
+ migrate: string;
613
+ "generate-passcode": string;
614
+ };
615
+ "pos-master-user": {
616
+ create: string;
617
+ update: string;
618
+ delete: string;
619
+ };
620
+ "pos-role": {
621
+ list: string;
622
+ create: string;
623
+ update: string;
624
+ };
625
+ timesheet: {
626
+ view: string;
627
+ update: string;
628
+ };
629
+ };
630
+ };
409
631
  };
410
632
  };
411
633
  'zh-Hant': {
@@ -426,6 +648,9 @@ export declare const i18nMessages: {
426
648
  dateRange: {
427
649
  placeholder: string;
428
650
  };
651
+ search: {
652
+ placeholder: string;
653
+ };
429
654
  user: {
430
655
  feedmeAdmin: string;
431
656
  };
@@ -542,6 +767,77 @@ export declare const i18nMessages: {
542
767
  requestPath: string;
543
768
  requestBody: string;
544
769
  };
770
+ operation: {
771
+ toggle: string;
772
+ rowHint: string;
773
+ unlabeled: string;
774
+ badge: string;
775
+ sheetHeader: string;
776
+ entity: string;
777
+ duration: string;
778
+ durationValue: string;
779
+ error: string;
780
+ changes: string;
781
+ showData: string;
782
+ added: string;
783
+ removed: string;
784
+ updated: string;
785
+ before: string;
786
+ after: string;
787
+ noChanges: string;
788
+ wholeValue: string;
789
+ };
790
+ event: {
791
+ sentence: {
792
+ "audit-log": {
793
+ view: string;
794
+ };
795
+ restaurant: {
796
+ list: string;
797
+ };
798
+ "permission-assignment": {
799
+ manage: string;
800
+ list: string;
801
+ view: string;
802
+ };
803
+ "permission-set": {
804
+ manage: string;
805
+ list: string;
806
+ view: string;
807
+ };
808
+ "portal-user": {
809
+ list: string;
810
+ "list-page": string;
811
+ view: string;
812
+ create: string;
813
+ update: string;
814
+ delete: string;
815
+ };
816
+ "pos-user": {
817
+ list: string;
818
+ "list-page": string;
819
+ create: string;
820
+ "sync-meta": string;
821
+ update: string;
822
+ migrate: string;
823
+ "generate-passcode": string;
824
+ };
825
+ "pos-master-user": {
826
+ create: string;
827
+ update: string;
828
+ delete: string;
829
+ };
830
+ "pos-role": {
831
+ list: string;
832
+ create: string;
833
+ update: string;
834
+ };
835
+ timesheet: {
836
+ view: string;
837
+ update: string;
838
+ };
839
+ };
840
+ };
545
841
  };
546
842
  };
547
843
  };
@@ -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-79737e32]{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-79737e32]{height:2.25rem;width:2.25rem;border-radius:8px}.user-info-icon--lg[data-v-79737e32]{height:48px;width:48px;border-radius:16px}.profile-menu[data-v-79737e32]{width:280px;padding-top:12px;padding-bottom:12px}.profile-menu--profile[data-v-79737e32]>: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-79737e32]{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-79737e32]{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-79737e32],.profile-menu--profile .profile-phone[data-v-79737e32]{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-79737e32]{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-79737e32]{height:2.25rem;width:2.25rem;border-radius:8px}.user-info-icon--lg[data-v-79737e32]{height:48px;width:48px;border-radius:16px}.profile-menu[data-v-79737e32]{width:280px;padding-top:12px;padding-bottom:12px}.profile-menu--profile[data-v-79737e32]>: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-79737e32]{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-79737e32]{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-79737e32],.profile-menu--profile .profile-phone[data-v-79737e32]{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-c4118552] [class~=gap-24]>div:first-child{display:none}.audit-log-list-table[data-v-c4118552] 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-c4118552] tr:has(.audit-op-marker):hover{background-color:#e8e8ed}.audit-log-action-label[data-v-c4118552]{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-c4118552]::-webkit-scrollbar{display:none}.audit-log-operation-label-detail[data-v-c4118552]{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-c4118552]::-webkit-scrollbar{display:none}