1"use strict";(self.webpackChunkbeany=self.webpackChunkbeany||[]).push([[3281],{3281(s,t,e){e.r(t);var n=e(9806),a=e(7155),i=e(8490);const o={props:[],data:()=>({schema:{newPassword:"required:New password|min:8|special",confirmPassword:"required:Confirm password|min:8|special|confirmed:newPassword|"},companyName:"Beany",supportEmail:"[email protected]",errors:"",loaded:!1,errorResponse:"",country:null,termsAccepted:!1,tcsDynamicUrl:"",tcsVersionId:"",codeState:"checking"}),mounted(){this.country=this.$route.query.country||webapp.region,this.country=this.country?this.country.toUpperCase():null,this.$route.query.error&&n.A.setAlertMessage(this.$route.query.error,"alert-danger");const s=this.$route.query.email,t=this.$route.query.confirm;s&&t?(0,a.SP)(JSON.stringify({email:s,confirm:t})).then(function(t){const e=t?.data?.status;"alreadyActivated"===e?(this.codeState="alreadyActivated",n.A.setEmail(s),n.A.persist()):this.codeState="invalid"===e?"invalid":"valid"}.bind(this)):this.codeState="invalid",this.isBeany?this.loaded=!0:(0,a.Vp)().then(function(s){this.supportEmail=s.data.supportEmail,this.companyName=s.data.name,this.loaded=!0}.bind(this)),this.country&&(0,a.S6)(this.country).then(function(s){const t=s?.data?.data?.["T&C"];t&&(this.tcsDynamicUrl=t.downloadUrl||"",this.tcsVersionId=t.versionId||"")}.bind(this))},computed:{xeroLink(){return`/oauth2/xero/getsso?setupXero=true&activate=${this.$route.query.confirm}&email=${this.$route.query.email}&activateWithXero=true`},isBeany:()=>webapp.isBeany(),isSubmitDisabled(){return!this.termsAccepted},tcsDocument(){return`BeanyWebsiteTermsandConditions_${this.country}`},termsAndConditionsLink(){return this.isBeany&&this.country&&this.loaded?this.tcsDynamicUrl||`/static/${this.tcsDocument}.pdf`:(!this.isBeany&&this.loaded,"")}},methods:{goTo(s){this.$router.push({name:s})},onSubmit(s){s.confirm=this.$route.query.confirm,s.email=this.$route.query.email,this.termsAccepted&&(s.acceptedTCs=!0,s.tcsDocument=this.tcsDocument,this.tcsVersionId&&(s.tcsVersionId=this.tcsVersionId)),(0,a.PG)(JSON.stringify(s)).then(function(t){if("success"==t.data.status){n.A.setAlertMessage("Your account has been activated. You can now log in."),n.A.setEmail(s.email),n.A.persist(),this.errorResponse="",this.passwordUpdated=!0,this.loginStatus=0;const t=this.$route.query.next,e="string"==typeof t&&t.startsWith("/")&&!t.startsWith("//");window.location.href=e?t:"/"}else this.passwordUpdated=!1,this.errorResponse=t?.data?.message?t.data.message:"Update failed, please try again or contact Beany support"}.bind(this))},signInWithXero(){window.location.href=this.xeroLink}},components:{Form:VeeValidate.Form,Field:VeeValidate.Field,alert:i.A},template:'\n <div>\n <div v-if="codeState === \'alreadyActivated\'" class="animate__animated animate__fadeIn">\n <h1 class="pt-4">Account already activated</h1>\n <p>Your account has already been activated, so this link is no longer needed. Log in with your email and password.</p>\n <div class="row">\n <div class="col-lg-6 col-sm-12">\n <div class="form-group pt-3">\n <a id="go-to-login" class="btn btn-primary" href="/login"><strong>Go to log in</strong></a>\n </div>\n <div class="form-group pt-3">\n <a class="text-primary" href="/p/forgot-password">Forgot your password?</a>\n </div>\n </div>\n </div>\n </div>\n\n <div v-else-if="codeState === \'invalid\'" class="animate__animated animate__fadeIn">\n <h1 class="pt-4">This link is no longer valid</h1>\n <p>This activation link has expired or has already been used. You can request a new link, or contact {{ supportEmail }} if you need a hand.</p>\n <div class="row">\n <div class="col-lg-6 col-sm-12">\n <div class="form-group pt-3">\n <a class="btn btn-primary" href="/p/forgot-password"><strong>Request a new link</strong></a>\n </div>\n </div>\n </div>\n </div>\n\n <div v-else-if="codeState === \'valid\'">\n <h1 class="pt-4">Set password</h1>\n <p>Finish activating your account by setting a password.</p>\n\n <Form @submit="onSubmit" :validation-schema="schema" v-slot="{ errors }">\n <div class="row">\n <div class="col-lg-6 col-sm-12">\n <div class="form-group pt-3">\n <label for="password">Create password</label>\n <Field name="newPassword" class="form-control" :class="{\'border-danger\': errors.newPassword}" type="password" />
1\n <span class="text text-danger new-small">{{ errors.newPassword }}</span>\n </div>\n </div>\n </div>\n\n <div class="row">\n <div class="col-lg-6 col-sm-12">\n <div class="form-group pt-3">\n <label for="password">Confirm password</label>\n <Field name="confirmPassword" class="form-control" :class="{\'border-danger\': errors.confirmPassword}" type="password" />\n <span class="text text-danger new-small">{{ errors.confirmPassword }}</span>\n </div>\n </div>\n </div>\n <div class="row">\n <div class="col-lg-3 col-sm-12">\n <div class="form-group pt-3">\n <input type="checkbox" id="termsCheckbox" v-model="termsAccepted"> \n <label for="termsCheckbox" class="ms-2">\n I accept the <a :href="termsAndConditionsLink" target="_blank">terms and conditions</a>\n </label>\n </div>\n </div>\n </div>\n <div class="row">\n <div class="col-lg-3 col-sm-12">\n <div class="form-group pt-3">\n <button type="submit" class="btn btn-primary" :disabled="isSubmitDisabled"><strong>Set password</strong></button> \n <span class="text text-danger new-small">{{ errorResponse }}</span>\n </div>\n </div> \n </div>\n </Form>\n <div class="container">\n <div class="row">\n <div class="mt-4 pt-4 pb-4 card bg bg-light col-lg-6 col-sm-12" style="border: none;">\n <p><strong> Alternatively, sign in with Xero </strong></p>\n <p>Use your Xero login details and multi-factor authentication to log into {{ companyName }}.</p>\n <button style="text-decoration: none; margin-left: 12px;" class="btn btn-primary" @click="signInWithXero" :disabled="isSubmitDisabled">Sign in with Xero</button>\n </div>\n </div>\n </div>\n </div>\n </div>\n\n '};e.d(t,["default",0,o])},7155(s,t,e){e.d(t,["PG",0,s=>axios.post("/api/v3/you/confirmResetPassword",s).then(s=>s).catch(s=>""),"S6",0,s=>axios.get("/api/documents/current",{params:{country:s}}).then(s=>s).catch(s=>""),"SP",0,s=>axios.post("/api/v3/you/checkActivationCode",s).then(s=>s).catch(s=>""),"Vp",0,s=>axios.get("/api/v2/plugin/a/info.json",s).then(s=>s).catch(s=>"")])}}]);
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.