{"version":3,"file":"shared-lib.B2UBk8TY.mjs","names":[],"sources":["https:/framerusercontent.com/modules/ugWoOuHbKSN6tlALI5WW/nq4b95BivW0e2rVTW0nz/siteMetadata.js"],"sourcesContent":["// Generated by Framer (31f1c56)\nexport default function metadata(params,activeLocale){return{customHTMLBodyEnd:'<!-- Google Tag Manager (noscript) -->\\n<noscript><iframe src=\"https://www.googletagmanager.com/ns.html?id=GTM-NZC8FLH\" height=\"0\" width=\"0\" style=\"display:none;visibility:hidden\"></iframe></noscript>\\n<!-- End Google Tag Manager (noscript) -->',customHTMLBodyStart:'<script>\\n(function () {\\n  const ORG_PATH = \"/careers\";\\n  const DETAILS_PATH = \"/careers/details\";\\n  const numRE = /^\\\\d+$/;\\n\\n  // ---------- Utilities ----------\\n  const lastSeg = (p) => (p || \"\").split(\"/\").filter(Boolean).pop() || \"\";\\n\\n  function extractId(href) {\\n    try {\\n      const u = new URL(href, location.origin);\\n      // 1) from query\\n      const q = u.searchParams.get(\"gh_jid\");\\n      if (q && numRE.test(q)) return q;\\n      // 2) from last path segment (/careers/123...)\\n      const last = lastSeg(u.pathname);\\n      if (last && numRE.test(last)) return last;\\n      // 3) from preview path (?path=/careers/123)\\n      const path = u.searchParams.get(\"path\");\\n      if (path) {\\n        const lp = lastSeg(path);\\n        if (lp && numRE.test(lp)) return lp;\\n      }\\n    } catch {}\\n    return null;\\n  }\\n\\n  // Build /careers/{id}?gh_jid={id}&(others...) with gh_jid FIRST\\n  const toPretty = (id, qs) => {\\n    const orig = new URLSearchParams(qs || \"\");\\n    const ordered = new URLSearchParams();\\n    ordered.set(\"gh_jid\", id); // gh_jid first\\n    for (const [k, v] of orig.entries()) {\\n      if (k.toLowerCase() === \"gh_jid\") continue;\\n      ordered.append(k, v);\\n    }\\n    return `${ORG_PATH}/${id}?${ordered.toString()}`;\\n  };\\n\\n  // Build /careers/details?gh_jid={id}&(others...), preserving params\\n  const toDetails = (id, qs) => {\\n    const p = new URLSearchParams(qs || \"\");\\n    p.set(\"gh_jid\", id);\\n    return `${DETAILS_PATH}?${p.toString()}`;\\n  };\\n\\n  function onDetailsHere() {\\n    const u = new URL(location.href);\\n    const path = u.pathname.replace(/\\\\/$/, \"\");\\n    const previewPath = (u.searchParams.get(\"path\") || \"\");\\n    return (\\n      path === DETAILS_PATH ||\\n      previewPath.startsWith(DETAILS_PATH)\\n    );\\n  }\\n\\n  // ---------- Direct hits → details ----------\\n  (function handleDirectHits() {\\n    // /careers/123 → /careers/details?gh_jid=123 (+ keep UTMs)\\n    const m = location.pathname.match(/^\\\\/careers\\\\/(\\\\d+)\\\\/?$/);\\n    if (m) {\\n      const id = m[1];\\n      const params = new URLSearchParams(location.search);\\n      if (!params.get(\"gh_jid\")) params.set(\"gh_jid\", id);\\n      location.replace(`${DETAILS_PATH}?${params.toString()}`);\\n      return;\\n    }\\n\\n    // /careers?gh_jid=123 → /careers/details?gh_jid=123\\n    const sp0 = new URLSearchParams(location.search);\\n    if (location.pathname === \"/careers\" && sp0.get(\"gh_jid\")) {\\n      location.replace(`${DETAILS_PATH}?${sp0.toString()}`);\\n      return;\\n    }\\n\\n    // Framer preview: ?path=/careers/123 → /careers/details?gh_jid=123\\n    const sp = new URLSearchParams(location.search);\\n    const path = sp.get(\"path\");\\n    if (path) {\\n      const pm = path.match(/^\\\\/?careers\\\\/(\\\\d+)\\\\/?$/);\\n      if (pm) {\\n        const id = pm[1];\\n        if (!sp.get(\"gh_jid\")) sp.set(\"gh_jid\", id);\\n        location.replace(`${DETAILS_PATH}?${sp.toString()}`);\\n      }\\n    }\\n  })();\\n\\n  // ---------- Prettify details → /careers/{id}?gh_jid=...&... (no network hop) ----------\\n  function prettifyIfDetails() {\\n    if (!onDetailsHere()) return;\\n\\n    const u = new URL(location.href);\\n\\n    // Collapse odd pattern ?gh_jid=AAA?gh_jid=BBB → keep BBB (AND keep other params)\\n    if (/\\\\?gh_jid=[^?]+\\\\?gh_jid=/.test(location.href)) {\\n      const last = location.href.split(\\'?gh_jid=\\').pop().split(/[&#?]/)[0];\\n      const orig = new URLSearchParams(u.search);\\n      const ordered = new URLSearchParams();\\n      ordered.set(\"gh_jid\", last); // gh_jid first\\n      for (const [k, v] of orig.entries()) {\\n        if (k.toLowerCase() === \"gh_jid\") continue;\\n        ordered.append(k, v);\\n      }\\n      u.search = `?${ordered.toString()}`;\\n      history.replaceState(history.state, \"\", u.toString());\\n    }\\n\\n    // Final id from params, path, or preview path\\n    const id =\\n      u.searchParams.getAll(\"gh_jid\").slice(-1)[0] ||\\n      (u.pathname.match(/^\\\\/careers\\\\/(\\\\d+)/)?.[1]) ||\\n      ((u.searchParams.get(\"path\") || \"\").match(/^\\\\/?careers\\\\/(\\\\d+)/)?.[1]);\\n\\n    if (!id) return;\\n\\n    const pretty = toPretty(id, u.search);\\n    const current = u.pathname + u.search;\\n    if (current !== pretty) history.replaceState(history.state, \"\", pretty);\\n  }\\n\\n  // ---------- Intercept clicks to /careers/{id} → send to details (keep params) ----------\\n  function clickInterceptor(e) {\\n    const a = e.target && e.target.closest && e.target.closest(\"a[href]\");\\n    if (!a) return;\\n\\n    let u;\\n    try { u = new URL(a.href, location.origin); } catch { return; }\\n\\n    // NEW: only handle same-host links; let cross-origin (e.g., wing.com) pass through\\n    if (u.host !== location.host) return;\\n\\n    const id = extractId(a.href);\\n    if (!id) return;\\n\\n    const isPretty =\\n      /^\\\\/careers\\\\/\\\\d+\\\\/?$/.test(u.pathname) ||\\n      (/^\\\\/?careers\\\\/\\\\d+\\\\/?$/.test(u.searchParams.get(\"path\") || \"\"));\\n    const isDetails = u.pathname.replace(/\\\\/$/, \"\") === DETAILS_PATH;\\n\\n    if (isPretty && !isDetails) {\\n      e.preventDefault();\\n      e.stopPropagation();\\n      location.href = toDetails(id, u.search);\\n    }\\n  }\\n\\n  // ---------- Rewrite anchors inserted later (same-host only) ----------\\n  const mo = new MutationObserver((muts) => {\\n    muts.forEach((m) => {\\n      m.addedNodes && m.addedNodes.forEach((node) => {\\n        if (node.nodeType !== 1) return;\\n        const anchors = node.matches && node.matches(\"a[href]\")\\n          ? [node]\\n          : node.querySelectorAll\\n          ? node.querySelectorAll(\"a[href]\")\\n          : [];\\n        anchors.forEach((a) => {\\n          let u;\\n          try { u = new URL(a.href, location.origin); } catch { return; }\\n\\n          // NEW: skip cross-origin links\\n          if (u.host !== location.host) return;\\n\\n          const id = extractId(a.href);\\n          if (!id) return;\\n\\n          const isPretty =\\n            /^\\\\/careers\\\\/\\\\d+\\\\/?$/.test(u.pathname) ||\\n            (/^\\\\/?careers\\\\/\\\\d+\\\\/?$/.test(u.searchParams.get(\"path\") || \"\"));\\n          const isDetails = u.pathname.replace(/\\\\/$/, \"\") === DETAILS_PATH;\\n          if (isPretty && !isDetails) a.setAttribute(\"href\", toDetails(id, u.search));\\n        });\\n      });\\n    });\\n  });\\n\\n  // ---------- Init ----------\\n  document.addEventListener(\"click\", clickInterceptor, true);\\n  document.addEventListener(\"DOMContentLoaded\", () => {\\n    prettifyIfDetails();\\n    mo.observe(document.documentElement, { childList: true, subtree: true });\\n  });\\n  window.addEventListener(\"popstate\", prettifyIfDetails);\\n})();\\n</script>\\n',customHTMLHeadEnd:\"<!-- OneTrust Cookies Consent Notice start for wing.com -->\\n<script src=\\\"https://cdn.cookielaw.org/scripttemplates/otSDKStub.js\\\" type=\\\"text/javascript\\\" charset=\\\"UTF-8\\\" data-domain-script=\\\"019838f6-361e-7e9b-9b0c-e98b44812123\\\"></script>\\n<script type=\\\"text/javascript\\\">\\nfunction OptanonWrapper() { }\\n</script>\\n<!-- OneTrust Cookies Consent Notice end for wing.com -->\\n\\n<script>\\n  // Define dataLayer and the gtag function.\\n  window.dataLayer = window.dataLayer || [];\\n  function gtag(){dataLayer.push(arguments);}\\n  gtag('set' , 'developer_id.dYWJhMj', true);\\n\\n  // 1. Set the most restrictive default for all regions (deny all).\\n  gtag('consent', 'default', {\\n    'ad_storage': 'denied',\\n    'ad_user_data': 'denied',\\n    'ad_personalization': 'denied',\\n    'analytics_storage': 'denied'\\n  });\\n\\n  // 2. Grant consent ONLY for the specified list of US states.\\n  gtag('consent', 'default', {\\n    'ad_storage': 'granted',\\n    'ad_user_data': 'granted',\\n    'ad_personalization': 'granted',\\n    'analytics_storage': 'granted',\\n    'region': [\\n        'US-AL', 'US-AK', 'US-AZ', 'US-AR', 'US-CO', 'US-DE', 'US-DC',\\n        'US-GA', 'US-HI', 'US-ID', 'US-IN', 'US-IA', 'US-KS', 'US-KY',\\n        'US-LA', 'US-ME', 'US-MN', 'US-MS', 'US-MO', 'US-NE', 'US-NJ',\\n        'US-NM', 'US-NY', 'US-NC', 'US-ND', 'US-OH', 'US-OK', 'US-OR',\\n        'US-RI', 'US-SC', 'US-SD', 'US-TN', 'US-TX', 'US-UT', 'US-VT',\\n        'US-VA', 'US-WV', 'US-WI', 'US-WY'\\n     ]\\n  });\\n</script>\\n\\n<script>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':\\nnew Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],\\nj=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=\\n'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);\\n})(window,document,'script','dataLayer','GTM-NZC8FLH');</script>\",description:\"Wing offers drone delivery. Our fleet of lightweight, autonomous delivery drones can transport small packages directly from businesses to homes in minutes. Wing delivery is safe, sustainable, and easy to integrate with existing delivery approaches.\",favicon:\"https://framerusercontent.com/assets/4hjT6HpfFg7AW2Umjkev6lknk.png\",robots:\"max-image-preview:large\",socialImage:\"https://framerusercontent.com/assets/WunQ5r1Rqq5Bwv7Mn2nYh4ZZaRw.jpg\",title:\"Wing drone delivery\"};}export const metadataVersion=1;\nexport const __FramerMetadata__ = {\"exports\":{\"metadataVersion\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"default\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}"],"mappings":"2DACA,SAAwB,EAAS,EAAO,EAAa,CAAC,MAAM,CAAC,kBAAkB;;4CAAuP,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAAk7M,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;mEAAi1D,YAAY,2PAA2P,QAAQ,qEAAqE,OAAO,0BAA0B,YAAY,uEAAuE,MAAM,sBAAsB"}