@vuetify/nightly 3.10.7-dev.2025-10-23 → 3.10.7-dev.2025-10-24
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 +11 -3
- package/dist/json/attributes.json +3665 -3665
- package/dist/json/importMap-labs.json +24 -24
- package/dist/json/importMap.json +120 -120
- package/dist/json/web-types.json +6366 -6366
- package/dist/vuetify-labs.cjs +84 -31
- package/dist/vuetify-labs.css +4007 -4007
- package/dist/vuetify-labs.d.ts +46 -46
- package/dist/vuetify-labs.esm.js +85 -32
- package/dist/vuetify-labs.esm.js.map +1 -1
- package/dist/vuetify-labs.js +84 -31
- package/dist/vuetify-labs.min.css +2 -2
- package/dist/vuetify.cjs +84 -31
- package/dist/vuetify.cjs.map +1 -1
- package/dist/vuetify.css +2956 -2956
- package/dist/vuetify.d.ts +46 -46
- package/dist/vuetify.esm.js +85 -32
- package/dist/vuetify.esm.js.map +1 -1
- package/dist/vuetify.js +84 -31
- package/dist/vuetify.js.map +1 -1
- package/dist/vuetify.min.css +2 -2
- package/dist/vuetify.min.js +843 -838
- package/dist/vuetify.min.js.map +1 -1
- package/lib/components/VOverlay/locationStrategies.js +19 -11
- package/lib/components/VOverlay/locationStrategies.js.map +1 -1
- package/lib/components/VOverlay/useActivator.js +0 -1
- package/lib/components/VOverlay/useActivator.js.map +1 -1
- package/lib/composables/nested/nested.js +7 -1
- package/lib/composables/nested/nested.js.map +1 -1
- package/lib/entry-bundler.js +1 -1
- package/lib/framework.d.ts +46 -46
- package/lib/framework.js +1 -1
- package/lib/util/helpers.d.ts +8 -1
- package/lib/util/helpers.js +40 -9
- package/lib/util/helpers.js.map +1 -1
- package/package.json +1 -1
|
@@ -211,7 +211,8 @@ function connectedLocationStrategy(data, props, contentStyles) {
|
|
|
211
211
|
|
|
212
212
|
const contentBox = getIntrinsicSize(data.contentEl.value, data.isRtl.value);
|
|
213
213
|
const scrollParents = getScrollParents(data.contentEl.value);
|
|
214
|
-
const viewportMargin = 12;
|
|
214
|
+
const viewportMargin = props.stickToTarget ? 0 : 12; // TOOD: prop.viewportMargin
|
|
215
|
+
|
|
215
216
|
if (!scrollParents.length) {
|
|
216
217
|
scrollParents.push(document.documentElement);
|
|
217
218
|
if (!(data.contentEl.value.style.top && data.contentEl.value.style.left)) {
|
|
@@ -231,10 +232,17 @@ function connectedLocationStrategy(data, props, contentStyles) {
|
|
|
231
232
|
}
|
|
232
233
|
return scrollBox;
|
|
233
234
|
}, undefined);
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
235
|
+
if (props.stickToTarget) {
|
|
236
|
+
viewport.x += Math.min(0, targetBox.x);
|
|
237
|
+
viewport.y += Math.min(0, targetBox.y);
|
|
238
|
+
viewport.width = Math.max(viewport.width, targetBox.x + targetBox.width);
|
|
239
|
+
viewport.height = Math.max(viewport.height, targetBox.y + targetBox.height);
|
|
240
|
+
} else {
|
|
241
|
+
viewport.x += viewportMargin;
|
|
242
|
+
viewport.y += viewportMargin;
|
|
243
|
+
viewport.width -= viewportMargin * 2;
|
|
244
|
+
viewport.height -= viewportMargin * 2;
|
|
245
|
+
}
|
|
238
246
|
let placement = {
|
|
239
247
|
anchor: preferredAnchor.value,
|
|
240
248
|
origin: preferredOrigin.value
|
|
@@ -345,19 +353,19 @@ function connectedLocationStrategy(data, props, contentStyles) {
|
|
|
345
353
|
|
|
346
354
|
// shift
|
|
347
355
|
if (overflows.x.before) {
|
|
348
|
-
|
|
356
|
+
x += overflows.x.before;
|
|
349
357
|
contentBox.x += overflows.x.before;
|
|
350
358
|
}
|
|
351
359
|
if (overflows.x.after) {
|
|
352
|
-
|
|
360
|
+
x -= overflows.x.after;
|
|
353
361
|
contentBox.x -= overflows.x.after;
|
|
354
362
|
}
|
|
355
363
|
if (overflows.y.before) {
|
|
356
|
-
|
|
364
|
+
y += overflows.y.before;
|
|
357
365
|
contentBox.y += overflows.y.before;
|
|
358
366
|
}
|
|
359
367
|
if (overflows.y.after) {
|
|
360
|
-
|
|
368
|
+
y -= overflows.y.after;
|
|
361
369
|
contentBox.y -= overflows.y.after;
|
|
362
370
|
}
|
|
363
371
|
|
|
@@ -366,9 +374,9 @@ function connectedLocationStrategy(data, props, contentStyles) {
|
|
|
366
374
|
const overflows = getOverflow(contentBox, viewport);
|
|
367
375
|
available.x = viewport.width - overflows.x.before - overflows.x.after;
|
|
368
376
|
available.y = viewport.height - overflows.y.before - overflows.y.after;
|
|
369
|
-
|
|
377
|
+
x += overflows.x.before;
|
|
370
378
|
contentBox.x += overflows.x.before;
|
|
371
|
-
|
|
379
|
+
y += overflows.y.before;
|
|
372
380
|
contentBox.y += overflows.y.before;
|
|
373
381
|
}
|
|
374
382
|
break;
|
|
@@ -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 = 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 if (!props.stickToTarget) x += overflows.x.before\n contentBox.x += overflows.x.before\n }\n if (overflows.x.after) {\n if (!props.stickToTarget) x -= overflows.x.after\n contentBox.x -= overflows.x.after\n }\n if (overflows.y.before) {\n if (!props.stickToTarget) y += overflows.y.before\n contentBox.y += overflows.y.before\n }\n if (overflows.y.after) {\n if (!props.stickToTarget) 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 if (!props.stickToTarget) x += overflows.x.before\n contentBox.x += overflows.x.before\n if (!props.stickToTarget) 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","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 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useActivator.js","names":["VMenuSymbol","makeDelayProps","useDelay","computed","effectScope","inject","mergeProps","nextTick","onScopeDispose","ref","watch","watchEffect","bindProps","getCurrentInstance","IN_BROWSER","matchesSelector","propsFactory","templateRef","unbindProps","makeActivatorProps","target","String","Object","activator","activatorProps","type","default","openOnClick","Boolean","undefined","openOnHover","openOnFocus","closeOnContentClick","useActivator","props","_ref","isActive","isTop","contentEl","vm","activatorEl","isHovered","isFocused","firstEnter","value","runOpenDelay","runCloseDelay","cursorTarget","availableEvents","onClick","e","stopPropagation","currentTarget","clientX","clientY","onMouseenter","sourceCapabilities","firesTouchEvents","onMouseleave","onFocus","onBlur","activatorEvents","events","contentEvents","onFocusin","onFocusout","menu","closeParents","scrimEvents","val","contains","document","activeElement","setTimeout","flush","activatorRef","el","targetRef","getTarget","targetEl","Array","isArray","scope","run","_useActivator","stop","immediate","_ref2","oldVal","getActivator","unbindActivatorProps","bindActivatorProps","arguments","length","_props","selector","nodeType","Node","ELEMENT_NODE","proxy","$el","parentNode","hasAttribute","querySelector"],"sources":["../../../src/components/VOverlay/useActivator.tsx"],"sourcesContent":["// Components\nimport { VMenuSymbol } from '@/components/VMenu/shared'\n\n// Composables\nimport { makeDelayProps, useDelay } from '@/composables/delay'\n\n// Utilities\nimport {\n computed,\n effectScope,\n inject,\n mergeProps,\n nextTick,\n onScopeDispose,\n ref,\n watch,\n watchEffect,\n} from 'vue'\nimport {\n bindProps,\n getCurrentInstance,\n IN_BROWSER,\n matchesSelector,\n propsFactory,\n templateRef,\n unbindProps,\n} from '@/util'\n\n// Types\nimport type {\n ComponentInternalInstance,\n ComponentPublicInstance,\n EffectScope,\n PropType,\n Ref,\n} from 'vue'\nimport type { DelayProps } from '@/composables/delay'\n\ninterface ActivatorProps extends DelayProps {\n target: 'parent' | 'cursor' | (string & {}) | Element | ComponentPublicInstance | [x: number, y: number] | undefined\n activator: 'parent' | (string & {}) | Element | ComponentPublicInstance | undefined\n activatorProps: Record<string, any>\n\n openOnClick: boolean | undefined\n openOnHover: boolean\n openOnFocus: boolean | undefined\n\n closeOnContentClick: boolean\n}\n\nexport const makeActivatorProps = propsFactory({\n target: [String, Object] as PropType<ActivatorProps['target']>,\n activator: [String, Object] as PropType<ActivatorProps['activator']>,\n activatorProps: {\n type: Object as PropType<ActivatorProps['activatorProps']>,\n default: () => ({}),\n },\n\n openOnClick: {\n type: Boolean,\n default: undefined,\n },\n openOnHover: Boolean,\n openOnFocus: {\n type: Boolean,\n default: undefined,\n },\n\n closeOnContentClick: Boolean,\n\n ...makeDelayProps(),\n}, 'VOverlay-activator')\n\nexport function useActivator (\n props: ActivatorProps,\n { isActive, isTop, contentEl }: {\n isActive: Ref<boolean>\n isTop: Ref<boolean>\n contentEl: Ref<HTMLElement | undefined>\n }\n) {\n const vm = getCurrentInstance('useActivator')\n const activatorEl = ref<HTMLElement>()\n\n let isHovered = false\n let isFocused = false\n let firstEnter = true\n\n const openOnFocus = computed(() => props.openOnFocus || (props.openOnFocus == null && props.openOnHover))\n const openOnClick = computed(() => props.openOnClick || (props.openOnClick == null && !props.openOnHover && !openOnFocus.value))\n\n const { runOpenDelay, runCloseDelay } = useDelay(props, value => {\n if (\n value === (\n (props.openOnHover && isHovered) ||\n (openOnFocus.value && isFocused)\n ) && !(props.openOnHover && isActive.value && !isTop.value)\n ) {\n if (isActive.value !== value) {\n firstEnter = true\n }\n isActive.value = value\n }\n })\n\n const cursorTarget = ref<[x: number, y: number]>()\n const availableEvents = {\n onClick: (e: MouseEvent) => {\n e.stopPropagation()\n activatorEl.value = (e.currentTarget || e.target) as HTMLElement\n if (!isActive.value) {\n cursorTarget.value = [e.clientX, e.clientY]\n }\n isActive.value = !isActive.value\n },\n onMouseenter: (e: MouseEvent) => {\n if (e.sourceCapabilities?.firesTouchEvents) return\n\n isHovered = true\n activatorEl.value = (e.currentTarget || e.target) as HTMLElement\n runOpenDelay()\n },\n onMouseleave: (e: MouseEvent) => {\n isHovered = false\n runCloseDelay()\n },\n onFocus: (e: FocusEvent) => {\n if (matchesSelector(e.target as HTMLElement, ':focus-visible') === false) return\n\n isFocused = true\n e.stopPropagation()\n activatorEl.value = (e.currentTarget || e.target) as HTMLElement\n\n runOpenDelay()\n },\n onBlur: (e: FocusEvent) => {\n isFocused = false\n e.stopPropagation()\n\n runCloseDelay()\n },\n }\n\n const activatorEvents = computed(() => {\n const events: Partial<typeof availableEvents> = {}\n\n if (openOnClick.value) {\n events.onClick = availableEvents.onClick\n }\n if (props.openOnHover) {\n events.onMouseenter = availableEvents.onMouseenter\n events.onMouseleave = availableEvents.onMouseleave\n }\n if (openOnFocus.value) {\n events.onFocus = availableEvents.onFocus\n events.onBlur = availableEvents.onBlur\n }\n\n return events\n })\n\n const contentEvents = computed(() => {\n const events: Record<string, EventListener> = {}\n\n if (props.openOnHover) {\n events.onMouseenter = () => {\n isHovered = true\n runOpenDelay()\n }\n events.onMouseleave = () => {\n isHovered = false\n runCloseDelay()\n }\n }\n\n if (openOnFocus.value) {\n events.onFocusin = () => {\n isFocused = true\n runOpenDelay()\n }\n events.onFocusout = () => {\n isFocused = false\n runCloseDelay()\n }\n }\n\n if (props.closeOnContentClick) {\n const menu = inject(VMenuSymbol, null)\n events.onClick = () => {\n isActive.value = false\n menu?.closeParents()\n }\n }\n\n return events\n })\n\n const scrimEvents = computed(() => {\n const events: Record<string, EventListener> = {}\n\n if (props.openOnHover) {\n events.onMouseenter = () => {\n if (firstEnter) {\n isHovered = true\n firstEnter = false\n runOpenDelay()\n }\n }\n events.onMouseleave = () => {\n isHovered = false\n runCloseDelay()\n }\n }\n\n return events\n })\n\n watch(isTop, val => {\n if (val && (\n (props.openOnHover && !isHovered && (!openOnFocus.value || !isFocused)) ||\n (openOnFocus.value && !isFocused && (!props.openOnHover || !isHovered))\n ) && !contentEl.value?.contains(document.activeElement)) {\n isActive.value = false\n }\n })\n\n watch(isActive, val => {\n if (!val) {\n setTimeout(() => {\n cursorTarget.value = undefined\n })\n }\n }, { flush: 'post' })\n\n const activatorRef = templateRef()\n watchEffect(() => {\n if (!activatorRef.value) return\n\n nextTick(() => {\n activatorEl.value = activatorRef.el\n })\n })\n\n const targetRef = templateRef()\n const target = computed(() => {\n if (props.target === 'cursor' && cursorTarget.value) return cursorTarget.value\n if (targetRef.value) return targetRef.el\n return getTarget(props.target, vm) || activatorEl.value\n })\n const targetEl = computed(() => {\n return Array.isArray(target.value)\n ? undefined\n : target.value\n })\n\n let scope: EffectScope\n watch(() => !!props.activator, val => {\n if (val && IN_BROWSER) {\n scope = effectScope()\n scope.run(() => {\n _useActivator(props, vm, { activatorEl, activatorEvents })\n })\n } else if (scope) {\n scope.stop()\n }\n }, { flush: 'post', immediate: true })\n\n onScopeDispose(() => {\n scope?.stop()\n })\n\n return { activatorEl, activatorRef, target, targetEl, targetRef, activatorEvents, contentEvents, scrimEvents }\n}\n\nfunction _useActivator (\n props: ActivatorProps,\n vm: ComponentInternalInstance,\n { activatorEl, activatorEvents }: Pick<ReturnType<typeof useActivator>, 'activatorEl' | 'activatorEvents'>\n) {\n watch(() => props.activator, (val, oldVal) => {\n if (oldVal && val !== oldVal) {\n const activator = getActivator(oldVal)\n activator && unbindActivatorProps(activator)\n }\n if (val) {\n nextTick(() => bindActivatorProps())\n }\n }, { immediate: true })\n\n watch(() => props.activatorProps, () => {\n bindActivatorProps()\n })\n\n onScopeDispose(() => {\n unbindActivatorProps()\n })\n\n function bindActivatorProps (el = getActivator(), _props = props.activatorProps) {\n if (!el) return\n\n bindProps(el, mergeProps(activatorEvents.value, _props))\n }\n\n function unbindActivatorProps (el = getActivator(), _props = props.activatorProps) {\n if (!el) return\n\n unbindProps(el, mergeProps(activatorEvents.value, _props))\n }\n\n function getActivator (selector = props.activator): HTMLElement | undefined {\n const activator = getTarget(selector, vm)\n\n // The activator should only be a valid element (Ignore comments and text nodes)\n activatorEl.value = activator?.nodeType === Node.ELEMENT_NODE ? activator : undefined\n\n return activatorEl.value\n }\n}\n\nfunction getTarget<T extends 'parent' | string | Element | ComponentPublicInstance | [x: number, y: number] | undefined> (\n selector: T,\n vm: ComponentInternalInstance\n): HTMLElement | undefined | (T extends any[] ? [x: number, y: number] : never) {\n if (!selector) return\n\n let target\n if (selector === 'parent') {\n let el = vm?.proxy?.$el?.parentNode\n while (el?.hasAttribute('data-no-activator')) {\n el = el.parentNode\n }\n target = el\n } else if (typeof selector === 'string') {\n // Selector\n target = document.querySelector(selector)\n } else if ('$el' in selector) {\n // Component (ref)\n target = selector.$el\n } else {\n // HTMLElement | Element | [x, y]\n target = selector\n }\n\n return target\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"useActivator.js","names":["VMenuSymbol","makeDelayProps","useDelay","computed","effectScope","inject","mergeProps","nextTick","onScopeDispose","ref","watch","watchEffect","bindProps","getCurrentInstance","IN_BROWSER","matchesSelector","propsFactory","templateRef","unbindProps","makeActivatorProps","target","String","Object","activator","activatorProps","type","default","openOnClick","Boolean","undefined","openOnHover","openOnFocus","closeOnContentClick","useActivator","props","_ref","isActive","isTop","contentEl","vm","activatorEl","isHovered","isFocused","firstEnter","value","runOpenDelay","runCloseDelay","cursorTarget","availableEvents","onClick","e","stopPropagation","currentTarget","clientX","clientY","onMouseenter","onMouseleave","onFocus","onBlur","activatorEvents","events","contentEvents","onFocusin","onFocusout","menu","closeParents","scrimEvents","val","contains","document","activeElement","setTimeout","flush","activatorRef","el","targetRef","getTarget","targetEl","Array","isArray","scope","run","_useActivator","stop","immediate","_ref2","oldVal","getActivator","unbindActivatorProps","bindActivatorProps","arguments","length","_props","selector","nodeType","Node","ELEMENT_NODE","proxy","$el","parentNode","hasAttribute","querySelector"],"sources":["../../../src/components/VOverlay/useActivator.tsx"],"sourcesContent":["// Components\nimport { VMenuSymbol } from '@/components/VMenu/shared'\n\n// Composables\nimport { makeDelayProps, useDelay } from '@/composables/delay'\n\n// Utilities\nimport {\n computed,\n effectScope,\n inject,\n mergeProps,\n nextTick,\n onScopeDispose,\n ref,\n watch,\n watchEffect,\n} from 'vue'\nimport {\n bindProps,\n getCurrentInstance,\n IN_BROWSER,\n matchesSelector,\n propsFactory,\n templateRef,\n unbindProps,\n} from '@/util'\n\n// Types\nimport type {\n ComponentInternalInstance,\n ComponentPublicInstance,\n EffectScope,\n PropType,\n Ref,\n} from 'vue'\nimport type { DelayProps } from '@/composables/delay'\n\ninterface ActivatorProps extends DelayProps {\n target: 'parent' | 'cursor' | (string & {}) | Element | ComponentPublicInstance | [x: number, y: number] | undefined\n activator: 'parent' | (string & {}) | Element | ComponentPublicInstance | undefined\n activatorProps: Record<string, any>\n\n openOnClick: boolean | undefined\n openOnHover: boolean\n openOnFocus: boolean | undefined\n\n closeOnContentClick: boolean\n}\n\nexport const makeActivatorProps = propsFactory({\n target: [String, Object] as PropType<ActivatorProps['target']>,\n activator: [String, Object] as PropType<ActivatorProps['activator']>,\n activatorProps: {\n type: Object as PropType<ActivatorProps['activatorProps']>,\n default: () => ({}),\n },\n\n openOnClick: {\n type: Boolean,\n default: undefined,\n },\n openOnHover: Boolean,\n openOnFocus: {\n type: Boolean,\n default: undefined,\n },\n\n closeOnContentClick: Boolean,\n\n ...makeDelayProps(),\n}, 'VOverlay-activator')\n\nexport function useActivator (\n props: ActivatorProps,\n { isActive, isTop, contentEl }: {\n isActive: Ref<boolean>\n isTop: Ref<boolean>\n contentEl: Ref<HTMLElement | undefined>\n }\n) {\n const vm = getCurrentInstance('useActivator')\n const activatorEl = ref<HTMLElement>()\n\n let isHovered = false\n let isFocused = false\n let firstEnter = true\n\n const openOnFocus = computed(() => props.openOnFocus || (props.openOnFocus == null && props.openOnHover))\n const openOnClick = computed(() => props.openOnClick || (props.openOnClick == null && !props.openOnHover && !openOnFocus.value))\n\n const { runOpenDelay, runCloseDelay } = useDelay(props, value => {\n if (\n value === (\n (props.openOnHover && isHovered) ||\n (openOnFocus.value && isFocused)\n ) && !(props.openOnHover && isActive.value && !isTop.value)\n ) {\n if (isActive.value !== value) {\n firstEnter = true\n }\n isActive.value = value\n }\n })\n\n const cursorTarget = ref<[x: number, y: number]>()\n const availableEvents = {\n onClick: (e: MouseEvent) => {\n e.stopPropagation()\n activatorEl.value = (e.currentTarget || e.target) as HTMLElement\n if (!isActive.value) {\n cursorTarget.value = [e.clientX, e.clientY]\n }\n isActive.value = !isActive.value\n },\n onMouseenter: (e: MouseEvent) => {\n isHovered = true\n activatorEl.value = (e.currentTarget || e.target) as HTMLElement\n runOpenDelay()\n },\n onMouseleave: (e: MouseEvent) => {\n isHovered = false\n runCloseDelay()\n },\n onFocus: (e: FocusEvent) => {\n if (matchesSelector(e.target as HTMLElement, ':focus-visible') === false) return\n\n isFocused = true\n e.stopPropagation()\n activatorEl.value = (e.currentTarget || e.target) as HTMLElement\n\n runOpenDelay()\n },\n onBlur: (e: FocusEvent) => {\n isFocused = false\n e.stopPropagation()\n\n runCloseDelay()\n },\n }\n\n const activatorEvents = computed(() => {\n const events: Partial<typeof availableEvents> = {}\n\n if (openOnClick.value) {\n events.onClick = availableEvents.onClick\n }\n if (props.openOnHover) {\n events.onMouseenter = availableEvents.onMouseenter\n events.onMouseleave = availableEvents.onMouseleave\n }\n if (openOnFocus.value) {\n events.onFocus = availableEvents.onFocus\n events.onBlur = availableEvents.onBlur\n }\n\n return events\n })\n\n const contentEvents = computed(() => {\n const events: Record<string, EventListener> = {}\n\n if (props.openOnHover) {\n events.onMouseenter = () => {\n isHovered = true\n runOpenDelay()\n }\n events.onMouseleave = () => {\n isHovered = false\n runCloseDelay()\n }\n }\n\n if (openOnFocus.value) {\n events.onFocusin = () => {\n isFocused = true\n runOpenDelay()\n }\n events.onFocusout = () => {\n isFocused = false\n runCloseDelay()\n }\n }\n\n if (props.closeOnContentClick) {\n const menu = inject(VMenuSymbol, null)\n events.onClick = () => {\n isActive.value = false\n menu?.closeParents()\n }\n }\n\n return events\n })\n\n const scrimEvents = computed(() => {\n const events: Record<string, EventListener> = {}\n\n if (props.openOnHover) {\n events.onMouseenter = () => {\n if (firstEnter) {\n isHovered = true\n firstEnter = false\n runOpenDelay()\n }\n }\n events.onMouseleave = () => {\n isHovered = false\n runCloseDelay()\n }\n }\n\n return events\n })\n\n watch(isTop, val => {\n if (val && (\n (props.openOnHover && !isHovered && (!openOnFocus.value || !isFocused)) ||\n (openOnFocus.value && !isFocused && (!props.openOnHover || !isHovered))\n ) && !contentEl.value?.contains(document.activeElement)) {\n isActive.value = false\n }\n })\n\n watch(isActive, val => {\n if (!val) {\n setTimeout(() => {\n cursorTarget.value = undefined\n })\n }\n }, { flush: 'post' })\n\n const activatorRef = templateRef()\n watchEffect(() => {\n if (!activatorRef.value) return\n\n nextTick(() => {\n activatorEl.value = activatorRef.el\n })\n })\n\n const targetRef = templateRef()\n const target = computed(() => {\n if (props.target === 'cursor' && cursorTarget.value) return cursorTarget.value\n if (targetRef.value) return targetRef.el\n return getTarget(props.target, vm) || activatorEl.value\n })\n const targetEl = computed(() => {\n return Array.isArray(target.value)\n ? undefined\n : target.value\n })\n\n let scope: EffectScope\n watch(() => !!props.activator, val => {\n if (val && IN_BROWSER) {\n scope = effectScope()\n scope.run(() => {\n _useActivator(props, vm, { activatorEl, activatorEvents })\n })\n } else if (scope) {\n scope.stop()\n }\n }, { flush: 'post', immediate: true })\n\n onScopeDispose(() => {\n scope?.stop()\n })\n\n return { activatorEl, activatorRef, target, targetEl, targetRef, activatorEvents, contentEvents, scrimEvents }\n}\n\nfunction _useActivator (\n props: ActivatorProps,\n vm: ComponentInternalInstance,\n { activatorEl, activatorEvents }: Pick<ReturnType<typeof useActivator>, 'activatorEl' | 'activatorEvents'>\n) {\n watch(() => props.activator, (val, oldVal) => {\n if (oldVal && val !== oldVal) {\n const activator = getActivator(oldVal)\n activator && unbindActivatorProps(activator)\n }\n if (val) {\n nextTick(() => bindActivatorProps())\n }\n }, { immediate: true })\n\n watch(() => props.activatorProps, () => {\n bindActivatorProps()\n })\n\n onScopeDispose(() => {\n unbindActivatorProps()\n })\n\n function bindActivatorProps (el = getActivator(), _props = props.activatorProps) {\n if (!el) return\n\n bindProps(el, mergeProps(activatorEvents.value, _props))\n }\n\n function unbindActivatorProps (el = getActivator(), _props = props.activatorProps) {\n if (!el) return\n\n unbindProps(el, mergeProps(activatorEvents.value, _props))\n }\n\n function getActivator (selector = props.activator): HTMLElement | undefined {\n const activator = getTarget(selector, vm)\n\n // The activator should only be a valid element (Ignore comments and text nodes)\n activatorEl.value = activator?.nodeType === Node.ELEMENT_NODE ? activator : undefined\n\n return activatorEl.value\n }\n}\n\nfunction getTarget<T extends 'parent' | string | Element | ComponentPublicInstance | [x: number, y: number] | undefined> (\n selector: T,\n vm: ComponentInternalInstance\n): HTMLElement | undefined | (T extends any[] ? [x: number, y: number] : never) {\n if (!selector) return\n\n let target\n if (selector === 'parent') {\n let el = vm?.proxy?.$el?.parentNode\n while (el?.hasAttribute('data-no-activator')) {\n el = el.parentNode\n }\n target = el\n } else if (typeof selector === 'string') {\n // Selector\n target = document.querySelector(selector)\n } else if ('$el' in selector) {\n // Component (ref)\n target = selector.$el\n } else {\n // HTMLElement | Element | [x, y]\n target = selector\n }\n\n return target\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -4,7 +4,7 @@ import { computed, inject, nextTick, onBeforeMount, onBeforeUnmount, provide, re
|
|
|
4
4
|
import { independentActiveStrategy, independentSingleActiveStrategy, leafActiveStrategy, leafSingleActiveStrategy } from "./activeStrategies.js";
|
|
5
5
|
import { listOpenStrategy, multipleOpenStrategy, singleOpenStrategy } from "./openStrategies.js";
|
|
6
6
|
import { classicSelectStrategy, independentSelectStrategy, independentSingleSelectStrategy, leafSelectStrategy, leafSingleSelectStrategy, trunkSelectStrategy } from "./selectStrategies.js";
|
|
7
|
-
import { consoleError, getCurrentInstance, propsFactory } from "../../util/index.js"; // Types
|
|
7
|
+
import { consoleError, getCurrentInstance, propsFactory, throttle } from "../../util/index.js"; // Types
|
|
8
8
|
export const VNestedSymbol = Symbol.for('vuetify:nested');
|
|
9
9
|
export const emptyNested = {
|
|
10
10
|
id: shallowRef(),
|
|
@@ -106,6 +106,10 @@ export const useNested = props => {
|
|
|
106
106
|
}
|
|
107
107
|
const vm = getCurrentInstance('nested');
|
|
108
108
|
const nodeIds = new Set();
|
|
109
|
+
const itemsUpdatePropagation = throttle(() => {
|
|
110
|
+
children.value = new Map(children.value);
|
|
111
|
+
parents.value = new Map(parents.value);
|
|
112
|
+
}, 100);
|
|
109
113
|
const nested = {
|
|
110
114
|
id: shallowRef(),
|
|
111
115
|
root: {
|
|
@@ -136,6 +140,7 @@ export const useNested = props => {
|
|
|
136
140
|
if (parentId != null) {
|
|
137
141
|
children.value.set(parentId, [...(children.value.get(parentId) || []), id]);
|
|
138
142
|
}
|
|
143
|
+
itemsUpdatePropagation();
|
|
139
144
|
},
|
|
140
145
|
unregister: id => {
|
|
141
146
|
if (isUnmounted) return;
|
|
@@ -148,6 +153,7 @@ export const useNested = props => {
|
|
|
148
153
|
children.value.set(parent, list.filter(child => child !== id));
|
|
149
154
|
}
|
|
150
155
|
parents.value.delete(id);
|
|
156
|
+
itemsUpdatePropagation();
|
|
151
157
|
},
|
|
152
158
|
open: (id, value, event) => {
|
|
153
159
|
vm.emit('click:open', {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"nested.js","names":["useProxiedModel","computed","inject","nextTick","onBeforeMount","onBeforeUnmount","provide","ref","shallowRef","toRaw","toRef","toValue","watch","independentActiveStrategy","independentSingleActiveStrategy","leafActiveStrategy","leafSingleActiveStrategy","listOpenStrategy","multipleOpenStrategy","singleOpenStrategy","classicSelectStrategy","independentSelectStrategy","independentSingleSelectStrategy","leafSelectStrategy","leafSingleSelectStrategy","trunkSelectStrategy","consoleError","getCurrentInstance","propsFactory","VNestedSymbol","Symbol","for","emptyNested","id","root","register","unregister","children","Map","parents","disabled","Set","open","openOnSelect","activate","select","activatable","selectable","opened","activated","selected","selectedValues","getPath","makeNestedProps","Boolean","activeStrategy","String","Function","Object","selectStrategy","openStrategy","mandatory","useNested","props","isUnmounted","v","Array","isArray","map","i","values","value","in","out","path","parent","undefined","unshift","get","vm","nodeIds","nested","arr","key","entries","push","parentId","isDisabled","isGroup","has","join","newPath","concat","add","set","delete","list","filter","child","event","emit","newOpened","newSelected","newActivated","size","useNestedItem","uidSymbol","computedId","idValue","item","e","isOpen","isActivated","isSelected","isIndeterminate","isLeaf","isGroupActivator","val","oldVal","useNestedGroupActivator"],"sources":["../../../src/composables/nested/nested.ts"],"sourcesContent":["// Composables\nimport { useProxiedModel } from '@/composables/proxiedModel'\n\n// Utilities\nimport {\n computed,\n inject,\n nextTick,\n onBeforeMount,\n onBeforeUnmount,\n provide,\n ref,\n shallowRef,\n toRaw,\n toRef,\n toValue,\n watch,\n} from 'vue'\nimport {\n independentActiveStrategy,\n independentSingleActiveStrategy,\n leafActiveStrategy,\n leafSingleActiveStrategy,\n} from './activeStrategies'\nimport { listOpenStrategy, multipleOpenStrategy, singleOpenStrategy } from './openStrategies'\nimport {\n classicSelectStrategy,\n independentSelectStrategy,\n independentSingleSelectStrategy,\n leafSelectStrategy,\n leafSingleSelectStrategy,\n trunkSelectStrategy,\n} from './selectStrategies'\nimport { consoleError, getCurrentInstance, propsFactory } from '@/util'\n\n// Types\nimport type { InjectionKey, MaybeRefOrGetter, PropType, Ref } from 'vue'\nimport type { ActiveStrategy } from './activeStrategies'\nimport type { OpenStrategy } from './openStrategies'\nimport type { SelectStrategy } from './selectStrategies'\nimport type { EventProp } from '@/util'\n\nexport type ActiveStrategyProp =\n | 'single-leaf'\n | 'leaf'\n | 'independent'\n | 'single-independent'\n | ActiveStrategy\n | ((mandatory: boolean) => ActiveStrategy)\nexport type SelectStrategyProp =\n | 'single-leaf'\n | 'leaf'\n | 'independent'\n | 'single-independent'\n | 'classic'\n | 'trunk'\n | SelectStrategy\n | ((mandatory: boolean) => SelectStrategy)\nexport type OpenStrategyProp = 'single' | 'multiple' | 'list' | OpenStrategy\n\nexport interface NestedProps {\n activatable: boolean\n selectable: boolean\n activeStrategy: ActiveStrategyProp | undefined\n selectStrategy: SelectStrategyProp | undefined\n openStrategy: OpenStrategyProp | undefined\n activated: any\n selected: any\n opened: any\n mandatory: boolean\n 'onUpdate:activated': EventProp<[any]> | undefined\n 'onUpdate:selected': EventProp<[any]> | undefined\n 'onUpdate:opened': EventProp<[any]> | undefined\n}\n\ntype NestedProvide = {\n id: Ref<unknown>\n isGroupActivator?: boolean\n root: {\n children: Ref<Map<unknown, unknown[]>>\n parents: Ref<Map<unknown, unknown>>\n disabled: Ref<Set<unknown>>\n activatable: Ref<boolean>\n selectable: Ref<boolean>\n opened: Ref<Set<unknown>>\n activated: Ref<Set<unknown>>\n selected: Ref<Map<unknown, 'on' | 'off' | 'indeterminate'>>\n selectedValues: Ref<unknown[]>\n register: (id: unknown, parentId: unknown, isDisabled: boolean, isGroup?: boolean) => void\n unregister: (id: unknown) => void\n open: (id: unknown, value: boolean, event?: Event) => void\n activate: (id: unknown, value: boolean, event?: Event) => void\n select: (id: unknown, value: boolean, event?: Event) => void\n openOnSelect: (id: unknown, value: boolean, event?: Event) => void\n getPath: (id: unknown) => unknown[]\n }\n}\n\nexport const VNestedSymbol: InjectionKey<NestedProvide> = Symbol.for('vuetify:nested')\n\nexport const emptyNested: NestedProvide = {\n id: shallowRef(),\n root: {\n register: () => null,\n unregister: () => null,\n children: ref(new Map()),\n parents: ref(new Map()),\n disabled: ref(new Set()),\n open: () => null,\n openOnSelect: () => null,\n activate: () => null,\n select: () => null,\n activatable: ref(false),\n selectable: ref(false),\n opened: ref(new Set()),\n activated: ref(new Set()),\n selected: ref(new Map()),\n selectedValues: ref([]),\n getPath: () => [],\n },\n}\n\nexport const makeNestedProps = propsFactory({\n activatable: Boolean,\n selectable: Boolean,\n activeStrategy: [String, Function, Object] as PropType<ActiveStrategyProp>,\n selectStrategy: [String, Function, Object] as PropType<SelectStrategyProp>,\n openStrategy: [String, Object] as PropType<OpenStrategyProp>,\n opened: null,\n activated: null,\n selected: null,\n mandatory: Boolean,\n}, 'nested')\n\nexport const useNested = (props: NestedProps) => {\n let isUnmounted = false\n const children = shallowRef(new Map<unknown, unknown[]>())\n const parents = shallowRef(new Map<unknown, unknown>())\n const disabled = shallowRef(new Set<unknown>())\n\n const opened = useProxiedModel(\n props,\n 'opened',\n props.opened,\n v => new Set(Array.isArray(v) ? v.map(i => toRaw(i)) : v),\n v => [...v.values()],\n )\n\n const activeStrategy = computed(() => {\n if (typeof props.activeStrategy === 'object') return props.activeStrategy\n if (typeof props.activeStrategy === 'function') return props.activeStrategy(props.mandatory)\n\n switch (props.activeStrategy) {\n case 'leaf': return leafActiveStrategy(props.mandatory)\n case 'single-leaf': return leafSingleActiveStrategy(props.mandatory)\n case 'independent': return independentActiveStrategy(props.mandatory)\n case 'single-independent':\n default: return independentSingleActiveStrategy(props.mandatory)\n }\n })\n\n const selectStrategy = computed(() => {\n if (typeof props.selectStrategy === 'object') return props.selectStrategy\n if (typeof props.selectStrategy === 'function') return props.selectStrategy(props.mandatory)\n\n switch (props.selectStrategy) {\n case 'single-leaf': return leafSingleSelectStrategy(props.mandatory)\n case 'leaf': return leafSelectStrategy(props.mandatory)\n case 'independent': return independentSelectStrategy(props.mandatory)\n case 'single-independent': return independentSingleSelectStrategy(props.mandatory)\n case 'trunk': return trunkSelectStrategy(props.mandatory)\n case 'classic':\n default: return classicSelectStrategy(props.mandatory)\n }\n })\n\n const openStrategy = computed(() => {\n if (typeof props.openStrategy === 'object') return props.openStrategy\n\n switch (props.openStrategy) {\n case 'list': return listOpenStrategy\n case 'single': return singleOpenStrategy\n case 'multiple':\n default: return multipleOpenStrategy\n }\n })\n\n const activated = useProxiedModel(\n props,\n 'activated',\n props.activated,\n v => activeStrategy.value.in(v, children.value, parents.value),\n v => activeStrategy.value.out(v, children.value, parents.value),\n )\n const selected = useProxiedModel(\n props,\n 'selected',\n props.selected,\n v => selectStrategy.value.in(v, children.value, parents.value, disabled.value),\n v => selectStrategy.value.out(v, children.value, parents.value),\n )\n\n onBeforeUnmount(() => {\n isUnmounted = true\n })\n\n function getPath (id: unknown) {\n const path: unknown[] = []\n let parent: unknown = toRaw(id)\n\n while (parent !== undefined) {\n path.unshift(parent)\n parent = parents.value.get(parent)\n }\n\n return path\n }\n\n const vm = getCurrentInstance('nested')\n\n const nodeIds = new Set<unknown>()\n\n const nested: NestedProvide = {\n id: shallowRef(),\n root: {\n opened,\n activatable: toRef(() => props.activatable),\n selectable: toRef(() => props.selectable),\n activated,\n selected,\n selectedValues: computed(() => {\n const arr = []\n\n for (const [key, value] of selected.value.entries()) {\n if (value === 'on') arr.push(key)\n }\n\n return arr\n }),\n register: (id, parentId, isDisabled, isGroup) => {\n if (nodeIds.has(id)) {\n const path = getPath(id).map(String).join(' -> ')\n const newPath = getPath(parentId).concat(id).map(String).join(' -> ')\n consoleError(`Multiple nodes with the same ID\\n\\t${path}\\n\\t${newPath}`)\n return\n } else {\n nodeIds.add(id)\n }\n\n parentId && id !== parentId && parents.value.set(id, parentId)\n\n isDisabled && disabled.value.add(id)\n isGroup && children.value.set(id, [])\n\n if (parentId != null) {\n children.value.set(parentId, [...children.value.get(parentId) || [], id])\n }\n },\n unregister: id => {\n if (isUnmounted) return\n\n nodeIds.delete(id)\n children.value.delete(id)\n disabled.value.delete(id)\n const parent = parents.value.get(id)\n if (parent) {\n const list = children.value.get(parent) ?? []\n children.value.set(parent, list.filter(child => child !== id))\n }\n parents.value.delete(id)\n },\n open: (id, value, event) => {\n vm.emit('click:open', { id, value, path: getPath(id), event })\n\n const newOpened = openStrategy.value.open({\n id,\n value,\n opened: new Set(opened.value),\n children: children.value,\n parents: parents.value,\n event,\n })\n\n newOpened && (opened.value = newOpened)\n },\n openOnSelect: (id, value, event) => {\n const newOpened = openStrategy.value.select({\n id,\n value,\n selected: new Map(selected.value),\n opened: new Set(opened.value),\n children: children.value,\n parents: parents.value,\n event,\n })\n newOpened && (opened.value = newOpened)\n },\n select: (id, value, event) => {\n vm.emit('click:select', { id, value, path: getPath(id), event })\n\n const newSelected = selectStrategy.value.select({\n id,\n value,\n selected: new Map(selected.value),\n children: children.value,\n parents: parents.value,\n disabled: disabled.value,\n event,\n })\n newSelected && (selected.value = newSelected)\n\n nested.root.openOnSelect(id, value, event)\n },\n activate: (id, value, event) => {\n if (!props.activatable) {\n return nested.root.select(id, true, event)\n }\n\n vm.emit('click:activate', { id, value, path: getPath(id), event })\n\n const newActivated = activeStrategy.value.activate({\n id,\n value,\n activated: new Set(activated.value),\n children: children.value,\n parents: parents.value,\n event,\n })\n\n if (newActivated.size !== activated.value.size) {\n activated.value = newActivated\n } else {\n for (const value of newActivated) {\n if (!activated.value.has(value)) {\n activated.value = newActivated\n return\n }\n }\n for (const value of activated.value) {\n if (!newActivated.has(value)) {\n activated.value = newActivated\n return\n }\n }\n }\n },\n children,\n parents,\n disabled,\n getPath,\n },\n }\n\n provide(VNestedSymbol, nested)\n\n return nested.root\n}\n\nexport const useNestedItem = (id: MaybeRefOrGetter<unknown>, isDisabled: MaybeRefOrGetter<boolean>, isGroup: boolean) => {\n const parent = inject(VNestedSymbol, emptyNested)\n\n const uidSymbol = Symbol('nested item')\n const computedId = computed(() => {\n const idValue = toRaw(toValue(id))\n return idValue !== undefined ? idValue : uidSymbol\n })\n\n const item = {\n ...parent,\n id: computedId,\n open: (open: boolean, e: Event) => parent.root.open(computedId.value, open, e),\n openOnSelect: (open: boolean, e?: Event) => parent.root.openOnSelect(computedId.value, open, e),\n isOpen: computed(() => parent.root.opened.value.has(computedId.value)),\n parent: computed(() => parent.root.parents.value.get(computedId.value)),\n activate: (activated: boolean, e?: Event) => parent.root.activate(computedId.value, activated, e),\n isActivated: computed(() => parent.root.activated.value.has(computedId.value)),\n select: (selected: boolean, e?: Event) => parent.root.select(computedId.value, selected, e),\n isSelected: computed(() => parent.root.selected.value.get(computedId.value) === 'on'),\n isIndeterminate: computed(() => parent.root.selected.value.get(computedId.value) === 'indeterminate'),\n isLeaf: computed(() => !parent.root.children.value.get(computedId.value)),\n isGroupActivator: parent.isGroupActivator,\n }\n\n onBeforeMount(() => {\n if (!parent.isGroupActivator) {\n nextTick(() => {\n parent.root.register(computedId.value, parent.id.value, toValue(isDisabled), isGroup)\n })\n }\n })\n\n onBeforeUnmount(() => {\n if (!parent.isGroupActivator) {\n parent.root.unregister(computedId.value)\n }\n })\n\n watch(computedId, (val, oldVal) => {\n if (!parent.isGroupActivator) {\n parent.root.unregister(oldVal)\n nextTick(() => {\n parent.root.register(val, parent.id.value, toValue(isDisabled), isGroup)\n })\n }\n })\n\n isGroup && provide(VNestedSymbol, item)\n\n return item\n}\n\nexport const useNestedGroupActivator = () => {\n const parent = inject(VNestedSymbol, emptyNested)\n\n provide(VNestedSymbol, { ...parent, isGroupActivator: true })\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"nested.js","names":["useProxiedModel","computed","inject","nextTick","onBeforeMount","onBeforeUnmount","provide","ref","shallowRef","toRaw","toRef","toValue","watch","independentActiveStrategy","independentSingleActiveStrategy","leafActiveStrategy","leafSingleActiveStrategy","listOpenStrategy","multipleOpenStrategy","singleOpenStrategy","classicSelectStrategy","independentSelectStrategy","independentSingleSelectStrategy","leafSelectStrategy","leafSingleSelectStrategy","trunkSelectStrategy","consoleError","getCurrentInstance","propsFactory","throttle","VNestedSymbol","Symbol","for","emptyNested","id","root","register","unregister","children","Map","parents","disabled","Set","open","openOnSelect","activate","select","activatable","selectable","opened","activated","selected","selectedValues","getPath","makeNestedProps","Boolean","activeStrategy","String","Function","Object","selectStrategy","openStrategy","mandatory","useNested","props","isUnmounted","v","Array","isArray","map","i","values","value","in","out","path","parent","undefined","unshift","get","vm","nodeIds","itemsUpdatePropagation","nested","arr","key","entries","push","parentId","isDisabled","isGroup","has","join","newPath","concat","add","set","delete","list","filter","child","event","emit","newOpened","newSelected","newActivated","size","useNestedItem","uidSymbol","computedId","idValue","item","e","isOpen","isActivated","isSelected","isIndeterminate","isLeaf","isGroupActivator","val","oldVal","useNestedGroupActivator"],"sources":["../../../src/composables/nested/nested.ts"],"sourcesContent":["// Composables\nimport { useProxiedModel } from '@/composables/proxiedModel'\n\n// Utilities\nimport {\n computed,\n inject,\n nextTick,\n onBeforeMount,\n onBeforeUnmount,\n provide,\n ref,\n shallowRef,\n toRaw,\n toRef,\n toValue,\n watch,\n} from 'vue'\nimport {\n independentActiveStrategy,\n independentSingleActiveStrategy,\n leafActiveStrategy,\n leafSingleActiveStrategy,\n} from './activeStrategies'\nimport { listOpenStrategy, multipleOpenStrategy, singleOpenStrategy } from './openStrategies'\nimport {\n classicSelectStrategy,\n independentSelectStrategy,\n independentSingleSelectStrategy,\n leafSelectStrategy,\n leafSingleSelectStrategy,\n trunkSelectStrategy,\n} from './selectStrategies'\nimport { consoleError, getCurrentInstance, propsFactory, throttle } from '@/util'\n\n// Types\nimport type { InjectionKey, MaybeRefOrGetter, PropType, Ref } from 'vue'\nimport type { ActiveStrategy } from './activeStrategies'\nimport type { OpenStrategy } from './openStrategies'\nimport type { SelectStrategy } from './selectStrategies'\nimport type { EventProp } from '@/util'\n\nexport type ActiveStrategyProp =\n | 'single-leaf'\n | 'leaf'\n | 'independent'\n | 'single-independent'\n | ActiveStrategy\n | ((mandatory: boolean) => ActiveStrategy)\nexport type SelectStrategyProp =\n | 'single-leaf'\n | 'leaf'\n | 'independent'\n | 'single-independent'\n | 'classic'\n | 'trunk'\n | SelectStrategy\n | ((mandatory: boolean) => SelectStrategy)\nexport type OpenStrategyProp = 'single' | 'multiple' | 'list' | OpenStrategy\n\nexport interface NestedProps {\n activatable: boolean\n selectable: boolean\n activeStrategy: ActiveStrategyProp | undefined\n selectStrategy: SelectStrategyProp | undefined\n openStrategy: OpenStrategyProp | undefined\n activated: any\n selected: any\n opened: any\n mandatory: boolean\n 'onUpdate:activated': EventProp<[any]> | undefined\n 'onUpdate:selected': EventProp<[any]> | undefined\n 'onUpdate:opened': EventProp<[any]> | undefined\n}\n\ntype NestedProvide = {\n id: Ref<unknown>\n isGroupActivator?: boolean\n root: {\n children: Ref<Map<unknown, unknown[]>>\n parents: Ref<Map<unknown, unknown>>\n disabled: Ref<Set<unknown>>\n activatable: Ref<boolean>\n selectable: Ref<boolean>\n opened: Ref<Set<unknown>>\n activated: Ref<Set<unknown>>\n selected: Ref<Map<unknown, 'on' | 'off' | 'indeterminate'>>\n selectedValues: Ref<unknown[]>\n register: (id: unknown, parentId: unknown, isDisabled: boolean, isGroup?: boolean) => void\n unregister: (id: unknown) => void\n open: (id: unknown, value: boolean, event?: Event) => void\n activate: (id: unknown, value: boolean, event?: Event) => void\n select: (id: unknown, value: boolean, event?: Event) => void\n openOnSelect: (id: unknown, value: boolean, event?: Event) => void\n getPath: (id: unknown) => unknown[]\n }\n}\n\nexport const VNestedSymbol: InjectionKey<NestedProvide> = Symbol.for('vuetify:nested')\n\nexport const emptyNested: NestedProvide = {\n id: shallowRef(),\n root: {\n register: () => null,\n unregister: () => null,\n children: ref(new Map()),\n parents: ref(new Map()),\n disabled: ref(new Set()),\n open: () => null,\n openOnSelect: () => null,\n activate: () => null,\n select: () => null,\n activatable: ref(false),\n selectable: ref(false),\n opened: ref(new Set()),\n activated: ref(new Set()),\n selected: ref(new Map()),\n selectedValues: ref([]),\n getPath: () => [],\n },\n}\n\nexport const makeNestedProps = propsFactory({\n activatable: Boolean,\n selectable: Boolean,\n activeStrategy: [String, Function, Object] as PropType<ActiveStrategyProp>,\n selectStrategy: [String, Function, Object] as PropType<SelectStrategyProp>,\n openStrategy: [String, Object] as PropType<OpenStrategyProp>,\n opened: null,\n activated: null,\n selected: null,\n mandatory: Boolean,\n}, 'nested')\n\nexport const useNested = (props: NestedProps) => {\n let isUnmounted = false\n const children = shallowRef(new Map<unknown, unknown[]>())\n const parents = shallowRef(new Map<unknown, unknown>())\n const disabled = shallowRef(new Set<unknown>())\n\n const opened = useProxiedModel(\n props,\n 'opened',\n props.opened,\n v => new Set(Array.isArray(v) ? v.map(i => toRaw(i)) : v),\n v => [...v.values()],\n )\n\n const activeStrategy = computed(() => {\n if (typeof props.activeStrategy === 'object') return props.activeStrategy\n if (typeof props.activeStrategy === 'function') return props.activeStrategy(props.mandatory)\n\n switch (props.activeStrategy) {\n case 'leaf': return leafActiveStrategy(props.mandatory)\n case 'single-leaf': return leafSingleActiveStrategy(props.mandatory)\n case 'independent': return independentActiveStrategy(props.mandatory)\n case 'single-independent':\n default: return independentSingleActiveStrategy(props.mandatory)\n }\n })\n\n const selectStrategy = computed(() => {\n if (typeof props.selectStrategy === 'object') return props.selectStrategy\n if (typeof props.selectStrategy === 'function') return props.selectStrategy(props.mandatory)\n\n switch (props.selectStrategy) {\n case 'single-leaf': return leafSingleSelectStrategy(props.mandatory)\n case 'leaf': return leafSelectStrategy(props.mandatory)\n case 'independent': return independentSelectStrategy(props.mandatory)\n case 'single-independent': return independentSingleSelectStrategy(props.mandatory)\n case 'trunk': return trunkSelectStrategy(props.mandatory)\n case 'classic':\n default: return classicSelectStrategy(props.mandatory)\n }\n })\n\n const openStrategy = computed(() => {\n if (typeof props.openStrategy === 'object') return props.openStrategy\n\n switch (props.openStrategy) {\n case 'list': return listOpenStrategy\n case 'single': return singleOpenStrategy\n case 'multiple':\n default: return multipleOpenStrategy\n }\n })\n\n const activated = useProxiedModel(\n props,\n 'activated',\n props.activated,\n v => activeStrategy.value.in(v, children.value, parents.value),\n v => activeStrategy.value.out(v, children.value, parents.value),\n )\n const selected = useProxiedModel(\n props,\n 'selected',\n props.selected,\n v => selectStrategy.value.in(v, children.value, parents.value, disabled.value),\n v => selectStrategy.value.out(v, children.value, parents.value),\n )\n\n onBeforeUnmount(() => {\n isUnmounted = true\n })\n\n function getPath (id: unknown) {\n const path: unknown[] = []\n let parent: unknown = toRaw(id)\n\n while (parent !== undefined) {\n path.unshift(parent)\n parent = parents.value.get(parent)\n }\n\n return path\n }\n\n const vm = getCurrentInstance('nested')\n\n const nodeIds = new Set<unknown>()\n\n const itemsUpdatePropagation = throttle(() => {\n children.value = new Map(children.value)\n parents.value = new Map(parents.value)\n }, 100)\n\n const nested: NestedProvide = {\n id: shallowRef(),\n root: {\n opened,\n activatable: toRef(() => props.activatable),\n selectable: toRef(() => props.selectable),\n activated,\n selected,\n selectedValues: computed(() => {\n const arr = []\n\n for (const [key, value] of selected.value.entries()) {\n if (value === 'on') arr.push(key)\n }\n\n return arr\n }),\n register: (id, parentId, isDisabled, isGroup) => {\n if (nodeIds.has(id)) {\n const path = getPath(id).map(String).join(' -> ')\n const newPath = getPath(parentId).concat(id).map(String).join(' -> ')\n consoleError(`Multiple nodes with the same ID\\n\\t${path}\\n\\t${newPath}`)\n return\n } else {\n nodeIds.add(id)\n }\n\n parentId && id !== parentId && parents.value.set(id, parentId)\n\n isDisabled && disabled.value.add(id)\n isGroup && children.value.set(id, [])\n\n if (parentId != null) {\n children.value.set(parentId, [...children.value.get(parentId) || [], id])\n }\n itemsUpdatePropagation()\n },\n unregister: id => {\n if (isUnmounted) return\n\n nodeIds.delete(id)\n children.value.delete(id)\n disabled.value.delete(id)\n const parent = parents.value.get(id)\n if (parent) {\n const list = children.value.get(parent) ?? []\n children.value.set(parent, list.filter(child => child !== id))\n }\n parents.value.delete(id)\n itemsUpdatePropagation()\n },\n open: (id, value, event) => {\n vm.emit('click:open', { id, value, path: getPath(id), event })\n\n const newOpened = openStrategy.value.open({\n id,\n value,\n opened: new Set(opened.value),\n children: children.value,\n parents: parents.value,\n event,\n })\n\n newOpened && (opened.value = newOpened)\n },\n openOnSelect: (id, value, event) => {\n const newOpened = openStrategy.value.select({\n id,\n value,\n selected: new Map(selected.value),\n opened: new Set(opened.value),\n children: children.value,\n parents: parents.value,\n event,\n })\n newOpened && (opened.value = newOpened)\n },\n select: (id, value, event) => {\n vm.emit('click:select', { id, value, path: getPath(id), event })\n\n const newSelected = selectStrategy.value.select({\n id,\n value,\n selected: new Map(selected.value),\n children: children.value,\n parents: parents.value,\n disabled: disabled.value,\n event,\n })\n newSelected && (selected.value = newSelected)\n\n nested.root.openOnSelect(id, value, event)\n },\n activate: (id, value, event) => {\n if (!props.activatable) {\n return nested.root.select(id, true, event)\n }\n\n vm.emit('click:activate', { id, value, path: getPath(id), event })\n\n const newActivated = activeStrategy.value.activate({\n id,\n value,\n activated: new Set(activated.value),\n children: children.value,\n parents: parents.value,\n event,\n })\n\n if (newActivated.size !== activated.value.size) {\n activated.value = newActivated\n } else {\n for (const value of newActivated) {\n if (!activated.value.has(value)) {\n activated.value = newActivated\n return\n }\n }\n for (const value of activated.value) {\n if (!newActivated.has(value)) {\n activated.value = newActivated\n return\n }\n }\n }\n },\n children,\n parents,\n disabled,\n getPath,\n },\n }\n\n provide(VNestedSymbol, nested)\n\n return nested.root\n}\n\nexport const useNestedItem = (id: MaybeRefOrGetter<unknown>, isDisabled: MaybeRefOrGetter<boolean>, isGroup: boolean) => {\n const parent = inject(VNestedSymbol, emptyNested)\n\n const uidSymbol = Symbol('nested item')\n const computedId = computed(() => {\n const idValue = toRaw(toValue(id))\n return idValue !== undefined ? idValue : uidSymbol\n })\n\n const item = {\n ...parent,\n id: computedId,\n open: (open: boolean, e: Event) => parent.root.open(computedId.value, open, e),\n openOnSelect: (open: boolean, e?: Event) => parent.root.openOnSelect(computedId.value, open, e),\n isOpen: computed(() => parent.root.opened.value.has(computedId.value)),\n parent: computed(() => parent.root.parents.value.get(computedId.value)),\n activate: (activated: boolean, e?: Event) => parent.root.activate(computedId.value, activated, e),\n isActivated: computed(() => parent.root.activated.value.has(computedId.value)),\n select: (selected: boolean, e?: Event) => parent.root.select(computedId.value, selected, e),\n isSelected: computed(() => parent.root.selected.value.get(computedId.value) === 'on'),\n isIndeterminate: computed(() => parent.root.selected.value.get(computedId.value) === 'indeterminate'),\n isLeaf: computed(() => !parent.root.children.value.get(computedId.value)),\n isGroupActivator: parent.isGroupActivator,\n }\n\n onBeforeMount(() => {\n if (!parent.isGroupActivator) {\n nextTick(() => {\n parent.root.register(computedId.value, parent.id.value, toValue(isDisabled), isGroup)\n })\n }\n })\n\n onBeforeUnmount(() => {\n if (!parent.isGroupActivator) {\n parent.root.unregister(computedId.value)\n }\n })\n\n watch(computedId, (val, oldVal) => {\n if (!parent.isGroupActivator) {\n parent.root.unregister(oldVal)\n nextTick(() => {\n parent.root.register(val, parent.id.value, toValue(isDisabled), isGroup)\n })\n }\n })\n\n isGroup && provide(VNestedSymbol, item)\n\n return item\n}\n\nexport const useNestedGroupActivator = () => {\n const parent = inject(VNestedSymbol, emptyNested)\n\n provide(VNestedSymbol, { ...parent, isGroupActivator: true })\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.10.7-dev.2025-10-
|
|
19
|
+
export const version = "3.10.7-dev.2025-10-24";
|
|
20
20
|
createVuetify.version = version;
|
|
21
21
|
export { blueprints, components, directives };
|
|
22
22
|
export * from "./composables/index.js";
|