PageSourceSearch

https://macbeth.com/cdn/shop/t/10/assets/island-product.bundle.js?v=178329730740261958301787701717

js macbeth.com collected 2026-10-02 11:12:14 UTC 36,340 bytes, 2 lines download raw bytes

1import deferrableData from"deferrable-data";import{SplideEventInterface as EventInterface}from"vendor";function SplideProductExtension(Splide2,Components,options){const{on,off,bind,unbind}=EventInterface(Splide2),isHorizontalGallerySplide=Splide2.root.hasAttribute("data-horizontal-gallery-splide");function __resizeTrackForSlideAtIndex(index){if(isHorizontalGallerySplide&&window.isLgBreakpoint()){Splide2.root.querySelector(".splide__track").style.maxHeight="";return}const targetSlideObject=Splide2.Components.Slides.getAt(index);if(!targetSlideObject)return;const targetSlideMedia=targetSlideObject.slide.querySelector("[data-product-single-media-wrapper]");let maxHeightSource;isHorizontalGallerySplide?maxHeightSource=targetSlideMedia.closest(".splide__slide").querySelector("[data-slide-height-setter]"):maxHeightSource=targetSlideMedia;const newMaxHeight=maxHeightSource.getBoundingClientRect().height,gridlineWidth=parseInt(getComputedStyle(document.documentElement).getPropertyValue("--gridline-width"),10)||0;Splide2.root.querySelector(".splide__track").style.maxHeight=`${newMaxHeight+gridlineWidth}px`;const thumbnailsSplideVerticalEl=Splide2.root.parentNode.querySelector(".splide.splide--thumbnails.splide--thumbnails--vertical");if(thumbnailsSplideVerticalEl&&isLgBreakpoint()){const navHeight=Splide2.root.querySelector("[data-slideshow-navigation]").getBoundingClientRect().height||0,productC
1ontentHeight=Splide2.root.closest("[data-product-media-container]").parentNode.querySelector("[data-product-content]").getBoundingClientRect().height||0;thumbnailsSplideVerticalEl.style.setProperty("--thumbnails-height",`${Math.max(newMaxHeight+navHeight,productContentHeight)}px`)}}function __dispatchMediaEvents(newIndex,oldIndex){const slides=Splide2.Components.Slides,oldSlide=slides.getAt(oldIndex).slide.querySelector("[data-product-single-media-wrapper]"),newSlide=slides.getAt(newIndex).slide.querySelector("[data-product-single-media-wrapper]");oldSlide&&oldSlide.dispatchEvent(new CustomEvent("mediaHidden")),newSlide&&newSlide.dispatchEvent(new CustomEvent("mediaVisible"))}function onMounted(){__resizeTrackForSlideAtIndex(Splide2.index)}function onResize(){__resizeTrackForSlideAtIndex(Splide2.index)}function onSlidesUpdated(){__resizeTrackForSlideAtIndex(Splide2.index)}function onWindowResize(){__resizeTrackForSlideAtIndex(Splide2.index)}const debouncedWindowResize=debounce(onWindowResize,150);function onMove(newIndex,oldIndex){__resizeTrackForSlideAtIndex(newIndex),__dispatchMediaEvents(newIndex,oldIndex),Splide2.root.dispatchEvent(new CustomEvent("move",{detail:{newIndex,oldIndex}}))}function onDestroy(){unbind(window,"resize")}function mount(){on("mounted",onMounted),on("resize",onResize),on("move",onMove),on("destroy",onDestroy),bind(window,"resize",debouncedWindowResize),on("slides:updated",onSlidesUpdated),Shopify.designMode&&document.addEventListener("shopify:section:unload",e=>{e.target.contains(Splide2.root)&&!Splide2.state.is(window.Splide.STATES.DESTROYED)&&unbind(window,"resize",debouncedWindowResize)})}return{mount}}function SplideResponsiveMountExtension(Splide2){function mount(){Splide2.root.dispatchEvent(new CustomEvent("responsive-mount"))}return{mount}}function SplidePaginationPlaceholderExtension(Splide2){function mount(){Splide2.root.querySelectorAll("[data-splide-pagination-placeholder]").forEach(el=>{el.remove()})}return{mount}}var product_default=({product,featuredMediaId,splideOnDesktop=!1,mediaScrollTo,singleVariantMode,alwaysShowProductFeaturedMediaFirst=!1,firstMediaFullWidth=!1,preselectVariant=!0,skipMediaUpdates=!1,shouldUpdateHistoryState=!1,swapMediaOnDesktop=!1,templateType="default"})=>({productRoot:null,product,featuredMediaId,currentMediaId:featuredMediaId,splideOnDesktop,mediaScrollTo,singleVariantMode,alwaysShowProductFeaturedMediaFirst,firstMediaFullWidth,swapMediaOnDesktop,preselectVariant,skipMediaUpdates,shouldUpdateHistoryState,sectionId:null,currentVariant:null,quantity:1,loading:!1,cacheOptionsFor:Shopify?.designMode?0:3e5,sectionUpdateAbortController:null,preloadAbortController:null,hasGiftCardRecipientForm:!1,firstMediaView:!0,addedToCart:!1,errorMessage:"",isMaxLgBreakpoint:window.isMaxLgBreakpoint(),maxLgBreakpointMQL:window.maxLgBreakpointMQL(),productMediaContainerResizeObserver:null,splide:null,mainSplideOptions:null,thumbnailsSplideHorizontal:null,thumbnailsSplideVertical:null,thumbnailActiveStatePaused:!1,splideIndex:0,slideCount:0,allSlides:[],allHorizontalThumbnailsSlides:[],allVerticalThumbnailsSlides:[],splidesInFlux:!1,splideIsReady:!1,mediaListIsReordered:!1,templateType,variantChangedFromInitialVariant:!1,allProductURLs:[],allOptionsHaveSelections:!1,allOptionsHaveClientSelections:!1,optionPositionsWithSelection:new Set,optionPositionsWithClientSelection:new Set,sectionUpdateFetchIsPending:!1,get resolvedParentRoot(){return this.productRoot??this.$root},get currentVariantJSONEl(){return this.resolvedParentRoot.querySelector("[data-current-variant]")},get productMediaContainerEl(){return this.resolvedParentRoot.querySelector("[data-product-media-container]")},get splideEl(){return this.resolvedParentRoot.querySelector(".splide:not(.splide--thumbnails)")},get thumbnailsSplideHorizontalEl(){return this.resolvedParentRoot.querySelector(".splide.splide--thumbnails:not(.splide--thumbnails--vertical)")},get thumbnailsSplideVerticalEl(){return this.resolvedParentRoot.querySelector(".splide.splide--thumbnails.splide--thumbnails--vertical")},get optionEls(){return Array.from(this.resolvedParentRoot.querySelectorAll("[data-product-option]")??[])},get optionValueEls(){return Array.from(this.resolvedParentRoot.querySelectorAll("[data-single-option-selector]")??[])},get selectedOptionValueEls(){return Array.from(this.resolvedParentRoot.querySelectorAll('[data-single-option-selector]:checked, [data-single-option-selector][aria-selected="true"]')??[])},get unselectedOptionValueEls(){return Array.from(this.resolvedParentRoot.querySelectorAll('[data-single-option-selector]:not(:checked, [aria-selected="true"])')??[])},get optionsFromOtherProductURLs(){return this.optionValueEls.filter(({dataset:{productUrl}})=>productUrl&&productUrl!==this.product.url)??[]},get isUsingSlideshowToDisplayMedia(){return this.splide?splideIsNotDestroyed(this.splide):!1},get isPrimaryProductOnPage(){return this.product.url===window.location.pathname},get identifyingURLParam(){return this.templateType==="quick-buy"?["view","quick-buy"]:["section_id",this.sectionId]},optionClientSelectionValueFor(position){return this.selectedOptionValueEls.find(el=>el.dataset.position===String(position))?.value.trim()||null},optionHasClientSelection(position){return this.allOptionsHaveClientSelections||this.optionPositionsWithClientSelection.has(position)},optionHasSelection(position){return this.allOptionsHaveSelections||this.optionPositionsWithSelection.has(position)},updateSelectionState(){this.allOptionsHaveSelections=this.selectedOptionValueEls.length===this.optionEls.length,this.allOptionsHaveClientSelections=this.allOptionsHaveSelections,this.optionPositionsWithSelection=new Set(this.selectedOptionValueEls.map(el=>parseInt(el.getAttribute("data-position"),10)))},init(){if(this.sectionId=getSectionId(this.$root),this.isMaxLgBreakpoint=this.maxLgBreakpointMQL.matches,this.maxLgBreakpointMQL.addEventListener("change",e=>{this.isMaxLgBreakpoint=e.matches}),this.updateSelectionState(),this.isPrimaryProductOnPage&&!this.allOptionsHaveSelections&&(window.location.search.includes("variant=")||window.location.search.includes("option_values="))){const searchParams=new URLSearchParams(window.location.search);let selectedValueEls=Array.from(this.resolvedParentRoot.querySelectorAll("[data-selected-value]"))??[];if(searchParams.has("option_values")){const optionValuesLength=searchParams.get("option_values")?.split(",").length??0;selectedValueEls=selectedValueEls.slice(null,optionValuesLength)}this.restoreSelectionState(selectedValueEls)}this.singleVariantMode&&(this.alwaysShowProductFeaturedMediaFirst&&this.preselectVariant===!1&&this.allOptionsHaveSelections&&(this.alwaysShowProductFeaturedMediaFirst=!1),this.templateType!=="horizontal-gallery"?this.$watch("isMaxLgBreakpoint",value=>{this.splidesInFlux=!0,["default","three-column"].includes(this.templateType)&&value===!0||this.templateType==="thumbnails"?setTimeout(()=>{this.updateSlidesForMediaGroupWithId(this.currentMediaId),splideIsIdle(this.splide)?(this.splide.on("destroy.postBreakpointChange",()=>{setTimeout(()=>{this.initSplide(),this.splidesInFlux=!1}),this.splide.off("destroy.postBreakpointChange")}),this.splide.destroy()):setTimeout(()=>{this.splidesInFlux=!1})}):["default","three-column"].includes(this.templateType)&&value===!1&&setTimeout(()=>{this.resetSlides(),setTimeout(()=>{this.splidesInFlux=!1})})}):this.$watch("isMaxLgBreakpoint",value=>{this.triggerWindowResizeForSplide()})),Shopify.designMode&&this.triggerWindowResizeForSplide(),this.productMediaContainerEl&&(this.productMediaContainerResizeObserver=new ResizeObserver(debounce(()=>{this.triggerWindowResizeForSplide()},150)),this.productMediaContainerResizeObserver.observe(this.productMediaContainerEl)),this.productRoot=this.$root,this.$root.querySelector('[x-data="GiftCardRecipient"]')&&(this.hasGiftCardRecipientForm=!0),this.$watch("currentVariant",(value,oldValue)=>{value&&(!(this.alwaysShowProductFeaturedMediaFirst&&this.firstMediaView)&&this.allOptionsHaveSelections&&(value.featured_media?this.currentMediaId=value.featured_media.id:this.currentMediaId=this.featuredMediaId),this.firstMediaView&&(this.firstMediaView=!1),document.dispatchEvent(new CustomEvent("theme:variant:change",{detail:{productRootEl:this.productRoot,formEl:this.productRoot.querySelector("form.shopify-product-form"),variant:value,previousVariant:oldValue,product:this.product}})),oldValue&&(this.variantChangedFromInitialVariant=!0))}),this.productRoot.addEventListener("theme:change:variant",event=>{if(!event.detail||!event.detail.variantId){console.error("theme:change:variant requires a variant ID");return}this.handleVariantChange(event.detail.variantId)}),this.productRoot.addEventListener("theme:change:option-values",event=>{if(!event.detail||!event.detail.optionValueIDs){console.error("theme:change:option-values requires option value IDs");return}this.handleOptionValuesChangeEvent(event.detail.optionValueIDs)}),this.$watch("currentMediaId",async(value,oldValue)=>{this.skipMediaUpdates||(this.singleVariantMode&&(["default","three-column"].includes(this.templateType)&&this.isMaxLgBreakpoint||this.templateType==="thumbnails")?(this.thumbnailActiveStatePaused=!0,this.updateSlidesForMediaGroupWithId(value),setTimeout(()=>{this.thumbnailActiveStatePaused=!1}
1,100)):(this.$root.querySelectorAll(`[data-product-single-media-wrapper][data-media-id="${oldValue}"]`).forEach(mediaWrapperEl=>{mediaWrapperEl.offsetHeight&&(this.isUsingSlideshowToDisplayMedia||mediaWrapperEl.dispatchEvent(new CustomEvent("mediaHidden")))}),this.$root.querySelectorAll(`[data-product-single-media-wrapper][data-media-id="${value}"]`).forEach(mediaWrapperEl=>{mediaWrapperEl.offsetHeight&&(this.mediaScrollTo?this.isUsingSlideshowToDisplayMedia?this.goToSlide(mediaWrapperEl):mediaWrapperEl.dispatchEvent(new CustomEvent("mediaVisible")):this.updateMedia(mediaWrapperEl.closest("li")))})))}),this.currentVariant=this.parseCurrentVariantJSON(),this.setUpProductFormEvents(),this.allSlides=this.splideEl?.querySelectorAll(".splide__slide:not(.product-thumbnail)"),this.thumbnailsSplideHorizontalEl&&(this.allHorizontalThumbnailsSlides=this.thumbnailsSplideHorizontalEl.querySelectorAll(".splide__slide")),this.thumbnailsSplideVerticalEl&&(this.allVerticalThumbnailsSlides=this.thumbnailsSplideVerticalEl.querySelectorAll(".splide__slide")),this.__setUpSlideshow(),this.singleVariantMode&&(["default","three-column"].includes(this.templateType)&&this.isMaxLgBreakpoint||this.templateType==="thumbnails")&&this.updateSlidesForMediaGroupWithId(this.currentMediaId),this.$watch("slideCount",value=>{const dragDisableDefault=this.mainSplideOptions.drag!==!0;this.splide.Components.Drag.disable(value<=1?!0:dragDisableDefault)}),this.allProductURLs=[this.product.url,...this.optionValueEls.map(({dataset:{productUrl}})=>productUrl).filter(Boolean)],requestIdleCallback(()=>{this.preloadReachableCombinations(),updateRecentlyViewedProducts(this.product.id),this.shouldUpdateHistoryState&&window.location.search.includes("option_values=")&&this.updateHistoryState(new URL(window.location.href))})},parseCurrentVariantJSON(){let currentVariant=null;try{currentVariant=JSON.parse(this.currentVariantJSONEl?.innerHTML)}catch{}return currentVariant},selectionStateForOptionValueEl(optionValueEl){const optionProductURL=optionValueEl.getAttribute("data-product-url");return{selections:[optionValueEl,...this.selectedOptionValueEls.filter(el=>el.getAttribute("data-position")!==optionValueEl.getAttribute("data-position"))].sort((a,b)=>parseInt(a.getAttribute("data-position"),10)-parseInt(b.getAttribute("data-position"),10)).map(el=>el.getAttribute("data-id")),productURL:optionProductURL||this.product.url}},hasValidOptionSelectionSequence(){this.optionPositionsWithClientSelection=new Set(this.selectedOptionValueEls.map(el=>parseInt(el.getAttribute("data-position"),10)));const maxClientSelection=Math.max(...this.optionPositionsWithClientSelection);return this.optionPositionsWithClientSelection.size===maxClientSelection},canShowSoldOutState(){if(this.allOptionsHaveSelections)return!0;if(window.theme.settings.productAvailabilityMode==="top_down"){const position=parseInt(this.$el.dataset.position,10);if(position===1)return!0;if(this.optionPositionsWithSelection.size===0)return!1;const maxSelection=Math.max(...this.optionPositionsWithSelection);if(this.optionPositionsWithSelection.size===maxSelection&&position<=maxSelection+1)return!0}return!1},preloadLastUnselectedOptionValues(){if(Shopify?.designMode||!this.$root||!this.optionValueEls||this.optionValueEls.length===0||this.selectedOptionValueEls.length!==this.optionEls.length-1)return;if(window.shouldTryToSaveData()){console.log("Preference to save data detected, will not preload last unselected product option values.");return}this.unselectedPreloadAbortController?.abort();const selectedPositions=this.selectedOptionValueEls.map(el=>el.dataset.position),unselectedPositionOptionValueEls=this.unselectedOptionValueEls.filter(el=>!selectedPositions.includes(el.dataset.position)),combinationsToPreload=[];for(const unselectedOptionValueEl of unselectedPositionOptionValueEls)combinationsToPreload.push(this.selectionStateForOptionValueEl(unselectedOptionValueEl));this._preloadOptionCombinations("unselectedPreloadAbortController",combinationsToPreload)},preloadReachableCombinations(){if(Shopify?.designMode||!this.$root||!this.optionValueEls||this.optionValueEls.length===0||!this.allOptionsHaveSelections)return;if(window.shouldTryToSaveData()){console.log("Preference to save data detected, will not preload reach
1able product option combinations.");return}this.preloadAbortController?.abort();const combinationsToPreload=[];for(const unselectedOptionValueEl of this.unselectedOptionValueEls)combinationsToPreload.push(this.selectionStateForOptionValueEl(unselectedOptionValueEl));this._preloadOptionCombinations("preloadAbortController",combinationsToPreload)},_preloadOptionCombinations(abortControllerKey,combinationsToPreload){if(!abortControllerKey||!combinationsToPreload)return;const urlsToPreload=new Set;for(const combination of combinationsToPreload){const selections=combination.selections,productURL=combination.productURL,url=getURLWithParams(productURL,[["option_values",selections.join(",")],this.templateType==="quick-buy"?["view","quick-buy"]:productURL!==this.product.url&&this.isPrimaryProductOnPage?null:["section_id",this.sectionId]].filter(Boolean));url.searchParams.delete("variant"),urlsToPreload.add(url.toString())}this[abortControllerKey]=new AbortController;for(const urlToPreload of urlsToPreload)fetchHTML(urlToPreload,{signal:this[abortControllerKey].signal},this.cacheOptionsFor,!1).catch(e=>{if(e.name!=="AbortError")throw e})},async handleOptionValuesChangeEvent(optionValueIDs){if(!optionValueIDs||optionValueIDs.length===0){console.error("handleOptionValuesChangeEvent requires an array of optionValueIDs, none provided");return}this.preloadAbortController?.abort(),this.sectionUpdateAbortController?.abort(),this.sectionUpdateAbortController=new AbortController;const handleOptionValuesChangeAbortController=this.sectionUpdateAbortController,params=[["option_values",optionValueIDs.join(",")],this.identifyingURLParam],url=this.isPrimaryProductOnPage?currentURLWithParams(params):getURLWithParams(this.product.url,params);await this.updateSectionHTML(url),this.currentVariant=this.parseCurrentVariantJSON(),this.shouldUpdateHistoryState&&this.updateHistoryState(url),this.sectionUpdateAbortController===handleOptionValuesChangeAbortController&&(this.sectionUpdateAbortController=null),this.checkForProductURLMismatch()},async handleVariantChange(id){if(!id){console.error("handleVariantChange requires a variant ID, none provided");return}this.preloadAbortController?.abort(),this.sectionUpdateAbortController?.abort(),this.sectionUpdateAbortController=new AbortController;const handleVariantChangeAbortController=this.sectionUpdateAbortController,params=[["variant",id],this.identifyingURLParam],url=this.isPrimaryProductOnPage?currentURLWithParams(params):getURLWithParams(this.product.url,params);await this.updateSectionHTML(url),this.currentVariant=this.parseCurrentVariantJSON(),this.shouldUpdateHistoryState&&this.updateHistoryState(url),this.sectionUpdateAbortController===handleVariantChangeAbortController&&(this.sectionUpdateAbortController=null),this.checkForProductURLMismatch()},async optionChange(el){if(this.allOptionsHaveClientSelections=this.selectedOptionValueEls.length===this.optionEls.length,!this.allOptionsHaveClientSelections){if(!this.hasValidOptionSelectionSequence())return;this.preloadLastUnselectedOptionValues()}this.preloadAbortController?.abort(),this.sectionUpdateAbortController?.abort(),this.sectionUpdateAbortController=new AbortController;const optionChangeAbortController=this.sectionUpdateAbortController,addToCartButtonEl=this.resolvedParentRoot.querySelector("form[data-product-form] [type=submit]");setTimeout(()=>{this.finishedSelectingOptions=this.allOptionsHaveClientSelections,this.sectionUpdateFetchIsPending&&addToCartButtonEl&&(addToCartButtonEl.classList.add("disabled--transient"),addToCartButtonEl.disabled=!0)},50);const selectionState=this.selectionStateForOptionValueEl(el);if(selectionState.productURL!==this.product.url){if(this.isPrimaryProductOnPage){const updatedProductURLWithOptions=getURLWithParams(selectionState.productURL,[["option_values",selectionState.selections.join(",")]]);let onReplaced=()=>{};this.preselectVariant||(onReplaced=(newEl,oldEl)=>{const newPriceEl=newEl.querySelector("[data-product-price]"),oldPriceEl=oldEl.querySelector("[data-product-price]");newPriceEl&&oldPriceEl&&(newPriceEl.style.display=oldPriceEl.style.display)}),replaceMainContent(updatedProductURLWithOptions,void 0,this.cacheOptionsFor,onReplaced)}else{const updatedProductURLWithOptions=getURLWithParams(selectionState.productURL,[["option_values",selectionState.selections.join(",")],this.identifyingURLParam]);let onReplaced=()=>{};this.preselectVariant||(onReplaced=(newEl,oldEl)=>{const selectedOptions=selectionState.selections;let selectedValueEls=Array.from(newEl.querySelectorAll("[data-single-option-selector][data-selected-value]"));selectedValueEls=selectedValueEls.slice(null,selectedOptions.length);const newPriceEl=newEl.querySelector("[data-product-price]"),oldPriceEl=oldEl.querySelector("[data-product-price]");newPriceEl&&oldPriceEl&&(newPriceEl.style.display=oldPriceEl.style.display),this.restoreSelectionState(selectedValueEls)}),replaceElement(this.templateType==="quick-buy"?this.resolvedParentRoot:this.resolvedParentRoot.closest(".shopify-section"),updatedProductURLWithOptions,void 0,this.cacheOptionsFor,onReplaced)}return}const params=[["option_values",selectionState.selections.join(",")],this.identifyingURLParam],url=this.isPrimaryProductOnPage?currentURLWithParams(params):getURLWithParams(this.product.url,params);url.searchParams.delete("variant"),await this.updateSectionHTML(url),this.currentVariant=this.parseCurrentVariantJSON(),this.shouldUpdateHistoryState&&this.updateHistoryState(url),this.sectionUpdateAbortController===optionChangeAbortController&&(this.sectionUpdateAbortController=null)},async updateSectionHTML(url){this.sectionUpdateFetchIsPending=!0;try{const updatedSectionHTML=await fetchHTML(url,{signal:this.sectionUpdateAbortController.signal,priority:"high"},this.cacheOptionsFor,!!Shopify?.designMode),updatedSectionDOM=parseDOMFromString(updatedSectionHTML),currentVariantFragmentEls=Array.from(this.productRoot.querySelectorAll("[data-variant-fragment]")),selectedOptionValueEls=this.selectedOptionValueEls;for(const currentVariantFragmentEl of currentVariantFragmentEls){const updatedVariantFragmentEl=updatedSectionDOM.querySelector(`[data-variant-fragment="${currentVariantFragmentEl.dataset.variantFragment}"]`),morphingVariantPickerInNonPreselectMode=this.preselectVariant===!1&&currentVariantFragmentEl.hasAttribute("data-variant-picker");Alpine.morph(currentVariantFragmentEl,updatedVariantFragmentEl?.outerHTML||"",{updating(el,toEl,_childrenOnly,skip){if(el.nodeType===1&&el.hasAttribute("data-skip-on-section-update")&&skip(),el.nodeType===1&&el.hasAttribute("data-replace-on-morph")&&(el.replaceWith(toEl),skip()),el.nodeType===1&&el.hasAttribute("ready")&&toEl.setAttribute("ready",""),el.nodeType===1&&el.tagName==="IMG"&&el.getAttribute("src")===toEl.getAttribute("src")&&skip(),morphingVariantPickerInNonPreselectMode&&el.nodeType===1&&(el.tagName==="INPUT"&&el.hasAttribute("checked")&&toEl.setAttribute("checked",""),el.getAttribute("aria-selected")==="true"&&toEl.setAttribute("aria-selected","true"),el.hasAttribute("data-selected-swatch-value")))try{const swatchPosition=el.closest("[data-product-option]").querySelector("[data-position]").getAttribute("data-position");selectedOptionValueEls.some(selectedEl=>selectedEl?.getAttribute("data-position")===swatchPosition)&&toEl.classList.remove("hidden")}catch{}}}),this.updateSelectionState()}}
1catch(err){if(err.name!=="AbortError")throw err}finally{this.sectionUpdateFetchIsPending=!1}await this.$nextTick(),requestIdleCallback(()=>{this.preloadReachableCombinations()})},restoreSelectionState(selectedValueEls){if(selectedValueEls?.length>0){for(const selectedValueEl of selectedValueEls)selectedValueEl.tagName==="INPUT"?selectedValueEl.setAttribute("checked",""):selectedValueEl.setAttribute("aria-selected","true");this.updateSelectionState()}},checkForProductURLMismatch(){if(!this.isPrimaryProductOnPage)return;const selectedOptionValueEls=this.selectedOptionValueEls,selectionsWithURLMismatch=selectedOptionValueEls.map(({dataset:{productUrl}})=>productUrl&&productUrl!==window.location.pathname?productUrl:null).filter(Boolean);if(selectionsWithURLMismatch.length>0){const newURL=getURLWithParams(selectionsWithURLMismatch[0],[this.currentVariant&&this.currentVariant.id?["variant",this.currentVariant.id]:["option_values",selectedOptionValueEls.map(el=>el.dataset.id).join(",")]]);replaceMainContent(newURL,void 0,this.cacheOptionsFor)}},refreshPreloadCache(){for(const url of this.allProductURLs)invalidateCacheForKeysContaining(url);requestIdleCallback(()=>{this.preloadReachableCombinations()})},updateHistoryState(url){if(this.allOptionsHaveSelections===!1)return;const historyURL=new URL(url);historyURL.searchParams.delete("section_id"),historyURL.searchParams.delete("view"),historyURL.searchParams.delete("variant"),this.currentVariant&&this.currentVariant.id&&(historyURL.searchParams.delete("option_values"),historyURL.searchParams.set("variant",this.currentVariant.id));const historyURLAsString=historyURL.toString();window.history.replaceState({path:historyURLAsString},"",historyURLAsString)},setUpProductFormEvents(){this.$root.addEventListener("baseline:productform:loading",event=>{event.stopPropagation(),this.loading=!0,this.errorMessage=null,this.addedToCart=!1}),this.$root.addEventListener("baseline:productform:success",event=>{event.stopPropagation(),this.loading=!1,this.errorMessage=null,this.addedToCart=!0,this.refreshPreloadCache()}),this.hasGiftCardRecipientForm||this.$root.addEventListener("baseline:productform:error",event=>{event.stopPropagation();const quantityEl=this.$root.querySelector('[name="quantity"]');this.errorMessage=event.detail.message||window.theme.strings.cartError,this.quantity=quantityEl?Number(quantityEl.getAttribute("min")):1,this.loading=!1})},openZoom(mediaId){const zoomModalId=`image-zoom-${this.productRoot.id}`;this.$store.modals.modals[zoomModalId]||this.$store.modals.register(zoomModalId,"modal"),this.$watch("$store.modals.modal.contents",value=>{value===zoomModalId&&this.$nextTick(async()=>{const zoomModalEl=document.getElementById(zoomModalId);try{await waitForContent(zoomModalEl)}catch(e){console.warn("Zoom content did not load",e.message?`: ${e.message}`:""),this.$store.modals.close(zoomModalId);return}const mediaEl=zoomModalEl.querySelector(`[data-media-id="${mediaId}"]`);mediaEl&&mediaEl.scrollIntoView()})}),this.$store.modals.open(zoomModalId)},__setUpSlideshow(){if(!(!this.splideEl||!this.splideEl.dataset.slideshowEnabled)){if(typeof Splide>"u"){console.error("product.js requires a Splide object to be defined in the global scope");return}this.initSplide(),document.addEventListener("dev:hotreloadmutation",async()=>{Shopify.designMode||(this.singleVariantMode?["default","three-column"].includes(this.templateType)&&this.isMaxLgBreakpoint||this.templateType==="thumbnails"?this.updateSlidesForMediaGroupWithId(this.currentMediaId):this.reinitMainSplide():this.reinitMainSplide())})}},initSplide(){if(this.templateType!=="horizontal-gallery"){if(this.mainSplideOptions={arrows:!!this.splideEl.querySelector(".splide__arrows"),pagination:!!this.splideEl.querySelector(".splide__pagination"),rewind:!0,speed:600,drag:this.splideEl.dataset.dragDisabled!=="true",mediaQuery:"min",breakpoints:{}},!this.splideOnDesktop){const breakpoint=this.templateType==="three-column"?"1400":"1024";this.mainSplideOptions.breakpoints[breakpoint]={destroy:!0}}}else this.mainSplideOptions={type:"slide",rewind:!0,perPage:1,autoWidth:!1,mediaQuery:"min",breakpoints:{1024:{fixedWidth:"auto",rewind:!0,type:"slide",pagination:!0,arrows:!0,drag:this.splideEl.dataset.dragDisabled!=="true",classes:{}}}};if(this.splide=new Splide(this.splideEl,this.mainSplideOptions),this.thumbnailsSplideHorizontalEl){const mobileOnly=this.thumbnailsSplideHorizontalEl.hasAttribute("data-mobile-only"),desktopOnly=this.thumbnailsSplideHorizontalEl.hasAttribute("data-desktop-only"),thumbnailsSplideHorizontalOptions={arrows:!1,pagination:!1,rewind:!0,isNavigation:!0,autoWidth:!0,gap:"var(--gridline-width)"};mobileOnly?(thumbnailsSplideHorizontalOptions.mediaQuery="min",thumbnailsSplideHorizontalOptions.breakpoints={1024:{destroy:!0}},this.$watch("isMaxLgBreakpoint",value=>{value===!0&&this.resetSyncedSplide(this.thumbnailsSplideHorizontal)})):desktopOnly&&(thumbnailsSplideHorizontalOptions.breakpoints={1023:{destroy:!0}},this.$watch("isMaxLgBreakpoint",value=>{value===!1&&this.resetSyncedSplide(this.thumbnailsSplideHorizontal)})),this.thumbnailsSplideHorizontal=new Splide(this.thumbnailsSplideHorizontalEl,thumbnailsSplideHorizontalOptions),this.splide.sync(this.thumbnailsSplideHorizontal)}this.thumbnailsSplideVerticalEl&&(this.thumbnailsSplideVertical=new Splide(this.thumbnailsSplideVerticalEl,{arrows:!1,pagination:!1,rewind:!0,isNavigation:!0,direction:"ttb",height:"var(--thumbnails-height)",autoHeight:!0,breakpoints:{1023:{destroy:!0}}}),this.$watch("isMaxLgBreakpoint",async value=>{value===!1&&this.resetSyncedSplide(this.thumbnailsSplideVertical)}),this.splide.sync(this.thumbnailsSplideVertical)),this.splideEl.addEventListener("responsive-mount",()=>{this.splide.on("ready",()=>{this.slideCount=this.splide.Components.Slides.get().length,this.splideIsReady=!0}),this.splide.on("refresh",()=>{this.slideCount=this.splide.Components.Slides.get().length}),this.splide.on("destroy",()=>{this.splideIsReady=!1})}),this.splide.mount({SplideResponsiveMountExtension,SplideProductExtension,SplidePaginationPlaceholderExtension}),this.thumbnailsSplideHorizontal&&this.thumbnailsSplideHorizontal.mount(),this.thumbnailsSplideVertical&&this.thumbnailsSplideVertical.mount(),this.splideEl.addEventListener("move",e=>{this.splideIndex=e.detail.newIndex})}
1,goToSlide(el){const index=parseInt(el.closest(".splide__slide").dataset.index,10);this.splide.go(index)},updateMedia(el){this.isUsingSlideshowToDisplayMedia?isLgBreakpoint()&&this.swapMediaOnDesktop?this.swapMedia(el):this.goToSlide(el):this.singleVariantMode||this.swapMedia(el)},swapMedia(el){const incomingEl=el;this.mediaListIsReordered&&this.resetMediaListOrder();let restOfIncomingMediaGroup;const outgoingEl=this.$refs.mediaList.firstElementChild;incomingEl.hasAttribute("data-media-group-id")&&(restOfIncomingMediaGroup=Array.from(this.$refs.mediaList.querySelectorAll(`[data-media-group-id="${incomingEl.getAttribute("data-media-group-id")}"]`)).filter(elInGroup=>elInGroup!==incomingEl).reverse()),this.$refs.mediaList.insertBefore(outgoingEl,incomingEl);let restOfOutgoingMediaGroup;if(outgoingEl.hasAttribute("data-media-group-id")&&(restOfOutgoingMediaGroup=Array.from(this.$refs.mediaList.querySelectorAll(`[data-media-group-id="${outgoingEl.getAttribute("data-media-group-id")}"]`)).filter(elInGroup=>elInGroup!==outgoingEl).reverse()),restOfOutgoingMediaGroup&&restOfOutgoingMediaGroup.length){let lastInsertedEl=outgoingEl;restOfOutgoingMediaGroup.forEach(elInGroup=>{this.$refs.mediaList.insertBefore(elInGroup,lastInsertedEl.nextElementSibling)})}if(this.$refs.mediaList.insertBefore(incomingEl,this.$refs.mediaList.firstElementChild),restOfIncomingMediaGroup&&restOfIncomingMediaGroup.length){let lastInsertedEl=incomingEl;restOfIncomingMediaGroup.forEach(elInGroup=>{this.$refs.mediaList.insertBefore(elInGroup,lastInsertedEl.nextElementSibling)})}this.isUsingSlideshowToDisplayMedia&&this.splide.go(0),this.mediaListIsReordered=!0},resetMediaListOrder(){const mediaListItemsArray=Array.from(this.$refs.mediaList.children);mediaListItemsArray.sort(function(a,b){return a=parseInt(a.getAttribute("data-order"),10),b=parseInt(b.getAttribute("data-order"),10),a>b?1:-1}),mediaListItemsArray.forEach(mediaListItemEl=>{this.$refs.mediaList.appendChild(mediaListItemEl)})},shouldBeFullWidth(){if(this.isMaxLgBreakpoint||!this.$el.parentNode)return!1;const mediaGroupEls=Array.from(this.$el.parentNode.querySelectorAll(`[data-media-group-id="${this.currentMediaId}"`)),leftOver=mediaGroupEls.length%2,index=mediaGroupEls.indexOf(this.$el);if(index===0&&(leftOver>0||this.firstMediaFullWidth))return!0;if(index===mediaGroupEls.length-1){if(this.firstMediaFullWidth&&leftOver===0)return!0;if(this.firstMediaFullWidth&&mediaGroupEls.length===2)return!0}return!1},async triggerWindowResizeForSplide(){await this.$nextTick(),window.dispatchEvent(new Event("resize"))},async resetSyncedSplide(syncedSplide){splideIsIdle(syncedSplide)&&(syncedSplide.destroy(),await this.$nextTick(),this.splide.sync(syncedSplide),syncedSplide.mount())},async reinitMainSplide(){this.splide.destroy(),await this.$nextTick(),this.initSplide()},updateSlidesForMediaGroupWithId(id){if(this.slideCount<this.allSlides.length){this.splide.Components.Slides.remove(".splide__slide:not(.product-thumbnail)");for(const slide of this.allSlides)this.splide.Components.Slides.add(slide);if(this.thumbnailsSplideHorizontal){this.thumbnailsSplideHorizontal.Components.Slides.remove(".splide__slide");for(const slide of this.allHorizontalThumbnailsSlides)this.thumbnailsSplideHorizontal.Components.Slides.add(slide)}if(this.thumbnailsSplideVertical){this.thumbnailsSplideVertical.Components.Slides.remove(".splide__slide");for(const slide of this.allVerticalThumbnailsSlides)this.thumbnailsSplideVertical.Components.Slides.add(slide);const lastGridlineEl=this.thumbnailsSplideVerticalEl.querySelector('li[role="presentation"]');this.thumbnailsSplideVerticalEl.querySelector(".splide__list").append(lastGridlineEl)}}this.splide.Components.Slides.remove(`.splide__slide:not([data-media-group-id="${id}"]):not(.product-thumbnail)`),this.splide.emit("slides:updated"),this.thumbnailsSplideHorizontal&&this.thumbnailsSplideHorizontal.Components.Slides.remove(`.splide__slide:not([data-media-group-id="${id}"])`),this.thumbnailsSplideVertical&&this.thumbnailsSplideVertical.Components.Slides.remove(`.splide__slide:not([data-media-group-id="${id}"])`)},resetSlides(){if(this.slideCount<this.allSlides.length){this.splide.Components.Slides.remove(".splide__slide:not(.product-thumbnail)");for(const slide of this.allSlides)this.splide.Components.Slides.add(slide)}},destroy(){this.productMediaContainerResizeObserver?.disconnect(),this.productMediaContainerResizeObserver=null}}),product_form_default=()=>({formEl:null,init(){this.formEl=this.$root.querySelector("form"),this.formEl.addEventListener("submit",this.submit.bind(this))},async submit(event){event.preventDefault(),this.$root.dispatchEvent(new CustomEvent("baseline:productform:loading",{bubbles:!0})),liveRegion(window.theme.strings.loading);const formData=new FormData(event.target),formId=event.target.getAttribute("id"),options=fetchConfigDefaults("application/javascript");formData.append("sections","cart-items,cart-footer,cart-item-count"),formData.append("sections_url",window.location.pathname),options.body=formData,options.headers["X-Requested-With"]="XMLHttpRequest",delete options.headers["Content-Type"];let response,data,fetchError=null;try{response=await fetch(`${theme.routes.cart_add_url}`,options),data=await response.json()}catch(e){fetchError=e}if(data?.status||fetchError){let errors=data?.errors||data?.description||fetchError,message=data?.description||data?.message||null;const errorDetail={sourceId:formId,variantId:Number(formData.get("id")),errors,message};this.$root.dispatchEvent(new CustomEvent("baseline:productform:error",{detail:errorDetail,bubbles:!0}));const formEl=this.formEl,productRootEl=formEl.closest("[data-product-root]")||null;if(document.dispatchEvent(new CustomEvent("theme:product:error:add-to-cart",{detail:{productRootEl,formEl,...errorDetail}})),errors){console.error(`Encountered the following errors in form #${formId}:`),Array.isArray(errors)||(errors=[errors]);for(const error of errors)console.error(error.message||error);console.error(`End errors for form #${formId}.`)}}else this.$root.dispatchEvent(new CustomEvent("baseline:productform:success",{bubbles:!0})),document.body.dispatchEvent(new CustomEvent("baseline:cart:afteradditem",{bubbles:!0,detail:{response:data,sourceId:formId}}))}}),product_group_picker_default=()=>({cacheGroupProductsFor:Shopify?.designMode?0:3e5,init(){requestIdleCallback(()=>{this.preloadGroupProducts()})},preloadGroupProducts(){if(window.shouldTryToSaveData()){console.log("Preference to save data detected, will not preload sibling products");return}const linkEls=this.$root?.querySelectorAll("a[href]");if(!linkEls||linkEls.length===0)return;const urlsToPreload=Array.from(linkEls).map(linkEl=>this.isPrimaryProductOnPage?linkEl.href:getURLWithParams(linkEl.href,[this.identifyingURLParam]));for(const urlToPreload of urlsToPreload)fetchHTML(urlToPreload,void 0,this.cacheGroupProductsFor,!!Shopify?.designMode)},selectGroupProduct(){if(this.isPrimaryProductOnPage)replaceMainContent(this.$el.href,void 0,this.cacheGroupProductsFor);else{const updatedProductURL=getURLWithParams(this.$el.href,[this.identifyingURLParam]);replaceElement(this.templateType==="quick-buy"?this.resolvedParentRoot:this.resolvedParentRoot.closest(".shopify-section"),updatedProductURL,void 0,this.cacheGroupProductsFor)}}});deferrableData("Product",product_default),deferrableData("ProductForm",product_form_default),deferrableData("ProductGroupPicker",product_group_picker_default);
2//# sourceMappingURL=/cdn/shop/t/10/assets/island-product.bundle.js.map?v=178329730740261958301787701717

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.