zek 16.0.25 → 16.0.29

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,97 @@
1
+ import { Directive, EventEmitter, Inject, Input, Output } from "@angular/core";
2
+ import { loader } from './loader';
3
+ import { GOOGLE_CLIENT_ID } from "../../tokens";
4
+ import { CoreComponent } from "../../components";
5
+ import { Convert } from "../../utils";
6
+ import * as i0 from "@angular/core";
7
+ class ZekGoogleLoginButton extends CoreComponent {
8
+ constructor(client_id) {
9
+ super();
10
+ this.client_id = client_id;
11
+ this._prompt = true;
12
+ this.onLoginResponse = new EventEmitter();
13
+ this.onLogin = new EventEmitter();
14
+ this._buttonContainer = 'google-login-container';
15
+ this.onLoadComplete = (google) => {
16
+ this.google = google;
17
+ this.initialize();
18
+ };
19
+ }
20
+ get prompt() {
21
+ return this._prompt;
22
+ }
23
+ set prompt(v) {
24
+ this._prompt = Convert.toBooleanProperty(v);
25
+ }
26
+ get buttonContainer() {
27
+ return this._buttonContainer;
28
+ }
29
+ set buttonContainer(v) {
30
+ if (!v)
31
+ throw new Error('buttonContainer is required');
32
+ this._buttonContainer = v;
33
+ }
34
+ async init() {
35
+ super.init();
36
+ // await GoogleLoginButton.loadScript();
37
+ if ("google" in window) {
38
+ this.google = google;
39
+ this.initialize();
40
+ }
41
+ else {
42
+ loader.loadScript(this.onLoadComplete);
43
+ }
44
+ }
45
+ initialize() {
46
+ this.google.accounts.id.initialize({
47
+ client_id: this.client_id,
48
+ callback: (response) => {
49
+ this.handleCredentialResponse(response);
50
+ }
51
+ });
52
+ this.renderButton();
53
+ this.autoPrompt();
54
+ }
55
+ renderButton() {
56
+ this.google.accounts.id.renderButton(document.getElementById(this._buttonContainer),
57
+ // this._elementRef.nativeElement.parentElement,
58
+ { theme: "outline", size: "large" } // customization attributes
59
+ );
60
+ }
61
+ autoPrompt() {
62
+ if (this._prompt)
63
+ this.google.accounts.id.prompt(); // also display the One Tap dialog
64
+ }
65
+ handleCredentialResponse(response) {
66
+ this.onLoginResponse?.emit(response);
67
+ this.onLogin?.emit(response.credential);
68
+ // let payload = JwtHelper.decode(response.credential);
69
+ // console.log("ID: " + payload.sub);
70
+ // console.log('Full Name: ' + payload.name);
71
+ // console.log('Given Name: ' + payload.given_name);
72
+ // console.log('Family Name: ' + payload.family_name);
73
+ // console.log("Image URL: " + payload.picture);
74
+ // console.log("Email: " + payload.email);
75
+ }
76
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.1", ngImport: i0, type: ZekGoogleLoginButton, deps: [{ token: GOOGLE_CLIENT_ID }], target: i0.ɵɵFactoryTarget.Directive }); }
77
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.0.1", type: ZekGoogleLoginButton, selector: "zek-google-login", inputs: { prompt: "prompt", buttonContainer: "buttonContainer" }, outputs: { onLoginResponse: "onLoginResponse", onLogin: "onLogin" }, usesInheritance: true, ngImport: i0 }); }
78
+ }
79
+ export { ZekGoogleLoginButton };
80
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.1", ngImport: i0, type: ZekGoogleLoginButton, decorators: [{
81
+ type: Directive,
82
+ args: [{
83
+ selector: 'zek-google-login',
84
+ }]
85
+ }], ctorParameters: function () { return [{ type: undefined, decorators: [{
86
+ type: Inject,
87
+ args: [GOOGLE_CLIENT_ID]
88
+ }] }]; }, propDecorators: { prompt: [{
89
+ type: Input
90
+ }], onLoginResponse: [{
91
+ type: Output
92
+ }], onLogin: [{
93
+ type: Output
94
+ }], buttonContainer: [{
95
+ type: Input
96
+ }] } });
97
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ29vZ2xlLWxvZ2luLWJ1dHRvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3play9zcmMvbGliL21vZHVsZXMvZ29vZ2xlLWxvZ2luLWJ1dHRvbi9nb29nbGUtbG9naW4tYnV0dG9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQy9FLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFDbEMsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQ2hELE9BQU8sRUFBRSxhQUFhLEVBQTZCLE1BQU0sa0JBQWtCLENBQUM7QUFDNUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLGFBQWEsQ0FBQzs7QUFTdEMsTUFHYSxvQkFBcUIsU0FBUSxhQUFhO0lBRW5ELFlBQXVELFNBQWlCO1FBQ3BFLEtBQUssRUFBRSxDQUFDO1FBRDJDLGNBQVMsR0FBVCxTQUFTLENBQVE7UUFJaEUsWUFBTyxHQUFZLElBQUksQ0FBQztRQVF0QixvQkFBZSxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7UUFDckMsWUFBTyxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7UUFFL0IscUJBQWdCLEdBQUcsd0JBQXdCLENBQUM7UUF3QzVDLG1CQUFjLEdBQUcsQ0FBQyxNQUFXLEVBQUUsRUFBRTtZQUNyQyxJQUFJLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQztZQUNyQixJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7UUFDdEIsQ0FBQyxDQUFBO0lBdkRELENBQUM7SUFFRCxJQUFhLE1BQU07UUFDZixPQUFPLElBQUksQ0FBQyxPQUFPLENBQUM7SUFDeEIsQ0FBQztJQUNELElBQUksTUFBTSxDQUFDLENBQWU7UUFDdEIsSUFBSSxDQUFDLE9BQU8sR0FBRyxPQUFPLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDaEQsQ0FBQztJQU1ELElBQWEsZUFBZTtRQUN4QixPQUFPLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQztJQUNqQyxDQUFDO0lBQ0QsSUFBSSxlQUFlLENBQUMsQ0FBYztRQUM5QixJQUFJLENBQUMsQ0FBQztZQUNGLE1BQU0sSUFBSSxLQUFLLENBQUMsNkJBQTZCLENBQUMsQ0FBQztRQUNuRCxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsQ0FBQyxDQUFDO0lBQzlCLENBQUM7SUFxQlEsS0FBSyxDQUFDLElBQUk7UUFDZixLQUFLLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDYix3Q0FBd0M7UUFFeEMsSUFBSSxRQUFRLElBQUksTUFBTSxFQUFFO1lBQ3BCLElBQUksQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDO1lBQ3JCLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztTQUNyQjthQUFNO1lBQ0gsTUFBTSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUM7U0FDMUM7SUFDTCxDQUFDO0lBTUQsVUFBVTtRQUNOLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxVQUFVLENBQUM7WUFDL0IsU0FBUyxFQUFFLElBQUksQ0FBQyxTQUFTO1lBQ3pCLFFBQVEsRUFBRSxDQUFDLFFBQWEsRUFBRSxFQUFFO2dCQUN4QixJQUFJLENBQUMsd0JBQXdCLENBQUMsUUFBUSxDQUFDLENBQUM7WUFDNUMsQ0FBQztTQUNKLENBQUMsQ0FBQztRQUVILElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUNwQixJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7SUFDdEIsQ0FBQztJQUNELFlBQVk7UUFDUixJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsWUFBWSxDQUNoQyxRQUFRLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQztRQUM5QyxnREFBZ0Q7UUFDaEQsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsQ0FBRSwyQkFBMkI7U0FDbkUsQ0FBQztJQUNOLENBQUM7SUFDRCxVQUFVO1FBQ04sSUFBSSxJQUFJLENBQUMsT0FBTztZQUNaLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDLGtDQUFrQztJQUM1RSxDQUFDO0lBR0Qsd0JBQXdCLENBQUMsUUFBYTtRQUNsQyxJQUFJLENBQUMsZUFBZSxFQUFFLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUNyQyxJQUFJLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxRQUFRLENBQUMsVUFBVSxDQUFDLENBQUM7UUFFeEMsdURBQXVEO1FBQ3ZELHFDQUFxQztRQUNyQyw2Q0FBNkM7UUFDN0Msb0RBQW9EO1FBQ3BELHNEQUFzRDtRQUN0RCxnREFBZ0Q7UUFDaEQsMENBQTBDO0lBQzlDLENBQUM7OEdBakdRLG9CQUFvQixrQkFFVCxnQkFBZ0I7a0dBRjNCLG9CQUFvQjs7U0FBcEIsb0JBQW9COzJGQUFwQixvQkFBb0I7a0JBSGhDLFNBQVM7bUJBQUM7b0JBQ1AsUUFBUSxFQUFFLGtCQUFrQjtpQkFDL0I7OzBCQUdnQixNQUFNOzJCQUFDLGdCQUFnQjs0Q0FLdkIsTUFBTTtzQkFBbEIsS0FBSztnQkFPSSxlQUFlO3NCQUF4QixNQUFNO2dCQUNHLE9BQU87c0JBQWhCLE1BQU07Z0JBR00sZUFBZTtzQkFBM0IsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgRXZlbnRFbWl0dGVyLCBJbmplY3QsIElucHV0LCBPdXRwdXQgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQgeyBsb2FkZXIgfSBmcm9tICcuL2xvYWRlcic7XHJcbmltcG9ydCB7IEdPT0dMRV9DTElFTlRfSUQgfSBmcm9tIFwiLi4vLi4vdG9rZW5zXCI7XHJcbmltcG9ydCB7IENvcmVDb21wb25lbnQsIEJvb2xlYW5JbnB1dCwgU3RyaW5nSW5wdXQgfSBmcm9tIFwiLi4vLi4vY29tcG9uZW50c1wiO1xyXG5pbXBvcnQgeyBDb252ZXJ0IH0gZnJvbSBcIi4uLy4uL3V0aWxzXCI7XHJcblxyXG5kZWNsYXJlIGxldCBnb29nbGU6IGFueTtcclxuXHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIEdvb2dsZUxvZ2luQ29uZmlnIHtcclxuICAgIGNsaWVudF9pZDogc3RyaW5nO1xyXG59XHJcblxyXG5ARGlyZWN0aXZlKHtcclxuICAgIHNlbGVjdG9yOiAnemVrLWdvb2dsZS1sb2dpbicsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBaZWtHb29nbGVMb2dpbkJ1dHRvbiBleHRlbmRzIENvcmVDb21wb25lbnQge1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKEBJbmplY3QoR09PR0xFX0NMSUVOVF9JRCkgcHJpdmF0ZSByZWFkb25seSBjbGllbnRfaWQ6IHN0cmluZykge1xyXG4gICAgICAgIHN1cGVyKCk7XHJcblxyXG4gICAgfVxyXG4gICAgcHJpdmF0ZSBfcHJvbXB0OiBib29sZWFuID0gdHJ1ZTtcclxuICAgIEBJbnB1dCgpIGdldCBwcm9tcHQoKSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX3Byb21wdDtcclxuICAgIH1cclxuICAgIHNldCBwcm9tcHQodjogQm9vbGVhbklucHV0KSB7XHJcbiAgICAgICAgdGhpcy5fcHJvbXB0ID0gQ29udmVydC50b0Jvb2xlYW5Qcm9wZXJ0eSh2KTtcclxuICAgIH1cclxuXHJcbiAgICBAT3V0cHV0KCkgb25Mb2dpblJlc3BvbnNlID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gICAgQE91dHB1dCgpIG9uTG9naW4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcblxyXG4gICAgcHJpdmF0ZSBfYnV0dG9uQ29udGFpbmVyID0gJ2dvb2dsZS1sb2dpbi1jb250YWluZXInO1xyXG4gICAgQElucHV0KCkgZ2V0IGJ1dHRvbkNvbnRhaW5lcigpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5fYnV0dG9uQ29udGFpbmVyO1xyXG4gICAgfVxyXG4gICAgc2V0IGJ1dHRvbkNvbnRhaW5lcih2OiBTdHJpbmdJbnB1dCkge1xyXG4gICAgICAgIGlmICghdilcclxuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdidXR0b25Db250YWluZXIgaXMgcmVxdWlyZWQnKTtcclxuICAgICAgICB0aGlzLl9idXR0b25Db250YWluZXIgPSB2O1xyXG4gICAgfVxyXG5cclxuICAgIC8vIHByaXZhdGUgX3R5cGU6ICdzdGFuZGFyZCcgfCAnaWNvbic7XHJcbiAgICAvLyBwdWJsaWMgZ2V0IHR5cGUoKTogJycge1xyXG4gICAgLy8gICAgIHJldHVybiB0aGlzLl90eXBlO1xyXG4gICAgLy8gfVxyXG4gICAgLy8gcHVibGljIHNldCB0eXBlKHY6ICdzdGFuZGFyZCcgfCAnaWNvbicpIHtcclxuICAgIC8vICAgICB0aGlzLl90eXBlID0gdjtcclxuICAgIC8vIH1cclxuXHJcblxyXG5cclxuICAgIC8vIHByaXZhdGUgc3RhdGljIF9sb2FkZWQgPSBmYWxzZTtcclxuICAgIC8vIHN0YXRpYyBhc3luYyBsb2FkU2NyaXB0KCkge1xyXG4gICAgLy8gICAgIGlmICh0aGlzLl9sb2FkZWQpIHJldHVybjtcclxuICAgIC8vICAgICBhd2FpdCBIdG1sSGVscGVyLmxvYWRTY3JpcHRzKCdodHRwczovL2FjY291bnRzLmdvb2dsZS5jb20vZ3NpL2NsaWVudCcpO1xyXG4gICAgLy8gICAgIHRoaXMuX2xvYWRlZCA9IHRydWU7XHJcbiAgICAvLyB9XHJcblxyXG5cclxuICAgIHByaXZhdGUgZ29vZ2xlPzogYW55O1xyXG4gICAgb3ZlcnJpZGUgYXN5bmMgaW5pdCgpIHtcclxuICAgICAgICBzdXBlci5pbml0KCk7XHJcbiAgICAgICAgLy8gYXdhaXQgR29vZ2xlTG9naW5CdXR0b24ubG9hZFNjcmlwdCgpO1xyXG5cclxuICAgICAgICBpZiAoXCJnb29nbGVcIiBpbiB3aW5kb3cpIHtcclxuICAgICAgICAgICAgdGhpcy5nb29nbGUgPSBnb29nbGU7XHJcbiAgICAgICAgICAgIHRoaXMuaW5pdGlhbGl6ZSgpO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIGxvYWRlci5sb2FkU2NyaXB0KHRoaXMub25Mb2FkQ29tcGxldGUpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIHByaXZhdGUgb25Mb2FkQ29tcGxldGUgPSAoZ29vZ2xlOiBhbnkpID0+IHtcclxuICAgICAgICB0aGlzLmdvb2dsZSA9IGdvb2dsZTtcclxuICAgICAgICB0aGlzLmluaXRpYWxpemUoKTtcclxuICAgIH1cclxuXHJcbiAgICBpbml0aWFsaXplKCkge1xyXG4gICAgICAgIHRoaXMuZ29vZ2xlLmFjY291bnRzLmlkLmluaXRpYWxpemUoe1xyXG4gICAgICAgICAgICBjbGllbnRfaWQ6IHRoaXMuY2xpZW50X2lkLFxyXG4gICAgICAgICAgICBjYWxsYmFjazogKHJlc3BvbnNlOiBhbnkpID0+IHtcclxuICAgICAgICAgICAgICAgIHRoaXMuaGFuZGxlQ3JlZGVudGlhbFJlc3BvbnNlKHJlc3BvbnNlKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG5cclxuICAgICAgICB0aGlzLnJlbmRlckJ1dHRvbigpO1xyXG4gICAgICAgIHRoaXMuYXV0b1Byb21wdCgpO1xyXG4gICAgfVxyXG4gICAgcmVuZGVyQnV0dG9uKCkge1xyXG4gICAgICAgIHRoaXMuZ29vZ2xlLmFjY291bnRzLmlkLnJlbmRlckJ1dHRvbihcclxuICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQodGhpcy5fYnV0dG9uQ29udGFpbmVyKSxcclxuICAgICAgICAgICAgLy8gdGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LnBhcmVudEVsZW1lbnQsXHJcbiAgICAgICAgICAgIHsgdGhlbWU6IFwib3V0bGluZVwiLCBzaXplOiBcImxhcmdlXCIgfSAgLy8gY3VzdG9taXphdGlvbiBhdHRyaWJ1dGVzXHJcbiAgICAgICAgKTtcclxuICAgIH1cclxuICAgIGF1dG9Qcm9tcHQoKSB7XHJcbiAgICAgICAgaWYgKHRoaXMuX3Byb21wdClcclxuICAgICAgICAgICAgdGhpcy5nb29nbGUuYWNjb3VudHMuaWQucHJvbXB0KCk7IC8vIGFsc28gZGlzcGxheSB0aGUgT25lIFRhcCBkaWFsb2dcclxuICAgIH1cclxuXHJcblxyXG4gICAgaGFuZGxlQ3JlZGVudGlhbFJlc3BvbnNlKHJlc3BvbnNlOiBhbnkpIHtcclxuICAgICAgICB0aGlzLm9uTG9naW5SZXNwb25zZT8uZW1pdChyZXNwb25zZSk7XHJcbiAgICAgICAgdGhpcy5vbkxvZ2luPy5lbWl0KHJlc3BvbnNlLmNyZWRlbnRpYWwpO1xyXG5cclxuICAgICAgICAvLyBsZXQgcGF5bG9hZCA9IEp3dEhlbHBlci5kZWNvZGUocmVzcG9uc2UuY3JlZGVudGlhbCk7XHJcbiAgICAgICAgLy8gY29uc29sZS5sb2coXCJJRDogXCIgKyBwYXlsb2FkLnN1Yik7XHJcbiAgICAgICAgLy8gY29uc29sZS5sb2coJ0Z1bGwgTmFtZTogJyArIHBheWxvYWQubmFtZSk7XHJcbiAgICAgICAgLy8gY29uc29sZS5sb2coJ0dpdmVuIE5hbWU6ICcgKyBwYXlsb2FkLmdpdmVuX25hbWUpO1xyXG4gICAgICAgIC8vIGNvbnNvbGUubG9nKCdGYW1pbHkgTmFtZTogJyArIHBheWxvYWQuZmFtaWx5X25hbWUpO1xyXG4gICAgICAgIC8vIGNvbnNvbGUubG9nKFwiSW1hZ2UgVVJMOiBcIiArIHBheWxvYWQucGljdHVyZSk7XHJcbiAgICAgICAgLy8gY29uc29sZS5sb2coXCJFbWFpbDogXCIgKyBwYXlsb2FkLmVtYWlsKTtcclxuICAgIH1cclxufSJdfQ==
@@ -0,0 +1,3 @@
1
+ export * from './google-login-button';
2
+ export * from './module';
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy96ZWsvc3JjL2xpYi9tb2R1bGVzL2dvb2dsZS1sb2dpbi1idXR0b24vaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyx1QkFBdUIsQ0FBQTtBQUNyQyxjQUFjLFVBQVUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vZ29vZ2xlLWxvZ2luLWJ1dHRvbidcclxuZXhwb3J0ICogZnJvbSAnLi9tb2R1bGUnOyJdfQ==
@@ -0,0 +1,10 @@
1
+ import { HtmlHelper } from "../../utils";
2
+ function loadScript(onLoaded, url, nonce) {
3
+ window.onGoogleLibraryLoad = () => {
4
+ onLoaded(google);
5
+ };
6
+ const src = url || "https://accounts.google.com/gsi/client";
7
+ HtmlHelper.loadScript(src, nonce, true, true);
8
+ }
9
+ export const loader = { loadScript };
10
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9hZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvemVrL3NyYy9saWIvbW9kdWxlcy9nb29nbGUtbG9naW4tYnV0dG9uL2xvYWRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBV3pDLFNBQVMsVUFBVSxDQUNmLFFBQStCLEVBQy9CLEdBQVksRUFDWixLQUFjO0lBRWQsTUFBTSxDQUFDLG1CQUFtQixHQUFHLEdBQUcsRUFBRTtRQUM5QixRQUFRLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDckIsQ0FBQyxDQUFDO0lBRUYsTUFBTSxHQUFHLEdBQUcsR0FBRyxJQUFJLHdDQUF3QyxDQUFDO0lBQzVELFVBQVUsQ0FBQyxVQUFVLENBQUMsR0FBRyxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUM7QUFDbEQsQ0FBQztBQUVELE1BQU0sQ0FBQyxNQUFNLE1BQU0sR0FBRyxFQUFFLFVBQVUsRUFBRSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSHRtbEhlbHBlciB9IGZyb20gXCIuLi8uLi91dGlsc1wiO1xyXG5cclxuZGVjbGFyZSB2YXIgZ29vZ2xlOiBhbnk7XHJcblxyXG5cclxuZGVjbGFyZSBnbG9iYWwge1xyXG4gICAgaW50ZXJmYWNlIFdpbmRvdyB7XHJcbiAgICAgICAgb25Hb29nbGVMaWJyYXJ5TG9hZDogKCkgPT4gdm9pZDtcclxuICAgIH1cclxufVxyXG5cclxuZnVuY3Rpb24gbG9hZFNjcmlwdChcclxuICAgIG9uTG9hZGVkOiAoZ29vZ2xlOiBhbnkpID0+IHZvaWQsXHJcbiAgICB1cmw/OiBzdHJpbmcsXHJcbiAgICBub25jZT86IHN0cmluZ1xyXG4pOiB2b2lkIHtcclxuICAgIHdpbmRvdy5vbkdvb2dsZUxpYnJhcnlMb2FkID0gKCkgPT4ge1xyXG4gICAgICAgIG9uTG9hZGVkKGdvb2dsZSk7XHJcbiAgICB9O1xyXG5cclxuICAgIGNvbnN0IHNyYyA9IHVybCB8fCBcImh0dHBzOi8vYWNjb3VudHMuZ29vZ2xlLmNvbS9nc2kvY2xpZW50XCI7XHJcbiAgICBIdG1sSGVscGVyLmxvYWRTY3JpcHQoc3JjLCBub25jZSwgdHJ1ZSwgdHJ1ZSk7XHJcbn1cclxuXHJcbmV4cG9ydCBjb25zdCBsb2FkZXIgPSB7IGxvYWRTY3JpcHQgfTsiXX0=
@@ -0,0 +1,41 @@
1
+ import { NgModule } from '@angular/core';
2
+ import { CommonModule } from '@angular/common';
3
+ import { ZekGoogleLoginButton } from './google-login-button';
4
+ import { GOOGLE_CLIENT_ID } from '../../tokens';
5
+ import * as i0 from "@angular/core";
6
+ class GoogleLoginModule {
7
+ static forRoot(config) {
8
+ return {
9
+ ngModule: GoogleLoginModule,
10
+ providers: [
11
+ ZekGoogleLoginButton,
12
+ {
13
+ provide: GOOGLE_CLIENT_ID,
14
+ useValue: config.client_id
15
+ },
16
+ ]
17
+ };
18
+ }
19
+ static forChild(config) {
20
+ return this.forRoot(config);
21
+ }
22
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.1", ngImport: i0, type: GoogleLoginModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
23
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.0.1", ngImport: i0, type: GoogleLoginModule, declarations: [ZekGoogleLoginButton], imports: [CommonModule], exports: [ZekGoogleLoginButton] }); }
24
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.0.1", ngImport: i0, type: GoogleLoginModule, imports: [CommonModule] }); }
25
+ }
26
+ export { GoogleLoginModule };
27
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.1", ngImport: i0, type: GoogleLoginModule, decorators: [{
28
+ type: NgModule,
29
+ args: [{
30
+ imports: [
31
+ CommonModule
32
+ ],
33
+ declarations: [
34
+ ZekGoogleLoginButton
35
+ ],
36
+ exports: [
37
+ ZekGoogleLoginButton
38
+ ]
39
+ }]
40
+ }] });
41
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvemVrL3NyYy9saWIvbW9kdWxlcy9nb29nbGUtbG9naW4tYnV0dG9uL21vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQXVCLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM5RCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFFL0MsT0FBTyxFQUFxQixvQkFBb0IsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ2hGLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGNBQWMsQ0FBQzs7QUFFaEQsTUFXYSxpQkFBaUI7SUFDbkIsTUFBTSxDQUFDLE9BQU8sQ0FBQyxNQUF5QjtRQUMzQyxPQUFPO1lBQ0wsUUFBUSxFQUFFLGlCQUFpQjtZQUMzQixTQUFTLEVBQUU7Z0JBQ1Qsb0JBQW9CO2dCQUNwQjtvQkFDRSxPQUFPLEVBQUUsZ0JBQWdCO29CQUN6QixRQUFRLEVBQUUsTUFBTSxDQUFDLFNBQVM7aUJBQzNCO2FBQ0Y7U0FDRixDQUFDO0lBQ0osQ0FBQztJQUdJLE1BQU0sQ0FBQyxRQUFRLENBQUMsTUFBeUI7UUFDNUMsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ2hDLENBQUM7OEdBakJRLGlCQUFpQjsrR0FBakIsaUJBQWlCLGlCQU50QixvQkFBb0IsYUFIcEIsWUFBWSxhQU1aLG9CQUFvQjsrR0FHZixpQkFBaUIsWUFUdEIsWUFBWTs7U0FTUCxpQkFBaUI7MkZBQWpCLGlCQUFpQjtrQkFYN0IsUUFBUTttQkFBQztvQkFDTixPQUFPLEVBQUU7d0JBQ0wsWUFBWTtxQkFDZjtvQkFDRCxZQUFZLEVBQUU7d0JBQ1Ysb0JBQW9CO3FCQUN2QjtvQkFDRCxPQUFPLEVBQUU7d0JBQ0wsb0JBQW9CO3FCQUN2QjtpQkFDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE1vZHVsZVdpdGhQcm92aWRlcnMsIE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcblxyXG5pbXBvcnQgeyBHb29nbGVMb2dpbkNvbmZpZywgWmVrR29vZ2xlTG9naW5CdXR0b24gfSBmcm9tICcuL2dvb2dsZS1sb2dpbi1idXR0b24nO1xyXG5pbXBvcnQgeyBHT09HTEVfQ0xJRU5UX0lEIH0gZnJvbSAnLi4vLi4vdG9rZW5zJztcclxuXHJcbkBOZ01vZHVsZSh7XHJcbiAgICBpbXBvcnRzOiBbXHJcbiAgICAgICAgQ29tbW9uTW9kdWxlXHJcbiAgICBdLFxyXG4gICAgZGVjbGFyYXRpb25zOiBbXHJcbiAgICAgICAgWmVrR29vZ2xlTG9naW5CdXR0b25cclxuICAgIF0sXHJcbiAgICBleHBvcnRzOiBbXHJcbiAgICAgICAgWmVrR29vZ2xlTG9naW5CdXR0b25cclxuICAgIF1cclxufSlcclxuZXhwb3J0IGNsYXNzIEdvb2dsZUxvZ2luTW9kdWxlIHtcclxuICAgIHB1YmxpYyBzdGF0aWMgZm9yUm9vdChjb25maWc6IEdvb2dsZUxvZ2luQ29uZmlnKTogTW9kdWxlV2l0aFByb3ZpZGVyczxHb29nbGVMb2dpbk1vZHVsZT4ge1xyXG4gICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICBuZ01vZHVsZTogR29vZ2xlTG9naW5Nb2R1bGUsXHJcbiAgICAgICAgICBwcm92aWRlcnM6IFtcclxuICAgICAgICAgICAgWmVrR29vZ2xlTG9naW5CdXR0b24sXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICBwcm92aWRlOiBHT09HTEVfQ0xJRU5UX0lELFxyXG4gICAgICAgICAgICAgIHVzZVZhbHVlOiBjb25maWcuY2xpZW50X2lkXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICBdXHJcbiAgICAgICAgfTtcclxuICAgICAgfVxyXG5cclxuXHJcbiAgICBwdWJsaWMgc3RhdGljIGZvckNoaWxkKGNvbmZpZzogR29vZ2xlTG9naW5Db25maWcpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5mb3JSb290KGNvbmZpZyk7XHJcbiAgICB9XHJcbn0iXX0=
@@ -9,6 +9,7 @@ export * from './datepicker';
9
9
  export * from './edit-toolbar';
