@vuetify/nightly 3.10.9-dev.2025-11-05 → 3.10.9-dev.2025-11-06
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +6 -3
- package/dist/json/attributes.json +3507 -3455
- package/dist/json/importMap-labs.json +26 -26
- package/dist/json/importMap.json +164 -164
- package/dist/json/tags.json +14 -1
- package/dist/json/web-types.json +6462 -6338
- package/dist/vuetify-labs.cjs +76 -37
- package/dist/vuetify-labs.css +4631 -4631
- package/dist/vuetify-labs.d.ts +394 -129
- package/dist/vuetify-labs.esm.js +76 -37
- package/dist/vuetify-labs.esm.js.map +1 -1
- package/dist/vuetify-labs.js +76 -37
- package/dist/vuetify-labs.min.css +2 -2
- package/dist/vuetify.cjs +76 -37
- package/dist/vuetify.cjs.map +1 -1
- package/dist/vuetify.css +3336 -3336
- package/dist/vuetify.d.ts +334 -109
- package/dist/vuetify.esm.js +76 -37
- package/dist/vuetify.esm.js.map +1 -1
- package/dist/vuetify.js +76 -37
- package/dist/vuetify.js.map +1 -1
- package/dist/vuetify.min.css +2 -2
- package/dist/vuetify.min.js +22 -21
- package/dist/vuetify.min.js.map +1 -1
- package/lib/components/VAutocomplete/VAutocomplete.d.ts +33 -11
- package/lib/components/VBottomSheet/VBottomSheet.d.ts +25 -0
- package/lib/components/VBreadcrumbs/VBreadcrumbs.d.ts +13 -0
- package/lib/components/VBreadcrumbs/VBreadcrumbs.js +3 -2
- package/lib/components/VBreadcrumbs/VBreadcrumbs.js.map +1 -1
- package/lib/components/VBreadcrumbs/VBreadcrumbsItem.d.ts +20 -0
- package/lib/components/VBreadcrumbs/VBreadcrumbsItem.js +7 -2
- package/lib/components/VBreadcrumbs/VBreadcrumbsItem.js.map +1 -1
- package/lib/components/VCombobox/VCombobox.d.ts +33 -11
- package/lib/components/VDialog/VDialog.d.ts +52 -9
- package/lib/components/VMenu/VMenu.d.ts +52 -9
- package/lib/components/VOverlay/VOverlay.d.ts +25 -0
- package/lib/components/VOverlay/locationStrategies.d.ts +12 -0
- package/lib/components/VOverlay/locationStrategies.js +10 -7
- package/lib/components/VOverlay/locationStrategies.js.map +1 -1
- package/lib/components/VSelect/VSelect.d.ts +51 -17
- package/lib/components/VSnackbar/VSnackbar.d.ts +27 -9
- package/lib/components/VSnackbar/VSnackbar.js +1 -1
- package/lib/components/VSnackbar/VSnackbar.js.map +1 -1
- package/lib/components/VSpeedDial/VSpeedDial.d.ts +25 -0
- package/lib/components/VTabs/VTab.d.ts +20 -0
- package/lib/components/VTabs/VTab.js +46 -17
- package/lib/components/VTabs/VTab.js.map +1 -1
- package/lib/components/VTabs/VTabs.d.ts +20 -0
- package/lib/components/VTabs/VTabs.js +9 -7
- package/lib/components/VTabs/VTabs.js.map +1 -1
- package/lib/components/VTooltip/VTooltip.d.ts +52 -9
- package/lib/entry-bundler.js +1 -1
- package/lib/framework.d.ts +86 -67
- package/lib/framework.js +1 -1
- package/lib/labs/VVideo/VVideo.d.ts +63 -21
- package/lib/labs/VVideo/VVideoControls.d.ts +30 -10
- package/lib/labs/VVideo/VVideoVolume.d.ts +30 -10
- package/package.json +1 -1
|
@@ -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","getElementBox","getOverflow","getTargetBox","locationStrategies","static","staticLocationStrategy","connected","connectedLocationStrategy","makeLocationStrategyProps","locationStrategy","type","String","Function","default","validator","val","location","origin","offset","Number","Array","stickToTarget","Boolean","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","targetBox","width","height","newTarget","oldTarget","unobserve","immediate","contentEl","newContentEl","oldContentEl","disconnect","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 stickToTarget?: boolean\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 stickToTarget: Boolean,\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 (\n deepEqual(values.at(-1), values.at(-3)) &&\n !deepEqual(values.at(-1), values.at(-2))\n ) {\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 let targetBox = new Box({ x: 0, y: 0, width: 0, height: 0 })\n\n watch(data.target, (newTarget, oldTarget) => {\n if (oldTarget && !Array.isArray(oldTarget)) observer.unobserve(oldTarget)\n if (!Array.isArray(newTarget)) {\n if (newTarget) observer.observe(newTarget)\n } else if (!deepEqual(newTarget, oldTarget)) {\n updateLocation()\n }\n }, { immediate: true })\n\n watch(data.contentEl, (newContentEl, oldContentEl) => {\n if (oldContentEl) observer.unobserve(oldContentEl)\n if (newContentEl) observer.observe(newContentEl)\n }, { immediate: true })\n\n onScopeDispose(() => {\n observer.disconnect()\n })\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 = props.stickToTarget ? 0 : 12 // TOOD: prop.viewportMargin\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\n if (props.stickToTarget) {\n viewport.x += Math.min(0, targetBox.x)\n viewport.y += Math.min(0, targetBox.y)\n viewport.width = Math.max(viewport.width, targetBox.x + targetBox.width)\n viewport.height = Math.max(viewport.height, targetBox.y + targetBox.height)\n } else {\n viewport.x += viewportMargin\n viewport.y += viewportMargin\n viewport.width -= viewportMargin * 2\n viewport.height -= viewportMargin * 2\n }\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","stickToTarget","Boolean","viewportMargin","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","targetBox","width","height","newTarget","oldTarget","unobserve","immediate","contentEl","newContentEl","oldContentEl","disconnect","offsetParent","getClientRects","scrollParents","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 stickToTarget?: boolean\n viewportMargin?: number | string\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 stickToTarget: Boolean,\n viewportMargin: {\n type: [Number, String],\n default: 12,\n },\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 (\n deepEqual(values.at(-1), values.at(-3)) &&\n !deepEqual(values.at(-1), values.at(-2))\n ) {\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 let targetBox = new Box({ x: 0, y: 0, width: 0, height: 0 })\n\n watch(data.target, (newTarget, oldTarget) => {\n if (oldTarget && !Array.isArray(oldTarget)) observer.unobserve(oldTarget)\n if (!Array.isArray(newTarget)) {\n if (newTarget) observer.observe(newTarget)\n } else if (!deepEqual(newTarget, oldTarget)) {\n updateLocation()\n }\n }, { immediate: true })\n\n watch(data.contentEl, (newContentEl, oldContentEl) => {\n if (oldContentEl) observer.unobserve(oldContentEl)\n if (newContentEl) observer.observe(newContentEl)\n }, { immediate: true })\n\n onScopeDispose(() => {\n observer.disconnect()\n })\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 = Number(props.viewportMargin)\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\n if (props.stickToTarget) {\n viewport.x += Math.min(viewportMargin, targetBox.x)\n viewport.y += Math.min(viewportMargin, targetBox.y)\n viewport.width = Math.max(\n viewport.width - viewportMargin * 2,\n targetBox.x + targetBox.width - viewportMargin\n )\n viewport.height = Math.max(\n viewport.height - viewportMargin * 2,\n targetBox.y + targetBox.height - viewportMargin\n )\n } else {\n viewport.x += viewportMargin\n viewport.y += viewportMargin\n viewport.width -= viewportMargin * 2\n viewport.height -= viewportMargin * 2\n }\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":[]}
|