1try{let O=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},T=new O.Error().stack;T&&(O._sentryDebugIds=O._sentryDebugIds||{},O._sentryDebugIds[T]="e4838321-ab95-456f-971b-0b66b69a4114",O._sentryDebugIdIdentifier="sentry-dbid-e4838321-ab95-456f-971b-0b66b69a4114")}catch{}{let O=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{};O.SENTRY_RELEASE={id:"printful@5f163c36b2672f5357dbc5c7880c4a05aa5e334c"}}/*! License information is available at https://static.cdn.printful.com/dist-pf/76120.licenses.txt if third party dependencies are included */(self.webpackChunkwebpackpf=self.webpackChunkwebpackpf||[]).push([[76120],{3908:(O,T,a)=>{a.d(T,{p:()=>C});const C={async isFavoriteProductsEnabled(){return PF.Customer.isLogged()}}},6075:(O,T,a)=>{a.d(T,{P:()=>n});var C=a(97466),m=a(96978),P=a(82311),y=a(4827),r=a(89965);const n=Class({product:null,activeVariant:null,variants:[],descriptionTitle:"",colorPickerTitle:{},sizePickerTitle:{},isLogged:!1,printCareInstructionsHtml:"",productDescription:"",productsPricingInfoHtml:"",printInfo:{},guidelines:"",templates:{},guidelinesAndTemplates:null,regions:null,availabilityTabRegions:null,insideLabel:"",shippingReturns:"",images:[],shipping:"",isFeaturedReviews:!1,isFavorite:!1,addedToFavoritesAt:null,productSpecs:{},productSource:{},isFulfilledAtPartnerFacility:!1,favoriteCatalogCategoryId:null,sellingRegionSettings:null,canHaveSampleOrderOffer:!0,overallQualityRatingCategory:null,scheduledPrices:[],techniqueDisplayNames:{},originalTechniqueDisplayNames:{},isOutsideSellingRegionAvailable:!1,retailDiscount:{},generalDataLayer:{},canAccessMemberships:!1,isSizeBased:!1,setActiveVariantById:function(c){this.activeVariant=c?this.variants.filter(function(p){return p.variantId===c}).shift():null},hasPriceEstimator:function(){return this.product.type===r.Jg},getRegionVariants:function(){var c=new C.y;return c.availableRegions=this.regions.availableRegions,c.variantsByRegion=this.regions.variantsByRegion,c.allowedSellingRegions=this.regions.allowedSellingRegions,c.allowedSellingRegionOverrides=this.regions.allowedSellingRegionOverrides,c.unlimitedEmbroiderySellingRegions=this.regions.unlimitedEmbroiderySellingRegions,c.unlimitedEmbroideryVariantsByRegion=this.regions.unlimitedEmbroideryVariantsByRegion,c},getPrintInfo:function(c,p){return this.printInfo[c]?p?this.printInfo[c][p]?this.printInfo[c][p]:"":this.printInfo[c]:""}});n.fromArray=function(c){var p=new n;return y.mkE.O2O(p,c),p.product=P.PFItemsProductItem.fromArray(c.product),p.variants=c.variants.map(m.H.fromArray),p},window&&((globalThis||{}).PFProductsCatalogProductData=n)},19886:(O,T,a)=>{a.d(T,{p:()=>m});var C=a(4827);const m=function(P,y,r=!1,n=!1,c=!1,p=null){this.selfRemove=r||!1,this.onCloseCallback=p,this.selfRemove!==!1&&(this.selfRemove=parseInt(this.selfRemove,10),isNaN(this.selfRemove)&&(this.selfRemove=2e3)),typeof P=="string"&&(P=[P]),this.node=tag("div","alert alert-"+y,P),n&&C.mkE.addClassName(this.node,"alert-absolute"),c&&tag("a",{className:"alert__close",innerHTML:"×",onclick:this.prettyRemove.bind(this)}).append(this.node)};m.prototype=new C.mkE.Base,m.prototype.append=function(P){return this.selfRemove&&setTimeout($.proxy(this.prettyRemove,this),this.selfRemove),this.node.append(P),this},m.prototype.prepend=function(P){return this.selfRemove&&setTimeout($.proxy(this.prettyRemove,this),this.selfRemove),this.node.prepend(P),this},m.prototype.prettyRemove=function(){$(this.node).fadeOut($.proxy(this.remove,this)),this.onCloseCallback&&this.onCloseCallback()},window&&((globalThis||{}).PFComponentsAlert=m)},25468:(O,T,a)=>{a.d(T,{G:()=>C});const C=Class({modalTitle:"",contentTitle:"",contentText:"",primaryBtnText:"",secondaryBtnText:"",alternativeSecondaryBtnText:"",isPrimaryButtonDisabled:!1,isAlternativeSecondaryButtonDisabled:!1,onSecondaryBtnClick:null,onalternativeSecondaryBtnClick:null,onPrimaryBtnClick:null,disableButtonsOnClick:!0,footerCssClasses:null});window&&((globalThis||{}).PFComponentsWarningDialogPar=C)},35708:(O,T,a)=>{a.d(T,{k:()=>m});var C=a(52599);
1const m=Class({_product:null,__construct:function(P){this._product=P},getTitle:function(){return this._product.displayName},getImageUrl:function(){return this._product.urlImage},getTechniques:function(){return this._product.availableTechniques},getReviewRating:function(){return this._product.reviews},getReviewOverview:function(){return this._product.reviewOverview},getId:function(){return this._product.productId},getType:function(){return"product"},getVariants:function(){return new C.J().getCachedVariantsByProductId(this._product.productId)},getDatalayerBase(){return{location:"customer reviews",item_name:this._product.englishDisplayName||this._product.displayName,item_id:this.getId()}}});(globalThis||{}).PFProductReviewReviewableProductItem=m},46413:(O,T,a)=>{a.d(T,{N:()=>P});var C=a(4827),m=a(82249);const P=Class({__construct:function(y){this._par=y,this._render()},_render:function(){var y,r,n=tag("div","pf-ui-body",[tag("div","",[tag("h4","pf-h4 pf-m-0",this._par.contentTitle),tag("p",{className:this._par.contentTitle?"pf-mt-8 pf-m-0 pf-ui-caption pf-text-muted pf-text-wrap-pretty":"pf-m-0 pf-text-muted pf-text-wrap-pretty",innerHTML:this._par.contentText})])]),c=tag("div",((y=this._par.footerCssClasses)===null||y===void 0?void 0:y.container)||"text-right",[this._secondaryButton=tag("a",{className:((r=this._par.footerCssClasses)===null||r===void 0?void 0:r.secondaryBtn)||"pf-btn pf-btn-secondary pf-d-block pf-d-xs-inline-block pf-ml-xs-12 pf-mb-12 pf-mb-xs-0",onclick:this._onSecondaryClick},this._par.secondaryBtnText),this._alternativeSecondaryButton=this._par.alternativeSecondaryBtnText?tag("a",{className:this._getAlternativeSecondaryButtonClass(),onclick:this._onAlternativeSecondaryClick},this._par.alternativeSecondaryBtnText):"",this._primaryButton=tag("a",{className:this._getPrimaryButtonClass(),onclick:this._onPrimaryClick},this._par.primaryBtnText)]),p=new m.y.Par;p.nodeClass="pf-modal",p.modalDialogClass="modal-md pf-justify-content-center",this._modal=new m.y(p),this._modal.setTitle(this._par.modalTitle),this._modal.setContent(n),this._modal.setFooterContent(c),this._modal.show()},_getPrimaryButtonClass(){var y;let r=((y=this._par.footerCssClasses)===null||y===void 0?void 0:y.primaryBtn)||"pf-btn pf-btn-primary pf-d-block pf-d-xs-inline-block pf-mb-12 pf-mb-xs-0 pf-ml-xs-12";return this._par.isPrimaryButtonDisabled&&(r+=" disabled"),r},_getAlternativeSecondaryButtonClass(){var y;let r=((y=this._par.footerCssClasses)===null||y===void 0?void 0:y.alternativeSecondaryBtn)||"pf-btn pf-btn-secondary pf-d-block pf-d-xs-inline-block pf-ml-xs-12";return this._par.isAlternativeSecondaryButtonDisabled&&(r+=" disabled"),r},_onPrimaryClick:function(y){C.mkE.addClassName(this._primaryButton,"disabled"),this._par.onPrimaryBtnClick&&this._par.onPrimaryBtnClick(y),this._par.isPrimaryButtonDisabled||this.closeDialog()},_onSecondaryClick:function(){C.mkE.addClassName(this._secondaryButton,"disabled"),this._par.onSecondaryBtnClick&&this._par.onSecondaryBtnClick(),this.closeDialog()},_onAlternativeSecondaryClick:function(){C.mkE.addClassName(this._alternativeSecondaryButton,"disabled"),this._par.onAlternativeSecondaryBtnClick&&this._par.onAlternativeSecondaryBtnClick(),!this._par.isAlternativeSecondaryButtonDisabled&&this.closeDialog()},closeDialog:function(){this._modal.remove()},enablePrimaryButton:function(){this._primaryButton&&C.mkE.removeClassName(this._primaryButton,"disabled")},enableSecondaryButton:function(){this._secondaryButton&&C.mkE.removeClassName(this._secondaryButton,"disabled")}});window&&((globalThis||{}).PFComponentsWarningDialog=P)},61682:(O,T,a)=>{a.d(T,{r:()=>P});var C=a(74454),m=a(65236);const P={toggleLock(y){C.u.createAndDispatch(m.PFProductsCatalogCommon.EVENT_TOGGLE_LOCK,{isLocked:y})}};(globalThis||{}).PFProductsCatalogUtilsStateHelpers=P},62479:(O,T,a)=>{a.d(T,{PFProductsCatalogUtilsStore:()=>y});var C=a(90102),m=a(64984),P=a(49585);const y=Class({products:null,categories:null,__construct:function(){this.categories=new m.m,this.products=new C.W(this.categories),this._initConfigureStore(this)},cacheCategories:function(r){return this.categories.cache(r),this},setActiveCategoryId:function(r){return typeof r>"u"?this:(this.categories.setActiveCategoryId(r),this)},setCurrency:function(r){return this.products.setCurrency(r),this},setActiveFilters:function(r){return r.length?(y.activeFiltersCache=r.map(function(n){return{type:n.type,title:n.title,orderIndex:n.orderIndex}}),this):this},getActiveFilters:function(){return y.activeFiltersCache},isRootCategory:function(){return this.categories.getActiveCategoryId()===0}
1,_initConfigureStore(){if(y._storeInitCallbackExecuted)return;y._storeInitCallbackExecuted=!0;const r=P.c.getMainStoreInitCallback();r&&r(this)}});y.activeFiltersCache=[],y._storeInitCallbackExecuted=!1,window&&((globalThis||{}).PFProductsCatalogUtilsStore=y)},62738:(O,T,a)=>{a.d(T,{EW:()=>c,Rx:()=>h,SZ:()=>l,Zj:()=>x,_C:()=>F,lp:()=>S});var C=a(43112),m=a(75896),P=a(25468),y=a(46413),r=a(65236);const n="dsrSelectedStoreId";function c(f=null,w=null){if(f&&f!==PF.Customer.personalOrdersStoreId&&f>0){location.href=langUrl(`/dashboard/settings/${f}/store`);return}const D=[m.AP,m.j3];let E=!1,v;for(const d of D)m.zy(d)&&(E=!0,v=d);if(E||r.PFProductsCatalogCommon.isProductPickable()){const d=new P.G;d.modalTitle=dlang("generator","Are you sure?"),d.contentText=dlang("generator","If you leave, your changes won't be saved."),d.primaryBtnText=dlang("generator","Stay"),d.secondaryBtnText=dlang("generator","Leave"),d.onSecondaryBtnClick=()=>{if(r.PFProductsCatalogCommon.isProductPickable()&&(m.Ic(m.ke),!E)){p(w,m.ke);return}m.Ic(v),p(w,v)},new y.N(d)}else p(w)}function p(f,w=""){if(C.I.isWindowSmallerThan(C.I.SIZES.MD)){if(document.querySelector(".vue-navigation__mobile-button").click(),document.querySelector("#js--selling-region-toggle").classList.contains("open")){var D;(D=document.querySelector('.vue-navigation__mobile-layout [id^="selling-region-dropdown"] button'))===null||D===void 0||D.focus();return}document.querySelector("#js--selling-region-toggle").click(),setTimeout(()=>{var E;(E=document.querySelector('.vue-navigation__mobile-layout [id^="selling-region-dropdown"] button'))===null||E===void 0||E.focus()},1e3)}else window.scrollTo(0,0),setTimeout(function(){m.Ic(m.dp,f,w)},0)}function S(f){const w="PFCatalog:productEdt:"+f;try{sessionStorage.removeItem(w)}catch{}}function x(f){c(f)}function F(f,w){(w.key==="Enter"||w.key==="Spacebar"||w.key===" ")&&(w.preventDefault(),c(f,w))}function h(f){try{localStorage.setItem(n,f)}catch{}}function l(){try{const f=localStorage.getItem(n);return f?parseInt(f):null}catch{}}},64984:(O,T,a)=>{a.d(T,{m:()=>r});var C=a(17804),m=a(73270),P=a(65236),y=a(49585);const r=Class({__construct(){this._initConfigureStore(this)},_categories:[],getAll:function(n){return this._getSubCategories(n)},getAllWithInactive:function(n){return this._getSubCategories(n,!0)},getById:function(n,c,p){c||(c=r.cache[P.w.catalogType]),typeof p>"u"&&(p=!0);var S=this._findCategoryById(n,c);if(S||!p)return S;for(var x in c){var F=this.getById(n,c[x].children);if(F){S=F;break}}return S},getPath:function(n){typeof n>"u"&&(n=this.getActiveCategoryId());var c=[],p=this.getById(n);if(!p)return[];for(c.push(p);p.parentId&&(p=this.getById(p.parentId),!!p);)c.push(p);return c.reverse()},getTopLevelCategory:function(){var n=this.getPath();return n.length?n[0]:this.getActiveCategory()},setActiveCategoryId:function(n){r.activeCategoryId=n},getActiveCategoryId:function(){return r.activeCategoryId},getActiveCategory:function(){return this.getActiveCategoryId()===-1?m.p.getTemporaryFavoritesCategory():this.getById(this.getActiveCategoryId())},getCategoryChildIds:function(n){var c=[n.id];for(var p in n.children)c.push(n.children[p].id);return c},cache:function(n){typeof n!="Array"&&(n=C.c.convertToArray(n)),r.cache[P.w.catalogType]=n.map(this._getCategoryItem)},_getSubCategories:function(n,c,p){const S=r.cache[P.w.catalogType];if(!(S!=null&&S.length))return console.log("Categories not found"),[];n||(n=0);let x=p&&p.length?p:S;return x=x.filter(this._filterCategoryByParentId.bind(this,n)),c||(x=x.filter(this._filterActiveCategory.bind(this))),x.length||(!p&&S&&(p=S),p.map(function(F){x=x.concat(this._getSubCategories(n,c,F.children))}.bind(this))),x},_findCategoryById:function(n,c){return c?.find(p=>p.id===n)||null},_filterCategoryByParentId:function(n,c){return c.parentId===n},_filterActiveCategory:function(n){return n.isActive},_getCategoryItem:function(n){return m.p.fromArray(n)},_initConfigureStore(){if(r._storeInitCallbackExecuted)return;r._storeInitCallbackExecuted=!0;const n=y.c.getCategoriesStoreInitCallback();n&&n(this)}});r.cache={},r.activeCategoryId=0,r._storeInitCallbackExecuted=!1,window&&((globalThis||{}
1).PFProductsCatalogUtilsStoreCategories=r)},74038:(O,T,a)=>{a.d(T,{Uu:()=>y,s5:()=>r,tp:()=>P});var C=a(41669),m=a.n(C);function P(n){if(n.disabled)return!1;if(n.tabIndex>=0)return!0;switch(n.nodeName.toLowerCase()){case"a":return!!n.href&&n.rel!=="ignore";case"input":return n.type!=="hidden"&&n.type!=="file";case"button":case"select":case"textarea":return!0;default:return!1}}function y(n){return P(n)?(typeof n.focus=="function"?n.focus():m()(n).focus(),document.activeElement===n):!1}function r(n){for(let c=0;c<n.childNodes.length;c++){let p=n.childNodes[c];if(y(p)||r(p))return!0}return!1}},74454:(O,T,a)=>{a.d(T,{u:()=>F});var C=a(52599),m=a(62479),P=a(96978),y=a(4092),r=a(65236),n=a(95778),c=a(89001),p=a(49102),S=a(84420),x=a(24055);const F=Class({prefix:"",category:null,products:[],totalProductCount:null,variantIds:[],activeProductId:null,activeVariantId:null,filter:null,skipHistory:!1,openedFirstTime:!1,productSearchKeywords:null,activeTab:"",customMainHeader:"",documentTitle:"",action:r.PFProductsCatalogCommon.EVENT_NAME,catalogType:"",productsViewPage:1,productColor:null,productSize:null,productOutlineColor:null,productEmbroiderySubTechnique:null,isOnPopstate:!1,openDesigner:!1,quickDesign:null,scrollToTop:!1,geoElementId:"",suggestedProduct:null,isRenderRequired:!0,filterExtraParams:{},__construct:function(){this.catalogType=r.w.catalogType||r.PFProductsCatalogCommon.TYPE_PP},getCategoryId:function(){return this.category?this.category.id:0},getObject:function(){return{action:this.action,activeProductId:this.activeProductId,category:this.category?JSON.stringify(this.category):null,products:this.products?JSON.stringify(this.products):null,activeTab:this.activeTab,filter:this.filter?JSON.stringify(this.filter):null}},getTitle:function(){if(this.customMainHeader)return this.customMainHeader;if(!this.category||!this.category.id)return r.PFProductsCatalogCommon.PAGE_TITLES[this.catalogType];if(this.category.seo[this.catalogType]){var h=this.category.seo[this.catalogType],l=Object.values(h).pop();if(l&&l.mainHeading)return l.mainHeading}return this.category.settings&&this.category.settings.thumbnailTitle?this.category.settings.thumbnailTitle:this.category.title},getSubtitle:function(){return this.category&&this.category.id?"":r.PFProductsCatalogCommon.PAGE_SUBTITLES[this.catalogType]?r.PFProductsCatalogCommon.PAGE_SUBTITLES[this.catalogType]:""},getDocumentTitle:function(){var h=r.PFProductsCatalogCommon.TITLES[this.catalogType];if(this.documentTitle)return this.documentTitle;if(this.activeProductId){this.catalogType===r.PFProductsCatalogCommon.TYPE_PP?h=" | Printful":h=" | "+h;var l=this.getActiveProduct().getFullTitle();return this.getActiveProduct().customTitle&&(l=this.getActiveProduct().customTitle),l+h}if(!this.category||!this.category.id)return r.PFProductsCatalogCommon.BASE_TITLES[this.catalogType]||h;if(this.category.seo[this.catalogType]){var f=this.category.seo[this.catalogType],w=Object.values(f).pop();if(w&&w.pageTitle)return w.pageTitle}return h},getUrl:function(){var h,l=new y.Url;l.path=this.prefix+"/";const f=(0,S.qt)(l.query);if(l.query.clear(),!this.category)return l.toString();if(l.path+=this.category.slug,l.hash=this.activeTab?this.activeTab:"",this.activeProductId)return l.path+="/"+this.getActiveProduct().slug,this.productColor&&(l.query.color=this.productColor),this.productTechnique&&(l.query.technique=this.productTechnique),this.productSize&&(l.query.size=this.productSize),this.activeVariantId&&(l.query.variant=this.activeVariantId),this.quickDesign&&(l.query.quickDesign=this.quickDesign),this.openDesigner&&(l.query.openDesigner=this.openDesigner),this.productOutlineColor&&(l.query.outlineColor=this.productOutlineColor),this.productEmbroiderySubTechnique?l.query.embroiderySubTechnique=this.productEmbroiderySubTechnique:delete l.query.embroiderySubTechnique,r.z.marketingParams.forEach(E=>{const v=f[E];v&&(l.query[E]=v)}),l.toString();if(this.category.id===0&&this.prefix===((h=r.PFProductsCatalogCommon.PRODUCT_CATALOG_INDEX_SLUG_CHANGES)===null||h===void 0||(h=h[p.l.locale])===null||h===void 0?void 0:h.old)&&(l.path=r.PFProductsCatalogCommon.PRODUCT_CATALOG_INDEX_SLUG_CHANGES[p.l.locale].new),!this._hasUrlParams())return l.hash="",l.path=l.path.replace(/\/$/,""),l.toString();for(var w in this.filter){var D=this.filter[w].join("!");D&&(l.query[w]=D)}return this.productSearchKeywords&&(l.query.search=this.productSearchKeywords),this.productsViewPage>1&&(l.query.page=this.productsViewPage),l.toString()},getProducts:function(){var h,l;const f=new C.J,w=(h=(l=this.category)===null||l===void 0?void 0:l.id)!==null&&h!==void 0?h:0,D=this.products?this.products.map(v=>f.getCachedProductByCategoryId(+v,w)).filter(v=>v):[],E=this.variantIds?this.variantIds.map(f.getCachedVariantById.bind(f)):[];return[].concat.apply(E,D.map(function(v){return c.I.getConfig().expandTypes.indexOf(v.type)===-1?v:f.getCachedVariantsByProductId(v.productId)}))},getActiveProduct:function(){return this.activeProductId?new C.J().getCachedProductById(this.activeProductId):null},pushToHistory:function(h=null){if(this.getDocumentTitle()&&(document.title=this.getDocumentTitle()),this._shouldPushToHistory()){var l=this.getObject(),f=this.getTitle(),w=h?this.getProductUrl(h):this.getUrl();
1this.openedFirstTime||this.activeProductId&&!n.i.isClicked||h?window.history.replaceState(l,f,w):window.history.pushState(l,f,w)}n.i.isClicked=!1},_shouldPushToHistory:function(){var h,l,f=[r.PFProductsCatalogCommon.EVENT_PRODUCTS_LOADED,r.PFProductsCatalogCommon.EVENT_TOGGLE_LOCK];return this.skipHistory||this.geoElementId||(h=(0,x.catalogFlowParams)())!==null&&h!==void 0&&h.isMultipleProductCatalogFlow()||(l=(0,x.catalogFlowParams)())!==null&&l!==void 0&&l.isMultipleProductEmbroideryCatalogFlow()?!1:f.indexOf(this.action)===-1},_hasUrlParams:function(){return this._hasFilter()||this.productSearchKeywords||this.activeTab||this.productsViewPage>1},_hasFilter:function(){return this.filter||!$.isEmptyObject(this.filter)},getProductUrl(h){if(!h)return;const l=new y.Url(window.location.href);return l.query.clear(),h.productColor&&(l.query.color=h.productColor),h.productTechnique&&(l.query.technique=h.productTechnique),h.productSize&&(l.query.size=h.productSize),h.activeVariantId&&(l.query.variant=h.activeVariantId),h.quickDesign&&(l.query.quickDesign=h.quickDesign),h.productOutlineColor&&(l.query.outlineColor=h.productOutlineColor),h.productEmbroiderySubTechnique?l.query.embroiderySubTechnique=h.productEmbroiderySubTechnique:delete l.query.embroiderySubTechnique,l.toString()}});F.createFromObject=function(h,l){var f=new F;if(!h)return f;for(var w in h)f[w]=h[w];var D=h.category?JSON.parse(h.category):null;return f.products=h.products?JSON.parse(h.products):[],f.category=D?new m.PFProductsCatalogUtilsStore().categories.getById(D.id):null,f.filter=h.filter?JSON.parse(h.filter):{},f.isOnPopstate=typeof l<"u"?l:!1,f},F.clone=function(h,l){!h instanceof F&&(h=F.createFromObject(h));var f=new F;for(var w in h)if(typeof h[w]!="function"){var D=h[w];(!D||$.isEmptyObject(D))&&l[w]&&(D=l[w]),f[w]=D}return f},F.createAndDispatch=function(h,l){var f=new F;f.action=h;for(var w in l)w!=="productsOrVariants"&&(f[w]=l[w]);if(l.productsOrVariants){f.totalProductCount=l.totalCount||null;for(var D in l.productsOrVariants){var E=l.productsOrVariants[D];if(E instanceof P.H){f.variantIds.push(E.variantId);continue}f.products.push(E.productId)}}var v=document.createEvent("CustomEvent");v.initCustomEvent(h,!1,!0,f),document.dispatchEvent(v)},r.z.createAndDispatchEvent=F.createAndDispatch,r.z.marketingParams=["utm_source","utm_medium","utm_campaign","utm_content"],window&&((globalThis||{}).PFProductsCatalogUtilsState=F)},75009:(O,T,a)=>{a.d(T,{B:()=>r});var C=a(4092),m=a(4827),P=a(82249);const y=Class({__construct:function(n){var c={title:"Sign in",bodyContent:"You need to sign in to perform this action.",signInText:"Sign in",signUpText:"Sign up",signUpCallback:function(){return!0},showFooterContent:!0,pullLeftFooter:!1,extraButtons:!1};m.mkE.O2O(c,n||{});var p=new P.y(c);p.setContent((0,m.mkE)({tag:"div",els:[c.bodyContent]}));var S=this._getValidatedReturnUrl(c.returnUrl);c.showFooterContent&&p.setFooterContent((0,m.mkE)({tag:"div",els:[c.signInText?{tag:"a",className:"pf-btn pf-btn-secondary"+(c.pullLeftFooter?" pull-left":""),text:c.signInText,href:"/auth/?returnUrl="+encodeURIComponent(S)}:!1,c.signUpText?{tag:"a",className:"pf-btn pf-btn-primary"+(c.pullLeftFooter?" pull-left":""),text:c.signUpText,href:"/auth/register/?returnUrl="+encodeURIComponent(S),onclick:c.signUpCallback}:!1,c.extraButtons?c.extraButtons:!1]})),p.show(),this._modal=p},_getValidatedReturnUrl:function(n){var c=new C.Url(n||null);return c.path+(c.query.toString()&&"?"+c.query.toString())},getModalInstance:function(){return this._modal}});window&&((globalThis||{}).PFComponentsLoginPopup=y);const r=Class({_bulletPoint:{tag:"img",src:"/static/images/icons/bullet-point-green.svg",style:{width:"17px",height:"15px",position:"absolute",marginTop:"3px"}},_headerContent:tag("div","col-sm-12"),__construct:function(n){this._par=n||new r.Par;var c=this._getSignUpContent(this._par.signUpContent),p=this._getSignUpContent(this._par.signInContent),S=this._par.returnUrl?"?returnUrl="+encodeURIComponent(this._par.returnUrl):"",x=langUrl("/auth/register")+S,F=langUrl("/auth")+S,h=window.location.pathname;this._par.signUpInHeader!=null&&(m.mkE.clearNode(this._headerContent),this._par.signUpInHeader.append(this._headerContent)),new y({title:lang("Sign up with Printful to continue"),bodyContent:tag("div","sign-up-popup-container",[tag("div","row",[this._headerContent,tag("div","col-sm-6",[tag("div",{className:"sign-up-popup-container__box sign-up-popup-container__box--thick"},[tag("div","sign-up-popup-container__header",[tag("strong",null,lang("Sign up to Printful"))]),tag("div","sign-up-popup-container__content",[tag("ul","pf-p-0",[this._getContent(c,!0)]),tag("a",{className:"pf-btn pf-btn-primary sign-up-popup-container__btn",href:x},[lang("Sign up")])])])]),tag("div","col-sm-6",[tag("div",{className:"sign-up-popup-container__box",prop:{onclick:function(){window.location=F}}},[tag("div","sign-up-popup-container__header",[lang("Already Printful user?")]),tag("div","text-center sign-up-popup-container__content",[tag("p","pf-p-0",this._getContent(p,!1)),tag("a",{className:"pf-btn pf-btn-secondary sign-up-popup-container__btn",href:F},[lang("Sign in")])])])])])]),showFooterContent:!1})},_getSignUpContent:function(n){return typeof n=="string"?JSON.parse(n):n},_getContent:function(n,c){var p=[];for(var S in n){var x=n[S];c?p.push(this._getListElement(x)):p.push(x)}return p},_getListElement:function(n){return{tag:"li",els:[this._bulletPoint,{tag:"div",els:[n]}]}}});r.Par=Class({returnUrl:"",signUpContent:null,signInContent:null,signUpInHeader:null}),window&&((globalThis||{}).PFComponentsSignUpPopup=r)},76120:(O,T,a)=>{a.d(T,{F:()=>k});var C=a(73995),m=a(78966),P=a(51447),y=a(79492),r=a(4827);function n(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function c(t,e){for(var i=0;i<e.length;i++){var o=e[i];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(t,x(o.key),o)}}
1function p(t,e,i){return e&&c(t.prototype,e),i&&c(t,i),Object.defineProperty(t,"prototype",{writable:!1}),t}function S(t,e,i){return(e=x(e))in t?Object.defineProperty(t,e,{value:i,enumerable:!0,configurable:!0,writable:!0}):t[e]=i,t}function x(t){var e=F(t,"string");return typeof e=="symbol"?e:e+""}function F(t,e){if(typeof t!="object"||!t)return t;var i=t[Symbol.toPrimitive];if(i!==void 0){var o=i.call(t,e||"default");if(typeof o!="object")return o;throw new TypeError("@@toPrimitive must return a primitive value.")}return(e==="string"?String:Number)(t)}let h=function(){function t(){n(this,t),S(this,"colorCode",""),S(this,"colorCode2",""),S(this,"colorName","")}return p(t,[{key:"getColorCodes",value:function(){const i=[];return!(this===null||this===void 0)&&this.colorCode&&i.push(this.colorCode),!(this===null||this===void 0)&&this.colorCode2&&i.push(this.colorCode2),i}}])}();const l=function(t){var e;this.par=new l.Par,r.mkE.O2O(this.par,t||{}),this.par.showBig&&(this.par.nodeClass+=" swatches--big"),this.par.showInline&&(this.par.nodeClass+=" swatches--inline"),this.par.onColorChange&&this.par.maxCount===null&&(this.par.maxCount=this.par.colors.length),this.allColors=this.normalizeColorArray(this.par.colors);var i;this.selectedColorHashes=[];var o=this.normalizeColorArray(this.par.activeColors);for(i in o)this.selectedColorHashes.push(this.getHashFromColors(o[i]));if(this.par.activeColorNames)for(i in this.par.activeColorNames){var s=this.par.activeColorNames[i],u=this.getHashFromColors(this.par.colorNames[s]);if(!u){console.error("Cannot find color for "+s+". Probably a duplicate");continue}this.selectedColorHashes.push(u)}this.node=(0,r.mkE)({tag:"div",className:"swatches",attr:{"aria-label":dlang("products","This product has {colorVariants} color variations").replace("{colorVariants}",(e=this.par.colors)===null||e===void 0?void 0:e.length)}}),this.par.maxCount&&r.mkE.addClassName(this.node,"swatches--click"),this.par.nodeClass&&r.mkE.addClassName(this.node,this.par.nodeClass),this.render()};l.prototype=new r.mkE.Base,l.prototype.allColors=null,l.prototype.selectedColorHashes=null,l.prototype.render=function(){r.mkE.clearNode(this.node);for(const t in this.allColors){const e=this.allColors[t],i=[],o=this.getHashFromColors(e);for(const u in e){if(u===y.A.luminosity)continue;const _=tag("span",{style:{backgroundColor:e[u]}});i.push(_)}const s=tag("span",{className:"swatches__item",title:this.getColorName(e)+" "+e.join("/")},i);this.par.maxCount&&(s.onclick=$.proxy(this.onColorClick,this,o)),this.selectedColorHashes.indexOf(o)!==-1&&r.mkE.addClassName(s,"swatches__item--active"),s.append(this.node)}},l.prototype.onColorClick=function(t){var e=this.selectedColorHashes.indexOf(t);e===-1?this.par.maxCount==1?this.selectedColorHashes=[t]:this.selectedColorHashes.length<this.par.maxCount&&this.selectedColorHashes.push(t):this.selectedColorHashes.splice(e,1),this.render(),this.par.onColorChange!==null&&this.par.onColorChange(this.getSelectedColors())},l.prototype.getSelectedColors=function(){var t=[];for(var e in this.allColors){var i=this.allColors[e],o=this.getHashFromColors(i);this.selectedColorHashes.indexOf(o)>-1&&t.push(i)}return t},l.prototype.getHashFromColors=function(t){return t?t.join(":").toUpperCase():!1},l.prototype.normalizeColorArray=function(t){var e=[],i={};for(var o in t){var s=t[o];if(s){s instanceof Array||(s=[s]);var u=this.getHashFromColors(s);i[u]||(e.push(s),i[u]=!0)}}return e},l.prototype.getColorName=function(t){if(t instanceof Array||(t=[t]),!this.par.colorNames)return t.join(" ");var e=this.getHashFromColors(t);for(var i in this.par.colorNames)if(e===this.getHashFromColors(this.par.colorNames[i]))return i;return t.join(" ")},l.fromProduct=function(t,e){e=e||new l.Par,e.colorNames={},e.colors=[];for(const i in t.colors){const o=t.colors[i],s=new h;if(s.colorName=o?.colorName,s.colorCode=o?.colorCode,s.colorCode2=o?.colorCode2,!s.colorCode)continue;const u=[s.colorCode.toUpperCase()];s.colorCode2&&u.push(s.colorCode2.toUpperCase()),e.colors.push(u),e.colorNames[s.colorName]=s.getColorCodes()}return new l(e)},l._colorOrder=y.A.colorOrder,l._sortColors=function(t,e){var i=t.length>1,o=e.length>1;if(i||o)return i&&!o?1:!i&&o?-1:0;var s=t[0].toUpperCase(),u=e[0].toUpperCase();return y.A.compareColorsCallback(s,u)},l.Par=function(){},l.Par.prototype.onColorChange=null,l.Par.prototype.colors=null,l.Par.prototype.nodeClass="",l.Par.prototype.activeColors=null,l.Par.prototype.activeColorNames=null,l.Par.prototype.maxCount=null,l.Par.prototype.colorNames=null,l.Par.prototype.showBig=!1,l.Par.prototype.showInline=!1,l.Par.prototype.shouldSortByLuminosity=!0,window&&((globalThis||{}).PFComponentsSwatches=l);var f=a(49102),w=a(35708),D=a(41669),E=a.n(D),v=a(52599),d=a(34865),g=a(82249),U=a(85150),H=a(67741);function W(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function tt(t,e){for(var i=0;i<e.length;i++){var o=e[i];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(t,kt(o.key),o)}}function J(t,e,i){return e&&tt(t.prototype,e),i&&tt(t,i),Object.defineProperty(t,"prototype",{writable:!1}),t}function at(t,e,i){return e=nt(e),vt(t,st()?Reflect.construct(e,i||[],nt(t).constructor):e.apply(t,i))}function vt(t,e){if(e&&(typeof e=="object"||typeof e=="function"))return e;if(e!==void 0)throw new TypeError("Derived constructors may only return object or undefined");return K(t)}function K(t){if(t===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return t}function st(){try{var t=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch{}return(st=function(){return!!t})()}function nt(t){return nt=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(e){return e.__proto__||Object.getPrototypeOf(e)},nt(t)}function Wt(t,e){if(typeof e!="function"&&e!==null)throw new TypeError("Super expression must either be null or a function");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),Object.defineProperty(t,"prototype",{writable:!1}),e&&mt(t,e)}function mt(t,e){return mt=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(i,o){return i.__proto__=o,i},mt(t,e)}function Nt(t,e,i){return(e=kt(e))in t?Object.defineProperty(t,e,{value:i,enumerable:!0,configurable:!0,writable:!0}):t[e]=i,t}function kt(t){var e=$t(t,"string");return typeof e=="symbol"?e:e+""}function $t(t,e){if(typeof t!="object"||!t)return t;var i=t[Symbol.toPrimitive];if(i!==void 0){var o=i.call(t,e||"default");if(typeof o!="object")return o;throw new TypeError("@@toPrimitive must return a primitive value.")}return(e==="string"?String:Number)(t)}let zt=function(t){function e({review:i,renderGalleryView:o,translation:s}){var u;return W(this,e),u=at(this,e),Nt(u,"isGalleryView",!1),Nt(u,"reviewTranslation",null),u.reviewText=i,u.isGalleryView=!!o,u.reviewTranslation=s,u}return Wt(e,t),J(e,[{key:"render",value:function(o){const s=new U.b;s.components={"review-text":()=>a.e(36902).then(a.bind(a,41998))},s.template='<review-text :text="text" :isGalleryView="isGalleryView" :reviewTranslation="reviewTranslation" />',s.initialData={text:this.reviewText,isGalleryView:this.isGalleryView,reviewTranslation:this.reviewTranslation},new U.V(s).prepend(o)}}])}(H.R);const yt=Class({review:null,modal:null,variant:null,expanded:!1,eventNamespace:".reviewGalleryKeyup",_editReviewCallback:null,__c
1onstruct:function(t,e,i,o,s,u){this.review=t,this._editReviewCallback=i,this.reviewableItemTitle=s,this.filters=u,this.reviewableItemTitle=s,this.rating=t.overallRating;const _=Math.round(this.rating*2)/2,I=[];for(let B=1;B<=5;B++){let L="";_>B-1&&_<B?L="-half":B>_&&(L="-outline"),I.push(tag("span",{className:`pf-i pf-i-18 pf-i-star${L} pf-mr-6 pf-text-brown`,attr:{"aria-hidden":!0}}))}t.variantId&&this._setReviewVariant();const N=t.renderGalleryView?"div":"span",b=t.renderGalleryView?" pf-mb-8":"",j=tag("div");new zt(t).render(j),this.node=tag("div",`pf-ui-body pf-py-24 review-item ${t.renderGalleryView?"pf-border-bottom-0":"pf-border-bottom"}`,[tag("div","",[tag("div",{className:"star-rating__stars",attr:{"aria-label":lang("{rating} out of 5 stars").replace("{rating}",this.rating)}},[I]),t.isRejected&&t.isOwn?tag("span","pf-badge pf-badge-small pf-badge--warning pf-mr-8",[dlang("reviews","Rejected")]):"",t.isApproved&&t.isOwn?tag("span","pf-badge pf-badge-small pf-badge--primary pf-mr-8"+b,[lang("You")]):"",!t.isApproved&&!t.isRejected?tag("span","pf-badge pf-badge-small pf-badge--info pf-mr-8",[dlang("reviews","Waiting approval")]):"",tag("strong","pf-mr-8 data-hj-suppress",[clang("person","By")," ",t.name||tag("i","",[dlang("reviews","Anonymous")])]),t.isTopReviewer?tag("span","pf-badge pf-badge-rect pf-badge--new pf-m-4 pf-mr-8 pf-position-relative",dlang("reviews","Top reviewer")):"",tag(N,"pf-mr-16",[moment.unix(t.createdAt).fromNow(),t.fromCountry?" "+dlang("reviews","from {country}").replace("{country}",t.fromCountry):""]),t.techniqueDisplayName?tag("span","pf-badge pf-badge-small pf-badge--default pf-mr-8",t.techniqueDisplayName):"",this.variant&&this.variant.size?tag("span","pf-badge pf-badge-small pf-badge--default pf-mr-8",this._getVariantSize()):"",this._getColorBadge(),t.canDelete&&e?tag("a",{className:"pf-link float-none"+(t.technique?" pf-ml-8":""),onclick:e},[lang("Remove")]):"",i&&!t.isApproved&&!t.renderGalleryView?tag("a",{className:"pf-link pf-ml-8 float-none",onclick:this._editReview},[lang("Edit")]):"",tag("div",{className:"pf-mt-16"},[j]),t.renderGalleryView?"":this._getImageNode(),this._reviewActionNode=tag("div","pf-text-md-right pf-mt-24 review-actions clearfix",[t.customerReviews.length&&!t.renderGalleryView?tag("span",{className:"pf-link pf-pointer more-reviews-link",onclick:this._toggleCustomerReviews.bind(this)},[t.customerReviews.length===1&&!t.renderGalleryView?dlang("reviews","1 more review for different variants"):dlang("reviews","{count} more reviews for different variants").replace("{count}",t.customerReviews.length),this.chervronDown=tag("img",{className:"pf-ml-8",src:"/static/images/icons/chevron-down.svg"}),this.chervronUp=tag("img",{className:"pf-ml-8 hidden",src:"/static/images/icons/chevron-up.svg"})]):"",this.childReviewContainer=tag("div","pf-text-left hidden child-container")])])]),this._buildCustomerReviewsNode(t.customerReviews||[],o,i,e)},_buildCustomerReviewsNode:function(t,e,i,o){if(t.length)for(const s in t){const u=yt(t[s],o?this._deleteChildReview.bind(this,t[s],e):null,i,null,this.reviewableItemTitle,this.filters).append(this.childReviewContainer);u.node.className=Number(s)+1===t.length?"pf-ui-body review-item pf-pt-16":u.node.className}},_deleteChildReview:function(t,e){confirm(lang("Are you sure? This cannot be undone!"))&&(d.V.show(this.node,{minHeight:150}),new v.J().deleteReview(t.reviewId,E().proxy(function(){e()},this)))},_toggleCustomerReviews:function(){this.expanded=!this.expanded,this.expanded?(r.mkE.addClassName(this.chervronDown,"hidden"),r.mkE.removeClassName(this.chervronUp,"hidden"),r.mkE.removeClassName(this.childReviewContainer,"hidden")):(r.mkE.addClassName(this.chervronUp,"hidden"),r.mkE.removeClassName(this.chervronDown,"hidden"),r.mkE.addClassName(this.childReviewContainer,"hidden"))},_setReviewVariant:function(){var t=new v.J;this.variant=t.getCachedVariantById(this.review.variantId)},_getVariantSize:function(){return this.variant?dlang("products",this.variant.size):""},_getColorBadge:function(){return!this.variant||!this.variant.getCachedProduct()||this.variant.getCachedProduct().colors.length<=1?"":tag("span","pf-mr-8",this._getBackgroun
1dColor())},_getBackgroundColor:function(){const t=[];if(this.variant){var e,i;const o=this.variant.color&&this.variant.colorCode?this.variant.color+" "+this.variant.colorCode:"",s=[this.variant.colorCode,this.variant.colorCode2].filter(b=>!!b),u=(e=s[0])!==null&&e!==void 0?e:"",_=(i=s[1])!==null&&i!==void 0?i:u,I=tag("span",{className:"review-item__swatch-item",style:`background: linear-gradient(90deg, ${u} 50%, ${_} 50%)`}),N=tag("a",{className:"swatches__item",title:this.variant.colorCode2?o+"/"+this.variant.colorCode2:o,attr:{role:"complementary","aria-label":this.variant.name?dlang("reviews","Review for color {color}").replace("{color}",this.variant.name):dlang("reviews","Review for specific color")}},[I]);E()(N).tooltip({container:"body",trigger:(0,m.ln)()?"manual":"hover"}),t.push(N)}return t},_getImageNode:function(){var t=this.review.images;if(!t.length)return"";for(var e=tag("div","review-item__image-block pf-mt-8"),i=0,o=this.review.images.length;i<o;i++){var s=this.review.images[i];tag("a",{href:s.urlLarge,className:"review-item__image pf-p-0 pf-mx-2 pf-mt-4 pf-mb-0",onclick:this._createSlider.bind(this,this.review.images[i].key),style:{backgroundImage:"url("+encodeURI(s.urlThumb)+")"},attr:{"aria-label":dnlang("reviews","Photo by {username}","Photo by {username}, {current} out of {total}",o).replace("{username}",this.review.name).replace("{current}",i+1).replace("{total}",o)}}).append(e)}return e},_getModal:function(){var t=new g.y.Par;return t.nodeClass="pf-modal",t.modalDialogClass="modal-xxl modal-dialog-scrollable",t.onShown=function(){this.modal.setContent(this.vueWrapper)}.bind(this),t.onClose=function(){this.vueWrapper.destroy(),this.modal.remove(),E()(document).unbind(this.eventNamespace)}.bind(this),this.modal=new g.y(t),this.modal},_editReview:function(){this._editReviewCallback(this.review)},_createSlider(t,e){e&&e.preventDefault(),this.filters.isRequestForGalleryView=!0;const i=new U.b;i.components={"product-review-image-slider":()=>a.e(89049).then(a.bind(a,18622))},i.initialData={reviewTextId:"gallery-view-review",filters:this.filters,imageKey:t},i.template='<product-review-image-slider :filters="filters" :imageKey="imageKey" :reviewTextId="reviewTextId"/>';const o=this._getModal();o.setTitle(this.reviewableItemTitle),this.vueWrapper=new U.V(i),o.show()}},r.mkE.Base);(globalThis||{}).PFProductReviewListRow=yt;var Gt=a(9156),_t=a(56076);const Z=function(t,e){var i;this.file=t;const o=this.file.isReady||((i=this.file)===null||i===void 0?void 0:i.key)&&!(this.file instanceof _t.n);if(this.onRemoveCallback=e,this.node=(0,r.mkE)({tag:"div",className:"review-upload review-upload--loading"}),this.addOverlayNode(),o){const s=new Image;s.onload=E().proxy(this.onImageLoaded,this),s.src=this.file.urlThumb}};Z.prototype=new r.mkE.Base,Z.prototype.onImageLoaded=function(){r.mkE.removeClassName(this.node,"review-upload--loading"),r.mkE.clearNode(this.node),new Gt.b({urlImage:this.file.urlThumb}).append(this.node),this.addOverlayNode()},Z.prototype.addOverlayNode=function(){(0,r.mkE)({tag:"div",className:"review-upload__overlay",els:[{tag:"a",className:"pf-btn pf-btn-secondary",text:"Remove",onclick:E().proxy(function(){this.onRemoveCallback&&this.onRemoveCallback(this.file)},this)}]}).append(this.node)},(globalThis||{}).PFProductReviewFormFileThumb=Z;var Jt=a(26617),Qt=a(19886),et=a(11003);const A=function(t,e=null){this.callbackButtonFunction=t,this.uploader=new Jt.Q({onUploaded:this.onFileUploaded.bind(this),onProcessed:this.onFileProcessed.bind(this),onProcessingFailed:this.onFileFailed.bind(this),caption:lang("Upload images"),uploadType:"review",allowMultiple:!0}),this.textAreaKeywordErrorMessage=this.getTextAreaKeywordErrorMessageNode(),this.imageErrorMessage=this.getImageErrorMessageNode(),this.keywords=null,this.usedKeywords=new Set,this.invalidText=!1,this.getKeywords().then(i=>{if(i.success===!1){this.keywords=[];return}this.keywords=i.keywords,e&&e.review&&this.onKeyUp()}),this.nodeTextarea=this.getTextAreaNode(),this.node=(0,r.mkE)({tag:"div",className:"review-form-submit",els:[this.getTitleNode(),this.nodeTextarea,this.textAreaKeywordErrorMessage,this.getUploadBlockNode()]}),e&&(this.nodeTextarea.value=e.review,this.existingImages=e.images,this.renderUploadedFiles())};A.prototype=new r.mkE.Base,A.prototype.constructor=A,A.prototype.getTitleNode=function(){return(0,r.tag)("h4","pf-h4 pf-mt-24 pf-mb-8",[dlang("reviews","Your review (optional)"),(0,r.tag)("span",{className:"pf-text-red pf-ml-2 pf-mr-2",innerHTML:"*"}),this.getTooltipNode()])},A.prototype.getTextAreaNode=function(){return(0,r.tag)("textarea",{className:"form-control pf-mb-12",style:{height:"100px"},attr:{placeholder:dlang("reviews","We\u2019d love to hear what you think. Write your thoughts on the products fit, feel, style, etc.")},prop:{onkeyup:this.onKeyUp.bind(this)}})},A.prototype.getUploadBlockNode=function(){return(0,r.tag)("div","pf-mb-12",[this.nodeUploadedFiles=(0,r.tag)("div"),this.imageErrorMessage,this.uploader])},A.prototype.getImageErrorMessageNode=function(){return(0,r.tag)("div","pf-text-red hidden pf-mb-8 pf-ui-body",[dlang("reviews","Upload 2 high-quality images that have the product displayed in the center")])},A.prototype.getTextAreaKeywordErrorMessageNode=function(){return(0,r.tag)("p",{className:"pf-text-red hidden",innerHTML:null})},A.prototype.getTooltipNode=function(){const e={className:"pf-i pf-i-18 pf-i-information pf-text-gray",data:{toggle:"tooltip",placement:"bottom",html:!0,template:`${(0,r.tag)("div",{className:"tooltip",attr:{role:"tooltip"}},[(0,r.tag)("div","tooltip-arrow"),(0,r.tag)("div",{className:"tooltip-inner",style:{maxWidth:"350px"}})]).outerHTML}`,trigger:"manual"},prop:{onmouseover:this.showTooltip.bind(this),onmouseleave:this.hideTooltip.bind(this,1e3)},attr:{title:dlang("reviews","<b>To avoid your review being declined</b>, please keep it primarily about the product itself\u2013the fit, the feel, the material, the construction, and the overall quality. To include aspects about services unrelated to the product, such as shipping, fulfillment, or customer service, please use the <i>Service review</i> block. You can read more about product review acceptance criteria {acceptanceCriteriaLink} and about our product reviews policy {policyLink}").replace("{acceptanceCriteriaLink}",`<a href="${this.getAcceptanceCriteriaLink()}" target="_blank">`+clang("clickable link","here")+"</a>").replace("{policyLink}",`<a href="${this.getPolicyLink()}" target="_blank">`+clang("clickable link","here")+"</a>")}};return(0,r.tag)("span",e)},A.prototype.getAcceptanceCriteriaLink=function(){var t;const e=f.l.locale,i={en_US:"https://help.printful.com/hc/en-us/articles/4408225181202",fr_FR:"https://help.printful.com/hc/fr/articles/4408225181202",de_DE:"https://help.printful.com/hc/de/articles/4408225181202",es_ES:"https://help.printful.com/hc/es/articles/4408225181202",it_IT:"https://help.printful.com/hc/it/articles/4408225181202",ja_JP:"https://help.printful.com/hc/ja/articles/4408225181202"};return(t=i[e])!==null&&t!==void 0?t:i.en_US},A.prototype.getPolicyLink=function(){const t=f.l.locale,e=["en_US","de_DE","ja_JP"],i={en_US:"https://help.printful.com/hc/en-us/articles/5475310975516",de_DE:"https://help.printful.com/hc/de/articles/5475310975516",ja_JP:"https://help.printful.com/hc/ja/articles/5475310975516"};
1return e.includes(t)?i[t]:i.en_US},A.prototype.showTooltip=function(t){this.clearTooltipHideDelay(),this.tooltipTrigger=t.target;const e=this;$(this.tooltipTrigger).on("shown.bs.tooltip",function(i){const o=i.target.nextElementSibling;$(o).off(),$(o).on("mouseenter",function(){e.clearTooltipHideDelay()}),$(o).on("mouseleave",function(){e.hideTooltip(100)})}),$(this.tooltipTrigger).tooltip("show")},A.prototype.hideTooltip=function(t){const e=this;this.tooltipCloseDelay=setTimeout(function(){$(e.tooltipTrigger).tooltip("hide")},t)},A.prototype.clearTooltipHideDelay=function(){clearTimeout(this.tooltipCloseDelay)},A.prototype.getKeywords=function(){return(0,et.y)("product-review-keywords/get-keywords-by-language",{locale:f.l.locale})},A.prototype.onKeyUp=function(){if(this.keywords.length===0)return;let t=null,e=null;const i=this.nodeTextarea.value.toLowerCase();for(const o in this.keywords){const s=this.keywords[o];s.keyword=s.keyword.toLowerCase();const u=i.indexOf(s.keyword);if(u>-1){this.usedKeywords.add(s.keyword);const _=i[u-1],I=i[u+s.keyword.length];(e===null||u<e)&&this.isValidAdjoiningChar(_)&&this.isValidAdjoiningChar(I)&&(e=u,t=s.warningMessage)}}e===null?this.textAreaKeywordErrorMessage.classList.add("hidden"):(this.textAreaKeywordErrorMessage.classList.remove("hidden"),this.textAreaKeywordErrorMessage.innerHTML!==t&&(this.textAreaKeywordErrorMessage.innerHTML=t))},A.prototype.isValidAdjoiningChar=function(t){let e=!1;const i=/[!"#$%&'()*+,-./\\:;<=>?@[\]^_`{|}~\s]/g;return(typeof t>"u"||t.match(i)!==null)&&(e=!0),e},A.prototype.onFileUploaded=function(t){this.uploadedImages=this.uploadedImages||{},this.uploadedImages[t.temporaryFileKey]=t,this.renderUploadedFiles()},A.prototype.onFileProcessed=function(t){this.uploadedImages[t.temporaryFileKey]&&(this.uploadedImages[t.temporaryFileKey]=t,this.renderUploadedFiles())},A.prototype.onFileFailed=function(t){var e=new Qt.p('"'+t.filename+'" failed to process: '+t.reasonFailed,"danger",4e3);$((0,r.tag)("div","",[e])).insertAfter(this.nodeTextarea),this.onFileRemove(t)},A.prototype.renderUploadedFiles=function(){r.mkE.clearNode(this.nodeUploadedFiles),this.images={...this.uploadedImages,...this.existingImages};let t=!0,e;for(const i in this.images){const o=this.images[i];o.isReady||(t=!1),e=new Z(o,this.onFileRemove.bind(this)),o.key&&!(o instanceof _t.n)&&(e=new Z(o,this.onRemoveExistingFile.bind(this)),t=!0),e.append(this.nodeUploadedFiles)}this.callbackButtonFunction(t)},A.prototype.onFileRemove=function(t){delete this.uploadedImages[t.temporaryFileKey],this.renderUploadedFiles()},A.prototype.onRemoveExistingFile=function(t){this.existingImages=this.existingImages.filter(e=>e.key!==t.key),this.renderUploadedFiles()},(globalThis||{}).PFProductReviewFormSubmitArea=A;function qt(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function xt(t,e){for(var i=0;i<e.length;i++){var o=e[i];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(t,Zt(o.key),o)}}function Yt(t,e,i){return e&&xt(t.prototype,e),i&&xt(t,i),Object.defineProperty(t,"prototype",{writable:!1}),t}function Zt(t){var e=Xt(t,"string");return typeof e=="symbol"?e:e+""}function Xt(t,e){if(typeof t!="object"||!t)return t;var i=t[Symbol.toPrimitive];if(i!==void 0){var o=i.call(t,e||"default");if(typeof o!="object")return o;throw new TypeError("@@toPrimitive must return a primitive value.")}return(e==="string"?String:Number)(t)}function te(t,e,i){return e=lt(e),ee(t,Ft()?Reflect.construct(e,i||[],lt(t).constructor):e.apply(t,i))}function ee(t,e){if(e&&(typeof e=="object"||typeof e=="function"))return e;if(e!==void 0)throw new TypeError("Derived constructors may only return object or undefined");return ie(t)}function ie(t){if(t===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return t}function Ft(){try{var t=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch{}return(Ft=function(){return!!t})()}function lt(t){return lt=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(e){return e.__proto__||Object.getPrototypeOf(e)},lt(t)}function oe(t,e){if(typeof e!="function"&&e!==null)throw new TypeError("Super expression must either be null or a function");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),Object.defineProperty(t,"prototype",{writable:!1}),e&&wt(t,e)}function wt(t,e){return wt=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(i,o){return i.__proto__=o,i},wt(t,e)}let re=function(t){function e(i){var o;return qt(this,e),o=te(this,e),o.nodeTextarea=o.getTextAreaNode(),o.node=(0,r.tag)("div","review-form-submit",[o.getTitleNode(),o.nodeTextarea]),i&&(o.nodeTextarea.value=i.reviewComplaint.text,i.reviewComplaint.text.length>0&&(o.nodeTextarea.disabled=!0)),o}return oe(e,t),Yt(e,[{key:"getTitleNode",value:function(){return(0,r.tag)("h4","pf-h4 pf-mt-24 pf-mb-8",[dlang("reviews","Service review (optional)"),(0,r.tag)("span",{className:"pf-text-red pf-ml-2",innerHTML:"*"})])}},{key:"getTextAreaNode",value:function(){return(0,r.tag)("textarea",{className:"form-control pf-mb-12",style:{height:"100px"},attr:{placeholder:dlang("reviews","Review the fulfillment time, customer support, shipping, etc.")}})}}])}(H.R);const Q=function(t){this.stars=t.rating||null,this.defaultClass="pf-i pf-i-24 pf-text-brown pf-pr-8 pf-keydown-click",this.starType=" pf-i-star",this.nodeStars=[],this.titleData=t;for(var e=1;e<=5;e++)this.nodeStars.push(tag("div",{className:this.defaultClass+this.starType,oncl
1ick:$.proxy(this.setStars,this,e),attr:{role:"button",tabindex:"0","aria-label":this.textual[e-1]},prop:{onmouseover:this.highlightStars.bind(this,e)}}));this.nodeTextual=(0,r.mkE)({tag:"span",className:"review-stars__textual"}),this.node=(0,r.mkE)({tag:"div",els:[tag("h4","pf-h4 pf-mt-24 pf-mb-4",this.titleData.categoryTitle),{tag:"span",className:"review-stars__stars",els:this.nodeStars,prop:{onmouseout:this.highlightStars.bind(this,!1)}},this.nodeTextual]}),this.highlightStars()};Q.prototype=new r.mkE.Base,Q.prototype.textual=[dlang("reviews","Terrible"),dlang("reviews","Not impressed"),dlang("reviews","It's fine"),dlang("reviews","Like it"),dlang("reviews","Love it")],Q.prototype.getStars=function(){return{category_id:this.titleData.categoryId,rating:this.stars}},Q.prototype.setStars=function(t){this.stars=t,this.highlightStars(this.stars)},Q.prototype.highlightStars=function(t){t=t||this.stars;for(var e in this.nodeStars)e<=t-1?this.nodeStars[e].className=this.defaultClass+this.starType:this.nodeStars[e].className=this.defaultClass+this.starType+"-outline";this.nodeTextual.classList.remove("pf-text-red"),this.nodeTextual.textContent=this.textual[t-1]},(globalThis||{}).PFProductReviewFormStarRating=Q;var ae=a(59963);const R=function(t,e,i,o,s=null){this.reviewableItem=t,this.existingReview=s,this.modal=e,this.overallQualityRatingCategory=o,this.onSubmittedCallback=i,this.reviewVariant=s?{...s.variantInfo,technique:s.technique,techniqueDisplayName:s.techniqueDisplayName,productId:s.productId,variantId:s.variantId}:this.reviewableItem.reviewVariant,this.pendingReviewId=s?s.pendingReviewId:this.reviewVariant.pendingReviewId,this.badges=this.getVariantBadges(),this.colorCodes=this.reviewVariant.colorCodes,this.setReviewStars(),this.tableBlock=this.getTableBlockNode(),this.featuredReviewStatus=this.getFeaturedReviewStatusNode(),this.featuredReviewDetails=this.getFeaturedReviewDetailsNode(),this.featuredReviewErrorMessage=this.getFeaturedReviewErrorMessageNode(),this.formNode=new A(this.uploadCallback.bind(this),this.existingReview),this.serviceReviewFormNode=new re(this.existingReview),this.reviewDisclaimer=this.getReviewDisclaimerNode(),this.reviewDivider=this.getReviewDividerNode(),this.existingReview&&this.setValuesForExistingReview(),this.node=this.getFormContent(),(0,ae.Q)(this.nodeTextarea)};R.prototype=new r.mkE.Base,R.prototype.selectedColor="",R.prototype.selectedSize="",R.prototype.getFormContent=function(){return(0,r.tag)("div","review-form",[this.tableBlock,this.overallQualityStarRatingNode,this.formNode,this.serviceReviewFormNode,this.featuredReviewStatus,this.featuredReviewErrorMessage,this.featuredReviewDetails,this.reviewDisclaimer,this.reviewDivider,(0,r.tag)("div","pf-mt-16",[this.getAddReviewButtonNode()])])},R.prototype.setValuesForExistingReview=function(){this.featuredReviewCheckBox.checked=this.existingReview.isFeatured,this.existingReview.featuredReviewData.instagramUrl&&(this.instagramUrl.value=this.existingReview.featuredReviewData.instagramUrl),this.existingReview.isFeatured&&this.featuredReviewDetails.classList.remove("hidden")},R.prototype.getReviewDividerNode=function(){return(0,r.tag)("div","review-divider")},R.prototype.getTableBlockNode=function(){let t="";const e=[];if(this.badges.forEach(o=>{e.push((0,r.tag)("span","pf-badge pf-badge-small pf-badge--default pf-mr-8",o))}),this.colorCodes.length){var i;t=(0,r.tag)("span","swatches__item",[(0,r.tag)("span",{className:"review-item__swatch-item",title:this.reviewVariant.color,style:"background: linear-gradient(90deg, {color1} 50%, {color2} 50%)".replace("{color1}",this.colorCodes[0]).replace("{color2}",(i=this.colorCodes[1])!==null&&i!==void 0?i:this.colorCodes[0])})])}return(0,r.tag)("div","pf-d-flex pf-m-0",[(0,r.tag)("div","",[(0,r.tag)("img",{className:"img-responsive center-block",src:this.reviewVariant.imgUrl,attr:{width:90}})]),(0,r.tag)("div","",[(0,r.tag)("div","pf-h5 pf-pl-24",this.reviewableItem.getTitle()),(0,r.tag)("div","pf-h5 pf-pl-24",[...e,t])])])},R.prototype.getFeaturedReviewStatusNode=function(){return(0,r.tag)("label","review-form__featured pf-ui-body pf-mr-16 pf-mt-12 pf-mb-8",[this.featuredReviewCheckBox=(0,r.tag)("input",{type:"checkbox",attr:{value:0},prop:{onchange:this.renderDetails.bind(this)},className:"pf-mr-8",style:{marginTop:"6px"}}),(0,r.tag)("span",{innerHTML:dlang("reviews","I want my review to be considered as a {linkStart}featured review{linkEnd} on Printful's website").replace("{linkStart}",`<a class="pf-link" target="_blank" href="${langUrl("/faq/products/478-how-can-i-get-featured-on-printful-s-website-")}">`).replace("{linkEnd}","</a>")})])},R.prototype.getFeaturedReviewErrorMessageNode=function(){return this.featuredReviewErrorMessage=(0,r.tag)("div","error-message pf-text-red hidden",dlang("reviews","This field is required"))},R.prototype.renderDetails=function(t){const e=t.target;e.checked?(e.value=1,this.featuredReviewDetails.classList.remove("hidden")):(e.value=0,this.featuredReviewDetails.classList.add("hidden"))},R.prototype.getFeaturedReviewDetailsNode=function(){return(0,r.tag)("div","hidden",[(0,r.tag)("label",{className:"pf-text-muted pf-ui-body pf-mb-16",innerHTML:dlang("reviews","We\u2019ll approve your submission if the content follows our {linkStart}featured reviews policy{linkEnd}, and display it with a link to your product on your storefront").replace("{linkStart}",`<a class="pf-link" target="_blank" href="${langUrl("/faq/products/478-how-can-i-get-featured-on-printful-s-website-")}">`).replace("{linkEnd}","</a>")}),(0,r.tag)("label","pf-h5",[dlang("reviews","Link to an Instagram post showcasing the product")]),this.instagramUrl=(0,r.tag)("input",{type:"text",className:"form-control pf-mb-12"}),this.urlErrorMessage=(0,r.tag)("div","pf-text-red hidden pf-ui-body",[dlang("reviews","Please provide a valid link")])])},R.prototype.uploadCallback=function(t){this.nodeSubmit&&(this.nodeSubmit.classList.remove("disabled"),this.nodeSubmit.innerText=dlang("reviews",this.submitButtonText),!t&&(this.nodeSubmit.classList.add("disabled"),this.nodeSubmit.innerText=lang("Waiting for images\u2026")))},R.prototype.getReviewDisclaimerNode=function(){return(0,r.tag)("div","pf-mt-24 pf-pb-16 pf-text-muted pf-ui-caption review-disclaimer",[(0,r.tag)("span",{className:"pf-text-red pf-mr-2",innerHTML:"*"}),dlang("reviews","Your review might be used for Printful's marketing purposes")])},R.prototype.getAddReviewButtonNode=function(){return this.submitButtonText=this.existingReview?dlang("reviews","Edit review"):dlang("reviews","Add review"),(0,r.tag)("div","",[this.nodeSubmit=(0,r.tag)("a",{className:"pf-btn pf-btn-primary pf-mr-12",oncl
1ick:this.onSubmit.bind(this)},dlang("reviews",this.submitButtonText)),(0,r.tag)("a",{className:"pf-btn pf-btn-secondary",onclick:this.onModalHide.bind(this)},dlang("reviews","Not now"))])},R.prototype.setSelectedColor=function(t){R.prototype.selectedColor=t},R.prototype.setSelectedSize=function(t){R.prototype.selectedSize=t},R.prototype.uploadedImages=null,R.prototype.onSubmit=function(){let t=!1;this.overallQualityStarRatingNode.getStars().rating||(this.overallQualityStarRatingNode.nodeStars.forEach(e=>{e.classList.remove("pf-text-brown"),e.classList.add("pf-text-red")}),this.overallQualityStarRatingNode.nodeTextual.classList.add("pf-text-red"),this.overallQualityStarRatingNode.nodeTextual.textContent=dlang("reviews","To rate is required"),t=!0),this.featuredReviewCheckBox.checked?this.validateInstagramUrl(this.instagramUrl.value).then(e=>{e?this.urlErrorMessage.classList.add("hidden"):(t=!0,this.urlErrorMessage.classList.remove("hidden")),this.formNode.images&&Object.keys(this.formNode.images).length===2?this.formNode.imageErrorMessage.classList.add("hidden"):(t=!0,this.formNode.imageErrorMessage.classList.remove("hidden")),d.V.hide(this.node),this.submitReview(t)}):this.submitReview(t)},R.prototype.onSubmitRe=function(t,e){r.mkE.clearNode(this.node);const i=(0,r.tag)("div");t?(this.modal.setTitle(dlang("reviews","Product review submitted")),this.getReviewAffiliateBanner(i)):(this.modal.setTitle(dlang("reviews","Error submitting the review")),(0,r.tag)("div",null,e).append(i)),this.modal.setContent(i),this.onSubmittedCallback&&this.onSubmittedCallback(e)},R.prototype.getReviewAffiliateBanner=function(t){const e=new U.b;e.components={"review-affiliate-banner":()=>a.e(51304).then(a.bind(a,7693))},e.template=`<review-affiliate-banner 2 @on-modal-close="emitEvent('on-modal-close')" 3 @on-ask-for-review="emitEvent('on-ask-for-review')" 4 />`,e.emitEvent=i=>{i==="on-modal-close"&&this.modal.remove(),i==="on-ask-for-review"&&this.modal.setContent((0,r.tag)("div",null,[this.getExternalReviewRequest("trustpilot"),(0,r.tag)("div",null,[(0,r.tag)("a",{text:lang("Review us"),title:lang("Review us"),href:"https://www.trustpilot.com/review/printful.com",className:"pf-btn pf-btn-primary pf-mr-8",target:"_blank",attr:{rel:"nofollow"}}),(0,r.tag)("a",{text:lang("Cancel"),title:lang("Cancel"),className:"pf-btn pf-btn-secondary",prop:{onclick:()=>{this.modal.remove()}}})])]))},this.vueWrapper=new U.V(e),this.vueWrapper.prepend(t)},R.prototype.getExternalReviewRequest=function(t){const e=t==="trustpilot"?PF.ASSETS_URL+"images/products-catalog/trustpilot-review.svg":PF.ASSETS_URL+"images/products-catalog/yelp-review.svg",i=t==="trustpilot"?dclang("products","trustpilot review request","We\u2019re so glad you\u2019re loving Printful products! Would you consider <strong>reviewing us on Trustpilot?</strong> Sharing your experience and help others find Printful."):dclang("products","yelp review request","We\u2019re so glad you\u2019re loving Printful products! Would you consider <strong>reviewing us on Yelp?</strong> Sharing your experience and help others find Printful.");return(0,r.tag)("div","pf-pb-16",[(0,r.tag)("p","pf-h3 pf-m-0",dlang("","Thanks for the positive reviews!")),(0,r.tag)("img",{className:"img-responsive pf-mx-auto pf-my-24",src:e,attr:{alt:"collect reviews "+t}}),(0,r.tag)("p",{className:"pf-m-0",innerHTML:i})])},R.prototype.validateInstagramUrl=function(t){return(0,et.y)("product-reviews/validate-instagram-url",{instagramUrl:t}).then(e=>e.success)},R.prototype.submitReview=function(t){if(t)return;d.V.show(this.node);const e=[];for(const s in this.formNode.images){const u={key:this.formNode.images[s].temporaryFileKey,isTemporaryFile:!0};this.formNode.images[s].key&&!(this.formNode.images[s]instanceof _t.n)&&(u.key=this.formNode.images[s].key,u.isTemporaryFile=!1),e.push(u)}const i=this.existingReview&&this.existingReview.reviewComplaint.text.length?this.existingReview.reviewComplaint.text:this.serviceReviewFormNode.nodeTextarea.value,o={productId:this.reviewableItem.getId(),overallRating:this.overallQualityStarRatingNode.getStars().rating,technique:this.reviewVariant.technique,selectedVariant:this.reviewVariant.variantId,pendingReviewId:this.pendingReviewId,review:this.formNode.nodeTextarea.value,complaint:i,images:e,isForFeatured:this.featuredReviewCheckBox.checked,instagramUrl:this.instagramUrl.value,isEditing:!!this.existingReview,oldReviewId:this.existingReview?this.existingReview.reviewId:null,ratingCategoryCriterionIds:[]};new v.J().submitProductReview(o,this.onSubmitRe.bind(this)),this.formNode.usedKeywords.size>0&&this.saveUsedKeywords()},R.prototype.saveUsedKeywords=function(){(0,et.y)("product-review-keywords/update-keyword-counters",{keywords:Array.from(this.formNode.usedKeywords),locale:f.l.locale}).then(()=>Promise.resolve(!0))},R.prototype.setReviewStars=function(){const t=this.existingReview?this.existingReview.overallQualityStarRating:this.overallQualityRatingCategory;this.overallQualityStarRatingNode=new Q(t)},R.prototype.onModalHide=function(){this.modal.hide()},R.prototype.getVariantBadges=function(){return[this.reviewVariant.techniqueDisplayName,this.reviewVariant.size].filter(t=>t)},(globalThis||{}).PFProductReviewForm=R;var Ot=a(75009),se=a(4092),Dt=a(74038);
4const z=function(t,e,i,o=null,s,u=!1){if(this._reviewableItem=t,this.overallQualityRatingCategory=s,!PF.Customer.customerId){this.signupPopUp();return}const _=!!i;_&&(this._reviewableItem.reviewVariant=i),this.onSubmittedCallback=e;const I=tag("div");d.V.show(I,{minHeight:120});const N=new g.y.Par;if(N.accessibility=!0,N.onShown=b=>{(0,Dt.s5)(b.target.querySelector(".modal-body"))},o&&(N.onClose=()=>{(0,Dt.Uu)(o)}),this.modal=new g.y(N),Object.keys(this._reviewableItem.reviewVariant).length===0)return this.reviewNotAllowedModal();if(this.modal.setTitle(dlang("reviews","Add a review")),this.modal.setContent(I),this.modal.show(),u)return this.beginReviewing();new v.J().isExceededProductVariantReviewCount(t,_,(b,j)=>{b?_?this.editReview(i):this.beginReviewing():this.onNotAllowedToSubmit(j)})};z.prototype.onNotAllowedToSubmit=function(t){this.modal.setTitle("Oops!"),this.modal.setContent(tag("div","",[tag("p","pf-mb-32",t),tag("a",{className:"pf-btn pf-btn-primary",onclick:function(){this.modal.remove()}.bind(this)},lang("Got it"))]))},z.prototype.beginReviewing=function(){this.modal.setContent(new R(this._reviewableItem,this.modal,this.onSubmittedCallback,this.overallQualityRatingCategory))},z.prototype.editReview=function(t){this.modal.setContent(new R(this._reviewableItem,this.modal,this.onSubmittedCallback,this.overallQualityRatingCategory,t))},z.prototype.signupPopUp=function(){const t=new se.Url,e=Ot.B.Par;e.returnUrl=t.path+(t.query.toString()?"?"+t.query.toString():""),e.signUpContent=[[tag("span",{innerHTML:lang("<strong>Automatic</strong> order fulfillment")})],[tag("span",{innerHTML:lang("Download free print file <strong>templates</strong> and <strong>mockups</strong>")})],lang("No upfront or monthly fees")],e.signInContent=[dlang("reviews","Please sign in to review products.")],new Ot.B(e)},z.prototype.reviewNotAllowedModal=function(){this.modal.setTitle(dlang("reviews","Attention"));const t=tag("div","review-form",[tag("div","",dlang("reviews","You can add a product review once your order is marked as delivered"))]);this.modal.setContent(t),this.modal.show()},(globalThis||{}).PFProductReview=z;var ne=a(76763),le=a(26006),de=a(90577),q=a(65236);function At(t,e){for(var i=0;i<e.length;i++){var o=e[i];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(t,Bt(o.key),o)}}function ce(t,e,i){return e&&At(t.prototype,e),i&&At(t,i),Object.defineProperty(t,"prototype",{writable:!1}),t}function ue(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function Y(t,e,i){return(e=Bt(e))in t?Object.defineProperty(t,e,{value:i,enumerable:!0,configurable:!0,writable:!0}):t[e]=i,t}function Bt(t){var e=pe(t,"string");return typeof e=="symbol"?e:e+""}function pe(t,e){if(typeof t!="object"||!t)return t;var i=t[Symbol.toPrimitive];if(i!==void 0){var o=i.call(t,e||"default");if(typeof o!="object")return o;throw new TypeError("@@toPrimitive must return a primitive value.")}return(e==="string"?String:Number)(t)}let bt=ce(function t(){ue(this,t),Y(this,"reviewableItem",null),Y(this,"callbackOnShowAll",null),Y(this,"totalCount",0),Y(this,"totalCountBeforeFilters",0),Y(this,"isSimpleOverview",!1),Y(this,"productReviewUrl",null),Y(this,"isModal",!1)});window&&((globalThis||{}).PFComponentsProductReviewListOverviewPar=bt);var he=a(43112);const M=function(t,e,i,o,s){this.reviewableItem=t,this.page=1,this.stars=e||0,this.withPictures=!1,this.locale=null,this.technique=null,this.ratingCategoryCriterionIds=[],this.colors=[],this.sizes=[],this.overallQualityRatingCategory=s,this.sortBy=null,this.shouldScrollToNode=typeof i>"u"?!0:i,this.node=tag("div"),this.reloadFilters=o};M.prototype=new r.mkE.Base,M.prototype.append=function(t){return this.node.append(t),this},M.prototype.shouldScrollToNode=!0,M.prototype.load=function(t){var e,i,o,s,u,_,I,N,b,j,B;d.V.show(this.node,{minHeight:150}),this.page=(e=t.page)!==null&&e!==void 0?e:this.page,this.stars=(i=t.stars)!==null&&i!==void 0?i:this.stars,this.locale=(o=t.locale)!==null&&o!==void 0?o:this.locale,this.technique=(s=t.technique)!==null&&s!==void 0?s:this.technique,this.withPictures=(u=t.withPictures)!==null&&u!==void 0?u:this.withPictures,this.withText=(_=t.withText)!==null&&_!==void 0?_:this.withText,this.ratingCategoryCriterionIds=(I=t.ratingCategoryCriterionIds)!==null&&I!==void 0?I:this.ratingCategoryCriterionIds,this.colors=(N=t.colors)!==null&&N!==void 0?N:this.colors,this.sizes=(b=t.sizes)!==null&&b!==void 0?b:this.sizes,this.sortBy=(j=t.sortBy)!==null&&j!==void 0?j:this.sortBy,this.shouldScrollToNode=(B=t.shouldScrollToNode)!==null&&B!==void 0?B:this.shouldScrollToNode,this.filters={productId:this.reviewableItem.getId(),stars:this.stars,locale:this.locale,technique:this.technique,withPictures:this.withPictures,withText:this.withText,ratingCategoryCriterionIds:this.ratingCategoryCriterionIds,colors:this.colors,sizes:this.sizes,sortBy:this.sortBy},new v.J().getReviews({...this.filters,perPage:4,page:this.page,callback:this.render.bind(this)})},M.prototype.render=function(t){d.V.hide(this.node);var e=tag("div","text-center",[tag("a",{className:"pf-btn pf-btn-lg pf-btn-primary pf-mt-24",onclick:function(L){(0,et.y)("product-reviews/get-product-variant-to-review",{productId:this.reviewableItem.getId()},X=>{this.reviewableItem.reviewVariant=X,new z(this.reviewableItem,this.load.bind(this,1),null,L.target,this.overallQualityRatingCategory)})}.bind(this)},dlang("reviews","Add a review"))]);r.mkE.clearNode(this.node);var i=dlang("reviews","There are no submitted reviews for this product right now."),o=i+" "+dlang("reviews","Would you like to leave one?");const s=this.reviewableItem.getReviewRating().reviewCount;if(!s){M.renderNoResult(o,e,this.node);return}const u=new bt;u.reviewableItem=this.reviewableItem,u.callbackOnShowAll=this.reloadFilters,u.totalCount=t.totalCount,u.totalCountBeforeFilters=t.totalCountBeforeFilters,tag("div","col-12",[tag("div","row",[tag("div","col-12 col-sm-3 margin-top-10 product-reviews__overview",[M.getReviewRatingNode(this.reviewableItem,this.overallQualityRatingCategory,!0),M.getReviewOverview(u)]),tag("div","col-12 col-sm-9 pf-mt-40 margin-top-25 product-reviews__reviews-list",[this._review=tag("div"),this._paging=tag("div","reviews-paging"),tag("div","",[e])])])]).append(this.node);const _=document.getElementById("mobileOverview");_&&(_.innerHTML="",M.getReviewRatingNode(this.reviewableItem,this.overallQualityRatingCategory,!0).append(_),M.getReviewOverview(u).append(_));for(var I=E()(".pro-star-text"),N=[],b=0;
4b<I.length;b++)N.push(E()(I[b]).outerWidth());var j=N.reduce(function(L,X){return L>X?L:X},0);if(E()(".pro-star-text").css({minWidth:j}),!t.totalCount&&s){M.renderNoResult(dlang("reviews","There are no reviews matching selected criteria, would you like to leave one?"),e,this._review);return}for(const L of t.items)new yt(L,this.onRequestDelete.bind(this,L),this.onRequestEdit.bind(this),this.load.bind(this,{}),this.reviewableItem.getTitle(),this.filters).append(this._review);var B=new ne.G;B.page=t.page,B.pages=t.pages,B.callback=function(L){this.load({page:L})}.bind(this),new le.h(B).append(this._paging),this.shouldScrollToNode?this.scrollToNode():this.shouldScrollToNode=!0},M.renderNoResult=function(t,e,i){tag("div","col-12 pf-mt-24 pf-mb-48 pf-bg-lighter pf-py-64 text-center",[tag("img",{className:"img-responsive center-block",src:"/static/images/products-catalog/no-ratings-illustration.svg"}),tag("p","pf-mt-24 pf-mb-0",t),e]).append(i)},M.getReviewOverview=function(t){var e=t.reviewableItem,i=t.callbackOnShowAll,o=t.totalCount,s=t.totalCountBeforeFilters,u=t.isSimpleOverview,_=t.productReviewUrl,I=e.getReviewOverview();if(!I||I.length===0)return tag("div");for(var N={tag:"div",className:"products-review-overview",els:[]},b=1;b<=5;b++){var j=I[b]===0||u,B=tag("");j?B=tag("span","pro-star-text pf-pr-16",dnlang("products","{count} star","{count} stars",b).replace("{count}",b)):B=tag("a",{className:"pro-star-text pf-pr-16 pf-link",href:_?_+"_"+b:null,target:q.PFProductsCatalogCommon.isOrderFlow()||q.PFProductsCatalogCommon.isProductPush()?"_blank":"_self",attr:{"aria-label":dlang("products","See {count} star reviews").replace("{count}",b)}},dnlang("products","{count} star","{count} stars",b).replace("{count}",b)),N.els.unshift(tag("div",{className:"pf-mt-8",onclick:j?null:function(L){i&&i(L)}.bind(null,b)},[B,tag("span","pro-progress-base",[tag("span",{className:"pro-progress pf-bg-brown",style:{width:I[b]+"%"}})]),tag("span","pf-pl-12",I[b]+"%")]))}return i&&N.els.unshift(tag("div","pf-mt-8 pf-mb-40",[tag("a",{className:"pf-link",onclick:i.bind(null,0)},dnlang("reviews","{totalCount} ({totalCountBeforeFilters}) review","{totalCount} ({totalCountBeforeFilters}) reviews",o).replace("{totalCount}",o.toString()).replace("{totalCountBeforeFilters}",s.toString()))])),(0,r.mkE)(N)},M.prototype.onRequestDelete=function(t){confirm(lang("Are you sure? This cannot be undone!"))&&(d.V.show(this.node,{minHeight:150}),new v.J().deleteReview(t.reviewId,E().proxy(function(){this.load({page:1})},this)))},M.prototype.onRequestEdit=function(t){new z(this.reviewableItem,this.load.bind(this,1),t)},M.getReviewRatingStarNode=function(t){for(var e=t.getReviewRating(),i=[],o=1;o<=5;o++){var s=e.rating,u="";parseInt(s)!==s&&Math.round(s)===o?u="-half":o>s?u="-outline":u="",i.push(tag("span","pf-i pf-i-18 pf-i-star"+u+" pf-mr-6 pf-text-brown"))}return i},M.getReviewRatingNode=function(t,e,i=!1,o=null,s=null){i=i||0;const u=t.getReviewRating();if(!u.reviewCount)return{tag:"a",className:"pf-link",text:dlang("reviews","Review product"),onclick:function(b){(0,et.y)("product-reviews/get-product-variant-to-review",{productId:t.getId()},j=>{t.reviewVariant=j,new z(t,s,null,b.target,e)})}};var _=de.B.getReviewRatingStarNode(t),I=u.reviewCount,N;return i?(this.reviewCount=I,N=tag("div","",[tag("div",{className:"pf-h2 pf-normal",attr:{"aria-hidden":"true"}},parseFloat(u.rating).toFixed(1)),tag("div",{className:"pf-mt-8 star-rating__stars star-rating__stars--inline",attr:{"aria-label":lang("{rating} out of 5 stars").replace("{rating}",u.rating)}},_)])):N=tag("a",{className:"pf-link",onclick:o.bind(this,parseFloat(u.rating).toFixed(1)),data:{toggle:"tooltip",placement:"bottom"}},[tag("div",{className:"star-rating__stars star-rating__stars--inline",attr:{"aria-label":lang("{rating} out of 5 stars").replace("{rating}",u.rating)}},_),nlang("%d Review","%d Reviews",I)]),N},M.prototype.scrollToNode=function(){const[t,e]=[E()(".product-reviews__reviews-list"),E()(".catalog__header")],i=E()(window).width()<he.I.SIZES.md?20:e.height();E()("html, body").animate({scrollTop:t.offset().top-i},1e3)},(globalThis||{}).PFProductReviewList=M;var ge=a(94378),fe=a(51935),Ct=a(86726),Ut=a(72916),Lt=a(62479),Pt=a(73270),ve=a(3908),it=a(90102),me=a(62738),ye=a(38123),_e=a.n(ye),we=a(69577),Mt=a(75896),Tt=a(15476),dt=a(90225);const be=[dt.B8E,dt.FKM,dt.COC,dt.ZDV],k=function(t){var e,i;
4this.product=t.product,this.variant=t.variant,this.showFulfillmentCountries=t.showFulfillmentCountries,this.technique=t.technique,this.chooseButtonTitle=t.chooseButtonTitle||lang("Choose"),this.productUrl=t.url,this.isModal=t.isModal,this.sellingRegion=t?.sellingRegion||null,this.disableEdt=t?.disableEdt||!1,this.callback=t.callback,t.className=t.className||"col-md-3 col-xs-6";var o=[];const s=t.isSampleOrderContext&&this.product.isDisabledInSample,u=this.product.isPersonalUseBrand()&&!q.PFProductsCatalogCommon.isProductsPricing()&&!q.PFProductsCatalogCommon.isOrderFlow(),_=this.product.doesNotMatchSellingRegion&&!q.PFProductsCatalogCommon.isProductsPricing();let I="";this.product.isSterlingSilver&&(I=tag("span","pf-ui-legal pf-bold",dclang("products","Product feature","Sterling Silver")));const N=t.hideBadge?"":this._getFirstLevelBadge();N&&o.push(N),(e=this.product)!==null&&e!==void 0&&e.isEcoFriendly?o.push(tag("span",{className:"product-item__badge product-item__badge--eco pf-p-4",attr:{title:dclang("products","badge","Eco-friendly")}},[tag("span",{className:"pf-d-flex pf-h-100 pf-align-items-center",innerHTML:`<img src="/static/images/layout/eco-friendly-icon.svg" class="pf-ml-0 pf-mr-4" alt="${dclang("products","badge","Eco-friendly")}"> 5 <p class="pf-m-0">${dclang("products","badge","Eco-friendly")}</p>`})])):this._showMadeInBadge(o),s&&(o=[tag("span","product-item__badge product-item__badge--disabled",[dclang("products","Product is","Not available for sample orders")])]),t.isUnavailable&&(o=[tag("span","product-item__badge product-item__badge--disabled",[dclang("products","Product is","Temporarily unavailable")])]),this.product.isTemporaryOutOfStock&&(o=[tag("span","product-item__badge product-item__badge--out-of-stock",[lang("Out of stock")])]),u&&(o=[tag("span","product-item__badge product-item__badge--disabled",[dclang("products","Product is","Only available for personal orders")])]),o.length&&o[0].setAttribute("tabindex","0");var b={};this.product.isInCategory(C.n.CATEGORY_HATS)&&(b.backgroundSize="contain",b.backgroundColor="white"),b.width="100%",b.aspectRatio="1/1";let j="";(this.product.isTemporaryOutOfStock||s||t.isUnavailable||u)&&(j=" square-box--out-of-stock");let B="square-box pf-rounded-top"+j;t.isLocked&&(B+=" pf-rounded-bottom"),_&&(b.opacity="0.5");const L=this._getProductImages(this.product),X=tag("div",B,[this._squareContent=tag("div","square-content",[tag("img",{className:L.hoverImage?"square-box__img":"",prop:{width:"254",src:t.skipLazyLoad?L.primaryImage:ge.GA,loading:t.skipLazyLoad?"eager":"lazy",alt:this.product?this.product.customTitle:""},data:{src:L.primaryImage},style:b}),L.hoverImage?tag("img",{className:"square-box__hover-img",prop:{width:"296",src:L.hoverImage,alt:this.product?this.product.customTitle:""},style:b}):"",tag("span","product-item__empty-content",o)])]);ve.p.isFavoriteProductsEnabled().then(V=>{const G=new Lt.PFProductsCatalogUtilsStore().categories.getActiveCategoryId();!V||(this.product.isTemporaryOutOfStock||t.isUnavailable)&&G!==Pt.p.ID_FAKE_FAVORITES||t!=null&&t.hideFavorites||(tag("span",{className:"pf-d-flex pf-justify-content-center pf-align-items-center product-item__favorites-icon pf-mx-8 pf-mb-8",attr:{"data-toggle":"tooltip","data-container":"body","aria-label":dlang("products","Add to favorites"),title:this._getFavoritesNodeHoverTitle(),tabindex:0},style:{zIndex:1}},[this._favoritesNode=tag("i",{className:this._getFavoritesNodeClassName(),onclick:this._openFavoritesLink.bind(this),prop:{onmouseover:this._onMouseoverFavorite.bind(this),onmouseout:this._onMouseoutFavorite.bind(this)},attr:{"data-toggle":"tooltip","data-container":"body",title:this._getFavoritesNodeHoverTitle()}}),this._favoritesOverlay=tag("span")]).prepend(this._squareContent),(0,m.ln)()||$(this._favoritesNode).tooltip())});var jt=l.fromProduct(this.product);r.mkE.addClassName(jt.node,"detail pf-m-0 pf-mb-12");var ct=this.variant?this.variant.name:this.product.model||this.product.title;this.product.brand&&(ct=this.product.brand+" "+ct),this.product.displayName&&(ct=this.product.displayName);var ot=this.product.reviewRating;if(ot&&ot.reviewCount)for(var Vt=[],ut=1;ut<=5;ut++){var pt=this.product.reviewRating.rating,It="";parseInt(pt)!==pt&&Math.round(pt)===ut?It="-half":ut>
5pt&&(It="-empty"),Vt.push(tag("span","icon-star"+It+" star-rating__star"))}var rt=t.url&&!t.isUnavailable;const Et=t.overrideTitle||ct,Pe=this.product.isTemporaryOutOfStock||t.isUnavailable||_?" product-item--disabled":"";let Rt;const Ht=this.sellingRegion||it.W.sellingRegion;Ht?(Rt=[this._averageDeliveryNode=tag("div")],this._renderAverageDelivery(Ht)):Rt=[this._getFulfillmentDaysNode(),this._getFulfillmentCountries(),this._getBrandingOptionsNode()],(_||t.isLocked)&&(rt=!1);const Te=t.isSecondaryStyleButton?"pf-btn-secondary":"pf-btn-primary",Ie=t.productItemClassName||"pf-mb-16 pf-mb-md-24 pf-mb-lg-32",Kt=P.T.createPeriodicPriceDiscountAnnouncement(this.product,!1,"pf-mb-16");var ht=tag(rt?"a":"div",{className:"product-item "+Ie+" pf-rounded"+Pe,attr:{"aria-label":`${Et}`,role:"list",target:t.isNewTab?"_blank":"_self",draggable:!1}},[X,tag("div",{className:(t.isLocked?"pf-px-0":"pf-px-12")+" pf-pt-12 pf-pb-8 product-item__details",attr:{tabindex:0,"aria-label":dlang("products","Product description")}},[this._getPrintfulOriginalNode(),I,this._getFastShippingNode(),tag("div","product-item__detail pf-mb-12 pf-ui-body",Et),Kt,!t.hideRating&&!this.isSuggested&&ot&&ot.reviewCount?this._getProductReviewNode(ot,Vt):"",tag("div","product-item__detail__price pf-my-12",t.hidePrice?null:[this._getProductPriceNode(!Kt),this.product.hasFreeShipping?tag("span","product-item__detail__free-shipping pf-ui-caption pf-bold",dclang("products","badge"," + free shipping")):""]),!t.hideColors&&!this.isSuggested?jt:"",(t.showSizes||!t.hideProfile&&this.product.isEmbroidery()&&!this.product.hasEmbroideryProfile())&&!this.isSuggested?tag("div",{className:"product-item__sizes pf-pb-8 pf-text-muted pf-ui-caption pf-bold",attr:{"aria-label":dlang("products","This product has {sizes} available sizes").replace("{sizes}",this._getSizeText().replace("-",` ${lang("to")} `))}},[this._getSizeText()]):"",!t.hideProfile&&this.product.isEmbroidery()&&this.product.hasEmbroideryProfile()?tag("div","product-item__embroidery-profile pf-my-12",[dclang("products","low/high/beanie profile","{type} profile").replace("{type}",this.product.getEmbroideryProfile())]):"",t.hideAdditionalInfo?"":Rt,!this.variant&&this.product.extraDescription?tag("div",{innerHTML:this.product.extraDescription}):"",t.showChooseButton?tag("div","product-item__choose-button",[tag("div","pf-p-12",[tag("span",`pf-btn pf-btn-block ${Te}`,[this.chooseButtonTitle])])]):""])]);const St=!this.product.isTemporaryOutOfStock&&!s;(St||((i=this.category)===null||i===void 0?void 0:i.id)===Pt.p.ID_FAKE_FAVORITES)&&!t.isLocked&&(this.callback&&(ht.onclick=V=>{if(St&&!V.target.classList.contains("product-item__favorite")){if(document.querySelector(`#review-tooltip-${this.product.productId}`))return V.target.matches(".pf-link")?V.target.click():!1;if(window.getSelection().toString())return!1;q.PFProductsCatalogCommon.addRecentMockup({id:t.product.productId,title:Et,generatorUrl:t.product.getMockupGeneratorUrl(),catalogPageUrl:t.product.catalogPageUrl,image:L.primaryImage});var G=(V.which==2||V.button==4||V.metaKey||V.ctrlKey)&&rt;if(!G){var gt=V.defaultPrevented,ft=window.location.href;this.callback(this.product,null,V);var Ee=gt!==V.defaultPrevented,Re=ft!==window.location.href;V.preventDefault(),rt&&!Ee&&!Re&&(window.location.href=t.url)}}}),St&&rt&&(ht.href=t.url)),_&&!t.isLocked&&(ht.onclick=V=>{document.querySelectorAll(".does-not-match-selling-region-tooltip-container").forEach(ft=>{$(ft).tooltip("destroy"),ft.remove()});const G=tag("span",{className:"pf-position-absolute pf-d-block does-not-match-selling-region-tooltip-container",style:{top:`${V.pageY}px`,left:`${V.pageX}px`},attr:{tabindex:0}});G.append(document.body);let gt=dlang("sellingRegion","Adjust your {linkStart}default catalog and delivery preferences{linkEnd} to select this product");PF.Customer.isLogged()&&!PF.Customer.isB2c()&&(gt=dlang("products","Adjust your {linkStart}default selling preferences{linkEnd} to select this product")),$(G).tooltip({template:'<div class="tooltip does-not-match-selling-region-tooltip" role="tooltip"><div class="tooltip-arrow"></div><div class="tooltip-inner"></div></div>',trigger:"focus",placement:"top",html:!0,title:gt.replace("{linkStart}",'<a href="javascript:">').replace("{linkEnd}","</a>")}),$(G).focus(),$(G).on("shown.bs.tooltip",()=>{document.querySelector(".does-not-match-selling-region-tooltip a").addEventListener("click",()=>{(0,me.EW)()})})}),this.node=tag("div",{className:t.className,style:t.customStyle},[ht])};k.prototype=new r.mkE.Base,k.prototype._openFavoritesLink=function(){let t=new Lt.PFProductsCatalogUtilsStore().categories.getActiveCategoryId();const e=this.product.favoriteCatalogCategoryId;return(!t||t===Pt.p.ID_FAKE_FAVORITES)&&(t=e||this.product.mainCatalogCategoryId),(0,fe.A)("favorite-product/update-favorite-product",{productId:this.productId||this.product.productId,catalogCategoryId:t}).then(i=>{i&&(this.product.isFavorite=!this.product.isFavorite,this._favoritesNode.className=this._getFavoritesNodeClassName(),this._favoritesNode.setAttribute("data-original-title",this._getFavoritesNodeHoverTitle()),this._favoritesNode.classList.add("product-item__favorites-icon--bouncy"),this.product.isFavorite&&this._favoritesOverlay.classList.add("product-item__favorites-icon--ripple"),setTimeout(()=>{this._favoritesNode.classList.remove("product-item__favorites-icon--bouncy"),this._favoritesOverlay.classList.remove("product-item__favorites-icon--ripple")},450),Mt._r.emit(Mt._r.PRODUCT_FAVORITE_STATUS_UPDATED,{productId:this.productId||this.product.productId,status:this.product.isFavorite,createdAt:i.created_at?_e()(i.created_at).unix():null}),delete it.W.cachedData[this.product.productId])}),Ce(this.product.displayName,this.product.productId,!this.product.isFavorite),!1},k.prototype._getFavoritesNodeClassName=function(){return(this.product.isFavorite?"pf-i-heart pf-text-red":"pf-i-heart-outline pf-i-dark")+" pf-i pf-i-24 pf-pointer product-item__favorite"},k.prototype._onMouseoverFavorite=function(){this.product.isFavorite?(r.mkE.removeClassName(this._favoritesNode,"pf-text-red"),r.mkE.addClassName(this._favoritesNode,"pf-text-dark-red")):r.mkE.removeClassName(this._favoritesNode,"pf-i-dark")},k.prototype._onMouseoutFavorite=function(){this.product.isFavorite?(r.mkE.addClassName(this._favoritesNode,"pf-text-red"),r.mkE.removeClassName(this._favoritesNode,"pf-text-dark-red")):r.mkE.addClassName(this._favoritesNode,"pf-i-dark")},k.prototype._getBrandingOptionsNode=function(){var t="";return this.product.hasTearAwayLabel()&&(t=tag("span",{className:"product-item__label product-item__label--branding",attr:{"data-toggle":"tooltip",title:dlang("products","Tear-away label"),tabindex:"0","aria-label":dlang("products","Tear-away label")}},[tag("i",{className:"pf-i pf-i-tag pf-i-18",attr:{"aria-hidden":"true"}})]),(0,m.ln)()||$(t).tooltip({html:!0})),t},k.prototype._getFulfillmentDaysNode=function(){var t="";if(this.product.fulfillmentDays!==null){var e=Math.round(this.product.fulfillmentDays*10)/10,i=langUrl("/faq/shipping-packaging-fulfillment/192-how-long-is-fulfillment-time-");t=tag("div","pf-mb-12 product-item__fulfilment-days",[this.moreInfoSpan=tag("span",{className:"pf-link",text:dclang("products","fulfillment","Ready in"),onclick:function(o){o.stopPropagation(),o.preventDefault(),window.open(i,"_blank")}}),tag("strong","",[tag("span","product-item__fulfilment-days__tilde"," ~ "),dnclang("products","fulfillment","{days} business day","{days} business days",Math.floor(e)).replace("{days}",e)])]),this.moreInfoSpan.addEventListener("mousedown",function(o){o.buttons===4&&(o.stopPropagation(),o.preventDefault(),window.open(i,"_blank"))})}return t},k.prototype._getSizeText=function(){var t=this.variant&&this.variant.size?[this.variant.size]:this.product.sizes.slice(0);if(t.length===0)return"";if(t.length===1){var e=t.pop();return e===k.ONE_SIZE&&(e=k.ONE_SIZE_TRANSLATED),e}else{let i=t.shift(),o=t.pop();return i.indexOf("yrs")&&(i=i.replace("yrs",dclang("products","Product size (human years)","yrs"))),i.indexOf("in")&&(i=i.replace("in",dclang("products","Product size (inches)","in"))),o.indexOf("yrs")&&(o=o.replace("yrs",dclang("products","Product size (human years)","yrs"))),o.indexOf("in")&&(o=o.replace("in",dclang("products","Product size (inches)","in"))),i+" - "+o}},k.ONE_SIZE="One Size",k.ONE_SIZE_TRANSLATED=dlang("products","One Size"),k.prototype._getProductPriceNode=function(t){return this.variant?P.T.createDiscountElementFromPriceData({priceData:this.variant.priceData,showTooltip:t}):P.T.createDiscountElementFromPriceRange(this.product.priceRange,0,!1,t)},k.prototype._getFastShippingNode=function(){var t;if(this.sellingRegion||it.W.sellingRegion||!((t=PF.Customer)!==null&&t!==void 0&&t.location))return"";const i={ES:{region:Ct.u.REGION_EUROPE_SPAIN,label:clang("fast shipping label","Fast delivery in Spain")},JP:{region:Ct.u.REGION_JAPAN,label:clang("fast shipping label","Fast delivery in Japan")},CA:{region:Ct.u.REGION_CANADA,label:clang("fast shipping label","Quick delivery to Canada"),class:"ca-fs"}},o=PF.Customer.location.country,s=i[o];return s&&Object.values(this.product.fulfillmentCountriesMap).indexOf(s.region)>-1?tag("div","pf-ui-caption product-item__fast-shipping-container",[tag("span",`flag ${s.class||o.toLowerCase()}`),tag("strong","pf-text-dark",s.label)]):""},k.prototype._getPrintfulOriginalNode=function(){return this.product.isPrintfulOriginal?tag("h5","pf-d-block pf-mb-8 pf-h5 pf-text-cyan-800","Printful Original"):""}
5,k.prototype._getFulfillmentCountries=function(){if(!this.showFulfillmentCountries)return!1;const t=this.variant?this.variant.getFulfillmentCountries():this.product.fulfillmentCountries,e=Object.keys(t).map(s=>(0,Ut.T)(s)).join(f.l.isJp()?"\u3001":", "),i=dlang("products","Ships worldwide, stocked in the {regions}").replace("{regions}",e),o=tag("span",{className:"fulfillmentLabelContainer",attr:{"data-toggle":"tooltip",tabindex:"0","aria-label":i,title:i}},[Object.keys(t).map(s=>tag("span",{className:"pf-badge pf-badge-location pf-mr-4 pf-mb-4",style:{"background-color":t[s].color},attr:{"aria-hidden":"true"}},(0,Ut.a)(t[s].title)))]);return(0,m.ln)()||$(o).tooltip({html:!0}),o},k.prototype._getProductReviewNode=function(t,e){const i=tag("span","",[tag("span","star-rating__stars star-rating__stars--inline pf-mr-0",e),tag("i",{className:"pf-i pf-i-18 pf-i-chevron-down pf-text-muted product-item__review-arrow",id:`review-arrow-${this.product.productId}`})]),o=tag("span",{className:"product-item__review no-outline",attr:{tabindex:0,"aria-label":lang("{rating} out of 5 stars").replace("{rating}",t.rating),"data-toggle":"tooltip","data-placement":"bottom","data-container":this.isModal?"":"body","data-html":"true","data-trigger":"click"},innerHTML:i.outerHTML});return $(o).tooltip({html:!0,template:` 6 <div class="tooltip product-item__review-tooltip ${this.isModal?"":"catalog"}"> 7 <div id="review-tooltip-arrow" class="tooltip-arrow"></div> 8 <div id="review-tooltip-${this.product.productId}" class="pf-mx-8 tooltip-inner pf-ui-caption product-item__review-tooltip-content pf-border" tabindex="0"></div> 9 </div> 10 `}),document.addEventListener("click",this._resetReviewArrow),o.addEventListener("mousedown",s=>{this._resetReviewArrow(),o.classList.add("no-outline");const u=o.querySelector(`#review-arrow-${this.product.productId}`);let _=document.querySelector(`#review-tooltip-${this.product.productId}`);if(_){var I;$(o).tooltip("hide"),(I=this.node.querySelector(".product-item__rating"))===null||I===void 0||I.focus()}else{if(u.classList.add("product-item__review-arrow--open"),u.classList.remove("product-item__review-arrow--close"),$(o).tooltip("show"),_=document.querySelector(`#review-tooltip-${this.product.productId}`),_){const b=_.querySelectorAll(".pro-star-text"),j=Math.max.apply(Math,Object.values(b).map(B=>B.offsetWidth));b.forEach(B=>B.style.minWidth=`${j}px`)}s.preventDefault(),_.focus()}const N=document.getElementById(`${this.product.productId}-reviews`);N&&N.addEventListener("click",b=>{this.callback(this.product,{elementId:"reviews"},b),$(o).tooltip("hide")},{once:!0})}),o.addEventListener("focus",()=>{window.addEventListener("keyup",s=>{if(s.key==="Tab")o.classList.remove("no-outline");else if((s.key==="Enter"||s.key==="Escape")&&o.hasAttribute("aria-describedby")){var u;$(o).tooltip("hide"),(u=this.node.querySelector(".product-item__rating"))===null||u===void 0||u.focus()}})}),o.addEventListener("click",s=>{s.stopPropagation(),s.preventDefault()}),this._getProductReviewOverview(o,t,e),tag("div",{className:"product-item__rating pf-ui-caption",attr:{tabindex:0}},[tag("div","product-item__rating-stars star-rating__stars star-rating__stars--inline pf-d-none",e),tag("span","review-tooltip pf-mr-8 collapsed",[o]),tag("span","pf-m-0 pf-mt-4 pf-d-inline-block",nlang("%d review","%d reviews",t.reviewCount))])},k.prototype._getProductReviewOverview=function(t,e,i){const o=new w.k(this.product),s=this.productUrl?`${this.productUrl}#reviews`:"javascript:",u=new bt;u.reviewableItem=o,u.productReviewUrl=s;const _=tag("div","",[tag("div","star-rating__stars star-rating__stars--inline",[tag("div","pf-mt-16",[i,tag("span","pf-ml-8 pf-bold",dlang("products","{rating} out of 5").replace("{rating}",e.rating))]),tag("span","pf-m-0 pf-mt-4 pf-d-inline-block",nlang("%d review","%d reviews",e.reviewCount))]),M.getReviewOverview(u),tag("div",{className:"pf-mb-4 pf-mt-8 text-center"},[tag("a",{id:`${this.product.productId}-reviews`,target:this.isModal?"_blank":"_self",className:"pf-link",href:s,attr:{tabindex:0}},[dlang("products","See all reviews")])])]);t.setAttribute("data-original-title",_.outerHTML)},k.prototype._resetReviewArrow=function(){const t=document.querySelector(".product-item__review-arrow--open");t&&(t.classList.add("product-item__review-arrow--close"),t.classList.remove("product-item__review-arrow--open"))},k.prototype._getFavoritesNodeHoverTitle=function(){return this.product.isFavorite?dlang("products","Remove from favorites"):dlang("products","Add to favorites")},k.prototype._renderAverageDelivery=function(t){var e;this._averageDeliveryNode&&r.mkE.clearNode(this._averageDeliveryNode);const i=this.product;if(!(i.doesNotMatchSellingRegion||this.disableEdt)&&(e=i.estimateDeliveryFormatted)!==null&&e!==void 0&&e.title){let u=null;if(i.estimateDeliveryFormatted.range)u=tag("div","product-item__detail__delivery",[tag("img",{src:t.getIcon(),className:"pf-mr-4",style:{width:"24px",height:"18px",marginTop:"-4px",display:"inline-block",verticalAlign:"middle"},alt:t.getName()}),tag("span",{},[i.estimateDeliveryFormatted.title," ",i.estimateDeliveryFormatted.range])]);else{var o,s;let _="";i.estimateDeliveryFormatted.tooltip&&(_=tag("i",{title:i.estimateDeliveryFormatted.tooltip,className:"pf-i pf-i-20 pf-i-information pf-text-gray pf-ml-4","data-html":"true","data-toggle":"tooltip","data-
10placement":"top"}));const I=(o=(s=i.estimateDeliveryFormatted.tooltip)!==null&&s!==void 0?s:i.estimateDeliveryFormatted.title)===null||o===void 0?void 0:o.replace(/<\/?strong>/g,"");u=tag("p","",[tag("span",{innerHTML:i.estimateDeliveryFormatted.title,attr:{"aria-label":I}}),_]),_&&$(_).tooltip({html:!0})}u&&u.append(this._averageDeliveryNode)}},k.prototype._showMadeInBadge=function(t){if(!(this._showMadeInUsBadge()||this._showMadeInEuBadge()))return;const i=dclang("products","badge","Made in");let o="",s="",u="";this._showMadeInUsBadge()?(o="product-item__badge--usa",s=dclang("products","badge","Made in USA"),u="/static/images/layout/usa-flag.png"):this._showMadeInEuBadge()&&(o="product-item__badge--eu",s=dclang("products","badge","Made in EU"),u="/static/images/layout/flags/eu.svg"),t.push(tag("span",{className:`product-item__badge ${o} pf-p-4`,attr:{title:s}},[tag("span","pf-d-flex pf-h-100 pf-align-items-center",[tag("p","pf-m-0 pf-uppercase",i),tag("img",{src:u,className:"pf-ml-8 pf-mr-0 pf-h-100",alt:s})])]))},k.prototype._showMadeInUsBadge=function(){const t=this.sellingRegion||it.W.sellingRegion,e=typeof this.product.isMadeInUSA=="function"?this.product.isMadeInUSA():this.product.isMadeInUSA;return t?t.isNorthAmerica()&&e:e},k.prototype._showMadeInEuBadge=function(){const t=this.sellingRegion||it.W.sellingRegion,e=this.product.isMadeInEU;return t?t.isEuBadgeRegion()&&e:e},k.prototype._getFirstLevelBadge=function(){return this.product.hasClearance?tag("span","pf-badge pf-badge-rect pf-badge--primary pf-badge-position-card",dclang("products","badge","clearance")):this.product.isPopular?tag("span","pf-badge pf-badge-rect pf-badge--primary pf-badge-position-card",dclang("products","badge","bestseller")):this.product.hasBetaAccess&&!be.includes(this.product.productId)?tag("span","pf-badge pf-badge-rect pf-badge--beta pf-badge-position-card",dclang("products","badge","beta")):this.product.isNew?tag("span","pf-badge pf-badge-rect pf-badge--new pf-badge-position-card",dclang("products","badge","new")):this.product.isSuggested?tag("span",{className:"pf-badge pf-badge-rect pf-badge--info pf-badge-position-card",style:"text-transform: none"},dclang("products","badge","Printful suggests")):""},k.prototype._getProductImages=function(t){let e,i;if(t.customImageUrl)e=this.product.customImageUrl,i=this.product.hoverImageUrl||null;else{const o=we.X.getProductImageByType(this.product.images,this.product.mainCatalogCategoryId);e=o?.primary||this.product.urlImage,i=o?.hover||null}return{primaryImage:e,hoverImage:i}};function Ce(t,e,i){Tt.Ay$.push({event:Tt.l0f,category:Tt.MXc,location:"product card",action:i?"add product to favorites":"remove product from favorites",flow:q.PFProductsCatalogCommon.getCatalogTypeName()||"outside catalog",item:{item_name:t,item_id:e}})}window&&((globalThis||{}).PFComponentsProductListItem=k)},89001:(O,T,a)=>{a.d(T,{I:()=>C});const C={getConfig(){var m;return((m=PF)===null||m===void 0?void 0:m.ProductsPricingConfig)||{expandTypes:[]}}}},90102:(O,T,a)=>{a.d(T,{W:()=>v});var C=a(52599),m=a(17804),P=a(74454),y=a(6075),r=a(4827);const n=Class({variantImageId:0,thumbUrl:"",useVariantColor:!1,order:0,largeUrl:"",variantMaps:[],useGeneratorColor:!0,backgroundOverride:[]});n.fromArray=function(d){var g=new n;return r.mkE.O2O(g,d),g},window&&((globalThis||{}).PFProductsCatalogItemsProductImageItem=n);var c=a(96978),p=a(82311),S=a(11003),x=a(65236),F=a(61682),h=a(73270),l=a(49585),f=a(9129),w=a(98426),D=a(89965),E=a(90225);const v=Class({_categoryProducts:{},_repo:null,_currency:"",_hasNewCategoryProductDataMethodAccess:null,__construct:function(d){this.categories=d,this._repo=new C.J,this._initConfigureStore(this)},getByParams:function(d){typeof d.actionBefore=="function"&&d.actionBefore(),this._params=d,F.r.toggleLock(!0);const g=Number(d.categoryId)!==h.p.ID_FAKE_FAVORITES?this.getCachedProducts(d.categoryId):[];if(g.products)return this._dispatchEvents(g.products,g.totalCount);this._requestProductsData(d,1)},getAllProductsList:function(d){const g=this.getCachedProducts(this._params.categoryId);g.products&&g.products.length===Number(g.totalCount)||this._requestProductsData(this._params,!1,d)},getSellingRegionNotMatchedProducts:async function(d){(0,S.y)("product-catalog/get-category-product-data",Object.assign(this._getRequestParam
10s(this._params),{matchSellingRegion:0,doesNotMatchSellingRegion:1}),g=>{const U=m.c.convertToArray(g.products).map(H=>(H.variants.map(W=>C.J.prototype.cacheVariant(c.H.fromArray(W))),p.PFItemsProductItem.fromArray(Object.assign(H.product,{doesNotMatchSellingRegion:!0}))));g.sellingRegion&&(v.sellingRegion=new f.fP(g.sellingRegion)),d({products:U,totalCount:g.totalCount})})},_getRequestParams:function(d){return{activeCategoryId:d.categoryId,categoryIds:d.favorites?[]:this.categories.getCategoryChildIds(this.categories.getById(d.categoryId)),forMockupGenerator:d.forMockupGenerator?1:0,forProductPush:d.forProductPush?1:0,forOrderFlow:d.forOrderFlow?1:0,forProductTemplate:d.forProductTemplate?1:0,currency:this._currency,storeId:d.storeId,favorites:d.favorites,limitUsingDefaultCount:0,matchSellingRegion:d.matchSellingRegion?1:0,doesNotMatchSellingRegion:d.doesNotMatchSellingRegion?1:0,allowedType:d.allowedType||null,requiredPlacements:d.requiredPlacements||[],swapTemplateId:d.swapTemplateId||null}},_requestProductsData:async function(d,g,U){(0,S.y)("product-catalog/get-category-product-data",Object.assign(this._getRequestParam
10s(d),{limitUsingDefaultCount:g?1:0}),this._cacheProducts.bind(this,{categoryId:this._params.categoryId,initialLoad:g,callBackFunction:U}))},getDataByProductId:function(d,g){var U=this._getCachedProductData(d);if(!$.isEmptyObject(U)){g(U);return}(0,S.y)("product-catalog/get-product-data",{productId:d,categoryId:this._params.categoryId,currency:this._currency},this.cacheData.bind(this,d,g))},getActive:function(){var d=v.activeProductId;return d?v.cacheById[d]:null},setActiveId:function(d){v.activeProductId=d},setCurrency:function(d){this._currency=d},cacheById:function(d){return d instanceof p.PFItemsProductItem||(d=p.PFItemsProductItem.fromArray(d)),this._repo.cacheProduct(d),v.cacheById[d.productId]=d,d},cacheByCategoryId(d,g){d instanceof p.PFItemsProductItem||(d=p.PFItemsProductItem.fromArray(d)),this._repo.cacheProductByCategoryId(d,g)},getCachedProducts:function(d){const{tempDisabledProductsLimit:g,tempDisabledProductsPushed:U}=v;return this._params.swapTemplateId?this._categoryProducts[this._getSwapCacheKey(d)]||[]:g&&U>=g?[]:this._categoryProducts[d]||[]},_cacheProducts:function(d,g){var U,H=d.categoryId,W=d.initialLoad,tt=d.callBackFunction;g.products=m.c.convertToArray(g.products).map(this._getProductItem.bind(this)),g.products.map(this.cacheById),g.products.forEach(K=>this.cacheByCategoryId(K,H)),g.tempDisabledProductsLimit&&(v.tempDisabledProductsLimit=g.tempDisabledProductsLimit,v.tempDisabledProductsPushed=g.tempDisabledProductsPushed,v.tempDisabledProductTypes=g.tempDisabledProductTypes,v.tempDisabledProductIds=g.tempDisabledProductIds),g.sellingRegion&&this._useSellingRegion(g.sellingRegion),v.isDSRSettingLocked=g.isDSRSettingLocked||!1,this._params.swapTemplateId?this._categoryProducts[this._getSwapCacheKey(H)]=g:this._categoryProducts[H]=g;for(var J in g.products){if(g.products[J].variantRegions){var at=g.products[J].variants;this._repo.cacheProductVariantRegions(g.products[J].product.productId,g.products[J].variantRegions);for(var vt in at)this._repo.cacheVariant(c.H.fromArray(at[vt]))}const K=g.products[J];E.Rkq.includes(K.productId)&&!K.availableTechniques.includes((0,w.PFUtilsTechniqueMemory)(K.productId).getTechniqueFromMemory())&&(0,w.PFUtilsTechniqueMemory)(K.productId).rememberLastUsedTechnique(D.kw)}if((U=g.suggestedProduct)!==null&&U!==void 0&&U.length){const K=g.suggestedProduct.map(st=>p.PFItemsProductItem.fromArray(st));K.map(this.cacheById),v.suggestedProducts.push({categoryId:H,products:K})}if(g.challenge&&(v.challenge=g.challenge),W)return this._dispatchEvents(g.products,g.totalCount);tt&&tt(!W)},_getSwapCacheKey(d){return"swap-"+d+"-"+this._params.swapTemplateId},_useSellingRegion(d){v.sellingRegion=new f.fP(d)},_getCachedProductData:function(d){return v.cachedData[d]?v.cachedData[d]:[]},cacheData:function(d,g,U){v.cachedData[d]=y.P.fromArray(U);var H=this._getCachedProductData(d);H.variants.map(function(W){this._repo.cacheVariant(W)}.bind(this)),U.sellingRegionSettings&&this._useSellingRegion(U.sellingRegionSettings),H.images=U.images.map(function(W){return n.fromArray(W)}),g&&g(H)},_getProductItem:function(d){return d.variants.map(function(g){this._repo.cacheVariant(c.H.fromArray(g))}.bind(this)),p.PFItemsProductItem.fromArray(d.product)},_dispatchEvents:function(d,g){F.r.toggleLock(!1),P.u.createAndDispatch(x.PFProductsCatalogCommon.EVENT_PRODUCTS_LOADED,{productsOrVariants:d,totalCount:g})},_initConfigureStore(){if(v._storeInitCallbackExecuted)return;v._storeInitCallbackExecuted=!0;const d=l.c.getProductsStoreInitCallback();d&&d(this)}});v.cacheById={},v.cachedData={},v.activeProductId=0,v.sellingRegion=null,v.tempDisabledProductsPushed=0,v.tempDisabledProductsLimit=void 0,v.tempDisabledProductTypes=[],v.tempDisabledProductIds=[],v._storeInitCallbackExecuted=!1,v.suggestedProducts=[],v.challenge=null,window&&((globalThis||{}).PFProductsCatalogUtilsStoreProducts=v)},90577:(O,T,a)=>{a.d(T,{B:()=>m});var C=a(4827);const m={getReviewRatingStarNode(P){for(var y=P.getReviewRating(),r=[],n=1;n<=5;n++){var c=y.rating,p="";parseInt(c)!==c&&Math.round(c)===n?p="-half":n>
10c?p="-outline":p="",r.push((0,C.tag)("span",{className:"pf-i pf-i-18 pf-i-star"+p+" pf-mr-6 pf-text-brown",attr:{"aria-hidden":!0}}))}return r}};(globalThis||{}).PFProductReviewListHelpers=m}}]);
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.