{"version":3,"sources":["webpack:///./src/views/PropertiesForSale.vue?962e","webpack:///./src/views/PropertiesForSale.vue","webpack:///./src/views/PropertiesForSale.vue?c6c6","webpack:///./src/views/PropertiesForSale.vue?b0d6"],"names":["render","_vm","this","_h","$createElement","_c","_self","attrs","_v","listingFilter","_e","staticRenderFns","updateFilter","propertyCategories","propertyTypes","hasLand","$route","query","ListingCategory","split","map","v","parseInt","includes","filter","PropertyCategories","PropertyTypes","Statuses","Current","UnderContract","MethodsOfSale","Sale","Both","Auction","Tender","EOI","ForSale","Offers","PageSize","OrderByStatements","CreateDateDesc","length","Categories","ResidentialLand","ResidentialSale","Rural","some","s","keywordOptions","keywordOpts","opt","Type","Value","Suburbs","categories","searchVal","find","SearchTerm","areaMin","MinLandArea","areaMax","MaxLandArea","priceMin","MinPrice","priceMax","MaxPrice","suburbs","isVacantPosession","IsVacant","isTenanted","IsTenanted","isStandalone","IsWholeBuilding","isStrata","components","Listings","ListingSearch","component"],"mappings":"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","file":"js/chunk-2d0c919a.6346f456.js","sourcesContent":["var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('Page',[_c('SiteMasthead',{attrs:{\"title\":\"Properties For Sale\"}}),_c('ContentRow',[_c('ContentContainer',[_c('SectionSubtitle',[_vm._v(\" Find your dream home \")]),_c('SectionTitle',[_vm._v(\" Properties for sale \")]),(_vm.listingFilter)?_c('Listings',{attrs:{\"filter\":_vm.listingFilter,\"fullWidth\":false}}):_vm._e()],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\r\nimport { Component, Mixins, Watch } from 'vue-property-decorator';\r\nimport { ListingFilter, ListingOrderBy } from 'client-website-ts-library/filters';\r\nimport { View } from 'client-website-ts-library/plugins';\r\nimport { ListingCategory, ListingStatus, MethodOfSale, PropertyCategory, PropertyType } from 'client-website-ts-library/types';\r\n\r\nimport Listings from '../components/Listings.vue';\r\nimport ListingSearch from '../components/ListingSearch.vue';\r\n\r\n@Component({\r\n components: {\r\n Listings,\r\n ListingSearch,\r\n },\r\n})\r\nexport default class PropertiesForSale extends Mixins(View) {\r\n private listingFilter: ListingFilter | null = null;\r\n\r\n mounted() {\r\n this.updateFilter();\r\n }\r\n\r\n @Watch('$route.query')\r\n updateFilter() {\r\n let propertyCategories: PropertyCategory[] = [];\r\n let propertyTypes: PropertyType[] = [];\r\n let hasLand = false;\r\n\r\n if (this.$route.query.ListingCategory) {\r\n // eslint-disable-next-line radix\r\n propertyCategories = (this.$route.query.ListingCategory! as string).split(',').map((v) => parseInt(v) as PropertyCategory);\r\n }\r\n\r\n if (this.$route.query.propertyTypes) {\r\n // eslint-disable-next-line radix\r\n propertyTypes = (this.$route.query.propertyTypes! as string).split('|').map((v) => parseInt(v) as PropertyType);\r\n hasLand = this.$route.query.propertyTypes!.includes('Land');\r\n }\r\n\r\n const filter = new ListingFilter({\r\n PropertyCategories: propertyCategories,\r\n PropertyTypes: propertyTypes,\r\n Statuses: [\r\n ListingStatus.Current,\r\n ListingStatus.UnderContract,\r\n ],\r\n MethodsOfSale: [\r\n MethodOfSale.Sale,\r\n MethodOfSale.Both,\r\n MethodOfSale.Auction,\r\n MethodOfSale.Tender,\r\n MethodOfSale.EOI,\r\n MethodOfSale.ForSale,\r\n MethodOfSale.Offers,\r\n ],\r\n PageSize: 9,\r\n OrderByStatements: [\r\n ListingOrderBy.CreateDateDesc,\r\n ],\r\n });\r\n\r\n if (filter.PropertyTypes && filter.PropertyTypes.length === 1 && hasLand) {\r\n filter.Categories = [ListingCategory.ResidentialLand];\r\n } else if (filter.PropertyTypes && filter.PropertyTypes.length > 1 && hasLand) {\r\n filter.Categories = [ListingCategory.ResidentialSale, ListingCategory.ResidentialLand, ListingCategory.Rural];\r\n } else if (filter.PropertyTypes?.some((s) => s === 0)) {\r\n filter.Categories = [ListingCategory.ResidentialSale, ListingCategory.Rural];\r\n } else if (filter.PropertyTypes.length > 0) {\r\n filter.Categories = [ListingCategory.ResidentialSale, ListingCategory.Rural];\r\n } else {\r\n filter.Categories = [ListingCategory.ResidentialSale, ListingCategory.ResidentialLand, ListingCategory.Rural];\r\n }\r\n\r\n if (this.$route.query.keywordOptions) {\r\n const keywordOpts = (this.$route.query.keywordOptions as string).split('|').map((opt) => {\r\n const split = opt.split(':');\r\n\r\n return {\r\n Type: split[0],\r\n Value: split[1],\r\n };\r\n });\r\n\r\n filter.Suburbs = keywordOpts.filter((opt) => opt.Type === 'suburb').map((opt) => opt.Value);\r\n\r\n const categories = keywordOpts.filter((opt) => opt.Type === 'categories').map((opt) => parseInt(opt.Value, 10));\r\n\r\n if (categories.length > 0) {\r\n filter.PropertyCategories = categories;\r\n }\r\n\r\n const searchVal = keywordOpts.find((opt) => opt.Type === 'search');\r\n\r\n if (searchVal) {\r\n filter.SearchTerm = searchVal.Value;\r\n }\r\n }\r\n\r\n if (this.$route.query.areaMin) filter.MinLandArea = this.$route.query.areaMin as string;\r\n if (this.$route.query.areaMax) filter.MaxLandArea = this.$route.query.areaMax as string;\r\n\r\n if (this.$route.query.priceMin) filter.MinPrice = this.$route.query.priceMin as string;\r\n if (this.$route.query.priceMax) filter.MaxPrice = this.$route.query.priceMax as string;\r\n if (this.$route.query.suburbs) filter.Suburbs = (this.$route.query.suburbs as string).split('|');\r\n\r\n if (this.$route.query.isVacantPosession) filter.IsVacant = true;\r\n if (this.$route.query.isTenanted) filter.IsTenanted = true;\r\n if (this.$route.query.isStandalone) filter.IsWholeBuilding = true;\r\n if (this.$route.query.isStrata) filter.IsVacant = true;\r\n\r\n this.listingFilter = filter;\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!./PropertiesForSale.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!./PropertiesForSale.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./PropertiesForSale.vue?vue&type=template&id=056b4665&\"\nimport script from \"./PropertiesForSale.vue?vue&type=script&lang=ts&\"\nexport * from \"./PropertiesForSale.vue?vue&type=script&lang=ts&\"\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"],"sourceRoot":""}