@nuxt/scripts 1.0.5 → 1.1.0
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/devtools-client/200.html +1 -1
- package/dist/devtools-client/404.html +1 -1
- package/dist/devtools-client/_nuxt/{xOsbuyp3.js → 1wb58MKb.js} +1 -1
- package/dist/devtools-client/_nuxt/{CApasjik.js → BbLmrp_o.js} +1 -1
- package/dist/devtools-client/_nuxt/{zmRZ2I-R.js → Cx46cS8a.js} +1 -1
- package/dist/devtools-client/_nuxt/{CTPc9yIZ.js → D-M51CV3.js} +1 -1
- package/dist/devtools-client/_nuxt/D4HTNcLU.js +188 -0
- package/dist/devtools-client/_nuxt/{Dj5q49Yv.js → DU3BlAm5.js} +1 -1
- package/dist/devtools-client/_nuxt/{CbCcQNvm.js → DiaY4J4_.js} +1 -1
- package/dist/devtools-client/_nuxt/builds/latest.json +1 -1
- package/dist/devtools-client/_nuxt/builds/meta/0b4ab733-07a6-40b2-b25e-aca95fa55188.json +1 -0
- package/dist/devtools-client/_nuxt/error-404.D2T48gBS.css +1 -0
- package/dist/devtools-client/_nuxt/error-500.sMTZJbsP.css +1 -0
- package/dist/devtools-client/docs/index.html +1 -1
- package/dist/devtools-client/first-party/index.html +1 -1
- package/dist/devtools-client/index.html +1 -1
- package/dist/devtools-client/registry/index.html +1 -1
- package/dist/module.d.mts +7 -1
- package/dist/module.d.ts +7 -1
- package/dist/module.json +1 -1
- package/dist/module.mjs +266 -34
- package/dist/registry.mjs +76 -5
- package/dist/runtime/components/GoogleMaps/ScriptGoogleMaps.vue +50 -7
- package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsGeoJson.d.vue.ts +2 -2
- package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsGeoJson.vue.d.ts +2 -2
- package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsPolygon.d.vue.ts +2 -2
- package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsPolygon.vue.d.ts +2 -2
- package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsPolyline.d.vue.ts +2 -2
- package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsPolyline.vue.d.ts +2 -2
- package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsRectangle.d.vue.ts +2 -2
- package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsRectangle.vue.d.ts +2 -2
- package/dist/runtime/components/ScriptCalendlyInlineWidget.d.vue.ts +59 -0
- package/dist/runtime/components/ScriptCalendlyInlineWidget.vue +79 -0
- package/dist/runtime/components/ScriptCalendlyInlineWidget.vue.d.ts +59 -0
- package/dist/runtime/components/ScriptPayPalButtons.d.vue.ts +1 -1
- package/dist/runtime/components/ScriptPayPalButtons.vue.d.ts +1 -1
- package/dist/runtime/components/ScriptPayPalMessages.d.vue.ts +1 -1
- package/dist/runtime/components/ScriptPayPalMessages.vue.d.ts +1 -1
- package/dist/runtime/composables/useScript.js +48 -0
- package/dist/runtime/debug.d.ts +1 -0
- package/dist/runtime/debug.js +1 -0
- package/dist/runtime/devtools-standalone-bridge.client.js +3 -1
- package/dist/runtime/logger.js +4 -0
- package/dist/runtime/registry/_gcm-consent.d.ts +14 -0
- package/dist/runtime/registry/_gcm-consent.js +24 -0
- package/dist/runtime/registry/ahrefs-analytics.d.ts +39 -0
- package/dist/runtime/registry/ahrefs-analytics.js +18 -0
- package/dist/runtime/registry/calendly.d.ts +76 -0
- package/dist/runtime/registry/calendly.js +63 -0
- package/dist/runtime/registry/google-analytics.d.ts +5 -6
- package/dist/runtime/registry/google-analytics.js +9 -12
- package/dist/runtime/registry/google-tag-manager.d.ts +5 -6
- package/dist/runtime/registry/google-tag-manager.js +18 -20
- package/dist/runtime/registry/linkedin-insight.d.ts +35 -0
- package/dist/runtime/registry/linkedin-insight.js +49 -0
- package/dist/runtime/registry/schemas.d.ts +165 -6
- package/dist/runtime/registry/schemas.js +125 -7
- package/dist/runtime/registry/tiktok-pixel.d.ts +28 -2
- package/dist/runtime/registry/tiktok-pixel.js +18 -1
- package/dist/runtime/registry/usercentrics.d.ts +85 -0
- package/dist/runtime/registry/usercentrics.js +54 -0
- package/dist/runtime/server/proxy-handler.js +13 -4
- package/dist/runtime/types.d.ts +40 -1
- package/dist/runtime/utils.d.ts +8 -2
- package/dist/runtime/utils.js +5 -1
- package/dist/stats.mjs +19 -0
- package/dist/types-source.mjs +280 -15
- package/dist/types.d.mts +1 -1
- package/package.json +11 -8
- package/dist/devtools-client/_nuxt/BNvWpYaC.js +0 -188
- package/dist/devtools-client/_nuxt/builds/meta/caa75c14-abb0-4d9e-8f1a-440e91f4b1eb.json +0 -1
- package/dist/devtools-client/_nuxt/error-404.upckUYZO.css +0 -1
- package/dist/devtools-client/_nuxt/error-500.DS4SeCFl.css +0 -1
package/dist/registry.mjs
CHANGED
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import { joinURL, withQuery, withBase } from 'ufo';
|
|
2
|
-
import { CloudflareWebAnalyticsOptions, VercelAnalyticsOptions, PostHogOptions, FathomAnalyticsOptions, MatomoAnalyticsOptions, RybbitAnalyticsOptions, DatabuddyAnalyticsOptions, SegmentOptions, MixpanelAnalyticsOptions, BingUetOptions, MetaPixelOptions, XPixelOptions, TikTokPixelOptions, SnapTrPixelOptions, RedditPixelOptions, GoogleAdsenseOptions, IntercomOptions, HotjarOptions, ClarityOptions, StripeOptions, GoogleMapsOptions, BlueskyEmbedOptions, InstagramEmbedOptions, XEmbedOptions, CrispOptions, NpmOptions, GoogleRecaptchaOptions, GoogleSignInOptions, GoogleTagManagerOptions, GoogleAnalyticsOptions, UmamiAnalyticsOptions, GravatarOptions } from '../dist/runtime/registry/schemas.js';
|
|
2
|
+
import { AhrefsAnalyticsOptions, CloudflareWebAnalyticsOptions, VercelAnalyticsOptions, PostHogOptions, FathomAnalyticsOptions, MatomoAnalyticsOptions, RybbitAnalyticsOptions, DatabuddyAnalyticsOptions, SegmentOptions, MixpanelAnalyticsOptions, BingUetOptions, MetaPixelOptions, XPixelOptions, TikTokPixelOptions, SnapTrPixelOptions, RedditPixelOptions, LinkedInInsightOptions, GoogleAdsenseOptions, IntercomOptions, HotjarOptions, ClarityOptions, StripeOptions, GoogleMapsOptions, BlueskyEmbedOptions, InstagramEmbedOptions, XEmbedOptions, CrispOptions, NpmOptions, CalendlyOptions, GoogleRecaptchaOptions, GoogleSignInOptions, GoogleTagManagerOptions, GoogleAnalyticsOptions, UmamiAnalyticsOptions, UsercentricsOptions, GravatarOptions } from '../dist/runtime/registry/schemas.js';
|
|
3
3
|
|
|
4
4
|
const LOGOS = {
|
|
5
|
+
ahrefsAnalytics: `<svg xmlns="http://www.w3.org/2000/svg" width="32" height="32" viewBox="0 0 32 32"><path fill="#FF6A00" d="M9.6 4h4.8a4.8 4.8 0 0 1 4.8 4.8v4.8H9.6A4.8 4.8 0 0 1 4.8 8.8 4.8 4.8 0 0 1 9.6 4Zm14.4 24h-4.8a4.8 4.8 0 0 1-4.8-4.8v-9.6h4.8A4.8 4.8 0 0 1 24 18.4Z"/></svg>`,
|
|
5
6
|
plausibleAnalytics: `<svg height="32" id="Layer_2" viewBox="0 0 46 60" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"><defs><linearGradient id="New_Gradient_Swatch_1" x1="14.841" y1="22.544" x2="27.473" y2="44.649" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#909cf7"/><stop offset="1" stop-color="#4b38d8"/></linearGradient><linearGradient id="New_Gradient_Swatch_1-2" x1="7.984" y1="-1.358" x2="21.001" y2="21.422" xlink:href="#New_Gradient_Swatch_1"/><style>.cls-3{stroke-width:0;fill:#1f2961}</style></defs><g id="Plausible_-_Branding"><g id="Gradient_Logo_-_Purple_Gradient_on_White"><g id="Symbol_-_Purple_Gradient"><path d="M45.246 22.603C44.155 33.059 35.013 40.83 24.5 40.83h-4.047v9.57a9.6 9.6 0 0 1-9.6 9.6H3.36A3.36 3.36 0 0 1 0 56.64V36.938l5.038-7.07a3.362 3.362 0 0 1 4.037-1.149l2.866 1.2a3.353 3.353 0 0 0 4.025-1.145l6.717-9.417a3.34 3.34 0 0 1 4.014-1.14l5.52 2.32a3.347 3.347 0 0 0 4.022-1.142l6.46-9.063c2.025 3.56 3.014 7.789 2.547 12.27Z" style="stroke-width:0;fill:url(#New_Gradient_Swatch_1)"/><path d="M3.292 28.873c.823-1.155 2.021-2.044 3.414-2.312a5.41 5.41 0 0 1 3.147.316l2.865 1.2a1.357 1.357 0 0 0 1.62-.464l6.594-9.245c.823-1.154 2.02-2.041 3.412-2.309a5.368 5.368 0 0 1 3.128.314l5.52 2.32a1.35 1.35 0 0 0 1.619-.46l6.919-9.707C37.827 3.364 31.78 0 24.945 0H3.36A3.36 3.36 0 0 0 0 3.36v30.132l3.292-4.62Z" style="fill:url(#New_Gradient_Swatch_1-2);stroke-width:0"/></g></g></g></svg>`,
|
|
6
7
|
cloudflareWebAnalytics: `<svg xmlns="http://www.w3.org/2000/svg" width="70.02" height="32" viewBox="0 0 256 117"><path fill="#FBAD41" d="M205.52 50.813c-.858 0-1.705.03-2.551.058c-.137.007-.272.04-.398.094a1.424 1.424 0 0 0-.92.994l-3.628 12.672c-1.565 5.449-.983 10.48 1.646 14.174c2.41 3.416 6.42 5.421 11.289 5.655l19.679 1.194c.585.03 1.092.312 1.4.776a1.92 1.92 0 0 1 .2 1.692a2.496 2.496 0 0 1-2.134 1.662l-20.448 1.193c-11.11.515-23.062 9.58-27.255 20.633l-1.474 3.9a1.092 1.092 0 0 0 .967 1.49h70.425a1.872 1.872 0 0 0 1.81-1.365A51.172 51.172 0 0 0 256 101.828c0-28.16-22.582-50.984-50.449-50.984"/><path fill="#F6821F" d="m174.782 115.362l1.303-4.583c1.568-5.449.987-10.48-1.639-14.173c-2.418-3.417-6.424-5.422-11.296-5.656l-92.312-1.193a1.822 1.822 0 0 1-1.459-.776a1.919 1.919 0 0 1-.203-1.693a2.496 2.496 0 0 1 2.154-1.662l93.173-1.193c11.063-.511 23.015-9.58 27.208-20.633l5.313-14.04c.214-.596.27-1.238.156-1.86C191.126 20.51 166.91 0 137.96 0C111.269 0 88.626 17.403 80.5 41.596a26.996 26.996 0 0 0-19.156-5.359C48.549 37.524 38.25 47.946 36.979 60.88a27.905 27.905 0 0 0 .702 9.642C16.773 71.145 0 88.454 0 109.726c0 1.923.137 3.818.413 5.667c.115.897.879 1.57 1.783 1.568h170.48a2.223 2.223 0 0 0 2.106-1.63"/></svg>`,
|
|
7
8
|
vercelAnalytics: `<svg xmlns="http://www.w3.org/2000/svg" width="32" height="32" viewBox="0 0 512 512"><path d="M256 48L496 464H16z" fill="currentColor"/></svg>`,
|
|
@@ -22,6 +23,10 @@ const LOGOS = {
|
|
|
22
23
|
},
|
|
23
24
|
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>`,
|
|
24
25
|
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>`,
|
|
26
|
+
linkedinInsight: {
|
|
27
|
+
light: `<svg xmlns="http://www.w3.org/2000/svg" width="32" height="32" viewBox="0 0 34 34"><path fill="#0a66c2" d="M34 2.5v29a2.5 2.5 0 0 1-2.5 2.5h-29A2.5 2.5 0 0 1 0 31.5v-29A2.5 2.5 0 0 1 2.5 0h29A2.5 2.5 0 0 1 34 2.5M10 13H5v16h5zm.45-5.5a2.88 2.88 0 0 0-2.86-2.9H7.5a2.9 2.9 0 0 0 0 5.8 2.88 2.88 0 0 0 2.95-2.81zM29 19.28c0-4.81-3.06-6.68-6.1-6.68a5.7 5.7 0 0 0-5.06 2.58h-.14V13H13v16h5v-8.51a3.32 3.32 0 0 1 3-3.58h.19c1.59 0 2.77 1 2.77 3.52V29h5z"/></svg>`,
|
|
28
|
+
dark: `<svg xmlns="http://www.w3.org/2000/svg" width="32" height="32" viewBox="0 0 34 34"><g transform="scale(.7083)" fill="none" fill-rule="evenodd"><rect fill="#fff" x="1" y="1" width="46" height="46" rx="4"/><path fill="#0077b5" d="M0 4.01A4.01 4.01 0 014.01 0h39.98A4.01 4.01 0 0148 4.01v39.98A4.01 4.01 0 0143.99 48H4.01A4.01 4.01 0 010 43.99V4.01zM19 18.3h6.5v3.266C26.437 19.688 28.838 18 32.445 18 39.359 18 41 21.738 41 28.597V41.3h-7V30.159c0-3.906-.937-6.109-3.32-6.109-3.305 0-4.68 2.375-4.68 6.109V41.3h-7v-23zM7 41h7V18H7v23zm8-30.5a4.5 4.5 0 11-9 0 4.5 4.5 0 019 0z"/></g></svg>`
|
|
29
|
+
},
|
|
25
30
|
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>`,
|
|
26
31
|
carbonAds: {
|
|
27
32
|
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>`,
|
|
@@ -47,12 +52,14 @@ const LOGOS = {
|
|
|
47
52
|
dark: `<svg height="30" width="35" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"><defs><filter id="a" height="138.7%" width="131.4%" x="-15.7%" y="-15.1%"><feMorphology in="SourceAlpha" operator="dilate" radius="1" result="shadowSpreadOuter1"/><feOffset dy="1" in="shadowSpreadOuter1" result="shadowOffsetOuter1"/><feGaussianBlur in="shadowOffsetOuter1" result="shadowBlurOuter1" stdDeviation="1"/><feComposite in="shadowBlurOuter1" in2="SourceAlpha" operator="out" result="shadowBlurOuter1"/><feColorMatrix in="shadowBlurOuter1" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.07 0"/></filter><path id="b" d="M14.23 20.46l-9.65 1.1L3 5.12 30.07 2l1.58 16.46-9.37 1.07-3.5 5.72-4.55-4.8z"/></defs><g fill="none" fill-rule="evenodd"><use fill="#000" filter="url(#a)" xlink:href="#b"/><use fill="#fff" stroke="#fff" stroke-width="2" xlink:href="#b"/></g></svg>`
|
|
48
53
|
},
|
|
49
54
|
npm: `<svg xmlns="http://www.w3.org/2000/svg" width="32" height="32" viewBox="0 0 256 256"><path fill="#C12127" d="M0 256V0h256v256z"/><path fill="#FFF" d="M48 48h160v160h-32V80h-48v128H48z"/></svg>`,
|
|
55
|
+
calendly: `<svg xmlns="http://www.w3.org/2000/svg" width="32" height="32" viewBox="0 0 256 256"><path fill="#006BFF" d="M128 0C57.308 0 0 57.308 0 128s57.308 128 128 128s128-57.308 128-128S198.692 0 128 0m65.832 165.957l-15.226 13.157c-13.768 11.892-31.358 18.435-49.55 18.435h-2.36c-26.36 0-50.51-14.518-62.99-37.85l-7.392-13.823a71.32 71.32 0 0 1 0-67.752l7.391-13.822c12.48-23.333 36.63-37.851 62.99-37.851h2.361c18.193 0 35.782 6.543 49.55 18.435l15.226 13.157a8.93 8.93 0 0 1 .904 12.598a8.93 8.93 0 0 1-12.598.904l-15.225-13.157c-10.527-9.094-23.97-14.094-37.857-14.094h-2.361c-19.823 0-37.985 10.918-47.367 28.466l-7.39 13.822a53.49 53.49 0 0 0 0 50.83l7.39 13.822c9.382 17.548 27.544 28.466 47.367 28.466h2.361c13.886 0 27.33-5 37.857-14.094l15.225-13.157a8.93 8.93 0 0 1 12.598.904a8.93 8.93 0 0 1-.904 12.598"/></svg>`,
|
|
50
56
|
googleRecaptcha: `<svg xmlns="http://www.w3.org/2000/svg" width="32" height="32" viewBox="0 0 256 262"><path fill="#4285F4" d="M255.878 133.451c0-10.734-.871-18.567-2.756-26.69H130.55v48.448h71.947c-1.45 12.04-9.283 30.172-26.69 42.356l-.244 1.622l38.755 30.023l2.685.268c24.659-22.774 38.875-56.282 38.875-96.027"/><path fill="#34A853" d="M130.55 261.1c35.248 0 64.839-11.605 86.453-31.622l-41.196-31.913c-11.024 7.688-25.82 13.055-45.257 13.055c-34.523 0-63.824-22.773-74.269-54.25l-1.531.13l-40.298 31.187l-.527 1.465C35.393 231.798 79.49 261.1 130.55 261.1"/><path fill="#FBBC05" d="M56.281 156.37c-2.756-8.123-4.351-16.827-4.351-25.82c0-8.994 1.595-17.697 4.206-25.82l-.073-1.73L15.26 71.312l-1.335.635C5.077 89.644 0 109.517 0 130.55s5.077 40.905 13.925 58.602z"/><path fill="#EB4335" d="M130.55 50.479c24.514 0 41.05 10.589 50.479 19.438l36.844-35.974C195.245 12.91 165.798 0 130.55 0C79.49 0 35.393 29.301 13.925 71.947l42.211 32.783c10.59-31.477 39.891-54.251 74.414-54.251"/></svg>`,
|
|
51
57
|
googleSignIn: `<svg xmlns="http://www.w3.org/2000/svg" width="32" height="32" viewBox="0 0 256 262"><path fill="#4285F4" d="M255.878 133.451c0-10.734-.871-18.567-2.756-26.69H130.55v48.448h71.947c-1.45 12.04-9.283 30.172-26.69 42.356l-.244 1.622l38.755 30.023l2.685.268c24.659-22.774 38.875-56.282 38.875-96.027"/><path fill="#34A853" d="M130.55 261.1c35.248 0 64.839-11.605 86.453-31.622l-41.196-31.913c-11.024 7.688-25.82 13.055-45.257 13.055c-34.523 0-63.824-22.773-74.269-54.25l-1.531.13l-40.298 31.187l-.527 1.465C35.393 231.798 79.49 261.1 130.55 261.1"/><path fill="#FBBC05" d="M56.281 156.37c-2.756-8.123-4.351-16.827-4.351-25.82c0-8.994 1.595-17.697 4.206-25.82l-.073-1.73L15.26 71.312l-1.335.635C5.077 89.644 0 109.517 0 130.55s5.077 40.905 13.925 58.602z"/><path fill="#EB4335" d="M130.55 50.479c24.514 0 41.05 10.589 50.479 19.438l36.844-35.974C195.245 12.91 165.798 0 130.55 0C79.49 0 35.393 29.301 13.925 71.947l42.211 32.783c10.59-31.477 39.891-54.251 74.414-54.251"/></svg>`,
|
|
52
58
|
googleTagManager: `<svg xmlns="http://www.w3.org/2000/svg" width="32" height="32" viewBox="0 0 256 256"><path fill="#8AB4F8" d="m150.262 245.516l-44.437-43.331l95.433-97.454l46.007 45.091z"/><path fill="#4285F4" d="M150.45 53.938L106.176 8.731L9.36 104.629c-12.48 12.48-12.48 32.713 0 45.207l95.36 95.986l45.09-42.182l-72.654-76.407z"/><path fill="#8AB4F8" d="m246.625 105.37l-96-96c-12.494-12.494-32.756-12.494-45.25 0c-12.495 12.495-12.495 32.757 0 45.252l96 96c12.494 12.494 32.756 12.494 45.25 0c12.495-12.495 12.495-32.757 0-45.251"/><circle cx="127.265" cy="224.731" r="31.273" fill="#246FDB"/></svg>`,
|
|
53
59
|
googleAnalytics: `<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" x="0px" y="0px" width="192px" height="192px" viewBox="0 0 192 192" enable-background="new 0 0 192 192" xml:space="preserve"><rect x="0" y="0" fill="none" width="192" height="192"/><g><g><path fill="#F9AB00" d="M130,29v132c0,14.77,10.19,23,21,23c10,0,21-7,21-23V30c0-13.54-10-22-21-22S130,17.33,130,29z"/></g><g><path fill="#E37400" d="M75,96v65c0,14.77,10.19,23,21,23c10,0,21-7,21-23V97c0-13.54-10-22-21-22S75,84.33,75,96z"/></g><g><circle fill="#E37400" cx="41" cy="163" r="21"/></g></g></svg>`,
|
|
54
60
|
umamiAnalytics: `<svg xmlns="http://www.w3.org/2000/svg" width="96" height="96" viewBox="0 0 24 24"><path fill="currentColor" d="M2.203 8.611H.857a.845.845 0 0 0-.841.841v.858a13 13 0 0 0-.016.6c0 6.627 5.373 12 12 12c6.527 0 11.837-5.212 11.996-11.701c0-.025.004-.05.004-.075V9.452a.845.845 0 0 0-.841-.841h-1.346c-1.159-4.329-5.112-7.521-9.805-7.521S3.363 4.282 2.203 8.611m18.444 0H3.37c1.127-3.702 4.57-6.399 8.638-6.399c4.069 0 7.512 2.697 8.639 6.399"/></svg>`,
|
|
55
61
|
gravatar: `<svg xmlns="http://www.w3.org/2000/svg" width="32" height="32" viewBox="0 0 27 27"><path fill="#1d4fc4" d="M10.8 2.699v9.45a2.699 2.699 0 005.398 0V5.862a8.101 8.101 0 11-8.423 1.913 2.702 2.702 0 00-3.821-3.821A13.5 13.5 0 1013.499 0 2.699 2.699 0 0010.8 2.699z"/></svg>`,
|
|
62
|
+
usercentrics: `<svg xmlns="http://www.w3.org/2000/svg" width="32" height="32" viewBox="0 0 32 32"><circle cx="16" cy="16" r="16" fill="#1976d2"/><path fill="#fff" d="M16 7.5a4.25 4.25 0 1 0 0 8.5a4.25 4.25 0 0 0 0-8.5m-7 17a7 7 0 0 1 14 0v.5H9z"/></svg>`,
|
|
56
63
|
bingUet: `<svg xmlns="http://www.w3.org/2000/svg" width="32" height="32" viewBox="0 0 256 256"><path fill="#F25022" d="M0 0h121.5v121.5H0z"/><path fill="#7FBA00" d="M134.5 0H256v121.5H134.5z"/><path fill="#00A4EF" d="M0 134.5h121.5V256H0z"/><path fill="#FFB900" d="M134.5 134.5H256V256H134.5z"/></svg>`,
|
|
57
64
|
snapchatPixel: `<svg width="50" height="50" viewBox="147.353 39.286 514.631 514.631" version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve"><path style="fill:#FFFC00;" d="M147.553,423.021v0.023c0.308,11.424,0.403,22.914,2.33,34.268 c2.042,12.012,4.961,23.725,10.53,34.627c7.529,14.756,17.869,27.217,30.921,37.396c9.371,7.309,19.608,13.111,30.94,16.771 c16.524,5.33,33.571,7.373,50.867,7.473c10.791,0.068,21.575,0.338,32.37,0.293c78.395-0.33,156.792,0.566,235.189-0.484 c10.403-0.141,20.636-1.41,30.846-3.277c19.569-3.582,36.864-11.932,51.661-25.133c17.245-15.381,28.88-34.205,34.132-56.924 c3.437-14.85,4.297-29.916,4.444-45.035v-3.016c0-1.17-0.445-256.892-0.486-260.272c-0.115-9.285-0.799-18.5-2.54-27.636 c-2.117-11.133-5.108-21.981-10.439-32.053c-5.629-10.641-12.68-20.209-21.401-28.57c-13.359-12.81-28.775-21.869-46.722-26.661 c-16.21-4.327-32.747-5.285-49.405-5.27c-0.027-0.004-0.09-0.173-0.094-0.255H278.56c-0.005,0.086-0.008,0.172-0.014,0.255 c-9.454,0.173-18.922,0.102-28.328,1.268c-10.304,1.281-20.509,3.21-30.262,6.812c-15.362,5.682-28.709,14.532-40.11,26.347 c-12.917,13.386-22.022,28.867-26.853,46.894c-4.31,16.084-5.248,32.488-5.271,49.008"/><path style="fill:#FFFFFF;" d="M407.001,473.488c-1.068,0-2.087-0.039-2.862-0.076c-0.615,0.053-1.25,0.076-1.886,0.076 c-22.437,0-37.439-10.607-50.678-19.973c-9.489-6.703-18.438-13.031-28.922-14.775c-5.149-0.854-10.271-1.287-15.22-1.287 c-8.917,0-15.964,1.383-21.109,2.389c-3.166,0.617-5.896,1.148-8.006,1.148c-2.21,0-4.895-0.49-6.014-4.311 c-0.887-3.014-1.523-5.934-2.137-8.746c-1.536-7.027-2.65-11.316-5.281-11.723c-28.141-4.342-44.768-10.738-48.08-18.484 c-0.347-0.814-0.541-1.633-0.584-2.443c-0.129-2.309,1.501-4.334,3.777-4.711c22.348-3.68,42.219-15.492,59.064-35.119 c13.049-15.195,19.457-29.713,20.145-31.316c0.03-0.072,0.065-0.148,0.101-0.217c3.247-6.588,3.893-12.281,1.926-16.916 c-3.626-8.551-15.635-12.361-23.58-14.882c-1.976-0.625-3.845-1.217-5.334-1.808c-7.043-2.782-18.626-8.66-17.083-16.773 c1.124-5.916,8.949-10.036,15.273-10.036c1.756,0,3.312,0.308,4.622,0.923c7.146,3.348,13.575,5.045,19.104,5.045 c6.876,0,10.197-2.618,11-3.362c-0.198-3.668-0.44-7.546-0.674-11.214c0-0.004-0.005-0.048-0.005-0.048 c-1.614-25.675-3.627-57.627,4.546-75.95c24.462-54.847,76.339-59.112,91.651-59.112c0.408,0,6.674-0.062,6.674-0.062 c0.283-0.005,0.59-0.009,0.908-0.009c15.354,0,67.339,4.27,91.816,59.15c8.173,18.335,6.158,50.314,4.539,76.016l-0.076,1.23 c-0.222,3.49-0.427,6.793-0.6,9.995c0.756,0.696,3.795,3.096,9.978,3.339c5.271-0.202,11.328-1.891,17.998-5.014 c2.062-0.968,4.345-1.169,5.895-1.169c2.343,0,4.727,0.456,6.714,1.285l0.106,0.041c5.66,2.009,9.367,6.024,9.447,10.242 c0.071,3.932-2.851,9.809-17.223,15.485c-1.472,0.583-3.35,1.179-5.334,1.808c-7.952,2.524-19.951,6.332-23.577,14.878 c-1.97,4.635-1.322,10.326,1.926,16.912c0.036,0.072,0.067,0.145,0.102,0.221c1,2.344,25.205,57.535,79.209,66.432 c2.275,0.379,3.908,2.406,3.778,4.711c-0.048,0.828-0.248,1.656-0.598,2.465c-3.289,7.703-19.915,14.09-48.064,18.438 c-2.642,0.408-3.755,4.678-5.277,11.668c-0.63,2.887-1.271,5.717-2.146,8.691c-0.819,2.797-2.641,4.164-5.567,4.164h-0.441 c-1.905,0-4.604-0.346-8.008-1.012c-5.95-1.158-12.623-2.236-21.109-2.236c-4.948,0-10.069,0.434-15.224,1.287 c-10.473,1.744-19.421,8.062-28.893,14.758C444.443,462.88,429.436,473.488,407.001,473.488"/><path style="fill:#020202;" d="M408.336,124.235c14.455,0,64.231,3.883,87.688,56.472c7.724,17.317,5.744,48.686,4.156,73.885 c-0.248,3.999-0.494,7.875-0.694,11.576l-0.084,1.591l1.062,1.185c0.429,0.476,4.444,4.672,13.374,5.017l0.144,0.008l0.15-0.003 c5.904-0.225,12.554-2.059,19.776-5.442c1.064-0.498,2.48-0.741,3.978-0.741c1.707,0,3.521,0.321,5.017,0.951l0.226,0.09 c3.787,1.327,6.464,3.829,6.505,6.093c0.022,1.28-0.935,5.891-14.359,11.194c-1.312,0.518-3.039,1.069-5.041,1.7 c-8.736,2.774-21.934,6.96-26.376,17.427c-2.501,5.896-1.816,12.854,2.034,20.678c1.584,3.697,26.52,59.865,82.631,69.111 c-0.011,0.266-0.079,0.557-0.229,0.9c-0.951,2.24-6.996,9.979-44.612,15.783c-5.886,0.902-7.328,7.5-9,15.17 c-0.604,2.746-1.218,5.518-2.062,8.381c-0.258,0.865-0.306,0.914-1.233,0.914c-0.128,0-0.278,0-0.442,0 c-1.668,0-4.2-0.346-7.135-0.922c-5.345-1.041-12.647-2.318-21.982-2.318c-5.21,0-10.577,0.453-15.962,1.352 c-11.511,1.914-20.872,8.535-30.786,15.543c-13.314,9.408-27.075,19.143-48.071,19.143c-0.917,0-1.812-0.031-2.709-0.076 l-0.236-0.01l-0.237,0.018c-0.515,0.045-1.034,0.068-1.564,0.068c-20.993,0-34.76-9.732-48.068-19.143 c-9.916-7.008-19.282-13.629-30.791-15.543c-5.38-0.896-10.752-1.352-15.959-1.352c-9.333,0-16.644,1.428-21.978,2.471 c-2.935,0.574-5.476,1.066-7.139,1.066c-1.362,0-1.388-0.08-1.676-1.064c-0.844-2.865-1.461-5.703-2.062-8.445 c-1.676-7.678-3.119-14.312-9.002-15.215c-37.613-5.809-43.659-13.561-44.613-15.795c-0.149-0.352-0.216-0.652-0.231-0.918 c56.11-9.238,81.041-65.408,82.63-69.119c3.857-7.818,4.541-14.775,2.032-20.678c-4.442-10.461-17.638-14.653-26.368-17.422 c-2.007-0.635-3.735-1.187-5.048-1.705c-11.336-4.479-14.823-8.991-14.305-11.725c0.601-3.153,6.067-6.359,10.837-6.359 c1.072,0,2.012,0.173,2.707,0.498c7.747,3.631,14.819,5.472,21.022,5.472c9.751,0,14.091-4.537,14.557-5.055l1.057-1.182 l-0.085-1.583c-0.197-3.699-0.44-7.574-0.696-11.565c-1.583-25.205-3.563-56.553,4.158-73.871 c23.37-52.396,72.903-56.435,87.525-56.435c0.36,0,6.717-0.065,6.717-0.065C407.744,124.239,408.033,124.235,408.336,124.235 M408.336,115.197h-0.017c-0.333,0-0.646,0-0.944,0.004c-2.376,0.024-6.282,0.062-6.633,0.066c-8.566,0-25.705,1.21-44.115,9.336 c-10.526,4.643-19.994,10.921-28.14,18.66c-9.712,9.221-17.624,20.59-23.512,33.796c-8.623,19.336-6.576,51.905-4.932,78.078 l0.006,0.041c0.176,2.803,0.361,5.73,0.53,8.582c-1.265,0.581-3.316,1.194-6.339,1.194c-4.864,0-10.648-1.555-17.187-4.619 c-1.924-0.896-4.12-1.349-6.543-1.349c-3.893,0-7.997,1.146-11.557,3.239c-4.479,2.63-7.373,6.347-8.159,10.468 c-0.518,2.726-0.493,8.114,5.492,13.578c3.292,3.008,8.128,5.782,14.37,8.249c1.638,0.645,3.582,1.261,5.641,1.914 c7.145,2.271,17.959,5.702,20.779,12.339c1.429,3.365,0.814,7.793-1.823,13.145c-0.069,0.146-0.138,0.289-0.201,0.439 c-0.659,1.539-6.807,15.465-19.418,30.152c-7.166,8.352-15.059,15.332-23.447,20.752c-10.238,6.617-21.316,10.943-32.923,12.855 c-4.558,0.748-7.813,4.809-7.559,9.424c0.078,1.33,0.39,2.656,0.931,3.939c0.004,0.008,0.009,0.016,0.013,0.023 c1.843,4.311,6.116,7.973,13.063,11.203c8.489,3.943,21.185,7.26,37.732,9.855c0.836,1.59,1.704,5.586,2.305,8.322 c0.629,2.908,1.285,5.898,2.22,9.074c1.009,3.441,3.626,7.553,10.349,7.553c2.548,0,5.478-0.574,8.871-1.232 c4.969-0.975,11.764-2.305,20.245-2.305c4.702,0,9.575,0.414,14.48,1.229c9.455,1.574,17.606,7.332,27.037,14 c13.804,9.758,29.429,20.803,53.302,20.803c0.651,0,1.304-0.021,1.949-0.066c0.789,0.037,1.767,0.066,2.799,0.066 c23.88,0,39.501-11.049,53.29-20.799l0.022-0.02c9.433-6.66,17.575-12.41,27.027-13.984c4.903-0.814,9.775-1.229,14.479-1.229 c8.102,0,14.517,1.033,20.245,2.15c3.738,0.736,6.643,1.09,8.872,1.09l0.218,0.004h0.226c4.917,0,8.53-2.699,9.909-7.422 c0.916-3.109,1.57-6.029,2.215-8.986c0.562-2.564,1.46-6.674,2.296-8.281c16.558-2.6,29.249-5.91,37.739-9.852 c6.931-3.215,11.199-6.873,13.053-11.166c0.556-1.287,0.881-2.621,0.954-3.979c0.261-4.607-2.999-8.676-7.56-9.424 c-51.585-8.502-74.824-61.506-75.785-63.758c-0.062-0.148-0.132-0.295-0.205-0.438c-2.637-5.354-3.246-9.777-1.816-13.148 c2.814-6.631,13.621-10.062,20.771-12.332c2.07-0.652,4.021-1.272,5.646-1.914c7.039-2.78,12.07-5.796,15.389-9.221 c3.964-4.083,4.736-7.995,4.688-10.555c-0.121-6.194-4.856-11.698-12.388-14.393c-2.544-1.052-5.445-1.607-8.399-1.607 c-2.011,0-4.989,0.276-7.808,1.592c-6.035,2.824-11.441,4.368-16.082,4.588c-2.468-0.125-4.199-0.66-5.32-1.171 c0.141-2.416,0.297-4.898,0.458-7.486l0.067-1.108c1.653-26.19,3.707-58.784-4.92-78.134c-5.913-13.253-13.853-24.651-23.604-33.892 c-8.178-7.744-17.678-14.021-28.242-18.661C434.052,116.402,416.914,115.197,408.336,115.197"/><rect x="147.553" y="39.443" style="fill:none;" width="514.231" height="514.23"/></svg>`
|
|
58
65
|
};
|
|
@@ -104,6 +111,7 @@ const registryMeta = [
|
|
|
104
111
|
m("clarity", "Clarity", "analytics", "useScriptClarity", { bundle: true, proxy: true, partytown: true }, PRIVACY_HEATMAP),
|
|
105
112
|
m("vercelAnalytics", "Vercel Analytics", "analytics", "useScriptVercelAnalytics", { bundle: true, proxy: true }, PRIVACY_IP_ONLY),
|
|
106
113
|
m("mixpanelAnalytics", "Mixpanel", "analytics", "useScriptMixpanelAnalytics", { bundle: true, partytown: true }, null),
|
|
114
|
+
m("ahrefsAnalytics", "Ahrefs Web Analytics", "analytics", "useScriptAhrefsAnalytics", { bundle: true, proxy: true }, PRIVACY_IP_ONLY),
|
|
107
115
|
// ad
|
|
108
116
|
m("bingUet", "Bing UET", "ad", "useScriptBingUet", { bundle: true, partytown: true }, null),
|
|
109
117
|
m("metaPixel", "Meta Pixel", "ad", "useScriptMetaPixel", { bundle: true, proxy: true, partytown: true }, PRIVACY_FULL),
|
|
@@ -111,6 +119,7 @@ const registryMeta = [
|
|
|
111
119
|
m("tiktokPixel", "TikTok Pixel", "ad", "useScriptTikTokPixel", { bundle: true, proxy: true, partytown: true }, PRIVACY_FULL),
|
|
112
120
|
m("snapchatPixel", "Snapchat Pixel", "ad", "useScriptSnapchatPixel", { bundle: true, proxy: true, partytown: true }, PRIVACY_FULL),
|
|
113
121
|
m("redditPixel", "Reddit Pixel", "ad", "useScriptRedditPixel", { bundle: true, proxy: true, partytown: true }, PRIVACY_FULL),
|
|
122
|
+
m("linkedinInsight", "LinkedIn Insight Tag", "ad", "useScriptLinkedInInsight", { bundle: true, proxy: true, partytown: true }, PRIVACY_FULL),
|
|
114
123
|
m("googleAdsense", "Google Adsense", "ad", "useScriptGoogleAdsense", { bundle: true, proxy: true }, PRIVACY_HEATMAP),
|
|
115
124
|
m("carbonAds", "Carbon Ads", "ad", false, { proxy: true }, PRIVACY_IP_ONLY),
|
|
116
125
|
// tag-manager
|
|
@@ -133,9 +142,13 @@ const registryMeta = [
|
|
|
133
142
|
// cdn
|
|
134
143
|
m("npm", "NPM", "cdn", "useScriptNpm", { bundle: true }, null),
|
|
135
144
|
// utility
|
|
145
|
+
m("calendly", "Calendly", "utility", "useScriptCalendly", { bundle: true, proxy: true, partytown: true }, PRIVACY_IP_ONLY),
|
|
136
146
|
m("googleRecaptcha", "Google reCAPTCHA", "utility", "useScriptGoogleRecaptcha", {}, null),
|
|
137
147
|
m("googleSignIn", "Google Sign-In", "utility", "useScriptGoogleSignIn", {}, null),
|
|
138
|
-
m("gravatar", "Gravatar", "utility", "useScriptGravatar", { bundle: true, proxy: true }, PRIVACY_IP_ONLY)
|
|
148
|
+
m("gravatar", "Gravatar", "utility", "useScriptGravatar", { bundle: true, proxy: true }, PRIVACY_IP_ONLY),
|
|
149
|
+
// Usercentrics is the consent layer itself: must hit the vendor origin so
|
|
150
|
+
// signature/policy lookups succeed. Bundle/proxy are intentionally absent.
|
|
151
|
+
m("usercentrics", "Usercentrics", "utility", "useScriptUsercentrics", {}, null)
|
|
139
152
|
];
|
|
140
153
|
const REGISTRY_CATEGORIES = [
|
|
141
154
|
{ key: "analytics", label: "Analytics" },
|
|
@@ -205,12 +218,28 @@ async function registry(resolve) {
|
|
|
205
218
|
const def = (key, script) => defineScript(resolve, key, script);
|
|
206
219
|
return Promise.all([
|
|
207
220
|
// analytics
|
|
221
|
+
def("ahrefsAnalytics", {
|
|
222
|
+
schema: AhrefsAnalyticsOptions,
|
|
223
|
+
label: "Ahrefs Web Analytics",
|
|
224
|
+
src: "https://analytics.ahrefs.com/analytics.js",
|
|
225
|
+
category: "analytics",
|
|
226
|
+
envDefaults: { key: "" },
|
|
227
|
+
bundle: true,
|
|
228
|
+
proxy: {
|
|
229
|
+
domains: ["analytics.ahrefs.com"],
|
|
230
|
+
privacy: PRIVACY_IP_ONLY,
|
|
231
|
+
sdkPatches: [{ type: "replace-new-url-origin", fromDomain: "analytics.ahrefs.com" }]
|
|
232
|
+
}
|
|
233
|
+
}),
|
|
208
234
|
def("plausibleAnalytics", {
|
|
209
235
|
label: "Plausible Analytics",
|
|
210
236
|
category: "analytics",
|
|
211
237
|
envDefaults: { domain: "" },
|
|
212
238
|
bundle: {
|
|
213
239
|
resolve: (options) => {
|
|
240
|
+
const userSrc = options?.scriptInput?.src;
|
|
241
|
+
if (typeof userSrc === "string" && userSrc.trim().length > 0)
|
|
242
|
+
return userSrc.trim();
|
|
214
243
|
if (options?.scriptId)
|
|
215
244
|
return `https://plausible.io/js/pa-${options.scriptId}.js`;
|
|
216
245
|
const extensions = Array.isArray(options?.extension) ? options.extension.join(".") : [options?.extension];
|
|
@@ -406,11 +435,12 @@ async function registry(resolve) {
|
|
|
406
435
|
resolve(options) {
|
|
407
436
|
if (!options?.id)
|
|
408
437
|
return false;
|
|
409
|
-
|
|
438
|
+
const host = options.region === "us" ? "analytics.us.tiktok.com" : "analytics.tiktok.com";
|
|
439
|
+
return withQuery(`https://${host}/i18n/pixel/events.js`, { sdkid: options.id, lib: "ttq" });
|
|
410
440
|
}
|
|
411
441
|
},
|
|
412
442
|
proxy: {
|
|
413
|
-
domains: ["analytics.tiktok.com", "mon.tiktok.com", "mcs.tiktok.com"],
|
|
443
|
+
domains: ["analytics.tiktok.com", "analytics.us.tiktok.com", "mon.tiktok.com", "mcs.tiktok.com"],
|
|
414
444
|
privacy: PRIVACY_FULL
|
|
415
445
|
},
|
|
416
446
|
partytown: { forwards: ["ttq.track", "ttq.page", "ttq.identify", "ttq.grantConsent", "ttq.revokeConsent", "ttq.holdConsent"] }
|
|
@@ -441,6 +471,21 @@ async function registry(resolve) {
|
|
|
441
471
|
},
|
|
442
472
|
partytown: { forwards: ["rdt"] }
|
|
443
473
|
}),
|
|
474
|
+
def("linkedinInsight", {
|
|
475
|
+
// explicit override: auto-derived would be `useScriptLinkedinInsight` (lowercase i)
|
|
476
|
+
composableName: "useScriptLinkedInInsight",
|
|
477
|
+
schema: LinkedInInsightOptions,
|
|
478
|
+
label: "LinkedIn Insight Tag",
|
|
479
|
+
src: "https://snap.licdn.com/li.lms-analytics/insight.min.js",
|
|
480
|
+
category: "ad",
|
|
481
|
+
envDefaults: { id: "" },
|
|
482
|
+
bundle: true,
|
|
483
|
+
proxy: {
|
|
484
|
+
domains: ["snap.licdn.com", "px.ads.linkedin.com"],
|
|
485
|
+
privacy: PRIVACY_FULL
|
|
486
|
+
},
|
|
487
|
+
partytown: { forwards: ["lintrk"] }
|
|
488
|
+
}),
|
|
444
489
|
def("googleAdsense", {
|
|
445
490
|
schema: GoogleAdsenseOptions,
|
|
446
491
|
label: "Google Adsense",
|
|
@@ -627,6 +672,20 @@ async function registry(resolve) {
|
|
|
627
672
|
}
|
|
628
673
|
}),
|
|
629
674
|
// utility
|
|
675
|
+
def("calendly", {
|
|
676
|
+
schema: CalendlyOptions,
|
|
677
|
+
label: "Calendly",
|
|
678
|
+
src: "https://assets.calendly.com/assets/external/widget.js",
|
|
679
|
+
category: "utility",
|
|
680
|
+
bundle: true,
|
|
681
|
+
proxy: {
|
|
682
|
+
// Booking iframes load from calendly.com directly (vendor-hosted) and
|
|
683
|
+
// are intentionally not proxied. Only the widget script + assets are.
|
|
684
|
+
domains: ["assets.calendly.com"],
|
|
685
|
+
privacy: PRIVACY_IP_ONLY
|
|
686
|
+
},
|
|
687
|
+
partytown: { forwards: ["Calendly.initInlineWidget", "Calendly.initPopupWidget", "Calendly.initBadgeWidget"] }
|
|
688
|
+
}),
|
|
630
689
|
def("googleRecaptcha", {
|
|
631
690
|
schema: GoogleRecaptchaOptions,
|
|
632
691
|
label: "Google reCAPTCHA",
|
|
@@ -680,7 +739,7 @@ async function registry(resolve) {
|
|
|
680
739
|
// `www.google.com` covers static URLs (www.google.com/g/collect) rewritten at build time;
|
|
681
740
|
// `www.google.*` covers the geo-localized ga-audiences beacon, which gtag.js dynamically
|
|
682
741
|
// fires to the visitor's local Google cctld (www.google.com.tw, www.google.co.jp, ...).
|
|
683
|
-
domains: ["www.google-analytics.com", "analytics.google.com", "stats.g.doubleclick.net", "pagead2.googlesyndication.com", "www.googleadservices.com", "googleads.g.doubleclick.net", "www.google.com", "www.google.*", "www.googletagmanager.com"],
|
|
742
|
+
domains: ["www.google-analytics.com", "region1.google-analytics.com", "analytics.google.com", "stats.g.doubleclick.net", "pagead2.googlesyndication.com", "www.googleadservices.com", "googleads.g.doubleclick.net", "www.google.com", "www.google.*", "www.googletagmanager.com"],
|
|
684
743
|
privacy: PRIVACY_HEATMAP
|
|
685
744
|
},
|
|
686
745
|
partytown: { forwards: ["dataLayer.push", "gtag"] }
|
|
@@ -700,6 +759,18 @@ async function registry(resolve) {
|
|
|
700
759
|
},
|
|
701
760
|
partytown: { forwards: ["umami", "umami.track"] }
|
|
702
761
|
}),
|
|
762
|
+
def("usercentrics", {
|
|
763
|
+
composableName: "useScriptUsercentrics",
|
|
764
|
+
schema: UsercentricsOptions,
|
|
765
|
+
label: "Usercentrics",
|
|
766
|
+
// The runtime composable builds the actual script tag so it can include
|
|
767
|
+
// the required `data-ruleset-id` attribute. No bundle/proxy: the CMP
|
|
768
|
+
// must hit the vendor origin (it IS the consent surface, and is exempt
|
|
769
|
+
// from consent gating) so policies/signatures resolve correctly.
|
|
770
|
+
src: "https://web.cmp.usercentrics.eu/ui/loader.js",
|
|
771
|
+
category: "utility",
|
|
772
|
+
envDefaults: { rulesetId: "" }
|
|
773
|
+
}),
|
|
703
774
|
def("gravatar", {
|
|
704
775
|
schema: GravatarOptions,
|
|
705
776
|
label: "Gravatar",
|
|
@@ -93,6 +93,47 @@ const map = shallowRef();
|
|
|
93
93
|
function isLocationQuery(s) {
|
|
94
94
|
return typeof s === "string" && (s.split(",").length > 2 || s.includes("+"));
|
|
95
95
|
}
|
|
96
|
+
function getCenterWatchKey(center) {
|
|
97
|
+
const raw = toRaw(center);
|
|
98
|
+
if (!raw)
|
|
99
|
+
return void 0;
|
|
100
|
+
if (typeof raw === "string")
|
|
101
|
+
return `query:${raw}`;
|
|
102
|
+
const lat = typeof raw.lat === "function" ? raw.lat() : raw.lat;
|
|
103
|
+
const lng = typeof raw.lng === "function" ? raw.lng() : raw.lng;
|
|
104
|
+
if (lat != null && lng != null)
|
|
105
|
+
return `latlng:${lat},${lng}`;
|
|
106
|
+
return void 0;
|
|
107
|
+
}
|
|
108
|
+
const controlledCenterKey = computed(() => {
|
|
109
|
+
return getCenterWatchKey(centerOverride.value) || getCenterWatchKey(props.mapOptions?.center) || getCenterWatchKey(props.center);
|
|
110
|
+
});
|
|
111
|
+
function getReactiveMapOptions(options2) {
|
|
112
|
+
const { center: _, zoom: __, mapId: ___, colorScheme: ____, ...rest } = options2;
|
|
113
|
+
return rest;
|
|
114
|
+
}
|
|
115
|
+
function isPlainObject(value) {
|
|
116
|
+
if (!value || typeof value !== "object")
|
|
117
|
+
return false;
|
|
118
|
+
const proto = Object.getPrototypeOf(value);
|
|
119
|
+
return proto === Object.prototype || proto === null;
|
|
120
|
+
}
|
|
121
|
+
function isSameOptionValue(a, b) {
|
|
122
|
+
if (Object.is(a, b))
|
|
123
|
+
return true;
|
|
124
|
+
if (Array.isArray(a) && Array.isArray(b)) {
|
|
125
|
+
return a.length === b.length && a.every((value, index) => isSameOptionValue(value, b[index]));
|
|
126
|
+
}
|
|
127
|
+
if (isPlainObject(a) && isPlainObject(b)) {
|
|
128
|
+
const aKeys = Object.keys(a);
|
|
129
|
+
const bKeys = Object.keys(b);
|
|
130
|
+
return aKeys.length === bKeys.length && aKeys.every((key) => Object.hasOwn(b, key) && isSameOptionValue(a[key], b[key]));
|
|
131
|
+
}
|
|
132
|
+
return false;
|
|
133
|
+
}
|
|
134
|
+
function isSameMapOptions(a, b) {
|
|
135
|
+
return isSameOptionValue(toRaw(a), toRaw(b));
|
|
136
|
+
}
|
|
96
137
|
const queryToLatLngCache = /* @__PURE__ */ new Map();
|
|
97
138
|
async function resolveQueryToLatLng(query) {
|
|
98
139
|
if (query && typeof query === "object")
|
|
@@ -194,11 +235,12 @@ onMounted(() => {
|
|
|
194
235
|
emits("error");
|
|
195
236
|
}
|
|
196
237
|
});
|
|
197
|
-
watch(options, () => {
|
|
238
|
+
watch(() => getReactiveMapOptions(options.value), (nextOptions, previousOptions) => {
|
|
198
239
|
if (!map.value)
|
|
199
240
|
return;
|
|
200
|
-
|
|
201
|
-
|
|
241
|
+
if (isSameMapOptions(nextOptions, previousOptions))
|
|
242
|
+
return;
|
|
243
|
+
map.value.setOptions(nextOptions);
|
|
202
244
|
});
|
|
203
245
|
watch([currentMapId, currentColorScheme], async ([newMapId, newScheme], [oldMapId, oldScheme]) => {
|
|
204
246
|
if (!map.value || !mapsApi.value || !mapEl.value)
|
|
@@ -227,17 +269,18 @@ onMounted(() => {
|
|
|
227
269
|
emits("ready", exposed);
|
|
228
270
|
});
|
|
229
271
|
watch(() => options.value.zoom, (zoom) => {
|
|
230
|
-
if (map.value && zoom != null)
|
|
272
|
+
if (map.value && zoom != null) {
|
|
231
273
|
map.value.setZoom(zoom);
|
|
274
|
+
}
|
|
232
275
|
});
|
|
233
|
-
watch([() => props.center, () => props.mapOptions?.center], () => {
|
|
276
|
+
watch([() => getCenterWatchKey(props.center), () => getCenterWatchKey(props.mapOptions?.center)], () => {
|
|
234
277
|
centerOverride.value = void 0;
|
|
235
278
|
});
|
|
236
|
-
watch([
|
|
279
|
+
watch([controlledCenterKey, isMapReady, map], async () => {
|
|
237
280
|
if (!map.value) {
|
|
238
281
|
return;
|
|
239
282
|
}
|
|
240
|
-
let center = toRaw(
|
|
283
|
+
let center = toRaw(options.value.center);
|
|
241
284
|
if (center) {
|
|
242
285
|
if (isLocationQuery(center) && isMapReady.value) {
|
|
243
286
|
center = await resolveQueryToLatLng(center);
|
|
@@ -11,8 +11,8 @@ type __VLS_Props = {
|
|
|
11
11
|
style?: google.maps.Data.StylingFunction | google.maps.Data.StyleOptions;
|
|
12
12
|
};
|
|
13
13
|
declare const __VLS_export: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
|
|
14
|
-
contextmenu: (payload: google.maps.Data.MouseEvent) => any;
|
|
15
14
|
click: (payload: google.maps.Data.MouseEvent) => any;
|
|
15
|
+
contextmenu: (payload: google.maps.Data.MouseEvent) => any;
|
|
16
16
|
dblclick: (payload: google.maps.Data.MouseEvent) => any;
|
|
17
17
|
mousedown: (payload: google.maps.Data.MouseEvent) => any;
|
|
18
18
|
mousemove: (payload: google.maps.Data.MouseEvent) => any;
|
|
@@ -25,8 +25,8 @@ declare const __VLS_export: import("vue").DefineComponent<__VLS_Props, {}, {}, {
|
|
|
25
25
|
setproperty: (payload: google.maps.Data.SetPropertyEvent) => any;
|
|
26
26
|
removeproperty: (payload: google.maps.Data.RemovePropertyEvent) => any;
|
|
27
27
|
}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{
|
|
28
|
-
onContextmenu?: ((payload: google.maps.Data.MouseEvent) => any) | undefined;
|
|
29
28
|
onClick?: ((payload: google.maps.Data.MouseEvent) => any) | undefined;
|
|
29
|
+
onContextmenu?: ((payload: google.maps.Data.MouseEvent) => any) | undefined;
|
|
30
30
|
onDblclick?: ((payload: google.maps.Data.MouseEvent) => any) | undefined;
|
|
31
31
|
onMousedown?: ((payload: google.maps.Data.MouseEvent) => any) | undefined;
|
|
32
32
|
onMousemove?: ((payload: google.maps.Data.MouseEvent) => any) | undefined;
|
|
@@ -11,8 +11,8 @@ type __VLS_Props = {
|
|
|
11
11
|
style?: google.maps.Data.StylingFunction | google.maps.Data.StyleOptions;
|
|
12
12
|
};
|
|
13
13
|
declare const __VLS_export: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
|
|
14
|
-
contextmenu: (payload: google.maps.Data.MouseEvent) => any;
|
|
15
14
|
click: (payload: google.maps.Data.MouseEvent) => any;
|
|
15
|
+
contextmenu: (payload: google.maps.Data.MouseEvent) => any;
|
|
16
16
|
dblclick: (payload: google.maps.Data.MouseEvent) => any;
|
|
17
17
|
mousedown: (payload: google.maps.Data.MouseEvent) => any;
|
|
18
18
|
mousemove: (payload: google.maps.Data.MouseEvent) => any;
|
|
@@ -25,8 +25,8 @@ declare const __VLS_export: import("vue").DefineComponent<__VLS_Props, {}, {}, {
|
|
|
25
25
|
setproperty: (payload: google.maps.Data.SetPropertyEvent) => any;
|
|
26
26
|
removeproperty: (payload: google.maps.Data.RemovePropertyEvent) => any;
|
|
27
27
|
}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{
|
|
28
|
-
onContextmenu?: ((payload: google.maps.Data.MouseEvent) => any) | undefined;
|
|
29
28
|
onClick?: ((payload: google.maps.Data.MouseEvent) => any) | undefined;
|
|
29
|
+
onContextmenu?: ((payload: google.maps.Data.MouseEvent) => any) | undefined;
|
|
30
30
|
onDblclick?: ((payload: google.maps.Data.MouseEvent) => any) | undefined;
|
|
31
31
|
onMousedown?: ((payload: google.maps.Data.MouseEvent) => any) | undefined;
|
|
32
32
|
onMousemove?: ((payload: google.maps.Data.MouseEvent) => any) | undefined;
|
|
@@ -6,8 +6,8 @@ type __VLS_Props = {
|
|
|
6
6
|
options?: Omit<google.maps.PolygonOptions, 'map'>;
|
|
7
7
|
};
|
|
8
8
|
declare const __VLS_export: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
|
|
9
|
-
contextmenu: (payload: google.maps.PolyMouseEvent) => any;
|
|
10
9
|
click: (payload: google.maps.PolyMouseEvent) => any;
|
|
10
|
+
contextmenu: (payload: google.maps.PolyMouseEvent) => any;
|
|
11
11
|
dblclick: (payload: google.maps.PolyMouseEvent) => any;
|
|
12
12
|
drag: (payload: google.maps.MapMouseEvent) => any;
|
|
13
13
|
dragend: (payload: google.maps.MapMouseEvent) => any;
|
|
@@ -18,8 +18,8 @@ declare const __VLS_export: import("vue").DefineComponent<__VLS_Props, {}, {}, {
|
|
|
18
18
|
mouseover: (payload: google.maps.PolyMouseEvent) => any;
|
|
19
19
|
mouseup: (payload: google.maps.PolyMouseEvent) => any;
|
|
20
20
|
}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{
|
|
21
|
-
onContextmenu?: ((payload: google.maps.PolyMouseEvent) => any) | undefined;
|
|
22
21
|
onClick?: ((payload: google.maps.PolyMouseEvent) => any) | undefined;
|
|
22
|
+
onContextmenu?: ((payload: google.maps.PolyMouseEvent) => any) | undefined;
|
|
23
23
|
onDblclick?: ((payload: google.maps.PolyMouseEvent) => any) | undefined;
|
|
24
24
|
onDrag?: ((payload: google.maps.MapMouseEvent) => any) | undefined;
|
|
25
25
|
onDragend?: ((payload: google.maps.MapMouseEvent) => any) | undefined;
|
|
@@ -6,8 +6,8 @@ type __VLS_Props = {
|
|
|
6
6
|
options?: Omit<google.maps.PolygonOptions, 'map'>;
|
|
7
7
|
};
|
|
8
8
|
declare const __VLS_export: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
|
|
9
|
-
contextmenu: (payload: google.maps.PolyMouseEvent) => any;
|
|
10
9
|
click: (payload: google.maps.PolyMouseEvent) => any;
|
|
10
|
+
contextmenu: (payload: google.maps.PolyMouseEvent) => any;
|
|
11
11
|
dblclick: (payload: google.maps.PolyMouseEvent) => any;
|
|
12
12
|
drag: (payload: google.maps.MapMouseEvent) => any;
|
|
13
13
|
dragend: (payload: google.maps.MapMouseEvent) => any;
|
|
@@ -18,8 +18,8 @@ declare const __VLS_export: import("vue").DefineComponent<__VLS_Props, {}, {}, {
|
|
|
18
18
|
mouseover: (payload: google.maps.PolyMouseEvent) => any;
|
|
19
19
|
mouseup: (payload: google.maps.PolyMouseEvent) => any;
|
|
20
20
|
}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{
|
|
21
|
-
onContextmenu?: ((payload: google.maps.PolyMouseEvent) => any) | undefined;
|
|
22
21
|
onClick?: ((payload: google.maps.PolyMouseEvent) => any) | undefined;
|
|
22
|
+
onContextmenu?: ((payload: google.maps.PolyMouseEvent) => any) | undefined;
|
|
23
23
|
onDblclick?: ((payload: google.maps.PolyMouseEvent) => any) | undefined;
|
|
24
24
|
onDrag?: ((payload: google.maps.MapMouseEvent) => any) | undefined;
|
|
25
25
|
onDragend?: ((payload: google.maps.MapMouseEvent) => any) | undefined;
|
|
@@ -6,8 +6,8 @@ type __VLS_Props = {
|
|
|
6
6
|
options?: Omit<google.maps.PolylineOptions, 'map'>;
|
|
7
7
|
};
|
|
8
8
|
declare const __VLS_export: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
|
|
9
|
-
contextmenu: (payload: google.maps.PolyMouseEvent) => any;
|
|
10
9
|
click: (payload: google.maps.PolyMouseEvent) => any;
|
|
10
|
+
contextmenu: (payload: google.maps.PolyMouseEvent) => any;
|
|
11
11
|
dblclick: (payload: google.maps.PolyMouseEvent) => any;
|
|
12
12
|
drag: (payload: google.maps.MapMouseEvent) => any;
|
|
13
13
|
dragend: (payload: google.maps.MapMouseEvent) => any;
|
|
@@ -18,8 +18,8 @@ declare const __VLS_export: import("vue").DefineComponent<__VLS_Props, {}, {}, {
|
|
|
18
18
|
mouseover: (payload: google.maps.PolyMouseEvent) => any;
|
|
19
19
|
mouseup: (payload: google.maps.PolyMouseEvent) => any;
|
|
20
20
|
}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{
|
|
21
|
-
onContextmenu?: ((payload: google.maps.PolyMouseEvent) => any) | undefined;
|
|
22
21
|
onClick?: ((payload: google.maps.PolyMouseEvent) => any) | undefined;
|
|
22
|
+
onContextmenu?: ((payload: google.maps.PolyMouseEvent) => any) | undefined;
|
|
23
23
|
onDblclick?: ((payload: google.maps.PolyMouseEvent) => any) | undefined;
|
|
24
24
|
onDrag?: ((payload: google.maps.MapMouseEvent) => any) | undefined;
|
|
25
25
|
onDragend?: ((payload: google.maps.MapMouseEvent) => any) | undefined;
|
|
@@ -6,8 +6,8 @@ type __VLS_Props = {
|
|
|
6
6
|
options?: Omit<google.maps.PolylineOptions, 'map'>;
|
|
7
7
|
};
|
|
8
8
|
declare const __VLS_export: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
|
|
9
|
-
contextmenu: (payload: google.maps.PolyMouseEvent) => any;
|
|
10
9
|
click: (payload: google.maps.PolyMouseEvent) => any;
|
|
10
|
+
contextmenu: (payload: google.maps.PolyMouseEvent) => any;
|
|
11
11
|
dblclick: (payload: google.maps.PolyMouseEvent) => any;
|
|
12
12
|
drag: (payload: google.maps.MapMouseEvent) => any;
|
|
13
13
|
dragend: (payload: google.maps.MapMouseEvent) => any;
|
|
@@ -18,8 +18,8 @@ declare const __VLS_export: import("vue").DefineComponent<__VLS_Props, {}, {}, {
|
|
|
18
18
|
mouseover: (payload: google.maps.PolyMouseEvent) => any;
|
|
19
19
|
mouseup: (payload: google.maps.PolyMouseEvent) => any;
|
|
20
20
|
}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{
|
|
21
|
-
onContextmenu?: ((payload: google.maps.PolyMouseEvent) => any) | undefined;
|
|
22
21
|
onClick?: ((payload: google.maps.PolyMouseEvent) => any) | undefined;
|
|
22
|
+
onContextmenu?: ((payload: google.maps.PolyMouseEvent) => any) | undefined;
|
|
23
23
|
onDblclick?: ((payload: google.maps.PolyMouseEvent) => any) | undefined;
|
|
24
24
|
onDrag?: ((payload: google.maps.MapMouseEvent) => any) | undefined;
|
|
25
25
|
onDragend?: ((payload: google.maps.MapMouseEvent) => any) | undefined;
|
|
@@ -6,8 +6,8 @@ type __VLS_Props = {
|
|
|
6
6
|
options?: Omit<google.maps.RectangleOptions, 'map'>;
|
|
7
7
|
};
|
|
8
8
|
declare const __VLS_export: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
|
|
9
|
-
contextmenu: (payload: google.maps.MapMouseEvent) => any;
|
|
10
9
|
click: (payload: google.maps.MapMouseEvent) => any;
|
|
10
|
+
contextmenu: (payload: google.maps.MapMouseEvent) => any;
|
|
11
11
|
dblclick: (payload: google.maps.MapMouseEvent) => any;
|
|
12
12
|
drag: (payload: google.maps.MapMouseEvent) => any;
|
|
13
13
|
dragend: (payload: google.maps.MapMouseEvent) => any;
|
|
@@ -19,8 +19,8 @@ declare const __VLS_export: import("vue").DefineComponent<__VLS_Props, {}, {}, {
|
|
|
19
19
|
mouseup: (payload: google.maps.MapMouseEvent) => any;
|
|
20
20
|
bounds_changed: () => any;
|
|
21
21
|
}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{
|
|
22
|
-
onContextmenu?: ((payload: google.maps.MapMouseEvent) => any) | undefined;
|
|
23
22
|
onClick?: ((payload: google.maps.MapMouseEvent) => any) | undefined;
|
|
23
|
+
onContextmenu?: ((payload: google.maps.MapMouseEvent) => any) | undefined;
|
|
24
24
|
onDblclick?: ((payload: google.maps.MapMouseEvent) => any) | undefined;
|
|
25
25
|
onDrag?: ((payload: google.maps.MapMouseEvent) => any) | undefined;
|
|
26
26
|
onDragend?: ((payload: google.maps.MapMouseEvent) => any) | undefined;
|
|
@@ -6,8 +6,8 @@ type __VLS_Props = {
|
|
|
6
6
|
options?: Omit<google.maps.RectangleOptions, 'map'>;
|
|
7
7
|
};
|
|
8
8
|
declare const __VLS_export: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
|
|
9
|
-
contextmenu: (payload: google.maps.MapMouseEvent) => any;
|
|
10
9
|
click: (payload: google.maps.MapMouseEvent) => any;
|
|
10
|
+
contextmenu: (payload: google.maps.MapMouseEvent) => any;
|
|
11
11
|
dblclick: (payload: google.maps.MapMouseEvent) => any;
|
|
12
12
|
drag: (payload: google.maps.MapMouseEvent) => any;
|
|
13
13
|
dragend: (payload: google.maps.MapMouseEvent) => any;
|
|
@@ -19,8 +19,8 @@ declare const __VLS_export: import("vue").DefineComponent<__VLS_Props, {}, {}, {
|
|
|
19
19
|
mouseup: (payload: google.maps.MapMouseEvent) => any;
|
|
20
20
|
bounds_changed: () => any;
|
|
21
21
|
}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{
|
|
22
|
-
onContextmenu?: ((payload: google.maps.MapMouseEvent) => any) | undefined;
|
|
23
22
|
onClick?: ((payload: google.maps.MapMouseEvent) => any) | undefined;
|
|
23
|
+
onContextmenu?: ((payload: google.maps.MapMouseEvent) => any) | undefined;
|
|
24
24
|
onDblclick?: ((payload: google.maps.MapMouseEvent) => any) | undefined;
|
|
25
25
|
onDrag?: ((payload: google.maps.MapMouseEvent) => any) | undefined;
|
|
26
26
|
onDragend?: ((payload: google.maps.MapMouseEvent) => any) | undefined;
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
import type { HTMLAttributes } from 'vue';
|
|
2
|
+
import type { ElementScriptTrigger } from '../types.js';
|
|
3
|
+
interface CalendlyPrefill {
|
|
4
|
+
name?: string;
|
|
5
|
+
email?: string;
|
|
6
|
+
firstName?: string;
|
|
7
|
+
lastName?: string;
|
|
8
|
+
customAnswers?: Record<string, string>;
|
|
9
|
+
}
|
|
10
|
+
interface CalendlyUtm {
|
|
11
|
+
utmCampaign?: string;
|
|
12
|
+
utmSource?: string;
|
|
13
|
+
utmMedium?: string;
|
|
14
|
+
utmContent?: string;
|
|
15
|
+
utmTerm?: string;
|
|
16
|
+
}
|
|
17
|
+
interface CalendlyPageSettings {
|
|
18
|
+
backgroundColor?: string;
|
|
19
|
+
hideEventTypeDetails?: boolean;
|
|
20
|
+
hideLandingPageDetails?: boolean;
|
|
21
|
+
hideGdprBanner?: boolean;
|
|
22
|
+
primaryColor?: string;
|
|
23
|
+
textColor?: string;
|
|
24
|
+
}
|
|
25
|
+
type __VLS_Props = {
|
|
26
|
+
url: string;
|
|
27
|
+
trigger?: ElementScriptTrigger;
|
|
28
|
+
prefill?: CalendlyPrefill;
|
|
29
|
+
utm?: CalendlyUtm;
|
|
30
|
+
pageSettings?: CalendlyPageSettings;
|
|
31
|
+
rootAttrs?: HTMLAttributes;
|
|
32
|
+
aboveTheFold?: boolean;
|
|
33
|
+
minHeight?: string;
|
|
34
|
+
};
|
|
35
|
+
type __VLS_Slots = {
|
|
36
|
+
default?: () => any;
|
|
37
|
+
loading?: () => any;
|
|
38
|
+
awaitingLoad?: () => any;
|
|
39
|
+
error?: () => any;
|
|
40
|
+
};
|
|
41
|
+
declare const __VLS_base: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
|
|
42
|
+
error: () => any;
|
|
43
|
+
ready: (api: {
|
|
44
|
+
Calendly: typeof window.Calendly;
|
|
45
|
+
}) => any;
|
|
46
|
+
}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{
|
|
47
|
+
onError?: (() => any) | undefined;
|
|
48
|
+
onReady?: ((api: {
|
|
49
|
+
Calendly: typeof window.Calendly;
|
|
50
|
+
}) => any) | undefined;
|
|
51
|
+
}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
52
|
+
declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
|
|
53
|
+
declare const _default: typeof __VLS_export;
|
|
54
|
+
export default _default;
|
|
55
|
+
type __VLS_WithSlots<T, S> = T & {
|
|
56
|
+
new (): {
|
|
57
|
+
$slots: S;
|
|
58
|
+
};
|
|
59
|
+
};
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
<script setup>
|
|
2
|
+
import { useHead } from "@unhead/vue";
|
|
3
|
+
import { computed, onMounted, ref, watch } from "vue";
|
|
4
|
+
import { useScriptTriggerElement } from "../composables/useScriptTriggerElement";
|
|
5
|
+
import { useScriptCalendly } from "../registry/calendly";
|
|
6
|
+
import ScriptAriaLoadingIndicator from "./ScriptAriaLoadingIndicator.vue";
|
|
7
|
+
const {
|
|
8
|
+
url,
|
|
9
|
+
trigger = "visible",
|
|
10
|
+
prefill,
|
|
11
|
+
utm,
|
|
12
|
+
pageSettings,
|
|
13
|
+
rootAttrs,
|
|
14
|
+
aboveTheFold = false,
|
|
15
|
+
minHeight = "700px"
|
|
16
|
+
} = defineProps({
|
|
17
|
+
url: { type: String, required: true },
|
|
18
|
+
trigger: { type: [String, Array, Boolean], required: false },
|
|
19
|
+
prefill: { type: Object, required: false },
|
|
20
|
+
utm: { type: Object, required: false },
|
|
21
|
+
pageSettings: { type: Object, required: false },
|
|
22
|
+
rootAttrs: { type: Object, required: false },
|
|
23
|
+
aboveTheFold: { type: Boolean, required: false },
|
|
24
|
+
minHeight: { type: String, required: false }
|
|
25
|
+
});
|
|
26
|
+
const emit = defineEmits(["ready", "error"]);
|
|
27
|
+
defineSlots();
|
|
28
|
+
const rootEl = ref();
|
|
29
|
+
const containerEl = ref();
|
|
30
|
+
const triggerSignal = useScriptTriggerElement({ trigger, el: rootEl });
|
|
31
|
+
const instance = useScriptCalendly({ scriptOptions: { trigger: triggerSignal } });
|
|
32
|
+
const { onLoaded, status } = instance;
|
|
33
|
+
if (import.meta.server && aboveTheFold) {
|
|
34
|
+
useHead({
|
|
35
|
+
link: [
|
|
36
|
+
{ key: "nuxt-script-calendly-preconnect", rel: "preconnect", href: "https://calendly.com" }
|
|
37
|
+
]
|
|
38
|
+
});
|
|
39
|
+
}
|
|
40
|
+
onMounted(() => {
|
|
41
|
+
onLoaded((api) => {
|
|
42
|
+
if (!containerEl.value)
|
|
43
|
+
return;
|
|
44
|
+
api.Calendly.initInlineWidget({
|
|
45
|
+
url,
|
|
46
|
+
parentElement: containerEl.value,
|
|
47
|
+
prefill,
|
|
48
|
+
utm,
|
|
49
|
+
pageSettings
|
|
50
|
+
});
|
|
51
|
+
emit("ready", api);
|
|
52
|
+
});
|
|
53
|
+
watch(status, (s) => {
|
|
54
|
+
if (s === "error")
|
|
55
|
+
emit("error");
|
|
56
|
+
}, { immediate: true });
|
|
57
|
+
});
|
|
58
|
+
const computedRootAttrs = computed(() => ({
|
|
59
|
+
"aria-busy": status.value === "loading",
|
|
60
|
+
"aria-label": status.value === "awaitingLoad" ? "Calendly Inline Widget - Awaiting Load" : status.value === "loading" ? "Calendly Inline Widget - Loading" : "Calendly Inline Widget",
|
|
61
|
+
"aria-live": "polite",
|
|
62
|
+
"role": "application",
|
|
63
|
+
"style": { position: "relative", minHeight, width: "100%" },
|
|
64
|
+
...rootAttrs,
|
|
65
|
+
...triggerSignal instanceof Promise ? triggerSignal.ssrAttrs || {} : {}
|
|
66
|
+
}));
|
|
67
|
+
</script>
|
|
68
|
+
|
|
69
|
+
<template>
|
|
70
|
+
<div ref="rootEl" v-bind="computedRootAttrs">
|
|
71
|
+
<div ref="containerEl" :style="{ minWidth: '320px', minHeight, height: '100%', width: '100%' }" />
|
|
72
|
+
<slot v-if="status === 'loading'" name="loading">
|
|
73
|
+
<ScriptAriaLoadingIndicator />
|
|
74
|
+
</slot>
|
|
75
|
+
<slot v-if="status === 'awaitingLoad'" name="awaitingLoad" />
|
|
76
|
+
<slot v-else-if="status === 'error'" name="error" />
|
|
77
|
+
<slot />
|
|
78
|
+
</div>
|
|
79
|
+
</template>
|