@ngx-rock/yandex-smart-captcha 21.0.0 → 21.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
|
@@ -26,7 +26,7 @@ function isValidHost(str) {
|
|
|
26
26
|
IPv6RE.test(everythingAfterProtocol));
|
|
27
27
|
}
|
|
28
28
|
|
|
29
|
-
const API_LINK = (host = 'smartcaptcha.
|
|
29
|
+
const API_LINK = (host = 'smartcaptcha.cloud.yandex.ru') => {
|
|
30
30
|
const base = /^https?/.test(host) ? host : `https://${host}`;
|
|
31
31
|
return `${base}/captcha.js?render=onload&onload=__onSmartCaptchaReady`;
|
|
32
32
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ngx-rock-yandex-smart-captcha.mjs","sources":["../../../../libs/yandex-smart-captcha/src/lib/helpers/is-valid-host.ts","../../../../libs/yandex-smart-captcha/src/lib/yandex-smart-captcha/yandex-smart-captcha.component.ts","../../../../libs/yandex-smart-captcha/src/ngx-rock-yandex-smart-captcha.ts"],"sourcesContent":["const domainRE = /^(\\S+)$/;\nconst localhostDomainRE = /^localhost[:?\\d]*(?:[^:?\\d]\\S*)?$/;\nconst nonLocalhostDomainRE = /^[^\\s.]+\\.\\S{2,}$/;\nconst IPv4RE = /^(https?:\\/\\/)?([0-9]{1,3}\\.){3}[0-9]{1,3}:\\d+$/;\nconst IPv6RE =\n /^(https?:\\/\\/)?\\[([0-9a-fA-F]{0,4}:){7}([0-9a-fA-F]){0,4}]:\\d+$/;\n\nexport function isValidHost(str: string | undefined): boolean {\n if (typeof str !== 'string') {\n return false;\n }\n const match = str.match(domainRE);\n if (!match) {\n return false;\n }\n const everythingAfterProtocol = match[0];\n if (!everythingAfterProtocol) {\n return false;\n }\n return (\n localhostDomainRE.test(everythingAfterProtocol) ||\n nonLocalhostDomainRE.test(everythingAfterProtocol) ||\n IPv4RE.test(everythingAfterProtocol) ||\n IPv6RE.test(everythingAfterProtocol)\n );\n}\n","import {\n AfterViewInit,\n ChangeDetectionStrategy,\n Component,\n DOCUMENT,\n effect,\n ElementRef,\n forwardRef,\n inject,\n input,\n OnDestroy,\n OnInit,\n output,\n PLATFORM_ID,\n Renderer2,\n signal,\n viewChild,\n} from '@angular/core';\nimport {\n ControlValueAccessor,\n NG_VALIDATORS,\n NG_VALUE_ACCESSOR,\n ValidationErrors,\n Validator,\n} from '@angular/forms';\nimport { isPlatformBrowser } from '@angular/common';\nimport { isValidHost } from '../helpers/is-valid-host';\nimport {\n JavascriptErrorPayload,\n SmartCaptchaInstance,\n SmartCaptchaParams,\n} from '../types';\n\nconst API_LINK = (host = 'smartcaptcha.yandexcloud.net') => {\n const base = /^https?/.test(host) ? host : `https://${host}`;\n return `${base}/captcha.js?render=onload&onload=__onSmartCaptchaReady`;\n};\n\n// Shared callbacks array\nconst callbacks: (() => void)[] = [];\nexport const startLoading = new Map<string, boolean>();\n\n@Component({\n selector: 'smart-captcha',\n template: ` <div class=\"smart-captcha\" #captchaContainer></div> `,\n styles: [\n `\n .smart-captcha {\n height: 102px;\n }\n `,\n ],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => SmartCaptchaComponent),\n multi: true,\n },\n {\n provide: NG_VALIDATORS,\n useExisting: forwardRef(() => SmartCaptchaComponent),\n multi: true,\n },\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true,\n})\nexport class SmartCaptchaComponent\n implements ControlValueAccessor, Validator, OnInit, AfterViewInit, OnDestroy\n{\n sitekey = input.required<string>();\n invisible = input<boolean>(false);\n visible = input<boolean>(); // For InvisibleCaptcha to execute\n hideShield = input<boolean>();\n shieldPosition = input<\n 'top-left' | 'top-right' | 'bottom-left' | 'bottom-right'\n >();\n language = input<SmartCaptchaParams['hl']>();\n host = input<string>();\n /**\n * @deprecated This setting is deprecated and must only be changed via the Yandex Cloud interface.\n */\n theme = input<'light' | 'dark' | 'auto'>('auto');\n test = input<boolean>();\n webview = input<boolean>();\n\n challengeHidden = output<void>();\n challengeVisible = output<void>();\n success = output<string>();\n networkError = output<void>();\n tokenExpired = output<void>();\n javascriptError = output<JavascriptErrorPayload>();\n\n captchaContainer = viewChild<ElementRef<HTMLDivElement>>('captchaContainer');\n\n private readonly renderer2 = inject(Renderer2);\n private readonly document = inject(DOCUMENT);\n private readonly platformId = inject(PLATFORM_ID);\n\n protected widgetId: number | undefined;\n protected smartCaptchaInstance: SmartCaptchaInstance | undefined;\n protected destroyed = false;\n private unsubscribeFns: Array<(() => void) | undefined> = [];\n private errorEventHandler: ((e: ErrorEvent) => void) | undefined;\n\n private onChange: (value: string | null) => void = () => {\n // onChange\n };\n private onTouched = () => {\n // onTouched\n };\n private readonly _innerValue = signal<string | null>(null);\n private callbackIndex: number | null = null;\n\n constructor() {\n // Effect for theme changes\n effect(() => {\n if (\n this.theme() &&\n this.widgetId !== undefined &&\n this.smartCaptchaInstance?.setTheme\n ) {\n this.smartCaptchaInstance.setTheme(this.widgetId, this.theme());\n }\n });\n\n // Effect for visible changes (Invisible Captcha)\n effect(() => {\n if (\n this.visible() &&\n this.invisible() &&\n this.smartCaptchaInstance &&\n typeof this.widgetId === 'number' &&\n !this.destroyed\n ) {\n this.smartCaptchaInstance.execute(this.widgetId);\n }\n });\n }\n\n ngOnInit(): void {\n if (!isPlatformBrowser(this.platformId)) {\n return;\n }\n\n if (this.host() !== undefined && !isValidHost(this.host())) {\n console.error(\n `[SmartCaptcha] ${this.host()} host is invalid. It should be of a kind: domain.ru, localhost:3000`\n );\n return;\n }\n\n if (typeof window !== 'undefined') {\n // Setup global callback if not already defined\n if (window.__onSmartCaptchaReady === undefined) {\n window.__onSmartCaptchaReady = () => {\n callbacks.forEach((callback) => callback());\n };\n }\n\n // Check if SmartCaptcha is already loaded\n if (window.smartCaptcha) {\n this.smartCaptchaInstance = window.smartCaptcha;\n }\n\n // Add our callback to the shared array\n this.callbackIndex = callbacks.push(() => {\n this.smartCaptchaInstance = window.smartCaptcha;\n this.renderCaptcha();\n });\n\n // Load script if not already loading\n const hostKey = this.host() || 'default';\n if (!startLoading.get(hostKey)) {\n this.loadScript();\n startLoading.set(hostKey, true);\n }\n }\n }\n\n ngAfterViewInit(): void {\n if (this.smartCaptchaInstance) {\n this.renderCaptcha();\n }\n }\n\n ngOnDestroy(): void {\n this.destroyed = true;\n\n // Remove callback from shared array\n if (this.callbackIndex !== null) {\n callbacks.splice(this.callbackIndex - 1, 1);\n }\n\n // Destroy widget if it exists\n if (this.widgetId !== undefined && this.smartCaptchaInstance) {\n this.smartCaptchaInstance.destroy(this.widgetId);\n this.widgetId = undefined;\n }\n\n // Clean up subscriptions\n this.unsubscribeFns.forEach((fn) => fn && fn());\n this.unsubscribeFns = [];\n\n // Remove error event handler\n if (this.errorEventHandler && typeof window !== 'undefined') {\n window.removeEventListener('error', this.errorEventHandler);\n }\n }\n\n private loadScript(): void {\n const src = API_LINK(this.host());\n const script = this.renderer2.createElement('script');\n this.renderer2.setAttribute(script, 'src', src);\n this.renderer2.setAttribute(script, 'type', 'text/javascript');\n this.renderer2.setAttribute(script, 'crossOrigin', 'anonymous');\n\n // Handle regular onload/onerror\n script.onload = () => {\n if (window.smartCaptcha && !this.smartCaptchaInstance) {\n this.smartCaptchaInstance = window.smartCaptcha;\n this.renderCaptcha();\n }\n };\n\n script.onerror = () => {\n this.handleJavascriptError({\n filename: src,\n message: 'Unknown error on script loading',\n col: 0,\n line: 0,\n });\n };\n\n // Add error event listener for JS errors in the captcha script\n if (typeof window !== 'undefined') {\n this.errorEventHandler = (e: ErrorEvent) => {\n if (e.filename?.indexOf(src) === 0) {\n this.handleJavascriptError({\n filename: e.filename,\n message: e.message,\n col: e.colno,\n line: e.lineno,\n });\n }\n };\n window.addEventListener('error', this.errorEventHandler);\n }\n\n // Add script to document\n this.renderer2.appendChild(this.document.body, script);\n }\n\n private renderCaptcha(): void {\n const container = this.captchaContainer()?.nativeElement;\n if (\n !container ||\n !this.smartCaptchaInstance ||\n this.widgetId !== undefined ||\n this.destroyed\n ) {\n return;\n }\n\n const params: SmartCaptchaParams = {\n sitekey: this.sitekey(),\n hl: this.language(),\n theme: this.theme(),\n invisible: this.invisible(),\n hideShield: this.hideShield(),\n shieldPosition: this.shieldPosition(),\n test: this.test(),\n webview: this.webview(),\n };\n\n try {\n this.widgetId = this.smartCaptchaInstance.render(container, params);\n this.setupSubscriptions();\n } catch (error: unknown) {\n console.error('[SmartCaptcha] Error rendering captcha widget:', error);\n\n let message = 'Unknown error during rendering';\n if (error instanceof Error) {\n message = error.message;\n }\n\n this.handleJavascriptError({\n filename: API_LINK(this.host()),\n message,\n col: 0,\n line: 0,\n });\n }\n }\n\n private setupSubscriptions(): void {\n if (this.widgetId === undefined || !this.smartCaptchaInstance) {\n return;\n }\n\n // Store unsubscribe functions for cleanup\n this.unsubscribeFns = [\n this.smartCaptchaInstance.subscribe(\n this.widgetId,\n 'challenge-visible',\n () => {\n this.challengeVisible.emit();\n }\n ),\n\n this.smartCaptchaInstance.subscribe(\n this.widgetId,\n 'challenge-hidden',\n () => {\n console.error('hidden');\n this.challengeHidden.emit();\n }\n ),\n\n this.smartCaptchaInstance.subscribe(\n this.widgetId,\n 'network-error',\n () => {\n this.networkError.emit();\n }\n ),\n\n this.smartCaptchaInstance.subscribe(\n this.widgetId,\n 'success',\n (...args: unknown[]) => {\n const [token] = args as [string];\n\n this._innerValue.set(token);\n this.onChange(token);\n this.onTouched();\n this.success.emit(token);\n }\n ),\n\n this.smartCaptchaInstance.subscribe(\n this.widgetId,\n 'token-expired',\n () => {\n this._innerValue.set(null);\n this.onChange(null);\n this.onTouched();\n this.tokenExpired.emit();\n }\n ),\n\n this.smartCaptchaInstance.subscribe(\n this.widgetId,\n 'javascript-error',\n (...args: unknown[]) => {\n const [error] = args as [JavascriptErrorPayload];\n this.handleJavascriptError(error);\n }\n ),\n ];\n }\n\n private handleJavascriptError(error: JavascriptErrorPayload): void {\n console.error('[SmartCaptcha] Javascript error:', error);\n this.javascriptError.emit(error);\n }\n\n // ControlValueAccessor methods\n writeValue(value: string): void {\n this._innerValue.set(value); // Set the signal value\n }\n\n registerOnChange(fn: (value: string | null) => void): void {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: () => void): void {\n this.onTouched = fn;\n }\n\n // Validator method\n validate(): ValidationErrors | null {\n // When using invisible captcha, don't validate until user interacts\n if (this.invisible() && !this._innerValue()) {\n return null;\n }\n\n // For standard captcha, require token\n if (!this.invisible() && !this._innerValue()) {\n // Access signal value\n return { captchaRequired: true };\n }\n\n return null;\n }\n}\n\n@Component({\n selector: 'invisible-smart-captcha',\n template: ` <div class=\"smart-captcha\" #captchaContainer></div> `,\n styles: [\n `\n .smart-captcha {\n /* No height needed for invisible captcha */\n }\n `,\n ],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => InvisibleSmartCaptchaComponent),\n multi: true,\n },\n {\n provide: NG_VALIDATORS,\n useExisting: forwardRef(() => InvisibleSmartCaptchaComponent),\n multi: true,\n },\n ],\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class InvisibleSmartCaptchaComponent\n extends SmartCaptchaComponent\n implements OnInit\n{\n // Always set invisible to true\n override invisible = input(true);\n\n // Override ngOnInit to ensure invisible is always true\n override ngOnInit(): void {\n // Call parent initialization\n super.ngOnInit();\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;AAAA,MAAM,QAAQ,GAAG,SAAS;AAC1B,MAAM,iBAAiB,GAAG,mCAAmC;AAC7D,MAAM,oBAAoB,GAAG,mBAAmB;AAChD,MAAM,MAAM,GAAG,iDAAiD;AAChE,MAAM,MAAM,GACV,iEAAiE;AAE7D,SAAU,WAAW,CAAC,GAAuB,EAAA;AACjD,IAAA,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE;AAC3B,QAAA,OAAO,KAAK;IACd;IACA,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC;IACjC,IAAI,CAAC,KAAK,EAAE;AACV,QAAA,OAAO,KAAK;IACd;AACA,IAAA,MAAM,uBAAuB,GAAG,KAAK,CAAC,CAAC,CAAC;IACxC,IAAI,CAAC,uBAAuB,EAAE;AAC5B,QAAA,OAAO,KAAK;IACd;AACA,IAAA,QACE,iBAAiB,CAAC,IAAI,CAAC,uBAAuB,CAAC;AAC/C,QAAA,oBAAoB,CAAC,IAAI,CAAC,uBAAuB,CAAC;AAClD,QAAA,MAAM,CAAC,IAAI,CAAC,uBAAuB,CAAC;AACpC,QAAA,MAAM,CAAC,IAAI,CAAC,uBAAuB,CAAC;AAExC;;ACQA,MAAM,QAAQ,GAAG,CAAC,IAAI,GAAG,8BAA8B,KAAI;AACzD,IAAA,MAAM,IAAI,GAAG,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,GAAG,CAAA,QAAA,EAAW,IAAI,EAAE;IAC5D,OAAO,CAAA,EAAG,IAAI,CAAA,sDAAA,CAAwD;AACxE,CAAC;AAED;AACA,MAAM,SAAS,GAAmB,EAAE;AAC7B,MAAM,YAAY,GAAG,IAAI,GAAG;MA2BtB,qBAAqB,CAAA;AAGhC,IAAA,OAAO,GAAG,KAAK,CAAC,QAAQ,oDAAU;AAClC,IAAA,SAAS,GAAG,KAAK,CAAU,KAAK,uDAAC;AACjC,IAAA,OAAO,GAAG,KAAK,CAAA,SAAA,EAAA,EAAA,IAAA,SAAA,GAAA,EAAA,SAAA,EAAA,SAAA,EAAA,GAAA,EAAA,CAAA,EAAA,CAAW,CAAC;IAC3B,UAAU,GAAG,KAAK,CAAA,SAAA,EAAA,EAAA,IAAA,SAAA,GAAA,EAAA,SAAA,EAAA,YAAA,EAAA,GAAA,EAAA,CAAA,EAAA,CAAW;IAC7B,cAAc,GAAG,KAAK,CAAA,SAAA,EAAA,EAAA,IAAA,SAAA,GAAA,EAAA,SAAA,EAAA,gBAAA,EAAA,GAAA,EAAA,CAAA,EAAA,CAEnB;IACH,QAAQ,GAAG,KAAK,CAAA,SAAA,EAAA,EAAA,IAAA,SAAA,GAAA,EAAA,SAAA,EAAA,UAAA,EAAA,GAAA,EAAA,CAAA,EAAA,CAA4B;IAC5C,IAAI,GAAG,KAAK,CAAA,SAAA,EAAA,EAAA,IAAA,SAAA,GAAA,EAAA,SAAA,EAAA,MAAA,EAAA,GAAA,EAAA,CAAA,EAAA,CAAU;AACtB;;AAEG;AACH,IAAA,KAAK,GAAG,KAAK,CAA4B,MAAM,mDAAC;IAChD,IAAI,GAAG,KAAK,CAAA,SAAA,EAAA,EAAA,IAAA,SAAA,GAAA,EAAA,SAAA,EAAA,MAAA,EAAA,GAAA,EAAA,CAAA,EAAA,CAAW;IACvB,OAAO,GAAG,KAAK,CAAA,SAAA,EAAA,EAAA,IAAA,SAAA,GAAA,EAAA,SAAA,EAAA,SAAA,EAAA,GAAA,EAAA,CAAA,EAAA,CAAW;IAE1B,eAAe,GAAG,MAAM,EAAQ;IAChC,gBAAgB,GAAG,MAAM,EAAQ;IACjC,OAAO,GAAG,MAAM,EAAU;IAC1B,YAAY,GAAG,MAAM,EAAQ;IAC7B,YAAY,GAAG,MAAM,EAAQ;IAC7B,eAAe,GAAG,MAAM,EAA0B;AAElD,IAAA,gBAAgB,GAAG,SAAS,CAA6B,kBAAkB,8DAAC;AAE3D,IAAA,SAAS,GAAG,MAAM,CAAC,SAAS,CAAC;AAC7B,IAAA,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;AAC3B,IAAA,UAAU,GAAG,MAAM,CAAC,WAAW,CAAC;AAEvC,IAAA,QAAQ;AACR,IAAA,oBAAoB;IACpB,SAAS,GAAG,KAAK;IACnB,cAAc,GAAoC,EAAE;AACpD,IAAA,iBAAiB;IAEjB,QAAQ,GAAmC,MAAK;;AAExD,IAAA,CAAC;IACO,SAAS,GAAG,MAAK;;AAEzB,IAAA,CAAC;AACgB,IAAA,WAAW,GAAG,MAAM,CAAgB,IAAI,yDAAC;IAClD,aAAa,GAAkB,IAAI;AAE3C,IAAA,WAAA,GAAA;;QAEE,MAAM,CAAC,MAAK;YACV,IACE,IAAI,CAAC,KAAK,EAAE;gBACZ,IAAI,CAAC,QAAQ,KAAK,SAAS;AAC3B,gBAAA,IAAI,CAAC,oBAAoB,EAAE,QAAQ,EACnC;AACA,gBAAA,IAAI,CAAC,oBAAoB,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC;YACjE;AACF,QAAA,CAAC,CAAC;;QAGF,MAAM,CAAC,MAAK;YACV,IACE,IAAI,CAAC,OAAO,EAAE;gBACd,IAAI,CAAC,SAAS,EAAE;AAChB,gBAAA,IAAI,CAAC,oBAAoB;AACzB,gBAAA,OAAO,IAAI,CAAC,QAAQ,KAAK,QAAQ;AACjC,gBAAA,CAAC,IAAI,CAAC,SAAS,EACf;gBACA,IAAI,CAAC,oBAAoB,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC;YAClD;AACF,QAAA,CAAC,CAAC;IACJ;IAEA,QAAQ,GAAA;QACN,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE;YACvC;QACF;AAEA,QAAA,IAAI,IAAI,CAAC,IAAI,EAAE,KAAK,SAAS,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,EAAE;YAC1D,OAAO,CAAC,KAAK,CACX,CAAA,eAAA,EAAkB,IAAI,CAAC,IAAI,EAAE,CAAA,mEAAA,CAAqE,CACnG;YACD;QACF;AAEA,QAAA,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE;;AAEjC,YAAA,IAAI,MAAM,CAAC,qBAAqB,KAAK,SAAS,EAAE;AAC9C,gBAAA,MAAM,CAAC,qBAAqB,GAAG,MAAK;oBAClC,SAAS,CAAC,OAAO,CAAC,CAAC,QAAQ,KAAK,QAAQ,EAAE,CAAC;AAC7C,gBAAA,CAAC;YACH;;AAGA,YAAA,IAAI,MAAM,CAAC,YAAY,EAAE;AACvB,gBAAA,IAAI,CAAC,oBAAoB,GAAG,MAAM,CAAC,YAAY;YACjD;;YAGA,IAAI,CAAC,aAAa,GAAG,SAAS,CAAC,IAAI,CAAC,MAAK;AACvC,gBAAA,IAAI,CAAC,oBAAoB,GAAG,MAAM,CAAC,YAAY;gBAC/C,IAAI,CAAC,aAAa,EAAE;AACtB,YAAA,CAAC,CAAC;;YAGF,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,EAAE,IAAI,SAAS;YACxC,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE;gBAC9B,IAAI,CAAC,UAAU,EAAE;AACjB,gBAAA,YAAY,CAAC,GAAG,CAAC,OAAO,EAAE,IAAI,CAAC;YACjC;QACF;IACF;IAEA,eAAe,GAAA;AACb,QAAA,IAAI,IAAI,CAAC,oBAAoB,EAAE;YAC7B,IAAI,CAAC,aAAa,EAAE;QACtB;IACF;IAEA,WAAW,GAAA;AACT,QAAA,IAAI,CAAC,SAAS,GAAG,IAAI;;AAGrB,QAAA,IAAI,IAAI,CAAC,aAAa,KAAK,IAAI,EAAE;YAC/B,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,aAAa,GAAG,CAAC,EAAE,CAAC,CAAC;QAC7C;;QAGA,IAAI,IAAI,CAAC,QAAQ,KAAK,SAAS,IAAI,IAAI,CAAC,oBAAoB,EAAE;YAC5D,IAAI,CAAC,oBAAoB,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC;AAChD,YAAA,IAAI,CAAC,QAAQ,GAAG,SAAS;QAC3B;;AAGA,QAAA,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC;AAC/C,QAAA,IAAI,CAAC,cAAc,GAAG,EAAE;;QAGxB,IAAI,IAAI,CAAC,iBAAiB,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE;YAC3D,MAAM,CAAC,mBAAmB,CAAC,OAAO,EAAE,IAAI,CAAC,iBAAiB,CAAC;QAC7D;IACF;IAEQ,UAAU,GAAA;QAChB,MAAM,GAAG,GAAG,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;QACjC,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,QAAQ,CAAC;QACrD,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,MAAM,EAAE,KAAK,EAAE,GAAG,CAAC;QAC/C,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,iBAAiB,CAAC;QAC9D,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,MAAM,EAAE,aAAa,EAAE,WAAW,CAAC;;AAG/D,QAAA,MAAM,CAAC,MAAM,GAAG,MAAK;YACnB,IAAI,MAAM,CAAC,YAAY,IAAI,CAAC,IAAI,CAAC,oBAAoB,EAAE;AACrD,gBAAA,IAAI,CAAC,oBAAoB,GAAG,MAAM,CAAC,YAAY;gBAC/C,IAAI,CAAC,aAAa,EAAE;YACtB;AACF,QAAA,CAAC;AAED,QAAA,MAAM,CAAC,OAAO,GAAG,MAAK;YACpB,IAAI,CAAC,qBAAqB,CAAC;AACzB,gBAAA,QAAQ,EAAE,GAAG;AACb,gBAAA,OAAO,EAAE,iCAAiC;AAC1C,gBAAA,GAAG,EAAE,CAAC;AACN,gBAAA,IAAI,EAAE,CAAC;AACR,aAAA,CAAC;AACJ,QAAA,CAAC;;AAGD,QAAA,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE;AACjC,YAAA,IAAI,CAAC,iBAAiB,GAAG,CAAC,CAAa,KAAI;gBACzC,IAAI,CAAC,CAAC,QAAQ,EAAE,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE;oBAClC,IAAI,CAAC,qBAAqB,CAAC;wBACzB,QAAQ,EAAE,CAAC,CAAC,QAAQ;wBACpB,OAAO,EAAE,CAAC,CAAC,OAAO;wBAClB,GAAG,EAAE,CAAC,CAAC,KAAK;wBACZ,IAAI,EAAE,CAAC,CAAC,MAAM;AACf,qBAAA,CAAC;gBACJ;AACF,YAAA,CAAC;YACD,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE,IAAI,CAAC,iBAAiB,CAAC;QAC1D;;AAGA,QAAA,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACxD;IAEQ,aAAa,GAAA;QACnB,MAAM,SAAS,GAAG,IAAI,CAAC,gBAAgB,EAAE,EAAE,aAAa;AACxD,QAAA,IACE,CAAC,SAAS;YACV,CAAC,IAAI,CAAC,oBAAoB;YAC1B,IAAI,CAAC,QAAQ,KAAK,SAAS;YAC3B,IAAI,CAAC,SAAS,EACd;YACA;QACF;AAEA,QAAA,MAAM,MAAM,GAAuB;AACjC,YAAA,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE;AACvB,YAAA,EAAE,EAAE,IAAI,CAAC,QAAQ,EAAE;AACnB,YAAA,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE;AACnB,YAAA,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE;AAC3B,YAAA,UAAU,EAAE,IAAI,CAAC,UAAU,EAAE;AAC7B,YAAA,cAAc,EAAE,IAAI,CAAC,cAAc,EAAE;AACrC,YAAA,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE;AACjB,YAAA,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE;SACxB;AAED,QAAA,IAAI;AACF,YAAA,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,oBAAoB,CAAC,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC;YACnE,IAAI,CAAC,kBAAkB,EAAE;QAC3B;QAAE,OAAO,KAAc,EAAE;AACvB,YAAA,OAAO,CAAC,KAAK,CAAC,gDAAgD,EAAE,KAAK,CAAC;YAEtE,IAAI,OAAO,GAAG,gCAAgC;AAC9C,YAAA,IAAI,KAAK,YAAY,KAAK,EAAE;AAC1B,gBAAA,OAAO,GAAG,KAAK,CAAC,OAAO;YACzB;YAEA,IAAI,CAAC,qBAAqB,CAAC;AACzB,gBAAA,QAAQ,EAAE,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;gBAC/B,OAAO;AACP,gBAAA,GAAG,EAAE,CAAC;AACN,gBAAA,IAAI,EAAE,CAAC;AACR,aAAA,CAAC;QACJ;IACF;IAEQ,kBAAkB,GAAA;QACxB,IAAI,IAAI,CAAC,QAAQ,KAAK,SAAS,IAAI,CAAC,IAAI,CAAC,oBAAoB,EAAE;YAC7D;QACF;;QAGA,IAAI,CAAC,cAAc,GAAG;AACpB,YAAA,IAAI,CAAC,oBAAoB,CAAC,SAAS,CACjC,IAAI,CAAC,QAAQ,EACb,mBAAmB,EACnB,MAAK;AACH,gBAAA,IAAI,CAAC,gBAAgB,CAAC,IAAI,EAAE;AAC9B,YAAA,CAAC,CACF;AAED,YAAA,IAAI,CAAC,oBAAoB,CAAC,SAAS,CACjC,IAAI,CAAC,QAAQ,EACb,kBAAkB,EAClB,MAAK;AACH,gBAAA,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC;AACvB,gBAAA,IAAI,CAAC,eAAe,CAAC,IAAI,EAAE;AAC7B,YAAA,CAAC,CACF;AAED,YAAA,IAAI,CAAC,oBAAoB,CAAC,SAAS,CACjC,IAAI,CAAC,QAAQ,EACb,eAAe,EACf,MAAK;AACH,gBAAA,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE;AAC1B,YAAA,CAAC,CACF;AAED,YAAA,IAAI,CAAC,oBAAoB,CAAC,SAAS,CACjC,IAAI,CAAC,QAAQ,EACb,SAAS,EACT,CAAC,GAAG,IAAe,KAAI;AACrB,gBAAA,MAAM,CAAC,KAAK,CAAC,GAAG,IAAgB;AAEhC,gBAAA,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,KAAK,CAAC;AAC3B,gBAAA,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC;gBACpB,IAAI,CAAC,SAAS,EAAE;AAChB,gBAAA,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC;AAC1B,YAAA,CAAC,CACF;AAED,YAAA,IAAI,CAAC,oBAAoB,CAAC,SAAS,CACjC,IAAI,CAAC,QAAQ,EACb,eAAe,EACf,MAAK;AACH,gBAAA,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC;AAC1B,gBAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC;gBACnB,IAAI,CAAC,SAAS,EAAE;AAChB,gBAAA,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE;AAC1B,YAAA,CAAC,CACF;AAED,YAAA,IAAI,CAAC,oBAAoB,CAAC,SAAS,CACjC,IAAI,CAAC,QAAQ,EACb,kBAAkB,EAClB,CAAC,GAAG,IAAe,KAAI;AACrB,gBAAA,MAAM,CAAC,KAAK,CAAC,GAAG,IAAgC;AAChD,gBAAA,IAAI,CAAC,qBAAqB,CAAC,KAAK,CAAC;AACnC,YAAA,CAAC,CACF;SACF;IACH;AAEQ,IAAA,qBAAqB,CAAC,KAA6B,EAAA;AACzD,QAAA,OAAO,CAAC,KAAK,CAAC,kCAAkC,EAAE,KAAK,CAAC;AACxD,QAAA,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC;IAClC;;AAGA,IAAA,UAAU,CAAC,KAAa,EAAA;QACtB,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IAC9B;AAEA,IAAA,gBAAgB,CAAC,EAAkC,EAAA;AACjD,QAAA,IAAI,CAAC,QAAQ,GAAG,EAAE;IACpB;AAEA,IAAA,iBAAiB,CAAC,EAAc,EAAA;AAC9B,QAAA,IAAI,CAAC,SAAS,GAAG,EAAE;IACrB;;IAGA,QAAQ,GAAA;;QAEN,IAAI,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,EAAE;AAC3C,YAAA,OAAO,IAAI;QACb;;AAGA,QAAA,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,EAAE;;AAE5C,YAAA,OAAO,EAAE,eAAe,EAAE,IAAI,EAAE;QAClC;AAEA,QAAA,OAAO,IAAI;IACb;uGAvUW,qBAAqB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAArB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,qBAAqB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,EAAA,OAAA,EAAA,EAAA,iBAAA,EAAA,SAAA,EAAA,UAAA,EAAA,SAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,UAAA,EAAA,WAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,OAAA,EAAA,EAAA,iBAAA,EAAA,SAAA,EAAA,UAAA,EAAA,SAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,iBAAA,EAAA,YAAA,EAAA,UAAA,EAAA,YAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,cAAA,EAAA,EAAA,iBAAA,EAAA,gBAAA,EAAA,UAAA,EAAA,gBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,QAAA,EAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,IAAA,EAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,KAAA,EAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,UAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,IAAA,EAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,OAAA,EAAA,EAAA,iBAAA,EAAA,SAAA,EAAA,UAAA,EAAA,SAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,OAAA,EAAA,EAAA,eAAA,EAAA,iBAAA,EAAA,gBAAA,EAAA,kBAAA,EAAA,OAAA,EAAA,SAAA,EAAA,YAAA,EAAA,cAAA,EAAA,YAAA,EAAA,cAAA,EAAA,eAAA,EAAA,iBAAA,EAAA,EAAA,SAAA,EAfrB;AACT,YAAA;AACE,gBAAA,OAAO,EAAE,iBAAiB;AAC1B,gBAAA,WAAW,EAAE,UAAU,CAAC,MAAM,qBAAqB,CAAC;AACpD,gBAAA,KAAK,EAAE,IAAI;AACZ,aAAA;AACD,YAAA;AACE,gBAAA,OAAO,EAAE,aAAa;AACtB,gBAAA,WAAW,EAAE,UAAU,CAAC,MAAM,qBAAqB,CAAC;AACpD,gBAAA,KAAK,EAAE,IAAI;AACZ,aAAA;AACF,SAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,kBAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAnBS,CAAA,qDAAA,CAAuD,EAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,gCAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA;;2FAuBtD,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBAzBjC,SAAS;+BACE,eAAe,EAAA,QAAA,EACf,uDAAuD,EAAA,SAAA,EAQtD;AACT,wBAAA;AACE,4BAAA,OAAO,EAAE,iBAAiB;AAC1B,4BAAA,WAAW,EAAE,UAAU,CAAC,2BAA2B,CAAC;AACpD,4BAAA,KAAK,EAAE,IAAI;AACZ,yBAAA;AACD,wBAAA;AACE,4BAAA,OAAO,EAAE,aAAa;AACtB,4BAAA,WAAW,EAAE,UAAU,CAAC,2BAA2B,CAAC;AACpD,4BAAA,KAAK,EAAE,IAAI;AACZ,yBAAA;AACF,qBAAA,EAAA,eAAA,EACgB,uBAAuB,CAAC,MAAM,EAAA,UAAA,EACnC,IAAI,EAAA,MAAA,EAAA,CAAA,gCAAA,CAAA,EAAA;q5CA4ByC,kBAAkB,EAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,CAAA,EAAA,EAAA,CAAA;AAyUvE,MAAO,8BACX,SAAQ,qBAAqB,CAAA;;AAIpB,IAAA,SAAS,GAAG,KAAK,CAAC,IAAI,uDAAC;;IAGvB,QAAQ,GAAA;;QAEf,KAAK,CAAC,QAAQ,EAAE;IAClB;uGAXW,8BAA8B,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAA9B,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,8BAA8B,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,yBAAA,EAAA,MAAA,EAAA,EAAA,SAAA,EAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,UAAA,EAAA,WAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,SAAA,EAf9B;AACT,YAAA;AACE,gBAAA,OAAO,EAAE,iBAAiB;AAC1B,gBAAA,WAAW,EAAE,UAAU,CAAC,MAAM,8BAA8B,CAAC;AAC7D,gBAAA,KAAK,EAAE,IAAI;AACZ,aAAA;AACD,YAAA;AACE,gBAAA,OAAO,EAAE,aAAa;AACtB,gBAAA,WAAW,EAAE,UAAU,CAAC,MAAM,8BAA8B,CAAC;AAC7D,gBAAA,KAAK,EAAE,IAAI;AACZ,aAAA;AACF,SAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAnBS,CAAA,qDAAA,CAAuD,EAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA;;2FAuBtD,8BAA8B,EAAA,UAAA,EAAA,CAAA;kBAzB1C,SAAS;+BACE,yBAAyB,EAAA,QAAA,EACzB,uDAAuD,EAAA,SAAA,EAQtD;AACT,wBAAA;AACE,4BAAA,OAAO,EAAE,iBAAiB;AAC1B,4BAAA,WAAW,EAAE,UAAU,CAAC,oCAAoC,CAAC;AAC7D,4BAAA,KAAK,EAAE,IAAI;AACZ,yBAAA;AACD,wBAAA;AACE,4BAAA,OAAO,EAAE,aAAa;AACtB,4BAAA,WAAW,EAAE,UAAU,CAAC,oCAAoC,CAAC;AAC7D,4BAAA,KAAK,EAAE,IAAI;AACZ,yBAAA;AACF,qBAAA,EAAA,UAAA,EACW,IAAI,EAAA,eAAA,EACC,uBAAuB,CAAC,MAAM,EAAA;;;ACpajD;;AAEG;;;;"}
|
|
1
|
+
{"version":3,"file":"ngx-rock-yandex-smart-captcha.mjs","sources":["../../../../libs/yandex-smart-captcha/src/lib/helpers/is-valid-host.ts","../../../../libs/yandex-smart-captcha/src/lib/yandex-smart-captcha/yandex-smart-captcha.component.ts","../../../../libs/yandex-smart-captcha/src/ngx-rock-yandex-smart-captcha.ts"],"sourcesContent":["const domainRE = /^(\\S+)$/;\nconst localhostDomainRE = /^localhost[:?\\d]*(?:[^:?\\d]\\S*)?$/;\nconst nonLocalhostDomainRE = /^[^\\s.]+\\.\\S{2,}$/;\nconst IPv4RE = /^(https?:\\/\\/)?([0-9]{1,3}\\.){3}[0-9]{1,3}:\\d+$/;\nconst IPv6RE =\n /^(https?:\\/\\/)?\\[([0-9a-fA-F]{0,4}:){7}([0-9a-fA-F]){0,4}]:\\d+$/;\n\nexport function isValidHost(str: string | undefined): boolean {\n if (typeof str !== 'string') {\n return false;\n }\n const match = str.match(domainRE);\n if (!match) {\n return false;\n }\n const everythingAfterProtocol = match[0];\n if (!everythingAfterProtocol) {\n return false;\n }\n return (\n localhostDomainRE.test(everythingAfterProtocol) ||\n nonLocalhostDomainRE.test(everythingAfterProtocol) ||\n IPv4RE.test(everythingAfterProtocol) ||\n IPv6RE.test(everythingAfterProtocol)\n );\n}\n","import {\n AfterViewInit,\n ChangeDetectionStrategy,\n Component,\n DOCUMENT,\n effect,\n ElementRef,\n forwardRef,\n inject,\n input,\n OnDestroy,\n OnInit,\n output,\n PLATFORM_ID,\n Renderer2,\n signal,\n viewChild,\n} from '@angular/core';\nimport {\n ControlValueAccessor,\n NG_VALIDATORS,\n NG_VALUE_ACCESSOR,\n ValidationErrors,\n Validator,\n} from '@angular/forms';\nimport { isPlatformBrowser } from '@angular/common';\nimport { isValidHost } from '../helpers/is-valid-host';\nimport {\n JavascriptErrorPayload,\n SmartCaptchaInstance,\n SmartCaptchaParams,\n} from '../types';\n\nconst API_LINK = (host = 'smartcaptcha.cloud.yandex.ru') => {\n const base = /^https?/.test(host) ? host : `https://${host}`;\n return `${base}/captcha.js?render=onload&onload=__onSmartCaptchaReady`;\n};\n\n// Shared callbacks array\nconst callbacks: (() => void)[] = [];\nexport const startLoading = new Map<string, boolean>();\n\n@Component({\n selector: 'smart-captcha',\n template: ` <div class=\"smart-captcha\" #captchaContainer></div> `,\n styles: [\n `\n .smart-captcha {\n height: 102px;\n }\n `,\n ],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => SmartCaptchaComponent),\n multi: true,\n },\n {\n provide: NG_VALIDATORS,\n useExisting: forwardRef(() => SmartCaptchaComponent),\n multi: true,\n },\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true,\n})\nexport class SmartCaptchaComponent\n implements ControlValueAccessor, Validator, OnInit, AfterViewInit, OnDestroy\n{\n sitekey = input.required<string>();\n invisible = input<boolean>(false);\n visible = input<boolean>(); // For InvisibleCaptcha to execute\n hideShield = input<boolean>();\n shieldPosition = input<\n 'top-left' | 'top-right' | 'bottom-left' | 'bottom-right'\n >();\n language = input<SmartCaptchaParams['hl']>();\n host = input<string>();\n /**\n * @deprecated This setting is deprecated and must only be changed via the Yandex Cloud interface.\n */\n theme = input<'light' | 'dark' | 'auto'>('auto');\n test = input<boolean>();\n webview = input<boolean>();\n\n challengeHidden = output<void>();\n challengeVisible = output<void>();\n success = output<string>();\n networkError = output<void>();\n tokenExpired = output<void>();\n javascriptError = output<JavascriptErrorPayload>();\n\n captchaContainer = viewChild<ElementRef<HTMLDivElement>>('captchaContainer');\n\n private readonly renderer2 = inject(Renderer2);\n private readonly document = inject(DOCUMENT);\n private readonly platformId = inject(PLATFORM_ID);\n\n protected widgetId: number | undefined;\n protected smartCaptchaInstance: SmartCaptchaInstance | undefined;\n protected destroyed = false;\n private unsubscribeFns: Array<(() => void) | undefined> = [];\n private errorEventHandler: ((e: ErrorEvent) => void) | undefined;\n\n private onChange: (value: string | null) => void = () => {\n // onChange\n };\n private onTouched = () => {\n // onTouched\n };\n private readonly _innerValue = signal<string | null>(null);\n private callbackIndex: number | null = null;\n\n constructor() {\n // Effect for theme changes\n effect(() => {\n if (\n this.theme() &&\n this.widgetId !== undefined &&\n this.smartCaptchaInstance?.setTheme\n ) {\n this.smartCaptchaInstance.setTheme(this.widgetId, this.theme());\n }\n });\n\n // Effect for visible changes (Invisible Captcha)\n effect(() => {\n if (\n this.visible() &&\n this.invisible() &&\n this.smartCaptchaInstance &&\n typeof this.widgetId === 'number' &&\n !this.destroyed\n ) {\n this.smartCaptchaInstance.execute(this.widgetId);\n }\n });\n }\n\n ngOnInit(): void {\n if (!isPlatformBrowser(this.platformId)) {\n return;\n }\n\n if (this.host() !== undefined && !isValidHost(this.host())) {\n console.error(\n `[SmartCaptcha] ${this.host()} host is invalid. It should be of a kind: domain.ru, localhost:3000`\n );\n return;\n }\n\n if (typeof window !== 'undefined') {\n // Setup global callback if not already defined\n if (window.__onSmartCaptchaReady === undefined) {\n window.__onSmartCaptchaReady = () => {\n callbacks.forEach((callback) => callback());\n };\n }\n\n // Check if SmartCaptcha is already loaded\n if (window.smartCaptcha) {\n this.smartCaptchaInstance = window.smartCaptcha;\n }\n\n // Add our callback to the shared array\n this.callbackIndex = callbacks.push(() => {\n this.smartCaptchaInstance = window.smartCaptcha;\n this.renderCaptcha();\n });\n\n // Load script if not already loading\n const hostKey = this.host() || 'default';\n if (!startLoading.get(hostKey)) {\n this.loadScript();\n startLoading.set(hostKey, true);\n }\n }\n }\n\n ngAfterViewInit(): void {\n if (this.smartCaptchaInstance) {\n this.renderCaptcha();\n }\n }\n\n ngOnDestroy(): void {\n this.destroyed = true;\n\n // Remove callback from shared array\n if (this.callbackIndex !== null) {\n callbacks.splice(this.callbackIndex - 1, 1);\n }\n\n // Destroy widget if it exists\n if (this.widgetId !== undefined && this.smartCaptchaInstance) {\n this.smartCaptchaInstance.destroy(this.widgetId);\n this.widgetId = undefined;\n }\n\n // Clean up subscriptions\n this.unsubscribeFns.forEach((fn) => fn && fn());\n this.unsubscribeFns = [];\n\n // Remove error event handler\n if (this.errorEventHandler && typeof window !== 'undefined') {\n window.removeEventListener('error', this.errorEventHandler);\n }\n }\n\n private loadScript(): void {\n const src = API_LINK(this.host());\n const script = this.renderer2.createElement('script');\n this.renderer2.setAttribute(script, 'src', src);\n this.renderer2.setAttribute(script, 'type', 'text/javascript');\n this.renderer2.setAttribute(script, 'crossOrigin', 'anonymous');\n\n // Handle regular onload/onerror\n script.onload = () => {\n if (window.smartCaptcha && !this.smartCaptchaInstance) {\n this.smartCaptchaInstance = window.smartCaptcha;\n this.renderCaptcha();\n }\n };\n\n script.onerror = () => {\n this.handleJavascriptError({\n filename: src,\n message: 'Unknown error on script loading',\n col: 0,\n line: 0,\n });\n };\n\n // Add error event listener for JS errors in the captcha script\n if (typeof window !== 'undefined') {\n this.errorEventHandler = (e: ErrorEvent) => {\n if (e.filename?.indexOf(src) === 0) {\n this.handleJavascriptError({\n filename: e.filename,\n message: e.message,\n col: e.colno,\n line: e.lineno,\n });\n }\n };\n window.addEventListener('error', this.errorEventHandler);\n }\n\n // Add script to document\n this.renderer2.appendChild(this.document.body, script);\n }\n\n private renderCaptcha(): void {\n const container = this.captchaContainer()?.nativeElement;\n if (\n !container ||\n !this.smartCaptchaInstance ||\n this.widgetId !== undefined ||\n this.destroyed\n ) {\n return;\n }\n\n const params: SmartCaptchaParams = {\n sitekey: this.sitekey(),\n hl: this.language(),\n theme: this.theme(),\n invisible: this.invisible(),\n hideShield: this.hideShield(),\n shieldPosition: this.shieldPosition(),\n test: this.test(),\n webview: this.webview(),\n };\n\n try {\n this.widgetId = this.smartCaptchaInstance.render(container, params);\n this.setupSubscriptions();\n } catch (error: unknown) {\n console.error('[SmartCaptcha] Error rendering captcha widget:', error);\n\n let message = 'Unknown error during rendering';\n if (error instanceof Error) {\n message = error.message;\n }\n\n this.handleJavascriptError({\n filename: API_LINK(this.host()),\n message,\n col: 0,\n line: 0,\n });\n }\n }\n\n private setupSubscriptions(): void {\n if (this.widgetId === undefined || !this.smartCaptchaInstance) {\n return;\n }\n\n // Store unsubscribe functions for cleanup\n this.unsubscribeFns = [\n this.smartCaptchaInstance.subscribe(\n this.widgetId,\n 'challenge-visible',\n () => {\n this.challengeVisible.emit();\n }\n ),\n\n this.smartCaptchaInstance.subscribe(\n this.widgetId,\n 'challenge-hidden',\n () => {\n console.error('hidden');\n this.challengeHidden.emit();\n }\n ),\n\n this.smartCaptchaInstance.subscribe(\n this.widgetId,\n 'network-error',\n () => {\n this.networkError.emit();\n }\n ),\n\n this.smartCaptchaInstance.subscribe(\n this.widgetId,\n 'success',\n (...args: unknown[]) => {\n const [token] = args as [string];\n\n this._innerValue.set(token);\n this.onChange(token);\n this.onTouched();\n this.success.emit(token);\n }\n ),\n\n this.smartCaptchaInstance.subscribe(\n this.widgetId,\n 'token-expired',\n () => {\n this._innerValue.set(null);\n this.onChange(null);\n this.onTouched();\n this.tokenExpired.emit();\n }\n ),\n\n this.smartCaptchaInstance.subscribe(\n this.widgetId,\n 'javascript-error',\n (...args: unknown[]) => {\n const [error] = args as [JavascriptErrorPayload];\n this.handleJavascriptError(error);\n }\n ),\n ];\n }\n\n private handleJavascriptError(error: JavascriptErrorPayload): void {\n console.error('[SmartCaptcha] Javascript error:', error);\n this.javascriptError.emit(error);\n }\n\n // ControlValueAccessor methods\n writeValue(value: string): void {\n this._innerValue.set(value); // Set the signal value\n }\n\n registerOnChange(fn: (value: string | null) => void): void {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: () => void): void {\n this.onTouched = fn;\n }\n\n // Validator method\n validate(): ValidationErrors | null {\n // When using invisible captcha, don't validate until user interacts\n if (this.invisible() && !this._innerValue()) {\n return null;\n }\n\n // For standard captcha, require token\n if (!this.invisible() && !this._innerValue()) {\n // Access signal value\n return { captchaRequired: true };\n }\n\n return null;\n }\n}\n\n@Component({\n selector: 'invisible-smart-captcha',\n template: ` <div class=\"smart-captcha\" #captchaContainer></div> `,\n styles: [\n `\n .smart-captcha {\n /* No height needed for invisible captcha */\n }\n `,\n ],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => InvisibleSmartCaptchaComponent),\n multi: true,\n },\n {\n provide: NG_VALIDATORS,\n useExisting: forwardRef(() => InvisibleSmartCaptchaComponent),\n multi: true,\n },\n ],\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class InvisibleSmartCaptchaComponent\n extends SmartCaptchaComponent\n implements OnInit\n{\n // Always set invisible to true\n override invisible = input(true);\n\n // Override ngOnInit to ensure invisible is always true\n override ngOnInit(): void {\n // Call parent initialization\n super.ngOnInit();\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|