{"version":3,"sources":["webpack:///./src/views/PropertiesSold.vue?43d9","webpack:///./src/views/PropertiesSold.vue","webpack:///./src/views/PropertiesSold.vue?e4b5","webpack:///./src/views/PropertiesSold.vue?2b15"],"names":["render","_vm","this","_h","$createElement","_c","_self","attrs","_v","listingFilter","_e","staticRenderFns","Statuses","Sold","Categories","ResidentialSale","ResidentialLand","Rural","PageSize","OrderByStatements","SoldDateDesc","updateFilter","propertyCategories","propertyTypes","hasLand","$route","query","ListingCategory","split","map","v","parseInt","includes","filter","PropertyCategories","PropertyTypes","MethodsOfSale","Sale","Both","Auction","Tender","EOI","ForSale","Offers","CreateDateDesc","length","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","component"],"mappings":"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","file":"js/chunk-2d0c9535.9e1fc862.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\":\"Sold\"}}),_c('ContentRow',[_c('ContentContainer',[_c('SectionSubtitle',[_vm._v(\" Find your dream home \")]),_c('SectionTitle',[_vm._v(\" Properties sold in Cairns \")]),(_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 { ListingStatus, ListingCategory, MethodOfSale, PropertyCategory, PropertyType } from 'client-website-ts-library/types';\r\nimport { View } from 'client-website-ts-library/plugins';\r\n\r\nimport Listings from '../components/Listings.vue';\r\n\r\n@Component({\r\n components: {\r\n Listings,\r\n },\r\n})\r\nexport default class PropertiesSold extends Mixins(View) {\r\n private listingFilter: ListingFilter = new ListingFilter({\r\n Statuses: [\r\n ListingStatus.Sold,\r\n ],\r\n Categories: [\r\n ListingCategory.ResidentialSale,\r\n ListingCategory.ResidentialLand,\r\n ListingCategory.Rural,\r\n ],\r\n PageSize: 9,\r\n OrderByStatements: [\r\n ListingOrderBy.SoldDateDesc,\r\n ],\r\n });\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.Sold,\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!./PropertiesSold.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!./PropertiesSold.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./PropertiesSold.vue?vue&type=template&id=ff963ecc&scoped=true&\"\nimport script from \"./PropertiesSold.vue?vue&type=script&lang=ts&\"\nexport * from \"./PropertiesSold.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 \"ff963ecc\",\n null\n \n)\n\nexport default component.exports"],"sourceRoot":""}