var __assign=this&&this.__assign||Object.assign||function(n){for(var t,r,i=1,u=arguments.length;i<u;i++){t=arguments[i];for(r in t)Object.prototype.hasOwnProperty.call(t,r)&&(n[r]=t[r])}return n},__extends,Ensinger;(function(n){var t;(function(n){var t;(function(n){var t=function(){function n(){}return n.prototype.trackEvent=function(n,t){var i=__assign({event:n},t);this.pushGA4(i)},n.prototype.trackViewPage=function(){var n=window.pageContextData.gtmTracking,t=JSON.parse(n),i=__assign({event:"view_page"},t);this.pushGA4(i)},n.prototype.trackViewItem=function(n){this.trackEcommerce("view_item",{items:[this.mapItemToGA4EcommerceItem(n)]})},n.prototype.trackAddToCart=function(n){this.trackEcommerce("add_to_cart",{items:[this.mapItemToGA4EcommerceItem(n)]})},n.prototype.trackRemoveFromCart=function(n){this.trackEcommerce("remove_from_cart",{items:[this.mapItemToGA4EcommerceItem(n)]})},n.prototype.trackViewCart=function(n){this.trackEcommerce("view_cart",{items:n.map(this.mapItemToGA4EcommerceItem)})},n.prototype.trackBeginCheckout=function(n){this.trackEcommerce("begin_checkout",{items:n.map(this.mapItemToGA4EcommerceItem)})},n.prototype.trackPurchase=function(n,t){this.trackEcommerce("purchase",{transaction_id:n,items:t.map(this.mapItemToGA4EcommerceItem)})},n.prototype.trackEcommerce=function(n,t){this.pushGA4({ecommerce:null}),this.pushGA4({event:n,ecommerce:t})},n.prototype.mapItemToGA4EcommerceItem=function(n){return __assign({item_id:n.id,item_name:n.name},n.categories[0]!==undefined&&{item_category:n.categories[0]},n.categories[1]!==undefined&&{item_category2:n.categories[1]},n.categories[2]!==undefined&&{item_category3:n.categories[2]},n.categories[3]!==undefined&&{item_category4:n.categories[3]},n.categories[4]!==undefined&&{item_category5:n.categories[4]},n.service!==undefined&&{shape:n.service},n.type!==undefined&&{shape:n.type},n.dimension!==undefined&&{dimension:n.dimension},n.length!==undefined&&{length:n.length},n.quantity!==undefined&&{quantity:n.quantity})},n.prototype.pushGA4=function(n){window.dataLayer=window.dataLayer||[],window.dataLayer.push(n)},n}();n.AnalyticsService=t})(t=n.Common||(n.Common={}))})(t=n.Client||(n.Client={}))})(Ensinger||(Ensinger={})),function(n,t,i,r){window.CartService=function(){var s=new Ensinger.Client.Products.Feature.Favourites.FavouritesService,u=function(n){return n?n.toUpperCase():""},f=function(n){return u(n.itemId)},o=new n("ensinger.request.cart",t),h=function(n,t,i,r){var u={itemId:n,type:t};return i!==undefined&&r!==undefined&&(u.dimensions={dimension:i,length:r}),u},c=function(n,t){return{productId:n,serviceId:t,orders:[e()]}},e=function(n,t,i){var r={type:n};return t!==undefined&&i!==undefined&&(r.dimensions={dimension:t,length:i}),r};this.getCount=function(){var n=this.getCart(),t=this.checkFunctionality(n.testProducts,n.products,n.services);return t.length>0?t.length:-1},this.checkFunctionality=function(n,t,i){var u=[],f=[],e=this;return n.forEach(function(n){u.push({productId:n.itemId})}),t.forEach(function(n){u.push({productId:n.itemId})}),i.forEach(function(n){u.push({productId:n.productId})}),r.ajax({async:!1,contentType:"application/json",data:JSON.stringify(u),dataType:"json",success:function(n){f=e.setResult(f,n)},type:"POST",url:"/api/productfunctionality"}),f},this.setResult=function(n,t){return t.filter(function(n){return n.isFunctional})},this.getCart=function(){var n=o.getItem()||{};return n.testProducts=n.testProducts||[],n.products=n.products||[],n.services=n.services||[],n},this.setCart=function(n){o.setItem(n),document.dispatchEvent(i.create("ensinger.request.cart.updated"))},this.clearCart=function(){this.setCart({testProducts:[],products:[],services:[]})},this.getTestProduct=function(n){var t,i;return(n=u(n),t=this.getCart(),t.testProducts.length<=0)?null:(i=t.testProducts.map(f).indexOf(n),i===-1?null:t.testProducts[i])},this.addTestProduct=function(n,t,i,r){var e,o;(n=u(n),e=this.getCart(),e.testProducts.map(f).indexOf(n.toUpper)===-1)&&(o=h(n,t,i,r),e.testProducts.push(o),this.setCart(e))},this.updateTestProduct=function(n,t,i,r){var e,o,s;(n=u(n),e=this.getCart(),e.testProducts.length<=0)||(o=e.testProducts.map(f).indexOf(n),o!==-1)&&(s=e.testProducts[o],e.testProducts[o]={itemId:n,type:t||(r?null:s.type),dimensions:i||(r?null:s.dimensions)},this.setCart(e))},this.removeTestProduct=function(n){var t,i;(n=u(n),t=this.getCart(),t.testProducts.length<=0)||(i=t.testProducts.map(f).indexOf(n),i!==-1)&&(t.testProducts.splice(i,1),this.setCart(t))},this.getService=function(n,t){n=u(n),t=u(t);var i=this.getCart();return i.services.length<=0?null:i.services.filter(function(i){return u(i.productId)===n&&u(i.serviceId)===t})[0]},this.addService=function(n,t){var i,r;return(n=u(n),t=u(t),i=this.getCart(),i.services.some(function(i){return u(i.productId)===n&&u(i.serviceId)===t}))?!1:(r=c(n,t),i.services.push(r),this.setCart(i),!0)},this.removeService=function(n,t){n=u(n),t=u(t);var i=this.getCart();i.services.length<=0||(i.services=i.services.filter(function(i){return u(i.productId)!==n||u(i.serviceId)!==t}),this.setCart(i))},this.updateServiceOrder=function(n,t,i,r,f){var e,o,s;(n=u(n),t=u(t),e=this.getCart(),e.services.length<=0)||(o=e.services.map(function(n){return u(n.productId)+"-"+u(n.serviceId)}).indexOf(n+"-"+t),o!==-1)&&(s=e.services[o].orders[i],e.services[o].orders[i]={amount:r||s.amount,note:f!==undefined&&f!==s.note?f:f||s.note},this.setCart(e))},this.addServiceOrder=function(n,t){var i,r,f;(n=u(n),t=u(t),i=this.getCart(),i.services.length<=0)||(r=i.services.map(function(n){return u(n.productId)+"-"+u(n.serviceId)}).indexOf(n+"-"+t),r!==-1)&&(f=e(),(i.services[r].orders=i.services[r].orders||[]).push(f),this.setCart(i))},this.removeServiceOrder=function(n,t,i,r){var f,e;(n=u(n),t=u(t),f=this.getCart(),f.services.length<=0)||(e=f.services.map(function(n){return u(n.productId)+"-"+u(n.serviceId)}).indexOf(n+"-"+t),e!==-1)&&(f.services[e].orders.splice(i,1),r&&f.services[e].orders.length===0&&f.services.splice(e,1),this.setCart(f))},this.getProduct=function(n){var t,i;return(n=u(n),t=this.getCart(),t.products.length<=0)?null:(i=t.products.map(f).indexOf(n),i===-1?null:t.products[i])},this.containsProduct=function(n,t,i,r){return this.getProductOrderId(n,t,i,r)>=0},this.getProductOrderId=function(n,t,i,r){var u=this.getProduct(n);return!u||!u.orders||u.orders.length===0?-1:u.orders.findIndex(function(n){return n.type===t&&n.dimensions!==undefined&&n.dimensions!==null&&n.dimensions.dimension===i&&n.dimensions.length===r})},this.addProductWithFavourites=function(n){var l=!1,r,o,h,v,c;n=u(n);var t=this.getCart(),i=t.products.map(f).indexOf(n),a=s.getProductFromFavourites(n);if(a)for(r=0;r<a.favouriteShapes.length;r++)for(o=a.favouriteShapes[r],h=0;h<o.stockDimensions.length;h++)v=o.stockDimensions[h],c=e(o.stockShape,v.stockDimension,v.stockLength),i===-1?(t.products.push({itemId:n,orders:[c]}),i=t.products.map(f).indexOf(n),l=!0):this.isDuplicate(t.products[i].orders,c)||t.products[i].orders.push(c);else i===-1&&(t.products.push({itemId:n,orders:[e()]}),l=!0);return this.setCart(t),l},this.isDuplicate=function(n,t){for(var u=!1,r,i=0;i<n.length;i++)if(r=n[i],u=r.type===t.type&&r.dimensions.dimension===t.dimensions.dimension&&r.dimensions.length===t.dimensions.length,u)break;return u},this.addProduct=function(n,t,i,r){n=u(n);var o=this.getCart(),s=o.products.map(f).indexOf(n),h=e(t,i,r);s!==-1?o.products[s].orders.push(h):o.products.push({itemId:n,orders:[h]}),this.setCart(o)},this.updateProductOrder=function(n,t,i,r,e,o,s,h,c,l){var v,y,a;(n=u(n),v=this.getCart(),v.products.length<=0)||(y=v.products.map(f).indexOf(n),y!==-1)&&(a=v.products[y].orders[t],v.products[y].orders[t]={type:i||a.type,dimensions:r||(s?null:a.dimensions),amount:e||a.amount,length:h||a.length,width:c||a.width,thickness:l||a.thickness,note:o!==undefined&&o!==a.note?o:o||a.note},this.setCart(v))},this.removeProduct=function(n){var t,i;(n=u(n),t=this.getCart(),t.products.length<=0)||(i=t.products.map(f).indexOf(n),i!==-1)&&(t.products.splice(i,1),this.setCart(t))},this.addProductOrder=function(n,t,i,r){var o,s,h;(n=u(n),o=this.getCart(),o.products.length<=0)||(s=o.products.map(f).indexOf(n),s!==-1)&&(h=e(t,i,r),(o.products[s].orders=o.products[s].orders||[]).push(h),this.setCart(o))},this.removeProductOrder=function(n,t,i){var r,e;(n=u(n),r=this.getCart(),r.products.length<=0)||(e=r.products.map(f).indexOf(n),e!==-1)&&(r.products[e].orders.splice(t,1),i&&r.products[e].orders.length===0&&r.products.splice(e,1),this.setCart(r))}}}(window.Repository,window.LocalStorageRepository,window.CustomEventFactory,jQuery),function(n){var t;(function(n){var t;(function(n){var t;(function(n){var t;(function(n){var r=function(){function n(){}return n}(),i,u,t;r.itemAdded="watchlist::item-added",r.itemRemoved="watchlist::item-removed",r.itemOverflow="watchlist::item-not-added-because-full",n.Watchlist=r,i=function(){function n(){}return n}(),i.itemActivated="watchlist::item-comparison-activated",i.itemDeactivated="watchlist::item-comparison-deactivated",i.itemOverflow="watchlist::too-much-comparison",n.Comparison=i,u=function(){function n(){}return n}(),u.itemAdded="order-toast::item-added",u.itemRemoved="order-toast::item-removed",n.OrderRequest=u,t=function(){function n(){}return n}(),t.itemAdded="shoppingcart::item-added",t.itemRemoved="shoppingcart::item-removed",t.itemUpdated="shoppingcart::item-updated",t.itemOverflow="shoppingcart::item-not-added-because-overstocking",n.ShoppingCart=t})(t=n.CustomEventNames||(n.CustomEventNames={}))})(t=n.Const||(n.Const={}))})(t=n.Products||(n.Products={}))})(t=n.Client||(n.Client={}))}(Ensinger||(Ensinger={})),__extends=this&&this.__extends||function(n,t){function r(){this.constructor=n}for(var i in t)t.hasOwnProperty(i)&&(n[i]=t[i]);n.prototype=t===null?Object.create(t):(r.prototype=t.prototype,new r)},function(n){var t;(function(n){var t;(function(n){var t;(function(n){var r=function(){function n(n,t,i,r){this.id=n,this.datasheetId=t,this.newCount=i,this.wasExisting=r}return n}(),t,i;n.ProductArguments=r,t=function(){function n(n,t){this.isForComparison=t,this.id=n}return n}(),n.FadeInRequestDto=t,i=function(n){function t(){return n.apply(this,arguments)||this}return __extends(t,n),Object.defineProperty(t.prototype,"name",{set:function(n){this.name=n},enumerable:!0,configurable:!0}),t}(Error),n.ErrorWithSetName=i})(t=n.Dtos||(n.Dtos={}))})(t=n.Products||(n.Products={}))})(t=n.Client||(n.Client={}))}(Ensinger||(Ensinger={})),function(n){var t;(function(n){var t;(function(n){var t;(function(n){var t;(function(n){var t;(function(n){var u=function(){function n(n,t){this.stockDimension=n,this.stockLength=t}return n}(),t,i,r;n.FavouritesRepositoryEntryDimension=u,t=function(){function n(n,t){this.stockShape=n,this.stockDimensions=t}return n}(),n.FavouritesRepositoryEntryShape=t,i=function(){function n(n,t){this.productId=n,this.favouriteShapes=t}return n}(),n.FavouritesRepositoryEntryProduct=i,r=function(){function n(n){this.products=n}return n}(),n.FavouritesRepositoryEntry=r})(t=n.Dtos||(n.Dtos={}))})(t=n.Favourites||(n.Favourites={}))})(t=n.Feature||(n.Feature={}))})(t=n.Products||(n.Products={}))})(t=n.Client||(n.Client={}))}(Ensinger||(Ensinger={})),function(n){var t;(function(t){var i;(function(i){var r;(function(r){var u;(function(r){var f=function(){function n(){this.cartService=new window.CartService}return n.prototype.updateCart=function(n,t,r,u,f){var e=this.cartService.getProductOrderId(n,t,r,u);e<0?(this.cartService.addProduct(n,t,r,u),$(document).trigger(i.Const.CustomEventNames.OrderRequest.itemAdded,[n,undefined,t,r,u])):(this.cartService.removeProductOrder(n,e,f||!1),$(document).trigger(i.Const.CustomEventNames.OrderRequest.itemRemoved,[n,undefined,t,r,u]))},n.prototype.existsInCart=function(n,t,i,r){return!!n&&this.cartService.containsProduct(n,t,i,r)},n}(),u;r.ProductOrderService=f,u=function(){function r(){this.translationKeys=["product_add_toast_label","product_remove_toast_label"]}return r.prototype.initialize=function(){var n=this,r;if(this.service=new window.CartService,this.translationService=new t.Common.TranslationService(new t.Common.HttpService),this.translationService.initialize(this.translationKeys),this.analyticsService=new t.Common.AnalyticsService,this.materialSampleButton=$(".testProductInOrder"),this.requestProductButtons=$(".request-product-btn"),this.requestServiceButtons=$(".request-service-btn"),this.flyoutControl=$(".order-toast-container"),r=$("#productServiceOverlay"),r)r.on("click",function(n){$(n.target).closest(".overlay-info-box").length||r.hide()});$(document).on(i.Const.CustomEventNames.OrderRequest.itemAdded,function(t,i,r,u,f,e){n.requestProductData(i,function(t){n.showFlyout(t,n.flyoutControl,"product_add_toast_label"),n.analyticsService.trackAddToCart({id:t.datasheetId,name:t.name,categories:[t.basicPolymer,u],service:r,type:u,dimension:f,length:e})})});$(document).on(i.Const.CustomEventNames.OrderRequest.itemRemoved,function(t,i,r,u,f,e){n.requestProductData(i,function(t){n.showFlyout(t,n.flyoutControl,"product_remove_toast_label"),n.analyticsService.trackRemoveFromCart({id:t.datasheetId,name:t.name,categories:[t.basicPolymer,u],service:r,type:u,dimension:f,length:e})})});this.materialSampleButton.on("click",function(t){var r=$(t.currentTarget).attr("data-productId"),u=n.service.getTestProduct(r);u!==null?(n.service.removeTestProduct(r),$(document).trigger(i.Const.CustomEventNames.OrderRequest.itemRemoved,r)):(n.service.addTestProduct(r),$(document).trigger(i.Const.CustomEventNames.OrderRequest.itemAdded,r)),n.toggleSampleMaterialButton($(t.currentTarget))});this.requestProductButtons.on("click",function(t){var r=$(t.currentTarget).attr("data-productId"),u=n.service.addProductWithFavourites(r);u===!0&&$(document).trigger(i.Const.CustomEventNames.OrderRequest.itemAdded,r)});this.requestServiceButtons.on("click",function(t){var r=$(t.currentTarget).attr("data-productId"),u=$(t.currentTarget).attr("data-serviceId"),f=$(t.currentTarget).attr("data-serviceName"),o=$(t.currentTarget).attr("data-showOverlay"),i,e;if(o==="true"){i=n.showOrHideServiceLayout(t.currentTarget),e=i.find(".content-tile.prod-request");e.on("click",function(){n.handleRequestServiceAction(r,u,f),i.hide()})}else n.handleRequestServiceAction(r,u,f)});this.toggleSampleMaterialButton(this.materialSampleButton)},r.prototype.handleRequestServiceAction=function(n,t,r){var u=this.service.addService(n,t);u===!0&&$(document).trigger(i.Const.CustomEventNames.OrderRequest.itemAdded,[n,r])},r.prototype.toggleSampleMaterialButton=function(n){var t=n.parent(".short-navigation-link-container"),i;t.removeClass("is-active is-not-active"),i=n.attr("data-productId"),this.service.getTestProduct(i)!==null?t.addClass("is-active"):t.addClass("is-not-active")},r.prototype.toggleRequestProductButton=function(n){n.removeClass("addedToOrder removedFromOrder");var t=n.attr("data-productId");this.service.getProduct(t)!==null?(n.hasClass("product-detail-cta")||n.removeClass("icon-contact-white").addClass("icon-contact-brand-color"),n.addClass("active addedToOrder")):(n.hasClass("product-detail-cta")||n.removeClass("icon-contact-brand-color").addClass("icon-contact-white"),n.removeClass("active").addClass("removedFromOrder"))},r.prototype.requestProductData=function(t,i){var r=new n.Client.Products.Dtos.FadeInRequestDto(t,!1);$.ajax({contentType:"application/json",data:JSON.stringify(r),dataType:"json",success:function(n){return i(n)},error:function(){alert("An error occured.")},processData:!1,type:"POST",url:"/api/ProductFadeIn"})},r.prototype.showFlyout=function(n,t,i){t.find(".order-toast-content-text").text(n.title),t.find(".order-toast-content-image").attr("src",n.image);var r=this.translationService.translate(i);this.setFlyoutCaption(t,"icon-checkmark-bold",r),this.setFlyoutDisappearanceBehavior(t),t.addClass("visible"),t.prev("A").addClass("visible")},r.prototype.setFlyoutCaption=function(n,t,i){var r=n.find(".order-toast-title-container");r.find("div").length===0&&($("<div>&nbsp;<\/div").addClass("icon").appendTo(r),$("<span>&nbsp;<\/span>").addClass("order-toast-title").appendTo(r)),r.find(".icon").removeClass("icon-checkmark-bold"),r.find(".icon").addClass(t),r.find(".order-toast-title").text(i)},r.prototype.setFlyoutDisappearanceBehavior=function(n){var t,i=function(){t=window.setTimeout(function(){n.removeClass("visible"),n.prev("A").removeClass("visible"),n.prev("A").removeAttr("style")},4e3)};i();n.on("mouseenter",function(){window.clearInterval(t)});n.on("mouseleave",function(){i()})},r.prototype.showOrHideServiceLayout=function(n){var o=$(n).attr("data-serviceOverlayLinkTitle"),s=$(n).attr("data-serviceOverlayLinkDesc"),h=$(n).attr("data-serviceOverlayLinkUrl"),t=$("#productServiceOverlay"),i=$(t).find(".icon-close-for-overlay"),u,f,e;if(t){var r=t.find(".content-tile.ext-link"),c=r.find(".overlay-info-title"),l=r.find(".overlay-info-desc");c.text(o),l.text(s),r.attr("href",h),u=$(window).width(),u<=768?(f=$("#ProductHeaderNotification"),f.hasClass("notify-hidden")?i.css("top","12px"):(e=$(".productrequest-notification-label").outerHeight(),i.css("top",e+12))):i.css("top","20px"),t.show(),$("body").css("overflow","hidden");i.on("click",function(n){n.stopPropagation(),t.hide(),$("body").css("overflow","")});r.on("click",function(){t.hide()});return t}},r}(),r.OrderMaterialSample=u})(u=r.OrderRequest||(r.OrderRequest={}))})(r=i.Feature||(i.Feature={}))})(i=t.Products||(t.Products={}))})(t=n.Client||(n.Client={}))}(Ensinger||(Ensinger={})),function(n){var t;(function(n){var t;(function(n){var t;(function(n){var t;(function(n){var t=function(){function n(n,t){n===void 0&&(n="ensinger-filaments.myshopify.com"),t===void 0&&(t="c44fc6530d5308ea9c35fc77e2f4cecb"),this.shopifyClient=ShopifyBuy.buildClient({domain:n,storefrontAccessToken:t})}return n.prototype.getProductVariant=function(n){var t=this,i={args:{id:this.buildShopifyProductVariantGlobalIdentifier(n)}},r=this.shopifyClient.graphQLClient.query(function(n){n.add("node",i,t.addProductVariantFragment)});return this.shopifyClient.graphQLClient.send(r).then(function(n){return n.model.node})},n.prototype.getProductVariants=function(n){var t=this,i={args:{ids:n.map(this.buildShopifyProductVariantGlobalIdentifier)}},r=this.shopifyClient.graphQLClient.query(function(n){n.add("nodes",i,t.addProductVariantFragment)});return this.shopifyClient.graphQLClient.send(r).then(function(n){return n.model.nodes})},n.prototype.buildShopifyProductVariantGlobalIdentifier=function(n){return"gid://shopify/ProductVariant/"+n},n.prototype.addProductVariantFragment=function(n){n.addInlineFragmentOn("ProductVariant",function(n){n.add("id"),n.add("availableForSale"),n.add("quantityAvailable")})},n}();n.ShopifyService=t})(t=n.ShopifyService||(n.ShopifyService={}))})(t=n.Feature||(n.Feature={}))})(t=n.Products||(n.Products={}))})(t=n.Client||(n.Client={}))}(Ensinger||(Ensinger={})),function(n){var t;(function(n){var t;(function(n){var t;(function(n){var t;(function(n){var t;(function(n){var r=function(){function n(n,t){this.id=n,this.newCount=t}return n}(),t,i;n.ShoppingCartArguments=r,t=function(){function n(n,t){this.productId=n,this.quantity=t}return n}(),n.ShoppingCartRepositoryEntryProduct=t,i=function(){function n(n){this.products=n}return n}(),n.ShoppingCartRepositoryEntry=i})(t=n.Dtos||(n.Dtos={}))})(t=n.ShoppingCart||(n.ShoppingCart={}))})(t=n.Feature||(n.Feature={}))})(t=n.Products||(n.Products={}))})(t=n.Client||(n.Client={}))}(Ensinger||(Ensinger={})),function(n){var t;(function(n){var t;(function(t){var i;(function(i){var r;(function(r){var f=function(){function f(){this.translationKeys=["product_shoppingcart_message_item_added","product_shoppingcart_confirm_item_delete","product_shoppingcart_message_item_updated","product_shoppingcart_message_quantity_exceeded"]}return f.prototype.initialize=function(){var f=this,e,o,s;this.translationService=new n.Common.TranslationService(new n.Common.HttpService),this.translationService.initialize(this.translationKeys),this.flyoutControl=new u,e=window.ShoppingCartService=new r.ShoppingCartService,this.countLabel=$(".shoppingcart-navigation-count"),this.addToShoppingCartListButton=$(".addToShoppingCart"),o=this.addToShoppingCartListButton.attr("data-shopifyProductVariantId"),o&&(s=new i.ShopifyService.ShopifyService,s.getProductVariant(o).then(function(n){if(n&&n.availableForSale&&n.quantityAvailable>0){f.addToShoppingCartListButton.parent(".short-navigation-link-container").removeClass("disabled");f.addToShoppingCartListButton.on("click",function(t){var i=$(t.currentTarget).attr("data-productId");f.addShoppingCartItem(e,i,1,n.quantityAvailable)})}else f.addToShoppingCartListButton.parent(".short-navigation-link-container").addClass("disabled")}));$(document).on(t.Const.CustomEventNames.ShoppingCart.itemAdded,function(n,t){f.toggleButtonShoppingCart(e,f.addToShoppingCartListButton),f.updateCountLabel(e,f.countLabel),f.flyoutControl.showFlyout(e,t.id,f.flyoutControl.getFlyoutControl(),f.translationService.translate("product_shoppingcart_message_item_added"),"icon-checkmark-bold")});$(document).on(t.Const.CustomEventNames.ShoppingCart.itemUpdated,function(n,t){f.toggleButtonShoppingCart(e,f.addToShoppingCartListButton),f.updateCountLabel(e,f.countLabel),f.flyoutControl.showFlyout(e,t.id,f.flyoutControl.getFlyoutControl(),f.translationService.translate("product_shoppingcart_message_item_updated"),"icon-checkmark-bold")});$(document).on(t.Const.CustomEventNames.ShoppingCart.itemRemoved,function(n,t){f.toggleButtonShoppingCart(e,f.addToShoppingCartListButton),f.updateCountLabel(e,f.countLabel),f.flyoutControl.showFlyout(e,t.id,f.flyoutControl.getFlyoutControl(),f.translationService.translate("product_shoppingcart_confirm_item_delete"),"icon-checkmark-bold")});$(document).on(t.Const.CustomEventNames.ShoppingCart.itemOverflow,function(){f.toggleButtonShoppingCart(e,f.addToShoppingCartListButton),f.updateCountLabel(e,f.countLabel),f.flyoutControl.showSimpleFlyout(f.flyoutControl.getFlyoutControl(),f.translationService.translate("product_shoppingcart_message_quantity_exceeded"),"icon-info")});this.updateCountLabel(e,this.countLabel),this.toggleButtonShoppingCart(e,this.addToShoppingCartListButton)},f.prototype.updateCountLabel=function(n,t,i){if(i===0||n.getAmount()===0?t.hide():t.show(),i===undefined){t.text(n.getAmount());return}t.text(i)},f.prototype.toggleButtonShoppingCart=function(n,t){var i=t.prev(".icon").parent(".short-navigation-link-container"),r;i.removeClass("is-active is-not-active"),r=t.attr("data-productId"),n.alreadyExists(r)?i.addClass("is-active"):i.addClass("is-not-active")},f.prototype.addShoppingCartItem=function(n,i,u,f){var e,o,s;try{if(e=n.getProduct(i),o=e?e.quantity+u:u,o>f){this.raiseDocumentEvent(t.Const.CustomEventNames.ShoppingCart.itemOverflow,new r.Dtos.ShoppingCartArguments(i,n.getCount()));return}s=n.addOrUpdateProduct(i,o),this.raiseDocumentEvent(s,new r.Dtos.ShoppingCartArguments(i,n.getCount()))}catch(h){alert("Something went wrong.")}},f.prototype.raiseDocumentEvent=function(n,t){t!=null?$(document).trigger(n,t):$(document).trigger(n)},f}(),u;r.ShoppingCartFeature=f,u=function(){function n(){}return n.prototype.showFlyout=function(n,i,r,u,f){var e=this,o=new t.Dtos.FadeInRequestDto(i,n.alreadyExists(i));$.ajax({contentType:"application/json",data:JSON.stringify(o),dataType:"json",success:function(n){r.hasClass("visible")&&e.resetFlyoutInterval(r);var t=$(".shoppingcart-navigation-container").find(".shoppingcart-navigation-link-container");r.removeClass("simple"),r.find(".shoppingcart-navigation-preview-content").show(),r.find(".shoppingcart-navigation-preview-content-title").text(n.title),r.find(".shoppingcart-navigation-preview-content-button").attr("href",t.attr("href")),r.find(".shoppingcart-navigation-preview-content-image").attr("src",n.image),r.parents(".shoppingcart-navigation-link-container").addClass("active-element"),e.setFlyoutCaption(r,f,u),e.setFlyoutDisappearanceBehavior(r),r.addClass("visible"),r.prev("A").addClass("visible")},error:function(){alert("An error occured.")},processData:!1,type:"POST",url:"/api/ProductFadeIn"})},n.prototype.showSimpleFlyout=function(n,t,i){n.hasClass("visible")&&this.resetFlyoutInterval(n),n.addClass("simple"),n.find(".shoppingcart-navigation-preview-content").hide(),this.setFlyoutCaption(n,i,t),this.setFlyoutDisappearanceBehavior(n),n.addClass("visible"),n.prev("A").addClass("visible"),n.parents(".shoppingcart-navigation-link-container").addClass("active-element")},n.prototype.getFlyoutControl=function(){return $(".shoppingcart-navigation-preview-container:visible")},n.prototype.resetFlyoutInterval=function(n){var t=$(n).data("interval-id");window.clearInterval(t)},n.prototype.setFlyoutCaption=function(n,t,i){var r=n.find(".shoppingcart-navigation-preview-title"),u;r.find("div").length===0&&($("<div>&nbsp;<\/div>").addClass("icon").appendTo(r),$("<span>&nbsp;<\/span>").addClass("shoppingcart-navigation-preview-content-title").appendTo(r)),u=r.find(".icon"),u.attr("class","icon"),u.addClass(t),r.find(".shoppingcart-navigation-preview-content-title").text(i)},n.prototype.setFlyoutDisappearanceBehavior=function(n){var t,i=function(){t=window.setTimeout(function(){n.removeClass("visible"),n.prev("A").removeClass("visible"),n.prev("A").removeClass("active-element"),n.removeClass("info"),n.find(".shoppingcart-navigation-preview-content").removeClass("info"),n.data("interval-id","")},4e3),$(n).data("interval-id",t)};i();n.on("mouseenter",function(){window.clearInterval(t)});n.on("mouseleave",function(){i()})},n}(),r.ShoppingCartFlyout=u})(r=i.ShoppingCart||(i.ShoppingCart={}))})(i=t.Feature||(t.Feature={}))})(t=n.Products||(n.Products={}))})(t=n.Client||(n.Client={}))}(Ensinger||(Ensinger={})),function(n){var t;(function(n){var t;(function(n){var t;(function(n){var t;(function(n){var t;(function(n){var r=function(){function n(n,t,i,r){this.productId=n,this.datasheetId=t,this.forComparison=i,this.isFunctional=r}return n}(),t,i;n.WatchlistRepositoryEntryProduct=r,t=function(){function n(n){this.products=n}return n}(),n.WatchlistRepositoryEntry=t,i=function(){function n(n,t){this.maxComparisonItemCount=t,this.maxWatchlistItemCount=n}return n}(),n.WatchlistServiceConfiguration=i})(t=n.Dtos||(n.Dtos={}))})(t=n.Watchlist||(n.Watchlist={}))})(t=n.Feature||(n.Feature={}))})(t=n.Products||(n.Products={}))})(t=n.Client||(n.Client={}))}(Ensinger||(Ensinger={})),__extends=this&&this.__extends||function(n,t){function r(){this.constructor=n}for(var i in t)t.hasOwnProperty(i)&&(n[i]=t[i]);n.prototype=t===null?Object.create(t):(r.prototype=t.prototype,new r)},function(n){var t;(function(n){var t;(function(n){var t;(function(t){var i;(function(t){var i;(function(t){var r=function(n){function t(){var t=n.call(this,"too many entries for comparison")||this;return t.name="TooMuchEntriesForComparisonException",t}return __extends(t,n),t}(n.Dtos.ErrorWithSetName),i;t.TooMuchEntriesForComparisonException=r,i=function(n){function t(){var t=n.call(this,"too many entries for watchlist")||this;return t.name="ProductWatchlistFullException",t}return __extends(t,n),t}(n.Dtos.ErrorWithSetName),t.ProductWatchlistFullException=i})(i=t.Exceptions||(t.Exceptions={}))})(i=t.Watchlist||(t.Watchlist={}))})(t=n.Feature||(n.Feature={}))})(t=n.Products||(n.Products={}))})(t=n.Client||(n.Client={}))}(Ensinger||(Ensinger={})),function(n){var t;(function(n){var t;(function(t){var i;(function(i){var r;(function(i){var f=function(){function f(){this.translationKeys=["product_watchlist_confirm_item_delete","product_watchlist_message_item_added","product_watchlist_message_item_removed","product_comparison_message_item_activated","product_comparison_message_item_deactivated","product_comparison_message_item_added","product_watchlist_message_max_x_reached","product_comparison_message_max_x_reached"]}return f.prototype.initialize=function(){var f=this,o,e,h,s;this.translationService=new n.Common.TranslationService(new n.Common.HttpService),this.translationService.initialize(this.translationKeys),o=window.WatchListService=new i.WatchlistService(new n.Common.UriConversionService),$.get("/api/ProductWatchlistConfiguration",function(n){o.configuration=n}),e=new u(o,this.translationService),h=new r,this.countLabel=$(".watchlist-navigation-count"),this.addToWatchListButton=$(".addToWatchList"),s=function(n){n.toggleClass("hide")};$(document).on("click",".share-comparing-list-action-button",function(){o.toCompressedString().then(function(n){var t=$(".share-comparing-list-action-box-container").data("share-comparing-list-url-prefix");h.prepareDialog(t+"#/?list="+n,$(".share-comparing-list-action-box-content-url-text")),s($(".share-comparing-list-action-box-container"))}),f.clipboard=new window.Clipboard(".share-comparing-list-action-box-content-copy-button",{target:function(){return $(".share-comparing-list-action-box-content-url-text")[0]}})});$(document).on("click",".share-comparing-list-action-box-close-button",function(){s($(".share-comparing-list-action-box-container")),f.clipboard.destroy()});this.addToWatchListButton.on("click",function(n){var t=$(n.currentTarget).attr("data-productId"),i=$(n.currentTarget).attr("data-datasheetId");e.tryAddOrRemoveToWatchlist(t,i)});$(document).on("click",".shared-comparing-list-dialog-compare-temp-button",function(){$("product-compare-slider").removeClass("hide"),$("product-compare-accordion").removeClass("hide"),$("product-compare-actions").removeClass("hide")});$(document).on(t.Const.CustomEventNames.Watchlist.itemAdded,function(n,t){e.toggleButtonWatchlist(f.addToWatchListButton),e.updateCountLabel(f.countLabel),e.showFlyout(t.id,f.getFlyoutControl(),f.translationService.translate("product_watchlist_message_item_added"),"icon-checkmark-bold")});$(document).on(t.Const.CustomEventNames.Watchlist.itemRemoved,function(n,t){e.toggleButtonWatchlist(f.addToWatchListButton),e.updateCountLabel(f.countLabel),e.showFlyout(t.id,f.getFlyoutControl(),f.translationService.translate("product_watchlist_message_item_removed"),"icon-checkmark-bold")});$(document).on(t.Const.CustomEventNames.Comparison.itemActivated,function(n,t){e.toggleButtonWatchlist(f.addToWatchListButton),e.updateCountLabel(f.countLabel);var i=t.wasExisting?"product_comparison_message_item_activated":"product_comparison_message_item_added";e.showFlyout(t.id,f.getFlyoutControl(),f.translationService.translate(i),"icon-info")});$(document).on(t.Const.CustomEventNames.Comparison.itemDeactivated,function(){e.updateCountLabel(f.countLabel),e.showSimpleFlyout(f.getFlyoutControl(),f.translationService.translate("product_comparison_message_item_deactivated"),"icon-info")});$(document).on(t.Const.CustomEventNames.Comparison.itemOverflow,function(){e.updateCountLabel(f.countLabel);var n=f.translationService.translate("product_comparison_message_max_x_reached").replace(/\{\{0\}\}/g,o.configuration.maxComparisonItemCount);e.showWatchListMessage(n,f.getFlyoutControl())});$(document).on(t.Const.CustomEventNames.Watchlist.itemOverflow,function(){e.updateCountLabel(f.countLabel);var n=f.translationService.translate("product_watchlist_message_max_x_reached").replace(/\{\{0\}\}/g,o.configuration.maxWatchlistItemCount);e.showWatchListMessage(n,f.getFlyoutControl())});e.updateCountLabel(this.countLabel),e.toggleButtonWatchlist(this.addToWatchListButton)},f.prototype.getFlyoutControl=function(){return $(".watchlist-navigation-preview-container:visible")},f}(),r,u;i.WatchlistFeature=f,r=function(){function n(){}return n.prototype.prepareDialog=function(n,t){t.val(n),t.focus(function(){window.setTimeout(function(){t.select()},100)})},n}(),i.ShareComparisonlistService=r,u=function(){function n(n,t){this.service=n,this.translationService=t}return n.prototype.updateCountLabel=function(n,t){if(t===0||this.service.getCount()===0?n.hide():n.show(),t===undefined){n.text(this.service.getCount());return}n.text(t)},n.prototype.toggleButtonWatchlist=function(n){var t=this;this.toggleButton(n,function(n){return t.service.alreadyExists(n)})},n.prototype.toggleButton=function(n,t){var i=n.prev(".icon").parent(".short-navigation-link-container"),r;i.removeClass("is-active is-not-active"),r=n.attr("data-productId"),t(r)===!0?i.addClass("is-active"):i.addClass("is-not-active")},n.prototype.tryAddOrRemoveToWatchlist=function(n,t){this.service.alreadyExists(n)?confirm(this.translationService.translate("product_watchlist_confirm_item_delete"))&&this.removeItemFromWatchlist(n):this.addWatchlistItem(n,t)},n.prototype.removeItemFromWatchlist=function(n){this.service.removeProduct(n);var i=new t.Dtos.ProductArguments(n,"",this.service.getCount(),!1);this.raiseDocumentEvent(t.Const.CustomEventNames.Watchlist.itemRemoved,i)},n.prototype.addWatchlistItem=function(n,i){var r=this.service.alreadyExists(n);try{this.service.addProduct(n,i,!1),this.raiseDocumentEvent(t.Const.CustomEventNames.Watchlist.itemAdded,new t.Dtos.ProductArguments(n,i,this.service.getCount(),r))}catch(u){u.name==="ProductWatchlistFullException"&&this.raiseDocumentEvent(t.Const.CustomEventNames.Watchlist.itemOverflow,new t.Dtos.ProductArguments(n,i,this.service.getCount(),r))}},n.prototype.raiseDocumentEvent=function(n,t){t!=null?$(document).trigger(n,t):$(document).trigger(n)},n.prototype.showWatchListMessage=function(n,t){this.setFlyoutCaption(t,"icon-info",n),t.find(".watchlist-navigation-preview-content").addClass("info"),this.setFlyoutDisappearanceBehavior(t),t.addClass("info").addClass("visible"),t.prev("A").addClass("active-element")},n.prototype.showFlyout=function(n,i,r,u){var f=this,e=new t.Dtos.FadeInRequestDto(n,this.service.alreadyExists(n));$.ajax({contentType:"application/json",data:JSON.stringify(e),dataType:"json",success:function(n){i.hasClass("visible")&&f.resetFlyoutInterval(i);var t=$(".watchlist-navigation-container").find(".watchlist-navigation-link-container");i.removeClass("simple"),i.find(".watchlist-navigation-preview-content").show(),i.find(".watchlist-navigation-preview-content-title").text(n.title),i.find(".watchlist-navigation-preview-content-button").attr("href",t.attr("href")),i.find(".watchlist-navigation-preview-content-image").attr("src",n.image),i.parents(".watchlist-navigation-link-container").addClass("active-element"),f.setFlyoutCaption(i,u,r),f.setFlyoutDisappearanceBehavior(i),i.addClass("visible"),i.prev("A").addClass("visible")},error:function(){alert("An error occured.")},processData:!1,type:"POST",url:"/api/ProductFadeIn"})},n.prototype.showSimpleFlyout=function(n,t,i){n.hasClass("visible")&&this.resetFlyoutInterval(n),n.addClass("simple"),n.find(".watchlist-navigation-preview-content").hide(),this.setFlyoutCaption(n,i,t),this.setFlyoutDisappearanceBehavior(n),n.addClass("visible"),n.prev("A").addClass("visible"),n.parents(".watchlist-navigation-link-container").addClass("active-element")},n.prototype.setFlyoutCaption=function(n,t,i){var r=n.find(".watchlist-navigation-preview-title"),u;r.find("div").length===0&&($("<div>&nbsp;<\/div>").addClass("icon").appendTo(r),$("<span>&nbsp;<\/span>").addClass("watchlist-navigation-preview-content-title").appendTo(r)),u=r.find(".icon"),u.attr("class","icon"),u.addClass(t),r.find(".watchlist-navigation-preview-content-title").text(i)},n.prototype.setFlyoutDisappearanceBehavior=function(n){var t,i=function(){t=window.setTimeout(function(){n.removeClass("visible"),n.prev("A").removeClass("visible"),n.prev("A").removeClass("active-element"),n.removeClass("info"),n.find(".watchlist-navigation-preview-content").removeClass("info"),n.data("interval-id","")},4e3),$(n).data("interval-id",t)};i();n.on("mouseenter",function(){window.clearInterval(t)});n.on("mouseleave",function(){i()})},n.prototype.resetFlyoutInterval=function(n){var t=$(n).data("interval-id");window.clearInterval(t)},n}(),i.WatchlistManipulationService=u})(r=i.Watchlist||(i.Watchlist={}))})(i=t.Feature||(t.Feature={}))})(t=n.Products||(n.Products={}))})(t=n.Client||(n.Client={}))}(Ensinger||(Ensinger={})),function(n){var t;(function(n){var t;(function(t){var i;(function(t){var i;(function(t){var i=function(){function i(){var i,r;this.analyticsService=new n.Common.AnalyticsService,this.repository=new window.Repository("favourites",window.LocalStorageRepository),i=this.repository.getItem(),i==null&&(r=new t.Dtos.FavouritesRepositoryEntry([]),this.repository.setItem(r),i=r),this.ids=i.products.map(function(n){return n.productId})}return i.prototype.updateFavourites=function(n,t,i,r,u){this.containsProductWithExactShapeAndDimension(n,t,i,r)?(this.removeFavourite(n,t,i,r),this.analyticsService.trackEvent("remove_from_favourites",{id:u,type:t,dimension:i,length:r})):(this.addFavourite(n,t,i,r),this.analyticsService.trackEvent("add_to_favourites",{id:u,type:t,dimension:i,length:r}))},i.prototype.getProductFromFavourites=function(n){return this.getFavourite(n)},i.prototype.existsInFavouritesProductWithExactShapeAndDimension=function(n,t,i,r){return!!n&&this.containsProductWithExactShapeAndDimension(n,t,i,r)},i.prototype.formatItemIdString=function(n){return n?n.toUpperCase():""},i.prototype.selectId=function(n){return n.productId?n.productId.toUpperCase():""},i.prototype.addFavourite=function(n,t,i,r){var b=this.formatItemIdString(n),o=this.getFavourites(),p=o.products.map(this.selectId).indexOf(b),c=this.createFavourite(n,t,i,r),u,s,f,w,h,l,e,a,v,y;if(p!==-1){for(u=o.products[p],s=-1,f=0;f<u.favouriteShapes.length;f++)w=u.favouriteShapes[f],w.stockShape===t&&(s=f);if(s!==-1){for(h=u.favouriteShapes[s],l=-1,e=0;e<h.stockDimensions.length;e++)a=h.stockDimensions[e],a.stockDimension===i&&a.stockLength===r&&(l=e);l===-1&&(v=c.favouriteShapes[0].stockDimensions[0],h.stockDimensions.push({stockDimension:v.stockDimension,stockLength:v.stockLength}))}else y=c.favouriteShapes[0],u.favouriteShapes.push({stockShape:y.stockShape,stockDimensions:y.stockDimensions})}else o.products.push(c);this.repository.setItem(o)},i.prototype.removeFavourite=function(n,t,i,r){var y=this.formatItemIdString(n),s=this.getFavourites(),c=s.products.map(this.selectId).indexOf(y),h=-1,l=-1,u,f,v,e,o,a;if(c!==-1){for(u=s.products[c],f=0;f<u.favouriteShapes.length;f++)v=u.favouriteShapes[f],v.stockShape===t&&(h=f);if(h!==-1){for(e=u.favouriteShapes[h],o=0;o<e.stockDimensions.length;o++)a=e.stockDimensions[o],a.stockDimension===i&&a.stockLength===r&&(l=o);l!==-1&&(e.stockDimensions.splice(l,1),e.stockDimensions.length<1&&u.favouriteShapes.splice(h,1),u.favouriteShapes.length<1&&s.products.splice(c,1))}}this.repository.setItem(s)},i.prototype.createFavourite=function(n,i,r,u){var f=new t.Dtos.FavouritesRepositoryEntryDimension(r,u),e=new t.Dtos.FavouritesRepositoryEntryShape(i,[f]);return new t.Dtos.FavouritesRepositoryEntryProduct(n,[e])},i.prototype.getFavourites=function(){return this.repository.getItem()||{products:[]}},i.prototype.containsProductWithExactShapeAndDimension=function(n,t,i,r){return this.searchFavouriteIndex(n,t,i,r)>=0},i.prototype.searchFavouriteIndex=function(n,t,i,r){var c=-1,u=this.getFavourite(n),o,s,f,h,e;if(!u||!u.favouriteShapes||u.favouriteShapes.length===0)return c;for(o=!1,s=0;s<u.favouriteShapes.length;s++)if(f=u.favouriteShapes[s],f.stockDimensions&&f.stockDimensions.length!==0){for(h=0;h<f.stockDimensions.length;h++)if((e=f.stockDimensions[h],e.stockDimension&&e.stockLength)&&(o=this.formatItemIdString(u.productId)===this.formatItemIdString(n)&&f.stockShape===t&&e.stockDimension===i&&e.stockLength===r,o)){c=this.getExistingFavouriteIndex(n);break}if(o)break}return c},i.prototype.getFavourite=function(n){var t=this.getExistingFavouriteIndex(n);return t===-1?null:this.getFavourites().products[t]},i.prototype.getExistingFavouriteIndex=function(n){n=this.formatItemIdString(n);var t=this.getFavourites();return t.products.length<=0?null:t.products.map(this.selectId).indexOf(this.formatItemIdString(n))},i}();t.FavouritesService=i})(i=t.Favourites||(t.Favourites={}))})(i=t.Feature||(t.Feature={}))})(t=n.Products||(n.Products={}))})(t=n.Client||(n.Client={}))}(Ensinger||(Ensinger={})),function(n,t,i){function e(){var n=o.getCount();n>0&&f.indexOf("{{productCount}}")!==-1?(r.hasClass("notify-hidden")&&(r.removeClass("notify-hidden"),t.dispatchEvent(i.create("ensinger.sticky.offset.force.update"))),u.text(f.replace("{{productCount}}",n))):r.hasClass("notify-hidden")||(r.addClass("notify-hidden"),setTimeout(function(){t.dispatchEvent(i.create("ensinger.sticky.offset.force.update"))},300))}var r=n("#ProductHeaderNotification"),u=r.find(".productrequest-notification-label"),f=u.text(),o=new window.CartService;e(),t.addEventListener("ensinger.request.cart.updated",e)}(window.jQuery,window.document,window.CustomEventFactory),function(n){var t;(function(n){var t;(function(n){var t;(function(t){var i;(function(t){var i=function(){function i(){var n,i;this.repository=new window.Repository("cart",window.LocalStorageRepository),n=this.repository.getItem(),n==null&&(i=new t.Dtos.ShoppingCartRepositoryEntry([]),this.repository.setItem(i),n=i)}return i.prototype.getCount=function(){var n=this.getProducts();return(n||[]).length},i.prototype.getAmount=function(){var t=this.getProducts(),n=0;return t.forEach(function(t){n+=t.quantity}),n},i.prototype.getProduct=function(n){var t=this.getProducts().filter(function(t){return t.productId===n});return t.length===0?null:t[0]},i.prototype.getProducts=function(){return this.repository.getItem().products},i.prototype.addOrUpdateProduct=function(i,r){var u=this.repository.getItem(),f,e;return this.alreadyExists(i)?(f=this.getIndexOfFirstProductWithId(u.products,i),u.products[f].quantity=r,this.repository.setItem(u),n.Const.CustomEventNames.ShoppingCart.itemUpdated):(e=new t.Dtos.ShoppingCartRepositoryEntryProduct(i,r),u.products.push(e),this.repository.setItem(u),n.Const.CustomEventNames.ShoppingCart.itemAdded)},i.prototype.alreadyExists=function(n){return this.getProduct(n)!==null},i.prototype.removeProduct=function(t){if(!this.alreadyExists(t))throw new Error("does not exist");var i=this.repository.getItem(),r=this.getIndexOfFirstProductWithId(i.products,t);return i.products.splice(r,1),this.repository.setItem(i),n.Const.CustomEventNames.ShoppingCart.itemRemoved},i.prototype.getIndexOfFirstProductWithId=function(n,t){var i;return n.forEach(function(n,r){if(t===n.productId){i=r;return}}),i},i}();t.ShoppingCartService=i})(i=t.ShoppingCart||(t.ShoppingCart={}))})(t=n.Feature||(n.Feature={}))})(t=n.Products||(n.Products={}))})(t=n.Client||(n.Client={}))}(Ensinger||(Ensinger={})),function(n){var t;(function(n){var t;(function(n){var i=function(){function n(){}return n.prototype.getJson=function(n,t){return new Promise(function(i,r){return $.ajax({contentType:"application/json",data:t,success:function(n){i(n)},error:function(n){r(n)},traditional:!0,type:"GET",url:n})})},n.prototype.postJson=function(n,t){return new Promise(function(i,r){return $.ajax({contentType:"application/json",data:JSON.stringify(t),dataType:"json",success:function(n){i(n)},error:function(n){r(n)},processData:!1,type:"POST",url:n})})},n}(),t;n.HttpService=i,t=function(){function n(n){this.httpservice=n}return n.prototype.initialize=function(n){var t=this,i=n.length<10?this.httpservice.getJson("EnsTranslations.ashx",{key:n}):this.httpservice.postJson("EnsTranslations.ashx",n);i.then(function(n){return t.translations=n||{}}).catch(function(){t.translations={}})},n.prototype.translate=function(n){return this.translations[n]||"untranslated("+n+")"},n}(),n.TranslationService=t})(t=n.Common||(n.Common={}))})(t=n.Client||(n.Client={}))}(Ensinger||(Ensinger={})),function(n){var t;(function(n){var t;(function(n){var t=function(){function n(){}return n.prototype.getUriAsync=function(n){return new Promise(function(t,i){$.ajax({contentType:"application/json",processData:!1,type:"POST",url:"/api/DataToUriString",data:JSON.stringify(n),dataType:"json",success:function(n){t(n)},error:function(n){i(n)}})})},n.prototype.getFromUriAsync=function(n){return new Promise(function(t,i){$.ajax({contentType:"application/json",processData:!1,type:"POST",url:"/api/DataFromUriString",data:JSON.stringify(n),dataType:"json",success:function(n){t(n)},error:function(n){i(n)}})})},n}();n.UriConversionService=t})(t=n.Common||(n.Common={}))})(t=n.Client||(n.Client={}))}(Ensinger||(Ensinger={})),function(){var n=[{query:"(max-width: 767px) and (orientation:portrait)",key:"xs-portrait"},{query:"(max-width: 767px) and (orientation:landscape)",key:"xs-landscape"},{query:"(max-width: 767px)",key:"xs"},{query:"(min-width: 768px) and (max-width: 991px)",key:"sm"},{query:"(min-width: 992px) and (max-width: 1199px)",key:"md"},{query:"(min-width: 1200px)",key:"lg"}];window.ViewportService=function(){this.isSupported=!!window.matchMedia,this.onViewPortUpdate=function(t){this.isSupported&&n.forEach(function(n){function i(i){i.matches&&t(n.key)}var r=window.matchMedia(n.query);r.addListener(function(n){i(n)}),i(r)})}}}(),function(n){var t;(function(n){var t;(function(n){var t;(function(n){var t;(function(n){var t=function(){function t(t){var i,r;this.configuration=new n.Dtos.WatchlistServiceConfiguration(25,8),this.uriConversionService=t,this.repository=new window.Repository("watchlist",window.LocalStorageRepository),i=this.repository.getItem(),i==null&&(r=new n.Dtos.WatchlistRepositoryEntry([]),this.repository.setItem(r),i=r)}return t.prototype.toCompressedString=function(){return this.uriConversionService.getUriAsync(this.getProductsForComparison())},t.prototype.fromCompressedString=function(n){return this.uriConversionService.getFromUriAsync(n)},t.prototype.getCount=function(){var n=this.getProducts(),t=0;return n&&n.forEach(function(n){n.isFunctional&&t++}),t},t.prototype.getProductsForComparison=function(){return this.getProducts().filter(function(n){return n.isFunctional}).filter(function(n){return n.forComparison})},t.prototype.getProduct=function(n){var t=this.getProducts().filter(function(t){return t.productId===n});return t.length===0?null:t[0]},t.prototype.getProducts=function(){return this.repository.getItem().products},t.prototype.addProduct=function(t,i,r,u){var s,o;u===void 0&&(u=!0);var h=this.configuration.maxWatchlistItemCount>0,e=this.configuration.maxComparisonItemCount>0,f=this.repository.getItem();if(f=this.checkAndUpdateFunctionality(f),this.alreadyExists(t)){if(e&&u&&r&&this.getProductsForComparison().length>=this.configuration.maxComparisonItemCount)throw new n.Exceptions.TooMuchEntriesForComparisonException;s=this.getIndexOfFirstProductWithId(f.products,t),f.products[s].forComparison=r,this.repository.setItem(f);return}if(h&&u&&this.getCount()>=this.configuration.maxWatchlistItemCount)throw new n.Exceptions.ProductWatchlistFullException;if(o=new n.Dtos.WatchlistRepositoryEntryProduct(t,i,r,!0),e&&u&&r&&this.getProductsForComparison().length>=this.configuration.maxComparisonItemCount&&(o.forComparison=!1),f.products.push(o),this.repository.setItem(f),e&&u&&r&&this.getProductsForComparison().length>=this.configuration.maxComparisonItemCount)throw new n.Exceptions.TooMuchEntriesForComparisonException;},t.prototype.checkAndUpdateFunctionality=function(n){var t=this;return n===void 0&&(n=null),n||(n=this.repository.getItem()),$.ajax({async:!1,contentType:"application/json",data:JSON.stringify(n.products),dataType:"json",success:function(i){n=t.updateFunctionality(n,i)},processData:!1,type:"POST",url:"/api/productfunctionality"}),n},t.prototype.isForComparison=function(n){return this.getProductsForComparison().filter(function(t){return t.productId===n}).length===1},t.prototype.alreadyExists=function(n){return this.getProduct(n)!==null},t.prototype.removeProduct=function(n){var t,i;if(!this.alreadyExists(n))throw new Error("does not exist");t=this.repository.getItem(),t=this.checkAndUpdateFunctionality(t),i=this.getIndexOfFirstProductWithId(t.products,n),t.products.splice(i,1),this.repository.setItem(t)},t.prototype.updateFunctionality=function(n,t){return n.products.forEach(function(n){var i=n;t.forEach(function(n){n.productId===i.productId&&((i.isFunctional===undefined||n.isFunctional!==i.isFunctional)&&(i.isFunctional=n.isFunctional),i.datasheetId=n.datasheetId)})}),this.repository.setItem(n),n},t.prototype.getIndexOfFirstProductWithId=function(n,t){var i;return n.forEach(function(n,r){if(t===n.productId){i=r;return}}),i},t}();n.WatchlistService=t})(t=n.Watchlist||(n.Watchlist={}))})(t=n.Feature||(n.Feature={}))})(t=n.Products||(n.Products={}))})(t=n.Client||(n.Client={}))}(Ensinger||(Ensinger={}))