@vuetify/nightly 3.9.2-master.2025-07-23 → 3.9.2-master.2025-07-25
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 +15 -3
- package/dist/_component-variables-labs.sass +3 -1
- package/dist/json/attributes.json +4029 -3617
- package/dist/json/importMap-labs.json +38 -14
- package/dist/json/importMap.json +148 -148
- package/dist/json/tags.json +133 -0
- package/dist/json/web-types.json +13484 -11867
- package/dist/vuetify-labs.cjs +1525 -126
- package/dist/vuetify-labs.css +5448 -5007
- package/dist/vuetify-labs.d.ts +7670 -974
- package/dist/vuetify-labs.esm.js +1526 -127
- package/dist/vuetify-labs.esm.js.map +1 -1
- package/dist/vuetify-labs.js +1525 -126
- package/dist/vuetify-labs.min.css +2 -2
- package/dist/vuetify.cjs +74 -34
- package/dist/vuetify.cjs.map +1 -1
- package/dist/vuetify.css +3415 -3415
- package/dist/vuetify.d.ts +86 -61
- package/dist/vuetify.esm.js +74 -34
- package/dist/vuetify.esm.js.map +1 -1
- package/dist/vuetify.js +74 -34
- package/dist/vuetify.js.map +1 -1
- package/dist/vuetify.min.css +2 -2
- package/dist/vuetify.min.js +976 -977
- package/dist/vuetify.min.js.map +1 -1
- package/lib/components/VBottomSheet/VBottomSheet.d.ts +6 -6
- package/lib/components/VDialog/VDialog.d.ts +6 -6
- package/lib/components/VOverlay/VOverlay.js +1 -0
- package/lib/components/VOverlay/VOverlay.js.map +1 -1
- package/lib/components/VOverlay/locationStrategies.js +16 -10
- package/lib/components/VOverlay/locationStrategies.js.map +1 -1
- package/lib/components/VOverlay/scrollStrategies.d.ts +1 -0
- package/lib/components/VOverlay/scrollStrategies.js +6 -4
- package/lib/components/VOverlay/scrollStrategies.js.map +1 -1
- package/lib/components/VRangeSlider/VRangeSlider.d.ts +13 -0
- package/lib/components/VSlider/VSlider.d.ts +13 -0
- package/lib/components/VSlider/VSlider.js +3 -1
- package/lib/components/VSlider/VSlider.js.map +1 -1
- package/lib/components/VSlider/VSliderThumb.d.ts +13 -0
- package/lib/components/VSlider/VSliderThumb.js +2 -0
- package/lib/components/VSlider/VSliderThumb.js.map +1 -1
- package/lib/components/VSlider/slider.d.ts +6 -0
- package/lib/components/VSlider/slider.js +2 -0
- package/lib/components/VSlider/slider.js.map +1 -1
- package/lib/components/index.js +2 -2
- package/lib/components/index.js.map +1 -1
- package/lib/composables/goto.d.ts +3 -2
- package/lib/composables/goto.js +2 -16
- package/lib/composables/goto.js.map +1 -1
- package/lib/composables/reveal.d.ts +36 -0
- package/lib/composables/reveal.js +30 -0
- package/lib/composables/reveal.js.map +1 -0
- package/lib/entry-bundler.js +1 -1
- package/lib/framework.d.ts +142 -133
- package/lib/framework.js +1 -1
- package/lib/iconsets/fa.js +9 -1
- package/lib/iconsets/fa.js.map +1 -1
- package/lib/iconsets/fa4.js +9 -1
- package/lib/iconsets/fa4.js.map +1 -1
- package/lib/iconsets/md.js +9 -1
- package/lib/iconsets/md.js.map +1 -1
- package/lib/iconsets/mdi-svg.js +9 -1
- package/lib/iconsets/mdi-svg.js.map +1 -1
- package/lib/iconsets/mdi.js +9 -1
- package/lib/iconsets/mdi.js.map +1 -1
- package/lib/labs/VPie/VPie.css +105 -0
- package/lib/labs/VPie/VPie.d.ts +891 -0
- package/lib/labs/VPie/VPie.js +291 -0
- package/lib/labs/VPie/VPie.js.map +1 -0
- package/lib/labs/VPie/VPie.sass +109 -0
- package/lib/labs/VPie/VPieSegment.d.ts +310 -0
- package/lib/labs/VPie/VPieSegment.js +103 -0
- package/lib/labs/VPie/VPieSegment.js.map +1 -0
- package/lib/labs/VPie/VPieTooltip.d.ts +279 -0
- package/lib/labs/VPie/VPieTooltip.js +84 -0
- package/lib/labs/VPie/VPieTooltip.js.map +1 -0
- package/lib/labs/VPie/_variables.scss +11 -0
- package/lib/labs/VPie/index.d.ts +3 -0
- package/lib/labs/VPie/index.js +4 -0
- package/lib/labs/VPie/index.js.map +1 -0
- package/lib/labs/VPie/types.d.ts +16 -0
- package/lib/labs/VPie/types.js +2 -0
- package/lib/labs/VPie/types.js.map +1 -0
- package/lib/labs/VPie/utils.d.ts +23 -0
- package/lib/labs/VPie/utils.js +49 -0
- package/lib/labs/VPie/utils.js.map +1 -0
- package/lib/labs/VVideo/VVideo.css +322 -0
- package/lib/labs/VVideo/VVideo.d.ts +6932 -0
- package/lib/labs/VVideo/VVideo.js +424 -0
- package/lib/labs/VVideo/VVideo.js.map +1 -0
- package/lib/labs/VVideo/VVideo.sass +304 -0
- package/lib/labs/VVideo/VVideoControls.d.ts +3524 -0
- package/lib/labs/VVideo/VVideoControls.js +236 -0
- package/lib/labs/VVideo/VVideoControls.js.map +1 -0
- package/lib/labs/VVideo/VVideoVolume.d.ts +3088 -0
- package/lib/labs/VVideo/VVideoVolume.js +94 -0
- package/lib/labs/VVideo/VVideoVolume.js.map +1 -0
- package/lib/labs/VVideo/_variables.scss +58 -0
- package/lib/labs/VVideo/index.d.ts +3 -0
- package/lib/labs/VVideo/index.js +4 -0
- package/lib/labs/VVideo/index.js.map +1 -0
- package/lib/labs/components.d.ts +2 -0
- package/lib/labs/components.js +2 -0
- package/lib/labs/components.js.map +1 -1
- package/lib/locale/af.d.ts +11 -0
- package/lib/locale/af.js +11 -0
- package/lib/locale/af.js.map +1 -1
- package/lib/locale/ar.d.ts +11 -0
- package/lib/locale/ar.js +11 -0
- package/lib/locale/ar.js.map +1 -1
- package/lib/locale/az.d.ts +11 -0
- package/lib/locale/az.js +11 -0
- package/lib/locale/az.js.map +1 -1
- package/lib/locale/bg.d.ts +11 -0
- package/lib/locale/bg.js +11 -0
- package/lib/locale/bg.js.map +1 -1
- package/lib/locale/ca.d.ts +11 -0
- package/lib/locale/ca.js +11 -0
- package/lib/locale/ca.js.map +1 -1
- package/lib/locale/ckb.d.ts +11 -0
- package/lib/locale/ckb.js +11 -0
- package/lib/locale/ckb.js.map +1 -1
- package/lib/locale/cs.d.ts +11 -0
- package/lib/locale/cs.js +11 -0
- package/lib/locale/cs.js.map +1 -1
- package/lib/locale/da.d.ts +11 -0
- package/lib/locale/da.js +11 -0
- package/lib/locale/da.js.map +1 -1
- package/lib/locale/de.d.ts +11 -0
- package/lib/locale/de.js +11 -0
- package/lib/locale/de.js.map +1 -1
- package/lib/locale/el.d.ts +11 -0
- package/lib/locale/el.js +11 -0
- package/lib/locale/el.js.map +1 -1
- package/lib/locale/en.d.ts +11 -0
- package/lib/locale/en.js +11 -0
- package/lib/locale/en.js.map +1 -1
- package/lib/locale/es.d.ts +11 -0
- package/lib/locale/es.js +11 -0
- package/lib/locale/es.js.map +1 -1
- package/lib/locale/et.d.ts +11 -0
- package/lib/locale/et.js +11 -0
- package/lib/locale/et.js.map +1 -1
- package/lib/locale/fa.d.ts +11 -0
- package/lib/locale/fa.js +11 -0
- package/lib/locale/fa.js.map +1 -1
- package/lib/locale/fi.d.ts +11 -0
- package/lib/locale/fi.js +11 -0
- package/lib/locale/fi.js.map +1 -1
- package/lib/locale/fr.d.ts +11 -0
- package/lib/locale/fr.js +11 -0
- package/lib/locale/fr.js.map +1 -1
- package/lib/locale/he.d.ts +11 -0
- package/lib/locale/he.js +11 -0
- package/lib/locale/he.js.map +1 -1
- package/lib/locale/hr.d.ts +11 -0
- package/lib/locale/hr.js +11 -0
- package/lib/locale/hr.js.map +1 -1
- package/lib/locale/hu.d.ts +11 -0
- package/lib/locale/hu.js +11 -0
- package/lib/locale/hu.js.map +1 -1
- package/lib/locale/id.d.ts +11 -0
- package/lib/locale/id.js +11 -0
- package/lib/locale/id.js.map +1 -1
- package/lib/locale/it.d.ts +11 -0
- package/lib/locale/it.js +11 -0
- package/lib/locale/it.js.map +1 -1
- package/lib/locale/ja.d.ts +11 -0
- package/lib/locale/ja.js +11 -0
- package/lib/locale/ja.js.map +1 -1
- package/lib/locale/km.d.ts +11 -0
- package/lib/locale/km.js +11 -0
- package/lib/locale/km.js.map +1 -1
- package/lib/locale/ko.d.ts +11 -0
- package/lib/locale/ko.js +11 -0
- package/lib/locale/ko.js.map +1 -1
- package/lib/locale/lt.d.ts +11 -0
- package/lib/locale/lt.js +11 -0
- package/lib/locale/lt.js.map +1 -1
- package/lib/locale/lv.d.ts +11 -0
- package/lib/locale/lv.js +11 -0
- package/lib/locale/lv.js.map +1 -1
- package/lib/locale/nl.d.ts +11 -0
- package/lib/locale/nl.js +11 -0
- package/lib/locale/nl.js.map +1 -1
- package/lib/locale/no.d.ts +11 -0
- package/lib/locale/no.js +11 -0
- package/lib/locale/no.js.map +1 -1
- package/lib/locale/pl.d.ts +11 -0
- package/lib/locale/pl.js +11 -0
- package/lib/locale/pl.js.map +1 -1
- package/lib/locale/pt.d.ts +11 -0
- package/lib/locale/pt.js +11 -0
- package/lib/locale/pt.js.map +1 -1
- package/lib/locale/ro.d.ts +11 -0
- package/lib/locale/ro.js +11 -0
- package/lib/locale/ro.js.map +1 -1
- package/lib/locale/ru.d.ts +11 -0
- package/lib/locale/ru.js +11 -0
- package/lib/locale/ru.js.map +1 -1
- package/lib/locale/sk.d.ts +11 -0
- package/lib/locale/sk.js +11 -0
- package/lib/locale/sk.js.map +1 -1
- package/lib/locale/sl.d.ts +11 -0
- package/lib/locale/sl.js +11 -0
- package/lib/locale/sl.js.map +1 -1
- package/lib/locale/sr-Cyrl.d.ts +11 -0
- package/lib/locale/sr-Cyrl.js +11 -0
- package/lib/locale/sr-Cyrl.js.map +1 -1
- package/lib/locale/sr-Latn.d.ts +11 -0
- package/lib/locale/sr-Latn.js +11 -0
- package/lib/locale/sr-Latn.js.map +1 -1
- package/lib/locale/sv.d.ts +11 -0
- package/lib/locale/sv.js +11 -0
- package/lib/locale/sv.js.map +1 -1
- package/lib/locale/th.d.ts +11 -0
- package/lib/locale/th.js +11 -0
- package/lib/locale/th.js.map +1 -1
- package/lib/locale/tr.d.ts +11 -0
- package/lib/locale/tr.js +11 -0
- package/lib/locale/tr.js.map +1 -1
- package/lib/locale/uk.d.ts +11 -0
- package/lib/locale/uk.js +11 -0
- package/lib/locale/uk.js.map +1 -1
- package/lib/locale/vi.d.ts +11 -0
- package/lib/locale/vi.js +11 -0
- package/lib/locale/vi.js.map +1 -1
- package/lib/locale/zh-Hans.d.ts +11 -0
- package/lib/locale/zh-Hans.js +11 -0
- package/lib/locale/zh-Hans.js.map +1 -1
- package/lib/locale/zh-Hant.d.ts +11 -0
- package/lib/locale/zh-Hant.js +11 -0
- package/lib/locale/zh-Hant.js.map +1 -1
- package/lib/util/easing.d.ts +22 -0
- package/lib/util/easing.js +53 -0
- package/lib/util/easing.js.map +1 -1
- package/lib/util/index.d.ts +1 -0
- package/lib/util/index.js +1 -0
- package/lib/util/index.js.map +1 -1
- package/lib/util/svg-arc-corners.d.ts +4 -0
- package/lib/util/svg-arc-corners.js +73 -0
- package/lib/util/svg-arc-corners.js.map +1 -0
- package/lib/util/timeUtils.d.ts +1 -0
- package/lib/util/timeUtils.js +4 -0
- package/lib/util/timeUtils.js.map +1 -0
- package/package.json +1 -1
@@ -1148,6 +1148,7 @@ export declare const VBottomSheet: {
|
|
1148
1148
|
eager: boolean;
|
1149
1149
|
disabled: boolean;
|
1150
1150
|
persistent: boolean;
|
1151
|
+
fullscreen: boolean;
|
1151
1152
|
modelValue: boolean;
|
1152
1153
|
locationStrategy: "connected" | "static" | import("../VOverlay/locationStrategies.js").LocationStrategyFunction;
|
1153
1154
|
scrollStrategy: "none" | "block" | "close" | import("../VOverlay/scrollStrategies.js").ScrollStrategyFunction | "reposition";
|
@@ -1158,7 +1159,6 @@ export declare const VBottomSheet: {
|
|
1158
1159
|
contained: boolean;
|
1159
1160
|
noClickAnimation: boolean;
|
1160
1161
|
scrim: string | boolean;
|
1161
|
-
fullscreen: boolean;
|
1162
1162
|
retainFocus: boolean;
|
1163
1163
|
scrollable: boolean;
|
1164
1164
|
} & {
|
@@ -1293,6 +1293,7 @@ export declare const VBottomSheet: {
|
|
1293
1293
|
eager: boolean;
|
1294
1294
|
disabled: boolean;
|
1295
1295
|
persistent: boolean;
|
1296
|
+
fullscreen: boolean;
|
1296
1297
|
modelValue: boolean;
|
1297
1298
|
locationStrategy: "connected" | "static" | import("../VOverlay/locationStrategies.js").LocationStrategyFunction;
|
1298
1299
|
scrollStrategy: "none" | "block" | "close" | import("../VOverlay/scrollStrategies.js").ScrollStrategyFunction | "reposition";
|
@@ -1305,7 +1306,6 @@ export declare const VBottomSheet: {
|
|
1305
1306
|
contained: boolean;
|
1306
1307
|
noClickAnimation: boolean;
|
1307
1308
|
scrim: string | boolean;
|
1308
|
-
fullscreen: boolean;
|
1309
1309
|
retainFocus: boolean;
|
1310
1310
|
scrollable: boolean;
|
1311
1311
|
}, true, {}, import("vue").SlotsType<Partial<{
|
@@ -1398,6 +1398,7 @@ export declare const VBottomSheet: {
|
|
1398
1398
|
eager: boolean;
|
1399
1399
|
disabled: boolean;
|
1400
1400
|
persistent: boolean;
|
1401
|
+
fullscreen: boolean;
|
1401
1402
|
modelValue: boolean;
|
1402
1403
|
locationStrategy: "connected" | "static" | import("../VOverlay/locationStrategies.js").LocationStrategyFunction;
|
1403
1404
|
scrollStrategy: "none" | "block" | "close" | import("../VOverlay/scrollStrategies.js").ScrollStrategyFunction | "reposition";
|
@@ -1408,7 +1409,6 @@ export declare const VBottomSheet: {
|
|
1408
1409
|
contained: boolean;
|
1409
1410
|
noClickAnimation: boolean;
|
1410
1411
|
scrim: string | boolean;
|
1411
|
-
fullscreen: boolean;
|
1412
1412
|
retainFocus: boolean;
|
1413
1413
|
scrollable: boolean;
|
1414
1414
|
} & {
|
@@ -1541,6 +1541,7 @@ export declare const VBottomSheet: {
|
|
1541
1541
|
eager: boolean;
|
1542
1542
|
disabled: boolean;
|
1543
1543
|
persistent: boolean;
|
1544
|
+
fullscreen: boolean;
|
1544
1545
|
modelValue: boolean;
|
1545
1546
|
locationStrategy: "connected" | "static" | import("../VOverlay/locationStrategies.js").LocationStrategyFunction;
|
1546
1547
|
scrollStrategy: "none" | "block" | "close" | import("../VOverlay/scrollStrategies.js").ScrollStrategyFunction | "reposition";
|
@@ -1553,7 +1554,6 @@ export declare const VBottomSheet: {
|
|
1553
1554
|
contained: boolean;
|
1554
1555
|
noClickAnimation: boolean;
|
1555
1556
|
scrim: string | boolean;
|
1556
|
-
fullscreen: boolean;
|
1557
1557
|
retainFocus: boolean;
|
1558
1558
|
scrollable: boolean;
|
1559
1559
|
}>;
|
@@ -1634,6 +1634,7 @@ export declare const VBottomSheet: {
|
|
1634
1634
|
eager: boolean;
|
1635
1635
|
disabled: boolean;
|
1636
1636
|
persistent: boolean;
|
1637
|
+
fullscreen: boolean;
|
1637
1638
|
modelValue: boolean;
|
1638
1639
|
locationStrategy: "connected" | "static" | import("../VOverlay/locationStrategies.js").LocationStrategyFunction;
|
1639
1640
|
scrollStrategy: "none" | "block" | "close" | import("../VOverlay/scrollStrategies.js").ScrollStrategyFunction | "reposition";
|
@@ -1644,7 +1645,6 @@ export declare const VBottomSheet: {
|
|
1644
1645
|
contained: boolean;
|
1645
1646
|
noClickAnimation: boolean;
|
1646
1647
|
scrim: string | boolean;
|
1647
|
-
fullscreen: boolean;
|
1648
1648
|
retainFocus: boolean;
|
1649
1649
|
scrollable: boolean;
|
1650
1650
|
} & {
|
@@ -1779,6 +1779,7 @@ export declare const VBottomSheet: {
|
|
1779
1779
|
eager: boolean;
|
1780
1780
|
disabled: boolean;
|
1781
1781
|
persistent: boolean;
|
1782
|
+
fullscreen: boolean;
|
1782
1783
|
modelValue: boolean;
|
1783
1784
|
locationStrategy: "connected" | "static" | import("../VOverlay/locationStrategies.js").LocationStrategyFunction;
|
1784
1785
|
scrollStrategy: "none" | "block" | "close" | import("../VOverlay/scrollStrategies.js").ScrollStrategyFunction | "reposition";
|
@@ -1791,7 +1792,6 @@ export declare const VBottomSheet: {
|
|
1791
1792
|
contained: boolean;
|
1792
1793
|
noClickAnimation: boolean;
|
1793
1794
|
scrim: string | boolean;
|
1794
|
-
fullscreen: boolean;
|
1795
1795
|
retainFocus: boolean;
|
1796
1796
|
scrollable: boolean;
|
1797
1797
|
}, {}, string, import("vue").SlotsType<Partial<{
|
@@ -885,6 +885,7 @@ export declare const VDialog: {
|
|
885
885
|
eager: boolean;
|
886
886
|
disabled: boolean;
|
887
887
|
persistent: boolean;
|
888
|
+
fullscreen: boolean;
|
888
889
|
modelValue: boolean;
|
889
890
|
locationStrategy: "connected" | "static" | import("../VOverlay/locationStrategies.js").LocationStrategyFunction;
|
890
891
|
scrollStrategy: "none" | "block" | "close" | import("../VOverlay/scrollStrategies.js").ScrollStrategyFunction | "reposition";
|
@@ -895,7 +896,6 @@ export declare const VDialog: {
|
|
895
896
|
contained: boolean;
|
896
897
|
noClickAnimation: boolean;
|
897
898
|
scrim: string | boolean;
|
898
|
-
fullscreen: boolean;
|
899
899
|
retainFocus: boolean;
|
900
900
|
scrollable: boolean;
|
901
901
|
} & {
|
@@ -1433,6 +1433,7 @@ export declare const VDialog: {
|
|
1433
1433
|
eager: boolean;
|
1434
1434
|
disabled: boolean;
|
1435
1435
|
persistent: boolean;
|
1436
|
+
fullscreen: boolean;
|
1436
1437
|
modelValue: boolean;
|
1437
1438
|
locationStrategy: "connected" | "static" | import("../VOverlay/locationStrategies.js").LocationStrategyFunction;
|
1438
1439
|
scrollStrategy: "none" | "block" | "close" | import("../VOverlay/scrollStrategies.js").ScrollStrategyFunction | "reposition";
|
@@ -1445,7 +1446,6 @@ export declare const VDialog: {
|
|
1445
1446
|
contained: boolean;
|
1446
1447
|
noClickAnimation: boolean;
|
1447
1448
|
scrim: string | boolean;
|
1448
|
-
fullscreen: boolean;
|
1449
1449
|
retainFocus: boolean;
|
1450
1450
|
scrollable: boolean;
|
1451
1451
|
}, true, {}, import("vue").SlotsType<Partial<{
|
@@ -1537,6 +1537,7 @@ export declare const VDialog: {
|
|
1537
1537
|
eager: boolean;
|
1538
1538
|
disabled: boolean;
|
1539
1539
|
persistent: boolean;
|
1540
|
+
fullscreen: boolean;
|
1540
1541
|
modelValue: boolean;
|
1541
1542
|
locationStrategy: "connected" | "static" | import("../VOverlay/locationStrategies.js").LocationStrategyFunction;
|
1542
1543
|
scrollStrategy: "none" | "block" | "close" | import("../VOverlay/scrollStrategies.js").ScrollStrategyFunction | "reposition";
|
@@ -1547,7 +1548,6 @@ export declare const VDialog: {
|
|
1547
1548
|
contained: boolean;
|
1548
1549
|
noClickAnimation: boolean;
|
1549
1550
|
scrim: string | boolean;
|
1550
|
-
fullscreen: boolean;
|
1551
1551
|
retainFocus: boolean;
|
1552
1552
|
scrollable: boolean;
|
1553
1553
|
} & {
|
@@ -2081,6 +2081,7 @@ export declare const VDialog: {
|
|
2081
2081
|
eager: boolean;
|
2082
2082
|
disabled: boolean;
|
2083
2083
|
persistent: boolean;
|
2084
|
+
fullscreen: boolean;
|
2084
2085
|
modelValue: boolean;
|
2085
2086
|
locationStrategy: "connected" | "static" | import("../VOverlay/locationStrategies.js").LocationStrategyFunction;
|
2086
2087
|
scrollStrategy: "none" | "block" | "close" | import("../VOverlay/scrollStrategies.js").ScrollStrategyFunction | "reposition";
|
@@ -2093,7 +2094,6 @@ export declare const VDialog: {
|
|
2093
2094
|
contained: boolean;
|
2094
2095
|
noClickAnimation: boolean;
|
2095
2096
|
scrim: string | boolean;
|
2096
|
-
fullscreen: boolean;
|
2097
2097
|
retainFocus: boolean;
|
2098
2098
|
scrollable: boolean;
|
2099
2099
|
}>;
|
@@ -2173,6 +2173,7 @@ export declare const VDialog: {
|
|
2173
2173
|
eager: boolean;
|
2174
2174
|
disabled: boolean;
|
2175
2175
|
persistent: boolean;
|
2176
|
+
fullscreen: boolean;
|
2176
2177
|
modelValue: boolean;
|
2177
2178
|
locationStrategy: "connected" | "static" | import("../VOverlay/locationStrategies.js").LocationStrategyFunction;
|
2178
2179
|
scrollStrategy: "none" | "block" | "close" | import("../VOverlay/scrollStrategies.js").ScrollStrategyFunction | "reposition";
|
@@ -2183,7 +2184,6 @@ export declare const VDialog: {
|
|
2183
2184
|
contained: boolean;
|
2184
2185
|
noClickAnimation: boolean;
|
2185
2186
|
scrim: string | boolean;
|
2186
|
-
fullscreen: boolean;
|
2187
2187
|
retainFocus: boolean;
|
2188
2188
|
scrollable: boolean;
|
2189
2189
|
} & {
|
@@ -2721,6 +2721,7 @@ export declare const VDialog: {
|
|
2721
2721
|
eager: boolean;
|
2722
2722
|
disabled: boolean;
|
2723
2723
|
persistent: boolean;
|
2724
|
+
fullscreen: boolean;
|
2724
2725
|
modelValue: boolean;
|
2725
2726
|
locationStrategy: "connected" | "static" | import("../VOverlay/locationStrategies.js").LocationStrategyFunction;
|
2726
2727
|
scrollStrategy: "none" | "block" | "close" | import("../VOverlay/scrollStrategies.js").ScrollStrategyFunction | "reposition";
|
@@ -2733,7 +2734,6 @@ export declare const VDialog: {
|
|
2733
2734
|
contained: boolean;
|
2734
2735
|
noClickAnimation: boolean;
|
2735
2736
|
scrim: string | boolean;
|
2736
|
-
fullscreen: boolean;
|
2737
2737
|
retainFocus: boolean;
|
2738
2738
|
scrollable: boolean;
|
2739
2739
|
}, {}, string, import("vue").SlotsType<Partial<{
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"VOverlay.js","names":["makeLocationStrategyProps","useLocationStrategies","makeScrollStrategyProps","useScrollStrategies","makeActivatorProps","useActivator","useBackgroundColor","makeComponentProps","makeDimensionProps","useDimension","useHydration","makeLazyProps","useLazy","useRtl","useProxiedModel","useBackButton","useRouter","useScopeId","useStack","useTeleport","makeThemeProps","provideTheme","useToggleScope","makeTransitionProps","MaybeTransition","vClickOutside","computed","mergeProps","onBeforeUnmount","ref","Teleport","Transition","watch","animate","convertToUnit","genericComponent","getCurrentInstance","getScrollParent","IN_BROWSER","propsFactory","standardEasing","useRender","Scrim","props","modelValue","color","rest","_createVNode","default","_createElementVNode","_mergeProps","backgroundColorClasses","value","backgroundColorStyles","makeVOverlayProps","absolute","Boolean","attach","String","Object","closeOnBack","type","contained","contentClass","contentProps","disabled","opacity","Number","noClickAnimation","persistent","scrim","zIndex","VOverlay","name","directives","inheritAttrs","_disableGlobalStack","emits","e","keydown","afterEnter","afterLeave","setup","_ref","slots","attrs","emit","vm","root","scrimEl","contentEl","model","isActive","get","set","v","themeClasses","rtlClasses","isRtl","hasContent","onAfterLeave","_onAfterLeave","scrimColor","globalTop","localTop","stackStyles","activatorEl","activatorRef","target","targetEl","targetRef","activatorEvents","contentEvents","scrimEvents","isTop","teleportTarget","rootNode","getRootNode","proxy","$el","ShadowRoot","dimensionStyles","isMounted","scopeId","contentStyles","updateLocation","onClickOutside","animateClick","closeConditional","MouseEvent","shadowTarget","val","window","addEventListener","onKeydown","removeEventListener","immediate","key","contains","document","activeElement","focus","onKeydownSelf","router","next","top","scrollParent","scrollingElement","scrollTop","transformOrigin","transform","duration","easing","onAfterEnter","_Fragment","activator","activatorProps","class","style","transition","_withDirectives","_vShow","handler","include"],"sources":["../../../src/components/VOverlay/VOverlay.tsx"],"sourcesContent":["// Styles\nimport './VOverlay.sass'\n\n// Composables\nimport { makeLocationStrategyProps, useLocationStrategies } from './locationStrategies'\nimport { makeScrollStrategyProps, useScrollStrategies } from './scrollStrategies'\nimport { makeActivatorProps, useActivator } from './useActivator'\nimport { useBackgroundColor } from '@/composables/color'\nimport { makeComponentProps } from '@/composables/component'\nimport { makeDimensionProps, useDimension } from '@/composables/dimensions'\nimport { useHydration } from '@/composables/hydration'\nimport { makeLazyProps, useLazy } from '@/composables/lazy'\nimport { useRtl } from '@/composables/locale'\nimport { useProxiedModel } from '@/composables/proxiedModel'\nimport { useBackButton, useRouter } from '@/composables/router'\nimport { useScopeId } from '@/composables/scopeId'\nimport { useStack } from '@/composables/stack'\nimport { useTeleport } from '@/composables/teleport'\nimport { makeThemeProps, provideTheme } from '@/composables/theme'\nimport { useToggleScope } from '@/composables/toggleScope'\nimport { makeTransitionProps, MaybeTransition } from '@/composables/transition'\n\n// Directives\nimport vClickOutside from '@/directives/click-outside'\n\n// Utilities\nimport {\n computed,\n mergeProps,\n onBeforeUnmount,\n ref,\n Teleport,\n Transition,\n watch,\n} from 'vue'\nimport {\n animate,\n convertToUnit,\n genericComponent,\n getCurrentInstance,\n getScrollParent,\n IN_BROWSER,\n propsFactory,\n standardEasing,\n useRender,\n} from '@/util'\n\n// Types\nimport type { PropType, Ref } from 'vue'\nimport type { BackgroundColorData } from '@/composables/color'\nimport type { TemplateRef } from '@/util'\n\ninterface ScrimProps {\n [key: string]: unknown\n modelValue: boolean\n color: BackgroundColorData\n}\nfunction Scrim (props: ScrimProps) {\n const { modelValue, color, ...rest } = props\n return (\n <Transition name=\"fade-transition\" appear>\n { props.modelValue && (\n <div\n class={[\n 'v-overlay__scrim',\n props.color.backgroundColorClasses.value,\n ]}\n style={ props.color.backgroundColorStyles.value }\n { ...rest }\n />\n )}\n </Transition>\n )\n}\n\nexport type OverlaySlots = {\n default: { isActive: Ref<boolean> }\n activator: { isActive: boolean, props: Record<string, any>, targetRef: TemplateRef }\n}\n\nexport const makeVOverlayProps = propsFactory({\n absolute: Boolean,\n attach: [Boolean, String, Object] as PropType<boolean | string | Element>,\n closeOnBack: {\n type: Boolean,\n default: true,\n },\n contained: Boolean,\n contentClass: null,\n contentProps: null,\n disabled: Boolean,\n opacity: [Number, String],\n noClickAnimation: Boolean,\n modelValue: Boolean,\n persistent: Boolean,\n scrim: {\n type: [Boolean, String],\n default: true,\n },\n zIndex: {\n type: [Number, String],\n default: 2000,\n },\n\n ...makeActivatorProps(),\n ...makeComponentProps(),\n ...makeDimensionProps(),\n ...makeLazyProps(),\n ...makeLocationStrategyProps(),\n ...makeScrollStrategyProps(),\n ...makeThemeProps(),\n ...makeTransitionProps(),\n}, 'VOverlay')\n\nexport const VOverlay = genericComponent<OverlaySlots>()({\n name: 'VOverlay',\n\n directives: { vClickOutside },\n\n inheritAttrs: false,\n\n props: {\n _disableGlobalStack: Boolean,\n\n ...makeVOverlayProps(),\n },\n\n emits: {\n 'click:outside': (e: MouseEvent) => true,\n 'update:modelValue': (value: boolean) => true,\n keydown: (e: KeyboardEvent) => true,\n afterEnter: () => true,\n afterLeave: () => true,\n },\n\n setup (props, { slots, attrs, emit }) {\n const vm = getCurrentInstance('VOverlay')\n const root = ref<HTMLElement>()\n const scrimEl = ref<HTMLElement>()\n const contentEl = ref<HTMLElement>()\n const model = useProxiedModel(props, 'modelValue')\n const isActive = computed({\n get: () => model.value,\n set: v => {\n if (!(v && props.disabled)) model.value = v\n },\n })\n const { themeClasses } = provideTheme(props)\n const { rtlClasses, isRtl } = useRtl()\n const { hasContent, onAfterLeave: _onAfterLeave } = useLazy(props, isActive)\n const scrimColor = useBackgroundColor(() => {\n return typeof props.scrim === 'string' ? props.scrim : null\n })\n const { globalTop, localTop, stackStyles } = useStack(isActive, () => props.zIndex, props._disableGlobalStack)\n const {\n activatorEl, activatorRef,\n target, targetEl, targetRef,\n activatorEvents,\n contentEvents,\n scrimEvents,\n } = useActivator(props, { isActive, isTop: localTop, contentEl })\n const { teleportTarget } = useTeleport(() => {\n const target = props.attach || props.contained\n if (target) return target\n const rootNode = activatorEl?.value?.getRootNode() || vm.proxy?.$el?.getRootNode()\n if (rootNode instanceof ShadowRoot) return rootNode\n return false\n })\n const { dimensionStyles } = useDimension(props)\n const isMounted = useHydration()\n const { scopeId } = useScopeId()\n\n watch(() => props.disabled, v => {\n if (v) isActive.value = false\n })\n\n const { contentStyles, updateLocation } = useLocationStrategies(props, {\n isRtl,\n contentEl,\n target,\n isActive,\n })\n useScrollStrategies(props, {\n root,\n contentEl,\n targetEl,\n isActive,\n updateLocation,\n })\n\n function onClickOutside (e: MouseEvent) {\n emit('click:outside', e)\n\n if (!props.persistent) isActive.value = false\n else animateClick()\n }\n\n function closeConditional (e: Event) {\n return isActive.value && globalTop.value && (\n // If using scrim, only close if clicking on it rather than anything opened on top\n !props.scrim || e.target === scrimEl.value || (e instanceof MouseEvent && e.shadowTarget === scrimEl.value)\n )\n }\n\n IN_BROWSER && watch(isActive, val => {\n if (val) {\n window.addEventListener('keydown', onKeydown)\n } else {\n window.removeEventListener('keydown', onKeydown)\n }\n }, { immediate: true })\n\n onBeforeUnmount(() => {\n if (!IN_BROWSER) return\n\n window.removeEventListener('keydown', onKeydown)\n })\n\n function onKeydown (e: KeyboardEvent) {\n if (e.key === 'Escape' && globalTop.value) {\n if (!contentEl.value?.contains(document.activeElement)) {\n emit('keydown', e)\n }\n if (!props.persistent) {\n isActive.value = false\n if (contentEl.value?.contains(document.activeElement)) {\n activatorEl.value?.focus()\n }\n } else animateClick()\n }\n }\n function onKeydownSelf (e: KeyboardEvent) {\n if (e.key === 'Escape' && !globalTop.value) return\n\n emit('keydown', e)\n }\n\n const router = useRouter()\n useToggleScope(() => props.closeOnBack, () => {\n useBackButton(router, next => {\n if (globalTop.value && isActive.value) {\n next(false)\n if (!props.persistent) isActive.value = false\n else animateClick()\n } else {\n next()\n }\n })\n })\n\n const top = ref<number>()\n watch(() => isActive.value && (props.absolute || props.contained) && teleportTarget.value == null, val => {\n if (val) {\n const scrollParent = getScrollParent(root.value)\n if (scrollParent && scrollParent !== document.scrollingElement) {\n top.value = scrollParent.scrollTop\n }\n }\n })\n\n // Add a quick \"bounce\" animation to the content\n function animateClick () {\n if (props.noClickAnimation) return\n\n contentEl.value && animate(contentEl.value, [\n { transformOrigin: 'center' },\n { transform: 'scale(1.03)' },\n { transformOrigin: 'center' },\n ], {\n duration: 150,\n easing: standardEasing,\n })\n }\n\n function onAfterEnter () {\n emit('afterEnter')\n }\n\n function onAfterLeave () {\n _onAfterLeave()\n emit('afterLeave')\n }\n\n useRender(() => (\n <>\n { slots.activator?.({\n isActive: isActive.value,\n targetRef,\n props: mergeProps({\n ref: activatorRef,\n }, activatorEvents.value, props.activatorProps),\n })}\n\n { isMounted.value && hasContent.value && (\n <Teleport\n disabled={ !teleportTarget.value }\n to={ teleportTarget.value }\n >\n <div\n class={[\n 'v-overlay',\n {\n 'v-overlay--absolute': props.absolute || props.contained,\n 'v-overlay--active': isActive.value,\n 'v-overlay--contained': props.contained,\n },\n themeClasses.value,\n rtlClasses.value,\n props.class,\n ]}\n style={[\n stackStyles.value,\n {\n '--v-overlay-opacity': props.opacity,\n top: convertToUnit(top.value),\n },\n props.style,\n ]}\n ref={ root }\n onKeydown={ onKeydownSelf }\n { ...scopeId }\n { ...attrs }\n >\n <Scrim\n color={ scrimColor }\n modelValue={ isActive.value && !!props.scrim }\n ref={ scrimEl }\n { ...scrimEvents.value }\n />\n <MaybeTransition\n appear\n persisted\n transition={ props.transition }\n target={ target.value }\n onAfterEnter={ onAfterEnter }\n onAfterLeave={ onAfterLeave }\n >\n <div\n ref={ contentEl }\n v-show={ isActive.value }\n v-click-outside={{ handler: onClickOutside, closeConditional, include: () => [activatorEl.value] }}\n class={[\n 'v-overlay__content',\n props.contentClass,\n ]}\n style={[\n dimensionStyles.value,\n contentStyles.value,\n ]}\n { ...contentEvents.value }\n { ...props.contentProps }\n >\n { slots.default?.({ isActive }) }\n </div>\n </MaybeTransition>\n </div>\n </Teleport>\n )}\n </>\n ))\n\n return {\n activatorEl,\n scrimEl,\n target,\n animateClick,\n contentEl,\n globalTop,\n localTop,\n updateLocation,\n }\n },\n})\n\nexport type VOverlay = InstanceType<typeof VOverlay>\n"],"mappings":"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","ignoreList":[]}
|
1
|
+
{"version":3,"file":"VOverlay.js","names":["makeLocationStrategyProps","useLocationStrategies","makeScrollStrategyProps","useScrollStrategies","makeActivatorProps","useActivator","useBackgroundColor","makeComponentProps","makeDimensionProps","useDimension","useHydration","makeLazyProps","useLazy","useRtl","useProxiedModel","useBackButton","useRouter","useScopeId","useStack","useTeleport","makeThemeProps","provideTheme","useToggleScope","makeTransitionProps","MaybeTransition","vClickOutside","computed","mergeProps","onBeforeUnmount","ref","Teleport","Transition","watch","animate","convertToUnit","genericComponent","getCurrentInstance","getScrollParent","IN_BROWSER","propsFactory","standardEasing","useRender","Scrim","props","modelValue","color","rest","_createVNode","default","_createElementVNode","_mergeProps","backgroundColorClasses","value","backgroundColorStyles","makeVOverlayProps","absolute","Boolean","attach","String","Object","closeOnBack","type","contained","contentClass","contentProps","disabled","opacity","Number","noClickAnimation","persistent","scrim","zIndex","VOverlay","name","directives","inheritAttrs","_disableGlobalStack","emits","e","keydown","afterEnter","afterLeave","setup","_ref","slots","attrs","emit","vm","root","scrimEl","contentEl","model","isActive","get","set","v","themeClasses","rtlClasses","isRtl","hasContent","onAfterLeave","_onAfterLeave","scrimColor","globalTop","localTop","stackStyles","activatorEl","activatorRef","target","targetEl","targetRef","activatorEvents","contentEvents","scrimEvents","isTop","teleportTarget","rootNode","getRootNode","proxy","$el","ShadowRoot","dimensionStyles","isMounted","scopeId","contentStyles","updateLocation","onClickOutside","animateClick","closeConditional","MouseEvent","shadowTarget","val","window","addEventListener","onKeydown","removeEventListener","immediate","key","contains","document","activeElement","focus","onKeydownSelf","router","next","top","scrollParent","scrollingElement","scrollTop","transformOrigin","transform","duration","easing","onAfterEnter","_Fragment","activator","activatorProps","class","style","transition","_withDirectives","_vShow","handler","include"],"sources":["../../../src/components/VOverlay/VOverlay.tsx"],"sourcesContent":["// Styles\nimport './VOverlay.sass'\n\n// Composables\nimport { makeLocationStrategyProps, useLocationStrategies } from './locationStrategies'\nimport { makeScrollStrategyProps, useScrollStrategies } from './scrollStrategies'\nimport { makeActivatorProps, useActivator } from './useActivator'\nimport { useBackgroundColor } from '@/composables/color'\nimport { makeComponentProps } from '@/composables/component'\nimport { makeDimensionProps, useDimension } from '@/composables/dimensions'\nimport { useHydration } from '@/composables/hydration'\nimport { makeLazyProps, useLazy } from '@/composables/lazy'\nimport { useRtl } from '@/composables/locale'\nimport { useProxiedModel } from '@/composables/proxiedModel'\nimport { useBackButton, useRouter } from '@/composables/router'\nimport { useScopeId } from '@/composables/scopeId'\nimport { useStack } from '@/composables/stack'\nimport { useTeleport } from '@/composables/teleport'\nimport { makeThemeProps, provideTheme } from '@/composables/theme'\nimport { useToggleScope } from '@/composables/toggleScope'\nimport { makeTransitionProps, MaybeTransition } from '@/composables/transition'\n\n// Directives\nimport vClickOutside from '@/directives/click-outside'\n\n// Utilities\nimport {\n computed,\n mergeProps,\n onBeforeUnmount,\n ref,\n Teleport,\n Transition,\n watch,\n} from 'vue'\nimport {\n animate,\n convertToUnit,\n genericComponent,\n getCurrentInstance,\n getScrollParent,\n IN_BROWSER,\n propsFactory,\n standardEasing,\n useRender,\n} from '@/util'\n\n// Types\nimport type { PropType, Ref } from 'vue'\nimport type { BackgroundColorData } from '@/composables/color'\nimport type { TemplateRef } from '@/util'\n\ninterface ScrimProps {\n [key: string]: unknown\n modelValue: boolean\n color: BackgroundColorData\n}\nfunction Scrim (props: ScrimProps) {\n const { modelValue, color, ...rest } = props\n return (\n <Transition name=\"fade-transition\" appear>\n { props.modelValue && (\n <div\n class={[\n 'v-overlay__scrim',\n props.color.backgroundColorClasses.value,\n ]}\n style={ props.color.backgroundColorStyles.value }\n { ...rest }\n />\n )}\n </Transition>\n )\n}\n\nexport type OverlaySlots = {\n default: { isActive: Ref<boolean> }\n activator: { isActive: boolean, props: Record<string, any>, targetRef: TemplateRef }\n}\n\nexport const makeVOverlayProps = propsFactory({\n absolute: Boolean,\n attach: [Boolean, String, Object] as PropType<boolean | string | Element>,\n closeOnBack: {\n type: Boolean,\n default: true,\n },\n contained: Boolean,\n contentClass: null,\n contentProps: null,\n disabled: Boolean,\n opacity: [Number, String],\n noClickAnimation: Boolean,\n modelValue: Boolean,\n persistent: Boolean,\n scrim: {\n type: [Boolean, String],\n default: true,\n },\n zIndex: {\n type: [Number, String],\n default: 2000,\n },\n\n ...makeActivatorProps(),\n ...makeComponentProps(),\n ...makeDimensionProps(),\n ...makeLazyProps(),\n ...makeLocationStrategyProps(),\n ...makeScrollStrategyProps(),\n ...makeThemeProps(),\n ...makeTransitionProps(),\n}, 'VOverlay')\n\nexport const VOverlay = genericComponent<OverlaySlots>()({\n name: 'VOverlay',\n\n directives: { vClickOutside },\n\n inheritAttrs: false,\n\n props: {\n _disableGlobalStack: Boolean,\n\n ...makeVOverlayProps(),\n },\n\n emits: {\n 'click:outside': (e: MouseEvent) => true,\n 'update:modelValue': (value: boolean) => true,\n keydown: (e: KeyboardEvent) => true,\n afterEnter: () => true,\n afterLeave: () => true,\n },\n\n setup (props, { slots, attrs, emit }) {\n const vm = getCurrentInstance('VOverlay')\n const root = ref<HTMLElement>()\n const scrimEl = ref<HTMLElement>()\n const contentEl = ref<HTMLElement>()\n const model = useProxiedModel(props, 'modelValue')\n const isActive = computed({\n get: () => model.value,\n set: v => {\n if (!(v && props.disabled)) model.value = v\n },\n })\n const { themeClasses } = provideTheme(props)\n const { rtlClasses, isRtl } = useRtl()\n const { hasContent, onAfterLeave: _onAfterLeave } = useLazy(props, isActive)\n const scrimColor = useBackgroundColor(() => {\n return typeof props.scrim === 'string' ? props.scrim : null\n })\n const { globalTop, localTop, stackStyles } = useStack(isActive, () => props.zIndex, props._disableGlobalStack)\n const {\n activatorEl, activatorRef,\n target, targetEl, targetRef,\n activatorEvents,\n contentEvents,\n scrimEvents,\n } = useActivator(props, { isActive, isTop: localTop, contentEl })\n const { teleportTarget } = useTeleport(() => {\n const target = props.attach || props.contained\n if (target) return target\n const rootNode = activatorEl?.value?.getRootNode() || vm.proxy?.$el?.getRootNode()\n if (rootNode instanceof ShadowRoot) return rootNode\n return false\n })\n const { dimensionStyles } = useDimension(props)\n const isMounted = useHydration()\n const { scopeId } = useScopeId()\n\n watch(() => props.disabled, v => {\n if (v) isActive.value = false\n })\n\n const { contentStyles, updateLocation } = useLocationStrategies(props, {\n isRtl,\n contentEl,\n target,\n isActive,\n })\n useScrollStrategies(props, {\n root,\n contentEl,\n targetEl,\n target,\n isActive,\n updateLocation,\n })\n\n function onClickOutside (e: MouseEvent) {\n emit('click:outside', e)\n\n if (!props.persistent) isActive.value = false\n else animateClick()\n }\n\n function closeConditional (e: Event) {\n return isActive.value && globalTop.value && (\n // If using scrim, only close if clicking on it rather than anything opened on top\n !props.scrim || e.target === scrimEl.value || (e instanceof MouseEvent && e.shadowTarget === scrimEl.value)\n )\n }\n\n IN_BROWSER && watch(isActive, val => {\n if (val) {\n window.addEventListener('keydown', onKeydown)\n } else {\n window.removeEventListener('keydown', onKeydown)\n }\n }, { immediate: true })\n\n onBeforeUnmount(() => {\n if (!IN_BROWSER) return\n\n window.removeEventListener('keydown', onKeydown)\n })\n\n function onKeydown (e: KeyboardEvent) {\n if (e.key === 'Escape' && globalTop.value) {\n if (!contentEl.value?.contains(document.activeElement)) {\n emit('keydown', e)\n }\n if (!props.persistent) {\n isActive.value = false\n if (contentEl.value?.contains(document.activeElement)) {\n activatorEl.value?.focus()\n }\n } else animateClick()\n }\n }\n function onKeydownSelf (e: KeyboardEvent) {\n if (e.key === 'Escape' && !globalTop.value) return\n\n emit('keydown', e)\n }\n\n const router = useRouter()\n useToggleScope(() => props.closeOnBack, () => {\n useBackButton(router, next => {\n if (globalTop.value && isActive.value) {\n next(false)\n if (!props.persistent) isActive.value = false\n else animateClick()\n } else {\n next()\n }\n })\n })\n\n const top = ref<number>()\n watch(() => isActive.value && (props.absolute || props.contained) && teleportTarget.value == null, val => {\n if (val) {\n const scrollParent = getScrollParent(root.value)\n if (scrollParent && scrollParent !== document.scrollingElement) {\n top.value = scrollParent.scrollTop\n }\n }\n })\n\n // Add a quick \"bounce\" animation to the content\n function animateClick () {\n if (props.noClickAnimation) return\n\n contentEl.value && animate(contentEl.value, [\n { transformOrigin: 'center' },\n { transform: 'scale(1.03)' },\n { transformOrigin: 'center' },\n ], {\n duration: 150,\n easing: standardEasing,\n })\n }\n\n function onAfterEnter () {\n emit('afterEnter')\n }\n\n function onAfterLeave () {\n _onAfterLeave()\n emit('afterLeave')\n }\n\n useRender(() => (\n <>\n { slots.activator?.({\n isActive: isActive.value,\n targetRef,\n props: mergeProps({\n ref: activatorRef,\n }, activatorEvents.value, props.activatorProps),\n })}\n\n { isMounted.value && hasContent.value && (\n <Teleport\n disabled={ !teleportTarget.value }\n to={ teleportTarget.value }\n >\n <div\n class={[\n 'v-overlay',\n {\n 'v-overlay--absolute': props.absolute || props.contained,\n 'v-overlay--active': isActive.value,\n 'v-overlay--contained': props.contained,\n },\n themeClasses.value,\n rtlClasses.value,\n props.class,\n ]}\n style={[\n stackStyles.value,\n {\n '--v-overlay-opacity': props.opacity,\n top: convertToUnit(top.value),\n },\n props.style,\n ]}\n ref={ root }\n onKeydown={ onKeydownSelf }\n { ...scopeId }\n { ...attrs }\n >\n <Scrim\n color={ scrimColor }\n modelValue={ isActive.value && !!props.scrim }\n ref={ scrimEl }\n { ...scrimEvents.value }\n />\n <MaybeTransition\n appear\n persisted\n transition={ props.transition }\n target={ target.value }\n onAfterEnter={ onAfterEnter }\n onAfterLeave={ onAfterLeave }\n >\n <div\n ref={ contentEl }\n v-show={ isActive.value }\n v-click-outside={{ handler: onClickOutside, closeConditional, include: () => [activatorEl.value] }}\n class={[\n 'v-overlay__content',\n props.contentClass,\n ]}\n style={[\n dimensionStyles.value,\n contentStyles.value,\n ]}\n { ...contentEvents.value }\n { ...props.contentProps }\n >\n { slots.default?.({ isActive }) }\n </div>\n </MaybeTransition>\n </div>\n </Teleport>\n )}\n </>\n ))\n\n return {\n activatorEl,\n scrimEl,\n target,\n animateClick,\n contentEl,\n globalTop,\n localTop,\n updateLocation,\n }\n },\n})\n\nexport type VOverlay = InstanceType<typeof VOverlay>\n"],"mappings":"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","ignoreList":[]}
|
@@ -173,11 +173,23 @@ function connectedLocationStrategy(data, props, contentStyles) {
|
|
173
173
|
const result = updateLocation();
|
174
174
|
if (result) flipped.push(result.flipped);
|
175
175
|
});
|
176
|
-
|
177
|
-
|
178
|
-
|
176
|
+
let targetBox = new Box({
|
177
|
+
x: 0,
|
178
|
+
y: 0,
|
179
|
+
width: 0,
|
180
|
+
height: 0
|
181
|
+
});
|
182
|
+
watch(data.target, (newTarget, oldTarget) => {
|
179
183
|
if (oldTarget && !Array.isArray(oldTarget)) observer.unobserve(oldTarget);
|
180
|
-
if (
|
184
|
+
if (!Array.isArray(newTarget)) {
|
185
|
+
if (newTarget) observer.observe(newTarget);
|
186
|
+
} else if (!deepEqual(newTarget, oldTarget)) {
|
187
|
+
updateLocation();
|
188
|
+
}
|
189
|
+
}, {
|
190
|
+
immediate: true
|
191
|
+
});
|
192
|
+
watch(data.contentEl, (newContentEl, oldContentEl) => {
|
181
193
|
if (oldContentEl) observer.unobserve(oldContentEl);
|
182
194
|
if (newContentEl) observer.observe(newContentEl);
|
183
195
|
}, {
|
@@ -186,12 +198,6 @@ function connectedLocationStrategy(data, props, contentStyles) {
|
|
186
198
|
onScopeDispose(() => {
|
187
199
|
observer.disconnect();
|
188
200
|
});
|
189
|
-
let targetBox = new Box({
|
190
|
-
x: 0,
|
191
|
-
y: 0,
|
192
|
-
width: 0,
|
193
|
-
height: 0
|
194
|
-
});
|
195
201
|
|
196
202
|
// eslint-disable-next-line max-statements
|
197
203
|
function updateLocation() {
|
@@ -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","useLocationStrategies","props","data","contentStyles","updateLocation","isActive","value","reset","window","removeEventListener","onResize","visualViewport","onVisualResize","onVisualScroll","undefined","addEventListener","passive","e","getIntrinsicSize","el","isRtl","contentBox","x","parseFloat","style","right","left","y","top","activatorFixed","isArray","target","Object","assign","position","preferredAnchor","preferredOrigin","parsedAnchor","parsedOrigin","side","align","minWidth","minHeight","maxWidth","maxHeight","map","key","isNaN","Infinity","split","length","push","observe","lastFrame","flipped","observer","ResizeObserver","requestAnimationFrame","newTime","clear","newNewTime","isFull","values","at","result","contentEl","_ref","_ref2","newTarget","newContentEl","oldTarget","oldContentEl","unobserve","immediate","disconnect","targetBox","width","height","offsetParent","getClientRects","scrollParents","viewportMargin","document","documentElement","getPropertyValue","viewport","reduce","box","scrollBox","Math","max","min","bottom","placement","anchor","checkOverflow","_placement","targetPoint","contentPoint","overflows","available","resets","_x","_y","axis","hasOverflowX","before","after","hasOverflowY","forEach","newPlacement","flip","newOverflows","transformOrigin","pixelRound","pixelCeil","round","devicePixelRatio","ceil"],"sources":["../../../src/components/VOverlay/locationStrategies.ts"],"sourcesContent":["// Composables\nimport { useToggleScope } from '@/composables/toggleScope'\n\n// Utilities\nimport { computed, nextTick, onScopeDispose, ref, watch } from 'vue'\nimport { anchorToPoint, getOffset } from './util/point'\nimport {\n CircularBuffer,\n clamp,\n consoleError,\n convertToUnit,\n deepEqual,\n destructComputed,\n flipAlign,\n flipCorner,\n flipSide,\n getAxis,\n getScrollParents,\n IN_BROWSER,\n isFixedPosition,\n nullifyTransforms,\n parseAnchor,\n propsFactory,\n} from '@/util'\nimport { Box, getElementBox, getOverflow, getTargetBox } from '@/util/box'\n\n// Types\nimport type { PropType, Ref } from 'vue'\nimport type { Anchor } from '@/util'\n\nexport interface LocationStrategyData {\n contentEl: Ref<HTMLElement | undefined>\n target: Ref<HTMLElement | [x: number, y: number] | undefined>\n isActive: Ref<boolean>\n isRtl: Ref<boolean>\n}\n\nexport type LocationStrategyFunction = (\n data: LocationStrategyData,\n props: StrategyProps,\n contentStyles: Ref<Record<string, string>>\n) => undefined | { updateLocation: (e?: Event) => void }\n\nconst locationStrategies = {\n static: staticLocationStrategy, // specific viewport position, usually centered\n connected: connectedLocationStrategy, // connected to a certain element\n}\n\nexport interface StrategyProps {\n locationStrategy: keyof typeof locationStrategies | LocationStrategyFunction\n location: Anchor\n origin: Anchor | 'auto' | 'overlap'\n offset?: number | string | number[]\n maxHeight?: number | string\n maxWidth?: number | string\n minHeight?: number | string\n minWidth?: number | string\n}\n\nexport const makeLocationStrategyProps = propsFactory({\n locationStrategy: {\n type: [String, Function] as PropType<StrategyProps['locationStrategy']>,\n default: 'static',\n validator: (val: any) => typeof val === 'function' || val in locationStrategies,\n },\n location: {\n type: String as PropType<StrategyProps['location']>,\n default: 'bottom',\n },\n origin: {\n type: String as PropType<StrategyProps['origin']>,\n default: 'auto',\n },\n offset: [Number, String, Array] as PropType<StrategyProps['offset']>,\n}, 'VOverlay-location-strategies')\n\nexport function useLocationStrategies (\n props: StrategyProps,\n data: LocationStrategyData\n) {\n const contentStyles = ref({})\n const updateLocation = ref<(e: Event) => void>()\n\n if (IN_BROWSER) {\n useToggleScope(() => !!(data.isActive.value && props.locationStrategy), reset => {\n watch(() => props.locationStrategy, reset)\n onScopeDispose(() => {\n window.removeEventListener('resize', onResize)\n visualViewport?.removeEventListener('resize', onVisualResize)\n visualViewport?.removeEventListener('scroll', onVisualScroll)\n updateLocation.value = undefined\n })\n\n window.addEventListener('resize', onResize, { passive: true })\n visualViewport?.addEventListener('resize', onVisualResize, { passive: true })\n visualViewport?.addEventListener('scroll', onVisualScroll, { passive: true })\n\n if (typeof props.locationStrategy === 'function') {\n updateLocation.value = props.locationStrategy(data, props, contentStyles)?.updateLocation\n } else {\n updateLocation.value = locationStrategies[props.locationStrategy](data, props, contentStyles)?.updateLocation\n }\n })\n }\n\n function onResize (e: Event) {\n updateLocation.value?.(e)\n }\n\n function onVisualResize (e: Event) {\n updateLocation.value?.(e)\n }\n\n function onVisualScroll (e: Event) {\n updateLocation.value?.(e)\n }\n\n return {\n contentStyles,\n updateLocation,\n }\n}\n\nfunction staticLocationStrategy () {\n // TODO\n}\n\n/** Get size of element ignoring max-width/max-height */\nfunction getIntrinsicSize (el: HTMLElement, isRtl: boolean) {\n // const scrollables = new Map<Element, [number, number]>()\n // el.querySelectorAll('*').forEach(el => {\n // const x = el.scrollLeft\n // const y = el.scrollTop\n // if (x || y) {\n // scrollables.set(el, [x, y])\n // }\n // })\n\n // const initialMaxWidth = el.style.maxWidth\n // const initialMaxHeight = el.style.maxHeight\n // el.style.removeProperty('max-width')\n // el.style.removeProperty('max-height')\n\n /* eslint-disable-next-line sonarjs/prefer-immediate-return */\n const contentBox = nullifyTransforms(el)\n\n if (isRtl) {\n contentBox.x += parseFloat(el.style.right || 0)\n } else {\n contentBox.x -= parseFloat(el.style.left || 0)\n }\n contentBox.y -= parseFloat(el.style.top || 0)\n\n // el.style.maxWidth = initialMaxWidth\n // el.style.maxHeight = initialMaxHeight\n // scrollables.forEach((position, el) => {\n // el.scrollTo(...position)\n // })\n\n return contentBox\n}\n\nfunction connectedLocationStrategy (data: LocationStrategyData, props: StrategyProps, contentStyles: Ref<Record<string, string>>) {\n const activatorFixed = Array.isArray(data.target.value) || isFixedPosition(data.target.value)\n if (activatorFixed) {\n Object.assign(contentStyles.value, {\n position: 'fixed',\n top: 0,\n [data.isRtl.value ? 'right' : 'left']: 0,\n })\n }\n\n const { preferredAnchor, preferredOrigin } = destructComputed(() => {\n const parsedAnchor = parseAnchor(props.location, data.isRtl.value)\n const parsedOrigin =\n props.origin === 'overlap' ? parsedAnchor\n : props.origin === 'auto' ? flipSide(parsedAnchor)\n : parseAnchor(props.origin, data.isRtl.value)\n\n // Some combinations of props may produce an invalid origin\n if (parsedAnchor.side === parsedOrigin.side && parsedAnchor.align === flipAlign(parsedOrigin).align) {\n return {\n preferredAnchor: flipCorner(parsedAnchor),\n preferredOrigin: flipCorner(parsedOrigin),\n }\n } else {\n return {\n preferredAnchor: parsedAnchor,\n preferredOrigin: parsedOrigin,\n }\n }\n })\n\n const [minWidth, minHeight, maxWidth, maxHeight] =\n (['minWidth', 'minHeight', 'maxWidth', 'maxHeight'] as const).map(key => {\n return computed(() => {\n const val = parseFloat(props[key]!)\n return isNaN(val) ? Infinity : val\n })\n })\n\n const offset = computed(() => {\n if (Array.isArray(props.offset)) {\n return props.offset\n }\n if (typeof props.offset === 'string') {\n const offset = props.offset.split(' ').map(parseFloat)\n if (offset.length < 2) offset.push(0)\n return offset\n }\n return typeof props.offset === 'number' ? [props.offset, 0] : [0, 0]\n })\n\n let observe = false\n let lastFrame = -1\n const flipped = new CircularBuffer<{ x: boolean, y: boolean }>(4)\n const observer = new ResizeObserver(() => {\n if (!observe) return\n\n // Detect consecutive frames\n requestAnimationFrame(newTime => {\n if (newTime !== lastFrame) flipped.clear()\n requestAnimationFrame(newNewTime => {\n lastFrame = newNewTime\n })\n })\n\n if (flipped.isFull) {\n const values = flipped.values()\n if (\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 watch([data.target, data.contentEl], ([newTarget, newContentEl], [oldTarget, oldContentEl]) => {\n if (oldTarget && !Array.isArray(oldTarget)) observer.unobserve(oldTarget)\n if (newTarget && !Array.isArray(newTarget)) observer.observe(newTarget)\n\n if (oldContentEl) observer.unobserve(oldContentEl)\n if (newContentEl) observer.observe(newContentEl)\n }, {\n immediate: true,\n })\n\n onScopeDispose(() => {\n observer.disconnect()\n })\n\n let targetBox = new Box({ x: 0, y: 0, width: 0, height: 0 })\n\n // eslint-disable-next-line max-statements\n function updateLocation () {\n observe = false\n requestAnimationFrame(() => observe = true)\n\n if (!data.target.value || !data.contentEl.value) return\n\n if (\n Array.isArray(data.target.value) ||\n data.target.value.offsetParent ||\n data.target.value.getClientRects().length\n ) {\n targetBox = getTargetBox(data.target.value)\n } // Otherwise target element is hidden, use last known value\n\n const contentBox = getIntrinsicSize(data.contentEl.value, data.isRtl.value)\n const scrollParents = getScrollParents(data.contentEl.value)\n const viewportMargin = 12\n\n if (!scrollParents.length) {\n scrollParents.push(document.documentElement)\n if (!(data.contentEl.value.style.top && data.contentEl.value.style.left)) {\n contentBox.x -= parseFloat(document.documentElement.style.getPropertyValue('--v-body-scroll-x') || 0)\n contentBox.y -= parseFloat(document.documentElement.style.getPropertyValue('--v-body-scroll-y') || 0)\n }\n }\n\n const viewport = scrollParents.reduce<Box>((box: Box | undefined, el) => {\n const scrollBox = getElementBox(el)\n\n if (box) {\n return new Box({\n x: Math.max(box.left, scrollBox.left),\n y: Math.max(box.top, scrollBox.top),\n width: Math.min(box.right, scrollBox.right) - Math.max(box.left, scrollBox.left),\n height: Math.min(box.bottom, scrollBox.bottom) - Math.max(box.top, scrollBox.top),\n })\n }\n return scrollBox\n }, undefined!)\n viewport.x += viewportMargin\n viewport.y += viewportMargin\n viewport.width -= viewportMargin * 2\n viewport.height -= viewportMargin * 2\n\n let placement = {\n anchor: preferredAnchor.value,\n origin: preferredOrigin.value,\n }\n\n function checkOverflow (_placement: typeof placement) {\n const box = new Box(contentBox)\n const targetPoint = anchorToPoint(_placement.anchor, targetBox)\n const contentPoint = anchorToPoint(_placement.origin, box)\n\n let { x, y } = getOffset(targetPoint, contentPoint)\n\n switch (_placement.anchor.side) {\n case 'top': y -= offset.value[0]; break\n case 'bottom': y += offset.value[0]; break\n case 'left': x -= offset.value[0]; break\n case 'right': x += offset.value[0]; break\n }\n\n switch (_placement.anchor.align) {\n case 'top': y -= offset.value[1]; break\n case 'bottom': y += offset.value[1]; break\n case 'left': x -= offset.value[1]; break\n case 'right': x += offset.value[1]; break\n }\n\n box.x += x\n box.y += y\n\n box.width = Math.min(box.width, maxWidth.value)\n box.height = Math.min(box.height, maxHeight.value)\n\n const overflows = getOverflow(box, viewport)\n\n return { overflows, x, y }\n }\n\n let x = 0; let y = 0\n const available = { x: 0, y: 0 }\n const flipped = { x: false, y: false }\n let resets = -1\n while (true) {\n if (resets++ > 10) {\n consoleError('Infinite loop detected in connectedLocationStrategy')\n break\n }\n\n const { x: _x, y: _y, overflows } = checkOverflow(placement)\n\n x += _x\n y += _y\n\n contentBox.x += _x\n contentBox.y += _y\n\n // flip\n {\n const axis = getAxis(placement.anchor)\n const hasOverflowX = overflows.x.before || overflows.x.after\n const hasOverflowY = overflows.y.before || overflows.y.after\n\n let reset = false\n ;['x', 'y'].forEach(key => {\n if (\n (key === 'x' && hasOverflowX && !flipped.x) ||\n (key === 'y' && hasOverflowY && !flipped.y)\n ) {\n const newPlacement = { anchor: { ...placement.anchor }, origin: { ...placement.origin } }\n const flip = key === 'x'\n ? axis === 'y' ? flipAlign : flipSide\n : axis === 'y' ? flipSide : flipAlign\n newPlacement.anchor = flip(newPlacement.anchor)\n newPlacement.origin = flip(newPlacement.origin)\n const { overflows: newOverflows } = checkOverflow(newPlacement)\n if (\n (newOverflows[key].before <= overflows[key].before &&\n newOverflows[key].after <= overflows[key].after) ||\n (newOverflows[key].before + newOverflows[key].after <\n (overflows[key].before + overflows[key].after) / 2)\n ) {\n placement = newPlacement\n reset = flipped[key] = true\n }\n }\n })\n if (reset) continue\n }\n\n // shift\n if (overflows.x.before) {\n x += overflows.x.before\n contentBox.x += overflows.x.before\n }\n if (overflows.x.after) {\n x -= overflows.x.after\n contentBox.x -= overflows.x.after\n }\n if (overflows.y.before) {\n y += overflows.y.before\n contentBox.y += overflows.y.before\n }\n if (overflows.y.after) {\n y -= overflows.y.after\n contentBox.y -= overflows.y.after\n }\n\n // size\n {\n const overflows = getOverflow(contentBox, viewport)\n available.x = viewport.width - overflows.x.before - overflows.x.after\n available.y = viewport.height - overflows.y.before - overflows.y.after\n\n x += overflows.x.before\n contentBox.x += overflows.x.before\n y += overflows.y.before\n contentBox.y += overflows.y.before\n }\n\n break\n }\n\n const axis = getAxis(placement.anchor)\n\n Object.assign(contentStyles.value, {\n '--v-overlay-anchor-origin': `${placement.anchor.side} ${placement.anchor.align}`,\n transformOrigin: `${placement.origin.side} ${placement.origin.align}`,\n // transform: `translate(${pixelRound(x)}px, ${pixelRound(y)}px)`,\n top: convertToUnit(pixelRound(y)),\n left: data.isRtl.value ? undefined : convertToUnit(pixelRound(x)),\n right: data.isRtl.value ? convertToUnit(pixelRound(-x)) : undefined,\n minWidth: convertToUnit(axis === 'y' ? Math.min(minWidth.value, targetBox.width) : minWidth.value),\n maxWidth: convertToUnit(pixelCeil(clamp(available.x, minWidth.value === Infinity ? 0 : minWidth.value, maxWidth.value))),\n maxHeight: convertToUnit(pixelCeil(clamp(available.y, minHeight.value === Infinity ? 0 : minHeight.value, maxHeight.value))),\n })\n\n return {\n available,\n contentBox,\n flipped,\n }\n }\n\n watch(\n () => [\n preferredAnchor.value,\n preferredOrigin.value,\n props.offset,\n props.minWidth,\n props.minHeight,\n props.maxWidth,\n props.maxHeight,\n ],\n () => updateLocation(),\n )\n\n nextTick(() => {\n const result = updateLocation()\n\n // TODO: overflowing content should only require a single updateLocation call\n // Icky hack to make sure the content is positioned consistently\n if (!result) return\n const { available, contentBox } = result\n if (contentBox.height > available.y) {\n requestAnimationFrame(() => {\n updateLocation()\n requestAnimationFrame(() => {\n updateLocation()\n })\n })\n }\n })\n\n return { updateLocation }\n}\n\nfunction pixelRound (val: number) {\n return Math.round(val * devicePixelRatio) / devicePixelRatio\n}\n\nfunction pixelCeil (val: number) {\n return Math.ceil(val * devicePixelRatio) / devicePixelRatio\n}\n"],"mappings":"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","ignoreList":[]}
|
1
|
+
{"version":3,"file":"locationStrategies.js","names":["useToggleScope","computed","nextTick","onScopeDispose","ref","watch","anchorToPoint","getOffset","CircularBuffer","clamp","consoleError","convertToUnit","deepEqual","destructComputed","flipAlign","flipCorner","flipSide","getAxis","getScrollParents","IN_BROWSER","isFixedPosition","nullifyTransforms","parseAnchor","propsFactory","Box","getElementBox","getOverflow","getTargetBox","locationStrategies","static","staticLocationStrategy","connected","connectedLocationStrategy","makeLocationStrategyProps","locationStrategy","type","String","Function","default","validator","val","location","origin","offset","Number","Array","useLocationStrategies","props","data","contentStyles","updateLocation","isActive","value","reset","window","removeEventListener","onResize","visualViewport","onVisualResize","onVisualScroll","undefined","addEventListener","passive","e","getIntrinsicSize","el","isRtl","contentBox","x","parseFloat","style","right","left","y","top","activatorFixed","isArray","target","Object","assign","position","preferredAnchor","preferredOrigin","parsedAnchor","parsedOrigin","side","align","minWidth","minHeight","maxWidth","maxHeight","map","key","isNaN","Infinity","split","length","push","observe","lastFrame","flipped","observer","ResizeObserver","requestAnimationFrame","newTime","clear","newNewTime","isFull","values","at","result","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 maxHeight?: number | string\n maxWidth?: number | string\n minHeight?: number | string\n minWidth?: number | string\n}\n\nexport const makeLocationStrategyProps = propsFactory({\n locationStrategy: {\n type: [String, Function] as PropType<StrategyProps['locationStrategy']>,\n default: 'static',\n validator: (val: any) => typeof val === 'function' || val in locationStrategies,\n },\n location: {\n type: String as PropType<StrategyProps['location']>,\n default: 'bottom',\n },\n origin: {\n type: String as PropType<StrategyProps['origin']>,\n default: 'auto',\n },\n offset: [Number, String, Array] as PropType<StrategyProps['offset']>,\n}, 'VOverlay-location-strategies')\n\nexport function useLocationStrategies (\n props: StrategyProps,\n data: LocationStrategyData\n) {\n const contentStyles = ref({})\n const updateLocation = ref<(e: Event) => void>()\n\n if (IN_BROWSER) {\n useToggleScope(() => !!(data.isActive.value && props.locationStrategy), reset => {\n watch(() => props.locationStrategy, reset)\n onScopeDispose(() => {\n window.removeEventListener('resize', onResize)\n visualViewport?.removeEventListener('resize', onVisualResize)\n visualViewport?.removeEventListener('scroll', onVisualScroll)\n updateLocation.value = undefined\n })\n\n window.addEventListener('resize', onResize, { passive: true })\n visualViewport?.addEventListener('resize', onVisualResize, { passive: true })\n visualViewport?.addEventListener('scroll', onVisualScroll, { passive: true })\n\n if (typeof props.locationStrategy === 'function') {\n updateLocation.value = props.locationStrategy(data, props, contentStyles)?.updateLocation\n } else {\n updateLocation.value = locationStrategies[props.locationStrategy](data, props, contentStyles)?.updateLocation\n }\n })\n }\n\n function onResize (e: Event) {\n updateLocation.value?.(e)\n }\n\n function onVisualResize (e: Event) {\n updateLocation.value?.(e)\n }\n\n function onVisualScroll (e: Event) {\n updateLocation.value?.(e)\n }\n\n return {\n contentStyles,\n updateLocation,\n }\n}\n\nfunction staticLocationStrategy () {\n // TODO\n}\n\n/** Get size of element ignoring max-width/max-height */\nfunction getIntrinsicSize (el: HTMLElement, isRtl: boolean) {\n // const scrollables = new Map<Element, [number, number]>()\n // el.querySelectorAll('*').forEach(el => {\n // const x = el.scrollLeft\n // const y = el.scrollTop\n // if (x || y) {\n // scrollables.set(el, [x, y])\n // }\n // })\n\n // const initialMaxWidth = el.style.maxWidth\n // const initialMaxHeight = el.style.maxHeight\n // el.style.removeProperty('max-width')\n // el.style.removeProperty('max-height')\n\n /* eslint-disable-next-line sonarjs/prefer-immediate-return */\n const contentBox = nullifyTransforms(el)\n\n if (isRtl) {\n contentBox.x += parseFloat(el.style.right || 0)\n } else {\n contentBox.x -= parseFloat(el.style.left || 0)\n }\n contentBox.y -= parseFloat(el.style.top || 0)\n\n // el.style.maxWidth = initialMaxWidth\n // el.style.maxHeight = initialMaxHeight\n // scrollables.forEach((position, el) => {\n // el.scrollTo(...position)\n // })\n\n return contentBox\n}\n\nfunction connectedLocationStrategy (data: LocationStrategyData, props: StrategyProps, contentStyles: Ref<Record<string, string>>) {\n const activatorFixed = Array.isArray(data.target.value) || isFixedPosition(data.target.value)\n if (activatorFixed) {\n Object.assign(contentStyles.value, {\n position: 'fixed',\n top: 0,\n [data.isRtl.value ? 'right' : 'left']: 0,\n })\n }\n\n const { preferredAnchor, preferredOrigin } = destructComputed(() => {\n const parsedAnchor = parseAnchor(props.location, data.isRtl.value)\n const parsedOrigin =\n props.origin === 'overlap' ? parsedAnchor\n : props.origin === 'auto' ? flipSide(parsedAnchor)\n : parseAnchor(props.origin, data.isRtl.value)\n\n // Some combinations of props may produce an invalid origin\n if (parsedAnchor.side === parsedOrigin.side && parsedAnchor.align === flipAlign(parsedOrigin).align) {\n return {\n preferredAnchor: flipCorner(parsedAnchor),\n preferredOrigin: flipCorner(parsedOrigin),\n }\n } else {\n return {\n preferredAnchor: parsedAnchor,\n preferredOrigin: parsedOrigin,\n }\n }\n })\n\n const [minWidth, minHeight, maxWidth, maxHeight] =\n (['minWidth', 'minHeight', 'maxWidth', 'maxHeight'] as const).map(key => {\n return computed(() => {\n const val = parseFloat(props[key]!)\n return isNaN(val) ? Infinity : val\n })\n })\n\n const offset = computed(() => {\n if (Array.isArray(props.offset)) {\n return props.offset\n }\n if (typeof props.offset === 'string') {\n const offset = props.offset.split(' ').map(parseFloat)\n if (offset.length < 2) offset.push(0)\n return offset\n }\n return typeof props.offset === 'number' ? [props.offset, 0] : [0, 0]\n })\n\n let observe = false\n let lastFrame = -1\n const flipped = new CircularBuffer<{ x: boolean, y: boolean }>(4)\n const observer = new ResizeObserver(() => {\n if (!observe) return\n\n // Detect consecutive frames\n requestAnimationFrame(newTime => {\n if (newTime !== lastFrame) flipped.clear()\n requestAnimationFrame(newNewTime => {\n lastFrame = newNewTime\n })\n })\n\n if (flipped.isFull) {\n const values = flipped.values()\n if (\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 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":[]}
|
@@ -3,6 +3,7 @@ export interface ScrollStrategyData {
|
|
3
3
|
root: Ref<HTMLElement | undefined>;
|
4
4
|
contentEl: Ref<HTMLElement | undefined>;
|
5
5
|
targetEl: Ref<HTMLElement | undefined>;
|
6
|
+
target: Ref<HTMLElement | [x: number, y: number] | undefined>;
|
6
7
|
isActive: Ref<boolean>;
|
7
8
|
updateLocation: Ref<((e: Event) => void) | undefined>;
|
8
9
|
}
|
@@ -39,11 +39,12 @@ function closeScrollStrategy(data) {
|
|
39
39
|
function onScroll(e) {
|
40
40
|
data.isActive.value = false;
|
41
41
|
}
|
42
|
-
bindScroll(data.
|
42
|
+
bindScroll(data.target.value ?? data.contentEl.value, onScroll);
|
43
43
|
}
|
44
44
|
function blockScrollStrategy(data, props) {
|
45
45
|
const offsetParent = data.root.value?.offsetParent;
|
46
|
-
const
|
46
|
+
const target = Array.isArray(data.target.value) ? document.elementFromPoint(...data.target.value) : data.target.value;
|
47
|
+
const scrollElements = [...new Set([...getScrollParents(target, props.contained ? offsetParent : undefined), ...getScrollParents(data.contentEl.value, props.contained ? offsetParent : undefined)])].filter(el => !el.classList.contains('v-overlay-scroll-blocked'));
|
47
48
|
const scrollbarWidth = window.innerWidth - document.documentElement.offsetWidth;
|
48
49
|
const scrollableParent = (el => hasScrollbar(el) && el)(offsetParent || document.documentElement);
|
49
50
|
if (scrollableParent) {
|
@@ -90,7 +91,7 @@ function repositionScrollStrategy(data, props, scope) {
|
|
90
91
|
}
|
91
92
|
ric = (typeof requestIdleCallback === 'undefined' ? cb => cb() : requestIdleCallback)(() => {
|
92
93
|
scope.run(() => {
|
93
|
-
bindScroll(data.
|
94
|
+
bindScroll(data.target.value ?? data.contentEl.value, e => {
|
94
95
|
if (slow) {
|
95
96
|
// If the position calculation is slow,
|
96
97
|
// defer updates until scrolling is finished.
|
@@ -115,7 +116,8 @@ function repositionScrollStrategy(data, props, scope) {
|
|
115
116
|
}
|
116
117
|
|
117
118
|
/** @private */
|
118
|
-
function bindScroll(
|
119
|
+
function bindScroll(target, onScroll) {
|
120
|
+
const el = Array.isArray(target) ? document.elementFromPoint(...target) : target;
|
119
121
|
const scrollElements = [document, ...getScrollParents(el)];
|
120
122
|
scrollElements.forEach(el => {
|
121
123
|
el.addEventListener('scroll', onScroll, {
|