1import{s as l}from"./index-gpB4H7P-.js";const $=/^https?:\/\/(localhost|127\.0\.0\.1|\[::1\])(:\d+)?$/,E=void 0,_=a=>$.test(a)||!!E,g=620,b=2600,p=a=>new Promise(t=>setTimeout(t,a)),u=()=>new Promise(a=>{const t=setTimeout(()=>a(null),120);requestAnimationFrame(()=>{clearTimeout(t),a(null)})}),y="capatai-origen";function v(a){try{sessionStorage.setItem(y,a)}catch{}}function C(){try{const a=sessionStorage.getItem(y);if(a)return a}catch{}try{if(document.referrer){const a=new URL(document.referrer).origin;if(a!==window.location.origin)return v(a),a}}catch{}return"*"}function M(){if(window.parent===window)return!1;if(new URLSearchParams(window.location.search).get("capatai")==="1"){try{sessionStorage.setItem("capatai","1")}catch{}return!0}try{return sessionStorage.getItem("capatai")==="1"}catch{return!1}}let r=null;function L(){if(r)return;const a=document.createElement("style");a.textContent=` 2 #capatai-cursor{position:fixed;top:0;left:0;z-index:2147483000; 3 width:30px;height:30px;pointer-events:none;opacity:0; 4 transform:translate(-100px,-100px); 5 transition:transform ${g}ms cubic-bezier(.22,.61,.36,1),opacity .25s; 6 filter:drop-shadow(0 3px 8px rgba(0,0,0,.45))} 7 #capatai-cursor.visible{opacity:1} 8 #capatai-cursor .onda{position:absolute;inset:-14px;border-radius:50%; 9 border:3px solid #4CAF2F;opacity:0;transform:scale(.3)} 10 #capatai-cursor.click .onda{animation:capatai-onda .55s ease-out} 11 @keyframes capatai-onda{ 12 0%{opacity:.9;transform:scale(.3)} 13 100%{opacity:0;transform:scale(1.6)}} 14 15 /* Lo que se va a tocar, un instante antes de tocarlo. */ 16 .capatai-apuntado{position:relative; 17 outline:3px solid #4CAF2F !important;outline-offset:2px; 18 border-radius:8px;transition:outline-color .2s} 19 20 /* El dato del que CAPATAI esta hablando justo ahora. */ 21 .capatai-brilla{animation:capatai-brillo ${b}ms ease-out; 22 border-radius:10px} 23 @keyframes capatai-brillo{ 24 0%{box-shadow:0 0 0 0 rgba(76,175,47,0); background-color:transparent} 25 12%{box-shadow:0 0 0 8px rgba(76,175,47,.35); background-color:rgba(76,175,47,.16)} 26 70%{box-shadow:0 0 0 6px rgba(76,175,47,.18); background-color:rgba(76,175,47,.10)} 27 100%{box-shadow:0 0 0 0 rgba(76,175,47,0); background-color:transparent}} 28 29 @media (prefers-reduced-motion:reduce){ 30 #capatai-cursor{transition:opacity .25s} 31 .capatai-brilla{animation-duration:.01ms}} 32 `,document.head.appendChild(a),r=document.createElement("div"),r.id="capatai-cursor",r.innerHTML=` 33 <span class="onda"></span> 34 <svg viewBox="0 0 24 24" width="30" height="30" aria-hidden="true"> 35 <path d="M5 2 L5 20 L10 15.5 L13 22 L16 20.5 L13 14.5 L19.5 14 Z" 36 fill="#fff" stroke="#12140F" stroke-width="1.4" stroke-linejoin="round"/> 37 </svg>`,document.body.appendChild(r)}async function w(a){L();const t=a.getBoundingClientRect(),e=t.left+t.width/2,o=t.top+t.height/2;r.classList.add("visible"),r.style.transform=`translate(${e-6}px, ${o-4}px)`,await p(g)}async function k(){r.classList.remove("click"),await u(),r.classList.add("click"),await p(260)}async function f(a){(()=>{const e=a.getBoundingClientRect();return e.top>=60&&e.bottom<=window.innerHeight-40})()||(a.scrollIntoView({behavior:"smooth",block:"center"}),await new Promise(e=>{const o=()=>{clearTimeout(s),e(null)},s=setTimeout(o,900);window.addEventListener("scrollend",o,{once:!0})}))}async function T(a){const t=window.location.pathname,e=document.querySelector(`a[href="${a}"]`);return e?(await f(e),await w(e),e.classList.add("capatai-apuntado"),await k(),e.click(),e.classList.remove("capatai-apuntado")):(window.history.pushState({},"",a),window.dispatchEvent(new PopStateEvent("popstate"))),await x(a,t)?(await m(),null):`no llegue a ${a}`}async function x(a,t,e=3500){const o=Date.now()+e;for(;Date.now()<o;){const s=window.location.pathname;if(s===a||s.startsWith(a+"/")||s!==t)return!0;await p(80)}return!1}async function m(){await u(),await u(),await p(420)}async function I(a){const t=document.querySelector(`[data-capatai="${a}"]`);return t?(await f(t),await w(t),t.classList.remove("capatai-brilla"),await u(),t.classList.add("capatai-brilla"),setTimeout(()=>t.classList.remove("capatai-brilla"),b),null):`no encontre ${a} en esta vista`}async function O(a){const t=document.querySelector(`[data-capatai-tab="${a}"]`);return t?(await f(t),await w(t),t.classList.add("capatai-apuntado"),await k(),t.click(),t.classList.remove("capatai-apuntado"),await m(),null):`no encontre la solapa ${a}`}const h="/dashboard/mi-campo";async function R(){const{data:{session:a}}=await l.auth.getSession();if(a)return null;const{data:t,error:e}=await l.functions.invoke("demo-login");if(e||!(t!=null&&t.access_token)||!(t!=null&&t.refresh_token))return`demo-login fallo: ${(e==null?void 0:e.message)??(t==null?void 0:t.error)??"sin tokens"}`;const{error:o}=await l.auth.setSession({access_token:t.access_token,refresh_token:t.refresh_token});return o?`setSession fallo: ${o.message}`:null}async function A(){const a=S();await u(),await u();const t=window.location.pathname;t===a||t.startsWith(a+"/")||(window.history.pushState({},"",a),window.dispatchEvent(new PopStateEvent("popstate")),await x(a,t)||console.warn(`[capatai] no llegue a ${a}, quede en ${window.location.pathname}`),await m())}function S(){try{return sessionStorage.getItem("capatai-destino")||h}catch{return h}}async function P(a){await l.auth.signOut({scope:"local"});const{error:t}=await l.auth.verifyOtp({token_hash:a,type:"magiclink"});return t?`no pude entrar como el visitante: ${t.message}`:null}async function q(){return await l.auth.signOut({scope:"local"}),null}async function D(){var s;const a=(c,n,d,i)=>{window.parent.postMessage({fuente:"capatai-app",id:n,ok:d,motivo:i},c)};window.addEventListener("message",async c=>{if(!_(c.origin))return;const n=c.data??{};if(n.fuente!=="capatai"||typeof n.id!="number")return;v(c.origin);let d=!1;try{let i=null;n.accion==="ir"&&n.path?i=await T(n.path):n.accion==="resaltar"&&n.dato?i=await I(n.dato):n.accion==="tab"&&n.tab?i=await O(n.tab):n.accion==="sesion"&&n.token_hash?(i=await P(n.token_hash),d=!0):n.accion==="salir"?(i=await q(),d=!0):i=`orden incompleta: ${JSON.stringify(n)}`,a(c.origin,n.id,!i,i??void 0)}catch(i){a(c.origin,n.id,!1,String(i))}d&&setTimeout(()=>window.location.assign(S()),50)}),L();const t=await R();t?console.warn("[capatai] sin sesion demo:",t):await A();const e=C(),{data:{session:o}}=await l.auth.getSession();window.parent.postMessage({fuente:"capatai-app",listo:!0,usuario:e==="*"?null:((s=o==null?void 0:o.user)==null?void 0:s.email)??null},e)}export{M as activo,D as montar};
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.