{"version":3,"file":"geolocation-jgsynk1w.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 GeolocationPosition,\n NativeAppService,\n OnFeatureInit,\n TrackingService,\n UserLoginEvent,\n UserService,\n} from '@frontend/vanilla/core';\nimport { delay, expand, filter, first, firstValueFrom, map, of, switchMap, take } 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, 3 times (to guarantee received), for CIP to trigger geo targetted offers.\n private trackGeolocationEventAfterLogin() {\n this.geolocationService.positionChanges\n .pipe(\n first(),\n switchMap((geolocation, index) => {\n if (this.user.isAuthenticated) {\n return of({ geolocation, index });\n } else {\n this.cookieService.remove(CookieName.VnGeolocationTracking);\n return this.user.events.pipe(\n filter((e) => e instanceof UserLoginEvent),\n map(() => ({ geolocation, index })),\n );\n }\n }),\n expand(({ geolocation, index }) => of({ geolocation, index: index + 1 }).pipe(delay(500))),\n take(3),\n )\n .subscribe(({ geolocation, index }) => {\n const cookie = this.cookieService.get(CookieName.VnGeolocationTracking);\n if (!cookie && this.user.workflowType == 0) {\n this.sendToGA(geolocation);\n }\n if (index == 2) {\n this.cookieService.put(CookieName.VnGeolocationTracking, '1');\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}\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","index","isAuthenticated","VnGeolocationTracking","events","UserLoginEvent","expand","delay","take","workflowType","sendToGA","put","triggerEvent","accountId","nativeMode","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","k","_GeolocationContextProvider","provide","useFactory","LazyClientConfigService","runOnFeatureInit","registerLazyDslOnModuleInit","runLaunchDarklyLazyContextProvider"],"mappings":"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"}