1(()=>{"use strict";class t extends window.PluginBaseClass{static #t=this.options={url:""};init(){this._form=this.el.matches("[data-dura-survey-form]")?this.el:this.el.querySelector("[data-dura-survey-form]"),this._form&&(this._wrapper=this.el.closest("[data-dura-survey-wrapper]")||this._form.parentNode,this._success=this._wrapper?this._wrapper.querySelector("[data-dura-survey-success]"):null,this._formError=this._form.querySelector("[data-dura-survey-form-error]"),this._formErrorDefault=this._formError?this._formError.textContent.trim():"",this._submitButton=this._form.querySelector('[type="submit"]'),this._submitting=!1,this._instant=this._form.hasAttribute("data-dura-survey-instant"),this._instant&&this._initInstantMode(),this._form.addEventListener("submit",this._onSubmit.bind(this)))}_initInstantMode(){this._answerUrl=this._form.getAttribute("data-dura-survey-answer-url"),this._savedTimers=new Map;let t=this._form.querySelector("[data-dura-survey-actions]");t&&t.setAttribute("hidden","hidden");let e=this._form.querySelector("[data-dura-survey-autosave-hint]");e&&e.removeAttribute("hidden"),this._form.addEventListener("change",this._onAnswerChanged.bind(this))}_onAnswerChanged(t){let e=t.target.closest("[data-dura-survey-question]");if(!e)return;let r=e.getAttribute("data-dura-survey-question");this._clearQuestionError(r),this._saveAnswer(r,this._collectValues(e))}_collectValues(t){let e=[];return t.querySelectorAll("input, select, textarea").forEach(t=>{if("radio"===t.type||"checkbox"===t.type){t.checked&&e.push(t.value);return}""!==t.value&&e.push(t.value)}),e}_saveAnswer(t,e){let r=new FormData;r.append("surveyId",this._surveyId()),r.append("questionId",t),1===e.length?r.append("value",e[0]):e.forEach(t=>r.append("values[]",t)),fetch(this._answerUrl,{method:"POST",body:r,headers:{"X-Requested-With":"XMLHttpRequest"},credentials:"same-origin"}).then(t=>t.json()).then(e=>{e&&e.success?this._flashSaved(t):this._showErrors(e&&e.errors?e.errors:{})}).catch(()=>{this._showFormError()})}_surveyId(){let t=this._form.querySelector('input[name="surveyId"]');return t?t.value:""}_flashSaved(t){let e=this._form.querySelector(`[data-dura-survey-saved="${t}"]`);e&&(e.removeAttribute("hidden"),window.clearTimeout(this._savedTimers.get(t)),this._savedTimers.set(t,window.setTimeout(()=>{e.setAttribute("hidden","hidden")},2e3)))}_clearQuestionError(t){let e=this._form.querySelector(`[data-dura-survey-error="${t}"]`),r=this._form.querySelector(`[data-dura-survey-question="${t}"]`);e&&(e.textContent="",e.setAttribute("hidden","hidden")),r&&r.classList.remove("has-error"),this._formError&&this._formError.setAttribute("hidden","hidden")}_onSubmit(t){if(t.preventDefault(),this._instant||this._submitting)return;this._clearErrors();let e=this.options.url||this._form.getAttribute("action"),r=new FormData(this._form);this._setSubmitting(!0),fetch(e,{method:"POST",body:r,headers:{"X-Requested-With":"XMLHttpRequest"},credentials:"same-origin"}).then(t=>t.json()).then(t=>{t&&t.success?this._showSuccess(t.html):this._showErrors(t&&t.errors?t.errors:{})}).catch(()=>{this._showFormError()}).finally(()=>{this._setSubmitting(!1)})}_showSuccess(t){this._success&&(t&&(this._success.innerHTML=t),this._success.removeAttribute("hidden"),this._success.scrollIntoView({behavior:"smooth",block:"center"})),this._form.setAttribute("hidden","hidden")}_showErrors(t){let e=null;Object.keys(t).forEach(r=>{let s=t[r];if("_form"===r){this._showFormError(s),e||(e=this._formError);return}let i=this._form.querySelector(`[data-dura-survey-error="${r}"]`),o=this._form.querySelector(`[data-dura-survey-question="${r}"]`);i&&(i.textContent=s,i.removeAttribute("hidden"),e||(e=i)),o&&o.classList.add("has-error")}),e&&e.scrollIntoView({behavior:"smooth",block:"center"})}_showFormError(t){this._formError&&(this._formError.textContent=t||this._formErrorDefault,this._formError.removeAttribute("hidden"))}_clearErrors(){this._form.querySelectorAll("[data-dura-survey-error]").forEach(t=>{t.textContent="",t.setAttribute("hidden","hidden")}),this._form.querySelectorAll("[data-dura-survey-question].has-error").forEach(t=>{t.classList.remove("has-error")}),this._formError&&this._formError.setAttribute("hidden","hidden")}_setSubmitting(t){this._submitting=t,this._submitButton&&(this._submitButton.disabled=t,this._submitButton.classList.toggle("is-loading",t))}}window.PluginManager.register("DuraSurvey",t,"[data-dura-survey]")})();
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.