@gengage/assistant-fe 0.3.3 → 0.3.5

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.
Files changed (80) hide show
  1. package/README.md +12 -0
  2. package/dist/assistant-fe.css +1 -1
  3. package/dist/chat/components/AITopPicks.d.ts.map +1 -1
  4. package/dist/chat/components/GroundingReviewCard.d.ts.map +1 -1
  5. package/dist/chat/components/ReviewHighlights.d.ts +3 -1
  6. package/dist/chat/components/ReviewHighlights.d.ts.map +1 -1
  7. package/dist/chat/components/renderUISpec.d.ts.map +1 -1
  8. package/dist/chat/index.d.ts +12 -0
  9. package/dist/chat/index.d.ts.map +1 -1
  10. package/dist/chat/locales/en.d.ts.map +1 -1
  11. package/dist/chat/locales/tr.d.ts.map +1 -1
  12. package/dist/chat/types.d.ts +16 -5
  13. package/dist/chat/types.d.ts.map +1 -1
  14. package/dist/chat/utils/ui.d.ts +11 -0
  15. package/dist/chat/utils/ui.d.ts.map +1 -0
  16. package/dist/chat-CCSPwPmr.cjs +13 -0
  17. package/dist/chat-CCSPwPmr.cjs.map +1 -0
  18. package/dist/{chat-DrbdN7yo.js → chat-tG_XXqmm.js} +507 -394
  19. package/dist/chat-tG_XXqmm.js.map +1 -0
  20. package/dist/chat.cjs +1 -1
  21. package/dist/chat.iife.js +14 -14
  22. package/dist/chat.iife.js.map +1 -1
  23. package/dist/chat.js +1 -1
  24. package/dist/common/overlay.d.ts +2 -0
  25. package/dist/common/overlay.d.ts.map +1 -1
  26. package/dist/common/protocol-adapter.d.ts.map +1 -1
  27. package/dist/common/types.d.ts +1 -1
  28. package/dist/{common-DuTZ9psy.cjs → common-BQVcjB7s.cjs} +2 -2
  29. package/dist/{common-DuTZ9psy.cjs.map → common-BQVcjB7s.cjs.map} +1 -1
  30. package/dist/{common-4RfhKX4z.js → common-BtEjhpH-.js} +3 -3
  31. package/dist/{common-4RfhKX4z.js.map → common-BtEjhpH-.js.map} +1 -1
  32. package/dist/common.cjs +1 -1
  33. package/dist/common.js +4 -4
  34. package/dist/index.cjs +1 -1
  35. package/dist/index.js +6 -6
  36. package/dist/native-webview-CEgjvGWF.cjs +2 -0
  37. package/dist/native-webview-CEgjvGWF.cjs.map +1 -0
  38. package/dist/{native-webview-BHGSwpmL.js → native-webview-QLwuablV.js} +6 -6
  39. package/dist/native-webview-QLwuablV.js.map +1 -0
  40. package/dist/native.cjs +1 -1
  41. package/dist/native.iife.js +14 -14
  42. package/dist/native.iife.js.map +1 -1
  43. package/dist/native.js +1 -1
  44. package/dist/product-utils-BEnINMdx.cjs +2 -0
  45. package/dist/{product-utils-CUJMklz6.cjs.map → product-utils-BEnINMdx.cjs.map} +1 -1
  46. package/dist/{product-utils-CO7BBSGE.js → product-utils-BUalkWz3.js} +2 -2
  47. package/dist/{product-utils-CO7BBSGE.js.map → product-utils-BUalkWz3.js.map} +1 -1
  48. package/dist/{qna-DbmSBAP2.js → qna-C7XoZSSw.js} +2 -2
  49. package/dist/{qna-DbmSBAP2.js.map → qna-C7XoZSSw.js.map} +1 -1
  50. package/dist/{qna-DCtpM8u1.cjs → qna-cn9DHuBF.cjs} +2 -2
  51. package/dist/{qna-DCtpM8u1.cjs.map → qna-cn9DHuBF.cjs.map} +1 -1
  52. package/dist/qna.cjs +1 -1
  53. package/dist/qna.css +1 -1
  54. package/dist/qna.iife.js +1 -1
  55. package/dist/qna.iife.js.map +1 -1
  56. package/dist/qna.js +1 -1
  57. package/dist/{schemas-BhJLrCGk.js → schemas-Dcfz5vXW.js} +8 -19
  58. package/dist/schemas-Dcfz5vXW.js.map +1 -0
  59. package/dist/{schemas-Byx40x9I.cjs → schemas-DeE-RHGa.cjs} +2 -2
  60. package/dist/schemas-DeE-RHGa.cjs.map +1 -0
  61. package/dist/simbut.css +1 -1
  62. package/dist/{simrel-Bvsumvpl.cjs → simrel-CVKjhHee.cjs} +2 -2
  63. package/dist/{simrel-Bvsumvpl.cjs.map → simrel-CVKjhHee.cjs.map} +1 -1
  64. package/dist/{simrel-Dd_bVL7o.js → simrel-R3mVoFQG.js} +3 -3
  65. package/dist/{simrel-Dd_bVL7o.js.map → simrel-R3mVoFQG.js.map} +1 -1
  66. package/dist/simrel.cjs +1 -1
  67. package/dist/simrel.css +1 -1
  68. package/dist/simrel.iife.js +1 -1
  69. package/dist/simrel.iife.js.map +1 -1
  70. package/dist/simrel.js +1 -1
  71. package/package.json +1 -1
  72. package/dist/chat-CLbwX39O.cjs +0 -13
  73. package/dist/chat-CLbwX39O.cjs.map +0 -1
  74. package/dist/chat-DrbdN7yo.js.map +0 -1
  75. package/dist/native-webview-BHGSwpmL.js.map +0 -1
  76. package/dist/native-webview-DMWWHLVh.cjs +0 -2
  77. package/dist/native-webview-DMWWHLVh.cjs.map +0 -1
  78. package/dist/product-utils-CUJMklz6.cjs +0 -2
  79. package/dist/schemas-BhJLrCGk.js.map +0 -1
  80. package/dist/schemas-Byx40x9I.cjs.map +0 -1
@@ -45,7 +45,7 @@
45
45
  }
46
46
  }
