PageSourceSearch

https://www.winbridgestore.com/cdn/shop/t/78/assets/products-comparison.js?v=129792941587372565851774326709

js winbridgestore.com collected 2026-10-08 21:29:33 UTC 6,280 bytes, 2 lines download raw bytes

1const{Core,Events,Utils,Store,MediaQueries}=Global,{getBrowserName,$active,$fetch,parseHTML,$clone,$loading,isFunction,$replaceContent,$toggleDisplay}=Utils,COMPARING_URLS_STORE_KEY="compare",CHECKSUM_STORE_KEY="compare-products-check",SEL_COMPARE_CONTENT_TEMPLATE="[data-compare-content-template]",SEL_COMPARE_CONTENT="[data-compare-content]",SEL_COMPARE_THUMB_TEMPLATE="[data-compare-thumb]",SEL_COMPARE_THUMB="[data-compare-thumb]",STORAGE_TYPE="sessionStorage",STORAGE_KEY_PREFIX_INFO="compare-info-html-",STORAGE_KEY_PREFIX_THUMB="compare-thumb-html-",PRODUCTS_LIMIT=5,THUMBS_LIMIT=9,COLUMNS_CSS_PROP="--products-comparison-popup-columns",isOverflown=({clientWidth,scrollWidth})=>scrollWidth>clientWidth;customElements.define("products-comparison",class extends Core{propTypes={checksum:String,"products-limit":Boolean,cached:Boolean,"sidescroll-info-title":String,"sidescroll-info-msg":String,"show-bar":Boolean};iOSPseudoCounter=0;elements={$:["compare-button",["cancel"],"button-counter","thumbs","table","modal-close-button"],modal:"modal-container"};productsDocs={};render(){this.sub(Events.PRODUCT_COMPARE_OPEN,this._onCompareButtonClick,{global:!0}),this.sub(Events.PRODUCT_COMPARE_CHANGE,this._onChange,{global:!0}),this.sub(Events.PRODUCT_COMPARE_UPDATE_REQUEST,this._pubState,{global:!0}),this.$("modal-close-button",{click:this._closeModal}),this.prop("show-bar")&&(this.$("cancel",{click:this._onCancel}),this.$("compare-button",{click:this._onCompareButtonClick})),this._setInitialState()}async _setInitialState(){await Promise.all(Store.get(COMPARING_URLS_STORE_KEY).map(this._addProduct.bind(this))),await customElements.whenDefined("modal-container"),this._updateState()}_updateState(){this.comparingCount===0&&this._closeModal(),this._setColumnsNumber(),this._toggleActiveState(),this._toggleCompareButton(),this._pubState(),this._fixIOSCounter()}_closeModal(){this.sidescrollIinfoShowing&&this._hideSideScrollInfo(),this.$("modal").close()}_fixIOSCounter(){getBrowserName()==="Safari"&&(this.iOSPseudoCounter+=1,this.style["counter-reset"]=`thumb-count ${this.iOSPseudoCounter}`)}async _onChange({url,state,onError,after}
1){try{state?(this.initialBarLoading=!0,await this._addProduct(url),Store.add(COMPARING_URLS_STORE_KEY,url),this.initialBarLoading=!1):Store.remove(COMPARING_URLS_STORE_KEY,url),this._updateState()}catch(error){console.error(error),isFunction(onError)&&onError()}finally{isFunction(after)&&after()}}async _pubState(){await customElements.whenDefined("products-comparison-checkbox"),this.pub(Events.PRODUCT_COMPARE_UPDATE,{comparingProductURLs:Store.get(COMPARING_URLS_STORE_KEY),limitReached:this.limitReached})}_toggleBarCompareButton(){this._updateCounterValue(),this.$("compare-button").toggleAttribute("disabled",this.comparingCount<2)}async _addProduct(url){this.loading=!0;const data=this._getCachedCompareDocs(url)||await this._fetchCompareDocs(url);this.prop("show-bar")&&this.$("thumbs").appendChild($clone(data.$thumb)),this.$("table").appendChild($clone(data.$infoContent)),this.loading=!1}_setToStore(url,data){window[STORAGE_TYPE].setItem(`${STORAGE_KEY_PREFIX_INFO}${url}`,data.$infoContent.outerHTML),window[STORAGE_TYPE].setItem(`${STORAGE_KEY_PREFIX_THUMB}${url}`,data.$thumb.outerHTML)}_getCachedCompareDocs(url){if(this.prop("cached"))return this.productsDocs[url]||this._getStoredCompareDocs(url)}_getStoredCompareDocs(url){const info=window[STORAGE_TYPE].getItem(`${STORAGE_KEY_PREFIX_INFO}${url}`);if(!info)return;const docs={$infoContent:parseHTML(info).querySelector(SEL_COMPARE_CONTENT),$thumb:void 0},thumb=this.prop("show-bar")&&window[STORAGE_TYPE].getItem(`${STORAGE_KEY_PREFIX_THUMB}${url}`);if(!(this.prop("show-bar")&&!thumb))return thumb&&(docs.$thumb=parseHTML(thumb).querySelector(SEL_COMPARE_THUMB)),this.productsDocs[url]=docs,docs}async _fetchCompareDocs(url){const $doc=await $fetch(`${url}`,{options:{sectionId:this.sectionId}}),docs={$infoContent:$clone($doc.querySelector(SEL_COMPARE_CONTENT_TEMPLATE)).firstElementChild,$thumb:this.prop("show-bar")&&$clone($doc.querySelector(SEL_COMPARE_THUMB_TEMPLATE)).firstElementChild};return this.prop("cached")&&(this.productsDocs[url]=docs,this._setToStore(url,docs)),docs}_onCancel(){Store.clear(COMPARING_URLS_STORE_KEY),this._updateState(),setTimeout(()=>{this._clearThumbs(),this._clearTable()},300)}_updateState(){this.comparingCount===0&&this.$("modal").close(),this._setColumnsNumber(),this._pubState(),this.prop("show-bar")&&(this._toggleBarActiveState(),this._toggleBarCompareButton(),this._fixIOSCounter())}destroy(){this._onCancel()}_clearThumbs(){this.$("thumbs")?.replaceChildren()}_clearTable(){this.querySelectorAll("product-comparison-item").forEach(product=>product.remove())}_onCompareButtonClick(){this.$("modal").open(),this._showSideScrollInfo()}_hideSideScrollInfo(){this.pub(Events.CLOSE_TOAST_NOTIFICATION)}_showSideScrollInfo(){this.pub(Events.TOAST_NOTIFICATION,{msg:this.prop("sidescroll-info-msg"),title:this.prop("sidescroll-info-title")}),this.sidescrollIinfoShowing=!0,Store.set("sidescroll-info-shown",!0)}_toggleBarActiveState(){$active(this,this.comparingCount>0)}_setColumnsNumber(){this.style.setProperty(COLUMNS_CSS_PROP,this.comparingCount)}_updateCounterValue(){this.$("button-counter").innerText=this.comparingCount}set initialBarLoading(state){this.prop("show-bar")&&(state&&this.comparingCount===0&&($loading(this,state),this._initialBarLoading=!0),!state&&this._initialBarLoading&&($loading(this,state),this._initialBarLoading=!1))}get comparingCount(){return Store.get(COMPARING_URLS_STORE_KEY).length}get limitReached(){return this.prop("products-limit")&&PRODUCTS_LIMIT<=this.comparingCount}set loading(state){this.prop("show-bar")&&$loading(this.$("compare-button"),state)}}),customElements.define("product-comparison-item",class extends Core{propTypes={"product-url":String};elements={$:["remove"]};render(){this.sub(Events.PRODUCT_COMPARE_CHANGE,this._onChange,{global:!0}),this.$("remove",{click:this._onRemove})}_onRemove(){this.pub(Events.PRODUCT_COMPARE_CHANGE,{url:this.prop("product-url"),state:!1}),this.remove()}_onChange({url,state}){!state&&url===this.prop("product-url")&&this.remove()}});
2//# sourceMappingURL=/cdn/shop/t/78/assets/products-comparison.js.map?v=129792941587372565851774326709

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.