/*! nc-unit-shell.js — Navbar/Footer dinâmicos por unidade (Webflow)
 *  Desenvolvido por Novos Conceitos
 *  Documentação: https://github.com/Novos-Conceitos/unit-shell
 */(()=>{const f=_(),h=`nc_unitCache_${f}_`,d=E(),a="nc_lastUnit",C="data-unit-slug",m="data-unit-base",s=[{source:"[data-unit-nav]",target:"[data-nav-target]",key:"nav"},{source:"[data-unit-footer]",target:"[data-footer-target]",key:"footer"}],w=()=>Date.now();function L(t){try{localStorage.setItem(a,JSON.stringify(t))}catch{}}function U(){try{return JSON.parse(localStorage.getItem(a)||"null")}catch{return null}}function _(){try{if(window.UnitShellConfig&&typeof window.UnitShellConfig.cacheVersion=="string")return window.UnitShellConfig.cacheVersion}catch{}return"v1"}function E(){try{if(window.UnitShellConfig&&typeof window.UnitShellConfig.cacheTTL=="number")return window.UnitShellConfig.cacheTTL}catch{}return 1e3*60*60*12}function g(t,e=null){return e?`${String(e).replace(/\/$/,"")}/${t}`:window.UnitShellConfig&&typeof window.UnitShellConfig.unitPathPrefix=="string"?`${window.UnitShellConfig.unitPathPrefix.replace(/\/$/,"")}/${t}`:`/${t}`}function y(t){const e=(t.base||"").replace(/\W+/g,"_");return`${h}${e}_${t.slug}`}function S(t,e){try{localStorage.setItem(t,JSON.stringify({t:w(),data:e}))}catch{}}function W(t){try{const e=localStorage.getItem(t);if(!e)return null;const{t:n,data:o}=JSON.parse(e);return!n||w()-n>d?null:o||null}catch{return null}}function p(){try{if(window.Webflow&&window.Webflow.require){const t=window.Webflow.require("ix2");t&&t.init&&t.init()}}catch{}}async function $(t){const e=g(t.slug,t.base),n=await fetch(e,{credentials:"same-origin"});if(!n.ok)throw new Error("Falha ao carregar a p\xE1gina da unidade");return n.text()}function v(t){const e=document.implementation.createHTMLDocument("");e.documentElement.innerHTML=t;const n={};return s.forEach(({source:o,key:r})=>{const i=e.querySelector(o);i&&(n[r]=i.outerHTML)}),n}function A(t,e){const n=g(e.slug,e.base);t.querySelectorAll("a[href]").forEach(o=>{const r=(o.getAttribute("href")||"").trim();if(!r)return;const i=r.toLowerCase();if(!(i.startsWith("http://")||i.startsWith("https://")||i.startsWith("mailto:")||i.startsWith("tel:")||i.startsWith("javascript:"))&&r!=="#"){if(r.startsWith("#")){o.setAttribute("href",`${n}${r}`);return}if(r.startsWith("/#")){o.setAttribute("href",`${n}${r.slice(1)}`);return}}})}function H(t,e,n){const o=document.querySelector(t);if(!o||!e)return!1;const r=document.createElement("div");return r.innerHTML=e,A(r,n),o.innerHTML=r.innerHTML,!0}function T(t,e){let n=!1;s.forEach(({target:o,key:r})=>{t&&t[r]&&(n=H(o,t[r],e)||n)}),n&&p()}document.addEventListener("DOMContentLoaded",async()=>{if(window.Webflow&&window.Webflow.env&&(Webflow.env("design")||Webflow.env("editor")))return;const t=document.body,e=t.getAttribute(C);if(e){const i=t.getAttribute(m)||null,c={slug:e,base:i};L(c);const l={};if(s.forEach(({source:u,key:I})=>{const b=document.querySelector(u);b&&(l[I]=b.outerHTML)}),Object.keys(l).length){const u=y(c);S(u,l)}return}const n=U();if(!n||!n.slug)return;const o=y(n),r=W(o);if(r){T(r,n);return}try{const i=await $(n),c=v(i);Object.keys(c).length&&(S(o,c),T(c,n))}catch{}}),window.UnitShell={clearCache:()=>{try{Object.keys(localStorage).forEach(t=>{t.startsWith(h)&&localStorage.removeItem(t)}),localStorage.removeItem(a)}catch{}},cacheVersion:f,cacheTTL:d}})();
