{"version":3,"file":"ng-web-apis-permissions.mjs","sources":["../../../libs/permissions/src/tokens/permissions.ts","../../../libs/permissions/src/tokens/permissions-support.ts","../../../libs/permissions/src/services/permissions.service.ts","../../../libs/permissions/src/utils/permissions-predicates.ts","../../../libs/permissions/src/ng-web-apis-permissions.ts"],"sourcesContent":["import {inject, InjectionToken} from '@angular/core';\nimport {WA_NAVIGATOR} from '@ng-web-apis/common';\n\nexport const WA_PERMISSIONS = new InjectionToken<Permissions>('[WA_PERMISSIONS]', {\n    factory: () => inject(WA_NAVIGATOR).permissions,\n});\n\n/**\n * @deprecated: drop in v5.0, use {@link WA_PERMISSIONS}\n */\nexport const PERMISSIONS = WA_PERMISSIONS;\n","import {inject, InjectionToken} from '@angular/core';\n\nimport {PERMISSIONS} from './permissions';\n\nexport const WA_PERMISSIONS_SUPPORT = new InjectionToken<boolean>(\n    '[WA_PERMISSIONS_SUPPORT]',\n    {\n        factory: () => !!inject(PERMISSIONS),\n    },\n);\n\n/**\n * @deprecated: drop in v5.0, use {@link WA_PERMISSIONS_SUPPORT}\n */\nexport const PERMISSIONS_SUPPORT = WA_PERMISSIONS_SUPPORT;\n","import {inject, Injectable} from '@angular/core';\nimport {\n    from,\n    fromEvent,\n    map,\n    Observable,\n    shareReplay,\n    startWith,\n    Subscription,\n    switchMap,\n} from 'rxjs';\n\nimport {WA_PERMISSIONS} from '../tokens/permissions';\nimport {WA_PERMISSIONS_SUPPORT} from '../tokens/permissions-support';\n\nexport type PermissionsQueryArgs = Parameters<typeof Permissions.prototype.query>[0];\n\n@Injectable({\n    providedIn: 'root',\n})\nexport class PermissionsService {\n    private readonly permissions = inject(WA_PERMISSIONS);\n    private readonly permissionsSupported = inject(WA_PERMISSIONS_SUPPORT);\n\n    public state(name: PermissionName): Observable<PermissionState>;\n    public state(descriptor: PermissionsQueryArgs): Observable<PermissionState>;\n    public state(\n        nameOrDescriptor: PermissionName | PermissionsQueryArgs,\n    ): Observable<PermissionState> {\n        const descriptor: PermissionDescriptor =\n            typeof nameOrDescriptor === 'string'\n                ? {name: nameOrDescriptor}\n                : nameOrDescriptor;\n\n        return new Observable<PermissionState>((subscriber) => {\n            if (!this.permissionsSupported) {\n                subscriber.error('Permissions is not supported in your browser');\n\n                return new Subscription();\n            }\n\n            return from(this.permissions.query(descriptor))\n                .pipe(\n                    switchMap((status) =>\n                        fromEvent(status, 'change').pipe(\n                            startWith(null),\n                            map(() => status.state),\n                        ),\n                    ),\n                )\n                .subscribe(subscriber);\n        }).pipe(shareReplay({bufferSize: 1, refCount: true}));\n    }\n}\n","export function isGranted(\n    state: NotificationPermission | PermissionState,\n): state is 'granted' {\n    return state === 'granted';\n}\n\nexport function isDenied(\n    state: NotificationPermission | PermissionState,\n): state is 'denied' {\n    return state === 'denied';\n}\n\nexport function isPrompt(s: NotificationPermission): s is 'default';\nexport function isPrompt(s: PermissionState): s is 'prompt';\nexport function isPrompt(\n    state: NotificationPermission | PermissionState,\n): state is 'default' | 'prompt' {\n    return state === 'prompt' || state === 'default';\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;;MCNd,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;;ACGnC,MAGa,kBAAkB,CAAA;AACV,IAAA,WAAW,GAAG,MAAM,CAAC,cAAc,CAAC,CAAC;AACrC,IAAA,oBAAoB,GAAG,MAAM,CAAC,sBAAsB,CAAC,CAAC;AAIhE,IAAA,KAAK,CACR,gBAAuD,EAAA;AAEvD,QAAA,MAAM,UAAU,GACZ,OAAO,gBAAgB,KAAK,QAAQ;AAChC,cAAE,EAAC,IAAI,EAAE,gBAAgB,EAAC;cACxB,gBAAgB,CAAC;AAE3B,QAAA,OAAO,IAAI,UAAU,CAAkB,CAAC,UAAU,KAAI;AAClD,YAAA,IAAI,CAAC,IAAI,CAAC,oBAAoB,EAAE;AAC5B,gBAAA,UAAU,CAAC,KAAK,CAAC,8CAA8C,CAAC,CAAC;gBAEjE,OAAO,IAAI,YAAY,EAAE,CAAC;AAC7B,aAAA;YAED,OAAO,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;AAC1C,iBAAA,IAAI,CACD,SAAS,CAAC,CAAC,MAAM,KACb,SAAS,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC,IAAI,CAC5B,SAAS,CAAC,IAAI,CAAC,EACf,GAAG,CAAC,MAAM,MAAM,CAAC,KAAK,CAAC,CAC1B,CACJ,CACJ;iBACA,SAAS,CAAC,UAAU,CAAC,CAAC;AAC/B,SAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,EAAC,UAAU,EAAE,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAC,CAAC,CAAC,CAAC;KACzD;wGAhCQ,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;;;ACnBK,SAAU,SAAS,CACrB,KAA+C,EAAA;IAE/C,OAAO,KAAK,KAAK,SAAS,CAAC;AAC/B,CAAC;AAEK,SAAU,QAAQ,CACpB,KAA+C,EAAA;IAE/C,OAAO,KAAK,KAAK,QAAQ,CAAC;AAC9B,CAAC;AAIK,SAAU,QAAQ,CACpB,KAA+C,EAAA;AAE/C,IAAA,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,SAAS,CAAC;AACrD;;AClBA;;AAEG;;;;"}