verben-authentication-ui 0.0.1 → 0.0.3

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.
Files changed (31) hide show
  1. package/esm2022/lib/components/mail/mail.component.mjs +69 -0
  2. package/esm2022/lib/components/mail/mail.module.mjs +21 -0
  3. package/esm2022/lib/components/otp-input/otp-input.component.mjs +68 -0
  4. package/esm2022/lib/components/otp-input/otp-input.module.mjs +23 -0
  5. package/esm2022/lib/components/sign-in/sign-in.component.mjs +120 -0
  6. package/esm2022/lib/components/sign-in/sign-in.module.mjs +24 -0
  7. package/esm2022/lib/components/sign-up/sign-up.component.mjs +7 -4
  8. package/esm2022/lib/components/two-factor-auth-otp/two-factor-auth-otp.component.mjs +100 -0
  9. package/esm2022/lib/components/two-factor-auth-otp/two-factor-auth-otp.module.mjs +22 -0
  10. package/esm2022/lib/components/two-factor-auth-setup/two-factor-auth-setup.component.mjs +87 -0
  11. package/esm2022/lib/components/two-factor-auth-setup/two-factor-auth-setup.module.mjs +19 -0
  12. package/esm2022/lib/components/user-request/user-request.component.mjs +67 -26
  13. package/esm2022/lib/models/log-in.mjs +2 -0
  14. package/esm2022/public-api.mjs +14 -1
  15. package/fesm2022/verben-authentication-ui.mjs +561 -34
  16. package/fesm2022/verben-authentication-ui.mjs.map +1 -1
  17. package/lib/components/mail/mail.component.d.ts +32 -0
  18. package/lib/components/mail/mail.module.d.ts +11 -0
  19. package/lib/components/otp-input/otp-input.component.d.ts +19 -0
  20. package/lib/components/otp-input/otp-input.module.d.ts +13 -0
  21. package/lib/components/sign-in/sign-in.component.d.ts +45 -0
  22. package/lib/components/sign-in/sign-in.module.d.ts +13 -0
  23. package/lib/components/sign-up/sign-up.component.d.ts +2 -1
  24. package/lib/components/two-factor-auth-otp/two-factor-auth-otp.component.d.ts +43 -0
  25. package/lib/components/two-factor-auth-otp/two-factor-auth-otp.module.d.ts +12 -0
  26. package/lib/components/two-factor-auth-setup/two-factor-auth-setup.component.d.ts +38 -0
  27. package/lib/components/two-factor-auth-setup/two-factor-auth-setup.module.d.ts +9 -0
  28. package/lib/components/user-request/user-request.component.d.ts +18 -7
  29. package/lib/models/log-in.d.ts +4 -0
  30. package/package.json +1 -1
  31. package/public-api.d.ts +8 -0
