@vuetify/nightly 3.9.2-dev.2025-07-18 → 3.9.2-master.2025-07-22

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 (57) hide show
  1. package/CHANGELOG.md +16 -14
  2. package/dist/json/attributes.json +2954 -2974
  3. package/dist/json/importMap-labs.json +22 -22
  4. package/dist/json/importMap.json +184 -184
  5. package/dist/json/tags.json +0 -5
  6. package/dist/json/web-types.json +5821 -5891
  7. package/dist/vuetify-labs.cjs +27 -216
  8. package/dist/vuetify-labs.css +5981 -5983
  9. package/dist/vuetify-labs.d.ts +67 -129
  10. package/dist/vuetify-labs.esm.js +27 -216
  11. package/dist/vuetify-labs.esm.js.map +1 -1
  12. package/dist/vuetify-labs.js +27 -216
  13. package/dist/vuetify-labs.min.css +2 -2
  14. package/dist/vuetify.cjs +18 -178
  15. package/dist/vuetify.cjs.map +1 -1
  16. package/dist/vuetify.css +3778 -3780
  17. package/dist/vuetify.d.ts +67 -119
  18. package/dist/vuetify.esm.js +18 -178
  19. package/dist/vuetify.esm.js.map +1 -1
  20. package/dist/vuetify.js +18 -178
  21. package/dist/vuetify.js.map +1 -1
  22. package/dist/vuetify.min.css +2 -2
  23. package/dist/vuetify.min.js +701 -723
  24. package/dist/vuetify.min.js.map +1 -1
  25. package/lib/components/VAutocomplete/VAutocomplete.js +0 -1
  26. package/lib/components/VAutocomplete/VAutocomplete.js.map +1 -1
  27. package/lib/components/VCombobox/VCombobox.js +0 -1
  28. package/lib/components/VCombobox/VCombobox.js.map +1 -1
  29. package/lib/components/VFileInput/VFileInput.d.ts +0 -15
  30. package/lib/components/VFileInput/VFileInput.js +9 -38
  31. package/lib/components/VFileInput/VFileInput.js.map +1 -1
  32. package/lib/components/VList/VList.js +1 -2
  33. package/lib/components/VList/VList.js.map +1 -1
  34. package/lib/components/VList/VListItem.js +1 -7
  35. package/lib/components/VList/VListItem.js.map +1 -1
  36. package/lib/components/VProgressLinear/VProgressLinear.css +1 -1
  37. package/lib/components/VProgressLinear/VProgressLinear.d.ts +0 -75
  38. package/lib/components/VProgressLinear/VProgressLinear.js +6 -32
  39. package/lib/components/VProgressLinear/VProgressLinear.js.map +1 -1
  40. package/lib/components/VProgressLinear/VProgressLinear.sass +2 -2
  41. package/lib/components/VSelect/VSelect.js +0 -1
  42. package/lib/components/VSelect/VSelect.js.map +1 -1
  43. package/lib/entry-bundler.js +1 -1
  44. package/lib/entry-bundler.js.map +1 -1
  45. package/lib/framework.d.ts +67 -67
  46. package/lib/framework.js +1 -1
  47. package/lib/framework.js.map +1 -1
  48. package/lib/labs/VFileUpload/VFileUpload.d.ts +0 -15
  49. package/lib/labs/VFileUpload/VFileUpload.js +9 -39
  50. package/lib/labs/VFileUpload/VFileUpload.js.map +1 -1
  51. package/package.json +1 -1
  52. package/lib/components/VProgressLinear/chunks.d.ts +0 -55
  53. package/lib/components/VProgressLinear/chunks.js +0 -62
  54. package/lib/components/VProgressLinear/chunks.js.map +0 -1
  55. package/lib/composables/fileFilter.d.ts +0 -18
  56. package/lib/composables/fileFilter.js +0 -38
  57. package/lib/composables/fileFilter.js.map +0 -1
