biometry-angular-components
Version:
Angular UI component library for capturing biometric data
59 lines (58 loc) • 2.38 kB
TypeScript
import { ChangeDetectorRef, ElementRef, EventEmitter, OnDestroy, OnInit, AfterViewInit } from '@angular/core';
import { PermissionsService } from '../../services/permissions.service';
import { RecorderService } from '../../services/recorder.service';
import * as i0 from "@angular/core";
type FaceState = 'preparation' | 'countdown' | 'recording' | 'processing' | 'result';
export declare class FaceRecorderComponent implements OnInit, AfterViewInit, OnDestroy {
private permissions;
private recorder;
private cdr;
videoRef: ElementRef<HTMLVideoElement>;
countdownSeconds: number;
recordingSeconds: number;
/** Prefer vertical 9:16; request 720x1280 from camera */
videoWidth: number;
videoHeight: number;
capture: EventEmitter<{
file: File;
phrase: string;
}>;
state: FaceState;
digits: number[];
maskedDigits: string[];
countdownLeft: number;
recordLeft: number;
private countdownTimer;
private recordTimer;
private stream?;
videoBlob: Blob | null;
videoUrl: string | null;
isConfirming: boolean;
permissionsGranted: boolean | null;
private mimeType;
constructor(permissions: PermissionsService, recorder: RecorderService, cdr: ChangeDetectorRef);
ngOnInit(): void;
ngAfterViewInit(): void;
ngOnDestroy(): void;
/** === Flow control === */
requestPermissions(): Promise<void>;
private attachStream;
startFlow(): void;
private startCountdown;
private startRecording;
finishRecording(): Promise<void>;
cancelRecording(): void;
handleDecline(): void;
handleConfirm(): void;
/** === Helpers === */
private generateDigits;
private clearCountdown;
private clearRecordTimer;
private clearAllTimers;
private cleanupPlayback;
private stopTracks;
get displayDigits(): string[];
static ɵfac: i0.ɵɵFactoryDeclaration<FaceRecorderComponent, never>;
static ɵcmp: i0.ɵɵComponentDeclaration<FaceRecorderComponent, "bio-face-recorder", never, { "countdownSeconds": { "alias": "countdownSeconds"; "required": false; }; "recordingSeconds": { "alias": "recordingSeconds"; "required": false; }; "videoWidth": { "alias": "videoWidth"; "required": false; }; "videoHeight": { "alias": "videoHeight"; "required": false; }; }, { "capture": "capture"; }, never, never, true, never>;
}
export {};