{"version":3,"file":"3196.701482a6439d71b2.js","mappings":"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","names":["i0","nextUniqueId","UniSelectComponent","statusChanges","this","selectControl","errors","id","_id","_uid","labelForId","value","setValue","required","validators","ngControl","control","validator","_required","hasOwnProperty","items","newItems","_items","length","autoFill","bindValue","valuesChanges","next","constructor","_elementRef","UntypedFormControl","BehaviorSubject","Function","prototype","valueAccessor","ngAfterViewInit","valueChanges","subscribe","newValue","onChange","ngOnChanges","changes","currentValue","undefined","selectOption","writeValue","registerOnChange","fn","touched","getFormBindedValue","registerOnTouched","onTouched","setDisabledState","isDisabled","disable","enable","static","_angular_core__WEBPACK_IMPORTED_MODULE_0__","selectors","UniOptionTemplateDirective","TemplateRef","UniLabelTemplateDirective","provide","UniFormFieldControl","useExisting","template","ScriptService","zone","scriptElemId","windowGrecaptcha","windowGrecaptchaEnterprise","windowOnLoadCallbackProperty","windowOnLoadEnterpriseCallbackProperty","globalDomain","defaultDomain","enterpriseApi","defaultApi","registerCaptchaScript","config","render","onLoad","language","grecaptchaScriptLoaded","useEnterprise","run","window","getCallbackName","bind","scriptElem","document","createElement","innerHTML","src","getCaptchaScriptUrl","async","defer","getElementsByTagName","appendChild","cleanup","elem","getElementById","remove","execute","getLanguageParam","hl","useGlobalDomain","ɵfac","ɵprov","factory","BaseReCaptchaComponentDirective","renderer","injector","scriptService","captchaElemPrefix","setupCaptcha","type","tabIndex","success","EventEmitter","load","reset","ready","error","expire","setupAfterLoad","resetCaptchaAfterSuccess","val","isLoaded","get","NgControl","InjectFlags","ngAfterViewChecked","setupComponent","firstChange","previousValue","getResponse","reCaptchaApi","captchaId","getCaptchaId","resetCaptcha","getCurrentResponse","currentResponse","reloadCaptcha","ensureCaptchaElem","captchaElemId","captchaElem","Error","renderReCaptcha","runOutsideAngular","setTimeout","getCaptchaProperties","handleCallback","callback","getPseudoUniqueNumber","Date","getUTCMilliseconds","Math","floor","random","captchaSpecificSetup","createAndSetCaptchaElem","grecaptcha","onloadCallback","grecapcha","generateNewElemId","captchaWrapperElem","nativeElement","newElem","obj","handleErrorCallback","handleExpireCallback","ɵdir","inputs","ReCaptchaType","InvisibleReCaptcha","ReCaptcha2","ReCaptcha2Component","super","windowOnErrorCallbackProperty","windowOnExpireCallbackProperty","theme","size","recaptchaType","ngOnDestroy","registerCallbacks","sitekey","siteKey","response","tabindex","ɵcmp","_c0","_t","ctx","NG_VALUE_ACCESSOR","forwardRef","multi","decls","ReCaptchaV3Service","action","errorCallback","executeAsPromise","then","catch","console","Promise","resolve","reject","token","NgxCaptchaModule","ɵmod","ɵinj","imports","CommonModule"],"sourceRoot":"webpack:///","sources":["./src/ui/forms/select/select.component.html","./src/ui/forms/select/select.component.ts","./src/ui/forms/select/templates.directive.ts","./node_modules/ngx-captcha/fesm2020/ngx-captcha.mjs"],"sourcesContent":["\n \n \n \n \n \n {{ bindLabel ? item[bindLabel] : item }}\n \n \n\n \n \n \n \n \n {{ bindLabel ? item[bindLabel] : item }}\n \n \n\n","import {\n AfterViewInit,\n Component,\n ContentChild,\n ElementRef,\n Input,\n Self,\n TemplateRef,\n Optional,\n OnChanges,\n SimpleChanges,\n} from \"@angular/core\";\nimport { AbstractControl, ControlValueAccessor, UntypedFormControl, NgControl, ValidationErrors } from \"@angular/forms\";\nimport { Observable, BehaviorSubject } from \"rxjs\";\n\nimport { UniFormFieldControl } from \"../fom-field/form-field-control\";\n\nimport { UniLabelTemplateDirective, UniOptionTemplateDirective } from \"./templates.directive\";\n\nlet nextUniqueId = 0;\n\ntype SelectedValue = string | Record;\n\n@Component({\n selector: \"uni-select\",\n templateUrl: \"./select.component.html\",\n providers: [{ provide: UniFormFieldControl, useExisting: UniSelectComponent }],\n})\nexport class UniSelectComponent implements AfterViewInit, ControlValueAccessor, UniFormFieldControl, OnChanges {\n public selectControl = new UntypedFormControl();\n\n /** Implemented as part of UniFormFieldControl. */\n public get statusChanges(): Observable {\n return this.selectControl.statusChanges;\n }\n\n public get errors(): ValidationErrors | null {\n return this.selectControl.errors;\n }\n\n public valuesChanges = new BehaviorSubject(null);\n\n public get id(): string {\n return this._id || this._uid;\n }\n @Input()\n public set labelForId(value: string) {\n this._id = value || this._uid;\n }\n protected _id: string;\n protected _uid = `uni-select-${nextUniqueId++}`;\n\n public get value(): SelectedValue {\n return this.selectControl.value;\n }\n\n public set value(value: SelectedValue) {\n this.selectControl.setValue(value);\n }\n\n @Input()\n public get required(): boolean {\n const validators = this.ngControl?.control?.validator;\n return this._required ?? validators ? validators({} as AbstractControl)?.hasOwnProperty(\"required\") : false;\n }\n public set required(value: boolean) {\n this._required = value;\n }\n protected _required: boolean | undefined;\n\n public disabled: boolean;\n public invalid: boolean;\n\n @Input() public loading: boolean = false;\n @Input() public placeholder: string = \"Seleccionar\";\n @Input() public bindLabel: string;\n @Input() public bindValue: string;\n @Input() public multiple: boolean = false;\n\n @Input() public virtualScroll: boolean = false;\n @Input() public clearable = true;\n @Input() public closeOnSelect = true;\n @Input() public autoFill = true;\n @Input() public selectOption: number;\n\n @Input() public set items(newItems: SelectedValue[]) {\n this._items = newItems;\n if (this._items?.length === 1 && this.autoFill) {\n this.value = this.bindValue ? this._items[0][this.bindValue] : this._items[0];\n this.valuesChanges.next(this.value);\n }\n }\n public get items(): SelectedValue[] {\n return this._items;\n }\n\n protected _items: SelectedValue[];\n\n @ContentChild(UniOptionTemplateDirective, { read: TemplateRef }) public optionTemplate: TemplateRef;\n @ContentChild(UniLabelTemplateDirective, { read: TemplateRef }) public labelTemplate: TemplateRef;\n\n constructor(@Optional() @Self() public ngControl: NgControl, public _elementRef: ElementRef) {\n if (this.ngControl) {\n // Note: we provide the value accessor through here, instead of\n // the `providers` to avoid running into a circular import.\n this.ngControl.valueAccessor = this;\n }\n }\n\n public ngAfterViewInit(): void {\n this.selectControl.valueChanges.subscribe((newValue) => {\n this.onChange?.(newValue);\n });\n }\n\n public ngOnChanges(changes: SimpleChanges): void {\n if (changes?.items?.currentValue && this.selectOption !== undefined) {\n this.value = this.bindValue ? this._items[this.selectOption][this.bindValue] : this._items[this.selectOption];\n this.valuesChanges.next(this.value);\n }\n }\n\n public onTouched = Function.prototype;\n public onChange;\n\n public writeValue(value?: SelectedValue): void {\n if (value !== undefined) {\n this.value = value;\n }\n }\n\n public registerOnChange(fn: (value: SelectedValue) => void): void {\n this.onChange = fn;\n this.valuesChanges.subscribe((newValue: any) => {\n if ((!newValue && this.selectControl.touched) || newValue) {\n fn(newValue);\n }\n });\n }\n\n private getFormBindedValue(newValue: any): string | Record {\n return this.bindValue && newValue ? newValue[this.bindValue] : newValue;\n }\n\n public registerOnTouched(fn: () => void): void {\n this.onTouched = fn;\n }\n\n public setDisabledState?(isDisabled: boolean): void {\n isDisabled ? this.selectControl?.disable() : this.selectControl?.enable();\n }\n}\n","import { Directive, TemplateRef } from \"@angular/core\";\n\n@Directive({ selector: \"[uni-option-tmp]\" })\nexport class UniOptionTemplateDirective {\n constructor(public template: TemplateRef) {}\n}\n\n// eslint-disable-next-line @angular-eslint/directive-selector\n@Directive({ selector: \"[uni-optgroup-tmp]\" })\nexport class UniOptgroupTemplateDirective {\n constructor(public template: TemplateRef) {}\n}\n\n// eslint-disable-next-line @angular-eslint/directive-selector\n@Directive({ selector: \"[uni-label-tmp]\" })\nexport class UniLabelTemplateDirective {\n constructor(public template: TemplateRef) {}\n}\n","import * as i0 from '@angular/core';\nimport { Injectable, EventEmitter, InjectFlags, Directive, Input, Output, forwardRef, Component, ViewChild, NgModule } from '@angular/core';\nimport { NgControl, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { CommonModule } from '@angular/common';\n\nclass ScriptService {\r\n constructor(zone) {\r\n this.zone = zone;\r\n this.scriptElemId = \"ngx-catpcha-script\";\r\n /**\r\n * Name of the global google recaptcha script\r\n */\r\n this.windowGrecaptcha = \"grecaptcha\";\r\n /**\r\n * Name of enterpise property in the global google recaptcha script\r\n */\r\n this.windowGrecaptchaEnterprise = \"enterprise\";\r\n /**\r\n * Name of the global callback\r\n */\r\n this.windowOnLoadCallbackProperty = \"ngx_captcha_onload_callback\";\r\n /**\r\n * Name of the global callback for enterprise\r\n */\r\n this.windowOnLoadEnterpriseCallbackProperty = \"ngx_captcha_onload_enterprise_callback\";\r\n this.globalDomain = \"recaptcha.net\";\r\n this.defaultDomain = \"google.com\";\r\n this.enterpriseApi = \"enterprise.js\";\r\n this.defaultApi = \"api.js\";\r\n }\r\n registerCaptchaScript(config, render, onLoad, language) {\r\n if (this.grecaptchaScriptLoaded(config.useEnterprise)) {\r\n // recaptcha script is already loaded\r\n // just call the callback\r\n if (config.useEnterprise) {\r\n this.zone.run(() => {\r\n onLoad(window[this.windowGrecaptcha][this.windowGrecaptchaEnterprise]);\r\n });\r\n }\r\n else {\r\n this.zone.run(() => {\r\n onLoad(window[this.windowGrecaptcha]);\r\n });\r\n }\r\n return;\r\n }\r\n // we need to patch the callback through global variable, otherwise callback is not accessible\r\n // note: https://github.com/Enngage/ngx-captcha/issues/2\r\n if (config.useEnterprise) {\r\n window[this.getCallbackName(true)] = ((() => this.zone.run(onLoad.bind(this, window[this.windowGrecaptcha][this.windowGrecaptchaEnterprise]))));\r\n }\r\n else {\r\n window[this.getCallbackName(false)] = ((() => this.zone.run(onLoad.bind(this, window[this.windowGrecaptcha]))));\r\n }\r\n // prepare script elem\r\n const scriptElem = document.createElement(\"script\");\r\n scriptElem.id = this.scriptElemId;\r\n scriptElem.innerHTML = \"\";\r\n scriptElem.src = this.getCaptchaScriptUrl(config, render, language);\r\n scriptElem.async = true;\r\n scriptElem.defer = true;\r\n // add script to header\r\n document.getElementsByTagName(\"head\")[0].appendChild(scriptElem);\r\n }\r\n cleanup() {\r\n const elem = document.getElementById(this.scriptElemId);\r\n if (elem) {\r\n elem.remove();\r\n }\r\n window[this.getCallbackName()] = undefined;\r\n window[this.windowGrecaptcha] = undefined;\r\n }\r\n /**\r\n * Indicates if google recaptcha script is available and ready to be used\r\n */\r\n grecaptchaScriptLoaded(useEnterprise) {\r\n if (!window[this.getCallbackName(useEnterprise)] ||\r\n !window[this.windowGrecaptcha]) {\r\n return false;\r\n }\r\n else if (useEnterprise &&\r\n window[this.windowGrecaptcha][this.windowGrecaptchaEnterprise]) {\r\n return true;\r\n // if only enterprise script is loaded we need to check some v3's method\r\n }\r\n else if (window[this.windowGrecaptcha].execute) {\r\n return true;\r\n }\r\n return false;\r\n }\r\n /**\r\n * Gets global callback name\r\n * @param useEnterprise Optional flag for enterprise script\r\n * @private\r\n */\r\n getCallbackName(useEnterprise) {\r\n return useEnterprise\r\n ? this.windowOnLoadEnterpriseCallbackProperty\r\n : this.windowOnLoadCallbackProperty;\r\n }\r\n /**\r\n * Gets language param used in script url\r\n */\r\n getLanguageParam(hl) {\r\n if (!hl) {\r\n return \"\";\r\n }\r\n return `&hl=${hl}`;\r\n }\r\n /**\r\n * Url to google api script\r\n */\r\n getCaptchaScriptUrl(config, render, language) {\r\n const domain = config.useGlobalDomain\r\n ? this.globalDomain\r\n : this.defaultDomain;\r\n const api = config.useEnterprise ? this.enterpriseApi : this.defaultApi;\r\n const callback = this.getCallbackName(config.useEnterprise);\r\n return `https://www.${domain}/recaptcha/${api}?onload=${callback}&render=${render}${this.getLanguageParam(language)}`;\r\n }\r\n}\r\n/** @nocollapse */ ScriptService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"15.0.4\", ngImport: i0, type: ScriptService, deps: [{ token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Injectable });\r\n/** @nocollapse */ ScriptService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"15.0.4\", ngImport: i0, type: ScriptService, providedIn: \"root\" });\r\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"15.0.4\", ngImport: i0, type: ScriptService, decorators: [{\r\n type: Injectable,\r\n args: [{\r\n providedIn: \"root\",\r\n }]\r\n }], ctorParameters: function () { return [{ type: i0.NgZone }]; } });\n\nclass BaseReCaptchaComponentDirective {\r\n constructor(renderer, zone, injector, scriptService) {\r\n this.renderer = renderer;\r\n this.zone = zone;\r\n this.injector = injector;\r\n this.scriptService = scriptService;\r\n /**\r\n * Prefix of the captcha element\r\n */\r\n this.captchaElemPrefix = \"ngx_captcha_id_\";\r\n this.setupCaptcha = true;\r\n /**\r\n * Indicates if global domain 'recaptcha.net' should be used instead of default domain ('google.com')\r\n */\r\n this.useGlobalDomain = false;\r\n this.useEnterprise = false;\r\n /**\r\n * Type\r\n */\r\n this.type = \"image\";\r\n /**\r\n * Tab index\r\n */\r\n this.tabIndex = 0;\r\n /**\r\n * Called when captcha receives successful response.\r\n * Captcha response token is passed to event.\r\n */\r\n this.success = new EventEmitter();\r\n /**\r\n * Called when captcha is loaded. Event receives id of the captcha\r\n */\r\n this.load = new EventEmitter();\r\n /**\r\n * Called when captcha is reset.\r\n */\r\n this.reset = new EventEmitter();\r\n /**\r\n * Called when captcha is loaded & ready. I.e. when you need to execute captcha on component load.\r\n */\r\n this.ready = new EventEmitter();\r\n /**\r\n * Error callback\r\n */\r\n this.error = new EventEmitter();\r\n /**\r\n * Expired callback\r\n */\r\n this.expire = new EventEmitter();\r\n /**\r\n * Indicates if captcha should be set on load\r\n */\r\n this.setupAfterLoad = false;\r\n /**\r\n * If enabled, captcha will reset after receiving success response. This is useful\r\n * when invisible captcha need to be resolved multiple times on same page\r\n */\r\n this.resetCaptchaAfterSuccess = false;\r\n /**\r\n * Required by ControlValueAccessor\r\n */\r\n this.onChange = (val) => { };\r\n this.onTouched = (val) => { };\r\n /**\r\n * Indicates if captcha is loaded\r\n */\r\n this.isLoaded = false;\r\n }\r\n ngAfterViewInit() {\r\n this.control = this.injector.get(NgControl, undefined, InjectFlags.Optional)?.control;\r\n }\r\n ngAfterViewChecked() {\r\n if (this.setupCaptcha) {\r\n this.setupCaptcha = false;\r\n this.setupComponent();\r\n }\r\n }\r\n ngOnChanges(changes) {\r\n // cleanup scripts if language changed because they need to be reloaded\r\n if (changes && changes.hl) {\r\n // cleanup scripts when language changes\r\n if (!changes.hl.firstChange &&\r\n changes.hl.currentValue !== changes.hl.previousValue) {\r\n this.scriptService.cleanup();\r\n }\r\n }\r\n if (changes && changes.useGlobalDomain) {\r\n // cleanup scripts when domain changes\r\n if (!changes.useGlobalDomain.firstChange &&\r\n changes.useGlobalDomain.currentValue !==\r\n changes.useGlobalDomain.previousValue) {\r\n this.scriptService.cleanup();\r\n }\r\n }\r\n this.setupCaptcha = true;\r\n }\r\n /**\r\n * Gets captcha response as per reCaptcha docs\r\n */\r\n getResponse() {\r\n return this.reCaptchaApi.getResponse(this.captchaId);\r\n }\r\n /**\r\n * Gets Id of captcha widget\r\n */\r\n getCaptchaId() {\r\n return this.captchaId;\r\n }\r\n /**\r\n * Resets captcha\r\n */\r\n resetCaptcha() {\r\n this.zone.run(() => {\r\n // reset captcha using Google js api\r\n this.reCaptchaApi.reset();\r\n // required due to forms\r\n this.onChange(undefined);\r\n this.onTouched(undefined);\r\n // trigger reset event\r\n this.reset.next();\r\n });\r\n }\r\n /**\r\n * Gets last submitted captcha response\r\n */\r\n getCurrentResponse() {\r\n return this.currentResponse;\r\n }\r\n /**\r\n * Reload captcha. Useful when properties (i.e. theme) changed and captcha need to reflect them\r\n */\r\n reloadCaptcha() {\r\n this.setupComponent();\r\n }\r\n ensureCaptchaElem(captchaElemId) {\r\n const captchaElem = document.getElementById(captchaElemId);\r\n if (!captchaElem) {\r\n throw Error(`Captcha element with id '${captchaElemId}' was not found`);\r\n }\r\n // assign captcha alem\r\n this.captchaElem = captchaElem;\r\n }\r\n /**\r\n * Responsible for instantiating captcha element\r\n */\r\n renderReCaptcha() {\r\n // run outside angular zone due to timeout issues when testing\r\n // details: https://github.com/Enngage/ngx-captcha/issues/26\r\n this.zone.runOutsideAngular(() => {\r\n // to fix reCAPTCHA placeholder element must be an element or id\r\n // https://github.com/Enngage/ngx-captcha/issues/96\r\n setTimeout(() => {\r\n this.captchaId = this.reCaptchaApi.render(this.captchaElemId, this.getCaptchaProperties());\r\n this.ready.next();\r\n }, 0);\r\n });\r\n }\r\n /**\r\n * Called when captcha receives response\r\n * @param callback Callback\r\n */\r\n handleCallback(callback) {\r\n this.currentResponse = callback;\r\n this.success.next(callback);\r\n this.zone.run(() => {\r\n this.onChange(callback);\r\n this.onTouched(callback);\r\n });\r\n if (this.resetCaptchaAfterSuccess) {\r\n this.resetCaptcha();\r\n }\r\n }\r\n getPseudoUniqueNumber() {\r\n return new Date().getUTCMilliseconds() + Math.floor(Math.random() * 9999);\r\n }\r\n setupComponent() {\r\n // captcha specific setup\r\n this.captchaSpecificSetup();\r\n // create captcha wrapper\r\n this.createAndSetCaptchaElem();\r\n this.scriptService.registerCaptchaScript({\r\n useGlobalDomain: this.useGlobalDomain,\r\n useEnterprise: this.useEnterprise,\r\n }, \"explicit\", (grecaptcha) => {\r\n this.onloadCallback(grecaptcha);\r\n }, this.hl);\r\n }\r\n /**\r\n * Called when google's recaptcha script is ready\r\n */\r\n onloadCallback(grecapcha) {\r\n // assign reference to reCaptcha Api once its loaded\r\n this.reCaptchaApi = grecapcha;\r\n if (!this.reCaptchaApi) {\r\n throw Error(`ReCaptcha Api was not initialized correctly`);\r\n }\r\n // loaded flag\r\n this.isLoaded = true;\r\n // fire load event\r\n this.load.next();\r\n // render captcha\r\n this.renderReCaptcha();\r\n // setup component if it was flagged as such\r\n if (this.setupAfterLoad) {\r\n this.setupAfterLoad = false;\r\n this.setupComponent();\r\n }\r\n }\r\n generateNewElemId() {\r\n return this.captchaElemPrefix + this.getPseudoUniqueNumber();\r\n }\r\n createAndSetCaptchaElem() {\r\n // generate new captcha id\r\n this.captchaElemId = this.generateNewElemId();\r\n if (!this.captchaElemId) {\r\n throw Error(`Captcha elem Id is not set`);\r\n }\r\n if (!this.captchaWrapperElem) {\r\n throw Error(`Captcha DOM element is not initialized`);\r\n }\r\n // remove old html\r\n this.captchaWrapperElem.nativeElement.innerHTML = \"\";\r\n // create new wrapper for captcha\r\n const newElem = this.renderer.createElement(\"div\");\r\n newElem.id = this.captchaElemId;\r\n this.renderer.appendChild(this.captchaWrapperElem.nativeElement, newElem);\r\n // when use captcha in cdk stepper then throwing error Captcha element with id 'ngx_captcha_id_XXXX' not found\r\n // to fix it checking ensureCaptchaElem in timeout so that its check in next call and its able to find element\r\n setTimeout(() => {\r\n // update captcha elem\r\n if (this.captchaElemId) {\r\n this.ensureCaptchaElem(this.captchaElemId);\r\n }\r\n }, 0);\r\n }\r\n /**\r\n * To be aligned with the ControlValueAccessor interface we need to implement this method\r\n * However as we don't want to update the recaptcha, this doesn't need to be implemented\r\n */\r\n writeValue(obj) { }\r\n /**\r\n * This method helps us tie together recaptcha and our formControl values\r\n */\r\n registerOnChange(fn) {\r\n this.onChange = fn;\r\n }\r\n /**\r\n * At some point we might be interested whether the user has touched our component\r\n */\r\n registerOnTouched(fn) {\r\n this.onTouched = fn;\r\n }\r\n /**\r\n * Handles error callback\r\n */\r\n handleErrorCallback() {\r\n this.zone.run(() => {\r\n this.onChange(undefined);\r\n this.onTouched(undefined);\r\n });\r\n this.error.next();\r\n }\r\n /**\r\n * Handles expired callback\r\n */\r\n handleExpireCallback() {\r\n this.expire.next();\r\n // reset captcha on expire callback\r\n this.resetCaptcha();\r\n }\r\n}\r\n/** @nocollapse */ BaseReCaptchaComponentDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"15.0.4\", ngImport: i0, type: BaseReCaptchaComponentDirective, deps: [{ token: i0.Renderer2 }, { token: i0.NgZone }, { token: i0.Injector }, { token: ScriptService }], target: i0.ɵɵFactoryTarget.Directive });\r\n/** @nocollapse */ BaseReCaptchaComponentDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"15.0.4\", type: BaseReCaptchaComponentDirective, inputs: { siteKey: \"siteKey\", useGlobalDomain: \"useGlobalDomain\", useEnterprise: \"useEnterprise\", type: \"type\", hl: \"hl\", tabIndex: \"tabIndex\" }, outputs: { success: \"success\", load: \"load\", reset: \"reset\", ready: \"ready\", error: \"error\", expire: \"expire\" }, usesOnChanges: true, ngImport: i0 });\r\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"15.0.4\", ngImport: i0, type: BaseReCaptchaComponentDirective, decorators: [{\r\n type: Directive\r\n }], ctorParameters: function () { return [{ type: i0.Renderer2 }, { type: i0.NgZone }, { type: i0.Injector }, { type: ScriptService }]; }, propDecorators: { siteKey: [{\r\n type: Input\r\n }], useGlobalDomain: [{\r\n type: Input\r\n }], useEnterprise: [{\r\n type: Input\r\n }], type: [{\r\n type: Input\r\n }], hl: [{\r\n type: Input\r\n }], tabIndex: [{\r\n type: Input\r\n }], success: [{\r\n type: Output\r\n }], load: [{\r\n type: Output\r\n }], reset: [{\r\n type: Output\r\n }], ready: [{\r\n type: Output\r\n }], error: [{\r\n type: Output\r\n }], expire: [{\r\n type: Output\r\n }] } });\n\nvar ReCaptchaType;\r\n(function (ReCaptchaType) {\r\n ReCaptchaType[ReCaptchaType[\"InvisibleReCaptcha\"] = 0] = \"InvisibleReCaptcha\";\r\n ReCaptchaType[ReCaptchaType[\"ReCaptcha2\"] = 1] = \"ReCaptcha2\";\r\n})(ReCaptchaType || (ReCaptchaType = {}));\n\nclass InvisibleReCaptchaComponent extends BaseReCaptchaComponentDirective {\r\n constructor(renderer, zone, injector, scriptService) {\r\n super(renderer, zone, injector, scriptService);\r\n this.renderer = renderer;\r\n this.zone = zone;\r\n this.injector = injector;\r\n this.scriptService = scriptService;\r\n /**\r\n * This size representing invisible captcha\r\n */\r\n this.size = 'invisible';\r\n /**\r\n * Theme\r\n */\r\n this.theme = 'light';\r\n /**\r\n * Badge\r\n */\r\n this.badge = 'bottomright';\r\n this.recaptchaType = ReCaptchaType.InvisibleReCaptcha;\r\n }\r\n ngOnChanges(changes) {\r\n super.ngOnChanges(changes);\r\n }\r\n /**\r\n * Programatically invoke the reCAPTCHA check. Used if the invisible reCAPTCHA is on a div instead of a button.\r\n */\r\n execute() {\r\n // execute captcha\r\n this.zone.runOutsideAngular(() => this.reCaptchaApi.execute(this.captchaId));\r\n }\r\n captchaSpecificSetup() {\r\n }\r\n /**\r\n * Gets reCaptcha properties\r\n */\r\n getCaptchaProperties() {\r\n return {\r\n 'sitekey': this.siteKey,\r\n 'callback': (response) => this.zone.run(() => this.handleCallback(response)),\r\n 'expired-callback': () => this.zone.run(() => this.handleExpireCallback()),\r\n 'error-callback': () => this.zone.run(() => this.handleErrorCallback()),\r\n 'badge': this.badge,\r\n 'type': this.type,\r\n 'tabindex': this.tabIndex,\r\n 'size': this.size,\r\n 'theme': this.theme\r\n };\r\n }\r\n}\r\n/** @nocollapse */ InvisibleReCaptchaComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"15.0.4\", ngImport: i0, type: InvisibleReCaptchaComponent, deps: [{ token: i0.Renderer2 }, { token: i0.NgZone }, { token: i0.Injector }, { token: ScriptService }], target: i0.ɵɵFactoryTarget.Component });\r\n/** @nocollapse */ InvisibleReCaptchaComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"15.0.4\", type: InvisibleReCaptchaComponent, selector: \"ngx-invisible-recaptcha\", inputs: { theme: \"theme\", badge: \"badge\" }, providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef((() => InvisibleReCaptchaComponent)),\r\n multi: true,\r\n }\r\n ], viewQueries: [{ propertyName: \"captchaWrapperElem\", first: true, predicate: [\"captchaWrapperElem\"], descendants: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: `\r\n `, isInline: true });\r\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"15.0.4\", ngImport: i0, type: InvisibleReCaptchaComponent, decorators: [{\r\n type: Component,\r\n args: [{\r\n selector: 'ngx-invisible-recaptcha',\r\n template: `\r\n `,\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef((() => InvisibleReCaptchaComponent)),\r\n multi: true,\r\n }\r\n ]\r\n }]\r\n }], ctorParameters: function () { return [{ type: i0.Renderer2 }, { type: i0.NgZone }, { type: i0.Injector }, { type: ScriptService }]; }, propDecorators: { theme: [{\r\n type: Input\r\n }], badge: [{\r\n type: Input\r\n }], captchaWrapperElem: [{\r\n type: ViewChild,\r\n args: ['captchaWrapperElem', { static: false }]\r\n }] } });\n\nclass ReCaptcha2Component extends BaseReCaptchaComponentDirective {\r\n constructor(renderer, zone, injector, scriptService) {\r\n super(renderer, zone, injector, scriptService);\r\n this.renderer = renderer;\r\n this.zone = zone;\r\n this.injector = injector;\r\n this.scriptService = scriptService;\r\n /**\r\n * Name of the global expire callback\r\n */\r\n this.windowOnErrorCallbackProperty = 'ngx_captcha_error_callback';\r\n /**\r\n * Name of the global error callback\r\n */\r\n this.windowOnExpireCallbackProperty = 'ngx_captcha_expire_callback';\r\n /**\r\n * Theme\r\n */\r\n this.theme = 'light';\r\n /**\r\n * Size\r\n */\r\n this.size = 'normal';\r\n this.recaptchaType = ReCaptchaType.ReCaptcha2;\r\n }\r\n ngOnChanges(changes) {\r\n super.ngOnChanges(changes);\r\n }\r\n ngOnDestroy() {\r\n window[this.windowOnErrorCallbackProperty] = {};\r\n window[this.windowOnExpireCallbackProperty] = {};\r\n }\r\n captchaSpecificSetup() {\r\n this.registerCallbacks();\r\n }\r\n /**\r\n * Gets reCaptcha properties\r\n */\r\n getCaptchaProperties() {\r\n return {\r\n 'sitekey': this.siteKey,\r\n 'callback': (response) => this.zone.run(() => this.handleCallback(response)),\r\n 'expired-callback': () => this.zone.run(() => this.handleExpireCallback()),\r\n 'error-callback': () => this.zone.run(() => this.handleErrorCallback()),\r\n 'theme': this.theme,\r\n 'type': this.type,\r\n 'size': this.size,\r\n 'tabindex': this.tabIndex\r\n };\r\n }\r\n /**\r\n * Registers global callbacks\r\n */\r\n registerCallbacks() {\r\n window[this.windowOnErrorCallbackProperty] = super.handleErrorCallback.bind(this);\r\n window[this.windowOnExpireCallbackProperty] = super.handleExpireCallback.bind(this);\r\n }\r\n}\r\n/** @nocollapse */ ReCaptcha2Component.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"15.0.4\", ngImport: i0, type: ReCaptcha2Component, deps: [{ token: i0.Renderer2 }, { token: i0.NgZone }, { token: i0.Injector }, { token: ScriptService }], target: i0.ɵɵFactoryTarget.Component });\r\n/** @nocollapse */ ReCaptcha2Component.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"15.0.4\", type: ReCaptcha2Component, selector: \"ngx-recaptcha2\", inputs: { theme: \"theme\", size: \"size\" }, providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef((() => ReCaptcha2Component)),\r\n multi: true,\r\n }\r\n ], viewQueries: [{ propertyName: \"captchaWrapperElem\", first: true, predicate: [\"captchaWrapperElem\"], descendants: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: `\r\n `, isInline: true });\r\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"15.0.4\", ngImport: i0, type: ReCaptcha2Component, decorators: [{\r\n type: Component,\r\n args: [{\r\n selector: 'ngx-recaptcha2',\r\n template: `\r\n `,\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef((() => ReCaptcha2Component)),\r\n multi: true,\r\n }\r\n ]\r\n }]\r\n }], ctorParameters: function () { return [{ type: i0.Renderer2 }, { type: i0.NgZone }, { type: i0.Injector }, { type: ScriptService }]; }, propDecorators: { theme: [{\r\n type: Input\r\n }], size: [{\r\n type: Input\r\n }], captchaWrapperElem: [{\r\n type: ViewChild,\r\n args: ['captchaWrapperElem', { static: false }]\r\n }] } });\n\nclass ReCaptchaV3Service {\r\n constructor(scriptService, zone) {\r\n this.scriptService = scriptService;\r\n this.zone = zone;\r\n }\r\n /**\r\n * Executes reCaptcha v3/Enterprise with given action and passes token via callback. You need to verify\r\n * this callback in your backend to get meaningful results.\r\n *\r\n * For more information see https://developers.google.com/recaptcha/docs/v3\r\n * For enterprise see https://cloud.google.com/recaptcha-enterprise/docs\r\n *\r\n * @param siteKey Site key found in your google admin panel\r\n * @param action Action to log\r\n * @param callback Callback function to to handle token\r\n * @param config Optional configuration like useGlobalDomain to be provided\r\n * @param errorCallback Optional Callback function to handle errors\r\n */\r\n execute(siteKey, action, callback, config, errorCallback) {\r\n this.executeAsPromise(siteKey, action, config)\r\n .then(callback)\r\n .catch((error) => errorCallback ? errorCallback(error) : console.error(error));\r\n }\r\n /**\r\n * Executes reCaptcha v3/Enterprise with given action and returns token via Promise. You need to verify\r\n * this token in your backend to get meaningful results.\r\n *\r\n * For more information see https://developers.google.com/recaptcha/docs/v3\r\n * For enterprise see https://cloud.google.com/recaptcha-enterprise/docs\r\n *\r\n * @param siteKey Site key found in your google admin panel\r\n * @param action Action to log\r\n * @param config Optional configuration like useGlobalDomain to be provided\r\n */\r\n executeAsPromise(siteKey, action, config) {\r\n return new Promise((resolve, reject) => {\r\n const configuration = config || {};\r\n const onRegister = (grecaptcha) => {\r\n this.zone.runOutsideAngular(() => {\r\n try {\r\n grecaptcha\r\n .execute(siteKey, { action })\r\n .then((token) => this.zone.run(() => resolve(token)));\r\n }\r\n catch (error) {\r\n reject(error);\r\n }\r\n });\r\n };\r\n this.scriptService.registerCaptchaScript(configuration, siteKey, onRegister);\r\n });\r\n }\r\n}\r\n/** @nocollapse */ ReCaptchaV3Service.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"15.0.4\", ngImport: i0, type: ReCaptchaV3Service, deps: [{ token: ScriptService }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Injectable });\r\n/** @nocollapse */ ReCaptchaV3Service.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"15.0.4\", ngImport: i0, type: ReCaptchaV3Service, providedIn: \"root\" });\r\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"15.0.4\", ngImport: i0, type: ReCaptchaV3Service, decorators: [{\r\n type: Injectable,\r\n args: [{\r\n providedIn: \"root\",\r\n }]\r\n }], ctorParameters: function () { return [{ type: ScriptService }, { type: i0.NgZone }]; } });\n\nclass NgxCaptchaModule {\r\n}\r\n/** @nocollapse */ NgxCaptchaModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"15.0.4\", ngImport: i0, type: NgxCaptchaModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });\r\n/** @nocollapse */ NgxCaptchaModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"14.0.0\", version: \"15.0.4\", ngImport: i0, type: NgxCaptchaModule, declarations: [ReCaptcha2Component,\r\n InvisibleReCaptchaComponent], imports: [CommonModule], exports: [ReCaptcha2Component,\r\n InvisibleReCaptchaComponent] });\r\n/** @nocollapse */ NgxCaptchaModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"15.0.4\", ngImport: i0, type: NgxCaptchaModule, providers: [\r\n ScriptService,\r\n ReCaptchaV3Service\r\n ], imports: [CommonModule] });\r\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"15.0.4\", ngImport: i0, type: NgxCaptchaModule, decorators: [{\r\n type: NgModule,\r\n args: [{\r\n imports: [\r\n CommonModule\r\n ],\r\n declarations: [\r\n ReCaptcha2Component,\r\n InvisibleReCaptchaComponent\r\n ],\r\n providers: [\r\n ScriptService,\r\n ReCaptchaV3Service\r\n ],\r\n exports: [\r\n ReCaptcha2Component,\r\n InvisibleReCaptchaComponent\r\n ]\r\n }]\r\n }] });\n\n/*\r\n * Public API\r\n */\n\n/**\r\n * Generated bundle index. Do not edit.\r\n */\n\nexport { BaseReCaptchaComponentDirective, InvisibleReCaptchaComponent, NgxCaptchaModule, ReCaptcha2Component, ReCaptchaType, ReCaptchaV3Service, ScriptService };\n"],"x_google_ignoreList":[3]}