PageSourceSearch

https://www.northcom.no/Parts/Views/Product/ProductList/ProductList.min.js?v=21.32.2

js northcom.no collected 2026-10-04 03:32:20 UTC 18,581 bytes, 2 lines download raw bytes

1!function(m,d,g,u){"use strict";var i="uc193-productlist",I=g.R+"Handlers/Public/ProductData.ashx",P=g.PubSub,f={prodItem:"js-uc193-item",mainImage:"js-uc193-image",dimItem:"js-uc193-dim-item",quickView:"js-quick-view",buyBtn:"BuyBtn",modifyQtyBtn:"js-quantity-plus-minus-btn",editQtyBtn:"js-edit-quantity-button",editQtyBtnReplacer:"js-edit-quantity-button-replacer",quantityInput:"QuantityTxb",fractionInput:"js-uc193-fraction",overlayBtn:"js-show-overlay",hideOverlayBtn:"js-hide-overlay"},p={itemId:"itemid",productId:"productid",imageId:"imageid",tempOrderLineId:"temp-order-line-id",quantityEditMode:"quantity-edit-mode"};function n(t){return{$mainPanel:t,$productListContainer:t.find(".ProductListContainer"),$perPageItems:t.find(".ItemsPerPage"),$pagingControls:t.find(".ProductListPagerContainer"),$viewSettings:t.find(".viewSettings"),$searchInput:t.find(".js-product-list-search").find(".js-product-list-search-input"),$campaignFragmentContainer:t.find(".js-fragment-container.Campaign"),$productContainers:null,init:function(){this.$productContainers=this.$productListContainer.find("."+f.prodItem)}}}function r(t,e){var a=e,s=new n(t),l={controlId:a.controlId,pageControlId:a.pageControlId,page:a.currentPage,perPage:a.perPage,isProductPage:a.isProductPage,showOnlyInStock:a.showOnlyInStock,totalItems:a.totalItems,filteredItemIds:u,filtersUrl:u,appliedFilters:u,searchTerm:a.searchTerm,sort:a.initSortingOption,showViewAll:a.showViewAll,loginUrl:g.R+a.loginUrl,isPreAppliedFilterProcessed:!1,dataCache:{},timer:null},c={filtersChannelPrefix:"frontend.productlist.filters."+l.controlId,staticFilterChannelPrefix:"frontend.productlist.staticfilter."+l.controlId,refreshChannelPrefix:"frontend.productlist.refresh."+l.controlId,initChannelPrefix:"frontend.productlist.init."+l.controlId,readyChannelPrefix:"frontend.productlist.ready."+l.controlId,uniqueFiltersChannelPrefix:"frontend.productlist.filters."+l.pageControlId,uniqueStaticFilterChannelPrefix:"frontend.productlist.staticfilter."+l.pageControlId,uniqueRefreshChannelPrefix:"frontend.productlist.refresh."+l.pageControlId,uniqueInitChannelPrefix:"frontend.productlist.init."+l.pageControlId,uniqueReadyChannelPrefix:"frontend.productlist.ready."+l.pageControlId};return{init:function(){y(a,s,l,c),w(a,s);var t=m.trim(s.$searchInput.val());function e(t,e){l.page=1,l.filteredCategoryIDs=e.selectedIds,v(a,s,l,c,!1,!0,!1,!1,!1)}function n(){l.page=1,l.filteredCategoryIDs=null,v(a,s,l,c,!1,!0,!1,!1,!1)}function i(t,e){if(!0===e.isPreApplied){if(l.isPreAppliedFilterProcessed)return;l.isPreAppliedFilterProcessed=!0}var n=void 0!==e.filteredItemIds&&null!==e.filteredItemIds?e.filteredItemIds.length:l.totalItemsInDataSource;e.isRestoring||(l.page=1),l.totalItems=n,l.filteredItemIds=e.filteredItemIds,l.filtersUrl=e.filtersUrl,l.appliedFilters=e.appliedFilters,l.showOnlyInStock=e.showOnlyInStock,v(a,s,l,c,!0!==e.isHistoryPopEvent,!0,!0,!1,!1)}function r(t,e){l.sort=e,v(a,s,l,c,!0,!1,!0,!1,!1)}function o(t,e){var n=t.find(".js-prod-count"),i=(n.show(),n.text(e),t.find(".js-add-to-cart"));0<i.length&&0<e?(i.show(),t.effect("transfer",{to:i},500,function(){i.effect("bounce",null,500)})):i.hide()}t&&3<=t.length&&h(a,s,l,c,t),g.PublicEStore.subscribe("estore.callback.shopcart.removefromcart",function(t,e){d.each(e.result.items,function(t){"ok"===t.status.toLowerCase()&&(t=s.$productContainers.filter('[data-productid="'+t.productID+'"]'))&&(t.find(".js-add-to-cart").hide(),b(s,t))})}),g.PublicEStore.subscribe("estore.callback.shopcart.emptycart",function(t,e){"ok"===e.status.toLowerCase()&&(s.$productListContainer.find(".js-add-to-cart").hide(),s.$productContainers.each(function(){b(s,m(this))}))}),g.PublicEStore.subscribe("estore.callback.shopcart.addtocart",function(t,e){d.each(e.result.items,function(t){var e;"ok"===t.status.toLowerCase()&&(o(e=s.$productContainers.filter('[data-productId="'+t.productID+'"]'),t.totalQuantityInTempOrderLine),e=e,t=t.tempOrderLineID,e.data(p.tempOrderLineId,t),S(e,"enabled"))})}),g.PublicEStore.subscribe("estore.callback.shopcart.updatecartquantity",function(t,e){d.each(e.result.items,function(t){"ok"===t.status.toLowerCase()&&o(s.$productC
1ontainers.filter('[data-productId="'+t.productID+'"]'),t.quantity)})}),s.$perPageItems.change(function(t){l.perPage=parseInt(t.target.value),l.page=1,v(a,s,l,c,!0,!0,!0,!1,!1)}),0<s.$campaignFragmentContainer.length?s.$viewSettings.hide():(s.$viewSettings.show(),C(a,s,l,c)),a.skipFilterEvents||(P.subscribe(c.filtersChannelPrefix+".apply",i),P.subscribe(c.uniqueFiltersChannelPrefix+".apply",i),P.subscribe(c.filtersChannelPrefix+".sortingchanged",r),P.subscribe(c.uniqueFiltersChannelPrefix+".sortingchanged",r),P.subscribe(c.staticFilterChannelPrefix+".apply",e),P.subscribe(c.uniqueStaticFilterChannelPrefix+".apply",e),P.subscribe(c.staticFilterChannelPrefix+".reset",n),P.subscribe(c.uniqueStaticFilterChannelPrefix+".reset",n)),a.enableHistoryState&&(g.history.replaceState(l,"",null),m(g).on("popstate",function(t){t=t.originalEvent.state;t&&t.controlId===l.controlId&&v(a,s,l=t,c,!1,!0,!0,!1,!1)})),P.publish(c.readyChannelPrefix),P.publish(c.uniqueReadyChannelPrefix)}}}function e(t){if(t){var e=t.mainPanelID,n=m("#"+e);if(1===n.length)return new r(n,t);0===n.length?console.warn(i+": product list main panel element was not found by id#"+e):console.warn(i+": found > 1 product list main panel elements with id#"+e)}return null}function y(a,n,s,t){var o,e,i,r,l;n.init(),n.$productContainers.find("."+f.buyBtn).click(function(t){t.preventDefault();var e=m(this).closest("."+f.prodItem),t=e.data(p.tempOrderLineId),n=m.mw_tryParseIntStrict(k(e)),i=[];x(e)&&0===n&&t?(n=function(t,e){return{productId:t.data(p.productId),tempOrderLineId:e}}(e,t),i.push(g.PublicEStore.removeFromCart(n))):(t=L(e),i.push(g.PublicEStore.addToCart(t)));i.length&&(e.addClass("buying"),m.when.apply(m,i).done(function(t){d.each(t.result.items,function(t){"ok"!==t.status.toLowerCase()&&$(t.message,"error")})}).fail(function(t){"unauthorized"===t.status.toLowerCase()?P.publish("notification.warning",{text:a.labels.availableToRegisteredOnly+'<br /><a href="'+s.loginUrl+'">'+a.labels.loginToContinue+"</a>",layout:"center",killer:!0,modal:!0,timeout:!1}):t.result&&d.each(t.result.items,function(t){$(t.message,"error")})}).always(function(){e.removeClass("buying")}))}),n.$productContainers.find(".WishListBtn").click(function(t){var e,n=m(this);n.hasClass("NeedsAdditionalInputToBuy")||(t.preventDefault(),e=n.hasClass("Add"),t=n.closest("."+f.prodItem).data(p.productId),window.updateWishList(t,e?"add":"remove",function(t){"ok"===t.status.toLowerCase()?d.each(t.result.items,function(t){"ok"===t.status.toLowerCase()?($(a.labels.wishListUpdated,"success"),n.toggleClass("Add",!e),n.toggleClass("Remove",e)):$(t.message,"error")}):$(t.message,t.status)}))}),n.$productContainers.find(".QuantityDrp").change(function(){{var e,t,n,i,r;a.multPriceByQuantity&&(e=m(this).closest("."+f.prodItem),t=e.data(p.productId),n=k(e),(i="quantityPrices_"+t+"_"+n)in s.dataCache?(r=s.dataCache[i],o(e,r)):(O(),r={action:"GetProductQuantityPrice",controlId:s.controlId,pageId:g.BasePageID,productId:t,quantity:n},m.get(I,r).done(function(t){s.dataCache[i]=t,o(e,t)}).fail(function(t){t="object"==typeof t?JSON.parse(t.responseText).Message||t.statusText:t,$(a.labels.failedToLoadProductList+"<br />"+t,"error")}).always(D)))}function o(t,e){e.DiscountPrice&&t.find(".DiscountPriceRow .DiscountPrice.Value").text(e.DiscountPriceString),e.Price&&(e.OriginalPrice&&t.find(".PriceRow .OriginalPrice.Value").text(e.OriginalPriceString),t.find(".PriceRow .Price").not(".WithVAT,.WithoutVAT").text(e.PriceString)),e.PriceWithoutVAT&&(e.OriginalPrice&&t.find(".PriceRow .OriginalPrice.Value").text(e.OriginalPriceString),t.find(".PriceRow .Price.WithoutVAT").text(e.PriceWithoutVATString)),e.PriceWithVAT&&(e.OriginalPrice&&t.find(".PriceRow .OriginalPrice.Value").text(e.OriginalPriceString),t.find(".PriceRow .Price.WithVAT").text(e.PriceWithVATString)),e.Price2&&t.find(".Price2Row .Price2.Value").text(e.Price2String),e.Price3&&t.find(".Price3Row .Price3.Value").text(e.Price3String)}}),n.$productContainers.find(".ShoppingListBtn").click(function(t){t.preventDefault();t=L(m(this).closest("."+f.prodItem));g.showAddToCollectionPopup([t])}
1),n.$productContainers.find("."+f.quickView).click(function(t){t.preventDefault();t=m(this).closest("."+f.prodItem).data(p.productId),t={action:"GetQuickView",controlId:s.controlId,pageId:g.BasePageID,productId:t};function i(){$(a.labels.failedToLoadQuickView,"error")}O(),m.get(I,t).always(D).done(function(t){var n,e=t.html,t=t.model;e?(n=t,m.fancybox.open({src:e,type:"html",opts:{parentEl:"form:first",afterLoad:function(t,e){"function"!=typeof g.productViewController&&console.error("Product view main asset is not loaded"),g.productViewController(e.$content,n).init(),"function"==typeof g.customFieldsController&&g.customFieldsController().init()}}})):i()}).fail(i)}),n.$productContainers.find("."+f.editQtyBtn).click(function(t){var e=m(this).closest("."+f.prodItem);t.preventDefault();t={action:"getProductCartInfo",productId:e.data(p.productId)};O(),m.get(I,t).always(D).done(function(t){t&&(t=t,e.data(p.tempOrderLineId,t.tempOrderLineId),t.factor?(e.find("."+f.quantityInput).val(t.factorQuantity),e.find("."+f.fractionInput).val(t.fractionQuantity)):e.find("."+f.quantityInput).val(t.inCartQuantity))}).fail(function(){$("Failed to load product cart info.","error")})}),n.$productContainers.find("."+f.modifyQtyBtn).click(function(t){t.preventDefault();var t=m(this),e={actionType:t.data("action"),quantityTxbId:t.data("target")},t=t.parent().find(e.quantityTxbId),n=t.val();let i=parseFloat(n.replace(",","."));var n=t.attr("min"),r=t.data("min")?.toString(),o=n?parseFloat(n.replace(",",".")):r?parseFloat(r.replace(",",".")):1;switch(e.actionType){case"decrease":i>o&&(i=--i);break;case"increase":i=++i}i<o?t.val(o.toLocaleString()):(i=Math.round(10*i)/10,t.val(i.toLocaleString()));t.trigger("change")}),n.$productContainers.find("."+f.overlayBtn).click(function(){var t=m(this).closest("."+f.prodItem);(function(t,e){t.$productListContainer.find("."+f.prodItem).not(e).removeClass("show-overlay")})(n,t),t.addClass("show-overlay")}),n.$productContainers.find("."+f.hideOverlayBtn).click(function(){m(this).closest("."+f.prodItem).removeClass("show-overlay")}),n.$productContainers.on("focus","."+f.quantityInput,function(){this.select()}),n.$productContainers.on("focus","."+f.fractionInput,function(){this.select()}),a.showCategoriesInfo&&(e=(e=n.$productListContainer.find(".js-uc193-item")).map(function(){return m(this).data(p.itemId)}).get(),m.post(I,{action:"getProductsCategoriesInfo",itemIds:JSON.stringify(e),rootCategories:JSON.stringify(a.categoriesInfoRootCategories),iconImageWidth:a.categoryInfoIconImageWidth}).done(t=>{d.each(t,(t,e)=>{t&&document.querySelectorAll('cms-category-info[data-itemid="'+e+'"]')[0].render(t)})}).fail(()=>{console.error("Failed to load products categories info")})),a.showDimensionsInStockInfo&&(o=n.$productListContainer.find(".SingleDimensionProduct"),e=o.map(function(){return m(this).data(p.itemId)}).get(),m.post(I,{action:"GetAvailableDimensionProducts",itemIds:JSON.stringify(e)}).done(function(t){d.each(t,function(t,e){var n,i,r,e=o.filter('[data-itemid="'+e+'"]').find(".js-dimensions-in-stock");t&&0<t.length?(n=m('<div class="DimensionsInStockHeader">'+a.labels.dimensionsInStock+'</div><div class="DimensionsInStockContent"></div>'),i=t,r=["xxs","2xs","xx-small","xs","x-small","s","small","m","medium","l","large","xl","x-large","xxl","2xl","xx-large","xxxl","3xl","xxx-large","4xl","5xl"],(t=d.sortBy(i,function(t){var t=("function"==typeof t.dimensions[0].STPD_SysName.normalize?t.dimensions[0].STPD_SysName.normalize():t.dimensions[0].STPD_SysName).replace(/[\s,]/g,"").toLowerCase();return m.isNumeric(t)?parseFloat(t):-1!==(t=d.indexOf(r,t))?t:u})).forEach(function(t){var e=t.dimensions[0].STPD_SysName,t=t.dimensionLinks[0];e&&t&&m(n[1]).append('<a href="'+t+'" class="DimensionsInStockLink" tabindex="-1">'+e+"</a>")})):n=m('<div class="DimensionsInStockHeader OutOfStock">'+a.labels.dimensionsOutOfStock+"</div>"),1===e.length&&e.prepend(n).addClass("show")})}).fail(function(){console.error("Failed to load available dimensions")})),m("."+f.dimItem).hover(function(){l=m(this).closest("."+f.prodItem),i=l.find("."+f.mainImage),r=l.find("."+f.mainImage).attr("src"),l=m(this).data("main-img-src"),i.length&&l&&i.attr("src",l)},function(){i.attr("src",r)}),P.publish(t.initChannelPrefix,{controlId:s.controlId,mainPanelId:a.mainPanelID}),P.publish(t.uniqueInitChannelPrefix,{controlId:s.controlId,mainPanelId:a.mainPanelID});var c=m(".js-product-list-search").find(".js-product-list-search-btn");c.unbind().on("click",function(t){t.preventDefault();t=m.trim(n.$searchInput.val());t&&h(t)}),n.$searchInput.autocomplete({minLength:3,source:function(){c.trigger("click")}}).one("keypress",function(t){var e=m.trim(n.$searchInput.val());13==t.keyCode&&(t.preventDefault(),h(e))}
1),n.$searchInput.keyup(function(){this.value?this.value.length<3&&(n.$productListContainer.html(m(document.createElement("h3")).text(a.labels.noProductsFound).addClass(s.controlId.toString().toLowerCase()+" __no-products-msg")),n.$pagingControls.find(".ProductListPager").remove()):(n.$productListContainer.html(m(document.createElement("h3")).text(a.labels.enterSearchQuery).addClass(s.controlId.toString().toLowerCase()+" __no-products-msg")),n.$pagingControls.find(".ProductListPager").remove())})}function h(t,e,n,i,r){n.timer&&(window.clearTimeout(n.timer),n.timer=null),n.timer=window.setTimeout(function(){n.searchTerm=r,v(t,e,n,i,!1,!0,!1,!0,!1)},500)}function C(i,r,o,a){var t,e,n,s;function l(){o.perPage=-1,o.page=1,v(i,r,o,a,!0,!0,!0,!1,!1)}0<r.$pagingControls.length&&(t=o.perPage,s=o.totalItems,e=o.showViewAll,r.$pagingControls.find(".ProductListPager").remove(),r.$pagingControls.html('<ul class="ProductListPager"></ul>'),0<t)&&t<s&&((n=r.$pagingControls.find(".ProductListPager")).twbsPagination({totalPages:Math.ceil(s/t),visiblePages:i.shownPages,startPage:o.page,first:i.labels.first,next:i.labels.next,prev:i.labels.prev,last:i.labels.last,onPageClick:function(t,e){{var n;o.showViewAll&&((n=m('<li class="show-all"><a href="#">'+i.labels.viewAll+"</a></li>")).click(l),r.$pagingControls.find(".ProductListPager").append(n))}o.page=e,v(i,r,o,a,!0,!1,!0,!1,!0)}}),e)&&((s=m('<li class="show-all"><a href="#">'+i.labels.viewAll+"</a></li>")).click(l),n.append(s))}function v(i,r,o,a,s,l,t,e,c){var n,d,u,f,p,h;n=i,d=r,u=o,f=a,p=t,h=function(){var t,e;if(r.$viewSettings.show(),l&&C(i,r,o,a),s&&(n=i,t=o,g.history)&&(e=location.href.split("#")[0],t=t,n.enableHistoryState?(t.sort&&(e=m.setQueryStringParam(e,"sort_"+t.controlId,t.sort)),t.page&&(e=m.setQueryStringParam(e,"page_"+t.controlId,t.page)),t.perPage&&(e=m.setQueryStringParam(e,"perpage_"+t.controlId,t.perPage)),e=t.showOnlyInStock?m.setQueryStringParam(e,"instockonly_"+t.controlId,"true"):m.removeQueryStringParam(e,"instockonly_"+t.controlId),t.filtersUrl&&(e+="#"+t.filtersUrl),e!==location.href&&void 0!==g.history.pushState&&g.history.pushState(t,"",e)):(t.filtersUrl&&(e+="#"+t.filtersUrl),e!==location.href&&void 0!==g.history.replaceState&&g.history.replaceState(t,"",e))),c){var n=r;if(n.$productContainers&&n.$productContainers.length)try{n.$productContainers[0].getBoundingClientRect().top<0&&window.scrollTo({top:0,behavior:"smooth"})}catch(t){console.error(t)}}},(t=e)||O(),t={action:"GetProductList",pageId:g.BasePageID,itemId:g.BaseItemID,orderId:n.orderId,controlId:u.controlId,pagecontrolid:u.pageControlId,perPage:u.perPage,page:u.page,sort:u.sort,filteredItemIds:JSON.stringify(u.filteredItemIds),filteredCategoryIDs:JSON.stringify(u.filteredCategoryIDs),s:u.searchTerm,isProductPage:u.isProductPage,showOnlyInStock:u.showOnlyInStock},m.post(I,t).done(function(t){u.totalItems=t.totalItemsCount,0<t.totalItemsCount?d.$productListContainer.html(t.productListHtml):d.$productListContainer.html(m(document.createElement("h3")).text(n.labels.noProductsFound).addClass(u.controlId.toString().toLowerCase()+" __no-products-msg")),m(".js-search-statistics").text(t.totalStatistics),y(n,d,u,f),0<t.totalItemsCount&&d.$productListContainer.find(".lipscore-rating-small").length&&lipscore&&lipscore.reInitWidgets(),h&&"function"==typeof h&&h.apply(this),w(n,d),p&&(P.publish(f.refreshChannelPrefix,{showOnlyInStock:u.showOnlyInStock}),P.publish(f.uniqueRefreshChannelPrefix,{showOnlyInStock:u.showOnlyInStock}))}).fail(function(t){t="object"==typeof t?JSON.parse(t.responseText).Message||t.statusText:t,$(n.labels.failedToLoadProductList+"<br />"+t,"error")}).always(D)}function w(r,o){o.$mainPanel.find(".js-fragment-container").each(function(){var t=m(this);try{var e,n=function(t){t=t.data("listname")||o.$mainPanel.find(".MainTitle").text()||document.title;return m.trim(t)}(t),i=[];t.find("."+f.prodItem).each(function(){var t=m(this),e=parseInt(t.data(p.productId));0<e&&i.push({productId:e,$links:t.find(".js-product-link")})}),0<i.length&&(e=g.toProductListType(r.mode),g.reportProductListView(e,n,i))}catch(t){console.error("Failed to report fragment's products impressions. "+t)}})}function b(t,e){e.data(p.tempOrderLineId,null),S(e,"disabled"),t.$productListContainer.find("."+f.prodItem).removeClass("show-overlay")}function S(t,e){var n=t.find("."+f.editQtyBtn),i=t.find("."+f.editQtyBtnReplacer),r=t.find(".js-lbl-buy"),t=t.find(".js-lbl-edit");"enabled"===e?(n.show(),i.hide(),r.hide(),t.show()):(n.hide(),i.show(),r.show(),t.hide())}function x(t){return"enabled"===t.data(p.quantityEditMode)}function k(t){return t.find("."+f.quantityInput+",.QuantityDrp").val()}function L(t){var i={},e=(t.find(".customFieldsCont .customField").each(function(t,e){var e=m(e),n=e.attr("customFieldId");0<e.find("input").length&&(e=e.find("input")),n&&(e=e.is(":checkbox")?e.is(":checked").toString():e.val(),i[n]=e)}),{productId:t.data(p.productId),imageId:t.data(p.imageId),quantity:k(t),fraction:t.find("."+f.fractionInput).val(),customFields:i}),n=t.data(p.tempOrderLineId);return x(t)&&n&&(e.tempOrderLineId=n),e}function $(t,e){e="string"==typeof e&&e?"notification."+e:"notification";t=t.replace(/\n/g,"<br />"),P.publish(e,t)}function O(){"function"==typeof m.blockUI&&m.blockUI({message:null})}function D(){"function"==typeof m.unblockUI&&m.unblockUI()}g.createProductListController=e,m(function(){g.umwAssets&&g.umwAssets[i]&&g.umwAssets[i].forEac
1h(function(t){t=e(t);t&&t.init()})})}(jQuery,_,window);
2//# sourceMappingURL=ProductList.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.