10
10
  export * from './file';
11
11
  export * from './file-viewer';
12
+ export * from './google-login-button';
12
13
  export * from './grid-toolbar';
13
14
  export * from './list-toolbar';
14
15
  export * from './loading';
@@ -30,4 +31,4 @@ export * from './validator';
30
31
  export * from './validators';
31
32
  export * from './wizard';
32
33
  // export * from './'
33
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy96ZWsvc3JjL2xpYi9tb2R1bGVzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsT0FBTyxDQUFDO0FBQ3RCLGNBQWMsU0FBUyxDQUFDO0FBQ3hCLGNBQWMsZ0JBQWdCLENBQUM7QUFDL0IsY0FBYyxNQUFNLENBQUM7QUFDckIsY0FBYyxRQUFRLENBQUM7QUFDdkIsY0FBYyxZQUFZLENBQUM7QUFDM0IsY0FBYyxZQUFZLENBQUM7QUFDM0IsY0FBYyxjQUFjLENBQUM7QUFDN0IsY0FBYyxnQkFBZ0IsQ0FBQztBQUMvQixjQUFjLFFBQVEsQ0FBQztBQUN2QixjQUFjLGVBQWUsQ0FBQztBQUM5QixjQUFjLGdCQUFnQixDQUFDO0FBQy9CLGNBQWMsZ0JBQWdCLENBQUM7QUFDL0IsY0FBYyxXQUFXLENBQUM7QUFDMUIsY0FBYyxTQUFTLENBQUM7QUFDeEIsY0FBYyxjQUFjLENBQUM7QUFDN0IsY0FBYyxTQUFTLENBQUM7QUFDeEIsY0FBYyxZQUFZLENBQUM7QUFDM0IsY0FBYyxZQUFZLENBQUM7QUFDM0IsY0FBYyxTQUFTLENBQUM7QUFDeEIsY0FBYyxZQUFZLENBQUM7QUFDM0IsY0FBYyxtQkFBbUIsQ0FBQztBQUNsQyxjQUFjLFFBQVEsQ0FBQztBQUN2QixjQUFjLFVBQVUsQ0FBQztBQUN6QixjQUFjLFdBQVcsQ0FBQztBQUMxQixjQUFjLG9CQUFvQixDQUFDO0FBQ25DLGNBQWMsUUFBUSxDQUFDO0FBQ3ZCLGNBQWMsUUFBUSxDQUFDO0FBQ3ZCLGNBQWMsYUFBYSxDQUFDO0FBQzVCLGNBQWMsY0FBYyxDQUFDO0FBQzdCLGNBQWMsVUFBVSxDQUFDO0FBRXpCLHFCQUFxQiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vYWdlJztcclxuZXhwb3J0ICogZnJvbSAnLi9hbGVydCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vYXV0b2NvbXBsZXRlJztcclxuZXhwb3J0ICogZnJvbSAnLi9iYic7XHJcbmV4cG9ydCAqIGZyb20gJy4vY2FyZCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vY2FsbGJhY2snO1xyXG5leHBvcnQgKiBmcm9tICcuL2RhdGUtYWdvJztcclxuZXhwb3J0ICogZnJvbSAnLi9kYXRlcGlja2VyJztcclxuZXhwb3J0ICogZnJvbSAnLi9lZGl0LXRvb2xiYXInO1xyXG5leHBvcnQgKiBmcm9tICcuL2ZpbGUnO1xyXG5leHBvcnQgKiBmcm9tICcuL2ZpbGUtdmlld2VyJztcclxuZXhwb3J0ICogZnJvbSAnLi9ncmlkLXRvb2xiYXInO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpc3QtdG9vbGJhcic7XHJcbmV4cG9ydCAqIGZyb20gJy4vbG9hZGluZyc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbW9kYWwnO1xyXG5leHBvcnQgKiBmcm9tICcuL3BhZ2UtdGl0bGUnO1xyXG5leHBvcnQgKiBmcm9tICcuL3BhZ2VyJztcclxuZXhwb3J0ICogZnJvbSAnLi9wYXNzd29yZCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vcHJvZ3Jlc3MnO1xyXG5leHBvcnQgKiBmcm9tICcuL3JhZGlvJztcclxuZXhwb3J0ICogZnJvbSAnLi9yZWFkb25seSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vcmVjYXB0Y2hhL2luZGV4JztcclxuZXhwb3J0ICogZnJvbSAnLi9zYWZlJztcclxuZXhwb3J0ICogZnJvbSAnLi9zZWxlY3QnO1xyXG5leHBvcnQgKiBmcm9tICcuL3NlbGVjdDInO1xyXG5leHBvcnQgKiBmcm9tICcuL3NlbGVjdDItbXVsdGlwbGUnO1xyXG5leHBvcnQgKiBmcm9tICcuL3NvcnQnO1xyXG5leHBvcnQgKiBmcm9tICcuL3RpbWUnO1xyXG5leHBvcnQgKiBmcm9tICcuL3ZhbGlkYXRvcic7XHJcbmV4cG9ydCAqIGZyb20gJy4vdmFsaWRhdG9ycyc7XHJcbmV4cG9ydCAqIGZyb20gJy4vd2l6YXJkJztcclxuXHJcbi8vIGV4cG9ydCAqIGZyb20gJy4vJyJdfQ==
34
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy96ZWsvc3JjL2xpYi9tb2R1bGVzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsT0FBTyxDQUFDO0FBQ3RCLGNBQWMsU0FBUyxDQUFDO0FBQ3hCLGNBQWMsZ0JBQWdCLENBQUM7QUFDL0IsY0FBYyxNQUFNLENBQUM7QUFDckIsY0FBYyxRQUFRLENBQUM7QUFDdkIsY0FBYyxZQUFZLENBQUM7QUFDM0IsY0FBYyxZQUFZLENBQUM7QUFDM0IsY0FBYyxjQUFjLENBQUM7QUFDN0IsY0FBYyxnQkFBZ0IsQ0FBQztBQUMvQixjQUFjLFFBQVEsQ0FBQztBQUN2QixjQUFjLGVBQWUsQ0FBQztBQUM5QixjQUFjLHVCQUF1QixDQUFDO0FBQ3RDLGNBQWMsZ0JBQWdCLENBQUM7QUFDL0IsY0FBYyxnQkFBZ0IsQ0FBQztBQUMvQixjQUFjLFdBQVcsQ0FBQztBQUMxQixjQUFjLFNBQVMsQ0FBQztBQUN4QixjQUFjLGNBQWMsQ0FBQztBQUM3QixjQUFjLFNBQVMsQ0FBQztBQUN4QixjQUFjLFlBQVksQ0FBQztBQUMzQixjQUFjLFlBQVksQ0FBQztBQUMzQixjQUFjLFNBQVMsQ0FBQztBQUN4QixjQUFjLFlBQVksQ0FBQztBQUMzQixjQUFjLG1CQUFtQixDQUFDO0FBQ2xDLGNBQWMsUUFBUSxDQUFDO0FBQ3ZCLGNBQWMsVUFBVSxDQUFDO0FBQ3pCLGNBQWMsV0FBVyxDQUFDO0FBQzFCLGNBQWMsb0JBQW9CLENBQUM7QUFDbkMsY0FBYyxRQUFRLENBQUM7QUFDdkIsY0FBYyxRQUFRLENBQUM7QUFDdkIsY0FBYyxhQUFhLENBQUM7QUFDNUIsY0FBYyxjQUFjLENBQUM7QUFDN0IsY0FBYyxVQUFVLENBQUM7QUFFekIscUJBQXFCIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9hZ2UnO1xyXG5leHBvcnQgKiBmcm9tICcuL2FsZXJ0JztcclxuZXhwb3J0ICogZnJvbSAnLi9hdXRvY29tcGxldGUnO1xyXG5leHBvcnQgKiBmcm9tICcuL2JiJztcclxuZXhwb3J0ICogZnJvbSAnLi9jYXJkJztcclxuZXhwb3J0ICogZnJvbSAnLi9jYWxsYmFjayc7XHJcbmV4cG9ydCAqIGZyb20gJy4vZGF0ZS1hZ28nO1xyXG5leHBvcnQgKiBmcm9tICcuL2RhdGVwaWNrZXInO1xyXG5leHBvcnQgKiBmcm9tICcuL2VkaXQtdG9vbGJhcic7XHJcbmV4cG9ydCAqIGZyb20gJy4vZmlsZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vZmlsZS12aWV3ZXInO1xyXG5leHBvcnQgKiBmcm9tICcuL2dvb2dsZS1sb2dpbi1idXR0b24nO1xyXG5leHBvcnQgKiBmcm9tICcuL2dyaWQtdG9vbGJhcic7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGlzdC10b29sYmFyJztcclxuZXhwb3J0ICogZnJvbSAnLi9sb2FkaW5nJztcclxuZXhwb3J0ICogZnJvbSAnLi9tb2RhbCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vcGFnZS10aXRsZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vcGFnZXInO1xyXG5leHBvcnQgKiBmcm9tICcuL3Bhc3N3b3JkJztcclxuZXhwb3J0ICogZnJvbSAnLi9wcm9ncmVzcyc7XHJcbmV4cG9ydCAqIGZyb20gJy4vcmFkaW8nO1xyXG5leHBvcnQgKiBmcm9tICcuL3JlYWRvbmx5JztcclxuZXhwb3J0ICogZnJvbSAnLi9yZWNhcHRjaGEvaW5kZXgnO1xyXG5leHBvcnQgKiBmcm9tICcuL3NhZmUnO1xyXG5leHBvcnQgKiBmcm9tICcuL3NlbGVjdCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vc2VsZWN0Mic7XHJcbmV4cG9ydCAqIGZyb20gJy4vc2VsZWN0Mi1tdWx0aXBsZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vc29ydCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vdGltZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vdmFsaWRhdG9yJztcclxuZXhwb3J0ICogZnJvbSAnLi92YWxpZGF0b3JzJztcclxuZXhwb3J0ICogZnJvbSAnLi93aXphcmQnO1xyXG5cclxuLy8gZXhwb3J0ICogZnJvbSAnLi8nIl19
@@ -127,4 +127,4 @@ export class CustomHttpParamEncoder {
127
127
  return decodeURIComponent(value);
128
128
  }
