PageSourceSearch

https://andreaugusto.com/assets/analytics-B75gEMkU.js

js andreaugusto.com collected 2026-09-24 14:38:15 UTC 9,867 bytes, 21 lines download raw bytes

1import{a as b,d as E}from"./gpu-check-DIkHax18.js";const L="modulepreload",A=function(e){return"/"+e},v={},C=function(c,d,g){let r=Promise.resolve();if(d&&d.length>0){let p=function(n){return Promise.all(n.map(a=>Promise.resolve(a).then(i=>({status:"fulfilled",value:i}),i=>({status:"rejected",reason:i}))))};document.getElementsByTagName("link");const o=document.querySelector("meta[property=csp-nonce]"),l=o?.nonce||o?.getAttribute("nonce");r=p(d.map(n=>{if(n=A(n),n in v)return;v[n]=!0;const a=n.endsWith(".css"),i=a?'[rel="stylesheet"]':"";if(document.querySelector(`link[href="${n}"]${i}`))return;const t=document.createElement("link");if(t.rel=a?"stylesheet":L,a||(t.as="script"),t.crossOrigin="",t.href=n,l&&t.setAttribute("nonce",l),document.head.appendChild(t),a)return new Promise((s,u)=>{t.addEventListener("load",s),t.addEventListener("error",()=>u(new Error(`Unable to preload CSS for ${n}`)))})}))}function h(o){const l=new Event("vite:preloadError",{cancelable:!0});if(l.payload=o,window.dispatchEvent(l),!l.defaultPrevented)throw o}return r.then(o=>{for(const l of o||[])l.status==="rejected"&&h(l.reason);return c().catch(h)})},_=matchMedia("(max-width: 900px)"),y="[email protected]",x=[{label:"Home",href:"/",match:e=>e==="/"},{label:"Work",href:"/work",match:e=>e.startsWith("/work")||e.startsWith("/cases")},{label:"About",href:"/about",match:e=>e.startsWith("/about")},{label:"Contact",href:`mailto:${y}`}],M=`
2  <a class="mm-icon" href="mailto:${y}" aria-label="Email"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><rect width="20" height="16" x="2" y="4" rx="2"/><path d="m22 7-8.97 5.7a1.94 1.94 0 0 1-2.06 0L2 7"/></svg></a>
3  <a class="mm-icon is-filled" href="https://www.linkedin.com/in/andreaugusto/" target="_blank" rel="noopener noreferrer" aria-label="LinkedIn"><svg viewBox="0 0 24 24" fill="currentColor" aria-hidden="true"><path d="M20.447 20.452h-3.554v-5.569c0-1.328-.027-3.037-1.852-3.037-1.853 0-2.136 1.445-2.136 2.939v5.667H9.351V9h3.414v1.561h.046c.477-.9 1.637-1.85 3.37-1.85 3.601 0 4.267 2.37 4.267 5.455v6.286zM5.337 7.433c-1.144 0-2.063-.926-2.063-2.065 0-1.138.92-2.063 2.063-2.063 1.14 0 2.064.925 2.064 2.063 0 1.139-.925 2.065-2.064 2.065zm1.782 13.019H3.555V9h3.564v11.452zM22.225 0H1.771C.792 0 0 .774 0 1.729v20.542C0 23.227.792 24 1.771 24h20.451C23.2 24 24 23.227 24 22.271V1.729C24 .774 23.2 0 22.222 0h.003z"/></svg></a>
4  <a class="mm-icon" href="https://dribbble.com/andreaugusto" target="_blank" rel="noopener noreferrer" aria-label="Dribbble"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><circle cx="12" cy="12" r="10"/><path d="M19.13 5.09C15.22 9.14 10 10.44 2.25 10.94"/><path d="M21.75 12.84c-6.62-1.41-12.14 1-16.38 6.32"/><path d="M8.56 2.75c4.37 6 6 9.42 8 17.72"/></svg></a>
5  <a class="mm-icon is-filled" href="https://medium.com/@itsandreaugusto" target="_blank" rel="noopener noreferrer" aria-label="Medium"><svg viewBox="0 0 24 24" fill="currentColor" aria-hidden="true"><path fill-rule="evenodd" d="M4.8 0h14.4A4.8 4.8 0 0 1 24 4.8v14.4a4.8 4.8 0 0 1-4.8 4.8H4.8A4.8 4.8 0 0 1 0 19.2V4.8A4.8 4.8 0 0 1 4.8 0Zm.7 17.6h2.6v-6.3l3.3 4.7h.9l3.3-4.7v6.3h2.9V6.4h-2.7L12 12.2 8.2 6.4H5.5v11.2Z"/></svg></a>
6  <a class="mm-icon" href="https://www.instagram.com/itsandreaugusto/" target="_blank" rel="noopener noreferrer" aria-label="Instagram"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><rect width="20" height="20" x="2" y="2" rx="5" ry="5"/><path d="M16 11.37A4 4 0 1 1 12.63 8 4 4 0 0 1 16 11.37z"/><line x1="17.5" x2="17.51" y1="6.5" y2="6.5"/></svg></a>`,S='<svg class="mm-glyph mm-glyph--menu" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M4 8h16M4 16h16"/></svg>',$='<svg class="mm-glyph mm-glyph--close" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M18 6 6 18M6 6l12 12"/></svg>',R=`
7  <svg class="mm-glass-defs" width="0" height="0" aria-hidden="true" focusable="false">
8    <filter id="mm-glass" x="0" y="0" width="100%" height="100%" color-interpolation-filters="sRGB">
9      <feTurbulence type="fractalNoise" baseFrequency="0.0035 0.006" numOctaves="2" seed="7" result="warp"/>
10      <feGaussianBlur in="warp" stdDeviation="6" result="soft"/>
11      <feDisplacementMap in="SourceGraphic" in2="soft" scale="90" xChannelSelector="R" yChannelSelector="G"/>
12    </filter>
13  </svg>`;
13function O(){return!(/AppleWebKit/.test(navigator.userAgent)&&!/Chrome|Chromium|Edg|Firefox|FxiOS|CriOS/.test(navigator.userAgent)||/iP(hone|ad|od)/.test(navigator.userAgent))&&CSS.supports("backdrop-filter","url(#mm-glass)")}let m=null;function P(){if(m!==null)return m;try{if(!E())return m=!1;const e=document.createElement("canvas").getContext("webgl2");m=!!e,e?.getExtension("WEBGL_lose_context")?.loseContext()}catch{m=!1}return m}const k=e=>e.replace(/\/index\.html$/,"/").replace(/\.html$/,"").replace(/\/$/,"")||"/";function j(e,{theme:c="light"}={}){if(!e||e.dataset.mobileMenuReady)return;e.dataset.mobileMenuReady="true",e.classList.add("has-mobile-menu");const d=k(location.pathname),g=x.map(t=>{if(t.disabled)return`<li><span class="mm-link is-disabled" aria-disabled="true">${t.label}</span></li>`;const s=t.match?.(d)?' aria-current="page"':"";return`<li><a class="mm-link" href="${t.href}"${s}>${t.label}</a></li>`}).join(""),r=document.createElement("div");r.id="mobile-menu",r.className=`mm-panel mm-panel--${c==="dark"?"dark":"light"}`,r.setAttribute("aria-label","Menu"),r.inert=!0,r.innerHTML=`
14    <nav class="mm-links" aria-label="Pages"><ul>${g}</ul></nav>
15    <div class="mm-footer">
16      <div class="mm-icons">${M}</div>
17      <div class="mm-shader" aria-hidden="true"><img src="${new URL("/assets/menu-shader-ovsxTznG.jpg",import.meta.url).href}" alt="" loading="lazy" decoding="async"></div>
18      <p class="mm-copyright">© ${new Date().getFullYear()} André Augusto. All Rights Reserved</p>
19    </div>`,O()&&(document.body.insertAdjacentHTML("beforeend",R),r.classList.add("mm-panel--refract")),document.body.append(r),b(r.querySelector('.mm-links a[href^="mailto:"]')),b(r.querySelector('.mm-icon[href^="mailto:"]'),{above:!0});const h=r.querySelector(".mm-shader");let o=null,l=null;const p=async()=>{P()&&(l??=C(async()=>{const{mountWarp:t,HOME_WARP_COLORS:s}=await import("./warp-layer-aI1FJrRt.js");return{mountWarp:t,HOME_WARP_COLORS:s}},[]).then(({mountWarp:t,HOME_WARP_COLORS:s})=>t(h,{colors:s})).then(t=>(o=t,h.classList.add("is-live"),t)).catch(t=>(console.error("[mobile-menu] shader unavailable, keeping the still:",t.message),null)),await l,a?o?.start():o?.stop())},n=document.createElement("button");n.type="button",n.className="mm-toggle",n.setAttribute("aria-controls",r.id),n.setAttribute("aria-expanded","false"),n.setAttribute("aria-label","Open menu"),n.innerHTML=S+$,e.append(n);let a=!1;const i=t=>{if(t!==a){a=t,r.style.setProperty("--mm-top",`${e.offsetHeight}px`),r.classList.toggle("is-open",a),r.inert=!a,document.documentElement.classList.toggle("mm-lock",a),e.classList.toggle("is-menu-open",a),n.setAttribute("aria-expanded",String(a)),n.setAttribute("aria-label",a?"Close menu":"Open menu"),a&&e.classList.remove("nav--retracted"),a?p():o?.stop();for(let s=e;s.parentElement&&s!==document.body;s=s.parentElement)for(const u of s.parentElement.children)u!==s&&u!==r&&u.tagName!=="SCRIPT"&&(u.inert=a)}};n.addEventListener("click",()=>i(!a)),r.addEventListener("click",t=>{const s=t.target.closest("a");if(!s)return;(s.protocol==="mailto:"||s.target==="_blank"||k(new URL(s.href).pathname)===d)&&i(!1)}),addEventListener("keydown",t=>{t.key==="Escape"&&a&&(i(!1),n.focus())}),_.addEventListener("change",t=>{t.matches||i(!1)}),addEventListener("pageshow",()=>i(!1))}const w="aa:analytics-consent";function f(){(window.dataLayer=window.dataLayer||[]).push(arguments)}function H(){try{return localStorage.getItem(w)}catch{return null}}function B(e){try{localStorage.setItem(w,e)}catch{}}function I(e){f("consent","update",{analytics_storage:e?"granted":"denied"})}function N(){const e=document.createElement("section");e.className="aa-consent",e.setAttribute("role","dialog"),e.setAttribute("aria-labelledby","aa-consent-title"),e.innerHTML=`<p class="aa-consent-title" id="aa-consent-title">Analytics</p>
20<p class="aa-consent-copy">I use Google Analytics to see which work actually gets read. No ads, no profiles, nothing sold.</p>
21<div class="aa-consent-actions"><button type="button" class="aa-consent-accept">Accept</button><button type="button" class="aa-consent-decline">Decline</button></div>`,document.body.append(e),e.offsetWidth,e.classList.add("is-shown");const c=d=>{B(d),I(d==="granted"),e.classList.remove("is-shown"),setTimeout(()=>e.remove(),320)};e.querySelector(".aa-consent-accept").addEventListener("click",()=>c("granted")),e.querySelector(".aa-consent-decline").addEventListener("click",()=>c("denied"))}function T(){document.addEventListener("click",e=>{const c=e.target.closest?.(".footer-cta-primary");c&&f("event","book_a_call",{link_url:c.href})},{passive:!0}),addEventListener("portfolio:email-copied",e=>{f("event","email_copied",{surface:e.detail?.surface||"unknown"})}),addEventListener("portfolio:case-open",e=>{f("event","case_open",{case_slug:e.detail?.slug||"unknown",protected_case:e.detail?.protected?"yes":"no"})}),addEventListener("portfolio:case-unlock",e=>{f("event","case_unlock",{case_slug:e.detail?.slug||"unknown"})})}function G(){return window.__aaAnalytics?(T(),H()||N(),!0):!1}export{j as b,G as i};

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.