@vuetify/nightly 3.10.9-dev.2025-11-06 → 3.10.9-dev.2025-11-08
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 +4 -3
- package/dist/json/attributes.json +3847 -3847
- package/dist/json/importMap-labs.json +20 -20
- package/dist/json/importMap.json +160 -160
- package/dist/json/web-types.json +6848 -6848
- package/dist/vuetify-labs.cjs +6 -4
- package/dist/vuetify-labs.css +3930 -3923
- package/dist/vuetify-labs.d.ts +52 -52
- package/dist/vuetify-labs.esm.js +6 -4
- package/dist/vuetify-labs.esm.js.map +1 -1
- package/dist/vuetify-labs.js +6 -4
- package/dist/vuetify-labs.min.css +2 -2
- package/dist/vuetify.cjs +6 -4
- package/dist/vuetify.cjs.map +1 -1
- package/dist/vuetify.css +5639 -5632
- package/dist/vuetify.d.ts +52 -52
- package/dist/vuetify.esm.js +6 -4
- package/dist/vuetify.esm.js.map +1 -1
- package/dist/vuetify.js +6 -4
- package/dist/vuetify.js.map +1 -1
- package/dist/vuetify.min.css +2 -2
- package/dist/vuetify.min.js +4 -4
- package/dist/vuetify.min.js.map +1 -1
- package/lib/components/VInfiniteScroll/VInfiniteScroll.css +7 -0
- package/lib/components/VInfiniteScroll/VInfiniteScroll.js +3 -1
- package/lib/components/VInfiniteScroll/VInfiniteScroll.js.map +1 -1
- package/lib/components/VInfiniteScroll/VInfiniteScroll.sass +10 -0
- package/lib/entry-bundler.js +1 -1
- package/lib/framework.d.ts +52 -52
- package/lib/framework.js +1 -1
- package/package.json +1 -1
|
@@ -19,6 +19,7 @@
|
|
|
19
19
|
}
|
|
20
20
|
|
|
21
21
|
.v-infinite-scroll-intersect {
|
|
22
|
+
overflow: hidden;
|
|
22
23
|
pointer-events: none;
|
|
23
24
|
margin-top: var(--v-infinite-margin);
|
|
24
25
|
margin-bottom: calc(var(--v-infinite-margin) * -1);
|
|
@@ -35,4 +36,10 @@
|
|
|
35
36
|
display: flex;
|
|
36
37
|
justify-content: center;
|
|
37
38
|
padding: 8px;
|
|
39
|
+
transition-property: padding;
|
|
40
|
+
transition-duration: 0.3s;
|
|
41
|
+
transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
|
|
42
|
+
}
|
|
43
|
+
.v-infinite-scroll__side:empty, .v-infinite-scroll__side:has(> div:only-child:empty) {
|
|
44
|
+
padding: 0;
|
|
38
45
|
}
|
|
@@ -243,7 +243,9 @@ export const VInfiniteScroll = genericComponent()({
|
|
|
243
243
|
const effectiveSide = side ?? props.side;
|
|
244
244
|
setStatus(effectiveSide, 'ok');
|
|
245
245
|
nextTick(() => {
|
|
246
|
-
|
|
246
|
+
if (effectiveSide !== 'end') {
|
|
247
|
+
setScrollAmount(getScrollSize() - previousScrollSize + getScrollAmount());
|
|
248
|
+
}
|
|
247
249
|
if (props.mode !== 'manual') {
|
|
248
250
|
nextTick(() => {
|
|
249
251
|
// See #17475
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"VInfiniteScroll.js","names":["VBtn","VProgressCircular","makeDimensionProps","useDimension","useIntersectionObserver","useLocale","makeTagProps","computed","nextTick","onMounted","ref","shallowRef","watch","convertToUnit","defineComponent","genericComponent","propsFactory","useRender","makeVInfiniteScrollProps","color","String","direction","type","default","validator","v","includes","side","mode","margin","Number","loadMoreText","emptyText","VInfiniteScrollIntersect","name","props","required","rootMargin","emits","intersect","isIntersecting","setup","_ref","emit","intersectionRef","val","_createElementVNode","_createTextVNode","VInfiniteScroll","load","options","_ref2","slots","rootEl","startStatus","endStatus","setScrollAmount","amount","value","property","getScrollAmount","getScrollSize","getContainerSize","setStatus","status","getStatus","previousScrollSize","handleIntersect","_isIntersecting","intersecting","done","window","requestAnimationFrame","t","renderSide","onClick","slotProps","error","empty","loading","_createVNode","dimensionStyles","Tag","tag","hasStartIntersect","hasEndIntersect","intersectMode","_normalizeClass","_normalizeStyle","reset","effectiveSide"],"sources":["../../../src/components/VInfiniteScroll/VInfiniteScroll.tsx"],"sourcesContent":["// Styles\nimport './VInfiniteScroll.sass'\n\n// Components\nimport { VBtn } from '@/components/VBtn'\nimport { VProgressCircular } from '@/components/VProgressCircular'\n\n// Composables\nimport { makeDimensionProps, useDimension } from '@/composables/dimensions'\nimport { useIntersectionObserver } from '@/composables/intersectionObserver'\nimport { useLocale } from '@/composables/locale'\nimport { makeTagProps } from '@/composables/tag'\n\n// Utilities\nimport { computed, nextTick, onMounted, ref, shallowRef, watch } from 'vue'\nimport { convertToUnit, defineComponent, genericComponent, propsFactory, useRender } from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\n\nexport type InfiniteScrollSide = 'start' | 'end' | 'both'\nexport type InfiniteScrollStatus = 'ok' | 'empty' | 'loading' | 'error'\n\ntype InfiniteScrollSlot = {\n side: InfiniteScrollSide\n props: Record<string, any>\n}\n\ntype VInfiniteScrollSlots = {\n default: never\n loading: InfiniteScrollSlot\n error: InfiniteScrollSlot\n empty: InfiniteScrollSlot\n 'load-more': InfiniteScrollSlot\n}\n\nexport const makeVInfiniteScrollProps = propsFactory({\n color: String,\n direction: {\n type: String as PropType<'vertical' | 'horizontal'>,\n default: 'vertical',\n validator: (v: any) => ['vertical', 'horizontal'].includes(v),\n },\n side: {\n type: String as PropType<InfiniteScrollSide>,\n default: 'end',\n validator: (v: any) => ['start', 'end', 'both'].includes(v),\n },\n mode: {\n type: String as PropType<'intersect' | 'manual'>,\n default: 'intersect',\n validator: (v: any) => ['intersect', 'manual'].includes(v),\n },\n margin: [Number, String],\n loadMoreText: {\n type: String,\n default: '$vuetify.infiniteScroll.loadMore',\n },\n emptyText: {\n type: String,\n default: '$vuetify.infiniteScroll.empty',\n },\n\n ...makeDimensionProps(),\n ...makeTagProps(),\n}, 'VInfiniteScroll')\n\nexport const VInfiniteScrollIntersect = defineComponent({\n name: 'VInfiniteScrollIntersect',\n\n props: {\n side: {\n type: String as PropType<InfiniteScrollSide>,\n required: true,\n },\n rootMargin: String,\n },\n\n emits: {\n intersect: (side: InfiniteScrollSide, isIntersecting: boolean) => true,\n },\n\n setup (props, { emit }) {\n const { intersectionRef, isIntersecting } = useIntersectionObserver()\n\n watch(isIntersecting, async val => {\n emit('intersect', props.side, val)\n })\n\n useRender(() => (\n <div\n class=\"v-infinite-scroll-intersect\"\n style={{\n '--v-infinite-margin-size': props.rootMargin,\n }}\n ref={ intersectionRef }\n > </div>\n ))\n\n return {}\n },\n})\n\nexport const VInfiniteScroll = genericComponent<VInfiniteScrollSlots>()({\n name: 'VInfiniteScroll',\n\n props: makeVInfiniteScrollProps(),\n\n emits: {\n load: (options: { side: InfiniteScrollSide, done: (status: InfiniteScrollStatus) => void }) => true,\n },\n\n setup (props, { slots, emit }) {\n const rootEl = ref<HTMLDivElement>()\n const startStatus = shallowRef<InfiniteScrollStatus>('ok')\n const endStatus = shallowRef<InfiniteScrollStatus>('ok')\n const margin = computed(() => convertToUnit(props.margin))\n const isIntersecting = shallowRef(false)\n\n function setScrollAmount (amount: number) {\n if (!rootEl.value) return\n\n const property = props.direction === 'vertical' ? 'scrollTop' : 'scrollLeft'\n rootEl.value[property] = amount\n }\n\n function getScrollAmount () {\n if (!rootEl.value) return 0\n\n const property = props.direction === 'vertical' ? 'scrollTop' : 'scrollLeft'\n return rootEl.value[property]\n }\n\n function getScrollSize () {\n if (!rootEl.value) return 0\n\n const property = props.direction === 'vertical' ? 'scrollHeight' : 'scrollWidth'\n return rootEl.value[property]\n }\n\n function getContainerSize () {\n if (!rootEl.value) return 0\n\n const property = props.direction === 'vertical' ? 'clientHeight' : 'clientWidth'\n return rootEl.value[property]\n }\n\n onMounted(() => {\n if (!rootEl.value) return\n\n if (props.side === 'start') {\n setScrollAmount(getScrollSize())\n } else if (props.side === 'both') {\n setScrollAmount(getScrollSize() / 2 - getContainerSize() / 2)\n }\n })\n\n function setStatus (side: InfiniteScrollSide, status: InfiniteScrollStatus) {\n if (side === 'start') {\n startStatus.value = status\n } else if (side === 'end') {\n endStatus.value = status\n } else if (side === 'both') {\n startStatus.value = status\n endStatus.value = status\n }\n }\n\n function getStatus (side: string) {\n return side === 'start' ? startStatus.value : endStatus.value\n }\n\n let previousScrollSize = 0\n function handleIntersect (side: InfiniteScrollSide, _isIntersecting: boolean) {\n isIntersecting.value = _isIntersecting\n if (isIntersecting.value) {\n intersecting(side)\n }\n }\n\n function intersecting (side: InfiniteScrollSide) {\n if (props.mode !== 'manual' && !isIntersecting.value) return\n\n const status = getStatus(side)\n if (!rootEl.value || ['empty', 'loading'].includes(status)) return\n\n previousScrollSize = getScrollSize()\n setStatus(side, 'loading')\n\n function done (status: InfiniteScrollStatus) {\n setStatus(side, status)\n\n nextTick(() => {\n if (status === 'empty' || status === 'error') return\n\n if (status === 'ok' && side === 'start') {\n setScrollAmount(getScrollSize() - previousScrollSize + getScrollAmount())\n }\n if (props.mode !== 'manual') {\n nextTick(() => {\n // Browser takes 2 - 3 animation frames to trigger IntersectionObserver after\n // VInfiniteScrollIntersect leaves the viewpoint. So far I couldn't come up\n // with a better solution than using 3 nested window.requestAnimationFrame. (#17475)\n window.requestAnimationFrame(() => {\n window.requestAnimationFrame(() => {\n window.requestAnimationFrame(() => {\n intersecting(side)\n })\n })\n })\n })\n }\n })\n }\n\n emit('load', { side, done })\n }\n\n const { t } = useLocale()\n\n function renderSide (side: InfiniteScrollSide, status: InfiniteScrollStatus) {\n if (props.side !== side && props.side !== 'both') return\n\n const onClick = () => intersecting(side)\n const slotProps = { side, props: { onClick, color: props.color } }\n\n if (status === 'error') return slots.error?.(slotProps)\n\n if (status === 'empty') return slots.empty?.(slotProps) ?? <div>{ t(props.emptyText) }</div>\n\n if (props.mode === 'manual') {\n if (status === 'loading') {\n return slots.loading?.(slotProps) ?? (\n <VProgressCircular indeterminate color={ props.color } />\n )\n }\n\n return slots['load-more']?.(slotProps) ?? (\n <VBtn variant=\"outlined\" color={ props.color } onClick={ onClick }>\n { t(props.loadMoreText) }\n </VBtn>\n )\n }\n\n return slots.loading?.(slotProps) ?? (\n <VProgressCircular indeterminate color={ props.color } />\n )\n }\n\n const { dimensionStyles } = useDimension(props)\n\n useRender(() => {\n const Tag = props.tag\n const hasStartIntersect = props.side === 'start' || props.side === 'both'\n const hasEndIntersect = props.side === 'end' || props.side === 'both'\n const intersectMode = props.mode === 'intersect'\n\n return (\n <Tag\n ref={ rootEl }\n class={[\n 'v-infinite-scroll',\n `v-infinite-scroll--${props.direction}`,\n {\n 'v-infinite-scroll--start': hasStartIntersect,\n 'v-infinite-scroll--end': hasEndIntersect,\n },\n ]}\n style={ dimensionStyles.value }\n >\n <div class=\"v-infinite-scroll__side\">\n { renderSide('start', startStatus.value) }\n </div>\n\n { hasStartIntersect && intersectMode && (\n <VInfiniteScrollIntersect\n key=\"start\"\n side=\"start\"\n onIntersect={ handleIntersect }\n rootMargin={ margin.value }\n />\n )}\n\n { slots.default?.() }\n\n { hasEndIntersect && intersectMode && (\n <VInfiniteScrollIntersect\n key=\"end\"\n side=\"end\"\n onIntersect={ handleIntersect }\n rootMargin={ margin.value }\n />\n )}\n\n <div class=\"v-infinite-scroll__side\">\n { renderSide('end', endStatus.value) }\n </div>\n </Tag>\n )\n })\n\n function reset (side?: InfiniteScrollSide) {\n const effectiveSide = side ?? props.side\n setStatus(effectiveSide, 'ok')\n\n nextTick(() => {\n setScrollAmount(\n getScrollSize() - previousScrollSize + getScrollAmount(),\n )\n if (props.mode !== 'manual') {\n nextTick(() => {\n // See #17475\n window.requestAnimationFrame(() => {\n window.requestAnimationFrame(() => {\n window.requestAnimationFrame(() => {\n if (effectiveSide === 'both') {\n intersecting('start')\n intersecting('end')\n } else {\n intersecting(effectiveSide)\n }\n })\n })\n })\n })\n }\n })\n }\n\n return { reset }\n },\n})\n\nexport type VInfiniteScroll = InstanceType<typeof VInfiniteScroll>\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"VInfiniteScroll.js","names":["VBtn","VProgressCircular","makeDimensionProps","useDimension","useIntersectionObserver","useLocale","makeTagProps","computed","nextTick","onMounted","ref","shallowRef","watch","convertToUnit","defineComponent","genericComponent","propsFactory","useRender","makeVInfiniteScrollProps","color","String","direction","type","default","validator","v","includes","side","mode","margin","Number","loadMoreText","emptyText","VInfiniteScrollIntersect","name","props","required","rootMargin","emits","intersect","isIntersecting","setup","_ref","emit","intersectionRef","val","_createElementVNode","_createTextVNode","VInfiniteScroll","load","options","_ref2","slots","rootEl","startStatus","endStatus","setScrollAmount","amount","value","property","getScrollAmount","getScrollSize","getContainerSize","setStatus","status","getStatus","previousScrollSize","handleIntersect","_isIntersecting","intersecting","done","window","requestAnimationFrame","t","renderSide","onClick","slotProps","error","empty","loading","_createVNode","dimensionStyles","Tag","tag","hasStartIntersect","hasEndIntersect","intersectMode","_normalizeClass","_normalizeStyle","reset","effectiveSide"],"sources":["../../../src/components/VInfiniteScroll/VInfiniteScroll.tsx"],"sourcesContent":["// Styles\nimport './VInfiniteScroll.sass'\n\n// Components\nimport { VBtn } from '@/components/VBtn'\nimport { VProgressCircular } from '@/components/VProgressCircular'\n\n// Composables\nimport { makeDimensionProps, useDimension } from '@/composables/dimensions'\nimport { useIntersectionObserver } from '@/composables/intersectionObserver'\nimport { useLocale } from '@/composables/locale'\nimport { makeTagProps } from '@/composables/tag'\n\n// Utilities\nimport { computed, nextTick, onMounted, ref, shallowRef, watch } from 'vue'\nimport { convertToUnit, defineComponent, genericComponent, propsFactory, useRender } from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\n\nexport type InfiniteScrollSide = 'start' | 'end' | 'both'\nexport type InfiniteScrollStatus = 'ok' | 'empty' | 'loading' | 'error'\n\ntype InfiniteScrollSlot = {\n side: InfiniteScrollSide\n props: Record<string, any>\n}\n\ntype VInfiniteScrollSlots = {\n default: never\n loading: InfiniteScrollSlot\n error: InfiniteScrollSlot\n empty: InfiniteScrollSlot\n 'load-more': InfiniteScrollSlot\n}\n\nexport const makeVInfiniteScrollProps = propsFactory({\n color: String,\n direction: {\n type: String as PropType<'vertical' | 'horizontal'>,\n default: 'vertical',\n validator: (v: any) => ['vertical', 'horizontal'].includes(v),\n },\n side: {\n type: String as PropType<InfiniteScrollSide>,\n default: 'end',\n validator: (v: any) => ['start', 'end', 'both'].includes(v),\n },\n mode: {\n type: String as PropType<'intersect' | 'manual'>,\n default: 'intersect',\n validator: (v: any) => ['intersect', 'manual'].includes(v),\n },\n margin: [Number, String],\n loadMoreText: {\n type: String,\n default: '$vuetify.infiniteScroll.loadMore',\n },\n emptyText: {\n type: String,\n default: '$vuetify.infiniteScroll.empty',\n },\n\n ...makeDimensionProps(),\n ...makeTagProps(),\n}, 'VInfiniteScroll')\n\nexport const VInfiniteScrollIntersect = defineComponent({\n name: 'VInfiniteScrollIntersect',\n\n props: {\n side: {\n type: String as PropType<InfiniteScrollSide>,\n required: true,\n },\n rootMargin: String,\n },\n\n emits: {\n intersect: (side: InfiniteScrollSide, isIntersecting: boolean) => true,\n },\n\n setup (props, { emit }) {\n const { intersectionRef, isIntersecting } = useIntersectionObserver()\n\n watch(isIntersecting, async val => {\n emit('intersect', props.side, val)\n })\n\n useRender(() => (\n <div\n class=\"v-infinite-scroll-intersect\"\n style={{\n '--v-infinite-margin-size': props.rootMargin,\n }}\n ref={ intersectionRef }\n > </div>\n ))\n\n return {}\n },\n})\n\nexport const VInfiniteScroll = genericComponent<VInfiniteScrollSlots>()({\n name: 'VInfiniteScroll',\n\n props: makeVInfiniteScrollProps(),\n\n emits: {\n load: (options: { side: InfiniteScrollSide, done: (status: InfiniteScrollStatus) => void }) => true,\n },\n\n setup (props, { slots, emit }) {\n const rootEl = ref<HTMLDivElement>()\n const startStatus = shallowRef<InfiniteScrollStatus>('ok')\n const endStatus = shallowRef<InfiniteScrollStatus>('ok')\n const margin = computed(() => convertToUnit(props.margin))\n const isIntersecting = shallowRef(false)\n\n function setScrollAmount (amount: number) {\n if (!rootEl.value) return\n\n const property = props.direction === 'vertical' ? 'scrollTop' : 'scrollLeft'\n rootEl.value[property] = amount\n }\n\n function getScrollAmount () {\n if (!rootEl.value) return 0\n\n const property = props.direction === 'vertical' ? 'scrollTop' : 'scrollLeft'\n return rootEl.value[property]\n }\n\n function getScrollSize () {\n if (!rootEl.value) return 0\n\n const property = props.direction === 'vertical' ? 'scrollHeight' : 'scrollWidth'\n return rootEl.value[property]\n }\n\n function getContainerSize () {\n if (!rootEl.value) return 0\n\n const property = props.direction === 'vertical' ? 'clientHeight' : 'clientWidth'\n return rootEl.value[property]\n }\n\n onMounted(() => {\n if (!rootEl.value) return\n\n if (props.side === 'start') {\n setScrollAmount(getScrollSize())\n } else if (props.side === 'both') {\n setScrollAmount(getScrollSize() / 2 - getContainerSize() / 2)\n }\n })\n\n function setStatus (side: InfiniteScrollSide, status: InfiniteScrollStatus) {\n if (side === 'start') {\n startStatus.value = status\n } else if (side === 'end') {\n endStatus.value = status\n } else if (side === 'both') {\n startStatus.value = status\n endStatus.value = status\n }\n }\n\n function getStatus (side: string) {\n return side === 'start' ? startStatus.value : endStatus.value\n }\n\n let previousScrollSize = 0\n function handleIntersect (side: InfiniteScrollSide, _isIntersecting: boolean) {\n isIntersecting.value = _isIntersecting\n if (isIntersecting.value) {\n intersecting(side)\n }\n }\n\n function intersecting (side: InfiniteScrollSide) {\n if (props.mode !== 'manual' && !isIntersecting.value) return\n\n const status = getStatus(side)\n if (!rootEl.value || ['empty', 'loading'].includes(status)) return\n\n previousScrollSize = getScrollSize()\n setStatus(side, 'loading')\n\n function done (status: InfiniteScrollStatus) {\n setStatus(side, status)\n\n nextTick(() => {\n if (status === 'empty' || status === 'error') return\n\n if (status === 'ok' && side === 'start') {\n setScrollAmount(getScrollSize() - previousScrollSize + getScrollAmount())\n }\n if (props.mode !== 'manual') {\n nextTick(() => {\n // Browser takes 2 - 3 animation frames to trigger IntersectionObserver after\n // VInfiniteScrollIntersect leaves the viewpoint. So far I couldn't come up\n // with a better solution than using 3 nested window.requestAnimationFrame. (#17475)\n window.requestAnimationFrame(() => {\n window.requestAnimationFrame(() => {\n window.requestAnimationFrame(() => {\n intersecting(side)\n })\n })\n })\n })\n }\n })\n }\n\n emit('load', { side, done })\n }\n\n const { t } = useLocale()\n\n function renderSide (side: InfiniteScrollSide, status: InfiniteScrollStatus) {\n if (props.side !== side && props.side !== 'both') return\n\n const onClick = () => intersecting(side)\n const slotProps = { side, props: { onClick, color: props.color } }\n\n if (status === 'error') return slots.error?.(slotProps)\n\n if (status === 'empty') return slots.empty?.(slotProps) ?? <div>{ t(props.emptyText) }</div>\n\n if (props.mode === 'manual') {\n if (status === 'loading') {\n return slots.loading?.(slotProps) ?? (\n <VProgressCircular indeterminate color={ props.color } />\n )\n }\n\n return slots['load-more']?.(slotProps) ?? (\n <VBtn variant=\"outlined\" color={ props.color } onClick={ onClick }>\n { t(props.loadMoreText) }\n </VBtn>\n )\n }\n\n return slots.loading?.(slotProps) ?? (\n <VProgressCircular indeterminate color={ props.color } />\n )\n }\n\n const { dimensionStyles } = useDimension(props)\n\n useRender(() => {\n const Tag = props.tag\n const hasStartIntersect = props.side === 'start' || props.side === 'both'\n const hasEndIntersect = props.side === 'end' || props.side === 'both'\n const intersectMode = props.mode === 'intersect'\n\n return (\n <Tag\n ref={ rootEl }\n class={[\n 'v-infinite-scroll',\n `v-infinite-scroll--${props.direction}`,\n {\n 'v-infinite-scroll--start': hasStartIntersect,\n 'v-infinite-scroll--end': hasEndIntersect,\n },\n ]}\n style={ dimensionStyles.value }\n >\n <div class=\"v-infinite-scroll__side\">\n { renderSide('start', startStatus.value) }\n </div>\n\n { hasStartIntersect && intersectMode && (\n <VInfiniteScrollIntersect\n key=\"start\"\n side=\"start\"\n onIntersect={ handleIntersect }\n rootMargin={ margin.value }\n />\n )}\n\n { slots.default?.() }\n\n { hasEndIntersect && intersectMode && (\n <VInfiniteScrollIntersect\n key=\"end\"\n side=\"end\"\n onIntersect={ handleIntersect }\n rootMargin={ margin.value }\n />\n )}\n\n <div class=\"v-infinite-scroll__side\">\n { renderSide('end', endStatus.value) }\n </div>\n </Tag>\n )\n })\n\n function reset (side?: InfiniteScrollSide) {\n const effectiveSide = side ?? props.side\n setStatus(effectiveSide, 'ok')\n\n nextTick(() => {\n if (effectiveSide !== 'end') {\n setScrollAmount(\n getScrollSize() - previousScrollSize + getScrollAmount(),\n )\n }\n if (props.mode !== 'manual') {\n nextTick(() => {\n // See #17475\n window.requestAnimationFrame(() => {\n window.requestAnimationFrame(() => {\n window.requestAnimationFrame(() => {\n if (effectiveSide === 'both') {\n intersecting('start')\n intersecting('end')\n } else {\n intersecting(effectiveSide)\n }\n })\n })\n })\n })\n }\n })\n }\n\n return { reset }\n },\n})\n\nexport type VInfiniteScroll = InstanceType<typeof VInfiniteScroll>\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
@use '../../styles/settings'
|
|
1
2
|
@use '../../styles/tools'
|
|
2
3
|
@use './variables' as *
|
|
3
4
|
|
|
@@ -21,9 +22,11 @@
|
|
|
21
22
|
width: 100%
|
|
22
23
|
|
|
23
24
|
.v-infinite-scroll-intersect
|
|
25
|
+
overflow: hidden
|
|
24
26
|
pointer-events: none
|
|
25
27
|
margin-top: var(--v-infinite-margin)
|
|
26
28
|
margin-bottom: calc(var(--v-infinite-margin) * -1)
|
|
29
|
+
|
|
27
30
|
&:nth-child(2) // TODO: "1 of &" would be more stable if structure changes
|
|
28
31
|
--v-infinite-margin: var(--v-infinite-margin-size, 1px)
|
|
29
32
|
&:nth-last-child(2)
|
|
@@ -34,3 +37,10 @@
|
|
|
34
37
|
display: flex
|
|
35
38
|
justify-content: center
|
|
36
39
|
padding: $infinite-scroll-side-padding
|
|
40
|
+
transition-property: padding
|
|
41
|
+
transition-duration: settings.$transition-duration-root
|
|
42
|
+
transition-timing-function: settings.$standard-easing
|
|
43
|
+
|
|
44
|
+
&:empty,
|
|
45
|
+
&:has(> div:only-child:empty)
|
|
46
|
+
padding: 0
|
package/lib/entry-bundler.js
CHANGED
|
@@ -16,7 +16,7 @@ export const createVuetify = function () {
|
|
|
16
16
|
...options
|
|
17
17
|
});
|
|
18
18
|
};
|
|
19
|
-
export const version = "3.10.9-dev.2025-11-
|
|
19
|
+
export const version = "3.10.9-dev.2025-11-08";
|
|
20
20
|
createVuetify.version = version;
|
|
21
21
|
export { blueprints, components, directives };
|
|
22
22
|
export * from "./composables/index.js";
|
package/lib/framework.d.ts
CHANGED
|
@@ -2741,41 +2741,42 @@ declare module 'vue' {
|
|
|
2741
2741
|
$children?: VNodeChild
|
|
2742
2742
|
}
|
|
2743
2743
|
export interface GlobalComponents {
|
|
2744
|
-
VApp: typeof import('vuetify/components')['VApp']
|
|
2745
|
-
VAvatar: typeof import('vuetify/components')['VAvatar']
|
|
2746
2744
|
VAutocomplete: typeof import('vuetify/components')['VAutocomplete']
|
|
2747
|
-
|
|
2745
|
+
VApp: typeof import('vuetify/components')['VApp']
|
|
2748
2746
|
VAppBar: typeof import('vuetify/components')['VAppBar']
|
|
2749
2747
|
VAppBarNavIcon: typeof import('vuetify/components')['VAppBarNavIcon']
|
|
2750
2748
|
VAppBarTitle: typeof import('vuetify/components')['VAppBarTitle']
|
|
2749
|
+
VBadge: typeof import('vuetify/components')['VBadge']
|
|
2751
2750
|
VAlert: typeof import('vuetify/components')['VAlert']
|
|
2752
2751
|
VAlertTitle: typeof import('vuetify/components')['VAlertTitle']
|
|
2752
|
+
VAvatar: typeof import('vuetify/components')['VAvatar']
|
|
2753
|
+
VBottomNavigation: typeof import('vuetify/components')['VBottomNavigation']
|
|
2753
2754
|
VBanner: typeof import('vuetify/components')['VBanner']
|
|
2754
2755
|
VBannerActions: typeof import('vuetify/components')['VBannerActions']
|
|
2755
2756
|
VBannerText: typeof import('vuetify/components')['VBannerText']
|
|
2756
|
-
|
|
2757
|
+
VBtnGroup: typeof import('vuetify/components')['VBtnGroup']
|
|
2757
2758
|
VBreadcrumbs: typeof import('vuetify/components')['VBreadcrumbs']
|
|
2758
2759
|
VBreadcrumbsItem: typeof import('vuetify/components')['VBreadcrumbsItem']
|
|
2759
2760
|
VBreadcrumbsDivider: typeof import('vuetify/components')['VBreadcrumbsDivider']
|
|
2760
|
-
VBottomNavigation: typeof import('vuetify/components')['VBottomNavigation']
|
|
2761
|
-
VBtnGroup: typeof import('vuetify/components')['VBtnGroup']
|
|
2762
2761
|
VBtnToggle: typeof import('vuetify/components')['VBtnToggle']
|
|
2763
|
-
VBtn: typeof import('vuetify/components')['VBtn']
|
|
2764
|
-
VCheckbox: typeof import('vuetify/components')['VCheckbox']
|
|
2765
|
-
VCheckboxBtn: typeof import('vuetify/components')['VCheckboxBtn']
|
|
2766
2762
|
VCard: typeof import('vuetify/components')['VCard']
|
|
2767
2763
|
VCardActions: typeof import('vuetify/components')['VCardActions']
|
|
2768
2764
|
VCardItem: typeof import('vuetify/components')['VCardItem']
|
|
2769
2765
|
VCardSubtitle: typeof import('vuetify/components')['VCardSubtitle']
|
|
2770
2766
|
VCardText: typeof import('vuetify/components')['VCardText']
|
|
2771
2767
|
VCardTitle: typeof import('vuetify/components')['VCardTitle']
|
|
2768
|
+
VBtn: typeof import('vuetify/components')['VBtn']
|
|
2769
|
+
VChip: typeof import('vuetify/components')['VChip']
|
|
2770
|
+
VBottomSheet: typeof import('vuetify/components')['VBottomSheet']
|
|
2771
|
+
VCheckbox: typeof import('vuetify/components')['VCheckbox']
|
|
2772
|
+
VCheckboxBtn: typeof import('vuetify/components')['VCheckboxBtn']
|
|
2772
2773
|
VCarousel: typeof import('vuetify/components')['VCarousel']
|
|
2773
2774
|
VCarouselItem: typeof import('vuetify/components')['VCarouselItem']
|
|
2774
|
-
VChipGroup: typeof import('vuetify/components')['VChipGroup']
|
|
2775
|
-
VChip: typeof import('vuetify/components')['VChip']
|
|
2776
|
-
VCombobox: typeof import('vuetify/components')['VCombobox']
|
|
2777
2775
|
VColorPicker: typeof import('vuetify/components')['VColorPicker']
|
|
2778
2776
|
VCode: typeof import('vuetify/components')['VCode']
|
|
2777
|
+
VChipGroup: typeof import('vuetify/components')['VChipGroup']
|
|
2778
|
+
VCombobox: typeof import('vuetify/components')['VCombobox']
|
|
2779
|
+
VFab: typeof import('vuetify/components')['VFab']
|
|
2779
2780
|
VCounter: typeof import('vuetify/components')['VCounter']
|
|
2780
2781
|
VDatePicker: typeof import('vuetify/components')['VDatePicker']
|
|
2781
2782
|
VDatePickerControls: typeof import('vuetify/components')['VDatePickerControls']
|
|
@@ -2790,31 +2791,30 @@ declare module 'vue' {
|
|
|
2790
2791
|
VDataTableRow: typeof import('vuetify/components')['VDataTableRow']
|
|
2791
2792
|
VDataTableVirtual: typeof import('vuetify/components')['VDataTableVirtual']
|
|
2792
2793
|
VDataTableServer: typeof import('vuetify/components')['VDataTableServer']
|
|
2794
|
+
VEmptyState: typeof import('vuetify/components')['VEmptyState']
|
|
2793
2795
|
VDivider: typeof import('vuetify/components')['VDivider']
|
|
2794
2796
|
VField: typeof import('vuetify/components')['VField']
|
|
2795
2797
|
VFieldLabel: typeof import('vuetify/components')['VFieldLabel']
|
|
2798
|
+
VDialog: typeof import('vuetify/components')['VDialog']
|
|
2799
|
+
VFileInput: typeof import('vuetify/components')['VFileInput']
|
|
2796
2800
|
VExpansionPanels: typeof import('vuetify/components')['VExpansionPanels']
|
|
2797
2801
|
VExpansionPanel: typeof import('vuetify/components')['VExpansionPanel']
|
|
2798
2802
|
VExpansionPanelText: typeof import('vuetify/components')['VExpansionPanelText']
|
|
2799
2803
|
VExpansionPanelTitle: typeof import('vuetify/components')['VExpansionPanelTitle']
|
|
2800
|
-
VDialog: typeof import('vuetify/components')['VDialog']
|
|
2801
|
-
VFileInput: typeof import('vuetify/components')['VFileInput']
|
|
2802
|
-
VEmptyState: typeof import('vuetify/components')['VEmptyState']
|
|
2803
2804
|
VFooter: typeof import('vuetify/components')['VFooter']
|
|
2805
|
+
VImg: typeof import('vuetify/components')['VImg']
|
|
2806
|
+
VItemGroup: typeof import('vuetify/components')['VItemGroup']
|
|
2807
|
+
VItem: typeof import('vuetify/components')['VItem']
|
|
2804
2808
|
VInfiniteScroll: typeof import('vuetify/components')['VInfiniteScroll']
|
|
2805
|
-
VFab: typeof import('vuetify/components')['VFab']
|
|
2806
2809
|
VIcon: typeof import('vuetify/components')['VIcon']
|
|
2807
2810
|
VComponentIcon: typeof import('vuetify/components')['VComponentIcon']
|
|
2808
2811
|
VSvgIcon: typeof import('vuetify/components')['VSvgIcon']
|
|
2809
2812
|
VLigatureIcon: typeof import('vuetify/components')['VLigatureIcon']
|
|
2810
2813
|
VClassIcon: typeof import('vuetify/components')['VClassIcon']
|
|
2811
|
-
VLabel: typeof import('vuetify/components')['VLabel']
|
|
2812
|
-
VImg: typeof import('vuetify/components')['VImg']
|
|
2813
|
-
VKbd: typeof import('vuetify/components')['VKbd']
|
|
2814
|
-
VItemGroup: typeof import('vuetify/components')['VItemGroup']
|
|
2815
|
-
VItem: typeof import('vuetify/components')['VItem']
|
|
2816
2814
|
VInput: typeof import('vuetify/components')['VInput']
|
|
2815
|
+
VLabel: typeof import('vuetify/components')['VLabel']
|
|
2817
2816
|
VMain: typeof import('vuetify/components')['VMain']
|
|
2817
|
+
VKbd: typeof import('vuetify/components')['VKbd']
|
|
2818
2818
|
VList: typeof import('vuetify/components')['VList']
|
|
2819
2819
|
VListGroup: typeof import('vuetify/components')['VListGroup']
|
|
2820
2820
|
VListImg: typeof import('vuetify/components')['VListImg']
|
|
@@ -2824,64 +2824,64 @@ declare module 'vue' {
|
|
|
2824
2824
|
VListItemSubtitle: typeof import('vuetify/components')['VListItemSubtitle']
|
|
2825
2825
|
VListItemTitle: typeof import('vuetify/components')['VListItemTitle']
|
|
2826
2826
|
VListSubheader: typeof import('vuetify/components')['VListSubheader']
|
|
2827
|
-
VMenu: typeof import('vuetify/components')['VMenu']
|
|
2828
2827
|
VMessages: typeof import('vuetify/components')['VMessages']
|
|
2828
|
+
VMenu: typeof import('vuetify/components')['VMenu']
|
|
2829
2829
|
VNavigationDrawer: typeof import('vuetify/components')['VNavigationDrawer']
|
|
2830
|
-
VNumberInput: typeof import('vuetify/components')['VNumberInput']
|
|
2831
2830
|
VOtpInput: typeof import('vuetify/components')['VOtpInput']
|
|
2831
|
+
VNumberInput: typeof import('vuetify/components')['VNumberInput']
|
|
2832
2832
|
VPagination: typeof import('vuetify/components')['VPagination']
|
|
2833
|
-
VProgressLinear: typeof import('vuetify/components')['VProgressLinear']
|
|
2834
2833
|
VProgressCircular: typeof import('vuetify/components')['VProgressCircular']
|
|
2834
|
+
VOverlay: typeof import('vuetify/components')['VOverlay']
|
|
2835
|
+
VProgressLinear: typeof import('vuetify/components')['VProgressLinear']
|
|
2835
2836
|
VRating: typeof import('vuetify/components')['VRating']
|
|
2836
2837
|
VRadioGroup: typeof import('vuetify/components')['VRadioGroup']
|
|
2837
|
-
|
|
2838
|
+
VSheet: typeof import('vuetify/components')['VSheet']
|
|
2839
|
+
VSelectionControl: typeof import('vuetify/components')['VSelectionControl']
|
|
2838
2840
|
VSelect: typeof import('vuetify/components')['VSelect']
|
|
2839
2841
|
VSelectionControlGroup: typeof import('vuetify/components')['VSelectionControlGroup']
|
|
2840
|
-
|
|
2841
|
-
VSheet: typeof import('vuetify/components')['VSheet']
|
|
2842
|
+
VSlider: typeof import('vuetify/components')['VSlider']
|
|
2842
2843
|
VSlideGroup: typeof import('vuetify/components')['VSlideGroup']
|
|
2843
2844
|
VSlideGroupItem: typeof import('vuetify/components')['VSlideGroupItem']
|
|
2844
2845
|
VSkeletonLoader: typeof import('vuetify/components')['VSkeletonLoader']
|
|
2846
|
+
VSnackbar: typeof import('vuetify/components')['VSnackbar']
|
|
2847
|
+
VTab: typeof import('vuetify/components')['VTab']
|
|
2848
|
+
VTabs: typeof import('vuetify/components')['VTabs']
|
|
2849
|
+
VTabsWindow: typeof import('vuetify/components')['VTabsWindow']
|
|
2850
|
+
VTabsWindowItem: typeof import('vuetify/components')['VTabsWindowItem']
|
|
2845
2851
|
VStepper: typeof import('vuetify/components')['VStepper']
|
|
2846
2852
|
VStepperActions: typeof import('vuetify/components')['VStepperActions']
|
|
2847
2853
|
VStepperHeader: typeof import('vuetify/components')['VStepperHeader']
|
|
2848
2854
|
VStepperItem: typeof import('vuetify/components')['VStepperItem']
|
|
2849
2855
|
VStepperWindow: typeof import('vuetify/components')['VStepperWindow']
|
|
2850
2856
|
VStepperWindowItem: typeof import('vuetify/components')['VStepperWindowItem']
|
|
2851
|
-
VSnackbar: typeof import('vuetify/components')['VSnackbar']
|
|
2852
|
-
VSlider: typeof import('vuetify/components')['VSlider']
|
|
2853
|
-
VSystemBar: typeof import('vuetify/components')['VSystemBar']
|
|
2854
2857
|
VSwitch: typeof import('vuetify/components')['VSwitch']
|
|
2855
|
-
|
|
2856
|
-
VTab: typeof import('vuetify/components')['VTab']
|
|
2857
|
-
VTabs: typeof import('vuetify/components')['VTabs']
|
|
2858
|
-
VTabsWindow: typeof import('vuetify/components')['VTabsWindow']
|
|
2859
|
-
VTabsWindowItem: typeof import('vuetify/components')['VTabsWindowItem']
|
|
2860
|
-
VTable: typeof import('vuetify/components')['VTable']
|
|
2861
|
-
VTextField: typeof import('vuetify/components')['VTextField']
|
|
2858
|
+
VSystemBar: typeof import('vuetify/components')['VSystemBar']
|
|
2862
2859
|
VTimePicker: typeof import('vuetify/components')['VTimePicker']
|
|
2863
2860
|
VTimePickerClock: typeof import('vuetify/components')['VTimePickerClock']
|
|
2864
2861
|
VTimePickerControls: typeof import('vuetify/components')['VTimePickerControls']
|
|
2865
|
-
|
|
2866
|
-
|
|
2862
|
+
VTable: typeof import('vuetify/components')['VTable']
|
|
2863
|
+
VTextarea: typeof import('vuetify/components')['VTextarea']
|
|
2864
|
+
VTextField: typeof import('vuetify/components')['VTextField']
|
|
2867
2865
|
VTooltip: typeof import('vuetify/components')['VTooltip']
|
|
2868
|
-
VTreeview: typeof import('vuetify/components')['VTreeview']
|
|
2869
|
-
VTreeviewItem: typeof import('vuetify/components')['VTreeviewItem']
|
|
2870
|
-
VTreeviewGroup: typeof import('vuetify/components')['VTreeviewGroup']
|
|
2871
2866
|
VWindow: typeof import('vuetify/components')['VWindow']
|
|
2872
2867
|
VWindowItem: typeof import('vuetify/components')['VWindowItem']
|
|
2868
|
+
VTimeline: typeof import('vuetify/components')['VTimeline']
|
|
2869
|
+
VTimelineItem: typeof import('vuetify/components')['VTimelineItem']
|
|
2873
2870
|
VToolbar: typeof import('vuetify/components')['VToolbar']
|
|
2874
2871
|
VToolbarTitle: typeof import('vuetify/components')['VToolbarTitle']
|
|
2875
2872
|
VToolbarItems: typeof import('vuetify/components')['VToolbarItems']
|
|
2873
|
+
VTreeview: typeof import('vuetify/components')['VTreeview']
|
|
2874
|
+
VTreeviewItem: typeof import('vuetify/components')['VTreeviewItem']
|
|
2875
|
+
VTreeviewGroup: typeof import('vuetify/components')['VTreeviewGroup']
|
|
2876
2876
|
VConfirmEdit: typeof import('vuetify/components')['VConfirmEdit']
|
|
2877
|
-
VDefaultsProvider: typeof import('vuetify/components')['VDefaultsProvider']
|
|
2878
2877
|
VDataIterator: typeof import('vuetify/components')['VDataIterator']
|
|
2878
|
+
VDefaultsProvider: typeof import('vuetify/components')['VDefaultsProvider']
|
|
2879
2879
|
VForm: typeof import('vuetify/components')['VForm']
|
|
2880
|
-
VHover: typeof import('vuetify/components')['VHover']
|
|
2881
2880
|
VContainer: typeof import('vuetify/components')['VContainer']
|
|
2882
2881
|
VCol: typeof import('vuetify/components')['VCol']
|
|
2883
2882
|
VRow: typeof import('vuetify/components')['VRow']
|
|
2884
2883
|
VSpacer: typeof import('vuetify/components')['VSpacer']
|
|
2884
|
+
VHover: typeof import('vuetify/components')['VHover']
|
|
2885
2885
|
VLayout: typeof import('vuetify/components')['VLayout']
|
|
2886
2886
|
VLayoutItem: typeof import('vuetify/components')['VLayoutItem']
|
|
2887
2887
|
VLocaleProvider: typeof import('vuetify/components')['VLocaleProvider']
|
|
@@ -2889,13 +2889,12 @@ declare module 'vue' {
|
|
|
2889
2889
|
VNoSsr: typeof import('vuetify/components')['VNoSsr']
|
|
2890
2890
|
VParallax: typeof import('vuetify/components')['VParallax']
|
|
2891
2891
|
VRadio: typeof import('vuetify/components')['VRadio']
|
|
2892
|
-
VRangeSlider: typeof import('vuetify/components')['VRangeSlider']
|
|
2893
2892
|
VResponsive: typeof import('vuetify/components')['VResponsive']
|
|
2894
2893
|
VSnackbarQueue: typeof import('vuetify/components')['VSnackbarQueue']
|
|
2894
|
+
VRangeSlider: typeof import('vuetify/components')['VRangeSlider']
|
|
2895
2895
|
VSpeedDial: typeof import('vuetify/components')['VSpeedDial']
|
|
2896
2896
|
VSparkline: typeof import('vuetify/components')['VSparkline']
|
|
2897
2897
|
VThemeProvider: typeof import('vuetify/components')['VThemeProvider']
|
|
2898
|
-
VValidation: typeof import('vuetify/components')['VValidation']
|
|
2899
2898
|
VVirtualScroll: typeof import('vuetify/components')['VVirtualScroll']
|
|
2900
2899
|
VFabTransition: typeof import('vuetify/components')['VFabTransition']
|
|
2901
2900
|
VDialogBottomTransition: typeof import('vuetify/components')['VDialogBottomTransition']
|
|
@@ -2913,23 +2912,24 @@ declare module 'vue' {
|
|
|
2913
2912
|
VExpandTransition: typeof import('vuetify/components')['VExpandTransition']
|
|
2914
2913
|
VExpandXTransition: typeof import('vuetify/components')['VExpandXTransition']
|
|
2915
2914
|
VDialogTransition: typeof import('vuetify/components')['VDialogTransition']
|
|
2915
|
+
VValidation: typeof import('vuetify/components')['VValidation']
|
|
2916
|
+
VColorInput: typeof import('vuetify/labs/components')['VColorInput']
|
|
2916
2917
|
VCalendar: typeof import('vuetify/labs/components')['VCalendar']
|
|
2917
2918
|
VFileUpload: typeof import('vuetify/labs/components')['VFileUpload']
|
|
2918
2919
|
VFileUploadItem: typeof import('vuetify/labs/components')['VFileUploadItem']
|
|
2919
|
-
|
|
2920
|
+
VIconBtn: typeof import('vuetify/labs/components')['VIconBtn']
|
|
2921
|
+
VStepperVertical: typeof import('vuetify/labs/components')['VStepperVertical']
|
|
2922
|
+
VStepperVerticalItem: typeof import('vuetify/labs/components')['VStepperVerticalItem']
|
|
2923
|
+
VStepperVerticalActions: typeof import('vuetify/labs/components')['VStepperVerticalActions']
|
|
2920
2924
|
VPicker: typeof import('vuetify/labs/components')['VPicker']
|
|
2921
2925
|
VPickerTitle: typeof import('vuetify/labs/components')['VPickerTitle']
|
|
2922
|
-
|
|
2926
|
+
VHotkey: typeof import('vuetify/labs/components')['VHotkey']
|
|
2923
2927
|
VPie: typeof import('vuetify/labs/components')['VPie']
|
|
2924
2928
|
VPieSegment: typeof import('vuetify/labs/components')['VPieSegment']
|
|
2925
2929
|
VPieTooltip: typeof import('vuetify/labs/components')['VPieTooltip']
|
|
2926
2930
|
VVideo: typeof import('vuetify/labs/components')['VVideo']
|
|
2927
2931
|
VVideoControls: typeof import('vuetify/labs/components')['VVideoControls']
|
|
2928
2932
|
VVideoVolume: typeof import('vuetify/labs/components')['VVideoVolume']
|
|
2929
|
-
VStepperVertical: typeof import('vuetify/labs/components')['VStepperVertical']
|
|
2930
|
-
VStepperVerticalItem: typeof import('vuetify/labs/components')['VStepperVerticalItem']
|
|
2931
|
-
VStepperVerticalActions: typeof import('vuetify/labs/components')['VStepperVerticalActions']
|
|
2932
|
-
VHotkey: typeof import('vuetify/labs/components')['VHotkey']
|
|
2933
2933
|
VDateInput: typeof import('vuetify/labs/components')['VDateInput']
|
|
2934
2934
|
VMaskInput: typeof import('vuetify/labs/components')['VMaskInput']
|
|
2935
2935
|
VPullToRefresh: typeof import('vuetify/labs/components')['VPullToRefresh']
|
package/lib/framework.js
CHANGED