@@ -0,0 +1,100 @@
1
+ import { Component, EventEmitter, Input, Output } from '@angular/core';
2
+ import { Validators } from '@angular/forms';
3
+ import * as i0 from "@angular/core";
4
+ import * as i1 from "@angular/forms";
5
+ import * as i2 from "@angular/common";
6
+ import * as i3 from "../button/button.component";
7
+ import * as i4 from "../otp-input/otp-input.component";
8
+ export class TwoFactorAuthOtpComponent {
9
+ fb;
10
+ customClass = '';
11
+ headlingClass = '';
12
+ paragraphClass = '';
13
+ resendClass = '';
14
+ width = '';
15
+ maxWidth = '';
16
+ margin = '';
17
+ pd = '';
18
+ bgColor = '#fff';
19
+ boxShadow = '4px 4px 4px rgba(0, 0, 0, 0.25)';
20
+ border = '1px solid #66666680';
21
+ borderRadius = '24px';
22
+ textColor = '#333';
23
+ height = 'auto';
24
+ otpValue = '';
25
+ otpForm;
26
+ buttonClick = new EventEmitter();
27
+ resend = new EventEmitter();
28
+ constructor(fb) {
29
+ this.fb = fb;
30
+ }
31
+ ngOnInit() {
32
+ this.otpForm = this.fb.group({
33
+ otpValue: ['', [Validators.required, Validators.minLength(6)]]
34
+ });
35
+ }
36
+ onOtpChange(value) {
37
+ this.otpForm.get('otpValue')?.setValue(value);
38
+ }
39
+ emitFormData() {
40
+ if (this.otpForm.valid) {
41
+ this.buttonClick.emit(this.otpForm.get('otpValue')?.value);
42
+ }
43
+ }
44
+ resendOtp() {
45
+ this.resend.emit();
46
+ }
47
+ get styles() {
48
+ return {
49
+ 'background-color': this.bgColor,
50
+ 'box-shadow': this.boxShadow,
51
+ 'border': this.border,
52
+ 'border-radius': this.borderRadius,
53
+ 'color': this.textColor,
54
+ 'width': this.width,
55
+ 'max-width': this.maxWidth,
56
+ 'margin': this.margin,
57
+ 'height': this.height,
58
+ 'padding': this.pd
59
+ };
60
+ }
61
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: TwoFactorAuthOtpComponent, deps: [{ token: i1.FormBuilder }], target: i0.ɵɵFactoryTarget.Component });
62
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.9", type: TwoFactorAuthOtpComponent, selector: "verben-auth-otp", inputs: { customClass: "customClass", headlingClass: "headlingClass", paragraphClass: "paragraphClass", resendClass: "resendClass", width: "width", maxWidth: "maxWidth", margin: "margin", pd: "pd", bgColor: "bgColor", boxShadow: "boxShadow", border: "border", borderRadius: "borderRadius", textColor: "textColor", height: "height" }, outputs: { buttonClick: "buttonClick", resend: "resend" }, ngImport: i0, template: "<section\n[ngStyle]=\"styles\"\nclass=\"{{ customClass }}\"\n>\n <h3 class=\"{{headlingClass}}\">Two Factor Authentication</h3>\n <div class=\"otpWrapper\"> \n <p class=\"{{paragraphClass}}\">Enter the 6 digit code sent to your phone number</p>\n <verben-otp-input [length]=\"6\" (otpChange)=\"onOtpChange($event)\"></verben-otp-input>\n </div>\n <lib-button \n text=\"Submit\" \n (buttonClick)=\"emitFormData()\"\n [disabled]=\"!otpForm.valid\"\n ></lib-button>\n <p class=\"resendWrapper\">\n Didn\u2019t get a code?\n <a class=\"{{resendClass}}\" (click)=\"resendOtp()\">Resend</a>\n </p>\n \n</section>", styles: [".otpWrapper{margin-bottom:20px;margin-top:15px}.resendWrapper{margin-top:10px;margin-bottom:0!important}\n"], dependencies: [{ kind: "directive", type: i2.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "component", type: i3.ButtonComponent, selector: "lib-button", inputs: ["text", "color", "border", "borderRadius", "bgColor", "width", "pd", "buttonClass", "disabled"], outputs: ["buttonClick"] }, { kind: "component", type: i4.OtpInputComponent, selector: "verben-otp-input", inputs: ["length"], outputs: ["otpChange"] }] });
63
+ }
64
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: TwoFactorAuthOtpComponent, decorators: [{
65
+ type: Component,
66
+ args: [{ selector: 'verben-auth-otp', template: "<section\n[ngStyle]=\"styles\"\nclass=\"{{ customClass }}\"\n>\n <h3 class=\"{{headlingClass}}\">Two Factor Authentication</h3>\n <div class=\"otpWrapper\"> \n <p class=\"{{paragraphClass}}\">Enter the 6 digit code sent to your phone number</p>\n <verben-otp-input [length]=\"6\" (otpChange)=\"onOtpChange($event)\"></verben-otp-input>\n </div>\n <lib-button \n text=\"Submit\" \n (buttonClick)=\"emitFormData()\"\n [disabled]=\"!otpForm.valid\"\n ></lib-button>\n <p class=\"resendWrapper\">\n Didn\u2019t get a code?\n <a class=\"{{resendClass}}\" (click)=\"resendOtp()\">Resend</a>\n </p>\n \n</section>", styles: [".otpWrapper{margin-bottom:20px;margin-top:15px}.resendWrapper{margin-top:10px;margin-bottom:0!important}\n"] }]
67
+ }], ctorParameters: () => [{ type: i1.FormBuilder }], propDecorators: { customClass: [{
68
+ type: Input
69
+ }], headlingClass: [{
70
+ type: Input
71
+ }], paragraphClass: [{
72
+ type: Input
73
+ }], resendClass: [{
74
+ type: Input
75
+ }], width: [{
76
+ type: Input
77
+ }], maxWidth: [{
78
+ type: Input
79
+ }], margin: [{
80
+ type: Input
81
+ }], pd: [{
82
+ type: Input
83
+ }], bgColor: [{
84
+ type: Input
85
+ }], boxShadow: [{
86
+ type: Input
87
+ }], border: [{
88
+ type: Input
89
+ }], borderRadius: [{
90
+ type: Input
91
+ }], textColor: [{
92
+ type: Input
93
+ }], height: [{
94
+ type: Input
95
+ }], buttonClick: [{
96
+ type: Output
97
+ }], resend: [{
98
+ type: Output
99
+ }] } });
100
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHdvLWZhY3Rvci1hdXRoLW90cC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92ZXJiZW4tYXV0aGVudGljYXRpb24tdWkvc3JjL2xpYi9jb21wb25lbnRzL3R3by1mYWN0b3ItYXV0aC1vdHAvdHdvLWZhY3Rvci1hdXRoLW90cC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92ZXJiZW4tYXV0aGVudGljYXRpb24tdWkvc3JjL2xpYi9jb21wb25lbnRzL3R3by1mYWN0b3ItYXV0aC1vdHAvdHdvLWZhY3Rvci1hdXRoLW90cC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3ZFLE9BQU8sRUFBMEIsVUFBVSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7Ozs7OztBQVFwRSxNQUFNLE9BQU8seUJBQXlCO0lBc0JoQjtJQXJCWCxXQUFXLEdBQVcsRUFBRSxDQUFBO0lBQ3hCLGFBQWEsR0FBVyxFQUFFLENBQUE7SUFDMUIsY0FBYyxHQUFXLEVBQUUsQ0FBQTtJQUMzQixXQUFXLEdBQVcsRUFBRSxDQUFBO0lBQ3hCLEtBQUssR0FBVyxFQUFFLENBQUM7SUFDbkIsUUFBUSxHQUFXLEVBQUUsQ0FBQztJQUN0QixNQUFNLEdBQVcsRUFBRSxDQUFDO0lBQ3BCLEVBQUUsR0FBVyxFQUFFLENBQUM7SUFDaEIsT0FBTyxHQUFXLE1BQU0sQ0FBQztJQUN6QixTQUFTLEdBQVcsaUNBQWlDLENBQUM7SUFDdEQsTUFBTSxHQUFXLHFCQUFxQixDQUFDO0lBQ3ZDLFlBQVksR0FBVyxNQUFNLENBQUM7SUFDOUIsU0FBUyxHQUFXLE1BQU0sQ0FBQztJQUMzQixNQUFNLEdBQVcsTUFBTSxDQUFDO0lBRWpDLFFBQVEsR0FBVyxFQUFFLENBQUM7SUFDdEIsT0FBTyxDQUFhO0lBRVYsV0FBVyxHQUFHLElBQUksWUFBWSxFQUFVLENBQUM7SUFDekMsTUFBTSxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7SUFFdEMsWUFBb0IsRUFBZTtRQUFmLE9BQUUsR0FBRixFQUFFLENBQWE7SUFBRyxDQUFDO0lBRXZDLFFBQVE7UUFDTixJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDO1lBQzNCLFFBQVEsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLFVBQVUsQ0FBQyxRQUFRLEVBQUUsVUFBVSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1NBQy9ELENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxXQUFXLENBQUMsS0FBYTtRQUN2QixJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsRUFBRSxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDaEQsQ0FBQztJQUVELFlBQVk7UUFDVixJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDdkIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFDN0QsQ0FBQztJQUNILENBQUM7SUFFRCxTQUFTO1FBQ1AsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUNyQixDQUFDO0lBR0QsSUFBSSxNQUFNO1FBQ1IsT0FBTztZQUNMLGtCQUFrQixFQUFFLElBQUksQ0FBQyxPQUFPO1lBQ2hDLFlBQVksRUFBRSxJQUFJLENBQUMsU0FBUztZQUM1QixRQUFRLEVBQUUsSUFBSSxDQUFDLE1BQU07WUFDckIsZUFBZSxFQUFFLElBQUksQ0FBQyxZQUFZO1lBQ2xDLE9BQU8sRUFBRSxJQUFJLENBQUMsU0FBUztZQUN2QixPQUFPLEVBQUUsSUFBSSxDQUFDLEtBQUs7WUFDbkIsV0FBVyxFQUFDLElBQUksQ0FBQyxRQUFRO1lBQ3pCLFFBQVEsRUFBQyxJQUFJLENBQUMsTUFBTTtZQUNwQixRQUFRLEVBQUUsSUFBSSxDQUFDLE1BQU07WUFDckIsU0FBUyxFQUFDLElBQUksQ0FBQyxFQUFFO1NBQ2xCLENBQUM7SUFDSixDQUFDO3VHQTFEVSx5QkFBeUI7MkZBQXpCLHlCQUF5QixnY0NUdEMseW5CQW1CVTs7MkZEVkcseUJBQXlCO2tCQU5yQyxTQUFTOytCQUNFLGlCQUFpQjtnRkFNbEIsV0FBVztzQkFBbkIsS0FBSztnQkFDRyxhQUFhO3NCQUFyQixLQUFLO2dCQUNHLGNBQWM7c0JBQXRCLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxNQUFNO3NCQUFkLEtBQUs7Z0JBQ0csRUFBRTtzQkFBVixLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQUNHLE1BQU07c0JBQWQsS0FBSztnQkFDRyxZQUFZO3NCQUFwQixLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csTUFBTTtzQkFBZCxLQUFLO2dCQUtJLFdBQVc7c0JBQXBCLE1BQU07Z0JBQ0csTUFBTTtzQkFBZixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1Hcm91cCwgRm9ybUJ1aWxkZXIsIFZhbGlkYXRvcnMgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3ZlcmJlbi1hdXRoLW90cCcsXG4gIHRlbXBsYXRlVXJsOiAnLi90d28tZmFjdG9yLWF1dGgtb3RwLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmw6ICcuL3R3by1mYWN0b3ItYXV0aC1vdHAuY29tcG9uZW50LmNzcydcbn0pXG5cbmV4cG9ydCBjbGFzcyBUd29GYWN0b3JBdXRoT3RwQ29tcG9uZW50IHtcbiAgQElucHV0KCkgY3VzdG9tQ2xhc3M6IHN0cmluZyA9ICcnXG4gIEBJbnB1dCgpIGhlYWRsaW5nQ2xhc3M6IHN0cmluZyA9ICcnXG4gIEBJbnB1dCgpIHBhcmFncmFwaENsYXNzOiBzdHJpbmcgPSAnJ1xuICBASW5wdXQoKSByZXNlbmRDbGFzczogc3RyaW5nID0gJydcbiAgQElucHV0KCkgd2lkdGg6IHN0cmluZyA9ICcnO1xuICBASW5wdXQoKSBtYXhXaWR0aDogc3RyaW5nID0gJyc7XG4gIEBJbnB1dCgpIG1hcmdpbjogc3RyaW5nID0gJyc7XG4gIEBJbnB1dCgpIHBkOiBzdHJpbmcgPSAnJztcbiAgQElucHV0KCkgYmdDb2xvcjogc3RyaW5nID0gJyNmZmYnO1xuICBASW5wdXQoKSBib3hTaGFkb3c6IHN0cmluZyA9ICc0cHggNHB4IDRweCByZ2JhKDAsIDAsIDAsIDAuMjUpJztcbiAgQElucHV0KCkgYm9yZGVyOiBzdHJpbmcgPSAnMXB4IHNvbGlkICM2NjY2NjY4MCc7XG4gIEBJbnB1dCgpIGJvcmRlclJhZGl1czogc3RyaW5nID0gJzI0cHgnO1xuICBASW5wdXQoKSB0ZXh0Q29sb3I6IHN0cmluZyA9ICcjMzMzJztcbiAgQElucHV0KCkgaGVpZ2h0OiBzdHJpbmcgPSAnYXV0byc7XG5cbiAgb3RwVmFsdWU6IHN0cmluZyA9ICcnO1xuICBvdHBGb3JtITogRm9ybUdyb3VwO1xuXG4gIEBPdXRwdXQoKSBidXR0b25DbGljayA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPigpO1xuICBAT3V0cHV0KCkgcmVzZW5kID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgZmI6IEZvcm1CdWlsZGVyKSB7fVxuXG4gIG5nT25Jbml0KCkge1xuICAgIHRoaXMub3RwRm9ybSA9IHRoaXMuZmIuZ3JvdXAoe1xuICAgICAgb3RwVmFsdWU6IFsnJywgW1ZhbGlkYXRvcnMucmVxdWlyZWQsIFZhbGlkYXRvcnMubWluTGVuZ3RoKDYpXV1cbiAgICB9KTtcbiAgfVxuXG4gIG9uT3RwQ2hhbmdlKHZhbHVlOiBzdHJpbmcpIHtcbiAgICB0aGlzLm90cEZvcm0uZ2V0KCdvdHBWYWx1ZScpPy5zZXRWYWx1ZSh2YWx1ZSk7XG4gIH1cblxuICBlbWl0Rm9ybURhdGEoKSB7XG4gICAgaWYgKHRoaXMub3RwRm9ybS52YWxpZCkge1xuICAgICAgdGhpcy5idXR0b25DbGljay5lbWl0KHRoaXMub3RwRm9ybS5nZXQoJ290cFZhbHVlJyk/LnZhbHVlKTtcbiAgICB9XG4gIH1cblxuICByZXNlbmRPdHAoKSB7XG4gICAgdGhpcy5yZXNlbmQuZW1pdCgpO1xuICB9XG5cblxuICBnZXQgc3R5bGVzKCkge1xuICAgIHJldHVybiB7XG4gICAgICAnYmFja2dyb3VuZC1jb2xvcic6IHRoaXMuYmdDb2xvcixcbiAgICAgICdib3gtc2hhZG93JzogdGhpcy5ib3hTaGFkb3csXG4gICAgICAnYm9yZGVyJzogdGhpcy5ib3JkZXIsXG4gICAgICAnYm9yZGVyLXJhZGl1cyc6IHRoaXMuYm9yZGVyUmFkaXVzLFxuICAgICAgJ2NvbG9yJzogdGhpcy50ZXh0Q29sb3IsXG4gICAgICAnd2lkdGgnOiB0aGlzLndpZHRoLFxuICAgICAgJ21heC13aWR0aCc6dGhpcy5tYXhXaWR0aCxcbiAgICAgICdtYXJnaW4nOnRoaXMubWFyZ2luLFxuICAgICAgJ2hlaWdodCc6IHRoaXMuaGVpZ2h0LFxuICAgICAgJ3BhZGRpbmcnOnRoaXMucGRcbiAgICB9O1xuICB9XG5cbn1cblxuIiwiPHNlY3Rpb25cbltuZ1N0eWxlXT1cInN0eWxlc1wiXG5jbGFzcz1cInt7IGN1c3RvbUNsYXNzIH19XCJcbj5cbiAgPGgzIGNsYXNzPVwie3toZWFkbGluZ0NsYXNzfX1cIj5Ud28gRmFjdG9yIEF1dGhlbnRpY2F0aW9uPC9oMz5cbiAgPGRpdiBjbGFzcz1cIm90cFdyYXBwZXJcIj4gXG4gICAgPHAgY2xhc3M9XCJ7e3BhcmFncmFwaENsYXNzfX1cIj5FbnRlciB0aGUgNiBkaWdpdCBjb2RlIHNlbnQgdG8geW91ciBwaG9uZSBudW1iZXI8L3A+XG4gICAgPHZlcmJlbi1vdHAtaW5wdXQgW2xlbmd0aF09XCI2XCIgKG90cENoYW5nZSk9XCJvbk90cENoYW5nZSgkZXZlbnQpXCI+PC92ZXJiZW4tb3RwLWlucHV0PlxuICA8L2Rpdj5cbiAgPGxpYi1idXR0b24gIFxuICB0ZXh0PVwiU3VibWl0XCIgXG4gIChidXR0b25DbGljayk9XCJlbWl0Rm9ybURhdGEoKVwiXG4gIFtkaXNhYmxlZF09XCIhb3RwRm9ybS52YWxpZFwiXG4gID48L2xpYi1idXR0b24+XG4gIDxwIGNsYXNzPVwicmVzZW5kV3JhcHBlclwiPlxuICAgIERpZG7igJl0IGdldCBhIGNvZGU/XG4gICAgPGEgY2xhc3M9XCJ7e3Jlc2VuZENsYXNzfX1cIiAoY2xpY2spPVwicmVzZW5kT3RwKClcIj5SZXNlbmQ8L2E+XG4gIDwvcD5cbiAgIFxuPC9zZWN0aW9uPiJdfQ==
@@ -0,0 +1,22 @@
1
+ import { NgModule } from '@angular/core';
2
+ import { CommonModule } from '@angular/common';
3
+ import { TwoFactorAuthOtpComponent } from './two-factor-auth-otp.component';
4
+ import { ButtonModule } from '../button/button.module';
5
+ import { OtpInputModule } from '../otp-input/otp-input.module';
6
+ import { RouterLink } from '@angular/router';
7
+ import { ReactiveFormsModule } from '@angular/forms';
8
+ import * as i0 from "@angular/core";
9
+ export class TwoFactorAuthOtpModule {
10
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: TwoFactorAuthOtpModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
11
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.9", ngImport: i0, type: TwoFactorAuthOtpModule, declarations: [TwoFactorAuthOtpComponent], imports: [CommonModule, ButtonModule, OtpInputModule, RouterLink, ReactiveFormsModule], exports: [TwoFactorAuthOtpComponent] });
12
+ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: TwoFactorAuthOtpModule, imports: [CommonModule, ButtonModule, OtpInputModule, ReactiveFormsModule] });
13
+ }
14
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: TwoFactorAuthOtpModule, decorators: [{
15
+ type: NgModule,
16
+ args: [{
17
+ declarations: [TwoFactorAuthOtpComponent],
18
+ imports: [CommonModule, ButtonModule, OtpInputModule, RouterLink, ReactiveFormsModule],
19
+ exports: [TwoFactorAuthOtpComponent]
20
+ }]
21
+ }] });
22
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHdvLWZhY3Rvci1hdXRoLW90cC5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92ZXJiZW4tYXV0aGVudGljYXRpb24tdWkvc3JjL2xpYi9jb21wb25lbnRzL3R3by1mYWN0b3ItYXV0aC1vdHAvdHdvLWZhY3Rvci1hdXRoLW90cC5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDNUUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUMvRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDN0MsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7O0FBUXJELE1BQU0sT0FBTyxzQkFBc0I7dUdBQXRCLHNCQUFzQjt3R0FBdEIsc0JBQXNCLGlCQUpsQix5QkFBeUIsYUFDOUIsWUFBWSxFQUFDLFlBQVksRUFBQyxjQUFjLEVBQUMsVUFBVSxFQUFDLG1CQUFtQixhQUN2RSx5QkFBeUI7d0dBRXhCLHNCQUFzQixZQUh2QixZQUFZLEVBQUMsWUFBWSxFQUFDLGNBQWMsRUFBWSxtQkFBbUI7OzJGQUd0RSxzQkFBc0I7a0JBTGxDLFFBQVE7bUJBQUM7b0JBQ1IsWUFBWSxFQUFFLENBQUMseUJBQXlCLENBQUM7b0JBQ3pDLE9BQU8sRUFBRSxDQUFDLFlBQVksRUFBQyxZQUFZLEVBQUMsY0FBYyxFQUFDLFVBQVUsRUFBQyxtQkFBbUIsQ0FBQztvQkFDbEYsT0FBTyxFQUFFLENBQUMseUJBQXlCLENBQUM7aUJBQ3JDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBUd29GYWN0b3JBdXRoT3RwQ29tcG9uZW50IH0gZnJvbSAnLi90d28tZmFjdG9yLWF1dGgtb3RwLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBCdXR0b25Nb2R1bGUgfSBmcm9tICcuLi9idXR0b24vYnV0dG9uLm1vZHVsZSc7XG5pbXBvcnQgeyBPdHBJbnB1dE1vZHVsZSB9IGZyb20gJy4uL290cC1pbnB1dC9vdHAtaW5wdXQubW9kdWxlJztcbmltcG9ydCB7IFJvdXRlckxpbmsgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgUmVhY3RpdmVGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcblxuXG5ATmdNb2R1bGUoe1xuICBkZWNsYXJhdGlvbnM6IFtUd29GYWN0b3JBdXRoT3RwQ29tcG9uZW50XSxcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSxCdXR0b25Nb2R1bGUsT3RwSW5wdXRNb2R1bGUsUm91dGVyTGluayxSZWFjdGl2ZUZvcm1zTW9kdWxlXSxcbiAgZXhwb3J0czogW1R3b0ZhY3RvckF1dGhPdHBDb21wb25lbnRdXG59KVxuZXhwb3J0IGNsYXNzIFR3b0ZhY3RvckF1dGhPdHBNb2R1bGUge31cbiJdfQ==
@@ -0,0 +1,87 @@
1
+ import { Component, EventEmitter, Input, Output } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ import * as i1 from "@angular/common";
4
+ import * as i2 from "verben-ng-ui";
5
+ export class TwoFactorAuthSetupComponent {
6
+ customClass = '';
7
+ headlingClass = '';
8
+ paragraphClass = '';
9
+ buttonClass = '';
10
+ width = '';
11
+ maxWidth = '';
12
+ margin = '';
13
+ pd = '';
14
+ bgColor = '#fff';
15
+ boxShadow = '4px 4px 4px rgba(0, 0, 0, 0.25)';
16
+ border = '1px solid #66666680';
17
+ borderRadius = '24px';
18
+ textColor = '#333';
19
+ height = '';
20
+ smsClick = new EventEmitter();
21
+ mailClick = new EventEmitter();
22
+ skipClick = new EventEmitter();
23
+ continueWithSMS() {
24
+ this.smsClick.emit();
25
+ }
26
+ continueWithMail() {
27
+ this.mailClick.emit();
28
+ }
29
+ handleSkip() {
30
+ this.skipClick.emit();
31
+ }
32
+ get styles() {
33
+ return {
34
+ 'background-color': this.bgColor,
35
+ 'box-shadow': this.boxShadow,
36
+ 'border': this.border,
37
+ 'border-radius': this.borderRadius,
38
+ 'color': this.textColor,
39
+ 'width': this.width,
40
+ 'max-width': this.maxWidth,
41
+ 'margin': this.margin,
42
+ 'height': this.height,
43
+ 'padding': this.pd
44
+ };
45
+ }
46
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: TwoFactorAuthSetupComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
47
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.9", type: TwoFactorAuthSetupComponent, selector: "verben-two-factor-auth-setup", inputs: { customClass: "customClass", headlingClass: "headlingClass", paragraphClass: "paragraphClass", buttonClass: "buttonClass", width: "width", maxWidth: "maxWidth", margin: "margin", pd: "pd", bgColor: "bgColor", boxShadow: "boxShadow", border: "border", borderRadius: "borderRadius", textColor: "textColor", height: "height" }, outputs: { smsClick: "smsClick", mailClick: "mailClick", skipClick: "skipClick" }, ngImport: i0, template: "<section\n[ngStyle]=\"styles\"\nclass=\"{{ customClass }}\"\n>\n <h3 class=\"{{headlingClass}}\">Set Up Two Factor Authentication</h3>\n <div class=\"setUpBtnWrapper\">\n <verbena-button\n svg=\"2fa-sms\"\n [svgHeight]=\"24\"\n [svgWidth]=\"24\"\n text=\"Continue with SMS\"\n bgColor=\"white\"\n textColor=\"#333333\"\n border=\"1px solid #333\"\n borderRadius=\"40px\"\n pd=\"10px 20px\"\n width=\"100%\"\n svgPosition=\"left\"\n buttonClass=\"font-normal text-[24px] leading-[29.05px] text-[#333]\"\n (click)=\"continueWithSMS()\"\n ></verbena-button>\n <p [ngStyle]=\"{'margin-top':'5px'}\"></p>\n <verbena-button\n svg=\"2fa-mail\"\n [svgHeight]=\"16\"\n [svgWidth]=\"20\"\n text=\"Continue with Mail\"\n bgColor=\"white\"\n textColor=\"#333333\"\n border=\"1px solid #333\"\n borderRadius=\"40px\"\n pd=\"10px 20px\"\n width=\"100%\"\n svgPosition=\"left\"\n buttonClass=\"font-normal text-[24px] leading-[29.05px] text-[#333]\"\n (click)=\"continueWithMail()\"\n ></verbena-button>\n <div class=\"iconWrapper\" (click)=\"handleSkip()\"> \n <p class=\"{{paragraphClass}}\">Skip for now</p>\n <verben-svg \n icon=\"skip-forward\"\n [height]=\"24\"\n [width]=\"24\"\n />\n </div>\n</div>\n</section>", styles: [".setUpBtnWrapper{display:flex;flex-direction:column;gap:12px;margin-top:40px}.iconWrapper{display:flex;cursor:pointer;align-items:center;justify-content:end;gap:12px;margin-bottom:50px}.custom-button{font-weight:500}\n"], dependencies: [{ kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "component", type: i2.VerbenaButtonComponent, selector: "verbena-button", inputs: ["text", "icon", "svgPosition", "bgColor", "textColor", "border", "borderRadius", "pd", "width", "height", "fontSize", "fontWeight", "disable", "styleType", "svg", "svgWidth", "svgHeight", "svgColor", "buttonClass", "buttonTextClass"] }, { kind: "component", type: i2.SvgComponent, selector: "verben-svg", inputs: ["icon", "width", "height", "fill", "stroke", "size"] }] });
48
+ }
49
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: TwoFactorAuthSetupComponent, decorators: [{
50
+ type: Component,
51
+ args: [{ selector: 'verben-two-factor-auth-setup', template: "<section\n[ngStyle]=\"styles\"\nclass=\"{{ customClass }}\"\n>\n <h3 class=\"{{headlingClass}}\">Set Up Two Factor Authentication</h3>\n <div class=\"setUpBtnWrapper\">\n <verbena-button\n svg=\"2fa-sms\"\n [svgHeight]=\"24\"\n [svgWidth]=\"24\"\n text=\"Continue with SMS\"\n bgColor=\"white\"\n textColor=\"#333333\"\n border=\"1px solid #333\"\n borderRadius=\"40px\"\n pd=\"10px 20px\"\n width=\"100%\"\n svgPosition=\"left\"\n buttonClass=\"font-normal text-[24px] leading-[29.05px] text-[#333]\"\n (click)=\"continueWithSMS()\"\n ></verbena-button>\n <p [ngStyle]=\"{'margin-top':'5px'}\"></p>\n <verbena-button\n svg=\"2fa-mail\"\n [svgHeight]=\"16\"\n [svgWidth]=\"20\"\n text=\"Continue with Mail\"\n bgColor=\"white\"\n textColor=\"#333333\"\n border=\"1px solid #333\"\n borderRadius=\"40px\"\n pd=\"10px 20px\"\n width=\"100%\"\n svgPosition=\"left\"\n buttonClass=\"font-normal text-[24px] leading-[29.05px] text-[#333]\"\n (click)=\"continueWithMail()\"\n ></verbena-button>\n <div class=\"iconWrapper\" (click)=\"handleSkip()\"> \n <p class=\"{{paragraphClass}}\">Skip for now</p>\n <verben-svg \n icon=\"skip-forward\"\n [height]=\"24\"\n [width]=\"24\"\n />\n </div>\n</div>\n</section>", styles: [".setUpBtnWrapper{display:flex;flex-direction:column;gap:12px;margin-top:40px}.iconWrapper{display:flex;cursor:pointer;align-items:center;justify-content:end;gap:12px;margin-bottom:50px}.custom-button{font-weight:500}\n"] }]
52
+ }], propDecorators: { customClass: [{
53
+ type: Input
54
+ }], headlingClass: [{
55
+ type: Input
56
+ }], paragraphClass: [{
57
+ type: Input
58
+ }], buttonClass: [{
59
+ type: Input
60
+ }], width: [{
61
+ type: Input
62
+ }], maxWidth: [{
63
+ type: Input
64
+ }], margin: [{
65
+ type: Input
66
+ }], pd: [{
67
+ type: Input
68
+ }], bgColor: [{
69
+ type: Input
70
+ }], boxShadow: [{
71
+ type: Input
72
+ }], border: [{
73
+ type: Input
74
+ }], borderRadius: [{
75
+ type: Input
76
+ }], textColor: [{
77
+ type: Input
78
+ }], height: [{
79
+ type: Input
80
+ }], smsClick: [{
81
+ type: Output
82
+ }], mailClick: [{
83
+ type: Output
84
+ }], skipClick: [{
85
+ type: Output
86
+ }] } });
87
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHdvLWZhY3Rvci1hdXRoLXNldHVwLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3ZlcmJlbi1hdXRoZW50aWNhdGlvbi11aS9zcmMvbGliL2NvbXBvbmVudHMvdHdvLWZhY3Rvci1hdXRoLXNldHVwL3R3by1mYWN0b3ItYXV0aC1zZXR1cC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92ZXJiZW4tYXV0aGVudGljYXRpb24tdWkvc3JjL2xpYi9jb21wb25lbnRzL3R3by1mYWN0b3ItYXV0aC1zZXR1cC90d28tZmFjdG9yLWF1dGgtc2V0dXAuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQzs7OztBQVF2RSxNQUFNLE9BQU8sMkJBQTJCO0lBQzdCLFdBQVcsR0FBVyxFQUFFLENBQUE7SUFDeEIsYUFBYSxHQUFXLEVBQUUsQ0FBQTtJQUMxQixjQUFjLEdBQVcsRUFBRSxDQUFBO0lBQzNCLFdBQVcsR0FBVyxFQUFFLENBQUE7SUFDeEIsS0FBSyxHQUFXLEVBQUUsQ0FBQztJQUNuQixRQUFRLEdBQVcsRUFBRSxDQUFDO0lBQ3RCLE1BQU0sR0FBVyxFQUFFLENBQUM7SUFDcEIsRUFBRSxHQUFXLEVBQUUsQ0FBQztJQUNoQixPQUFPLEdBQVcsTUFBTSxDQUFDO0lBQ3pCLFNBQVMsR0FBVyxpQ0FBaUMsQ0FBQztJQUN0RCxNQUFNLEdBQVcscUJBQXFCLENBQUM7SUFDdkMsWUFBWSxHQUFXLE1BQU0sQ0FBQztJQUM5QixTQUFTLEdBQVcsTUFBTSxDQUFDO0lBQzNCLE1BQU0sR0FBVyxFQUFFLENBQUM7SUFFbkIsUUFBUSxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7SUFDOUIsU0FBUyxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7SUFDL0IsU0FBUyxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7SUFHekMsZUFBZTtRQUNkLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLENBQUE7SUFDckIsQ0FBQztJQUNELGdCQUFnQjtRQUNmLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxFQUFFLENBQUE7SUFDdEIsQ0FBQztJQUNELFVBQVU7UUFDVCxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksRUFBRSxDQUFBO0lBQ3RCLENBQUM7SUFHRCxJQUFJLE1BQU07UUFDUixPQUFPO1lBQ0wsa0JBQWtCLEVBQUUsSUFBSSxDQUFDLE9BQU87WUFDaEMsWUFBWSxFQUFFLElBQUksQ0FBQyxTQUFTO1lBQzVCLFFBQVEsRUFBRSxJQUFJLENBQUMsTUFBTTtZQUNyQixlQUFlLEVBQUUsSUFBSSxDQUFDLFlBQVk7WUFDbEMsT0FBTyxFQUFFLElBQUksQ0FBQyxTQUFTO1lBQ3ZCLE9BQU8sRUFBRSxJQUFJLENBQUMsS0FBSztZQUNuQixXQUFXLEVBQUMsSUFBSSxDQUFDLFFBQVE7WUFDekIsUUFBUSxFQUFDLElBQUksQ0FBQyxNQUFNO1lBQ3BCLFFBQVEsRUFBRSxJQUFJLENBQUMsTUFBTTtZQUNyQixTQUFTLEVBQUMsSUFBSSxDQUFDLEVBQUU7U0FDbEIsQ0FBQztJQUNKLENBQUM7dUdBN0NVLDJCQUEyQjsyRkFBM0IsMkJBQTJCLHFlQ1J4QyxvMENBOENVOzsyRkR0Q0csMkJBQTJCO2tCQU52QyxTQUFTOytCQUNFLDhCQUE4Qjs4QkFNL0IsV0FBVztzQkFBbkIsS0FBSztnQkFDRyxhQUFhO3NCQUFyQixLQUFLO2dCQUNHLGNBQWM7c0JBQXRCLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxNQUFNO3NCQUFkLEtBQUs7Z0JBQ0csRUFBRTtzQkFBVixLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQUNHLE1BQU07c0JBQWQsS0FBSztnQkFDRyxZQUFZO3NCQUFwQixLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csTUFBTTtzQkFBZCxLQUFLO2dCQUVJLFFBQVE7c0JBQWpCLE1BQU07Z0JBQ0csU0FBUztzQkFBbEIsTUFBTTtnQkFDRyxTQUFTO3NCQUFsQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndmVyYmVuLXR3by1mYWN0b3ItYXV0aC1zZXR1cCcsXG4gIHRlbXBsYXRlVXJsOiAnLi90d28tZmFjdG9yLWF1dGgtc2V0dXAuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybDogJy4vdHdvLWZhY3Rvci1hdXRoLXNldHVwLmNvbXBvbmVudC5jc3MnXG59KVxuXG5leHBvcnQgY2xhc3MgVHdvRmFjdG9yQXV0aFNldHVwQ29tcG9uZW50IHtcbiAgQElucHV0KCkgY3VzdG9tQ2xhc3M6IHN0cmluZyA9ICcnXG4gIEBJbnB1dCgpIGhlYWRsaW5nQ2xhc3M6IHN0cmluZyA9ICcnXG4gIEBJbnB1dCgpIHBhcmFncmFwaENsYXNzOiBzdHJpbmcgPSAnJ1xuICBASW5wdXQoKSBidXR0b25DbGFzczogc3RyaW5nID0gJydcbiAgQElucHV0KCkgd2lkdGg6IHN0cmluZyA9ICcnO1xuICBASW5wdXQoKSBtYXhXaWR0aDogc3RyaW5nID0gJyc7XG4gIEBJbnB1dCgpIG1hcmdpbjogc3RyaW5nID0gJyc7XG4gIEBJbnB1dCgpIHBkOiBzdHJpbmcgPSAnJztcbiAgQElucHV0KCkgYmdDb2xvcjogc3RyaW5nID0gJyNmZmYnO1xuICBASW5wdXQoKSBib3hTaGFkb3c6IHN0cmluZyA9ICc0cHggNHB4IDRweCByZ2JhKDAsIDAsIDAsIDAuMjUpJztcbiAgQElucHV0KCkgYm9yZGVyOiBzdHJpbmcgPSAnMXB4IHNvbGlkICM2NjY2NjY4MCc7XG4gIEBJbnB1dCgpIGJvcmRlclJhZGl1czogc3RyaW5nID0gJzI0cHgnO1xuICBASW5wdXQoKSB0ZXh0Q29sb3I6IHN0cmluZyA9ICcjMzMzJztcbiAgQElucHV0KCkgaGVpZ2h0OiBzdHJpbmcgPSAnJztcblxuICBAT3V0cHV0KCkgc21zQ2xpY2sgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gIEBPdXRwdXQoKSBtYWlsQ2xpY2sgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gIEBPdXRwdXQoKSBza2lwQ2xpY2sgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiBcbiAgY29udGludWVXaXRoU01TKCl7IFxuICAgdGhpcy5zbXNDbGljay5lbWl0KClcbiAgfVxuICBjb250aW51ZVdpdGhNYWlsKCl7IFxuICAgdGhpcy5tYWlsQ2xpY2suZW1pdCgpXG4gIH1cbiAgaGFuZGxlU2tpcCgpeyBcbiAgIHRoaXMuc2tpcENsaWNrLmVtaXQoKVxuICB9XG5cblxuICBnZXQgc3R5bGVzKCkge1xuICAgIHJldHVybiB7XG4gICAgICAnYmFja2dyb3VuZC1jb2xvcic6IHRoaXMuYmdDb2xvcixcbiAgICAgICdib3gtc2hhZG93JzogdGhpcy5ib3hTaGFkb3csXG4gICAgICAnYm9yZGVyJzogdGhpcy5ib3JkZXIsXG4gICAgICAnYm9yZGVyLXJhZGl1cyc6IHRoaXMuYm9yZGVyUmFkaXVzLFxuICAgICAgJ2NvbG9yJzogdGhpcy50ZXh0Q29sb3IsXG4gICAgICAnd2lkdGgnOiB0aGlzLndpZHRoLFxuICAgICAgJ21heC13aWR0aCc6dGhpcy5tYXhXaWR0aCxcbiAgICAgICdtYXJnaW4nOnRoaXMubWFyZ2luLFxuICAgICAgJ2hlaWdodCc6IHRoaXMuaGVpZ2h0LFxuICAgICAgJ3BhZGRpbmcnOnRoaXMucGRcbiAgICB9O1xuICB9XG5cbn1cbiIsIjxzZWN0aW9uXG5bbmdTdHlsZV09XCJzdHlsZXNcIlxuY2xhc3M9XCJ7eyBjdXN0b21DbGFzcyB9fVwiXG4+XG4gIDxoMyBjbGFzcz1cInt7aGVhZGxpbmdDbGFzc319XCI+U2V0IFVwIFR3byBGYWN0b3IgQXV0aGVudGljYXRpb248L2gzPlxuICA8ZGl2IGNsYXNzPVwic2V0VXBCdG5XcmFwcGVyXCI+XG4gICAgPHZlcmJlbmEtYnV0dG9uXG4gICAgc3ZnPVwiMmZhLXNtc1wiXG4gICAgW3N2Z0hlaWdodF09XCIyNFwiXG4gICAgW3N2Z1dpZHRoXT1cIjI0XCJcbiAgICB0ZXh0PVwiQ29udGludWUgd2l0aCBTTVNcIlxuICAgIGJnQ29sb3I9XCJ3aGl0ZVwiXG4gICAgdGV4dENvbG9yPVwiIzMzMzMzM1wiXG4gICAgYm9yZGVyPVwiMXB4IHNvbGlkICMzMzNcIlxuICAgIGJvcmRlclJhZGl1cz1cIjQwcHhcIlxuICAgIHBkPVwiMTBweCAyMHB4XCJcbiAgICB3aWR0aD1cIjEwMCVcIlxuICAgIHN2Z1Bvc2l0aW9uPVwibGVmdFwiXG4gICAgYnV0dG9uQ2xhc3M9XCJmb250LW5vcm1hbCB0ZXh0LVsyNHB4XSBsZWFkaW5nLVsyOS4wNXB4XSB0ZXh0LVsjMzMzXVwiXG4gICAgKGNsaWNrKT1cImNvbnRpbnVlV2l0aFNNUygpXCJcbiAgICA+PC92ZXJiZW5hLWJ1dHRvbj5cbiAgICA8cCBbbmdTdHlsZV09XCJ7J21hcmdpbi10b3AnOic1cHgnfVwiPjwvcD5cbiAgICA8dmVyYmVuYS1idXR0b25cbiAgICBzdmc9XCIyZmEtbWFpbFwiXG4gICAgW3N2Z0hlaWdodF09XCIxNlwiXG4gICAgW3N2Z1dpZHRoXT1cIjIwXCJcbiAgICB0ZXh0PVwiQ29udGludWUgd2l0aCBNYWlsXCJcbiAgICBiZ0NvbG9yPVwid2hpdGVcIlxuICAgIHRleHRDb2xvcj1cIiMzMzMzMzNcIlxuICAgIGJvcmRlcj1cIjFweCBzb2xpZCAjMzMzXCJcbiAgICBib3JkZXJSYWRpdXM9XCI0MHB4XCJcbiAgICBwZD1cIjEwcHggMjBweFwiXG4gICAgd2lkdGg9XCIxMDAlXCJcbiAgICBzdmdQb3NpdGlvbj1cImxlZnRcIlxuICAgIGJ1dHRvbkNsYXNzPVwiZm9udC1ub3JtYWwgdGV4dC1bMjRweF0gbGVhZGluZy1bMjkuMDVweF0gdGV4dC1bIzMzM11cIlxuICAgIChjbGljayk9XCJjb250aW51ZVdpdGhNYWlsKClcIlxuICAgID48L3ZlcmJlbmEtYnV0dG9uPlxuICAgIDxkaXYgY2xhc3M9XCJpY29uV3JhcHBlclwiIChjbGljayk9XCJoYW5kbGVTa2lwKClcIj4gXG4gICAgICAgIDxwIGNsYXNzPVwie3twYXJhZ3JhcGhDbGFzc319XCI+U2tpcCBmb3Igbm93PC9wPlxuICAgICAgICA8dmVyYmVuLXN2ZyBcbiAgICAgICAgaWNvbj1cInNraXAtZm9yd2FyZFwiXG4gICAgICAgIFtoZWlnaHRdPVwiMjRcIlxuICAgICAgICBbd2lkdGhdPVwiMjRcIlxuICAgICAgICAvPlxuICAgIDwvZGl2PlxuPC9kaXY+XG48L3NlY3Rpb24+Il19
@@ -0,0 +1,19 @@
1
+ import { NgModule } from '@angular/core';
2
+ import { CommonModule } from '@angular/common';
3
+ import { TwoFactorAuthSetupComponent } from './two-factor-auth-setup.component';
4
+ import { SvgModule, VerbenaButtonModule } from 'verben-ng-ui';
5
+ import * as i0 from "@angular/core";
6
+ export class TwoFactorAuthSetupModule {
7
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: TwoFactorAuthSetupModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
8
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.9", ngImport: i0, type: TwoFactorAuthSetupModule, declarations: [TwoFactorAuthSetupComponent], imports: [CommonModule, VerbenaButtonModule, SvgModule], exports: [TwoFactorAuthSetupComponent] });
9
+ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: TwoFactorAuthSetupModule, imports: [CommonModule, VerbenaButtonModule, SvgModule] });
10
+ }
11
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: TwoFactorAuthSetupModule, decorators: [{
12
+ type: NgModule,
13
+ args: [{
14
+ declarations: [TwoFactorAuthSetupComponent],
15
+ imports: [CommonModule, VerbenaButtonModule, SvgModule],
16
+ exports: [TwoFactorAuthSetupComponent]
17
+ }]
18
+ }] });
19
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHdvLWZhY3Rvci1hdXRoLXNldHVwLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3ZlcmJlbi1hdXRoZW50aWNhdGlvbi11aS9zcmMvbGliL2NvbXBvbmVudHMvdHdvLWZhY3Rvci1hdXRoLXNldHVwL3R3by1mYWN0b3ItYXV0aC1zZXR1cC5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDaEYsT0FBTyxFQUFFLFNBQVMsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGNBQWMsQ0FBQzs7QUFPOUQsTUFBTSxPQUFPLHdCQUF3Qjt1R0FBeEIsd0JBQXdCO3dHQUF4Qix3QkFBd0IsaUJBSnBCLDJCQUEyQixhQUNoQyxZQUFZLEVBQUMsbUJBQW1CLEVBQUMsU0FBUyxhQUMxQywyQkFBMkI7d0dBRTFCLHdCQUF3QixZQUh6QixZQUFZLEVBQUMsbUJBQW1CLEVBQUMsU0FBUzs7MkZBR3pDLHdCQUF3QjtrQkFMcEMsUUFBUTttQkFBQztvQkFDUixZQUFZLEVBQUUsQ0FBQywyQkFBMkIsQ0FBQztvQkFDM0MsT0FBTyxFQUFFLENBQUMsWUFBWSxFQUFDLG1CQUFtQixFQUFDLFNBQVMsQ0FBQztvQkFDckQsT0FBTyxFQUFFLENBQUMsMkJBQTJCLENBQUM7aUJBQ3ZDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBUd29GYWN0b3JBdXRoU2V0dXBDb21wb25lbnQgfSBmcm9tICcuL3R3by1mYWN0b3ItYXV0aC1zZXR1cC5jb21wb25lbnQnO1xuaW1wb3J0IHsgU3ZnTW9kdWxlLCBWZXJiZW5hQnV0dG9uTW9kdWxlIH0gZnJvbSAndmVyYmVuLW5nLXVpJztcblxuQE5nTW9kdWxlKHtcbiAgZGVjbGFyYXRpb25zOiBbVHdvRmFjdG9yQXV0aFNldHVwQ29tcG9uZW50XSxcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSxWZXJiZW5hQnV0dG9uTW9kdWxlLFN2Z01vZHVsZV0sXG4gIGV4cG9ydHM6IFtUd29GYWN0b3JBdXRoU2V0dXBDb21wb25lbnRdXG59KVxuZXhwb3J0IGNsYXNzIFR3b0ZhY3RvckF1dGhTZXR1cE1vZHVsZSB7fVxuIl19
@@ -1,14 +1,14 @@
1
1
  import { Component, EventEmitter, Input, Output } from '@angular/core';
