1(function(n){var t={name:"infiniteScrolling",extend:"mvvmwidget",extendEvents:[],options:{infiniteScrollingContainerId:"infinite-scroller",productContainerId:"product-grid",replaceContainer:"",loadingText:"Loading more...",templateName:"",productCount:0,productsPerPage:12,currentPage:1,pageCount:0,preLoadData:!1,enableClickToShowMore:!0,preLoadedClass:"preloaded"},initialise:function(){var t=this;n.cv.css.bind(n.cv.css.eventnames.favouriteRemoved,n.proxy(t.viewModel.favouriteRemoved,t.viewModel))},viewModelBound:function(){var i=this,t=i.viewModel;n(function(){var u=n("#"+i.options.infiniteScrollingContainerId),r;if(n.cv.util.hasValue(u)&&i.options.enableClickToShowMore===!1)t._window.on("scroll",function(){t.showMoreProducts.call(t)});r=t._getCachedData();n.cv.util.hasValue(r)&&(t._createSectionForNewProducts(r),t.set("currentPage",r.pageNumber));n.cv.css.trigger(n.cv.css.eventnames.infiniteScrollingInit,i.options.productsPerPage)})},_getViewModel:function(){var t=this,i=n("#"+t.options.infiniteScrollingContainerId),e=i.prev("div.infinite-scrolling"),u=n.extend(kendo.observable(t.options),{isProcessing:!1,_window:n(window),_watch:[],_buffer:null,_loadDataDeferred:undefined,dataPreLoaded:!1,morePagesAvailableToLoad:function(){var n=this;return n.get("currentPage")<n.get("pageCount")},showMoreProducts:function(){var t=this,i;t.get("isProcessing")===!1&&(t.set("isProcessing",!0),t.isMoreSpaceAvailable()===!0?(i=t.loadData(),i.done(function(i,r,u,f){t.set("isProcessing",!1);n.cv.util.hasValue(i)&&(i.removeAttr("style"),t.set("dataPreLoaded",!1),t.handleInitPreloadData(i,r,u,f,!1));t.get("preLoadData")===!0&&t.get("dataPreLoaded")===!1&&t.loadData().done(function(n,i,r,u){t.handleInitPreloadData(n,i,r,u,!0)})}).fail(function(){t.set("isProcessing",!1);var i=t.get("loadDataError");i&&n.cv.util.notify(t,i,n.cv.css.messageTypes.error,{triggerMessages:!0,source:t.name})})):(t.set("isProcessing",!1),t.get("preLoadData")===!0&&t.get("dataPreLoaded")===!1&&t.loadData()))},handleInitPreloadData:function(i,r,u,f,e){if(e===void 0&&(e=!1),n.cv.util.hasValue(i)){var s=this,o=n(i),h=t.options.preLoadedClass;o.hasClass(h)||(o.find("input.form-number:not(.k-input)").each(function(){n.cv.util.kendoNumericTextBox(this)}),n.cv.util.bindKendoWidgets(o),kendo.init(o),t.viewModel.set("currentPage",f),n.cv.css.trigger(n.cv.css.eventnames.infiniteScrollingPageLoaded,{recordsLoaded:u,productImpressions:r}),s.isMoreSpaceAvailable()&&s.showMoreProducts(),e&&o.addClass(h))}},loadData:function(){var i=this,r=i.get("_loadDataDeferred"),u,f,e;return(r===undefined||r.state()!=="pending"&&i.get("dataPreLoaded")===!1)&&(r=n.Deferred(),i.set("_loadDataDeferred",r),u=i.get("currentPage")+1,u<=i.get("pageCount")?(f=n.cv.util.isNullOrWhitespace(window.location.href)?document.URL:window.location.href,n.cv.util.isNullOrWhitespace(f)?(i.set("loadDataError","Error encountered while trying to retrieve more products, please refresh the page and try again."),r.reject()):(e={pageNumber:u,pageSize:t.options.productsPerPage,rawUrl:f,templateName:t.options.templateName},n.cv.css.product.getInfiniteScrollingProducts(e).done(function(t){var o,e,f;n.cv.util.hasValue(t)?(o=t.data.productImpressions,e=t.data.result,n.cv.util.hasValue(e)?(f=n('<div class="cv-init-infinite-scroll-galleries" style="display: none"><\/div>'),n.each(e,function(n,t){f.append(t)}),i.get("replaceContainer")!==""?n(i.get("replaceContainer")).append(f):n("#"+i.get("productContainerId")).append(f),i.set("dataPreLoaded",!0),i._cacheLoadedData(t.data),n.cv.util.productListItemGallery(".cv-init-infinite-scroll-galleries div.product-list-gallery-slider"),n(".cv-init-infinite-scroll-galleries").removeClass("cv-init-infinite-scroll-galleries"),r.resolve(f,o,e.length,u)):r.reject()):r.reject()}).fail(function(){r.reject()}))):r.reject()),r.promise()},isMoreSpaceAvailable:function(){var c=this,f=c.get("_window"),o=!1,t,u;if(n.cv.util.hasValue(i)){var r=f.scrollTop(),s=r+f.height(),h=0;n.cv.util.hasValue(e)&&(h=e.height());t=i.offset().top-h;u=t+i.height();o=u>=r&&t<=s&&u<=s&&t>=r}return o},_cacheLoadedData:function(t){var u=this,i=u._getCachedData(),f=n.cv.util.hasContent(t.productImpressions)?JSON.parse(t.productImpressions):[],e=t.result,o=u.get("
1currentPage")+1,r;n.cv.util.hasValue(i)?(i.pageNumber=o,_.each(e,function(n){i.content.push(n)}),_.each(f,function(n){i.productImpressions.push(n)})):(r=n.cv.css.currentUser,i={pathAndQuery:u._getCurrentPathAndQuery(),content:e,pageNumber:o,productImpressions:f,customerCode:r.customerCode,catalogue:r.catalogue,roleName:r.roleName});n.cv.css.setLocalStorage(n.cv.css.sessionStorageKeys.infiniteScrollingProducts,i)},_getCachedData:function(){var r=this,t=n.cv.css.getLocalStorage(n.cv.css.sessionStorageKeys.infiniteScrollingProducts);if(n.cv.util.hasValue(t)===!1)return null;var u=r._getCurrentPathAndQuery(),i=n.cv.css.currentUser,f=t.pathAndQuery===u&&i.customerCode===t.customerCode&&i.catalogue===t.catalogue&&i.roleName===t.roleName;return f?t:null},_getCurrentPathAndQuery:function(){return window.location.pathname+window.location.search},_createSectionForNewProducts:function(t){var u=t.content,i,r,f;n.cv.util.hasValue(u)&&(i=n('<div class="cv-init-infinite-scroll-galleries"><\/div>'),_.each(u,function(n){i.append(n)}),this.get("replaceContainer")!==""?n(this.get("replaceContainer")).append(i):n("#".concat(this.get("productContainerId"))).append(i),r=n(i),r.find("input.form-number:not(.k-input)").each(function(){n.cv.util.kendoNumericTextBox(this)}),n.cv.util.bindKendoWidgets(r),kendo.init(r),f=n.cv.util.hasValue(t.productImpressions,"[0]")?JSON.stringify(t.productImpressions):"",n.cv.util.productListItemGallery(".cv-init-infinite-scroll-galleries div.product-list-gallery-slider"),n(".cv-init-infinite-scroll-galleries").removeClass("cv-init-infinite-scroll-galleries"),n.cv.css.trigger(n.cv.css.eventnames.infiniteScrollingPageLoaded,{recordsLoaded:u.length,productImpressions:f}))},favouriteRemoved:function(){var i=t.viewModel,r=i._getCachedData();n.cv.util.hasValue(r)&&n.cv.css.removeLocalStorage(n.cv.css.sessionStorageKeys.infiniteScrollingProducts)}}),f,r;return t.options.productCount>0&&t.options.productsPerPage>0&&(f=Math.floor(t.options.productCount/t.options.productsPerPage),t.options.productCount%t.options.productsPerPage!=0&&f++,u.set("pageCount",f)),r=n.cv.util.queryStringValue("PageProduct"),r&&parseInt(r)!==NaN&&u.set("currentPage",parseInt(r)),u}};n.cv.ui.widget(t)})(jQuery); 2 3// Processed by cv-bundle
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.