47
47
  `,document.head.appendChild(e)}var y=null;function Me(){if(y!==null)return y;try{y=localStorage.getItem(`gengage:debug`)===`1`}catch{y=!1}return y}function Ne(e,t,n){if(!Me())return;let r=[`[gengage:${e}]`,t];n!==void 0&&r.push(n),console.debug(...r)}var Pe=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}let t=fe(e.theme);this.config={...e,theme:t,session:ue(e.session)},this.root=this._resolveMount(e.mountTarget),this._applyTheme(t),we();let n=ce(`gengage:context:update`,e=>this.update(e));this._cleanups.push(n),Ne(`lifecycle`,`${this.constructor.name}.init`,{accountId:e.accountId,sku:e.pageContext?.sku});try{await this.onInit(this.config)}catch(e){throw this.destroy(),e}this._destroying||(this.isInitialised=!0,Ne(`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.config.analyticsClient?.destroy(),this._ownsRoot?this.root.remove():this.root.innerHTML=``,this.isInitialised=!1)}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)}trackCheckout(e,t){let n=e===`start`?u:d;this.track(n(this.analyticsContext(),t))}flushMeteringSummary(e){this.track(s(this.analyticsContext(),e))}emit(e,...t){this._handlers.get(e)?.forEach(e=>e(...t))}addCleanup(e){this._cleanups.push(e)}track(e){this.config.analyticsClient?.track(e)}analyticsContext(){let e={account_id:this.config.accountId,session_id:this.config.session?.sessionId??``,correlation_id:this.config.session?.sessionId??``};return this.config.session?.viewId!==void 0&&(e.view_id=this.config.session.viewId),this.config.session?.userId!==void 0&&(e.user_id=this.config.session.userId),this.config.pageContext?.pageType!==void 0&&(e.page_type=this.config.pageContext.pageType),this.config.pageContext?.sku!==void 0&&(e.sku=this.config.pageContext.sku),this.config.session?.abTestVariant!==void 0&&(e.ab_test_variant=this.config.session.abTestVariant),this.config.session?.abTestExperimentId!==void 0&&(e.ab_test_experiment_id=this.config.session.abTestExperimentId),e}_resolveMount(e){if(e instanceof HTMLElement)return e;if(typeof e==`string`){let t=document.querySelector(e);if(!t)throw Error(`[gengage] Mount target not found: "${e}"`);return t}let 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(let[t,n]of Object.entries(e))if(n!==void 0){let e=t.startsWith(`--`)?t:`--gengage-${Fe(t)}`;this.root.style.setProperty(e,n)}}}};function Fe(e){return e.replace(/([A-Z])/g,`-$1`).toLowerCase()}var Ie=8e3,Le=5e3,Re=`https://www.google.com/favicon.ico`,b=new Map,ze=!1,x=null,Be=null,S=!1;function Ve(e){return typeof e==`string`&&e.toLowerCase().startsWith(`tr`)}function He(e){return Ve(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 Ue(){let e;for(let t of b.values())e=t;return e}function We(){x&&=(clearTimeout(x),null)}function Ge(){Be&&=(clearInterval(Be),null)}async function Ke(){try{if(typeof navigator<`u`&&navigator.onLine===!1)return!1;if(typeof window<`u`){let e=window.location.hostname;if(e===`localhost`||e===`127.0.0.1`)return navigator.onLine}let e=new AbortController,t=setTimeout(()=>e.abort(),3e3);try{return await fetch(Re,{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 qe(){S=!1,Ge(),Ee()}function Je(){x||S||b.size===0||(x=setTimeout(async()=>{x=null,!(S||b.size===0)&&!await Ke()&&b.size>0&&(S=!0,Te({source:`sdk`,message:He(Ue()),sticky:!0}),Be||=setInterval(async()=>{if(b.size===0){qe();return}await Ke()&&(qe(),Je())},Le))},Ie))}function Ye(){ze||typeof window>`u`||(ze=!0,window.addEventListener(`online`,()=>{qe(),Je()}),window.addEventListener(`offline`,()=>{b.size===0||S||(S=!0,We(),Te({source:`sdk`,message:He(Ue()),sticky:!0}))}))}function Xe(e){Ye();let t=Symbol(e.source);b.set(t,e.locale),Je();let n=!1;return()=>{if(!n){if(n=!0,b.delete(t),b.size===0){We(),qe();return}S||(We(),Je())}}}var Ze={process_action:`/process_action`,launcher_action:`/launcher_action`,similar_products:`/similar_products`,product_groupings:`/product_groupings`};function Qe(e){if(e===void 0)throw Error(`[gengage] middlewareUrl is required. Pass your Gengage backend URL in widget config.`);let t=e.trim();return t===``?``:t.replace(/\/+$/,``)}function $e(e,t){return`${Qe(t?.middlewareUrl)}/chat${Ze[e]}`}function et(e){return typeof e==`object`&&!!e&&typeof e.type==`string`}function tt(e){let t=[],n=0,r=!1,i=!1,a=0;for(let o=0;o<e.length;o++){let s=e[o];if(i){i=!1;continue}if(s===`\\`&&r){i=!0;continue}if(s===`"`){r=!r;continue}r||(s===`{`&&n++,s===`}`&&(n--,n===0&&(t.push(e.slice(a,o+1)),a=o+1)))}return t.length>0?t:[e]}function nt(e,t){let n=e.trim();if(!n||n.startsWith(`:`))return!1;let r=n.startsWith(`data: `)?n.slice(6):n;if(r===`[DONE]`)return t.onDone?.(),!0;try{let e=JSON.parse(r);return et(e)?(Ne(`stream`,`event: ${e.type}`,e),t.onEvent(e),e.type===`done`?(t.onDone?.(),!0):!1):!1}catch{let e=tt(r);if(e.length>1){for(let n of e)try{let e=JSON.parse(n);if(!et(e))continue;if(t.onEvent(e),e.type===`done`)return t.onDone?.(),!0}catch{}return!1}return!1}}async function rt(e,t){if(!e.ok){t.onError?.(Error(`HTTP ${e.status}: ${e.statusText}`));return}if(!e.body){t.onError?.(Error(`Response body is null — streaming not supported`));return}let n=e.body.getReader(),r=new TextDecoder(`utf-8`),i=``,a=t.idleTimeoutMs??6e4,o=Symbol(`idle-timeout`),s=!1;try{for(;;){let e=n.read(),c,l=await(a>0?Promise.race([e.then(e=>(clearTimeout(c),e)),new Promise(e=>{c=setTimeout(()=>e(o),a)})]):e);if(l===o){s=!0,await n.cancel();break}let{done:u,value:d}=l;if(u)break;i+=r.decode(d,{stream:!0});let f=i.split(`
48
- `);i=f.pop()??``;for(let e of f)if(nt(e,t))return}if(i.trim()&&nt(i,t))return}catch(e){if(e instanceof DOMException&&e.name===`AbortError`)return;t.onError?.(e instanceof Error?e:Error(String(e)))}finally{s||n.releaseLock()}t.onDone?.()}var it=3,at=(e,t)=>{let n=e.replace(/\s+/g,` `).trim().replace(/^[,.;:!?•-]+|[,.;:!?•-]+$/g,``);if(!n)return``;let r=t?.stripLeadingStopWords?n.replace(/^(?:daha|için)\s+/i,``).trim():n;return r?r.split(/\s+/).slice(0,3).join(` `).trim():``},ot=(e,t)=>e?e.split(/[•,;:/()]|(?:\sve\s)|(?:\sand\s)|(?:\sile\s)|(?:\sfor\s)|(?:\swith\s)/i).map(e=>at(e,t)).filter(Boolean):[];function st(e){let t=(e.display_keywords??[]).flatMap(e=>ot(e,{stripLeadingStopWords:!0})),n=t.filter((e,n)=>t.indexOf(e)===n);if(n.length>0)return n.slice(0,it);let r=[...ot(e.chosen_attribute,{stripLeadingStopWords:!0}),...ot(e.short_name)];return r.filter((e,t)=>r.indexOf(e)===t).slice(0,it)}function ct(e){return st(e).join(` • `)}function lt(e){if(typeof e.type!=`string`)return null;if(ut(e))return e;let t=e;switch(t.type){case`outputText`:return dt(t);case`suggestedActions`:return ft(t);case`productList`:return pt(t);case`productDetails`:return mt(t);case`productDetailsSimilars`:return ht(t);case`comparisonTable`:return gt(t);case`context`:return bt(t);case`chatStreamEnd`:return xt();case`loading`:return St(t);case`panelLoading`:return Ct(t);case`similarLoading`:return wt(t);case`redirect`:return Tt(t);case`error`:return Et(t);case`dummy`:return Dt(t);case`launcherAction`:return Ot(t);case`text`:return kt(t);case`productItem`:return At(t);case`text_image`:return jt(t);case`quick_qna`:return Mt(t);case`reviewHighlights`:return Nt(t);case`aiProductSuggestions`:return It(t);case`aiProductGroupings`:return Lt(t);case`aiSuggestedSearches`:return Rt(t);case`prosAndCons`:return Pt(t);case`getGroundingReview`:return zt(t);case`voice`:return Vt(t);case`visitorDataResponse`:return Ft(t);case`productListPreview`:return Bt();case`groupList`:return Ht(t);case`formGetInfo`:case`formTestDrive`:case`formServiceRequest`:case`launchFormPage`:return Ut(t);case`launcherContent`:return Gt(t);case`handoff`:return Wt(t);default:return null}}function ut(e){let 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`:{let t=e.widget;if(t!==`chat`&&t!==`qna`&&t!==`simrel`)return!1;let n=w(e.spec);return n?typeof n.root==`string`&&w(n.elements)!==null:!1}case`action`:{let t=w(e.action);return t!==null&&typeof t.kind==`string`}case`error`:return typeof e.code==`string`&&typeof e.message==`string`;case`done`:return!0;default:return!1}}function dt(e){let t=T(e.payload.text,e.payload.plain_text)??``,n=T(e.payload.plain_text,e.payload.text)??t;if(e.payload.is_error)return{type:`error`,code:`BACKEND_ERROR`,message:n||`Backend returned an error`};let r={type:`text_chunk`,content:t,final:!0},i=e.payload.product_mentions;Array.isArray(i)&&i.length>0&&(r.productMentions=i.filter(e=>typeof e==`object`&&!!e&&typeof e.sku==`string`&&typeof e.short_name==`string`));let a=e.payload.sku_to_product_item;a&&typeof a==`object`&&!Array.isArray(a)&&(r.skuToProductItem=a);let o=e.payload.conversation_mode;return typeof o==`string`&&o&&(r.conversationMode=o),r}function ft(e){return Kt((e.payload.actions??[]).map(e=>{let t=T(e.title)??``,n=C(e.requestDetails,t),r=n?{label:t,action:n}:null;return r?(typeof e.icon==`string`&&(r.icon=e.icon),typeof e.image==`string`&&(r.image=e.image),r):null}).filter(en),`chat`)}function pt(e){let t=qt(e.payload.product_list??[],`chat`);t.panelHint=`panel`;let n=t.spec.elements[t.spec.root];return n&&(typeof e.payload.offset==`number`&&(n.props={...n.props,offset:e.payload.offset}),typeof e.payload.end_of_list==`boolean`&&(n.props={...n.props,endOfList:e.payload.end_of_list}),typeof e.payload.title==`string`&&(n.props={...n.props,panelTitle:e.payload.title})),t}function mt(e){let t=e.payload.productDetails;if(!t)return Yt(`chat`);let n=D(t),r={...t,...n};return e.payload.hide_side_panel===!0?{type:`ui_spec`,widget:`chat`,spec:{root:`root`,elements:{root:{type:`ProductSummaryCard`,props:{product:r}}}},clearPanel:!0}:{type:`ui_spec`,widget:`chat`,spec:{root:`root`,elements:{root:{type:`ProductDetailsPanel`,props:{product:r}}}},panelHint:`panel`}}function ht(e){let t=qt(e.payload.similarProducts??[],`chat`),n=t.spec.elements[t.spec.root];return n&&(n.props={...n.props,similarsAppend:!0}),{...t,panelHint:`panel`}}function gt(e){let t=e.payload.multiple_product_details??[],n=e.payload,r={key_differences:n.key_differences,recommended_choice:n.recommended_choice,recommended_choice_sku:n.recommended_choice_sku,special_considerations:n.special_considerations,criteria_view:n.criteria_view,criteria_view_short:n.criteria_view_short,compared_field_names:n.compared_field_names,winner_product:n.winner_product,winner_hits:n.winner_hits,...e.payload.product_comparison_framework??{}},i=e.payload.table,a=e.payload.features_list,o=[];for(let e of t){let t=D(e);o.push(t)}let s=_t(i,o,r,a),c;r?.recommended_choice_sku?c=r.recommended_choice_sku:r?.winner_product&&r.winner_product.length>0&&(c=r.winner_product[0]?.product_detail?.sku??r.winner_product[0]?.sku);let l=c?o.find(e=>e.sku===c)??o[0]:o[0],u=[];if(Array.isArray(r?.key_differences))for(let e of r.key_differences)typeof e==`string`&&u.push(e);let d=$t(r?.special_considerations),f=r?.recommended_choice,p=r?.winner_hits,m={};for(let e of o){let t=e.sku;t&&(m[t]={title:e.name??t,type:`launchSingleProduct`,payload:{sku:t}})}let h={products:o,attributes:s,highlights:u,productActions:m};return l&&(h.recommended=l),d.length>0&&(h.specialCases=d),f&&(h.recommendedText=f),p&&(h.winnerHits=p),typeof r?.key_differences==`string`&&(h.keyDifferencesHtml=r.key_differences),r?.special_considerations&&(h.specialConsiderations=r.special_considerations),{type:`ui_spec`,widget:`chat`,spec:{root:`root`,elements:{root:{type:`ComparisonTable`,props:h}}},panelHint:`panel`}}function _t(e,t,n,r){if(!e)return[];let i=Object.entries(e);if(i.length===0)return[];let a=i[0]?.[1];if(Array.isArray(a)){let t=n.criteria_view??n.criteria_view_short??{},r=n.compared_field_names??Object.keys(e),i=[];for(let n of r){let r=e[n];if(!r||!Array.isArray(r))continue;let a=t[n]??n;i.push({label:a,values:r.map(e=>typeof e==`string`?e:String(e??``))})}return i}let o=e,s=t.map(e=>String(e.sku??``)).filter(e=>e.length>0),c=n.criteria_view??n.criteria_view_short??{},l=(r&&r.length>0?r:n.compared_field_names&&n.compared_field_names.length>0?n.compared_field_names:vt(o)).filter(e=>e!==`name`&&e!==`name_short`&&!e.endsWith(`_short`)),u=[];for(let e of l){let t=s.map(t=>{let n=o[t];if(!n||typeof n!=`object`)return``;let r=n[`${e}_short`],i=n[e];return yt(r??i)});if(t.every(e=>e.length===0))continue;let n=c[e]??e;u.push({label:n,values:t})}return u}function vt(e){let t=[],n=new Set;for(let r of Object.values(e))if(!(!r||typeof r!=`object`))for(let e of Object.keys(r))n.has(e)||(n.add(e),t.push(e));return t}function yt(e){return typeof e==`string`?e:typeof e==`number`||typeof e==`boolean`?String(e):``}function bt(e){return{type:`metadata`,sessionId:``,model:``,meta:{panel:e.payload.panel,messages:e.payload.messages,message_id:e.payload.message_id}}}function xt(){return{type:`done`}}function St(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 Ct(e){return{type:`metadata`,sessionId:``,model:``,meta:{loading:!0,panelLoading:!0,panelPendingType:e.payload?.pending_type,loadingText:e.payload?.text}}}function wt(e){return{type:`metadata`,sessionId:``,model:``,meta:{loading:!0,similarPanelLoading:!0,panelPendingType:e.payload?.pending_type,loadingText:e.payload?.text}}}function Tt(e){let t=T(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:T(e.payload.to)}}}function Et(e){return{type:`error`,code:`BACKEND_ERROR`,message:T(e.payload?.text,e.payload?.message,e.payload?.error)??`Backend returned an error`}}function Dt(e){return{type:`metadata`,sessionId:``,model:``,meta:{noop:!0}}}function Ot(e){let t=e.payload??{};if(Array.isArray(t.action_list)){let e={action_list:t.action_list},n=typeof t.type==`string`?t.type:void 0,r=typeof t.theme==`string`?t.theme:void 0;return n!==void 0&&(e.type=n),r!==void 0&&(e.theme=r),Mt({type:`quick_qna`,payload:e})}let n=w(t.action);if(n){let e={action:n},r=typeof t.text==`string`?t.text:void 0,i=typeof t.image_url==`string`?t.image_url:void 0,a=typeof t.theme==`string`?t.theme:void 0;return r!==void 0&&(e.text=r),i!==void 0&&(e.image_url=i),a!==void 0&&(e.theme=a),jt({type:`text_image`,payload:e})}let r=typeof t.text==`string`?t.text:``;if(r){let e={text:r},n=typeof t.type==`string`?t.type:void 0,i=typeof t.theme==`string`?t.theme:void 0,a=w(t.payload)??void 0;return n!==void 0&&(e.type=n),a!==void 0&&(e.payload=a),i!==void 0&&(e.theme=i),kt({type:`text`,payload:e})}return{type:`metadata`,sessionId:``,model:``,meta:{launcherAction:t}}}function kt(e){let t={text:T(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 At(e){return Jt(e.payload,`qna`)}function jt(e){let t=T(e.payload.text)??``,n=C(e.payload.action,t);if(n){let r={label:t||n.title,action:n};return typeof e.payload.image_url==`string`&&(r.image=e.payload.image_url),typeof e.payload.theme==`string`&&(r.theme=e.payload.theme),{type:`ui_spec`,widget:`qna`,spec:{root:`root`,elements:{root:{type:`ActionButton`,props:r}}}}}let r={text:t};return typeof e.payload.theme==`string`&&(r.theme=e.payload.theme),kt({type:`text`,payload:r})}function Mt(e){return Kt((e.payload.action_list??[]).map(e=>{let t=T(e.title)??``,n=C(e.requestDetails,t),r=n?{label:t,action:n}:null;return r?(typeof e.icon==`string`&&(r.icon=e.icon),typeof e.image==`string`&&(r.image=e.image),r):null}).filter(en),`qna`)}function Nt(e){let t={reviews:(e.payload.reviews??[]).map(e=>{let t={};return typeof e.review_class==`string`&&(t.review_class=e.review_class),typeof e.review_text==`string`&&(t.review_text=e.review_text),(typeof e.review_rating==`string`||typeof e.review_rating==`number`)&&(t.review_rating=e.review_rating),typeof e.review_tag==`string`&&(t.review_tag=e.review_tag),t})};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 Pt(e){let 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 Ft(e){return{type:`metadata`,sessionId:``,model:``,meta:{visitorDataResponse:e.payload}}}function It(e){let t=e.payload.product_suggestions??[],n=[];for(let e=0;e<t.length;e++){let r=t[e];if(!r)continue;let i=Xt(r);if(!i)continue;let a={product:i},o=C(r.requestDetails,i.name);o&&(a.action=o),typeof r.role==`string`&&(a.role=r.role),typeof r.reason==`string`&&(a.reason=r.reason),typeof r.review_highlight==`string`&&(a.reviewHighlight=r.review_highlight),Array.isArray(r.labels)&&(a.labels=r.labels),typeof r.expert_quality_score==`number`&&(a.expertQualityScore=r.expert_quality_score),n.push(a)}return n.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:n}}}}}}function Lt(e){let t=e.payload.product_groupings??[],n=[];for(let e=0;e<t.length;e++){let r=t[e];if(!r)continue;let i=T(r.name)??``,a=r.sku&&r.sku.length>0?{type:`findSimilar`,payload:{sku:r.sku}}:void 0,o=C(r.requestDetails??a,i);if(!o)continue;let s={name:i,action:o};if(Array.isArray(r.labels)){let e=r.labels.filter(e=>typeof e==`string`);e.length>0&&(s.labels=e)}typeof r.image==`string`&&(s.image=r.image),n.push(s)}return 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 Rt(e){let t=e.payload.suggested_searches??[],n=[];for(let e=0;e<t.length;e++){let r=t[e];if(!r)continue;let i=T(r.short_name,r.chosen_attribute,r.detailed_user_message)??`Search ${e+1}`,a={},o=T(r.detailed_user_message);o&&(a.text=o);let s=w(w(r.requestDetails)?.payload),c=s?.group_skus;r.group_skus&&Array.isArray(r.group_skus)?a.group_skus=r.group_skus:Array.isArray(c)&&(a.group_skus=c.filter(e=>typeof e==`string`));let l=T(r.sku,r.representative_product_sku,s?.sku);l&&(a.sku=l),a.is_suggested_text=1;let u={type:`inputText`,payload:a},d=C(r.requestDetails,i),f=d?.type===`findSimilar`&&typeof a.text==`string`?C(u,i):d??C(u,i);if(!f)continue;let p={shortName:i,action:f},m=T(r.detailed_user_message);m&&m!==i&&(p.detailedMessage=m);let h=ct(r);h&&h!==i&&h!==(m??``)&&(p.whyDifferent=h),typeof r.image==`string`&&(p.image=r.image),n.push(p)}return n.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:n}}}}}}function zt(e){let t=C(e.payload.requestDetails,T(e.payload.review_count,e.payload.text,e.payload.title)??`Show product reviews`);if(!t)return{type:`metadata`,sessionId:``,model:``,meta:{groundingReview:e.payload}};let n={action:t};return e.payload.title&&(n.title=e.payload.title),e.payload.text&&(n.text=e.payload.text),e.payload.review_count&&(n.reviewCount=e.payload.review_count),{type:`ui_spec`,widget:`chat`,spec:{root:`root`,elements:{root:{type:`GroundingReviewCard`,props:n}}}}}function Bt(){return{type:`metadata`,sessionId:``,model:``,meta:{analyzeAnimation:!0}}}function Vt(e){return{type:`metadata`,sessionId:``,model:``,meta:{voice:e.payload}}}function Ht(e){let t=e.payload.group_list??[],n=[];for(let e of t){let t=e.group_name??``,r=(e.product_list??[]).map(D);n.push({groupName:t,products:r})}let r=[];for(let t of e.payload.filter_tags??[]){let e=t.title??``;if(!e)continue;let n=C(t.requestDetails,e),i={title:e};n&&(i.action=n),r.push(i)}return{type:`ui_spec`,widget:`chat`,spec:{root:`root`,elements:{root:{type:`CategoriesContainer`,props:{groups:n,filterTags:r}}}},panelHint:`panel`}}function Ut(e){return{type:`metadata`,sessionId:``,model:``,meta:{formType:e.type,formPayload:e.payload??{}}}}function Wt(e){let 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 Gt(e){return{type:`metadata`,sessionId:``,model:``,meta:{launcherContent:e.payload??{}}}}function Kt(e,t){let n={},r=[];for(let t=0;t<e.length;t++){let i=e[t];if(!i)continue;let a=`action-${t}`;r.push(a);let o={label:i.label,action:i.action};i.icon!==void 0&&(o.icon=i.icon),i.image!==void 0&&(o.image=i.image),i.description!==void 0&&(o.description=i.description),n[a]={type:`ActionButton`,props:o}}return n.root={type:`ActionButtons`,props:{buttons:e.map(e=>{let t={label:e.label,action:e.action};return e.image!==void 0&&(t.image=e.image),e.description!==void 0&&(t.description=e.description),e.icon!==void 0&&(t.icon=e.icon),t})},children:r},{type:`ui_spec`,widget:t,spec:{root:`root`,elements:n}}}function qt(e,t){let n={},r=[];for(let t=0;t<e.length;t++){let i=e[t];if(!i)continue;let a=D(i),o=`product-${t}`;r.push(o);let s={product:a,index:t};a.sku&&(s.action={title:a.name,type:`launchSingleProduct`,payload:{sku:a.sku}}),n[o]={type:`ProductCard`,props:s}}return n.root={type:`ProductGrid`,props:{layout:`grid`},children:r},{type:`ui_spec`,widget:t,spec:{root:`root`,elements:n}}}function Jt(e,t){return{type:`ui_spec`,widget:t,spec:{root:`root`,elements:{root:{type:`ProductCard`,props:{product:D(e),index:0}}}}}}function Yt(e){return{type:`ui_spec`,widget:e,spec:{root:`root`,elements:{root:{type:`ActionButtons`,props:{buttons:[]},children:[]}}}}}function Xt(e){let t=T(e.sku),n=T(e.short_name);return Zt(w(e.product_item)??e,t,n)}function Zt(e,t,n){let r=T(e.sku,t),i=T(e.name,n);if(!r||!i)return null;let a={sku:r,name:i},o=T(e.brand);o&&(a.brand=o);let s=T(e.url);s&&(a.url=s);let c=Qt(e.images);if(c.length>0)a.images=c;else{let t=T(e.image,e.image_url,e.imageUrl);t&&(a.images=[t])}let l=E(e.price_discounted);l!==void 0&&(a.price_discounted=l);let u=E(e.price);u!==void 0&&(a.price=u);let d=E(e.rating);d!==void 0&&(a.rating=d);let f=E(e.review_count)??E(e.reviewCount);f!==void 0&&(a.review_count=f);let p=T(e.cart_code,e.cartCode);return p&&(a.cart_code=p),typeof e.in_stock==`boolean`&&(a.in_stock=e.in_stock),typeof e.inStock==`boolean`&&(a.in_stock=e.inStock),D(a)}function C(e,t){let n=w(e);if(!n)return null;let r=n.type;if(typeof r!=`string`||r.length===0)return null;let i={title:t||r,type:r};return n.payload!==void 0&&(i.payload=n.payload),i}function w(e){return!e||typeof e!=`object`||Array.isArray(e)?null:e}function T(...e){for(let t of e)if(typeof t==`string`){let e=t.trim();if(e.length>0)return e}}function Qt(e){return Array.isArray(e)?e.filter(e=>typeof e==`string`&&e.length>0):[]}function $t(e){if(typeof e==`string`){let t=e.trim();return t?[t]:[]}return Array.isArray(e)?e.filter(e=>typeof e==`string`).map(e=>e.trim()).filter(e=>e.length>0):[]}function E(e){if(typeof e==`number`&&Number.isFinite(e))return e;if(typeof e==`string`){let t;t=e.includes(`.`)&&e.includes(`,`)?e.replace(/\./g,``).replace(`,`,`.`):e.replace(`,`,`.`);let n=Number(t);if(Number.isFinite(n))return n}}function en(e){return e!=null}var tn=new Set([`sku`,`name`,`brand`,`images`,`price`,`price_discounted`,`price_currency`,`discount_reason`,`url`,`rating`,`review_count`,`cart_code`,`in_stock`,`category_ids`,`category_names`,`variants`,`facet_hits`,`promotions`]);function D(e){let t=e.price_discounted!=null&&e.price_discounted>0,n=t?e.price_discounted:e.price,r=t&&e.price!=null?e.price:void 0,i;r!=null&&n!=null&&r>0&&(i=Math.round((r-n)/r*100));let a=T(e.brand),o=T(e.name)??e.sku,s=a&&!o.toLowerCase().startsWith(a.toLowerCase())?`${a} ${o}`:o,c={sku:e.sku,name:s,url:T(e.url)??``},l=e.images?.[0];l&&(c.imageUrl=l),e.images&&e.images.length>1&&(c.images=e.images),n!=null&&(c.price=String(n)),r!=null&&(c.originalPrice=String(r)),i!==void 0&&(c.discountPercent=i),a!==void 0&&(c.brand=a),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);let u=e,d={},f=!1;for(let e of Object.keys(u))tn.has(e)||(d[e]=u[e],f=!0);return f&&(c.extras=d),c}function nn(e){return e.results.map(D)}function rn(e){return e.product_groupings.map(e=>{let t={name:e.name,products:(e.group_products??[]).map(D)};return e.highlight!==void 0&&(t.highlight=e.highlight),t})}function an(e){let t=[];for(let n of Object.values(e))if(n.type===`ProductCard`&&n.props){let e=n.props.product??n.props;typeof e.sku==`string`&&typeof e.name==`string`&&t.push(e)}return t}function on(e){let t=e.headers.get(`Content-Type`)??``;return t.includes(`application/x-ndjson`)||t.includes(`text/event-stream`)}async function sn(e,t){let n=[],r={onEvent:e=>{let t=lt(e);!t||t.type!==`ui_spec`||n.push(...an(t.spec.elements))}};return t!==void 0&&(r.signal=t),await rt(e,r),n}async function cn(e,t,n){let r=$e(`similar_products`,t),i={method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify(e)};n!==void 0&&(i.signal=n);let a=await fetch(r,i);if(!a.ok)throw Error(`HTTP ${a.status}: ${a.statusText}`);if(on(a))return sn(a,n);let o=await a.text();if(!o)throw Error(`Empty response body from similar_products endpoint`);try{return nn(JSON.parse(o))}catch{throw Error(`Invalid JSON from similar_products endpoint`)}}async function ln(e,t){let n=[],r=null,i={onEvent:e=>{let t=lt(e);if(t){if(t.type===`metadata`&&t.meta){let e=t.meta.group_name;if(typeof e==`string`){r={name:e,products:[]};let i=t.meta.highlight;typeof i==`string`&&(r.highlight=i),n.push(r)}}t.type===`ui_spec`&&r&&r.products.push(...an(t.spec.elements))}}};return t!==void 0&&(i.signal=t),await rt(e,i),n}async function un(e,t,n){let r=$e(`product_groupings`,t),i={method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify(e)};n!==void 0&&(i.signal=n);let a=await fetch(r,i);if(!a.ok)throw Error(`HTTP ${a.status}: ${a.statusText}`);if(on(a))return ln(a,n);let o=await a.text();if(!o)return[];try{return rn(JSON.parse(o))}catch{throw Error(`Invalid JSON from product_groupings endpoint`)}}var dn={currencyCode:`TRY`,currencySymbol:`TL`,currencyPosition:`suffix`,thousandsSeparator:`.`,decimalSeparator:`,`,alwaysShowDecimals:!1};function fn(e,t){let n=Number(e);if(!Number.isFinite(n)||n<0)return e;let r={...dn,...t},i=Math.abs(n%1)<2**-52,a=r.alwaysShowDecimals||!i?n.toFixed(2):n.toFixed(0),o=a.indexOf(`.`),s=o===-1?a:a.slice(0,o),c=o===-1?void 0:a.slice(o+1),l=s.replace(/\B(?=(\d{3})+(?!\d))/g,r.thousandsSeparator),u;return u=c===void 0?l:`${l}${r.decimalSeparator}${c}`,r.currencySymbol?r.currencyPosition===`prefix`?`${r.currencySymbol}${u}`:`${u} ${r.currencySymbol}`:u}function pn(e){return Number.isFinite(e)?Math.max(0,Math.min(5,e)):0}function mn(e){return Number.isFinite(e)?Math.max(0,Math.min(100,Math.round(e))):0}function hn(e){let t=pn(e),n=Math.floor(t),r=t-n>=.5,i=5-n-(r?1:0),a=document.createElement(`span`);if(a.className=`gengage-star-rating`,a.setAttribute(`role`,`img`),a.setAttribute(`aria-label`,`${t.toFixed(1)} out of 5 stars`),n>0&&a.appendChild(document.createTextNode(`★`.repeat(n))),r){let e=document.createElement(`span`);e.className=`gengage-star-half`,e.textContent=`☆`;let t=document.createElement(`span`);t.textContent=`★`,e.appendChild(t),a.appendChild(e)}return i>0&&a.appendChild(document.createTextNode(`☆`.repeat(i))),a}function gn(e){e.addEventListener(`error`,()=>{e.style.display=`none`},{once:!0})}function _n(e){let{product:t,index:n,discountType:r,onClick:i,onAddToCart:a,renderCard:o}=e,s=e.i18n,c=e.pricing;if(e.renderCardElement){let r=e.renderCardElement(t,n);if(r)return r}if(o){let e=document.createElement(`div`);return e.className=`gengage-simrel-card gengage-simrel-card--custom gds-card gds-product-card gds-card-interactive`,e.dataset.gengagePart=`simrel-product-card`,e.innerHTML=oe(o(t,n)),e.addEventListener(`click`,e=>{e.target.closest(`.gengage-simrel-atc`)||e.target.closest(`.gengage-chat-product-card-atc`)||i(t)}),e}let l=document.createElement(`article`);l.className=`gengage-simrel-card gengage-chat-product-card gds-card gds-product-card gds-card-interactive`,l.dataset.gengagePart=`simrel-product-card`,t.inStock===!1&&l.classList.add(`gengage-simrel-card--out-of-stock`),l.setAttribute(`role`,`listitem`),l.dataset.sku=t.sku;let u=document.createElement(`div`);if(u.className=`gengage-simrel-card-image gengage-chat-product-card-img-wrapper`,u.dataset.gengagePart=`simrel-product-card-image`,t.imageUrl&&ae(t.imageUrl)){let e=document.createElement(`img`);e.className=`gengage-chat-product-card-img`,e.src=t.imageUrl,e.alt=t.name,e.loading=`lazy`,gn(e),u.appendChild(e)}if(r===`badge`&&t.discountPercent&&t.discountPercent>0){let e=document.createElement(`span`);e.className=`gengage-simrel-badge gengage-chat-product-card-discount-badge`,e.textContent=`%${mn(t.discountPercent)}`,u.appendChild(e)}l.appendChild(u);let 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){let e=document.createElement(`div`);e.className=`gengage-simrel-card-brand gengage-chat-product-card-brand`,e.textContent=t.brand,d.appendChild(e)}let 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){let e=document.createElement(`div`);if(e.className=`gengage-simrel-card-rating gengage-chat-product-card-rating`,e.appendChild(hn(t.rating)),t.reviewCount!=null){let n=document.createElement(`span`);n.className=`gengage-simrel-card-review-count gengage-chat-product-card-review-count`,n.textContent=` (${t.reviewCount})`,e.appendChild(n)}d.appendChild(e)}let p=document.createElement(`div`);if(p.className=`gengage-simrel-card-price gengage-chat-product-card-price`,t.originalPrice&&t.originalPrice!==t.price&&(r===`strike-through`||!r)){let e=document.createElement(`span`);e.className=`gengage-simrel-card-price-original gengage-chat-product-card-original-price`,e.textContent=fn(t.originalPrice,c),p.appendChild(e)}if(t.price&&parseFloat(t.price)>0){let e=document.createElement(`span`);e.className=`gengage-simrel-card-price-current gengage-chat-product-card-price-current`,e.textContent=fn(t.price,c),p.appendChild(e)}d.appendChild(p),l.appendChild(d);let m=document.createElement(`button`);if(m.className=`gengage-simrel-card-cta gengage-chat-product-card-cta gds-btn gds-btn-secondary`,m.type=`button`,m.dataset.gengagePart=`simrel-product-card-cta`,m.textContent=s?.ctaLabel??`View`,m.addEventListener(`click`,e=>{e.preventDefault(),e.stopPropagation(),i(t)}),l.appendChild(m),t.inStock===!1){let e=document.createElement(`div`);e.className=`gengage-simrel-card-oos`,e.textContent=s?.outOfStockLabel??`Out of Stock`,l.appendChild(e)}else if(t.cartCode){let e=document.createElement(`button`);e.className=`gengage-simrel-atc gengage-simrel-atc-button gds-btn gds-btn-secondary`,e.type=`button`,e.textContent=s?.addToCartButton??`Add to Cart`,e.addEventListener(`click`,e=>{e.preventDefault(),e.stopPropagation(),a({sku:t.sku,quantity:1,cartCode:t.cartCode})}),l.appendChild(e)}return l.addEventListener(`click`,e=>{e.target.closest(`.gengage-simrel-atc`)||e.target.closest(`.gengage-chat-product-card-atc`)||e.target.closest(`.gengage-chat-product-card-cta`)||i(t)}),l}function vn(e){let 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 n=0;n<e.products.length;n++){let r={product:e.products[n],index:n,onClick:e.onClick,onAddToCart:e.onAddToCart};e.i18n!==void 0&&(r.i18n=e.i18n),e.discountType!==void 0&&(r.discountType=e.discountType),e.renderCard!==void 0&&(r.renderCard=e.renderCard),e.renderCardElement!==void 0&&(r.renderCardElement=e.renderCardElement);let i=_n(r);t.appendChild(i)}return e.products.length===0&&(t.style.display=`none`,t.dataset.empty=`true`),t}var yn=0;function bn(e){let t=yn++,n=document.createElement(`div`);if(n.className=`gengage-simrel-groups`,n.dataset.gengagePart=`simrel-groups`,e.groups.length===0)return n.style.display=`none`,n.dataset.empty=`true`,n;let r=document.createElement(`div`);r.className=`gengage-simrel-tabs gds-toolbar`,r.dataset.gengagePart=`simrel-tab-bar`,r.setAttribute(`role`,`tablist`);let i=[],a=[],o=t=>{let n={products:t.products,onClick:e.onClick,onAddToCart:e.onAddToCart};return 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),e.columns!==void 0&&(n.columns=e.columns),n},s=t=>{for(let e=0;e<i.length;e++){let n=e===t;i[e].classList.toggle(`gengage-simrel-tab--active`,n),i[e].setAttribute(`aria-selected`,String(n)),i[e].tabIndex=n?0:-1}let n=e.groups[t],r=a[t];r.innerHTML=``;let s=vn(o(n));r.appendChild(s);for(let e=0;e<a.length;e++){let n=e===t;a[e].style.display=n?``:`none`,a[e].tabIndex=n?0:-1}};for(let n=0;n<e.groups.length;n++){let o=e.groups[n],c=`gengage-simrel-tab-${t}-${n}`,l=`gengage-simrel-panel-${t}-${n}`,u=document.createElement(`button`);u.className=`gengage-simrel-tab gds-tab`,u.type=`button`,u.dataset.gengagePart=`simrel-tab`,u.id=c,u.textContent=o.name,u.setAttribute(`role`,`tab`),u.setAttribute(`aria-controls`,l),u.setAttribute(`aria-selected`,String(n===0)),u.tabIndex=n===0?0:-1,n===0&&u.classList.add(`gengage-simrel-tab--active`),u.addEventListener(`click`,()=>s(n)),u.addEventListener(`keydown`,t=>{let r=-1;t.key===`ArrowRight`||t.key===`ArrowDown`?r=(n+1)%e.groups.length:t.key===`ArrowLeft`||t.key===`ArrowUp`?r=(n-1+e.groups.length)%e.groups.length:t.key===`Home`?r=0:t.key===`End`&&(r=e.groups.length-1),r>=0&&(t.preventDefault(),s(r),i[r].focus())}),i.push(u),r.appendChild(u);let d=document.createElement(`div`);d.className=`gengage-simrel-tab-panel`,d.dataset.gengagePart=`simrel-tab-panel`,d.id=l,d.setAttribute(`role`,`tabpanel`),d.setAttribute(`aria-labelledby`,c),d.tabIndex=n===0?0:-1,n!==0&&(d.style.display=`none`),a.push(d)}let c=document.createElement(`button`);c.type=`button`,c.className=`gengage-simrel-tabs-arrow gengage-simrel-tabs-arrow--left`,c.setAttribute(`aria-label`,e.i18n?.scrollTabsLeft??`Scroll tabs left`),c.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>`;let 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>`,c.addEventListener(`click`,()=>{r.scrollBy({left:-200,behavior:`smooth`})}),l.addEventListener(`click`,()=>{r.scrollBy({left:200,behavior:`smooth`})});let u=()=>{let e=r.scrollLeft<=4,t=r.scrollLeft+r.clientWidth>=r.scrollWidth-4;c.style.display=e?`none`:``,l.style.display=t?`none`:``,r.classList.toggle(`gengage-simrel-tabs--peek-right`,!t),r.classList.toggle(`gengage-simrel-tabs--peek-left`,!e)};r.addEventListener(`scroll`,u,{passive:!0}),typeof ResizeObserver<`u`&&new ResizeObserver(u).observe(r),c.style.display=`none`,l.style.display=`none`,requestAnimationFrame(u);let d=document.createElement(`div`);d.className=`gengage-simrel-tabs-wrapper`,d.appendChild(c),d.appendChild(r),d.appendChild(l),n.appendChild(d);let f=a[0],p=vn(o(e.groups[0]));f.appendChild(p);for(let e of a)n.appendChild(e);return n}function xn(e){if(!e||typeof e!=`object`)return null;let t=e;if(typeof t.sku!=`string`||typeof t.name!=`string`||typeof t.url!=`string`)return null;let n={sku:t.sku,name:t.name,url:t.url},r=t.imageUrl;typeof r==`string`&&(n.imageUrl=r);let i=t.price;typeof i==`string`&&(n.price=i);let a=t.originalPrice;typeof a==`string`&&(n.originalPrice=a);let o=t.discountPercent;typeof o==`number`&&(n.discountPercent=o);let s=t.brand;typeof s==`string`&&(n.brand=s);let c=t.rating;typeof c==`number`&&(n.rating=c);let l=t.reviewCount;typeof l==`number`&&(n.reviewCount=l);let u=t.cartCode;typeof u==`string`&&(n.cartCode=u);let d=t.inStock;typeof d==`boolean`&&(n.inStock=d);let f=t.extras;return typeof f==`object`&&f&&(n.extras=f),n}function Sn(e){if(!e||typeof e!=`object`)return null;let t=e,n=t.title,r=t.type;if(typeof n!=`string`||typeof r!=`string`)return null;let i={title:n,type:r};return t.payload!==void 0&&(i.payload=t.payload),i}var Cn={ProductGrid:({element:e,renderElement:t,context:n})=>{let r=document.createElement(`div`);r.className=`gengage-simrel-grid`,r.setAttribute(`role`,`list`);let i=e.props?.columns,a;typeof i==`number`&&Number.isFinite(i)&&i>0?a=Math.floor(i):typeof n.gridColumns==`number`&&Number.isFinite(n.gridColumns)&&n.gridColumns>0&&(a=Math.floor(n.gridColumns)),a!==void 0&&r.style.setProperty(`--gengage-simrel-columns`,String(a));for(let n of e.children??[]){let e=t(n);e&&r.appendChild(e)}if(r.children.length===0){let e=document.createElement(`div`);e.className=`gengage-simrel-empty`,e.textContent=n.i18n.emptyStateMessage,r.appendChild(e)}return r},ProductCard:({element:e,context:t})=>{let n=xn(e.props?.product??e.props);if(!n)return null;let r=e.props?.index,i=typeof r==`number`&&Number.isFinite(r)?r:0,a=e.props?.discountType,o=a===`strike-through`||a===`badge`?a:t.discountType,s={product:n,index:i,onClick:t.onClick,onAddToCart:t.onAddToCart,i18n:t.i18n};return o!==void 0&&(s.discountType=o),t.renderCard!==void 0&&(s.renderCard=t.renderCard),t.renderCardElement!==void 0&&(s.renderCardElement=t.renderCardElement),t.pricing!==void 0&&(s.pricing=t.pricing),_n(s)},GroupTabs:({element:e,context:t})=>{let n=e.props?.groups;if(!Array.isArray(n))return null;let r=[];for(let e of n){if(!e||typeof e!=`object`)continue;let t=e;if(typeof t.name!=`string`)continue;let n=[];if(Array.isArray(t.products))for(let e of t.products){let t=xn(e);t&&n.push(t)}let i={name:t.name,products:n};typeof t.highlight==`string`&&(i.highlight=t.highlight),r.push(i)}let i={groups:r,onClick:t.onClick,onAddToCart:t.onAddToCart,i18n:t.i18n},a=e.props?.columns;return typeof a==`number`&&Number.isFinite(a)&&a>0?i.columns=Math.floor(a):typeof t.gridColumns==`number`&&Number.isFinite(t.gridColumns)&&t.gridColumns>0&&(i.columns=Math.floor(t.gridColumns)),t.discountType!==void 0&&(i.discountType=t.discountType),t.renderCard!==void 0&&(i.renderCard=t.renderCard),t.renderCardElement!==void 0&&(i.renderCardElement=t.renderCardElement),bn(i)},EmptyState:({element:e,context:t})=>{let n=document.createElement(`div`);n.className=`gengage-simrel-empty`;let r=e.props?.message;return n.textContent=typeof r==`string`?r:t.i18n.emptyStateMessage,n},AddToCartButton:({element:e,context:t})=>{let n=e.props?.sku,r=e.props?.cartCode;if(typeof n!=`string`||typeof r!=`string`)return null;let i=document.createElement(`button`);i.className=`gengage-simrel-atc gengage-chat-product-card-cta`,i.type=`button`;let a=e.props?.label;return i.textContent=typeof a==`string`?a:t.i18n.addToCartButton,i.addEventListener(`click`,e=>{e.preventDefault(),e.stopPropagation(),t.onAddToCart({sku:n,quantity:1,cartCode:r})}),i},QuickActions:({element:e,context:t})=>{let n=document.createElement(`div`);n.className=`gengage-simrel-quick-actions`;let r=e.props?.actions;if(!Array.isArray(r)||!t.onAction)return n;for(let e of r){if(!e||typeof e!=`object`)continue;let r=e,i=r.label,a=Sn(r.action);if(typeof i!=`string`||!a)continue;let o=document.createElement(`button`);o.className=`gengage-simrel-quick-action`,o.type=`button`,o.textContent=i,o.addEventListener(`click`,e=>{e.preventDefault(),e.stopPropagation(),t.onAction?.(a)}),n.appendChild(o)}return n}},wn=({element:e,renderElement:t})=>{if(!e.children||e.children.length===0)return null;let n=document.createElement(`div`);for(let r of e.children){let e=t(r);e&&n.appendChild(e)}return n};function Tn(){return{...Cn}}function En(e,t,r=Cn,i=wn){return n({spec:e,context:t,registry:r,containerClassName:`gengage-simrel-uispec`,unknownRenderer:i})}var Dn={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`},On={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 kn(e){return e?e.toLowerCase().split(`-`)[0]??`tr`:`tr`}function An(e){switch(kn(e)){case`en`:return On;default:return Dn}}function jn(){return typeof window<`u`&&Array.isArray(window.dataLayer)}function Mn(e,t){let n={event:e,...t};jn()&&window.dataLayer.push(n)}function Nn(e){Mn(`gengage-on-init`,{gengage_widget:e})}function Pn(e){Mn(`gengage-show`,{gengage_widget:e})}function Fn(e,t){Mn(`gengage-product-detail`,{gengage_sku:e,gengage_product_name:t})}function In(e,t){Mn(`gengage-cart-add`,{gengage_sku:e,gengage_quantity:t})}Object.freeze({status:`aborted`});function O(e,t,n){function r(n,r){if(n._zod||Object.defineProperty(n,`_zod`,{value:{def:r,constr:o,traits:new Set},enumerable:!1}),n._zod.traits.has(e))return;n._zod.traits.add(e),t(n,r);let i=o.prototype,a=Object.keys(i);for(let e=0;e<a.length;e++){let t=a[e];t in n||(n[t]=i[t].bind(n))}}let i=n?.Parent??Object;class a extends i{}Object.defineProperty(a,`name`,{value:e});function o(e){var t;let i=n?.Parent?new a:this;r(i,e),(t=i._zod).deferred??(t.deferred=[]);for(let e of i._zod.deferred)e();return i}return Object.defineProperty(o,`init`,{value:r}),Object.defineProperty(o,Symbol.hasInstance,{value:t=>n?.Parent&&t instanceof n.Parent?!0:t?._zod?.traits?.has(e)}),Object.defineProperty(o,`name`,{value:e}),o}var k=class extends Error{constructor(){super(`Encountered Promise during synchronous parse. Use .parseAsync() instead.`)}},Ln=class extends Error{constructor(e){super(`Encountered unidirectional transform during encode: ${e}`),this.name=`ZodEncodeError`}},Rn={};function A(e){return e&&Object.assign(Rn,e),Rn}function zn(e){let t=Object.values(e).filter(e=>typeof e==`number`);return Object.entries(e).filter(([e,n])=>t.indexOf(+e)===-1).map(([e,t])=>t)}function Bn(e,t){return typeof t==`bigint`?t.toString():t}function Vn(e){return{get value(){{let t=e();return Object.defineProperty(this,`value`,{value:t}),t}throw Error(`cached value already set`)}}}function Hn(e){return e==null}function Un(e){let t=e.startsWith(`^`)?1:0,n=e.endsWith(`$`)?e.length-1:e.length;return e.slice(t,n)}function Wn(e,t){let n=(e.toString().split(`.`)[1]||``).length,r=t.toString(),i=(r.split(`.`)[1]||``).length;if(i===0&&/\d?e-\d?/.test(r)){let e=r.match(/\d?e-(\d?)/);e?.[1]&&(i=Number.parseInt(e[1]))}let a=n>i?n:i;return Number.parseInt(e.toFixed(a).replace(`.`,``))%Number.parseInt(t.toFixed(a).replace(`.`,``))/10**a}var Gn=Symbol(`evaluating`);function j(e,t,n){let r;Object.defineProperty(e,t,{get(){if(r!==Gn)return r===void 0&&(r=Gn,r=n()),r},set(n){Object.defineProperty(e,t,{value:n})},configurable:!0})}function M(e,t,n){Object.defineProperty(e,t,{value:n,writable:!0,enumerable:!0,configurable:!0})}function N(...e){let t={};for(let n of e)Object.assign(t,Object.getOwnPropertyDescriptors(n));return Object.defineProperties({},t)}function Kn(e){return JSON.stringify(e)}function qn(e){return e.toLowerCase().trim().replace(/[^\w\s-]/g,``).replace(/[\s_-]+/g,`-`).replace(/^-+|-+$/g,``)}var Jn=`captureStackTrace`in Error?Error.captureStackTrace:(...e)=>{};function P(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}var Yn=Vn(()=>{if(typeof navigator<`u`&&navigator?.userAgent?.includes(`Cloudflare`))return!1;try{return Function(``),!0}catch{return!1}});function F(e){if(P(e)===!1)return!1;let t=e.constructor;if(t===void 0||typeof t!=`function`)return!0;let n=t.prototype;return!(P(n)===!1||Object.prototype.hasOwnProperty.call(n,`isPrototypeOf`)===!1)}function Xn(e){return F(e)?{...e}:Array.isArray(e)?[...e]:e}var Zn=new Set([`string`,`number`,`symbol`]);function Qn(e){return e.replace(/[.*+?^${}()|[\]\\]/g,`\\$&`)}function I(e,t,n){let r=new e._zod.constr(t??e._zod.def);return(!t||n?.parent)&&(r._zod.parent=e),r}function L(e){let t=e;if(!t)return{};if(typeof t==`string`)return{error:()=>t};if(t?.message!==void 0){if(t?.error!==void 0)throw 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 $n(e){return Object.keys(e).filter(t=>e[t]._zod.optin===`optional`&&e[t]._zod.optout===`optional`)}var er={safeint:[-(2**53-1),2**53-1],int32:[-2147483648,2147483647],uint32:[0,4294967295],float32:[-34028234663852886e22,34028234663852886e22],float64:[-Number.MAX_VALUE,Number.MAX_VALUE]};function tr(e,t){let n=e._zod.def,r=n.checks;if(r&&r.length>0)throw Error(`.pick() cannot be used on object schemas containing refinements`);return I(e,N(e._zod.def,{get shape(){let e={};for(let r in t){if(!(r in n.shape))throw Error(`Unrecognized key: "${r}"`);t[r]&&(e[r]=n.shape[r])}return M(this,`shape`,e),e},checks:[]}))}function nr(e,t){let n=e._zod.def,r=n.checks;if(r&&r.length>0)throw Error(`.omit() cannot be used on object schemas containing refinements`);return I(e,N(e._zod.def,{get shape(){let r={...e._zod.def.shape};for(let e in t){if(!(e in n.shape))throw Error(`Unrecognized key: "${e}"`);t[e]&&delete r[e]}return M(this,`shape`,r),r},checks:[]}))}function rr(e,t){if(!F(t))throw Error(`Invalid input to extend: expected a plain object`);let n=e._zod.def.checks;if(n&&n.length>0){let n=e._zod.def.shape;for(let e in t)if(Object.getOwnPropertyDescriptor(n,e)!==void 0)throw Error("Cannot overwrite keys on object schemas containing refinements. Use `.safeExtend()` instead.")}return I(e,N(e._zod.def,{get shape(){let n={...e._zod.def.shape,...t};return M(this,`shape`,n),n}}))}function ir(e,t){if(!F(t))throw Error(`Invalid input to safeExtend: expected a plain object`);return I(e,N(e._zod.def,{get shape(){let n={...e._zod.def.shape,...t};return M(this,`shape`,n),n}}))}function ar(e,t){return I(e,N(e._zod.def,{get shape(){let n={...e._zod.def.shape,...t._zod.def.shape};return M(this,`shape`,n),n},get catchall(){return t._zod.def.catchall},checks:[]}))}function or(e,t,n){let r=t._zod.def.checks;if(r&&r.length>0)throw Error(`.partial() cannot be used on object schemas containing refinements`);return I(t,N(t._zod.def,{get shape(){let r=t._zod.def.shape,i={...r};if(n)for(let t in n){if(!(t in r))throw Error(`Unrecognized key: "${t}"`);n[t]&&(i[t]=e?new e({type:`optional`,innerType:r[t]}):r[t])}else for(let t in r)i[t]=e?new e({type:`optional`,innerType:r[t]}):r[t];return M(this,`shape`,i),i},checks:[]}))}function sr(e,t,n){return I(t,N(t._zod.def,{get shape(){let r=t._zod.def.shape,i={...r};if(n)for(let t in n){if(!(t in i))throw Error(`Unrecognized key: "${t}"`);n[t]&&(i[t]=new e({type:`nonoptional`,innerType:r[t]}))}else for(let t in r)i[t]=new e({type:`nonoptional`,innerType:r[t]});return M(this,`shape`,i),i}}))}function R(e,t=0){if(e.aborted===!0)return!0;for(let n=t;n<e.issues.length;n++)if(e.issues[n]?.continue!==!0)return!0;return!1}function cr(e,t){return t.map(t=>{var n;return(n=t).path??(n.path=[]),t.path.unshift(e),t})}function lr(e){return typeof e==`string`?e:e?.message}function z(e,t,n){let r={...e,path:e.path??[]};return e.message||(r.message=lr(e.inst?._zod.def?.error?.(e))??lr(t?.error?.(e))??lr(n.customError?.(e))??lr(n.localeError?.(e))??`Invalid input`),delete r.inst,delete r.continue,t?.reportInput||delete r.input,r}function ur(e){return Array.isArray(e)?`array`:typeof e==`string`?`string`:`unknown`}function B(...e){let[t,n,r]=e;return typeof t==`string`?{message:t,code:`custom`,input:n,inst:r}:{...t}}var dr=(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,Bn,2),Object.defineProperty(e,`toString`,{value:()=>e.message,enumerable:!1})},fr=O(`$ZodError`,dr),pr=O(`$ZodError`,dr,{Parent:Error});function mr(e,t=e=>e.message){let n={},r=[];for(let i of e.issues)i.path.length>0?(n[i.path[0]]=n[i.path[0]]||[],n[i.path[0]].push(t(i))):r.push(t(i));return{formErrors:r,fieldErrors:n}}function hr(e,t=e=>e.message){let n={_errors:[]},r=e=>{for(let i of e.issues)if(i.code===`invalid_union`&&i.errors.length)i.errors.map(e=>r({issues:e}));else if(i.code===`invalid_key`)r({issues:i.issues});else if(i.code===`invalid_element`)r({issues:i.issues});else if(i.path.length===0)n._errors.push(t(i));else{let e=n,r=0;for(;r<i.path.length;){let n=i.path[r];r===i.path.length-1?(e[n]=e[n]||{_errors:[]},e[n]._errors.push(t(i))):e[n]=e[n]||{_errors:[]},e=e[n],r++}}};return r(e),n}var gr=e=>(t,n,r,i)=>{let a=r?Object.assign(r,{async:!1}):{async:!1},o=t._zod.run({value:n,issues:[]},a);if(o instanceof Promise)throw new k;if(o.issues.length){let t=new(i?.Err??e)(o.issues.map(e=>z(e,a,A())));throw Jn(t,i?.callee),t}return o.value},_r=e=>async(t,n,r,i)=>{let a=r?Object.assign(r,{async:!0}):{async:!0},o=t._zod.run({value:n,issues:[]},a);if(o instanceof Promise&&(o=await o),o.issues.length){let t=new(i?.Err??e)(o.issues.map(e=>z(e,a,A())));throw Jn(t,i?.callee),t}return o.value},vr=e=>(t,n,r)=>{let i=r?{...r,async:!1}:{async:!1},a=t._zod.run({value:n,issues:[]},i);if(a instanceof Promise)throw new k;return a.issues.length?{success:!1,error:new(e??fr)(a.issues.map(e=>z(e,i,A())))}:{success:!0,data:a.value}},yr=vr(pr),br=e=>async(t,n,r)=>{let i=r?Object.assign(r,{async:!0}):{async:!0},a=t._zod.run({value:n,issues:[]},i);return a instanceof Promise&&(a=await a),a.issues.length?{success:!1,error:new e(a.issues.map(e=>z(e,i,A())))}:{success:!0,data:a.value}},xr=br(pr),Sr=e=>(t,n,r)=>{let i=r?Object.assign(r,{direction:`backward`}):{direction:`backward`};return gr(e)(t,n,i)},Cr=e=>(t,n,r)=>gr(e)(t,n,r),wr=e=>async(t,n,r)=>{let i=r?Object.assign(r,{direction:`backward`}):{direction:`backward`};return _r(e)(t,n,i)},Tr=e=>async(t,n,r)=>_r(e)(t,n,r),Er=e=>(t,n,r)=>{let i=r?Object.assign(r,{direction:`backward`}):{direction:`backward`};return vr(e)(t,n,i)},Dr=e=>(t,n,r)=>vr(e)(t,n,r),Or=e=>async(t,n,r)=>{let i=r?Object.assign(r,{direction:`backward`}):{direction:`backward`};return br(e)(t,n,i)},kr=e=>async(t,n,r)=>br(e)(t,n,r),Ar=/^[cC][^\s-]{8,}$/,jr=/^[0-9a-z]+$/,Mr=/^[0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{26}$/,Nr=/^[0-9a-vA-V]{20}$/,Pr=/^[A-Za-z0-9]{27}$/,Fr=/^[a-zA-Z0-9_-]{21}$/,Ir=/^P(?:(\d+W)|(?!.*W)(?=\d|T\d)(\d+Y)?(\d+M)?(\d+D)?(T(?=\d)(\d+H)?(\d+M)?(\d+([.,]\d+)?S)?)?)$/,Lr=/^([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})$/,Rr=e=>e?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)$/,zr=/^(?!\.)(?!.*\.\.)([A-Za-z0-9_'+\-\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\-]*\.)+[A-Za-z]{2,}$/,Br=`^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$`;function Vr(){return new RegExp(Br,`u`)}var Hr=/^(?:(?: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])$/,Ur=/^(([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}|:))$/,Wr=/^((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])$/,Gr=/^(([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])$/,Kr=/^$|^(?:[0-9a-zA-Z+/]{4})*(?:(?:[0-9a-zA-Z+/]{2}==)|(?:[0-9a-zA-Z+/]{3}=))?$/,qr=/^[A-Za-z0-9_-]*$/,Jr=/^\+[1-9]\d{6,14}$/,Yr=`(?:(?:\\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])))`,Xr=RegExp(`^${Yr}$`);function Zr(e){let 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 Qr(e){return RegExp(`^${Zr(e)}$`)}function $r(e){let t=Zr({precision:e.precision}),n=[`Z`];e.local&&n.push(``),e.offset&&n.push(`([+-](?:[01]\\d|2[0-3]):[0-5]\\d)`);let r=`${t}(?:${n.join(`|`)})`;return RegExp(`^${Yr}T(?:${r})$`)}var ei=e=>{let t=e?`[\\s\\S]{${e?.minimum??0},${e?.maximum??``}}`:`[\\s\\S]*`;return RegExp(`^${t}$`)},ti=/^-?\d+$/,ni=/^-?\d+(?:\.\d+)?$/,ri=/^[^A-Z]*$/,ii=/^[^a-z]*$/,V=O(`$ZodCheck`,(e,t)=>{var n;e._zod??={},e._zod.def=t,(n=e._zod).onattach??(n.onattach=[])}),ai={number:`number`,bigint:`bigint`,object:`date`},oi=O(`$ZodCheckLessThan`,(e,t)=>{V.init(e,t);let n=ai[typeof t.value];e._zod.onattach.push(e=>{let n=e._zod.bag,r=(t.inclusive?n.maximum:n.exclusiveMaximum)??1/0;t.value<r&&(t.inclusive?n.maximum=t.value:n.exclusiveMaximum=t.value)}),e._zod.check=r=>{(t.inclusive?r.value<=t.value:r.value<t.value)||r.issues.push({origin:n,code:`too_big`,maximum:typeof t.value==`object`?t.value.getTime():t.value,input:r.value,inclusive:t.inclusive,inst:e,continue:!t.abort})}}),si=O(`$ZodCheckGreaterThan`,(e,t)=>{V.init(e,t);let n=ai[typeof t.value];e._zod.onattach.push(e=>{let n=e._zod.bag,r=(t.inclusive?n.minimum:n.exclusiveMinimum)??-1/0;t.value>r&&(t.inclusive?n.minimum=t.value:n.exclusiveMinimum=t.value)}),e._zod.check=r=>{(t.inclusive?r.value>=t.value:r.value>t.value)||r.issues.push({origin:n,code:`too_small`,minimum:typeof t.value==`object`?t.value.getTime():t.value,input:r.value,inclusive:t.inclusive,inst:e,continue:!t.abort})}}),ci=O(`$ZodCheckMultipleOf`,(e,t)=>{V.init(e,t),e._zod.onattach.push(e=>{var n;(n=e._zod.bag).multipleOf??(n.multipleOf=t.value)}),e._zod.check=n=>{if(typeof n.value!=typeof t.value)throw Error(`Cannot mix number and bigint in multiple_of check.`);(typeof n.value==`bigint`?n.value%t.value===BigInt(0):Wn(n.value,t.value)===0)||n.issues.push({origin:typeof n.value,code:`not_multiple_of`,divisor:t.value,input:n.value,inst:e,continue:!t.abort})}}),li=O(`$ZodCheckNumberFormat`,(e,t)=>{V.init(e,t),t.format=t.format||`float64`;let n=t.format?.includes(`int`),r=n?`int`:`number`,[i,a]=er[t.format];e._zod.onattach.push(e=>{let r=e._zod.bag;r.format=t.format,r.minimum=i,r.maximum=a,n&&(r.pattern=ti)}),e._zod.check=o=>{let s=o.value;if(n){if(!Number.isInteger(s)){o.issues.push({expected:r,format:t.format,code:`invalid_type`,continue:!1,input:s,inst:e});return}if(!Number.isSafeInteger(s)){s>0?o.issues.push({input:s,code:`too_big`,maximum:2**53-1,note:`Integers must be within the safe integer range.`,inst:e,origin:r,inclusive:!0,continue:!t.abort}):o.issues.push({input:s,code:`too_small`,minimum:-(2**53-1),note:`Integers must be within the safe integer range.`,inst:e,origin:r,inclusive:!0,continue:!t.abort});return}}s<i&&o.issues.push({origin:`number`,input:s,code:`too_small`,minimum:i,inclusive:!0,inst:e,continue:!t.abort}),s>a&&o.issues.push({origin:`number`,input:s,code:`too_big`,maximum:a,inclusive:!0,inst:e,continue:!t.abort})}}),ui=O(`$ZodCheckMaxLength`,(e,t)=>{var n;V.init(e,t),(n=e._zod.def).when??(n.when=e=>{let t=e.value;return!Hn(t)&&t.length!==void 0}),e._zod.onattach.push(e=>{let n=e._zod.bag.maximum??1/0;t.maximum<n&&(e._zod.bag.maximum=t.maximum)}),e._zod.check=n=>{let r=n.value;if(r.length<=t.maximum)return;let i=ur(r);n.issues.push({origin:i,code:`too_big`,maximum:t.maximum,inclusive:!0,input:r,inst:e,continue:!t.abort})}}),di=O(`$ZodCheckMinLength`,(e,t)=>{var n;V.init(e,t),(n=e._zod.def).when??(n.when=e=>{let t=e.value;return!Hn(t)&&t.length!==void 0}),e._zod.onattach.push(e=>{let n=e._zod.bag.minimum??-1/0;t.minimum>n&&(e._zod.bag.minimum=t.minimum)}),e._zod.check=n=>{let r=n.value;if(r.length>=t.minimum)return;let i=ur(r);n.issues.push({origin:i,code:`too_small`,minimum:t.minimum,inclusive:!0,input:r,inst:e,continue:!t.abort})}}),fi=O(`$ZodCheckLengthEquals`,(e,t)=>{var n;V.init(e,t),(n=e._zod.def).when??(n.when=e=>{let t=e.value;return!Hn(t)&&t.length!==void 0}),e._zod.onattach.push(e=>{let n=e._zod.bag;n.minimum=t.length,n.maximum=t.length,n.length=t.length}),e._zod.check=n=>{let r=n.value,i=r.length;if(i===t.length)return;let a=ur(r),o=i>t.length;n.issues.push({origin:a,...o?{code:`too_big`,maximum:t.length}:{code:`too_small`,minimum:t.length},inclusive:!0,exact:!0,input:n.value,inst:e,continue:!t.abort})}}),pi=O(`$ZodCheckStringFormat`,(e,t)=>{var n,r;V.init(e,t),e._zod.onattach.push(e=>{let n=e._zod.bag;n.format=t.format,t.pattern&&(n.patterns??=new Set,n.patterns.add(t.pattern))}),t.pattern?(n=e._zod).check??(n.check=n=>{t.pattern.lastIndex=0,!t.pattern.test(n.value)&&n.issues.push({origin:`string`,code:`invalid_format`,format:t.format,input:n.value,...t.pattern?{pattern:t.pattern.toString()}:{},inst:e,continue:!t.abort})}):(r=e._zod).check??(r.check=()=>{})}),mi=O(`$ZodCheckRegex`,(e,t)=>{pi.init(e,t),e._zod.check=n=>{t.pattern.lastIndex=0,!t.pattern.test(n.value)&&n.issues.push({origin:`string`,code:`invalid_format`,format:`regex`,input:n.value,pattern:t.pattern.toString(),inst:e,continue:!t.abort})}}),hi=O(`$ZodCheckLowerCase`,(e,t)=>{t.pattern??=ri,pi.init(e,t)}),gi=O(`$ZodCheckUpperCase`,(e,t)=>{t.pattern??=ii,pi.init(e,t)}),_i=O(`$ZodCheckIncludes`,(e,t)=>{V.init(e,t);let n=Qn(t.includes),r=new RegExp(typeof t.position==`number`?`^.{${t.position}}${n}`:n);t.pattern=r,e._zod.onattach.push(e=>{let t=e._zod.bag;t.patterns??=new Set,t.patterns.add(r)}),e._zod.check=n=>{n.value.includes(t.includes,t.position)||n.issues.push({origin:`string`,code:`invalid_format`,format:`includes`,includes:t.includes,input:n.value,inst:e,continue:!t.abort})}}),vi=O(`$ZodCheckStartsWith`,(e,t)=>{V.init(e,t);let n=RegExp(`^${Qn(t.prefix)}.*`);t.pattern??=n,e._zod.onattach.push(e=>{let t=e._zod.bag;t.patterns??=new Set,t.patterns.add(n)}),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})}}),yi=O(`$ZodCheckEndsWith`,(e,t)=>{V.init(e,t);let n=RegExp(`.*${Qn(t.suffix)}$`);t.pattern??=n,e._zod.onattach.push(e=>{let t=e._zod.bag;t.patterns??=new Set,t.patterns.add(n)}),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})}}),bi=O(`$ZodCheckOverwrite`,(e,t)=>{V.init(e,t),e._zod.check=e=>{e.value=t.tx(e.value)}}),xi=class{constructor(e=[]){this.content=[],this.indent=0,this&&(this.args=e)}indented(e){this.indent+=1,e(this),--this.indent}write(e){if(typeof e==`function`){e(this,{execution:`sync`}),e(this,{execution:`async`});return}let t=e.split(`
48
+ `);i=f.pop()??``;for(let e of f)if(nt(e,t))return}if(i.trim()&&nt(i,t))return}catch(e){if(e instanceof DOMException&&e.name===`AbortError`)return;t.onError?.(e instanceof Error?e:Error(String(e)))}finally{s||n.releaseLock()}t.onDone?.()}var it=3,at=(e,t)=>{let n=e.replace(/\s+/g,` `).trim().replace(/^[,.;:!?•-]+|[,.;:!?•-]+$/g,``);if(!n)return``;let r=t?.stripLeadingStopWords?n.replace(/^(?:daha|için)\s+/i,``).trim():n;return r?r.split(/\s+/).slice(0,3).join(` `).trim():``},ot=(e,t)=>e?e.split(/[•,;:/()]|(?:\sve\s)|(?:\sand\s)|(?:\sile\s)|(?:\sfor\s)|(?:\swith\s)/i).map(e=>at(e,t)).filter(Boolean):[];function st(e){let t=(e.display_keywords??[]).flatMap(e=>ot(e,{stripLeadingStopWords:!0})),n=t.filter((e,n)=>t.indexOf(e)===n);if(n.length>0)return n.slice(0,it);let r=[...ot(e.chosen_attribute,{stripLeadingStopWords:!0}),...ot(e.short_name)];return r.filter((e,t)=>r.indexOf(e)===t).slice(0,it)}function ct(e){return st(e).join(` • `)}function lt(e){if(typeof e.type!=`string`)return null;if(ut(e))return e;let t=e;switch(t.type){case`outputText`:return dt(t);case`suggestedActions`:return ft(t);case`productList`:return pt(t);case`productDetails`:return mt(t);case`productDetailsSimilars`:return ht(t);case`comparisonTable`:return gt(t);case`context`:return bt(t);case`chatStreamEnd`:return xt();case`loading`:return St(t);case`panelLoading`:return Ct(t);case`similarLoading`:return wt(t);case`redirect`:return Tt(t);case`error`:return Et(t);case`dummy`:return Dt(t);case`launcherAction`:return Ot(t);case`text`:return kt(t);case`productItem`:return At(t);case`text_image`:return jt(t);case`quick_qna`:return Mt(t);case`reviewHighlights`:return Nt(t);case`aiProductSuggestions`:return It(t);case`aiProductGroupings`:return Lt(t);case`aiSuggestedSearches`:return Rt(t);case`prosAndCons`:return Pt(t);case`getGroundingReview`:return zt(t);case`voice`:return Vt(t);case`visitorDataResponse`:return Ft(t);case`productListPreview`:return Bt();case`groupList`:return Ht(t);case`formGetInfo`:case`formTestDrive`:case`formServiceRequest`:case`launchFormPage`:return Ut(t);case`launcherContent`:return Gt(t);case`handoff`:return Wt(t);default:return null}}function ut(e){let 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`:{let t=e.widget;if(t!==`chat`&&t!==`qna`&&t!==`simrel`)return!1;let n=w(e.spec);return n?typeof n.root==`string`&&w(n.elements)!==null:!1}case`action`:{let t=w(e.action);return t!==null&&typeof t.kind==`string`}case`error`:return typeof e.code==`string`&&typeof e.message==`string`;case`done`:return!0;default:return!1}}function dt(e){let t=T(e.payload.text,e.payload.plain_text)??``,n=T(e.payload.plain_text,e.payload.text)??t;if(e.payload.is_error)return{type:`error`,code:`BACKEND_ERROR`,message:n||`Backend returned an error`};let r={type:`text_chunk`,content:t,final:!0},i=e.payload.product_mentions;Array.isArray(i)&&i.length>0&&(r.productMentions=i.filter(e=>typeof e==`object`&&!!e&&typeof e.sku==`string`&&typeof e.short_name==`string`));let a=e.payload.sku_to_product_item;a&&typeof a==`object`&&!Array.isArray(a)&&(r.skuToProductItem=a);let o=e.payload.conversation_mode;return typeof o==`string`&&o&&(r.conversationMode=o),r}function ft(e){return Kt((e.payload.actions??[]).map(e=>{let t=T(e.title)??``,n=C(e.requestDetails,t),r=n?{label:t,action:n}:null;return r?(typeof e.icon==`string`&&(r.icon=e.icon),typeof e.image==`string`&&(r.image=e.image),r):null}).filter(en),`chat`)}function pt(e){let t=qt(e.payload.product_list??[],`chat`);t.panelHint=`panel`;let n=t.spec.elements[t.spec.root];return n&&(typeof e.payload.offset==`number`&&(n.props={...n.props,offset:e.payload.offset}),typeof e.payload.end_of_list==`boolean`&&(n.props={...n.props,endOfList:e.payload.end_of_list}),typeof e.payload.title==`string`&&(n.props={...n.props,panelTitle:e.payload.title})),t}function mt(e){let t=e.payload.productDetails;if(!t)return Yt(`chat`);let n=D(t);return{type:`ui_spec`,widget:`chat`,spec:{root:`root`,elements:{root:{type:`ProductDetailsPanel`,props:{product:{...t,...n}}}}},panelHint:`panel`}}function ht(e){let t=qt(e.payload.similarProducts??[],`chat`),n=t.spec.elements[t.spec.root];return n&&(n.props={...n.props,similarsAppend:!0}),{...t,panelHint:`panel`}}function gt(e){let t=e.payload.multiple_product_details??[],n=e.payload,r={key_differences:n.key_differences,recommended_choice:n.recommended_choice,recommended_choice_sku:n.recommended_choice_sku,special_considerations:n.special_considerations,criteria_view:n.criteria_view,criteria_view_short:n.criteria_view_short,compared_field_names:n.compared_field_names,winner_product:n.winner_product,winner_hits:n.winner_hits,...e.payload.product_comparison_framework??{}},i=e.payload.table,a=e.payload.features_list,o=[];for(let e of t){let t=D(e);o.push(t)}let s=_t(i,o,r,a),c;r?.recommended_choice_sku?c=r.recommended_choice_sku:r?.winner_product&&r.winner_product.length>0&&(c=r.winner_product[0]?.product_detail?.sku??r.winner_product[0]?.sku);let l=c?o.find(e=>e.sku===c)??o[0]:o[0],u=[];if(Array.isArray(r?.key_differences))for(let e of r.key_differences)typeof e==`string`&&u.push(e);let d=$t(r?.special_considerations),f=r?.recommended_choice,p=r?.winner_hits,m={};for(let e of o){let t=e.sku;t&&(m[t]={title:e.name??t,type:`launchSingleProduct`,payload:{sku:t}})}let h={products:o,attributes:s,highlights:u,productActions:m};return l&&(h.recommended=l),d.length>0&&(h.specialCases=d),f&&(h.recommendedText=f),p&&(h.winnerHits=p),typeof r?.key_differences==`string`&&(h.keyDifferencesHtml=r.key_differences),r?.special_considerations&&(h.specialConsiderations=r.special_considerations),{type:`ui_spec`,widget:`chat`,spec:{root:`root`,elements:{root:{type:`ComparisonTable`,props:h}}},panelHint:`panel`}}function _t(e,t,n,r){if(!e)return[];let i=Object.entries(e);if(i.length===0)return[];let a=i[0]?.[1];if(Array.isArray(a)){let t=n.criteria_view??n.criteria_view_short??{},r=n.compared_field_names??Object.keys(e),i=[];for(let n of r){let r=e[n];if(!r||!Array.isArray(r))continue;let a=t[n]??n;i.push({label:a,values:r.map(e=>typeof e==`string`?e:String(e??``))})}return i}let o=e,s=t.map(e=>String(e.sku??``)).filter(e=>e.length>0),c=n.criteria_view??n.criteria_view_short??{},l=(r&&r.length>0?r:n.compared_field_names&&n.compared_field_names.length>0?n.compared_field_names:vt(o)).filter(e=>e!==`name`&&e!==`name_short`&&!e.endsWith(`_short`)),u=[];for(let e of l){let t=s.map(t=>{let n=o[t];if(!n||typeof n!=`object`)return``;let r=n[`${e}_short`],i=n[e];return yt(r??i)});if(t.every(e=>e.length===0))continue;let n=c[e]??e;u.push({label:n,values:t})}return u}function vt(e){let t=[],n=new Set;for(let r of Object.values(e))if(!(!r||typeof r!=`object`))for(let e of Object.keys(r))n.has(e)||(n.add(e),t.push(e));return t}function yt(e){return typeof e==`string`?e:typeof e==`number`||typeof e==`boolean`?String(e):``}function bt(e){return{type:`metadata`,sessionId:``,model:``,meta:{panel:e.payload.panel,messages:e.payload.messages,message_id:e.payload.message_id}}}function xt(){return{type:`done`}}function St(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 Ct(e){return{type:`metadata`,sessionId:``,model:``,meta:{loading:!0,panelLoading:!0,panelPendingType:e.payload?.pending_type,loadingText:e.payload?.text}}}function wt(e){return{type:`metadata`,sessionId:``,model:``,meta:{loading:!0,similarPanelLoading:!0,panelPendingType:e.payload?.pending_type,loadingText:e.payload?.text}}}function Tt(e){let t=T(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:T(e.payload.to)}}}function Et(e){return{type:`error`,code:`BACKEND_ERROR`,message:T(e.payload?.text,e.payload?.message,e.payload?.error)??`Backend returned an error`}}function Dt(e){return{type:`metadata`,sessionId:``,model:``,meta:{noop:!0}}}function Ot(e){let t=e.payload??{};if(Array.isArray(t.action_list)){let e={action_list:t.action_list},n=typeof t.type==`string`?t.type:void 0,r=typeof t.theme==`string`?t.theme:void 0;return n!==void 0&&(e.type=n),r!==void 0&&(e.theme=r),Mt({type:`quick_qna`,payload:e})}let n=w(t.action);if(n){let e={action:n},r=typeof t.text==`string`?t.text:void 0,i=typeof t.image_url==`string`?t.image_url:void 0,a=typeof t.theme==`string`?t.theme:void 0;return r!==void 0&&(e.text=r),i!==void 0&&(e.image_url=i),a!==void 0&&(e.theme=a),jt({type:`text_image`,payload:e})}let r=typeof t.text==`string`?t.text:``;if(r){let e={text:r},n=typeof t.type==`string`?t.type:void 0,i=typeof t.theme==`string`?t.theme:void 0,a=w(t.payload)??void 0;return n!==void 0&&(e.type=n),a!==void 0&&(e.payload=a),i!==void 0&&(e.theme=i),kt({type:`text`,payload:e})}return{type:`metadata`,sessionId:``,model:``,meta:{launcherAction:t}}}function kt(e){let t={text:T(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 At(e){return Jt(e.payload,`qna`)}function jt(e){let t=T(e.payload.text)??``,n=C(e.payload.action,t);if(n){let r={label:t||n.title,action:n};return typeof e.payload.image_url==`string`&&(r.image=e.payload.image_url),typeof e.payload.theme==`string`&&(r.theme=e.payload.theme),{type:`ui_spec`,widget:`qna`,spec:{root:`root`,elements:{root:{type:`ActionButton`,props:r}}}}}let r={text:t};return typeof e.payload.theme==`string`&&(r.theme=e.payload.theme),kt({type:`text`,payload:r})}function Mt(e){return Kt((e.payload.action_list??[]).map(e=>{let t=T(e.title)??``,n=C(e.requestDetails,t),r=n?{label:t,action:n}:null;return r?(typeof e.icon==`string`&&(r.icon=e.icon),typeof e.image==`string`&&(r.image=e.image),r):null}).filter(en),`qna`)}function Nt(e){let t={reviews:(e.payload.reviews??[]).map(e=>{let t={};return typeof e.review_class==`string`&&(t.review_class=e.review_class),typeof e.review_text==`string`&&(t.review_text=e.review_text),(typeof e.review_rating==`string`||typeof e.review_rating==`number`)&&(t.review_rating=e.review_rating),typeof e.review_tag==`string`&&(t.review_tag=e.review_tag),t})};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 Pt(e){let 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 Ft(e){return{type:`metadata`,sessionId:``,model:``,meta:{visitorDataResponse:e.payload}}}function It(e){let t=e.payload.product_suggestions??[],n=[];for(let e=0;e<t.length;e++){let r=t[e];if(!r)continue;let i=Xt(r);if(!i)continue;let a={product:i},o=C(r.requestDetails,i.name);o&&(a.action=o),typeof r.role==`string`&&(a.role=r.role),typeof r.reason==`string`&&(a.reason=r.reason),typeof r.review_highlight==`string`&&(a.reviewHighlight=r.review_highlight),Array.isArray(r.labels)&&(a.labels=r.labels),typeof r.expert_quality_score==`number`&&(a.expertQualityScore=r.expert_quality_score),n.push(a)}return n.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:n}}}}}}function Lt(e){let t=e.payload.product_groupings??[],n=[];for(let e=0;e<t.length;e++){let r=t[e];if(!r)continue;let i=T(r.name)??``,a=r.sku&&r.sku.length>0?{type:`findSimilar`,payload:{sku:r.sku}}:void 0,o=C(r.requestDetails??a,i);if(!o)continue;let s={name:i,action:o};if(Array.isArray(r.labels)){let e=r.labels.filter(e=>typeof e==`string`);e.length>0&&(s.labels=e)}typeof r.image==`string`&&(s.image=r.image),n.push(s)}return 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 Rt(e){let t=e.payload.suggested_searches??[],n=[];for(let e=0;e<t.length;e++){let r=t[e];if(!r)continue;let i=T(r.short_name,r.chosen_attribute,r.detailed_user_message)??`Search ${e+1}`,a={},o=T(r.detailed_user_message);o&&(a.text=o);let s=w(w(r.requestDetails)?.payload),c=s?.group_skus;r.group_skus&&Array.isArray(r.group_skus)?a.group_skus=r.group_skus:Array.isArray(c)&&(a.group_skus=c.filter(e=>typeof e==`string`));let l=T(r.sku,r.representative_product_sku,s?.sku);l&&(a.sku=l),a.is_suggested_text=1;let u={type:`inputText`,payload:a},d=C(r.requestDetails,i),f=d?.type===`findSimilar`&&typeof a.text==`string`?C(u,i):d??C(u,i);if(!f)continue;let p={shortName:i,action:f},m=T(r.detailed_user_message);m&&m!==i&&(p.detailedMessage=m);let h=ct(r);h&&h!==i&&h!==(m??``)&&(p.whyDifferent=h),typeof r.image==`string`&&(p.image=r.image),n.push(p)}return n.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:n}}}}}}function zt(e){let t=C(e.payload.requestDetails,T(e.payload.review_count,e.payload.text,e.payload.title)??`Show product reviews`);if(!t)return{type:`metadata`,sessionId:``,model:``,meta:{groundingReview:e.payload}};let n={action:t};return e.payload.title&&(n.title=e.payload.title),e.payload.text&&(n.text=e.payload.text),e.payload.review_count&&(n.reviewCount=e.payload.review_count),{type:`ui_spec`,widget:`chat`,spec:{root:`root`,elements:{root:{type:`GroundingReviewCard`,props:n}}}}}function Bt(){return{type:`metadata`,sessionId:``,model:``,meta:{analyzeAnimation:!0}}}function Vt(e){return{type:`metadata`,sessionId:``,model:``,meta:{voice:e.payload}}}function Ht(e){let t=e.payload.group_list??[],n=[];for(let e of t){let t=e.group_name??``,r=(e.product_list??[]).map(D);n.push({groupName:t,products:r})}let r=[];for(let t of e.payload.filter_tags??[]){let e=t.title??``;if(!e)continue;let n=C(t.requestDetails,e),i={title:e};n&&(i.action=n),r.push(i)}return{type:`ui_spec`,widget:`chat`,spec:{root:`root`,elements:{root:{type:`CategoriesContainer`,props:{groups:n,filterTags:r}}}},panelHint:`panel`}}function Ut(e){return{type:`metadata`,sessionId:``,model:``,meta:{formType:e.type,formPayload:e.payload??{}}}}function Wt(e){let 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 Gt(e){return{type:`metadata`,sessionId:``,model:``,meta:{launcherContent:e.payload??{}}}}function Kt(e,t){let n={},r=[];for(let t=0;t<e.length;t++){let i=e[t];if(!i)continue;let a=`action-${t}`;r.push(a);let o={label:i.label,action:i.action};i.icon!==void 0&&(o.icon=i.icon),i.image!==void 0&&(o.image=i.image),i.description!==void 0&&(o.description=i.description),n[a]={type:`ActionButton`,props:o}}return n.root={type:`ActionButtons`,props:{buttons:e.map(e=>{let t={label:e.label,action:e.action};return e.image!==void 0&&(t.image=e.image),e.description!==void 0&&(t.description=e.description),e.icon!==void 0&&(t.icon=e.icon),t})},children:r},{type:`ui_spec`,widget:t,spec:{root:`root`,elements:n}}}function qt(e,t){let n={},r=[];for(let t=0;t<e.length;t++){let i=e[t];if(!i)continue;let a=D(i),o=`product-${t}`;r.push(o);let s={product:a,index:t};a.sku&&(s.action={title:a.name,type:`launchSingleProduct`,payload:{sku:a.sku}}),n[o]={type:`ProductCard`,props:s}}return n.root={type:`ProductGrid`,props:{layout:`grid`},children:r},{type:`ui_spec`,widget:t,spec:{root:`root`,elements:n}}}function Jt(e,t){return{type:`ui_spec`,widget:t,spec:{root:`root`,elements:{root:{type:`ProductCard`,props:{product:D(e),index:0}}}}}}function Yt(e){return{type:`ui_spec`,widget:e,spec:{root:`root`,elements:{root:{type:`ActionButtons`,props:{buttons:[]},children:[]}}}}}function Xt(e){let t=T(e.sku),n=T(e.short_name);return Zt(w(e.product_item)??e,t,n)}function Zt(e,t,n){let r=T(e.sku,t),i=T(e.name,n);if(!r||!i)return null;let a={sku:r,name:i},o=T(e.brand);o&&(a.brand=o);let s=T(e.url);s&&(a.url=s);let c=Qt(e.images);if(c.length>0)a.images=c;else{let t=T(e.image,e.image_url,e.imageUrl);t&&(a.images=[t])}let l=E(e.price_discounted);l!==void 0&&(a.price_discounted=l);let u=E(e.price);u!==void 0&&(a.price=u);let d=E(e.rating);d!==void 0&&(a.rating=d);let f=E(e.review_count)??E(e.reviewCount);f!==void 0&&(a.review_count=f);let p=T(e.cart_code,e.cartCode);return p&&(a.cart_code=p),typeof e.in_stock==`boolean`&&(a.in_stock=e.in_stock),typeof e.inStock==`boolean`&&(a.in_stock=e.inStock),D(a)}function C(e,t){let n=w(e);if(!n)return null;let r=n.type;if(typeof r!=`string`||r.length===0)return null;let i={title:t||r,type:r};return n.payload!==void 0&&(i.payload=n.payload),i}function w(e){return!e||typeof e!=`object`||Array.isArray(e)?null:e}function T(...e){for(let t of e)if(typeof t==`string`){let e=t.trim();if(e.length>0)return e}}function Qt(e){return Array.isArray(e)?e.filter(e=>typeof e==`string`&&e.length>0):[]}function $t(e){if(typeof e==`string`){let t=e.trim();return t?[t]:[]}return Array.isArray(e)?e.filter(e=>typeof e==`string`).map(e=>e.trim()).filter(e=>e.length>0):[]}function E(e){if(typeof e==`number`&&Number.isFinite(e))return e;if(typeof e==`string`){let t;t=e.includes(`.`)&&e.includes(`,`)?e.replace(/\./g,``).replace(`,`,`.`):e.replace(`,`,`.`);let n=Number(t);if(Number.isFinite(n))return n}}function en(e){return e!=null}var tn=new Set([`sku`,`name`,`brand`,`images`,`price`,`price_discounted`,`price_currency`,`discount_reason`,`url`,`rating`,`review_count`,`cart_code`,`in_stock`,`category_ids`,`category_names`,`variants`,`facet_hits`,`promotions`]);function D(e){let t=e.price_discounted!=null&&e.price_discounted>0,n=t?e.price_discounted:e.price,r=t&&e.price!=null?e.price:void 0,i;r!=null&&n!=null&&r>0&&(i=Math.round((r-n)/r*100));let a=T(e.brand),o=T(e.name)??e.sku,s=a&&!o.toLowerCase().startsWith(a.toLowerCase())?`${a} ${o}`:o,c={sku:e.sku,name:s,url:T(e.url)??``},l=e.images?.[0];l&&(c.imageUrl=l),e.images&&e.images.length>1&&(c.images=e.images),n!=null&&(c.price=String(n)),r!=null&&(c.originalPrice=String(r)),i!==void 0&&(c.discountPercent=i),a!==void 0&&(c.brand=a),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);let u=e,d={},f=!1;for(let e of Object.keys(u))tn.has(e)||(d[e]=u[e],f=!0);return f&&(c.extras=d),c}function nn(e){return e.results.map(D)}function rn(e){return e.product_groupings.map(e=>{let t={name:e.name,products:(e.group_products??[]).map(D)};return e.highlight!==void 0&&(t.highlight=e.highlight),t})}function an(e){let t=[];for(let n of Object.values(e))if(n.type===`ProductCard`&&n.props){let e=n.props.product??n.props;typeof e.sku==`string`&&typeof e.name==`string`&&t.push(e)}return t}function on(e){let t=e.headers.get(`Content-Type`)??``;return t.includes(`application/x-ndjson`)||t.includes(`text/event-stream`)}async function sn(e,t){let n=[],r={onEvent:e=>{let t=lt(e);!t||t.type!==`ui_spec`||n.push(...an(t.spec.elements))}};return t!==void 0&&(r.signal=t),await rt(e,r),n}async function cn(e,t,n){let r=$e(`similar_products`,t),i={method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify(e)};n!==void 0&&(i.signal=n);let a=await fetch(r,i);if(!a.ok)throw Error(`HTTP ${a.status}: ${a.statusText}`);if(on(a))return sn(a,n);let o=await a.text();if(!o)throw Error(`Empty response body from similar_products endpoint`);try{return nn(JSON.parse(o))}catch{throw Error(`Invalid JSON from similar_products endpoint`)}}async function ln(e,t){let n=[],r=null,i={onEvent:e=>{let t=lt(e);if(t){if(t.type===`metadata`&&t.meta){let e=t.meta.group_name;if(typeof e==`string`){r={name:e,products:[]};let i=t.meta.highlight;typeof i==`string`&&(r.highlight=i),n.push(r)}}t.type===`ui_spec`&&r&&r.products.push(...an(t.spec.elements))}}};return t!==void 0&&(i.signal=t),await rt(e,i),n}async function un(e,t,n){let r=$e(`product_groupings`,t),i={method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify(e)};n!==void 0&&(i.signal=n);let a=await fetch(r,i);if(!a.ok)throw Error(`HTTP ${a.status}: ${a.statusText}`);if(on(a))return ln(a,n);let o=await a.text();if(!o)return[];try{return rn(JSON.parse(o))}catch{throw Error(`Invalid JSON from product_groupings endpoint`)}}var dn={currencyCode:`TRY`,currencySymbol:`TL`,currencyPosition:`suffix`,thousandsSeparator:`.`,decimalSeparator:`,`,alwaysShowDecimals:!1};function fn(e,t){let n=Number(e);if(!Number.isFinite(n)||n<0)return e;let r={...dn,...t},i=Math.abs(n%1)<2**-52,a=r.alwaysShowDecimals||!i?n.toFixed(2):n.toFixed(0),o=a.indexOf(`.`),s=o===-1?a:a.slice(0,o),c=o===-1?void 0:a.slice(o+1),l=s.replace(/\B(?=(\d{3})+(?!\d))/g,r.thousandsSeparator),u;return u=c===void 0?l:`${l}${r.decimalSeparator}${c}`,r.currencySymbol?r.currencyPosition===`prefix`?`${r.currencySymbol}${u}`:`${u} ${r.currencySymbol}`:u}function pn(e){return Number.isFinite(e)?Math.max(0,Math.min(5,e)):0}function mn(e){return Number.isFinite(e)?Math.max(0,Math.min(100,Math.round(e))):0}function hn(e){let t=pn(e),n=Math.floor(t),r=t-n>=.5,i=5-n-!!r,a=document.createElement(`span`);if(a.className=`gengage-star-rating`,a.setAttribute(`role`,`img`),a.setAttribute(`aria-label`,`${t.toFixed(1)} out of 5 stars`),n>0&&a.appendChild(document.createTextNode(`★`.repeat(n))),r){let e=document.createElement(`span`);e.className=`gengage-star-half`,e.textContent=`☆`;let t=document.createElement(`span`);t.textContent=`★`,e.appendChild(t),a.appendChild(e)}return i>0&&a.appendChild(document.createTextNode(`☆`.repeat(i))),a}function gn(e){e.addEventListener(`error`,()=>{e.style.display=`none`},{once:!0})}function _n(e){let{product:t,index:n,discountType:r,onClick:i,onAddToCart:a,renderCard:o}=e,s=e.i18n,c=e.pricing;if(e.renderCardElement){let r=e.renderCardElement(t,n);if(r)return r}if(o){let e=document.createElement(`div`);return e.className=`gengage-simrel-card gengage-simrel-card--custom gds-card gds-product-card gds-card-interactive`,e.dataset.gengagePart=`simrel-product-card`,e.innerHTML=oe(o(t,n)),e.addEventListener(`click`,e=>{e.target.closest(`.gengage-simrel-atc`)||e.target.closest(`.gengage-chat-product-card-atc`)||i(t)}),e}let l=document.createElement(`article`);l.className=`gengage-simrel-card gengage-chat-product-card gds-card gds-product-card gds-card-interactive`,l.dataset.gengagePart=`simrel-product-card`,t.inStock===!1&&l.classList.add(`gengage-simrel-card--out-of-stock`),l.setAttribute(`role`,`listitem`),l.dataset.sku=t.sku;let u=document.createElement(`div`);if(u.className=`gengage-simrel-card-image gengage-chat-product-card-img-wrapper`,u.dataset.gengagePart=`simrel-product-card-image`,t.imageUrl&&ae(t.imageUrl)){let e=document.createElement(`img`);e.className=`gengage-chat-product-card-img`,e.src=t.imageUrl,e.alt=t.name,e.loading=`lazy`,gn(e),u.appendChild(e)}if(r===`badge`&&t.discountPercent&&t.discountPercent>0){let e=document.createElement(`span`);e.className=`gengage-simrel-badge gengage-chat-product-card-discount-badge`,e.textContent=`%${mn(t.discountPercent)}`,u.appendChild(e)}l.appendChild(u);let 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){let e=document.createElement(`div`);e.className=`gengage-simrel-card-brand gengage-chat-product-card-brand`,e.textContent=t.brand,d.appendChild(e)}let 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){let e=document.createElement(`div`);if(e.className=`gengage-simrel-card-rating gengage-chat-product-card-rating`,e.appendChild(hn(t.rating)),t.reviewCount!=null){let n=document.createElement(`span`);n.className=`gengage-simrel-card-review-count gengage-chat-product-card-review-count`,n.textContent=` (${t.reviewCount})`,e.appendChild(n)}d.appendChild(e)}let p=document.createElement(`div`);if(p.className=`gengage-simrel-card-price gengage-chat-product-card-price`,t.originalPrice&&t.originalPrice!==t.price&&(r===`strike-through`||!r)){let e=document.createElement(`span`);e.className=`gengage-simrel-card-price-original gengage-chat-product-card-original-price`,e.textContent=fn(t.originalPrice,c),p.appendChild(e)}if(t.price&&parseFloat(t.price)>0){let e=document.createElement(`span`);e.className=`gengage-simrel-card-price-current gengage-chat-product-card-price-current`,e.textContent=fn(t.price,c),p.appendChild(e)}d.appendChild(p),l.appendChild(d);let m=document.createElement(`button`);if(m.className=`gengage-simrel-card-cta gengage-chat-product-card-cta gds-btn gds-btn-secondary`,m.type=`button`,m.dataset.gengagePart=`simrel-product-card-cta`,m.textContent=s?.ctaLabel??`View`,m.addEventListener(`click`,e=>{e.preventDefault(),e.stopPropagation(),i(t)}),l.appendChild(m),t.inStock===!1){let e=document.createElement(`div`);e.className=`gengage-simrel-card-oos`,e.textContent=s?.outOfStockLabel??`Out of Stock`,l.appendChild(e)}else if(t.cartCode){let e=document.createElement(`button`);e.className=`gengage-simrel-atc gengage-simrel-atc-button gds-btn gds-btn-secondary`,e.type=`button`,e.textContent=s?.addToCartButton??`Add to Cart`,e.addEventListener(`click`,e=>{e.preventDefault(),e.stopPropagation(),a({sku:t.sku,quantity:1,cartCode:t.cartCode})}),l.appendChild(e)}return l.addEventListener(`click`,e=>{e.target.closest(`.gengage-simrel-atc`)||e.target.closest(`.gengage-chat-product-card-atc`)||e.target.closest(`.gengage-chat-product-card-cta`)||i(t)}),l}function vn(e){let 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 n=0;n<e.products.length;n++){let r={product:e.products[n],index:n,onClick:e.onClick,onAddToCart:e.onAddToCart};e.i18n!==void 0&&(r.i18n=e.i18n),e.discountType!==void 0&&(r.discountType=e.discountType),e.renderCard!==void 0&&(r.renderCard=e.renderCard),e.renderCardElement!==void 0&&(r.renderCardElement=e.renderCardElement);let i=_n(r);t.appendChild(i)}return e.products.length===0&&(t.style.display=`none`,t.dataset.empty=`true`),t}var yn=0;function bn(e){let t=yn++,n=document.createElement(`div`);if(n.className=`gengage-simrel-groups`,n.dataset.gengagePart=`simrel-groups`,e.groups.length===0)return n.style.display=`none`,n.dataset.empty=`true`,n;let r=document.createElement(`div`);r.className=`gengage-simrel-tabs gds-toolbar`,r.dataset.gengagePart=`simrel-tab-bar`,r.setAttribute(`role`,`tablist`);let i=[],a=[],o=t=>{let n={products:t.products,onClick:e.onClick,onAddToCart:e.onAddToCart};return 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),e.columns!==void 0&&(n.columns=e.columns),n},s=t=>{for(let e=0;e<i.length;e++){let n=e===t;i[e].classList.toggle(`gengage-simrel-tab--active`,n),i[e].setAttribute(`aria-selected`,String(n)),i[e].tabIndex=n?0:-1}let n=e.groups[t],r=a[t];r.innerHTML=``;let s=vn(o(n));r.appendChild(s);for(let e=0;e<a.length;e++){let n=e===t;a[e].style.display=n?``:`none`,a[e].tabIndex=n?0:-1}};for(let n=0;n<e.groups.length;n++){let o=e.groups[n],c=`gengage-simrel-tab-${t}-${n}`,l=`gengage-simrel-panel-${t}-${n}`,u=document.createElement(`button`);u.className=`gengage-simrel-tab gds-tab`,u.type=`button`,u.dataset.gengagePart=`simrel-tab`,u.id=c,u.textContent=o.name,u.setAttribute(`role`,`tab`),u.setAttribute(`aria-controls`,l),u.setAttribute(`aria-selected`,String(n===0)),u.tabIndex=n===0?0:-1,n===0&&u.classList.add(`gengage-simrel-tab--active`),u.addEventListener(`click`,()=>s(n)),u.addEventListener(`keydown`,t=>{let r=-1;t.key===`ArrowRight`||t.key===`ArrowDown`?r=(n+1)%e.groups.length:t.key===`ArrowLeft`||t.key===`ArrowUp`?r=(n-1+e.groups.length)%e.groups.length:t.key===`Home`?r=0:t.key===`End`&&(r=e.groups.length-1),r>=0&&(t.preventDefault(),s(r),i[r].focus())}),i.push(u),r.appendChild(u);let d=document.createElement(`div`);d.className=`gengage-simrel-tab-panel`,d.dataset.gengagePart=`simrel-tab-panel`,d.id=l,d.setAttribute(`role`,`tabpanel`),d.setAttribute(`aria-labelledby`,c),d.tabIndex=n===0?0:-1,n!==0&&(d.style.display=`none`),a.push(d)}let c=document.createElement(`button`);c.type=`button`,c.className=`gengage-simrel-tabs-arrow gengage-simrel-tabs-arrow--left`,c.setAttribute(`aria-label`,e.i18n?.scrollTabsLeft??`Scroll tabs left`),c.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>`;let 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>`,c.addEventListener(`click`,()=>{r.scrollBy({left:-200,behavior:`smooth`})}),l.addEventListener(`click`,()=>{r.scrollBy({left:200,behavior:`smooth`})});let u=()=>{let e=r.scrollLeft<=4,t=r.scrollLeft+r.clientWidth>=r.scrollWidth-4;c.style.display=e?`none`:``,l.style.display=t?`none`:``,r.classList.toggle(`gengage-simrel-tabs--peek-right`,!t),r.classList.toggle(`gengage-simrel-tabs--peek-left`,!e)};r.addEventListener(`scroll`,u,{passive:!0}),typeof ResizeObserver<`u`&&new ResizeObserver(u).observe(r),c.style.display=`none`,l.style.display=`none`,requestAnimationFrame(u);let d=document.createElement(`div`);d.className=`gengage-simrel-tabs-wrapper`,d.appendChild(c),d.appendChild(r),d.appendChild(l),n.appendChild(d);let f=a[0],p=vn(o(e.groups[0]));f.appendChild(p);for(let e of a)n.appendChild(e);return n}function xn(e){if(!e||typeof e!=`object`)return null;let t=e;if(typeof t.sku!=`string`||typeof t.name!=`string`||typeof t.url!=`string`)return null;let n={sku:t.sku,name:t.name,url:t.url},r=t.imageUrl;typeof r==`string`&&(n.imageUrl=r);let i=t.price;typeof i==`string`&&(n.price=i);let a=t.originalPrice;typeof a==`string`&&(n.originalPrice=a);let o=t.discountPercent;typeof o==`number`&&(n.discountPercent=o);let s=t.brand;typeof s==`string`&&(n.brand=s);let c=t.rating;typeof c==`number`&&(n.rating=c);let l=t.reviewCount;typeof l==`number`&&(n.reviewCount=l);let u=t.cartCode;typeof u==`string`&&(n.cartCode=u);let d=t.inStock;typeof d==`boolean`&&(n.inStock=d);let f=t.extras;return typeof f==`object`&&f&&(n.extras=f),n}function Sn(e){if(!e||typeof e!=`object`)return null;let t=e,n=t.title,r=t.type;if(typeof n!=`string`||typeof r!=`string`)return null;let i={title:n,type:r};return t.payload!==void 0&&(i.payload=t.payload),i}var Cn={ProductGrid:({element:e,renderElement:t,context:n})=>{let r=document.createElement(`div`);r.className=`gengage-simrel-grid`,r.setAttribute(`role`,`list`);let i=e.props?.columns,a;typeof i==`number`&&Number.isFinite(i)&&i>0?a=Math.floor(i):typeof n.gridColumns==`number`&&Number.isFinite(n.gridColumns)&&n.gridColumns>0&&(a=Math.floor(n.gridColumns)),a!==void 0&&r.style.setProperty(`--gengage-simrel-columns`,String(a));for(let n of e.children??[]){let e=t(n);e&&r.appendChild(e)}if(r.children.length===0){let e=document.createElement(`div`);e.className=`gengage-simrel-empty`,e.textContent=n.i18n.emptyStateMessage,r.appendChild(e)}return r},ProductCard:({element:e,context:t})=>{let n=xn(e.props?.product??e.props);if(!n)return null;let r=e.props?.index,i=typeof r==`number`&&Number.isFinite(r)?r:0,a=e.props?.discountType,o=a===`strike-through`||a===`badge`?a:t.discountType,s={product:n,index:i,onClick:t.onClick,onAddToCart:t.onAddToCart,i18n:t.i18n};return o!==void 0&&(s.discountType=o),t.renderCard!==void 0&&(s.renderCard=t.renderCard),t.renderCardElement!==void 0&&(s.renderCardElement=t.renderCardElement),t.pricing!==void 0&&(s.pricing=t.pricing),_n(s)},GroupTabs:({element:e,context:t})=>{let n=e.props?.groups;if(!Array.isArray(n))return null;let r=[];for(let e of n){if(!e||typeof e!=`object`)continue;let t=e;if(typeof t.name!=`string`)continue;let n=[];if(Array.isArray(t.products))for(let e of t.products){let t=xn(e);t&&n.push(t)}let i={name:t.name,products:n};typeof t.highlight==`string`&&(i.highlight=t.highlight),r.push(i)}let i={groups:r,onClick:t.onClick,onAddToCart:t.onAddToCart,i18n:t.i18n},a=e.props?.columns;return typeof a==`number`&&Number.isFinite(a)&&a>0?i.columns=Math.floor(a):typeof t.gridColumns==`number`&&Number.isFinite(t.gridColumns)&&t.gridColumns>0&&(i.columns=Math.floor(t.gridColumns)),t.discountType!==void 0&&(i.discountType=t.discountType),t.renderCard!==void 0&&(i.renderCard=t.renderCard),t.renderCardElement!==void 0&&(i.renderCardElement=t.renderCardElement),bn(i)},EmptyState:({element:e,context:t})=>{let n=document.createElement(`div`);n.className=`gengage-simrel-empty`;let r=e.props?.message;return n.textContent=typeof r==`string`?r:t.i18n.emptyStateMessage,n},AddToCartButton:({element:e,context:t})=>{let n=e.props?.sku,r=e.props?.cartCode;if(typeof n!=`string`||typeof r!=`string`)return null;let i=document.createElement(`button`);i.className=`gengage-simrel-atc gengage-chat-product-card-cta`,i.type=`button`;let a=e.props?.label;return i.textContent=typeof a==`string`?a:t.i18n.addToCartButton,i.addEventListener(`click`,e=>{e.preventDefault(),e.stopPropagation(),t.onAddToCart({sku:n,quantity:1,cartCode:r})}),i},QuickActions:({element:e,context:t})=>{let n=document.createElement(`div`);n.className=`gengage-simrel-quick-actions`;let r=e.props?.actions;if(!Array.isArray(r)||!t.onAction)return n;for(let e of r){if(!e||typeof e!=`object`)continue;let r=e,i=r.label,a=Sn(r.action);if(typeof i!=`string`||!a)continue;let o=document.createElement(`button`);o.className=`gengage-simrel-quick-action`,o.type=`button`,o.textContent=i,o.addEventListener(`click`,e=>{e.preventDefault(),e.stopPropagation(),t.onAction?.(a)}),n.appendChild(o)}return n}},wn=({element:e,renderElement:t})=>{if(!e.children||e.children.length===0)return null;let n=document.createElement(`div`);for(let r of e.children){let e=t(r);e&&n.appendChild(e)}return n};function Tn(){return{...Cn}}function En(e,t,r=Cn,i=wn){return n({spec:e,context:t,registry:r,containerClassName:`gengage-simrel-uispec`,unknownRenderer:i})}var Dn={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`},On={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 kn(e){return e?e.toLowerCase().split(`-`)[0]??`tr`:`tr`}function An(e){switch(kn(e)){case`en`:return On;default:return Dn}}function jn(){return typeof window<`u`&&Array.isArray(window.dataLayer)}function Mn(e,t){let n={event:e,...t};jn()&&window.dataLayer.push(n)}function Nn(e){Mn(`gengage-on-init`,{gengage_widget:e})}function Pn(e){Mn(`gengage-show`,{gengage_widget:e})}function Fn(e,t){Mn(`gengage-product-detail`,{gengage_sku:e,gengage_product_name:t})}function In(e,t){Mn(`gengage-cart-add`,{gengage_sku:e,gengage_quantity:t})}Object.freeze({status:`aborted`});function O(e,t,n){function r(n,r){if(n._zod||Object.defineProperty(n,`_zod`,{value:{def:r,constr:o,traits:new Set},enumerable:!1}),n._zod.traits.has(e))return;n._zod.traits.add(e),t(n,r);let i=o.prototype,a=Object.keys(i);for(let e=0;e<a.length;e++){let t=a[e];t in n||(n[t]=i[t].bind(n))}}let i=n?.Parent??Object;class a extends i{}Object.defineProperty(a,`name`,{value:e});function o(e){var t;let i=n?.Parent?new a:this;r(i,e),(t=i._zod).deferred??(t.deferred=[]);for(let e of i._zod.deferred)e();return i}return Object.defineProperty(o,`init`,{value:r}),Object.defineProperty(o,Symbol.hasInstance,{value:t=>n?.Parent&&t instanceof n.Parent?!0:t?._zod?.traits?.has(e)}),Object.defineProperty(o,`name`,{value:e}),o}var k=class extends Error{constructor(){super(`Encountered Promise during synchronous parse. Use .parseAsync() instead.`)}},Ln=class extends Error{constructor(e){super(`Encountered unidirectional transform during encode: ${e}`),this.name=`ZodEncodeError`}},Rn={};function A(e){return e&&Object.assign(Rn,e),Rn}function zn(e){let t=Object.values(e).filter(e=>typeof e==`number`);return Object.entries(e).filter(([e,n])=>t.indexOf(+e)===-1).map(([e,t])=>t)}function Bn(e,t){return typeof t==`bigint`?t.toString():t}function Vn(e){return{get value(){{let t=e();return Object.defineProperty(this,`value`,{value:t}),t}throw Error(`cached value already set`)}}}function Hn(e){return e==null}function Un(e){let t=+!!e.startsWith(`^`),n=e.endsWith(`$`)?e.length-1:e.length;return e.slice(t,n)}function Wn(e,t){let n=(e.toString().split(`.`)[1]||``).length,r=t.toString(),i=(r.split(`.`)[1]||``).length;if(i===0&&/\d?e-\d?/.test(r)){let e=r.match(/\d?e-(\d?)/);e?.[1]&&(i=Number.parseInt(e[1]))}let a=n>i?n:i;return Number.parseInt(e.toFixed(a).replace(`.`,``))%Number.parseInt(t.toFixed(a).replace(`.`,``))/10**a}var Gn=Symbol(`evaluating`);function j(e,t,n){let r;Object.defineProperty(e,t,{get(){if(r!==Gn)return r===void 0&&(r=Gn,r=n()),r},set(n){Object.defineProperty(e,t,{value:n})},configurable:!0})}function M(e,t,n){Object.defineProperty(e,t,{value:n,writable:!0,enumerable:!0,configurable:!0})}function N(...e){let t={};for(let n of e)Object.assign(t,Object.getOwnPropertyDescriptors(n));return Object.defineProperties({},t)}function Kn(e){return JSON.stringify(e)}function qn(e){return e.toLowerCase().trim().replace(/[^\w\s-]/g,``).replace(/[\s_-]+/g,`-`).replace(/^-+|-+$/g,``)}var Jn=`captureStackTrace`in Error?Error.captureStackTrace:(...e)=>{};function P(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}var Yn=Vn(()=>{if(typeof navigator<`u`&&navigator?.userAgent?.includes(`Cloudflare`))return!1;try{return Function(``),!0}catch{return!1}});function F(e){if(P(e)===!1)return!1;let t=e.constructor;if(t===void 0||typeof t!=`function`)return!0;let n=t.prototype;return!(P(n)===!1||Object.prototype.hasOwnProperty.call(n,`isPrototypeOf`)===!1)}function Xn(e){return F(e)?{...e}:Array.isArray(e)?[...e]:e}var Zn=new Set([`string`,`number`,`symbol`]);function Qn(e){return e.replace(/[.*+?^${}()|[\]\\]/g,`\\$&`)}function I(e,t,n){let r=new e._zod.constr(t??e._zod.def);return(!t||n?.parent)&&(r._zod.parent=e),r}function L(e){let t=e;if(!t)return{};if(typeof t==`string`)return{error:()=>t};if(t?.message!==void 0){if(t?.error!==void 0)throw 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 $n(e){return Object.keys(e).filter(t=>e[t]._zod.optin===`optional`&&e[t]._zod.optout===`optional`)}var er={safeint:[-(2**53-1),2**53-1],int32:[-2147483648,2147483647],uint32:[0,4294967295],float32:[-34028234663852886e22,34028234663852886e22],float64:[-Number.MAX_VALUE,Number.MAX_VALUE]};function tr(e,t){let n=e._zod.def,r=n.checks;if(r&&r.length>0)throw Error(`.pick() cannot be used on object schemas containing refinements`);return I(e,N(e._zod.def,{get shape(){let e={};for(let r in t){if(!(r in n.shape))throw Error(`Unrecognized key: "${r}"`);t[r]&&(e[r]=n.shape[r])}return M(this,`shape`,e),e},checks:[]}))}function nr(e,t){let n=e._zod.def,r=n.checks;if(r&&r.length>0)throw Error(`.omit() cannot be used on object schemas containing refinements`);return I(e,N(e._zod.def,{get shape(){let r={...e._zod.def.shape};for(let e in t){if(!(e in n.shape))throw Error(`Unrecognized key: "${e}"`);t[e]&&delete r[e]}return M(this,`shape`,r),r},checks:[]}))}function rr(e,t){if(!F(t))throw Error(`Invalid input to extend: expected a plain object`);let n=e._zod.def.checks;if(n&&n.length>0){let n=e._zod.def.shape;for(let e in t)if(Object.getOwnPropertyDescriptor(n,e)!==void 0)throw Error("Cannot overwrite keys on object schemas containing refinements. Use `.safeExtend()` instead.")}return I(e,N(e._zod.def,{get shape(){let n={...e._zod.def.shape,...t};return M(this,`shape`,n),n}}))}function ir(e,t){if(!F(t))throw Error(`Invalid input to safeExtend: expected a plain object`);return I(e,N(e._zod.def,{get shape(){let n={...e._zod.def.shape,...t};return M(this,`shape`,n),n}}))}function ar(e,t){return I(e,N(e._zod.def,{get shape(){let n={...e._zod.def.shape,...t._zod.def.shape};return M(this,`shape`,n),n},get catchall(){return t._zod.def.catchall},checks:[]}))}function or(e,t,n){let r=t._zod.def.checks;if(r&&r.length>0)throw Error(`.partial() cannot be used on object schemas containing refinements`);return I(t,N(t._zod.def,{get shape(){let r=t._zod.def.shape,i={...r};if(n)for(let t in n){if(!(t in r))throw Error(`Unrecognized key: "${t}"`);n[t]&&(i[t]=e?new e({type:`optional`,innerType:r[t]}):r[t])}else for(let t in r)i[t]=e?new e({type:`optional`,innerType:r[t]}):r[t];return M(this,`shape`,i),i},checks:[]}))}function sr(e,t,n){return I(t,N(t._zod.def,{get shape(){let r=t._zod.def.shape,i={...r};if(n)for(let t in n){if(!(t in i))throw Error(`Unrecognized key: "${t}"`);n[t]&&(i[t]=new e({type:`nonoptional`,innerType:r[t]}))}else for(let t in r)i[t]=new e({type:`nonoptional`,innerType:r[t]});return M(this,`shape`,i),i}}))}function R(e,t=0){if(e.aborted===!0)return!0;for(let n=t;n<e.issues.length;n++)if(e.issues[n]?.continue!==!0)return!0;return!1}function cr(e,t){return t.map(t=>{var n;return(n=t).path??(n.path=[]),t.path.unshift(e),t})}function lr(e){return typeof e==`string`?e:e?.message}function z(e,t,n){let r={...e,path:e.path??[]};return e.message||(r.message=lr(e.inst?._zod.def?.error?.(e))??lr(t?.error?.(e))??lr(n.customError?.(e))??lr(n.localeError?.(e))??`Invalid input`),delete r.inst,delete r.continue,t?.reportInput||delete r.input,r}function ur(e){return Array.isArray(e)?`array`:typeof e==`string`?`string`:`unknown`}function B(...e){let[t,n,r]=e;return typeof t==`string`?{message:t,code:`custom`,input:n,inst:r}:{...t}}var dr=(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,Bn,2),Object.defineProperty(e,`toString`,{value:()=>e.message,enumerable:!1})},fr=O(`$ZodError`,dr),pr=O(`$ZodError`,dr,{Parent:Error});function mr(e,t=e=>e.message){let n={},r=[];for(let i of e.issues)i.path.length>0?(n[i.path[0]]=n[i.path[0]]||[],n[i.path[0]].push(t(i))):r.push(t(i));return{formErrors:r,fieldErrors:n}}function hr(e,t=e=>e.message){let n={_errors:[]},r=e=>{for(let i of e.issues)if(i.code===`invalid_union`&&i.errors.length)i.errors.map(e=>r({issues:e}));else if(i.code===`invalid_key`)r({issues:i.issues});else if(i.code===`invalid_element`)r({issues:i.issues});else if(i.path.length===0)n._errors.push(t(i));else{let e=n,r=0;for(;r<i.path.length;){let n=i.path[r];r===i.path.length-1?(e[n]=e[n]||{_errors:[]},e[n]._errors.push(t(i))):e[n]=e[n]||{_errors:[]},e=e[n],r++}}};return r(e),n}var gr=e=>(t,n,r,i)=>{let a=r?Object.assign(r,{async:!1}):{async:!1},o=t._zod.run({value:n,issues:[]},a);if(o instanceof Promise)throw new k;if(o.issues.length){let t=new(i?.Err??e)(o.issues.map(e=>z(e,a,A())));throw Jn(t,i?.callee),t}return o.value},_r=e=>async(t,n,r,i)=>{let a=r?Object.assign(r,{async:!0}):{async:!0},o=t._zod.run({value:n,issues:[]},a);if(o instanceof Promise&&(o=await o),o.issues.length){let t=new(i?.Err??e)(o.issues.map(e=>z(e,a,A())));throw Jn(t,i?.callee),t}return o.value},vr=e=>(t,n,r)=>{let i=r?{...r,async:!1}:{async:!1},a=t._zod.run({value:n,issues:[]},i);if(a instanceof Promise)throw new k;return a.issues.length?{success:!1,error:new(e??fr)(a.issues.map(e=>z(e,i,A())))}:{success:!0,data:a.value}},yr=vr(pr),br=e=>async(t,n,r)=>{let i=r?Object.assign(r,{async:!0}):{async:!0},a=t._zod.run({value:n,issues:[]},i);return a instanceof Promise&&(a=await a),a.issues.length?{success:!1,error:new e(a.issues.map(e=>z(e,i,A())))}:{success:!0,data:a.value}},xr=br(pr),Sr=e=>(t,n,r)=>{let i=r?Object.assign(r,{direction:`backward`}):{direction:`backward`};return gr(e)(t,n,i)},Cr=e=>(t,n,r)=>gr(e)(t,n,r),wr=e=>async(t,n,r)=>{let i=r?Object.assign(r,{direction:`backward`}):{direction:`backward`};return _r(e)(t,n,i)},Tr=e=>async(t,n,r)=>_r(e)(t,n,r),Er=e=>(t,n,r)=>{let i=r?Object.assign(r,{direction:`backward`}):{direction:`backward`};return vr(e)(t,n,i)},Dr=e=>(t,n,r)=>vr(e)(t,n,r),Or=e=>async(t,n,r)=>{let i=r?Object.assign(r,{direction:`backward`}):{direction:`backward`};return br(e)(t,n,i)},kr=e=>async(t,n,r)=>br(e)(t,n,r),Ar=/^[cC][^\s-]{8,}$/,jr=/^[0-9a-z]+$/,Mr=/^[0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{26}$/,Nr=/^[0-9a-vA-V]{20}$/,Pr=/^[A-Za-z0-9]{27}$/,Fr=/^[a-zA-Z0-9_-]{21}$/,Ir=/^P(?:(\d+W)|(?!.*W)(?=\d|T\d)(\d+Y)?(\d+M)?(\d+D)?(T(?=\d)(\d+H)?(\d+M)?(\d+([.,]\d+)?S)?)?)$/,Lr=/^([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})$/,Rr=e=>e?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)$/,zr=/^(?!\.)(?!.*\.\.)([A-Za-z0-9_'+\-\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\-]*\.)+[A-Za-z]{2,}$/,Br=`^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$`;function Vr(){return new RegExp(Br,`u`)}var Hr=/^(?:(?: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])$/,Ur=/^(([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}|:))$/,Wr=/^((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])$/,Gr=/^(([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])$/,Kr=/^$|^(?:[0-9a-zA-Z+/]{4})*(?:(?:[0-9a-zA-Z+/]{2}==)|(?:[0-9a-zA-Z+/]{3}=))?$/,qr=/^[A-Za-z0-9_-]*$/,Jr=/^\+[1-9]\d{6,14}$/,Yr=`(?:(?:\\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])))`,Xr=RegExp(`^${Yr}$`);function Zr(e){let 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 Qr(e){return RegExp(`^${Zr(e)}$`)}function $r(e){let t=Zr({precision:e.precision}),n=[`Z`];e.local&&n.push(``),e.offset&&n.push(`([+-](?:[01]\\d|2[0-3]):[0-5]\\d)`);let r=`${t}(?:${n.join(`|`)})`;return RegExp(`^${Yr}T(?:${r})$`)}var ei=e=>{let t=e?`[\\s\\S]{${e?.minimum??0},${e?.maximum??``}}`:`[\\s\\S]*`;return RegExp(`^${t}$`)},ti=/^-?\d+$/,ni=/^-?\d+(?:\.\d+)?$/,ri=/^[^A-Z]*$/,ii=/^[^a-z]*$/,V=O(`$ZodCheck`,(e,t)=>{var n;e._zod??={},e._zod.def=t,(n=e._zod).onattach??(n.onattach=[])}),ai={number:`number`,bigint:`bigint`,object:`date`},oi=O(`$ZodCheckLessThan`,(e,t)=>{V.init(e,t);let n=ai[typeof t.value];e._zod.onattach.push(e=>{let n=e._zod.bag,r=(t.inclusive?n.maximum:n.exclusiveMaximum)??1/0;t.value<r&&(t.inclusive?n.maximum=t.value:n.exclusiveMaximum=t.value)}),e._zod.check=r=>{(t.inclusive?r.value<=t.value:r.value<t.value)||r.issues.push({origin:n,code:`too_big`,maximum:typeof t.value==`object`?t.value.getTime():t.value,input:r.value,inclusive:t.inclusive,inst:e,continue:!t.abort})}}),si=O(`$ZodCheckGreaterThan`,(e,t)=>{V.init(e,t);let n=ai[typeof t.value];e._zod.onattach.push(e=>{let n=e._zod.bag,r=(t.inclusive?n.minimum:n.exclusiveMinimum)??-1/0;t.value>r&&(t.inclusive?n.minimum=t.value:n.exclusiveMinimum=t.value)}),e._zod.check=r=>{(t.inclusive?r.value>=t.value:r.value>t.value)||r.issues.push({origin:n,code:`too_small`,minimum:typeof t.value==`object`?t.value.getTime():t.value,input:r.value,inclusive:t.inclusive,inst:e,continue:!t.abort})}}),ci=O(`$ZodCheckMultipleOf`,(e,t)=>{V.init(e,t),e._zod.onattach.push(e=>{var n;(n=e._zod.bag).multipleOf??(n.multipleOf=t.value)}),e._zod.check=n=>{if(typeof n.value!=typeof t.value)throw Error(`Cannot mix number and bigint in multiple_of check.`);(typeof n.value==`bigint`?n.value%t.value===BigInt(0):Wn(n.value,t.value)===0)||n.issues.push({origin:typeof n.value,code:`not_multiple_of`,divisor:t.value,input:n.value,inst:e,continue:!t.abort})}}),li=O(`$ZodCheckNumberFormat`,(e,t)=>{V.init(e,t),t.format=t.format||`float64`;let n=t.format?.includes(`int`),r=n?`int`:`number`,[i,a]=er[t.format];e._zod.onattach.push(e=>{let r=e._zod.bag;r.format=t.format,r.minimum=i,r.maximum=a,n&&(r.pattern=ti)}),e._zod.check=o=>{let s=o.value;if(n){if(!Number.isInteger(s)){o.issues.push({expected:r,format:t.format,code:`invalid_type`,continue:!1,input:s,inst:e});return}if(!Number.isSafeInteger(s)){s>0?o.issues.push({input:s,code:`too_big`,maximum:2**53-1,note:`Integers must be within the safe integer range.`,inst:e,origin:r,inclusive:!0,continue:!t.abort}):o.issues.push({input:s,code:`too_small`,minimum:-(2**53-1),note:`Integers must be within the safe integer range.`,inst:e,origin:r,inclusive:!0,continue:!t.abort});return}}s<i&&o.issues.push({origin:`number`,input:s,code:`too_small`,minimum:i,inclusive:!0,inst:e,continue:!t.abort}),s>a&&o.issues.push({origin:`number`,input:s,code:`too_big`,maximum:a,inclusive:!0,inst:e,continue:!t.abort})}}),ui=O(`$ZodCheckMaxLength`,(e,t)=>{var n;V.init(e,t),(n=e._zod.def).when??(n.when=e=>{let t=e.value;return!Hn(t)&&t.length!==void 0}),e._zod.onattach.push(e=>{let n=e._zod.bag.maximum??1/0;t.maximum<n&&(e._zod.bag.maximum=t.maximum)}),e._zod.check=n=>{let r=n.value;if(r.length<=t.maximum)return;let i=ur(r);n.issues.push({origin:i,code:`too_big`,maximum:t.maximum,inclusive:!0,input:r,inst:e,continue:!t.abort})}}),di=O(`$ZodCheckMinLength`,(e,t)=>{var n;V.init(e,t),(n=e._zod.def).when??(n.when=e=>{let t=e.value;return!Hn(t)&&t.length!==void 0}),e._zod.onattach.push(e=>{let n=e._zod.bag.minimum??-1/0;t.minimum>n&&(e._zod.bag.minimum=t.minimum)}),e._zod.check=n=>{let r=n.value;if(r.length>=t.minimum)return;let i=ur(r);n.issues.push({origin:i,code:`too_small`,minimum:t.minimum,inclusive:!0,input:r,inst:e,continue:!t.abort})}}),fi=O(`$ZodCheckLengthEquals`,(e,t)=>{var n;V.init(e,t),(n=e._zod.def).when??(n.when=e=>{let t=e.value;return!Hn(t)&&t.length!==void 0}),e._zod.onattach.push(e=>{let n=e._zod.bag;n.minimum=t.length,n.maximum=t.length,n.length=t.length}),e._zod.check=n=>{let r=n.value,i=r.length;if(i===t.length)return;let a=ur(r),o=i>t.length;n.issues.push({origin:a,...o?{code:`too_big`,maximum:t.length}:{code:`too_small`,minimum:t.length},inclusive:!0,exact:!0,input:n.value,inst:e,continue:!t.abort})}}),pi=O(`$ZodCheckStringFormat`,(e,t)=>{var n,r;V.init(e,t),e._zod.onattach.push(e=>{let n=e._zod.bag;n.format=t.format,t.pattern&&(n.patterns??=new Set,n.patterns.add(t.pattern))}),t.pattern?(n=e._zod).check??(n.check=n=>{t.pattern.lastIndex=0,!t.pattern.test(n.value)&&n.issues.push({origin:`string`,code:`invalid_format`,format:t.format,input:n.value,...t.pattern?{pattern:t.pattern.toString()}:{},inst:e,continue:!t.abort})}):(r=e._zod).check??(r.check=()=>{})}),mi=O(`$ZodCheckRegex`,(e,t)=>{pi.init(e,t),e._zod.check=n=>{t.pattern.lastIndex=0,!t.pattern.test(n.value)&&n.issues.push({origin:`string`,code:`invalid_format`,format:`regex`,input:n.value,pattern:t.pattern.toString(),inst:e,continue:!t.abort})}}),hi=O(`$ZodCheckLowerCase`,(e,t)=>{t.pattern??=ri,pi.init(e,t)}),gi=O(`$ZodCheckUpperCase`,(e,t)=>{t.pattern??=ii,pi.init(e,t)}),_i=O(`$ZodCheckIncludes`,(e,t)=>{V.init(e,t);let n=Qn(t.includes),r=new RegExp(typeof t.position==`number`?`^.{${t.position}}${n}`:n);t.pattern=r,e._zod.onattach.push(e=>{let t=e._zod.bag;t.patterns??=new Set,t.patterns.add(r)}),e._zod.check=n=>{n.value.includes(t.includes,t.position)||n.issues.push({origin:`string`,code:`invalid_format`,format:`includes`,includes:t.includes,input:n.value,inst:e,continue:!t.abort})}}),vi=O(`$ZodCheckStartsWith`,(e,t)=>{V.init(e,t);let n=RegExp(`^${Qn(t.prefix)}.*`);t.pattern??=n,e._zod.onattach.push(e=>{let t=e._zod.bag;t.patterns??=new Set,t.patterns.add(n)}),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})}}),yi=O(`$ZodCheckEndsWith`,(e,t)=>{V.init(e,t);let n=RegExp(`.*${Qn(t.suffix)}$`);t.pattern??=n,e._zod.onattach.push(e=>{let t=e._zod.bag;t.patterns??=new Set,t.patterns.add(n)}),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})}}),bi=O(`$ZodCheckOverwrite`,(e,t)=>{V.init(e,t),e._zod.check=e=>{e.value=t.tx(e.value)}}),xi=class{constructor(e=[]){this.content=[],this.indent=0,this&&(this.args=e)}indented(e){this.indent+=1,e(this),--this.indent}write(e){if(typeof e==`function`){e(this,{execution:`sync`}),e(this,{execution:`async`});return}let t=e.split(`
49
49
  `).filter(e=>e),n=Math.min(...t.map(e=>e.length-e.trimStart().length)),r=t.map(e=>e.slice(n)).map(e=>` `.repeat(this.indent*2)+e);for(let e of r)this.content.push(e)}compile(){let e=Function,t=this?.args,n=[...(this?.content??[``]).map(e=>` ${e}`)];return new e(...t,n.join(`
