@vuetify/nightly 3.7.0-master.2024-08-26 → 3.7.1-dev.2024-08-28
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/dist/json/attributes.json +98 -98
- package/dist/json/importMap-labs.json +40 -40
- package/dist/json/importMap.json +136 -136
- package/dist/json/web-types.json +198 -198
- package/dist/vuetify-labs.css +2136 -2124
- package/dist/vuetify-labs.esm.js +16 -14
- package/dist/vuetify-labs.esm.js.map +1 -1
- package/dist/vuetify-labs.js +16 -14
- package/dist/vuetify-labs.min.css +2 -2
- package/dist/vuetify.css +1096 -1084
- package/dist/vuetify.d.ts +58 -58
- package/dist/vuetify.esm.js +16 -14
- package/dist/vuetify.esm.js.map +1 -1
- package/dist/vuetify.js +16 -14
- package/dist/vuetify.js.map +1 -1
- package/dist/vuetify.min.css +2 -2
- package/dist/vuetify.min.js +1058 -1057
- package/dist/vuetify.min.js.map +1 -1
- package/lib/components/VAvatar/VAvatar.css +1 -1
- package/lib/components/VAvatar/_variables.scss +1 -1
- package/lib/components/VInfiniteScroll/VInfiniteScroll.css +13 -1
- package/lib/components/VInfiniteScroll/VInfiniteScroll.mjs +6 -8
- package/lib/components/VInfiniteScroll/VInfiniteScroll.mjs.map +1 -1
- package/lib/components/VInfiniteScroll/VInfiniteScroll.sass +10 -1
- package/lib/entry-bundler.mjs +1 -1
- package/lib/entry-bundler.mjs.map +1 -1
- package/lib/framework.mjs +1 -1
- package/lib/framework.mjs.map +1 -1
- package/lib/index.d.mts +58 -58
- package/lib/util/helpers.mjs +7 -3
- package/lib/util/helpers.mjs.map +1 -1
- package/package.json +1 -1
@@ -10,7 +10,7 @@ $avatar-border-color: settings.$border-color-root !default;
|
|
10
10
|
$avatar-border-radius: map.get(settings.$rounded, 0) !default;
|
11
11
|
$avatar-border-style: settings.$border-style-root !default;
|
12
12
|
$avatar-border-thin-width: thin !default;
|
13
|
-
$avatar-border-width:
|
13
|
+
$avatar-border-width: 0 !default;
|
14
14
|
$avatar-color: rgba(var(--v-theme-on-surface), var(--v-medium-emphasis-opacity)) !default;
|
15
15
|
$avatar-density: ('default': 0, 'comfortable': -1, 'compact': -2) !default;
|
16
16
|
$avatar-elevation: 1 !default;
|
@@ -5,7 +5,7 @@
|
|
5
5
|
}
|
6
6
|
.v-infinite-scroll--horizontal .v-infinite-scroll-intersect {
|
7
7
|
height: 100%;
|
8
|
-
width: 1px;
|
8
|
+
width: var(--v-infinite-margin-size, 1px);
|
9
9
|
}
|
10
10
|
|
11
11
|
.v-infinite-scroll--vertical {
|
@@ -18,6 +18,18 @@
|
|
18
18
|
width: 100%;
|
19
19
|
}
|
20
20
|
|
21
|
+
.v-infinite-scroll-intersect {
|
22
|
+
pointer-events: none;
|
23
|
+
margin-top: var(--v-infinite-margin);
|
24
|
+
margin-bottom: calc(var(--v-infinite-margin) * -1);
|
25
|
+
}
|
26
|
+
.v-infinite-scroll-intersect:nth-child(2) {
|
27
|
+
--v-infinite-margin: var(--v-infinite-margin-size, 1px);
|
28
|
+
}
|
29
|
+
.v-infinite-scroll-intersect:nth-last-child(2) {
|
30
|
+
--v-infinite-margin: calc(var(--v-infinite-margin-size, 1px) * -1);
|
31
|
+
}
|
32
|
+
|
21
33
|
.v-infinite-scroll__side {
|
22
34
|
align-items: center;
|
23
35
|
display: flex;
|
@@ -47,7 +47,6 @@ export const VInfiniteScrollIntersect = defineComponent({
|
|
47
47
|
type: String,
|
48
48
|
required: true
|
49
49
|
},
|
50
|
-
rootRef: null,
|
51
50
|
rootMargin: String
|
52
51
|
},
|
53
52
|
emits: {
|
@@ -60,14 +59,15 @@ export const VInfiniteScrollIntersect = defineComponent({
|
|
60
59
|
const {
|
61
60
|
intersectionRef,
|
62
61
|
isIntersecting
|
63
|
-
} = useIntersectionObserver(
|
64
|
-
rootMargin: props.rootMargin
|
65
|
-
} : undefined);
|
62
|
+
} = useIntersectionObserver();
|
66
63
|
watch(isIntersecting, async val => {
|
67
64
|
emit('intersect', props.side, val);
|
68
65
|
});
|
69
66
|
useRender(() => _createVNode("div", {
|
70
67
|
"class": "v-infinite-scroll-intersect",
|
68
|
+
"style": {
|
69
|
+
'--v-infinite-margin-size': props.rootMargin
|
70
|
+
},
|
71
71
|
"ref": intersectionRef
|
72
72
|
}, [_createTextVNode("\xA0")]));
|
73
73
|
return {};
|
@@ -218,17 +218,15 @@ export const VInfiniteScroll = genericComponent()({
|
|
218
218
|
}, {
|
219
219
|
default: () => [_createVNode("div", {
|
220
220
|
"class": "v-infinite-scroll__side"
|
221
|
-
}, [renderSide('start', startStatus.value)]),
|
221
|
+
}, [renderSide('start', startStatus.value)]), hasStartIntersect && intersectMode && _createVNode(VInfiniteScrollIntersect, {
|
222
222
|
"key": "start",
|
223
223
|
"side": "start",
|
224
224
|
"onIntersect": handleIntersect,
|
225
|
-
"rootRef": rootEl.value,
|
226
225
|
"rootMargin": margin.value
|
227
|
-
}, null), slots.default?.(),
|
226
|
+
}, null), slots.default?.(), hasEndIntersect && intersectMode && _createVNode(VInfiniteScrollIntersect, {
|
228
227
|
"key": "end",
|
229
228
|
"side": "end",
|
230
229
|
"onIntersect": handleIntersect,
|
231
|
-
"rootRef": rootEl.value,
|
232
230
|
"rootMargin": margin.value
|
233
231
|
}, null), _createVNode("div", {
|
234
232
|
"class": "v-infinite-scroll__side"
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"VInfiniteScroll.mjs","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","rootRef","rootMargin","emits","intersect","isIntersecting","setup","_ref","emit","intersectionRef","entries","undefined","val","_createVNode","_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","dimensionStyles","Tag","tag","hasStartIntersect","hasEndIntersect","intersectMode"],"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 rootRef: null,\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(entries => {\n }, props.rootMargin ? {\n rootMargin: props.rootMargin,\n } : undefined)\n\n watch(isIntersecting, async val => {\n emit('intersect', props.side, val)\n })\n\n useRender(() => (\n <div class=\"v-infinite-scroll-intersect\" ref={ intersectionRef }> </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 }\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 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 { rootEl.value && hasStartIntersect && intersectMode && (\n <VInfiniteScrollIntersect\n key=\"start\"\n side=\"start\"\n onIntersect={ handleIntersect }\n rootRef={ rootEl.value }\n rootMargin={ margin.value }\n />\n )}\n\n { slots.default?.() }\n\n { rootEl.value && hasEndIntersect && intersectMode && (\n <VInfiniteScrollIntersect\n key=\"end\"\n side=\"end\"\n onIntersect={ handleIntersect }\n rootRef={ rootEl.value }\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})\n\nexport type VInfiniteScroll = InstanceType<typeof VInfiniteScroll>\n"],"mappings":"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","ignoreList":[]}
|
1
|
+
{"version":3,"file":"VInfiniteScroll.mjs","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","_createVNode","_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","dimensionStyles","Tag","tag","hasStartIntersect","hasEndIntersect","intersectMode"],"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 }\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 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})\n\nexport type VInfiniteScroll = InstanceType<typeof VInfiniteScroll>\n"],"mappings":"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","ignoreList":[]}
|
@@ -9,7 +9,7 @@
|
|
9
9
|
|
10
10
|
.v-infinite-scroll-intersect
|
11
11
|
height: 100%
|
12
|
-
width: 1px
|
12
|
+
width: var(--v-infinite-margin-size, 1px)
|
13
13
|
|
14
14
|
.v-infinite-scroll--vertical
|
15
15
|
display: flex
|
@@ -20,6 +20,15 @@
|
|
20
20
|
height: 1px
|
21
21
|
width: 100%
|
22
22
|
|
23
|
+
.v-infinite-scroll-intersect
|
24
|
+
pointer-events: none
|
25
|
+
margin-top: var(--v-infinite-margin)
|
26
|
+
margin-bottom: calc(var(--v-infinite-margin) * -1)
|
27
|
+
&:nth-child(2) // TODO: "1 of &" would be more stable if structure changes
|
28
|
+
--v-infinite-margin: var(--v-infinite-margin-size, 1px)
|
29
|
+
&:nth-last-child(2)
|
30
|
+
--v-infinite-margin: calc(var(--v-infinite-margin-size, 1px) * -1)
|
31
|
+
|
23
32
|
.v-infinite-scroll__side
|
24
33
|
align-items: center
|
25
34
|
display: flex
|
package/lib/entry-bundler.mjs
CHANGED
@@ -16,7 +16,7 @@ export const createVuetify = function () {
|
|
16
16
|
...options
|
17
17
|
});
|
18
18
|
};
|
19
|
-
export const version = "3.7.
|
19
|
+
export const version = "3.7.1-dev.2024-08-28";
|
20
20
|
createVuetify.version = version;
|
21
21
|
export { blueprints, components, directives };
|
22
22
|
export * from "./composables/index.mjs";
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"entry-bundler.mjs","names":["blueprints","components","directives","createVuetify","_createVuetify","options","arguments","length","undefined","version"],"sources":["../src/entry-bundler.ts"],"sourcesContent":["/* eslint-disable local-rules/sort-imports */\n\n// Styles\nimport './styles/main.sass'\n\n// Components\nimport * as blueprints from './blueprints'\nimport * as components from './components'\nimport * as directives from './directives'\nimport { createVuetify as _createVuetify } from './framework'\n\n// Types\nimport type { VuetifyOptions } from './framework'\n\nexport const createVuetify = (options: VuetifyOptions = {}) => {\n return _createVuetify({ components, directives, ...options })\n}\n\nexport const version = __VUETIFY_VERSION__\ncreateVuetify.version = version\n\nexport {\n blueprints,\n components,\n directives,\n}\nexport * from './composables'\n"],"mappings":"AAAA;;AAEA;AACA;;AAEA;AAAA,OACO,KAAKA,UAAU;AAAA,OACf,KAAKC,UAAU;AAAA,OACf,KAAKC,UAAU;AAAA,SACbC,aAAa,IAAIC,cAAc,2BAExC;AAGA,OAAO,MAAMD,aAAa,GAAG,SAAAA,CAAA,EAAkC;EAAA,IAAjCE,OAAuB,GAAAC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,CAAC,CAAC;EACxD,OAAOF,cAAc,CAAC;IAAEH,UAAU;IAAEC,UAAU;IAAE,GAAGG;EAAQ,CAAC,CAAC;AAC/D,CAAC;AAED,OAAO,MAAMI,OAAO,
|
1
|
+
{"version":3,"file":"entry-bundler.mjs","names":["blueprints","components","directives","createVuetify","_createVuetify","options","arguments","length","undefined","version"],"sources":["../src/entry-bundler.ts"],"sourcesContent":["/* eslint-disable local-rules/sort-imports */\n\n// Styles\nimport './styles/main.sass'\n\n// Components\nimport * as blueprints from './blueprints'\nimport * as components from './components'\nimport * as directives from './directives'\nimport { createVuetify as _createVuetify } from './framework'\n\n// Types\nimport type { VuetifyOptions } from './framework'\n\nexport const createVuetify = (options: VuetifyOptions = {}) => {\n return _createVuetify({ components, directives, ...options })\n}\n\nexport const version = __VUETIFY_VERSION__\ncreateVuetify.version = version\n\nexport {\n blueprints,\n components,\n directives,\n}\nexport * from './composables'\n"],"mappings":"AAAA;;AAEA;AACA;;AAEA;AAAA,OACO,KAAKA,UAAU;AAAA,OACf,KAAKC,UAAU;AAAA,OACf,KAAKC,UAAU;AAAA,SACbC,aAAa,IAAIC,cAAc,2BAExC;AAGA,OAAO,MAAMD,aAAa,GAAG,SAAAA,CAAA,EAAkC;EAAA,IAAjCE,OAAuB,GAAAC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,CAAC,CAAC;EACxD,OAAOF,cAAc,CAAC;IAAEH,UAAU;IAAEC,UAAU;IAAE,GAAGG;EAAQ,CAAC,CAAC;AAC/D,CAAC;AAED,OAAO,MAAMI,OAAO,yBAAsB;AAC1CN,aAAa,CAACM,OAAO,GAAGA,OAAO;AAE/B,SACET,UAAU,EACVC,UAAU,EACVC,UAAU;AACX","ignoreList":[]}
|
package/lib/framework.mjs
CHANGED
package/lib/framework.mjs.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"framework.mjs","names":["createDate","DateAdapterSymbol","DateOptionsSymbol","createDefaults","DefaultsSymbol","createDisplay","DisplaySymbol","createGoTo","GoToSymbol","createIcons","IconSymbol","createLocale","LocaleSymbol","createTheme","ThemeSymbol","nextTick","reactive","defineComponent","getUid","IN_BROWSER","mergeDeep","createVuetify","vuetify","arguments","length","undefined","blueprint","rest","options","aliases","components","directives","defaults","display","ssr","theme","icons","locale","date","goTo","install","app","key","directive","component","name","aliasName","provide","instance","$nuxt","hook","update","mount","vm","reset","__VUE_OPTIONS_API__","mixin","computed","$vuetify","inject","call","version","$","provides","parent","vnode","appContext"],"sources":["../src/framework.ts"],"sourcesContent":["// Composables\nimport { createDate, DateAdapterSymbol, DateOptionsSymbol } from '@/composables/date/date'\nimport { createDefaults, DefaultsSymbol } from '@/composables/defaults'\nimport { createDisplay, DisplaySymbol } from '@/composables/display'\nimport { createGoTo, GoToSymbol } from '@/composables/goto'\nimport { createIcons, IconSymbol } from '@/composables/icons'\nimport { createLocale, LocaleSymbol } from '@/composables/locale'\nimport { createTheme, ThemeSymbol } from '@/composables/theme'\n\n// Utilities\nimport { nextTick, reactive } from 'vue'\nimport { defineComponent, getUid, IN_BROWSER, mergeDeep } from '@/util'\n\n// Types\nimport type { App, ComponentPublicInstance, InjectionKey } from 'vue'\nimport type { DateOptions } from '@/composables/date'\nimport type { DefaultsOptions } from '@/composables/defaults'\nimport type { DisplayOptions, SSROptions } from '@/composables/display'\nimport type { GoToOptions } from '@/composables/goto'\nimport type { IconOptions } from '@/composables/icons'\nimport type { LocaleOptions, RtlOptions } from '@/composables/locale'\nimport type { ThemeOptions } from '@/composables/theme'\nexport * from './composables'\nexport type { DateOptions, DateInstance, DateModule } from '@/composables/date'\n\nexport interface VuetifyOptions {\n aliases?: Record<string, any>\n blueprint?: Blueprint\n components?: Record<string, any>\n date?: DateOptions\n directives?: Record<string, any>\n defaults?: DefaultsOptions\n display?: DisplayOptions\n goTo?: GoToOptions\n theme?: ThemeOptions\n icons?: IconOptions\n locale?: LocaleOptions & RtlOptions\n ssr?: SSROptions\n}\n\nexport interface Blueprint extends Omit<VuetifyOptions, 'blueprint'> {}\n\nexport function createVuetify (vuetify: VuetifyOptions = {}) {\n const { blueprint, ...rest } = vuetify\n const options: VuetifyOptions = mergeDeep(blueprint, rest)\n const {\n aliases = {},\n components = {},\n directives = {},\n } = options\n\n const defaults = createDefaults(options.defaults)\n const display = createDisplay(options.display, options.ssr)\n const theme = createTheme(options.theme)\n const icons = createIcons(options.icons)\n const locale = createLocale(options.locale)\n const date = createDate(options.date, locale)\n const goTo = createGoTo(options.goTo, locale)\n\n const install = (app: App) => {\n for (const key in directives) {\n app.directive(key, directives[key])\n }\n\n for (const key in components) {\n app.component(key, components[key])\n }\n\n for (const key in aliases) {\n app.component(key, defineComponent({\n ...aliases[key],\n name: key,\n aliasName: aliases[key].name,\n }))\n }\n\n theme.install(app)\n\n app.provide(DefaultsSymbol, defaults)\n app.provide(DisplaySymbol, display)\n app.provide(ThemeSymbol, theme)\n app.provide(IconSymbol, icons)\n app.provide(LocaleSymbol, locale)\n app.provide(DateOptionsSymbol, date.options)\n app.provide(DateAdapterSymbol, date.instance)\n app.provide(GoToSymbol, goTo)\n\n if (IN_BROWSER && options.ssr) {\n if (app.$nuxt) {\n app.$nuxt.hook('app:suspense:resolve', () => {\n display.update()\n })\n } else {\n const { mount } = app\n app.mount = (...args) => {\n const vm = mount(...args)\n nextTick(() => display.update())\n app.mount = mount\n return vm\n }\n }\n }\n\n getUid.reset()\n\n if (typeof __VUE_OPTIONS_API__ !== 'boolean' || __VUE_OPTIONS_API__) {\n app.mixin({\n computed: {\n $vuetify () {\n return reactive({\n defaults: inject.call(this, DefaultsSymbol),\n display: inject.call(this, DisplaySymbol),\n theme: inject.call(this, ThemeSymbol),\n icons: inject.call(this, IconSymbol),\n locale: inject.call(this, LocaleSymbol),\n date: inject.call(this, DateAdapterSymbol),\n })\n },\n },\n })\n }\n }\n\n return {\n install,\n defaults,\n display,\n theme,\n icons,\n locale,\n date,\n goTo,\n }\n}\n\nexport const version = __VUETIFY_VERSION__\ncreateVuetify.version = version\n\n// Vue's inject() can only be used in setup\nfunction inject (this: ComponentPublicInstance, key: InjectionKey<any> | string) {\n const vm = this.$\n\n const provides = vm.parent?.provides ?? vm.vnode.appContext?.provides\n\n if (provides && (key as any) in provides) {\n return provides[(key as string)]\n }\n}\n"],"mappings":"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
|
1
|
+
{"version":3,"file":"framework.mjs","names":["createDate","DateAdapterSymbol","DateOptionsSymbol","createDefaults","DefaultsSymbol","createDisplay","DisplaySymbol","createGoTo","GoToSymbol","createIcons","IconSymbol","createLocale","LocaleSymbol","createTheme","ThemeSymbol","nextTick","reactive","defineComponent","getUid","IN_BROWSER","mergeDeep","createVuetify","vuetify","arguments","length","undefined","blueprint","rest","options","aliases","components","directives","defaults","display","ssr","theme","icons","locale","date","goTo","install","app","key","directive","component","name","aliasName","provide","instance","$nuxt","hook","update","mount","vm","reset","__VUE_OPTIONS_API__","mixin","computed","$vuetify","inject","call","version","$","provides","parent","vnode","appContext"],"sources":["../src/framework.ts"],"sourcesContent":["// Composables\nimport { createDate, DateAdapterSymbol, DateOptionsSymbol } from '@/composables/date/date'\nimport { createDefaults, DefaultsSymbol } from '@/composables/defaults'\nimport { createDisplay, DisplaySymbol } from '@/composables/display'\nimport { createGoTo, GoToSymbol } from '@/composables/goto'\nimport { createIcons, IconSymbol } from '@/composables/icons'\nimport { createLocale, LocaleSymbol } from '@/composables/locale'\nimport { createTheme, ThemeSymbol } from '@/composables/theme'\n\n// Utilities\nimport { nextTick, reactive } from 'vue'\nimport { defineComponent, getUid, IN_BROWSER, mergeDeep } from '@/util'\n\n// Types\nimport type { App, ComponentPublicInstance, InjectionKey } from 'vue'\nimport type { DateOptions } from '@/composables/date'\nimport type { DefaultsOptions } from '@/composables/defaults'\nimport type { DisplayOptions, SSROptions } from '@/composables/display'\nimport type { GoToOptions } from '@/composables/goto'\nimport type { IconOptions } from '@/composables/icons'\nimport type { LocaleOptions, RtlOptions } from '@/composables/locale'\nimport type { ThemeOptions } from '@/composables/theme'\nexport * from './composables'\nexport type { DateOptions, DateInstance, DateModule } from '@/composables/date'\n\nexport interface VuetifyOptions {\n aliases?: Record<string, any>\n blueprint?: Blueprint\n components?: Record<string, any>\n date?: DateOptions\n directives?: Record<string, any>\n defaults?: DefaultsOptions\n display?: DisplayOptions\n goTo?: GoToOptions\n theme?: ThemeOptions\n icons?: IconOptions\n locale?: LocaleOptions & RtlOptions\n ssr?: SSROptions\n}\n\nexport interface Blueprint extends Omit<VuetifyOptions, 'blueprint'> {}\n\nexport function createVuetify (vuetify: VuetifyOptions = {}) {\n const { blueprint, ...rest } = vuetify\n const options: VuetifyOptions = mergeDeep(blueprint, rest)\n const {\n aliases = {},\n components = {},\n directives = {},\n } = options\n\n const defaults = createDefaults(options.defaults)\n const display = createDisplay(options.display, options.ssr)\n const theme = createTheme(options.theme)\n const icons = createIcons(options.icons)\n const locale = createLocale(options.locale)\n const date = createDate(options.date, locale)\n const goTo = createGoTo(options.goTo, locale)\n\n const install = (app: App) => {\n for (const key in directives) {\n app.directive(key, directives[key])\n }\n\n for (const key in components) {\n app.component(key, components[key])\n }\n\n for (const key in aliases) {\n app.component(key, defineComponent({\n ...aliases[key],\n name: key,\n aliasName: aliases[key].name,\n }))\n }\n\n theme.install(app)\n\n app.provide(DefaultsSymbol, defaults)\n app.provide(DisplaySymbol, display)\n app.provide(ThemeSymbol, theme)\n app.provide(IconSymbol, icons)\n app.provide(LocaleSymbol, locale)\n app.provide(DateOptionsSymbol, date.options)\n app.provide(DateAdapterSymbol, date.instance)\n app.provide(GoToSymbol, goTo)\n\n if (IN_BROWSER && options.ssr) {\n if (app.$nuxt) {\n app.$nuxt.hook('app:suspense:resolve', () => {\n display.update()\n })\n } else {\n const { mount } = app\n app.mount = (...args) => {\n const vm = mount(...args)\n nextTick(() => display.update())\n app.mount = mount\n return vm\n }\n }\n }\n\n getUid.reset()\n\n if (typeof __VUE_OPTIONS_API__ !== 'boolean' || __VUE_OPTIONS_API__) {\n app.mixin({\n computed: {\n $vuetify () {\n return reactive({\n defaults: inject.call(this, DefaultsSymbol),\n display: inject.call(this, DisplaySymbol),\n theme: inject.call(this, ThemeSymbol),\n icons: inject.call(this, IconSymbol),\n locale: inject.call(this, LocaleSymbol),\n date: inject.call(this, DateAdapterSymbol),\n })\n },\n },\n })\n }\n }\n\n return {\n install,\n defaults,\n display,\n theme,\n icons,\n locale,\n date,\n goTo,\n }\n}\n\nexport const version = __VUETIFY_VERSION__\ncreateVuetify.version = version\n\n// Vue's inject() can only be used in setup\nfunction inject (this: ComponentPublicInstance, key: InjectionKey<any> | string) {\n const vm = this.$\n\n const provides = vm.parent?.provides ?? vm.vnode.appContext?.provides\n\n if (provides && (key as any) in provides) {\n return provides[(key as string)]\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
package/lib/index.d.mts
CHANGED
@@ -488,45 +488,51 @@ declare module 'vue' {
|
|
488
488
|
export interface GlobalComponents {
|
489
489
|
VApp: typeof import('vuetify/components')['VApp']
|
490
490
|
VAvatar: typeof import('vuetify/components')['VAvatar']
|
491
|
-
|
492
|
-
|
491
|
+
VBanner: typeof import('vuetify/components')['VBanner']
|
492
|
+
VBannerActions: typeof import('vuetify/components')['VBannerActions']
|
493
|
+
VBannerText: typeof import('vuetify/components')['VBannerText']
|
493
494
|
VAppBar: typeof import('vuetify/components')['VAppBar']
|
494
495
|
VAppBarNavIcon: typeof import('vuetify/components')['VAppBarNavIcon']
|
495
496
|
VAppBarTitle: typeof import('vuetify/components')['VAppBarTitle']
|
496
|
-
VBottomNavigation: typeof import('vuetify/components')['VBottomNavigation']
|
497
|
-
VBadge: typeof import('vuetify/components')['VBadge']
|
498
497
|
VAutocomplete: typeof import('vuetify/components')['VAutocomplete']
|
498
|
+
VBadge: typeof import('vuetify/components')['VBadge']
|
499
|
+
VBottomNavigation: typeof import('vuetify/components')['VBottomNavigation']
|
500
|
+
VBtn: typeof import('vuetify/components')['VBtn']
|
499
501
|
VBottomSheet: typeof import('vuetify/components')['VBottomSheet']
|
500
|
-
|
501
|
-
|
502
|
-
VBannerText: typeof import('vuetify/components')['VBannerText']
|
502
|
+
VAlert: typeof import('vuetify/components')['VAlert']
|
503
|
+
VAlertTitle: typeof import('vuetify/components')['VAlertTitle']
|
503
504
|
VBreadcrumbs: typeof import('vuetify/components')['VBreadcrumbs']
|
504
505
|
VBreadcrumbsItem: typeof import('vuetify/components')['VBreadcrumbsItem']
|
505
506
|
VBreadcrumbsDivider: typeof import('vuetify/components')['VBreadcrumbsDivider']
|
506
|
-
VBtnGroup: typeof import('vuetify/components')['VBtnGroup']
|
507
507
|
VBtnToggle: typeof import('vuetify/components')['VBtnToggle']
|
508
|
-
|
509
|
-
VChipGroup: typeof import('vuetify/components')['VChipGroup']
|
508
|
+
VBtnGroup: typeof import('vuetify/components')['VBtnGroup']
|
510
509
|
VCard: typeof import('vuetify/components')['VCard']
|
511
510
|
VCardActions: typeof import('vuetify/components')['VCardActions']
|
512
511
|
VCardItem: typeof import('vuetify/components')['VCardItem']
|
513
512
|
VCardSubtitle: typeof import('vuetify/components')['VCardSubtitle']
|
514
513
|
VCardText: typeof import('vuetify/components')['VCardText']
|
515
514
|
VCardTitle: typeof import('vuetify/components')['VCardTitle']
|
516
|
-
|
517
|
-
VCheckboxBtn: typeof import('vuetify/components')['VCheckboxBtn']
|
515
|
+
VChip: typeof import('vuetify/components')['VChip']
|
518
516
|
VCarousel: typeof import('vuetify/components')['VCarousel']
|
519
517
|
VCarouselItem: typeof import('vuetify/components')['VCarouselItem']
|
520
|
-
|
521
|
-
|
518
|
+
VCheckbox: typeof import('vuetify/components')['VCheckbox']
|
519
|
+
VCheckboxBtn: typeof import('vuetify/components')['VCheckboxBtn']
|
520
|
+
VChipGroup: typeof import('vuetify/components')['VChipGroup']
|
522
521
|
VCode: typeof import('vuetify/components')['VCode']
|
522
|
+
VColorPicker: typeof import('vuetify/components')['VColorPicker']
|
523
523
|
VCombobox: typeof import('vuetify/components')['VCombobox']
|
524
|
+
VCounter: typeof import('vuetify/components')['VCounter']
|
524
525
|
VDatePicker: typeof import('vuetify/components')['VDatePicker']
|
525
526
|
VDatePickerControls: typeof import('vuetify/components')['VDatePickerControls']
|
526
527
|
VDatePickerHeader: typeof import('vuetify/components')['VDatePickerHeader']
|
527
528
|
VDatePickerMonth: typeof import('vuetify/components')['VDatePickerMonth']
|
528
529
|
VDatePickerMonths: typeof import('vuetify/components')['VDatePickerMonths']
|
529
530
|
VDatePickerYears: typeof import('vuetify/components')['VDatePickerYears']
|
531
|
+
VDivider: typeof import('vuetify/components')['VDivider']
|
532
|
+
VExpansionPanels: typeof import('vuetify/components')['VExpansionPanels']
|
533
|
+
VExpansionPanel: typeof import('vuetify/components')['VExpansionPanel']
|
534
|
+
VExpansionPanelText: typeof import('vuetify/components')['VExpansionPanelText']
|
535
|
+
VExpansionPanelTitle: typeof import('vuetify/components')['VExpansionPanelTitle']
|
530
536
|
VDataTable: typeof import('vuetify/components')['VDataTable']
|
531
537
|
VDataTableHeaders: typeof import('vuetify/components')['VDataTableHeaders']
|
532
538
|
VDataTableFooter: typeof import('vuetify/components')['VDataTableFooter']
|
@@ -534,29 +540,25 @@ declare module 'vue' {
|
|
534
540
|
VDataTableRow: typeof import('vuetify/components')['VDataTableRow']
|
535
541
|
VDataTableVirtual: typeof import('vuetify/components')['VDataTableVirtual']
|
536
542
|
VDataTableServer: typeof import('vuetify/components')['VDataTableServer']
|
537
|
-
VCounter: typeof import('vuetify/components')['VCounter']
|
538
543
|
VDialog: typeof import('vuetify/components')['VDialog']
|
539
|
-
VDivider: typeof import('vuetify/components')['VDivider']
|
540
|
-
VEmptyState: typeof import('vuetify/components')['VEmptyState']
|
541
|
-
VExpansionPanels: typeof import('vuetify/components')['VExpansionPanels']
|
542
|
-
VExpansionPanel: typeof import('vuetify/components')['VExpansionPanel']
|
543
|
-
VExpansionPanelText: typeof import('vuetify/components')['VExpansionPanelText']
|
544
|
-
VExpansionPanelTitle: typeof import('vuetify/components')['VExpansionPanelTitle']
|
545
544
|
VField: typeof import('vuetify/components')['VField']
|
546
545
|
VFieldLabel: typeof import('vuetify/components')['VFieldLabel']
|
547
|
-
|
546
|
+
VEmptyState: typeof import('vuetify/components')['VEmptyState']
|
548
547
|
VFab: typeof import('vuetify/components')['VFab']
|
549
|
-
|
548
|
+
VFileInput: typeof import('vuetify/components')['VFileInput']
|
550
549
|
VIcon: typeof import('vuetify/components')['VIcon']
|
551
550
|
VComponentIcon: typeof import('vuetify/components')['VComponentIcon']
|
552
551
|
VSvgIcon: typeof import('vuetify/components')['VSvgIcon']
|
553
552
|
VLigatureIcon: typeof import('vuetify/components')['VLigatureIcon']
|
554
553
|
VClassIcon: typeof import('vuetify/components')['VClassIcon']
|
555
|
-
VInfiniteScroll: typeof import('vuetify/components')['VInfiniteScroll']
|
556
554
|
VFooter: typeof import('vuetify/components')['VFooter']
|
557
|
-
|
555
|
+
VInfiniteScroll: typeof import('vuetify/components')['VInfiniteScroll']
|
556
|
+
VKbd: typeof import('vuetify/components')['VKbd']
|
558
557
|
VItemGroup: typeof import('vuetify/components')['VItemGroup']
|
559
558
|
VItem: typeof import('vuetify/components')['VItem']
|
559
|
+
VImg: typeof import('vuetify/components')['VImg']
|
560
|
+
VInput: typeof import('vuetify/components')['VInput']
|
561
|
+
VLabel: typeof import('vuetify/components')['VLabel']
|
560
562
|
VList: typeof import('vuetify/components')['VList']
|
561
563
|
VListGroup: typeof import('vuetify/components')['VListGroup']
|
562
564
|
VListImg: typeof import('vuetify/components')['VListImg']
|
@@ -566,68 +568,66 @@ declare module 'vue' {
|
|
566
568
|
VListItemSubtitle: typeof import('vuetify/components')['VListItemSubtitle']
|
567
569
|
VListItemTitle: typeof import('vuetify/components')['VListItemTitle']
|
568
570
|
VListSubheader: typeof import('vuetify/components')['VListSubheader']
|
569
|
-
VKbd: typeof import('vuetify/components')['VKbd']
|
570
|
-
VLabel: typeof import('vuetify/components')['VLabel']
|
571
|
-
VMenu: typeof import('vuetify/components')['VMenu']
|
572
571
|
VMain: typeof import('vuetify/components')['VMain']
|
573
|
-
VOverlay: typeof import('vuetify/components')['VOverlay']
|
574
572
|
VMessages: typeof import('vuetify/components')['VMessages']
|
575
|
-
|
576
|
-
VNavigationDrawer: typeof import('vuetify/components')['VNavigationDrawer']
|
573
|
+
VMenu: typeof import('vuetify/components')['VMenu']
|
577
574
|
VPagination: typeof import('vuetify/components')['VPagination']
|
578
|
-
|
579
|
-
|
580
|
-
VRadioGroup: typeof import('vuetify/components')['VRadioGroup']
|
575
|
+
VOtpInput: typeof import('vuetify/components')['VOtpInput']
|
576
|
+
VOverlay: typeof import('vuetify/components')['VOverlay']
|
581
577
|
VProgressLinear: typeof import('vuetify/components')['VProgressLinear']
|
582
|
-
|
578
|
+
VProgressCircular: typeof import('vuetify/components')['VProgressCircular']
|
579
|
+
VNavigationDrawer: typeof import('vuetify/components')['VNavigationDrawer']
|
583
580
|
VRating: typeof import('vuetify/components')['VRating']
|
581
|
+
VRadioGroup: typeof import('vuetify/components')['VRadioGroup']
|
582
|
+
VSlideGroup: typeof import('vuetify/components')['VSlideGroup']
|
583
|
+
VSlideGroupItem: typeof import('vuetify/components')['VSlideGroupItem']
|
584
584
|
VSelectionControl: typeof import('vuetify/components')['VSelectionControl']
|
585
|
+
VSelect: typeof import('vuetify/components')['VSelect']
|
585
586
|
VSheet: typeof import('vuetify/components')['VSheet']
|
586
|
-
VSlider: typeof import('vuetify/components')['VSlider']
|
587
|
-
VSkeletonLoader: typeof import('vuetify/components')['VSkeletonLoader']
|
588
587
|
VSnackbar: typeof import('vuetify/components')['VSnackbar']
|
589
|
-
|
590
|
-
|
588
|
+
VSelectionControlGroup: typeof import('vuetify/components')['VSelectionControlGroup']
|
589
|
+
VSkeletonLoader: typeof import('vuetify/components')['VSkeletonLoader']
|
591
590
|
VStepper: typeof import('vuetify/components')['VStepper']
|
592
591
|
VStepperActions: typeof import('vuetify/components')['VStepperActions']
|
593
592
|
VStepperHeader: typeof import('vuetify/components')['VStepperHeader']
|
594
593
|
VStepperItem: typeof import('vuetify/components')['VStepperItem']
|
595
594
|
VStepperWindow: typeof import('vuetify/components')['VStepperWindow']
|
596
595
|
VStepperWindowItem: typeof import('vuetify/components')['VStepperWindowItem']
|
596
|
+
VSlider: typeof import('vuetify/components')['VSlider']
|
597
597
|
VTab: typeof import('vuetify/components')['VTab']
|
598
598
|
VTabs: typeof import('vuetify/components')['VTabs']
|
599
599
|
VTabsWindow: typeof import('vuetify/components')['VTabsWindow']
|
600
600
|
VTabsWindowItem: typeof import('vuetify/components')['VTabsWindowItem']
|
601
|
-
VTextField: typeof import('vuetify/components')['VTextField']
|
602
|
-
VSystemBar: typeof import('vuetify/components')['VSystemBar']
|
603
601
|
VSwitch: typeof import('vuetify/components')['VSwitch']
|
602
|
+
VSystemBar: typeof import('vuetify/components')['VSystemBar']
|
603
|
+
VTimeline: typeof import('vuetify/components')['VTimeline']
|
604
|
+
VTimelineItem: typeof import('vuetify/components')['VTimelineItem']
|
604
605
|
VTextarea: typeof import('vuetify/components')['VTextarea']
|
605
606
|
VTable: typeof import('vuetify/components')['VTable']
|
607
|
+
VTextField: typeof import('vuetify/components')['VTextField']
|
606
608
|
VToolbar: typeof import('vuetify/components')['VToolbar']
|
607
609
|
VToolbarTitle: typeof import('vuetify/components')['VToolbarTitle']
|
608
610
|
VToolbarItems: typeof import('vuetify/components')['VToolbarItems']
|
609
611
|
VTooltip: typeof import('vuetify/components')['VTooltip']
|
610
612
|
VWindow: typeof import('vuetify/components')['VWindow']
|
611
613
|
VWindowItem: typeof import('vuetify/components')['VWindowItem']
|
612
|
-
VTimeline: typeof import('vuetify/components')['VTimeline']
|
613
|
-
VTimelineItem: typeof import('vuetify/components')['VTimelineItem']
|
614
614
|
VConfirmEdit: typeof import('vuetify/components')['VConfirmEdit']
|
615
615
|
VDataIterator: typeof import('vuetify/components')['VDataIterator']
|
616
616
|
VDefaultsProvider: typeof import('vuetify/components')['VDefaultsProvider']
|
617
617
|
VForm: typeof import('vuetify/components')['VForm']
|
618
|
-
VHover: typeof import('vuetify/components')['VHover']
|
619
618
|
VContainer: typeof import('vuetify/components')['VContainer']
|
620
619
|
VCol: typeof import('vuetify/components')['VCol']
|
621
620
|
VRow: typeof import('vuetify/components')['VRow']
|
622
621
|
VSpacer: typeof import('vuetify/components')['VSpacer']
|
623
|
-
|
622
|
+
VHover: typeof import('vuetify/components')['VHover']
|
624
623
|
VLayout: typeof import('vuetify/components')['VLayout']
|
625
624
|
VLayoutItem: typeof import('vuetify/components')['VLayoutItem']
|
626
|
-
|
625
|
+
VLazy: typeof import('vuetify/components')['VLazy']
|
627
626
|
VLocaleProvider: typeof import('vuetify/components')['VLocaleProvider']
|
628
|
-
|
627
|
+
VNoSsr: typeof import('vuetify/components')['VNoSsr']
|
629
628
|
VRadio: typeof import('vuetify/components')['VRadio']
|
630
629
|
VRangeSlider: typeof import('vuetify/components')['VRangeSlider']
|
630
|
+
VParallax: typeof import('vuetify/components')['VParallax']
|
631
631
|
VResponsive: typeof import('vuetify/components')['VResponsive']
|
632
632
|
VSparkline: typeof import('vuetify/components')['VSparkline']
|
633
633
|
VSpeedDial: typeof import('vuetify/components')['VSpeedDial']
|
@@ -650,26 +650,26 @@ declare module 'vue' {
|
|
650
650
|
VExpandTransition: typeof import('vuetify/components')['VExpandTransition']
|
651
651
|
VExpandXTransition: typeof import('vuetify/components')['VExpandXTransition']
|
652
652
|
VDialogTransition: typeof import('vuetify/components')['VDialogTransition']
|
653
|
+
VNumberInput: typeof import('vuetify/labs/components')['VNumberInput']
|
654
|
+
VStepperVertical: typeof import('vuetify/labs/components')['VStepperVertical']
|
655
|
+
VStepperVerticalItem: typeof import('vuetify/labs/components')['VStepperVerticalItem']
|
656
|
+
VStepperVerticalActions: typeof import('vuetify/labs/components')['VStepperVerticalActions']
|
657
|
+
VTimePicker: typeof import('vuetify/labs/components')['VTimePicker']
|
658
|
+
VTimePickerClock: typeof import('vuetify/labs/components')['VTimePickerClock']
|
659
|
+
VTimePickerControls: typeof import('vuetify/labs/components')['VTimePickerControls']
|
660
|
+
VTreeview: typeof import('vuetify/labs/components')['VTreeview']
|
661
|
+
VTreeviewItem: typeof import('vuetify/labs/components')['VTreeviewItem']
|
662
|
+
VTreeviewGroup: typeof import('vuetify/labs/components')['VTreeviewGroup']
|
653
663
|
VPicker: typeof import('vuetify/labs/components')['VPicker']
|
654
664
|
VPickerTitle: typeof import('vuetify/labs/components')['VPickerTitle']
|
655
|
-
VNumberInput: typeof import('vuetify/labs/components')['VNumberInput']
|
656
665
|
VCalendar: typeof import('vuetify/labs/components')['VCalendar']
|
657
666
|
VCalendarDay: typeof import('vuetify/labs/components')['VCalendarDay']
|
658
667
|
VCalendarHeader: typeof import('vuetify/labs/components')['VCalendarHeader']
|
659
668
|
VCalendarInterval: typeof import('vuetify/labs/components')['VCalendarInterval']
|
660
669
|
VCalendarIntervalEvent: typeof import('vuetify/labs/components')['VCalendarIntervalEvent']
|
661
670
|
VCalendarMonthDay: typeof import('vuetify/labs/components')['VCalendarMonthDay']
|
662
|
-
VStepperVertical: typeof import('vuetify/labs/components')['VStepperVertical']
|
663
|
-
VStepperVerticalItem: typeof import('vuetify/labs/components')['VStepperVerticalItem']
|
664
|
-
VStepperVerticalActions: typeof import('vuetify/labs/components')['VStepperVerticalActions']
|
665
|
-
VTreeview: typeof import('vuetify/labs/components')['VTreeview']
|
666
|
-
VTreeviewItem: typeof import('vuetify/labs/components')['VTreeviewItem']
|
667
|
-
VTreeviewGroup: typeof import('vuetify/labs/components')['VTreeviewGroup']
|
668
|
-
VTimePicker: typeof import('vuetify/labs/components')['VTimePicker']
|
669
|
-
VTimePickerClock: typeof import('vuetify/labs/components')['VTimePickerClock']
|
670
|
-
VTimePickerControls: typeof import('vuetify/labs/components')['VTimePickerControls']
|
671
671
|
VDateInput: typeof import('vuetify/labs/components')['VDateInput']
|
672
|
-
VPullToRefresh: typeof import('vuetify/labs/components')['VPullToRefresh']
|
673
672
|
VSnackbarQueue: typeof import('vuetify/labs/components')['VSnackbarQueue']
|
673
|
+
VPullToRefresh: typeof import('vuetify/labs/components')['VPullToRefresh']
|
674
674
|
}
|
675
675
|
}
|
package/lib/util/helpers.mjs
CHANGED
@@ -84,6 +84,10 @@ export function convertToUnit(str) {
|
|
84
84
|
export function isObject(obj) {
|
85
85
|
return obj !== null && typeof obj === 'object' && !Array.isArray(obj);
|
86
86
|
}
|
87
|
+
export function isPlainObject(obj) {
|
88
|
+
let proto;
|
89
|
+
return obj !== null && typeof obj === 'object' && ((proto = Object.getPrototypeOf(obj)) === Object.prototype || proto === null);
|
90
|
+
}
|
87
91
|
export function refElement(obj) {
|
88
92
|
if (obj && '$el' in obj) {
|
89
93
|
const el = obj.$el;
|
@@ -303,12 +307,12 @@ export function mergeDeep() {
|
|
303
307
|
const targetProperty = target[key];
|
304
308
|
|
305
309
|
// Only continue deep merging if
|
306
|
-
// both properties are objects
|
307
|
-
if (
|
310
|
+
// both properties are plain objects
|
311
|
+
if (isPlainObject(sourceProperty) && isPlainObject(targetProperty)) {
|
308
312
|
out[key] = mergeDeep(sourceProperty, targetProperty, arrayFn);
|
309
313
|
continue;
|
310
314
|
}
|
311
|
-
if (Array.isArray(sourceProperty) && Array.isArray(targetProperty)
|
315
|
+
if (arrayFn && Array.isArray(sourceProperty) && Array.isArray(targetProperty)) {
|
312
316
|
out[key] = arrayFn(sourceProperty, targetProperty);
|
313
317
|
continue;
|
314
318
|
}
|