1((U,B,G,H)=>{var i="uc209-productview";let Z="uc-product-view",P=n=>new Promise((t,e)=>{n.done(t).fail(e)});function a(c,t){var u=t,l=G.PubSub,p=new e,m=new q(l,p),g={},f=null;return{init:function(){importShim("/components/archive/product/variant-selector-provider/variant-selector-provider.js").then(async function(){var a,e=new T(c,u),t=new j;(f=new E(c,p,u)).init();let n=[];u.isProductWithVariants&&(i=(()=>{for(var t={},e=location.search.slice(1),n=/sel(?:\:|%3a){1}([^&=]+)=([^&]*)/gi;i=n.exec(e);){var a=decodeURIComponent(i[1]).toLowerCase(),i=decodeURIComponent(i[2].replace(/\+/g," ")).toLowerCase();t[a]=i}return t})(),i={$productContainer:c,productModel:u,priceTotals:f,quantityDiscountsProcessorInstance:e,externalTrackingProcessorInstance:t,preselectedVariants:i,enableHistoryState:!0,metadata:u.metadata,say:m,pubsub:l,utils:p},n.push(k(i,g))),u.isVariantProductOfProductWithVariants||e.renderQuantityDiscounts(),u.packageComponentProducts&&(B.each(u.packageComponentProducts,function(t){var e;t.isMainProductOfProductWithVariants&&(e=c.find('.js-component-products-list .js-component-product[data-uniqueid="'+t.uniqueId+'"]'),t.variantRelImageMatchRegExp=u.variantRelImageMatchRegExp,e={$productContainer:e,productModel:t,priceTotals:f,metadata:u.metadata,say:m,pubsub:l,utils:p},n.push(k(e,g)))}),S(c,u,p)),n.length&&await Promise.all(n),u.groupingComponents&&await new W(c,u,p,m,l,f,g).init(),u.showCalculateShippingTool&&c.find("shipping-details").on("click",function(t){var e=c.find(".js-quantity").val()||1;document.querySelector("shipping-details").shippingProducts=[{productId:u.productId,quantity:e}]}),u.additionalProducts&&(B.each(u.additionalProducts,function(t){var e;t.isProductWithVariants&&(e=c.find('.js-additional-product[data-uniqueid="'+t.uniqueId+'"]'),t.variantRelImageMatchRegExp=u.variantRelImageMatchRegExp,e={$productContainer:e,productModel:t,priceTotals:f,metadata:u.metadata,say:m,pubsub:l,utils:p},n.push(k(e,g)))}),n.length)&&await Promise.all(n),f.updatePriceTotals(),new v(c,u,m,l,g,p,f).init(),new I(c,u).init(),new y(c,u,l).init(),new D(c,u,m,p,g).init(),u.isPrintEnabled&&new b(c,u).init(),new w(c,u).init(),u.isPriceRequestEnabled&&(a=c,{init:function(){var t=U(".js-feedback-control"),e=U(".js-feedback-control2"),n=a.find(".js-price-request-btn");0<(t=0<e.length?e:t).length&&n.on("click",function(){U.fancybox.open({parentEl:"form:first",src:t,type:"inline"})})}}.init()),new C(c,u).init(),t.reportProductsView(c,u);u.isProductRelationsExtensionEnabled&&u.isProductWithVariants&&u.additionalProducts&&u.additionalProducts.length&&new x(c,u,g,f,l).init();var i=c.find("select.js-similar-products-selector"),o=(i.length&&i.on("change",t=>window.location=t.target.selectedOptions[0].dataset.url),u.showWarehouseStockInfo&&((e=c.find("stock-info-list").get(0))&&e.setData(u.warehouseStocks),t=u.isSingleProduct||u.isVariantProductOfProductWithVariants,M(c,u.productId,p,t),O(c,p,u.isMainProductOfProductWithVariants)),V(c,u,p),u),r=f,i=c;if(o.isCanvasEditorEnabled){var d=R("templateId"),s=document.querySelector("."+Z+"__template-designer");z(o.isAvailableToBuy&&(0<d||o.designTemplateListModel.templates.length<=1||o.tempOrderLineDesignJson?.length),!o.isMainProductOfProductWithVariants),(t=>{var e=document.querySelector(".js-product-design-template-list");e&&(e.style.display=t?"block":"none")})(!0);let t=document.querySelector("product-designer");t&&(d=d||o.designTemplateListModel.templates.find(t=>t.productId==o.productId)?.id,o.designTemplateData={productId:o.productId,templateId:d??0,productDesignTemplates:o.designTemplateListModel?.templates,attachmentZoneId:o.designTemplateListModel?.templates?.find(t=>t.productId===o.productId)?.attachmentZoneId||0},o.designTemplateListModel.templates&&0<d&&!o.tempOrderLineDesignJson?.length&&A(o,r),o.tempOrderLineDesignJson?.length&&A(o,r,o.tempOrderLineDesignJson),t.onAttachmentChanged=function(t){o.designTemplateData||(o.designTemplateData={}),o.designTemplateData.attachmentZoneId=t,r.updatePriceTotals()});e=document.querySelector(".js-customize-design-btn"),e=(e&&(e.addEventListener("click",function(){z(o.isAvailableToBuy,!0),J(s,-150),t&&t.clearDesign(!0),o.designTemplateData={productId:o.productId,templateId:d??0,productDesignTemplates:o.designTemplateListModel?.templates,attachmentZoneId:0},r.updatePriceTotals()}),F(!o.isMainProductOfProductWithVariants&&(0==o.designTemplateListModel.templates.length||d&&0<d))),document.querySelector(".js-choose-design-btn"));e&&e.addEventListener("click",function(){var t=document.querySelector(".js-product-design-template-list");t&&(z(!1),J(t,-150))}),h(o,r),(d||o.tempOrderLineDesignJson?.length)&&t&&J(s,-150),i.on("priceTotalsProcessor:ontotalsupdated",(t,e)=>{var n;e=(e=e).some(t=>t.origPriceRaw>t.priceRaw),(n=document.querySelector(".js-product-designer-add-to-cart"))&&(e?n.classList.add("has-discount"):n.classList.remove("has-discount"))})}else h(o,r);(async(e,n,a)=>
1{if(e.isSimplePrintConfigEnabled){a=a.find("simple-print-config")[0];if(a){await importShim("/components-shared/elements/simple-print-config/simple-print-config.js");let t;try{t=await U.ajax({url:G.R+"api/archive/product-design/simple-print-config/"+e.productId,type:"GET"})}catch(t){return!console.error("Failed to load simple print config data",t)}t&&t.printConfig&&(a.printConfig=t.printConfig,a.imageCategories=t.imageCategories||[],a.imageProductOptions=t.imageProductOptions||[],a.textProductOptions=t.textProductOptions||[],a.assemblyProductOptions=t.assemblyProductOptions||[],a.formattedImageFixedPrice=t.formattedImageFixedPrice||"",a.textInfoUrl=t.textInfoUrl||"",a.addEventListener("change",function(){n.updatePriceTotals()}),e.tempOrderLineSpcData)&&(a.restoreCartData(e.tempOrderLineSpcData),n.updatePriceTotals())}}})(u,f,c)})},variantProcessorsMap:g,setProductDesignData:function(t){u.designTemplateData=t,A(u,f)}}}function q(a,i){function n(t,e,n){"object"==typeof t&&null!==t&&(t=i.extractErrorMessageFromResponse(t)),a?(t=t.replace(/\n/g,"<br />"),a.publish("notification."+e,{text:t,timeout:n,maxVisible:3})):G.console[{error:"error",alert:"log",success:"log",warning:"warn"}[e]].apply(this,[t])}return{warning:function(t,e){n(t,"warning",e||!1)},error:function(t,e){n(t,"error",e||!1)},success:function(t,e){n(t,"success",e||3e4)}}}function o(t,l,d,s,i,p,m,g,u,f,h){var v=t,c=f.$getProductContainerElements(v,".js-variant-selector"),P={},I=!1,y=!1,b=!1,w={controlId:l.uniqueId,selectedVariantProd:null},C=!1,o={};function D(t,e){n=t.id;var n=P["vt"+n],a=n.selectedValue,i=(n.selectedValue=e||0,S()),o=E(i),r=!1;if(y||(o?(t=t.variants.find(t=>t.id===e),j(o,t),r=!0):I&&j()),g&&g.renderQuantityDiscounts(i),l.isCanvasEditorEnabled&&!b){let e=l.designTemplateData?.templateId||R("templateId")||0;t=0<o?.productId?l.designTemplateListModel.templates.find(t=>t.id===e&&t.productId===o.productId):null,i=(l.designTemplateData={productId:o?.productId||0,templateId:t?e:0,productDesignTemplates:l.designTemplateListModel.templates,attachmentZoneId:t?.attachmentZoneId||0},F(r),o?.isAvailable||!1);if(F(i),L(i),A(l,m),0<o?.productId){var d=o.productId,s=document.querySelectorAll(".js-product-designer-template");if(s&&0!=s.length){var c=document.querySelector(".js-variant-combination-dropdown");if(c)for(let t=0;t<c.options.length;t++){var u=c.options[t];if(u.value&&parseInt(u.value)===d){c.selectedIndex=t,s.forEach(t=>{var e=parseInt(t.dataset.productId);t.style.display=e===d?"":"none"});break}}}}}p.publish("variantprocessor.variant.changed",[e,a,n])}function T(t){var a=[];Object.values(P).forEach(t=>{0<t.selectedValue&&a.push(t.selectedValue)}),t?a=[t]:0==t&&(o={});let i=0<a.length;l.variantProducts.forEach(n=>{var t=a.every(e=>n.variants.find(t=>t===e));
1i&&!t||n.variants.forEach(t=>{o[t]={message:n.availabilityMessage,disabled:n.disableSelection,exists:n.exists}})}),l.variantProducts.forEach(t=>{var e=a.every(e=>t.variants.find(t=>t===e));i&&!e||!(t.isAvailable||l.isPriceRequestEnabled&&t.exists)||t.variants.forEach(t=>{delete o[t]})}),B.each(P,function(t){var e=(B.isEmpty(s)||!s[t.variantType.name.toLowerCase()])&&1===t.variantType.variants.length;t.selector.filterVariants(o,e)})}function j(s,t){var e=U.Event("variantsprocessor:beforeloadvariantproduct");function c(t){1===t.length&&(t.attr("href",l.mainImage.fullSizeUrl),t.attr("data-caption",l.mainImage.description),t.data("caption",l.mainImage.description),t.attr("data-width",l.mainImage.actualWidth),t.data("width",l.mainImage.actualWidth),t.attr("data-height",l.mainImage.actualHeight),t.data("height",l.mainImage.actualHeight))}v.trigger(e,[s,t]),e.isDefaultPrevented()?I=!!s:(U.blockUI({message:""}),t=s?s.variants:[],e=f.$getProductContainerElements(v,".js-sellprice-formatted"),e=l.showPrice&&0<e.length&&e.is(":visible"),U.ajax({url:G.R+"handlers/public/productdata.ashx",type:"GET",data:{a:"GetDimDetails",ItemID:l.itemId,Dim1:t[0]!==H?t[0]:0,Dim2:t[1]!==H?t[1]:0,Dim3:t[2]!==H?t[2]:0,CanHandleDisallowedBuyDims:!0,ImageWidth:l.previewImageWidth,ImgMod:l.previewImageMode,InclVat:l.sellPrice?l.sellPrice.inclVat:null,includeWarehouseStock:l.showWarehouseStockInfo,priceVisible:e}}).always(U.unblockUI).done(function(t){var e,n=t,a=(l.isMainProductOfProductWithVariants=n.IsMainProd,l.isVariantProductOfProductWithVariants=I=!n.IsMainProd,f.$getProductContainerElements(v,".js-price-fromtext")),i=(0<a.length&&a.toggle(l.isMainProductOfProductWithVariants),l.productId=n.ProductID,v.data("productid",l.productId),l.prodno=n.ProdNo,f.$getProductContainerElements(v,".js-product-number").text(l.prodno),l.title=n.FullTitle,f.$getProductContainerElements(v,".js-product-title").text(l.title),u&&u.reportProductDetailsView(l.productId),n.ImageURL&&(l.mainImage={id:n.ImageID,title:n.ImageText,description:n.ImageText,actualWidth:n.ImageActualWidth,actualHeight:n.ImageActualHeight,thumbnailUrl:n.ImageRelURL,previewUrl:n.ImageURL,fullSizeUrl:n.ImageLBURL,displayWidth:n.ImagePreviewDisplayWidth,displayHeight:n.ImagePreviewDisplayHeight},0<(a=f.$getProductContainerElements(v,".js-product-mainimage")).length)&&(a.attr("src",l.mainImage.previewUrl),a.attr("alt",l.mainImage.title),a.attr("data-imageid",l.mainImage.id),a.data("imageid",l.mainImage.id),l.mainImage.displayWidth&&l.mainImage.displayHeight&&(a.attr("width",l.mainImage.displayWidth),a.attr("height",l.mainImage.displayHeight)),l.galleryId)&&(1===(i=a.closest('[data-fancybox="single-variant-'+l.galleryId+'"]')).length?c(i):c(a.closest('[data-fancybox="'+l.galleryId+'"]'))),v.find("simple-print-config")[0]),o=(i&&(i.setAttribute("product-id",l.productId),l.mainImage)&&0<l.mainImage.id&&i.setAttribute("product-image-id",l.mainImage.id),l.stockText=n.StockText,l.stockColor=n.StockColor,a=l.stockCssClass,l.stockCssClass=n.StockCssClass,i=f.$getProductContainerElements(v,".js-stock-text"),v.hasClass(a)&&v.removeClass(a),i.hasClass(a)&&i.removeClass(a),l.stockCssClass&&(v.addClass(l.stockCssClass),i.addClass(l.stockCssClass)),a="has-discount",n.HasDiscount&&!v.hasClass(a)?l.dontShowDiscountForMainProduct&&l.isMainProductOfProductWithVariants?v.removeClass(a):v.addClass(a):(!n.HasDiscount&&v.hasClass(a)||n.HasDiscount&&v.hasClass(a)&&l.dontShowDiscountForMainProduct&&l.isMainProductOfProductWithVariants)&&v.removeClass(a),a=f.$getProductContainerElements(v,".js-vipps-hurtigkasse-button"),f.$getProductContainerElements(v,".js-batch-buy-button, .js-buy-button")),r=f.$getProductContainerElements(v,".js-show-when-available-to-buy"),d=f.$getProductContainerElements(v,".js-cant-buy-reason");n.IsMainProd&&(n.AllowBuy=!1,r.prop("hidden",!1)),n.AllowBuy&&"boolean"==typeof l.isAnonymousBuyConditionSatisfied&&(n.AllowBuy=l.isAnonymousBuyConditionSatisfied),n.AllowBuy&&l.isCanvasEditorEnabled&&(n.AllowBuy=l.isCanvasEditorEnabled),n.AllowBuy?(!0===r.prop("hidden")&&r.prop("hidden",!1),a.attr("disabled")!==H&&a.removeAttr("disabled"),!0===o.prop("disabled")&&o.prop("disabled",!1),!1===d.prop("hidden")&&d.prop("hidden",!0)):(!1!==r.prop("hidden")||n.IsMainProd||r.prop("hidden",!0),a.attr("disabled")===H&&a.attr("disabled","disabled"),!1===o.prop("disabled")&&o.prop("disabled",!0)),d=i.data("style-color-variable"),0<i.length&&(i.text(l.stockText),!1!==i.data("update-style-color")&&i.css("color",l.stockColor||"inherit"),d)&&(l.stockColor&&0<l.stockColor.length?
1i[0].style.setProperty(d,l.stockColor):i.removeAttr("style")),l.sellPrice&&(l.sellPrice.formatted=n.Price,l.sellPrice.raw=n.PriceRaw,0<(r=f.$getProductContainerElements(v,".js-sellprice-formatted")).length)&&(l.dontShowDiscountForMainProduct&&l.isMainProductOfProductWithVariants?r.text(l.beforePrice.formatted):r.text(l.sellPrice.formatted)),l.sellPriceWithVAT&&(l.sellPriceWithVAT.formatted=n.PriceInclVat,delete l.sellPriceWithVAT.raw,0<(a=f.$getProductContainerElements(v,".js-sellprice-withvat-formatted")).length)&&a.text(l.sellPriceWithVAT.formatted),l.sellPriceWithoutVAT&&(l.sellPriceWithoutVAT.formatted=n.PriceExclVat,delete l.sellPriceWithoutVAT.raw,0<(o=f.$getProductContainerElements(v,".js-sellprice-withoutvat-formatted")).length)&&o.text(l.sellPriceWithoutVAT.formatted),l.beforePrice&&(l.beforePrice.formatted=n.OriginalPrice,delete l.beforePrice.raw,0<(d=f.$getProductContainerElements(v,".js-beforeprice-formatted")).length)&&(i=f.$getProductContainerElements(v,".js-beforeprice-value, .js-beforeprice-label").add(d),!n.HasDiscount||l.dontShowDiscountForMainProduct&&l.isMainProductOfProductWithVariants?(i.hide(),i.parent().addClass("no-beforeprice-value")):(d.text(l.beforePrice.formatted),i.show(),i.parent().removeClass("no-beforeprice-value"))),l.discountPrice&&(l.discountPrice.formatted=n.Discount,delete l.discountPrice.raw,0<(r=f.$getProductContainerElements(v,".js-discountprice-formatted")).length)&&(a=f.$getProductContainerElements(v,".js-discountprice-value, .js-discountprice-label").add(r),n.HasDiscount&&l.discountPrice.formatted?(r.text(l.discountPrice.formatted),a.show()):a.hide()),l.discountPercent&&(l.discountPercent.formatted=n.DiscountPercent,delete l.discountPercent.raw,0<(o=f.$getProductContainerElements(v,".js-discountpercent-formatted")).length)&&(d=f.$getProductContainerElements(v,".js-discountpercent-value, .js-discountpercent-label").add(o),!n.HasDiscount||!l.discountPercent.formatted||l.dontShowDiscountForMainProduct&&l.isMainProductOfProductWithVariants?d.hide():(o.text("-"+l.discountPercent.formatted+"%"),d.show())),l.discountToDate&&(l.discountToDate.formatted=n.DiscountToDate,delete l.discountToDate.raw,0<(i=f.$getProductContainerElements(v,".js-discounttodate-formatted")).length)&&(r=f.$getProductContainerElements(v,".js-discounttodate-value, .js-discounttodate-label, .js-discounttodate").add(i),n.HasDiscount&&l.discountToDate.formatted?(i.text(l.discountToDate.formatted),r.show()):r.hide()),l.comparablePrice&&(l.comparablePrice.formatted=n.ComparablePrice,delete l.comparablePrice.raw,0<(a=f.$getProductContainerElements(v,".js-comparableprice-formatted")).length)&&a.text(l.comparablePrice.formatted),l.factorPrice&&(l.factorPrice.formatted=n.FactorPrice,delete l.factorPrice.raw,0<(o=f.$getProductContainerElements(v,".js-factor-price-formatted")).length)&&o.text(l.factorPrice.formatted),l.productInFactorPrice&&(l.productInFactorPrice.formatted=n.ProductInFactorPrice,delete l.productInFactorPrice.raw,0<(d=f.$getProductContainerElements(v,".js-product-in-factor-price-formatted")).length)&&d.text(l.productInFactorPrice.formatted),0<(i=f.$getProductContainerElements(v,".js-replacement-product-container")).length&&(n.ReplacementProductInfo?i.empty().html(n.ReplacementProductInfo).show():i.empty().hide()),m.updatePriceTotals(),V(v,n,f),M(v,n.ProductID,f,!l.isMainProductOfProductWithVariants),O(v,f,l.isMainProductOfProductWithVariants),(r=f.$getProductContainerElements(v,"stock-info-list").get(0))&&r.setData(n.warehouseStocks),(a=f.$getProductContainerElements(v,"product-qr-print-button").get(0))&&(a.productIds=[n.ProductID]),!0===h&&(o=t,d=l.designTemplateData,G.history)&&void 0!==G.history.pushState&&(i=location.href.split("#",2),o.IsMainProd?e=U.removeQueryStringParam(i[0],"dpid"):(e=U.setQueryStringParam(i[0],"dpid",o.ProductID),d&&d.templateId&&(e=U.setQueryStringParam(e,"templateId",d.templateId))),(e=1===i.length?e:e+"#"+i[1])!==location.href)&&(w.selectedVariantProd=s,w.designTemplateData=d,G.history.pushState(w,null,e)),p.publish("variantprocessor.variantproduct.updated",{variantProductDetails:t,product:l})}).fail(function(t){i.error(t)}))}function q(n,a){B.each(P,function(t){var e=B.find(t.variantType.variants,function(t){return-1!==B.indexOf(n,t.id)});e&&0<e.id?(t.selectedValue=e.id,t.selector.setSelected(e.id,a)):i.error('Variant type "'+t.variantType.name+'" has no corresponding variant value for the shown variant product. Please check variants configuration for the product.')})}function k(t){t=t.originalEvent.state;t&&t.controlId===l.uniqueId&&(C=!0,(w=t).selectedVariantProd?q(t.selectedVariantProd.variants,!0):B.each(P,function(t){t.selectedValue=0,t.selector.setSelected(0,!0)}),t.designTemplateData&&(l.designTemplateData=t.designTemplateData,A(l,m)),C=!1,j(w.selectedVariantProd),T())}function x(t,e){var n;t&&e&&(n=t,t=B.find(P,function(t){return f.caseInsensetiveEquals(t.variantType.name,n)}))&&t.selector.setSelectedByName(e)}function e(t){t=(e=>{if(e){var a=B.find(l.variantProducts,function(t){return t.productId===e});if(a){let n={};return B.each(l.variantTypes,function(t){var e=B.find(t.variants,function(t){return-1!==B.indexOf(a.variants,t.id)});e&&0<e.id&&(n[t.name]=e.name)}),n}}return null})(t);B.each(t,function(t,e){x(e,t)})}function E(t){var e,n=null;return B.every(t,function(t){return 0<t})&&(0===(e=B.filter(l.variantProducts,function(e){return B.every(t,function(t){return-1!==B.indexOf(e.variants,t)})})).length?i.warning(d.noAvailableVariantProducts):1===e.length?n=e[0]:1<e.length&&i.warning(d.invalidVariantsConfiguration+" "+d.multipleAvailableVariantProducts)),n}function S(){return B.map(P,function(t){return t.selectedValue||0})}function r(){return B.filter(P,function(t){return!(0<t.selectedValue)})}return{init:async function(){let o=l.sellPrice?l.sellPrice.inclVat:null;var r=[];c.each(function(){var t=U(this),e=t.data("viewbuilder")||"";let n=t.data("varianttypeid");var a=t.data("loadadditionalinfo");let i=null;i="boolean"==typeof a?a:"string"==typeof a?"true"===a:!l.groupingComponents,r.push(G.createVariantSelector(e,this,l,n,new Map(Object.entries(d)),o,i));a=B.find(l.variantTypes,function(t){return t.id===n}),e="vt"+n;P[e]={variantType:a,selectedValue:0,selector:null,$elem:t}}),await Promise.all(r).then(function(t){B.each(t,function(t){var e;void 0!==t&&(t.render(),e=t.variantType.id,P["vt"+e].selector=t)}),P=Object.keys(P).filter(t=>null!==P[t].selector).reduce((t,e)=>(t[e]=P[e],t),{}),c.on("variantselector:changed",function(t,e,n){t=$(t,e,n);e=t.changedVariantType,n=t.newVariantValue,C||(D(e,n),1<B.keys(P).length&&T(n))}),T();{var a={},n=[],i=[];B.each(P,t=>{0<t.selectedValue&&(n.push(t.variantType.id),i.push(t.selectedValue))});let e=0<i.length;
1l.variantProducts.forEach(n=>{var t=i.every(e=>n.variants.find(t=>t===e));e&&!t||n.variants.forEach(t=>{n.discountInfo&&(a[t]={discountInfo:n.discountInfo})})}),B.each(P,function(t){t.selector.processVariants(a)})}var e,t=B.find(l.variantProducts,function(t){return t.productId===l.productId});t?(w.selectedVariantProd=t,l.hasDesignTemplate&&(e=l.designTemplateListModel.templates.find(t=>t.productId===l.productId)?.id||0,w.designTemplateData={productId:l.productId,templateId:e,productDesignTemplates:l.designTemplateListModel.templates,attachmentZoneId:l.designTemplateListModel.templates.find(t=>t.productId===l.productId)?.attachmentZoneId||0}),b=y=!0,q(t.variants,!1),b=y=!(I=!0)):B.isEmpty(s)||B.each(s,function(t,e){x(e,t)}),!0===h&&(G.history&&void 0!==G.history.replaceState&&G.history.replaceState(w,null,null),U(G).on("popstate",k))}).catch(t=>{console.error(t)})},$selectors:c,getSelectedVariantProduct:function(){return E(S())},getNotSelectedVariants:r,selectVariantByName:x,selectVariantByProductId:e,isVariantsSelectionValid:function(t){var n,a=r(),e=0===a.length;return e||(B.each(a,function(t,e){t="<strong>"+t.variantType.name+"</strong>";0===e?n=t:e===a.length-1?n+=" "+d.and+" "+t:n+=", "+t}),i.warning(t+" - "+d.pleaseSelect+" "+n,1e4)),e},setProductDesignData:function(t){t&&(l.designTemplateData=t,l.productId!=t.productId&&(b=!0,e(t.productId),b=!1),A(l,m))}}}async function k(t,e){var n=new o(t.$productContainer,t.productModel,t.metadata,t.preselectedVariants,t.say,t.pubsub,t.priceTotals,t.quantityDiscountsProcessorInstance,t.externalTrackingProcessorInstance,t.utils,t.enableHistoryState);await(e[t.productModel.uniqueId]=n).init()}function V(e,n,a){let i=a.$getProductContainerElements(e,"cms-tooltip").get(0);if(i){let t=i.shadowRoot.querySelector("supplier-order-info");var o=i.shadowRoot.querySelector(".js-stock-text-tooltip"),a=a.$getProductContainerElements(e,".js-stock-text-info"),e=n.inSupplierOrder||n.InSupplierOrder,r=0<n.stockStatusTooltipInfo?.length||e;(i.visible=r)?(n.stockStatusTooltipInfo&&(r=n.stockStatusTooltipInfo.replace(/\n/g,"<br />"),o)&&0<r.length&&(o.innerHTML=r),o&&n.stockStatusTooltipInfo&&e&&(o.innerHTML+="<hr/>"),e?importShim("/components/estore/stock/supplier-order-info.js").then(function(){t||(t=document.createElement("supplier-order-info"),i.shadowRoot.querySelector(".container").appendChild(t)),t.update(n.ProductID||n.productId)}):t&&t.remove(),a.show()):a.hide()}}function M(t,e,n,a){n=n.$getProductContainerElements(t,"warehouse-stock-list").get(0);n&&e&&(a?(n.update(e),n.removeAttribute("hidden")):n.setAttribute("hidden","hidden"))}function O(t,e,n){e=e.$getProductContainerElements(t,".js-choose-variant-to-see-stock-status").get(0);e&&(n?e.removeAttribute("hidden"):e.setAttribute("hidden","hidden"))}function L(t){var e=document.querySelector(".js-batch-buy-button, .js-buy-button");t?e.removeAttribute("disabled"):e.setAttribute("disabled","disabled")}function F(t){var e=document.querySelector(".js-customize-design-btn");e&&(t?e.removeAttribute("disabled"):e.setAttribute("disabled","disabled"),e.visible=!0)}function J(t,e){var n;t&&(t=t.getBoundingClientRect(),n=window.pageYOffset||document.documentElement.scrollTop,0<(n+=t.top+e))&&window.scrollTo({top:n,behavior:"smooth"})}function h(c,u){let l=document.querySelector(".js-upload-design-file-btn");if(l){let a=parseInt(l.dataset.folderId)||0,e=document.querySelector(".js-customize-design-btn"),n=document.querySelector(".js-choose-design-btn"),i=document.querySelector("."+Z+"__template-designer"),o=document.querySelector(".js-product-design-template-list"),r=document.querySelector(".js-product-design-file-upload"),d=document.querySelector(".js-product-design-file-name");var t=document.querySelector(".js-product-design-file-reset");let s=document.querySelector(".js-product-design-file-input");function p(t){t&&t.style.setProperty("display","none","important")}function m(t){t&&t.style.removeProperty("display")}function g(t){r&&(d&&(d.textContent=t||""),r.removeAttribute("hidden")),p(e),p(n),p(l),p(i),p(o),L(!0)}s&&s.addEventListener("change",async function(){var t=s?.files?.[0];if(t&&a)try{var e=new Uint8Array(await t.arrayBuffer()),n=await K(a,0,t.name,t.type,e);0<n&&(c.uploadedDesignFileItemId=n,c.uploadedDesignFileName=t.name,g(t.name),u)&&u.updatePriceTotals()}catch(t){console.error("Failed to upload design file",t)}}),l.addEventListener("click",function(){s&&(s.value="",s.click())}),t&&t.addEventListener("click",function(){c.uploadedDesignFileItemId=0,r&&r.setAttribute("hidden","hidden"),d&&(d.textContent=""),m(e),m(n),m(l),m(i),m(o),c.uploadedDesignFileName="",u&&u.updatePriceTotals()}),0<c.tempOrderLineDesignFileItemId&&(c.uploadedDesignFileItemId=c.tempOrderLineDesignFileItemId,c.uploadedDesignFileName=c.tempOrderLineDesignFileName||"",g(c.uploadedDesignFileName))}}function z(t,e){var n=document.querySelector("."+Z+"__template-designer"),n=(n&&(n.style.display=t?"block":"none"),document.querySelector(".js-product-designer-add-to-cart"));n&&L(e)}function A(e,n,a){let i=document.querySelector("product-designer");if(i){if(e.designTemplateData??={productId:e.productId},e.designTemplateListModel.templates){o=e.designTemplateListModel.templates,r=e.designTemplateData.productId,o&&0!=o.length&&o.sort((t,e)=>t.productId===r&&e.productId!==r?-1:t.productId!==r&&e.productId===r?1:0);o=o.map(t=>
1t.id);{let e=document.querySelector(".js-product-card-grid .ListContainer");if(e&&o&&o.length){var t=Array.from(e.querySelectorAll(".js-product-designer-template"));let n=new Map;t.forEach(t=>{var e=t.dataset.templateId;e&&n.set(e,t)}),e.innerHTML="",o.forEach(t=>{t=n.get(t.toString());t&&e.appendChild(t)})}}}var o,r;i.setAttribute("product-id",e.designTemplateData.productId),i.setProductId(e.designTemplateData.productId).then(function(){var t=e.designTemplateListModel?.templates?.find(t=>t.id===e.designTemplateData.templateId);if(t||a?.length)if(e.designTemplateData.productDesignTemplates=e.designTemplateListModel?.templates,t?.attachmentZoneId&&(e.designTemplateData.attachmentZoneId=t.attachmentZoneId),e.designTemplateData.templateId&&0!=e.designTemplateData.templateId&&"undefined"!=e.designTemplateData.templateId||(e.designTemplateData.templateId=R("templateId")),a?.length)i.setDesign(a),n&&n.updatePriceTotals();else if(0<e.designTemplateData.templateId){let t=G.R+"api/archive/product-design/"+e.designTemplateData.productId+"/template/";e.designTemplateData.templateId&&(t+=e.designTemplateData.templateId),U.ajax({url:t,type:"GET"}).done(function(t){t&&(i.setDesign(t),n)&&n.updatePriceTotals()})}else n&&n.updatePriceTotals()})}}async function K(t,e,n,a,i){t=G.R+"startup/api/v1/archive/items/upload?folderId="+t+"&itemId=+"+e+"&filename="+encodeURIComponent(n)+"&mimeType="+encodeURIComponent(a)+"&first=true&last=true";return U.ajax({url:t,type:"POST",data:i,contentType:"application/octet-stream",processData:!1,headers:{"X-File-Name":n,"X-Mime-Type":a}})}function $(t,e,n){t=t.originalEvent&&t.originalEvent.detail;return{changedVariantType:e!==H?e:t&&t[0],newVariantValue:n!==H?n:t&&t[1]}}function R(t){t=t.replace(/[\[\]]/g,"\\$&");var t=new RegExp("[?&]"+t+"(=([^&#]*)|&|#|$)").exec(window.location.href);return t?!t[2]||"undefined"===(t=decodeURIComponent(t[2].replace(/\+/g," ")))||(t=parseInt(t),isNaN(t))?0:t:null}function v(s,$,R,n,W,N,o){var r=G.PublicEStore,c={},_={},d=null,u=null,l=!1;function p(t,e){s.addClass("buying"),U.when(r.addToCart(t)).always(function(){s.removeClass("buying")}).done(function(t){n.publish("frontend.productview.product.isbought"),e.addClass("is-bought"),setTimeout(function(){e.removeClass("is-bought")},2e3),"ok"!==t.status.toLowerCase()?t.result.items&&t.result.items.length?B.each(t.result.items,function(t){var e=t.status.toLowerCase(),n=(e=>{var n=null;return(e=parseInt(e))&&!(n=!(n=!(n=$.productId===e?$:n)&&$.additionalProducts?$.additionalProducts.find(function(t){return t.productId===e}):n)&&$.packageComponentProducts?$.packageComponentProducts.find(function(t){return t.productId===e}):n)&&$.groupingComponents&&$.groupingComponents.every(t=>!n&&(n=t.componentProducts.find(t=>t.productId===e),!0)),n||console.warn("First product model was not found by product id "+e),n})(t.productID),a=n&&n.title?[n.title,t.message].join(" - "):t.message;switch(e){case"error":R.error(a);break;case"warning":R.warning(a)}}):a(t):0<$.tempOrderLineId&&(G.location.href=$.cartUrl)}).fail(a)}function a(t){t="string"==typeof t?t:(t.result&&t.result.items[0]?t.result.items[0]:t).message;R.error(t)}function i(t){var a=null!=$.variantProducts?U.map($.variantProducts,function(t){return t.productId}):null,i=$.productId,o=$.isMainProductOfProductWithVariants,e=B.reduce(c,function(t,e,n){return t+((n=parseInt(n))===i||o&&-1<B.indexOf(a,n)?e:0)},0),n=0<e,r=N.$getProductContainerElements(s,".js-cart-quantity"),d=N.$getProductContainerElements(s,".js-cart-indicator");r.text(e),r.toggle(n),n?0<d.length&&(d.show(),t)&&s.effect("transfer",{to:d},500,function(){d.effect("bounce",null,500)}):d.hide()}function e(t,e){e=B.find(e.result.items,function(e){return e&&"ok"===e.status.toLowerCase()&&(e.productID===$.productId||$.additionalProducts&&0<$.additionalProducts.filter(function(t){return t.productId===e.productID}).length)});e&&(c[e.productID]=e.totalQuantityInTempOrderLine,i(!0))}function m(t,e){B.each(e.result.items,function(t){var e;"ok"===t.status.toLowerCase()&&(e=t.productID,delete c[e],t=$.isMainProductOfProductWithVariants&&B.some($.variantProducts,function(t){return t.productId===e}
1),e!==$.productId&&!t||i())})}function g(t,e){"ok"===e.status.toLowerCase()&&(c={},i())}function f(t,e){var n=e.result.detailedCartInfo;"ok"===e.status.toLowerCase()&&(c={},n.products&&0<n.products.length&&B.each(n.products,function(t){c[t.productID]=(c[t.productID]||0)+t.quantity}),i())}async function Q(t,e,n,a,i){var o,r,d=null,s=t.data("uniqueid"),c=t.data("uniquekey"),u=t.data("producttype")||"Product",l=(r=null,(o=s)&&($.uniqueId===o?r=$:!(r=!(r=!r&&$.additionalProducts?$.additionalProducts.find(function(t){return t.uniqueId===o}):r)&&$.packageComponentProducts?$.packageComponentProducts.find(function(t){return t.uniqueId===o}):r)&&$.groupingComponents&&$.groupingComponents.every(t=>!r&&(r=t.componentProducts.find(t=>t.uniqueId===o),!0))),r||console.warn("Product model was not found by unique id "+o),r),p=_[l.productId]||[];if(!p?.length&&l.customFields){p??=[];for(var m of l.customFields)"editable"!==m.displayType&&"hidden"!==m.displayType||!m.includeInOrder||p.push(m.id);_[l.productId]=p}var g=0,f=0;switch((e||"").toLowerCase()){case"fraction":f=N.tryParseNumberOrDefault(t.find(".js-fraction").val());break;case"factor":g=t.find(".js-quantity").val()||1;break;case"package":var h=l.packageSize||1,g=(t.find(".js-package-quantity").val()||1)*h;break;case"package_component":g=l.initialQuantity.raw*i;break;case"grouping_product_component":g=N.tryParseNumberOrDefault(t.find(".js-quantity").val(),1)*i;break;default:g=N.tryParseNumberOrDefault(t.find(".js-quantity").val(),1),f=N.tryParseNumberOrDefault(t.find(".js-fraction").val())}var v,P,I,y,s=l.minQuantity?l.minQuantity.raw:H;if(T=t,b=l.title,I=!0,y=T.validate({ignore:[]}),N.$getProductContainerElements(T,"[data-rule-required]").each(function(){var t=U(this);I&=y.element(t)}),(T=T.find("simple-print-config")[0])&&!T.isValid&&("function"==typeof T.showValidation&&T.showValidation(),I=!1),I||R.warning(b+" - "+$.metadata.formIsInvalid),I&&(T=s,b=g,s=l.title,S=!0,T&&b<T&&(R.warning(s+" - "+$.metadata.minQuantityIs+" "+T),S=!1),S)){var b=W[l.uniqueId];if(!b||b.isVariantsSelectionValid(l.title)){var w=null,C=null,D=!1,s=null,T=null;if(l.packageComponentProducts){var j,w=[],F=N.$getProductContainerElements(t,".js-component-products-list");for(j of l.packageComponentProducts){var q=await Q(F.find('.js-component-product[data-uniqueid="'+j.uniqueId+'"]'),"package_component",l.productId,l.uniqueId,g);q?w=w.concat(q):D=!0}}if(l.groupingComponents){var k,C=[],A=N.$getProductContainerElements(t,".js-grouping-product-container");for(k of l.groupingComponents)for(var x of k.componentProducts){var x=A.find('.js-grouping-product[data-uniqueid="'+x.uniqueId+'"]'),E=x.data("isselected");"boolean"==typeof E&&E&&((E=await Q(x,"grouping_product_component",l.productId,l.uniqueId,g))?C=C.concat(E):D=!0)}}if(l.isCanvasEditorEnabled&&!(0<l.uploadedDesignFileItemId)){var S=document.querySelector("product-designer");if(S){var b=document.querySelector("."+Z+"__template-designer");if(b&&"none"===b.style.display)return z(!0,!0),J(b,-150),null;b=l.productId,b=G.R+"api/archive/product-design/product/"+b;var V,M,O,b=(await U.ajax({url:b,type:"GET"}))?.printConfig?.generalSettings?.customerDesignsUploadFolderId,L=await S.confirmDesign();0<b&&!0===L?(L=S.getDesign(),V=S.getAttachmentZoneProduct(),O=Date.now(),O=`CustomerDesign_${l.productId}_${O}.svg`,(M=await S.getSvg())?(b=await K(b,0,O,"image/svg+xml",(new TextEncoder).encode(M)))?(s={productId:l.productId,productDesign:L,imageId:b},V&&(O=null!=V?.quantity?Math.max(V.quantity,1)*g:null,T={productId:V?.productId,productType:"Product",parentProductId:s.productId,quantity:O,fraction:0,followParentProduct:!0})):(D=!0,console.error("Failed to upload SVG file.")):(D=!0,console.error("Failed to get SVG from product designer."))):(D=!0,console.error("Design was not confirmed or upload folder is not configured."))}}D||(M=s?.imageId?s.imageId:l.mainImage?l.mainImage.id:H,L={productKey:c,productId:l.productId,productType:u,parentProductId:n,quantity:g,fraction:f,customFields:(v=p,P={},N.$getProductContainerElements(t,".js-custom-field").each(function(){var t=U(this),e=t.data("customfieldid"),t=t.is(":checkbox")?t.is(":checked").toString():t.val();-1!==B.indexOf(v,e)&&void 0!==t&&(P[e]=t)}),P),tempOrderLineId:l.tempOrderLineId,imageId:M,componentOfPackageProductID:"package_component"===e?a:null,productDesignJson:s?.productDesign??null},(b=t.find("simple-print-config")[0])&&(V=b.getCartData())&&(L.simplePrintConfig=V),0<l.uploadedDesignFileItemId&&(L.customerDesignFile={itemId:l.uploadedDesignFileItemId,filename:l.uploadedDesignFileName||""}),d=[L],w&&(L.packageProductID=l.uniqueId,d=d.concat(w)),C&&(d=d.concat(C)),s&&l.tempOrderLineId&&(L.removeChildProducts=!0),T&&d.push(T))}}return d}let h=null;async function v(t){h=t,await(async()=>
1{if("ok"!==(a=await P(r.getTempOrderLines(null,!0))).status.toLowerCase())throw new Error(dataContract?.message);if(!(n=0<a.result.items.length))return await e(),!0;if(await Q(N.$getProductContainerFor(h))){var n=a&&a.result?a.result.items:null,a=o.getCurrentTotals(),a=a&&a.length?a.find(t=>!t.group):null;let t=null;t=a?a.priceRaw:(a=N.tryParseNumberOrDefault(s.find(".js-quantity").val(),1),$.sellPrice.raw*a);a=n?n.map(t=>t.linePrice).reduce((t,e)=>t+e,0):0,n=n?n.map(t=>t.quantity).reduce((t,e)=>t+e,0):0;let e={cartLink:$.cartUrl,cartCount:n,cartSum:a+t,productPrice:t};u?(l&&(u.setOnDecision(i),l=!1),u.show(e)):d.then(t=>{u=new t.VippsBuyProductDialog(i),s.append(u),u.show(e)})}return!1;async function i(t){if("only-product"===t)await P(r.emptyCart());else if("whole-cart"!==t)return void console.warn("Unsupported decision from Vipps dialog: "+t);await e(),await h.startCheckout(!0)}async function e(){var t=await Q(N.$getProductContainerFor(h));if(!t)throw new Error("Failed to get add to cart contract for Vipps Hurtigkasse checkout.");t=await P(r.addToCart(t,null,!0));if("ok"!==t.status.toLowerCase())throw new Error(t.message)}})()&&await h.startCheckout(!0)}return{init:function(){r.subscribe("estore.callback.shopcart.addtocart",e),r.subscribe("estore.callback.shopcart.removefromcart",m),r.subscribe("estore.callback.shopcart.emptycart",g),r.subscribe("estore.callback.shopcart.getdetailedcartinfo",f),U.when(r.getDetailedCartInfo());W[$.uniqueId]&&n.subscribe("variantprocessor.variantproduct.updated",function(){i()}),s.find(".js-buy-button,.js-buy-additional-product-button").on("click",async function(t){t.preventDefault();var t=U(this),e=await Q(N.$getProductContainerFor(this),t.data("buy-type"));e&&p(e,t)}),s.find(".js-batch-buy-button").on("click",async function(t){t.preventDefault();var e=[],n=!0,a=s.find(".js-quantity");for(let t=0;t<a.length;t++){var i=U(a[t]);0<N.tryParseNumberOrDefault(i.val())&&((i=await Q(N.$getProductContainerFor(i)))?e=e.concat(i):n=!1)}e.length?n&&p(e,U(this)):n&&R.warning($.metadata.nothingToBuy)});var t=s.find("vipps-hurtigkasse");t&&t.length&&(importShim("/components/checkout/vipps/cms-vipps-hurtigkasse.js"),d=importShim("/components/checkout/vipps/vipps-buy-product-dialog.js"),t.on("onbeforestart",async function(t){t.preventDefault(),await v(t.target)}),window.addEventListener("pagehide",t=>{t.persisted&&(jQuery.unblockUI(),l=!0)})),N.initQuantityModifyButtons(s,".js-quantity-modify-btn"),N.initQuantityModifyButtons2(s,".js-plus-minus-container")}}}function I(e,t){var n=G.R+"startup/api/v1/acrhive/flags/connections/visible",a=t.itemId;return{init:function(){var t;t=[a],U.get(n,{itemIds:t,archiveType:20}).done(function(t){var n;B.isEmpty(t)||(t=t[a],t=t,n=e.find(".js-flags-target"),B.each(t,function(t){U("<span />",{class:"flag flag-"+t.FlagID,text:t.Name,data:t}).appendTo(n);var e=t.Name.replace(/\s+/g,"-").toLowerCase();U(".uc-product-view").addClass(e+" flag-"+t.FlagID+"-"+e)}))})}}}function y(n,r,e){var a=r.itemId;function i(){var t={stars:(()=>{for(var t=5*r.rating,e=[],n=1;n<=t;n++)e.push("whole");var a=t-e.length;0<a&&e.push(.5<a?"whole":"half");for(var i=5-e.length,o=0;o<i;o++)e.push("empty");return e})()},t=B.template('<% _.each(stars, function(star){ %><i class="c-rating__star<%= (star === "half" ? " c-rating__star_half" : star === "empty" ? " c-rating__star_empty" : "") %>" aria-hidden="true"></i><% }); %>',t);n.find(".js-rating-container").empty().append(t)}return{init:function(){U(function(){i(),e.subscribe("reviewscontrol.reviewaction",function(t,e){e===r.itemId&&U.ajax({url:G.R+"handlers/public/productdata.ashx?a=getrating&itemid="+a,type:"GET"}).done(function(t){r.rating=t.rating,r.commentsCount=t.commentsCount,r.ratingsCount=t.ratingsCount,r.hasUserPostedReview=t.hasUserPostedReview,i(),n.find(".js-add-review").toggle(!r.hasUserPostedReview
1),n.find(".js-rating-comments-count").text(t.commentsCount),n.find(".js-rating-ratings-count").text(t.commentsCount)})}),n.find(".js-add-review").click(function(t){t.preventDefault(),e.publish("reviewscontrol.focus",r.itemId)})})}}}function b(t,e){return{init:function(){t.find(".js-print-button").on("click",function(t){t.preventDefault(),e.printPath?(t=G.R+e.printPath+"?ItemID="+e.itemId+"&ProductID="+e.productId,G.open(t,"remote","resizable=yes,status=0,menubar=0,scrollbars=1,left=0,top=0,width=780,height=950,location=0")):console.error("Print handler is not configured on the website")})}}}function w(t,e){return{init:function(){t.find(".js-downloadpdf-button").on("click",function(t){t.preventDefault();t=G.R+"RenderToPdf.aspx?ProductID="+e.productId;0<e.pdfTemplateId&&(t+="&TemplateID="+e.pdfTemplateId),G.open(t,"_blank")})}}}function C(t,e){var n={selector:'[data-fancybox="'+e.galleryId+'"]',loop:!0,hash:!1};return{init:function(){t.fancybox(n)}}}function D(i,d,s,c,u){return{init:function(){i.find(".js-add-to-shopping-list-btn").click(function(t){t.preventDefault();var n,a,e,i=c.$getProductContainerFor(this),t=i.data("uniqueid"),t=u[t];if(null!=(t=t)?(e=0===(n=t.getNotSelectedVariants()).length)||(B.each(n,function(t,e){t="<strong>"+t.variantType.name+"</strong>";0===e?a=t:e===n.length-1?a+=" "+d.metadata.and+" "+t:a+=", "+t}),s.warning(d.metadata.pleaseSelect+" "+a+" "+d.metadata.toAddToShoppingList)):e=!0,e){var o=0,r=0;switch((U(this).data("add-type")||"").toLowerCase()){case"fraction":r=c.tryParseNumberOrDefault(i.find(".js-fraction").val());break;case"factor":o=i.find(".js-quantity").val()||1;break;default:o=c.tryParseNumberOrDefault(i.find(".js-quantity").val(),1),r=c.tryParseNumberOrDefault(i.find(".js-fraction").val())}t=[{productId:d.productId,imageId:d.mainImage.id,quantity:o,fraction:r,customFields:d.customFields}];G.showAddToCollectionPopup(t)}}),i.find(".js-add-additional-product-to-shopping-list-btn").click(function(t){t.preventDefault();var e=U(this).data("additional-product-id"),t=d.additionalProducts.filter(function(t){return t.productId===e})[0],n=c.tryParseNumberOrDefault(i.find(".js-additional-product-quantity[data-additional-product-id='"+e+"']").val(),1),a=c.tryParseNumberOrDefault(i.find(".js-additional-product-fraction[data-additional-product-id='"+e+"']").val()),t=[{productId:t.productId,imageId:t.mainImage.id,quantity:n,fraction:a}];G.showAddToCollectionPopup(t)}),i.find(".js-add-to-wish-list-btn").click(function(t){t.preventDefault();var n,a,e=U(this),i=e.hasClass("c-wish-list-btn_add");d.isAvailableToBuy&&!d.isMainProductOfProductWithVariants?G.updateWishList(d.productId,i?"add":"remove",function(t){"ok"===t.status.toLowerCase()?B.each(t.result.items,function(t){"ok"===t.status.toLowerCase()?(s.success(d.metadata.wishListUpdated),e.toggleClass("c-wish-list-btn_add",!i),e.toggleClass("c-wish-list-btn_remove",i)):s.error(t.message)}):s.error(t.message)}):(t=c.$getProductContainerFor(e).data("uniqueid"),n=u[t].getNotSelectedVariants(),B.each(n,function(t,e){t="<strong>"+t.variantType.name+"</strong>";0===e?a=t:e===n.length-1?a+=" "+d.metadata.and+" "+t:a+=", "+t}),s.warning(d.metadata.pleaseSelect+" "+a+" "+d.metadata.toAddToWishList))})}}}function T(t,e){var n=t.find(".js-quantity-discounts"),a=t.find(".js-quantity-discounts-info");return{renderQuantityDiscounts:function(t){0<n.length&&(t=t,U.ajax({url:G.R+"handlers/public/estoredata.ashx",type:"GET",data:{a:"GetQuantityDiscounts",itemId:e.itemId,dim1:t!==H&&t[0]!==H?t[0]:0,dim2:t!==H&&t[1]!==H?t[1]:0,dim3:t!==H&&t[2]!==H?t[2]:0,showPrice:"Price"===e.quantityDiscountVisibility,format:"html"}}).done(function(t){t&&0<t.length?(n.show(),a.html(t)):n.hide()}).fail(function(){n.hide()}))}}}function j(){return{reportProductsView:function(t,e){var n,a;G.reportProductDetailsView(e.productId),t=t,e=e,n=U.trim(e.title||document.title),0<(a=(t=t.find(".js-additional-product-list")).find(".js-additional-product")).length&&(n=n+" > "+(t.data("listname")||e.metadata.additionalProductsTab),t=a.map(function(){var t=U(this);return{productId:t.data("productid"),$links:t.find(".js-product-link")}}).get(),G.reportProductListView(G.productListType.relatedProducts,n,t))},reportProductDetailsView:function(t){G.reportProductDetailsView(t)}}}function x(d,s,r,n,i){var c,o={};function u(t,e){var o;t&&e&&(t=t.toLowerCase(),e=e.toLowerCase(),t=c[t]?c[t][e]:null)&&(o=!1,B.each(t,function(t){var e,n,a=t.productID,i=(null===a&&(e=t.itemID,a=(i=B.find(s.additionalProducts,function(t){return!t.isProductWithVariants&&t.itemId===e}))?i.productId:null),p(t.relationID,a));i&&(a=i.uniqueId)&&(void 0!==t.quantityInRelation&&(d.find('[data-uniqueid="'+a+'"] .js-quantity').val(t.quantityInRelation),o=!0),void 0!==t.variants)&&(n=r[a])&&B.each(t.variants,function(t,e){n.selectVariantByName(e,t)})}),o)&&n.updatePriceTotals()}function l(e){var n={},a=B.find(e.variantProducts,function(t){return t.productId===e.productId});return a&&B.each(e.variantTypes,function(t){var e=B.find(t.variants,function(t){return-1!==B.indexOf(a.variants,t.id)});e&&0<e.id&&(n[t.name]=e.name)}),n}function p(t,e){return o[t]?o[t][e]:H}function m(t,e){i.unsubscribe(m),e.variantProductDetails.IsMainProd||(e=l(s),B.each(e,function(t,e){u(e,t)}))}return B.each(s.additionalProducts,function(t){var e;t.group&&"Relation"===t.group.groupType&&(e=t.group.groupId,o[e]||(o[e]={}),o[e][t.productId]=t)}),{init:function(){var e=r[s.uniqueId];e&&U.ajax({url:G.R+"api/archive/relation/foritem/"+s.itemId+"/variant/ext-data",type:"GET",data:{relationIds:B.keys(o)}}).done(function(t){(c=t)&&(s.isVariantProductOfProductWithVariants?(t=l(s),B.each(t,function(t,e){u(e,t)})):i.subscribe("variantprocessor.variantproduct.updated",m),e.$selectors.on("variantselector:changed",function(t,e,n){var t=$(t,e,n);e=t.changedVariantType,0<(n=t.newVariantValue)&&(t=B.find(e.variants,function(t){return t.id===n}),u(e.name,t.name))}));var n,a,r,t=d.find(".js-relation-extension-data-scheme");0<t.length&&(n=t,B.isEmpty(c)||B.isEmpty(o)?n.remove():(a=B.template("<table><thead><tr><th>
1</th><% _.each(columns, function(column) { %><th><%= column %></th><% }); %></tr></thead><tbody><% _.each(_.sortBy(rows, 'position'), function(prod) { %><tr data-prod-uniqueid='<%= prod.uniqueId %>'><td><%= prod.title %></td><% _.each(columns, function(column) { %><td><%= prod.extDataMap[column] ? prod.extDataMap[column].quantityInRelation : '-' %></td><% }); %></tr><% }); %></tbody></table>"),r={},d.find(".js-additional-product[data-uniqueid]").each(function(t,e){e=U(e).data("uniqueid");e&&(r[e]=t)}),B.each(c,function(t,e){var o={gridTitle:e,columns:[],rows:{}},e=(B.each(t,function(t,i){o.columns.push(i),B.each(t,function(t){var e,n,a=t.relationID+"_"+t.productID;void 0===o.rows[a]&&((e=p(t.relationID,t.productID))?(n=r[e.uniqueId],o.rows[a]={uniqueId:e.uniqueId,group:e.group.groupName,title:e.title,position:-1<n?n:H,extDataMap:{}}):o.rows[a]=null),null!==o.rows[a]&&(o.rows[a].extDataMap[i]=t)})}),o.rows=B.filter(o.rows,function(t){return null!==t}),a(o));n.append(e)})))}).fail(function(t){console.error("[UMW]: Failed to get relation extension data",t)})}}}function E(r,d,s){var c,u="additionals",l="default",p="0",t=null,m=null,g={empty:[]};function f(t){var o={},e=(B.each(t,function(t){t.hasDiscount=t.origPrice!==t.price,o[t.group||l]=t}),c.each(function(){var t,e=U(this),n=e.closest(".js-price-totals-container, [js-price-totals-container]"),a=e.data("price-totals-group")||l,i=o[a]||{};switch((e.data("price-totals")||"sellprice").toLowerCase()){case"quantity":t=i.quantity||p;break;case"price":case"sellprice":t=i.price||p;break;case"originalprice":case"beforeprice":case"before":t=i.hasDiscount?i.origPrice:null;break;case"discount":case"discountprice":t=i.hasDiscount?i.discPrice:null;break;default:t=null}null!==t?(e.text(t).show(),n.show()):(e.hide(),n.hide())}),U.Event("priceTotalsProcessor:ontotalsupdated"));r.trigger(e,[t])}function e(){var e=r.find(".js-quantity").map(function(){var e=U(this),n=d.tryParseNumberOrDefault(e.val()),a=null;if(0<n){var i=d.$getProductContainerFor(e),o=i.data("uniquekey"),r=i.data("productid");let t=e.data("price-totals-group")||i.data("price-totals-group");t=t||(i.hasClass("js-additional-product")?u:null),a={productkey:o,prodId:r,parentProductId:s.productId!==r?s.productId:0,itemId:s.itemId,quantity:n,productType:i.data("producttype")||"Product",group:t}}return a}).get();if(s.showCalculateShippingTool&&!s.groupingComponents&&(a=e.map(t=>({productId:t.prodId,quantity:t.quantity})),s.groupingComponents&&a.splice(a.findIndex(t=>t.productId==s.productId),1),n=document.querySelector("shipping-details"))&&(n.shippingProducts=a),(s.hasDesignTemplate||s.isCanvasEditorEnabled)&&0<s.designTemplateData?.attachmentZoneId){let t=null;var n=document.querySelector("product-designer"),a="function"==typeof n?.getAttachmentZoneProduct?n.getAttachmentZoneProduct():null;(t=!(t=0<a?.productId?{productId:a.productId,productQuantity:Math.max(a.quantity??1,1)}:t)&&s.designTemplateListModel?.templates&&0<(n=s.designTemplateListModel.templates.find(t=>t.id==s.designTemplateData?.templateId)?.exclusionZones?.find(t=>t.id==s.designTemplateData.attachmentZoneId))?.productId?{productId:n.productId,productQuantity:Math.max(n.productQuantity??1,1)}:t)&&e.push({productkey:t.productId,prodId:t.productId,quantity:t.productQuantity,productType:"Product"})}var t,i,a=r.find("simple-print-config")[0],o=(a&&a.getCartData&&(n=a.getCartData(),t=(i=0<e.length?e[0]:null)?i.quantity:1,i=i?i.prodId:s.productId,n.image&&0<n.image.pricingProductId&&e.push({prodId:n.image.pricingProductId,quantity:t,productType:"Product",parentProductId:i}),n.text&&0<n.text.pricingProductId&&0<(a="PerCharacter"===a.printConfig?.pricingSettings?.textPricing?.mode?(n.text.totalCharacterCount||0)*t:t)&&e.push({prodId:n.text.pricingProductId,quantity:a,productType:"Product",parentProductId:i}),n.assembly)&&0<n.assembly.productId&&e.push({prodId:n.assembly.productId,quantity:t,productType:"Product",parentProductId:i}),(a=e)&&0<a.length?JSON.stringify(a):"empty");g[o]?(m=g[o],f(g[o])):(c.text("..."),U.ajax({async:!1,url:G.R+"handlers/public/productdata.ashx",type:"POST",data:{a:"GetProductListQuantityPrice",params:JSON.stringify({products:e})}}).done(function(t){g[o]=t,f(m=t)}).fail(function(t){t=d.extractErrorMessageFromResponse(t);console.error("Failed to calculate price totals. ",t)}))}return{init:function(){0<(c=r.find("[data-price-totals]")).length&&r.find(".js-quantity").on("change",function(){t&&(G.clearTimeout(t),t=null),t=G.setTimeout(e,500)})},updatePriceTotals:function(){t&&(G.clearTimeout(t),t=null),0<c.length&&e()},getCurrentTotals(){return m}}}function S(t,n,a){var i=a.$getProductContainerElements(t,".js-component-products-list");n.packageComponentProducts&&i.length&&a.$getProductContainerElements(t,".js-quantity").on("change",function(){var e=a.tryParseNumberOrDefault(U(this).val());B.each(n.packageComponentProducts,function(t){i.find('.js-component-product[data-uniqueid="'+t.uniqueId+'"]').find(".js-component-quantity").text(t.initialQuantity.raw*e)})})}function W(a,r,l,d,s,c,u){let p={SingleProduct:0,MultipleProducts:1,AllProducts:2,OneOrMoreProducts:3},m={GroupingProductDefault:0,GroupingProductV2:1};var g,f,h,v=!0,P={};function I(t,e){t=y(t).componentProducts.find(t=>t.uniqueId===e);return t||console.error("Grouping product component product was not found by id = "+e),t}function y(e){var t=r.groupingComponents.find(t=>t.uniqueId===e);return t||console.error("Grouping component was not found by id = "+e),t}function b(t,e){var n=JSON.parse(JSON.stringify(t));return n.componentProducts=t.componentProducts.filter(t=>t.groupingProductId==e),n.componentProducts.sort((t,e)=>t.orderNo-e.orderNo),n}function w(t,e){var n;
1t.html(r.currencyCode+" "+(n=2,e.toLocaleString(H,{minimumFractionDigits:n,maximumFractionDigits:n}))),0===e?(t.removeClass("increase"),t.removeClass("decrease"),t.addClass("noimpact")):(0<e?(t.addClass("increase"),t.removeClass("decrease")):(t.removeClass("increase"),t.addClass("decrease")),t.removeClass("noimpact"))}function i(t){let a=t.data("componentuniqueid");t.find("[data-uniqueid]").each((t,e)=>{var e=U(e),n=e.data("uniqueid"),n=I(a,n),e=e.find(".js-stock-info");e&&(e=e.find(".js-stock-text"))&&(e.text(n.stockText),e.hasClass(n.stockCssClass)||e.addClass(n.stockCssClass))})}function C(t,e,n){var a;y((a=t).data("componentuniqueid")).buyMode===p.SingleProduct&&((a=a.find("[data-uniqueid]")).data("isselected",!1),a.removeClass("selected")),e.data("isselected",n),n?e.addClass("selected"):e.removeClass("selected"),e.attr("data-isselected",n),i(t)}function D(t){var e,n=t.closest("[data-componentuniqueid]"),a=y(n.data("componentuniqueid")),i=t.data("min-quantity");f===m.GroupingProductV2&&(a.buyMode===p.SingleProduct&&0<t.val()&&((e=n.find(".js-quantity").not(t)).val(0),e.closest(".js-plus-minus-container-grouping-product").find('button[data-action="decrease"]').attr("disabled","disabled")),a.buyMode===p.OneOrMoreProducts)&&(1===(e=n.find(".js-quantity").filter((t,e)=>0<U(e).val())).length&&t.val()<=i?e.closest(".js-plus-minus-container-grouping-product").find('button[data-action="decrease"]').attr("disabled","disabled"):1<e.length&&e.closest(".js-plus-minus-container-grouping-product").find('button[data-action="decrease"]').removeAttr("disabled"))}function e(){switch(f){case m.GroupingProductDefault:l.initQuantityModifyButtons(g,".js-gp-quantity-modify-btn");break;case m.GroupingProductV2:l.initQuantityModifyButtons2(a,".js-plus-minus-container-grouping-product")}g.find(".js-select-product").each((t,e)=>{U(e).on("change",function(t){var e,n=U(this),a=n.closest("[data-componentuniqueid]"),i=l.$getProductContainerFor(n),o=n.is(":checked"),r=y(a.data("componentuniqueid"));o||(e=r.buyMode)!==p.SingleProduct&&e!==p.AllProducts&&e!==p.OneOrMoreProducts||a.find('input[name="'+this.name+'"]:checked').not(this).length?(r.buyMode===p.SingleProduct&&a.find('input[name="'+this.name+'"]').not(this).prop("checked",!1),f===m.GroupingProductDefault&&r.buyMode===p.OneOrMoreProducts&&(o?(a.find('input[name="'+this.name+'"]:checked').next(".js-grouping-product-link").find(".grouping-product-remove-btn").css("display","flex"),n.next(".js-grouping-product-link").find(".grouping-product-remove-btn").css("display","flex")):a.find('input[name="'+this.name+'"]').next(".js-grouping-product-link").find(".grouping-product-remove-btn").css("display","none")),C(a,i,o),c.updatePriceTotals()):U(this).prop("checked",!0)})}),U("#root").on("click",function(t){U(t.target).closest(g).length||U(".js-grouping-product").removeClass("active")}),U(".js-grouping-product").on("click",function(){var t=U(this),e=t.closest(".grouping-component"),n=t.find(".js-grouping-product-image"),a=e.find(".js-grouping-component-image-selected"),e=e.find(".js-grouping-component-image-link-selected");t.closest(".js-grouping-product-container").find(".js-grouping-product").not(t).removeClass("active"),t.addClass("active"),e.attr({href:n.data("src"),"data-width":n.data("width"),"data-height":n.data("height")}).removeClass("grouping-component-img-link-opacity"),a.attr("src",n.attr("src"))}),g.find(".js-quantity").each((t,e)=>{let a=U(e);D(a),a.on("change",()=>{var t,e,n=a.data("min-quantity");n&&(t=a.val(),e=a.closest(".js-grouping-product").find(".js-select-product"),t<n?e.prop("checked",!1):e.prop("checked",!0),D(a)),f===m.GroupingProductV2&&(t=a.closest("[data-componentuniqueid]"),e=(n=a.closest(".js-grouping-product")).find(".js-select-product").is(":checked"),C(t,n,e)),c.updatePriceTotals()})}),g.find(".js-more-info").each((t,e)=>{let o=U(e);o.on("click",t=>{t.preventDefault();t=l.$getProductContainerFor(o);let n=t.find(".js-more-info-cont"),a=t.find(".js-more-info-cont-teaser"),i=t.find(".js-more-info-cont-content");if(n.length){let e=I(o.closest("[data-componentuniqueid]").data("c
1omponentuniqueid"),t.data("uniqueid"));P.hasOwnProperty(e.itemId)?n.collapse("toggle"):U.ajax({url:G.R+"api/document/getDocumentTeaserAndContent",type:"GET",data:{itemId:e.itemId}}).done(function(t){P[e.itemId]=t,a.html(t.teaser),i.html(t.content),n.collapse("show")}).fail(function(t){t=l.extractErrorMessageFromResponse(t);console.error("Failed to get document content",t)})}})})}function T(t,e,n,a,i){var o,r,d,s=t.closest("[data-componentuniqueid]"),c=b(y(s.data("componentuniqueid")),n);let u;if(e)u=c.componentProducts.find(t=>t.groupingProductId===n&&t.groupingProductIndex===a&&t.productId===e),t.find(".js-select-product").prop("checked",!0);else{let e=t.data("uniqueid");u=c.componentProducts.find(t=>t.uniqueId===e),u=c.componentProducts.find(t=>t.groupingProductId===n&&t.groupingProductIndex===a&&t.productId===u.parentProductId)}u?(c=t,o=u,i=i,c.find(".js-grouping-product-link").attr({href:o.url,title:o.title}),c.find(".js-grouping-product-title").html(o.title),(r=c.find(".js-grouping-product-image"))&&(o.mainImage?(r.attr("src",o.mainImage.previewUrl||""),r.attr("alt",o.mainImage.title||"")):(r.attr("src",""),r.attr("alt",""))),(r=c.find(".js-grouping-product-variant-image"))&&(i&&i.image?(r.attr("src",i.image.thumbnailUrl),r.attr("alt",i.name)):(r.attr("src",""),r.attr("alt",""))),i=c.find(".js-quantity"),r=l.tryParseNumberOrDefault(i.val(),1),d=y(i.closest("[data-componentuniqueid]").data("componentuniqueid")),o.initialQuantity.raw>r&&(i.val(o.initialQuantity.formatted),f===m.GroupingProductV2)&&d.buyMode===p.MultipleProducts&&o.initialQuantity.raw>=o.minQuantity.raw&&i.closest(".js-plus-minus-container-grouping-product").find('button[data-action="decrease"]').removeAttr("disabled"),D(i),c.data({uniqueid:o.uniqueId,uniquekey:o.uniqueKey,productid:o.productId}),e&&C(s,t,!0)):console.error("Component product not found by id = "+e)}async function o(i){g.empty();var o=[];r.groupingComponents.sort((t,e)=>t.orderNo-e.orderNo).forEach(t=>{var t=b(t,i),e={groupingComponent:t,BuyMode:{SingleProduct:0,MultipleProducts:1,AllProducts:2,OneOrMoreProducts:3},VariantViewType:{0:"dropdownvariant",1:"tilesvariant",2:"relimgtilesvariant",3:"fancyboxrelimgtilesvariant",4:"dropdownvariant2",5:"dropdownvariant4",6:"relimgtilesvariant2-outlet",7:"tilesvariant2-outlet",8:"relimgtilesvariant3-outlet"},ComponentViewType:{Collapsed:0,Expanded:1},settings:{showMoreInfoLink:r.showMoreInfoLinkForComponents},metadata:r.metadata},e=B.template(h,e);let n=U(e);g.append(n),f=g.find("[data-componentuniqueid]").data("markup")??m.GroupingProductDefault;e=n.find(".js-collapse-expand");let a=n.find(".js-collapse-expand-cont");e.on("click",t=>{t.preventDefault(),a.length&&a.collapse("toggle")}),t.componentProducts.forEach(t=>{var e;t.groupingProductId===i&&t.isMainProductOfProductWithVariants&&(e=n.find(`.js-grouping-product[data-uniqueid="${t.uniqueId}"]`),t.variantRelImageMatchRegExp=r.variantRelImageMatchRegExp,o.push(k({$productContainer:e,productModel:t,priceTotals:c,metadata:r.metadata,say:d,pubsub:s,utils:l},u)))})}),await Promise.all(o)}function j(t){var d;v=!0,e(),d=t,g.find("[data-uniqueid]").each((t,e)=>{let a=U(e);var e=a.closest("[data-componentuniqueid]").data("componentuniqueid"),n=a.data("uniqueid");let i=a.data("groupingproductindex");var o=b(y(e),d);let r=I(e,n);r.isMainProductOfProductWithVariants&&(a.on("variantsprocessor:beforeloadvariantproduct",(t,e,n)=>{t.preventDefault(),t.stopPropagation(),T(a,e?e.productId:null,d,i,n),v||c.updatePriceTotals()}),e=u[n],n=o.componentProducts.find(t=>t.parentProductId===r.productId&&t.groupingProductIndex===r.groupingProductIndex&&t.isPreSelected))&&e.selectVariantByProductId(n.productId)}),g.find("[data-componentuniqueid]").each((t,e)=>{i(U(e))}),v=!1,a[0].dispatchEvent(new CustomEvent("groupingproductprocessor:rendered",{bubbles:!1}))}return{init:async function(){if(g=l.$getProductContainerElements(a,".js-grouping-product-container")){var e=U("#uc209-grouping-product-template");if(0!=e.length&&e[0].innerText){let t=r.groupingProductId;var n=a.data("uniqueid"),n=u[n];n&&(n=n.getSelectedVariantProduct())&&n.productId&&(t=n.productId),h=e[0].innerText,a.on("variantsprocessor:beforeloadvariantproduct",async function(t,e){e=e?e.productId:r.groupingProductId;await o(e),j(e)}),await o(t),j(t),a.on("priceTotalsProcessor:ontotalsupdated",(t,e)=>{{let s=e?e.find(t=>t.groupingComponentProductPrices)?.groupingComponentProductPrices:null;g.find("[data-componentuniqueid]").each((t,e)=>{e=U(e);let o=e.data("componentuniqueid"),r=y(o),d=0;e.find("[data-uniqueid]").each((t,e)=>{e=U(e);if(e.data("isselected")){var n=e.data("uniqueid"),a=e.find(".js-quantity").val(),n=I(o,n),n=s?s[n.uniqueKey]:null;let t="";n&&(t=n.formatted,d=n.raw*a),e.find(".js-grouping-product-price").html(t),w(e.find(".js-grouping-product-price-impact"),0)}}),e.find("[data-uniqueid]").each((t,n)=>{var n=U(n),a=n.data("isselected");if(!a){var a=n.data("uniqueid"),i=n.find(".js-quantity").val(),a=I(o,a),a=s?s[a.uniqueKey]:null;let t="",e=0;
1a&&(t=a.formatted,a=a.raw*i,e=r.buyMode===p.SingleProduct?a-d:a),n.find(".js-grouping-product-price").html(t),w(n.find(".js-grouping-product-price-impact"),e)}})})}})}else console.error("Product is configured as package product but the package product template is not found."),new q(s,l).error("Produktet er konfigurert som pakkeprodukt, men pakkeproduktmalen ble ikke funnet.")}else console.error("Grouping product container was not found.")}}}function e(){function n(t){return U(t).closest("[data-uniqueid]")}function h(t,e){t="string"==typeof t?parseFloat(t.replace(",",".")):t;return 0===t?t:t||e||0}return{tryParseNumberOrDefault:h,$getProductContainerFor:n,$getProductContainerElements:function(t,e){return t.find(e).filter(function(){return n(this).is(t)})},trimAndLowerCase:function(t){return(t||"").trim().toLowerCase()},caseInsensetiveEquals:function(t,e){return"string"==typeof t&&"string"==typeof e?t.trim().toLowerCase()===e.trim().toLowerCase():t===e},extractErrorMessageFromResponse:function(e){if("object"==typeof e&&null!==e)try{var t=JSON.parse(e.responseText),n=t.ExceptionMessage||t.Message||e.statusText}catch(t){n=e.statusText}else n=e;return n},initQuantityModifyButtons2:function(t,e){t.find(e).each(function(t,e){let n={quantity:U(e).find("input"),button:U(e).find("button"),label:U(e).find("label"),labelQuantityText:U(e).find(".js-quantity-text")},a=U(e).data("allow-min-break"),i=h(n.quantity.attr("step"),1);var e=h(n.quantity.attr("min"),0),o=h(n.quantity.data("min-quantity"),0);let r=Math.max(e,o),d=h(n.quantity.val()),s=(n.quantity.on("change",function(){var t=h(n.quantity.val());(!0===a?0==(d=t<r?0:t)||d<r?u:c:(d=Math.max(r,t))<=r?u:c)(),l(d,!0)}),n.button.on("click",function(){var t=h(n.quantity.val());switch(U(this).data("action")){case"decrease":m(t)&&(d=g(d),l(d,!0),s());break;case"increase":d=f(t),l(d,!0),s()}}),()=>{n.quantity.trigger("change"),n.quantity.trigger("focusout")}),c=()=>{U(n.button[0]).removeAttr("disabled")},u=()=>{U(n.button[0]).attr("disabled","disabled")},l=(t,e)=>{e=e?p(t):t;n.labelQuantityText.text(e),n.quantity.val(e),d=t},p=t=>0<n.quantity.val().indexOf(".")?t.toFixed(1):t.toFixed(0),m=t=>g(t)>=(!0===a?0:r),g=t=>!0===a?t-i<r?0:t-i:t-i<=r?r:t-i,f=t=>t+i<r?r:t+i})},initQuantityModifyButtons:function(t,e){t.find(e).on("click",function(){var t=U(this);const e=t.data("action"),n=t.data("target");var a=U("#"+n),i=a.attr("min")||0,o=a.attr("max");let r=h(a.val());switch(e){case"decrease":(r=--r)<=i?(r=i,t.attr("disabled","disabled")):t.parent().find('[data-action="increase"]').removeAttr("disabled");break;case"increase":r=++r,o&&r>=o?(r=o,t.attr("disabled","disabled")):t.parent().find('[data-action="decrease"]').removeAttr("disabled")}r<0?a.val(0):(r=Math.round(10*r)/10,a.val(r)),a.trigger("change"),a.trigger("focusout")})}}}G.productViewController=a,U(function(){G.umwAssets&&G.umwAssets[i]&&G.umwAssets[i].forEac
1h(function(t){var e,n;t&&(e=t.uniqueId,1===(n=U("#"+e)).length?((t=new a(n,t)).init(),n.data("controller",t)):0===n.length?console.warn(i+": product view main panel element was not found by id#"+e):console.warn(i+": found >1 product view main panel elements with id#"+e))})}),U(function(){var a=U(".js-product-design-template-list");a.on("click",".js-product-designer-template",function(t){var e=U(this),e={productId:e.data("product-id"),templateId:e.data("template-id"),dimensions:e.data("dimensions")},n=U.Event("js-stamp-image:click");a.trigger(n,[e])}),a.on("js-stamp-image:click",function(t,e){var n={productId:e.productId,templateId:e.templateId,productDesignTemplates:[],attachmentZoneId:0};z(!0,!0),F(!0),J(document.querySelector("."+Z+"__template-designer"),-150),G.umwAssets&&G.umwAssets[i]&&G.umwAssets[i].forEach(function(t){var e;t&&(t=t.uniqueId,1===(e=U("#"+t)).length)&&((e=e.data("controller"))&&e.variantProcessorsMap&&0<Object.keys(e.variantProcessorsMap).length?(t=e.variantProcessorsMap[t])?.setProductDesignData instanceof Function&&t.setProductDesignData(n):e?.setProductDesignData instanceof Function&&e.setProductDesignData(n))})})})})(jQuery,_,window); 2//# sourceMappingURL=ProductView.min.js.map
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.