@vuetify/nightly 3.1.6 → 3.1.7
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 +6 -12
- package/dist/json/attributes.json +561 -33
- package/dist/json/tags.json +136 -2
- package/dist/json/web-types.json +2162 -84
- package/dist/vuetify-labs.css +231 -231
- package/dist/vuetify-labs.d.ts +3453 -144
- package/dist/vuetify-labs.esm.js +21 -10
- package/dist/vuetify-labs.esm.js.map +1 -1
- package/dist/vuetify-labs.js +21 -10
- package/dist/vuetify-labs.min.css +2 -2
- package/dist/vuetify.css +1 -1
- package/dist/vuetify.d.ts +1916 -65
- package/dist/vuetify.esm.js +3 -3
- package/dist/vuetify.esm.js.map +1 -1
- package/dist/vuetify.js +3 -3
- package/dist/vuetify.js.map +1 -1
- package/dist/vuetify.min.css +1 -1
- package/dist/vuetify.min.js +3 -3
- package/dist/vuetify.min.js.map +1 -1
- package/lib/components/VAlert/index.d.ts +22 -0
- package/lib/components/VApp/index.d.ts +6 -0
- package/lib/components/VAppBar/index.d.ts +36 -0
- package/lib/components/VAutocomplete/index.d.ts +117 -6
- package/lib/components/VAvatar/index.d.ts +6 -0
- package/lib/components/VBadge/index.d.ts +8 -0
- package/lib/components/VBanner/index.d.ts +24 -0
- package/lib/components/VBottomNavigation/index.d.ts +6 -0
- package/lib/components/VBreadcrumbs/index.d.ts +28 -4
- package/lib/components/VBtn/index.d.ts +12 -0
- package/lib/components/VBtnGroup/index.d.ts +6 -0
- package/lib/components/VBtnToggle/index.d.ts +6 -0
- package/lib/components/VCard/index.d.ts +60 -0
- package/lib/components/VCarousel/index.d.ts +60 -0
- package/lib/components/VCheckbox/index.d.ts +38 -0
- package/lib/components/VChip/index.d.ts +12 -0
- package/lib/components/VChipGroup/index.d.ts +6 -0
- package/lib/components/VCode/index.d.ts +6 -0
- package/lib/components/VCombobox/index.d.ts +117 -6
- package/lib/components/VCounter/index.d.ts +24 -0
- package/lib/components/VDefaultsProvider/index.d.ts +6 -0
- package/lib/components/VDialog/index.d.ts +64 -1
- package/lib/components/VDivider/index.d.ts +6 -0
- package/lib/components/VExpansionPanel/VExpansionPanelTitle.mjs.map +1 -1
- package/lib/components/VExpansionPanel/index.d.ts +49 -12
- package/lib/components/VField/index.d.ts +20 -6
- package/lib/components/VFileInput/index.d.ts +43 -1
- package/lib/components/VFooter/index.d.ts +6 -0
- package/lib/components/VForm/index.d.ts +6 -0
- package/lib/components/VGrid/index.d.ts +24 -0
- package/lib/components/VHover/index.d.ts +12 -0
- package/lib/components/VIcon/index.d.ts +12 -0
- package/lib/components/VImg/index.d.ts +12 -0
- package/lib/components/VInput/index.d.ts +12 -0
- package/lib/components/VItemGroup/index.d.ts +12 -0
- package/lib/components/VKbd/index.d.ts +6 -0
- package/lib/components/VLabel/index.d.ts +6 -0
- package/lib/components/VLayout/index.d.ts +12 -0
- package/lib/components/VLazy/index.d.ts +6 -0
- package/lib/components/VList/index.d.ts +77 -6
- package/lib/components/VLocaleProvider/index.d.ts +6 -0
- package/lib/components/VMain/index.d.ts +6 -0
- package/lib/components/VMenu/index.d.ts +64 -1
- package/lib/components/VMessages/index.d.ts +24 -0
- package/lib/components/VNavigationDrawer/index.d.ts +12 -0
- package/lib/components/VNoSsr/index.d.ts +6 -0
- package/lib/components/VOverlay/index.d.ts +18 -0
- package/lib/components/VPagination/index.d.ts +14 -0
- package/lib/components/VParallax/index.d.ts +12 -0
- package/lib/components/VProgressCircular/index.d.ts +6 -0
- package/lib/components/VProgressLinear/index.d.ts +12 -0
- package/lib/components/VRadio/index.d.ts +16 -0
- package/lib/components/VRadioGroup/index.d.ts +22 -0
- package/lib/components/VRangeSlider/index.d.ts +16 -0
- package/lib/components/VRating/index.d.ts +8 -0
- package/lib/components/VResponsive/index.d.ts +8 -0
- package/lib/components/VSelect/index.d.ts +183 -6
- package/lib/components/VSelectionControl/index.d.ts +14 -6
- package/lib/components/VSelectionControlGroup/index.d.ts +6 -0
- package/lib/components/VSheet/index.d.ts +6 -0
- package/lib/components/VSlideGroup/index.d.ts +26 -0
- package/lib/components/VSlider/index.d.ts +16 -0
- package/lib/components/VSnackbar/index.d.ts +44 -1
- package/lib/components/VSwitch/index.d.ts +22 -0
- package/lib/components/VSystemBar/index.d.ts +6 -0
- package/lib/components/VTable/index.d.ts +12 -0
- package/lib/components/VTabs/index.d.ts +12 -0
- package/lib/components/VTextField/index.d.ts +54 -6
- package/lib/components/VTextarea/index.d.ts +39 -1
- package/lib/components/VThemeProvider/index.d.ts +6 -0
- package/lib/components/VTimeline/index.d.ts +16 -0
- package/lib/components/VToolbar/index.d.ts +30 -0
- package/lib/components/VTooltip/index.d.ts +46 -1
- package/lib/components/VValidation/index.d.ts +6 -0
- package/lib/components/VWindow/index.d.ts +34 -0
- package/lib/components/index.d.ts +1916 -65
- package/lib/components/transitions/index.d.ts +96 -0
- package/lib/entry-bundler.mjs +1 -1
- package/lib/framework.mjs +1 -1
- package/lib/labs/VDataTable/VDataTableRows.mjs +4 -6
- package/lib/labs/VDataTable/VDataTableRows.mjs.map +1 -1
- package/lib/labs/VDataTable/index.d.ts +1503 -48
- package/lib/labs/VVirtualScroll/VVirtualScroll.mjs +15 -2
- package/lib/labs/VVirtualScroll/VVirtualScroll.mjs.map +1 -1
- package/lib/labs/VVirtualScroll/index.d.ts +9 -6
- package/lib/labs/components.d.ts +1512 -54
- package/lib/util/defineComponent.mjs.map +1 -1
- package/package.json +2 -1
|
@@ -7,7 +7,7 @@ import { VVirtualScrollItem } from "./VVirtualScrollItem.mjs"; // Composables
|
|
|
7
7
|
import { makeDimensionProps, useDimension } from "../../composables/dimensions.mjs";
|
|
8
8
|
import { useDisplay } from "../../composables/display.mjs";
|
|
9
9
|
import { useResizeObserver } from "../../composables/resizeObserver.mjs"; // Utilities
|
|
10
|
-
import { computed, onMounted, ref, watchEffect } from 'vue';
|
|
10
|
+
import { computed, onMounted, ref, watch, watchEffect } from 'vue';
|
|
11
11
|
import { clamp, convertToUnit, createRange, genericComponent, useRender } from "../../util/index.mjs"; // Types
|
|
12
12
|
const UP = -1;
|
|
13
13
|
const DOWN = 1;
|
|
@@ -43,13 +43,15 @@ export const VVirtualScroll = genericComponent()({
|
|
|
43
43
|
resizeRef.value = rootEl.value;
|
|
44
44
|
});
|
|
45
45
|
const display = useDisplay();
|
|
46
|
-
const
|
|
46
|
+
const sizeMap = new Map();
|
|
47
|
+
let sizes = createRange(props.items.length).map(() => itemHeight.value);
|
|
47
48
|
const visibleItems = computed(() => {
|
|
48
49
|
return props.visibleItems ? parseInt(props.visibleItems, 10) : Math.max(12, Math.ceil((contentRect.value?.height ?? display.height.value) / itemHeight.value * 1.7 + 1));
|
|
49
50
|
});
|
|
50
51
|
function handleItemResize(index, height) {
|
|
51
52
|
itemHeight.value = Math.max(itemHeight.value, height);
|
|
52
53
|
sizes[index] = height;
|
|
54
|
+
sizeMap.set(props.items[index], height);
|
|
53
55
|
}
|
|
54
56
|
function calculateOffset(index) {
|
|
55
57
|
return sizes.slice(0, index).reduce((curr, value) => curr + (value || itemHeight.value), 0);
|
|
@@ -103,6 +105,17 @@ export const VVirtualScroll = genericComponent()({
|
|
|
103
105
|
itemHeight.value = sizes.slice(first.value, last.value).reduce((curr, height) => curr + height, 0) / visibleItems.value;
|
|
104
106
|
}
|
|
105
107
|
});
|
|
108
|
+
watch(() => props.items.length, () => {
|
|
109
|
+
sizes = createRange(props.items.length).map(() => itemHeight.value);
|
|
110
|
+
sizeMap.forEach((height, item) => {
|
|
111
|
+
const index = props.items.indexOf(item);
|
|
112
|
+
if (index === -1) {
|
|
113
|
+
sizeMap.delete(item);
|
|
114
|
+
} else {
|
|
115
|
+
sizes[index] = height;
|
|
116
|
+
}
|
|
117
|
+
});
|
|
118
|
+
});
|
|
106
119
|
useRender(() => _createVNode("div", {
|
|
107
120
|
"ref": rootEl,
|
|
108
121
|
"class": "v-virtual-scroll",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"VVirtualScroll.mjs","names":["VVirtualScrollItem","makeDimensionProps","useDimension","useDisplay","useResizeObserver","computed","onMounted","ref","watchEffect","clamp","convertToUnit","createRange","genericComponent","useRender","UP","DOWN","VVirtualScroll","name","props","items","type","Array","default","itemHeight","Number","String","visibleItems","setup","slots","first","baseItemHeight","get","parseInt","value","set","val","rootEl","resizeRef","contentRect","display","sizes","length","map","Math","max","ceil","height","handleItemResize","index","calculateOffset","slice","reduce","curr","calculateMidPointIndex","scrollTop","start","end","middle","floor","middleOffset","lastScrollTop","handleScroll","direction","midPointIndex","buffer","round","scrollToIndex","offset","last","min","computedItems","paddingTop","paddingBottom","dimensionStyles","item"],"sources":["../../../src/labs/VVirtualScroll/VVirtualScroll.tsx"],"sourcesContent":["// Styles\nimport './VVirtualScroll.sass'\n\n// Components\nimport { VVirtualScrollItem } from './VVirtualScrollItem'\n\n// Composables\nimport { makeDimensionProps, useDimension } from '@/composables/dimensions'\nimport { useDisplay } from '@/composables/display'\nimport { useResizeObserver } from '@/composables/resizeObserver'\n\n// Utilities\nimport { computed, onMounted, ref, watchEffect } from 'vue'\nimport {\n clamp,\n convertToUnit,\n createRange,\n genericComponent,\n useRender,\n} from '@/util'\n\n// Types\nimport type { SlotsToProps } from '@/util'\n\nconst UP = -1\nconst DOWN = 1\n\nexport interface VVirtualScrollSlot<T> {\n item: T\n index: number\n}\n\nexport const VVirtualScroll = genericComponent<new <T>() => {\n $props: {\n items: readonly T[]\n } & SlotsToProps<{\n default: [VVirtualScrollSlot<T>]\n }>\n}>()({\n name: 'VVirtualScroll',\n\n props: {\n items: {\n type: Array,\n default: () => ([]),\n },\n itemHeight: [Number, String],\n visibleItems: [Number, String],\n\n ...makeDimensionProps(),\n },\n\n setup (props, { slots }) {\n const first = ref(0)\n const baseItemHeight = ref(props.itemHeight)\n const itemHeight = computed({\n get: () => parseInt(baseItemHeight.value ?? 0, 10),\n set (val) {\n baseItemHeight.value = val\n },\n })\n const rootEl = ref<HTMLDivElement>()\n const { resizeRef, contentRect } = useResizeObserver()\n watchEffect(() => {\n resizeRef.value = rootEl.value\n })\n const display = useDisplay()\n\n const sizes = createRange(props.items.length).map(() => itemHeight.value)\n const visibleItems = computed(() => {\n return props.visibleItems\n ? parseInt(props.visibleItems, 10)\n : Math.max(12,\n Math.ceil(((contentRect.value?.height ?? display.height.value) / itemHeight.value) * 1.7 + 1)\n )\n })\n\n function handleItemResize (index: number, height: number) {\n itemHeight.value = Math.max(itemHeight.value, height)\n sizes[index] = height\n }\n\n function calculateOffset (index: number) {\n return sizes.slice(0, index).reduce((curr, value) => curr + (value || itemHeight.value), 0)\n }\n\n function calculateMidPointIndex (scrollTop: number) {\n let start = 0\n let end = props.items.length\n\n while (start <= end) {\n const middle = start + Math.floor((end - start) / 2)\n const middleOffset = calculateOffset(middle)\n\n if (middleOffset === scrollTop) {\n return middle\n } else if (middleOffset < scrollTop) {\n start = middle + 1\n } else if (middleOffset > scrollTop) {\n end = middle - 1\n }\n }\n\n return start\n }\n\n let lastScrollTop = 0\n function handleScroll () {\n if (!rootEl.value || !contentRect.value) return\n\n const height = contentRect.value.height\n const scrollTop = rootEl.value.scrollTop\n const direction = scrollTop < lastScrollTop ? UP : DOWN\n\n const midPointIndex = calculateMidPointIndex(scrollTop + height / 2)\n const buffer = Math.round(visibleItems.value / 3)\n if (direction === UP && midPointIndex <= first.value + (buffer * 2) - 1) {\n first.value = clamp(midPointIndex - buffer, 0, props.items.length)\n } else if (direction === DOWN && midPointIndex >= first.value + (buffer * 2) - 1) {\n first.value = clamp(midPointIndex - buffer, 0, props.items.length - visibleItems.value)\n }\n\n lastScrollTop = rootEl.value.scrollTop\n }\n\n function scrollToIndex (index: number) {\n if (!rootEl.value) return\n\n const offset = calculateOffset(index)\n rootEl.value.scrollTop = offset\n }\n\n const last = computed(() => Math.min(props.items.length, first.value + visibleItems.value))\n const computedItems = computed(() => props.items.slice(first.value, last.value))\n const paddingTop = computed(() => calculateOffset(first.value))\n const paddingBottom = computed(() => calculateOffset(props.items.length) - calculateOffset(last.value))\n\n const { dimensionStyles } = useDimension(props)\n\n onMounted(() => {\n if (!itemHeight.value) {\n // If itemHeight prop is not set, then calculate an estimated height from the average of inital items\n itemHeight.value = sizes.slice(first.value, last.value).reduce((curr, height) => curr + height, 0) / (visibleItems.value)\n }\n })\n\n useRender(() => (\n <div\n ref={ rootEl }\n class=\"v-virtual-scroll\"\n onScroll={ handleScroll }\n style={ dimensionStyles.value }\n >\n <div\n class=\"v-virtual-scroll__container\"\n style={{\n paddingTop: convertToUnit(paddingTop.value),\n paddingBottom: convertToUnit(paddingBottom.value),\n }}\n >\n { computedItems.value.map((item, index) => (\n <VVirtualScrollItem\n key={ index }\n dynamicHeight={ !props.itemHeight }\n onUpdate:height={ height => handleItemResize(index + first.value, height) }\n >\n { slots.default?.({ item, index: index + first.value }) }\n </VVirtualScrollItem>\n )) }\n </div>\n </div>\n ))\n\n return {\n scrollToIndex,\n }\n },\n})\n\nexport type VVirtualScroll = InstanceType<typeof VVirtualScroll>\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"VVirtualScroll.mjs","names":["VVirtualScrollItem","makeDimensionProps","useDimension","useDisplay","useResizeObserver","computed","onMounted","ref","watch","watchEffect","clamp","convertToUnit","createRange","genericComponent","useRender","UP","DOWN","VVirtualScroll","name","props","items","type","Array","default","itemHeight","Number","String","visibleItems","setup","slots","first","baseItemHeight","get","parseInt","value","set","val","rootEl","resizeRef","contentRect","display","sizeMap","Map","sizes","length","map","Math","max","ceil","height","handleItemResize","index","calculateOffset","slice","reduce","curr","calculateMidPointIndex","scrollTop","start","end","middle","floor","middleOffset","lastScrollTop","handleScroll","direction","midPointIndex","buffer","round","scrollToIndex","offset","last","min","computedItems","paddingTop","paddingBottom","dimensionStyles","forEach","item","indexOf","delete"],"sources":["../../../src/labs/VVirtualScroll/VVirtualScroll.tsx"],"sourcesContent":["// Styles\nimport './VVirtualScroll.sass'\n\n// Components\nimport { VVirtualScrollItem } from './VVirtualScrollItem'\n\n// Composables\nimport { makeDimensionProps, useDimension } from '@/composables/dimensions'\nimport { useDisplay } from '@/composables/display'\nimport { useResizeObserver } from '@/composables/resizeObserver'\n\n// Utilities\nimport { computed, onMounted, ref, watch, watchEffect } from 'vue'\nimport {\n clamp,\n convertToUnit,\n createRange,\n genericComponent,\n useRender,\n} from '@/util'\n\n// Types\nimport type { SlotsToProps } from '@/util'\n\nconst UP = -1\nconst DOWN = 1\n\nexport interface VVirtualScrollSlot<T> {\n item: T\n index: number\n}\n\nexport const VVirtualScroll = genericComponent<new <T>() => {\n $props: {\n items: readonly T[]\n } & SlotsToProps<{\n default: [VVirtualScrollSlot<T>]\n }>\n}>()({\n name: 'VVirtualScroll',\n\n props: {\n items: {\n type: Array,\n default: () => ([]),\n },\n itemHeight: [Number, String],\n visibleItems: [Number, String],\n\n ...makeDimensionProps(),\n },\n\n setup (props, { slots }) {\n const first = ref(0)\n const baseItemHeight = ref(props.itemHeight)\n const itemHeight = computed({\n get: () => parseInt(baseItemHeight.value ?? 0, 10),\n set (val) {\n baseItemHeight.value = val\n },\n })\n const rootEl = ref<HTMLDivElement>()\n const { resizeRef, contentRect } = useResizeObserver()\n watchEffect(() => {\n resizeRef.value = rootEl.value\n })\n const display = useDisplay()\n\n const sizeMap = new Map<any, number>()\n let sizes = createRange(props.items.length).map(() => itemHeight.value)\n const visibleItems = computed(() => {\n return props.visibleItems\n ? parseInt(props.visibleItems, 10)\n : Math.max(12,\n Math.ceil(((contentRect.value?.height ?? display.height.value) / itemHeight.value) * 1.7 + 1)\n )\n })\n\n function handleItemResize (index: number, height: number) {\n itemHeight.value = Math.max(itemHeight.value, height)\n sizes[index] = height\n sizeMap.set(props.items[index], height)\n }\n\n function calculateOffset (index: number) {\n return sizes.slice(0, index).reduce((curr, value) => curr + (value || itemHeight.value), 0)\n }\n\n function calculateMidPointIndex (scrollTop: number) {\n let start = 0\n let end = props.items.length\n\n while (start <= end) {\n const middle = start + Math.floor((end - start) / 2)\n const middleOffset = calculateOffset(middle)\n\n if (middleOffset === scrollTop) {\n return middle\n } else if (middleOffset < scrollTop) {\n start = middle + 1\n } else if (middleOffset > scrollTop) {\n end = middle - 1\n }\n }\n\n return start\n }\n\n let lastScrollTop = 0\n function handleScroll () {\n if (!rootEl.value || !contentRect.value) return\n\n const height = contentRect.value.height\n const scrollTop = rootEl.value.scrollTop\n const direction = scrollTop < lastScrollTop ? UP : DOWN\n\n const midPointIndex = calculateMidPointIndex(scrollTop + height / 2)\n const buffer = Math.round(visibleItems.value / 3)\n if (direction === UP && midPointIndex <= first.value + (buffer * 2) - 1) {\n first.value = clamp(midPointIndex - buffer, 0, props.items.length)\n } else if (direction === DOWN && midPointIndex >= first.value + (buffer * 2) - 1) {\n first.value = clamp(midPointIndex - buffer, 0, props.items.length - visibleItems.value)\n }\n\n lastScrollTop = rootEl.value.scrollTop\n }\n\n function scrollToIndex (index: number) {\n if (!rootEl.value) return\n\n const offset = calculateOffset(index)\n rootEl.value.scrollTop = offset\n }\n\n const last = computed(() => Math.min(props.items.length, first.value + visibleItems.value))\n const computedItems = computed(() => props.items.slice(first.value, last.value))\n const paddingTop = computed(() => calculateOffset(first.value))\n const paddingBottom = computed(() => calculateOffset(props.items.length) - calculateOffset(last.value))\n\n const { dimensionStyles } = useDimension(props)\n\n onMounted(() => {\n if (!itemHeight.value) {\n // If itemHeight prop is not set, then calculate an estimated height from the average of inital items\n itemHeight.value = sizes.slice(first.value, last.value).reduce((curr, height) => curr + height, 0) / (visibleItems.value)\n }\n })\n\n watch(() => props.items.length, () => {\n sizes = createRange(props.items.length).map(() => itemHeight.value)\n sizeMap.forEach((height, item) => {\n const index = props.items.indexOf(item)\n if (index === -1) {\n sizeMap.delete(item)\n } else {\n sizes[index] = height\n }\n })\n })\n\n useRender(() => (\n <div\n ref={ rootEl }\n class=\"v-virtual-scroll\"\n onScroll={ handleScroll }\n style={ dimensionStyles.value }\n >\n <div\n class=\"v-virtual-scroll__container\"\n style={{\n paddingTop: convertToUnit(paddingTop.value),\n paddingBottom: convertToUnit(paddingBottom.value),\n }}\n >\n { computedItems.value.map((item, index) => (\n <VVirtualScrollItem\n key={ index }\n dynamicHeight={ !props.itemHeight }\n onUpdate:height={ height => handleItemResize(index + first.value, height) }\n >\n { slots.default?.({ item, index: index + first.value }) }\n </VVirtualScrollItem>\n )) }\n </div>\n </div>\n ))\n\n return {\n scrollToIndex,\n }\n },\n})\n\nexport type VVirtualScroll = InstanceType<typeof VVirtualScroll>\n"],"mappings":"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"}
|
|
@@ -21,7 +21,7 @@ declare const VVirtualScroll: {
|
|
|
21
21
|
};
|
|
22
22
|
itemHeight: (StringConstructor | NumberConstructor)[];
|
|
23
23
|
visibleItems: (StringConstructor | NumberConstructor)[];
|
|
24
|
-
}, "$children" | "v-slot:default" | "
|
|
24
|
+
}, "$children" | "v-slot:default" | "$slots" | "v-slots" | "items">>> & vue.VNodeProps & vue.AllowedComponentProps & vue.ComponentCustomProps, never>;
|
|
25
25
|
$attrs: {
|
|
26
26
|
[x: string]: unknown;
|
|
27
27
|
};
|
|
@@ -48,9 +48,9 @@ declare const VVirtualScroll: {
|
|
|
48
48
|
};
|
|
49
49
|
itemHeight: (StringConstructor | NumberConstructor)[];
|
|
50
50
|
visibleItems: (StringConstructor | NumberConstructor)[];
|
|
51
|
-
}, "$children" | "v-slot:default" | "
|
|
51
|
+
}, "$children" | "v-slot:default" | "$slots" | "v-slots" | "items">>>, {
|
|
52
52
|
scrollToIndex: (index: number) => void;
|
|
53
|
-
}, unknown, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, Omit<Record<string, any>, "$children" | "v-slot:default" | "
|
|
53
|
+
}, unknown, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, Omit<Record<string, any>, "$children" | "v-slot:default" | "$slots" | "v-slots" | "items">, string, {}, {}, string> & {
|
|
54
54
|
beforeCreate?: ((() => void) | (() => void)[]) | undefined;
|
|
55
55
|
created?: ((() => void) | (() => void)[]) | undefined;
|
|
56
56
|
beforeMount?: ((() => void) | (() => void)[]) | undefined;
|
|
@@ -83,7 +83,7 @@ declare const VVirtualScroll: {
|
|
|
83
83
|
};
|
|
84
84
|
itemHeight: (StringConstructor | NumberConstructor)[];
|
|
85
85
|
visibleItems: (StringConstructor | NumberConstructor)[];
|
|
86
|
-
}, "$children" | "v-slot:default" | "
|
|
86
|
+
}, "$children" | "v-slot:default" | "$slots" | "v-slots" | "items">>> & vue.ShallowUnwrapRef<{
|
|
87
87
|
scrollToIndex: (index: number) => void;
|
|
88
88
|
}> & {} & vue.ComponentCustomProperties & {};
|
|
89
89
|
__isFragment?: undefined;
|
|
@@ -102,15 +102,18 @@ declare const VVirtualScroll: {
|
|
|
102
102
|
};
|
|
103
103
|
itemHeight: (StringConstructor | NumberConstructor)[];
|
|
104
104
|
visibleItems: (StringConstructor | NumberConstructor)[];
|
|
105
|
-
}, "$children" | "v-slot:default" | "
|
|
105
|
+
}, "$children" | "v-slot:default" | "$slots" | "v-slots" | "items">>>, {
|
|
106
106
|
scrollToIndex: (index: number) => void;
|
|
107
|
-
}, unknown, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, Omit<Record<string, any>, "$children" | "v-slot:default" | "
|
|
107
|
+
}, unknown, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, Omit<Record<string, any>, "$children" | "v-slot:default" | "$slots" | "v-slots" | "items">, string, {}, {}, string> & vue.VNodeProps & vue.AllowedComponentProps & vue.ComponentCustomProps & (new <T_1>() => {
|
|
108
108
|
$props: {
|
|
109
109
|
items: readonly T_1[];
|
|
110
110
|
} & {
|
|
111
111
|
$children?: vue.VNodeChild | ((args_0: VVirtualScrollSlot<T_1>) => vue.VNodeChild) | {
|
|
112
112
|
default?: ((args_0: VVirtualScrollSlot<T_1>) => vue.VNodeChild) | undefined;
|
|
113
113
|
};
|
|
114
|
+
$slots?: {
|
|
115
|
+
default?: ((args_0: VVirtualScrollSlot<T_1>) => vue.VNodeChild) | undefined;
|
|
116
|
+
} | undefined;
|
|
114
117
|
'v-slots'?: {
|
|
115
118
|
default?: false | ((args_0: VVirtualScrollSlot<T_1>) => vue.VNodeChild) | undefined;
|
|
116
119
|
} | undefined;
|