UNPKG

biometry-angular-components

Version:

Angular UI component library for capturing biometric data

38 lines 4.47 kB
import { Injectable } from '@angular/core'; import * as i0 from "@angular/core"; export class PermissionsService { async requestCamera(options) { const { width = 640, height = 480, audio = false } = options; try { const stream = await navigator.mediaDevices.getUserMedia({ video: { width, height }, audio }); return { stream, granted: true }; } catch { return { granted: false }; } } async requestMicrophone() { try { const stream = await navigator.mediaDevices.getUserMedia({ audio: true, video: false }); return { stream, granted: true }; } catch { return { granted: false }; } } stopStream(stream) { if (!stream) return; stream.getTracks().forEach(track => track.stop()); } static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: PermissionsService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: PermissionsService, providedIn: 'root' }); } i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: PermissionsService, decorators: [{ type: Injectable, args: [{ providedIn: 'root' }] }] }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGVybWlzc2lvbnMuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9saWIvc2VydmljZXMvcGVybWlzc2lvbnMuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQUczQyxNQUFNLE9BQU8sa0JBQWtCO0lBQzdCLEtBQUssQ0FBQyxhQUFhLENBQUMsT0FJbkI7UUFDQyxNQUFNLEVBQ0osS0FBSyxHQUFHLEdBQUcsRUFDWCxNQUFNLEdBQUcsR0FBRyxFQUNaLEtBQUssR0FBRyxLQUFLLEVBQ2QsR0FBRyxPQUFPLENBQUM7UUFFWixJQUFJLENBQUM7WUFDSCxNQUFNLE1BQU0sR0FBRyxNQUFNLFNBQVMsQ0FBQyxZQUFZLENBQUMsWUFBWSxDQUFDO2dCQUN2RCxLQUFLLEVBQUUsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFO2dCQUN4QixLQUFLO2FBQ04sQ0FBQyxDQUFDO1lBQ0gsT0FBTyxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLENBQUM7UUFDbkMsQ0FBQztRQUFDLE1BQU0sQ0FBQztZQUNQLE9BQU8sRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLENBQUM7UUFDNUIsQ0FBQztJQUNILENBQUM7SUFHRCxLQUFLLENBQUMsaUJBQWlCO1FBQ3JCLElBQUksQ0FBQztZQUNILE1BQU0sTUFBTSxHQUFHLE1BQU0sU0FBUyxDQUFDLFlBQVksQ0FBQyxZQUFZLENBQUMsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDO1lBQ3hGLE9BQU8sRUFBRSxNQUFNLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxDQUFDO1FBQ25DLENBQUM7UUFBQyxNQUFNLENBQUM7WUFDUCxPQUFPLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxDQUFDO1FBQzVCLENBQUM7SUFDSCxDQUFDO0lBRUQsVUFBVSxDQUFDLE1BQW9CO1FBQzdCLElBQUksQ0FBQyxNQUFNO1lBQUUsT0FBTztRQUNwQixNQUFNLENBQUMsU0FBUyxFQUFFLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUM7SUFDcEQsQ0FBQzt3R0FwQ1Usa0JBQWtCOzRHQUFsQixrQkFBa0IsY0FETCxNQUFNOzs0RkFDbkIsa0JBQWtCO2tCQUQ5QixVQUFVO21CQUFDLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuQEluamVjdGFibGUoeyBwcm92aWRlZEluOiAncm9vdCcgfSlcbmV4cG9ydCBjbGFzcyBQZXJtaXNzaW9uc1NlcnZpY2Uge1xuICBhc3luYyByZXF1ZXN0Q2FtZXJhKG9wdGlvbnM6IHtcbiAgICB3aWR0aD86IG51bWJlcjtcbiAgICBoZWlnaHQ/OiBudW1iZXI7XG4gICAgYXVkaW8/OiBib29sZWFuO1xuICB9KTogUHJvbWlzZTx7IHN0cmVhbT86IE1lZGlhU3RyZWFtOyBncmFudGVkOiBib29sZWFuIH0+IHtcbiAgICBjb25zdCB7XG4gICAgICB3aWR0aCA9IDY0MCxcbiAgICAgIGhlaWdodCA9IDQ4MCxcbiAgICAgIGF1ZGlvID0gZmFsc2VcbiAgICB9ID0gb3B0aW9ucztcblxuICAgIHRyeSB7XG4gICAgICBjb25zdCBzdHJlYW0gPSBhd2FpdCBuYXZpZ2F0b3IubWVkaWFEZXZpY2VzLmdldFVzZXJNZWRpYSh7XG4gICAgICAgIHZpZGVvOiB7IHdpZHRoLCBoZWlnaHQgfSxcbiAgICAgICAgYXVkaW9cbiAgICAgIH0pO1xuICAgICAgcmV0dXJuIHsgc3RyZWFtLCBncmFudGVkOiB0cnVlIH07XG4gICAgfSBjYXRjaCB7XG4gICAgICByZXR1cm4geyBncmFudGVkOiBmYWxzZSB9O1xuICAgIH1cbiAgfVxuXG5cbiAgYXN5bmMgcmVxdWVzdE1pY3JvcGhvbmUoKTogUHJvbWlzZTx7IHN0cmVhbT86IE1lZGlhU3RyZWFtOyBncmFudGVkOiBib29sZWFuIH0+IHtcbiAgICB0cnkge1xuICAgICAgY29uc3Qgc3RyZWFtID0gYXdhaXQgbmF2aWdhdG9yLm1lZGlhRGV2aWNlcy5nZXRVc2VyTWVkaWEoeyBhdWRpbzogdHJ1ZSwgdmlkZW86IGZhbHNlIH0pO1xuICAgICAgcmV0dXJuIHsgc3RyZWFtLCBncmFudGVkOiB0cnVlIH07XG4gICAgfSBjYXRjaCB7XG4gICAgICByZXR1cm4geyBncmFudGVkOiBmYWxzZSB9O1xuICAgIH1cbiAgfVxuXG4gIHN0b3BTdHJlYW0oc3RyZWFtPzogTWVkaWFTdHJlYW0pIHtcbiAgICBpZiAoIXN0cmVhbSkgcmV0dXJuO1xuICAgIHN0cmVhbS5nZXRUcmFja3MoKS5mb3JFYWNoKHRyYWNrID0+IHRyYWNrLnN0b3AoKSk7XG4gIH1cbn1cbiJdfQ==