{"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","import {inject, InjectionToken} from '@angular/core';\n\nimport {WA_PERMISSIONS} from './permissions';\n\nexport const WA_PERMISSIONS_SUPPORT = new InjectionToken<boolean>(\n    '[WA_PERMISSIONS_SUPPORT]',\n    {factory: () => !!inject(WA_PERMISSIONS)},\n);\n","import {isPlatformServer} from '@angular/common';\nimport {inject, Injectable, PLATFORM_ID} from '@angular/core';\nimport {\n    EMPTY,\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({providedIn: 'root'})\nexport class WaPermissionsService {\n    private readonly isServer = isPlatformServer(inject(PLATFORM_ID));\n    private readonly permissions = inject(WA_PERMISSIONS);\n    private readonly permissionsSupported = inject(WA_PERMISSIONS_SUPPORT);\n\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 this.isServer\n            ? EMPTY\n            : 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;;MCDY,sBAAsB,GAAG,IAAI,cAAc,CACpD,0BAA0B,EAC1B,EAAC,OAAO,EAAE,MAAM,CAAC,CAAC,MAAM,CAAC,cAAc,CAAC,EAAC;;MCchC,oBAAoB,CAAA;IACZ,QAAQ,GAAG,gBAAgB,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;AAChD,IAAA,WAAW,GAAG,MAAM,CAAC,cAAc,CAAC;AACpC,IAAA,oBAAoB,GAAG,MAAM,CAAC,sBAAsB,CAAC;AAE/D,IAAA,KAAK,CACR,gBAAuD,EAAA;AAEvD,QAAA,MAAM,UAAU,GACZ,OAAO,gBAAgB,KAAK;AACxB,cAAE,EAAC,IAAI,EAAE,gBAAgB;cACvB,gBAAgB;QAE1B,OAAO,IAAI,CAAC;AACR,cAAE;AACF,cAAE,IAAI,UAAU,CAAkB,CAAC,UAAU,KAAI;AAC3C,gBAAA,IAAI,CAAC,IAAI,CAAC,oBAAoB,EAAE;AAC5B,oBAAA,UAAU,CAAC,KAAK,CAAC,8CAA8C,CAAC;oBAEhE,OAAO,IAAI,YAAY,EAAE;;gBAG7B,OAAO,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,UAAU,CAAC;AACzC,qBAAA,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;qBAEJ,SAAS,CAAC,UAAU,CAAC;AAC9B,aAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,EAAC,UAAU,EAAE,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAC,CAAC,CAAC;;wGAhCtD,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;;;ACnB1B,SAAU,SAAS,CACrB,KAA+C,EAAA;IAE/C,OAAO,KAAK,KAAK,SAAS;AAC9B;AAEM,SAAU,QAAQ,CACpB,KAA+C,EAAA;IAE/C,OAAO,KAAK,KAAK,QAAQ;AAC7B;AAIM,SAAU,QAAQ,CACpB,KAA+C,EAAA;AAE/C,IAAA,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,SAAS;AACpD;;AClBA;;AAEG;;;;"}