@nuxt/scripts 1.0.0-beta.27 → 1.0.0-beta.29

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 (60) hide show
  1. package/dist/client/200.html +1 -1
  2. package/dist/client/404.html +1 -1
  3. package/dist/client/_nuxt/{KCxg59bo.js → AwAKM0sG.js} +1 -1
  4. package/dist/client/_nuxt/{CwXQ1Eqw.js → Bl23o3st.js} +18 -18
  5. package/dist/client/_nuxt/{JXDRhrZp.js → CYlYSSNW.js} +1 -1
  6. package/dist/client/_nuxt/{viP3Pc9X.js → D5FIkDae.js} +1 -1
  7. package/dist/client/_nuxt/builds/latest.json +1 -1
  8. package/dist/client/_nuxt/builds/meta/05eb1abd-7d1c-43e9-b78e-dc8ec287cc6f.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.json +1 -1
  13. package/dist/module.mjs +28 -16
  14. package/dist/registry.mjs +4 -1
  15. package/dist/runtime/components/GoogleMaps/ScriptGoogleMaps.d.vue.ts +13 -3
  16. package/dist/runtime/components/GoogleMaps/ScriptGoogleMaps.vue +23 -8
  17. package/dist/runtime/components/GoogleMaps/ScriptGoogleMaps.vue.d.ts +13 -3
  18. package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsAdvancedMarkerElement.d.vue.ts +5 -35
  19. package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsAdvancedMarkerElement.vue +44 -42
  20. package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsAdvancedMarkerElement.vue.d.ts +5 -35
  21. package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsCircle.d.vue.ts +1 -1
  22. package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsCircle.vue +6 -10
  23. package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsCircle.vue.d.ts +1 -1
  24. package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsGeoJson.d.vue.ts +35 -0
  25. package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsGeoJson.vue +61 -0
  26. package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsGeoJson.vue.d.ts +35 -0
  27. package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsInfoWindow.d.vue.ts +5 -5
  28. package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsInfoWindow.vue +34 -18
  29. package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsInfoWindow.vue.d.ts +5 -5
  30. package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsMarker.d.vue.ts +7 -5
  31. package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsMarker.vue +19 -11
  32. package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsMarker.vue.d.ts +7 -5
  33. package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsMarkerClusterer.d.vue.ts +1 -1
  34. package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsMarkerClusterer.vue +3 -7
  35. package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsMarkerClusterer.vue.d.ts +1 -1
  36. package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsOverlayView.d.vue.ts +40 -0
  37. package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsOverlayView.vue +160 -0
  38. package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsOverlayView.vue.d.ts +40 -0
  39. package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsPolygon.d.vue.ts +1 -1
  40. package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsPolygon.vue +5 -10
  41. package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsPolygon.vue.d.ts +1 -1
  42. package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsPolyline.d.vue.ts +1 -1
  43. package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsPolyline.vue +5 -10
  44. package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsPolyline.vue.d.ts +1 -1
  45. package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsRectangle.d.vue.ts +1 -1
  46. package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsRectangle.vue +6 -10
  47. package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsRectangle.vue.d.ts +1 -1
  48. package/dist/runtime/components/GoogleMaps/bindGoogleMapsEvents.d.ts +13 -0
  49. package/dist/runtime/components/GoogleMaps/bindGoogleMapsEvents.js +8 -0
  50. package/dist/runtime/components/GoogleMaps/injectionKeys.d.ts +2 -0
  51. package/dist/runtime/composables/useScript.js +3 -1
  52. package/dist/runtime/registry/gravatar.d.ts +1 -0
  53. package/dist/runtime/registry/gravatar.js +1 -0
  54. package/dist/runtime/registry/rybbit-analytics.js +3 -1
  55. package/dist/stats.mjs +283 -227
  56. package/dist/types-source.mjs +1420 -50
  57. package/package.json +7 -7
  58. package/dist/client/_nuxt/builds/meta/d0d06e27-af53-4f1a-b7ae-18727423b3ed.json +0 -1
  59. package/dist/client/_nuxt/error-404.C_3_IG5y.css +0 -1
  60. 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
- }, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {} & {
7
- contextmenu: (payload: google.maps.MapMouseEvent) => any;
7
+ }, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
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,7 +1,7 @@
1
1
  type __VLS_Props = {
2
2
  options?: Omit<google.maps.CircleOptions, 'map'>;
3
3
  };
