{"version":3,"file":"captcha.mjs","sources":["../../../../../k8-fastbuild-ST-fdfa778d11ba/bin/src/angular/captcha/captcha/captcha-settings.ts","../../../../../k8-fastbuild-ST-fdfa778d11ba/bin/src/angular/captcha/captcha/windowref.service.ts","../../../../../k8-fastbuild-ST-fdfa778d11ba/bin/src/angular/captcha/captcha/captcha-loader.service.ts","../../../../../k8-fastbuild-ST-fdfa778d11ba/bin/src/angular/captcha/captcha/captcha.ts","../../../../../k8-fastbuild-ST-fdfa778d11ba/bin/src/angular/captcha/captcha.module.ts"],"sourcesContent":["// Workaround for: https://github.com/bazelbuild/rules_nodejs/issues/1265\n/// <reference types=\"grecaptcha\" preserve=\"true\" />\n\nimport { InjectionToken } from '@angular/core';\n\nexport const SBB_RECAPTCHA_SETTINGS = new InjectionToken<SbbRecaptchaSettings>(\n  'recaptcha-settings',\n);\n\nexport interface SbbRecaptchaSettings {\n  /**\n   * SiteKey of the user.\n   * It is optional.\n   */\n  siteKey?: string;\n  /**\n   * The color theme of the widget.\n   * It is optional.\n   */\n  theme?: ReCaptchaV2.Theme;\n  /**\n   * Type of the widget.\n   * It is optional.\n   */\n  type?: ReCaptchaV2.Type;\n  /**\n   * The size of the widget.\n   * It is optional.\n   */\n  size?: ReCaptchaV2.Size;\n  /**\n   * Badge of the widget.\n   * It is optional.\n   */\n  badge?: ReCaptchaV2.Badge;\n}\n\nexport const SBB_RECAPTCHA_DEFAULT_BASE_URL = 'https://www.google.com/recaptcha/api.js';\n\nexport const SBB_RECAPTCHA_CALLBACK_NAME = 'ng2recaptchaloaded';\n","import { Injectable } from '@angular/core';\n\nfunction _window(): any {\n  // return the global native browser window object\n  return window;\n}\n\n@Injectable()\nexport class SbbWindowRef {\n  /** The global native browser window object. */\n  get nativeWindow(): any {\n    return _window();\n  }\n}\n\ndeclare global {\n  interface Window {\n    ng2recaptchaloaded: () => void;\n  }\n}\n","// Workaround for: https://github.com/bazelbuild/rules_nodejs/issues/1265\n/// <reference types=\"grecaptcha\" preserve=\"true\" />\n\nimport { DOCUMENT } from '@angular/common';\nimport { inject, Injectable, InjectionToken } from '@angular/core';\nimport { BehaviorSubject, Observable } from 'rxjs';\nimport { filter } from 'rxjs/operators';\n\nimport { SBB_RECAPTCHA_CALLBACK_NAME, SBB_RECAPTCHA_DEFAULT_BASE_URL } from './captcha-settings';\nimport { SbbWindowRef } from './windowref.service';\n\nexport const SBB_RECAPTCHA_LANGUAGE = new InjectionToken<string>('recaptcha-language');\nexport const SBB_RECAPTCHA_BASE_URL = new InjectionToken<string>('recaptcha-base-url');\nexport const SBB_RECAPTCHA_NONCE = new InjectionToken<string>('recaptcha-nonce-tag');\n\n@Injectable()\nexport class SbbCaptchaLoaderService {\n  private _windowRef = inject(SbbWindowRef);\n\n  /** @nocollapse */\n  private static _ready: BehaviorSubject<ReCaptchaV2.ReCaptcha | null> | null = null;\n\n  ready: Observable<ReCaptchaV2.ReCaptcha>;\n\n  private _language: string | null;\n  private _baseUrl: string | null;\n  private _nonce: string | null;\n\n  private _document: Document;\n\n  constructor(...args: unknown[]);\n  constructor() {\n    const document = inject(DOCUMENT);\n    const language = inject(SBB_RECAPTCHA_LANGUAGE, { optional: true });\n    const baseUrl = inject(SBB_RECAPTCHA_BASE_URL, { optional: true });\n    const nonce = inject(SBB_RECAPTCHA_NONCE, { optional: true });\n\n    this._language = language || null;\n    this._baseUrl = baseUrl || null;\n    this._nonce = nonce || null;\n    this._document = document;\n    this._init();\n    this.ready = SbbCaptchaLoaderService._ready!.pipe(\n      filter((e): e is ReCaptchaV2.ReCaptcha => !!e),\n    );\n  }\n\n  private _init() {\n    if (SbbCaptchaLoaderService._ready) {\n      return;\n    }\n    this._windowRef.nativeWindow.ng2recaptchaloaded = () => {\n      SbbCaptchaLoaderService._ready!.next(grecaptcha);\n    };\n    SbbCaptchaLoaderService._ready = new BehaviorSubject<ReCaptchaV2.ReCaptcha | null>(null);\n    const script = this._document.createElement('script') as HTMLScriptElement;\n    script.innerHTML = '';\n    const langParam = this._language ? '&hl=' + this._language : '';\n    const baseUrl = this._baseUrl || SBB_RECAPTCHA_DEFAULT_BASE_URL;\n    script.src = `${baseUrl}?render=explicit&onload=${SBB_RECAPTCHA_CALLBACK_NAME}${langParam}`;\n    if (this._nonce) {\n      script.nonce = this._nonce;\n    }\n    script.async = true;\n    script.defer = true;\n    this._document.head.appendChild(script);\n  }\n}\n","// Workaround for: https://github.com/bazelbuild/rules_nodejs/issues/1265\n/// <reference types=\"grecaptcha\" preserve=\"true\" />\n\nimport { _IdGenerator } from '@angular/cdk/a11y';\nimport {\n  AfterViewInit,\n  ChangeDetectionStrategy,\n  Component,\n  ElementRef,\n  EventEmitter,\n  forwardRef,\n  HostListener,\n  inject,\n  Input,\n  NgZone,\n  OnDestroy,\n  Output,\n  ViewEncapsulation,\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { Subscription } from 'rxjs';\n\nimport { SbbCaptchaLoaderService } from './captcha-loader.service';\nimport { SbbRecaptchaSettings, SBB_RECAPTCHA_SETTINGS } from './captcha-settings';\n\n@Component({\n  exportAs: 'sbbCaptcha',\n  selector: 'sbb-captcha',\n  template: ``,\n  providers: [\n    {\n      multi: true,\n      provide: NG_VALUE_ACCESSOR,\n      useExisting: forwardRef(() => SbbCaptcha),\n    },\n  ],\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  encapsulation: ViewEncapsulation.None,\n  host: {\n    class: 'sbb-captcha',\n    '[attr.id]': 'id',\n  },\n})\nexport class SbbCaptcha implements AfterViewInit, OnDestroy, ControlValueAccessor {\n  private _elementRef = inject(ElementRef);\n  private _loader = inject(SbbCaptchaLoaderService);\n  private _zone = inject(NgZone);\n\n  /** Identifier of sbb-captcha. */\n  @Input() id: string = inject(_IdGenerator).getId('sbbcaptcha-');\n\n  /**\n   * SiteKey of the user.\n   * It is optional.\n   */\n  @Input() siteKey?: string;\n\n  /**\n   * The color theme of the widget.\n   * It is optional.\n   */\n  @Input() theme?: ReCaptchaV2.Theme;\n\n  /**\n   * The type of the widget.\n   * It is optional.\n   */\n  @Input() type?: ReCaptchaV2.Type;\n\n  /**\n   * The size of the widget.\n   * It is optional.\n   */\n  @Input() size?: ReCaptchaV2.Size;\n\n  /**\n   * The tabindex of the widget and challenge.\n   * It is optional.\n   */\n  @Input() tabIndex: number;\n\n  /**\n   * The badge of the widget.\n   * It is optional.\n   */\n  @Input() badge?: ReCaptchaV2.Badge;\n\n  /** Event generated on captcha checkbox. */\n  @Output() resolved: EventEmitter<string> = new EventEmitter<string>();\n\n  private _subscription: Subscription;\n  private _widget: number;\n  private _grecaptcha: ReCaptchaV2.ReCaptcha;\n  private _executeRequested: boolean;\n\n  private _onChange: (value: string) => void;\n\n  private _onTouched: () => void;\n\n  constructor(...args: unknown[]);\n  constructor() {\n    const settings = inject<SbbRecaptchaSettings>(SBB_RECAPTCHA_SETTINGS, { optional: true });\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  @HostListener('resolved', ['$event'])\n  _onResolve($event: string) {\n    if (this._onChange) {\n      this._onChange($event);\n    }\n    if (this._onTouched) {\n      this._onTouched();\n    }\n  }\n\n  writeValue(value: string): void {\n    if (!value) {\n      this.reset();\n    }\n  }\n\n  registerOnChange(fn: (value: string) => void): void {\n    this._onChange = fn;\n  }\n  registerOnTouched(fn: () => void): void {\n    this._onTouched = fn;\n  }\n\n  ngAfterViewInit() {\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  ngOnDestroy() {\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  execute(): void {\n    if (this.size !== 'invisible') {\n      return;\n    }\n\n    if (this._widget != null) {\n      this._grecaptcha.execute(this._widget);\n    } else {\n      // delay execution of recaptcha until it actually renders\n      this._executeRequested = true;\n    }\n  }\n\n  reset() {\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('');\n      }\n\n      this._grecaptchaReset();\n    }\n  }\n\n  private _expired() {\n    this.resolved.emit('');\n  }\n\n  private _captchaResponseCallback(response: string) {\n    this.resolved.emit(response);\n  }\n\n  private _grecaptchaReset() {\n    if (this._widget != null) {\n      this._zone.runOutsideAngular(() => this._grecaptcha.reset(this._widget));\n    }\n  }\n\n  private _renderRecaptcha() {\n    this._widget = this._grecaptcha.render(this._elementRef.nativeElement, {\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._executeRequested === true) {\n      this._executeRequested = false;\n      this.execute();\n    }\n  }\n}\n","import { NgModule } from '@angular/core';\nimport { SbbCommonModule } from '@sbb-esta/angular/core';\n\nimport { SbbCaptcha } from './captcha/captcha';\nimport { SbbCaptchaLoaderService } from './captcha/captcha-loader.service';\nimport { SbbWindowRef } from './captcha/windowref.service';\n\n@NgModule({\n  imports: [SbbCommonModule, SbbCaptcha],\n  exports: [SbbCaptcha],\n  providers: [SbbCaptchaLoaderService, SbbWindowRef],\n})\nexport class SbbCaptchaModule {}\n"],"names":["SBB_RECAPTCHA_SETTINGS","InjectionToken","SBB_RECAPTCHA_DEFAULT_BASE_URL","SBB_RECAPTCHA_CALLBACK_NAME","_window","window","SbbWindowRef","nativeWindow","deps","target","i0","ɵɵFactoryTarget","Injectable","decorators","SBB_RECAPTCHA_LANGUAGE","SBB_RECAPTCHA_BASE_URL","SBB_RECAPTCHA_NONCE","SbbCaptchaLoaderService","_windowRef","inject","_ready","ready","_language","_baseUrl","_nonce","_document","constructor","document","DOCUMENT","language","optional","baseUrl","nonce","_init","pipe","filter","e","ng2recaptchaloaded","next","grecaptcha","BehaviorSubject","script","createElement","innerHTML","langParam","src","async","defer","head","appendChild","SbbCaptcha","_elementRef","ElementRef","_loader","_zone","NgZone","id","_IdGenerator","getId","siteKey","theme","type","size","tabIndex","badge","resolved","EventEmitter","_subscription","_widget","_grecaptcha","_executeRequested","_onChange","_onTouched","settings","_onResolve","$event","writeValue","value","reset","registerOnChange","fn","registerOnTouched","ngAfterViewInit","subscribe","render","Function","_renderRecaptcha","ngOnDestroy","_grecaptchaReset","unsubscribe","execute","getResponse","emit","_expired","_captchaResponseCallback","response","runOutsideAngular","nativeElement","callback","run","expired-callback","sitekey","tabindex","Component","ɵcmp","ɵɵngDeclareComponent","minVersion","version","isStandalone","selector","inputs","outputs","host","listeners","properties","classAttribute","providers","multi","provide","NG_VALUE_ACCESSOR","useExisting","forwardRef","exportAs","ngImport","template","isInline","changeDetection","ChangeDetectionStrategy","OnPush","encapsulation","ViewEncapsulation","None","args","class","Input","Output","HostListener","SbbCaptchaModule","NgModule","ɵmod","ɵɵngDeclareNgModule","imports","SbbCommonModule","ɵinj","ɵɵngDeclareInjector","exports"],"mappings":"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"}