@nuxt/scripts 1.0.0-beta.26 → 1.0.0-beta.28

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.
Files changed (52) hide show
  1. package/dist/client/200.html +1 -1
  2. package/dist/client/404.html +1 -1
  3. package/dist/client/_nuxt/{C-7nRtzO.js → AwAKM0sG.js} +1 -1
  4. package/dist/client/_nuxt/{DjhmCJlE.js → Bl23o3st.js} +18 -18
  5. package/dist/client/_nuxt/{TJ5JFHov.js → CYlYSSNW.js} +1 -1
  6. package/dist/client/_nuxt/{D5k4eN9O.js → D5FIkDae.js} +1 -1
  7. package/dist/client/_nuxt/builds/latest.json +1 -1
  8. package/dist/client/_nuxt/builds/meta/3ca2fe82-918c-4528-826c-0bf9ff54a5fa.json +1 -0
  9. package/dist/client/_nuxt/error-404.1K8v8Su2.css +1 -0
  10. package/dist/client/_nuxt/error-500.B9qvKpQm.css +1 -0
  11. package/dist/client/index.html +1 -1
  12. package/dist/module.d.mts +1 -1
  13. package/dist/module.d.ts +1 -1
  14. package/dist/module.json +1 -1
  15. package/dist/module.mjs +50 -9
  16. package/dist/registry.mjs +6 -3
  17. package/dist/runtime/components/GoogleMaps/ScriptGoogleMaps.d.vue.ts +13 -3
  18. package/dist/runtime/components/GoogleMaps/ScriptGoogleMaps.vue +12 -7
  19. package/dist/runtime/components/GoogleMaps/ScriptGoogleMaps.vue.d.ts +13 -3
  20. package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsAdvancedMarkerElement.d.vue.ts +4 -34
  21. package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsAdvancedMarkerElement.vue +41 -38
  22. package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsAdvancedMarkerElement.vue.d.ts +4 -34
  23. package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsCircle.vue +5 -9
  24. package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsGeoJson.d.vue.ts +35 -0
  25. package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsGeoJson.vue +68 -0
  26. package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsGeoJson.vue.d.ts +35 -0
  27. package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsInfoWindow.d.vue.ts +4 -4
  28. package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsInfoWindow.vue +2 -6
  29. package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsInfoWindow.vue.d.ts +4 -4
  30. package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsMarker.d.vue.ts +6 -4
  31. package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsMarker.vue +18 -10
  32. package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsMarker.vue.d.ts +6 -4
  33. package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsOverlayView.d.vue.ts +40 -0
  34. package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsOverlayView.vue +168 -0
  35. package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsOverlayView.vue.d.ts +40 -0
  36. package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsPolygon.vue +4 -9
  37. package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsPolyline.vue +4 -9
  38. package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsRectangle.vue +5 -9
  39. package/dist/runtime/components/GoogleMaps/bindGoogleMapsEvents.d.ts +13 -0
  40. package/dist/runtime/components/GoogleMaps/bindGoogleMapsEvents.js +8 -0
  41. package/dist/runtime/registry/gravatar.d.ts +1 -0
  42. package/dist/runtime/registry/gravatar.js +1 -0
  43. package/dist/runtime/server/gravatar-proxy.d.ts +1 -1
  44. package/dist/runtime/server/gravatar-proxy.js +0 -1
  45. package/dist/stats.d.mts +82 -11
  46. package/dist/stats.d.ts +82 -11
  47. package/dist/stats.mjs +763 -351
  48. package/dist/types-source.mjs +1247 -67
  49. package/package.json +6 -4
  50. package/dist/client/_nuxt/builds/meta/33e1ac0e-aba1-4856-8beb-775c426be236.json +0 -1
  51. package/dist/client/_nuxt/error-404.C_3_IG5y.css +0 -1
  52. package/dist/client/_nuxt/error-500.DSv6YikH.css +0 -1
@@ -2,54 +2,24 @@ export { ADVANCED_MARKER_ELEMENT_INJECTION_KEY } from './injectionKeys.js';
2
2
  declare const _default: typeof __VLS_export;
3
3
  export default _default;