2
+ import { FormControl, Validators } from '@angular/forms';
2
3
  import * as i0 from "@angular/core";
3
- import * as i1 from "verben-ng-ui";
4
- import * as i2 from "@angular/common";
4
+ import * as i1 from "@angular/forms";
5
+ import * as i2 from "verben-ng-ui";
6
+ import * as i3 from "@angular/common";
5
7
  export class UserRequestComponent {
8
+ fb;
6
9
  width = '500px';
7
- fName = '';
8
- lName = '';
9
- email = '';
10
- pwd = '';
11
- cPwd = '';
10
+ headingTitle = "Request an account";
11
+ headingClass = "font-medium text-[2rem] leading-[48px] text-[#333]";
12
12
  customClass = '';
13
13
  bgColor = '#fff';
14
14
  boxShadow = '4px 4px 4px rgba(0, 0, 0, 0.25)';
@@ -25,7 +25,32 @@ export class UserRequestComponent {
25
25
  btnBgColor = '#FFE681';
26
26
  btnWidth = '100%';
27
27
  btnPd = '10px 20px';
28
+ termsLink = '';
29
+ privacyLink = '';
30
+ routerLink = '';
28
31
  formSubmit = new EventEmitter();
32
+ googleClick = new EventEmitter();
33
+ appleClick = new EventEmitter();
34
+ userRequestForm;
35
+ constructor(fb) {
36
+ this.fb = fb;
37
+ this.userRequestForm = this.fb.group({
38
+ FirstName: [null, [Validators.required]],
39
+ LastName: [null, [Validators.required]],
40
+ MailAddress: [null, [Validators.required, Validators.email]],
41
+ Password: [null, [Validators.required, Validators.minLength(8)]],
42
+ ConfirmPassword: [null, [Validators.required]],
43
+ Terms: [new FormControl(false, [Validators.requiredTrue]),]
44
+ }, { validators: this.passwordMatchValidator });
45
+ }
46
+ passwordMatchValidator(control) {
47
+ const password = control.get('Password')?.value;
48
+ const confirmPassword = control.get('ConfirmPassword')?.value;
49
+ return password === confirmPassword ? null : { passwordMismatch: true };
50
+ }
51
+ get passwordMismatchError() {
52
+ return this.userRequestForm.hasError('passwordMismatch');
53
+ }
29
54
  get styles() {
30
55
  return {
31
56
  'background-color': this.bgColor,
@@ -34,37 +59,43 @@ export class UserRequestComponent {
34
59
  'border-radius': this.borderRadius,
35
60
  'color': this.textColor,
36
61
  'max-width': this.width,
37
- 'margin': '0 auto',
38
62
  'height': this.height,
39
63
  'padding': this.pd,
40
64
  };
41
65
  }
66
+ checkForm() {
67
+ return this.userRequestForm.valid;
68
+ }
69
+ handleGoogleAuth() {
70
+ this.googleClick.emit();
71
+ }
72
+ handleAppleAuth() {
73
+ this.appleClick.emit();
74
+ }
42
75
  submitForm() {
76
+ if (!this.checkForm()) {
77
+ return;
78
+ }
43
79
  this.formSubmit.emit({
44
- FirstName: this.fName,
45
- LastName: this.lName,
46
- MailAddress: this.email,
47
- Password: this.pwd,
48
- ConfirmPassword: this.cPwd
80
+ FirstName: this.userRequestForm.controls["FirstName"].value,
81
+ LastName: this.userRequestForm.controls["LastName"].value,
82
+ MailAddress: this.userRequestForm.controls["MailAddress"].value,
83
+ Password: this.userRequestForm.controls["Password"].value,
84
+ ConfirmPassword: this.userRequestForm.controls["ConfirmPassword"].value,
85
+ Terms: this.userRequestForm.controls["terms"].value
49
86
  });
50
87
  }
51
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: UserRequestComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
52
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.9", type: UserRequestComponent, selector: "lib-user-request", inputs: { width: "width", fName: "fName", lName: "lName", email: "email", pwd: "pwd", cPwd: "cPwd", customClass: "customClass", bgColor: "bgColor", boxShadow: "boxShadow", border: "border", borderRadius: "borderRadius", textColor: "textColor", height: "height", pd: "pd", text: "text", color: "color", btnBorder: "btnBorder", btnBorderRadius: "btnBorderRadius", btnBgColor: "btnBgColor", btnWidth: "btnWidth", btnPd: "btnPd" }, outputs: { formSubmit: "formSubmit" }, ngImport: i0, template: "<section [ngStyle]=\"styles\" class=\"{{ customClass }}\">\n <h2 class=\"font-medium text-[2rem] leading-[48px] text-[#333]\">\n Request An Account\n </h2>\n <div class=\"flex flex-col gap-5 mt-3\">\n <verbena-input\n [label]=\"'First Name'\"\n [labelColor]=\"'#666'\"\n [placeHolder]=\"''\"\n [required]=\"true\"\n [type]=\"'text'\"\n [(value)]=\"fName\"\n [showBorder]=\"true\"\n [bgColor]=\"'white'\"\n [border]=\"'1px solid #66666659'\"\n [borderRadius]=\"'12px'\"\n [showErrorMessage]=\"true\"\n [errorMessageColor]=\"'red'\"\n [errorBorderColor]=\"'red'\"\n [errorPosition]=\"'bottom'\"\n class=\"outline-none focus-none\"\n ></verbena-input>\n <verbena-input\n [label]=\"'Last Name'\"\n [labelColor]=\"'#666'\"\n [placeHolder]=\"''\"\n [required]=\"true\"\n [type]=\"'text'\"\n [(value)]=\"lName\"\n [showBorder]=\"true\"\n [bgColor]=\"'white'\"\n [border]=\"'1px solid #66666659'\"\n [borderRadius]=\"'12px'\"\n [showErrorMessage]=\"true\"\n [errorMessageColor]=\"'red'\"\n [errorBorderColor]=\"'red'\"\n [errorPosition]=\"'bottom'\"\n class=\"outline-none focus-none\"\n ></verbena-input>\n <verbena-input\n [label]=\"'E-mail Address'\"\n [labelColor]=\"'#666'\"\n [placeHolder]=\"''\"\n [required]=\"true\"\n [type]=\"'email'\"\n [(value)]=\"email\"\n [showBorder]=\"true\"\n [bgColor]=\"'white'\"\n [border]=\"'1px solid #66666659'\"\n [borderRadius]=\"'12px'\"\n [showErrorMessage]=\"true\"\n [errorMessageColor]=\"'red'\"\n [errorBorderColor]=\"'red'\"\n [errorPosition]=\"'bottom'\"\n class=\"outline-none focus-none\"\n ></verbena-input>\n\n <verbena-input\n [label]=\"'Password'\"\n [labelColor]=\"'#666'\"\n [placeHolder]=\"''\"\n [required]=\"true\"\n [type]=\"'password'\"\n [(value)]=\"pwd\"\n [showBorder]=\"true\"\n [bgColor]=\"'white'\"\n [border]=\"'1px solid #66666659'\"\n [borderRadius]=\"'12px'\"\n [showErrorMessage]=\"true\"\n [errorMessageColor]=\"'red'\"\n [errorBorderColor]=\"'red'\"\n [errorPosition]=\"'bottom'\"\n class=\"outline-none focus-none\"\n ></verbena-input>\n\n <verbena-input\n [label]=\"'Confirm Password'\"\n [labelColor]=\"'#666'\"\n [placeHolder]=\"''\"\n [required]=\"true\"\n [type]=\"'password'\"\n [(value)]=\"cPwd\"\n [showBorder]=\"true\"\n [bgColor]=\"'white'\"\n [border]=\"'1px solid #66666659'\"\n [borderRadius]=\"'12px'\"\n [showErrorMessage]=\"true\"\n [errorMessageColor]=\"'red'\"\n [errorBorderColor]=\"'red'\"\n [errorPosition]=\"'bottom'\"\n class=\"outline-none focus-none\"\n ></verbena-input>\n\n <p class=\"text-[#666666] text-sm\">\n <input class=\"accent\" type=\"checkbox\" />\n By creating an account, I agree to our<br />\n <a href=\"#\" class=\"text-black text-sm font-[500] underline\"\n >Terms of use</a\n >\n and\n <a href=\"#\" class=\"text-black font-[500] text-sm underline\"\n >Privacy Policy\n </a>\n </p>\n <verbena-button\n [text]=\"text\"\n [bgColor]=\"btnBgColor\"\n [textColor]=\"color\"\n [border]=\"btnBorder\"\n [borderRadius]=\"btnBorderRadius\"\n [pd]=\"btnPd\"\n (click)=\"submitForm()\"\n [width]=\"btnWidth\"\n buttonClass=\"font-medium text-[22px] leading-[33px]\"\n ></verbena-button>\n <div class=\"flex flex-col gap-4\">\n <div class=\"flex items-center gap-2\">\n <hr class=\"flex-1 border-r border-[#66666640]\" />\n <span class=\"mx-2 text-[#666666]\">OR</span>\n <hr class=\"flex-1 border-r border-[#66666640]\" />\n </div>\n </div>\n\n <verbena-button\n svg=\"google-logo\"\n [svgHeight]=\"24\"\n [svgWidth]=\"24\"\n text=\"Continue with Google\"\n bgColor=\"white\"\n textColor=\"black\"\n border=\"1px solid #333\"\n borderRadius=\"40px\"\n pd=\"10px 20px\"\n width=\"100%\"\n svgPosition=\"left\"\n buttonClass=\"font-normal text-[24px] leading-[29.05px] text-[#333]\"\n ></verbena-button>\n\n <verbena-button\n svg=\"apple-logo\"\n [svgHeight]=\"24\"\n [svgWidth]=\"24\"\n text=\"Continue with Apple\"\n bgColor=\"white\"\n textColor=\"black\"\n border=\"1px solid #333\"\n borderRadius=\"40px\"\n pd=\"10px 20px\"\n width=\"100%\"\n svgPosition=\"left\"\n buttonClass=\"font-normal text-[24px] leading-[29.05px] text-[#333] mt-2\"\n ></verbena-button>\n </div>\n</section>\n", styles: [".flex{display:flex}.overflow-hidden{overflow:hidden}.h-full{height:100%}.underline{text-decoration:underline}.mt-4{margin-top:1rem}.space-y-4>:not([hidden])~:not([hidden]){margin-top:1rem}.gap-1>:not([hidden])~:not([hidden]){gap:.25rem}.pt-3{padding-top:.75rem}.mt-5{margin-top:1.25rem}.border{border-width:1px}.rounded-xl{border-radius:.75rem}.px-3{padding-left:.75rem;padding-right:.75rem}.py-3{padding-top:.75rem;padding-bottom:.75rem}.flex-col{flex-direction:column}.object-cover{object-fit:cover}.w-full{width:100%}.accent{accent-color:#34A853}\n"], dependencies: [{ kind: "component", type: i1.VerbenaInputComponent, selector: "verbena-input", inputs: ["label", "placeHolder", "required", "svgPosition", "minLength", "maxLength", "type", "bgColor", "border", "borderRadius", "textColor", "value", "labelPosition", "labelColor", "disable", "min", "max", "showBorder", "showErrorMessage", "errorMessageColor", "errorBorderColor", "errorPosition", "svg", "svgWidth", "svgHeight", "svgColor", "capitalization", "inputContainerClass", "inputFieldClass", "inputWrapperClass", "customErrorMessages"], outputs: ["valueChange"] }, { kind: "component", type: i1.VerbenaButtonComponent, selector: "verbena-button", inputs: ["text", "icon", "svgPosition", "bgColor", "textColor", "border", "borderRadius", "pd", "width", "height", "fontSize", "fontWeight", "disable", "styleType", "svg", "svgWidth", "svgHeight", "svgColor", "buttonClass", "buttonTextClass"] }, { kind: "directive", type: i2.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }] });
88
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: UserRequestComponent, deps: [{ token: i1.FormBuilder }], target: i0.ɵɵFactoryTarget.Component });
89
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.9", type: UserRequestComponent, selector: "lib-user-request", inputs: { width: "width", headingTitle: "headingTitle", headingClass: "headingClass", customClass: "customClass", bgColor: "bgColor", boxShadow: "boxShadow", border: "border", borderRadius: "borderRadius", textColor: "textColor", height: "height", pd: "pd", text: "text", color: "color", btnBorder: "btnBorder", btnBorderRadius: "btnBorderRadius", btnBgColor: "btnBgColor", btnWidth: "btnWidth", btnPd: "btnPd", termsLink: "termsLink", privacyLink: "privacyLink", routerLink: "routerLink" }, outputs: { formSubmit: "formSubmit", googleClick: "googleClick", appleClick: "appleClick" }, ngImport: i0, template: "<section [ngStyle]=\"styles\" class=\"{{ customClass }}\">\n <h2 class=\"{{ headingClass }}\">\n {{ headingTitle }}\n </h2>\n\n <form\n [formGroup]=\"userRequestForm\"\n (ngSubmit)=\"submitForm()\"\n class=\"flex flex-col gap-5 mt-3\"\n >\n <verbena-input\n [label]=\"'First Name'\"\n [labelColor]=\"'#666'\"\n [placeHolder]=\"''\"\n [required]=\"true\"\n [type]=\"'text'\"\n formControlName=\"FirstName\"\n [showBorder]=\"true\"\n [bgColor]=\"'white'\"\n [border]=\"'1px solid #66666659'\"\n [borderRadius]=\"'12px'\"\n [showErrorMessage]=\"true\"\n [errorMessageColor]=\"'red'\"\n [errorBorderColor]=\"'red'\"\n [errorPosition]=\"'bottom'\"\n class=\"outline-none focus-none\"\n ></verbena-input>\n <verbena-input\n [label]=\"'Last Name'\"\n [labelColor]=\"'#666'\"\n [placeHolder]=\"''\"\n [required]=\"true\"\n [type]=\"'text'\"\n formControlName=\"LastName\"\n [showBorder]=\"true\"\n [bgColor]=\"'white'\"\n [border]=\"'1px solid #66666659'\"\n [borderRadius]=\"'12px'\"\n [showErrorMessage]=\"true\"\n [errorMessageColor]=\"'red'\"\n [errorBorderColor]=\"'red'\"\n [errorPosition]=\"'bottom'\"\n class=\"outline-none focus-none\"\n ></verbena-input>\n <verbena-input\n [label]=\"'E-mail Address'\"\n [labelColor]=\"'#666'\"\n [placeHolder]=\"''\"\n [required]=\"true\"\n [type]=\"'email'\"\n formControlName=\"MailAddress\"\n [showBorder]=\"true\"\n [bgColor]=\"'white'\"\n [border]=\"'1px solid #66666659'\"\n [borderRadius]=\"'12px'\"\n [showErrorMessage]=\"true\"\n [errorMessageColor]=\"'red'\"\n [errorBorderColor]=\"'red'\"\n [errorPosition]=\"'bottom'\"\n class=\"outline-none focus-none\"\n ></verbena-input>\n\n <verbena-input\n [label]=\"'Password'\"\n [labelColor]=\"'#666'\"\n [placeHolder]=\"''\"\n formControlName=\"Password\"\n [required]=\"true\"\n [type]=\"'password'\"\n [showBorder]=\"true\"\n [bgColor]=\"'white'\"\n [border]=\"'1px solid #66666659'\"\n [borderRadius]=\"'12px'\"\n [showErrorMessage]=\"true\"\n [errorMessageColor]=\"'red'\"\n [errorBorderColor]=\"'red'\"\n [errorPosition]=\"'bottom'\"\n class=\"outline-none focus-none\"\n ></verbena-input>\n\n <verbena-input\n [label]=\"'Confirm Password'\"\n [labelColor]=\"'#666'\"\n [placeHolder]=\"''\"\n [required]=\"true\"\n [type]=\"'password'\"\n formControlName=\"ConfirmPassword\"\n [showBorder]=\"true\"\n [bgColor]=\"'white'\"\n [border]=\"'1px solid #66666659'\"\n [borderRadius]=\"'12px'\"\n [showErrorMessage]=\"true\"\n [errorMessageColor]=\"'red'\"\n [errorBorderColor]=\"'red'\"\n [errorPosition]=\"'bottom'\"\n class=\"outline-none focus-none\"\n ></verbena-input>\n\n <p class=\"text-[#666666] text-sm\">\n <input class=\"accent\" type=\"checkbox\" />\n By creating an account, I agree to our<br />\n <a [attr.href]=\"termsLink\" class=\"text-black text-sm font-[500] underline\"\n >Terms of use</a\n >\n and\n <a [attr.href]=\"privacyLink\" class=\"text-black font-[500] text-sm underline\"\n >Privacy Policy\n </a>\n <p *ngIf=\"userRequestForm.controls['Terms'].invalid && userRequestForm.controls['Terms'].touched\">\n <small class=\"error-text\">Please agree to the terms of use and privacy policy.</small>\n </p>\n \n <verbena-button\n [disable]=\"!this.checkForm()\"\n [text]=\"text\"\n [bgColor]=\"btnBgColor\"\n [textColor]=\"color\"\n [border]=\"btnBorder\"\n [borderRadius]=\"btnBorderRadius\"\n [pd]=\"btnPd\"\n (click)=\"submitForm()\"\n [width]=\"btnWidth\"\n buttonClass=\"font-medium text-[22px] leading-[33px]\"\n ></verbena-button>\n <div class=\"flex justify-center items-center OR\">\n <span></span>\n OR\n <span></span>\n </div>\n\n <verbena-button\n svg=\"google-logo\"\n [svgHeight]=\"24\"\n [svgWidth]=\"24\"\n (click)=\"handleGoogleAuth()\"\n text=\"Continue with Google\"\n bgColor=\"white\"\n textColor=\"black\"\n border=\"1px solid #333\"\n borderRadius=\"40px\"\n pd=\"10px 20px\"\n width=\"100%\"\n svgPosition=\"left\"\n buttonClass=\"font-normal text-[24px] leading-[29.05px] text-[#333]\"\n ></verbena-button>\n\n <verbena-button\n svg=\"apple-logo\"\n (click)=\"handleAppleAuth()\"\n [svgHeight]=\"24\"\n [svgWidth]=\"24\"\n text=\"Continue with Apple\"\n bgColor=\"white\"\n textColor=\"black\"\n border=\"1px solid #333\"\n borderRadius=\"40px\"\n pd=\"10px 20px\"\n width=\"100%\"\n svgPosition=\"left\"\n buttonClass=\"font-normal text-[24px] leading-[29.05px] text-[#333] mt-2\"\n ></verbena-button>\n </form>\n</section>\n", styles: [".flex{display:flex}.items-center{align-items:center}.overflow-hidden{overflow:hidden}.justify-center{justify-content:center}.h-full{height:100%}.text-center{text-align:center}.underline{text-decoration:underline}.gap-5{gap:20px}.mt-4{margin-top:1rem}.space-y-4>:not([hidden])~:not([hidden]){margin-top:1rem}.gap-1>:not([hidden])~:not([hidden]){gap:.25rem}.pt-3{padding-top:.75rem}.mt-5{margin-top:1.25rem}.border{border-width:1px}.rounded-xl{border-radius:.75rem}.px-3{padding-left:.75rem;padding-right:.75rem}.py-3{padding-top:.75rem;padding-bottom:.75rem}.flex-col{flex-direction:column}.object-cover{object-fit:cover}.w-full{width:100%}.accent{accent-color:#000}.OR{color:#666;gap:6px}.OR span{width:150px;border-top:2px solid #6666663d;display:block}\n"], dependencies: [{ kind: "directive", type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: i2.VerbenaInputComponent, selector: "verbena-input", inputs: ["label", "placeHolder", "required", "svgPosition", "minLength", "maxLength", "type", "bgColor", "border", "borderRadius", "textColor", "value", "labelPosition", "labelColor", "disable", "min", "max", "showBorder", "showErrorMessage", "errorMessageColor", "errorBorderColor", "errorPosition", "svg", "svgWidth", "svgHeight", "svgColor", "capitalization", "inputContainerClass", "inputFieldClass", "inputWrapperClass", "customErrorMessages"], outputs: ["valueChange"] }, { kind: "component", type: i2.VerbenaButtonComponent, selector: "verbena-button", inputs: ["text", "icon", "svgPosition", "bgColor", "textColor", "border", "borderRadius", "pd", "width", "height", "fontSize", "fontWeight", "disable", "styleType", "svg", "svgWidth", "svgHeight", "svgColor", "buttonClass", "buttonTextClass"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }] });
53
90
  }
