@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.
- package/dist/client/200.html +1 -1
- package/dist/client/404.html +1 -1
- package/dist/client/_nuxt/{KCxg59bo.js → AwAKM0sG.js} +1 -1
- package/dist/client/_nuxt/{CwXQ1Eqw.js → Bl23o3st.js} +18 -18
- package/dist/client/_nuxt/{JXDRhrZp.js → CYlYSSNW.js} +1 -1
- package/dist/client/_nuxt/{viP3Pc9X.js → D5FIkDae.js} +1 -1
- package/dist/client/_nuxt/builds/latest.json +1 -1
- package/dist/client/_nuxt/builds/meta/05eb1abd-7d1c-43e9-b78e-dc8ec287cc6f.json +1 -0
- package/dist/client/_nuxt/error-404.1K8v8Su2.css +1 -0
- package/dist/client/_nuxt/error-500.B9qvKpQm.css +1 -0
- package/dist/client/index.html +1 -1
- package/dist/module.json +1 -1
- package/dist/module.mjs +28 -16
- package/dist/registry.mjs +4 -1
- package/dist/runtime/components/GoogleMaps/ScriptGoogleMaps.d.vue.ts +13 -3
- package/dist/runtime/components/GoogleMaps/ScriptGoogleMaps.vue +23 -8
- package/dist/runtime/components/GoogleMaps/ScriptGoogleMaps.vue.d.ts +13 -3
- package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsAdvancedMarkerElement.d.vue.ts +5 -35
- package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsAdvancedMarkerElement.vue +44 -42
- package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsAdvancedMarkerElement.vue.d.ts +5 -35
- package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsCircle.d.vue.ts +1 -1
- package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsCircle.vue +6 -10
- package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsCircle.vue.d.ts +1 -1
- package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsGeoJson.d.vue.ts +35 -0
- package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsGeoJson.vue +61 -0
- package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsGeoJson.vue.d.ts +35 -0
- package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsInfoWindow.d.vue.ts +5 -5
- package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsInfoWindow.vue +34 -18
- package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsInfoWindow.vue.d.ts +5 -5
- package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsMarker.d.vue.ts +7 -5
- package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsMarker.vue +19 -11
- package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsMarker.vue.d.ts +7 -5
- package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsMarkerClusterer.d.vue.ts +1 -1
- package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsMarkerClusterer.vue +3 -7
- package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsMarkerClusterer.vue.d.ts +1 -1
- package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsOverlayView.d.vue.ts +40 -0
- package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsOverlayView.vue +160 -0
- package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsOverlayView.vue.d.ts +40 -0
- package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsPolygon.d.vue.ts +1 -1
- package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsPolygon.vue +5 -10
- package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsPolygon.vue.d.ts +1 -1
- package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsPolyline.d.vue.ts +1 -1
- package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsPolyline.vue +5 -10
- package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsPolyline.vue.d.ts +1 -1
- package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsRectangle.d.vue.ts +1 -1
- package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsRectangle.vue +6 -10
- package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsRectangle.vue.d.ts +1 -1
- package/dist/runtime/components/GoogleMaps/bindGoogleMapsEvents.d.ts +13 -0
- package/dist/runtime/components/GoogleMaps/bindGoogleMapsEvents.js +8 -0
- package/dist/runtime/components/GoogleMaps/injectionKeys.d.ts +2 -0
- package/dist/runtime/composables/useScript.js +3 -1
- package/dist/runtime/registry/gravatar.d.ts +1 -0
- package/dist/runtime/registry/gravatar.js +1 -0
- package/dist/runtime/registry/rybbit-analytics.js +3 -1
- package/dist/stats.mjs +283 -227
- package/dist/types-source.mjs +1420 -50
- package/package.json +7 -7
- package/dist/client/_nuxt/builds/meta/d0d06e27-af53-4f1a-b7ae-18727423b3ed.json +0 -1
- package/dist/client/_nuxt/error-404.C_3_IG5y.css +0 -1
- package/dist/client/_nuxt/error-500.DSv6YikH.css +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
import{_ as o,o as s,c as a,a as t,t as r}from"./
|
|
1
|
+
import{_ as o,o as s,c as a,a as t,t as r}from"./Bl23o3st.js";import{u as i}from"./AwAKM0sG.js";const u={class:"antialiased bg-white dark:bg-[#020420] dark:text-white font-sans grid min-h-screen overflow-hidden place-content-center text-[#020420] tracking-wide"},c={class:"max-w-520px text-center"},l=["textContent"],d=["textContent"],p=["textContent"],f={__name:"error-500",props:{appName:{type:String,default:"Nuxt"},status:{type:Number,default:500},statusText:{type:String,default:"Internal server error"},description:{type:String,default:"This page is temporarily unavailable."},refresh:{type:String,default:"Refresh this page"}},setup(e){const n=e;return i({title:`${n.status} - ${n.statusText} | ${n.appName}`,script:[{innerHTML:`!function(){const e=document.createElement("link").relList;if(!(e&&e.supports&&e.supports("modulepreload"))){for(const e of document.querySelectorAll('link[rel="modulepreload"]'))r(e);new MutationObserver(e=>{for(const o of e)if("childList"===o.type)for(const e of o.addedNodes)"LINK"===e.tagName&&"modulepreload"===e.rel&&r(e)}).observe(document,{childList:!0,subtree:!0})}function r(e){if(e.ep)return;e.ep=!0;const r=function(e){const r={};return e.integrity&&(r.integrity=e.integrity),e.referrerPolicy&&(r.referrerPolicy=e.referrerPolicy),"use-credentials"===e.crossOrigin?r.credentials="include":"anonymous"===e.crossOrigin?r.credentials="omit":r.credentials="same-origin",r}(e);fetch(e.href,r)}}();`}],style:[{innerHTML:'*,:after,:before{border-color:var(--un-default-border-color,#e5e7eb);border-style:solid;border-width:0;box-sizing:border-box}:after,:before{--un-content:""}html{line-height:1.5;-webkit-text-size-adjust:100%;font-family:ui-sans-serif,system-ui,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-feature-settings:normal;font-variation-settings:normal;-moz-tab-size:4;tab-size:4;-webkit-tap-highlight-color:transparent}body{line-height:inherit;margin:0}h1,h2{font-size:inherit;font-weight:inherit}h1,h2,p{margin:0}*,:after,:before{--un-rotate:0;--un-rotate-x:0;--un-rotate-y:0;--un-rotate-z:0;--un-scale-x:1;--un-scale-y:1;--un-scale-z:1;--un-skew-x:0;--un-skew-y:0;--un-translate-x:0;--un-translate-y:0;--un-translate-z:0;--un-pan-x: ;--un-pan-y: ;--un-pinch-zoom: ;--un-scroll-snap-strictness:proximity;--un-ordinal: ;--un-slashed-zero: ;--un-numeric-figure: ;--un-numeric-spacing: ;--un-numeric-fraction: ;--un-border-spacing-x:0;--un-border-spacing-y:0;--un-ring-offset-shadow:0 0 transparent;--un-ring-shadow:0 0 transparent;--un-shadow-inset: ;--un-shadow:0 0 transparent;--un-ring-inset: ;--un-ring-offset-width:0px;--un-ring-offset-color:#fff;--un-ring-width:0px;--un-ring-color:rgba(147,197,253,.5);--un-blur: ;--un-brightness: ;--un-contrast: ;--un-drop-shadow: ;--un-grayscale: ;--un-hue-rotate: ;--un-invert: ;--un-saturate: ;--un-sepia: ;--un-backdrop-blur: ;--un-backdrop-brightness: ;--un-backdrop-contrast: ;--un-backdrop-grayscale: ;--un-backdrop-hue-rotate: ;--un-backdrop-invert: ;--un-backdrop-opacity: ;--un-backdrop-saturate: ;--un-backdrop-sepia: }'}]}),(h,m)=>(s(),a("div",u,[t("div",c,[t("h1",{class:"font-semibold leading-none mb-4 sm:text-[110px] tabular-nums text-[80px]",textContent:r(e.status)},null,8,l),t("h2",{class:"font-semibold mb-2 sm:text-3xl text-2xl",textContent:r(e.statusText)},null,8,d),t("p",{class:"mb-4 px-2 text-[#64748B] text-md",textContent:r(e.description)},null,8,p)])]))}},x=o(f,[["__scopeId","data-v-ec49e1c6"]]);export{x as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{_ as s,o as a,c as i,a as t,t as n,b as u,w as c,d as l,e as d}from"./
|
|
1
|
+
import{_ as s,o as a,c as i,a as t,t as n,b as u,w as c,d as l,e as d}from"./Bl23o3st.js";import{u as f}from"./AwAKM0sG.js";const p={class:"antialiased bg-white dark:bg-[#020420] dark:text-white font-sans grid min-h-screen overflow-hidden place-content-center text-[#020420] tracking-wide"},m={class:"max-w-520px text-center"},h=["textContent"],b=["textContent"],x=["textContent"],g={class:"flex items-center justify-center w-full"},y={__name:"error-404",props:{appName:{type:String,default:"Nuxt"},status:{type:Number,default:404},statusText:{type:String,default:"Page not found"},description:{type:String,default:"Sorry, the page you are looking for could not be found."},backHome:{type:String,default:"Go back home"}},setup(e){const r=e;return f({title:`${r.status} - ${r.statusText} | ${r.appName}`,script:[{innerHTML:`!function(){const e=document.createElement("link").relList;if(!(e&&e.supports&&e.supports("modulepreload"))){for(const e of document.querySelectorAll('link[rel="modulepreload"]'))r(e);new MutationObserver(e=>{for(const o of e)if("childList"===o.type)for(const e of o.addedNodes)"LINK"===e.tagName&&"modulepreload"===e.rel&&r(e)}).observe(document,{childList:!0,subtree:!0})}function r(e){if(e.ep)return;e.ep=!0;const r=function(e){const r={};return e.integrity&&(r.integrity=e.integrity),e.referrerPolicy&&(r.referrerPolicy=e.referrerPolicy),"use-credentials"===e.crossOrigin?r.credentials="include":"anonymous"===e.crossOrigin?r.credentials="omit":r.credentials="same-origin",r}(e);fetch(e.href,r)}}();`}],style:[{innerHTML:'*,:after,:before{border-color:var(--un-default-border-color,#e5e7eb);border-style:solid;border-width:0;box-sizing:border-box}:after,:before{--un-content:""}html{line-height:1.5;-webkit-text-size-adjust:100%;font-family:ui-sans-serif,system-ui,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-feature-settings:normal;font-variation-settings:normal;-moz-tab-size:4;tab-size:4;-webkit-tap-highlight-color:transparent}body{line-height:inherit;margin:0}h1,h2{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}h1,h2,p{margin:0}*,:after,:before{--un-rotate:0;--un-rotate-x:0;--un-rotate-y:0;--un-rotate-z:0;--un-scale-x:1;--un-scale-y:1;--un-scale-z:1;--un-skew-x:0;--un-skew-y:0;--un-translate-x:0;--un-translate-y:0;--un-translate-z:0;--un-pan-x: ;--un-pan-y: ;--un-pinch-zoom: ;--un-scroll-snap-strictness:proximity;--un-ordinal: ;--un-slashed-zero: ;--un-numeric-figure: ;--un-numeric-spacing: ;--un-numeric-fraction: ;--un-border-spacing-x:0;--un-border-spacing-y:0;--un-ring-offset-shadow:0 0 transparent;--un-ring-shadow:0 0 transparent;--un-shadow-inset: ;--un-shadow:0 0 transparent;--un-ring-inset: ;--un-ring-offset-width:0px;--un-ring-offset-color:#fff;--un-ring-width:0px;--un-ring-color:rgba(147,197,253,.5);--un-blur: ;--un-brightness: ;--un-contrast: ;--un-drop-shadow: ;--un-grayscale: ;--un-hue-rotate: ;--un-invert: ;--un-saturate: ;--un-sepia: ;--un-backdrop-blur: ;--un-backdrop-brightness: ;--un-backdrop-contrast: ;--un-backdrop-grayscale: ;--un-backdrop-hue-rotate: ;--un-backdrop-invert: ;--un-backdrop-opacity: ;--un-backdrop-saturate: ;--un-backdrop-sepia: }'}]}),(k,w)=>{const o=d;return a(),i("div",p,[t("div",m,[t("h1",{class:"font-semibold leading-none mb-4 sm:text-[110px] tabular-nums text-[80px]",textContent:n(e.status)},null,8,h),t("h2",{class:"font-semibold mb-2 sm:text-3xl text-2xl",textContent:n(e.statusText)},null,8,b),t("p",{class:"mb-4 px-2 text-[#64748B] text-md",textContent:n(e.description)},null,8,x),t("div",g,[u(o,{to:"/",class:"font-medium hover:text-[#00DC82] text-sm underline underline-offset-3"},{default:c(()=>[l(n(e.backHome),1)]),_:1})])])])}}},N=s(y,[["__scopeId","data-v-2cf1c98d"]]);export{N as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"id":"
|
|
1
|
+
{"id":"05eb1abd-7d1c-43e9-b78e-dc8ec287cc6f","timestamp":1774014634721}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"id":"05eb1abd-7d1c-43e9-b78e-dc8ec287cc6f","timestamp":1774014634721,"prerendered":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
.grid[data-v-2cf1c98d]{display:grid}.mb-2[data-v-2cf1c98d]{margin-bottom:.5rem}.mb-4[data-v-2cf1c98d]{margin-bottom:1rem}.max-w-520px[data-v-2cf1c98d]{max-width:520px}.min-h-screen[data-v-2cf1c98d]{min-height:100vh}.w-full[data-v-2cf1c98d]{width:100%}.flex[data-v-2cf1c98d]{display:flex}.place-content-center[data-v-2cf1c98d]{place-content:center}.items-center[data-v-2cf1c98d]{align-items:center}.justify-center[data-v-2cf1c98d]{justify-content:center}.overflow-hidden[data-v-2cf1c98d]{overflow:hidden}.bg-white[data-v-2cf1c98d]{--un-bg-opacity:1;background-color:rgb(255 255 255/var(--un-bg-opacity))}.px-2[data-v-2cf1c98d]{padding-left:.5rem;padding-right:.5rem}.text-center[data-v-2cf1c98d]{text-align:center}.text-\[80px\][data-v-2cf1c98d]{font-size:80px}.text-2xl[data-v-2cf1c98d]{font-size:1.5rem;line-height:2rem}.text-sm[data-v-2cf1c98d]{font-size:.875rem;line-height:1.25rem}.text-\[\#020420\][data-v-2cf1c98d]{--un-text-opacity:1;color:rgb(2 4 32/var(--un-text-opacity))}.text-\[\#64748B\][data-v-2cf1c98d]{--un-text-opacity:1;color:rgb(100 116 139/var(--un-text-opacity))}.hover\:text-\[\#00DC82\][data-v-2cf1c98d]:hover{--un-text-opacity:1;color:rgb(0 220 130/var(--un-text-opacity))}.font-medium[data-v-2cf1c98d]{font-weight:500}.font-semibold[data-v-2cf1c98d]{font-weight:600}.leading-none[data-v-2cf1c98d]{line-height:1}.tracking-wide[data-v-2cf1c98d]{letter-spacing:.025em}.font-sans[data-v-2cf1c98d]{font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji}.tabular-nums[data-v-2cf1c98d]{--un-numeric-spacing:tabular-nums;font-variant-numeric:var(--un-ordinal) var(--un-slashed-zero) var(--un-numeric-figure) var(--un-numeric-spacing) var(--un-numeric-fraction)}.underline[data-v-2cf1c98d]{text-decoration-line:underline}.underline-offset-3[data-v-2cf1c98d]{text-underline-offset:3px}.antialiased[data-v-2cf1c98d]{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}@media(prefers-color-scheme:dark){.dark\:bg-\[\#020420\][data-v-2cf1c98d]{--un-bg-opacity:1;background-color:rgb(2 4 32/var(--un-bg-opacity))}.dark\:text-white[data-v-2cf1c98d]{--un-text-opacity:1;color:rgb(255 255 255/var(--un-text-opacity))}}@media(min-width:640px){.sm\:text-\[110px\][data-v-2cf1c98d]{font-size:110px}.sm\:text-3xl[data-v-2cf1c98d]{font-size:1.875rem;line-height:2.25rem}}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
.grid[data-v-ec49e1c6]{display:grid}.mb-2[data-v-ec49e1c6]{margin-bottom:.5rem}.mb-4[data-v-ec49e1c6]{margin-bottom:1rem}.max-w-520px[data-v-ec49e1c6]{max-width:520px}.min-h-screen[data-v-ec49e1c6]{min-height:100vh}.place-content-center[data-v-ec49e1c6]{place-content:center}.overflow-hidden[data-v-ec49e1c6]{overflow:hidden}.bg-white[data-v-ec49e1c6]{--un-bg-opacity:1;background-color:rgb(255 255 255/var(--un-bg-opacity))}.px-2[data-v-ec49e1c6]{padding-left:.5rem;padding-right:.5rem}.text-center[data-v-ec49e1c6]{text-align:center}.text-\[80px\][data-v-ec49e1c6]{font-size:80px}.text-2xl[data-v-ec49e1c6]{font-size:1.5rem;line-height:2rem}.text-\[\#020420\][data-v-ec49e1c6]{--un-text-opacity:1;color:rgb(2 4 32/var(--un-text-opacity))}.text-\[\#64748B\][data-v-ec49e1c6]{--un-text-opacity:1;color:rgb(100 116 139/var(--un-text-opacity))}.font-semibold[data-v-ec49e1c6]{font-weight:600}.leading-none[data-v-ec49e1c6]{line-height:1}.tracking-wide[data-v-ec49e1c6]{letter-spacing:.025em}.font-sans[data-v-ec49e1c6]{font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji}.tabular-nums[data-v-ec49e1c6]{--un-numeric-spacing:tabular-nums;font-variant-numeric:var(--un-ordinal) var(--un-slashed-zero) var(--un-numeric-figure) var(--un-numeric-spacing) var(--un-numeric-fraction)}.antialiased[data-v-ec49e1c6]{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}@media(prefers-color-scheme:dark){.dark\:bg-\[\#020420\][data-v-ec49e1c6]{--un-bg-opacity:1;background-color:rgb(2 4 32/var(--un-bg-opacity))}.dark\:text-white[data-v-ec49e1c6]{--un-text-opacity:1;color:rgb(255 255 255/var(--un-text-opacity))}}@media(min-width:640px){.sm\:text-\[110px\][data-v-ec49e1c6]{font-size:110px}.sm\:text-3xl[data-v-ec49e1c6]{font-size:1.875rem;line-height:2.25rem}}
|
package/dist/client/index.html
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
<!DOCTYPE html><html><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1"><link rel="stylesheet" href="/__nuxt-scripts/_nuxt/entry.C5SUNdim.css" crossorigin><link rel="modulepreload" as="script" crossorigin href="/__nuxt-scripts/_nuxt/
|
|
1
|
+
<!DOCTYPE html><html><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1"><link rel="stylesheet" href="/__nuxt-scripts/_nuxt/entry.C5SUNdim.css" crossorigin><link rel="modulepreload" as="script" crossorigin href="/__nuxt-scripts/_nuxt/Bl23o3st.js"><script type="module" src="/__nuxt-scripts/_nuxt/Bl23o3st.js" crossorigin></script></head><body><div id="__nuxt"></div><div id="teleports"></div><script>window.__NUXT__={};window.__NUXT__.config={public:{"nuxt-scripts":{version:"",defaultScriptOptions:{trigger:"onNuxtReady"},googleStaticMapsProxy:"",endpoints:{}}},app:{baseURL:"/__nuxt-scripts",buildId:"05eb1abd-7d1c-43e9-b78e-dc8ec287cc6f",buildAssetsDir:"/_nuxt/",cdnURL:""}}</script><script type="application/json" data-nuxt-data="nuxt-app" data-ssr="false" id="__NUXT_DATA__">[{"prerenderedAt":1,"serverRendered":2},1774014640219,false]</script></body></html>
|
package/dist/module.json
CHANGED
package/dist/module.mjs
CHANGED
|
@@ -308,8 +308,9 @@ function setupPublicAssetStrategy(options = {}) {
|
|
|
308
308
|
route: assetsBaseURL,
|
|
309
309
|
handler: lazyEventHandler(async () => {
|
|
310
310
|
return eventHandler(async (event) => {
|
|
311
|
-
const
|
|
312
|
-
const
|
|
311
|
+
const cleanPath = (event.path || "").split("?")[0]?.slice(1) || "";
|
|
312
|
+
const filename = cleanPath;
|
|
313
|
+
const scriptDescriptor = renderedScript.get(join(assetsBaseURL, cleanPath));
|
|
313
314
|
if (!scriptDescriptor || scriptDescriptor instanceof Error)
|
|
314
315
|
throw createError({ statusCode: 404 });
|
|
315
316
|
if (scriptDescriptor.content) {
|
|
@@ -1408,6 +1409,8 @@ const REGISTRY_ENV_DEFAULTS = {
|
|
|
1408
1409
|
vercelAnalytics: {},
|
|
1409
1410
|
xPixel: { id: "" }
|
|
1410
1411
|
};
|
|
1412
|
+
const UPPER_RE = /([A-Z])/g;
|
|
1413
|
+
const toScreamingSnake = (s) => s.replace(UPPER_RE, "_$1").toUpperCase();
|
|
1411
1414
|
const PARTYTOWN_FORWARDS = {
|
|
1412
1415
|
bingUet: ["uetq.push"],
|
|
1413
1416
|
googleAnalytics: ["dataLayer.push", "gtag"],
|
|
@@ -1470,19 +1473,6 @@ const module$1 = defineNuxtModule({
|
|
|
1470
1473
|
if (unheadVersion?.startsWith("1")) {
|
|
1471
1474
|
logger.error(`Nuxt Scripts requires Unhead >= 2, you are using v${unheadVersion}. Please run \`nuxi upgrade --clean\` to upgrade...`);
|
|
1472
1475
|
}
|
|
1473
|
-
const googleMapsEnabled = config.googleStaticMapsProxy?.enabled || !!config.registry?.googleMaps;
|
|
1474
|
-
nuxt.options.runtimeConfig["nuxt-scripts"] = {
|
|
1475
|
-
version,
|
|
1476
|
-
// Private proxy config with API key (server-side only)
|
|
1477
|
-
googleStaticMapsProxy: googleMapsEnabled ? { apiKey: nuxt.options.runtimeConfig.public.scripts?.googleMaps?.apiKey } : void 0
|
|
1478
|
-
};
|
|
1479
|
-
nuxt.options.runtimeConfig.public["nuxt-scripts"] = {
|
|
1480
|
-
// expose for devtools
|
|
1481
|
-
version: nuxt.options.dev ? version : void 0,
|
|
1482
|
-
defaultScriptOptions: config.defaultScriptOptions,
|
|
1483
|
-
// Only expose enabled and cacheMaxAge to client, not apiKey
|
|
1484
|
-
googleStaticMapsProxy: googleMapsEnabled ? { enabled: true, cacheMaxAge: config.googleStaticMapsProxy?.cacheMaxAge ?? 3600 } : void 0
|
|
1485
|
-
};
|
|
1486
1476
|
if (config.registry) {
|
|
1487
1477
|
normalizeRegistryConfig(config.registry);
|
|
1488
1478
|
nuxt.options.runtimeConfig.public = nuxt.options.runtimeConfig.public || {};
|
|
@@ -1492,13 +1482,35 @@ const module$1 = defineNuxtModule({
|
|
|
1492
1482
|
continue;
|
|
1493
1483
|
const input = entry[0];
|
|
1494
1484
|
const envDefaults = REGISTRY_ENV_DEFAULTS[key];
|
|
1495
|
-
|
|
1485
|
+
if (!envDefaults) {
|
|
1486
|
+
registryWithDefaults[key] = input;
|
|
1487
|
+
continue;
|
|
1488
|
+
}
|
|
1489
|
+
const envResolved = {};
|
|
1490
|
+
for (const [field, defaultValue] of Object.entries(envDefaults)) {
|
|
1491
|
+
const envKey = `NUXT_PUBLIC_SCRIPTS_${toScreamingSnake(key)}_${toScreamingSnake(field)}`;
|
|
1492
|
+
envResolved[field] = process.env[envKey] || defaultValue;
|
|
1493
|
+
}
|
|
1494
|
+
registryWithDefaults[key] = defu(input, envResolved);
|
|
1496
1495
|
}
|
|
1497
1496
|
nuxt.options.runtimeConfig.public.scripts = defu(
|
|
1498
1497
|
nuxt.options.runtimeConfig.public.scripts || {},
|
|
1499
1498
|
registryWithDefaults
|
|
1500
1499
|
);
|
|
1501
1500
|
}
|
|
1501
|
+
const googleMapsEnabled = config.googleStaticMapsProxy?.enabled || !!config.registry?.googleMaps;
|
|
1502
|
+
nuxt.options.runtimeConfig["nuxt-scripts"] = {
|
|
1503
|
+
version,
|
|
1504
|
+
// Private proxy config with API key (server-side only)
|
|
1505
|
+
googleStaticMapsProxy: googleMapsEnabled ? { apiKey: nuxt.options.runtimeConfig.public.scripts?.googleMaps?.apiKey } : void 0
|
|
1506
|
+
};
|
|
1507
|
+
nuxt.options.runtimeConfig.public["nuxt-scripts"] = {
|
|
1508
|
+
// expose for devtools
|
|
1509
|
+
version: nuxt.options.dev ? version : void 0,
|
|
1510
|
+
defaultScriptOptions: config.defaultScriptOptions,
|
|
1511
|
+
// Only expose enabled and cacheMaxAge to client, not apiKey
|
|
1512
|
+
googleStaticMapsProxy: googleMapsEnabled ? { enabled: true, cacheMaxAge: config.googleStaticMapsProxy?.cacheMaxAge ?? 3600 } : void 0
|
|
1513
|
+
};
|
|
1502
1514
|
if (config.defaultScriptOptions?.bundle !== void 0) {
|
|
1503
1515
|
logger.warn(
|
|
1504
1516
|
"`scripts.defaultScriptOptions.bundle` is deprecated. Use `scripts.firstParty: true` instead. First-party mode is now enabled by default."
|
package/dist/registry.mjs
CHANGED
|
@@ -22,7 +22,10 @@ const LOGOS = {
|
|
|
22
22
|
tiktokPixel: `<svg xmlns="http://www.w3.org/2000/svg" width="32" height="32" viewBox="0 0 256 256"><path d="M224 72a52.059 52.059 0 0 1-52-52a4 4 0 0 0-4-4h-40a4 4 0 0 0-4 4v132a28 28 0 1 1-40.567-25.019a4 4 0 0 0 2.567-3.734V80a4 4 0 0 0-4.652-3.949A84.032 84.032 0 1 0 156 152v-43.047a99.432 99.432 0 0 0 52 14.586a4 4 0 0 0 4-4V76a4 4 0 0 0-4-4z" fill="currentColor"/></svg>`,
|
|
23
23
|
redditPixel: `<svg viewBox="0 0 800 800" xmlns="http://www.w3.org/2000/svg" width="32" height="32"> <circle cx="400" cy="400" fill="#ff4500" r="400"/> <path d="M666.8 400c.08 5.48-.6 10.95-2.04 16.24s-3.62 10.36-6.48 15.04c-2.85 4.68-6.35 8.94-10.39 12.65s-8.58 6.83-13.49 9.27c.11 1.46.2 2.93.25 4.4a107.268 107.268 0 0 1 0 8.8c-.05 1.47-.14 2.94-.25 4.4 0 89.6-104.4 162.4-233.2 162.4S168 560.4 168 470.8c-.11-1.46-.2-2.93-.25-4.4a107.268 107.268 0 0 1 0-8.8c.05-1.47.14-2.94.25-4.4a58.438 58.438 0 0 1-31.85-37.28 58.41 58.41 0 0 1 7.8-48.42 58.354 58.354 0 0 1 41.93-25.4 58.4 58.4 0 0 1 46.52 15.5 286.795 286.795 0 0 1 35.89-20.71c12.45-6.02 25.32-11.14 38.51-15.3s26.67-7.35 40.32-9.56 27.45-3.42 41.28-3.63L418 169.6c.33-1.61.98-3.13 1.91-4.49.92-1.35 2.11-2.51 3.48-3.4 1.38-.89 2.92-1.5 4.54-1.8 1.61-.29 3.27-.26 4.87.09l98 19.6c9.89-16.99 30.65-24.27 48.98-17.19s28.81 26.43 24.71 45.65c-4.09 19.22-21.55 32.62-41.17 31.61-19.63-1.01-35.62-16.13-37.72-35.67L440 186l-26 124.8c13.66.29 27.29 1.57 40.77 3.82a284.358 284.358 0 0 1 77.8 24.86A284.412 284.412 0 0 1 568 360a58.345 58.345 0 0 1 29.4-15.21 58.361 58.361 0 0 1 32.95 3.21 58.384 58.384 0 0 1 25.91 20.61A58.384 58.384 0 0 1 666.8 400zm-396.96 55.31c2.02 4.85 4.96 9.26 8.68 12.97 3.71 3.72 8.12 6.66 12.97 8.68A40.049 40.049 0 0 0 306.8 480c16.18 0 30.76-9.75 36.96-24.69 6.19-14.95 2.76-32.15-8.68-43.59s-28.64-14.87-43.59-8.68c-14.94 6.2-24.69 20.78-24.69 36.96 0 5.25 1.03 10.45 3.04 15.31zm229.1 96.02c2.05-2 3.22-4.73 3.26-7.59.04-2.87-1.07-5.63-3.07-7.68s-4.73-3.22-7.59-3.26c-2.87-.04-5.63 1.07-7.94 2.8a131.06 131.06 0 0 1-19.04 11.35 131.53 131.53 0 0 1-20.68 7.99c-7.1 2.07-14.37 3.54-21.72 4.39-7.36.85-14.77 1.07-22.16.67-7.38.33-14.78.03-22.11-.89a129.01 129.01 0 0 1-21.64-4.6c-7.08-2.14-13.95-4.88-20.56-8.18s-12.93-7.16-18.89-11.53c-2.07-1.7-4.7-2.57-7.38-2.44s-5.21 1.26-7.11 3.15c-1.89 1.9-3.02 4.43-3.15 7.11s.74 5.31 2.44 7.38c7.03 5.3 14.5 9.98 22.33 14s16 7.35 24.4 9.97 17.01 4.51 25.74 5.66c8.73 1.14 17.54 1.53 26.33 1.17 8.79.36 17.6-.03 26.33-1.17A153.961 153.961 0 0 0 476.87 564c7.83-4.02 15.3-8.7 22.33-14zm-7.34-68.13c5.42.06 10.8-.99 15.81-3.07 5.01-2.09 9.54-5.17 13.32-9.06s6.72-8.51 8.66-13.58A39.882 39.882 0 0 0 532 441.6c0-16.18-9.75-30.76-24.69-36.96-14.95-6.19-32.15-2.76-43.59 8.68s-14.87 28.64-8.68 43.59c6.2 14.94 20.78 24.69 36.96 24.69z" fill="#fff"/> </svg>`,
|
|
24
24
|
googleAdsense: `<svg xmlns="http://www.w3.org/2000/svg" width="36.09" height="32" viewBox="0 0 256 227"><path fill="#FBBC04" d="M161.8 62.158c11.581-19.822 4.705-45.154-15.355-56.603C126.376-5.878 100.723.899 89.142 20.72c-.51.888-.99 1.794-1.44 2.715L48.553 90.41a49.41 49.41 0 0 0-2.401 4.112L5.495 164.681l72.65 40.721l40.45-69.566a40.013 40.013 0 0 0 2.402-4.112l39.15-66.983a45.769 45.769 0 0 0 1.654-2.583"/><path fill="#34A853" d="M78.483 205.189c-11.515 20.142-37.49 27.553-57.434 15.931c-19.954-11.63-27.036-36.847-15.513-56.982c11.523-20.134 37.267-27.578 57.22-15.956c19.954 11.63 27.241 36.872 15.727 56.998"/><path fill="#4285F4" d="M235.257 75.417c-19.83-11.429-45.17-4.661-56.661 15.134l-41.478 71.67c-11.428 19.755-4.678 45.033 15.076 56.46l.107.062c19.835 11.433 45.18 4.66 56.67-15.142l41.469-71.663c11.426-19.76 4.67-45.042-15.09-56.468z"/></svg>`,
|
|
25
|
-
carbonAds: `<svg width="85" height="39" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"><g fill="none" fill-rule="evenodd"><g fill="#27282F" fill-rule="nonzero"><path d="M2.927 17.98c0 3.248 1.225 4.295 4.933 4.295 1.362 0 3.573-.174 5.31-.488l.305 2.584c-1.633.385-4.015.629-5.717.629C2.212 25 0 22.555 0 18.155V7.887c0-4.401 2.212-6.845 7.759-6.845 1.701 0 4.083.244 5.717.628l-.306 2.585c-1.736-.315-3.948-.49-5.309-.49-3.709 0-4.934 1.049-4.934 4.296v9.92ZM27.988 24.65h-2.433l-.172-1.257C23.91 24.441 21.991 25 19.97 25c-3.118 0-4.42-1.886-4.42-4.89 0-3.528 1.748-4.785 5.106-4.785h4.454V12.67c0-2.13-.925-2.864-3.632-2.864-1.61 0-3.701.28-5.003.56l-.309-2.34c1.576-.42 3.7-.734 5.483-.734 4.763 0 6.34 1.886 6.34 5.518v11.84Zm-2.879-6.88H20.86c-1.782 0-2.433.559-2.433 2.27 0 1.747.309 2.445 2.365 2.445 1.439 0 3.05-.56 4.317-1.397V17.77ZM38.354 10.035c-1.497.784-3.221 1.995-4.523 2.993V25h-2.733V7.648h2.375l.162 2.423a19.862 19.862 0 0 1 4.36-2.78l.359 2.744ZM53.902 18.573c0 3.92-1.415 6.427-7.321 6.427-1.592 0-4.174-.213-6.154-.671V.424L43.397 0v8.298c1.203-.636 3.254-1.2 5.447-1.2 3.572 0 5.058 2.083 5.058 5.367v6.108ZM43.398 22.14c1.167.177 2.334.248 3.395.248 3.501 0 4.138-1.413 4.138-3.708v-6.32c0-1.766-.778-2.649-2.794-2.649-1.521 0-3.572.742-4.74 1.307v11.122ZM61.677 25c-4.833 0-6.738-2.83-6.738-6.392v-4.925c0-3.562 1.905-6.391 6.738-6.391 4.832 0 6.738 2.829 6.738 6.391v4.925c0 3.562-1.906 6.392-6.738 6.392Zm0-15.16c-2.586 0-3.88 1.258-3.88 3.738v5.134c0 2.48 1.293 3.738 3.88 3.738 2.586 0 3.88-1.258 3.88-3.738v-5.134c0-2.48-1.293-3.738-3.88-3.738ZM80.495 7.145c-1.92-.344-4.937.512-6.378 1.225l-.273-1.471h-2.32v17.06h2.866V11.066c1.775-.946 4.2-1.725 5.427-1.692.902.024 1.738.746 1.738 1.552v13.031h2.866V10.94c-.458-3.648-3.927-3.832-3.926-3.795Z"/></g><image opacity=".3" x="31" y="28" width="54" height="10" xlink:href="data:image/png;base64,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"/></g></svg>`,
|
|
25
|
+
carbonAds: {
|
|
26
|
+
light: `<svg xmlns="http://www.w3.org/2000/svg" width="32" height="32" viewBox="0 0 32 32"><rect width="32" height="32" rx="6" fill="#1E1E1E"/><path transform="translate(9.25,3.5)" d="M2.927 17.98c0 3.248 1.225 4.295 4.933 4.295 1.362 0 3.573-.174 5.31-.488l.305 2.584c-1.633.385-4.015.629-5.717.629C2.212 25 0 22.555 0 18.155V7.887c0-4.401 2.212-6.845 7.759-6.845 1.701 0 4.083.244 5.717.628l-.306 2.585c-1.736-.315-3.948-.49-5.309-.49-3.709 0-4.934 1.049-4.934 4.296v9.92Z" fill="#fff"/></svg>`,
|
|
27
|
+
dark: `<svg xmlns="http://www.w3.org/2000/svg" width="32" height="32" viewBox="0 0 32 32"><rect width="32" height="32" rx="6" fill="#fff"/><path transform="translate(9.25,3.5)" d="M2.927 17.98c0 3.248 1.225 4.295 4.933 4.295 1.362 0 3.573-.174 5.31-.488l.305 2.584c-1.633.385-4.015.629-5.717.629C2.212 25 0 22.555 0 18.155V7.887c0-4.401 2.212-6.845 7.759-6.845 1.701 0 4.083.244 5.717.628l-.306 2.585c-1.736-.315-3.948-.49-5.309-.49-3.709 0-4.934 1.049-4.934 4.296v9.92Z" fill="#1E1E1E"/></svg>`
|
|
28
|
+
},
|
|
26
29
|
intercom: `<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 8.968 8.972"><path d="M7.853 0h-6.73C.496 0-.002.498-.002 1.117v6.73a1.12 1.12 0 0 0 1.126 1.126h6.73c.618 0 1.117-.498 1.117-1.117v-6.73A1.119 1.119 0 0 0 7.853 0zM5.68 1.645c0-.17.13-.3.3-.3s.3.13.3.3v3.998c0 .17-.13.3-.3.3s-.3-.13-.3-.3zm-1.495-.15c0-.17.13-.3.3-.3s.3.13.3.3v4.336c0 .17-.13.3-.3.3s-.3-.13-.3-.3zm-1.495.15c0-.17.13-.3.3-.3s.3.13.3.3v3.998c0 .17-.13.3-.3.3s-.3-.13-.3-.3zm-1.495.598c0-.17.13-.3.3-.3s.3.13.3.3v2.692c0 .17-.13.3-.3.3s-.3-.13-.3-.3zm6.48 4.566c-.05.04-1.156.967-3.2.967s-3.14-.927-3.2-.967a.29.29 0 0 1-.03-.419.29.29 0 0 1 .419-.03c.02 0 1.007.817 2.8.817 1.814 0 2.79-.817 2.79-.827.13-.1.32-.1.42.03a.3.3 0 0 1-.02.429zm.1-1.874c0 .17-.13.3-.3.3s-.3-.13-.3-.3V2.243c0-.17.13-.3.3-.3s.3.13.3.3z" fill="#1f8ded"/></svg>`,
|
|
27
30
|
hotjar: `<svg xmlns="http://www.w3.org/2000/svg" width="28.45" height="32" viewBox="0 0 256 288"><path fill="#FF3C00" d="M256 100.585c0 53.068-23.654 81.018-49.308 99.403l-4.984 3.443l-5 3.23l-4.979 3.04l-4.925 2.877l-18.623 10.45c-.97.554-1.925 1.106-2.867 1.656l-5.484 3.303c-19.473 12.156-31.858 25.278-32.898 54.98l-.071 4.155H71.752c0-51.355 22.158-79.19 46.838-97.595l4.964-3.56a192.48 192.48 0 0 1 2.496-1.693l5-3.229l4.978-3.04l9.759-5.616l13.787-7.712l5.652-3.305c21.022-12.65 34.51-25.579 35.597-56.632l.071-4.155zM184.252.145c0 51.35-22.153 79.185-46.833 97.591l-4.964 3.56c-.831.574-1.664 1.138-2.497 1.693l-5 3.23l-4.979 3.04l-9.76 5.616l-13.788 7.713l-5.652 3.305c-.914.55-1.814 1.1-2.7 1.653l-5.131 3.351c-16.5 11.328-26.82 24.627-27.766 51.63l-.072 4.155H0c0-54.78 25.206-82.793 51.797-101.152l4.997-3.333l4.994-3.133l4.957-2.956L87.82 64.236l5.652-3.306c21.023-12.65 34.51-25.58 35.597-56.631l.072-4.155z"/></svg>`,
|
|
28
31
|
clarity: `https://store-images.s-microsoft.com/image/apps.29332.512b1d3d-80ec-4aec-83bb-411008d2f7cd.76371b6f-9386-463f-bfb0-b75cffb86a4f.bd99f4b1-b18e-4380-aa79-93768763c90d.png`,
|
|
@@ -40,6 +40,11 @@ declare const __VLS_export: __VLS_WithSlots<import("vue").DefineComponent<{
|
|
|
40
40
|
* A latitude / longitude of where to focus the map.
|
|
41
41
|
*/
|
|
42
42
|
center?: google.maps.LatLng | google.maps.LatLngLiteral | `${string},${string}`;
|
|
43
|
+
/**
|
|
44
|
+
* Zoom level for the map (0-21). Reactive: changing this will update the map.
|
|
45
|
+
* Takes precedence over mapOptions.zoom when provided.
|
|
46
|
+
*/
|
|
47
|
+
zoom?: number;
|
|
43
48
|
/**
|
|
44
49
|
* Should a marker be displayed on the map where the centre is.
|
|
45
50
|
*/
|
|
@@ -104,7 +109,7 @@ declare const __VLS_export: __VLS_WithSlots<import("vue").DefineComponent<{
|
|
|
104
109
|
readonly googleMaps: Ref<typeof google.maps | undefined, typeof google.maps | undefined>;
|
|
105
110
|
readonly map: ShallowRef<google.maps.Map | undefined>;
|
|
106
111
|
readonly createAdvancedMapMarker: (_options?: google.maps.marker.AdvancedMarkerElementOptions | `${string},${string}`) => Promise<google.maps.marker.AdvancedMarkerElement | undefined>;
|
|
107
|
-
readonly
|
|
112
|
+
readonly resolveQueryToLatLng: (query: string) => Promise<google.maps.LatLng | google.maps.LatLngLiteral | undefined>;
|
|
108
113
|
readonly importLibrary: {
|
|
109
114
|
(key: "marker"): Promise<google.maps.MarkerLibrary>;
|
|
110
115
|
(key: "places"): Promise<google.maps.PlacesLibrary>;
|
|
@@ -119,7 +124,7 @@ declare const __VLS_export: __VLS_WithSlots<import("vue").DefineComponent<{
|
|
|
119
124
|
readonly googleMaps: Ref<typeof google.maps | undefined, typeof google.maps | undefined>;
|
|
120
125
|
readonly map: ShallowRef<google.maps.Map | undefined>;
|
|
121
126
|
readonly createAdvancedMapMarker: (_options?: google.maps.marker.AdvancedMarkerElementOptions | `${string},${string}`) => Promise<google.maps.marker.AdvancedMarkerElement | undefined>;
|
|
122
|
-
readonly
|
|
127
|
+
readonly resolveQueryToLatLng: (query: string) => Promise<google.maps.LatLng | google.maps.LatLngLiteral | undefined>;
|
|
123
128
|
readonly importLibrary: {
|
|
124
129
|
(key: "marker"): Promise<google.maps.MarkerLibrary>;
|
|
125
130
|
(key: "places"): Promise<google.maps.PlacesLibrary>;
|
|
@@ -147,6 +152,11 @@ declare const __VLS_export: __VLS_WithSlots<import("vue").DefineComponent<{
|
|
|
147
152
|
* A latitude / longitude of where to focus the map.
|
|
148
153
|
*/
|
|
149
154
|
center?: google.maps.LatLng | google.maps.LatLngLiteral | `${string},${string}`;
|
|
155
|
+
/**
|
|
156
|
+
* Zoom level for the map (0-21). Reactive: changing this will update the map.
|
|
157
|
+
* Takes precedence over mapOptions.zoom when provided.
|
|
158
|
+
*/
|
|
159
|
+
zoom?: number;
|
|
150
160
|
/**
|
|
151
161
|
* Should a marker be displayed on the map where the centre is.
|
|
152
162
|
*/
|
|
@@ -213,7 +223,7 @@ declare const __VLS_export: __VLS_WithSlots<import("vue").DefineComponent<{
|
|
|
213
223
|
readonly googleMaps: Ref<typeof google.maps | undefined, typeof google.maps | undefined>;
|
|
214
224
|
readonly map: ShallowRef<google.maps.Map | undefined>;
|
|
215
225
|
readonly createAdvancedMapMarker: (_options?: google.maps.marker.AdvancedMarkerElementOptions | `${string},${string}`) => Promise<google.maps.marker.AdvancedMarkerElement | undefined>;
|
|
216
|
-
readonly
|
|
226
|
+
readonly resolveQueryToLatLng: (query: string) => Promise<google.maps.LatLng | google.maps.LatLngLiteral | undefined>;
|
|
217
227
|
readonly importLibrary: {
|
|
218
228
|
(key: "marker"): Promise<google.maps.MarkerLibrary>;
|
|
219
229
|
(key: "places"): Promise<google.maps.PlacesLibrary>;
|
|
@@ -18,6 +18,7 @@ const props = defineProps({
|
|
|
18
18
|
aboveTheFold: { type: Boolean, required: false },
|
|
19
19
|
apiKey: { type: String, required: false },
|
|
20
20
|
center: { type: null, required: false },
|
|
21
|
+
zoom: { type: Number, required: false },
|
|
21
22
|
centerMarker: { type: Boolean, required: false, default: true },
|
|
22
23
|
mapOptions: { type: null, required: false },
|
|
23
24
|
region: { type: String, required: false },
|
|
@@ -51,8 +52,12 @@ const currentMapId = computed(() => {
|
|
|
51
52
|
return props.mapIds[currentColorMode.value] || props.mapIds.light || props.mapOptions?.mapId;
|
|
52
53
|
});
|
|
53
54
|
const mapsApi = ref();
|
|
54
|
-
if (import.meta.dev
|
|
55
|
-
|
|
55
|
+
if (import.meta.dev) {
|
|
56
|
+
if (!apiKey)
|
|
57
|
+
throw new Error("GoogleMaps requires an API key. Enable it in your nuxt.config:\n\n scripts: {\n registry: {\n googleMaps: true\n }\n }\n\nThen set NUXT_PUBLIC_SCRIPTS_GOOGLE_MAPS_API_KEY in your .env file.\n\nAlternatively, pass `api-key` directly on the <ScriptGoogleMaps> component (note: this exposes the key client-side).");
|
|
58
|
+
if (!proxyConfig?.enabled && !props.apiKey)
|
|
59
|
+
console.warn("[nuxt-scripts] Google Maps proxy is not enabled. Enable `googleMaps` in your nuxt.config registry to keep your API key server-side. See: https://scripts.nuxt.com/scripts/google-maps#setup");
|
|
60
|
+
}
|
|
56
61
|
const rootEl = ref();
|
|
57
62
|
const mapEl = ref();
|
|
58
63
|
const centerOverride = ref();
|
|
@@ -68,7 +73,7 @@ const { load, status, onLoaded } = useScriptGoogleMaps({
|
|
|
68
73
|
});
|
|
69
74
|
const options = computed(() => {
|
|
70
75
|
const mapId = props.mapOptions?.styles ? void 0 : currentMapId.value || "map";
|
|
71
|
-
return defu({ center: centerOverride.value, mapId }, props.mapOptions, {
|
|
76
|
+
return defu({ center: centerOverride.value, mapId, zoom: props.zoom }, props.mapOptions, {
|
|
72
77
|
center: props.center,
|
|
73
78
|
zoom: 15
|
|
74
79
|
});
|
|
@@ -118,7 +123,7 @@ async function createAdvancedMapMarker(_options) {
|
|
|
118
123
|
return p;
|
|
119
124
|
}
|
|
120
125
|
const queryToLatLngCache = /* @__PURE__ */ new Map();
|
|
121
|
-
async function
|
|
126
|
+
async function resolveQueryToLatLng(query) {
|
|
122
127
|
if (query && typeof query === "object")
|
|
123
128
|
return Promise.resolve(query);
|
|
124
129
|
if (queryToLatLngCache.has(query)) {
|
|
@@ -185,11 +190,21 @@ const googleMaps = {
|
|
|
185
190
|
googleMaps: mapsApi,
|
|
186
191
|
map,
|
|
187
192
|
createAdvancedMapMarker,
|
|
188
|
-
|
|
193
|
+
resolveQueryToLatLng,
|
|
189
194
|
importLibrary
|
|
190
195
|
};
|
|
191
196
|
defineExpose(googleMaps);
|
|
192
|
-
|
|
197
|
+
let activeInfoWindow;
|
|
198
|
+
provide(MAP_INJECTION_KEY, {
|
|
199
|
+
map,
|
|
200
|
+
mapsApi,
|
|
201
|
+
activateInfoWindow(iw) {
|
|
202
|
+
if (activeInfoWindow && activeInfoWindow !== iw) {
|
|
203
|
+
activeInfoWindow.close();
|
|
204
|
+
}
|
|
205
|
+
activeInfoWindow = iw;
|
|
206
|
+
}
|
|
207
|
+
});
|
|
193
208
|
onMounted(() => {
|
|
194
209
|
watch(ready, (v) => {
|
|
195
210
|
if (v) {
|
|
@@ -239,7 +254,7 @@ onMounted(() => {
|
|
|
239
254
|
let center = toRaw(next[0]);
|
|
240
255
|
if (center) {
|
|
241
256
|
if (isLocationQuery(center) && ready.value) {
|
|
242
|
-
center = await
|
|
257
|
+
center = await resolveQueryToLatLng(center);
|
|
243
258
|
}
|
|
244
259
|
map.value.setCenter(center);
|
|
245
260
|
if (props.centerMarker) {
|
|
@@ -270,7 +285,7 @@ onMounted(() => {
|
|
|
270
285
|
};
|
|
271
286
|
map.value = new mapsApi.value.Map(mapEl.value, _options);
|
|
272
287
|
if (center && isLocationQuery(center)) {
|
|
273
|
-
centerOverride.value = await
|
|
288
|
+
centerOverride.value = await resolveQueryToLatLng(center);
|
|
274
289
|
map.value?.setCenter(centerOverride.value);
|
|
275
290
|
}
|
|
276
291
|
ready.value = true;
|
|
@@ -40,6 +40,11 @@ declare const __VLS_export: __VLS_WithSlots<import("vue").DefineComponent<{
|
|
|
40
40
|
* A latitude / longitude of where to focus the map.
|
|
41
41
|
*/
|
|
42
42
|
center?: google.maps.LatLng | google.maps.LatLngLiteral | `${string},${string}`;
|
|
43
|
+
/**
|
|
44
|
+
* Zoom level for the map (0-21). Reactive: changing this will update the map.
|
|
45
|
+
* Takes precedence over mapOptions.zoom when provided.
|
|
46
|
+
*/
|
|
47
|
+
zoom?: number;
|
|
43
48
|
/**
|
|
44
49
|
* Should a marker be displayed on the map where the centre is.
|
|
45
50
|
*/
|
|
@@ -104,7 +109,7 @@ declare const __VLS_export: __VLS_WithSlots<import("vue").DefineComponent<{
|
|
|
104
109
|
readonly googleMaps: Ref<typeof google.maps | undefined, typeof google.maps | undefined>;
|
|
105
110
|
readonly map: ShallowRef<google.maps.Map | undefined>;
|
|
106
111
|
readonly createAdvancedMapMarker: (_options?: google.maps.marker.AdvancedMarkerElementOptions | `${string},${string}`) => Promise<google.maps.marker.AdvancedMarkerElement | undefined>;
|
|
107
|
-
readonly
|
|
112
|
+
readonly resolveQueryToLatLng: (query: string) => Promise<google.maps.LatLng | google.maps.LatLngLiteral | undefined>;
|
|
108
113
|
readonly importLibrary: {
|
|
109
114
|
(key: "marker"): Promise<google.maps.MarkerLibrary>;
|
|
110
115
|
(key: "places"): Promise<google.maps.PlacesLibrary>;
|
|
@@ -119,7 +124,7 @@ declare const __VLS_export: __VLS_WithSlots<import("vue").DefineComponent<{
|
|
|
119
124
|
readonly googleMaps: Ref<typeof google.maps | undefined, typeof google.maps | undefined>;
|
|
120
125
|
readonly map: ShallowRef<google.maps.Map | undefined>;
|
|
121
126
|
readonly createAdvancedMapMarker: (_options?: google.maps.marker.AdvancedMarkerElementOptions | `${string},${string}`) => Promise<google.maps.marker.AdvancedMarkerElement | undefined>;
|
|
122
|
-
readonly
|
|
127
|
+
readonly resolveQueryToLatLng: (query: string) => Promise<google.maps.LatLng | google.maps.LatLngLiteral | undefined>;
|
|
123
128
|
readonly importLibrary: {
|
|
124
129
|
(key: "marker"): Promise<google.maps.MarkerLibrary>;
|
|
125
130
|
(key: "places"): Promise<google.maps.PlacesLibrary>;
|
|
@@ -147,6 +152,11 @@ declare const __VLS_export: __VLS_WithSlots<import("vue").DefineComponent<{
|
|
|
147
152
|
* A latitude / longitude of where to focus the map.
|
|
148
153
|
*/
|
|
149
154
|
center?: google.maps.LatLng | google.maps.LatLngLiteral | `${string},${string}`;
|
|
155
|
+
/**
|
|
156
|
+
* Zoom level for the map (0-21). Reactive: changing this will update the map.
|
|
157
|
+
* Takes precedence over mapOptions.zoom when provided.
|
|
158
|
+
*/
|
|
159
|
+
zoom?: number;
|
|
150
160
|
/**
|
|
151
161
|
* Should a marker be displayed on the map where the centre is.
|
|
152
162
|
*/
|
|
@@ -213,7 +223,7 @@ declare const __VLS_export: __VLS_WithSlots<import("vue").DefineComponent<{
|
|
|
213
223
|
readonly googleMaps: Ref<typeof google.maps | undefined, typeof google.maps | undefined>;
|
|
214
224
|
readonly map: ShallowRef<google.maps.Map | undefined>;
|
|
215
225
|
readonly createAdvancedMapMarker: (_options?: google.maps.marker.AdvancedMarkerElementOptions | `${string},${string}`) => Promise<google.maps.marker.AdvancedMarkerElement | undefined>;
|
|
216
|
-
readonly
|
|
226
|
+
readonly resolveQueryToLatLng: (query: string) => Promise<google.maps.LatLng | google.maps.LatLngLiteral | undefined>;
|
|
217
227
|
readonly importLibrary: {
|
|
218
228
|
(key: "marker"): Promise<google.maps.MarkerLibrary>;
|
|
219
229
|
(key: "places"): Promise<google.maps.PlacesLibrary>;
|
|
@@ -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,5 +1,6 @@
|
|
|
1
1
|
<script>
|
|
2
|
-
import { inject, provide, watch } from "vue";
|
|
2
|
+
import { inject, provide, useSlots, useTemplateRef, watch } from "vue";
|
|
3
|
+
import { bindGoogleMapsEvents } from "./bindGoogleMapsEvents";
|
|
3
4
|
import { ADVANCED_MARKER_ELEMENT_INJECTION_KEY } from "./injectionKeys";
|
|
4
5
|
import { MARKER_CLUSTERER_INJECTION_KEY } from "./ScriptGoogleMapsMarkerClusterer.vue";
|
|
5
6
|
import { useGoogleMapsResource } from "./useGoogleMapsResource";
|
|
@@ -8,49 +9,45 @@ export { ADVANCED_MARKER_ELEMENT_INJECTION_KEY } from "./injectionKeys";
|
|
|
8
9
|
|
|
9
10
|
<script setup>
|
|
10
11
|
const props = defineProps({
|
|
12
|
+
position: { type: null, required: false },
|
|
11
13
|
options: { type: Object, required: false }
|
|
12
14
|
});
|
|
13
|
-
const emit = defineEmits([]);
|
|
14
|
-
const
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
"cursor_changed",
|
|
18
|
-
"draggable_changed",
|
|
19
|
-
"flat_changed",
|
|
20
|
-
"icon_changed",
|
|
21
|
-
"position_changed",
|
|
22
|
-
"shape_changed",
|
|
23
|
-
"title_changed",
|
|
24
|
-
"visible_changed",
|
|
25
|
-
"zindex_changed"
|
|
26
|
-
];
|
|
27
|
-
const eventsWithMapMouseEventPayload = [
|
|
28
|
-
"click",
|
|
29
|
-
"contextmenu",
|
|
30
|
-
"dblclick",
|
|
31
|
-
"drag",
|
|
32
|
-
"dragend",
|
|
33
|
-
"dragstart",
|
|
34
|
-
"mousedown",
|
|
35
|
-
"mouseout",
|
|
36
|
-
"mouseover",
|
|
37
|
-
"mouseup"
|
|
38
|
-
];
|
|
15
|
+
const emit = defineEmits(["click", "drag", "dragend", "dragstart"]);
|
|
16
|
+
const dragEvents = ["drag", "dragend", "dragstart"];
|
|
17
|
+
const slots = useSlots();
|
|
18
|
+
const markerContent = useTemplateRef("marker-content");
|
|
39
19
|
const markerClustererContext = inject(MARKER_CLUSTERER_INJECTION_KEY, void 0);
|
|
20
|
+
let gmpClickHandler;
|
|
40
21
|
const advancedMarkerElement = useGoogleMapsResource({
|
|
22
|
+
ready: () => !slots.content || !!markerContent.value,
|
|
41
23
|
async create({ mapsApi, map }) {
|
|
42
24
|
await mapsApi.importLibrary("marker");
|
|
43
|
-
const marker = new mapsApi.marker.AdvancedMarkerElement(
|
|
44
|
-
|
|
25
|
+
const marker = new mapsApi.marker.AdvancedMarkerElement({
|
|
26
|
+
...props.options,
|
|
27
|
+
gmpClickable: true,
|
|
28
|
+
...props.position ? { position: props.position } : {}
|
|
29
|
+
});
|
|
30
|
+
if (markerContent.value) {
|
|
31
|
+
marker.content = markerContent.value;
|
|
32
|
+
}
|
|
45
33
|
if (markerClustererContext?.markerClusterer.value) {
|
|
46
34
|
markerClustererContext.markerClusterer.value.addMarker(marker, true);
|
|
47
35
|
markerClustererContext.requestRerender();
|
|
48
36
|
} else {
|
|
49
37
|
marker.map = map;
|
|
50
38
|
}
|
|
39
|
+
gmpClickHandler = (e) => emit("click", e);
|
|
40
|
+
marker.addEventListener("gmp-click", gmpClickHandler);
|
|
41
|
+
bindGoogleMapsEvents(marker, emit, {
|
|
42
|
+
withPayload: dragEvents
|
|
43
|
+
});
|
|
51
44
|
return marker;
|
|
52
45
|
},
|
|
53
46
|
cleanup(marker, { mapsApi }) {
|
|
47
|
+
if (gmpClickHandler) {
|
|
48
|
+
marker.removeEventListener("gmp-click", gmpClickHandler);
|
|
49
|
+
gmpClickHandler = void 0;
|
|
50
|
+
}
|
|
54
51
|
mapsApi.event.clearInstanceListeners(marker);
|
|
55
52
|
if (markerClustererContext?.markerClusterer.value) {
|
|
56
53
|
markerClustererContext.markerClusterer.value.removeMarker(marker, true);
|
|
@@ -60,22 +57,27 @@ const advancedMarkerElement = useGoogleMapsResource({
|
|
|
60
57
|
}
|
|
61
58
|
}
|
|
62
59
|
});
|
|
63
|
-
watch(
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
60
|
+
watch(
|
|
61
|
+
() => [props.position, props.options],
|
|
62
|
+
() => {
|
|
63
|
+
if (!advancedMarkerElement.value)
|
|
64
|
+
return;
|
|
65
|
+
if (props.options)
|
|
66
|
+
Object.assign(advancedMarkerElement.value, props.options);
|
|
67
|
+
advancedMarkerElement.value.position = props.position ?? props.options?.position;
|
|
68
|
+
},
|
|
69
|
+
{ deep: true }
|
|
70
|
+
);
|
|
68
71
|
provide(ADVANCED_MARKER_ELEMENT_INJECTION_KEY, { advancedMarkerElement });
|
|
69
|
-
function setupEventListeners(marker) {
|
|
70
|
-
eventsWithoutPayload.forEach((event) => {
|
|
71
|
-
marker.addListener(event, () => emit(event));
|
|
72
|
-
});
|
|
73
|
-
eventsWithMapMouseEventPayload.forEach((event) => {
|
|
74
|
-
marker.addListener(event, (payload) => emit(event, payload));
|
|
75
|
-
});
|
|
76
|
-
}
|
|
77
72
|
</script>
|
|
78
73
|
|
|
79
74
|
<template>
|
|
75
|
+
<!-- Hidden container for #content slot — becomes the marker visual -->
|
|
76
|
+
<div v-if="$slots.content" style="display: none;">
|
|
77
|
+
<div ref="marker-content">
|
|
78
|
+
<slot name="content" />
|
|
79
|
+
</div>
|
|
80
|
+
</div>
|
|
81
|
+
<!-- Default slot for child components (InfoWindow, OverlayView, etc.) -->
|
|
80
82
|
<slot v-if="advancedMarkerElement" />
|
|
81
83
|
</template>
|