mk-sdk-git 1.1.42 → 1.1.44
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/mk-core.js +1 -1
- package/dist/mk-sdk.js +1 -1
- package/package.json +1 -1
- package/src/core/config.js +2 -0
- package/src/tryon/anchor.js +18 -8
- package/src/tryon/automount.js +88 -65
- package/src/tryon/bridge.js +10 -10
package/dist/mk-core.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
(()=>{var Cr=Object.defineProperty;var v=(t,e)=>{for(var r in e)Cr(t,r,{get:e[r],enumerable:!0})};var wt={collectorUrl:"https://api-collector.mk3dlabs.com",appUrl:"https://mkfashion.mk3dlabs.com/visualizer",apiUrl:"https://mkfashion-new-api.mk3dlabs.com"},vr={},$=null;function xt(){if($)return $;let t=null;try{t=document.currentScript||document.querySelector("script[data-mk-project]")||document.querySelector('script[src*="mk-sdk"]')||document.querySelector('script[src*="mk-pixel"]')}catch(i){}let e=i=>{try{return t&&t.getAttribute(i)}catch(c){return null}},r=e("data-mk-project")||e("data-mk-client")||window.__MK&&(window.__MK.projectId||window.__MK.clientSlug)||null,n=e("data-mk-product")||window.__MK&&window.__MK.product||"mk-fashion",o=e("data-mk-collector")||window.__MK&&window.__MK.collectorUrl||vr.collectorUrl||wt.collectorUrl;return $={projectId:r,product:n,collectorUrl:o,appUrl:window.__MK&&window.__MK.appUrl||wt.appUrl,apiUrl:window.__MK&&window.__MK.apiUrl||wt.apiUrl,debug:!!(e("data-mk-debug")!==null||window.__MK&&window.__MK.debug||/[?&]mkdebug\b/.test(location.search)),observe:!!(window.__MK&&window.__MK.observe),forceButton:!!(window.__MK&&window.__MK.forceButton),anchor:window.__MK&&window.__MK.anchor||null,cartRedirect:!(window.__MK&&window.__MK.cartRedirect===!1),cartBehavior:window.__MK&&window.__MK.cartBehavior||null,cartOpenSelector:window.__MK&&window.__MK.cartOpenSelector||null,autoTrack:e("data-mk-no-autotrack")===null,batchIntervalMs:window.__MK&&window.__MK.batchIntervalMs||8e3,batchMaxSize:window.__MK&&window.__MK.batchMaxSize||20,engagementIntervalMs:15e3},$}function h(){return $||xt()}function f(...t){let e=h();e&&e.debug&&typeof console!="undefined"&&console.log("[mk-sdk]",...t)}var ce="_mk_vid",ae="_mk_sid",K=null,H=null;function Y(){return typeof crypto!="undefined"&&crypto.randomUUID?crypto.randomUUID():"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,t=>{let e=Math.random()*16|0;return(t==="x"?e:e&3|8).toString(16)})}function le(){if(K)return K;try{let t=localStorage.getItem(ce);return t||(t="v_"+Y(),localStorage.setItem(ce,t)),K=t,t}catch(t){return K="v_"+Y(),K}}function se(){if(H)return H;try{let t=sessionStorage.getItem(ae);return t||(t="s_"+Y(),sessionStorage.setItem(ae,t)),H=t,t}catch(t){return H="s_"+Y(),H}}var ue=[/email/i,/e-?mail/i,/cpf/i,/cnpj/i,/phone/i,/telefone/i,/celular/i,/address/i,/endereco/i,/cep/i,/zip/i,/card/i,/cartao/i,/cvv/i,/password/i,/senha/i,/token/i,/\bnome\b/i,/fullname/i,/firstname/i,/lastname/i,/sobrenome/i,/birth/i,/nascimento/i,/rg\b/i],de={imageUrl:1,image:1,thumbnail:1,photo:1,imageBase64:1,src:1},bt=2e3;function pe(t){for(let e=0;e<ue.length;e++)if(ue[e].test(t))return!0;return!1}function fe(t){if(!t||typeof t!="object"||Array.isArray(t))return typeof t=="string"&&t.length>bt?t.slice(0,200)+"...[truncated "+t.length+"B]":t;let e={};for(let r in t){if(!Object.prototype.hasOwnProperty.call(t,r)||pe(r))continue;let n=t[r];if(de[r]){e[r+"Present"]=!!n;continue}if(typeof n=="string"&&n.length>bt){e[r]=n.slice(0,200)+"...[truncated "+n.length+"B]";continue}if(n&&typeof n=="object"&&!Array.isArray(n)){e[r]=kr(n);continue}e[r]=n}return e}function kr(t){let e={};for(let r in t){if(!Object.prototype.hasOwnProperty.call(t,r)||pe(r))continue;let n=t[r];if(de[r]){e[r+"Present"]=!!n;continue}if(typeof n=="string"&&n.length>bt){e[r]=n.slice(0,200)+"...[truncated]";continue}e[r]=n}return e}var Z=[],_t=null,M=null,Sr=["off","pdp_tryon","pdp","all","tryon_engaged"],V,Ct=null,Q="unknown",B=[],j=null;function he(){let t=h();return"mk_engaged_"+(t&&t.projectId||"")}function vt(){if(j!==null)return j;try{j=localStorage.getItem(he())==="1"}catch(t){j=!1}return j}function ye(){if(!vt()){j=!0;try{localStorage.setItem(he(),"1")}catch(t){}tt(!1)}}var Tr=/^purchase$/;function ge(t,e){if(V===void 0)return"hold";if(V==="off")return"drop";if(V==="all"||e&&Tr.test(e))return"collect";switch(V){case"pdp":return t==="pdp"?"collect":"drop";case"tryon_engaged":if(vt())return"collect";case"pdp_tryon":return t!=="pdp"?"drop":Q==="available"?"collect":Q==="unavailable"?"drop":"hold";default:return"collect"}}function tt(t){if(!B.length)return;let e=[];for(let r of B){let n=ge(r._pt,r.name);n==="collect"?be(r.name,r.params,r.ts):n==="hold"&&!t&&e.push(r)}B=e}function kt(t){V=Sr.indexOf(t)>=0?t:"all",tt(!1)}function we(t){Q=t==="available"?"available":"unavailable",tt(!1)}function xe(t){tt(!0),M=t,Ct=t&&t.pageType||null,Q="unknown"}function u(t,e,r){if(!h().projectId){(u._pre=u._pre||[]).push({name:t,params:e,ts:r||Date.now()}),u._pre.length>50&&u._pre.shift();return}if(u._pre&&u._pre.length){let o=u._pre;u._pre=[];for(let i of o)me(i.name,i.params,i.ts)}me(t,e,r)}function me(t,e,r){let n=ge(Ct,t);if(n==="collect"){be(t,e,r);return}if(n==="drop"){f("descartado (escopo)",t);return}B.push({name:t,params:e,ts:r||Date.now(),_pt:Ct}),B.length>300&&B.shift()}function be(t,e,r){let n=h(),o=fe(e||{}),i="page_"+Ar(t);if(Z.push({name:i,ts:r||Date.now(),params:o}),f("queued",t,o),n.observe)try{window.postMessage({__mkpixel:!0,event:{name:i,params:o},site:M?{pageType:M.pageType,platform:M.platform,url:M.url}:null},"*")}catch(c){}if(Z.length>=n.batchMaxSize){I();return}_t||(_t=setTimeout(()=>{_t=null,I()},n.batchIntervalMs))}function Ar(t){if(typeof t!="string"||!t)return"unknown";let e=t.replace(/^on/,"");return e=e.replace(/[A-Z]/g,(r,n)=>(n>0?"_":"")+r.toLowerCase()),e.indexOf("page_")===0&&(e=e.slice(5)),e}function I(t){if(Z.length===0)return;let e=h();if(!e.projectId||!e.collectorUrl)return;let r=Z.splice(0,50),n=JSON.stringify({product:e.product||void 0,visitorId:le(),sessionId:se(),engaged:vt()||void 0,events:r,site:M||void 0}),o=e.collectorUrl+"/v1/track";try{fetch(o,{method:"POST",keepalive:!0,headers:{"Content-Type":"application/json","X-MK-Project-Id":e.projectId},body:n}).catch(()=>{})}catch(i){try{navigator.sendBeacon&&navigator.sendBeacon(o+"?projectId="+encodeURIComponent(e.projectId),new Blob([n],{type:"text/plain"}))}catch(c){}}}function _e(){try{window.addEventListener("pagehide",()=>I(!0)),window.addEventListener("beforeunload",()=>I(!0)),document.addEventListener("visibilitychange",()=>{document.hidden&&I(!0)})}catch(t){}}function L(t){let e=[];try{let r=document.querySelectorAll('script[type="application/ld+json"]');for(let n of r){let o;try{o=JSON.parse(n.textContent)}catch(c){continue}let i=[];Array.isArray(o)?i.push(...o):o["@graph"]?i.push(...o["@graph"]):i.push(o);for(let c of i){if(!c||!c["@type"])continue;let a=Array.isArray(c["@type"])?c["@type"]:[c["@type"]];(!t||t.some(l=>a.includes(l)))&&e.push(c)}}}catch(r){}return e}var Ce=["off","pdp_tryon","pdp","all","tryon_engaged"],Lr="all",Er=30*60*1e3,N=null;function O(){if(N)return N;let t=h();return!t.projectId||!t.apiUrl?(N=Promise.resolve(null),N):(N=fetch(t.apiUrl+"/projects/"+t.projectId).then(e=>e.ok?e.json():null).then(e=>e&&e.project||e||null).catch(()=>null),N)}function ve(t){let e=t&&t.analytic&&t.analytic.scope;return Ce.indexOf(e)>=0?e:Lr}var ke=t=>"mk_scope_"+t;function Se(t){try{let e=localStorage.getItem(ke(t));if(!e)return null;let r=JSON.parse(e);return!r||typeof r.exp!="number"||r.exp<Date.now()?null:Ce.indexOf(r.scope)>=0?r.scope:null}catch(e){return null}}function Te(t,e){try{localStorage.setItem(ke(t),JSON.stringify({scope:e,exp:Date.now()+Er}))}catch(r){}}var At={};v(At,{addToCart:()=>$r,detect:()=>Dr,getCartSummary:()=>Fr,id:()=>Or,openCartDrawer:()=>Kr,resolveSku:()=>Ur,skipRedirect:()=>qr});var rt={};v(rt,{addToCart:()=>Pr,detect:()=>Rr,getCartSummary:()=>Tt,id:()=>Ir,openCartDrawer:()=>Nr,resolveSku:()=>St});var Ir="shopify";function Rr(){return!!(window.Shopify||window.ShopifyAnalytics)}function St(){let t=window;return t.ShopifyAnalytics&&t.ShopifyAnalytics.meta&&t.ShopifyAnalytics.meta.product?{value:String(t.ShopifyAnalytics.meta.product.id),source:"shopify"}:null}var et=t=>String(t==null?"":t).trim().toLowerCase();async function Pr({size:t,color:e,sku:r,quantity:n}){let o=(location.pathname.split("/products/")[1]||"").split(/[?#]/)[0];if(!o)throw new Error("shopify: sem handle de produto na URL (n\xE3o \xE9 PDP?)");let c=(await fetch("/products/"+o+".js").then(d=>d.json())).variants||[],a=d=>[d.option1,d.option2,d.option3].concat(String(d.title||"").split("/")).map(et).filter(Boolean),l=(d,S)=>a(d).indexOf(et(S))>=0,p=d=>(!t||l(d,t))&&(!e||l(d,e)),m=null;if((t||e)&&(m=c.find(d=>p(d)&&d.available)||c.find(p)),!m&&r&&(m=c.find(d=>et(d.sku)===et(r))),m||(m=c.find(d=>d.available)||c[0]),!m)throw new Error("shopify: variante n\xE3o encontrada");let g=Ae(),s=null;if(g&&typeof g.getSectionsToRender=="function")try{s=g.getSectionsToRender().map(d=>({id:d.id,selector:d.selector||"#"+d.id})).filter(d=>d.id)}catch(d){}let y={items:[{id:m.id,quantity:n||1}]};s&&s.length&&(y.sections=s.map(d=>d.id).join(","),y.sections_url=location.pathname);let x=await fetch("/cart/add.js",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(y)});if(!x.ok)throw new Error("shopify: /cart/add.js HTTP "+x.status);let b=await x.json().catch(()=>({}));return g&&s&&b.sections&&jr(g,s,b.sections),{platform:"shopify",variantId:m.id,size:m.title,sku:m.sku||null}}function Ae(){return document.querySelector("cart-drawer, cart-notification")}function jr(t,e,r){for(let n of e){let o=r[n.id];if(o)try{let i=null;if(typeof t.getSectionInnerHTML=="function")i=t.getSectionInnerHTML(o,n.selector);else{let a=new DOMParser().parseFromString(o,"text/html").querySelector(n.selector);i=a?a.innerHTML:null}let c=document.querySelector(n.selector);c&&i!=null&&(c.innerHTML=i)}catch(i){}}}async function Tt(){try{let t=await fetch("/cart.js",{headers:{Accept:"application/json"}}).then(e=>e.json());return{value:(Number(t.total_price)||0)/100,itemCount:Number(t.item_count)||0,currency:t.currency||null}}catch(t){return null}}var Mr=["[data-cart-drawer-toggle]",'[data-action="open-cart-drawer"]','[data-action="open-cart"]',".js-cart-drawer-open",".js-drawer-open-cart",".cart-drawer-toggle",".js-cart-toggle",'[aria-controls="CartDrawer"]','[aria-controls="cart-drawer"]',"#cart-icon-bubble","#lk-cart-icon",".header__cart",".site-header__cart",".cart-link",".header-cart",'a[href="/cart"]','a[href$="/cart"]'];function Br(t){try{let e=t.getBoundingClientRect();return e.width>0&&e.height>0&&getComputedStyle(t).visibility!=="hidden"}catch(e){return!1}}function Nr(){let t=Ae();if(t&&typeof t.open=="function")return setTimeout(()=>{try{t.open()}catch(r){}},200),!0;let e=null;for(let r of Mr)try{if(e=[...document.querySelectorAll(r)].find(Br),e)break}catch(n){}return e?(setTimeout(()=>{try{e.click()}catch(r){}},300),!0):!1}var Or="zerezes",qr=!0;function Dr(){try{if(!(window.Shopify||window.ShopifyAnalytics))return!1;let t=window.Shopify&&window.Shopify.shop||"";return/(^|\.)zerezes\./i.test(location.hostname)||/cs-zerezes/i.test(t)}catch(t){return!1}}var Ur=St,Fr=Tt;function zr(){let t=[...document.querySelectorAll(".lens-selection__button, [data-has-lens-basket]")];return t.find(e=>{let r=e.getBoundingClientRect();return r.width>0&&r.height>0})||t[0]||null}async function $r(){let t=zr();if(!t)throw new Error("zerezes: bot\xE3o de sele\xE7\xE3o de lentes n\xE3o encontrado");try{window.postMessage({source:"mkfashion-app",action:"close_request"},"*")}catch(e){}return setTimeout(()=>{try{t.click()}catch(e){}},250),{platform:"zerezes",nativeFlow:"lens-selection"}}function Kr(){return!0}var Et={};v(Et,{addToCart:()=>Wr,detect:()=>Vr,getCartSummary:()=>Gr,id:()=>Hr,resolveSku:()=>Jr});var Hr="hybris";function Vr(){return!!(window.ACC&&window.ACC.config)}function Jr(){let t=(location.pathname||"").match(/\/p\/([^/?#]+)/);return t&&t[1]?{value:decodeURIComponent(t[1]),source:"hybris/url"}:null}var Le=t=>String(t==null?"":t).trim().toLowerCase();async function Wr({size:t,quantity:e}){let r=[...document.querySelectorAll('.js-product-select-size, a[data-code], [class*="select-size"]')].filter(y=>y.getAttribute&&y.getAttribute("data-code")),n=t?r.find(y=>Le(y.textContent)===Le(t)):null;n||(n=r.find(y=>y.offsetParent!==null)||r[0]);let o=n&&n.getAttribute("data-code");if(!o)throw new Error("hybris: variante (data-code) n\xE3o encontrada");let i=document.getElementById("product--add-to-cart-form")||document.querySelector('form[action*="/cart/add"]'),c=i&&i.querySelector('[name="CSRFToken"]'),a=c&&c.value,l=i&&i.getAttribute("action")||"/cart/add";if(!a)throw new Error("hybris: CSRFToken n\xE3o encontrado");let p=new URLSearchParams;p.set("productCodePost",o),p.set("qty",String(e||1)),p.set("CSRFToken",a);let m=await fetch(l,{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded","X-Requested-With":"XMLHttpRequest"},body:p.toString()});if(!m.ok)throw new Error("hybris: "+l+" HTTP "+m.status);let g=null,s=null;try{let y=await m.clone().json(),x=y&&y.cartData;x&&(g=Lt(x.total!=null?x.total:x.totalPrice),s=x.totalUnitCount!=null?Number(x.totalUnitCount):Array.isArray(x.products)?x.products.length:null)}catch(y){}return{platform:"hybris",productCode:o,size:n.textContent.trim(),cartValue:g,itemCount:s,currency:"BRL"}}function Lt(t){if(t==null||t==="")return null;if(typeof t=="number")return Number.isFinite(t)?t:null;let e=String(t).replace(/[^\d.,]/g,"");if(!e)return null;let r=e.indexOf(",")>e.indexOf(".")?parseFloat(e.replace(/\./g,"").replace(",",".")):parseFloat(e.replace(/,/g,""));return Number.isFinite(r)?r:null}async function Gr(){try{let t=await fetch("/cart/async?nocache="+Date.now(),{headers:{"X-Requested-With":"XMLHttpRequest"}}).then(c=>c.ok?c.text():"");if(!t)return null;let e=new DOMParser().parseFromString(t,"text/html"),r=e.querySelector(".minicart-total .price")||e.querySelector(".floating-cart--cart-total"),n=r?Lt(r.textContent):null,o=e.querySelector(".mini-badge"),i=o?parseInt(o.textContent,10)||0:null;return n==null&&i==null?null:{value:n,itemCount:i,currency:"BRL"}}catch(t){}try{let t=[".minicart-total .price",".js-cart-total",".cart-total",".total-price",".grand-total"];for(let e of t){let r=document.querySelector(e),n=r&&Lt(r.textContent);if(n)return{value:n,itemCount:null,currency:"BRL"}}}catch(t){}return null}var It={};v(It,{addToCart:()=>Qr,detect:()=>Yr,getCartSummary:()=>tn,id:()=>Xr,resolveSku:()=>Zr});var Xr="vtex";function Yr(){return!!(window.vtex||window.vtexjs||window.vtxctx||window.skuJson_0)}function Zr(){let t=window;return t.vtxctx&&t.vtxctx.skus&&t.vtxctx.skus[0]?{value:String(t.vtxctx.skus[0]),source:"vtex/vtxctx"}:t.skuJson_0&&t.skuJson_0.skus&&t.skuJson_0.skus[0]?{value:String(t.skuJson_0.skus[0].sku),source:"vtex/skuJson"}:null}var nt=t=>String(t==null?"":t).trim().toLowerCase();async function Qr({size:t,quantity:e}){let r=window.skuJson_0&&window.skuJson_0.skus||[];if(!r.length)throw new Error("vtex: skuJson_0 indispon\xEDvel");let n=i=>nt(i.skuname)===nt(t)||i.dimensions&&Object.values(i.dimensions).some(c=>nt(c)===nt(t)),o=t?r.find(i=>n(i)&&i.available)||r.find(n):null;if(o||(o=r.find(i=>i.available)||r[0]),!o)throw new Error("vtex: variante n\xE3o encontrada");if(window.vtexjs&&window.vtexjs.checkout&&window.vtexjs.checkout.addToCart)return await window.vtexjs.checkout.addToCart([{id:parseInt(o.sku,10),quantity:e||1,seller:"1"}]),{platform:"vtex",skuId:o.sku,size:o.skuname||t};throw new Error("vtex: vtexjs.checkout indispon\xEDvel")}function tn(){try{let t=window.vtexjs&&window.vtexjs.checkout&&window.vtexjs.checkout.orderForm;if(t&&typeof t.value=="number"){let e=t.storePreferencesData&&t.storePreferencesData.currencyCode||"BRL",r=(t.items||[]).reduce((n,o)=>n+(Number(o.quantity)||1),0);return{value:t.value/100,itemCount:r,currency:e}}}catch(t){}return null}var Rt={};v(Rt,{addToCart:()=>cn,detect:()=>nn,getCartSummary:()=>ln,id:()=>en,openCartDrawer:()=>an,resolveSku:()=>on,skipRedirect:()=>rn});var en="nuvemshop",rn=!0;function nn(){return!!(window.LS&&(window.LS.cart||window.LS.addToCart))}function on(){try{let t=window.LS,e=t&&t.variants||[],r=document.querySelector('[name="variant_id"]'),n=r&&r.value?e.find(o=>String(o.id)===String(r.value)):null;if(n||(n=e.find(o=>o.available!==!1&&o.sku)||e.find(o=>o.sku)||e[0]),n&&n.sku)return{value:String(n.sku),source:"nuvemshop/variant"};if(t&&t.product&&t.product.sku)return{value:String(t.product.sku),source:"nuvemshop/product"}}catch(t){}return null}var ot=t=>String(t==null?"":t).trim().toLowerCase();async function cn({size:t,quantity:e}){let r=document.getElementById("product_form")||document.querySelector('.js-product-form, form[action*="/comprar"]');if(!r)throw new Error("nuvemshop: #product_form n\xE3o encontrado");t&&r.querySelectorAll('select[name^="variation"]').forEach(c=>{let a=[...c.options].find(l=>ot(l.textContent).includes(ot(t))||ot(l.value)===ot(t));a&&(c.value=a.value,c.dispatchEvent(new Event("change",{bubbles:!0})))});let n=r.querySelector('[name="quantity"]');n&&e&&(n.value=String(e)),await new Promise(c=>setTimeout(c,400));let o=r.querySelector(".js-addtocart")||document.querySelector(".js-addtocart");return o?o.click():typeof r.requestSubmit=="function"?r.requestSubmit():r.submit(),await new Promise(c=>setTimeout(c,1200)),{platform:"nuvemshop",variantId:(r.querySelector('[name="variant_id"]')||{}).value||null}}function an(){try{if([...document.querySelectorAll('.modal-cart, #ajax-cart-details, [class*="cart-modal" i], [class*="modal-cart" i]')].find(n=>n.getBoundingClientRect().width>0))return!0;let e=[...document.querySelectorAll(".js-toggle-cart")],r=e.find(n=>{let o=n.getBoundingClientRect();return o.width>0&&o.height>0})||e[0];if(r)return setTimeout(()=>{try{r.click()}catch(n){}},300),!0}catch(t){}return!1}function ln(){try{let t=window.LS,e=t&&t.cart;if(!e)return null;let r=t.currency&&t.currency.code||"BRL",n=Array.isArray(e.items)?e.items.reduce((i,c)=>i+(Number(c.quantity)||1),0):Number(e.items)||0,o=e.subtotal!=null?Number(e.subtotal):null;return{value:o!=null?o/100:null,itemCount:n,currency:r}}catch(t){return null}}var Pt={};v(Pt,{addToCart:()=>fn,detect:()=>dn,getCartSummary:()=>mn,id:()=>sn,openCartDrawer:()=>yn,resolveSku:()=>pn,skipRedirect:()=>un});var sn="wake",un=!0;function dn(){return!!(window.StorefrontClient||typeof window.addOrCreateCheckout=="function"||typeof window.addToCartClick=="function")}function pn(){try{let t=document.querySelector('input[name="product-id"], [data-product-id]'),e=t?t.value||t.getAttribute("data-product-id"):null;if(e)return{value:String(e).trim(),source:"wake/product-id"};let r=(location.pathname||"").match(/-(\d+)\/?(?:[?#]|$)/);if(r)return{value:r[1],source:"wake/url"}}catch(t){}return null}var Ee=t=>String(t==null?"":t).trim().toLowerCase();async function fn({size:t,quantity:e}){if(t){let i=[...document.querySelectorAll("input[attribute-value]")].find(c=>Ee(c.getAttribute("attribute-value"))===Ee(t));if(i){try{i.checked=!0}catch(c){}try{typeof window.selectAttribute=="function"?window.selectAttribute(i):i.click()}catch(c){}await new Promise(c=>setTimeout(c,600))}}let r=document.querySelector('[name="product-variant-id"]'),n=r&&r.value;if(!n)throw new Error("wake: product-variant-id n\xE3o encontrado");if(typeof window.addOrCreateCheckout!="function")throw new Error("wake: addOrCreateCheckout indispon\xEDvel");if(!await window.addOrCreateCheckout([{productVariantId:Number(n),quantity:e||1,customization:[]}]))throw new Error("wake: addOrCreateCheckout retornou false");return{platform:"wake",productVariantId:n,size:t||null}}function Ie(t){if(t==null)return null;let e=String(t).match(/([\d.]+,\d{2}|\d+(?:\.\d{2})?)/),r=(e?e[1]:String(t)).replace(/[^\d.,]/g,"");if(!r)return null;let n=r.indexOf(",")>r.indexOf(".")?parseFloat(r.replace(/\./g,"").replace(",",".")):parseFloat(r.replace(/,/g,""));return Number.isFinite(n)&&n>0?n:null}async function mn(){try{let t=()=>{let o=document.querySelector(".mc-subtotal__value")||document.querySelector(".mc-subtotal");return o?Ie(o.textContent):null},e=t();if(e==null&&typeof window.loadMiniCart=="function"){try{window.loadMiniCart()}catch(o){}await new Promise(o=>setTimeout(o,700)),e=t()}e==null&&(e=hn());let r=document.querySelector('.mc-products__count, [class*="mc-"][class*="count" i], [class*="minicart" i] [class*="count" i]'),n=r&&parseInt(String(r.textContent||"").replace(/\D/g,""),10)||null;if(e!=null)return{value:e,itemCount:n,currency:"BRL"}}catch(t){}return null}function hn(){try{let t=document.querySelector('[class*="mini-cart" i], .mini-cart')||document;for(let e of t.querySelectorAll("div,span,p,li,strong,b")){if(e.children.length>2)continue;let r=(e.textContent||"").replace(/\s+/g," ").trim();if(!(!/R\$/.test(r)||/frete|faltam|gr[aá]tis|desconto|economi/i.test(r))&&/^(sub)?total\b/i.test(r)){let n=Ie(r);if(n)return n}}}catch(t){}return null}function yn(){if(typeof window.setCartDivVisibility!="function")return!1;try{typeof window.loadMiniCart=="function"&&window.loadMiniCart()}catch(t){}return setTimeout(()=>{try{let t=document.querySelector('[class*="mini-cart" i], .mini-cart');if(t&&t.getBoundingClientRect().width>0)return;window.setCartDivVisibility()}catch(t){}},350),!0}var Bt={};v(Bt,{addToCart:()=>_n,cartUrl:()=>xn,detect:()=>bn,getCartSummary:()=>Cn,id:()=>gn,openCartDrawer:()=>vn,skipRedirect:()=>wn});var jt="/api/v2/front",Mt={"Content-Type":"application/json",Accept:"application/json","App-Token":"wapstore"},Re=t=>String(t==null?"":t).trim().toLowerCase(),gn="wapstore",wn=!0,xn="/checkout/carrinho";function bn(){try{if(document.querySelector('script[src*="/tema/"][src*="/dist/assets/"]')||/(?:^|;\s*)produto\/visitado=/.test(document.cookie))return!0}catch(t){}return!1}function Pe(t){if(!t||typeof t!="object")return null;let e=t.subtotal&&t.subtotal.valor;return e==null?null:{value:e,itemCount:t.quantidadeItens!=null?t.quantidadeItens:null,currency:"BRL"}}async function _n({size:t,quantity:e}){let r=await fetch(jt+"/url/product/detail?url="+encodeURIComponent(location.pathname),{headers:Mt}).then(s=>s.json()),n=(r&&(r.produto||r.data||r)||{}).conteudo||{},o=n.atributos&&n.atributos.simples&&n.atributos.simples.valores||[];if(!o.length)throw new Error("wapstore: sem variante de compra (atributos.simples)");let i=t?o.find(s=>Re(s.label)===Re(t)):null;i=i||o.find(s=>s.selecionado)||o.find(s=>(s.estoque||0)>0)||o[0];let c=i&&i.carrinho;if(!c||!c.itens||!c.itens.length)throw new Error("wapstore: variante sem payload de carrinho");let a=c.itens.map(s=>Object.assign({},s,{quantidade:String(e||s.quantidade||1)})),l=await fetch(jt+"/checkout/cart",{method:"POST",headers:Mt,body:JSON.stringify({itens:a,tipo:c.tipo||"produto"})});if(!l.ok)throw new Error("wapstore: add HTTP "+l.status);let p=await l.json().catch(()=>({})),m=Pe(p),g={platform:"wapstore",idProduto:a[0]&&a[0].idProduto,size:i&&i.label||null};return m&&(g.cartValue=m.value,g.itemCount=m.itemCount,g.currency=m.currency),g}async function Cn(){try{let t=await fetch(jt+"/checkout/cart",{headers:Mt}).then(e=>e.json());return Pe(t)}catch(t){}return null}function vn(){try{let t=document.querySelector(".common-sheet.side-cart, .side-cart");if(t&&t.getBoundingClientRect().width>0)return!0;let e=document.querySelector('.button-cart, [class*="button-cart"]');if(e)return e.click(),!0}catch(t){}return!1}var Nt={};v(Nt,{addToCart:()=>In,detect:()=>An,getCartSummary:()=>Rn,id:()=>kn,openCartDrawer:()=>Pn,resolveSku:()=>Ln,skipRedirect:()=>Sn});var kn="linx",Sn=!0;function Tn(t){if(t==null)return null;let e=String(t).match(/([\d.]+,\d{2}|\d+(?:\.\d{2})?)/),r=(e?e[1]:String(t)).replace(/[^\d.,]/g,"");if(!r)return null;let n=r.indexOf(",")>r.indexOf(".")?parseFloat(r.replace(/\./g,"").replace(",",".")):parseFloat(r.replace(/,/g,""));return Number.isFinite(n)&&n>0?n:null}function An(){return typeof window.carrinhoLateral=="function"&&typeof window.addToCart=="function"}function Ln(){try{let t=(location.pathname.match(/-p(\d+)\/?(?:[?#]|$)/)||[])[1];if(t)return{value:t,source:"linx/url-pid"};let e=(String(document.body.className||"").match(/context-product-(\d+)/)||[])[1];if(e)return{value:e,source:"linx/context"}}catch(t){}return null}function En(){let t=[...document.querySelectorAll('.add-to-cart, [data-action="add-to-cart"]')];return t.find(e=>{let r=e.getBoundingClientRect();return r.width>0&&r.height>0})||t[0]||null}async function In(){let t=En();if(!t)throw new Error("linx: bot\xE3o .add-to-cart n\xE3o encontrado");return t.click(),await new Promise(e=>setTimeout(e,1400)),{platform:"linx"}}function Rn(){try{let t=document.querySelector("#mini-cart");if(!t)return null;let e=null;for(let n of t.querySelectorAll("div,span,p,li,strong,b,td")){if(n.children.length>2)continue;let o=(n.textContent||"").replace(/\s+/g," ").trim();if(/^(sub)?total\b/i.test(o)&&/R\$/.test(o)&&(e=Tn(o),e))break}if(e==null)return null;let r=(t.textContent||"").match(/cont[ée]m\s+(\d+)\s+ite/i);return{value:e,itemCount:r?parseInt(r[1],10):null,currency:"BRL"}}catch(t){}return null}function Pn(){try{let e=typeof window.carrinhoLateral=="function"?window.carrinhoLateral():null;if(e&&typeof e.openCart=="function"){try{typeof e.fetchHTML=="function"&&e.fetchHTML()}catch(r){}return setTimeout(()=>{try{e.openCart()}catch(r){}},400),!0}}catch(e){}let t=document.querySelector("#mini-cart");if(t){try{t.classList.add("open")}catch(e){}return!0}return!1}var qt={};v(qt,{addToCart:()=>J,detect:()=>Mn,id:()=>jn,resolveSku:()=>Ot});var jn="generic";function Mn(){return!0}function Ot(){let t=L(["Product"]);if(t[0]){let e=t[0],r=e.sku||e.mpn||e.gtin13||e.productID;if(r)return{value:String(r),source:"jsonld"}}try{let e=document.querySelector('[itemprop="sku"]');if(e){let r=e.getAttribute("content")||(e.textContent||"").trim();if(r)return{value:String(r),source:"microdata"}}}catch(e){}try{let e=window.konfidencyData;if(e&&e.product&&e.product.variants&&e.product.variants[0])return{value:String(e.product.variants[0]),source:"konfidency"}}catch(e){}return null}var Bn=/(adicionar\s*(à|a|ao)?\s*(sacola|carrinho|cesta|bolsa))|adicionar ao carrinho|add to (cart|bag)|comprar agora/i,Nn=/continuar|como comprar|lista|desejos|favorito/i;async function J(){let t=document.querySelectorAll("button,[role=button],input[type=submit]");for(let e of t){let r=(e.textContent||e.value||"").replace(/\s+/g," ").trim();if(r&&r.length<40&&Bn.test(r)&&!Nn.test(r))try{return e.click(),{platform:"native-click",clicked:r}}catch(n){}}return{platform:"none",error:"bot\xE3o de carrinho nativo n\xE3o encontrado"}}var Me=[At,rt,Et,It,Rt,Pt,Bt,Nt],On=[["woocommerce",()=>!!(window.wc_add_to_cart_params||window.woocommerce_params)],["lojaintegrada",()=>!!window.LojaIntegrada]],it;function q(){return it||(it=Me.find(t=>{try{return t.detect()}catch(e){return!1}})||qt,it)}function Be(){let t=Me.find(e=>{try{return e.detect()}catch(r){return!1}});if(t)return t.id;for(let[e,r]of On)try{if(r())return e}catch(n){}return null}function D(){let t=q();if(t.id!=="generic"&&t.resolveSku)try{let e=t.resolveSku();if(e)return e}catch(e){}return Ot()}async function Ne(t){t=t||{};let e={size:t.size||t.selectedSize||t.tamanho||null,color:t.color||t.selectedColor||t.colour||t.cor||null,sku:t.sku||t.identifier||t.selectedIdentifier||null,quantity:t.quantity||1},r=q();try{let n=r.addToCart?await r.addToCart(e):await J(e);return f("cart: adicionado",n),Dt(),je(r,n,e.sku),n}catch(n){f('cart: adapter "'+r.id+'" falhou \u2014 fallback clique nativo',n&&n.message);let o=await J(e);return Dt(),je(r,o,e.sku),o}}async function je(t,e,r){try{let n=null;e&&e.cartValue!=null?n={value:e.cartValue,itemCount:e.itemCount!=null?e.itemCount:null,currency:e.currency||null}:t&&t.getCartSummary&&(n=await t.getCartSummary()),n&&n.value!=null&&(n.value>0||(n.itemCount||0)>0)&&u("cart_value",{via:"tryon",value:n.value,itemCount:n.itemCount!=null?n.itemCount:null,currency:n.currency||null,sku:r||null})}catch(n){}}async function Ut(){let t=q();if(t&&t.getCartSummary)try{return await t.getCartSummary()}catch(e){}return null}async function Oe(t){t=t||{};let e=q(),r={platform:e.id};try{let n=D();r.sku=n&&n.value||null;let o={size:t.size||null,color:t.color||null,sku:r.sku,quantity:t.quantity||1};r.added=e.addToCart?await e.addToCart(o):await J(o),Dt();try{await Ft()}catch(i){}r.cart=await Ut(),r.ok=!0}catch(n){r.ok=!1,r.error=n&&n.message||String(n)}return r}function Dt(){["cart:refresh","cart:updated","cart:build","ajaxProduct:added","product:added-to-cart"].forEach(t=>{try{document.dispatchEvent(new CustomEvent(t))}catch(e){}})}async function Ft(){let t=q(),e=h(),r=null;try{r=await O()}catch(i){}let n=r&&r.template&&r.template.cart||r&&r.cart||{},o=n.afterAdd||n.behavior||e.cartBehavior;if(o||(o=e.cartRedirect===!1?"none":"auto"),o==="none")return!1;if(o==="auto"||o==="drawer"){let i=n.openSelector||e.cartOpenSelector;if(i){let c=document.querySelector(i);if(c)return setTimeout(()=>{try{c.click()}catch(a){}},300),!1}else if(t&&t.openCartDrawer){let c=!1;try{c=t.openCartDrawer()}catch(a){}if(c)return!1}}return!0}function qe(){let t=q();if(t&&t.skipRedirect)return;let e=t&&t.cartUrl||"/cart";setTimeout(()=>{try{window.location.href=e}catch(r){}},250)}var qn=/\/(thank[_-]?you|orders?\/|pedido[_-]?(confirmado|realizado|finalizado|sucesso)|sucesso|order[_-]?confirmation|compra[_-]?(finalizada|concluida)|orderplaced)/i,Dn=/\/(my[_-]?account|minha[_-]?conta|account|conta|customer|cliente|profile|perfil|wishlist|favoritos)(\/|$)/i,Un=/\/checkout/i,Fn=/\/(cart|carrinho|sacola|bag)(\/|$|\?|#)/i,zn=/\/(products?|produtos?|p)\//i,$n=/\/(collections?|categoria|categorias|c|departamento)\//i,Kn=/\/(search|busca|s)(\/|\?)/i;function De(){try{if(window.__mkPageType)return window.__mkPageType}catch(r){}let t=(location.pathname||"").toLowerCase(),e=Dn.test(t);try{let r=L();for(let n of r){let o=Array.isArray(n["@type"])?n["@type"]:[n["@type"]];if((o.includes("Order")||o.includes("Invoice"))&&!e)return"purchase";if(o.includes("Product"))return"pdp";if(o.includes("SearchResultsPage"))return"search";if(o.includes("CollectionPage")||o.includes("ItemList"))return"category"}}catch(r){}return t==="/"||t===""||t==="/home"||t==="/index.html"?"home":qn.test(t)&&!e?"purchase":Un.test(t)?"checkout":Fn.test(t)?"cart":zn.test(t)?"pdp":$n.test(t)?"category":Kn.test(t)?"search":"other"}function Ue(t){let e=null;try{let r=new URLSearchParams(location.search),n=["utm_source","utm_medium","utm_campaign","utm_term","utm_content"],o={};for(let i of n){let c=r.get(i);c&&(o[i.replace("utm_","")]=c)}Object.keys(o).length&&(e=o)}catch(r){}return{url:location.href,pathname:location.pathname,referrer:document.referrer||null,title:document.title||null,pageType:t,utm:e,userAgent:navigator.userAgent,language:navigator.language,viewport:window.innerWidth+"x"+window.innerHeight,platform:Hn()}}function Hn(){return Be()}var zt={},Vn=null,W=0,Fe=!1;function ze(t){Fe||(Fe=!0,$e(t),Jn(),Wn(),Gn(),Xn(),Yn(t))}function $e(t){zt={};let e=De(),r=Ue(e);if(xe(r),u("view",{url:location.href,pathname:location.pathname,referrer:document.referrer||null,title:document.title||null,pageType:e}),typeof t=="function")try{t(e,r)}catch(n){}}function Jn(){if(!document.body)return;let t={A:1,BUTTON:1,INPUT:1,SELECT:1,TEXTAREA:1},e=0;document.body.addEventListener("click",r=>{try{let n=Date.now();if(n-e<100)return;e=n;let o=r.target;for(let a=0;a<5&&o&&o!==document.body&&!(t[o.tagName]||o.getAttribute&&o.getAttribute("role")==="button");a++)o=o.parentElement;if(!o||!t[o.tagName]&&!(o.getAttribute&&o.getAttribute("role")==="button"))return;let i={tag:o.tagName},c=o.tagName==="INPUT"||o.tagName==="TEXTAREA"?o.value:o.textContent;i.text=(c||"").replace(/\s+/g," ").trim().substring(0,100),o.href&&(i.href=String(o.href).substring(0,500)),o.id&&(i.id=o.id),o.className&&typeof o.className=="string"&&(i.classes=o.className.trim().substring(0,200)),u("click",i)}catch(n){}},{capture:!0,passive:!0})}function Wn(){let t=[25,50,75,100],e=null,r=()=>{try{let n=window.scrollY||document.documentElement.scrollTop||0,o=Math.max(document.body&&document.body.scrollHeight||0,document.documentElement&&document.documentElement.scrollHeight||0);if(o<=0)return;let i=Math.min(100,Math.floor((n+window.innerHeight)/o*100));for(let c of t)i>=c&&!zt[c]&&(zt[c]=!0,u("scroll_depth",{depth:c}))}catch(n){}};r(),window.addEventListener("scroll",()=>{e||(e=setTimeout(()=>{e=null,r()},250))},{passive:!0})}function Gn(){document.body&&document.body.addEventListener("submit",t=>{try{let e=t.target;if(!e||e.tagName!=="FORM"||e.querySelector('input[type="password"], input[name*="card"], input[name*="cpf"]'))return;let r="other",n=(e.className||"").toLowerCase(),o=(e.action||"").toLowerCase();e.querySelector('input[type="search"], input[name="q"], input[name="s"]')?r="search":/newsletter|subscribe|mailchimp/.test(n+o)?r="newsletter":/contact|contato/.test(n+o)&&(r="contact"),u("form_submit",{form_id:e.id||"",form_type:r})}catch(e){}},{capture:!0})}function Xn(){let t=h();W=Date.now(),Vn=setInterval(()=>{if(document.hidden)return;let e=Date.now(),r=Math.round((e-W)/1e3);W=e,r>0&&r<60&&u("engagement",{url:location.pathname,dwellSec:r})},t.engagementIntervalMs),document.addEventListener("visibilitychange",()=>{if(document.hidden){let e=Math.round((Date.now()-W)/1e3);e>0&&e<600&&u("engagement",{url:location.pathname,dwellSec:e})}W=Date.now()})}function Yn(t){let e=location.href,r=()=>{location.href!==e&&(e=location.href,$e(t))};try{let n=history.pushState,o=history.replaceState;history.pushState=function(){n.apply(this,arguments),setTimeout(r,0)},history.replaceState=function(){o.apply(this,arguments),setTimeout(r,0)},window.addEventListener("popstate",r)}catch(n){}}function Kt(){let t=D(),e=L(["Product"]);if(e.length>0){let o=e[0],i=Array.isArray(o.offers)?o.offers[0]:o.offers;return{sku:t?t.value:o.sku||o.mpn||o.gtin13||o.productID||null,skuSource:t?t.source:null,name:typeof o.name=="string"?o.name:null,price:i&&parseFloat(i.price||i.lowPrice)||null||Ke(),currency:i?i.priceCurrency:null,brand:o.brand?typeof o.brand=="string"?o.brand:o.brand.name:null,category:o.category||null}}let r=o=>{let i=document.querySelector('meta[property="og:'+o+'"], meta[property="product:'+o+'"]');return i?i.getAttribute("content"):null},n=o=>{let i=document.querySelector('[itemprop="'+o+'"]');return i?i.getAttribute("content")||(i.textContent||"").trim():null};if(t||r("type")==="product"||r("price:amount")||n("name")){let o=n("price")||r("price:amount"),i=o&&parseFloat(String(o).replace(",","."))||null;return{sku:t?t.value:null,skuSource:t?t.source:null,name:n("name")||r("title")||document.title||null,price:(i&&i>0?i:null)||Ke(),currency:n("priceCurrency")||r("price:currency")||null,brand:n("brand")||null,category:null}}return null}function Ke(){try{let t=window.dataLayer;if(!Array.isArray(t))return null;for(let e=t.length-1;e>=0;e--){let r=t[e];if(!r||typeof r!="object")continue;let n=r.ecommerce||r,o=n&&n.items||null,i=n&&n.detail&&n.detail.products||n&&n.products||r.products||null,c=Array.isArray(o)&&o[0]&&o[0].price||Array.isArray(i)&&i[0]&&i[0].price||null,a=$t(c!=null?String(c):"");if(a)return a}}catch(t){}return null}function R(){try{let t=location.pathname+location.search,e=t.match(/order[_-]?confirmation\/([\w-]+)/i)||t.match(/[?&]order[_-]?id=([\w-]+)/i)||t.match(/\/orders?\/([\w-]{4,})/i)||t.match(/pedido[_-]?(?:confirmado|realizado|finalizado)?\/([\w-]+)/i);return e?e[1]:null}catch(t){return null}}function Ht(){let t=L(["Order","Invoice"]);if(t.length>0){let o=t[0],i=o.totalPaymentDue?parseFloat(o.totalPaymentDue.price):parseFloat(o.price||o.total);return{orderId:o.orderNumber||o.confirmationNumber||o.identifier||R(),revenue:Number.isFinite(i)?i:null,currency:o.totalPaymentDue&&o.totalPaymentDue.priceCurrency||o.priceCurrency||null,source:"jsonld"}}try{let o=window.Shopify&&window.Shopify.checkout;if(o&&o.total_price!=null){let i=parseFloat(o.total_price);return{orderId:(o.order_id!=null?String(o.order_id):null)||o.token||R(),revenue:Number.isFinite(i)?i:null,currency:o.currency||null,itemCount:Array.isArray(o.line_items)?o.line_items.length:null,source:"shopify"}}}catch(o){}try{if(Array.isArray(window.dataLayer))for(let o=window.dataLayer.length-1;o>=0;o--){let i=window.dataLayer[o],c=i&&i.ecommerce||i&&i.ecommerce_data&&i.ecommerce_data.ecommerce;if(c&&(i.event==="purchase"||c.purchase)){let a=c.purchase&&c.purchase.actionField,l=parseFloat(a&&(a.revenue||a.value)||c.value||c.revenue);return{orderId:a&&(a.id||a.transaction_id)||c.transaction_id||c.transactionId||R(),revenue:Number.isFinite(l)?l:null,currency:c.currency||c.currencyCode||a&&a.currency||null,itemCount:(c.purchase&&c.purchase.products||c.items||c.products||[]).length||null,source:"datalayer"}}}}catch(o){}let e=document.querySelector('meta[property="order:total"], meta[name="order-total"]');if(e&&e.content)return{orderId:R(),revenue:parseFloat(e.content)||null,source:"meta"};let r=Zn();if(r)return r;let n=R();return n?{orderId:n,revenue:null,source:"url"}:null}function Zn(){try{let t=document.querySelector(".orderTotalPrice");if(t){let r=String(t.value||t.getAttribute("value")||t.textContent||"").trim(),n=r.split(/\s+/),o=$t(n.length>1?n[n.length-1]:r);if(o)return{orderId:He(),revenue:o,currency:(n.length>1?n[0]:null)||null,source:"dom"}}let e=[".order-total","#order-total",".total-price",".order__total","[data-order-total]",".summary-total",".grand-total"];for(let r of e){let n=document.querySelector(r);if(n){let o=$t(n.value||n.textContent);if(o)return{orderId:He(),revenue:o,source:"dom"}}}return null}catch(t){return null}}function He(){try{let t=document.querySelector(".orderID");if(t&&(t.value||t.getAttribute("value")))return t.value||t.getAttribute("value");let r=(document.body.innerText||"").match(/(?:pedido|order|n[º°o]\.?)\s*#?\s*([A-Z0-9-]{4,})/i);return r?r[1]:null}catch(t){return null}}function $t(t){if(!t)return null;let e=String(t).replace(/[^\d.,]/g,"");if(!e)return null;let r;e.indexOf(",")>e.indexOf(".")?r=e.replace(/\./g,"").replace(",","."):r=e.replace(/,/g,"");let n=parseFloat(r);return Number.isFinite(n)&&n>0?n:null}function Ve(){let t=L(["ItemList","CollectionPage"]);if(t.length===0)return null;let e=t[0],r=e.itemListElement||e.mainEntity&&e.mainEntity.itemListElement||[],n=[];for(let o of r.slice(0,50)){let i=o.item||o;i&&(i.sku||i.productID||i.name)&&n.push(i.sku||i.productID||i.name)}return n.length>0?{count:n.length,skus:n.slice(0,20)}:null}var Je=!1,ct=[/\b(adicionar|adic\.?|colocar|incluir|jogar)\b.{0,30}\b(carrinho|sacola|sacolinha|bag)\b/i,/\bcomprar\b(?!\s+(em|por|sem))/i,/\bcomprar\s*$/i,/^add\s+to\s+(cart|bag)\b/i,/^buy\s+(now|it|this)\b/i,/^(sacolinha|carrinho|sacola)$/i],Qn=[/^finalizar(\s+(compra|pedido|pagamento))?\b/i,/^(fechar|confirmar)\s+(compra|pedido|pagamento)\b/i,/^pagar(\s+(agora|pedido))?\b/i,/^(complete|place)\s+(purchase|order)\b/i,/^checkout$/i];function G(t,e){for(let r=0;r<t.length;r++)if(t[r].test(e))return!0;return!1}function Xe(t){switch(t){case"pdp":{let e=Kt();u("view_item",e||{sku:null});break}case"category":case"search":{let e=Ve();u("view_item_list",e||{count:0});break}case"cart":Ut().then(e=>u("view_cart",e&&e.value!=null?{value:e.value,itemCount:e.itemCount,currency:e.currency}:{})).catch(()=>u("view_cart",{}));break;case"checkout":u("begin_checkout",{});break;case"purchase":to();break}}var We=500,Ge=16;function to(){let t=!1,e=0,r=(o,i)=>{t||(t=!0,eo(o,i))};try{window.addEventListener("pagehide",()=>r(Ht(),!0),{once:!0})}catch(o){}let n=()=>{if(t)return;let o=Ht();if(o&&o.revenue!=null)return r(o);if(e++>=Ge)return f("purchase: receita n\xE3o apareceu em "+We*Ge+"ms \u2014 emitindo sem valor"),r(o);setTimeout(n,We)};n()}function eo(t,e){if(t&&!t.orderId&&(t.orderId=R()),t&&t.orderId){let r="_mk_purch_"+t.orderId;try{if(sessionStorage.getItem(r)){f("purchase j\xE1 contado",t.orderId);return}sessionStorage.setItem(r,"1")}catch(n){}}else if(Je)return;if(Je=!0,u("purchase",t||{revenue:null,_note:"no_order_data_extracted"}),f("purchase emitido",t),e)try{I(!0)}catch(r){}}function Ye(){if(!document.body)return;let t=0;document.body.addEventListener("click",e=>{try{let r=Date.now();if(r-t<150)return;let n=e.target;for(let a=0;a<5&&n&&n!==document.body&&!(n.tagName==="BUTTON"||n.tagName==="A"||n.getAttribute&&n.getAttribute("role")==="button");a++)n=n.parentElement;if(!n)return;let o=n.tagName!=="A",i=(n.textContent||"").replace(/\s+/g," ").trim();if(!i||i.length>80)return;let c=!1;if((G([ct[0]],i)||o&&G([ct[1]],i)||o&&G([ct[2]],i)||G(ct.slice(3),i))&&(c=!0),c){t=r;let a=Kt();u("add_to_cart",{via:"click",buttonText:i,sku:a?a.sku:null,price:a?a.price:null});return}o&&G(Qn,i)&&(t=r,u("begin_checkout",{via:"click",buttonText:i}))}catch(r){}},{capture:!0,passive:!0})}var at={};v(at,{available:()=>io,id:()=>ro,iframeSrc:()=>oo,modalSize:()=>no,onMounted:()=>co});var ro="mk-fashion",no={width:430,height:800};function oo(t,e){let r=encodeURIComponent(e).replace(/\./g,"%2E");return h().appUrl+"/"+t+"/"+r}async function io(t,e){let r=h().apiUrl+"/availability/"+t+"?sku="+encodeURIComponent(e),n=await fetch(r);if(!n.ok)throw new Error("availability HTTP "+n.status);return n.json()}function co(){}var Vt={};v(Vt,{available:()=>po,id:()=>ao,iframeSrc:()=>uo,modalSize:()=>lo,onMounted:()=>go});var ao="mk-makeup",lo={width:1160,height:700};function so(){return window.__MK&&window.__MK.pulpoarUrl||"https://plugin.pulpoar.com/vto"}function uo(t){return so()+"/"+encodeURIComponent(t)}function po(){return Promise.resolve({available:!0})}var fo="https://cdn.jsdelivr.net/npm/@pulpoar/plugin-sdk@latest/dist/index.iife.js",lt=null;function mo(){return window.pulpoar?Promise.resolve(window.pulpoar):lt||(lt=new Promise(t=>{try{let e=document.createElement("script");e.src=fo,e.async=!0,e.onload=()=>t(window.pulpoar||null),e.onerror=()=>t(null),(document.head||document.documentElement).appendChild(e)}catch(e){t(null)}}),lt)}async function ho(t){try{if(window.Shopify||window.ShopifyAnalytics){let e=(location.pathname.split("/products/")[1]||"").split(/[?#]/)[0];if(e){let r=window.ShopifyAnalytics&&window.ShopifyAnalytics.meta,n=new URLSearchParams(location.search).get("variant")||r&&r.selectedVariantId,i=(await fetch("/products/"+e+".js").then(l=>l.json())).variants||[],c=n?i.find(l=>String(l.id)===String(n)):null;if(c&&c.sku)return c.sku;let a=i.find(l=>l.available)||i[0];if(a&&a.sku)return a.sku}}}catch(e){}return t||null}function yo(t){let e=Array.isArray(t)?t[0]:t;return!e||typeof e!="object"?{quantity:1}:{sku:e.sku||e.slug||e.key||e.variant_key||e.barcode||null,color:e.color||e.shade||e.colorName||null,size:e.size||null,quantity:1}}function go(t,e){mo().then(async r=>{if(!r){f("pulpoar: SDK n\xE3o carregou");return}let n=await ho(e.identifier);if(f("pulpoar variante p/ cat\xE1logo",n),n)try{r.applyVariantsWithCatalog([String(n)],o=>{e.track("product_loaded",{via:"makeup",applied:Array.isArray(o)?o.length:0})})}catch(o){f("pulpoar applyVariantsWithCatalog falhou",o&&o.message)}try{r.onReady(()=>e.fire("onReady",{}))}catch(o){}try{r.onAddToCart(o=>{f("pulpoar onAddToCart",o),e.handleAddToCart(yo(o),"makeup")})}catch(o){}try{r.onGoToProduct(o=>e.fire("onGoToProduct",o))}catch(o){}})}var wo={"mk-fashion":at,"mk-makeup":Vt};function st(t){return wo[t]||at}var A=null,T=null,dt=!1,pt=!1,U=null,Ze={},Jt=null,ut=0,k={onReady:null,onClose:null,onAddToCart:null,onProductLoaded:null,onError:null,onInteraction:null,onGenerationComplete:null},xo={gregory:"698c7e791d3129430f15dddd"};function tr(t){return t?xo[String(t).toLowerCase()]||t:null}async function F(t,e){let r=tr(t),n=String(e||"").trim();return st(h().product).available(r,n)}async function er(t,e){e||(e=t,t="698c7e791d3129430f15dddd");try{return(await F(t,e)).available===!0}catch(r){return!1}}async function ft(t){if(t=t||{},dt)return;let e=tr(t.projectId||t.projectid||t.store),r=String(t.identifier||t.sku||"").trim();if(!e||!r){console.error("[mk-sdk] open: projectId e identifier obrigatorios");return}let n=e+":"+r;if(Ze[n]!==!0){try{if(!(await F(e,r)).available){alert("Produto nao disponivel para prova virtual.");return}}catch(i){alert("Produto nao encontrado ou indisponivel.");return}Ze[n]=!0}let o=st(h().product).modalSize||{width:430,height:800};U={projectId:e,identifier:r,width:t.width||o.width,height:t.height||o.height},pt=!1,or(),bo(U),dt=!0,ut=Date.now(),u("modal_opened",{projectId:e,identifier:r})}function Gt(){if(!dt)return;let t=pt;if(pt=!1,_o(),dt=!1,E("onClose"),u("modal_closed",{projectId:U&&U.projectId,identifier:U&&U.identifier}),t)try{qe()}catch(e){}}function rr(t){try{let e=fr();if(!e)return;t?(e.dataset.mkPrevDisplay===void 0&&(e.dataset.mkPrevDisplay=e.style.display),e.style.display="none"):(e.style.display=e.dataset.mkPrevDisplay||"",delete e.dataset.mkPrevDisplay)}catch(e){}}function bo(t){A=document.createElement("div"),A.style.cssText="position:fixed;inset:0;background:rgba(0,0,0,.8);display:flex;align-items:center;justify-content:center;z-index:2147483647;",rr(!0);let e=document.createElement("div"),r=typeof t.width=="number"?t.width+"px":t.width,n=typeof t.height=="number"?t.height+"px":t.height;e.style.cssText="position:relative;width:"+r+";height:"+n+";max-width:100vw;max-height:100dvh;border-radius:12px;overflow:hidden;background:#fff;",T=document.createElement("iframe");let o=st(h().product);T.src=o.iframeSrc(t.projectId,t.identifier),T.style.cssText="width:100%;height:100%;border:none;",T.setAttribute("allow","camera *; microphone *"),T.setAttribute("allowfullscreen","true"),e.appendChild(T),A.appendChild(e),document.body.appendChild(A);try{o.onMounted(T,{projectId:t.projectId,identifier:t.identifier,handleAddToCart:ir,track:u,fire:E})}catch(i){f("launcher.onMounted falhou",i&&i.message)}f("try-on modal aberto",T.src)}function _o(){A&&A.parentNode&&A.parentNode.removeChild(A),A=null,T=null,rr(!1)}var Qe=!1;function nr(){or()}function or(){Qe||(Qe=!0,window.addEventListener("message",t=>{let e=t.data;if(!e||e.source!=="mkfashion-app")return;let r=e.action,n=e.data||{};switch(r){case"close_request":Gt();break;case"ready":E("onReady",n);break;case"product_loaded":E("onProductLoaded",n),u("product_loaded",Wt(n));break;case"interaction":{E("onInteraction",n),n&&n.method&&(Jt=n.method),u(Co(n),Wt(n));break}case"add_to_cart":ir(n,"tryon");break;case"generation_start":ut=Date.now();break;case"generation_complete":E("onGenerationComplete",n),u("generation_complete",{method:n.method||Jt||"unknown",durationMs:ut?Date.now()-ut:null,success:n.success!==!1,imageUrlPresent:!!n.imageUrl});break;case"generation_error":E("onError",n),u("generation_error",{method:Jt||"unknown",error:n&&n.error});break}}))}function ir(t,e){if(u("add_to_cart",Object.assign({via:e||"tryon"},Wt(t))),typeof k.onAddToCart=="function"){E("onAddToCart",t);return}Ne(t).then(()=>Ft()).then(r=>{pt=!!r}).catch(()=>{})}function Co(t){return t&&t.action,"interaction"}function Wt(t){if(!t||typeof t!="object")return t;let e={};for(let r in t){if(r==="imageUrl"||r==="image"||r==="product"){r==="product"&&t[r]?(e.productSku=t[r].sku||null,e.productName=t[r].name||null):e[r+"Present"]=!!t[r];continue}e[r]=t[r]}return e}function E(t,e){if(typeof k[t]=="function")try{k[t](e)}catch(r){console.error("[mk-sdk]",r)}}function cr(t){k.onReady=t}function ar(t){k.onClose=t}function lr(t){k.onAddToCart=t}function sr(t){k.onProductLoaded=t}function ur(t){k.onError=t}function dr(t){k.onInteraction=t}function pr(t){k.onGenerationComplete=t}var ko=767,So=1024,To=/(adicionar\s*(à|a|ao)?\s*(sacola|carrinho|cesta|bolsa))|adicionar ao carrinho|add to (cart|bag)|comprar agora|^comprar$|finalizar compra|eu quero/i,Ao=/continuar|como comprar|lista|desejos|favorito|looks|cupom/i;function Xt(t){try{let e=t.getBoundingClientRect();if(e.width<=0||e.height<=0)return!1;let r=getComputedStyle(t);return r.display!=="none"&&r.visibility!=="hidden"&&r.opacity!=="0"}catch(e){return!1}}function Lo(t){if(!t)return!1;try{let e=document.querySelector(t);return!!e&&Xt(e)}catch(e){return!1}}function Eo(t){return(t.tagName==="INPUT"?t.value||"":t.textContent||"").replace(/\s+/g," ").trim()}function Io(t){if(!t||typeof t!="object"||t.selector)return t;let e=!1;if(["mobile","tablet","desktop"].forEach(n=>{let o=t[n];o&&o.mkAnchor===1&&o.anchor&&typeof o.anchor=="object"&&(e=!0)}),!e)return t;let r={};return["mobile","tablet","desktop"].forEach(n=>{let o=t[n];if(o){if(o.selector){r[n]=o;return}if(o.mkAnchor===1&&o.anchor&&typeof o.anchor=="object"){let i=o.anchor[n]||o.anchor.desktop||o.anchor.mobile||o.anchor.tablet;i&&i.selector&&(r[n]=i)}}}),["bpMobile","bpTablet","breakpoint"].forEach(n=>{t[n]!=null&&(r[n]=t[n])}),r}function Yt(t){if(!t||typeof t!="object")return null;if(t=Io(t),t.selector)return t;let e=[["mobile",t.mobile],["tablet",t.tablet],["desktop",t.desktop]].filter(l=>l[1]&&l[1].selector);if(e.length===0)return null;if(e.length===1)return e[0][1];let r=e.filter(([,l])=>Lo(l.selector));if(r.length===1)return r[0][1];let n=window.innerWidth||1024,o=Number(t.bpMobile)||Number(t.breakpoint)||ko,i=Number(t.bpTablet)||So,c=l=>(e.find(p=>p[0]===l)||[])[1],a=n<=o?["mobile","tablet","desktop"]:n<=i?["tablet","desktop","mobile"]:["desktop","tablet","mobile"];for(let l of a){let p=c(l);if(p)return p}return e[0][1]}function mr(){let t=h(),e=Yt(t&&t.anchor);if(e&&e.selector)try{let n=document.querySelector(e.selector);if(n&&Xt(n))return{el:n,position:e.position||"afterend",mode:e.mode||"flow",style:e.style||"",align:e.align||"top-left",selector:e.selector}}catch(n){}let r=document.querySelectorAll('button, [role="button"], a.btn, a.button, input[type="submit"], input[type="button"]');for(let n of r){let o=Eo(n);if(!(!o||o.length>40)&&!Ao.test(o)&&To.test(o)&&Xt(n))return{el:n,position:"afterend",mode:"flow",style:"",selector:null}}return null}var _="'Plus Jakarta Sans', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif",Zt={none:"0",sm:"4px",md:"8px",pill:"9999px"},Qt={none:"0",sm:"4px",md:"8px",lg:"16px"},Ro='<svg viewBox="0 0 17.5263 20.6862" fill="none" xmlns="http://www.w3.org/2000/svg" style="display:block;width:100%;height:100%"><g><path d="M8.49995 12.1862C10.1568 12.1862 11.5 10.8431 11.5 9.18622C11.5 7.52936 10.1568 6.18622 8.49995 6.18622C6.8431 6.18622 5.49995 7.52936 5.49995 9.18622C5.49995 10.8431 6.8431 12.1862 8.49995 12.1862Z" stroke="currentColor" shape-rendering="crispEdges"/><path d="M0.5 9.11152C0.5 6.56953 0.5 5.29894 1.1099 4.38664C1.375 3.9902 1.71424 3.65088 2.10821 3.38809C2.6945 2.9958 3.42899 2.85564 4.55351 2.80588C5.09013 2.80588 5.55183 2.39949 5.65687 1.87284C5.73715 1.48708 5.94572 1.14138 6.24735 0.894155C6.54898 0.646934 6.92516 0.51336 7.31231 0.516006H9.9734C10.7779 0.516006 11.4709 1.08412 11.6288 1.87284C11.7339 2.39949 12.1956 2.80588 12.7322 2.80588C13.8559 2.85564 12.9129 4.67413 13.5 5.06559C13.8949 5.32932 15.1484 3.80355 15.5 4.02647C16.1099 4.93876 16.7857 6.56953 16.7857 9.11152C16.7857 11.6535 16.7857 12.9233 16.1758 13.8364C15.9107 14.2328 15.5715 14.5722 15.1775 14.835C14.2647 15.4445 12.9936 15.4445 10.4522 15.4445H6.83351C4.29213 15.4445 3.02103 15.4445 2.10821 14.835C1.71446 14.5718 1.3755 14.2322 1.11071 13.8356C0.933802 13.5672 0.803519 13.2698 0.725557 12.9564" stroke="currentColor" stroke-linecap="round"/><path d="M12.676 0.607931C12.9446 -0.178095 14.0307 -0.2019 14.3491 0.536515L14.3761 0.60838L14.7385 1.66839C14.8216 1.91149 14.9559 2.13395 15.1322 2.32076C15.3086 2.50757 15.5229 2.65439 15.7608 2.75131L15.8583 2.78769L16.9183 3.14971C17.7044 3.41831 17.7282 4.50437 16.9902 4.82283L16.9183 4.84978L15.8583 5.21225C15.6151 5.29526 15.3926 5.42947 15.2057 5.60582C15.0188 5.78218 14.8719 5.99657 14.7749 6.23453L14.7385 6.33155L14.3765 7.39201C14.1079 8.17803 13.0219 8.20184 12.7039 7.46387L12.676 7.39201L12.314 6.332C12.231 6.08881 12.0968 5.86627 11.9204 5.67938C11.744 5.49249 11.5297 5.3456 11.2917 5.24863L11.1947 5.21225L10.1347 4.85022C9.34817 4.58163 9.32437 3.49557 10.0628 3.17756L10.1347 3.14971L11.1947 2.78769C11.4378 2.70462 11.6602 2.57039 11.847 2.39404C12.0339 2.21769 12.1807 2.00333 12.2776 1.76541L12.314 1.66839L12.676 0.607931Z" fill="currentColor"/></g></svg>',Po='<svg viewBox="0 0 11.6122 12.7248" fill="none" xmlns="http://www.w3.org/2000/svg" style="display:block;width:12px;height:12px"><path d="M4.09055 2.01133C4.43939 0.9905 5.84989 0.959583 6.26347 1.91858L6.29847 2.01192L6.76922 3.38858C6.8771 3.7043 7.05144 3.99321 7.28047 4.23583C7.5095 4.47845 7.7879 4.66912 8.09689 4.795L8.22347 4.84225L9.60014 5.31242C10.621 5.66125 10.6519 7.07175 9.69347 7.48533L9.60014 7.52033L8.22347 7.99108C7.90764 8.09889 7.61862 8.2732 7.3759 8.50223C7.13318 8.73127 6.94241 9.0097 6.81647 9.31875L6.76922 9.44475L6.29905 10.822C5.95022 11.8428 4.53972 11.8737 4.12672 10.9153L4.09055 10.822L3.62039 9.44533C3.51258 9.12951 3.33827 8.84048 3.10924 8.59776C2.8802 8.35504 2.60177 8.16427 2.29272 8.03833L2.16672 7.99108L0.790054 7.52092C-0.231363 7.17208 -0.26228 5.76158 0.69672 5.34858L0.790054 5.31242L2.16672 4.84225C2.48244 4.73437 2.77135 4.56003 3.01397 4.331C3.25658 4.10197 3.44726 3.82357 3.57314 3.51458L3.62039 3.38858L4.09055 2.01133ZM9.86147 0C9.9706 0 10.0775 0.0306123 10.1701 0.0883584C10.2627 0.146104 10.3373 0.228668 10.3853 0.326667L10.4133 0.394917L10.6175 0.993417L11.2166 1.19758C11.3259 1.23474 11.4218 1.30353 11.492 1.39523C11.5623 1.48693 11.6037 1.59741 11.611 1.71268C11.6184 1.82795 11.5914 1.94281 11.5334 2.04271C11.4755 2.14261 11.3891 2.22305 11.2854 2.27383L11.2166 2.30183L10.6181 2.506L10.4139 3.10508C10.3767 3.21442 10.3078 3.31024 10.2161 3.38041C10.1244 3.45058 10.0139 3.49194 9.89859 3.49925C9.78333 3.50656 9.66849 3.47949 9.56863 3.42147C9.46876 3.36345 9.38837 3.27709 9.33764 3.17333L9.30964 3.10508L9.10547 2.50658L8.50639 2.30242C8.39702 2.26526 8.30115 2.19647 8.23092 2.10477C8.16069 2.01307 8.11926 1.90259 8.11189 1.78732C8.10452 1.67205 8.13153 1.55719 8.18951 1.45729C8.24749 1.35739 8.33381 1.27695 8.43755 1.22617L8.50639 1.19817L9.10489 0.994L9.30905 0.394917C9.34839 0.279665 9.42281 0.179613 9.52187 0.108791C9.62094 0.0379686 9.73969 -0.0000730808 9.86147 0Z" fill="currentColor"/></svg>';function w(t,e={}){let r=document.createElement(t);if(e.style&&(r.style.cssText=e.style),e.text!=null&&(r.textContent=e.text),e.html!=null&&(r.innerHTML=e.html),e.attrs)for(let n in e.attrs)r.setAttribute(n,e.attrs[n]);if(e.on)for(let n in e.on)r.addEventListener(n,e.on[n]);if(e.children)for(let n of e.children)n&&r.appendChild(n);return r}function mt(t,e){let r=Number(e)>0?Number(e):24;return w("span",{style:`width:${r}px;height:${r}px;padding:2px;box-sizing:border-box;display:inline-flex;align-items:center;justify-content:center;color:${t};flex-shrink:0;`,html:Ro})}function hr(t){return w("span",{style:`width:12px;height:12px;display:inline-flex;align-items:center;justify-content:center;color:${t};flex-shrink:0;`,html:Po})}function ht(t){return t.borderWidth>0&&t.borderColor?`${t.borderWidth}px solid ${t.borderColor}`:"none"}function yt(){if(!document.getElementById("mk-jakarta-font"))try{document.head.appendChild(w("link",{attrs:{id:"mk-jakarta-font",rel:"stylesheet",href:"https://fonts.googleapis.com/css2?family=Plus+Jakarta+Sans:wght@400;600;700&display=swap"}}))}catch(t){}}function jo(t){return t.subtext?w("span",{style:`display:flex;align-items:center;justify-content:center;padding:4px;background:${t.badgeBgColor};font-family:${_};font-weight:700;font-size:16px;text-transform:uppercase;color:${t.badgeTextColor};line-height:1;white-space:nowrap;`,text:t.subtext}):null}function yr(t,e){yt();let r=w("span",{style:"display:inline-flex;align-items:center;gap:4px;",children:[mt(t.textColor,t.iconSize),w("span",{text:t.text,style:`font-family:${_};font-weight:700;font-size:${t.fontSize}px;text-transform:uppercase;letter-spacing:2px;color:${t.textColor};white-space:nowrap;text-align:center;line-height:1;`})]});return w("button",{attrs:{type:"button"},style:`display:flex;align-items:center;justify-content:center;gap:8px;padding:8px;width:100%;max-width:238px;box-sizing:border-box;background:${t.bgColor};border:${ht(t)};border-radius:${t.borderRadiusPx};font-family:${_};cursor:pointer;transition:opacity 0.2s ease;line-height:1;-webkit-appearance:none;appearance:none;`,children:[r,jo(t)],on:{mouseenter:n=>{n.currentTarget.style.opacity="0.85"},mouseleave:n=>{n.currentTarget.style.opacity="1"},click:n=>{try{n.preventDefault(),n.stopPropagation()}catch(o){}try{e&&e()}catch(o){}}}})}function Bo(t){return t.subtext?w("span",{style:`display:flex;align-items:center;gap:4px;padding:4px;background:${t.badgeBgColor};font-family:${_};font-weight:600;font-size:10px;text-transform:uppercase;color:${t.badgeTextColor};line-height:1;white-space:nowrap;`,children:[hr(t.badgeTextColor),w("span",{text:t.subtext})]}):null}function No(t,e){return w("button",{attrs:{type:"button"},style:`display:flex;align-items:center;justify-content:center;gap:8px;padding:8px 12px 8px 8px;width:100%;margin-top:auto;box-sizing:border-box;background:${t.bgColor};border:${ht(t)};border-radius:${t.borderRadiusPx};filter:drop-shadow(0 0 6px rgba(0,0,0,0.08));font-family:${_};cursor:pointer;transition:opacity 0.2s ease;line-height:1;-webkit-appearance:none;appearance:none;`,children:[mt(t.textColor,t.iconSize),w("span",{text:t.text,style:`font-family:${_};font-weight:700;font-size:${t.fontSize}px;color:${t.textColor};white-space:nowrap;line-height:1;`})],on:{mouseenter:r=>{r.currentTarget.style.opacity="0.85"},mouseleave:r=>{r.currentTarget.style.opacity="1"},click:r=>{try{r.preventDefault(),r.stopPropagation()}catch(n){}try{e&&e()}catch(n){}}}})}function gr(t,e){yt();let r=w("div",{style:"display:flex;flex-direction:column;gap:4px;",children:[t.cardTitle&&w("p",{text:t.cardTitle,style:`margin:0;font-family:${_};font-weight:700;font-size:16px;letter-spacing:1px;text-transform:uppercase;color:${t.cardTitleColor};line-height:1.2;`}),t.cardDescription&&w("p",{html:t.cardDescription,style:`margin:0;font-family:${_};font-weight:400;font-size:12px;max-width:177px;line-height:1.2;color:${t.cardTextColor};`})]}),n=w("div",{style:"display:flex;flex-direction:column;justify-content:space-between;gap:16px;flex:1 1 0;min-width:0;",children:[r,t.cardFooter&&w("p",{text:t.cardFooter,style:`margin:0;font-family:${_};font-weight:400;font-size:10px;color:${t.cardTextColor};line-height:1.2;`})]}),o=w("div",{style:"display:flex;flex-direction:column;align-items:flex-end;flex:1 1 0;min-width:0;",children:[Bo(t),No(t,e)]}),i=w("div",{style:"display:flex;gap:16px;align-items:stretch;width:100%;flex:1;box-sizing:border-box;",children:[n,o]});return w("div",{style:`display:flex;flex-direction:column;align-items:flex-start;padding:12px;width:100%;max-width:402px;min-height:140px;box-sizing:border-box;background:${t.cardBgColor};border-radius:${t.cardBorderRadiusPx};font-family:${_};`,children:[i]})}var qo={style:"gregory-black",text:"Provar Virtualmente",fontSize:14,iconSize:24,subtext:"",bgColor:"#1E1E1E",textColor:"#FFFFFF",badgeBgColor:"#C51A1B",badgeTextColor:"#FFFFFF",borderRadius:"md",borderColor:"#1E1E1E",borderWidth:0,cardTitle:"",cardDescription:"",cardFooter:"",cardBgColor:"#F6F6F6",cardTitleColor:"#1E1E1E",cardTextColor:"#717171",cardBorderRadius:"md"};function te(t,e){let r=(e?t&&t.mobile:t&&t.desktop)||t&&t.desktop||t&&t.mobile||{},n={...qo,...r};return n.style==="gregory-card"&&e&&(n.style="gregory-black"),n.borderRadiusPx=Zt[n.borderRadius]!=null?Zt[n.borderRadius]:"0",n.cardBorderRadiusPx=Qt[n.cardBorderRadius]!=null?Qt[n.cardBorderRadius]:"0",n.fontSize=Number(n.fontSize)||14,n.iconSize=Number(n.iconSize)||24,n.borderWidth=Number(n.borderWidth)||0,n}var ee={"gregory-black":yr,"gregory-card":gr},$i=Object.keys(ee);function wr(t,e){return(ee[t.style]||ee["gregory-black"])(t,e)}function Do(){return"abcdefghijklmnopqrstuvwxyz"[Math.floor(Math.random()*26)]+Math.random().toString(36).slice(2,11)}var X=null;function fr(){return X}function Uo(t,e){let r;try{r=document.createElement("iframe"),r.setAttribute("aria-hidden","true"),r.style.cssText="display:none!important;width:0;height:0;border:0;position:absolute;left:-9999px;",(document.body||document.documentElement).appendChild(r);let n=r.contentWindow&&r.contentWindow.Element&&r.contentWindow.Element.prototype&&r.contentWindow.Element.prototype.attachShadow;if(typeof n=="function"){let o=n.call(t,e);return r.remove(),o}}catch(n){}try{r&&r.remove()}catch(n){}return t.attachShadow(e)}var Fo=/^(transform|transform-origin|margin|margin-(top|right|bottom|left)|position|inset|top|right|bottom|left|z-index|width|min-width|max-width|height|min-height|max-height)$/i;function zo(t){return!t||typeof t!="string"?"":t.split(";").map(e=>e.trim()).filter(Boolean).filter(e=>Fo.test(e.split(":")[0].trim().toLowerCase())).join(";")}var gt=null,re=!1,ne={},xr=!1,oe=null;function br(){return oe||(oe=O().then(t=>t&&t.template&&t.template.tryOnButton||null).catch(()=>null)),oe}function $o(){if(xr)return;xr=!0;let t=null;try{window.addEventListener("resize",()=>{clearTimeout(t),t=setTimeout(()=>{gt&&z("pdp")},200)})}catch(e){}}function ie(){let t=X;if(t){if(typeof t.__mkCleanup=="function")try{t.__mkCleanup()}catch(e){}t.parentNode&&t.parentNode.removeChild(t)}X=null,gt=null}var Ko={IMG:1,INPUT:1,VIDEO:1,CANVAS:1,EMBED:1,OBJECT:1,IFRAME:1,BR:1,HR:1,SELECT:1,TEXTAREA:1,SVG:1};function Ho(t){switch(t){case"top-center":return"top:0;left:50%;transform:translateX(-50%);";case"top-right":return"top:0;right:0;";case"middle-left":return"top:50%;left:0;transform:translateY(-50%);";case"center":return"top:50%;left:50%;transform:translate(-50%,-50%);";case"middle-right":return"top:50%;right:0;transform:translateY(-50%);";case"bottom-left":return"bottom:0;left:0;";case"bottom-center":return"bottom:0;left:50%;transform:translateX(-50%);";case"bottom-right":return"bottom:0;right:0;";case"top-left":default:return"top:0;left:0;"}}function Vo(t,e,r){let o=!Ko[t.tagName]?t:t.parentElement||document.body;try{getComputedStyle(o).position==="static"&&(o.style.position="relative")}catch(p){}if(o===t){e.style.cssText="position:absolute;z-index:2147483000;"+Ho(r),t.appendChild(e);return}e.style.cssText="position:absolute;z-index:2147483000;",o.appendChild(e);let i=()=>{try{let p=t.getBoundingClientRect(),m=o.getBoundingClientRect(),g=e.offsetWidth,s=e.offsetHeight,y=p.top-m.top+o.scrollTop,x=p.left-m.left+o.scrollLeft,b=r||"top-left",d=y,S=x;b.indexOf("bottom")===0?d=y+p.height-s:(b.indexOf("middle")===0||b==="center")&&(d=y+(p.height-s)/2),b.indexOf("right")>=0?S=x+p.width-g:b.indexOf("center")>=0&&(S=x+(p.width-g)/2),e.style.top=d+"px",e.style.left=S+"px"}catch(p){}};i();let c=()=>i();window.addEventListener("resize",c);let a=setTimeout(i,600),l=setTimeout(i,1500);e.__mkCleanup=()=>{window.removeEventListener("resize",c),clearTimeout(a),clearTimeout(l)}}function Jo(t,e,r){try{return t.insertAdjacentElement(r||"afterend",e),!0}catch(n){try{return t.parentNode.insertBefore(e,t.nextSibling),!0}catch(o){return!1}}}async function z(t){let e=h();if(t!=="pdp"){ie();return}if(!e.projectId)return;if(!e._anchorFromPicker){let l=await br();l&&l.anchor&&(e.anchor=l.anchor)}if(re)return;let r=D(),n=r&&r.value,o=!!e.forceButton,i=Yt(e.anchor),c=[n||"demo",i?[i.selector,i.position,i.mode,i.align,i.style].join("~"):"heuristic"].join("|"),a=X;if(!(a&>===c)){if(a&&ie(),!n&&!o){f("auto-mount: SKU n\xE3o resolvido na PDP");return}re=!0;try{let l=o;o||(ne[n]||(ne[n]=F(e.projectId,n).then(C=>!!(C&&C.available)).catch(()=>!1)),l=await ne[n]);try{we(l?"available":"unavailable")}catch(C){}if(!l){f("auto-mount: produto sem try-on",n);return}let p=await br(),m=window.matchMedia("(max-width: 767px)").matches,g=te(p,m),s=mr(),y=s&&s.mode||"flow",x=wr(g,()=>{let C=D(),P=C&&C.value||n||"";ye(),u("button_clicked",{sku:P,style:g.style,mode:y}),ft({projectId:e.projectId,identifier:P})}),b=document.createElement("div");b.id=Do(),X=b,Uo(b,{mode:"closed"}).appendChild(x),["click","mousedown","mouseup","pointerdown","pointerup","touchstart"].forEach(C=>{try{b.addEventListener(C,P=>{P.stopPropagation()},!1)}catch(P){}});let S=!1;if(s&&s.el&&s.el.parentNode&&(y==="overlay"?(Vo(s.el,b,s.align),S=!0):(b.style.cssText="display:contents;",S=Jo(s.el,b,s.position))),S||(b.style.cssText="position:fixed;left:16px;bottom:16px;z-index:2147483000;",document.body.appendChild(b)),s&&s.style){let C=zo(s.style);if(C)try{x.style.cssText+=";"+C}catch(P){}}gt=c,$o(),f("auto-mount: bot\xE3o injetado",{style:g.style,sku:n,anchorFound:!!s,position:s&&s.position,mode:y,forced:o}),u("button_rendered",{style:g.style,sku:n||null,skuSource:r&&r.source,anchorFound:!!s,position:s?s.position:null,mode:y,forced:o})}finally{re=!1}}}function _r(){try{let t=h(),e={anchor:t.anchor,forceButton:t.forceButton};window.addEventListener("message",r=>{if(r.source!==window)return;let n=r.data;!n||!n.__mkCmd||(n.__mkCmd==="remount"||n.__mkCmd==="applyRecipe"?(t.anchor=n.anchor||null,t._anchorFromPicker=!0,t.forceButton=!0,z("pdp")):n.__mkCmd==="cancelPreview"&&(t.anchor=e.anchor,t._anchorFromPicker=!1,t.forceButton=e.forceButton,ie(),z("pdp")))})}catch(t){}}(function(){"use strict";try{let r=function(){try{_e(),_r(),nr(),e.autoTrack!==!1&&(ze((o,i)=>{Xe(o,i),z(o)}),Ye()),f("mk-sdk iniciado",{projectId:e.projectId,collectorUrl:e.collectorUrl})}catch(o){e.debug&&console.error("[mk-sdk] init erro",o)}},e=xt();if(e.projectId){let o=Se(e.projectId);o&&kt(o),O().then(i=>{let c=ve(i);kt(c),Te(e.projectId,c),f("escopo de coleta",c)})}document.readyState==="loading"?document.addEventListener("DOMContentLoaded",r):r();let n={open:ft,close:Gt,isAvailable:er,getAvailability:F,onReady:cr,onClose:ar,onAddToCart:lr,onProductLoaded:sr,onError:ur,onInteraction:dr,onGenerationComplete:pr,testCart:Oe,_version:"0.1.0",_isMkSdk:!0};typeof window!="undefined"&&(window.mk=n)}catch(e){typeof console!="undefined"&&console.error("[mk-sdk] boot fatal",e)}})();})();
|
|
1
|
+
(()=>{var Sr=Object.defineProperty;var C=(t,e)=>{for(var r in e)Sr(t,r,{get:e[r],enumerable:!0})};var xt={collectorUrl:"https://api-collector.mk3dlabs.com",appUrl:"https://mkfashion.mk3dlabs.com/visualizer",apiUrl:"https://mkfashion-new-api.mk3dlabs.com"},Tr={},z=null;function bt(){if(z)return z;let t=null;try{t=document.currentScript||document.querySelector("script[data-mk-project]")||document.querySelector('script[src*="mk-sdk"]')||document.querySelector('script[src*="mk-pixel"]')}catch(i){}let e=i=>{try{return t&&t.getAttribute(i)}catch(c){return null}},r=e("data-mk-project")||e("data-mk-client")||window.__MK&&(window.__MK.projectId||window.__MK.clientSlug)||null,n=e("data-mk-product")||window.__MK&&window.__MK.product||"mk-fashion",o=e("data-mk-collector")||window.__MK&&window.__MK.collectorUrl||Tr.collectorUrl||xt.collectorUrl;return z={projectId:r,product:n,collectorUrl:o,appUrl:window.__MK&&window.__MK.appUrl||xt.appUrl,apiUrl:window.__MK&&window.__MK.apiUrl||xt.apiUrl,debug:!!(e("data-mk-debug")!==null||window.__MK&&window.__MK.debug||/[?&]mkdebug\b/.test(location.search)),observe:!!(window.__MK&&window.__MK.observe),forceButton:!!(window.__MK&&window.__MK.forceButton),anchor:window.__MK&&window.__MK.anchor||null,anchors:window.__MK&&window.__MK.anchors||null,cartRedirect:!(window.__MK&&window.__MK.cartRedirect===!1),cartBehavior:window.__MK&&window.__MK.cartBehavior||null,cartOpenSelector:window.__MK&&window.__MK.cartOpenSelector||null,autoTrack:e("data-mk-no-autotrack")===null,batchIntervalMs:window.__MK&&window.__MK.batchIntervalMs||8e3,batchMaxSize:window.__MK&&window.__MK.batchMaxSize||20,engagementIntervalMs:15e3},z}function y(){return z||bt()}function h(...t){let e=y();e&&e.debug&&typeof console!="undefined"&&console.log("[mk-sdk]",...t)}var ae="_mk_vid",le="_mk_sid",$=null,K=null;function X(){return typeof crypto!="undefined"&&crypto.randomUUID?crypto.randomUUID():"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,t=>{let e=Math.random()*16|0;return(t==="x"?e:e&3|8).toString(16)})}function se(){if($)return $;try{let t=localStorage.getItem(ae);return t||(t="v_"+X(),localStorage.setItem(ae,t)),$=t,t}catch(t){return $="v_"+X(),$}}function ue(){if(K)return K;try{let t=sessionStorage.getItem(le);return t||(t="s_"+X(),sessionStorage.setItem(le,t)),K=t,t}catch(t){return K="s_"+X(),K}}var de=[/email/i,/e-?mail/i,/cpf/i,/cnpj/i,/phone/i,/telefone/i,/celular/i,/address/i,/endereco/i,/cep/i,/zip/i,/card/i,/cartao/i,/cvv/i,/password/i,/senha/i,/token/i,/\bnome\b/i,/fullname/i,/firstname/i,/lastname/i,/sobrenome/i,/birth/i,/nascimento/i,/rg\b/i],pe={imageUrl:1,image:1,thumbnail:1,photo:1,imageBase64:1,src:1},_t=2e3;function fe(t){for(let e=0;e<de.length;e++)if(de[e].test(t))return!0;return!1}function me(t){if(!t||typeof t!="object"||Array.isArray(t))return typeof t=="string"&&t.length>_t?t.slice(0,200)+"...[truncated "+t.length+"B]":t;let e={};for(let r in t){if(!Object.prototype.hasOwnProperty.call(t,r)||fe(r))continue;let n=t[r];if(pe[r]){e[r+"Present"]=!!n;continue}if(typeof n=="string"&&n.length>_t){e[r]=n.slice(0,200)+"...[truncated "+n.length+"B]";continue}if(n&&typeof n=="object"&&!Array.isArray(n)){e[r]=Ar(n);continue}e[r]=n}return e}function Ar(t){let e={};for(let r in t){if(!Object.prototype.hasOwnProperty.call(t,r)||fe(r))continue;let n=t[r];if(pe[r]){e[r+"Present"]=!!n;continue}if(typeof n=="string"&&n.length>_t){e[r]=n.slice(0,200)+"...[truncated]";continue}e[r]=n}return e}var Y=[],Ct=null,P=null,Er=["off","pdp_tryon","pdp","all","tryon_engaged"],H,vt=null,Z="unknown",j=[],R=null;function ye(){let t=y();return"mk_engaged_"+(t&&t.projectId||"")}function kt(){if(R!==null)return R;try{R=localStorage.getItem(ye())==="1"}catch(t){R=!1}return R}function ge(){if(!kt()){R=!0;try{localStorage.setItem(ye(),"1")}catch(t){}Q(!1)}}var Lr=/^purchase$/;function we(t,e){if(H===void 0)return"hold";if(H==="off")return"drop";if(H==="all"||e&&Lr.test(e))return"collect";switch(H){case"pdp":return t==="pdp"?"collect":"drop";case"tryon_engaged":if(kt())return"collect";case"pdp_tryon":return t!=="pdp"?"drop":Z==="available"?"collect":Z==="unavailable"?"drop":"hold";default:return"collect"}}function Q(t){if(!j.length)return;let e=[];for(let r of j){let n=we(r._pt,r.name);n==="collect"?_e(r.name,r.params,r.ts):n==="hold"&&!t&&e.push(r)}j=e}function St(t){H=Er.indexOf(t)>=0?t:"all",Q(!1)}function xe(t){Z=t==="available"?"available":"unavailable",Q(!1)}function be(t){Q(!0),P=t,vt=t&&t.pageType||null,Z="unknown"}function d(t,e,r){if(!y().projectId){(d._pre=d._pre||[]).push({name:t,params:e,ts:r||Date.now()}),d._pre.length>50&&d._pre.shift();return}if(d._pre&&d._pre.length){let o=d._pre;d._pre=[];for(let i of o)he(i.name,i.params,i.ts)}he(t,e,r)}function he(t,e,r){let n=we(vt,t);if(n==="collect"){_e(t,e,r);return}if(n==="drop"){h("descartado (escopo)",t);return}j.push({name:t,params:e,ts:r||Date.now(),_pt:vt}),j.length>300&&j.shift()}function _e(t,e,r){let n=y(),o=me(e||{}),i="page_"+Ir(t);if(Y.push({name:i,ts:r||Date.now(),params:o}),h("queued",t,o),n.observe)try{window.postMessage({__mkpixel:!0,event:{name:i,params:o},site:P?{pageType:P.pageType,platform:P.platform,url:P.url}:null},"*")}catch(c){}if(Y.length>=n.batchMaxSize){E();return}Ct||(Ct=setTimeout(()=>{Ct=null,E()},n.batchIntervalMs))}function Ir(t){if(typeof t!="string"||!t)return"unknown";let e=t.replace(/^on/,"");return e=e.replace(/[A-Z]/g,(r,n)=>(n>0?"_":"")+r.toLowerCase()),e.indexOf("page_")===0&&(e=e.slice(5)),e}function E(t){if(Y.length===0)return;let e=y();if(!e.projectId||!e.collectorUrl)return;let r=Y.splice(0,50),n=JSON.stringify({product:e.product||void 0,visitorId:se(),sessionId:ue(),engaged:kt()||void 0,events:r,site:P||void 0}),o=e.collectorUrl+"/v1/track";try{fetch(o,{method:"POST",keepalive:!0,headers:{"Content-Type":"application/json","X-MK-Project-Id":e.projectId},body:n}).catch(()=>{})}catch(i){try{navigator.sendBeacon&&navigator.sendBeacon(o+"?projectId="+encodeURIComponent(e.projectId),new Blob([n],{type:"text/plain"}))}catch(c){}}}function Ce(){try{window.addEventListener("pagehide",()=>E(!0)),window.addEventListener("beforeunload",()=>E(!0)),document.addEventListener("visibilitychange",()=>{document.hidden&&E(!0)})}catch(t){}}function T(t){let e=[];try{let r=document.querySelectorAll('script[type="application/ld+json"]');for(let n of r){let o;try{o=JSON.parse(n.textContent)}catch(c){continue}let i=[];Array.isArray(o)?i.push(...o):o["@graph"]?i.push(...o["@graph"]):i.push(o);for(let c of i){if(!c||!c["@type"])continue;let a=Array.isArray(c["@type"])?c["@type"]:[c["@type"]];(!t||t.some(s=>a.includes(s)))&&e.push(c)}}}catch(r){}return e}var ve=["off","pdp_tryon","pdp","all","tryon_engaged"],Rr="all",Pr=30*60*1e3,M=null;function B(){if(M)return M;let t=y();return!t.projectId||!t.apiUrl?(M=Promise.resolve(null),M):(M=fetch(t.apiUrl+"/projects/"+t.projectId).then(e=>e.ok?e.json():null).then(e=>e&&e.project||e||null).catch(()=>null),M)}function ke(t){let e=t&&t.analytic&&t.analytic.scope;return ve.indexOf(e)>=0?e:Rr}var Se=t=>"mk_scope_"+t;function Te(t){try{let e=localStorage.getItem(Se(t));if(!e)return null;let r=JSON.parse(e);return!r||typeof r.exp!="number"||r.exp<Date.now()?null:ve.indexOf(r.scope)>=0?r.scope:null}catch(e){return null}}function Ae(t,e){try{localStorage.setItem(Se(t),JSON.stringify({scope:e,exp:Date.now()+Pr}))}catch(r){}}var Et={};C(Et,{addToCart:()=>Vr,detect:()=>zr,getCartSummary:()=>Kr,id:()=>Ur,openCartDrawer:()=>Jr,resolveSku:()=>$r,skipRedirect:()=>Fr});var et={};C(et,{addToCart:()=>Br,detect:()=>Mr,getCartSummary:()=>At,id:()=>jr,openCartDrawer:()=>Dr,resolveSku:()=>Tt});var jr="shopify";function Mr(){return!!(window.Shopify||window.ShopifyAnalytics)}function Tt(){let t=window;return t.ShopifyAnalytics&&t.ShopifyAnalytics.meta&&t.ShopifyAnalytics.meta.product?{value:String(t.ShopifyAnalytics.meta.product.id),source:"shopify"}:null}var tt=t=>String(t==null?"":t).trim().toLowerCase();async function Br({size:t,color:e,sku:r,quantity:n}){let o=(location.pathname.split("/products/")[1]||"").split(/[?#]/)[0];if(!o)throw new Error("shopify: sem handle de produto na URL (n\xE3o \xE9 PDP?)");let c=(await fetch("/products/"+o+".js").then(u=>u.json())).variants||[],a=u=>[u.option1,u.option2,u.option3].concat(String(u.title||"").split("/")).map(tt).filter(Boolean),s=(u,F)=>a(u).indexOf(tt(F))>=0,l=u=>(!t||s(u,t))&&(!e||s(u,e)),p=null;if((t||e)&&(p=c.find(u=>l(u)&&u.available)||c.find(l)),!p&&r&&(p=c.find(u=>tt(u.sku)===tt(r))),p||(p=c.find(u=>u.available)||c[0]),!p)throw new Error("shopify: variante n\xE3o encontrada");let x=Ee(),f=null;if(x&&typeof x.getSectionsToRender=="function")try{f=x.getSectionsToRender().map(u=>({id:u.id,selector:u.selector||"#"+u.id})).filter(u=>u.id)}catch(u){}let w={items:[{id:p.id,quantity:n||1}]};f&&f.length&&(w.sections=f.map(u=>u.id).join(","),w.sections_url=location.pathname);let m=await fetch("/cart/add.js",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(w)});if(!m.ok)throw new Error("shopify: /cart/add.js HTTP "+m.status);let b=await m.json().catch(()=>({}));return x&&f&&b.sections&&Or(x,f,b.sections),{platform:"shopify",variantId:p.id,size:p.title,sku:p.sku||null}}function Ee(){return document.querySelector("cart-drawer, cart-notification")}function Or(t,e,r){for(let n of e){let o=r[n.id];if(o)try{let i=null;if(typeof t.getSectionInnerHTML=="function")i=t.getSectionInnerHTML(o,n.selector);else{let a=new DOMParser().parseFromString(o,"text/html").querySelector(n.selector);i=a?a.innerHTML:null}let c=document.querySelector(n.selector);c&&i!=null&&(c.innerHTML=i)}catch(i){}}}async function At(){try{let t=await fetch("/cart.js",{headers:{Accept:"application/json"}}).then(e=>e.json());return{value:(Number(t.total_price)||0)/100,itemCount:Number(t.item_count)||0,currency:t.currency||null}}catch(t){return null}}var Nr=["[data-cart-drawer-toggle]",'[data-action="open-cart-drawer"]','[data-action="open-cart"]',".js-cart-drawer-open",".js-drawer-open-cart",".cart-drawer-toggle",".js-cart-toggle",'[aria-controls="CartDrawer"]','[aria-controls="cart-drawer"]',"#cart-icon-bubble","#lk-cart-icon",".header__cart",".site-header__cart",".cart-link",".header-cart",'a[href="/cart"]','a[href$="/cart"]'];function qr(t){try{let e=t.getBoundingClientRect();return e.width>0&&e.height>0&&getComputedStyle(t).visibility!=="hidden"}catch(e){return!1}}function Dr(){let t=Ee();if(t&&typeof t.open=="function")return setTimeout(()=>{try{t.open()}catch(r){}},200),!0;let e=null;for(let r of Nr)try{if(e=[...document.querySelectorAll(r)].find(qr),e)break}catch(n){}return e?(setTimeout(()=>{try{e.click()}catch(r){}},300),!0):!1}var Ur="zerezes",Fr=!0;function zr(){try{if(!(window.Shopify||window.ShopifyAnalytics))return!1;let t=window.Shopify&&window.Shopify.shop||"";return/(^|\.)zerezes\./i.test(location.hostname)||/cs-zerezes/i.test(t)}catch(t){return!1}}var $r=Tt,Kr=At;function Hr(){let t=[...document.querySelectorAll(".lens-selection__button, [data-has-lens-basket]")];return t.find(e=>{let r=e.getBoundingClientRect();return r.width>0&&r.height>0})||t[0]||null}async function Vr(){let t=Hr();if(!t)throw new Error("zerezes: bot\xE3o de sele\xE7\xE3o de lentes n\xE3o encontrado");try{window.postMessage({source:"mkfashion-app",action:"close_request"},"*")}catch(e){}return setTimeout(()=>{try{t.click()}catch(e){}},250),{platform:"zerezes",nativeFlow:"lens-selection"}}function Jr(){return!0}var It={};C(It,{addToCart:()=>Yr,detect:()=>Gr,getCartSummary:()=>Zr,id:()=>Wr,resolveSku:()=>Xr});var Wr="hybris";function Gr(){return!!(window.ACC&&window.ACC.config)}function Xr(){let t=(location.pathname||"").match(/\/p\/([^/?#]+)/);return t&&t[1]?{value:decodeURIComponent(t[1]),source:"hybris/url"}:null}var Le=t=>String(t==null?"":t).trim().toLowerCase();async function Yr({size:t,quantity:e}){let r=[...document.querySelectorAll('.js-product-select-size, a[data-code], [class*="select-size"]')].filter(w=>w.getAttribute&&w.getAttribute("data-code")),n=t?r.find(w=>Le(w.textContent)===Le(t)):null;n||(n=r.find(w=>w.offsetParent!==null)||r[0]);let o=n&&n.getAttribute("data-code");if(!o)throw new Error("hybris: variante (data-code) n\xE3o encontrada");let i=document.getElementById("product--add-to-cart-form")||document.querySelector('form[action*="/cart/add"]'),c=i&&i.querySelector('[name="CSRFToken"]'),a=c&&c.value,s=i&&i.getAttribute("action")||"/cart/add";if(!a)throw new Error("hybris: CSRFToken n\xE3o encontrado");let l=new URLSearchParams;l.set("productCodePost",o),l.set("qty",String(e||1)),l.set("CSRFToken",a);let p=await fetch(s,{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded","X-Requested-With":"XMLHttpRequest"},body:l.toString()});if(!p.ok)throw new Error("hybris: "+s+" HTTP "+p.status);let x=null,f=null;try{let w=await p.clone().json(),m=w&&w.cartData;m&&(x=Lt(m.total!=null?m.total:m.totalPrice),f=m.totalUnitCount!=null?Number(m.totalUnitCount):Array.isArray(m.products)?m.products.length:null)}catch(w){}return{platform:"hybris",productCode:o,size:n.textContent.trim(),cartValue:x,itemCount:f,currency:"BRL"}}function Lt(t){if(t==null||t==="")return null;if(typeof t=="number")return Number.isFinite(t)?t:null;let e=String(t).replace(/[^\d.,]/g,"");if(!e)return null;let r=e.indexOf(",")>e.indexOf(".")?parseFloat(e.replace(/\./g,"").replace(",",".")):parseFloat(e.replace(/,/g,""));return Number.isFinite(r)?r:null}async function Zr(){try{let t=await fetch("/cart/async?nocache="+Date.now(),{headers:{"X-Requested-With":"XMLHttpRequest"}}).then(c=>c.ok?c.text():"");if(!t)return null;let e=new DOMParser().parseFromString(t,"text/html"),r=e.querySelector(".minicart-total .price")||e.querySelector(".floating-cart--cart-total"),n=r?Lt(r.textContent):null,o=e.querySelector(".mini-badge"),i=o?parseInt(o.textContent,10)||0:null;return n==null&&i==null?null:{value:n,itemCount:i,currency:"BRL"}}catch(t){}try{let t=[".minicart-total .price",".js-cart-total",".cart-total",".total-price",".grand-total"];for(let e of t){let r=document.querySelector(e),n=r&&Lt(r.textContent);if(n)return{value:n,itemCount:null,currency:"BRL"}}}catch(t){}return null}var Rt={};C(Rt,{addToCart:()=>rn,detect:()=>tn,getCartSummary:()=>nn,id:()=>Qr,resolveSku:()=>en});var Qr="vtex";function tn(){return!!(window.vtex||window.vtexjs||window.vtxctx||window.skuJson_0)}function en(){let t=window;return t.vtxctx&&t.vtxctx.skus&&t.vtxctx.skus[0]?{value:String(t.vtxctx.skus[0]),source:"vtex/vtxctx"}:t.skuJson_0&&t.skuJson_0.skus&&t.skuJson_0.skus[0]?{value:String(t.skuJson_0.skus[0].sku),source:"vtex/skuJson"}:null}var rt=t=>String(t==null?"":t).trim().toLowerCase();async function rn({size:t,quantity:e}){let r=window.skuJson_0&&window.skuJson_0.skus||[];if(!r.length)throw new Error("vtex: skuJson_0 indispon\xEDvel");let n=i=>rt(i.skuname)===rt(t)||i.dimensions&&Object.values(i.dimensions).some(c=>rt(c)===rt(t)),o=t?r.find(i=>n(i)&&i.available)||r.find(n):null;if(o||(o=r.find(i=>i.available)||r[0]),!o)throw new Error("vtex: variante n\xE3o encontrada");if(window.vtexjs&&window.vtexjs.checkout&&window.vtexjs.checkout.addToCart)return await window.vtexjs.checkout.addToCart([{id:parseInt(o.sku,10),quantity:e||1,seller:"1"}]),{platform:"vtex",skuId:o.sku,size:o.skuname||t};throw new Error("vtex: vtexjs.checkout indispon\xEDvel")}function nn(){try{let t=window.vtexjs&&window.vtexjs.checkout&&window.vtexjs.checkout.orderForm;if(t&&typeof t.value=="number"){let e=t.storePreferencesData&&t.storePreferencesData.currencyCode||"BRL",r=(t.items||[]).reduce((n,o)=>n+(Number(o.quantity)||1),0);return{value:t.value/100,itemCount:r,currency:e}}}catch(t){}return null}var Pt={};C(Pt,{addToCart:()=>sn,detect:()=>an,getCartSummary:()=>dn,id:()=>on,openCartDrawer:()=>un,resolveSku:()=>ln,skipRedirect:()=>cn});var on="nuvemshop",cn=!0;function an(){return!!(window.LS&&(window.LS.cart||window.LS.addToCart))}function ln(){try{let t=window.LS,e=t&&t.variants||[],r=document.querySelector('[name="variant_id"]'),n=r&&r.value?e.find(o=>String(o.id)===String(r.value)):null;if(n||(n=e.find(o=>o.available!==!1&&o.sku)||e.find(o=>o.sku)||e[0]),n&&n.sku)return{value:String(n.sku),source:"nuvemshop/variant"};if(t&&t.product&&t.product.sku)return{value:String(t.product.sku),source:"nuvemshop/product"}}catch(t){}return null}var nt=t=>String(t==null?"":t).trim().toLowerCase();async function sn({size:t,quantity:e}){let r=document.getElementById("product_form")||document.querySelector('.js-product-form, form[action*="/comprar"]');if(!r)throw new Error("nuvemshop: #product_form n\xE3o encontrado");t&&r.querySelectorAll('select[name^="variation"]').forEach(c=>{let a=[...c.options].find(s=>nt(s.textContent).includes(nt(t))||nt(s.value)===nt(t));a&&(c.value=a.value,c.dispatchEvent(new Event("change",{bubbles:!0})))});let n=r.querySelector('[name="quantity"]');n&&e&&(n.value=String(e)),await new Promise(c=>setTimeout(c,400));let o=r.querySelector(".js-addtocart")||document.querySelector(".js-addtocart");return o?o.click():typeof r.requestSubmit=="function"?r.requestSubmit():r.submit(),await new Promise(c=>setTimeout(c,1200)),{platform:"nuvemshop",variantId:(r.querySelector('[name="variant_id"]')||{}).value||null}}function un(){try{if([...document.querySelectorAll('.modal-cart, #ajax-cart-details, [class*="cart-modal" i], [class*="modal-cart" i]')].find(n=>n.getBoundingClientRect().width>0))return!0;let e=[...document.querySelectorAll(".js-toggle-cart")],r=e.find(n=>{let o=n.getBoundingClientRect();return o.width>0&&o.height>0})||e[0];if(r)return setTimeout(()=>{try{r.click()}catch(n){}},300),!0}catch(t){}return!1}function dn(){try{let t=window.LS,e=t&&t.cart;if(!e)return null;let r=t.currency&&t.currency.code||"BRL",n=Array.isArray(e.items)?e.items.reduce((i,c)=>i+(Number(c.quantity)||1),0):Number(e.items)||0,o=e.subtotal!=null?Number(e.subtotal):null;return{value:o!=null?o/100:null,itemCount:n,currency:r}}catch(t){return null}}var jt={};C(jt,{addToCart:()=>yn,detect:()=>mn,getCartSummary:()=>gn,id:()=>pn,openCartDrawer:()=>xn,resolveSku:()=>hn,skipRedirect:()=>fn});var pn="wake",fn=!0;function mn(){return!!(window.StorefrontClient||typeof window.addOrCreateCheckout=="function"||typeof window.addToCartClick=="function")}function hn(){try{let t=document.querySelector('input[name="product-id"], [data-product-id]'),e=t?t.value||t.getAttribute("data-product-id"):null;if(e)return{value:String(e).trim(),source:"wake/product-id"};let r=(location.pathname||"").match(/-(\d+)\/?(?:[?#]|$)/);if(r)return{value:r[1],source:"wake/url"}}catch(t){}return null}var Ie=t=>String(t==null?"":t).trim().toLowerCase();async function yn({size:t,quantity:e}){if(t){let i=[...document.querySelectorAll("input[attribute-value]")].find(c=>Ie(c.getAttribute("attribute-value"))===Ie(t));if(i){try{i.checked=!0}catch(c){}try{typeof window.selectAttribute=="function"?window.selectAttribute(i):i.click()}catch(c){}await new Promise(c=>setTimeout(c,600))}}let r=document.querySelector('[name="product-variant-id"]'),n=r&&r.value;if(!n)throw new Error("wake: product-variant-id n\xE3o encontrado");if(typeof window.addOrCreateCheckout!="function")throw new Error("wake: addOrCreateCheckout indispon\xEDvel");if(!await window.addOrCreateCheckout([{productVariantId:Number(n),quantity:e||1,customization:[]}]))throw new Error("wake: addOrCreateCheckout retornou false");return{platform:"wake",productVariantId:n,size:t||null}}function Re(t){if(t==null)return null;let e=String(t).match(/([\d.]+,\d{2}|\d+(?:\.\d{2})?)/),r=(e?e[1]:String(t)).replace(/[^\d.,]/g,"");if(!r)return null;let n=r.indexOf(",")>r.indexOf(".")?parseFloat(r.replace(/\./g,"").replace(",",".")):parseFloat(r.replace(/,/g,""));return Number.isFinite(n)&&n>0?n:null}async function gn(){try{let t=()=>{let o=document.querySelector(".mc-subtotal__value")||document.querySelector(".mc-subtotal");return o?Re(o.textContent):null},e=t();if(e==null&&typeof window.loadMiniCart=="function"){try{window.loadMiniCart()}catch(o){}await new Promise(o=>setTimeout(o,700)),e=t()}e==null&&(e=wn());let r=document.querySelector('.mc-products__count, [class*="mc-"][class*="count" i], [class*="minicart" i] [class*="count" i]'),n=r&&parseInt(String(r.textContent||"").replace(/\D/g,""),10)||null;if(e!=null)return{value:e,itemCount:n,currency:"BRL"}}catch(t){}return null}function wn(){try{let t=document.querySelector('[class*="mini-cart" i], .mini-cart')||document;for(let e of t.querySelectorAll("div,span,p,li,strong,b")){if(e.children.length>2)continue;let r=(e.textContent||"").replace(/\s+/g," ").trim();if(!(!/R\$/.test(r)||/frete|faltam|gr[aá]tis|desconto|economi/i.test(r))&&/^(sub)?total\b/i.test(r)){let n=Re(r);if(n)return n}}}catch(t){}return null}function xn(){if(typeof window.setCartDivVisibility!="function")return!1;try{typeof window.loadMiniCart=="function"&&window.loadMiniCart()}catch(t){}return setTimeout(()=>{try{let t=document.querySelector('[class*="mini-cart" i], .mini-cart');if(t&&t.getBoundingClientRect().width>0)return;window.setCartDivVisibility()}catch(t){}},350),!0}var Ot={};C(Ot,{addToCart:()=>kn,cartUrl:()=>Cn,detect:()=>vn,getCartSummary:()=>Sn,id:()=>bn,openCartDrawer:()=>Tn,skipRedirect:()=>_n});var Mt="/api/v2/front",Bt={"Content-Type":"application/json",Accept:"application/json","App-Token":"wapstore"},Pe=t=>String(t==null?"":t).trim().toLowerCase(),bn="wapstore",_n=!0,Cn="/checkout/carrinho";function vn(){try{if(document.querySelector('script[src*="/tema/"][src*="/dist/assets/"]')||/(?:^|;\s*)produto\/visitado=/.test(document.cookie))return!0}catch(t){}return!1}function je(t){if(!t||typeof t!="object")return null;let e=t.subtotal&&t.subtotal.valor;return e==null?null:{value:e,itemCount:t.quantidadeItens!=null?t.quantidadeItens:null,currency:"BRL"}}async function kn({size:t,quantity:e}){let r=await fetch(Mt+"/url/product/detail?url="+encodeURIComponent(location.pathname),{headers:Bt}).then(f=>f.json()),n=(r&&(r.produto||r.data||r)||{}).conteudo||{},o=n.atributos&&n.atributos.simples&&n.atributos.simples.valores||[];if(!o.length)throw new Error("wapstore: sem variante de compra (atributos.simples)");let i=t?o.find(f=>Pe(f.label)===Pe(t)):null;i=i||o.find(f=>f.selecionado)||o.find(f=>(f.estoque||0)>0)||o[0];let c=i&&i.carrinho;if(!c||!c.itens||!c.itens.length)throw new Error("wapstore: variante sem payload de carrinho");let a=c.itens.map(f=>Object.assign({},f,{quantidade:String(e||f.quantidade||1)})),s=await fetch(Mt+"/checkout/cart",{method:"POST",headers:Bt,body:JSON.stringify({itens:a,tipo:c.tipo||"produto"})});if(!s.ok)throw new Error("wapstore: add HTTP "+s.status);let l=await s.json().catch(()=>({})),p=je(l),x={platform:"wapstore",idProduto:a[0]&&a[0].idProduto,size:i&&i.label||null};return p&&(x.cartValue=p.value,x.itemCount=p.itemCount,x.currency=p.currency),x}async function Sn(){try{let t=await fetch(Mt+"/checkout/cart",{headers:Bt}).then(e=>e.json());return je(t)}catch(t){}return null}function Tn(){try{let t=document.querySelector(".common-sheet.side-cart, .side-cart");if(t&&t.getBoundingClientRect().width>0)return!0;let e=document.querySelector('.button-cart, [class*="button-cart"]');if(e)return e.click(),!0}catch(t){}return!1}var Nt={};C(Nt,{addToCart:()=>jn,detect:()=>In,getCartSummary:()=>Mn,id:()=>An,openCartDrawer:()=>Bn,resolveSku:()=>Rn,skipRedirect:()=>En});var An="linx",En=!0;function Ln(t){if(t==null)return null;let e=String(t).match(/([\d.]+,\d{2}|\d+(?:\.\d{2})?)/),r=(e?e[1]:String(t)).replace(/[^\d.,]/g,"");if(!r)return null;let n=r.indexOf(",")>r.indexOf(".")?parseFloat(r.replace(/\./g,"").replace(",",".")):parseFloat(r.replace(/,/g,""));return Number.isFinite(n)&&n>0?n:null}function In(){return typeof window.carrinhoLateral=="function"&&typeof window.addToCart=="function"}function Rn(){try{let t=(location.pathname.match(/-p(\d+)\/?(?:[?#]|$)/)||[])[1];if(t)return{value:t,source:"linx/url-pid"};let e=(String(document.body.className||"").match(/context-product-(\d+)/)||[])[1];if(e)return{value:e,source:"linx/context"}}catch(t){}return null}function Pn(){let t=[...document.querySelectorAll('.add-to-cart, [data-action="add-to-cart"]')];return t.find(e=>{let r=e.getBoundingClientRect();return r.width>0&&r.height>0})||t[0]||null}async function jn(){let t=Pn();if(!t)throw new Error("linx: bot\xE3o .add-to-cart n\xE3o encontrado");return t.click(),await new Promise(e=>setTimeout(e,1400)),{platform:"linx"}}function Mn(){try{let t=document.querySelector("#mini-cart");if(!t)return null;let e=null;for(let n of t.querySelectorAll("div,span,p,li,strong,b,td")){if(n.children.length>2)continue;let o=(n.textContent||"").replace(/\s+/g," ").trim();if(/^(sub)?total\b/i.test(o)&&/R\$/.test(o)&&(e=Ln(o),e))break}if(e==null)return null;let r=(t.textContent||"").match(/cont[ée]m\s+(\d+)\s+ite/i);return{value:e,itemCount:r?parseInt(r[1],10):null,currency:"BRL"}}catch(t){}return null}function Bn(){try{let e=typeof window.carrinhoLateral=="function"?window.carrinhoLateral():null;if(e&&typeof e.openCart=="function"){try{typeof e.fetchHTML=="function"&&e.fetchHTML()}catch(r){}return setTimeout(()=>{try{e.openCart()}catch(r){}},400),!0}}catch(e){}let t=document.querySelector("#mini-cart");if(t){try{t.classList.add("open")}catch(e){}return!0}return!1}var Dt={};C(Dt,{addToCart:()=>V,detect:()=>Nn,id:()=>On,resolveSku:()=>qt});var On="generic";function Nn(){return!0}function qt(){let t=T(["Product"]);if(t[0]){let e=t[0],r=e.sku||e.mpn||e.gtin13||e.productID;if(r)return{value:String(r),source:"jsonld"}}try{let e=document.querySelector('[itemprop="sku"]');if(e){let r=e.getAttribute("content")||(e.textContent||"").trim();if(r)return{value:String(r),source:"microdata"}}}catch(e){}try{let e=window.konfidencyData;if(e&&e.product&&e.product.variants&&e.product.variants[0])return{value:String(e.product.variants[0]),source:"konfidency"}}catch(e){}return null}var qn=/(adicionar\s*(à|a|ao)?\s*(sacola|carrinho|cesta|bolsa))|adicionar ao carrinho|add to (cart|bag)|comprar agora/i,Dn=/continuar|como comprar|lista|desejos|favorito/i;async function V(){let t=document.querySelectorAll("button,[role=button],input[type=submit]");for(let e of t){let r=(e.textContent||e.value||"").replace(/\s+/g," ").trim();if(r&&r.length<40&&qn.test(r)&&!Dn.test(r))try{return e.click(),{platform:"native-click",clicked:r}}catch(n){}}return{platform:"none",error:"bot\xE3o de carrinho nativo n\xE3o encontrado"}}var Be=[Et,et,It,Rt,Pt,jt,Ot,Nt],Un=[["woocommerce",()=>!!(window.wc_add_to_cart_params||window.woocommerce_params)],["lojaintegrada",()=>!!window.LojaIntegrada]],ot;function O(){return ot||(ot=Be.find(t=>{try{return t.detect()}catch(e){return!1}})||Dt,ot)}function Oe(){let t=Be.find(e=>{try{return e.detect()}catch(r){return!1}});if(t)return t.id;for(let[e,r]of Un)try{if(r())return e}catch(n){}return null}function N(){let t=O();if(t.id!=="generic"&&t.resolveSku)try{let e=t.resolveSku();if(e)return e}catch(e){}return qt()}async function Ne(t){t=t||{};let e={size:t.size||t.selectedSize||t.tamanho||null,color:t.color||t.selectedColor||t.colour||t.cor||null,sku:t.sku||t.identifier||t.selectedIdentifier||null,quantity:t.quantity||1},r=O();try{let n=r.addToCart?await r.addToCart(e):await V(e);return h("cart: adicionado",n),Ut(),Me(r,n,e.sku),n}catch(n){h('cart: adapter "'+r.id+'" falhou \u2014 fallback clique nativo',n&&n.message);let o=await V(e);return Ut(),Me(r,o,e.sku),o}}async function Me(t,e,r){try{let n=null;e&&e.cartValue!=null?n={value:e.cartValue,itemCount:e.itemCount!=null?e.itemCount:null,currency:e.currency||null}:t&&t.getCartSummary&&(n=await t.getCartSummary()),n&&n.value!=null&&(n.value>0||(n.itemCount||0)>0)&&d("cart_value",{via:"tryon",value:n.value,itemCount:n.itemCount!=null?n.itemCount:null,currency:n.currency||null,sku:r||null})}catch(n){}}async function Ft(){let t=O();if(t&&t.getCartSummary)try{return await t.getCartSummary()}catch(e){}return null}async function qe(t){t=t||{};let e=O(),r={platform:e.id};try{let n=N();r.sku=n&&n.value||null;let o={size:t.size||null,color:t.color||null,sku:r.sku,quantity:t.quantity||1};r.added=e.addToCart?await e.addToCart(o):await V(o),Ut();try{await zt()}catch(i){}r.cart=await Ft(),r.ok=!0}catch(n){r.ok=!1,r.error=n&&n.message||String(n)}return r}function Ut(){["cart:refresh","cart:updated","cart:build","ajaxProduct:added","product:added-to-cart"].forEach(t=>{try{document.dispatchEvent(new CustomEvent(t))}catch(e){}})}async function zt(){let t=O(),e=y(),r=null;try{r=await B()}catch(i){}let n=r&&r.template&&r.template.cart||r&&r.cart||{},o=n.afterAdd||n.behavior||e.cartBehavior;if(o||(o=e.cartRedirect===!1?"none":"auto"),o==="none")return!1;if(o==="auto"||o==="drawer"){let i=n.openSelector||e.cartOpenSelector;if(i){let c=document.querySelector(i);if(c)return setTimeout(()=>{try{c.click()}catch(a){}},300),!1}else if(t&&t.openCartDrawer){let c=!1;try{c=t.openCartDrawer()}catch(a){}if(c)return!1}}return!0}function De(){let t=O();if(t&&t.skipRedirect)return;let e=t&&t.cartUrl||"/cart";setTimeout(()=>{try{window.location.href=e}catch(r){}},250)}var Fn=/\/(thank[_-]?you|orders?\/|pedido[_-]?(confirmado|realizado|finalizado|sucesso)|sucesso|order[_-]?confirmation|compra[_-]?(finalizada|concluida)|orderplaced)/i,zn=/\/(my[_-]?account|minha[_-]?conta|account|conta|customer|cliente|profile|perfil|wishlist|favoritos)(\/|$)/i,$n=/\/checkout/i,Kn=/\/(cart|carrinho|sacola|bag)(\/|$|\?|#)/i,Hn=/\/(products?|produtos?|p)\//i,Vn=/\/(collections?|categoria|categorias|c|departamento)\//i,Jn=/\/(search|busca|s)(\/|\?)/i;function Ue(){try{if(window.__mkPageType)return window.__mkPageType}catch(r){}let t=(location.pathname||"").toLowerCase(),e=zn.test(t);try{let r=T();for(let n of r){let o=Array.isArray(n["@type"])?n["@type"]:[n["@type"]];if((o.includes("Order")||o.includes("Invoice"))&&!e)return"purchase";if(o.includes("Product"))return"pdp";if(o.includes("SearchResultsPage"))return"search";if(o.includes("CollectionPage")||o.includes("ItemList"))return"category"}}catch(r){}return t==="/"||t===""||t==="/home"||t==="/index.html"?"home":Fn.test(t)&&!e?"purchase":$n.test(t)?"checkout":Kn.test(t)?"cart":Hn.test(t)?"pdp":Vn.test(t)?"category":Jn.test(t)?"search":"other"}function Fe(t){let e=null;try{let r=new URLSearchParams(location.search),n=["utm_source","utm_medium","utm_campaign","utm_term","utm_content"],o={};for(let i of n){let c=r.get(i);c&&(o[i.replace("utm_","")]=c)}Object.keys(o).length&&(e=o)}catch(r){}return{url:location.href,pathname:location.pathname,referrer:document.referrer||null,title:document.title||null,pageType:t,utm:e,userAgent:navigator.userAgent,language:navigator.language,viewport:window.innerWidth+"x"+window.innerHeight,platform:Wn()}}function Wn(){return Oe()}var $t={},Gn=null,J=0,ze=!1;function $e(t){ze||(ze=!0,Ke(t),Xn(),Yn(),Zn(),Qn(),to(t))}function Ke(t){$t={};let e=Ue(),r=Fe(e);if(be(r),d("view",{url:location.href,pathname:location.pathname,referrer:document.referrer||null,title:document.title||null,pageType:e}),typeof t=="function")try{t(e,r)}catch(n){}}function Xn(){if(!document.body)return;let t={A:1,BUTTON:1,INPUT:1,SELECT:1,TEXTAREA:1},e=0;document.body.addEventListener("click",r=>{try{let n=Date.now();if(n-e<100)return;e=n;let o=r.target;for(let a=0;a<5&&o&&o!==document.body&&!(t[o.tagName]||o.getAttribute&&o.getAttribute("role")==="button");a++)o=o.parentElement;if(!o||!t[o.tagName]&&!(o.getAttribute&&o.getAttribute("role")==="button"))return;let i={tag:o.tagName},c=o.tagName==="INPUT"||o.tagName==="TEXTAREA"?o.value:o.textContent;i.text=(c||"").replace(/\s+/g," ").trim().substring(0,100),o.href&&(i.href=String(o.href).substring(0,500)),o.id&&(i.id=o.id),o.className&&typeof o.className=="string"&&(i.classes=o.className.trim().substring(0,200)),d("click",i)}catch(n){}},{capture:!0,passive:!0})}function Yn(){let t=[25,50,75,100],e=null,r=()=>{try{let n=window.scrollY||document.documentElement.scrollTop||0,o=Math.max(document.body&&document.body.scrollHeight||0,document.documentElement&&document.documentElement.scrollHeight||0);if(o<=0)return;let i=Math.min(100,Math.floor((n+window.innerHeight)/o*100));for(let c of t)i>=c&&!$t[c]&&($t[c]=!0,d("scroll_depth",{depth:c}))}catch(n){}};r(),window.addEventListener("scroll",()=>{e||(e=setTimeout(()=>{e=null,r()},250))},{passive:!0})}function Zn(){document.body&&document.body.addEventListener("submit",t=>{try{let e=t.target;if(!e||e.tagName!=="FORM"||e.querySelector('input[type="password"], input[name*="card"], input[name*="cpf"]'))return;let r="other",n=(e.className||"").toLowerCase(),o=(e.action||"").toLowerCase();e.querySelector('input[type="search"], input[name="q"], input[name="s"]')?r="search":/newsletter|subscribe|mailchimp/.test(n+o)?r="newsletter":/contact|contato/.test(n+o)&&(r="contact"),d("form_submit",{form_id:e.id||"",form_type:r})}catch(e){}},{capture:!0})}function Qn(){let t=y();J=Date.now(),Gn=setInterval(()=>{if(document.hidden)return;let e=Date.now(),r=Math.round((e-J)/1e3);J=e,r>0&&r<60&&d("engagement",{url:location.pathname,dwellSec:r})},t.engagementIntervalMs),document.addEventListener("visibilitychange",()=>{if(document.hidden){let e=Math.round((Date.now()-J)/1e3);e>0&&e<600&&d("engagement",{url:location.pathname,dwellSec:e})}J=Date.now()})}function to(t){let e=location.href,r=()=>{location.href!==e&&(e=location.href,Ke(t))};try{let n=history.pushState,o=history.replaceState;history.pushState=function(){n.apply(this,arguments),setTimeout(r,0)},history.replaceState=function(){o.apply(this,arguments),setTimeout(r,0)},window.addEventListener("popstate",r)}catch(n){}}function Ht(){let t=N(),e=T(["Product"]);if(e.length>0){let o=e[0],i=Array.isArray(o.offers)?o.offers[0]:o.offers;return{sku:t?t.value:o.sku||o.mpn||o.gtin13||o.productID||null,skuSource:t?t.source:null,name:typeof o.name=="string"?o.name:null,price:i&&parseFloat(i.price||i.lowPrice)||null||He(),currency:i?i.priceCurrency:null,brand:o.brand?typeof o.brand=="string"?o.brand:o.brand.name:null,category:o.category||null}}let r=o=>{let i=document.querySelector('meta[property="og:'+o+'"], meta[property="product:'+o+'"]');return i?i.getAttribute("content"):null},n=o=>{let i=document.querySelector('[itemprop="'+o+'"]');return i?i.getAttribute("content")||(i.textContent||"").trim():null};if(t||r("type")==="product"||r("price:amount")||n("name")){let o=n("price")||r("price:amount"),i=o&&parseFloat(String(o).replace(",","."))||null;return{sku:t?t.value:null,skuSource:t?t.source:null,name:n("name")||r("title")||document.title||null,price:(i&&i>0?i:null)||He(),currency:n("priceCurrency")||r("price:currency")||null,brand:n("brand")||null,category:null}}return null}function He(){try{let t=window.dataLayer;if(!Array.isArray(t))return null;for(let e=t.length-1;e>=0;e--){let r=t[e];if(!r||typeof r!="object")continue;let n=r.ecommerce||r,o=n&&n.items||null,i=n&&n.detail&&n.detail.products||n&&n.products||r.products||null,c=Array.isArray(o)&&o[0]&&o[0].price||Array.isArray(i)&&i[0]&&i[0].price||null,a=Kt(c!=null?String(c):"");if(a)return a}}catch(t){}return null}function L(){try{let t=location.pathname+location.search,e=t.match(/order[_-]?confirmation\/([\w-]+)/i)||t.match(/[?&]order[_-]?id=([\w-]+)/i)||t.match(/\/orders?\/([\w-]{4,})/i)||t.match(/pedido[_-]?(?:confirmado|realizado|finalizado)?\/([\w-]+)/i);return e?e[1]:null}catch(t){return null}}function Vt(){let t=T(["Order","Invoice"]);if(t.length>0){let o=t[0],i=o.totalPaymentDue?parseFloat(o.totalPaymentDue.price):parseFloat(o.price||o.total);return{orderId:o.orderNumber||o.confirmationNumber||o.identifier||L(),revenue:Number.isFinite(i)?i:null,currency:o.totalPaymentDue&&o.totalPaymentDue.priceCurrency||o.priceCurrency||null,source:"jsonld"}}try{let o=window.Shopify&&window.Shopify.checkout;if(o&&o.total_price!=null){let i=parseFloat(o.total_price);return{orderId:(o.order_id!=null?String(o.order_id):null)||o.token||L(),revenue:Number.isFinite(i)?i:null,currency:o.currency||null,itemCount:Array.isArray(o.line_items)?o.line_items.length:null,source:"shopify"}}}catch(o){}try{if(Array.isArray(window.dataLayer))for(let o=window.dataLayer.length-1;o>=0;o--){let i=window.dataLayer[o],c=i&&i.ecommerce||i&&i.ecommerce_data&&i.ecommerce_data.ecommerce;if(c&&(i.event==="purchase"||c.purchase)){let a=c.purchase&&c.purchase.actionField,s=parseFloat(a&&(a.revenue||a.value)||c.value||c.revenue);return{orderId:a&&(a.id||a.transaction_id)||c.transaction_id||c.transactionId||L(),revenue:Number.isFinite(s)?s:null,currency:c.currency||c.currencyCode||a&&a.currency||null,itemCount:(c.purchase&&c.purchase.products||c.items||c.products||[]).length||null,source:"datalayer"}}}}catch(o){}let e=document.querySelector('meta[property="order:total"], meta[name="order-total"]');if(e&&e.content)return{orderId:L(),revenue:parseFloat(e.content)||null,source:"meta"};let r=eo();if(r)return r;let n=L();return n?{orderId:n,revenue:null,source:"url"}:null}function eo(){try{let t=document.querySelector(".orderTotalPrice");if(t){let r=String(t.value||t.getAttribute("value")||t.textContent||"").trim(),n=r.split(/\s+/),o=Kt(n.length>1?n[n.length-1]:r);if(o)return{orderId:Ve(),revenue:o,currency:(n.length>1?n[0]:null)||null,source:"dom"}}let e=[".order-total","#order-total",".total-price",".order__total","[data-order-total]",".summary-total",".grand-total"];for(let r of e){let n=document.querySelector(r);if(n){let o=Kt(n.value||n.textContent);if(o)return{orderId:Ve(),revenue:o,source:"dom"}}}return null}catch(t){return null}}function Ve(){try{let t=document.querySelector(".orderID");if(t&&(t.value||t.getAttribute("value")))return t.value||t.getAttribute("value");let r=(document.body.innerText||"").match(/(?:pedido|order|n[º°o]\.?)\s*#?\s*([A-Z0-9-]{4,})/i);return r?r[1]:null}catch(t){return null}}function Kt(t){if(!t)return null;let e=String(t).replace(/[^\d.,]/g,"");if(!e)return null;let r;e.indexOf(",")>e.indexOf(".")?r=e.replace(/\./g,"").replace(",","."):r=e.replace(/,/g,"");let n=parseFloat(r);return Number.isFinite(n)&&n>0?n:null}function Je(){let t=T(["ItemList","CollectionPage"]);if(t.length===0)return null;let e=t[0],r=e.itemListElement||e.mainEntity&&e.mainEntity.itemListElement||[],n=[];for(let o of r.slice(0,50)){let i=o.item||o;i&&(i.sku||i.productID||i.name)&&n.push(i.sku||i.productID||i.name)}return n.length>0?{count:n.length,skus:n.slice(0,20)}:null}var We=!1,it=[/\b(adicionar|adic\.?|colocar|incluir|jogar)\b.{0,30}\b(carrinho|sacola|sacolinha|bag)\b/i,/\bcomprar\b(?!\s+(em|por|sem))/i,/\bcomprar\s*$/i,/^add\s+to\s+(cart|bag)\b/i,/^buy\s+(now|it|this)\b/i,/^(sacolinha|carrinho|sacola)$/i],ro=[/^finalizar(\s+(compra|pedido|pagamento))?\b/i,/^(fechar|confirmar)\s+(compra|pedido|pagamento)\b/i,/^pagar(\s+(agora|pedido))?\b/i,/^(complete|place)\s+(purchase|order)\b/i,/^checkout$/i];function W(t,e){for(let r=0;r<t.length;r++)if(t[r].test(e))return!0;return!1}function Ye(t){switch(t){case"pdp":{let e=Ht();d("view_item",e||{sku:null});break}case"category":case"search":{let e=Je();d("view_item_list",e||{count:0});break}case"cart":Ft().then(e=>d("view_cart",e&&e.value!=null?{value:e.value,itemCount:e.itemCount,currency:e.currency}:{})).catch(()=>d("view_cart",{}));break;case"checkout":d("begin_checkout",{});break;case"purchase":no();break}}var Ge=500,Xe=16;function no(){let t=!1,e=0,r=(o,i)=>{t||(t=!0,oo(o,i))};try{window.addEventListener("pagehide",()=>r(Vt(),!0),{once:!0})}catch(o){}let n=()=>{if(t)return;let o=Vt();if(o&&o.revenue!=null)return r(o);if(e++>=Xe)return h("purchase: receita n\xE3o apareceu em "+Ge*Xe+"ms \u2014 emitindo sem valor"),r(o);setTimeout(n,Ge)};n()}function oo(t,e){if(t&&!t.orderId&&(t.orderId=L()),t&&t.orderId){let r="_mk_purch_"+t.orderId;try{if(sessionStorage.getItem(r)){h("purchase j\xE1 contado",t.orderId);return}sessionStorage.setItem(r,"1")}catch(n){}}else if(We)return;if(We=!0,d("purchase",t||{revenue:null,_note:"no_order_data_extracted"}),h("purchase emitido",t),e)try{E(!0)}catch(r){}}function Ze(){if(!document.body)return;let t=0;document.body.addEventListener("click",e=>{try{let r=Date.now();if(r-t<150)return;let n=e.target;for(let a=0;a<5&&n&&n!==document.body&&!(n.tagName==="BUTTON"||n.tagName==="A"||n.getAttribute&&n.getAttribute("role")==="button");a++)n=n.parentElement;if(!n)return;let o=n.tagName!=="A",i=(n.textContent||"").replace(/\s+/g," ").trim();if(!i||i.length>80)return;let c=!1;if((W([it[0]],i)||o&&W([it[1]],i)||o&&W([it[2]],i)||W(it.slice(3),i))&&(c=!0),c){t=r;let a=Ht();d("add_to_cart",{via:"click",buttonText:i,sku:a?a.sku:null,price:a?a.price:null});return}o&&W(ro,i)&&(t=r,d("begin_checkout",{via:"click",buttonText:i}))}catch(r){}},{capture:!0,passive:!0})}var ct={};C(ct,{available:()=>lo,id:()=>io,iframeSrc:()=>ao,modalSize:()=>co,onMounted:()=>so});var io="mk-fashion",co={width:430,height:800};function ao(t,e){let r=encodeURIComponent(e).replace(/\./g,"%2E");return y().appUrl+"/"+t+"/"+r}async function lo(t,e){let r=y().apiUrl+"/availability/"+t+"?sku="+encodeURIComponent(e),n=await fetch(r);if(!n.ok)throw new Error("availability HTTP "+n.status);return n.json()}function so(){}var Jt={};C(Jt,{available:()=>ho,id:()=>uo,iframeSrc:()=>mo,modalSize:()=>po,onMounted:()=>bo});var uo="mk-makeup",po={width:1160,height:700};function fo(){return window.__MK&&window.__MK.pulpoarUrl||"https://plugin.pulpoar.com/vto"}function mo(t){return fo()+"/"+encodeURIComponent(t)}function ho(){return Promise.resolve({available:!0})}var yo="https://cdn.jsdelivr.net/npm/@pulpoar/plugin-sdk@latest/dist/index.iife.js",at=null;function go(){return window.pulpoar?Promise.resolve(window.pulpoar):at||(at=new Promise(t=>{try{let e=document.createElement("script");e.src=yo,e.async=!0,e.onload=()=>t(window.pulpoar||null),e.onerror=()=>t(null),(document.head||document.documentElement).appendChild(e)}catch(e){t(null)}}),at)}async function wo(t){try{if(window.Shopify||window.ShopifyAnalytics){let e=(location.pathname.split("/products/")[1]||"").split(/[?#]/)[0];if(e){let r=window.ShopifyAnalytics&&window.ShopifyAnalytics.meta,n=new URLSearchParams(location.search).get("variant")||r&&r.selectedVariantId,i=(await fetch("/products/"+e+".js").then(s=>s.json())).variants||[],c=n?i.find(s=>String(s.id)===String(n)):null;if(c&&c.sku)return c.sku;let a=i.find(s=>s.available)||i[0];if(a&&a.sku)return a.sku}}}catch(e){}return t||null}function xo(t){let e=Array.isArray(t)?t[0]:t;return!e||typeof e!="object"?{quantity:1}:{sku:e.sku||e.slug||e.key||e.variant_key||e.barcode||null,color:e.color||e.shade||e.colorName||null,size:e.size||null,quantity:1}}function bo(t,e){go().then(async r=>{if(!r){h("pulpoar: SDK n\xE3o carregou");return}let n=await wo(e.identifier);if(h("pulpoar variante p/ cat\xE1logo",n),n)try{r.applyVariantsWithCatalog([String(n)],o=>{e.track("product_loaded",{via:"makeup",applied:Array.isArray(o)?o.length:0})})}catch(o){h("pulpoar applyVariantsWithCatalog falhou",o&&o.message)}try{r.onReady(()=>e.fire("onReady",{}))}catch(o){}try{r.onAddToCart(o=>{h("pulpoar onAddToCart",o),e.handleAddToCart(xo(o),"makeup")})}catch(o){}try{r.onGoToProduct(o=>e.fire("onGoToProduct",o))}catch(o){}})}var _o={"mk-fashion":ct,"mk-makeup":Jt};function lt(t){return _o[t]||ct}var S=null,k=null,ut=!1,dt=!1,q=null,Qe={},Wt=null,st=0,v={onReady:null,onClose:null,onAddToCart:null,onProductLoaded:null,onError:null,onInteraction:null,onGenerationComplete:null},Co={gregory:"698c7e791d3129430f15dddd"};function er(t){return t?Co[String(t).toLowerCase()]||t:null}async function D(t,e){let r=er(t),n=String(e||"").trim();return lt(y().product).available(r,n)}async function rr(t,e){e||(e=t,t="698c7e791d3129430f15dddd");try{return(await D(t,e)).available===!0}catch(r){return!1}}async function pt(t){if(t=t||{},ut)return;let e=er(t.projectId||t.projectid||t.store),r=String(t.identifier||t.sku||"").trim();if(!e||!r){console.error("[mk-sdk] open: projectId e identifier obrigatorios");return}let n=e+":"+r;if(Qe[n]!==!0){try{if(!(await D(e,r)).available){alert("Produto nao disponivel para prova virtual.");return}}catch(i){alert("Produto nao encontrado ou indisponivel.");return}Qe[n]=!0}let o=lt(y().product).modalSize||{width:430,height:800};q={projectId:e,identifier:r,width:t.width||o.width,height:t.height||o.height},dt=!1,ir(),vo(q),ut=!0,st=Date.now(),d("modal_opened",{projectId:e,identifier:r})}function Xt(){if(!ut)return;let t=dt;if(dt=!1,ko(),ut=!1,A("onClose"),d("modal_closed",{projectId:q&&q.projectId,identifier:q&&q.identifier}),t)try{De()}catch(e){}}function nr(t){try{mr().forEach(e=>{t?(e.dataset.mkPrevDisplay===void 0&&(e.dataset.mkPrevDisplay=e.style.display),e.style.display="none"):(e.style.display=e.dataset.mkPrevDisplay||"",delete e.dataset.mkPrevDisplay)})}catch(e){}}function vo(t){S=document.createElement("div"),S.style.cssText="position:fixed;inset:0;background:rgba(0,0,0,.8);display:flex;align-items:center;justify-content:center;z-index:2147483647;",nr(!0);let e=document.createElement("div"),r=typeof t.width=="number"?t.width+"px":t.width,n=typeof t.height=="number"?t.height+"px":t.height;e.style.cssText="position:relative;width:"+r+";height:"+n+";max-width:100vw;max-height:100dvh;border-radius:12px;overflow:hidden;background:#fff;",k=document.createElement("iframe");let o=lt(y().product);k.src=o.iframeSrc(t.projectId,t.identifier),k.style.cssText="width:100%;height:100%;border:none;",k.setAttribute("allow","camera *; microphone *"),k.setAttribute("allowfullscreen","true"),e.appendChild(k),S.appendChild(e),document.body.appendChild(S);try{o.onMounted(k,{projectId:t.projectId,identifier:t.identifier,handleAddToCart:cr,track:d,fire:A})}catch(i){h("launcher.onMounted falhou",i&&i.message)}h("try-on modal aberto",k.src)}function ko(){S&&S.parentNode&&S.parentNode.removeChild(S),S=null,k=null,nr(!1)}var tr=!1;function or(){ir()}function ir(){tr||(tr=!0,window.addEventListener("message",t=>{let e=t.data;if(!e||e.source!=="mkfashion-app")return;let r=e.action,n=e.data||{};switch(r){case"close_request":Xt();break;case"ready":A("onReady",n);break;case"product_loaded":A("onProductLoaded",n),d("product_loaded",Gt(n));break;case"interaction":{A("onInteraction",n),n&&n.method&&(Wt=n.method),d(So(n),Gt(n));break}case"add_to_cart":cr(n,"tryon");break;case"generation_start":st=Date.now();break;case"generation_complete":A("onGenerationComplete",n),d("generation_complete",{method:n.method||Wt||"unknown",durationMs:st?Date.now()-st:null,success:n.success!==!1,imageUrlPresent:!!n.imageUrl});break;case"generation_error":A("onError",n),d("generation_error",{method:Wt||"unknown",error:n&&n.error});break}}))}function cr(t,e){if(d("add_to_cart",Object.assign({via:e||"tryon"},Gt(t))),typeof v.onAddToCart=="function"){A("onAddToCart",t);return}Ne(t).then(()=>zt()).then(r=>{dt=!!r}).catch(()=>{})}function So(t){return t&&t.action,"interaction"}function Gt(t){if(!t||typeof t!="object")return t;let e={};for(let r in t){if(r==="imageUrl"||r==="image"||r==="product"){r==="product"&&t[r]?(e.productSku=t[r].sku||null,e.productName=t[r].name||null):e[r+"Present"]=!!t[r];continue}e[r]=t[r]}return e}function A(t,e){if(typeof v[t]=="function")try{v[t](e)}catch(r){console.error("[mk-sdk]",r)}}function ar(t){v.onReady=t}function lr(t){v.onClose=t}function sr(t){v.onAddToCart=t}function ur(t){v.onProductLoaded=t}function dr(t){v.onError=t}function pr(t){v.onInteraction=t}function fr(t){v.onGenerationComplete=t}var Ao=767,Eo=1024,Lo=/(adicionar\s*(à|a|ao)?\s*(sacola|carrinho|cesta|bolsa))|adicionar ao carrinho|add to (cart|bag)|comprar agora|^comprar$|finalizar compra|eu quero/i,Io=/continuar|como comprar|lista|desejos|favorito|looks|cupom/i;function Yt(t){try{let e=t.getBoundingClientRect();if(e.width<=0||e.height<=0)return!1;let r=getComputedStyle(t);return r.display!=="none"&&r.visibility!=="hidden"&&r.opacity!=="0"}catch(e){return!1}}function Ro(t){if(!t)return!1;try{let e=document.querySelector(t);return!!e&&Yt(e)}catch(e){return!1}}function Po(t){return(t.tagName==="INPUT"?t.value||"":t.textContent||"").replace(/\s+/g," ").trim()}function jo(t){if(!t||typeof t!="object"||t.selector)return t;let e=!1;if(["mobile","tablet","desktop"].forEach(n=>{let o=t[n];o&&o.mkAnchor===1&&o.anchor&&typeof o.anchor=="object"&&(e=!0)}),!e)return t;let r={};return["mobile","tablet","desktop"].forEach(n=>{let o=t[n];if(o){if(o.selector){r[n]=o;return}if(o.mkAnchor===1&&o.anchor&&typeof o.anchor=="object"){let i=o.anchor[n]||o.anchor.desktop||o.anchor.mobile||o.anchor.tablet;i&&i.selector&&(r[n]=i)}}}),["bpMobile","bpTablet","breakpoint"].forEach(n=>{t[n]!=null&&(r[n]=t[n])}),r}function ft(t){if(!t||typeof t!="object")return null;if(t=jo(t),t.selector)return t;let e=[["mobile",t.mobile],["tablet",t.tablet],["desktop",t.desktop]].filter(s=>s[1]&&s[1].selector);if(e.length===0)return null;if(e.length===1)return e[0][1];let r=e.filter(([,s])=>Ro(s.selector));if(r.length===1)return r[0][1];let n=window.innerWidth||1024,o=Number(t.bpMobile)||Number(t.breakpoint)||Ao,i=Number(t.bpTablet)||Eo,c=s=>(e.find(l=>l[0]===s)||[])[1],a=n<=o?["mobile","tablet","desktop"]:n<=i?["tablet","desktop","mobile"]:["desktop","tablet","mobile"];for(let s of a){let l=c(s);if(l)return l}return e[0][1]}function Zt(t){let e=ft(t);if(e&&e.selector)try{let r=document.querySelector(e.selector);if(r&&Yt(r))return{el:r,position:e.position||"afterend",mode:e.mode||"flow",style:e.style||"",align:e.align||"top-left",selector:e.selector}}catch(r){}return null}function hr(){let t=y(),e=Zt(t&&t.anchor);if(e)return e;let r=document.querySelectorAll('button, [role="button"], a.btn, a.button, input[type="submit"], input[type="button"]');for(let n of r){let o=Po(n);if(!(!o||o.length>40)&&!Io.test(o)&&Lo.test(o)&&Yt(n))return{el:n,position:"afterend",mode:"flow",style:"",selector:null}}return null}var _="'Plus Jakarta Sans', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif",Qt={none:"0",sm:"4px",md:"8px",pill:"9999px"},te={none:"0",sm:"4px",md:"8px",lg:"16px"},Mo='<svg viewBox="0 0 17.5263 20.6862" fill="none" xmlns="http://www.w3.org/2000/svg" style="display:block;width:100%;height:100%"><g><path d="M8.49995 12.1862C10.1568 12.1862 11.5 10.8431 11.5 9.18622C11.5 7.52936 10.1568 6.18622 8.49995 6.18622C6.8431 6.18622 5.49995 7.52936 5.49995 9.18622C5.49995 10.8431 6.8431 12.1862 8.49995 12.1862Z" stroke="currentColor" shape-rendering="crispEdges"/><path d="M0.5 9.11152C0.5 6.56953 0.5 5.29894 1.1099 4.38664C1.375 3.9902 1.71424 3.65088 2.10821 3.38809C2.6945 2.9958 3.42899 2.85564 4.55351 2.80588C5.09013 2.80588 5.55183 2.39949 5.65687 1.87284C5.73715 1.48708 5.94572 1.14138 6.24735 0.894155C6.54898 0.646934 6.92516 0.51336 7.31231 0.516006H9.9734C10.7779 0.516006 11.4709 1.08412 11.6288 1.87284C11.7339 2.39949 12.1956 2.80588 12.7322 2.80588C13.8559 2.85564 12.9129 4.67413 13.5 5.06559C13.8949 5.32932 15.1484 3.80355 15.5 4.02647C16.1099 4.93876 16.7857 6.56953 16.7857 9.11152C16.7857 11.6535 16.7857 12.9233 16.1758 13.8364C15.9107 14.2328 15.5715 14.5722 15.1775 14.835C14.2647 15.4445 12.9936 15.4445 10.4522 15.4445H6.83351C4.29213 15.4445 3.02103 15.4445 2.10821 14.835C1.71446 14.5718 1.3755 14.2322 1.11071 13.8356C0.933802 13.5672 0.803519 13.2698 0.725557 12.9564" stroke="currentColor" stroke-linecap="round"/><path d="M12.676 0.607931C12.9446 -0.178095 14.0307 -0.2019 14.3491 0.536515L14.3761 0.60838L14.7385 1.66839C14.8216 1.91149 14.9559 2.13395 15.1322 2.32076C15.3086 2.50757 15.5229 2.65439 15.7608 2.75131L15.8583 2.78769L16.9183 3.14971C17.7044 3.41831 17.7282 4.50437 16.9902 4.82283L16.9183 4.84978L15.8583 5.21225C15.6151 5.29526 15.3926 5.42947 15.2057 5.60582C15.0188 5.78218 14.8719 5.99657 14.7749 6.23453L14.7385 6.33155L14.3765 7.39201C14.1079 8.17803 13.0219 8.20184 12.7039 7.46387L12.676 7.39201L12.314 6.332C12.231 6.08881 12.0968 5.86627 11.9204 5.67938C11.744 5.49249 11.5297 5.3456 11.2917 5.24863L11.1947 5.21225L10.1347 4.85022C9.34817 4.58163 9.32437 3.49557 10.0628 3.17756L10.1347 3.14971L11.1947 2.78769C11.4378 2.70462 11.6602 2.57039 11.847 2.39404C12.0339 2.21769 12.1807 2.00333 12.2776 1.76541L12.314 1.66839L12.676 0.607931Z" fill="currentColor"/></g></svg>',Bo='<svg viewBox="0 0 11.6122 12.7248" fill="none" xmlns="http://www.w3.org/2000/svg" style="display:block;width:12px;height:12px"><path d="M4.09055 2.01133C4.43939 0.9905 5.84989 0.959583 6.26347 1.91858L6.29847 2.01192L6.76922 3.38858C6.8771 3.7043 7.05144 3.99321 7.28047 4.23583C7.5095 4.47845 7.7879 4.66912 8.09689 4.795L8.22347 4.84225L9.60014 5.31242C10.621 5.66125 10.6519 7.07175 9.69347 7.48533L9.60014 7.52033L8.22347 7.99108C7.90764 8.09889 7.61862 8.2732 7.3759 8.50223C7.13318 8.73127 6.94241 9.0097 6.81647 9.31875L6.76922 9.44475L6.29905 10.822C5.95022 11.8428 4.53972 11.8737 4.12672 10.9153L4.09055 10.822L3.62039 9.44533C3.51258 9.12951 3.33827 8.84048 3.10924 8.59776C2.8802 8.35504 2.60177 8.16427 2.29272 8.03833L2.16672 7.99108L0.790054 7.52092C-0.231363 7.17208 -0.26228 5.76158 0.69672 5.34858L0.790054 5.31242L2.16672 4.84225C2.48244 4.73437 2.77135 4.56003 3.01397 4.331C3.25658 4.10197 3.44726 3.82357 3.57314 3.51458L3.62039 3.38858L4.09055 2.01133ZM9.86147 0C9.9706 0 10.0775 0.0306123 10.1701 0.0883584C10.2627 0.146104 10.3373 0.228668 10.3853 0.326667L10.4133 0.394917L10.6175 0.993417L11.2166 1.19758C11.3259 1.23474 11.4218 1.30353 11.492 1.39523C11.5623 1.48693 11.6037 1.59741 11.611 1.71268C11.6184 1.82795 11.5914 1.94281 11.5334 2.04271C11.4755 2.14261 11.3891 2.22305 11.2854 2.27383L11.2166 2.30183L10.6181 2.506L10.4139 3.10508C10.3767 3.21442 10.3078 3.31024 10.2161 3.38041C10.1244 3.45058 10.0139 3.49194 9.89859 3.49925C9.78333 3.50656 9.66849 3.47949 9.56863 3.42147C9.46876 3.36345 9.38837 3.27709 9.33764 3.17333L9.30964 3.10508L9.10547 2.50658L8.50639 2.30242C8.39702 2.26526 8.30115 2.19647 8.23092 2.10477C8.16069 2.01307 8.11926 1.90259 8.11189 1.78732C8.10452 1.67205 8.13153 1.55719 8.18951 1.45729C8.24749 1.35739 8.33381 1.27695 8.43755 1.22617L8.50639 1.19817L9.10489 0.994L9.30905 0.394917C9.34839 0.279665 9.42281 0.179613 9.52187 0.108791C9.62094 0.0379686 9.73969 -0.0000730808 9.86147 0Z" fill="currentColor"/></svg>';function g(t,e={}){let r=document.createElement(t);if(e.style&&(r.style.cssText=e.style),e.text!=null&&(r.textContent=e.text),e.html!=null&&(r.innerHTML=e.html),e.attrs)for(let n in e.attrs)r.setAttribute(n,e.attrs[n]);if(e.on)for(let n in e.on)r.addEventListener(n,e.on[n]);if(e.children)for(let n of e.children)n&&r.appendChild(n);return r}function mt(t,e){let r=Number(e)>0?Number(e):24;return g("span",{style:`width:${r}px;height:${r}px;padding:2px;box-sizing:border-box;display:inline-flex;align-items:center;justify-content:center;color:${t};flex-shrink:0;`,html:Mo})}function yr(t){return g("span",{style:`width:12px;height:12px;display:inline-flex;align-items:center;justify-content:center;color:${t};flex-shrink:0;`,html:Bo})}function ht(t){return t.borderWidth>0&&t.borderColor?`${t.borderWidth}px solid ${t.borderColor}`:"none"}function yt(){if(!document.getElementById("mk-jakarta-font"))try{document.head.appendChild(g("link",{attrs:{id:"mk-jakarta-font",rel:"stylesheet",href:"https://fonts.googleapis.com/css2?family=Plus+Jakarta+Sans:wght@400;600;700&display=swap"}}))}catch(t){}}function Oo(t){return t.subtext?g("span",{style:`display:flex;align-items:center;justify-content:center;padding:4px;background:${t.badgeBgColor};font-family:${_};font-weight:700;font-size:16px;text-transform:uppercase;color:${t.badgeTextColor};line-height:1;white-space:nowrap;`,text:t.subtext}):null}function gr(t,e){yt();let r=g("span",{style:"display:inline-flex;align-items:center;gap:4px;",children:[mt(t.textColor,t.iconSize),g("span",{text:t.text,style:`font-family:${_};font-weight:700;font-size:${t.fontSize}px;text-transform:uppercase;letter-spacing:2px;color:${t.textColor};white-space:nowrap;text-align:center;line-height:1;`})]});return g("button",{attrs:{type:"button"},style:`display:flex;align-items:center;justify-content:center;gap:8px;padding:8px;width:100%;max-width:238px;box-sizing:border-box;background:${t.bgColor};border:${ht(t)};border-radius:${t.borderRadiusPx};font-family:${_};cursor:pointer;transition:opacity 0.2s ease;line-height:1;-webkit-appearance:none;appearance:none;`,children:[r,Oo(t)],on:{mouseenter:n=>{n.currentTarget.style.opacity="0.85"},mouseleave:n=>{n.currentTarget.style.opacity="1"},click:n=>{try{n.preventDefault(),n.stopPropagation()}catch(o){}try{e&&e()}catch(o){}}}})}function qo(t){return t.subtext?g("span",{style:`display:flex;align-items:center;gap:4px;padding:4px;background:${t.badgeBgColor};font-family:${_};font-weight:600;font-size:10px;text-transform:uppercase;color:${t.badgeTextColor};line-height:1;white-space:nowrap;`,children:[yr(t.badgeTextColor),g("span",{text:t.subtext})]}):null}function Do(t,e){return g("button",{attrs:{type:"button"},style:`display:flex;align-items:center;justify-content:center;gap:8px;padding:8px 12px 8px 8px;width:100%;margin-top:auto;box-sizing:border-box;background:${t.bgColor};border:${ht(t)};border-radius:${t.borderRadiusPx};filter:drop-shadow(0 0 6px rgba(0,0,0,0.08));font-family:${_};cursor:pointer;transition:opacity 0.2s ease;line-height:1;-webkit-appearance:none;appearance:none;`,children:[mt(t.textColor,t.iconSize),g("span",{text:t.text,style:`font-family:${_};font-weight:700;font-size:${t.fontSize}px;color:${t.textColor};white-space:nowrap;line-height:1;`})],on:{mouseenter:r=>{r.currentTarget.style.opacity="0.85"},mouseleave:r=>{r.currentTarget.style.opacity="1"},click:r=>{try{r.preventDefault(),r.stopPropagation()}catch(n){}try{e&&e()}catch(n){}}}})}function wr(t,e){yt();let r=g("div",{style:"display:flex;flex-direction:column;gap:4px;",children:[t.cardTitle&&g("p",{text:t.cardTitle,style:`margin:0;font-family:${_};font-weight:700;font-size:16px;letter-spacing:1px;text-transform:uppercase;color:${t.cardTitleColor};line-height:1.2;`}),t.cardDescription&&g("p",{html:t.cardDescription,style:`margin:0;font-family:${_};font-weight:400;font-size:12px;max-width:177px;line-height:1.2;color:${t.cardTextColor};`})]}),n=g("div",{style:"display:flex;flex-direction:column;justify-content:space-between;gap:16px;flex:1 1 0;min-width:0;",children:[r,t.cardFooter&&g("p",{text:t.cardFooter,style:`margin:0;font-family:${_};font-weight:400;font-size:10px;color:${t.cardTextColor};line-height:1.2;`})]}),o=g("div",{style:"display:flex;flex-direction:column;align-items:flex-end;flex:1 1 0;min-width:0;",children:[qo(t),Do(t,e)]}),i=g("div",{style:"display:flex;gap:16px;align-items:stretch;width:100%;flex:1;box-sizing:border-box;",children:[n,o]});return g("div",{style:`display:flex;flex-direction:column;align-items:flex-start;padding:12px;width:100%;max-width:402px;min-height:140px;box-sizing:border-box;background:${t.cardBgColor};border-radius:${t.cardBorderRadiusPx};font-family:${_};`,children:[i]})}var Fo={style:"gregory-black",text:"Provar Virtualmente",fontSize:14,iconSize:24,subtext:"",bgColor:"#1E1E1E",textColor:"#FFFFFF",badgeBgColor:"#C51A1B",badgeTextColor:"#FFFFFF",borderRadius:"md",borderColor:"#1E1E1E",borderWidth:0,cardTitle:"",cardDescription:"",cardFooter:"",cardBgColor:"#F6F6F6",cardTitleColor:"#1E1E1E",cardTextColor:"#717171",cardBorderRadius:"md"};function ee(t,e){let r=(e?t&&t.mobile:t&&t.desktop)||t&&t.desktop||t&&t.mobile||{},n={...Fo,...r};return n.style==="gregory-card"&&e&&(n.style="gregory-black"),n.borderRadiusPx=Qt[n.borderRadius]!=null?Qt[n.borderRadius]:"0",n.cardBorderRadiusPx=te[n.cardBorderRadius]!=null?te[n.cardBorderRadius]:"0",n.fontSize=Number(n.fontSize)||14,n.iconSize=Number(n.iconSize)||24,n.borderWidth=Number(n.borderWidth)||0,n}var re={"gregory-black":gr,"gregory-card":wr},Vi=Object.keys(re);function xr(t,e){return(re[t.style]||re["gregory-black"])(t,e)}function zo(){return"abcdefghijklmnopqrstuvwxyz"[Math.floor(Math.random()*26)]+Math.random().toString(36).slice(2,11)}var G=null,I=[];function mr(){return[G].concat(I).filter(Boolean)}function $o(t,e){let r;try{r=document.createElement("iframe"),r.setAttribute("aria-hidden","true"),r.style.cssText="display:none!important;width:0;height:0;border:0;position:absolute;left:-9999px;",(document.body||document.documentElement).appendChild(r);let n=r.contentWindow&&r.contentWindow.Element&&r.contentWindow.Element.prototype&&r.contentWindow.Element.prototype.attachShadow;if(typeof n=="function"){let o=n.call(t,e);return r.remove(),o}}catch(n){}try{r&&r.remove()}catch(n){}return t.attachShadow(e)}var Ko=/^(transform|transform-origin|margin|margin-(top|right|bottom|left)|position|inset|top|right|bottom|left|z-index|width|min-width|max-width|height|min-height|max-height)$/i;function Ho(t){return!t||typeof t!="string"?"":t.split(";").map(e=>e.trim()).filter(Boolean).filter(e=>Ko.test(e.split(":")[0].trim().toLowerCase())).join(";")}var gt=null,ne=!1,oe={},br=!1,ie=null;function _r(){return ie||(ie=B().then(t=>t&&t.template&&t.template.tryOnButton||null).catch(()=>null)),ie}function Vo(){if(br)return;br=!0;let t=null;try{window.addEventListener("resize",()=>{clearTimeout(t),t=setTimeout(()=>{gt&&U("pdp")},200)})}catch(e){}}function Cr(t){if(t){if(typeof t.__mkCleanup=="function")try{t.__mkCleanup()}catch(e){}t.parentNode&&t.parentNode.removeChild(t)}}function ce(){Cr(G),I.forEach(Cr),G=null,I=[],gt=null}var Jo={IMG:1,INPUT:1,VIDEO:1,CANVAS:1,EMBED:1,OBJECT:1,IFRAME:1,BR:1,HR:1,SELECT:1,TEXTAREA:1,SVG:1};function Wo(t){switch(t){case"top-center":return"top:0;left:50%;transform:translateX(-50%);";case"top-right":return"top:0;right:0;";case"middle-left":return"top:50%;left:0;transform:translateY(-50%);";case"center":return"top:50%;left:50%;transform:translate(-50%,-50%);";case"middle-right":return"top:50%;right:0;transform:translateY(-50%);";case"bottom-left":return"bottom:0;left:0;";case"bottom-center":return"bottom:0;left:50%;transform:translateX(-50%);";case"bottom-right":return"bottom:0;right:0;";case"top-left":default:return"top:0;left:0;"}}function Go(t,e,r){let o=!Jo[t.tagName]?t:t.parentElement||document.body;try{getComputedStyle(o).position==="static"&&(o.style.position="relative")}catch(p){}if(o===t){e.style.cssText="position:absolute;z-index:2147483000;"+Wo(r),t.appendChild(e);return}e.style.cssText="position:absolute;z-index:2147483000;",o.appendChild(e);let i=()=>{try{let p=t.getBoundingClientRect(),x=o.getBoundingClientRect(),f=e.offsetWidth,w=e.offsetHeight,m=p.top-x.top+o.scrollTop,b=p.left-x.left+o.scrollLeft,u=r||"top-left",F=m,wt=b;u.indexOf("bottom")===0?F=m+p.height-w:(u.indexOf("middle")===0||u==="center")&&(F=m+(p.height-w)/2),u.indexOf("right")>=0?wt=b+p.width-f:u.indexOf("center")>=0&&(wt=b+(p.width-f)/2),e.style.top=F+"px",e.style.left=wt+"px"}catch(p){}};i();let c=()=>i();window.addEventListener("resize",c);let a=setTimeout(i,600),s=setTimeout(i,1500),l=null;try{if(t.tagName==="IMG"&&!t.complete&&t.addEventListener("load",i,{once:!0}),typeof ResizeObserver=="function"){l=new ResizeObserver(()=>i());try{l.observe(t)}catch(p){}try{l.observe(o)}catch(p){}}}catch(p){}e.__mkCleanup=()=>{window.removeEventListener("resize",c),clearTimeout(a),clearTimeout(s);try{t.removeEventListener("load",i)}catch(p){}try{l&&l.disconnect()}catch(p){}}}function Xo(t,e,r){try{return t.insertAdjacentElement(r||"afterend",e),!0}catch(n){try{return t.parentNode.insertBefore(e,t.nextSibling),!0}catch(o){return!1}}}async function U(t){let e=y();if(t!=="pdp"){ce();return}if(!e.projectId)return;if(!e._anchorFromPicker){let l=await _r();l&&l.anchor&&(e.anchor=l.anchor),l&&l.anchors&&(e.anchors=l.anchors)}if(ne)return;let r=N(),n=r&&r.value,o=!!e.forceButton,i=l=>l?[l.selector,l.position,l.mode,l.align,l.style].join("~"):"heuristic",c=Array.isArray(e.anchors)?e.anchors:[],a=[n||"demo",i(ft(e.anchor))].concat(c.map(l=>i(ft(l)))).join("|"),s=G;if(!(s&>===a)){if(s&&ce(),!n&&!o){h("auto-mount: SKU n\xE3o resolvido na PDP");return}ne=!0;try{let l=o;o||(oe[n]||(oe[n]=D(e.projectId,n).then(b=>!!(b&&b.available)).catch(()=>!1)),l=await oe[n]);try{xe(l?"available":"unavailable")}catch(b){}if(!l){h("auto-mount: produto sem try-on",n);return}let p=await _r(),x=window.matchMedia("(max-width: 767px)").matches,f=ee(p,x),w=()=>{let b=N(),u=b&&b.value||n||"";ge(),d("button_clicked",{sku:u,style:f.style}),pt({projectId:e.projectId,identifier:u})},m=hr();G=vr(m,f,w),I=[];for(let b of c){let u=Zt(b);u&&I.push(vr(u,f,w))}gt=a,Vo(),h("auto-mount: bot\xE3o injetado",{style:f.style,sku:n,anchorFound:!!m,mode:m&&m.mode,extras:I.length,forced:o}),d("button_rendered",{style:f.style,sku:n||null,skuSource:r&&r.source,anchorFound:!!m,position:m?m.position:null,mode:m?m.mode:null,extras:I.length,forced:o})}finally{ne=!1}}}function vr(t,e,r){let n=t&&t.mode||"flow",o=xr(e,r),i=document.createElement("div");i.id=zo(),$o(i,{mode:"closed"}).appendChild(o),["click","mousedown","mouseup","pointerdown","pointerup","touchstart"].forEach(s=>{try{i.addEventListener(s,l=>{l.stopPropagation()},!1)}catch(l){}});let a=!1;if(t&&t.el&&t.el.parentNode&&(n==="overlay"?(Go(t.el,i,t.align),a=!0):(i.style.cssText="display:contents;",a=Xo(t.el,i,t.position))),a||(i.style.cssText="position:fixed;left:16px;bottom:16px;z-index:2147483000;",document.body.appendChild(i)),t&&t.style){let s=Ho(t.style);if(s)try{o.style.cssText+=";"+s}catch(l){}}return i}function kr(){try{let t=y(),e={anchor:t.anchor,forceButton:t.forceButton};window.addEventListener("message",r=>{if(r.source!==window)return;let n=r.data;!n||!n.__mkCmd||(n.__mkCmd==="remount"||n.__mkCmd==="applyRecipe"?(t.anchor=n.anchor||null,t._anchorFromPicker=!0,t.forceButton=!0,U("pdp")):n.__mkCmd==="cancelPreview"&&(t.anchor=e.anchor,t._anchorFromPicker=!1,t.forceButton=e.forceButton,ce(),U("pdp")))})}catch(t){}}(function(){"use strict";try{let r=function(){try{Ce(),kr(),or(),e.autoTrack!==!1&&($e((o,i)=>{Ye(o,i),U(o)}),Ze()),h("mk-sdk iniciado",{projectId:e.projectId,collectorUrl:e.collectorUrl})}catch(o){e.debug&&console.error("[mk-sdk] init erro",o)}},e=bt();if(e.projectId){let o=Te(e.projectId);o&&St(o),B().then(i=>{let c=ke(i);St(c),Ae(e.projectId,c),h("escopo de coleta",c)})}document.readyState==="loading"?document.addEventListener("DOMContentLoaded",r):r();let n={open:pt,close:Xt,isAvailable:rr,getAvailability:D,onReady:ar,onClose:lr,onAddToCart:sr,onProductLoaded:ur,onError:dr,onInteraction:pr,onGenerationComplete:fr,testCart:qe,_version:"0.1.0",_isMkSdk:!0};typeof window!="undefined"&&(window.mk=n)}catch(e){typeof console!="undefined"&&console.error("[mk-sdk] boot fatal",e)}})();})();
|
package/dist/mk-sdk.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
(()=>{(function(){try{let a=function(){try{var t=JSON.parse(localStorage.getItem(o));return t&&d.test(t.v)&&t.exp>Date.now()?t.v:null}catch(u){return null}};var m=a;if(window.__mkBooted)return;window.__mkBooted=!0;var o="mk_sdk_v",i=10*60*1e3,d=/^\d+\.\d+\.\d+$/,e=document.currentScript||document.querySelector("script[data-mk-project]")||document.querySelector('script[src*="mk-sdk"]'),s=a()||"1.1.
|
|
1
|
+
(()=>{(function(){try{let a=function(){try{var t=JSON.parse(localStorage.getItem(o));return t&&d.test(t.v)&&t.exp>Date.now()?t.v:null}catch(u){return null}};var m=a;if(window.__mkBooted)return;window.__mkBooted=!0;var o="mk_sdk_v",i=10*60*1e3,d=/^\d+\.\d+\.\d+$/,e=document.currentScript||document.querySelector("script[data-mk-project]")||document.querySelector('script[src*="mk-sdk"]'),s=a()||"1.1.44",n=document.createElement("script");if(n.src="https://cdn.jsdelivr.net/npm/mk-sdk-git@"+s+"/dist/mk-core.js",n.async=!0,e&&e.attributes)for(var r=0;r<e.attributes.length;r++){var c=e.attributes[r];c.name.indexOf("data-")===0&&n.setAttribute(c.name,c.value)}(document.head||document.documentElement).appendChild(n),fetch("https://api-collector.mk3dlabs.com/v1/sdk/version").then(function(t){return t.ok?t.json():null}).then(function(t){var u=t&&t.version;d.test(u)&&localStorage.setItem(o,JSON.stringify({v:u,exp:Date.now()+i}))}).catch(function(){})}catch(a){}})();})();
|
package/package.json
CHANGED
package/src/core/config.js
CHANGED
|
@@ -62,6 +62,8 @@ export function resolveConfig() {
|
|
|
62
62
|
forceButton: !!(window.__MK && window.__MK.forceButton),
|
|
63
63
|
// anchor: posição customizada do botão { selector, position } (receita / picker).
|
|
64
64
|
anchor: (window.__MK && window.__MK.anchor) || null,
|
|
65
|
+
// anchors[]: âncoras EXTRAS (além da primária) — recipe ou __MK. Cada uma = +1 botão.
|
|
66
|
+
anchors: (window.__MK && window.__MK.anchors) || null,
|
|
65
67
|
// cartRedirect: após adicionar ao carrinho pelo provador, leva o usuário ao /cart (default: sim).
|
|
66
68
|
cartRedirect: !(window.__MK && window.__MK.cartRedirect === false),
|
|
67
69
|
// cartBehavior: o que fazer após adicionar — 'redirect' (vai pro /cart), 'drawer'
|
package/src/tryon/anchor.js
CHANGED
|
@@ -96,20 +96,30 @@ export function pickAnchorVariant(anchor) {
|
|
|
96
96
|
return slots[0][1];
|
|
97
97
|
}
|
|
98
98
|
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
99
|
+
/**
|
|
100
|
+
* Resolve um OBJETO de âncora (slots desktop/mobile/tablet) pro elemento VISÍVEL
|
|
101
|
+
* atual — SÓ override, sem heurística. Usado pelos botões EXTRAS (uma âncora extra
|
|
102
|
+
* que não casa/visível simplesmente não monta, não cai no botão de compra).
|
|
103
|
+
* Retorna { el, position, mode, style, align, selector } | null.
|
|
104
|
+
*/
|
|
105
|
+
export function resolveAnchorObj(anchorObj) {
|
|
106
|
+
const variant = pickAnchorVariant(anchorObj);
|
|
104
107
|
if (variant && variant.selector) {
|
|
105
108
|
try {
|
|
106
109
|
const o = document.querySelector(variant.selector);
|
|
107
|
-
// Exige VISÍVEL: se a âncora configurada existe mas está oculta no layout
|
|
108
|
-
// atual (ex.: dashboard só tem desktop e o seletor some no mobile), não
|
|
109
|
-
// ancora num elemento 0x0 — cai na heurística pra o botão não sumir.
|
|
110
110
|
if (o && isVisible(o)) return { el: o, position: variant.position || 'afterend', mode: variant.mode || 'flow', style: variant.style || '', align: variant.align || 'top-left', selector: variant.selector };
|
|
111
111
|
} catch (_) {}
|
|
112
112
|
}
|
|
113
|
+
return null;
|
|
114
|
+
}
|
|
115
|
+
|
|
116
|
+
export function resolveAnchor() {
|
|
117
|
+
const cfg = getConfig();
|
|
118
|
+
|
|
119
|
+
// 1. Override (receita / picker) — variante escolhida por visibilidade/breakpoint.
|
|
120
|
+
// Exige VISÍVEL: âncora oculta no layout atual cai na heurística pro botão não sumir.
|
|
121
|
+
const o = resolveAnchorObj(cfg && cfg.anchor);
|
|
122
|
+
if (o) return o;
|
|
113
123
|
|
|
114
124
|
// 2. Heurística: o botão de carrinho nativo visível é a âncora natural
|
|
115
125
|
const candidates = document.querySelectorAll(
|
package/src/tryon/automount.js
CHANGED
|
@@ -8,7 +8,7 @@ import { track, setTryonState, markEngaged } from '../core/transport.js';
|
|
|
8
8
|
import { fetchProjectRecipe } from '../core/projectRecipe.js';
|
|
9
9
|
import { resolveSku } from '../ecommerce/extractors.js';
|
|
10
10
|
import { getAvailability, open } from './bridge.js';
|
|
11
|
-
import { resolveAnchor, pickAnchorVariant } from './anchor.js';
|
|
11
|
+
import { resolveAnchor, resolveAnchorObj, pickAnchorVariant } from './anchor.js';
|
|
12
12
|
import { renderButton, normalizeButtonConfig } from './buttons/registry.js';
|
|
13
13
|
|
|
14
14
|
// Id do host ALEATÓRIO por inicialização — sem prefixo semântico (mk/tryon),
|
|
@@ -20,10 +20,13 @@ function randomHostId() {
|
|
|
20
20
|
const c = 'abcdefghijklmnopqrstuvwxyz';
|
|
21
21
|
return c[Math.floor(Math.random() * 26)] + Math.random().toString(36).slice(2, 11);
|
|
22
22
|
}
|
|
23
|
-
let hostEl = null;
|
|
23
|
+
let hostEl = null; // host do botão PRIMÁRIO (id aleatório/efêmero)
|
|
24
|
+
let extraHosts = []; // hosts dos botões EXTRAS (template.tryOnButton.anchors[]) — aditivo
|
|
24
25
|
|
|
25
|
-
/** Host
|
|
26
|
+
/** Host primário (compat). */
|
|
26
27
|
export function getButtonHost() { return hostEl; }
|
|
28
|
+
/** Todos os hosts montados (primário + extras) — usado p/ esconder durante o modal. */
|
|
29
|
+
export function getButtonHosts() { return [hostEl].concat(extraHosts).filter(Boolean); }
|
|
27
30
|
|
|
28
31
|
// attachShadow imune a monkey-patch da loja. Uma loja pode reescrever
|
|
29
32
|
// Element.prototype.attachShadow pra forçar mode:'open' no nosso host e injetar
|
|
@@ -94,13 +97,16 @@ function ensureResizeWatch() {
|
|
|
94
97
|
} catch (_) {}
|
|
95
98
|
}
|
|
96
99
|
|
|
100
|
+
function destroyHost(h) {
|
|
101
|
+
if (!h) return;
|
|
102
|
+
if (typeof h.__mkCleanup === 'function') { try { h.__mkCleanup(); } catch (_) {} }
|
|
103
|
+
if (h.parentNode) h.parentNode.removeChild(h);
|
|
104
|
+
}
|
|
97
105
|
function removeButton() {
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
if (typeof h.__mkCleanup === 'function') { try { h.__mkCleanup(); } catch (_) {} }
|
|
101
|
-
if (h.parentNode) h.parentNode.removeChild(h);
|
|
102
|
-
}
|
|
106
|
+
destroyHost(hostEl);
|
|
107
|
+
extraHosts.forEach(destroyHost);
|
|
103
108
|
hostEl = null;
|
|
109
|
+
extraHosts = [];
|
|
104
110
|
mountedKey = null;
|
|
105
111
|
}
|
|
106
112
|
|
|
@@ -163,7 +169,24 @@ function placeOverlay(ref, host, align) {
|
|
|
163
169
|
window.addEventListener('resize', onWin);
|
|
164
170
|
const t1 = setTimeout(reposition, 600);
|
|
165
171
|
const t2 = setTimeout(reposition, 1500);
|
|
166
|
-
|
|
172
|
+
// Imagem lazy/lenta: no mount o rect ainda é provisório (a imagem não ocupou o
|
|
173
|
+
// espaço real), então o botão fica no lugar errado até ela carregar. Reposiciona
|
|
174
|
+
// quando a imagem CARREGA e sempre que o ref/container muda de tamanho.
|
|
175
|
+
let ro = null;
|
|
176
|
+
try {
|
|
177
|
+
if (ref.tagName === 'IMG' && !ref.complete) ref.addEventListener('load', reposition, { once: true });
|
|
178
|
+
if (typeof ResizeObserver === 'function') {
|
|
179
|
+
ro = new ResizeObserver(() => reposition());
|
|
180
|
+
try { ro.observe(ref); } catch (_) {}
|
|
181
|
+
try { ro.observe(container); } catch (_) {}
|
|
182
|
+
}
|
|
183
|
+
} catch (_) {}
|
|
184
|
+
host.__mkCleanup = () => {
|
|
185
|
+
window.removeEventListener('resize', onWin);
|
|
186
|
+
clearTimeout(t1); clearTimeout(t2);
|
|
187
|
+
try { ref.removeEventListener('load', reposition); } catch (_) {}
|
|
188
|
+
try { if (ro) ro.disconnect(); } catch (_) {}
|
|
189
|
+
};
|
|
167
190
|
}
|
|
168
191
|
|
|
169
192
|
/** Insere `node` relativo a `ref` conforme a posição (nomes do insertAdjacentElement). */
|
|
@@ -193,6 +216,7 @@ export async function maybeMountButton(pageType) {
|
|
|
193
216
|
if (!cfg._anchorFromPicker) {
|
|
194
217
|
const tpl0 = await getTemplateCached();
|
|
195
218
|
if (tpl0 && tpl0.anchor) cfg.anchor = tpl0.anchor;
|
|
219
|
+
if (tpl0 && tpl0.anchors) cfg.anchors = tpl0.anchors; // âncoras extras da dashboard
|
|
196
220
|
}
|
|
197
221
|
|
|
198
222
|
if (mounting) return;
|
|
@@ -203,10 +227,10 @@ export async function maybeMountButton(pageType) {
|
|
|
203
227
|
// key canônico (campos em ordem FIXA — não depende da ordem das chaves do objeto).
|
|
204
228
|
// Assim preview e save com a mesma config geram o MESMO key e o botão NÃO é
|
|
205
229
|
// re-montado ("pula"/desce) ao salvar.
|
|
206
|
-
const
|
|
207
|
-
const
|
|
208
|
-
|
|
209
|
-
|
|
230
|
+
const fp = (v) => v ? [v.selector, v.position, v.mode, v.align, v.style].join('~') : 'heuristic';
|
|
231
|
+
const extraAnchors = Array.isArray(cfg.anchors) ? cfg.anchors : [];
|
|
232
|
+
const key = [sku || 'demo', fp(pickAnchorVariant(cfg.anchor))]
|
|
233
|
+
.concat(extraAnchors.map((a) => fp(pickAnchorVariant(a)))).join('|');
|
|
210
234
|
|
|
211
235
|
const existing = hostEl;
|
|
212
236
|
if (existing && mountedKey === key) return; // mesmo produto + mesma âncora
|
|
@@ -234,75 +258,74 @@ export async function maybeMountButton(pageType) {
|
|
|
234
258
|
const isMobile = window.matchMedia('(max-width: 767px)').matches;
|
|
235
259
|
const config = normalizeButtonConfig(tpl, isMobile);
|
|
236
260
|
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
const btn = renderButton(config, () => {
|
|
261
|
+
// clique do botão — na PDP re-resolve o SKU (caso troquem a variante depois).
|
|
262
|
+
// Emite o clique IMEDIATAMENTE (antes de qualquer async que possa abortar o open).
|
|
263
|
+
const onClick = () => {
|
|
241
264
|
const live = resolveSku();
|
|
242
265
|
const id = (live && live.value) || sku || '';
|
|
243
|
-
//
|
|
244
|
-
|
|
245
|
-
markEngaged(); // escopo tryon_engaged: clicar no provador marca o visitante (tag infinita)
|
|
246
|
-
track('button_clicked', { sku: id, style: config.style, mode });
|
|
266
|
+
markEngaged(); // escopo tryon_engaged: clicar no provador marca o visitante
|
|
267
|
+
track('button_clicked', { sku: id, style: config.style });
|
|
247
268
|
open({ projectId: cfg.projectId, identifier: id });
|
|
248
|
-
}
|
|
269
|
+
};
|
|
249
270
|
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
hostEl =
|
|
253
|
-
// Shadow FECHADO: host.shadowRoot retorna null pra scripts da página, então a
|
|
254
|
-
// loja não consegue alcançar e repintar o botão (ex.: tema que faz
|
|
255
|
-
// host.shadowRoot.querySelector('button').style.background = ...). A aparência
|
|
256
|
-
// é 100% da dashboard. A SDK mantém a referência interna; o picker fala por
|
|
257
|
-
// postMessage, então nada nosso quebra.
|
|
258
|
-
const shadow = pristineAttachShadow(host, { mode: 'closed' });
|
|
259
|
-
shadow.appendChild(btn);
|
|
260
|
-
|
|
261
|
-
// O host costuma ficar SOBREPOSTO à imagem do produto (mode overlay). Qualquer
|
|
262
|
-
// evento de ponteiro que vaze do botão NÃO pode chegar aos handlers da loja
|
|
263
|
-
// (zoom/galeria/lightbox abria a imagem "de trás" junto com o provador).
|
|
264
|
-
// Contém na borda do host (fase de bubble → roda depois do handler do botão).
|
|
265
|
-
['click', 'mousedown', 'mouseup', 'pointerdown', 'pointerup', 'touchstart'].forEach((evt) => {
|
|
266
|
-
try { host.addEventListener(evt, (e) => { e.stopPropagation(); }, false); } catch (_) {}
|
|
267
|
-
});
|
|
268
|
-
|
|
269
|
-
let placed = false;
|
|
270
|
-
if (anchor && anchor.el && anchor.el.parentNode) {
|
|
271
|
-
if (mode === 'overlay') {
|
|
272
|
-
placeOverlay(anchor.el, host, anchor.align);
|
|
273
|
-
placed = true;
|
|
274
|
-
} else {
|
|
275
|
-
// flow: o host flui dentro do container — vira flex item num flex, bloco num block.
|
|
276
|
-
// Sem margem forçada (o gap natural do container cuida); ajuste fino via CSS extra.
|
|
277
|
-
host.style.cssText = 'display:contents;';
|
|
278
|
-
placed = insertByPosition(anchor.el, host, anchor.position);
|
|
279
|
-
}
|
|
280
|
-
}
|
|
281
|
-
if (!placed) {
|
|
282
|
-
host.style.cssText = 'position:fixed;left:16px;bottom:16px;z-index:2147483000;';
|
|
283
|
-
document.body.appendChild(host);
|
|
284
|
-
}
|
|
271
|
+
// 1) botão PRIMÁRIO — âncora da dashboard ou heurística (comportamento de sempre)
|
|
272
|
+
const primary = resolveAnchor();
|
|
273
|
+
hostEl = mountOne(primary, config, onClick);
|
|
285
274
|
|
|
286
|
-
//
|
|
287
|
-
//
|
|
288
|
-
//
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
275
|
+
// 2) botões EXTRAS — template.tryOnButton.anchors[] (ADITIVO): cada âncora extra
|
|
276
|
+
// que casar/visível vira +1 botão pro MESMO produto; não casou → não monta.
|
|
277
|
+
// Sem anchors[], nada muda (extraHosts vazio).
|
|
278
|
+
extraHosts = [];
|
|
279
|
+
for (const ax of extraAnchors) {
|
|
280
|
+
const a = resolveAnchorObj(ax);
|
|
281
|
+
if (a) extraHosts.push(mountOne(a, config, onClick));
|
|
292
282
|
}
|
|
293
283
|
|
|
294
284
|
mountedKey = key;
|
|
295
285
|
ensureResizeWatch();
|
|
296
|
-
log('auto-mount: botão injetado', { style: config.style, sku, anchorFound: !!
|
|
286
|
+
log('auto-mount: botão injetado', { style: config.style, sku, anchorFound: !!primary, mode: primary && primary.mode, extras: extraHosts.length, forced: force });
|
|
297
287
|
track('button_rendered', {
|
|
298
288
|
style: config.style, sku: sku || null, skuSource: skuRes && skuRes.source,
|
|
299
|
-
anchorFound: !!
|
|
289
|
+
anchorFound: !!primary, position: primary ? primary.position : null, mode: primary ? primary.mode : null, extras: extraHosts.length, forced: force
|
|
300
290
|
});
|
|
301
291
|
} finally {
|
|
302
292
|
mounting = false;
|
|
303
293
|
}
|
|
304
294
|
}
|
|
305
295
|
|
|
296
|
+
// Monta UM botão (host + shadow FECHADO + posicionamento) numa âncora resolvida.
|
|
297
|
+
// anchor = { el, mode, align, position, style } | null (null → fallback fixo).
|
|
298
|
+
// Retorna o host. Reusado pelo primário, pelos extras e (fase 2) pela galeria.
|
|
299
|
+
function mountOne(anchor, config, onClick) {
|
|
300
|
+
const mode = (anchor && anchor.mode) || 'flow';
|
|
301
|
+
const btn = renderButton(config, onClick);
|
|
302
|
+
|
|
303
|
+
const host = document.createElement('div');
|
|
304
|
+
host.id = randomHostId(); // id efêmero/aleatório — sem hook estável p/ a loja mirar
|
|
305
|
+
// Shadow FECHADO: a loja não alcança nem repinta o botão; aparência 100% da dashboard.
|
|
306
|
+
const shadow = pristineAttachShadow(host, { mode: 'closed' });
|
|
307
|
+
shadow.appendChild(btn);
|
|
308
|
+
|
|
309
|
+
// contém eventos de ponteiro na borda do host (não vazam pro zoom/galeria/lightbox)
|
|
310
|
+
['click', 'mousedown', 'mouseup', 'pointerdown', 'pointerup', 'touchstart'].forEach((evt) => {
|
|
311
|
+
try { host.addEventListener(evt, (e) => { e.stopPropagation(); }, false); } catch (_) {}
|
|
312
|
+
});
|
|
313
|
+
|
|
314
|
+
let placed = false;
|
|
315
|
+
if (anchor && anchor.el && anchor.el.parentNode) {
|
|
316
|
+
if (mode === 'overlay') { placeOverlay(anchor.el, host, anchor.align); placed = true; }
|
|
317
|
+
else { host.style.cssText = 'display:contents;'; placed = insertByPosition(anchor.el, host, anchor.position); }
|
|
318
|
+
}
|
|
319
|
+
if (!placed) { host.style.cssText = 'position:fixed;left:16px;bottom:16px;z-index:2147483000;'; document.body.appendChild(host); }
|
|
320
|
+
|
|
321
|
+
// CSS extra (offset/escala/css) sempre no BOTÃO — não conflita com o transform do overlay.
|
|
322
|
+
if (anchor && anchor.style) {
|
|
323
|
+
const safe = sanitizeAnchorStyle(anchor.style);
|
|
324
|
+
if (safe) { try { btn.style.cssText += ';' + safe; } catch (_) {} }
|
|
325
|
+
}
|
|
326
|
+
return host;
|
|
327
|
+
}
|
|
328
|
+
|
|
306
329
|
/**
|
|
307
330
|
* Canal de preview pro picker do addon: ao receber um anchor, re-injeta o botão
|
|
308
331
|
* naquela posição (forçado, ignora disponibilidade) pra visualização ao vivo.
|
package/src/tryon/bridge.js
CHANGED
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
import { getConfig, log } from '../core/config.js';
|
|
5
5
|
import { track } from '../core/transport.js';
|
|
6
6
|
import { addToCart as cartAdd, openCartAfterAdd, redirectToCart } from '../platforms/index.js';
|
|
7
|
-
import {
|
|
7
|
+
import { getButtonHosts } from './automount.js';
|
|
8
8
|
import { resolveLauncher } from './launchers/index.js';
|
|
9
9
|
|
|
10
10
|
let modal = null;
|
|
@@ -99,15 +99,15 @@ export function close() {
|
|
|
99
99
|
// que ele suma independente de z-index/stacking context da loja.
|
|
100
100
|
function toggleTryonButton(hide) {
|
|
101
101
|
try {
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
}
|
|
102
|
+
getButtonHosts().forEach((h) => {
|
|
103
|
+
if (hide) {
|
|
104
|
+
if (h.dataset.mkPrevDisplay === undefined) h.dataset.mkPrevDisplay = h.style.display;
|
|
105
|
+
h.style.display = 'none';
|
|
106
|
+
} else {
|
|
107
|
+
h.style.display = h.dataset.mkPrevDisplay || '';
|
|
108
|
+
delete h.dataset.mkPrevDisplay;
|
|
109
|
+
}
|
|
110
|
+
});
|
|
111
111
|
} catch (_) {}
|
|
112
112
|
}
|
|
113
113
|
|