UNPKG

ngx-turnstile

Version:

Angular component for Cloudflare Turnstile

1 lines 13.8 kB
{"version":3,"file":"ngx-turnstile.mjs","sources":["../../../projects/ngx-turnstile/src/lib/ngx-turnstile.service.ts","../../../projects/ngx-turnstile/src/lib/ngx-turnstile.component.ts","../../../projects/ngx-turnstile/src/lib/ngx-turnstile.module.ts","../../../projects/ngx-turnstile/src/lib/ngx-turnstile-value-accessor.directive.ts","../../../projects/ngx-turnstile/src/lib/ngx-turnstile-forms.module.ts","../../../projects/ngx-turnstile/src/public-api.ts","../../../projects/ngx-turnstile/src/ngx-turnstile.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class NgxTurnstileService {\n constructor() {}\n}\n","import {\n Component,\n AfterViewInit,\n ElementRef,\n Input,\n NgZone,\n Output,\n EventEmitter,\n OnDestroy,\n Inject,\n afterNextRender,\n} from '@angular/core';\nimport { DOCUMENT } from '@angular/common';\nimport { TurnstileOptions } from './interfaces/turnstile-options';\n\ndeclare global {\n interface Window {\n onloadTurnstileCallback: () => void;\n turnstile: {\n render: (\n idOrContainer: string | HTMLElement,\n options: TurnstileOptions,\n ) => string;\n reset: (widgetIdOrContainer: string | HTMLElement) => void;\n getResponse: (\n widgetIdOrContainer: string | HTMLElement,\n ) => string | undefined;\n remove: (widgetIdOrContainer: string | HTMLElement) => void;\n };\n }\n}\n\nconst SCRIPT_ID = 'ngx-turnstile';\nconst CALLBACK_NAME = 'onloadTurnstileCallback';\ntype SupportedVersion = '0';\n\n@Component({\n selector: 'ngx-turnstile',\n template: ``,\n exportAs: 'ngx-turnstile',\n})\nexport class NgxTurnstileComponent implements OnDestroy {\n @Input() siteKey!: string;\n @Input() action?: string;\n @Input() cData?: string;\n @Input() theme?: 'light' | 'dark' | 'auto' = 'auto';\n @Input() language?: string = 'auto';\n @Input() version: SupportedVersion = '0';\n @Input() tabIndex?: number;\n @Input() appearance?: 'always' | 'execute' | 'interaction-only' = 'always';\n @Input() retry?: 'never' | 'auto' = 'auto';\n @Input() size?: 'normal' | 'flexible' | 'compact' = 'normal';\n\n @Output() resolved = new EventEmitter<string | null>();\n @Output() errored = new EventEmitter<string | null>();\n\n private widgetId!: string;\n\n constructor(\n private elementRef: ElementRef<HTMLElement>,\n private zone: NgZone,\n @Inject(DOCUMENT) private document: Document,\n ) {\n afterNextRender(() => this.createWidget());\n }\n\n private _getCloudflareTurnstileUrl(): string {\n if (this.version === '0') {\n return 'https://challenges.cloudflare.com/turnstile/v0/api.js';\n }\n\n throw 'Version not defined in ngx-turnstile component.';\n }\n\n public createWidget(): void {\n let turnstileOptions: TurnstileOptions = {\n sitekey: this.siteKey,\n theme: this.theme,\n language: this.language,\n tabindex: this.tabIndex,\n action: this.action,\n cData: this.cData,\n appearance: this.appearance,\n retry: this.retry,\n size: this.size,\n callback: (token: string) => {\n this.zone.run(() => this.resolved.emit(token));\n },\n 'error-callback': (errorCode: string): boolean => {\n this.zone.run(() => this.errored.emit(errorCode));\n // Returning false causes Turnstile to log error code as a console warning.\n return false;\n },\n 'expired-callback': () => {\n this.zone.run(() => this.reset());\n },\n };\n\n window[CALLBACK_NAME] = () => {\n if (!this.elementRef?.nativeElement) {\n return;\n }\n\n this.widgetId = window.turnstile.render(\n this.elementRef.nativeElement,\n turnstileOptions,\n );\n };\n\n if (this.scriptLoaded()) {\n window[CALLBACK_NAME]();\n return;\n }\n\n const script = this.document.createElement('script');\n script.src = `${this._getCloudflareTurnstileUrl()}?render=explicit&onload=${CALLBACK_NAME}`;\n script.id = SCRIPT_ID;\n script.async = true;\n script.defer = true;\n this.document.head.appendChild(script);\n }\n\n public reset(): void {\n if (this.widgetId) {\n this.resolved.emit(null);\n window.turnstile.reset(this.widgetId);\n }\n }\n\n public ngOnDestroy(): void {\n if (this.widgetId) {\n window.turnstile.remove(this.widgetId);\n }\n }\n\n public scriptLoaded(): boolean {\n return !!this.document.getElementById(SCRIPT_ID);\n }\n}\n","import { NgModule } from '@angular/core';\nimport { NgxTurnstileComponent } from './ngx-turnstile.component';\n\n@NgModule({\n declarations: [NgxTurnstileComponent],\n imports: [],\n exports: [NgxTurnstileComponent],\n})\nexport class NgxTurnstileModule {}\n","import { Directive, forwardRef, OnInit } from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { NgxTurnstileComponent } from './ngx-turnstile.component';\n\n@Directive({\n selector:\n 'ngx-turnstile[formControl], ngx-turnstile[formControlName], ngx-turnstile[ngModel]',\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => NgxTurnstileValueAccessorDirective),\n multi: true,\n },\n ],\n})\nexport class NgxTurnstileValueAccessorDirective\n implements ControlValueAccessor, OnInit\n{\n private onChange!: (value: string) => void;\n private onTouched!: () => void;\n private resolved: boolean = false;\n\n constructor(private turnstileComp: NgxTurnstileComponent) {}\n\n ngOnInit(): void {\n this.turnstileComp.resolved.subscribe((token: string) => {\n this.resolved = !!token;\n\n if (this.onChange) {\n this.onChange(token);\n }\n\n if (this.onTouched) {\n this.onTouched();\n }\n });\n }\n\n // Prevent form control from setting token value\n writeValue(value: any): void {\n // reset turnstile component if form control sets the value after already receiving a valid token\n if (this.resolved) {\n this.resolved = false;\n this.turnstileComp.reset();\n }\n }\n registerOnChange(fn: any): void {\n this.onChange = fn;\n }\n registerOnTouched(fn: any): void {\n this.onTouched = fn;\n }\n}\n","import { NgModule } from '@angular/core';\nimport { NgxTurnstileValueAccessorDirective } from './ngx-turnstile-value-accessor.directive';\nimport { NgxTurnstileModule } from './ngx-turnstile.module';\n\n@NgModule({\n declarations: [NgxTurnstileValueAccessorDirective],\n imports: [NgxTurnstileModule],\n exports: [NgxTurnstileValueAccessorDirective],\n})\nexport class NgxTurnstileFormsModule {}\n","/*\n * Public API Surface of ngx-turnstile\n */\n\nexport * from './lib/ngx-turnstile.service';\nexport * from './lib/ngx-turnstile.component';\nexport * from './lib/ngx-turnstile.module';\nexport * from './lib/ngx-turnstile-value-accessor.directive';\nexport * from './lib/ngx-turnstile-forms.module';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1.NgxTurnstileComponent"],"mappings":"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"}