/g)||[]).length,n=(e.match(/alert\(/g)||[]).length,a=(e.match(/console\.log\(/g)||[]).length,i=(e.match(/execCommand/g)||[]).length,r=(e.match(/document\.cookie/g)||[]).length,l=(e.match(/j.*a.*v.*a.*s.*c.*r.*i.*p.*t/g)||[]).length,d=t.test(e);if(o>0&&s>0||o>1||s>1||n||a||i||r||l||d)return!0}return!1},R=()=>"collection"===de().config.generalSettings?.page,V=()=>"search"===de().config.generalSettings?.page,W=()=>{let e="";switch(!0){case R():e="collection_page";break;case V():e="search_page";break;case"product"===de().config.generalSettings?.page:e="product_page";break;case"cart"===de().config.generalSettings?.page:e="cart_page";break;case"index"===de().config.generalSettings?.page:e="home_page"}return e},N=class e extends x{saveRequestId(t,o,s=[]){const n=E(e.STORAGE_KEY_PRE_REQUEST_IDS)||{};n[t]=o,Array.isArray(s)&&s?.forEach((s=>{let a="";switch(t){case"search":case"suggest":a=e.KEY_PLACEMENT_BY_TYPE.search_page;break;case"product_page_bundle":a=e.KEY_PLACEMENT_BY_TYPE.product_page}n[`${s.widgetId||""}_${a}`]=o})),M(e.STORAGE_KEY_PRE_REQUEST_IDS,n)}savePreAction(t){M(e.STORAGE_KEY_PRE_ACTION,t)}};N.moduleName="Analytics",N.STORAGE_KEY_PRE_REQUEST_IDS="boostSdPreRequestIds",N.STORAGE_KEY_PRE_ACTION="boostSdPreAction",N.KEY_PLACEMENT_BY_TYPE={product_page:"product_page",search_page:"search_page",instant_search:"instant_search"};var q=N,j=class extends x{get extendAppConfig(){return{cdn:"https://cdn.boostcommerce.io",bundleUrl:"https://services.mybcapps.com/bc-sf-filter/bundles",productUrl:"https://services.mybcapps.com/bc-sf-filter/products",subscriptionUrl:"https://services.mybcapps.com/bc-sf-filter/subscribe-b2s",taeSettings:window.boostWidgetIntegration?.taeSettings||{instantSearch:{enabled:!1}},generalSettings:Object.assign({preview_mode:!1,preview_path:"",page:"page",custom_js_asset_url:"",custom_css_asset_url:"",collection_id:0,collection_handle:"",collection_product_count:0,collection_tags:null,current_tags:null,default_sort_by:"",swatch_extension:"png",no_image_url:"https://cdn.shopify.com/extensions/43a36a1c-ef98-4ed2-af7f-d225d5d58264/boost-ai-search-filter-180/assets/boost-pfs-no-image.jpg",search_term:"",template:"page.corporate-reach-out",currencies:["AUD"],current_currency:"AUD",published_locales:{en:!0},current_locale:"en"},{addCollectionToProductUrl:!1}),translation:{},translation:{refineDesktop:"Filter",refine:"Filter By",refineMobile:"Filter By",refineMobileCollapse:"Hide Filter",clear:"Clear",clearAll:"Clear All",viewMore:"View More",viewLess:"View Less",apply:"Apply",applyAll:"Apply All",close:"Close",back:"Back",showLimit:"Show",collectionAll:"All",under:"Under",above:"Above",ratingStar:"Star",ratingStars:"Stars",ratingUp:"& Up",showResult:"Show result",searchOptions:"Search Options",inCollectionSearch:"Search for products in this collection",loadPreviousPage:"Load Previous Page",loadMore:"Load more {{ amountProduct }} Products",loadMoreTotal:"{{ from }} - {{ to }} of {{ total }} Products",viewAs:"View as",listView:"List view",gridView:"Grid view",gridViewColumns:"Grid view {{count}} Columns",search:{generalTitle:"General Title (when no search term)",resultHeader:'Search results for "{{ terms }}"',resultNumber:'Showing {{ count }} results for "{{ terms }}"',seeAllProducts:"See all products",resultEmpty:"We are sorry! We couldn't find results for \"{{ terms }}\".{{ breakline }}But don't give up – check the spelling or try less specific search terms.",resultEmptyWithSuggestion:'Sorry, nothing found for "{{ terms }}". Check out these items instead?',searchTotalResult:"Showing {{ count }} result",searchTotalResults:"Showing {{ count }} results",searchPanelProduct:"Products",searchPanelCollection:"Collections",searchPanelPage:"Blogs & Pages",searchTipsTitle:"Search tips",searchTipsContent:"Please double-check your spelling.{{ breakline }}Use more generic search terms.{{ breakline }}Enter fewer keywords.{{ breakline }}Try searching by product type, brand, model number or product feature.",noSearchResultSearchTermLabel:"Check out some of these popular searches",noSearchResultProductsLabel:"Trending products",searchBoxOnclickRecentSearchLabel:"Recent searches",searchBoxOnclickSearchTermLabel:"Popular searches",searchBoxOnclickProductsLabel:"Trending products"},suggestion:{viewAll:"View all {{ count }} products",didYouMean:"Did you mean: {{ terms }}",searchBoxPlaceholder:"Search",suggestQuery:"Show {{ count }} results for {{ terms }}",instantSearchSuggestionsLabel:"Popular suggestions",instantSearchCollectionsLabel:"Collections",instantSearchProductsLabel:"Products",instantSearchPagesLabel:"Pages",searchBoxOnclickRecentSearchLabel:"Recent searches",searchBoxOnclickSearchTermLabel:"Popular searches",searchBoxOnclickProductsLabel:"Trending products",noSearchResultSearchTermLabel:"Check out some of these popular searches",noSearchResultProductsLabel:"Trending products"},error:{noFilterResult:"Sorry, no products matched your selection",noSearchResult:"Sorry, no products matched the keyword",noProducts:"No products found in this collection",noSuggestionResult:'Sorry, nothing found for "{{ terms }}".',noSuggestionProducts:'Sorry, nothing found for "{{ terms }}".'},recommendation:{"productpage-381751":"Frequently bought together","cartpage-078312":"Still interested in this?","cartpage-376145":"Similar Products","collectionpage-851248":"Most Popular Products","productpage-312086":"Recently viewed","productpage-538272":"Frequently Bought Together","homepage-715211":"Best Sellers","collectionpage-322383":"Just dropped","homepage-322814":"Just dropped"},productItem:{qvBtnLabel:"Quick view",atcAvailableLabel:"Add to cart",soldoutLabel:"Sold out",productItemSale:"Sale",productItemSoldOut:"Sold out",viewProductBtnLabel:"View product",atcSelectOptionsLabel:"Select options",amount:"From {{minPrice}}",savingAmount:"Save {{saleAmount}}",swatchButtonText1:"+{{count}}",swatchButtonText2:"+{{count}}",swatchButtonText3:"+{{count}}",inventoryInStock:"In stock",inventoryLowStock:"Only {{count}} left!",inventorySoldOut:"Sold out",atcAddingToCartBtnLabel:"Adding...",atcAddedToCartBtnLabel:"Added!",atcFailedToCartBtnLabel:"Failed!"},quickView:{qvQuantity:"Quantity",qvViewFullDetails:"View full details",buyItNowBtnLabel:"Buy it now",qvQuantityError:"Please input quantity"},cart:{atcMiniCartSubtotalLabel:"Subtotal",atcMiniCartEmptyCartLabel:"Your Cart Is Currently Empty",atcMiniCartCountItemLabel:"item",atcMiniCartCountItemLabelPlural:"items",atcMiniCartShopingCartLabel:"Your cart",atcMiniCartViewCartLabel:"View cart",atcMiniCartCheckoutLabel:"Checkout"},recentlyViewed:{recentProductHeading:"Recently Viewed Products"},mostPopular:{popularProductsHeading:"Popular Products"},perpage:{productCountPerPage:"Display: {{count}} per page"},productCount:{textDescriptionCollectionHeader:"{{count}} product",textDescriptionCollectionHeaderPlural:"{{count}} products",textDescriptionToolbar:"{{count}} product",textDescriptionToolbarPlural:"{{count}} products",textDescriptionPagination:"Showing {{from}} - {{to}} of {{total}} product",textDescriptionPaginationPlural:"Showing {{from}} - {{to}} of {{total}} products"},pagination:{loadPreviousText:"Load Previous Page",loadPreviousInfiniteText:"Load Previous Page",loadMoreText:"Load more",prevText:"Previous",nextText:"Next"},sortingList:{sorting:"Sort by","best-selling":"Best selling","number-extra-sort1-descending":"Highest rated","price-ascending":"Price (low-high)","price-descending":"Price (high-low)","created-descending":"Newest first","created-ascending":"Oldest first",relevance:"Relevance",manual:"Manual"},collectionHeader:{collectionAllProduct:"Products"},breadcrumb:{home:"Home",collections:"Collections",pagination:"Page {{ page }} of {{totalPages}}",toFrontPage:"Back to the front page"},sliderProduct:{prevButton:"Previous",nextButton:"Next"}}}}};j.moduleName="AppSettings";var U=class extends x{shouldInit(){return"development"!==this.TAEAppConfig.env}onAppStart(){this.loadAssetFiles(),this.assetLoadingPromise("themeCSS").then((()=>{this.TAEApp.updateConfig({themeCssLoaded:!0})})),this.assetLoadingPromise("settingsCSS").then((()=>{this.TAEApp.updateConfig({settingsCSSLoaded:!0})}))}loadAssetFiles(){this.loadThemeCSS(),this.loadSettingsCSS(),this.loadMainScript(),this.loadRTLCSS(),this.loadCustomizedCSSAndScript()}loadCustomizedCSSAndScript(){const{assetFilesLoader:e,templateMetadata:t}=this.TAEAppConfig,o=e.themeCSS.element,s=e.settingsCSS.element,n=()=>{"loaded"===this.TAEAppConfig.assetFilesLoader.themeCSS.status&&"loaded"===this.TAEAppConfig.assetFilesLoader.settingsCSS.status&&(t?.customizeCssUrl&&this.loadCSSFile("customizedCSS"),t?.customizeJsUrl&&this.loadScript("customizedScript"))};o?.addEventListener("load",n),s?.addEventListener("load",n)}loadSettingsCSS(){const e=this.loadCSSFile("settingsCSS");return this.settingCSS=this.TAEAppConfig.templateMetadata?.settingsCssUrl||this.TAEAppConfig.fallback?.settingsCssUrl,e}loadThemeCSS(){const e=this.loadCSSFile("themeCSS");return this.themeCSS=this.TAEAppConfig.templateMetadata?.themeCssUrl||this.TAEAppConfig.fallback?.themeCssUrl,"staging"===this.TAEAppConfig.env&&this.themeCSS&&(this.themeCSS+=`?v=${Date.now()}`),e}loadRTLCSS(){if("rtl"===document.documentElement.getAttribute("dir")&&this.themeCSS){const e=this.loadCSSFile("rtlCSS"),t=new URL(this.themeCSS),o=t.pathname.split("/").slice(0,-1).join("/")+"/rtl.css";return this.rtlCSS=new URL(o,t.origin).href,e}}loadMainScript(){const e=this.loadScript("mainScript"),{env:t,cdn:o,templateMetadata:{themeLibVersion:s}={}}=this.TAEAppConfig;return this.mainScript=`${o}/widget-integration/${"staging"===this.TAEAppConfig.env?"staging":s}/bc-widget-integration.js`,"staging"===t&&this.mainScript&&(this.mainScript+=`?v=${Date.now()}`),e}loadResourceByName(e,t){if(this.TAEAppConfig.assetFilesLoader[e].element)return;const o=t?.resourceType||this.TAEAppConfig.assetFilesLoader[e].type;let s=t?.url;if(!s)switch(e){case"themeCSS":s=this.TAEAppConfig.templateMetadata?.themeCssUrl||this.TAEAppConfig.fallback?.themeCssUrl,"staging"===this.TAEAppConfig.env&&(s+=`?v=${Date.now()}`);break;case"settingsCSS":s=this.TAEAppConfig.templateMetadata?.settingsCssUrl||this.TAEAppConfig.fallback?.settingsCssUrl;break;case"rtlCSS":if(this.themeCSS){const e=new URL(this.themeCSS),t=e.pathname.split("/").slice(0,-1).join("/");s=new URL(t+"/rtl.css",e.origin).href}break;case"mainScript":s=`${this.TAEAppConfig.cdn}/widget-integration/${"staging"===this.TAEAppConfig.env?"staging":this.TAEAppConfig.templateMetadata?.themeLibVersion}/bc-widget-integration.js`,"staging"===this.TAEAppConfig.env&&(s+=`?v=${Date.now()}`);break;case"customizedCSS":s=this.TAEAppConfig.templateMetadata?.customizeCssUrl;break;case"customizedScript":s=this.TAEAppConfig.templateMetadata?.customizeJsUrl}if(s)if("stylesheet"===o){const t=document.createElement("link");t.rel="stylesheet",t.type="text/css",t.media="all",t.href=s,document.head.appendChild(t),this.TAEApp.updateConfig({assetFilesLoader:{[e]:{element:t,status:"loading",url:s}}}),t.onload=()=>{this.TAEApp.updateConfig({assetFilesLoader:{[e]:{element:t,status:"loaded",url:s}}})},t.onerror=()=>{this.TAEApp.updateConfig({assetFilesLoader:{[e]:{element:t,status:"error",url:s}}})}}else if("script"===o){const o=document.createElement("script");o.src=s;const n=t?.strategy;if("async"===n?o.async=!0:"defer"===n&&(o.defer=!0),"async"===n||"defer"===n){const e=document.createElement("link");e.rel="preload",e.as="script",e.href=s,document.head?.appendChild(e)}document.head.appendChild(o),o.onload=()=>{this.TAEApp.updateConfig({assetFilesLoader:{[e]:{element:o,status:"loaded",url:s}}})},o.onerror=()=>{this.TAEApp.updateConfig({assetFilesLoader:{[e]:{element:o,status:"error",url:s}}})},o.onprogress=()=>{this.TAEApp.updateConfig({assetFilesLoader:{[e]:{element:o,status:"loading",url:s}}})}}}loadCSSFile(e,t){return this.loadResourceByName(e,{url:t,resourceType:"stylesheet"})}loadScript(e,t,o){return this.loadResourceByName(e,{strategy:o,url:t,resourceType:"script"})}assetLoadingPromise(e,t=5e3){return new Promise(((o,s)=>{let n=null;const{assetFilesLoader:a}=this.TAEAppConfig,i=a[e];if("loaded"===i.status)return o(!0);i.element||this.loadResourceByName(e);const r=this.TAEAppConfig.assetFilesLoader[e]?.element;r?.addEventListener("load",(()=>{n&&clearTimeout(n),o(!0)})),r?.addEventListener("error",(()=>{n&&clearTimeout(n),s(new Error(`Failed to load asset ${e}`))})),n=setTimeout((()=>{s(new Error(`Timeout loading asset ${e}`))}),t)}))}get extendAppConfig(){return{themeCssLoaded:!1,settingsCSSLoaded:!1,assetFilesLoader:{themeCSS:{type:"stylesheet",element:null,status:"not-initialized",url:null},settingsCSS:{type:"stylesheet",element:null,status:"not-initialized",url:null},rtlCSS:{type:"stylesheet",element:null,status:"not-initialized",url:null},customizedCSS:{type:"stylesheet",element:null,status:"not-initialized",url:null},mainScript:{type:"script",element:null,status:"not-initialized",url:null},customizedScript:{type:"script",element:null,status:"not-initialized",url:null}}}}};U.moduleName="AssetFilesLoader";var H=class extends x{setQueryParams(e){const{b2b:t}=this.TAEAppConfig;if(!t.enabled)return;e.set("company_location_id",`${t.current_company_id}_${t.current_location_id}`);const o=window.Shopify?.currency;o&&(e.set("currency",o.active),e.set("currency_rate",o.rate.toString()))}get extendAppConfig(){return{b2b:Object.assign({enabled:!1},{})}}};H.moduleName="B2B";var Z=class e extends x{get extendAppConfig(){return{fallback:{containerElement:".boost-sd__filter-product-list",themeCssUrl:"https://cdn.boostcommerce.io/widget-integration/theme/default/1.0.1/main.css",settingsCssUrl:"https://boost-cdn-staging.bc-solutions.net/widget-integration/theme/default/staging/default-settings.css"}}}dispatchEvent(){const t=new CustomEvent(e.EVENT_NAME);window.dispatchEvent(t)}async loadFallbackSectionFromShopify(e){return fetch(e.url||`${window.location.origin}/?section_id=${e.sectionName}`).catch((e=>{throw this.TAEApp.logger.error("Error loading fallback section from Shopify:",e),e})).then((e=>e.text()))}get containerElement(){const{containerElement:e}=this.TAEAppConfig.fallback;return e instanceof HTMLElement?e:document.querySelector(e)}async loadFilterProductFallback(){const{fallback:e,cdn:t="https://boost-cdn-prod.bc-solutions.net",templateMetadata:o}=this.TAEAppConfig,s=e?.customizedTemplate||o.customizedFallback;if(s){const{source:e,templateName:t,templateURL:o}=s;if("Shopify"===e){if(!t&&!o)return void this.TAEApp.logger.warn("Both templateName and templateURL are undefined");const e=await this.loadFallbackSectionFromShopify({sectionName:t,url:o}),s=this.containerElement;return s?(s.innerHTML=e,void this.dispatchEvent()):void this.TAEApp.logger.warn("Container element not found for fallback template")}return void this.TAEApp.logger.warn(`Unsupported source for customized template: ${e}`)}const n=document.createElement("script");n.src=`${t}/fallback-theme/1.0.12/boost-sd-fallback-theme.js`,n.defer=!0,n.onload=()=>{this.dispatchEvent()},document.body.appendChild(n)}};Z.moduleName="Fallback",Z.EVENT_NAME="boost-sd-enable-product-filter-fallback";var $=Z,Y=class extends x{constructor(){super(...arguments),this.ensurePlaceholder=()=>{const{simplifiedIntegration:{enabled:e,selectedSelector:t}}=this.TAEAppConfig;if(e&&t){const e=document.querySelector(t);this.TAEApp.logger.info("Placeholder container found: ",e),e&&e instanceof HTMLElement?(this.renderPlaceholder(e),this.collectionFilterModule?.initBlock()):this.TAEApp.logger.error(`Placeholder container not found: ${t}. Please update the selector in Boost's app embed`)}else this.oldldSICollectionFilterContainerDetected()||this.backwardCompatibilityModule?.legacyUpdateAppStatus("ready")}}get collectionFilterModule(){return this.TAEApp.getModule(Q)}get backwardCompatibilityModule(){return this.TAEApp.getModule(X)}get extendAppConfig(){return{simplifiedIntegration:{enabled:!1,collectionPage:!1,instantSearch:!1,productListSelector:{collectionPage:[],searchPage:[]},selectedSelector:"",selectorFromMetafield:"",selectorFromAppEmbed:"",allSyncedCollections:{syncedCollections:[292335026356,301731119284,291660267700,294626427060,291660366004]}||{syncedCollections:[]},placeholderAdded:!1,placeholder:'\x3c!-- TEMPLATE PLACEHOLDER --\x3e\n
\n
\n
\n \x3c!-- TEMPLATE FILTER TREE PLACEHOLDER --\x3e\n
\n
\n
\n
\n \n \n \n \n
\n
\n \n \n \n \n
\n
\n \n \n \n \n
\n
\n \n \n \n \n
\n
\n \n \n \n \n
\n
\n
\n
\n
\n
\n \x3c!-- TEMPLATE TOOLBAR PLACEHOLDER--\x3e\n
\n
\n
\n
\n \n \n \n
\n
\n
\n
\n \x3c!-- TEMPLATE PRODUCT LIST PLACEHOLDER--\x3e\n
\n
\n \n \n \n \n
\n
\n \n \n \n \n
\n
\n \n \n \n \n
\n
\n \n \n \n \n
\n
\n \n \n \n \n
\n
\n \n \n \n \n
\n
\n \n \n \n \n
\n
\n \n \n \n \n
\n
\n \n \n \n \n
\n
\n \n \n \n \n
\n
\n \n \n \n \n
\n
\n \n \n \n \n
\n
\n \n \n \n \n
\n
\n \n \n \n \n
\n
\n \n \n \n \n
\n
\n \n \n \n \n
\n
\n \n \n \n \n
\n
\n \n \n \n \n
\n
\n \n \n \n \n
\n
\n \n \n \n \n
\n
\n \n \n \n \n
\n
\n \n \n \n \n
\n
\n \n \n \n \n
\n
\n \n \n \n \n
\n
\n \n \n \n \n
\n
\n \n \n \n \n
\n
\n \n \n \n \n
\n
\n \n \n \n \n
\n
\n \n \n \n \n
\n
\n \n \n \n \n
\n
\n \n \n \n \n
\n
\n \n \n \n \n
\n
\n \n \n \n \n
\n
\n \n \n \n \n
\n
\n \n \n \n \n
\n
\n \n \n \n \n
\n
\n \n \n \n \n
\n
\n \n \n \n \n
\n
\n \n \n \n \n
\n
\n \n \n \n \n
\n
\n \n \n \n \n
\n
\n \n \n \n \n
\n
\n \n \n \n \n
\n
\n \n \n \n \n
\n
\n \n \n \n \n
\n
\n \n \n \n \n
\n
\n \n \n \n \n
\n
\n \n \n \n \n
\n
\n
\n \n
\n
\n
\n
\n',isOnboarding:JSON.parse("false"),neededToHideElements:[]}}}init(){const e=this.TAEApp,t=this.TAEAppConfig.simplifiedIntegration,{templateMetadata:{integratedTheme:o={}}}=this.TAEAppConfig,s=window.Shopify?.theme?.id;if(!s)return void e.logger.warn("Theme ID is missing");const n=o[s];if(!n||0===Object.keys(n).length)return void e.logger.warn("Theme is not integrated with SimplifiedIntegration flow");const{collectionPage:a=!1,searchPage:i=!1,instantSearch:r=!1,productListSelector:l={}}=n,{page:d,collection_id:c=0}=this.TAEAppConfig.generalSettings,p="collection"===d,u="search"===d;if(!t.isOnboarding||this.checkSyncedCollection(c)){if(p&&a||u&&i){const{collectionPage:e=[],searchPage:o=[]}=l,s=p?e:o;if(0===s.length)return void this.app.logger.warn("empty selectors");const a=s.slice(0,-1),i=s[s.length-1],r=t.selectorFromAppEmbed||i;if(t.neededToHideElements=a,t.selectorFromMetafield=i,t.selectedSelector=r,r){const e=setInterval((()=>{const t=document.querySelector(r);t&&(this.renderPlaceholder(t),clearInterval(e))}),50)}this.TAEApp.updateConfig({simplifiedIntegration:{...t,...n,enabled:!0}})}r&&this.setupISW()}}onAppStart(){document.addEventListener("DOMContentLoaded",(()=>{this.ensurePlaceholder()}))}oldldSICollectionFilterContainerDetected(){return!!document.querySelector(".boost-sd__filter-product-list")}checkSyncedCollection(e){const{simplifiedIntegration:t}=this.TAEAppConfig,{allSyncedCollections:{syncedCollections:o}}=t,s=o?.includes(e);return!!(s||0===e&&o?.length>0)||(this.TAEApp.logger.warn("collection not synced -> fallback original theme"),!1)}renderPlaceholder(e){const{simplifiedIntegration:t}=this.TAEAppConfig,o=t?.placeholder||"",s=t?.placeholderAdded||!1,n=t?.neededToHideElements||[],a=t?.selectedSelector||"";if(s)return void this.TAEApp.logger.warn("placeholder already added");e.style.display="none",this.hideNeededElements();const i=document.createElement("div");i.innerHTML=o||"",i.className="boost-sd__filter-product-list boost-sd__placeholder-product-filter-tree",e.insertAdjacentElement("afterend",i),t&&(t.placeholderAdded=!0,n&&a&&n.push(a))}hideNeededElements(){const{simplifiedIntegration:{neededToHideElements:e}}=this.TAEAppConfig;e&&e.length>0&&this.hideElements(e)}removePlaceholder(){const{simplifiedIntegration:{placeholderAdded:e}}=this.TAEAppConfig;if(e){const e=document.querySelector(".boost-sd__placeholder-product-filter-tree");e instanceof HTMLElement&&e.remove()}}hideElements(e){Array.isArray(e)&&e.forEach((e=>{const t=document.querySelector(e);t instanceof HTMLElement&&(t.style.display="none")}))}setupISW(){this.TAEApp.updateConfig({taeSettings:{instantSearch:{enabled:!0}}})}};Y.moduleName="SimplifiedIntegration";var Q=class extends x{constructor(){super(...arguments),this.initBlock=async()=>{const e=document.querySelector(".boost-sd__filter-product-list:not(.boost-sd__filter-product-list--ready)");if(!e)return this.app.logger.error("Filter DOM not found"),void this.backwardCompatibilityV1Module?.legacyUpdateAppStatus("ready");const t=this.TAEAppConfig,{customization:o}=t;"function"==typeof o?.filter?.beforeRender&&o.filter.beforeRender();const s=`${this.widgetId}-${A()}`;e?.classList?.add("boost-sd__filter-product-list--ready"),e.id=s;const n=this.prepareFilterAPIQueryParams(),a=await this.filterAPI(n),i={id:s,document:e,widgetId:this.widgetId,defaultSort:n.get("sort")||"",defaultParams:this.filterAPIDefaultParams,filterTree:{options:[]},dynamicBundles:[]},r=this.backwardCompatibilityV1Module;r?.legacyAssignDefaultBlockAttributes(i,e,"filter");const{html:l,bundles:d}=a;d&&(i.dynamicBundles=d),a.filter&&(a.filter.options=this.updateValuesOptions(a.filter.options),i.filterTree=a.filter);try{await Promise.all([this.assetFileLoaderModule?.assetLoadingPromise("themeCSS"),this.assetFileLoaderModule?.assetLoadingPromise("settingsCSS")])}catch{}l&&(e.innerHTML=l),i.cache={[n.toString()]:{...a,timestamp:(new Date).getTime()}},this.TAEApp.registerBlock(i),this.saveFilterAPIResponseAnalyticData(a?.meta?.rid,a.bundles),this.syncAppConfigWithFilterAPIResponse(a),this.block=i,this.backwardCompatibilityV1Module?.legacyUpdateAppStatus("ready")}}get backwardCompatibilityV1Module(){return this.TAEApp.getModule(X)}get b2bModule(){return this.TAEApp.getModule(H)}get fallbackModule(){return this.TAEApp.getModule($)}get simplifiedIntegrationModule(){return this.TAEApp.getModule(Y)}get analyticModule(){return this.TAEApp.getModule(q)}get assetFileLoaderModule(){return this.TAEApp.getModule(U)}get extendAppConfig(){return{filterUrl:"https://services.mybcapps.com/bc-sf-filter/filter",filterSettings:Object.assign({swatch_extension:"png"},{showFilterOptionCount:!0,showRefineBy:!1,showOutOfStockOption:!1,showSingleOption:!1,keepToggleState:!0,showLoading:!0,activeScrollToTop:!1,productAndVariantAvailable:!1,availableAfterFiltering:!1,filterLayout:"vertical",filterTreeMobileStyle:"style3",filterTreeVerticalStyle:"style-off-canvas",filterTreeHorizontalStyle:"style1",stickyFilterOnDesktop:!1,stickyFilterOnMobile:!1,changeMobileButtonLabel:!1,sortingAvailableFirst:!1,showVariantImageBasedOnSelectedFilter:"",isShortenUrlParam:!1,style:{filterTitleTextColor:"",filterTitleFontSize:"",filterTitleFontWeight:"",filterTitleFontTransform:"",filterTitleFontFamily:"",filterOptionTextColor:"",filterOptionFontSize:"",filterOptionFontFamily:"",filterMobileButtonTextColor:"",filterMobileButtonFontSize:"",filterMobileButtonFontWeight:"",filterMobileButtonFontTransform:"",filterMobileButtonFontFamily:"",filterMobileButtonBackgroundColor:""}})}}get apiEndpoint(){const{filterUrl:e,searchUrl:t}=this.app.config,o=new URLSearchParams(window.location.search).get("q");return V()||o?t:e}get widgetId(){const{templateMetadata:e,generalSettings:t}=this.TAEAppConfig;return e["collection"===(t?.page||"collection")?"collectionFilters":"searchPage"]||"default"}get filterAPIDefaultParams(){const{shop:e,templateSettings:t,templateMetadata:o,generalSettings:s,templateId:n,simplifiedIntegration:a}=this.TAEAppConfig,i=this.getHistoryParams(),r=t?.themeSettings?.productList?.productsPerPage||16,l=this.widgetId,d=k(),c=window.innerWidth,p="vertical"===t?.filterSettings?.filterLayout&&"style-default"===t?.filterSettings?.filterTreeVerticalStyle,u=d?t?.themeSettings?.productList?.productsPerRowOnMobile||2:t?.themeSettings?.productList?.productsPerRowOnDesktop||3,b=d?c/u:c/(u+(p?1:0)),m=function(){let e="";return k()?e+="mobile|":e=e.replace("mobile|",""),window.innerWidth<991?e+="tablet_portrait_max":e=e.replace("tablet_portrait_max",""),e}();return{_:"pf",t:Date.now().toString(),sid:A(),shop:e.domain,page:Number(i?.page||1),limit:r,sort:i?.sort||L(),locale:s.current_locale,event_type:"init",pg:W(),build_filter_tree:!0,collection_scope:s.collection_id||"0",money_format:e.money_format,money_format_with_currency:e.money_format_with_currency,widgetId:l,viewAs:`grid--${k()?t?.themeSettings?.productList?.productsPerRowOnMobile||2:t?.themeSettings?.productList?.productsPerRowOnDesktop||3}`,device:m,first_load:!0,productImageWidth:I(b),productPerRow:u,widget_updated_at:o?.updatedAt,templateId:n,current_locale:(window?.Shopify?.routes?.root||"/")?.replace(/\/$/,""),simplifiedIntegration:a.enabled||!1,customer_id:window?.__st?.cid||window?.meta?.page?.customerId||window?.ShopifyAnalytics?.meta?.page?.customerId||window?.ShopifyAnalytics?.lib?.user?.()?.traits()?.uniqToken,...F()}}syncAppConfigWithFilterAPIResponse(e){const{shop:t}=this.TAEAppConfig;e.meta?.money_format&&(t.money_format=e.meta.money_format),e.meta?.money_format_with_currency&&(t.money_format_with_currency=e.meta.money_format_with_currency),e.meta?.currency&&(t.currency=e.meta.currency),this.app.updateConfig({shop:t}),this.backwardCompatibilityV1Module?.legacyUpdateAppStatus("ready")}prepareFilterAPIQueryParams(){const{generalSettings:e,filterSettings:t,customization:o}=this.TAEAppConfig,s=this.getHistoryParams(),n=this.filterAPIDefaultParams,a=new URLSearchParams;Object.entries(n).forEach((([e,t])=>{a.set(e,void 0!==t?t.toString():"")})),a.set("search_no_result",0===Object.keys(s?.paramMap||{}).length?"true":"false"),s?.paramMap&&Object.keys(s.paramMap).forEach((e=>{s.paramMap[e].forEach((t=>a.append(`${e}[]`,e.startsWith(`${n._}_st_`)?function(e){return"string"==typeof e?"out-of-stock"!==e:!!Array.isArray(e)&&e.map((e=>"out-of-stock"!==e))}(t).toString():t)))}));const i=new URLSearchParams(window.location.search).get("q");i&&(window.location.pathname.indexOf("/collections/vendors")>-1?a.set("vendor",i):window.location.pathname.indexOf("/collections/types")>-1?a.set("product_type",i):a.set("q",i),R()&&(a.set("incollection_search","true"),a.set("event_type","incollection_search")),this.setSearchQueryParamsWithSuggetion(a)),e.collection_tags?.length&&e.collection_tags.forEach((e=>{a.append("tag[]",e)})),t.sortingAvailableFirst&&a.set("sort_first","available");const r=t?.availableAfterFiltering,l=t?.productAndVariantAvailable,d=Array.from(a.keys()).some((e=>e.startsWith("pf_"))),c=!r&&l||r&&d?"true":"false";if(a.set("product_available",c),a.set("variant_available",c),this.b2bModule?.setQueryParams(a),o?.filter?.customizedAPIParams){const{customizedAPIParams:e}=o.filter;Object.entries(e).forEach((([e,t])=>{a.set(e,t)}))}return a}setSearchQueryParamsWithSuggetion(e){const t="boostSDSuggestionData",o="boostSDClickSuggestionTerm",s=E(o);if(!s)return;const n=E(t);n&&(e.set("query",n.query),e.set("parent_request_id",n.id),e.set("suggestion",s),e.set("item_rank",(n.suggestions.findIndex((e=>e===s))+1).toString()),z(o),z(t))}saveFilterAPIResponseAnalyticData(e,t){const o=V()?"search":"filter",s=this.analyticModule;e&&(s?.saveRequestId(o,e),t&&s?.saveRequestId(o,e,t)),s?.savePreAction(o)}formatPercentSaleLabel(e,t=0){let o="";return o=t?e?`${t}% - ${e}%`:`above ${t}%`:`under ${e}%`,o}updateValuesOptions(e){return Array.isArray(e)?e.map((e=>("percent_sale"===e.filterType&&(e.values=e.values?.map((e=>(e.key=e.key.replace("*-",":").replace("-*",":").replace("-",":"),e.label=this.formatPercentSaleLabel(e.to,e.from),e)))),e))):e}async filterAPI(e){const t=this.TAEAppConfig,o=e.toString(),s=await fetch(`${this.apiEndpoint}?${o}`,{method:"GET"});if([404,413,403,500].includes(s.status))if(t.simplifiedIntegration?.enabled){const e=this.simplifiedIntegrationModule;e?.hideNeededElements(),e?.removePlaceholder()}else this.fallbackModule?.loadFilterProductFallback();return s.json()}getHistoryParams(){const e=new URL(window.location.href),t=(e=>{try{e||(e=(()=>{const e=window.location.href.replace(/%3C/g,"<").replace(/%3E/g,">"),t=[];for(let o=0;o1&&(s=n.split("?")[1],s.length>0&&(s="?"+s)),{pathname:window.location.pathname,href:o,search:s}})().search);const t="string"==typeof e?e:e.toString(),o=decodeURIComponent(t).split("&");let s=!1;if(o.length>0)for(let e=0;edecodeURIComponent(e.replace(/\+/g," "))))}else t=s.getAll(e);n.startsWith("pf_")&&!i[n]&&("pf_tag"===n?i.tag=t:i[n]=t)}return{paramMap:i,sort:n,page:a}}};Q.moduleName="CollectionFilter";var X=class extends x{shouldInit(){const{templateMetadata:{themeLibVersion:e}={}}=this.TAEAppConfig;if(!e)return!0;const t=e.split(".")[0];return Number(t)<=1}get collectionFilterModule(){return this.TAEApp.getModule(Q)}init(){window.boostSDTaeUtils={lazyLoadImages:O,inViewPortHandler:D,initCollectionFilter:()=>{setTimeout((()=>{this.collectionFilterModule?.initBlock()}))}}}onAppStart(){const e=this.TAEApp,{env:t}=this.TAEAppConfig,o={...this.TAEAppConfig.customization?.filter?.customizedAPIParams||{},...window.boostSdCustomParams||{}};this.TAEApp.updateConfig((e=>(e.customization={...e.customization,filter:{...e.customization?.filter,customizedAPIParams:o}},e))),window.boostSdCustomParams=o,Object.assign(window.boostWidgetIntegration,{generalSettings:{...this.TAEAppConfig.generalSettings,templateId:this.TAEAppConfig.templateId},simplifiedIntegration:this.TAEAppConfig.simplifiedIntegration,taeSettings:this.TAEAppConfig.taeSettings,env:t,app:{[t]:{customization:{},...this.TAEAppConfig,...window.boostWidgetIntegration.app?.[t]}},customization:{...this.TAEAppConfig.customization,filter:{...this.TAEAppConfig.customization?.filter,customizedAPIParams:o}},regisCustomization:function(o,s){if("function"==typeof o&&o.name&&!s){const e=o.name;window.boostWidgetIntegration.app[t].customization[e]=o}else if("function"==typeof o&&o.name&&s){window.boostWidgetIntegration.app[t].customization[s]=window.boostWidgetIntegration.app[t].customization[s]||{};const e=o.name;window.boostWidgetIntegration.app[t].customization[s][e]=o}else e.logger.error("Invalid function or function does not have a name.")}}),Object.assign(window,{boostSDData:this.TAEAppDataObjects})}onBeforeAppStart(){Object.assign(window,{boostWidgetIntegration:{...window.boostWidgetIntegration,status:"initializing"}})}legacyUpdateAppStatus(e){Object.assign(window.boostWidgetIntegration,{status:e})}legacyIsUsingRecommendationAppV3(){return"installed"===window.boostSDAppConfig?.themeInfo?.taeFeatures?.recommendation}legacyInitRecommendationWidgets(e){window.boostWidgetIntegration.app[this.TAEAppConfig.env].recommendationWidgets=e}legacyAssignDefaultBlockAttributes(e,t,o){const{templateSettings:s}=this.app.config;Object.assign(e,{widgetInfo:s,templateSettings:s,app:window.boostWidgetIntegration.app?.[this.app.config.env],document:t,id:t.id||e.id,blockType:o||"filter"}),"widgetId"in e||Object.assign(e,{widgetId:t.id||e.id})}};X.moduleName="BackwardCompatibilityV1";var G=class extends x{constructor(){super(...arguments),this.initBlock=()=>{const e=document.createElement("div");e.id="bc-bis",e.className="boost-sd__bis",e.style.display="none",document.body.appendChild(e),this.block={id:"bc-bis",document:e},this.backwardCompatibilityV1Module?.legacyAssignDefaultBlockAttributes(this.block,e,"backInStock"),this.TAEApp.registerBlock(this.block)}}get extendAppConfig(){return{klaviyoBISUrl:"https://a.klaviyo.com/client/back-in-stock-subscriptions",backInStock:Object.assign({enabled:!1,productSettings:{},displaySettings:{},isTurbo:!1})}}get backwardCompatibilityV1Module(){return this.TAEApp.getModule(X)}onModuleInit(){document.addEventListener("DOMContentLoaded",this.initBlock)}onModuleDestroy(){document.removeEventListener("DOMContentLoaded",this.initBlock)}};G.moduleName="BackInStock";var K=class extends x{constructor(){super(...arguments),this.initBlock=()=>{this.block={id:"cart",document:document.body},this.backwardCompatibilityModule?.legacyAssignDefaultBlockAttributes(this.block,this.block.document,"cart"),this.TAEApp.registerBlock(this.block)}}get backwardCompatibilityModule(){return this.TAEApp.getModule(X)}onModuleInit(){document.addEventListener("DOMContentLoaded",this.initBlock)}onMouduleDestroy(){document.removeEventListener("DOMContentLoaded",this.initBlock)}};K.moduleName="Cart";var J=class extends x{constructor(){super(...arguments),this.initBlock=()=>{const e=document.querySelector(".boost-sd__preOrder-container"),{customization:t,template:o}=this.TAEAppConfig;"function"==typeof t?.preOrder?.beforeRender&&t.preOrder.beforeRender(),e&&("string"==typeof o?.preOrderPlaceholder&&(e.innerHTML=o.preOrderPlaceholder),this.block={id:e.id||"bc-pre-order",document:e},this.backwardCompatibilityV1Module?.legacyAssignDefaultBlockAttributes(this.block,e,"preOrder"),this.TAEApp.registerBlock(this.block))}}get extendAppConfig(){return{customization:{preOrder:{}}}}get backwardCompatibilityV1Module(){return this.TAEApp.getModule(X)}onModuleInit(){document.addEventListener("DOMContentLoaded",this.initBlock)}onModuleDestroy(){document.removeEventListener("DOMContentLoaded",this.initBlock)}};J.moduleName="PreOrder";var ee=class extends x{constructor(){super(...arguments),this.initBlock=()=>{const e=document.querySelector(".boost-sd-widget-predictive-bundle");e&&(this.block={id:e.id||"bc-predictive-bundle",document:e},this.backwardCompatibilityV1Module?.legacyAssignDefaultBlockAttributes(this.block,e,"predictiveBundle"),this.TAEApp.registerBlock(this.block))}}get backwardCompatibilityV1Module(){return this.TAEApp.getModule(X)}onModuleInit(){document.addEventListener("DOMContentLoaded",this.initBlock)}onModuleDestroy(){document.removeEventListener("DOMContentLoaded",this.initBlock)}};ee.moduleName="PredictiveBundle";var te=class extends x{constructor(){super(...arguments),this.blocks={},this.initBlocks=()=>{if(this.backwardCompatibilityV1Module?.legacyIsUsingRecommendationAppV3())return void this.backwardCompatibilityV1Module?.legacyInitRecommendationWidgets({});const{recommendationWidgets:e}=this.TAEAppConfig;this.backwardCompatibilityV1Module?.legacyInitRecommendationWidgets(e);const t=document.querySelectorAll('[id^="boost-sd-widget-"]');for(const e of t)e.innerHTML='\x3c!-- TEMPLATE RECOMMENDATION PLACEHOLDER--\x3e\n
',cart:"\x3c!-- TEMPLATE CART --\x3e\n\x3c!-- This Template contains a few variables built from the client js side --\x3e\n{% assign currentLocale = '' %}\n{% if locale != \"\" or locale != null %}\n{% assign currentLocale = locale %}\n{% endif %}",refineBy:"\x3c!-- TEMPLATE REFINE BY --\x3e\n
\n {% for refineByOption in refineBy.options %}\n \n {% endfor %}\n
\n
",filterOptionBoxItem:"\x3c!-- This Template contains a few variables built from the client js side --\x3e\n{% if request.previewMode == true %}\n
\n \n
\n{% else %}\n
\n \n
\n{% endif %}",filterOptionListItem:'\x3c!-- This Template contains a few variables built from the client js side --\x3e\n{% if request.previewMode == true %}\n
\n \n
\n{% else %}\n
\n \n
\n{% endif %}',filterOptionSwatchItem:"\x3c!-- This Template contains a few variables built from the client js side --\x3e\n{% assign swatchListStyle = option.swatchStyle == 'circle-list' or option.swatchStyle == 'square-list' %}\n{% if request.previewMode == true %}\n{% assign swatchTyleClass = \"\" %}\n{% if swatchListStyle %}\n{% assign swatchTyleClass = \"list\" %}\n{% else %}\n{% assign swatchTyleClass = \"grid\" %}\n{% endif %}\n
\n \n
\n{% else %}\n
\n \n
\n{% endif %}",filterOptionMultiLevelCollectionItem:"\x3c!-- This Template contains a few variables built from the client js side --\x3e\n{% if request.previewMode == true %}\n
\n{% endif %}",filterOptionMultiLevelTagItem:"\x3c!-- This Template contains a few variables built from the client js side --\x3e\n{% if request.previewMode == true %}\n
\n{% endif %}",filterOptionRatingItem:"\x3c!-- This Template contains a few variables built from the client js side --\x3e\n{% if request.previewMode == true %}\n
\n \n
\n{% else %}\n
\n \n
\n{% endif %}",productPrice:'\x3c!-- This Template contains a few variables built from the client js side --\x3e\n{% assign removePriceDecimal = false -%}\n{% assign decimalDelimiter = \'\' -%}\n{% assign withoutTrailingZeros = true -%}\n{% assign showCentAsSuperscript = false -%}\n{% assign moneyFormat = request.money_format | strip_html -%}\n{% assign showSavingDisplay = false -%}\n{% assign minPrice = product.price_min | times: 1.0 -%}\n{% assign maxPrice = 0 -%}\n{% if product.price_max -%}\n{% assign maxPrice = product.price_max | times: 1.0 -%}\n{% endif -%}\n\x3c!-- convert variable compareAtPriceMin to number --\x3e\n{% assign compareAtPriceMin = 0 -%}\n{% if product.compare_at_price_min -%}\n{% assign compareAtPriceMin = product.compare_at_price_min | times: 1.0 -%}\n{% endif -%}\n\x3c!-- Check if enable variant showing as an individual product --\x3e\n{% if product.variant_id != "" and product.variant_id != blank -%}\n{% assign currentVariantId = product.variant_id | times: 1 -%}\n{% for variant in product.variants -%}\n{% if variant.id == currentVariantId -%}\n{% assign minPrice = variant.price | times: 1.0 -%}\n{% assign maxPrice = variant.price | times: 1.0 -%}\n{% if variant.compare_at_price and variant.compare_at_price != "0.0" -%}\n{% assign compareAtPriceMin = variant.compare_at_price | times: 1.0 -%}\n{% endif -%}\n{% break -%}\n{% endif -%}\n{% endfor -%}\n{% endif -%}\n{% assign isSale = false -%}\n{% assign salePercent = 0 -%}\n{% assign saleAmount = 0 -%}\n{% if compareAtPriceMin > minPrice -%}\n{% assign isSale = true -%}\n{% endif -%}\n{% assign compareAtPriceWithFormat = \'\' -%}\n{% unless compareAtPriceMin == null or compareAtPriceMin == 0 or isSale == false -%}\n\x3c!-- calculate salePercent base on compareAtPriceMin and minPrice --\x3e\n{% assign compare = compareAtPriceMin | minus: minPrice | times: 100 -%}\n{% assign salePercent = compare | divided_by: compareAtPriceMin | ceil | append: \'%\' -%}\n\x3c!-- compareAtPriceWithFormat is compare price with PriceMin and format currency --\x3e\n{% assign compareAtPriceWithFormat = compareAtPriceMin | format_currency: moneyFormat, showCentAsSuperscript, removePriceDecimal, decimalDelimiter, withoutTrailingZeros -%}\n{% assign saleAmount = compareAtPriceMin | minus: minPrice -%}\n{% endunless -%}\n\x3c!-- Format price min --\x3e\n{% assign priceMinWithFormat = minPrice | format_currency: moneyFormat, showCentAsSuperscript, removePriceDecimal , decimalDelimiter, withoutTrailingZeros -%}\n\x3c!-- Format price max --\x3e\n{% assign priceMaxWithFormat = \'\' -%}\n{% if product.price_max and maxPrice > minPrice -%}\n{% assign priceMaxWithFormat = maxPrice | format_currency: moneyFormat, showCentAsSuperscript, removePriceDecimal , decimalDelimiter, withoutTrailingZeros -%}\n{% endif -%}\n\x3c!-- priceMax used for multi variant price display where it can have min-max price with format and translation --\x3e\n{% assign hasMultiVariantPrice = false -%}\n{% if translations.productItem.amount contains "minPrice" -%}\n{% assign hasMultiVariantPrice = true -%}\n{% endif -%}\n{% assign isSamePrice = true -%}\n{% if minPrice != maxPrice or product.compare_at_price_min != product.compare_at_price_max -%}\n{% assign isSamePrice = false -%}\n{% endif -%}\n{% assign priceValueWithFormat = priceMinWithFormat -%}\n{% if isSamePrice == false and maxPrice > minPrice and hasMultiVariantPrice -%}\n{% assign priceValueWithFormat = "productItem.amount" | translate: translations, "" | replace: \'{{minPrice}}\', priceMinWithFormat | replace: \'{{maxPrice}}\', priceMaxWithFormat -%}\n{% endif -%}\n{% assign savingPriceWithFormat = \'\' -%}\n{% unless showSavingDisplay == false or saleAmount == 0 -%}\n{% assign saleAmountWithFormat = saleAmount | format_currency: moneyFormat, showCentAsSuperscript, removePriceDecimal, decimalDelimiter, withoutTrailingZeros -%}\n{% assign savingPriceWithFormat = "productItem.savingAmount" | translate: translations, "Save {{saleAmount}}" | replace: \'{{saleAmount}}\', saleAmountWithFormat | replace: \'{{salePercent}}\', salePercent -%}\n{% endunless -%}\n\x3c!-- Price compare display top or bottom --\x3e\n\x3c!-- Price compare display left or right --\x3e\n
\n \n {% if isSale %}\n Regular price {{ compareAtPriceWithFormat }}, now on sale for {{ priceValueWithFormat }}{% if savingPriceWithFormat != \'\' %}, saving {{ savingPriceWithFormat }}{% endif %}\n {% else %}\n Regular price {{ priceValueWithFormat }}\n {% endif %}\n \n \n \n {{ priceValueWithFormat }}\n \n {% if compareAtPriceWithFormat != \'\' -%}\n \n {{ compareAtPriceWithFormat }}\n \n {% endif -%}\n \n {% if savingPriceWithFormat != \'\' -%}\n \n {{ savingPriceWithFormat }}\n \n {% endif -%}\n
\n \n We will notify you when the item is available\n
'},templateSettings:{appPreferenceSettings:{watermark:!1},preOrderSettings:{buttonText:"Pre-order",deliveryText:"This is a pre-order. Items will ship based on the estimated delivery date.",showDeliveryText:!1},generalSettings:{addCollectionToProductUrl:!1,breakpointmobile:"575px",breakpointtabletportraitmin:"576px",breakpointtabletportraitmax:"991px",breakpointtabletlandscapetmin:"992px",breakpointtabletlandscapemax:"1199px",breakpointdesktop:"1200px"},searchSettings:{searchPanelBlocks:{searchTermSuggestions:{label:"Check out some of these popular searches",searchTermList:[],backup:[],type:"based_on_data",active:!1},mostPopularProducts:{label:"Trending products",productList:[],backup:[],type:"based_on_data",active:!1},products:{label:"Products",pageSize:25,active:!0,displayImage:!0},collections:{label:"Collections",pageSize:25,active:!1,displayImage:!1,displayDescription:!1,excludedValues:[]},pages:{label:"Blogs & Pages",pageSize:25,active:!1,displayImage:!1,displayExcerpt:!1},searchEmptyResultMessages:{active:!0,label:"We are sorry! We couldn't find results for \"{{ terms }}\".{{ breakline }}But don't give up – check the spelling or try less specific search terms."},searchTips:{label:"Search tips",active:!1,searchTips:"Please double-check your spelling.{{ breakline }}Use more generic search terms.{{ breakline }}Enter fewer keywords.{{ breakline }}Try searching by product type, brand, model number or product feature."}},suggestionNoResult:{search_terms:{label:"Check out some of these popular searches",status:!1,data:[],type:"based_on_data",backup:[]},products:{label:"Trending products",status:!1,data:[],type:"based_on_data",backup:[]}},enableInstantSearch:!0,productAvailable:!1,showSuggestionProductImage:!0,showSuggestionProductPrice:!0,showSuggestionProductSalePrice:!0,showSuggestionProductSku:!0,showSuggestionProductVendor:!0,suggestionBlocks:[{type:"suggestions",label:"Popular suggestions",status:"active",number:5},{type:"collections",label:"Collections",status:"active",number:3},{type:"products",label:"Products",status:"active",number:6},{type:"pages",label:"Pages",status:"active",number:3}],searchBoxOnclick:{recentSearch:{label:"Recent searches",status:!1,number:"3"},searchTermSuggestion:{label:"Popular searches",status:!1,data:[],backup:[],type:"manually"},productSuggestion:{label:"Trending products",status:!1,data:[],backup:[],type:"manually"}},suggestionStyle:"style2",suggestionStyle1ProductItemType:"list",suggestionStyle1ProductPosition:"none",suggestionStyle1ProductPerRow:"1",suggestionStyle2ProductItemType:"list",suggestionStyle2ProductPosition:"right",suggestionStyle2ProductPerRow:"2",suggestionStyle3ProductItemType:"list",suggestionStyle3ProductPosition:"right",suggestionStyle3ProductPerRow:"3"},filterSettings:{showFilterOptionCount:!0,showRefineBy:!1,showOutOfStockOption:!1,showSingleOption:!1,keepToggleState:!0,changeMobileButtonLabel:!1,sortingAvailableFirst:!1,showLoading:!0,activeScrollToTop:!1,showVariantImageBasedOnSelectedFilter:"",productAndVariantAvailable:!1,availableAfterFiltering:!1,isShortenUrlParam:!1,filterTreeMobileStyle:"style3",filterTreeVerticalStyle:"style-off-canvas",filterTreeHorizontalStyle:"style1",stickyFilterOnDesktop:!1,stickyFilterOnMobile:!1,style:{filterTitleTextColor:"#222222",filterTitleFontSize:15.4,filterTitleFontWeight:400,filterTitleFontTransform:"none",filterTitleFontFamily:"Roboto",filterOptionTextColor:"#222222",filterOptionFontSize:15.4,filterOptionFontFamily:"Roboto"},filterLayout:"vertical"},additionalElementSettings:{customSortingList:"best-selling|number-extra-sort1-descending|price-ascending|price-descending|created-descending|created-ascending|relevance|manual",enableCollectionSearch:!1},themeSettings:{productItems:{general:{borderLayout:"noBorder",subLayout:"subLayout_2_2",backgroundColor:"#FBFBFB",backgroundColorOnHover:"#FBFBFB",borderColor:"#cccccc",borderColorOnHover:"#cccccc"},productImg:{elements:{productSaleLabel:{shape:"rectangle",displayType:"text",displayOptions:"always",color:"#FFFFFF",backgroundColor:"#DD3300",fontSizeScale:100,fontSize:"inherit",fontSizeTabletPortrait:"inherit",fontSizeTabletLandscape:"inherit",fontSizeMobile:"inherit",fontFamily:"inherit",fontStyle:"inherit",textTransform:"none",fontWeight:"inherit",isEnable:!0},productSoldOutLabel:{hideOtherLabelsWhenSoldOut:!0,shape:"rectangle",displayType:"text",displayOptions:"always",color:"#FFFFFF",backgroundColor:"#333333",fontSizeScale:100,fontSize:"inherit",fontSizeTabletPortrait:"inherit",fontSizeTabletLandscape:"inherit",fontSizeMobile:"inherit",fontFamily:"inherit",fontStyle:"inherit",textTransform:"none",fontWeight:"inherit",isEnable:!0},productCustomLabelByTag:{shape:"rectangle",color:"#FFFFFF",backgroundColor:"#00A47C",fontSizeScale:100,fontSize:"inherit",fontSizeTabletPortrait:"inherit",fontSizeTabletLandscape:"inherit",fontSizeMobile:"inherit",fontFamily:"inherit",fontStyle:"inherit",textTransform:"none",fontWeight:"inherit",isEnable:!1},selectOptionBtn:{buttonType:"selectOptionBtn",action:"quickAddToCart",isEnable:!1},qvBtn:{buttonType:"qvBtn",isEnable:!1}},grid:{top:{direction:"horizontal",elements:{left:["saleLabel","soldOutLabel","customLabelByTag"]}},bottom:{direction:"horizontal",elements:{left:["selectOptionBtn","qvBtn"]}}},aspectRatioType:"natural",hoverEffect:"reveal-second-image-and-zoom-in"},styleSettings:{selectOptionBtn:{showOnHovering:!0,showOn:"desktopOnly",displayType:"textWithIcon",shape:"rectangle",imgSrc:"https://boost-cdn-prod.bc-solutions.net/icon/add-to-cart-white.svg",iconPosition:"left",fontSize:"inherit",fontSizeTabletPortrait:"inherit",fontSizeTabletLandscape:"inherit",fontSizeMobile:"inherit",buttonStyling:"solid",backgroundColor:"#ee4382",backgroundColorOnHover:"#ee4382",borderColor:"#ee4382",borderColorOnHover:"#ee4382",textColor:"#fbfbfb",textColorOnHover:"#fbfbfb",fontSizeScale:100,fontFamily:"inherit",fontStyle:"inherit",textTransform:"none",fontWeight:"inherit",width:"100%"},qvBtn:{showOnHovering:!0,showOn:"desktopOnly",displayType:"icon",shape:"square",imgSrc:"https://boost-cdn-prod.bc-solutions.net/icon/quick-view.svg",iconPosition:"left",width:"40px",fontSize:"inherit",fontSizeTabletPortrait:"inherit",fontSizeTabletLandscape:"inherit",fontSizeMobile:"inherit",buttonStyling:"outline",backgroundColor:"#FFFFFF",backgroundColorOnHover:"#FFFFFF",borderColor:"#ee4382",borderColorOnHover:"#ee4382",textColor:"#ee4382",textColorOnHover:"#ee4382",fontSizeScale:100,fontFamily:"inherit",fontStyle:"inherit",textTransform:"none",fontWeight:"inherit"}},productInfo:{textAlign:"left",elements:{"swatches.1":{showOptionValueOnHovering:!0,shape:"circle",changeProductImageOn:"hover",isEnable:!1},title:{color:"#222222",fontSizeScale:110,fontSize:14.3,fontSizeTabletPortrait:14.3,fontSizeTabletLandscape:14.3,fontSizeMobile:13.2,fontFamily:"Roboto",fontStyle:"normal",textTransform:"none",isEnable:!0,fontWeight:400},vendor:{color:"#595959",fontSizeScale:110,fontSize:11,fontSizeTabletPortrait:11,fontSizeTabletLandscape:11,fontSizeMobile:11,fontFamily:"Roboto",fontStyle:"normal",textTransform:"none",isEnable:!1,fontWeight:400},price:{showCentAsSuperscript:!1,showCurrencyCodes:!1,compareAtPricePosition:"right",showSavingDisplay:!1,priceColor:"#222222",priceFontSizeScale:110,priceFontFamily:"Roboto",priceFontStyle:"normal",priceFontSize:17.6,priceFontSizeTabletPortrait:17.6,priceFontSizeTabletLandscape:17.6,priceFontSizeMobile:17.6,salePriceColor:"#d54d4d",salePriceFontSizeScale:110,salePriceFontFamily:"Roboto",salePriceFontStyle:"normal",salePriceFontSize:17.6,salePriceFontSizeTabletPortrait:17.6,salePriceFontSizeTabletLandscape:17.6,salePriceFontSizeMobile:17.6,compareAtPriceColor:"#8c8b8b",compareAtPriceFontSizeScale:110,compareAtPriceFontFamily:"Roboto",compareAtPriceFontStyle:"normal",compareAtPriceFontSize:14.3,compareAtPriceFontSizeTabletPortrait:14.3,compareAtPriceFontSizeTabletLandscape:14.3,compareAtPriceFontSizeMobile:14.3,savingDisplayColor:"#DD3300",savingDisplayFontSizeScale:110,savingDisplayFontFamily:"Roboto",savingDisplayFontStyle:"normal",savingDisplayFontSize:17.6,savingDisplayFontSizeTabletPortrait:17.6,savingDisplayFontSizeTabletLandscape:17.6,savingDisplayFontSizeMobile:17.6,isEnable:!0,priceFontWeight:400,salePriceFontWeight:400,compareAtPriceFontWeight:400,savingDisplayFontWeight:400},inventoryStatus:{lowInventoryThreshold:0,fontSizeScale:100,textTransform:"none",inStockColor:"#00A47C",lowStockColor:"#F29100",soldOutColor:"#595959",fontFamily:"inherit",fontStyle:"inherit",fontSize:"inherit",fontSizeTabletPortrait:"inherit",fontSizeTabletLandscape:"inherit",fontSizeMobile:"inherit",isEnable:!1,fontWeight:"inherit"},rating:!0,"swatches.2":{showOptionValueOnHovering:!0,shape:"circle",changeProductImageOn:"hover",isEnable:!1},"swatches.3":{showOptionValueOnHovering:!0,shape:"circle",changeProductImageOn:"hover",isEnable:!1}}}},additionalElements:{pagination:{paginationType:"infinite_scroll",productCount:{showProductCount:!1},button:{shape:"rectangle",color:"#222222",backgroundColor:"#FFFFFF",borderColor:"#222222",textTransform:"none",fontSize:"inherit|14",fontSizeTabletPortrait:"inherit|14",fontSizeTabletLandscape:"inherit|14",fontSizeMobile:"inherit|14",fontFamily:"inherit",fontStyle:"inherit",fontSizeScale:100}},toolbar:{layout:"1_1",filterText:{color:"#222222",fontSizeScale:110,fontFamily:"Roboto",fontStyle:"normal",textTransform:"none",fontSize:15.4,fontSizeTabletPortrait:15.4,fontSizeTabletLandscape:15.4,fontSizeMobile:15.4,fontWeight:400},refineByText:{color:"#222222",fontSizeScale:110,fontFamily:"Roboto",fontStyle:"normal",textTransform:"none",fontSize:15.4,fontSizeTabletPortrait:15.4,fontSizeTabletLandscape:15.4,fontSizeMobile:15.4,fontWeight:400},elements:{viewAs:{fontSizeScale:110,fontSize:15.4,fontSizeTabletPortrait:15.4,fontSizeTabletLandscape:15.4,fontSizeMobile:15.4,color:"#222222",fontFamily:"Roboto",fontStyle:"normal",textTransform:"none",listType:"grid/list",isEnable:!1,fontWeight:400},productCount:{fontSizeScale:110,fontSize:15.4,fontSizeTabletPortrait:15.4,fontSizeTabletLandscape:15.4,fontSizeMobile:15.4,color:"#222222",fontFamily:"Roboto",fontStyle:"normal",textTransform:"none",isEnable:!1,fontWeight:400},showLimitList:{fontSizeScale:110,fontSize:15.4,fontSizeTabletPortrait:15.4,fontSizeTabletLandscape:15.4,fontSizeMobile:15.4,color:"#222222",fontFamily:"Roboto",fontStyle:"normal",textTransform:"none",isEnable:!1,fontWeight:400},sorting:{fontSizeScale:110,fontSize:15.4,fontSizeTabletPortrait:15.4,fontSizeTabletLandscape:15.4,fontSizeMobile:15.4,color:"#222222",fontFamily:"Roboto",fontStyle:"normal",textTransform:"none",isEnable:!0,fontWeight:400}}},collectionHeader:{isEnable:!1,layout:2,contentPosition:"middle-center",elements:{breadCrumb:{showCollectionTitle:!1,showCollectionList:!1,showPagination:!1,placement:"on-top",alignment:"middle-left",fontSizeScale:110,fontFamily:"Roboto",fontStyle:"normal",textTransform:"none",fontSize:15.4,fontSizeTabletPortrait:15.4,fontSizeTabletLandscape:15.4,fontSizeMobile:15.4,color:"#222222",isEnable:!1,fontWeight:400},collectionImage:{size:"medium",parallaxEffect:!1,directionParallax:"vertical",isEnable:!0},collectionTitle:{textAlign:"center",textTransform:"none",fontSizeScale:100,fontSize:40,fontSizeTabletPortrait:40,fontSizeTabletLandscape:40,fontSizeMobile:30,fontFamily:"Roboto",fontStyle:"normal",collectionTitleColor:"#222222",isEnable:!0,fontWeight:100},productCount:{fontSizeScale:110,fontFamily:"Roboto",fontStyle:"normal",textTransform:"none",fontSize:15.4,fontSizeTabletPortrait:15.4,fontSizeTabletLandscape:15.4,fontSizeMobile:15.4,color:"#222222",isEnable:!1,fontWeight:400},collectionDescription:{fontSize:null,fontSizeTabletPortrait:null,fontSizeTabletLandscape:null,fontSizeMobile:null,isEnable:!1}}}},quickView:{showProductImage:!0,thumbnailPosition:"topLeft",isEnableProductVendor:!1,buttonOverall:{shape:"round",fontSizeScale:100,fontSize:"inherit",fontSizeTabletPortrait:"inherit",fontSizeTabletLandscape:"inherit",fontSizeMobile:"inherit",fontFamily:"inherit",fontStyle:"inherit",fontWeight:"inherit"},buyItNowBtn:{enable:!1,color:"#fbfbfb",hoverColor:"#fbfbfb",backgroundColor:"#ee4382",hoverBackgroundColor:"#ee4382",textTransform:"none",borderColor:"#ee4382",hoverBorderColor:"#ee4382"},addToCartBtn:{color:"#ee4382",hoverColor:"#ee4382",backgroundColor:"#FFFFFF",hoverBackgroundColor:"#FFFFFF",borderColor:"#ee4382",hoverBorderColor:"#ee4382",textTransform:"none"}},cart:{enableCart:!1,cartStyle:"side",autoOpenAjaxCartOnAddToCart:!0,generalLayout:{shape:"round",fontSizeScale:100,fontSize:"inherit",fontSizeTabletPortrait:"inherit",fontSizeTabletLandscape:"inherit",fontSizeMobile:"inherit",fontFamily:"inherit",fontStyle:"inherit",fontWeight:"inherit"},checkoutBtn:{textTransform:"none",color:"#fbfbfb",hoverColor:"#fbfbfb",backgroundColor:"#ee4382",hoverBackgroundColor:"#ee4382",borderColor:"#ee4382",hoverBorderColor:"#ee4382"},viewCartBtn:{textTransform:"none",color:"#ee4382",hoverColor:"#ee4382",backgroundColor:"#FFFFFF",hoverBackgroundColor:"#FFFFFF",borderColor:"#ee4382",hoverBorderColor:"#ee4382"}},productList:{productsPerPage:48,productsPerRowOnDesktop:4,productsPerRowOnMobile:2},searchPage:{headerBackground:"#F6F6F8",elements:{searchHeaderText:{color:"#222222",textTransform:"none",fontSizeScale:100,fontSize:40,fontSizeTabletPortrait:40,fontSizeTabletLandscape:40,fontSizeMobile:30,fontFamily:"Roboto",fontStyle:"normal",fontWeight:100},placeholderSearch:{color:"#595959",textTransform:"none",fontSizeScale:110,fontFamily:"Roboto",fontStyle:"normal",fontSize:15.4,fontSizeTabletPortrait:15.4,fontSizeTabletLandscape:15.4,fontSizeMobile:15.4,fontWeight:400},scopedSuggestionLabel:{color:"#222222",textTransform:"none",fontSizeScale:110,fontFamily:"Roboto",fontStyle:"normal",fontSize:15.4,fontSizeTabletPortrait:15.4,fontSizeTabletLandscape:15.4,fontSizeMobile:15.4,fontWeight:400},scopedSuggestionItem:{color:"#222222",textTransform:"none",fontSizeScale:110,fontFamily:"Roboto",fontStyle:"normal",fontSize:13.2,fontSizeTabletPortrait:13.2,fontSizeTabletLandscape:13.2,fontSizeMobile:13.2,backgroundColor:"#E8E9EB",fontWeight:400},titleTab:{color:"#222222",textTransform:"none",fontSizeScale:100,fontFamily:"Roboto",fontStyle:"normal",fontSize:14,fontSizeTabletPortrait:14,fontSizeTabletLandscape:14,fontSizeMobile:14,fontWeight:400},productCount:{color:"#222222",textTransform:"none",fontSizeScale:110,fontFamily:"Roboto",fontStyle:"normal",fontSize:15.4,fontSizeTabletPortrait:15.4,fontSizeTabletLandscape:15.4,fontSizeMobile:15.4,fontWeight:400},collectionAndPageTabTitle:{color:"#222222",textTransform:"none",fontSizeScale:110,fontFamily:"Roboto",fontStyle:"normal",fontSize:17.6,fontSizeTabletPortrait:17.6,fontSizeTabletLandscape:17.6,fontSizeMobile:17.6,fontWeight:400},collectionAndPageTabDescription:{color:"#222222",textTransform:"none",fontSizeScale:110,fontFamily:"Roboto",fontStyle:"normal",fontSize:15.4,fontSizeTabletPortrait:15.4,fontSizeTabletLandscape:15.4,fontSizeMobile:15.4,fontWeight:400},tipForYou:{color:"#222222",textTransform:"none",fontSizeScale:110,fontFamily:"Roboto",fontStyle:"normal",fontSize:15.4,fontSizeTabletPortrait:15.4,fontSizeTabletLandscape:15.4,fontSizeMobile:15.4,fontWeight:400},line:{color:"#cccccc"}}},filterTree:{elements:{refineBy:{color:"#222222"},filterTitle:{color:"#222222",textTransform:"none",fontSizeScale:110,fontFamily:"Roboto",fontStyle:"normal",fontSize:15.4,fontSizeTabletPortrait:15.4,fontSizeTabletLandscape:15.4,fontSizeMobile:15.4,fontWeight:400},filterOption:{color:"#222222",textTransform:"none",fontSizeScale:110,fontFamily:"Roboto",fontStyle:"normal",fontSize:15.4,fontSizeTabletPortrait:15.4,fontSizeTabletLandscape:15.4,fontSizeMobile:15.4,fontWeight:400},productCount:{color:"#595959",textTransform:"none",fontSizeScale:110,fontFamily:"Roboto",fontStyle:"normal",fontSize:15.4,fontSizeTabletPortrait:15.4,fontSizeTabletLandscape:15.4,fontSizeMobile:15.4,fontWeight:400},line:{color:"#cccccc"},checkbox:{color:"#22222299"},searchBox:{color:"#cccccc"}}},isw:{backgroundSuggestion:"#F8F8F8",backgroundProducts:"#FFFFFF",hoverBackgroundSuggestion:"#E8E9EB",hoverBackgroundProducts:"#F8F8F8",elements:{titleMultiElement:{color:"#595959",textTransform:"none",fontSizeScale:110,fontFamily:"Roboto",fontStyle:"normal",fontSize:13.2,fontSizeTabletPortrait:13.2,fontSizeTabletLandscape:13.2,fontSizeMobile:13.2,fontWeight:400},results:{color:"#222222",textTransform:"none",fontSizeScale:110,fontFamily:"Roboto",fontStyle:"normal",fontSize:15.4,fontSizeTabletPortrait:15.4,fontSizeTabletLandscape:15.4,fontSizeMobile:15.4,fontWeight:400},didYouMean:{color:"#222222",textTransform:"none",fontSizeScale:110,fontFamily:"Roboto",fontStyle:"normal",fontSize:15.4,fontSizeTabletPortrait:15.4,fontSizeTabletLandscape:15.4,fontSizeMobile:15.4,fontWeight:400},didYouMeanResults:{color:"#222222",textTransform:"none",fontSizeScale:110,fontFamily:"Roboto",fontStyle:"normal",fontSize:15.4,fontSizeTabletPortrait:15.4,fontSizeTabletLandscape:15.4,fontSizeMobile:15.4,backgroundColor:"#F6F6F7",fontWeight:400},productTitle:{color:"#222222",textTransform:"none",fontSizeScale:110,fontFamily:"Roboto",fontStyle:"normal",fontSize:15.4,fontSizeTabletPortrait:15.4,fontSizeTabletLandscape:15.4,fontSizeMobile:15.4,fontWeight:400},productVendor:{color:"#595959",textTransform:"none",fontSizeScale:110,fontFamily:"Roboto",fontStyle:"normal",fontSize:13.2,fontSizeTabletPortrait:13.2,fontSizeTabletLandscape:13.2,fontSizeMobile:13.2,fontWeight:400},productPrice:{color:"#222222",textTransform:"none",fontSizeScale:110,fontFamily:"Roboto",fontStyle:"normal",fontSize:15.4,fontSizeTabletPortrait:15.4,fontSizeTabletLandscape:15.4,fontSizeMobile:15.4,fontWeight:400},productSalePrice:{color:"#d54d4d",textTransform:"none",fontSizeScale:110,fontFamily:"Roboto",fontStyle:"normal",fontSize:15.4,fontSizeTabletPortrait:15.4,fontSizeTabletLandscape:15.4,fontSizeMobile:15.4,fontWeight:400},productCompareAtPrice:{color:"#8c8b8b",textTransform:"none",fontSizeScale:110,fontFamily:"Roboto",fontStyle:"normal",fontSize:15.4,fontSizeTabletPortrait:15.4,fontSizeTabletLandscape:15.4,fontSizeMobile:15.4,fontWeight:400},productSKU:{color:"#595959",textTransform:"none",fontSizeScale:110,fontFamily:"Roboto",fontStyle:"normal",fontSize:15.4,fontSizeTabletPortrait:15.4,fontSizeTabletLandscape:15.4,fontSizeMobile:15.4,fontWeight:400},viewAllBtn:{color:"#222222",textTransform:"none",fontSizeScale:110,fontFamily:"Roboto",fontStyle:"normal",fontSize:15.4,fontSizeTabletPortrait:15.4,fontSizeTabletLandscape:15.4,fontSizeMobile:15.4,backgroundColor:"#FFFFFF",hoverBackgroundColor:"#E8E9EB",fontWeight:400}}}},currentAppIntegration:{reviews:"okendo"},themeName:"default",srcThemeNameLib:"turbo"}||{}}}};ie.moduleName="TemplateManagement";var re=class extends x{constructor(){super(...arguments),this.initBlock=()=>{const e=document.querySelector(".boost-sd__widget-volume-bundle");e&&(this.block={id:e.id||"bc-volume-bundle",document:e},this.backwardCompatibilityV1Module?.legacyAssignDefaultBlockAttributes(this.block,e,"volumeBundle"),this.TAEApp.registerBlock(this.block))}}get backwardCompatibilityV1Module(){return this.TAEApp.getModule(X)}onModuleInit(){document.addEventListener("DOMContentLoaded",this.initBlock)}onModuleDestroy(){document.removeEventListener("DOMContentLoaded",this.initBlock)}};re.moduleName="VolumeBundle";var le=(new class{constructor(l,d){g(this,r),g(this,e),g(this,t),g(this,o,[]),g(this,s,new Map),g(this,n,"created"),g(this,a,{}),this.mode="production",this.logLevel=1,g(this,i,{});const c=window.boostWidgetIntegration;f(this,e,l||{logLevel:c?.config?.logLevel,env:"production"}),this.logLevel=h(this,e).logLevel??("production"===this.mode?2:this.logLevel),null==h(this,e).logLevel&&(h(this,e).logLevel=this.logLevel),f(this,t,d||{}),this.logger={debug:(...e)=>{this.logLevel},info:(...e)=>{this.logLevel},warn:(...e)=>{this.logLevel},error:(...e)=>{this.logLevel}}}get blocks(){return h(this,i)}get config(){return h(this,e)}get dataObjects(){return h(this,t)}get status(){return h(this,n)}get modules(){return h(this,o)}bootstrap(){"bootstrapped"!==h(this,n)?"started"!==h(this,n)?(y(this,r,u).call(this),this.dispatchLifecycleEvent({name:"onBeforeAppBootstrap",payload:null}),h(this,e)?.customization?.app?.onBootstrap&&h(this,e).customization.app.onBootstrap(this),y(this,r,l).call(this),y(this,r,d).call(this),y(this,r,c).call(this),this.assignGlobalVariables(),f(this,n,"bootstrapped"),this.dispatchLifecycleEvent({name:"onAppBootstrap",payload:null})):this.logger.warn("Application already started"):this.logger.warn("Application already bootstrapped")}async initModules(){await Promise.all(h(this,o).map((async e=>{if(e.shouldInit()){e.onBeforeModuleInit?.(),this.dispatchLifecycleEvent({name:"onBeforeModuleInit",payload:{module:e}}),this.logger.info(`Initializing ${e.constructor.name} module`);try{await e.init(),this.dispatchLifecycleEvent({name:"onModuleInit",payload:{module:e}})}catch(t){this.logger.error(`Error initializing module ${e.constructor.name}:`,t),this.dispatchLifecycleEvent({name:"onModuleError",payload:{module:e,error:t instanceof Error?t:new Error(String(t))}})}}else this.logger.info("Module not initialized",e.constructor.name,"shouldInit returned false")})))}getModule(e){return h(this,s).get(e)}getModuleByName(e){return h(this,o).find((t=>t.constructor.moduleName===e))}registerBlock(e){if(!e.id)return void this.logger.error("Block id is required");const t=e.id;h(this,i)[t]?this.logger.error(`Block with id ${t} already exists`):(h(this,i)[t]=e,window.boostWidgetIntegration.blocks&&(window.boostWidgetIntegration.blocks[t]=e),this.dispatchLifecycleEvent({name:"onRegisterBlock",payload:{block:e}}))}assignGlobalVariables(){window.boostWidgetIntegration||(window.boostWidgetIntegration={}),Object.assign(window.boostWidgetIntegration,{TAEApp:this,config:this.config,dataObjects:h(this,t),blocks:this.blocks})}async start(){this.logger.info("Application starting"),this.bootstrap(),this.dispatchLifecycleEvent({name:"onBeforeAppStart",payload:null}),await this.initModules(),f(this,n,"started"),this.dispatchLifecycleEvent({name:"onAppStart",payload:null}),h(this,e)?.customization?.app?.onStart&&h(this,e).customization.app.onStart(this)}destroy(){"started"===h(this,n)?(h(this,o).forEach((e=>{this.dispatchLifecycleEvent({name:"onModuleDestroy",payload:{module:e}}),e.destroy()})),f(this,o,[]),y(this,r,p).call(this),f(this,n,"destroyed"),this.dispatchLifecycleEvent({name:"onAppDestroy",payload:null})):this.logger.warn("Application not started yet")}setLogLevel(e){this.logLevel=e,this.updateConfig({logLevel:e})}loadModule(e){if(!e)return this;const t=this,n=new e(t);return h(t,s).has(e)?(this.logger.warn(`Module ${e.name} already loaded`),t):(h(this,o).push(n),h(this,s).set(e,n),this.logger.info(`Module ${e.name} already loaded`),t)}updateConfig(t){return"function"==typeof t?f(this,e,t(h(this,e))):v(h(this,e),t),this.config}dispatchLifecycleEvent(e){switch(e.name){case"onBeforeAppBootstrap":this.triggerEvent("onBeforeAppBootstrap",e);break;case"onAppBootstrap":this.logger.info("Application bootstrapped"),this.triggerEvent("onAppBootstrap",e);break;case"onBeforeModuleInit":this.triggerEvent("onBeforeModuleInit",e);break;case"onModuleInit":this.logger.info(`Module ${e.payload.module.constructor.name} initialized`),this.triggerEvent("onModuleInit",e);break;case"onModuleDestroy":this.logger.info(`Module ${e.payload.module.constructor.name} destroyed`),this.triggerEvent("onModuleDestroy",e);break;case"onBeforeAppStart":this.triggerEvent("onBeforeAppStart",e);break;case"onAppStart":this.logger.info("Application started"),this.triggerEvent("onAppStart",e);break;case"onAppDestroy":this.logger.info("Application destroyed"),this.triggerEvent("onAppDestroy",e);break;case"onAppError":this.logger.error("Application error",e.payload.error),this.triggerEvent("onAppError",e);break;case"onModuleError":this.logger.error("Module error",e.payload.module.constructor.name,e.payload.error),this.triggerEvent("onModuleError",e);break;case"onRegisterBlock":this.logger.info(`Block registered with id: ${e.payload.block.id}`),this.triggerEvent("onRegisterBlock",e);break;default:this.logger.warn("Unknown lifecycle event",e)}}triggerEvent(e,t){const o=h(this,a)[e];o&&o.forEach((o=>{try{"onRegisterBlock"===e&&t.payload&&"block"in t.payload?o(t.payload.block):o(t)}catch(o){this.logger.error(`Error in event listener for ${e}:`,o,"Event data:",t)}}))}}).loadModule(j).loadModule(ae).loadModule(ne).loadModule(ie).loadModule(Q).loadModule(T).loadModule(oe).loadModule(te).loadModule(K).loadModule(q).loadModule(H).loadModule(G).loadModule(re).loadModule(ee).loadModule(J).loadModule(Y).loadModule(se).loadModule($).loadModule(U).loadModule(X);function de(){return le}le.start()})();
Same-day delivery 7 days a week in Sydney, Wollongong, Central Coast, Melbourne, Geelong, Mornington Peninsula, Brisbane, Gold Coast, Adelaide, Perth and Fremantle. Order by 4pm for metro areas. National next day delivery for all other locations.
Thanks for contacting us. We'll get back to you as soon as possible.
Chat to our Corporate team
Put your business front and centre with customisable flowers, merch, explosion boxes, and more. Get bulk discounts and a dedicated contact for all your needs. Drop us a line below with details of what you're looking for and we'll be in touch! NOTE: The more details you can include (dates, quantities, location, gifts, budgets, etc.) the better.