{"version":3,"sources":["components/googleAutocomplete.js","components/googlePlacesSearch.js"],"names":["dmx","Component","extends","initialData","placeId","address","phone","phone2","latitude","longitude","icon","name","priceLevel","rating","types","url","utcOffset","vicinity","website","attributes","map","type","String","default","country","strictBounds","Boolean","moveMap","render","node","this","_autocomplete","google","maps","places","Autocomplete","props","split","requestAnimationFrame","_map","_getMap","bindTo","setComponentRestrictions","_placeChangedHandler","bind","addListener","set","value","disabled","performUpdate","updatedProps","has","setOptions","setTypes","_setValue","_disable","destroy","document","getElementById","dmxComponent","place","getPlace","place_id","$node","formatted_address","formatted_phone_number","international_phone_number","geometry","location","lat","lng","attributions","html_attributions","isOpen","opening_hours","price_level","userRatingsTotal","user_ratings_total","utc_offset_minutes","adrAddress","adr_address","components","Array","isArray","address_components","reduce","output","component","forEach","replace","m","c","toUpperCase","long","long_name","short","short_name","viewport","fitBounds","setCenter","setZoom","setTimeout","dispatchEvent","results","hasMore","status","fields","showOnMap","methods","findPlaceFromQuery","params","_findPlaceFrom","findPlaceFromPhoneNumber","nearby","_search","search","getMore","_getMore","init","_markers","_cluster","_clearMarkers","clearMarkers","filter","marker","event","clearInstanceListeners","setMap","prop","request","bindBounds","locationBias","getBounds","radius","center","PlacesService","_ucase","_results","bounds","keyword","openNow","_pagination","hasNextPage","nextPage","pagination","image","size","Size","origin","Point","anchor","scaledSize","Marker","title","position","addMarker","push","console","warn","str","slice"],"mappings":"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","file":"dmxGooglePlaces.js","sourcesContent":["dmx.Component('google-autocomplete', {\r\n\r\n extends: 'form-element',\r\n\r\n initialData: {\r\n placeId: null,\r\n address: null,\r\n phone: null,\r\n phone2: null,\r\n latitude: null,\r\n longitude: null,\r\n icon: null,\r\n name: null,\r\n priceLevel: null,\r\n rating: null,\r\n types: null,\r\n url: null,\r\n utcOffset: null,\r\n vicinity: null,\r\n website: null,\r\n },\r\n\r\n attributes: {\r\n map: {\r\n type: String,\r\n default: null,\r\n },\r\n\r\n country: {\r\n type: String,\r\n default: null,\r\n },\r\n\r\n types: {\r\n type: String,\r\n default: null,\r\n },\r\n\r\n strictBounds: {\r\n type: Boolean,\r\n default: false,\r\n },\r\n\r\n moveMap: {\r\n type: Boolean,\r\n default: false,\r\n },\r\n },\r\n\r\n render (node) {\r\n this._autocomplete = new google.maps.places.Autocomplete(node, {\r\n strictBounds: this.props.strictBounds,\r\n types: this.props.types ? this.props.types.split(/\\s*,\\s*/) : [],\r\n });\r\n \r\n if (this.props.map) {\r\n requestAnimationFrame(() => {\r\n this._map = this._getMap();\r\n this._autocomplete.bindTo('bounds', this._map);\r\n });\r\n }\r\n\r\n if (this.props.country) {\r\n this._autocomplete.setComponentRestrictions({ country: this.props.country.split(/\\s*,\\s*/) });\r\n }\r\n\r\n this._placeChangedHandler = this._placeChangedHandler.bind(this);\r\n this._autocomplete.addListener('place_changed', this._placeChangedHandler);\r\n\r\n this.set('value', this.props.value);\r\n this.set('disabled', this.props.disabled);\r\n },\r\n\r\n performUpdate (updatedProps) {\r\n if (updatedProps.has('map')) {\r\n this._map = this._getMap();\r\n this._autocomplete.bindTo('bounds', this._map);\r\n }\r\n\r\n if (updatedProps.has('strictBounds')) {\r\n this._autocomplete.setOptions({ strictBounds: this.props.strictBounds });\r\n }\r\n\r\n if (updatedProps.has('types')) {\r\n this._autocomplete.setTypes(this.props.types);\r\n }\r\n\r\n if (updatedProps.has('country')) {\r\n this._autocomplete.setComponentRestrictions({ country: this.props.country ? this.props.country.split(/\\s*,\\s*/) : [] });\r\n }\r\n\r\n if (updatedProps.has('value')) {\r\n this._setValue(this.props.value, true);\r\n }\r\n\r\n if (updatedProps.has('disabled')) {\r\n this._disable(this.props.disabled);\r\n }\r\n },\r\n\r\n destroy () {\r\n // cleanup\r\n },\r\n\r\n _getMap () {\r\n if (this.props.map) {\r\n const node = document.getElementById(this.props.map);\r\n return node && node.dmxComponent && node.dmxComponent._map;\r\n }\r\n },\r\n\r\n _placeChangedHandler () {\r\n const place = this._autocomplete.getPlace();\r\n if (!place.place_id) return;\r\n\r\n this.set('value', this.$node.value);\r\n this.set({\r\n placeId: place.place_id,\r\n address: place.formatted_address,\r\n phone: place.formatted_phone_number,\r\n phone2: place.international_phone_number,\r\n latitude: place.geometry && place.geometry.location.lat(),\r\n longitude: place.geometry && place.geometry.location.lng(),\r\n attributions: place.html_attributions,\r\n icon: place.icon,\r\n name: place.name,\r\n isOpen: place.opening_hours && place.opening_hours.isOpen(),\r\n priceLevel: place.price_level,\r\n rating: place.rating,\r\n types: place.types,\r\n url: place.url,\r\n userRatingsTotal: place.user_ratings_total,\r\n utcOffset: place.utc_offset_minutes,\r\n vicinity: place.vicinity,\r\n website: place.website,\r\n adrAddress: place.adr_address,\r\n components: Array.isArray(place.address_components) ? place.address_components.reduce(function (output, component) {\r\n component.types.forEach(function (type) {\r\n output[type.replace(/_(\\w)/g, function (m, c) {\r\n return c.toUpperCase();\r\n })] = {\r\n long: component.long_name,\r\n short: component.short_name,\r\n };\r\n });\r\n return output;\r\n }, {}) : null,\r\n });\r\n\r\n if (this.props.moveMap && this._map) {\r\n if (place.geometry.viewport) {\r\n this._map.fitBounds(place.geometry.viewport);\r\n } else {\r\n this._map.setCenter(place.geometry.location);\r\n this._map.setZoom(17);\r\n }\r\n }\r\n\r\n setTimeout(this.dispatchEvent.bind(this, 'updated'), 100);\r\n },\r\n\r\n});\r\n","dmx.Component('google-places-search', {\r\n \r\n initialData: {\r\n results: [],\r\n hasMore: false,\r\n status: '',\r\n },\r\n\r\n attributes: {\r\n map: {\r\n type: String,\r\n default: null,\r\n },\r\n\r\n fields: {\r\n type: [Array, String],\r\n default: ['place_id', 'business_status', 'formatted_address', 'geometry', 'icon', 'name', 'type'],\r\n },\r\n\r\n showOnMap: {\r\n type: Boolean,\r\n default: false,\r\n },\r\n },\r\n\r\n methods: {\r\n findPlaceFromQuery (params) {\r\n this._findPlaceFrom('query', params);\r\n },\r\n\r\n findPlaceFromPhoneNumber (params) {\r\n this._findPlaceFrom('phoneNumber', params);\r\n },\r\n\r\n nearby (params) {\r\n this._search(params, true);\r\n },\r\n\r\n search (params) {\r\n this._search(params);\r\n },\r\n\r\n getMore () {\r\n this._getMore();\r\n },\r\n },\r\n\r\n init () {\r\n this._markers = [];\r\n\r\n if (this.props.map) {\r\n requestAnimationFrame(() => {\r\n const node = document.getElementById(this.props.map);\r\n this._cluster = node && node.dmxComponent && node.dmxComponent._cluster;\r\n this._map = node && node.dmxComponent && node.dmxComponent._map;\r\n });\r\n }\r\n },\r\n\r\n performUpdate (updatedProps) {\r\n if (updatedProps.has('map')) {\r\n if (this.props.map) {\r\n const node = document.getElementById(this.props.map);\r\n this._cluster = node && node.dmxComponent && node.dmxComponent._cluster;\r\n this._map = node && node.dmxComponent && node.dmxComponent._map;\r\n } else {\r\n this._cluster = null;\r\n this._map = null;\r\n }\r\n }\r\n },\r\n\r\n destroy () {\r\n // cleanup\r\n },\r\n\r\n _clearMarkers () {\r\n if (this._cluster) {\r\n this._cluster.clearMarkers();\r\n }\r\n\r\n this._markers = this._markers.filter(marker => {\r\n google.maps.event.clearInstanceListeners(marker);\r\n marker.setMap(null);\r\n return false;\r\n });\r\n },\r\n\r\n _findPlaceFrom (prop, params) {\r\n this._clearMarkers();\r\n\r\n const fields = params.fields || this.props.fields;\r\n const request = {\r\n [prop]: params[prop],\r\n fields: Array.isArray(fields) ? fields : fields.split(/\\s*,\\s*/),\r\n };\r\n\r\n if (params.bindBounds && this._map) {\r\n request.locationBias = this._map.getBounds();\r\n } else {\r\n if (params.latitude && params.longitude) {\r\n if (params.radius) {\r\n request.locationBias = {\r\n center: { lat: +params.latitude, lng: +params.longitude },\r\n radius: +params.radius,\r\n };\r\n } else {\r\n request.locationBias = { lat: +params.latitude, lng: +params.longitude };\r\n }\r\n }\r\n }\r\n\r\n const service = new google.maps.places.PlacesService(this._map);\r\n service['findPlaceFrom' + this._ucase(prop)](request, this._results.bind(this));\r\n },\r\n\r\n _search (params, nearby = false) {\r\n this._clearMarkers();\r\n\r\n const prop = nearby ? 'type' : 'query';\r\n const request = {\r\n [prop]: params[prop],\r\n };\r\n\r\n if (params.latitude != null && params.longitude != null) {\r\n request.location = { lat: +params.latitude, lng: +params.longitude };\r\n request.radius = +params.radius || 500;\r\n } else if (this._map) {\r\n request.bounds = this._map.getBounds();\r\n }\r\n\r\n if (params.keyword) {\r\n request.keyword = params.keyword;\r\n }\r\n\r\n if (params.name) {\r\n request.name = params.name;\r\n }\r\n\r\n if (params.openNow) {\r\n request.openNow = params.openNow;\r\n }\r\n\r\n const service = new google.maps.places.PlacesService(this._map);\r\n const prefix = nearby ? 'nearby' : 'text';\r\n service[prefix + 'Search'](request, this._results.bind(this));\r\n },\r\n\r\n _getMore () {\r\n if (this._pagination && this._pagination.hasNextPage) {\r\n this._pagination.nextPage();\r\n }\r\n },\r\n\r\n _results (results, status, pagination) {\r\n this.set('status', status);\r\n this.set('hasMore', !!(pagination && pagination.hasNextPage));\r\n\r\n this._pagination = pagination;\r\n\r\n if (status == 'OK') {\r\n this.set('results', results.map(place => ({\r\n placeId: place.place_id,\r\n address: place.formatted_address,\r\n latitude: place.geometry.location.lat(),\r\n longitude: place.geometry.location.lng(),\r\n icon: place.icon,\r\n name: place.name,\r\n types: place.types,\r\n })));\r\n\r\n if (this.props.showOnMap) {\r\n // create markers on map\r\n results.forEach(place => {\r\n const image = {\r\n url: place.icon,\r\n size: new google.maps.Size(71, 71),\r\n origin: new google.maps.Point(0, 0),\r\n anchor: new google.maps.Point(17, 34),\r\n scaledSize: new google.maps.Size(25, 25),\r\n };\r\n\r\n const marker = new google.maps.Marker({\r\n //map: this._map,\r\n icon: image,\r\n title: place.name,\r\n position: place.geometry.location,\r\n });\r\n\r\n if (this._cluster) {\r\n this._cluster.addMarker(marker);\r\n } else {\r\n marker.setMap(this._map);\r\n }\r\n\r\n this._markers.push(marker);\r\n });\r\n }\r\n } else {\r\n console.warn(`Places search failed: ${status}`);\r\n }\r\n },\r\n\r\n _ucase (str) {\r\n return str[0].toUpperCase() + str.slice(1);\r\n },\r\n\r\n});\r\n"]}