ng-recaptchav3
Version:
Angular8 library to provide easy extraction for google recaptcha v3, invisible recaptcha and recaptcha v2
88 lines • 7.42 kB
JavaScript
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
import { isPlatformBrowser } from '@angular/common';
import { Inject, Injectable, InjectionToken, Optional, PLATFORM_ID } from '@angular/core';
import { BehaviorSubject, of } from 'rxjs';
/** @type {?} */
export var RECAPTCHA_LANGUAGE = new InjectionToken('recaptcha-language');
var RecaptchaLoaderService = /** @class */ (function () {
function RecaptchaLoaderService(platformId, language) {
this.platformId = platformId;
this.language = language;
this.init();
this.ready = isPlatformBrowser(this.platformId) ? RecaptchaLoaderService.ready.asObservable() : of();
}
/** @internal */
/**
* \@internal
* @private
* @return {?}
*/
RecaptchaLoaderService.prototype.init = /**
* \@internal
* @private
* @return {?}
*/
function () {
if (RecaptchaLoaderService.ready || !isPlatformBrowser(this.platformId)) {
return;
}
window.ngRecaptchaLoaded = (/**
* @return {?}
*/
function () {
RecaptchaLoaderService.ready.next(grecaptcha);
});
RecaptchaLoaderService.ready = new BehaviorSubject(null);
/** @type {?} */
var script = (/** @type {?} */ (document.createElement('script')));
script.innerHTML = '';
/** @type {?} */
var langParam = this.language ? "&hl=" + this.language : '';
script.src = "https://www.google.com/recaptcha/api.js?render=explicit&onload=ngRecaptchaLoaded" + langParam;
script.async = true;
script.defer = true;
script.setAttribute('nonce', '');
document.head.appendChild(script);
};
/**
* \@internal
* @nocollapse
*/
RecaptchaLoaderService.ready = null;
RecaptchaLoaderService.decorators = [
{ type: Injectable }
];
/** @nocollapse */
RecaptchaLoaderService.ctorParameters = function () { return [
{ type: undefined, decorators: [{ type: Inject, args: [PLATFORM_ID,] }] },
{ type: String, decorators: [{ type: Optional }, { type: Inject, args: [RECAPTCHA_LANGUAGE,] }] }
]; };
return RecaptchaLoaderService;
}());
export { RecaptchaLoaderService };
if (false) {
/**
* \@internal
* @nocollapse
* @type {?}
* @private
*/
RecaptchaLoaderService.ready;
/** @type {?} */
RecaptchaLoaderService.prototype.ready;
/**
* \@internal
* @type {?}
* @private
*/
RecaptchaLoaderService.prototype.language;
/**
* @type {?}
* @private
*/
RecaptchaLoaderService.prototype.platformId;
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVjYXB0Y2hhLWxvYWRlci5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6Im5nOi8vbmctcmVjYXB0Y2hhdjMvIiwic291cmNlcyI6WyJsaWIvcmVjYXB0Y2hhLWxvYWRlci5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNwRCxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxjQUFjLEVBQUUsUUFBUSxFQUFFLFdBQVcsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUxRixPQUFPLEVBQUUsZUFBZSxFQUFjLEVBQUUsRUFBRSxNQUFNLE1BQU0sQ0FBQzs7QUFFdkQsTUFBTSxLQUFPLGtCQUFrQixHQUFHLElBQUksY0FBYyxDQUFTLG9CQUFvQixDQUFDO0FBVWxGO0lBYUUsZ0NBRXdDLFVBQWUsRUFDYixRQUFpQjtRQURuQixlQUFVLEdBQVYsVUFBVSxDQUFLO1FBR3JELElBQUksQ0FBQyxRQUFRLEdBQUcsUUFBUSxDQUFDO1FBQ3pCLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUNaLElBQUksQ0FBQyxLQUFLLEdBQUcsaUJBQWlCLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxzQkFBc0IsQ0FBQyxLQUFLLENBQUMsWUFBWSxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDO0lBQ3ZHLENBQUM7SUFFRCxnQkFBZ0I7Ozs7OztJQUNSLHFDQUFJOzs7OztJQUFaO1FBQ0UsSUFBSSxzQkFBc0IsQ0FBQyxLQUFLLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLEVBQUU7WUFDdkUsT0FBTztTQUNSO1FBRUQsTUFBTSxDQUFDLGlCQUFpQjs7O1FBQUc7WUFDekIsc0JBQXNCLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUNoRCxDQUFDLENBQUEsQ0FBQztRQUNGLHNCQUFzQixDQUFDLEtBQUssR0FBRyxJQUFJLGVBQWUsQ0FBWSxJQUFJLENBQUMsQ0FBQzs7WUFDOUQsTUFBTSxHQUFHLG1CQUFBLFFBQVEsQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDLEVBQXFCO1FBQ3BFLE1BQU0sQ0FBQyxTQUFTLEdBQUcsRUFBRSxDQUFDOztZQUNoQixTQUFTLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsU0FBTyxJQUFJLENBQUMsUUFBVSxDQUFDLENBQUMsQ0FBQyxFQUFFO1FBQzdELE1BQU0sQ0FBQyxHQUFHLEdBQUcscUZBQW1GLFNBQVcsQ0FBQztRQUM1RyxNQUFNLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQztRQUNwQixNQUFNLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQztRQUNwQixNQUFNLENBQUMsWUFBWSxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQUMsQ0FBQztRQUNqQyxRQUFRLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUNwQyxDQUFDOzs7OztJQW5DYyw0QkFBSyxHQUErQixJQUFJLENBQUM7O2dCQU56RCxVQUFVOzs7O2dEQWVOLE1BQU0sU0FBQyxXQUFXOzZDQUNsQixRQUFRLFlBQUksTUFBTSxTQUFDLGtCQUFrQjs7SUEwQjFDLDZCQUFDO0NBQUEsQUExQ0QsSUEwQ0M7U0F6Q1ksc0JBQXNCOzs7Ozs7OztJQUtqQyw2QkFBd0Q7O0lBRXhELHVDQUE2Qjs7Ozs7O0lBRzdCLDBDQUFrQzs7Ozs7SUFJaEMsNENBQXFEIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaXNQbGF0Zm9ybUJyb3dzZXIgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgSW5qZWN0LCBJbmplY3RhYmxlLCBJbmplY3Rpb25Ub2tlbiwgT3B0aW9uYWwsIFBMQVRGT1JNX0lEIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBSZUNhcHRjaGEgfSBmcm9tICcuL2dyZWNhcHRjaGEnO1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBPYnNlcnZhYmxlLCBvZiB9IGZyb20gJ3J4anMnO1xuXG5leHBvcnQgY29uc3QgUkVDQVBUQ0hBX0xBTkdVQUdFID0gbmV3IEluamVjdGlvblRva2VuPHN0cmluZz4oJ3JlY2FwdGNoYS1sYW5ndWFnZScpO1xuZGVjbGFyZSBjb25zdCBncmVjYXB0Y2hhOiBSZUNhcHRjaGE7XG5cbmRlY2xhcmUgZ2xvYmFsIHtcbiAgaW50ZXJmYWNlIFdpbmRvdyB7XG4gICAgZ3JlY2FwdGNoYTogUmVDYXB0Y2hhO1xuICAgIG5nUmVjYXB0Y2hhTG9hZGVkOiAoKSA9PiB2b2lkO1xuICB9XG59XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBSZWNhcHRjaGFMb2FkZXJTZXJ2aWNlIHtcbiAgLyoqXG4gICAqIEBpbnRlcm5hbFxuICAgKiBAbm9jb2xsYXBzZVxuICAgKi9cbiAgcHJpdmF0ZSBzdGF0aWMgcmVhZHk6IEJlaGF2aW9yU3ViamVjdDxSZUNhcHRjaGE+ID0gbnVsbDtcblxuICByZWFkeTogT2JzZXJ2YWJsZTxSZUNhcHRjaGE+O1xuXG4gIC8qKiBAaW50ZXJuYWwgKi9cbiAgcHJpdmF0ZSByZWFkb25seSBsYW5ndWFnZTogc3RyaW5nO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTpuby1hbnlcbiAgICBASW5qZWN0KFBMQVRGT1JNX0lEKSBwcml2YXRlIHJlYWRvbmx5IHBsYXRmb3JtSWQ6IGFueSxcbiAgICBAT3B0aW9uYWwoKSBASW5qZWN0KFJFQ0FQVENIQV9MQU5HVUFHRSkgbGFuZ3VhZ2U/OiBzdHJpbmdcbiAgKSB7XG4gICAgdGhpcy5sYW5ndWFnZSA9IGxhbmd1YWdlO1xuICAgIHRoaXMuaW5pdCgpO1xuICAgIHRoaXMucmVhZHkgPSBpc1BsYXRmb3JtQnJvd3Nlcih0aGlzLnBsYXRmb3JtSWQpID8gUmVjYXB0Y2hhTG9hZGVyU2VydmljZS5yZWFkeS5hc09ic2VydmFibGUoKSA6IG9mKCk7XG4gIH1cblxuICAvKiogQGludGVybmFsICovXG4gIHByaXZhdGUgaW5pdCgpIHtcbiAgICBpZiAoUmVjYXB0Y2hhTG9hZGVyU2VydmljZS5yZWFkeSB8fCAhaXNQbGF0Zm9ybUJyb3dzZXIodGhpcy5wbGF0Zm9ybUlkKSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHdpbmRvdy5uZ1JlY2FwdGNoYUxvYWRlZCA9ICgpID0+IHtcbiAgICAgIFJlY2FwdGNoYUxvYWRlclNlcnZpY2UucmVhZHkubmV4dChncmVjYXB0Y2hhKTtcbiAgICB9O1xuICAgIFJlY2FwdGNoYUxvYWRlclNlcnZpY2UucmVhZHkgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PFJlQ2FwdGNoYT4obnVsbCk7XG4gICAgY29uc3Qgc2NyaXB0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc2NyaXB0JykgYXMgSFRNTFNjcmlwdEVsZW1lbnQ7XG4gICAgc2NyaXB0LmlubmVySFRNTCA9ICcnO1xuICAgIGNvbnN0IGxhbmdQYXJhbSA9IHRoaXMubGFuZ3VhZ2UgPyBgJmhsPSR7dGhpcy5sYW5ndWFnZX1gIDogJyc7XG4gICAgc2NyaXB0LnNyYyA9IGBodHRwczovL3d3dy5nb29nbGUuY29tL3JlY2FwdGNoYS9hcGkuanM/cmVuZGVyPWV4cGxpY2l0Jm9ubG9hZD1uZ1JlY2FwdGNoYUxvYWRlZCR7bGFuZ1BhcmFtfWA7XG4gICAgc2NyaXB0LmFzeW5jID0gdHJ1ZTtcbiAgICBzY3JpcHQuZGVmZXIgPSB0cnVlO1xuICAgIHNjcmlwdC5zZXRBdHRyaWJ1dGUoJ25vbmNlJywgJycpO1xuICAgIGRvY3VtZW50LmhlYWQuYXBwZW5kQ2hpbGQoc2NyaXB0KTtcbiAgfVxufVxuIl19