@nuxt/scripts 1.0.0-beta.7 → 1.0.0-rc.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.
Files changed (256) hide show
  1. package/dist/devtools-client/200.html +1 -0
  2. package/dist/devtools-client/404.html +1 -0
  3. package/dist/devtools-client/_fonts/4ppnHhMi-pBsWSPo7mY0avYxlDoAg1N3PTzCwXLZ5rA-d9oibkGnTd1JL3tc_xnaVgBLYmOB8kjrK2cvZaqwj9s.woff2 +0 -0
  4. package/dist/devtools-client/_fonts/4qBuU9MRVUlPZNPSF7Xom_sK8RBEnfYu-9VXFrdq8A8-8TDwLE1HAj1sQn7XxVWtM_7sIaPM-DTdO3Pf8U2DF1U.woff2 +0 -0
  5. package/dist/devtools-client/_fonts/6dYsbWUd_BpKJ7mdDihgOcya1gHXLpJBuMYXux3WMjE-q3fYNS8YbW5n7ZeXI2vSNgkRWW5VDPKAl51SNTjG2qk.woff2 +0 -0
  6. package/dist/devtools-client/_fonts/Lr-hqqZZsYmCt0ITUlr1CUrWim9fsKvoDFZliMxgNHY-iTa_Yt_PzhOY9TX7ZXdSlEPim6iRt92xhECwaxWxd5w.woff2 +0 -0
  7. package/dist/devtools-client/_fonts/OknHvWI6KtYn1JQBzX7eSpNDBQ8520F9TvSUJYkVf6A-xeZn9253svK_8Q2LD0XEruY_MnEsuCRO5LenPoggC0Y.woff2 +0 -0
  8. package/dist/devtools-client/_fonts/PV2hrQG6wq5BlIPDjdL1IcOflycaghyt5MHzlBqZtlo-lb_WexLz3VZqfTN0oi554iBH5tT2j2UFEV-XErCAS3E.woff2 +0 -0
  9. package/dist/devtools-client/_fonts/UA7OtwYHwGN_HjcVGTdmiQxUit7FlqkCwxVUWSeXVnQ-B4OXCFOL_tWrYODpQTc07aMaj0c2cewTOmBRWR9tD-A.woff2 +0 -0
  10. package/dist/devtools-client/_fonts/VE4cDVCv5MxbFM7ZLoLCGbIpNd71zhp7MDI9lmN5Y7I-xZyDYCUVrd6LV8eVGF3Um3UZjBFuUtDGtvdyTBBRYBo.woff2 +0 -0
  11. package/dist/devtools-client/_fonts/fVoGbnMbBFd5L9BBp9fUPavUSkZ_EmsQNSyadkT-108-U4T0khaeLQSIhtt9eVvaCEKJjtWJ4ioRJOf8hvqkWY0.woff2 +0 -0
  12. package/dist/devtools-client/_fonts/lQAxeCEs1R0Lw-H9XRU1RlOARQN8J6npRsPjyEDMe5s-_DUSLEkO3tKTuun_gSnDLoQPVEnpOnyqZMOw0ByZ6PA.woff2 +0 -0
  13. package/dist/devtools-client/_fonts/lntlqNHKLV2n82yTwMde70QqOjcfLE2XJ5oKZ3vRPWc-z6TxpIZQdWXztWLr9_OFWqt_WJJoeGtuK_-XQMZGQwE.woff2 +0 -0
  14. package/dist/devtools-client/_fonts/qxAYvKsXWeYv731eb-h5TRurcdIP_W44mpNdX-HABAk-zUDeMEFlNtNbrwvT9JxLEBg0TphGy70O6RfIoIX_ZwU.woff2 +0 -0
  15. package/dist/devtools-client/_nuxt/B3kN3DAy.js +1 -0
  16. package/dist/devtools-client/_nuxt/B8PEiB0p.js +1 -0
  17. package/dist/devtools-client/_nuxt/C8jhSQ8l.js +1 -0
  18. package/dist/devtools-client/_nuxt/CJD6wrkT.js +188 -0
  19. package/dist/devtools-client/_nuxt/CfOsp0mU.js +1 -0
  20. package/dist/devtools-client/_nuxt/DKL6PHO3.js +1 -0
  21. package/dist/devtools-client/_nuxt/ajngqPCs.js +1 -0
  22. package/dist/devtools-client/_nuxt/builds/latest.json +1 -0
  23. package/dist/devtools-client/_nuxt/builds/meta/b800a0be-5cab-4ea6-89e3-dd3a85690a73.json +1 -0
  24. package/dist/devtools-client/_nuxt/dlaR8P-P.js +1 -0
  25. package/dist/devtools-client/_nuxt/entry.BwpOBArY.css +1 -0
  26. package/dist/devtools-client/_nuxt/error-404.CvOVjXeC.css +1 -0
  27. package/dist/devtools-client/_nuxt/error-500.BIm53nmx.css +1 -0
  28. package/dist/devtools-client/_nuxt/first-party.C8Ha4JLM.css +1 -0
  29. package/dist/devtools-client/_nuxt/index.CA-OpSj0.css +1 -0
  30. package/dist/devtools-client/_nuxt/registry.B9lnjF_b.css +1 -0
  31. package/dist/devtools-client/_nuxt/wDzz0qaB.js +1 -0
  32. package/dist/devtools-client/docs/index.html +1 -0
  33. package/dist/devtools-client/first-party/index.html +1 -0
  34. package/dist/devtools-client/index.html +1 -0
  35. package/dist/devtools-client/registry/index.html +1 -0
  36. package/dist/module.d.mts +29 -84
  37. package/dist/module.d.ts +121 -0
  38. package/dist/module.json +1 -1
  39. package/dist/module.mjs +939 -755
  40. package/dist/registry.d.mts +91 -4
  41. package/dist/registry.d.ts +93 -0
  42. package/dist/registry.mjs +668 -326
  43. package/dist/runtime/components/GoogleMaps/ScriptGoogleMaps.d.vue.ts +15 -79
  44. package/dist/runtime/components/GoogleMaps/ScriptGoogleMaps.vue +78 -180
  45. package/dist/runtime/components/GoogleMaps/ScriptGoogleMaps.vue.d.ts +15 -79
  46. package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsAdvancedMarkerElement.d.vue.ts +6 -55
  47. package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsAdvancedMarkerElement.vue +12 -83
  48. package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsAdvancedMarkerElement.vue.d.ts +6 -55
  49. package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsCircle.d.vue.ts +5 -1
  50. package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsCircle.vue +24 -38
  51. package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsCircle.vue.d.ts +5 -1
  52. package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsGeoJson.d.vue.ts +43 -0
  53. package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsGeoJson.vue +60 -0
  54. package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsGeoJson.vue.d.ts +43 -0
  55. package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsHeatmapLayer.d.vue.ts +4 -0
  56. package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsHeatmapLayer.vue +22 -26
  57. package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsHeatmapLayer.vue.d.ts +4 -0
  58. package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsInfoWindow.d.vue.ts +9 -5
  59. package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsInfoWindow.vue +56 -57
  60. package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsInfoWindow.vue.d.ts +9 -5
  61. package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsMarker.d.vue.ts +24 -41
  62. package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsMarker.vue +69 -73
  63. package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsMarker.vue.d.ts +24 -41
  64. package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsMarkerClusterer.d.vue.ts +36 -4
  65. package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsMarkerClusterer.vue +82 -37
  66. package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsMarkerClusterer.vue.d.ts +36 -4
  67. package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsOverlayView.d.vue.ts +78 -0
  68. package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsOverlayView.vue +222 -0
  69. package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsOverlayView.vue.d.ts +78 -0
  70. package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsPinElement.d.vue.ts +10 -3
  71. package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsPinElement.vue +9 -41
  72. package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsPinElement.vue.d.ts +10 -3
  73. package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsPolygon.d.vue.ts +7 -3
  74. package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsPolygon.vue +23 -38
  75. package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsPolygon.vue.d.ts +7 -3
  76. package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsPolyline.d.vue.ts +7 -3
  77. package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsPolyline.vue +23 -38
  78. package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsPolyline.vue.d.ts +7 -3
  79. package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsRectangle.d.vue.ts +7 -3
  80. package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsRectangle.vue +24 -38
  81. package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsRectangle.vue.d.ts +7 -3
  82. package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsStaticMap.d.vue.ts +200 -0
  83. package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsStaticMap.vue +165 -0
  84. package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsStaticMap.vue.d.ts +200 -0
  85. package/dist/runtime/components/GoogleMaps/bindGoogleMapsEvents.d.ts +13 -0
  86. package/dist/runtime/components/GoogleMaps/bindGoogleMapsEvents.js +8 -0
  87. package/dist/runtime/components/GoogleMaps/injectionKeys.d.ts +10 -0
  88. package/dist/runtime/components/GoogleMaps/injectionKeys.js +2 -0
  89. package/dist/runtime/components/GoogleMaps/useGoogleMapsResource.d.ts +48 -0
  90. package/dist/runtime/components/GoogleMaps/useGoogleMapsResource.js +51 -0
  91. package/dist/runtime/components/ScriptBlueskyEmbed.d.vue.ts +85 -0
  92. package/dist/runtime/components/ScriptBlueskyEmbed.vue +88 -0
  93. package/dist/runtime/components/ScriptBlueskyEmbed.vue.d.ts +85 -0
  94. package/dist/runtime/components/ScriptCrisp.vue +1 -1
  95. package/dist/runtime/components/ScriptGoogleAdsense.vue +1 -1
  96. package/dist/runtime/components/ScriptGravatar.d.vue.ts +22 -0
  97. package/dist/runtime/components/ScriptGravatar.vue +46 -0
  98. package/dist/runtime/components/ScriptGravatar.vue.d.ts +22 -0
  99. package/dist/runtime/components/ScriptInstagramEmbed.d.vue.ts +1 -2
  100. package/dist/runtime/components/ScriptInstagramEmbed.vue +8 -3
  101. package/dist/runtime/components/ScriptInstagramEmbed.vue.d.ts +1 -2
  102. package/dist/runtime/components/ScriptIntercom.vue +4 -3
  103. package/dist/runtime/components/ScriptPayPalButtons.d.vue.ts +43 -32
  104. package/dist/runtime/components/ScriptPayPalButtons.vue +48 -79
  105. package/dist/runtime/components/ScriptPayPalButtons.vue.d.ts +43 -32
  106. package/dist/runtime/components/ScriptPayPalMessages.d.vue.ts +37 -23
  107. package/dist/runtime/components/ScriptPayPalMessages.vue +46 -50
  108. package/dist/runtime/components/ScriptPayPalMessages.vue.d.ts +37 -23
  109. package/dist/runtime/components/ScriptStripePricingTable.vue +2 -2
  110. package/dist/runtime/components/ScriptVimeoPlayer.d.vue.ts +9 -0
  111. package/dist/runtime/components/ScriptVimeoPlayer.vue +13 -10
  112. package/dist/runtime/components/ScriptVimeoPlayer.vue.d.ts +9 -0
  113. package/dist/runtime/components/ScriptXEmbed.d.vue.ts +0 -2
  114. package/dist/runtime/components/ScriptXEmbed.vue +14 -8
  115. package/dist/runtime/components/ScriptXEmbed.vue.d.ts +0 -2
  116. package/dist/runtime/components/ScriptYouTubePlayer.d.vue.ts +2 -2
  117. package/dist/runtime/components/ScriptYouTubePlayer.vue +11 -5
  118. package/dist/runtime/components/ScriptYouTubePlayer.vue.d.ts +2 -2
  119. package/dist/runtime/composables/useScript.js +148 -8
  120. package/dist/runtime/composables/useScriptEventPage.js +2 -2
  121. package/dist/runtime/composables/useScriptTriggerConsent.d.ts +10 -0
  122. package/dist/runtime/composables/useScriptTriggerConsent.js +33 -20
  123. package/dist/runtime/composables/useScriptTriggerElement.js +1 -1
  124. package/dist/runtime/composables/useScriptTriggerIdleTimeout.js +1 -1
  125. package/dist/runtime/devtools-standalone-bridge.client.d.ts +8 -0
  126. package/dist/runtime/devtools-standalone-bridge.client.js +50 -0
  127. package/dist/runtime/registry/bing-uet.d.ts +20 -0
  128. package/dist/runtime/registry/bing-uet.js +29 -0
  129. package/dist/runtime/registry/bluesky-embed.d.ts +116 -0
  130. package/dist/runtime/registry/bluesky-embed.js +72 -0
  131. package/dist/runtime/registry/clarity.d.ts +10 -15
  132. package/dist/runtime/registry/clarity.js +22 -31
  133. package/dist/runtime/registry/cloudflare-web-analytics.d.ts +2 -13
  134. package/dist/runtime/registry/cloudflare-web-analytics.js +2 -14
  135. package/dist/runtime/registry/crisp.d.ts +10 -40
  136. package/dist/runtime/registry/crisp.js +2 -33
  137. package/dist/runtime/registry/databuddy-analytics.d.ts +2 -35
  138. package/dist/runtime/registry/databuddy-analytics.js +20 -45
  139. package/dist/runtime/registry/fathom-analytics.d.ts +7 -26
  140. package/dist/runtime/registry/fathom-analytics.js +3 -25
  141. package/dist/runtime/registry/google-adsense.d.ts +3 -11
  142. package/dist/runtime/registry/google-adsense.js +2 -11
  143. package/dist/runtime/registry/google-analytics.d.ts +3 -5
  144. package/dist/runtime/registry/google-analytics.js +3 -8
  145. package/dist/runtime/registry/google-maps.d.ts +3 -9
  146. package/dist/runtime/registry/google-maps.js +2 -8
  147. package/dist/runtime/registry/google-recaptcha.d.ts +2 -6
  148. package/dist/runtime/registry/google-recaptcha.js +4 -12
  149. package/dist/runtime/registry/google-sign-in.d.ts +2 -13
  150. package/dist/runtime/registry/google-sign-in.js +2 -22
  151. package/dist/runtime/registry/google-tag-manager.d.ts +3 -28
  152. package/dist/runtime/registry/google-tag-manager.js +4 -27
  153. package/dist/runtime/registry/gravatar.d.ts +26 -0
  154. package/dist/runtime/registry/gravatar.js +36 -0
  155. package/dist/runtime/registry/hotjar.d.ts +4 -6
  156. package/dist/runtime/registry/hotjar.js +2 -5
  157. package/dist/runtime/registry/instagram-embed.d.ts +3 -18
  158. package/dist/runtime/registry/instagram-embed.js +4 -19
  159. package/dist/runtime/registry/intercom.d.ts +5 -13
  160. package/dist/runtime/registry/intercom.js +2 -12
  161. package/dist/runtime/registry/matomo-analytics.d.ts +3 -12
  162. package/dist/runtime/registry/matomo-analytics.js +3 -12
  163. package/dist/runtime/registry/meta-pixel.d.ts +4 -6
  164. package/dist/runtime/registry/meta-pixel.js +2 -4
  165. package/dist/runtime/registry/mixpanel-analytics.d.ts +22 -0
  166. package/dist/runtime/registry/mixpanel-analytics.js +46 -0
  167. package/dist/runtime/registry/npm.d.ts +3 -7
  168. package/dist/runtime/registry/npm.js +2 -9
  169. package/dist/runtime/registry/paypal.d.ts +4 -25
  170. package/dist/runtime/registry/paypal.js +3 -66
  171. package/dist/runtime/registry/plausible-analytics.js +19 -14
  172. package/dist/runtime/registry/posthog.d.ts +10 -12
  173. package/dist/runtime/registry/posthog.js +3 -12
  174. package/dist/runtime/registry/reddit-pixel.d.ts +5 -6
  175. package/dist/runtime/registry/reddit-pixel.js +2 -4
  176. package/dist/runtime/registry/rybbit-analytics.d.ts +2 -14
  177. package/dist/runtime/registry/rybbit-analytics.js +10 -20
  178. package/dist/runtime/registry/schemas.d.ts +982 -0
  179. package/dist/runtime/registry/schemas.js +937 -0
  180. package/dist/runtime/registry/segment.d.ts +2 -5
  181. package/dist/runtime/registry/segment.js +2 -5
  182. package/dist/runtime/registry/snapchat-pixel.d.ts +5 -34
  183. package/dist/runtime/registry/snapchat-pixel.js +2 -20
  184. package/dist/runtime/registry/stripe.d.ts +3 -4
  185. package/dist/runtime/registry/stripe.js +2 -4
  186. package/dist/runtime/registry/tiktok-pixel.d.ts +4 -7
  187. package/dist/runtime/registry/tiktok-pixel.js +2 -6
  188. package/dist/runtime/registry/umami-analytics.d.ts +2 -31
  189. package/dist/runtime/registry/umami-analytics.js +2 -36
  190. package/dist/runtime/registry/vercel-analytics.d.ts +29 -0
  191. package/dist/runtime/registry/vercel-analytics.js +84 -0
  192. package/dist/runtime/registry/vimeo-player.d.ts +2 -2
  193. package/dist/runtime/registry/vimeo-player.js +1 -1
  194. package/dist/runtime/registry/x-embed.d.ts +3 -17
  195. package/dist/runtime/registry/x-embed.js +3 -18
  196. package/dist/runtime/registry/x-pixel.d.ts +4 -7
  197. package/dist/runtime/registry/x-pixel.js +2 -5
  198. package/dist/runtime/registry/youtube-player.d.ts +7 -7
  199. package/dist/runtime/registry/youtube-player.js +1 -1
  200. package/dist/runtime/server/bluesky-embed-image.d.ts +2 -0
  201. package/dist/runtime/server/bluesky-embed-image.js +7 -0
  202. package/dist/runtime/server/bluesky-embed.d.ts +16 -0
  203. package/dist/runtime/server/bluesky-embed.js +59 -0
  204. package/dist/runtime/server/google-maps-geocode-proxy.d.ts +2 -0
  205. package/dist/runtime/server/google-maps-geocode-proxy.js +34 -0
  206. package/dist/runtime/server/google-static-maps-proxy.js +2 -13
  207. package/dist/runtime/server/gravatar-proxy.d.ts +2 -0
  208. package/dist/runtime/server/gravatar-proxy.js +46 -0
  209. package/dist/runtime/server/instagram-embed-asset.js +8 -41
  210. package/dist/runtime/server/instagram-embed-image.js +6 -53
  211. package/dist/runtime/server/instagram-embed.d.ts +16 -0
  212. package/dist/runtime/server/instagram-embed.js +176 -35
  213. package/dist/runtime/server/proxy-handler.js +101 -83
  214. package/dist/runtime/server/utils/image-proxy.d.ts +12 -0
  215. package/dist/runtime/server/utils/image-proxy.js +70 -0
  216. package/dist/runtime/server/utils/privacy.d.ts +1 -10
  217. package/dist/runtime/server/utils/privacy.js +60 -40
  218. package/dist/runtime/server/x-embed-image.js +5 -49
  219. package/dist/runtime/server/x-embed.js +3 -2
  220. package/dist/runtime/types.d.ts +272 -51
  221. package/dist/runtime/types.js +0 -2
  222. package/dist/runtime/utils/pure.d.ts +1 -1
  223. package/dist/runtime/utils.d.ts +6 -4
  224. package/dist/runtime/utils.js +31 -14
  225. package/dist/stats.d.mts +202 -0
  226. package/dist/stats.d.ts +202 -0
  227. package/dist/stats.mjs +3875 -0
  228. package/dist/types-source.d.mts +17 -0
  229. package/dist/types-source.d.ts +17 -0
  230. package/dist/types-source.mjs +3414 -0
  231. package/dist/types.d.mts +4 -2
  232. package/package.json +35 -61
  233. package/README.md +0 -86
  234. package/dist/client/200.html +0 -1
  235. package/dist/client/404.html +0 -1
  236. package/dist/client/_nuxt/BJa0m50V.js +0 -1
  237. package/dist/client/_nuxt/BPQ3VLAy.js +0 -1
  238. package/dist/client/_nuxt/Ci5iXYuB.js +0 -1
  239. package/dist/client/_nuxt/DaI2y8Uz.js +0 -162
  240. package/dist/client/_nuxt/builds/latest.json +0 -1
  241. package/dist/client/_nuxt/builds/meta/9b4fb16a-3c62-48b0-8295-126cb077b5d3.json +0 -1
  242. package/dist/client/_nuxt/entry.D45OuV0w.css +0 -1
  243. package/dist/client/_nuxt/error-404.B57D-jUQ.css +0 -1
  244. package/dist/client/_nuxt/error-500.DTHUW7BI.css +0 -1
  245. package/dist/client/_nuxt/vPLZfVXe.js +0 -1
  246. package/dist/client/index.html +0 -1
  247. package/dist/runtime/components/ScriptPayPalMarks.d.vue.ts +0 -52
  248. package/dist/runtime/components/ScriptPayPalMarks.vue +0 -69
  249. package/dist/runtime/components/ScriptPayPalMarks.vue.d.ts +0 -52
  250. package/dist/runtime/validation/mock.d.ts +0 -42
  251. package/dist/runtime/validation/mock.js +0 -21
  252. package/dist/runtime/validation/valibot.d.ts +0 -1
  253. package/dist/runtime/validation/valibot.js +0 -1
  254. /package/dist/{client → devtools-client}/_nuxt/CVO1_9PV.js +0 -0
  255. /package/dist/{client → devtools-client}/_nuxt/Cp-IABpG.js +0 -0
  256. /package/dist/{client → devtools-client}/_nuxt/D0r3Knsf.js +0 -0