4
4
  declare const __VLS_export: __VLS_WithSlots<import("vue").DefineComponent<{
5
+ position?: google.maps.LatLngLiteral | google.maps.LatLng;
5
6
  options?: Omit<google.maps.marker.AdvancedMarkerElementOptions, "map">;
6
7
  }, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {} & {
7
- contextmenu: (payload: google.maps.MapMouseEvent) => any;
8
8
  click: (payload: google.maps.MapMouseEvent) => any;
9
- dblclick: (payload: google.maps.MapMouseEvent) => any;
10
9
  drag: (payload: google.maps.MapMouseEvent) => any;
11
10
  dragend: (payload: google.maps.MapMouseEvent) => any;
12
11
  dragstart: (payload: google.maps.MapMouseEvent) => any;
13
- mousedown: (payload: google.maps.MapMouseEvent) => any;
14
- mouseout: (payload: google.maps.MapMouseEvent) => any;
15
- mouseover: (payload: google.maps.MapMouseEvent) => any;
16
- mouseup: (payload: google.maps.MapMouseEvent) => any;
17
- animation_changed: () => any;
18
- clickable_changed: () => any;
19
- cursor_changed: () => any;
20
- draggable_changed: () => any;
21
- flat_changed: () => any;
22
- icon_changed: () => any;
23
- position_changed: () => any;
24
- shape_changed: () => any;
25
- title_changed: () => any;
26
- visible_changed: () => any;
27
- zindex_changed: () => any;
28
12
  }, string, import("vue").PublicProps, Readonly<{
13
+ position?: google.maps.LatLngLiteral | google.maps.LatLng;
29
14
  options?: Omit<google.maps.marker.AdvancedMarkerElementOptions, "map">;
30
15
  }> & Readonly<{
31
- onContextmenu?: ((payload: google.maps.MapMouseEvent) => any) | undefined;
32
16
  onClick?: ((payload: google.maps.MapMouseEvent) => any) | undefined;
33
- onDblclick?: ((payload: google.maps.MapMouseEvent) => any) | undefined;
34
17
  onDrag?: ((payload: google.maps.MapMouseEvent) => any) | undefined;
35
18
  onDragend?: ((payload: google.maps.MapMouseEvent) => any) | undefined;
36
19
  onDragstart?: ((payload: google.maps.MapMouseEvent) => any) | undefined;
37
- onMousedown?: ((payload: google.maps.MapMouseEvent) => any) | undefined;
38
- onMouseout?: ((payload: google.maps.MapMouseEvent) => any) | undefined;
39
- onMouseover?: ((payload: google.maps.MapMouseEvent) => any) | undefined;
40
- onMouseup?: ((payload: google.maps.MapMouseEvent) => any) | undefined;
41
- onAnimation_changed?: (() => any) | undefined;
42
- onClickable_changed?: (() => any) | undefined;
43
- onCursor_changed?: (() => any) | undefined;
44
- onDraggable_changed?: (() => any) | undefined;
45
- onFlat_changed?: (() => any) | undefined;
46
- onIcon_changed?: (() => any) | undefined;
47
- onPosition_changed?: (() => any) | undefined;
48
- onShape_changed?: (() => any) | undefined;
49
- onTitle_changed?: (() => any) | undefined;
50
- onVisible_changed?: (() => any) | undefined;
51
- onZindex_changed?: (() => any) | undefined;
52
20
  }>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>, {
21
+ content?: (props: {}) => any;
22
+ } & {
53
23
  default?: (props: {}) => any;
54
24
  }>;
