{"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":""}