@gengage/assistant-fe 0.6.12 → 0.6.13
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/agentic/adaptor/mount.d.ts +1 -0
- package/dist/agentic/context/context-store.d.ts +2 -1
- package/dist/agentic/context/persistence.d.ts +2 -1
- package/dist/agentic/index.d.ts +3 -2
- package/dist/agentic/index.js +244 -240
- package/dist/agentic/types.d.ts +28 -20
- package/dist/agentic/util/browser-memory.d.ts +2 -2
- package/dist/agentic/util/cache-key.d.ts +15 -0
- package/dist/agentic/worker/be-client.d.ts +3 -1
- package/dist/agentic/worker.d.ts +3 -2
- package/dist/agentic/worker.js +92 -86
- package/dist/agentic.iife.js +5 -5
- package/dist/{api-paths-Cth1szY1.js → api-paths-ChCMvKkx.js} +1 -1
- package/dist/{chat-CrEa2W-e.js → chat-BP-yXukW.js} +1 -1
- package/dist/chat-runtime.js +1 -1
- package/dist/chat.iife.js +17 -17
- package/dist/chat.js +2 -2
- package/dist/common/request-response-cache.d.ts +9 -0
- package/dist/{common-CmPjQ9RK.js → common-BD_DSsqY.js} +3 -3
- package/dist/common.js +7 -7
- package/dist/{connection-warning-Bx1TJaU9.js → connection-warning-CPeEsQ35.js} +1 -1
- package/dist/{fastIntent-nZXiT9DG.js → fastIntent-C1WeEqW8.js} +1 -1
- package/dist/index.js +12 -12
- package/dist/{native-webview-BlHM7cLs.js → native-webview-DbKq9lN8.js} +1 -1
- package/dist/native.iife.js +14 -14
- package/dist/native.js +1 -1
- package/dist/overlay.js +1 -1
- package/dist/{qna-BNvttR6s.js → qna-B3lMzHvS.js} +1 -1
- package/dist/qna-runtime.js +1 -1
- package/dist/qna.iife.js +13 -13
- package/dist/qna.js +2 -2
- package/dist/request-response-cache-zsgz3Awp.js +154 -0
- package/dist/request-text-su3Vlhrs.js +1318 -0
- package/dist/{runtime-xlTFF9HS.js → runtime-Dbwwd8yF.js} +38 -37
- package/dist/{runtime-B0v76aJ5.js → runtime-DclobJaN.js} +365 -364
- package/dist/{runtime-Dt6FUotQ.js → runtime-Duvrignh.js} +69 -68
- package/dist/{simbut-pTonQlCT.js → simbut-5C5EAfoM.js} +1 -1
- package/dist/simbut.iife.js +1 -1
- package/dist/simbut.js +1 -1
- package/dist/{simrel-C3ZJHVIW.js → simrel-DCcSBFez.js} +3 -3
- package/dist/simrel-runtime.js +1 -1
- package/dist/simrel.iife.js +12 -12
- package/dist/simrel.js +2 -2
- package/dist/{widget-base-C6H3cDSW.js → widget-base-BolzGV28.js} +1 -1
- package/package.json +1 -1
- package/dist/agentic/flow/beauty-consulting-turn.d.ts +0 -1
- package/dist/similarity-qMH5-do-.js +0 -1262
- /package/dist/{overlay-fgrzmFTR.js → overlay-CyoB1K0w.js} +0 -0
- /package/dist/{price-formatter-xI3g9Cd4.js → price-formatter-CFsWT0lP.js} +0 -0
- /package/dist/{schemas-CLo8wCjs.js → schemas-Cq2blsO_.js} +0 -0
package/dist/simrel.iife.js
CHANGED
|
@@ -1,15 +1,15 @@
|
|
|
1
|
-
(function(F){Object.defineProperty(F,Symbol.toStringTag,{value:"Module"});var Hr=({element:e,renderElement:t})=>{if(!e.children||e.children.length===0)return null;const r=document.createElement("div");for(const n of e.children){const o=t(n);o&&r.appendChild(o)}return r};function Kr(e){const t=document.createElement("div");if(t.className=e.containerClassName,!e.spec.elements[e.spec.root])return t;const r=e.unknownRenderer??Hr,n=i=>{const a=e.spec.elements[i];if(!a)return null;const s=e.registry[a.type];return s?s({elementId:i,element:a,spec:e.spec,context:e.context,renderElement:n}):r({elementId:i,element:a,spec:e.spec,context:e.context,renderElement:n})},o=n(e.spec.root);return o&&t.appendChild(o),t}function Yr(e,t){if(!t)return e;const r={...e};for(const[n,o]of Object.entries(t))o&&(r[n]=o);return r}var Xr=new Set(["p","br","a","strong","b","em","i","u","ul","ol","li","h1","h2","h3","h4","h5","h6","span","div","table","thead","tbody","tr","th","td","hr","code","pre","blockquote","img","sup","sub"]),Qr=new Set(["script","iframe","object","embed","form","input","textarea","select","button","style","link","meta","template","noscript"]),at={"*":new Set(["class"]),a:new Set(["href","target","rel"]),img:new Set(["src","alt","width","height"]),div:new Set(["style"]),span:new Set(["style"]),p:new Set(["style"])};function en(e){return/^\s*javascript\s*:/i.test(e)}var tn=new Set(["color","background-color","font-size","font-weight","font-style","font-family","text-align","text-decoration","line-height","letter-spacing","margin","margin-top","margin-right","margin-bottom","margin-left","padding","padding-top","padding-right","padding-bottom","padding-left","border","border-top","border-right","border-bottom","border-left","border-radius","border-color","border-width","border-style","width","max-width","min-width","height","max-height","min-height","display","vertical-align","white-space","word-break","overflow","opacity","visibility","list-style","list-style-type","text-transform","text-indent","text-overflow","box-sizing","flex","flex-direction","flex-wrap","justify-content","align-items","gap"]),rn=/url\s*\(|expression\s*\(|javascript\s*:|\bimport\b|-moz-binding|behavior\s*:/i;function nn(e){const t=[];for(const r of e.split(";")){const n=r.trim();if(!n)continue;const o=n.indexOf(":");if(o===-1)continue;const i=n.slice(0,o).trim().toLowerCase(),a=n.slice(o+1).trim();tn.has(i)&&(rn.test(a)||t.push(n))}return t.join("; ")}function Ne(e,t){if(e.nodeType===Node.TEXT_NODE)return;if(e.nodeType!==Node.ELEMENT_NODE){e.parentNode?.removeChild(e);return}const r=e,n=r.tagName.toLowerCase();if(Qr.has(n)){r.parentNode?.removeChild(r);return}if(!Xr.has(n)){const c=Array.from(r.childNodes);for(const u of c)t.insertBefore(u,r);t.removeChild(r);for(const u of c)Ne(u,t);return}const o=at["*"]??new Set,i=at[n]??new Set,a=Array.from(r.attributes);for(const c of a){const u=c.name.toLowerCase();if(!o.has(u)&&!i.has(u)){r.removeAttribute(c.name);continue}if(en(c.value)){r.removeAttribute(c.name);continue}if(u==="style"){const l=nn(c.value);l?r.setAttribute("style",l):r.removeAttribute("style");continue}}if(n==="a"){const c=r.getAttribute("href");if(c!==null){const u=c.trim().toLowerCase();!u.startsWith("http://")&&!u.startsWith("https://")&&!u.startsWith("mailto:")&&r.removeAttribute("href")}r.setAttribute("target","_blank"),r.setAttribute("rel","noopener noreferrer")}if(n==="img"){const c=r.getAttribute("src");c!==null&&(c.trim().toLowerCase().startsWith("https://")||r.removeAttribute("src"))}const s=Array.from(r.childNodes);for(const c of s)Ne(c,r)}var st=["http:","https:"];function he(e){const t=e.trim();if(!t)return!1;if(t.startsWith("/")&&!t.startsWith("//"))return!0;try{return st.includes(new URL(t).protocol)}catch{return!1}}function ct(e){if(e.startsWith("/")&&!e.startsWith("//"))return!0;try{const t=new URL(e);return st.includes(t.protocol)}catch{return!1}}function on(e){if(!e)return"";const t=new DOMParser().parseFromString(e,"text/html").body,r=Array.from(t.childNodes);for(const n of r)Ne(n,t);return t.innerHTML}function an(){return typeof window<"u"&&Array.isArray(window.dataLayer)}function Oe(e,t){const r={event:e,...t};an()&&window.dataLayer.push(r)}function sn(e){Oe("gengage-on-init",{gengage_widget:e})}function ut(e){Oe("gengage-show",{gengage_widget:e})}function cn(e,t){Oe("gengage-cart-add",{gengage_sku:e,gengage_quantity:t})}function oe(e,t){window.dispatchEvent(new CustomEvent(e,{detail:t,bubbles:!1}))}function lt(e,t){const r=n=>{t(n.detail)};return window.addEventListener(e,r),()=>window.removeEventListener(e,r)}function un(){const e=window.__gengageSessionId??sessionStorage.getItem("gengage_session_id")??null??crypto.randomUUID();return window.__gengageSessionId=e,sessionStorage.setItem("gengage_session_id",e),window.gengage||(window.gengage={}),window.gengage.sessionId=e,e}function ln(e){return{sessionId:e?.sessionId??un(),...e}}var dt={"--gengage-chat-offset":"20px","--gengage-chat-launcher-width":"56px","--gengage-chat-launcher-height":"56px","--gengage-chat-width":"400px","--gengage-chat-shell-radius":"1rem","--gengage-chat-header-height":"72px","--gengage-chat-conversation-width":"396px","--gengage-chat-panel-min-width":"320px","--gengage-chat-panel-max-width":"1200px","--gengage-chat-input-height":"48px","--gengage-qna-pill-radius":"999px","--gengage-qna-input-radius":"12px","--gengage-simrel-card-radius":"0.75rem","--radius-control":"12px","--radius-card":"16px","--radius-panel":"24px","--radius-pill":"999px","--surface-card-muted":"#f8fafc","--text-secondary":"#4b5563","--text-muted":"#6b7280","--border-default":"rgba(17, 24, 39, 0.10)"};function dn(e){if(!e)return{...dt};const t={...dt,...e},r=e["--gengage-chat-launcher-size"];return r!==void 0&&(e["--gengage-chat-launcher-width"]===void 0&&(t["--gengage-chat-launcher-width"]=r),e["--gengage-chat-launcher-height"]===void 0&&(t["--gengage-chat-launcher-height"]=r)),t}var D={primaryColor:"#b7102a",primaryForeground:"#ffffff",backgroundColor:"#ffffff",foregroundColor:"#111827",borderRadius:"0.75rem",fontFamily:'"Plus Jakarta Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif',fontSize:"14px",zIndex:"1000","--glov-chatbot-width":"420px","--glov-left-spacing":"260px","--chatbot-padding":"16px","--root-wrapper-background-color":"#f8f9fa","--root-wrapper-border-color":"#edeeef","--gengage-chat-width":"400px","--gengage-chat-shell-radius":"1rem","--gengage-chat-header-height":"72px","--gengage-chat-conversation-width":"396px","--gengage-chat-panel-min-width":"320px","--gengage-chat-panel-max-width":"1200px","--gengage-chat-input-height":"48px","--gengage-qna-pill-radius":"999px","--gengage-qna-input-radius":"0.75rem","--gengage-simrel-card-radius":"0.75rem","--client-primary":"#b7102a","--client-primary-hover":"color-mix(in srgb, #b7102a 88%, black 12%)","--client-primary-active":"color-mix(in srgb, #b7102a 78%, black 22%)","--client-primary-subtle":"color-mix(in srgb, #b7102a 12%, white)","--client-primary-soft":"color-mix(in srgb, #b7102a 20%, white)","--client-on-primary":"#ffffff","--client-focus-ring":"color-mix(in srgb, #b7102a 32%, transparent)","--surface-page":"#f6f7fb","--surface-shell":"#10131a","--surface-card":"#ffffff","--surface-card-muted":"#f8fafc","--surface-card-soft":"#f8fafc","--surface-elevated":"#ffffff","--surface-input":"#ffffff","--surface-overlay":"rgba(16, 19, 26, 0.52)","--text-primary":"#111827","--text-secondary":"#4b5563","--text-muted":"#6b7280","--text-inverse":"#f9fafb","--border-subtle":"rgba(17, 24, 39, 0.06)","--border-default":"rgba(17, 24, 39, 0.10)","--border-strong":"rgba(17, 24, 39, 0.18)","--shadow-1":"0 1px 2px rgba(16, 24, 40, 0.04), 0 1px 3px rgba(16, 24, 40, 0.06)","--shadow-2":"0 4px 12px rgba(16, 24, 40, 0.08)","--shadow-3":"0 10px 24px rgba(16, 24, 40, 0.12)","--radius-control":"12px","--radius-card":"16px","--radius-panel":"24px","--radius-pill":"999px","--success":"#16a34a","--warning":"#d97706","--error":"#dc2626","--info":"#2563eb","--rating":"#f5b301","--ai-accent-start":"#0b24d6","--ai-accent-end":"#f768f2","--ai-accent-soft":"linear-gradient(135deg, rgba(11, 36, 214, 0.08), rgba(247, 104, 242, 0.08))"},B="gengage-global-toast-root",ft="gengage-global-toast-style",Le="gengage-global-toast-root--visible",fn=4200,pn=1500,gn=15e3,mn=["--gengage-font-family","--surface-card","--text-primary","--text-muted","--border-default","--radius-card","--shadow-3","--error","--ds-toast-error-bg","--ds-toast-error-border","--ds-toast-error-accent","--ds-toast-error-fg","--ds-toast-error-shadow"],pt=!1,H=null,hn=[/failed to fetch/i,/networkerror/i,/network request failed/i,/load failed/i,/err_network/i,/fetch failed/i,/network error/i];function gt(e){return typeof e=="string"&&e.toLowerCase().startsWith("tr")}function yn(e){if(typeof navigator<"u"&&navigator.onLine===!1)return!0;const t=e instanceof Error?e.message.trim():"";return t?hn.some(r=>r.test(t)):!1}function _n(e,t){return yn(t)?gt(e)?"Bağlantı sorunu oluştu. Lütfen tekrar deneyin.":"Connection issue. Please try again.":gt(e)?"Bir hata oluştu. Lütfen tekrar deneyin.":"Something went wrong. Please try again."}function vn(){pt||typeof window>"u"||typeof document>"u"||(pt=!0,lt("gengage:global:error",e=>{Re(e)}))}function Re(e){if(typeof document>"u")return;const t=e.message.trim();if(!t)return;Sn();const r=wn();kn(r),r.innerHTML="";const n=document.createElement("section");n.className="gengage-global-toast gengage-global-toast--error",n.setAttribute("role","status"),n.setAttribute("aria-live","polite");const o=document.createElement("div");o.className="gengage-global-toast-title",o.textContent=bn(e.source);const i=document.createElement("div");i.className="gengage-global-toast-message",i.textContent=t,n.appendChild(o),n.appendChild(i),r.appendChild(n),r.classList.add(Le),H&&(clearTimeout(H),H=null),e.sticky!==!0&&(H=setTimeout(()=>{mt()},Cn(e.durationMs)))}function mt(){if(typeof document>"u")return;const e=document.getElementById(B);e&&(e.classList.remove(Le),e.innerHTML="",H&&(clearTimeout(H),H=null))}function bn(e){switch(e){case"chat":return"Chat warning";case"qna":return"QnA warning";case"simrel":return"Widget warning";default:return"Connection warning"}}function wn(){const e=document.getElementById(B);if(e instanceof HTMLElement)return e;const t=document.createElement("div");return t.id=B,t.className="gengage-global-toast-root",document.body.appendChild(t),t}function kn(e){if(typeof document>"u"||typeof window>"u")return;const t=document.querySelector(".gengage-chat-root, .gengage-qna-container, .gengage-simrel-container, .gengage-simbut-root");if(!t)return;const r=window.getComputedStyle(t);for(const n of mn){const o=r.getPropertyValue(n).trim();o?e.style.setProperty(n,o):e.style.removeProperty(n)}}function Cn(e){return typeof e!="number"||!Number.isFinite(e)?fn:Math.min(gn,Math.max(pn,Math.round(e)))}function Sn(){if(document.getElementById(ft))return;const e=document.createElement("style");e.id=ft;const t=D["--surface-card"]??D.backgroundColor??"#ffffff",r=D["--text-primary"]??D.foregroundColor??"#111827",n=D["--border-default"]??"rgba(17, 24, 39, 0.10)",o=D["--error"]??"#dc2626",i=D["--shadow-3"]??"0 10px 24px rgba(16, 24, 40, 0.12)",a=D["--radius-card"]??"16px",s=D["--text-muted"]??"#6b7280";e.textContent=`
|
|
2
|
-
#${
|
|
1
|
+
(function(G){Object.defineProperty(G,Symbol.toStringTag,{value:"Module"});var on=({element:e,renderElement:t})=>{if(!e.children||e.children.length===0)return null;const r=document.createElement("div");for(const n of e.children){const o=t(n);o&&r.appendChild(o)}return r};function an(e){const t=document.createElement("div");if(t.className=e.containerClassName,!e.spec.elements[e.spec.root])return t;const r=e.unknownRenderer??on,n=i=>{const a=e.spec.elements[i];if(!a)return null;const s=e.registry[a.type];return s?s({elementId:i,element:a,spec:e.spec,context:e.context,renderElement:n}):r({elementId:i,element:a,spec:e.spec,context:e.context,renderElement:n})},o=n(e.spec.root);return o&&t.appendChild(o),t}function sn(e,t){if(!t)return e;const r={...e};for(const[n,o]of Object.entries(t))o&&(r[n]=o);return r}var cn=new Set(["p","br","a","strong","b","em","i","u","ul","ol","li","h1","h2","h3","h4","h5","h6","span","div","table","thead","tbody","tr","th","td","hr","code","pre","blockquote","img","sup","sub"]),un=new Set(["script","iframe","object","embed","form","input","textarea","select","button","style","link","meta","template","noscript"]),dt={"*":new Set(["class"]),a:new Set(["href","target","rel"]),img:new Set(["src","alt","width","height"]),div:new Set(["style"]),span:new Set(["style"]),p:new Set(["style"])};function ln(e){return/^\s*javascript\s*:/i.test(e)}var dn=new Set(["color","background-color","font-size","font-weight","font-style","font-family","text-align","text-decoration","line-height","letter-spacing","margin","margin-top","margin-right","margin-bottom","margin-left","padding","padding-top","padding-right","padding-bottom","padding-left","border","border-top","border-right","border-bottom","border-left","border-radius","border-color","border-width","border-style","width","max-width","min-width","height","max-height","min-height","display","vertical-align","white-space","word-break","overflow","opacity","visibility","list-style","list-style-type","text-transform","text-indent","text-overflow","box-sizing","flex","flex-direction","flex-wrap","justify-content","align-items","gap"]),fn=/url\s*\(|expression\s*\(|javascript\s*:|\bimport\b|-moz-binding|behavior\s*:/i;function pn(e){const t=[];for(const r of e.split(";")){const n=r.trim();if(!n)continue;const o=n.indexOf(":");if(o===-1)continue;const i=n.slice(0,o).trim().toLowerCase(),a=n.slice(o+1).trim();dn.has(i)&&(fn.test(a)||t.push(n))}return t.join("; ")}function Re(e,t){if(e.nodeType===Node.TEXT_NODE)return;if(e.nodeType!==Node.ELEMENT_NODE){e.parentNode?.removeChild(e);return}const r=e,n=r.tagName.toLowerCase();if(un.has(n)){r.parentNode?.removeChild(r);return}if(!cn.has(n)){const c=Array.from(r.childNodes);for(const u of c)t.insertBefore(u,r);t.removeChild(r);for(const u of c)Re(u,t);return}const o=dt["*"]??new Set,i=dt[n]??new Set,a=Array.from(r.attributes);for(const c of a){const u=c.name.toLowerCase();if(!o.has(u)&&!i.has(u)){r.removeAttribute(c.name);continue}if(ln(c.value)){r.removeAttribute(c.name);continue}if(u==="style"){const l=pn(c.value);l?r.setAttribute("style",l):r.removeAttribute("style");continue}}if(n==="a"){const c=r.getAttribute("href");if(c!==null){const u=c.trim().toLowerCase();!u.startsWith("http://")&&!u.startsWith("https://")&&!u.startsWith("mailto:")&&r.removeAttribute("href")}r.setAttribute("target","_blank"),r.setAttribute("rel","noopener noreferrer")}if(n==="img"){const c=r.getAttribute("src");c!==null&&(c.trim().toLowerCase().startsWith("https://")||r.removeAttribute("src"))}const s=Array.from(r.childNodes);for(const c of s)Re(c,r)}var ft=["http:","https:"];function _e(e){const t=e.trim();if(!t)return!1;if(t.startsWith("/")&&!t.startsWith("//"))return!0;try{return ft.includes(new URL(t).protocol)}catch{return!1}}function pt(e){if(e.startsWith("/")&&!e.startsWith("//"))return!0;try{const t=new URL(e);return ft.includes(t.protocol)}catch{return!1}}function gn(e){if(!e)return"";const t=new DOMParser().parseFromString(e,"text/html").body,r=Array.from(t.childNodes);for(const n of r)Re(n,t);return t.innerHTML}function mn(){return typeof window<"u"&&Array.isArray(window.dataLayer)}function Ze(e,t){const r={event:e,...t};mn()&&window.dataLayer.push(r)}function hn(e){Ze("gengage-on-init",{gengage_widget:e})}function gt(e){Ze("gengage-show",{gengage_widget:e})}function yn(e,t){Ze("gengage-cart-add",{gengage_sku:e,gengage_quantity:t})}function ae(e,t){window.dispatchEvent(new CustomEvent(e,{detail:t,bubbles:!1}))}function mt(e,t){const r=n=>{t(n.detail)};return window.addEventListener(e,r),()=>window.removeEventListener(e,r)}function _n(){const e=window.__gengageSessionId??sessionStorage.getItem("gengage_session_id")??null??crypto.randomUUID();return window.__gengageSessionId=e,sessionStorage.setItem("gengage_session_id",e),window.gengage||(window.gengage={}),window.gengage.sessionId=e,e}function vn(e){return{sessionId:e?.sessionId??_n(),...e}}var ht={"--gengage-chat-offset":"20px","--gengage-chat-launcher-width":"56px","--gengage-chat-launcher-height":"56px","--gengage-chat-width":"400px","--gengage-chat-shell-radius":"1rem","--gengage-chat-header-height":"72px","--gengage-chat-conversation-width":"396px","--gengage-chat-panel-min-width":"320px","--gengage-chat-panel-max-width":"1200px","--gengage-chat-input-height":"48px","--gengage-qna-pill-radius":"999px","--gengage-qna-input-radius":"12px","--gengage-simrel-card-radius":"0.75rem","--radius-control":"12px","--radius-card":"16px","--radius-panel":"24px","--radius-pill":"999px","--surface-card-muted":"#f8fafc","--text-secondary":"#4b5563","--text-muted":"#6b7280","--border-default":"rgba(17, 24, 39, 0.10)"};function bn(e){if(!e)return{...ht};const t={...ht,...e},r=e["--gengage-chat-launcher-size"];return r!==void 0&&(e["--gengage-chat-launcher-width"]===void 0&&(t["--gengage-chat-launcher-width"]=r),e["--gengage-chat-launcher-height"]===void 0&&(t["--gengage-chat-launcher-height"]=r)),t}var D={primaryColor:"#b7102a",primaryForeground:"#ffffff",backgroundColor:"#ffffff",foregroundColor:"#111827",borderRadius:"0.75rem",fontFamily:'"Plus Jakarta Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif',fontSize:"14px",zIndex:"1000","--glov-chatbot-width":"420px","--glov-left-spacing":"260px","--chatbot-padding":"16px","--root-wrapper-background-color":"#f8f9fa","--root-wrapper-border-color":"#edeeef","--gengage-chat-width":"400px","--gengage-chat-shell-radius":"1rem","--gengage-chat-header-height":"72px","--gengage-chat-conversation-width":"396px","--gengage-chat-panel-min-width":"320px","--gengage-chat-panel-max-width":"1200px","--gengage-chat-input-height":"48px","--gengage-qna-pill-radius":"999px","--gengage-qna-input-radius":"0.75rem","--gengage-simrel-card-radius":"0.75rem","--client-primary":"#b7102a","--client-primary-hover":"color-mix(in srgb, #b7102a 88%, black 12%)","--client-primary-active":"color-mix(in srgb, #b7102a 78%, black 22%)","--client-primary-subtle":"color-mix(in srgb, #b7102a 12%, white)","--client-primary-soft":"color-mix(in srgb, #b7102a 20%, white)","--client-on-primary":"#ffffff","--client-focus-ring":"color-mix(in srgb, #b7102a 32%, transparent)","--surface-page":"#f6f7fb","--surface-shell":"#10131a","--surface-card":"#ffffff","--surface-card-muted":"#f8fafc","--surface-card-soft":"#f8fafc","--surface-elevated":"#ffffff","--surface-input":"#ffffff","--surface-overlay":"rgba(16, 19, 26, 0.52)","--text-primary":"#111827","--text-secondary":"#4b5563","--text-muted":"#6b7280","--text-inverse":"#f9fafb","--border-subtle":"rgba(17, 24, 39, 0.06)","--border-default":"rgba(17, 24, 39, 0.10)","--border-strong":"rgba(17, 24, 39, 0.18)","--shadow-1":"0 1px 2px rgba(16, 24, 40, 0.04), 0 1px 3px rgba(16, 24, 40, 0.06)","--shadow-2":"0 4px 12px rgba(16, 24, 40, 0.08)","--shadow-3":"0 10px 24px rgba(16, 24, 40, 0.12)","--radius-control":"12px","--radius-card":"16px","--radius-panel":"24px","--radius-pill":"999px","--success":"#16a34a","--warning":"#d97706","--error":"#dc2626","--info":"#2563eb","--rating":"#f5b301","--ai-accent-start":"#0b24d6","--ai-accent-end":"#f768f2","--ai-accent-soft":"linear-gradient(135deg, rgba(11, 36, 214, 0.08), rgba(247, 104, 242, 0.08))"},q="gengage-global-toast-root",yt="gengage-global-toast-style",De="gengage-global-toast-root--visible",wn=4200,kn=1500,Sn=15e3,En=["--gengage-font-family","--surface-card","--text-primary","--text-muted","--border-default","--radius-card","--shadow-3","--error","--ds-toast-error-bg","--ds-toast-error-border","--ds-toast-error-accent","--ds-toast-error-fg","--ds-toast-error-shadow"],_t=!1,Y=null,Cn=[/failed to fetch/i,/networkerror/i,/network request failed/i,/load failed/i,/err_network/i,/fetch failed/i,/network error/i];function vt(e){return typeof e=="string"&&e.toLowerCase().startsWith("tr")}function Tn(e){if(typeof navigator<"u"&&navigator.onLine===!1)return!0;const t=e instanceof Error?e.message.trim():"";return t?Cn.some(r=>r.test(t)):!1}function xn(e,t){return Tn(t)?vt(e)?"Bağlantı sorunu oluştu. Lütfen tekrar deneyin.":"Connection issue. Please try again.":vt(e)?"Bir hata oluştu. Lütfen tekrar deneyin.":"Something went wrong. Please try again."}function zn(){_t||typeof window>"u"||typeof document>"u"||(_t=!0,mt("gengage:global:error",e=>{Ue(e)}))}function Ue(e){if(typeof document>"u")return;const t=e.message.trim();if(!t)return;Nn();const r=Pn();In(r),r.innerHTML="";const n=document.createElement("section");n.className="gengage-global-toast gengage-global-toast--error",n.setAttribute("role","status"),n.setAttribute("aria-live","polite");const o=document.createElement("div");o.className="gengage-global-toast-title",o.textContent=An(e.source);const i=document.createElement("div");i.className="gengage-global-toast-message",i.textContent=t,n.appendChild(o),n.appendChild(i),r.appendChild(n),r.classList.add(De),Y&&(clearTimeout(Y),Y=null),e.sticky!==!0&&(Y=setTimeout(()=>{bt()},$n(e.durationMs)))}function bt(){if(typeof document>"u")return;const e=document.getElementById(q);e&&(e.classList.remove(De),e.innerHTML="",Y&&(clearTimeout(Y),Y=null))}function An(e){switch(e){case"chat":return"Chat warning";case"qna":return"QnA warning";case"simrel":return"Widget warning";default:return"Connection warning"}}function Pn(){const e=document.getElementById(q);if(e instanceof HTMLElement)return e;const t=document.createElement("div");return t.id=q,t.className="gengage-global-toast-root",document.body.appendChild(t),t}function In(e){if(typeof document>"u"||typeof window>"u")return;const t=document.querySelector(".gengage-chat-root, .gengage-qna-container, .gengage-simrel-container, .gengage-simbut-root");if(!t)return;const r=window.getComputedStyle(t);for(const n of En){const o=r.getPropertyValue(n).trim();o?e.style.setProperty(n,o):e.style.removeProperty(n)}}function $n(e){return typeof e!="number"||!Number.isFinite(e)?wn:Math.min(Sn,Math.max(kn,Math.round(e)))}function Nn(){if(document.getElementById(yt))return;const e=document.createElement("style");e.id=yt;const t=D["--surface-card"]??D.backgroundColor??"#ffffff",r=D["--text-primary"]??D.foregroundColor??"#111827",n=D["--border-default"]??"rgba(17, 24, 39, 0.10)",o=D["--error"]??"#dc2626",i=D["--shadow-3"]??"0 10px 24px rgba(16, 24, 40, 0.12)",a=D["--radius-card"]??"16px",s=D["--text-muted"]??"#6b7280";e.textContent=`
|
|
2
|
+
#${q} {
|
|
3
3
|
position: fixed;
|
|
4
4
|
top: 16px;
|
|
5
5
|
right: 16px;
|
|
6
6
|
z-index: 2147483646;
|
|
7
7
|
pointer-events: none;
|
|
8
8
|
}
|
|
9
|
-
#${
|
|
9
|
+
#${q}.${De} {
|
|
10
10
|
pointer-events: auto;
|
|
11
11
|
}
|
|
12
|
-
#${
|
|
12
|
+
#${q} .gengage-global-toast {
|
|
13
13
|
min-width: 260px;
|
|
14
14
|
max-width: min(92vw, 420px);
|
|
15
15
|
border-radius: var(--radius-card, ${a});
|
|
@@ -24,13 +24,13 @@
|
|
|
24
24
|
line-height: 1.4;
|
|
25
25
|
animation: gengage-global-toast-in 180ms ease-out forwards;
|
|
26
26
|
}
|
|
27
|
-
#${
|
|
27
|
+
#${q} .gengage-global-toast-title {
|
|
28
28
|
margin: 0 0 4px;
|
|
29
29
|
font-size: 12px;
|
|
30
30
|
font-weight: 700;
|
|
31
31
|
color: var(--text-muted, ${s});
|
|
32
32
|
}
|
|
33
|
-
#${
|
|
33
|
+
#${q} .gengage-global-toast-message {
|
|
34
34
|
margin: 0;
|
|
35
35
|
font-weight: 500;
|
|
36
36
|
}
|
|
@@ -44,10 +44,10 @@
|
|
|
44
44
|
transform: translateY(0);
|
|
45
45
|
}
|
|
46
46
|
}
|
|
47
|
-
`,document.head.appendChild(e)}var
|
|
48
|
-
`);o=m.pop()??"";for(const y of m)if(kt(y,t))return}if(o.trim()&&kt(o,t))return}catch(c){if(c instanceof DOMException&&c.name==="AbortError")return;t.onError?.(c instanceof Error?c:new Error(String(c)))}finally{s||r.releaseLock()}t.onDone?.()}var St=3,Fn=(e,t)=>{const r=e.replace(/\s+/g," ").trim().replace(/^[,.;:!?•-]+|[,.;:!?•-]+$/g,"");if(!r)return"";const n=t?.stripLeadingStopWords?r.replace(/^(?:daha|için)\s+/i,"").trim():r;return n?n.split(/\s+/).slice(0,3).join(" ").trim():""},Ue=(e,t)=>e?e.split(/[•,;:/()]|(?:\sve\s)|(?:\sand\s)|(?:\sile\s)|(?:\sfor\s)|(?:\swith\s)/i).map(r=>Fn(r,t)).filter(Boolean):[];function Bn(e){const t=(e.display_keywords??[]).flatMap(o=>Ue(o,{stripLeadingStopWords:!0})),r=t.filter((o,i)=>t.indexOf(o)===i);if(r.length>0)return r.slice(0,St);const n=[...Ue(e.chosen_attribute,{stripLeadingStopWords:!0}),...Ue(e.short_name)];return n.filter((o,i)=>n.indexOf(o)===i).slice(0,St)}function Gn(e){return Bn(e).join(" • ")}function qn(e){return e==="beauty_consulting"||e==="account_expert"}function je(...e){for(const t of e){if(typeof t!="string")continue;const r=t.trim();if(r.length>0)return r}}function Me(e){return Array.isArray(e)?e.filter(t=>typeof t=="string"&&t.trim().length>0).map(t=>t.trim()):[]}function Et(e){const t={...e},r=je(t.sku),n=Me(t.group_skus);if(r?t.sku=r:delete t.sku,n.length>0?t.group_skus=n:delete t.group_skus,r||n.length>0)delete t.image_url;else{const o=je(t.image_url);o?t.image_url=o:delete t.image_url}return t}function zt(e){if(typeof e.type!="string")return null;if(Vn(e))return e;const t=e;switch(t.type){case"outputText":return Jn(t);case"suggestedActions":return Wn(t);case"productList":return Hn(t);case"productDetails":return Kn(t);case"productDetailsSimilars":return Yn(t);case"comparisonTable":return Xn(t);case"context":return ro(t);case"chatStreamEnd":return no();case"loading":return oo(t);case"panelLoading":return io(t);case"similarLoading":return ao(t);case"redirect":return so(t);case"error":return co(t);case"dummy":return uo(t);case"launcherAction":return lo(t);case"text":return Fe(t);case"productItem":return fo(t);case"text_image":return Tt(t);case"quick_qna":return xt(t);case"reviewHighlights":return po(t);case"aiProductSuggestions":return ho(t);case"aiProductGroupings":return yo(t);case"aiSuggestedSearches":return vo(t);case"prosAndCons":return go(t);case"getGroundingReview":return bo(t);case"voice":return ko(t);case"visitorDataResponse":return mo(t);case"productListPreview":return wo();case"groupList":return Co(t);case"formGetInfo":case"formTestDrive":case"formServiceRequest":case"launchFormPage":return So(t);case"launcherContent":return zo(t);case"handoff":return Eo(t);case"uiSpec":return Lo(t);default:return null}}function Vn(e){const t=e.type;if(typeof t!="string")return!1;switch(t){case"metadata":return typeof e.sessionId=="string"&&typeof e.model=="string";case"text_chunk":return typeof e.content=="string";case"ui_spec":{const r=e.widget;if(r!=="chat"&&r!=="qna"&&r!=="simrel")return!1;const n=A(e.spec);return n?typeof n.root=="string"&&A(n.elements)!==null:!1}case"action":{const r=A(e.action);return r!==null&&typeof r.kind=="string"}case"error":return typeof e.code=="string"&&typeof e.message=="string";case"done":return!0;default:return!1}}function Jn(e){const t=w(e.payload.text,e.payload.plain_text)??"",r=w(e.payload.plain_text,e.payload.text)??t;if(e.payload.is_error)return{type:"error",code:"BACKEND_ERROR",message:r||"Backend returned an error"};const n={type:"text_chunk",content:t,final:!0},o=e.payload.product_mentions;Array.isArray(o)&&o.length>0&&(n.productMentions=o.filter(c=>typeof c=="object"&&c!==null&&typeof c.sku=="string"&&typeof c.short_name=="string"));const i=e.payload.sku_to_product_item;i&&typeof i=="object"&&!Array.isArray(i)&&(n.skuToProductItem=i);const a=e.payload.conversation_mode;typeof a=="string"&&a&&(n.conversationMode=a);const s=e.payload.render_hint;return typeof s=="string"&&s&&(n.renderHint=s),e.payload.kvkk===!0&&(n.kvkk=!0),n}function Wn(e){return Pt((e.payload.actions??[]).map(t=>{const r=w(t.title)??"",n=R(t.requestDetails,r),o=n?{label:r,action:n}:null;return o?(typeof t.icon=="string"&&(o.icon=t.icon),typeof t.image=="string"&&(o.image=t.image),o):null}).filter(ce),"chat")}function Hn(e){const t=(Array.isArray(e.payload.style_variations)?e.payload.style_variations:[]).map(a=>{const s=w(a.style_label);if(!s)return null;const c=w(a.style_mood),u=w(a.image_url??void 0),l=(Array.isArray(a.product_list)?a.product_list:[]).map(f=>{const m=A(f);return m?Be(A(m.product_detail)??A(m.product)??m):null}).filter(ce),d=Array.isArray(a.recommendation_groups)?a.recommendation_groups.map(f=>({label:w(f.label)??"",reason:w(f.reason)??"",skus:Array.isArray(f.skus)?f.skus.filter(m=>typeof m=="string"&&m.trim().length>0):[]})):[];return{style_label:s,style_mood:c??"",...u?{image_url:u}:{},...typeof a.status=="string"?{status:a.status}:{},product_list:l,recommendation_groups:d}}).filter(ce),r=e.payload.product_list??[],n=qn(e.payload.source)&&t.length>0?t[0].product_list:null,o=n?To(n,"chat"):It(r,"chat");o.panelHint="panel";const i=o.spec.elements[o.spec.root];if(i){const a={};typeof e.payload.offset=="number"&&(a.offset=e.payload.offset),typeof e.payload.end_of_list=="boolean"&&(a.endOfList=e.payload.end_of_list),typeof e.payload.title=="string"&&(a.panelTitle=e.payload.title),typeof e.payload.source=="string"&&(a.source=e.payload.source),t.length>0&&(a.styleVariations=t),e.payload.replace_panel===!0&&(a.replacePanel=!0),(e.payload.ranking_state==="pending"||e.payload.ranking_state==="final")&&(a.rankingState=e.payload.ranking_state);const s=e.payload.sequence_id??e.payload.search_id;typeof s=="string"&&s.length>0&&(a.sequenceId=s),Object.keys(a).length>0&&(i.props={...i.props,...a})}return o}function Kn(e){const t=e.payload.productDetails;if(!t)return Po("chat");const r=G(t);return{type:"ui_spec",widget:"chat",spec:{root:"root",elements:{root:{type:"ProductDetailsPanel",props:{product:{...t,...r}}}}},panelHint:"panel"}}function Yn(e){const t=It(e.payload.similarProducts??[],"chat"),r=t.spec.elements[t.spec.root];return r&&(r.props={...r.props,similarsAppend:!0}),{...t,panelHint:"panel"}}function Xn(e){const t=e.payload.multiple_product_details??[],r=e.payload,n={key_differences:r.key_differences,recommended_choice:r.recommended_choice,recommended_choice_sku:r.recommended_choice_sku,special_considerations:r.special_considerations,criteria_view:r.criteria_view,criteria_view_short:r.criteria_view_short,compared_field_names:r.compared_field_names,winner_product:r.winner_product,winner_hits:r.winner_hits,...e.payload.product_comparison_framework??{}},o=e.payload.table,i=e.payload.features_list,a=[];for(const h of t){const k=G(h);a.push(k)}const s=Qn(o,a,n,i);let c;n?.recommended_choice_sku?c=n.recommended_choice_sku:n?.winner_product&&n.winner_product.length>0&&(c=n.winner_product[0]?.product_detail?.sku??n.winner_product[0]?.sku);const u=c?a.find(h=>h.sku===c)??a[0]:a[0],l=[];if(Array.isArray(n?.key_differences))for(const h of n.key_differences)typeof h=="string"&&l.push(h);const d=At(n?.special_considerations),f=n?.recommended_choice,m=n?.winner_hits,y={};for(const h of a){const k=h.sku;k&&(y[k]={title:h.name??k,type:"launchSingleProduct",payload:{sku:k}})}const p={products:a,attributes:s,highlights:l,productActions:y};return u&&(p.recommended=u),d.length>0&&(p.specialCases=d),f&&(p.recommendedText=f),m&&(p.winnerHits=m),typeof n?.key_differences=="string"&&(p.keyDifferencesHtml=n.key_differences),n?.special_considerations&&(p.specialConsiderations=n.special_considerations),{type:"ui_spec",widget:"chat",spec:{root:"root",elements:{root:{type:"ComparisonTable",props:p}}},panelHint:"panel"}}function Qn(e,t,r,n){if(!e)return[];const o=Object.entries(e);if(o.length===0)return[];const i=o[0]?.[1];if(Array.isArray(i)){const d=r.criteria_view??r.criteria_view_short??{},f=r.compared_field_names??Object.keys(e),m=[];for(const y of f){const p=e[y];if(!p||!Array.isArray(p))continue;const h=d[y]??y;m.push({label:h,values:p.map(k=>typeof k=="string"?k:String(k??""))})}return m}const a=e,s=t.map(d=>String(d.sku??"")).filter(d=>d.length>0),c=r.criteria_view??r.criteria_view_short??{},u=(n&&n.length>0?n:r.compared_field_names&&r.compared_field_names.length>0?r.compared_field_names:eo(a)).filter(d=>d!=="name"&&d!=="name_short"&&!d.endsWith("_short")),l=[];for(const d of u){const f=s.map(y=>{const p=a[y];if(!p||typeof p!="object")return"";const h=p[`${d}_short`],k=p[d];return to(h??k)});if(f.every(y=>y.length===0))continue;const m=c[d]??d;l.push({label:m,values:f})}return l}function eo(e){const t=[],r=new Set;for(const n of Object.values(e))if(!(!n||typeof n!="object"))for(const o of Object.keys(n))r.has(o)||(r.add(o),t.push(o));return t}function to(e){return typeof e=="string"?e:typeof e=="number"||typeof e=="boolean"?String(e):""}function ro(e){return{type:"metadata",sessionId:"",model:"",meta:{panel:e.payload.panel,messages:e.payload.messages,message_id:e.payload.message_id}}}function no(){return{type:"done"}}function oo(e){return{type:"metadata",sessionId:"",model:"",meta:{loading:!0,loadingText:e.payload.text,thinkingMessages:e.payload.thinking_messages,dynamicLoading:e.payload.is_dynamic===!0}}}function io(e){return{type:"metadata",sessionId:"",model:"",meta:{loading:!0,panelLoading:!0,panelPendingType:e.payload?.pending_type,loadingText:e.payload?.text}}}function ao(e){return{type:"metadata",sessionId:"",model:"",meta:{loading:!0,similarPanelLoading:!0,panelPendingType:e.payload?.pending_type,loadingText:e.payload?.text}}}function so(e){const t=w(e.payload.url);return t?{type:"action",action:{kind:"navigate",url:t,newTab:e.payload.new_tab===!0}}:{type:"metadata",sessionId:"",model:"",meta:{redirect:e.payload,redirectTarget:w(e.payload.to)}}}function co(e){return{type:"error",code:"BACKEND_ERROR",message:w(e.payload?.text,e.payload?.message,e.payload?.error)??"Backend returned an error"}}function uo(e){return{type:"metadata",sessionId:"",model:"",meta:{noop:!0}}}function lo(e){const t=e.payload??{};if(Array.isArray(t.action_list)){const o={action_list:t.action_list},i=typeof t.type=="string"?t.type:void 0,a=typeof t.theme=="string"?t.theme:void 0;return i!==void 0&&(o.type=i),a!==void 0&&(o.theme=a),xt({type:"quick_qna",payload:o})}const r=A(t.action);if(r){const o={action:r},i=typeof t.text=="string"?t.text:void 0,a=typeof t.image_url=="string"?t.image_url:void 0,s=typeof t.theme=="string"?t.theme:void 0;return i!==void 0&&(o.text=i),a!==void 0&&(o.image_url=a),s!==void 0&&(o.theme=s),Tt({type:"text_image",payload:o})}const n=typeof t.text=="string"?t.text:"";if(n){const o={text:n},i=typeof t.type=="string"?t.type:void 0,a=typeof t.theme=="string"?t.theme:void 0,s=A(t.payload)??void 0;return i!==void 0&&(o.type=i),s!==void 0&&(o.payload=s),a!==void 0&&(o.theme=a),Fe({type:"text",payload:o})}return{type:"metadata",sessionId:"",model:"",meta:{launcherAction:t}}}function Fe(e){const t={text:w(e.payload.text)??""};return typeof e.payload.theme=="string"&&(t.theme=e.payload.theme),e.payload.payload!==void 0&&(t.payload=e.payload.payload),{type:"ui_spec",widget:"qna",spec:{root:"root",elements:{root:{type:"QuestionHeading",props:t}}}}}function fo(e){return xo(e.payload,"qna")}function Tt(e){const t=w(e.payload.text)??"",r=R(e.payload.action,t);if(r){const o={label:t||r.title,action:r};return typeof e.payload.image_url=="string"&&(o.image=e.payload.image_url),typeof e.payload.theme=="string"&&(o.theme=e.payload.theme),{type:"ui_spec",widget:"qna",spec:{root:"root",elements:{root:{type:"ActionButton",props:o}}}}}const n={text:t};return typeof e.payload.theme=="string"&&(n.theme=e.payload.theme),Fe({type:"text",payload:n})}function xt(e){return Pt((e.payload.action_list??[]).map(t=>{const r=w(t.title)??"",n=R(t.requestDetails,r),o=n?{label:r,action:n}:null;return o?(typeof t.icon=="string"&&(o.icon=t.icon),typeof t.image=="string"&&(o.image=t.image),o):null}).filter(ce),"qna")}function po(e){const t={reviews:(e.payload.reviews??[]).map(r=>{const n={};return typeof r.review_class=="string"&&(n.review_class=r.review_class),typeof r.review_text=="string"&&(n.review_text=r.review_text),(typeof r.review_rating=="string"||typeof r.review_rating=="number")&&(n.review_rating=r.review_rating),typeof r.review_tag=="string"&&(n.review_tag=r.review_tag),n})};return typeof e.payload.sku=="string"&&(t.sku=e.payload.sku),{type:"ui_spec",widget:"chat",spec:{root:"root",elements:{root:{type:"ReviewHighlights",props:t}}}}}function go(e){const t={};return Array.isArray(e.payload.pros)&&(t.pros=e.payload.pros),Array.isArray(e.payload.cons)&&(t.cons=e.payload.cons),typeof e.payload.product_name=="string"&&(t.productName=e.payload.product_name),{type:"ui_spec",widget:"chat",spec:{root:"root",elements:{root:{type:"ProsAndCons",props:t}}}}}function mo(e){return{type:"metadata",sessionId:"",model:"",meta:{visitorDataResponse:e.payload}}}function ho(e){const t=e.payload.product_suggestions??[],r=[];for(let n=0;n<t.length;n++){const o=t[n];if(!o)continue;const i=Io(o);if(!i)continue;const a={product:i},s=R(o.requestDetails,i.name);s&&(a.action=s),typeof o.role=="string"&&(a.role=o.role),typeof o.reason=="string"&&(a.reason=o.reason),typeof o.review_highlight=="string"&&(a.reviewHighlight=o.review_highlight),Array.isArray(o.labels)&&(a.labels=o.labels),typeof o.expert_quality_score=="number"&&(a.expertQualityScore=o.expert_quality_score),r.push(a)}return r.length===0?{type:"metadata",sessionId:"",model:"",meta:{aiProductSuggestions:e.payload.product_suggestions??[]}}:{type:"ui_spec",widget:"chat",spec:{root:"root",elements:{root:{type:"AITopPicks",props:{suggestions:r}}}}}}function yo(e){const t=e.payload.product_groupings??[],r=[],n=[];for(let o=0;o<t.length;o++){const i=t[o];if(!i)continue;const a=w(i.name)??"",s=w(i.description),c=w(i.highlight),u=Array.isArray(i.labels)?At(i.labels):[],l=w(i.sku,i.repr_sku),d=w(i.image,i.repr_image),f=_o(i,a,l),m=(Array.isArray(i.group_products)?i.group_products:[]).map(h=>{const k=A(h);return k?Be(k):null}).filter(ce),y=d??w(...m.map(h=>h.imageUrl));if(a&&m.length>0){const h={groupName:a,products:m};y&&(h.image=y),s&&(h.description=s),c&&(h.highlight=c),u.length>0&&(h.labels=u),r.push(h)}if(!f)continue;const p={name:a,action:f};u.length>0&&(p.labels=u),d!==void 0&&(p.image=d),n.push(p)}return r.length>0?{type:"ui_spec",widget:"chat",spec:{root:"root",elements:{root:{type:"CategoriesContainer",props:{groups:r}}}},panelHint:"panel"}:n.length===0?{type:"metadata",sessionId:"",model:"",meta:{aiProductGroupings:e.payload.product_groupings??[]}}:{type:"ui_spec",widget:"chat",spec:{root:"root",elements:{root:{type:"AIGroupingCards",props:{entries:n}}}}}}function _o(e,t,r){const n=A(e.requestDetails);if(n){if(n.type!=="findSimilar")return R(n,t);const a={...A(n.payload)??{}};r&&!je(a.sku)&&(a.sku=r);const s=Me(e.group_skus);return s.length>0&&(a.group_skus=s),R({...n,payload:Et(a)},t)}const o={};r&&(o.sku=r);const i=Me(e.group_skus);return i.length>0&&(o.group_skus=i),Object.keys(o).length===0?null:R({type:"findSimilar",payload:Et(o)},t)}function vo(e){const t=e.payload.suggested_searches??[],r=[];for(let n=0;n<t.length;n++){const o=t[n];if(!o)continue;const i=w(o.short_name,o.chosen_attribute,o.detailed_user_message)??`Search ${n+1}`,a={},s=w(o.detailed_user_message);s&&(a.text=s);const c=A(A(o.requestDetails)?.payload),u=c?.group_skus;o.group_skus&&Array.isArray(o.group_skus)?a.group_skus=o.group_skus:Array.isArray(u)&&(a.group_skus=u.filter(k=>typeof k=="string"));const l=w(o.sku,o.representative_product_sku,c?.sku);l&&(a.sku=l),a.is_suggested_text=1;const d={type:"inputText",payload:a},f=R(o.requestDetails,i),m=f?.type==="findSimilar"&&typeof a.text=="string"?R(d,i):f??R(d,i);if(!m)continue;const y={shortName:i,action:m},p=w(o.detailed_user_message);p&&p!==i&&(y.detailedMessage=p);const h=Gn(o);h&&h!==i&&h!==(p??"")&&(y.whyDifferent=h),typeof o.image=="string"&&(y.image=o.image),r.push(y)}return r.length===0?{type:"metadata",sessionId:"",model:"",meta:{aiSuggestedSearches:e.payload.suggested_searches??[]}}:{type:"ui_spec",widget:"chat",spec:{root:"root",elements:{root:{type:"AISuggestedSearchCards",props:{entries:r}}}}}}function bo(e){const t=e.payload,r=R(t.requestDetails??t.request_details,w(t.review_count,t.reviewCount,t.text,t.title)??"Show product reviews");if(!r)return{type:"metadata",sessionId:"",model:"",meta:{groundingReview:t}};const n={action:r};return t.title&&(n.title=t.title),t.text&&(n.text=t.text),t.review_count?n.reviewCount=t.review_count:typeof t.reviewCount=="string"&&t.reviewCount.trim()&&(n.reviewCount=t.reviewCount),{type:"ui_spec",widget:"chat",spec:{root:"root",elements:{root:{type:"GroundingReviewCard",props:n}}}}}function wo(){return{type:"metadata",sessionId:"",model:"",meta:{analyzeAnimation:!0}}}function ko(e){return{type:"metadata",sessionId:"",model:"",meta:{voice:e.payload}}}function Co(e){const t=e.payload.group_list??[],r=[];for(const o of t){const i=o.group_name??"",a=(o.product_list??[]).map(G);r.push({groupName:i,products:a})}const n=[];for(const o of e.payload.filter_tags??[]){const i=o.title??"";if(!i)continue;const a=R(o.requestDetails,i),s={title:i};a&&(s.action=a),n.push(s)}return{type:"ui_spec",widget:"chat",spec:{root:"root",elements:{root:{type:"CategoriesContainer",props:{groups:r,filterTags:n}}}},panelHint:"panel"}}function So(e){return{type:"metadata",sessionId:"",model:"",meta:{formType:e.type,formPayload:e.payload??{}}}}function Eo(e){const t={};return typeof e.payload?.summary=="string"&&(t.summary=e.payload.summary),Array.isArray(e.payload?.products_discussed)&&(t.products_discussed=e.payload.products_discussed),typeof e.payload?.user_sentiment=="string"&&(t.user_sentiment=e.payload.user_sentiment),{type:"ui_spec",widget:"chat",spec:{root:"root",elements:{root:{type:"HandoffNotice",props:t}}}}}function zo(e){return{type:"metadata",sessionId:"",model:"",meta:{launcherContent:e.payload??{}}}}function Pt(e,t){const r={},n=[];for(let o=0;o<e.length;o++){const i=e[o];if(!i)continue;const a=`action-${o}`;n.push(a);const s={label:i.label,action:i.action};i.icon!==void 0&&(s.icon=i.icon),i.image!==void 0&&(s.image=i.image),i.description!==void 0&&(s.description=i.description),r[a]={type:"ActionButton",props:s}}return r.root={type:"ActionButtons",props:{buttons:e.map(o=>{const i={label:o.label,action:o.action};return o.image!==void 0&&(i.image=o.image),o.description!==void 0&&(i.description=o.description),o.icon!==void 0&&(i.icon=o.icon),i})},children:n},{type:"ui_spec",widget:t,spec:{root:"root",elements:r}}}function It(e,t){const r={},n=[];for(let o=0;o<e.length;o++){const i=e[o];if(!i)continue;const a=G(i),s=`product-${o}`;n.push(s);const c={product:a,index:o};a.sku&&(c.action={title:a.name,type:"launchSingleProduct",payload:{sku:a.sku}}),r[s]={type:"ProductCard",props:c}}return r.root={type:"ProductGrid",props:{layout:"grid"},children:n},{type:"ui_spec",widget:t,spec:{root:"root",elements:r}}}function To(e,t){const r={},n=[];for(let o=0;o<e.length;o++){const i=e[o];if(!i)continue;const a=`product-${o}`;n.push(a);const s={product:i,index:o},c=i.sku;c&&(s.action={title:i.name??"",type:"launchSingleProduct",payload:{sku:c}}),r[a]={type:"ProductCard",props:s}}return r.root={type:"ProductGrid",props:{layout:"grid"},children:n},{type:"ui_spec",widget:t,spec:{root:"root",elements:r}}}function xo(e,t){return{type:"ui_spec",widget:t,spec:{root:"root",elements:{root:{type:"ProductCard",props:{product:G(e),index:0}}}}}}function Po(e){return{type:"ui_spec",widget:e,spec:{root:"root",elements:{root:{type:"ActionButtons",props:{buttons:[]},children:[]}}}}}function Io(e){const t=w(e.sku),r=w(e.short_name),n={...A(e.product_item)??e},o=w(e.discount_reason,e.discountReason);return o&&!w(n.discount_reason,n.discountReason)&&(n.discount_reason=o),Be(n,t,r)}function Be(e,t,r){const n=w(e.sku,t),o=w(e.name,r);if(!n||!o)return null;const i={sku:n,name:o},a=w(e.brand);a&&(i.brand=a);const s=w(e.url);s&&(i.url=s);const c=Ao(e.images);if(c.length>0)i.images=c;else{const p=w(e.image,e.image_url,e.imageUrl);p&&(i.images=[p])}const u=se(e.price_discounted);u!==void 0&&(i.price_discounted=u);const l=se(e.price);l!==void 0&&(i.price=l);const d=se(e.rating);d!==void 0&&(i.rating=d);const f=se(e.review_count)??se(e.reviewCount);f!==void 0&&(i.review_count=f);const m=w(e.cart_code,e.cartCode);m&&(i.cart_code=m),typeof e.in_stock=="boolean"&&(i.in_stock=e.in_stock),typeof e.inStock=="boolean"&&(i.in_stock=e.inStock);const y=w(e.discount_reason,e.discountReason);return y&&(i.discount_reason=y),G(i)}function R(e,t){const r=A(e);if(!r)return null;const n=r.type;if(typeof n!="string"||n.length===0)return null;const o={title:t||n,type:n};return r.payload!==void 0&&(o.payload=r.payload),o}function A(e){return!e||typeof e!="object"||Array.isArray(e)?null:e}function w(...e){for(const t of e)if(typeof t=="string"){const r=t.trim();if(r.length>0)return r}}function Ao(e){return Array.isArray(e)?e.filter(t=>typeof t=="string"&&t.length>0):[]}function At(e){if(typeof e=="string"){const t=e.trim();return t?[t]:[]}return Array.isArray(e)?e.filter(t=>typeof t=="string").map(t=>t.trim()).filter(t=>t.length>0):[]}function se(e){if(typeof e=="number"&&Number.isFinite(e))return e;if(typeof e=="string"){let t;e.includes(".")&&e.includes(",")?t=e.replace(/\./g,"").replace(",","."):t=e.replace(",",".");const r=Number(t);if(Number.isFinite(r))return r}}function ce(e){return e!=null}var $o=new Set(["sku","name","brand","images","price","price_discounted","price_discount_rate","price_currency","discount_reason","url","rating","review_count","cart_code","in_stock","description","description_html","features","specifications","short_name","category_ids","category_names","variants","facet_hits","promotions"]);function G(e){const t=e.price_discounted!=null&&e.price_discounted>0,r=t?e.price_discounted:e.price,n=t&&e.price!=null?e.price:void 0;let o;n!=null&&r!=null&&n>0?o=Math.round((n-r)/n*100):e.price_discount_rate!=null&&e.price_discount_rate>0&&(o=e.price_discount_rate);const i=w(e.brand),a=w(e.name)??e.sku,s=i&&!a.toLowerCase().startsWith(i.toLowerCase())?`${i} ${a}`:a,c={sku:e.sku,name:s,url:w(e.url)??""},u=e.images?.[0];u&&(c.imageUrl=u),e.images&&e.images.length>1&&(c.images=e.images),r!=null&&r>0&&(c.price=String(r)),n!=null&&n>0&&(c.originalPrice=String(n)),o!==void 0&&(c.discountPercent=o),i!==void 0&&(c.brand=i),e.rating!==void 0&&(c.rating=e.rating),e.review_count!==void 0&&(c.reviewCount=e.review_count),e.cart_code!==void 0&&(c.cartCode=e.cart_code),e.in_stock!==void 0&&(c.inStock=e.in_stock),e.variants&&e.variants.length>0&&(c.variants=e.variants),e.discount_reason!==void 0&&(c.discountReason=e.discount_reason),e.promotions&&e.promotions.length>0&&(c.promotions=e.promotions),e.description!==void 0&&(c.description=e.description),e.description_html!==void 0&&(c.descriptionHtml=e.description_html),e.features&&e.features.length>0&&(c.features=e.features),e.specifications!==void 0&&(c.specifications=e.specifications),e.facet_hits&&(c.facetHits=e.facet_hits),e.category_names&&e.category_names.length>0&&(c.categoryNames=e.category_names),e.short_name!==void 0&&(c.shortName=e.short_name);const l=e,d={};let f=!1;for(const m of Object.keys(l))$o.has(m)||(d[m]=l[m],f=!0);return f&&(c.extras=d),c}function No(e){return e.results.map(G)}function Oo(e){return e.product_groupings.map(t=>{const r={name:t.name,products:(t.group_products??[]).map(G)};return t.highlight!==void 0&&(r.highlight=t.highlight),r})}function Lo(e){const t=e.payload.type,{type:r,...n}=e.payload;return{type:"ui_spec",widget:"chat",spec:{root:"root",elements:{root:{type:t,props:n}}}}}function $t(e){const t=[];for(const r of Object.values(e))if(r.type==="ProductCard"&&r.props){const n=r.props.product??r.props;typeof n.sku=="string"&&typeof n.name=="string"&&t.push(n)}return t}function Nt(e){const t=e.headers.get("Content-Type")??"";return t.includes("application/x-ndjson")||t.includes("text/event-stream")}async function Ro(e,t){const r=[],n={onEvent:o=>{const i=zt(o);!i||i.type!=="ui_spec"||r.push(...$t(i.spec.elements))}};return t!==void 0&&(n.signal=t),await Ct(e,n),r}async function Zo(e,t,r){const n=bt("similar_products",t),o={method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)};r!==void 0&&(o.signal=r);const i=await fetch(n,o);if(!i.ok)throw new Error(`HTTP ${i.status}: ${i.statusText}`);if(Nt(i))return Ro(i,r);const a=await i.text();if(!a)throw new Error("Empty response body from similar_products endpoint");try{return No(JSON.parse(a))}catch{throw new Error("Invalid JSON from similar_products endpoint")}}async function Do(e,t){const r=[];let n=null;const o={onEvent:i=>{const a=zt(i);if(a){if(a.type==="metadata"&&a.meta){const s=a.meta.group_name;if(typeof s=="string"){n={name:s,products:[]};const c=a.meta.highlight;typeof c=="string"&&(n.highlight=c),r.push(n)}}a.type==="ui_spec"&&n&&n.products.push(...$t(a.spec.elements))}}};return t!==void 0&&(o.signal=t),await Ct(e,o),r}async function Uo(e,t,r){const n=bt("product_groupings",t),o={method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)};r!==void 0&&(o.signal=r);const i=await fetch(n,o);if(!i.ok)throw new Error(`HTTP ${i.status}: ${i.statusText}`);if(Nt(i))return Do(i,r);const a=await i.text();if(!a)return[];try{return Oo(JSON.parse(a))}catch{throw new Error("Invalid JSON from product_groupings endpoint")}}var jo={currencyCode:"TRY",currencySymbol:"TL",currencyPosition:"suffix",thousandsSeparator:".",decimalSeparator:",",alwaysShowDecimals:!1};function ue(e,t){const r=Number(e);if(!Number.isFinite(r)||r<0)return e;const n={...jo,...t},o=Math.abs(r%1)<Number.EPSILON,i=n.alwaysShowDecimals||!o?r.toFixed(2):r.toFixed(0),a=i.indexOf("."),s=a===-1?i:i.slice(0,a),c=a===-1?void 0:i.slice(a+1),u=s.replace(/\B(?=(\d{3})+(?!\d))/g,n.thousandsSeparator);let l;return c!==void 0?l=`${u}${n.decimalSeparator}${c}`:l=u,n.currencySymbol?n.currencyPosition==="prefix"?`${n.currencySymbol}${l}`:`${l} ${n.currencySymbol}`:l}function Mo(e){return Number.isFinite(e)?Math.max(0,Math.min(5,e)):0}function Fo(e){return Number.isFinite(e)?Math.max(0,Math.min(100,Math.round(e))):0}function Bo(e){const t=Mo(e),r=Math.floor(t),n=t-r>=.5,o=5-r-(n?1:0),i=document.createElement("span");if(i.className="gengage-star-rating",i.setAttribute("role","img"),i.setAttribute("aria-label",`${t.toFixed(1)} out of 5 stars`),r>0&&i.appendChild(document.createTextNode("★".repeat(r))),n){const a=document.createElement("span");a.className="gengage-star-half",a.textContent="☆";const s=document.createElement("span");s.textContent="★",a.appendChild(s),i.appendChild(a)}return o>0&&i.appendChild(document.createTextNode("☆".repeat(o))),i}function Ot(e){e.addEventListener("error",()=>{e.style.display="none"},{once:!0})}function Lt(e){const{product:t,index:r,discountType:n,onClick:o,onAddToCart:i,renderCard:a}=e,s=e.i18n,c=e.pricing;if(e.renderCardElement){const p=e.renderCardElement(t,r);if(p)return p}if(a){const p=document.createElement("div");return p.className="gengage-simrel-card gengage-simrel-card--custom gds-card gds-product-card gds-card-interactive",p.dataset.gengagePart="simrel-product-card",p.innerHTML=on(a(t,r)),p.addEventListener("click",h=>{h.target.closest(".gengage-simrel-atc")||h.target.closest(".gengage-chat-product-card-atc")||o(t)}),p}const u=document.createElement("article");u.className="gengage-simrel-card gengage-chat-product-card gds-card gds-product-card gds-card-interactive",u.dataset.gengagePart="simrel-product-card",t.inStock===!1&&u.classList.add("gengage-simrel-card--out-of-stock"),u.setAttribute("role","listitem"),u.dataset.sku=t.sku;const l=document.createElement("div");if(l.className="gengage-simrel-card-image gengage-chat-product-card-img-wrapper",l.dataset.gengagePart="simrel-product-card-image",t.imageUrl&&he(t.imageUrl)){const p=document.createElement("img");p.className="gengage-chat-product-card-img",p.src=t.imageUrl,p.alt=t.name,p.loading="lazy",Ot(p),l.appendChild(p)}if(n==="badge"&&t.discountPercent&&t.discountPercent>0){const p=document.createElement("span");p.className="gengage-simrel-badge gengage-chat-product-card-discount-badge",p.textContent=`%${Fo(t.discountPercent)}`,l.appendChild(p)}u.appendChild(l);const d=document.createElement("div");if(d.className="gengage-simrel-card-info gengage-chat-product-card-body",d.dataset.gengagePart="simrel-product-card-body",t.brand){const p=document.createElement("div");p.className="gengage-simrel-card-brand gengage-chat-product-card-brand",p.textContent=t.brand,d.appendChild(p)}const f=document.createElement("div");if(f.className="gengage-simrel-card-name gengage-chat-product-card-name",f.textContent=t.name,f.title=t.name,d.appendChild(f),t.rating!=null&&t.rating>0){const p=document.createElement("div");if(p.className="gengage-simrel-card-rating gengage-chat-product-card-rating",p.appendChild(Bo(t.rating)),t.reviewCount!=null){const h=document.createElement("span");h.className="gengage-simrel-card-review-count gengage-chat-product-card-review-count",h.textContent=` (${t.reviewCount})`,p.appendChild(h)}d.appendChild(p)}const m=document.createElement("div");if(m.className="gengage-simrel-card-price gengage-chat-product-card-price",t.originalPrice&&t.originalPrice!==t.price&&(n==="strike-through"||n==="inline"||!n)){const p=document.createElement("span");p.className=["gengage-simrel-card-price-original","gengage-chat-product-card-original-price"].join(" "),n==="inline"&&p.classList.add("gengage-simrel-card-price-original--inline"),p.textContent=ue(t.originalPrice,c),m.appendChild(p)}if(t.price&&parseFloat(t.price)>0){const p=document.createElement("span");p.className="gengage-simrel-card-price-current gengage-chat-product-card-price-current",p.textContent=ue(t.price,c),m.appendChild(p)}d.appendChild(m),u.appendChild(d);const y=document.createElement("button");if(y.className="gengage-simrel-card-cta gengage-chat-product-card-cta gds-btn gds-btn-secondary",y.type="button",y.dataset.gengagePart="simrel-product-card-cta",y.textContent=s?.ctaLabel??"View",y.addEventListener("click",p=>{p.preventDefault(),p.stopPropagation(),o(t)}),u.appendChild(y),t.inStock===!1){const p=document.createElement("div");p.className="gengage-simrel-card-oos",p.textContent=s?.outOfStockLabel??"Out of Stock",u.appendChild(p)}else if(t.cartCode){const p=document.createElement("button");p.className="gengage-simrel-atc gengage-simrel-atc-button gds-btn gds-btn-secondary",p.type="button",p.textContent=s?.addToCartButton??"Add to Cart",p.addEventListener("click",h=>{h.preventDefault(),h.stopPropagation(),i({sku:t.sku,quantity:1,cartCode:t.cartCode})}),u.appendChild(p)}return u.addEventListener("click",p=>{p.target.closest(".gengage-simrel-atc")||p.target.closest(".gengage-chat-product-card-atc")||p.target.closest(".gengage-chat-product-card-cta")||o(t)}),u}function Rt(e){const t=document.createElement("div");t.className="gengage-simrel-grid",t.setAttribute("role","list"),t.setAttribute("aria-label",e.i18n?.similarProductsAriaLabel??"Similar products"),e.columns&&t.style.setProperty("--gengage-simrel-columns",String(e.columns));for(let r=0;r<e.products.length;r++){const n={product:e.products[r],index:r,onClick:e.onClick,onAddToCart:e.onAddToCart};e.i18n!==void 0&&(n.i18n=e.i18n),e.discountType!==void 0&&(n.discountType=e.discountType),e.renderCard!==void 0&&(n.renderCard=e.renderCard),e.renderCardElement!==void 0&&(n.renderCardElement=e.renderCardElement);const o=Lt(n);t.appendChild(o)}return e.products.length===0&&(t.style.display="none",t.dataset.empty="true"),t}var Go=0;function Zt(e){const t=Go++,r=document.createElement("div");if(r.className="gengage-simrel-groups",r.dataset.gengagePart="simrel-groups",e.groups.length===0)return r.style.display="none",r.dataset.empty="true",r;const n=document.createElement("div");n.className="gengage-simrel-tabs gds-toolbar",n.dataset.gengagePart="simrel-tab-bar",n.setAttribute("role","tablist");const o=[],i=[];let a=0;const s=h=>{const k={products:h.products,onClick:e.onClick,onAddToCart:e.onAddToCart};return e.i18n!==void 0&&(k.i18n=e.i18n),e.discountType!==void 0&&(k.discountType=e.discountType),e.renderCard!==void 0&&(k.renderCard=e.renderCard),e.renderCardElement!==void 0&&(k.renderCardElement=e.renderCardElement),e.columns!==void 0&&(k.columns=e.columns),k},c=(h,k=!1)=>{if(k&&h!==a&&e.onGroupingActivate){const b=e.groups[h];e.onGroupingActivate({grouping_label:b.name,grouping_index:h})}a=h;for(let b=0;b<o.length;b++){const I=b===h;o[b].classList.toggle("gengage-simrel-tab--active",I),o[b].setAttribute("aria-selected",String(I)),o[b].tabIndex=I?0:-1}const N=e.groups[h],C=i[h];C.innerHTML="";const v=Rt(s(N));C.appendChild(v);for(let b=0;b<i.length;b++){const I=b===h;i[b].style.display=I?"":"none",i[b].tabIndex=I?0:-1}};for(let h=0;h<e.groups.length;h++){const k=e.groups[h],N=`gengage-simrel-tab-${t}-${h}`,C=`gengage-simrel-panel-${t}-${h}`,v=document.createElement("button");v.className="gengage-simrel-tab gds-tab",v.type="button",v.dataset.gengagePart="simrel-tab",v.id=N,v.textContent=k.name,v.setAttribute("role","tab"),v.setAttribute("aria-controls",C),v.setAttribute("aria-selected",String(h===0)),v.tabIndex=h===0?0:-1,h===0&&v.classList.add("gengage-simrel-tab--active"),v.addEventListener("click",()=>c(h,!0)),v.addEventListener("keydown",I=>{let U=-1;I.key==="ArrowRight"||I.key==="ArrowDown"?U=(h+1)%e.groups.length:I.key==="ArrowLeft"||I.key==="ArrowUp"?U=(h-1+e.groups.length)%e.groups.length:I.key==="Home"?U=0:I.key==="End"&&(U=e.groups.length-1),U>=0&&(I.preventDefault(),c(U,!0),o[U].focus())}),o.push(v),n.appendChild(v);const b=document.createElement("div");b.className="gengage-simrel-tab-panel",b.dataset.gengagePart="simrel-tab-panel",b.id=C,b.setAttribute("role","tabpanel"),b.setAttribute("aria-labelledby",N),b.tabIndex=h===0?0:-1,h!==0&&(b.style.display="none"),i.push(b)}const u=document.createElement("button");u.type="button",u.className="gengage-simrel-tabs-arrow gengage-simrel-tabs-arrow--left",u.setAttribute("aria-label",e.i18n?.scrollTabsLeft??"Scroll tabs left"),u.innerHTML='<svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polyline points="15 18 9 12 15 6"/></svg>';const l=document.createElement("button");l.type="button",l.className="gengage-simrel-tabs-arrow gengage-simrel-tabs-arrow--right",l.setAttribute("aria-label",e.i18n?.scrollTabsRight??"Scroll tabs right"),l.innerHTML='<svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polyline points="9 18 15 12 9 6"/></svg>';const d=200;u.addEventListener("click",()=>{n.scrollBy({left:-d,behavior:"smooth"})}),l.addEventListener("click",()=>{n.scrollBy({left:d,behavior:"smooth"})});const f=()=>{const h=n.scrollLeft<=4,k=n.scrollLeft+n.clientWidth>=n.scrollWidth-4;u.style.display=h?"none":"",l.style.display=k?"none":"",n.classList.toggle("gengage-simrel-tabs--peek-right",!k),n.classList.toggle("gengage-simrel-tabs--peek-left",!h)};n.addEventListener("scroll",f,{passive:!0}),typeof ResizeObserver<"u"&&new ResizeObserver(f).observe(n),u.style.display="none",l.style.display="none",requestAnimationFrame(f);const m=document.createElement("div");m.className="gengage-simrel-tabs-wrapper",m.appendChild(u),m.appendChild(n),m.appendChild(l),r.appendChild(m);const y=i[0],p=Rt(s(e.groups[0]));y.appendChild(p);for(const h of i)r.appendChild(h);return r}function Dt(e){if(!e||typeof e!="object")return null;const t=e;if(typeof t.sku!="string"||typeof t.name!="string"||typeof t.url!="string")return null;const r={sku:t.sku,name:t.name,url:t.url},n=t.imageUrl;typeof n=="string"&&(r.imageUrl=n);const o=t.price;typeof o=="string"&&(r.price=o);const i=t.originalPrice;typeof i=="string"&&(r.originalPrice=i);const a=t.discountPercent;typeof a=="number"&&(r.discountPercent=a);const s=t.brand;typeof s=="string"&&(r.brand=s);const c=t.rating;typeof c=="number"&&(r.rating=c);const u=t.reviewCount;typeof u=="number"&&(r.reviewCount=u);const l=t.cartCode;typeof l=="string"&&(r.cartCode=l);const d=t.inStock;typeof d=="boolean"&&(r.inStock=d);const f=t.extras;return f!=null&&typeof f=="object"&&(r.extras=f),r}function qo(e){if(!e||typeof e!="object")return null;const t=e,r=t.title,n=t.type;if(typeof r!="string"||typeof n!="string")return null;const o={title:r,type:n};return t.payload!==void 0&&(o.payload=t.payload),o}var Ut={ProductGrid:({element:e,renderElement:t,context:r})=>{const n=document.createElement("div");n.className="gengage-simrel-grid",n.setAttribute("role","list");const o=e.props?.columns;let i;typeof o=="number"&&Number.isFinite(o)&&o>0?i=Math.floor(o):typeof r.gridColumns=="number"&&Number.isFinite(r.gridColumns)&&r.gridColumns>0&&(i=Math.floor(r.gridColumns)),i!==void 0&&n.style.setProperty("--gengage-simrel-columns",String(i));for(const a of e.children??[]){const s=t(a);s&&n.appendChild(s)}if(n.children.length===0){const a=document.createElement("div");a.className="gengage-simrel-empty",a.textContent=r.i18n.emptyStateMessage,n.appendChild(a)}return n},ProductCard:({element:e,context:t})=>{const r=Dt(e.props?.product??e.props);if(!r)return null;const n=e.props?.index,o=typeof n=="number"&&Number.isFinite(n)?n:0,i=e.props?.discountType,a=i==="strike-through"||i==="badge"||i==="inline"?i:t.discountType,s={product:r,index:o,onClick:t.onClick,onAddToCart:t.onAddToCart,i18n:t.i18n};return a!==void 0&&(s.discountType=a),t.renderCard!==void 0&&(s.renderCard=t.renderCard),t.renderCardElement!==void 0&&(s.renderCardElement=t.renderCardElement),t.pricing!==void 0&&(s.pricing=t.pricing),Lt(s)},GroupTabs:({element:e,context:t})=>{const r=e.props?.groups;if(!Array.isArray(r))return null;const n=[];for(const a of r){if(!a||typeof a!="object")continue;const s=a;if(typeof s.name!="string")continue;const c=[];if(Array.isArray(s.products))for(const l of s.products){const d=Dt(l);d&&c.push(d)}const u={name:s.name,products:c};typeof s.highlight=="string"&&(u.highlight=s.highlight),n.push(u)}const o={groups:n,onClick:t.onClick,onAddToCart:t.onAddToCart,i18n:t.i18n},i=e.props?.columns;return typeof i=="number"&&Number.isFinite(i)&&i>0?o.columns=Math.floor(i):typeof t.gridColumns=="number"&&Number.isFinite(t.gridColumns)&&t.gridColumns>0&&(o.columns=Math.floor(t.gridColumns)),t.discountType!==void 0&&(o.discountType=t.discountType),t.renderCard!==void 0&&(o.renderCard=t.renderCard),t.renderCardElement!==void 0&&(o.renderCardElement=t.renderCardElement),t.onGroupingActivate!==void 0&&(o.onGroupingActivate=t.onGroupingActivate),Zt(o)},EmptyState:({element:e,context:t})=>{const r=document.createElement("div");r.className="gengage-simrel-empty";const n=e.props?.message;return r.textContent=typeof n=="string"?n:t.i18n.emptyStateMessage,r},AddToCartButton:({element:e,context:t})=>{const r=e.props?.sku,n=e.props?.cartCode;if(typeof r!="string"||typeof n!="string")return null;const o=document.createElement("button");o.className="gengage-simrel-atc gengage-chat-product-card-cta",o.type="button";const i=e.props?.label;return o.textContent=typeof i=="string"?i:t.i18n.addToCartButton,o.addEventListener("click",a=>{a.preventDefault(),a.stopPropagation(),t.onAddToCart({sku:r,quantity:1,cartCode:n})}),o},QuickActions:({element:e,context:t})=>{const r=document.createElement("div");r.className="gengage-simrel-quick-actions";const n=e.props?.actions;if(!Array.isArray(n)||!t.onAction)return r;for(const o of n){if(!o||typeof o!="object")continue;const i=o,a=i.label,s=qo(i.action);if(typeof a!="string"||!s)continue;const c=document.createElement("button");c.className="gengage-simrel-quick-action",c.type="button",c.textContent=a,c.addEventListener("click",u=>{u.preventDefault(),u.stopPropagation(),t.onAction?.(s)}),r.appendChild(c)}return r}},Ge=({element:e,renderElement:t})=>{if(!e.children||e.children.length===0)return null;const r=document.createElement("div");for(const n of e.children){const o=t(n);o&&r.appendChild(o)}return r};function jt(){return{...Ut}}function Mt(e,t,r=Ut,n=Ge){return Kr({spec:e,context:t,registry:r,containerClassName:"gengage-simrel-uispec",unknownRenderer:n})}var Ft={similarProductsAriaLabel:"Benzer ürünler",emptyStateMessage:"Benzer ürün bulunamadı.",addToCartButton:"Sepete Ekle",ctaLabel:"İncele",outOfStockLabel:"Stokta Yok",decreaseLabel:"Azalt",increaseLabel:"Artır",errorLoadingMessage:"Benzer ürünler yüklenemedi.",retryButtonText:"Tekrar dene",priceSuffix:" TL",scrollTabsLeft:"Sola kaydır",scrollTabsRight:"Sağa kaydır"},Vo={similarProductsAriaLabel:"Similar products",emptyStateMessage:"No similar products found.",addToCartButton:"Add to cart",ctaLabel:"View",outOfStockLabel:"Out of Stock",decreaseLabel:"Decrease",increaseLabel:"Increase",errorLoadingMessage:"Could not load similar products.",retryButtonText:"Try again",priceSuffix:"",scrollTabsLeft:"Scroll tabs left",scrollTabsRight:"Scroll tabs right"};function Jo(e){return e?e.toLowerCase().split("-")[0]??"tr":"tr"}function Wo(e){return Jo(e)==="en"?Vo:Ft}var Ho=12e4;function Ko(e){return e instanceof DOMException&&e.name==="AbortError"}var Bt=class extends Pn{constructor(...e){super(...e),this._abortController=null,this._contentEl=null,this._lastResultCount=-1,this._i18n=Ft,this._pendingAddToCartKeys=new Set}async init(e){if(!this.isInitialised&&(e.mountTarget===void 0||e.mountTarget===null))throw new Error("[gengage] SimRel mountTarget is required. Provide a merchant-owned mount before initializing.");await super.init(e)}async onInit(e){this._i18n=this._resolveI18n(e),this._contentEl=document.createElement("div"),this._contentEl.className="gengage-simrel-container",this._contentEl.dataset.gengagePart="simrel-container",this._contentEl.lang=An(e.locale);const t=this._clampGridColumns(e.gridColumns);t!==void 0&&this._contentEl.style.setProperty("--gengage-simrel-columns",String(t)),this.root.appendChild(this._contentEl),this._lastSku=e.sku,await this._fetchAndRender(e.sku),sn("simrel")}onUpdate(e){const t=e.sku;!t||t===this._lastSku&&this._lastResultCount!==0||(this._lastSku=t,this._fetchAndRender(t))}onShow(){this._contentEl&&(this._contentEl.style.opacity="0",this._contentEl.style.transition="opacity 0.3s ease-in",requestAnimationFrame(()=>{this._contentEl&&(this._contentEl.style.opacity="1")}))}onHide(){}onDestroy(){this._abort(),this._contentEl&&(this._contentEl.remove(),this._contentEl=null)}_handleProductClick(e){const t={sku:e.sku,name:e.name,url:e.url};if(e.imageUrl!==void 0&&(t.imageUrl=e.imageUrl),e.price!==void 0&&(t.price=e.price),e.originalPrice!==void 0&&(t.originalPrice=e.originalPrice),e.discountPercent!==void 0&&(t.discountPercent=e.discountPercent),e.brand!==void 0&&(t.brand=e.brand),e.rating!==void 0&&(t.rating=e.rating),e.reviewCount!==void 0&&(t.reviewCount=e.reviewCount),e.cartCode!==void 0&&(t.cartCode=e.cartCode),e.inStock!==void 0&&(t.inStock=e.inStock),this.config.onProductClick?.(t)===!1)return;const r=this.config.session?.sessionId??null;oe("gengage:similar:product-click",{sku:e.sku,url:e.url,sessionId:r,productName:e.name}),this.config.onProductNavigate?.(e.url,e.sku,r)}async _handleAddToCart(e){const t=`${e.sku}\0${e.cartCode}\0${e.quantity}`;if(!this._pendingAddToCartKeys.has(t)){this._pendingAddToCartKeys.add(t);try{if(this.config.onAddToCart===void 0)return;try{await Promise.resolve(this.config.onAddToCart(e))}catch(r){console.error("[gengage] simrel onAddToCart",r);return}cn(e.sku,e.quantity),oe("gengage:similar:add-to-cart",e)}finally{this._pendingAddToCartKeys.delete(t)}}}_abort(){this._abortController?.abort(),this._abortController=null}_isSuperseded(e){return this._abortController?.signal!==e}_emitSimilarProductsImpression(e,t){const r=this.config.session?.sessionId??null;oe("gengage:similar:products-impression",{source_sku:this.config.sku,product_count:e,grouped:t,sessionId:r})}_resolveRequestTimeoutMs(){const e=this.config.requestTimeoutMs;return typeof e!="number"||!Number.isFinite(e)||e<=0?Ho:Math.floor(e)}async _fetchAndRender(e){this._abort();const t=new AbortController;this._abortController=t;const r=t.signal;let n=!1;const o=setTimeout(()=>{n=!0,t.abort()},this._resolveRequestTimeoutMs());if(r.addEventListener("abort",()=>clearTimeout(o),{once:!0}),!this._contentEl)return;this._contentEl.innerHTML="",this._contentEl.style.display="";const i=document.createElement("div");i.className="gengage-simrel-loading",i.dataset.gengagePart="simrel-loading";const a=document.createElement("div");a.className="gengage-simrel-spinner",a.dataset.gengagePart="simrel-loading-spinner",i.appendChild(a),this._contentEl.appendChild(i);const s={middlewareUrl:this.config.middlewareUrl},c=Dn({source:"simrel",locale:this.config.locale});try{const u={account_id:this.config.accountId,session_id:this.config.session?.sessionId??"",correlation_id:this.config.session?.sessionId??"",sku:e};this.config.domain!==void 0&&(u.domain=this.config.domain);const l=await Zo(u,s,r);if(this._lastResultCount=l.length,!this._contentEl)return;if(this._contentEl.innerHTML="",l.length>0&&this.config.enableProductGroupings!==!1)try{const d=l.map(y=>y.sku),f=new Map(l.map(y=>[y.sku,y])),m=(await Uo({account_id:this.config.accountId,session_id:this.config.session?.sessionId??"",correlation_id:this.config.session?.sessionId??"",skus:d},s,r)).map(y=>({...y,products:y.products.map(p=>({...f.get(p.sku),...p})).filter(p=>typeof p.sku=="string"&&typeof p.name=="string"&&typeof p.url=="string")})).filter(y=>y.products.length>0);if(m.length>0&&this._contentEl){const y=this._buildGroupsSpec(m),p=this._renderUISpec(y);this._contentEl.appendChild(p),ut("simrel"),this._emitSimilarProductsImpression(m.reduce((h,k)=>h+k.products.length,0),!0);return}}catch{}if(this._isSuperseded(r))return;if(this._contentEl){const d=this._buildProductsSpec(l),f=this._renderUISpec(d);this._contentEl.appendChild(f)}l.length>0&&ut("simrel"),this._emitSimilarProductsImpression(l.length,!1)}catch(u){const l=Ko(u);if(l&&this._isSuperseded(r))return;if(oe("gengage:global:error",{source:"simrel",code:l&&n?"REQUEST_TIMEOUT":"FETCH_ERROR",message:_n(this.config.locale,u)}),this._contentEl){this._contentEl.innerHTML="";const d=document.createElement("div");d.className="gengage-simrel-error";const f=document.createElement("span");f.textContent=this._i18n.errorLoadingMessage,d.appendChild(f);const m=document.createElement("button");m.className="gengage-simrel-retry",m.textContent=this._i18n.retryButtonText,m.addEventListener("click",()=>{this._fetchAndRender(this.config.sku)}),d.appendChild(m),this._contentEl.appendChild(d)}}finally{clearTimeout(o),c()}}_clampGridColumns(e){if(!(e===void 0||typeof e!="number"||!Number.isFinite(e)))return Math.max(1,Math.min(12,Math.floor(e)))}_resolveI18n(e){return{...Wo(e.locale),...e.i18n}}_resolveUISpecRegistry(){return Yr(jt(),this.config.renderer?.registry)}_buildRenderContext(){const e=this.config.renderCard,t={onClick:n=>this._handleProductClick(n),onAddToCart:n=>{this._handleAddToCart(n)},onGroupingActivate:n=>{oe("gengage:similar:grouping-click",{grouping_label:n.grouping_label,grouping_index:n.grouping_index,sessionId:this.config.session?.sessionId??null})},i18n:this._i18n};this.config.discountType!==void 0&&(t.discountType=this.config.discountType),e!==void 0&&(t.renderCard=e),this.config.renderCardElement!==void 0&&(t.renderCardElement=this.config.renderCardElement),this.config.pricing!==void 0&&(t.pricing=this.config.pricing);const r=this._clampGridColumns(this.config.gridColumns);return r!==void 0&&(t.gridColumns=r),t}_renderUISpec(e){const t=this._resolveUISpecRegistry(),r=this._buildRenderContext(),n=this.config.renderer?.unknownRenderer??Ge,o=(a,s)=>Mt(a,s,t,n),i=this.config.renderer?.renderUISpec;return i?i(e,r,{registry:t,unknownRenderer:n,defaultRender:o}):o(e,r)}_buildProductsSpec(e){const t={},r=[];for(let i=0;i<e.length;i++){const a=e[i],s=`product-${i}`;r.push(s),t[s]={type:"ProductCard",props:{product:a,index:i,discountType:this.config.discountType}}}const n={layout:"grid"},o=this._clampGridColumns(this.config.gridColumns);return o!==void 0&&(n.columns=o),t.root={type:"ProductGrid",props:n,children:r},{root:"root",elements:t}}_buildGroupsSpec(e){return{root:"root",elements:{root:{type:"GroupTabs",props:{groups:e}}}}}};function Yo(){return new Bt}var Xo={images:["images","extras.images","imageUrl"],subtitle:["categoryNames","category_names","extras.categoryNames","extras.category_names","description"],promotions:["promotions","extras.promotions"],warranties:["warranties","extras.warranties"],productInfoUrl:["productInfoFormUrl","extras.productInfoFormUrl","documents.0.url","extras.documents.0.url"],discountReason:["discountReason","discount_reason","extras.discountReason","extras.discount_reason"],specialPrice:["isSpecialPrice","extras.isSpecialPrice"],customBadgeFacets:["customBadgeFacets","custom_badge_facets","extras.customBadgeFacets","extras.custom_badge_facets","facetHits","facet_hits","extras.facetHits","extras.facet_hits"],customBadgeText:["customBadgeText","custom_badge_text","customBadge","custom_badge","customLabel","custom_label","bottomLabel","bottom_label","cornerBadge","corner_badge","extras.customBadgeText","extras.custom_badge_text","extras.customBadge","extras.custom_badge","extras.customLabel","extras.custom_label","extras.bottomLabel","extras.bottom_label","extras.cornerBadge","extras.corner_badge"],customBadgeImageUrl:["customBadgeImageUrl","custom_badge_image_url","customLabelImageUrl","custom_label_image_url","bottomLabelImageUrl","bottom_label_image_url","cornerBadgeImageUrl","corner_badge_image_url","extras.customBadgeImageUrl","extras.custom_badge_image_url","extras.customLabelImageUrl","extras.custom_label_image_url","extras.bottomLabelImageUrl","extras.bottom_label_image_url","extras.cornerBadgeImageUrl","extras.corner_badge_image_url"]};function ve(e){return!e||typeof e!="object"||Array.isArray(e)?null:e}function M(e){if(typeof e!="string")return;const t=e.trim();return t.length>0?t:void 0}function Gt(e){if(Array.isArray(e))return e.map(r=>M(r)).filter(r=>!!r);const t=M(e);return t?[t]:[]}function qt(e){if(typeof e=="number"&&Number.isFinite(e))return e;if(typeof e=="string"){const t=Number.parseFloat(e);if(Number.isFinite(t))return t}}function Qo(e){if(typeof e=="boolean")return e;if(typeof e=="number"&&Number.isFinite(e)){if(e===1)return!0;if(e===0)return!1}if(typeof e=="string"){const t=e.trim().toLowerCase();if(t==="true")return!0;if(t==="false")return!1;if(t==="1")return!0;if(t==="0")return!1}}function Vt(...e){for(const t of e){const r=M(t);if(r)return r}}function Jt(e){const t=ve(e);if(!t)return null;const r=M(t.sku),n=M(t.name),o=M(t.url);if(!r||!n||!o)return null;const i={sku:r,name:n,url:o};for(const[a,s]of Object.entries(t))s!==void 0&&(i[a]=s);return i}function ei(e){const t=ve(e);if(!t)return null;const r=M(t.name);if(!r)return null;const n=[];if(Array.isArray(t.products))for(const a of t.products){const s=Jt(a);s&&n.push(s)}const o={name:r,products:n},i=M(t.highlight);return i&&(o.highlight=i),o}function be(e,t){const r=typeof t=="string"?t.split("."):[...t];let n=e;for(const o of r){if(n==null)return;if(Array.isArray(n)){const a=Number.parseInt(o,10);if(!Number.isInteger(a))return;n=n[a];continue}const i=ve(n);if(!i)return;n=i[o]}return n}function ti(e,t){for(const r of t){const n=be(e,r);if(n!=null)return n}}function qe(e,t){for(const r of t){const n=Gt(be(e,r));if(n.length>0)return n}return[]}function le(e,t){for(const r of t){const n=be(e,r),o=M(n);if(o)return o;const i=Gt(n);if(i.length>0)return i[0]}}function ri(e,t){for(const r of t){const n=ve(be(e,r));if(n)return n}return null}function Wt(e,t){return{labels:{customBadgeAlt:e.labels?.customBadgeAlt??"Product badge",imageDot:e.labels?.imageDot??(r=>`Show product image ${r+1}`),previousPromotion:e.labels?.previousPromotion??"Previous promotion",nextPromotion:e.labels?.nextPromotion??"Next promotion"},ctaLabel:e.labels?.cta??t.i18n.ctaLabel,productInfoLabel:e.labels?.productInfo,reviewLabel:e.labels?.review??(r=>`${r} reviews`),specialPriceBadgeAlt:e.labels?.specialPriceBadgeAlt??"",fields:{...Xo,...e.fields},media:e.media??{},warrantyPromotionPattern:e.warrantyPromotionPattern??/warranty/i,specialPricePattern:e.specialPricePattern??/special/i,pricing:e.pricing??t.pricing}}function ni(e,t,r){return r.media.imageUrlTransform?.(e,t)??e}function oi(e,t){const r=e.trim(),n=t.trim();if(!r||!n)return r;const o=r.toLocaleLowerCase().indexOf(n.toLocaleLowerCase());return o===-1?r:`${r.slice(0,o).trim()} ${r.slice(o+n.length).trim()}`.replace(/\s{2,}/g," ").replace(/(\s[-|/,:]){2,}/g,"$1").replace(/^\s*[-|/,:]\s*/,"").replace(/\s*[-|/,:]\s*$/,"").trim()||r}function ii(e,t){const r=le(e,t.fields.customBadgeImageUrl);if(r)return{imageUrl:r,labelText:null};const n=le(e,t.fields.customBadgeText);if(n)return{imageUrl:t.media.customBadgeImageUrl?.(e,n)??null,labelText:n};const o=ri(e,t.fields.customBadgeFacets);if(!o)return{imageUrl:null,labelText:null};const i=Vt(o["Custom Badge Image"],o["Custom Label Image"],o["Bottom Label Image"],o["Corner Badge Image"],o.custom_badge_image,o.custom_label_image,o.bottom_label_image,o.corner_badge_image,o.customBadgeImage,o.customLabelImage,o.bottomLabelImage,o.cornerBadgeImage);if(i)return{imageUrl:i,labelText:null};const a=Vt(o["Custom Badge"],o["Custom Label"],o["Bottom Label"],o["Corner Badge"],o.custom_badge,o.custom_label,o.bottom_label,o.corner_badge,o.customBadge,o.customLabel,o.bottomLabel,o.cornerBadge);return a?{imageUrl:t.media.customBadgeImageUrl?.(e,a)??null,labelText:a}:{imageUrl:null,labelText:null}}function q(e,t,r){const n=document.createElement(e);return n.className=t,n.textContent=r,n}function ai(e,t,r){const n=document.createElement("div");n.className="gengage-simrel-default-card-image";let o=null;return r.length>0&&(o=document.createElement("img"),o.src=r[0],o.alt=t,o.loading="lazy",Ot(o),n.appendChild(o)),r.length>1&&o&&(n.addEventListener("mousemove",i=>{const a=n.getBoundingClientRect(),s=Math.min(Math.floor((i.clientX-a.left)/a.width*r.length),r.length-1);o?.dataset.hoverIdx!==String(s)&&(o.dataset.hoverIdx=String(s),o.src=r[s],e.querySelectorAll(".gengage-simrel-default-card-image-dot").forEach((c,u)=>c.classList.toggle("is-active",u===s)))}),n.addEventListener("mouseleave",()=>{o&&(delete o.dataset.hoverIdx,o.src=r[0],e.querySelectorAll(".gengage-simrel-default-card-image-dot").forEach((i,a)=>i.classList.toggle("is-active",a===0)))})),n}function si(e,t){if(!e.imageUrl&&!e.labelText)return null;const r=document.createElement("div");if(r.className="gengage-simrel-default-card-custom-badge",e.imageUrl&&he(e.imageUrl)){const n=document.createElement("img");return n.src=e.imageUrl,n.className="gengage-simrel-default-card-custom-badge-icon",n.alt=t,e.labelText&&n.addEventListener("error",()=>{r.innerHTML="",r.appendChild(q("span","gengage-simrel-default-card-custom-badge-text",e.labelText))},{once:!0}),r.appendChild(n),r}return e.labelText&&r.appendChild(q("span","gengage-simrel-default-card-custom-badge-text",e.labelText)),r}function ci(e,t,r){if(e.length<=1||!t)return null;const n=document.createElement("div");return n.className="gengage-simrel-default-card-image-dots",e.forEach((o,i)=>{const a=document.createElement("button");a.className=`gengage-simrel-default-card-image-dot${i===0?" is-active":""}`,a.type="button",a.setAttribute("aria-label",r.labels.imageDot(i)),a.addEventListener("click",s=>{s.preventDefault(),s.stopPropagation(),t.dataset.hoverIdx=String(i),t.style.opacity="0",window.setTimeout(()=>{t.src=o,t.style.opacity="1"},50),n.querySelectorAll(".gengage-simrel-default-card-image-dot").forEach((c,u)=>c.classList.toggle("is-active",u===i))}),n.appendChild(a)}),n}function ui(e,t,r,n){const o=e.reviewCount??0,i=e.rating??0,a=document.createElement("div");a.className="gengage-simrel-default-card-rating",o<=0&&!r.productInfoLabel&&a.classList.add("is-placeholder");const s=document.createElement("div");s.className="gengage-simrel-default-card-rating-left";const c=document.createElement("div");c.className="gengage-simrel-default-card-stars";const u=Math.max(0,Math.min(5,Math.round(i)));for(let d=1;d<=5;d+=1){const f=document.createElement("span");f.className=`gengage-simrel-default-card-star${d<=u?" is-filled":""}`,f.textContent="★",c.appendChild(f)}s.appendChild(c);const l=document.createElement("button");if(l.className="gengage-simrel-default-card-review-link",l.type="button",l.textContent=r.reviewLabel(o),l.addEventListener("click",d=>{d.preventDefault(),d.stopPropagation(),n(e)}),s.appendChild(l),a.appendChild(s),r.productInfoLabel){const d=document.createElement(t&&ct(t)?"a":"span");d.className="gengage-simrel-default-card-product-info-link",d.textContent=r.productInfoLabel,d instanceof HTMLAnchorElement&&(d.href=t,d.target="_blank",d.rel="noopener noreferrer",d.addEventListener("click",f=>f.stopPropagation())),a.appendChild(d)}return a}function li(e){const t=document.createElement("div");t.className="gengage-simrel-default-card-warranty-row";const r=e.length>0?e:[""];for(const n of r){const o=document.createElement("div");o.className=`gengage-simrel-default-card-warranty-badge${n?"":" is-placeholder"}`,n||o.setAttribute("aria-hidden","true"),o.textContent=n,t.appendChild(o)}return t}function di(e,t){const r=document.createElement("div");r.className="gengage-simrel-default-card-feature-slot";const n=document.createElement("div");if(n.className="gengage-simrel-default-card-feature-swiper",e.length===0&&n.classList.add("is-placeholder"),n.dataset.current="0",e.length>0){if(t.media.promotionIconUrl&&ct(t.media.promotionIconUrl)){const a=document.createElement("img");a.src=t.media.promotionIconUrl,a.className="gengage-simrel-default-card-feature-icon",a.alt="",n.appendChild(a)}const o=document.createElement("div");o.className="gengage-simrel-default-card-feature-content";const i=q("span","gengage-simrel-default-card-feature-text",e[0]);if(o.appendChild(i),n.appendChild(o),e.length>1){const a=document.createElement("div");a.className="gengage-simrel-default-card-feature-arrows";const s=(l,d)=>{const f=d==="next"?"slide-out-left":"slide-out-right",m=d==="next"?"prepare-from-right":"prepare-from-left";i.classList.add(f),window.setTimeout(()=>{i.classList.remove(f),i.classList.add(m),i.textContent=e[l]??"",n.dataset.current=String(l),requestAnimationFrame(()=>requestAnimationFrame(()=>i.classList.remove(m)))},250)},c=document.createElement("button");c.className="gengage-simrel-default-card-feature-prev",c.type="button",c.textContent="‹",c.setAttribute("aria-label",t.labels.previousPromotion),c.addEventListener("click",l=>{l.preventDefault(),l.stopPropagation(),s((Number.parseInt(n.dataset.current??"0",10)-1+e.length)%e.length,"prev")});const u=document.createElement("button");u.className="gengage-simrel-default-card-feature-next",u.type="button",u.textContent="›",u.setAttribute("aria-label",t.labels.nextPromotion),u.addEventListener("click",l=>{l.preventDefault(),l.stopPropagation(),s((Number.parseInt(n.dataset.current??"0",10)+1)%e.length,"next")}),a.appendChild(c),a.appendChild(u),n.appendChild(a)}}return r.appendChild(n),r}function fi(e,t,r,n,o){const i=qt(e.originalPrice),a=qt(e.price),s=a!==void 0&&i!==void 0&&a>0&&i>0&&a<i,c=document.createElement("div");c.className="gengage-simrel-default-card-price-action";const u=document.createElement("div");if(u.className="gengage-simrel-default-card-price",s){const l=o==="inline"?"gengage-simrel-default-card-price-old gengage-simrel-default-card-price-old--inline":"gengage-simrel-default-card-price-old";u.appendChild(q("span",l,ue(String(i),r.pricing)));const d=document.createElement("div");if(d.className="gengage-simrel-default-card-price-current-row",d.appendChild(q("span","gengage-simrel-default-card-price-current",ue(String(a),r.pricing))),t&&r.media.specialPriceBadgeUrl&&he(r.media.specialPriceBadgeUrl)){const f=document.createElement("img");f.src=r.media.specialPriceBadgeUrl,f.className="gengage-simrel-default-card-special-price-badge",f.alt=r.specialPriceBadgeAlt,d.appendChild(f)}u.appendChild(d)}else{const l=i??a;u.appendChild(q("span","gengage-simrel-default-card-price-current",l!==void 0?ue(String(l),r.pricing):""))}if(c.appendChild(u),r.ctaLabel){const l=document.createElement("button");l.className="gengage-simrel-default-card-cta",l.dataset.gengagePart="simrel-product-card-cta",l.type="button",l.dataset.sku=e.sku,l.textContent=r.ctaLabel,l.addEventListener("click",d=>{d.preventDefault(),d.stopPropagation(),n(e)}),c.appendChild(l)}return c}function pi(e,t){return e==="strike-through"||e==="badge"||e==="inline"?e:t.discountType}function Ht(e){const{product:t,config:r}=e,n=qe(t,r.fields.images).map(C=>ni(C,t,r)).filter(he),o=qe(t,r.fields.promotions),i=o.filter(C=>r.warrantyPromotionPattern.test(C)),a=o.filter(C=>!r.warrantyPromotionPattern.test(C)),s=le(t,r.fields.subtitle)??"",c=le(t,r.fields.discountReason)??"",u=Qo(ti(t,r.fields.specialPrice))===!0||r.specialPricePattern.test(c),l=t.brand??"",d=oi(l&&t.name.startsWith(`${l} `)?t.name.slice(l.length+1):t.name,s),f=document.createElement("article");f.className="gengage-simrel-default-card gengage-simrel-default-scope gengage-simrel-card gds-card gds-product-card gds-card-interactive",f.dataset.gengagePart="simrel-product-card",f.setAttribute("role","listitem"),f.setAttribute("tabindex","0"),f.setAttribute("aria-label",d),f.dataset.sku=t.sku,f.dataset.index=String(e.index);const m=ai(f,d,n);f.appendChild(m);const y=m.querySelector("img"),p=document.createElement("div");p.className="gengage-simrel-default-card-meta-row";const h=si(ii(t,r),r.labels.customBadgeAlt);h&&p.appendChild(h);const k=ci(n,y,r);k&&p.appendChild(k),f.appendChild(p);const N=document.createElement("div");return N.className="gengage-simrel-default-card-info",N.dataset.gengagePart="simrel-product-card-body",N.appendChild(q("h3","gengage-simrel-default-card-title",d)),s&&N.appendChild(q("p","gengage-simrel-default-card-subtitle",s)),N.appendChild(ui(t,le(t,r.fields.productInfoUrl),r,e.context.onClick)),N.appendChild(li([...qe(t,r.fields.warranties),...i])),N.appendChild(di(a,r)),f.appendChild(N),f.appendChild(fi(t,u,r,e.context.onClick,e.context.discountType)),f.addEventListener("click",C=>{(C.target instanceof HTMLElement?C.target:null)?.closest("button, a")||e.context.onClick(t)}),f.addEventListener("keydown",C=>{if(C.key!=="Enter"&&C.key!==" ")return;const v=C.target instanceof HTMLElement?C.target:null;v&&v!==f||(C.preventDefault(),e.context.onClick(t))}),f}function gi(e,t){const r=Jt(e.element.props?.product??e.element.props);if(!r)return null;const n=e.element.props?.index,o=typeof n=="number"&&Number.isFinite(n)?n:0,i=pi(e.element.props?.discountType,e.context);return Ht({product:r,index:o,context:i===e.context.discountType?e.context:{...e.context,...i!==void 0?{discountType:i}:{}},config:Wt(t,e.context)})}function mi(e){const t=document.createElement("div");t.className="gengage-simrel-grid gengage-simrel-default-grid gengage-simrel-default-scope",t.setAttribute("role","list");const r=e.element.props?.columns;let n;typeof r=="number"&&Number.isFinite(r)&&r>0?n=Math.floor(r):typeof e.context.gridColumns=="number"&&Number.isFinite(e.context.gridColumns)&&e.context.gridColumns>0&&(n=Math.floor(e.context.gridColumns)),n!==void 0&&t.style.setProperty("--gengage-simrel-columns",String(n));for(const o of e.element.children??[]){const i=e.renderElement(o);i&&t.appendChild(i)}if(t.children.length===0){const o=document.createElement("div");o.className="gengage-simrel-empty",o.textContent=e.context.i18n.emptyStateMessage,t.appendChild(o)}return t}function hi(e,t){const r=e.element.props?.groups;if(!Array.isArray(r))return null;const n=r.map(ei).filter(c=>!!c),o=e.element.props?.columns,i=Wt(t,e.context),a=(c,u)=>Ht({product:c,index:u,context:e.context,config:i}),s=Zt({groups:n,onClick:e.context.onClick,onAddToCart:e.context.onAddToCart,renderCardElement:a,i18n:e.context.i18n,...e.context.discountType!==void 0?{discountType:e.context.discountType}:{},...e.context.onGroupingActivate!==void 0?{onGroupingActivate:e.context.onGroupingActivate}:{},...typeof o=="number"&&Number.isFinite(o)&&o>0?{columns:Math.floor(o)}:e.context.gridColumns!==void 0?{columns:e.context.gridColumns}:{}});return s.classList.add("gengage-simrel-default-groups","gengage-simrel-default-scope"),s}function yi(e={}){return{registry:{ProductGrid:t=>mi(t),ProductCard:t=>gi(t,e),GroupTabs:t=>hi(t,e)}}}var Kt;function g(e,t,r){function n(s,c){if(s._zod||Object.defineProperty(s,"_zod",{value:{def:c,constr:a,traits:new Set},enumerable:!1}),s._zod.traits.has(e))return;s._zod.traits.add(e),t(s,c);const u=a.prototype,l=Object.keys(u);for(let d=0;d<l.length;d++){const f=l[d];f in s||(s[f]=u[f].bind(s))}}const o=r?.Parent??Object;class i extends o{}Object.defineProperty(i,"name",{value:e});function a(s){var c;const u=r?.Parent?new i:this;n(u,s),(c=u._zod).deferred??(c.deferred=[]);for(const l of u._zod.deferred)l();return u}return Object.defineProperty(a,"init",{value:n}),Object.defineProperty(a,Symbol.hasInstance,{value:s=>r?.Parent&&s instanceof r.Parent?!0:s?._zod?.traits?.has(e)}),Object.defineProperty(a,"name",{value:e}),a}var te=class extends Error{constructor(){super("Encountered Promise during synchronous parse. Use .parseAsync() instead.")}},Yt=class extends Error{constructor(e){super(`Encountered unidirectional transform during encode: ${e}`),this.name="ZodEncodeError"}};(Kt=globalThis).__zod_globalConfig??(Kt.__zod_globalConfig={});var we=globalThis.__zod_globalConfig;function Y(e){return e&&Object.assign(we,e),we}function Xt(e){const t=Object.values(e).filter(r=>typeof r=="number");return Object.entries(e).filter(([r,n])=>t.indexOf(+r)===-1).map(([r,n])=>n)}function Ve(e,t){return typeof t=="bigint"?t.toString():t}function Je(e){return{get value(){{const t=e();return Object.defineProperty(this,"value",{value:t}),t}throw new Error("cached value already set")}}}function We(e){return e==null}function He(e){const t=e.startsWith("^")?1:0,r=e.endsWith("$")?e.length-1:e.length;return e.slice(t,r)}function _i(e,t){const r=e/t,n=Math.round(r),o=Number.EPSILON*Math.max(Math.abs(r),1);return Math.abs(r-n)<o?0:r-n}var Qt=Symbol("evaluating");function S(e,t,r){let n;Object.defineProperty(e,t,{get(){if(n!==Qt)return n===void 0&&(n=Qt,n=r()),n},set(o){Object.defineProperty(e,t,{value:o})},configurable:!0})}function X(e,t,r){Object.defineProperty(e,t,{value:r,writable:!0,enumerable:!0,configurable:!0})}function V(...e){const t={};for(const r of e)Object.assign(t,Object.getOwnPropertyDescriptors(r));return Object.defineProperties({},t)}function er(e){return JSON.stringify(e)}function vi(e){return e.toLowerCase().trim().replace(/[^\w\s-]/g,"").replace(/[\s_-]+/g,"-").replace(/^-+|-+$/g,"")}var tr="captureStackTrace"in Error?Error.captureStackTrace:(...e)=>{};function ke(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}var bi=Je(()=>{if(we.jitless||typeof navigator<"u"&&navigator?.userAgent?.includes("Cloudflare"))return!1;try{return new Function(""),!0}catch{return!1}});function de(e){if(ke(e)===!1)return!1;const t=e.constructor;if(t===void 0||typeof t!="function")return!0;const r=t.prototype;return!(ke(r)===!1||Object.prototype.hasOwnProperty.call(r,"isPrototypeOf")===!1)}function rr(e){return de(e)?{...e}:Array.isArray(e)?[...e]:e instanceof Map?new Map(e):e instanceof Set?new Set(e):e}var wi=new Set(["string","number","symbol"]);function Ce(e){return e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function J(e,t,r){const n=new e._zod.constr(t??e._zod.def);return(!t||r?.parent)&&(n._zod.parent=e),n}function _(e){const t=e;if(!t)return{};if(typeof t=="string")return{error:()=>t};if(t?.message!==void 0){if(t?.error!==void 0)throw new Error("Cannot specify both `message` and `error` params");t.error=t.message}return delete t.message,typeof t.error=="string"?{...t,error:()=>t.error}:t}function ki(e){return Object.keys(e).filter(t=>e[t]._zod.optin==="optional"&&e[t]._zod.optout==="optional")}var Ci={safeint:[Number.MIN_SAFE_INTEGER,Number.MAX_SAFE_INTEGER],int32:[-2147483648,2147483647],uint32:[0,4294967295],float32:[-34028234663852886e22,34028234663852886e22],float64:[-Number.MAX_VALUE,Number.MAX_VALUE]};function Si(e,t){const r=e._zod.def,n=r.checks;if(n&&n.length>0)throw new Error(".pick() cannot be used on object schemas containing refinements");return J(e,V(e._zod.def,{get shape(){const o={};for(const i in t){if(!(i in r.shape))throw new Error(`Unrecognized key: "${i}"`);t[i]&&(o[i]=r.shape[i])}return X(this,"shape",o),o},checks:[]}))}function Ei(e,t){const r=e._zod.def,n=r.checks;if(n&&n.length>0)throw new Error(".omit() cannot be used on object schemas containing refinements");return J(e,V(e._zod.def,{get shape(){const o={...e._zod.def.shape};for(const i in t){if(!(i in r.shape))throw new Error(`Unrecognized key: "${i}"`);t[i]&&delete o[i]}return X(this,"shape",o),o},checks:[]}))}function zi(e,t){if(!de(t))throw new Error("Invalid input to extend: expected a plain object");const r=e._zod.def.checks;if(r&&r.length>0){const n=e._zod.def.shape;for(const o in t)if(Object.getOwnPropertyDescriptor(n,o)!==void 0)throw new Error("Cannot overwrite keys on object schemas containing refinements. Use `.safeExtend()` instead.")}return J(e,V(e._zod.def,{get shape(){const n={...e._zod.def.shape,...t};return X(this,"shape",n),n}}))}function Ti(e,t){if(!de(t))throw new Error("Invalid input to safeExtend: expected a plain object");return J(e,V(e._zod.def,{get shape(){const r={...e._zod.def.shape,...t};return X(this,"shape",r),r}}))}function xi(e,t){if(e._zod.def.checks?.length)throw new Error(".merge() cannot be used on object schemas containing refinements. Use .safeExtend() instead.");return J(e,V(e._zod.def,{get shape(){const r={...e._zod.def.shape,...t._zod.def.shape};return X(this,"shape",r),r},get catchall(){return t._zod.def.catchall},checks:t._zod.def.checks??[]}))}function Pi(e,t,r){const n=t._zod.def.checks;if(n&&n.length>0)throw new Error(".partial() cannot be used on object schemas containing refinements");return J(t,V(t._zod.def,{get shape(){const o=t._zod.def.shape,i={...o};if(r)for(const a in r){if(!(a in o))throw new Error(`Unrecognized key: "${a}"`);r[a]&&(i[a]=e?new e({type:"optional",innerType:o[a]}):o[a])}else for(const a in o)i[a]=e?new e({type:"optional",innerType:o[a]}):o[a];return X(this,"shape",i),i},checks:[]}))}function Ii(e,t,r){return J(t,V(t._zod.def,{get shape(){const n=t._zod.def.shape,o={...n};if(r)for(const i in r){if(!(i in o))throw new Error(`Unrecognized key: "${i}"`);r[i]&&(o[i]=new e({type:"nonoptional",innerType:n[i]}))}else for(const i in n)o[i]=new e({type:"nonoptional",innerType:n[i]});return X(this,"shape",o),o}}))}function re(e,t=0){if(e.aborted===!0)return!0;for(let r=t;r<e.issues.length;r++)if(e.issues[r]?.continue!==!0)return!0;return!1}function Ai(e,t=0){if(e.aborted===!0)return!0;for(let r=t;r<e.issues.length;r++)if(e.issues[r]?.continue===!1)return!0;return!1}function nr(e,t){return t.map(r=>{var n;return(n=r).path??(n.path=[]),r.path.unshift(e),r})}function Se(e){return typeof e=="string"?e:e?.message}function Q(e,t,r){const n=e.message?e.message:Se(e.inst?._zod.def?.error?.(e))??Se(t?.error?.(e))??Se(r.customError?.(e))??Se(r.localeError?.(e))??"Invalid input",{inst:o,continue:i,input:a,...s}=e;return s.path??(s.path=[]),s.message=n,t?.reportInput&&(s.input=a),s}function Ke(e){return Array.isArray(e)?"array":typeof e=="string"?"string":"unknown"}function fe(...e){const[t,r,n]=e;return typeof t=="string"?{message:t,code:"custom",input:r,inst:n}:{...t}}var or=(e,t)=>{e.name="$ZodError",Object.defineProperty(e,"_zod",{value:e._zod,enumerable:!1}),Object.defineProperty(e,"issues",{value:t,enumerable:!1}),e.message=JSON.stringify(t,Ve,2),Object.defineProperty(e,"toString",{value:()=>e.message,enumerable:!1})},ir=g("$ZodError",or),ar=g("$ZodError",or,{Parent:Error});function $i(e,t=r=>r.message){const r={},n=[];for(const o of e.issues)o.path.length>0?(r[o.path[0]]=r[o.path[0]]||[],r[o.path[0]].push(t(o))):n.push(t(o));return{formErrors:n,fieldErrors:r}}function Ni(e,t=r=>r.message){const r={_errors:[]},n=(o,i=[])=>{for(const a of o.issues)if(a.code==="invalid_union"&&a.errors.length)a.errors.map(s=>n({issues:s},[...i,...a.path]));else if(a.code==="invalid_key")n({issues:a.issues},[...i,...a.path]);else if(a.code==="invalid_element")n({issues:a.issues},[...i,...a.path]);else{const s=[...i,...a.path];if(s.length===0)r._errors.push(t(a));else{let c=r,u=0;for(;u<s.length;){const l=s[u];u!==s.length-1?c[l]=c[l]||{_errors:[]}:(c[l]=c[l]||{_errors:[]},c[l]._errors.push(t(a))),c=c[l],u++}}}};return n(e),r}var Ye=e=>(t,r,n,o)=>{const i=n?{...n,async:!1}:{async:!1},a=t._zod.run({value:r,issues:[]},i);if(a instanceof Promise)throw new te;if(a.issues.length){const s=new(o?.Err??e)(a.issues.map(c=>Q(c,i,Y())));throw tr(s,o?.callee),s}return a.value},Xe=e=>async(t,r,n,o)=>{const i=n?{...n,async:!0}:{async:!0};let a=t._zod.run({value:r,issues:[]},i);if(a instanceof Promise&&(a=await a),a.issues.length){const s=new(o?.Err??e)(a.issues.map(c=>Q(c,i,Y())));throw tr(s,o?.callee),s}return a.value},Ee=e=>(t,r,n)=>{const o=n?{...n,async:!1}:{async:!1},i=t._zod.run({value:r,issues:[]},o);if(i instanceof Promise)throw new te;return i.issues.length?{success:!1,error:new(e??ir)(i.issues.map(a=>Q(a,o,Y())))}:{success:!0,data:i.value}},Oi=Ee(ar),ze=e=>async(t,r,n)=>{const o=n?{...n,async:!0}:{async:!0};let i=t._zod.run({value:r,issues:[]},o);return i instanceof Promise&&(i=await i),i.issues.length?{success:!1,error:new e(i.issues.map(a=>Q(a,o,Y())))}:{success:!0,data:i.value}},Li=ze(ar),Ri=e=>(t,r,n)=>{const o=n?{...n,direction:"backward"}:{direction:"backward"};return Ye(e)(t,r,o)},Zi=e=>(t,r,n)=>Ye(e)(t,r,n),Di=e=>async(t,r,n)=>{const o=n?{...n,direction:"backward"}:{direction:"backward"};return Xe(e)(t,r,o)},Ui=e=>async(t,r,n)=>Xe(e)(t,r,n),ji=e=>(t,r,n)=>{const o=n?{...n,direction:"backward"}:{direction:"backward"};return Ee(e)(t,r,o)},Mi=e=>(t,r,n)=>Ee(e)(t,r,n),Fi=e=>async(t,r,n)=>{const o=n?{...n,direction:"backward"}:{direction:"backward"};return ze(e)(t,r,o)},Bi=e=>async(t,r,n)=>ze(e)(t,r,n),Gi=/^[cC][0-9a-z]{6,}$/,qi=/^[0-9a-z]+$/,Vi=/^[0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{26}$/,Ji=/^[0-9a-vA-V]{20}$/,Wi=/^[A-Za-z0-9]{27}$/,Hi=/^[a-zA-Z0-9_-]{21}$/,Ki=/^P(?:(\d+W)|(?!.*W)(?=\d|T\d)(\d+Y)?(\d+M)?(\d+D)?(T(?=\d)(\d+H)?(\d+M)?(\d+([.,]\d+)?S)?)?)$/,Yi=/^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$/,sr=e=>e?new RegExp(`^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-${e}[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$`):/^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$/,Xi=/^(?!\.)(?!.*\.\.)([A-Za-z0-9_'+\-\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\-]*\.)+[A-Za-z]{2,}$/,Qi="^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$";function ea(){return new RegExp(Qi,"u")}var ta=/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$/,ra=/^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:))$/,na=/^((25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\/([0-9]|[1-2][0-9]|3[0-2])$/,oa=/^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|::|([0-9a-fA-F]{1,4})?::([0-9a-fA-F]{1,4}:?){0,6})\/(12[0-8]|1[01][0-9]|[1-9]?[0-9])$/,ia=/^$|^(?:[0-9a-zA-Z+/]{4})*(?:(?:[0-9a-zA-Z+/]{2}==)|(?:[0-9a-zA-Z+/]{3}=))?$/,cr=/^[A-Za-z0-9_-]*$/,aa=/^https?$/,sa=/^\+[1-9]\d{6,14}$/,ur="(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))",ca=new RegExp(`^${ur}$`);function lr(e){const t="(?:[01]\\d|2[0-3]):[0-5]\\d";return typeof e.precision=="number"?e.precision===-1?`${t}`:e.precision===0?`${t}:[0-5]\\d`:`${t}:[0-5]\\d\\.\\d{${e.precision}}`:`${t}(?::[0-5]\\d(?:\\.\\d+)?)?`}function ua(e){return new RegExp(`^${lr(e)}$`)}function la(e){const t=lr({precision:e.precision}),r=["Z"];e.local&&r.push(""),e.offset&&r.push("([+-](?:[01]\\d|2[0-3]):[0-5]\\d)");const n=`${t}(?:${r.join("|")})`;return new RegExp(`^${ur}T(?:${n})$`)}var da=e=>{const t=e?`[\\s\\S]{${e?.minimum??0},${e?.maximum??""}}`:"[\\s\\S]*";return new RegExp(`^${t}$`)},fa=/^-?\d+$/,pa=/^-?\d+(?:\.\d+)?$/,ga=/^[^A-Z]*$/,ma=/^[^a-z]*$/,O=g("$ZodCheck",(e,t)=>{var r;e._zod??(e._zod={}),e._zod.def=t,(r=e._zod).onattach??(r.onattach=[])}),dr={number:"number",bigint:"bigint",object:"date"},fr=g("$ZodCheckLessThan",(e,t)=>{O.init(e,t);const r=dr[typeof t.value];e._zod.onattach.push(n=>{const o=n._zod.bag,i=(t.inclusive?o.maximum:o.exclusiveMaximum)??Number.POSITIVE_INFINITY;t.value<i&&(t.inclusive?o.maximum=t.value:o.exclusiveMaximum=t.value)}),e._zod.check=n=>{(t.inclusive?n.value<=t.value:n.value<t.value)||n.issues.push({origin:r,code:"too_big",maximum:typeof t.value=="object"?t.value.getTime():t.value,input:n.value,inclusive:t.inclusive,inst:e,continue:!t.abort})}}),pr=g("$ZodCheckGreaterThan",(e,t)=>{O.init(e,t);const r=dr[typeof t.value];e._zod.onattach.push(n=>{const o=n._zod.bag,i=(t.inclusive?o.minimum:o.exclusiveMinimum)??Number.NEGATIVE_INFINITY;t.value>i&&(t.inclusive?o.minimum=t.value:o.exclusiveMinimum=t.value)}),e._zod.check=n=>{(t.inclusive?n.value>=t.value:n.value>t.value)||n.issues.push({origin:r,code:"too_small",minimum:typeof t.value=="object"?t.value.getTime():t.value,input:n.value,inclusive:t.inclusive,inst:e,continue:!t.abort})}}),ha=g("$ZodCheckMultipleOf",(e,t)=>{O.init(e,t),e._zod.onattach.push(r=>{var n;(n=r._zod.bag).multipleOf??(n.multipleOf=t.value)}),e._zod.check=r=>{if(typeof r.value!=typeof t.value)throw new Error("Cannot mix number and bigint in multiple_of check.");(typeof r.value=="bigint"?r.value%t.value===BigInt(0):_i(r.value,t.value)===0)||r.issues.push({origin:typeof r.value,code:"not_multiple_of",divisor:t.value,input:r.value,inst:e,continue:!t.abort})}}),ya=g("$ZodCheckNumberFormat",(e,t)=>{O.init(e,t),t.format=t.format||"float64";const r=t.format?.includes("int"),n=r?"int":"number",[o,i]=Ci[t.format];e._zod.onattach.push(a=>{const s=a._zod.bag;s.format=t.format,s.minimum=o,s.maximum=i,r&&(s.pattern=fa)}),e._zod.check=a=>{const s=a.value;if(r){if(!Number.isInteger(s)){a.issues.push({expected:n,format:t.format,code:"invalid_type",continue:!1,input:s,inst:e});return}if(!Number.isSafeInteger(s)){s>0?a.issues.push({input:s,code:"too_big",maximum:Number.MAX_SAFE_INTEGER,note:"Integers must be within the safe integer range.",inst:e,origin:n,inclusive:!0,continue:!t.abort}):a.issues.push({input:s,code:"too_small",minimum:Number.MIN_SAFE_INTEGER,note:"Integers must be within the safe integer range.",inst:e,origin:n,inclusive:!0,continue:!t.abort});return}}s<o&&a.issues.push({origin:"number",input:s,code:"too_small",minimum:o,inclusive:!0,inst:e,continue:!t.abort}),s>i&&a.issues.push({origin:"number",input:s,code:"too_big",maximum:i,inclusive:!0,inst:e,continue:!t.abort})}}),_a=g("$ZodCheckMaxLength",(e,t)=>{var r;O.init(e,t),(r=e._zod.def).when??(r.when=n=>{const o=n.value;return!We(o)&&o.length!==void 0}),e._zod.onattach.push(n=>{const o=n._zod.bag.maximum??Number.POSITIVE_INFINITY;t.maximum<o&&(n._zod.bag.maximum=t.maximum)}),e._zod.check=n=>{const o=n.value;if(o.length<=t.maximum)return;const i=Ke(o);n.issues.push({origin:i,code:"too_big",maximum:t.maximum,inclusive:!0,input:o,inst:e,continue:!t.abort})}}),va=g("$ZodCheckMinLength",(e,t)=>{var r;O.init(e,t),(r=e._zod.def).when??(r.when=n=>{const o=n.value;return!We(o)&&o.length!==void 0}),e._zod.onattach.push(n=>{const o=n._zod.bag.minimum??Number.NEGATIVE_INFINITY;t.minimum>o&&(n._zod.bag.minimum=t.minimum)}),e._zod.check=n=>{const o=n.value;if(o.length>=t.minimum)return;const i=Ke(o);n.issues.push({origin:i,code:"too_small",minimum:t.minimum,inclusive:!0,input:o,inst:e,continue:!t.abort})}}),ba=g("$ZodCheckLengthEquals",(e,t)=>{var r;O.init(e,t),(r=e._zod.def).when??(r.when=n=>{const o=n.value;return!We(o)&&o.length!==void 0}),e._zod.onattach.push(n=>{const o=n._zod.bag;o.minimum=t.length,o.maximum=t.length,o.length=t.length}),e._zod.check=n=>{const o=n.value,i=o.length;if(i===t.length)return;const a=Ke(o),s=i>t.length;n.issues.push({origin:a,...s?{code:"too_big",maximum:t.length}:{code:"too_small",minimum:t.length},inclusive:!0,exact:!0,input:n.value,inst:e,continue:!t.abort})}}),Te=g("$ZodCheckStringFormat",(e,t)=>{var r,n;O.init(e,t),e._zod.onattach.push(o=>{const i=o._zod.bag;i.format=t.format,t.pattern&&(i.patterns??(i.patterns=new Set),i.patterns.add(t.pattern))}),t.pattern?(r=e._zod).check??(r.check=o=>{t.pattern.lastIndex=0,!t.pattern.test(o.value)&&o.issues.push({origin:"string",code:"invalid_format",format:t.format,input:o.value,...t.pattern?{pattern:t.pattern.toString()}:{},inst:e,continue:!t.abort})}):(n=e._zod).check??(n.check=()=>{})}),wa=g("$ZodCheckRegex",(e,t)=>{Te.init(e,t),e._zod.check=r=>{t.pattern.lastIndex=0,!t.pattern.test(r.value)&&r.issues.push({origin:"string",code:"invalid_format",format:"regex",input:r.value,pattern:t.pattern.toString(),inst:e,continue:!t.abort})}}),ka=g("$ZodCheckLowerCase",(e,t)=>{t.pattern??(t.pattern=ga),Te.init(e,t)}),Ca=g("$ZodCheckUpperCase",(e,t)=>{t.pattern??(t.pattern=ma),Te.init(e,t)}),Sa=g("$ZodCheckIncludes",(e,t)=>{O.init(e,t);const r=Ce(t.includes),n=new RegExp(typeof t.position=="number"?`^.{${t.position}}${r}`:r);t.pattern=n,e._zod.onattach.push(o=>{const i=o._zod.bag;i.patterns??(i.patterns=new Set),i.patterns.add(n)}),e._zod.check=o=>{o.value.includes(t.includes,t.position)||o.issues.push({origin:"string",code:"invalid_format",format:"includes",includes:t.includes,input:o.value,inst:e,continue:!t.abort})}}),Ea=g("$ZodCheckStartsWith",(e,t)=>{O.init(e,t);const r=new RegExp(`^${Ce(t.prefix)}.*`);t.pattern??(t.pattern=r),e._zod.onattach.push(n=>{const o=n._zod.bag;o.patterns??(o.patterns=new Set),o.patterns.add(r)}),e._zod.check=n=>{n.value.startsWith(t.prefix)||n.issues.push({origin:"string",code:"invalid_format",format:"starts_with",prefix:t.prefix,input:n.value,inst:e,continue:!t.abort})}}),za=g("$ZodCheckEndsWith",(e,t)=>{O.init(e,t);const r=new RegExp(`.*${Ce(t.suffix)}$`);t.pattern??(t.pattern=r),e._zod.onattach.push(n=>{const o=n._zod.bag;o.patterns??(o.patterns=new Set),o.patterns.add(r)}),e._zod.check=n=>{n.value.endsWith(t.suffix)||n.issues.push({origin:"string",code:"invalid_format",format:"ends_with",suffix:t.suffix,input:n.value,inst:e,continue:!t.abort})}}),Ta=g("$ZodCheckOverwrite",(e,t)=>{O.init(e,t),e._zod.check=r=>{r.value=t.tx(r.value)}}),xa=class{constructor(e=[]){this.content=[],this.indent=0,this&&(this.args=e)}indented(e){this.indent+=1,e(this),this.indent-=1}write(e){if(typeof e=="function"){e(this,{execution:"sync"}),e(this,{execution:"async"});return}const t=e.split(`
|
|
47
|
+
`,document.head.appendChild(e)}var se=null;function On(){if(se!==null)return se;try{se=localStorage.getItem("gengage:debug")==="1"}catch{se=!1}return se}function je(e,t,r){if(!On())return;const n=[`[gengage:${e}]`,t];r!==void 0&&n.push(r),console.debug(...n)}var Ln=("0.6.13".trim(),"0.6.13".trim()),Rn=("iife-build".trim(),"iife-build".trim());function Zn(){if(typeof window>"u")return;const e=window;e.__gengageSdkRuntimeInfoLogged||(e.__gengageSdkRuntimeInfoLogged=!0,console.info(`[gengage] @gengage/assistant-fe v${Ln} (${Rn})`))}var Dn=class{constructor(){this.isVisible=!1,this.isInitialised=!1,this._handlers=new Map,this._cleanups=[],this._ownsRoot=!1,this._destroying=!1}async init(e){if(this.isInitialised){console.warn("[gengage] Widget already initialised. Call update() instead.");return}const t=bn(e.theme);Zn(),this.config={...e,theme:t,session:vn(e.session)},this.root=this._resolveMount(e.mountTarget),this._applyTheme(t),zn();const r=mt("gengage:context:update",n=>this.update(n));this._cleanups.push(r),je("lifecycle",`${this.constructor.name}.init`,{accountId:e.accountId,sku:e.pageContext?.sku});try{await this.onInit(this.config)}catch(n){throw this.destroy(),n}this._destroying||(this.isInitialised=!0,je("lifecycle",`${this.constructor.name} ready`),this.emit("ready"))}update(e){this.isInitialised&&(this.config.pageContext?this.config={...this.config,pageContext:{...this.config.pageContext,...e}}:e.pageType!==void 0&&(this.config={...this.config,pageContext:e}),this.onUpdate(e),this.emit("context-update",this.config.pageContext))}show(){this.isVisible||(this.isVisible=!0,this.root.style.display="",this.onShow(),this.emit("show"))}hide(){this.isVisible&&(this.isVisible=!1,this.root.style.display="none",this.onHide(),this.emit("hide"))}destroy(){this._destroying||(this._destroying=!0,this.emit("destroy"),this._cleanups.forEach(e=>e()),this._cleanups.length=0,this._handlers.clear(),this.onDestroy(),this._cleanupRoot(),this.isInitialised=!1)}_cleanupRoot(){this._ownsRoot?this.root.remove():this.root.innerHTML=""}on(e,t){return this._handlers.has(e)||this._handlers.set(e,new Set),this._handlers.get(e).add(t),()=>this._handlers.get(e)?.delete(t)}emit(e,...t){this._handlers.get(e)?.forEach(r=>r(...t))}addCleanup(e){this._cleanups.push(e)}_resolveMount(e){if(e instanceof HTMLElement)return e;if(typeof e=="string"){const r=document.querySelector(e);if(!r)throw new Error(`[gengage] Mount target not found: "${e}"`);return r}const t=document.createElement("div");return t.dataset.gengageWidget=this.constructor.name.toLowerCase(),document.body.insertBefore(t,document.body.firstChild),this._ownsRoot=!0,t}_applyTheme(e){if(e){for(const[t,r]of Object.entries(e))if(r!==void 0){const n=t.startsWith("--")?t:`--gengage-${Un(t)}`;this.root.style.setProperty(n,r)}}}};function Un(e){return e.replace(/([A-Z])/g,"-$1").toLowerCase()}function jn(e){const t=e?.trim();return t||"tr"}var Mn=8e3,Fn=5e3,Bn="https://www.google.com/favicon.ico",F=new Map,wt=!1,re=null,ce=null,X=!1;function Gn(e){return typeof e=="string"&&e.toLowerCase().startsWith("tr")}function kt(e){return Gn(e)?"İnternet bağlantısında sorun var gibi görünüyor. İstek sürerken yeniden deneyeceğiz.":"Your internet connection looks unstable. We'll keep retrying while this request is active."}function St(){let e;for(const t of F.values())e=t;return e}function Me(){re&&(clearTimeout(re),re=null)}function qn(){ce&&(clearInterval(ce),ce=null)}async function Et(){try{if(typeof navigator<"u"&&navigator.onLine===!1)return!1;if(typeof window<"u"){const r=window.location.hostname;if(r==="localhost"||r==="127.0.0.1")return navigator.onLine}const e=new AbortController,t=setTimeout(()=>e.abort(),3e3);try{return await fetch(Bn,{method:"HEAD",mode:"no-cors",cache:"no-cache",signal:e.signal}),!0}catch{return navigator.onLine}finally{clearTimeout(t)}}catch{return typeof navigator>"u"?!0:navigator.onLine}}function ve(){X=!1,qn(),bt()}function be(){re||X||F.size===0||(re=setTimeout(async()=>{re=null,!(X||F.size===0)&&!await Et()&&F.size>0&&(X=!0,Ue({source:"sdk",message:kt(St()),sticky:!0}),ce||(ce=setInterval(async()=>{if(F.size===0){ve();return}await Et()&&(ve(),be())},Fn)))},Mn))}function Jn(){wt||typeof window>"u"||(wt=!0,window.addEventListener("online",()=>{ve(),be()}),window.addEventListener("offline",()=>{F.size===0||X||(X=!0,Me(),Ue({source:"sdk",message:kt(St()),sticky:!0}))}))}function Vn(e){Jn();const t=Symbol(e.source);F.set(t,e.locale),be();let r=!1;return()=>{if(!r){if(r=!0,F.delete(t),F.size===0){Me(),ve();return}X||(Me(),be())}}}var Wn={process_action:"/process_action",launcher_action:"/launcher_action",similar_products:"/similar_products",product_groupings:"/product_groupings"};function Hn(e){if(e===void 0)throw new Error("[gengage] middlewareUrl is required. Pass your Gengage backend URL in widget config.");const t=e.trim();return t===""?"":t.replace(/\/+$/,"")}function Ct(e,t){return`${Hn(t?.middlewareUrl)}/chat${Wn[e]}`}function Tt(e){return typeof e=="object"&&e!==null&&typeof e.type=="string"}function Kn(e){const t=[];let r=0,n=!1,o=!1,i=0;for(let a=0;a<e.length;a++){const s=e[a];if(o){o=!1;continue}if(s==="\\"&&n){o=!0;continue}if(s==='"'){n=!n;continue}n||(s==="{"&&r++,s==="}"&&(r--,r===0&&(t.push(e.slice(i,a+1)),i=a+1)))}return t.length>0?t:[e]}function xt(e,t){const r=e.trim();if(!r||r.startsWith(":"))return!1;const n=r.startsWith("data: ")?r.slice(6):r;if(n==="[DONE]")return t.onDone?.(),!0;try{const o=JSON.parse(n);return Tt(o)?(je("stream",`event: ${o.type}`,o),t.onEvent(o),o.type==="done"?(t.onDone?.(),!0):!1):!1}catch{const o=Kn(n);if(o.length>1){for(const i of o)try{const a=JSON.parse(i);if(!Tt(a))continue;if(t.onEvent(a),a.type==="done")return t.onDone?.(),!0}catch{}return!1}return!1}}async function zt(e,t){if(!e.ok){t.onError?.(new Error(`HTTP ${e.status}: ${e.statusText}`));return}if(!e.body){t.onError?.(new Error("Response body is null — streaming not supported"));return}const r=e.body.getReader(),n=new TextDecoder("utf-8");let o="";const i=t.idleTimeoutMs??6e4,a=Symbol("idle-timeout");let s=!1;try{for(;;){const c=r.read();let u;const l=await(i>0?Promise.race([c.then(y=>(clearTimeout(u),y)),new Promise(y=>{u=setTimeout(()=>y(a),i)})]):c);if(l===a){s=!0,await r.cancel();break}const{done:d,value:f}=l;if(d)break;o+=n.decode(f,{stream:!0});const m=o.split(`
|
|
48
|
+
`);o=m.pop()??"";for(const y of m)if(xt(y,t))return}if(o.trim()&&xt(o,t))return}catch(c){if(c instanceof DOMException&&c.name==="AbortError")return;t.onError?.(c instanceof Error?c:new Error(String(c)))}finally{s||r.releaseLock()}t.onDone?.()}var Yn=7200*1e3,At=200,Xn=5*1024*1024,Qn="gengage_request_response_cache",eo=1,U="responses",to=new Set(["addToCart","like"]),j=new Map,Pt=null;async function It(e,t={},r={}){const n=ro(e,t);if(!n)return fetch(e,t);const o=Date.now(),i=await oo(n,o);if(i)return so(i);const a=await fetch(e,t);return a.ok&&io(n,a.clone(),o,{ttlMs:r.ttlMs??Yn,maxEntries:r.maxEntries??At,maxBodyBytes:r.maxBodyBytes??Xn}),a}function ro(e,t={}){if(typeof Request<"u"&&e instanceof Request)return null;const r=String(t.method||"GET").toUpperCase();return r!=="POST"||typeof t.body!="string"||no(t.body)?null:`rr:${mo(go({url:String(e),method:r,headers:co(t.headers),body:t.body}))}`}function no(e){try{const t=JSON.parse(e);if(!t||typeof t!="object"||Array.isArray(t))return!1;const r=t.type;return typeof r=="string"&&to.has(r)}catch{return!1}}async function oo(e,t){const r=j.get(e);if(r)if(r.expiresAt<=t)j.delete(e);else return r.lastAccessedAt=t,j.delete(e),j.set(e,r),Fe(r),r;const n=await lo(e);return n?n.expiresAt<=t?(j.delete(e),fo(e),null):(n.lastAccessedAt=t,j.set(e,n),Fe(n),$t(At),n):null}async function io(e,t,r,n){try{const o=await t.text();if(ho(o)>n.maxBodyBytes||ao(o))return;const i={key:e,status:t.status,statusText:t.statusText,headers:uo(t.headers),body:o,createdAt:r,expiresAt:r+n.ttlMs,lastAccessedAt:r};j.set(e,i),$t(n.maxEntries),await Fe(i),await po(n.maxEntries,r)}catch{}}function ao(e){return/"_error"\s*:/u.test(e)||/"type"\s*:\s*"error"/u.test(e)}function so(e){return new Response(e.body,{status:e.status,statusText:e.statusText,headers:new Headers(e.headers)})}function co(e){const t=new Headers(e),r=[];return t.forEach((n,o)=>{const i=o.toLowerCase();i!=="authorization"&&i!=="cookie"&&r.push([i,n])}),r.sort(([n],[o])=>n.localeCompare(o))}function uo(e){const t=[];return e.forEach((r,n)=>{const o=n.toLowerCase();o!=="set-cookie"&&t.push([o,r])}),t.sort(([r],[n])=>r.localeCompare(n))}function $t(e){for(;j.size>e;){const t=[...j.values()].sort((r,n)=>r.lastAccessedAt-n.lastAccessedAt)[0];if(!t)break;j.delete(t.key)}}async function we(){return typeof indexedDB>"u"?null:(Pt??=new Promise(e=>{const t=indexedDB.open(Qn,eo);t.onupgradeneeded=()=>{const r=t.result;r.objectStoreNames.contains(U)||r.createObjectStore(U,{keyPath:"key"}).createIndex("lastAccessedAt","lastAccessedAt",{unique:!1})},t.onsuccess=()=>e(t.result),t.onerror=()=>e(null),t.onblocked=()=>e(null)}),Pt)}async function lo(e){const t=await we();return t?new Promise(r=>{const n=t.transaction(U,"readonly"),o=n.objectStore(U).get(e);o.onsuccess=()=>r(o.result??null),o.onerror=()=>r(null),n.onerror=()=>r(null)}):null}async function Fe(e){const t=await we();t&&await new Promise(r=>{const n=t.transaction(U,"readwrite");n.objectStore(U).put(e),n.oncomplete=()=>r(),n.onerror=()=>r(),n.onabort=()=>r()})}async function fo(e){const t=await we();t&&await new Promise(r=>{const n=t.transaction(U,"readwrite");n.objectStore(U).delete(e),n.oncomplete=()=>r(),n.onerror=()=>r(),n.onabort=()=>r()})}async function po(e,t){const r=await we();r&&await new Promise(n=>{const o=r.transaction(U,"readwrite"),i=o.objectStore(U),a=[],s=i.openCursor();s.onsuccess=()=>{const c=s.result;if(!c){const u=a.filter(d=>d.expiresAt<=t),l=a.filter(d=>d.expiresAt>t).sort((d,f)=>d.lastAccessedAt-f.lastAccessedAt).slice(0,Math.max(0,a.length-u.length-e));for(const d of[...u,...l])i.delete(d.key);return}a.push(c.value),c.continue()},s.onerror=()=>n(),o.oncomplete=()=>n(),o.onerror=()=>n(),o.onabort=()=>n()})}function go(e){return JSON.stringify(Be(e))}function Be(e){return Array.isArray(e)?e.map(Be):!e||typeof e!="object"?e:Object.fromEntries(Object.entries(e).sort(([t],[r])=>t.localeCompare(r)).map(([t,r])=>[t,Be(r)]))}function mo(e){let t=14695981039346656037n;const r=1099511628211n;for(let n=0;n<e.length;n+=1)t^=BigInt(e.charCodeAt(n)),t=BigInt.asUintN(64,t*r);return t.toString(16).padStart(16,"0")}function ho(e){return typeof TextEncoder<"u"?new TextEncoder().encode(e).byteLength:e.length}var Nt=3,yo=(e,t)=>{const r=e.replace(/\s+/g," ").trim().replace(/^[,.;:!?•-]+|[,.;:!?•-]+$/g,"");if(!r)return"";const n=t?.stripLeadingStopWords?r.replace(/^(?:daha|için)\s+/i,"").trim():r;return n?n.split(/\s+/).slice(0,3).join(" ").trim():""},Ge=(e,t)=>e?e.split(/[•,;:/()]|(?:\sve\s)|(?:\sand\s)|(?:\sile\s)|(?:\sfor\s)|(?:\swith\s)/i).map(r=>yo(r,t)).filter(Boolean):[];function _o(e){const t=(e.display_keywords??[]).flatMap(o=>Ge(o,{stripLeadingStopWords:!0})),r=t.filter((o,i)=>t.indexOf(o)===i);if(r.length>0)return r.slice(0,Nt);const n=[...Ge(e.chosen_attribute,{stripLeadingStopWords:!0}),...Ge(e.short_name)];return n.filter((o,i)=>n.indexOf(o)===i).slice(0,Nt)}function vo(e){return _o(e).join(" • ")}function bo(e){return e==="beauty_consulting"||e==="account_expert"}function qe(...e){for(const t of e){if(typeof t!="string")continue;const r=t.trim();if(r.length>0)return r}}function Je(e){return Array.isArray(e)?e.filter(t=>typeof t=="string"&&t.trim().length>0).map(t=>t.trim()):[]}function Ot(e){const t={...e},r=qe(t.sku),n=Je(t.group_skus);if(r?t.sku=r:delete t.sku,n.length>0?t.group_skus=n:delete t.group_skus,r||n.length>0)delete t.image_url;else{const o=qe(t.image_url);o?t.image_url=o:delete t.image_url}return t}function Lt(e){if(typeof e.type!="string")return null;if(wo(e))return e;const t=e;switch(t.type){case"outputText":return ko(t);case"suggestedActions":return So(t);case"productList":return Eo(t);case"productDetails":return Co(t);case"productDetailsSimilars":return To(t);case"comparisonTable":return xo(t);case"context":return Io(t);case"chatStreamEnd":return $o();case"loading":return No(t);case"panelLoading":return Oo(t);case"similarLoading":return Lo(t);case"redirect":return Ro(t);case"error":return Zo(t);case"dummy":return Do(t);case"launcherAction":return Uo(t);case"text":return Ve(t);case"productItem":return jo(t);case"text_image":return Rt(t);case"quick_qna":return Zt(t);case"reviewHighlights":return Mo(t);case"aiProductSuggestions":return Go(t);case"aiProductGroupings":return qo(t);case"aiSuggestedSearches":return Vo(t);case"prosAndCons":return Fo(t);case"getGroundingReview":return Wo(t);case"voice":return Ko(t);case"visitorDataResponse":return Bo(t);case"productListPreview":return Ho();case"groupList":return Yo(t);case"formGetInfo":case"formTestDrive":case"formServiceRequest":case"launchFormPage":return Xo(t);case"launcherContent":return ei(t);case"handoff":return Qo(t);case"uiSpec":return ui(t);default:return null}}function wo(e){const t=e.type;if(typeof t!="string")return!1;switch(t){case"metadata":return typeof e.sessionId=="string"&&typeof e.model=="string";case"text_chunk":return typeof e.content=="string";case"ui_spec":{const r=e.widget;if(r!=="chat"&&r!=="qna"&&r!=="simrel")return!1;const n=I(e.spec);return n?typeof n.root=="string"&&I(n.elements)!==null:!1}case"action":{const r=I(e.action);return r!==null&&typeof r.kind=="string"}case"error":return typeof e.code=="string"&&typeof e.message=="string";case"done":return!0;default:return!1}}function ko(e){const t=w(e.payload.text,e.payload.plain_text)??"",r=w(e.payload.plain_text,e.payload.text)??t;if(e.payload.is_error)return{type:"error",code:"BACKEND_ERROR",message:r||"Backend returned an error"};const n={type:"text_chunk",content:t,final:!0},o=e.payload.product_mentions;Array.isArray(o)&&o.length>0&&(n.productMentions=o.filter(c=>typeof c=="object"&&c!==null&&typeof c.sku=="string"&&typeof c.short_name=="string"));const i=e.payload.sku_to_product_item;i&&typeof i=="object"&&!Array.isArray(i)&&(n.skuToProductItem=i);const a=e.payload.conversation_mode;typeof a=="string"&&a&&(n.conversationMode=a);const s=e.payload.render_hint;return typeof s=="string"&&s&&(n.renderHint=s),e.payload.kvkk===!0&&(n.kvkk=!0),n}function So(e){return Dt((e.payload.actions??[]).map(t=>{const r=w(t.title)??"",n=R(t.requestDetails,r),o=n?{label:r,action:n}:null;return o?(typeof t.icon=="string"&&(o.icon=t.icon),typeof t.image=="string"&&(o.image=t.image),o):null}).filter(le),"chat")}function Eo(e){const t=(Array.isArray(e.payload.style_variations)?e.payload.style_variations:[]).map(a=>{const s=w(a.style_label);if(!s)return null;const c=w(a.style_mood),u=w(a.image_url??void 0),l=(Array.isArray(a.product_list)?a.product_list:[]).map(f=>{const m=I(f);return m?We(I(m.product_detail)??I(m.product)??m):null}).filter(le),d=Array.isArray(a.recommendation_groups)?a.recommendation_groups.map(f=>({label:w(f.label)??"",reason:w(f.reason)??"",skus:Array.isArray(f.skus)?f.skus.filter(m=>typeof m=="string"&&m.trim().length>0):[]})):[];return{style_label:s,style_mood:c??"",...u?{image_url:u}:{},...typeof a.status=="string"?{status:a.status}:{},product_list:l,recommendation_groups:d}}).filter(le),r=e.payload.product_list??[],n=bo(e.payload.source)&&t.length>0?t[0].product_list:null,o=n?ti(n,"chat"):Ut(r,"chat");o.panelHint="panel";const i=o.spec.elements[o.spec.root];if(i){const a={};typeof e.payload.offset=="number"&&(a.offset=e.payload.offset),typeof e.payload.end_of_list=="boolean"&&(a.endOfList=e.payload.end_of_list),typeof e.payload.title=="string"&&(a.panelTitle=e.payload.title),typeof e.payload.source=="string"&&(a.source=e.payload.source),t.length>0&&(a.styleVariations=t),e.payload.replace_panel===!0&&(a.replacePanel=!0),(e.payload.ranking_state==="pending"||e.payload.ranking_state==="final")&&(a.rankingState=e.payload.ranking_state);const s=e.payload.sequence_id??e.payload.search_id;typeof s=="string"&&s.length>0&&(a.sequenceId=s),Object.keys(a).length>0&&(i.props={...i.props,...a})}return o}function Co(e){const t=e.payload.productDetails;if(!t)return ni("chat");const r=J(t);return{type:"ui_spec",widget:"chat",spec:{root:"root",elements:{root:{type:"ProductDetailsPanel",props:{product:{...t,...r}}}}},panelHint:"panel"}}function To(e){const t=Ut(e.payload.similarProducts??[],"chat"),r=t.spec.elements[t.spec.root];return r&&(r.props={...r.props,similarsAppend:!0}),{...t,panelHint:"panel"}}function xo(e){const t=e.payload.multiple_product_details??[],r=e.payload,n={key_differences:r.key_differences,recommended_choice:r.recommended_choice,recommended_choice_sku:r.recommended_choice_sku,special_considerations:r.special_considerations,criteria_view:r.criteria_view,criteria_view_short:r.criteria_view_short,compared_field_names:r.compared_field_names,winner_product:r.winner_product,winner_hits:r.winner_hits,...e.payload.product_comparison_framework??{}},o=e.payload.table,i=e.payload.features_list,a=[];for(const h of t){const k=J(h);a.push(k)}const s=zo(o,a,n,i);let c;n?.recommended_choice_sku?c=n.recommended_choice_sku:n?.winner_product&&n.winner_product.length>0&&(c=n.winner_product[0]?.product_detail?.sku??n.winner_product[0]?.sku);const u=c?a.find(h=>h.sku===c)??a[0]:a[0],l=[];if(Array.isArray(n?.key_differences))for(const h of n.key_differences)typeof h=="string"&&l.push(h);const d=jt(n?.special_considerations),f=n?.recommended_choice,m=n?.winner_hits,y={};for(const h of a){const k=h.sku;k&&(y[k]={title:h.name??k,type:"launchSingleProduct",payload:{sku:k}})}const p={products:a,attributes:s,highlights:l,productActions:y};return u&&(p.recommended=u),d.length>0&&(p.specialCases=d),f&&(p.recommendedText=f),m&&(p.winnerHits=m),typeof n?.key_differences=="string"&&(p.keyDifferencesHtml=n.key_differences),n?.special_considerations&&(p.specialConsiderations=n.special_considerations),{type:"ui_spec",widget:"chat",spec:{root:"root",elements:{root:{type:"ComparisonTable",props:p}}},panelHint:"panel"}}function zo(e,t,r,n){if(!e)return[];const o=Object.entries(e);if(o.length===0)return[];const i=o[0]?.[1];if(Array.isArray(i)){const d=r.criteria_view??r.criteria_view_short??{},f=r.compared_field_names??Object.keys(e),m=[];for(const y of f){const p=e[y];if(!p||!Array.isArray(p))continue;const h=d[y]??y;m.push({label:h,values:p.map(k=>typeof k=="string"?k:String(k??""))})}return m}const a=e,s=t.map(d=>String(d.sku??"")).filter(d=>d.length>0),c=r.criteria_view??r.criteria_view_short??{},u=(n&&n.length>0?n:r.compared_field_names&&r.compared_field_names.length>0?r.compared_field_names:Ao(a)).filter(d=>d!=="name"&&d!=="name_short"&&!d.endsWith("_short")),l=[];for(const d of u){const f=s.map(y=>{const p=a[y];if(!p||typeof p!="object")return"";const h=p[`${d}_short`],k=p[d];return Po(h??k)});if(f.every(y=>y.length===0))continue;const m=c[d]??d;l.push({label:m,values:f})}return l}function Ao(e){const t=[],r=new Set;for(const n of Object.values(e))if(!(!n||typeof n!="object"))for(const o of Object.keys(n))r.has(o)||(r.add(o),t.push(o));return t}function Po(e){return typeof e=="string"?e:typeof e=="number"||typeof e=="boolean"?String(e):""}function Io(e){return{type:"metadata",sessionId:"",model:"",meta:{panel:e.payload.panel,messages:e.payload.messages,message_id:e.payload.message_id}}}function $o(){return{type:"done"}}function No(e){return{type:"metadata",sessionId:"",model:"",meta:{loading:!0,loadingText:e.payload.text,thinkingMessages:e.payload.thinking_messages,dynamicLoading:e.payload.is_dynamic===!0}}}function Oo(e){return{type:"metadata",sessionId:"",model:"",meta:{loading:!0,panelLoading:!0,panelPendingType:e.payload?.pending_type,loadingText:e.payload?.text}}}function Lo(e){return{type:"metadata",sessionId:"",model:"",meta:{loading:!0,similarPanelLoading:!0,panelPendingType:e.payload?.pending_type,loadingText:e.payload?.text}}}function Ro(e){const t=w(e.payload.url);return t?{type:"action",action:{kind:"navigate",url:t,newTab:e.payload.new_tab===!0}}:{type:"metadata",sessionId:"",model:"",meta:{redirect:e.payload,redirectTarget:w(e.payload.to)}}}function Zo(e){return{type:"error",code:"BACKEND_ERROR",message:w(e.payload?.text,e.payload?.message,e.payload?.error)??"Backend returned an error"}}function Do(e){return{type:"metadata",sessionId:"",model:"",meta:{noop:!0}}}function Uo(e){const t=e.payload??{};if(Array.isArray(t.action_list)){const o={action_list:t.action_list},i=typeof t.type=="string"?t.type:void 0,a=typeof t.theme=="string"?t.theme:void 0;return i!==void 0&&(o.type=i),a!==void 0&&(o.theme=a),Zt({type:"quick_qna",payload:o})}const r=I(t.action);if(r){const o={action:r},i=typeof t.text=="string"?t.text:void 0,a=typeof t.image_url=="string"?t.image_url:void 0,s=typeof t.theme=="string"?t.theme:void 0;return i!==void 0&&(o.text=i),a!==void 0&&(o.image_url=a),s!==void 0&&(o.theme=s),Rt({type:"text_image",payload:o})}const n=typeof t.text=="string"?t.text:"";if(n){const o={text:n},i=typeof t.type=="string"?t.type:void 0,a=typeof t.theme=="string"?t.theme:void 0,s=I(t.payload)??void 0;return i!==void 0&&(o.type=i),s!==void 0&&(o.payload=s),a!==void 0&&(o.theme=a),Ve({type:"text",payload:o})}return{type:"metadata",sessionId:"",model:"",meta:{launcherAction:t}}}function Ve(e){const t={text:w(e.payload.text)??""};return typeof e.payload.theme=="string"&&(t.theme=e.payload.theme),e.payload.payload!==void 0&&(t.payload=e.payload.payload),{type:"ui_spec",widget:"qna",spec:{root:"root",elements:{root:{type:"QuestionHeading",props:t}}}}}function jo(e){return ri(e.payload,"qna")}function Rt(e){const t=w(e.payload.text)??"",r=R(e.payload.action,t);if(r){const o={label:t||r.title,action:r};return typeof e.payload.image_url=="string"&&(o.image=e.payload.image_url),typeof e.payload.theme=="string"&&(o.theme=e.payload.theme),{type:"ui_spec",widget:"qna",spec:{root:"root",elements:{root:{type:"ActionButton",props:o}}}}}const n={text:t};return typeof e.payload.theme=="string"&&(n.theme=e.payload.theme),Ve({type:"text",payload:n})}function Zt(e){return Dt((e.payload.action_list??[]).map(t=>{const r=w(t.title)??"",n=R(t.requestDetails,r),o=n?{label:r,action:n}:null;return o?(typeof t.icon=="string"&&(o.icon=t.icon),typeof t.image=="string"&&(o.image=t.image),o):null}).filter(le),"qna")}function Mo(e){const t={reviews:(e.payload.reviews??[]).map(r=>{const n={};return typeof r.review_class=="string"&&(n.review_class=r.review_class),typeof r.review_text=="string"&&(n.review_text=r.review_text),(typeof r.review_rating=="string"||typeof r.review_rating=="number")&&(n.review_rating=r.review_rating),typeof r.review_tag=="string"&&(n.review_tag=r.review_tag),n})};return typeof e.payload.sku=="string"&&(t.sku=e.payload.sku),{type:"ui_spec",widget:"chat",spec:{root:"root",elements:{root:{type:"ReviewHighlights",props:t}}}}}function Fo(e){const t={};return Array.isArray(e.payload.pros)&&(t.pros=e.payload.pros),Array.isArray(e.payload.cons)&&(t.cons=e.payload.cons),typeof e.payload.product_name=="string"&&(t.productName=e.payload.product_name),{type:"ui_spec",widget:"chat",spec:{root:"root",elements:{root:{type:"ProsAndCons",props:t}}}}}function Bo(e){return{type:"metadata",sessionId:"",model:"",meta:{visitorDataResponse:e.payload}}}function Go(e){const t=e.payload.product_suggestions??[],r=[];for(let n=0;n<t.length;n++){const o=t[n];if(!o)continue;const i=oi(o);if(!i)continue;const a={product:i},s=R(o.requestDetails,i.name);s&&(a.action=s),typeof o.role=="string"&&(a.role=o.role),typeof o.reason=="string"&&(a.reason=o.reason),typeof o.review_highlight=="string"&&(a.reviewHighlight=o.review_highlight),Array.isArray(o.labels)&&(a.labels=o.labels),typeof o.expert_quality_score=="number"&&(a.expertQualityScore=o.expert_quality_score),r.push(a)}return r.length===0?{type:"metadata",sessionId:"",model:"",meta:{aiProductSuggestions:e.payload.product_suggestions??[]}}:{type:"ui_spec",widget:"chat",spec:{root:"root",elements:{root:{type:"AITopPicks",props:{suggestions:r}}}}}}function qo(e){const t=e.payload.product_groupings??[],r=[],n=[];for(let o=0;o<t.length;o++){const i=t[o];if(!i)continue;const a=w(i.name)??"",s=w(i.description),c=w(i.highlight),u=Array.isArray(i.labels)?jt(i.labels):[],l=w(i.sku,i.repr_sku),d=w(i.image,i.repr_image),f=Jo(i,a,l),m=(Array.isArray(i.group_products)?i.group_products:[]).map(h=>{const k=I(h);return k?We(k):null}).filter(le),y=d??w(...m.map(h=>h.imageUrl));if(a&&m.length>0){const h={groupName:a,products:m};y&&(h.image=y),s&&(h.description=s),c&&(h.highlight=c),u.length>0&&(h.labels=u),r.push(h)}if(!f)continue;const p={name:a,action:f};u.length>0&&(p.labels=u),d!==void 0&&(p.image=d),n.push(p)}return r.length>0?{type:"ui_spec",widget:"chat",spec:{root:"root",elements:{root:{type:"CategoriesContainer",props:{groups:r}}}},panelHint:"panel"}:n.length===0?{type:"metadata",sessionId:"",model:"",meta:{aiProductGroupings:e.payload.product_groupings??[]}}:{type:"ui_spec",widget:"chat",spec:{root:"root",elements:{root:{type:"AIGroupingCards",props:{entries:n}}}}}}function Jo(e,t,r){const n=I(e.requestDetails);if(n){if(n.type!=="findSimilar")return R(n,t);const a={...I(n.payload)??{}};r&&!qe(a.sku)&&(a.sku=r);const s=Je(e.group_skus);return s.length>0&&(a.group_skus=s),R({...n,payload:Ot(a)},t)}const o={};r&&(o.sku=r);const i=Je(e.group_skus);return i.length>0&&(o.group_skus=i),Object.keys(o).length===0?null:R({type:"findSimilar",payload:Ot(o)},t)}function Vo(e){const t=e.payload.suggested_searches??[],r=[];for(let n=0;n<t.length;n++){const o=t[n];if(!o)continue;const i=w(o.short_name,o.chosen_attribute,o.detailed_user_message)??`Search ${n+1}`,a={},s=w(o.detailed_user_message);s&&(a.text=s);const c=I(I(o.requestDetails)?.payload),u=c?.group_skus;o.group_skus&&Array.isArray(o.group_skus)?a.group_skus=o.group_skus:Array.isArray(u)&&(a.group_skus=u.filter(k=>typeof k=="string"));const l=w(o.sku,o.representative_product_sku,c?.sku);l&&(a.sku=l),a.is_suggested_text=1;const d={type:"inputText",payload:a},f=R(o.requestDetails,i),m=f?.type==="findSimilar"&&typeof a.text=="string"?R(d,i):f??R(d,i);if(!m)continue;const y={shortName:i,action:m},p=w(o.detailed_user_message);p&&p!==i&&(y.detailedMessage=p);const h=vo(o);h&&h!==i&&h!==(p??"")&&(y.whyDifferent=h),typeof o.image=="string"&&(y.image=o.image),r.push(y)}return r.length===0?{type:"metadata",sessionId:"",model:"",meta:{aiSuggestedSearches:e.payload.suggested_searches??[]}}:{type:"ui_spec",widget:"chat",spec:{root:"root",elements:{root:{type:"AISuggestedSearchCards",props:{entries:r}}}}}}function Wo(e){const t=e.payload,r=R(t.requestDetails??t.request_details,w(t.review_count,t.reviewCount,t.text,t.title)??"Show product reviews");if(!r)return{type:"metadata",sessionId:"",model:"",meta:{groundingReview:t}};const n={action:r};return t.title&&(n.title=t.title),t.text&&(n.text=t.text),t.review_count?n.reviewCount=t.review_count:typeof t.reviewCount=="string"&&t.reviewCount.trim()&&(n.reviewCount=t.reviewCount),{type:"ui_spec",widget:"chat",spec:{root:"root",elements:{root:{type:"GroundingReviewCard",props:n}}}}}function Ho(){return{type:"metadata",sessionId:"",model:"",meta:{analyzeAnimation:!0}}}function Ko(e){return{type:"metadata",sessionId:"",model:"",meta:{voice:e.payload}}}function Yo(e){const t=e.payload.group_list??[],r=[];for(const o of t){const i=o.group_name??"",a=(o.product_list??[]).map(J);r.push({groupName:i,products:a})}const n=[];for(const o of e.payload.filter_tags??[]){const i=o.title??"";if(!i)continue;const a=R(o.requestDetails,i),s={title:i};a&&(s.action=a),n.push(s)}return{type:"ui_spec",widget:"chat",spec:{root:"root",elements:{root:{type:"CategoriesContainer",props:{groups:r,filterTags:n}}}},panelHint:"panel"}}function Xo(e){return{type:"metadata",sessionId:"",model:"",meta:{formType:e.type,formPayload:e.payload??{}}}}function Qo(e){const t={};return typeof e.payload?.summary=="string"&&(t.summary=e.payload.summary),Array.isArray(e.payload?.products_discussed)&&(t.products_discussed=e.payload.products_discussed),typeof e.payload?.user_sentiment=="string"&&(t.user_sentiment=e.payload.user_sentiment),{type:"ui_spec",widget:"chat",spec:{root:"root",elements:{root:{type:"HandoffNotice",props:t}}}}}function ei(e){return{type:"metadata",sessionId:"",model:"",meta:{launcherContent:e.payload??{}}}}function Dt(e,t){const r={},n=[];for(let o=0;o<e.length;o++){const i=e[o];if(!i)continue;const a=`action-${o}`;n.push(a);const s={label:i.label,action:i.action};i.icon!==void 0&&(s.icon=i.icon),i.image!==void 0&&(s.image=i.image),i.description!==void 0&&(s.description=i.description),r[a]={type:"ActionButton",props:s}}return r.root={type:"ActionButtons",props:{buttons:e.map(o=>{const i={label:o.label,action:o.action};return o.image!==void 0&&(i.image=o.image),o.description!==void 0&&(i.description=o.description),o.icon!==void 0&&(i.icon=o.icon),i})},children:n},{type:"ui_spec",widget:t,spec:{root:"root",elements:r}}}function Ut(e,t){const r={},n=[];for(let o=0;o<e.length;o++){const i=e[o];if(!i)continue;const a=J(i),s=`product-${o}`;n.push(s);const c={product:a,index:o};a.sku&&(c.action={title:a.name,type:"launchSingleProduct",payload:{sku:a.sku}}),r[s]={type:"ProductCard",props:c}}return r.root={type:"ProductGrid",props:{layout:"grid"},children:n},{type:"ui_spec",widget:t,spec:{root:"root",elements:r}}}function ti(e,t){const r={},n=[];for(let o=0;o<e.length;o++){const i=e[o];if(!i)continue;const a=`product-${o}`;n.push(a);const s={product:i,index:o},c=i.sku;c&&(s.action={title:i.name??"",type:"launchSingleProduct",payload:{sku:c}}),r[a]={type:"ProductCard",props:s}}return r.root={type:"ProductGrid",props:{layout:"grid"},children:n},{type:"ui_spec",widget:t,spec:{root:"root",elements:r}}}function ri(e,t){return{type:"ui_spec",widget:t,spec:{root:"root",elements:{root:{type:"ProductCard",props:{product:J(e),index:0}}}}}}function ni(e){return{type:"ui_spec",widget:e,spec:{root:"root",elements:{root:{type:"ActionButtons",props:{buttons:[]},children:[]}}}}}function oi(e){const t=w(e.sku),r=w(e.short_name),n={...I(e.product_item)??e},o=w(e.discount_reason,e.discountReason);return o&&!w(n.discount_reason,n.discountReason)&&(n.discount_reason=o),We(n,t,r)}function We(e,t,r){const n=w(e.sku,t),o=w(e.name,r);if(!n||!o)return null;const i={sku:n,name:o},a=w(e.brand);a&&(i.brand=a);const s=w(e.url);s&&(i.url=s);const c=ii(e.images);if(c.length>0)i.images=c;else{const p=w(e.image,e.image_url,e.imageUrl);p&&(i.images=[p])}const u=ue(e.price_discounted);u!==void 0&&(i.price_discounted=u);const l=ue(e.price);l!==void 0&&(i.price=l);const d=ue(e.rating);d!==void 0&&(i.rating=d);const f=ue(e.review_count)??ue(e.reviewCount);f!==void 0&&(i.review_count=f);const m=w(e.cart_code,e.cartCode);m&&(i.cart_code=m),typeof e.in_stock=="boolean"&&(i.in_stock=e.in_stock),typeof e.inStock=="boolean"&&(i.in_stock=e.inStock);const y=w(e.discount_reason,e.discountReason);return y&&(i.discount_reason=y),J(i)}function R(e,t){const r=I(e);if(!r)return null;const n=r.type;if(typeof n!="string"||n.length===0)return null;const o={title:t||n,type:n};return r.payload!==void 0&&(o.payload=r.payload),o}function I(e){return!e||typeof e!="object"||Array.isArray(e)?null:e}function w(...e){for(const t of e)if(typeof t=="string"){const r=t.trim();if(r.length>0)return r}}function ii(e){return Array.isArray(e)?e.filter(t=>typeof t=="string"&&t.length>0):[]}function jt(e){if(typeof e=="string"){const t=e.trim();return t?[t]:[]}return Array.isArray(e)?e.filter(t=>typeof t=="string").map(t=>t.trim()).filter(t=>t.length>0):[]}function ue(e){if(typeof e=="number"&&Number.isFinite(e))return e;if(typeof e=="string"){let t;e.includes(".")&&e.includes(",")?t=e.replace(/\./g,"").replace(",","."):t=e.replace(",",".");const r=Number(t);if(Number.isFinite(r))return r}}function le(e){return e!=null}var ai=new Set(["sku","name","brand","images","price","price_discounted","price_discount_rate","price_currency","discount_reason","url","rating","review_count","cart_code","in_stock","description","description_html","features","specifications","short_name","category_ids","category_names","variants","facet_hits","promotions"]);function J(e){const t=e.price_discounted!=null&&e.price_discounted>0,r=t?e.price_discounted:e.price,n=t&&e.price!=null?e.price:void 0;let o;n!=null&&r!=null&&n>0?o=Math.round((n-r)/n*100):e.price_discount_rate!=null&&e.price_discount_rate>0&&(o=e.price_discount_rate);const i=w(e.brand),a=w(e.name)??e.sku,s=i&&!a.toLowerCase().startsWith(i.toLowerCase())?`${i} ${a}`:a,c={sku:e.sku,name:s,url:w(e.url)??""},u=e.images?.[0];u&&(c.imageUrl=u),e.images&&e.images.length>1&&(c.images=e.images),r!=null&&r>0&&(c.price=String(r)),n!=null&&n>0&&(c.originalPrice=String(n)),o!==void 0&&(c.discountPercent=o),i!==void 0&&(c.brand=i),e.rating!==void 0&&(c.rating=e.rating),e.review_count!==void 0&&(c.reviewCount=e.review_count),e.cart_code!==void 0&&(c.cartCode=e.cart_code),e.in_stock!==void 0&&(c.inStock=e.in_stock),e.variants&&e.variants.length>0&&(c.variants=e.variants),e.discount_reason!==void 0&&(c.discountReason=e.discount_reason),e.promotions&&e.promotions.length>0&&(c.promotions=e.promotions),e.description!==void 0&&(c.description=e.description),e.description_html!==void 0&&(c.descriptionHtml=e.description_html),e.features&&e.features.length>0&&(c.features=e.features),e.specifications!==void 0&&(c.specifications=e.specifications),e.facet_hits&&(c.facetHits=e.facet_hits),e.category_names&&e.category_names.length>0&&(c.categoryNames=e.category_names),e.short_name!==void 0&&(c.shortName=e.short_name);const l=e,d={};let f=!1;for(const m of Object.keys(l))ai.has(m)||(d[m]=l[m],f=!0);return f&&(c.extras=d),c}function si(e){return e.results.map(J)}function ci(e){return e.product_groupings.map(t=>{const r={name:t.name,products:(t.group_products??[]).map(J)};return t.highlight!==void 0&&(r.highlight=t.highlight),r})}function ui(e){const t=e.payload.type,{type:r,...n}=e.payload;return{type:"ui_spec",widget:"chat",spec:{root:"root",elements:{root:{type:t,props:n}}}}}function Mt(e){const t=[];for(const r of Object.values(e))if(r.type==="ProductCard"&&r.props){const n=r.props.product??r.props;typeof n.sku=="string"&&typeof n.name=="string"&&t.push(n)}return t}function Ft(e){const t=e.headers.get("Content-Type")??"";return t.includes("application/x-ndjson")||t.includes("text/event-stream")}async function li(e,t){const r=[],n={onEvent:o=>{const i=Lt(o);!i||i.type!=="ui_spec"||r.push(...Mt(i.spec.elements))}};return t!==void 0&&(n.signal=t),await zt(e,n),r}async function di(e,t,r){const n=Ct("similar_products",t),o={method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)};r!==void 0&&(o.signal=r);const i=await It(n,o);if(!i.ok)throw new Error(`HTTP ${i.status}: ${i.statusText}`);if(Ft(i))return li(i,r);const a=await i.text();if(!a)throw new Error("Empty response body from similar_products endpoint");try{return si(JSON.parse(a))}catch{throw new Error("Invalid JSON from similar_products endpoint")}}async function fi(e,t){const r=[];let n=null;const o={onEvent:i=>{const a=Lt(i);if(a){if(a.type==="metadata"&&a.meta){const s=a.meta.group_name;if(typeof s=="string"){n={name:s,products:[]};const c=a.meta.highlight;typeof c=="string"&&(n.highlight=c),r.push(n)}}a.type==="ui_spec"&&n&&n.products.push(...Mt(a.spec.elements))}}};return t!==void 0&&(o.signal=t),await zt(e,o),r}async function pi(e,t,r){const n=Ct("product_groupings",t),o={method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)};r!==void 0&&(o.signal=r);const i=await It(n,o);if(!i.ok)throw new Error(`HTTP ${i.status}: ${i.statusText}`);if(Ft(i))return fi(i,r);const a=await i.text();if(!a)return[];try{return ci(JSON.parse(a))}catch{throw new Error("Invalid JSON from product_groupings endpoint")}}var gi={currencyCode:"TRY",currencySymbol:"TL",currencyPosition:"suffix",thousandsSeparator:".",decimalSeparator:",",alwaysShowDecimals:!1};function de(e,t){const r=Number(e);if(!Number.isFinite(r)||r<0)return e;const n={...gi,...t},o=Math.abs(r%1)<Number.EPSILON,i=n.alwaysShowDecimals||!o?r.toFixed(2):r.toFixed(0),a=i.indexOf("."),s=a===-1?i:i.slice(0,a),c=a===-1?void 0:i.slice(a+1),u=s.replace(/\B(?=(\d{3})+(?!\d))/g,n.thousandsSeparator);let l;return c!==void 0?l=`${u}${n.decimalSeparator}${c}`:l=u,n.currencySymbol?n.currencyPosition==="prefix"?`${n.currencySymbol}${l}`:`${l} ${n.currencySymbol}`:l}function mi(e){return Number.isFinite(e)?Math.max(0,Math.min(5,e)):0}function hi(e){return Number.isFinite(e)?Math.max(0,Math.min(100,Math.round(e))):0}function yi(e){const t=mi(e),r=Math.floor(t),n=t-r>=.5,o=5-r-(n?1:0),i=document.createElement("span");if(i.className="gengage-star-rating",i.setAttribute("role","img"),i.setAttribute("aria-label",`${t.toFixed(1)} out of 5 stars`),r>0&&i.appendChild(document.createTextNode("★".repeat(r))),n){const a=document.createElement("span");a.className="gengage-star-half",a.textContent="☆";const s=document.createElement("span");s.textContent="★",a.appendChild(s),i.appendChild(a)}return o>0&&i.appendChild(document.createTextNode("☆".repeat(o))),i}function Bt(e){e.addEventListener("error",()=>{e.style.display="none"},{once:!0})}function Gt(e){const{product:t,index:r,discountType:n,onClick:o,onAddToCart:i,renderCard:a}=e,s=e.i18n,c=e.pricing;if(e.renderCardElement){const p=e.renderCardElement(t,r);if(p)return p}if(a){const p=document.createElement("div");return p.className="gengage-simrel-card gengage-simrel-card--custom gds-card gds-product-card gds-card-interactive",p.dataset.gengagePart="simrel-product-card",p.innerHTML=gn(a(t,r)),p.addEventListener("click",h=>{h.target.closest(".gengage-simrel-atc")||h.target.closest(".gengage-chat-product-card-atc")||o(t)}),p}const u=document.createElement("article");u.className="gengage-simrel-card gengage-chat-product-card gds-card gds-product-card gds-card-interactive",u.dataset.gengagePart="simrel-product-card",t.inStock===!1&&u.classList.add("gengage-simrel-card--out-of-stock"),u.setAttribute("role","listitem"),u.dataset.sku=t.sku;const l=document.createElement("div");if(l.className="gengage-simrel-card-image gengage-chat-product-card-img-wrapper",l.dataset.gengagePart="simrel-product-card-image",t.imageUrl&&_e(t.imageUrl)){const p=document.createElement("img");p.className="gengage-chat-product-card-img",p.src=t.imageUrl,p.alt=t.name,p.loading="lazy",Bt(p),l.appendChild(p)}if(n==="badge"&&t.discountPercent&&t.discountPercent>0){const p=document.createElement("span");p.className="gengage-simrel-badge gengage-chat-product-card-discount-badge",p.textContent=`%${hi(t.discountPercent)}`,l.appendChild(p)}u.appendChild(l);const d=document.createElement("div");if(d.className="gengage-simrel-card-info gengage-chat-product-card-body",d.dataset.gengagePart="simrel-product-card-body",t.brand){const p=document.createElement("div");p.className="gengage-simrel-card-brand gengage-chat-product-card-brand",p.textContent=t.brand,d.appendChild(p)}const f=document.createElement("div");if(f.className="gengage-simrel-card-name gengage-chat-product-card-name",f.textContent=t.name,f.title=t.name,d.appendChild(f),t.rating!=null&&t.rating>0){const p=document.createElement("div");if(p.className="gengage-simrel-card-rating gengage-chat-product-card-rating",p.appendChild(yi(t.rating)),t.reviewCount!=null){const h=document.createElement("span");h.className="gengage-simrel-card-review-count gengage-chat-product-card-review-count",h.textContent=` (${t.reviewCount})`,p.appendChild(h)}d.appendChild(p)}const m=document.createElement("div");if(m.className="gengage-simrel-card-price gengage-chat-product-card-price",t.originalPrice&&t.originalPrice!==t.price&&(n==="strike-through"||n==="inline"||!n)){const p=document.createElement("span");p.className=["gengage-simrel-card-price-original","gengage-chat-product-card-original-price"].join(" "),n==="inline"&&p.classList.add("gengage-simrel-card-price-original--inline"),p.textContent=de(t.originalPrice,c),m.appendChild(p)}if(t.price&&parseFloat(t.price)>0){const p=document.createElement("span");p.className="gengage-simrel-card-price-current gengage-chat-product-card-price-current",p.textContent=de(t.price,c),m.appendChild(p)}d.appendChild(m),u.appendChild(d);const y=document.createElement("button");if(y.className="gengage-simrel-card-cta gengage-chat-product-card-cta gds-btn gds-btn-secondary",y.type="button",y.dataset.gengagePart="simrel-product-card-cta",y.textContent=s?.ctaLabel??"View",y.addEventListener("click",p=>{p.preventDefault(),p.stopPropagation(),o(t)}),u.appendChild(y),t.inStock===!1){const p=document.createElement("div");p.className="gengage-simrel-card-oos",p.textContent=s?.outOfStockLabel??"Out of Stock",u.appendChild(p)}else if(t.cartCode){const p=document.createElement("button");p.className="gengage-simrel-atc gengage-simrel-atc-button gds-btn gds-btn-secondary",p.type="button",p.textContent=s?.addToCartButton??"Add to Cart",p.addEventListener("click",h=>{h.preventDefault(),h.stopPropagation(),i({sku:t.sku,quantity:1,cartCode:t.cartCode})}),u.appendChild(p)}return u.addEventListener("click",p=>{p.target.closest(".gengage-simrel-atc")||p.target.closest(".gengage-chat-product-card-atc")||p.target.closest(".gengage-chat-product-card-cta")||o(t)}),u}function qt(e){const t=document.createElement("div");t.className="gengage-simrel-grid",t.setAttribute("role","list"),t.setAttribute("aria-label",e.i18n?.similarProductsAriaLabel??"Similar products"),e.columns&&t.style.setProperty("--gengage-simrel-columns",String(e.columns));for(let r=0;r<e.products.length;r++){const n={product:e.products[r],index:r,onClick:e.onClick,onAddToCart:e.onAddToCart};e.i18n!==void 0&&(n.i18n=e.i18n),e.discountType!==void 0&&(n.discountType=e.discountType),e.renderCard!==void 0&&(n.renderCard=e.renderCard),e.renderCardElement!==void 0&&(n.renderCardElement=e.renderCardElement);const o=Gt(n);t.appendChild(o)}return e.products.length===0&&(t.style.display="none",t.dataset.empty="true"),t}var _i=0;function Jt(e){const t=_i++,r=document.createElement("div");if(r.className="gengage-simrel-groups",r.dataset.gengagePart="simrel-groups",e.groups.length===0)return r.style.display="none",r.dataset.empty="true",r;const n=document.createElement("div");n.className="gengage-simrel-tabs gds-toolbar",n.dataset.gengagePart="simrel-tab-bar",n.setAttribute("role","tablist");const o=[],i=[];let a=0;const s=h=>{const k={products:h.products,onClick:e.onClick,onAddToCart:e.onAddToCart};return e.i18n!==void 0&&(k.i18n=e.i18n),e.discountType!==void 0&&(k.discountType=e.discountType),e.renderCard!==void 0&&(k.renderCard=e.renderCard),e.renderCardElement!==void 0&&(k.renderCardElement=e.renderCardElement),e.columns!==void 0&&(k.columns=e.columns),k},c=(h,k=!1)=>{if(k&&h!==a&&e.onGroupingActivate){const b=e.groups[h];e.onGroupingActivate({grouping_label:b.name,grouping_index:h})}a=h;for(let b=0;b<o.length;b++){const P=b===h;o[b].classList.toggle("gengage-simrel-tab--active",P),o[b].setAttribute("aria-selected",String(P)),o[b].tabIndex=P?0:-1}const N=e.groups[h],S=i[h];S.innerHTML="";const v=qt(s(N));S.appendChild(v);for(let b=0;b<i.length;b++){const P=b===h;i[b].style.display=P?"":"none",i[b].tabIndex=P?0:-1}};for(let h=0;h<e.groups.length;h++){const k=e.groups[h],N=`gengage-simrel-tab-${t}-${h}`,S=`gengage-simrel-panel-${t}-${h}`,v=document.createElement("button");v.className="gengage-simrel-tab gds-tab",v.type="button",v.dataset.gengagePart="simrel-tab",v.id=N,v.textContent=k.name,v.setAttribute("role","tab"),v.setAttribute("aria-controls",S),v.setAttribute("aria-selected",String(h===0)),v.tabIndex=h===0?0:-1,h===0&&v.classList.add("gengage-simrel-tab--active"),v.addEventListener("click",()=>c(h,!0)),v.addEventListener("keydown",P=>{let M=-1;P.key==="ArrowRight"||P.key==="ArrowDown"?M=(h+1)%e.groups.length:P.key==="ArrowLeft"||P.key==="ArrowUp"?M=(h-1+e.groups.length)%e.groups.length:P.key==="Home"?M=0:P.key==="End"&&(M=e.groups.length-1),M>=0&&(P.preventDefault(),c(M,!0),o[M].focus())}),o.push(v),n.appendChild(v);const b=document.createElement("div");b.className="gengage-simrel-tab-panel",b.dataset.gengagePart="simrel-tab-panel",b.id=S,b.setAttribute("role","tabpanel"),b.setAttribute("aria-labelledby",N),b.tabIndex=h===0?0:-1,h!==0&&(b.style.display="none"),i.push(b)}const u=document.createElement("button");u.type="button",u.className="gengage-simrel-tabs-arrow gengage-simrel-tabs-arrow--left",u.setAttribute("aria-label",e.i18n?.scrollTabsLeft??"Scroll tabs left"),u.innerHTML='<svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polyline points="15 18 9 12 15 6"/></svg>';const l=document.createElement("button");l.type="button",l.className="gengage-simrel-tabs-arrow gengage-simrel-tabs-arrow--right",l.setAttribute("aria-label",e.i18n?.scrollTabsRight??"Scroll tabs right"),l.innerHTML='<svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polyline points="9 18 15 12 9 6"/></svg>';const d=200;u.addEventListener("click",()=>{n.scrollBy({left:-d,behavior:"smooth"})}),l.addEventListener("click",()=>{n.scrollBy({left:d,behavior:"smooth"})});const f=()=>{const h=n.scrollLeft<=4,k=n.scrollLeft+n.clientWidth>=n.scrollWidth-4;u.style.display=h?"none":"",l.style.display=k?"none":"",n.classList.toggle("gengage-simrel-tabs--peek-right",!k),n.classList.toggle("gengage-simrel-tabs--peek-left",!h)};n.addEventListener("scroll",f,{passive:!0}),typeof ResizeObserver<"u"&&new ResizeObserver(f).observe(n),u.style.display="none",l.style.display="none",requestAnimationFrame(f);const m=document.createElement("div");m.className="gengage-simrel-tabs-wrapper",m.appendChild(u),m.appendChild(n),m.appendChild(l),r.appendChild(m);const y=i[0],p=qt(s(e.groups[0]));y.appendChild(p);for(const h of i)r.appendChild(h);return r}function Vt(e){if(!e||typeof e!="object")return null;const t=e;if(typeof t.sku!="string"||typeof t.name!="string"||typeof t.url!="string")return null;const r={sku:t.sku,name:t.name,url:t.url},n=t.imageUrl;typeof n=="string"&&(r.imageUrl=n);const o=t.price;typeof o=="string"&&(r.price=o);const i=t.originalPrice;typeof i=="string"&&(r.originalPrice=i);const a=t.discountPercent;typeof a=="number"&&(r.discountPercent=a);const s=t.brand;typeof s=="string"&&(r.brand=s);const c=t.rating;typeof c=="number"&&(r.rating=c);const u=t.reviewCount;typeof u=="number"&&(r.reviewCount=u);const l=t.cartCode;typeof l=="string"&&(r.cartCode=l);const d=t.inStock;typeof d=="boolean"&&(r.inStock=d);const f=t.extras;return f!=null&&typeof f=="object"&&(r.extras=f),r}function vi(e){if(!e||typeof e!="object")return null;const t=e,r=t.title,n=t.type;if(typeof r!="string"||typeof n!="string")return null;const o={title:r,type:n};return t.payload!==void 0&&(o.payload=t.payload),o}var Wt={ProductGrid:({element:e,renderElement:t,context:r})=>{const n=document.createElement("div");n.className="gengage-simrel-grid",n.setAttribute("role","list");const o=e.props?.columns;let i;typeof o=="number"&&Number.isFinite(o)&&o>0?i=Math.floor(o):typeof r.gridColumns=="number"&&Number.isFinite(r.gridColumns)&&r.gridColumns>0&&(i=Math.floor(r.gridColumns)),i!==void 0&&n.style.setProperty("--gengage-simrel-columns",String(i));for(const a of e.children??[]){const s=t(a);s&&n.appendChild(s)}if(n.children.length===0){const a=document.createElement("div");a.className="gengage-simrel-empty",a.textContent=r.i18n.emptyStateMessage,n.appendChild(a)}return n},ProductCard:({element:e,context:t})=>{const r=Vt(e.props?.product??e.props);if(!r)return null;const n=e.props?.index,o=typeof n=="number"&&Number.isFinite(n)?n:0,i=e.props?.discountType,a=i==="strike-through"||i==="badge"||i==="inline"?i:t.discountType,s={product:r,index:o,onClick:t.onClick,onAddToCart:t.onAddToCart,i18n:t.i18n};return a!==void 0&&(s.discountType=a),t.renderCard!==void 0&&(s.renderCard=t.renderCard),t.renderCardElement!==void 0&&(s.renderCardElement=t.renderCardElement),t.pricing!==void 0&&(s.pricing=t.pricing),Gt(s)},GroupTabs:({element:e,context:t})=>{const r=e.props?.groups;if(!Array.isArray(r))return null;const n=[];for(const a of r){if(!a||typeof a!="object")continue;const s=a;if(typeof s.name!="string")continue;const c=[];if(Array.isArray(s.products))for(const l of s.products){const d=Vt(l);d&&c.push(d)}const u={name:s.name,products:c};typeof s.highlight=="string"&&(u.highlight=s.highlight),n.push(u)}const o={groups:n,onClick:t.onClick,onAddToCart:t.onAddToCart,i18n:t.i18n},i=e.props?.columns;return typeof i=="number"&&Number.isFinite(i)&&i>0?o.columns=Math.floor(i):typeof t.gridColumns=="number"&&Number.isFinite(t.gridColumns)&&t.gridColumns>0&&(o.columns=Math.floor(t.gridColumns)),t.discountType!==void 0&&(o.discountType=t.discountType),t.renderCard!==void 0&&(o.renderCard=t.renderCard),t.renderCardElement!==void 0&&(o.renderCardElement=t.renderCardElement),t.onGroupingActivate!==void 0&&(o.onGroupingActivate=t.onGroupingActivate),Jt(o)},EmptyState:({element:e,context:t})=>{const r=document.createElement("div");r.className="gengage-simrel-empty";const n=e.props?.message;return r.textContent=typeof n=="string"?n:t.i18n.emptyStateMessage,r},AddToCartButton:({element:e,context:t})=>{const r=e.props?.sku,n=e.props?.cartCode;if(typeof r!="string"||typeof n!="string")return null;const o=document.createElement("button");o.className="gengage-simrel-atc gengage-chat-product-card-cta",o.type="button";const i=e.props?.label;return o.textContent=typeof i=="string"?i:t.i18n.addToCartButton,o.addEventListener("click",a=>{a.preventDefault(),a.stopPropagation(),t.onAddToCart({sku:r,quantity:1,cartCode:n})}),o},QuickActions:({element:e,context:t})=>{const r=document.createElement("div");r.className="gengage-simrel-quick-actions";const n=e.props?.actions;if(!Array.isArray(n)||!t.onAction)return r;for(const o of n){if(!o||typeof o!="object")continue;const i=o,a=i.label,s=vi(i.action);if(typeof a!="string"||!s)continue;const c=document.createElement("button");c.className="gengage-simrel-quick-action",c.type="button",c.textContent=a,c.addEventListener("click",u=>{u.preventDefault(),u.stopPropagation(),t.onAction?.(s)}),r.appendChild(c)}return r}},He=({element:e,renderElement:t})=>{if(!e.children||e.children.length===0)return null;const r=document.createElement("div");for(const n of e.children){const o=t(n);o&&r.appendChild(o)}return r};function Ht(){return{...Wt}}function Kt(e,t,r=Wt,n=He){return an({spec:e,context:t,registry:r,containerClassName:"gengage-simrel-uispec",unknownRenderer:n})}var Yt={similarProductsAriaLabel:"Benzer ürünler",emptyStateMessage:"Benzer ürün bulunamadı.",addToCartButton:"Sepete Ekle",ctaLabel:"İncele",outOfStockLabel:"Stokta Yok",decreaseLabel:"Azalt",increaseLabel:"Artır",errorLoadingMessage:"Benzer ürünler yüklenemedi.",retryButtonText:"Tekrar dene",priceSuffix:" TL",scrollTabsLeft:"Sola kaydır",scrollTabsRight:"Sağa kaydır"},bi={similarProductsAriaLabel:"Similar products",emptyStateMessage:"No similar products found.",addToCartButton:"Add to cart",ctaLabel:"View",outOfStockLabel:"Out of Stock",decreaseLabel:"Decrease",increaseLabel:"Increase",errorLoadingMessage:"Could not load similar products.",retryButtonText:"Try again",priceSuffix:"",scrollTabsLeft:"Scroll tabs left",scrollTabsRight:"Scroll tabs right"};function wi(e){return e?e.toLowerCase().split("-")[0]??"tr":"tr"}function ki(e){return wi(e)==="en"?bi:Yt}var Si=12e4;function Ei(e){return e instanceof DOMException&&e.name==="AbortError"}var Xt=class extends Dn{constructor(...e){super(...e),this._abortController=null,this._contentEl=null,this._lastResultCount=-1,this._i18n=Yt,this._pendingAddToCartKeys=new Set}async init(e){if(!this.isInitialised&&(e.mountTarget===void 0||e.mountTarget===null))throw new Error("[gengage] SimRel mountTarget is required. Provide a merchant-owned mount before initializing.");await super.init(e)}async onInit(e){this._i18n=this._resolveI18n(e),this._contentEl=document.createElement("div"),this._contentEl.className="gengage-simrel-container",this._contentEl.dataset.gengagePart="simrel-container",this._contentEl.lang=jn(e.locale);const t=this._clampGridColumns(e.gridColumns);t!==void 0&&this._contentEl.style.setProperty("--gengage-simrel-columns",String(t)),this.root.appendChild(this._contentEl),this._lastSku=e.sku,await this._fetchAndRender(e.sku),hn("simrel")}onUpdate(e){const t=e.sku;!t||t===this._lastSku&&this._lastResultCount!==0||(this._lastSku=t,this._fetchAndRender(t))}onShow(){this._contentEl&&(this._contentEl.style.opacity="0",this._contentEl.style.transition="opacity 0.3s ease-in",requestAnimationFrame(()=>{this._contentEl&&(this._contentEl.style.opacity="1")}))}onHide(){}onDestroy(){this._abort(),this._contentEl&&(this._contentEl.remove(),this._contentEl=null)}_handleProductClick(e){const t={sku:e.sku,name:e.name,url:e.url};if(e.imageUrl!==void 0&&(t.imageUrl=e.imageUrl),e.price!==void 0&&(t.price=e.price),e.originalPrice!==void 0&&(t.originalPrice=e.originalPrice),e.discountPercent!==void 0&&(t.discountPercent=e.discountPercent),e.brand!==void 0&&(t.brand=e.brand),e.rating!==void 0&&(t.rating=e.rating),e.reviewCount!==void 0&&(t.reviewCount=e.reviewCount),e.cartCode!==void 0&&(t.cartCode=e.cartCode),e.inStock!==void 0&&(t.inStock=e.inStock),this.config.onProductClick?.(t)===!1)return;const r=this.config.session?.sessionId??null;ae("gengage:similar:product-click",{sku:e.sku,url:e.url,sessionId:r,productName:e.name}),this.config.onProductNavigate?.(e.url,e.sku,r)}async _handleAddToCart(e){const t=`${e.sku}\0${e.cartCode}\0${e.quantity}`;if(!this._pendingAddToCartKeys.has(t)){this._pendingAddToCartKeys.add(t);try{if(this.config.onAddToCart===void 0)return;try{await Promise.resolve(this.config.onAddToCart(e))}catch(r){console.error("[gengage] simrel onAddToCart",r);return}yn(e.sku,e.quantity),ae("gengage:similar:add-to-cart",e)}finally{this._pendingAddToCartKeys.delete(t)}}}_abort(){this._abortController?.abort(),this._abortController=null}_isSuperseded(e){return this._abortController?.signal!==e}_emitSimilarProductsImpression(e,t){const r=this.config.session?.sessionId??null;ae("gengage:similar:products-impression",{source_sku:this.config.sku,product_count:e,grouped:t,sessionId:r})}_resolveRequestTimeoutMs(){const e=this.config.requestTimeoutMs;return typeof e!="number"||!Number.isFinite(e)||e<=0?Si:Math.floor(e)}async _fetchAndRender(e){this._abort();const t=new AbortController;this._abortController=t;const r=t.signal;let n=!1;const o=setTimeout(()=>{n=!0,t.abort()},this._resolveRequestTimeoutMs());if(r.addEventListener("abort",()=>clearTimeout(o),{once:!0}),!this._contentEl)return;this._contentEl.innerHTML="",this._contentEl.style.display="";const i=document.createElement("div");i.className="gengage-simrel-loading",i.dataset.gengagePart="simrel-loading";const a=document.createElement("div");a.className="gengage-simrel-spinner",a.dataset.gengagePart="simrel-loading-spinner",i.appendChild(a),this._contentEl.appendChild(i);const s={middlewareUrl:this.config.middlewareUrl},c=Vn({source:"simrel",locale:this.config.locale});try{const u={account_id:this.config.accountId,session_id:this.config.session?.sessionId??"",correlation_id:this.config.session?.sessionId??"",sku:e};this.config.domain!==void 0&&(u.domain=this.config.domain);const l=await di(u,s,r);if(this._lastResultCount=l.length,!this._contentEl)return;if(this._contentEl.innerHTML="",l.length>0&&this.config.enableProductGroupings!==!1)try{const d=l.map(y=>y.sku),f=new Map(l.map(y=>[y.sku,y])),m=(await pi({account_id:this.config.accountId,session_id:this.config.session?.sessionId??"",correlation_id:this.config.session?.sessionId??"",skus:d},s,r)).map(y=>({...y,products:y.products.map(p=>({...f.get(p.sku),...p})).filter(p=>typeof p.sku=="string"&&typeof p.name=="string"&&typeof p.url=="string")})).filter(y=>y.products.length>0);if(m.length>0&&this._contentEl){const y=this._buildGroupsSpec(m),p=this._renderUISpec(y);this._contentEl.appendChild(p),gt("simrel"),this._emitSimilarProductsImpression(m.reduce((h,k)=>h+k.products.length,0),!0);return}}catch{}if(this._isSuperseded(r))return;if(this._contentEl){const d=this._buildProductsSpec(l),f=this._renderUISpec(d);this._contentEl.appendChild(f)}l.length>0&>("simrel"),this._emitSimilarProductsImpression(l.length,!1)}catch(u){const l=Ei(u);if(l&&this._isSuperseded(r))return;if(ae("gengage:global:error",{source:"simrel",code:l&&n?"REQUEST_TIMEOUT":"FETCH_ERROR",message:xn(this.config.locale,u)}),this._contentEl){this._contentEl.innerHTML="";const d=document.createElement("div");d.className="gengage-simrel-error";const f=document.createElement("span");f.textContent=this._i18n.errorLoadingMessage,d.appendChild(f);const m=document.createElement("button");m.className="gengage-simrel-retry",m.textContent=this._i18n.retryButtonText,m.addEventListener("click",()=>{this._fetchAndRender(this.config.sku)}),d.appendChild(m),this._contentEl.appendChild(d)}}finally{clearTimeout(o),c()}}_clampGridColumns(e){if(!(e===void 0||typeof e!="number"||!Number.isFinite(e)))return Math.max(1,Math.min(12,Math.floor(e)))}_resolveI18n(e){return{...ki(e.locale),...e.i18n}}_resolveUISpecRegistry(){return sn(Ht(),this.config.renderer?.registry)}_buildRenderContext(){const e=this.config.renderCard,t={onClick:n=>this._handleProductClick(n),onAddToCart:n=>{this._handleAddToCart(n)},onGroupingActivate:n=>{ae("gengage:similar:grouping-click",{grouping_label:n.grouping_label,grouping_index:n.grouping_index,sessionId:this.config.session?.sessionId??null})},i18n:this._i18n};this.config.discountType!==void 0&&(t.discountType=this.config.discountType),e!==void 0&&(t.renderCard=e),this.config.renderCardElement!==void 0&&(t.renderCardElement=this.config.renderCardElement),this.config.pricing!==void 0&&(t.pricing=this.config.pricing);const r=this._clampGridColumns(this.config.gridColumns);return r!==void 0&&(t.gridColumns=r),t}_renderUISpec(e){const t=this._resolveUISpecRegistry(),r=this._buildRenderContext(),n=this.config.renderer?.unknownRenderer??He,o=(a,s)=>Kt(a,s,t,n),i=this.config.renderer?.renderUISpec;return i?i(e,r,{registry:t,unknownRenderer:n,defaultRender:o}):o(e,r)}_buildProductsSpec(e){const t={},r=[];for(let i=0;i<e.length;i++){const a=e[i],s=`product-${i}`;r.push(s),t[s]={type:"ProductCard",props:{product:a,index:i,discountType:this.config.discountType}}}const n={layout:"grid"},o=this._clampGridColumns(this.config.gridColumns);return o!==void 0&&(n.columns=o),t.root={type:"ProductGrid",props:n,children:r},{root:"root",elements:t}}_buildGroupsSpec(e){return{root:"root",elements:{root:{type:"GroupTabs",props:{groups:e}}}}}};function Ci(){return new Xt}var Ti={images:["images","extras.images","imageUrl"],subtitle:["categoryNames","category_names","extras.categoryNames","extras.category_names","description"],promotions:["promotions","extras.promotions"],warranties:["warranties","extras.warranties"],productInfoUrl:["productInfoFormUrl","extras.productInfoFormUrl","documents.0.url","extras.documents.0.url"],discountReason:["discountReason","discount_reason","extras.discountReason","extras.discount_reason"],specialPrice:["isSpecialPrice","extras.isSpecialPrice"],customBadgeFacets:["customBadgeFacets","custom_badge_facets","extras.customBadgeFacets","extras.custom_badge_facets","facetHits","facet_hits","extras.facetHits","extras.facet_hits"],customBadgeText:["customBadgeText","custom_badge_text","customBadge","custom_badge","customLabel","custom_label","bottomLabel","bottom_label","cornerBadge","corner_badge","extras.customBadgeText","extras.custom_badge_text","extras.customBadge","extras.custom_badge","extras.customLabel","extras.custom_label","extras.bottomLabel","extras.bottom_label","extras.cornerBadge","extras.corner_badge"],customBadgeImageUrl:["customBadgeImageUrl","custom_badge_image_url","customLabelImageUrl","custom_label_image_url","bottomLabelImageUrl","bottom_label_image_url","cornerBadgeImageUrl","corner_badge_image_url","extras.customBadgeImageUrl","extras.custom_badge_image_url","extras.customLabelImageUrl","extras.custom_label_image_url","extras.bottomLabelImageUrl","extras.bottom_label_image_url","extras.cornerBadgeImageUrl","extras.corner_badge_image_url"]};function ke(e){return!e||typeof e!="object"||Array.isArray(e)?null:e}function B(e){if(typeof e!="string")return;const t=e.trim();return t.length>0?t:void 0}function Qt(e){if(Array.isArray(e))return e.map(r=>B(r)).filter(r=>!!r);const t=B(e);return t?[t]:[]}function er(e){if(typeof e=="number"&&Number.isFinite(e))return e;if(typeof e=="string"){const t=Number.parseFloat(e);if(Number.isFinite(t))return t}}function xi(e){if(typeof e=="boolean")return e;if(typeof e=="number"&&Number.isFinite(e)){if(e===1)return!0;if(e===0)return!1}if(typeof e=="string"){const t=e.trim().toLowerCase();if(t==="true")return!0;if(t==="false")return!1;if(t==="1")return!0;if(t==="0")return!1}}function tr(...e){for(const t of e){const r=B(t);if(r)return r}}function rr(e){const t=ke(e);if(!t)return null;const r=B(t.sku),n=B(t.name),o=B(t.url);if(!r||!n||!o)return null;const i={sku:r,name:n,url:o};for(const[a,s]of Object.entries(t))s!==void 0&&(i[a]=s);return i}function zi(e){const t=ke(e);if(!t)return null;const r=B(t.name);if(!r)return null;const n=[];if(Array.isArray(t.products))for(const a of t.products){const s=rr(a);s&&n.push(s)}const o={name:r,products:n},i=B(t.highlight);return i&&(o.highlight=i),o}function Se(e,t){const r=typeof t=="string"?t.split("."):[...t];let n=e;for(const o of r){if(n==null)return;if(Array.isArray(n)){const a=Number.parseInt(o,10);if(!Number.isInteger(a))return;n=n[a];continue}const i=ke(n);if(!i)return;n=i[o]}return n}function Ai(e,t){for(const r of t){const n=Se(e,r);if(n!=null)return n}}function Ke(e,t){for(const r of t){const n=Qt(Se(e,r));if(n.length>0)return n}return[]}function fe(e,t){for(const r of t){const n=Se(e,r),o=B(n);if(o)return o;const i=Qt(n);if(i.length>0)return i[0]}}function Pi(e,t){for(const r of t){const n=ke(Se(e,r));if(n)return n}return null}function nr(e,t){return{labels:{customBadgeAlt:e.labels?.customBadgeAlt??"Product badge",imageDot:e.labels?.imageDot??(r=>`Show product image ${r+1}`),previousPromotion:e.labels?.previousPromotion??"Previous promotion",nextPromotion:e.labels?.nextPromotion??"Next promotion"},ctaLabel:e.labels?.cta??t.i18n.ctaLabel,productInfoLabel:e.labels?.productInfo,reviewLabel:e.labels?.review??(r=>`${r} reviews`),specialPriceBadgeAlt:e.labels?.specialPriceBadgeAlt??"",fields:{...Ti,...e.fields},media:e.media??{},warrantyPromotionPattern:e.warrantyPromotionPattern??/warranty/i,specialPricePattern:e.specialPricePattern??/special/i,pricing:e.pricing??t.pricing}}function Ii(e,t,r){return r.media.imageUrlTransform?.(e,t)??e}function $i(e,t){const r=e.trim(),n=t.trim();if(!r||!n)return r;const o=r.toLocaleLowerCase().indexOf(n.toLocaleLowerCase());return o===-1?r:`${r.slice(0,o).trim()} ${r.slice(o+n.length).trim()}`.replace(/\s{2,}/g," ").replace(/(\s[-|/,:]){2,}/g,"$1").replace(/^\s*[-|/,:]\s*/,"").replace(/\s*[-|/,:]\s*$/,"").trim()||r}function Ni(e,t){const r=fe(e,t.fields.customBadgeImageUrl);if(r)return{imageUrl:r,labelText:null};const n=fe(e,t.fields.customBadgeText);if(n)return{imageUrl:t.media.customBadgeImageUrl?.(e,n)??null,labelText:n};const o=Pi(e,t.fields.customBadgeFacets);if(!o)return{imageUrl:null,labelText:null};const i=tr(o["Custom Badge Image"],o["Custom Label Image"],o["Bottom Label Image"],o["Corner Badge Image"],o.custom_badge_image,o.custom_label_image,o.bottom_label_image,o.corner_badge_image,o.customBadgeImage,o.customLabelImage,o.bottomLabelImage,o.cornerBadgeImage);if(i)return{imageUrl:i,labelText:null};const a=tr(o["Custom Badge"],o["Custom Label"],o["Bottom Label"],o["Corner Badge"],o.custom_badge,o.custom_label,o.bottom_label,o.corner_badge,o.customBadge,o.customLabel,o.bottomLabel,o.cornerBadge);return a?{imageUrl:t.media.customBadgeImageUrl?.(e,a)??null,labelText:a}:{imageUrl:null,labelText:null}}function V(e,t,r){const n=document.createElement(e);return n.className=t,n.textContent=r,n}function Oi(e,t,r){const n=document.createElement("div");n.className="gengage-simrel-default-card-image";let o=null;return r.length>0&&(o=document.createElement("img"),o.src=r[0],o.alt=t,o.loading="lazy",Bt(o),n.appendChild(o)),r.length>1&&o&&(n.addEventListener("mousemove",i=>{const a=n.getBoundingClientRect(),s=Math.min(Math.floor((i.clientX-a.left)/a.width*r.length),r.length-1);o?.dataset.hoverIdx!==String(s)&&(o.dataset.hoverIdx=String(s),o.src=r[s],e.querySelectorAll(".gengage-simrel-default-card-image-dot").forEach((c,u)=>c.classList.toggle("is-active",u===s)))}),n.addEventListener("mouseleave",()=>{o&&(delete o.dataset.hoverIdx,o.src=r[0],e.querySelectorAll(".gengage-simrel-default-card-image-dot").forEach((i,a)=>i.classList.toggle("is-active",a===0)))})),n}function Li(e,t){if(!e.imageUrl&&!e.labelText)return null;const r=document.createElement("div");if(r.className="gengage-simrel-default-card-custom-badge",e.imageUrl&&_e(e.imageUrl)){const n=document.createElement("img");return n.src=e.imageUrl,n.className="gengage-simrel-default-card-custom-badge-icon",n.alt=t,e.labelText&&n.addEventListener("error",()=>{r.innerHTML="",r.appendChild(V("span","gengage-simrel-default-card-custom-badge-text",e.labelText))},{once:!0}),r.appendChild(n),r}return e.labelText&&r.appendChild(V("span","gengage-simrel-default-card-custom-badge-text",e.labelText)),r}function Ri(e,t,r){if(e.length<=1||!t)return null;const n=document.createElement("div");return n.className="gengage-simrel-default-card-image-dots",e.forEach((o,i)=>{const a=document.createElement("button");a.className=`gengage-simrel-default-card-image-dot${i===0?" is-active":""}`,a.type="button",a.setAttribute("aria-label",r.labels.imageDot(i)),a.addEventListener("click",s=>{s.preventDefault(),s.stopPropagation(),t.dataset.hoverIdx=String(i),t.style.opacity="0",window.setTimeout(()=>{t.src=o,t.style.opacity="1"},50),n.querySelectorAll(".gengage-simrel-default-card-image-dot").forEach((c,u)=>c.classList.toggle("is-active",u===i))}),n.appendChild(a)}),n}function Zi(e,t,r,n){const o=e.reviewCount??0,i=e.rating??0,a=document.createElement("div");a.className="gengage-simrel-default-card-rating",o<=0&&!r.productInfoLabel&&a.classList.add("is-placeholder");const s=document.createElement("div");s.className="gengage-simrel-default-card-rating-left";const c=document.createElement("div");c.className="gengage-simrel-default-card-stars";const u=Math.max(0,Math.min(5,Math.round(i)));for(let d=1;d<=5;d+=1){const f=document.createElement("span");f.className=`gengage-simrel-default-card-star${d<=u?" is-filled":""}`,f.textContent="★",c.appendChild(f)}s.appendChild(c);const l=document.createElement("button");if(l.className="gengage-simrel-default-card-review-link",l.type="button",l.textContent=r.reviewLabel(o),l.addEventListener("click",d=>{d.preventDefault(),d.stopPropagation(),n(e)}),s.appendChild(l),a.appendChild(s),r.productInfoLabel){const d=document.createElement(t&&pt(t)?"a":"span");d.className="gengage-simrel-default-card-product-info-link",d.textContent=r.productInfoLabel,d instanceof HTMLAnchorElement&&(d.href=t,d.target="_blank",d.rel="noopener noreferrer",d.addEventListener("click",f=>f.stopPropagation())),a.appendChild(d)}return a}function Di(e){const t=document.createElement("div");t.className="gengage-simrel-default-card-warranty-row";const r=e.length>0?e:[""];for(const n of r){const o=document.createElement("div");o.className=`gengage-simrel-default-card-warranty-badge${n?"":" is-placeholder"}`,n||o.setAttribute("aria-hidden","true"),o.textContent=n,t.appendChild(o)}return t}function Ui(e,t){const r=document.createElement("div");r.className="gengage-simrel-default-card-feature-slot";const n=document.createElement("div");if(n.className="gengage-simrel-default-card-feature-swiper",e.length===0&&n.classList.add("is-placeholder"),n.dataset.current="0",e.length>0){if(t.media.promotionIconUrl&&pt(t.media.promotionIconUrl)){const a=document.createElement("img");a.src=t.media.promotionIconUrl,a.className="gengage-simrel-default-card-feature-icon",a.alt="",n.appendChild(a)}const o=document.createElement("div");o.className="gengage-simrel-default-card-feature-content";const i=V("span","gengage-simrel-default-card-feature-text",e[0]);if(o.appendChild(i),n.appendChild(o),e.length>1){const a=document.createElement("div");a.className="gengage-simrel-default-card-feature-arrows";const s=(l,d)=>{const f=d==="next"?"slide-out-left":"slide-out-right",m=d==="next"?"prepare-from-right":"prepare-from-left";i.classList.add(f),window.setTimeout(()=>{i.classList.remove(f),i.classList.add(m),i.textContent=e[l]??"",n.dataset.current=String(l),requestAnimationFrame(()=>requestAnimationFrame(()=>i.classList.remove(m)))},250)},c=document.createElement("button");c.className="gengage-simrel-default-card-feature-prev",c.type="button",c.textContent="‹",c.setAttribute("aria-label",t.labels.previousPromotion),c.addEventListener("click",l=>{l.preventDefault(),l.stopPropagation(),s((Number.parseInt(n.dataset.current??"0",10)-1+e.length)%e.length,"prev")});const u=document.createElement("button");u.className="gengage-simrel-default-card-feature-next",u.type="button",u.textContent="›",u.setAttribute("aria-label",t.labels.nextPromotion),u.addEventListener("click",l=>{l.preventDefault(),l.stopPropagation(),s((Number.parseInt(n.dataset.current??"0",10)+1)%e.length,"next")}),a.appendChild(c),a.appendChild(u),n.appendChild(a)}}return r.appendChild(n),r}function ji(e,t,r,n,o){const i=er(e.originalPrice),a=er(e.price),s=a!==void 0&&i!==void 0&&a>0&&i>0&&a<i,c=document.createElement("div");c.className="gengage-simrel-default-card-price-action";const u=document.createElement("div");if(u.className="gengage-simrel-default-card-price",s){const l=o==="inline"?"gengage-simrel-default-card-price-old gengage-simrel-default-card-price-old--inline":"gengage-simrel-default-card-price-old";u.appendChild(V("span",l,de(String(i),r.pricing)));const d=document.createElement("div");if(d.className="gengage-simrel-default-card-price-current-row",d.appendChild(V("span","gengage-simrel-default-card-price-current",de(String(a),r.pricing))),t&&r.media.specialPriceBadgeUrl&&_e(r.media.specialPriceBadgeUrl)){const f=document.createElement("img");f.src=r.media.specialPriceBadgeUrl,f.className="gengage-simrel-default-card-special-price-badge",f.alt=r.specialPriceBadgeAlt,d.appendChild(f)}u.appendChild(d)}else{const l=i??a;u.appendChild(V("span","gengage-simrel-default-card-price-current",l!==void 0?de(String(l),r.pricing):""))}if(c.appendChild(u),r.ctaLabel){const l=document.createElement("button");l.className="gengage-simrel-default-card-cta",l.dataset.gengagePart="simrel-product-card-cta",l.type="button",l.dataset.sku=e.sku,l.textContent=r.ctaLabel,l.addEventListener("click",d=>{d.preventDefault(),d.stopPropagation(),n(e)}),c.appendChild(l)}return c}function Mi(e,t){return e==="strike-through"||e==="badge"||e==="inline"?e:t.discountType}function or(e){const{product:t,config:r}=e,n=Ke(t,r.fields.images).map(S=>Ii(S,t,r)).filter(_e),o=Ke(t,r.fields.promotions),i=o.filter(S=>r.warrantyPromotionPattern.test(S)),a=o.filter(S=>!r.warrantyPromotionPattern.test(S)),s=fe(t,r.fields.subtitle)??"",c=fe(t,r.fields.discountReason)??"",u=xi(Ai(t,r.fields.specialPrice))===!0||r.specialPricePattern.test(c),l=t.brand??"",d=$i(l&&t.name.startsWith(`${l} `)?t.name.slice(l.length+1):t.name,s),f=document.createElement("article");f.className="gengage-simrel-default-card gengage-simrel-default-scope gengage-simrel-card gds-card gds-product-card gds-card-interactive",f.dataset.gengagePart="simrel-product-card",f.setAttribute("role","listitem"),f.setAttribute("tabindex","0"),f.setAttribute("aria-label",d),f.dataset.sku=t.sku,f.dataset.index=String(e.index);const m=Oi(f,d,n);f.appendChild(m);const y=m.querySelector("img"),p=document.createElement("div");p.className="gengage-simrel-default-card-meta-row";const h=Li(Ni(t,r),r.labels.customBadgeAlt);h&&p.appendChild(h);const k=Ri(n,y,r);k&&p.appendChild(k),f.appendChild(p);const N=document.createElement("div");return N.className="gengage-simrel-default-card-info",N.dataset.gengagePart="simrel-product-card-body",N.appendChild(V("h3","gengage-simrel-default-card-title",d)),s&&N.appendChild(V("p","gengage-simrel-default-card-subtitle",s)),N.appendChild(Zi(t,fe(t,r.fields.productInfoUrl),r,e.context.onClick)),N.appendChild(Di([...Ke(t,r.fields.warranties),...i])),N.appendChild(Ui(a,r)),f.appendChild(N),f.appendChild(ji(t,u,r,e.context.onClick,e.context.discountType)),f.addEventListener("click",S=>{(S.target instanceof HTMLElement?S.target:null)?.closest("button, a")||e.context.onClick(t)}),f.addEventListener("keydown",S=>{if(S.key!=="Enter"&&S.key!==" ")return;const v=S.target instanceof HTMLElement?S.target:null;v&&v!==f||(S.preventDefault(),e.context.onClick(t))}),f}function Fi(e,t){const r=rr(e.element.props?.product??e.element.props);if(!r)return null;const n=e.element.props?.index,o=typeof n=="number"&&Number.isFinite(n)?n:0,i=Mi(e.element.props?.discountType,e.context);return or({product:r,index:o,context:i===e.context.discountType?e.context:{...e.context,...i!==void 0?{discountType:i}:{}},config:nr(t,e.context)})}function Bi(e){const t=document.createElement("div");t.className="gengage-simrel-grid gengage-simrel-default-grid gengage-simrel-default-scope",t.setAttribute("role","list");const r=e.element.props?.columns;let n;typeof r=="number"&&Number.isFinite(r)&&r>0?n=Math.floor(r):typeof e.context.gridColumns=="number"&&Number.isFinite(e.context.gridColumns)&&e.context.gridColumns>0&&(n=Math.floor(e.context.gridColumns)),n!==void 0&&t.style.setProperty("--gengage-simrel-columns",String(n));for(const o of e.element.children??[]){const i=e.renderElement(o);i&&t.appendChild(i)}if(t.children.length===0){const o=document.createElement("div");o.className="gengage-simrel-empty",o.textContent=e.context.i18n.emptyStateMessage,t.appendChild(o)}return t}function Gi(e,t){const r=e.element.props?.groups;if(!Array.isArray(r))return null;const n=r.map(zi).filter(c=>!!c),o=e.element.props?.columns,i=nr(t,e.context),a=(c,u)=>or({product:c,index:u,context:e.context,config:i}),s=Jt({groups:n,onClick:e.context.onClick,onAddToCart:e.context.onAddToCart,renderCardElement:a,i18n:e.context.i18n,...e.context.discountType!==void 0?{discountType:e.context.discountType}:{},...e.context.onGroupingActivate!==void 0?{onGroupingActivate:e.context.onGroupingActivate}:{},...typeof o=="number"&&Number.isFinite(o)&&o>0?{columns:Math.floor(o)}:e.context.gridColumns!==void 0?{columns:e.context.gridColumns}:{}});return s.classList.add("gengage-simrel-default-groups","gengage-simrel-default-scope"),s}function qi(e={}){return{registry:{ProductGrid:t=>Bi(t),ProductCard:t=>Fi(t,e),GroupTabs:t=>Gi(t,e)}}}var ir;function g(e,t,r){function n(s,c){if(s._zod||Object.defineProperty(s,"_zod",{value:{def:c,constr:a,traits:new Set},enumerable:!1}),s._zod.traits.has(e))return;s._zod.traits.add(e),t(s,c);const u=a.prototype,l=Object.keys(u);for(let d=0;d<l.length;d++){const f=l[d];f in s||(s[f]=u[f].bind(s))}}const o=r?.Parent??Object;class i extends o{}Object.defineProperty(i,"name",{value:e});function a(s){var c;const u=r?.Parent?new i:this;n(u,s),(c=u._zod).deferred??(c.deferred=[]);for(const l of u._zod.deferred)l();return u}return Object.defineProperty(a,"init",{value:n}),Object.defineProperty(a,Symbol.hasInstance,{value:s=>r?.Parent&&s instanceof r.Parent?!0:s?._zod?.traits?.has(e)}),Object.defineProperty(a,"name",{value:e}),a}var ne=class extends Error{constructor(){super("Encountered Promise during synchronous parse. Use .parseAsync() instead.")}},ar=class extends Error{constructor(e){super(`Encountered unidirectional transform during encode: ${e}`),this.name="ZodEncodeError"}};(ir=globalThis).__zod_globalConfig??(ir.__zod_globalConfig={});var Ee=globalThis.__zod_globalConfig;function Q(e){return e&&Object.assign(Ee,e),Ee}function sr(e){const t=Object.values(e).filter(r=>typeof r=="number");return Object.entries(e).filter(([r,n])=>t.indexOf(+r)===-1).map(([r,n])=>n)}function Ye(e,t){return typeof t=="bigint"?t.toString():t}function Xe(e){return{get value(){{const t=e();return Object.defineProperty(this,"value",{value:t}),t}throw new Error("cached value already set")}}}function Qe(e){return e==null}function et(e){const t=e.startsWith("^")?1:0,r=e.endsWith("$")?e.length-1:e.length;return e.slice(t,r)}function Ji(e,t){const r=e/t,n=Math.round(r),o=Number.EPSILON*Math.max(Math.abs(r),1);return Math.abs(r-n)<o?0:r-n}var cr=Symbol("evaluating");function E(e,t,r){let n;Object.defineProperty(e,t,{get(){if(n!==cr)return n===void 0&&(n=cr,n=r()),n},set(o){Object.defineProperty(e,t,{value:o})},configurable:!0})}function ee(e,t,r){Object.defineProperty(e,t,{value:r,writable:!0,enumerable:!0,configurable:!0})}function W(...e){const t={};for(const r of e)Object.assign(t,Object.getOwnPropertyDescriptors(r));return Object.defineProperties({},t)}function ur(e){return JSON.stringify(e)}function Vi(e){return e.toLowerCase().trim().replace(/[^\w\s-]/g,"").replace(/[\s_-]+/g,"-").replace(/^-+|-+$/g,"")}var lr="captureStackTrace"in Error?Error.captureStackTrace:(...e)=>{};function Ce(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}var Wi=Xe(()=>{if(Ee.jitless||typeof navigator<"u"&&navigator?.userAgent?.includes("Cloudflare"))return!1;try{return new Function(""),!0}catch{return!1}});function pe(e){if(Ce(e)===!1)return!1;const t=e.constructor;if(t===void 0||typeof t!="function")return!0;const r=t.prototype;return!(Ce(r)===!1||Object.prototype.hasOwnProperty.call(r,"isPrototypeOf")===!1)}function dr(e){return pe(e)?{...e}:Array.isArray(e)?[...e]:e instanceof Map?new Map(e):e instanceof Set?new Set(e):e}var Hi=new Set(["string","number","symbol"]);function Te(e){return e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function H(e,t,r){const n=new e._zod.constr(t??e._zod.def);return(!t||r?.parent)&&(n._zod.parent=e),n}function _(e){const t=e;if(!t)return{};if(typeof t=="string")return{error:()=>t};if(t?.message!==void 0){if(t?.error!==void 0)throw new Error("Cannot specify both `message` and `error` params");t.error=t.message}return delete t.message,typeof t.error=="string"?{...t,error:()=>t.error}:t}function Ki(e){return Object.keys(e).filter(t=>e[t]._zod.optin==="optional"&&e[t]._zod.optout==="optional")}var Yi={safeint:[Number.MIN_SAFE_INTEGER,Number.MAX_SAFE_INTEGER],int32:[-2147483648,2147483647],uint32:[0,4294967295],float32:[-34028234663852886e22,34028234663852886e22],float64:[-Number.MAX_VALUE,Number.MAX_VALUE]};function Xi(e,t){const r=e._zod.def,n=r.checks;if(n&&n.length>0)throw new Error(".pick() cannot be used on object schemas containing refinements");return H(e,W(e._zod.def,{get shape(){const o={};for(const i in t){if(!(i in r.shape))throw new Error(`Unrecognized key: "${i}"`);t[i]&&(o[i]=r.shape[i])}return ee(this,"shape",o),o},checks:[]}))}function Qi(e,t){const r=e._zod.def,n=r.checks;if(n&&n.length>0)throw new Error(".omit() cannot be used on object schemas containing refinements");return H(e,W(e._zod.def,{get shape(){const o={...e._zod.def.shape};for(const i in t){if(!(i in r.shape))throw new Error(`Unrecognized key: "${i}"`);t[i]&&delete o[i]}return ee(this,"shape",o),o},checks:[]}))}function ea(e,t){if(!pe(t))throw new Error("Invalid input to extend: expected a plain object");const r=e._zod.def.checks;if(r&&r.length>0){const n=e._zod.def.shape;for(const o in t)if(Object.getOwnPropertyDescriptor(n,o)!==void 0)throw new Error("Cannot overwrite keys on object schemas containing refinements. Use `.safeExtend()` instead.")}return H(e,W(e._zod.def,{get shape(){const n={...e._zod.def.shape,...t};return ee(this,"shape",n),n}}))}function ta(e,t){if(!pe(t))throw new Error("Invalid input to safeExtend: expected a plain object");return H(e,W(e._zod.def,{get shape(){const r={...e._zod.def.shape,...t};return ee(this,"shape",r),r}}))}function ra(e,t){if(e._zod.def.checks?.length)throw new Error(".merge() cannot be used on object schemas containing refinements. Use .safeExtend() instead.");return H(e,W(e._zod.def,{get shape(){const r={...e._zod.def.shape,...t._zod.def.shape};return ee(this,"shape",r),r},get catchall(){return t._zod.def.catchall},checks:t._zod.def.checks??[]}))}function na(e,t,r){const n=t._zod.def.checks;if(n&&n.length>0)throw new Error(".partial() cannot be used on object schemas containing refinements");return H(t,W(t._zod.def,{get shape(){const o=t._zod.def.shape,i={...o};if(r)for(const a in r){if(!(a in o))throw new Error(`Unrecognized key: "${a}"`);r[a]&&(i[a]=e?new e({type:"optional",innerType:o[a]}):o[a])}else for(const a in o)i[a]=e?new e({type:"optional",innerType:o[a]}):o[a];return ee(this,"shape",i),i},checks:[]}))}function oa(e,t,r){return H(t,W(t._zod.def,{get shape(){const n=t._zod.def.shape,o={...n};if(r)for(const i in r){if(!(i in o))throw new Error(`Unrecognized key: "${i}"`);r[i]&&(o[i]=new e({type:"nonoptional",innerType:n[i]}))}else for(const i in n)o[i]=new e({type:"nonoptional",innerType:n[i]});return ee(this,"shape",o),o}}))}function oe(e,t=0){if(e.aborted===!0)return!0;for(let r=t;r<e.issues.length;r++)if(e.issues[r]?.continue!==!0)return!0;return!1}function ia(e,t=0){if(e.aborted===!0)return!0;for(let r=t;r<e.issues.length;r++)if(e.issues[r]?.continue===!1)return!0;return!1}function fr(e,t){return t.map(r=>{var n;return(n=r).path??(n.path=[]),r.path.unshift(e),r})}function xe(e){return typeof e=="string"?e:e?.message}function te(e,t,r){const n=e.message?e.message:xe(e.inst?._zod.def?.error?.(e))??xe(t?.error?.(e))??xe(r.customError?.(e))??xe(r.localeError?.(e))??"Invalid input",{inst:o,continue:i,input:a,...s}=e;return s.path??(s.path=[]),s.message=n,t?.reportInput&&(s.input=a),s}function tt(e){return Array.isArray(e)?"array":typeof e=="string"?"string":"unknown"}function ge(...e){const[t,r,n]=e;return typeof t=="string"?{message:t,code:"custom",input:r,inst:n}:{...t}}var pr=(e,t)=>{e.name="$ZodError",Object.defineProperty(e,"_zod",{value:e._zod,enumerable:!1}),Object.defineProperty(e,"issues",{value:t,enumerable:!1}),e.message=JSON.stringify(t,Ye,2),Object.defineProperty(e,"toString",{value:()=>e.message,enumerable:!1})},gr=g("$ZodError",pr),mr=g("$ZodError",pr,{Parent:Error});function aa(e,t=r=>r.message){const r={},n=[];for(const o of e.issues)o.path.length>0?(r[o.path[0]]=r[o.path[0]]||[],r[o.path[0]].push(t(o))):n.push(t(o));return{formErrors:n,fieldErrors:r}}function sa(e,t=r=>r.message){const r={_errors:[]},n=(o,i=[])=>{for(const a of o.issues)if(a.code==="invalid_union"&&a.errors.length)a.errors.map(s=>n({issues:s},[...i,...a.path]));else if(a.code==="invalid_key")n({issues:a.issues},[...i,...a.path]);else if(a.code==="invalid_element")n({issues:a.issues},[...i,...a.path]);else{const s=[...i,...a.path];if(s.length===0)r._errors.push(t(a));else{let c=r,u=0;for(;u<s.length;){const l=s[u];u!==s.length-1?c[l]=c[l]||{_errors:[]}:(c[l]=c[l]||{_errors:[]},c[l]._errors.push(t(a))),c=c[l],u++}}}};return n(e),r}var rt=e=>(t,r,n,o)=>{const i=n?{...n,async:!1}:{async:!1},a=t._zod.run({value:r,issues:[]},i);if(a instanceof Promise)throw new ne;if(a.issues.length){const s=new(o?.Err??e)(a.issues.map(c=>te(c,i,Q())));throw lr(s,o?.callee),s}return a.value},nt=e=>async(t,r,n,o)=>{const i=n?{...n,async:!0}:{async:!0};let a=t._zod.run({value:r,issues:[]},i);if(a instanceof Promise&&(a=await a),a.issues.length){const s=new(o?.Err??e)(a.issues.map(c=>te(c,i,Q())));throw lr(s,o?.callee),s}return a.value},ze=e=>(t,r,n)=>{const o=n?{...n,async:!1}:{async:!1},i=t._zod.run({value:r,issues:[]},o);if(i instanceof Promise)throw new ne;return i.issues.length?{success:!1,error:new(e??gr)(i.issues.map(a=>te(a,o,Q())))}:{success:!0,data:i.value}},ca=ze(mr),Ae=e=>async(t,r,n)=>{const o=n?{...n,async:!0}:{async:!0};let i=t._zod.run({value:r,issues:[]},o);return i instanceof Promise&&(i=await i),i.issues.length?{success:!1,error:new e(i.issues.map(a=>te(a,o,Q())))}:{success:!0,data:i.value}},ua=Ae(mr),la=e=>(t,r,n)=>{const o=n?{...n,direction:"backward"}:{direction:"backward"};return rt(e)(t,r,o)},da=e=>(t,r,n)=>rt(e)(t,r,n),fa=e=>async(t,r,n)=>{const o=n?{...n,direction:"backward"}:{direction:"backward"};return nt(e)(t,r,o)},pa=e=>async(t,r,n)=>nt(e)(t,r,n),ga=e=>(t,r,n)=>{const o=n?{...n,direction:"backward"}:{direction:"backward"};return ze(e)(t,r,o)},ma=e=>(t,r,n)=>ze(e)(t,r,n),ha=e=>async(t,r,n)=>{const o=n?{...n,direction:"backward"}:{direction:"backward"};return Ae(e)(t,r,o)},ya=e=>async(t,r,n)=>Ae(e)(t,r,n),_a=/^[cC][0-9a-z]{6,}$/,va=/^[0-9a-z]+$/,ba=/^[0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{26}$/,wa=/^[0-9a-vA-V]{20}$/,ka=/^[A-Za-z0-9]{27}$/,Sa=/^[a-zA-Z0-9_-]{21}$/,Ea=/^P(?:(\d+W)|(?!.*W)(?=\d|T\d)(\d+Y)?(\d+M)?(\d+D)?(T(?=\d)(\d+H)?(\d+M)?(\d+([.,]\d+)?S)?)?)$/,Ca=/^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$/,hr=e=>e?new RegExp(`^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-${e}[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$`):/^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$/,Ta=/^(?!\.)(?!.*\.\.)([A-Za-z0-9_'+\-\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\-]*\.)+[A-Za-z]{2,}$/,xa="^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$";function za(){return new RegExp(xa,"u")}var Aa=/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$/,Pa=/^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:))$/,Ia=/^((25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\/([0-9]|[1-2][0-9]|3[0-2])$/,$a=/^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|::|([0-9a-fA-F]{1,4})?::([0-9a-fA-F]{1,4}:?){0,6})\/(12[0-8]|1[01][0-9]|[1-9]?[0-9])$/,Na=/^$|^(?:[0-9a-zA-Z+/]{4})*(?:(?:[0-9a-zA-Z+/]{2}==)|(?:[0-9a-zA-Z+/]{3}=))?$/,yr=/^[A-Za-z0-9_-]*$/,Oa=/^https?$/,La=/^\+[1-9]\d{6,14}$/,_r="(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))",Ra=new RegExp(`^${_r}$`);function vr(e){const t="(?:[01]\\d|2[0-3]):[0-5]\\d";return typeof e.precision=="number"?e.precision===-1?`${t}`:e.precision===0?`${t}:[0-5]\\d`:`${t}:[0-5]\\d\\.\\d{${e.precision}}`:`${t}(?::[0-5]\\d(?:\\.\\d+)?)?`}function Za(e){return new RegExp(`^${vr(e)}$`)}function Da(e){const t=vr({precision:e.precision}),r=["Z"];e.local&&r.push(""),e.offset&&r.push("([+-](?:[01]\\d|2[0-3]):[0-5]\\d)");const n=`${t}(?:${r.join("|")})`;return new RegExp(`^${_r}T(?:${n})$`)}var Ua=e=>{const t=e?`[\\s\\S]{${e?.minimum??0},${e?.maximum??""}}`:"[\\s\\S]*";return new RegExp(`^${t}$`)},ja=/^-?\d+$/,Ma=/^-?\d+(?:\.\d+)?$/,Fa=/^[^A-Z]*$/,Ba=/^[^a-z]*$/,O=g("$ZodCheck",(e,t)=>{var r;e._zod??(e._zod={}),e._zod.def=t,(r=e._zod).onattach??(r.onattach=[])}),br={number:"number",bigint:"bigint",object:"date"},wr=g("$ZodCheckLessThan",(e,t)=>{O.init(e,t);const r=br[typeof t.value];e._zod.onattach.push(n=>{const o=n._zod.bag,i=(t.inclusive?o.maximum:o.exclusiveMaximum)??Number.POSITIVE_INFINITY;t.value<i&&(t.inclusive?o.maximum=t.value:o.exclusiveMaximum=t.value)}),e._zod.check=n=>{(t.inclusive?n.value<=t.value:n.value<t.value)||n.issues.push({origin:r,code:"too_big",maximum:typeof t.value=="object"?t.value.getTime():t.value,input:n.value,inclusive:t.inclusive,inst:e,continue:!t.abort})}}),kr=g("$ZodCheckGreaterThan",(e,t)=>{O.init(e,t);const r=br[typeof t.value];e._zod.onattach.push(n=>{const o=n._zod.bag,i=(t.inclusive?o.minimum:o.exclusiveMinimum)??Number.NEGATIVE_INFINITY;t.value>i&&(t.inclusive?o.minimum=t.value:o.exclusiveMinimum=t.value)}),e._zod.check=n=>{(t.inclusive?n.value>=t.value:n.value>t.value)||n.issues.push({origin:r,code:"too_small",minimum:typeof t.value=="object"?t.value.getTime():t.value,input:n.value,inclusive:t.inclusive,inst:e,continue:!t.abort})}}),Ga=g("$ZodCheckMultipleOf",(e,t)=>{O.init(e,t),e._zod.onattach.push(r=>{var n;(n=r._zod.bag).multipleOf??(n.multipleOf=t.value)}),e._zod.check=r=>{if(typeof r.value!=typeof t.value)throw new Error("Cannot mix number and bigint in multiple_of check.");(typeof r.value=="bigint"?r.value%t.value===BigInt(0):Ji(r.value,t.value)===0)||r.issues.push({origin:typeof r.value,code:"not_multiple_of",divisor:t.value,input:r.value,inst:e,continue:!t.abort})}}),qa=g("$ZodCheckNumberFormat",(e,t)=>{O.init(e,t),t.format=t.format||"float64";const r=t.format?.includes("int"),n=r?"int":"number",[o,i]=Yi[t.format];e._zod.onattach.push(a=>{const s=a._zod.bag;s.format=t.format,s.minimum=o,s.maximum=i,r&&(s.pattern=ja)}),e._zod.check=a=>{const s=a.value;if(r){if(!Number.isInteger(s)){a.issues.push({expected:n,format:t.format,code:"invalid_type",continue:!1,input:s,inst:e});return}if(!Number.isSafeInteger(s)){s>0?a.issues.push({input:s,code:"too_big",maximum:Number.MAX_SAFE_INTEGER,note:"Integers must be within the safe integer range.",inst:e,origin:n,inclusive:!0,continue:!t.abort}):a.issues.push({input:s,code:"too_small",minimum:Number.MIN_SAFE_INTEGER,note:"Integers must be within the safe integer range.",inst:e,origin:n,inclusive:!0,continue:!t.abort});return}}s<o&&a.issues.push({origin:"number",input:s,code:"too_small",minimum:o,inclusive:!0,inst:e,continue:!t.abort}),s>i&&a.issues.push({origin:"number",input:s,code:"too_big",maximum:i,inclusive:!0,inst:e,continue:!t.abort})}}),Ja=g("$ZodCheckMaxLength",(e,t)=>{var r;O.init(e,t),(r=e._zod.def).when??(r.when=n=>{const o=n.value;return!Qe(o)&&o.length!==void 0}),e._zod.onattach.push(n=>{const o=n._zod.bag.maximum??Number.POSITIVE_INFINITY;t.maximum<o&&(n._zod.bag.maximum=t.maximum)}),e._zod.check=n=>{const o=n.value;if(o.length<=t.maximum)return;const i=tt(o);n.issues.push({origin:i,code:"too_big",maximum:t.maximum,inclusive:!0,input:o,inst:e,continue:!t.abort})}}),Va=g("$ZodCheckMinLength",(e,t)=>{var r;O.init(e,t),(r=e._zod.def).when??(r.when=n=>{const o=n.value;return!Qe(o)&&o.length!==void 0}),e._zod.onattach.push(n=>{const o=n._zod.bag.minimum??Number.NEGATIVE_INFINITY;t.minimum>o&&(n._zod.bag.minimum=t.minimum)}),e._zod.check=n=>{const o=n.value;if(o.length>=t.minimum)return;const i=tt(o);n.issues.push({origin:i,code:"too_small",minimum:t.minimum,inclusive:!0,input:o,inst:e,continue:!t.abort})}}),Wa=g("$ZodCheckLengthEquals",(e,t)=>{var r;O.init(e,t),(r=e._zod.def).when??(r.when=n=>{const o=n.value;return!Qe(o)&&o.length!==void 0}),e._zod.onattach.push(n=>{const o=n._zod.bag;o.minimum=t.length,o.maximum=t.length,o.length=t.length}),e._zod.check=n=>{const o=n.value,i=o.length;if(i===t.length)return;const a=tt(o),s=i>t.length;n.issues.push({origin:a,...s?{code:"too_big",maximum:t.length}:{code:"too_small",minimum:t.length},inclusive:!0,exact:!0,input:n.value,inst:e,continue:!t.abort})}}),Pe=g("$ZodCheckStringFormat",(e,t)=>{var r,n;O.init(e,t),e._zod.onattach.push(o=>{const i=o._zod.bag;i.format=t.format,t.pattern&&(i.patterns??(i.patterns=new Set),i.patterns.add(t.pattern))}),t.pattern?(r=e._zod).check??(r.check=o=>{t.pattern.lastIndex=0,!t.pattern.test(o.value)&&o.issues.push({origin:"string",code:"invalid_format",format:t.format,input:o.value,...t.pattern?{pattern:t.pattern.toString()}:{},inst:e,continue:!t.abort})}):(n=e._zod).check??(n.check=()=>{})}),Ha=g("$ZodCheckRegex",(e,t)=>{Pe.init(e,t),e._zod.check=r=>{t.pattern.lastIndex=0,!t.pattern.test(r.value)&&r.issues.push({origin:"string",code:"invalid_format",format:"regex",input:r.value,pattern:t.pattern.toString(),inst:e,continue:!t.abort})}}),Ka=g("$ZodCheckLowerCase",(e,t)=>{t.pattern??(t.pattern=Fa),Pe.init(e,t)}),Ya=g("$ZodCheckUpperCase",(e,t)=>{t.pattern??(t.pattern=Ba),Pe.init(e,t)}),Xa=g("$ZodCheckIncludes",(e,t)=>{O.init(e,t);const r=Te(t.includes),n=new RegExp(typeof t.position=="number"?`^.{${t.position}}${r}`:r);t.pattern=n,e._zod.onattach.push(o=>{const i=o._zod.bag;i.patterns??(i.patterns=new Set),i.patterns.add(n)}),e._zod.check=o=>{o.value.includes(t.includes,t.position)||o.issues.push({origin:"string",code:"invalid_format",format:"includes",includes:t.includes,input:o.value,inst:e,continue:!t.abort})}}),Qa=g("$ZodCheckStartsWith",(e,t)=>{O.init(e,t);const r=new RegExp(`^${Te(t.prefix)}.*`);t.pattern??(t.pattern=r),e._zod.onattach.push(n=>{const o=n._zod.bag;o.patterns??(o.patterns=new Set),o.patterns.add(r)}),e._zod.check=n=>{n.value.startsWith(t.prefix)||n.issues.push({origin:"string",code:"invalid_format",format:"starts_with",prefix:t.prefix,input:n.value,inst:e,continue:!t.abort})}}),es=g("$ZodCheckEndsWith",(e,t)=>{O.init(e,t);const r=new RegExp(`.*${Te(t.suffix)}$`);t.pattern??(t.pattern=r),e._zod.onattach.push(n=>{const o=n._zod.bag;o.patterns??(o.patterns=new Set),o.patterns.add(r)}),e._zod.check=n=>{n.value.endsWith(t.suffix)||n.issues.push({origin:"string",code:"invalid_format",format:"ends_with",suffix:t.suffix,input:n.value,inst:e,continue:!t.abort})}}),ts=g("$ZodCheckOverwrite",(e,t)=>{O.init(e,t),e._zod.check=r=>{r.value=t.tx(r.value)}}),rs=class{constructor(e=[]){this.content=[],this.indent=0,this&&(this.args=e)}indented(e){this.indent+=1,e(this),this.indent-=1}write(e){if(typeof e=="function"){e(this,{execution:"sync"}),e(this,{execution:"async"});return}const t=e.split(`
|
|
49
49
|
`).filter(o=>o),r=Math.min(...t.map(o=>o.length-o.trimStart().length)),n=t.map(o=>o.slice(r)).map(o=>" ".repeat(this.indent*2)+o);for(const o of n)this.content.push(o)}compile(){const e=Function,t=this?.args,r=[...(this?.content??[""]).map(n=>` ${n}`)];return new e(...t,r.join(`
|
|
50
|
-
`))}},
|
|
50
|
+
`))}},ns={major:4,minor:4,patch:3},x=g("$ZodType",(e,t)=>{var r;e??(e={}),e._zod.def=t,e._zod.bag=e._zod.bag||{},e._zod.version=ns;const n=[...e._zod.def.checks??[]];e._zod.traits.has("$ZodCheck")&&n.unshift(e);for(const o of n)for(const i of o._zod.onattach)i(e);if(n.length===0)(r=e._zod).deferred??(r.deferred=[]),e._zod.deferred?.push(()=>{e._zod.run=e._zod.parse});else{const o=(a,s,c)=>{let u=oe(a),l;for(const d of s){if(d._zod.def.when){if(ia(a)||!d._zod.def.when(a))continue}else if(u)continue;const f=a.issues.length,m=d._zod.check(a);if(m instanceof Promise&&c?.async===!1)throw new ne;if(l||m instanceof Promise)l=(l??Promise.resolve()).then(async()=>{await m,a.issues.length!==f&&(u||(u=oe(a,f)))});else{if(a.issues.length===f)continue;u||(u=oe(a,f))}}return l?l.then(()=>a):a},i=(a,s,c)=>{if(oe(a))return a.aborted=!0,a;const u=o(s,n,c);if(u instanceof Promise){if(c.async===!1)throw new ne;return u.then(l=>e._zod.parse(l,c))}return e._zod.parse(u,c)};e._zod.run=(a,s)=>{if(s.skipChecks)return e._zod.parse(a,s);if(s.direction==="backward"){const u=e._zod.parse({value:a.value,issues:[]},{...s,skipChecks:!0});return u instanceof Promise?u.then(l=>i(l,a,s)):i(u,a,s)}const c=e._zod.parse(a,s);if(c instanceof Promise){if(s.async===!1)throw new ne;return c.then(u=>o(u,n,s))}return o(c,n,s)}}E(e,"~standard",()=>({validate:o=>{try{const i=ca(e,o);return i.success?{value:i.data}:{issues:i.error?.issues}}catch{return ua(e,o).then(a=>a.success?{value:a.data}:{issues:a.error?.issues})}},vendor:"zod",version:1}))}),ot=g("$ZodString",(e,t)=>{x.init(e,t),e._zod.pattern=[...e?._zod.bag?.patterns??[]].pop()??Ua(e._zod.bag),e._zod.parse=(r,n)=>{if(t.coerce)try{r.value=String(r.value)}catch{}return typeof r.value=="string"||r.issues.push({expected:"string",code:"invalid_type",input:r.value,inst:e}),r}}),C=g("$ZodStringFormat",(e,t)=>{Pe.init(e,t),ot.init(e,t)}),os=g("$ZodGUID",(e,t)=>{t.pattern??(t.pattern=Ca),C.init(e,t)}),is=g("$ZodUUID",(e,t)=>{if(t.version){const r={v1:1,v2:2,v3:3,v4:4,v5:5,v6:6,v7:7,v8:8}[t.version];if(r===void 0)throw new Error(`Invalid UUID version: "${t.version}"`);t.pattern??(t.pattern=hr(r))}else t.pattern??(t.pattern=hr());C.init(e,t)}),as=g("$ZodEmail",(e,t)=>{t.pattern??(t.pattern=Ta),C.init(e,t)}),ss=g("$ZodURL",(e,t)=>{C.init(e,t),e._zod.check=r=>{try{const n=r.value.trim();if(!t.normalize&&t.protocol?.source===Oa.source&&!/^https?:\/\//i.test(n)){r.issues.push({code:"invalid_format",format:"url",note:"Invalid URL format",input:r.value,inst:e,continue:!t.abort});return}const o=new URL(n);t.hostname&&(t.hostname.lastIndex=0,t.hostname.test(o.hostname)||r.issues.push({code:"invalid_format",format:"url",note:"Invalid hostname",pattern:t.hostname.source,input:r.value,inst:e,continue:!t.abort})),t.protocol&&(t.protocol.lastIndex=0,t.protocol.test(o.protocol.endsWith(":")?o.protocol.slice(0,-1):o.protocol)||r.issues.push({code:"invalid_format",format:"url",note:"Invalid protocol",pattern:t.protocol.source,input:r.value,inst:e,continue:!t.abort})),t.normalize?r.value=o.href:r.value=n;return}catch{r.issues.push({code:"invalid_format",format:"url",input:r.value,inst:e,continue:!t.abort})}}}),cs=g("$ZodEmoji",(e,t)=>{t.pattern??(t.pattern=za()),C.init(e,t)}),us=g("$ZodNanoID",(e,t)=>{t.pattern??(t.pattern=Sa),C.init(e,t)}),ls=g("$ZodCUID",(e,t)=>{t.pattern??(t.pattern=_a),C.init(e,t)}),ds=g("$ZodCUID2",(e,t)=>{t.pattern??(t.pattern=va),C.init(e,t)}),fs=g("$ZodULID",(e,t)=>{t.pattern??(t.pattern=ba),C.init(e,t)}),ps=g("$ZodXID",(e,t)=>{t.pattern??(t.pattern=wa),C.init(e,t)}),gs=g("$ZodKSUID",(e,t)=>{t.pattern??(t.pattern=ka),C.init(e,t)}),ms=g("$ZodISODateTime",(e,t)=>{t.pattern??(t.pattern=Da(t)),C.init(e,t)}),hs=g("$ZodISODate",(e,t)=>{t.pattern??(t.pattern=Ra),C.init(e,t)}),ys=g("$ZodISOTime",(e,t)=>{t.pattern??(t.pattern=Za(t)),C.init(e,t)}),_s=g("$ZodISODuration",(e,t)=>{t.pattern??(t.pattern=Ea),C.init(e,t)}),vs=g("$ZodIPv4",(e,t)=>{t.pattern??(t.pattern=Aa),C.init(e,t),e._zod.bag.format="ipv4"}),bs=g("$ZodIPv6",(e,t)=>{t.pattern??(t.pattern=Pa),C.init(e,t),e._zod.bag.format="ipv6",e._zod.check=r=>{try{new URL(`http://[${r.value}]`)}catch{r.issues.push({code:"invalid_format",format:"ipv6",input:r.value,inst:e,continue:!t.abort})}}}),ws=g("$ZodCIDRv4",(e,t)=>{t.pattern??(t.pattern=Ia),C.init(e,t)}),ks=g("$ZodCIDRv6",(e,t)=>{t.pattern??(t.pattern=$a),C.init(e,t),e._zod.check=r=>{const n=r.value.split("/");try{if(n.length!==2)throw new Error;const[o,i]=n;if(!i)throw new Error;const a=Number(i);if(`${a}`!==i)throw new Error;if(a<0||a>128)throw new Error;new URL(`http://[${o}]`)}catch{r.issues.push({code:"invalid_format",format:"cidrv6",input:r.value,inst:e,continue:!t.abort})}}});function Sr(e){if(e==="")return!0;if(/\s/.test(e)||e.length%4!==0)return!1;try{return atob(e),!0}catch{return!1}}var Ss=g("$ZodBase64",(e,t)=>{t.pattern??(t.pattern=Na),C.init(e,t),e._zod.bag.contentEncoding="base64",e._zod.check=r=>{Sr(r.value)||r.issues.push({code:"invalid_format",format:"base64",input:r.value,inst:e,continue:!t.abort})}});function Es(e){if(!yr.test(e))return!1;const t=e.replace(/[-_]/g,r=>r==="-"?"+":"/");return Sr(t.padEnd(Math.ceil(t.length/4)*4,"="))}var Cs=g("$ZodBase64URL",(e,t)=>{t.pattern??(t.pattern=yr),C.init(e,t),e._zod.bag.contentEncoding="base64url",e._zod.check=r=>{Es(r.value)||r.issues.push({code:"invalid_format",format:"base64url",input:r.value,inst:e,continue:!t.abort})}}),Ts=g("$ZodE164",(e,t)=>{t.pattern??(t.pattern=La),C.init(e,t)});function xs(e,t=null){try{const r=e.split(".");if(r.length!==3)return!1;const[n]=r;if(!n)return!1;const o=JSON.parse(atob(n));return!("typ"in o&&o?.typ!=="JWT"||!o.alg||t&&(!("alg"in o)||o.alg!==t))}catch{return!1}}var zs=g("$ZodJWT",(e,t)=>{C.init(e,t),e._zod.check=r=>{xs(r.value,t.alg)||r.issues.push({code:"invalid_format",format:"jwt",input:r.value,inst:e,continue:!t.abort})}}),Er=g("$ZodNumber",(e,t)=>{x.init(e,t),e._zod.pattern=e._zod.bag.pattern??Ma,e._zod.parse=(r,n)=>{if(t.coerce)try{r.value=Number(r.value)}catch{}const o=r.value;if(typeof o=="number"&&!Number.isNaN(o)&&Number.isFinite(o))return r;const i=typeof o=="number"?Number.isNaN(o)?"NaN":Number.isFinite(o)?void 0:"Infinity":void 0;return r.issues.push({expected:"number",code:"invalid_type",input:o,inst:e,...i?{received:i}:{}}),r}}),As=g("$ZodNumberFormat",(e,t)=>{qa.init(e,t),Er.init(e,t)}),Ps=g("$ZodUnknown",(e,t)=>{x.init(e,t),e._zod.parse=r=>r}),Is=g("$ZodNever",(e,t)=>{x.init(e,t),e._zod.parse=(r,n)=>(r.issues.push({expected:"never",code:"invalid_type",input:r.value,inst:e}),r)});function Cr(e,t,r){e.issues.length&&t.issues.push(...fr(r,e.issues)),t.value[r]=e.value}var $s=g("$ZodArray",(e,t)=>{x.init(e,t),e._zod.parse=(r,n)=>{const o=r.value;if(!Array.isArray(o))return r.issues.push({expected:"array",code:"invalid_type",input:o,inst:e}),r;r.value=Array(o.length);const i=[];for(let a=0;a<o.length;a++){const s=o[a],c=t.element._zod.run({value:s,issues:[]},n);c instanceof Promise?i.push(c.then(u=>Cr(u,r,a))):Cr(c,r,a)}return i.length?Promise.all(i).then(()=>r):r}});function Ie(e,t,r,n,o,i){const a=r in n;if(e.issues.length){if(o&&i&&!a)return;t.issues.push(...fr(r,e.issues))}if(!a&&!o){e.issues.length||t.issues.push({code:"invalid_type",expected:"nonoptional",input:void 0,path:[r]});return}e.value===void 0?a&&(t.value[r]=void 0):t.value[r]=e.value}function Tr(e){const t=Object.keys(e.shape);for(const n of t)if(!e.shape?.[n]?._zod?.traits?.has("$ZodType"))throw new Error(`Invalid element at key "${n}": expected a Zod schema`);const r=Ki(e.shape);return{...e,keys:t,keySet:new Set(t),numKeys:t.length,optionalKeys:new Set(r)}}function xr(e,t,r,n,o,i){const a=[],s=o.keySet,c=o.catchall._zod,u=c.def.type,l=c.optin==="optional",d=c.optout==="optional";for(const f in t){if(f==="__proto__"||s.has(f))continue;if(u==="never"){a.push(f);continue}const m=c.run({value:t[f],issues:[]},n);m instanceof Promise?e.push(m.then(y=>Ie(y,r,f,t,l,d))):Ie(m,r,f,t,l,d)}return a.length&&r.issues.push({code:"unrecognized_keys",keys:a,input:t,inst:i}),e.length?Promise.all(e).then(()=>r):r}var Ns=g("$ZodObject",(e,t)=>{if(x.init(e,t),!Object.getOwnPropertyDescriptor(t,"shape")?.get){const a=t.shape;Object.defineProperty(t,"shape",{get:()=>{const s={...a};return Object.defineProperty(t,"shape",{value:s}),s}})}const r=Xe(()=>Tr(t));E(e._zod,"propValues",()=>{const a=t.shape,s={};for(const c in a){const u=a[c]._zod;if(u.values){s[c]??(s[c]=new Set);for(const l of u.values)s[c].add(l)}}return s});const n=Ce,o=t.catchall;let i;e._zod.parse=(a,s)=>{i??(i=r.value);const c=a.value;if(!n(c))return a.issues.push({expected:"object",code:"invalid_type",input:c,inst:e}),a;a.value={};const u=[],l=i.shape;for(const d of i.keys){const f=l[d],m=f._zod.optin==="optional",y=f._zod.optout==="optional",p=f._zod.run({value:c[d],issues:[]},s);p instanceof Promise?u.push(p.then(h=>Ie(h,a,d,c,m,y))):Ie(p,a,d,c,m,y)}return o?xr(u,c,a,s,r.value,e):u.length?Promise.all(u).then(()=>a):a}}),Os=g("$ZodObjectJIT",(e,t)=>{Ns.init(e,t);const r=e._zod.parse,n=Xe(()=>Tr(t)),o=f=>{const m=new rs(["shape","payload","ctx"]),y=n.value,p=S=>{const v=ur(S);return`shape[${v}]._zod.run({ value: input[${v}], issues: [] }, ctx)`};m.write("const input = payload.value;");const h=Object.create(null);let k=0;for(const S of y.keys)h[S]=`key_${k++}`;m.write("const newResult = {};");for(const S of y.keys){const v=h[S],b=ur(S),P=f[S],M=P?._zod?.optin==="optional",xl=P?._zod?.optout==="optional";m.write(`const ${v} = ${p(S)};`),M&&xl?m.write(`
|
|
51
51
|
if (${v}.issues.length) {
|
|
52
52
|
if (${b} in input) {
|
|
53
53
|
payload.issues = payload.issues.concat(${v}.issues.map(iss => ({
|
|
@@ -65,7 +65,7 @@
|
|
|
65
65
|
newResult[${b}] = ${v}.value;
|
|
66
66
|
}
|
|
67
67
|
|
|
68
|
-
`):
|
|
68
|
+
`):M?m.write(`
|
|
69
69
|
if (${v}.issues.length) {
|
|
70
70
|
payload.issues = payload.issues.concat(${v}.issues.map(iss => ({
|
|
71
71
|
...iss,
|
|
@@ -106,6 +106,6 @@
|
|
|
106
106
|
}
|
|
107
107
|
}
|
|
108
108
|
|
|
109
|
-
`)}m.write("payload.value = newResult;"),m.write("return payload;");const N=m.compile();return(C,v)=>N(f,C,v)};let i;const a=ke,s=!we.jitless,u=s&&bi.value,l=t.catchall;let d;e._zod.parse=(f,m)=>{d??(d=n.value);const y=f.value;return a(y)?s&&u&&m?.async===!1&&m.jitless!==!0?(i||(i=o(t.shape)),f=i(f,m),l?_r([],y,f,m,d,e):f):r(f,m):(f.issues.push({expected:"object",code:"invalid_type",input:y,inst:e}),f)}});function vr(e,t,r,n){for(const i of e)if(i.issues.length===0)return t.value=i.value,t;const o=e.filter(i=>!re(i));return o.length===1?(t.value=o[0].value,o[0]):(t.issues.push({code:"invalid_union",input:t.value,inst:r,errors:e.map(i=>i.issues.map(a=>Q(a,n,Y())))}),t)}var ss=g("$ZodUnion",(e,t)=>{T.init(e,t),S(e._zod,"optin",()=>t.options.some(n=>n._zod.optin==="optional")?"optional":void 0),S(e._zod,"optout",()=>t.options.some(n=>n._zod.optout==="optional")?"optional":void 0),S(e._zod,"values",()=>{if(t.options.every(n=>n._zod.values))return new Set(t.options.flatMap(n=>Array.from(n._zod.values)))}),S(e._zod,"pattern",()=>{if(t.options.every(n=>n._zod.pattern)){const n=t.options.map(o=>o._zod.pattern);return new RegExp(`^(${n.map(o=>He(o.source)).join("|")})$`)}});const r=t.options.length===1?t.options[0]._zod.run:null;e._zod.parse=(n,o)=>{if(r)return r(n,o);let i=!1;const a=[];for(const s of t.options){const c=s._zod.run({value:n.value,issues:[]},o);if(c instanceof Promise)a.push(c),i=!0;else{if(c.issues.length===0)return c;a.push(c)}}return i?Promise.all(a).then(s=>vr(s,n,e,o)):vr(a,n,e,o)}}),cs=g("$ZodIntersection",(e,t)=>{T.init(e,t),e._zod.parse=(r,n)=>{const o=r.value,i=t.left._zod.run({value:o,issues:[]},n),a=t.right._zod.run({value:o,issues:[]},n);return i instanceof Promise||a instanceof Promise?Promise.all([i,a]).then(([s,c])=>br(r,s,c)):br(r,i,a)}});function et(e,t){if(e===t)return{valid:!0,data:e};if(e instanceof Date&&t instanceof Date&&+e==+t)return{valid:!0,data:e};if(de(e)&&de(t)){const r=Object.keys(t),n=Object.keys(e).filter(i=>r.indexOf(i)!==-1),o={...e,...t};for(const i of n){const a=et(e[i],t[i]);if(!a.valid)return{valid:!1,mergeErrorPath:[i,...a.mergeErrorPath]};o[i]=a.data}return{valid:!0,data:o}}if(Array.isArray(e)&&Array.isArray(t)){if(e.length!==t.length)return{valid:!1,mergeErrorPath:[]};const r=[];for(let n=0;n<e.length;n++){const o=e[n],i=t[n],a=et(o,i);if(!a.valid)return{valid:!1,mergeErrorPath:[n,...a.mergeErrorPath]};r.push(a.data)}return{valid:!0,data:r}}return{valid:!1,mergeErrorPath:[]}}function br(e,t,r){const n=new Map;let o;for(const s of t.issues)if(s.code==="unrecognized_keys"){o??(o=s);for(const c of s.keys)n.has(c)||n.set(c,{}),n.get(c).l=!0}else e.issues.push(s);for(const s of r.issues)if(s.code==="unrecognized_keys")for(const c of s.keys)n.has(c)||n.set(c,{}),n.get(c).r=!0;else e.issues.push(s);const i=[...n].filter(([,s])=>s.l&&s.r).map(([s])=>s);if(i.length&&o&&e.issues.push({...o,keys:i}),re(e))return e;const a=et(t.value,r.value);if(!a.valid)throw new Error(`Unmergable intersection. Error path: ${JSON.stringify(a.mergeErrorPath)}`);return e.value=a.data,e}var us=g("$ZodEnum",(e,t)=>{T.init(e,t);const r=Xt(t.entries),n=new Set(r);e._zod.values=n,e._zod.pattern=new RegExp(`^(${r.filter(o=>wi.has(typeof o)).map(o=>typeof o=="string"?Ce(o):o.toString()).join("|")})$`),e._zod.parse=(o,i)=>{const a=o.value;return n.has(a)||o.issues.push({code:"invalid_value",values:r,input:a,inst:e}),o}}),ls=g("$ZodTransform",(e,t)=>{T.init(e,t),e._zod.optin="optional",e._zod.parse=(r,n)=>{if(n.direction==="backward")throw new Yt(e.constructor.name);const o=t.transform(r.value,r);if(n.async)return(o instanceof Promise?o:Promise.resolve(o)).then(i=>(r.value=i,r.fallback=!0,r));if(o instanceof Promise)throw new te;return r.value=o,r.fallback=!0,r}});function wr(e,t){return t===void 0&&(e.issues.length||e.fallback)?{issues:[],value:void 0}:e}var kr=g("$ZodOptional",(e,t)=>{T.init(e,t),e._zod.optin="optional",e._zod.optout="optional",S(e._zod,"values",()=>t.innerType._zod.values?new Set([...t.innerType._zod.values,void 0]):void 0),S(e._zod,"pattern",()=>{const r=t.innerType._zod.pattern;return r?new RegExp(`^(${He(r.source)})?$`):void 0}),e._zod.parse=(r,n)=>{if(t.innerType._zod.optin==="optional"){const o=r.value,i=t.innerType._zod.run(r,n);return i instanceof Promise?i.then(a=>wr(a,o)):wr(i,o)}return r.value===void 0?r:t.innerType._zod.run(r,n)}}),ds=g("$ZodExactOptional",(e,t)=>{kr.init(e,t),S(e._zod,"values",()=>t.innerType._zod.values),S(e._zod,"pattern",()=>t.innerType._zod.pattern),e._zod.parse=(r,n)=>t.innerType._zod.run(r,n)}),fs=g("$ZodNullable",(e,t)=>{T.init(e,t),S(e._zod,"optin",()=>t.innerType._zod.optin),S(e._zod,"optout",()=>t.innerType._zod.optout),S(e._zod,"pattern",()=>{const r=t.innerType._zod.pattern;return r?new RegExp(`^(${He(r.source)}|null)$`):void 0}),S(e._zod,"values",()=>t.innerType._zod.values?new Set([...t.innerType._zod.values,null]):void 0),e._zod.parse=(r,n)=>r.value===null?r:t.innerType._zod.run(r,n)}),ps=g("$ZodDefault",(e,t)=>{T.init(e,t),e._zod.optin="optional",S(e._zod,"values",()=>t.innerType._zod.values),e._zod.parse=(r,n)=>{if(n.direction==="backward")return t.innerType._zod.run(r,n);if(r.value===void 0)return r.value=t.defaultValue,r;const o=t.innerType._zod.run(r,n);return o instanceof Promise?o.then(i=>Cr(i,t)):Cr(o,t)}});function Cr(e,t){return e.value===void 0&&(e.value=t.defaultValue),e}var gs=g("$ZodPrefault",(e,t)=>{T.init(e,t),e._zod.optin="optional",S(e._zod,"values",()=>t.innerType._zod.values),e._zod.parse=(r,n)=>(n.direction==="backward"||r.value===void 0&&(r.value=t.defaultValue),t.innerType._zod.run(r,n))}),ms=g("$ZodNonOptional",(e,t)=>{T.init(e,t),S(e._zod,"values",()=>{const r=t.innerType._zod.values;return r?new Set([...r].filter(n=>n!==void 0)):void 0}),e._zod.parse=(r,n)=>{const o=t.innerType._zod.run(r,n);return o instanceof Promise?o.then(i=>Sr(i,e)):Sr(o,e)}});function Sr(e,t){return!e.issues.length&&e.value===void 0&&e.issues.push({code:"invalid_type",expected:"nonoptional",input:e.value,inst:t}),e}var hs=g("$ZodCatch",(e,t)=>{T.init(e,t),e._zod.optin="optional",S(e._zod,"optout",()=>t.innerType._zod.optout),S(e._zod,"values",()=>t.innerType._zod.values),e._zod.parse=(r,n)=>{if(n.direction==="backward")return t.innerType._zod.run(r,n);const o=t.innerType._zod.run(r,n);return o instanceof Promise?o.then(i=>(r.value=i.value,i.issues.length&&(r.value=t.catchValue({...r,error:{issues:i.issues.map(a=>Q(a,n,Y()))},input:r.value}),r.issues=[],r.fallback=!0),r)):(r.value=o.value,o.issues.length&&(r.value=t.catchValue({...r,error:{issues:o.issues.map(i=>Q(i,n,Y()))},input:r.value}),r.issues=[],r.fallback=!0),r)}}),ys=g("$ZodPipe",(e,t)=>{T.init(e,t),S(e._zod,"values",()=>t.in._zod.values),S(e._zod,"optin",()=>t.in._zod.optin),S(e._zod,"optout",()=>t.out._zod.optout),S(e._zod,"propValues",()=>t.in._zod.propValues),e._zod.parse=(r,n)=>{if(n.direction==="backward"){const i=t.out._zod.run(r,n);return i instanceof Promise?i.then(a=>Pe(a,t.in,n)):Pe(i,t.in,n)}const o=t.in._zod.run(r,n);return o instanceof Promise?o.then(i=>Pe(i,t.out,n)):Pe(o,t.out,n)}});function Pe(e,t,r){return e.issues.length?(e.aborted=!0,e):t._zod.run({value:e.value,issues:e.issues,fallback:e.fallback},r)}var _s=g("$ZodReadonly",(e,t)=>{T.init(e,t),S(e._zod,"propValues",()=>t.innerType._zod.propValues),S(e._zod,"values",()=>t.innerType._zod.values),S(e._zod,"optin",()=>t.innerType?._zod?.optin),S(e._zod,"optout",()=>t.innerType?._zod?.optout),e._zod.parse=(r,n)=>{if(n.direction==="backward")return t.innerType._zod.run(r,n);const o=t.innerType._zod.run(r,n);return o instanceof Promise?o.then(Er):Er(o)}});function Er(e){return e.value=Object.freeze(e.value),e}var vs=g("$ZodCustom",(e,t)=>{O.init(e,t),T.init(e,t),e._zod.parse=(r,n)=>r,e._zod.check=r=>{const n=r.value,o=t.fn(n);if(o instanceof Promise)return o.then(i=>zr(i,r,n,e));zr(o,r,n,e)}});function zr(e,t,r,n){if(!e){const o={code:"custom",input:r,inst:n,path:[...n._zod.def.path??[]],continue:!n._zod.def.abort};n._zod.def.params&&(o.params=n._zod.def.params),t.issues.push(fe(o))}}var Tr,bs=class{constructor(){this._map=new WeakMap,this._idmap=new Map}add(e,...t){const r=t[0];return this._map.set(e,r),r&&typeof r=="object"&&"id"in r&&this._idmap.set(r.id,e),this}clear(){return this._map=new WeakMap,this._idmap=new Map,this}remove(e){const t=this._map.get(e);return t&&typeof t=="object"&&"id"in t&&this._idmap.delete(t.id),this._map.delete(e),this}get(e){const t=e._zod.parent;if(t){const r={...this.get(t)??{}};delete r.id;const n={...r,...this._map.get(e)};return Object.keys(n).length?n:void 0}return this._map.get(e)}has(e){return this._map.has(e)}};function ws(){return new bs}(Tr=globalThis).__zod_globalRegistry??(Tr.__zod_globalRegistry=ws());var pe=globalThis.__zod_globalRegistry;function ks(e,t){return new e({type:"string",..._(t)})}function Cs(e,t){return new e({type:"string",format:"email",check:"string_format",abort:!1,..._(t)})}function xr(e,t){return new e({type:"string",format:"guid",check:"string_format",abort:!1,..._(t)})}function Ss(e,t){return new e({type:"string",format:"uuid",check:"string_format",abort:!1,..._(t)})}function Es(e,t){return new e({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v4",..._(t)})}function zs(e,t){return new e({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v6",..._(t)})}function Ts(e,t){return new e({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v7",..._(t)})}function xs(e,t){return new e({type:"string",format:"url",check:"string_format",abort:!1,..._(t)})}function Ps(e,t){return new e({type:"string",format:"emoji",check:"string_format",abort:!1,..._(t)})}function Is(e,t){return new e({type:"string",format:"nanoid",check:"string_format",abort:!1,..._(t)})}function As(e,t){return new e({type:"string",format:"cuid",check:"string_format",abort:!1,..._(t)})}function $s(e,t){return new e({type:"string",format:"cuid2",check:"string_format",abort:!1,..._(t)})}function Ns(e,t){return new e({type:"string",format:"ulid",check:"string_format",abort:!1,..._(t)})}function Os(e,t){return new e({type:"string",format:"xid",check:"string_format",abort:!1,..._(t)})}function Ls(e,t){return new e({type:"string",format:"ksuid",check:"string_format",abort:!1,..._(t)})}function Rs(e,t){return new e({type:"string",format:"ipv4",check:"string_format",abort:!1,..._(t)})}function Zs(e,t){return new e({type:"string",format:"ipv6",check:"string_format",abort:!1,..._(t)})}function Ds(e,t){return new e({type:"string",format:"cidrv4",check:"string_format",abort:!1,..._(t)})}function Us(e,t){return new e({type:"string",format:"cidrv6",check:"string_format",abort:!1,..._(t)})}function js(e,t){return new e({type:"string",format:"base64",check:"string_format",abort:!1,..._(t)})}function Ms(e,t){return new e({type:"string",format:"base64url",check:"string_format",abort:!1,..._(t)})}function Fs(e,t){return new e({type:"string",format:"e164",check:"string_format",abort:!1,..._(t)})}function Bs(e,t){return new e({type:"string",format:"jwt",check:"string_format",abort:!1,..._(t)})}function Gs(e,t){return new e({type:"string",format:"datetime",check:"string_format",offset:!1,local:!1,precision:null,..._(t)})}function qs(e,t){return new e({type:"string",format:"date",check:"string_format",..._(t)})}function Vs(e,t){return new e({type:"string",format:"time",check:"string_format",precision:null,..._(t)})}function Js(e,t){return new e({type:"string",format:"duration",check:"string_format",..._(t)})}function Ws(e,t){return new e({type:"number",checks:[],..._(t)})}function Hs(e,t){return new e({type:"number",check:"number_format",abort:!1,format:"safeint",..._(t)})}function Ks(e){return new e({type:"unknown"})}function Ys(e,t){return new e({type:"never",..._(t)})}function Pr(e,t){return new fr({check:"less_than",..._(t),value:e,inclusive:!1})}function tt(e,t){return new fr({check:"less_than",..._(t),value:e,inclusive:!0})}function Ir(e,t){return new pr({check:"greater_than",..._(t),value:e,inclusive:!1})}function rt(e,t){return new pr({check:"greater_than",..._(t),value:e,inclusive:!0})}function Ar(e,t){return new ha({check:"multiple_of",..._(t),value:e})}function $r(e,t){return new _a({check:"max_length",..._(t),maximum:e})}function Ie(e,t){return new va({check:"min_length",..._(t),minimum:e})}function Nr(e,t){return new ba({check:"length_equals",..._(t),length:e})}function Xs(e,t){return new wa({check:"string_format",format:"regex",..._(t),pattern:e})}function Qs(e){return new ka({check:"string_format",format:"lowercase",..._(e)})}function ec(e){return new Ca({check:"string_format",format:"uppercase",..._(e)})}function tc(e,t){return new Sa({check:"string_format",format:"includes",..._(t),includes:e})}function rc(e,t){return new Ea({check:"string_format",format:"starts_with",..._(t),prefix:e})}function nc(e,t){return new za({check:"string_format",format:"ends_with",..._(t),suffix:e})}function ne(e){return new Ta({check:"overwrite",tx:e})}function oc(e){return ne(t=>t.normalize(e))}function ic(){return ne(e=>e.trim())}function ac(){return ne(e=>e.toLowerCase())}function sc(){return ne(e=>e.toUpperCase())}function cc(){return ne(e=>vi(e))}function uc(e,t,r){return new e({type:"array",element:t,..._(r)})}function lc(e,t,r){return new e({type:"custom",check:"custom",fn:t,..._(r)})}function dc(e,t){const r=fc(n=>(n.addIssue=o=>{if(typeof o=="string")n.issues.push(fe(o,n.value,r._zod.def));else{const i=o;i.fatal&&(i.continue=!1),i.code??(i.code="custom"),i.input??(i.input=n.value),i.inst??(i.inst=r),i.continue??(i.continue=!r._zod.def.abort),n.issues.push(fe(i))}},e(n.value,n)),t);return r}function fc(e,t){const r=new O({check:"custom",..._(t)});return r._zod.check=e,r}function Or(e){let t=e?.target??"draft-2020-12";return t==="draft-4"&&(t="draft-04"),t==="draft-7"&&(t="draft-07"),{processors:e.processors??{},metadataRegistry:e?.metadata??pe,target:t,unrepresentable:e?.unrepresentable??"throw",override:e?.override??(()=>{}),io:e?.io??"output",counter:0,seen:new Map,cycles:e?.cycles??"ref",reused:e?.reused??"inline",external:e?.external??void 0}}function P(e,t,r={path:[],schemaPath:[]}){var n;const o=e._zod.def,i=t.seen.get(e);if(i)return i.count++,r.schemaPath.includes(e)&&(i.cycle=r.path),i.schema;const a={schema:{},count:1,cycle:void 0,path:r.path};t.seen.set(e,a);const s=e._zod.toJSONSchema?.();if(s)a.schema=s;else{const u={...r,schemaPath:[...r.schemaPath,e],path:r.path};if(e._zod.processJSONSchema)e._zod.processJSONSchema(t,a.schema,u);else{const d=a.schema,f=t.processors[o.type];if(!f)throw new Error(`[toJSONSchema]: Non-representable type encountered: ${o.type}`);f(e,t,d,u)}const l=e._zod.parent;l&&(a.ref||(a.ref=l),P(l,t,u),t.seen.get(l).isParent=!0)}const c=t.metadataRegistry.get(e);return c&&Object.assign(a.schema,c),t.io==="input"&&$(e)&&(delete a.schema.examples,delete a.schema.default),t.io==="input"&&"_prefault"in a.schema&&((n=a.schema).default??(n.default=a.schema._prefault)),delete a.schema._prefault,t.seen.get(e).schema}function Lr(e,t){const r=e.seen.get(t);if(!r)throw new Error("Unprocessed schema. This is a bug in Zod.");const n=new Map;for(const a of e.seen.entries()){const s=e.metadataRegistry.get(a[0])?.id;if(s){const c=n.get(s);if(c&&c!==a[0])throw new Error(`Duplicate schema id "${s}" detected during JSON Schema conversion. Two different schemas cannot share the same id when converted together.`);n.set(s,a[0])}}const o=a=>{const s=e.target==="draft-2020-12"?"$defs":"definitions";if(e.external){const l=e.external.registry.get(a[0])?.id,d=e.external.uri??(m=>m);if(l)return{ref:d(l)};const f=a[1].defId??a[1].schema.id??`schema${e.counter++}`;return a[1].defId=f,{defId:f,ref:`${d("__shared")}#/${s}/${f}`}}if(a[1]===r)return{ref:"#"};const c=`#/${s}/`,u=a[1].schema.id??`__schema${e.counter++}`;return{defId:u,ref:c+u}},i=a=>{if(a[1].schema.$ref)return;const s=a[1],{ref:c,defId:u}=o(a);s.def={...s.schema},u&&(s.defId=u);const l=s.schema;for(const d in l)delete l[d];l.$ref=c};if(e.cycles==="throw")for(const a of e.seen.entries()){const s=a[1];if(s.cycle)throw new Error(`Cycle detected: #/${s.cycle?.join("/")}/<root>
|
|
109
|
+
`)}m.write("payload.value = newResult;"),m.write("return payload;");const N=m.compile();return(S,v)=>N(f,S,v)};let i;const a=Ce,s=!Ee.jitless,u=s&&Wi.value,l=t.catchall;let d;e._zod.parse=(f,m)=>{d??(d=n.value);const y=f.value;return a(y)?s&&u&&m?.async===!1&&m.jitless!==!0?(i||(i=o(t.shape)),f=i(f,m),l?xr([],y,f,m,d,e):f):r(f,m):(f.issues.push({expected:"object",code:"invalid_type",input:y,inst:e}),f)}});function zr(e,t,r,n){for(const i of e)if(i.issues.length===0)return t.value=i.value,t;const o=e.filter(i=>!oe(i));return o.length===1?(t.value=o[0].value,o[0]):(t.issues.push({code:"invalid_union",input:t.value,inst:r,errors:e.map(i=>i.issues.map(a=>te(a,n,Q())))}),t)}var Ls=g("$ZodUnion",(e,t)=>{x.init(e,t),E(e._zod,"optin",()=>t.options.some(n=>n._zod.optin==="optional")?"optional":void 0),E(e._zod,"optout",()=>t.options.some(n=>n._zod.optout==="optional")?"optional":void 0),E(e._zod,"values",()=>{if(t.options.every(n=>n._zod.values))return new Set(t.options.flatMap(n=>Array.from(n._zod.values)))}),E(e._zod,"pattern",()=>{if(t.options.every(n=>n._zod.pattern)){const n=t.options.map(o=>o._zod.pattern);return new RegExp(`^(${n.map(o=>et(o.source)).join("|")})$`)}});const r=t.options.length===1?t.options[0]._zod.run:null;e._zod.parse=(n,o)=>{if(r)return r(n,o);let i=!1;const a=[];for(const s of t.options){const c=s._zod.run({value:n.value,issues:[]},o);if(c instanceof Promise)a.push(c),i=!0;else{if(c.issues.length===0)return c;a.push(c)}}return i?Promise.all(a).then(s=>zr(s,n,e,o)):zr(a,n,e,o)}}),Rs=g("$ZodIntersection",(e,t)=>{x.init(e,t),e._zod.parse=(r,n)=>{const o=r.value,i=t.left._zod.run({value:o,issues:[]},n),a=t.right._zod.run({value:o,issues:[]},n);return i instanceof Promise||a instanceof Promise?Promise.all([i,a]).then(([s,c])=>Ar(r,s,c)):Ar(r,i,a)}});function it(e,t){if(e===t)return{valid:!0,data:e};if(e instanceof Date&&t instanceof Date&&+e==+t)return{valid:!0,data:e};if(pe(e)&&pe(t)){const r=Object.keys(t),n=Object.keys(e).filter(i=>r.indexOf(i)!==-1),o={...e,...t};for(const i of n){const a=it(e[i],t[i]);if(!a.valid)return{valid:!1,mergeErrorPath:[i,...a.mergeErrorPath]};o[i]=a.data}return{valid:!0,data:o}}if(Array.isArray(e)&&Array.isArray(t)){if(e.length!==t.length)return{valid:!1,mergeErrorPath:[]};const r=[];for(let n=0;n<e.length;n++){const o=e[n],i=t[n],a=it(o,i);if(!a.valid)return{valid:!1,mergeErrorPath:[n,...a.mergeErrorPath]};r.push(a.data)}return{valid:!0,data:r}}return{valid:!1,mergeErrorPath:[]}}function Ar(e,t,r){const n=new Map;let o;for(const s of t.issues)if(s.code==="unrecognized_keys"){o??(o=s);for(const c of s.keys)n.has(c)||n.set(c,{}),n.get(c).l=!0}else e.issues.push(s);for(const s of r.issues)if(s.code==="unrecognized_keys")for(const c of s.keys)n.has(c)||n.set(c,{}),n.get(c).r=!0;else e.issues.push(s);const i=[...n].filter(([,s])=>s.l&&s.r).map(([s])=>s);if(i.length&&o&&e.issues.push({...o,keys:i}),oe(e))return e;const a=it(t.value,r.value);if(!a.valid)throw new Error(`Unmergable intersection. Error path: ${JSON.stringify(a.mergeErrorPath)}`);return e.value=a.data,e}var Zs=g("$ZodEnum",(e,t)=>{x.init(e,t);const r=sr(t.entries),n=new Set(r);e._zod.values=n,e._zod.pattern=new RegExp(`^(${r.filter(o=>Hi.has(typeof o)).map(o=>typeof o=="string"?Te(o):o.toString()).join("|")})$`),e._zod.parse=(o,i)=>{const a=o.value;return n.has(a)||o.issues.push({code:"invalid_value",values:r,input:a,inst:e}),o}}),Ds=g("$ZodTransform",(e,t)=>{x.init(e,t),e._zod.optin="optional",e._zod.parse=(r,n)=>{if(n.direction==="backward")throw new ar(e.constructor.name);const o=t.transform(r.value,r);if(n.async)return(o instanceof Promise?o:Promise.resolve(o)).then(i=>(r.value=i,r.fallback=!0,r));if(o instanceof Promise)throw new ne;return r.value=o,r.fallback=!0,r}});function Pr(e,t){return t===void 0&&(e.issues.length||e.fallback)?{issues:[],value:void 0}:e}var Ir=g("$ZodOptional",(e,t)=>{x.init(e,t),e._zod.optin="optional",e._zod.optout="optional",E(e._zod,"values",()=>t.innerType._zod.values?new Set([...t.innerType._zod.values,void 0]):void 0),E(e._zod,"pattern",()=>{const r=t.innerType._zod.pattern;return r?new RegExp(`^(${et(r.source)})?$`):void 0}),e._zod.parse=(r,n)=>{if(t.innerType._zod.optin==="optional"){const o=r.value,i=t.innerType._zod.run(r,n);return i instanceof Promise?i.then(a=>Pr(a,o)):Pr(i,o)}return r.value===void 0?r:t.innerType._zod.run(r,n)}}),Us=g("$ZodExactOptional",(e,t)=>{Ir.init(e,t),E(e._zod,"values",()=>t.innerType._zod.values),E(e._zod,"pattern",()=>t.innerType._zod.pattern),e._zod.parse=(r,n)=>t.innerType._zod.run(r,n)}),js=g("$ZodNullable",(e,t)=>{x.init(e,t),E(e._zod,"optin",()=>t.innerType._zod.optin),E(e._zod,"optout",()=>t.innerType._zod.optout),E(e._zod,"pattern",()=>{const r=t.innerType._zod.pattern;return r?new RegExp(`^(${et(r.source)}|null)$`):void 0}),E(e._zod,"values",()=>t.innerType._zod.values?new Set([...t.innerType._zod.values,null]):void 0),e._zod.parse=(r,n)=>r.value===null?r:t.innerType._zod.run(r,n)}),Ms=g("$ZodDefault",(e,t)=>{x.init(e,t),e._zod.optin="optional",E(e._zod,"values",()=>t.innerType._zod.values),e._zod.parse=(r,n)=>{if(n.direction==="backward")return t.innerType._zod.run(r,n);if(r.value===void 0)return r.value=t.defaultValue,r;const o=t.innerType._zod.run(r,n);return o instanceof Promise?o.then(i=>$r(i,t)):$r(o,t)}});function $r(e,t){return e.value===void 0&&(e.value=t.defaultValue),e}var Fs=g("$ZodPrefault",(e,t)=>{x.init(e,t),e._zod.optin="optional",E(e._zod,"values",()=>t.innerType._zod.values),e._zod.parse=(r,n)=>(n.direction==="backward"||r.value===void 0&&(r.value=t.defaultValue),t.innerType._zod.run(r,n))}),Bs=g("$ZodNonOptional",(e,t)=>{x.init(e,t),E(e._zod,"values",()=>{const r=t.innerType._zod.values;return r?new Set([...r].filter(n=>n!==void 0)):void 0}),e._zod.parse=(r,n)=>{const o=t.innerType._zod.run(r,n);return o instanceof Promise?o.then(i=>Nr(i,e)):Nr(o,e)}});function Nr(e,t){return!e.issues.length&&e.value===void 0&&e.issues.push({code:"invalid_type",expected:"nonoptional",input:e.value,inst:t}),e}var Gs=g("$ZodCatch",(e,t)=>{x.init(e,t),e._zod.optin="optional",E(e._zod,"optout",()=>t.innerType._zod.optout),E(e._zod,"values",()=>t.innerType._zod.values),e._zod.parse=(r,n)=>{if(n.direction==="backward")return t.innerType._zod.run(r,n);const o=t.innerType._zod.run(r,n);return o instanceof Promise?o.then(i=>(r.value=i.value,i.issues.length&&(r.value=t.catchValue({...r,error:{issues:i.issues.map(a=>te(a,n,Q()))},input:r.value}),r.issues=[],r.fallback=!0),r)):(r.value=o.value,o.issues.length&&(r.value=t.catchValue({...r,error:{issues:o.issues.map(i=>te(i,n,Q()))},input:r.value}),r.issues=[],r.fallback=!0),r)}}),qs=g("$ZodPipe",(e,t)=>{x.init(e,t),E(e._zod,"values",()=>t.in._zod.values),E(e._zod,"optin",()=>t.in._zod.optin),E(e._zod,"optout",()=>t.out._zod.optout),E(e._zod,"propValues",()=>t.in._zod.propValues),e._zod.parse=(r,n)=>{if(n.direction==="backward"){const i=t.out._zod.run(r,n);return i instanceof Promise?i.then(a=>$e(a,t.in,n)):$e(i,t.in,n)}const o=t.in._zod.run(r,n);return o instanceof Promise?o.then(i=>$e(i,t.out,n)):$e(o,t.out,n)}});function $e(e,t,r){return e.issues.length?(e.aborted=!0,e):t._zod.run({value:e.value,issues:e.issues,fallback:e.fallback},r)}var Js=g("$ZodReadonly",(e,t)=>{x.init(e,t),E(e._zod,"propValues",()=>t.innerType._zod.propValues),E(e._zod,"values",()=>t.innerType._zod.values),E(e._zod,"optin",()=>t.innerType?._zod?.optin),E(e._zod,"optout",()=>t.innerType?._zod?.optout),e._zod.parse=(r,n)=>{if(n.direction==="backward")return t.innerType._zod.run(r,n);const o=t.innerType._zod.run(r,n);return o instanceof Promise?o.then(Or):Or(o)}});function Or(e){return e.value=Object.freeze(e.value),e}var Vs=g("$ZodCustom",(e,t)=>{O.init(e,t),x.init(e,t),e._zod.parse=(r,n)=>r,e._zod.check=r=>{const n=r.value,o=t.fn(n);if(o instanceof Promise)return o.then(i=>Lr(i,r,n,e));Lr(o,r,n,e)}});function Lr(e,t,r,n){if(!e){const o={code:"custom",input:r,inst:n,path:[...n._zod.def.path??[]],continue:!n._zod.def.abort};n._zod.def.params&&(o.params=n._zod.def.params),t.issues.push(ge(o))}}var Rr,Ws=class{constructor(){this._map=new WeakMap,this._idmap=new Map}add(e,...t){const r=t[0];return this._map.set(e,r),r&&typeof r=="object"&&"id"in r&&this._idmap.set(r.id,e),this}clear(){return this._map=new WeakMap,this._idmap=new Map,this}remove(e){const t=this._map.get(e);return t&&typeof t=="object"&&"id"in t&&this._idmap.delete(t.id),this._map.delete(e),this}get(e){const t=e._zod.parent;if(t){const r={...this.get(t)??{}};delete r.id;const n={...r,...this._map.get(e)};return Object.keys(n).length?n:void 0}return this._map.get(e)}has(e){return this._map.has(e)}};function Hs(){return new Ws}(Rr=globalThis).__zod_globalRegistry??(Rr.__zod_globalRegistry=Hs());var me=globalThis.__zod_globalRegistry;function Ks(e,t){return new e({type:"string",..._(t)})}function Ys(e,t){return new e({type:"string",format:"email",check:"string_format",abort:!1,..._(t)})}function Zr(e,t){return new e({type:"string",format:"guid",check:"string_format",abort:!1,..._(t)})}function Xs(e,t){return new e({type:"string",format:"uuid",check:"string_format",abort:!1,..._(t)})}function Qs(e,t){return new e({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v4",..._(t)})}function ec(e,t){return new e({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v6",..._(t)})}function tc(e,t){return new e({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v7",..._(t)})}function rc(e,t){return new e({type:"string",format:"url",check:"string_format",abort:!1,..._(t)})}function nc(e,t){return new e({type:"string",format:"emoji",check:"string_format",abort:!1,..._(t)})}function oc(e,t){return new e({type:"string",format:"nanoid",check:"string_format",abort:!1,..._(t)})}function ic(e,t){return new e({type:"string",format:"cuid",check:"string_format",abort:!1,..._(t)})}function ac(e,t){return new e({type:"string",format:"cuid2",check:"string_format",abort:!1,..._(t)})}function sc(e,t){return new e({type:"string",format:"ulid",check:"string_format",abort:!1,..._(t)})}function cc(e,t){return new e({type:"string",format:"xid",check:"string_format",abort:!1,..._(t)})}function uc(e,t){return new e({type:"string",format:"ksuid",check:"string_format",abort:!1,..._(t)})}function lc(e,t){return new e({type:"string",format:"ipv4",check:"string_format",abort:!1,..._(t)})}function dc(e,t){return new e({type:"string",format:"ipv6",check:"string_format",abort:!1,..._(t)})}function fc(e,t){return new e({type:"string",format:"cidrv4",check:"string_format",abort:!1,..._(t)})}function pc(e,t){return new e({type:"string",format:"cidrv6",check:"string_format",abort:!1,..._(t)})}function gc(e,t){return new e({type:"string",format:"base64",check:"string_format",abort:!1,..._(t)})}function mc(e,t){return new e({type:"string",format:"base64url",check:"string_format",abort:!1,..._(t)})}function hc(e,t){return new e({type:"string",format:"e164",check:"string_format",abort:!1,..._(t)})}function yc(e,t){return new e({type:"string",format:"jwt",check:"string_format",abort:!1,..._(t)})}function _c(e,t){return new e({type:"string",format:"datetime",check:"string_format",offset:!1,local:!1,precision:null,..._(t)})}function vc(e,t){return new e({type:"string",format:"date",check:"string_format",..._(t)})}function bc(e,t){return new e({type:"string",format:"time",check:"string_format",precision:null,..._(t)})}function wc(e,t){return new e({type:"string",format:"duration",check:"string_format",..._(t)})}function kc(e,t){return new e({type:"number",checks:[],..._(t)})}function Sc(e,t){return new e({type:"number",check:"number_format",abort:!1,format:"safeint",..._(t)})}function Ec(e){return new e({type:"unknown"})}function Cc(e,t){return new e({type:"never",..._(t)})}function Dr(e,t){return new wr({check:"less_than",..._(t),value:e,inclusive:!1})}function at(e,t){return new wr({check:"less_than",..._(t),value:e,inclusive:!0})}function Ur(e,t){return new kr({check:"greater_than",..._(t),value:e,inclusive:!1})}function st(e,t){return new kr({check:"greater_than",..._(t),value:e,inclusive:!0})}function jr(e,t){return new Ga({check:"multiple_of",..._(t),value:e})}function Mr(e,t){return new Ja({check:"max_length",..._(t),maximum:e})}function Ne(e,t){return new Va({check:"min_length",..._(t),minimum:e})}function Fr(e,t){return new Wa({check:"length_equals",..._(t),length:e})}function Tc(e,t){return new Ha({check:"string_format",format:"regex",..._(t),pattern:e})}function xc(e){return new Ka({check:"string_format",format:"lowercase",..._(e)})}function zc(e){return new Ya({check:"string_format",format:"uppercase",..._(e)})}function Ac(e,t){return new Xa({check:"string_format",format:"includes",..._(t),includes:e})}function Pc(e,t){return new Qa({check:"string_format",format:"starts_with",..._(t),prefix:e})}function Ic(e,t){return new es({check:"string_format",format:"ends_with",..._(t),suffix:e})}function ie(e){return new ts({check:"overwrite",tx:e})}function $c(e){return ie(t=>t.normalize(e))}function Nc(){return ie(e=>e.trim())}function Oc(){return ie(e=>e.toLowerCase())}function Lc(){return ie(e=>e.toUpperCase())}function Rc(){return ie(e=>Vi(e))}function Zc(e,t,r){return new e({type:"array",element:t,..._(r)})}function Dc(e,t,r){return new e({type:"custom",check:"custom",fn:t,..._(r)})}function Uc(e,t){const r=jc(n=>(n.addIssue=o=>{if(typeof o=="string")n.issues.push(ge(o,n.value,r._zod.def));else{const i=o;i.fatal&&(i.continue=!1),i.code??(i.code="custom"),i.input??(i.input=n.value),i.inst??(i.inst=r),i.continue??(i.continue=!r._zod.def.abort),n.issues.push(ge(i))}},e(n.value,n)),t);return r}function jc(e,t){const r=new O({check:"custom",..._(t)});return r._zod.check=e,r}function Br(e){let t=e?.target??"draft-2020-12";return t==="draft-4"&&(t="draft-04"),t==="draft-7"&&(t="draft-07"),{processors:e.processors??{},metadataRegistry:e?.metadata??me,target:t,unrepresentable:e?.unrepresentable??"throw",override:e?.override??(()=>{}),io:e?.io??"output",counter:0,seen:new Map,cycles:e?.cycles??"ref",reused:e?.reused??"inline",external:e?.external??void 0}}function A(e,t,r={path:[],schemaPath:[]}){var n;const o=e._zod.def,i=t.seen.get(e);if(i)return i.count++,r.schemaPath.includes(e)&&(i.cycle=r.path),i.schema;const a={schema:{},count:1,cycle:void 0,path:r.path};t.seen.set(e,a);const s=e._zod.toJSONSchema?.();if(s)a.schema=s;else{const u={...r,schemaPath:[...r.schemaPath,e],path:r.path};if(e._zod.processJSONSchema)e._zod.processJSONSchema(t,a.schema,u);else{const d=a.schema,f=t.processors[o.type];if(!f)throw new Error(`[toJSONSchema]: Non-representable type encountered: ${o.type}`);f(e,t,d,u)}const l=e._zod.parent;l&&(a.ref||(a.ref=l),A(l,t,u),t.seen.get(l).isParent=!0)}const c=t.metadataRegistry.get(e);return c&&Object.assign(a.schema,c),t.io==="input"&&$(e)&&(delete a.schema.examples,delete a.schema.default),t.io==="input"&&"_prefault"in a.schema&&((n=a.schema).default??(n.default=a.schema._prefault)),delete a.schema._prefault,t.seen.get(e).schema}function Gr(e,t){const r=e.seen.get(t);if(!r)throw new Error("Unprocessed schema. This is a bug in Zod.");const n=new Map;for(const a of e.seen.entries()){const s=e.metadataRegistry.get(a[0])?.id;if(s){const c=n.get(s);if(c&&c!==a[0])throw new Error(`Duplicate schema id "${s}" detected during JSON Schema conversion. Two different schemas cannot share the same id when converted together.`);n.set(s,a[0])}}const o=a=>{const s=e.target==="draft-2020-12"?"$defs":"definitions";if(e.external){const l=e.external.registry.get(a[0])?.id,d=e.external.uri??(m=>m);if(l)return{ref:d(l)};const f=a[1].defId??a[1].schema.id??`schema${e.counter++}`;return a[1].defId=f,{defId:f,ref:`${d("__shared")}#/${s}/${f}`}}if(a[1]===r)return{ref:"#"};const c=`#/${s}/`,u=a[1].schema.id??`__schema${e.counter++}`;return{defId:u,ref:c+u}},i=a=>{if(a[1].schema.$ref)return;const s=a[1],{ref:c,defId:u}=o(a);s.def={...s.schema},u&&(s.defId=u);const l=s.schema;for(const d in l)delete l[d];l.$ref=c};if(e.cycles==="throw")for(const a of e.seen.entries()){const s=a[1];if(s.cycle)throw new Error(`Cycle detected: #/${s.cycle?.join("/")}/<root>
|
|
110
110
|
|
|
111
|
-
Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.`)}for(const a of e.seen.entries()){const s=a[1];if(t===a[0]){i(a);continue}if(e.external){const c=e.external.registry.get(a[0])?.id;if(t!==a[0]&&c){i(a);continue}}if(e.metadataRegistry.get(a[0])?.id){i(a);continue}if(s.cycle){i(a);continue}if(s.count>1&&e.reused==="ref"){i(a);continue}}}function Rr(e,t){const r=e.seen.get(t);if(!r)throw new Error("Unprocessed schema. This is a bug in Zod.");const n=s=>{const c=e.seen.get(s);if(c.ref===null)return;const u=c.def??c.schema,l={...u},d=c.ref;if(c.ref=null,d){n(d);const m=e.seen.get(d),y=m.schema;if(y.$ref&&(e.target==="draft-07"||e.target==="draft-04"||e.target==="openapi-3.0")?(u.allOf=u.allOf??[],u.allOf.push(y)):Object.assign(u,y),Object.assign(u,l),s._zod.parent===d)for(const p in u)p==="$ref"||p==="allOf"||p in l||delete u[p];if(y.$ref&&m.def)for(const p in u)p==="$ref"||p==="allOf"||p in m.def&&JSON.stringify(u[p])===JSON.stringify(m.def[p])&&delete u[p]}const f=s._zod.parent;if(f&&f!==d){n(f);const m=e.seen.get(f);if(m?.schema.$ref&&(u.$ref=m.schema.$ref,m.def))for(const y in u)y==="$ref"||y==="allOf"||y in m.def&&JSON.stringify(u[y])===JSON.stringify(m.def[y])&&delete u[y]}e.override({zodSchema:s,jsonSchema:u,path:c.path??[]})};for(const s of[...e.seen.entries()].reverse())n(s[0]);const o={};if(e.target==="draft-2020-12"?o.$schema="https://json-schema.org/draft/2020-12/schema":e.target==="draft-07"?o.$schema="http://json-schema.org/draft-07/schema#":e.target==="draft-04"?o.$schema="http://json-schema.org/draft-04/schema#":e.target,e.external?.uri){const s=e.external.registry.get(t)?.id;if(!s)throw new Error("Schema is missing an `id` property");o.$id=e.external.uri(s)}Object.assign(o,r.def??r.schema);const i=e.metadataRegistry.get(t)?.id;i!==void 0&&o.id===i&&delete o.id;const a=e.external?.defs??{};for(const s of e.seen.entries()){const c=s[1];c.def&&c.defId&&(c.def.id===c.defId&&delete c.def.id,a[c.defId]=c.def)}e.external||Object.keys(a).length>0&&(e.target==="draft-2020-12"?o.$defs=a:o.definitions=a);try{const s=JSON.parse(JSON.stringify(o));return Object.defineProperty(s,"~standard",{value:{...t["~standard"],jsonSchema:{input:Ae(t,"input",e.processors),output:Ae(t,"output",e.processors)}},enumerable:!1,writable:!1}),s}catch{throw new Error("Error converting schema to JSON.")}}function $(e,t){const r=t??{seen:new Set};if(r.seen.has(e))return!1;r.seen.add(e);const n=e._zod.def;if(n.type==="transform")return!0;if(n.type==="array")return $(n.element,r);if(n.type==="set")return $(n.valueType,r);if(n.type==="lazy")return $(n.getter(),r);if(n.type==="promise"||n.type==="optional"||n.type==="nonoptional"||n.type==="nullable"||n.type==="readonly"||n.type==="default"||n.type==="prefault")return $(n.innerType,r);if(n.type==="intersection")return $(n.left,r)||$(n.right,r);if(n.type==="record"||n.type==="map")return $(n.keyType,r)||$(n.valueType,r);if(n.type==="pipe")return e._zod.traits.has("$ZodCodec")?!0:$(n.in,r)||$(n.out,r);if(n.type==="object"){for(const o in n.shape)if($(n.shape[o],r))return!0;return!1}if(n.type==="union"){for(const o of n.options)if($(o,r))return!0;return!1}if(n.type==="tuple"){for(const o of n.items)if($(o,r))return!0;return!!(n.rest&&$(n.rest,r))}return!1}var pc=(e,t={})=>r=>{const n=Or({...r,processors:t});return P(e,n),Lr(n,e),Rr(n,e)},Ae=(e,t,r={})=>n=>{const{libraryOptions:o,target:i}=n??{},a=Or({...o??{},target:i,io:t,processors:r});return P(e,a),Lr(a,e),Rr(a,e)},gc={guid:"uuid",url:"uri",datetime:"date-time",json_string:"json-string",regex:""},mc=(e,t,r,n)=>{const o=r;o.type="string";const{minimum:i,maximum:a,format:s,patterns:c,contentEncoding:u}=e._zod.bag;if(typeof i=="number"&&(o.minLength=i),typeof a=="number"&&(o.maxLength=a),s&&(o.format=gc[s]??s,o.format===""&&delete o.format,s==="time"&&delete o.format),u&&(o.contentEncoding=u),c&&c.size>0){const l=[...c];l.length===1?o.pattern=l[0].source:l.length>1&&(o.allOf=[...l.map(d=>({...t.target==="draft-07"||t.target==="draft-04"||t.target==="openapi-3.0"?{type:"string"}:{},pattern:d.source}))])}},hc=(e,t,r,n)=>{const o=r,{minimum:i,maximum:a,format:s,multipleOf:c,exclusiveMaximum:u,exclusiveMinimum:l}=e._zod.bag;typeof s=="string"&&s.includes("int")?o.type="integer":o.type="number";const d=typeof l=="number"&&l>=(i??Number.NEGATIVE_INFINITY),f=typeof u=="number"&&u<=(a??Number.POSITIVE_INFINITY),m=t.target==="draft-04"||t.target==="openapi-3.0";d?m?(o.minimum=l,o.exclusiveMinimum=!0):o.exclusiveMinimum=l:typeof i=="number"&&(o.minimum=i),f?m?(o.maximum=u,o.exclusiveMaximum=!0):o.exclusiveMaximum=u:typeof a=="number"&&(o.maximum=a),typeof c=="number"&&(o.multipleOf=c)},yc=(e,t,r,n)=>{r.not={}},_c=(e,t,r,n)=>{},vc=(e,t,r,n)=>{const o=e._zod.def,i=Xt(o.entries);i.every(a=>typeof a=="number")&&(r.type="number"),i.every(a=>typeof a=="string")&&(r.type="string"),r.enum=i},bc=(e,t,r,n)=>{if(t.unrepresentable==="throw")throw new Error("Custom types cannot be represented in JSON Schema")},wc=(e,t,r,n)=>{if(t.unrepresentable==="throw")throw new Error("Transforms cannot be represented in JSON Schema")},kc=(e,t,r,n)=>{const o=r,i=e._zod.def,{minimum:a,maximum:s}=e._zod.bag;typeof a=="number"&&(o.minItems=a),typeof s=="number"&&(o.maxItems=s),o.type="array",o.items=P(i.element,t,{...n,path:[...n.path,"items"]})},Cc=(e,t,r,n)=>{const o=r,i=e._zod.def;o.type="object",o.properties={};const a=i.shape;for(const u in a)o.properties[u]=P(a[u],t,{...n,path:[...n.path,"properties",u]});const s=new Set(Object.keys(a)),c=new Set([...s].filter(u=>{const l=i.shape[u]._zod;return t.io==="input"?l.optin===void 0:l.optout===void 0}));c.size>0&&(o.required=Array.from(c)),i.catchall?._zod.def.type==="never"?o.additionalProperties=!1:i.catchall?i.catchall&&(o.additionalProperties=P(i.catchall,t,{...n,path:[...n.path,"additionalProperties"]})):t.io==="output"&&(o.additionalProperties=!1)},Sc=(e,t,r,n)=>{const o=e._zod.def,i=o.inclusive===!1,a=o.options.map((s,c)=>P(s,t,{...n,path:[...n.path,i?"oneOf":"anyOf",c]}));i?r.oneOf=a:r.anyOf=a},Ec=(e,t,r,n)=>{const o=e._zod.def,i=P(o.left,t,{...n,path:[...n.path,"allOf",0]}),a=P(o.right,t,{...n,path:[...n.path,"allOf",1]}),s=c=>"allOf"in c&&Object.keys(c).length===1;r.allOf=[...s(i)?i.allOf:[i],...s(a)?a.allOf:[a]]},zc=(e,t,r,n)=>{const o=e._zod.def,i=P(o.innerType,t,n),a=t.seen.get(e);t.target==="openapi-3.0"?(a.ref=o.innerType,r.nullable=!0):r.anyOf=[i,{type:"null"}]},Tc=(e,t,r,n)=>{const o=e._zod.def;P(o.innerType,t,n);const i=t.seen.get(e);i.ref=o.innerType},xc=(e,t,r,n)=>{const o=e._zod.def;P(o.innerType,t,n);const i=t.seen.get(e);i.ref=o.innerType,r.default=JSON.parse(JSON.stringify(o.defaultValue))},Pc=(e,t,r,n)=>{const o=e._zod.def;P(o.innerType,t,n);const i=t.seen.get(e);i.ref=o.innerType,t.io==="input"&&(r._prefault=JSON.parse(JSON.stringify(o.defaultValue)))},Ic=(e,t,r,n)=>{const o=e._zod.def;P(o.innerType,t,n);const i=t.seen.get(e);i.ref=o.innerType;let a;try{a=o.catchValue(void 0)}catch{throw new Error("Dynamic catch values are not supported in JSON Schema")}r.default=a},Ac=(e,t,r,n)=>{const o=e._zod.def,i=o.in._zod.traits.has("$ZodTransform"),a=t.io==="input"?i?o.out:o.in:o.out;P(a,t,n);const s=t.seen.get(e);s.ref=a},$c=(e,t,r,n)=>{const o=e._zod.def;P(o.innerType,t,n);const i=t.seen.get(e);i.ref=o.innerType,r.readOnly=!0},Zr=(e,t,r,n)=>{const o=e._zod.def;P(o.innerType,t,n);const i=t.seen.get(e);i.ref=o.innerType},Nc=g("ZodISODateTime",(e,t)=>{Ma.init(e,t),z.init(e,t)});function Oc(e){return Gs(Nc,e)}var Lc=g("ZodISODate",(e,t)=>{Fa.init(e,t),z.init(e,t)});function Rc(e){return qs(Lc,e)}var Zc=g("ZodISOTime",(e,t)=>{Ba.init(e,t),z.init(e,t)});function Dc(e){return Vs(Zc,e)}var Uc=g("ZodISODuration",(e,t)=>{Ga.init(e,t),z.init(e,t)});function jc(e){return Js(Uc,e)}var Mc=(e,t)=>{ir.init(e,t),e.name="ZodError",Object.defineProperties(e,{format:{value:r=>Ni(e,r)},flatten:{value:r=>$i(e,r)},addIssue:{value:r=>{e.issues.push(r),e.message=JSON.stringify(e.issues,Ve,2)}},addIssues:{value:r=>{e.issues.push(...r),e.message=JSON.stringify(e.issues,Ve,2)}},isEmpty:{get(){return e.issues.length===0}}})},Z=g("ZodError",Mc,{Parent:Error}),Fc=Ye(Z),Bc=Xe(Z),Gc=Ee(Z),qc=ze(Z),Vc=Ri(Z),Jc=Zi(Z),Wc=Di(Z),Hc=Ui(Z),Kc=ji(Z),Yc=Mi(Z),Xc=Fi(Z),Qc=Bi(Z),Dr=new WeakMap;function ge(e,t,r){const n=Object.getPrototypeOf(e);let o=Dr.get(n);if(o||(o=new Set,Dr.set(n,o)),!o.has(t)){o.add(t);for(const i in r){const a=r[i];Object.defineProperty(n,i,{configurable:!0,enumerable:!1,get(){const s=a.bind(this);return Object.defineProperty(this,i,{configurable:!0,writable:!0,enumerable:!0,value:s}),s},set(s){Object.defineProperty(this,i,{configurable:!0,writable:!0,enumerable:!0,value:s})}})}}}var x=g("ZodType",(e,t)=>(T.init(e,t),Object.assign(e["~standard"],{jsonSchema:{input:Ae(e,"input"),output:Ae(e,"output")}}),e.toJSONSchema=pc(e,{}),e.def=t,e.type=t.type,Object.defineProperty(e,"_def",{value:t}),e.parse=(r,n)=>Fc(e,r,n,{callee:e.parse}),e.safeParse=(r,n)=>Gc(e,r,n),e.parseAsync=async(r,n)=>Bc(e,r,n,{callee:e.parseAsync}),e.safeParseAsync=async(r,n)=>qc(e,r,n),e.spa=e.safeParseAsync,e.encode=(r,n)=>Vc(e,r,n),e.decode=(r,n)=>Jc(e,r,n),e.encodeAsync=async(r,n)=>Wc(e,r,n),e.decodeAsync=async(r,n)=>Hc(e,r,n),e.safeEncode=(r,n)=>Kc(e,r,n),e.safeDecode=(r,n)=>Yc(e,r,n),e.safeEncodeAsync=async(r,n)=>Xc(e,r,n),e.safeDecodeAsync=async(r,n)=>Qc(e,r,n),ge(e,"ZodType",{check(...r){const n=this.def;return this.clone(V(n,{checks:[...n.checks??[],...r.map(o=>typeof o=="function"?{_zod:{check:o,def:{check:"custom"},onattach:[]}}:o)]}),{parent:!0})},with(...r){return this.check(...r)},clone(r,n){return J(this,r,n)},brand(){return this},register(r,n){return r.add(this,n),this},refine(r,n){return this.check(Gu(r,n))},superRefine(r,n){return this.check(qu(r,n))},overwrite(r){return this.check(ne(r))},optional(){return qr(this)},exactOptional(){return Au(this)},nullable(){return Vr(this)},nullish(){return qr(Vr(this))},nonoptional(r){return Zu(this,r)},array(){return Br(this)},or(r){return Eu([this,r])},and(r){return Tu(this,r)},transform(r){return Wr(this,Pu(r))},default(r){return Ou(this,r)},prefault(r){return Ru(this,r)},catch(r){return Uu(this,r)},pipe(r){return Wr(this,r)},readonly(){return Fu(this)},describe(r){const n=this.clone();return pe.add(n,{description:r}),n},meta(...r){if(r.length===0)return pe.get(this);const n=this.clone();return pe.add(n,r[0]),n},isOptional(){return this.safeParse(void 0).success},isNullable(){return this.safeParse(null).success},apply(r){return r(this)}}),Object.defineProperty(e,"description",{get(){return pe.get(e)?.description},configurable:!0}),e)),Ur=g("_ZodString",(e,t)=>{Qe.init(e,t),x.init(e,t),e._zod.processJSONSchema=(n,o,i)=>mc(e,n,o,i);const r=e._zod.bag;e.format=r.format??null,e.minLength=r.minimum??null,e.maxLength=r.maximum??null,ge(e,"_ZodString",{regex(...n){return this.check(Xs(...n))},includes(...n){return this.check(tc(...n))},startsWith(...n){return this.check(rc(...n))},endsWith(...n){return this.check(nc(...n))},min(...n){return this.check(Ie(...n))},max(...n){return this.check($r(...n))},length(...n){return this.check(Nr(...n))},nonempty(...n){return this.check(Ie(1,...n))},lowercase(n){return this.check(Qs(n))},uppercase(n){return this.check(ec(n))},trim(){return this.check(ic())},normalize(...n){return this.check(oc(...n))},toLowerCase(){return this.check(ac())},toUpperCase(){return this.check(sc())},slugify(){return this.check(cc())}})}),eu=g("ZodString",(e,t)=>{Qe.init(e,t),Ur.init(e,t),e.email=r=>e.check(Cs(tu,r)),e.url=r=>e.check(xs(ru,r)),e.jwt=r=>e.check(Bs(yu,r)),e.emoji=r=>e.check(Ps(nu,r)),e.guid=r=>e.check(xr(jr,r)),e.uuid=r=>e.check(Ss($e,r)),e.uuidv4=r=>e.check(Es($e,r)),e.uuidv6=r=>e.check(zs($e,r)),e.uuidv7=r=>e.check(Ts($e,r)),e.nanoid=r=>e.check(Is(ou,r)),e.guid=r=>e.check(xr(jr,r)),e.cuid=r=>e.check(As(iu,r)),e.cuid2=r=>e.check($s(au,r)),e.ulid=r=>e.check(Ns(su,r)),e.base64=r=>e.check(js(gu,r)),e.base64url=r=>e.check(Ms(mu,r)),e.xid=r=>e.check(Os(cu,r)),e.ksuid=r=>e.check(Ls(uu,r)),e.ipv4=r=>e.check(Rs(lu,r)),e.ipv6=r=>e.check(Zs(du,r)),e.cidrv4=r=>e.check(Ds(fu,r)),e.cidrv6=r=>e.check(Us(pu,r)),e.e164=r=>e.check(Fs(hu,r)),e.datetime=r=>e.check(Oc(r)),e.date=r=>e.check(Rc(r)),e.time=r=>e.check(Dc(r)),e.duration=r=>e.check(jc(r))});function L(e){return ks(eu,e)}var z=g("ZodStringFormat",(e,t)=>{E.init(e,t),Ur.init(e,t)}),tu=g("ZodEmail",(e,t)=>{$a.init(e,t),z.init(e,t)}),jr=g("ZodGUID",(e,t)=>{Ia.init(e,t),z.init(e,t)}),$e=g("ZodUUID",(e,t)=>{Aa.init(e,t),z.init(e,t)}),ru=g("ZodURL",(e,t)=>{Na.init(e,t),z.init(e,t)}),nu=g("ZodEmoji",(e,t)=>{Oa.init(e,t),z.init(e,t)}),ou=g("ZodNanoID",(e,t)=>{La.init(e,t),z.init(e,t)}),iu=g("ZodCUID",(e,t)=>{Ra.init(e,t),z.init(e,t)}),au=g("ZodCUID2",(e,t)=>{Za.init(e,t),z.init(e,t)}),su=g("ZodULID",(e,t)=>{Da.init(e,t),z.init(e,t)}),cu=g("ZodXID",(e,t)=>{Ua.init(e,t),z.init(e,t)}),uu=g("ZodKSUID",(e,t)=>{ja.init(e,t),z.init(e,t)}),lu=g("ZodIPv4",(e,t)=>{qa.init(e,t),z.init(e,t)}),du=g("ZodIPv6",(e,t)=>{Va.init(e,t),z.init(e,t)}),fu=g("ZodCIDRv4",(e,t)=>{Ja.init(e,t),z.init(e,t)}),pu=g("ZodCIDRv6",(e,t)=>{Wa.init(e,t),z.init(e,t)}),gu=g("ZodBase64",(e,t)=>{Ha.init(e,t),z.init(e,t)}),mu=g("ZodBase64URL",(e,t)=>{Ya.init(e,t),z.init(e,t)}),hu=g("ZodE164",(e,t)=>{Xa.init(e,t),z.init(e,t)}),yu=g("ZodJWT",(e,t)=>{es.init(e,t),z.init(e,t)}),Mr=g("ZodNumber",(e,t)=>{mr.init(e,t),x.init(e,t),e._zod.processJSONSchema=(n,o,i)=>hc(e,n,o,i),ge(e,"ZodNumber",{gt(n,o){return this.check(Ir(n,o))},gte(n,o){return this.check(rt(n,o))},min(n,o){return this.check(rt(n,o))},lt(n,o){return this.check(Pr(n,o))},lte(n,o){return this.check(tt(n,o))},max(n,o){return this.check(tt(n,o))},int(n){return this.check(Fr(n))},safe(n){return this.check(Fr(n))},positive(n){return this.check(Ir(0,n))},nonnegative(n){return this.check(rt(0,n))},negative(n){return this.check(Pr(0,n))},nonpositive(n){return this.check(tt(0,n))},multipleOf(n,o){return this.check(Ar(n,o))},step(n,o){return this.check(Ar(n,o))},finite(){return this}});const r=e._zod.bag;e.minValue=Math.max(r.minimum??Number.NEGATIVE_INFINITY,r.exclusiveMinimum??Number.NEGATIVE_INFINITY)??null,e.maxValue=Math.min(r.maximum??Number.POSITIVE_INFINITY,r.exclusiveMaximum??Number.POSITIVE_INFINITY)??null,e.isInt=(r.format??"").includes("int")||Number.isSafeInteger(r.multipleOf??.5),e.isFinite=!0,e.format=r.format??null});function me(e){return Ws(Mr,e)}var _u=g("ZodNumberFormat",(e,t)=>{ts.init(e,t),Mr.init(e,t)});function Fr(e){return Hs(_u,e)}var vu=g("ZodUnknown",(e,t)=>{rs.init(e,t),x.init(e,t),e._zod.processJSONSchema=(r,n,o)=>_c(e,r,n,o)});function nt(){return Ks(vu)}var bu=g("ZodNever",(e,t)=>{ns.init(e,t),x.init(e,t),e._zod.processJSONSchema=(r,n,o)=>yc(e,r,n,o)});function wu(e){return Ys(bu,e)}var ku=g("ZodArray",(e,t)=>{os.init(e,t),x.init(e,t),e._zod.processJSONSchema=(r,n,o)=>kc(e,r,n,o),e.element=t.element,ge(e,"ZodArray",{min(r,n){return this.check(Ie(r,n))},nonempty(r){return this.check(Ie(1,r))},max(r,n){return this.check($r(r,n))},length(r,n){return this.check(Nr(r,n))},unwrap(){return this.element}})});function Br(e,t){return uc(ku,e,t)}var Cu=g("ZodObject",(e,t)=>{as.init(e,t),x.init(e,t),e._zod.processJSONSchema=(r,n,o)=>Cc(e,r,n,o),S(e,"shape",()=>t.shape),ge(e,"ZodObject",{keyof(){return it(Object.keys(this._zod.def.shape))},catchall(r){return this.clone({...this._zod.def,catchall:r})},passthrough(){return this.clone({...this._zod.def,catchall:nt()})},loose(){return this.clone({...this._zod.def,catchall:nt()})},strict(){return this.clone({...this._zod.def,catchall:wu()})},strip(){return this.clone({...this._zod.def,catchall:void 0})},extend(r){return zi(this,r)},safeExtend(r){return Ti(this,r)},merge(r){return xi(this,r)},pick(r){return Si(this,r)},omit(r){return Ei(this,r)},partial(...r){return Pi(Gr,this,r[0])},required(...r){return Ii(Jr,this,r[0])}})});function W(e,t){return new Cu({type:"object",shape:e??{},..._(t)})}var Su=g("ZodUnion",(e,t)=>{ss.init(e,t),x.init(e,t),e._zod.processJSONSchema=(r,n,o)=>Sc(e,r,n,o),e.options=t.options});function Eu(e,t){return new Su({type:"union",options:e,..._(t)})}var zu=g("ZodIntersection",(e,t)=>{cs.init(e,t),x.init(e,t),e._zod.processJSONSchema=(r,n,o)=>Ec(e,r,n,o)});function Tu(e,t){return new zu({type:"intersection",left:e,right:t})}var ot=g("ZodEnum",(e,t)=>{us.init(e,t),x.init(e,t),e._zod.processJSONSchema=(n,o,i)=>vc(e,n,o,i),e.enum=t.entries,e.options=Object.values(t.entries);const r=new Set(Object.keys(t.entries));e.extract=(n,o)=>{const i={};for(const a of n)if(r.has(a))i[a]=t.entries[a];else throw new Error(`Key ${a} not found in enum`);return new ot({...t,checks:[],..._(o),entries:i})},e.exclude=(n,o)=>{const i={...t.entries};for(const a of n)if(r.has(a))delete i[a];else throw new Error(`Key ${a} not found in enum`);return new ot({...t,checks:[],..._(o),entries:i})}});function it(e,t){return new ot({type:"enum",entries:Array.isArray(e)?Object.fromEntries(e.map(r=>[r,r])):e,..._(t)})}var xu=g("ZodTransform",(e,t)=>{ls.init(e,t),x.init(e,t),e._zod.processJSONSchema=(r,n,o)=>wc(e,r,n,o),e._zod.parse=(r,n)=>{if(n.direction==="backward")throw new Yt(e.constructor.name);r.addIssue=i=>{if(typeof i=="string")r.issues.push(fe(i,r.value,t));else{const a=i;a.fatal&&(a.continue=!1),a.code??(a.code="custom"),a.input??(a.input=r.value),a.inst??(a.inst=e),r.issues.push(fe(a))}};const o=t.transform(r.value,r);return o instanceof Promise?o.then(i=>(r.value=i,r.fallback=!0,r)):(r.value=o,r.fallback=!0,r)}});function Pu(e){return new xu({type:"transform",transform:e})}var Gr=g("ZodOptional",(e,t)=>{kr.init(e,t),x.init(e,t),e._zod.processJSONSchema=(r,n,o)=>Zr(e,r,n,o),e.unwrap=()=>e._zod.def.innerType});function qr(e){return new Gr({type:"optional",innerType:e})}var Iu=g("ZodExactOptional",(e,t)=>{ds.init(e,t),x.init(e,t),e._zod.processJSONSchema=(r,n,o)=>Zr(e,r,n,o),e.unwrap=()=>e._zod.def.innerType});function Au(e){return new Iu({type:"optional",innerType:e})}var $u=g("ZodNullable",(e,t)=>{fs.init(e,t),x.init(e,t),e._zod.processJSONSchema=(r,n,o)=>zc(e,r,n,o),e.unwrap=()=>e._zod.def.innerType});function Vr(e){return new $u({type:"nullable",innerType:e})}var Nu=g("ZodDefault",(e,t)=>{ps.init(e,t),x.init(e,t),e._zod.processJSONSchema=(r,n,o)=>xc(e,r,n,o),e.unwrap=()=>e._zod.def.innerType,e.removeDefault=e.unwrap});function Ou(e,t){return new Nu({type:"default",innerType:e,get defaultValue(){return typeof t=="function"?t():rr(t)}})}var Lu=g("ZodPrefault",(e,t)=>{gs.init(e,t),x.init(e,t),e._zod.processJSONSchema=(r,n,o)=>Pc(e,r,n,o),e.unwrap=()=>e._zod.def.innerType});function Ru(e,t){return new Lu({type:"prefault",innerType:e,get defaultValue(){return typeof t=="function"?t():rr(t)}})}var Jr=g("ZodNonOptional",(e,t)=>{ms.init(e,t),x.init(e,t),e._zod.processJSONSchema=(r,n,o)=>Tc(e,r,n,o),e.unwrap=()=>e._zod.def.innerType});function Zu(e,t){return new Jr({type:"nonoptional",innerType:e,..._(t)})}var Du=g("ZodCatch",(e,t)=>{hs.init(e,t),x.init(e,t),e._zod.processJSONSchema=(r,n,o)=>Ic(e,r,n,o),e.unwrap=()=>e._zod.def.innerType,e.removeCatch=e.unwrap});function Uu(e,t){return new Du({type:"catch",innerType:e,catchValue:typeof t=="function"?t:()=>t})}var ju=g("ZodPipe",(e,t)=>{ys.init(e,t),x.init(e,t),e._zod.processJSONSchema=(r,n,o)=>Ac(e,r,n,o),e.in=t.in,e.out=t.out});function Wr(e,t){return new ju({type:"pipe",in:e,out:t})}var Mu=g("ZodReadonly",(e,t)=>{_s.init(e,t),x.init(e,t),e._zod.processJSONSchema=(r,n,o)=>$c(e,r,n,o),e.unwrap=()=>e._zod.def.innerType});function Fu(e){return new Mu({type:"readonly",innerType:e})}var Bu=g("ZodCustom",(e,t)=>{vs.init(e,t),x.init(e,t),e._zod.processJSONSchema=(r,n,o)=>bc(e,r,n,o)});function Gu(e,t={}){return lc(Bu,e,t)}function qu(e,t){return dc(e,t)}var Vu=W({sku:L(),name:L(),imageUrl:L().url().optional(),price:L().optional(),originalPrice:L().optional(),discountPercent:me().optional(),url:L().url(),brand:L().optional(),rating:me().min(0).max(5).optional(),reviewCount:me().int().nonnegative().optional()}),Ju=W({layout:it(["grid","carousel"]).optional(),columns:me().int().positive().optional()}),Wu=W({product:Vu,index:me().int().nonnegative(),discountType:it(["strike-through","badge","inline"]).optional()}),Hu=W({sku:L(),label:L().optional(),cartCode:L()}),Ku=W({actions:Br(W({label:L(),action:W({title:L(),type:L(),payload:nt().optional()})}))}),Yu=W({message:L().optional()}),Xu={components:{ProductGrid:{schema:Ju,description:"Outer grid or carousel container for similar products."},ProductCard:{schema:Wu,description:"A single product card with image, title, price, and actions."},AddToCartButton:{schema:Hu,description:"Add-to-cart CTA rendered inside or below a product card."},QuickActions:{schema:Ku,description:"A row of quick-action buttons below product info."},EmptyState:{schema:Yu,description:"Empty state shown when no similar products are available."}}};F.GengageSimRel=Bt,F.createDefaultSimRelUISpecRegistry=jt,F.createSimRelRenderer=yi,F.createSimRelWidget=Yo,F.defaultSimRelUnknownUISpecRenderer=Ge,F.renderSimRelUISpec=Mt,F.simRelCatalog=Xu})(this.Gengage=this.Gengage||{});
|
|
111
|
+
Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.`)}for(const a of e.seen.entries()){const s=a[1];if(t===a[0]){i(a);continue}if(e.external){const c=e.external.registry.get(a[0])?.id;if(t!==a[0]&&c){i(a);continue}}if(e.metadataRegistry.get(a[0])?.id){i(a);continue}if(s.cycle){i(a);continue}if(s.count>1&&e.reused==="ref"){i(a);continue}}}function qr(e,t){const r=e.seen.get(t);if(!r)throw new Error("Unprocessed schema. This is a bug in Zod.");const n=s=>{const c=e.seen.get(s);if(c.ref===null)return;const u=c.def??c.schema,l={...u},d=c.ref;if(c.ref=null,d){n(d);const m=e.seen.get(d),y=m.schema;if(y.$ref&&(e.target==="draft-07"||e.target==="draft-04"||e.target==="openapi-3.0")?(u.allOf=u.allOf??[],u.allOf.push(y)):Object.assign(u,y),Object.assign(u,l),s._zod.parent===d)for(const p in u)p==="$ref"||p==="allOf"||p in l||delete u[p];if(y.$ref&&m.def)for(const p in u)p==="$ref"||p==="allOf"||p in m.def&&JSON.stringify(u[p])===JSON.stringify(m.def[p])&&delete u[p]}const f=s._zod.parent;if(f&&f!==d){n(f);const m=e.seen.get(f);if(m?.schema.$ref&&(u.$ref=m.schema.$ref,m.def))for(const y in u)y==="$ref"||y==="allOf"||y in m.def&&JSON.stringify(u[y])===JSON.stringify(m.def[y])&&delete u[y]}e.override({zodSchema:s,jsonSchema:u,path:c.path??[]})};for(const s of[...e.seen.entries()].reverse())n(s[0]);const o={};if(e.target==="draft-2020-12"?o.$schema="https://json-schema.org/draft/2020-12/schema":e.target==="draft-07"?o.$schema="http://json-schema.org/draft-07/schema#":e.target==="draft-04"?o.$schema="http://json-schema.org/draft-04/schema#":e.target,e.external?.uri){const s=e.external.registry.get(t)?.id;if(!s)throw new Error("Schema is missing an `id` property");o.$id=e.external.uri(s)}Object.assign(o,r.def??r.schema);const i=e.metadataRegistry.get(t)?.id;i!==void 0&&o.id===i&&delete o.id;const a=e.external?.defs??{};for(const s of e.seen.entries()){const c=s[1];c.def&&c.defId&&(c.def.id===c.defId&&delete c.def.id,a[c.defId]=c.def)}e.external||Object.keys(a).length>0&&(e.target==="draft-2020-12"?o.$defs=a:o.definitions=a);try{const s=JSON.parse(JSON.stringify(o));return Object.defineProperty(s,"~standard",{value:{...t["~standard"],jsonSchema:{input:Oe(t,"input",e.processors),output:Oe(t,"output",e.processors)}},enumerable:!1,writable:!1}),s}catch{throw new Error("Error converting schema to JSON.")}}function $(e,t){const r=t??{seen:new Set};if(r.seen.has(e))return!1;r.seen.add(e);const n=e._zod.def;if(n.type==="transform")return!0;if(n.type==="array")return $(n.element,r);if(n.type==="set")return $(n.valueType,r);if(n.type==="lazy")return $(n.getter(),r);if(n.type==="promise"||n.type==="optional"||n.type==="nonoptional"||n.type==="nullable"||n.type==="readonly"||n.type==="default"||n.type==="prefault")return $(n.innerType,r);if(n.type==="intersection")return $(n.left,r)||$(n.right,r);if(n.type==="record"||n.type==="map")return $(n.keyType,r)||$(n.valueType,r);if(n.type==="pipe")return e._zod.traits.has("$ZodCodec")?!0:$(n.in,r)||$(n.out,r);if(n.type==="object"){for(const o in n.shape)if($(n.shape[o],r))return!0;return!1}if(n.type==="union"){for(const o of n.options)if($(o,r))return!0;return!1}if(n.type==="tuple"){for(const o of n.items)if($(o,r))return!0;return!!(n.rest&&$(n.rest,r))}return!1}var Mc=(e,t={})=>r=>{const n=Br({...r,processors:t});return A(e,n),Gr(n,e),qr(n,e)},Oe=(e,t,r={})=>n=>{const{libraryOptions:o,target:i}=n??{},a=Br({...o??{},target:i,io:t,processors:r});return A(e,a),Gr(a,e),qr(a,e)},Fc={guid:"uuid",url:"uri",datetime:"date-time",json_string:"json-string",regex:""},Bc=(e,t,r,n)=>{const o=r;o.type="string";const{minimum:i,maximum:a,format:s,patterns:c,contentEncoding:u}=e._zod.bag;if(typeof i=="number"&&(o.minLength=i),typeof a=="number"&&(o.maxLength=a),s&&(o.format=Fc[s]??s,o.format===""&&delete o.format,s==="time"&&delete o.format),u&&(o.contentEncoding=u),c&&c.size>0){const l=[...c];l.length===1?o.pattern=l[0].source:l.length>1&&(o.allOf=[...l.map(d=>({...t.target==="draft-07"||t.target==="draft-04"||t.target==="openapi-3.0"?{type:"string"}:{},pattern:d.source}))])}},Gc=(e,t,r,n)=>{const o=r,{minimum:i,maximum:a,format:s,multipleOf:c,exclusiveMaximum:u,exclusiveMinimum:l}=e._zod.bag;typeof s=="string"&&s.includes("int")?o.type="integer":o.type="number";const d=typeof l=="number"&&l>=(i??Number.NEGATIVE_INFINITY),f=typeof u=="number"&&u<=(a??Number.POSITIVE_INFINITY),m=t.target==="draft-04"||t.target==="openapi-3.0";d?m?(o.minimum=l,o.exclusiveMinimum=!0):o.exclusiveMinimum=l:typeof i=="number"&&(o.minimum=i),f?m?(o.maximum=u,o.exclusiveMaximum=!0):o.exclusiveMaximum=u:typeof a=="number"&&(o.maximum=a),typeof c=="number"&&(o.multipleOf=c)},qc=(e,t,r,n)=>{r.not={}},Jc=(e,t,r,n)=>{},Vc=(e,t,r,n)=>{const o=e._zod.def,i=sr(o.entries);i.every(a=>typeof a=="number")&&(r.type="number"),i.every(a=>typeof a=="string")&&(r.type="string"),r.enum=i},Wc=(e,t,r,n)=>{if(t.unrepresentable==="throw")throw new Error("Custom types cannot be represented in JSON Schema")},Hc=(e,t,r,n)=>{if(t.unrepresentable==="throw")throw new Error("Transforms cannot be represented in JSON Schema")},Kc=(e,t,r,n)=>{const o=r,i=e._zod.def,{minimum:a,maximum:s}=e._zod.bag;typeof a=="number"&&(o.minItems=a),typeof s=="number"&&(o.maxItems=s),o.type="array",o.items=A(i.element,t,{...n,path:[...n.path,"items"]})},Yc=(e,t,r,n)=>{const o=r,i=e._zod.def;o.type="object",o.properties={};const a=i.shape;for(const u in a)o.properties[u]=A(a[u],t,{...n,path:[...n.path,"properties",u]});const s=new Set(Object.keys(a)),c=new Set([...s].filter(u=>{const l=i.shape[u]._zod;return t.io==="input"?l.optin===void 0:l.optout===void 0}));c.size>0&&(o.required=Array.from(c)),i.catchall?._zod.def.type==="never"?o.additionalProperties=!1:i.catchall?i.catchall&&(o.additionalProperties=A(i.catchall,t,{...n,path:[...n.path,"additionalProperties"]})):t.io==="output"&&(o.additionalProperties=!1)},Xc=(e,t,r,n)=>{const o=e._zod.def,i=o.inclusive===!1,a=o.options.map((s,c)=>A(s,t,{...n,path:[...n.path,i?"oneOf":"anyOf",c]}));i?r.oneOf=a:r.anyOf=a},Qc=(e,t,r,n)=>{const o=e._zod.def,i=A(o.left,t,{...n,path:[...n.path,"allOf",0]}),a=A(o.right,t,{...n,path:[...n.path,"allOf",1]}),s=c=>"allOf"in c&&Object.keys(c).length===1;r.allOf=[...s(i)?i.allOf:[i],...s(a)?a.allOf:[a]]},eu=(e,t,r,n)=>{const o=e._zod.def,i=A(o.innerType,t,n),a=t.seen.get(e);t.target==="openapi-3.0"?(a.ref=o.innerType,r.nullable=!0):r.anyOf=[i,{type:"null"}]},tu=(e,t,r,n)=>{const o=e._zod.def;A(o.innerType,t,n);const i=t.seen.get(e);i.ref=o.innerType},ru=(e,t,r,n)=>{const o=e._zod.def;A(o.innerType,t,n);const i=t.seen.get(e);i.ref=o.innerType,r.default=JSON.parse(JSON.stringify(o.defaultValue))},nu=(e,t,r,n)=>{const o=e._zod.def;A(o.innerType,t,n);const i=t.seen.get(e);i.ref=o.innerType,t.io==="input"&&(r._prefault=JSON.parse(JSON.stringify(o.defaultValue)))},ou=(e,t,r,n)=>{const o=e._zod.def;A(o.innerType,t,n);const i=t.seen.get(e);i.ref=o.innerType;let a;try{a=o.catchValue(void 0)}catch{throw new Error("Dynamic catch values are not supported in JSON Schema")}r.default=a},iu=(e,t,r,n)=>{const o=e._zod.def,i=o.in._zod.traits.has("$ZodTransform"),a=t.io==="input"?i?o.out:o.in:o.out;A(a,t,n);const s=t.seen.get(e);s.ref=a},au=(e,t,r,n)=>{const o=e._zod.def;A(o.innerType,t,n);const i=t.seen.get(e);i.ref=o.innerType,r.readOnly=!0},Jr=(e,t,r,n)=>{const o=e._zod.def;A(o.innerType,t,n);const i=t.seen.get(e);i.ref=o.innerType},su=g("ZodISODateTime",(e,t)=>{ms.init(e,t),T.init(e,t)});function cu(e){return _c(su,e)}var uu=g("ZodISODate",(e,t)=>{hs.init(e,t),T.init(e,t)});function lu(e){return vc(uu,e)}var du=g("ZodISOTime",(e,t)=>{ys.init(e,t),T.init(e,t)});function fu(e){return bc(du,e)}var pu=g("ZodISODuration",(e,t)=>{_s.init(e,t),T.init(e,t)});function gu(e){return wc(pu,e)}var mu=(e,t)=>{gr.init(e,t),e.name="ZodError",Object.defineProperties(e,{format:{value:r=>sa(e,r)},flatten:{value:r=>aa(e,r)},addIssue:{value:r=>{e.issues.push(r),e.message=JSON.stringify(e.issues,Ye,2)}},addIssues:{value:r=>{e.issues.push(...r),e.message=JSON.stringify(e.issues,Ye,2)}},isEmpty:{get(){return e.issues.length===0}}})},Z=g("ZodError",mu,{Parent:Error}),hu=rt(Z),yu=nt(Z),_u=ze(Z),vu=Ae(Z),bu=la(Z),wu=da(Z),ku=fa(Z),Su=pa(Z),Eu=ga(Z),Cu=ma(Z),Tu=ha(Z),xu=ya(Z),Vr=new WeakMap;function he(e,t,r){const n=Object.getPrototypeOf(e);let o=Vr.get(n);if(o||(o=new Set,Vr.set(n,o)),!o.has(t)){o.add(t);for(const i in r){const a=r[i];Object.defineProperty(n,i,{configurable:!0,enumerable:!1,get(){const s=a.bind(this);return Object.defineProperty(this,i,{configurable:!0,writable:!0,enumerable:!0,value:s}),s},set(s){Object.defineProperty(this,i,{configurable:!0,writable:!0,enumerable:!0,value:s})}})}}}var z=g("ZodType",(e,t)=>(x.init(e,t),Object.assign(e["~standard"],{jsonSchema:{input:Oe(e,"input"),output:Oe(e,"output")}}),e.toJSONSchema=Mc(e,{}),e.def=t,e.type=t.type,Object.defineProperty(e,"_def",{value:t}),e.parse=(r,n)=>hu(e,r,n,{callee:e.parse}),e.safeParse=(r,n)=>_u(e,r,n),e.parseAsync=async(r,n)=>yu(e,r,n,{callee:e.parseAsync}),e.safeParseAsync=async(r,n)=>vu(e,r,n),e.spa=e.safeParseAsync,e.encode=(r,n)=>bu(e,r,n),e.decode=(r,n)=>wu(e,r,n),e.encodeAsync=async(r,n)=>ku(e,r,n),e.decodeAsync=async(r,n)=>Su(e,r,n),e.safeEncode=(r,n)=>Eu(e,r,n),e.safeDecode=(r,n)=>Cu(e,r,n),e.safeEncodeAsync=async(r,n)=>Tu(e,r,n),e.safeDecodeAsync=async(r,n)=>xu(e,r,n),he(e,"ZodType",{check(...r){const n=this.def;return this.clone(W(n,{checks:[...n.checks??[],...r.map(o=>typeof o=="function"?{_zod:{check:o,def:{check:"custom"},onattach:[]}}:o)]}),{parent:!0})},with(...r){return this.check(...r)},clone(r,n){return H(this,r,n)},brand(){return this},register(r,n){return r.add(this,n),this},refine(r,n){return this.check(_l(r,n))},superRefine(r,n){return this.check(vl(r,n))},overwrite(r){return this.check(ie(r))},optional(){return en(this)},exactOptional(){return il(this)},nullable(){return tn(this)},nullish(){return en(tn(this))},nonoptional(r){return dl(this,r)},array(){return Xr(this)},or(r){return Qu([this,r])},and(r){return tl(this,r)},transform(r){return nn(this,nl(r))},default(r){return cl(this,r)},prefault(r){return ll(this,r)},catch(r){return pl(this,r)},pipe(r){return nn(this,r)},readonly(){return hl(this)},describe(r){const n=this.clone();return me.add(n,{description:r}),n},meta(...r){if(r.length===0)return me.get(this);const n=this.clone();return me.add(n,r[0]),n},isOptional(){return this.safeParse(void 0).success},isNullable(){return this.safeParse(null).success},apply(r){return r(this)}}),Object.defineProperty(e,"description",{get(){return me.get(e)?.description},configurable:!0}),e)),Wr=g("_ZodString",(e,t)=>{ot.init(e,t),z.init(e,t),e._zod.processJSONSchema=(n,o,i)=>Bc(e,n,o,i);const r=e._zod.bag;e.format=r.format??null,e.minLength=r.minimum??null,e.maxLength=r.maximum??null,he(e,"_ZodString",{regex(...n){return this.check(Tc(...n))},includes(...n){return this.check(Ac(...n))},startsWith(...n){return this.check(Pc(...n))},endsWith(...n){return this.check(Ic(...n))},min(...n){return this.check(Ne(...n))},max(...n){return this.check(Mr(...n))},length(...n){return this.check(Fr(...n))},nonempty(...n){return this.check(Ne(1,...n))},lowercase(n){return this.check(xc(n))},uppercase(n){return this.check(zc(n))},trim(){return this.check(Nc())},normalize(...n){return this.check($c(...n))},toLowerCase(){return this.check(Oc())},toUpperCase(){return this.check(Lc())},slugify(){return this.check(Rc())}})}),zu=g("ZodString",(e,t)=>{ot.init(e,t),Wr.init(e,t),e.email=r=>e.check(Ys(Au,r)),e.url=r=>e.check(rc(Pu,r)),e.jwt=r=>e.check(yc(qu,r)),e.emoji=r=>e.check(nc(Iu,r)),e.guid=r=>e.check(Zr(Hr,r)),e.uuid=r=>e.check(Xs(Le,r)),e.uuidv4=r=>e.check(Qs(Le,r)),e.uuidv6=r=>e.check(ec(Le,r)),e.uuidv7=r=>e.check(tc(Le,r)),e.nanoid=r=>e.check(oc($u,r)),e.guid=r=>e.check(Zr(Hr,r)),e.cuid=r=>e.check(ic(Nu,r)),e.cuid2=r=>e.check(ac(Ou,r)),e.ulid=r=>e.check(sc(Lu,r)),e.base64=r=>e.check(gc(Fu,r)),e.base64url=r=>e.check(mc(Bu,r)),e.xid=r=>e.check(cc(Ru,r)),e.ksuid=r=>e.check(uc(Zu,r)),e.ipv4=r=>e.check(lc(Du,r)),e.ipv6=r=>e.check(dc(Uu,r)),e.cidrv4=r=>e.check(fc(ju,r)),e.cidrv6=r=>e.check(pc(Mu,r)),e.e164=r=>e.check(hc(Gu,r)),e.datetime=r=>e.check(cu(r)),e.date=r=>e.check(lu(r)),e.time=r=>e.check(fu(r)),e.duration=r=>e.check(gu(r))});function L(e){return Ks(zu,e)}var T=g("ZodStringFormat",(e,t)=>{C.init(e,t),Wr.init(e,t)}),Au=g("ZodEmail",(e,t)=>{as.init(e,t),T.init(e,t)}),Hr=g("ZodGUID",(e,t)=>{os.init(e,t),T.init(e,t)}),Le=g("ZodUUID",(e,t)=>{is.init(e,t),T.init(e,t)}),Pu=g("ZodURL",(e,t)=>{ss.init(e,t),T.init(e,t)}),Iu=g("ZodEmoji",(e,t)=>{cs.init(e,t),T.init(e,t)}),$u=g("ZodNanoID",(e,t)=>{us.init(e,t),T.init(e,t)}),Nu=g("ZodCUID",(e,t)=>{ls.init(e,t),T.init(e,t)}),Ou=g("ZodCUID2",(e,t)=>{ds.init(e,t),T.init(e,t)}),Lu=g("ZodULID",(e,t)=>{fs.init(e,t),T.init(e,t)}),Ru=g("ZodXID",(e,t)=>{ps.init(e,t),T.init(e,t)}),Zu=g("ZodKSUID",(e,t)=>{gs.init(e,t),T.init(e,t)}),Du=g("ZodIPv4",(e,t)=>{vs.init(e,t),T.init(e,t)}),Uu=g("ZodIPv6",(e,t)=>{bs.init(e,t),T.init(e,t)}),ju=g("ZodCIDRv4",(e,t)=>{ws.init(e,t),T.init(e,t)}),Mu=g("ZodCIDRv6",(e,t)=>{ks.init(e,t),T.init(e,t)}),Fu=g("ZodBase64",(e,t)=>{Ss.init(e,t),T.init(e,t)}),Bu=g("ZodBase64URL",(e,t)=>{Cs.init(e,t),T.init(e,t)}),Gu=g("ZodE164",(e,t)=>{Ts.init(e,t),T.init(e,t)}),qu=g("ZodJWT",(e,t)=>{zs.init(e,t),T.init(e,t)}),Kr=g("ZodNumber",(e,t)=>{Er.init(e,t),z.init(e,t),e._zod.processJSONSchema=(n,o,i)=>Gc(e,n,o,i),he(e,"ZodNumber",{gt(n,o){return this.check(Ur(n,o))},gte(n,o){return this.check(st(n,o))},min(n,o){return this.check(st(n,o))},lt(n,o){return this.check(Dr(n,o))},lte(n,o){return this.check(at(n,o))},max(n,o){return this.check(at(n,o))},int(n){return this.check(Yr(n))},safe(n){return this.check(Yr(n))},positive(n){return this.check(Ur(0,n))},nonnegative(n){return this.check(st(0,n))},negative(n){return this.check(Dr(0,n))},nonpositive(n){return this.check(at(0,n))},multipleOf(n,o){return this.check(jr(n,o))},step(n,o){return this.check(jr(n,o))},finite(){return this}});const r=e._zod.bag;e.minValue=Math.max(r.minimum??Number.NEGATIVE_INFINITY,r.exclusiveMinimum??Number.NEGATIVE_INFINITY)??null,e.maxValue=Math.min(r.maximum??Number.POSITIVE_INFINITY,r.exclusiveMaximum??Number.POSITIVE_INFINITY)??null,e.isInt=(r.format??"").includes("int")||Number.isSafeInteger(r.multipleOf??.5),e.isFinite=!0,e.format=r.format??null});function ye(e){return kc(Kr,e)}var Ju=g("ZodNumberFormat",(e,t)=>{As.init(e,t),Kr.init(e,t)});function Yr(e){return Sc(Ju,e)}var Vu=g("ZodUnknown",(e,t)=>{Ps.init(e,t),z.init(e,t),e._zod.processJSONSchema=(r,n,o)=>Jc(e,r,n,o)});function ct(){return Ec(Vu)}var Wu=g("ZodNever",(e,t)=>{Is.init(e,t),z.init(e,t),e._zod.processJSONSchema=(r,n,o)=>qc(e,r,n,o)});function Hu(e){return Cc(Wu,e)}var Ku=g("ZodArray",(e,t)=>{$s.init(e,t),z.init(e,t),e._zod.processJSONSchema=(r,n,o)=>Kc(e,r,n,o),e.element=t.element,he(e,"ZodArray",{min(r,n){return this.check(Ne(r,n))},nonempty(r){return this.check(Ne(1,r))},max(r,n){return this.check(Mr(r,n))},length(r,n){return this.check(Fr(r,n))},unwrap(){return this.element}})});function Xr(e,t){return Zc(Ku,e,t)}var Yu=g("ZodObject",(e,t)=>{Os.init(e,t),z.init(e,t),e._zod.processJSONSchema=(r,n,o)=>Yc(e,r,n,o),E(e,"shape",()=>t.shape),he(e,"ZodObject",{keyof(){return lt(Object.keys(this._zod.def.shape))},catchall(r){return this.clone({...this._zod.def,catchall:r})},passthrough(){return this.clone({...this._zod.def,catchall:ct()})},loose(){return this.clone({...this._zod.def,catchall:ct()})},strict(){return this.clone({...this._zod.def,catchall:Hu()})},strip(){return this.clone({...this._zod.def,catchall:void 0})},extend(r){return ea(this,r)},safeExtend(r){return ta(this,r)},merge(r){return ra(this,r)},pick(r){return Xi(this,r)},omit(r){return Qi(this,r)},partial(...r){return na(Qr,this,r[0])},required(...r){return oa(rn,this,r[0])}})});function K(e,t){return new Yu({type:"object",shape:e??{},..._(t)})}var Xu=g("ZodUnion",(e,t)=>{Ls.init(e,t),z.init(e,t),e._zod.processJSONSchema=(r,n,o)=>Xc(e,r,n,o),e.options=t.options});function Qu(e,t){return new Xu({type:"union",options:e,..._(t)})}var el=g("ZodIntersection",(e,t)=>{Rs.init(e,t),z.init(e,t),e._zod.processJSONSchema=(r,n,o)=>Qc(e,r,n,o)});function tl(e,t){return new el({type:"intersection",left:e,right:t})}var ut=g("ZodEnum",(e,t)=>{Zs.init(e,t),z.init(e,t),e._zod.processJSONSchema=(n,o,i)=>Vc(e,n,o,i),e.enum=t.entries,e.options=Object.values(t.entries);const r=new Set(Object.keys(t.entries));e.extract=(n,o)=>{const i={};for(const a of n)if(r.has(a))i[a]=t.entries[a];else throw new Error(`Key ${a} not found in enum`);return new ut({...t,checks:[],..._(o),entries:i})},e.exclude=(n,o)=>{const i={...t.entries};for(const a of n)if(r.has(a))delete i[a];else throw new Error(`Key ${a} not found in enum`);return new ut({...t,checks:[],..._(o),entries:i})}});function lt(e,t){return new ut({type:"enum",entries:Array.isArray(e)?Object.fromEntries(e.map(r=>[r,r])):e,..._(t)})}var rl=g("ZodTransform",(e,t)=>{Ds.init(e,t),z.init(e,t),e._zod.processJSONSchema=(r,n,o)=>Hc(e,r,n,o),e._zod.parse=(r,n)=>{if(n.direction==="backward")throw new ar(e.constructor.name);r.addIssue=i=>{if(typeof i=="string")r.issues.push(ge(i,r.value,t));else{const a=i;a.fatal&&(a.continue=!1),a.code??(a.code="custom"),a.input??(a.input=r.value),a.inst??(a.inst=e),r.issues.push(ge(a))}};const o=t.transform(r.value,r);return o instanceof Promise?o.then(i=>(r.value=i,r.fallback=!0,r)):(r.value=o,r.fallback=!0,r)}});function nl(e){return new rl({type:"transform",transform:e})}var Qr=g("ZodOptional",(e,t)=>{Ir.init(e,t),z.init(e,t),e._zod.processJSONSchema=(r,n,o)=>Jr(e,r,n,o),e.unwrap=()=>e._zod.def.innerType});function en(e){return new Qr({type:"optional",innerType:e})}var ol=g("ZodExactOptional",(e,t)=>{Us.init(e,t),z.init(e,t),e._zod.processJSONSchema=(r,n,o)=>Jr(e,r,n,o),e.unwrap=()=>e._zod.def.innerType});function il(e){return new ol({type:"optional",innerType:e})}var al=g("ZodNullable",(e,t)=>{js.init(e,t),z.init(e,t),e._zod.processJSONSchema=(r,n,o)=>eu(e,r,n,o),e.unwrap=()=>e._zod.def.innerType});function tn(e){return new al({type:"nullable",innerType:e})}var sl=g("ZodDefault",(e,t)=>{Ms.init(e,t),z.init(e,t),e._zod.processJSONSchema=(r,n,o)=>ru(e,r,n,o),e.unwrap=()=>e._zod.def.innerType,e.removeDefault=e.unwrap});function cl(e,t){return new sl({type:"default",innerType:e,get defaultValue(){return typeof t=="function"?t():dr(t)}})}var ul=g("ZodPrefault",(e,t)=>{Fs.init(e,t),z.init(e,t),e._zod.processJSONSchema=(r,n,o)=>nu(e,r,n,o),e.unwrap=()=>e._zod.def.innerType});function ll(e,t){return new ul({type:"prefault",innerType:e,get defaultValue(){return typeof t=="function"?t():dr(t)}})}var rn=g("ZodNonOptional",(e,t)=>{Bs.init(e,t),z.init(e,t),e._zod.processJSONSchema=(r,n,o)=>tu(e,r,n,o),e.unwrap=()=>e._zod.def.innerType});function dl(e,t){return new rn({type:"nonoptional",innerType:e,..._(t)})}var fl=g("ZodCatch",(e,t)=>{Gs.init(e,t),z.init(e,t),e._zod.processJSONSchema=(r,n,o)=>ou(e,r,n,o),e.unwrap=()=>e._zod.def.innerType,e.removeCatch=e.unwrap});function pl(e,t){return new fl({type:"catch",innerType:e,catchValue:typeof t=="function"?t:()=>t})}var gl=g("ZodPipe",(e,t)=>{qs.init(e,t),z.init(e,t),e._zod.processJSONSchema=(r,n,o)=>iu(e,r,n,o),e.in=t.in,e.out=t.out});function nn(e,t){return new gl({type:"pipe",in:e,out:t})}var ml=g("ZodReadonly",(e,t)=>{Js.init(e,t),z.init(e,t),e._zod.processJSONSchema=(r,n,o)=>au(e,r,n,o),e.unwrap=()=>e._zod.def.innerType});function hl(e){return new ml({type:"readonly",innerType:e})}var yl=g("ZodCustom",(e,t)=>{Vs.init(e,t),z.init(e,t),e._zod.processJSONSchema=(r,n,o)=>Wc(e,r,n,o)});function _l(e,t={}){return Dc(yl,e,t)}function vl(e,t){return Uc(e,t)}var bl=K({sku:L(),name:L(),imageUrl:L().url().optional(),price:L().optional(),originalPrice:L().optional(),discountPercent:ye().optional(),url:L().url(),brand:L().optional(),rating:ye().min(0).max(5).optional(),reviewCount:ye().int().nonnegative().optional()}),wl=K({layout:lt(["grid","carousel"]).optional(),columns:ye().int().positive().optional()}),kl=K({product:bl,index:ye().int().nonnegative(),discountType:lt(["strike-through","badge","inline"]).optional()}),Sl=K({sku:L(),label:L().optional(),cartCode:L()}),El=K({actions:Xr(K({label:L(),action:K({title:L(),type:L(),payload:ct().optional()})}))}),Cl=K({message:L().optional()}),Tl={components:{ProductGrid:{schema:wl,description:"Outer grid or carousel container for similar products."},ProductCard:{schema:kl,description:"A single product card with image, title, price, and actions."},AddToCartButton:{schema:Sl,description:"Add-to-cart CTA rendered inside or below a product card."},QuickActions:{schema:El,description:"A row of quick-action buttons below product info."},EmptyState:{schema:Cl,description:"Empty state shown when no similar products are available."}}};G.GengageSimRel=Xt,G.createDefaultSimRelUISpecRegistry=Ht,G.createSimRelRenderer=qi,G.createSimRelWidget=Ci,G.defaultSimRelUnknownUISpecRenderer=He,G.renderSimRelUISpec=Kt,G.simRelCatalog=Tl})(this.Gengage=this.Gengage||{});
|