{"version":3,"file":"_vue/_apps/js/content-map.09891bca.js","mappings":"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","sources":["webpack://@sw/website/./src/apps/content-map/index.vue","webpack://@sw/website/./src/components/search-bar/search-bar.vue","webpack://@sw/website/./src/utils/resources.ts","webpack://@sw/website/./src/components/search-bar/search-bar.vue?e4d4","webpack://@sw/website/./src/components/search-bar/search-bar.vue?2b32","webpack://@sw/website/./src/components/search-bar/search-bar.vue?1e3b","webpack://@sw/website/./src/utils/models/result.ts","webpack://@sw/website/./src/apps/content-map/index.vue?25f8","webpack://@sw/website/./src/apps/content-map/index.vue?eda9","webpack://@sw/website/./src/apps/content-map/index.vue?bf51","webpack://@sw/website/./src/apps/content-map/store.ts","webpack://@sw/website/./src/apps/content-map/index.ts","webpack://@sw/website/./src/apps/content-map/index.prod.ts","webpack://@sw/website/webpack/bootstrap","webpack://@sw/website/webpack/runtime/chunk loaded","webpack://@sw/website/webpack/runtime/define property getters","webpack://@sw/website/webpack/runtime/global","webpack://@sw/website/webpack/runtime/hasOwnProperty shorthand","webpack://@sw/website/webpack/runtime/runtimeId","webpack://@sw/website/webpack/runtime/jsonp chunk loading","webpack://@sw/website/webpack/startup"],"sourcesContent":["var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"content-map\"},[_c('div',{staticClass:\"content-map__top-bar\"},[(_vm.ContentData.Map.Layers.length > 1)?_c('div',{staticClass:\"col-12 content-map__category_buttons\"},_vm._l((_vm.ContentData.Map.Layers),function(type){return _c('button',{key:type.Id,staticClass:\"content-map__category_button btn\",class:{\r\n\t\t\t\t\t\t'btn-pacific': _vm.activeLayers.includes(type.Id),\r\n\t\t\t\t\t\t'btn-outline-pacific': !_vm.activeLayers.includes(type.Id)\r\n\t\t\t\t\t},on:{\"click\":function($event){return _vm.toggleLayer(type.Id)}}},[_vm._v(\" \"+_vm._s(type.Name)+\" \")])}),0):_vm._e()]),_c('div',{staticClass:\"content-map__map-wrapper\"},[_c('div',{staticClass:\"content-map__map\"},[_c('div',{ref:\"content-map__map\",staticStyle:{\"position\":\"relative\",\"overflow\":\"hidden\",\"transform\":\"translateZ(0)\",\"background-color\":\"rgb(229, 227, 223)\"}})]),_c('div',{staticClass:\"content-map__information-panel\"},[_c('div',{staticClass:\"information-panel\"},[_c('div',{staticClass:\"information-panel__contents\"},[_vm._m(0),_c('div',{staticClass:\"information-panel__body\"},[_c('div',{staticClass:\"w-100 d-flex\"},[_c('search-form',{attrs:{\"compact\":\"\",\"placeholder\":\"Enter your postcode\",\"colour\":\"white\",\"formAction\":\"\",\"textColour\":\"pacific\",\"searchParameter\":_vm.searchParameter},on:{\"submit\":_vm.onPostcodeSearch},model:{value:(_vm.searchedPostcode),callback:function ($$v) {_vm.searchedPostcode=$$v},expression:\"searchedPostcode\"}})],1),(_vm.postcodeResults.state === 'completed')?[_c('h3',{staticClass:\"mt-3 text-primary\"},[_vm._v(\"Here are your closest sites:\")]),_vm._l((_vm.postcodeResults.result),function(layer){return [(_vm.activeLayers.includes(layer.id))?_c('section',{key:layer.id,staticClass:\"mt-3\"},[_c('header',[_c('h4',[_vm._v(_vm._s(layer.name))])]),_c('ol',_vm._l((layer.places),function(place){return _c('li',{key:place.id},[_c('div',[_c('button',{staticClass:\"btn btn-link p-0\",on:{\"click\":function($event){return _vm.openMarkerCenterMapOnMarker(place.id)}}},[_vm._v(_vm._s(place.name))])]),_c('div',[_vm._v(_vm._s((place.distance / 1000).toFixed(2))+\"km / \"+_vm._s((place.distance * 0.6213712 / 1000).toFixed(2))+\" miles\")])])}),0)]):_vm._e()]})]:(_vm.postcodeResults.state === 'errored')?[_c('p',[_vm._v(\"Please enter a valid Postcode\")])]:(_vm.postcodeResults.state === 'initial')?[_c('p',{staticClass:\"mt-3\"},[_vm._v(\"Enter your postcode above to find your closest sites\")])]:_vm._e()],2)])])])])])\n}\nvar staticRenderFns = [function (){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('h2',{staticClass:\"information-panel__header\"},[_c('i',{staticClass:\"fas fa-map-marker-alt mr-3\"}),_vm._v(\" Your closest sites \")])\n}]\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"search-bar\",class:{\r\n\t\t[`search-bar--${_vm.colour}`]: _vm.colour,\r\n\t\t[`search-bar--text-${_vm.textColour}`]: _vm.textColour,\r\n\t\t[`search-bar--compact`]: _vm.compact,\r\n\t\t[`search-bar--stretched`]: _vm.stretched,\r\n\t}},[_c('form',{staticClass:\"search-bar__inner\",attrs:{\"method\":\"GET\",\"action\":_vm.formAction},on:{\"submit\":_vm.onSubmit}},[_vm._l((_vm.hiddenInputs),function(input){return _c('input',{key:input.name,attrs:{\"type\":\"hidden\",\"name\":input.name},domProps:{\"value\":input.value}})}),_c('label',{staticClass:\"search-bar__label\"},[_c('span',{staticClass:\"search-bar__label-text\"},[_vm._v(_vm._s(_vm.label))]),_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.searchValue),expression:\"searchValue\"}],staticClass:\"search-bar__input\",attrs:{\"type\":\"text\",\"name\":_vm.searchParameter,\"placeholder\":_vm.placeholder,\"autocomplete\":\"off\"},domProps:{\"value\":(_vm.searchValue)},on:{\"input\":function($event){if($event.target.composing)return;_vm.searchValue=$event.target.value}}})]),_vm._m(0)],2)])\n}\nvar staticRenderFns = [function (){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('button',{staticClass:\"search-bar__action\"},[_c('i',{staticClass:\"fas fa-search\"})])\n}]\n\nexport { render, staticRenderFns }","// Names taken from https://www.color-blindness.com/color-name-hue/\r\n// Requires hex codes as opposed to 'friendly' name (ie. #ffffff instead of white) for scss interpretation\r\nimport Resources from '../assets/resources.json';\r\n\r\nconst {\r\n\tBrandColours: RawBrandColours,\r\n\tDroughtPhaseColours: RawDroughtPhaseColours,\r\n\tFeedbackColours: RawFeedbackColours,\r\n\tPebbleStyles: RawPebbleStyles,\r\n} = Resources;\r\n\r\nexport const BrandColours = Object.freeze(RawBrandColours);\r\nexport type BrandColoursType = keyof typeof BrandColours;\r\nexport const BrandColourNames = Object.freeze(Object.getOwnPropertyNames(BrandColours) as BrandColoursType[]);\r\n\r\nexport function isBrandColour(value: string | unknown): value is BrandColoursType {\r\n\treturn (BrandColourNames as unknown[]).includes(value);\r\n}\r\n\r\nexport const DroughtPhaseColours = Object.freeze(RawDroughtPhaseColours);\r\nexport type DroughtPhaseColoursType = keyof typeof DroughtPhaseColours;\r\nexport const DroughtPhaseColourNames = Object.freeze(Object.getOwnPropertyNames(DroughtPhaseColours) as DroughtPhaseColoursType[]);\r\n\r\nexport type PebbleStylesType = keyof typeof RawPebbleStyles;\r\nexport const PebbleStyles = Object.freeze(Object.getOwnPropertyNames(RawPebbleStyles) as PebbleStylesType[]);\r\n\r\n// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\r\nexport const FeedbackColours = Object.freeze(RawFeedbackColours);\r\nexport type FeedbackColoursType = keyof typeof FeedbackColours;\r\nexport const FeedbackColoursNames = Object.freeze(Object.getOwnPropertyNames(FeedbackColours) as FeedbackColoursType[]);\r\n\r\nexport function isFeedbackColour(value: string | unknown): value is FeedbackColoursType {\r\n\treturn (FeedbackColoursNames as unknown[]).includes(value);\r\n}\r\n","\r\nimport { Component, Emit, ModelSync, Prop, Vue, } from 'vue-property-decorator';\r\nimport { BrandColoursType, isBrandColour, } from '~/utils/resources';\r\n\r\n@Component\r\nexport default class SearchBar extends Vue {\r\n\t@Prop({\r\n\t\ttype: String,\r\n\t\trequired: true,\r\n\t\tvalidator(value) {\r\n\t\t\treturn isBrandColour(value);\r\n\t\t},\r\n\t})\r\n\tcolour!: BrandColoursType;\r\n\r\n\t@Prop({\r\n\t\ttype: Boolean,\r\n\t\trequired: false,\r\n\t\tdefault: false,\r\n\t})\r\n\tcompact!: boolean;\r\n\r\n\t@Prop({\r\n\t\ttype: String,\r\n\t\trequired: true,\r\n\t})\r\n\tformAction!: string;\r\n\r\n\t@Prop({\r\n\t\ttype: Array,\r\n\t\trequired: false,\r\n\t})\r\n\thiddenInputs!: readonly { name: string, value: string, }[];\r\n\r\n\t@Prop({\r\n\t\ttype: String,\r\n\t\tdefault: 'Enter a search term',\r\n\t\trequired: false,\r\n\t})\r\n\tlabel!: string;\r\n\r\n\t@Prop({\r\n\t\ttype: String,\r\n\t\trequired: true,\r\n\t})\r\n\tplaceholder!: string;\r\n\r\n\t@Prop({\r\n\t\ttype: String,\r\n\t\trequired: false,\r\n\t\tdefault: 'q',\r\n\t})\r\n\tsearchParameter!: string;\r\n\r\n\t@Prop({\r\n\t\ttype: Boolean,\r\n\t\trequired: false,\r\n\t\tdefault: false,\r\n\t})\r\n\tstretched!: boolean;\r\n\r\n\t@Prop({\r\n\t\ttype: String,\r\n\t\trequired: false,\r\n\t\tvalidator(value) {\r\n\t\t\treturn isBrandColour(value);\r\n\t\t},\r\n\t})\r\n\ttextColour!: BrandColoursType;\r\n\r\n\tget hasSubmitListener() {\r\n\t\treturn this.$listeners && this.$listeners.submit;\r\n\t}\r\n\r\n\t@ModelSync('input', 'change', { type: String, })\r\n\treadonly searchValue!: string;\r\n\r\n\t@Emit('submit')\r\n\tonSubmit(e: Event) {\r\n\t\tif (this.hasSubmitListener) {\r\n\t\t\te.preventDefault();\r\n\t\t}\r\n\t\tconsole.warn('submit in bar');\r\n\t}\r\n}\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/@vue/cli-plugin-typescript/node_modules/ts-loader/index.js??clonedRuleSet-43.use[2]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./search-bar.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/@vue/cli-plugin-typescript/node_modules/ts-loader/index.js??clonedRuleSet-43.use[2]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./search-bar.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./search-bar.vue?vue&type=template&id=76abf1be&\"\nimport script from \"./search-bar.vue?vue&type=script&lang=ts&\"\nexport * from \"./search-bar.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./search-bar.vue?vue&type=style&index=0&id=76abf1be&prod&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","export interface InitialState { state: 'initial', }\r\nexport interface LoadingState { state: 'loading', }\r\nexport interface ErroredState { state: 'errored', }\r\nexport interface CompletedState { state: 'completed', result: ResultType, }\r\n\r\nexport function Initial(): InitialState {\r\n\treturn { state: 'initial', };\r\n}\r\n\r\nexport function Loading(): LoadingState {\r\n\treturn { state: 'loading', };\r\n}\r\n\r\nexport function Errored(): ErroredState {\r\n\treturn { state: 'errored', };\r\n}\r\n\r\nexport function Completed(result: ResultType): CompletedState {\r\n\treturn {\r\n\t\tstate: 'completed',\r\n\t\tresult,\r\n\t};\r\n}\r\n\r\nexport type Result = InitialState | LoadingState | ErroredState | CompletedState;\r\n\r\nexport type CompletedType = R extends CompletedState ? ResultType : never;\r\n\r\nexport function mapCompleted(result: Result, mapper: (value: OriginalResultType) => MappedResultType) {\r\n\tif (!isComplete(result)) {\r\n\t\treturn result;\r\n\t}\r\n\r\n\treturn Completed(mapper(result.result));\r\n}\r\n\r\nexport function isResult(obj: unknown): obj is Result {\r\n\tconst { state, } = (obj as Result);\r\n\treturn state !== undefined && (state === 'completed' || state === 'errored' || state === 'initial' || state === 'loading');\r\n}\r\n\r\nexport function isComplete(result: Result): result is CompletedState {\r\n\treturn result.state === 'completed';\r\n}\r\n\r\nexport async function loadResultedData(data: Result, loadData: () => PromiseLike<{ result: DataType, }>, commit: (state: Result) => void) {\r\n\tif (data.state === 'loading') {\r\n\t\treturn;\r\n\t}\r\n\r\n\ttry {\r\n\t\tif (data.state === 'completed') {\r\n\t\t\tconst loadedData = await loadData();\r\n\t\t\tcommit(Completed(loadedData.result));\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\t// Don't display loading immediately incase it loads quick\r\n\t\tconst loadingTimeout = setTimeout(() => commit(Loading()), 250);\r\n\t\tconst loadedData = await loadData();\r\n\t\tclearTimeout(loadingTimeout);\r\n\t\tcommit(Completed(loadedData.result));\r\n\t} catch (e) {\r\n\t\tconsole.error(e);\r\n\t\tcommit(Errored());\r\n\t}\r\n}\r\n","\r\nimport { Loader, } from '@googlemaps/js-api-loader';\r\nimport { Component, Prop, Ref, Vue, } from 'vue-property-decorator';\r\nimport SearchForm from '~/components/search-bar/search-bar.vue';\r\nimport { Completed, Errored, Initial, Loading, Result, } from '~/utils/models/result';\r\n\r\ntype ContentMapData = typeof import('./content-map-data.json');\r\n\r\ndeclare var google: typeof window.google;\r\n\r\ninterface PostcodeResult {\r\n\tid: number;\r\n\tname: string;\r\n\tplaces: {\r\n\t\tid: number,\r\n\t\tname: string,\r\n\t\tposition: google.maps.LatLng,\r\n\t\tdistance: number,\r\n\t}[];\r\n}\r\n\r\nconst PostcodeSearchParam = 'postcode';\r\nconst SearchResultsCount = 3;\r\n\r\nfunction getPostcode(searchParam: string) {\r\n\tconst regex = new RegExp(`[\\\\?&]${searchParam}=([^&#]*)`);\r\n\tconst results = regex.exec(window.location.search);\r\n\treturn results == null ? '' : decodeURIComponent(results[1].replace(/\\+/g, ' '));\r\n}\r\n\r\nconst InfoWindowZ1 = (() => {\r\n\tlet InfoWindowZZ: number;\r\n\treturn (opts: google.maps.InfoWindowOptions) => {\r\n\t\tlet ce: google.maps.MapsEventListener;\r\n\t\tconst infoWindow = new google.maps.InfoWindow(opts);\r\n\r\n\t\tif (!InfoWindowZZ) {\r\n\t\t\tInfoWindowZZ = Number(google.maps.Marker.MAX_ZINDEX);\r\n\t\t}\r\n\r\n\t\tgoogle.maps.event.addListener(infoWindow, 'content_changed', () => {\r\n\t\t\tconst content = infoWindow.getContent();\r\n\t\t\tif (typeof content === 'string') {\r\n\t\t\t\tconst n = document.createElement('div');\r\n\t\t\t\tn.innerHTML = content;\r\n\t\t\t\tinfoWindow.setContent(n);\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\r\n\t\t\tgoogle.maps.event.addListener(infoWindow, 'domready', () => {\r\n\t\t\t\tinfoWindow.setZIndex(++InfoWindowZZ);\r\n\t\t\t\tif (ce) {\r\n\t\t\t\t\tgoogle.maps.event.removeListener(ce);\r\n\t\t\t\t}\r\n\r\n\t\t\t\tce = google.maps.event.addDomListener(\r\n\t\t\t\t\t((infoWindow.getContent() as Element).parentNode as Node).parentNode as Node,\r\n\t\t\t\t\t'mouseover',\r\n\t\t\t\t\t() => infoWindow.setZIndex(++InfoWindowZZ),\r\n\t\t\t\t);\r\n\t\t\t});\r\n\t\t});\r\n\r\n\t\treturn infoWindow;\r\n\t};\r\n})();\r\n\r\n@Component({\r\n\tcomponents: {\r\n\t\tSearchForm,\r\n\t},\r\n})\r\nexport default class ContentMap extends Vue {\r\n\r\n\t@Prop({\r\n\t\ttype: String,\r\n\t\trequired: true,\r\n\t})\r\n\tgoogleMapsApiKey!: string;\r\n\r\n\t@Ref('content-map__map')\r\n\tmapElement!: HTMLDivElement;\r\n\r\n\tpostcodeResults: Result = Initial();\r\n\r\n\t// eslint-disable-next-line @typescript-eslint/no-non-null-assertion\r\n\tprivate map!: google.maps.Map;\r\n\tprivate geocoder!: google.maps.Geocoder;\r\n\tnormalZoom = 8.5;\r\n\t// zoomIn = 9;\r\n\tnormalLatitude = 50.842191;\r\n\tnormalLongitude = -0.3303004;\r\n\r\n\tactiveLayers: number[] = [];\r\n\treadonly searchParameter = PostcodeSearchParam;\r\n\tsearchedPostcode = getPostcode(PostcodeSearchParam);\r\n\tprivate postcodeMarker: google.maps.Marker | null = null;\r\n\r\n\tprivate readonly markers = new Map();\r\n\tprivate readonly layers = new Map>();\r\n\tprivate readonly infoWindows = new Map();\r\n\tprivate readonly icons = new Map();\r\n\r\n\tget ContentData() {\r\n\t\treturn this.$store.state.contentMapData as ContentMapData;\r\n\t}\r\n\r\n\tmounted(): void {\r\n\t\tthis.ContentData.Types.forEach((objectType) => {\r\n\t\t\tthis.icons.set(objectType.Id, objectType.IconUrl);\r\n\t\t});\r\n\t\tthis.activeLayers = this.ContentData.Map.Layers.map(({ Id, }) => Id);\r\n\r\n\t\tthis.mapElement.style.width = `100%`;\r\n\t\tthis.mapElement.style.height = `${this.ContentData.Map.Width}px`;\r\n\r\n\t\tconst loader = new Loader({\r\n\t\t\tid: 'contentmap',\r\n\t\t\tapiKey: this.googleMapsApiKey,\r\n\t\t\tlibraries: [ 'geometry', ],\r\n\t\t});\r\n\r\n\t\tloader.load()\r\n\t\t\t.then(() => this.Initialize())\r\n\t\t\t.catch((e) => console.error(e));\r\n\t}\r\n\r\n\tonPostcodeSearch(e: Event) {\r\n\t\tif (!(e.target instanceof HTMLFormElement)) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tconst target = e.target;\r\n\t\tconst data = new FormData(target);\r\n\t\tconst postcode = data.get(this.searchParameter);\r\n\t\tif (typeof postcode !== 'string') {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\te.preventDefault();\r\n\r\n\t\tconst newurl = `${window.location.protocol}//${window.location.host}${window.location.pathname}?${this.searchParameter}=${postcode}`;\r\n\t\twindow.history.pushState({ path: newurl, }, '', newurl);\r\n\t\tthis.performSearch(postcode);\r\n\t}\r\n\r\n\ttoggleLayer(layerId: number) {\r\n\t\tif (this.activeLayers.includes(layerId)) {\r\n\t\t\tthis.activeLayers = this.activeLayers.filter((v) => v !== layerId);\r\n\t\t} else {\r\n\t\t\tthis.activeLayers.push(layerId);\r\n\t\t}\r\n\r\n\t\tthis.layers.forEach((layer, layerItem) => {\r\n\t\t\tlayer.forEach((marker, item) => {\r\n\t\t\t\tconst infoWindow = this.infoWindows.get(item);\r\n\t\t\t\tconst shouldBeVisible = this.activeLayers.includes(layerItem);\r\n\t\t\t\tmarker.setVisible(shouldBeVisible);\r\n\t\t\t\tif (infoWindow && !shouldBeVisible) {\r\n\t\t\t\t\tinfoWindow.close();\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t});\r\n\t}\r\n\r\n\tprivate Initialize() {\r\n\t\tthis.geocoder = new google.maps.Geocoder();\r\n\t\tthis.map = new google.maps.Map(this.mapElement, {\r\n\t\t\tcenter: new google.maps.LatLng(this.normalLatitude, this.normalLongitude),\r\n\t\t\tzoom: this.normalZoom,\r\n\t\t\tdisableDefaultUI: false,\r\n\t\t\trestriction: {\r\n\t\t\t\tlatLngBounds: {\r\n\t\t\t\t\tnorth: 52.1,\r\n\t\t\t\t\tsouth: 49.82,\r\n\t\t\t\t\teast: 2.5,\r\n\t\t\t\t\twest: -3.2,\r\n\t\t\t\t},\r\n\t\t\t},\r\n\t\t});\r\n\r\n\t\tthis.ContentData.Map.Layers.forEach((layer) => {\r\n\t\t\tconst layerMarkers = new Map();\r\n\t\t\tthis.layers.set(layer.Id, layerMarkers);\r\n\t\t\tlayer.Places.forEach((place) => {\r\n\t\t\t\tplace.Locations.forEach((location) => {\r\n\t\t\t\t\tconst marker = this.addMarker(location);\r\n\t\t\t\t\tlayerMarkers.set(location.Id, marker);\r\n\t\t\t\t});\r\n\t\t\t});\r\n\t\t});\r\n\r\n\t\tif (this.searchedPostcode) {\r\n\t\t\tthis.performSearch(this.searchedPostcode);\r\n\t\t}\r\n\t}\r\n\r\n\tprivate addMarker(data: { Id: number, Name: string, Latitude: number, Longitude: number, TypeId: number, Contents: { Body: string, }[], }) {\r\n\t\tconst marker = new google.maps.Marker({\r\n\t\t\tposition: new google.maps.LatLng(data.Latitude, data.Longitude),\r\n\t\t\ticon: this.icons.get(data.TypeId),\r\n\t\t\tmap: this.map,\r\n\t\t\tzIndex: 1,\r\n\t\t});\r\n\r\n\t\tconst content = `
\r\n\t\t\t

${data.Name}

\r\n\t\t\t
\r\n\t\t\t${data.Contents[0].Body}\r\n\t\t\t
\r\n\t\t
`;\r\n\r\n\t\tconst infowindow = InfoWindowZ1({\r\n\t\t\tcontent,\r\n\t\t});\r\n\r\n\t\tmarker.addListener('click', () => {\r\n\t\t\tthis.openMarkerCenterMapOnMarker(data.Id);\r\n\t\t});\r\n\r\n\t\tthis.markers.set(data.Id, marker);\r\n\t\tthis.infoWindows.set(data.Id, infowindow);\r\n\t\treturn marker;\r\n\t}\r\n\r\n\topenMarkerCenterMapOnMarker(id: number) {\r\n\t\tthis.closeAllInfoWindows();\r\n\r\n\t\tconst marker = this.markers.get(id);\r\n\t\tconst infoWindow = this.infoWindows.get(id);\r\n\t\tif (!marker || !infoWindow) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tinfoWindow.open(this.map, marker);\r\n\r\n\t\t// eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n\t\tthis.map.panTo(marker.getPosition() as any); // setCenter takes a LatLng object\r\n\t}\r\n\r\n\tprivate closeAllInfoWindows() {\r\n\t\tthis.infoWindows.forEach((infoWindow) => infoWindow.close());\r\n\t}\r\n\r\n\tprivate performSearch(postcode: string) {\r\n\t\tthis.postcodeResults = Loading();\r\n\t\tvoid this.geocoder.geocode({ address: postcode, }, (response, status) => {\r\n\t\t\tif (status !== google.maps.GeocoderStatus.OK || response === null) {\r\n\t\t\t\tthis.postcodeResults = Errored();\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\r\n\t\t\tconst searchLocation = response[0].geometry.location;\r\n\t\t\tthis.postcodeMarker ?? (this.postcodeMarker = new google.maps.Marker({\r\n\t\t\t\tmap: this.map,\r\n\t\t\t\ticon: 'https://www.southernwater.co.uk/maps/homepin/0823b141-3201-4f41-8cec-e91a131c6fe6',\r\n\t\t\t\tzIndex: 2,\r\n\t\t\t}));\r\n\t\t\tthis.postcodeMarker.setPosition(searchLocation);\r\n\t\t\tthis.map.panTo(searchLocation);\r\n\t\t\tthis.map.setZoom(12);\r\n\t\t\tthis.map.setCenter(searchLocation);\r\n\r\n\t\t\tconst { results, bounds, } = this.getClosestPlaces(SearchResultsCount, searchLocation);\r\n\r\n\t\t\tthis.map.fitBounds(bounds);\r\n\t\t\tthis.postcodeResults = Completed(results);\r\n\t\t});\r\n\t}\r\n\r\n\tgetClosestPlaces(count: number, center: google.maps.LatLng) {\r\n\t\tconst bounds = new google.maps.LatLngBounds();\r\n\t\t// bounds.extend(this.marker.getPosition());\r\n\r\n\t\tconst results = this.ContentData.Map.Layers.map((layer) => {\r\n\t\t\tconst places = layer.Places\r\n\t\t\t\t.flatMap(({ Locations, }) => Locations)\r\n\t\t\t\t.map((location) => {\r\n\t\t\t\t\tconst position = new google.maps.LatLng({ lat: location.Latitude, lng: location.Longitude, });\r\n\t\t\t\t\tconst distance = google.maps.geometry.spherical.computeDistanceBetween(position, center);\r\n\t\t\t\t\treturn {\r\n\t\t\t\t\t\tid: location.Id,\r\n\t\t\t\t\t\tname: location.Name,\r\n\t\t\t\t\t\tposition,\r\n\t\t\t\t\t\tdistance,\r\n\t\t\t\t\t};\r\n\t\t\t\t}).sort((a, b) => a.distance - b.distance);\r\n\r\n\t\t\tconst layerResults = places.slice(0, count);\r\n\t\t\tlayerResults.forEach(({ position, }) => {\r\n\t\t\t\tbounds.extend(position);\r\n\t\t\t});\r\n\r\n\t\t\treturn {\r\n\t\t\t\tid: layer.Id,\r\n\t\t\t\tname: layer.Name,\r\n\t\t\t\tplaces: layerResults,\r\n\t\t\t};\r\n\t\t});\r\n\r\n\t\treturn { bounds, results, };\r\n\t}\r\n\r\n}\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/@vue/cli-plugin-typescript/node_modules/ts-loader/index.js??clonedRuleSet-43.use[2]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/@vue/cli-plugin-typescript/node_modules/ts-loader/index.js??clonedRuleSet-43.use[2]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=1fa02cc6&\"\nimport script from \"./index.vue?vue&type=script&lang=ts&\"\nexport * from \"./index.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./index.vue?vue&type=style&index=0&id=1fa02cc6&prod&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import { createDirectStore, } from 'direct-vuex';\r\nimport Vue from 'vue';\r\nimport Vuex from 'vuex';\r\n\r\nVue.use(Vuex);\r\n\r\nexport const Store = (contentMapData: typeof import('./content-map-data.json')) => {\r\n\tconst {\r\n\t\tstore,\r\n\t} = createDirectStore({\r\n\t\tstate: {\r\n\t\t\tcontentMapData,\r\n\t\t},\r\n\t});\r\n\treturn store;\r\n};\r\n","import Vue from 'vue';\r\nimport { VueConstructor, } from 'vue/types/umd';\r\nimport App from './index.vue';\r\nimport { Store, } from './store';\r\n\r\nVue.config.productionTip = false;\r\n\r\ninterface InvestmentAreaOptions {\r\n\tgoogleMapsApiKey: string;\r\n}\r\n\r\nexport function ContentMap(layout: VueConstructor, props: InvestmentAreaOptions, investmentAreaContent: typeof import('./content-map-data.json'), elementToMount: string) {\r\n\tconst store = Store(investmentAreaContent).original;\r\n\tnew Vue({\r\n\t\trender: (h) => h(layout, [h(App, {\r\n\t\t\tprops,\r\n\t\t}),]),\r\n\t\tstore,\r\n\t}).$mount(elementToMount);\r\n}\r\n","import Layout from '~/layouts/blank.vue';\r\nimport { ContentMap, } from './index';\r\n\r\ninterface InvestmentAreaOptions {\r\n\tcontentMapData: typeof import('./content-map-data.json');\r\n\tgoogleMapsApiKey: string;\r\n\telementToMount: string;\r\n}\r\n\r\nfunction isOptionWithConfig(obj: unknown): obj is InvestmentAreaOptions {\r\n\t// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment, @typescript-eslint/no-explicit-any\r\n\tconst objAny = obj as any;\r\n\r\n\t// eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\r\n\treturn typeof objAny.googleMapsApiKey === 'string' && typeof objAny.contentMapData === 'object';\r\n}\r\n\r\nfunction initInvestmentArea(e: CustomEventInit) {\r\n\tconst options = e.detail;\r\n\tif (options === undefined || !isOptionWithConfig(options)) {\r\n\t\tconsole.error('Invalid options to setup ContentMap app', options);\r\n\t\treturn;\r\n\t}\r\n\r\n\tContentMap(Layout, {\r\n\t\tgoogleMapsApiKey: options.googleMapsApiKey,\r\n\t},\r\n\toptions.contentMapData, options.elementToMount);\r\n}\r\n\r\nconst swWindow = window as { sw? : { contentMap: boolean, }, };\r\nswWindow.sw = swWindow.sw ?? {\r\n\tcontentMap: false,\r\n};\r\n\r\nif (!swWindow.sw.contentMap) {\r\n\t// Only add one listner if script added multiple times\r\n\twindow.addEventListener('sw:content-map:init', initInvestmentArea);\r\n\tswWindow.sw.contentMap = true;\r\n}\r\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n// expose the modules object (__webpack_modules__)\n__webpack_require__.m = __webpack_modules__;\n\n","var deferred = [];\n__webpack_require__.O = function(result, chunkIds, fn, priority) {\n\tif(chunkIds) {\n\t\tpriority = priority || 0;\n\t\tfor(var i = deferred.length; i > 0 && deferred[i - 1][2] > priority; i--) deferred[i] = deferred[i - 1];\n\t\tdeferred[i] = [chunkIds, fn, priority];\n\t\treturn;\n\t}\n\tvar notFulfilled = Infinity;\n\tfor (var i = 0; i < deferred.length; i++) {\n\t\tvar chunkIds = deferred[i][0];\n\t\tvar fn = deferred[i][1];\n\t\tvar priority = deferred[i][2];\n\t\tvar fulfilled = true;\n\t\tfor (var j = 0; j < chunkIds.length; j++) {\n\t\t\tif ((priority & 1 === 0 || notFulfilled >= priority) && Object.keys(__webpack_require__.O).every(function(key) { return __webpack_require__.O[key](chunkIds[j]); })) {\n\t\t\t\tchunkIds.splice(j--, 1);\n\t\t\t} else {\n\t\t\t\tfulfilled = false;\n\t\t\t\tif(priority < notFulfilled) notFulfilled = priority;\n\t\t\t}\n\t\t}\n\t\tif(fulfilled) {\n\t\t\tdeferred.splice(i--, 1)\n\t\t\tvar r = fn();\n\t\t\tif (r !== undefined) result = r;\n\t\t}\n\t}\n\treturn result;\n};","// define getter functions for harmony exports\n__webpack_require__.d = function(exports, definition) {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); }","__webpack_require__.j = 19;","// no baseURI\n\n// object to store loaded and loading chunks\n// undefined = chunk not loaded, null = chunk preloaded/prefetched\n// [resolve, reject, Promise] = chunk loading, 0 = chunk loaded\nvar installedChunks = {\n\t19: 0\n};\n\n// no chunk on demand loading\n\n// no prefetching\n\n// no preloaded\n\n// no HMR\n\n// no HMR manifest\n\n__webpack_require__.O.j = function(chunkId) { return installedChunks[chunkId] === 0; };\n\n// install a JSONP callback for chunk loading\nvar webpackJsonpCallback = function(parentChunkLoadingFunction, data) {\n\tvar chunkIds = data[0];\n\tvar moreModules = data[1];\n\tvar runtime = data[2];\n\t// add \"moreModules\" to the modules object,\n\t// then flag all \"chunkIds\" as loaded and fire callback\n\tvar moduleId, chunkId, i = 0;\n\tif(chunkIds.some(function(id) { return installedChunks[id] !== 0; })) {\n\t\tfor(moduleId in moreModules) {\n\t\t\tif(__webpack_require__.o(moreModules, moduleId)) {\n\t\t\t\t__webpack_require__.m[moduleId] = moreModules[moduleId];\n\t\t\t}\n\t\t}\n\t\tif(runtime) var result = runtime(__webpack_require__);\n\t}\n\tif(parentChunkLoadingFunction) parentChunkLoadingFunction(data);\n\tfor(;i < chunkIds.length; i++) {\n\t\tchunkId = chunkIds[i];\n\t\tif(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) {\n\t\t\tinstalledChunks[chunkId][0]();\n\t\t}\n\t\tinstalledChunks[chunkId] = 0;\n\t}\n\treturn __webpack_require__.O(result);\n}\n\nvar chunkLoadingGlobal = self[\"webpackChunk_sw_website\"] = self[\"webpackChunk_sw_website\"] || [];\nchunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0));\nchunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal));","// startup\n// Load entry module and return exports\n// This entry module depends on other loaded chunks and execution need to be delayed\nvar __webpack_exports__ = __webpack_require__.O(undefined, [998,64], function() { return __webpack_require__(5898); })\n__webpack_exports__ = __webpack_require__.O(__webpack_exports__);\n"],"names":["render","_vm","this","_c","_self","_setupProxy","staticClass","ContentData","Map","Layers","length","_l","type","key","Id","class","activeLayers","includes","on","$event","toggleLayer","_v","_s","Name","_e","ref","staticStyle","_m","attrs","searchParameter","onPostcodeSearch","model","value","searchedPostcode","callback","$$v","expression","postcodeResults","state","result","layer","id","name","places","place","openMarkerCenterMapOnMarker","distance","toFixed","staticRenderFns","colour","textColour","compact","stretched","formAction","onSubmit","hiddenInputs","input","domProps","label","directives","rawName","searchValue","placeholder","target","composing","BrandColours","RawBrandColours","DroughtPhaseColours","RawDroughtPhaseColours","FeedbackColours","RawFeedbackColours","PebbleStyles","RawPebbleStyles","Resources","Object","freeze","BrandColourNames","getOwnPropertyNames","isBrandColour","SearchBar","Vue","hasSubmitListener","$listeners","submit","e","preventDefault","console","warn","__decorate","Prop","String","required","validator","Boolean","default","Array","ModelSync","Emit","Component","component","Initial","Loading","Errored","Completed","PostcodeSearchParam","SearchResultsCount","getPostcode","searchParam","regex","RegExp","results","exec","window","location","search","decodeURIComponent","replace","InfoWindowZ1","InfoWindowZZ","opts","ce","infoWindow","google","maps","InfoWindow","Number","Marker","MAX_ZINDEX","event","addListener","content","getContent","n","document","createElement","innerHTML","setContent","setZIndex","removeListener","addDomListener","parentNode","ContentMap","constructor","normalZoom","normalLatitude","normalLongitude","postcodeMarker","markers","layers","infoWindows","icons","$store","contentMapData","mounted","Types","forEach","objectType","set","IconUrl","map","mapElement","style","width","height","Width","loader","Loader","apiKey","googleMapsApiKey","libraries","load","then","Initialize","catch","error","HTMLFormElement","data","FormData","postcode","get","newurl","protocol","host","pathname","history","pushState","path","performSearch","layerId","filter","v","push","layerItem","marker","item","shouldBeVisible","setVisible","close","geocoder","Geocoder","center","LatLng","zoom","disableDefaultUI","restriction","latLngBounds","north","south","east","west","layerMarkers","Places","Locations","addMarker","position","Latitude","Longitude","icon","TypeId","zIndex","Contents","Body","infowindow","closeAllInfoWindows","open","panTo","getPosition","geocode","address","response","status","GeocoderStatus","OK","searchLocation","geometry","setPosition","setZoom","setCenter","bounds","getClosestPlaces","fitBounds","count","LatLngBounds","flatMap","lat","lng","spherical","computeDistanceBetween","sort","a","b","layerResults","slice","extend","Ref","components","SearchForm","Vuex","Store","store","createDirectStore","layout","props","investmentAreaContent","elementToMount","original","h","App","$mount","isOptionWithConfig","obj","objAny","initInvestmentArea","options","detail","undefined","Layout","swWindow","sw","contentMap","addEventListener","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","exports","module","__webpack_modules__","m","deferred","O","chunkIds","fn","priority","notFulfilled","Infinity","i","fulfilled","j","keys","every","splice","r","d","definition","o","defineProperty","enumerable","g","globalThis","Function","prop","prototype","hasOwnProperty","call","installedChunks","chunkId","webpackJsonpCallback","parentChunkLoadingFunction","moreModules","runtime","some","chunkLoadingGlobal","self","bind","__webpack_exports__"],"sourceRoot":""}