New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

ng-hcaptcha

Package Overview
Dependencies
Maintainers
1
Versions
20
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

ng-hcaptcha - npm Package Compare versions

Comparing version 1.0.0-beta.2 to 1.0.0-beta.3

43

bundles/ng-hcaptcha.umd.js
(function (global, factory) {
typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('@angular/core'), require('@angular/forms'), require('rxjs'), require('@angular/common')) :
typeof define === 'function' && define.amd ? define('ng-hcaptcha', ['exports', '@angular/core', '@angular/forms', 'rxjs', '@angular/common'], factory) :
(global = global || self, factory(global['ng-hcaptcha'] = {}, global.ng.core, global.ng.forms, global.rxjs, global.ng.common));
}(this, (function (exports, core, forms, rxjs, common) { 'use strict';
typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('@angular/core'), require('@angular/forms'), require('@angular/common'), require('rxjs')) :
typeof define === 'function' && define.amd ? define('ng-hcaptcha', ['exports', '@angular/core', '@angular/forms', '@angular/common', 'rxjs'], factory) :
(global = global || self, factory(global['ng-hcaptcha'] = {}, global.ng.core, global.ng.forms, global.ng.common, global.rxjs));
}(this, (function (exports, core, forms, common, rxjs) { 'use strict';

@@ -63,3 +63,3 @@ var CAPTCHA_CONFIG = new core.InjectionToken('CAPTCHA_CONFIG');

// Load the hCaptcha script
loadHCaptcha(this.languageCode).subscribe(function () {
this.captcha$ = loadHCaptcha(this.languageCode).subscribe(function () {
// Configure hCaptcha

@@ -76,5 +76,3 @@ var options = {

// Render hCaptcha using the defined options
window.hcaptcha.render(_this.captcha.nativeElement, options);
// Get widget ID
_this.widgetId = _this.findWidgetId();
_this.widgetId = window.hcaptcha.render(_this.captcha.nativeElement, options);
}, function (error) {

@@ -84,2 +82,5 @@ console.error('Failed to load hCaptcha script', error);

};
NgHcaptchaComponent.prototype.ngOnDestroy = function () {
this.captcha$.unsubscribe();
};
// ControlValueAccessor implementation

@@ -137,15 +138,2 @@ NgHcaptchaComponent.prototype.writeValue = function (value) {

};
/**
* Find the widget ID of the hCaptcha container.
*/
NgHcaptchaComponent.prototype.findWidgetId = function () {
var children = this.captcha.nativeElement.children;
for (var i = 0; i < children.length; i++) {
// Found correct children when the hcaptchaWidgetId dataset property is set
if (children[i] && children[i].dataset && children[i].dataset.hcaptchaWidgetId) {
return children[i].dataset.hcaptchaWidgetId;
}
}
return null;
};
return NgHcaptchaComponent;

@@ -205,3 +193,3 @@ }());

// Load the hCaptcha script
loadHCaptcha(this.languageCode).subscribe(function () {
this.captcha$ = loadHCaptcha(this.languageCode).subscribe(function () {
// Configure hCaptcha

@@ -216,5 +204,8 @@ var options = {

// Render hCaptcha using the defined options
window.hcaptcha.render(_this.elRef.nativeElement, options);
_this.widgetId = window.hcaptcha.render(_this.elRef.nativeElement, options);
});
};
NgHcaptchaInvisibleButtonDirective.prototype.ngOnDestroy = function () {
this.captcha$.unsubscribe();
};
NgHcaptchaInvisibleButtonDirective.prototype.onClick = function (event) {

@@ -227,7 +218,7 @@ if (event.hCaptchaToken) {

event.preventDefault();
event.cancelBuble = true;
event.stopImmediatePropagation();
event.cancelBubble = true;
// event.stopImmediatePropagation();
// Only execute hCaptcha if platform is browser
if (common.isPlatformBrowser(this.platformId)) {
window.hcaptcha.execute();
window.hcaptcha.execute(this.widgetId);
}

@@ -234,0 +225,0 @@ return false;

@@ -1,2 +0,2 @@

!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("@angular/core"),require("@angular/forms"),require("rxjs"),require("@angular/common")):"function"==typeof define&&define.amd?define("ng-hcaptcha",["exports","@angular/core","@angular/forms","rxjs","@angular/common"],t):t((e=e||self)["ng-hcaptcha"]={},e.ng.core,e.ng.forms,e.rxjs,e.ng.common)}(this,(function(e,t,n,r,o){"use strict";var i=new t.InjectionToken("CAPTCHA_CONFIG");function a(e){return new r.Observable((function(t){if(void 0!==window.hcaptcha)return t.next(),void t.complete();var n="https://hcaptcha.com/1/api.js?render=explicit";e&&(n+="&hl="+e);var r=document.createElement("script");r.src=n,r.async=!0,r.defer=!0,r.onerror=function(e){return t.error(e)},r.onload=function(){t.next(),t.complete()},document.head.appendChild(r)}))}var c=function(){function e(e,n,r){this.config=e,this.zone=n,this.platformId=r,this.verify=new t.EventEmitter,this.expired=new t.EventEmitter,this.error=new t.EventEmitter,this.onChange=function(){},this.onTouched=function(){}}return e.prototype.ngOnInit=function(){var e=this;this.languageCode||(this.languageCode=this.config.languageCode),o.isPlatformServer(this.platformId)||a(this.languageCode).subscribe((function(){var t={sitekey:e.siteKey||e.config.siteKey,theme:e.theme,size:e.size,tabindex:e.tabIndex,callback:function(t){e.zone.run((function(){return e.onVerify(t)}))},"expired-callback":function(t){e.zone.run((function(){return e.onExpired(t)}))},"error-callback":function(t){e.zone.run((function(){return e.onError(t)}))}};window.hcaptcha.render(e.captcha.nativeElement,t),e.widgetId=e.findWidgetId()}),(function(e){console.error("Failed to load hCaptcha script",e)}))},e.prototype.writeValue=function(e){this.value=e,!this.value&&window.hcaptcha&&window.hcaptcha.reset(this.widgetId)},e.prototype.registerOnChange=function(e){this.onChange=e},e.prototype.registerOnTouched=function(e){this.onTouched=e},Object.defineProperty(e.prototype,"value",{get:function(){return this._value},set:function(e){this._value=e,this.onChange(e),this.onTouched()},enumerable:!1,configurable:!0}),e.prototype.onVerify=function(e){this.value=e,this.verify.emit(e)},e.prototype.onExpired=function(e){this.expired.emit(e)},e.prototype.onError=function(e){this.error.emit(e)},e.prototype.findWidgetId=function(){for(var e=this.captcha.nativeElement.children,t=0;t<e.length;t++)if(e[t]&&e[t].dataset&&e[t].dataset.hcaptchaWidgetId)return e[t].dataset.hcaptchaWidgetId;return null},e}();c.decorators=[{type:t.Component,args:[{selector:"ng-hcaptcha",template:'<div #captcha class="h-captcha"></div>',providers:[{provide:n.NG_VALUE_ACCESSOR,useExisting:t.forwardRef((function(){return c})),multi:!0}]}]}],c.ctorParameters=function(){return[{type:void 0,decorators:[{type:t.Inject,args:[i]}]},{type:t.NgZone},{type:void 0,decorators:[{type:t.Inject,args:[t.PLATFORM_ID]}]}]},c.propDecorators={siteKey:[{type:t.Input}],theme:[{type:t.Input}],size:[{type:t.Input}],tabIndex:[{type:t.Input}],languageCode:[{type:t.Input}],captcha:[{type:t.ViewChild,args:["captcha",{static:!0}]}],verify:[{type:t.Output}],expired:[{type:t.Output}],error:[{type:t.Output}]};var u=function(){function e(e,n,r,o){this.elRef=e,this.config=n,this.zone=r,this.platformId=o,this.verify=new t.EventEmitter,this.expired=new t.EventEmitter,this.error=new t.EventEmitter,this.click=new t.EventEmitter}return e.prototype.ngOnInit=function(){var e=this;this.languageCode||(this.languageCode=this.config.languageCode),o.isPlatformServer(this.platformId)||a(this.languageCode).subscribe((function(){var t={sitekey:e.siteKey||e.config.siteKey,size:"invisible",callback:function(t){e.zone.run((function(){return e.onVerify(t)}))},"expired-callback":function(t){e.zone.run((function(){return e.onExpired(t)}))},"error-callback":function(t){e.zone.run((function(){return e.onError(t)}))}};window.hcaptcha.render(e.elRef.nativeElement,t)}))},e.prototype.onClick=function(e){if(!e.hCaptchaToken)return this.lastClickEvent=e,e.stopPropagation(),e.preventDefault(),e.cancelBuble=!0,e.stopImmediatePropagation(),o.isPlatformBrowser(this.platformId)&&window.hcaptcha.execute(),!1},e.prototype.onVerify=function(e){var t=this.lastClickEvent||{};t.hCaptchaToken=e,this.click.emit(t),this.verify.emit(e)},e.prototype.onExpired=function(e){this.expired.emit(e)},e.prototype.onError=function(e){this.error.emit(e)},e}();u.decorators=[{type:t.Directive,args:[{selector:"[ngHcaptchaInvisibleButton]"}]}],u.ctorParameters=function(){return[{type:t.ElementRef},{type:void 0,decorators:[{type:t.Inject,args:[i]}]},{type:t.NgZone},{type:void 0,decorators:[{type:t.Inject,args:[t.PLATFORM_ID]}]}]},u.propDecorators={siteKey:[{type:t.Input}],languageCode:[{type:t.Input}],verify:[{type:t.Output}],expired:[{type:t.Output}],error:[{type:t.Output}],click:[{type:t.Output}],onClick:[{type:t.HostListener,args:["click",["$event"]]}]};var p=function(){function e(){}return e.forRoot=function(t){return{ngModule:e,providers:[{provide:i,useValue:t||[]}]}},e}();p.decorators=[{type:t.NgModule,args:[{imports:[],declarations:[c,u],exports:[c,u]}]}],e.CAPTCHA_CONFIG=i,e.NgHcaptchaComponent=c,e.NgHcaptchaInvisibleButtonDirective=u,e.NgHcaptchaModule=p,e.loadHCaptcha=a,Object.defineProperty(e,"__esModule",{value:!0})}));
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("@angular/core"),require("@angular/forms"),require("@angular/common"),require("rxjs")):"function"==typeof define&&define.amd?define("ng-hcaptcha",["exports","@angular/core","@angular/forms","@angular/common","rxjs"],t):t((e=e||self)["ng-hcaptcha"]={},e.ng.core,e.ng.forms,e.ng.common,e.rxjs)}(this,(function(e,t,n,r,o){"use strict";var i=new t.InjectionToken("CAPTCHA_CONFIG");function c(e){return new o.Observable((function(t){if(void 0!==window.hcaptcha)return t.next(),void t.complete();var n="https://hcaptcha.com/1/api.js?render=explicit";e&&(n+="&hl="+e);var r=document.createElement("script");r.src=n,r.async=!0,r.defer=!0,r.onerror=function(e){return t.error(e)},r.onload=function(){t.next(),t.complete()},document.head.appendChild(r)}))}var a=function(){function e(e,n,r){this.config=e,this.zone=n,this.platformId=r,this.verify=new t.EventEmitter,this.expired=new t.EventEmitter,this.error=new t.EventEmitter,this.onChange=function(){},this.onTouched=function(){}}return e.prototype.ngOnInit=function(){var e=this;this.languageCode||(this.languageCode=this.config.languageCode),r.isPlatformServer(this.platformId)||(this.captcha$=c(this.languageCode).subscribe((function(){var t={sitekey:e.siteKey||e.config.siteKey,theme:e.theme,size:e.size,tabindex:e.tabIndex,callback:function(t){e.zone.run((function(){return e.onVerify(t)}))},"expired-callback":function(t){e.zone.run((function(){return e.onExpired(t)}))},"error-callback":function(t){e.zone.run((function(){return e.onError(t)}))}};e.widgetId=window.hcaptcha.render(e.captcha.nativeElement,t)}),(function(e){console.error("Failed to load hCaptcha script",e)})))},e.prototype.ngOnDestroy=function(){this.captcha$.unsubscribe()},e.prototype.writeValue=function(e){this.value=e,!this.value&&window.hcaptcha&&window.hcaptcha.reset(this.widgetId)},e.prototype.registerOnChange=function(e){this.onChange=e},e.prototype.registerOnTouched=function(e){this.onTouched=e},Object.defineProperty(e.prototype,"value",{get:function(){return this._value},set:function(e){this._value=e,this.onChange(e),this.onTouched()},enumerable:!1,configurable:!0}),e.prototype.onVerify=function(e){this.value=e,this.verify.emit(e)},e.prototype.onExpired=function(e){this.expired.emit(e)},e.prototype.onError=function(e){this.error.emit(e)},e}();a.decorators=[{type:t.Component,args:[{selector:"ng-hcaptcha",template:'<div #captcha class="h-captcha"></div>',providers:[{provide:n.NG_VALUE_ACCESSOR,useExisting:t.forwardRef((function(){return a})),multi:!0}]}]}],a.ctorParameters=function(){return[{type:void 0,decorators:[{type:t.Inject,args:[i]}]},{type:t.NgZone},{type:void 0,decorators:[{type:t.Inject,args:[t.PLATFORM_ID]}]}]},a.propDecorators={siteKey:[{type:t.Input}],theme:[{type:t.Input}],size:[{type:t.Input}],tabIndex:[{type:t.Input}],languageCode:[{type:t.Input}],captcha:[{type:t.ViewChild,args:["captcha",{static:!0}]}],verify:[{type:t.Output}],expired:[{type:t.Output}],error:[{type:t.Output}]};var u=function(){function e(e,n,r,o){this.elRef=e,this.config=n,this.zone=r,this.platformId=o,this.verify=new t.EventEmitter,this.expired=new t.EventEmitter,this.error=new t.EventEmitter,this.click=new t.EventEmitter}return e.prototype.ngOnInit=function(){var e=this;this.languageCode||(this.languageCode=this.config.languageCode),r.isPlatformServer(this.platformId)||(this.captcha$=c(this.languageCode).subscribe((function(){var t={sitekey:e.siteKey||e.config.siteKey,size:"invisible",callback:function(t){e.zone.run((function(){return e.onVerify(t)}))},"expired-callback":function(t){e.zone.run((function(){return e.onExpired(t)}))},"error-callback":function(t){e.zone.run((function(){return e.onError(t)}))}};e.widgetId=window.hcaptcha.render(e.elRef.nativeElement,t)})))},e.prototype.ngOnDestroy=function(){this.captcha$.unsubscribe()},e.prototype.onClick=function(e){if(!e.hCaptchaToken)return this.lastClickEvent=e,e.stopPropagation(),e.preventDefault(),e.cancelBubble=!0,r.isPlatformBrowser(this.platformId)&&window.hcaptcha.execute(this.widgetId),!1},e.prototype.onVerify=function(e){var t=this.lastClickEvent||{};t.hCaptchaToken=e,this.click.emit(t),this.verify.emit(e)},e.prototype.onExpired=function(e){this.expired.emit(e)},e.prototype.onError=function(e){this.error.emit(e)},e}();u.decorators=[{type:t.Directive,args:[{selector:"[ngHcaptchaInvisibleButton]"}]}],u.ctorParameters=function(){return[{type:t.ElementRef},{type:void 0,decorators:[{type:t.Inject,args:[i]}]},{type:t.NgZone},{type:void 0,decorators:[{type:t.Inject,args:[t.PLATFORM_ID]}]}]},u.propDecorators={siteKey:[{type:t.Input}],languageCode:[{type:t.Input}],verify:[{type:t.Output}],expired:[{type:t.Output}],error:[{type:t.Output}],click:[{type:t.Output}],onClick:[{type:t.HostListener,args:["click",["$event"]]}]};var p=function(){function e(){}return e.forRoot=function(t){return{ngModule:e,providers:[{provide:i,useValue:t||[]}]}},e}();p.decorators=[{type:t.NgModule,args:[{imports:[],declarations:[a,u],exports:[a,u]}]}],e.CAPTCHA_CONFIG=i,e.NgHcaptchaComponent=a,e.NgHcaptchaInvisibleButtonDirective=u,e.NgHcaptchaModule=p,e.loadHCaptcha=c,Object.defineProperty(e,"__esModule",{value:!0})}));
//# sourceMappingURL=ng-hcaptcha.umd.min.js.map
import { Directive, ElementRef, EventEmitter, HostListener, Inject, Input, NgZone, Output, PLATFORM_ID } from '@angular/core';
import { isPlatformBrowser, isPlatformServer } from '@angular/common';
import { CAPTCHA_CONFIG } from './ng-hcaptcha-config';
import { loadHCaptcha } from './hcaptcha-utils';
import { isPlatformBrowser, isPlatformServer } from '@angular/common';
export class NgHcaptchaInvisibleButtonDirective {

@@ -26,3 +26,3 @@ constructor(elRef, config, zone, platformId) {

// Load the hCaptcha script
loadHCaptcha(this.languageCode).subscribe(() => {
this.captcha$ = loadHCaptcha(this.languageCode).subscribe(() => {
// Configure hCaptcha

@@ -37,5 +37,8 @@ const options = {

// Render hCaptcha using the defined options
window.hcaptcha.render(this.elRef.nativeElement, options);
this.widgetId = window.hcaptcha.render(this.elRef.nativeElement, options);
});
}
ngOnDestroy() {
this.captcha$.unsubscribe();
}
onClick(event) {

@@ -48,7 +51,7 @@ if (event.hCaptchaToken) {

event.preventDefault();
event.cancelBuble = true;
event.stopImmediatePropagation();
event.cancelBubble = true;
// event.stopImmediatePropagation();
// Only execute hCaptcha if platform is browser
if (isPlatformBrowser(this.platformId)) {
window.hcaptcha.execute();
window.hcaptcha.execute(this.widgetId);
}

@@ -102,2 +105,2 @@ return false;

};
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmctaGNhcHRjaGEtaW52aXNpYmxlLWJ1dHRvbi5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1oY2FwdGNoYS9zcmMvbGliL25nLWhjYXB0Y2hhLWludmlzaWJsZS1idXR0b24uZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLFlBQVksRUFBRSxZQUFZLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQVUsTUFBTSxFQUFFLFdBQVcsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN0SSxPQUFPLEVBQUUsY0FBYyxFQUFpQixNQUFNLHNCQUFzQixDQUFDO0FBQ3JFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUNoRCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQU90RSxNQUFNLE9BQU8sa0NBQWtDO0lBWTdDLFlBQW9CLEtBQWlCLEVBQ08sTUFBcUIsRUFDN0MsSUFBWSxFQUNTLFVBQVU7UUFIL0IsVUFBSyxHQUFMLEtBQUssQ0FBWTtRQUNPLFdBQU0sR0FBTixNQUFNLENBQWU7UUFDN0MsU0FBSSxHQUFKLElBQUksQ0FBUTtRQUNTLGVBQVUsR0FBVixVQUFVLENBQUE7UUFWekMsV0FBTSxHQUF5QixJQUFJLFlBQVksRUFBVSxDQUFDO1FBQzFELFlBQU8sR0FBc0IsSUFBSSxZQUFZLEVBQU8sQ0FBQztRQUNyRCxVQUFLLEdBQXNCLElBQUksWUFBWSxFQUFPLENBQUM7UUFDbkQsVUFBSyxHQUFzQixJQUFJLFlBQVksRUFBTyxDQUFDO0lBT04sQ0FBQztJQUV4RCxRQUFRO1FBQ04sdUVBQXVFO1FBQ3ZFLElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxFQUFFO1lBQ3RCLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FB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QkFDTixNQUFNO29CQUNOLE1BQU07c0JBcUNOLFlBQVksU0FBQyxPQUFPLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIEVsZW1lbnRSZWYsIEV2ZW50RW1pdHRlciwgSG9zdExpc3RlbmVyLCBJbmplY3QsIElucHV0LCBOZ1pvbmUsIE9uSW5pdCwgT3V0cHV0LCBQTEFURk9STV9JRCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBDQVBUQ0hBX0NPTkZJRywgQ2FwdGNoYUNvbmZpZyB9IGZyb20gJy4vbmctaGNhcHRjaGEtY29uZmlnJztcclxuaW1wb3J0IHsgbG9hZEhDYXB0Y2hhIH0gZnJvbSAnLi9oY2FwdGNoYS11dGlscyc7XHJcbmltcG9ydCB7IGlzUGxhdGZvcm1Ccm93c2VyLCBpc1BsYXRmb3JtU2VydmVyIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuXHJcbmRlY2xhcmUgY29uc3Qgd2luZG93OiBhbnk7XHJcblxyXG5ARGlyZWN0aXZlKHtcclxuICBzZWxlY3RvcjogJ1tuZ0hjYXB0Y2hhSW52aXNpYmxlQnV0dG9uXSdcclxufSlcclxuZXhwb3J0IGNsYXNzIE5nSGNhcHRjaGFJbnZpc2libGVCdXR0b25EaXJlY3RpdmUgaW1wbGVtZW50cyBPbkluaXQge1xyXG5cclxuICBASW5wdXQoKSBzaXRlS2V5OiBzdHJpbmc7XHJcbiAgQElucHV0KCkgbGFuZ3VhZ2VDb2RlOiBzdHJpbmc7XHJcblxyXG4gIEBPdXRwdXQoKSB2ZXJpZnk6IEV2ZW50RW1pdHRlcjxzdHJpbmc+ID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KCk7XHJcbiAgQE91dHB1dCgpIGV4cGlyZWQ6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XHJcbiAgQE91dHB1dCgpIGVycm9yOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xyXG4gIEBPdXRwdXQoKSBjbGljazogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcclxuXHJcbiAgcHJpdmF0ZSBsYXN0Q2xpY2tFdmVudDogYW55O1xyXG5cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGVsUmVmOiBFbGVtZW50UmVmLFxyXG4gICAgICAgICAgICAgIEBJbmplY3QoQ0FQVENIQV9DT05GSUcpIHByaXZhdGUgY29uZmlnOiBDYXB0Y2hhQ29uZmlnLFxyXG4gICAgICAgICAgICAgIHByaXZhdGUgem9uZTogTmdab25lLFxyXG4gICAgICAgICAgICAgIEBJbmplY3QoUExBVEZPUk1fSUQpIHByaXZhdGUgcGxhdGZvcm1JZCkgeyB9XHJcblxyXG4gIG5nT25Jbml0KCkge1xyXG4gICAgLy8gVXNlIGxhbmd1YWdlIGNvZGUgZnJvbSBtb2R1bGUgY29uZmlnIHdoZW4gaW5wdXQgcGFyYW1ldGVyIGlzIG5vdCBzZXRcclxuICAgIGlmICghdGhpcy5sYW5ndWFnZUNvZGUpIHtcclxuICAgICAgdGhpcy5sYW5ndWFnZUNvZGUgPSB0aGlzLmNvbmZpZy5sYW5ndWFnZUNvZGU7XHJcbiAgICB9XHJcblxyXG4gICAgLy8gRG8gbm90IGxvYWQgaENhcHRjaGEgaWYgcGxhdGZvcm0gaXMgc2VydmVyXHJcbiAgICBpZiAoaXNQbGF0Zm9ybVNlcnZlcih0aGlzLnBsYXRmb3JtSWQpKSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICAvLyBMb2FkIHRoZSBoQ2FwdGNoYSBzY3JpcHRcclxuICAgIGxvYWRIQ2FwdGNoYSh0aGlzLmxhbmd1YWdlQ29kZSkuc3Vic2NyaWJlKFxyXG4gICAgICAoKSA9PiB7XHJcbiAgICAgICAgLy8gQ29uZmlndXJlIGhDYXB0Y2hhXHJcbiAgICAgICAgY29uc3Qgb3B0aW9ucyA9IHtcclxuICAgICAgICAgIHNpdGVrZXk6ICh0aGlzLnNpdGVLZXkgfHwgdGhpcy5jb25maWcuc2l0ZUtleSksXHJcbiAgICAgICAgICBzaXplOiAnaW52aXNpYmxlJyxcclxuICAgICAgICAgIGNhbGxiYWNrOiAocmVzKSA9PiB7IHRoaXMuem9uZS5ydW4oKCkgPT4gdGhpcy5vblZlcmlmeShyZXMpKTsgfSxcclxuICAgICAgICAgICdleHBpcmVkLWNhbGxiYWNrJzogKHJlcykgPT4geyB0aGlzLnpvbmUucnVuKCgpID0+IHRoaXMub25FeHBpcmVkKHJlcykpOyB9LFxyXG4gICAgICAgICAgJ2Vycm9yLWNhbGxiYWNrJzogKGVycikgPT4geyB0aGlzLnpvbmUucnVuKCgpID0+IHRoaXMub25FcnJvcihlcnIpKTsgfVxyXG4gICAgICAgIH07XHJcblxyXG4gICAgICAgIC8vIFJlbmRlciBoQ2FwdGNoYSB1c2luZyB0aGUgZGVmaW5lZCBvcHRpb25zXHJcbiAgICAgICAgd2luZG93LmhjYXB0Y2hhLnJlbmRlcih0aGlzLmVsUmVmLm5hdGl2ZUVsZW1lbnQsIG9wdGlvbnMpO1xyXG4gICAgICB9KTtcclxuICB9XHJcblxyXG4gIEBIb3N0TGlzdGVuZXIoJ2NsaWNrJywgWyckZXZlbnQnXSlcclxuICBvbkNsaWNrKGV2ZW50KSB7XHJcbiAgICBpZiAoZXZlbnQuaENhcHRjaGFUb2tlbikge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5sYXN0Q2xpY2tFdmVudCA9IGV2ZW50O1xyXG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XHJcbiAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgZXZlbnQuY2FuY2VsQnVibGUgPSB0cnVlO1xyXG4gICAgZXZlbnQuc3RvcEltbWVkaWF0ZVByb3BhZ2F0aW9uKCk7XHJcblxyXG4gICAgLy8gT25seSBleGVjdXRlIGhDYXB0Y2hhIGlmIHBsYXRmb3JtIGlzIGJyb3dzZXJcclxuICAgIGlmIChpc1BsYXRmb3JtQnJvd3Nlcih0aGlzLnBsYXRmb3JtSWQpKSB7XHJcbiAgICAgIHdpbmRvdy5oY2FwdGNoYS5leGVjdXRlKCk7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIGZhbHNlO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogSXMgY2FsbGVkIHdoZW4gdGhlIHZlcmlmaWNhdGlvbiB3YXMgc3VjY2Vzc2Z1bFxyXG4gICAqIEBwYXJhbSByZXNwb25zZSBUaGUgdmVyaWZpY2F0aW9uIHRva2VuXHJcbiAgICovXHJcbiAgcHJpdmF0ZSBvblZlcmlmeShyZXNwb25zZTogc3RyaW5nKSB7XHJcbiAgICBjb25zdCBldmVudCA9IHRoaXMubGFzdENsaWNrRXZlbnQgfHwge307XHJcbiAgICBldmVudC5oQ2FwdGNoYVRva2VuID0gcmVzcG9uc2U7XHJcbiAgICB0aGlzLmNsaWNrLmVtaXQoZXZlbnQpO1xyXG4gICAgdGhpcy52ZXJpZnkuZW1pdChyZXNwb25zZSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBJcyBjYWxsZWQgd2hlbiB0aGUgdmVyaWZpY2F0aW9uIGhhcyBleHBpcmVkXHJcbiAgICogQHBhcmFtIHJlc3BvbnNlIFRoZSB2ZXJpZmljYXRpb24gcmVzcG9uc2VcclxuICAgKi9cclxuICBwcml2YXRlIG9uRXhwaXJlZChyZXNwb25zZTogYW55KSB7XHJcbiAgICB0aGlzLmV4cGlyZWQuZW1pdChyZXNwb25zZSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBJcyBjYWxsZWQgd2hlbiBhbiBlcnJvciBvY2N1cnMgZHVyaW5nIHRoZSB2ZXJpZmljYXRpb24gcHJvY2Vzc1xyXG4gICAqIEBwYXJhbSBlcnJvciBUaGUgZXJyb3IgcmV0dXJuZWQgYnkgaENhcHRjaGFcclxuICAgKi9cclxuICBwcml2YXRlIG9uRXJyb3IoZXJyb3I6IGFueSkge1xyXG4gICAgdGhpcy5lcnJvci5lbWl0KGVycm9yKTtcclxuICB9XHJcblxyXG59XHJcbiJdfQ==
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmctaGNhcHRjaGEtaW52aXNpYmxlLWJ1dHRvbi5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1oY2FwdGNoYS9zcmMvbGliL25nLWhjYXB0Y2hhLWludmlzaWJsZS1idXR0b24uZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLFlBQVksRUFBRSxZQUFZLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQVUsTUFBTSxFQUFFLFdBQVcsRUFBYSxNQUFNLGVBQWUsQ0FBQztBQUNqSixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUV0RSxPQUFPLEVBQUUsY0FBYyxFQUFpQixNQUFNLHNCQUFzQixDQUFDO0FBQ3JFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQU9oRCxNQUFNLE9BQU8sa0NBQWtDO0lBYzdDLFlBQW9CLEtBQWlCLEVBQ08sTUFBcUIsRUFDN0MsSUFBWSxFQUNTLFVBQVU7UUFIL0IsVUFBSyxHQUFMLEtBQUssQ0FBWTtRQUNPLFdBQU0sR0FBTixNQUFNLENBQWU7UUFDN0MsU0FBSSxHQUFKLElBQUksQ0FBUTtRQUNTLGVBQVUsR0FBVixVQUFVLENBQUE7UUFaekMsV0FBTSxHQUF5QixJQUFJLFlBQVksRUFBVSxDQUFDO1FBQzFELFlBQU8sR0FBc0IsSUFBSSxZQUFZLEVBQU8sQ0FBQztRQUNyRCxVQUFLLEdBQXNCLElBQUksWUFBWSxFQUFPLENBQUM7UUFDbkQsVUFBSyxHQUFzQixJQUFJLFlBQVksRUFBTyxDQUFDO0lBU04sQ0FBQztJQUV4RCxRQUFRO1FBQ04sdUVBQXVFO1FBQ3ZFLElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxFQUFFO1lBQ3RCLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FB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MEJmLE1BQU0sU0FBQyxjQUFjO1lBMUJ1QyxNQUFNOzRDQTRCbEUsTUFBTSxTQUFDLFdBQVc7OztzQkFmOUIsS0FBSzsyQkFDTCxLQUFLO3FCQUVMLE1BQU07c0JBQ04sTUFBTTtvQkFDTixNQUFNO29CQUNOLE1BQU07c0JBMkNOLFlBQVksU0FBQyxPQUFPLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIEVsZW1lbnRSZWYsIEV2ZW50RW1pdHRlciwgSG9zdExpc3RlbmVyLCBJbmplY3QsIElucHV0LCBOZ1pvbmUsIE9uSW5pdCwgT3V0cHV0LCBQTEFURk9STV9JRCwgT25EZXN0cm95IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IGlzUGxhdGZvcm1Ccm93c2VyLCBpc1BsYXRmb3JtU2VydmVyIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IENBUFRDSEFfQ09ORklHLCBDYXB0Y2hhQ29uZmlnIH0gZnJvbSAnLi9uZy1oY2FwdGNoYS1jb25maWcnO1xyXG5pbXBvcnQgeyBsb2FkSENhcHRjaGEgfSBmcm9tICcuL2hjYXB0Y2hhLXV0aWxzJztcclxuXHJcbmRlY2xhcmUgY29uc3Qgd2luZG93OiBhbnk7XHJcblxyXG5ARGlyZWN0aXZlKHtcclxuICBzZWxlY3RvcjogJ1tuZ0hjYXB0Y2hhSW52aXNpYmxlQnV0dG9uXSdcclxufSlcclxuZXhwb3J0IGNsYXNzIE5nSGNhcHRjaGFJbnZpc2libGVCdXR0b25EaXJlY3RpdmUgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XHJcblxyXG4gIEBJbnB1dCgpIHNpdGVLZXk6IHN0cmluZztcclxuICBASW5wdXQoKSBsYW5ndWFnZUNvZGU6IHN0cmluZztcclxuXHJcbiAgQE91dHB1dCgpIHZlcmlmeTogRXZlbnRFbWl0dGVyPHN0cmluZz4gPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZz4oKTtcclxuICBAT3V0cHV0KCkgZXhwaXJlZDogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcclxuICBAT3V0cHV0KCkgZXJyb3I6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XHJcbiAgQE91dHB1dCgpIGNsaWNrOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xyXG5cclxuICBwcml2YXRlIGxhc3RDbGlja0V2ZW50OiBhbnk7XHJcbiAgcHJpdmF0ZSBjYXB0Y2hhJDogU3Vic2NyaXB0aW9uO1xyXG4gIHByaXZhdGUgd2lkZ2V0SWQ6IHN0cmluZztcclxuXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBlbFJlZjogRWxlbWVudFJlZixcclxuICAgICAgICAgICAgICBASW5qZWN0KENBUFRDSEFfQ09ORklHKSBwcml2YXRlIGNvbmZpZzogQ2FwdGNoYUNvbmZpZyxcclxuICAgICAgICAgICAgICBwcml2YXRlIHpvbmU6IE5nWm9uZSxcclxuICAgICAgICAgICAgICBASW5qZWN0KFBMQVRGT1JNX0lEKSBwcml2YXRlIHBsYXRmb3JtSWQpIHsgfVxyXG5cclxuICBuZ09uSW5pdCgpIHtcclxuICAgIC8vIFVzZSBsYW5ndWFnZSBjb2RlIGZyb20gbW9kdWxlIGNvbmZpZyB3aGVuIGlucHV0IHBhcmFtZXRlciBpcyBub3Qgc2V0XHJcbiAgICBpZiAoIXRoaXMubGFuZ3VhZ2VDb2RlKSB7XHJcbiAgICAgIHRoaXMubGFuZ3VhZ2VDb2RlID0gdGhpcy5jb25maWcubGFuZ3VhZ2VDb2RlO1xyXG4gICAgfVxyXG5cclxuICAgIC8vIERvIG5vdCBsb2FkIGhDYXB0Y2hhIGlmIHBsYXRmb3JtIGlzIHNlcnZlclxyXG4gICAgaWYgKGlzUGxhdGZvcm1TZXJ2ZXIodGhpcy5wbGF0Zm9ybUlkKSkge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgLy8gTG9hZCB0aGUgaENhcHRjaGEgc2NyaXB0XHJcbiAgICB0aGlzLmNhcHRjaGEkID0gbG9hZEhDYXB0Y2hhKHRoaXMubGFuZ3VhZ2VDb2RlKS5zdWJzY3JpYmUoXHJcbiAgICAgICgpID0+IHtcclxuICAgICAgICAvLyBDb25maWd1cmUgaENhcHRjaGFcclxuICAgICAgICBjb25zdCBvcHRpb25zID0ge1xyXG4gICAgICAgICAgc2l0ZWtleTogKHRoaXMuc2l0ZUtleSB8fCB0aGlzLmNvbmZpZy5zaXRlS2V5KSxcclxuICAgICAgICAgIHNpemU6ICdpbnZpc2libGUnLFxyXG4gICAgICAgICAgY2FsbGJhY2s6IChyZXMpID0+IHsgdGhpcy56b25lLnJ1bigoKSA9PiB0aGlzLm9uVmVyaWZ5KHJlcykpOyB9LFxyXG4gICAgICAgICAgJ2V4cGlyZWQtY2FsbGJhY2snOiAocmVzKSA9PiB7IHRoaXMuem9uZS5ydW4oKCkgPT4gdGhpcy5vbkV4cGlyZWQocmVzKSk7IH0sXHJcbiAgICAgICAgICAnZXJyb3ItY2FsbGJhY2snOiAoZXJyKSA9PiB7IHRoaXMuem9uZS5ydW4oKCkgPT4gdGhpcy5vbkVycm9yKGVycikpOyB9XHJcbiAgICAgICAgfTtcclxuXHJcbiAgICAgICAgLy8gUmVuZGVyIGhDYXB0Y2hhIHVzaW5nIHRoZSBkZWZpbmVkIG9wdGlvbnNcclxuICAgICAgICB0aGlzLndpZGdldElkID0gd2luZG93LmhjYXB0Y2hhLnJlbmRlcih0aGlzLmVsUmVmLm5hdGl2ZUVsZW1lbnQsIG9wdGlvbnMpO1xyXG4gICAgICB9KTtcclxuICB9XHJcblxyXG4gIG5nT25EZXN0cm95KCkge1xyXG4gICAgdGhpcy5jYXB0Y2hhJC51bnN1YnNjcmliZSgpO1xyXG4gIH1cclxuXHJcbiAgQEhvc3RMaXN0ZW5lcignY2xpY2snLCBbJyRldmVudCddKVxyXG4gIG9uQ2xpY2soZXZlbnQ6IGFueSk6IGJvb2xlYW4ge1xyXG4gICAgaWYgKGV2ZW50LmhDYXB0Y2hhVG9rZW4pIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMubGFzdENsaWNrRXZlbnQgPSBldmVudDtcclxuICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xyXG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcclxuICAgIGV2ZW50LmNhbmNlbEJ1YmJsZSA9IHRydWU7XHJcbiAgICAvLyBldmVudC5zdG9wSW1tZWRpYXRlUHJvcGFnYXRpb24oKTtcclxuXHJcbiAgICAvLyBPbmx5IGV4ZWN1dGUgaENhcHRjaGEgaWYgcGxhdGZvcm0gaXMgYnJvd3NlclxyXG4gICAgaWYgKGlzUGxhdGZvcm1Ccm93c2VyKHRoaXMucGxhdGZvcm1JZCkpIHtcclxuICAgICAgd2luZG93LmhjYXB0Y2hhLmV4ZWN1dGUodGhpcy53aWRnZXRJZCk7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIGZhbHNlO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogSXMgY2FsbGVkIHdoZW4gdGhlIHZlcmlmaWNhdGlvbiB3YXMgc3VjY2Vzc2Z1bFxyXG4gICAqIEBwYXJhbSByZXNwb25zZSBUaGUgdmVyaWZpY2F0aW9uIHRva2VuXHJcbiAgICovXHJcbiAgcHJpdmF0ZSBvblZlcmlmeShyZXNwb25zZTogc3RyaW5nKTogdm9pZCB7XHJcbiAgICBjb25zdCBldmVudCA9IHRoaXMubGFzdENsaWNrRXZlbnQgfHwge307XHJcbiAgICBldmVudC5oQ2FwdGNoYVRva2VuID0gcmVzcG9uc2U7XHJcbiAgICB0aGlzLmNsaWNrLmVtaXQoZXZlbnQpO1xyXG4gICAgdGhpcy52ZXJpZnkuZW1pdChyZXNwb25zZSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBJcyBjYWxsZWQgd2hlbiB0aGUgdmVyaWZpY2F0aW9uIGhhcyBleHBpcmVkXHJcbiAgICogQHBhcmFtIHJlc3BvbnNlIFRoZSB2ZXJpZmljYXRpb24gcmVzcG9uc2VcclxuICAgKi9cclxuICBwcml2YXRlIG9uRXhwaXJlZChyZXNwb25zZTogYW55KTogdm9pZCB7XHJcbiAgICB0aGlzLmV4cGlyZWQuZW1pdChyZXNwb25zZSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBJcyBjYWxsZWQgd2hlbiBhbiBlcnJvciBvY2N1cnMgZHVyaW5nIHRoZSB2ZXJpZmljYXRpb24gcHJvY2Vzc1xyXG4gICAqIEBwYXJhbSBlcnJvciBUaGUgZXJyb3IgcmV0dXJuZWQgYnkgaENhcHRjaGFcclxuICAgKi9cclxuICBwcml2YXRlIG9uRXJyb3IoZXJyb3I6IGFueSk6IHZvaWQge1xyXG4gICAgdGhpcy5lcnJvci5lbWl0KGVycm9yKTtcclxuICB9XHJcblxyXG59XHJcbiJdfQ==
import { Component, Input, ViewChild, ElementRef, Inject, NgZone, Output, EventEmitter, forwardRef, PLATFORM_ID } from '@angular/core';
import { NG_VALUE_ACCESSOR } from '@angular/forms';
import { isPlatformServer } from '@angular/common';
import { CAPTCHA_CONFIG } from './ng-hcaptcha-config';
import { loadHCaptcha } from './hcaptcha-utils';
import { isPlatformServer } from '@angular/common';
export class NgHcaptchaComponent {

@@ -28,3 +28,3 @@ constructor(config, zone, platformId) {

// Load the hCaptcha script
loadHCaptcha(this.languageCode).subscribe(() => {
this.captcha$ = loadHCaptcha(this.languageCode).subscribe(() => {
// Configure hCaptcha

@@ -41,5 +41,3 @@ const options = {

// Render hCaptcha using the defined options
window.hcaptcha.render(this.captcha.nativeElement, options);
// Get widget ID
this.widgetId = this.findWidgetId();
this.widgetId = window.hcaptcha.render(this.captcha.nativeElement, options);
}, (error) => {

@@ -49,2 +47,5 @@ console.error('Failed to load hCaptcha script', error);

}
ngOnDestroy() {
this.captcha$.unsubscribe();
}
// ControlValueAccessor implementation

@@ -98,15 +99,2 @@ writeValue(value) {

}
/**
* Find the widget ID of the hCaptcha container.
*/
findWidgetId() {
const children = this.captcha.nativeElement.children;
for (let i = 0; i < children.length; i++) {
// Found correct children when the hcaptchaWidgetId dataset property is set
if (children[i] && children[i].dataset && children[i].dataset.hcaptchaWidgetId) {
return children[i].dataset.hcaptchaWidgetId;
}
}
return null;
}
}

@@ -142,2 +130,2 @@ NgHcaptchaComponent.decorators = [

};
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmctaGNhcHRjaGEuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctaGNhcHRjaGEvc3JjL2xpYi9uZy1oY2FwdGNoYS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFDVCxLQUFLLEVBQ0wsU0FBUyxFQUNULFVBQVUsRUFFVixNQUFNLEVBQ04sTUFBTSxFQUNOLE1BQU0sRUFDTixZQUFZLEVBQ1osVUFBVSxFQUNWLFdBQVcsRUFDWixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQXdCLGlCQUFpQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDekUsT0FBTyxFQUFFLGNBQWMsRUFBaUIsTUFBTSxzQkFBc0IsQ0FBQztBQUNyRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDaEQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFnQm5ELE1BQU0sT0FBTyxtQkFBbUI7SUFxQjlCLFlBQ2tDLE1BQXFCLEVBQzdDLElBQVksRUFDUyxVQUFVO1FBRlAsV0FBTSxHQUFOLE1BQU0sQ0FBZTtRQUM3QyxTQUFJLEdBQUosSUFBSSxDQUFRO1FBQ1MsZUFBVSxHQUFWLFVBQVUsQ0FBQTtRQWQvQixXQUFNLEdBQXlCLElBQUksWUFBWSxFQUFVLENBQUM7UUFDMUQsWUFBTyxHQUFzQixJQUFJLFlBQVksRUFBTyxDQUFDO1FBQ3JELFVBQUssR0FBc0IsSUFBSSxZQUFZLEVBQU8sQ0FBQztRQUs3RCxhQUFRLEdBQVEsR0FBRyxFQUFFLEdBQUUsQ0FBQyxDQUFDO1FBQ3pCLGNBQVMsR0FBUSxHQUFHLEVBQUUsR0FBRSxDQUFDLENBQUM7SUFPdkIsQ0FBQztJQUdKLGlCQUFpQjtJQUVqQixRQUFRO1FBQ04sdUVBQXVFO1FBQ3ZFLElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxFQUFFO1lBQ3RCLElBQUks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LEtBQUs7bUJBQ0wsS0FBSzt1QkFDTCxLQUFLOzJCQUNMLEtBQUs7c0JBRUwsU0FBUyxTQUFDLFNBQVMsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUU7cUJBRXJDLE1BQU07c0JBQ04sTUFBTTtvQkFDTixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICBDb21wb25lbnQsXHJcbiAgSW5wdXQsXHJcbiAgVmlld0NoaWxkLFxyXG4gIEVsZW1lbnRSZWYsXHJcbiAgT25Jbml0LFxyXG4gIEluamVjdCxcclxuICBOZ1pvbmUsXHJcbiAgT3V0cHV0LFxyXG4gIEV2ZW50RW1pdHRlcixcclxuICBmb3J3YXJkUmVmLFxyXG4gIFBMQVRGT1JNX0lEXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBOR19WQUxVRV9BQ0NFU1NPUiB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgQ0FQVENIQV9DT05GSUcsIENhcHRjaGFDb25maWcgfSBmcm9tICcuL25nLWhjYXB0Y2hhLWNvbmZpZyc7XHJcbmltcG9ydCB7IGxvYWRIQ2FwdGNoYSB9IGZyb20gJy4vaGNhcHRjaGEtdXRpbHMnO1xyXG5pbXBvcnQgeyBpc1BsYXRmb3JtU2VydmVyIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuXHJcbmRlY2xhcmUgY29uc3Qgd2luZG93OiBhbnk7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ25nLWhjYXB0Y2hhJyxcclxuICB0ZW1wbGF0ZTogJzxkaXYgI2NhcHRjaGEgY2xhc3M9XCJoLWNhcHRjaGFcIj48L2Rpdj4nLFxyXG4gIHN0eWxlczogW10sXHJcbiAgcHJvdmlkZXJzOiBbXHJcbiAgICB7XHJcbiAgICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxyXG4gICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBOZ0hjYXB0Y2hhQ29tcG9uZW50KSxcclxuICAgICAgbXVsdGk6IHRydWVcclxuICAgIH1cclxuICBdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBOZ0hjYXB0Y2hhQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBDb250cm9sVmFsdWVBY2Nlc3NvciB7XHJcblxyXG4gIEBJbnB1dCgpIHNpdGVLZXk6IHN0cmluZztcclxuICBASW5wdXQoKSB0aGVtZTogc3RyaW5nO1xyXG4gIEBJbnB1dCgpIHNpemU6IHN0cmluZztcclxuICBASW5wdXQoKSB0YWJJbmRleDogbnVtYmVyO1xyXG4gIEBJbnB1dCgpIGxhbmd1YWdlQ29kZTogc3RyaW5nO1xyXG5cclxuICBAVmlld0NoaWxkKCdjYXB0Y2hhJywgeyBzdGF0aWM6IHRydWUgfSkgY2FwdGNoYTogRWxlbWVudFJlZjtcclxuXHJcbiAgQE91dHB1dCgpIHZlcmlmeTogRXZlbnRFbWl0dGVyPHN0cmluZz4gPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZz4oKTtcclxuICBAT3V0cHV0KCkgZXhwaXJlZDogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcclxuICBAT3V0cHV0KCkgZXJyb3I6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XHJcblxyXG4gIHByaXZhdGUgX3ZhbHVlOiBzdHJpbmc7XHJcbiAgcHJpdmF0ZSB3aWRnZXRJZDogc3RyaW5nO1xyXG5cclxuICBvbkNoYW5nZTogYW55ID0gKCkgPT4ge307XHJcbiAgb25Ub3VjaGVkOiBhbnkgPSAoKSA9PiB7fTtcclxuXHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgQEluamVjdChDQVBUQ0hBX0NPTkZJRykgcHJpdmF0ZSBjb25maWc6IENhcHRjaGFDb25maWcsXHJcbiAgICBwcml2YXRlIHpvbmU6IE5nWm9uZSxcclxuICAgIEBJbmplY3QoUExBVEZPUk1fSUQpIHByaXZhdGUgcGxhdGZvcm1JZFxyXG4gICkge31cclxuXHJcblxyXG4gIC8vIEluaXRpYWxpemF0aW9uXHJcblxyXG4gIG5nT25Jbml0KCkge1xyXG4gICAgLy8gVXNlIGxhbmd1YWdlIGNvZGUgZnJvbSBtb2R1bGUgY29uZmlnIHdoZW4gaW5wdXQgcGFyYW1ldGVyIGlzIG5vdCBzZXRcclxuICAgIGlmICghdGhpcy5sYW5ndWFnZUNvZGUpIHtcclxuICAgICAgdGhpcy5sYW5ndWFnZUNvZGUgPSB0aGlzLmNvbmZpZy5sYW5ndWFnZUNvZGU7XHJcbiAgICB9XHJcblxyXG4gICAgLy8gRG8gbm90IGxvYWQgaENhcHRjaGEgaWYgcGxhdGZvcm0gaXMgc2VydmVyXHJcbiAgICBpZiAoaXNQbGF0Zm9ybVNlcnZlcih0aGlzLnBsYXRmb3JtSWQpKSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICAvLyBMb2FkIHRoZSBoQ2FwdGNoYSBzY3JpcHRcclxuICAgIGxvYWRIQ2FwdGNoYSh0aGlzLmxhbmd1YWdlQ29kZSkuc3Vic2NyaWJlKFxyXG4gICAgICAoKSA9PiB7XHJcbiAgICAgICAgLy8gQ29uZmlndXJlIGhDYXB0Y2hhXHJcbiAgICAgICAgY29uc3Qgb3B0aW9ucyA9IHtcclxuICAgICAgICAgIHNpdGVrZXk6ICh0aGlzLnNpdGVLZXkgfHwgdGhpcy5jb25maWcuc2l0ZUtleSksXHJcbiAgICAgICAgICB0aGVtZTogdGhpcy50aGVtZSxcclxuICAgICAgICAgIHNpemU6IHRoaXMuc2l6ZSxcclxuICAgICAgICAgIHRhYmluZGV4OiB0aGlzLnRhYkluZGV4LFxyXG4gICAgICAgICAgY2FsbGJhY2s6IChyZXMpID0+IHsgdGhpcy56b25lLnJ1bigoKSA9PiB0aGlzLm9uVmVyaWZ5KHJlcykpOyB9LFxyXG4gICAgICAgICAgJ2V4cGlyZWQtY2FsbGJhY2snOiAocmVzKSA9PiB7IHRoaXMuem9uZS5ydW4oKCkgPT4gdGhpcy5vbkV4cGlyZWQocmVzKSk7IH0sXHJcbiAgICAgICAgICAnZXJyb3ItY2FsbGJhY2snOiAoZXJyKSA9PiB7IHRoaXMuem9uZS5ydW4oKCkgPT4gdGhpcy5vbkVycm9yKGVycikpOyB9XHJcbiAgICAgICAgfTtcclxuXHJcbiAgICAgICAgLy8gUmVuZGVyIGhDYXB0Y2hhIHVzaW5nIHRoZSBkZWZpbmVkIG9wdGlvbnNcclxuICAgICAgICB3aW5kb3cuaGNhcHRjaGEucmVuZGVyKHRoaXMuY2FwdGNoYS5uYXRpdmVFbGVtZW50LCBvcHRpb25zKTtcclxuXHJcbiAgICAgICAgLy8gR2V0IHdpZGdldCBJRFxyXG4gICAgICAgIHRoaXMud2lkZ2V0SWQgPSB0aGlzLmZpbmRXaWRnZXRJZCgpO1xyXG4gICAgICB9LFxyXG4gICAgICAoZXJyb3IpID0+IHtcclxuICAgICAgICBjb25zb2xlLmVycm9yKCdGYWlsZWQgdG8gbG9hZCBoQ2FwdGNoYSBzY3JpcHQnLCBlcnJvcik7XHJcbiAgICAgIH1cclxuICAgICk7XHJcbiAgfVxyXG5cclxuXHJcbiAgLy8gQ29udHJvbFZhbHVlQWNjZXNzb3IgaW1wbGVtZW50YXRpb25cclxuXHJcbiAgd3JpdGVWYWx1ZSh2YWx1ZTogc3RyaW5nKSB7XHJcbiAgICAvLyBOZWVkcyB0byBiZSBpbXBsZW1lbnRlZCB0byBtYWtlIHRoZSBGb3JtR3JvdXAncyByZXNldCBmdW5jdGlvbiB3b3JrXHJcbiAgICB0aGlzLnZhbHVlID0gdmFsdWU7XHJcblxyXG4gICAgLy8gUmVzZXQgaENhcHRjaGEuXHJcbiAgICAvLyBXZSBuZWVkIHRvIGNoZWNrIHdoZXRoZXIgd2luZG93LmhjYXB0Y2hhIGlzIGRlZmluZWQgYmVjYXVzZVxyXG4gICAgLy8gd3JpdGVWYWx1ZSh2YWx1ZTogYW55KSBjYW4gYmUgY2FsbGVkIGJlZm9yZSBoQ2FwdGNoYSBoYXMgYmVlbiBpbnRpYWxpemVkLlxyXG4gICAgaWYgKCF0aGlzLnZhbHVlICYmIHdpbmRvdy5oY2FwdGNoYSkge1xyXG4gICAgICB3aW5kb3cuaGNhcHRjaGEucmVzZXQodGhpcy53aWRnZXRJZCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICByZWdpc3Rlck9uQ2hhbmdlKGZuOiBhbnkpIHtcclxuICAgIHRoaXMub25DaGFuZ2UgPSBmbjtcclxuICB9XHJcblxyXG4gIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiBhbnkpIHtcclxuICAgIHRoaXMub25Ub3VjaGVkID0gZm47XHJcbiAgfVxyXG5cclxuICBnZXQgdmFsdWUoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5fdmFsdWU7XHJcbiAgfVxyXG5cclxuICBzZXQgdmFsdWUodmFsdWU6IHN0cmluZykge1xyXG4gICAgdGhpcy5fdmFsdWUgPSB2YWx1ZTtcclxuICAgIHRoaXMub25DaGFuZ2UodmFsdWUpO1xyXG4gICAgdGhpcy5vblRvdWNoZWQoKTtcclxuICB9XHJcblxyXG5cclxuICAvLyBJbnRlcm5hbCBmdW5jdGlvbnNcclxuXHJcbiAgLyoqXHJcbiAgICogSXMgY2FsbGVkIHdoZW4gdGhlIHZlcmlmaWNhdGlvbiB3YXMgc3VjY2Vzc2Z1bFxyXG4gICAqIEBwYXJhbSByZXNwb25zZSBUaGUgdmVyaWZpY2F0aW9uIHRva2VuXHJcbiAgICovXHJcbiAgcHJpdmF0ZSBvblZlcmlmeShyZXNwb25zZTogc3RyaW5nKSB7XHJcbiAgICB0aGlzLnZhbHVlID0gcmVzcG9uc2U7XHJcbiAgICB0aGlzLnZlcmlmeS5lbWl0KHJlc3BvbnNlKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIElzIGNhbGxlZCB3aGVuIHRoZSB2ZXJpZmljYXRpb24gaGFzIGV4cGlyZWRcclxuICAgKiBAcGFyYW0gcmVzcG9uc2UgVGhlIHZlcmlmaWNhdGlvbiByZXNwb25zZVxyXG4gICAqL1xyXG4gIHByaXZhdGUgb25FeHBpcmVkKHJlc3BvbnNlOiBhbnkpIHtcclxuICAgIHRoaXMuZXhwaXJlZC5lbWl0KHJlc3BvbnNlKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIElzIGNhbGxlZCB3aGVuIGFuIGVycm9yIG9jY3VycyBkdXJpbmcgdGhlIHZlcmlmaWNhdGlvbiBwcm9jZXNzXHJcbiAgICogQHBhcmFtIGVycm9yIFRoZSBlcnJvciByZXR1cm5lZCBieSBoQ2FwdGNoYVxyXG4gICAqL1xyXG4gIHByaXZhdGUgb25FcnJvcihlcnJvcjogYW55KSB7XHJcbiAgICB0aGlzLmVycm9yLmVtaXQoZXJyb3IpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogRmluZCB0aGUgd2lkZ2V0IElEIG9mIHRoZSBoQ2FwdGNoYSBjb250YWluZXIuXHJcbiAgICovXHJcbiAgcHJpdmF0ZSBmaW5kV2lkZ2V0SWQoKTogc3RyaW5nIHtcclxuICAgIGNvbnN0IGNoaWxkcmVuID0gdGhpcy5jYXB0Y2hhLm5hdGl2ZUVsZW1lbnQuY2hpbGRyZW47XHJcblxyXG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBjaGlsZHJlbi5sZW5ndGg7IGkrKykge1xyXG4gICAgICAvLyBGb3VuZCBjb3JyZWN0IGNoaWxkcmVuIHdoZW4gdGhlIGhjYXB0Y2hhV2lkZ2V0SWQgZGF0YXNldCBwcm9wZXJ0eSBpcyBzZXRcclxuICAgICAgaWYgKGNoaWxkcmVuW2ldICYmIGNoaWxkcmVuW2ldLmRhdGFzZXQgJiYgY2hpbGRyZW5baV0uZGF0YXNldC5oY2FwdGNoYVdpZGdldElkKSB7XHJcbiAgICAgICAgcmV0dXJuIGNoaWxkcmVuW2ldLmRhdGFzZXQuaGNhcHRjaGFXaWRnZXRJZDtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBudWxsO1xyXG4gIH1cclxuXHJcbn1cclxuIl19
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmctaGNhcHRjaGEuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctaGNhcHRjaGEvc3JjL2xpYi9uZy1oY2FwdGNoYS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFDVCxLQUFLLEVBQ0wsU0FBUyxFQUNULFVBQVUsRUFFVixNQUFNLEVBQ04sTUFBTSxFQUNOLE1BQU0sRUFDTixZQUFZLEVBQ1osVUFBVSxFQUNWLFdBQVcsRUFFWixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQXdCLGlCQUFpQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDekUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFFbkQsT0FBTyxFQUFFLGNBQWMsRUFBaUIsTUFBTSxzQkFBc0IsQ0FBQztBQUNyRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFnQmhELE1BQU0sT0FBTyxtQkFBbUI7SUFzQjlCLFlBQ2tDLE1BQXFCLEVBQzdDLElBQVksRUFDUyxVQUFVO1FBRlAsV0FBTSxHQUFOLE1BQU0sQ0FBZTtRQUM3QyxTQUFJLEdBQUosSUFBSSxDQUFRO1FBQ1MsZUFBVSxHQUFWLFVBQVUsQ0FBQTtRQWYvQixXQUFNLEdBQXlCLElBQUksWUFBWSxFQUFVLENBQUM7UUFDMUQsWUFBTyxHQUFzQixJQUFJLFlBQVksRUFBTyxDQUFDO1FBQ3JELFVBQUssR0FBc0IsSUFBSSxZQUFZLEVBQU8sQ0FBQztRQU03RCxhQUFRLEdBQVEsR0FBRyxFQUFFLEdBQUUsQ0FBQyxDQUFDO1FBQ3pCLGNBQVMsR0FBUSxHQUFHLEVBQUUsR0FBRSxDQUFDLENBQUM7SUFPdkIsQ0FBQztJQUdKLGlCQUFpQjtJQUVqQixRQUFRO1FBQ04sdUVBQXVFO1FBQ3ZFLElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxFQUFFO1lBQ3RCLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUM7U0FDOUM7UUFFRCw2Q0FBNkM7UUFDN0MsSUFBSSxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLEVBQUU7WUFDckMsT0FBTztTQUNSO1FBRUQsMkJBQTJCO1FBQzNCLElBQUksQ0FBQyxRQUFRLEdBQUcsWUFBWSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQyxTQUFTLENBQ3ZELEdBQUcsRUFBRTtZQUNILHFCQUFxQjtZQUNyQixNQUFNLE9BQU8sR0FBRztnQkFDZCxPQUFPLEVBQUUsQ0FBQyxJQUFJLENBQUMsT0FBTyxJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDO2dCQUM5QyxLQUFLLEVBQUUsSUFBSSxDQUFDLEtBQUs7Z0JBQ2pCLElBQUksRUFBRSxJQUFJLENBQUMsSUFBSTtnQkFDZixRQUFRLEVBQUUsSUFBSSxDQUFDLFFBQVE7Z0JBQ3ZCLFFBQVEsRUFBRSxDQUFDLEdBQUcsRUFBRSxFQUFFLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFDL0Qsa0JBQWtCLEVBQUUsQ0FBQyxHQUFHLEVBQUUsRUFBRSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQzFFLGdCQUFnQixFQUFFLENBQUMsR0FBRyxFQUFFLEVBQUUsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO2FBQ3ZFLENBQUM7WUFFRiw0Q0FBNEM7WUFDNUMsSUFBSSxDQUFDLFFBQVEsR0FBRyxNQUFNLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLGFBQWEsRUFBRSxPQUFPLENBQUMsQ0FBQztRQUU5RSxDQUFDLEVBQ0QsQ0FBQyxLQUFLLEVBQUUsRUFBRTtZQUNSLE9BQU8sQ0FBQyxLQUFLLENBQUMsZ0NBQWdDLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFDekQsQ0FBQyxDQUNGLENBQUM7SUFDSixDQUFDO0lBRUQsV0FBVztRQUNULElBQUksQ0FBQyxRQUFRLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDOUIsQ0FBQztJQUVELHNDQUFzQztJQUV0QyxVQUFVLENBQUMsS0FBYTtRQUN0QixzRUFBc0U7UUFDdEUsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7UUFFbkIsa0JBQWtCO1FBQ2xCLDhEQUE4RDtRQUM5RCw0RUFBNEU7UUFDNUUsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLElBQUksTUFBTSxDQUFDLFFBQVEsRUFBRTtZQUNsQyxNQUFNLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7U0FDdEM7SUFDSCxDQUFDO0lBRUQsZ0JBQWdCLENBQUMsRUFBTztRQUN0QixJQUFJLENBQUMsUUFBUSxHQUFHLEVBQUUsQ0FBQztJQUNyQixDQUFDO0lBRUQsaUJBQWlCLENBQUMsRUFBTztRQUN2QixJQUFJLENBQUMsU0FBUyxHQUFHLEVBQUUsQ0FBQztJQUN0QixDQUFDO0lBRUQsSUFBSSxLQUFLO1FBQ1AsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDO0lBQ3JCLENBQUM7SUFFRCxJQUFJLEtBQUssQ0FBQyxLQUFhO1FBQ3JCLElBQUksQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDO1FBQ3BCLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDckIsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO0lBQ25CLENBQUM7SUFHRCxxQkFBcUI7SUFFckI7OztPQUdHO0lBQ0ssUUFBUSxDQUFDLFFBQWdCO1FBQy9CLElBQUksQ0FBQyxLQUFLLEdBQUcsUUFBUSxDQUFDO1FBQ3RCLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQzdCLENBQUM7SUFFRDs7O09BR0c7SUFDSyxTQUFTLENBQUMsUUFBYTtRQUM3QixJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUM5QixDQUFDO0lBRUQ7OztPQUdHO0lBQ0ssT0FBTyxDQUFDLEtBQVU7UUFDeEIsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDekIsQ0FBQzs7O1lBNUlGLFNBQVMsU0FBQztnQkFDVCxRQUFRLEVBQUUsYUFBYTtnQkFDdkIsUUFBUSxFQUFFLHdDQUF3QztnQkFFbEQsU0FBUyxFQUFFO29CQUNUO3dCQUNFLE9BQU8sRUFBRSxpQkFBaUI7d0JBQzFCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsbUJBQW1CLENBQUM7d0JBQ2xELEtBQUssRUFBRSxJQUFJO3FCQUNaO2lCQUNGO2FBQ0Y7Ozs0Q0F3QkksTUFBTSxTQUFDLGNBQWM7WUFsRHhCLE1BQU07NENBb0RILE1BQU0sU0FBQyxXQUFXOzs7c0JBdkJwQixLQUFLO29CQUNMLEtBQUs7bUJBQ0wsS0FBSzt1QkFDTCxLQUFLOzJCQUNMLEtBQUs7c0JBRUwsU0FBUyxTQUFDLFNBQVMsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUU7cUJBRXJDLE1BQU07c0JBQ04sTUFBTTtvQkFDTixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICBDb21wb25lbnQsXHJcbiAgSW5wdXQsXHJcbiAgVmlld0NoaWxkLFxyXG4gIEVsZW1lbnRSZWYsXHJcbiAgT25Jbml0LFxyXG4gIEluamVjdCxcclxuICBOZ1pvbmUsXHJcbiAgT3V0cHV0LFxyXG4gIEV2ZW50RW1pdHRlcixcclxuICBmb3J3YXJkUmVmLFxyXG4gIFBMQVRGT1JNX0lELFxyXG4gIE9uRGVzdHJveVxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBDb250cm9sVmFsdWVBY2Nlc3NvciwgTkdfVkFMVUVfQUNDRVNTT1IgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IGlzUGxhdGZvcm1TZXJ2ZXIgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgQ0FQVENIQV9DT05GSUcsIENhcHRjaGFDb25maWcgfSBmcm9tICcuL25nLWhjYXB0Y2hhLWNvbmZpZyc7XHJcbmltcG9ydCB7IGxvYWRIQ2FwdGNoYSB9IGZyb20gJy4vaGNhcHRjaGEtdXRpbHMnO1xyXG5cclxuZGVjbGFyZSBjb25zdCB3aW5kb3c6IGFueTtcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnbmctaGNhcHRjaGEnLFxyXG4gIHRlbXBsYXRlOiAnPGRpdiAjY2FwdGNoYSBjbGFzcz1cImgtY2FwdGNoYVwiPjwvZGl2PicsXHJcbiAgc3R5bGVzOiBbXSxcclxuICBwcm92aWRlcnM6IFtcclxuICAgIHtcclxuICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXHJcbiAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IE5nSGNhcHRjaGFDb21wb25lbnQpLFxyXG4gICAgICBtdWx0aTogdHJ1ZVxyXG4gICAgfVxyXG4gIF1cclxufSlcclxuZXhwb3J0IGNsYXNzIE5nSGNhcHRjaGFDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSwgQ29udHJvbFZhbHVlQWNjZXNzb3Ige1xyXG5cclxuICBASW5wdXQoKSBzaXRlS2V5OiBzdHJpbmc7XHJcbiAgQElucHV0KCkgdGhlbWU6IHN0cmluZztcclxuICBASW5wdXQoKSBzaXplOiBzdHJpbmc7XHJcbiAgQElucHV0KCkgdGFiSW5kZXg6IG51bWJlcjtcclxuICBASW5wdXQoKSBsYW5ndWFnZUNvZGU6IHN0cmluZztcclxuXHJcbiAgQFZpZXdDaGlsZCgnY2FwdGNoYScsIHsgc3RhdGljOiB0cnVlIH0pIGNhcHRjaGE6IEVsZW1lbnRSZWY7XHJcblxyXG4gIEBPdXRwdXQoKSB2ZXJpZnk6IEV2ZW50RW1pdHRlcjxzdHJpbmc+ID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KCk7XHJcbiAgQE91dHB1dCgpIGV4cGlyZWQ6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XHJcbiAgQE91dHB1dCgpIGVycm9yOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xyXG5cclxuICBwcml2YXRlIF92YWx1ZTogc3RyaW5nO1xyXG4gIHByaXZhdGUgd2lkZ2V0SWQ6IHN0cmluZztcclxuICBwcml2YXRlIGNhcHRjaGEkOiBTdWJzY3JpcHRpb247XHJcblxyXG4gIG9uQ2hhbmdlOiBhbnkgPSAoKSA9PiB7fTtcclxuICBvblRvdWNoZWQ6IGFueSA9ICgpID0+IHt9O1xyXG5cclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBASW5qZWN0KENBUFRDSEFfQ09ORklHKSBwcml2YXRlIGNvbmZpZzogQ2FwdGNoYUNvbmZpZyxcclxuICAgIHByaXZhdGUgem9uZTogTmdab25lLFxyXG4gICAgQEluamVjdChQTEFURk9STV9JRCkgcHJpdmF0ZSBwbGF0Zm9ybUlkXHJcbiAgKSB7fVxyXG5cclxuXHJcbiAgLy8gSW5pdGlhbGl6YXRpb25cclxuXHJcbiAgbmdPbkluaXQoKSB7XHJcbiAgICAvLyBVc2UgbGFuZ3VhZ2UgY29kZSBmcm9tIG1vZHVsZSBjb25maWcgd2hlbiBpbnB1dCBwYXJhbWV0ZXIgaXMgbm90IHNldFxyXG4gICAgaWYgKCF0aGlzLmxhbmd1YWdlQ29kZSkge1xyXG4gICAgICB0aGlzLmxhbmd1YWdlQ29kZSA9IHRoaXMuY29uZmlnLmxhbmd1YWdlQ29kZTtcclxuICAgIH1cclxuXHJcbiAgICAvLyBEbyBub3QgbG9hZCBoQ2FwdGNoYSBpZiBwbGF0Zm9ybSBpcyBzZXJ2ZXJcclxuICAgIGlmIChpc1BsYXRmb3JtU2VydmVyKHRoaXMucGxhdGZvcm1JZCkpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIC8vIExvYWQgdGhlIGhDYXB0Y2hhIHNjcmlwdFxyXG4gICAgdGhpcy5jYXB0Y2hhJCA9IGxvYWRIQ2FwdGNoYSh0aGlzLmxhbmd1YWdlQ29kZSkuc3Vic2NyaWJlKFxyXG4gICAgICAoKSA9PiB7XHJcbiAgICAgICAgLy8gQ29uZmlndXJlIGhDYXB0Y2hhXHJcbiAgICAgICAgY29uc3Qgb3B0aW9ucyA9IHtcclxuICAgICAgICAgIHNpdGVrZXk6ICh0aGlzLnNpdGVLZXkgfHwgdGhpcy5jb25maWcuc2l0ZUtleSksXHJcbiAgICAgICAgICB0aGVtZTogdGhpcy50aGVtZSxcclxuICAgICAgICAgIHNpemU6IHRoaXMuc2l6ZSxcclxuICAgICAgICAgIHRhYmluZGV4OiB0aGlzLnRhYkluZGV4LFxyXG4gICAgICAgICAgY2FsbGJhY2s6IChyZXMpID0+IHsgdGhpcy56b25lLnJ1bigoKSA9PiB0aGlzLm9uVmVyaWZ5KHJlcykpOyB9LFxyXG4gICAgICAgICAgJ2V4cGlyZWQtY2FsbGJhY2snOiAocmVzKSA9PiB7IHRoaXMuem9uZS5ydW4oKCkgPT4gdGhpcy5vbkV4cGlyZWQocmVzKSk7IH0sXHJcbiAgICAgICAgICAnZXJyb3ItY2FsbGJhY2snOiAoZXJyKSA9PiB7IHRoaXMuem9uZS5ydW4oKCkgPT4gdGhpcy5vbkVycm9yKGVycikpOyB9XHJcbiAgICAgICAgfTtcclxuXHJcbiAgICAgICAgLy8gUmVuZGVyIGhDYXB0Y2hhIHVzaW5nIHRoZSBkZWZpbmVkIG9wdGlvbnNcclxuICAgICAgICB0aGlzLndpZGdldElkID0gd2luZG93LmhjYXB0Y2hhLnJlbmRlcih0aGlzLmNhcHRjaGEubmF0aXZlRWxlbWVudCwgb3B0aW9ucyk7XHJcblxyXG4gICAgICB9LFxyXG4gICAgICAoZXJyb3IpID0+IHtcclxuICAgICAgICBjb25zb2xlLmVycm9yKCdGYWlsZWQgdG8gbG9hZCBoQ2FwdGNoYSBzY3JpcHQnLCBlcnJvcik7XHJcbiAgICAgIH1cclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBuZ09uRGVzdHJveSgpIHtcclxuICAgIHRoaXMuY2FwdGNoYSQudW5zdWJzY3JpYmUoKTtcclxuICB9XHJcblxyXG4gIC8vIENvbnRyb2xWYWx1ZUFjY2Vzc29yIGltcGxlbWVudGF0aW9uXHJcblxyXG4gIHdyaXRlVmFsdWUodmFsdWU6IHN0cmluZykge1xyXG4gICAgLy8gTmVlZHMgdG8gYmUgaW1wbGVtZW50ZWQgdG8gbWFrZSB0aGUgRm9ybUdyb3VwJ3MgcmVzZXQgZnVuY3Rpb24gd29ya1xyXG4gICAgdGhpcy52YWx1ZSA9IHZhbHVlO1xyXG5cclxuICAgIC8vIFJlc2V0IGhDYXB0Y2hhLlxyXG4gICAgLy8gV2UgbmVlZCB0byBjaGVjayB3aGV0aGVyIHdpbmRvdy5oY2FwdGNoYSBpcyBkZWZpbmVkIGJlY2F1c2VcclxuICAgIC8vIHdyaXRlVmFsdWUodmFsdWU6IGFueSkgY2FuIGJlIGNhbGxlZCBiZWZvcmUgaENhcHRjaGEgaGFzIGJlZW4gaW50aWFsaXplZC5cclxuICAgIGlmICghdGhpcy52YWx1ZSAmJiB3aW5kb3cuaGNhcHRjaGEpIHtcclxuICAgICAgd2luZG93LmhjYXB0Y2hhLnJlc2V0KHRoaXMud2lkZ2V0SWQpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcmVnaXN0ZXJPbkNoYW5nZShmbjogYW55KSB7XHJcbiAgICB0aGlzLm9uQ2hhbmdlID0gZm47XHJcbiAgfVxyXG5cclxuICByZWdpc3Rlck9uVG91Y2hlZChmbjogYW55KSB7XHJcbiAgICB0aGlzLm9uVG91Y2hlZCA9IGZuO1xyXG4gIH1cclxuXHJcbiAgZ2V0IHZhbHVlKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuX3ZhbHVlO1xyXG4gIH1cclxuXHJcbiAgc2V0IHZhbHVlKHZhbHVlOiBzdHJpbmcpIHtcclxuICAgIHRoaXMuX3ZhbHVlID0gdmFsdWU7XHJcbiAgICB0aGlzLm9uQ2hhbmdlKHZhbHVlKTtcclxuICAgIHRoaXMub25Ub3VjaGVkKCk7XHJcbiAgfVxyXG5cclxuXHJcbiAgLy8gSW50ZXJuYWwgZnVuY3Rpb25zXHJcblxyXG4gIC8qKlxyXG4gICAqIElzIGNhbGxlZCB3aGVuIHRoZSB2ZXJpZmljYXRpb24gd2FzIHN1Y2Nlc3NmdWxcclxuICAgKiBAcGFyYW0gcmVzcG9uc2UgVGhlIHZlcmlmaWNhdGlvbiB0b2tlblxyXG4gICAqL1xyXG4gIHByaXZhdGUgb25WZXJpZnkocmVzcG9uc2U6IHN0cmluZykge1xyXG4gICAgdGhpcy52YWx1ZSA9IHJlc3BvbnNlO1xyXG4gICAgdGhpcy52ZXJpZnkuZW1pdChyZXNwb25zZSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBJcyBjYWxsZWQgd2hlbiB0aGUgdmVyaWZpY2F0aW9uIGhhcyBleHBpcmVkXHJcbiAgICogQHBhcmFtIHJlc3BvbnNlIFRoZSB2ZXJpZmljYXRpb24gcmVzcG9uc2VcclxuICAgKi9cclxuICBwcml2YXRlIG9uRXhwaXJlZChyZXNwb25zZTogYW55KSB7XHJcbiAgICB0aGlzLmV4cGlyZWQuZW1pdChyZXNwb25zZSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBJcyBjYWxsZWQgd2hlbiBhbiBlcnJvciBvY2N1cnMgZHVyaW5nIHRoZSB2ZXJpZmljYXRpb24gcHJvY2Vzc1xyXG4gICAqIEBwYXJhbSBlcnJvciBUaGUgZXJyb3IgcmV0dXJuZWQgYnkgaENhcHRjaGFcclxuICAgKi9cclxuICBwcml2YXRlIG9uRXJyb3IoZXJyb3I6IGFueSkge1xyXG4gICAgdGhpcy5lcnJvci5lbWl0KGVycm9yKTtcclxuICB9XHJcbn1cclxuIl19
import { InjectionToken, EventEmitter, Component, forwardRef, Inject, NgZone, PLATFORM_ID, Input, ViewChild, Output, Directive, ElementRef, HostListener, NgModule } from '@angular/core';
import { NG_VALUE_ACCESSOR } from '@angular/forms';
import { isPlatformServer, isPlatformBrowser } from '@angular/common';
import { Observable } from 'rxjs';
import { isPlatformServer, isPlatformBrowser } from '@angular/common';

@@ -61,3 +61,3 @@ const CAPTCHA_CONFIG = new InjectionToken('CAPTCHA_CONFIG');

// Load the hCaptcha script
loadHCaptcha(this.languageCode).subscribe(() => {
this.captcha$ = loadHCaptcha(this.languageCode).subscribe(() => {
// Configure hCaptcha

@@ -74,5 +74,3 @@ const options = {

// Render hCaptcha using the defined options
window.hcaptcha.render(this.captcha.nativeElement, options);
// Get widget ID
this.widgetId = this.findWidgetId();
this.widgetId = window.hcaptcha.render(this.captcha.nativeElement, options);
}, (error) => {

@@ -82,2 +80,5 @@ console.error('Failed to load hCaptcha script', error);

}
ngOnDestroy() {
this.captcha$.unsubscribe();
}
// ControlValueAccessor implementation

@@ -131,15 +132,2 @@ writeValue(value) {

}
/**
* Find the widget ID of the hCaptcha container.
*/
findWidgetId() {
const children = this.captcha.nativeElement.children;
for (let i = 0; i < children.length; i++) {
// Found correct children when the hcaptchaWidgetId dataset property is set
if (children[i] && children[i].dataset && children[i].dataset.hcaptchaWidgetId) {
return children[i].dataset.hcaptchaWidgetId;
}
}
return null;
}
}

@@ -197,3 +185,3 @@ NgHcaptchaComponent.decorators = [

// Load the hCaptcha script
loadHCaptcha(this.languageCode).subscribe(() => {
this.captcha$ = loadHCaptcha(this.languageCode).subscribe(() => {
// Configure hCaptcha

@@ -208,5 +196,8 @@ const options = {

// Render hCaptcha using the defined options
window.hcaptcha.render(this.elRef.nativeElement, options);
this.widgetId = window.hcaptcha.render(this.elRef.nativeElement, options);
});
}
ngOnDestroy() {
this.captcha$.unsubscribe();
}
onClick(event) {

@@ -219,7 +210,7 @@ if (event.hCaptchaToken) {

event.preventDefault();
event.cancelBuble = true;
event.stopImmediatePropagation();
event.cancelBubble = true;
// event.stopImmediatePropagation();
// Only execute hCaptcha if platform is browser
if (isPlatformBrowser(this.platformId)) {
window.hcaptcha.execute();
window.hcaptcha.execute(this.widgetId);
}

@@ -226,0 +217,0 @@ return false;

@@ -1,4 +0,4 @@

import { ElementRef, EventEmitter, NgZone, OnInit } from '@angular/core';
import { ElementRef, EventEmitter, NgZone, OnInit, OnDestroy } from '@angular/core';
import { CaptchaConfig } from './ng-hcaptcha-config';
export declare class NgHcaptchaInvisibleButtonDirective implements OnInit {
export declare class NgHcaptchaInvisibleButtonDirective implements OnInit, OnDestroy {
private elRef;

@@ -15,4 +15,7 @@ private config;

private lastClickEvent;
private captcha$;
private widgetId;
constructor(elRef: ElementRef, config: CaptchaConfig, zone: NgZone, platformId: any);
ngOnInit(): void;
ngOnDestroy(): void;
onClick(event: any): boolean;

@@ -19,0 +22,0 @@ /**

@@ -1,5 +0,5 @@

import { ElementRef, OnInit, NgZone, EventEmitter } from '@angular/core';
import { ElementRef, OnInit, NgZone, EventEmitter, OnDestroy } from '@angular/core';
import { ControlValueAccessor } from '@angular/forms';
import { CaptchaConfig } from './ng-hcaptcha-config';
export declare class NgHcaptchaComponent implements OnInit, ControlValueAccessor {
export declare class NgHcaptchaComponent implements OnInit, OnDestroy, ControlValueAccessor {
private config;

@@ -19,2 +19,3 @@ private zone;

private widgetId;
private captcha$;
onChange: any;

@@ -24,2 +25,3 @@ onTouched: any;

ngOnInit(): void;
ngOnDestroy(): void;
writeValue(value: string): void;

@@ -45,6 +47,2 @@ registerOnChange(fn: any): void;

private onError;
/**
* Find the widget ID of the hCaptcha container.
*/
private findWidgetId;
}

@@ -1,1 +0,1 @@

{"__symbolic":"module","version":4,"metadata":{"CaptchaConfig":{"__symbolic":"interface"},"CAPTCHA_CONFIG":{"__symbolic":"new","expression":{"__symbolic":"reference","module":"@angular/core","name":"InjectionToken","line":16,"character":34},"arguments":["CAPTCHA_CONFIG"]},"NgHcaptchaComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":20,"character":1},"arguments":[{"selector":"ng-hcaptcha","template":"<div #captcha class=\"h-captcha\"></div>","styles":[],"providers":[{"provide":{"__symbolic":"reference","module":"@angular/forms","name":"NG_VALUE_ACCESSOR","line":26,"character":15},"useExisting":{"__symbolic":"reference","name":"NgHcaptchaComponent"},"multi":true}]}]}],"members":{"siteKey":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":34,"character":3}}]}],"theme":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":35,"character":3}}]}],"size":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":36,"character":3}}]}],"tabIndex":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":37,"character":3}}]}],"languageCode":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":38,"character":3}}]}],"captcha":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChild","line":40,"character":3},"arguments":["captcha",{"static":true}]}]}],"verify":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":42,"character":3}}]}],"expired":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":43,"character":3}}]}],"error":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":44,"character":3}}]}],"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":54,"character":5},"arguments":[{"__symbolic":"reference","name":"CAPTCHA_CONFIG"}]}],null,[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":56,"character":5},"arguments":[{"__symbolic":"reference","module":"@angular/core","name":"PLATFORM_ID","line":56,"character":12}]}]],"parameters":[{"__symbolic":"reference","name":"CaptchaConfig"},{"__symbolic":"reference","module":"@angular/core","name":"NgZone","line":55,"character":18},null]}],"ngOnInit":[{"__symbolic":"method"}],"writeValue":[{"__symbolic":"method"}],"registerOnChange":[{"__symbolic":"method"}],"registerOnTouched":[{"__symbolic":"method"}],"onVerify":[{"__symbolic":"method"}],"onExpired":[{"__symbolic":"method"}],"onError":[{"__symbolic":"method"}],"findWidgetId":[{"__symbolic":"method"}]}},"NgHcaptchaInvisibleButtonDirective":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Directive","line":7,"character":1},"arguments":[{"selector":"[ngHcaptchaInvisibleButton]"}]}],"members":{"siteKey":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":12,"character":3}}]}],"languageCode":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":13,"character":3}}]}],"verify":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":15,"character":3}}]}],"expired":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":16,"character":3}}]}],"error":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":17,"character":3}}]}],"click":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":18,"character":3}}]}],"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[null,[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":23,"character":15},"arguments":[{"__symbolic":"reference","name":"CAPTCHA_CONFIG"}]}],null,[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":25,"character":15},"arguments":[{"__symbolic":"reference","module":"@angular/core","name":"PLATFORM_ID","line":25,"character":22}]}]],"parameters":[{"__symbolic":"reference","module":"@angular/core","name":"ElementRef","line":22,"character":29},{"__symbolic":"reference","name":"CaptchaConfig"},{"__symbolic":"reference","module":"@angular/core","name":"NgZone","line":24,"character":28},null]}],"ngOnInit":[{"__symbolic":"method"}],"onClick":[{"__symbolic":"method","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostListener","line":55,"character":3},"arguments":["click",["$event"]]}]}],"onVerify":[{"__symbolic":"method"}],"onExpired":[{"__symbolic":"method"}],"onError":[{"__symbolic":"method"}]}},"NgHcaptchaModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":5,"character":1},"arguments":[{"imports":[],"declarations":[{"__symbolic":"reference","name":"NgHcaptchaComponent"},{"__symbolic":"reference","name":"NgHcaptchaInvisibleButtonDirective"}],"exports":[{"__symbolic":"reference","name":"NgHcaptchaComponent"},{"__symbolic":"reference","name":"NgHcaptchaInvisibleButtonDirective"}]}]}],"members":{},"statics":{"forRoot":{"__symbolic":"function","parameters":["config"],"value":{"ngModule":{"__symbolic":"reference","name":"NgHcaptchaModule"},"providers":[{"provide":{"__symbolic":"reference","name":"CAPTCHA_CONFIG"},"useValue":{"__symbolic":"binop","operator":"||","left":{"__symbolic":"reference","name":"config"},"right":[]}}]}}}},"loadHCaptcha":{"__symbolic":"function","parameters":["languageCode"],"value":{"__symbolic":"new","expression":{"__symbolic":"reference","module":"rxjs","name":"Observable","line":10,"character":13},"arguments":[{"__symbolic":"error","message":"Lambda not supported","line":10,"character":30,"module":"./lib/hcaptcha-utils"}]}}},"origins":{"CaptchaConfig":"./lib/ng-hcaptcha-config","CAPTCHA_CONFIG":"./lib/ng-hcaptcha-config","NgHcaptchaComponent":"./lib/ng-hcaptcha.component","NgHcaptchaInvisibleButtonDirective":"./lib/ng-hcaptcha-invisible-button.directive","NgHcaptchaModule":"./lib/ng-hcaptcha.module","loadHCaptcha":"./lib/hcaptcha-utils"},"importAs":"ng-hcaptcha"}
{"__symbolic":"module","version":4,"metadata":{"CaptchaConfig":{"__symbolic":"interface"},"CAPTCHA_CONFIG":{"__symbolic":"new","expression":{"__symbolic":"reference","module":"@angular/core","name":"InjectionToken","line":16,"character":34},"arguments":["CAPTCHA_CONFIG"]},"NgHcaptchaComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":22,"character":1},"arguments":[{"selector":"ng-hcaptcha","template":"<div #captcha class=\"h-captcha\"></div>","styles":[],"providers":[{"provide":{"__symbolic":"reference","module":"@angular/forms","name":"NG_VALUE_ACCESSOR","line":28,"character":15},"useExisting":{"__symbolic":"reference","name":"NgHcaptchaComponent"},"multi":true}]}]}],"members":{"siteKey":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":36,"character":3}}]}],"theme":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":37,"character":3}}]}],"size":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":38,"character":3}}]}],"tabIndex":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":39,"character":3}}]}],"languageCode":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":40,"character":3}}]}],"captcha":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChild","line":42,"character":3},"arguments":["captcha",{"static":true}]}]}],"verify":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":44,"character":3}}]}],"expired":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":45,"character":3}}]}],"error":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":46,"character":3}}]}],"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":57,"character":5},"arguments":[{"__symbolic":"reference","name":"CAPTCHA_CONFIG"}]}],null,[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":59,"character":5},"arguments":[{"__symbolic":"reference","module":"@angular/core","name":"PLATFORM_ID","line":59,"character":12}]}]],"parameters":[{"__symbolic":"reference","name":"CaptchaConfig"},{"__symbolic":"reference","module":"@angular/core","name":"NgZone","line":58,"character":18},null]}],"ngOnInit":[{"__symbolic":"method"}],"ngOnDestroy":[{"__symbolic":"method"}],"writeValue":[{"__symbolic":"method"}],"registerOnChange":[{"__symbolic":"method"}],"registerOnTouched":[{"__symbolic":"method"}],"onVerify":[{"__symbolic":"method"}],"onExpired":[{"__symbolic":"method"}],"onError":[{"__symbolic":"method"}]}},"NgHcaptchaInvisibleButtonDirective":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Directive","line":8,"character":1},"arguments":[{"selector":"[ngHcaptchaInvisibleButton]"}]}],"members":{"siteKey":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":13,"character":3}}]}],"languageCode":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":14,"character":3}}]}],"verify":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":16,"character":3}}]}],"expired":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":17,"character":3}}]}],"error":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":18,"character":3}}]}],"click":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":19,"character":3}}]}],"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[null,[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":26,"character":15},"arguments":[{"__symbolic":"reference","name":"CAPTCHA_CONFIG"}]}],null,[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":28,"character":15},"arguments":[{"__symbolic":"reference","module":"@angular/core","name":"PLATFORM_ID","line":28,"character":22}]}]],"parameters":[{"__symbolic":"reference","module":"@angular/core","name":"ElementRef","line":25,"character":29},{"__symbolic":"reference","name":"CaptchaConfig"},{"__symbolic":"reference","module":"@angular/core","name":"NgZone","line":27,"character":28},null]}],"ngOnInit":[{"__symbolic":"method"}],"ngOnDestroy":[{"__symbolic":"method"}],"onClick":[{"__symbolic":"method","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostListener","line":62,"character":3},"arguments":["click",["$event"]]}]}],"onVerify":[{"__symbolic":"method"}],"onExpired":[{"__symbolic":"method"}],"onError":[{"__symbolic":"method"}]}},"NgHcaptchaModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":5,"character":1},"arguments":[{"imports":[],"declarations":[{"__symbolic":"reference","name":"NgHcaptchaComponent"},{"__symbolic":"reference","name":"NgHcaptchaInvisibleButtonDirective"}],"exports":[{"__symbolic":"reference","name":"NgHcaptchaComponent"},{"__symbolic":"reference","name":"NgHcaptchaInvisibleButtonDirective"}]}]}],"members":{},"statics":{"forRoot":{"__symbolic":"function","parameters":["config"],"value":{"ngModule":{"__symbolic":"reference","name":"NgHcaptchaModule"},"providers":[{"provide":{"__symbolic":"reference","name":"CAPTCHA_CONFIG"},"useValue":{"__symbolic":"binop","operator":"||","left":{"__symbolic":"reference","name":"config"},"right":[]}}]}}}},"loadHCaptcha":{"__symbolic":"function","parameters":["languageCode"],"value":{"__symbolic":"new","expression":{"__symbolic":"reference","module":"rxjs","name":"Observable","line":10,"character":13},"arguments":[{"__symbolic":"error","message":"Lambda not supported","line":10,"character":30,"module":"./lib/hcaptcha-utils"}]}}},"origins":{"CaptchaConfig":"./lib/ng-hcaptcha-config","CAPTCHA_CONFIG":"./lib/ng-hcaptcha-config","NgHcaptchaComponent":"./lib/ng-hcaptcha.component","NgHcaptchaInvisibleButtonDirective":"./lib/ng-hcaptcha-invisible-button.directive","NgHcaptchaModule":"./lib/ng-hcaptcha.module","loadHCaptcha":"./lib/hcaptcha-utils"},"importAs":"ng-hcaptcha"}
{
"name": "ng-hcaptcha",
"version": "1.0.0-beta.2",
"version": "1.0.0-beta.3",
"description": "hCaptcha Component for Angular 7+",

@@ -5,0 +5,0 @@ "keywords": [

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc