{"version":3,"sources":["webpack:///./src/views/AgentProfileListings.vue?bdc0","webpack:///./src/components/Listings.vue?eaba","webpack:///./src/views/AgentProfileListings.vue?f3f8","webpack:///./src/views/AgentProfileListings.vue","webpack:///./src/views/AgentProfileListings.vue?c5d8","webpack:///./src/views/AgentProfileListings.vue?4f22","webpack:///./src/components/Listings.vue?2e41","webpack:///./src/components/Listings.vue","webpack:///./src/components/Listings.vue?5b1e","webpack:///./src/components/Listings.vue?c557"],"names":["render","_vm","this","_h","$createElement","_c","_self","staticClass","attrs","_v","_s","profile","FullName","Position","PROLISTPhoto","Preview","Url","_e","FirstName","charAt","length","toLowerCase","currentListingFilter","on","$event","hasCurrentListings","staticRenderFns","id","$route","params","updateAgent","Slugs","Resolve","then","resolved","Type","Id","html","el","document","createElement","innerHTML","innerText","about","stripHtml","AboutAgent","substring","title","description","image","Photo","undefined","Profiles","Get","$emit","SearchLevel","Profile","SearchGuid","Statuses","Current","UnderContract","OrderByStatements","CreateDateDesc","PageSize","resolveId","Analytics","FromProfile","components","Masthead","Listings","component","listings","_l","listing","key","loading","noListingsText","infiniteScroll","more","directives","name","rawName","value","callback","loadMore","throttle","threshold","expression","errored","filterUpdateDebounce","Promise","resolve","reject","Search","filter","data","Pages","Page","push","Items","Count","catch","load","update","clearTimeout","window","setTimeout","default","ListingCard","Loader"],"mappings":"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","file":"js/chunk-c9e8f86a.a094a849.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-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!./AgentProfileListings.vue?vue&type=style&index=0&id=5a60c2cd&scoped=true&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-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!./Listings.vue?vue&type=style&index=0&id=dae1b5c4&scoped=true&lang=css&\"","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('Page',[(_vm.profile)?[_c('Masthead',{staticClass:\"agent-profile__masthead\",attrs:{\"image\":\"/assets/images/photos/profile-bg.jpg\",\"relative-content\":true,\"darken\":true}},[_c('ContentContainer',{staticClass:\"agent-profile__header-wrap\"},[_c('div',{staticClass:\"agent-profile__header\"},[_c('div',{staticClass:\"agent-profile__header__details\"},[_c('h1',{staticClass:\"agent-profile__name\"},[_vm._v(_vm._s(_vm.profile.FullName))]),_c('h2',{staticClass:\"agent-profile__position\"},[_vm._v(_vm._s(_vm.profile.Position))])]),(_vm.profile.PROLISTPhoto)?_c('div',{staticClass:\"agent-profile__header__image\"},[_c('img',{staticClass:\"agent-profile__img\",attrs:{\"src\":_vm.profile.PROLISTPhoto.Preview.Url}})]):_vm._e()])])],1),(_vm.hasCurrentListings)?_c('ContentRow',[_c('ContentContainer',[_c('SectionTitle',[_vm._v(_vm._s(_vm.profile.FirstName)+_vm._s(_vm.profile.FirstName.charAt(_vm.profile.FirstName.length - 1).toLowerCase() === 's' ? '\\'' : '\\'s')+\" Listings\")]),_c('Listings',{attrs:{\"filter\":_vm.currentListingFilter},on:{\"got_listing_count\":function($event){_vm.hasCurrentListings = $event > 0}}})],1)],1):_vm._e()]:_vm._e()],2)}\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\r\nimport { Component, Mixins } from 'vue-property-decorator';\r\nimport { Profile, ListingStatus, WebsiteLevel } from 'client-website-ts-library/types';\r\nimport { API } from 'client-website-ts-library/services';\r\nimport { ListingFilter, ListingOrderBy } from 'client-website-ts-library/filters';\r\nimport { AsyncView, RouteMeta } from 'client-website-ts-library/plugins';\r\n\r\nimport Masthead from '@/components/Common/Masthead.vue';\r\nimport Listings from '@/components/Listings.vue';\r\nimport { AnalyticsEventObject } from 'client-website-ts-library/services/Analytics';\r\n\r\n@Component({\r\n components: {\r\n Masthead,\r\n Listings,\r\n },\r\n})\r\nexport default class AgentProfile extends Mixins(AsyncView) {\r\n private profile: Profile | null = null;\r\n\r\n private currentListingFilter: ListingFilter | null = null;\r\n\r\n private hasCurrentListings = true;\r\n\r\n resolveId() {\r\n const { id } = this.$route.params;\r\n\r\n if (id.length === 36) {\r\n // If the ID is 36 long we'll treat it as a guid\r\n\r\n this.updateAgent(id);\r\n } else {\r\n API.Slugs.Resolve(id).then((resolved) => {\r\n if (resolved.Type === 'Profile') {\r\n this.updateAgent(resolved.Id);\r\n }\r\n });\r\n }\r\n }\r\n\r\n stripHtml(html: string): string {\r\n const el = document.createElement('div');\r\n\r\n el.innerHTML = html;\r\n\r\n return el.innerText;\r\n }\r\n\r\n head(): RouteMeta | null {\r\n if (this.profile === null) return null;\r\n\r\n let about = this.stripHtml(this.profile.AboutAgent);\r\n\r\n if (about.length > 156) {\r\n about = `${about.substring(0, 156)}...`;\r\n }\r\n\r\n return {\r\n title: `${this.profile.FullName}'s Listings - ${this.profile.Position}`,\r\n description: about,\r\n image: this.profile.Photo ? this.profile.Photo.Preview.Url : undefined,\r\n };\r\n }\r\n\r\n updateAgent(id: string) {\r\n API.Profiles.Get(id).then((profile) => {\r\n this.profile = profile;\r\n\r\n this.$emit('updateView');\r\n\r\n this.currentListingFilter = new ListingFilter({\r\n SearchLevel: WebsiteLevel.Profile,\r\n SearchGuid: this.profile!.Id,\r\n Statuses: [\r\n ListingStatus.Current,\r\n ListingStatus.UnderContract,\r\n ],\r\n OrderByStatements: [\r\n ListingOrderBy.CreateDateDesc,\r\n ],\r\n PageSize: 6,\r\n });\r\n });\r\n }\r\n\r\n mounted() {\r\n this.resolveId();\r\n }\r\n\r\n getAnalyticsData(): AnalyticsEventObject | null {\r\n if (this.profile === null) return null;\r\n\r\n return AnalyticsEventObject.FromProfile(this.profile);\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!./AgentProfileListings.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!./AgentProfileListings.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./AgentProfileListings.vue?vue&type=template&id=5a60c2cd&scoped=true&\"\nimport script from \"./AgentProfileListings.vue?vue&type=script&lang=ts&\"\nexport * from \"./AgentProfileListings.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./AgentProfileListings.vue?vue&type=style&index=0&id=5a60c2cd&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 \"5a60c2cd\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('section',{staticClass:\"listings\"},[(_vm.listings.length)?_c('Cards',{staticClass:\"cards--listings\"},_vm._l((_vm.listings),function(listing){return _c('ListingCard',{key:listing.Id,attrs:{\"listing\":listing}})}),1):(!_vm.loading)?_c('div',{staticClass:\"listings__no-listings\"},[_vm._v(\" \"+_vm._s(_vm.noListingsText)+\" \")]):_vm._e(),_c('Loader',{staticClass:\"listings__loader\",attrs:{\"loading\":_vm.loading}}),(_vm.infiniteScroll && _vm.more)?_c('div',{directives:[{name:\"observe-visibility\",rawName:\"v-observe-visibility\",value:({callback: _vm.loadMore, throttle: 1000, threshold: 0.5}),expression:\"{callback: loadMore, throttle: 1000, threshold: 0.5}\"}],staticClass:\"listings__visibility-checker\"}):_vm._e()],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\r\nimport { ObserveVisibility } from 'vue-observe-visibility';\r\nimport { Component, Vue, Prop, Watch } from 'vue-property-decorator';\r\nimport { ListingFilter } from 'client-website-ts-library/filters/ListingFilter';\r\nimport { Listing } from 'client-website-ts-library/types/Listing';\r\nimport { API } from 'client-website-ts-library/services';\r\n\r\nimport ListingCard from './ListingCard.vue';\r\nimport Loader from './UI/Loader.vue';\r\n\r\n@Component({\r\n components: {\r\n ListingCard,\r\n Loader,\r\n },\r\n directives: {\r\n 'observe-visibility': ObserveVisibility,\r\n },\r\n})\r\nexport default class Listings extends Vue {\r\n @Prop()\r\n private readonly filter!: ListingFilter;\r\n\r\n @Prop({ default: true })\r\n private readonly infiniteScroll!: boolean;\r\n\r\n @Prop({ default: 'No listings found.' })\r\n private readonly noListingsText!: string;\r\n\r\n private loading = false;\r\n\r\n private errored = false;\r\n\r\n private listings: Listing[] = [];\r\n\r\n private more = true;\r\n\r\n load(): Promise {\r\n return new Promise((resolve, reject) => {\r\n if (this.loading || !this.more) resolve(false);\r\n\r\n this.loading = true;\r\n\r\n API.Listings.Search(this.filter).then((data) => {\r\n this.more = data.Pages > this.filter.Page;\r\n\r\n this.listings.push(...data.Items);\r\n\r\n resolve();\r\n\r\n this.$emit('got_listing_count', data.Count);\r\n }).catch(reject);\r\n });\r\n }\r\n\r\n loadMore(): void {\r\n if (this.loading) return;\r\n\r\n this.filter.Page += 1;\r\n\r\n this.load().then(() => {\r\n this.loading = false;\r\n });\r\n }\r\n\r\n update(): void {\r\n this.listings = [];\r\n this.more = true;\r\n this.loading = false;\r\n\r\n this.load().then(() => {\r\n this.loading = false;\r\n });\r\n }\r\n\r\n mounted() {\r\n this.update();\r\n }\r\n\r\n private filterUpdateDebounce: number | undefined = undefined;\r\n\r\n @Watch('filter.Suburbs')\r\n @Watch('filter.SearchId')\r\n handleFilterParamsUpdated(): void {\r\n this.loading = true;\r\n this.listings = [];\r\n\r\n clearTimeout(this.filterUpdateDebounce);\r\n\r\n this.filterUpdateDebounce = window.setTimeout(() => {\r\n this.loading = false;\r\n\r\n this.update();\r\n }, 1000);\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!./Listings.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!./Listings.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./Listings.vue?vue&type=template&id=dae1b5c4&scoped=true&\"\nimport script from \"./Listings.vue?vue&type=script&lang=ts&\"\nexport * from \"./Listings.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./Listings.vue?vue&type=style&index=0&id=dae1b5c4&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 \"dae1b5c4\",\n null\n \n)\n\nexport default component.exports"],"sourceRoot":""}