129
129
  }
130
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2ViLmFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3play9zcmMvbGliL3NlcnZpY2VzL3dlYi5hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkQsT0FBTyxFQUFjLFdBQVcsRUFBRSxVQUFVLENBQUEsdUJBQXVCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQW9KbEcsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLFdBQVcsQ0FBQzs7OztBQXRJekMsTUFDYSxZQUFZO0lBQ3JCLFlBQ3VCLElBQWdCLEVBQ2hCLFdBQXdCLEVBQ0osT0FBZTtRQUZuQyxTQUFJLEdBQUosSUFBSSxDQUFZO1FBQ2hCLGdCQUFXLEdBQVgsV0FBVyxDQUFhO1FBQ0osWUFBTyxHQUFQLE9BQU8sQ0FBUTtJQUMxRCxDQUFDO0lBRUQsR0FBRyxDQUFVLEdBQVcsRUFBRSxNQUFZO1FBQ2xDLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUksSUFBSSxDQUFDLE9BQU8sR0FBRyxHQUFHLEVBQUUsRUFBRSxPQUFPLEVBQUUsSUFBSSxDQUFDLFVBQVUsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUMvRzs7Ozs7Ozs7O01BU0Y7SUFDRixDQUFDO0lBRUQsU0FBUyxDQUFDLEdBQVcsRUFBRSxNQUFlO1FBQ2xDLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLE9BQU8sR0FBRyxHQUFHLEVBQUUsRUFBRSxPQUFPLEVBQUUsSUFBSSxDQUFDLFVBQVUsRUFBRSxFQUFFLFlBQVksRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLElBQUksQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQ3RJLENBQUM7SUFDRCxRQUFRLENBQUMsR0FBVyxFQUFFLE1BQVk7UUFDOUIsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsT0FBTyxHQUFHLEdBQUcsRUFBRSxFQUFFLE9BQU8sRUFBRSxJQUFJLENBQUMsVUFBVSxFQUFFLEVBQUUsWUFBWSxFQUFFLGFBQWEsRUFBRSxNQUFNLEVBQUUsSUFBSSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDN0ksQ0FBQztJQUNELE9BQU8sQ0FBQyxHQUFXLEVBQUUsTUFBWTtRQUM3QixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxPQUFPLEdBQUcsR0FBRyxFQUFFLEVBQUUsT0FBTyxFQUFFLElBQUksQ0FBQyxVQUFVLEVBQUUsRUFBRSxZQUFZLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxJQUFJLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUN0SSxDQUFDO0lBSVMsWUFBWSxDQUFDLEdBQVE7UUFDM0IsSUFBSSxDQUFDLEdBQUc7WUFDSixPQUFPLFNBQVMsQ0FBQztRQUVyQixJQUFJLE1BQU0sR0FBRyxJQUFJLFVBQVUsQ0FBQyxFQUFFLE9BQU8sRUFBRSxJQUFJLHNCQUFzQixFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQ3ZFLEtBQUssTUFBTSxHQUFHLElBQUksTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRTtZQUNoQyxNQUFNLEtBQUssR0FBRyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUM7WUFFdkIsSUFBSSxLQUFLLEtBQUssU0FBUyxJQUFJLEtBQUssS0FBSyxJQUFJLElBQUksQ0FBQyxPQUFPLEtBQUssS0FBSyxRQUFRLElBQUksS0FBSyxDQUFDLE1BQU0sS0FBSyxDQUFDLENBQUM7Z0JBQzFGLFNBQVM7WUFFYixJQUFJLEtBQUssR0FBRyxLQUFLLENBQUM7WUFDbEIsdURBQXVEO1lBQ3ZELDRDQUE0QztZQUM1QyxJQUFJO1lBRUosTUFBTSxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsR0FBRyxFQUFFLEtBQUssQ0FBQyxDQUFDO1lBQ25DLGdDQUFnQztZQUNoQyxxQ0FBcUM7WUFDckMsb0RBQW9EO1lBQ3BELFVBQVU7WUFDVixXQUFXO1lBQ1gsMENBQTBDO1lBQzFDLElBQUk7U0FDUDtRQUNELE9BQU8sTUFBTSxDQUFDO1FBR2QsNEJBQTRCO1FBQzVCLDJEQUEyRDtRQUMzRCxhQUFhO1FBQ2IsbUdBQW1HO1FBQ25HLG1CQUFtQjtJQUN2QixDQUFDO0lBRUQsK0NBQStDO0lBQy9DLGtDQUFrQztJQUNsQyw2REFBNkQ7SUFDN0QsOENBQThDO0lBQzlDLDRDQUE0QztJQUM1QywwQ0FBMEM7SUFDMUMsMkRBQTJEO0lBQzNELFdBQVc7SUFDWCx3QkFBd0I7SUFDeEIsT0FBTztJQUNQLHVCQUF1QjtJQUN2QixHQUFHO0lBRUgsSUFBSSxDQUFVLEdBQVcsRUFBRSxJQUFpQjtRQUN4QyxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFJLElBQUksQ0FBQyxPQUFPLEdBQUcsR0FBRyxFQUFFLElBQUksRUFBRSxFQUFFLE9BQU8sRUFBRSxJQUFJLENBQUMsVUFBVSxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQ25GLFFBQVE7UUFDUixtQ0FBbUM7UUFDbkMsSUFBSTtJQUNSLENBQUM7SUFDRCxHQUFHLENBQVUsR0FBVyxFQUFFLElBQWlCO1FBQ3ZDLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUksSUFBSSxDQUFDLE9BQU8sR0FBRyxHQUFHLEVBQUUsSUFBSSxFQUFFLEVBQUUsT0FBTyxFQUFFLElBQUksQ0FBQyxVQUFVLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDbEYsUUFBUTtRQUNSLG1DQUFtQztRQUNuQyxJQUFJO0lBQ1IsQ0FBQztJQUNELE1BQU0sQ0FBQyxHQUFXLEVBQUUsSUFBaUI7UUFDakMsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLE9BQU8sR0FBRyxHQUFHLEVBQUUsRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLElBQUksQ0FBQyxVQUFVLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDN0YsaUZBQWlGO1FBQ2pGLFFBQVE7UUFDUixtQ0FBbUM7UUFDbkMsSUFBSTtJQUNSLENBQUM7SUFDRCxLQUFLLENBQVUsR0FBVyxFQUFFLElBQWlCO1FBQ3pDLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUksSUFBSSxDQUFDLE9BQU8sR0FBRyxHQUFHLEVBQUUsSUFBSSxFQUFFLEVBQUUsT0FBTyxFQUFFLElBQUksQ0FBQyxVQUFVLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFDeEYsQ0FBQztJQUdTLFVBQVU7UUFDaEIsSUFBSSxXQUFXLEdBQUcsSUFBSSxXQUFXLEVBQUUsQ0FBQztRQUNwQyxXQUFXLEdBQUcsV0FBVyxDQUFDLEdBQUcsQ0FBQyxjQUFjLEVBQUUsa0JBQWtCLENBQUMsQ0FBQztRQUNsRSxNQUFNLEdBQUcsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQztRQUNsQyxNQUFNLEtBQUssR0FBRyxHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQztRQUMxQyxJQUFJLEtBQUs7WUFDTCxXQUFXLEdBQUcsV0FBVyxDQUFDLEdBQUcsQ0FBQyxlQUFlLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFDMUQsT0FBTyxXQUFXLENBQUM7SUFDdkIsQ0FBQzs4R0FqSFEsWUFBWSx1RUFJVCxZQUFZO2tIQUpmLFlBQVk7O1NBQVosWUFBWTsyRkFBWixZQUFZO2tCQUR4QixVQUFVOzswQkFLRixNQUFNOzJCQUFDLFlBQVk7O0FBa0k1QixNQUFNLE9BQU8sc0JBQXNCO0lBQy9CLFNBQVMsQ0FBQyxHQUFXO1FBQ2pCLE9BQU8sa0JBQWtCLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDbkMsQ0FBQztJQUNELFdBQVcsQ0FBQyxLQUFhO1FBQ3JCLE9BQU8sa0JBQWtCLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDckMsQ0FBQztJQUNELFNBQVMsQ0FBQyxHQUFXO1FBQ2pCLE9BQU8sa0JBQWtCLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDbkMsQ0FBQztJQUNELFdBQVcsQ0FBQyxLQUFhO1FBQ3JCLE9BQU8sa0JBQWtCLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDckMsQ0FBQztDQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSwgSW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEh0dHBDbGllbnQsIEh0dHBIZWFkZXJzLCBIdHRwUGFyYW1zLyosIEh0dHBFcnJvclJlc3BvbnNlKi8gfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XHJcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcclxuLy9pbXBvcnQgeyBvZiB9IGZyb20gJ3J4anMvb2JzZXJ2YWJsZS9vZic7XHJcbi8vaW1wb3J0IHsgY2F0Y2hFcnJvciB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuXHJcbmltcG9ydCB7IEF1dGhTZXJ2aWNlIH0gZnJvbSAnLi9hdXRoLnNlcnZpY2UnO1xyXG4vL2ltcG9ydCB7IGRlbGV0ZU51bGxQcm9wZXJ0aWVzIH0gZnJvbSAnLi4vdXRpbHMnO1xyXG4vL2ltcG9ydCB7IEh0dHBFcnJvckhhbmRsZXIsIEhhbmRsZUVycm9yIH0gZnJvbSAnLi9odHRwLWVycm9yLWhhbmRsZXIuc2VydmljZSc7XHJcblxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBXZWJBcGlDb25maWcge1xyXG4gICAgYmFzZVVybDogc3RyaW5nO1xyXG59XHJcblxyXG5ASW5qZWN0YWJsZSgpXHJcbmV4cG9ydCBjbGFzcyBXZWJBcGlDbGllbnQge1xyXG4gICAgY29uc3RydWN0b3IoXHJcbiAgICAgICAgcHJvdGVjdGVkIHJlYWRvbmx5IGh0dHA6IEh0dHBDbGllbnQsXHJcbiAgICAgICAgcHJvdGVjdGVkIHJlYWRvbmx5IGF1dGhTZXJ2aWNlOiBBdXRoU2VydmljZSxcclxuICAgICAgICBASW5qZWN0KEFQSV9CQVNFX1VSTCkgcHJpdmF0ZSByZWFkb25seSBiYXNlVXJsOiBzdHJpbmcpIHtcclxuICAgIH1cclxuXHJcbiAgICBnZXQ8VCA9IGFueT4odXJsOiBzdHJpbmcsIHBhcmFtcz86IGFueSk6IE9ic2VydmFibGU8VD4ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PFQ+KHRoaXMuYmFzZVVybCArIHVybCwgeyBoZWFkZXJzOiB0aGlzLmdldEhlYWRlcnMoKSwgcGFyYW1zOiB0aGlzLnRvSHR0cFBhcmFtcyhwYXJhbXMpIH0pO1xyXG4gICAgICAgIC8qLmNhdGNoKGNhdGNoRXJyb3IodGhpcy5oYW5kbGVFcnJvcih1cmwpKSlcclxuICAgICAgICAuZG8oKHJlczogUmVzcG9uc2UpID0+IHtcclxuICAgICAgICAgICAgLy8gSGFuZGxlIHN1Y2Nlc3MsIG1heWJlIGRpc3BsYXkgbm90aWZpY2F0aW9uXHJcbiAgICAgICAgfSwgKGVycm9yOiBhbnkpID0+IHtcclxuICAgICAgICAgICAgLy8gSGFuZGxlIGVycm9yc1xyXG4gICAgICAgIH0pXHJcbiAgICAgICAgLmZpbmFsbHkoKCkgPT4ge1xyXG4gICAgICAgICAgICAvLyBSZXF1ZXN0IGNvbXBsZXRlZFxyXG4gICAgICAgIH0pO1xyXG4gICAgKi9cclxuICAgIH1cclxuXHJcbiAgICBnZXRTdHJpbmcodXJsOiBzdHJpbmcsIHBhcmFtcz86IG9iamVjdCk6IE9ic2VydmFibGU8c3RyaW5nIHwgbnVsbD4ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0KHRoaXMuYmFzZVVybCArIHVybCwgeyBoZWFkZXJzOiB0aGlzLmdldEhlYWRlcnMoKSwgcmVzcG9uc2VUeXBlOiAndGV4dCcsIHBhcmFtczogdGhpcy50b0h0dHBQYXJhbXMocGFyYW1zKSB9KTtcclxuICAgIH1cclxuICAgIGdldEJ5dGVzKHVybDogc3RyaW5nLCBwYXJhbXM/OiBhbnkpOiBPYnNlcnZhYmxlPEFycmF5QnVmZmVyPiB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQodGhpcy5iYXNlVXJsICsgdXJsLCB7IGhlYWRlcnM6IHRoaXMuZ2V0SGVhZGVycygpLCByZXNwb25zZVR5cGU6ICdhcnJheWJ1ZmZlcicsIHBhcmFtczogdGhpcy50b0h0dHBQYXJhbXMocGFyYW1zKSB9KTtcclxuICAgIH1cclxuICAgIGdldEJsb2IodXJsOiBzdHJpbmcsIHBhcmFtcz86IGFueSk6IE9ic2VydmFibGU8QmxvYj4ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0KHRoaXMuYmFzZVVybCArIHVybCwgeyBoZWFkZXJzOiB0aGlzLmdldEhlYWRlcnMoKSwgcmVzcG9uc2VUeXBlOiAnYmxvYicsIHBhcmFtczogdGhpcy50b0h0dHBQYXJhbXMocGFyYW1zKSB9KTtcclxuICAgIH1cclxuXHJcblxyXG5cclxuICAgIHByb3RlY3RlZCB0b0h0dHBQYXJhbXMob2JqOiBhbnkpIHtcclxuICAgICAgICBpZiAoIW9iailcclxuICAgICAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcclxuXHJcbiAgICAgICAgbGV0IHBhcmFtcyA9IG5ldyBIdHRwUGFyYW1zKHsgZW5jb2RlcjogbmV3IEN1c3RvbUh0dHBQYXJhbUVuY29kZXIoKSB9KTtcclxuICAgICAgICBmb3IgKGNvbnN0IGtleSBvZiBPYmplY3Qua2V5cyhvYmopKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IGZpZWxkID0gb2JqW2tleV07XHJcblxyXG4gICAgICAgICAgICBpZiAoZmllbGQgPT09IHVuZGVmaW5lZCB8fCBmaWVsZCA9PT0gbnVsbCB8fCAodHlwZW9mIGZpZWxkID09PSAnc3RyaW5nJyAmJiBmaWVsZC5sZW5ndGggPT09IDApKVxyXG4gICAgICAgICAgICAgICAgY29udGludWU7XHJcblxyXG4gICAgICAgICAgICBsZXQgdmFsdWUgPSBmaWVsZDtcclxuICAgICAgICAgICAgLy8gaWYgKHR5cGVvZiBmaWVsZCA9PT0gJ3N0cmluZycgJiYgZmllbGQubGVuZ3RoID4gMCkge1xyXG4gICAgICAgICAgICAvLyAgICAgdmFsdWUgPSBmaWVsZC5yZXBsYWNlKC9cXCsvZ2ksICclMkInKTtcclxuICAgICAgICAgICAgLy8gfVxyXG5cclxuICAgICAgICAgICAgcGFyYW1zID0gcGFyYW1zLmFwcGVuZChrZXksIHZhbHVlKTtcclxuICAgICAgICAgICAgLy8gaWYgKGZpZWxkIGluc3RhbmNlb2YgQXJyYXkpIHtcclxuICAgICAgICAgICAgLy8gICAgIGZpZWxkLmZvckVhY2goKGl0ZW06IGFueSkgPT4ge1xyXG4gICAgICAgICAgICAvLyAgICAgICAgIHBhcmFtcyA9IHBhcmFtcy5hcHBlbmQoYCR7a2V5fVtdYCwgaXRlbSk7XHJcbiAgICAgICAgICAgIC8vICAgICB9KTtcclxuICAgICAgICAgICAgLy8gfSBlbHNlIHtcclxuICAgICAgICAgICAgLy8gICAgIHBhcmFtcyA9IHBhcmFtcy5hcHBlbmQoa2V5LCBmaWVsZCk7XHJcbiAgICAgICAgICAgIC8vIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIHBhcmFtcztcclxuXHJcblxyXG4gICAgICAgIC8vZGVsZXRlTnVsbFByb3BlcnRpZXMob2JqKTtcclxuICAgICAgICAvL2NvbW1lbnQgYmVjYXVzZSBpbnRbXSBub3Qgc2VuZGluZyBpbiBjIyBpdCBzZW5kIFwiMSwyLDMsNFwiXHJcbiAgICAgICAgLy8gcmV0dXJuIG9ialxyXG4gICAgICAgIC8vICAgICA/IE9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKG9iaikucmVkdWNlKChwLCBrZXkpID0+IHAuc2V0KGtleSwgb2JqW2tleV0pLCBuZXcgSHR0cFBhcmFtcygpKVxyXG4gICAgICAgIC8vICAgICA6IHVuZGVmaW5lZDtcclxuICAgIH1cclxuXHJcbiAgICAvL3RvS2V5UGFpcnMob2JqOiBhbnkpOiBLZXlQYWlyW10gfCB1bmRlZmluZWQge1xyXG4gICAgLy8gICAgaWYgKG9iaiBpbnN0YW5jZW9mIE9iamVjdCkge1xyXG4gICAgLy8gICAgICAgIGNvbnN0IHByb3BlcnRpZXMgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyhvYmopO1xyXG4gICAgLy8gICAgICAgIGNvbnN0IHJlc3VsdCA9IG5ldyBBcnJheTxLZXlQYWlyPigpO1xyXG4gICAgLy8gICAgICAgIGZvciAobGV0IHByb3BlcnR5IG9mIHByb3BlcnRpZXMpIHtcclxuICAgIC8vICAgICAgICAgICAgY29uc3QgdmFsdWUgPSBvYmpbcHJvcGVydHldO1xyXG4gICAgLy8gICAgICAgICAgICByZXN1bHQucHVzaCh7IGtleTogcHJvcGVydHksIHZhbHVlOiB2YWx1ZSB9KTtcclxuICAgIC8vICAgICAgICB9XHJcbiAgICAvLyAgICAgICAgcmV0dXJuIHJlc3VsdDtcclxuICAgIC8vICAgIH1cclxuICAgIC8vICAgIHJldHVybiB1bmRlZmluZWQ7XHJcbiAgICAvL31cclxuXHJcbiAgICBwb3N0PFQgPSBhbnk+KHVybDogc3RyaW5nLCBib2R5PzogYW55IHwgbnVsbCk6IE9ic2VydmFibGU8VD4ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxUPih0aGlzLmJhc2VVcmwgKyB1cmwsIGJvZHksIHsgaGVhZGVyczogdGhpcy5nZXRIZWFkZXJzKCkgfSk7XHJcbiAgICAgICAgLy8ucGlwZShcclxuICAgICAgICAvL2NhdGNoRXJyb3IodGhpcy5oYW5kbGVFcnJvcih1cmwpKVxyXG4gICAgICAgIC8vKTtcclxuICAgIH1cclxuICAgIHB1dDxUID0gYW55Pih1cmw6IHN0cmluZywgYm9keT86IGFueSB8IG51bGwpOiBPYnNlcnZhYmxlPFQ+IHtcclxuICAgICAgICByZXR1cm4gdGhpcy5odHRwLnB1dDxUPih0aGlzLmJhc2VVcmwgKyB1cmwsIGJvZHksIHsgaGVhZGVyczogdGhpcy5nZXRIZWFkZXJzKCkgfSk7XHJcbiAgICAgICAgLy8ucGlwZShcclxuICAgICAgICAvL2NhdGNoRXJyb3IodGhpcy5oYW5kbGVFcnJvcih1cmwpKVxyXG4gICAgICAgIC8vKTtcclxuICAgIH1cclxuICAgIGRlbGV0ZSh1cmw6IHN0cmluZywgYm9keT86IGFueSB8IG51bGwpOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmh0dHAucmVxdWVzdCgnZGVsZXRlJywgdGhpcy5iYXNlVXJsICsgdXJsLCB7IGJvZHksIGhlYWRlcnM6IHRoaXMuZ2V0SGVhZGVycygpIH0pO1xyXG4gICAgICAgIC8vcmV0dXJuIHRoaXMuaHR0cC5kZWxldGUoZW52aXJvbm1lbnQudXJsICsgdXJsLCB7IGhlYWRlcnM6IHRoaXMuZ2V0SGVhZGVycygpIH0pO1xyXG4gICAgICAgIC8vLnBpcGUoXHJcbiAgICAgICAgLy9jYXRjaEVycm9yKHRoaXMuaGFuZGxlRXJyb3IodXJsKSlcclxuICAgICAgICAvLyk7XHJcbiAgICB9XHJcbiAgICBwYXRjaDxUID0gYW55Pih1cmw6IHN0cmluZywgYm9keT86IGFueSB8IG51bGwpOiBPYnNlcnZhYmxlPFQ+IHtcclxuICAgICAgICByZXR1cm4gdGhpcy5odHRwLnBhdGNoPFQ+KHRoaXMuYmFzZVVybCArIHVybCwgYm9keSwgeyBoZWFkZXJzOiB0aGlzLmdldEhlYWRlcnMoKSB9KTtcclxuICAgIH1cclxuXHJcblxyXG4gICAgcHJvdGVjdGVkIGdldEhlYWRlcnMoKTogSHR0cEhlYWRlcnMge1xyXG4gICAgICAgIGxldCBodHRwSGVhZGVycyA9IG5ldyBIdHRwSGVhZGVycygpO1xyXG4gICAgICAgIGh0dHBIZWFkZXJzID0gaHR0cEhlYWRlcnMuc2V0KCdDb250ZW50LVR5cGUnLCAnYXBwbGljYXRpb24vanNvbicpO1xyXG4gICAgICAgIGNvbnN0IHRtcCA9IHRoaXMuYXV0aFNlcnZpY2UudXNlcjtcclxuICAgICAgICBjb25zdCB0b2tlbiA9IHRtcCA/IHRtcC50b2tlbiA6IHVuZGVmaW5lZDtcclxuICAgICAgICBpZiAodG9rZW4pXHJcbiAgICAgICAgICAgIGh0dHBIZWFkZXJzID0gaHR0cEhlYWRlcnMuc2V0KCdBdXRob3JpemF0aW9uJywgdG9rZW4pO1xyXG4gICAgICAgIHJldHVybiBodHRwSGVhZGVycztcclxuICAgIH1cclxuXHJcblxyXG5cclxuICAgIC8vcHJpdmF0ZSBnZXRQYXJhbXMocGFyYW1zPzogS2V5UGFpcltdIHwgbnVsbCkge1xyXG4gICAgLy8gICAgaWYgKCFwYXJhbXMgfHwgcGFyYW1zLmxlbmd0aCA9PT0gMCkge1xyXG4gICAgLy8gICAgICAgIHJldHVybiB1bmRlZmluZWQ7XHJcbiAgICAvLyAgICB9XHJcbiAgICAvLyAgICBsZXQgaHR0cFBhcmFtcyA9IG5ldyBIdHRwUGFyYW1zKCk7XHJcbiAgICAvLyAgICBpZiAocGFyYW1zKSB7XHJcbiAgICAvLyAgICAgICAgZm9yIChsZXQgcGFyYW0gb2YgcGFyYW1zKSB7XHJcbiAgICAvLyAgICAgICAgICAgIGh0dHBQYXJhbXMgPSBodHRwUGFyYW1zLnNldChwYXJhbS5rZXksIHBhcmFtLnZhbHVlKTtcclxuICAgIC8vICAgICAgICB9XHJcbiAgICAvLyAgICB9XHJcbiAgICAvLyAgICByZXR1cm4gaHR0cFBhcmFtcztcclxuICAgIC8vfVxyXG59XHJcblxyXG5cclxuaW1wb3J0IHsgSHR0cFBhcmFtZXRlckNvZGVjIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xyXG5pbXBvcnQgeyBBUElfQkFTRV9VUkwgfSBmcm9tICcuLi90b2tlbnMnO1xyXG5leHBvcnQgY2xhc3MgQ3VzdG9tSHR0cFBhcmFtRW5jb2RlciBpbXBsZW1lbnRzIEh0dHBQYXJhbWV0ZXJDb2RlYyB7XHJcbiAgICBlbmNvZGVLZXkoa2V5OiBzdHJpbmcpOiBzdHJpbmcge1xyXG4gICAgICAgIHJldHVybiBlbmNvZGVVUklDb21wb25lbnQoa2V5KTtcclxuICAgIH1cclxuICAgIGVuY29kZVZhbHVlKHZhbHVlOiBzdHJpbmcpOiBzdHJpbmcge1xyXG4gICAgICAgIHJldHVybiBlbmNvZGVVUklDb21wb25lbnQodmFsdWUpO1xyXG4gICAgfVxyXG4gICAgZGVjb2RlS2V5KGtleTogc3RyaW5nKTogc3RyaW5nIHtcclxuICAgICAgICByZXR1cm4gZGVjb2RlVVJJQ29tcG9uZW50KGtleSk7XHJcbiAgICB9XHJcbiAgICBkZWNvZGVWYWx1ZSh2YWx1ZTogc3RyaW5nKTogc3RyaW5nIHtcclxuICAgICAgICByZXR1cm4gZGVjb2RlVVJJQ29tcG9uZW50KHZhbHVlKTtcclxuICAgIH1cclxufSJdfQ==
130
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2ViLmFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3play9zcmMvbGliL3NlcnZpY2VzL3dlYi5hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkQsT0FBTyxFQUFjLFdBQVcsRUFBRSxVQUFVLENBQUEsdUJBQXVCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQVNsRyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sV0FBVyxDQUFDOzs7O0FBTXpDLE1BQ2EsWUFBWTtJQUNyQixZQUN1QixJQUFnQixFQUNoQixXQUF3QixFQUNKLE9BQWU7UUFGbkMsU0FBSSxHQUFKLElBQUksQ0FBWTtRQUNoQixnQkFBVyxHQUFYLFdBQVcsQ0FBYTtRQUNKLFlBQU8sR0FBUCxPQUFPLENBQVE7SUFDMUQsQ0FBQztJQUVELEdBQUcsQ0FBVSxHQUFXLEVBQUUsTUFBWTtRQUNsQyxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFJLElBQUksQ0FBQyxPQUFPLEdBQUcsR0FBRyxFQUFFLEVBQUUsT0FBTyxFQUFFLElBQUksQ0FBQyxVQUFVLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDL0c7Ozs7Ozs7OztNQVNGO0lBQ0YsQ0FBQztJQUVELFNBQVMsQ0FBQyxHQUFXLEVBQUUsTUFBZTtRQUNsQyxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxPQUFPLEdBQUcsR0FBRyxFQUFFLEVBQUUsT0FBTyxFQUFFLElBQUksQ0FBQyxVQUFVLEVBQUUsRUFBRSxZQUFZLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxJQUFJLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUN0SSxDQUFDO0lB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QUM7SUFDRCxTQUFTLENBQUMsR0FBVztRQUNqQixPQUFPLGtCQUFrQixDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ25DLENBQUM7SUFDRCxXQUFXLENBQUMsS0FBYTtRQUNyQixPQUFPLGtCQUFrQixDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3JDLENBQUM7Q0FDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUsIEluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBIdHRwQ2xpZW50LCBIdHRwSGVhZGVycywgSHR0cFBhcmFtcy8qLCBIdHRwRXJyb3JSZXNwb25zZSovIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xyXG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XHJcbi8vaW1wb3J0IHsgb2YgfSBmcm9tICdyeGpzL29ic2VydmFibGUvb2YnO1xyXG4vL2ltcG9ydCB7IGNhdGNoRXJyb3IgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcblxyXG5pbXBvcnQgeyBBdXRoU2VydmljZSB9IGZyb20gJy4vYXV0aC5zZXJ2aWNlJztcclxuLy9pbXBvcnQgeyBkZWxldGVOdWxsUHJvcGVydGllcyB9IGZyb20gJy4uL3V0aWxzJztcclxuLy9pbXBvcnQgeyBIdHRwRXJyb3JIYW5kbGVyLCBIYW5kbGVFcnJvciB9IGZyb20gJy4vaHR0cC1lcnJvci1oYW5kbGVyLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBIdHRwUGFyYW1ldGVyQ29kZWMgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XHJcbmltcG9ydCB7IEFQSV9CQVNFX1VSTCB9IGZyb20gJy4uL3Rva2Vucyc7XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIFdlYkFwaUNvbmZpZyB7XHJcbiAgICBiYXNlVXJsOiBzdHJpbmc7XHJcbn1cclxuXHJcbkBJbmplY3RhYmxlKClcclxuZXhwb3J0IGNsYXNzIFdlYkFwaUNsaWVudCB7XHJcbiAgICBjb25zdHJ1Y3RvcihcclxuICAgICAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgaHR0cDogSHR0cENsaWVudCxcclxuICAgICAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgYXV0aFNlcnZpY2U6IEF1dGhTZXJ2aWNlLFxyXG4gICAgICAgIEBJbmplY3QoQVBJX0JBU0VfVVJMKSBwcml2YXRlIHJlYWRvbmx5IGJhc2VVcmw6IHN0cmluZykge1xyXG4gICAgfVxyXG5cclxuICAgIGdldDxUID0gYW55Pih1cmw6IHN0cmluZywgcGFyYW1zPzogYW55KTogT2JzZXJ2YWJsZTxUPiB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8VD4odGhpcy5iYXNlVXJsICsgdXJsLCB7IGhlYWRlcnM6IHRoaXMuZ2V0SGVhZGVycygpLCBwYXJhbXM6IHRoaXMudG9IdHRwUGFyYW1zKHBhcmFtcykgfSk7XHJcbiAgICAgICAgLyouY2F0Y2goY2F0Y2hFcnJvcih0aGlzLmhhbmRsZUVycm9yKHVybCkpKVxyXG4gICAgICAgIC5kbygocmVzOiBSZXNwb25zZSkgPT4ge1xyXG4gICAgICAgICAgICAvLyBIYW5kbGUgc3VjY2VzcywgbWF5YmUgZGlzcGxheSBub3RpZmljYXRpb25cclxuICAgICAgICB9LCAoZXJyb3I6IGFueSkgPT4ge1xyXG4gICAgICAgICAgICAvLyBIYW5kbGUgZXJyb3JzXHJcbiAgICAgICAgfSlcclxuICAgICAgICAuZmluYWxseSgoKSA9PiB7XHJcbiAgICAgICAgICAgIC8vIFJlcXVlc3QgY29tcGxldGVkXHJcbiAgICAgICAgfSk7XHJcbiAgICAqL1xyXG4gICAgfVxyXG5cclxuICAgIGdldFN0cmluZyh1cmw6IHN0cmluZywgcGFyYW1zPzogb2JqZWN0KTogT2JzZXJ2YWJsZTxzdHJpbmcgfCBudWxsPiB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQodGhpcy5iYXNlVXJsICsgdXJsLCB7IGhlYWRlcnM6IHRoaXMuZ2V0SGVhZGVycygpLCByZXNwb25zZVR5cGU6ICd0ZXh0JywgcGFyYW1zOiB0aGlzLnRvSHR0cFBhcmFtcyhwYXJhbXMpIH0pO1xyXG4gICAgfVxyXG4gICAgZ2V0Qnl0ZXModXJsOiBzdHJpbmcsIHBhcmFtcz86IGFueSk6IE9ic2VydmFibGU8QXJyYXlCdWZmZXI+IHtcclxuICAgICAgICByZXR1cm4gdGhpcy5odHRwLmdldCh0aGlzLmJhc2VVcmwgKyB1cmwsIHsgaGVhZGVyczogdGhpcy5nZXRIZWFkZXJzKCksIHJlc3BvbnNlVHlwZTogJ2FycmF5YnVmZmVyJywgcGFyYW1zOiB0aGlzLnRvSHR0cFBhcmFtcyhwYXJhbXMpIH0pO1xyXG4gICAgfVxyXG4gICAgZ2V0QmxvYih1cmw6IHN0cmluZywgcGFyYW1zPzogYW55KTogT2JzZXJ2YWJsZTxCbG9iPiB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQodGhpcy5iYXNlVXJsICsgdXJsLCB7IGhlYWRlcnM6IHRoaXMuZ2V0SGVhZGVycygpLCByZXNwb25zZVR5cGU6ICdibG9iJywgcGFyYW1zOiB0aGlzLnRvSHR0cFBhcmFtcyhwYXJhbXMpIH0pO1xyXG4gICAgfVxyXG5cclxuXHJcblxyXG4gICAgcHJvdGVjdGVkIHRvSHR0cFBhcmFtcyhvYmo6IGFueSkge1xyXG4gICAgICAgIGlmICghb2JqKVxyXG4gICAgICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xyXG5cclxuICAgICAgICBsZXQgcGFyYW1zID0gbmV3IEh0dHBQYXJhbXMoeyBlbmNvZGVyOiBuZXcgQ3VzdG9tSHR0cFBhcmFtRW5jb2RlcigpIH0pO1xyXG4gICAgICAgIGZvciAoY29uc3Qga2V5IG9mIE9iamVjdC5rZXlzKG9iaikpIHtcclxuICAgICAgICAgICAgY29uc3QgZmllbGQgPSBvYmpba2V5XTtcclxuXHJcbiAgICAgICAgICAgIGlmIChmaWVsZCA9PT0gdW5kZWZpbmVkIHx8IGZpZWxkID09PSBudWxsIHx8ICh0eXBlb2YgZmllbGQgPT09ICdzdHJpbmcnICYmIGZpZWxkLmxlbmd0aCA9PT0gMCkpXHJcbiAgICAgICAgICAgICAgICBjb250aW51ZTtcclxuXHJcbiAgICAgICAgICAgIGxldCB2YWx1ZSA9IGZpZWxkO1xyXG4gICAgICAgICAgICAvLyBpZiAodHlwZW9mIGZpZWxkID09PSAnc3RyaW5nJyAmJiBmaWVsZC5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgICAgIC8vICAgICB2YWx1ZSA9IGZpZWxkLnJlcGxhY2UoL1xcKy9naSwgJyUyQicpO1xyXG4gICAgICAgICAgICAvLyB9XHJcblxyXG4gICAgICAgICAgICBwYXJhbXMgPSBwYXJhbXMuYXBwZW5kKGtleSwgdmFsdWUpO1xyXG4gICAgICAgICAgICAvLyBpZiAoZmllbGQgaW5zdGFuY2VvZiBBcnJheSkge1xyXG4gICAgICAgICAgICAvLyAgICAgZmllbGQuZm9yRWFjaCgoaXRlbTogYW55KSA9PiB7XHJcbiAgICAgICAgICAgIC8vICAgICAgICAgcGFyYW1zID0gcGFyYW1zLmFwcGVuZChgJHtrZXl9W11gLCBpdGVtKTtcclxuICAgICAgICAgICAgLy8gICAgIH0pO1xyXG4gICAgICAgICAgICAvLyB9IGVsc2Uge1xyXG4gICAgICAgICAgICAvLyAgICAgcGFyYW1zID0gcGFyYW1zLmFwcGVuZChrZXksIGZpZWxkKTtcclxuICAgICAgICAgICAgLy8gfVxyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gcGFyYW1zO1xyXG5cclxuXHJcbiAgICAgICAgLy9kZWxldGVOdWxsUHJvcGVydGllcyhvYmopO1xyXG4gICAgICAgIC8vY29tbWVudCBiZWNhdXNlIGludFtdIG5vdCBzZW5kaW5nIGluIGMjIGl0IHNlbmQgXCIxLDIsMyw0XCJcclxuICAgICAgICAvLyByZXR1cm4gb2JqXHJcbiAgICAgICAgLy8gICAgID8gT2JqZWN0LmdldE93blByb3BlcnR5TmFtZXMob2JqKS5yZWR1Y2UoKHAsIGtleSkgPT4gcC5zZXQoa2V5LCBvYmpba2V5XSksIG5ldyBIdHRwUGFyYW1zKCkpXHJcbiAgICAgICAgLy8gICAgIDogdW5kZWZpbmVkO1xyXG4gICAgfVxyXG5cclxuICAgIC8vdG9LZXlQYWlycyhvYmo6IGFueSk6IEtleVBhaXJbXSB8IHVuZGVmaW5lZCB7XHJcbiAgICAvLyAgICBpZiAob2JqIGluc3RhbmNlb2YgT2JqZWN0KSB7XHJcbiAgICAvLyAgICAgICAgY29uc3QgcHJvcGVydGllcyA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKG9iaik7XHJcbiAgICAvLyAgICAgICAgY29uc3QgcmVzdWx0ID0gbmV3IEFycmF5PEtleVBhaXI+KCk7XHJcbiAgICAvLyAgICAgICAgZm9yIChsZXQgcHJvcGVydHkgb2YgcHJvcGVydGllcykge1xyXG4gICAgLy8gICAgICAgICAgICBjb25zdCB2YWx1ZSA9IG9ialtwcm9wZXJ0eV07XHJcbiAgICAvLyAgICAgICAgICAgIHJlc3VsdC5wdXNoKHsga2V5OiBwcm9wZXJ0eSwgdmFsdWU6IHZhbHVlIH0pO1xyXG4gICAgLy8gICAgICAgIH1cclxuICAgIC8vICAgICAgICByZXR1cm4gcmVzdWx0O1xyXG4gICAgLy8gICAgfVxyXG4gICAgLy8gICAgcmV0dXJuIHVuZGVmaW5lZDtcclxuICAgIC8vfVxyXG5cclxuICAgIHBvc3Q8VCA9IGFueT4odXJsOiBzdHJpbmcsIGJvZHk/OiBhbnkgfCBudWxsKTogT2JzZXJ2YWJsZTxUPiB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PFQ+KHRoaXMuYmFzZVVybCArIHVybCwgYm9keSwgeyBoZWFkZXJzOiB0aGlzLmdldEhlYWRlcnMoKSB9KTtcclxuICAgICAgICAvLy5waXBlKFxyXG4gICAgICAgIC8vY2F0Y2hFcnJvcih0aGlzLmhhbmRsZUVycm9yKHVybCkpXHJcbiAgICAgICAgLy8pO1xyXG4gICAgfVxyXG4gICAgcHV0PFQgPSBhbnk+KHVybDogc3RyaW5nLCBib2R5PzogYW55IHwgbnVsbCk6IE9ic2VydmFibGU8VD4ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmh0dHAucHV0PFQ+KHRoaXMuYmFzZVVybCArIHVybCwgYm9keSwgeyBoZWFkZXJzOiB0aGlzLmdldEhlYWRlcnMoKSB9KTtcclxuICAgICAgICAvLy5waXBlKFxyXG4gICAgICAgIC8vY2F0Y2hFcnJvcih0aGlzLmhhbmRsZUVycm9yKHVybCkpXHJcbiAgICAgICAgLy8pO1xyXG4gICAgfVxyXG4gICAgZGVsZXRlKHVybDogc3RyaW5nLCBib2R5PzogYW55IHwgbnVsbCk6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cC5yZXF1ZXN0KCdkZWxldGUnLCB0aGlzLmJhc2VVcmwgKyB1cmwsIHsgYm9keSwgaGVhZGVyczogdGhpcy5nZXRIZWFkZXJzKCkgfSk7XHJcbiAgICAgICAgLy9yZXR1cm4gdGhpcy5odHRwLmRlbGV0ZShlbnZpcm9ubWVudC51cmwgKyB1cmwsIHsgaGVhZGVyczogdGhpcy5nZXRIZWFkZXJzKCkgfSk7XHJcbiAgICAgICAgLy8ucGlwZShcclxuICAgICAgICAvL2NhdGNoRXJyb3IodGhpcy5oYW5kbGVFcnJvcih1cmwpKVxyXG4gICAgICAgIC8vKTtcclxuICAgIH1cclxuICAgIHBhdGNoPFQgPSBhbnk+KHVybDogc3RyaW5nLCBib2R5PzogYW55IHwgbnVsbCk6IE9ic2VydmFibGU8VD4ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmh0dHAucGF0Y2g8VD4odGhpcy5iYXNlVXJsICsgdXJsLCBib2R5LCB7IGhlYWRlcnM6IHRoaXMuZ2V0SGVhZGVycygpIH0pO1xyXG4gICAgfVxyXG5cclxuXHJcbiAgICBwcm90ZWN0ZWQgZ2V0SGVhZGVycygpOiBIdHRwSGVhZGVycyB7XHJcbiAgICAgICAgbGV0IGh0dHBIZWFkZXJzID0gbmV3IEh0dHBIZWFkZXJzKCk7XHJcbiAgICAgICAgaHR0cEhlYWRlcnMgPSBodHRwSGVhZGVycy5zZXQoJ0NvbnRlbnQtVHlwZScsICdhcHBsaWNhdGlvbi9qc29uJyk7XHJcbiAgICAgICAgY29uc3QgdG1wID0gdGhpcy5hdXRoU2VydmljZS51c2VyO1xyXG4gICAgICAgIGNvbnN0IHRva2VuID0gdG1wID8gdG1wLnRva2VuIDogdW5kZWZpbmVkO1xyXG4gICAgICAgIGlmICh0b2tlbilcclxuICAgICAgICAgICAgaHR0cEhlYWRlcnMgPSBodHRwSGVhZGVycy5zZXQoJ0F1dGhvcml6YXRpb24nLCB0b2tlbik7XHJcbiAgICAgICAgcmV0dXJuIGh0dHBIZWFkZXJzO1xyXG4gICAgfVxyXG5cclxuXHJcblxyXG4gICAgLy9wcml2YXRlIGdldFBhcmFtcyhwYXJhbXM/OiBLZXlQYWlyW10gfCBudWxsKSB7XHJcbiAgICAvLyAgICBpZiAoIXBhcmFtcyB8fCBwYXJhbXMubGVuZ3RoID09PSAwKSB7XHJcbiAgICAvLyAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcclxuICAgIC8vICAgIH1cclxuICAgIC8vICAgIGxldCBodHRwUGFyYW1zID0gbmV3IEh0dHBQYXJhbXMoKTtcclxuICAgIC8vICAgIGlmIChwYXJhbXMpIHtcclxuICAgIC8vICAgICAgICBmb3IgKGxldCBwYXJhbSBvZiBwYXJhbXMpIHtcclxuICAgIC8vICAgICAgICAgICAgaHR0cFBhcmFtcyA9IGh0dHBQYXJhbXMuc2V0KHBhcmFtLmtleSwgcGFyYW0udmFsdWUpO1xyXG4gICAgLy8gICAgICAgIH1cclxuICAgIC8vICAgIH1cclxuICAgIC8vICAgIHJldHVybiBodHRwUGFyYW1zO1xyXG4gICAgLy99XHJcbn1cclxuXHJcblxyXG5cclxuZXhwb3J0IGNsYXNzIEN1c3RvbUh0dHBQYXJhbUVuY29kZXIgaW1wbGVtZW50cyBIdHRwUGFyYW1ldGVyQ29kZWMge1xyXG4gICAgZW5jb2RlS2V5KGtleTogc3RyaW5nKTogc3RyaW5nIHtcclxuICAgICAgICByZXR1cm4gZW5jb2RlVVJJQ29tcG9uZW50KGtleSk7XHJcbiAgICB9XHJcbiAgICBlbmNvZGVWYWx1ZSh2YWx1ZTogc3RyaW5nKTogc3RyaW5nIHtcclxuICAgICAgICByZXR1cm4gZW5jb2RlVVJJQ29tcG9uZW50KHZhbHVlKTtcclxuICAgIH1cclxuICAgIGRlY29kZUtleShrZXk6IHN0cmluZyk6IHN0cmluZyB7XHJcbiAgICAgICAgcmV0dXJuIGRlY29kZVVSSUNvbXBvbmVudChrZXkpO1xyXG4gICAgfVxyXG4gICAgZGVjb2RlVmFsdWUodmFsdWU6IHN0cmluZyk6IHN0cmluZyB7XHJcbiAgICAgICAgcmV0dXJuIGRlY29kZVVSSUNvbXBvbmVudCh2YWx1ZSk7XHJcbiAgICB9XHJcbn0iXX0=
@@ -3,4 +3,5 @@ export const API_BASE_URL = new InjectionToken('API_BASE_URL');
3
3
  export const DATE_FORMAT = new InjectionToken('DATE_FORMAT');