55
25
  type __VLS_WithSlots<T, S> = T & {
@@ -1,5 +1,6 @@
1
1
  <script>
2
- import { inject, provide, watch } from "vue";
2
+ import { inject, provide, useSlots, useTemplateRef, watch } from "vue";
3
+ import { bindGoogleMapsEvents } from "./bindGoogleMapsEvents";
3
4
  import { ADVANCED_MARKER_ELEMENT_INJECTION_KEY } from "./injectionKeys";
4
5
  import { MARKER_CLUSTERER_INJECTION_KEY } from "./ScriptGoogleMapsMarkerClusterer.vue";
5
6
  import { useGoogleMapsResource } from "./useGoogleMapsResource";
@@ -8,42 +9,38 @@ export { ADVANCED_MARKER_ELEMENT_INJECTION_KEY } from "./injectionKeys";
8
9
 
9
10
  <script setup>
10
11
  const props = defineProps({
12
+ position: { type: null, required: false },
11
13
  options: { type: Object, required: false }
12
14
  });
13
15
  const emit = defineEmits([]);
14
- const eventsWithoutPayload = [
15
- "animation_changed",
16
- "clickable_changed",
17
- "cursor_changed",
18
- "draggable_changed",
19
- "flat_changed",
20
- "icon_changed",
21
- "position_changed",
22
- "shape_changed",
23
- "title_changed",
24
- "visible_changed",
25
- "zindex_changed"
26
- ];
16
+ const eventsWithoutPayload = [];
27
17
  const eventsWithMapMouseEventPayload = [
28
18
  "click",
29
- "contextmenu",
30
- "dblclick",
31
19
  "drag",
32
20
  "dragend",
33
- "dragstart",
34
- "mousedown",
35
- "mouseout",
36
- "mouseover",
37
- "mouseup"
21
+ "dragstart"
38
22
  ];
23
+ const slots = useSlots();
24
+ const markerContent = useTemplateRef("marker-content");
39
25
  const markerClustererContext = inject(MARKER_CLUSTERER_INJECTION_KEY, void 0);
40
26
  const advancedMarkerElement = useGoogleMapsResource({
27
+ ready: () => !slots.content || !!markerContent.value,
41
28
  async create({ mapsApi, map }) {
42
29
  await mapsApi.importLibrary("marker");
43
- const marker = new mapsApi.marker.AdvancedMarkerElement(props.options);
44
- setupEventListeners(marker);
30
+ const marker = new mapsApi.marker.AdvancedMarkerElement({
31
+ ...props.options,
32
+ ...props.position ? { position: props.position } : {}
33
+ });
34
+ if (markerContent.value) {
35
+ marker.content = markerContent.value;
36
+ }
37
+ bindGoogleMapsEvents(marker, emit, {
38
+ noPayload: eventsWithoutPayload,
39
+ withPayload: eventsWithMapMouseEventPayload
40
+ });
45
41
  if (markerClustererContext?.markerClusterer.value) {
46
- markerClustererContext.markerClusterer.value.addMarker(marker);
42
+ markerClustererContext.markerClusterer.value.addMarker(marker, true);
43
+ markerClustererContext.requestRerender();
47
44
  } else {
48
45
  marker.map = map;
49
46
  }
@@ -52,28 +49,34 @@ const advancedMarkerElement = useGoogleMapsResource({
52
49
  cleanup(marker, { mapsApi }) {
53
50
  mapsApi.event.clearInstanceListeners(marker);
54
51
  if (markerClustererContext?.markerClusterer.value) {
55
- markerClustererContext.markerClusterer.value.removeMarker(marker);
52
+ markerClustererContext.markerClusterer.value.removeMarker(marker, true);
53
+ markerClustererContext.requestRerender();
56
54
  } else {
57
55
  marker.map = null;
58
56
  }
59
57
  }
60
58
  });
61
- watch(() => props.options, (options) => {
62
- if (advancedMarkerElement.value && options) {
63
- Object.assign(advancedMarkerElement.value, options);
64
- }
65
- }, { deep: true });
59
+ watch(
60
+ () => [props.position?.lat, props.position?.lng, props.position, props.options],
61
+ () => {
62
+ if (!advancedMarkerElement.value)
63
+ return;
64
+ if (props.options)
65
+ Object.assign(advancedMarkerElement.value, props.options);
66
+ advancedMarkerElement.value.position = props.position ?? props.options?.position;
67
+ },
68
+ { deep: true }
69
+ );
66
70
  provide(ADVANCED_MARKER_ELEMENT_INJECTION_KEY, { advancedMarkerElement });
67
- function setupEventListeners(marker) {
68
- eventsWithoutPayload.forEach((event) => {
69
- marker.addListener(event, () => emit(event));
70
- });
71
- eventsWithMapMouseEventPayload.forEach((event) => {
72
- marker.addListener(event, (payload) => emit(event, payload));
73
- });
74
- }
75
71
  </script>
76
72
 
77
73
  <template>
74
+ <!-- Hidden container for #content slot — becomes the marker visual -->
75
+ <div v-if="$slots.content" style="display: none;">
76
+ <div ref="marker-content">
77
+ <slot name="content" />
78
+ </div>
79
+ </div>
80
+ <!-- Default slot for child components (InfoWindow, OverlayView, etc.) -->
78
81
  <slot v-if="advancedMarkerElement" />
79
82
  </template>
@@ -2,54 +2,24 @@ export { ADVANCED_MARKER_ELEMENT_INJECTION_KEY } from './injectionKeys.js';
2
2
  declare const _default: typeof __VLS_export;
3
3
  export default _default;
4
4
  declare const __VLS_export: __VLS_WithSlots<import("vue").DefineComponent<{
5
+ position?: google.maps.LatLngLiteral | google.maps.LatLng;
5
6
  options?: Omit<google.maps.marker.AdvancedMarkerElementOptions, "map">;
6
7
  }, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {} & {
7
- contextmenu: (payload: google.maps.MapMouseEvent) => any;
8
8
  click: (payload: google.maps.MapMouseEvent) => any;
9
- dblclick: (payload: google.maps.MapMouseEvent) => any;
10
9
  drag: (payload: google.maps.MapMouseEvent) => any;
11
10
  dragend: (payload: google.maps.MapMouseEvent) => any;
12
11
  dragstart: (payload: google.maps.MapMouseEvent) => any;
13
- mousedown: (payload: google.maps.MapMouseEvent) => any;
14
- mouseout: (payload: google.maps.MapMouseEvent) => any;
15
- mouseover: (payload: google.maps.MapMouseEvent) => any;
16
- mouseup: (payload: google.maps.MapMouseEvent) => any;
17
- animation_changed: () => any;
18
- clickable_changed: () => any;
19
- cursor_changed: () => any;
20
- draggable_changed: () => any;
21
- flat_changed: () => any;
22
- icon_changed: () => any;
23
- position_changed: () => any;
24
- shape_changed: () => any;
25
- title_changed: () => any;
26
- visible_changed: () => any;
27
- zindex_changed: () => any;
28
12
  }, string, import("vue").PublicProps, Readonly<{
13
+ position?: google.maps.LatLngLiteral | google.maps.LatLng;
29
14
  options?: Omit<google.maps.marker.AdvancedMarkerElementOptions, "map">;
30
15
  }> & Readonly<{
31
- onContextmenu?: ((payload: google.maps.MapMouseEvent) => any) | undefined;
32
16
  onClick?: ((payload: google.maps.MapMouseEvent) => any) | undefined;
33
- onDblclick?: ((payload: google.maps.MapMouseEvent) => any) | undefined;
34
17
  onDrag?: ((payload: google.maps.MapMouseEvent) => any) | undefined;
35
18
  onDragend?: ((payload: google.maps.MapMouseEvent) => any) | undefined;
36
19
  onDragstart?: ((payload: google.maps.MapMouseEvent) => any) | undefined;
37
- onMousedown?: ((payload: google.maps.MapMouseEvent) => any) | undefined;
38
- onMouseout?: ((payload: google.maps.MapMouseEvent) => any) | undefined;
39
- onMouseover?: ((payload: google.maps.MapMouseEvent) => any) | undefined;
40
- onMouseup?: ((payload: google.maps.MapMouseEvent) => any) | undefined;
41
- onAnimation_changed?: (() => any) | undefined;
42
- onClickable_changed?: (() => any) | undefined;
43
- onCursor_changed?: (() => any) | undefined;
44
- onDraggable_changed?: (() => any) | undefined;
45
- onFlat_changed?: (() => any) | undefined;
46
- onIcon_changed?: (() => any) | undefined;
47
- onPosition_changed?: (() => any) | undefined;
48
- onShape_changed?: (() => any) | undefined;
49
- onTitle_changed?: (() => any) | undefined;
50
- onVisible_changed?: (() => any) | undefined;
51
- onZindex_changed?: (() => any) | undefined;
52
20
  }>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>, {
21
+ content?: (props: {}) => any;
22
+ } & {
53
23
  default?: (props: {}) => any;
54
24
  }>;
55
25
  type __VLS_WithSlots<T, S> = T & {
@@ -1,5 +1,6 @@
1
1
  <script setup>
2
2
  import { watch } from "vue";
3
+ import { bindGoogleMapsEvents } from "./bindGoogleMapsEvents";
3
4
  import { useGoogleMapsResource } from "./useGoogleMapsResource";
4
5
  const props = defineProps({
5
6
  options: { type: Object, required: false }
@@ -25,7 +26,10 @@ const eventsWithMapMouseEventPayload = [
25
26
  const circle = useGoogleMapsResource({
26
27
  create({ mapsApi, map }) {
27
28
  const c = new mapsApi.Circle({ map, ...props.options });
28
- setupEventListeners(c);
29
+ bindGoogleMapsEvents(c, emit, {
30
+ noPayload: eventsWithoutPayload,
31
+ withPayload: eventsWithMapMouseEventPayload
32
+ });
29
33
  return c;
30
34
  },
31
35
  cleanup(c, { mapsApi }) {
@@ -38,14 +42,6 @@ watch(() => props.options, (options) => {
38
42
  circle.value.setOptions(options);
39
43
  }
40
44
  }, { deep: true });
41
- function setupEventListeners(c) {
42
- eventsWithoutPayload.forEach((event) => {
43
- c.addListener(event, () => emit(event));
44
- });
45
- eventsWithMapMouseEventPayload.forEach((event) => {
46
- c.addListener(event, (payload) => emit(event, payload));
47
- });
48
- }
49
45
  </script>
50
46
 
51
47
  <template>
@@ -0,0 +1,35 @@
1
+ type __VLS_Props = {
2
+ src: string | object;
3
+ style?: google.maps.Data.StylingFunction | google.maps.Data.StyleOptions;
4
+ };
5
+ declare const __VLS_export: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {} & {
6
+ contextmenu: (payload: google.maps.Data.MouseEvent) => any;
7
+ click: (payload: google.maps.Data.MouseEvent) => any;
8
+ dblclick: (payload: google.maps.Data.MouseEvent) => any;
9
+ mousedown: (payload: google.maps.Data.MouseEvent) => any;
10
+ mousemove: (payload: google.maps.Data.MouseEvent) => any;
11
+ mouseout: (payload: google.maps.Data.MouseEvent) => any;
12
+ mouseover: (payload: google.maps.Data.MouseEvent) => any;
13
+ mouseup: (payload: google.maps.Data.MouseEvent) => any;
14
+ addfeature: (payload: google.maps.Data.AddFeatureEvent) => any;
15
+ removefeature: (payload: google.maps.Data.RemoveFeatureEvent) => any;
16
+ setgeometry: (payload: google.maps.Data.SetGeometryEvent) => any;
17
+ setproperty: (payload: google.maps.Data.SetPropertyEvent) => any;
18
+ removeproperty: (payload: google.maps.Data.RemovePropertyEvent) => any;
19
+ }, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{
20
+ onContextmenu?: ((payload: google.maps.Data.MouseEvent) => any) | undefined;
21
+ onClick?: ((payload: google.maps.Data.MouseEvent) => any) | undefined;
22
+ onDblclick?: ((payload: google.maps.Data.MouseEvent) => any) | undefined;
23
+ onMousedown?: ((payload: google.maps.Data.MouseEvent) => any) | undefined;
24
+ onMousemove?: ((payload: google.maps.Data.MouseEvent) => any) | undefined;
25
+ onMouseout?: ((payload: google.maps.Data.MouseEvent) => any) | undefined;
26
+ onMouseover?: ((payload: google.maps.Data.MouseEvent) => any) | undefined;
27
+ onMouseup?: ((payload: google.maps.Data.MouseEvent) => any) | undefined;
28
+ onAddfeature?: ((payload: google.maps.Data.AddFeatureEvent) => any) | undefined;
29
+ onRemovefeature?: ((payload: google.maps.Data.RemoveFeatureEvent) => any) | undefined;
30
+ onSetgeometry?: ((payload: google.maps.Data.SetGeometryEvent) => any) | undefined;
31
+ onSetproperty?: ((payload: google.maps.Data.SetPropertyEvent) => any) | undefined;
32
+ onRemoveproperty?: ((payload: google.maps.Data.RemovePropertyEvent) => any) | undefined;
33
+ }>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
34
+ declare const _default: typeof __VLS_export;
35
+ export default _default;
@@ -0,0 +1,68 @@
1
+ <script setup>
2
+ import { watch } from "vue";
3
+ import { useGoogleMapsResource } from "./useGoogleMapsResource";
4
+ const props = defineProps({
5
+ src: { type: [String, Object], required: true },
6
+ style: { type: null, required: false }
7
+ });
8
+ const emit = defineEmits(["addfeature", "removefeature", "setgeometry", "setproperty", "removeproperty"]);
9
+ const dataEvents = [
10
+ "click",
11
+ "contextmenu",
12
+ "dblclick",
13
+ "mousedown",
14
+ "mousemove",
15
+ "mouseout",
16
+ "mouseover",
17
+ "mouseup"
18
+ ];
19
+ const featureEvents = [
20
+ "addfeature",
21
+ "removefeature",
22
+ "setgeometry",
23
+ "setproperty",
24
+ "removeproperty"
25
+ ];
26
+ function loadGeoJson(src, layer) {
27
+ if (typeof src === "string")
28
+ layer.loadGeoJson(src);
29
+ else
30
+ layer.addGeoJson(src);
31
+ }
32
+ const dataLayer = useGoogleMapsResource({
33
+ create({ mapsApi, map }) {
34
+ const layer = new mapsApi.Data({ map });
35
+ if (props.style)
36
+ layer.setStyle(props.style);
37
+ loadGeoJson(props.src, layer);
38
+ setupEventListeners(layer);
39
+ return layer;
40
+ },
41
+ cleanup(layer, { mapsApi }) {
42
+ mapsApi.event.clearInstanceListeners(layer);
43
+ layer.setMap(null);
44
+ }
45
+ });
46
+ watch(() => props.src, (src) => {
47
+ if (!dataLayer.value)
48
+ return;
49
+ dataLayer.value.forEach((feature) => dataLayer.value.remove(feature));
50
+ loadGeoJson(src, dataLayer.value);
51
+ });
52
+ watch(() => props.style, (style) => {
53
+ if (dataLayer.value)
54
+ dataLayer.value.setStyle(style ?? {});
55
+ }, { deep: true });
56
+ function setupEventListeners(layer) {
57
+ dataEvents.forEach((event) => {
58
+ layer.addListener(event, (payload) => emit(event, payload));
59
+ });
60
+ featureEvents.forEach((event) => {
61
+ layer.addListener(event, (payload) => emit(event, payload));
62
+ });
63
+ }
64
+ </script>
65
+
66
+ <template>
67
+
68
+ </template>
@@ -0,0 +1,35 @@
1
+ type __VLS_Props = {
2
+ src: string | object;
3
+ style?: google.maps.Data.StylingFunction | google.maps.Data.StyleOptions;
4
+ };
5
+ declare const __VLS_export: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {} & {
6
+ contextmenu: (payload: google.maps.Data.MouseEvent) => any;
7
+ click: (payload: google.maps.Data.MouseEvent) => any;
8
+ dblclick: (payload: google.maps.Data.MouseEvent) => any;
9
+ mousedown: (payload: google.maps.Data.MouseEvent) => any;
10
+ mousemove: (payload: google.maps.Data.MouseEvent) => any;
11
+ mouseout: (payload: google.maps.Data.MouseEvent) => any;
12
+ mouseover: (payload: google.maps.Data.MouseEvent) => any;
13
+ mouseup: (payload: google.maps.Data.MouseEvent) => any;
14
+ addfeature: (payload: google.maps.Data.AddFeatureEvent) => any;
15
+ removefeature: (payload: google.maps.Data.RemoveFeatureEvent) => any;
16
+ setgeometry: (payload: google.maps.Data.SetGeometryEvent) => any;
17
+ setproperty: (payload: google.maps.Data.SetPropertyEvent) => any;
18
+ removeproperty: (payload: google.maps.Data.RemovePropertyEvent) => any;
19
+ }, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{
20
+ onContextmenu?: ((payload: google.maps.Data.MouseEvent) => any) | undefined;
21
+ onClick?: ((payload: google.maps.Data.MouseEvent) => any) | undefined;
22
+ onDblclick?: ((payload: google.maps.Data.MouseEvent) => any) | undefined;
23
+ onMousedown?: ((payload: google.maps.Data.MouseEvent) => any) | undefined;
24
+ onMousemove?: ((payload: google.maps.Data.MouseEvent) => any) | undefined;
25
+ onMouseout?: ((payload: google.maps.Data.MouseEvent) => any) | undefined;
26
+ onMouseover?: ((payload: google.maps.Data.MouseEvent) => any) | undefined;
27
+ onMouseup?: ((payload: google.maps.Data.MouseEvent) => any) | undefined;
28
+ onAddfeature?: ((payload: google.maps.Data.AddFeatureEvent) => any) | undefined;
29
+ onRemovefeature?: ((payload: google.maps.Data.RemoveFeatureEvent) => any) | undefined;
30
+ onSetgeometry?: ((payload: google.maps.Data.SetGeometryEvent) => any) | undefined;
31
+ onSetproperty?: ((payload: google.maps.Data.SetPropertyEvent) => any) | undefined;
32
+ onRemoveproperty?: ((payload: google.maps.Data.RemovePropertyEvent) => any) | undefined;
33
+ }>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
34
+ declare const _default: typeof __VLS_export;
35
+ export default _default;
@@ -8,23 +8,23 @@ type __VLS_Slots = {} & {
8
8
  declare const __VLS_base: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {} & {
9
9
  close: () => any;
10
10
  visible: () => any;
11
- position_changed: () => any;
12
- zindex_changed: () => any;
13
11
  closeclick: () => any;
14
12
  content_changed: () => any;
15
13
  domready: () => any;
16
14
  headercontent_changed: () => any;
17
15
  headerdisabled_changed: () => any;
16
+ position_changed: () => any;
17
+ zindex_changed: () => any;
18
18
  }, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{
19
19
  onClose?: (() => any) | undefined;
20
20
  onVisible?: (() => any) | undefined;
21
- onPosition_changed?: (() => any) | undefined;
22
- onZindex_changed?: (() => any) | undefined;
23
21
  onCloseclick?: (() => any) | undefined;
24
22
  onContent_changed?: (() => any) | undefined;
25
23
  onDomready?: (() => any) | undefined;
26
24
  onHeadercontent_changed?: (() => any) | undefined;
27
25
  onHeaderdisabled_changed?: (() => any) | undefined;
26
+ onPosition_changed?: (() => any) | undefined;
27
+ onZindex_changed?: (() => any) | undefined;
28
28
  }>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
29
29
  declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
30
30
  declare const _default: typeof __VLS_export;
@@ -1,5 +1,6 @@
1
1
  <script setup>
2
2
  import { inject, useTemplateRef, watch } from "vue";
3
+ import { bindGoogleMapsEvents } from "./bindGoogleMapsEvents";
3
4
  import { ADVANCED_MARKER_ELEMENT_INJECTION_KEY, MARKER_INJECTION_KEY } from "./injectionKeys";
4
5
  import { useGoogleMapsResource } from "./useGoogleMapsResource";
5
6
  const props = defineProps({
@@ -28,7 +29,7 @@ const infoWindow = useGoogleMapsResource({
28
29
  content: infoWindowContainer.value,
29
30
  ...props.options
30
31
  });
31
- setupEventListeners(iw);
32
+ bindGoogleMapsEvents(iw, emit, { noPayload: infoWindowEvents });
32
33
  if (markerContext?.marker.value) {
33
34
  markerClickListener = markerContext.marker.value.addListener("click", () => {
34
35
  iw.open({
@@ -61,11 +62,6 @@ watch(() => props.options, (options) => {
61
62
  infoWindow.value.setOptions(options);
62
63
  }
63
64
  }, { deep: true });
64
- function setupEventListeners(iw) {
65
- infoWindowEvents.forEach((event) => {
66
- iw.addListener(event, () => emit(event));
67
- });
68
- }
69
65
  </script>
70
66
 
71
67
  <template>
@@ -8,23 +8,23 @@ type __VLS_Slots = {} & {
8
8
  declare const __VLS_base: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {} & {
9
9
  close: () => any;
10
10
  visible: () => any;
11
- position_changed: () => any;
12
- zindex_changed: () => any;
13
11
  closeclick: () => any;
14
12
  content_changed: () => any;
15
13
  domready: () => any;
16
14
  headercontent_changed: () => any;
17
15
  headerdisabled_changed: () => any;
16
+ position_changed: () => any;
17
+ zindex_changed: () => any;
18
18
  }, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{
19
19
  onClose?: (() => any) | undefined;
20
20
  onVisible?: (() => any) | undefined;
21
- onPosition_changed?: (() => any) | undefined;
22
- onZindex_changed?: (() => any) | undefined;
23
21
  onCloseclick?: (() => any) | undefined;
24
22
  onContent_changed?: (() => any) | undefined;
25
23
  onDomready?: (() => any) | undefined;
26
24
  onHeadercontent_changed?: (() => any) | undefined;
27
25
  onHeaderdisabled_changed?: (() => any) | undefined;
26
+ onPosition_changed?: (() => any) | undefined;
27
+ onZindex_changed?: (() => any) | undefined;
28
28
  }>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
29
29
  declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
30
30
  declare const _default: typeof __VLS_export;
@@ -2,6 +2,7 @@ export { MARKER_INJECTION_KEY } from './injectionKeys.js';
2
2
  declare const _default: typeof __VLS_export;
3
3
  export default _default;
4
4
  declare const __VLS_export: __VLS_WithSlots<import("vue").DefineComponent<{
5
+ position?: google.maps.LatLngLiteral | google.maps.LatLng;
5
6
  options?: Omit<google.maps.MarkerOptions, "map">;
6
7
  }, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {} & {
7
8
  contextmenu: (payload: google.maps.MapMouseEvent) => any;
@@ -14,18 +15,19 @@ declare const __VLS_export: __VLS_WithSlots<import("vue").DefineComponent<{
14
15
  mouseout: (payload: google.maps.MapMouseEvent) => any;
15
16
  mouseover: (payload: google.maps.MapMouseEvent) => any;
16
17
  mouseup: (payload: google.maps.MapMouseEvent) => any;
18
+ position_changed: () => any;
19
+ zindex_changed: () => any;
17
20
  animation_changed: () => any;
18
21
  clickable_changed: () => any;
19
22
  cursor_changed: () => any;
20
23
  draggable_changed: () => any;
21
24
  flat_changed: () => any;
22
25
  icon_changed: () => any;
23
- position_changed: () => any;
24
26
  shape_changed: () => any;
25
27
  title_changed: () => any;
26
28
  visible_changed: () => any;
27
- zindex_changed: () => any;
28
29
  }, string, import("vue").PublicProps, Readonly<{
30
+ position?: google.maps.LatLngLiteral | google.maps.LatLng;
29
31
  options?: Omit<google.maps.MarkerOptions, "map">;
30
32
  }> & Readonly<{
31
33
  onContextmenu?: ((payload: google.maps.MapMouseEvent) => any) | undefined;
@@ -38,17 +40,17 @@ declare const __VLS_export: __VLS_WithSlots<import("vue").DefineComponent<{
38
40
  onMouseout?: ((payload: google.maps.MapMouseEvent) => any) | undefined;
39
41
  onMouseover?: ((payload: google.maps.MapMouseEvent) => any) | undefined;
40
42
  onMouseup?: ((payload: google.maps.MapMouseEvent) => any) | undefined;
43
+ onPosition_changed?: (() => any) | undefined;
44
+ onZindex_changed?: (() => any) | undefined;
41
45
  onAnimation_changed?: (() => any) | undefined;
42
46
  onClickable_changed?: (() => any) | undefined;
43
47
  onCursor_changed?: (() => any) | undefined;
44
48
  onDraggable_changed?: (() => any) | undefined;
45
49
  onFlat_changed?: (() => any) | undefined;
46
50
  onIcon_changed?: (() => any) | undefined;
47
- onPosition_changed?: (() => any) | undefined;
48
51
  onShape_changed?: (() => any) | undefined;
49
52
  onTitle_changed?: (() => any) | undefined;
50
53
  onVisible_changed?: (() => any) | undefined;
51
- onZindex_changed?: (() => any) | undefined;
52
54
  }>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>, {
53
55
  default?: (props: {}) => any;
54
56
  }>;
@@ -1,5 +1,6 @@
1
1
  <script>
2
2
  import { inject, provide, watch } from "vue";
3
+ import { bindGoogleMapsEvents } from "./bindGoogleMapsEvents";
3
4
  import { MARKER_INJECTION_KEY } from "./injectionKeys";
4
5
  import { MARKER_CLUSTERER_INJECTION_KEY } from "./ScriptGoogleMapsMarkerClusterer.vue";
5
6
  import { useGoogleMapsResource } from "./useGoogleMapsResource";
@@ -8,9 +9,13 @@ export { MARKER_INJECTION_KEY } from "./injectionKeys";
8
9
 
9
10
  <script setup>
10
11
  const props = defineProps({
12
+ position: { type: null, required: false },
11
13
  options: { type: Object, required: false }
12
14
  });
13
15
  const emit = defineEmits([]);
16
+ if (import.meta.dev) {
17
+ console.warn("[nuxt-scripts] ScriptGoogleMapsMarker uses the deprecated google.maps.Marker class. Use ScriptGoogleMapsAdvancedMarkerElement instead.");
18
+ }
14
19
  const eventsWithoutPayload = [
15
20
  "animation_changed",
16
21
  "clickable_changed",
@@ -39,8 +44,14 @@ const eventsWithMapMouseEventPayload = [
39
44
  const markerClustererContext = inject(MARKER_CLUSTERER_INJECTION_KEY, void 0);
40
45
  const marker = useGoogleMapsResource({
41
46
  create({ mapsApi, map }) {
42
- const m = new mapsApi.Marker(props.options);
43
- setupEventListeners(m);
47
+ const m = new mapsApi.Marker({
48
+ ...props.options,
49
+ ...props.position ? { position: props.position } : {}
50
+ });
51
+ bindGoogleMapsEvents(m, emit, {
52
+ noPayload: eventsWithoutPayload,
53
+ withPayload: eventsWithMapMouseEventPayload
54
+ });
44
55
  if (markerClustererContext?.markerClusterer.value) {
45
56
  markerClustererContext.markerClusterer.value.addMarker(m, true);
46
57
  markerClustererContext.requestRerender();
@@ -59,20 +70,17 @@ const marker = useGoogleMapsResource({
59
70
  }
60
71
  }
61
72
  });
73
+ watch(() => props.position, (position) => {
74
+ if (marker.value && position) {
75
+ marker.value.setPosition(position);
76
+ }
77
+ });
62
78
  watch(() => props.options, (options) => {
63
79
  if (marker.value && options) {
64
80
  marker.value.setOptions(options);
65
81
  }
66
82
  }, { deep: true });
67
83
  provide(MARKER_INJECTION_KEY, { marker });
68
- function setupEventListeners(m) {
69
- eventsWithoutPayload.forEach((event) => {
70
- m.addListener(event, () => emit(event));
71
- });
72
- eventsWithMapMouseEventPayload.forEach((event) => {
73
- m.addListener(event, (payload) => emit(event, payload));
74
- });
75
- }
76
84
  </script>
77
85
 
78
86
  <template>
@@ -2,6 +2,7 @@ export { MARKER_INJECTION_KEY } from './injectionKeys.js';
2
2
  declare const _default: typeof __VLS_export;
3
3
  export default _default;
4
4
  declare const __VLS_export: __VLS_WithSlots<import("vue").DefineComponent<{
5
+ position?: google.maps.LatLngLiteral | google.maps.LatLng;
5
6
  options?: Omit<google.maps.MarkerOptions, "map">;
6
7
  }, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {} & {
7
8
  contextmenu: (payload: google.maps.MapMouseEvent) => any;
@@ -14,18 +15,19 @@ declare const __VLS_export: __VLS_WithSlots<import("vue").DefineComponent<{
14
15
  mouseout: (payload: google.maps.MapMouseEvent) => any;
15
16
  mouseover: (payload: google.maps.MapMouseEvent) => any;
16
17
  mouseup: (payload: google.maps.MapMouseEvent) => any;
18
+ position_changed: () => any;
19
+ zindex_changed: () => any;
17
20
  animation_changed: () => any;
18
21
  clickable_changed: () => any;
19
22
  cursor_changed: () => any;
20
23
  draggable_changed: () => any;
21
24
  flat_changed: () => any;
22
25
  icon_changed: () => any;
23
- position_changed: () => any;
24
26
  shape_changed: () => any;
25
27
  title_changed: () => any;
26
28
  visible_changed: () => any;
27
- zindex_changed: () => any;
28
29
  }, string, import("vue").PublicProps, Readonly<{
30
+ position?: google.maps.LatLngLiteral | google.maps.LatLng;
29
31
  options?: Omit<google.maps.MarkerOptions, "map">;
30
32
  }> & Readonly<{
31
33
  onContextmenu?: ((payload: google.maps.MapMouseEvent) => any) | undefined;
@@ -38,17 +40,17 @@ declare const __VLS_export: __VLS_WithSlots<import("vue").DefineComponent<{
38
40
  onMouseout?: ((payload: google.maps.MapMouseEvent) => any) | undefined;
39
41
  onMouseover?: ((payload: google.maps.MapMouseEvent) => any) | undefined;
40
42
  onMouseup?: ((payload: google.maps.MapMouseEvent) => any) | undefined;
43
+ onPosition_changed?: (() => any) | undefined;
44
+ onZindex_changed?: (() => any) | undefined;
41
45
  onAnimation_changed?: (() => any) | undefined;
42
46
  onClickable_changed?: (() => any) | undefined;
43
47
  onCursor_changed?: (() => any) | undefined;
44
48
  onDraggable_changed?: (() => any) | undefined;
45
49
  onFlat_changed?: (() => any) | undefined;
46
50
  onIcon_changed?: (() => any) | undefined;
47
- onPosition_changed?: (() => any) | undefined;
48
51
  onShape_changed?: (() => any) | undefined;
49
52
  onTitle_changed?: (() => any) | undefined;
50
53
  onVisible_changed?: (() => any) | undefined;
51
- onZindex_changed?: (() => any) | undefined;
52
54
  }>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>, {
53
55
  default?: (props: {}) => any;
54
56
  }>;