{"version":3,"sources":["webpack:///./src/views/Survey.vue?0108","webpack:///./src/views/Survey.vue?b9f7","webpack:///./src/components/Forms/SteppedForm.vue?50fb","webpack:///./src/components/Forms/SteppedForm.vue","webpack:///./src/components/Forms/SteppedForm.vue?14c6","webpack:///./src/components/Forms/SteppedForm.vue?cfde","webpack:///./src/views/Survey.vue?822e","webpack:///./src/views/Survey.vue?8b09","webpack:///./src/views/Survey.vue?baa3","webpack:///./node_modules/client-website-ts-library/plugins/view/index.ts","webpack:///./src/views/Survey.vue?7984","webpack:///./src/components/Forms/SteppedForm.vue?0928"],"names":["render","_vm","this","_h","$createElement","_c","_self","staticClass","agent","PROLISTPhoto","style","Preview","Url","_e","submitted","attrs","_v","on","$event","staticRenderFns","class","fullHeight","fieldBg","loading","errored","domProps","_s","definition","Options","SubmittedText","currentStep","_l","section","idx","key","SectionId","Title","Sections","length","validatingStep","ref","refInFor","errors","ctx","type","handleFieldInput","goBack","goForward","submitButtonClass","submitButtonColour","submitButtonBackgroundColour","submitForm","SubmitButtonText","context","submitPercent","recaptchaService","Require","ReCaptcha","progress","total","Math","round","console","log","Items","ClientWebsiteId","Website","Id","undefined","Forms","GetForm","then","def","catch","fieldDef","filter","err","Key","collectData","data","normalisedData","normaliseData","SubmitForm","result","Valid","Submitted","$emit","resetRecaptcha","ValidationState","Errors","newValues","forEach","entry","Value","Array","push","i","includeRecaptcha","Promise","resolve","reject","sectionComponent","$refs","getRecaptchaResponse","recaptchaResponse","Log","Debug","Reset","GetResponse","ValidateSection","default","components","Section","Loader","component","Profiles","Get","Settings","WebsiteId","p","SteppedForm","prolistAnalyticsService","ServiceManager","Analytics","headService","Head","evt","obj","getAnalyticsEvent","call","getAnalyticsData","$route","path","name","triggerAnalyticsEvent","event","GetAll","adapter","Record","head","bind","meta","Update","UpdateWithStatic","View","requestAnimationFrame","updateHead","updateAnalytics","AsyncView","$on"],"mappings":"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","file":"js/chunk-8c5d20a6.a0ba3c9e.js","sourcesContent":["export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Survey.vue?vue&type=style&index=0&id=379fbb54&scoped=true&lang=css&\"","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('Page',[_c('div',{staticClass:\"survey\"},[_c('div',{staticClass:\"survey__bg\"}),(_vm.agent && _vm.agent.PROLISTPhoto)?_c('div',{staticClass:\"survey__agent-img\",style:({'background-image': 'url(' + _vm.agent.PROLISTPhoto.Preview.Url + ')'})}):_vm._e(),(!_vm.submitted)?_c('SteppedForm',{staticClass:\"survey__form\",attrs:{\"type\":\"Variations.TSPropertyGroup.ScottMitchell.PropertySurveyForm\",\"full-height\":\"true\"},on:{\"submitted\":function($event){_vm.submitted = true}}}):_c('div',{staticClass:\"survey__submitted\"},[_c('img',{attrs:{\"src\":\"/assets/images/brand/logo.png\",\"alt\":\"TS Property Group Logo\"}}),_c('p',[_vm._v(\" Thank you for taking the time to complete this survey. \")]),_c('p',[_vm._v(\" I'll be in touch shortly to discuss your property plans in more depth. \")]),_c('p',[_vm._v(\" In the meantime, please feel free to browse my recent results and current listings. \")]),_c('p',[_c('LinkButton',{attrs:{\"href\":\"/properties/sold\"}},[_vm._v(\"Recent Results\")]),_c('LinkButton',{attrs:{\"href\":\"/properties/for-sale\"}},[_vm._v(\"Properties for Sale\")])],1)])],1)])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('form',{staticClass:\"form form--stepped\",class:{'form--full-height': _vm.fullHeight},style:({'--field-bg': _vm.fieldBg})},[(_vm.definition)?[_c('div',{staticClass:\"form__steps-wrap\"},[(_vm.loading || _vm.errored || _vm.submitted)?_c('div',{staticClass:\"form__ancillaries\"},[_c('ContentContainer',[_c('Loader',{attrs:{\"loading\":_vm.loading}}),(_vm.errored)?_c('div',{staticClass:\"form__panel form__panel--errored\"},[_c('p',[_vm._v(\" An error occurred. Please try again later. \")])]):_vm._e(),(_vm.submitted)?_c('div',{staticClass:\"form__panel form__panel--success\"},[_c('p',{domProps:{\"innerHTML\":_vm._s(_vm.definition.Options.SubmittedText)}})]):_vm._e()],1)],1):_vm._e(),(!_vm.submitted)?[_c('div',{staticClass:\"form__nav-wrap\"},[_c('ul',{staticClass:\"form__nav\"},[_c('li',{staticClass:\"form__nav__spacer\",class:{'form__nav__item--active': _vm.currentStep === 0, 'form__nav__item--passed': _vm.currentStep > 0}}),_vm._l((_vm.definition.Sections),function(section,idx){return _c('li',{key:section.SectionId,staticClass:\"form__nav__item\",class:{'form__nav__item--passed': idx < _vm.currentStep, 'form__nav__item--active': idx === _vm.currentStep}},[_c('span',{staticClass:\"form__nav__item__number\"},[_vm._v(_vm._s(idx + 1))]),_c('span',{staticClass:\"form__nav__item__label\"},[_vm._v(\": \"+_vm._s(section.Title))])])}),_c('li',{staticClass:\"form__nav__spacer\",class:{'form__nav__item--active': _vm.currentStep === _vm.definition.Sections.length - 1}})],2)]),_c('div',{staticClass:\"form__steps\",class:{'form__steps--validating': _vm.validatingStep},style:({'--step': _vm.currentStep})},[_c('div',{staticClass:\"form__steps__viewport\"},_vm._l((_vm.definition.Sections),function(section,idx){return _c('div',{key:section.SectionId,staticClass:\"form__step\",class:{'form__step--active': idx === _vm.currentStep}},[_c('ContentContainer',{staticClass:\"content-container--narrow\"},[_c('Section',{ref:section.SectionId,refInFor:true,attrs:{\"def\":section,\"errors\":_vm.errors,\"form-context\":_vm.ctx,\"form-type\":_vm.type},on:{\"field_input\":_vm.handleFieldInput}}),_c('div',{staticClass:\"form__step__nav\"},[(idx > 0)?_c('Button',{attrs:{\"backgroundColour\":\"var(--brand-secondary)\"},on:{\"click\":_vm.goBack}},[_vm._v(\"Back\")]):_vm._e(),(idx !== _vm.definition.Sections.length - 1)?_c('Button',{attrs:{\"loading\":_vm.validatingStep && idx === _vm.currentStep},on:{\"click\":_vm.goForward}},[_vm._v(\"Next\")]):_c('Button',{staticClass:\"form__submit-btn\",class:_vm.submitButtonClass,attrs:{\"loading\":_vm.loading,\"colour\":_vm.submitButtonColour,\"background-colour\":_vm.submitButtonBackgroundColour},on:{\"click\":_vm.submitForm}},[_vm._v(_vm._s(_vm.definition.Options.SubmitButtonText))])],1)],1)],1)}),0)])]:_vm._e()],2)]:_vm._e()],2)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { Component, Vue, Prop } from 'vue-property-decorator';\nimport { FormDefinition, FormSubmissionValidationError, FormField, FormValue } from 'client-website-ts-library/types/Forms';\nimport {\n ServiceManager,\n ServiceType,\n API,\n Config,\n Logger,\n LogLevel,\n ReCaptchaService,\n} from 'client-website-ts-library/services';\nimport { Context } from 'client-website-ts-library/types';\nimport { PDFFieldData } from 'client-website-ts-library/types/Forms/FieldTypes';\nimport { IRequestProgressDelegate } from 'client-website-ts-library/services/API/IRequestProgressDelegate';\n\nimport Section from './Section.vue';\nimport Loader from '../UI/Loader.vue';\n\n@Component({\n components: {\n Section,\n Loader,\n },\n})\nexport default class SteppedForm extends Vue implements IRequestProgressDelegate {\n currentStep = 0\n\n validatingStep = false\n\n @Prop({ default: false })\n private readonly fullHeight!: boolean;\n\n @Prop({ default: () => ({ Items: [] }) })\n private readonly context!: Context;\n\n @Prop()\n private readonly type!: string;\n\n @Prop()\n private readonly submitButtonColour!: string;\n\n @Prop()\n private readonly submitButtonBackgroundColour!: string;\n\n @Prop()\n private readonly submitButtonClass!: string;\n\n @Prop()\n private readonly autosaveNamespace!: string;\n\n @Prop()\n private readonly enableAutosave!: boolean;\n\n @Prop({ default: 'var(--form-field-bg)' })\n private readonly fieldBg!: string;\n\n @Prop({ default: 'var(--form-field-colour)' })\n private readonly fieldColour!: string;\n\n @Prop({ default: 'var(--form-label-colour)' })\n private readonly labelColour!: string;\n\n @Prop({ default: 'var(--form-field-border-colour)' })\n private readonly borderColour!: string;\n\n @Prop({ default: 'var(--form-label-focused-bg)' })\n private readonly labelFocusedBg!: string;\n\n @Prop({ default: 'var(--form-label-focused-colour)' })\n private readonly labelFocusedColour!: string;\n\n private ctx: Context = this.context;\n\n private errored = false;\n\n private submitted = false;\n\n private errors: FormSubmissionValidationError[] = [];\n\n private loading = true;\n\n private definition: FormDefinition | null = null;\n\n private submitPercent = 0;\n\n private recaptchaService = ServiceManager.Require(ServiceType.ReCaptcha) as ReCaptchaService;\n\n onProgress(progress: number, total: number) {\n this.submitPercent = Math.round((progress / total) * 100);\n\n console.log(this.submitPercent);\n }\n\n mounted() {\n if (this.ctx === null) {\n this.ctx = {\n Items: [],\n ClientWebsiteId: Config.Website.Id,\n };\n }\n\n if (this.ctx.ClientWebsiteId === undefined) {\n this.ctx.ClientWebsiteId = Config.Website.Id;\n }\n\n API.Forms.GetForm(this.type, this.context).then((def) => {\n this.loading = false;\n this.definition = def;\n }).catch(() => {\n this.errored = true;\n });\n }\n\n private handleFieldInput(fieldDef: FormField): void {\n this.errors = this.errors.filter((err) => err.Key !== fieldDef.Key);\n }\n\n submitForm(): void {\n if (this.loading) return;\n\n this.loading = true;\n\n this.errors = [];\n\n this.collectData(true).then((data) => {\n const normalisedData = SteppedForm.normaliseData(data);\n\n this.loading = false;\n\n API.Forms.SubmitForm(this.type, this.context, normalisedData).then((result) => {\n this.loading = false;\n\n if (!result.Valid) {\n // Reset ReCaptcha\n this.resetRecaptcha();\n\n // Update errors\n this.errors = result.ValidationState.Errors;\n } else if (result.Submitted) {\n // Inform the user that the form was submitted\n this.submitted = true;\n\n this.$emit('submitted');\n }\n }).catch(() => {\n // Reset ReCaptcha\n this.resetRecaptcha();\n\n // Inform the user that there was an error\n this.errored = true;\n });\n });\n }\n\n private static normaliseData(data: FormValue[]): FormValue[] {\n const newValues: FormValue[] = [];\n\n data.forEach((entry) => {\n if (entry.Value instanceof Array) {\n if (entry.Value.length) {\n newValues.push({\n Key: `${entry.Key}_length`,\n Value: entry.Value.length,\n });\n\n for (let i = 0; i < entry.Value.length; i += 1) {\n newValues.push({\n Key: `${entry.Key}_${i}`,\n Value: entry.Value[i],\n });\n }\n }\n } else {\n newValues.push(entry);\n }\n });\n\n return newValues;\n }\n\n private collectData(includeRecaptcha: boolean): Promise {\n return new Promise((resolve, reject) => {\n const data: FormValue[] = [];\n\n // Loop through each form secction and collect the data from it\n this.definition!.Sections.forEach((section) => {\n const sectionComponent = (this.$refs[section.SectionId] as Vue[])[0] as Section;\n\n data.push(...sectionComponent.collectData());\n });\n\n // If we also need to submit the ReCaptcha response, make sure we call getResponse on the ReCaptcha component\n if (includeRecaptcha) {\n this.getRecaptchaResponse().then((recaptchaResponse: string) => {\n Logger.Log(LogLevel.Debug, '[Form]', 'Got ReCaptcha response');\n\n data.push({\n Key: '_recaptcha',\n Value: recaptchaResponse,\n });\n\n resolve(data);\n }).catch(reject);\n\n return;\n }\n\n // If we don't need ReCaptcha, resolve straight away\n resolve(data);\n });\n }\n\n private resetRecaptcha(): void {\n this.recaptchaService.Reset();\n }\n\n private getRecaptchaResponse(): Promise {\n return this.recaptchaService.GetResponse();\n }\n\n goForward() {\n if (this.validatingStep) return;\n\n this.validatingStep = true;\n\n this.errors = [];\n\n this.collectData(false).then((data) => {\n const normalisedData = SteppedForm.normaliseData(data);\n\n API.Forms.ValidateSection(this.type, this.context, normalisedData, this.currentStep).then((result) => {\n this.loading = false;\n\n if (!result.Valid) {\n // Update errors\n this.errors = result.Errors;\n this.validatingStep = false;\n } else {\n // Move to next step\n this.validatingStep = false;\n this.currentStep += 1;\n }\n }).catch(() => {\n // Inform the user that there was an error\n this.validatingStep = false;\n this.errored = true;\n });\n });\n }\n\n goBack() {\n this.currentStep -= 1;\n }\n}\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SteppedForm.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SteppedForm.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./SteppedForm.vue?vue&type=template&id=157bc00e&scoped=true&\"\nimport script from \"./SteppedForm.vue?vue&type=script&lang=ts&\"\nexport * from \"./SteppedForm.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./SteppedForm.vue?vue&type=style&index=0&id=157bc00e&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"157bc00e\",\n null\n \n)\n\nexport default component.exports","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { View } from 'client-website-ts-library/plugins';\nimport { API, Config } from 'client-website-ts-library/services';\nimport { Profile } from 'client-website-ts-library/types';\nimport { Component, Mixins } from 'vue-property-decorator';\n\nimport SteppedForm from '../components/Forms/SteppedForm.vue';\n\n@Component({\n components: {\n SteppedForm,\n },\n})\nexport default class Survey extends Mixins(View) {\n private agent: Profile | null = null;\n\n submitted = false;\n\n mounted() {\n API.Profiles.Get(Config.Website.Settings!.WebsiteId).then((p) => {\n this.agent = p;\n });\n }\n}\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--14-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Survey.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--14-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Survey.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./Survey.vue?vue&type=template&id=379fbb54&scoped=true&\"\nimport script from \"./Survey.vue?vue&type=script&lang=ts&\"\nexport * from \"./Survey.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./Survey.vue?vue&type=style&index=0&id=379fbb54&scoped=true&lang=css&\"\nimport style1 from \"./Survey.vue?vue&type=style&index=1&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"379fbb54\",\n null\n \n)\n\nexport default component.exports","import Vue from \"vue\";\r\nimport { Component } from \"vue-property-decorator\";\r\nimport { AnalyticsEvent, AnalyticsEventObject, AnalyticsPageView, IAnalyticsAdapter, PROListAnalyticsAdapter } from \"../../services/Analytics\";\r\nimport { HeadService } from \"../../services/HeadService\";\r\nimport { ServiceManager, ServiceType } from \"../../services/ServiceManager\";\r\nimport { RouteMeta } from \"../meta\";\r\n\r\ninterface ViewBase {\r\n getAnalyticsEvent?(): AnalyticsEvent | null;\r\n getAnalyticsData?(): AnalyticsEventObject | null;\r\n head?(): RouteMeta | Promise | null;\r\n}\r\n\r\n@Component\r\nclass ViewBase extends Vue {\r\n protected prolistAnalyticsService = ServiceManager.Get(ServiceType.Analytics, 'PROListAnalyticsAdapter');\r\n protected headService = ServiceManager.Require(ServiceType.Head)!;\r\n\r\n public updateAnalytics() {\r\n let evt: AnalyticsEvent | null = null;\r\n let obj: AnalyticsEventObject | null = null;\r\n\r\n if (typeof this.getAnalyticsEvent !== 'undefined') {\r\n evt = this.getAnalyticsEvent.call(this);\r\n } else if(typeof this.getAnalyticsData !== 'undefined') {\r\n obj = this.getAnalyticsData.call(this);\r\n }\r\n\r\n if (evt === null) evt = new AnalyticsPageView(this.$route.path, this.$route.name || '', obj || undefined);\r\n\r\n this.triggerAnalyticsEvent(evt);\r\n }\r\n\r\n public triggerAnalyticsEvent(event: AnalyticsEvent) {\r\n ServiceManager.GetAll(ServiceType.Analytics).forEach((adapter) => {\r\n adapter.Record(event);\r\n });\r\n }\r\n\r\n public triggerCustomAnalyticsEvent(event: AnalyticsEvent) {\r\n if (this.prolistAnalyticsService !== null) this.prolistAnalyticsService.Record(event);\r\n }\r\n\r\n protected updateHead() {\r\n if ('head' in this) {\r\n const result = this.head!.bind(this)();\r\n\r\n if(result instanceof Promise) {\r\n result.then((meta: RouteMeta | null) => {\r\n this.headService.Update(meta);\r\n });\r\n } else {\r\n this.headService.Update(result as RouteMeta | null);\r\n }\r\n } else {\r\n this.headService.UpdateWithStatic(this.$route.path);\r\n }\r\n }\r\n}\r\n\r\n@Component\r\nclass View extends ViewBase {\r\n public mounted() {\r\n requestAnimationFrame(() => {\r\n this.updateHead();\r\n this.updateAnalytics();\r\n });\r\n }\r\n}\r\n\r\n@Component\r\nclass AsyncView extends ViewBase {\r\n public mounted() {\r\n this.$on('updateView', () => {\r\n requestAnimationFrame(() => {\r\n this.updateHead();\r\n this.updateAnalytics();\r\n });\r\n });\r\n }\r\n}\r\n\r\nexport {\r\n View,\r\n AsyncView\r\n}\r\n","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Survey.vue?vue&type=style&index=1&lang=css&\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SteppedForm.vue?vue&type=style&index=0&id=157bc00e&scoped=true&lang=css&\""],"sourceRoot":""}