50
50
  `))}},Si={major:4,minor:3,patch:6},H=O(`$ZodType`,(e,t)=>{var n;e??={},e._zod.def=t,e._zod.bag=e._zod.bag||{},e._zod.version=Si;let r=[...e._zod.def.checks??[]];e._zod.traits.has(`$ZodCheck`)&&r.unshift(e);for(let t of r)for(let n of t._zod.onattach)n(e);if(r.length===0)(n=e._zod).deferred??(n.deferred=[]),e._zod.deferred?.push(()=>{e._zod.run=e._zod.parse});else{let t=(e,t,n)=>{let r=R(e),i;for(let a of t){if(a._zod.def.when){if(!a._zod.def.when(e))continue}else if(r)continue;let t=e.issues.length,o=a._zod.check(e);if(o instanceof Promise&&n?.async===!1)throw new k;if(i||o instanceof Promise)i=(i??Promise.resolve()).then(async()=>{await o,e.issues.length!==t&&(r||=R(e,t))});else{if(e.issues.length===t)continue;r||=R(e,t)}}return i?i.then(()=>e):e},n=(n,i,a)=>{if(R(n))return n.aborted=!0,n;let o=t(i,r,a);if(o instanceof Promise){if(a.async===!1)throw new k;return o.then(t=>e._zod.parse(t,a))}return e._zod.parse(o,a)};e._zod.run=(i,a)=>{if(a.skipChecks)return e._zod.parse(i,a);if(a.direction===`backward`){let t=e._zod.parse({value:i.value,issues:[]},{...a,skipChecks:!0});return t instanceof Promise?t.then(e=>n(e,i,a)):n(t,i,a)}let o=e._zod.parse(i,a);if(o instanceof Promise){if(a.async===!1)throw new k;return o.then(e=>t(e,r,a))}return t(o,r,a)}}j(e,`~standard`,()=>({validate:t=>{try{let n=yr(e,t);return n.success?{value:n.data}:{issues:n.error?.issues}}catch{return xr(e,t).then(e=>e.success?{value:e.data}:{issues:e.error?.issues})}},vendor:`zod`,version:1}))}),Ci=O(`$ZodString`,(e,t)=>{H.init(e,t),e._zod.pattern=[...e?._zod.bag?.patterns??[]].pop()??ei(e._zod.bag),e._zod.parse=(n,r)=>{if(t.coerce)try{n.value=String(n.value)}catch{}return typeof n.value==`string`||n.issues.push({expected:`string`,code:`invalid_type`,input:n.value,inst:e}),n}}),U=O(`$ZodStringFormat`,(e,t)=>{pi.init(e,t),Ci.init(e,t)}),wi=O(`$ZodGUID`,(e,t)=>{t.pattern??=Lr,U.init(e,t)}),Ti=O(`$ZodUUID`,(e,t)=>{if(t.version){let e={v1:1,v2:2,v3:3,v4:4,v5:5,v6:6,v7:7,v8:8}[t.version];if(e===void 0)throw Error(`Invalid UUID version: "${t.version}"`);t.pattern??=Rr(e)}else t.pattern??=Rr();U.init(e,t)}),Ei=O(`$ZodEmail`,(e,t)=>{t.pattern??=zr,U.init(e,t)}),Di=O(`$ZodURL`,(e,t)=>{U.init(e,t),e._zod.check=n=>{try{let r=n.value.trim(),i=new URL(r);t.hostname&&(t.hostname.lastIndex=0,t.hostname.test(i.hostname)||n.issues.push({code:`invalid_format`,format:`url`,note:`Invalid hostname`,pattern:t.hostname.source,input:n.value,inst:e,continue:!t.abort})),t.protocol&&(t.protocol.lastIndex=0,t.protocol.test(i.protocol.endsWith(`:`)?i.protocol.slice(0,-1):i.protocol)||n.issues.push({code:`invalid_format`,format:`url`,note:`Invalid protocol`,pattern:t.protocol.source,input:n.value,inst:e,continue:!t.abort})),t.normalize?n.value=i.href:n.value=r;return}catch{n.issues.push({code:`invalid_format`,format:`url`,input:n.value,inst:e,continue:!t.abort})}}}),Oi=O(`$ZodEmoji`,(e,t)=>{t.pattern??=Vr(),U.init(e,t)}),ki=O(`$ZodNanoID`,(e,t)=>{t.pattern??=Fr,U.init(e,t)}),Ai=O(`$ZodCUID`,(e,t)=>{t.pattern??=Ar,U.init(e,t)}),ji=O(`$ZodCUID2`,(e,t)=>{t.pattern??=jr,U.init(e,t)}),Mi=O(`$ZodULID`,(e,t)=>{t.pattern??=Mr,U.init(e,t)}),Ni=O(`$ZodXID`,(e,t)=>{t.pattern??=Nr,U.init(e,t)}),Pi=O(`$ZodKSUID`,(e,t)=>{t.pattern??=Pr,U.init(e,t)}),Fi=O(`$ZodISODateTime`,(e,t)=>{t.pattern??=$r(t),U.init(e,t)}),Ii=O(`$ZodISODate`,(e,t)=>{t.pattern??=Xr,U.init(e,t)}),Li=O(`$ZodISOTime`,(e,t)=>{t.pattern??=Qr(t),U.init(e,t)}),Ri=O(`$ZodISODuration`,(e,t)=>{t.pattern??=Ir,U.init(e,t)}),zi=O(`$ZodIPv4`,(e,t)=>{t.pattern??=Hr,U.init(e,t),e._zod.bag.format=`ipv4`}),Bi=O(`$ZodIPv6`,(e,t)=>{t.pattern??=Ur,U.init(e,t),e._zod.bag.format=`ipv6`,e._zod.check=n=>{try{new URL(`http://[${n.value}]`)}catch{n.issues.push({code:`invalid_format`,format:`ipv6`,input:n.value,inst:e,continue:!t.abort})}}}),Vi=O(`$ZodCIDRv4`,(e,t)=>{t.pattern??=Wr,U.init(e,t)}),Hi=O(`$ZodCIDRv6`,(e,t)=>{t.pattern??=Gr,U.init(e,t),e._zod.check=n=>{let r=n.value.split(`/`);try{if(r.length!==2)throw Error();let[e,t]=r;if(!t)throw Error();let n=Number(t);if(`${n}`!==t||n<0||n>128)throw Error();new URL(`http://[${e}]`)}catch{n.issues.push({code:`invalid_format`,format:`cidrv6`,input:n.value,inst:e,continue:!t.abort})}}});function Ui(e){if(e===``)return!0;if(e.length%4!=0)return!1;try{return atob(e),!0}catch{return!1}}var Wi=O(`$ZodBase64`,(e,t)=>{t.pattern??=Kr,U.init(e,t),e._zod.bag.contentEncoding=`base64`,e._zod.check=n=>{Ui(n.value)||n.issues.push({code:`invalid_format`,format:`base64`,input:n.value,inst:e,continue:!t.abort})}});function Gi(e){if(!qr.test(e))return!1;let t=e.replace(/[-_]/g,e=>e===`-`?`+`:`/`);return Ui(t.padEnd(Math.ceil(t.length/4)*4,`=`))}var Ki=O(`$ZodBase64URL`,(e,t)=>{t.pattern??=qr,U.init(e,t),e._zod.bag.contentEncoding=`base64url`,e._zod.check=n=>{Gi(n.value)||n.issues.push({code:`invalid_format`,format:`base64url`,input:n.value,inst:e,continue:!t.abort})}}),qi=O(`$ZodE164`,(e,t)=>{t.pattern??=Jr,U.init(e,t)});function Ji(e,t=null){try{let n=e.split(`.`);if(n.length!==3)return!1;let[r]=n;if(!r)return!1;let i=JSON.parse(atob(r));return!(`typ`in i&&i?.typ!==`JWT`||!i.alg||t&&(!(`alg`in i)||i.alg!==t))}catch{return!1}}var Yi=O(`$ZodJWT`,(e,t)=>{U.init(e,t),e._zod.check=n=>{Ji(n.value,t.alg)||n.issues.push({code:`invalid_format`,format:`jwt`,input:n.value,inst:e,continue:!t.abort})}}),Xi=O(`$ZodNumber`,(e,t)=>{H.init(e,t),e._zod.pattern=e._zod.bag.pattern??ni,e._zod.parse=(n,r)=>{if(t.coerce)try{n.value=Number(n.value)}catch{}let i=n.value;if(typeof i==`number`&&!Number.isNaN(i)&&Number.isFinite(i))return n;let a=typeof i==`number`?Number.isNaN(i)?`NaN`:Number.isFinite(i)?void 0:`Infinity`:void 0;return n.issues.push({expected:`number`,code:`invalid_type`,input:i,inst:e,...a?{received:a}:{}}),n}}),Zi=O(`$ZodNumberFormat`,(e,t)=>{li.init(e,t),Xi.init(e,t)}),Qi=O(`$ZodUnknown`,(e,t)=>{H.init(e,t),e._zod.parse=e=>e}),$i=O(`$ZodNever`,(e,t)=>{H.init(e,t),e._zod.parse=(t,n)=>(t.issues.push({expected:`never`,code:`invalid_type`,input:t.value,inst:e}),t)});function ea(e,t,n){e.issues.length&&t.issues.push(...cr(n,e.issues)),t.value[n]=e.value}var ta=O(`$ZodArray`,(e,t)=>{H.init(e,t),e._zod.parse=(n,r)=>{let i=n.value;if(!Array.isArray(i))return n.issues.push({expected:`array`,code:`invalid_type`,input:i,inst:e}),n;n.value=Array(i.length);let a=[];for(let e=0;e<i.length;e++){let o=i[e],s=t.element._zod.run({value:o,issues:[]},r);s instanceof Promise?a.push(s.then(t=>ea(t,n,e))):ea(s,n,e)}return a.length?Promise.all(a).then(()=>n):n}});function na(e,t,n,r,i){if(e.issues.length){if(i&&!(n in r))return;t.issues.push(...cr(n,e.issues))}e.value===void 0?n in r&&(t.value[n]=void 0):t.value[n]=e.value}function ra(e){let t=Object.keys(e.shape);for(let n of t)if(!e.shape?.[n]?._zod?.traits?.has(`$ZodType`))throw Error(`Invalid element at key "${n}": expected a Zod schema`);let n=$n(e.shape);return{...e,keys:t,keySet:new Set(t),numKeys:t.length,optionalKeys:new Set(n)}}function ia(e,t,n,r,i,a){let o=[],s=i.keySet,c=i.catchall._zod,l=c.def.type,u=c.optout===`optional`;for(let i in t){if(s.has(i))continue;if(l===`never`){o.push(i);continue}let a=c.run({value:t[i],issues:[]},r);a instanceof Promise?e.push(a.then(e=>na(e,n,i,t,u))):na(a,n,i,t,u)}return o.length&&n.issues.push({code:`unrecognized_keys`,keys:o,input:t,inst:a}),e.length?Promise.all(e).then(()=>n):n}var aa=O(`$ZodObject`,(e,t)=>{if(H.init(e,t),!Object.getOwnPropertyDescriptor(t,`shape`)?.get){let e=t.shape;Object.defineProperty(t,`shape`,{get:()=>{let n={...e};return Object.defineProperty(t,`shape`,{value:n}),n}})}let n=Vn(()=>ra(t));j(e._zod,`propValues`,()=>{let e=t.shape,n={};for(let t in e){let r=e[t]._zod;if(r.values){n[t]??(n[t]=new Set);for(let e of r.values)n[t].add(e)}}return n});let r=P,i=t.catchall,a;e._zod.parse=(t,o)=>{a??=n.value;let s=t.value;if(!r(s))return t.issues.push({expected:`object`,code:`invalid_type`,input:s,inst:e}),t;t.value={};let c=[],l=a.shape;for(let e of a.keys){let n=l[e],r=n._zod.optout===`optional`,i=n._zod.run({value:s[e],issues:[]},o);i instanceof Promise?c.push(i.then(n=>na(n,t,e,s,r))):na(i,t,e,s,r)}return i?ia(c,s,t,o,n.value,e):c.length?Promise.all(c).then(()=>t):t}}),oa=O(`$ZodObjectJIT`,(e,t)=>{aa.init(e,t);let n=e._zod.parse,r=Vn(()=>ra(t)),i=e=>{let t=new xi([`shape`,`payload`,`ctx`]),n=r.value,i=e=>{let t=Kn(e);return`shape[${t}]._zod.run({ value: input[${t}], issues: [] }, ctx)`};t.write(`const input = payload.value;`);let a=Object.create(null),o=0;for(let e of n.keys)a[e]=`key_${o++}`;t.write(`const newResult = {};`);for(let r of n.keys){let n=a[r],o=Kn(r),s=e[r]?._zod?.optout===`optional`;t.write(`const ${n} = ${i(r)};`),s?t.write(`
51
51
  if (${n}.issues.length) {