1import{S as u,F as I,ai as v,s as y,z as p}from"./CFxGRstO.js";import{u as w}from"./DzpbyIkv.js";import{u as x}from"./CdviQ7zO.js";function g(){return{errorMessage:"",loadingQuestions:!1,questionnaireId:null,questions:[],questionsCount:0}}function q(e){return e instanceof I&&e.statusCode===404}function E(e){const s={[u.REWASD]:null,[u.REWASDBASIC]:null};function o(t){return $fetch("/api/survey/questions",{query:{software:t,kind:e}})}return{state:()=>({questionnaireStates:{[u.REWASD]:g(),[u.REWASDBASIC]:g()}}),getters:{errorMessage(t){return t.context?t.questionnaireStates[t.context.software].errorMessage:""},loadingQuestions(t){return t.context?t.questionnaireStates[t.context.software].loadingQuestions:!1},questionnaireId(t){return t.context?t.questionnaireStates[t.context.software].questionnaireId:null},questions(t){return t.context?t.questionnaireStates[t.context.software].questions:[]},questionsCount(t){return t.context?t.questionnaireStates[t.context.software].questionsCount:0}},actions:{setErrorMessage(t,r){const i=r||this.context?.software;i&&(this.questionnaireStates[i].errorMessage=t)},resetErrors(t){const r=t||this.context?.software;r&&(this.questionnaireStates[r].errorMessage="")},resetQuestions(t){const r=this.questionnaireStates[t];r.questions=[],r.questionsCount=0,r.questionnaireId=null},hasQuestionsLoaded(t){const r=this.questionnaireStates[t];return!!(r.questions.length&&r.questionnaireId)},handleSurveyNotFound(t){this.resetQuestions(t),this.resetErrors(t),this.context?.software===t&&this.closeSurvey()},async loadQuestions(t){const r=this.questionnaireStates[t];function i(n){r.questions=n.questions,r.questionsCount=n.questions.length,r.questionnaireId=n.questionnaireId}const m=s[t];if(m){const n=await m;i(n);return}r.loadingQuestions=!0,this.resetErrors(t),s[t]=o(t);try{const n=await s[t];i(n)}catch(n){throw q(n)||this.setErrorMessage("Oops, something went wrong. Please try again.",t),n}finally{r.loadingQuestions=!1,s[t]=null}},async ensureQuestionsLoaded(t){if(this.hasQuestionsLoaded(t))return!0;try{return await this.loadQuestions(t),!0}catch(r){if(q(r))return this.handleSurveyNotFound(t),!1;throw r}},async prefetchQuestions(t){const r=this.questionnaireStates[t];if(!(this.hasQuestionsLoaded(t)||r.loadingQuestions))try{await this.ensureQuestionsLoaded(t)}catch(i){console.error("Failed to prefetch survey questions",i)}},async submitFormWithCaptcha(){try{const t=await x().getRecaptchaToken();return await this.submitForm(t)}catch{return this.setErrorMessage("Oops, something went wrong. Please try again."),!1}}}}}const C="survey_completed",k="survey_skipped",Q=10080*60,O=5*365*24*60*60,h=E("download"),a={[u.REWASD]:null,[u.REWASDBASIC]:null};function l(e){return p(`${C}_${e}`,{maxAge:O})}function d(e){return p(`${k}_${e}`,{maxAge:Q})}async function A(e){return(await $fetch("/api/survey/is-completed",{query:{software:e}})).completed}const R=v("downloadSurvey",{state:()=>({isOpen:!1,coupon:"",form:{answers:[],email:""},stage:"download-started",context:null,...h.state()}),getters:{...h.getters,userEmail(){return y().user?.email}},actions:{...h.actions,resetFormState(){this.form={answers:[],email:""}},closeSurvey(){this.isOpen=!1,this.coupon="",this.stage="download-started",this.resetFormState(),this.resetErrors()},shouldShowSurvey(e){const s=l(e),o=d(e);return s.value?.toString()!=="1"&&o.value?.toString()!=="1"},async hasCompletedSurvey(e){if(!y().isSignedIn)return!1;const o=a[e];if(o)return await o;a[e]=A(e);try{const t=await a[e];if(t){const r=l(e);r.value="1"}return t}catch{return!1}finally{a[e]=null}},async handleDownloadStarted(e){this.shouldShowSurvey(e.software)&&(await this.hasCompletedSurvey(e.software)||(this.context=e,this.resetErrors(e.software),this.stage="download-started",this.isOpen=!0,this.prefetchQuestions(e.software)))},async showQuestionsStep(){const e=this.context?.software;return!e||!await this.ensureQuestionsLoaded(e)?!1:(this.stage="questions",!0)},skipSurvey(){if(this.context){const e=d(this.context.software);e.value="1"}this.closeSurvey()},completeSurvey(){if(this.context){const e=l(this.context.software),s=d(this.context.software);e.value="1",s.value=null}this.stage="thank-you",this.resetErrors()},updateFormAnswers(e){const s=this.form.answers.findIndex(o=>o.questionId===e.questionId);s>=0?this.form.answers[s]=e:this.form.answers.push(e)},updateFormEmail(e){this.form.email=e},async submitForm(e){if(this.resetErrors(),!this.context||!this.questionnaireId)return this.setErrorMessage("The survey context is incomplete. Please try again."),!1;const s={...this.form,captchaToken:e,buildVersion:this.context.buildVersion,platform:this.context.platform,productName:this.context.productName,questionnaireId:this.questionnaireId,releaseId:this.context.releaseId},{postRequest:o}=w(),t=await o("/api/survey/submit",{body:s,query:{software:this.context.software,kind:"download"}});return t?.success&&"couponCode"in t&&t.couponCode?(this.coupon=t.couponCode,this.completeSurvey(),!0):(this.setErrorMessage("Oops, something went wrong. Please try again."),!1)}}}),F=10080*60,f=E("purchase");function c(){return p("purchase-survey",{maxAge:F})}function S(e,s){const o=c();o.value={orderId:e,status:s}}const b=v("purchaseSurvey",{state:()=>({isOpen:!1,form:{answers:[]},context:null,...f.state()}),getters:{...f.getters},actions:{...f.actions,resetFormState(){this.form={answers:[]}},closeSurvey(){this.isOpen=!1,this.resetFormState(),this.resetErrors()},shouldShowSurvey(e){const s=c();return!s.value||s.value.orderId!==e?!0:s.value.status==="pending"},pendingSurveyOrderId(){const e=c();return e.value?.status==="pending"?e.value.orderId:null},markOrderForSurvey(e){c().value?.orderId!==e&&S(e,"pending")},async showSurvey(e){this.shouldShowSurvey(e.orderId)&&(this.context=e,this.resetErrors(e.software),this.isOpen=!0,this.prefetchQuestions(e.software))},async showQuestionsStep(){const e=this.context?.software;return e?await this.ensureQuestionsLoaded(e):!1}
1,skipSurvey(){this.context&&S(this.context.orderId,"skipped"),this.closeSurvey()},completeSurvey(){this.context&&S(this.context.orderId,"completed"),this.resetErrors()},updateFormAnswers(e){const s=this.form.answers.findIndex(o=>o.questionId===e.questionId);s>=0?this.form.answers[s]=e:this.form.answers.push(e)},async submitForm(e){if(this.resetErrors(),!this.context||!this.questionnaireId)return this.setErrorMessage("The survey context is incomplete. Please try again."),!1;const s={...this.form,captchaToken:e,orderId:this.context.orderId,questionnaireId:this.questionnaireId},{postRequest:o}=w();return(await o("/api/survey/submit",{body:s,query:{software:this.context.software,kind:"purchase"}}))?.success?(this.completeSurvey(),!0):(this.setErrorMessage("Oops, something went wrong. Please try again."),!1)}}});export{R as a,b as u};
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.