1"use strict";(self.webpackChunk_mvps_genesis_quickstart_theme=self.webpackChunk_mvps_genesis_quickstart_theme||[]).push([[2196],{2196:(e,t,o)=>{o.d(t,{AjaxLoginRegister:()=>i});var r=o(1171),s=o(1559);class i{#e;container;messageElement;formElements;loader;loaderElement;locationAttribute;primaryToggleElements;secondaryToggleElements;toggleFormOpenClass;toggleFormHeadingElement;beforeSubmit;constructor(e){let{beforeSubmit:t=null,formElements:o=".js-login-register-form",formMessageElement:i=".js-login-register-message",loaderElement:n="#js-loading-container",locationAttribute:l="data-location",toggleFormEnabled:a=!0,toggleFormHeadingAttribute:g="data-heading",toggleFormHeadingElement:m="#js-login-register-title",toggleFormOpenClass:d="login-register__toggle--open",toggleFormPrimaryControlElement:h="#js-login-register-primary-toggle-control",toggleFormPrimaryElement:c="#js-login-register-primary-toggle",toggleFormSecondaryControlElement:E="#js-login-register-secondary-toggle-control",toggleFormSecondaryElement:u="#js-login-register-secondary-toggle"}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};this.#e=new s.A(this),this.container=this.#e.isElement("container",e),this.formElements=this.#e.isElementList("formElements",o,{container:this.container});for(const e of this.formElements)e.messageElement=this.#e.isElement("formMessageElement",i,{container:e});this.beforeSubmit=t,this.locationAttribute=this.#e.isString("locationAttribute",l),this.loader=null,this.loaderElement=this.#e.isElement("loaderElement",n,{container:this.container,required:!1}),this.loaderElement&&(this.loader=new r.default(this.loaderElement,{overlayElement:this.container})),this.primaryToggleElements={},this.secondaryToggleElements={},this.toggleFormOpenClass=this.#e.isString("toggleFormOpenClass",d),this.toggleFormHeadingElement=this.#e.isElement("toggleFormHeadingElement",m,{container:this.container,required:!1}),this.#e.isBoolean("toggleFormEnabled",a),a&&(this.primaryToggleElements={control:this.#e.isElement("toggleFormPrimaryControlElement",h,{container:this.container}),element:this.#e.isElement("toggleFormPrimaryElement",c,{container:this.container})},this.secondaryToggleElements={control:this.#e.isElement("toggleFormSecondaryControlElement",E,{container:this.container}),element:this.#e.isElement("toggleFormSecondaryElement",u,{container:this.container})},""!==g&&(this.primaryToggleElements.headingTitle=this.primaryToggleElements.control.getAttribute(this.#e.isString("toggleFormHeadingAttribute",g)),this.secondaryToggleElements.headingTitle=this.secondaryToggleElements.control.getAttribute(this.#e.isString("toggleFormHeadingAttribute",g))),this.initFormToggleElements()),this.bindEvents()}initFormToggleElements(){this.primaryToggleElements.control.addEventListener("click",(e=>{e.preventDefault(),this.toggleForms(this.primaryToggleElements,this.secondaryToggleElements)})),this.secondaryToggleElements.control.addEventListener("click",(e=>{e.preventDefault(),this.toggleForms(this.secondaryToggleElements,this.primaryToggleElements)}))}toggleForms(e,t){t.element.classList.remove(this.toggleFormOpenClass),t.control.setAttribute("aria-expanded","false"),t.control.classList.remove("u-hidden"),t.control.focus(),e.control.classList.add("u-hidden"),e.control.setAttribute("aria-expanded","true"),e.element.classList.add(this.toggleFormOpenClass),e.headingTitle&&this.toggleFormHeadingElement&&(this.toggleFormHeadingElement.textContent=e.headingTitle)}bindEvents(){for(const e of this.formElements)e.addEventListener("submit",this.onSubmit.bind(this))}async onSubmit(e){e.preventDefault(),e.stopImmediatePropagation();const t=e.target,o=new FormData(t),r=t.querySelector('[type="submit"]');let s={errorMessage:"",formData:o,formElement:t,returnPageCode:""};r.disabled=!0,t.messageElement.innerHTML="",this.loader&&this.loader.show(),"function"==typeof this.beforeSubmit&&this.beforeSubmit(this,e);const i=await fetch(t.action,{body:o,method:t.method||"POST"});if(s.responseHeaderPageCode=i.headers.get("g-mm-page-code"),r.disabled=!1,!i.ok)throw this.onFail(s),Error(i.statusText);const n=await i.text(),l=(new DOMParser).parseFromString(n,"text/html"),a=i.headers.get("g-mm-cust-sess")??!1;s.errorMessage=l.querySelector(".g-messages--error")??"",a||!s.errorMessage&&s.responseHeaderPageCode===window.mivaJS.Page_Code?this.onSuccess(t):this.onFail(s)}onSuccess(e){let t=e.getAttribute(this.locationAttribute);t?("action"===t.toLowerCase()&&(t=e.action),window.location=t):window.location.reload()}onFail(e){let t=e.errorMessage&&e.errorMessage.outerHTML?e.errorMessage.outerHTML:"";t||(this.defaultErrorMessage||(this.defaultErrorMessage=document.createElement("div"),this.defaultErrorMessage.classList.add("g-messages","g-messages--error"),this.defaultErrorMessage.textContent="Unable to process form."),t=this.defaultErrorMessage.outerHTML),e.formElement.messageElement.innerHTML=t,this.loader&&this.loader.hide()}}}}]); 2//# sourceMappingURL=2196.969b46a1736a52e76836.chunk.js.map
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.