Big News: Socket raises $60M Series C at a $1B valuation to secure software supply chains for AI-driven development.Announcement
Sign In

@ng-web-apis/geolocation

Package Overview
Dependencies
Maintainers
4
Versions
51
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@ng-web-apis/geolocation - npm Package Compare versions

Comparing version
4.14.0
to
5.0.0
+11
-27
fesm2022/ng-web-apis-geolocation.mjs

@@ -9,26 +9,12 @@ import * as i0 from '@angular/core';

});
/**
* @deprecated: drop in v5.0, use {@link WA_GEOLOCATION}
*/
const GEOLOCATION = WA_GEOLOCATION;
const WA_POSITION_OPTIONS = new InjectionToken('[WA_POSITION_OPTIONS]', { factory: () => ({}) });
/**
* @deprecated: drop in v5.0, use {@link WA_POSITION_OPTIONS}
*/
const POSITION_OPTIONS = WA_POSITION_OPTIONS;
const WA_GEOLOCATION_SUPPORT = new InjectionToken('[WA_GEOLOCATION_SUPPORT]', {
factory: () => !!inject(GEOLOCATION),
});
/**
* @deprecated: drop in v5.0, use {@link WA_GEOLOCATION_SUPPORT}
*/
const GEOLOCATION_SUPPORT = WA_GEOLOCATION_SUPPORT;
const WA_GEOLOCATION_SUPPORT = new InjectionToken('[WA_GEOLOCATION_SUPPORT]', { factory: () => !!inject(WA_GEOLOCATION) });
class GeolocationService extends Observable {
class WaGeolocationService extends Observable {
constructor() {
const geolocationRef = inject(GEOLOCATION);
const geolocationSupported = inject(GEOLOCATION_SUPPORT);
const positionOptions = inject(POSITION_OPTIONS);
const geolocationRef = inject(WA_GEOLOCATION);
const geolocationSupported = inject(WA_GEOLOCATION_SUPPORT);
const positionOptions = inject(WA_POSITION_OPTIONS);
let watchPositionId = 0;

@@ -43,11 +29,9 @@ super((subscriber) => {

}
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: GeolocationService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: GeolocationService, providedIn: 'root' });
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: WaGeolocationService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: WaGeolocationService, providedIn: 'root' });
}
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: GeolocationService, decorators: [{
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: WaGeolocationService, decorators: [{
type: Injectable,
args: [{
providedIn: 'root',
}]
}], ctorParameters: function () { return []; } });
args: [{ providedIn: 'root' }]
}], ctorParameters: () => [] });