4
- declare const __VLS_export: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {} & {
4
+ declare const __VLS_export: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
5
5
  click: (payload: google.maps.MapMouseEvent) => any;
6
6
  dblclick: (payload: google.maps.MapMouseEvent) => any;
7
7
  drag: (payload: google.maps.MapMouseEvent) => any;
@@ -1,10 +1,11 @@
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 }
6
7
  });
7
- const emit = defineEmits([]);
8
+ const emit = defineEmits(["center_changed", "radius_changed", "click", "dblclick", "drag", "dragend", "dragstart", "mousedown", "mousemove", "mouseout", "mouseover", "mouseup", "rightclick"]);
8
9
  const eventsWithoutPayload = [
9
10
  "center_changed",
10
11
  "radius_changed"
@@ -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>
@@ -1,7 +1,7 @@
1
1
  type __VLS_Props = {
2
2
  options?: Omit<google.maps.CircleOptions, 'map'>;
3
3
  };
4
- declare const __VLS_export: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {} & {
4
+ declare const __VLS_export: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
5
5
  click: (payload: google.maps.MapMouseEvent) => any;
6
6
  dblclick: (payload: google.maps.MapMouseEvent) => any;
7
7
  drag: (payload: google.maps.MapMouseEvent) => any;
@@ -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,61 @@
1
+ <script setup>
2
+ import { watch } from "vue";
3
+ import { bindGoogleMapsEvents } from "./bindGoogleMapsEvents";
4
+ import { useGoogleMapsResource } from "./useGoogleMapsResource";
5
+ const props = defineProps({
6
+ src: { type: [String, Object], required: true },
7
+ style: { type: null, required: false }
8
+ });
9
+ const emit = defineEmits(["click", "contextmenu", "dblclick", "mousedown", "mousemove", "mouseout", "mouseover", "mouseup", "addfeature", "removefeature", "setgeometry", "setproperty", "removeproperty"]);
10
+ const dataEvents = [
11
+ "click",
12
+ "contextmenu",
13
+ "dblclick",
14
+ "mousedown",
15
+ "mousemove",
16
+ "mouseout",
17
+ "mouseover",
18
+ "mouseup"
19
+ ];
20
+ const featureEvents = [
21
+ "addfeature",
22
+ "removefeature",
23
+ "setgeometry",
24
+ "setproperty",
25
+ "removeproperty"
26
+ ];
27
+ function loadGeoJson(src, layer) {
28
+ if (typeof src === "string")
29
+ layer.loadGeoJson(src);
30
+ else
31
+ layer.addGeoJson(src);
32
+ }
33
+ const dataLayer = useGoogleMapsResource({
34
+ create({ mapsApi, map }) {
35
+ const layer = new mapsApi.Data({ map });
36
+ if (props.style)
37
+ layer.setStyle(props.style);
38
+ loadGeoJson(props.src, layer);
39
+ bindGoogleMapsEvents(layer, emit, { withPayload: [...dataEvents, ...featureEvents] });
40
+ return layer;
41
+ },
42
+ cleanup(layer, { mapsApi }) {
43
+ mapsApi.event.clearInstanceListeners(layer);
44
+ layer.setMap(null);
45
+ }
46
+ });
47
+ watch(() => props.src, (src) => {
48
+ if (!dataLayer.value)
49
+ return;
50
+ dataLayer.value.forEach((feature) => dataLayer.value.remove(feature));
51
+ loadGeoJson(src, dataLayer.value);
52
+ });
53
+ watch(() => props.style, (style) => {
54
+ if (dataLayer.value)
55
+ dataLayer.value.setStyle(style ?? {});
56
+ }, { deep: true });
57
+ </script>
58
+
59
+ <template>
60
+
61
+ </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;
@@ -5,26 +5,26 @@ declare var __VLS_1: {};
5
5
  type __VLS_Slots = {} & {
6
6
  default?: (props: typeof __VLS_1) => any;
7
7
  };
8
- declare const __VLS_base: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {} & {
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,11 +1,12 @@
1
1
  <script setup>
2
2
  import { inject, useTemplateRef, watch } from "vue";
3
- import { ADVANCED_MARKER_ELEMENT_INJECTION_KEY, MARKER_INJECTION_KEY } from "./injectionKeys";
3
+ import { bindGoogleMapsEvents } from "./bindGoogleMapsEvents";
4
+ import { ADVANCED_MARKER_ELEMENT_INJECTION_KEY, MAP_INJECTION_KEY, MARKER_INJECTION_KEY } from "./injectionKeys";
4
5
  import { useGoogleMapsResource } from "./useGoogleMapsResource";
5
6
  const props = defineProps({
6
7
  options: { type: null, required: false }
7
8
  });
8
- const emit = defineEmits([]);
9
+ const emit = defineEmits(["close", "closeclick", "content_changed", "domready", "headercontent_changed", "headerdisabled_changed", "position_changed", "visible", "zindex_changed"]);
9
10
  const infoWindowEvents = [
10
11
  "close",
11
12
  "closeclick",
@@ -17,10 +18,13 @@ const infoWindowEvents = [
17
18
  "visible",
18
19
  "zindex_changed"
19
20
  ];
21
+ const mapContext = inject(MAP_INJECTION_KEY, void 0);
20
22
  const markerContext = inject(MARKER_INJECTION_KEY, void 0);
21
23
  const advancedMarkerElementContext = inject(ADVANCED_MARKER_ELEMENT_INJECTION_KEY, void 0);
22
24
  const infoWindowContainer = useTemplateRef("info-window-container");
23
25
  let markerClickListener;
26
+ let gmpClickHandler;
27
+ let isOpen = false;
24
28
  const infoWindow = useGoogleMapsResource({
25
29
  ready: () => !!infoWindowContainer.value,
26
30
  create({ mapsApi, map }) {
@@ -28,32 +32,49 @@ const infoWindow = useGoogleMapsResource({
28
32
  content: infoWindowContainer.value,
29
33
  ...props.options
30
34
  });
31
- setupEventListeners(iw);
35
+ iw.addListener("closeclick", () => {
36
+ isOpen = false;
37
+ });
38
+ iw.addListener("close", () => {
39
+ isOpen = false;
40
+ });
41
+ bindGoogleMapsEvents(iw, emit, { noPayload: infoWindowEvents });
42
+ const toggleOpen = (anchor) => {
43
+ if (isOpen) {
44
+ iw.close();
45
+ isOpen = false;
46
+ } else {
47
+ mapContext?.activateInfoWindow(iw);
48
+ iw.open({ anchor, map });
49
+ isOpen = true;
50
+ }
51
+ };
32
52
  if (markerContext?.marker.value) {
33
53
  markerClickListener = markerContext.marker.value.addListener("click", () => {
34
- iw.open({
35
- anchor: markerContext.marker.value,
36
- map
37
- });
54
+ toggleOpen(markerContext.marker.value);
38
55
  });
39
56
  } else if (advancedMarkerElementContext?.advancedMarkerElement.value) {
40
- markerClickListener = advancedMarkerElementContext.advancedMarkerElement.value.addListener("click", () => {
41
- iw.open({
42
- anchor: advancedMarkerElementContext.advancedMarkerElement.value,
43
- map
44
- });
45
- });
57
+ const ame = advancedMarkerElementContext.advancedMarkerElement.value;
58
+ ame.gmpClickable = true;
59
+ gmpClickHandler = () => toggleOpen(ame);
60
+ ame.addEventListener("gmp-click", gmpClickHandler);
46
61
  } else {
47
62
  iw.setPosition(props.options?.position);
48
63
  iw.open(map);
64
+ isOpen = true;
49
65
  }
50
66
  return iw;
51
67
  },
52
68
  cleanup(iw, { mapsApi }) {
53
69
  markerClickListener?.remove();
54
70
  markerClickListener = void 0;
71
+ if (gmpClickHandler && advancedMarkerElementContext?.advancedMarkerElement.value) {
72
+ advancedMarkerElementContext.advancedMarkerElement.value.removeEventListener("gmp-click", gmpClickHandler);
73
+ gmpClickHandler = void 0;
74
+ }
55
75
  mapsApi.event.clearInstanceListeners(iw);
56
76
  iw.close();
77
+ isOpen = false;
57
78
  }
58
79
  });
59
80
  watch(() => props.options, (options) => {
@@ -61,11 +82,6 @@ watch(() => props.options, (options) => {
61
82
  infoWindow.value.setOptions(options);
62
83
  }
63
84
  }, { deep: true });
64
- function setupEventListeners(iw) {
65
- infoWindowEvents.forEach((event) => {
66
- iw.addListener(event, () => emit(event));
67
- });
68
- }
69
85
  </script>
70
86
 
71
87
  <template>
@@ -5,26 +5,26 @@ declare var __VLS_1: {};
5
5
  type __VLS_Slots = {} & {
6
6
  default?: (props: typeof __VLS_1) => any;
7
7
  };
8
- declare const __VLS_base: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {} & {
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,8 +2,9 @@ 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
- }, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {} & {
7
+ }, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
7
8
  contextmenu: (payload: google.maps.MapMouseEvent) => any;
8
9
  click: (payload: google.maps.MapMouseEvent) => any;
9
10
  dblclick: (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
- const emit = defineEmits([]);
15
+ const emit = defineEmits(["animation_changed", "clickable_changed", "cursor_changed", "draggable_changed", "flat_changed", "icon_changed", "position_changed", "shape_changed", "title_changed", "visible_changed", "zindex_changed", "click", "contextmenu", "dblclick", "drag", "dragend", "dragstart", "mousedown", "mouseout", "mouseover", "mouseup"]);
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,8 +2,9 @@ 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
- }, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {} & {
7
+ }, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
7
8
  contextmenu: (payload: google.maps.MapMouseEvent) => any;
8
9
  click: (payload: google.maps.MapMouseEvent) => any;
9
10
  dblclick: (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
  }>;
@@ -20,7 +20,7 @@ declare const _default: typeof __VLS_export;
20
20
  export default _default;
21
21
  declare const __VLS_export: __VLS_WithSlots<import("vue").DefineComponent<{
22
22
  options?: Omit<MarkerClustererOptions, "map">;
23
- }, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {} & {
23
+ }, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
24
24
  click: (payload: MarkerClustererInstance) => any;
25
25
  clusteringbegin: (payload: MarkerClustererInstance) => any;
26
26
  clusteringend: (payload: MarkerClustererInstance) => any;
@@ -1,6 +1,7 @@
1
1
  <script>
2
2
  import { whenever } from "@vueuse/core";
3
3
  import { provide, shallowRef } from "vue";
4
+ import { bindGoogleMapsEvents } from "./bindGoogleMapsEvents";
4
5
  import { useGoogleMapsResource } from "./useGoogleMapsResource";
5
6
  export const MARKER_CLUSTERER_INJECTION_KEY = /* @__PURE__ */ Symbol("marker-clusterer");
6
7
  </script>
@@ -9,7 +10,7 @@ export const MARKER_CLUSTERER_INJECTION_KEY = /* @__PURE__ */ Symbol("marker-clu
9
10
  const props = defineProps({
10
11
  options: { type: Object, required: false }
11
12
  });
12
- const emit = defineEmits([]);
13
+ const emit = defineEmits(["click", "clusteringbegin", "clusteringend"]);
13
14
  const markerClustererEvents = [
14
15
  "click",
15
16
  "clusteringbegin",
@@ -22,7 +23,7 @@ const markerClusterer = useGoogleMapsResource({
22
23
  map,
23
24
  ...props.options
24
25
  });
25
- setupEventListeners(clusterer);
26
+ bindGoogleMapsEvents(clusterer, emit, { withPayload: markerClustererEvents });
26
27
  return clusterer;
27
28
  },
28
29
  cleanup(clusterer, { mapsApi }) {
@@ -45,11 +46,6 @@ provide(
45
46
  requestRerender
46
47
  }
47
48
  );
48
- function setupEventListeners(clusterer) {
49
- markerClustererEvents.forEach((event) => {
50
- clusterer.addListener(event, () => emit(event, clusterer));
51
- });
52
- }
53
49
  </script>
54
50
 
55
51
  <template>
@@ -20,7 +20,7 @@ declare const _default: typeof __VLS_export;
20
20
  export default _default;
21
21
  declare const __VLS_export: __VLS_WithSlots<import("vue").DefineComponent<{
22
22
  options?: Omit<MarkerClustererOptions, "map">;
23
- }, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {} & {
23
+ }, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
24
24
  click: (payload: MarkerClustererInstance) => any;
25
25
  clusteringbegin: (payload: MarkerClustererInstance) => any;
26
26
  clusteringend: (payload: MarkerClustererInstance) => any;