PageSourceSearch

https://www.vistaprint.nl/assets/ubik/web/@vp/fragment-recommendat…/fragment-recommendations-CDxPKfQh.js

js vistaprint.nl collected 2026-10-03 21:20:42 UTC 57,849 bytes, 54 lines download raw bytes

1System.register(["react/jsx-runtime","@vp/ubik-fragment-react","@vp/ubik-context","react","./context-DtufHb18.js","./event-Bp9ytL9b.js","./modules/use-sync-external-store/index-CbtPWLQS.js","./modules/vp-recommendations-offer-tiles-common/favoritesHeartStyleKeys-C30JKM4W.js","@vp/swan","@vp/ab-test-cookie","./modules/js-cookie/js.cookie-B2CnNdmi.js","@vp/product-recommendations-tracking","@vp/tracking","./modules/react-error-boundary/react-error-boundary.esm-zOizUkH1.js","@vp/ab-reader","@vp/coupon-callout","@vp/auth","@vp/price-platform"],(function(kn){"use strict";var d,_,Q,Ne,je,Ge,Ve,Ue,x,Fe,D,Ze,Ke,He,Be,We,Qe,Je,qe,Xe,U,Ye,R,C,et,E,p,w,O,Z,L,ee,J,pe,he,te,ve,ye,ke,tt,nt,be,rt,it,ot,at,st,ct,ut,dt,lt,ft,K,ne,mt,gt,pt,Te,ht,vt,q,Pe,yt,kt,bt,Tt,Pt,Et,wt,It,_t,Ee,Ct,St,Rt,xt,Dt,Ot,zt,Mt,At;return{setters:[function(s){d=s.jsx,_=s.Fragment,Q=s.jsxs},function(s){Ne=s.clientMount},function(s){je=s.useSwanStyleKeys,Ge=s.useStyles,Ve=s.useLogger},function(s){Ue=s.useMemo,x=s.useState,Fe=s.useCallback,D=s.useEffect},function(s){Ze=s.u},function(s){Ke=s.t,He=s.p,Be=s.E},function(s){We=s.u,Qe=s.a},function(s){Je=s.q,qe=s.P,Xe=s.u,U=s.l,Ye=s.C,R=s.O,C=s.a,et=s.t,E=s.s,p=s.E,w=s.b,O=s.c,Z=s.T,L=s.m,ee=s.d,J=s.g,pe=s.e,he=s.f,te=s.h,ve=s.i,ye=s.j,ke=s.S,tt=s.k,nt=s.n,be=s.p,rt=s.R,it=s.o,ot=s.r,at=s.v,st=s.w,ct=s.x,ut=s.y,dt=s.A,lt=s.D,ft=s.z,K=s.N,ne=s.B,mt=s.F,gt=s.G,pt=s.H},function(s){Te=s.useScreenClass,ht=s.Spinner,vt=s.H3,q=s.SkeletonText,Pe=s.SkeletonTextHeading,yt=s.GridContainer,kt=s.Row,bt=s.Column,Tt=s.StandardTile,Pt=s.StandardTileImage,Et=s.AspectRatio,wt=s.StandardTileContents,It=s.StandardTileName,_t=s.StandardTilePrice,Ee=s.SkeletonTextLine,Ct=s.StandardTileFooter,St=s.ScreenClassProvider},function(s){Rt=s.ensureUserTestId},function(s){xt=s.a,Dt=s.i},function(s){Ot=s.createPoeAdapter,zt=s.onProductListView,Mt=s.onProductAddToCart,At=s.onProductClick},null,null,null,null,null,null],execute:(function(){function s(e,t,n){function r(c,u){var f;Object.defineProperty(c,"_zod",{value:c._zod??{},enumerable:!1}),(f=c._zod).traits??(f.traits=new Set),c._zod.traits.add(e),t(c,u);for(const m in a.prototype)m in c||Object.defineProperty(c,m,{value:a.prototype[m].bind(c)});c._zod.constr=a,c._zod.def=u}const i=n?.Parent??Object;class o extends i{}Object.defineProperty(o,"name",{value:e});function a(c){var u;const f=n?.Parent?new o:this;r(f,c),(u=f._zod).deferred??(u.deferred=[]);for(const m of f._zod.deferred)m();return f}return Object.defineProperty(a,"init",{value:r}),Object.defineProperty(a,Symbol.hasInstance,{value:c=>n?.Parent&&c instanceof n.Parent?!0:c?._zod?.traits?.has(e)}),Object.defineProperty(a,"name",{value:e}),a}class re extends Error{constructor(){super("Encountered Promise during synchronous parse. Use .parseAsync() instead.")}}const $t={};function H(e){return $t}function bn(e){const t=Object.values(e).filter(r=>typeof r=="number");return Object.entries(e).filter(([r,i])=>t.indexOf(+r)===-1).map(([r,i])=>i)}function Tn(e,t){return typeof t=="bigint"?t.toString():t}function we(e){return{get value(){{const t=e();return Object.defineProperty(this,"value",{value:t}),t}}}}function Lt(e){const t=e.startsWith("^")?1:0,n=e.endsWith("$")?e.length-1:e.length;return e.slice(t,n)}function S(e,t,n){Object.defineProperty(e,t,{get(){{const r=n();return e[t]=r,r}},set(r){Object.defineProperty(e,t,{value:r})},configurable:!0})}function Pn(e,t,n){Object.defineProperty(e,t,{value:n,writable:!0,enumerable:!0,configurable:!0})}function X(e){return JSON.stringify(e)}const Nt=Error.captureStackTrace?Error.captureStackTrace:(...e)=>{};function ie(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}const En=we(()=>{if(typeof navigator<"u"&&navigator?.userAgent?.includes("Cloudflare"))return!1;try{const e=Function;return new e(""),!0}catch{return!1}});function wn(e){if(ie(e)===!1)return!1;const t=e.constructor;if(t===void 0)return!0;const n=t.prototype;return!(ie(n)===!1||Object.prototype.hasOwnProperty.call(n,"isPrototypeOf")===!1)}const In=new Set(["string","number","symbol"]);function jt(e){return e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}
vendor: 7,935 bytes, lines 1-26
1function _n(e,t,n){const r=new e._zod.constr(t??e._zod.def);return(!t||n?.parent)&&(r._zod.parent=e),r}function N(e){return{}}function Cn(e){return Object.keys(e).filter(t=>e[t]._zod.optin==="optional"&&e[t]._zod.optout==="optional")}function Ie(e,t=0){for(let n=t;n<e.issues.length;n++)if(e.issues[n]?.continue!==!0)return!0;return!1}function B(e,t){return t.map(n=>{var r;return(r=n).path??(r.path=[]),n.path.unshift(e),n})}function oe(e){return typeof e=="string"?e:e?.message}function W(e,t,n){const r={...e,path:e.path??[]};if(!e.message){const i=oe(e.inst?._zod.def?.error?.(e))??oe(t?.error?.(e))??oe(n.customError?.(e))??oe(n.localeError?.(e))??"Invalid input";r.message=i}return delete r.inst,delete r.continue,t?.reportInput||delete r.input,r}const Gt=(e,t)=>{e.name="$ZodError",Object.defineProperty(e,"_zod",{value:e._zod,enumerable:!1}),Object.defineProperty(e,"issues",{value:t,enumerable:!1}),Object.defineProperty(e,"message",{get(){return JSON.stringify(t,Tn,2)},enumerable:!0}),Object.defineProperty(e,"toString",{value:()=>e.message,enumerable:!1})},Sn=s("$ZodError",Gt),ae=s("$ZodError",Gt,{Parent:Error}),Rn=(e=>(t,n,r,i)=>{const o=r?Object.assign(r,{async:!1}):{async:!1},a=t._zod.run({value:n,issues:[]},o);if(a instanceof Promise)throw new re;if(a.issues.length){const c=new(i?.Err??e)(a.issues.map(u=>W(u,o,H())));throw Nt(c,i?.callee),c}return a.value})(ae),xn=(e=>async(t,n,r,i)=>{const o=r?Object.assign(r,{async:!0}):{async:!0};let a=t._zod.run({value:n,issues:[]},o);if(a instanceof Promise&&(a=await a),a.issues.length){const c=new(i?.Err??e)(a.issues.map(u=>W(u,o,H())));throw Nt(c,i?.callee),c}return a.value})(ae),Vt=(e=>(t,n,r)=>{const i=r?{...r,async:!1}:{async:!1},o=t._zod.run({value:n,issues:[]},i);if(o instanceof Promise)throw new re;return o.issues.length?{success:!1,error:new(e??Sn)(o.issues.map(a=>W(a,i,H())))}:{success:!0,data:o.value}})(ae),Ut=(e=>async(t,n,r)=>{const i=r?Object.assign(r,{async:!0}):{async:!0};let o=t._zod.run({value:n,issues:[]},i);return o instanceof Promise&&(o=await o),o.issues.length?{success:!1,error:new e(o.issues.map(a=>W(a,i,H())))}:{success:!0,data:o.value}})(ae),Dn=e=>{const t=e?`[\\s\\S]{${e?.minimum??0},${e?.maximum??""}}`:"[\\s\\S]*";return new RegExp(`^${t}$`)};class On{constructor(t=[]){this.content=[],this.indent=0,this&&(this.args=t)}indented(t){this.indent+=1,t(this),this.indent-=1}write(t){if(typeof t=="function"){t(this,{execution:"sync"}),t(this,{execution:"async"});return}const r=t.split(`
2`).filter(a=>a),i=Math.min(...r.map(a=>a.length-a.trimStart().length)),o=r.map(a=>a.slice(i)).map(a=>" ".repeat(this.indent*2)+a);for(const a of o)this.content.push(a)}compile(){const t=Function,n=this?.args,i=[...(this?.content??[""]).map(o=>`  ${o}`)];return new t(...n,i.join(`
3`))}}const zn={major:4,minor:0,patch:0},z=s("$ZodType",(e,t)=>{var n;e??(e={}),e._zod.def=t,e._zod.bag=e._zod.bag||{},e._zod.version=zn;const r=[...e._zod.def.checks??[]];e._zod.traits.has("$ZodCheck")&&r.unshift(e);for(const i of r)for(const o of i._zod.onattach)o(e);if(r.length===0)(n=e._zod).deferred??(n.deferred=[]),e._zod.deferred?.push(()=>{e._zod.run=e._zod.parse});else{const i=(o,a,c)=>{let u=Ie(o),f;for(const m of a){if(m._zod.def.when){if(!m._zod.def.when(o))continue}else if(u)continue;const l=o.issues.length,g=m._zod.check(o);if(g instanceof Promise&&c?.async===!1)throw new re;if(f||g instanceof Promise)f=(f??Promise.resolve()).then(async()=>{await g,o.issues.length!==l&&(u||(u=Ie(o,l)))});else{if(o.issues.length===l)continue;u||(u=Ie(o,l))}}return f?f.then(()=>o):o};e._zod.run=(o,a)=>{const c=e._zod.parse(o,a);if(c instanceof Promise){if(a.async===!1)throw new re;return c.then(u=>i(u,r,a))}return i(c,r,a)}}e["~standard"]={validate:i=>{try{const o=Vt(e,i);return o.success?{value:o.data}:{issues:o.error?.issues}}catch{return Ut(e,i).then(a=>a.success?{value:a.data}:{issues:a.error?.issues})}},vendor:"zod",version:1}}),Mn=s("$ZodString",(e,t)=>{z.init(e,t),e._zod.pattern=[...e?._zod.bag?.patterns??[]].pop()??Dn(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}});function se(e,t,n){e.issues.length&&t.issues.push(...B(n,e.issues)),t.value[n]=e.value}function Ft(e,t,n,r){e.issues.length?r[n]===void 0?n in r?t.value[n]=void 0:t.value[n]=e.value:t.issues.push(...B(n,e.issues)):e.value===void 0?n in r&&(t.value[n]=void 0):t.value[n]=e.value}const An=s("$ZodObject",(e,t)=>{z.init(e,t);const n=we(()=>{const l=Object.keys(t.shape);for(const h of l)if(!(t.shape[h]instanceof z))throw new Error(`Invalid element at key "${h}": expected a Zod schema`);const g=Cn(t.shape);return{shape:t.shape,keys:l,keySet:new Set(l),numKeys:l.length,optionalKeys:new Set(g)}});S(e._zod,"propValues",()=>{const l=t.shape,g={};for(const h in l){const I=l[h]._zod;if(I.values){g[h]??(g[h]=new Set);for(const $ of I.values)g[h].add($)}}return g});const r=l=>{const g=new On(["shape","payload","ctx"]),h=n.value,I=b=>{const v=X(b);return`shape[${v}]._zod.run({ value: input[${v}], issues: [] }, ctx)`};g.write("const input = payload.value;");const $=Object.create(null);let Le=0;for(const b of h.keys)$[b]=`key_${Le++}`;g.write("const newResult = {}");for(const b of h.keys)if(h.optionalKeys.has(b)){const v=$[b];g.write(`const ${v} = ${I(b)};`);const y=X(b);g.write(`
4        if (${v}.issues.length) {
5          if (input[${y}] === undefined) {
6            if (${y} in input) {
7              newResult[${y}] = undefined;
8            }
9          } else {
10            payload.issues = payload.issues.concat(
11              ${v}.issues.map((iss) => ({
12                ...iss,
13                path: iss.path ? [${y}, ...iss.path] : [${y}],
14              }))
15            );
16          }
17        } else if (${v}.value === undefined) {
18          if (${y} in input) newResult[${y}] = undefined;
19        } else {
20          newResult[${y}] = ${v}.value;
21        }
22        `)}else{const v=$[b];g.write(`const ${v} = ${I(b)};`),g.write(`
23          if (${v}.issues.length) payload.issues = payload.issues.concat(${v}.issues.map(iss => ({
24            ...iss,
25            path: iss.path ? [${X(b)}, ...iss.path] : [${X(b)}]
26          })));`),g.write(`newResult[${X(b)}] = ${v}.value`)}g.write("payload.value = newResult;"),g.write("return payload;");const me=g.compile();return(b,v)=>me(l,b,v)};let i;const o=ie,a=!$t.jitless,u=a&&En.value,f=t.catchall;let m;e._zod.parse=(l,g)=>{m??(m=n.value);const h=l.value;if(!o(h))return l.issues.push({expected:"object",code:"invalid_type",input:h,inst:e}),l;const I=[];if(a&&u&&g?.async===!1&&g.jitless!==!0)i||(i=r(t.shape)),l=i(l,g);else{l.value={};const v=m.shape;for(const y of m.keys){const Y=v[y],ge=Y._zod.run({value:h[y],issues:[]},g),vn=Y._zod.optin==="optional"&&Y._zod.optout==="optional";ge instanceof Promise?I.push(ge.then(yn=>vn?Ft(yn,l,y,h):se(yn,l,y))):vn?Ft(ge,l,y,h):se(ge,l,y)}}if(!f)return I.length?Promise.all(I).then(()=>l):l;const $=[],Le=m.keySet,me=f._zod,b=me.def.type;for(const v of Object.keys(h)){if(Le.has(v))continue;if(b==="never"){$.push(v);continue}const y=me.run({value:h[v],issues:[]},g);y instanceof Promise?I.push(y.then(Y=>se(Y,l,v))):se(y,l,v)}return $.length&&l.issues.push({code:"unrecognized_keys",keys:$,input:h,inst:e}),I.length?Promise.all(I).then(()=>l):l}});function Zt(e,t,n,r){for(const i of e)if(i.issues.length===0)return t.value=i.value,t;return t.issues.push({code:"invalid_union",input:t.value,inst:n,errors:e.map(i=>i.issues.map(o=>W(o,r,H())))}),t}const Kt=s("$ZodUnion",(e,t)=>{z.init(e,t),S(e._zod,"optin",()=>t.options.some(n=>n._zod.optin==="optional")?"optional":void 0),S(e._zod,"optout",()=>t.options.some(n=>n._zod.optout==="optional")?"optional":void 0),S(e._zod,"values",()=>{if(t.options.every(n=>n._zod.values))return new Set(t.options.flatMap(n=>Array.from(n._zod.values)))}),S(e._zod,"pattern",()=>{if(t.options.every(n=>
26n._zod.pattern)){const n=t.options.map(r=>r._zod.pattern);return new RegExp(`^(${n.map(r=>Lt(r.source)).join("|")})$`)}}),e._zod.parse=(n,r)=>{let i=!1;const o=[];for(const a of t.options){const c=a._zod.run({value:n.value,issues:[]},r);if(c instanceof Promise)o.push(c),i=!0;else{if(c.issues.length===0)return c;o.push(c)}}return i?Promise.all(o).then(a=>Zt(a,n,e,r)):Zt(o,n,e,r)}}),$n=s("$ZodDiscriminatedUnion",(e,t)=>{Kt.init(e,t);const n=e._zod.parse;S(e._zod,"propValues",()=>{const i={};for(const o of t.options){const a=o._zod.propValues;if(!a||Object.keys(a).length===0)throw new Error(`Invalid discriminated union option at index "${t.options.indexOf(o)}"`);for(const[c,u]of Object.entries(a)){i[c]||(i[c]=new Set);for(const f of u)i[c].add(f)}}return i});const r=we(()=>{const i=t.options,o=new Map;for(const a of i){const c=a._zod.propValues[t.discriminator];if(!c||c.size===0)throw new Error(`Invalid discriminated union option at index "${t.options.indexOf(a)}"`);for(const u of c){if(o.has(u))throw new Error(`Duplicate discriminator value "${String(u)}"`);o.set(u,a)}}return o});e._zod.parse=(i,o)=>{const a=i.value;if(!ie(a))return i.issues.push({code:"invalid_type",expected:"object",input:a,inst:e}),i;const c=r.value.get(a?.[t.discriminator]);return c?c._zod.run(i,o):t.unionFallback?n(i,o):(i.issues.push({code:"invalid_union",errors:[],note:"No matching discriminator",input:a,path:[t.discriminator],inst:e}),i)}}),Ln=s("$ZodRecord",(e,t)=>{z.init(e,t),e._zod.parse=(n,r)=>{const i=n.value;if(!wn(i))return n.issues.push({expected:"record",code:"invalid_type",input:i,inst:e}),n;const o=[];if(t.keyType._zod.values){const a=t.keyType._zod.values;n.value={};for(const u of a)if(typeof u=="string"||typeof u=="number"||typeof u=="symbol"){const f=t.valueType._zod.run({value:i[u],issues:[]},r);f instanceof Promise?o.push(f.then(m=>{m.issues.length&&n.issues.push(...B(u,m.issues)),n.value[u]=m.value})):(f.issues.length&&n.issues.push(...B(u,f.issues)),n.value[u]=f.value)}let c;for(const u in i)a.has(u)||(c=c??[],c.push(u));c&&c.length>0&&n.issues.push({code:"unrecognized_keys",input:i,inst:e,keys:c})}else{n.value={};for(const a of Reflect.ownKeys(i)){if(a==="__proto__")continue;const c=t.keyType._zod.run({value:a,issues:[]},r);if(c instanceof Promise)throw new Error("Async schemas not supported in object keys currently");if(c.issues.length){n.issues.push({origin:"record",code:"invalid_key",issues:c.issues.map(f=>W(f,r,H())),input:a,path:[a],inst:e}),n.value[c.value]=c.value;continue}const u=t.valueType._zod.run({value:i[a],issues:[]},r);u instanceof Promise?o.push(u.then(f=>{f.issues.length&&n.issues.push(...B(a,f.issues)),n.value[c.value]=f.value})):(u.issues.length&&n.issues.push(...B(a,u.issues)),n.value[c.value]=u.value)}}return o.length?Promise.all(o).then(()=>n):n}}),Nn=s("$ZodEnum",(e,t)=>{z.init(e,t);const n=bn(t.entries);e._zod.values=new Set(n),e._zod.pattern=new RegExp(`^(${n.filter(r=>In.has(typeof r)).map(r=>typeof r=="string"?jt(r):r.toString()).join("|")})$`),e._zod.parse=(r,i)=>{const o=r.value;return e._zod.values.has(o)||r.issues.push({code:"invalid_value",values:n,input:o,inst:e}),r}}),jn=s("$ZodLiteral",(e,t)=>{z.init(e,t),e._zod.values=new Set(t.values),e._zod.pattern=new RegExp(`^(${t.values.map(n=>typeof n=="string"?jt(n):n?n.toString():String(n)).join("|")})$`),e._zod.parse=(n,r)=>{const i=n.value;return e._zod.values.has(i)||n.issues.push({code:"invalid_value",values:t.values,input:i,inst:e}),n}}),Gn=s("$ZodNullable",(e,t)=>{z.init(e,t),S(e._zod,"optin",()=>t.innerType._zod.optin),S(e._zod,"optout",()=>t.innerType._zod.optout),S(e._zod,"pattern",()=>{const n=t.innerType._zod.pattern;return n?new RegExp(`^(${Lt(n.source)}|null)$`):void 0}),S(e._zod,"values",()=>t.innerType._zod.values?new Set([...t.innerType._zod.values,null]):void 0),e._zod.parse=(n,r)=>n.value===null?n:t.innerType._zod.run(n,r)});function Vn(e,t){return new e({type:"string",...N()})}const j=s("ZodMiniType",(e,t)=>{if(!e._zod)throw new Error("Uninitialized schema in ZodMiniType.");z.init(e,t),e.def=t,e.parse=(n,r)=>Rn(e,n,r,{callee:e.parse}),e.safeParse=(n,r)=>Vt(e,n,r),e.parseAsync=async(n,r)=>xn(e,n,r,{callee:e.parseAsync}),e.safeParseAsync=async(n,r)=>Ut(e,n,r),e.check=(...n)=>e.clone({...t,checks:[...t.checks??[],...n.map(r=>typeof r=="function"?{_zod:{check:r,def:{check:"custom"},onattach:[]}}:r)]}),e.clone=(n,r)=>_n(e,n,r),e.brand=()=>e,e.register=((n,r)=>(n.add(e,r),e))}),Un=s("ZodMiniString",(e,t)=>{Mn.init(e,t),j.init(e,t)});function F(e){return Vn(Un)}const Fn=s("ZodMiniObject",(e,t)=>{An.init(e,t),j.init(e,t),S(e,"shape",()=>t.shape)});function M(e,t){const n={type:"object",get shape(){return Pn(this,"shape",{...e}),this.shape},...N()};return new Fn(n)}const Zn=s("ZodMiniUnion",(e,t)=>{Kt.init(e,t),j.init(e,t)});function Kn(e,t){return new Zn({type:"union",options:e,...N()})}const Hn=s("ZodMiniDiscriminatedUnion",(e,t)=>{$n.init(e,t),j.init(e,t)});function Bn(e,t,n){return new Hn({type:"union",options:t,discriminator:e,...N()})}const Wn=s("ZodMiniRecord",(e,t)=>{Ln.init(e,t),j.init(e,t)});function Qn(e,t,n){return new Wn({type:"record",keyType:e,valueType:t,...N()})}const Ht=s("ZodMiniEnum",(e,t)=>{Nn.init(e,t),j.init(e,t)});function ce(e,t){const n=Array.isArray(e)?Object.fromEntries(e.map(r=>[r,r])):e;return new Ht({type:"enum",entries:n,...N()})}function Jn(e,t){return new Ht({type:"enum",entries:e,...N()})}const qn=s("ZodMiniLiteral",(e,t)=>{jn.init(e,t),j.init(e,t)});function ue(e,t){return new qn({type:"literal",values:Array.isArray(e)?e:[e],...N()})}const Xn=s("ZodMiniNullable",(e,t)=>{Gn.init(e,t),j.init(e,t)});function Bt(e){return new Xn({type:"nullable",innerType:e})}var _e=function(e,t){return _e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(n,r){n.__proto__=r}||function(n,r){for(var i in r)Object.prototype.hasOwnProperty.call(r,i)&&(n[i]=r[i])},_e(e,t)};function G(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");function n(){this.constructor=e}
26_e(e,t),e.prototype=t===null?Object.create(t):(n.prototype=t.prototype,new n)}typeof SuppressedError=="function"&&SuppressedError;var de,V=(function(){function e(){}return e.listenToEvent=function(t,n){var r=function(o){n(o.detail)};if(window.addEventListener(t,r),window.pdpEventsHistory){var i=window.pdpEventsHistory.get(t);i&&n(i)}return function(){window.removeEventListener(t,r)}},e.sendEvent=function(t,n){if(!n.validatePayload())return!1;window.pdpEventsHistory||(window.pdpEventsHistory=new Map),window.pdpEventsHistory.set(t,n);var r=new CustomEvent(t,{detail:n});return window.dispatchEvent(r),!0},e})();(function(e){e.USER="USER",e.URL_PARAMETERS="URL_PARAMETERS",e.RANCH="RANCH",e.INITIAL="INITIAL"})(de||(de={}));var Ce,Yn=Qn(F(),F()),er=ce(de),tr=M({combination:Yn,source:er}),P=(function(){function e(t){this._payload=t,this._timestamp=Date.now()}return Object.defineProperty(e.prototype,"payload",{get:function(){return this._payload},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"timestamp",{get:function(){return this._timestamp},enumerable:!1,configurable:!0}),e.prototype.validatePayload=function(){return this.schema.safeParse(this.payload).success},e.buildEventName=function(t,n){return"".concat(t,":").concat(n)},e})(),Se=(function(e){function t(n){var r=e.call(this,n)||this;return r.schema=tr,r}return G(t,e),Object.defineProperty(t.prototype,"eventType",{get:function(){return t.eventType},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"version",{get:function(){return t.version},enumerable:!1,configurable:!0}),Object.defineProperty(t,"eventName",{get:function(){return P.buildEventName(t.eventType,t.version)},enumerable:!1,configurable:!0}),t.eventType="pdp.optionsChanged",t.version="1.0",t})(P),nr=ce(["IncompatibleSelection","ErrorGeneratingScenes"]),rr=M({reason:nr}),Re=(function(e){function t(n){var r=e.call(this,n)||this;return r.schema=rr,r}return G(t,e),Object.defineProperty(t.prototype,"eventType",{get:function(){return t.eventType},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"version",{get:function(){return t.version},enumerable:!1,configurable:!0}),Object.defineProperty(t,"eventName",{get:function(){return P.buildEventName(t.eventType,t.version)},enumerable:!1,configurable:!0}),t.eventType="pdp.currentDocumentInvalidated",t.version="1.1",t})(P);(function(e){e.VALID="VALID",e.DISABLED="DISABLED",e.BLOCKING_USER="BLOCKING_USER"})(Ce||(Ce={}));for(var ir=Jn(Ce),or=M({ctaType:F(),ctaStatus:ir}),xe=(function(e){function t(n){var r=e.call(this,n)||this;return r.schema=or,r}return G(t,e),Object.defineProperty(t.prototype,"eventType",{get:function(){return t.eventType},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"version",{get:function(){return t.version},enumerable:!1,configurable:!0}),Object.defineProperty(t,"eventName",{get:function(){return P.buildEventName(t.eventType,t.version)},enumerable:!1,configurable:!0}),t.eventType="pdp.ctaClicked",t.version="1.0",t})(P),ar=M({isSuccessful:ue(!1)}),sr=M({isSuccessful:ue(!0),productName:F(),goToCartLink:Bt(F())}),cr=Kn([ar,sr]),De=(function(e){function t(n){var r=e.call(this,n)||this;return r.schema=cr,r}return G(t,e),Object.defineProperty(t.prototype,"eventType",{get:function(){return t.eventType},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"version",{get:function(){return t.version},enumerable:!1,configurable:!0}),Object.defineProperty(t,"eventName",{get:function(){return P.buildEventName(t.eventType,t.version)},enumerable:!1,configurable:!0}),t.eventType="pdp.itemAddedToCart",t.version="1.0",t})(P),Wt=ce(["QuantitySizes","OptionSelection"]),ur=M({result:ue("valid"),reason:Wt}),dr=M({result:ue("invalid"),reason:Wt,reasonMessage:F()}),lr=Bn("result",[ur,dr]),Oe=(function(e){function t(n){var r=e.call(this,n)||this;return r.schema=lr,r}return G(t,e),Object.defineProperty(t.prototype,"eventType",{get:function(){return t.eventType},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"version",{get:function(){return t.version},enumerable:!1,configurable:!0}),Object.defineProperty(t,"eventName",{get:function(){return P.buildEventName(t.eventType,t.version)}
26,enumerable:!1,configurable:!0}),t.eventType="pdp.selectionInvalidated",t.version="0.0",t})(P),fr=M({designPersonalizationContextId:Bt(F())}),ze=(function(e){function t(n){var r=e.call(this,n)||this;return r.schema=fr,r}return G(t,e),Object.defineProperty(t.prototype,"eventType",{get:function(){return t.eventType},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"version",{get:function(){return t.version},enumerable:!1,configurable:!0}),Object.defineProperty(t,"eventName",{get:function(){return P.buildEventName(t.eventType,t.version)},enumerable:!1,configurable:!0}),t.eventType="pdp.designPersonalizationContextIdUpdated",t.version="1.0",t})(P),mr=ce(["FailedToLoadPreview"]),gr=M({reason:mr}),Me=(function(e){function t(n){var r=e.call(this,n)||this;return r.schema=gr,r}return G(t,e),Object.defineProperty(t.prototype,"eventType",{get:function(){return t.eventType},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"version",{get:function(){return t.version},enumerable:!1,configurable:!0}),Object.defineProperty(t,"eventName",{get:function(){return P.buildEventName(t.eventType,t.version)},enumerable:!1,configurable:!0}),t.eventType="pdp.brandkitFailed",t.version="1.0",t})(P),pr=(function(e){function t(){return e!==null&&e.apply(this,arguments)||this}return G(t,e),t.sendOptionsChangedEventV1=function(n){var r=new Se(n);return V.sendEvent(Se.eventName,r)},t.listenToOptionsChangedEventV1=function(n){return t.listenToEvent(Se.eventName,(function(r){n(r.payload)}))},t.sendCtaClickedEventV1=function(n){var r=new xe(n);return V.sendEvent(xe.eventName,r)},t.listenToCtaClickedEvent=function(n){return t.listenToEvent(xe.eventName,(function(r){return n(r.payload)}))},t.sendCurrentDocumentInvalidatedEventV1=function(n){var r=new Re(n);return V.sendEvent(Re.eventName,r)},t.listenToCurrentDocumentInvalidatedEventV1=function(n){return t.listenToEvent(Re.eventName,(function(r){n(r.payload)}))},t.sendItemAddedToCartEventV1=function(n){var r=new De(n);return V.sendEvent(De.eventName,r)},t.listenToItemAddedToCartEventV1=function(n){return t.listenToEvent(De.eventName,(function(r){n(r.payload)}))},t.sendSelectionValidatedEventV0=function(n){var r=new Oe(n);return V.sendEvent(Oe.eventName,r)},t.listenToSelectionValidatedEventV0=function(n){return t.listenToEvent(Oe.eventName,(function(r){n(r.payload)}))},t.sendDesignPersonalizationContextIdUpdatedEventV1=function(n){var r=new ze(n);return V.sendEvent(ze.eventName,r)},t.listenToDesignPersonalizationContextIdUpdatedEventV1=function(n){return t.listenToEvent(ze.eventName,(function(r){n(r.payload)}))},t.sendBrandkitFailedEventV1=function(n){var r=new Me(n);return V.sendEvent(Me.eventName,r)},t.listenToBrandkitFailedEventV1=function(n){return t.listenToEvent(Me.eventName,(function(r){n(r.payload)}))},t})(V),k=[],Ae=0;Ae<256;++Ae)k.push((Ae+256).toString(16).slice(1));function hr(e,t=0){return(k[e[t+0]]+k[e[t+1]]+k[e[t+2]]+k[e[t+3]]+"-"+k[e[t+4]]+k[e[t+5]]+"-"+k[e[t+6]]+k[e[t+7]]+"-"+k[e[t+8]]+k[e[t+9]]+"-"+k[e[t+10]]+k[e[t+11]]+k[e[t+12]]+k[e[t+13]]+k[e[t+14]]+k[e[t+15]]).toLowerCase()}var le,vr=new Uint8Array(16);function yr(){if(!le&&(le=typeof crypto<"u"&&crypto.getRandomValues&&crypto.getRandomValues.bind(crypto),!le))throw new Error("crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported");return le(vr)}var kr=typeof crypto<"u"&&crypto.randomUUID&&crypto.randomUUID.bind(crypto),Qt={randomUUID:kr};function br(e,t,n){if(Qt.randomUUID&&!e)return Qt.randomUUID();e=e||{};var r=e.random||(e.rng||yr)();return r[6]=r[6]&15|64,r[8]=r[8]&63|128,hr(r)}const Tr="https://placement-offer-engine.personalization.vpsvc.com/api/v7/placements";var Jt;(function(e){e.none="none",e.lastModified="lastModified",e.lastOrdered="lastOrdered",e.mostFrequentlyOrdered="mostFrequentlyOrdered",e.highestRevenue="highestRevenue",e.fromCart="fromCart",e.externalAsset="externalAsset",e.externalLogo="externalLogo",e.brandId="brandId",e.brandKitLastModified="brandKitLastModified",e.brandKitPrimary="brandKitPrimary",e.externallyConfigured="externallyConfigured"})(Jt||(Jt={}));async function Pr(e){const t=wr(e.pageContext,e.product?.mpvId),n=Er(t,e.customerContext,e.timeZone,e.requestor,e.product,e.contentSources,e.encodedPricingContext,e.options?.imageWith,e.marketingMessageOverrides,e.polyCategory);return await Ir(n,t,e.correlationId,e.authorizationHeader,e.options?.cacheOptions)}function Er(e,t,n,r,i,o,a,c,u,f){const m={selector:e,productId:i?.mpvId,productKey:i?.coreProduct?.key,productVersion:i?.coreProduct?.version,productOptions:i?.coreProduct?.options,productQuantity:i?.quantity,documentUrl:o?.documentUrl,albelliDocId:o?.albelliDocId,uploadUrl:o?.imageUrl,brandId:o?.brandId,imageWidth:c||500,pricingContext:a,customerId:t.customerId,userTestId:t.userTestId,customerConsent:t.customerConsent,marketingMessageId:u?.marketingMessageId,offerGroupTitle:u?.offerGroupTitle,de
26signSourceOption:u?.designSourceOption,polyCategory:f,timeZone:n,requestor:r};return`${Tr}?${Je.stringify(m,{sort:Sr})}`}function wr(e,t){return t!==void 0?`/${e.tenant}/${e.locale}/${e.page}/${t}`:`/${e.tenant}/${e.locale}/${e.page}`}async function Ir(e,t,n,r,i){const o=n||_r(),a={"x-correlation-id":o,...i&&{"Cache-Control":i},...r&&{Authorization:r}},c=await fetch(e,{headers:a});if(!c.ok)throw new qe(await Cr(c),c.status,o,t);return{...await c.json(),correlationId:o}}function _r(){try{return br()}catch{return Math.random().toString(36)}}async function Cr(e){if(typeof e.text=="function"){const t=await e.text();if(t)return t}return e.statusText}function Sr(e,t){return e.localeCompare(t)}var qt;(function(e){e.Grid="grid",e.Carousel="carousel"})(qt||(qt={}));var T;(function(e){e.AddToCart="AddToCart",e.EditInMiniStudio="EditInMiniStudio",e.EditInStudio="EditInStudio",e.GoToProductPage="GoToProductPage",e.GoToGallery="GoToGallery"})(T||(T={}));var $e;(function(e){e.Image="Image",e.Title="Title",e.Description="Description",e.Price="Price",e.Ratings="Ratings"})($e||($e={}));var Xt;(function(e){e.Image="Image",e.DocumentMatching="DocumentMatching",e.NonDesignable="NonDesignable",e.SmartAssets="SmartAssets"})(Xt||(Xt={}));const Rr=e=>{const t=Xe(),n=Ue(()=>t.getVariation(e.experimentKey),[e.experimentKey]);return n===e.variation||n===null&&e.default===!0?d(_,{children:e.children}):d(_,{})},xr=e=>({Experience:t=>d(Rr,{experimentKey:e,variation:t.variation,default:t.default,children:t.children})});var Dr=function(){var e=(typeof window<"u"||void 0)&&window.location&&window.location.hostname;if(!e||e.length===0)throw new Error("Hostname could not be determined for the current document.");return e},Or=function(){var e=(typeof window<"u"||void 0)&&window.location&&window.location.pathname;return e||"/"},zr=function(e){if(!e||e.length===0)throw new Error("Domain must be specified");var t=e.split(".");if(t.length<2)throw new Error("Domain '"+e+"' does hot have the right format.");var n=t.pop();return n},Yt="pens.com",Mr="en-US",en={ie:"en-IE",us:"en-US",ca:"en-CA",at:"de-AT","be-fr":"fr-BE","be-nl":"nl-BE","ch-de":"de-CH","ch-fr":"fr-CH","ch-it":"it-CH",de:"de-DE",dk:"da-DK",es:"es-ES",fi:"fi-FI",fr:"fr-FR",it:"it-IT",nl:"nl-NL",pt:"pt-PT",se:"sv-SE",uk:"en-GB",au:"en-AU",nz:"en-NZ"};function Ar(e){var t=e.toLowerCase().replace(/\.$/,"");return t===Yt||t.endsWith("."+Yt)}function $r(e){var t=e.startsWith("/")?e.slice(1):e;return t.split("/")[0].split(/[?#;]/)[0].toLowerCase()}function Lr(e){var t=$r(e);return Object.prototype.hasOwnProperty.call(en,t)?en[t]:Mr}function Nr(e){return Lr(e).split("-")[1]}var jr=function(e,t){if(e==="localhost")return"IE";if(Ar(e))return Nr(t);var n=zr(e);switch(n.toLowerCase()){case"pt":return"PT";case"ie":return"IE";case"es":return"ES";case"in":return"IN";case"jp":return"JP";case"com":case"us":return"US";case"fr":return"FR";case"it":return"IT";case"uk":return"GB";case"de":return"DE";case"nl":return"NL";case"dk":return"DK";case"se":return"SE";case"at":return"AT";case"no":return"NO";case"fi":return"FI";case"be":return"BE";case"sg":return"SG";case"nz":return"NZ";case"au":return"AU";case"ca":return"CA";case"ch":return"CH"}throw new Error("Unknown country for host "+e+" and path "+t)},tn=function(){var e=Dr(),t=Or();return jr(e,t)},A;(function(e){e[e.None=0]="None",e[e.GDPR=1]="GDPR",e[e.CCPA=2]="CCPA"})(A||(A={}));var Gr={functional:!0,advertising:!1,sessionReplay:!1,dataSale:!0},nn={functional:!0,advertising:!0,sessionReplay:!0,dataSale:!0},Vr={ie:{functional:!1},pt:{functional:!1},no:{functional:!1}},fe=function(){return fe=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++){t=arguments[n];for(var i in t)Object.prototype.hasOwnProperty.call(t,i)&&(e[i]=t[i])}return e},fe.apply(this,arguments)};function Ur(e){return e?(e=e.toLowerCase(),Dt.isEuMember(e)||e==="ch"||e==="no"||e==="gb"):!1}function Fr(){var e;try{e=tn()}catch{return A.GDPR}return e?(e=e.toLowerCase(),e==="us"?A.CCPA:Ur(e)?A.GDPR:A.None):A.None}function Zr(){var e=xt.get("tracking-preferences");return e?JSON.parse(e):{}}function rn(e){var t,n;return e.version===4?(n=(t=e.custom)===null||t===void 0?void 0:t.datasale)!==null&&n!==void 0?n:!0:!(e.destinations&&e.destinations.All===!0&&e.destinations["Facebook Pixel"]===!1)}function Kr(e,t){t===void 0&&(t=Vr);var n;try{n=tn().toLowerCase()}catch{return e}if(t&&Object.keys(t).includes(n)){var r=Object(e);
26return Object.keys(t[n]).forEach(function(i){r[i]=Object(t[n])[i]}),r}return e}function Hr(){var e=Fr(),t=Zr();if(e===A.None)return{hasConsent:!1,categories:nn};if(e===A.CCPA)return{hasConsent:!1,categories:fe(fe({},nn),{dataSale:rn(t)})};if(t.custom){var n=t.custom,r=n.functional,i=n.advertising,o=n.sessionreplay,a={hasConsent:t.consent!==!1,categories:{functional:r??!0,advertising:i??!1,sessionReplay:o??!1,dataSale:rn(t)}};return a}return{hasConsent:!1,categories:Kr(Gr)}}var on;(function(e){e.none="none",e.lastModified="lastModified",e.lastOrdered="lastOrdered",e.mostFrequentlyOrdered="mostFrequentlyOrdered",e.highestRevenue="highestRevenue",e.fromCart="fromCart",e.externalAsset="externalAsset",e.externalLogo="externalLogo",e.brandId="brandId",e.brandKitLastModified="brandKitLastModified",e.brandKitPrimary="brandKitPrimary",e.externallyConfigured="externallyConfigured"})(on||(on={}));class an{async fetchProductRecommendations(t){const n=ei(),r=ti(n),i=ni(n),o=Intl.DateTimeFormat().resolvedOptions().timeZone,a=await Pr({pageContext:{locale:t.locale,tenant:t.tenant,page:t.page},customerContext:{customerId:t.customerId,userTestId:r,customerConsent:i||!1},authorizationHeader:t.authorizationHeader,timeZone:o,correlationId:n,requestor:"recommendations-stack",product:t.product,contentSources:t.contentSources,encodedPricingContext:t.pricingContext,marketingMessageOverrides:t.marketingMessageOverrides,polyCategory:t.polyCategory,options:{cacheOptions:t.options?.cache,imageWith:t.options?.imageWidth}});return{recommendations:sn(a),recommendationsResponse:a}}}function sn(e){const t={offersGroups:[],disabled:e.disabled||!1};return e.offersGroups&&e.offersGroups.forEach(n=>{try{Br(n),t.offersGroups.push({trackingId:n.trackingId,displayConfiguration:n.displayConfiguration,actions:Qr(n),fields:Jr(n),offers:Xr(n.offers,n.offerTypes,n.trackingId)})}catch(r){U("Error processing offer group",{contextData:{offerGroup:n},error:r})}}),t}function Br(e){if(e.offerTypes.some(t=>t.actions.includes(T.GoToProductPage))&&e.offerTypes.some(t=>t.actions.includes(T.GoToGallery)))throw new Error("invalid actions: GoToProductPage and GoToGallery are mutually exclusive")}function Wr(e,t){if(t.some(n=>n.actions.includes(T.GoToProductPage))||t.some(n=>n.actions.includes(T.EditInMiniStudio)||n.actions.includes(T.EditInStudio)))return e.productUrl;if(t.some(n=>n.actions.includes(T.GoToGallery)))return e.galleryUrl||e.productUrl}function Qr(e){const t={DocumentMatching:void 0,Image:void 0,NonDesignable:void 0,SmartAssets:void 0};return e.offerTypes.some(n=>n.actions.includes(T.AddToCart))?e.offerTypes.some(n=>n.actions.includes(T.EditInMiniStudio)||n.actions.includes(T.EditInStudio))?t[C.DocumentMatching]=R.EditUpdateInStudioAddToCart:t[C.DocumentMatching]=R.AddToCart:e.offerTypes.some(n=>n.actions.includes(T.EditInMiniStudio)||n.actions.includes(T.EditInStudio))&&(t[C.DocumentMatching]=R.EditInStudio),e.offerTypes.some(n=>n.actions.includes(T.GoToGallery))?(t[C.Image]=R.GoToGallery,t[C.SmartAssets]=R.GoToGallery):e.offerTypes.some(n=>n.actions.includes(T.GoToProductPage))&&(t[C.Image]=R.GoToProductPage,t[C.SmartAssets]=R.GoToProductPage),e.offerTypes.some(n=>n.actions.includes(T.AddToCart))?t[C.NonDesignable]=R.AddToCart:t[C.NonDesignable]=R.GoToProductPage,t}function Jr(e){const t={DocumentMatching:void 0,Image:void 0,NonDesignable:void 0,SmartAssets:void 0};return e.offerTypes.forEach(n=>{t[n.id]=n.fields}),t}function qr(e){return{currency:e.currency,fractionDigits:e.fractionDigits,availablePrices:e.availableQuantities.some(t=>t.quantity===e.default.quantity)?e.availableQuantities:[e.default]}}function Xr(e,t,n){return e.filter(r=>{try{return Yr(r,t),!0}catch(i){return U("Error validating offer",{contextData:{offer:r},error:i}),!1}}).map(r=>({title:r.title,description:r.description,offerType:r.offerType,imageUrl:r.imageUrl,mpvId:r.productId,productKey:r.coreProductId,productVersion:r.coreProductVersion,productOptions:r.selectedAttributes,selectableOptions:r.selectableOptions,localizedOptions:r.localizedOptions,quantity:r.merchandisingQuantity?.default.quantity||1,prices:r.merchandisingQuantity&&qr(r.merchandisingQuantity),categories:r.categories?.map(o=>new Ye(o.key)),hasQuantitySelectionPage:r.hasQuantitySelectionPage,configureUrl:Wr(r,t),documentUrl:r.documentRealizationUrl,sourceDocumentUrl:r.sourceDocumentUrl,studioUrl:r.studioUrl,trackingId:r.trackingId,offerGroupTrackingId:n,isAccessory:!1,usesPlaceholderCopy:r.usesPlaceholderCopy}))}function Yr(e,t){if(ri(e,t)&&(!e.merchandisingQuantity?.default.quantity||e.merchandisingQuantity.default.quantity<=0))throw new Error("Invalid quantity");if(e.offerType===C.DocumentMatching&&!e.documentRealizationUrl)throw new Error("Document matching offer missing document realization url")}function ei(){return crypto.randomUUID()}function ti(e){try{return Rt()}catch(t){return U("There was an error getting user test id",{contextData:{correlationId:e},error:t}),""}}function ni(e){try{return Hr().categories.functional}catch(t){return U("There was an error getting user consent preferences",{contextData:{correlationId:e},error:t}),!1}}function ri(e,t){return!!t.find(n=>n.id===e.offerType)?.fields.find(n=>n===$e.Price)}function ii(e){const[t,n]=x(!1),[r,i]=x(!1),o=Fe(()=>{!t&&e.experimentInfo&&(et(e.experimentInfo.experiment.key,e.experimentInfo.variation.key),n(!0))},[JSON.stringify(e.experimentInfo),t]);return D(()=>{const a=E(e.page,p.ProductListViewed,o),c=E(e.page,p.DisabledRecommendations,o),u=E(e.page,p.EmptyProductListViewed,o);return i(!0),()=>{w(p.ProductListViewed,a),w(p.DisabledRecommendations,c),w(p.EmptyProductListViewed,u)}},[o,e.page]),r?e.children:d(_,{})}class oi{trackingEmitter;pageTrackingDetails;constructor(t,n){this.trackingEmitter=t,this.pageTrackingDetails=n}trackRecommendationsErrorOccurred(t,n,r){O(()=>{const i=ai(this.pageTrackingDetails,t,n,r);this.trackingEmitter.emitEvent(Z.RecommendationsErrorOccurred,i)})}}const ai=(e,t,n,r)=>({pageStage:e.pageStage,pageSection:e.pageSection,pageName:e.pageName,label:"Recommendation Component",list_id:"Recommendation Component",route:"recommendations",tenant:t,correlationId:ee(n)?.correlationId,selector:ee(n)?.selector,error:n.message,screenClass:r,recommendationsMetadata:L(void 0)});class si{recommendationsResponse;defaultRecommendations;pageTrackingDetails;fetchError;marketingMessageTrackingDetails;constructor(t,n,r,i,o){this.recommendationsResponse=t,this.fetchError=o,this.defaultRecommendations=n,this.pageTrackingDetails=r,this.marketingMessageTrackingDetails=i}buildProductListViewedTrackingEvent(t,n,r,i,o,a,c){const u=this.findOfferGroup(n).displayConfiguration;return{pageStage:this.pageTrackingDetails.pageStage,pageSection:this.pageTrackingDetails.pageSection,pageName:this.pageTrackingDetails.pageName,label:"Recommendation Component",list_id:J(this.recommendationsResponse.trackingKey),route:"recommendations",is_default:this.defaultRecommendations,error:this.fetchError?.message,tenant:t,products:this.getProductList(n,r,o),display_configuration:{...u,minOffersToDisplay:u.minOffersToDisplay||void 0}
26,...this.buildOfferGroupDetails(n),...this.buildPlacementDetails(),...this.buildExperimentDetails(),...this.buildMarketingMessageTrackingDetails(),screenClass:i,discardReason:a?"MinOffersToDisplay":void 0,recommendationsMetadata:L(c)}}buildEmptyProductListViewedTrackingEvent(t,n,r,i,o){const a=this.findOfferGroup(n).displayConfiguration;return{pageStage:this.pageTrackingDetails.pageStage,pageSection:this.pageTrackingDetails.pageSection,pageName:this.pageTrackingDetails.pageName,label:"Recommendation Component",list_id:J(this.recommendationsResponse.trackingKey),route:"recommendations",is_default:this.defaultRecommendations,error:this.fetchError?.message,tenant:t,products:[],display_configuration:{...a,minOffersToDisplay:a.minOffersToDisplay||void 0},...this.buildOfferGroupDetails(n),...this.buildPlacementDetails(),...this.buildExperimentDetails(),...this.buildMarketingMessageTrackingDetails(),screenClass:r,discardReason:i?"MinOffersToDisplay":void 0,recommendationsMetadata:L(o)}}buildProductAddedTrackingEvent(t,n,r,i){const o=this.findOffer(n.trackingId,n.offerGroupTrackingId);return{pageStage:this.pageTrackingDetails.pageStage,pageSection:this.pageTrackingDetails.pageSection,pageName:this.pageTrackingDetails.pageName,label:this.getLabel(i),list_id:J(this.recommendationsResponse.trackingKey),route:"recommendations",...i&&{category:"Enhanced Ecommerce"},tenant:t,product_id:n.mpvId,name:n.title,core_product_id:n.productKey,core_product_version:n.productVersion,variant:te(n.productOptions),offersGroups:this.offerGroupImpressions(),offers_group_tracking_id:n.offerGroupTrackingId,eventDetail:`${o.rank}_${n.mpvId}`,...this.buildPlacementDetails(),...this.buildExperimentDetails(),...this.adaptOfferDetails(n),...he(n,r,o.sceneId),...pe(n),...this.buildMarketingMessageTrackingDetails(),recommendationsMetadata:L(i)}}buildProductClickedTrackingEvent(t,n,r,i){const o=this.findOfferGroup(n.offerGroupTrackingId),a=this.findOffer(n.trackingId,n.offerGroupTrackingId);return{pageStage:this.pageTrackingDetails.pageStage,pageSection:this.pageTrackingDetails.pageSection,pageName:this.pageTrackingDetails.pageName,label:this.getLabelFor(r),route:"recommendations",list_id:J(this.recommendationsResponse.trackingKey),list_section_id:this.computeListSectionId(o.offerTypes,o.rank),tenant:t,product_id:n.mpvId,name:n.title,core_product_id:n.productKey,core_product_version:n.productVersion,variant:te(n.productOptions),offersGroups:this.offerGroupImpressions(),offers_group_tracking_id:n.offerGroupTrackingId,eventDetail:`${a.rank}_${n.mpvId}`,...this.buildPlacementDetails(),...this.buildExperimentDetails(),...this.adaptOfferDetails(n),...he(n,void 0,a.sceneId),...pe(n),...this.buildMarketingMessageTrackingDetails(),recommendationsMetadata:L(i)}}buildAddToCartInteractionTimeTrackingEvent(t){return{pageStage:this.pageTrackingDetails.pageStage,pageSection:this.pageTrackingDetails.pageSection,pageName:this.pageTrackingDetails.pageName,eventName:"tile add to basket",timing:t}}buildFlyoutViewedTrackingEvent(t,n){return{pageStage:this.pageTrackingDetails.pageStage,pageSection:this.pageTrackingDetails.pageSection,pageName:this.pageTrackingDetails.pageName,label:"Recommendations Reviews Viewed",product_id:t.mpvId,core_product_id:t.productKey,recommendationsMetadata:L(n)}}buildFlyoutClosedTrackingEvent(t,n){return{pageStage:this.pageTrackingDetails.pageStage,pageSection:this.pageTrackingDetails.pageSection,pageName:this.pageTrackingDetails.pageName,label:"Recommendations Reviews Viewed",product_id:t.mpvId,core_product_id:t.productKey,recommendationsMetadata:L(n)}}getProductList(t,n,r){return n.map((i,o)=>{const a=this.findOffer(i.trackingId,t);return{product_id:i.mpvId,name:i.title,core_product_id:i.productKey,core_product_version:i.productVersion,variant:te(i.productOptions),position:o+1,offer_type:i.offerType,offer_tracking_id:a.trackingId,model_rank:a.modelRank,model_score:a.modelScore,matching_score:a.matchingScore,doc_id:i.sourceDocumentUrl,scene_id:a.sceneId,list_section_id:`set_${r}`}})}offerGroupImpressions(){return this.recommendationsResponse.offersGroups.map(t=>{const n=this.findOfferGroup(t.trackingId);return{tracking_id:n.trackingId,rank:n.rank,impressions:t.offers.map(i=>i.productId)}})}buildPlacementDetails(){return{placement_id:this.recommendationsResponse.id,placement_version:this.recommendationsResponse.version,placement_tracking_id:this.recommendationsResponse.trackingId,selector:this.recommendationsResponse.selector,model_id:this.recommendationsResponse.model?.id,model_version:this.recommendationsResponse.model?.version,correlationId:this.recommendationsResponse.correlationId}}
26buildOfferGroupDetails(t){const n=this.findOfferGroup(t);return{offers_group_tracking_id:n.trackingId,rank:n.rank,offer_type:this.computeOfferTypes(n.offerTypes),product_type:n.itemType}}computeListSectionId(t,n){return`${this.computeOfferTypes(t)}-${n}`}computeOfferTypes=t=>t.map(n=>n.id).join("-");findOfferGroup(t){const n=this.recommendationsResponse.offersGroups.find(r=>r.trackingId===t);if(!n)throw new Error(`cannot find offer group with tracking ID ${t} in POE's response. POE tracking id is ${this.recommendationsResponse.trackingId}.`);return n}findOffer(t,n){const i=this.findOfferGroup(n).offers.find(o=>o.trackingId===t);if(!i)throw new Error(`cannot find offer with tracking ID ${t} in POE's response. POE tracking id is ${this.recommendationsResponse.trackingId}.`);return i}buildExperimentDetails(){return{experiment_key:this.recommendationsResponse.experimentInfo?.experiment.key,experiment_variation_key:this.recommendationsResponse.experimentInfo?.variation.key}}buildMarketingMessageTrackingDetails(){return this.marketingMessageTrackingDetails?.marketingMessageId?{marketingMessageId:this.marketingMessageTrackingDetails?.marketingMessageId,contentfulId:this.marketingMessageTrackingDetails?.contentfulId}:{}}adaptOfferDetails(t){const n=this.findOffer(t.trackingId,t.offerGroupTrackingId);return{offer_tracking_id:n.trackingId,model_rank:n.modelRank,model_score:n.modelScore,matching_score:n.matchingScore,offer_type:t.offerType}}getLabel(t){return t?`Product Added:${t}`:"Recommendations page"}getLabelFor(t){return`Recommendations Product ${t} Clicked`}}function cn(e){if(e)return{currency:e.currency,availablePrices:e.availablePrices.map(t=>({quantity:t.quantity,listPrice:t.listPrice.untaxed,discountedPrice:t.discountedPrice.untaxed}))}}class ci{trackingEmitter;eventBuilder;adaptedResponse;urlId;page;marketingMessage;constructor(t,n,r,i,o,a,c,u){this.trackingEmitter=t,this.eventBuilder=new si(n,r,i,c,u),this.adaptedResponse=Ot().adaptResponse(n),this.urlId=o,this.page=a,this.marketingMessage=c}trackProductListViewed(t,n,r,i,o,a,c){O(()=>{const u=this.adaptedResponse.placement.offersGroups.findIndex(l=>l.trackingId===n),f=new Set(r.map(l=>l.trackingId)),m=this.adaptedResponse.products.map((l,g)=>f.has(l.trackingId)?g:-1).filter(l=>l!==-1);zt({adaptedResponse:this.adaptedResponse,offerGroupIndex:u!==-1?u:0,visibleProductIndices:m,tenant:t,screenClass:i,set:o,discardedOffers:a,origin:c,urlId:this.urlId,recommendationsPlacement:this.page,marketingMessage:this.marketingMessage})})}trackEmptyProductListViewed(t,n,r,i,o){O(()=>{const a=this.eventBuilder.buildEmptyProductListViewedTrackingEvent(t,n,r,i,o);this.trackingEmitter.emitEvent(Z.EmptyProductListViewed,a)})}trackAddToCart(t,n,r,i){O(()=>{const o=this.adaptedResponse.products.find(a=>a.trackingId===n.trackingId);o?Mt({adaptedResponse:this.adaptedResponse,tenant:t,product:o,workId:r,origin:i,urlId:this.urlId,recommendationsPlacement:this.page,prices:cn(n.prices),marketingMessage:this.marketingMessage}):ve("Cannot find product in adapted response for offer tracking",{contextData:{offerTrackingId:n.trackingId}})})}trackProductClicked(t,n,r,i){O(()=>{const o=this.adaptedResponse.products.find(a=>a.trackingId===n.trackingId);o?At({adaptedResponse:this.adaptedResponse,tenant:t,product:o,clickedElement:r,origin:i,urlId:this.urlId,recommendationsPlacement:this.page,prices:cn(n.prices),marketingMessage:this.marketingMessage}):ve("Cannot find product in adapted response for offer tracking",{contextData:{offerTrackingId:n.trackingId}})})}trackAddToCartInteractionTimed(t){O(()=>{const n=this.eventBuilder.buildAddToCartInteractionTimeTrackingEvent(t);this.trackingEmitter.emitEvent(Z.InteractionTimed,n)})}trackFlyoutViewed(t,n){O(()=>{const r=this.eventBuilder.buildFlyoutViewedTrackingEvent(t,n);this.trackingEmitter.emitEvent(Z.FlyoutViewed,r)})}trackFlyoutClosed(t,n){O(()=>{const r=this.eventBuilder.buildFlyoutClosedTrackingEvent(t,n);this.trackingEmitter.emitEvent(Z.FlyoutClosed,r)})}}function ui(e,t,n){return function(r){e.trackProductListViewed(t,r.offerGroupTrackingId,r.offers,n,r.set,r.discardedOffers)}}function di(e,t,n){return function(r){e.trackEmptyProductListViewed(t,r.offerGroupTrackingId,n,r.discardedOffers)}}function li(e,t){return function(n){e.trackAddToCart(t,n.offer,n.workId,n.origin),n.duration!==void 0&&e.trackAddToCartInteractionTimed(n.duration),tt.addPageAction(p.ProductAddedToCard,{productKey:n.offer.productKey,productVersion:n.offer.productVersion,productOptions:n.offer.productOptions,quantity:n.offer.quantity,mpvId:n.offer.mpvId,workId:n.workId,origin:n.origin,duration:n.duration})}}function fi(e,t){return function(n){e.trackProductClicked(t,n.offer,n.clickedElement,n.origin)}}function mi(e){return function(t){e.trackFlyoutViewed(t.offer,t.origin)}}function gi(e){return function(t){e.trackFlyoutClosed(t.offer,t.origin)}}function un(e){const[t,n]=x(),r=ye();return D(()=>
26{const i=new ci(new ke,e.recommendationsResponse,e.defaultRecommendations||!1,r,e.urlId,e.page,e.marketingMessageTrackingDetails,e.fetchError),o=E(e.page,p.ProductListViewed,ui(i,e.tenant,e.screenClass)),a=E(e.page,p.EmptyProductListViewed,di(i,e.tenant,e.screenClass)),c=E(e.page,p.ProductAddedToCard,li(i,e.tenant)),u=E(e.page,p.ProductClicked,fi(i,e.tenant)),f=E(e.page,p.FlyoutViewed,mi(i)),m=E(e.page,p.FlyoutClosed,gi(i));return n(i),()=>{w(p.ProductListViewed,o),w(p.EmptyProductListViewed,a),w(p.ProductAddedToCard,c),w(p.ProductClicked,u),w(p.FlyoutViewed,f),w(p.FlyoutClosed,m)}},[e.tenant,JSON.stringify(e.recommendationsResponse),e.defaultRecommendations,e.fetchError?.toString(),e.screenClass,JSON.stringify(r)]),t?e.children:d(_,{})}function pi(e,t){return function(n){const i=n.contextData.tenant,o=n.error;e.trackRecommendationsErrorOccurred(i,o,t),U(n.errorMessage,{contextData:n.contextData,error:n.error})}}function hi(e){const[t,n]=x(),r=ye();return D(()=>{const i=new oi(new ke,r),o=E(e.page,p.ErrorFetchingProductRecommendations,pi(i,e.screenClass));return n(i),()=>{w(p.ErrorFetchingProductRecommendations,o)}},[e.page,e.screenClass,JSON.stringify(r)]),t?e.children:d(_,{})}function vi(e,t){t===void 0&&(t={});var n=t.insertAt;if(!(typeof document>"u")){var r=document.head||document.getElementsByTagName("head")[0],i=document.createElement("style");i.type="text/css",n==="top"&&r.firstChild?r.insertBefore(i,r.firstChild):r.appendChild(i),i.styleSheet?i.styleSheet.cssText=e:i.appendChild(document.createTextNode(e))}}var yi=`@keyframes slideAndFadeIn {
27  50% {
28    opacity: 0;
29    max-height: max-content;
30  }
31  100% {
32    opacity: 1;
33    max-height: max-content;
34  }
35}
36
37@keyframes fadeIn {
38  100% {
39    opacity: 1;
40  }
41}
42
43.fadeIn {
44  opacity: 0;
45  animation: fadeIn 1s forwards;
46}
47
48.slideAndFadeIn {
49  opacity: 0;
50  max-height: 0px;
51  animation: slideAndFadeIn 1.5s forwards;
52}
53`;vi(yi);function dn(e){const{isIntersecting:t,ref:n}=nt({freezeOnceVisible:!0}),[r,i]=x();function o(a,c,u){i(f=>{if(f)return{...f,offersGroups:f.offersGroups.map(m=>m.trackingId===a?{...m,offers:m.offers.map(l=>l.trackingId===c?u(l):l)}:m)}})}return D(()=>{const a=E(e.page,p.QuantityChanged,c=>{o(c.offerGroupTrackingId,c.offerTrackingId,u=>({...u,quantity:c.quantity}))});return()=>{w(p.QuantityChanged,a)}},[e.page]),D(()=>{t&&e.recommendations.disabled&&be(p.DisabledRecommendations,e.page,{})},[e.page,e.recommendations.disabled,t]),D(()=>{async function a(){if(e.recommendations.disabled){e.errorCallback&&e.errorCallback("Recommendations are disabled");return}const c=e.offerAdaptor?await e.offerAdaptor.adaptOffers(e.recommendations,e.locale):e.recommendations;i(c),it(c)>0?e.successCallback&&e.successCallback():e.errorCallback&&e.errorCallback("No offers could be retrieved")}a()},[JSON.stringify(e.recommendations),JSON.stringify(e.recommendationsResponse)]),r?d("div",{className:e.options?.noSpinner?"slideAndFadeIn":"fadeIn",children:d(rt,{tenant:e.tenant,locale:e.locale,page:e.page,mpvId:e.product?.mpvId,imageWidth:e.options?.imageWidth,parentWorkId:e.parentWorkId,recommendations:r,children:e.render({recommendations:r,tileFactory:e.tileFactory})})}):d("div",{ref:n})}function ki(e){const[t,n]=x(!1),r=Te();return D(()=>{const i=bi(e.error,e.fallbackData);i?(be(p.ErrorFetchingProductRecommendations,e.page,{errorMessage:i,error:e.error,contextData:ln(e)}),e.errorCallback&&e.errorCallback(i)):(U("POE call failed; using fallback data",{error:e.error,contextData:ln(e)}),n(!0))},[e.error]),e.fallbackData&&t?d(un,{tenant:e.tenant,page:e.page,urlId:e.urlId,recommendationsResponse:e.fallbackData,defaultRecommendations:!0,fetchError:e.error,screenClass:r,children:d(dn,{...e,recommendations:sn(e.fallbackData),recommendationsResponse:e.fallbackData})}):d(_,{})}function bi(e,t){const n=ee(e);return n?.status===400?`POE returned 400: ${n.message}`:n?.status===404?"POE returned 404":!t||t.offersGroups.length===0?"POE call failed; no fallback data available":null}const ln=e=>({tenant:e.tenant,locale:e.locale,page:e.page,customerId:e.customerId,mpvId:e.product?.mpvId,...ot(e.error)&&Ti(e.error)}),Ti=e=>({errorData:{selector:e.selector,correlationId:e.correlationId,status:e.status}});function Pi(e){return{tenant:e.tenant,locale:e.locale,page:e.page,customerId:e.customerId,product:e.product,contentSources:e.contentSources,pricingContext:e.pricingContext,options:e.options,authorizationHeader:e.authorizationHeader,marketingMessageOverrides:e.marketingMessageOverrides,polyCategory:e.polyCategory}}function Ei(e){const t=at(),n=Te(),r=Pi({...e,customerId:t.customerId,pricingContext:void 0,authorizationHeader:t.authorizationHeader}),{data:i,error:o,isLoading:a}=We(r,c=>e.fetcher.fetchProductRecommendations(c),{errorRetryCount:2,shouldRetryOnError:c=>c instanceof TypeError||c.status>=500});return a?d(wi,{locale:e.locale,noSpinner:e.options?.noSpinner,useSkeleton:e.options?.useSkeleton}):o?d(hi,{page:e.page,screenClass:n,children:d(ki,{...e,error:o})}):i&&i.recommendationsResponse&&i.recommendations?d(un,{tenant:e.tenant,page:e.page,urlId:e.urlId,recommendationsResponse:i.recommendationsResponse,screenClass:n,marketingMessageTrackingDetails:{marketingMessageId:e.marketingMessageOverrides?.marketingMessageId,contentfulId:e.marketingMessageOverrides?.contentfulId,decisionMaker:e.marketingMessageOverrides?.decisionMaker},children:d(ii,{page:e.page,experimentInfo:i.recommendationsResponse.experimentInfo,children:d(dn,{...e,...i})})}):(console.warn("no data available"),d(_,{}))}function wi(e){return e.noSpinner?d(_,{}):e.useSkeleton?d(Ii,{}):d(ht,{accessibleText:st(ct.Loading,e.locale),marginX:"auto"})}function Ii(){return Q("div",{className:"recommendations-group-title",children:[d(vt,{fontSkin:"title-section",mt:3,children:d(q,{children:d(Pe,{})})}),d(yt,{children:d(kt,{as:"ul",children:[...Array(6)].map((r,i)=>d(bt,{as:"li",span:12/6,spanSm:12/3,spanXs:12/1,marginBottom:6,children:Q(Tt,{children:[d(Pt,{children:d(Et,{ratio:1,loadingShimmer:!0})}),Q(wt,{children:[d(It,{children:d(q,{children:d(Pe,{})})}),d(_t,{children:d(q,{children:d(Ee,{})})})]}),d(Ct,{children:d(q,{children:d(Ee,{})})})]})},i))})})]})}function fn(e){if(!e.tenant||!e.locale||!e.page)throw new Error("Recommendations require a tenant, locale and page.")}function _i(e){if(fn(e),!e.product.mpvId)throw new Error("Recommendations for a product requires an MPV id.");if(e.product.coreProduct&&!e.product.coreProduct.key)throw new Error("Recommendations for a product requires a valid produt key if defined.");return d(mn,{...e,fetcher:new an})}function Ci(e){return fn(e),d(mn,{...e,fetcher:new an})}function mn(e){return d(St,{children:d(ut,{pageName:e.pageTracking?.pageName,pageSection:e.pageTracking?.pageSection,pageStage:e.pageTracking?.pageStage,children:d(dt,{customerId:e.customerId,children:d(Ei,{...e})})})})}const gn={createTile(e,t){return new lt().createTile(e,t)}};function pn(e){return function(n){const{locale:r,page:i}=n,{Experience:o}=xr(K.experiment.key);return K.isLocaleEligible(r)&&K.isPageEligible(i)?Q(_,{children:[d(o,{variation:K.experiment.variations.control,default:!0,children:d(e,{...n,render:a=>d(ne,{...a}
53),tileFactory:gn})}),d(o,{variation:K.experiment.variations.test,children:d(e,{...n,render:a=>d(ne,{...a}),tileFactory:new mt})})]}):d(e,{...n,render:a=>d(ne,{...a}),tileFactory:gn})}}function hn(e){return function(n){return d(ft,{children:d(e,{...n})})}}const Si=hn(pn(_i)),Ri=hn(pn(Ci));function xi(e){return e.startsWith("automation/")}var Di=".recommendations-group [class~=swan-standard-tile-footer] [class~=swan-mt-3],.recommendations-group [class~=swan-standard-tile-footer] [class~=swan-mt-4]{margin-top:0!important}.recommendations-group-grid ul>li{margin-bottom:var(--swan-sem-space-8)!important}";const Oi=e=>{je(gt),Ge(...e.placement==="cross-sell"?[Di]:[]);const[t,n]=x(!1);if(!e.placement)return d("div",{});const r=t&&e.bottomSpace?`swan-mb-${e.bottomSpace}`:void 0;return d("div",{className:r,"data-testid":"recommendations-spacing-wrapper",children:d(pt,{...e,render:()=>d(zi,{...e,onContentReady:()=>n(!0)})})})};function zi(e){const[t,n]=x(void 0),r=Ze(),i=Qe(),o=Ve(),a=e.isAutomation?e.placement.selector:e.placement;D(()=>{function m(g){g.source===de.USER&&n(g.combination)}let l;return e.requireProductOptions&&(l=pr.listenToOptionsChangedEventV1(m)),()=>{l&&l()}},[e.requireProductOptions]);const c={tenant:e.tenant,locale:e.locale,page:a,parentWorkId:e.workId,contentSources:{documentUrl:r.documentUrl,albelliDocId:r.albelliDocId,imageUrl:r.logoUrl,brandId:r.brandId},urlId:e.urlId,options:{useSkeleton:Mi(a,e.useSkeleton)},marketingMessageOverrides:e.isAutomation?{marketingMessageId:e.placement.marketingMessage,offerGroupTitle:e.placement.offerGroupTitle,designSourceOption:e.placement.designSourceOption,decisionMaker:e.placement.decisionMaker}
53:void 0,polyCategory:e.polyCategory,successCallback:()=>{e.onContentReady?.()},errorCallback:m=>{o.error("Error retrieving recommendations",Ke(m),{locale:e.locale,contentSources:r,placement:a,mpvId:i.product?.mpvId||e.mpvId,parentWorkId:e.workId}),He(Be.RecommendationsError,{error:m})}},u=i.product?.mpvId||e.mpvId;if(!u)return d(Ri,{...c});const f=e.requireProductOptions&&t&&e.product?{key:e.product.key,version:e.product.version,options:t}:i.product?.coreProduct;return!f&&e.requireProductOptions?d(_,{}):d(Si,{...c,product:{mpvId:u,coreProduct:f}})}function Mi(e,t){return t||xi(e)}const ji=kn("mount",async(e,t,n)=>Ne(d(Oi,{...t}),e,n))})}}));
54//# sourceMappingURL=fragment-recommendations-B4fmtLrf.js.map

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.