{"version":3,"file":"zawasp-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/zawasp-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  PLATFORM_ID,\n} from '@angular/core';\nimport { TurnstileOptions } from './interfaces/turnstile-options';\nimport { DOCUMENT, isPlatformBrowser } from '@angular/common';\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 CALLBACK_NAME = 'onloadTurnstileCallback';\ntype SupportedVersion = '0';\n\n@Component({\n  selector: 'ngx-turnstile',\n  template: ``,\n  exportAs: 'ngx-turnstile',\n})\nexport class NgxTurnstileComponent implements AfterViewInit, OnDestroy {\n  @Input() siteKey!: string;\n  @Input() action?: string;\n  @Input() cData?: string;\n  @Input() theme?: 'light' | 'dark' | 'auto' = 'auto';\n  @Input() version: SupportedVersion = '0';\n  @Input() tabIndex?: number;\n\n  @Output() resolved = 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    @Inject(PLATFORM_ID) private platformId: Object\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  ngAfterViewInit(): void {\n    if (isPlatformBrowser(this.platformId)) {\n      let turnstileOptions: TurnstileOptions = {\n        sitekey: this.siteKey,\n        theme: this.theme,\n        tabindex: this.tabIndex,\n        action: this.action,\n        cData: this.cData,\n        callback: (token: string) => {\n          this.zone.run(() => this.resolved.emit(token));\n        },\n        'expired-callback': () => {\n          this.zone.run(() => this.reset());\n        },\n      };\n\n      const script = this.document.createElement('script');\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      script.src = `${this._getCloudflareTurnstileUrl()}?render=explicit&onload=${CALLBACK_NAME}`;\n      script.async = true;\n      script.defer = true;\n      this.document.head.appendChild(script);\n    }\n  }\n\n  reset() {\n    if (isPlatformBrowser(this.platformId) && this.widgetId) {\n      this.resolved.emit(null);\n      window.turnstile.reset(this.widgetId);\n    }\n  }\n\n  public ngOnDestroy(): void {\n    if (isPlatformBrowser(this.platformId) && this.widgetId) {\n      window.turnstile.remove(this.widgetId);\n    }\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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"}