{"version":3,"sources":["webpack:///./src/views/TVDisplay.vue?efeb","webpack:///./src/views/TVDisplay.vue?3215","webpack:///./node_modules/client-website-ts-library/plugins/view/index.ts","webpack:///./src/views/TVDisplay.vue?8473","webpack:///./src/views/TVDisplay.vue","webpack:///./src/views/TVDisplay.vue?55ec","webpack:///./src/views/TVDisplay.vue?0819"],"names":["prolistAnalyticsService","ServiceManager","Get","Analytics","headService","Require","Head","evt","obj","this","getAnalyticsEvent","call","getAnalyticsData","$route","path","name","undefined","triggerAnalyticsEvent","event","GetAll","forEach","adapter","Record","result","head","bind","Promise","then","meta","Update","UpdateWithStatic","View","requestAnimationFrame","updateHead","updateAnalytics","AsyncView","$on","render","_vm","_h","$createElement","_c","_self","staticClass","attrs","on","$event","fullScreen","_v","_s","methodOfSale","_e","handleAfterLeave","style","dwellTime","listing","Images","length","Preview","Url","Address","MicroAddress","HiddenAddress","Header","Price","Introduction","Features","Bedrooms","Bathrooms","Parking","Total","Agents","FullName","MobilePhone","Photo","staticRenderFns","maxListings","listingFilter","Statuses","Current","UnderContract","Categories","ResidentialSale","ResidentialLand","ResidentialRental","Business","Commercial","CommercialLand","Rural","HolidayRental","PageSize","IsHighlightListing","isFullScreen","listings","currentIdx","window","location","hostname","PropertyId","API","Base","Id","Website","MethodOfSale","indexOf","document","documentElement","requestFullscreen","exitFullscreen","clearTimeout","nextTimeout","setTimeout","updateListings","console","log","queueNext","resolve","Listings","Search","Items","catch","component"],"mappings":"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","file":"js/chunk-0726ad92.59401b7f.js","sourcesContent":["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/cli-service/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/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./TVDisplay.vue?vue&type=style&index=0&id=22c344e4&prod&lang=css&\"","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/cli-service/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/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./TVDisplay.vue?vue&type=style&index=1&id=22c344e4&prod&scoped=true&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","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"tv-display\"},[_c('div',{staticClass:\"tv-display__header\"},[_c('div',{staticClass:\"tv-display__header__brand\"},[_c('img',{attrs:{\"src\":\"/assets/images/brand/logo.png\"},on:{\"click\":function($event){return _vm.fullScreen()}}})]),_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__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()])])])]),(_vm.listing.Agents.length > 0 && _vm.listing.Agents[0] && _vm.listing.Agents[0].FullName)?_c('div',{staticClass:\"tvd-listing__footer\"},[_c('div',{staticClass:\"tvd-listing__agency\"}),_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()]):_vm._e()])],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\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\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\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\n\n\n\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 TVDisplay extends Mixins(View) {\r\n private dwellTime = 10 * 1000 * 1;\r\n\r\n private maxListings = 20;\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 ListingCategory.ResidentialRental,\r\n ListingCategory.Business,\r\n ListingCategory.Commercial,\r\n ListingCategory.CommercialLand,\r\n ListingCategory.Rural,\r\n ListingCategory.HolidayRental,\r\n ],\r\n PageSize: this.maxListings,\r\n IsHighlightListing: true,\r\n });\r\n\r\n private isFullScreen = false;\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 fullScreen() {\r\n this.isFullScreen = !this.isFullScreen;\r\n\r\n if (this.isFullScreen) {\r\n document.documentElement.requestFullscreen();\r\n } else {\r\n document.exitFullscreen();\r\n }\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--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/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./TVDisplay.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/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./TVDisplay.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./TVDisplay.vue?vue&type=template&id=22c344e4&scoped=true&\"\nimport script from \"./TVDisplay.vue?vue&type=script&lang=ts&\"\nexport * from \"./TVDisplay.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./TVDisplay.vue?vue&type=style&index=0&id=22c344e4&prod&lang=css&\"\nimport style1 from \"./TVDisplay.vue?vue&type=style&index=1&id=22c344e4&prod&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"22c344e4\",\n null\n \n)\n\nexport default component.exports"],"sourceRoot":""}