{"version":3,"file":"337.7f0dfaff408b32b81610.js","mappings":"2KAEA,MAAMA,EAAa,CCDZC,MAAA,kB,iCCGA,MAAMC,EAWX,WAAAC,CAAYC,GAVZ,iBAAkB,qBAClB,cAAkB,QAUhB,IACEC,KAAKC,QAAU,IAAIC,EAAQH,GAC3BC,KAAKG,MAAQ,IAAIC,EAAML,GACvBC,KAAKK,IAAM,IAAIC,EAAIP,GACnBC,KAAKO,KAAOR,EAASS,kBACrBR,KAAKS,IAAMC,OAAOC,SAASC,KAC3BZ,KAAKa,YAAcd,EAASe,SAASC,UAAU,EAAG,I,CAClD,MAAMC,GAAI,CACd,CACO,MAAAC,GAEL,OADsBC,KAAKC,UAAUnB,KAEvC,EAGF,MAAME,EAUJ,WAAAJ,CAAYC,GATZ,iBAAkB,qBAClB,cAAkB,gBAClB,KAAAqB,gBAA0B,GAC1B,KAAAC,cAAwB,GACxB,KAAAC,WAAqB,GACrB,KAAAC,cAAwB,GACxB,KAAAC,eAAyB,GAIvBxB,KAAKqB,cAAgBtB,EAAS0B,UAAUC,OACxC1B,KAAKoB,gBAAkBrB,EAAS4B,WAAWD,OAC3C1B,KAAKsB,WAAavB,EAAS6B,SAASF,OACpC1B,KAAKuB,cAAgBxB,EAAS8B,aAAe,IAAM9B,EAAS+B,WAC5D9B,KAAKuB,cAAgBvB,KAAKuB,cAAcG,OACxC1B,KAAKwB,gBAAiB,SACxB,EAGF,MAAMpB,EAIJ,WAAAN,CAAYC,GAHZ,cAAkB,cAIhB,IACE,IAAIgC,GAAU,SAAeC,IAAI,UAAW,IACvCD,EAAQE,SAAS,OACpBF,GAAW,KAEb,IAAIG,EAAWH,EAAU,SAAWhC,EAASoC,kBAAkBC,cAAe,IAAMrC,EAASsC,SAASC,MAAM,KAAK,GAAGA,MAAM,MAAM,GAAGF,cACnIpC,KAAKS,IAAMyB,C,CACX,MAAOlB,GAAI,CACf,EAGF,MAAMV,EAKJ,WAAAR,CAAYC,GAJZ,cAAkB,iBAClB,KAAAwC,SAAmB,EACnB,KAAAC,UAAoB,EAGlBxC,KAAKuC,SAAWxC,EAAS0C,SACzBzC,KAAKwC,UAAYzC,EAAS2C,SAC5B,ECvEF,SAAe,QAAgB,CAC7BC,MAAK,KAEI,CACLC,cAFmB,SAAiBZ,MAAMa,kBAM9CC,SAAU,CACRC,eAAgB,WACd,GAA0B,UAAtB/C,KAAK4C,aAA0B,CACjC,MAAMI,GAAmB,SAAiBhB,MAAMiB,iBAAiBC,SACjE,QAAiBC,IAAbH,EAAwB,CAC1B,MAAMI,EAAkB,IAAIvD,GAAoB,SAAiBmC,MAAMiB,kBAEvE,OADAjD,KAAKqD,aAAaD,EAAgBnC,UAC3B+B,C,EAGX,MAAO,EACT,GAGFM,QAAS,CACP,YAAAD,CAAaE,GACX,IAAIC,EAASC,SAASC,cAAc,UACpCF,EAAOG,KAAO,sBACdH,EAAOI,aAAa,oBAAqB,QACzCJ,EAAOK,YAAcN,EACrBE,SAASK,KAAKC,YAAYP,EAC5B,KC5BJ,MAEA,GAFiC,E,QAAA,GAAgB,EAAQ,CAAC,CAAC,SJDpD,SAAgBQ,EAAUC,EAAYC,EAAYC,EAAYC,EAAWC,GAC9E,OAAQ,WCJR,QAAqD,MAArD,GAAqD,QAAvBtB,EAAAA,gBAAc,EDK9C,I","sources":["webpack://UmbracoVuePrototype/./Scripts/src/vue-components/_propertyDetails/structuredData/index.vue?fd5e","webpack://UmbracoVuePrototype/./Scripts/src/vue-components/_propertyDetails/structuredData/index.vue","webpack://UmbracoVuePrototype/./Scripts/src/vue-components/_propertyDetails/structuredData/model.ts","webpack://UmbracoVuePrototype/./Scripts/src/vue-components/_propertyDetails/structuredData/component.ts","webpack://UmbracoVuePrototype/./Scripts/src/vue-components/_propertyDetails/structuredData/index.vue?9419"],"sourcesContent":["import { toDisplayString as _toDisplayString, openBlock as _openBlock, createElementBlock as _createElementBlock } from \"vue\"\n\nconst _hoisted_1 = { style: {\"display\":\"none\"} }\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, _toDisplayString(_ctx.strucutredData), 1 /* TEXT */))\n}","\r\n {{ strucutredData }}
\r\n\r\n\r\n","import { SurgaProperty } from \"@/ts/models/surgaapi/surgaPropertyModel\";\r\nimport { getCountryCode } from \"@/ts/localeComp\";\r\nimport { globalValues } from \"@/ts/globalValuesComp\";\r\n\r\nexport class StructuredDataModel {\r\n \"@context\": any = \"https://schema.org\";\r\n \"@type\": string = \"Place\";\r\n address: Address;\r\n photo: Photo;\r\n geo: Geo;\r\n description: string;\r\n name: string;\r\n url: string;\r\n\r\n [key: string]: any\r\n constructor(property: SurgaProperty) {\r\n try {\r\n this.address = new Address(property);\r\n this.photo = new Photo(property);\r\n this.geo = new Geo(property);\r\n this.name = property.getAddressTitle();\r\n this.url = window.location.href;\r\n this.description = property.PropDesc.substring(0, 200);\r\n } catch(ex) {}\r\n }\r\n public toJson() {\r\n let generatedString = JSON.stringify(this);\r\n return generatedString;\r\n }\r\n}\r\n\r\nclass Address {\r\n \"@context\": any = \"https://schema.org\";\r\n \"@type\": string = \"PostalAddress\";\r\n addressLocality: string = \"\";\r\n addressRegion: string = \"\";\r\n postalCode: string = \"\";\r\n streetAddress: string = \"\";\r\n addressCountry: string = \"\";\r\n [key: string]: any\r\n\r\n constructor(property: SurgaProperty) {\r\n this.addressRegion = property.StateName.trim();\r\n this.addressLocality = property.SuburbName.trim();\r\n this.postalCode = property.PostCode.trim();\r\n this.streetAddress = property.StreetNumber + \" \" + property.StreetName;\r\n this.streetAddress = this.streetAddress.trim();\r\n this.addressCountry = getCountryCode();\r\n }\r\n}\r\n\r\nclass Photo {\r\n \"@type\": string = \"ImageObject\";\r\n url: string;\r\n [key: string]: any\r\n constructor(property: SurgaProperty) {\r\n try {\r\n let blobURL = globalValues().get(\"blobUrl\", \"\");\r\n if (!blobURL.endsWith(\"/\")) {\r\n blobURL += \"/\";\r\n }\r\n let finalUrl = blobURL + \"surga-\" + property.SurgaWebListingId.toLowerCase()+ \"/\" + property.ImagesId.split(\",\")[0].split(\"||\")[1].toLowerCase();\r\n this.url = finalUrl;\r\n } catch (ex) {};\r\n }\r\n}\r\n\r\nclass Geo {\r\n \"@type\": string = \"GeoCoordinates\";\r\n latitude: number = 0;\r\n longitude: number = 0;\r\n [key: string]: any\r\n constructor(property: SurgaProperty) {\r\n this.latitude = property.Latitude;\r\n this.longitude = property.Longitude;\r\n }\r\n}\r\n","import { defineComponent } from \"vue\";\r\nimport { listingDetails } from \"../../../ts/listingDetailsModuleComp\";\r\nimport { StructuredDataModel } from \"./model\";\r\n\r\nexport default defineComponent({\r\n setup() {\r\n const listingState = listingDetails().get().stateReactive();\r\n return {\r\n listingState\r\n };\r\n },\r\n\r\n computed: {\r\n strucutredData: function () {\r\n if (this.listingState === \"ready\") {\r\n const agencyId: string = listingDetails().get().listingDetails().AgencyId;\r\n if (agencyId !== undefined) {\r\n const strucuturedData = new StructuredDataModel(listingDetails().get().listingDetails());\r\n this.appendToHead(strucuturedData.toJson());\r\n return agencyId;\r\n }\r\n }\r\n return \"\";\r\n }\r\n },\r\n\r\n methods: {\r\n appendToHead(jsonAppend: string) {\r\n var script = document.createElement('script');\r\n script.type = 'application/ld+json';\r\n script.setAttribute(\"data-react-helmet\", \"true\");\r\n script.textContent = jsonAppend;\r\n document.head.appendChild(script);\r\n }\r\n }\r\n});\r\n","import { render } from \"./index.vue?vue&type=template&id=7d73f2fa&ts=true\"\nimport script from \"./component.ts?vue&type=script&lang=ts&external\"\nexport * from \"./component.ts?vue&type=script&lang=ts&external\"\n\nimport exportComponent from \"../../../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__"],"names":["_hoisted_1","style","StructuredDataModel","constructor","property","this","address","Address","photo","Photo","geo","Geo","name","getAddressTitle","url","window","location","href","description","PropDesc","substring","ex","toJson","JSON","stringify","addressLocality","addressRegion","postalCode","streetAddress","addressCountry","StateName","trim","SuburbName","PostCode","StreetNumber","StreetName","blobURL","get","endsWith","finalUrl","SurgaWebListingId","toLowerCase","ImagesId","split","latitude","longitude","Latitude","Longitude","setup","listingState","stateReactive","computed","strucutredData","agencyId","listingDetails","AgencyId","undefined","strucuturedData","appendToHead","methods","jsonAppend","script","document","createElement","type","setAttribute","textContent","head","appendChild","_ctx","_cache","$props","$setup","$data","$options"],"sourceRoot":""}