@@ -58,3 +42,3 @@ /**

export { GEOLOCATION, GEOLOCATION_SUPPORT, GeolocationService, POSITION_OPTIONS, WA_GEOLOCATION, WA_GEOLOCATION_SUPPORT, WA_POSITION_OPTIONS };
export { WA_GEOLOCATION, WA_GEOLOCATION_SUPPORT, WA_POSITION_OPTIONS, WaGeolocationService };
//# sourceMappingURL=ng-web-apis-geolocation.mjs.map

@@ -1,1 +0,1 @@

{"version":3,"file":"ng-web-apis-geolocation.mjs","sources":["../../../libs/geolocation/src/tokens/geolocation.ts","../../../libs/geolocation/src/tokens/geolocation-options.ts","../../../libs/geolocation/src/tokens/geolocation-support.ts","../../../libs/geolocation/src/services/geolocation.service.ts","../../../libs/geolocation/src/ng-web-apis-geolocation.ts"],"sourcesContent":["import {inject, InjectionToken} from '@angular/core';\nimport {WA_NAVIGATOR} from '@ng-web-apis/common';\n\nexport const WA_GEOLOCATION = new InjectionToken<Geolocation>('[WA_GEOLOCATION]', {\n factory: () => inject(WA_NAVIGATOR).geolocation,\n});\n\n/**\n * @deprecated: drop in v5.0, use {@link WA_GEOLOCATION}\n */\nexport const GEOLOCATION = WA_GEOLOCATION;\n","import {InjectionToken} from '@angular/core';\n\nexport const WA_POSITION_OPTIONS = new InjectionToken<PositionOptions>(\n '[WA_POSITION_OPTIONS]',\n {factory: () => ({})},\n);\n\n/**\n * @deprecated: drop in v5.0, use {@link WA_POSITION_OPTIONS}\n */\nexport const POSITION_OPTIONS = WA_POSITION_OPTIONS;\n","import {inject, InjectionToken} from '@angular/core';\n\nimport {GEOLOCATION} from './geolocation';\n\nexport const WA_GEOLOCATION_SUPPORT = new InjectionToken<boolean>(\n '[WA_GEOLOCATION_SUPPORT]',\n {\n factory: () => !!inject(GEOLOCATION),\n },\n);\n\n/**\n * @deprecated: drop in v5.0, use {@link WA_GEOLOCATION_SUPPORT}\n */\nexport const GEOLOCATION_SUPPORT = WA_GEOLOCATION_SUPPORT;\n","import {inject, Injectable} from '@angular/core';\nimport {finalize, Observable, shareReplay} from 'rxjs';\n\nimport {GEOLOCATION} from '../tokens/geolocation';\nimport {POSITION_OPTIONS} from '../tokens/geolocation-options';\nimport {GEOLOCATION_SUPPORT} from '../tokens/geolocation-support';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class GeolocationService extends Observable<GeolocationPosition> {\n constructor() {\n const geolocationRef = inject(GEOLOCATION);\n const geolocationSupported = inject(GEOLOCATION_SUPPORT);\n const positionOptions = inject(POSITION_OPTIONS);\n\n let watchPositionId = 0;\n\n super((subscriber) => {\n if (!geolocationSupported) {\n subscriber.error('Geolocation is not supported in your browser');\n }\n\n watchPositionId = geolocationRef.watchPosition(\n (position) => subscriber.next(position),\n (positionError) => subscriber.error(positionError),\n positionOptions,\n );\n });\n\n return this.pipe(\n finalize(() => geolocationRef.clearWatch(watchPositionId)),\n shareReplay({bufferSize: 1, refCount: true}),\n ) as GeolocationService;\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;MAGa,cAAc,GAAG,IAAI,cAAc,CAAc,kBAAkB,EAAE;IAC9E,OAAO,EAAE,MAAM,MAAM,CAAC,YAAY,CAAC,CAAC,WAAW;AAClD,CAAA,EAAE;AAEH;;AAEG;AACI,MAAM,WAAW,GAAG;;MCRd,mBAAmB,GAAG,IAAI,cAAc,CACjD,uBAAuB,EACvB,EAAC,OAAO,EAAE,OAAO,EAAE,CAAC,EAAC,EACvB;AAEF;;AAEG;AACI,MAAM,gBAAgB,GAAG;;MCNnB,sBAAsB,GAAG,IAAI,cAAc,CACpD,0BAA0B,EAC1B;IACI,OAAO,EAAE,MAAM,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC;AACvC,CAAA,EACH;AAEF;;AAEG;AACI,MAAM,mBAAmB,GAAG;;ACPnC,MAGa,kBAAmB,SAAQ,UAA+B,CAAA;AACnE,IAAA,WAAA,GAAA;AACI,QAAA,MAAM,cAAc,GAAG,MAAM,CAAC,WAAW,CAAC,CAAC;AAC3C,QAAA,MAAM,oBAAoB,GAAG,MAAM,CAAC,mBAAmB,CAAC,CAAC;AACzD,QAAA,MAAM,eAAe,GAAG,MAAM,CAAC,gBAAgB,CAAC,CAAC;QAEjD,IAAI,eAAe,GAAG,CAAC,CAAC;AAExB,QAAA,KAAK,CAAC,CAAC,UAAU,KAAI;YACjB,IAAI,CAAC,oBAAoB,EAAE;AACvB,gBAAA,UAAU,CAAC,KAAK,CAAC,8CAA8C,CAAC,CAAC;AACpE,aAAA;AAED,YAAA,eAAe,GAAG,cAAc,CAAC,aAAa,CAC1C,CAAC,QAAQ,KAAK,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,EACvC,CAAC,aAAa,KAAK,UAAU,CAAC,KAAK,CAAC,aAAa,CAAC,EAClD,eAAe,CAClB,CAAC;AACN,SAAC,CAAC,CAAC;AAEH,QAAA,OAAO,IAAI,CAAC,IAAI,CACZ,QAAQ,CAAC,MAAM,cAAc,CAAC,UAAU,CAAC,eAAe,CAAC,CAAC,EAC1D,WAAW,CAAC,EAAC,UAAU,EAAE,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAC,CAAC,CACzB,CAAC;KAC3B;wGAxBQ,kBAAkB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAAlB,IAAA,OAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,kBAAkB,cAFf,MAAM,EAAA,CAAA,CAAA;;4FAET,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAH9B,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,UAAU,EAAE,MAAM;AACrB,iBAAA,CAAA;;;ACTD;;AAEG;;;;"}
{"version":3,"file":"ng-web-apis-geolocation.mjs","sources":["../../../libs/geolocation/src/tokens/geolocation.ts","../../../libs/geolocation/src/tokens/geolocation-options.ts","../../../libs/geolocation/src/tokens/geolocation-support.ts","../../../libs/geolocation/src/services/geolocation.service.ts","../../../libs/geolocation/src/ng-web-apis-geolocation.ts"],"sourcesContent":["import {inject, InjectionToken} from '@angular/core';\nimport {WA_NAVIGATOR} from '@ng-web-apis/common';\n\nexport const WA_GEOLOCATION = new InjectionToken<Geolocation>('[WA_GEOLOCATION]', {\n factory: () => inject(WA_NAVIGATOR).geolocation,\n});\n","import {InjectionToken} from '@angular/core';\n\nexport const WA_POSITION_OPTIONS = new InjectionToken<PositionOptions>(\n '[WA_POSITION_OPTIONS]',\n {factory: () => ({})},\n);\n","import {inject, InjectionToken} from '@angular/core';\n\nimport {WA_GEOLOCATION} from './geolocation';\n\nexport const WA_GEOLOCATION_SUPPORT = new InjectionToken<boolean>(\n '[WA_GEOLOCATION_SUPPORT]',\n {factory: () => !!inject(WA_GEOLOCATION)},\n);\n","import {inject, Injectable} from '@angular/core';\nimport {finalize, Observable, shareReplay} from 'rxjs';\n\nimport {WA_GEOLOCATION} from '../tokens/geolocation';\nimport {WA_POSITION_OPTIONS} from '../tokens/geolocation-options';\nimport {WA_GEOLOCATION_SUPPORT} from '../tokens/geolocation-support';\n\n@Injectable({providedIn: 'root'})\nexport class WaGeolocationService extends Observable<GeolocationPosition> {\n constructor() {\n const geolocationRef = inject(WA_GEOLOCATION);\n const geolocationSupported = inject(WA_GEOLOCATION_SUPPORT);\n const positionOptions = inject(WA_POSITION_OPTIONS);\n\n let watchPositionId = 0;\n\n super((subscriber) => {\n if (!geolocationSupported) {\n subscriber.error('Geolocation is not supported in your browser');\n }\n\n watchPositionId = geolocationRef.watchPosition(\n (position) => subscriber.next(position),\n (positionError) => subscriber.error(positionError),\n positionOptions,\n );\n });\n\n return this.pipe(\n finalize(() => geolocationRef.clearWatch(watchPositionId)),\n shareReplay({bufferSize: 1, refCount: true}),\n ) as WaGeolocationService;\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;MAGa,cAAc,GAAG,IAAI,cAAc,CAAc,kBAAkB,EAAE;IAC9E,OAAO,EAAE,MAAM,MAAM,CAAC,YAAY,CAAC,CAAC,WAAW;AAClD,CAAA;;MCHY,mBAAmB,GAAG,IAAI,cAAc,CACjD,uBAAuB,EACvB,EAAC,OAAO,EAAE,OAAO,EAAE,CAAC,EAAC;;MCAZ,sBAAsB,GAAG,IAAI,cAAc,CACpD,0BAA0B,EAC1B,EAAC,OAAO,EAAE,MAAM,CAAC,CAAC,MAAM,CAAC,cAAc,CAAC,EAAC;;ACEvC,MAAO,oBAAqB,SAAQ,UAA+B,CAAA;AACrE,IAAA,WAAA,GAAA;AACI,QAAA,MAAM,cAAc,GAAG,MAAM,CAAC,cAAc,CAAC;AAC7C,QAAA,MAAM,oBAAoB,GAAG,MAAM,CAAC,sBAAsB,CAAC;AAC3D,QAAA,MAAM,eAAe,GAAG,MAAM,CAAC,mBAAmB,CAAC;QAEnD,IAAI,eAAe,GAAG,CAAC;AAEvB,QAAA,KAAK,CAAC,CAAC,UAAU,KAAI;YACjB,IAAI,CAAC,oBAAoB,EAAE;AACvB,gBAAA,UAAU,CAAC,KAAK,CAAC,8CAA8C,CAAC;;AAGpE,YAAA,eAAe,GAAG,cAAc,CAAC,aAAa,CAC1C,CAAC,QAAQ,KAAK,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,EACvC,CAAC,aAAa,KAAK,UAAU,CAAC,KAAK,CAAC,aAAa,CAAC,EAClD,eAAe,CAClB;AACL,SAAC,CAAC;AAEF,QAAA,OAAO,IAAI,CAAC,IAAI,CACZ,QAAQ,CAAC,MAAM,cAAc,CAAC,UAAU,CAAC,eAAe,CAAC,CAAC,EAC1D,WAAW,CAAC,EAAC,UAAU,EAAE,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAC,CAAC,CACvB;;wGAvBpB,oBAAoB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA;AAApB,IAAA,OAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,oBAAoB,cADR,MAAM,EAAA,CAAA;;4FAClB,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBADhC,UAAU;mBAAC,EAAC,UAAU,EAAE,MAAM,EAAC;;;ACPhC;;AAEG;;;;"}
{
"name": "@ng-web-apis/geolocation",
"version": "4.14.0",
"version": "5.0.0",
"description": "This is a library for declarative use of Geolocation API with Angular",

@@ -15,3 +15,6 @@ "keywords": [

"bugs": "https://github.com/taiga-family/ng-web-apis/issues",
"repository": "https://github.com/taiga-family/ng-web-apis",
"repository": {
"type": "git",
"url": "https://github.com/taiga-family/ng-web-apis"
},
"license": "Apache-2.0",

@@ -23,4 +26,10 @@ "author": {

"contributors": [
"Alex Inkin <alexander@inkin.ru>",
"Roman Sedov <79601794011@ya.ru>"
{
"name": "Roman Sedov",
"email": "79601794011@ya.ru"
},
{
"name": "Alexander Inkin",
"email": "alexander@inkin.ru"
}
],

@@ -31,5 +40,5 @@ "dependencies": {

"peerDependencies": {
"@angular/common": ">=16.0.0",
"@angular/core": ">=16.0.0",
"@ng-web-apis/common": ">=4.12.0"
"@angular/common": ">=19.0.0",
"@angular/core": ">=19.0.0",
"@ng-web-apis/common": ">=4.12.1"
},

@@ -47,4 +56,2 @@ "publishConfig": {

"types": "./index.d.ts",
"esm2022": "./esm2022/ng-web-apis-geolocation.mjs",
"esm": "./esm2022/ng-web-apis-geolocation.mjs",
"default": "./fesm2022/ng-web-apis-geolocation.mjs"

@@ -51,0 +58,0 @@ }

+20
-25

@@ -26,5 +26,5 @@ # ![ng-web-apis logo](https://raw.githubusercontent.com/taiga-family/ng-web-apis/main/libs/geolocation/logo.svg) Geolocation API for Angular

### GeolocationService
### WaGeolocationService
`GeolocationService` is an `Observable`, that emits
`WaGeolocationService` is an `Observable`, that emits
[Position](https://developer.mozilla.org/en-US/docs/Web/API/GeolocationPosition) object

@@ -35,6 +35,5 @@

```ts
import {GeolocationService} from '@ng-web-apis/geolocation';
// ...
constructor(private readonly geolocation$: GeolocationService) {}
export class Example {
private readonly geolocation$ = inject(WaGeolocationService);
}
```

@@ -45,7 +44,7 @@

```ts
geolocation$.subscribe((position) => doSomethingWithPosition(position));
this.geolocation$.subscribe((position) => doSomethingWithPosition(position));
```
If you need to get position just once and stop observing user location, you can subscribe to `geolocation$` and use
`take(1)` RxJs operator:
`take(1)` RxJS operator:

@@ -59,5 +58,3 @@ ```ts

```html
<div *ngIf="geolocation$ | async as position">
<span>{{position.coords.latitude}}</span>
</div>
@if (geolocation$ | async; as position) { {{position.coords.latitude}} }
```

@@ -72,3 +69,3 @@

- `GEOLOCATION_SUPPORT` returns `true` if user's browser supports
- `WA_GEOLOCATION_SUPPORT` returns `true` if user's browser supports
[Geolocation API](https://developer.mozilla.org/en-US/docs/Web/API/Geolocation_API)

@@ -78,3 +75,3 @@

export class Example {
constructor(@Inject(GEOLOCATION_SUPPORT) private readonly geolocationSupport: boolean) {}
private readonly geolocationSupport = inject(WA_GEOLOCATION_SUPPORT);
}

@@ -84,20 +81,18 @@ ```

- You can provide [PositionOptions](https://developer.mozilla.org/en-US/docs/Web/API/PositionOptions) through
`POSITION_OPTIONS` token with optional properties named `enableHighAccuracy`, `timeout` and `maximumAge`. It uses `{}`
by default.
`WA_POSITION_OPTIONS` token with optional properties named `enableHighAccuracy`, `timeout` and `maximumAge`. It uses
`{}` by default.
```ts
@NgModule({
...
bootstrapApplication(App, {
providers: [
{
provide: POSITION_OPTIONS,
useValue: {enableHighAccuracy: true, timeout: 3000, maximumAge: 1000},
},
],
})
export class AppModule {}
{
provide: WA_POSITION_OPTIONS,
useValue: {enableHighAccuracy: true, timeout: 3000, maximumAge: 1000},
},
],
});
```
- [navigator.geolocation](https://developer.mozilla.org/ru/docs/Web/API/Navigator/geolocation) can be injected through
`GEOLOCATION` token.
`WA_GEOLOCATION` token.

@@ -104,0 +99,0 @@ ## Browser support

import { Observable } from 'rxjs';
import * as i0 from "@angular/core";
export declare class GeolocationService extends Observable<GeolocationPosition> {
export declare class WaGeolocationService extends Observable<GeolocationPosition> {
constructor();
static ɵfac: i0.ɵɵFactoryDeclaration<GeolocationService, never>;
static ɵprov: i0.ɵɵInjectableDeclaration<GeolocationService>;
static ɵfac: i0.ɵɵFactoryDeclaration<WaGeolocationService, never>;
static ɵprov: i0.ɵɵInjectableDeclaration<WaGeolocationService>;
}
import { InjectionToken } from '@angular/core';
export declare const WA_POSITION_OPTIONS: InjectionToken<PositionOptions>;
/**
* @deprecated: drop in v5.0, use {@link WA_POSITION_OPTIONS}
*/
export declare const POSITION_OPTIONS: InjectionToken<PositionOptions>;
import { InjectionToken } from '@angular/core';
export declare const WA_GEOLOCATION_SUPPORT: InjectionToken<boolean>;
/**
* @deprecated: drop in v5.0, use {@link WA_GEOLOCATION_SUPPORT}
*/
export declare const GEOLOCATION_SUPPORT: InjectionToken<boolean>;
import { InjectionToken } from '@angular/core';
export declare const WA_GEOLOCATION: InjectionToken<Geolocation>;
/**
* @deprecated: drop in v5.0, use {@link WA_GEOLOCATION}
*/
export declare const GEOLOCATION: InjectionToken<Geolocation>;
export * from './services/geolocation.service';
export * from './tokens/geolocation';
export * from './tokens/geolocation-options';
export * from './tokens/geolocation-support';
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9saWJzL2dlb2xvY2F0aW9uL3NyYy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLGdDQUFnQyxDQUFDO0FBQy9DLGNBQWMsc0JBQXNCLENBQUM7QUFDckMsY0FBYyw4QkFBOEIsQ0FBQztBQUM3QyxjQUFjLDhCQUE4QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9zZXJ2aWNlcy9nZW9sb2NhdGlvbi5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vdG9rZW5zL2dlb2xvY2F0aW9uJztcbmV4cG9ydCAqIGZyb20gJy4vdG9rZW5zL2dlb2xvY2F0aW9uLW9wdGlvbnMnO1xuZXhwb3J0ICogZnJvbSAnLi90b2tlbnMvZ2VvbG9jYXRpb24tc3VwcG9ydCc7XG4iXX0=
/**
* Generated bundle index. Do not edit.
*/
export * from './index';
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmctd2ViLWFwaXMtZ2VvbG9jYXRpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9saWJzL2dlb2xvY2F0aW9uL3NyYy9uZy13ZWItYXBpcy1nZW9sb2NhdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsU0FBUyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL2luZGV4JztcbiJdfQ==
import { inject, Injectable } from '@angular/core';
import { finalize, Observable, shareReplay } from 'rxjs';
import { GEOLOCATION } from '../tokens/geolocation';
import { POSITION_OPTIONS } from '../tokens/geolocation-options';
import { GEOLOCATION_SUPPORT } from '../tokens/geolocation-support';
import * as i0 from "@angular/core";
class GeolocationService extends Observable {
constructor() {
const geolocationRef = inject(GEOLOCATION);
const geolocationSupported = inject(GEOLOCATION_SUPPORT);
const positionOptions = inject(POSITION_OPTIONS);
let watchPositionId = 0;
super((subscriber) => {
if (!geolocationSupported) {
subscriber.error('Geolocation is not supported in your browser');
}
watchPositionId = geolocationRef.watchPosition((position) => subscriber.next(position), (positionError) => subscriber.error(positionError), positionOptions);
});
return this.pipe(finalize(() => geolocationRef.clearWatch(watchPositionId)), shareReplay({ bufferSize: 1, refCount: true }));
}
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: GeolocationService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: GeolocationService, providedIn: 'root' });
}
export { GeolocationService };
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: GeolocationService, decorators: [{
type: Injectable,
args: [{
providedIn: 'root',
}]
}], ctorParameters: function () { return []; } });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VvbG9jYXRpb24uc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2xpYnMvZ2VvbG9jYXRpb24vc3JjL3NlcnZpY2VzL2dlb2xvY2F0aW9uLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLE1BQU0sRUFBRSxVQUFVLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDakQsT0FBTyxFQUFDLFFBQVEsRUFBRSxVQUFVLEVBQUUsV0FBVyxFQUFDLE1BQU0sTUFBTSxDQUFDO0FBRXZELE9BQU8sRUFBQyxXQUFXLEVBQUMsTUFBTSx1QkFBdUIsQ0FBQztBQUNsRCxPQUFPLEVBQUMsZ0JBQWdCLEVBQUMsTUFBTSwrQkFBK0IsQ0FBQztBQUMvRCxPQUFPLEVBQUMsbUJBQW1CLEVBQUMsTUFBTSwrQkFBK0IsQ0FBQzs7QUFFbEUsTUFHYSxrQkFBbUIsU0FBUSxVQUErQjtJQUNuRTtRQUNJLE1BQU0sY0FBYyxHQUFHLE1BQU0sQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUMzQyxNQUFNLG9CQUFvQixHQUFHLE1BQU0sQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO1FBQ3pELE1BQU0sZUFBZSxHQUFHLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1FBRWpELElBQUksZUFBZSxHQUFHLENBQUMsQ0FBQztRQUV4QixLQUFLLENBQUMsQ0FBQyxVQUFVLEVBQUUsRUFBRTtZQUNqQixJQUFJLENBQUMsb0JBQW9CLEVBQUU7Z0JBQ3ZCLFVBQVUsQ0FBQyxLQUFLLENBQUMsOENBQThDLENBQUMsQ0FBQzthQUNwRTtZQUVELGVBQWUsR0FBRyxjQUFjLENBQUMsYUFBYSxDQUMxQyxDQUFDLFFBQVEsRUFBRSxFQUFFLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsRUFDdkMsQ0FBQyxhQUFhLEVBQUUsRUFBRSxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsYUFBYSxDQUFDLEVBQ2xELGVBQWUsQ0FDbEIsQ0FBQztRQUNOLENBQUMsQ0FBQyxDQUFDO1FBRUgsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUNaLFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxjQUFjLENBQUMsVUFBVSxDQUFDLGVBQWUsQ0FBQyxDQUFDLEVBQzFELFdBQVcsQ0FBQyxFQUFDLFVBQVUsRUFBRSxDQUFDLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBQyxDQUFDLENBQ3pCLENBQUM7SUFDNUIsQ0FBQzt3R0F4QlEsa0JBQWtCOzRHQUFsQixrQkFBa0IsY0FGZixNQUFNOztTQUVULGtCQUFrQjs0RkFBbEIsa0JBQWtCO2tCQUg5QixVQUFVO21CQUFDO29CQUNSLFVBQVUsRUFBRSxNQUFNO2lCQUNyQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7aW5qZWN0LCBJbmplY3RhYmxlfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7ZmluYWxpemUsIE9ic2VydmFibGUsIHNoYXJlUmVwbGF5fSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHtHRU9MT0NBVElPTn0gZnJvbSAnLi4vdG9rZW5zL2dlb2xvY2F0aW9uJztcbmltcG9ydCB7UE9TSVRJT05fT1BUSU9OU30gZnJvbSAnLi4vdG9rZW5zL2dlb2xvY2F0aW9uLW9wdGlvbnMnO1xuaW1wb3J0IHtHRU9MT0NBVElPTl9TVVBQT1JUfSBmcm9tICcuLi90b2tlbnMvZ2VvbG9jYXRpb24tc3VwcG9ydCc7XG5cbkBJbmplY3RhYmxlKHtcbiAgICBwcm92aWRlZEluOiAncm9vdCcsXG59KVxuZXhwb3J0IGNsYXNzIEdlb2xvY2F0aW9uU2VydmljZSBleHRlbmRzIE9ic2VydmFibGU8R2VvbG9jYXRpb25Qb3NpdGlvbj4ge1xuICAgIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICBjb25zdCBnZW9sb2NhdGlvblJlZiA9IGluamVjdChHRU9MT0NBVElPTik7XG4gICAgICAgIGNvbnN0IGdlb2xvY2F0aW9uU3VwcG9ydGVkID0gaW5qZWN0KEdFT0xPQ0FUSU9OX1NVUFBPUlQpO1xuICAgICAgICBjb25zdCBwb3NpdGlvbk9wdGlvbnMgPSBpbmplY3QoUE9TSVRJT05fT1BUSU9OUyk7XG5cbiAgICAgICAgbGV0IHdhdGNoUG9zaXRpb25JZCA9IDA7XG5cbiAgICAgICAgc3VwZXIoKHN1YnNjcmliZXIpID0+IHtcbiAgICAgICAgICAgIGlmICghZ2VvbG9jYXRpb25TdXBwb3J0ZWQpIHtcbiAgICAgICAgICAgICAgICBzdWJzY3JpYmVyLmVycm9yKCdHZW9sb2NhdGlvbiBpcyBub3Qgc3VwcG9ydGVkIGluIHlvdXIgYnJvd3NlcicpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICB3YXRjaFBvc2l0aW9uSWQgPSBnZW9sb2NhdGlvblJlZi53YXRjaFBvc2l0aW9uKFxuICAgICAgICAgICAgICAgIChwb3NpdGlvbikgPT4gc3Vic2NyaWJlci5uZXh0KHBvc2l0aW9uKSxcbiAgICAgICAgICAgICAgICAocG9zaXRpb25FcnJvcikgPT4gc3Vic2NyaWJlci5lcnJvcihwb3NpdGlvbkVycm9yKSxcbiAgICAgICAgICAgICAgICBwb3NpdGlvbk9wdGlvbnMsXG4gICAgICAgICAgICApO1xuICAgICAgICB9KTtcblxuICAgICAgICByZXR1cm4gdGhpcy5waXBlKFxuICAgICAgICAgICAgZmluYWxpemUoKCkgPT4gZ2VvbG9jYXRpb25SZWYuY2xlYXJXYXRjaCh3YXRjaFBvc2l0aW9uSWQpKSxcbiAgICAgICAgICAgIHNoYXJlUmVwbGF5KHtidWZmZXJTaXplOiAxLCByZWZDb3VudDogdHJ1ZX0pLFxuICAgICAgICApIGFzIEdlb2xvY2F0aW9uU2VydmljZTtcbiAgICB9XG59XG4iXX0=
import { InjectionToken } from '@angular/core';
export const WA_POSITION_OPTIONS = new InjectionToken('[WA_POSITION_OPTIONS]', { factory: () => ({}) });
/**
* @deprecated: drop in v5.0, use {@link WA_POSITION_OPTIONS}
*/
export const POSITION_OPTIONS = WA_POSITION_OPTIONS;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VvbG9jYXRpb24tb3B0aW9ucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2xpYnMvZ2VvbG9jYXRpb24vc3JjL3Rva2Vucy9nZW9sb2NhdGlvbi1vcHRpb25zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxjQUFjLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFFN0MsTUFBTSxDQUFDLE1BQU0sbUJBQW1CLEdBQUcsSUFBSSxjQUFjLENBQ2pELHVCQUF1QixFQUN2QixFQUFDLE9BQU8sRUFBRSxHQUFHLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFDLENBQ3hCLENBQUM7QUFFRjs7R0FFRztBQUNILE1BQU0sQ0FBQyxNQUFNLGdCQUFnQixHQUFHLG1CQUFtQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtJbmplY3Rpb25Ub2tlbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmV4cG9ydCBjb25zdCBXQV9QT1NJVElPTl9PUFRJT05TID0gbmV3IEluamVjdGlvblRva2VuPFBvc2l0aW9uT3B0aW9ucz4oXG4gICAgJ1tXQV9QT1NJVElPTl9PUFRJT05TXScsXG4gICAge2ZhY3Rvcnk6ICgpID0+ICh7fSl9LFxuKTtcblxuLyoqXG4gKiBAZGVwcmVjYXRlZDogZHJvcCBpbiB2NS4wLCB1c2Uge0BsaW5rIFdBX1BPU0lUSU9OX09QVElPTlN9XG4gKi9cbmV4cG9ydCBjb25zdCBQT1NJVElPTl9PUFRJT05TID0gV0FfUE9TSVRJT05fT1BUSU9OUztcbiJdfQ==
import { inject, InjectionToken } from '@angular/core';
import { GEOLOCATION } from './geolocation';
export const WA_GEOLOCATION_SUPPORT = new InjectionToken('[WA_GEOLOCATION_SUPPORT]', {
factory: () => !!inject(GEOLOCATION),
});
/**
* @deprecated: drop in v5.0, use {@link WA_GEOLOCATION_SUPPORT}
*/
export const GEOLOCATION_SUPPORT = WA_GEOLOCATION_SUPPORT;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VvbG9jYXRpb24tc3VwcG9ydC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2xpYnMvZ2VvbG9jYXRpb24vc3JjL3Rva2Vucy9nZW9sb2NhdGlvbi1zdXBwb3J0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxNQUFNLEVBQUUsY0FBYyxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBRXJELE9BQU8sRUFBQyxXQUFXLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFFMUMsTUFBTSxDQUFDLE1BQU0sc0JBQXNCLEdBQUcsSUFBSSxjQUFjLENBQ3BELDBCQUEwQixFQUMxQjtJQUNJLE9BQU8sRUFBRSxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FBQztDQUN2QyxDQUNKLENBQUM7QUFFRjs7R0FFRztBQUNILE1BQU0sQ0FBQyxNQUFNLG1CQUFtQixHQUFHLHNCQUFzQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtpbmplY3QsIEluamVjdGlvblRva2VufSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHtHRU9MT0NBVElPTn0gZnJvbSAnLi9nZW9sb2NhdGlvbic7XG5cbmV4cG9ydCBjb25zdCBXQV9HRU9MT0NBVElPTl9TVVBQT1JUID0gbmV3IEluamVjdGlvblRva2VuPGJvb2xlYW4+KFxuICAgICdbV0FfR0VPTE9DQVRJT05fU1VQUE9SVF0nLFxuICAgIHtcbiAgICAgICAgZmFjdG9yeTogKCkgPT4gISFpbmplY3QoR0VPTE9DQVRJT04pLFxuICAgIH0sXG4pO1xuXG4vKipcbiAqIEBkZXByZWNhdGVkOiBkcm9wIGluIHY1LjAsIHVzZSB7QGxpbmsgV0FfR0VPTE9DQVRJT05fU1VQUE9SVH1cbiAqL1xuZXhwb3J0IGNvbnN0IEdFT0xPQ0FUSU9OX1NVUFBPUlQgPSBXQV9HRU9MT0NBVElPTl9TVVBQT1JUO1xuIl19
import { inject, InjectionToken } from '@angular/core';
import { WA_NAVIGATOR } from '@ng-web-apis/common';
export const WA_GEOLOCATION = new InjectionToken('[WA_GEOLOCATION]', {
factory: () => inject(WA_NAVIGATOR).geolocation,
});
/**
* @deprecated: drop in v5.0, use {@link WA_GEOLOCATION}
*/
export const GEOLOCATION = WA_GEOLOCATION;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VvbG9jYXRpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9saWJzL2dlb2xvY2F0aW9uL3NyYy90b2tlbnMvZ2VvbG9jYXRpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLE1BQU0sRUFBRSxjQUFjLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDckQsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLHFCQUFxQixDQUFDO0FBRWpELE1BQU0sQ0FBQyxNQUFNLGNBQWMsR0FBRyxJQUFJLGNBQWMsQ0FBYyxrQkFBa0IsRUFBRTtJQUM5RSxPQUFPLEVBQUUsR0FBRyxFQUFFLENBQUMsTUFBTSxDQUFDLFlBQVksQ0FBQyxDQUFDLFdBQVc7Q0FDbEQsQ0FBQyxDQUFDO0FBRUg7O0dBRUc7QUFDSCxNQUFNLENBQUMsTUFBTSxXQUFXLEdBQUcsY0FBYyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtpbmplY3QsIEluamVjdGlvblRva2VufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7V0FfTkFWSUdBVE9SfSBmcm9tICdAbmctd2ViLWFwaXMvY29tbW9uJztcblxuZXhwb3J0IGNvbnN0IFdBX0dFT0xPQ0FUSU9OID0gbmV3IEluamVjdGlvblRva2VuPEdlb2xvY2F0aW9uPignW1dBX0dFT0xPQ0FUSU9OXScsIHtcbiAgICBmYWN0b3J5OiAoKSA9PiBpbmplY3QoV0FfTkFWSUdBVE9SKS5nZW9sb2NhdGlvbixcbn0pO1xuXG4vKipcbiAqIEBkZXByZWNhdGVkOiBkcm9wIGluIHY1LjAsIHVzZSB7QGxpbmsgV0FfR0VPTE9DQVRJT059XG4gKi9cbmV4cG9ydCBjb25zdCBHRU9MT0NBVElPTiA9IFdBX0dFT0xPQ0FUSU9OO1xuIl19