UNPKG

novo-elements

Version:

1 lines 49.8 kB
{"version":3,"file":"novo-elements-elements-places.mjs","sources":["../../../projects/novo-elements/src/elements/places/places.service.ts","../../../projects/novo-elements/src/elements/places/places.component.ts","../../../projects/novo-elements/src/elements/places/places.module.ts","../../../projects/novo-elements/src/elements/places/places.tokens.ts","../../../projects/novo-elements/src/elements/places/novo-elements-elements-places.ts"],"sourcesContent":["import { isPlatformBrowser } from '@angular/common';\nimport { HttpClient } from '@angular/common/http';\nimport { Inject, Injectable, PLATFORM_ID } from '@angular/core';\nimport { GlobalRef, LocalStorageService } from 'novo-elements/services';\n\n@Injectable()\nexport class GooglePlacesService {\n constructor(\n private _http: HttpClient,\n @Inject(PLATFORM_ID) private platformId: Object,\n private _global: GlobalRef,\n private _localStorageService: LocalStorageService,\n ) {}\n\n getPredictions(url: string, query: string): Promise<any> {\n return new Promise((resolve) => {\n const separator = url.includes('?') ? '&' : '?';\n this._http.get(url + separator + 'query=' + query).subscribe((data: any) => {\n if (data) {\n resolve(data);\n } else {\n resolve(false);\n }\n });\n });\n }\n\n getLatLngDetail(url: string, lat: number, lng: number): Promise<any> {\n return new Promise((resolve) => {\n const separator = url.includes('?') ? '&' : '?';\n this._http.get(url + separator + 'lat=' + lat + '&lng=' + lng).subscribe((data: any) => {\n if (data) {\n resolve(data);\n } else {\n resolve(false);\n }\n });\n });\n }\n\n getPlaceDetails(url: string, placeId: string): Promise<any> {\n return new Promise((resolve) => {\n const separator = url.includes('?') ? '&' : '?';\n this._http.get(url + separator + 'query=' + placeId).subscribe((data: any) => {\n if (data) {\n resolve(data);\n } else {\n resolve(false);\n }\n });\n });\n }\n\n getGeoCurrentLocation(): Promise<any> {\n return new Promise((resolve) => {\n if (isPlatformBrowser(this.platformId)) {\n const _window: any = this._global.nativeGlobal;\n if (_window.navigator.geolocation) {\n _window.navigator.geolocation.getCurrentPosition((pos) => {\n const latlng: any = { lat: parseFloat(pos.coords.latitude + ''), lng: parseFloat(pos.coords.longitude + '') };\n resolve(latlng);\n });\n } else {\n resolve(false);\n }\n } else {\n resolve(false);\n }\n });\n }\n\n getGeoLatLngDetail(latlng: any): Promise<any> {\n return new Promise((resolve) => {\n if (isPlatformBrowser(this.platformId)) {\n const _window: any = this._global.nativeGlobal;\n const geocoder: any = new _window.google.maps.Geocoder();\n geocoder.geocode({ location: latlng }, (results, status) => {\n if (status === 'OK') {\n this.getGeoPlaceDetail(results[0].place_id).then((result) => {\n if (result) {\n resolve(result);\n } else {\n resolve(false);\n }\n });\n } else {\n resolve(false);\n }\n });\n } else {\n resolve(false);\n }\n });\n }\n\n getGeoPrediction(params: any): Promise<any> {\n return new Promise((resolve) => {\n if (isPlatformBrowser(this.platformId)) {\n const _window: any = this._global.nativeGlobal;\n const placesService: any = new _window.google.maps.places.AutocompleteService();\n let queryInput: any = {};\n const promiseArr: any = [];\n if (params.countryRestriction.length) {\n queryInput = {\n input: params.query,\n componentRestrictions: { country: params.countryRestriction },\n };\n } else {\n queryInput = {\n input: params.query,\n };\n }\n if (params.geoLocation) {\n queryInput.location = new _window.google.maps.LatLng(parseFloat(params.geoLocation[0]), parseFloat(params.geoLocation[1]));\n queryInput.radius = params.radius;\n }\n if (params.geoTypes.length) {\n for (let i: number = 0; i < params.geoTypes.length; i++) {\n const _tempQuery: any = queryInput;\n _tempQuery.types = new Array(params.geoTypes[i]);\n promiseArr.push(this.geoPredictionCall(placesService, _tempQuery));\n }\n } else {\n promiseArr.push(this.geoPredictionCall(placesService, queryInput));\n }\n\n Promise.all(promiseArr).then((values) => {\n const val: any = values;\n if (val.length > 1) {\n let _tempArr: any = [];\n for (let j: number = 0; j < val.length; j++) {\n if (val[j] && val[j].length) {\n _tempArr = _tempArr.concat(val[j]);\n }\n }\n _tempArr = this.getUniqueResults(_tempArr);\n resolve(_tempArr);\n } else {\n resolve(values[0]);\n }\n });\n } else {\n resolve(false);\n }\n });\n }\n\n async getGeoPlaceDetail(placeId: string): Promise<any> {\n const placeDetail: any = await new Promise((resolve) => {\n if (isPlatformBrowser(this.platformId)) {\n const _window: any = this._global.nativeGlobal;\n const placesService: any = new _window.google.maps.places.PlacesService(document.createElement('div'));\n placesService.getDetails({ placeId }, (result: any) => {\n if (result === null || result.length === 0) {\n this.getGeoPaceDetailByReferance(result.referance).then((referanceData: any) => {\n if (!referanceData) {\n resolve(false);\n } else {\n resolve(referanceData);\n }\n });\n } else {\n resolve(result);\n }\n });\n } else {\n resolve(false);\n }\n });\n\n if (placeDetail?.types?.includes('locality')) {\n placeDetail.postal_codes = await this.getPostalCodes(placeDetail);\n }\n\n return placeDetail;\n }\n\n getGeoPaceDetailByReferance(referance: string): Promise<any> {\n return new Promise((resolve) => {\n if (isPlatformBrowser(this.platformId)) {\n const _window: any = this._global.nativeGlobal;\n const placesService: any = new _window.google.maps.places.PlacesService();\n placesService.getDetails({ reference: referance }, (result: any, status: any) => {\n if (status === _window.google.maps.places.PlacesServiceStatus.OK) {\n resolve(result);\n } else {\n resolve(false);\n }\n });\n } else {\n resolve(false);\n }\n });\n }\n\n addRecentList(localStorageName: string, result: any, itemSavedLength: number): any {\n this.getRecentList(localStorageName).then((data: any) => {\n if (data) {\n for (let i: number = 0; i < data.length; i++) {\n if (data[i].description === result.description) {\n data.splice(i, 1);\n break;\n }\n }\n data.unshift(result);\n if (data.length > itemSavedLength) {\n data.pop();\n }\n this._localStorageService.setItem(localStorageName, JSON.stringify(data));\n }\n });\n }\n\n getRecentList(localStorageName: string): Promise<any> {\n return new Promise((resolve) => {\n let value: any = this._localStorageService.getItem(localStorageName);\n if (value) {\n value = JSON.parse(value);\n } else {\n value = [];\n }\n resolve(value);\n });\n }\n\n getPostalCodes(placeDetail: any): Promise<string> {\n const _window: any = this._global.nativeGlobal;\n const geocoder: any = new _window.google.maps.Geocoder();\n return new Promise((resolve) => {\n geocoder.geocode({ location: placeDetail.geometry.location }, (results, status) => {\n if (status === 'OK' && results.length) {\n resolve(\n results.reduce(\n (postalCodes: string[], result: any) => {\n const postalCodeComponent = result.address_components.find(item => item.types.includes('postal_code'));\n if (postalCodeComponent && !postalCodes.includes(postalCodeComponent.long_name)) {\n postalCodes.push(postalCodeComponent.long_name);\n }\n return postalCodes;\n },\n [],\n ),\n );\n } else {\n resolve(null);\n }\n });\n });\n }\n\n private getUniqueResults(arr: any): any {\n return Array.from(arr.reduce((m, t) => m.set(t.place_id, t), new Map()).values());\n }\n\n private geoPredictionCall(placesService: any, queryInput: any): Promise<any> {\n const _window: any = this._global.nativeGlobal;\n return new Promise((resolve) => {\n placesService.getPlacePredictions(queryInput, (result: any, status: any) => {\n if (status === _window.google.maps.places.PlacesServiceStatus.OK) {\n resolve(result);\n } else {\n resolve(false);\n }\n });\n });\n }\n}\n","// NG2\nimport { isPlatformBrowser } from '@angular/common';\nimport { ChangeDetectorRef, Component, ElementRef, EventEmitter, forwardRef, Inject, Input, OnChanges, OnInit, Output, PLATFORM_ID } from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { BasePickerResults } from 'novo-elements/elements/picker';\nimport { GlobalRef } from 'novo-elements/services';\nimport { Key } from 'novo-elements/utils';\nimport { Observable } from 'rxjs';\nimport { GooglePlacesService } from './places.service';\n\nexport interface PlacesSettings {\n geoPredictionServerUrl?: string;\n geoLatLangServiceUrl?: string;\n geoLocDetailServerUrl?: string;\n geoCountryRestriction?: any;\n geoTypes?: any;\n geoLocation?: any;\n geoRadius?: number;\n serverResponseListHierarchy?: any;\n serverResponseatLangHierarchy?: any;\n serverResponseDetailHierarchy?: any;\n resOnSearchButtonClickOnly?: boolean;\n useGoogleGeoApi?: boolean;\n inputPlaceholderText?: string;\n inputString?: string;\n showSearchButton?: boolean;\n showRecentSearch?: boolean;\n showCurrentLocation?: boolean;\n recentStorageName?: string;\n noOfRecentSearchSave?: number;\n currentLocIconUrl?: string;\n searchIconUrl?: string;\n locationIconUrl?: string;\n}\n\n/** Normalized address prediction; raw provider records are mapped into this via normalizePrediction. */\nexport interface AddressLookupPrediction {\n placeId?: string;\n primaryText?: string;\n secondaryText?: string;\n displayAddress?: string;\n types?: string[];\n /** Original provider record, retained so recent-search selection re-emits full detail. */\n raw?: any;\n}\n\n// Value accessor for the component (supports ngModel)\nconst PLACES_VALUE_ACCESSOR = {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => PlacesListComponent),\n multi: true,\n};\n\n@Component({\n selector: 'google-places-list',\n providers: [PLACES_VALUE_ACCESSOR],\n template: `\n <novo-list direction=\"vertical\">\n <novo-list-item *ngFor=\"let data of matches; let $index = index\" (click)=\"selectedListNode($event, $index)\" [ngClass]=\"{ active: data === activeMatch }\">\n <item-header>\n <item-avatar icon=\"location\"></item-avatar>\n <item-title>{{ data.primaryText }}</item-title>\n </item-header>\n <item-content>{{ data.secondaryText }}</item-content>\n </novo-list-item>\n </novo-list>\n `,\n styleUrls: ['./places.component.scss'],\n standalone: false,\n})\nexport class PlacesListComponent extends BasePickerResults implements OnInit, OnChanges, ControlValueAccessor {\n @Input()\n userSettings: PlacesSettings;\n @Output()\n termChange: EventEmitter<any> = new EventEmitter<any>();\n @Output()\n select: EventEmitter<any> = new EventEmitter<any>();\n @Output()\n matchesUpdated: EventEmitter<AddressLookupPrediction[]> = new EventEmitter<AddressLookupPrediction[]>();\n\n public locationInput: string = '';\n public gettingCurrentLocationFlag: boolean = false;\n public dropdownOpen: boolean = false;\n public recentDropdownOpen: boolean = false;\n public isSettingsError: boolean = false;\n public settingsErrorMsg: string = '';\n public settings: PlacesSettings = {};\n private moduleinit: boolean = false;\n private selectedDataIndex: number = -1;\n private recentSearchData: any = [];\n private userSelectedOption: any = '';\n private defaultSettings: PlacesSettings = {\n geoPredictionServerUrl: '',\n geoLatLangServiceUrl: '',\n geoLocDetailServerUrl: '',\n geoCountryRestriction: [],\n geoTypes: [],\n geoLocation: [],\n geoRadius: 0,\n serverResponseListHierarchy: [],\n serverResponseatLangHierarchy: [],\n serverResponseDetailHierarchy: [],\n resOnSearchButtonClickOnly: false,\n useGoogleGeoApi: true,\n inputPlaceholderText: 'Enter Area Name',\n inputString: '',\n showSearchButton: true,\n showRecentSearch: true,\n showCurrentLocation: true,\n recentStorageName: 'recentSearches',\n noOfRecentSearchSave: 5,\n currentLocIconUrl: '',\n searchIconUrl: '',\n locationIconUrl: '',\n };\n\n model: any;\n onModelChange: Function = () => {};\n onModelTouched: Function = () => {};\n\n constructor(\n @Inject(PLATFORM_ID) private platformId: Object,\n private _elmRef: ElementRef,\n private _global: GlobalRef,\n private _googlePlacesService: GooglePlacesService,\n private cdr: ChangeDetectorRef,\n ) {\n super(_elmRef, cdr);\n this.config = {};\n }\n\n ngOnInit(): any {\n if (!this.moduleinit) {\n this.moduleInit();\n }\n }\n\n ngOnChanges(): any {\n this.moduleinit = true;\n this.moduleInit();\n this.searchinputCallback(null);\n }\n\n writeValue(model: any): void {\n this.model = model;\n }\n\n registerOnChange(fn: Function): void {\n this.onModelChange = fn;\n }\n\n registerOnTouched(fn: Function): void {\n this.onModelTouched = fn;\n }\n\n // function called when click event happens in input box. (Binded with view)\n searchinputClickCallback(event: any): any {\n event.target.select();\n this.searchinputCallback(event);\n }\n\n // function called when there is a change in input. (Binded with view)\n searchinputCallback(event: any): any {\n const inputVal: any = this.locationInput;\n if (inputVal) {\n this.getListQuery(inputVal);\n } else {\n this.matches = [];\n if (this.userSelectedOption) {\n this.userQuerySubmit('false');\n }\n this.userSelectedOption = '';\n if (this.settings.showRecentSearch) {\n this.showRecentSearch();\n } else {\n this.dropdownOpen = false;\n }\n }\n }\n\n // function to execute when user hover over autocomplete list. (binded with view)\n activeListNode(index: number): any {\n for (let i: number = 0; i < this.matches.length; i++) {\n if (index === i) {\n this.matches[i].active = true;\n this.selectedDataIndex = index;\n } else {\n this.matches[i].active = false;\n }\n }\n }\n\n // function to execute when user selects a match from the autocomplete list. (binded with view)\n selectedListNode(event: MouseEvent, index: number): any {\n this.selectMatch(this.matches[index]);\n }\n\n // function to execute when user selects a match.\n selectMatch(match: AddressLookupPrediction): any {\n this.dropdownOpen = false;\n if (this.recentDropdownOpen) {\n // Recent items carry full detail on `raw`, which downstream consumers need.\n this.setRecentLocation(match.raw ?? match);\n } else {\n this.getPlaceLocationInfo(match);\n }\n }\n\n // function to close the autocomplete list when clicked outside. (binded with view)\n closeAutocomplete(event: any): any {\n if (!this._elmRef.nativeElement.contains(event.target)) {\n this.selectedDataIndex = -1;\n this.dropdownOpen = false;\n }\n }\n\n // function to manually trigger the callback to parent component when clicked search button.\n userQuerySubmit(selectedOption?: any): any {\n const _userOption: any = selectedOption === 'false' ? '' : this.userSelectedOption;\n if (_userOption) {\n this.select.emit(this.userSelectedOption);\n } else {\n // this.select.emit(false);\n }\n }\n\n // function to get user current location from the device.\n currentLocationSelected(): any {\n if (isPlatformBrowser(this.platformId)) {\n this.gettingCurrentLocationFlag = true;\n this.dropdownOpen = false;\n this._googlePlacesService.getGeoCurrentLocation().then((result: any) => {\n if (!result) {\n this.gettingCurrentLocationFlag = false;\n } else {\n this.getCurrentLocationInfo(result);\n }\n });\n }\n }\n\n // module initialization happens. function called by ngOninit and ngOnChange\n private moduleInit(): any {\n this.settings = this.setUserSettings();\n // condition to check if Radius is set without location detail.\n if (this.settings.geoRadius) {\n if (this.settings.geoLocation.length !== 2) {\n this.isSettingsError = true;\n this.settingsErrorMsg =\n this.settingsErrorMsg + 'Radius should be used with GeoLocation. Please use \"geoLocation\" key to set lat and lng. ';\n }\n }\n\n // condition to check if lat and lng is set and radious is not set then it will set to 20,000KM by default\n if (this.settings.geoLocation.length === 2 && !this.settings.geoRadius) {\n this.settings.geoRadius = 20000000;\n }\n if (this.settings.showRecentSearch) {\n this.getRecentLocations();\n }\n if (!this.settings.useGoogleGeoApi) {\n if (!this.settings.geoPredictionServerUrl) {\n this.isSettingsError = true;\n this.settingsErrorMsg =\n this.settingsErrorMsg + 'Prediction custom server url is not defined. Please use \"geoPredictionServerUrl\" key to set. ';\n }\n if (!this.settings.geoLatLangServiceUrl) {\n this.isSettingsError = true;\n this.settingsErrorMsg =\n this.settingsErrorMsg + 'Latitude and longitude custom server url is not defined. Please use \"geoLatLangServiceUrl\" key to set. ';\n }\n if (!this.settings.geoLocDetailServerUrl) {\n this.isSettingsError = true;\n this.settingsErrorMsg =\n this.settingsErrorMsg + 'Location detail custom server url is not defined. Please use \"geoLocDetailServerUrl\" key to set. ';\n }\n }\n this.locationInput = this.term;\n }\n\n // function to process the search query when pressed enter.\n private processSearchQuery(): any {\n if (this.matches.length) {\n if (this.selectedDataIndex > -1) {\n this.selectedListNode(null, this.selectedDataIndex);\n } else {\n this.selectedListNode(null, 0);\n }\n }\n }\n\n // function to set user settings if it is available.\n private setUserSettings(): PlacesSettings {\n const _tempObj: any = {};\n if (this.userSettings && typeof this.userSettings === 'object') {\n const keys: string[] = Object.keys(this.defaultSettings);\n for (const value of keys) {\n _tempObj[value] = this.userSettings[value] !== undefined ? this.userSettings[value] : this.defaultSettings[value];\n }\n return _tempObj;\n } else {\n return this.defaultSettings;\n }\n }\n\n // function to get the autocomplete list based on user input.\n private getListQuery(value: string): any {\n this.recentDropdownOpen = false;\n if (this.settings.useGoogleGeoApi) {\n const _tempParams: any = {\n query: value,\n countryRestriction: this.settings.geoCountryRestriction,\n geoTypes: this.settings.geoTypes,\n };\n if (this.settings.geoLocation.length === 2) {\n _tempParams.geoLocation = this.settings.geoLocation;\n _tempParams.radius = this.settings.geoRadius;\n }\n this._googlePlacesService.getGeoPrediction(_tempParams).then((result) => {\n this.updateListItem(result);\n });\n } else {\n this._googlePlacesService.getPredictions(this.settings.geoPredictionServerUrl, value).then((result) => {\n result = this.extractServerList(this.settings.serverResponseListHierarchy, result);\n this.updateListItem(result);\n });\n }\n }\n\n // function to extratc custom data which is send by the server.\n private extractServerList(arrayList: any, data: any): any {\n if (arrayList.length) {\n let _tempData: any = data;\n for (const key of arrayList) {\n _tempData = _tempData[key];\n }\n return _tempData;\n } else {\n return data;\n }\n }\n\n // function to update the predicted list.\n private updateListItem(listData: any): any {\n this.matches = (listData || []).map((item: any) => this.normalizePrediction(item));\n // Reset highlight so Enter can't act on a stale prediction.\n this.activeMatch = undefined;\n this.dropdownOpen = true;\n this.cdr.detectChanges();\n this.matchesUpdated.emit(this.matches);\n }\n\n // function to show the recent search result.\n private showRecentSearch(): any {\n this.recentDropdownOpen = true;\n this.dropdownOpen = true;\n this._googlePlacesService.getRecentList(this.settings.recentStorageName).then((result: any) => {\n this.matches = (result || []).map((item: any) => this.normalizePrediction(item));\n });\n }\n\n // function to execute to get location detail based on latitude and longitude.\n private getCurrentLocationInfo(latlng: any): any {\n if (this.settings.useGoogleGeoApi) {\n this._googlePlacesService.getGeoLatLngDetail(latlng).then((result: any) => {\n if (result) {\n this.setRecentLocation(result);\n }\n this.gettingCurrentLocationFlag = false;\n });\n } else {\n this._googlePlacesService.getLatLngDetail(this.settings.geoLatLangServiceUrl, latlng.lat, latlng.lng).then((result: any) => {\n if (result) {\n result = this.extractServerList(this.settings.serverResponseatLangHierarchy, result);\n this.setRecentLocation(result);\n }\n this.gettingCurrentLocationFlag = false;\n });\n }\n }\n\n // function to retrieve the location info based on google place id.\n private getPlaceLocationInfo(selectedData: AddressLookupPrediction): any {\n const placeId = selectedData.placeId;\n if (this.settings.useGoogleGeoApi) {\n this._googlePlacesService.getGeoPlaceDetail(placeId).then((data: any) => {\n if (data) {\n this.setRecentLocation(data);\n }\n });\n } else {\n this._googlePlacesService.getPlaceDetails(this.settings.geoLocDetailServerUrl, placeId).then((result: any) => {\n if (result) {\n result = this.extractServerList(this.settings.serverResponseDetailHierarchy, result);\n this.setRecentLocation(result);\n }\n });\n }\n }\n\n // function to store the selected user search in the localstorage.\n private setRecentLocation(data: any): any {\n data = JSON.parse(JSON.stringify(data));\n data.description = data.description ? data.description : (data.formattedAddress || data.formatted_address);\n data.active = false;\n this.selectedDataIndex = -1;\n this.locationInput = data.description;\n if (this.settings.showRecentSearch) {\n this._googlePlacesService.addRecentList(this.settings.recentStorageName, data, this.settings.noOfRecentSearchSave);\n this.getRecentLocations();\n }\n this.userSelectedOption = data;\n // below code will execute only when user press enter or select any option selection and it emit a callback to the parent component.\n if (!this.settings.resOnSearchButtonClickOnly) {\n this.select.emit(data);\n this.termChange.emit(data);\n }\n }\n\n // function to retrive the stored recent user search from the localstorage.\n private getRecentLocations(): any {\n this._googlePlacesService.getRecentList(this.settings.recentStorageName).then((data: any) => {\n this.recentSearchData = data && data.length ? data : [];\n });\n }\n\n // Fold a raw Google/REST/recent record into the internal AddressLookupPrediction shape.\n normalizePrediction(raw: any): AddressLookupPrediction {\n return {\n placeId: raw?.placeId || raw?.place_id,\n primaryText: raw?.primaryText || raw?.structured_formatting?.main_text || raw?.displayAddress || raw?.description || '',\n secondaryText: raw?.secondaryText || raw?.structured_formatting?.secondary_text || '',\n displayAddress: raw?.displayAddress || raw?.description,\n types: raw?.types,\n raw,\n };\n }\n\n onKeyDown(event: KeyboardEvent) {\n if (this.dropdownOpen) {\n if (event.key === Key.ArrowUp) {\n this.prevActiveMatch();\n return;\n }\n if (event.key === Key.ArrowDown) {\n this.nextActiveMatch();\n return;\n }\n if (event.key === Key.Enter) {\n // Only select when a prediction is highlighted.\n if (this.activeMatch) {\n this.selectMatch(this.activeMatch);\n }\n return;\n }\n }\n }\n\n search(term, mode?): Observable<any> {\n // Disable the base search term functionality here since it is handled by the places picker separately\n return new Observable();\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { provideHttpClient, withInterceptorsFromDi } from '@angular/common/http';\nimport { NgModule } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { NovoListModule } from 'novo-elements/elements/list';\nimport { PlacesListComponent } from './places.component';\nimport { GooglePlacesService } from './places.service';\n\n@NgModule({ declarations: [PlacesListComponent],\n exports: [PlacesListComponent], imports: [CommonModule, FormsModule, NovoListModule], providers: [GooglePlacesService, provideHttpClient(withInterceptorsFromDi())] })\nexport class GooglePlacesModule {}\n","import { InjectionToken } from '@angular/core';\nimport type { PlacesSettings } from './places.component';\n\n/** App-wide address-lookup config; when provided, every novo-address enables autocomplete on Address 1. */\nexport const NOVO_ADDRESS_CONFIG = new InjectionToken<PlacesSettings>('NOVO_ADDRESS_CONFIG');\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1","i2.GooglePlacesService"],"mappings":"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"}