vuetify 3.3.15 → 3.4.0-alpha.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/json/attributes.json +111 -11
- package/dist/json/importMap.json +4 -4
- package/dist/json/tags.json +25 -0
- package/dist/json/web-types.json +263 -18
- package/dist/vuetify-labs.css +1558 -518
- package/dist/vuetify-labs.d.ts +499 -179
- package/dist/vuetify-labs.esm.js +264 -73
- package/dist/vuetify-labs.esm.js.map +1 -1
- package/dist/vuetify-labs.js +263 -72
- package/dist/vuetify-labs.min.css +2 -2
- package/dist/vuetify.css +1080 -40
- package/dist/vuetify.d.ts +484 -170
- package/dist/vuetify.esm.js +264 -73
- package/dist/vuetify.esm.js.map +1 -1
- package/dist/vuetify.js +263 -72
- package/dist/vuetify.js.map +1 -1
- package/dist/vuetify.min.css +2 -2
- package/dist/vuetify.min.js +914 -895
- package/dist/vuetify.min.js.map +1 -1
- package/lib/components/VAutocomplete/index.d.mts +20 -14
- package/lib/components/VAvatar/VAvatar.mjs +2 -1
- package/lib/components/VAvatar/VAvatar.mjs.map +1 -1
- package/lib/components/VAvatar/index.d.mts +6 -0
- package/lib/components/VBanner/VBanner.mjs +5 -3
- package/lib/components/VBanner/VBanner.mjs.map +1 -1
- package/lib/components/VBanner/index.d.mts +10 -0
- package/lib/components/VBreadcrumbs/VBreadcrumbs.mjs +9 -4
- package/lib/components/VBreadcrumbs/VBreadcrumbs.mjs.map +1 -1
- package/lib/components/VBreadcrumbs/index.d.mts +28 -2
- package/lib/components/VCarousel/index.d.mts +26 -0
- package/lib/components/VCheckbox/index.d.mts +12 -0
- package/lib/components/VColorPicker/VColorPickerPreview.css +5 -0
- package/lib/components/VColorPicker/VColorPickerPreview.mjs +28 -2
- package/lib/components/VColorPicker/VColorPickerPreview.mjs.map +1 -1
- package/lib/components/VColorPicker/VColorPickerPreview.sass +4 -0
- package/lib/components/VColorPicker/_variables.scss +1 -0
- package/lib/components/VCombobox/index.d.mts +20 -14
- package/lib/components/VDialog/index.d.mts +41 -20
- package/lib/components/VField/index.d.mts +4 -4
- package/lib/components/VFileInput/index.d.mts +4 -4
- package/lib/components/VImg/VImg.mjs +13 -1
- package/lib/components/VImg/VImg.mjs.map +1 -1
- package/lib/components/VImg/index.d.mts +26 -0
- package/lib/components/VList/index.d.mts +12 -12
- package/lib/components/VMenu/index.d.mts +41 -20
- package/lib/components/VNavigationDrawer/VNavigationDrawer.mjs +5 -3
- package/lib/components/VNavigationDrawer/VNavigationDrawer.mjs.map +1 -1
- package/lib/components/VNavigationDrawer/index.d.mts +10 -0
- package/lib/components/VOverlay/VOverlay.mjs +9 -4
- package/lib/components/VOverlay/VOverlay.mjs.map +1 -1
- package/lib/components/VOverlay/index.d.mts +17 -8
- package/lib/components/VOverlay/locationStrategies.mjs +9 -9
- package/lib/components/VOverlay/locationStrategies.mjs.map +1 -1
- package/lib/components/VOverlay/scrollStrategies.mjs +3 -3
- package/lib/components/VOverlay/scrollStrategies.mjs.map +1 -1
- package/lib/components/VOverlay/useActivator.mjs +50 -21
- package/lib/components/VOverlay/useActivator.mjs.map +1 -1
- package/lib/components/VRadio/index.d.mts +6 -0
- package/lib/components/VRangeSlider/VRangeSlider.mjs +4 -2
- package/lib/components/VRangeSlider/VRangeSlider.mjs.map +1 -1
- package/lib/components/VRangeSlider/index.d.mts +14 -0
- package/lib/components/VSelect/index.d.mts +20 -14
- package/lib/components/VSelectionControl/VSelectionControl.mjs +3 -1
- package/lib/components/VSelectionControl/VSelectionControl.mjs.map +1 -1
- package/lib/components/VSelectionControl/index.d.mts +6 -0
- package/lib/components/VSlideGroup/VSlideGroup.mjs +5 -3
- package/lib/components/VSlideGroup/VSlideGroup.mjs.map +1 -1
- package/lib/components/VSlideGroup/index.d.mts +10 -0
- package/lib/components/VSlider/VSlider.mjs +2 -1
- package/lib/components/VSlider/VSlider.mjs.map +1 -1
- package/lib/components/VSlider/index.d.mts +14 -0
- package/lib/components/VSlider/slider.mjs +5 -1
- package/lib/components/VSlider/slider.mjs.map +1 -1
- package/lib/components/VSnackbar/VSnackbar.css +9 -0
- package/lib/components/VSnackbar/VSnackbar.mjs +65 -6
- package/lib/components/VSnackbar/VSnackbar.mjs.map +1 -1
- package/lib/components/VSnackbar/VSnackbar.sass +9 -0
- package/lib/components/VSnackbar/index.d.mts +52 -25
- package/lib/components/VSwitch/index.d.mts +6 -0
- package/lib/components/VTabs/index.d.mts +10 -0
- package/lib/components/VTextField/index.d.mts +16 -16
- package/lib/components/VTextarea/index.d.mts +4 -4
- package/lib/components/VTooltip/index.d.mts +41 -20
- package/lib/components/index.d.mts +455 -168
- package/lib/components/transitions/dialog-transition.mjs +4 -3
- package/lib/components/transitions/dialog-transition.mjs.map +1 -1
- package/lib/components/transitions/index.d.mts +6 -6
- package/lib/composables/directiveComponent.mjs +69 -0
- package/lib/composables/directiveComponent.mjs.map +1 -0
- package/lib/composables/display.mjs +23 -3
- package/lib/composables/display.mjs.map +1 -1
- package/lib/composables/resizeObserver.mjs.map +1 -1
- package/lib/composables/theme.mjs +7 -7
- package/lib/composables/theme.mjs.map +1 -1
- package/lib/entry-bundler.mjs +1 -1
- package/lib/entry-bundler.mjs.map +1 -1
- package/lib/framework.mjs +1 -1
- package/lib/framework.mjs.map +1 -1
- package/lib/iconsets/fa.mjs +2 -1
- package/lib/iconsets/fa.mjs.map +1 -1
- package/lib/iconsets/fa4.mjs +2 -1
- package/lib/iconsets/fa4.mjs.map +1 -1
- package/lib/iconsets/md.mjs +2 -1
- package/lib/iconsets/md.mjs.map +1 -1
- package/lib/iconsets/mdi-svg.mjs +2 -1
- package/lib/iconsets/mdi-svg.mjs.map +1 -1
- package/lib/iconsets/mdi.mjs +2 -1
- package/lib/iconsets/mdi.mjs.map +1 -1
- package/lib/index.d.mts +33 -2
- package/lib/labs/VBottomSheet/index.d.mts +14 -8
- package/lib/labs/VDateInput/index.d.mts +4 -4
- package/lib/labs/VOtpInput/index.d.mts +4 -4
- package/lib/labs/components.d.mts +18 -12
- package/lib/styles/main.css +1026 -0
- package/lib/styles/settings/_utilities.scss +20 -0
- package/lib/util/box.mjs +12 -0
- package/lib/util/box.mjs.map +1 -1
- package/lib/util/globals.mjs +1 -0
- package/lib/util/globals.mjs.map +1 -1
- package/lib/util/helpers.mjs +9 -1
- package/lib/util/helpers.mjs.map +1 -1
- package/package.json +2 -2
|
@@ -30,7 +30,7 @@ interface FilterPropsOptions<PropsOptions extends Readonly<ComponentPropsOptions
|
|
|
30
30
|
|
|
31
31
|
interface LocationStrategyData {
|
|
32
32
|
contentEl: Ref<HTMLElement | undefined>;
|
|
33
|
-
|
|
33
|
+
target: Ref<HTMLElement | [x: number, y: number] | undefined>;
|
|
34
34
|
isActive: Ref<boolean>;
|
|
35
35
|
isRtl: Ref<boolean>;
|
|
36
36
|
}
|
|
@@ -65,7 +65,7 @@ declare function connectedLocationStrategy(data: LocationStrategyData, props: St
|
|
|
65
65
|
interface ScrollStrategyData {
|
|
66
66
|
root: Ref<HTMLElement | undefined>;
|
|
67
67
|
contentEl: Ref<HTMLElement | undefined>;
|
|
68
|
-
|
|
68
|
+
targetEl: Ref<HTMLElement | undefined>;
|
|
69
69
|
isActive: Ref<boolean>;
|
|
70
70
|
updateLocation: Ref<((e: Event) => void) | undefined>;
|
|
71
71
|
}
|
|
@@ -127,6 +127,7 @@ declare const VDialog: {
|
|
|
127
127
|
maxWidth?: string | number | undefined;
|
|
128
128
|
minHeight?: string | number | undefined;
|
|
129
129
|
minWidth?: string | number | undefined;
|
|
130
|
+
target?: Element | "cursor" | "parent" | (string & {}) | vue.ComponentPublicInstance | [x: number, y: number] | undefined;
|
|
130
131
|
class?: any;
|
|
131
132
|
$children?: vue.VNodeChild | {
|
|
132
133
|
default?: ((arg: {
|
|
@@ -195,7 +196,7 @@ declare const VDialog: {
|
|
|
195
196
|
[key: string]: any;
|
|
196
197
|
}>) => void)[] | undefined;
|
|
197
198
|
"onUpdate:modelValue"?: ((value: boolean) => any) | undefined;
|
|
198
|
-
activator?:
|
|
199
|
+
activator?: Element | "parent" | (string & {}) | vue.ComponentPublicInstance | undefined;
|
|
199
200
|
"v-slot:activator"?: false | ((arg: {
|
|
200
201
|
isActive: boolean;
|
|
201
202
|
props: Record<string, any>;
|
|
@@ -265,10 +266,11 @@ declare const VDialog: {
|
|
|
265
266
|
maxWidth?: string | number | undefined;
|
|
266
267
|
minHeight?: string | number | undefined;
|
|
267
268
|
minWidth?: string | number | undefined;
|
|
269
|
+
target?: Element | "cursor" | "parent" | (string & {}) | vue.ComponentPublicInstance | [x: number, y: number] | undefined;
|
|
268
270
|
class?: any;
|
|
269
271
|
theme?: string | undefined;
|
|
270
272
|
contentClass?: any;
|
|
271
|
-
activator?:
|
|
273
|
+
activator?: Element | "parent" | (string & {}) | vue.ComponentPublicInstance | undefined;
|
|
272
274
|
closeDelay?: string | number | undefined;
|
|
273
275
|
openDelay?: string | number | undefined;
|
|
274
276
|
openOnClick?: boolean | undefined;
|
|
@@ -344,6 +346,7 @@ declare const VDialog: {
|
|
|
344
346
|
maxWidth?: string | number | undefined;
|
|
345
347
|
minHeight?: string | number | undefined;
|
|
346
348
|
minWidth?: string | number | undefined;
|
|
349
|
+
target?: Element | "cursor" | "parent" | (string & {}) | vue.ComponentPublicInstance | [x: number, y: number] | undefined;
|
|
347
350
|
class?: any;
|
|
348
351
|
onAfterLeave?: (() => any) | undefined;
|
|
349
352
|
$children?: vue.VNodeChild | {
|
|
@@ -413,7 +416,7 @@ declare const VDialog: {
|
|
|
413
416
|
[key: string]: any;
|
|
414
417
|
}>) => void)[] | undefined;
|
|
415
418
|
"onUpdate:modelValue"?: ((value: boolean) => any) | undefined;
|
|
416
|
-
activator?:
|
|
419
|
+
activator?: Element | "parent" | (string & {}) | vue.ComponentPublicInstance | undefined;
|
|
417
420
|
"v-slot:activator"?: false | ((arg: {
|
|
418
421
|
isActive: boolean;
|
|
419
422
|
props: Record<string, any>;
|
|
@@ -480,10 +483,11 @@ declare const VDialog: {
|
|
|
480
483
|
maxWidth?: string | number | undefined;
|
|
481
484
|
minHeight?: string | number | undefined;
|
|
482
485
|
minWidth?: string | number | undefined;
|
|
486
|
+
target?: Element | "cursor" | "parent" | (string & {}) | vue.ComponentPublicInstance | [x: number, y: number] | undefined;
|
|
483
487
|
class?: any;
|
|
484
488
|
theme?: string | undefined;
|
|
485
489
|
contentClass?: any;
|
|
486
|
-
activator?:
|
|
490
|
+
activator?: Element | "parent" | (string & {}) | vue.ComponentPublicInstance | undefined;
|
|
487
491
|
closeDelay?: string | number | undefined;
|
|
488
492
|
openDelay?: string | number | undefined;
|
|
489
493
|
openOnClick?: boolean | undefined;
|
|
@@ -525,6 +529,7 @@ declare const VDialog: {
|
|
|
525
529
|
"onClick:outside"?: ((e: MouseEvent) => any) | undefined;
|
|
526
530
|
}, {
|
|
527
531
|
activatorEl: vue.Ref<HTMLElement | undefined>;
|
|
532
|
+
target: vue.ComputedRef<HTMLElement | [x: number, y: number] | undefined>;
|
|
528
533
|
animateClick: () => void;
|
|
529
534
|
contentEl: vue.Ref<HTMLElement | undefined>;
|
|
530
535
|
globalTop: Readonly<vue.Ref<boolean>>;
|
|
@@ -626,10 +631,11 @@ declare const VDialog: {
|
|
|
626
631
|
maxWidth?: string | number | undefined;
|
|
627
632
|
minHeight?: string | number | undefined;
|
|
628
633
|
minWidth?: string | number | undefined;
|
|
634
|
+
target?: Element | "cursor" | "parent" | (string & {}) | vue.ComponentPublicInstance | [x: number, y: number] | undefined;
|
|
629
635
|
class?: any;
|
|
630
636
|
theme?: string | undefined;
|
|
631
637
|
contentClass?: any;
|
|
632
|
-
activator?:
|
|
638
|
+
activator?: Element | "parent" | (string & {}) | vue.ComponentPublicInstance | undefined;
|
|
633
639
|
closeDelay?: string | number | undefined;
|
|
634
640
|
openDelay?: string | number | undefined;
|
|
635
641
|
openOnClick?: boolean | undefined;
|
|
@@ -671,12 +677,13 @@ declare const VDialog: {
|
|
|
671
677
|
"onClick:outside"?: ((e: MouseEvent) => any) | undefined;
|
|
672
678
|
} & vue.ShallowUnwrapRef<{
|
|
673
679
|
activatorEl: vue.Ref<HTMLElement | undefined>;
|
|
680
|
+
target: vue.ComputedRef<HTMLElement | [x: number, y: number] | undefined>;
|
|
674
681
|
animateClick: () => void;
|
|
675
682
|
contentEl: vue.Ref<HTMLElement | undefined>;
|
|
676
683
|
globalTop: Readonly<vue.Ref<boolean>>;
|
|
677
684
|
localTop: vue.ComputedRef<boolean>;
|
|
678
685
|
updateLocation: vue.Ref<((e: Event) => void) | undefined>;
|
|
679
|
-
}> & {} & vue.ComponentCustomProperties & {}, "offset" | "key" | "height" | "width" | "maxHeight" | "maxWidth" | "minHeight" | "minWidth" | "class" | "onAfterLeave" | "$children" | "ref" | "ref_for" | "ref_key" | "theme" | "v-slot:default" | "v-slots" | "contentClass" | "onVnodeBeforeMount" | "onVnodeMounted" | "onVnodeBeforeUpdate" | "onVnodeUpdated" | "onVnodeBeforeUnmount" | "onVnodeUnmounted" | "onUpdate:modelValue" | "activator" | "v-slot:activator" | "closeDelay" | "openDelay" | "contentProps" | "attach" | "onClick:outside" | ("absolute" | "location" | "origin" | "transition" | "zIndex" | "style" | "eager" | "disabled" | "modelValue" | "locationStrategy" | "scrollStrategy" | "activatorProps" | "openOnClick" | "openOnHover" | "openOnFocus" | "closeOnContentClick" | "closeOnBack" | "contained" | "noClickAnimation" | "persistent" | "scrim" | "_disableGlobalStack")>, `$${any}`>, unknown, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, {
|
|
686
|
+
}> & {} & vue.ComponentCustomProperties & {}, "offset" | "key" | "height" | "width" | "maxHeight" | "maxWidth" | "minHeight" | "minWidth" | "target" | "class" | "onAfterLeave" | "$children" | "ref" | "ref_for" | "ref_key" | "theme" | "v-slot:default" | "v-slots" | "contentClass" | "onVnodeBeforeMount" | "onVnodeMounted" | "onVnodeBeforeUpdate" | "onVnodeUpdated" | "onVnodeBeforeUnmount" | "onVnodeUnmounted" | "onUpdate:modelValue" | "activator" | "v-slot:activator" | "closeDelay" | "openDelay" | "contentProps" | "attach" | "onClick:outside" | ("absolute" | "location" | "origin" | "transition" | "zIndex" | "style" | "eager" | "disabled" | "modelValue" | "locationStrategy" | "scrollStrategy" | "activatorProps" | "openOnClick" | "openOnHover" | "openOnFocus" | "closeOnContentClick" | "closeOnBack" | "contained" | "noClickAnimation" | "persistent" | "scrim" | "_disableGlobalStack")>, `$${any}`>, unknown, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, {
|
|
680
687
|
'update:modelValue': (value: boolean) => boolean;
|
|
681
688
|
}, string, {
|
|
682
689
|
absolute: boolean;
|
|
@@ -778,10 +785,11 @@ declare const VDialog: {
|
|
|
778
785
|
maxWidth?: string | number | undefined;
|
|
779
786
|
minHeight?: string | number | undefined;
|
|
780
787
|
minWidth?: string | number | undefined;
|
|
788
|
+
target?: Element | "cursor" | "parent" | (string & {}) | vue.ComponentPublicInstance | [x: number, y: number] | undefined;
|
|
781
789
|
class?: any;
|
|
782
790
|
theme?: string | undefined;
|
|
783
791
|
contentClass?: any;
|
|
784
|
-
activator?:
|
|
792
|
+
activator?: Element | "parent" | (string & {}) | vue.ComponentPublicInstance | undefined;
|
|
785
793
|
closeDelay?: string | number | undefined;
|
|
786
794
|
openDelay?: string | number | undefined;
|
|
787
795
|
openOnClick?: boolean | undefined;
|
|
@@ -857,6 +865,7 @@ declare const VDialog: {
|
|
|
857
865
|
maxWidth?: string | number | undefined;
|
|
858
866
|
minHeight?: string | number | undefined;
|
|
859
867
|
minWidth?: string | number | undefined;
|
|
868
|
+
target?: Element | "cursor" | "parent" | (string & {}) | vue.ComponentPublicInstance | [x: number, y: number] | undefined;
|
|
860
869
|
class?: any;
|
|
861
870
|
onAfterLeave?: (() => any) | undefined;
|
|
862
871
|
$children?: vue.VNodeChild | {
|
|
@@ -926,7 +935,7 @@ declare const VDialog: {
|
|
|
926
935
|
[key: string]: any;
|
|
927
936
|
}>) => void)[] | undefined;
|
|
928
937
|
"onUpdate:modelValue"?: ((value: boolean) => any) | undefined;
|
|
929
|
-
activator?:
|
|
938
|
+
activator?: Element | "parent" | (string & {}) | vue.ComponentPublicInstance | undefined;
|
|
930
939
|
"v-slot:activator"?: false | ((arg: {
|
|
931
940
|
isActive: boolean;
|
|
932
941
|
props: Record<string, any>;
|
|
@@ -993,10 +1002,11 @@ declare const VDialog: {
|
|
|
993
1002
|
maxWidth?: string | number | undefined;
|
|
994
1003
|
minHeight?: string | number | undefined;
|
|
995
1004
|
minWidth?: string | number | undefined;
|
|
1005
|
+
target?: Element | "cursor" | "parent" | (string & {}) | vue.ComponentPublicInstance | [x: number, y: number] | undefined;
|
|
996
1006
|
class?: any;
|
|
997
1007
|
theme?: string | undefined;
|
|
998
1008
|
contentClass?: any;
|
|
999
|
-
activator?:
|
|
1009
|
+
activator?: Element | "parent" | (string & {}) | vue.ComponentPublicInstance | undefined;
|
|
1000
1010
|
closeDelay?: string | number | undefined;
|
|
1001
1011
|
openDelay?: string | number | undefined;
|
|
1002
1012
|
openOnClick?: boolean | undefined;
|
|
@@ -1038,6 +1048,7 @@ declare const VDialog: {
|
|
|
1038
1048
|
"onClick:outside"?: ((e: MouseEvent) => any) | undefined;
|
|
1039
1049
|
}, {
|
|
1040
1050
|
activatorEl: vue.Ref<HTMLElement | undefined>;
|
|
1051
|
+
target: vue.ComputedRef<HTMLElement | [x: number, y: number] | undefined>;
|
|
1041
1052
|
animateClick: () => void;
|
|
1042
1053
|
contentEl: vue.Ref<HTMLElement | undefined>;
|
|
1043
1054
|
globalTop: Readonly<vue.Ref<boolean>>;
|
|
@@ -1139,10 +1150,11 @@ declare const VDialog: {
|
|
|
1139
1150
|
maxWidth?: string | number | undefined;
|
|
1140
1151
|
minHeight?: string | number | undefined;
|
|
1141
1152
|
minWidth?: string | number | undefined;
|
|
1153
|
+
target?: Element | "cursor" | "parent" | (string & {}) | vue.ComponentPublicInstance | [x: number, y: number] | undefined;
|
|
1142
1154
|
class?: any;
|
|
1143
1155
|
theme?: string | undefined;
|
|
1144
1156
|
contentClass?: any;
|
|
1145
|
-
activator?:
|
|
1157
|
+
activator?: Element | "parent" | (string & {}) | vue.ComponentPublicInstance | undefined;
|
|
1146
1158
|
closeDelay?: string | number | undefined;
|
|
1147
1159
|
openDelay?: string | number | undefined;
|
|
1148
1160
|
openOnClick?: boolean | undefined;
|
|
@@ -1184,12 +1196,13 @@ declare const VDialog: {
|
|
|
1184
1196
|
"onClick:outside"?: ((e: MouseEvent) => any) | undefined;
|
|
1185
1197
|
} & vue.ShallowUnwrapRef<{
|
|
1186
1198
|
activatorEl: vue.Ref<HTMLElement | undefined>;
|
|
1199
|
+
target: vue.ComputedRef<HTMLElement | [x: number, y: number] | undefined>;
|
|
1187
1200
|
animateClick: () => void;
|
|
1188
1201
|
contentEl: vue.Ref<HTMLElement | undefined>;
|
|
1189
1202
|
globalTop: Readonly<vue.Ref<boolean>>;
|
|
1190
1203
|
localTop: vue.ComputedRef<boolean>;
|
|
1191
1204
|
updateLocation: vue.Ref<((e: Event) => void) | undefined>;
|
|
1192
|
-
}> & {} & vue.ComponentCustomProperties & {}, "offset" | "key" | "height" | "width" | "maxHeight" | "maxWidth" | "minHeight" | "minWidth" | "class" | "onAfterLeave" | "$children" | "ref" | "ref_for" | "ref_key" | "theme" | "v-slot:default" | "v-slots" | "contentClass" | "onVnodeBeforeMount" | "onVnodeMounted" | "onVnodeBeforeUpdate" | "onVnodeUpdated" | "onVnodeBeforeUnmount" | "onVnodeUnmounted" | "onUpdate:modelValue" | "activator" | "v-slot:activator" | "closeDelay" | "openDelay" | "contentProps" | "attach" | "onClick:outside" | ("absolute" | "location" | "origin" | "transition" | "zIndex" | "style" | "eager" | "disabled" | "modelValue" | "locationStrategy" | "scrollStrategy" | "activatorProps" | "openOnClick" | "openOnHover" | "openOnFocus" | "closeOnContentClick" | "closeOnBack" | "contained" | "noClickAnimation" | "persistent" | "scrim" | "_disableGlobalStack")>, `$${any}`>> & {} & vue.ComponentCustomProperties & {};
|
|
1205
|
+
}> & {} & vue.ComponentCustomProperties & {}, "offset" | "key" | "height" | "width" | "maxHeight" | "maxWidth" | "minHeight" | "minWidth" | "target" | "class" | "onAfterLeave" | "$children" | "ref" | "ref_for" | "ref_key" | "theme" | "v-slot:default" | "v-slots" | "contentClass" | "onVnodeBeforeMount" | "onVnodeMounted" | "onVnodeBeforeUpdate" | "onVnodeUpdated" | "onVnodeBeforeUnmount" | "onVnodeUnmounted" | "onUpdate:modelValue" | "activator" | "v-slot:activator" | "closeDelay" | "openDelay" | "contentProps" | "attach" | "onClick:outside" | ("absolute" | "location" | "origin" | "transition" | "zIndex" | "style" | "eager" | "disabled" | "modelValue" | "locationStrategy" | "scrollStrategy" | "activatorProps" | "openOnClick" | "openOnHover" | "openOnFocus" | "closeOnContentClick" | "closeOnBack" | "contained" | "noClickAnimation" | "persistent" | "scrim" | "_disableGlobalStack")>, `$${any}`>> & {} & vue.ComponentCustomProperties & {};
|
|
1193
1206
|
__isFragment?: undefined;
|
|
1194
1207
|
__isTeleport?: undefined;
|
|
1195
1208
|
__isSuspense?: undefined;
|
|
@@ -1230,10 +1243,11 @@ declare const VDialog: {
|
|
|
1230
1243
|
maxWidth?: string | number | undefined;
|
|
1231
1244
|
minHeight?: string | number | undefined;
|
|
1232
1245
|
minWidth?: string | number | undefined;
|
|
1246
|
+
target?: Element | "cursor" | "parent" | (string & {}) | vue.ComponentPublicInstance | [x: number, y: number] | undefined;
|
|
1233
1247
|
class?: any;
|
|
1234
1248
|
theme?: string | undefined;
|
|
1235
1249
|
contentClass?: any;
|
|
1236
|
-
activator?:
|
|
1250
|
+
activator?: Element | "parent" | (string & {}) | vue.ComponentPublicInstance | undefined;
|
|
1237
1251
|
closeDelay?: string | number | undefined;
|
|
1238
1252
|
openDelay?: string | number | undefined;
|
|
1239
1253
|
openOnClick?: boolean | undefined;
|
|
@@ -1309,6 +1323,7 @@ declare const VDialog: {
|
|
|
1309
1323
|
maxWidth?: string | number | undefined;
|
|
1310
1324
|
minHeight?: string | number | undefined;
|
|
1311
1325
|
minWidth?: string | number | undefined;
|
|
1326
|
+
target?: Element | "cursor" | "parent" | (string & {}) | vue.ComponentPublicInstance | [x: number, y: number] | undefined;
|
|
1312
1327
|
class?: any;
|
|
1313
1328
|
onAfterLeave?: (() => any) | undefined;
|
|
1314
1329
|
$children?: vue.VNodeChild | {
|
|
@@ -1378,7 +1393,7 @@ declare const VDialog: {
|
|
|
1378
1393
|
[key: string]: any;
|
|
1379
1394
|
}>) => void)[] | undefined;
|
|
1380
1395
|
"onUpdate:modelValue"?: ((value: boolean) => any) | undefined;
|
|
1381
|
-
activator?:
|
|
1396
|
+
activator?: Element | "parent" | (string & {}) | vue.ComponentPublicInstance | undefined;
|
|
1382
1397
|
"v-slot:activator"?: false | ((arg: {
|
|
1383
1398
|
isActive: boolean;
|
|
1384
1399
|
props: Record<string, any>;
|
|
@@ -1445,10 +1460,11 @@ declare const VDialog: {
|
|
|
1445
1460
|
maxWidth?: string | number | undefined;
|
|
1446
1461
|
minHeight?: string | number | undefined;
|
|
1447
1462
|
minWidth?: string | number | undefined;
|
|
1463
|
+
target?: Element | "cursor" | "parent" | (string & {}) | vue.ComponentPublicInstance | [x: number, y: number] | undefined;
|
|
1448
1464
|
class?: any;
|
|
1449
1465
|
theme?: string | undefined;
|
|
1450
1466
|
contentClass?: any;
|
|
1451
|
-
activator?:
|
|
1467
|
+
activator?: Element | "parent" | (string & {}) | vue.ComponentPublicInstance | undefined;
|
|
1452
1468
|
closeDelay?: string | number | undefined;
|
|
1453
1469
|
openDelay?: string | number | undefined;
|
|
1454
1470
|
openOnClick?: boolean | undefined;
|
|
@@ -1490,6 +1506,7 @@ declare const VDialog: {
|
|
|
1490
1506
|
"onClick:outside"?: ((e: MouseEvent) => any) | undefined;
|
|
1491
1507
|
}, {
|
|
1492
1508
|
activatorEl: vue.Ref<HTMLElement | undefined>;
|
|
1509
|
+
target: vue.ComputedRef<HTMLElement | [x: number, y: number] | undefined>;
|
|
1493
1510
|
animateClick: () => void;
|
|
1494
1511
|
contentEl: vue.Ref<HTMLElement | undefined>;
|
|
1495
1512
|
globalTop: Readonly<vue.Ref<boolean>>;
|
|
@@ -1591,10 +1608,11 @@ declare const VDialog: {
|
|
|
1591
1608
|
maxWidth?: string | number | undefined;
|
|
1592
1609
|
minHeight?: string | number | undefined;
|
|
1593
1610
|
minWidth?: string | number | undefined;
|
|
1611
|
+
target?: Element | "cursor" | "parent" | (string & {}) | vue.ComponentPublicInstance | [x: number, y: number] | undefined;
|
|
1594
1612
|
class?: any;
|
|
1595
1613
|
theme?: string | undefined;
|
|
1596
1614
|
contentClass?: any;
|
|
1597
|
-
activator?:
|
|
1615
|
+
activator?: Element | "parent" | (string & {}) | vue.ComponentPublicInstance | undefined;
|
|
1598
1616
|
closeDelay?: string | number | undefined;
|
|
1599
1617
|
openDelay?: string | number | undefined;
|
|
1600
1618
|
openOnClick?: boolean | undefined;
|
|
@@ -1636,12 +1654,13 @@ declare const VDialog: {
|
|
|
1636
1654
|
"onClick:outside"?: ((e: MouseEvent) => any) | undefined;
|
|
1637
1655
|
} & vue.ShallowUnwrapRef<{
|
|
1638
1656
|
activatorEl: vue.Ref<HTMLElement | undefined>;
|
|
1657
|
+
target: vue.ComputedRef<HTMLElement | [x: number, y: number] | undefined>;
|
|
1639
1658
|
animateClick: () => void;
|
|
1640
1659
|
contentEl: vue.Ref<HTMLElement | undefined>;
|
|
1641
1660
|
globalTop: Readonly<vue.Ref<boolean>>;
|
|
1642
1661
|
localTop: vue.ComputedRef<boolean>;
|
|
1643
1662
|
updateLocation: vue.Ref<((e: Event) => void) | undefined>;
|
|
1644
|
-
}> & {} & vue.ComponentCustomProperties & {}, "offset" | "key" | "height" | "width" | "maxHeight" | "maxWidth" | "minHeight" | "minWidth" | "class" | "onAfterLeave" | "$children" | "ref" | "ref_for" | "ref_key" | "theme" | "v-slot:default" | "v-slots" | "contentClass" | "onVnodeBeforeMount" | "onVnodeMounted" | "onVnodeBeforeUpdate" | "onVnodeUpdated" | "onVnodeBeforeUnmount" | "onVnodeUnmounted" | "onUpdate:modelValue" | "activator" | "v-slot:activator" | "closeDelay" | "openDelay" | "contentProps" | "attach" | "onClick:outside" | ("absolute" | "location" | "origin" | "transition" | "zIndex" | "style" | "eager" | "disabled" | "modelValue" | "locationStrategy" | "scrollStrategy" | "activatorProps" | "openOnClick" | "openOnHover" | "openOnFocus" | "closeOnContentClick" | "closeOnBack" | "contained" | "noClickAnimation" | "persistent" | "scrim" | "_disableGlobalStack")>, `$${any}`>, unknown, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, {
|
|
1663
|
+
}> & {} & vue.ComponentCustomProperties & {}, "offset" | "key" | "height" | "width" | "maxHeight" | "maxWidth" | "minHeight" | "minWidth" | "target" | "class" | "onAfterLeave" | "$children" | "ref" | "ref_for" | "ref_key" | "theme" | "v-slot:default" | "v-slots" | "contentClass" | "onVnodeBeforeMount" | "onVnodeMounted" | "onVnodeBeforeUpdate" | "onVnodeUpdated" | "onVnodeBeforeUnmount" | "onVnodeUnmounted" | "onUpdate:modelValue" | "activator" | "v-slot:activator" | "closeDelay" | "openDelay" | "contentProps" | "attach" | "onClick:outside" | ("absolute" | "location" | "origin" | "transition" | "zIndex" | "style" | "eager" | "disabled" | "modelValue" | "locationStrategy" | "scrollStrategy" | "activatorProps" | "openOnClick" | "openOnHover" | "openOnFocus" | "closeOnContentClick" | "closeOnBack" | "contained" | "noClickAnimation" | "persistent" | "scrim" | "_disableGlobalStack")>, `$${any}`>, unknown, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, {
|
|
1645
1664
|
'update:modelValue': (value: boolean) => boolean;
|
|
1646
1665
|
}, string, {
|
|
1647
1666
|
absolute: boolean;
|
|
@@ -1747,7 +1766,8 @@ declare const VDialog: {
|
|
|
1747
1766
|
};
|
|
1748
1767
|
closeDelay: (StringConstructor | NumberConstructor)[];
|
|
1749
1768
|
openDelay: (StringConstructor | NumberConstructor)[];
|
|
1750
|
-
|
|
1769
|
+
target: vue.PropType<Element | "cursor" | "parent" | (string & {}) | vue.ComponentPublicInstance | [x: number, y: number] | undefined>;
|
|
1770
|
+
activator: vue.PropType<Element | "parent" | (string & {}) | vue.ComponentPublicInstance | undefined>;
|
|
1751
1771
|
activatorProps: {
|
|
1752
1772
|
type: vue.PropType<Record<string, any>>;
|
|
1753
1773
|
default: () => {};
|
|
@@ -1853,7 +1873,8 @@ declare const VDialog: {
|
|
|
1853
1873
|
};
|
|
1854
1874
|
closeDelay: (StringConstructor | NumberConstructor)[];
|
|
1855
1875
|
openDelay: (StringConstructor | NumberConstructor)[];
|
|
1856
|
-
|
|
1876
|
+
target: vue.PropType<Element | "cursor" | "parent" | (string & {}) | vue.ComponentPublicInstance | [x: number, y: number] | undefined>;
|
|
1877
|
+
activator: vue.PropType<Element | "parent" | (string & {}) | vue.ComponentPublicInstance | undefined>;
|
|
1857
1878
|
activatorProps: {
|
|
1858
1879
|
type: vue.PropType<Record<string, any>>;
|
|
1859
1880
|
default: () => {};
|
|
@@ -132,13 +132,13 @@ declare const VField: {
|
|
|
132
132
|
}>) => void)[] | undefined;
|
|
133
133
|
"onUpdate:modelValue"?: ((val: any) => any) | undefined;
|
|
134
134
|
bgColor?: string | undefined;
|
|
135
|
+
baseColor?: string | undefined;
|
|
135
136
|
appendInnerIcon?: IconValue | undefined;
|
|
136
137
|
prependInnerIcon?: IconValue | undefined;
|
|
137
138
|
'onClick:clear'?: EventProp<[MouseEvent], (args_0: MouseEvent) => any> | undefined;
|
|
138
139
|
'onClick:appendInner'?: EventProp<[MouseEvent], (args_0: MouseEvent) => any> | undefined;
|
|
139
140
|
'onClick:prependInner'?: EventProp<[MouseEvent], (args_0: MouseEvent) => any> | undefined;
|
|
140
141
|
'onUpdate:focused'?: (EventProp<[boolean], (args_0: boolean) => any> & ((focused: boolean) => any)) | undefined;
|
|
141
|
-
baseColor?: string | undefined;
|
|
142
142
|
};
|
|
143
143
|
$attrs: {
|
|
144
144
|
[x: string]: unknown;
|
|
@@ -196,6 +196,7 @@ declare const VField: {
|
|
|
196
196
|
theme?: string | undefined;
|
|
197
197
|
rounded?: string | number | boolean | undefined;
|
|
198
198
|
bgColor?: string | undefined;
|
|
199
|
+
baseColor?: string | undefined;
|
|
199
200
|
appendInnerIcon?: IconValue | undefined;
|
|
200
201
|
prependInnerIcon?: IconValue | undefined;
|
|
201
202
|
'onClick:clear'?: EventProp<[MouseEvent], (args_0: MouseEvent) => any> | undefined;
|
|
@@ -203,7 +204,6 @@ declare const VField: {
|
|
|
203
204
|
'onClick:prependInner'?: EventProp<[MouseEvent], (args_0: MouseEvent) => any> | undefined;
|
|
204
205
|
'onUpdate:focused'?: EventProp<[boolean], (args_0: boolean) => any> | undefined;
|
|
205
206
|
centerAffix?: boolean | undefined;
|
|
206
|
-
baseColor?: string | undefined;
|
|
207
207
|
} & {
|
|
208
208
|
"onUpdate:modelValue"?: ((val: any) => any) | undefined;
|
|
209
209
|
"onUpdate:focused"?: ((focused: boolean) => any) | undefined;
|
|
@@ -293,6 +293,7 @@ declare const VField: {
|
|
|
293
293
|
theme?: string | undefined;
|
|
294
294
|
rounded?: string | number | boolean | undefined;
|
|
295
295
|
bgColor?: string | undefined;
|
|
296
|
+
baseColor?: string | undefined;
|
|
296
297
|
appendInnerIcon?: IconValue | undefined;
|
|
297
298
|
prependInnerIcon?: IconValue | undefined;
|
|
298
299
|
'onClick:clear'?: EventProp<[MouseEvent], (args_0: MouseEvent) => any> | undefined;
|
|
@@ -300,7 +301,6 @@ declare const VField: {
|
|
|
300
301
|
'onClick:prependInner'?: EventProp<[MouseEvent], (args_0: MouseEvent) => any> | undefined;
|
|
301
302
|
'onUpdate:focused'?: EventProp<[boolean], (args_0: boolean) => any> | undefined;
|
|
302
303
|
centerAffix?: boolean | undefined;
|
|
303
|
-
baseColor?: string | undefined;
|
|
304
304
|
} & {
|
|
305
305
|
"onUpdate:modelValue"?: ((val: any) => any) | undefined;
|
|
306
306
|
"onUpdate:focused"?: ((focused: boolean) => any) | undefined;
|
|
@@ -333,6 +333,7 @@ declare const VField: {
|
|
|
333
333
|
theme?: string | undefined;
|
|
334
334
|
rounded?: string | number | boolean | undefined;
|
|
335
335
|
bgColor?: string | undefined;
|
|
336
|
+
baseColor?: string | undefined;
|
|
336
337
|
appendInnerIcon?: IconValue | undefined;
|
|
337
338
|
prependInnerIcon?: IconValue | undefined;
|
|
338
339
|
'onClick:clear'?: EventProp<[MouseEvent], (args_0: MouseEvent) => any> | undefined;
|
|
@@ -340,7 +341,6 @@ declare const VField: {
|
|
|
340
341
|
'onClick:prependInner'?: EventProp<[MouseEvent], (args_0: MouseEvent) => any> | undefined;
|
|
341
342
|
'onUpdate:focused'?: EventProp<[boolean], (args_0: boolean) => any> | undefined;
|
|
342
343
|
centerAffix?: boolean | undefined;
|
|
343
|
-
baseColor?: string | undefined;
|
|
344
344
|
} & {
|
|
345
345
|
"onUpdate:modelValue"?: ((val: any) => any) | undefined;
|
|
346
346
|
"onUpdate:focused"?: ((focused: boolean) => any) | undefined;
|
|
@@ -184,6 +184,7 @@ declare const VFileInput: {
|
|
|
184
184
|
bgColor?: string | undefined;
|
|
185
185
|
appendIcon?: IconValue | undefined;
|
|
186
186
|
"v-slot:loader"?: false | ((arg: LoaderSlotProps) => vue.VNodeChild) | undefined;
|
|
187
|
+
baseColor?: string | undefined;
|
|
187
188
|
"v-slot:label"?: false | ((arg: DefaultInputSlot & {
|
|
188
189
|
label: string | undefined;
|
|
189
190
|
props: Record<string, any>;
|
|
@@ -202,7 +203,6 @@ declare const VFileInput: {
|
|
|
202
203
|
hint?: string | undefined;
|
|
203
204
|
hideDetails?: boolean | "auto" | undefined;
|
|
204
205
|
"v-slot:details"?: false | ((arg: VInputSlot) => vue.VNodeChild) | undefined;
|
|
205
|
-
baseColor?: string | undefined;
|
|
206
206
|
"v-slot:clear"?: false | (() => vue.VNodeChild) | undefined;
|
|
207
207
|
"v-slot:prepend-inner"?: false | ((arg: DefaultInputSlot) => vue.VNodeChild) | undefined;
|
|
208
208
|
"v-slot:append-inner"?: false | ((arg: DefaultInputSlot) => vue.VNodeChild) | undefined;
|
|
@@ -311,6 +311,7 @@ declare const VFileInput: {
|
|
|
311
311
|
rounded?: string | number | boolean | undefined;
|
|
312
312
|
bgColor?: string | undefined;
|
|
313
313
|
appendIcon?: IconValue | undefined;
|
|
314
|
+
baseColor?: string | undefined;
|
|
314
315
|
appendInnerIcon?: IconValue | undefined;
|
|
315
316
|
prependInnerIcon?: IconValue | undefined;
|
|
316
317
|
'onClick:clear'?: EventProp<[MouseEvent], (args_0: MouseEvent) => any> | undefined;
|
|
@@ -324,7 +325,6 @@ declare const VFileInput: {
|
|
|
324
325
|
centerAffix?: boolean | undefined;
|
|
325
326
|
hint?: string | undefined;
|
|
326
327
|
hideDetails?: boolean | "auto" | undefined;
|
|
327
|
-
baseColor?: string | undefined;
|
|
328
328
|
} & {
|
|
329
329
|
$children?: vue.VNodeChild | {
|
|
330
330
|
default?: ((arg: VInputSlot & VFieldSlot) => vue.VNodeChild) | undefined;
|
|
@@ -820,6 +820,7 @@ declare const VFileInput: {
|
|
|
820
820
|
rounded?: string | number | boolean | undefined;
|
|
821
821
|
bgColor?: string | undefined;
|
|
822
822
|
appendIcon?: IconValue | undefined;
|
|
823
|
+
baseColor?: string | undefined;
|
|
823
824
|
appendInnerIcon?: IconValue | undefined;
|
|
824
825
|
prependInnerIcon?: IconValue | undefined;
|
|
825
826
|
'onClick:clear'?: EventProp<[MouseEvent], (args_0: MouseEvent) => any> | undefined;
|
|
@@ -833,7 +834,6 @@ declare const VFileInput: {
|
|
|
833
834
|
centerAffix?: boolean | undefined;
|
|
834
835
|
hint?: string | undefined;
|
|
835
836
|
hideDetails?: boolean | "auto" | undefined;
|
|
836
|
-
baseColor?: string | undefined;
|
|
837
837
|
} & {
|
|
838
838
|
$children?: vue.VNodeChild | {
|
|
839
839
|
default?: ((arg: VInputSlot & VFieldSlot) => vue.VNodeChild) | undefined;
|
|
@@ -1232,6 +1232,7 @@ declare const VFileInput: {
|
|
|
1232
1232
|
rounded?: string | number | boolean | undefined;
|
|
1233
1233
|
bgColor?: string | undefined;
|
|
1234
1234
|
appendIcon?: IconValue | undefined;
|
|
1235
|
+
baseColor?: string | undefined;
|
|
1235
1236
|
appendInnerIcon?: IconValue | undefined;
|
|
1236
1237
|
prependInnerIcon?: IconValue | undefined;
|
|
1237
1238
|
'onClick:clear'?: EventProp<[MouseEvent], (args_0: MouseEvent) => any> | undefined;
|
|
@@ -1245,7 +1246,6 @@ declare const VFileInput: {
|
|
|
1245
1246
|
centerAffix?: boolean | undefined;
|
|
1246
1247
|
hint?: string | undefined;
|
|
1247
1248
|
hideDetails?: boolean | "auto" | undefined;
|
|
1248
|
-
baseColor?: string | undefined;
|
|
1249
1249
|
} & {
|
|
1250
1250
|
$children?: vue.VNodeChild | {
|
|
1251
1251
|
default?: ((arg: VInputSlot & VFieldSlot) => vue.VNodeChild) | undefined;
|
|
@@ -12,6 +12,10 @@ import { convertToUnit, genericComponent, propsFactory, SUPPORTS_INTERSECTION, u
|
|
|
12
12
|
export const makeVImgProps = propsFactory({
|
|
13
13
|
alt: String,
|
|
14
14
|
cover: Boolean,
|
|
15
|
+
draggable: {
|
|
16
|
+
type: [Boolean, String],
|
|
17
|
+
default: undefined
|
|
18
|
+
},
|
|
15
19
|
eager: Boolean,
|
|
16
20
|
gradient: String,
|
|
17
21
|
lazySrc: String,
|
|
@@ -30,6 +34,8 @@ export const makeVImgProps = propsFactory({
|
|
|
30
34
|
type: [String, Object],
|
|
31
35
|
default: ''
|
|
32
36
|
},
|
|
37
|
+
crossorigin: String,
|
|
38
|
+
referrerpolicy: String,
|
|
33
39
|
srcset: String,
|
|
34
40
|
...makeVResponsiveProps(),
|
|
35
41
|
...makeComponentProps(),
|
|
@@ -154,6 +160,9 @@ export const VImg = genericComponent()({
|
|
|
154
160
|
"src": normalisedSrc.value.src,
|
|
155
161
|
"srcset": normalisedSrc.value.srcset,
|
|
156
162
|
"alt": props.alt,
|
|
163
|
+
"crossorigin": props.crossorigin,
|
|
164
|
+
"referrerpolicy": props.referrerpolicy,
|
|
165
|
+
"draggable": props.draggable,
|
|
157
166
|
"sizes": props.sizes,
|
|
158
167
|
"ref": image,
|
|
159
168
|
"onLoad": onLoad,
|
|
@@ -175,7 +184,10 @@ export const VImg = genericComponent()({
|
|
|
175
184
|
default: () => [normalisedSrc.value.lazySrc && state.value !== 'loaded' && _createVNode("img", {
|
|
176
185
|
"class": ['v-img__img', 'v-img__img--preload', containClasses.value],
|
|
177
186
|
"src": normalisedSrc.value.lazySrc,
|
|
178
|
-
"alt": props.alt
|
|
187
|
+
"alt": props.alt,
|
|
188
|
+
"crossorigin": props.crossorigin,
|
|
189
|
+
"referrerpolicy": props.referrerpolicy,
|
|
190
|
+
"draggable": props.draggable
|
|
179
191
|
}, null)]
|
|
180
192
|
});
|
|
181
193
|
const __placeholder = () => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"VImg.mjs","names":["makeVResponsiveProps","VResponsive","makeComponentProps","makeTransitionProps","MaybeTransition","intersect","computed","nextTick","onBeforeMount","ref","shallowRef","vShow","watch","withDirectives","convertToUnit","genericComponent","propsFactory","SUPPORTS_INTERSECTION","useRender","makeVImgProps","alt","String","cover","Boolean","eager","gradient","lazySrc","options","type","Object","default","root","undefined","rootMargin","threshold","sizes","src","srcset","VImg","name","directives","props","emits","loadstart","value","load","error","setup","_ref","emit","slots","currentSrc","image","state","naturalWidth","naturalHeight","normalisedSrc","aspect","Number","aspectRatio","init","val","oldVal","pollForSize","isIntersecting","lazyImg","Image","complete","onError","onLoad","getSrc","img","timer","timeout","arguments","length","poll","clearTimeout","imgHeight","imgWidth","window","setTimeout","endsWith","startsWith","containClasses","__image","_createVNode","sources","transition","__preloadImage","__placeholder","placeholder","__error","__gradient","backgroundImage","isBooted","stop","requestAnimationFrame","responsiveProps","filterProps","_withDirectives","_mergeProps","class","width","style","additional","_Fragment","_resolveDirective","handler","once"],"sources":["../../../src/components/VImg/VImg.tsx"],"sourcesContent":["// Styles\nimport './VImg.sass'\n\n// Components\nimport { makeVResponsiveProps, VResponsive } from '@/components/VResponsive/VResponsive'\n\n// Composables\nimport { makeComponentProps } from '@/composables/component'\nimport { makeTransitionProps, MaybeTransition } from '@/composables/transition'\n\n// Directives\nimport intersect from '@/directives/intersect'\n\n// Utilities\nimport {\n computed,\n nextTick,\n onBeforeMount,\n ref,\n shallowRef,\n vShow,\n watch,\n withDirectives,\n} from 'vue'\nimport {\n convertToUnit,\n genericComponent,\n propsFactory,\n SUPPORTS_INTERSECTION,\n useRender,\n} from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\n\n// not intended for public use, this is passed in by vuetify-loader\nexport interface srcObject {\n src?: string\n srcset?: string\n lazySrc?: string\n aspect: number\n}\n\nexport type VImgSlots = {\n default: never\n placeholder: never\n error: never\n sources: never\n}\n\nexport const makeVImgProps = propsFactory({\n alt: String,\n cover: Boolean,\n eager: Boolean,\n gradient: String,\n lazySrc: String,\n options: {\n type: Object as PropType<IntersectionObserverInit>,\n // For more information on types, navigate to:\n // https://developer.mozilla.org/en-US/docs/Web/API/Intersection_Observer_API\n default: () => ({\n root: undefined,\n rootMargin: undefined,\n threshold: undefined,\n }),\n },\n sizes: String,\n src: {\n type: [String, Object] as PropType<string | srcObject>,\n default: '',\n },\n srcset: String,\n\n ...makeVResponsiveProps(),\n ...makeComponentProps(),\n ...makeTransitionProps(),\n}, 'VImg')\n\nexport const VImg = genericComponent<VImgSlots>()({\n name: 'VImg',\n\n directives: { intersect },\n\n props: makeVImgProps(),\n\n emits: {\n loadstart: (value: string | undefined) => true,\n load: (value: string | undefined) => true,\n error: (value: string | undefined) => true,\n },\n\n setup (props, { emit, slots }) {\n const currentSrc = shallowRef('') // Set from srcset\n const image = ref<HTMLImageElement>()\n const state = shallowRef<'idle' | 'loading' | 'loaded' | 'error'>(props.eager ? 'loading' : 'idle')\n const naturalWidth = shallowRef<number>()\n const naturalHeight = shallowRef<number>()\n\n const normalisedSrc = computed<srcObject>(() => {\n return props.src && typeof props.src === 'object'\n ? {\n src: props.src.src,\n srcset: props.srcset || props.src.srcset,\n lazySrc: props.lazySrc || props.src.lazySrc,\n aspect: Number(props.aspectRatio || props.src.aspect || 0),\n } : {\n src: props.src,\n srcset: props.srcset,\n lazySrc: props.lazySrc,\n aspect: Number(props.aspectRatio || 0),\n }\n })\n const aspectRatio = computed(() => {\n return normalisedSrc.value.aspect || naturalWidth.value! / naturalHeight.value! || 0\n })\n\n watch(() => props.src, () => {\n init(state.value !== 'idle')\n })\n watch(aspectRatio, (val, oldVal) => {\n if (!val && oldVal && image.value) {\n pollForSize(image.value)\n }\n })\n\n // TODO: getSrc when window width changes\n\n onBeforeMount(() => init())\n\n function init (isIntersecting?: boolean) {\n if (props.eager && isIntersecting) return\n if (\n SUPPORTS_INTERSECTION &&\n !isIntersecting &&\n !props.eager\n ) return\n\n state.value = 'loading'\n\n if (normalisedSrc.value.lazySrc) {\n const lazyImg = new Image()\n lazyImg.src = normalisedSrc.value.lazySrc\n pollForSize(lazyImg, null)\n }\n\n if (!normalisedSrc.value.src) return\n\n nextTick(() => {\n emit('loadstart', image.value?.currentSrc || normalisedSrc.value.src)\n\n if (image.value?.complete) {\n if (!image.value.naturalWidth) {\n onError()\n }\n\n if (state.value === 'error') return\n\n if (!aspectRatio.value) pollForSize(image.value, null)\n onLoad()\n } else {\n if (!aspectRatio.value) pollForSize(image.value!)\n getSrc()\n }\n })\n }\n\n function onLoad () {\n getSrc()\n state.value = 'loaded'\n emit('load', image.value?.currentSrc || normalisedSrc.value.src)\n }\n\n function onError () {\n state.value = 'error'\n emit('error', image.value?.currentSrc || normalisedSrc.value.src)\n }\n\n function getSrc () {\n const img = image.value\n if (img) currentSrc.value = img.currentSrc || img.src\n }\n\n let timer = -1\n function pollForSize (img: HTMLImageElement, timeout: number | null = 100) {\n const poll = () => {\n clearTimeout(timer)\n const { naturalHeight: imgHeight, naturalWidth: imgWidth } = img\n\n if (imgHeight || imgWidth) {\n naturalWidth.value = imgWidth\n naturalHeight.value = imgHeight\n } else if (!img.complete && state.value === 'loading' && timeout != null) {\n timer = window.setTimeout(poll, timeout)\n } else if (img.currentSrc.endsWith('.svg') || img.currentSrc.startsWith('data:image/svg+xml')) {\n naturalWidth.value = 1\n naturalHeight.value = 1\n }\n }\n\n poll()\n }\n\n const containClasses = computed(() => ({\n 'v-img__img--cover': props.cover,\n 'v-img__img--contain': !props.cover,\n }))\n\n const __image = () => {\n if (!normalisedSrc.value.src || state.value === 'idle') return null\n\n const img = (\n <img\n class={['v-img__img', containClasses.value]}\n src={ normalisedSrc.value.src }\n srcset={ normalisedSrc.value.srcset }\n alt={ props.alt }\n sizes={ props.sizes }\n ref={ image }\n onLoad={ onLoad }\n onError={ onError }\n />\n )\n\n const sources = slots.sources?.()\n\n return (\n <MaybeTransition transition={ props.transition } appear>\n {\n withDirectives(\n sources\n ? <picture class=\"v-img__picture\">{ sources }{ img }</picture>\n : img,\n [[vShow, state.value === 'loaded']]\n )\n }\n </MaybeTransition>\n )\n }\n\n const __preloadImage = () => (\n <MaybeTransition transition={ props.transition }>\n { normalisedSrc.value.lazySrc && state.value !== 'loaded' && (\n <img\n class={['v-img__img', 'v-img__img--preload', containClasses.value]}\n src={ normalisedSrc.value.lazySrc }\n alt={ props.alt }\n />\n )}\n </MaybeTransition>\n )\n\n const __placeholder = () => {\n if (!slots.placeholder) return null\n\n return (\n <MaybeTransition transition={ props.transition } appear>\n { (state.value === 'loading' || (state.value === 'error' && !slots.error)) &&\n <div class=\"v-img__placeholder\">{ slots.placeholder() }</div>\n }\n </MaybeTransition>\n )\n }\n\n const __error = () => {\n if (!slots.error) return null\n\n return (\n <MaybeTransition transition={ props.transition } appear>\n { state.value === 'error' &&\n <div class=\"v-img__error\">{ slots.error() }</div>\n }\n </MaybeTransition>\n )\n }\n\n const __gradient = () => {\n if (!props.gradient) return null\n\n return <div class=\"v-img__gradient\" style={{ backgroundImage: `linear-gradient(${props.gradient})` }} />\n }\n\n const isBooted = shallowRef(false)\n {\n const stop = watch(aspectRatio, val => {\n if (val) {\n // Doesn't work with nextTick, idk why\n requestAnimationFrame(() => {\n requestAnimationFrame(() => {\n isBooted.value = true\n })\n })\n stop()\n }\n })\n }\n\n useRender(() => {\n const [responsiveProps] = VResponsive.filterProps(props)\n return (\n <VResponsive\n class={[\n 'v-img',\n { 'v-img--booting': !isBooted.value },\n props.class,\n ]}\n style={[\n { width: convertToUnit(props.width === 'auto' ? naturalWidth.value : props.width) },\n props.style,\n ]}\n { ...responsiveProps }\n aspectRatio={ aspectRatio.value }\n aria-label={ props.alt }\n role={ props.alt ? 'img' : undefined }\n v-intersect={[{\n handler: init,\n options: props.options,\n }, null, ['once']]}\n >{{\n additional: () => (\n <>\n <__image />\n <__preloadImage />\n <__gradient />\n <__placeholder />\n <__error />\n </>\n ),\n default: slots.default,\n }}</VResponsive>\n )\n })\n\n return {\n currentSrc,\n image,\n state,\n naturalWidth,\n naturalHeight,\n }\n },\n})\n\nexport type VImg = InstanceType<typeof VImg>\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"VImg.mjs","names":["makeVResponsiveProps","VResponsive","makeComponentProps","makeTransitionProps","MaybeTransition","intersect","computed","nextTick","onBeforeMount","ref","shallowRef","vShow","watch","withDirectives","convertToUnit","genericComponent","propsFactory","SUPPORTS_INTERSECTION","useRender","makeVImgProps","alt","String","cover","Boolean","draggable","type","default","undefined","eager","gradient","lazySrc","options","Object","root","rootMargin","threshold","sizes","src","crossorigin","referrerpolicy","srcset","VImg","name","directives","props","emits","loadstart","value","load","error","setup","_ref","emit","slots","currentSrc","image","state","naturalWidth","naturalHeight","normalisedSrc","aspect","Number","aspectRatio","init","val","oldVal","pollForSize","isIntersecting","lazyImg","Image","complete","onError","onLoad","getSrc","img","timer","timeout","arguments","length","poll","clearTimeout","imgHeight","imgWidth","window","setTimeout","endsWith","startsWith","containClasses","__image","_createVNode","sources","transition","__preloadImage","__placeholder","placeholder","__error","__gradient","backgroundImage","isBooted","stop","requestAnimationFrame","responsiveProps","filterProps","_withDirectives","_mergeProps","class","width","style","additional","_Fragment","_resolveDirective","handler","once"],"sources":["../../../src/components/VImg/VImg.tsx"],"sourcesContent":["// Styles\nimport './VImg.sass'\n\n// Components\nimport { makeVResponsiveProps, VResponsive } from '@/components/VResponsive/VResponsive'\n\n// Composables\nimport { makeComponentProps } from '@/composables/component'\nimport { makeTransitionProps, MaybeTransition } from '@/composables/transition'\n\n// Directives\nimport intersect from '@/directives/intersect'\n\n// Utilities\nimport {\n computed,\n nextTick,\n onBeforeMount,\n ref,\n shallowRef,\n vShow,\n watch,\n withDirectives,\n} from 'vue'\nimport {\n convertToUnit,\n genericComponent,\n propsFactory,\n SUPPORTS_INTERSECTION,\n useRender,\n} from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\n\n// not intended for public use, this is passed in by vuetify-loader\nexport interface srcObject {\n src?: string\n srcset?: string\n lazySrc?: string\n aspect: number\n}\n\nexport type VImgSlots = {\n default: never\n placeholder: never\n error: never\n sources: never\n}\n\nexport const makeVImgProps = propsFactory({\n alt: String,\n cover: Boolean,\n draggable: {\n type: [Boolean, String] as PropType<boolean | 'true' | 'false'>,\n default: undefined,\n },\n eager: Boolean,\n gradient: String,\n lazySrc: String,\n options: {\n type: Object as PropType<IntersectionObserverInit>,\n // For more information on types, navigate to:\n // https://developer.mozilla.org/en-US/docs/Web/API/Intersection_Observer_API\n default: () => ({\n root: undefined,\n rootMargin: undefined,\n threshold: undefined,\n }),\n },\n sizes: String,\n src: {\n type: [String, Object] as PropType<string | srcObject>,\n default: '',\n },\n crossorigin: String as PropType<'' | 'anonymous' | 'use-credentials'>,\n referrerpolicy: String as PropType<\n | 'no-referrer'\n | 'no-referrer-when-downgrade'\n | 'origin'\n | 'origin-when-cross-origin'\n | 'same-origin'\n | 'strict-origin'\n | 'strict-origin-when-cross-origin'\n | 'unsafe-url'\n >,\n srcset: String,\n\n ...makeVResponsiveProps(),\n ...makeComponentProps(),\n ...makeTransitionProps(),\n}, 'VImg')\n\nexport const VImg = genericComponent<VImgSlots>()({\n name: 'VImg',\n\n directives: { intersect },\n\n props: makeVImgProps(),\n\n emits: {\n loadstart: (value: string | undefined) => true,\n load: (value: string | undefined) => true,\n error: (value: string | undefined) => true,\n },\n\n setup (props, { emit, slots }) {\n const currentSrc = shallowRef('') // Set from srcset\n const image = ref<HTMLImageElement>()\n const state = shallowRef<'idle' | 'loading' | 'loaded' | 'error'>(props.eager ? 'loading' : 'idle')\n const naturalWidth = shallowRef<number>()\n const naturalHeight = shallowRef<number>()\n\n const normalisedSrc = computed<srcObject>(() => {\n return props.src && typeof props.src === 'object'\n ? {\n src: props.src.src,\n srcset: props.srcset || props.src.srcset,\n lazySrc: props.lazySrc || props.src.lazySrc,\n aspect: Number(props.aspectRatio || props.src.aspect || 0),\n } : {\n src: props.src,\n srcset: props.srcset,\n lazySrc: props.lazySrc,\n aspect: Number(props.aspectRatio || 0),\n }\n })\n const aspectRatio = computed(() => {\n return normalisedSrc.value.aspect || naturalWidth.value! / naturalHeight.value! || 0\n })\n\n watch(() => props.src, () => {\n init(state.value !== 'idle')\n })\n watch(aspectRatio, (val, oldVal) => {\n if (!val && oldVal && image.value) {\n pollForSize(image.value)\n }\n })\n\n // TODO: getSrc when window width changes\n\n onBeforeMount(() => init())\n\n function init (isIntersecting?: boolean) {\n if (props.eager && isIntersecting) return\n if (\n SUPPORTS_INTERSECTION &&\n !isIntersecting &&\n !props.eager\n ) return\n\n state.value = 'loading'\n\n if (normalisedSrc.value.lazySrc) {\n const lazyImg = new Image()\n lazyImg.src = normalisedSrc.value.lazySrc\n pollForSize(lazyImg, null)\n }\n\n if (!normalisedSrc.value.src) return\n\n nextTick(() => {\n emit('loadstart', image.value?.currentSrc || normalisedSrc.value.src)\n\n if (image.value?.complete) {\n if (!image.value.naturalWidth) {\n onError()\n }\n\n if (state.value === 'error') return\n\n if (!aspectRatio.value) pollForSize(image.value, null)\n onLoad()\n } else {\n if (!aspectRatio.value) pollForSize(image.value!)\n getSrc()\n }\n })\n }\n\n function onLoad () {\n getSrc()\n state.value = 'loaded'\n emit('load', image.value?.currentSrc || normalisedSrc.value.src)\n }\n\n function onError () {\n state.value = 'error'\n emit('error', image.value?.currentSrc || normalisedSrc.value.src)\n }\n\n function getSrc () {\n const img = image.value\n if (img) currentSrc.value = img.currentSrc || img.src\n }\n\n let timer = -1\n function pollForSize (img: HTMLImageElement, timeout: number | null = 100) {\n const poll = () => {\n clearTimeout(timer)\n const { naturalHeight: imgHeight, naturalWidth: imgWidth } = img\n\n if (imgHeight || imgWidth) {\n naturalWidth.value = imgWidth\n naturalHeight.value = imgHeight\n } else if (!img.complete && state.value === 'loading' && timeout != null) {\n timer = window.setTimeout(poll, timeout)\n } else if (img.currentSrc.endsWith('.svg') || img.currentSrc.startsWith('data:image/svg+xml')) {\n naturalWidth.value = 1\n naturalHeight.value = 1\n }\n }\n\n poll()\n }\n\n const containClasses = computed(() => ({\n 'v-img__img--cover': props.cover,\n 'v-img__img--contain': !props.cover,\n }))\n\n const __image = () => {\n if (!normalisedSrc.value.src || state.value === 'idle') return null\n\n const img = (\n <img\n class={['v-img__img', containClasses.value]}\n src={ normalisedSrc.value.src }\n srcset={ normalisedSrc.value.srcset }\n alt={ props.alt }\n crossorigin={ props.crossorigin }\n referrerpolicy={ props.referrerpolicy }\n draggable={ props.draggable }\n sizes={ props.sizes }\n ref={ image }\n onLoad={ onLoad }\n onError={ onError }\n />\n )\n\n const sources = slots.sources?.()\n\n return (\n <MaybeTransition transition={ props.transition } appear>\n {\n withDirectives(\n sources\n ? <picture class=\"v-img__picture\">{ sources }{ img }</picture>\n : img,\n [[vShow, state.value === 'loaded']]\n )\n }\n </MaybeTransition>\n )\n }\n\n const __preloadImage = () => (\n <MaybeTransition transition={ props.transition }>\n { normalisedSrc.value.lazySrc && state.value !== 'loaded' && (\n <img\n class={['v-img__img', 'v-img__img--preload', containClasses.value]}\n src={ normalisedSrc.value.lazySrc }\n alt={ props.alt }\n crossorigin={ props.crossorigin }\n referrerpolicy={ props.referrerpolicy }\n draggable={ props.draggable }\n />\n )}\n </MaybeTransition>\n )\n\n const __placeholder = () => {\n if (!slots.placeholder) return null\n\n return (\n <MaybeTransition transition={ props.transition } appear>\n { (state.value === 'loading' || (state.value === 'error' && !slots.error)) &&\n <div class=\"v-img__placeholder\">{ slots.placeholder() }</div>\n }\n </MaybeTransition>\n )\n }\n\n const __error = () => {\n if (!slots.error) return null\n\n return (\n <MaybeTransition transition={ props.transition } appear>\n { state.value === 'error' &&\n <div class=\"v-img__error\">{ slots.error() }</div>\n }\n </MaybeTransition>\n )\n }\n\n const __gradient = () => {\n if (!props.gradient) return null\n\n return <div class=\"v-img__gradient\" style={{ backgroundImage: `linear-gradient(${props.gradient})` }} />\n }\n\n const isBooted = shallowRef(false)\n {\n const stop = watch(aspectRatio, val => {\n if (val) {\n // Doesn't work with nextTick, idk why\n requestAnimationFrame(() => {\n requestAnimationFrame(() => {\n isBooted.value = true\n })\n })\n stop()\n }\n })\n }\n\n useRender(() => {\n const [responsiveProps] = VResponsive.filterProps(props)\n return (\n <VResponsive\n class={[\n 'v-img',\n { 'v-img--booting': !isBooted.value },\n props.class,\n ]}\n style={[\n { width: convertToUnit(props.width === 'auto' ? naturalWidth.value : props.width) },\n props.style,\n ]}\n { ...responsiveProps }\n aspectRatio={ aspectRatio.value }\n aria-label={ props.alt }\n role={ props.alt ? 'img' : undefined }\n v-intersect={[{\n handler: init,\n options: props.options,\n }, null, ['once']]}\n >{{\n additional: () => (\n <>\n <__image />\n <__preloadImage />\n <__gradient />\n <__placeholder />\n <__error />\n </>\n ),\n default: slots.default,\n }}</VResponsive>\n )\n })\n\n return {\n currentSrc,\n image,\n state,\n naturalWidth,\n naturalHeight,\n }\n },\n})\n\nexport type VImg = InstanceType<typeof VImg>\n"],"mappings":"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"}
|