@gengage/assistant-fe 0.6.22 → 0.6.24
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/{api-paths-DE3_TyTw.js → api-paths-Bgg7-gUO.js} +144 -154
- package/dist/chat/catalog.d.ts +8 -0
- package/dist/chat/types.d.ts +2 -1
- package/dist/{chat-rvSffJXw.js → chat-CIfQyuBl.js} +26 -21
- package/dist/chat-runtime.js +1 -1
- package/dist/chat.iife.js +44 -44
- package/dist/chat.js +2 -2
- package/dist/{common-BWnFHbvv.js → common-CzYj5Rg3.js} +1 -1
- package/dist/common.js +5 -5
- package/dist/{connection-warning-Tk4ZjgMi.js → connection-warning-B1BbjAAP.js} +1 -1
- package/dist/{fastIntent-DIhMlxVd.js → fastIntent-DtvKVSIo.js} +1 -1
- package/dist/index.js +10 -10
- package/dist/native.iife.js +17 -17
- package/dist/qna-runtime.js +1 -1
- package/dist/qna.iife.js +7 -7
- package/dist/qna.js +1 -1
- package/dist/{runtime-wEP7N2Hr.js → runtime-BwKxrcVs.js} +3 -3
- package/dist/{runtime-H5hNQQKm.js → runtime-C2RFDcMJ.js} +1816 -1778
- package/dist/{runtime-CjJy8KKu.js → runtime-DLqO5X8q.js} +3 -3
- package/dist/{simbut-BlBLtgVy.js → simbut-C5AbbA4L.js} +1 -1
- package/dist/simbut.iife.js +1 -1
- package/dist/simbut.js +1 -1
- package/dist/{simrel-S6-OsWJ9.js → simrel-mH70kmF9.js} +1 -1
- package/dist/simrel-runtime.js +1 -1
- package/dist/simrel.iife.js +6 -6
- package/dist/simrel.js +2 -2
- package/dist/{widget-base-e4JwEf2I.js → widget-base-Cfjsry5x.js} +1 -1
- package/package.json +1 -1
package/dist/simrel.iife.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
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","button"]),un=new Set(["script","iframe","object","embed","form","input","textarea","select","style","link","meta","template","noscript"]),dt={"*":new Set(["class"]),a:new Set(["href","target","rel"]),img:new Set(["src","alt","width","height"]),button:new Set(["type","disabled","aria-label","aria-hidden","title"]),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"))}if(n==="button"){const c=r.getAttribute("type")?.trim().toLowerCase();(!c||c!=="button")&&r.setAttribute("type","button")}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=`
|
|
1
|
+
(function(G){Object.defineProperty(G,Symbol.toStringTag,{value:"Module"});var an=({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 sn(e){const t=document.createElement("div");if(t.className=e.containerClassName,!e.spec.elements[e.spec.root])return t;const r=e.unknownRenderer??an,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 cn(e,t){if(!t)return e;const r={...e};for(const[n,o]of Object.entries(t))o&&(r[n]=o);return r}var un=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","button"]),ln=new Set(["script","iframe","object","embed","form","input","textarea","select","style","link","meta","template","noscript"]),dt={"*":new Set(["class"]),a:new Set(["href","target","rel"]),img:new Set(["src","alt","width","height"]),button:new Set(["type","disabled","aria-label","aria-hidden","title"]),div:new Set(["style"]),span:new Set(["style"]),p:new Set(["style"])};function dn(e){return/^\s*javascript\s*:/i.test(e)}var fn=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"]),pn=/url\s*\(|expression\s*\(|javascript\s*:|\bimport\b|-moz-binding|behavior\s*:/i;function gn(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();fn.has(i)&&(pn.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(ln.has(n)){r.parentNode?.removeChild(r);return}if(!un.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(dn(c.value)){r.removeAttribute(c.name);continue}if(u==="style"){const l=gn(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"))}if(n==="button"){const c=r.getAttribute("type")?.trim().toLowerCase();(!c||c!=="button")&&r.setAttribute("type","button")}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 mn(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 hn(){return typeof window<"u"&&Array.isArray(window.dataLayer)}function Ze(e,t){const r={event:e,...t};hn()&&window.dataLayer.push(r)}function yn(e){Ze("gengage-on-init",{gengage_widget:e})}function gt(e){Ze("gengage-show",{gengage_widget:e})}function _n(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 vn(){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 bn(e){return{sessionId:e?.sessionId??vn(),...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 wn(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",kn=4200,Sn=1500,En=15e3,Cn=["--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,Tn=[/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 xn(e){if(typeof navigator<"u"&&navigator.onLine===!1)return!0;const t=e instanceof Error?e.message.trim():"";return t?Tn.some(r=>r.test(t)):!1}function zn(e,t){return xn(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 An(){_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;On();const r=In();$n(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=Pn(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()},Nn(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 Pn(e){switch(e){case"chat":return"Chat warning";case"qna":return"QnA warning";case"simrel":return"Widget warning";default:return"Connection warning"}}function In(){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 $n(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 Cn){const o=r.getPropertyValue(n).trim();o?e.style.setProperty(n,o):e.style.removeProperty(n)}}function Nn(e){return typeof e!="number"||!Number.isFinite(e)?kn:Math.min(En,Math.max(Sn,Math.round(e)))}function On(){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
2
|
#${q} {
|
|
3
3
|
position: fixed;
|
|
4
4
|
top: 16px;
|
|
@@ -44,10 +44,10 @@
|
|
|
44
44
|
transform: translateY(0);
|
|
45
45
|
}
|
|
46
46
|
}
|
|
47
|
-
`,document.head.appendChild(e)}var se=null;function
|
|
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:-200,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(`
|
|
47
|
+
`,document.head.appendChild(e)}var se=null;function Ln(){if(se!==null)return se;try{se=localStorage.getItem("gengage:debug")==="1"}catch{se=!1}return se}function je(e,t,r){if(!Ln())return;const n=[`[gengage:${e}]`,t];r!==void 0&&n.push(r),console.debug(...n)}var Rn=("0.6.24".trim(),"0.6.24".trim()),Zn=("iife-build".trim(),"iife-build".trim());function Dn(){if(typeof window>"u")return;const e=window;e.__gengageSdkRuntimeInfoLogged||(e.__gengageSdkRuntimeInfoLogged=!0,console.info(`[gengage] @gengage/assistant-fe v${Rn} (${Zn})`))}var Un=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=wn(e.theme);Dn(),this.config={...e,theme:t,session:bn(e.session)},this.root=this._resolveMount(e.mountTarget),this._applyTheme(t),An();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-${jn(t)}`;this.root.style.setProperty(n,r)}}}};function jn(e){return e.replace(/([A-Z])/g,"-$1").toLowerCase()}function Mn(e){const t=e?.trim();return t||"tr"}var Fn=8e3,Bn=5e3,Gn="https://www.google.com/favicon.ico",F=new Map,wt=!1,re=null,ce=null,X=!1;function qn(e){return typeof e=="string"&&e.toLowerCase().startsWith("tr")}function kt(e){return qn(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 Jn(){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(Gn,{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,Jn(),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())},Bn)))},Fn))}function Vn(){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 Wn(e){Vn();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 Hn={process_action:"/process_action",launcher_action:"/launcher_action",similar_products:"/similar_products",product_groupings:"/product_groupings"};function Kn(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`${Kn(t?.middlewareUrl)}/chat${Hn[e]}`}function Tt(e){return typeof e=="object"&&e!==null&&typeof e.type=="string"}function Yn(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=Yn(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 Xn=7200*1e3,At=200,Qn=5*1024*1024,eo="gengage_request_response_cache",to=1,U="responses",ro=new Set(["addToCart","like"]),j=new Map,Pt=null;async function It(e,t={},r={}){const n=no(e,t);if(!n)return fetch(e,t);const o=Date.now(),i=await io(n,o);if(i)return co(i);const a=await fetch(e,t);return a.ok&&ao(n,a.clone(),o,{ttlMs:r.ttlMs??Xn,maxEntries:r.maxEntries??At,maxBodyBytes:r.maxBodyBytes??Qn}),a}function no(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"||oo(t.body)?null:`rr:${ho(mo({url:String(e),method:r,headers:uo(t.headers),body:t.body}))}`}function oo(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"&&ro.has(r)}catch{return!1}}async function io(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 fo(e);return n?n.expiresAt<=t?(j.delete(e),po(e),null):(n.lastAccessedAt=t,j.set(e,n),Fe(n),$t(At),n):null}async function ao(e,t,r,n){try{const o=await t.text();if(yo(o)>n.maxBodyBytes||so(o))return;const i={key:e,status:t.status,statusText:t.statusText,headers:lo(t.headers),body:o,createdAt:r,expiresAt:r+n.ttlMs,lastAccessedAt:r};j.set(e,i),$t(n.maxEntries),await Fe(i),await go(n.maxEntries,r)}catch{}}function so(e){return/"_error"\s*:/u.test(e)||/"type"\s*:\s*"error"/u.test(e)}function co(e){return new Response(e.body,{status:e.status,statusText:e.statusText,headers:new Headers(e.headers)})}function uo(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 lo(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(eo,to);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 fo(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 po(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 go(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 mo(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 ho(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 yo(e){return typeof TextEncoder<"u"?new TextEncoder().encode(e).byteLength:e.length}var Nt=3,_o=(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=>_o(r,t)).filter(Boolean):[];function vo(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 bo(e){return vo(e).join(" • ")}function wo(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(ko(e))return e;const t=e;switch(t.type){case"outputText":return So(t);case"suggestedActions":return Eo(t);case"productList":return Co(t);case"productDetails":return To(t);case"productDetailsSimilars":return xo(t);case"comparisonTable":return zo(t);case"context":return $o(t);case"chatStreamEnd":return No();case"loading":return Oo(t);case"panelLoading":return Lo(t);case"similarLoading":return Ro(t);case"redirect":return Zo(t);case"error":return Do(t);case"dummy":return Uo(t);case"launcherAction":return jo(t);case"text":return Ve(t);case"productItem":return Mo(t);case"text_image":return Rt(t);case"quick_qna":return Zt(t);case"reviewHighlights":return Fo(t);case"aiProductSuggestions":return qo(t);case"aiProductGroupings":return Jo(t);case"aiSuggestedSearches":return Wo(t);case"prosAndCons":return Bo(t);case"getGroundingReview":return Ho(t);case"voice":return Yo(t);case"visitorDataResponse":return Go(t);case"productListPreview":return Ko();case"groupList":return Xo(t);case"formGetInfo":case"formTestDrive":case"formServiceRequest":case"launchFormPage":return Qo(t);case"launcherContent":return ti(t);case"handoff":return ei(t);case"uiSpec":return li(t);default:return null}}function ko(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 So(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 Eo(e){return Ut((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 Co(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=wo(e.payload.source)&&t.length>0?t[0].product_list:null,o=n?ri(n,"chat"):jt(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 To(e){const t=e.payload.productDetails;if(!t)return oi("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 xo(e){const t=jt(e.payload.similarProducts??[],"chat"),r=t.spec.elements[t.spec.root];return r&&(r.props={...r.props,similarsAppend:!0}),{...t,panelHint:"panel"}}function zo(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=Ao(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=Mt(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 Ao(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:Po(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 Io(h??k)});if(f.every(y=>y.length===0))continue;const m=c[d]??d;l.push({label:m,values:f})}return l}function Po(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 Io(e){return typeof e=="string"?e:typeof e=="number"||typeof e=="boolean"?String(e):""}function $o(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 Lo(e){return{type:"metadata",sessionId:"",model:"",meta:{loading:!0,panelLoading:!0,panelPendingType:e.payload?.pending_type,loadingText:e.payload?.text}}}function Ro(e){return{type:"metadata",sessionId:"",model:"",meta:{loading:!0,similarPanelLoading:!0,panelPendingType:e.payload?.pending_type,loadingText:e.payload?.text}}}function Zo(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 Do(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 jo(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 Mo(e){return ni(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 Ut((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 Fo(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 Bo(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 Go(e){return{type:"metadata",sessionId:"",model:"",meta:{visitorDataResponse:e.payload}}}function qo(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=ii(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 Jo(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)?Mt(i.labels):[],l=w(i.sku,i.repr_sku),d=w(i.image,i.repr_image),f=Vo(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 Vo(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 Wo(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=bo(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 Ho(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 Ko(){return{type:"metadata",sessionId:"",model:"",meta:{analyzeAnimation:!0}}}function Yo(e){return{type:"metadata",sessionId:"",model:"",meta:{voice:e.payload}}}function Xo(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 Qo(e){return{type:"metadata",sessionId:"",model:"",meta:{formType:e.type,formPayload:e.payload??{}}}}function ei(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 ti(e){return{type:"metadata",sessionId:"",model:"",meta:{launcherContent:e.payload??{}}}}function Dt(e,t){const r={product:e,index:t},n=e,o=typeof n.sku=="string"?n.sku:void 0;return o&&(r.action={title:typeof n.name=="string"?n.name:"",type:"launchSingleProduct",payload:{sku:o}}),{type:"ProductCard",props: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=`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 jt(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),r[s]=Dt(a,o)}return r.root={type:"ProductGrid",props:{layout:"grid"},children:n},{type:"ui_spec",widget:t,spec:{root:"root",elements:r}}}function ri(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),r[a]=Dt(i,o)}return r.root={type:"ProductGrid",props:{layout:"grid"},children:n},{type:"ui_spec",widget:t,spec:{root:"root",elements:r}}}function ni(e,t){return{type:"ui_spec",widget:t,spec:{root:"root",elements:{root:{type:"ProductCard",props:{product:J(e),index:0}}}}}}function oi(e){return{type:"ui_spec",widget:e,spec:{root:"root",elements:{root:{type:"ActionButtons",props:{buttons:[]},children:[]}}}}}function ii(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=ai(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 ai(e){return Array.isArray(e)?e.filter(t=>typeof t=="string"&&t.length>0):[]}function Mt(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 si=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))si.has(m)||(d[m]=l[m],f=!0);return f&&(c.extras=d),c}function ci(e){return e.results.map(J)}function ui(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 li(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 Ft(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 Bt(e){const t=e.headers.get("Content-Type")??"";return t.includes("application/x-ndjson")||t.includes("text/event-stream")}async function di(e,t){const r=[],n={onEvent:o=>{const i=Lt(o);!i||i.type!=="ui_spec"||r.push(...Ft(i.spec.elements))}};return t!==void 0&&(n.signal=t),await zt(e,n),r}async function fi(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(Bt(i))return di(i,r);const a=await i.text();if(!a)throw new Error("Empty response body from similar_products endpoint");try{return ci(JSON.parse(a))}catch{throw new Error("Invalid JSON from similar_products endpoint")}}async function pi(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(...Ft(a.spec.elements))}}};return t!==void 0&&(o.signal=t),await zt(e,o),r}async function gi(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(Bt(i))return pi(i,r);const a=await i.text();if(!a)return[];try{return ui(JSON.parse(a))}catch{throw new Error("Invalid JSON from product_groupings endpoint")}}var mi={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={...mi,...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 hi(e){return Number.isFinite(e)?Math.max(0,Math.min(5,e)):0}function yi(e){return Number.isFinite(e)?Math.max(0,Math.min(100,Math.round(e))):0}function _i(e){const t=hi(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 Gt(e){e.addEventListener("error",()=>{e.style.display="none"},{once:!0})}function qt(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=mn(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",Gt(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=`%${yi(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(_i(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 Jt(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=qt(n);t.appendChild(o)}return e.products.length===0&&(t.style.display="none",t.dataset.empty="true"),t}var vi=0;function Vt(e){const t=vi++,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=Jt(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:-200,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=Jt(s(e.groups[0]));y.appendChild(p);for(const h of i)r.appendChild(h);return r}function Wt(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 bi(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 Ht={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=Wt(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),qt(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=Wt(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),Vt(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=bi(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 Kt(){return{...Ht}}function Yt(e,t,r=Ht,n=He){return sn({spec:e,context:t,registry:r,containerClassName:"gengage-simrel-uispec",unknownRenderer:n})}var Xt={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"},wi={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 ki(e){return e?e.toLowerCase().split("-")[0]??"tr":"tr"}function Si(e){return ki(e)==="en"?wi:Xt}var Ei=12e4;function Ci(e){return e instanceof DOMException&&e.name==="AbortError"}var Qt=class extends Un{constructor(...e){super(...e),this._abortController=null,this._contentEl=null,this._lastResultCount=-1,this._i18n=Xt,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=Mn(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),yn("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}_n(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?Ei: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=Wn({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 fi(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 gi({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=Ci(u);if(l&&this._isSuperseded(r))return;if(ae("gengage:global:error",{source:"simrel",code:l&&n?"REQUEST_TIMEOUT":"FETCH_ERROR",message:zn(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{...Si(e.locale),...e.i18n}}_resolveUISpecRegistry(){return cn(Kt(),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)=>Yt(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 Ti(){return new Qt}var xi={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 er(e){if(Array.isArray(e))return e.map(r=>B(r)).filter(r=>!!r);const t=B(e);return t?[t]:[]}function tr(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 zi(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 rr(...e){for(const t of e){const r=B(t);if(r)return r}}function nr(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 Ai(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=nr(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 Pi(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=er(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=er(n);if(i.length>0)return i[0]}}function Ii(e,t){for(const r of t){const n=ke(Se(e,r));if(n)return n}return null}function or(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:{...xi,...e.fields},media:e.media??{},warrantyPromotionPattern:e.warrantyPromotionPattern??/warranty/i,specialPricePattern:e.specialPricePattern??/special/i,pricing:e.pricing??t.pricing}}function $i(e,t,r){return r.media.imageUrlTransform?.(e,t)??e}function Ni(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 Oi(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=Ii(e,t.fields.customBadgeFacets);if(!o)return{imageUrl:null,labelText:null};const i=rr(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=rr(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 Li(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",Gt(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 Ri(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 Zi(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 Di(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 Ui(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 ji(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 Mi(e,t,r,n,o){const i=tr(e.originalPrice),a=tr(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 Fi(e,t){return e==="strike-through"||e==="badge"||e==="inline"?e:t.discountType}function ir(e){const{product:t,config:r}=e,n=Ke(t,r.fields.images).map(S=>$i(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=zi(Pi(t,r.fields.specialPrice))===!0||r.specialPricePattern.test(c),l=t.brand??"",d=Ni(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=Li(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=Ri(Oi(t,r),r.labels.customBadgeAlt);h&&p.appendChild(h);const k=Zi(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(Di(t,fe(t,r.fields.productInfoUrl),r,e.context.onClick)),N.appendChild(Ui([...Ke(t,r.fields.warranties),...i])),N.appendChild(ji(a,r)),f.appendChild(N),f.appendChild(Mi(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 Bi(e,t){const r=nr(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=Fi(e.element.props?.discountType,e.context);return ir({product:r,index:o,context:i===e.context.discountType?e.context:{...e.context,...i!==void 0?{discountType:i}:{}},config:or(t,e.context)})}function Gi(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 qi(e,t){const r=e.element.props?.groups;if(!Array.isArray(r))return null;const n=r.map(Ai).filter(c=>!!c),o=e.element.props?.columns,i=or(t,e.context),a=(c,u)=>ir({product:c,index:u,context:e.context,config:i}),s=Vt({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 Ji(e={}){return{registry:{ProductGrid:t=>Gi(t),ProductCard:t=>Bi(t,e),GroupTabs:t=>qi(t,e)}}}var ar;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.")}},sr=class extends Error{constructor(e){super(`Encountered unidirectional transform during encode: ${e}`),this.name="ZodEncodeError"}};(ar=globalThis).__zod_globalConfig??(ar.__zod_globalConfig={});var Ee=globalThis.__zod_globalConfig;function Q(e){return e&&Object.assign(Ee,e),Ee}function cr(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 Vi(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 ur=Symbol("evaluating");function E(e,t,r){let n;Object.defineProperty(e,t,{get(){if(n!==ur)return n===void 0&&(n=ur,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 lr(e){return JSON.stringify(e)}function Wi(e){return e.toLowerCase().trim().replace(/[^\w\s-]/g,"").replace(/[\s_-]+/g,"-").replace(/^-+|-+$/g,"")}var dr="captureStackTrace"in Error?Error.captureStackTrace:(...e)=>{};function Ce(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}var Hi=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 fr(e){return pe(e)?{...e}:Array.isArray(e)?[...e]:e instanceof Map?new Map(e):e instanceof Set?new Set(e):e}var Ki=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 Yi(e){return Object.keys(e).filter(t=>e[t]._zod.optin==="optional"&&e[t]._zod.optout==="optional")}var Xi={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 Qi(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 ea(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 ta(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 ra(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 na(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 oa(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 ia(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 aa(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 pr(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 gr=(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})},mr=g("$ZodError",gr),hr=g("$ZodError",gr,{Parent:Error});function sa(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 ca(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 dr(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 dr(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??mr)(i.issues.map(a=>te(a,o,Q())))}:{success:!0,data:i.value}},ua=ze(hr),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}},la=Ae(hr),da=e=>(t,r,n)=>{const o=n?{...n,direction:"backward"}:{direction:"backward"};return rt(e)(t,r,o)},fa=e=>(t,r,n)=>rt(e)(t,r,n),pa=e=>async(t,r,n)=>{const o=n?{...n,direction:"backward"}:{direction:"backward"};return nt(e)(t,r,o)},ga=e=>async(t,r,n)=>nt(e)(t,r,n),ma=e=>(t,r,n)=>{const o=n?{...n,direction:"backward"}:{direction:"backward"};return ze(e)(t,r,o)},ha=e=>(t,r,n)=>ze(e)(t,r,n),ya=e=>async(t,r,n)=>{const o=n?{...n,direction:"backward"}:{direction:"backward"};return Ae(e)(t,r,o)},_a=e=>async(t,r,n)=>Ae(e)(t,r,n),va=/^[cC][0-9a-z]{6,}$/,ba=/^[0-9a-z]+$/,wa=/^[0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{26}$/,ka=/^[0-9a-vA-V]{20}$/,Sa=/^[A-Za-z0-9]{27}$/,Ea=/^[a-zA-Z0-9_-]{21}$/,Ca=/^P(?:(\d+W)|(?!.*W)(?=\d|T\d)(\d+Y)?(\d+M)?(\d+D)?(T(?=\d)(\d+H)?(\d+M)?(\d+([.,]\d+)?S)?)?)$/,Ta=/^([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})$/,yr=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)$/,xa=/^(?!\.)(?!.*\.\.)([A-Za-z0-9_'+\-\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\-]*\.)+[A-Za-z]{2,}$/,za="^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$";function Aa(){return new RegExp(za,"u")}var Pa=/^(?:(?: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])$/,Ia=/^(([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}|:))$/,$a=/^((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])$/,Na=/^(([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])$/,Oa=/^$|^(?:[0-9a-zA-Z+/]{4})*(?:(?:[0-9a-zA-Z+/]{2}==)|(?:[0-9a-zA-Z+/]{3}=))?$/,_r=/^[A-Za-z0-9_-]*$/,La=/^https?$/,Ra=/^\+[1-9]\d{6,14}$/,vr="(?:(?:\\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])))",Za=new RegExp(`^${vr}$`);function br(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 Da(e){return new RegExp(`^${br(e)}$`)}function Ua(e){const t=br({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(`^${vr}T(?:${n})$`)}var ja=e=>{const t=e?`[\\s\\S]{${e?.minimum??0},${e?.maximum??""}}`:"[\\s\\S]*";return new RegExp(`^${t}$`)},Ma=/^-?\d+$/,Fa=/^-?\d+(?:\.\d+)?$/,Ba=/^[^A-Z]*$/,Ga=/^[^a-z]*$/,O=g("$ZodCheck",(e,t)=>{var r;e._zod??(e._zod={}),e._zod.def=t,(r=e._zod).onattach??(r.onattach=[])}),wr={number:"number",bigint:"bigint",object:"date"},kr=g("$ZodCheckLessThan",(e,t)=>{O.init(e,t);const r=wr[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})}}),Sr=g("$ZodCheckGreaterThan",(e,t)=>{O.init(e,t);const r=wr[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})}}),qa=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):Vi(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})}}),Ja=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]=Xi[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=Ma)}),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})}}),Va=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})}}),Wa=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})}}),Ha=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=()=>{})}),Ka=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})}}),Ya=g("$ZodCheckLowerCase",(e,t)=>{t.pattern??(t.pattern=Ba),Pe.init(e,t)}),Xa=g("$ZodCheckUpperCase",(e,t)=>{t.pattern??(t.pattern=Ga),Pe.init(e,t)}),Qa=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})}}),es=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})}}),ts=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})}}),rs=g("$ZodCheckOverwrite",(e,t)=>{O.init(e,t),e._zod.check=r=>{r.value=t.tx(r.value)}}),ns=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
|
+
`))}},os={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=os;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(aa(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=ua(e,o);return i.success?{value:i.data}:{issues:i.error?.issues}}catch{return la(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()??ja(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)}),is=g("$ZodGUID",(e,t)=>{t.pattern??(t.pattern=Ta),C.init(e,t)}),as=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=yr(r))}else t.pattern??(t.pattern=yr());C.init(e,t)}),ss=g("$ZodEmail",(e,t)=>{t.pattern??(t.pattern=xa),C.init(e,t)}),cs=g("$ZodURL",(e,t)=>{C.init(e,t),e._zod.check=r=>{try{const n=r.value.trim();if(!t.normalize&&t.protocol?.source===La.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})}}}),us=g("$ZodEmoji",(e,t)=>{t.pattern??(t.pattern=Aa()),C.init(e,t)}),ls=g("$ZodNanoID",(e,t)=>{t.pattern??(t.pattern=Ea),C.init(e,t)}),ds=g("$ZodCUID",(e,t)=>{t.pattern??(t.pattern=va),C.init(e,t)}),fs=g("$ZodCUID2",(e,t)=>{t.pattern??(t.pattern=ba),C.init(e,t)}),ps=g("$ZodULID",(e,t)=>{t.pattern??(t.pattern=wa),C.init(e,t)}),gs=g("$ZodXID",(e,t)=>{t.pattern??(t.pattern=ka),C.init(e,t)}),ms=g("$ZodKSUID",(e,t)=>{t.pattern??(t.pattern=Sa),C.init(e,t)}),hs=g("$ZodISODateTime",(e,t)=>{t.pattern??(t.pattern=Ua(t)),C.init(e,t)}),ys=g("$ZodISODate",(e,t)=>{t.pattern??(t.pattern=Za),C.init(e,t)}),_s=g("$ZodISOTime",(e,t)=>{t.pattern??(t.pattern=Da(t)),C.init(e,t)}),vs=g("$ZodISODuration",(e,t)=>{t.pattern??(t.pattern=Ca),C.init(e,t)}),bs=g("$ZodIPv4",(e,t)=>{t.pattern??(t.pattern=Pa),C.init(e,t),e._zod.bag.format="ipv4"}),ws=g("$ZodIPv6",(e,t)=>{t.pattern??(t.pattern=Ia),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})}}}),ks=g("$ZodCIDRv4",(e,t)=>{t.pattern??(t.pattern=$a),C.init(e,t)}),Ss=g("$ZodCIDRv6",(e,t)=>{t.pattern??(t.pattern=Na),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 Er(e){if(e==="")return!0;if(/\s/.test(e)||e.length%4!==0)return!1;try{return atob(e),!0}catch{return!1}}var Es=g("$ZodBase64",(e,t)=>{t.pattern??(t.pattern=Oa),C.init(e,t),e._zod.bag.contentEncoding="base64",e._zod.check=r=>{Er(r.value)||r.issues.push({code:"invalid_format",format:"base64",input:r.value,inst:e,continue:!t.abort})}});function Cs(e){if(!_r.test(e))return!1;const t=e.replace(/[-_]/g,r=>r==="-"?"+":"/");return Er(t.padEnd(Math.ceil(t.length/4)*4,"="))}var Ts=g("$ZodBase64URL",(e,t)=>{t.pattern??(t.pattern=_r),C.init(e,t),e._zod.bag.contentEncoding="base64url",e._zod.check=r=>{Cs(r.value)||r.issues.push({code:"invalid_format",format:"base64url",input:r.value,inst:e,continue:!t.abort})}}),xs=g("$ZodE164",(e,t)=>{t.pattern??(t.pattern=Ra),C.init(e,t)});function zs(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 As=g("$ZodJWT",(e,t)=>{C.init(e,t),e._zod.check=r=>{zs(r.value,t.alg)||r.issues.push({code:"invalid_format",format:"jwt",input:r.value,inst:e,continue:!t.abort})}}),Cr=g("$ZodNumber",(e,t)=>{x.init(e,t),e._zod.pattern=e._zod.bag.pattern??Fa,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}}),Ps=g("$ZodNumberFormat",(e,t)=>{Ja.init(e,t),Cr.init(e,t)}),Is=g("$ZodUnknown",(e,t)=>{x.init(e,t),e._zod.parse=r=>r}),$s=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 Tr(e,t,r){e.issues.length&&t.issues.push(...pr(r,e.issues)),t.value[r]=e.value}var Ns=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=>Tr(u,r,a))):Tr(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(...pr(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 xr(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=Yi(e.shape);return{...e,keys:t,keySet:new Set(t),numKeys:t.length,optionalKeys:new Set(r)}}function zr(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 Os=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(()=>xr(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?zr(u,c,a,s,r.value,e):u.length?Promise.all(u).then(()=>a):a}}),Ls=g("$ZodObjectJIT",(e,t)=>{Os.init(e,t);const r=e._zod.parse,n=Xe(()=>xr(t)),o=f=>{const m=new ns(["shape","payload","ctx"]),y=n.value,p=S=>{const v=lr(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=lr(S),P=f[S],M=P?._zod?.optin==="optional",zl=P?._zod?.optout==="optional";m.write(`const ${v} = ${p(S)};`),M&&zl?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 => ({
|
|
@@ -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(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>
|
|
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&&Hi.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?zr([],y,f,m,d,e):f):r(f,m):(f.issues.push({expected:"object",code:"invalid_type",input:y,inst:e}),f)}});function Ar(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 Rs=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=>Ar(s,n,e,o)):Ar(a,n,e,o)}}),Zs=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])=>Pr(r,s,c)):Pr(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 Pr(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 Ds=g("$ZodEnum",(e,t)=>{x.init(e,t);const r=cr(t.entries),n=new Set(r);e._zod.values=n,e._zod.pattern=new RegExp(`^(${r.filter(o=>Ki.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}}),Us=g("$ZodTransform",(e,t)=>{x.init(e,t),e._zod.optin="optional",e._zod.parse=(r,n)=>{if(n.direction==="backward")throw new sr(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 Ir(e,t){return t===void 0&&(e.issues.length||e.fallback)?{issues:[],value:void 0}:e}var $r=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=>Ir(a,o)):Ir(i,o)}return r.value===void 0?r:t.innerType._zod.run(r,n)}}),js=g("$ZodExactOptional",(e,t)=>{$r.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)}),Ms=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)}),Fs=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=>Nr(i,t)):Nr(o,t)}});function Nr(e,t){return e.value===void 0&&(e.value=t.defaultValue),e}var Bs=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))}),Gs=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=>Or(i,e)):Or(o,e)}});function Or(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 qs=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)}}),Js=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 Vs=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(Lr):Lr(o)}});function Lr(e){return e.value=Object.freeze(e.value),e}var Ws=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=>Rr(i,r,n,e));Rr(o,r,n,e)}});function Rr(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 Zr,Hs=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 Ks(){return new Hs}(Zr=globalThis).__zod_globalRegistry??(Zr.__zod_globalRegistry=Ks());var me=globalThis.__zod_globalRegistry;function Ys(e,t){return new e({type:"string",..._(t)})}function Xs(e,t){return new e({type:"string",format:"email",check:"string_format",abort:!1,..._(t)})}function Dr(e,t){return new e({type:"string",format:"guid",check:"string_format",abort:!1,..._(t)})}function Qs(e,t){return new e({type:"string",format:"uuid",check:"string_format",abort:!1,..._(t)})}function ec(e,t){return new e({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v4",..._(t)})}function tc(e,t){return new e({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v6",..._(t)})}function rc(e,t){return new e({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v7",..._(t)})}function nc(e,t){return new e({type:"string",format:"url",check:"string_format",abort:!1,..._(t)})}function oc(e,t){return new e({type:"string",format:"emoji",check:"string_format",abort:!1,..._(t)})}function ic(e,t){return new e({type:"string",format:"nanoid",check:"string_format",abort:!1,..._(t)})}function ac(e,t){return new e({type:"string",format:"cuid",check:"string_format",abort:!1,..._(t)})}function sc(e,t){return new e({type:"string",format:"cuid2",check:"string_format",abort:!1,..._(t)})}function cc(e,t){return new e({type:"string",format:"ulid",check:"string_format",abort:!1,..._(t)})}function uc(e,t){return new e({type:"string",format:"xid",check:"string_format",abort:!1,..._(t)})}function lc(e,t){return new e({type:"string",format:"ksuid",check:"string_format",abort:!1,..._(t)})}function dc(e,t){return new e({type:"string",format:"ipv4",check:"string_format",abort:!1,..._(t)})}function fc(e,t){return new e({type:"string",format:"ipv6",check:"string_format",abort:!1,..._(t)})}function pc(e,t){return new e({type:"string",format:"cidrv4",check:"string_format",abort:!1,..._(t)})}function gc(e,t){return new e({type:"string",format:"cidrv6",check:"string_format",abort:!1,..._(t)})}function mc(e,t){return new e({type:"string",format:"base64",check:"string_format",abort:!1,..._(t)})}function hc(e,t){return new e({type:"string",format:"base64url",check:"string_format",abort:!1,..._(t)})}function yc(e,t){return new e({type:"string",format:"e164",check:"string_format",abort:!1,..._(t)})}function _c(e,t){return new e({type:"string",format:"jwt",check:"string_format",abort:!1,..._(t)})}function vc(e,t){return new e({type:"string",format:"datetime",check:"string_format",offset:!1,local:!1,precision:null,..._(t)})}function bc(e,t){return new e({type:"string",format:"date",check:"string_format",..._(t)})}function wc(e,t){return new e({type:"string",format:"time",check:"string_format",precision:null,..._(t)})}function kc(e,t){return new e({type:"string",format:"duration",check:"string_format",..._(t)})}function Sc(e,t){return new e({type:"number",checks:[],..._(t)})}function Ec(e,t){return new e({type:"number",check:"number_format",abort:!1,format:"safeint",..._(t)})}function Cc(e){return new e({type:"unknown"})}function Tc(e,t){return new e({type:"never",..._(t)})}function Ur(e,t){return new kr({check:"less_than",..._(t),value:e,inclusive:!1})}function at(e,t){return new kr({check:"less_than",..._(t),value:e,inclusive:!0})}function jr(e,t){return new Sr({check:"greater_than",..._(t),value:e,inclusive:!1})}function st(e,t){return new Sr({check:"greater_than",..._(t),value:e,inclusive:!0})}function Mr(e,t){return new qa({check:"multiple_of",..._(t),value:e})}function Fr(e,t){return new Va({check:"max_length",..._(t),maximum:e})}function Ne(e,t){return new Wa({check:"min_length",..._(t),minimum:e})}function Br(e,t){return new Ha({check:"length_equals",..._(t),length:e})}function xc(e,t){return new Ka({check:"string_format",format:"regex",..._(t),pattern:e})}function zc(e){return new Ya({check:"string_format",format:"lowercase",..._(e)})}function Ac(e){return new Xa({check:"string_format",format:"uppercase",..._(e)})}function Pc(e,t){return new Qa({check:"string_format",format:"includes",..._(t),includes:e})}function Ic(e,t){return new es({check:"string_format",format:"starts_with",..._(t),prefix:e})}function $c(e,t){return new ts({check:"string_format",format:"ends_with",..._(t),suffix:e})}function ie(e){return new rs({check:"overwrite",tx:e})}function Nc(e){return ie(t=>t.normalize(e))}function Oc(){return ie(e=>e.trim())}function Lc(){return ie(e=>e.toLowerCase())}function Rc(){return ie(e=>e.toUpperCase())}function Zc(){return ie(e=>Wi(e))}function Dc(e,t,r){return new e({type:"array",element:t,..._(r)})}function Uc(e,t,r){return new e({type:"custom",check:"custom",fn:t,..._(r)})}function jc(e,t){const r=Mc(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 Mc(e,t){const r=new O({check:"custom",..._(t)});return r._zod.check=e,r}function Gr(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 qr(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 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||{});
|
|
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 Jr(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 Fc=(e,t={})=>r=>{const n=Gr({...r,processors:t});return A(e,n),qr(n,e),Jr(n,e)},Oe=(e,t,r={})=>n=>{const{libraryOptions:o,target:i}=n??{},a=Gr({...o??{},target:i,io:t,processors:r});return A(e,a),qr(a,e),Jr(a,e)},Bc={guid:"uuid",url:"uri",datetime:"date-time",json_string:"json-string",regex:""},Gc=(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=Bc[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}))])}},qc=(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)},Jc=(e,t,r,n)=>{r.not={}},Vc=(e,t,r,n)=>{},Wc=(e,t,r,n)=>{const o=e._zod.def,i=cr(o.entries);i.every(a=>typeof a=="number")&&(r.type="number"),i.every(a=>typeof a=="string")&&(r.type="string"),r.enum=i},Hc=(e,t,r,n)=>{if(t.unrepresentable==="throw")throw new Error("Custom types cannot be represented in JSON Schema")},Kc=(e,t,r,n)=>{if(t.unrepresentable==="throw")throw new Error("Transforms cannot be represented in JSON Schema")},Yc=(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"]})},Xc=(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)},Qc=(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},eu=(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]]},tu=(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"}]},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},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,r.default=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,t.io==="input"&&(r._prefault=JSON.parse(JSON.stringify(o.defaultValue)))},iu=(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},au=(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},su=(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},Vr=(e,t,r,n)=>{const o=e._zod.def;A(o.innerType,t,n);const i=t.seen.get(e);i.ref=o.innerType},cu=g("ZodISODateTime",(e,t)=>{hs.init(e,t),T.init(e,t)});function uu(e){return vc(cu,e)}var lu=g("ZodISODate",(e,t)=>{ys.init(e,t),T.init(e,t)});function du(e){return bc(lu,e)}var fu=g("ZodISOTime",(e,t)=>{_s.init(e,t),T.init(e,t)});function pu(e){return wc(fu,e)}var gu=g("ZodISODuration",(e,t)=>{vs.init(e,t),T.init(e,t)});function mu(e){return kc(gu,e)}var hu=(e,t)=>{mr.init(e,t),e.name="ZodError",Object.defineProperties(e,{format:{value:r=>ca(e,r)},flatten:{value:r=>sa(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",hu,{Parent:Error}),yu=rt(Z),_u=nt(Z),vu=ze(Z),bu=Ae(Z),wu=da(Z),ku=fa(Z),Su=pa(Z),Eu=ga(Z),Cu=ma(Z),Tu=ha(Z),xu=ya(Z),zu=_a(Z),Wr=new WeakMap;function he(e,t,r){const n=Object.getPrototypeOf(e);let o=Wr.get(n);if(o||(o=new Set,Wr.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=Fc(e,{}),e.def=t,e.type=t.type,Object.defineProperty(e,"_def",{value:t}),e.parse=(r,n)=>yu(e,r,n,{callee:e.parse}),e.safeParse=(r,n)=>vu(e,r,n),e.parseAsync=async(r,n)=>_u(e,r,n,{callee:e.parseAsync}),e.safeParseAsync=async(r,n)=>bu(e,r,n),e.spa=e.safeParseAsync,e.encode=(r,n)=>wu(e,r,n),e.decode=(r,n)=>ku(e,r,n),e.encodeAsync=async(r,n)=>Su(e,r,n),e.decodeAsync=async(r,n)=>Eu(e,r,n),e.safeEncode=(r,n)=>Cu(e,r,n),e.safeDecode=(r,n)=>Tu(e,r,n),e.safeEncodeAsync=async(r,n)=>xu(e,r,n),e.safeDecodeAsync=async(r,n)=>zu(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(vl(r,n))},superRefine(r,n){return this.check(bl(r,n))},overwrite(r){return this.check(ie(r))},optional(){return tn(this)},exactOptional(){return al(this)},nullable(){return rn(this)},nullish(){return tn(rn(this))},nonoptional(r){return fl(this,r)},array(){return Qr(this)},or(r){return el([this,r])},and(r){return rl(this,r)},transform(r){return on(this,ol(r))},default(r){return ul(this,r)},prefault(r){return dl(this,r)},catch(r){return gl(this,r)},pipe(r){return on(this,r)},readonly(){return yl(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)),Hr=g("_ZodString",(e,t)=>{ot.init(e,t),z.init(e,t),e._zod.processJSONSchema=(n,o,i)=>Gc(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(xc(...n))},includes(...n){return this.check(Pc(...n))},startsWith(...n){return this.check(Ic(...n))},endsWith(...n){return this.check($c(...n))},min(...n){return this.check(Ne(...n))},max(...n){return this.check(Fr(...n))},length(...n){return this.check(Br(...n))},nonempty(...n){return this.check(Ne(1,...n))},lowercase(n){return this.check(zc(n))},uppercase(n){return this.check(Ac(n))},trim(){return this.check(Oc())},normalize(...n){return this.check(Nc(...n))},toLowerCase(){return this.check(Lc())},toUpperCase(){return this.check(Rc())},slugify(){return this.check(Zc())}})}),Au=g("ZodString",(e,t)=>{ot.init(e,t),Hr.init(e,t),e.email=r=>e.check(Xs(Pu,r)),e.url=r=>e.check(nc(Iu,r)),e.jwt=r=>e.check(_c(Ju,r)),e.emoji=r=>e.check(oc($u,r)),e.guid=r=>e.check(Dr(Kr,r)),e.uuid=r=>e.check(Qs(Le,r)),e.uuidv4=r=>e.check(ec(Le,r)),e.uuidv6=r=>e.check(tc(Le,r)),e.uuidv7=r=>e.check(rc(Le,r)),e.nanoid=r=>e.check(ic(Nu,r)),e.guid=r=>e.check(Dr(Kr,r)),e.cuid=r=>e.check(ac(Ou,r)),e.cuid2=r=>e.check(sc(Lu,r)),e.ulid=r=>e.check(cc(Ru,r)),e.base64=r=>e.check(mc(Bu,r)),e.base64url=r=>e.check(hc(Gu,r)),e.xid=r=>e.check(uc(Zu,r)),e.ksuid=r=>e.check(lc(Du,r)),e.ipv4=r=>e.check(dc(Uu,r)),e.ipv6=r=>e.check(fc(ju,r)),e.cidrv4=r=>e.check(pc(Mu,r)),e.cidrv6=r=>e.check(gc(Fu,r)),e.e164=r=>e.check(yc(qu,r)),e.datetime=r=>e.check(uu(r)),e.date=r=>e.check(du(r)),e.time=r=>e.check(pu(r)),e.duration=r=>e.check(mu(r))});function L(e){return Ys(Au,e)}var T=g("ZodStringFormat",(e,t)=>{C.init(e,t),Hr.init(e,t)}),Pu=g("ZodEmail",(e,t)=>{ss.init(e,t),T.init(e,t)}),Kr=g("ZodGUID",(e,t)=>{is.init(e,t),T.init(e,t)}),Le=g("ZodUUID",(e,t)=>{as.init(e,t),T.init(e,t)}),Iu=g("ZodURL",(e,t)=>{cs.init(e,t),T.init(e,t)}),$u=g("ZodEmoji",(e,t)=>{us.init(e,t),T.init(e,t)}),Nu=g("ZodNanoID",(e,t)=>{ls.init(e,t),T.init(e,t)}),Ou=g("ZodCUID",(e,t)=>{ds.init(e,t),T.init(e,t)}),Lu=g("ZodCUID2",(e,t)=>{fs.init(e,t),T.init(e,t)}),Ru=g("ZodULID",(e,t)=>{ps.init(e,t),T.init(e,t)}),Zu=g("ZodXID",(e,t)=>{gs.init(e,t),T.init(e,t)}),Du=g("ZodKSUID",(e,t)=>{ms.init(e,t),T.init(e,t)}),Uu=g("ZodIPv4",(e,t)=>{bs.init(e,t),T.init(e,t)}),ju=g("ZodIPv6",(e,t)=>{ws.init(e,t),T.init(e,t)}),Mu=g("ZodCIDRv4",(e,t)=>{ks.init(e,t),T.init(e,t)}),Fu=g("ZodCIDRv6",(e,t)=>{Ss.init(e,t),T.init(e,t)}),Bu=g("ZodBase64",(e,t)=>{Es.init(e,t),T.init(e,t)}),Gu=g("ZodBase64URL",(e,t)=>{Ts.init(e,t),T.init(e,t)}),qu=g("ZodE164",(e,t)=>{xs.init(e,t),T.init(e,t)}),Ju=g("ZodJWT",(e,t)=>{As.init(e,t),T.init(e,t)}),Yr=g("ZodNumber",(e,t)=>{Cr.init(e,t),z.init(e,t),e._zod.processJSONSchema=(n,o,i)=>qc(e,n,o,i),he(e,"ZodNumber",{gt(n,o){return this.check(jr(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(Ur(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(Xr(n))},safe(n){return this.check(Xr(n))},positive(n){return this.check(jr(0,n))},nonnegative(n){return this.check(st(0,n))},negative(n){return this.check(Ur(0,n))},nonpositive(n){return this.check(at(0,n))},multipleOf(n,o){return this.check(Mr(n,o))},step(n,o){return this.check(Mr(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 Sc(Yr,e)}var Vu=g("ZodNumberFormat",(e,t)=>{Ps.init(e,t),Yr.init(e,t)});function Xr(e){return Ec(Vu,e)}var Wu=g("ZodUnknown",(e,t)=>{Is.init(e,t),z.init(e,t),e._zod.processJSONSchema=(r,n,o)=>Vc(e,r,n,o)});function ct(){return Cc(Wu)}var Hu=g("ZodNever",(e,t)=>{$s.init(e,t),z.init(e,t),e._zod.processJSONSchema=(r,n,o)=>Jc(e,r,n,o)});function Ku(e){return Tc(Hu,e)}var Yu=g("ZodArray",(e,t)=>{Ns.init(e,t),z.init(e,t),e._zod.processJSONSchema=(r,n,o)=>Yc(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(Fr(r,n))},length(r,n){return this.check(Br(r,n))},unwrap(){return this.element}})});function Qr(e,t){return Dc(Yu,e,t)}var Xu=g("ZodObject",(e,t)=>{Ls.init(e,t),z.init(e,t),e._zod.processJSONSchema=(r,n,o)=>Xc(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:Ku()})},strip(){return this.clone({...this._zod.def,catchall:void 0})},extend(r){return ta(this,r)},safeExtend(r){return ra(this,r)},merge(r){return na(this,r)},pick(r){return Qi(this,r)},omit(r){return ea(this,r)},partial(...r){return oa(en,this,r[0])},required(...r){return ia(nn,this,r[0])}})});function K(e,t){return new Xu({type:"object",shape:e??{},..._(t)})}var Qu=g("ZodUnion",(e,t)=>{Rs.init(e,t),z.init(e,t),e._zod.processJSONSchema=(r,n,o)=>Qc(e,r,n,o),e.options=t.options});function el(e,t){return new Qu({type:"union",options:e,..._(t)})}var tl=g("ZodIntersection",(e,t)=>{Zs.init(e,t),z.init(e,t),e._zod.processJSONSchema=(r,n,o)=>eu(e,r,n,o)});function rl(e,t){return new tl({type:"intersection",left:e,right:t})}var ut=g("ZodEnum",(e,t)=>{Ds.init(e,t),z.init(e,t),e._zod.processJSONSchema=(n,o,i)=>Wc(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 nl=g("ZodTransform",(e,t)=>{Us.init(e,t),z.init(e,t),e._zod.processJSONSchema=(r,n,o)=>Kc(e,r,n,o),e._zod.parse=(r,n)=>{if(n.direction==="backward")throw new sr(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 ol(e){return new nl({type:"transform",transform:e})}var en=g("ZodOptional",(e,t)=>{$r.init(e,t),z.init(e,t),e._zod.processJSONSchema=(r,n,o)=>Vr(e,r,n,o),e.unwrap=()=>e._zod.def.innerType});function tn(e){return new en({type:"optional",innerType:e})}var il=g("ZodExactOptional",(e,t)=>{js.init(e,t),z.init(e,t),e._zod.processJSONSchema=(r,n,o)=>Vr(e,r,n,o),e.unwrap=()=>e._zod.def.innerType});function al(e){return new il({type:"optional",innerType:e})}var sl=g("ZodNullable",(e,t)=>{Ms.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 rn(e){return new sl({type:"nullable",innerType:e})}var cl=g("ZodDefault",(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,e.removeDefault=e.unwrap});function ul(e,t){return new cl({type:"default",innerType:e,get defaultValue(){return typeof t=="function"?t():fr(t)}})}var ll=g("ZodPrefault",(e,t)=>{Bs.init(e,t),z.init(e,t),e._zod.processJSONSchema=(r,n,o)=>ou(e,r,n,o),e.unwrap=()=>e._zod.def.innerType});function dl(e,t){return new ll({type:"prefault",innerType:e,get defaultValue(){return typeof t=="function"?t():fr(t)}})}var nn=g("ZodNonOptional",(e,t)=>{Gs.init(e,t),z.init(e,t),e._zod.processJSONSchema=(r,n,o)=>ru(e,r,n,o),e.unwrap=()=>e._zod.def.innerType});function fl(e,t){return new nn({type:"nonoptional",innerType:e,..._(t)})}var pl=g("ZodCatch",(e,t)=>{qs.init(e,t),z.init(e,t),e._zod.processJSONSchema=(r,n,o)=>iu(e,r,n,o),e.unwrap=()=>e._zod.def.innerType,e.removeCatch=e.unwrap});function gl(e,t){return new pl({type:"catch",innerType:e,catchValue:typeof t=="function"?t:()=>t})}var ml=g("ZodPipe",(e,t)=>{Js.init(e,t),z.init(e,t),e._zod.processJSONSchema=(r,n,o)=>au(e,r,n,o),e.in=t.in,e.out=t.out});function on(e,t){return new ml({type:"pipe",in:e,out:t})}var hl=g("ZodReadonly",(e,t)=>{Vs.init(e,t),z.init(e,t),e._zod.processJSONSchema=(r,n,o)=>su(e,r,n,o),e.unwrap=()=>e._zod.def.innerType});function yl(e){return new hl({type:"readonly",innerType:e})}var _l=g("ZodCustom",(e,t)=>{Ws.init(e,t),z.init(e,t),e._zod.processJSONSchema=(r,n,o)=>Hc(e,r,n,o)});function vl(e,t={}){return Uc(_l,e,t)}function bl(e,t){return jc(e,t)}var wl=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()}),kl=K({layout:lt(["grid","carousel"]).optional(),columns:ye().int().positive().optional()}),Sl=K({product:wl,index:ye().int().nonnegative(),discountType:lt(["strike-through","badge","inline"]).optional()}),El=K({sku:L(),label:L().optional(),cartCode:L()}),Cl=K({actions:Qr(K({label:L(),action:K({title:L(),type:L(),payload:ct().optional()})}))}),Tl=K({message:L().optional()}),xl={components:{ProductGrid:{schema:kl,description:"Outer grid or carousel container for similar products."},ProductCard:{schema:Sl,description:"A single product card with image, title, price, and actions."},AddToCartButton:{schema:El,description:"Add-to-cart CTA rendered inside or below a product card."},QuickActions:{schema:Cl,description:"A row of quick-action buttons below product info."},EmptyState:{schema:Tl,description:"Empty state shown when no similar products are available."}}};G.GengageSimRel=Qt,G.createDefaultSimRelUISpecRegistry=Kt,G.createSimRelRenderer=Ji,G.createSimRelWidget=Ti,G.defaultSimRelUnknownUISpecRenderer=He,G.renderSimRelUISpec=Yt,G.simRelCatalog=xl})(this.Gengage=this.Gengage||{});
|