@vuetify/nightly 3.8.6-master.2025-05-21 → 3.8.6-master.2025-05-22
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +4 -3
- package/dist/json/attributes.json +3322 -3322
- package/dist/json/importMap-labs.json +28 -28
- package/dist/json/importMap.json +182 -182
- package/dist/json/web-types.json +5959 -5959
- package/dist/vuetify-labs.cjs +45 -10
- package/dist/vuetify-labs.css +4696 -4696
- package/dist/vuetify-labs.d.ts +66 -66
- package/dist/vuetify-labs.esm.js +45 -10
- package/dist/vuetify-labs.esm.js.map +1 -1
- package/dist/vuetify-labs.js +45 -10
- package/dist/vuetify-labs.min.css +2 -2
- package/dist/vuetify.cjs +45 -10
- package/dist/vuetify.cjs.map +1 -1
- package/dist/vuetify.css +2634 -2634
- package/dist/vuetify.d.ts +66 -66
- package/dist/vuetify.esm.js +45 -10
- package/dist/vuetify.esm.js.map +1 -1
- package/dist/vuetify.js +45 -10
- package/dist/vuetify.js.map +1 -1
- package/dist/vuetify.min.css +2 -2
- package/dist/vuetify.min.js +8 -6
- package/dist/vuetify.min.js.map +1 -1
- package/lib/components/VOverlay/locationStrategies.js +16 -8
- package/lib/components/VOverlay/locationStrategies.js.map +1 -1
- package/lib/entry-bundler.js +1 -1
- package/lib/framework.d.ts +66 -66
- package/lib/framework.js +1 -1
- package/lib/util/box.d.ts +1 -0
- package/lib/util/box.js +27 -0
- package/lib/util/box.js.map +1 -1
- package/package.json +1 -1
@@ -3,7 +3,7 @@ import { useToggleScope } from "../../composables/toggleScope.js"; // Utilities
|
|
3
3
|
import { computed, nextTick, onScopeDispose, ref, watch } from 'vue';
|
4
4
|
import { anchorToPoint, getOffset } from "./util/point.js";
|
5
5
|
import { CircularBuffer, clamp, consoleError, convertToUnit, deepEqual, destructComputed, flipAlign, flipCorner, flipSide, getAxis, getScrollParents, IN_BROWSER, isFixedPosition, nullifyTransforms, parseAnchor, propsFactory } from "../../util/index.js";
|
6
|
-
import { Box, getOverflow, getTargetBox } from "../../util/box.js"; // Types
|
6
|
+
import { Box, getElementBox, getOverflow, getTargetBox } from "../../util/box.js"; // Types
|
7
7
|
const locationStrategies = {
|
8
8
|
static: staticLocationStrategy,
|
9
9
|
// specific viewport position, usually centered
|
@@ -33,11 +33,19 @@ export function useLocationStrategies(props, data) {
|
|
33
33
|
watch(() => props.locationStrategy, reset);
|
34
34
|
onScopeDispose(() => {
|
35
35
|
window.removeEventListener('resize', onResize);
|
36
|
+
visualViewport?.removeEventListener('resize', onVisualResize);
|
37
|
+
visualViewport?.removeEventListener('scroll', onVisualScroll);
|
36
38
|
updateLocation.value = undefined;
|
37
39
|
});
|
38
40
|
window.addEventListener('resize', onResize, {
|
39
41
|
passive: true
|
40
42
|
});
|
43
|
+
visualViewport?.addEventListener('resize', onVisualResize, {
|
44
|
+
passive: true
|
45
|
+
});
|
46
|
+
visualViewport?.addEventListener('scroll', onVisualScroll, {
|
47
|
+
passive: true
|
48
|
+
});
|
41
49
|
if (typeof props.locationStrategy === 'function') {
|
42
50
|
updateLocation.value = props.locationStrategy(data, props, contentStyles)?.updateLocation;
|
43
51
|
} else {
|
@@ -48,6 +56,12 @@ export function useLocationStrategies(props, data) {
|
|
48
56
|
function onResize(e) {
|
49
57
|
updateLocation.value?.(e);
|
50
58
|
}
|
59
|
+
function onVisualResize(e) {
|
60
|
+
updateLocation.value?.(e);
|
61
|
+
}
|
62
|
+
function onVisualScroll(e) {
|
63
|
+
updateLocation.value?.(e);
|
64
|
+
}
|
51
65
|
return {
|
52
66
|
contentStyles,
|
53
67
|
updateLocation
|
@@ -199,13 +213,7 @@ function connectedLocationStrategy(data, props, contentStyles) {
|
|
199
213
|
}
|
200
214
|
}
|
201
215
|
const viewport = scrollParents.reduce((box, el) => {
|
202
|
-
const
|
203
|
-
const scrollBox = new Box({
|
204
|
-
x: el === document.documentElement ? 0 : rect.x,
|
205
|
-
y: el === document.documentElement ? 0 : rect.y,
|
206
|
-
width: el.clientWidth,
|
207
|
-
height: el.clientHeight
|
208
|
-
});
|
216
|
+
const scrollBox = getElementBox(el);
|
209
217
|
if (box) {
|
210
218
|
return new Box({
|
211
219
|
x: Math.max(box.left, scrollBox.left),
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"locationStrategies.js","names":["useToggleScope","computed","nextTick","onScopeDispose","ref","watch","anchorToPoint","getOffset","CircularBuffer","clamp","consoleError","convertToUnit","deepEqual","destructComputed","flipAlign","flipCorner","flipSide","getAxis","getScrollParents","IN_BROWSER","isFixedPosition","nullifyTransforms","parseAnchor","propsFactory","Box","getOverflow","getTargetBox","locationStrategies","static","staticLocationStrategy","connected","connectedLocationStrategy","makeLocationStrategyProps","locationStrategy","type","String","Function","default","validator","val","location","origin","offset","Number","Array","useLocationStrategies","props","data","contentStyles","updateLocation","isActive","value","reset","window","removeEventListener","onResize","undefined","addEventListener","passive","e","getIntrinsicSize","el","isRtl","contentBox","x","parseFloat","style","right","left","y","top","activatorFixed","isArray","target","Object","assign","position","preferredAnchor","preferredOrigin","parsedAnchor","parsedOrigin","side","align","minWidth","minHeight","maxWidth","maxHeight","map","key","isNaN","Infinity","split","length","push","observe","lastFrame","flipped","observer","ResizeObserver","requestAnimationFrame","newTime","clear","newNewTime","isFull","values","at","result","contentEl","_ref","_ref2","newTarget","newContentEl","oldTarget","oldContentEl","unobserve","immediate","disconnect","targetBox","width","height","offsetParent","getClientRects","scrollParents","viewportMargin","document","documentElement","getPropertyValue","viewport","reduce","box","rect","getBoundingClientRect","scrollBox","clientWidth","clientHeight","Math","max","min","bottom","placement","anchor","checkOverflow","_placement","targetPoint","contentPoint","overflows","available","resets","_x","_y","axis","hasOverflowX","before","after","hasOverflowY","forEach","newPlacement","flip","newOverflows","transformOrigin","pixelRound","pixelCeil","round","devicePixelRatio","ceil"],"sources":["../../../src/components/VOverlay/locationStrategies.ts"],"sourcesContent":["// Composables\nimport { useToggleScope } from '@/composables/toggleScope'\n\n// Utilities\nimport { computed, nextTick, onScopeDispose, ref, watch } from 'vue'\nimport { anchorToPoint, getOffset } from './util/point'\nimport {\n CircularBuffer,\n clamp,\n consoleError,\n convertToUnit,\n deepEqual,\n destructComputed,\n flipAlign,\n flipCorner,\n flipSide,\n getAxis,\n getScrollParents,\n IN_BROWSER,\n isFixedPosition,\n nullifyTransforms,\n parseAnchor,\n propsFactory,\n} from '@/util'\nimport { Box, getOverflow, getTargetBox } from '@/util/box'\n\n// Types\nimport type { PropType, Ref } from 'vue'\nimport type { Anchor } from '@/util'\n\nexport interface LocationStrategyData {\n contentEl: Ref<HTMLElement | undefined>\n target: Ref<HTMLElement | [x: number, y: number] | undefined>\n isActive: Ref<boolean>\n isRtl: Ref<boolean>\n}\n\nexport type LocationStrategyFunction = (\n data: LocationStrategyData,\n props: StrategyProps,\n contentStyles: Ref<Record<string, string>>\n) => undefined | { updateLocation: (e?: Event) => void }\n\nconst locationStrategies = {\n static: staticLocationStrategy, // specific viewport position, usually centered\n connected: connectedLocationStrategy, // connected to a certain element\n}\n\nexport interface StrategyProps {\n locationStrategy: keyof typeof locationStrategies | LocationStrategyFunction\n location: Anchor\n origin: Anchor | 'auto' | 'overlap'\n offset?: number | string | number[]\n maxHeight?: number | string\n maxWidth?: number | string\n minHeight?: number | string\n minWidth?: number | string\n}\n\nexport const makeLocationStrategyProps = propsFactory({\n locationStrategy: {\n type: [String, Function] as PropType<StrategyProps['locationStrategy']>,\n default: 'static',\n validator: (val: any) => typeof val === 'function' || val in locationStrategies,\n },\n location: {\n type: String as PropType<StrategyProps['location']>,\n default: 'bottom',\n },\n origin: {\n type: String as PropType<StrategyProps['origin']>,\n default: 'auto',\n },\n offset: [Number, String, Array] as PropType<StrategyProps['offset']>,\n}, 'VOverlay-location-strategies')\n\nexport function useLocationStrategies (\n props: StrategyProps,\n data: LocationStrategyData\n) {\n const contentStyles = ref({})\n const updateLocation = ref<(e: Event) => void>()\n\n if (IN_BROWSER) {\n useToggleScope(() => !!(data.isActive.value && props.locationStrategy), reset => {\n watch(() => props.locationStrategy, reset)\n onScopeDispose(() => {\n window.removeEventListener('resize', onResize)\n updateLocation.value = undefined\n })\n\n window.addEventListener('resize', onResize, { passive: true })\n\n if (typeof props.locationStrategy === 'function') {\n updateLocation.value = props.locationStrategy(data, props, contentStyles)?.updateLocation\n } else {\n updateLocation.value = locationStrategies[props.locationStrategy](data, props, contentStyles)?.updateLocation\n }\n })\n }\n\n function onResize (e: Event) {\n updateLocation.value?.(e)\n }\n\n return {\n contentStyles,\n updateLocation,\n }\n}\n\nfunction staticLocationStrategy () {\n // TODO\n}\n\n/** Get size of element ignoring max-width/max-height */\nfunction getIntrinsicSize (el: HTMLElement, isRtl: boolean) {\n // const scrollables = new Map<Element, [number, number]>()\n // el.querySelectorAll('*').forEach(el => {\n // const x = el.scrollLeft\n // const y = el.scrollTop\n // if (x || y) {\n // scrollables.set(el, [x, y])\n // }\n // })\n\n // const initialMaxWidth = el.style.maxWidth\n // const initialMaxHeight = el.style.maxHeight\n // el.style.removeProperty('max-width')\n // el.style.removeProperty('max-height')\n\n /* eslint-disable-next-line sonarjs/prefer-immediate-return */\n const contentBox = nullifyTransforms(el)\n\n if (isRtl) {\n contentBox.x += parseFloat(el.style.right || 0)\n } else {\n contentBox.x -= parseFloat(el.style.left || 0)\n }\n contentBox.y -= parseFloat(el.style.top || 0)\n\n // el.style.maxWidth = initialMaxWidth\n // el.style.maxHeight = initialMaxHeight\n // scrollables.forEach((position, el) => {\n // el.scrollTo(...position)\n // })\n\n return contentBox\n}\n\nfunction connectedLocationStrategy (data: LocationStrategyData, props: StrategyProps, contentStyles: Ref<Record<string, string>>) {\n const activatorFixed = Array.isArray(data.target.value) || isFixedPosition(data.target.value)\n if (activatorFixed) {\n Object.assign(contentStyles.value, {\n position: 'fixed',\n top: 0,\n [data.isRtl.value ? 'right' : 'left']: 0,\n })\n }\n\n const { preferredAnchor, preferredOrigin } = destructComputed(() => {\n const parsedAnchor = parseAnchor(props.location, data.isRtl.value)\n const parsedOrigin =\n props.origin === 'overlap' ? parsedAnchor\n : props.origin === 'auto' ? flipSide(parsedAnchor)\n : parseAnchor(props.origin, data.isRtl.value)\n\n // Some combinations of props may produce an invalid origin\n if (parsedAnchor.side === parsedOrigin.side && parsedAnchor.align === flipAlign(parsedOrigin).align) {\n return {\n preferredAnchor: flipCorner(parsedAnchor),\n preferredOrigin: flipCorner(parsedOrigin),\n }\n } else {\n return {\n preferredAnchor: parsedAnchor,\n preferredOrigin: parsedOrigin,\n }\n }\n })\n\n const [minWidth, minHeight, maxWidth, maxHeight] =\n (['minWidth', 'minHeight', 'maxWidth', 'maxHeight'] as const).map(key => {\n return computed(() => {\n const val = parseFloat(props[key]!)\n return isNaN(val) ? Infinity : val\n })\n })\n\n const offset = computed(() => {\n if (Array.isArray(props.offset)) {\n return props.offset\n }\n if (typeof props.offset === 'string') {\n const offset = props.offset.split(' ').map(parseFloat)\n if (offset.length < 2) offset.push(0)\n return offset\n }\n return typeof props.offset === 'number' ? [props.offset, 0] : [0, 0]\n })\n\n let observe = false\n let lastFrame = -1\n const flipped = new CircularBuffer<{ x: boolean, y: boolean }>(4)\n const observer = new ResizeObserver(() => {\n if (!observe) return\n\n // Detect consecutive frames\n requestAnimationFrame(newTime => {\n if (newTime !== lastFrame) flipped.clear()\n requestAnimationFrame(newNewTime => {\n lastFrame = newNewTime\n })\n })\n\n if (flipped.isFull) {\n const values = flipped.values()\n if (deepEqual(values.at(-1), values.at(-3))) {\n // Flipping is causing a container resize loop\n return\n }\n }\n\n const result = updateLocation()\n if (result) flipped.push(result.flipped)\n })\n\n watch([data.target, data.contentEl], ([newTarget, newContentEl], [oldTarget, oldContentEl]) => {\n if (oldTarget && !Array.isArray(oldTarget)) observer.unobserve(oldTarget)\n if (newTarget && !Array.isArray(newTarget)) observer.observe(newTarget)\n\n if (oldContentEl) observer.unobserve(oldContentEl)\n if (newContentEl) observer.observe(newContentEl)\n }, {\n immediate: true,\n })\n\n onScopeDispose(() => {\n observer.disconnect()\n })\n\n let targetBox = new Box({ x: 0, y: 0, width: 0, height: 0 })\n\n // eslint-disable-next-line max-statements\n function updateLocation () {\n observe = false\n requestAnimationFrame(() => observe = true)\n\n if (!data.target.value || !data.contentEl.value) return\n\n if (\n Array.isArray(data.target.value) ||\n data.target.value.offsetParent ||\n data.target.value.getClientRects().length\n ) {\n targetBox = getTargetBox(data.target.value)\n } // Otherwise target element is hidden, use last known value\n\n const contentBox = getIntrinsicSize(data.contentEl.value, data.isRtl.value)\n const scrollParents = getScrollParents(data.contentEl.value)\n const viewportMargin = 12\n\n if (!scrollParents.length) {\n scrollParents.push(document.documentElement)\n if (!(data.contentEl.value.style.top && data.contentEl.value.style.left)) {\n contentBox.x -= parseFloat(document.documentElement.style.getPropertyValue('--v-body-scroll-x') || 0)\n contentBox.y -= parseFloat(document.documentElement.style.getPropertyValue('--v-body-scroll-y') || 0)\n }\n }\n\n const viewport = scrollParents.reduce<Box>((box: Box | undefined, el) => {\n const rect = el.getBoundingClientRect()\n const scrollBox = new Box({\n x: el === document.documentElement ? 0 : rect.x,\n y: el === document.documentElement ? 0 : rect.y,\n width: el.clientWidth,\n height: el.clientHeight,\n })\n\n if (box) {\n return new Box({\n x: Math.max(box.left, scrollBox.left),\n y: Math.max(box.top, scrollBox.top),\n width: Math.min(box.right, scrollBox.right) - Math.max(box.left, scrollBox.left),\n height: Math.min(box.bottom, scrollBox.bottom) - Math.max(box.top, scrollBox.top),\n })\n }\n return scrollBox\n }, undefined!)\n viewport.x += viewportMargin\n viewport.y += viewportMargin\n viewport.width -= viewportMargin * 2\n viewport.height -= viewportMargin * 2\n\n let placement = {\n anchor: preferredAnchor.value,\n origin: preferredOrigin.value,\n }\n\n function checkOverflow (_placement: typeof placement) {\n const box = new Box(contentBox)\n const targetPoint = anchorToPoint(_placement.anchor, targetBox)\n const contentPoint = anchorToPoint(_placement.origin, box)\n\n let { x, y } = getOffset(targetPoint, contentPoint)\n\n switch (_placement.anchor.side) {\n case 'top': y -= offset.value[0]; break\n case 'bottom': y += offset.value[0]; break\n case 'left': x -= offset.value[0]; break\n case 'right': x += offset.value[0]; break\n }\n\n switch (_placement.anchor.align) {\n case 'top': y -= offset.value[1]; break\n case 'bottom': y += offset.value[1]; break\n case 'left': x -= offset.value[1]; break\n case 'right': x += offset.value[1]; break\n }\n\n box.x += x\n box.y += y\n\n box.width = Math.min(box.width, maxWidth.value)\n box.height = Math.min(box.height, maxHeight.value)\n\n const overflows = getOverflow(box, viewport)\n\n return { overflows, x, y }\n }\n\n let x = 0; let y = 0\n const available = { x: 0, y: 0 }\n const flipped = { x: false, y: false }\n let resets = -1\n while (true) {\n if (resets++ > 10) {\n consoleError('Infinite loop detected in connectedLocationStrategy')\n break\n }\n\n const { x: _x, y: _y, overflows } = checkOverflow(placement)\n\n x += _x\n y += _y\n\n contentBox.x += _x\n contentBox.y += _y\n\n // flip\n {\n const axis = getAxis(placement.anchor)\n const hasOverflowX = overflows.x.before || overflows.x.after\n const hasOverflowY = overflows.y.before || overflows.y.after\n\n let reset = false\n ;['x', 'y'].forEach(key => {\n if (\n (key === 'x' && hasOverflowX && !flipped.x) ||\n (key === 'y' && hasOverflowY && !flipped.y)\n ) {\n const newPlacement = { anchor: { ...placement.anchor }, origin: { ...placement.origin } }\n const flip = key === 'x'\n ? axis === 'y' ? flipAlign : flipSide\n : axis === 'y' ? flipSide : flipAlign\n newPlacement.anchor = flip(newPlacement.anchor)\n newPlacement.origin = flip(newPlacement.origin)\n const { overflows: newOverflows } = checkOverflow(newPlacement)\n if (\n (newOverflows[key].before <= overflows[key].before &&\n newOverflows[key].after <= overflows[key].after) ||\n (newOverflows[key].before + newOverflows[key].after <\n (overflows[key].before + overflows[key].after) / 2)\n ) {\n placement = newPlacement\n reset = flipped[key] = true\n }\n }\n })\n if (reset) continue\n }\n\n // shift\n if (overflows.x.before) {\n x += overflows.x.before\n contentBox.x += overflows.x.before\n }\n if (overflows.x.after) {\n x -= overflows.x.after\n contentBox.x -= overflows.x.after\n }\n if (overflows.y.before) {\n y += overflows.y.before\n contentBox.y += overflows.y.before\n }\n if (overflows.y.after) {\n y -= overflows.y.after\n contentBox.y -= overflows.y.after\n }\n\n // size\n {\n const overflows = getOverflow(contentBox, viewport)\n available.x = viewport.width - overflows.x.before - overflows.x.after\n available.y = viewport.height - overflows.y.before - overflows.y.after\n\n x += overflows.x.before\n contentBox.x += overflows.x.before\n y += overflows.y.before\n contentBox.y += overflows.y.before\n }\n\n break\n }\n\n const axis = getAxis(placement.anchor)\n\n Object.assign(contentStyles.value, {\n '--v-overlay-anchor-origin': `${placement.anchor.side} ${placement.anchor.align}`,\n transformOrigin: `${placement.origin.side} ${placement.origin.align}`,\n // transform: `translate(${pixelRound(x)}px, ${pixelRound(y)}px)`,\n top: convertToUnit(pixelRound(y)),\n left: data.isRtl.value ? undefined : convertToUnit(pixelRound(x)),\n right: data.isRtl.value ? convertToUnit(pixelRound(-x)) : undefined,\n minWidth: convertToUnit(axis === 'y' ? Math.min(minWidth.value, targetBox.width) : minWidth.value),\n maxWidth: convertToUnit(pixelCeil(clamp(available.x, minWidth.value === Infinity ? 0 : minWidth.value, maxWidth.value))),\n maxHeight: convertToUnit(pixelCeil(clamp(available.y, minHeight.value === Infinity ? 0 : minHeight.value, maxHeight.value))),\n })\n\n return {\n available,\n contentBox,\n flipped,\n }\n }\n\n watch(\n () => [\n preferredAnchor.value,\n preferredOrigin.value,\n props.offset,\n props.minWidth,\n props.minHeight,\n props.maxWidth,\n props.maxHeight,\n ],\n () => updateLocation(),\n )\n\n nextTick(() => {\n const result = updateLocation()\n\n // TODO: overflowing content should only require a single updateLocation call\n // Icky hack to make sure the content is positioned consistently\n if (!result) return\n const { available, contentBox } = result\n if (contentBox.height > available.y) {\n requestAnimationFrame(() => {\n updateLocation()\n requestAnimationFrame(() => {\n updateLocation()\n })\n })\n }\n })\n\n return { updateLocation }\n}\n\nfunction pixelRound (val: number) {\n return Math.round(val * devicePixelRatio) / devicePixelRatio\n}\n\nfunction pixelCeil (val: number) {\n return Math.ceil(val * devicePixelRatio) / devicePixelRatio\n}\n"],"mappings":"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","ignoreList":[]}
|
1
|
+
{"version":3,"file":"locationStrategies.js","names":["useToggleScope","computed","nextTick","onScopeDispose","ref","watch","anchorToPoint","getOffset","CircularBuffer","clamp","consoleError","convertToUnit","deepEqual","destructComputed","flipAlign","flipCorner","flipSide","getAxis","getScrollParents","IN_BROWSER","isFixedPosition","nullifyTransforms","parseAnchor","propsFactory","Box","getElementBox","getOverflow","getTargetBox","locationStrategies","static","staticLocationStrategy","connected","connectedLocationStrategy","makeLocationStrategyProps","locationStrategy","type","String","Function","default","validator","val","location","origin","offset","Number","Array","useLocationStrategies","props","data","contentStyles","updateLocation","isActive","value","reset","window","removeEventListener","onResize","visualViewport","onVisualResize","onVisualScroll","undefined","addEventListener","passive","e","getIntrinsicSize","el","isRtl","contentBox","x","parseFloat","style","right","left","y","top","activatorFixed","isArray","target","Object","assign","position","preferredAnchor","preferredOrigin","parsedAnchor","parsedOrigin","side","align","minWidth","minHeight","maxWidth","maxHeight","map","key","isNaN","Infinity","split","length","push","observe","lastFrame","flipped","observer","ResizeObserver","requestAnimationFrame","newTime","clear","newNewTime","isFull","values","at","result","contentEl","_ref","_ref2","newTarget","newContentEl","oldTarget","oldContentEl","unobserve","immediate","disconnect","targetBox","width","height","offsetParent","getClientRects","scrollParents","viewportMargin","document","documentElement","getPropertyValue","viewport","reduce","box","scrollBox","Math","max","min","bottom","placement","anchor","checkOverflow","_placement","targetPoint","contentPoint","overflows","available","resets","_x","_y","axis","hasOverflowX","before","after","hasOverflowY","forEach","newPlacement","flip","newOverflows","transformOrigin","pixelRound","pixelCeil","round","devicePixelRatio","ceil"],"sources":["../../../src/components/VOverlay/locationStrategies.ts"],"sourcesContent":["// Composables\nimport { useToggleScope } from '@/composables/toggleScope'\n\n// Utilities\nimport { computed, nextTick, onScopeDispose, ref, watch } from 'vue'\nimport { anchorToPoint, getOffset } from './util/point'\nimport {\n CircularBuffer,\n clamp,\n consoleError,\n convertToUnit,\n deepEqual,\n destructComputed,\n flipAlign,\n flipCorner,\n flipSide,\n getAxis,\n getScrollParents,\n IN_BROWSER,\n isFixedPosition,\n nullifyTransforms,\n parseAnchor,\n propsFactory,\n} from '@/util'\nimport { Box, getElementBox, getOverflow, getTargetBox } from '@/util/box'\n\n// Types\nimport type { PropType, Ref } from 'vue'\nimport type { Anchor } from '@/util'\n\nexport interface LocationStrategyData {\n contentEl: Ref<HTMLElement | undefined>\n target: Ref<HTMLElement | [x: number, y: number] | undefined>\n isActive: Ref<boolean>\n isRtl: Ref<boolean>\n}\n\nexport type LocationStrategyFunction = (\n data: LocationStrategyData,\n props: StrategyProps,\n contentStyles: Ref<Record<string, string>>\n) => undefined | { updateLocation: (e?: Event) => void }\n\nconst locationStrategies = {\n static: staticLocationStrategy, // specific viewport position, usually centered\n connected: connectedLocationStrategy, // connected to a certain element\n}\n\nexport interface StrategyProps {\n locationStrategy: keyof typeof locationStrategies | LocationStrategyFunction\n location: Anchor\n origin: Anchor | 'auto' | 'overlap'\n offset?: number | string | number[]\n maxHeight?: number | string\n maxWidth?: number | string\n minHeight?: number | string\n minWidth?: number | string\n}\n\nexport const makeLocationStrategyProps = propsFactory({\n locationStrategy: {\n type: [String, Function] as PropType<StrategyProps['locationStrategy']>,\n default: 'static',\n validator: (val: any) => typeof val === 'function' || val in locationStrategies,\n },\n location: {\n type: String as PropType<StrategyProps['location']>,\n default: 'bottom',\n },\n origin: {\n type: String as PropType<StrategyProps['origin']>,\n default: 'auto',\n },\n offset: [Number, String, Array] as PropType<StrategyProps['offset']>,\n}, 'VOverlay-location-strategies')\n\nexport function useLocationStrategies (\n props: StrategyProps,\n data: LocationStrategyData\n) {\n const contentStyles = ref({})\n const updateLocation = ref<(e: Event) => void>()\n\n if (IN_BROWSER) {\n useToggleScope(() => !!(data.isActive.value && props.locationStrategy), reset => {\n watch(() => props.locationStrategy, reset)\n onScopeDispose(() => {\n window.removeEventListener('resize', onResize)\n visualViewport?.removeEventListener('resize', onVisualResize)\n visualViewport?.removeEventListener('scroll', onVisualScroll)\n updateLocation.value = undefined\n })\n\n window.addEventListener('resize', onResize, { passive: true })\n visualViewport?.addEventListener('resize', onVisualResize, { passive: true })\n visualViewport?.addEventListener('scroll', onVisualScroll, { passive: true })\n\n if (typeof props.locationStrategy === 'function') {\n updateLocation.value = props.locationStrategy(data, props, contentStyles)?.updateLocation\n } else {\n updateLocation.value = locationStrategies[props.locationStrategy](data, props, contentStyles)?.updateLocation\n }\n })\n }\n\n function onResize (e: Event) {\n updateLocation.value?.(e)\n }\n\n function onVisualResize (e: Event) {\n updateLocation.value?.(e)\n }\n\n function onVisualScroll (e: Event) {\n updateLocation.value?.(e)\n }\n\n return {\n contentStyles,\n updateLocation,\n }\n}\n\nfunction staticLocationStrategy () {\n // TODO\n}\n\n/** Get size of element ignoring max-width/max-height */\nfunction getIntrinsicSize (el: HTMLElement, isRtl: boolean) {\n // const scrollables = new Map<Element, [number, number]>()\n // el.querySelectorAll('*').forEach(el => {\n // const x = el.scrollLeft\n // const y = el.scrollTop\n // if (x || y) {\n // scrollables.set(el, [x, y])\n // }\n // })\n\n // const initialMaxWidth = el.style.maxWidth\n // const initialMaxHeight = el.style.maxHeight\n // el.style.removeProperty('max-width')\n // el.style.removeProperty('max-height')\n\n /* eslint-disable-next-line sonarjs/prefer-immediate-return */\n const contentBox = nullifyTransforms(el)\n\n if (isRtl) {\n contentBox.x += parseFloat(el.style.right || 0)\n } else {\n contentBox.x -= parseFloat(el.style.left || 0)\n }\n contentBox.y -= parseFloat(el.style.top || 0)\n\n // el.style.maxWidth = initialMaxWidth\n // el.style.maxHeight = initialMaxHeight\n // scrollables.forEach((position, el) => {\n // el.scrollTo(...position)\n // })\n\n return contentBox\n}\n\nfunction connectedLocationStrategy (data: LocationStrategyData, props: StrategyProps, contentStyles: Ref<Record<string, string>>) {\n const activatorFixed = Array.isArray(data.target.value) || isFixedPosition(data.target.value)\n if (activatorFixed) {\n Object.assign(contentStyles.value, {\n position: 'fixed',\n top: 0,\n [data.isRtl.value ? 'right' : 'left']: 0,\n })\n }\n\n const { preferredAnchor, preferredOrigin } = destructComputed(() => {\n const parsedAnchor = parseAnchor(props.location, data.isRtl.value)\n const parsedOrigin =\n props.origin === 'overlap' ? parsedAnchor\n : props.origin === 'auto' ? flipSide(parsedAnchor)\n : parseAnchor(props.origin, data.isRtl.value)\n\n // Some combinations of props may produce an invalid origin\n if (parsedAnchor.side === parsedOrigin.side && parsedAnchor.align === flipAlign(parsedOrigin).align) {\n return {\n preferredAnchor: flipCorner(parsedAnchor),\n preferredOrigin: flipCorner(parsedOrigin),\n }\n } else {\n return {\n preferredAnchor: parsedAnchor,\n preferredOrigin: parsedOrigin,\n }\n }\n })\n\n const [minWidth, minHeight, maxWidth, maxHeight] =\n (['minWidth', 'minHeight', 'maxWidth', 'maxHeight'] as const).map(key => {\n return computed(() => {\n const val = parseFloat(props[key]!)\n return isNaN(val) ? Infinity : val\n })\n })\n\n const offset = computed(() => {\n if (Array.isArray(props.offset)) {\n return props.offset\n }\n if (typeof props.offset === 'string') {\n const offset = props.offset.split(' ').map(parseFloat)\n if (offset.length < 2) offset.push(0)\n return offset\n }\n return typeof props.offset === 'number' ? [props.offset, 0] : [0, 0]\n })\n\n let observe = false\n let lastFrame = -1\n const flipped = new CircularBuffer<{ x: boolean, y: boolean }>(4)\n const observer = new ResizeObserver(() => {\n if (!observe) return\n\n // Detect consecutive frames\n requestAnimationFrame(newTime => {\n if (newTime !== lastFrame) flipped.clear()\n requestAnimationFrame(newNewTime => {\n lastFrame = newNewTime\n })\n })\n\n if (flipped.isFull) {\n const values = flipped.values()\n if (deepEqual(values.at(-1), values.at(-3))) {\n // Flipping is causing a container resize loop\n return\n }\n }\n\n const result = updateLocation()\n if (result) flipped.push(result.flipped)\n })\n\n watch([data.target, data.contentEl], ([newTarget, newContentEl], [oldTarget, oldContentEl]) => {\n if (oldTarget && !Array.isArray(oldTarget)) observer.unobserve(oldTarget)\n if (newTarget && !Array.isArray(newTarget)) observer.observe(newTarget)\n\n if (oldContentEl) observer.unobserve(oldContentEl)\n if (newContentEl) observer.observe(newContentEl)\n }, {\n immediate: true,\n })\n\n onScopeDispose(() => {\n observer.disconnect()\n })\n\n let targetBox = new Box({ x: 0, y: 0, width: 0, height: 0 })\n\n // eslint-disable-next-line max-statements\n function updateLocation () {\n observe = false\n requestAnimationFrame(() => observe = true)\n\n if (!data.target.value || !data.contentEl.value) return\n\n if (\n Array.isArray(data.target.value) ||\n data.target.value.offsetParent ||\n data.target.value.getClientRects().length\n ) {\n targetBox = getTargetBox(data.target.value)\n } // Otherwise target element is hidden, use last known value\n\n const contentBox = getIntrinsicSize(data.contentEl.value, data.isRtl.value)\n const scrollParents = getScrollParents(data.contentEl.value)\n const viewportMargin = 12\n\n if (!scrollParents.length) {\n scrollParents.push(document.documentElement)\n if (!(data.contentEl.value.style.top && data.contentEl.value.style.left)) {\n contentBox.x -= parseFloat(document.documentElement.style.getPropertyValue('--v-body-scroll-x') || 0)\n contentBox.y -= parseFloat(document.documentElement.style.getPropertyValue('--v-body-scroll-y') || 0)\n }\n }\n\n const viewport = scrollParents.reduce<Box>((box: Box | undefined, el) => {\n const scrollBox = getElementBox(el)\n\n if (box) {\n return new Box({\n x: Math.max(box.left, scrollBox.left),\n y: Math.max(box.top, scrollBox.top),\n width: Math.min(box.right, scrollBox.right) - Math.max(box.left, scrollBox.left),\n height: Math.min(box.bottom, scrollBox.bottom) - Math.max(box.top, scrollBox.top),\n })\n }\n return scrollBox\n }, undefined!)\n viewport.x += viewportMargin\n viewport.y += viewportMargin\n viewport.width -= viewportMargin * 2\n viewport.height -= viewportMargin * 2\n\n let placement = {\n anchor: preferredAnchor.value,\n origin: preferredOrigin.value,\n }\n\n function checkOverflow (_placement: typeof placement) {\n const box = new Box(contentBox)\n const targetPoint = anchorToPoint(_placement.anchor, targetBox)\n const contentPoint = anchorToPoint(_placement.origin, box)\n\n let { x, y } = getOffset(targetPoint, contentPoint)\n\n switch (_placement.anchor.side) {\n case 'top': y -= offset.value[0]; break\n case 'bottom': y += offset.value[0]; break\n case 'left': x -= offset.value[0]; break\n case 'right': x += offset.value[0]; break\n }\n\n switch (_placement.anchor.align) {\n case 'top': y -= offset.value[1]; break\n case 'bottom': y += offset.value[1]; break\n case 'left': x -= offset.value[1]; break\n case 'right': x += offset.value[1]; break\n }\n\n box.x += x\n box.y += y\n\n box.width = Math.min(box.width, maxWidth.value)\n box.height = Math.min(box.height, maxHeight.value)\n\n const overflows = getOverflow(box, viewport)\n\n return { overflows, x, y }\n }\n\n let x = 0; let y = 0\n const available = { x: 0, y: 0 }\n const flipped = { x: false, y: false }\n let resets = -1\n while (true) {\n if (resets++ > 10) {\n consoleError('Infinite loop detected in connectedLocationStrategy')\n break\n }\n\n const { x: _x, y: _y, overflows } = checkOverflow(placement)\n\n x += _x\n y += _y\n\n contentBox.x += _x\n contentBox.y += _y\n\n // flip\n {\n const axis = getAxis(placement.anchor)\n const hasOverflowX = overflows.x.before || overflows.x.after\n const hasOverflowY = overflows.y.before || overflows.y.after\n\n let reset = false\n ;['x', 'y'].forEach(key => {\n if (\n (key === 'x' && hasOverflowX && !flipped.x) ||\n (key === 'y' && hasOverflowY && !flipped.y)\n ) {\n const newPlacement = { anchor: { ...placement.anchor }, origin: { ...placement.origin } }\n const flip = key === 'x'\n ? axis === 'y' ? flipAlign : flipSide\n : axis === 'y' ? flipSide : flipAlign\n newPlacement.anchor = flip(newPlacement.anchor)\n newPlacement.origin = flip(newPlacement.origin)\n const { overflows: newOverflows } = checkOverflow(newPlacement)\n if (\n (newOverflows[key].before <= overflows[key].before &&\n newOverflows[key].after <= overflows[key].after) ||\n (newOverflows[key].before + newOverflows[key].after <\n (overflows[key].before + overflows[key].after) / 2)\n ) {\n placement = newPlacement\n reset = flipped[key] = true\n }\n }\n })\n if (reset) continue\n }\n\n // shift\n if (overflows.x.before) {\n x += overflows.x.before\n contentBox.x += overflows.x.before\n }\n if (overflows.x.after) {\n x -= overflows.x.after\n contentBox.x -= overflows.x.after\n }\n if (overflows.y.before) {\n y += overflows.y.before\n contentBox.y += overflows.y.before\n }\n if (overflows.y.after) {\n y -= overflows.y.after\n contentBox.y -= overflows.y.after\n }\n\n // size\n {\n const overflows = getOverflow(contentBox, viewport)\n available.x = viewport.width - overflows.x.before - overflows.x.after\n available.y = viewport.height - overflows.y.before - overflows.y.after\n\n x += overflows.x.before\n contentBox.x += overflows.x.before\n y += overflows.y.before\n contentBox.y += overflows.y.before\n }\n\n break\n }\n\n const axis = getAxis(placement.anchor)\n\n Object.assign(contentStyles.value, {\n '--v-overlay-anchor-origin': `${placement.anchor.side} ${placement.anchor.align}`,\n transformOrigin: `${placement.origin.side} ${placement.origin.align}`,\n // transform: `translate(${pixelRound(x)}px, ${pixelRound(y)}px)`,\n top: convertToUnit(pixelRound(y)),\n left: data.isRtl.value ? undefined : convertToUnit(pixelRound(x)),\n right: data.isRtl.value ? convertToUnit(pixelRound(-x)) : undefined,\n minWidth: convertToUnit(axis === 'y' ? Math.min(minWidth.value, targetBox.width) : minWidth.value),\n maxWidth: convertToUnit(pixelCeil(clamp(available.x, minWidth.value === Infinity ? 0 : minWidth.value, maxWidth.value))),\n maxHeight: convertToUnit(pixelCeil(clamp(available.y, minHeight.value === Infinity ? 0 : minHeight.value, maxHeight.value))),\n })\n\n return {\n available,\n contentBox,\n flipped,\n }\n }\n\n watch(\n () => [\n preferredAnchor.value,\n preferredOrigin.value,\n props.offset,\n props.minWidth,\n props.minHeight,\n props.maxWidth,\n props.maxHeight,\n ],\n () => updateLocation(),\n )\n\n nextTick(() => {\n const result = updateLocation()\n\n // TODO: overflowing content should only require a single updateLocation call\n // Icky hack to make sure the content is positioned consistently\n if (!result) return\n const { available, contentBox } = result\n if (contentBox.height > available.y) {\n requestAnimationFrame(() => {\n updateLocation()\n requestAnimationFrame(() => {\n updateLocation()\n })\n })\n }\n })\n\n return { updateLocation }\n}\n\nfunction pixelRound (val: number) {\n return Math.round(val * devicePixelRatio) / devicePixelRatio\n}\n\nfunction pixelCeil (val: number) {\n return Math.ceil(val * devicePixelRatio) / devicePixelRatio\n}\n"],"mappings":"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","ignoreList":[]}
|
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.8.6-master.2025-05-
|
19
|
+
export const version = "3.8.6-master.2025-05-22";
|
20
20
|
createVuetify.version = version;
|
21
21
|
export { blueprints, components, directives };
|
22
22
|
export * from "./composables/index.js";
|
package/lib/framework.d.ts
CHANGED
@@ -2539,74 +2539,77 @@ declare module 'vue' {
|
|
2539
2539
|
$children?: VNodeChild
|
2540
2540
|
}
|
2541
2541
|
export interface GlobalComponents {
|
2542
|
-
VApp: typeof import('vuetify/components')['VApp']
|
2543
|
-
VAutocomplete: typeof import('vuetify/components')['VAutocomplete']
|
2544
|
-
VAlert: typeof import('vuetify/components')['VAlert']
|
2545
|
-
VAlertTitle: typeof import('vuetify/components')['VAlertTitle']
|
2546
|
-
VBadge: typeof import('vuetify/components')['VBadge']
|
2547
2542
|
VAppBar: typeof import('vuetify/components')['VAppBar']
|
2548
2543
|
VAppBarNavIcon: typeof import('vuetify/components')['VAppBarNavIcon']
|
2549
2544
|
VAppBarTitle: typeof import('vuetify/components')['VAppBarTitle']
|
2545
|
+
VAutocomplete: typeof import('vuetify/components')['VAutocomplete']
|
2550
2546
|
VAvatar: typeof import('vuetify/components')['VAvatar']
|
2551
|
-
|
2552
|
-
|
2553
|
-
|
2547
|
+
VAlert: typeof import('vuetify/components')['VAlert']
|
2548
|
+
VAlertTitle: typeof import('vuetify/components')['VAlertTitle']
|
2549
|
+
VApp: typeof import('vuetify/components')['VApp']
|
2550
|
+
VBadge: typeof import('vuetify/components')['VBadge']
|
2554
2551
|
VBottomNavigation: typeof import('vuetify/components')['VBottomNavigation']
|
2555
|
-
VBtn: typeof import('vuetify/components')['VBtn']
|
2556
2552
|
VBanner: typeof import('vuetify/components')['VBanner']
|
2557
2553
|
VBannerActions: typeof import('vuetify/components')['VBannerActions']
|
2558
2554
|
VBannerText: typeof import('vuetify/components')['VBannerText']
|
2559
|
-
VBtnToggle: typeof import('vuetify/components')['VBtnToggle']
|
2560
|
-
VCarousel: typeof import('vuetify/components')['VCarousel']
|
2561
|
-
VCarouselItem: typeof import('vuetify/components')['VCarouselItem']
|
2562
2555
|
VBottomSheet: typeof import('vuetify/components')['VBottomSheet']
|
2556
|
+
VBtnGroup: typeof import('vuetify/components')['VBtnGroup']
|
2557
|
+
VBreadcrumbs: typeof import('vuetify/components')['VBreadcrumbs']
|
2558
|
+
VBreadcrumbsItem: typeof import('vuetify/components')['VBreadcrumbsItem']
|
2559
|
+
VBreadcrumbsDivider: typeof import('vuetify/components')['VBreadcrumbsDivider']
|
2563
2560
|
VCard: typeof import('vuetify/components')['VCard']
|
2564
2561
|
VCardActions: typeof import('vuetify/components')['VCardActions']
|
2565
2562
|
VCardItem: typeof import('vuetify/components')['VCardItem']
|
2566
2563
|
VCardSubtitle: typeof import('vuetify/components')['VCardSubtitle']
|
2567
2564
|
VCardText: typeof import('vuetify/components')['VCardText']
|
2568
2565
|
VCardTitle: typeof import('vuetify/components')['VCardTitle']
|
2569
|
-
|
2566
|
+
VBtnToggle: typeof import('vuetify/components')['VBtnToggle']
|
2567
|
+
VCarousel: typeof import('vuetify/components')['VCarousel']
|
2568
|
+
VCarouselItem: typeof import('vuetify/components')['VCarouselItem']
|
2569
|
+
VBtn: typeof import('vuetify/components')['VBtn']
|
2570
2570
|
VCheckbox: typeof import('vuetify/components')['VCheckbox']
|
2571
2571
|
VCheckboxBtn: typeof import('vuetify/components')['VCheckboxBtn']
|
2572
|
-
VBtnGroup: typeof import('vuetify/components')['VBtnGroup']
|
2573
2572
|
VCode: typeof import('vuetify/components')['VCode']
|
2573
|
+
VChip: typeof import('vuetify/components')['VChip']
|
2574
2574
|
VCombobox: typeof import('vuetify/components')['VCombobox']
|
2575
|
-
VCounter: typeof import('vuetify/components')['VCounter']
|
2576
|
-
VChipGroup: typeof import('vuetify/components')['VChipGroup']
|
2577
2575
|
VColorPicker: typeof import('vuetify/components')['VColorPicker']
|
2578
|
-
|
2576
|
+
VCounter: typeof import('vuetify/components')['VCounter']
|
2579
2577
|
VDatePicker: typeof import('vuetify/components')['VDatePicker']
|
2580
2578
|
VDatePickerControls: typeof import('vuetify/components')['VDatePickerControls']
|
2581
2579
|
VDatePickerHeader: typeof import('vuetify/components')['VDatePickerHeader']
|
2582
2580
|
VDatePickerMonth: typeof import('vuetify/components')['VDatePickerMonth']
|
2583
2581
|
VDatePickerMonths: typeof import('vuetify/components')['VDatePickerMonths']
|
2584
2582
|
VDatePickerYears: typeof import('vuetify/components')['VDatePickerYears']
|
2585
|
-
|
2583
|
+
VChipGroup: typeof import('vuetify/components')['VChipGroup']
|
2584
|
+
VDataTable: typeof import('vuetify/components')['VDataTable']
|
2585
|
+
VDataTableHeaders: typeof import('vuetify/components')['VDataTableHeaders']
|
2586
|
+
VDataTableFooter: typeof import('vuetify/components')['VDataTableFooter']
|
2587
|
+
VDataTableRows: typeof import('vuetify/components')['VDataTableRows']
|
2588
|
+
VDataTableRow: typeof import('vuetify/components')['VDataTableRow']
|
2589
|
+
VDataTableVirtual: typeof import('vuetify/components')['VDataTableVirtual']
|
2590
|
+
VDataTableServer: typeof import('vuetify/components')['VDataTableServer']
|
2586
2591
|
VEmptyState: typeof import('vuetify/components')['VEmptyState']
|
2592
|
+
VDivider: typeof import('vuetify/components')['VDivider']
|
2593
|
+
VFab: typeof import('vuetify/components')['VFab']
|
2594
|
+
VField: typeof import('vuetify/components')['VField']
|
2595
|
+
VFieldLabel: typeof import('vuetify/components')['VFieldLabel']
|
2587
2596
|
VExpansionPanels: typeof import('vuetify/components')['VExpansionPanels']
|
2588
2597
|
VExpansionPanel: typeof import('vuetify/components')['VExpansionPanel']
|
2589
2598
|
VExpansionPanelText: typeof import('vuetify/components')['VExpansionPanelText']
|
2590
2599
|
VExpansionPanelTitle: typeof import('vuetify/components')['VExpansionPanelTitle']
|
2591
|
-
|
2592
|
-
|
2593
|
-
VFab: typeof import('vuetify/components')['VFab']
|
2600
|
+
VFileInput: typeof import('vuetify/components')['VFileInput']
|
2601
|
+
VDialog: typeof import('vuetify/components')['VDialog']
|
2594
2602
|
VIcon: typeof import('vuetify/components')['VIcon']
|
2595
2603
|
VComponentIcon: typeof import('vuetify/components')['VComponentIcon']
|
2596
2604
|
VSvgIcon: typeof import('vuetify/components')['VSvgIcon']
|
2597
2605
|
VLigatureIcon: typeof import('vuetify/components')['VLigatureIcon']
|
2598
2606
|
VClassIcon: typeof import('vuetify/components')['VClassIcon']
|
2599
|
-
VFileInput: typeof import('vuetify/components')['VFileInput']
|
2600
|
-
VFooter: typeof import('vuetify/components')['VFooter']
|
2601
|
-
VInfiniteScroll: typeof import('vuetify/components')['VInfiniteScroll']
|
2602
|
-
VLabel: typeof import('vuetify/components')['VLabel']
|
2603
|
-
VInput: typeof import('vuetify/components')['VInput']
|
2604
|
-
VItemGroup: typeof import('vuetify/components')['VItemGroup']
|
2605
|
-
VItem: typeof import('vuetify/components')['VItem']
|
2606
2607
|
VImg: typeof import('vuetify/components')['VImg']
|
2608
|
+
VInput: typeof import('vuetify/components')['VInput']
|
2609
|
+
VInfiniteScroll: typeof import('vuetify/components')['VInfiniteScroll']
|
2607
2610
|
VKbd: typeof import('vuetify/components')['VKbd']
|
2608
|
-
|
2609
|
-
|
2611
|
+
VFooter: typeof import('vuetify/components')['VFooter']
|
2612
|
+
VLabel: typeof import('vuetify/components')['VLabel']
|
2610
2613
|
VList: typeof import('vuetify/components')['VList']
|
2611
2614
|
VListGroup: typeof import('vuetify/components')['VListGroup']
|
2612
2615
|
VListImg: typeof import('vuetify/components')['VListImg']
|
@@ -2616,70 +2619,73 @@ declare module 'vue' {
|
|
2616
2619
|
VListItemSubtitle: typeof import('vuetify/components')['VListItemSubtitle']
|
2617
2620
|
VListItemTitle: typeof import('vuetify/components')['VListItemTitle']
|
2618
2621
|
VListSubheader: typeof import('vuetify/components')['VListSubheader']
|
2619
|
-
|
2620
|
-
|
2622
|
+
VItemGroup: typeof import('vuetify/components')['VItemGroup']
|
2623
|
+
VItem: typeof import('vuetify/components')['VItem']
|
2624
|
+
VMenu: typeof import('vuetify/components')['VMenu']
|
2625
|
+
VMessages: typeof import('vuetify/components')['VMessages']
|
2621
2626
|
VNumberInput: typeof import('vuetify/components')['VNumberInput']
|
2627
|
+
VOtpInput: typeof import('vuetify/components')['VOtpInput']
|
2622
2628
|
VOverlay: typeof import('vuetify/components')['VOverlay']
|
2629
|
+
VPagination: typeof import('vuetify/components')['VPagination']
|
2630
|
+
VNavigationDrawer: typeof import('vuetify/components')['VNavigationDrawer']
|
2623
2631
|
VProgressCircular: typeof import('vuetify/components')['VProgressCircular']
|
2624
|
-
VRadioGroup: typeof import('vuetify/components')['VRadioGroup']
|
2625
2632
|
VProgressLinear: typeof import('vuetify/components')['VProgressLinear']
|
2626
|
-
|
2627
|
-
VSelectionControlGroup: typeof import('vuetify/components')['VSelectionControlGroup']
|
2633
|
+
VRadioGroup: typeof import('vuetify/components')['VRadioGroup']
|
2628
2634
|
VRating: typeof import('vuetify/components')['VRating']
|
2629
2635
|
VSelect: typeof import('vuetify/components')['VSelect']
|
2630
|
-
|
2631
|
-
|
2632
|
-
|
2636
|
+
VSheet: typeof import('vuetify/components')['VSheet']
|
2637
|
+
VSelectionControlGroup: typeof import('vuetify/components')['VSelectionControlGroup']
|
2638
|
+
VSnackbar: typeof import('vuetify/components')['VSnackbar']
|
2639
|
+
VSlider: typeof import('vuetify/components')['VSlider']
|
2633
2640
|
VSlideGroup: typeof import('vuetify/components')['VSlideGroup']
|
2634
2641
|
VSlideGroupItem: typeof import('vuetify/components')['VSlideGroupItem']
|
2642
|
+
VSkeletonLoader: typeof import('vuetify/components')['VSkeletonLoader']
|
2635
2643
|
VStepper: typeof import('vuetify/components')['VStepper']
|
2636
2644
|
VStepperActions: typeof import('vuetify/components')['VStepperActions']
|
2637
2645
|
VStepperHeader: typeof import('vuetify/components')['VStepperHeader']
|
2638
2646
|
VStepperItem: typeof import('vuetify/components')['VStepperItem']
|
2639
2647
|
VStepperWindow: typeof import('vuetify/components')['VStepperWindow']
|
2640
2648
|
VStepperWindowItem: typeof import('vuetify/components')['VStepperWindowItem']
|
2641
|
-
|
2642
|
-
VSheet: typeof import('vuetify/components')['VSheet']
|
2649
|
+
VSelectionControl: typeof import('vuetify/components')['VSelectionControl']
|
2643
2650
|
VSwitch: typeof import('vuetify/components')['VSwitch']
|
2644
|
-
VSnackbar: typeof import('vuetify/components')['VSnackbar']
|
2645
2651
|
VTab: typeof import('vuetify/components')['VTab']
|
2646
2652
|
VTabs: typeof import('vuetify/components')['VTabs']
|
2647
2653
|
VTabsWindow: typeof import('vuetify/components')['VTabsWindow']
|
2648
2654
|
VTabsWindowItem: typeof import('vuetify/components')['VTabsWindowItem']
|
2649
|
-
VTextField: typeof import('vuetify/components')['VTextField']
|
2650
2655
|
VSystemBar: typeof import('vuetify/components')['VSystemBar']
|
2651
2656
|
VTable: typeof import('vuetify/components')['VTable']
|
2657
|
+
VTextarea: typeof import('vuetify/components')['VTextarea']
|
2658
|
+
VTextField: typeof import('vuetify/components')['VTextField']
|
2652
2659
|
VTimeline: typeof import('vuetify/components')['VTimeline']
|
2653
2660
|
VTimelineItem: typeof import('vuetify/components')['VTimelineItem']
|
2661
|
+
VTooltip: typeof import('vuetify/components')['VTooltip']
|
2654
2662
|
VToolbar: typeof import('vuetify/components')['VToolbar']
|
2655
2663
|
VToolbarTitle: typeof import('vuetify/components')['VToolbarTitle']
|
2656
2664
|
VToolbarItems: typeof import('vuetify/components')['VToolbarItems']
|
2657
|
-
VTooltip: typeof import('vuetify/components')['VTooltip']
|
2658
|
-
VTextarea: typeof import('vuetify/components')['VTextarea']
|
2659
2665
|
VWindow: typeof import('vuetify/components')['VWindow']
|
2660
2666
|
VWindowItem: typeof import('vuetify/components')['VWindowItem']
|
2661
2667
|
VConfirmEdit: typeof import('vuetify/components')['VConfirmEdit']
|
2662
|
-
VDataIterator: typeof import('vuetify/components')['VDataIterator']
|
2663
2668
|
VDefaultsProvider: typeof import('vuetify/components')['VDefaultsProvider']
|
2669
|
+
VDataIterator: typeof import('vuetify/components')['VDataIterator']
|
2670
|
+
VForm: typeof import('vuetify/components')['VForm']
|
2664
2671
|
VContainer: typeof import('vuetify/components')['VContainer']
|
2665
2672
|
VCol: typeof import('vuetify/components')['VCol']
|
2666
2673
|
VRow: typeof import('vuetify/components')['VRow']
|
2667
2674
|
VSpacer: typeof import('vuetify/components')['VSpacer']
|
2668
|
-
|
2675
|
+
VHover: typeof import('vuetify/components')['VHover']
|
2669
2676
|
VLayout: typeof import('vuetify/components')['VLayout']
|
2670
2677
|
VLayoutItem: typeof import('vuetify/components')['VLayoutItem']
|
2671
|
-
VLocaleProvider: typeof import('vuetify/components')['VLocaleProvider']
|
2672
|
-
VHover: typeof import('vuetify/components')['VHover']
|
2673
2678
|
VNoSsr: typeof import('vuetify/components')['VNoSsr']
|
2674
2679
|
VParallax: typeof import('vuetify/components')['VParallax']
|
2675
|
-
VRadio: typeof import('vuetify/components')['VRadio']
|
2676
2680
|
VRangeSlider: typeof import('vuetify/components')['VRangeSlider']
|
2677
2681
|
VResponsive: typeof import('vuetify/components')['VResponsive']
|
2678
|
-
|
2682
|
+
VRadio: typeof import('vuetify/components')['VRadio']
|
2679
2683
|
VSparkline: typeof import('vuetify/components')['VSparkline']
|
2680
2684
|
VSpeedDial: typeof import('vuetify/components')['VSpeedDial']
|
2681
|
-
|
2685
|
+
VSnackbarQueue: typeof import('vuetify/components')['VSnackbarQueue']
|
2686
|
+
VValidation: typeof import('vuetify/components')['VValidation']
|
2682
2687
|
VVirtualScroll: typeof import('vuetify/components')['VVirtualScroll']
|
2688
|
+
VThemeProvider: typeof import('vuetify/components')['VThemeProvider']
|
2683
2689
|
VFabTransition: typeof import('vuetify/components')['VFabTransition']
|
2684
2690
|
VDialogBottomTransition: typeof import('vuetify/components')['VDialogBottomTransition']
|
2685
2691
|
VDialogTopTransition: typeof import('vuetify/components')['VDialogTopTransition']
|
@@ -2696,14 +2702,8 @@ declare module 'vue' {
|
|
2696
2702
|
VExpandTransition: typeof import('vuetify/components')['VExpandTransition']
|
2697
2703
|
VExpandXTransition: typeof import('vuetify/components')['VExpandXTransition']
|
2698
2704
|
VDialogTransition: typeof import('vuetify/components')['VDialogTransition']
|
2699
|
-
|
2700
|
-
|
2701
|
-
VDataTableFooter: typeof import('vuetify/components')['VDataTableFooter']
|
2702
|
-
VDataTableRows: typeof import('vuetify/components')['VDataTableRows']
|
2703
|
-
VDataTableRow: typeof import('vuetify/components')['VDataTableRow']
|
2704
|
-
VDataTableVirtual: typeof import('vuetify/components')['VDataTableVirtual']
|
2705
|
-
VDataTableServer: typeof import('vuetify/components')['VDataTableServer']
|
2706
|
-
VValidation: typeof import('vuetify/components')['VValidation']
|
2705
|
+
VMain: typeof import('vuetify/components')['VMain']
|
2706
|
+
VLocaleProvider: typeof import('vuetify/components')['VLocaleProvider']
|
2707
2707
|
VLazy: typeof import('vuetify/components')['VLazy']
|
2708
2708
|
VCalendar: typeof import('vuetify/labs/components')['VCalendar']
|
2709
2709
|
VCalendarDay: typeof import('vuetify/labs/components')['VCalendarDay']
|
@@ -2711,22 +2711,22 @@ declare module 'vue' {
|
|
2711
2711
|
VCalendarInterval: typeof import('vuetify/labs/components')['VCalendarInterval']
|
2712
2712
|
VCalendarIntervalEvent: typeof import('vuetify/labs/components')['VCalendarIntervalEvent']
|
2713
2713
|
VCalendarMonthDay: typeof import('vuetify/labs/components')['VCalendarMonthDay']
|
2714
|
-
VColorInput: typeof import('vuetify/labs/components')['VColorInput']
|
2715
|
-
VIconBtn: typeof import('vuetify/labs/components')['VIconBtn']
|
2716
|
-
VPicker: typeof import('vuetify/labs/components')['VPicker']
|
2717
|
-
VPickerTitle: typeof import('vuetify/labs/components')['VPickerTitle']
|
2718
2714
|
VFileUpload: typeof import('vuetify/labs/components')['VFileUpload']
|
2719
2715
|
VFileUploadItem: typeof import('vuetify/labs/components')['VFileUploadItem']
|
2720
|
-
VTimePicker: typeof import('vuetify/labs/components')['VTimePicker']
|
2721
|
-
VTimePickerClock: typeof import('vuetify/labs/components')['VTimePickerClock']
|
2722
|
-
VTimePickerControls: typeof import('vuetify/labs/components')['VTimePickerControls']
|
2723
2716
|
VStepperVertical: typeof import('vuetify/labs/components')['VStepperVertical']
|
2724
2717
|
VStepperVerticalItem: typeof import('vuetify/labs/components')['VStepperVerticalItem']
|
2725
2718
|
VStepperVerticalActions: typeof import('vuetify/labs/components')['VStepperVerticalActions']
|
2719
|
+
VColorInput: typeof import('vuetify/labs/components')['VColorInput']
|
2720
|
+
VIconBtn: typeof import('vuetify/labs/components')['VIconBtn']
|
2721
|
+
VPicker: typeof import('vuetify/labs/components')['VPicker']
|
2722
|
+
VPickerTitle: typeof import('vuetify/labs/components')['VPickerTitle']
|
2726
2723
|
VTreeview: typeof import('vuetify/labs/components')['VTreeview']
|
2727
2724
|
VTreeviewItem: typeof import('vuetify/labs/components')['VTreeviewItem']
|
2728
2725
|
VTreeviewGroup: typeof import('vuetify/labs/components')['VTreeviewGroup']
|
2729
2726
|
VDateInput: typeof import('vuetify/labs/components')['VDateInput']
|
2727
|
+
VTimePicker: typeof import('vuetify/labs/components')['VTimePicker']
|
2728
|
+
VTimePickerClock: typeof import('vuetify/labs/components')['VTimePickerClock']
|
2729
|
+
VTimePickerControls: typeof import('vuetify/labs/components')['VTimePickerControls']
|
2730
2730
|
VPullToRefresh: typeof import('vuetify/labs/components')['VPullToRefresh']
|
2731
2731
|
}
|
2732
2732
|
}
|
package/lib/framework.js
CHANGED
package/lib/util/box.d.ts
CHANGED
package/lib/util/box.js
CHANGED
@@ -48,4 +48,31 @@ export function getTargetBox(target) {
|
|
48
48
|
return target.getBoundingClientRect();
|
49
49
|
}
|
50
50
|
}
|
51
|
+
export function getElementBox(el) {
|
52
|
+
if (el === document.documentElement) {
|
53
|
+
if (!visualViewport) {
|
54
|
+
return new Box({
|
55
|
+
x: 0,
|
56
|
+
y: 0,
|
57
|
+
width: document.documentElement.clientWidth,
|
58
|
+
height: document.documentElement.clientHeight
|
59
|
+
});
|
60
|
+
} else {
|
61
|
+
return new Box({
|
62
|
+
x: visualViewport.scale > 1 ? 0 : visualViewport.offsetLeft,
|
63
|
+
y: visualViewport.scale > 1 ? 0 : visualViewport.offsetTop,
|
64
|
+
width: visualViewport.width * visualViewport.scale,
|
65
|
+
height: visualViewport.height * visualViewport.scale
|
66
|
+
});
|
67
|
+
}
|
68
|
+
} else {
|
69
|
+
const rect = el.getBoundingClientRect();
|
70
|
+
return new Box({
|
71
|
+
x: rect.x,
|
72
|
+
y: rect.y,
|
73
|
+
width: el.clientWidth,
|
74
|
+
height: el.clientHeight
|
75
|
+
});
|
76
|
+
}
|
77
|
+
}
|
51
78
|
//# sourceMappingURL=box.js.map
|
package/lib/util/box.js.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"box.js","names":["Box","constructor","_ref","x","y","width","height","top","bottom","left","right","getOverflow","a","b","before","Math","max","after","getTargetBox","target","Array","isArray","getBoundingClientRect"],"sources":["../../src/util/box.ts"],"sourcesContent":["export class Box {\n x: number\n y: number\n width: number\n height: number\n\n constructor ({ x, y, width, height }: {\n x: number\n y: number\n width: number\n height: number\n }) {\n this.x = x\n this.y = y\n this.width = width\n this.height = height\n }\n\n get top () { return this.y }\n get bottom () { return this.y + this.height }\n get left () { return this.x }\n get right () { return this.x + this.width }\n}\n\nexport function getOverflow (a: Box, b: Box) {\n return {\n x: {\n before: Math.max(0, b.left - a.left),\n after: Math.max(0, a.right - b.right),\n },\n y: {\n before: Math.max(0, b.top - a.top),\n after: Math.max(0, a.bottom - b.bottom),\n },\n }\n}\n\nexport function getTargetBox (target: HTMLElement | [x: number, y: number]): Box {\n if (Array.isArray(target)) {\n return new Box({\n x: target[0],\n y: target[1],\n width: 0,\n height: 0,\n })\n } else {\n return target.getBoundingClientRect()\n }\n}\n"],"mappings":"AAAA,OAAO,MAAMA,GAAG,CAAC;EAMfC,WAAWA,CAAAC,IAAA,EAKR;IAAA,IALU;MAAEC,CAAC;MAAEC,CAAC;MAAEC,KAAK;MAAEC;IAK5B,CAAC,GAAAJ,IAAA;IACC,IAAI,CAACC,CAAC,GAAGA,CAAC;IACV,IAAI,CAACC,CAAC,GAAGA,CAAC;IACV,IAAI,CAACC,KAAK,GAAGA,KAAK;IAClB,IAAI,CAACC,MAAM,GAAGA,MAAM;EACtB;EAEA,IAAIC,GAAGA,CAAA,EAAI;IAAE,OAAO,IAAI,CAACH,CAAC;EAAC;EAC3B,IAAII,MAAMA,CAAA,EAAI;IAAE,OAAO,IAAI,CAACJ,CAAC,GAAG,IAAI,CAACE,MAAM;EAAC;EAC5C,IAAIG,IAAIA,CAAA,EAAI;IAAE,OAAO,IAAI,CAACN,CAAC;EAAC;EAC5B,IAAIO,KAAKA,CAAA,EAAI;IAAE,OAAO,IAAI,CAACP,CAAC,GAAG,IAAI,CAACE,KAAK;EAAC;AAC5C;AAEA,OAAO,SAASM,WAAWA,CAAEC,CAAM,EAAEC,CAAM,EAAE;EAC3C,OAAO;IACLV,CAAC,EAAE;MACDW,MAAM,EAAEC,IAAI,CAACC,GAAG,CAAC,CAAC,EAAEH,CAAC,CAACJ,IAAI,GAAGG,CAAC,CAACH,IAAI,CAAC;MACpCQ,KAAK,EAAEF,IAAI,CAACC,GAAG,CAAC,CAAC,EAAEJ,CAAC,CAACF,KAAK,GAAGG,CAAC,CAACH,KAAK;IACtC,CAAC;IACDN,CAAC,EAAE;MACDU,MAAM,EAAEC,IAAI,CAACC,GAAG,CAAC,CAAC,EAAEH,CAAC,CAACN,GAAG,GAAGK,CAAC,CAACL,GAAG,CAAC;MAClCU,KAAK,EAAEF,IAAI,CAACC,GAAG,CAAC,CAAC,EAAEJ,CAAC,CAACJ,MAAM,GAAGK,CAAC,CAACL,MAAM;IACxC;EACF,CAAC;AACH;AAEA,OAAO,SAASU,YAAYA,CAAEC,MAA4C,EAAO;EAC/E,IAAIC,KAAK,CAACC,OAAO,CAACF,MAAM,CAAC,EAAE;IACzB,OAAO,IAAInB,GAAG,CAAC;MACbG,CAAC,EAAEgB,MAAM,CAAC,CAAC,CAAC;MACZf,CAAC,EAAEe,MAAM,CAAC,CAAC,CAAC;MACZd,KAAK,EAAE,CAAC;MACRC,MAAM,EAAE;IACV,CAAC,CAAC;EACJ,CAAC,MAAM;IACL,OAAOa,MAAM,CAACG,qBAAqB,CAAC,CAAC;EACvC;AACF","ignoreList":[]}
|
1
|
+
{"version":3,"file":"box.js","names":["Box","constructor","_ref","x","y","width","height","top","bottom","left","right","getOverflow","a","b","before","Math","max","after","getTargetBox","target","Array","isArray","getBoundingClientRect","getElementBox","el","document","documentElement","visualViewport","clientWidth","clientHeight","scale","offsetLeft","offsetTop","rect"],"sources":["../../src/util/box.ts"],"sourcesContent":["export class Box {\n x: number\n y: number\n width: number\n height: number\n\n constructor ({ x, y, width, height }: {\n x: number\n y: number\n width: number\n height: number\n }) {\n this.x = x\n this.y = y\n this.width = width\n this.height = height\n }\n\n get top () { return this.y }\n get bottom () { return this.y + this.height }\n get left () { return this.x }\n get right () { return this.x + this.width }\n}\n\nexport function getOverflow (a: Box, b: Box) {\n return {\n x: {\n before: Math.max(0, b.left - a.left),\n after: Math.max(0, a.right - b.right),\n },\n y: {\n before: Math.max(0, b.top - a.top),\n after: Math.max(0, a.bottom - b.bottom),\n },\n }\n}\n\nexport function getTargetBox (target: HTMLElement | [x: number, y: number]): Box {\n if (Array.isArray(target)) {\n return new Box({\n x: target[0],\n y: target[1],\n width: 0,\n height: 0,\n })\n } else {\n return target.getBoundingClientRect()\n }\n}\n\nexport function getElementBox (el: HTMLElement) {\n if (el === document.documentElement) {\n if (!visualViewport) {\n return new Box({\n x: 0,\n y: 0,\n width: document.documentElement.clientWidth,\n height: document.documentElement.clientHeight,\n })\n } else {\n return new Box({\n x: visualViewport.scale > 1 ? 0 : visualViewport.offsetLeft,\n y: visualViewport.scale > 1 ? 0 : visualViewport.offsetTop,\n width: visualViewport.width * visualViewport.scale,\n height: visualViewport.height * visualViewport.scale,\n })\n }\n } else {\n const rect = el.getBoundingClientRect()\n return new Box({\n x: rect.x,\n y: rect.y,\n width: el.clientWidth,\n height: el.clientHeight,\n })\n }\n}\n"],"mappings":"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","ignoreList":[]}
|