4
4
  export const LANGUAGE = new InjectionToken('LANGUAGE');
5
5
  export const RECAPTCHA_SITE_KEY = new InjectionToken('RECAPTCHA_SITE_KEY');
6
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9rZW5zLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvemVrL3NyYy9saWIvdG9rZW5zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFL0MsTUFBTSxDQUFDLE1BQU0sWUFBWSxHQUFHLElBQUksY0FBYyxDQUFTLGNBQWMsQ0FBQyxDQUFDO0FBQ3ZFLE1BQU0sQ0FBQyxNQUFNLFdBQVcsR0FBRyxJQUFJLGNBQWMsQ0FBUyxhQUFhLENBQUMsQ0FBQztBQUNyRSxNQUFNLENBQUMsTUFBTSxRQUFRLEdBQUcsSUFBSSxjQUFjLENBQVMsVUFBVSxDQUFDLENBQUM7QUFDL0QsTUFBTSxDQUFDLE1BQU0sa0JBQWtCLEdBQUcsSUFBSSxjQUFjLENBQVMsb0JBQW9CLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGlvblRva2VuIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuXHJcbmV4cG9ydCBjb25zdCBBUElfQkFTRV9VUkwgPSBuZXcgSW5qZWN0aW9uVG9rZW48c3RyaW5nPignQVBJX0JBU0VfVVJMJyk7XHJcbmV4cG9ydCBjb25zdCBEQVRFX0ZPUk1BVCA9IG5ldyBJbmplY3Rpb25Ub2tlbjxzdHJpbmc+KCdEQVRFX0ZPUk1BVCcpO1xyXG5leHBvcnQgY29uc3QgTEFOR1VBR0UgPSBuZXcgSW5qZWN0aW9uVG9rZW48c3RyaW5nPignTEFOR1VBR0UnKTtcclxuZXhwb3J0IGNvbnN0IFJFQ0FQVENIQV9TSVRFX0tFWSA9IG5ldyBJbmplY3Rpb25Ub2tlbjxzdHJpbmc+KCdSRUNBUFRDSEFfU0lURV9LRVknKTsiXX0=
6
+ export const GOOGLE_CLIENT_ID = new InjectionToken('GOOGLE_CLIENT_ID');
7
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9rZW5zLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvemVrL3NyYy9saWIvdG9rZW5zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFL0MsTUFBTSxDQUFDLE1BQU0sWUFBWSxHQUFHLElBQUksY0FBYyxDQUFTLGNBQWMsQ0FBQyxDQUFDO0FBQ3ZFLE1BQU0sQ0FBQyxNQUFNLFdBQVcsR0FBRyxJQUFJLGNBQWMsQ0FBUyxhQUFhLENBQUMsQ0FBQztBQUNyRSxNQUFNLENBQUMsTUFBTSxRQUFRLEdBQUcsSUFBSSxjQUFjLENBQVMsVUFBVSxDQUFDLENBQUM7QUFDL0QsTUFBTSxDQUFDLE1BQU0sa0JBQWtCLEdBQUcsSUFBSSxjQUFjLENBQVMsb0JBQW9CLENBQUMsQ0FBQztBQUNuRixNQUFNLENBQUMsTUFBTSxnQkFBZ0IsR0FBRyxJQUFJLGNBQWMsQ0FBUyxrQkFBa0IsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0aW9uVG9rZW4gfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5cclxuZXhwb3J0IGNvbnN0IEFQSV9CQVNFX1VSTCA9IG5ldyBJbmplY3Rpb25Ub2tlbjxzdHJpbmc+KCdBUElfQkFTRV9VUkwnKTtcclxuZXhwb3J0IGNvbnN0IERBVEVfRk9STUFUID0gbmV3IEluamVjdGlvblRva2VuPHN0cmluZz4oJ0RBVEVfRk9STUFUJyk7XHJcbmV4cG9ydCBjb25zdCBMQU5HVUFHRSA9IG5ldyBJbmplY3Rpb25Ub2tlbjxzdHJpbmc+KCdMQU5HVUFHRScpO1xyXG5leHBvcnQgY29uc3QgUkVDQVBUQ0hBX1NJVEVfS0VZID0gbmV3IEluamVjdGlvblRva2VuPHN0cmluZz4oJ1JFQ0FQVENIQV9TSVRFX0tFWScpO1xyXG5leHBvcnQgY29uc3QgR09PR0xFX0NMSUVOVF9JRCA9IG5ldyBJbmplY3Rpb25Ub2tlbjxzdHJpbmc+KCdHT09HTEVfQ0xJRU5UX0lEJyk7Il19
package/fesm2022/zek.mjs CHANGED
@@ -1610,6 +1610,7 @@ const API_BASE_URL = new InjectionToken('API_BASE_URL');
1610
1610
  const DATE_FORMAT = new InjectionToken('DATE_FORMAT');