@@ -1,55 +0,0 @@
1
- import type { MaybeRefOrGetter } from 'vue';
2
- export interface ChunksProps {
3
- chunkCount: number | string;
4
- chunkWidth: number | string;
5
- chunkGap: number | string;
6
- }
7
- export declare const makeChunksProps: <Defaults extends {
8
- chunkCount?: unknown;
9
- chunkWidth?: unknown;
10
- chunkGap?: unknown;
11
- } = {}>(defaults?: Defaults | undefined) => {
12
- chunkCount: unknown extends Defaults["chunkCount"] ? {
13
- type: (StringConstructor | NumberConstructor)[];
14
- default: null;
15
- } : Omit<{
16
- type: (StringConstructor | NumberConstructor)[];
17
- default: null;
18
- }, "type" | "default"> & {
19
- type: import("vue").PropType<unknown extends Defaults["chunkCount"] ? string | number : string | number | Defaults["chunkCount"]>;
20
- default: unknown extends Defaults["chunkCount"] ? string | number : NonNullable<string | number> | Defaults["chunkCount"];
21
- };
22
- chunkWidth: unknown extends Defaults["chunkWidth"] ? {
23
- type: (StringConstructor | NumberConstructor)[];
24
- default: null;
25
- } : Omit<{
26
- type: (StringConstructor | NumberConstructor)[];
27
- default: null;
28
- }, "type" | "default"> & {
29
- type: import("vue").PropType<unknown extends Defaults["chunkWidth"] ? string | number : string | number | Defaults["chunkWidth"]>;
30
- default: unknown extends Defaults["chunkWidth"] ? string | number : NonNullable<string | number> | Defaults["chunkWidth"];
31
- };
32
- chunkGap: unknown extends Defaults["chunkGap"] ? {
33
- type: (StringConstructor | NumberConstructor)[];
34
- default: number;
35
- } : Omit<{
36
- type: (StringConstructor | NumberConstructor)[];
37
- default: number;
38
- }, "type" | "default"> & {
39
- type: import("vue").PropType<unknown extends Defaults["chunkGap"] ? string | number : string | number | Defaults["chunkGap"]>;
40
- default: unknown extends Defaults["chunkGap"] ? string | number : NonNullable<string | number> | Defaults["chunkGap"];
41
- };
42
- };
43
- export declare function useChunks(props: ChunksProps, containerWidth: MaybeRefOrGetter<number | undefined>): {
44
- hasChunks: Readonly<import("vue").Ref<boolean, boolean>>;
45
- chunksMaskStyles: import("vue").ComputedRef<{
46
- maskRepeat?: undefined;
47
- maskImage?: undefined;
48
- maskSize?: undefined;
49
- } | {
50
- maskRepeat: string;
51
- maskImage: string;
52
- maskSize: string;
53
- }>;
54
- snapValueToChunk: (val: number) => number;
55
- };
@@ -1,62 +0,0 @@
1
- // Utilities
2
- import { computed, toRef, toValue } from 'vue';
3
- import { clamp, convertToUnit, propsFactory } from "../../util/index.js"; // Types
4
- // Composables
5
- export const makeChunksProps = propsFactory({
6
- chunkCount: {
7
- type: [Number, String],
8
- default: null
9
- },
10
- chunkWidth: {
11
- type: [Number, String],
12
- default: null
13
- },
14
- chunkGap: {
15
- type: [Number, String],
16
- default: 4
17
- }
18
- }, 'chunks');
19
- export function useChunks(props, containerWidth) {
20
- const hasChunks = toRef(() => !!props.chunkCount || !!props.chunkWidth);
21
- const chunkWidth = computed(() => {
22
- const containerSize = toValue(containerWidth);
23
- if (!containerSize) {
24
- return 0;
25
- }
26
- if (!props.chunkCount) {
27
- return Number(props.chunkWidth);
28
- }
29
- const count = Number(props.chunkCount);
30
- const availableWidth = containerSize - Number(props.chunkGap) * (count - 1);
31
- return availableWidth / count;
32
- });
33
- const chunkGap = toRef(() => Number(props.chunkGap));
34
- const chunksMaskStyles = computed(() => {
35
- if (!hasChunks.value) {
36
- return {};
37
- }
38
- const chunkGapPx = convertToUnit(chunkGap.value);
39
- const chunkWidthPx = convertToUnit(chunkWidth.value);
40
- return {
41
- maskRepeat: 'repeat-x',
42
- maskImage: `linear-gradient(90deg, #000, #000 ${chunkWidthPx}, transparent ${chunkWidthPx}, transparent)`,
43
- maskSize: `calc(${chunkWidthPx} + ${chunkGapPx}) 100%`
44
- };
45
- });
46
- function snapValueToChunk(val) {
47
- const containerSize = toValue(containerWidth);
48
- if (!containerSize) {
49
- return val;
50
- }
51
- const gapRelativeSize = 100 * chunkGap.value / containerSize;
52
- const chunkRelativeSize = 100 * (chunkWidth.value + chunkGap.value) / containerSize;
53
- const filledChunks = Math.floor((val + gapRelativeSize) / chunkRelativeSize);
54
- return clamp(0, filledChunks * chunkRelativeSize - gapRelativeSize / 2, 100);
55
- }
56
- return {
57
- hasChunks,
58
- chunksMaskStyles,
59
- snapValueToChunk
60
- };
61
- }
62
- //# sourceMappingURL=chunks.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"chunks.js","names":["computed","toRef","toValue","clamp","convertToUnit","propsFactory","makeChunksProps","chunkCount","type","Number","String","default","chunkWidth","chunkGap","useChunks","props","containerWidth","hasChunks","containerSize","count","availableWidth","chunksMaskStyles","value","chunkGapPx","chunkWidthPx","maskRepeat","maskImage","maskSize","snapValueToChunk","val","gapRelativeSize","chunkRelativeSize","filledChunks","Math","floor"],"sources":["../../../src/components/VProgressLinear/chunks.ts"],"sourcesContent":["// Utilities\nimport { computed, toRef, toValue } from 'vue'\nimport { clamp, convertToUnit, propsFactory } from '@/util'\n\n// Types\nimport type { MaybeRefOrGetter } from 'vue'\n\nexport interface ChunksProps {\n chunkCount: number | string\n chunkWidth: number | string\n chunkGap: number | string\n}\n\n// Composables\nexport const makeChunksProps = propsFactory({\n chunkCount: {\n type: [Number, String],\n default: null,\n },\n chunkWidth: {\n type: [Number, String],\n default: null,\n },\n chunkGap: {\n type: [Number, String],\n default: 4,\n },\n}, 'chunks')\n\nexport function useChunks (\n props: ChunksProps,\n containerWidth: MaybeRefOrGetter<number | undefined>,\n) {\n const hasChunks = toRef(() => !!props.chunkCount || !!props.chunkWidth)\n\n const chunkWidth = computed(() => {\n const containerSize = toValue(containerWidth)\n if (!containerSize) {\n return 0\n }\n\n if (!props.chunkCount) {\n return Number(props.chunkWidth)\n }\n\n const count = Number(props.chunkCount)\n const availableWidth = containerSize - Number(props.chunkGap) * (count - 1)\n return availableWidth / count\n })\n\n const chunkGap = toRef(() => Number(props.chunkGap))\n const chunksMaskStyles = computed(() => {\n if (!hasChunks.value) {\n return {}\n }\n\n const chunkGapPx = convertToUnit(chunkGap.value)\n const chunkWidthPx = convertToUnit(chunkWidth.value)\n\n return {\n maskRepeat: 'repeat-x',\n maskImage: `linear-gradient(90deg, #000, #000 ${chunkWidthPx}, transparent ${chunkWidthPx}, transparent)`,\n maskSize: `calc(${chunkWidthPx} + ${chunkGapPx}) 100%`,\n }\n })\n\n function snapValueToChunk (val: number) {\n const containerSize = toValue(containerWidth)\n if (!containerSize) {\n return val\n }\n\n const gapRelativeSize = 100 * chunkGap.value / containerSize\n const chunkRelativeSize = 100 * (chunkWidth.value + chunkGap.value) / containerSize\n const filledChunks = Math.floor((val + gapRelativeSize) / chunkRelativeSize)\n return clamp(0, filledChunks * chunkRelativeSize - gapRelativeSize / 2, 100)\n }\n\n return {\n hasChunks,\n chunksMaskStyles,\n snapValueToChunk,\n }\n}\n"],"mappings":"AAAA;AACA,SAASA,QAAQ,EAAEC,KAAK,EAAEC,OAAO,QAAQ,KAAK;AAAA,SACrCC,KAAK,EAAEC,aAAa,EAAEC,YAAY,+BAE3C;AASA;AACA,OAAO,MAAMC,eAAe,GAAGD,YAAY,CAAC;EAC1CE,UAAU,EAAE;IACVC,IAAI,EAAE,CAACC,MAAM,EAAEC,MAAM,CAAC;IACtBC,OAAO,EAAE;EACX,CAAC;EACDC,UAAU,EAAE;IACVJ,IAAI,EAAE,CAACC,MAAM,EAAEC,MAAM,CAAC;IACtBC,OAAO,EAAE;EACX,CAAC;EACDE,QAAQ,EAAE;IACRL,IAAI,EAAE,CAACC,MAAM,EAAEC,MAAM,CAAC;IACtBC,OAAO,EAAE;EACX;AACF,CAAC,EAAE,QAAQ,CAAC;AAEZ,OAAO,SAASG,SAASA,CACvBC,KAAkB,EAClBC,cAAoD,EACpD;EACA,MAAMC,SAAS,GAAGhB,KAAK,CAAC,MAAM,CAAC,CAACc,KAAK,CAACR,UAAU,IAAI,CAAC,CAACQ,KAAK,CAACH,UAAU,CAAC;EAEvE,MAAMA,UAAU,GAAGZ,QAAQ,CAAC,MAAM;IAChC,MAAMkB,aAAa,GAAGhB,OAAO,CAACc,cAAc,CAAC;IAC7C,IAAI,CAACE,aAAa,EAAE;MAClB,OAAO,CAAC;IACV;IAEA,IAAI,CAACH,KAAK,CAACR,UAAU,EAAE;MACrB,OAAOE,MAAM,CAACM,KAAK,CAACH,UAAU,CAAC;IACjC;IAEA,MAAMO,KAAK,GAAGV,MAAM,CAACM,KAAK,CAACR,UAAU,CAAC;IACtC,MAAMa,cAAc,GAAGF,aAAa,GAAGT,MAAM,CAACM,KAAK,CAACF,QAAQ,CAAC,IAAIM,KAAK,GAAG,CAAC,CAAC;IAC3E,OAAOC,cAAc,GAAGD,KAAK;EAC/B,CAAC,CAAC;EAEF,MAAMN,QAAQ,GAAGZ,KAAK,CAAC,MAAMQ,MAAM,CAACM,KAAK,CAACF,QAAQ,CAAC,CAAC;EACpD,MAAMQ,gBAAgB,GAAGrB,QAAQ,CAAC,MAAM;IACtC,IAAI,CAACiB,SAAS,CAACK,KAAK,EAAE;MACpB,OAAO,CAAC,CAAC;IACX;IAEA,MAAMC,UAAU,GAAGnB,aAAa,CAACS,QAAQ,CAACS,KAAK,CAAC;IAChD,MAAME,YAAY,GAAGpB,aAAa,CAACQ,UAAU,CAACU,KAAK,CAAC;IAEpD,OAAO;MACLG,UAAU,EAAE,UAAU;MACtBC,SAAS,EAAE,qCAAqCF,YAAY,iBAAiBA,YAAY,gBAAgB;MACzGG,QAAQ,EAAE,QAAQH,YAAY,MAAMD,UAAU;IAChD,CAAC;EACH,CAAC,CAAC;EAEF,SAASK,gBAAgBA,CAAEC,GAAW,EAAE;IACtC,MAAMX,aAAa,GAAGhB,OAAO,CAACc,cAAc,CAAC;IAC7C,IAAI,CAACE,aAAa,EAAE;MAClB,OAAOW,GAAG;IACZ;IAEA,MAAMC,eAAe,GAAG,GAAG,GAAGjB,QAAQ,CAACS,KAAK,GAAGJ,aAAa;IAC5D,MAAMa,iBAAiB,GAAG,GAAG,IAAInB,UAAU,CAACU,KAAK,GAAGT,QAAQ,CAACS,KAAK,CAAC,GAAGJ,aAAa;IACnF,MAAMc,YAAY,GAAGC,IAAI,CAACC,KAAK,CAAC,CAACL,GAAG,GAAGC,eAAe,IAAIC,iBAAiB,CAAC;IAC5E,OAAO5B,KAAK,CAAC,CAAC,EAAE6B,YAAY,GAAGD,iBAAiB,GAAGD,eAAe,GAAG,CAAC,EAAE,GAAG,CAAC;EAC9E;EAEA,OAAO;IACLb,SAAS;IACTI,gBAAgB;IAChBO;EACF,CAAC;AACH","ignoreList":[]}
@@ -1,18 +0,0 @@
1
- export interface FileFilterProps {
2
- filterByType?: string;
3
- }
4
- export type FileFilterResult = {
5
- accepted: File[];
6
- rejected: File[];
7
- };
8
- export declare const makeFileFilterProps: <Defaults extends {
9
- filterByType?: unknown;
10
- } = {}>(defaults?: Defaults | undefined) => {
11
- filterByType: unknown extends Defaults["filterByType"] ? StringConstructor : {
12
- type: import("vue").PropType<unknown extends Defaults["filterByType"] ? string : string | Defaults["filterByType"]>;
13
- default: unknown extends Defaults["filterByType"] ? string : string | Defaults["filterByType"];
14
- };
15
- };
16
- export declare function useFileFilter(props: FileFilterProps): {
17
- filterAccepted: (files: File[]) => FileFilterResult;
18
- };
@@ -1,38 +0,0 @@
1
- // Utilities
2
- import { computed } from 'vue';
3
- import { propsFactory } from "../util/index.js";
4
- // Composables
5
- export const makeFileFilterProps = propsFactory({
6
- filterByType: String
7
- }, 'file-accept');
8
- export function useFileFilter(props) {
9
- const fileFilter = computed(() => props.filterByType ? createFilter(props.filterByType) : null);
10
- function filterAccepted(files) {
11
- if (fileFilter.value) {
12
- const accepted = files.filter(fileFilter.value);
13
- return {
14
- accepted,
15
- rejected: files.filter(f => !accepted.includes(f))
16
- };
17
- }
18
- return {
19
- accepted: files,
20
- rejected: []
21
- };
22
- }
23
- return {
24
- filterAccepted
25
- };
26
- }
27
- function createFilter(v) {
28
- const types = v.split(',').map(x => x.trim().toLowerCase());
29
- const extensionsToMatch = types.filter(x => x.startsWith('.'));
30
- const wildcards = types.filter(x => x.endsWith('/*'));
31
- const typesToMatch = types.filter(x => !extensionsToMatch.includes(x) && !wildcards.includes(x));
32
- return file => {
33
- const extension = file.name.split('.').at(-1)?.toLowerCase() ?? '';
34
- const typeGroup = file.type.split('/').at(0)?.toLowerCase() ?? '';
35
- return typesToMatch.includes(file.type) || extensionsToMatch.includes(`.${extension}`) || wildcards.includes(`${typeGroup}/*`);
36
- };
37
- }
38
- //# sourceMappingURL=fileFilter.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"fileFilter.js","names":["computed","propsFactory","makeFileFilterProps","filterByType","String","useFileFilter","props","fileFilter","createFilter","filterAccepted","files","value","accepted","filter","rejected","f","includes","v","types","split","map","x","trim","toLowerCase","extensionsToMatch","startsWith","wildcards","endsWith","typesToMatch","file","extension","name","at","typeGroup","type"],"sources":["../../src/composables/fileFilter.ts"],"sourcesContent":["// Utilities\nimport { computed } from 'vue'\nimport { propsFactory } from '@/util'\n\nexport interface FileFilterProps {\n filterByType?: string\n}\n\nexport type FileFilterResult = {\n accepted: File[]\n rejected: File[]\n}\n\n// Composables\nexport const makeFileFilterProps = propsFactory({\n filterByType: String,\n}, 'file-accept')\n\nexport function useFileFilter (props: FileFilterProps) {\n const fileFilter = computed(() => props.filterByType ? createFilter(props.filterByType) : null)\n\n function filterAccepted (files: File[]): FileFilterResult {\n if (fileFilter.value) {\n const accepted = files.filter(fileFilter.value)\n return {\n accepted,\n rejected: files.filter(f => !accepted.includes(f)),\n }\n }\n return {\n accepted: files,\n rejected: [],\n }\n }\n\n return {\n filterAccepted,\n }\n}\n\nfunction createFilter (v: string): ((v: File) => boolean) {\n const types = v.split(',').map(x => x.trim().toLowerCase())\n const extensionsToMatch = types.filter(x => x.startsWith('.'))\n const wildcards = types.filter(x => x.endsWith('/*'))\n const typesToMatch = types.filter(x => !extensionsToMatch.includes(x) && !wildcards.includes(x))\n\n return (file: File): boolean => {\n const extension = file.name.split('.').at(-1)?.toLowerCase() ?? ''\n const typeGroup = file.type.split('/').at(0)?.toLowerCase() ?? ''\n return typesToMatch.includes(file.type) ||\n extensionsToMatch.includes(`.${extension}`) ||\n wildcards.includes(`${typeGroup}/*`)\n }\n}\n"],"mappings":"AAAA;AACA,SAASA,QAAQ,QAAQ,KAAK;AAAA,SACrBC,YAAY;AAWrB;AACA,OAAO,MAAMC,mBAAmB,GAAGD,YAAY,CAAC;EAC9CE,YAAY,EAAEC;AAChB,CAAC,EAAE,aAAa,CAAC;AAEjB,OAAO,SAASC,aAAaA,CAAEC,KAAsB,EAAE;EACrD,MAAMC,UAAU,GAAGP,QAAQ,CAAC,MAAMM,KAAK,CAACH,YAAY,GAAGK,YAAY,CAACF,KAAK,CAACH,YAAY,CAAC,GAAG,IAAI,CAAC;EAE/F,SAASM,cAAcA,CAAEC,KAAa,EAAoB;IACxD,IAAIH,UAAU,CAACI,KAAK,EAAE;MACpB,MAAMC,QAAQ,GAAGF,KAAK,CAACG,MAAM,CAACN,UAAU,CAACI,KAAK,CAAC;MAC/C,OAAO;QACLC,QAAQ;QACRE,QAAQ,EAAEJ,KAAK,CAACG,MAAM,CAACE,CAAC,IAAI,CAACH,QAAQ,CAACI,QAAQ,CAACD,CAAC,CAAC;MACnD,CAAC;IACH;IACA,OAAO;MACLH,QAAQ,EAAEF,KAAK;MACfI,QAAQ,EAAE;IACZ,CAAC;EACH;EAEA,OAAO;IACLL;EACF,CAAC;AACH;AAEA,SAASD,YAAYA,CAAES,CAAS,EAA0B;EACxD,MAAMC,KAAK,GAAGD,CAAC,CAACE,KAAK,CAAC,GAAG,CAAC,CAACC,GAAG,CAACC,CAAC,IAAIA,CAAC,CAACC,IAAI,CAAC,CAAC,CAACC,WAAW,CAAC,CAAC,CAAC;EAC3D,MAAMC,iBAAiB,GAAGN,KAAK,CAACL,MAAM,CAACQ,CAAC,IAAIA,CAAC,CAACI,UAAU,CAAC,GAAG,CAAC,CAAC;EAC9D,MAAMC,SAAS,GAAGR,KAAK,CAACL,MAAM,CAACQ,CAAC,IAAIA,CAAC,CAACM,QAAQ,CAAC,IAAI,CAAC,CAAC;EACrD,MAAMC,YAAY,GAAGV,KAAK,CAACL,MAAM,CAACQ,CAAC,IAAI,CAACG,iBAAiB,CAACR,QAAQ,CAACK,CAAC,CAAC,IAAI,CAACK,SAAS,CAACV,QAAQ,CAACK,CAAC,CAAC,CAAC;EAEhG,OAAQQ,IAAU,IAAc;IAC9B,MAAMC,SAAS,GAAGD,IAAI,CAACE,IAAI,CAACZ,KAAK,CAAC,GAAG,CAAC,CAACa,EAAE,CAAC,CAAC,CAAC,CAAC,EAAET,WAAW,CAAC,CAAC,IAAI,EAAE;IAClE,MAAMU,SAAS,GAAGJ,IAAI,CAACK,IAAI,CAACf,KAAK,CAAC,GAAG,CAAC,CAACa,EAAE,CAAC,CAAC,CAAC,EAAET,WAAW,CAAC,CAAC,IAAI,EAAE;IACjE,OAAOK,YAAY,CAACZ,QAAQ,CAACa,IAAI,CAACK,IAAI,CAAC,IACrCV,iBAAiB,CAACR,QAAQ,CAAC,IAAIc,SAAS,EAAE,CAAC,IAC3CJ,SAAS,CAACV,QAAQ,CAAC,GAAGiB,SAAS,IAAI,CAAC;EACxC,CAAC;AACH","ignoreList":[]}