54
91
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: UserRequestComponent, decorators: [{
55
92
  type: Component,
56
- args: [{ selector: 'lib-user-request', template: "<section [ngStyle]=\"styles\" class=\"{{ customClass }}\">\n <h2 class=\"font-medium text-[2rem] leading-[48px] text-[#333]\">\n Request An Account\n </h2>\n <div class=\"flex flex-col gap-5 mt-3\">\n <verbena-input\n [label]=\"'First Name'\"\n [labelColor]=\"'#666'\"\n [placeHolder]=\"''\"\n [required]=\"true\"\n [type]=\"'text'\"\n [(value)]=\"fName\"\n [showBorder]=\"true\"\n [bgColor]=\"'white'\"\n [border]=\"'1px solid #66666659'\"\n [borderRadius]=\"'12px'\"\n [showErrorMessage]=\"true\"\n [errorMessageColor]=\"'red'\"\n [errorBorderColor]=\"'red'\"\n [errorPosition]=\"'bottom'\"\n class=\"outline-none focus-none\"\n ></verbena-input>\n <verbena-input\n [label]=\"'Last Name'\"\n [labelColor]=\"'#666'\"\n [placeHolder]=\"''\"\n [required]=\"true\"\n [type]=\"'text'\"\n [(value)]=\"lName\"\n [showBorder]=\"true\"\n [bgColor]=\"'white'\"\n [border]=\"'1px solid #66666659'\"\n [borderRadius]=\"'12px'\"\n [showErrorMessage]=\"true\"\n [errorMessageColor]=\"'red'\"\n [errorBorderColor]=\"'red'\"\n [errorPosition]=\"'bottom'\"\n class=\"outline-none focus-none\"\n ></verbena-input>\n <verbena-input\n [label]=\"'E-mail Address'\"\n [labelColor]=\"'#666'\"\n [placeHolder]=\"''\"\n [required]=\"true\"\n [type]=\"'email'\"\n [(value)]=\"email\"\n [showBorder]=\"true\"\n [bgColor]=\"'white'\"\n [border]=\"'1px solid #66666659'\"\n [borderRadius]=\"'12px'\"\n [showErrorMessage]=\"true\"\n [errorMessageColor]=\"'red'\"\n [errorBorderColor]=\"'red'\"\n [errorPosition]=\"'bottom'\"\n class=\"outline-none focus-none\"\n ></verbena-input>\n\n <verbena-input\n [label]=\"'Password'\"\n [labelColor]=\"'#666'\"\n [placeHolder]=\"''\"\n [required]=\"true\"\n [type]=\"'password'\"\n [(value)]=\"pwd\"\n [showBorder]=\"true\"\n [bgColor]=\"'white'\"\n [border]=\"'1px solid #66666659'\"\n [borderRadius]=\"'12px'\"\n [showErrorMessage]=\"true\"\n [errorMessageColor]=\"'red'\"\n [errorBorderColor]=\"'red'\"\n [errorPosition]=\"'bottom'\"\n class=\"outline-none focus-none\"\n ></verbena-input>\n\n <verbena-input\n [label]=\"'Confirm Password'\"\n [labelColor]=\"'#666'\"\n [placeHolder]=\"''\"\n [required]=\"true\"\n [type]=\"'password'\"\n [(value)]=\"cPwd\"\n [showBorder]=\"true\"\n [bgColor]=\"'white'\"\n [border]=\"'1px solid #66666659'\"\n [borderRadius]=\"'12px'\"\n [showErrorMessage]=\"true\"\n [errorMessageColor]=\"'red'\"\n [errorBorderColor]=\"'red'\"\n [errorPosition]=\"'bottom'\"\n class=\"outline-none focus-none\"\n ></verbena-input>\n\n <p class=\"text-[#666666] text-sm\">\n <input class=\"accent\" type=\"checkbox\" />\n By creating an account, I agree to our<br />\n <a href=\"#\" class=\"text-black text-sm font-[500] underline\"\n >Terms of use</a\n >\n and\n <a href=\"#\" class=\"text-black font-[500] text-sm underline\"\n >Privacy Policy\n </a>\n </p>\n <verbena-button\n [text]=\"text\"\n [bgColor]=\"btnBgColor\"\n [textColor]=\"color\"\n [border]=\"btnBorder\"\n [borderRadius]=\"btnBorderRadius\"\n [pd]=\"btnPd\"\n (click)=\"submitForm()\"\n [width]=\"btnWidth\"\n buttonClass=\"font-medium text-[22px] leading-[33px]\"\n ></verbena-button>\n <div class=\"flex flex-col gap-4\">\n <div class=\"flex items-center gap-2\">\n <hr class=\"flex-1 border-r border-[#66666640]\" />\n <span class=\"mx-2 text-[#666666]\">OR</span>\n <hr class=\"flex-1 border-r border-[#66666640]\" />\n </div>\n </div>\n\n <verbena-button\n svg=\"google-logo\"\n [svgHeight]=\"24\"\n [svgWidth]=\"24\"\n text=\"Continue with Google\"\n bgColor=\"white\"\n textColor=\"black\"\n border=\"1px solid #333\"\n borderRadius=\"40px\"\n pd=\"10px 20px\"\n width=\"100%\"\n svgPosition=\"left\"\n buttonClass=\"font-normal text-[24px] leading-[29.05px] text-[#333]\"\n ></verbena-button>\n\n <verbena-button\n svg=\"apple-logo\"\n [svgHeight]=\"24\"\n [svgWidth]=\"24\"\n text=\"Continue with Apple\"\n bgColor=\"white\"\n textColor=\"black\"\n border=\"1px solid #333\"\n borderRadius=\"40px\"\n pd=\"10px 20px\"\n width=\"100%\"\n svgPosition=\"left\"\n buttonClass=\"font-normal text-[24px] leading-[29.05px] text-[#333] mt-2\"\n ></verbena-button>\n </div>\n</section>\n", styles: [".flex{display:flex}.overflow-hidden{overflow:hidden}.h-full{height:100%}.underline{text-decoration:underline}.mt-4{margin-top:1rem}.space-y-4>:not([hidden])~:not([hidden]){margin-top:1rem}.gap-1>:not([hidden])~:not([hidden]){gap:.25rem}.pt-3{padding-top:.75rem}.mt-5{margin-top:1.25rem}.border{border-width:1px}.rounded-xl{border-radius:.75rem}.px-3{padding-left:.75rem;padding-right:.75rem}.py-3{padding-top:.75rem;padding-bottom:.75rem}.flex-col{flex-direction:column}.object-cover{object-fit:cover}.w-full{width:100%}.accent{accent-color:#34A853}\n"] }]
57
- }], propDecorators: { width: [{
58
- type: Input
59
- }], fName: [{
93
+ args: [{ selector: 'lib-user-request', template: "<section [ngStyle]=\"styles\" class=\"{{ customClass }}\">\n <h2 class=\"{{ headingClass }}\">\n {{ headingTitle }}\n </h2>\n\n <form\n [formGroup]=\"userRequestForm\"\n (ngSubmit)=\"submitForm()\"\n class=\"flex flex-col gap-5 mt-3\"\n >\n <verbena-input\n [label]=\"'First Name'\"\n [labelColor]=\"'#666'\"\n [placeHolder]=\"''\"\n [required]=\"true\"\n [type]=\"'text'\"\n formControlName=\"FirstName\"\n [showBorder]=\"true\"\n [bgColor]=\"'white'\"\n [border]=\"'1px solid #66666659'\"\n [borderRadius]=\"'12px'\"\n [showErrorMessage]=\"true\"\n [errorMessageColor]=\"'red'\"\n [errorBorderColor]=\"'red'\"\n [errorPosition]=\"'bottom'\"\n class=\"outline-none focus-none\"\n ></verbena-input>\n <verbena-input\n [label]=\"'Last Name'\"\n [labelColor]=\"'#666'\"\n [placeHolder]=\"''\"\n [required]=\"true\"\n [type]=\"'text'\"\n formControlName=\"LastName\"\n [showBorder]=\"true\"\n [bgColor]=\"'white'\"\n [border]=\"'1px solid #66666659'\"\n [borderRadius]=\"'12px'\"\n [showErrorMessage]=\"true\"\n [errorMessageColor]=\"'red'\"\n [errorBorderColor]=\"'red'\"\n [errorPosition]=\"'bottom'\"\n class=\"outline-none focus-none\"\n ></verbena-input>\n <verbena-input\n [label]=\"'E-mail Address'\"\n [labelColor]=\"'#666'\"\n [placeHolder]=\"''\"\n [required]=\"true\"\n [type]=\"'email'\"\n formControlName=\"MailAddress\"\n [showBorder]=\"true\"\n [bgColor]=\"'white'\"\n [border]=\"'1px solid #66666659'\"\n [borderRadius]=\"'12px'\"\n [showErrorMessage]=\"true\"\n [errorMessageColor]=\"'red'\"\n [errorBorderColor]=\"'red'\"\n [errorPosition]=\"'bottom'\"\n class=\"outline-none focus-none\"\n ></verbena-input>\n\n <verbena-input\n [label]=\"'Password'\"\n [labelColor]=\"'#666'\"\n [placeHolder]=\"''\"\n formControlName=\"Password\"\n [required]=\"true\"\n [type]=\"'password'\"\n [showBorder]=\"true\"\n [bgColor]=\"'white'\"\n [border]=\"'1px solid #66666659'\"\n [borderRadius]=\"'12px'\"\n [showErrorMessage]=\"true\"\n [errorMessageColor]=\"'red'\"\n [errorBorderColor]=\"'red'\"\n [errorPosition]=\"'bottom'\"\n class=\"outline-none focus-none\"\n ></verbena-input>\n\n <verbena-input\n [label]=\"'Confirm Password'\"\n [labelColor]=\"'#666'\"\n [placeHolder]=\"''\"\n [required]=\"true\"\n [type]=\"'password'\"\n formControlName=\"ConfirmPassword\"\n [showBorder]=\"true\"\n [bgColor]=\"'white'\"\n [border]=\"'1px solid #66666659'\"\n [borderRadius]=\"'12px'\"\n [showErrorMessage]=\"true\"\n [errorMessageColor]=\"'red'\"\n [errorBorderColor]=\"'red'\"\n [errorPosition]=\"'bottom'\"\n class=\"outline-none focus-none\"\n ></verbena-input>\n\n <p class=\"text-[#666666] text-sm\">\n <input class=\"accent\" type=\"checkbox\" />\n By creating an account, I agree to our<br />\n <a [attr.href]=\"termsLink\" class=\"text-black text-sm font-[500] underline\"\n >Terms of use</a\n >\n and\n <a [attr.href]=\"privacyLink\" class=\"text-black font-[500] text-sm underline\"\n >Privacy Policy\n </a>\n <p *ngIf=\"userRequestForm.controls['Terms'].invalid && userRequestForm.controls['Terms'].touched\">\n <small class=\"error-text\">Please agree to the terms of use and privacy policy.</small>\n </p>\n \n <verbena-button\n [disable]=\"!this.checkForm()\"\n [text]=\"text\"\n [bgColor]=\"btnBgColor\"\n [textColor]=\"color\"\n [border]=\"btnBorder\"\n [borderRadius]=\"btnBorderRadius\"\n [pd]=\"btnPd\"\n (click)=\"submitForm()\"\n [width]=\"btnWidth\"\n buttonClass=\"font-medium text-[22px] leading-[33px]\"\n ></verbena-button>\n <div class=\"flex justify-center items-center OR\">\n <span></span>\n OR\n <span></span>\n </div>\n\n <verbena-button\n svg=\"google-logo\"\n [svgHeight]=\"24\"\n [svgWidth]=\"24\"\n (click)=\"handleGoogleAuth()\"\n text=\"Continue with Google\"\n bgColor=\"white\"\n textColor=\"black\"\n border=\"1px solid #333\"\n borderRadius=\"40px\"\n pd=\"10px 20px\"\n width=\"100%\"\n svgPosition=\"left\"\n buttonClass=\"font-normal text-[24px] leading-[29.05px] text-[#333]\"\n ></verbena-button>\n\n <verbena-button\n svg=\"apple-logo\"\n (click)=\"handleAppleAuth()\"\n [svgHeight]=\"24\"\n [svgWidth]=\"24\"\n text=\"Continue with Apple\"\n bgColor=\"white\"\n textColor=\"black\"\n border=\"1px solid #333\"\n borderRadius=\"40px\"\n pd=\"10px 20px\"\n width=\"100%\"\n svgPosition=\"left\"\n buttonClass=\"font-normal text-[24px] leading-[29.05px] text-[#333] mt-2\"\n ></verbena-button>\n </form>\n</section>\n", styles: [".flex{display:flex}.items-center{align-items:center}.overflow-hidden{overflow:hidden}.justify-center{justify-content:center}.h-full{height:100%}.text-center{text-align:center}.underline{text-decoration:underline}.gap-5{gap:20px}.mt-4{margin-top:1rem}.space-y-4>:not([hidden])~:not([hidden]){margin-top:1rem}.gap-1>:not([hidden])~:not([hidden]){gap:.25rem}.pt-3{padding-top:.75rem}.mt-5{margin-top:1.25rem}.border{border-width:1px}.rounded-xl{border-radius:.75rem}.px-3{padding-left:.75rem;padding-right:.75rem}.py-3{padding-top:.75rem;padding-bottom:.75rem}.flex-col{flex-direction:column}.object-cover{object-fit:cover}.w-full{width:100%}.accent{accent-color:#000}.OR{color:#666;gap:6px}.OR span{width:150px;border-top:2px solid #6666663d;display:block}\n"] }]
94
+ }], ctorParameters: () => [{ type: i1.FormBuilder }], propDecorators: { width: [{
60
95
  type: Input
61
- }], lName: [{
96
+ }], headingTitle: [{
62
97
  type: Input
63
- }], email: [{
64
- type: Input
65
- }], pwd: [{
66
- type: Input
67
- }], cPwd: [{
98
+ }], headingClass: [{
68
99
  type: Input
69
100
  }], customClass: [{
70
101
  type: Input
@@ -96,7 +127,17 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImpor
96
127
  type: Input
97
128
  }], btnPd: [{
98
129
  type: Input
130
+ }], termsLink: [{
131
+ type: Input
132
+ }], privacyLink: [{
133
+ type: Input
134
+ }], routerLink: [{
135
+ type: Input
99
136
  }], formSubmit: [{
100
137
  type: Output
138
+ }], googleClick: [{
139
+ type: Output
140
+ }], appleClick: [{
141
+ type: Output
101
142
  }] } });
