{"version":3,"file":"geolocation-mbj8nivx.js","sources":["packages/vanilla/lib/features/geolocation/src/geolocation.client-config.ts","packages/vanilla/lib/features/geolocation/src/geolocation-browser-api.service.ts","packages/vanilla/lib/features/geolocation/src/geolocation-cookie.service.ts","packages/vanilla/lib/features/geolocation/src/geolocation-resource.service.ts","packages/vanilla/lib/features/geolocation/src/geolocation.service.ts","packages/vanilla/lib/features/geolocation/src/geolocation-bootstrap.service.ts","packages/vanilla/lib/features/geolocation/src/geolocation-dsl-resolver.ts","packages/vanilla/lib/features/geolocation/src/geolocation-dsl-values-provider.ts","packages/vanilla/lib/features/geolocation/src/geolocation-launch-darkly-context-provider.ts","packages/vanilla/lib/features/geolocation/src/geolocation.feature.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\n\nimport { ClientConfigProductName, LazyClientConfig, LazyClientConfigBase, LazyClientConfigService } from '@frontend/vanilla/core';\n\n/**\n * @stable\n */\n@LazyClientConfig({ key: 'vnGeolocation', product: ClientConfigProductName.SF })\n@Injectable()\nexport class GeolocationConfig extends LazyClientConfigBase {\n minimumUpdateIntervalMilliseconds: number;\n cookieExpirationMilliseconds: number;\n watchOptions: PositionOptions;\n useBrowserGeolocation: boolean;\n watchBrowserPositionOnAppStart: boolean;\n clientApiUrl: string;\n}\n\nexport function configFactory(service: LazyClientConfigService) {\n return service.get(GeolocationConfig);\n}\n","import { Injectable, inject } from '@angular/core';\n\nimport { Coordinates, Position, WINDOW } from '@frontend/vanilla/core';\nimport { Observable, Subject } from 'rxjs';\n\nimport { GeolocationConfig } from './geolocation.client-config';\n\n/** The reason of an error occurring when using the geolocating device.\n * @experimental\n */\nexport interface PositionError {\n readonly code: number;\n readonly message: string;\n readonly PERMISSION_DENIED: number;\n readonly POSITION_UNAVAILABLE: number;\n readonly TIMEOUT: number;\n}\n\n/** Encapsulates browser API to observable and clones native objects to JSON friendly ones. */\n@Injectable()\nexport class GeolocationBrowserApiService {\n private changesSubject: Subject;\n readonly #window = inject(WINDOW);\n\n constructor(private config: GeolocationConfig) {}\n\n get positionChanges(): Observable {\n if (!this.changesSubject) {\n this.changesSubject = new Subject();\n const watchId = this.geolocationApi.watchPosition(\n (p) => this.onPositionChanged(p),\n (e) => this.onPositionFailed(e, watchId),\n this.config.watchOptions,\n );\n }\n return this.changesSubject;\n }\n\n private onPositionChanged(position: Position) {\n this.changesSubject.next({\n timestamp: position.timestamp,\n coords: cloneNativeCoordinatesToJsonObj(position.coords),\n });\n }\n\n private onPositionFailed(error: PositionError, watchId: number) {\n if (error.code === error.PERMISSION_DENIED) {\n this.geolocationApi.clearWatch(watchId);\n }\n\n this.changesSubject.error(cloneNativeErrorToJsonObj(error));\n }\n\n private get geolocationApi() {\n return this.#window.navigator.geolocation;\n }\n}\n\nexport function cloneNativeCoordinatesToJsonObj(coords: Coordinates): Coordinates {\n return {\n latitude: coords.latitude,\n longitude: coords.longitude,\n altitude: coords.altitude,\n accuracy: coords.accuracy,\n altitudeAccuracy: coords.altitudeAccuracy,\n heading: coords.heading,\n speed: coords.speed,\n };\n}\n\nfunction cloneNativeErrorToJsonObj(error: PositionError): PositionError {\n return {\n code: error.code,\n message: error.message,\n PERMISSION_DENIED: error.PERMISSION_DENIED,\n POSITION_UNAVAILABLE: error.POSITION_UNAVAILABLE,\n TIMEOUT: error.TIMEOUT,\n };\n}\n","import { Injectable } from '@angular/core';\n\nimport { CookieName, CookieService, DateTimeService, GeolocationPosition } from '@frontend/vanilla/core';\n\nimport { GeolocationConfig } from './geolocation.client-config';\n\n@Injectable()\nexport class GeolocationCookieService {\n constructor(\n private config: GeolocationConfig,\n private cookieService: CookieService,\n private dateTimeService: DateTimeService,\n ) {}\n\n read(): GeolocationPosition | null {\n const json = this.cookieService.get(CookieName.GeoLocation)?.trim();\n return json ? JSON.parse(json) : null;\n }\n\n write(position: GeolocationPosition) {\n const expires = this.calculateExpiration();\n this.cookieService.putObject(CookieName.GeoLocation, position, expires ? { expires } : undefined);\n }\n\n delete() {\n this.cookieService.remove(CookieName.GeoLocation);\n }\n\n private calculateExpiration(): Date | undefined {\n if (!this.config.cookieExpirationMilliseconds) {\n return;\n }\n\n const expiration = this.dateTimeService.now();\n expiration.setTime(expiration.getTime() + this.config.cookieExpirationMilliseconds);\n\n return expiration;\n }\n}\n","import { HttpClient } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\n\nimport { Coordinates, Logger, MappedGeolocation, SharedFeaturesApiService, UrlService } from '@frontend/vanilla/core';\nimport { Observable, forkJoin, of } from 'rxjs';\nimport { map, retry, tap } from 'rxjs/operators';\n\nimport { GeolocationConfig } from './geolocation.client-config';\n\n@Injectable()\nexport class GeolocationResourceService {\n constructor(\n private api: SharedFeaturesApiService,\n private config: GeolocationConfig,\n private urlService: UrlService,\n private httpClient: HttpClient,\n private logger: Logger,\n ) {}\n\n mapGeolocation(coords: Coordinates): Observable {\n const locationServerside = this.api.get('mappedgeolocation', coords);\n let locationClientSide = of({});\n\n if (this.config.clientApiUrl) {\n const url = this.urlService.parse(this.config.clientApiUrl);\n url.search.append('latitude', coords.latitude.toString());\n url.search.append('longitude', coords.longitude.toString());\n locationClientSide = this.httpClient.get(url.absUrl()).pipe(retry(2));\n }\n\n return forkJoin([locationServerside, locationClientSide]).pipe(\n map((result: any) => {\n const eventObj: any = {\n locationId: null,\n locationName: null,\n city: null,\n state: null,\n zip: null,\n country: null,\n\n locationNameClient: null,\n cityClient: null,\n countryClient: null,\n //comment to test pipeline.\n postCodeClient: null,\n stateClient: null,\n };\n\n // Location detail from server side\n if (result[0].location) {\n eventObj.locationId = result[0].location['locationId'];\n eventObj.locationName = result[0].location['locationName'];\n eventObj.city = result[0].location['city'];\n eventObj.state = result[0].location['state'];\n eventObj.zip = result[0].location['zip'];\n eventObj.country = result[0].location['country'];\n }\n\n // Location detail from Client side api\n if (result[1]) {\n eventObj.locationNameClient = result[1]['locality'];\n eventObj.cityClient = result[1]['city'];\n eventObj.countryClient = result[1]['countryName'];\n eventObj.postCodeClient = result[1]['postcode'];\n eventObj.stateClient = result[1]['principalSubdivision'];\n }\n\n return eventObj;\n }),\n tap({\n error: (error) => {\n this.logger.errorRemote('VanillaGeolocation failed mapping api response.', error);\n },\n }),\n );\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport {\n CookieName,\n Coordinates,\n GeolocationPosition,\n Logger,\n MappedGeolocation,\n NativeAppService,\n NativeEventType,\n Position,\n TimerService,\n} from '@frontend/vanilla/core';\nimport { isEqual } from 'lodash-es';\nimport { Observable, ReplaySubject } from 'rxjs';\nimport { filter } from 'rxjs/operators';\n\nimport { GeolocationBrowserApiService, cloneNativeCoordinatesToJsonObj } from './geolocation-browser-api.service';\nimport { GeolocationCookieService } from './geolocation-cookie.service';\nimport { GeolocationResourceService } from './geolocation-resource.service';\nimport { GeolocationConfig } from './geolocation.client-config';\n\nexport const LOG_PREFIX = 'VanillaGeolocation';\n\n/**\n * @whatItDoes Provides current geolocation position.\n * Gets null if position is not available yet or it's disabled by user in browser or the feature is disabled.\n *\n * @howToUse\n * ```\n * const locationId = geolocationService.currentPosition?.mappedLocation?.locationId;\n *\n * geolocationService.positionChanges.subscribe(position => {\n * // ...\n * });\n * ```\n *\n * @experimental\n */\n@Injectable({ providedIn: 'root' })\nexport class GeolocationService {\n /** Gets current position */\n get currentPosition(): GeolocationPosition | null {\n return this.lastPosition;\n }\n\n /** Gets current position and all future changes. */\n get positionChanges(): Observable {\n return this.positionSubject;\n }\n\n private lastPosition: GeolocationPosition | null = null;\n private positionSubject = new ReplaySubject(1);\n private timeoutId: NodeJS.Timeout;\n private isWatchBrowserPositionChangesStarted: boolean = false;\n\n constructor(\n private config: GeolocationConfig,\n private browserApi: GeolocationBrowserApiService,\n private cookie: GeolocationCookieService,\n private resource: GeolocationResourceService,\n private log: Logger,\n private timer: TimerService,\n private nativeApp: NativeAppService,\n ) {}\n\n watchBrowserPositionChanges() {\n if (this.config.useBrowserGeolocation && !this.isWatchBrowserPositionChangesStarted) {\n this.isWatchBrowserPositionChangesStarted = true;\n this.watchPositionChanges();\n }\n }\n\n /** @internal */\n watchNativePositionChanges() {\n if (this.nativeApp.isNative) {\n this.nativeApp.eventsFromNative\n .pipe(filter((e) => e.eventName?.toUpperCase() === NativeEventType.GEO_LOCATION_POSITION))\n .subscribe((e) => {\n const parameters = e.parameters || {};\n const newPosition: Position = {\n timestamp: Math.floor(parameters['time'] * 1000), // app is sending timestamp in seconds\n coords: cloneNativeCoordinatesToJsonObj(parameters as Coordinates),\n };\n\n if (this.isLastPositionEqualToNewPosition(newPosition)) return;\n\n this.mapGeolocation(newPosition);\n });\n\n this.nativeApp.sendToNative({ eventName: NativeEventType.GET_GEO_LOCATION_POSITION });\n }\n }\n\n /** @internal */\n restoreLastPositionFromCookie() {\n this.lastPosition = this.cookie.read();\n\n if (this.lastPosition) {\n this.positionSubject.next(this.lastPosition);\n this.log.debug(`${LOG_PREFIX} restored this position from the cookie:`, this.lastPosition);\n }\n }\n\n /** @internal */\n clearPositionForGood() {\n this.lastPosition = null;\n this.cookie.delete();\n }\n\n private watchPositionChanges() {\n this.browserApi.positionChanges.subscribe({\n next: (p) => this.onPositionChanged(p),\n error: (e) => this.onPositionError(e),\n });\n }\n\n private onPositionChanged(newPosition: Position) {\n if (this.isLastPositionEqualToNewPosition(newPosition)) return;\n\n const mappingDueTime = Math.max(\n 0,\n this.config.minimumUpdateIntervalMilliseconds - (newPosition.timestamp - (this.lastPosition?.timestamp ?? 0)),\n );\n this.log.debug(\n `${LOG_PREFIX} received new coordinates at time ${newPosition.timestamp}. Mapping them to a location on backend in ${mappingDueTime} milliseconds. New coordinates:`,\n newPosition.coords,\n );\n\n this.timer.clearTimeout(this.timeoutId);\n this.timeoutId = this.timer.setTimeout(() => this.mapGeolocation(newPosition), mappingDueTime);\n }\n\n private mapGeolocation(newPosition: Position) {\n this.log.infoRemote(`${LOG_PREFIX} mapping new coordinates.`);\n\n this.resource.mapGeolocation(newPosition.coords).subscribe({\n next: (location: MappedGeolocation | null) => {\n this.log.debug(\n `${LOG_PREFIX} mapped new coordinates to following location. Writing it all to '${CookieName.GeoLocation}' cookie.`,\n location,\n );\n this.log.infoRemote(\n `${LOG_PREFIX} mapped new coordinates to '${CookieName.GeoLocation}' cookie. StateClient:${location?.stateClient}, CountryClient:${location?.countryClient}, Country:${location?.country}`,\n );\n this.setLastPosition(newPosition, location);\n },\n error: (error: any) => {\n this.log.errorRemote(\n `${LOG_PREFIX} failed mapping new coordinates. Using them with null mapped location. Writing it all to '${CookieName.GeoLocation}' cookie. Error:`,\n error,\n );\n this.setLastPosition(newPosition, null);\n },\n });\n }\n\n private onPositionError(error: any) {\n if (error.code === error.PERMISSION_DENIED) {\n this.log.debug(`${LOG_PREFIX} is disabled by user in the browser.`);\n this.clearPositionForGood();\n } else {\n this.log.warn(`${LOG_PREFIX} failed to watch the position. Using the last one and watch continues. Error:`, error);\n }\n\n this.positionSubject.error(error);\n }\n\n private isLastPositionEqualToNewPosition(newPosition: Position): boolean {\n if (this.lastPosition && isEqual(newPosition.coords, this.lastPosition.coords)) {\n this.log.debug(\n `${LOG_PREFIX} received same coordinates as the last position has. Only updating timestamp to ${newPosition.timestamp}. Writing it all to '${CookieName.GeoLocation}' cookie. Last position:`,\n this.lastPosition,\n );\n this.setLastPosition(newPosition, this.lastPosition.mappedLocation, { publishEvent: false });\n\n return true;\n }\n\n return false;\n }\n\n private setLastPosition(apiPosition: Position, mappedLocation: MappedGeolocation | null, opts?: { publishEvent: boolean }) {\n this.lastPosition = {\n coords: apiPosition.coords,\n timestamp: apiPosition.timestamp,\n mappedLocation,\n };\n\n this.cookie.write(this.lastPosition);\n\n if (!opts || opts.publishEvent) {\n this.log.infoRemote(`${LOG_PREFIX} sending position changed event.`);\n this.positionSubject.next(this.lastPosition);\n }\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport {\n CookieName,\n CookieService,\n GeolocationService as CoreGeolocationService,\n NativeAppService,\n OnFeatureInit,\n TrackingService,\n UserLoginEvent,\n UserService,\n} from '@frontend/vanilla/core';\nimport { filter, first, firstValueFrom, map, of, switchMap } from 'rxjs';\n\nimport { GeolocationConfig } from './geolocation.client-config';\nimport { GeolocationService } from './geolocation.service';\n\n@Injectable()\nexport class GeolocationBootstrapService implements OnFeatureInit {\n constructor(\n private config: GeolocationConfig,\n private geolocationService: GeolocationService,\n private coreGeolocationService: CoreGeolocationService,\n private user: UserService,\n private trackingService: TrackingService,\n private nativeAppService: NativeAppService,\n private cookieService: CookieService,\n ) {}\n\n async onFeatureInit() {\n await firstValueFrom(this.config.whenReady);\n\n this.geolocationService.clearPositionForGood();\n\n if (this.config.watchBrowserPositionOnAppStart) {\n this.geolocationService.watchBrowserPositionChanges();\n }\n\n this.geolocationService.restoreLastPositionFromCookie();\n this.geolocationService.watchNativePositionChanges();\n\n this.coreGeolocationService.set(this.geolocationService);\n\n this.trackGeolocationEventAfterLogin();\n }\n\n //Send Geolocation event to datalayer after login and location received, only once, for CIP to trigger geo targetted offers.\n private trackGeolocationEventAfterLogin() {\n this.geolocationService.positionChanges\n .pipe(\n first(),\n switchMap((geolocation) => {\n if (this.user.isAuthenticated) {\n return of(geolocation);\n } else {\n this.cookieService.remove(CookieName.VnGeolocationTracking);\n return this.user.events.pipe(\n filter((e) => e instanceof UserLoginEvent),\n first(),\n map(() => geolocation),\n );\n }\n }),\n )\n .subscribe((geolocation) => {\n const cookie = this.cookieService.get(CookieName.VnGeolocationTracking);\n if (!cookie && this.user.workflowType == 0) {\n this.sendToGA(geolocation);\n }\n });\n }\n\n private sendToGA(geolocation: GeolocationPosition) {\n this.trackingService.triggerEvent('geolocation', {\n 'user.profile.accountID': this.user.accountId,\n 'native.nativeMode': this.nativeAppService.nativeMode,\n 'GEO_LATITUDE': geolocation.coords.latitude,\n 'GEO_LONGITUDE': geolocation.coords.longitude,\n 'GEO_ALTITUDE': geolocation.coords.altitude,\n 'GEO_ACCURACY': geolocation.coords.accuracy,\n 'GEO_ALT_ACCURACY': geolocation.coords.altitudeAccuracy,\n 'GEO_HEADING': geolocation.coords.heading,\n 'GEO_SPEED': geolocation.coords.speed,\n });\n\n this.cookieService.put(CookieName.VnGeolocationTracking, '1');\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport { GeolocationPosition, MappedGeolocation } from '@frontend/vanilla/core';\n\nimport { GeolocationService } from './geolocation.service';\n\n@Injectable()\nexport class GeolocationDslResolver {\n private currentPosition: GeolocationPosition | null;\n constructor(private geolocationService: GeolocationService) {\n this.geolocationService.positionChanges.subscribe((position: GeolocationPosition) => (this.currentPosition = position));\n }\n\n getPosition(getValue: (p: GeolocationPosition) => number | null): number {\n const position = this.currentPosition;\n if (!position) {\n throw new Error(\n `Currently there is no position resolved by browser so its properties cannot't be accessed.` +\n ` Returning zero would be misleading as far as it's a valid value. Check HasPosition first.`,\n );\n }\n return getValue(position) || 0;\n }\n\n getLocation(getValue: (l: MappedGeolocation) => string | null) {\n const location = this.currentPosition?.mappedLocation;\n return location ? getValue(location) || '' : ''; // Sanitize null b/c client DSL engine doesn't do it\n }\n\n hasPosition(): boolean {\n return !!this.currentPosition;\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport {\n DateTimeOffset,\n DslCacheService,\n DslRecordable,\n DslRecorderService,\n DslTimeConverterService,\n DslValuesProvider,\n MappedGeolocation,\n Position,\n TimeSpan,\n} from '@frontend/vanilla/core';\n\nimport { GeolocationDslResolver } from './geolocation-dsl-resolver';\nimport { GeolocationService } from './geolocation.service';\n\nconst DEPENDENCIES = ['geolocation'];\n\n@Injectable()\nexport class GeolocationDslValuesProvider implements DslValuesProvider {\n constructor(\n private dslRecorderService: DslRecorderService,\n dslCacheService: DslCacheService,\n private dslTimeConverter: DslTimeConverterService,\n private geolocationService: GeolocationService,\n private geolocationDslResolver: GeolocationDslResolver,\n ) {\n this.geolocationService.positionChanges.subscribe(() => dslCacheService.invalidate(DEPENDENCIES));\n }\n\n getProviders(): { [provider: string]: DslRecordable } {\n const recordable = this.dslRecorderService.createRecordable('geolocation');\n const resolver = this.geolocationDslResolver;\n\n createProperty('HasPosition', () => resolver.hasPosition());\n createPositionProperty('Timestamp', (p) => this.dslTimeConverter.fromTimeToDsl(new DateTimeOffset(p.timestamp, TimeSpan.ZERO)));\n createPositionProperty('Latitude', (p) => p.coords.latitude);\n createPositionProperty('Longitude', (p) => p.coords.longitude);\n createPositionProperty('Altitude', (p) => p.coords.altitude);\n createPositionProperty('Accuracy', (p) => p.coords.accuracy);\n createPositionProperty('AltitudeAccuracy', (p) => p.coords.altitudeAccuracy);\n createPositionProperty('Heading', (p) => p.coords.heading);\n createPositionProperty('Speed', (p) => p.coords.speed);\n\n createLocationProperty('LocationId', (l) => l.locationId);\n createLocationProperty('LocationName', (l) => l.locationName);\n createLocationProperty('City', (l) => l.city);\n createLocationProperty('State', (l) => l.state);\n createLocationProperty('Zip', (l) => l.zip);\n createLocationProperty('Country', (l) => l.country);\n\n createLocationProperty('LocationNameClient', (l) => l.locationNameClient);\n createLocationProperty('CityClient', (l) => l.cityClient);\n createLocationProperty('StateClient', (l) => l.stateClient);\n createLocationProperty('PostCodeClient', (l) => l.postCodeClient);\n createLocationProperty('CountryClient', (l) => l.countryClient);\n\n return { Geolocation: recordable };\n\n function createPositionProperty(name: string, get: (p: Position) => number | null) {\n createProperty(name, () => resolver.getPosition((p) => get(p)));\n }\n\n function createLocationProperty(name: string, get: (p: MappedGeolocation) => string | null) {\n createProperty(name, () => resolver.getLocation((p) => get(p)));\n }\n\n function createProperty(name: string, get: () => number | string | boolean | null) {\n recordable.createProperty({ name, get, deps: DEPENDENCIES });\n }\n }\n}\n","import { Injectable, inject } from '@angular/core';\n\nimport { LaunchDarklyLazyContextProvider, Logger } from '@frontend/vanilla/core';\nimport { LDContext } from 'launchdarkly-js-client-sdk';\nimport { firstValueFrom, timeout } from 'rxjs';\n\nimport { GeolocationService } from './geolocation.service';\n\n@Injectable()\nexport class GeolocationContextProvider extends LaunchDarklyLazyContextProvider {\n private readonly geolocationService = inject(GeolocationService);\n private readonly log = inject(Logger);\n\n async getLazyContext(): Promise {\n await firstValueFrom(this.geolocationService.positionChanges.pipe(timeout(10000))).catch(() => {\n this.log.warn('positionChanges failed of timed out in GeolocationContextProvider.');\n return {};\n });\n\n return {\n kind: 'multi',\n state: this.geolocationService.currentPosition?.mappedLocation?.stateClient\n ? { key: this.geolocationService.currentPosition?.mappedLocation.stateClient }\n : undefined,\n country: this.geolocationService.currentPosition?.mappedLocation?.countryClient\n ? { key: this.geolocationService.currentPosition?.mappedLocation.countryClient }\n : undefined,\n };\n }\n}\n","import { LazyClientConfigService, registerLazyDslOnModuleInit, runLaunchDarklyLazyContextProvider, runOnFeatureInit } from '@frontend/vanilla/core';\n\nimport { GeolocationBootstrapService } from './geolocation-bootstrap.service';\nimport { GeolocationBrowserApiService } from './geolocation-browser-api.service';\nimport { GeolocationCookieService } from './geolocation-cookie.service';\nimport { GeolocationDslResolver } from './geolocation-dsl-resolver';\nimport { GeolocationDslValuesProvider } from './geolocation-dsl-values-provider';\nimport { GeolocationContextProvider } from './geolocation-launch-darkly-context-provider';\nimport { GeolocationResourceService } from './geolocation-resource.service';\nimport { GeolocationConfig, configFactory } from './geolocation.client-config';\nimport { GeolocationService } from './geolocation.service';\n\nexport function provide() {\n return [\n GeolocationBrowserApiService,\n GeolocationResourceService,\n GeolocationService,\n GeolocationCookieService,\n GeolocationDslResolver,\n { provide: GeolocationConfig, useFactory: configFactory, deps: [LazyClientConfigService] },\n runOnFeatureInit(GeolocationBootstrapService),\n registerLazyDslOnModuleInit(GeolocationDslValuesProvider),\n runLaunchDarklyLazyContextProvider(GeolocationContextProvider),\n ];\n}\n"],"names":["GeolocationConfig","_a","LazyClientConfigBase","__ngFactoryType__","l","factory","ɵfac","__decorate","LazyClientConfig","key","product","ClientConfigProductName","SF","configFactory","service","get","GeolocationBrowserApiService","_window","constructor","config","__privateAdd","inject","WINDOW","positionChanges","changesSubject","Subject","watchId","geolocationApi","watchPosition","p","onPositionChanged","e","onPositionFailed","watchOptions","position","next","timestamp","coords","cloneNativeCoordinatesToJsonObj","error","code","PERMISSION_DENIED","clearWatch","cloneNativeErrorToJsonObj","__privateGet","navigator","geolocation","ɵɵinject","_GeolocationBrowserApiService","latitude","longitude","altitude","accuracy","altitudeAccuracy","heading","speed","message","POSITION_UNAVAILABLE","TIMEOUT","GeolocationCookieService","cookieService","dateTimeService","read","json","CookieName","GeoLocation","trim","JSON","parse","write","expires","calculateExpiration","putObject","undefined","delete","remove","cookieExpirationMilliseconds","expiration","now","setTime","getTime","CookieService","DateTimeService","_GeolocationCookieService","GeolocationResourceService","api","urlService","httpClient","logger","mapGeolocation","locationServerside","locationClientSide","of","clientApiUrl","url","search","append","toString","absUrl","pipe","retry","forkJoin","map","result","eventObj","locationId","locationName","city","state","zip","country","locationNameClient","cityClient","countryClient","postCodeClient","stateClient","location","tap","errorRemote","SharedFeaturesApiService","UrlService","HttpClient","Logger","_GeolocationResourceService","LOG_PREFIX","GeolocationService","currentPosition","lastPosition","positionSubject","browserApi","cookie","resource","log","timer","nativeApp","ReplaySubject","isWatchBrowserPositionChangesStarted","watchBrowserPositionChanges","useBrowserGeolocation","watchPositionChanges","watchNativePositionChanges","isNative","eventsFromNative","filter","eventName","toUpperCase","NativeEventType","GEO_LOCATION_POSITION","subscribe","parameters","newPosition","Math","floor","isLastPositionEqualToNewPosition","sendToNative","GET_GEO_LOCATION_POSITION","restoreLastPositionFromCookie","debug","clearPositionForGood","onPositionError","mappingDueTime","max","minimumUpdateIntervalMilliseconds","clearTimeout","timeoutId","setTimeout","infoRemote","setLastPosition","warn","isEqual","mappedLocation","publishEvent","apiPosition","opts","TimerService","NativeAppService","providedIn","_GeolocationService","GeolocationBootstrapService","geolocationService","coreGeolocationService","user","trackingService","nativeAppService","onFeatureInit","__async","firstValueFrom","whenReady","watchBrowserPositionOnAppStart","set","trackGeolocationEventAfterLogin","first","switchMap","isAuthenticated","VnGeolocationTracking","events","UserLoginEvent","workflowType","sendToGA","triggerEvent","accountId","nativeMode","put","UserService","TrackingService","_GeolocationBootstrapService","GeolocationDslResolver","getPosition","getValue","Error","getLocation","hasPosition","_GeolocationDslResolver","DEPENDENCIES","GeolocationDslValuesProvider","dslRecorderService","dslCacheService","dslTimeConverter","geolocationDslResolver","invalidate","getProviders","recordable","createRecordable","resolver","createProperty","createPositionProperty","fromTimeToDsl","DateTimeOffset","TimeSpan","ZERO","createLocationProperty","Geolocation","name","deps","DslRecorderService","DslCacheService","DslTimeConverterService","_GeolocationDslValuesProvider","GeolocationContextProvider","LaunchDarklyLazyContextProvider","getLazyContext","_b","_c","_d","_e","_f","timeout","catch","kind","_GeolocationContextProvider","provide","useFactory","LazyClientConfigService","runOnFeatureInit","registerLazyDslOnModuleInit","runLaunchDarklyLazyContextProvider"],"mappings":"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"}