@nuxt/scripts 1.0.0-beta.7 → 1.0.0-rc.10

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 (300) hide show
  1. package/bin/cli.mjs +2 -0
  2. package/dist/cli.d.mts +2 -0
  3. package/dist/cli.d.ts +2 -0
  4. package/dist/cli.mjs +50 -0
  5. package/dist/devtools-client/200.html +1 -0
  6. package/dist/devtools-client/404.html +1 -0
  7. package/dist/devtools-client/_fonts/4ppnHhMi-pBsWSPo7mY0avYxlDoAg1N3PTzCwXLZ5rA-d9oibkGnTd1JL3tc_xnaVgBLYmOB8kjrK2cvZaqwj9s.woff2 +0 -0
  8. package/dist/devtools-client/_fonts/4qBuU9MRVUlPZNPSF7Xom_sK8RBEnfYu-9VXFrdq8A8-8TDwLE1HAj1sQn7XxVWtM_7sIaPM-DTdO3Pf8U2DF1U.woff2 +0 -0
  9. package/dist/devtools-client/_fonts/6dYsbWUd_BpKJ7mdDihgOcya1gHXLpJBuMYXux3WMjE-q3fYNS8YbW5n7ZeXI2vSNgkRWW5VDPKAl51SNTjG2qk.woff2 +0 -0
  10. package/dist/devtools-client/_fonts/Lr-hqqZZsYmCt0ITUlr1CUrWim9fsKvoDFZliMxgNHY-iTa_Yt_PzhOY9TX7ZXdSlEPim6iRt92xhECwaxWxd5w.woff2 +0 -0
  11. package/dist/devtools-client/_fonts/OknHvWI6KtYn1JQBzX7eSpNDBQ8520F9TvSUJYkVf6A-xeZn9253svK_8Q2LD0XEruY_MnEsuCRO5LenPoggC0Y.woff2 +0 -0
  12. package/dist/devtools-client/_fonts/PV2hrQG6wq5BlIPDjdL1IcOflycaghyt5MHzlBqZtlo-lb_WexLz3VZqfTN0oi554iBH5tT2j2UFEV-XErCAS3E.woff2 +0 -0
  13. package/dist/devtools-client/_fonts/UA7OtwYHwGN_HjcVGTdmiQxUit7FlqkCwxVUWSeXVnQ-B4OXCFOL_tWrYODpQTc07aMaj0c2cewTOmBRWR9tD-A.woff2 +0 -0
  14. package/dist/devtools-client/_fonts/VE4cDVCv5MxbFM7ZLoLCGbIpNd71zhp7MDI9lmN5Y7I-xZyDYCUVrd6LV8eVGF3Um3UZjBFuUtDGtvdyTBBRYBo.woff2 +0 -0
  15. package/dist/devtools-client/_fonts/fVoGbnMbBFd5L9BBp9fUPavUSkZ_EmsQNSyadkT-108-U4T0khaeLQSIhtt9eVvaCEKJjtWJ4ioRJOf8hvqkWY0.woff2 +0 -0
  16. package/dist/devtools-client/_fonts/lQAxeCEs1R0Lw-H9XRU1RlOARQN8J6npRsPjyEDMe5s-_DUSLEkO3tKTuun_gSnDLoQPVEnpOnyqZMOw0ByZ6PA.woff2 +0 -0
  17. package/dist/devtools-client/_fonts/lntlqNHKLV2n82yTwMde70QqOjcfLE2XJ5oKZ3vRPWc-z6TxpIZQdWXztWLr9_OFWqt_WJJoeGtuK_-XQMZGQwE.woff2 +0 -0
  18. package/dist/devtools-client/_fonts/qxAYvKsXWeYv731eb-h5TRurcdIP_W44mpNdX-HABAk-zUDeMEFlNtNbrwvT9JxLEBg0TphGy70O6RfIoIX_ZwU.woff2 +0 -0
  19. package/dist/devtools-client/_nuxt/B8PEiB0p.js +1 -0
  20. package/dist/devtools-client/_nuxt/BgPDxVUn.js +1 -0
  21. package/dist/devtools-client/_nuxt/BmlapxLP.js +1 -0
  22. package/dist/devtools-client/_nuxt/CM2vefXI.js +188 -0
  23. package/dist/devtools-client/_nuxt/DAF5Qk9P.js +1 -0
  24. package/dist/devtools-client/_nuxt/Dx6HhVmj.js +1 -0
  25. package/dist/devtools-client/_nuxt/S8LiR9M1.js +1 -0
  26. package/dist/devtools-client/_nuxt/builds/latest.json +1 -0
  27. package/dist/devtools-client/_nuxt/builds/meta/5458a3f2-af35-479c-8852-bf6f92fed611.json +1 -0
  28. package/dist/devtools-client/_nuxt/entry.BKkVrcJj.css +1 -0
  29. package/dist/devtools-client/_nuxt/error-404.d44aGwWI.css +1 -0
  30. package/dist/devtools-client/_nuxt/error-500.NthMfIEt.css +1 -0
  31. package/dist/devtools-client/_nuxt/first-party.C8Ha4JLM.css +1 -0
  32. package/dist/devtools-client/_nuxt/index.DZD1lwyI.css +1 -0
  33. package/dist/devtools-client/_nuxt/registry.B9lnjF_b.css +1 -0
  34. package/dist/devtools-client/_nuxt/vBkR1GJq.js +1 -0
  35. package/dist/devtools-client/_nuxt/wDzz0qaB.js +1 -0
  36. package/dist/devtools-client/docs/index.html +1 -0
  37. package/dist/devtools-client/first-party/index.html +1 -0
  38. package/dist/devtools-client/index.html +1 -0
  39. package/dist/devtools-client/registry/index.html +1 -0
  40. package/dist/module.d.mts +89 -80
  41. package/dist/module.d.ts +185 -0
  42. package/dist/module.json +1 -1
  43. package/dist/module.mjs +1056 -756
  44. package/dist/registry.d.mts +92 -4
  45. package/dist/registry.d.ts +94 -0
  46. package/dist/registry.mjs +668 -326
  47. package/dist/runtime/components/GoogleMaps/ScriptGoogleMaps.d.vue.ts +77 -165
  48. package/dist/runtime/components/GoogleMaps/ScriptGoogleMaps.vue +148 -227
  49. package/dist/runtime/components/GoogleMaps/ScriptGoogleMaps.vue.d.ts +77 -165
  50. package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsAdvancedMarkerElement.d.vue.ts +6 -55
  51. package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsAdvancedMarkerElement.vue +12 -83
  52. package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsAdvancedMarkerElement.vue.d.ts +6 -55
  53. package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsCircle.d.vue.ts +5 -1
  54. package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsCircle.vue +24 -38
  55. package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsCircle.vue.d.ts +5 -1
  56. package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsGeoJson.d.vue.ts +43 -0
  57. package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsGeoJson.vue +60 -0
  58. package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsGeoJson.vue.d.ts +43 -0
  59. package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsHeatmapLayer.d.vue.ts +4 -0
  60. package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsHeatmapLayer.vue +22 -26
  61. package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsHeatmapLayer.vue.d.ts +4 -0
  62. package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsInfoWindow.d.vue.ts +11 -8
  63. package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsInfoWindow.vue +57 -57
  64. package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsInfoWindow.vue.d.ts +11 -8
  65. package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsMarker.d.vue.ts +24 -42
  66. package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsMarker.vue +71 -74
  67. package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsMarker.vue.d.ts +24 -42
  68. package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsMarkerClusterer.d.vue.ts +19 -20
  69. package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsMarkerClusterer.vue +85 -38
  70. package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsMarkerClusterer.vue.d.ts +19 -20
  71. package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsOverlayView.d.vue.ts +98 -0
  72. package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsOverlayView.vue +263 -0
  73. package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsOverlayView.vue.d.ts +98 -0
  74. package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsPinElement.d.vue.ts +10 -3
  75. package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsPinElement.vue +9 -41
  76. package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsPinElement.vue.d.ts +10 -3
  77. package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsPolygon.d.vue.ts +7 -3
  78. package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsPolygon.vue +23 -38
  79. package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsPolygon.vue.d.ts +7 -3
  80. package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsPolyline.d.vue.ts +7 -3
  81. package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsPolyline.vue +23 -38
  82. package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsPolyline.vue.d.ts +7 -3
  83. package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsRectangle.d.vue.ts +7 -3
  84. package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsRectangle.vue +24 -38
  85. package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsRectangle.vue.d.ts +7 -3
  86. package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsStaticMap.d.vue.ts +200 -0
  87. package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsStaticMap.vue +170 -0
  88. package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsStaticMap.vue.d.ts +200 -0
  89. package/dist/runtime/components/GoogleMaps/bindGoogleMapsEvents.d.ts +13 -0
  90. package/dist/runtime/components/GoogleMaps/bindGoogleMapsEvents.js +8 -0
  91. package/dist/runtime/components/GoogleMaps/injectionKeys.d.ts +10 -0
  92. package/dist/runtime/components/GoogleMaps/injectionKeys.js +2 -0
  93. package/dist/runtime/components/GoogleMaps/types.d.ts +42 -0
  94. package/dist/runtime/components/GoogleMaps/types.js +1 -0
  95. package/dist/runtime/components/GoogleMaps/useGoogleMapsResource.d.ts +98 -0
  96. package/dist/runtime/components/GoogleMaps/useGoogleMapsResource.js +126 -0
  97. package/dist/runtime/components/ScriptBlueskyEmbed.d.vue.ts +83 -0
  98. package/dist/runtime/components/ScriptBlueskyEmbed.vue +91 -0
  99. package/dist/runtime/components/ScriptBlueskyEmbed.vue.d.ts +83 -0
  100. package/dist/runtime/components/ScriptCarbonAds.d.vue.ts +4 -7
  101. package/dist/runtime/components/ScriptCarbonAds.vue +1 -0
  102. package/dist/runtime/components/ScriptCarbonAds.vue.d.ts +4 -7
  103. package/dist/runtime/components/ScriptCrisp.d.vue.ts +7 -11
  104. package/dist/runtime/components/ScriptCrisp.vue +2 -1
  105. package/dist/runtime/components/ScriptCrisp.vue.d.ts +7 -11
  106. package/dist/runtime/components/ScriptGoogleAdsense.d.vue.ts +4 -7
  107. package/dist/runtime/components/ScriptGoogleAdsense.vue +2 -1
  108. package/dist/runtime/components/ScriptGoogleAdsense.vue.d.ts +4 -7
  109. package/dist/runtime/components/ScriptGravatar.d.vue.ts +22 -0
  110. package/dist/runtime/components/ScriptGravatar.vue +46 -0
  111. package/dist/runtime/components/ScriptGravatar.vue.d.ts +22 -0
  112. package/dist/runtime/components/ScriptInstagramEmbed.d.vue.ts +12 -15
  113. package/dist/runtime/components/ScriptInstagramEmbed.vue +11 -3
  114. package/dist/runtime/components/ScriptInstagramEmbed.vue.d.ts +12 -15
  115. package/dist/runtime/components/ScriptIntercom.d.vue.ts +7 -11
  116. package/dist/runtime/components/ScriptIntercom.vue +5 -3
  117. package/dist/runtime/components/ScriptIntercom.vue.d.ts +7 -11
  118. package/dist/runtime/components/ScriptLemonSqueezy.d.vue.ts +2 -3
  119. package/dist/runtime/components/ScriptLemonSqueezy.vue +1 -0
  120. package/dist/runtime/components/ScriptLemonSqueezy.vue.d.ts +2 -3
  121. package/dist/runtime/components/ScriptPayPalButtons.d.vue.ts +43 -37
  122. package/dist/runtime/components/ScriptPayPalButtons.vue +49 -79
  123. package/dist/runtime/components/ScriptPayPalButtons.vue.d.ts +43 -37
  124. package/dist/runtime/components/ScriptPayPalMessages.d.vue.ts +37 -28
  125. package/dist/runtime/components/ScriptPayPalMessages.vue +47 -50
  126. package/dist/runtime/components/ScriptPayPalMessages.vue.d.ts +37 -28
  127. package/dist/runtime/components/ScriptStripePricingTable.d.vue.ts +5 -9
  128. package/dist/runtime/components/ScriptStripePricingTable.vue +3 -2
  129. package/dist/runtime/components/ScriptStripePricingTable.vue.d.ts +5 -9
  130. package/dist/runtime/components/ScriptVimeoPlayer.d.vue.ts +17 -11
  131. package/dist/runtime/components/ScriptVimeoPlayer.vue +14 -10
  132. package/dist/runtime/components/ScriptVimeoPlayer.vue.d.ts +17 -11
  133. package/dist/runtime/components/ScriptXEmbed.d.vue.ts +10 -14
  134. package/dist/runtime/components/ScriptXEmbed.vue +21 -12
  135. package/dist/runtime/components/ScriptXEmbed.vue.d.ts +10 -14
  136. package/dist/runtime/components/ScriptYouTubePlayer.d.vue.ts +10 -15
  137. package/dist/runtime/components/ScriptYouTubePlayer.vue +12 -5
  138. package/dist/runtime/components/ScriptYouTubePlayer.vue.d.ts +10 -15
  139. package/dist/runtime/composables/useScript.js +159 -8
  140. package/dist/runtime/composables/useScriptEventPage.js +2 -2
  141. package/dist/runtime/composables/useScriptProxyToken.d.ts +12 -0
  142. package/dist/runtime/composables/useScriptProxyToken.js +4 -0
  143. package/dist/runtime/composables/useScriptProxyUrl.d.ts +12 -0
  144. package/dist/runtime/composables/useScriptProxyUrl.js +27 -0
  145. package/dist/runtime/composables/useScriptTriggerConsent.d.ts +10 -0
  146. package/dist/runtime/composables/useScriptTriggerConsent.js +33 -20
  147. package/dist/runtime/composables/useScriptTriggerElement.js +1 -1
  148. package/dist/runtime/composables/useScriptTriggerIdleTimeout.js +1 -1
  149. package/dist/runtime/devtools-standalone-bridge.client.d.ts +8 -0
  150. package/dist/runtime/devtools-standalone-bridge.client.js +50 -0
  151. package/dist/runtime/plugins/proxy-token.server.d.ts +10 -0
  152. package/dist/runtime/plugins/proxy-token.server.js +17 -0
  153. package/dist/runtime/registry/bing-uet.d.ts +198 -0
  154. package/dist/runtime/registry/bing-uet.js +43 -0
  155. package/dist/runtime/registry/bluesky-embed.d.ts +112 -0
  156. package/dist/runtime/registry/bluesky-embed.js +68 -0
  157. package/dist/runtime/registry/clarity.d.ts +16 -17
  158. package/dist/runtime/registry/clarity.js +33 -31
  159. package/dist/runtime/registry/cloudflare-web-analytics.d.ts +2 -13
  160. package/dist/runtime/registry/cloudflare-web-analytics.js +2 -14
  161. package/dist/runtime/registry/crisp.d.ts +10 -40
  162. package/dist/runtime/registry/crisp.js +2 -33
  163. package/dist/runtime/registry/databuddy-analytics.d.ts +2 -35
  164. package/dist/runtime/registry/databuddy-analytics.js +20 -45
  165. package/dist/runtime/registry/fathom-analytics.d.ts +7 -26
  166. package/dist/runtime/registry/fathom-analytics.js +3 -25
  167. package/dist/runtime/registry/google-adsense.d.ts +3 -11
  168. package/dist/runtime/registry/google-adsense.js +2 -11
  169. package/dist/runtime/registry/google-analytics.d.ts +9 -7
  170. package/dist/runtime/registry/google-analytics.js +15 -9
  171. package/dist/runtime/registry/google-maps.d.ts +3 -9
  172. package/dist/runtime/registry/google-maps.js +2 -8
  173. package/dist/runtime/registry/google-recaptcha.d.ts +2 -6
  174. package/dist/runtime/registry/google-recaptcha.js +4 -12
  175. package/dist/runtime/registry/google-sign-in.d.ts +2 -13
  176. package/dist/runtime/registry/google-sign-in.js +2 -22
  177. package/dist/runtime/registry/google-tag-manager.d.ts +8 -29
  178. package/dist/runtime/registry/google-tag-manager.js +14 -28
  179. package/dist/runtime/registry/gravatar.d.ts +26 -0
  180. package/dist/runtime/registry/gravatar.js +33 -0
  181. package/dist/runtime/registry/hotjar.d.ts +4 -6
  182. package/dist/runtime/registry/hotjar.js +2 -5
  183. package/dist/runtime/registry/instagram-embed.d.ts +3 -18
  184. package/dist/runtime/registry/instagram-embed.js +4 -19
  185. package/dist/runtime/registry/intercom.d.ts +5 -13
  186. package/dist/runtime/registry/intercom.js +2 -12
  187. package/dist/runtime/registry/matomo-analytics.d.ts +12 -15
  188. package/dist/runtime/registry/matomo-analytics.js +31 -13
  189. package/dist/runtime/registry/meta-pixel.d.ts +12 -8
  190. package/dist/runtime/registry/meta-pixel.js +12 -5
  191. package/dist/runtime/registry/mixpanel-analytics.d.ts +32 -0
  192. package/dist/runtime/registry/mixpanel-analytics.js +58 -0
  193. package/dist/runtime/registry/npm.d.ts +3 -7
  194. package/dist/runtime/registry/npm.js +2 -9
  195. package/dist/runtime/registry/paypal.d.ts +4 -25
  196. package/dist/runtime/registry/paypal.js +3 -66
  197. package/dist/runtime/registry/plausible-analytics.js +19 -14
  198. package/dist/runtime/registry/posthog.d.ts +18 -14
  199. package/dist/runtime/registry/posthog.js +18 -16
  200. package/dist/runtime/registry/reddit-pixel.d.ts +5 -6
  201. package/dist/runtime/registry/reddit-pixel.js +2 -4
  202. package/dist/runtime/registry/rybbit-analytics.d.ts +2 -14
  203. package/dist/runtime/registry/rybbit-analytics.js +10 -20
  204. package/dist/runtime/registry/schemas.d.ts +1047 -0
  205. package/dist/runtime/registry/schemas.js +1004 -0
  206. package/dist/runtime/registry/segment.d.ts +2 -5
  207. package/dist/runtime/registry/segment.js +2 -5
  208. package/dist/runtime/registry/snapchat-pixel.d.ts +5 -34
  209. package/dist/runtime/registry/snapchat-pixel.js +2 -20
  210. package/dist/runtime/registry/stripe.d.ts +3 -4
  211. package/dist/runtime/registry/stripe.js +2 -4
  212. package/dist/runtime/registry/tiktok-pixel.d.ts +20 -9
  213. package/dist/runtime/registry/tiktok-pixel.js +24 -7
  214. package/dist/runtime/registry/umami-analytics.d.ts +2 -31
  215. package/dist/runtime/registry/umami-analytics.js +2 -36
  216. package/dist/runtime/registry/vercel-analytics.d.ts +29 -0
  217. package/dist/runtime/registry/vercel-analytics.js +84 -0
  218. package/dist/runtime/registry/vimeo-player.d.ts +2 -2
  219. package/dist/runtime/registry/vimeo-player.js +1 -1
  220. package/dist/runtime/registry/x-embed.d.ts +3 -21
  221. package/dist/runtime/registry/x-embed.js +2 -21
  222. package/dist/runtime/registry/x-pixel.d.ts +4 -7
  223. package/dist/runtime/registry/x-pixel.js +2 -5
  224. package/dist/runtime/registry/youtube-player.d.ts +7 -7
  225. package/dist/runtime/registry/youtube-player.js +1 -1
  226. package/dist/runtime/server/bluesky-embed-image.d.ts +2 -0
  227. package/dist/runtime/server/bluesky-embed-image.js +7 -0
  228. package/dist/runtime/server/bluesky-embed.d.ts +2 -0
  229. package/dist/runtime/server/bluesky-embed.js +78 -0
  230. package/dist/runtime/server/google-maps-geocode-proxy.d.ts +2 -0
  231. package/dist/runtime/server/google-maps-geocode-proxy.js +38 -0
  232. package/dist/runtime/server/google-static-maps-proxy.d.ts +1 -1
  233. package/dist/runtime/server/google-static-maps-proxy.js +18 -23
  234. package/dist/runtime/server/gravatar-proxy.d.ts +2 -0
  235. package/dist/runtime/server/gravatar-proxy.js +46 -0
  236. package/dist/runtime/server/instagram-embed-asset.d.ts +1 -1
  237. package/dist/runtime/server/instagram-embed-asset.js +8 -41
  238. package/dist/runtime/server/instagram-embed-image.d.ts +1 -1
  239. package/dist/runtime/server/instagram-embed-image.js +6 -53
  240. package/dist/runtime/server/instagram-embed.d.ts +1 -0
  241. package/dist/runtime/server/instagram-embed.js +82 -40
  242. package/dist/runtime/server/proxy-handler.js +102 -85
  243. package/dist/runtime/server/utils/cached-upstream.d.ts +55 -0
  244. package/dist/runtime/server/utils/cached-upstream.js +65 -0
  245. package/dist/runtime/server/utils/embed-rewriters.d.ts +19 -0
  246. package/dist/runtime/server/utils/embed-rewriters.js +41 -0
  247. package/dist/runtime/server/utils/image-proxy.d.ts +14 -0
  248. package/dist/runtime/server/utils/image-proxy.js +73 -0
  249. package/dist/runtime/server/utils/instagram-embed.d.ts +16 -0
  250. package/dist/runtime/server/utils/instagram-embed.js +153 -0
  251. package/dist/runtime/server/utils/privacy.d.ts +1 -10
  252. package/dist/runtime/server/utils/privacy.js +60 -40
  253. package/dist/runtime/server/utils/proxy-url.d.ts +9 -0
  254. package/dist/runtime/server/utils/proxy-url.js +21 -0
  255. package/dist/runtime/server/utils/sign-constants.d.ts +16 -0
  256. package/dist/runtime/server/utils/sign-constants.js +5 -0
  257. package/dist/runtime/server/utils/sign.d.ts +101 -0
  258. package/dist/runtime/server/utils/sign.js +91 -0
  259. package/dist/runtime/server/utils/withSigning.d.ts +23 -0
  260. package/dist/runtime/server/utils/withSigning.js +19 -0
  261. package/dist/runtime/server/x-embed-image.d.ts +1 -1
  262. package/dist/runtime/server/x-embed-image.js +5 -49
  263. package/dist/runtime/server/x-embed.js +26 -6
  264. package/dist/runtime/types.d.ts +311 -55
  265. package/dist/runtime/types.js +1 -2
  266. package/dist/runtime/utils/pure.d.ts +1 -1
  267. package/dist/runtime/utils.d.ts +6 -4
  268. package/dist/runtime/utils.js +31 -14
  269. package/dist/stats.d.mts +202 -0
  270. package/dist/stats.d.ts +202 -0
  271. package/dist/stats.mjs +3835 -0
  272. package/dist/types-source.d.mts +17 -0
  273. package/dist/types-source.d.ts +17 -0
  274. package/dist/types-source.mjs +3787 -0
  275. package/dist/types.d.mts +4 -2
  276. package/package.json +41 -63
  277. package/README.md +0 -86
  278. package/dist/client/200.html +0 -1
  279. package/dist/client/404.html +0 -1
  280. package/dist/client/_nuxt/BJa0m50V.js +0 -1
  281. package/dist/client/_nuxt/BPQ3VLAy.js +0 -1
  282. package/dist/client/_nuxt/Ci5iXYuB.js +0 -1
  283. package/dist/client/_nuxt/DaI2y8Uz.js +0 -162
  284. package/dist/client/_nuxt/builds/latest.json +0 -1
  285. package/dist/client/_nuxt/builds/meta/9b4fb16a-3c62-48b0-8295-126cb077b5d3.json +0 -1
  286. package/dist/client/_nuxt/entry.D45OuV0w.css +0 -1
  287. package/dist/client/_nuxt/error-404.B57D-jUQ.css +0 -1
  288. package/dist/client/_nuxt/error-500.DTHUW7BI.css +0 -1
  289. package/dist/client/_nuxt/vPLZfVXe.js +0 -1
  290. package/dist/client/index.html +0 -1
  291. package/dist/runtime/components/ScriptPayPalMarks.d.vue.ts +0 -52
  292. package/dist/runtime/components/ScriptPayPalMarks.vue +0 -69
  293. package/dist/runtime/components/ScriptPayPalMarks.vue.d.ts +0 -52
  294. package/dist/runtime/validation/mock.d.ts +0 -42
  295. package/dist/runtime/validation/mock.js +0 -21
  296. package/dist/runtime/validation/valibot.d.ts +0 -1
  297. package/dist/runtime/validation/valibot.js +0 -1
  298. /package/dist/{client → devtools-client}/_nuxt/CVO1_9PV.js +0 -0
  299. /package/dist/{client → devtools-client}/_nuxt/Cp-IABpG.js +0 -0
  300. /package/dist/{client → devtools-client}/_nuxt/D0r3Knsf.js +0 -0
