{"version":3,"sources":["webpack:///./src/views/PropertiesForSale.vue?a5bd","webpack:///./src/views/PropertiesForSale.vue","webpack:///./src/views/PropertiesForSale.vue?c6c6","webpack:///./src/views/PropertiesForSale.vue?b0d6","webpack:///./src/views/PropertiesForSale.vue?4c2c"],"names":["render","_vm","this","_h","$createElement","_c","_self","attrs","promo","staticClass","_v","listingFilter","_e","staticRenderFns","Type","EmbeddedContent","Youtube","EmbedId","updateFilter","propertyCategories","$route","query","ListingCategory","split","map","v","parseInt","filter","PropertyCategories","Statuses","Current","UnderContract","MethodsOfSale","Sale","Both","Auction","Tender","EOI","ForSale","Offers","PageSize","OrderByStatements","CreateDateDesc","keywordOptions","keywordOpts","opt","Value","Suburbs","categories","length","searchVal","find","SearchTerm","areaMin","MinFloorArea","areaMax","MaxFloorArea","priceMin","MinPrice","priceMax","MaxPrice","suburbs","isVacantPosession","IsVacant","isTenanted","IsTenanted","isStandalone","IsWholeBuilding","isStrata","components","Listings","ListingSearch","VideoBanner","Embeddable","component"],"mappings":"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","file":"js/chunk-73d0f2ca.642a3d5d.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\",\"mini\":\"true\"}}),_c('ContentRow',{attrs:{\"hasMarginTop\":true,\"hasMarginBottom\":true,\"lighten\":true,\"backgroundImage\":\"/assets/images/photos/buy.webp\"}},[_c('ContentContainer',[_c('Embeddable',{attrs:{\"embeddable\":_vm.promo}})],1)],1),_c('ContentRow',{attrs:{\"hasMarginTop\":true,\"hasMarginBottom\":true,\"lighten\":true,\"backgroundImage\":\"/assets/images/photos/buy.webp\"}},[_c('ContentContainer',{staticClass:\"content-container container-overlay\"},[_c('p',[_vm._v(\" At Sheldon Realty, we take a refreshingly different approach to real estate in Cairns. We're not here to bombard you with over-the-top sales pitches. Instead, we believe in the power of honesty, transparency, and genuine human connections. Our team possesses an unparalleled understanding of the local real estate market. We know the neighbourhoods, the trends, and the hidden gems. We're not just here to sell houses; we're committed to contributing positively to the Cairns community. \")])])],1),_c('ContentRow',[_c('ContentContainer',[(_vm.listingFilter)?_c('Listings',{attrs:{\"filter\":_vm.listingFilter}}):_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\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 } from 'client-website-ts-library/types';\r\nimport { View } from 'client-website-ts-library/plugins';\r\n\r\nimport Embeddable from '@/components/Common/Embeddable.vue';\r\nimport { EmbeddedContent, EmbeddedContentType } from 'client-website-ts-library/types/EmbeddedContent/EmbeddedContent';\r\nimport Listings from '../components/Listings.vue';\r\nimport ListingSearch from '../components/ListingSearch.vue';\r\nimport VideoBanner from '../components/VideoBanner.vue';\r\n\r\n@Component({\r\n components: {\r\n Listings,\r\n ListingSearch,\r\n VideoBanner,\r\n Embeddable,\r\n },\r\n})\r\nexport default class PropertiesForSale extends Mixins(View) {\r\n private listingFilter: ListingFilter | null = null;\r\n\r\n private readonly promo: EmbeddedContent = {\r\n Type: EmbeddedContentType.Youtube,\r\n EmbedId: 'upWgA2phb4Q',\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\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 const filter = new ListingFilter({\r\n PropertyCategories: propertyCategories,\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 (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.MinFloorArea = this.$route.query.areaMin as string;\r\n if (this.$route.query.areaMax) filter.MaxFloorArea = 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 handleFilter(filter: ListingFilter) {\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=4623ce85&scoped=true&\"\nimport script from \"./PropertiesForSale.vue?vue&type=script&lang=ts&\"\nexport * from \"./PropertiesForSale.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./PropertiesForSale.vue?vue&type=style&index=0&id=4623ce85&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 \"4623ce85\",\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!./PropertiesForSale.vue?vue&type=style&index=0&id=4623ce85&scoped=true&lang=css&\""],"sourceRoot":""}