{"version":3,"sources":["webpack:///./src/views/ListingMakeAnOffer.vue?d60d","webpack:///./src/views/ListingMakeAnOffer.vue","webpack:///./src/views/ListingMakeAnOffer.vue?b4d9","webpack:///./src/views/ListingMakeAnOffer.vue?ba71","webpack:///./src/views/ListingMakeAnOffer.vue?d08e","webpack:///./node_modules/client-website-ts-library/plugins/view/index.ts","webpack:///./node_modules/client-website-ts-library/types/Forms/FormField.ts","webpack:///./node_modules/client-website-ts-library/types/Forms/FormConstructorData.ts","webpack:///./node_modules/client-website-ts-library/types/Forms/FormValue.ts"],"names":["render","_vm","this","_h","$createElement","_c","_self","attrs","listing","Address","FullAddress","Images","Preview","Url","staticClass","formData","on","handleFieldInput","_e","staticRenderFns","listingId","Promise","resolve","reject","Listings","Get","then","Type","Context","Listing","Id","$emit","catch","guidTest","idParam","$route","params","id","test","loadListing","split","Slugs","Resolve","resolvedSlug","Slug","$router","replace","push","data","field","document","getElementById","FieldId","HTMLInputElement","value","HTMLSelectElement","fieldsHidden","getElementsByClassName","Array","from","forEach","hiddenField","classList","remove","add","console","log","components","Form","component","prolistAnalyticsService","ServiceManager","Analytics","headService","Require","Head","evt","obj","getAnalyticsEvent","call","getAnalyticsData","path","name","undefined","triggerAnalyticsEvent","event","GetAll","adapter","Record","result","head","bind","meta","Update","UpdateWithStatic","requestAnimationFrame","updateHead","updateAnalytics","$on","FormFieldType","items","ClientWebsiteId","Config","Website","Items","key","Key","Value"],"mappings":"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","file":"js/chunk-0eb24d82.94ea9924.js","sourcesContent":["var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('Page',[(_vm.listing)?[_c('SiteMasthead',{attrs:{\"title\":\"Make an Offer\",\"subtitle\":_vm.listing.Address.FullAddress,\"darken\":\"true\",\"image\":_vm.listing.Images[0].Preview.Url}}),_c('ContentRow',[_c('ContentContainer',{staticClass:\"listing-make-an-offer\"},[_c('Form',{attrs:{\"context\":_vm.formData,\"type\":\"Variations.OneStopProperty.MakeAnOfferForm\"},on:{\"field_input\":_vm.handleFieldInput}})],1)],1)]:_vm._e()],2)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\r\nimport { AsyncView } from 'client-website-ts-library/plugins';\r\nimport { API, Config } from 'client-website-ts-library/services';\r\nimport { Listing } from 'client-website-ts-library/types';\r\nimport { Component, Mixins } from 'vue-property-decorator';\r\n\r\nimport Form from '@/components/Forms/Form.vue';\r\nimport { FormConstructorData, FormField } from 'client-website-ts-library/types/Forms';\r\nimport { ContextItemType } from 'client-website-ts-library/types/Context';\r\n\r\n@Component({\r\n components: {\r\n Form,\r\n },\r\n})\r\nexport default class ListingMakeAnOffer extends Mixins(AsyncView) {\r\n private listing: Listing | null = null;\r\n\r\n private formData: FormConstructorData | null = null;\r\n\r\n loadListing(listingId: string): Promise {\r\n return new Promise((resolve, reject) => {\r\n API.Listings.Get(listingId)\r\n .then((listing) => {\r\n this.listing = listing;\r\n\r\n this.formData = new FormConstructorData([\r\n {\r\n Type: ContextItemType.Listing,\r\n Id: this.listing.Id,\r\n },\r\n ]);\r\n\r\n resolve(listing);\r\n\r\n this.$emit('updateView');\r\n })\r\n .catch(() => {\r\n reject();\r\n });\r\n });\r\n }\r\n\r\n created() {\r\n const guidTest = /[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}/;\r\n\r\n const idParam = this.$route.params.id;\r\n\r\n if (guidTest.test(idParam)) {\r\n this.loadListing(idParam.split('&')[0]);\r\n } else {\r\n API.Slugs.Resolve(idParam)\r\n .then((resolvedSlug) => {\r\n if (resolvedSlug.Type === 'Listing') {\r\n this.loadListing(resolvedSlug.Id).then((listing) => {\r\n if (idParam !== listing.Slug) {\r\n this.$router.replace(`/make-an-offer/${listing.Slug}`);\r\n }\r\n });\r\n } else {\r\n this.$router.push('/listing-not-found');\r\n }\r\n })\r\n .catch(() => {\r\n this.$router.push('/listing-not-found');\r\n });\r\n }\r\n }\r\n\r\n handleFieldInput(data: FormField) {\r\n const field = document.getElementById(`field_${data.FieldId}`);\r\n\r\n if (field) {\r\n if (field instanceof HTMLInputElement) {\r\n const value = field.value;\r\n } else if (field instanceof HTMLSelectElement) {\r\n if (field.value === 'NominateASolicitorOther') {\r\n // Get all elements with the class \"hidden\"\r\n const fieldsHidden = document.getElementsByClassName('hidden-solicitor');\r\n\r\n // Use forEach to remove the \"hidden\" class from each element\r\n Array.from(fieldsHidden).forEach((hiddenField) => {\r\n hiddenField.classList.remove('hidden-solicitor');\r\n hiddenField.classList.add('show-solicitor');\r\n });\r\n } else if (field.value === 'AgentsRecommendation') {\r\n // Get all elements with the class \"hidden\"\r\n const fieldsHidden = document.getElementsByClassName('show-solicitor');\r\n\r\n // Use forEach to remove the \"hidden\" class from each element\r\n Array.from(fieldsHidden).forEach((hiddenField) => {\r\n hiddenField.classList.remove('show-solicitor');\r\n hiddenField.classList.add('hidden-solicitor');\r\n });\r\n }\r\n\r\n if (field.value === 'SettlementTimeFrameOther') {\r\n // Get all elements with the class \"hidden\"\r\n const fieldsHidden = document.getElementsByClassName('hidden-settlement');\r\n\r\n // Use forEach to remove the \"hidden\" class from each element\r\n Array.from(fieldsHidden).forEach((hiddenField) => {\r\n hiddenField.classList.remove('hidden-settlement');\r\n hiddenField.classList.add('show-settlement');\r\n });\r\n } else if (field.value === 'Settlement 14 Days'\r\n || field.value === 'Settlement 28 Days'\r\n || field.value === 'Settlement 35 Days'\r\n || field.value === 'Settlement 60 Days') {\r\n // Get all elements with the class \"hidden\"\r\n const fieldsHidden = document.getElementsByClassName('show-settlement');\r\n\r\n // Use forEach to remove the \"hidden\" class from each element\r\n Array.from(fieldsHidden).forEach((hiddenField) => {\r\n hiddenField.classList.remove('show-settlement');\r\n hiddenField.classList.add('hidden-settlement');\r\n });\r\n }\r\n } else {\r\n console.log('Field type not supported.');\r\n }\r\n }\r\n }\r\n}\r\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!./ListingMakeAnOffer.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!./ListingMakeAnOffer.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./ListingMakeAnOffer.vue?vue&type=template&id=5b806da5&\"\nimport script from \"./ListingMakeAnOffer.vue?vue&type=script&lang=ts&\"\nexport * from \"./ListingMakeAnOffer.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./ListingMakeAnOffer.vue?vue&type=style&index=0&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 null,\n null\n \n)\n\nexport default component.exports","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!./ListingMakeAnOffer.vue?vue&type=style&index=0&lang=css&\"","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","import { FormFieldLayoutOptions } from \"./FormFieldLayoutOptions\";\r\n\r\nenum FormFieldType\r\n{\r\n Text,\r\n Email,\r\n Tel,\r\n Dropdown,\r\n Textarea,\r\n VideoUpload,\r\n FileUpload,\r\n MultiFileUploader,\r\n StaticText,\r\n Date,\r\n Signature,\r\n GraphicalPDF\r\n}\r\n\r\ninterface FormField {\r\n FieldId: string;\r\n SectionId: string;\r\n Type: FormFieldType;\r\n TypeName: string;\r\n Key: string;\r\n Label: string;\r\n Placeholder: string;\r\n LayoutOptions: FormFieldLayoutOptions;\r\n Required: boolean;\r\n \r\n}\r\n\r\nexport { FormField, FormFieldType }\r\n","import { Config } from \"../../services/Config\";\r\nimport { ContextItem } from \"../Context\";\r\n\r\nclass FormConstructorData {\r\n public ClientWebsiteId: string = Config.Website.Id;\r\n public Items: ContextItem[];\r\n\r\n constructor(items?: ContextItem[]) {\r\n this.Items = items || [];\r\n }\r\n}\r\n\r\nexport { FormConstructorData }\r\n","import { PDFFieldData } from \"./FieldTypes/PDFFieldData\";\r\nimport { PDFKeyValuePair } from \"./FieldTypes/IFormField\";\r\n\r\nclass FormValue {\r\n Key: string;\r\n Value: string | PDFFieldData | Blob | Blob[] | PDFKeyValuePair | (string | PDFKeyValuePair)[] | number | null;\r\n\r\n constructor(key: string, value: string | PDFFieldData | Blob | Blob[] | PDFKeyValuePair | (string | PDFKeyValuePair)[] | number | null) {\r\n this.Key = key;\r\n this.Value = value;\r\n }\r\n}\r\n\r\nexport { FormValue }\r\n"],"sourceRoot":""}