@@ -0,0 +1,43 @@
1
+ type __VLS_Props = {
2
+ /**
3
+ * The GeoJSON source. Can be a URL string or a GeoJSON object.
4
+ * @see https://developers.google.com/maps/documentation/javascript/datalayer#load_geojson
5
+ */
6
+ src: string | object;
7
+ /**
8
+ * Styling options or a function that computes styles per feature.
9
+ * @see https://developers.google.com/maps/documentation/javascript/datalayer#style_geojson_data
10
+ */
11
+ style?: google.maps.Data.StylingFunction | google.maps.Data.StyleOptions;
12
+ };
13
+ declare const __VLS_export: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
14
+ contextmenu: (payload: google.maps.Data.MouseEvent) => any;
15
+ click: (payload: google.maps.Data.MouseEvent) => any;
16
+ dblclick: (payload: google.maps.Data.MouseEvent) => any;
17
+ mousedown: (payload: google.maps.Data.MouseEvent) => any;
18
+ mousemove: (payload: google.maps.Data.MouseEvent) => any;
19
+ mouseout: (payload: google.maps.Data.MouseEvent) => any;
20
+ mouseover: (payload: google.maps.Data.MouseEvent) => any;
21
+ mouseup: (payload: google.maps.Data.MouseEvent) => any;
22
+ addfeature: (payload: google.maps.Data.AddFeatureEvent) => any;
23
+ removefeature: (payload: google.maps.Data.RemoveFeatureEvent) => any;
24
+ setgeometry: (payload: google.maps.Data.SetGeometryEvent) => any;
25
+ setproperty: (payload: google.maps.Data.SetPropertyEvent) => any;
26
+ removeproperty: (payload: google.maps.Data.RemovePropertyEvent) => any;
27
+ }, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{
28
+ onContextmenu?: ((payload: google.maps.Data.MouseEvent) => any) | undefined;
29
+ onClick?: ((payload: google.maps.Data.MouseEvent) => any) | undefined;
30
+ onDblclick?: ((payload: google.maps.Data.MouseEvent) => any) | undefined;
31
+ onMousedown?: ((payload: google.maps.Data.MouseEvent) => any) | undefined;
32
+ onMousemove?: ((payload: google.maps.Data.MouseEvent) => any) | undefined;
33
+ onMouseout?: ((payload: google.maps.Data.MouseEvent) => any) | undefined;
34
+ onMouseover?: ((payload: google.maps.Data.MouseEvent) => any) | undefined;
35
+ onMouseup?: ((payload: google.maps.Data.MouseEvent) => any) | undefined;
36
+ onAddfeature?: ((payload: google.maps.Data.AddFeatureEvent) => any) | undefined;
37
+ onRemovefeature?: ((payload: google.maps.Data.RemoveFeatureEvent) => any) | undefined;
38
+ onSetgeometry?: ((payload: google.maps.Data.SetGeometryEvent) => any) | undefined;
39
+ onSetproperty?: ((payload: google.maps.Data.SetPropertyEvent) => any) | undefined;
40
+ onRemoveproperty?: ((payload: google.maps.Data.RemovePropertyEvent) => any) | undefined;
41
+ }>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
42
+ declare const _default: typeof __VLS_export;
43
+ export default _default;
@@ -1,4 +1,8 @@
1
1
  type __VLS_Props = {
2
+ /**
3
+ * Configuration options for the heatmap layer visualization.
4
+ * @see https://developers.google.com/maps/documentation/javascript/reference/visualization#HeatmapLayerOptions
5
+ */
2
6
  options?: Omit<google.maps.visualization.HeatmapLayerOptions, 'map'>;
3
7
  };
