@nuxt/scripts 0.11.13 → 0.12.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/client/200.html +1 -1
- package/dist/client/404.html +1 -1
- package/dist/client/_nuxt/B1l158TM.js +179 -0
- package/dist/client/_nuxt/CEpyMuZa.js +1 -0
- package/dist/client/_nuxt/CVO1_9PV.js +1 -0
- package/dist/client/_nuxt/Cp-IABpG.js +1 -0
- package/dist/client/_nuxt/D0r3Knsf.js +1 -0
- package/dist/client/_nuxt/DlfHMoPT.js +1 -0
- package/dist/client/_nuxt/DyLGGY9L.js +1 -0
- package/dist/client/_nuxt/builds/latest.json +1 -1
- package/dist/client/_nuxt/builds/meta/ab2a05b7-9c93-484e-ae04-bd1f39e5f3c1.json +1 -0
- package/dist/client/_nuxt/entry.Bb8Z00UZ.css +1 -0
- package/dist/client/_nuxt/error-404.pWWosX5v.css +1 -0
- package/dist/client/_nuxt/error-500.DHpVpAn4.css +1 -0
- package/dist/client/_nuxt/n57rOy2v.js +1 -0
- package/dist/client/index.html +1 -1
- package/dist/module.d.mts +6 -0
- package/dist/module.json +1 -1
- package/dist/module.mjs +167 -42
- package/dist/registry.mjs +30 -0
- package/dist/runtime/components/GoogleMaps/ScriptGoogleMaps.d.vue.ts +0 -0
- package/dist/runtime/components/{ScriptGoogleMaps.vue → GoogleMaps/ScriptGoogleMaps.vue} +17 -13
- package/dist/runtime/components/GoogleMaps/ScriptGoogleMaps.vue.d.ts +0 -0
- package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsAdvancedMarkerElement.d.vue.ts +61 -0
- package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsAdvancedMarkerElement.vue +86 -0
- package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsAdvancedMarkerElement.vue.d.ts +61 -0
- package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsCircle.d.vue.ts +33 -0
- package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsCircle.vue +62 -0
- package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsCircle.vue.d.ts +33 -0
- package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsHeatmapLayer.d.vue.ts +5 -0
- package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsHeatmapLayer.vue +32 -0
- package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsHeatmapLayer.vue.d.ts +5 -0
- package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsInfoWindow.d.vue.ts +35 -0
- package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsInfoWindow.vue +88 -0
- package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsInfoWindow.vue.d.ts +35 -0
- package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsMarker.d.vue.ts +61 -0
- package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsMarker.vue +85 -0
- package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsMarker.vue.d.ts +61 -0
- package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsMarkerClusterer.d.vue.ts +27 -0
- package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsMarkerClusterer.vue +62 -0
- package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsMarkerClusterer.vue.d.ts +27 -0
- package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsPinElement.d.vue.ts +5 -0
- package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsPinElement.vue +37 -0
- package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsPinElement.vue.d.ts +5 -0
- package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsPolygon.d.vue.ts +29 -0
- package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsPolygon.vue +60 -0
- package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsPolygon.vue.d.ts +29 -0
- package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsPolyline.d.vue.ts +29 -0
- package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsPolyline.vue +60 -0
- package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsPolyline.vue.d.ts +29 -0
- package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsRectangle.d.vue.ts +31 -0
- package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsRectangle.vue +61 -0
- package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsRectangle.vue.d.ts +31 -0
- package/dist/runtime/components/ScriptAriaLoadingIndicator.d.vue.ts +2 -0
- package/dist/runtime/components/ScriptCarbonAds.d.vue.ts +32 -0
- package/dist/runtime/components/ScriptCrisp.d.vue.ts +44 -0
- package/dist/runtime/components/ScriptGoogleAdsense.d.vue.ts +37 -0
- package/dist/runtime/components/ScriptIntercom.d.vue.ts +45 -0
- package/dist/runtime/components/ScriptLemonSqueezy.d.vue.ts +24 -0
- package/dist/runtime/components/ScriptLoadingIndicator.d.vue.ts +9 -0
- package/dist/runtime/components/ScriptLoadingIndicator.vue.d.ts +1 -1
- package/dist/runtime/components/ScriptPayPalButtons.d.vue.ts +72 -0
- package/dist/runtime/components/ScriptPayPalButtons.vue +116 -0
- package/dist/runtime/components/ScriptPayPalButtons.vue.d.ts +72 -0
- package/dist/runtime/components/ScriptPayPalMarks.d.vue.ts +51 -0
- package/dist/runtime/components/ScriptPayPalMarks.vue +69 -0
- package/dist/runtime/components/ScriptPayPalMarks.vue.d.ts +51 -0
- package/dist/runtime/components/ScriptPayPalMessages.d.vue.ts +67 -0
- package/dist/runtime/components/ScriptPayPalMessages.vue +90 -0
- package/dist/runtime/components/ScriptPayPalMessages.vue.d.ts +67 -0
- package/dist/runtime/components/ScriptStripePricingTable.d.vue.ts +35 -0
- package/dist/runtime/components/ScriptStripePricingTable.vue +1 -1
- package/dist/runtime/components/ScriptVimeoPlayer.d.vue.ts +127 -0
- package/dist/runtime/components/ScriptVimeoPlayer.vue.d.ts +2 -2
- package/dist/runtime/components/ScriptYouTubePlayer.d.vue.ts +66 -0
- package/dist/runtime/composables/useScript.js +35 -2
- package/dist/runtime/composables/useScriptEventPage.js +6 -2
- package/dist/runtime/composables/useScriptTriggerIdleTimeout.d.ts +10 -0
- package/dist/runtime/composables/useScriptTriggerIdleTimeout.js +22 -0
- package/dist/runtime/composables/useScriptTriggerInteraction.d.ts +15 -0
- package/dist/runtime/composables/useScriptTriggerInteraction.js +35 -0
- package/dist/runtime/logger.d.ts +1 -0
- package/dist/runtime/logger.js +6 -0
- package/dist/runtime/registry/databuddy-analytics.d.ts +77 -0
- package/dist/runtime/registry/databuddy-analytics.js +103 -0
- package/dist/runtime/registry/google-analytics.d.ts +1 -1
- package/dist/runtime/registry/google-analytics.js +5 -5
- package/dist/runtime/registry/google-tag-manager.js +3 -5
- package/dist/runtime/registry/matomo-analytics.d.ts +1 -0
- package/dist/runtime/registry/matomo-analytics.js +27 -4
- package/dist/runtime/registry/paypal.d.ts +34 -0
- package/dist/runtime/registry/paypal.js +86 -0
- package/dist/runtime/registry/reddit-pixel.d.ts +18 -0
- package/dist/runtime/registry/reddit-pixel.js +36 -0
- package/dist/runtime/registry/stripe.d.ts +2 -2
- package/dist/runtime/registry/stripe.js +1 -1
- package/dist/runtime/types.d.ts +18 -7
- package/dist/runtime/utils.d.ts +5 -2
- package/dist/runtime/utils.js +49 -19
- package/package.json +26 -19
- package/dist/client/_nuxt/1mHV-1pA.js +0 -1
- package/dist/client/_nuxt/7VVldQq3.js +0 -1
- package/dist/client/_nuxt/CQGAJOTU.js +0 -21
- package/dist/client/_nuxt/CYHtqd0e.js +0 -1
- package/dist/client/_nuxt/builds/meta/8ed6dba0-c6c1-426f-804b-f7cbe9d62b69.json +0 -1
- package/dist/client/_nuxt/entry.tbizjOMR.css +0 -1
- package/dist/client/_nuxt/error-404.CDmSTChJ.css +0 -1
- package/dist/client/_nuxt/error-500.DpcyFY5F.css +0 -1
- package/dist/runtime/components/ScriptGoogleMaps.vue.d.ts +0 -145
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
<template>
|
|
2
|
+
<slot v-if="marker" />
|
|
3
|
+
</template>
|
|
4
|
+
|
|
5
|
+
<script>
|
|
6
|
+
import { inject, onUnmounted, provide, shallowRef } from "vue";
|
|
7
|
+
import { whenever } from "@vueuse/core";
|
|
8
|
+
import { MAP_INJECTION_KEY } from "./ScriptGoogleMaps.vue";
|
|
9
|
+
import { MARKER_CLUSTERER_INJECTION_KEY } from "./ScriptGoogleMapsMarkerClusterer.vue";
|
|
10
|
+
export const MARKER_INJECTION_KEY = Symbol("marker");
|
|
11
|
+
</script>
|
|
12
|
+
|
|
13
|
+
<script setup>
|
|
14
|
+
const props = defineProps({
|
|
15
|
+
options: { type: Object, required: false }
|
|
16
|
+
});
|
|
17
|
+
const eventsWithoutPayload = [
|
|
18
|
+
"animation_changed",
|
|
19
|
+
"clickable_changed",
|
|
20
|
+
"cursor_changed",
|
|
21
|
+
"draggable_changed",
|
|
22
|
+
"flat_changed",
|
|
23
|
+
"icon_changed",
|
|
24
|
+
"position_changed",
|
|
25
|
+
"shape_changed",
|
|
26
|
+
"title_changed",
|
|
27
|
+
"visible_changed",
|
|
28
|
+
"zindex_changed"
|
|
29
|
+
];
|
|
30
|
+
const eventsWithMapMouseEventPayload = [
|
|
31
|
+
"click",
|
|
32
|
+
"contextmenu",
|
|
33
|
+
"dblclick",
|
|
34
|
+
"drag",
|
|
35
|
+
"dragend",
|
|
36
|
+
"dragstart",
|
|
37
|
+
"mousedown",
|
|
38
|
+
"mouseout",
|
|
39
|
+
"mouseover",
|
|
40
|
+
"mouseup"
|
|
41
|
+
];
|
|
42
|
+
const emit = defineEmits([]);
|
|
43
|
+
const mapContext = inject(MAP_INJECTION_KEY, void 0);
|
|
44
|
+
const markerClustererContext = inject(MARKER_CLUSTERER_INJECTION_KEY, void 0);
|
|
45
|
+
const marker = shallowRef(void 0);
|
|
46
|
+
whenever(() => mapContext?.map.value && mapContext.mapsApi.value, () => {
|
|
47
|
+
marker.value = new mapContext.mapsApi.value.Marker(props.options);
|
|
48
|
+
setupMarkerEventListeners(marker.value);
|
|
49
|
+
if (markerClustererContext?.markerClusterer.value) {
|
|
50
|
+
markerClustererContext.markerClusterer.value.addMarker(marker.value, true);
|
|
51
|
+
markerClustererContext.requestRerender();
|
|
52
|
+
} else {
|
|
53
|
+
marker.value.setMap(mapContext.map.value);
|
|
54
|
+
}
|
|
55
|
+
whenever(() => props.options, (options) => {
|
|
56
|
+
marker.value?.setOptions(options);
|
|
57
|
+
}, {
|
|
58
|
+
deep: true
|
|
59
|
+
});
|
|
60
|
+
}, {
|
|
61
|
+
immediate: true,
|
|
62
|
+
once: true
|
|
63
|
+
});
|
|
64
|
+
onUnmounted(() => {
|
|
65
|
+
if (!marker.value || !mapContext?.mapsApi.value) {
|
|
66
|
+
return;
|
|
67
|
+
}
|
|
68
|
+
mapContext.mapsApi.value.event.clearInstanceListeners(marker.value);
|
|
69
|
+
if (markerClustererContext?.markerClusterer.value) {
|
|
70
|
+
markerClustererContext.markerClusterer.value.removeMarker(marker.value, true);
|
|
71
|
+
markerClustererContext.requestRerender();
|
|
72
|
+
} else {
|
|
73
|
+
marker.value.setMap(null);
|
|
74
|
+
}
|
|
75
|
+
});
|
|
76
|
+
provide(MARKER_INJECTION_KEY, { marker });
|
|
77
|
+
function setupMarkerEventListeners(marker2) {
|
|
78
|
+
eventsWithoutPayload.forEach((event) => {
|
|
79
|
+
marker2.addListener(event, () => emit(event));
|
|
80
|
+
});
|
|
81
|
+
eventsWithMapMouseEventPayload.forEach((event) => {
|
|
82
|
+
marker2.addListener(event, (payload) => emit(event, payload));
|
|
83
|
+
});
|
|
84
|
+
}
|
|
85
|
+
</script>
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
import type { InjectionKey, ShallowRef } from 'vue';
|
|
2
|
+
export declare const MARKER_INJECTION_KEY: InjectionKey<{
|
|
3
|
+
marker: ShallowRef<google.maps.Marker | undefined>;
|
|
4
|
+
}>;
|
|
5
|
+
declare const _default: __VLS_WithSlots<import("vue").DefineComponent<{
|
|
6
|
+
options?: Omit<google.maps.MarkerOptions, "map">;
|
|
7
|
+
}, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {} & {
|
|
8
|
+
click: (payload: google.maps.MapMouseEvent) => any;
|
|
9
|
+
contextmenu: (payload: google.maps.MapMouseEvent) => any;
|
|
10
|
+
dblclick: (payload: google.maps.MapMouseEvent) => any;
|
|
11
|
+
drag: (payload: google.maps.MapMouseEvent) => any;
|
|
12
|
+
dragend: (payload: google.maps.MapMouseEvent) => any;
|
|
13
|
+
dragstart: (payload: google.maps.MapMouseEvent) => any;
|
|
14
|
+
mousedown: (payload: google.maps.MapMouseEvent) => any;
|
|
15
|
+
mouseout: (payload: google.maps.MapMouseEvent) => any;
|
|
16
|
+
mouseover: (payload: google.maps.MapMouseEvent) => any;
|
|
17
|
+
mouseup: (payload: google.maps.MapMouseEvent) => any;
|
|
18
|
+
animation_changed: () => any;
|
|
19
|
+
clickable_changed: () => any;
|
|
20
|
+
cursor_changed: () => any;
|
|
21
|
+
draggable_changed: () => any;
|
|
22
|
+
flat_changed: () => any;
|
|
23
|
+
icon_changed: () => any;
|
|
24
|
+
position_changed: () => any;
|
|
25
|
+
shape_changed: () => any;
|
|
26
|
+
title_changed: () => any;
|
|
27
|
+
visible_changed: () => any;
|
|
28
|
+
zindex_changed: () => any;
|
|
29
|
+
}, string, import("vue").PublicProps, Readonly<{
|
|
30
|
+
options?: Omit<google.maps.MarkerOptions, "map">;
|
|
31
|
+
}> & Readonly<{
|
|
32
|
+
onClick?: ((payload: google.maps.MapMouseEvent) => any) | undefined;
|
|
33
|
+
onContextmenu?: ((payload: google.maps.MapMouseEvent) => any) | undefined;
|
|
34
|
+
onDblclick?: ((payload: google.maps.MapMouseEvent) => any) | undefined;
|
|
35
|
+
onDrag?: ((payload: google.maps.MapMouseEvent) => any) | undefined;
|
|
36
|
+
onDragend?: ((payload: google.maps.MapMouseEvent) => any) | undefined;
|
|
37
|
+
onDragstart?: ((payload: google.maps.MapMouseEvent) => any) | undefined;
|
|
38
|
+
onMousedown?: ((payload: google.maps.MapMouseEvent) => any) | undefined;
|
|
39
|
+
onMouseout?: ((payload: google.maps.MapMouseEvent) => any) | undefined;
|
|
40
|
+
onMouseover?: ((payload: google.maps.MapMouseEvent) => any) | undefined;
|
|
41
|
+
onMouseup?: ((payload: google.maps.MapMouseEvent) => any) | undefined;
|
|
42
|
+
onAnimation_changed?: (() => any) | undefined;
|
|
43
|
+
onClickable_changed?: (() => any) | undefined;
|
|
44
|
+
onCursor_changed?: (() => any) | undefined;
|
|
45
|
+
onDraggable_changed?: (() => any) | undefined;
|
|
46
|
+
onFlat_changed?: (() => any) | undefined;
|
|
47
|
+
onIcon_changed?: (() => any) | undefined;
|
|
48
|
+
onPosition_changed?: (() => any) | undefined;
|
|
49
|
+
onShape_changed?: (() => any) | undefined;
|
|
50
|
+
onTitle_changed?: (() => any) | undefined;
|
|
51
|
+
onVisible_changed?: (() => any) | undefined;
|
|
52
|
+
onZindex_changed?: (() => any) | undefined;
|
|
53
|
+
}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>, {
|
|
54
|
+
default?: (props: {}) => any;
|
|
55
|
+
}>;
|
|
56
|
+
export default _default;
|
|
57
|
+
type __VLS_WithSlots<T, S> = T & {
|
|
58
|
+
new (): {
|
|
59
|
+
$slots: S;
|
|
60
|
+
};
|
|
61
|
+
};
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { MarkerClusterer, type MarkerClustererOptions } from '@googlemaps/markerclusterer';
|
|
2
|
+
import { type InjectionKey, type ShallowRef } from 'vue';
|
|
3
|
+
export declare const MARKER_CLUSTERER_INJECTION_KEY: InjectionKey<{
|
|
4
|
+
markerClusterer: ShallowRef<MarkerClusterer | undefined>;
|
|
5
|
+
requestRerender: () => void;
|
|
6
|
+
}>;
|
|
7
|
+
declare const _default: __VLS_WithSlots<import("vue").DefineComponent<{
|
|
8
|
+
options?: Omit<MarkerClustererOptions, "map">;
|
|
9
|
+
}, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {} & {
|
|
10
|
+
click: (payload: MarkerClusterer) => any;
|
|
11
|
+
clusteringbegin: (payload: MarkerClusterer) => any;
|
|
12
|
+
clusteringend: (payload: MarkerClusterer) => any;
|
|
13
|
+
}, string, import("vue").PublicProps, Readonly<{
|
|
14
|
+
options?: Omit<MarkerClustererOptions, "map">;
|
|
15
|
+
}> & Readonly<{
|
|
16
|
+
onClick?: ((payload: MarkerClusterer) => any) | undefined;
|
|
17
|
+
onClusteringbegin?: ((payload: MarkerClusterer) => any) | undefined;
|
|
18
|
+
onClusteringend?: ((payload: MarkerClusterer) => any) | undefined;
|
|
19
|
+
}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>, {
|
|
20
|
+
default?: (props: {}) => any;
|
|
21
|
+
}>;
|
|
22
|
+
export default _default;
|
|
23
|
+
type __VLS_WithSlots<T, S> = T & {
|
|
24
|
+
new (): {
|
|
25
|
+
$slots: S;
|
|
26
|
+
};
|
|
27
|
+
};
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
<template>
|
|
2
|
+
<slot v-if="markerClusterer" />
|
|
3
|
+
</template>
|
|
4
|
+
|
|
5
|
+
<script>
|
|
6
|
+
import { MarkerClusterer } from "@googlemaps/markerclusterer";
|
|
7
|
+
import { inject, onUnmounted, provide, shallowRef } from "vue";
|
|
8
|
+
import { whenever } from "@vueuse/core";
|
|
9
|
+
import { MAP_INJECTION_KEY } from "./ScriptGoogleMaps.vue";
|
|
10
|
+
export const MARKER_CLUSTERER_INJECTION_KEY = Symbol("marker-clusterer");
|
|
11
|
+
</script>
|
|
12
|
+
|
|
13
|
+
<script setup>
|
|
14
|
+
const props = defineProps({
|
|
15
|
+
options: { type: Object, required: false }
|
|
16
|
+
});
|
|
17
|
+
const markerClustererEvents = [
|
|
18
|
+
"click",
|
|
19
|
+
"clusteringbegin",
|
|
20
|
+
"clusteringend"
|
|
21
|
+
];
|
|
22
|
+
const emit = defineEmits([]);
|
|
23
|
+
const mapContext = inject(MAP_INJECTION_KEY, void 0);
|
|
24
|
+
const markerClusterer = shallowRef(void 0);
|
|
25
|
+
whenever(() => mapContext?.map.value, (map) => {
|
|
26
|
+
markerClusterer.value = new MarkerClusterer({
|
|
27
|
+
map,
|
|
28
|
+
...props.options
|
|
29
|
+
});
|
|
30
|
+
setupMarkerClustererEventListeners(markerClusterer.value);
|
|
31
|
+
}, {
|
|
32
|
+
immediate: true,
|
|
33
|
+
once: true
|
|
34
|
+
});
|
|
35
|
+
const markerClustererNeedsRerender = shallowRef(false);
|
|
36
|
+
function requestRerender() {
|
|
37
|
+
markerClustererNeedsRerender.value = true;
|
|
38
|
+
}
|
|
39
|
+
whenever(() => markerClustererNeedsRerender.value && markerClusterer.value, () => {
|
|
40
|
+
markerClusterer.value.render();
|
|
41
|
+
markerClustererNeedsRerender.value = false;
|
|
42
|
+
});
|
|
43
|
+
onUnmounted(() => {
|
|
44
|
+
if (!markerClusterer.value || !mapContext?.mapsApi.value) {
|
|
45
|
+
return;
|
|
46
|
+
}
|
|
47
|
+
mapContext.mapsApi.value.event.clearInstanceListeners(markerClusterer.value);
|
|
48
|
+
markerClusterer.value.setMap(null);
|
|
49
|
+
});
|
|
50
|
+
provide(
|
|
51
|
+
MARKER_CLUSTERER_INJECTION_KEY,
|
|
52
|
+
{
|
|
53
|
+
markerClusterer,
|
|
54
|
+
requestRerender
|
|
55
|
+
}
|
|
56
|
+
);
|
|
57
|
+
function setupMarkerClustererEventListeners(markerClusterer2) {
|
|
58
|
+
markerClustererEvents.forEach((event) => {
|
|
59
|
+
markerClusterer2.addListener(event, () => emit(event, markerClusterer2));
|
|
60
|
+
});
|
|
61
|
+
}
|
|
62
|
+
</script>
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { MarkerClusterer, type MarkerClustererOptions } from '@googlemaps/markerclusterer';
|
|
2
|
+
import { type InjectionKey, type ShallowRef } from 'vue';
|
|
3
|
+
export declare const MARKER_CLUSTERER_INJECTION_KEY: InjectionKey<{
|
|
4
|
+
markerClusterer: ShallowRef<MarkerClusterer | undefined>;
|
|
5
|
+
requestRerender: () => void;
|
|
6
|
+
}>;
|
|
7
|
+
declare const _default: __VLS_WithSlots<import("vue").DefineComponent<{
|
|
8
|
+
options?: Omit<MarkerClustererOptions, "map">;
|
|
9
|
+
}, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {} & {
|
|
10
|
+
click: (payload: MarkerClusterer) => any;
|
|
11
|
+
clusteringbegin: (payload: MarkerClusterer) => any;
|
|
12
|
+
clusteringend: (payload: MarkerClusterer) => any;
|
|
13
|
+
}, string, import("vue").PublicProps, Readonly<{
|
|
14
|
+
options?: Omit<MarkerClustererOptions, "map">;
|
|
15
|
+
}> & Readonly<{
|
|
16
|
+
onClick?: ((payload: MarkerClusterer) => any) | undefined;
|
|
17
|
+
onClusteringbegin?: ((payload: MarkerClusterer) => any) | undefined;
|
|
18
|
+
onClusteringend?: ((payload: MarkerClusterer) => any) | undefined;
|
|
19
|
+
}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>, {
|
|
20
|
+
default?: (props: {}) => any;
|
|
21
|
+
}>;
|
|
22
|
+
export default _default;
|
|
23
|
+
type __VLS_WithSlots<T, S> = T & {
|
|
24
|
+
new (): {
|
|
25
|
+
$slots: S;
|
|
26
|
+
};
|
|
27
|
+
};
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
type __VLS_Props = {
|
|
2
|
+
options?: Omit<google.maps.marker.PinElementOptions, 'map'>;
|
|
3
|
+
};
|
|
4
|
+
declare const _default: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
5
|
+
export default _default;
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
<template>
|
|
2
|
+
|
|
3
|
+
</template>
|
|
4
|
+
|
|
5
|
+
<script setup>
|
|
6
|
+
import { inject, shallowRef } from "vue";
|
|
7
|
+
import { whenever } from "@vueuse/core";
|
|
8
|
+
import { MAP_INJECTION_KEY } from "./ScriptGoogleMaps.vue";
|
|
9
|
+
import { ADVANCED_MARKER_ELEMENT_INJECTION_KEY } from "./ScriptGoogleMapsAdvancedMarkerElement.vue";
|
|
10
|
+
const props = defineProps({
|
|
11
|
+
options: { type: Object, required: false }
|
|
12
|
+
});
|
|
13
|
+
const mapContext = inject(MAP_INJECTION_KEY, void 0);
|
|
14
|
+
const advancedMarkerElementContext = inject(ADVANCED_MARKER_ELEMENT_INJECTION_KEY, void 0);
|
|
15
|
+
const pinElement = shallowRef(void 0);
|
|
16
|
+
whenever(
|
|
17
|
+
() => mapContext?.map.value && mapContext.mapsApi.value && advancedMarkerElementContext?.advancedMarkerElement.value,
|
|
18
|
+
async () => {
|
|
19
|
+
await mapContext.mapsApi.value.importLibrary("marker");
|
|
20
|
+
pinElement.value = new mapContext.mapsApi.value.marker.PinElement(props.options);
|
|
21
|
+
if (advancedMarkerElementContext?.advancedMarkerElement.value) {
|
|
22
|
+
advancedMarkerElementContext.advancedMarkerElement.value.content = pinElement.value.element;
|
|
23
|
+
}
|
|
24
|
+
whenever(() => props.options, (options) => {
|
|
25
|
+
if (pinElement.value && options) {
|
|
26
|
+
Object.assign(pinElement.value, options);
|
|
27
|
+
}
|
|
28
|
+
}, {
|
|
29
|
+
deep: true
|
|
30
|
+
});
|
|
31
|
+
},
|
|
32
|
+
{
|
|
33
|
+
immediate: true,
|
|
34
|
+
once: true
|
|
35
|
+
}
|
|
36
|
+
);
|
|
37
|
+
</script>
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
type __VLS_Props = {
|
|
2
|
+
options?: Omit<google.maps.marker.PinElementOptions, 'map'>;
|
|
3
|
+
};
|
|
4
|
+
declare const _default: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
5
|
+
export default _default;
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
type __VLS_Props = {
|
|
2
|
+
options?: Omit<google.maps.PolygonOptions, 'map'>;
|
|
3
|
+
};
|
|
4
|
+
declare const _default: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {} & {
|
|
5
|
+
click: (payload: google.maps.PolyMouseEvent) => any;
|
|
6
|
+
contextmenu: (payload: google.maps.PolyMouseEvent) => any;
|
|
7
|
+
dblclick: (payload: google.maps.PolyMouseEvent) => any;
|
|
8
|
+
drag: (payload: google.maps.MapMouseEvent) => any;
|
|
9
|
+
dragend: (payload: google.maps.MapMouseEvent) => any;
|
|
10
|
+
dragstart: (payload: google.maps.MapMouseEvent) => any;
|
|
11
|
+
mousedown: (payload: google.maps.PolyMouseEvent) => any;
|
|
12
|
+
mousemove: (payload: google.maps.PolyMouseEvent) => any;
|
|
13
|
+
mouseout: (payload: google.maps.PolyMouseEvent) => any;
|
|
14
|
+
mouseover: (payload: google.maps.PolyMouseEvent) => any;
|
|
15
|
+
mouseup: (payload: google.maps.PolyMouseEvent) => any;
|
|
16
|
+
}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{
|
|
17
|
+
onClick?: ((payload: google.maps.PolyMouseEvent) => any) | undefined;
|
|
18
|
+
onContextmenu?: ((payload: google.maps.PolyMouseEvent) => any) | undefined;
|
|
19
|
+
onDblclick?: ((payload: google.maps.PolyMouseEvent) => any) | undefined;
|
|
20
|
+
onDrag?: ((payload: google.maps.MapMouseEvent) => any) | undefined;
|
|
21
|
+
onDragend?: ((payload: google.maps.MapMouseEvent) => any) | undefined;
|
|
22
|
+
onDragstart?: ((payload: google.maps.MapMouseEvent) => any) | undefined;
|
|
23
|
+
onMousedown?: ((payload: google.maps.PolyMouseEvent) => any) | undefined;
|
|
24
|
+
onMousemove?: ((payload: google.maps.PolyMouseEvent) => any) | undefined;
|
|
25
|
+
onMouseout?: ((payload: google.maps.PolyMouseEvent) => any) | undefined;
|
|
26
|
+
onMouseover?: ((payload: google.maps.PolyMouseEvent) => any) | undefined;
|
|
27
|
+
onMouseup?: ((payload: google.maps.PolyMouseEvent) => any) | undefined;
|
|
28
|
+
}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
29
|
+
export default _default;
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
<template>
|
|
2
|
+
|
|
3
|
+
</template>
|
|
4
|
+
|
|
5
|
+
<script setup>
|
|
6
|
+
import { inject, onUnmounted } from "vue";
|
|
7
|
+
import { whenever } from "@vueuse/core";
|
|
8
|
+
import { MAP_INJECTION_KEY } from "./ScriptGoogleMaps.vue";
|
|
9
|
+
const props = defineProps({
|
|
10
|
+
options: { type: Object, required: false }
|
|
11
|
+
});
|
|
12
|
+
const eventsWithPolyMouseEventPayload = [
|
|
13
|
+
"click",
|
|
14
|
+
"contextmenu",
|
|
15
|
+
"dblclick",
|
|
16
|
+
"mousedown",
|
|
17
|
+
"mousemove",
|
|
18
|
+
"mouseout",
|
|
19
|
+
"mouseover",
|
|
20
|
+
"mouseup"
|
|
21
|
+
];
|
|
22
|
+
const eventsWithMapMouseEventPayload = [
|
|
23
|
+
"drag",
|
|
24
|
+
"dragend",
|
|
25
|
+
"dragstart"
|
|
26
|
+
];
|
|
27
|
+
const emit = defineEmits([]);
|
|
28
|
+
const mapContext = inject(MAP_INJECTION_KEY, void 0);
|
|
29
|
+
let polygon = void 0;
|
|
30
|
+
whenever(() => mapContext?.map.value && mapContext.mapsApi.value, () => {
|
|
31
|
+
polygon = new mapContext.mapsApi.value.Polygon({
|
|
32
|
+
map: mapContext.map.value,
|
|
33
|
+
...props.options
|
|
34
|
+
});
|
|
35
|
+
setupPolygonEventListeners(polygon);
|
|
36
|
+
whenever(() => props.options, (options) => {
|
|
37
|
+
polygon?.setOptions(options);
|
|
38
|
+
}, {
|
|
39
|
+
deep: true
|
|
40
|
+
});
|
|
41
|
+
}, {
|
|
42
|
+
immediate: true,
|
|
43
|
+
once: true
|
|
44
|
+
});
|
|
45
|
+
onUnmounted(() => {
|
|
46
|
+
if (!polygon || !mapContext?.mapsApi.value) {
|
|
47
|
+
return;
|
|
48
|
+
}
|
|
49
|
+
mapContext.mapsApi.value.event.clearInstanceListeners(polygon);
|
|
50
|
+
polygon.setMap(null);
|
|
51
|
+
});
|
|
52
|
+
function setupPolygonEventListeners(polygon2) {
|
|
53
|
+
eventsWithPolyMouseEventPayload.forEach((event) => {
|
|
54
|
+
polygon2.addListener(event, (payload) => emit(event, payload));
|
|
55
|
+
});
|
|
56
|
+
eventsWithMapMouseEventPayload.forEach((event) => {
|
|
57
|
+
polygon2.addListener(event, (payload) => emit(event, payload));
|
|
58
|
+
});
|
|
59
|
+
}
|
|
60
|
+
</script>
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
type __VLS_Props = {
|
|
2
|
+
options?: Omit<google.maps.PolygonOptions, 'map'>;
|
|
3
|
+
};
|
|
4
|
+
declare const _default: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {} & {
|
|
5
|
+
click: (payload: google.maps.PolyMouseEvent) => any;
|
|
6
|
+
contextmenu: (payload: google.maps.PolyMouseEvent) => any;
|
|
7
|
+
dblclick: (payload: google.maps.PolyMouseEvent) => any;
|
|
8
|
+
drag: (payload: google.maps.MapMouseEvent) => any;
|
|
9
|
+
dragend: (payload: google.maps.MapMouseEvent) => any;
|
|
10
|
+
dragstart: (payload: google.maps.MapMouseEvent) => any;
|
|
11
|
+
mousedown: (payload: google.maps.PolyMouseEvent) => any;
|
|
12
|
+
mousemove: (payload: google.maps.PolyMouseEvent) => any;
|
|
13
|
+
mouseout: (payload: google.maps.PolyMouseEvent) => any;
|
|
14
|
+
mouseover: (payload: google.maps.PolyMouseEvent) => any;
|
|
15
|
+
mouseup: (payload: google.maps.PolyMouseEvent) => any;
|
|
16
|
+
}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{
|
|
17
|
+
onClick?: ((payload: google.maps.PolyMouseEvent) => any) | undefined;
|
|
18
|
+
onContextmenu?: ((payload: google.maps.PolyMouseEvent) => any) | undefined;
|
|
19
|
+
onDblclick?: ((payload: google.maps.PolyMouseEvent) => any) | undefined;
|
|
20
|
+
onDrag?: ((payload: google.maps.MapMouseEvent) => any) | undefined;
|
|
21
|
+
onDragend?: ((payload: google.maps.MapMouseEvent) => any) | undefined;
|
|
22
|
+
onDragstart?: ((payload: google.maps.MapMouseEvent) => any) | undefined;
|
|
23
|
+
onMousedown?: ((payload: google.maps.PolyMouseEvent) => any) | undefined;
|
|
24
|
+
onMousemove?: ((payload: google.maps.PolyMouseEvent) => any) | undefined;
|
|
25
|
+
onMouseout?: ((payload: google.maps.PolyMouseEvent) => any) | undefined;
|
|
26
|
+
onMouseover?: ((payload: google.maps.PolyMouseEvent) => any) | undefined;
|
|
27
|
+
onMouseup?: ((payload: google.maps.PolyMouseEvent) => any) | undefined;
|
|
28
|
+
}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
29
|
+
export default _default;
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
type __VLS_Props = {
|
|
2
|
+
options?: Omit<google.maps.PolylineOptions, 'map'>;
|
|
3
|
+
};
|
|
4
|
+
declare const _default: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {} & {
|
|
5
|
+
click: (payload: google.maps.PolyMouseEvent) => any;
|
|
6
|
+
contextmenu: (payload: google.maps.PolyMouseEvent) => any;
|
|
7
|
+
dblclick: (payload: google.maps.PolyMouseEvent) => any;
|
|
8
|
+
drag: (payload: google.maps.MapMouseEvent) => any;
|
|
9
|
+
dragend: (payload: google.maps.MapMouseEvent) => any;
|
|
10
|
+
dragstart: (payload: google.maps.MapMouseEvent) => any;
|
|
11
|
+
mousedown: (payload: google.maps.PolyMouseEvent) => any;
|
|
12
|
+
mousemove: (payload: google.maps.PolyMouseEvent) => any;
|
|
13
|
+
mouseout: (payload: google.maps.PolyMouseEvent) => any;
|
|
14
|
+
mouseover: (payload: google.maps.PolyMouseEvent) => any;
|
|
15
|
+
mouseup: (payload: google.maps.PolyMouseEvent) => any;
|
|
16
|
+
}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{
|
|
17
|
+
onClick?: ((payload: google.maps.PolyMouseEvent) => any) | undefined;
|
|
18
|
+
onContextmenu?: ((payload: google.maps.PolyMouseEvent) => any) | undefined;
|
|
19
|
+
onDblclick?: ((payload: google.maps.PolyMouseEvent) => any) | undefined;
|
|
20
|
+
onDrag?: ((payload: google.maps.MapMouseEvent) => any) | undefined;
|
|
21
|
+
onDragend?: ((payload: google.maps.MapMouseEvent) => any) | undefined;
|
|
22
|
+
onDragstart?: ((payload: google.maps.MapMouseEvent) => any) | undefined;
|
|
23
|
+
onMousedown?: ((payload: google.maps.PolyMouseEvent) => any) | undefined;
|
|
24
|
+
onMousemove?: ((payload: google.maps.PolyMouseEvent) => any) | undefined;
|
|
25
|
+
onMouseout?: ((payload: google.maps.PolyMouseEvent) => any) | undefined;
|
|
26
|
+
onMouseover?: ((payload: google.maps.PolyMouseEvent) => any) | undefined;
|
|
27
|
+
onMouseup?: ((payload: google.maps.PolyMouseEvent) => any) | undefined;
|
|
28
|
+
}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
29
|
+
export default _default;
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
<template>
|
|
2
|
+
|
|
3
|
+
</template>
|
|
4
|
+
|
|
5
|
+
<script setup>
|
|
6
|
+
import { inject, onUnmounted } from "vue";
|
|
7
|
+
import { whenever } from "@vueuse/core";
|
|
8
|
+
import { MAP_INJECTION_KEY } from "./ScriptGoogleMaps.vue";
|
|
9
|
+
const props = defineProps({
|
|
10
|
+
options: { type: Object, required: false }
|
|
11
|
+
});
|
|
12
|
+
const eventsWithPolyMouseEventPayload = [
|
|
13
|
+
"click",
|
|
14
|
+
"contextmenu",
|
|
15
|
+
"dblclick",
|
|
16
|
+
"mousedown",
|
|
17
|
+
"mousemove",
|
|
18
|
+
"mouseout",
|
|
19
|
+
"mouseover",
|
|
20
|
+
"mouseup"
|
|
21
|
+
];
|
|
22
|
+
const eventsWithMapMouseEventPayload = [
|
|
23
|
+
"drag",
|
|
24
|
+
"dragend",
|
|
25
|
+
"dragstart"
|
|
26
|
+
];
|
|
27
|
+
const emit = defineEmits([]);
|
|
28
|
+
const mapContext = inject(MAP_INJECTION_KEY, void 0);
|
|
29
|
+
let polyline = void 0;
|
|
30
|
+
whenever(() => mapContext?.map.value && mapContext.mapsApi.value, () => {
|
|
31
|
+
polyline = new mapContext.mapsApi.value.Polyline({
|
|
32
|
+
map: mapContext.map.value,
|
|
33
|
+
...props.options
|
|
34
|
+
});
|
|
35
|
+
setupPolylineEventListeners(polyline);
|
|
36
|
+
whenever(() => props.options, (options) => {
|
|
37
|
+
polyline?.setOptions(options);
|
|
38
|
+
}, {
|
|
39
|
+
deep: true
|
|
40
|
+
});
|
|
41
|
+
}, {
|
|
42
|
+
immediate: true,
|
|
43
|
+
once: true
|
|
44
|
+
});
|
|
45
|
+
onUnmounted(() => {
|
|
46
|
+
if (!polyline || !mapContext?.mapsApi.value) {
|
|
47
|
+
return;
|
|
48
|
+
}
|
|
49
|
+
mapContext.mapsApi.value.event.clearInstanceListeners(polyline);
|
|
50
|
+
polyline.setMap(null);
|
|
51
|
+
});
|
|
52
|
+
function setupPolylineEventListeners(polyline2) {
|
|
53
|
+
eventsWithPolyMouseEventPayload.forEach((event) => {
|
|
54
|
+
polyline2.addListener(event, (payload) => emit(event, payload));
|
|
55
|
+
});
|
|
56
|
+
eventsWithMapMouseEventPayload.forEach((event) => {
|
|
57
|
+
polyline2.addListener(event, (payload) => emit(event, payload));
|
|
58
|
+
});
|
|
59
|
+
}
|
|
60
|
+
</script>
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
type __VLS_Props = {
|
|
2
|
+
options?: Omit<google.maps.PolylineOptions, 'map'>;
|
|
3
|
+
};
|
|
4
|
+
declare const _default: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {} & {
|
|
5
|
+
click: (payload: google.maps.PolyMouseEvent) => any;
|
|
6
|
+
contextmenu: (payload: google.maps.PolyMouseEvent) => any;
|
|
7
|
+
dblclick: (payload: google.maps.PolyMouseEvent) => any;
|
|
8
|
+
drag: (payload: google.maps.MapMouseEvent) => any;
|
|
9
|
+
dragend: (payload: google.maps.MapMouseEvent) => any;
|
|
10
|
+
dragstart: (payload: google.maps.MapMouseEvent) => any;
|
|
11
|
+
mousedown: (payload: google.maps.PolyMouseEvent) => any;
|
|
12
|
+
mousemove: (payload: google.maps.PolyMouseEvent) => any;
|
|
13
|
+
mouseout: (payload: google.maps.PolyMouseEvent) => any;
|
|
14
|
+
mouseover: (payload: google.maps.PolyMouseEvent) => any;
|
|
15
|
+
mouseup: (payload: google.maps.PolyMouseEvent) => any;
|
|
16
|
+
}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{
|
|
17
|
+
onClick?: ((payload: google.maps.PolyMouseEvent) => any) | undefined;
|
|
18
|
+
onContextmenu?: ((payload: google.maps.PolyMouseEvent) => any) | undefined;
|
|
19
|
+
onDblclick?: ((payload: google.maps.PolyMouseEvent) => any) | undefined;
|
|
20
|
+
onDrag?: ((payload: google.maps.MapMouseEvent) => any) | undefined;
|
|
21
|
+
onDragend?: ((payload: google.maps.MapMouseEvent) => any) | undefined;
|
|
22
|
+
onDragstart?: ((payload: google.maps.MapMouseEvent) => any) | undefined;
|
|
23
|
+
onMousedown?: ((payload: google.maps.PolyMouseEvent) => any) | undefined;
|
|
24
|
+
onMousemove?: ((payload: google.maps.PolyMouseEvent) => any) | undefined;
|
|
25
|
+
onMouseout?: ((payload: google.maps.PolyMouseEvent) => any) | undefined;
|
|
26
|
+
onMouseover?: ((payload: google.maps.PolyMouseEvent) => any) | undefined;
|
|
27
|
+
onMouseup?: ((payload: google.maps.PolyMouseEvent) => any) | undefined;
|
|
28
|
+
}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
29
|
+
export default _default;
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
type __VLS_Props = {
|
|
2
|
+
options?: Omit<google.maps.RectangleOptions, 'map'>;
|
|
3
|
+
};
|
|
4
|
+
declare const _default: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {} & {
|
|
5
|
+
click: (payload: google.maps.MapMouseEvent) => any;
|
|
6
|
+
contextmenu: (payload: google.maps.MapMouseEvent) => any;
|
|
7
|
+
dblclick: (payload: google.maps.MapMouseEvent) => any;
|
|
8
|
+
drag: (payload: google.maps.MapMouseEvent) => any;
|
|
9
|
+
dragend: (payload: google.maps.MapMouseEvent) => any;
|
|
10
|
+
dragstart: (payload: google.maps.MapMouseEvent) => any;
|
|
11
|
+
mousedown: (payload: google.maps.MapMouseEvent) => any;
|
|
12
|
+
mousemove: (payload: google.maps.MapMouseEvent) => any;
|
|
13
|
+
mouseout: (payload: google.maps.MapMouseEvent) => any;
|
|
14
|
+
mouseover: (payload: google.maps.MapMouseEvent) => any;
|
|
15
|
+
mouseup: (payload: google.maps.MapMouseEvent) => any;
|
|
16
|
+
bounds_changed: () => any;
|
|
17
|
+
}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{
|
|
18
|
+
onClick?: ((payload: google.maps.MapMouseEvent) => any) | undefined;
|
|
19
|
+
onContextmenu?: ((payload: google.maps.MapMouseEvent) => any) | undefined;
|
|
20
|
+
onDblclick?: ((payload: google.maps.MapMouseEvent) => any) | undefined;
|
|
21
|
+
onDrag?: ((payload: google.maps.MapMouseEvent) => any) | undefined;
|
|
22
|
+
onDragend?: ((payload: google.maps.MapMouseEvent) => any) | undefined;
|
|
23
|
+
onDragstart?: ((payload: google.maps.MapMouseEvent) => any) | undefined;
|
|
24
|
+
onMousedown?: ((payload: google.maps.MapMouseEvent) => any) | undefined;
|
|
25
|
+
onMousemove?: ((payload: google.maps.MapMouseEvent) => any) | undefined;
|
|
26
|
+
onMouseout?: ((payload: google.maps.MapMouseEvent) => any) | undefined;
|
|
27
|
+
onMouseover?: ((payload: google.maps.MapMouseEvent) => any) | undefined;
|
|
28
|
+
onMouseup?: ((payload: google.maps.MapMouseEvent) => any) | undefined;
|
|
29
|
+
onBounds_changed?: (() => any) | undefined;
|
|
30
|
+
}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
31
|
+
export default _default;
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
<template>
|
|
2
|
+
|
|
3
|
+
</template>
|
|
4
|
+
|
|
5
|
+
<script setup>
|
|
6
|
+
import { inject, onUnmounted } from "vue";
|
|
7
|
+
import { whenever } from "@vueuse/core";
|
|
8
|
+
import { MAP_INJECTION_KEY } from "./ScriptGoogleMaps.vue";
|
|
9
|
+
const props = defineProps({
|
|
10
|
+
options: { type: Object, required: false }
|
|
11
|
+
});
|
|
12
|
+
const eventsWithoutPayload = [
|
|
13
|
+
"bounds_changed"
|
|
14
|
+
];
|
|
15
|
+
const eventsWithMapMouseEventPayload = [
|
|
16
|
+
"click",
|
|
17
|
+
"contextmenu",
|
|
18
|
+
"dblclick",
|
|
19
|
+
"drag",
|
|
20
|
+
"dragend",
|
|
21
|
+
"dragstart",
|
|
22
|
+
"mousedown",
|
|
23
|
+
"mousemove",
|
|
24
|
+
"mouseout",
|
|
25
|
+
"mouseover",
|
|
26
|
+
"mouseup"
|
|
27
|
+
];
|
|
28
|
+
const emit = defineEmits([]);
|
|
29
|
+
const mapContext = inject(MAP_INJECTION_KEY, void 0);
|
|
30
|
+
let rectangle = void 0;
|
|
31
|
+
whenever(() => mapContext?.map.value && mapContext.mapsApi.value, () => {
|
|
32
|
+
rectangle = new mapContext.mapsApi.value.Rectangle({
|
|
33
|
+
map: mapContext.map.value,
|
|
34
|
+
...props.options
|
|
35
|
+
});
|
|
36
|
+
setupRectangleEventListeners(rectangle);
|
|
37
|
+
whenever(() => props.options, (options) => {
|
|
38
|
+
rectangle?.setOptions(options);
|
|
39
|
+
}, {
|
|
40
|
+
deep: true
|
|
41
|
+
});
|
|
42
|
+
}, {
|
|
43
|
+
immediate: true,
|
|
44
|
+
once: true
|
|
45
|
+
});
|
|
46
|
+
onUnmounted(() => {
|
|
47
|
+
if (!rectangle || !mapContext?.mapsApi.value) {
|
|
48
|
+
return;
|
|
49
|
+
}
|
|
50
|
+
mapContext.mapsApi.value.event.clearInstanceListeners(rectangle);
|
|
51
|
+
rectangle.setMap(null);
|
|
52
|
+
});
|
|
53
|
+
function setupRectangleEventListeners(rectangle2) {
|
|
54
|
+
eventsWithoutPayload.forEach((event) => {
|
|
55
|
+
rectangle2.addListener(event, () => emit(event));
|
|
56
|
+
});
|
|
57
|
+
eventsWithMapMouseEventPayload.forEach((event) => {
|
|
58
|
+
rectangle2.addListener(event, (payload) => emit(event, payload));
|
|
59
|
+
});
|
|
60
|
+
}
|
|
61
|
+
</script>
|