PageSourceSearch

https://carrollsirishgifts.com/cdn/shop/t/115/assets/global.js?v=27981379664149686671777549456

js carrollsirishgifts.com collected 2026-10-02 11:23:55 UTC 23,325 bytes, 2 lines download raw bytes

1let api_token;window.Shopify.shop==="fostr-underscore.myshopify.com"&&(api_token="206fa93198662aeb44f1a671aa9f45f4"),window.API_VERSION="2023-10",api_token&&(window.API_ACCESS=api_token);function getFocusableElements(container){return Array.from(container.querySelectorAll("summary, a[href], button:enabled, [tabindex]:not([tabindex^='-']), [draggable], area, input:not([type=hidden]):enabled, select:enabled, textarea:enabled, object, iframe"))}document.querySelectorAll('[id^="Details-"] summary').forEach(summary=>{summary.setAttribute("role","button"),summary.setAttribute("aria-expanded",summary.parentNode.hasAttribute("open")),summary.nextElementSibling.getAttribute("id")&&summary.setAttribute("aria-controls",summary.nextElementSibling.id),summary.addEventListener("click",event=>{event.currentTarget.setAttribute("aria-expanded",!event.currentTarget.closest("details").hasAttribute("open"))}),!summary.closest("header-drawer")&&summary.parentElement.addEventListener("keyup",onKeyUpEscape)});const trapFocusHandlers={};function trapFocus(container,elementToFocus=container){var elements=getFocusableElements(container),first=elements[0],last=elements[elements.length-1];removeTrapFocus(),trapFocusHandlers.focusin=event=>{event.target!==container&&event.target!==last&&event.target!==first||document.addEventListener("keydown",trapFocusHandlers.keydown)},trapFocusHandlers.focusout=function(){document.removeEventListener("keydown",trapFocusHandlers.keydown)},trapFocusHandlers.keydown=function(event){event.code.toUpperCase()==="TAB"&&(event.target===last&&!event.shiftKey&&(event.preventDefault(),first.focus()),(event.target===container||event.target===first)&&event.shiftKey&&(event.preventDefault(),last.focus()))},document.addEventListener("focusout",trapFocusHandlers.focusout),document.addEventListener("focusin",trapFocusHandlers.focusin),elementToFocus.focus(),elementToFocus.tagName==="INPUT"&&["search","text","email","url"].includes(elementToFocus.type)&&elementToFocus.value&&elementToFocus.setSelectionRange(0,elementToFocus.value.length)}try{document.querySelector(":focus-visible")}catch{focusVisiblePolyfill()}function focusVisiblePolyfill(){const navKeys=["ARROWUP","ARROWDOWN","ARROWLEFT","ARROWRIGHT","TAB","ENTER","SPACE","ESCAPE","HOME","END","PAGEUP","PAGEDOWN"];let currentFocusedElement=null,mouseClick=null;window.addEventListener("keydown",event=>{navKeys.includes(event.code.toUpperCase())&&(mouseClick=!1)}),window.addEventListener("mousedown",event=>{mouseClick=!0}),window.addEventListener("focus",()=>{currentFocusedElement&&currentFocusedElement.classList.remove("focused"),!mouseClick&&(currentFocusedElement=document.activeElement,currentFocusedElement.classList.add("focused"))},!0)}function pauseAllMedia(){document.querySelectorAll(".js-youtube").forEach(video=>{video.contentWindow.postMessage('{"event":"command","func":"pauseVideo","args":""}',"*")}),document.querySelectorAll(".js-vimeo").forEach(video=>{video.contentWindow.postMessage('{"method":"pause"}',"*")}),document.querySelectorAll("video").forEach(video=>video.pause()),document.querySelectorAll("product-model").forEach(model=>{model.modelViewerUI&&model.modelViewerUI.pause()})}function removeTrapFocus(elementToFocus=null){document.removeEventListener("focusin",trapFocusHandlers.focusin),document.removeEventListener("focusout",trapFocusHandlers.focusout),document.removeEventListener("keydown",trapFocusHandlers.keydown),elementToFocus&&elementToFocus.focus()}function onKeyUpEscape(event){if(event.code.toUpperCase()!=="ESCAPE")return;const openDetailsElement=event.target.closest("details[open]");if(!openDetailsElement)return;const summaryElement=openDetailsElement.querySelector("summary");openDetailsElement.removeAttribute("open"),summaryElement.setAttribute("aria-expanded",!1),summaryElement.focus()}class QuantityInput extends HTMLElement{constructor(){super(),this.input=this.querySelector("input"),this.changeEvent=ne
1w Event("change",{bubbles:!0}),this.input.addEventListener("change",this.onInputChange.bind(this)),this.querySelectorAll("button").forEach(button=>button.addEventListener("click",this.onButtonClick.bind(this)))}quantityUpdateUnsubscriber=void 0;connectedCallback(){this.validateQtyRules(),this.quantityUpdateUnsubscriber=subscribe(PUB_SUB_EVENTS.quantityUpdate,this.validateQtyRules.bind(this))}disconnectedCallback(){this.quantityUpdateUnsubscriber&&this.quantityUpdateUnsubscriber()}onInputChange(event){this.validateQtyRules()}onButtonClick(event){event.preventDefault();const previousValue=this.input.value;event.target.name==="plus"?this.input.stepUp():this.input.stepDown(),previousValue!==this.input.value&&this.input.dispatchEvent(this.changeEvent)}validateQtyRules(){const value=parseInt(this.input.value);if(this.input.min){const min=parseInt(this.input.min);this.querySelector(".quantity__button[name='minus']").classList.toggle("disabled",value<=min)}if(this.input.max){const max=parseInt(this.input.max);this.querySelector(".quantity__button[name='plus']").classList.toggle("disabled",value>=max)}}}customElements.define("quantity-input",QuantityInput);function debounce(fn,wait){let t;return(...args)=>{clearTimeout(t),t=setTimeout(()=>fn.apply(this,args),wait)}}function fetchConfig(type="json"){return{method:"POST",headers:{"Content-Type":"application/json",Accept:`application/${type}`}}}typeof window.Shopify>"u"&&(window.Shopify={}),Shopify.bind=function(fn,scope){return function(){return fn.apply(scope,arguments)}},Shopify.setSelectorByValue=function(selector,value){for(var i=0,count=selector.options.length;i<count;i++){var option=selector.options[i];if(value==option.value||value==option.innerHTML)return selector.selectedIndex=i,i}},Shopify.addListener=function(target,eventName,callback){target.addEventListener?target.addEventListener(eventName,callback,!1):target.attachEvent("on"+eventName,callback)},Shopify.postLink=function(path,options){options=options||{};var method=options.method||"post",params=options.parameters||{},form=document.createElement("form");form.setAttribute("method",method),form.setAttribute("action",path);for(var key in params){var hiddenField=document.createElement("input");hiddenField.setAttribute("type","hidden"),hiddenField.setAttribute("name",key),hiddenField.setAttribute("value",params[key]),form.appendChild(hiddenField)}document.body.appendChild(form),form.submit(),document.body.removeChild(form)},Shopify.CountryProvinceSelector=function(country_domid,province_domid,options){this.countryEl=document.getElementById(country_domid),this.provinceEl=document.getElementById(province_domid),this.provinceContainer=document.getElementById(options.hideElement||province_domid),Shopify.addListener(this.countryEl,"change",Shopify.bind(this.countryHandler,this)),this.initCountry(),this.initProvince()},Shopify.CountryProvinceSelector.prototype={initCountry:function(){var value=this.countryEl.getAttribute("data-default");Shopify.setSelectorByValue(this.countryEl,value),this.countryHandler()},initProvince:function(){var value=this.provinceEl.getAttribute("data-default");value&&this.provinceEl.options.length>0&&Shopify.setSelectorByValue(this.provinceEl,value)},countryHandler:function(e){var opt=this.countryEl.options[this.countryEl.selectedIndex],raw=opt.getAttribute("data-provinces"),provinces=JSON.parse(raw);if(this.clearOptions(this.provinceEl),provinces&&provinces.length==0)this.provinceContainer.style.display="none";else{for(var i=0;i<provinces.length;i++){var opt=document.createElement("option");opt.value=provinces[i][0],opt.innerHTML=provinces[i][1],this.provinceEl.appendChild(opt)}this.provinceContainer.style.display=""}},clearOptions:function(selector){for(;selector.firstChild;)selector.removeChild(selector.firstChild)},setOptions:function(selector,values){for(var i=0,count=values.length;i<values.length;i++){var opt=document.createElement("option");opt.value=values[i],opt.innerHTML=values[i],selector.appendChild(opt)}}};class ModalDialog extends HTMLElement{constructor(){super(),this.querySelector('[id^="ModalClose-"]').addEventListener("click",this.hide.bind(this,!1)),this.addEventListener("keyup",event=>{event.code.toUpperCase()==="ESCAPE"&&this.hide()}),this.classList.contains("media-modal")?this.addEventListener("pointerup",event=>{event.pointerType==="mouse"&&!event.target.closest("deferred-media, product-model")&&this.hide()}):this.addEventListener("click",event=>{event.target===this&&this.hide()})}connectedCallback(){this.moved||(this.moved=!0,document.body.appendChild(this))}show(opener){this.openedBy=opener;const popup=this.querySelector(".template-popup");document.body.classList.add("overflow-hidden"),this.setAttribute("open",""),popup&&popup.loadContent(),trapFocus(this,this.querySelector('[role="dialog"]')),window.pauseAllMedia()}hide(){document.body.classList.remove("overflow-hidden"),document.body.dispatchEvent(new CustomEvent("modalClosed")),this.removeAttribute("open"),removeTrapFocus(this.openedBy),window.pauseAllMedia()}}customElements.define("modal-dialog",ModalDialog);class ModalOpener extends HTMLElement{constructor(){super();const button=this.querySelector("button");button&&button.addEventListener("click",()=>{const modal=document.querySelector(this.getAttribute("data-modal"));modal&&modal.show(button)})}}customElements.define("modal-opener",ModalOpener);class DeferredMedia extends HTMLElement{constructor(){super();const poster=this.querySelector('[id^="Deferred-Poster-"]');poster&&poster.addEventListener("click",this.loadContent.bind(this))}loadContent(focus=!0){if(window.pauseAllMedia(),!this.getAttribute("loaded")){const content=document.createElement("div");content.appendChild(this.querySelector("template").content.firstElementChild.cloneNode(!0)),this.setAttribute("loaded",!0);const deferredElement=this.appendChild(content.querySelector("video, model-viewer, iframe"));focus&&deferredElement.focus(),deferredElement.nodeName=="VIDEO"&&deferredElement.getAttribute("autoplay")&&deferredElement.play()}}}customElements.define("deferred-media",DeferredMedia);class VariantSelects extends HTMLElement{constructor(){super(),document.querySelectorAll('.product-form__input input[type="radio"], .product-form__input select').forEach(option=>option.addEventListener("change",this.whichInputUpdated.bind(option))),this.addEventListener("change",this.onVariantChange)}whichInputUpdated(element){var optionname=element.target.closest(".product-form__input").querySelector(".form__label").dataset.optionname;document.querySelectorAll(".product-form__input").forEach(option=>option.classList.remove("activeset")),document.querySelectorAll(`.form__label[data-optionname="${optionname}"]`).forEach(option=>option.closest(".product-form__input").classList.add("activeset"))}onVariantChange(){this.updateOptions(),this.updateMasterId(),this.toggleAddButton(!0,"",!1),this.updatePickupAvailability(),this.removeErrorMessage(),this.updateV
1ariantStatuses(),this.currentVariant?(this.toggleAddButton(!1,"",!0),this.updateMedia(),this.updateURL(),this.updateVariantInput(),this.renderProductInfo(),this.updateShareUrl()):(this.toggleAddButton(!0,"",!0),this.setUnavailable());var allSelectors=document.querySelectorAll(".section-main-product .product__variant-selector.option-select");allSelectors.forEach(selector=>{selector!=this&&this.updatePairUI(selector,this)});const selectedSwatch=document.querySelector(".js-selected-swatch");if(selectedSwatch&&this.currentVariant&&this.currentVariant.options){const optionPosition=parseFloat(selectedSwatch.getAttribute("data-position"));selectedSwatch.innerHTML=this.currentVariant.options[optionPosition-1]}}updateOptions(){this.options=Array.from(this.querySelectorAll("select"),select=>select.value)}updateMasterId(){this.currentVariant=this.getVariantData().find(variant=>(variant.options=variant.options.filter(option=>option!="Default Title"),!variant.options.map((option,index)=>this.options[index]===option).includes(!1)))}updateMedia(){if(!this.currentVariant||!this.currentVariant.featured_media)return;const mediaGalleries=document.querySelectorAll(`[id^="MediaGallery-${this.dataset.section}"]`);let featuredMedia=null;mediaGalleries.forEach(mediaGallery=>{featuredMedia=mediaGallery.querySelector(`#Slide-${this.dataset.section}-${this.currentVariant.featured_media.id}`)}),featuredMedia==null?(mediaGalleries.forEach(mediaGallery=>{mediaGallery.querySelector("slider-component ul li:first-child img").src=this.currentVariant.featured_media.preview_image.src,mediaGallery.querySelector("slider-component ul li:first-child img").removeAttribute("srcset"),mediaGallery.querySelector("slider-component ul li:first-child img").setAttribute("alt",this.currentVariant.featured_media.alt),mediaGallery.querySelector("slider-component ul li:first-child img").setAttribute("width",this.currentVariant.featured_media.preview_image.width),mediaGallery.querySelector("slider-component ul li:first-child img").setAttribute("height",this.currentVariant.featured_media.preview_image.height),mediaGallery.querySelector("slider-component ul li:first-child").setAttribute("data-media-id",this.currentVariant.featured_media.id),mediaGallery.querySelector("slider-component ul li:first-child").id=`Slide-${this.dataset.section}-${this.currentVariant.featured_media.id}`}),mediaGalleries.forEach(mediaGallery=>mediaGallery.setActiveMedia(`${this.dataset.section}-${this.currentVariant.featured_media.id}`,!0))):mediaGalleries.forEach(mediaGallery=>mediaGallery.setActiveMedia(`${this.dataset.section}-${this.currentVariant.featured_media.id}`,!0));const modalContent=document.querySelector(`#ProductModal-${this.dataset.section} .product-media-modal__content`);if(!modalContent)return;const newMediaModal=modalContent.querySelector(`[data-media-id="${this.currentVariant.featured_media.id}"]`);modalContent.prepend(newMediaModal)}updateURL(){!this.currentVariant||this.dataset.updateUrl==="false"||window.history.replaceState({},"",`${this.dataset.url}?variant=${this.currentVariant.id}`)}updateShareUrl(){const shareButton=document.getElementById(`Share-${this.dataset.section}`);!shareButton||!shareButton.updateUrl||shareButton.updateUrl(`${window.shopUrl}${this.dataset.url}?variant=${this.currentVariant.id}`)}updateVariantInput(){document.querySelectorAll(`#product-form-${this.dataset.section}, #product-form-installment-${this.dataset.section}`).forEach(productForm=>{const input=productForm.querySelector('input[name="id"]');input.value=this.currentVariant.id,input.dispatchEvent(new Event("change",{bubbles:!0}))})}updateVariantStatuses(){const selectedOptionOneVariants=this.variantData.filter(variant=>this.querySelector(":checked").value===variant.option1),inputWrappers=[...this.querySelectorAll(".product-form__input")];inputWrappers.forEach((option,index)=>{if(index===0)return;const optionInputs=[...option.querySelectorAll('input[type="radio"], option')],previousOptionSelected=inputWrappers[index-1].querySelector(":checked").value,availableOptionInputsValue=selectedOptionOneVariants.filter(variant=>variant.available&&variant[`option${index}`]===previousOptionSelected).map(variantOption=>variantOption[`option${index+1}`]);this.setInputAvailability(optionInputs,availableOptionInputsValue)})}setInputAvailability(listOfOptions,listOfAvailableOptions){listOfOptions.forEach(input=>{listOfAvailableOptions.includes(input.getAttribute("value"))?input.innerText=input.getAttribute("value"):input.innerText=window.variantStrings.unavailable_with_option.replace("[value]",input.getAttribute("value"))})}updatePickupAvailability(){const pickUpAvailability=document.querySelector("pickup-availability");pickUpAvailability&&(this.currentVariant&&this.currentVariant.available?pickUpAvailability.fetchAvailability(this.currentVariant.id):(pickUpAvailability.removeAttribute("available"),pickUpAvailability.innerHTML=""))}removeErrorMessage(){const section=this.closest("section");if(!section)return;const productForm=section.querySelector("product-form");productForm&&productForm.handleErrorMessage()}renderProductInfo(){const requestedVariantId=this.currentVariant.id,sectionId=this.dataset.originalSection?this.dataset.originalSection:this.dataset.section;fetch(`${this.dataset.url}?variant=${requestedVariantId}&section_id=${this.dataset.originalSection?this.dataset.originalSection:this.dataset.section}`).then(response=>response.text()).then(responseText=>{if(this.currentVariant.id!==requestedVariantId)return;const html=new DOMParser().parseFromString(responseText,"text/html"),destination=document.getElementById(`price-${this.dataset.section}`),destinationSticky=document.getElementById(`price-${this.dataset.section}-support`),source=html.getElementById(`price-${this.dataset.originalSection?this.dataset.originalSection:this.dataset.section}`),skuSource=html.getElementById(`Sku-${this.dataset.originalSection?this.dataset.originalSection:this.dataset.section}`),skuDestination=document.getElementById(`Sku-${this.dataset.section}`),inventorySource=html.getElementById(`Inventory-${this.dataset.originalSection?this.dataset.originalSection:this.dataset.section}`),inventoryDestination=document.getElementById(`Inventory-${this.dataset.section}`);source&&destination&&(destination.innerHTML=source.innerHTML),source&&destinationSticky&&(destinationSticky.innerHTML=source.innerHTML),inventorySource&&inventoryDestination&&(inventoryDestination.innerHTML=inventorySource.innerHTML),skuSource&&skuDestination&&(skuDestination.innerHTML=skuSource.innerHTML,skuDestination.classList.toggle("visibility-hidden",skuSource.classList.contains("visibility-hidden")));const price=document.getElementById(`price-${this.dataset.section}`),priceSticky=document.getElementById(`price-${this.dataset.section}-support`);price&&price.classList.remove("visibility-hidden"),priceSticky&&priceSticky.classList.remove("visibility-hidden");const tagsDestination=document.getElementById(`product-tags-${this.dataset.section}`),tagsSource=html.getElementById(`product-tags-${this.dataset.originalSection?this.dataset.originalSection:this.dataset.section}`);tagsSource&&tagsDestination&&(tagsDestination.innerHTML=tagsSource.innerHTML),inventoryDestination&&inventoryDestination.classList.toggle("visibility-hidden",inventorySource.innerText==="");const addButtonUpdated=html.getElementById(`ProductSubmitButton-${sectionId}`);this.toggleAddButton(addButtonUpdated?addButtonUpdated.hasAttribute("disabled"):!0,window.variantStrings.soldOut),publish(PUB_SUB_EVENTS.variantChange,{data:{sectionId,html,variant:this.currentVariant}})})}toggleAddButton(disable=!0,text,modifyClass=!0){const productForm=d
1ocument.getElementById(`product-form-${this.dataset.section}`);if(!productForm)return;const stickyAtcButton=document.getElementById(`sticky-${this.dataset.section}`),addButton=productForm.querySelector('[name="add"]'),addButtonText=productForm.querySelector('[name="add"] > span'),addButtonSticky=stickyAtcButton?.querySelector('[name="add"]'),addButtonTextSticky=stickyAtcButton?.querySelector('[name="add"] > span');addButton&&(disable?(addButton.setAttribute("disabled","disabled"),addButtonSticky&&addButtonSticky.setAttribute("disabled","disabled"),text&&(addButtonText.textContent=text,addButtonSticky&&(addButtonTextSticky.textContent=text))):(addButton.removeAttribute("disabled"),addButtonText.textContent=window.variantStrings.addToCart,addButtonSticky&&(addButtonSticky.removeAttribute("disabled"),addButtonTextSticky.textContent=window.variantStrings.addToCart)))}setUnavailable(){const button=document.getElementById(`product-form-${this.dataset.section}`),stickyAtcButton=document.getElementById(`sticky-${this.dataset.section}`),addButton=button.querySelector('[name="add"]'),addButtonText=button.querySelector('[name="add"] > span'),addButtonSticky=stickyAtcButton?.querySelector('[name="add"]'),addButtonTextSticky=stickyAtcButton?.querySelector('[name="add"] > span'),price=document.getElementById(`price-${this.dataset.section}`),priceSticky=document.getElementById(`price-${this.dataset.section}-support`),inventory=document.getElementById(`Inventory-${this.dataset.section}`),sku=document.getElementById(`Sku-${this.dataset.section}`);addButton&&(addButtonText.textContent=window.variantStrings.unavailable,addButtonSticky&&(addButtonTextSticky.textContent=window.variantStrings.unavailable),price&&price.classList.add("visibility-hidden"),priceSticky&&priceSticky.classList.add("visibility-hidden"),inventory&&inventory.classList.add("visibility-hidden"),sku&&sku.classList.add("visibility-hidden"))}getVariantData(){return this.variantData=this.variantData||JSON.parse(this.querySelector('[type="application/json"]').textContent),this.variantData}updatePairUI(paired,original){var originalTagName=original.tagName.toLowerCase(),pairedTagName=paired.tagName.toLowerCase(),originalSelectedItem="",originalSelectedItemValue="";if(originalTagName.includes("selects")){var itemSelect=original.querySelector(".activeset select");originalSelectedItem=itemSelect.options[itemSelect.selectedIndex],originalSelectedItemValue=originalSelectedItem.value}else originalSelectedItem=original.querySelector('.activeset input[type="radio"]:checked'),originalSelectedItemValue=originalSelectedItem.value;if(pairedTagName.includes("selects")){var event=new Event("change");paired.querySelector(".activeset select").value=originalSelectedItemValue,paired.querySelector(`.activeset option[data-value="${originalSelectedItemValue}"`).click(),paired.dispatchEvent(event)}else{paired.querySelector('.activeset input[type="radio"]:checked').checked=!1;var newTarget=paired.querySelector(`.activeset label[data-value="${originalSelectedItemValue}"`).getAttribute("for");paired.querySelector(`.activeset input[type="radio"]#${newTarget}`).checked=!0}}}customElements.define("variant-selects",VariantSelects);class VariantRadios extends VariantSelects{constructor(){super()}setInputAvailability(listOfOptions,listOfAvailableOptions){listOfOptions.forEach(input=>{listOfAvailableOptions.includes(input.getAttribute("value"))?input.classList.remove("disabled"):input.classList.add("disabled")})}updateOptions(){const fieldsets=Array.from(this.querySelectorAll("fieldset"));this.options=fieldsets.map(fieldset=>Array.from(fieldset.querySelectorAll("input")).find(radio=>radio.checked).value)}}customElements.define("variant-radios",VariantRadios);const toTopButtons=document.querySelectorAll(".js-back-to-top");toTopButtons.length&&toTopButtons.forEach(button=>{button.addEventListener("click",e=>{e.preventDefault(),window.scrollTo({top:0,behavior:"smooth"})})});const sizeGuideOpen=document.querySelector(".js-size-guide-open"),sizeGuideModal=document.querySelector("#size-guide-dialog");if(sizeGuideOpen&&sizeGuideModal){sizeGuideOpen.addEventListener("click",e=>{e.preventDefault(),sizeGuideModal.showModal(),document.body.classList.add("overflow-hidden")});const sizeGuideClose=document.querySelector(".js-size-guide-close");sizeGuideClose&&sizeGuideClose.addEventListener("click",e=>{e.preventDefault(),sizeGuideModal.close(),document.body.classList.remove("overflow-hidden")});const dialogContent=sizeGuideModal.querySelector(".dialog-content");dialogContent&&dialogContent.addEventListener("click",e=>{e.stopPropagation()})}
2//# sourceMappingURL=/cdn/shop/t/115/assets/global.js.map?v=27981379664149686671777549456

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.