{"version":3,"file":"js/app.8ca36d2ffe4ab155a436.js","mappings":"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","sources":["webpack:///./resources/area/web/default/js/components/page-builder/StoreLocator.vue?9e07","webpack:///./resources/area/web/default/js/components/page-builder/StoreLocator.vue","webpack:///./resources/area/web/default/js/components/page-builder/StoreLocator.vue?17f1","webpack:///./resources/area/web/default/js/components/page-builder/StoreLocator.vue?b23d"],"sourcesContent":["\nimport {Component, Vue, Prop} from 'vue-property-decorator';\nimport {required} from 'vee-validate/dist/rules';\nimport {ValidationProvider, ValidationObserver, extend} from 'vee-validate';\nimport * as VueGoogleMaps from 'gmap-vue';\nimport Address from \"../checkout/summary/personal/address.vue\";\n\nextend('required', required);\n\n@Component({\n name: 'page-builder-store-locator',\n components: {\n Address,\n ValidationProvider,\n ValidationObserver\n }\n})\n\nexport default class extends Vue {\n $refs!: {\n gmap: VueGoogleMaps.Map;\n mapsInput: HTMLInputElement;\n };\n\n @Prop() readonly stores: Array<object>;\n @Prop() readonly countries: object;\n @Prop() readonly title: string;\n @Prop({default: ''}) readonly appointmentUrl: string;\n @Prop({default: null}) readonly activeStoreId: null | number;\n @Prop({default: 'NL'}) readonly locale: string;\n @Prop({default: null}) readonly country: null | string;\n\n private mapCenter: object = {lat: 52.132633, lng: 5.291266};\n private svgMarker: string = \"data:image/svg+xml,%0A%3Csvg width='24px' height='24px' viewBox='0 0 24 24' version='1.1' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink'%3E%3Cg id='Page-1' stroke='none' stroke-width='1' fill='none' fill-rule='evenodd'%3E%3Cg id='Group'%3E%3Cpolygon id='Path' points='0 0 24 0 24 24 0 24'%3E%3C/polygon%3E%3Cpath d='M12,2.25 C16.1421356,2.25 19.5,5.60786438 19.5,9.75 C19.5,16.5 12,21.75 12,21.75 C12,21.75 4.5,16.5 4.5,9.75 C4.5,5.60786438 7.85786438,2.25 12,2.25 Z M12,6.75 C10.3431458,6.75 9,8.09314575 9,9.75 C9,11.4068542 10.3431458,12.75 12,12.75 C13.6568542,12.75 15,11.4068542 15,9.75 C15,8.09314575 13.6568542,6.75 12,6.75 Z' id='Combined-Shape' fill='%23000000'%3E%3C/path%3E%3C/g%3E%3C/g%3E%3C/svg%3E\";\n private zoom: number = 8;\n\n private selectedCountry: null | string = null;\n private searchQuery: string = '';\n private showSearchResults: boolean = false;\n private loading: boolean = false;\n private searchResultError: null | string = null;\n private selectedStoreId: null | number = null;\n\n private activeToggle = 'list';\n\n private storeList: Array<object> = [];\n private nearestStoreList: Array<object> = [];\n\n private mapOptions: object = {\n zoomControl: true,\n mapTypeControl: false,\n scaleControl: false,\n streetViewControl: false,\n rotateControl: false,\n fullscreenControl: false,\n disableDefaultUi: true\n };\n\n private infoOptions: object = {\n content: '',\n pixelOffset: {\n width: 0,\n height: -35\n }\n };\n private currentMidx: null | number = null;\n private infoWindowPos: object | null = null;\n private infoWinOpen: boolean = false;\n\n private mounted(): void {\n this.selectedCountry = this.country;\n this.setMapCenter();\n\n if (this.activeStoreId) {\n this.toggleInfoWindow(this.stores.find(store => store['entity_id'] === this.activeStoreId), 0, true, false);\n }\n\n // Autocomplete needs to be enabled in Google Maps API\n // this.$refs.gmap.$mapPromise.then(() => {\n // const options = {\n // fields: ['formatted_address', 'geometry', 'name'],\n // strictBounds: false,\n // types: ['establishment'],\n // };\n // const autocomplete = new google.maps.places.Autocomplete(this.$refs.mapsInput, options);\n // autocomplete.bindTo('bounds', this.$refs.gmap.$mapObject);\n // });\n }\n\n private created(): void {\n this.storeList = this.stores.sort((a, b) => {\n return a['country_id'] === this.locale ? -1 : 1 || a['name'].localeCompare(b['name']);\n });\n }\n\n private get isMobile(): boolean {\n return this.$mobileDetect.mobile();\n }\n\n private getUserLocation(): void {\n this.isMobile ? this.activeToggle = 'map' : this.activeToggle = 'list';\n this.loading = true;\n this.searchResultError = null;\n\n const successCallback = (position) => {\n this.searchStores(position);\n };\n\n const errorCallback = (error) => {\n this.searchResultError = \"We couldn't retrieve your location, please try again or use the search function.\";\n this.loading = false;\n console.log(error);\n };\n\n navigator.geolocation.getCurrentPosition(successCallback, errorCallback);\n }\n\n private showAddress(id: number) {\n document.getElementById(`address-${id}`).classList.add('--active');\n this.addDataLayerEvent('click', 'view_store_info', this.storeList[id]['name'], this.storeList[id]['sf_id']);\n }\n\n private addDataLayerEvent(type: string, event: string, storeName: string, storeId: string): void {\n window.dataLayer = window.dataLayer || [];\n window.dataLayer.push({\n 'event': event,\n 'type': type,\n 'store': storeName,\n 'store_id': storeId,\n });\n }\n\n private setMapCenter(): void {\n this.$refs.gmap.$mapPromise.then(() => {\n const geocoder = new google.maps.Geocoder();\n const _this = this;\n\n geocoder.geocode({'address': this.selectedCountry}, function (results, status) {\n if (status == google.maps.GeocoderStatus.OK) {\n _this.$refs.gmap.panTo(results[0].geometry.location);\n _this.$refs.gmap.fitBounds(results[0].geometry.viewport);\n _this.$refs.gmap.panBy(-40, 0);\n\n _this.currentMidx = null;\n _this.infoWinOpen = false;\n }\n });\n });\n }\n\n private toggleInfoWindow(marker, idx, setStorePosition = false, resetNearestStoreId = true): void {\n this.infoWindowPos = {lat: parseFloat(marker['latitude']), lng: parseFloat(marker['longitude'])};\n this.infoOptions['content'] = `<h4>${marker['name']}</h4>`;\n this.infoOptions['content'] += `<p>${marker['street']} ${marker['housenumber']} ${marker['housenumber_add'] || ''}</p>`;\n this.infoOptions['content'] += `<p>${marker['postalcode']}, ${marker['city']}</p>`;\n this.infoOptions['content'] += `<p>${marker['full_country_name']}</p>`;\n this.infoOptions['content'] += `<br />`;\n this.infoOptions['content'] += `<div class=\"--actions\">`;\n this.infoOptions['content'] += `<a href=\"tel:${marker['phone']}\">${marker['phone']}</a>`;\n if (this.appointmentUrl !== '') {\n this.infoOptions['content'] += `<a href=\"${this.appointmentUrl}\" class=\"--button --small\">${this.$t('Plan an appointment')}</a>`;\n }\n this.infoOptions['content'] += `</div>`;\n\n this.addDataLayerEvent('click', 'maps_info_click', marker['name'], marker['sf_id']);\n\n this.$refs.gmap.$mapPromise.then(() => {\n const geocoder = new google.maps.Geocoder();\n const _this = this;\n\n geocoder.geocode({'address': `${marker['latitude']}, ${marker['longitude']}`}, function (results, status) {\n if (status == google.maps.GeocoderStatus.OK) {\n _this.mapCenter = {lat: results[0].geometry.location.lat(), lng: results[0].geometry.location.lng()};\n _this.$refs.gmap.panBy(-40, 0);\n _this.zoom = 10;\n }\n });\n });\n\n if (this.currentMidx === idx) {\n this.infoWinOpen = ! this.infoWinOpen;\n this.currentMidx = null;\n } else {\n this.infoWinOpen = true;\n if (setStorePosition) {\n this.storeList.sort((a, b) => {\n if (a['name'] === marker['name']) {\n return -1;\n }\n return a['name'] - b['name'];\n });\n }\n this.currentMidx = this.storeList.indexOf(marker);\n }\n\n if (resetNearestStoreId) {\n this.selectedStoreId = null;\n }\n }\n\n private searchStores(position: GeolocationPosition = null): void {\n this.loading = true;\n this.searchResultError = null;\n this.nearestStoreList = [];\n\n this.$refs.gmap.$mapPromise.then(() => {\n const geocoder = new google.maps.Geocoder();\n const _this = this;\n\n let currentPosition = '';\n if (position) {\n currentPosition = `${position.coords.latitude.toString()}, ${position.coords.longitude.toString()}`;\n }\n\n geocoder.geocode({'address': this.searchQuery || currentPosition}, function (results, status) {\n if (status == google.maps.GeocoderStatus.OK) {\n\n if (position) {\n _this.searchQuery = results[0].formatted_address;\n _this.$refs.mapsInput.parentElement.classList.add('--placeholder');\n }\n\n _this.$solarClient.post('/api/physical-store/nearestStores', {\n lat: results[0].geometry.location.lat(),\n lng: results[0].geometry.location.lng(),\n }).then((response) => {\n _this.nearestStoreList = response.data;\n _this.storeList = response.data;\n if (_this.nearestStoreList.length === 0) {\n _this.searchResultError = 'Er zijn geen winkels gevonden in de buurt van het opgegeven adres.';\n }\n _this.mapCenter = {lat: results[0].geometry.location.lat(), lng: results[0].geometry.location.lng()};\n _this.$refs.gmap.panBy(-40, 0);\n _this.zoom = _this.$mobileDetect.mobile() ? 9 : 10;\n\n }).catch((error) => {\n _this.searchResultError = 'Er is iets misgegaan bij het zoeken naar winkels. Probeer het later opnieuw.';\n console.error(error);\n }).finally(() => {\n _this.loading = false;\n _this.showSearchResults = true;\n });\n\n _this.currentMidx = null;\n _this.infoWinOpen = false;\n } else {\n _this.searchResultError = 'Er is iets misgegaan bij het zoeken naar winkels. Probeer het later opnieuw.';\n _this.loading = false;\n _this.showSearchResults = true;\n }\n });\n });\n }\n}\n","import { render, staticRenderFns } from \"./StoreLocator.vue?vue&type=template&id=6737f912&\"\nimport script from \"./StoreLocator.vue?vue&type=script&lang=ts&\"\nexport * from \"./StoreLocator.vue?vue&type=script&lang=ts&\"\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 null,\n null\n \n)\n\nexport default component.exports","import mod from \"-!../../../../../../../node_modules/ts-loader/index.js??clonedRuleSet-6.use[0]!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./StoreLocator.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../../node_modules/ts-loader/index.js??clonedRuleSet-6.use[0]!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./StoreLocator.vue?vue&type=script&lang=ts&\"","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"store-locator__container\"},[_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(!_vm.isMobile),expression:\"!isMobile\"}],staticClass:\"--map\"},[_c('GmapMap',{ref:\"gmap\",attrs:{\"center\":_vm.mapCenter,\"zoom\":_vm.zoom,\"map-type-id\":\"terrain\",\"options\":_vm.mapOptions}},[_c('GmapInfoWindow',{attrs:{\"options\":_vm.infoOptions,\"position\":_vm.infoWindowPos,\"opened\":_vm.infoWinOpen},on:{\"closeclick\":function($event){_vm.infoWinOpen=false; _vm.currentMidx=null;}}}),_vm._v(\" \"),_vm._l((_vm.storeList),function(store,index){return _c('GmapMarker',{key:index,attrs:{\"position\":{lat:parseFloat(store['latitude']), lng:parseFloat(store['longitude'])},\"clickable\":true,\"draggable\":false,\"title\":store['name'],\"icon\":_vm.svgMarker},on:{\"click\":function($event){return _vm.toggleInfoWindow(store,index, true)}}})})],2)],1),_vm._v(\" \"),_c('div',{staticClass:\"map__overlay\",class:{ '--list': _vm.activeToggle === 'list' }},[_c('div',{staticClass:\"--header\"},[(_vm.loading)?_c('div',{staticClass:\"--loading\"},[_c('div',{staticClass:\"--spinner\"})]):_vm._e(),_vm._v(\" \"),_c('h2',[_vm._v(_vm._s(_vm.title))]),_vm._v(\" \"),_c('button',{on:{\"click\":function($event){return _vm.getUserLocation()}}},[_vm._v(_vm._s(_vm.$t('Use my location')))]),_vm._v(\" \"),_c('ValidationObserver',{attrs:{\"slim\":\"\"},scopedSlots:_vm._u([{key:\"default\",fn:function({ handleSubmit }){return [_c('form',{staticClass:\"search__form\",attrs:{\"enctype\":\"application/x-www-form-urlencoded\",\"autocomplete\":\"off\"},on:{\"submit\":function($event){$event.preventDefault();$event.stopPropagation();return handleSubmit(_vm.searchStores)}}},[_c('ValidationProvider',{staticClass:\"input__holder\",attrs:{\"name\":_vm.$t('Zip code or municipality'),\"rules\":\"required\",\"skip-if-empty\":false,\"slim\":\"\"},scopedSlots:_vm._u([{key:\"default\",fn:function({ errors, classes }){return [_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.searchQuery),expression:\"searchQuery\"}],ref:\"mapsInput\",class:classes,attrs:{\"id\":\"search-store\",\"type\":\"search\",\"placeholder\":_vm.$t('Zip code or municipality'),\"disabled\":_vm.loading,\"data-placeholder\":\"\"},domProps:{\"value\":(_vm.searchQuery)},on:{\"keydown\":function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"enter\",13,$event.key,\"Enter\"))return null;$event.preventDefault();return handleSubmit(_vm.searchStores)},\"input\":function($event){if($event.target.composing)return;_vm.searchQuery=$event.target.value}}}),_vm._v(\" \"),(errors.length)?_c('span',{staticClass:\"--error\"},[_vm._v(_vm._s(errors[0]))]):_vm._e()]}}],null,true)})],1)]}}])}),_vm._v(\" \"),(_vm.searchResultError)?_c('span',{staticClass:\"--error\"},[_vm._v(_vm._s(_vm.$t(_vm.searchResultError)))]):_vm._e(),_vm._v(\" \"),_c('div',{staticClass:\"mobile__toggle show-for-small-only\"},[_c('button',{class:{'--active': _vm.activeToggle === 'list'},on:{\"click\":function($event){_vm.activeToggle = 'list'}}},[_vm._v(_vm._s(_vm.$t('List')))]),_vm._v(\" \"),_c('button',{class:{'--active': _vm.activeToggle === 'map'},on:{\"click\":function($event){_vm.activeToggle = 'map'}}},[_vm._v(_vm._s(_vm.$t('Map')))])])],1),_vm._v(\" \"),_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.activeToggle === 'list'),expression:\"activeToggle === 'list'\"}],staticClass:\"store__list\"},[_c('ul',_vm._l((_vm.storeList),function(store,index){return _c('li',{key:index,class:{'--active': _vm.currentMidx === index }},[_c('div',{staticClass:\"--item\"},[_c('h4',[_vm._v(_vm._s(store['name']))]),_vm._v(\" \"),_c('div',{staticClass:\"address__container\",on:{\"click\":function($event){return _vm.toggleInfoWindow(store, index)}}},[_c('div',{staticClass:\"--overlay\",attrs:{\"id\":`address-${index}`}},[_c('div',[_c('button',{staticClass:\"--button --small --white\",on:{\"click\":function($event){$event.preventDefault();$event.stopPropagation();return _vm.showAddress(index)}}},[_vm._v(_vm._s(_vm.$t('Show address')))])]),_vm._v(\" \"),_c('address',[_vm._v(_vm._s(store['street'])+\" \"+_vm._s(store['housenumber'])+\" \"+_vm._s(store['housenumber_add'] || ''))]),_vm._v(\" \"),_c('address',[_vm._v(_vm._s(store['postalcode'])+\", \"+_vm._s(store['city']))]),_vm._v(\" \"),_c('address',[_c('a',{attrs:{\"href\":`tel:${store['phone']}`}},[_vm._v(_vm._s(store['phone']))])])])]),_vm._v(\" \"),(_vm.appointmentUrl !== '')?_c('div',{staticClass:\"--actions\"},[_c('a',{attrs:{\"href\":_vm.appointmentUrl},on:{\"click\":function($event){return _vm.addDataLayerEvent('click', 'start_appointment', store['name'], store['sf_id'])}}},[_vm._v(_vm._s(_vm.$t('Plan an appointment')))])]):_vm._e()])])}),0)]),_vm._v(\" \"),_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.isMobile && _vm.activeToggle === 'map'),expression:\"isMobile && activeToggle === 'map'\"}],staticClass:\"--map\"},[_c('GmapMap',{ref:\"gmap\",attrs:{\"center\":_vm.mapCenter,\"zoom\":_vm.zoom,\"map-type-id\":\"terrain\",\"options\":_vm.mapOptions}},[_c('GmapInfoWindow',{attrs:{\"options\":_vm.infoOptions,\"position\":_vm.infoWindowPos,\"opened\":_vm.infoWinOpen},on:{\"closeclick\":function($event){_vm.infoWinOpen=false; _vm.currentMidx=null;}}}),_vm._v(\" \"),_vm._l((_vm.storeList),function(store,index){return _c('GmapMarker',{key:index,attrs:{\"position\":{lat:parseFloat(store['latitude']), lng:parseFloat(store['longitude'])},\"clickable\":true,\"draggable\":false,\"title\":store['name'],\"icon\":_vm.svgMarker},on:{\"click\":function($event){return _vm.toggleInfoWindow(store,index, true)}}})})],2)],1)])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }"],"names":["extend","required","Vue","mapCenter","lat","lng","svgMarker","zoom","selectedCountry","searchQuery","showSearchResults","loading","searchResultError","selectedStoreId","activeToggle","storeList","nearestStoreList","mapOptions","zoomControl","mapTypeControl","scaleControl","streetViewControl","rotateControl","fullscreenControl","disableDefaultUi","infoOptions","content","pixelOffset","width","height","currentMidx","infoWindowPos","infoWinOpen","mounted","this","country","setMapCenter","activeStoreId","toggleInfoWindow","stores","find","store","created","sort","a","b","locale","isMobile","$mobileDetect","mobile","getUserLocation","navigator","geolocation","getCurrentPosition","position","searchStores","error","console","log","showAddress","id","document","getElementById","classList","add","addDataLayerEvent","type","event","storeName","storeId","window","dataLayer","push","$refs","gmap","$mapPromise","then","geocoder","google","maps","Geocoder","_this","geocode","results","status","GeocoderStatus","OK","panTo","geometry","location","fitBounds","viewport","panBy","marker","idx","setStorePosition","resetNearestStoreId","parseFloat","appointmentUrl","$t","indexOf","currentPosition","coords","latitude","toString","longitude","formatted_address","mapsInput","parentElement","$solarClient","post","response","data","length","catch","finally","Prop","Array","default","Component","name","components","Address","ValidationProvider","ValidationObserver","render","_vm","_c","_self","_setupProxy","staticClass","directives","rawName","value","expression","ref","attrs","on","$event","_v","_l","index","key","class","_e","_s","title","scopedSlots","_u","fn","handleSubmit","preventDefault","stopPropagation","errors","classes","domProps","_k","keyCode","target","composing","staticRenderFns"],"sourceRoot":""}