@@ -1,14 +1,10 @@
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 { bindGoogleMapsEvents, useGoogleMapsResource } from "./useGoogleMapsResource";
9
4
  const props = defineProps({
10
5
  options: { type: Object, required: false }
11
6
  });
7
+ const emit = defineEmits(["click", "contextmenu", "dblclick", "mousedown", "mousemove", "mouseout", "mouseover", "mouseup", "drag", "dragend", "dragstart"]);
12
8
  const eventsWithPolyMouseEventPayload = [
13
9
  "click",
14
10
  "contextmenu",
@@ -24,37 +20,26 @@ const eventsWithMapMouseEventPayload = [
24
20
  "dragend",
25
21
  "dragstart"
26
22
  ];
27
- const emit = defineEmits([]);
28
- const mapContext = inject(MAP_INJECTION_KEY, void 0);
29
- let polyline = void 0;
30
- whenever(() => mapContext?.map.value && mapContext.mapsApi.value, () => {
31
- polyline = new mapContext.mapsApi.value.Polyline({
32
- map: mapContext.map.value,
33
- ...props.options
34
- });
35
- setupPolylineEventListeners(polyline);
36
- whenever(() => props.options, (options) => {
37
- polyline?.setOptions(options);
38
- }, {
39
- deep: true
40
- });
41
- }, {
42
- immediate: true,
43
- once: true
44
- });
45
- onUnmounted(() => {
46
- if (!polyline || !mapContext?.mapsApi.value) {
47
- return;
23
+ const polyline = useGoogleMapsResource({
24
+ create({ mapsApi, map }) {
25
+ const p = new mapsApi.Polyline({ map, ...props.options });
26
+ bindGoogleMapsEvents(p, emit, {
27
+ withPayload: [...eventsWithPolyMouseEventPayload, ...eventsWithMapMouseEventPayload]
28
+ });
29
+ return p;
30
+ },
31
+ cleanup(p, { mapsApi }) {
32
+ mapsApi.event.clearInstanceListeners(p);
33
+ p.setMap(null);
48
34
  }
49
- mapContext.mapsApi.value.event.clearInstanceListeners(polyline);
50
- polyline.setMap(null);
51
35
  });
52
- function setupPolylineEventListeners(polyline2) {
53
- eventsWithPolyMouseEventPayload.forEach((event) => {
54
- polyline2.addListener(event, (payload) => emit(event, payload));
55
- });
56
- eventsWithMapMouseEventPayload.forEach((event) => {
57
- polyline2.addListener(event, (payload) => emit(event, payload));
58
- });
59
- }
36
+ watch(() => props.options, (options) => {
37
+ if (polyline.value && options) {
38
+ polyline.value.setOptions(options);
39
+ }
40
+ }, { deep: true });
60
41
  </script>
42
+
43
+ <template>
44
+
45
+ </template>
@@ -1,9 +1,13 @@
1
1
  type __VLS_Props = {
2
+ /**
3
+ * Configuration options for the polyline overlay.
4
+ * @see https://developers.google.com/maps/documentation/javascript/reference/polygon#PolylineOptions
5
+ */
2
6
  options?: Omit<google.maps.PolylineOptions, 'map'>;
3
7
  };
4
- declare const __VLS_export: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {} & {
5
- click: (payload: google.maps.PolyMouseEvent) => any;
8
+ declare const __VLS_export: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
6
9
  contextmenu: (payload: google.maps.PolyMouseEvent) => any;
10
+ click: (payload: google.maps.PolyMouseEvent) => any;
7
11
  dblclick: (payload: google.maps.PolyMouseEvent) => any;
8
12
  drag: (payload: google.maps.MapMouseEvent) => any;
9
13
  dragend: (payload: google.maps.MapMouseEvent) => any;
@@ -14,8 +18,8 @@ declare const __VLS_export: import("vue").DefineComponent<__VLS_Props, {}, {}, {
14
18
  mouseover: (payload: google.maps.PolyMouseEvent) => any;
15
19
  mouseup: (payload: google.maps.PolyMouseEvent) => any;
16
20
  }, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{
17
- onClick?: ((payload: google.maps.PolyMouseEvent) => any) | undefined;
18
21
  onContextmenu?: ((payload: google.maps.PolyMouseEvent) => any) | undefined;
22
+ onClick?: ((payload: google.maps.PolyMouseEvent) => any) | undefined;
19
23
  onDblclick?: ((payload: google.maps.PolyMouseEvent) => any) | undefined;
20
24
  onDrag?: ((payload: google.maps.MapMouseEvent) => any) | undefined;
21
25
  onDragend?: ((payload: google.maps.MapMouseEvent) => any) | undefined;
@@ -1,9 +1,13 @@
1
1
  type __VLS_Props = {
2
+ /**
3
+ * Configuration options for the rectangle overlay.
4
+ * @see https://developers.google.com/maps/documentation/javascript/reference/polygon#RectangleOptions
5
+ */
2
6
  options?: Omit<google.maps.RectangleOptions, 'map'>;
3
7
  };
4
- declare const __VLS_export: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {} & {
5
- click: (payload: google.maps.MapMouseEvent) => any;
8
+ declare const __VLS_export: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
6
9
  contextmenu: (payload: google.maps.MapMouseEvent) => any;
10
+ click: (payload: google.maps.MapMouseEvent) => any;
7
11
  dblclick: (payload: google.maps.MapMouseEvent) => any;
8
12
  drag: (payload: google.maps.MapMouseEvent) => any;
9
13
  dragend: (payload: google.maps.MapMouseEvent) => any;
@@ -15,8 +19,8 @@ declare const __VLS_export: import("vue").DefineComponent<__VLS_Props, {}, {}, {
15
19
  mouseup: (payload: google.maps.MapMouseEvent) => any;
16
20
  bounds_changed: () => any;
17
21
  }, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{
18
- onClick?: ((payload: google.maps.MapMouseEvent) => any) | undefined;
19
22
  onContextmenu?: ((payload: google.maps.MapMouseEvent) => any) | undefined;
23
+ onClick?: ((payload: google.maps.MapMouseEvent) => any) | undefined;
20
24
  onDblclick?: ((payload: google.maps.MapMouseEvent) => any) | undefined;
21
25
  onDrag?: ((payload: google.maps.MapMouseEvent) => any) | undefined;
22
26
  onDragend?: ((payload: google.maps.MapMouseEvent) => any) | undefined;
@@ -1,14 +1,10 @@
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 { bindGoogleMapsEvents, useGoogleMapsResource } from "./useGoogleMapsResource";
9
4
  const props = defineProps({
10
5
  options: { type: Object, required: false }
11
6
  });
7
+ const emit = defineEmits(["bounds_changed", "click", "contextmenu", "dblclick", "drag", "dragend", "dragstart", "mousedown", "mousemove", "mouseout", "mouseover", "mouseup"]);
12
8
  const eventsWithoutPayload = [
13
9
  "bounds_changed"
14
10
  ];
@@ -25,37 +21,27 @@ const eventsWithMapMouseEventPayload = [
25
21
  "mouseover",
26
22
  "mouseup"
27
23
  ];
28
- const emit = defineEmits([]);
29
- const mapContext = inject(MAP_INJECTION_KEY, void 0);
30
- let rectangle = void 0;
31
- whenever(() => mapContext?.map.value && mapContext.mapsApi.value, () => {
32
- rectangle = new mapContext.mapsApi.value.Rectangle({
33
- map: mapContext.map.value,
34
- ...props.options
35
- });
36
- setupRectangleEventListeners(rectangle);
37
- whenever(() => props.options, (options) => {
38
- rectangle?.setOptions(options);
39
- }, {
40
- deep: true
41
- });
42
- }, {
43
- immediate: true,
44
- once: true
45
- });
46
- onUnmounted(() => {
47
- if (!rectangle || !mapContext?.mapsApi.value) {
48
- return;
24
+ const rectangle = useGoogleMapsResource({
25
+ create({ mapsApi, map }) {
26
+ const r = new mapsApi.Rectangle({ map, ...props.options });
27
+ bindGoogleMapsEvents(r, emit, {
28
+ noPayload: eventsWithoutPayload,
29
+ withPayload: eventsWithMapMouseEventPayload
30
+ });
31
+ return r;
32
+ },
33
+ cleanup(r, { mapsApi }) {
34
+ mapsApi.event.clearInstanceListeners(r);
35
+ r.setMap(null);
49
36
  }
50
- mapContext.mapsApi.value.event.clearInstanceListeners(rectangle);
51
- rectangle.setMap(null);
52
37
  });
53
- function setupRectangleEventListeners(rectangle2) {
54
- eventsWithoutPayload.forEach((event) => {
55
- rectangle2.addListener(event, () => emit(event));
56
- });
57
- eventsWithMapMouseEventPayload.forEach((event) => {
58
- rectangle2.addListener(event, (payload) => emit(event, payload));
59
- });
60
- }
38
+ watch(() => props.options, (options) => {
39
+ if (rectangle.value && options) {
40
+ rectangle.value.setOptions(options);
41
+ }
42
+ }, { deep: true });
61
43
  </script>
44
+
45
+ <template>
46
+
47
+ </template>
@@ -1,9 +1,13 @@
1
1
  type __VLS_Props = {
2
+ /**
3
+ * Configuration options for the rectangle overlay.
4
+ * @see https://developers.google.com/maps/documentation/javascript/reference/polygon#RectangleOptions
5
+ */
2
6
  options?: Omit<google.maps.RectangleOptions, 'map'>;
3
7
  };
4
- declare const __VLS_export: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {} & {
5
- click: (payload: google.maps.MapMouseEvent) => any;
8
+ declare const __VLS_export: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
6
9
  contextmenu: (payload: google.maps.MapMouseEvent) => any;
10
+ click: (payload: google.maps.MapMouseEvent) => any;
7
11
  dblclick: (payload: google.maps.MapMouseEvent) => any;
8
12
  drag: (payload: google.maps.MapMouseEvent) => any;
9
13
  dragend: (payload: google.maps.MapMouseEvent) => any;
@@ -15,8 +19,8 @@ declare const __VLS_export: import("vue").DefineComponent<__VLS_Props, {}, {}, {
15
19
  mouseup: (payload: google.maps.MapMouseEvent) => any;
16
20
  bounds_changed: () => any;
17
21
  }, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{
18
- onClick?: ((payload: google.maps.MapMouseEvent) => any) | undefined;
19
22
  onContextmenu?: ((payload: google.maps.MapMouseEvent) => any) | undefined;
23
+ onClick?: ((payload: google.maps.MapMouseEvent) => any) | undefined;
20
24
  onDblclick?: ((payload: google.maps.MapMouseEvent) => any) | undefined;
21
25
  onDrag?: ((payload: google.maps.MapMouseEvent) => any) | undefined;
22
26
  onDragend?: ((payload: google.maps.MapMouseEvent) => any) | undefined;
@@ -0,0 +1,200 @@
1
+ export type StaticMapFormat = 'png' | 'jpg' | 'gif' | 'png8' | 'png32' | 'jpg-baseline';
2
+ export type StaticMapType = 'roadmap' | 'satellite' | 'terrain' | 'hybrid';
3
+ import type { ImgHTMLAttributes, ReservedProps } from 'vue';
4
+ declare const _default: typeof __VLS_export;
5
+ export default _default;
6
+ declare const __VLS_export: __VLS_WithSlots<import("vue").DefineComponent<{
7
+ /**
8
+ * The center of the map. Accepts a "lat,lng" string or a LatLngLiteral object.
9
+ */
10
+ center?: string | {
11
+ lat: number;
12
+ lng: number;
13
+ };
14
+ /**
15
+ * Zoom level (0-21).
16
+ */
17
+ zoom?: number;
18
+ /**
19
+ * Explicit pixel size for the Static Maps API request, e.g. "640x400".
20
+ * When omitted, the component measures its rendered dimensions on mount and uses those.
21
+ * Falls back to "640x400" during SSR or when dimensions can't be measured.
22
+ */
23
+ size?: `${number}x${number}`;
24
+ /**
25
+ * Device pixel ratio for the static map image (1 or 2).
26
+ */
27
+ scale?: 1 | 2;
28
+ /**
29
+ * Image format.
30
+ */
31
+ format?: StaticMapFormat;
32
+ /**
33
+ * Map type.
34
+ */
35
+ maptype?: StaticMapType;
36
+ /**
37
+ * Cloud-based map styling ID.
38
+ */
39
+ mapId?: string;
40
+ /**
41
+ * Map markers. Supports multiple markers via string array.
42
+ * @see https://developers.google.com/maps/documentation/maps-static/start#Markers
43
+ */
44
+ markers?: string | string[];
45
+ /**
46
+ * Polyline paths. Supports multiple paths via string array.
47
+ * @see https://developers.google.com/maps/documentation/maps-static/start#Paths
48
+ */
49
+ path?: string | string[];
50
+ /**
51
+ * Locations that should be visible on the map.
52
+ */
53
+ visible?: string | string[];
54
+ /**
55
+ * Map styling. Accepts raw Static Maps API style strings or Google Maps JS API MapTypeStyle objects.
56
+ */
57
+ style?: string | string[] | google.maps.MapTypeStyle[];
58
+ /**
59
+ * Language code for map labels.
60
+ */
61
+ language?: string;
62
+ /**
63
+ * Region bias.
64
+ */
65
+ region?: string;
66
+ /**
67
+ * Digital signature for requests without an API key.
68
+ */
69
+ signature?: string;
70
+ /**
71
+ * API key override. When the proxy is enabled, this is ignored and the server-side key is used instead.
72
+ */
73
+ apiKey?: string;
74
+ /**
75
+ * CSS width for the container element.
76
+ */
77
+ width?: number | string;
78
+ /**
79
+ * CSS height for the container element.
80
+ */
81
+ height?: number | string;
82
+ /**
83
+ * Image loading strategy.
84
+ */
85
+ loading?: "eager" | "lazy";
86
+ /**
87
+ * Object-fit for the image within its container.
88
+ */
89
+ objectFit?: "cover" | "contain" | "fill" | "none" | "scale-down";
90
+ /**
91
+ * Additional attributes for the `<img>` element.
92
+ */
93
+ imgAttrs?: ImgHTMLAttributes & ReservedProps & Record<string, unknown>;
94
+ }, {
95
+ src: import("vue").ComputedRef<string>;
96
+ }, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<{
97
+ /**
98
+ * The center of the map. Accepts a "lat,lng" string or a LatLngLiteral object.
99
+ */
100
+ center?: string | {
101
+ lat: number;
102
+ lng: number;
103
+ };
104
+ /**
105
+ * Zoom level (0-21).
106
+ */
107
+ zoom?: number;
108
+ /**
109
+ * Explicit pixel size for the Static Maps API request, e.g. "640x400".
110
+ * When omitted, the component measures its rendered dimensions on mount and uses those.
111
+ * Falls back to "640x400" during SSR or when dimensions can't be measured.
112
+ */
113
+ size?: `${number}x${number}`;
114
+ /**
115
+ * Device pixel ratio for the static map image (1 or 2).
116
+ */
117
+ scale?: 1 | 2;
118
+ /**
119
+ * Image format.
120
+ */
121
+ format?: StaticMapFormat;
122
+ /**
123
+ * Map type.
124
+ */
125
+ maptype?: StaticMapType;
126
+ /**
127
+ * Cloud-based map styling ID.
128
+ */
129
+ mapId?: string;
130
+ /**
131
+ * Map markers. Supports multiple markers via string array.
132
+ * @see https://developers.google.com/maps/documentation/maps-static/start#Markers
133
+ */
134
+ markers?: string | string[];
135
+ /**
136
+ * Polyline paths. Supports multiple paths via string array.
137
+ * @see https://developers.google.com/maps/documentation/maps-static/start#Paths
138
+ */
139
+ path?: string | string[];
140
+ /**
141
+ * Locations that should be visible on the map.
142
+ */
143
+ visible?: string | string[];
144
+ /**
145
+ * Map styling. Accepts raw Static Maps API style strings or Google Maps JS API MapTypeStyle objects.
146
+ */
147
+ style?: string | string[] | google.maps.MapTypeStyle[];
148
+ /**
149
+ * Language code for map labels.
150
+ */
151
+ language?: string;
152
+ /**
153
+ * Region bias.
154
+ */
155
+ region?: string;
156
+ /**
157
+ * Digital signature for requests without an API key.
158
+ */
159
+ signature?: string;
160
+ /**
161
+ * API key override. When the proxy is enabled, this is ignored and the server-side key is used instead.
162
+ */
163
+ apiKey?: string;
164
+ /**
165
+ * CSS width for the container element.
166
+ */
167
+ width?: number | string;
168
+ /**
169
+ * CSS height for the container element.
170
+ */
171
+ height?: number | string;
172
+ /**
173
+ * Image loading strategy.
174
+ */
175
+ loading?: "eager" | "lazy";
176
+ /**
177
+ * Object-fit for the image within its container.
178
+ */
179
+ objectFit?: "cover" | "contain" | "fill" | "none" | "scale-down";
180
+ /**
181
+ * Additional attributes for the `<img>` element.
182
+ */
183
+ imgAttrs?: ImgHTMLAttributes & ReservedProps & Record<string, unknown>;
184
+ }> & Readonly<{}>, {
185
+ loading: "eager" | "lazy";
186
+ width: number | string;
187
+ height: number | string;
188
+ zoom: number;
189
+ objectFit: "cover" | "contain" | "fill" | "none" | "scale-down";
190
+ scale: 1 | 2;
191
+ }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>, {
192
+ default?: (props: {
193
+ src: string;
194
+ }) => any;
195
+ }>;
196
+ type __VLS_WithSlots<T, S> = T & {
197
+ new (): {
198
+ $slots: S;
199
+ };
200
+ };
@@ -0,0 +1,170 @@
1
+ <script>
2
+ import { scriptRuntimeConfig } from "#nuxt-scripts/utils";
3
+ import { defu } from "defu";
4
+ import { useHead, useRuntimeConfig } from "nuxt/app";
5
+ import { withQuery } from "ufo";
6
+ import { computed, onMounted, ref } from "vue";
7
+ import { useScriptProxyUrl } from "../../composables/useScriptProxyUrl";
8
+ </script>
9
+
10
+ <script setup>
11
+ const props = defineProps({
12
+ center: { type: [String, Object], required: false },
13
+ zoom: { type: Number, required: false, default: 15 },
14
+ size: { type: null, required: false },
15
+ scale: { type: Number, required: false, default: 2 },
16
+ format: { type: String, required: false },
17
+ maptype: { type: String, required: false },
18
+ mapId: { type: String, required: false },
19
+ markers: { type: [String, Array], required: false },
20
+ path: { type: [String, Array], required: false },
21
+ visible: { type: [String, Array], required: false },
22
+ style: { type: [String, Array], required: false },
23
+ language: { type: String, required: false },
24
+ region: { type: String, required: false },
25
+ signature: { type: String, required: false },
26
+ apiKey: { type: String, required: false },
27
+ width: { type: [Number, String], required: false, default: 640 },
28
+ height: { type: [Number, String], required: false, default: 400 },
29
+ loading: { type: String, required: false, default: "lazy" },
30
+ objectFit: { type: String, required: false, default: "cover" },
31
+ imgAttrs: { type: Object, required: false }
32
+ });
33
+ defineSlots();
34
+ const runtimeConfig = useRuntimeConfig();
35
+ const proxyConfig = runtimeConfig.public["nuxt-scripts"]?.googleStaticMapsProxy;
36
+ const apiKey = props.apiKey || scriptRuntimeConfig("googleMaps")?.apiKey;
37
+ const useProxy = !props.apiKey && proxyConfig?.enabled;
38
+ const proxyUrl = useScriptProxyUrl();
39
+ if (import.meta.dev) {
40
+ if (!apiKey && !useProxy)
41
+ console.warn("[nuxt-scripts] ScriptGoogleMapsStaticMap requires a Google Maps API key with Static Maps API access. Set NUXT_PUBLIC_SCRIPTS_GOOGLE_MAPS_API_KEY in your .env, or enable the proxy via `scripts.registry.googleMaps`.");
42
+ }
43
+ const rootEl = ref();
44
+ const measuredSize = ref();
45
+ function clampStaticMapSize(width, height, max = 640) {
46
+ const ratio = Math.min(1, max / Math.max(width, height));
47
+ return `${Math.max(1, Math.floor(width * ratio))}x${Math.max(1, Math.floor(height * ratio))}`;
48
+ }
49
+ onMounted(() => {
50
+ if (props.size || !rootEl.value)
51
+ return;
52
+ const { offsetWidth, offsetHeight } = rootEl.value;
53
+ if (offsetWidth > 0 && offsetHeight > 0) {
54
+ measuredSize.value = clampStaticMapSize(offsetWidth, offsetHeight);
55
+ }
56
+ });
57
+ function toCssUnit(value) {
58
+ return typeof value === "number" ? `${value}px` : value;
59
+ }
60
+ const PIXEL_VALUE_RE = /^\d+(?:px)?$/i;
61
+ function isPixelValue(value) {
62
+ if (typeof value === "number")
63
+ return true;
64
+ return PIXEL_VALUE_RE.test(value);
65
+ }
66
+ function transformMapStyles(styles) {
67
+ return styles.map((s) => {
68
+ const feature = s.featureType ? `feature:${s.featureType}` : "";
69
+ const element = s.elementType ? `element:${s.elementType}` : "";
70
+ const rules = (s.stylers || []).map((styler) => {
71
+ return Object.entries(styler).map(([key, value]) => {
72
+ if (key === "color" && typeof value === "string")
73
+ value = value.replace("#", "0x");
74
+ return `${key}:${value}`;
75
+ }).join("|");
76
+ }).filter(Boolean).join("|");
77
+ return [feature, element, rules].filter(Boolean).join("|");
78
+ }).filter(Boolean);
79
+ }
80
+ function resolveStyle(style) {
81
+ if (!style)
82
+ return void 0;
83
+ if (typeof style === "string")
84
+ return style;
85
+ if (Array.isArray(style) && style.length > 0 && typeof style[0] === "string")
86
+ return style;
87
+ return transformMapStyles(style);
88
+ }
89
+ function resolveCenter(center) {
90
+ if (!center)
91
+ return void 0;
92
+ if (typeof center === "string")
93
+ return center;
94
+ return `${center.lat},${center.lng}`;
95
+ }
96
+ const resolvedSize = computed(() => {
97
+ if (props.size)
98
+ return props.size;
99
+ if (measuredSize.value)
100
+ return measuredSize.value;
101
+ if (isPixelValue(props.width) && isPixelValue(props.height))
102
+ return clampStaticMapSize(Number.parseInt(String(props.width)), Number.parseInt(String(props.height)));
103
+ return "640x400";
104
+ });
105
+ const src = computed(() => {
106
+ const query = {
107
+ center: resolveCenter(props.center),
108
+ zoom: props.zoom,
109
+ size: resolvedSize.value,
110
+ scale: props.scale,
111
+ format: props.format,
112
+ maptype: props.maptype,
113
+ map_id: props.mapId,
114
+ markers: props.markers,
115
+ path: props.path,
116
+ visible: props.visible,
117
+ style: resolveStyle(props.style),
118
+ language: props.language,
119
+ region: props.region,
120
+ signature: props.signature,
121
+ key: useProxy ? void 0 : apiKey
122
+ };
123
+ for (const key of Object.keys(query)) {
124
+ if (query[key] === void 0)
125
+ delete query[key];
126
+ }
127
+ if (useProxy) {
128
+ return proxyUrl("/_scripts/proxy/google-static-maps", query);
129
+ }
130
+ return withQuery("https://maps.googleapis.com/maps/api/staticmap", query);
131
+ });
132
+ const imgAttributes = computed(() => {
133
+ return defu(props.imgAttrs, {
134
+ src: src.value,
135
+ alt: "Google Maps",
136
+ loading: props.loading,
137
+ style: {
138
+ width: "100%",
139
+ height: "100%",
140
+ objectFit: props.objectFit,
141
+ display: "block"
142
+ }
143
+ });
144
+ });
145
+ const rootStyle = computed(() => ({
146
+ width: toCssUnit(props.width),
147
+ height: toCssUnit(props.height),
148
+ maxWidth: "100%",
149
+ overflow: "hidden"
150
+ }));
151
+ if (import.meta.server) {
152
+ useHead({
153
+ link: [
154
+ {
155
+ rel: props.loading === "eager" ? "preconnect" : "dns-prefetch",
156
+ href: useProxy ? void 0 : "https://maps.googleapis.com"
157
+ }
158
+ ].filter((l) => l.href)
159
+ });
160
+ }
161
+ defineExpose({ src });
162
+ </script>
163
+
164
+ <template>
165
+ <div ref="rootEl" :style="rootStyle">
166
+ <slot :src="src">
167
+ <img v-bind="imgAttributes">
168
+ </slot>
169
+ </div>
170
+ </template>