{"version":3,"file":"sramizli-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/sramizli-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} from '@angular/core';\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      isExpired: (widgetIdOrContainer: string | HTMLElement) => boolean;\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  @Input() appearance?: 'always' | 'execute' | 'interaction-only' = 'always';\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  ) {}\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 ngAfterViewInit(): void {\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      appearance: this.appearance,\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 = 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    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 getResponse(): string | undefined {\n    if (this.widgetId) {\n      return window.turnstile.getResponse(this.widgetId);\n    } else {\n      return undefined;\n    }\n  }\n\n  public isExpired(): boolean {\n    if (this.widgetId) {\n      return window.turnstile.isExpired(this.widgetId);\n    } else {\n      return true;\n    }\n  }\n\n  public ngOnDestroy(): void {\n    if (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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"}