1611
1611
  const LANGUAGE = new InjectionToken('LANGUAGE');
1612
1612
  const RECAPTCHA_SITE_KEY = new InjectionToken('RECAPTCHA_SITE_KEY');
1613
+ const GOOGLE_CLIENT_ID = new InjectionToken('GOOGLE_CLIENT_ID');
1613
1614
 
1614
1615
  class WebApiClient {
1615
1616
  constructor(http, authService, baseUrl) {
@@ -4356,6 +4357,140 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.1", ngImpor
4356
4357
  }]
4357
4358
  }] });
4358
4359
 
4360
+ function loadScript$1(onLoaded, url, nonce) {
4361
+ window.onGoogleLibraryLoad = () => {
4362
+ onLoaded(google);
4363
+ };
4364
+ const src = url || "https://accounts.google.com/gsi/client";
4365
+ HtmlHelper.loadScript(src, nonce, true, true);
4366
+ }
4367
+ const loader$1 = { loadScript: loadScript$1 };
4368
+
4369
+ class ZekGoogleLoginButton extends CoreComponent {
4370
+ constructor(client_id) {
4371
+ super();
4372
+ this.client_id = client_id;
4373
+ this._prompt = true;
4374
+ this.onLoginResponse = new EventEmitter();
4375
+ this.onLogin = new EventEmitter();
4376
+ this._buttonContainer = 'google-login-container';
4377
+ this.onLoadComplete = (google) => {
4378
+ this.google = google;
4379
+ this.initialize();
4380
+ };
4381
+ }
4382
+ get prompt() {
4383
+ return this._prompt;
4384
+ }
4385
+ set prompt(v) {
4386
+ this._prompt = Convert.toBooleanProperty(v);
4387
+ }
4388
+ get buttonContainer() {
4389
+ return this._buttonContainer;
4390
+ }
4391
+ set buttonContainer(v) {
4392
+ if (!v)
4393
+ throw new Error('buttonContainer is required');
4394
+ this._buttonContainer = v;
4395
+ }
4396
+ async init() {
4397
+ super.init();
4398
+ // await GoogleLoginButton.loadScript();
4399
+ if ("google" in window) {
4400
+ this.google = google;
4401
+ this.initialize();
4402
+ }
4403
+ else {
4404
+ loader$1.loadScript(this.onLoadComplete);
4405
+ }
4406
+ }
4407
+ initialize() {
4408
+ this.google.accounts.id.initialize({
4409
+ client_id: this.client_id,
4410
+ callback: (response) => {
4411
+ this.handleCredentialResponse(response);
4412
+ }
4413
+ });
4414
+ this.renderButton();
4415
+ this.autoPrompt();
4416
+ }
4417
+ renderButton() {
4418
+ this.google.accounts.id.renderButton(document.getElementById(this._buttonContainer),
4419
+ // this._elementRef.nativeElement.parentElement,
4420
+ { theme: "outline", size: "large" } // customization attributes
4421
+ );
4422
+ }
4423
+ autoPrompt() {
4424
+ if (this._prompt)
4425
+ this.google.accounts.id.prompt(); // also display the One Tap dialog
4426
+ }
4427
+ handleCredentialResponse(response) {
4428
+ this.onLoginResponse?.emit(response);
4429
+ this.onLogin?.emit(response.credential);
4430
+ // let payload = JwtHelper.decode(response.credential);
4431
+ // console.log("ID: " + payload.sub);
4432
+ // console.log('Full Name: ' + payload.name);
4433
+ // console.log('Given Name: ' + payload.given_name);
4434
+ // console.log('Family Name: ' + payload.family_name);
4435
+ // console.log("Image URL: " + payload.picture);
4436
+ // console.log("Email: " + payload.email);
4437
+ }
4438
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.1", ngImport: i0, type: ZekGoogleLoginButton, deps: [{ token: GOOGLE_CLIENT_ID }], target: i0.ɵɵFactoryTarget.Directive }); }
4439
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.0.1", type: ZekGoogleLoginButton, selector: "zek-google-login", inputs: { prompt: "prompt", buttonContainer: "buttonContainer" }, outputs: { onLoginResponse: "onLoginResponse", onLogin: "onLogin" }, usesInheritance: true, ngImport: i0 }); }
4440
+ }
4441
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.1", ngImport: i0, type: ZekGoogleLoginButton, decorators: [{
4442
+ type: Directive,
4443
+ args: [{
4444
+ selector: 'zek-google-login',
4445
+ }]
4446
+ }], ctorParameters: function () { return [{ type: undefined, decorators: [{
4447
+ type: Inject,
4448
+ args: [GOOGLE_CLIENT_ID]
4449
+ }] }]; }, propDecorators: { prompt: [{
4450
+ type: Input
4451
+ }], onLoginResponse: [{
4452
+ type: Output
4453
+ }], onLogin: [{
4454
+ type: Output
4455
+ }], buttonContainer: [{
4456
+ type: Input
4457
+ }] } });
4458
+
4459
+ class GoogleLoginModule {
4460
+ static forRoot(config) {
4461
+ return {
4462
+ ngModule: GoogleLoginModule,
4463
+ providers: [
4464
+ ZekGoogleLoginButton,
4465
+ {
4466
+ provide: GOOGLE_CLIENT_ID,
4467
+ useValue: config.client_id
4468
+ },
4469
+ ]
4470
+ };
4471
+ }
4472
+ static forChild(config) {
4473
+ return this.forRoot(config);
4474
+ }
4475
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.1", ngImport: i0, type: GoogleLoginModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
4476
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.0.1", ngImport: i0, type: GoogleLoginModule, declarations: [ZekGoogleLoginButton], imports: [CommonModule], exports: [ZekGoogleLoginButton] }); }
4477
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.0.1", ngImport: i0, type: GoogleLoginModule, imports: [CommonModule] }); }
4478
+ }
4479
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.1", ngImport: i0, type: GoogleLoginModule, decorators: [{
4480
+ type: NgModule,
4481
+ args: [{
4482
+ imports: [
4483
+ CommonModule
4484
+ ],
4485
+ declarations: [
4486
+ ZekGoogleLoginButton
4487
+ ],
4488
+ exports: [
4489
+ ZekGoogleLoginButton
4490
+ ]
4491
+ }]
4492
+ }] });
4493
+
4359
4494
  class GridToolbarComponent {
4360
4495
  constructor() {
4361
4496
  this._showEdit = true;
@@ -6723,5 +6858,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.1", ngImpor
6723
6858
  * Generated bundle index. Do not edit.
6724
6859
  */
6725
6860
 
6726
- export { API_BASE_URL, AgeModule, AgePipe, Alert, AlertModule, AlertService, AppBaseModule, ArrayHelper, AuthGuardService, AuthService, AutoCompleteDirective, AutoCompleteModule, Base64Helper, BaseAlert, BaseComponent, BaseService, BitwiseHelper, BootstrapHelper, ButtonBrowseComponent, ButtonBrowseModalBaseComponent, ButtonBrowseModalToolbarComponent, ButtonBrowseModule, CallbackModule, CallbackPipe, CardComponent, CardModule, Color, ComponentType, Convert, CoreComponent, CoreUiComponent, CrudService, CssHelper, CustomHttpParamEncoder, DATE_FORMAT, DateAgoModule, DateAgoPipe, DateHelper, DateValueAccessor, DatepickerModule, EditBase, EditBaseComponent, EditComponent, EditFormComponent, EditToolbarComponent, EditToolbarModule, FileBase, FileBytes, FileHelper, FileModule, FileSizePipe, FileString, FileViewerModule, FilterBase, FilterHelper, Gender, GridToolbarBarComponent, GridToolbarComponent, GridToolbarModule, HtmlHelper, HttpErrorHandler, JwtHelper, KeyPair, KeyPairChecked, KeyPairEx, KeyPairRequired, LANGUAGE, ListBase, ListBaseComponent, ListToolbarComponent, ListToolbarModule, MATCH_VALIDATOR, MatchValidator, MathHelper, Month, ObjectHelper, OverlapHelper, PageTitleComponent, PageTitleModule, PagedList, PagedListBase, Pager, PagerBase, PagerHelper, PasswordModule, PeriodRelation, PrintType, ProgressModule, RANGE_VALIDATOR, RECAPTCHA_SITE_KEY, RadioComponent, RadioModule, RandomHelper, RangeValidator, ReCaptchaService, ReadOnlyDirective, ReadOnlyModule, RecaptchaModule, Select2Component, Select2Module, StorageHelper, StringHelper, TimeHelper, TimeModule, TimePipe, TimerService, Toast, Tree, UrlHelper, ValidEventArgs, ValidationHelper, ValidatorModule, Validators, ValidatorsModule, WebApiClient, WebApiModule, WizardComponent, WizardComponent2, WizardModule, ZekAlert, ZekApproveModal, ZekDeleteModal, ZekDisapproveModal, ZekFieldValidator, ZekFileViewer, ZekFilterModal, ZekLoading, ZekLoadingModule, ZekModal, ZekModalModule, ZekPager, ZekPagerModule, ZekPassword, ZekProgress, ZekRestoreModal, ZekSafeModule, ZekSafePipe, ZekSelect2Multiple, ZekSelect2MultipleModule, ZekSelectModule, ZekSelectMultiple, ZekSort, ZekSortButtonGroup, ZekSortModule, ZekSubmitModal, ZekSumModal, ZekToast, ZekValidation, firstBy, handler, matchValidator, nullValidator, rangeValidator };
6861
+ export { API_BASE_URL, AgeModule, AgePipe, Alert, AlertModule, AlertService, AppBaseModule, ArrayHelper, AuthGuardService, AuthService, AutoCompleteDirective, AutoCompleteModule, Base64Helper, BaseAlert, BaseComponent, BaseService, BitwiseHelper, BootstrapHelper, ButtonBrowseComponent, ButtonBrowseModalBaseComponent, ButtonBrowseModalToolbarComponent, ButtonBrowseModule, CallbackModule, CallbackPipe, CardComponent, CardModule, Color, ComponentType, Convert, CoreComponent, CoreUiComponent, CrudService, CssHelper, CustomHttpParamEncoder, DATE_FORMAT, DateAgoModule, DateAgoPipe, DateHelper, DateValueAccessor, DatepickerModule, EditBase, EditBaseComponent, EditComponent, EditFormComponent, EditToolbarComponent, EditToolbarModule, FileBase, FileBytes, FileHelper, FileModule, FileSizePipe, FileString, FileViewerModule, FilterBase, FilterHelper, GOOGLE_CLIENT_ID, Gender, GoogleLoginModule, GridToolbarBarComponent, GridToolbarComponent, GridToolbarModule, HtmlHelper, HttpErrorHandler, JwtHelper, KeyPair, KeyPairChecked, KeyPairEx, KeyPairRequired, LANGUAGE, ListBase, ListBaseComponent, ListToolbarComponent, ListToolbarModule, MATCH_VALIDATOR, MatchValidator, MathHelper, Month, ObjectHelper, OverlapHelper, PageTitleComponent, PageTitleModule, PagedList, PagedListBase, Pager, PagerBase, PagerHelper, PasswordModule, PeriodRelation, PrintType, ProgressModule, RANGE_VALIDATOR, RECAPTCHA_SITE_KEY, RadioComponent, RadioModule, RandomHelper, RangeValidator, ReCaptchaService, ReadOnlyDirective, ReadOnlyModule, RecaptchaModule, Select2Component, Select2Module, StorageHelper, StringHelper, TimeHelper, TimeModule, TimePipe, TimerService, Toast, Tree, UrlHelper, ValidEventArgs, ValidationHelper, ValidatorModule, Validators, ValidatorsModule, WebApiClient, WebApiModule, WizardComponent, WizardComponent2, WizardModule, ZekAlert, ZekApproveModal, ZekDeleteModal, ZekDisapproveModal, ZekFieldValidator, ZekFileViewer, ZekFilterModal, ZekGoogleLoginButton, ZekLoading, ZekLoadingModule, ZekModal, ZekModalModule, ZekPager, ZekPagerModule, ZekPassword, ZekProgress, ZekRestoreModal, ZekSafeModule, ZekSafePipe, ZekSelect2Multiple, ZekSelect2MultipleModule, ZekSelectModule, ZekSelectMultiple, ZekSort, ZekSortButtonGroup, ZekSortModule, ZekSubmitModal, ZekSumModal, ZekToast, ZekValidation, firstBy, handler, matchValidator, nullValidator, rangeValidator };
6727
6862
  //# sourceMappingURL=zek.mjs.map