PageSourceSearch

https://www.durobo.com/cdn/shop/t/117/assets/contact-form.js?v=110809356409089258681787813096

js durobo.com collected 2026-09-30 13:30:42 UTC 4,305 bytes, 2 lines download raw bytes

1class ContactForm{constructor(){this.newsletterResetTimers=new WeakMap,this.init()}init(){this.setupTextareaAutoResize(),this.setupFormSubmission(),this.setupFloatingLabels(),window.addEventListener("pageshow",()=>{this.resetNewsletterFormStates()})}setupTextareaAutoResize(){document.querySelectorAll('textarea[id="ContactForm-body"]').forEach(textarea=>{this.adjustTextareaHeight(textarea),textarea.addEventListener("input",()=>{this.adjustTextareaHeight(textarea)}),textarea.addEventListener("focus",()=>{this.adjustTextareaHeight(textarea)})})}adjustTextareaHeight(textarea){textarea.style.height="auto";const newHeight=Math.max(120,Math.min(300,textarea.scrollHeight));textarea.style.height=newHeight+"px"}setupFloatingLabels(){document.querySelectorAll("#ContactForm input, #ContactForm textarea").forEach(input=>{this.updateLabelState(input),["input","blur","focus"].forEach(eventName=>{input.addEventListener(eventName,()=>{this.updateLabelState(input)})})})}updateLabelState(input){const fieldContainer=input.parentElement,label=fieldContainer?.querySelector(`label[for="${input.id}"]`);!fieldContainer||!label||(input.value.trim()!==""||document.activeElement===input?label.classList.add("bx--translate-y-6","bx-scale-75","bx-text-theme-black"):label.classList.remove("bx--translate-y-6","bx-scale-75","bx-text-theme-black"))}setupFormSubmission(){const contactForm=document.getElementById("ContactForm"),contactSubmitBtn=contactForm?.querySelector('button[type="submit"]');contactForm&&contactSubmitBtn&&(contactForm.addEventListener("submit",()=>{contactSubmitBtn.getAttribute("data-original-text")||contactSubmitBtn.setAttribute("data-original-text",contactSubmitBtn.textContent),contactSubmitBtn.disabled=!0,contactSubmitBtn.textContent="Sending..."}),contactForm.parentElement.querySelector('[class*="bg-red"]')&&(contactSubmitBtn.disabled=!1,contactSubmitBtn.textContent=contactSubmitBtn.getAttribute("data-original-text")||"Send")),this.setupNewsletterFormSubmission()}setupNewsletterFormSubmission(){this.getNewsletterForms().forEac
1h(form=>{const submitBtn=form.querySelector('button[type="submit"]'),submitText=submitBtn?.querySelector(".submit-text"),loadingSpinner=submitBtn?.querySelector(".loading-spinner");!submitBtn||!submitText||!loadingSpinner||form.hasAttribute("data-newsletter-handled")||(form.setAttribute("data-newsletter-handled","true"),form.addEventListener("submit",event=>{if(event.defaultPrevented)return;if(form.dataset.newsletterSubmitting==="true"){event.preventDefault();return}form.dataset.newsletterSubmitting="true",submitBtn.setAttribute("aria-busy","true"),submitBtn.setAttribute("aria-disabled","true"),submitBtn.classList.add("bx-cursor-not-allowed"),this.animateNewsletterLoading(submitText,loadingSpinner,!0);const resetTimer=window.setTimeout(()=>{this.resetNewsletterFormState(form)},12e3);this.newsletterResetTimers.set(form,resetTimer)}))}),this.resetNewsletterFormStates()}getNewsletterForms(){return Array.from(document.querySelectorAll("form")).filter(form=>!!(form.querySelector('input[type="email"][name="contact[email]"]')&&form.querySelector('input[name="contact[tags]"]')))}animateNewsletterLoading(submitText,loadingSpinner,isLoading){submitText.style.opacity=isLoading?"0":"1",loadingSpinner.style.opacity=isLoading?"1":"0"}
1resetNewsletterFormStates(){this.getNewsletterForms().forEach(form=>{this.resetNewsletterFormState(form)})}resetNewsletterFormState(form){const resetTimer=this.newsletterResetTimers.get(form);resetTimer&&(window.clearTimeout(resetTimer),this.newsletterResetTimers.delete(form)),delete form.dataset.newsletterSubmitting;const submitBtn=form.querySelector('button[type="submit"]'),submitText=submitBtn?.querySelector(".submit-text"),loadingSpinner=submitBtn?.querySelector(".loading-spinner");!submitBtn||!submitText||!loadingSpinner||(submitBtn.disabled=!1,submitBtn.removeAttribute("aria-busy"),submitBtn.removeAttribute("aria-disabled"),submitBtn.classList.remove("bx-cursor-not-allowed"),this.animateNewsletterLoading(submitText,loadingSpinner,!1))}}function initContactForm(){new ContactForm}document.readyState==="loading"?document.addEventListener("DOMContentLoaded",initContactForm,{once:!0}):initContactForm();
2//# sourceMappingURL=/cdn/shop/t/117/assets/contact-form.js.map?v=110809356409089258681787813096

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.