ngx-turnstile
Version:
Angular component for Cloudflare Turnstile
63 lines (62 loc) • 3.87 kB
TypeScript
import { ElementRef, NgZone, EventEmitter, OnDestroy } from '@angular/core';
import { TurnstileOptions } from './interfaces/turnstile-options';
import * as i0 from "@angular/core";
declare global {
interface Window {
onloadTurnstileCallback: () => void;
turnstile: {
render: (idOrContainer: string | HTMLElement, options: TurnstileOptions) => string;
reset: (widgetIdOrContainer: string | HTMLElement) => void;
getResponse: (widgetIdOrContainer: string | HTMLElement) => string | undefined;
remove: (widgetIdOrContainer: string | HTMLElement) => void;
};
}
}
type SupportedVersion = '0';
export declare class NgxTurnstileComponent implements OnDestroy {
private elementRef;
private zone;
private document;
private platformId;
siteKey: string;
action?: string;
cData?: string;
theme?: 'light' | 'dark' | 'auto';
language?: string;
version: SupportedVersion;
tabIndex?: number;
appearance?: 'always' | 'execute' | 'interaction-only';
execution?: 'render' | 'execute';
retry?: 'never' | 'auto';
retryInterval?: number;
refreshExpired?: 'auto' | 'manual' | 'never';
refreshTimeout?: 'auto' | 'manual' | 'never';
size?: 'normal' | 'flexible' | 'compact';
responseField?: boolean;
responseFieldName?: string;
feedbackEnabled?: boolean;
offlabelShowPrivacy?: boolean;
offlabelShowHelp?: boolean;
resolved: EventEmitter<string | null>;
errored: EventEmitter<string | null>;
beforeInteractive: EventEmitter<void>;
afterInteractive: EventEmitter<void>;
unsupported: EventEmitter<void>;
timeout: EventEmitter<void>;
private widgetId;
/** Whether the Cloudflare Turnstile script has finished loading. */
scriptLoaded: import("@angular/core").WritableSignal<boolean>;
/** Whether a widget is currently rendered. Clients can watch this signal. */
widgetLoaded: import("@angular/core").Signal<boolean>;
private onScriptLoad;
constructor(elementRef: ElementRef<HTMLElement>, zone: NgZone, document: Document, platformId: Object);
private _getCloudflareTurnstileUrl;
private loadScript;
createWidget(): void;
reset(): void;
remove(): void;
ngOnDestroy(): void;
static ɵfac: i0.ɵɵFactoryDeclaration<NgxTurnstileComponent, never>;
static ɵcmp: i0.ɵɵComponentDeclaration<NgxTurnstileComponent, "ngx-turnstile", ["ngx-turnstile"], { "siteKey": { "alias": "siteKey"; "required": false; }; "action": { "alias": "action"; "required": false; }; "cData": { "alias": "cData"; "required": false; }; "theme": { "alias": "theme"; "required": false; }; "language": { "alias": "language"; "required": false; }; "version": { "alias": "version"; "required": false; }; "tabIndex": { "alias": "tabIndex"; "required": false; }; "appearance": { "alias": "appearance"; "required": false; }; "execution": { "alias": "execution"; "required": false; }; "retry": { "alias": "retry"; "required": false; }; "retryInterval": { "alias": "retryInterval"; "required": false; }; "refreshExpired": { "alias": "refreshExpired"; "required": false; }; "refreshTimeout": { "alias": "refreshTimeout"; "required": false; }; "size": { "alias": "size"; "required": false; }; "responseField": { "alias": "responseField"; "required": false; }; "responseFieldName": { "alias": "responseFieldName"; "required": false; }; "feedbackEnabled": { "alias": "feedbackEnabled"; "required": false; }; "offlabelShowPrivacy": { "alias": "offlabelShowPrivacy"; "required": false; }; "offlabelShowHelp": { "alias": "offlabelShowHelp"; "required": false; }; }, { "resolved": "resolved"; "errored": "errored"; "beforeInteractive": "beforeInteractive"; "afterInteractive": "afterInteractive"; "unsupported": "unsupported"; "timeout": "timeout"; }, never, never, true, never>;
}
export {};