{"version":3,"sources":["webpack:///./src/views/TVDisplaySales.vue?f6ea","webpack:///./src/views/TVDisplaySales.vue","webpack:///./src/views/TVDisplaySales.vue?3d9d","webpack:///./src/views/TVDisplaySales.vue?8134","webpack:///./src/views/TVDisplaySales.vue?6bb8","webpack:///./node_modules/client-website-ts-library/plugins/view/index.ts","webpack:///./src/views/TVDisplaySales.vue?9c84"],"names":["render","_vm","this","_c","_self","_setupProxy","staticClass","_m","attrs","listing","_v","_s","methodOfSale","_e","on","handleAfterLeave","style","dwellTime","Images","length","Preview","Url","Address","MicroAddress","HiddenAddress","qrCodeLink","listingLink","Header","Price","DisplayPrice","Introduction","Features","Bedrooms","Bathrooms","Parking","Total","Agents","FullName","MobilePhone","Photo","staticRenderFns","TVDisplaySales","Mixins","View","constructor","maxListings","listingFilter","ListingFilter","Statuses","ListingStatus","Current","UnderContract","Categories","ListingCategory","ResidentialSale","ResidentialLand","PageSize","listings","currentIdx","window","location","hostname","PropertyId","Config","API","Base","Id","Website","MethodOfSale","indexOf","queueNext","clearTimeout","nextTimeout","setTimeout","updateListings","then","console","log","Promise","resolve","Listings","Search","Items","catch","mounted","Component","component","ViewBase","Vue","prolistAnalyticsService","ServiceManager","Get","ServiceType","Analytics","headService","Require","Head","updateAnalytics","evt","obj","getAnalyticsEvent","call","getAnalyticsData","AnalyticsPageView","$route","path","name","undefined","triggerAnalyticsEvent","event","GetAll","forEach","adapter","Record","triggerCustomAnalyticsEvent","updateHead","result","head","bind","meta","Update","UpdateWithStatic","requestAnimationFrame","AsyncView","$on"],"mappings":"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","file":"js/chunk-0b4f5f7d.f307df64.js","sourcesContent":["export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--7-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--7-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--7-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TVDisplaySales.vue?vue&type=style&index=1&id=5a1eb745&prod&scoped=true&lang=css&\"","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"tv-display\"},[_c('div',{staticClass:\"tv-display__header\"},[_vm._m(0),_c('div',{staticClass:\"tv-display__header__mos\"},[_c('transition',{attrs:{\"name\":\"tvd-fade\"}},[(_vm.listing)?_c('span',[_vm._v(\" \"+_vm._s(_vm.methodOfSale)+\" \")]):_vm._e()])],1)]),_c('div',{staticClass:\"tv-display__content\"},[_c('transition',{attrs:{\"name\":\"tvd-fade\"},on:{\"after-leave\":_vm.handleAfterLeave}},[(_vm.listing)?_c('div',{staticClass:\"tvd-listing\"},[_c('div',{staticClass:\"tvd-progress-bar\",style:({'--dwell-time': _vm.dwellTime})}),_c('div',{staticClass:\"tvd-listing__body\"},[_c('div',{staticClass:\"tvd-listing__images\"},[(_vm.listing.Images.length === 0)?[_c('div',{staticClass:\"tvd-listing__images__item tvd-listing__images__item--placeholder\"},[_vm._v(\" Sorry, there are no photos for this listing yet. \")])]:(_vm.listing.Images.length < 3)?[_c('div',{staticClass:\"tvd-listing__images__item tvd-listing__images__item--only-main\",style:({'background-image': 'url(' + _vm.listing.Images[0].Preview.Url + ')'})})]:[_c('div',{staticClass:\"tvd-listing__images__item tvd-listing__images__item--main\",style:({'background-image': 'url(' + _vm.listing.Images[0].Preview.Url + ')'})}),_c('div',{staticClass:\"tvd-listing-images__row\"},[_c('div',{staticClass:\"tvd-listing__images__item tvd-listing__images__item--sub\",style:({'background-image': 'url(' + _vm.listing.Images[1].Preview.Url + ')'})}),_c('div',{staticClass:\"tvd-listing__images__item tvd-listing__images__item--sub\",style:({'background-image': 'url(' + _vm.listing.Images[2].Preview.Url + ')'})})])]],2),_c('div',{staticClass:\"tvd-listing__details\"},[_c('div',{staticClass:\"tvd-listing-details__heading\"},[_c('div',{staticClass:\"tvd-listing-details__heading__details\"},[_c('h4',{staticClass:\"listing-address\"},[_vm._v(_vm._s(_vm.listing.Address.MicroAddress))]),_c('h5',{staticClass:\"listing-suburb\"},[_vm._v(_vm._s(_vm.listing.Address.HiddenAddress))])]),_c('div',{staticClass:\"tvd-listing-details__heading__qr-code\"},[_c('img',{attrs:{\"src\":_vm.qrCodeLink}}),_c('div',{staticClass:\"tvd-listing-details__heading__qr-code__link\"},[_vm._v(\" \"+_vm._s(_vm.listingLink)+\" \")])])]),_c('div',{staticClass:\"tvd-listing__details__body\"},[_c('h2',{staticClass:\"listing-heading\"},[_vm._v(_vm._s(_vm.listing.Header))]),(_vm.listing.Price.DisplayPrice)?_c('h3',{staticClass:\"listing-price\"},[_vm._v(_vm._s(_vm.listing.Price.Price))]):_vm._e(),_c('p',{staticClass:\"listing-introduction\"},[_vm._v(_vm._s(_vm.listing.Introduction))]),_c('ul',{staticClass:\"listing-meta\"},[(_vm.listing.Features.Bedrooms)?_c('li',{staticClass:\"listing-meta__item\"},[_c('Icon',{staticClass:\"listing-meta__item__icon\",attrs:{\"icon\":\"bed\"}}),_c('span',{staticClass:\"listing-meta__item__label\"},[_vm._v(\" \"+_vm._s(_vm.listing.Features.Bedrooms)+\" \")])],1):_vm._e(),(_vm.listing.Features.Bathrooms)?_c('li',{staticClass:\"listing-meta__item\"},[_c('Icon',{staticClass:\"listing-meta__item__icon\",attrs:{\"icon\":\"bath\"}}),_c('span',{staticClass:\"listing-meta__item__label\"},[_vm._v(\" \"+_vm._s(_vm.listing.Features.Bathrooms)+\" \")])],1):_vm._e(),(_vm.listing.Features.Parking.Total)?_c('li',{staticClass:\"listing-meta__item\"},[_c('Icon',{staticClass:\"listing-meta__item__icon\",attrs:{\"icon\":\"car\"}}),_c('span',{staticClass:\"listing-meta__item__label\"},[_vm._v(\" \"+_vm._s(_vm.listing.Features.Parking.Total)+\" \")])],1):_vm._e()])])])]),_c('div',{staticClass:\"tvd-listing__footer\"},[_c('div',{staticClass:\"tvd-listing__agency\"},[_vm._v(\" 1/5 / 20 Lake Street, Cairns | 4031 3138 | tspropertygroup.com.au \")]),_c('div',{staticClass:\"tvd-listing__agent\"},[_c('div',{staticClass:\"listing-agent__name\"},[_vm._v(\" \"+_vm._s(_vm.listing.Agents[0].FullName)+\" \")]),_c('div',{staticClass:\"listing-agent__phone\"},[_vm._v(\" \"+_vm._s(_vm.listing.Agents[0].MobilePhone)+\" \")])]),_c('div',{staticClass:\"tvd-listing-agent-photo\"},[_c('img',{attrs:{\"src\":_vm.listing.Agents[0].Photo.Preview.Url}})])])]):_vm._e()])],1)])\n}\nvar staticRenderFns = [function (){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"tv-display__header__brand\"},[_c('img',{attrs:{\"src\":\"/assets/images/brand/logo.png\"}})])\n}]\n\nexport { render, staticRenderFns }","\r\nimport { Component, Mixins } from 'vue-property-decorator';\r\n\r\nimport { ListingFilter } from 'client-website-ts-library/filters';\r\nimport {\r\n ListingStatus,\r\n ListingCategory,\r\n Listing,\r\n} from 'client-website-ts-library/types';\r\n\r\nimport { View } from 'client-website-ts-library/plugins';\r\nimport { API, Config } from 'client-website-ts-library/services';\r\n\r\n@Component\r\nexport default class TVDisplaySales extends Mixins(View) {\r\n private dwellTime = 10 * 1000 * 0.5;\r\n\r\n private maxListings = 5;\r\n\r\n private listingFilter = new ListingFilter({\r\n Statuses: [\r\n ListingStatus.Current,\r\n ListingStatus.UnderContract,\r\n ],\r\n Categories: [\r\n ListingCategory.ResidentialSale,\r\n ListingCategory.ResidentialLand,\r\n ],\r\n PageSize: this.maxListings,\r\n });\r\n\r\n private listings: Listing[] = [];\r\n\r\n private listing: Listing | null = null;\r\n\r\n private nextTimeout?: number;\r\n\r\n private currentIdx = 0;\r\n\r\n get listingLink() {\r\n if (this.listing === null) return '';\r\n\r\n return `${window.location.hostname}/${this.listing.PropertyId}`;\r\n }\r\n\r\n get qrCodeLink() {\r\n if (this.listing === null) return null;\r\n\r\n return `${Config.API.Base}/api/links/qrcode/listings/${this.listing.Id}?clientWebsiteId=${Config.Website.Id}`;\r\n }\r\n\r\n get methodOfSale() {\r\n if (this.listing === null) return 'For Sale';\r\n\r\n if (this.listing.MethodOfSale.indexOf('For') !== -1) return this.listing.MethodOfSale;\r\n\r\n return `For ${this.listing.MethodOfSale}`;\r\n }\r\n\r\n queueNext() {\r\n clearTimeout(this.nextTimeout);\r\n\r\n this.nextTimeout = setTimeout(() => {\r\n this.currentIdx += 1;\r\n\r\n if (this.currentIdx >= this.listings.length && this.listings.length > 0) {\r\n this.updateListings().then(() => {\r\n // eslint-disable-next-line prefer-destructuring\r\n this.currentIdx = 0;\r\n this.listing = null;\r\n });\r\n } else {\r\n this.listing = null;\r\n }\r\n }, this.dwellTime);\r\n }\r\n\r\n handleAfterLeave() {\r\n this.listing = this.listings[this.currentIdx];\r\n\r\n console.log(this.listing);\r\n\r\n this.queueNext();\r\n }\r\n\r\n updateListings() {\r\n return new Promise((resolve) => {\r\n API.Listings.Search(this.listingFilter).then((listings) => {\r\n this.listings = listings.Items;\r\n\r\n this.handleAfterLeave();\r\n\r\n resolve();\r\n }).catch(() => {\r\n if (this.listings.length > 0) {\r\n this.handleAfterLeave();\r\n\r\n resolve();\r\n }\r\n });\r\n });\r\n }\r\n\r\n mounted() {\r\n this.updateListings();\r\n }\r\n}\r\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--15-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TVDisplaySales.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--15-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TVDisplaySales.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./TVDisplaySales.vue?vue&type=template&id=5a1eb745&scoped=true&\"\nimport script from \"./TVDisplaySales.vue?vue&type=script&lang=ts&\"\nexport * from \"./TVDisplaySales.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./TVDisplaySales.vue?vue&type=style&index=0&id=5a1eb745&prod&lang=css&\"\nimport style1 from \"./TVDisplaySales.vue?vue&type=style&index=1&id=5a1eb745&prod&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 \"5a1eb745\",\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--7-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--7-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--7-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TVDisplaySales.vue?vue&type=style&index=0&id=5a1eb745&prod&lang=css&\""],"sourceRoot":""}