@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.
- package/CHANGELOG.md +16 -14
- package/dist/json/attributes.json +2954 -2974
- package/dist/json/importMap-labs.json +22 -22
- package/dist/json/importMap.json +184 -184
- package/dist/json/tags.json +0 -5
- package/dist/json/web-types.json +5821 -5891
- package/dist/vuetify-labs.cjs +27 -216
- package/dist/vuetify-labs.css +5981 -5983
- package/dist/vuetify-labs.d.ts +67 -129
- package/dist/vuetify-labs.esm.js +27 -216
- package/dist/vuetify-labs.esm.js.map +1 -1
- package/dist/vuetify-labs.js +27 -216
- package/dist/vuetify-labs.min.css +2 -2
- package/dist/vuetify.cjs +18 -178
- package/dist/vuetify.cjs.map +1 -1
- package/dist/vuetify.css +3778 -3780
- package/dist/vuetify.d.ts +67 -119
- package/dist/vuetify.esm.js +18 -178
- package/dist/vuetify.esm.js.map +1 -1
- package/dist/vuetify.js +18 -178
- package/dist/vuetify.js.map +1 -1
- package/dist/vuetify.min.css +2 -2
- package/dist/vuetify.min.js +701 -723
- package/dist/vuetify.min.js.map +1 -1
- package/lib/components/VAutocomplete/VAutocomplete.js +0 -1
- package/lib/components/VAutocomplete/VAutocomplete.js.map +1 -1
- package/lib/components/VCombobox/VCombobox.js +0 -1
- package/lib/components/VCombobox/VCombobox.js.map +1 -1
- package/lib/components/VFileInput/VFileInput.d.ts +0 -15
- package/lib/components/VFileInput/VFileInput.js +9 -38
- package/lib/components/VFileInput/VFileInput.js.map +1 -1
- package/lib/components/VList/VList.js +1 -2
- package/lib/components/VList/VList.js.map +1 -1
- package/lib/components/VList/VListItem.js +1 -7
- package/lib/components/VList/VListItem.js.map +1 -1
- package/lib/components/VProgressLinear/VProgressLinear.css +1 -1
- package/lib/components/VProgressLinear/VProgressLinear.d.ts +0 -75
- package/lib/components/VProgressLinear/VProgressLinear.js +6 -32
- package/lib/components/VProgressLinear/VProgressLinear.js.map +1 -1
- package/lib/components/VProgressLinear/VProgressLinear.sass +2 -2
- package/lib/components/VSelect/VSelect.js +0 -1
- package/lib/components/VSelect/VSelect.js.map +1 -1
- package/lib/entry-bundler.js +1 -1
- package/lib/entry-bundler.js.map +1 -1
- package/lib/framework.d.ts +67 -67
- package/lib/framework.js +1 -1
- package/lib/framework.js.map +1 -1
- package/lib/labs/VFileUpload/VFileUpload.d.ts +0 -15
- package/lib/labs/VFileUpload/VFileUpload.js +9 -39
- package/lib/labs/VFileUpload/VFileUpload.js.map +1 -1
- package/package.json +1 -1
- package/lib/components/VProgressLinear/chunks.d.ts +0 -55
- package/lib/components/VProgressLinear/chunks.js +0 -62
- package/lib/components/VProgressLinear/chunks.js.map +0 -1
- package/lib/composables/fileFilter.d.ts +0 -18
- package/lib/composables/fileFilter.js +0 -38
- 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":[]}
|