1(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[4208],{24208:function(e,t,r){"use strict";r.d(t,{Z:function(){return C},Q:function(){return I}});var s=r(31549);r(90883);var a=r(44194),n=r(7862),l=r.n(n),i=r(67585),c=r(51838),d=r.n(c),o=r(22104),u=r(3661),p=r(38416),m=r(58089),h=r(20554);let f=function(e,t){let r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},s=t.split("(.*)"),a=[],n=e.substr(s[0].length);for(let e=1;e<s.length;e+=1){let t=s[e],l=n.indexOf(t)>0&&t.length>0?n.substr(0,n.indexOf(t)):n;a.push(r[l]??l),n=n.substr(l.length+t.length)}return{productId:e,aliasedId:s.reduce((e,t,r)=>(e+=t,null!=a[r]&&(e+=a[r]),e),""),productValues:a}},y=function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return e.map((e,r)=>{let s,a=e,n=r,l=e,i=[];"object"==typeof e&&(a=e.label,n=e.index??r,s=e.sort??void 0,l=e.key??e.label,i=e.values??[]);let c=(t?.unavailable??[]).reduce((e,t)=>{let[r,s]=Object.entries(t)[0],[a,n]=r.split(".");return a===l&&e.push({label:n,type:s}),e},[]),d=!1;t.infoOnly&&(d=t.infoOnly.indexOf(l)>=0);let o=t.availableOnly??!1;return{key:l,index:n,label:a,sort:s,unavailable:c,values:i,infoOnly:d,availableOnly:o}})},b=e=>y(e).reduce((e,t)=>(e[t.key]=t.index,e),{}),g={productIdReducer:function(e){let[t="",r=[],s={},a={}]=e,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[],l=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null,i=y(r,a);if(l){let e={};if(Object.entries(s).forEach(t=>{let[r,s]=t;e[s]=r}),l.firstAvailable||l.isPossible){let r=i.map(t=>({priority:i.length-t.index,value:e[l[t.key]]??l[t.key]})).filter(e=>null!=e.value),a=n.map(a=>{let{aliasedId:n,productValues:i}=f(a.id,t,s),c=[];return r.forEach(t=>{let{value:r,priority:a}=t;i.indexOf(s[r]??r)>=0&&(r===e[l.firstAvailable]||r===l.firstAvailable?c.push(3*a):c.push(a))}),{product:a,score:c}}).filter(e=>l.isPossible?e.score.length>=Object.keys(l).length-1:e.score.length>0).map(e=>({...e,score:e.score.reduce((e,t)=>e+t,0)})).sort((e,t)=>t.score-e.score);if(a.length>0){let{product:e}=a[0],r=[],n=t.split("(.*)"),l=e.id.substr(n[0].length);for(let e=1;e<n.length;e+=1){let t=n[e],s=l.indexOf(t)>0&&t.length>0?l.substr(0,l.indexOf(t)):l;r.push(s),l=l.substr(s.length+t.length)}let c={};return r.forEach((e,t)=>{c[i[t].key]=s[e]??e}),c}return null}let r=t;return i.forEach(t=>{r=r.replace("(.*)",e[l[t.key]]??l[t.key])}),n.find(e=>e.id===r||e.id===r.slice(0,-1))}n.forEach(e=>{let r=[],a=t.split("(.*)"),n=e.id.substr(a[0].length);for(let e=1;e<a.length;e+=1){let t=a[e],s=n.indexOf(t)>0&&t.length>0?n.substr(0,n.indexOf(t)):n;r.push(s),n=n.substr(s.length+t.length)}r.forEach((e,t)=>{i[t].values.push(s[e]??e)})});let c=b(r);return i.sort((e,t)=>{let{key:r}=e,{key:s}=t;return c[r]-c[s]}).map(e=>({...e,values:(0,m.Z)(e.values)}))},configReducer:function(e){let[t=[],r={},s={}]=e,a=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[],n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null,l=y(t,s);if(n){let e={};Object.entries(r).forEach(t=>{let[r,s]=t;e[s]=r});let t=l.reduce((t,r)=>{let s=n[r.key];return t[r.key]=e[s]??s,t},{});return[a.sort((e,t)=>{let{price:r}=e,{price:s}=t;return r-s}
1)[0],t]}let i=b(t);return l.sort((e,t)=>{let{key:r}=e,{key:s}=t;return i[r]-i[s]}).map(e=>({...e,values:(0,m.Z)(e.values).map(e=>r[e]??e)}))}};var x=function(e,t){let[r,...s]=e,a=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null;return g[r](s,t,a)},N=r(93974),j=r(9211);let v=e=>{let{className:t,...r}=e,[n,l]=(0,a.useState)(!0);return(0,s.jsx)("img",{...r,onError:()=>l(!1),onLoad:()=>l(!0),className:d()(t,{"d-none":!n})})};v.propTypes={className:l().string};let P=e=>{let t;let r=t=>{e.onChange(e.id,t)},a=e.options.length+e.unavailable.length;if(a<e.minNumberOfItems)return null;if(e.autoItemsInRow)t="auto";else switch(a){case 1:t=1;break;case 2:case 4:t=2;break;case 3:t=3;break;default:t="auto"}let n=(0,j.Z)(e.description,`${e.id}.${e.selectedOptionId}`);return(0,s.jsxs)("div",{className:"configuration-row",children:[(0,s.jsx)(o.ZT.Span,{block:!0,className:"label text-light",children:e.label.toUpperCase()}),(0,s.jsxs)("div",{className:"card-list","data-items-in-row":t,children:[e.options.map(t=>(0,s.jsx)(o.Zb,{className:d()({active:t.id===e.selectedOptionId,[e.cardClassName]:e.cardClassName,"card-disabled":t.disabled}),...t.disabled?{asLink:!1}:{asLink:!0,onClick:e=>{e.preventDefault(),r(t.id)}},children:(0,s.jsxs)("div",{className:"card-inline h-100 align-items-center",children:[e.id.toLowerCase().indexOf("color")>=0&&(0,s.jsx)(v,{className:"rounded shadow-sm",srcSet:(0,h.T7)(e.templateRootPath,"color",t.id),alt:`${e.label}: ${t.label}`}),(0,s.jsxs)("div",{className:d()({"h6 text-center w-100":!0,"text-light":t.disabled}),children:[(0,p.Oo)(t.label),"Fan"===t.label&&(0,s.jsxs)(s.Fragment,{children:[" ",(0,s.jsx)(o.Ct,{type:"success",size:"sm",className:"mt-0 text-white badge-config-sm",children:"NEW"})]})]})]})},t.id)),e.unavailable.map(t=>(0,s.jsx)(o.Zb,{className:d()({[e.cardClassName]:e.cardClassName,"card-disabled":!0}),children:(0,s.jsx)("div",{className:"card-inline h-100 align-items-center",children:(0,s.jsxs)("div",{className:"h6 text-center w-100 text-light",children:[(0,p.Oo)(t.label)," ",(0,s.jsx)(o.Ct,{type:"secondary",size:"sm",className:"mt-0 text-white badge-config-sm",children:t.type.toUpperCase()})]})})},t.label))]}),n&&(0,s.jsx)(o.bZ,{type:"warning",children:(0,s.jsx)("div",{dangerouslySetInnerHTML:{__html:n}})})]})};P.propTypes={id:l().string,templateRootPath:l().string,label:l().string,options:l().array,unavailable:l().array,selectedOptionId:l().oneOfType([l().number,l().string]),onChange:l().func,cardClassName:l().string,minNumberOfItems:l().number,autoItemsInRow:l().bool,description:l().object},P.defaultProps={options:[],unavailable:[],description:{},minNumberOfItems:1,autoItemsInRow:!1};let O=e=>{let[t,r]=(0,a.useState)({});(0,a.useEffect)(()=>{if((0,h.Nv)(e.products)){let s=!0,a={};(0,h.gu)(e.products).forEach(e=>{let[r,n]=e;0>n.indexOf(t[r])&&(s=!1),a[r]=n[0]}),s||r(a)}},[e.products]),(0,a.useEffect)(()=>{e.onChange(t)},[e.primaryProduct?.id,t]);let n=(e,s)=>{r((0,i.Z)(t,t=>{t[e]=s}))},l=(t,r)=>{if(t&&r){let a;let n=e.products.map(e=>e.id);if((0,h.n4)(n)){let s=(0,h.sF)((0,h.iz)(e.primaryProduct),{[t]:r}),l=(0,h.sF)(n,{[t]:r}),i=s.filter(e=>0>l.indexOf(e)),c=[];e.primaryProduct&&e.primaryProduct.relatedTo.forEach(e=>{if("object"==typeof e){let t=Object.keys(e)[0];i.indexOf(t)>=0&&c.push(e[t].alias)}}),c.length>0&&(a=`${(0,p.Oo)(r)} ${t} is out of stock for ${c.join(", ")} prints.`)}else{let s=e.products.filter(e=>e.templateMetaData.options[t]&&0>e.templateMetaData.options[t].indexOf(r));if(s.length>0){let t=s.map(e=>e.id),n=s.map(e=>e.templateMetaData.name),l=[];e.primaryProduct&&e.primaryProduct.relatedTo.forEach(e=>{if("object"==typeof e){let r=Object.keys(e)[0];t.indexOf(r)>=0&&e[r].alias&&l.push(e[r].alias)}}),a=`${(0,p.Oo)(r)} ${n.join(", ")} are out of stock${l.length>0?` for ${l.join(", ")} prints.`:"."}`}}if(a)return(0,s.jsx)(o.bZ,{type:"danger",className:"text-center",children:a})}return null};return(0,h.Nv)(e.products)?(0,s.jsx)(s.Fragment,{children:(0,h.gu)(e.products).map(r=>{let[i,c]=r;return(0,s.jsxs)(a.Fragment,{children:[(0,s.jsx)(P,{templateRootPath:e.products[0].templateRootPath,id:i,label:`Select ${e.labels[i]??i}`,options:c.map(e=>({id:e,label:e})),selectedOptionId:t[i],onChange:n,minNumberOfItems:e.minNumberOfItems,cardClassName:e.cardClassName},`${e.primaryProduct?.id}-${i}`),l(i,t[i])]},i)})}):null};
1O.propTypes={products:l().array.isRequired,labels:l().object,primaryProduct:l().object,minNumberOfItems:l().number,onChange:l().func,cardClassName:l().string},O.defaultProps={labels:{}};let I=(e,t)=>t.bundle?{bundle:{id:t.bundle.id,name:t.bundle.name,secondaryProducts:e.getSkuProducts(t.secondaryProductIds).map(e=>({id:e.id,name:e.name,version:e.version,data:t.secondaryProductData}))}}:t.upsell?{upsell:{id:t.upsell.id,name:t.upsell.name,version:t.upsell.version,data:t.secondaryProductData}}:{},k=e=>{let t=e.defaultPrintOnly?-1:0,r=(0,u.Z)(),[n,l]=(0,a.useState)(),c=(0,a.useRef)({}),[f,y]=(0,a.useState)();(0,a.useEffect)(()=>{f&&e.onChange(f)},[f]),(0,a.useEffect)(()=>{c.current=n??{}},[n]);let[b,g]=(0,a.useState)([]),[j,v]=(0,a.useState)([]),[I,k]=(0,a.useState)([]),C=(r,s)=>{if(e.product.reducer&&!x(e.product.reducer,e.product.options,{...n,[r]:s})){let a=x(e.product.reducer,e.product.options,{...n,[r]:s,firstAvailable:s});a?l({...a,secondaryIndex:c.current.secondaryIndex??t}):alert("Sorry, this variant is not available.");return}l((0,i.Z)(n,e=>{e[r]=s}))},D=(e,t)=>{l((0,i.Z)(n,r=>{r[e]=t}))};if((0,a.useEffect)(()=>{let s={};if(e.product.reducer)x(e.product.reducer,e.product.options).forEach(e=>{let{key:t,values:r}=e;s[t]=r[0]});else{let t=[];e.product.options.forEach(e=>{t.push(...e.products.primary)});let a=(0,m.Z)(t).map(r.getSkuProduct).filter(e=>!!e).sort((e,t)=>e.categoryPosition-t.categoryPosition);g(a),s.primaryIndex=Math.max(0,a.findIndex(t=>t.id===e.product.config?.defaultSku))}s.secondaryIndex=c.current.secondaryIndex??t,l(s)},[e.product]),(0,a.useEffect)(()=>{let t;let r={};if(n){if(e.product.reducer){let s=x(e.product.reducer,e.product.options,n);t=s;let a=n;Array.isArray(s)&&(t=s[0],a=s[1]),r.config=a}else t=b[n.primaryIndex],r.config=n,n.primaryData&&Object.keys(n.primaryData).length>0&&(r.primaryProductData={options:n.primaryData});r.productId=t.id,r.product=t;let s=n.quantity??1,a=t.price;if(t.priceTiers){let e=Object.keys(t.priceTiers)[0],r=t.priceTiers[`${s}`];null!=r?a=r:null!=e&&(s=parseInt(e,10),a=t.priceTiers[e])}if(r.productPrice=a,r.quantity=s,r.price=a,n.secondaryIndex>=0&&j.length>n.secondaryIndex&&(r.bundle=j[n.secondaryIndex],r.secondaryProductIds=r.bundle.products.secondary,r.price=r.bundle.price,n.secondaryData&&Object.keys(n.secondaryData).length>0&&((0,h.n4)(r.bundle.products.secondary)?(r.secondaryProductIds=(0,h.sF)(r.bundle.products.secondary,n.secondaryData),r.secondaryProductData=void 0):r.secondaryProductData={options:n.secondaryData})),n.secondaryIndex>=0&&I.length>n.secondaryIndex){let e=I[n.secondaryIndex];if(n.secondaryData&&Object.keys(n.secondaryData).length>0){if((0,h.n4)(e.skus)){let t=e.skuProducts.find(t=>(0,h.sF)(e.skus,n.secondaryData).indexOf(t.id)>=0);t&&(r.upsell=t,r.price+=t.price,r.secondaryProductData=void 0)}else{let t=e.skuProducts[0];r.upsell=t,r.price+=t.price,r.secondaryProductData={options:n.secondaryData}}}}}y(r)},[e.product,b,j,n]),(0,a.useEffect)(()=>{if(n&&e.skuProduct){let t=e.skuProduct,s=[];e.product.bundles.forEach(e=>{e.products.primary.indexOf(t.id)>=0&&s.push(e.id)}),v((0,m.Z)(s).map(r.getSkuProduct).filter(e=>!!e&&e.products.secondary.length>0).filter(e=>r.getSkuProducts(e.products.secondary.filter(e=>(0,h.iz)(t).indexOf(e)>=0)).length>0).sort((e,t)=>e.categoryPosition-t.categoryPosition)),k(e.product.upsell)}},[b,n,e.skuProduct]),!n||e.hidden)return null;let T=t=>{let a=function(){let r=arguments.length>0&&void 0!==arguments[0]&&arguments[0];if(!r)return null;let a=f?t.price-f.price:0;return(0,s.jsx)(o.Zb,{asLink:!0,onClick:e=>{e.preventDefault(),C("secondaryIndex",-1)},className:d()({active:-1===n.secondaryIndex||n.secondaryIndex>=j.length,[e.cardClassName]:e.cardClassName}),children:(0,s.jsxs)("div",{className:"card-inline split",children:[(0,s.jsx)("div",{className:"h6",children:N.Z.t(`printsonly.${t.id}`,"Prints Only")}),(0,s.jsx)("strong",{className:e.priceLabelClassName,children:0===a?(0,s.jsx)(s.Fragment,{children:"\xa0"}):(0,s.jsxs)(s.Fragment,{children:[a>0&&"+",(0,p.T4)(a,t.currency,!0)]})})]})})};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(o.ZT.Span,{block:!0,className:"label text-light",children:"SELECT AN OPTION"}),(0,s.jsxs)("div",{className:"card-list","data-items-in-row":Math.min(2,j.length+1),children:[a(e.defaultPrintOnly&&!e.hidePrintOnly),j.map((a,l)=>{let i=Math.min(...a.products.secondary.map(e=>r.getPrice(e)).filter(e=>!!e).map(e=>{let{price:t}=e;return t}))+t.price-a.price,c=a.price-f.price;return(0,s.jsxs)(o.Zb,{asLink:!0,onClick:e=>{e.preventDefault(),C("secondaryIndex",l)},className:d()({active:n.secondaryIndex===l,[e.cardClassName]:e.cardClassName}),children:[(0,s.jsxs)("div",{className:"card-inline split",children:[(0,s.jsx)("div",{className:"h6",children:a.secondaryCaption}),(0,s.jsx)("strong",{className:e.priceLabelClassName,children:0===c?(0,s.jsx)(s.Fragment,{children:"\xa0"}):(0,s.jsxs)(s.Fragment,{children:[c>0&&"+",(0,p.T4)(c,a.currency,!0)]})})]}),(0,s.jsxs)(o.Ct,{type:"success",pill:!0,className:"badge-config-sm",children:["RECOMMENDED",i>0&&`. SAVE ${(0,p.T4)(i,a.currency)}!`]})]},a.id)}),a(!e.defaultPrintOnly&&!e.hidePrintOnly)]}),(0,s.jsx)(O,{primaryProduct:t,products:n.secondaryIndex>=0&&j.length>n.secondaryIndex?r.getSkuProducts(j[n.secondaryIndex].products.secondary):[],minNumberOfItems:e.minNumberOfItems,onChange:e=>
1D("secondaryData",e),cardClassName:e.cardClassName,labels:e.labels})]})},E=t=>{let r=function(){let r=arguments.length>0&&void 0!==arguments[0]&&arguments[0];return r?(0,s.jsx)(o.Zb,{asLink:!0,onClick:e=>{e.preventDefault(),C("secondaryIndex",-1)},className:d()({active:-1===n.secondaryIndex||n.secondaryIndex>=I.length,[e.cardClassName]:e.cardClassName}),children:(0,s.jsxs)("div",{className:"card-inline split",children:[(0,s.jsx)("div",{className:"h6",children:N.Z.t(`printsonly.${t.id}`,"Prints Only")}),(0,s.jsx)("strong",{className:e.priceLabelClassName,children:(0,s.jsx)(s.Fragment,{children:"\xa0"})})]})}):null};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(o.ZT.Span,{block:!0,className:"label text-light",children:"SELECT AN OPTION"}),(0,s.jsxs)("div",{className:"card-list","data-items-in-row":Math.min(2,I.length+1),children:[r(e.defaultPrintOnly&&!e.hidePrintOnly),I.map((r,a)=>{let l=Math.min(...r.skuProducts.map(e=>e.price));return(0,s.jsxs)(o.Zb,{asLink:!0,onClick:e=>{e.preventDefault(),C("secondaryIndex",a)},className:d()({active:n.secondaryIndex===a,[e.cardClassName]:e.cardClassName}),children:[(0,s.jsxs)("div",{className:"card-inline split",children:[(0,s.jsx)("div",{className:"h6",children:r.label}),(0,s.jsx)("strong",{className:d()(e.priceLabelClassName,"text-right"),children:0===l?(0,s.jsx)(s.Fragment,{children:"\xa0"}):(0,s.jsxs)(s.Fragment,{children:[l>0&&"+",(0,p.T4)(l,t.currency,!0),t.priceTiers&&` Per ${e.productType}`]})})]}),r.recommended&&(0,s.jsx)(o.Ct,{type:"success",pill:!0,className:"badge-config-sm",children:"RECOMMENDED"})]},r.label)}),r(!e.defaultPrintOnly&&!e.hidePrintOnly)]}),(0,s.jsx)(O,{primaryProduct:t,products:n.secondaryIndex>=0&&I.length>n.secondaryIndex?I[n.secondaryIndex].skuProducts:[],minNumberOfItems:e.minNumberOfItems,onChange:e=>D("secondaryData",e),cardClassName:e.cardClassName,labels:e.labels})]})},S=t=>{if(!t.priceTiers)return null;let r=Object.keys(t.priceTiers);return(0,s.jsxs)("div",{className:"configuration-row mb-2",children:[(0,s.jsx)(o.ZT.Span,{block:!0,className:"label text-light",children:"QUANTITY"}),(0,s.jsx)(o.l0.Select,{onChange:e=>C("quantity",parseInt(e.target.value,10)),children:r.map(r=>(0,s.jsx)(o.l0.SelectOption,{value:r,children:`${r} - ${(0,p.T4)(t.priceTiers[r],t.currency)} Per ${e.productType}`},r))})]})};if(e.product.reducer)return(0,s.jsxs)(s.Fragment,{children:[x(e.product.reducer,e.product.options).reduce((t,r)=>{let{key:a,label:l,sort:i,values:c,unavailable:d,infoOnly:o,availableOnly:u}=r;if(o||1===c.length)t.children.push((0,s.jsxs)("div",{className:"configuration-cell",children:[(0,s.jsx)("div",{className:"h6",children:l.toUpperCase()}),(0,s.jsx)("div",{className:"h3 mb-3",children:n[a]})]},a));else if(c.length>1){let r=r=>!!u&&!x(e.product.reducer,e.product.options,{...t.selected,[a]:r,isPossible:!0});t.children.push((0,s.jsx)(P,{templateRootPath:e.skuProduct.templateRootPath,id:a,label:`Select ${l}`,options:c.map(e=>({id:e,label:e,disabled:r(e)})).sort((e,t)=>{let{label:r}=e,{label:s}=t;return"asc"===i?r<s?-1:1:"desc"===i?r>s?-1:1:0}),unavailable:d,selectedOptionId:n[a],onChange:C,cardClassName:e.cardClassName,description:e.product.config.variantDescription,autoItemsInRow:e.autoItemsWidth},a))}return t.selected[a]=n[a],t},{selected:{},children:[]}).children,j.length>0&&(0,s.jsx)("div",{className:"configuration-row",children:T(e.skuProduct)}),S(e.skuProduct),I.length>0&&(0,s.jsx)("div",{className:"configuration-row",children:E(e.skuProduct)}),e.showSkuDescription&&e.skuProduct.description&&(0,s.jsx)(o.bZ,{type:"warning",children:e.skuProduct.description})]});let w=e.skuProduct;return w?(0,s.jsxs)(s.Fragment,{children:[b.length>1&&(0,s.jsx)(s.Fragment,{children:(0,s.jsx)(P,{product:e.product,id:"primaryIndex",templateRootPath:w.templateRootPath,label:w.primaryCaption,options:b.map((e,t)=>({id:t,label:e.templateMetaData.name})),selectedOptionId:n.primaryIndex,onChange:C,cardClassName:e.cardClassName,description:e.product.config.variantDescription,autoItemsInRow:e.autoItemsWidth})}),(0,s.jsx)(O,{primaryProduct:void 0,products:[w],onChange:e=>D("primaryData",e),cardClassName:e.cardClassName,labels:e.labels}),j.length>0&&(0,s.jsx)(s.Fragment,{children:T(w)}),S(w),I.length>0&&(0,s.jsx)("div",{className:"configuration-row",children:E(w)}),e.showSkuDescription&&w.description&&(0,s.jsx)(o.bZ,{type:"warning",children:w.description})]}):null};k.propTypes={product:l().object,skuProduct:l().object,onChange:l().func,cardClassName:l().string,priceLabelClassName:l().string,defaultPrintOnly:l().bool,hidePrintOnly:l().bool,minNumberOfItems:l().number,hidden:l().bool,autoItemsWidth:l().bool,showSkuDescription:l().bool,labels:l().object,productType:l().string},k.defaultProps={priceLabelClassName:"text-info",hidden:!1,defaultPrintOnly:!1,minNumberOfItems:2,hidePrintOnly:!1,autoItemsWidth:!1,showSkuDescription:!1,labels:{},productType:"Print"};var C=k},9211:function(e,t,r){"use strict";
1var s=r(13546),a=r.n(s);t.Z=a()},90883:function(){}}]); 2//# sourceMappingURL=4208-e02326b2e2b385f4.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.