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