102
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci1yZXF1ZXN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3ZlcmJlbi1hdXRoZW50aWNhdGlvbi11aS9zcmMvbGliL2NvbXBvbmVudHMvdXNlci1yZXF1ZXN0L3VzZXItcmVxdWVzdC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92ZXJiZW4tYXV0aGVudGljYXRpb24tdWkvc3JjL2xpYi9jb21wb25lbnRzL3VzZXItcmVxdWVzdC91c2VyLXJlcXVlc3QuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQzs7OztBQU92RSxNQUFNLE9BQU8sb0JBQW9CO0lBQ3RCLEtBQUssR0FBVyxPQUFPLENBQUM7SUFDeEIsS0FBSyxHQUFXLEVBQUUsQ0FBQztJQUNuQixLQUFLLEdBQVcsRUFBRSxDQUFDO0lBQ25CLEtBQUssR0FBVyxFQUFFLENBQUM7SUFDbkIsR0FBRyxHQUFXLEVBQUUsQ0FBQztJQUNqQixJQUFJLEdBQVcsRUFBRSxDQUFDO0lBQ2xCLFdBQVcsR0FBVyxFQUFFLENBQUM7SUFDekIsT0FBTyxHQUFXLE1BQU0sQ0FBQztJQUN6QixTQUFTLEdBQVcsaUNBQWlDLENBQUM7SUFDdEQsTUFBTSxHQUFXLHFCQUFxQixDQUFDO0lBQ3ZDLFlBQVksR0FBVyxNQUFNLENBQUM7SUFDOUIsU0FBUyxHQUFXLE1BQU0sQ0FBQztJQUMzQixNQUFNLEdBQVcsTUFBTSxDQUFDO0lBQ3hCLEVBQUUsR0FBVyxXQUFXLENBQUM7SUFFbEMsZ0JBQWdCO0lBQ1AsSUFBSSxHQUFXLGNBQWMsQ0FBQztJQUM5QixLQUFLLEdBQVcsT0FBTyxDQUFDO0lBQ3hCLFNBQVMsR0FBVyxtQkFBbUIsQ0FBQztJQUN4QyxlQUFlLEdBQVcsTUFBTSxDQUFDO0lBQ2pDLFVBQVUsR0FBVyxTQUFTLENBQUM7SUFDL0IsUUFBUSxHQUFXLE1BQU0sQ0FBQztJQUMxQixLQUFLLEdBQVcsV0FBVyxDQUFDO0lBRTNCLFVBQVUsR0FBRyxJQUFJLFlBQVksRUFBMkcsQ0FBQztJQUVuSixJQUFJLE1BQU07UUFDUixPQUFPO1lBQ0wsa0JBQWtCLEVBQUUsSUFBSSxDQUFDLE9BQU87WUFDaEMsWUFBWSxFQUFFLElBQUksQ0FBQyxTQUFTO1lBQzVCLFFBQVEsRUFBRSxJQUFJLENBQUMsTUFBTTtZQUNyQixlQUFlLEVBQUUsSUFBSSxDQUFDLFlBQVk7WUFDbEMsT0FBTyxFQUFFLElBQUksQ0FBQyxTQUFTO1lBQ3ZCLFdBQVcsRUFBRSxJQUFJLENBQUMsS0FBSztZQUN2QixRQUFRLEVBQUUsUUFBUTtZQUNsQixRQUFRLEVBQUUsSUFBSSxDQUFDLE1BQU07WUFDckIsU0FBUyxFQUFFLElBQUksQ0FBQyxFQUFFO1NBQ25CLENBQUM7SUFDSixDQUFDO0lBRUQsVUFBVTtRQUNSLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDO1lBQ25CLFNBQVMsRUFBRSxJQUFJLENBQUMsS0FBSztZQUNyQixRQUFRLEVBQUUsSUFBSSxDQUFDLEtBQUs7WUFDcEIsV0FBVyxFQUFFLElBQUksQ0FBQyxLQUFLO1lBQ3ZCLFFBQVEsRUFBRSxJQUFJLENBQUMsR0FBRztZQUNsQixlQUFlLEVBQUUsSUFBSSxDQUFDLElBQUk7U0FDM0IsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzt1R0FqRFUsb0JBQW9COzJGQUFwQixvQkFBb0IsMmdCQ1BqQywwcUpBMEpBOzsyRkRuSmEsb0JBQW9CO2tCQUxoQyxTQUFTOytCQUNFLGtCQUFrQjs4QkFLbkIsS0FBSztzQkFBYixLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csS0FBSztzQkFBYixLQUFLO2dCQUNHLEdBQUc7c0JBQVgsS0FBSztnQkFDRyxJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFDRyxNQUFNO3NCQUFkLEtBQUs7Z0JBQ0csWUFBWTtzQkFBcEIsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQUNHLE1BQU07c0JBQWQsS0FBSztnQkFDRyxFQUFFO3NCQUFWLEtBQUs7Z0JBR0csSUFBSTtzQkFBWixLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQUNHLGVBQWU7c0JBQXZCLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFFSSxVQUFVO3NCQUFuQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbGliLXVzZXItcmVxdWVzdCcsXG4gIHRlbXBsYXRlVXJsOiAnLi91c2VyLXJlcXVlc3QuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi91c2VyLXJlcXVlc3QuY29tcG9uZW50LmNzcyddXG59KVxuZXhwb3J0IGNsYXNzIFVzZXJSZXF1ZXN0Q29tcG9uZW50IHtcbiAgQElucHV0KCkgd2lkdGg6IHN0cmluZyA9ICc1MDBweCc7XG4gIEBJbnB1dCgpIGZOYW1lOiBzdHJpbmcgPSAnJztcbiAgQElucHV0KCkgbE5hbWU6IHN0cmluZyA9ICcnO1xuICBASW5wdXQoKSBlbWFpbDogc3RyaW5nID0gJyc7XG4gIEBJbnB1dCgpIHB3ZDogc3RyaW5nID0gJyc7XG4gIEBJbnB1dCgpIGNQd2Q6IHN0cmluZyA9ICcnO1xuICBASW5wdXQoKSBjdXN0b21DbGFzczogc3RyaW5nID0gJyc7XG4gIEBJbnB1dCgpIGJnQ29sb3I6IHN0cmluZyA9ICcjZmZmJztcbiAgQElucHV0KCkgYm94U2hhZG93OiBzdHJpbmcgPSAnNHB4IDRweCA0cHggcmdiYSgwLCAwLCAwLCAwLjI1KSc7XG4gIEBJbnB1dCgpIGJvcmRlcjogc3RyaW5nID0gJzFweCBzb2xpZCAjNjY2NjY2ODAnO1xuICBASW5wdXQoKSBib3JkZXJSYWRpdXM6IHN0cmluZyA9ICcyNHB4JztcbiAgQElucHV0KCkgdGV4dENvbG9yOiBzdHJpbmcgPSAnIzMzMyc7XG4gIEBJbnB1dCgpIGhlaWdodDogc3RyaW5nID0gJ2F1dG8nO1xuICBASW5wdXQoKSBwZDogc3RyaW5nID0gJzMycHggNDhweCc7XG4gIFxuICAvLyBCdXR0b24gSW5wdXRzXG4gIEBJbnB1dCgpIHRleHQ6IHN0cmluZyA9ICdTZW5kIFJlcXVlc3QnO1xuICBASW5wdXQoKSBjb2xvcjogc3RyaW5nID0gJ2JsYWNrJztcbiAgQElucHV0KCkgYnRuQm9yZGVyOiBzdHJpbmcgPSAnMXB4IHNvbGlkICNGRkU2ODEnO1xuICBASW5wdXQoKSBidG5Cb3JkZXJSYWRpdXM6IHN0cmluZyA9IFwiNDBweFwiO1xuICBASW5wdXQoKSBidG5CZ0NvbG9yOiBzdHJpbmcgPSAnI0ZGRTY4MSc7XG4gIEBJbnB1dCgpIGJ0bldpZHRoOiBzdHJpbmcgPSAnMTAwJSc7XG4gIEBJbnB1dCgpIGJ0blBkOiBzdHJpbmcgPSAnMTBweCAyMHB4JztcblxuICBAT3V0cHV0KCkgZm9ybVN1Ym1pdCA9IG5ldyBFdmVudEVtaXR0ZXI8eyBGaXJzdE5hbWU6IHN0cmluZzsgTGFzdE5hbWU6IHN0cmluZzsgTWFpbEFkZHJlc3M6IHN0cmluZzsgUGFzc3dvcmQ6IHN0cmluZzsgQ29uZmlybVBhc3N3b3JkOiBzdHJpbmcgfT4oKTtcblxuICBnZXQgc3R5bGVzKCkge1xuICAgIHJldHVybiB7XG4gICAgICAnYmFja2dyb3VuZC1jb2xvcic6IHRoaXMuYmdDb2xvcixcbiAgICAgICdib3gtc2hhZG93JzogdGhpcy5ib3hTaGFkb3csXG4gICAgICAnYm9yZGVyJzogdGhpcy5ib3JkZXIsXG4gICAgICAnYm9yZGVyLXJhZGl1cyc6IHRoaXMuYm9yZGVyUmFkaXVzLFxuICAgICAgJ2NvbG9yJzogdGhpcy50ZXh0Q29sb3IsXG4gICAgICAnbWF4LXdpZHRoJzogdGhpcy53aWR0aCxcbiAgICAgICdtYXJnaW4nOiAnMCBhdXRvJyxcbiAgICAgICdoZWlnaHQnOiB0aGlzLmhlaWdodCxcbiAgICAgICdwYWRkaW5nJzogdGhpcy5wZCxcbiAgICB9O1xuICB9XG5cbiAgc3VibWl0Rm9ybSgpIHtcbiAgICB0aGlzLmZvcm1TdWJtaXQuZW1pdCh7XG4gICAgICBGaXJzdE5hbWU6IHRoaXMuZk5hbWUsXG4gICAgICBMYXN0TmFtZTogdGhpcy5sTmFtZSxcbiAgICAgIE1haWxBZGRyZXNzOiB0aGlzLmVtYWlsLFxuICAgICAgUGFzc3dvcmQ6IHRoaXMucHdkLFxuICAgICAgQ29uZmlybVBhc3N3b3JkOiB0aGlzLmNQd2RcbiAgICB9KTtcbiAgfVxufVxuIiwiPHNlY3Rpb24gW25nU3R5bGVdPVwic3R5bGVzXCIgY2xhc3M9XCJ7eyBjdXN0b21DbGFzcyB9fVwiPlxuICA8aDIgY2xhc3M9XCJmb250LW1lZGl1bSB0ZXh0LVsycmVtXSBsZWFkaW5nLVs0OHB4XSB0ZXh0LVsjMzMzXVwiPlxuICAgIFJlcXVlc3QgQW4gQWNjb3VudFxuICA8L2gyPlxuICA8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LWNvbCBnYXAtNSBtdC0zXCI+XG4gICAgPHZlcmJlbmEtaW5wdXRcbiAgICAgIFtsYWJlbF09XCInRmlyc3QgTmFtZSdcIlxuICAgICAgW2xhYmVsQ29sb3JdPVwiJyM2NjYnXCJcbiAgICAgIFtwbGFjZUhvbGRlcl09XCInJ1wiXG4gICAgICBbcmVxdWlyZWRdPVwidHJ1ZVwiXG4gICAgICBbdHlwZV09XCIndGV4dCdcIlxuICAgICAgWyh2YWx1ZSldPVwiZk5hbWVcIlxuICAgICAgW3Nob3dCb3JkZXJdPVwidHJ1ZVwiXG4gICAgICBbYmdDb2xvcl09XCInd2hpdGUnXCJcbiAgICAgIFtib3JkZXJdPVwiJzFweCBzb2xpZCAjNjY2NjY2NTknXCJcbiAgICAgIFtib3JkZXJSYWRpdXNdPVwiJzEycHgnXCJcbiAgICAgIFtzaG93RXJyb3JNZXNzYWdlXT1cInRydWVcIlxuICAgICAgW2Vycm9yTWVzc2FnZUNvbG9yXT1cIidyZWQnXCJcbiAgICAgIFtlcnJvckJvcmRlckNvbG9yXT1cIidyZWQnXCJcbiAgICAgIFtlcnJvclBvc2l0aW9uXT1cIidib3R0b20nXCJcbiAgICAgIGNsYXNzPVwib3V0bGluZS1ub25lIGZvY3VzLW5vbmVcIlxuICAgID48L3ZlcmJlbmEtaW5wdXQ+XG4gICAgPHZlcmJlbmEtaW5wdXRcbiAgICAgIFtsYWJlbF09XCInTGFzdCBOYW1lJ1wiXG4gICAgICBbbGFiZWxDb2xvcl09XCInIzY2NidcIlxuICAgICAgW3BsYWNlSG9sZGVyXT1cIicnXCJcbiAgICAgIFtyZXF1aXJlZF09XCJ0cnVlXCJcbiAgICAgIFt0eXBlXT1cIid0ZXh0J1wiXG4gICAgICBbKHZhbHVlKV09XCJsTmFtZVwiXG4gICAgICBbc2hvd0JvcmRlcl09XCJ0cnVlXCJcbiAgICAgIFtiZ0NvbG9yXT1cIid3aGl0ZSdcIlxuICAgICAgW2JvcmRlcl09XCInMXB4IHNvbGlkICM2NjY2NjY1OSdcIlxuICAgICAgW2JvcmRlclJhZGl1c109XCInMTJweCdcIlxuICAgICAgW3Nob3dFcnJvck1lc3NhZ2VdPVwidHJ1ZVwiXG4gICAgICBbZXJyb3JNZXNzYWdlQ29sb3JdPVwiJ3JlZCdcIlxuICAgICAgW2Vycm9yQm9yZGVyQ29sb3JdPVwiJ3JlZCdcIlxuICAgICAgW2Vycm9yUG9zaXRpb25dPVwiJ2JvdHRvbSdcIlxuICAgICAgY2xhc3M9XCJvdXRsaW5lLW5vbmUgZm9jdXMtbm9uZVwiXG4gICAgPjwvdmVyYmVuYS1pbnB1dD5cbiAgICA8dmVyYmVuYS1pbnB1dFxuICAgICAgW2xhYmVsXT1cIidFLW1haWwgQWRkcmVzcydcIlxuICAgICAgW2xhYmVsQ29sb3JdPVwiJyM2NjYnXCJcbiAgICAgIFtwbGFjZUhvbGRlcl09XCInJ1wiXG4gICAgICBbcmVxdWlyZWRdPVwidHJ1ZVwiXG4gICAgICBbdHlwZV09XCInZW1haWwnXCJcbiAgICAgIFsodmFsdWUpXT1cImVtYWlsXCJcbiAgICAgIFtzaG93Qm9yZGVyXT1cInRydWVcIlxuICAgICAgW2JnQ29sb3JdPVwiJ3doaXRlJ1wiXG4gICAgICBbYm9yZGVyXT1cIicxcHggc29saWQgIzY2NjY2NjU5J1wiXG4gICAgICBbYm9yZGVyUmFkaXVzXT1cIicxMnB4J1wiXG4gICAgICBbc2hvd0Vycm9yTWVzc2FnZV09XCJ0cnVlXCJcbiAgICAgIFtlcnJvck1lc3NhZ2VDb2xvcl09XCIncmVkJ1wiXG4gICAgICBbZXJyb3JCb3JkZXJDb2xvcl09XCIncmVkJ1wiXG4gICAgICBbZXJyb3JQb3NpdGlvbl09XCInYm90dG9tJ1wiXG4gICAgICBjbGFzcz1cIm91dGxpbmUtbm9uZSBmb2N1cy1ub25lXCJcbiAgICA+PC92ZXJiZW5hLWlucHV0PlxuXG4gICAgPHZlcmJlbmEtaW5wdXRcbiAgICAgIFtsYWJlbF09XCInUGFzc3dvcmQnXCJcbiAgICAgIFtsYWJlbENvbG9yXT1cIicjNjY2J1wiXG4gICAgICBbcGxhY2VIb2xkZXJdPVwiJydcIlxuICAgICAgW3JlcXVpcmVkXT1cInRydWVcIlxuICAgICAgW3R5cGVdPVwiJ3Bhc3N3b3JkJ1wiXG4gICAgICBbKHZhbHVlKV09XCJwd2RcIlxuICAgICAgW3Nob3dCb3JkZXJdPVwidHJ1ZVwiXG4gICAgICBbYmdDb2xvcl09XCInd2hpdGUnXCJcbiAgICAgIFtib3JkZXJdPVwiJzFweCBzb2xpZCAjNjY2NjY2NTknXCJcbiAgICAgIFtib3JkZXJSYWRpdXNdPVwiJzEycHgnXCJcbiAgICAgIFtzaG93RXJyb3JNZXNzYWdlXT1cInRydWVcIlxuICAgICAgW2Vycm9yTWVzc2FnZUNvbG9yXT1cIidyZWQnXCJcbiAgICAgIFtlcnJvckJvcmRlckNvbG9yXT1cIidyZWQnXCJcbiAgICAgIFtlcnJvclBvc2l0aW9uXT1cIidib3R0b20nXCJcbiAgICAgIGNsYXNzPVwib3V0bGluZS1ub25lIGZvY3VzLW5vbmVcIlxuICAgID48L3ZlcmJlbmEtaW5wdXQ+XG5cbiAgICA8dmVyYmVuYS1pbnB1dFxuICAgICAgW2xhYmVsXT1cIidDb25maXJtIFBhc3N3b3JkJ1wiXG4gICAgICBbbGFiZWxDb2xvcl09XCInIzY2NidcIlxuICAgICAgW3BsYWNlSG9sZGVyXT1cIicnXCJcbiAgICAgIFtyZXF1aXJlZF09XCJ0cnVlXCJcbiAgICAgIFt0eXBlXT1cIidwYXNzd29yZCdcIlxuICAgICAgWyh2YWx1ZSldPVwiY1B3ZFwiXG4gICAgICBbc2hvd0JvcmRlcl09XCJ0cnVlXCJcbiAgICAgIFtiZ0NvbG9yXT1cIid3aGl0ZSdcIlxuICAgICAgW2JvcmRlcl09XCInMXB4IHNvbGlkICM2NjY2NjY1OSdcIlxuICAgICAgW2JvcmRlclJhZGl1c109XCInMTJweCdcIlxuICAgICAgW3Nob3dFcnJvck1lc3NhZ2VdPVwidHJ1ZVwiXG4gICAgICBbZXJyb3JNZXNzYWdlQ29sb3JdPVwiJ3JlZCdcIlxuICAgICAgW2Vycm9yQm9yZGVyQ29sb3JdPVwiJ3JlZCdcIlxuICAgICAgW2Vycm9yUG9zaXRpb25dPVwiJ2JvdHRvbSdcIlxuICAgICAgY2xhc3M9XCJvdXRsaW5lLW5vbmUgZm9jdXMtbm9uZVwiXG4gICAgPjwvdmVyYmVuYS1pbnB1dD5cblxuICAgIDxwIGNsYXNzPVwidGV4dC1bIzY2NjY2Nl0gdGV4dC1zbVwiPlxuICAgICAgPGlucHV0IGNsYXNzPVwiYWNjZW50XCIgdHlwZT1cImNoZWNrYm94XCIgLz5cbiAgICAgIEJ5IGNyZWF0aW5nIGFuIGFjY291bnQsIEkgYWdyZWUgdG8gb3VyPGJyIC8+XG4gICAgICA8YSBocmVmPVwiI1wiIGNsYXNzPVwidGV4dC1ibGFjayB0ZXh0LXNtIGZvbnQtWzUwMF0gdW5kZXJsaW5lXCJcbiAgICAgICAgPlRlcm1zIG9mIHVzZTwvYVxuICAgICAgPlxuICAgICAgYW5kXG4gICAgICA8YSBocmVmPVwiI1wiIGNsYXNzPVwidGV4dC1ibGFjayBmb250LVs1MDBdIHRleHQtc20gdW5kZXJsaW5lXCJcbiAgICAgICAgPlByaXZhY3kgUG9saWN5XG4gICAgICA8L2E+XG4gICAgPC9wPlxuICAgIDx2ZXJiZW5hLWJ1dHRvblxuICAgICAgW3RleHRdPVwidGV4dFwiXG4gICAgICBbYmdDb2xvcl09XCJidG5CZ0NvbG9yXCJcbiAgICAgIFt0ZXh0Q29sb3JdPVwiY29sb3JcIlxuICAgICAgW2JvcmRlcl09XCJidG5Cb3JkZXJcIlxuICAgICAgW2JvcmRlclJhZGl1c109XCJidG5Cb3JkZXJSYWRpdXNcIlxuICAgICAgW3BkXT1cImJ0blBkXCJcbiAgICAgIChjbGljayk9XCJzdWJtaXRGb3JtKClcIlxuICAgICAgW3dpZHRoXT1cImJ0bldpZHRoXCJcbiAgICAgIGJ1dHRvbkNsYXNzPVwiZm9udC1tZWRpdW0gdGV4dC1bMjJweF0gbGVhZGluZy1bMzNweF1cIlxuICAgID48L3ZlcmJlbmEtYnV0dG9uPlxuICAgIDxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtY29sIGdhcC00XCI+XG4gICAgICA8ZGl2IGNsYXNzPVwiZmxleCBpdGVtcy1jZW50ZXIgZ2FwLTJcIj5cbiAgICAgICAgPGhyIGNsYXNzPVwiZmxleC0xIGJvcmRlci1yIGJvcmRlci1bIzY2NjY2NjQwXVwiIC8+XG4gICAgICAgIDxzcGFuIGNsYXNzPVwibXgtMiB0ZXh0LVsjNjY2NjY2XVwiPk9SPC9zcGFuPlxuICAgICAgICA8aHIgY2xhc3M9XCJmbGV4LTEgYm9yZGVyLXIgYm9yZGVyLVsjNjY2NjY2NDBdXCIgLz5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuXG4gICAgPHZlcmJlbmEtYnV0dG9uXG4gICAgICBzdmc9XCJnb29nbGUtbG9nb1wiXG4gICAgICBbc3ZnSGVpZ2h0XT1cIjI0XCJcbiAgICAgIFtzdmdXaWR0aF09XCIyNFwiXG4gICAgICB0ZXh0PVwiQ29udGludWUgd2l0aCBHb29nbGVcIlxuICAgICAgYmdDb2xvcj1cIndoaXRlXCJcbiAgICAgIHRleHRDb2xvcj1cImJsYWNrXCJcbiAgICAgIGJvcmRlcj1cIjFweCBzb2xpZCAjMzMzXCJcbiAgICAgIGJvcmRlclJhZGl1cz1cIjQwcHhcIlxuICAgICAgcGQ9XCIxMHB4IDIwcHhcIlxuICAgICAgd2lkdGg9XCIxMDAlXCJcbiAgICAgIHN2Z1Bvc2l0aW9uPVwibGVmdFwiXG4gICAgICBidXR0b25DbGFzcz1cImZvbnQtbm9ybWFsIHRleHQtWzI0cHhdIGxlYWRpbmctWzI5LjA1cHhdIHRleHQtWyMzMzNdXCJcbiAgICA+PC92ZXJiZW5hLWJ1dHRvbj5cblxuICAgIDx2ZXJiZW5hLWJ1dHRvblxuICAgICAgc3ZnPVwiYXBwbGUtbG9nb1wiXG4gICAgICBbc3ZnSGVpZ2h0XT1cIjI0XCJcbiAgICAgIFtzdmdXaWR0aF09XCIyNFwiXG4gICAgICB0ZXh0PVwiQ29udGludWUgd2l0aCBBcHBsZVwiXG4gICAgICBiZ0NvbG9yPVwid2hpdGVcIlxuICAgICAgdGV4dENvbG9yPVwiYmxhY2tcIlxuICAgICAgYm9yZGVyPVwiMXB4IHNvbGlkICMzMzNcIlxuICAgICAgYm9yZGVyUmFkaXVzPVwiNDBweFwiXG4gICAgICBwZD1cIjEwcHggMjBweFwiXG4gICAgICB3aWR0aD1cIjEwMCVcIlxuICAgICAgc3ZnUG9zaXRpb249XCJsZWZ0XCJcbiAgICAgIGJ1dHRvbkNsYXNzPVwiZm9udC1ub3JtYWwgdGV4dC1bMjRweF0gbGVhZGluZy1bMjkuMDVweF0gdGV4dC1bIzMzM10gbXQtMlwiXG4gICAgPjwvdmVyYmVuYS1idXR0b24+XG4gIDwvZGl2PlxuPC9zZWN0aW9uPlxuIl19
143
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci1yZXF1ZXN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3ZlcmJlbi1hdXRoZW50aWNhdGlvbi11aS9zcmMvbGliL2NvbXBvbmVudHMvdXNlci1yZXF1ZXN0L3VzZXItcmVxdWVzdC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92ZXJiZW4tYXV0aGVudGljYXRpb24tdWkvc3JjL2xpYi9jb21wb25lbnRzL3VzZXItcmVxdWVzdC91c2VyLXJlcXVlc3QuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN2RSxPQUFPLEVBQWdDLFdBQVcsRUFBK0IsVUFBVSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7Ozs7O0FBT3BILE1BQU0sT0FBTyxvQkFBb0I7SUE4Qlg7SUE3QlgsS0FBSyxHQUFXLE9BQU8sQ0FBQztJQUN4QixZQUFZLEdBQVEsb0JBQW9CLENBQUE7SUFDekMsWUFBWSxHQUFRLG9EQUFvRCxDQUFBO0lBQ3ZFLFdBQVcsR0FBVyxFQUFFLENBQUM7SUFDekIsT0FBTyxHQUFXLE1BQU0sQ0FBQztJQUN6QixTQUFTLEdBQVcsaUNBQWlDLENBQUM7SUFDdEQsTUFBTSxHQUFXLHFCQUFxQixDQUFDO0lBQ3ZDLFlBQVksR0FBVyxNQUFNLENBQUM7SUFDOUIsU0FBUyxHQUFXLE1BQU0sQ0FBQztJQUMzQixNQUFNLEdBQVcsTUFBTSxDQUFDO0lBQ3hCLEVBQUUsR0FBVyxXQUFXLENBQUM7SUFFbEMsZ0JBQWdCO0lBQ1AsSUFBSSxHQUFXLGNBQWMsQ0FBQztJQUM5QixLQUFLLEdBQVcsT0FBTyxDQUFDO0lBQ3hCLFNBQVMsR0FBVyxtQkFBbUIsQ0FBQztJQUN4QyxlQUFlLEdBQVcsTUFBTSxDQUFDO0lBQ2pDLFVBQVUsR0FBVyxTQUFTLENBQUM7SUFDL0IsUUFBUSxHQUFXLE1BQU0sQ0FBQztJQUMxQixLQUFLLEdBQVcsV0FBVyxDQUFDO0lBQzVCLFNBQVMsR0FBVyxFQUFFLENBQUM7SUFDdkIsV0FBVyxHQUFXLEVBQUUsQ0FBQztJQUN6QixVQUFVLEdBQVcsRUFBRSxDQUFDO0lBQ3ZCLFVBQVUsR0FBRyxJQUFJLFlBQVksRUFBeUgsQ0FBQztJQUN2SixXQUFXLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztJQUNqQyxVQUFVLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztJQUUxQyxlQUFlLENBQVk7SUFFM0IsWUFBb0IsRUFBZTtRQUFmLE9BQUUsR0FBRixFQUFFLENBQWE7UUFDakMsSUFBSSxDQUFDLGVBQWUsR0FBRyxJQUFJLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FDbEM7WUFDRSxTQUFTLEVBQUUsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLENBQUM7WUFDeEMsUUFBUSxFQUFFLENBQUMsSUFBSSxFQUFFLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBQ3ZDLFdBQVcsRUFBRSxDQUFDLElBQUksRUFBRSxDQUFDLFVBQVUsQ0FBQyxRQUFRLEVBQUUsVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQzVELFFBQVEsRUFBRSxDQUFDLElBQUksRUFBRSxDQUFDLFVBQVUsQ0FBQyxRQUFRLEVBQUUsVUFBVSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ2hFLGVBQWUsRUFBRSxDQUFDLElBQUksRUFBRSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUM5QyxLQUFLLEVBQUMsQ0FBRSxJQUFJLFdBQVcsQ0FBVSxLQUFLLEVBQUUsQ0FBQyxVQUFVLENBQUMsWUFBWSxDQUFDLENBQUMsRUFBRTtTQUNyRSxFQUNELEVBQUUsVUFBVSxFQUFFLElBQUksQ0FBQyxzQkFBc0IsRUFBRSxDQUM1QyxDQUFDO0lBQ0osQ0FBQztJQUNELHNCQUFzQixDQUFDLE9BQXdCO1FBQzdDLE1BQU0sUUFBUSxHQUFHLE9BQU8sQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLEVBQUUsS0FBSyxDQUFDO1FBQ2hELE1BQU0sZUFBZSxHQUFHLE9BQU8sQ0FBQyxHQUFHLENBQUMsaUJBQWlCLENBQUMsRUFBRSxLQUFLLENBQUM7UUFFOUQsT0FBTyxRQUFRLEtBQUssZUFBZSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsZ0JBQWdCLEVBQUUsSUFBSSxFQUFFLENBQUM7SUFDMUUsQ0FBQztJQUVELElBQUkscUJBQXFCO1FBQ3ZCLE9BQU8sSUFBSSxDQUFDLGVBQWUsQ0FBQyxRQUFRLENBQUMsa0JBQWtCLENBQUMsQ0FBQztJQUMzRCxDQUFDO0lBQ0QsSUFBSSxNQUFNO1FBQ1IsT0FBTztZQUNMLGtCQUFrQixFQUFFLElBQUksQ0FBQyxPQUFPO1lBQ2hDLFlBQVksRUFBRSxJQUFJLENBQUMsU0FBUztZQUM1QixRQUFRLEVBQUUsSUFBSSxDQUFDLE1BQU07WUFDckIsZUFBZSxFQUFFLElBQUksQ0FBQyxZQUFZO1lBQ2xDLE9BQU8sRUFBRSxJQUFJLENBQUMsU0FBUztZQUN2QixXQUFXLEVBQUUsSUFBSSxDQUFDLEtBQUs7WUFDdkIsUUFBUSxFQUFFLElBQUksQ0FBQyxNQUFNO1lBQ3JCLFNBQVMsRUFBRSxJQUFJLENBQUMsRUFBRTtTQUNuQixDQUFDO0lBQ0osQ0FBQztJQUNELFNBQVM7UUFDUCxPQUFPLElBQUksQ0FBQyxlQUFlLENBQUMsS0FBSyxDQUFDO0lBQ3BDLENBQUM7SUFDRCxnQkFBZ0I7UUFDZCxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksRUFBRSxDQUFDO0lBQzFCLENBQUM7SUFDRCxlQUFlO1FBQ2IsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUN6QixDQUFDO0lBQ0QsVUFBVTtRQUNSLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLEVBQUUsQ0FBQztZQUN0QixPQUFPO1FBQ1QsQ0FBQztRQUNELElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDO1lBQ25CLFNBQVMsRUFBRSxJQUFJLENBQUMsZUFBZSxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsQ0FBQyxLQUFLO1lBQzNELFFBQVEsRUFBRSxJQUFJLENBQUMsZUFBZSxDQUFDLFFBQVEsQ0FBQyxVQUFVLENBQUMsQ0FBQyxLQUFLO1lBQ3pELFdBQVcsRUFBQyxJQUFJLENBQUMsZUFBZSxDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQUMsQ0FBQyxLQUFLO1lBQzlELFFBQVEsRUFBRSxJQUFJLENBQUMsZUFBZSxDQUFDLFFBQVEsQ0FBQyxVQUFVLENBQUMsQ0FBQyxLQUFLO1lBQ3pELGVBQWUsRUFBQyxJQUFJLENBQUMsZUFBZSxDQUFDLFFBQVEsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLEtBQUs7WUFDdEUsS0FBSyxFQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDLEtBQUs7U0FDbkQsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzt1R0F0RlUsb0JBQW9COzJGQUFwQixvQkFBb0IsaW9CQ1JqQyxxOUpBbUtBOzsyRkQzSmEsb0JBQW9CO2tCQUxoQyxTQUFTOytCQUNFLGtCQUFrQjtnRkFLbkIsS0FBSztzQkFBYixLQUFLO2dCQUNHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBQ0UsWUFBWTtzQkFBbkIsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQUNHLE1BQU07c0JBQWQsS0FBSztnQkFDRyxZQUFZO3NCQUFwQixLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csTUFBTTtzQkFBZCxLQUFLO2dCQUNHLEVBQUU7c0JBQVYsS0FBSztnQkFHRyxJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csS0FBSztzQkFBYixLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csZUFBZTtzQkFBdkIsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csS0FBSztzQkFBYixLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUNJLFVBQVU7c0JBQW5CLE1BQU07Z0JBQ0csV0FBVztzQkFBcEIsTUFBTTtnQkFDRyxVQUFVO3NCQUFuQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFic3RyYWN0Q29udHJvbCwgRm9ybUJ1aWxkZXIsIEZvcm1Db250cm9sLCBGb3JtR3JvdXAsIFZhbGlkYXRpb25FcnJvcnMsIFZhbGlkYXRvcnMgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2xpYi11c2VyLXJlcXVlc3QnLFxuICB0ZW1wbGF0ZVVybDogJy4vdXNlci1yZXF1ZXN0LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vdXNlci1yZXF1ZXN0LmNvbXBvbmVudC5jc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBVc2VyUmVxdWVzdENvbXBvbmVudCB7XG4gIEBJbnB1dCgpIHdpZHRoOiBzdHJpbmcgPSAnNTAwcHgnO1xuICBASW5wdXQoKSBoZWFkaW5nVGl0bGU6c3RyaW5nPVwiUmVxdWVzdCBhbiBhY2NvdW50XCJcbiAgQElucHV0KCloZWFkaW5nQ2xhc3M6c3RyaW5nPVwiZm9udC1tZWRpdW0gdGV4dC1bMnJlbV0gbGVhZGluZy1bNDhweF0gdGV4dC1bIzMzM11cIlxuICBASW5wdXQoKSBjdXN0b21DbGFzczogc3RyaW5nID0gJyc7XG4gIEBJbnB1dCgpIGJnQ29sb3I6IHN0cmluZyA9ICcjZmZmJztcbiAgQElucHV0KCkgYm94U2hhZG93OiBzdHJpbmcgPSAnNHB4IDRweCA0cHggcmdiYSgwLCAwLCAwLCAwLjI1KSc7XG4gIEBJbnB1dCgpIGJvcmRlcjogc3RyaW5nID0gJzFweCBzb2xpZCAjNjY2NjY2ODAnO1xuICBASW5wdXQoKSBib3JkZXJSYWRpdXM6IHN0cmluZyA9ICcyNHB4JztcbiAgQElucHV0KCkgdGV4dENvbG9yOiBzdHJpbmcgPSAnIzMzMyc7XG4gIEBJbnB1dCgpIGhlaWdodDogc3RyaW5nID0gJ2F1dG8nO1xuICBASW5wdXQoKSBwZDogc3RyaW5nID0gJzMycHggNDhweCc7XG4gIFxuICAvLyBCdXR0b24gSW5wdXRzXG4gIEBJbnB1dCgpIHRleHQ6IHN0cmluZyA9ICdTZW5kIFJlcXVlc3QnO1xuICBASW5wdXQoKSBjb2xvcjogc3RyaW5nID0gJ2JsYWNrJztcbiAgQElucHV0KCkgYnRuQm9yZGVyOiBzdHJpbmcgPSAnMXB4IHNvbGlkICNGRkU2ODEnO1xuICBASW5wdXQoKSBidG5Cb3JkZXJSYWRpdXM6IHN0cmluZyA9IFwiNDBweFwiO1xuICBASW5wdXQoKSBidG5CZ0NvbG9yOiBzdHJpbmcgPSAnI0ZGRTY4MSc7XG4gIEBJbnB1dCgpIGJ0bldpZHRoOiBzdHJpbmcgPSAnMTAwJSc7XG4gIEBJbnB1dCgpIGJ0blBkOiBzdHJpbmcgPSAnMTBweCAyMHB4JztcbiAgQElucHV0KCkgdGVybXNMaW5rOiBzdHJpbmcgPSAnJztcbiAgQElucHV0KCkgcHJpdmFjeUxpbms6IHN0cmluZyA9ICcnO1xuICBASW5wdXQoKSByb3V0ZXJMaW5rOiBzdHJpbmcgPSAnJztcbiAgQE91dHB1dCgpIGZvcm1TdWJtaXQgPSBuZXcgRXZlbnRFbWl0dGVyPHsgRmlyc3ROYW1lOiBzdHJpbmc7IExhc3ROYW1lOiBzdHJpbmc7IE1haWxBZGRyZXNzOiBzdHJpbmc7IFBhc3N3b3JkOiBzdHJpbmc7IENvbmZpcm1QYXNzd29yZDogc3RyaW5nLFRlcm1zOmJvb2xlYW4gfT4oKTtcbiAgQE91dHB1dCgpIGdvb2dsZUNsaWNrID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICBAT3V0cHV0KCkgYXBwbGVDbGljayA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgXG4gIHVzZXJSZXF1ZXN0Rm9ybTogRm9ybUdyb3VwO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgZmI6IEZvcm1CdWlsZGVyKSB7XG4gICAgdGhpcy51c2VyUmVxdWVzdEZvcm0gPSB0aGlzLmZiLmdyb3VwKFxuICAgICAge1xuICAgICAgICBGaXJzdE5hbWU6IFtudWxsLCBbVmFsaWRhdG9ycy5yZXF1aXJlZF1dLFxuICAgICAgICBMYXN0TmFtZTogW251bGwsIFtWYWxpZGF0b3JzLnJlcXVpcmVkXV0sXG4gICAgICAgIE1haWxBZGRyZXNzOiBbbnVsbCwgW1ZhbGlkYXRvcnMucmVxdWlyZWQsIFZhbGlkYXRvcnMuZW1haWxdXSxcbiAgICAgICAgUGFzc3dvcmQ6IFtudWxsLCBbVmFsaWRhdG9ycy5yZXF1aXJlZCwgVmFsaWRhdG9ycy5taW5MZW5ndGgoOCldXSxcbiAgICAgICAgQ29uZmlybVBhc3N3b3JkOiBbbnVsbCwgW1ZhbGlkYXRvcnMucmVxdWlyZWRdXSxcbiAgICAgICAgVGVybXM6WyBuZXcgRm9ybUNvbnRyb2w8Ym9vbGVhbj4oZmFsc2UsIFtWYWxpZGF0b3JzLnJlcXVpcmVkVHJ1ZV0pLF1cbiAgICAgIH0sXG4gICAgICB7IHZhbGlkYXRvcnM6IHRoaXMucGFzc3dvcmRNYXRjaFZhbGlkYXRvciB9XG4gICAgKTtcbiAgfVxuICBwYXNzd29yZE1hdGNoVmFsaWRhdG9yKGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbCk6IFZhbGlkYXRpb25FcnJvcnMgfCBudWxsIHtcbiAgICBjb25zdCBwYXNzd29yZCA9IGNvbnRyb2wuZ2V0KCdQYXNzd29yZCcpPy52YWx1ZTtcbiAgICBjb25zdCBjb25maXJtUGFzc3dvcmQgPSBjb250cm9sLmdldCgnQ29uZmlybVBhc3N3b3JkJyk/LnZhbHVlO1xuXG4gICAgcmV0dXJuIHBhc3N3b3JkID09PSBjb25maXJtUGFzc3dvcmQgPyBudWxsIDogeyBwYXNzd29yZE1pc21hdGNoOiB0cnVlIH07XG4gIH1cblxuICBnZXQgcGFzc3dvcmRNaXNtYXRjaEVycm9yKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLnVzZXJSZXF1ZXN0Rm9ybS5oYXNFcnJvcigncGFzc3dvcmRNaXNtYXRjaCcpO1xuICB9XG4gIGdldCBzdHlsZXMoKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgICdiYWNrZ3JvdW5kLWNvbG9yJzogdGhpcy5iZ0NvbG9yLFxuICAgICAgJ2JveC1zaGFkb3cnOiB0aGlzLmJveFNoYWRvdyxcbiAgICAgICdib3JkZXInOiB0aGlzLmJvcmRlcixcbiAgICAgICdib3JkZXItcmFkaXVzJzogdGhpcy5ib3JkZXJSYWRpdXMsXG4gICAgICAnY29sb3InOiB0aGlzLnRleHRDb2xvcixcbiAgICAgICdtYXgtd2lkdGgnOiB0aGlzLndpZHRoLFxuICAgICAgJ2hlaWdodCc6IHRoaXMuaGVpZ2h0LFxuICAgICAgJ3BhZGRpbmcnOiB0aGlzLnBkLFxuICAgIH07XG4gIH1cbiAgY2hlY2tGb3JtKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLnVzZXJSZXF1ZXN0Rm9ybS52YWxpZDtcbiAgfVxuICBoYW5kbGVHb29nbGVBdXRoKCkge1xuICAgIHRoaXMuZ29vZ2xlQ2xpY2suZW1pdCgpO1xuICB9XG4gIGhhbmRsZUFwcGxlQXV0aCgpIHtcbiAgICB0aGlzLmFwcGxlQ2xpY2suZW1pdCgpO1xuICB9XG4gIHN1Ym1pdEZvcm0oKSB7XG4gICAgaWYgKCF0aGlzLmNoZWNrRm9ybSgpKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMuZm9ybVN1Ym1pdC5lbWl0KHtcbiAgICAgIEZpcnN0TmFtZTogdGhpcy51c2VyUmVxdWVzdEZvcm0uY29udHJvbHNbXCJGaXJzdE5hbWVcIl0udmFsdWUsXG4gICAgICBMYXN0TmFtZTogdGhpcy51c2VyUmVxdWVzdEZvcm0uY29udHJvbHNbXCJMYXN0TmFtZVwiXS52YWx1ZSxcbiAgICAgIE1haWxBZGRyZXNzOnRoaXMudXNlclJlcXVlc3RGb3JtLmNvbnRyb2xzW1wiTWFpbEFkZHJlc3NcIl0udmFsdWUsXG4gICAgICBQYXNzd29yZDogdGhpcy51c2VyUmVxdWVzdEZvcm0uY29udHJvbHNbXCJQYXNzd29yZFwiXS52YWx1ZSxcbiAgICAgIENvbmZpcm1QYXNzd29yZDp0aGlzLnVzZXJSZXF1ZXN0Rm9ybS5jb250cm9sc1tcIkNvbmZpcm1QYXNzd29yZFwiXS52YWx1ZSxcbiAgICAgIFRlcm1zOnRoaXMudXNlclJlcXVlc3RGb3JtLmNvbnRyb2xzW1widGVybXNcIl0udmFsdWVcbiAgICB9KTtcbiAgfVxuICBcbn1cbiIsIjxzZWN0aW9uIFtuZ1N0eWxlXT1cInN0eWxlc1wiIGNsYXNzPVwie3sgY3VzdG9tQ2xhc3MgfX1cIj5cbiAgPGgyIGNsYXNzPVwie3sgaGVhZGluZ0NsYXNzIH19XCI+XG4gICAge3sgaGVhZGluZ1RpdGxlIH19XG4gIDwvaDI+XG5cbiAgPGZvcm1cbiAgICBbZm9ybUdyb3VwXT1cInVzZXJSZXF1ZXN0Rm9ybVwiXG4gICAgKG5nU3VibWl0KT1cInN1Ym1pdEZvcm0oKVwiXG4gICAgY2xhc3M9XCJmbGV4IGZsZXgtY29sIGdhcC01IG10LTNcIlxuICA+XG4gICAgPHZlcmJlbmEtaW5wdXRcbiAgICAgIFtsYWJlbF09XCInRmlyc3QgTmFtZSdcIlxuICAgICAgW2xhYmVsQ29sb3JdPVwiJyM2NjYnXCJcbiAgICAgIFtwbGFjZUhvbGRlcl09XCInJ1wiXG4gICAgICBbcmVxdWlyZWRdPVwidHJ1ZVwiXG4gICAgICBbdHlwZV09XCIndGV4dCdcIlxuICAgICAgZm9ybUNvbnRyb2xOYW1lPVwiRmlyc3ROYW1lXCJcbiAgICAgIFtzaG93Qm9yZGVyXT1cInRydWVcIlxuICAgICAgW2JnQ29sb3JdPVwiJ3doaXRlJ1wiXG4gICAgICBbYm9yZGVyXT1cIicxcHggc29saWQgIzY2NjY2NjU5J1wiXG4gICAgICBbYm9yZGVyUmFkaXVzXT1cIicxMnB4J1wiXG4gICAgICBbc2hvd0Vycm9yTWVzc2FnZV09XCJ0cnVlXCJcbiAgICAgIFtlcnJvck1lc3NhZ2VDb2xvcl09XCIncmVkJ1wiXG4gICAgICBbZXJyb3JCb3JkZXJDb2xvcl09XCIncmVkJ1wiXG4gICAgICBbZXJyb3JQb3NpdGlvbl09XCInYm90dG9tJ1wiXG4gICAgICBjbGFzcz1cIm91dGxpbmUtbm9uZSBmb2N1cy1ub25lXCJcbiAgICA+PC92ZXJiZW5hLWlucHV0PlxuICAgIDx2ZXJiZW5hLWlucHV0XG4gICAgICBbbGFiZWxdPVwiJ0xhc3QgTmFtZSdcIlxuICAgICAgW2xhYmVsQ29sb3JdPVwiJyM2NjYnXCJcbiAgICAgIFtwbGFjZUhvbGRlcl09XCInJ1wiXG4gICAgICBbcmVxdWlyZWRdPVwidHJ1ZVwiXG4gICAgICBbdHlwZV09XCIndGV4dCdcIlxuICAgICAgZm9ybUNvbnRyb2xOYW1lPVwiTGFzdE5hbWVcIlxuICAgICAgW3Nob3dCb3JkZXJdPVwidHJ1ZVwiXG4gICAgICBbYmdDb2xvcl09XCInd2hpdGUnXCJcbiAgICAgIFtib3JkZXJdPVwiJzFweCBzb2xpZCAjNjY2NjY2NTknXCJcbiAgICAgIFtib3JkZXJSYWRpdXNdPVwiJzEycHgnXCJcbiAgICAgIFtzaG93RXJyb3JNZXNzYWdlXT1cInRydWVcIlxuICAgICAgW2Vycm9yTWVzc2FnZUNvbG9yXT1cIidyZWQnXCJcbiAgICAgIFtlcnJvckJvcmRlckNvbG9yXT1cIidyZWQnXCJcbiAgICAgIFtlcnJvclBvc2l0aW9uXT1cIidib3R0b20nXCJcbiAgICAgIGNsYXNzPVwib3V0bGluZS1ub25lIGZvY3VzLW5vbmVcIlxuICAgID48L3ZlcmJlbmEtaW5wdXQ+XG4gICAgPHZlcmJlbmEtaW5wdXRcbiAgICAgIFtsYWJlbF09XCInRS1tYWlsIEFkZHJlc3MnXCJcbiAgICAgIFtsYWJlbENvbG9yXT1cIicjNjY2J1wiXG4gICAgICBbcGxhY2VIb2xkZXJdPVwiJydcIlxuICAgICAgW3JlcXVpcmVkXT1cInRydWVcIlxuICAgICAgW3R5cGVdPVwiJ2VtYWlsJ1wiXG4gICAgICBmb3JtQ29udHJvbE5hbWU9XCJNYWlsQWRkcmVzc1wiXG4gICAgICBbc2hvd0JvcmRlcl09XCJ0cnVlXCJcbiAgICAgIFtiZ0NvbG9yXT1cIid3aGl0ZSdcIlxuICAgICAgW2JvcmRlcl09XCInMXB4IHNvbGlkICM2NjY2NjY1OSdcIlxuICAgICAgW2JvcmRlclJhZGl1c109XCInMTJweCdcIlxuICAgICAgW3Nob3dFcnJvck1lc3NhZ2VdPVwidHJ1ZVwiXG4gICAgICBbZXJyb3JNZXNzYWdlQ29sb3JdPVwiJ3JlZCdcIlxuICAgICAgW2Vycm9yQm9yZGVyQ29sb3JdPVwiJ3JlZCdcIlxuICAgICAgW2Vycm9yUG9zaXRpb25dPVwiJ2JvdHRvbSdcIlxuICAgICAgY2xhc3M9XCJvdXRsaW5lLW5vbmUgZm9jdXMtbm9uZVwiXG4gICAgPjwvdmVyYmVuYS1pbnB1dD5cblxuICAgIDx2ZXJiZW5hLWlucHV0XG4gICAgICBbbGFiZWxdPVwiJ1Bhc3N3b3JkJ1wiXG4gICAgICBbbGFiZWxDb2xvcl09XCInIzY2NidcIlxuICAgICAgW3BsYWNlSG9sZGVyXT1cIicnXCJcbiAgICAgIGZvcm1Db250cm9sTmFtZT1cIlBhc3N3b3JkXCJcbiAgICAgIFtyZXF1aXJlZF09XCJ0cnVlXCJcbiAgICAgIFt0eXBlXT1cIidwYXNzd29yZCdcIlxuICAgICAgW3Nob3dCb3JkZXJdPVwidHJ1ZVwiXG4gICAgICBbYmdDb2xvcl09XCInd2hpdGUnXCJcbiAgICAgIFtib3JkZXJdPVwiJzFweCBzb2xpZCAjNjY2NjY2NTknXCJcbiAgICAgIFtib3JkZXJSYWRpdXNdPVwiJzEycHgnXCJcbiAgICAgIFtzaG93RXJyb3JNZXNzYWdlXT1cInRydWVcIlxuICAgICAgW2Vycm9yTWVzc2FnZUNvbG9yXT1cIidyZWQnXCJcbiAgICAgIFtlcnJvckJvcmRlckNvbG9yXT1cIidyZWQnXCJcbiAgICAgIFtlcnJvclBvc2l0aW9uXT1cIidib3R0b20nXCJcbiAgICAgIGNsYXNzPVwib3V0bGluZS1ub25lIGZvY3VzLW5vbmVcIlxuICAgID48L3ZlcmJlbmEtaW5wdXQ+XG5cbiAgICA8dmVyYmVuYS1pbnB1dFxuICAgICAgW2xhYmVsXT1cIidDb25maXJtIFBhc3N3b3JkJ1wiXG4gICAgICBbbGFiZWxDb2xvcl09XCInIzY2NidcIlxuICAgICAgW3BsYWNlSG9sZGVyXT1cIicnXCJcbiAgICAgIFtyZXF1aXJlZF09XCJ0cnVlXCJcbiAgICAgIFt0eXBlXT1cIidwYXNzd29yZCdcIlxuICAgICAgZm9ybUNvbnRyb2xOYW1lPVwiQ29uZmlybVBhc3N3b3JkXCJcbiAgICAgIFtzaG93Qm9yZGVyXT1cInRydWVcIlxuICAgICAgW2JnQ29sb3JdPVwiJ3doaXRlJ1wiXG4gICAgICBbYm9yZGVyXT1cIicxcHggc29saWQgIzY2NjY2NjU5J1wiXG4gICAgICBbYm9yZGVyUmFkaXVzXT1cIicxMnB4J1wiXG4gICAgICBbc2hvd0Vycm9yTWVzc2FnZV09XCJ0cnVlXCJcbiAgICAgIFtlcnJvck1lc3NhZ2VDb2xvcl09XCIncmVkJ1wiXG4gICAgICBbZXJyb3JCb3JkZXJDb2xvcl09XCIncmVkJ1wiXG4gICAgICBbZXJyb3JQb3NpdGlvbl09XCInYm90dG9tJ1wiXG4gICAgICBjbGFzcz1cIm91dGxpbmUtbm9uZSBmb2N1cy1ub25lXCJcbiAgICA+PC92ZXJiZW5hLWlucHV0PlxuXG4gICAgPHAgY2xhc3M9XCJ0ZXh0LVsjNjY2NjY2XSB0ZXh0LXNtXCI+XG4gICAgICA8aW5wdXQgY2xhc3M9XCJhY2NlbnRcIiB0eXBlPVwiY2hlY2tib3hcIiAvPlxuICAgICAgQnkgY3JlYXRpbmcgYW4gYWNjb3VudCwgSSBhZ3JlZSB0byBvdXI8YnIgLz5cbiAgICAgIDxhIFthdHRyLmhyZWZdPVwidGVybXNMaW5rXCIgY2xhc3M9XCJ0ZXh0LWJsYWNrIHRleHQtc20gZm9udC1bNTAwXSB1bmRlcmxpbmVcIlxuICAgICAgICA+VGVybXMgb2YgdXNlPC9hXG4gICAgICA+XG4gICAgICBhbmRcbiAgICAgIDxhIFthdHRyLmhyZWZdPVwicHJpdmFjeUxpbmtcIiBjbGFzcz1cInRleHQtYmxhY2sgZm9udC1bNTAwXSB0ZXh0LXNtIHVuZGVybGluZVwiXG4gICAgICAgID5Qcml2YWN5IFBvbGljeVxuICAgICAgPC9hPlxuICAgICAgPHAgKm5nSWY9XCJ1c2VyUmVxdWVzdEZvcm0uY29udHJvbHNbJ1Rlcm1zJ10uaW52YWxpZCAmJiB1c2VyUmVxdWVzdEZvcm0uY29udHJvbHNbJ1Rlcm1zJ10udG91Y2hlZFwiPlxuICAgICAgICA8c21hbGwgY2xhc3M9XCJlcnJvci10ZXh0XCI+UGxlYXNlIGFncmVlIHRvIHRoZSB0ZXJtcyBvZiB1c2UgYW5kIHByaXZhY3kgcG9saWN5Ljwvc21hbGw+XG4gICAgICAgPC9wPlxuICAgIFxuICAgIDx2ZXJiZW5hLWJ1dHRvblxuICAgICAgW2Rpc2FibGVdPVwiIXRoaXMuY2hlY2tGb3JtKClcIlxuICAgICAgW3RleHRdPVwidGV4dFwiXG4gICAgICBbYmdDb2xvcl09XCJidG5CZ0NvbG9yXCJcbiAgICAgIFt0ZXh0Q29sb3JdPVwiY29sb3JcIlxuICAgICAgW2JvcmRlcl09XCJidG5Cb3JkZXJcIlxuICAgICAgW2JvcmRlclJhZGl1c109XCJidG5Cb3JkZXJSYWRpdXNcIlxuICAgICAgW3BkXT1cImJ0blBkXCJcbiAgICAgIChjbGljayk9XCJzdWJtaXRGb3JtKClcIlxuICAgICAgW3dpZHRoXT1cImJ0bldpZHRoXCJcbiAgICAgIGJ1dHRvbkNsYXNzPVwiZm9udC1tZWRpdW0gdGV4dC1bMjJweF0gbGVhZGluZy1bMzNweF1cIlxuICAgID48L3ZlcmJlbmEtYnV0dG9uPlxuICAgIDxkaXYgY2xhc3M9XCJmbGV4IGp1c3RpZnktY2VudGVyIGl0ZW1zLWNlbnRlciBPUlwiPlxuICAgICAgPHNwYW4+PC9zcGFuPlxuICAgICAgT1JcbiAgICAgIDxzcGFuPjwvc3Bhbj5cbiAgPC9kaXY+XG5cbiAgICA8dmVyYmVuYS1idXR0b25cbiAgICAgIHN2Zz1cImdvb2dsZS1sb2dvXCJcbiAgICAgIFtzdmdIZWlnaHRdPVwiMjRcIlxuICAgICAgW3N2Z1dpZHRoXT1cIjI0XCJcbiAgICAgIChjbGljayk9XCJoYW5kbGVHb29nbGVBdXRoKClcIlxuICAgICAgdGV4dD1cIkNvbnRpbnVlIHdpdGggR29vZ2xlXCJcbiAgICAgIGJnQ29sb3I9XCJ3aGl0ZVwiXG4gICAgICB0ZXh0Q29sb3I9XCJibGFja1wiXG4gICAgICBib3JkZXI9XCIxcHggc29saWQgIzMzM1wiXG4gICAgICBib3JkZXJSYWRpdXM9XCI0MHB4XCJcbiAgICAgIHBkPVwiMTBweCAyMHB4XCJcbiAgICAgIHdpZHRoPVwiMTAwJVwiXG4gICAgICBzdmdQb3NpdGlvbj1cImxlZnRcIlxuICAgICAgYnV0dG9uQ2xhc3M9XCJmb250LW5vcm1hbCB0ZXh0LVsyNHB4XSBsZWFkaW5nLVsyOS4wNXB4XSB0ZXh0LVsjMzMzXVwiXG4gICAgPjwvdmVyYmVuYS1idXR0b24+XG5cbiAgICA8dmVyYmVuYS1idXR0b25cbiAgICAgIHN2Zz1cImFwcGxlLWxvZ29cIlxuICAgICAgKGNsaWNrKT1cImhhbmRsZUFwcGxlQXV0aCgpXCJcbiAgICAgIFtzdmdIZWlnaHRdPVwiMjRcIlxuICAgICAgW3N2Z1dpZHRoXT1cIjI0XCJcbiAgICAgIHRleHQ9XCJDb250aW51ZSB3aXRoIEFwcGxlXCJcbiAgICAgIGJnQ29sb3I9XCJ3aGl0ZVwiXG4gICAgICB0ZXh0Q29sb3I9XCJibGFja1wiXG4gICAgICBib3JkZXI9XCIxcHggc29saWQgIzMzM1wiXG4gICAgICBib3JkZXJSYWRpdXM9XCI0MHB4XCJcbiAgICAgIHBkPVwiMTBweCAyMHB4XCJcbiAgICAgIHdpZHRoPVwiMTAwJVwiXG4gICAgICBzdmdQb3NpdGlvbj1cImxlZnRcIlxuICAgICAgYnV0dG9uQ2xhc3M9XCJmb250LW5vcm1hbCB0ZXh0LVsyNHB4XSBsZWFkaW5nLVsyOS4wNXB4XSB0ZXh0LVsjMzMzXSBtdC0yXCJcbiAgICA+PC92ZXJiZW5hLWJ1dHRvbj5cbiAgPC9mb3JtPlxuPC9zZWN0aW9uPlxuIl19
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9nLWluLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdmVyYmVuLWF1dGhlbnRpY2F0aW9uLXVpL3NyYy9saWIvbW9kZWxzL2xvZy1pbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGludGVyZmFjZSBMb2dpbkRhdGF7IFxuICAgIEVtYWlsOnN0cmluZyxcbiAgICBQYXNzd29yZDpzdHJpbmcsXG4gIH0iXX0=
@@ -13,6 +13,19 @@ export * from './lib/components/user-request/user-request.module';
13
13
  //mail-validation
