{"version":3,"file":"herdwatch-ng-recaptcha.mjs","sources":["../../../projects/ng-recaptcha/src/lib/tokens.ts","../../../projects/ng-recaptcha/src/lib/load-script.ts","../../../projects/ng-recaptcha/src/lib/recaptcha-loader.service.ts","../../../projects/ng-recaptcha/src/lib/recaptcha.component.ts","../../../projects/ng-recaptcha/src/lib/recaptcha-common.module.ts","../../../projects/ng-recaptcha/src/lib/recaptcha.module.ts","../../../projects/ng-recaptcha/src/lib/recaptcha-v3.service.ts","../../../projects/ng-recaptcha/src/lib/recaptcha-v3.module.ts","../../../projects/ng-recaptcha/src/lib/recaptcha-value-accessor.directive.ts","../../../projects/ng-recaptcha/src/lib/recaptcha-forms.module.ts","../../../projects/ng-recaptcha/src/herdwatch-ng-recaptcha.ts"],"sourcesContent":["import { InjectionToken } from \"@angular/core\";\n\nimport { RecaptchaSettings } from \"./recaptcha-settings\";\n\n/** @deprecated Use `LOADER_OPTIONS` instead. See `RecaptchaLoaderOptions.onBeforeLoad` */\nexport const RECAPTCHA_LANGUAGE = new InjectionToken<string>(\"recaptcha-language\");\n/** @deprecated Use `LOADER_OPTIONS` instead. See `RecaptchaLoaderOptions.onBeforeLoad` */\nexport const RECAPTCHA_BASE_URL = new InjectionToken<string>(\"recaptcha-base-url\");\n/** @deprecated Use `LOADER_OPTIONS` instead. See `RecaptchaLoaderOptions.onBeforeLoad` */\nexport const RECAPTCHA_NONCE = new InjectionToken<string>(\"recaptcha-nonce-tag\");\nexport const RECAPTCHA_SETTINGS = new InjectionToken<RecaptchaSettings>(\"recaptcha-settings\");\nexport const RECAPTCHA_V3_SITE_KEY = new InjectionToken<string>(\"recaptcha-v3-site-key\");\n\n/**\n * Specifies the options for loading the reCAPTCHA script tag.\n */\nexport type RecaptchaLoaderOptions = {\n  /**\n   * Invoked before the `<script>` tag is appended to the DOM.\n   * Use this function as an opportunity to set `nonce`, as well as modify the URL of the tag.\n   *\n   * Use the `url.searchParams` to set additional query string attributes (including reCAPTCHA language),\n   * or use an entirely different base URL altogether.\n   *\n   * The URL that you provide will then properly set the `\"render\"` and `\"onload\"` attributes which are required for proper `ng-recaptcha` wire-up.\n   *\n   * @param url the current URL that was composed. Either modify it in-place, or return a completely new URL.\n   * @returns the final URL that is going to be used as the `src` for the `<script>` tag, along with (optionally) a nonce.\n   *\n   * @example\n   * Provide nonce:\n   * ```ts\n   * {\n   *    provide: RECAPTCHA_LOADER_OPTIONS,\n   *    useValue: {\n   *      onBeforeLoad(url) {\n   *        return {\n   *          url,\n   *          nonce: \"YOUR_NONCE\"\n   *        };\n   *      }\n   *    }\n   * }\n   * ```\n   *\n   * Set the reCAPTCHA language:\n   * ```ts\n   * {\n   *    provide: RECAPTCHA_LOADER_OPTIONS,\n   *    useValue: {\n   *      onBeforeLoad(url) {\n   *        url.searchParams.set(\"hl\", \"en-GB\")\n   *\n   *        return { url };\n   *      }\n   *    }\n   * }\n   * ```\n   *\n   * Use a different base URL for loading reCAPTCHA\n   * ```ts\n   * {\n   *    provide: RECAPTCHA_LOADER_OPTIONS,\n   *    useValue: {\n   *      onBeforeLoad(_url) {\n   *        const chinaCompatibleUrl = new URL(\"https://www.recaptcha.net/recaptcha/api.js\");\n   *        // optionally, set the locale:\n   *        // chinaCompatibleUrl.searchParams.set(\"hl\", \"zh-CN\");\n   *\n   *        return {\n   *          url: chinaCompatibleUrl\n   *        };\n   *      }\n   *    }\n   * }\n   * ```\n   */\n  onBeforeLoad?(url: URL): { url: URL; nonce?: string };\n\n  /**\n   * Allows you to change the `grecaptcha` that the `ng-recaptcha` will be relying on.\n   * This method is useful when you need to use `grecaptcha.enterprise` instead of the base `grecaptcha`\n   *\n   * @param recaptcha the value of `window.grecaptcha` upon script load.\n   * @returns the {ReCaptchaV2.ReCaptcha} instance that the `ng-recaptcha` lib will use.\n   *\n   * @example\n   * Using the Enterprise version of `grecaptcha`:\n   *\n   * ```ts\n   * {\n   *    provide: RECAPTCHA_LOADER_OPTIONS,\n   *    useValue: {\n   *      onBeforeLoad() {\n   *        const recaptchaEnterpriseUrl = new URL(\"https://www.google.com/recaptcha/enterprise.js\");\n   *        // optionally, if you're using the reCAPTCHA session-tokens, set the `&waf=session` param,\n   *        // see https://cloud.google.com/recaptcha-enterprise/docs/implement-waf-ca#session-token\n   *        // recaptchaEnterpriseUrl.searchParams.set(\"waf\", \"session\");\n   *\n   *        return {\n   *          url: recaptchaEnterpriseUrl,\n   *        }\n   *      },\n   *      onLoaded(recaptcha) {\n   *        return recaptcha.enterprise;\n   *      }\n   *    }\n   * }\n   * ```\n   */\n  onLoaded?(recaptcha: ReCaptchaV2.ReCaptcha): ReCaptchaV2.ReCaptcha;\n};\n\n/**\n * See the documentation for `RecaptchaLoaderOptions`.\n */\nexport const RECAPTCHA_LOADER_OPTIONS = new InjectionToken<RecaptchaLoaderOptions>(\"recaptcha-loader-options\");\n","import { RecaptchaLoaderOptions } from \"./tokens\";\n\ndeclare global {\n  interface Window {\n    ng2recaptchaloaded?(): void;\n  }\n}\n\nexport type RenderMode = \"explicit\" | { key: string };\n\nfunction loadScript(\n  renderMode: RenderMode,\n  onBeforeLoad: (url: URL) => { url: URL; nonce?: string },\n  onLoaded: (grecaptcha: ReCaptchaV2.ReCaptcha) => void,\n  { url, lang, nonce }: { url?: string; lang?: string; nonce?: string } = {},\n): void {\n  window.ng2recaptchaloaded = () => {\n    onLoaded(grecaptcha);\n  };\n  const script = document.createElement(\"script\");\n  script.innerHTML = \"\";\n\n  const { url: baseUrl, nonce: onBeforeLoadNonce } = onBeforeLoad(\n    new URL(url || \"https://www.google.com/recaptcha/api.js\"),\n  );\n  baseUrl.searchParams.set(\"render\", renderMode === \"explicit\" ? renderMode : renderMode.key);\n  baseUrl.searchParams.set(\"onload\", \"ng2recaptchaloaded\");\n  baseUrl.searchParams.set(\"trustedtypes\", \"true\");\n  if (lang) {\n    baseUrl.searchParams.set(\"hl\", lang);\n  }\n\n  script.src = baseUrl.href;\n\n  const nonceValue = onBeforeLoadNonce || nonce;\n\n  if (nonceValue) {\n    script.setAttribute(\"nonce\", nonceValue);\n  }\n  script.async = true;\n  script.defer = true;\n  document.head.appendChild(script);\n}\n\nfunction newLoadScript({\n  v3SiteKey,\n  onBeforeLoad,\n  // eslint-disable-next-line @typescript-eslint/unbound-method\n  onLoaded,\n}: { v3SiteKey: string | undefined; onLoaded(recaptcha: ReCaptchaV2.ReCaptcha): void } & Pick<\n  Required<RecaptchaLoaderOptions>,\n  \"onBeforeLoad\"\n>) {\n  const renderMode: RenderMode = v3SiteKey ? { key: v3SiteKey } : \"explicit\";\n\n  loader.loadScript(renderMode, onBeforeLoad, onLoaded);\n}\n\nexport const loader = { loadScript, newLoadScript };\n","import { isPlatformBrowser } from \"@angular/common\";\nimport { Inject, Injectable, Optional, PLATFORM_ID } from \"@angular/core\";\nimport { BehaviorSubject, Observable, of } from \"rxjs\";\nimport { filter } from \"rxjs/operators\";\n\nimport { loader } from \"./load-script\";\nimport {\n  RECAPTCHA_LOADER_OPTIONS,\n  RECAPTCHA_BASE_URL,\n  RECAPTCHA_LANGUAGE,\n  RECAPTCHA_NONCE,\n  RECAPTCHA_V3_SITE_KEY,\n  RecaptchaLoaderOptions,\n} from \"./tokens\";\n\nfunction toNonNullObservable<T>(subject: BehaviorSubject<T | null>): Observable<T> {\n  return subject.asObservable().pipe(filter<T>((value) => value !== null));\n}\n\n@Injectable()\nexport class RecaptchaLoaderService {\n  /**\n   * @internal\n   * @nocollapse\n   */\n  private static ready: BehaviorSubject<ReCaptchaV2.ReCaptcha | null> | null = null;\n\n  public ready: Observable<ReCaptchaV2.ReCaptcha>;\n\n  /** @internal */\n  private language?: string;\n  /** @internal */\n  private baseUrl?: string;\n  /** @internal */\n  private nonce?: string;\n  /** @internal */\n  private v3SiteKey?: string;\n  /** @internal */\n  private options?: RecaptchaLoaderOptions;\n\n  constructor(\n    @Inject(PLATFORM_ID) private readonly platformId: object,\n    // eslint-disable-next-line deprecation/deprecation\n    @Optional() @Inject(RECAPTCHA_LANGUAGE) language?: string,\n    // eslint-disable-next-line deprecation/deprecation\n    @Optional() @Inject(RECAPTCHA_BASE_URL) baseUrl?: string,\n    // eslint-disable-next-line deprecation/deprecation\n    @Optional() @Inject(RECAPTCHA_NONCE) nonce?: string,\n    @Optional() @Inject(RECAPTCHA_V3_SITE_KEY) v3SiteKey?: string,\n    @Optional() @Inject(RECAPTCHA_LOADER_OPTIONS) options?: RecaptchaLoaderOptions,\n  ) {\n    this.language = language;\n    this.baseUrl = baseUrl;\n    this.nonce = nonce;\n    this.v3SiteKey = v3SiteKey;\n    this.options = options;\n    const subject = this.init();\n    this.ready = subject ? toNonNullObservable(subject) : of();\n  }\n\n  /** @internal */\n  private init(): BehaviorSubject<ReCaptchaV2.ReCaptcha | null> | undefined {\n    if (RecaptchaLoaderService.ready) {\n      return RecaptchaLoaderService.ready;\n    }\n\n    if (!isPlatformBrowser(this.platformId)) {\n      return undefined;\n    }\n\n    const subject = new BehaviorSubject<ReCaptchaV2.ReCaptcha | null>(null);\n    RecaptchaLoaderService.ready = subject;\n\n    loader.newLoadScript({\n      v3SiteKey: this.v3SiteKey,\n      onBeforeLoad: (url) => {\n        if (this.options?.onBeforeLoad) {\n          return this.options.onBeforeLoad(url);\n        }\n\n        const newUrl = new URL(this.baseUrl ?? url);\n\n        if (this.language) {\n          newUrl.searchParams.set(\"hl\", this.language);\n        }\n\n        return {\n          url: newUrl,\n          nonce: this.nonce,\n        };\n      },\n      onLoaded: (recaptcha) => {\n        let value = recaptcha;\n        if (this.options?.onLoaded) {\n          value = this.options.onLoaded(recaptcha);\n        }\n\n        subject.next(value);\n      },\n    });\n\n    return subject;\n  }\n}\n","import {\n  AfterViewInit,\n  Component,\n  ElementRef,\n  EventEmitter,\n  HostBinding,\n  Inject,\n  Input,\n  NgZone,\n  OnDestroy,\n  Optional,\n  Output,\n} from \"@angular/core\";\nimport { Subscription } from \"rxjs\";\n\nimport { RecaptchaLoaderService } from \"./recaptcha-loader.service\";\nimport { RecaptchaSettings } from \"./recaptcha-settings\";\nimport { RECAPTCHA_SETTINGS } from \"./tokens\";\n\nlet nextId = 0;\n\nexport type NeverUndefined<T> = T extends undefined ? never : T;\n\nexport type RecaptchaErrorParameters = Parameters<NeverUndefined<ReCaptchaV2.Parameters[\"error-callback\"]>>;\n\n@Component({\n  exportAs: \"reCaptcha\",\n  selector: \"re-captcha\",\n  template: ``,\n})\nexport class RecaptchaComponent implements AfterViewInit, OnDestroy {\n  @Input()\n  @HostBinding(\"attr.id\")\n  public id = `ngrecaptcha-${nextId++}`;\n\n  @Input() public siteKey?: string;\n  @Input() public theme?: ReCaptchaV2.Theme;\n  @Input() public type?: ReCaptchaV2.Type;\n  @Input() public size?: ReCaptchaV2.Size;\n  @Input() public tabIndex?: number;\n  @Input() public badge?: ReCaptchaV2.Badge;\n  @Input() public errorMode: \"handled\" | \"default\" = \"default\";\n\n  @Output() public resolved = new EventEmitter<string | null>();\n  /**\n   * @deprecated `(error) output will be removed in the next major version. Use (errored) instead\n   */\n  // eslint-disable-next-line @angular-eslint/no-output-native\n  @Output() public error = new EventEmitter<RecaptchaErrorParameters>();\n  @Output() public errored = new EventEmitter<RecaptchaErrorParameters>();\n\n  /** @internal */\n  private subscription: Subscription;\n  /** @internal */\n  private widget: number;\n  /** @internal */\n  private grecaptcha: ReCaptchaV2.ReCaptcha;\n  /** @internal */\n  private executeRequested: boolean;\n\n  constructor(\n    private elementRef: ElementRef<HTMLElement>,\n    private loader: RecaptchaLoaderService,\n    private zone: NgZone,\n    @Optional() @Inject(RECAPTCHA_SETTINGS) settings?: RecaptchaSettings,\n  ) {\n    if (settings) {\n      this.siteKey = settings.siteKey;\n      this.theme = settings.theme;\n      this.type = settings.type;\n      this.size = settings.size;\n      this.badge = settings.badge;\n    }\n  }\n\n  public ngAfterViewInit(): void {\n    this.subscription = this.loader.ready.subscribe((grecaptcha: ReCaptchaV2.ReCaptcha) => {\n      if (grecaptcha != null && grecaptcha.render instanceof Function) {\n        this.grecaptcha = grecaptcha;\n        this.renderRecaptcha();\n      }\n    });\n  }\n\n  public ngOnDestroy(): void {\n    // reset the captcha to ensure it does not leave anything behind\n    // after the component is no longer needed\n    this.grecaptchaReset();\n    if (this.subscription) {\n      this.subscription.unsubscribe();\n    }\n  }\n\n  /**\n   * Executes the invisible recaptcha.\n   * Does nothing if component's size is not set to \"invisible\".\n   */\n  public execute(): void {\n    if (this.size !== \"invisible\") {\n      return;\n    }\n\n    if (this.widget != null) {\n      void this.grecaptcha.execute(this.widget);\n    } else {\n      // delay execution of recaptcha until it actually renders\n      this.executeRequested = true;\n    }\n  }\n\n  public reset(): void {\n    if (this.widget != null) {\n      if (this.grecaptcha.getResponse(this.widget)) {\n        // Only emit an event in case if something would actually change.\n        // That way we do not trigger \"touching\" of the control if someone does a \"reset\"\n        // on a non-resolved captcha.\n        this.resolved.emit(null);\n      }\n\n      this.grecaptchaReset();\n    }\n  }\n\n  /**\n   * ⚠️ Warning! Use this property at your own risk!\n   *\n   * While this member is `public`, it is not a part of the component's public API.\n   * The semantic versioning guarantees _will not be honored_! Thus, you might find that this property behavior changes in incompatible ways in minor or even patch releases.\n   * You are **strongly advised** against using this property.\n   * Instead, use more idiomatic ways to get reCAPTCHA value, such as `resolved` EventEmitter, or form-bound methods (ngModel, formControl, and the likes).å\n   */\n  public get __unsafe_widgetValue(): string | null {\n    return this.widget != null ? this.grecaptcha.getResponse(this.widget) : null;\n  }\n\n  /** @internal */\n  private expired() {\n    this.resolved.emit(null);\n  }\n\n  /** @internal */\n  private onError(args: RecaptchaErrorParameters) {\n    // eslint-disable-next-line deprecation/deprecation\n    this.error.emit(args);\n    this.errored.emit(args);\n  }\n\n  /** @internal */\n  private captchaResponseCallback(response: string) {\n    this.resolved.emit(response);\n  }\n\n  /** @internal */\n  private grecaptchaReset() {\n    if (this.widget != null) {\n      this.zone.runOutsideAngular(() => this.grecaptcha.reset(this.widget));\n    }\n  }\n\n  /** @internal */\n  private renderRecaptcha() {\n    // This `any` can be removed after @types/grecaptcha get updated\n    const renderOptions: ReCaptchaV2.Parameters = {\n      badge: this.badge,\n      callback: (response: string) => {\n        this.zone.run(() => this.captchaResponseCallback(response));\n      },\n      \"expired-callback\": () => {\n        this.zone.run(() => this.expired());\n      },\n      sitekey: this.siteKey,\n      size: this.size,\n      tabindex: this.tabIndex,\n      theme: this.theme,\n      type: this.type,\n    };\n\n    if (this.errorMode === \"handled\") {\n      renderOptions[\"error-callback\"] = (...args: RecaptchaErrorParameters) => {\n        this.zone.run(() => this.onError(args));\n      };\n    }\n\n    this.widget = this.grecaptcha.render(this.elementRef.nativeElement, renderOptions);\n\n    if (this.executeRequested === true) {\n      this.executeRequested = false;\n      this.execute();\n    }\n  }\n}\n","import { NgModule } from \"@angular/core\";\n\nimport { RecaptchaComponent } from \"./recaptcha.component\";\n\n@NgModule({\n  declarations: [RecaptchaComponent],\n  exports: [RecaptchaComponent],\n})\nexport class RecaptchaCommonModule {}\n","import { NgModule } from \"@angular/core\";\n\nimport { RecaptchaCommonModule } from \"./recaptcha-common.module\";\nimport { RecaptchaLoaderService } from \"./recaptcha-loader.service\";\nimport { RecaptchaComponent } from \"./recaptcha.component\";\n\n@NgModule({\n  exports: [RecaptchaComponent],\n  imports: [RecaptchaCommonModule],\n  providers: [RecaptchaLoaderService],\n})\nexport class RecaptchaModule {}\n","import { Inject, Injectable, NgZone } from \"@angular/core\";\nimport { Observable, Subject } from \"rxjs\";\n\nimport { RECAPTCHA_V3_SITE_KEY } from \"./tokens\";\nimport { RecaptchaLoaderService } from \"./recaptcha-loader.service\";\n\nexport interface OnExecuteData {\n  /**\n   * The name of the action that has been executed.\n   */\n  action: string;\n  /**\n   * The token that reCAPTCHA v3 provided when executing the action.\n   */\n  token: string;\n}\n\nexport interface OnExecuteErrorData {\n  /**\n   * The name of the action that has been executed.\n   */\n  action: string;\n  /**\n   * The error which was encountered\n   */\n  // eslint-disable-next-line @typescript-eslint/no-explicit-any\n  error: any;\n}\n\ntype ActionBacklogEntry = [string, Subject<string>];\n\n/**\n * The main service for working with reCAPTCHA v3 APIs.\n *\n * Use the `execute` method for executing a single action, and\n * `onExecute` observable for listening to all actions at once.\n */\n@Injectable()\nexport class ReCaptchaV3Service {\n  /** @internal */\n  private readonly siteKey: string;\n  /** @internal */\n  private readonly zone: NgZone;\n  /** @internal */\n  private actionBacklog: ActionBacklogEntry[] | undefined;\n  /** @internal */\n  private grecaptcha: ReCaptchaV2.ReCaptcha;\n\n  /** @internal */\n  private onExecuteSubject: Subject<OnExecuteData>;\n  /** @internal */\n  private onExecuteErrorSubject: Subject<OnExecuteErrorData>;\n  /** @internal */\n  private onExecuteObservable: Observable<OnExecuteData>;\n  /** @internal */\n  private onExecuteErrorObservable: Observable<OnExecuteErrorData>;\n\n  constructor(\n    zone: NgZone,\n    public recaptchaLoader: RecaptchaLoaderService,\n    @Inject(RECAPTCHA_V3_SITE_KEY) siteKey: string,\n  ) {\n    this.zone = zone;\n    this.siteKey = siteKey;\n\n    this.init();\n  }\n\n  public get onExecute(): Observable<OnExecuteData> {\n    if (!this.onExecuteSubject) {\n      this.onExecuteSubject = new Subject<OnExecuteData>();\n      this.onExecuteObservable = this.onExecuteSubject.asObservable();\n    }\n\n    return this.onExecuteObservable;\n  }\n\n  public get onExecuteError(): Observable<OnExecuteErrorData> {\n    if (!this.onExecuteErrorSubject) {\n      this.onExecuteErrorSubject = new Subject<OnExecuteErrorData>();\n      this.onExecuteErrorObservable = this.onExecuteErrorSubject.asObservable();\n    }\n\n    return this.onExecuteErrorObservable;\n  }\n\n  /**\n   * Executes the provided `action` with reCAPTCHA v3 API.\n   * Use the emitted token value for verification purposes on the backend.\n   *\n   * For more information about reCAPTCHA v3 actions and tokens refer to the official documentation at\n   * https://developers.google.com/recaptcha/docs/v3.\n   *\n   * @param {string} action the action to execute\n   * @returns {Observable<string>} an `Observable` that will emit the reCAPTCHA v3 string `token` value whenever ready.\n   * The returned `Observable` completes immediately after emitting a value.\n   */\n  public execute(action: string): Observable<string> {\n    const subject = new Subject<string>();\n    if (!this.grecaptcha) {\n      if (!this.actionBacklog) {\n        this.actionBacklog = [];\n      }\n\n      this.actionBacklog.push([action, subject]);\n    } else {\n      this.executeActionWithSubject(action, subject);\n    }\n\n    return subject.asObservable();\n  }\n\n  /** @internal */\n  private executeActionWithSubject(action: string, subject: Subject<string>): void {\n    // eslint-disable-next-line @typescript-eslint/no-explicit-any\n    const onError = (error: any) => {\n      this.zone.run(() => {\n        subject.error(error);\n        if (this.onExecuteErrorSubject) {\n          // We don't know any better at this point, unfortunately, so have to resort to `any`\n          // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\n          this.onExecuteErrorSubject.next({ action, error });\n        }\n      });\n    };\n\n    this.zone.runOutsideAngular(() => {\n      try {\n        this.grecaptcha.execute(this.siteKey, { action }).then((token: string) => {\n          this.zone.run(() => {\n            subject.next(token);\n            subject.complete();\n            if (this.onExecuteSubject) {\n              this.onExecuteSubject.next({ action, token });\n            }\n          });\n        }, onError);\n      } catch (e) {\n        onError(e);\n      }\n    });\n  }\n\n  /** @internal */\n  private init() {\n    this.recaptchaLoader.ready.subscribe((value) => {\n      this.grecaptcha = value;\n      if (this.actionBacklog && this.actionBacklog.length > 0) {\n        this.actionBacklog.forEach(([action, subject]) => this.executeActionWithSubject(action, subject));\n        this.actionBacklog = undefined;\n      }\n    });\n  }\n}\n","import { NgModule } from \"@angular/core\";\n\nimport { ReCaptchaV3Service } from \"./recaptcha-v3.service\";\nimport { RecaptchaLoaderService } from \"./recaptcha-loader.service\";\n\n@NgModule({\n  providers: [ReCaptchaV3Service, RecaptchaLoaderService],\n})\nexport class RecaptchaV3Module {}\n","import { Directive, forwardRef, HostListener } from \"@angular/core\";\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from \"@angular/forms\";\n\nimport { RecaptchaComponent } from \"./recaptcha.component\";\n\n@Directive({\n  providers: [\n    {\n      multi: true,\n      provide: NG_VALUE_ACCESSOR,\n      useExisting: forwardRef(() => RecaptchaValueAccessorDirective),\n    },\n  ],\n  selector: \"re-captcha[formControlName],re-captcha[formControl],re-captcha[ngModel]\",\n})\nexport class RecaptchaValueAccessorDirective implements ControlValueAccessor {\n  /** @internal */\n  private onChange: (value: string | null) => void;\n\n  /** @internal */\n  private onTouched: () => void;\n\n  private requiresControllerReset = false;\n\n  constructor(private host: RecaptchaComponent) {}\n\n  public writeValue(value: string): void {\n    if (!value) {\n      this.host.reset();\n    } else {\n      // In this case, it is most likely that a form controller has requested to write a specific value into the component.\n      // This isn't really a supported case - reCAPTCHA values are single-use, and, in a sense, readonly.\n      // What this means is that the form controller has recaptcha control state of X, while reCAPTCHA itself can't \"restore\"\n      // to that state. In order to make form controller aware of this discrepancy, and to fix the said misalignment,\n      // we'll be telling the controller to \"reset\" the value back to null.\n      if (this.host.__unsafe_widgetValue !== value && Boolean(this.host.__unsafe_widgetValue) === false) {\n        this.requiresControllerReset = true;\n      }\n    }\n  }\n\n  public registerOnChange(fn: (value: string) => void): void {\n    this.onChange = fn;\n    if (this.requiresControllerReset) {\n      this.requiresControllerReset = false;\n      this.onChange(null);\n    }\n  }\n  public registerOnTouched(fn: () => void): void {\n    this.onTouched = fn;\n  }\n\n  @HostListener(\"resolved\", [\"$event\"]) public onResolve($event: string): void {\n    if (this.onChange) {\n      this.onChange($event);\n    }\n    if (this.onTouched) {\n      this.onTouched();\n    }\n  }\n}\n","import { NgModule } from \"@angular/core\";\nimport { FormsModule } from \"@angular/forms\";\n\nimport { RecaptchaCommonModule } from \"./recaptcha-common.module\";\nimport { RecaptchaValueAccessorDirective } from \"./recaptcha-value-accessor.directive\";\n\n@NgModule({\n  declarations: [RecaptchaValueAccessorDirective],\n  exports: [RecaptchaValueAccessorDirective],\n  imports: [FormsModule, RecaptchaCommonModule],\n})\nexport class RecaptchaFormsModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1.RecaptchaComponent"],"mappings":"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"}