moh-common-lib
Version:
A library of Angular components, services, and styles for B.C. Government Ministry of Health (MoH).
155 lines (154 loc) • 4.5 kB
TypeScript
import { ElementRef, SimpleChanges, NgZone, ChangeDetectorRef, AfterViewInit, OnInit, OnChanges, EventEmitter } from '@angular/core';
import { CaptchaDataService } from './captcha-data.service';
import { NgControl, ControlValueAccessor } from '@angular/forms';
/**
* CAPTCHA can display a "required" error automatically when you programmaically
* call `markAllInpusAsTouched()`. (@see AbstractForm). In order to do this,
* you must set: name, ngModel, and required. Otherwise, these fields are
* optional.
*
* @example
* <common-captcha
* [nonce]="application.uuid"
* [apiBaseUrl]="captchaApiBaseUrl"
* (onValidToken)="setToken($event)"
* name='captcha'
* ngModel
* required>
* </common-captcha>
*/
export declare class CaptchaComponent implements AfterViewInit, OnInit, OnChanges, ControlValueAccessor {
private dataService;
private cd;
private ngZone;
controlDir: NgControl;
imageContainer: ElementRef;
audioElement: ElementRef;
apiBaseUrl: string;
nonce: string;
onValidToken: EventEmitter<string>;
successMessage: string;
eagerFetchAudio: string;
language: string;
userPromptMessage: string;
/**
* Http error response for fetching a CAPTCHA image.
*/
errorFetchingImg: any;
/**
* Http error response for verifying user's answer.
*/
errorVerifyAnswer: any;
private validation;
audio: string;
answer: string;
state: CAPTCHA_STATE;
incorrectAnswer: boolean;
fetchingAudioInProgress: boolean;
_onChange: (_: any) => void;
_onTouched: () => void;
constructor(dataService: CaptchaDataService, cd: ChangeDetectorRef, ngZone: NgZone, controlDir: NgControl);
registerOnChange(fn: any): void;
registerOnTouched(fn: any): void;
writeValue(value: any): void;
onBlur(): void;
ngOnInit(): void;
ngAfterViewInit(): void;
ngOnChanges(changes: SimpleChanges): void;
forceRefresh(): void;
publicForceRefresh(): void;
answerChanged(event: any): void;
private handleVerify;
/**
* Case where HTTP 200 response code is received by the payload is incorrect or corrupt.
* The occurance of this type of case should be rare.
* @param payload
*/
private isValidPayload;
retryFetchCaptcha(): void;
playAudio(): void;
private fetchAudio;
getNewCaptcha(errorCase: any): void;
private createErrorTextLine;
translatedMessages: {
playAudio: {
en: string;
zh: string;
fr: string;
pa: string;
};
tryAnotherImg: {
en: string;
zh: string;
fr: string;
pa: string;
};
userPromptMessage: {
en: string;
zh: string;
fr: string;
pa: string;
};
incorrectAnswer: {
en: string;
zh: string;
fr: string;
pa: string;
};
successMessage: {
en: string;
zh: string;
fr: string;
pa: string;
};
correct: {
en: string;
zh: string;
fr: string;
pa: string;
};
loadingImage: {
en: string;
zh: string;
fr: string;
pa: string;
};
browserNotSupportAudio: {
en: string;
zh: string;
fr: string;
pa: string;
};
verifyingAnswer: {
en: string;
zh: string;
fr: string;
pa: string;
};
errorRetrievingImg: {
en: string;
zh: string;
fr: string;
pa: string;
};
errorVerifyingAnswer: {
en: string;
zh: string;
fr: string;
pa: string;
};
};
}
/**
* 7 mutually exclusive states, the program can only be in one of these state
* at any given point..
*/
declare enum CAPTCHA_STATE {
FETCHING_CAPTCHA_IMG = 1,
SUCCESS_FETCH_IMG = 2,
ERROR_FETCH_IMG = 3,
VERIFYING_ANSWER = 4,
SUCCESS_VERIFY_ANSWER_CORRECT = 5,
ERROR_VERIFY = 6
}
export {};