customElements.get("recipient-form")||customElements.define("recipient-form",class extends HTMLElement{constructor(){super(),this.cart=document.querySelector("cart-notification")||document.querySelector("cart-drawer"),this.recipientFieldsLiveRegion=this.querySelector(`#Recipient-fields-live-region-${this.dataset.sectionId}`),this.checkboxInput=this.querySelector(`#Recipient-checkbox-${this.dataset.sectionId}`),this.checkboxInput.disabled=!1,this.hiddenControlField=this.querySelector(`#Recipient-control-${this.dataset.sectionId}`),this.hiddenControlField.disabled=!0,this.emailInput=this.querySelector(`#Recipient-email-${this.dataset.sectionId}`),this.nameInput=this.querySelector(`#Recipient-name-${this.dataset.sectionId}`),this.messageInput=this.querySelector(`#Recipient-message-${this.dataset.sectionId}`),this.sendonInput=this.querySelector(`#Recipient-send-on-${this.dataset.sectionId}`),this.offsetProperty=this.querySelector(`#Recipient-timezone-offset-${this.dataset.sectionId}`),this.offsetProperty&&(this.offsetProperty.value=new Date().getTimezoneOffset().toString()),this.errorMessageWrapper=this.querySelector(".product-form__recipient-error-message-wrapper"),this.errorMessageList=this.errorMessageWrapper?.querySelector("ul"),this.errorMessage=this.errorMessageWrapper?.querySelector(".error-message"),this.defaultErrorHeader=this.errorMessage?.innerText,this.currentProductVariantId=this.dataset.productVariantId,this.addEventListener("change",this.onChange.bind(this)),this.onChange()}cartUpdateUnsubscriber=void 0;variantChangeUnsubscriber=void 0;cartErrorUnsubscriber=void 0;connectedCallback(){this.cartUpdateUnsubscriber=subscribe(PUB_SUB_EVENTS.cartUpdate,event=>{event.source==="product-form"&&event.productVariantId.toString()===this.currentProductVariantId&&this.resetRecipientForm()}),this.variantChangeUnsubscriber=subscribe(PUB_SUB_EVENTS.variantChange,event=>{event.data.sectionId===this.dataset.sectionId&&(this.currentProductVariantId=event.data.variant.id.toString())}),this.cartUpdateUnsubscriber=subscribe(PUB_SUB_EVENTS.cartError,event=>{event.source==="product-form"&&event.productVariantId.toString()===this.currentProductVariantId&&this.displayErrorMessage(event.message,event.errors)})}disconnectedCallback(){this.cartUpdateUnsubscriber&&this.cartUpdateUnsubscriber(),this.variantChangeUnsubscriber&&this.variantChangeUnsubscriber(),this.cartErrorUnsubscriber&&this.cartErrorUnsubscriber()}onChange(){this.checkboxInput.checked?(this.enableInputFields(),this.recipientFieldsLiveRegion.innerText=window.accessibilityStrings.recipientFormExpanded):(this.clearInputFields(),this.disableInputFields(),this.clearErrorMessage(),this.recipientFieldsLiveRegion.innerText=window.accessibilityStrings.recipientFormCollapsed)}inputFields(){return[this.emailInput,this.nameInput,this.messageInput,this.sendonInput]}disableableFields(){return[...this.inputFields(),this.offsetProperty]}clearInputFields(){this.inputFields().forEach(field=>field.value="")}enableInputFields(){this.disableableFields().forEach(field=>field.disabled=!1)}disableInputFields(){this.disableableFields().forEach(field=>field.disabled=!0)}displayErrorMessage(title,body){if(this.clearErrorMessage(),this.errorMessageWrapper.hidden=!1,typeof body=="object")return this.errorMessage.innerText=this.defaultErrorHeader,Object.entries(body).forEach(([key,value])=>{const errorMessageId=`RecipientForm-${key}-error-${this.dataset.sectionId}`,fieldSelector=`#Recipient-${key}-${this.dataset.sectionId}`,message=`${value.join(", ")}`,errorMessageElement=this.querySelector(`#${errorMessageId}`),errorTextElement=errorMessageElement?.querySelector(".error-message");if(!errorTextElement)return;this.errorMessageList&&this.errorMessageList.appendChild(this.createErrorListItem(fieldSelector,message)),errorTextElement.innerText=`${message}.`,errorMessageElement.classList.remove("hidden");const inputElement=this[`${key}Input`];inputElement&&(inputElement.setAttribute("aria-invalid",!0),inputElement.setAttribute("aria-describedby",errorMessageId))});this.errorMessage.innerText=body}createErrorListItem(target,message){const li=document.createElement("li"),a=document.createElement("a");return a.setAttribute("href",target),a.innerText=message,li.appendChild(a),li.className="error-message",li}clearErrorMessage(){this.errorMessageWrapper.hidden=!0,this.errorMessageList&&(this.errorMessageList.innerHTML=""),this.querySelectorAll(".recipient-fields .form__message").forEach(field=>{field.classList.add("hidden");const textField=field.querySelector(".error-message");textField&&(textField.innerText="")}),[this.emailInput,this.messageInput,this.nameInput,this.sendonInput].forEach(inputElement=>{inputElement.setAttribute("aria-invalid",!1),inputElement.removeAttribute("aria-describedby")})}resetRecipientForm(){this.checkboxInput.checked&&(this.checkboxInput.checked=!1,this.clearInputFields(),this.clearErrorMessage())}});
//# sourceMappingURL=/cdn/shop/t/8/assets/recipient-form.js.map?v=54829414049262012371700572856
