UNPKG

@ng-web-apis/permissions

Version:

A library for comfortable use of Permissions API in Angular applications

1 lines 5.42 kB
{"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;;;;"}