14
14
  export * from './lib/components/mail-validation/mail-validation.component';
15
15
  export * from './lib/components/mail-validation/mail-validation.module';
16
+ //sign up
16
17
  export * from './lib/components/sign-up/sign-up.component';
17
18
  export * from './lib/components/sign-up/sign-up.module';
18
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL3ZlcmJlbi1hdXRoZW50aWNhdGlvbi11aS9zcmMvcHVibGljLWFwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILDhDQUE4QztBQUM5QyxnREFBZ0Q7QUFFaEQsb0JBQW9CO0FBRXBCLGNBQWMsMERBQTBELENBQUM7QUFDekUsY0FBYyx1REFBdUQsQ0FBQztBQUN0RSxjQUFjLG1EQUFtRCxDQUFDO0FBQ2xFLGtCQUFrQjtBQUNsQixjQUFjLHNEQUFzRCxDQUFDO0FBQ3JFLGNBQWMsbURBQW1ELENBQUM7QUFDbEUsaUJBQWlCO0FBQ2pCLGNBQWMsNERBQTRELENBQUM7QUFDM0UsY0FBYyx5REFBeUQsQ0FBQztBQUV4RSxjQUFjLDRDQUE0QyxDQUFBO0FBQzFELGNBQWMseUNBQXlDLENBQUEiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogUHVibGljIEFQSSBTdXJmYWNlIG9mIHZlcmJlbi1uZy11aVxuICovXG5cbi8vIGV4cG9ydCAqIGZyb20gJy4vbGliL3ZlcmJlbi1uZy11aS5zZXJ2aWNlJztcbi8vIGV4cG9ydCAqIGZyb20gJy4vbGliL3ZlcmJlbi1uZy11aS5jb21wb25lbnQnO1xuXG4vLyBFeHBvcnRpbmcgbW9kdWxlc1xuXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL3Jlc2V0LXBhc3N3b3JkL3Jlc2V0LXBhc3N3b3JkLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL3Jlc2V0LXBhc3N3b3JkL3Jlc2V0LXBhc3N3b3JkLm1vZHVsZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL3Jlc2V0LXBhc3N3b3JkL1Jlc2V0UGFzc3dvcmREYXRhJztcbi8vdXNlci1yZXF1ZXN0LWxpYlxuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy91c2VyLXJlcXVlc3QvdXNlci1yZXF1ZXN0LmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL3VzZXItcmVxdWVzdC91c2VyLXJlcXVlc3QubW9kdWxlJztcbi8vbWFpbC12YWxpZGF0aW9uXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL21haWwtdmFsaWRhdGlvbi9tYWlsLXZhbGlkYXRpb24uY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvbWFpbC12YWxpZGF0aW9uL21haWwtdmFsaWRhdGlvbi5tb2R1bGUnO1xuXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL3NpZ24tdXAvc2lnbi11cC5jb21wb25lbnQnXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL3NpZ24tdXAvc2lnbi11cC5tb2R1bGUnXG4iXX0=
19
+ //sign in
20
+ export * from './lib/components/sign-in/sign-in.module';
21
+ export * from './lib/components/sign-in/sign-in.component';
22
+ //Otp
23
+ export * from './lib/components/two-factor-auth-otp/two-factor-auth-otp.module';
24
+ export * from './lib/components/two-factor-auth-otp/two-factor-auth-otp.component';
25
+ //2FA
26
+ export * from './lib/components/two-factor-auth-setup/two-factor-auth-setup.module';
27
+ export * from './lib/components/two-factor-auth-setup/two-factor-auth-setup.component';
28
+ //sign up
29
+ export * from './lib/components/mail/mail.module';
30
+ export * from './lib/components/mail/mail.component';
31
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL3ZlcmJlbi1hdXRoZW50aWNhdGlvbi11aS9zcmMvcHVibGljLWFwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILDhDQUE4QztBQUM5QyxnREFBZ0Q7QUFFaEQsb0JBQW9CO0FBRXBCLGNBQWMsMERBQTBELENBQUM7QUFDekUsY0FBYyx1REFBdUQsQ0FBQztBQUN0RSxjQUFjLG1EQUFtRCxDQUFDO0FBQ2xFLGtCQUFrQjtBQUNsQixjQUFjLHNEQUFzRCxDQUFDO0FBQ3JFLGNBQWMsbURBQW1ELENBQUM7QUFDbEUsaUJBQWlCO0FBQ2pCLGNBQWMsNERBQTRELENBQUM7QUFDM0UsY0FBYyx5REFBeUQsQ0FBQztBQUV4RSxTQUFTO0FBQ1QsY0FBYyw0Q0FBNEMsQ0FBQTtBQUMxRCxjQUFjLHlDQUF5QyxDQUFBO0FBQ3ZELFNBQVM7QUFDVCxjQUFjLHlDQUF5QyxDQUFBO0FBQ3ZELGNBQWMsNENBQTRDLENBQUE7QUFDMUQsS0FBSztBQUNMLGNBQWMsaUVBQWlFLENBQUE7QUFDL0UsY0FBYyxvRUFBb0UsQ0FBQTtBQUNsRixLQUFLO0FBQ0wsY0FBYyxxRUFBcUUsQ0FBQTtBQUNuRixjQUFjLHdFQUF3RSxDQUFBO0FBQ3RGLFNBQVM7QUFDVCxjQUFjLG1DQUFtQyxDQUFBO0FBQ2pELGNBQWMsc0NBQXNDLENBQUEiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogUHVibGljIEFQSSBTdXJmYWNlIG9mIHZlcmJlbi1uZy11aVxuICovXG5cbi8vIGV4cG9ydCAqIGZyb20gJy4vbGliL3ZlcmJlbi1uZy11aS5zZXJ2aWNlJztcbi8vIGV4cG9ydCAqIGZyb20gJy4vbGliL3ZlcmJlbi1uZy11aS5jb21wb25lbnQnO1xuXG4vLyBFeHBvcnRpbmcgbW9kdWxlc1xuXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL3Jlc2V0LXBhc3N3b3JkL3Jlc2V0LXBhc3N3b3JkLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL3Jlc2V0LXBhc3N3b3JkL3Jlc2V0LXBhc3N3b3JkLm1vZHVsZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL3Jlc2V0LXBhc3N3b3JkL1Jlc2V0UGFzc3dvcmREYXRhJztcbi8vdXNlci1yZXF1ZXN0LWxpYlxuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy91c2VyLXJlcXVlc3QvdXNlci1yZXF1ZXN0LmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL3VzZXItcmVxdWVzdC91c2VyLXJlcXVlc3QubW9kdWxlJztcbi8vbWFpbC12YWxpZGF0aW9uXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL21haWwtdmFsaWRhdGlvbi9tYWlsLXZhbGlkYXRpb24uY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvbWFpbC12YWxpZGF0aW9uL21haWwtdmFsaWRhdGlvbi5tb2R1bGUnO1xuXG4vL3NpZ24gdXBcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvc2lnbi11cC9zaWduLXVwLmNvbXBvbmVudCdcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvc2lnbi11cC9zaWduLXVwLm1vZHVsZSdcbi8vc2lnbiBpblxuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9zaWduLWluL3NpZ24taW4ubW9kdWxlJ1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9zaWduLWluL3NpZ24taW4uY29tcG9uZW50J1xuLy9PdHBcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvdHdvLWZhY3Rvci1hdXRoLW90cC90d28tZmFjdG9yLWF1dGgtb3RwLm1vZHVsZSdcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvdHdvLWZhY3Rvci1hdXRoLW90cC90d28tZmFjdG9yLWF1dGgtb3RwLmNvbXBvbmVudCdcbi8vMkZBXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL3R3by1mYWN0b3ItYXV0aC1zZXR1cC90d28tZmFjdG9yLWF1dGgtc2V0dXAubW9kdWxlJ1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy90d28tZmFjdG9yLWF1dGgtc2V0dXAvdHdvLWZhY3Rvci1hdXRoLXNldHVwLmNvbXBvbmVudCdcbi8vc2lnbiB1cFxuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9tYWlsL21haWwubW9kdWxlJ1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9tYWlsL21haWwuY29tcG9uZW50J1xuIl19