4
8
  declare const __VLS_export: 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>;
@@ -1,32 +1,28 @@
1
- <template>
2
-
3
- </template>
4
-
5
1
  <script setup>
6
- import { inject, onUnmounted } from "vue";
7
- import { whenever } from "@vueuse/core";
8
- import { MAP_INJECTION_KEY } from "./ScriptGoogleMaps.vue";
2
+ import { watch } from "vue";
3
+ import { useGoogleMapsResource } from "./useGoogleMapsResource";
9
4
  const props = defineProps({
10
5
  options: { type: Object, required: false }
11
6
  });
12
- const mapContext = inject(MAP_INJECTION_KEY, void 0);
13
- let heatmapLayer = void 0;
14
- whenever(() => mapContext?.map.value && mapContext.mapsApi.value, async () => {
15
- await mapContext.mapsApi.value.importLibrary("visualization");
16
- heatmapLayer = new mapContext.mapsApi.value.visualization.HeatmapLayer({
17
- map: mapContext.map.value,
18
- ...props.options
19
- });
20
- whenever(() => props.options, (options) => {
21
- heatmapLayer?.setOptions(options);
22
- }, {
23
- deep: true
24
- });
25
- }, {
26
- immediate: true,
27
- once: true
28
- });
29
- onUnmounted(() => {
30
- heatmapLayer?.setMap(null);
7
+ const heatmapLayer = useGoogleMapsResource({
8
+ async create({ mapsApi, map }) {
9
+ await mapsApi.importLibrary("visualization");
10
+ return new mapsApi.visualization.HeatmapLayer({
11
+ map,
12
+ ...props.options
13
+ });
14
+ },
15
+ cleanup(layer) {
16
+ layer.setMap(null);
17
+ }
31
18
  });
19
+ watch(() => props.options, (options) => {
20
+ if (heatmapLayer.value && options) {
21
+ heatmapLayer.value.setOptions(options);
22
+ }
23
+ }, { deep: true });
32
24
  </script>
25
+
26
+ <template>
27
+
28
+ </template>
@@ -1,4 +1,8 @@
1
1
  type __VLS_Props = {
2
+ /**
3
+ * Configuration options for the heatmap layer visualization.
4
+ * @see https://developers.google.com/maps/documentation/javascript/reference/visualization#HeatmapLayerOptions
5
+ */
2
6
  options?: Omit<google.maps.visualization.HeatmapLayerOptions, 'map'>;
3
7
  };
4
8
  declare const __VLS_export: 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>;
@@ -1,30 +1,34 @@
1
1
  type __VLS_Props = {
2
+ /**
3
+ * Configuration options for the info window.
4
+ * @see https://developers.google.com/maps/documentation/javascript/reference/info-window#InfoWindowOptions
5
+ */
2
6
  options?: google.maps.InfoWindowOptions;
3
7
  };
4
8
  declare var __VLS_1: {};
5
9
  type __VLS_Slots = {} & {
6
10
  default?: (props: typeof __VLS_1) => any;
7
11
  };
8
- declare const __VLS_base: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {} & {
12
+ declare const __VLS_base: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
9
13
  close: () => any;
10
14
  visible: () => any;
11
- position_changed: () => any;
12
- zindex_changed: () => any;
13
15
  closeclick: () => any;
14
16
  content_changed: () => any;
15
17
  domready: () => any;
16
18
  headercontent_changed: () => any;
17
19
  headerdisabled_changed: () => any;
20
+ position_changed: () => any;
21
+ zindex_changed: () => any;
18
22
  }, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{
19
23
  onClose?: (() => any) | undefined;
20
24
  onVisible?: (() => any) | undefined;
21
- onPosition_changed?: (() => any) | undefined;
22
- onZindex_changed?: (() => any) | undefined;
23
25
  onCloseclick?: (() => any) | undefined;
24
26
  onContent_changed?: (() => any) | undefined;
25
27
  onDomready?: (() => any) | undefined;
26
28
  onHeadercontent_changed?: (() => any) | undefined;
27
29
  onHeaderdisabled_changed?: (() => any) | undefined;
30
+ onPosition_changed?: (() => any) | undefined;
31
+ onZindex_changed?: (() => any) | undefined;
28
32
  }>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
29
33
  declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
30
34
  declare const _default: typeof __VLS_export;
@@ -1,20 +1,10 @@
1
- <template>
2
- <div class="info-window-container">
3
- <div ref="info-window-container">
4
- <slot />
5
- </div>
6
- </div>
7
- </template>
8
-
9
1
  <script setup>
10
- import { inject, onUnmounted, useTemplateRef } from "vue";
11
- import { whenever } from "@vueuse/core";
12
- import { MARKER_INJECTION_KEY } from "./ScriptGoogleMapsMarker.vue";
13
- import { MAP_INJECTION_KEY } from "./ScriptGoogleMaps.vue";
14
- import { ADVANCED_MARKER_ELEMENT_INJECTION_KEY } from "./ScriptGoogleMapsAdvancedMarkerElement.vue";
2
+ import { inject, useTemplateRef, watch } from "vue";
3
+ import { bindGoogleMapsEvents, MAP_INJECTION_KEY, MARKER_INJECTION_KEY, useGoogleMapsResource } from "./useGoogleMapsResource";
15
4
  const props = defineProps({
16
5
  options: { type: null, required: false }
17
6
  });
7
+ const emit = defineEmits(["close", "closeclick", "content_changed", "domready", "headercontent_changed", "headerdisabled_changed", "position_changed", "visible", "zindex_changed"]);
18
8
  const infoWindowEvents = [
19
9
  "close",
20
10
  "closeclick",
@@ -26,63 +16,72 @@ const infoWindowEvents = [
26
16
  "visible",
27
17
  "zindex_changed"
28
18
  ];
29
- const emit = defineEmits([]);
30
19
  const mapContext = inject(MAP_INJECTION_KEY, void 0);
31
20
  const markerContext = inject(MARKER_INJECTION_KEY, void 0);
32
- const advancedMarkerElementContext = inject(ADVANCED_MARKER_ELEMENT_INJECTION_KEY, void 0);
33
21
  const infoWindowContainer = useTemplateRef("info-window-container");
34
- let infoWindow = void 0;
35
- whenever(
36
- () => mapContext?.map.value && mapContext.mapsApi.value && infoWindowContainer.value,
37
- () => {
38
- infoWindow = new mapContext.mapsApi.value.InfoWindow({
22
+ let gmpClickHandler;
23
+ let isOpen = false;
24
+ const infoWindow = useGoogleMapsResource({
25
+ ready: () => !!infoWindowContainer.value,
26
+ create({ mapsApi, map }) {
27
+ const iw = new mapsApi.InfoWindow({
39
28
  content: infoWindowContainer.value,
40
29
  ...props.options
41
30
  });
42
- setupInfoWindowEventListeners(infoWindow);
43
- if (markerContext?.marker.value) {
44
- markerContext.marker.value.addListener("click", () => {
45
- infoWindow.open({
46
- anchor: markerContext.marker.value,
47
- map: mapContext.map.value
48
- });
49
- });
50
- } else if (advancedMarkerElementContext?.advancedMarkerElement.value) {
51
- advancedMarkerElementContext.advancedMarkerElement.value.addListener("click", () => {
52
- infoWindow.open({
53
- anchor: advancedMarkerElementContext.advancedMarkerElement.value,
54
- map: mapContext.map.value
55
- });
56
- });
31
+ iw.addListener("closeclick", () => {
32
+ isOpen = false;
33
+ });
34
+ iw.addListener("close", () => {
35
+ isOpen = false;
36
+ });
37
+ bindGoogleMapsEvents(iw, emit, { noPayload: infoWindowEvents });
38
+ const toggleOpen = (anchor) => {
39
+ if (isOpen) {
40
+ iw.close();
41
+ isOpen = false;
42
+ } else {
43
+ mapContext?.activateInfoWindow(iw);
44
+ iw.open({ anchor, map });
45
+ isOpen = true;
46
+ }
47
+ };
48
+ if (markerContext?.advancedMarkerElement.value) {
49
+ const ame = markerContext.advancedMarkerElement.value;
50
+ ame.gmpClickable = true;
51
+ gmpClickHandler = () => toggleOpen(ame);
52
+ ame.addEventListener("gmp-click", gmpClickHandler);
57
53
  } else {
58
- infoWindow.setPosition(props.options?.position);
59
- infoWindow.open(mapContext.map.value);
54
+ iw.setPosition(props.options?.position);
55
+ iw.open(map);
56
+ isOpen = true;
60
57
  }
61
- whenever(() => props.options, (options) => {
62
- infoWindow?.setOptions(options);
63
- }, {
64
- deep: true
65
- });
58
+ return iw;
66
59
  },
67
- {
68
- immediate: true,
69
- once: true
70
- }
71
- );
72
- onUnmounted(() => {
73
- if (!infoWindow || !mapContext?.mapsApi.value) {
74
- return;
60
+ cleanup(iw, { mapsApi }) {
61
+ if (gmpClickHandler && markerContext?.advancedMarkerElement.value) {
62
+ markerContext.advancedMarkerElement.value.removeEventListener("gmp-click", gmpClickHandler);
63
+ gmpClickHandler = void 0;
64
+ }
65
+ mapsApi.event.clearInstanceListeners(iw);
66
+ iw.close();
67
+ isOpen = false;
75
68
  }
76
- mapContext.mapsApi.value.event.clearInstanceListeners(infoWindow);
77
- infoWindow.close();
78
69
  });
79
- function setupInfoWindowEventListeners(infoWindow2) {
80
- infoWindowEvents.forEach((event) => {
81
- infoWindow2.addListener(event, () => emit(event));
82
- });
83
- }
70
+ watch(() => props.options, (options) => {
71
+ if (infoWindow.value && options) {
72
+ infoWindow.value.setOptions(options);
73
+ }
74
+ }, { deep: true });
84
75
  </script>
85
76
 
77
+ <template>
78
+ <div class="info-window-container">
79
+ <div ref="info-window-container">
80
+ <slot />
81
+ </div>
82
+ </div>
83
+ </template>
84
+
86
85
  <style scoped>
87
86
  .info-window-container{display:none}
88
87
  </style>
@@ -1,30 +1,34 @@
1
1
  type __VLS_Props = {
2
+ /**
3
+ * Configuration options for the info window.
4
+ * @see https://developers.google.com/maps/documentation/javascript/reference/info-window#InfoWindowOptions
5
+ */
2
6
  options?: google.maps.InfoWindowOptions;
3
7
  };
4
8
  declare var __VLS_1: {};
5
9
  type __VLS_Slots = {} & {
6
10
  default?: (props: typeof __VLS_1) => any;
7
11
  };
8
- declare const __VLS_base: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {} & {
12
+ declare const __VLS_base: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
9
13
  close: () => any;
10
14
  visible: () => any;
11
- position_changed: () => any;
12
- zindex_changed: () => any;
13
15
  closeclick: () => any;
14
16
  content_changed: () => any;
15
17
  domready: () => any;
16
18
  headercontent_changed: () => any;
17
19
  headerdisabled_changed: () => any;
20
+ position_changed: () => any;
21
+ zindex_changed: () => any;
18
22
  }, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{
19
23
  onClose?: (() => any) | undefined;
20
24
  onVisible?: (() => any) | undefined;
21
- onPosition_changed?: (() => any) | undefined;
22
- onZindex_changed?: (() => any) | undefined;
23
25
  onCloseclick?: (() => any) | undefined;
24
26
  onContent_changed?: (() => any) | undefined;
25
27
  onDomready?: (() => any) | undefined;
26
28
  onHeadercontent_changed?: (() => any) | undefined;
27
29
  onHeaderdisabled_changed?: (() => any) | undefined;
30
+ onPosition_changed?: (() => any) | undefined;
31
+ onZindex_changed?: (() => any) | undefined;
28
32
  }>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
29
33
  declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
30
34
  declare const _default: typeof __VLS_export;
@@ -1,58 +1,41 @@
1
- import type { InjectionKey, ShallowRef } from 'vue';
2
- export declare const MARKER_INJECTION_KEY: InjectionKey<{
3
- marker: ShallowRef<google.maps.Marker | undefined>;
4
- }>;
1
+ export { MARKER_INJECTION_KEY } from './useGoogleMapsResource.js';
5
2
  declare const _default: typeof __VLS_export;
6
3
  export default _default;
7
4
  declare const __VLS_export: __VLS_WithSlots<import("vue").DefineComponent<{
8
- options?: Omit<google.maps.MarkerOptions, "map">;
9
- }, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {} & {
5
+ /**
6
+ * The position of the marker on the map.
7
+ * @see https://developers.google.com/maps/documentation/javascript/reference/advanced-markers#AdvancedMarkerElementOptions.position
8
+ */
9
+ position?: google.maps.LatLngLiteral | google.maps.LatLng;
10
+ /**
11
+ * Configuration options for the marker.
12
+ * @see https://developers.google.com/maps/documentation/javascript/reference/advanced-markers#AdvancedMarkerElementOptions
13
+ */
14
+ options?: Omit<google.maps.marker.AdvancedMarkerElementOptions, "map">;
15
+ }, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
10
16
  click: (payload: google.maps.MapMouseEvent) => any;
11
- contextmenu: (payload: google.maps.MapMouseEvent) => any;
12
- dblclick: (payload: google.maps.MapMouseEvent) => any;
13
17
  drag: (payload: google.maps.MapMouseEvent) => any;
14
18
  dragend: (payload: google.maps.MapMouseEvent) => any;
15
19
  dragstart: (payload: google.maps.MapMouseEvent) => any;
16
- mousedown: (payload: google.maps.MapMouseEvent) => any;
17
- mouseout: (payload: google.maps.MapMouseEvent) => any;
18
- mouseover: (payload: google.maps.MapMouseEvent) => any;
19
- mouseup: (payload: google.maps.MapMouseEvent) => any;
20
- animation_changed: () => any;
21
- clickable_changed: () => any;
22
- cursor_changed: () => any;
23
- draggable_changed: () => any;
24
- flat_changed: () => any;
25
- icon_changed: () => any;
26
- position_changed: () => any;
27
- shape_changed: () => any;
28
- title_changed: () => any;
29
- visible_changed: () => any;
30
- zindex_changed: () => any;
31
20
  }, string, import("vue").PublicProps, Readonly<{
32
- options?: Omit<google.maps.MarkerOptions, "map">;
21
+ /**
22
+ * The position of the marker on the map.
23
+ * @see https://developers.google.com/maps/documentation/javascript/reference/advanced-markers#AdvancedMarkerElementOptions.position
24
+ */
25
+ position?: google.maps.LatLngLiteral | google.maps.LatLng;
26
+ /**
27
+ * Configuration options for the marker.
28
+ * @see https://developers.google.com/maps/documentation/javascript/reference/advanced-markers#AdvancedMarkerElementOptions
29
+ */
30
+ options?: Omit<google.maps.marker.AdvancedMarkerElementOptions, "map">;
33
31
  }> & Readonly<{
34
32
  onClick?: ((payload: google.maps.MapMouseEvent) => any) | undefined;
35
- onContextmenu?: ((payload: google.maps.MapMouseEvent) => any) | undefined;
36
- onDblclick?: ((payload: google.maps.MapMouseEvent) => any) | undefined;
37
33
  onDrag?: ((payload: google.maps.MapMouseEvent) => any) | undefined;
38
34
  onDragend?: ((payload: google.maps.MapMouseEvent) => any) | undefined;
39
35
  onDragstart?: ((payload: google.maps.MapMouseEvent) => any) | undefined;
40
- onMousedown?: ((payload: google.maps.MapMouseEvent) => any) | undefined;
41
- onMouseout?: ((payload: google.maps.MapMouseEvent) => any) | undefined;
42
- onMouseover?: ((payload: google.maps.MapMouseEvent) => any) | undefined;
43
- onMouseup?: ((payload: google.maps.MapMouseEvent) => any) | undefined;
44
- onAnimation_changed?: (() => any) | undefined;
45
- onClickable_changed?: (() => any) | undefined;
46
- onCursor_changed?: (() => any) | undefined;
47
- onDraggable_changed?: (() => any) | undefined;
48
- onFlat_changed?: (() => any) | undefined;
49
- onIcon_changed?: (() => any) | undefined;
50
- onPosition_changed?: (() => any) | undefined;
51
- onShape_changed?: (() => any) | undefined;
52
- onTitle_changed?: (() => any) | undefined;
53
- onVisible_changed?: (() => any) | undefined;
54
- onZindex_changed?: (() => any) | undefined;
55
36
  }>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>, {
37
+ content?: (props: {}) => any;
38
+ } & {
56
39
  default?: (props: {}) => any;
57
40
  }>;
58
41
  type __VLS_WithSlots<T, S> = T & {
@@ -1,85 +1,81 @@
1
- <template>
2
- <slot v-if="marker" />
3
- </template>
4
-
5
1
  <script>
6
- import { inject, onUnmounted, provide, shallowRef } from "vue";
7
- import { whenever } from "@vueuse/core";
8
- import { MAP_INJECTION_KEY } from "./ScriptGoogleMaps.vue";
2
+ import { inject, provide, useSlots, useTemplateRef, watch } from "vue";
9
3
  import { MARKER_CLUSTERER_INJECTION_KEY } from "./ScriptGoogleMapsMarkerClusterer.vue";
10
- export const MARKER_INJECTION_KEY = /* @__PURE__ */ Symbol("marker");
4
+ import { bindGoogleMapsEvents, MARKER_INJECTION_KEY, useGoogleMapsResource } from "./useGoogleMapsResource";
5
+ export { MARKER_INJECTION_KEY } from "./useGoogleMapsResource";
11
6
  </script>
12
7
 
13
8
  <script setup>
14
9
  const props = defineProps({
10
+ position: { type: null, required: false },
15
11
  options: { type: Object, required: false }
16
12
  });
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);
13
+ const emit = defineEmits(["click", "drag", "dragend", "dragstart"]);
14
+ const dragEvents = ["drag", "dragend", "dragstart"];
15
+ const slots = useSlots();
16
+ const markerContent = useTemplateRef("marker-content");
44
17
  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);
18
+ let gmpClickHandler;
19
+ const advancedMarkerElement = useGoogleMapsResource({
20
+ ready: () => !slots.content || !!markerContent.value,
21
+ async create({ mapsApi, map }) {
22
+ await mapsApi.importLibrary("marker");
23
+ const marker = new mapsApi.marker.AdvancedMarkerElement({
24
+ ...props.options,
25
+ gmpClickable: true,
26
+ ...props.position ? { position: props.position } : {}
27
+ });
28
+ if (markerContent.value) {
29
+ marker.content = markerContent.value;
30
+ }
31
+ if (markerClustererContext?.markerClusterer.value) {
32
+ markerClustererContext.markerClusterer.value.addMarker(marker, true);
33
+ markerClustererContext.requestRerender();
34
+ } else {
35
+ marker.map = map;
36
+ }
37
+ gmpClickHandler = (e) => emit("click", e);
38
+ marker.addEventListener("gmp-click", gmpClickHandler);
39
+ bindGoogleMapsEvents(marker, emit, {
40
+ withPayload: dragEvents
41
+ });
42
+ return marker;
43
+ },
44
+ cleanup(marker, { mapsApi }) {
45
+ if (gmpClickHandler) {
46
+ marker.removeEventListener("gmp-click", gmpClickHandler);
47
+ gmpClickHandler = void 0;
48
+ }
49
+ mapsApi.event.clearInstanceListeners(marker);
50
+ if (markerClustererContext?.markerClusterer.value) {
51
+ markerClustererContext.markerClusterer.value.removeMarker(marker, true);
52
+ markerClustererContext.requestRerender();
53
+ } else {
54
+ marker.map = null;
55
+ }
54
56
  }
55
- whenever(() => props.options, (options) => {
56
- marker.value?.setOptions(options);
57
- }, {
58
- deep: true
59
- });
60
- }, {
61
- immediate: true,
62
- once: true
63
57
  });
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
- }
58
+ watch(
59
+ () => [props.position, props.options],
60
+ () => {
61
+ if (!advancedMarkerElement.value)
62
+ return;
63
+ if (props.options)
64
+ Object.assign(advancedMarkerElement.value, props.options);
65
+ advancedMarkerElement.value.position = props.position ?? props.options?.position;
66
+ },
67
+ { deep: true }
68
+ );
69
+ provide(MARKER_INJECTION_KEY, { advancedMarkerElement });
85
70
  </script>
71
+
72
+ <template>
73
+ <!-- Hidden container for #content slot — becomes the marker visual -->
74
+ <div v-if="$slots.content" style="display: none;">
75
+ <div ref="marker-content">
76
+ <slot name="content" />
77
+ </div>
78
+ </div>
79
+ <!-- Default slot for child components (InfoWindow, OverlayView, etc.) -->
80
+ <slot v-if="advancedMarkerElement" />
81
+ </template>