@openziti/ziti-console-lib 0.8.0 → 0.8.1
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.
- package/esm2022/lib/features/card-list/card-list.component.mjs +12 -11
- package/esm2022/lib/features/dynamic-widgets/password/password-input.component.mjs +13 -3
- package/esm2022/lib/features/dynamic-widgets/protocol-address-port/protocol-address-port-input.component.mjs +1 -1
- package/esm2022/lib/features/dynamic-widgets/string/string-input.component.mjs +13 -3
- package/esm2022/lib/features/login/login-dialog.component.mjs +123 -0
- package/esm2022/lib/features/projectable-forms/auth-policy/auth-policy-form.component.mjs +2 -2
- package/esm2022/lib/features/projectable-forms/auth-policy/auth-policy-form.service.mjs +3 -15
- package/esm2022/lib/features/projectable-forms/certificate-authority/certificate-authority-form.component.mjs +4 -3
- package/esm2022/lib/features/projectable-forms/certificate-authority/certificate-authority-form.service.mjs +3 -15
- package/esm2022/lib/features/projectable-forms/certificate-authority/verify-certificate/verify-certificate.component.mjs +2 -2
- package/esm2022/lib/features/projectable-forms/configuration/configuration-form.component.mjs +2 -2
- package/esm2022/lib/features/projectable-forms/configuration/configuration.service.mjs +3 -15
- package/esm2022/lib/features/projectable-forms/edge-router/edge-router-form.component.mjs +2 -2
- package/esm2022/lib/features/projectable-forms/edge-router/edge-router-form.service.mjs +3 -15
- package/esm2022/lib/features/projectable-forms/edge-router-policy/edge-router-policy-form.component.mjs +2 -2
- package/esm2022/lib/features/projectable-forms/edge-router-policy/edge-router-policy-form.service.mjs +3 -15
- package/esm2022/lib/features/projectable-forms/identity/identity-form.component.mjs +2 -2
- package/esm2022/lib/features/projectable-forms/identity/identity-form.service.mjs +3 -15
- package/esm2022/lib/features/projectable-forms/jwt-signer/jwt-signer-form.component.mjs +24 -4
- package/esm2022/lib/features/projectable-forms/jwt-signer/jwt-signer-form.service.mjs +3 -15
- package/esm2022/lib/features/projectable-forms/projectable-form.class.mjs +24 -4
- package/esm2022/lib/features/projectable-forms/service/service-form.component.mjs +2 -2
- package/esm2022/lib/features/projectable-forms/service/service-form.service.mjs +3 -15
- package/esm2022/lib/features/projectable-forms/service/simple-service/simple-service.component.mjs +5 -5
- package/esm2022/lib/features/projectable-forms/service-edge-router-policy/service-edge-router-policy-form.component.mjs +2 -2
- package/esm2022/lib/features/projectable-forms/service-edge-router-policy/service-edge-router-policy-form.service.mjs +3 -15
- package/esm2022/lib/features/projectable-forms/service-policy/service-policy-form.component.mjs +2 -2
- package/esm2022/lib/features/projectable-forms/service-policy/service-policy-form.service.mjs +3 -15
- package/esm2022/lib/features/projectable-forms/terminator/terminator-form.component.mjs +2 -2
- package/esm2022/lib/features/wrappers/zac-wrapper.service.mjs +1 -4
- package/esm2022/lib/models/jwt-signer.mjs +2 -1
- package/esm2022/lib/pages/certificate-authorities/certificate-authorities-page.service.mjs +6 -3
- package/esm2022/lib/pages/service-policies/service-policies-page.component.mjs +2 -1
- package/esm2022/lib/services/login-service.class.mjs +5 -1
- package/esm2022/lib/services/node-data.service.mjs +8 -13
- package/esm2022/lib/services/validation.service.mjs +2 -2
- package/esm2022/lib/services/ziti-data.service.mjs +8 -2
- package/esm2022/lib/shared/list-page-service.class.mjs +4 -4
- package/esm2022/lib/ziti-console-lib.module.mjs +10 -5
- package/esm2022/public-api.mjs +2 -1
- package/fesm2022/openziti-ziti-console-lib.mjs +252 -196
- package/fesm2022/openziti-ziti-console-lib.mjs.map +1 -1
- package/lib/features/card-list/card-list.component.d.ts +3 -2
- package/lib/features/card-list/card-list.component.d.ts.map +1 -1
- package/lib/features/dynamic-widgets/password/password-input.component.d.ts +3 -1
- package/lib/features/dynamic-widgets/password/password-input.component.d.ts.map +1 -1
- package/lib/features/dynamic-widgets/string/string-input.component.d.ts +3 -1
- package/lib/features/dynamic-widgets/string/string-input.component.d.ts.map +1 -1
- package/lib/features/login/login-dialog.component.d.ts +29 -0
- package/lib/features/login/login-dialog.component.d.ts.map +1 -0
- package/lib/features/projectable-forms/auth-policy/auth-policy-form.component.d.ts +1 -1
- package/lib/features/projectable-forms/auth-policy/auth-policy-form.component.d.ts.map +1 -1
- package/lib/features/projectable-forms/auth-policy/auth-policy-form.service.d.ts.map +1 -1
- package/lib/features/projectable-forms/certificate-authority/certificate-authority-form.component.d.ts +1 -1
- package/lib/features/projectable-forms/certificate-authority/certificate-authority-form.component.d.ts.map +1 -1
- package/lib/features/projectable-forms/certificate-authority/certificate-authority-form.service.d.ts.map +1 -1
- package/lib/features/projectable-forms/certificate-authority/verify-certificate/verify-certificate.component.d.ts +1 -1
- package/lib/features/projectable-forms/certificate-authority/verify-certificate/verify-certificate.component.d.ts.map +1 -1
- package/lib/features/projectable-forms/configuration/configuration-form.component.d.ts +1 -1
- package/lib/features/projectable-forms/configuration/configuration-form.component.d.ts.map +1 -1
- package/lib/features/projectable-forms/configuration/configuration.service.d.ts.map +1 -1
- package/lib/features/projectable-forms/edge-router/edge-router-form.component.d.ts +1 -1
- package/lib/features/projectable-forms/edge-router/edge-router-form.component.d.ts.map +1 -1
- package/lib/features/projectable-forms/edge-router/edge-router-form.service.d.ts.map +1 -1
- package/lib/features/projectable-forms/edge-router-policy/edge-router-policy-form.component.d.ts +1 -1
- package/lib/features/projectable-forms/edge-router-policy/edge-router-policy-form.component.d.ts.map +1 -1
- package/lib/features/projectable-forms/edge-router-policy/edge-router-policy-form.service.d.ts.map +1 -1
- package/lib/features/projectable-forms/identity/identity-form.component.d.ts +1 -1
- package/lib/features/projectable-forms/identity/identity-form.component.d.ts.map +1 -1
- package/lib/features/projectable-forms/identity/identity-form.service.d.ts.map +1 -1
- package/lib/features/projectable-forms/jwt-signer/jwt-signer-form.component.d.ts +4 -1
- package/lib/features/projectable-forms/jwt-signer/jwt-signer-form.component.d.ts.map +1 -1
- package/lib/features/projectable-forms/jwt-signer/jwt-signer-form.service.d.ts.map +1 -1
- package/lib/features/projectable-forms/projectable-form.class.d.ts +5 -1
- package/lib/features/projectable-forms/projectable-form.class.d.ts.map +1 -1
- package/lib/features/projectable-forms/service/service-form.component.d.ts +1 -1
- package/lib/features/projectable-forms/service/service-form.component.d.ts.map +1 -1
- package/lib/features/projectable-forms/service/service-form.service.d.ts.map +1 -1
- package/lib/features/projectable-forms/service/simple-service/simple-service.component.d.ts +3 -2
- package/lib/features/projectable-forms/service/simple-service/simple-service.component.d.ts.map +1 -1
- package/lib/features/projectable-forms/service-edge-router-policy/service-edge-router-policy-form.component.d.ts +1 -1
- package/lib/features/projectable-forms/service-edge-router-policy/service-edge-router-policy-form.component.d.ts.map +1 -1
- package/lib/features/projectable-forms/service-edge-router-policy/service-edge-router-policy-form.service.d.ts.map +1 -1
- package/lib/features/projectable-forms/service-policy/service-policy-form.component.d.ts +1 -1
- package/lib/features/projectable-forms/service-policy/service-policy-form.component.d.ts.map +1 -1
- package/lib/features/projectable-forms/service-policy/service-policy-form.service.d.ts.map +1 -1
- package/lib/features/projectable-forms/terminator/terminator-form.component.d.ts +1 -1
- package/lib/features/projectable-forms/terminator/terminator-form.component.d.ts.map +1 -1
- package/lib/features/wrappers/zac-wrapper.service.d.ts.map +1 -1
- package/lib/models/jwt-signer.d.ts +1 -0
- package/lib/models/jwt-signer.d.ts.map +1 -1
- package/lib/pages/certificate-authorities/certificate-authorities-page.service.d.ts.map +1 -1
- package/lib/pages/service-policies/service-policies-page.component.d.ts.map +1 -1
- package/lib/services/login-service.class.d.ts +6 -2
- package/lib/services/login-service.class.d.ts.map +1 -1
- package/lib/services/node-data.service.d.ts +1 -0
- package/lib/services/node-data.service.d.ts.map +1 -1
- package/lib/services/ziti-data.service.d.ts +3 -0
- package/lib/services/ziti-data.service.d.ts.map +1 -1
- package/lib/ziti-console-lib.module.d.ts +19 -18
- package/lib/ziti-console-lib.module.d.ts.map +1 -1
- package/package.json +1 -1
- package/public-api.d.ts +1 -0
- package/public-api.d.ts.map +1 -1
|
@@ -7,12 +7,13 @@ import * as i0 from "@angular/core";
|
|
|
7
7
|
import * as i1 from "../projectable-forms/service/service-form.service";
|
|
8
8
|
import * as i2 from "../messaging/growler.service";
|
|
9
9
|
import * as i3 from "@angular/router";
|
|
10
|
-
import * as i4 from "
|
|
11
|
-
import * as i5 from "
|
|
12
|
-
import * as i6 from "../../services/
|
|
10
|
+
import * as i4 from "@angular/common";
|
|
11
|
+
import * as i5 from "../card/card.component";
|
|
12
|
+
import * as i6 from "../../services/settings.service";
|
|
13
|
+
import * as i7 from "../../services/ziti-data.service";
|
|
13
14
|
class CardListComponent extends ProjectableForm {
|
|
14
|
-
constructor(settingsService, svc, zitiService, growlerService, extService, router, route) {
|
|
15
|
-
super(growlerService, extService, zitiService, router, route);
|
|
15
|
+
constructor(settingsService, svc, zitiService, growlerService, extService, router, route, location) {
|
|
16
|
+
super(growlerService, extService, zitiService, router, route, location, settingsService);
|
|
16
17
|
this.settingsService = settingsService;
|
|
17
18
|
this.svc = svc;
|
|
18
19
|
this.zitiService = zitiService;
|
|
@@ -29,25 +30,25 @@ class CardListComponent extends ProjectableForm {
|
|
|
29
30
|
cardSelected(type) {
|
|
30
31
|
this.router.navigateByUrl(`/services/${type}`);
|
|
31
32
|
}
|
|
32
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CardListComponent, deps: [{ token: SETTINGS_SERVICE }, { token: i1.ServiceFormService }, { token: ZITI_DATA_SERVICE }, { token: i2.GrowlerService }, { token: SERVICE_EXTENSION_SERVICE }, { token: i3.Router }, { token: i3.ActivatedRoute }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
33
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: CardListComponent, selector: "lib-card-list", outputs: { close: "close", selected: "selected" }, usesInheritance: true, ngImport: i0, template: "<div class=\"card-list-wrapper ziti-page-container fullModal opened\">\n <div class=\"title\" style=\"filter: brightness(50%)\">Create a service</div>\n <div class=\"subtitle\">Choose a service type</div>\n <div class=\"card-list-container\">\n <lib-card\n (click)=\"cardSelected('simple')\"\n [imageUrl]=\"'/assets/svgs/Simple.svg'\"\n [title]=\"'Simple'\"\n [content]=\"'Simple services required fewer details, only asking for the most commonly used fields.'\"\n [buttonText]=\"'Create Simple Service'\"\n [id]=\"'SimpleServiceCard'\"\n [href]=\"'services/simple'\"\n ></lib-card>\n <lib-card\n (click)=\"cardSelected('advanced')\"\n [imageUrl]=\"'/assets/svgs/Advanced.svg'\"\n [title]=\"'Advanced'\"\n [content]=\"'Advanced services allow you to configure any option supported by the controller but are subsequently a bit more complex.'\"\n [buttonText]=\"'Create Advanced Service'\"\n [id]=\"'AdvancedServiceCard'\"\n [href]=\"'services/advanced'\"\n ></lib-card>\n </div>\n <div (click)=\"returnToListPage()\" class=\"buttonBall close\" id=\"EscZitiAWClose\">\n <div class=\"buttonLabel\">ESC</div>\n </div>\n\n</div>\n", styles: [":host{--shadow: rgba(0, 0, 0, .08)}.card-list-wrapper>.title{font-size:1.625rem;filter:brightness(50%);padding-top:2.1875rem;text-align:center;width:100%;color:var(--primaryColor);font-family:Russo One;text-transform:uppercase;position:relative;font-weight:400}.card-list-wrapper>.subtitle{text-align:center;width:100%;color:var(--tableText);position:relative;margin-bottom:0rem;font-size:2rem;font-weight:300;font-family:Open Sans;float:left}.card-list-wrapper .card-list-container{display:flex;flex-direction:row;width:100%;justify-content:center}.card-list-wrapper .buttonBall.close{font-style:normal;font-weight:600;-webkit-font-smoothing:antialiased;cursor:pointer;position:absolute;width:3.9375rem;height:3.9375rem;font-size:1.875rem;top:1.25rem;right:1.25rem;left:unset;z-index:20;color:var(--stroke);text-transform:uppercase;text-align:center;line-height:2.5rem;font-family:zac!important;font-variant:normal;border-radius:2.0625rem;transition:all .3s ease 0s}.card-list-wrapper .buttonBall.close:before{content:\"\\e91b\";font-size:1.875rem}.card-list-wrapper .buttonBall:hover{background-color:var(--primaryColor);color:var(--white);box-shadow:0 .125rem .1875rem 0 var(--primaryColorOpaque);transition:all .2s ease 0s}.card-list-wrapper .buttonBall:hover:before{color:var(--white)}.card-list-wrapper .buttonBall .buttonLabel{font-weight:600;font-family:Open Sans,Arial,sans-serif;position:absolute;bottom:-.125rem;width:100%;text-align:center;font-size:.75rem;text-transform:uppercase}\n"], dependencies: [{ kind: "component", type:
|
|
33
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CardListComponent, deps: [{ token: SETTINGS_SERVICE }, { token: i1.ServiceFormService }, { token: ZITI_DATA_SERVICE }, { token: i2.GrowlerService }, { token: SERVICE_EXTENSION_SERVICE }, { token: i3.Router }, { token: i3.ActivatedRoute }, { token: i4.Location }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
34
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: CardListComponent, selector: "lib-card-list", outputs: { close: "close", selected: "selected" }, usesInheritance: true, ngImport: i0, template: "<div class=\"card-list-wrapper ziti-page-container fullModal opened\">\n <div class=\"title\" style=\"filter: brightness(50%)\">Create a service</div>\n <div class=\"subtitle\">Choose a service type</div>\n <div class=\"card-list-container\">\n <lib-card\n (click)=\"cardSelected('simple')\"\n [imageUrl]=\"'/assets/svgs/Simple.svg'\"\n [title]=\"'Simple'\"\n [content]=\"'Simple services required fewer details, only asking for the most commonly used fields.'\"\n [buttonText]=\"'Create Simple Service'\"\n [id]=\"'SimpleServiceCard'\"\n [href]=\"'services/simple'\"\n ></lib-card>\n <lib-card\n (click)=\"cardSelected('advanced')\"\n [imageUrl]=\"'/assets/svgs/Advanced.svg'\"\n [title]=\"'Advanced'\"\n [content]=\"'Advanced services allow you to configure any option supported by the controller but are subsequently a bit more complex.'\"\n [buttonText]=\"'Create Advanced Service'\"\n [id]=\"'AdvancedServiceCard'\"\n [href]=\"'services/advanced'\"\n ></lib-card>\n </div>\n <div (click)=\"returnToListPage()\" class=\"buttonBall close\" id=\"EscZitiAWClose\">\n <div class=\"buttonLabel\">ESC</div>\n </div>\n\n</div>\n", styles: [":host{--shadow: rgba(0, 0, 0, .08)}.card-list-wrapper>.title{font-size:1.625rem;filter:brightness(50%);padding-top:2.1875rem;text-align:center;width:100%;color:var(--primaryColor);font-family:Russo One;text-transform:uppercase;position:relative;font-weight:400}.card-list-wrapper>.subtitle{text-align:center;width:100%;color:var(--tableText);position:relative;margin-bottom:0rem;font-size:2rem;font-weight:300;font-family:Open Sans;float:left}.card-list-wrapper .card-list-container{display:flex;flex-direction:row;width:100%;justify-content:center}.card-list-wrapper .buttonBall.close{font-style:normal;font-weight:600;-webkit-font-smoothing:antialiased;cursor:pointer;position:absolute;width:3.9375rem;height:3.9375rem;font-size:1.875rem;top:1.25rem;right:1.25rem;left:unset;z-index:20;color:var(--stroke);text-transform:uppercase;text-align:center;line-height:2.5rem;font-family:zac!important;font-variant:normal;border-radius:2.0625rem;transition:all .3s ease 0s}.card-list-wrapper .buttonBall.close:before{content:\"\\e91b\";font-size:1.875rem}.card-list-wrapper .buttonBall:hover{background-color:var(--primaryColor);color:var(--white);box-shadow:0 .125rem .1875rem 0 var(--primaryColorOpaque);transition:all .2s ease 0s}.card-list-wrapper .buttonBall:hover:before{color:var(--white)}.card-list-wrapper .buttonBall .buttonLabel{font-weight:600;font-family:Open Sans,Arial,sans-serif;position:absolute;bottom:-.125rem;width:100%;text-align:center;font-size:.75rem;text-transform:uppercase}\n"], dependencies: [{ kind: "component", type: i5.CardComponent, selector: "lib-card", inputs: ["imageUrl", "title", "content", "buttonText", "id", "href"] }] }); }
|
|
34
35
|
}
|
|
35
36
|
export { CardListComponent };
|
|
36
37
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CardListComponent, decorators: [{
|
|
37
38
|
type: Component,
|
|
38
39
|
args: [{ selector: 'lib-card-list', template: "<div class=\"card-list-wrapper ziti-page-container fullModal opened\">\n <div class=\"title\" style=\"filter: brightness(50%)\">Create a service</div>\n <div class=\"subtitle\">Choose a service type</div>\n <div class=\"card-list-container\">\n <lib-card\n (click)=\"cardSelected('simple')\"\n [imageUrl]=\"'/assets/svgs/Simple.svg'\"\n [title]=\"'Simple'\"\n [content]=\"'Simple services required fewer details, only asking for the most commonly used fields.'\"\n [buttonText]=\"'Create Simple Service'\"\n [id]=\"'SimpleServiceCard'\"\n [href]=\"'services/simple'\"\n ></lib-card>\n <lib-card\n (click)=\"cardSelected('advanced')\"\n [imageUrl]=\"'/assets/svgs/Advanced.svg'\"\n [title]=\"'Advanced'\"\n [content]=\"'Advanced services allow you to configure any option supported by the controller but are subsequently a bit more complex.'\"\n [buttonText]=\"'Create Advanced Service'\"\n [id]=\"'AdvancedServiceCard'\"\n [href]=\"'services/advanced'\"\n ></lib-card>\n </div>\n <div (click)=\"returnToListPage()\" class=\"buttonBall close\" id=\"EscZitiAWClose\">\n <div class=\"buttonLabel\">ESC</div>\n </div>\n\n</div>\n", styles: [":host{--shadow: rgba(0, 0, 0, .08)}.card-list-wrapper>.title{font-size:1.625rem;filter:brightness(50%);padding-top:2.1875rem;text-align:center;width:100%;color:var(--primaryColor);font-family:Russo One;text-transform:uppercase;position:relative;font-weight:400}.card-list-wrapper>.subtitle{text-align:center;width:100%;color:var(--tableText);position:relative;margin-bottom:0rem;font-size:2rem;font-weight:300;font-family:Open Sans;float:left}.card-list-wrapper .card-list-container{display:flex;flex-direction:row;width:100%;justify-content:center}.card-list-wrapper .buttonBall.close{font-style:normal;font-weight:600;-webkit-font-smoothing:antialiased;cursor:pointer;position:absolute;width:3.9375rem;height:3.9375rem;font-size:1.875rem;top:1.25rem;right:1.25rem;left:unset;z-index:20;color:var(--stroke);text-transform:uppercase;text-align:center;line-height:2.5rem;font-family:zac!important;font-variant:normal;border-radius:2.0625rem;transition:all .3s ease 0s}.card-list-wrapper .buttonBall.close:before{content:\"\\e91b\";font-size:1.875rem}.card-list-wrapper .buttonBall:hover{background-color:var(--primaryColor);color:var(--white);box-shadow:0 .125rem .1875rem 0 var(--primaryColorOpaque);transition:all .2s ease 0s}.card-list-wrapper .buttonBall:hover:before{color:var(--white)}.card-list-wrapper .buttonBall .buttonLabel{font-weight:600;font-family:Open Sans,Arial,sans-serif;position:absolute;bottom:-.125rem;width:100%;text-align:center;font-size:.75rem;text-transform:uppercase}\n"] }]
|
|
39
|
-
}], ctorParameters: function () { return [{ type:
|
|
40
|
+
}], ctorParameters: function () { return [{ type: i6.SettingsService, decorators: [{
|
|
40
41
|
type: Inject,
|
|
41
42
|
args: [SETTINGS_SERVICE]
|
|
42
|
-
}] }, { type: i1.ServiceFormService }, { type:
|
|
43
|
+
}] }, { type: i1.ServiceFormService }, { type: i7.ZitiDataService, decorators: [{
|
|
43
44
|
type: Inject,
|
|
44
45
|
args: [ZITI_DATA_SERVICE]
|
|
45
46
|
}] }, { type: i2.GrowlerService }, { type: undefined, decorators: [{
|
|
46
47
|
type: Inject,
|
|
47
48
|
args: [SERVICE_EXTENSION_SERVICE]
|
|
48
|
-
}] }, { type: i3.Router }, { type: i3.ActivatedRoute }]; }, propDecorators: { close: [{
|
|
49
|
+
}] }, { type: i3.Router }, { type: i3.ActivatedRoute }, { type: i4.Location }]; }, propDecorators: { close: [{
|
|
49
50
|
type: Output
|
|
50
51
|
}], selected: [{
|
|
51
52
|
type: Output
|
|
52
53
|
}] } });
|
|
53
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
54
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FyZC1saXN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3ppdGktY29uc29sZS1saWIvc3JjL2xpYi9mZWF0dXJlcy9jYXJkLWxpc3QvY2FyZC1saXN0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3ppdGktY29uc29sZS1saWIvc3JjL2xpYi9mZWF0dXJlcy9jYXJkLWxpc3QvY2FyZC1saXN0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDdEUsT0FBTyxFQUFDLGVBQWUsRUFBQyxNQUFNLDZDQUE2QyxDQUFDO0FBQzVFLE9BQU8sRUFBQyxnQkFBZ0IsRUFBa0IsTUFBTSxpQ0FBaUMsQ0FBQztBQUNsRixPQUFPLEVBQUMseUJBQXlCLEVBQXFCLE1BQU0sbURBQW1ELENBQUM7QUFDaEgsT0FBTyxFQUFDLGlCQUFpQixFQUFrQixNQUFNLGtDQUFrQyxDQUFDOzs7Ozs7Ozs7QUFNcEYsTUFLYSxpQkFBa0IsU0FBUSxlQUFlO0lBTXBELFlBQ2lELGVBQWdDLEVBQ3RFLEdBQXVCLEVBQ00sV0FBNEIsRUFDaEUsY0FBOEIsRUFDSyxVQUE0QixFQUM1QyxNQUFjLEVBQ2QsS0FBcUIsRUFDeEMsUUFBa0I7UUFFcEIsS0FBSyxDQUFDLGNBQWMsRUFBRSxVQUFVLEVBQUUsV0FBVyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFFLGVBQWUsQ0FBQyxDQUFDO1FBVDFDLG9CQUFlLEdBQWYsZUFBZSxDQUFpQjtRQUN0RSxRQUFHLEdBQUgsR0FBRyxDQUFvQjtRQUNNLGdCQUFXLEdBQVgsV0FBVyxDQUFpQjtRQUc3QyxXQUFNLEdBQU4sTUFBTSxDQUFRO1FBQ2QsVUFBSyxHQUFMLEtBQUssQ0FBZ0I7UUFaNUMsYUFBUSxHQUFRLEVBQUUsQ0FBQztRQUVULFVBQUssR0FBc0IsSUFBSSxZQUFZLEVBQU8sQ0FBQztRQUNuRCxhQUFRLEdBQXNCLElBQUksWUFBWSxFQUFPLENBQUM7SUFhaEUsQ0FBQztJQUNELEtBQUs7SUFDTCxDQUFDO0lBRUQsSUFBSTtJQUNKLENBQUM7SUFFRCxZQUFZLENBQUMsSUFBSTtRQUNmLElBQUksQ0FBQyxNQUFNLENBQUMsYUFBYSxDQUFDLGFBQWEsSUFBSSxFQUFFLENBQUMsQ0FBQztJQUNqRCxDQUFDOytHQTFCVSxpQkFBaUIsa0JBT2hCLGdCQUFnQiwrQ0FFaEIsaUJBQWlCLDJDQUVqQix5QkFBeUI7bUdBWDFCLGlCQUFpQiwrSENmOUIsc3pDQTRCQTs7U0RiYSxpQkFBaUI7NEZBQWpCLGlCQUFpQjtrQkFMN0IsU0FBUzsrQkFDRSxlQUFlOzswQkFXcEIsTUFBTTsyQkFBQyxnQkFBZ0I7OzBCQUV2QixNQUFNOzJCQUFDLGlCQUFpQjs7MEJBRXhCLE1BQU07MkJBQUMseUJBQXlCO3FIQVIzQixLQUFLO3NCQUFkLE1BQU07Z0JBQ0csUUFBUTtzQkFBakIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIEluamVjdCwgT3V0cHV0fSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7UHJvamVjdGFibGVGb3JtfSBmcm9tIFwiLi4vcHJvamVjdGFibGUtZm9ybXMvcHJvamVjdGFibGUtZm9ybS5jbGFzc1wiO1xuaW1wb3J0IHtTRVRUSU5HU19TRVJWSUNFLCBTZXR0aW5nc1NlcnZpY2V9IGZyb20gXCIuLi8uLi9zZXJ2aWNlcy9zZXR0aW5ncy5zZXJ2aWNlXCI7XG5pbXBvcnQge1NFUlZJQ0VfRVhURU5TSU9OX1NFUlZJQ0UsIFNlcnZpY2VGb3JtU2VydmljZX0gZnJvbSBcIi4uL3Byb2plY3RhYmxlLWZvcm1zL3NlcnZpY2Uvc2VydmljZS1mb3JtLnNlcnZpY2VcIjtcbmltcG9ydCB7WklUSV9EQVRBX1NFUlZJQ0UsIFppdGlEYXRhU2VydmljZX0gZnJvbSBcIi4uLy4uL3NlcnZpY2VzL3ppdGktZGF0YS5zZXJ2aWNlXCI7XG5pbXBvcnQge0dyb3dsZXJTZXJ2aWNlfSBmcm9tIFwiLi4vbWVzc2FnaW5nL2dyb3dsZXIuc2VydmljZVwiO1xuaW1wb3J0IHtFeHRlbnNpb25TZXJ2aWNlfSBmcm9tIFwiLi4vZXh0ZW5kYWJsZS9leHRlbnNpb25zLW5vb3Auc2VydmljZVwiO1xuaW1wb3J0IHtBY3RpdmF0ZWRSb3V0ZSwgUm91dGVyfSBmcm9tIFwiQGFuZ3VsYXIvcm91dGVyXCI7XG5pbXBvcnQge0xvY2F0aW9ufSBmcm9tIFwiQGFuZ3VsYXIvY29tbW9uXCI7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2xpYi1jYXJkLWxpc3QnLFxuICB0ZW1wbGF0ZVVybDogJy4vY2FyZC1saXN0LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vY2FyZC1saXN0LmNvbXBvbmVudC5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgQ2FyZExpc3RDb21wb25lbnQgZXh0ZW5kcyBQcm9qZWN0YWJsZUZvcm0ge1xuICBmb3JtRGF0YTogYW55ID0ge307XG5cbiAgQE91dHB1dCgpIGNsb3NlOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuICBAT3V0cHV0KCkgc2VsZWN0ZWQ6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgICBASW5qZWN0KFNFVFRJTkdTX1NFUlZJQ0UpIHByb3RlY3RlZCBvdmVycmlkZSBzZXR0aW5nc1NlcnZpY2U6IFNldHRpbmdzU2VydmljZSxcbiAgICAgIHB1YmxpYyBzdmM6IFNlcnZpY2VGb3JtU2VydmljZSxcbiAgICAgIEBJbmplY3QoWklUSV9EQVRBX1NFUlZJQ0UpIG92ZXJyaWRlIHppdGlTZXJ2aWNlOiBaaXRpRGF0YVNlcnZpY2UsXG4gICAgICBncm93bGVyU2VydmljZTogR3Jvd2xlclNlcnZpY2UsXG4gICAgICBASW5qZWN0KFNFUlZJQ0VfRVhURU5TSU9OX1NFUlZJQ0UpIGV4dFNlcnZpY2U6IEV4dGVuc2lvblNlcnZpY2UsXG4gICAgICBwcm90ZWN0ZWQgb3ZlcnJpZGUgcm91dGVyOiBSb3V0ZXIsXG4gICAgICBwcm90ZWN0ZWQgb3ZlcnJpZGUgcm91dGU6IEFjdGl2YXRlZFJvdXRlLFxuICAgICAgbG9jYXRpb246IExvY2F0aW9uXG4gICkge1xuICAgIHN1cGVyKGdyb3dsZXJTZXJ2aWNlLCBleHRTZXJ2aWNlLCB6aXRpU2VydmljZSwgcm91dGVyLCByb3V0ZSwgbG9jYXRpb24sIHNldHRpbmdzU2VydmljZSk7XG4gIH1cbiAgY2xlYXIoKTogdm9pZCB7XG4gIH1cblxuICBzYXZlKCk6IHZvaWQge1xuICB9XG5cbiAgY2FyZFNlbGVjdGVkKHR5cGUpIHtcbiAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZUJ5VXJsKGAvc2VydmljZXMvJHt0eXBlfWApO1xuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwiY2FyZC1saXN0LXdyYXBwZXIgeml0aS1wYWdlLWNvbnRhaW5lciBmdWxsTW9kYWwgb3BlbmVkXCI+XG4gICAgPGRpdiBjbGFzcz1cInRpdGxlXCIgc3R5bGU9XCJmaWx0ZXI6IGJyaWdodG5lc3MoNTAlKVwiPkNyZWF0ZSBhIHNlcnZpY2U8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwic3VidGl0bGVcIj5DaG9vc2UgYSBzZXJ2aWNlIHR5cGU8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwiY2FyZC1saXN0LWNvbnRhaW5lclwiPlxuICAgICAgICA8bGliLWNhcmRcbiAgICAgICAgICAgIChjbGljayk9XCJjYXJkU2VsZWN0ZWQoJ3NpbXBsZScpXCJcbiAgICAgICAgICAgIFtpbWFnZVVybF09XCInL2Fzc2V0cy9zdmdzL1NpbXBsZS5zdmcnXCJcbiAgICAgICAgICAgIFt0aXRsZV09XCInU2ltcGxlJ1wiXG4gICAgICAgICAgICBbY29udGVudF09XCInU2ltcGxlIHNlcnZpY2VzIHJlcXVpcmVkIGZld2VyIGRldGFpbHMsIG9ubHkgYXNraW5nIGZvciB0aGUgbW9zdCBjb21tb25seSB1c2VkIGZpZWxkcy4nXCJcbiAgICAgICAgICAgIFtidXR0b25UZXh0XT1cIidDcmVhdGUgU2ltcGxlIFNlcnZpY2UnXCJcbiAgICAgICAgICAgIFtpZF09XCInU2ltcGxlU2VydmljZUNhcmQnXCJcbiAgICAgICAgICAgIFtocmVmXT1cIidzZXJ2aWNlcy9zaW1wbGUnXCJcbiAgICAgICAgPjwvbGliLWNhcmQ+XG4gICAgICAgIDxsaWItY2FyZFxuICAgICAgICAgICAgKGNsaWNrKT1cImNhcmRTZWxlY3RlZCgnYWR2YW5jZWQnKVwiXG4gICAgICAgICAgICBbaW1hZ2VVcmxdPVwiJy9hc3NldHMvc3Zncy9BZHZhbmNlZC5zdmcnXCJcbiAgICAgICAgICAgIFt0aXRsZV09XCInQWR2YW5jZWQnXCJcbiAgICAgICAgICAgIFtjb250ZW50XT1cIidBZHZhbmNlZCBzZXJ2aWNlcyBhbGxvdyB5b3UgdG8gY29uZmlndXJlIGFueSBvcHRpb24gc3VwcG9ydGVkIGJ5IHRoZSBjb250cm9sbGVyIGJ1dCBhcmUgc3Vic2VxdWVudGx5IGEgYml0IG1vcmUgY29tcGxleC4nXCJcbiAgICAgICAgICAgIFtidXR0b25UZXh0XT1cIidDcmVhdGUgQWR2YW5jZWQgU2VydmljZSdcIlxuICAgICAgICAgICAgW2lkXT1cIidBZHZhbmNlZFNlcnZpY2VDYXJkJ1wiXG4gICAgICAgICAgICBbaHJlZl09XCInc2VydmljZXMvYWR2YW5jZWQnXCJcbiAgICAgICAgPjwvbGliLWNhcmQ+XG4gICAgPC9kaXY+XG4gICAgPGRpdiAoY2xpY2spPVwicmV0dXJuVG9MaXN0UGFnZSgpXCIgY2xhc3M9XCJidXR0b25CYWxsIGNsb3NlXCIgaWQ9XCJFc2NaaXRpQVdDbG9zZVwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiYnV0dG9uTGFiZWxcIj5FU0M8L2Rpdj5cbiAgICA8L2Rpdj5cblxuPC9kaXY+XG4iXX0=
|
|
@@ -14,6 +14,8 @@ class PasswordInputComponent {
|
|
|
14
14
|
this.labelColor = '#000000';
|
|
15
15
|
this.fieldClass = '';
|
|
16
16
|
this.error = '';
|
|
17
|
+
this.autocomplete = '';
|
|
18
|
+
this.required = false;
|
|
17
19
|
this.fieldValueChange = new EventEmitter();
|
|
18
20
|
this.valueChange = new Subject();
|
|
19
21
|
this.emitEventsDebounced = debounce(this.emitEvents.bind(this), 500);
|
|
@@ -30,16 +32,18 @@ class PasswordInputComponent {
|
|
|
30
32
|
this.valueChange.next(this.fieldValue);
|
|
31
33
|
}
|
|
32
34
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: PasswordInputComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
33
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: PasswordInputComponent, selector: "lib-password-input", inputs: { fieldName: "fieldName", fieldValue: "fieldValue", placeholder: "placeholder", parentage: "parentage", labelColor: "labelColor", fieldClass: "fieldClass", error: "error" }, outputs: { fieldValueChange: "fieldValueChange" }, ngImport: i0, template: `
|
|
35
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: PasswordInputComponent, selector: "lib-password-input", inputs: { fieldName: "fieldName", fieldValue: "fieldValue", placeholder: "placeholder", parentage: "parentage", labelColor: "labelColor", fieldClass: "fieldClass", error: "error", autocomplete: "autocomplete", required: "required" }, outputs: { fieldValueChange: "fieldValueChange" }, ngImport: i0, template: `
|
|
34
36
|
<div [ngClass]="fieldClass">
|
|
35
37
|
<label for="schema_{{parentage?parentage+'_':''}}{{_idName}}" [ngStyle]="{'color': labelColor}">{{_fieldName}}</label>
|
|
36
38
|
<input id="schema_{{parentage?parentage+'_':''}}{{_idName}}"
|
|
37
39
|
type="password" class="jsonEntry"
|
|
40
|
+
[required]="required"
|
|
41
|
+
[autocomplete]="autocomplete"
|
|
38
42
|
[ngClass]="{'error': error}"
|
|
39
43
|
[placeholder]="placeholder" [(ngModel)]="fieldValue" (paste)="onKeyup()" (keyup)="onKeyup()" (change)="emitEvents()"/>
|
|
40
44
|
<div *ngIf="error" class="error">{{error}}</div>
|
|
41
45
|
</div>
|
|
42
|
-
`, isInline: true, styles: ["input.error{border-color:red}\n", "div.error{color:red}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }] }); }
|
|
46
|
+
`, isInline: true, styles: ["input.error{border-color:red}\n", "div.error{color:red}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }] }); }
|
|
43
47
|
}
|
|
44
48
|
export { PasswordInputComponent };
|
|
45
49
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: PasswordInputComponent, decorators: [{
|
|
@@ -49,6 +53,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
49
53
|
<label for="schema_{{parentage?parentage+'_':''}}{{_idName}}" [ngStyle]="{'color': labelColor}">{{_fieldName}}</label>
|
|
50
54
|
<input id="schema_{{parentage?parentage+'_':''}}{{_idName}}"
|
|
51
55
|
type="password" class="jsonEntry"
|
|
56
|
+
[required]="required"
|
|
57
|
+
[autocomplete]="autocomplete"
|
|
52
58
|
[ngClass]="{'error': error}"
|
|
53
59
|
[placeholder]="placeholder" [(ngModel)]="fieldValue" (paste)="onKeyup()" (keyup)="onKeyup()" (change)="emitEvents()"/>
|
|
54
60
|
<div *ngIf="error" class="error">{{error}}</div>
|
|
@@ -68,7 +74,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
68
74
|
type: Input
|
|
69
75
|
}], error: [{
|
|
70
76
|
type: Input
|
|
77
|
+
}], autocomplete: [{
|
|
78
|
+
type: Input
|
|
79
|
+
}], required: [{
|
|
80
|
+
type: Input
|
|
71
81
|
}], fieldValueChange: [{
|
|
72
82
|
type: Output
|
|
73
83
|
}] } });
|
|
74
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
84
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFzc3dvcmQtaW5wdXQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMveml0aS1jb25zb2xlLWxpYi9zcmMvbGliL2ZlYXR1cmVzL2R5bmFtaWMtd2lkZ2V0cy9wYXNzd29yZC9wYXNzd29yZC1pbnB1dC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUM3RSxPQUFPLEVBQUMsT0FBTyxFQUFDLE1BQU0sTUFBTSxDQUFDO0FBQzdCLE9BQU8sRUFBQyxRQUFRLEVBQUMsTUFBTSxRQUFRLENBQUM7Ozs7QUFFaEMsTUFnQmEsc0JBQXNCO0lBaEJuQztRQWlCSSxlQUFVLEdBQUcsYUFBYSxDQUFDO1FBQzNCLFlBQU8sR0FBRyxXQUFXLENBQUM7UUFLYixlQUFVLEdBQUcsRUFBRSxDQUFDO1FBQ2hCLGdCQUFXLEdBQUcsRUFBRSxDQUFDO1FBQ2pCLGNBQVMsR0FBYSxFQUFFLENBQUM7UUFDekIsZUFBVSxHQUFHLFNBQVMsQ0FBQztRQUN2QixlQUFVLEdBQUcsRUFBRSxDQUFDO1FBQ2hCLFVBQUssR0FBRyxFQUFFLENBQUM7UUFDWCxpQkFBWSxHQUFHLEVBQUUsQ0FBQztRQUNsQixhQUFRLEdBQUcsS0FBSyxDQUFDO1FBQ2hCLHFCQUFnQixHQUFHLElBQUksWUFBWSxFQUFVLENBQUM7UUFDeEQsZ0JBQVcsR0FBRyxJQUFJLE9BQU8sRUFBVyxDQUFDO1FBTXJDLHdCQUFtQixHQUFHLFFBQVEsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQztLQUtuRTtJQXhCRyxJQUFhLFNBQVMsQ0FBQyxJQUFZO1FBQy9CLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDO1FBQ3ZCLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDekQsQ0FBQztJQVlELE9BQU87UUFDSCxJQUFJLENBQUMsbUJBQW1CLEVBQUUsQ0FBQztJQUMvQixDQUFDO0lBR0QsVUFBVTtRQUNOLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQzVDLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUMzQyxDQUFDOytHQTFCUSxzQkFBc0I7bUdBQXRCLHNCQUFzQix1VkFkdkI7Ozs7Ozs7Ozs7O0dBV1Q7O1NBR1Usc0JBQXNCOzRGQUF0QixzQkFBc0I7a0JBaEJsQyxTQUFTOytCQUNFLG9CQUFvQixZQUNwQjs7Ozs7Ozs7Ozs7R0FXVDs4QkFNYyxTQUFTO3NCQUFyQixLQUFLO2dCQUlHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csWUFBWTtzQkFBcEIsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNJLGdCQUFnQjtzQkFBekIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkluaXQsIE91dHB1dH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1N1YmplY3R9IGZyb20gXCJyeGpzXCI7XG5pbXBvcnQge2RlYm91bmNlfSBmcm9tIFwibG9kYXNoXCI7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2xpYi1wYXNzd29yZC1pbnB1dCcsXG4gIHRlbXBsYXRlOiBgXG4gICAgICA8ZGl2IFtuZ0NsYXNzXT1cImZpZWxkQ2xhc3NcIj5cbiAgICAgICAgICA8bGFiZWwgZm9yPVwic2NoZW1hX3t7cGFyZW50YWdlP3BhcmVudGFnZSsnXyc6Jyd9fXt7X2lkTmFtZX19XCIgIFtuZ1N0eWxlXT1cInsnY29sb3InOiBsYWJlbENvbG9yfVwiPnt7X2ZpZWxkTmFtZX19PC9sYWJlbD5cbiAgICAgICAgICA8aW5wdXQgaWQ9XCJzY2hlbWFfe3twYXJlbnRhZ2U/cGFyZW50YWdlKydfJzonJ319e3tfaWROYW1lfX1cIlxuICAgICAgICAgICAgICAgICB0eXBlPVwicGFzc3dvcmRcIiBjbGFzcz1cImpzb25FbnRyeVwiXG4gICAgICAgICAgICAgICAgIFtyZXF1aXJlZF09XCJyZXF1aXJlZFwiXG4gICAgICAgICAgICAgICAgIFthdXRvY29tcGxldGVdPVwiYXV0b2NvbXBsZXRlXCJcbiAgICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwieydlcnJvcic6IGVycm9yfVwiXG4gICAgICAgICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCJwbGFjZWhvbGRlclwiIFsobmdNb2RlbCldPVwiZmllbGRWYWx1ZVwiIChwYXN0ZSk9XCJvbktleXVwKClcIiAoa2V5dXApPVwib25LZXl1cCgpXCIgKGNoYW5nZSk9XCJlbWl0RXZlbnRzKClcIi8+XG4gICAgICAgICAgPGRpdiAqbmdJZj1cImVycm9yXCIgY2xhc3M9XCJlcnJvclwiPnt7ZXJyb3J9fTwvZGl2PlxuICAgICAgPC9kaXY+XG4gIGAsXG4gICAgc3R5bGVzOlsnaW5wdXQuZXJyb3Ige2JvcmRlci1jb2xvcjpyZWQ7fScsJ2Rpdi5lcnJvciB7Y29sb3I6cmVkfSddXG59KVxuZXhwb3J0IGNsYXNzIFBhc3N3b3JkSW5wdXRDb21wb25lbnQge1xuICAgIF9maWVsZE5hbWUgPSAnRmllbGQgTGFiZWwnO1xuICAgIF9pZE5hbWUgPSAnZmllbGRuYW1lJztcbiAgICBASW5wdXQoKSBzZXQgZmllbGROYW1lKG5hbWU6IHN0cmluZykge1xuICAgICAgICB0aGlzLl9maWVsZE5hbWUgPSBuYW1lO1xuICAgICAgICB0aGlzLl9pZE5hbWUgPSBuYW1lLnJlcGxhY2UoL1xccy9nLCAnJykudG9Mb3dlckNhc2UoKTtcbiAgICB9XG4gICAgQElucHV0KCkgZmllbGRWYWx1ZSA9ICcnO1xuICAgIEBJbnB1dCgpIHBsYWNlaG9sZGVyID0gJyc7XG4gICAgQElucHV0KCkgcGFyZW50YWdlOiBzdHJpbmdbXSA9IFtdO1xuICAgIEBJbnB1dCgpIGxhYmVsQ29sb3IgPSAnIzAwMDAwMCc7XG4gICAgQElucHV0KCkgZmllbGRDbGFzcyA9ICcnO1xuICAgIEBJbnB1dCgpIGVycm9yID0gJyc7XG4gICAgQElucHV0KCkgYXV0b2NvbXBsZXRlID0gJyc7XG4gICAgQElucHV0KCkgcmVxdWlyZWQgPSBmYWxzZTtcbiAgICBAT3V0cHV0KCkgZmllbGRWYWx1ZUNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPigpO1xuICAgIHZhbHVlQ2hhbmdlID0gbmV3IFN1YmplY3Q8c3RyaW5nPiAoKTtcblxuICAgIG9uS2V5dXAoKSB7XG4gICAgICAgIHRoaXMuZW1pdEV2ZW50c0RlYm91bmNlZCgpO1xuICAgIH1cblxuICAgIGVtaXRFdmVudHNEZWJvdW5jZWQgPSBkZWJvdW5jZSh0aGlzLmVtaXRFdmVudHMuYmluZCh0aGlzKSwgNTAwKTtcbiAgICBlbWl0RXZlbnRzKCkge1xuICAgICAgICB0aGlzLmZpZWxkVmFsdWVDaGFuZ2UuZW1pdCh0aGlzLmZpZWxkVmFsdWUpO1xuICAgICAgICB0aGlzLnZhbHVlQ2hhbmdlLm5leHQodGhpcy5maWVsZFZhbHVlKTtcbiAgICB9XG59XG4iXX0=
|
|
@@ -146,7 +146,7 @@ class ProtocolAddressPortInputComponent {
|
|
|
146
146
|
this.hostname = data.hostname;
|
|
147
147
|
}
|
|
148
148
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ProtocolAddressPortInputComponent, deps: [{ token: i1.ValidationService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
149
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: ProtocolAddressPortInputComponent, selector: "lib-protocol-address-port-input", inputs: { protocolList: "protocolList", showProtocol: "showProtocol", showAddress: "showAddress", showHostName: "showHostName", showPort: "showPort", disableProtocol: "disableProtocol", disableAddress: "disableAddress", disableHostName: "disableHostName", disablePort: "disablePort", protocol: "protocol", address: "address", hostname: "hostname", port: "port", parentage: "parentage", labelColor: "labelColor", labelPrefix: "labelPrefix", fieldClass: "fieldClass", error: "error" }, outputs: { fieldValueChange: "fieldValueChange", portChange: "portChange", addressChange: "addressChange", hostnameChange: "hostnameChange", protocolChange: "protocolChange" }, ngImport: i0, template: "<div class=\"grid {{className}}\">\n <div *ngIf=\"showProtocol\" [ngClass]=\"{disabled: disableProtocol, invalid: errors['protocol']}\">\n <lib-selector-input [fieldName]=\"protocolFieldName\"\n [(fieldValue)]=\"protocol\"\n [labelColor]=\"labelColor\"\n [placeholder]=\"undefined\"\n [valueList]=\"['tcp', 'udp']\"\n (fieldValueChange)=\"update()\"\n ></lib-selector-input>\n </div>\n <div *ngIf=\"showAddress\" [ngClass]=\"{disabled: disableAddress, invalid: errors['address']}\">\n <lib-string-input [fieldName]=\"addressFieldName\"\n [(fieldValue)]=\"address\"\n [labelColor]=\"labelColor\"\n [placeholder]=\"'host.name'\"\n (fieldValueChange)=\"update()\"\n ></lib-string-input>\n </div>\n <div *ngIf=\"showHostName\" [ngClass]=\"{disabled: disableHostName, invalid: errors['hostname']}\">\n <lib-string-input [fieldName]=\"hostnameFieldName\"\n [(fieldValue)]=\"hostname\"\n [labelColor]=\"labelColor\"\n [placeholder]=\"'host.name'\"\n (fieldValueChange)=\"update()\"\n ></lib-string-input>\n </div>\n <div *ngIf=\"showPort\" [ngClass]=\"{disabled: disablePort, invalid: errors['port']}\">\n <lib-number-input [fieldName]=\"portFieldName\"\n [(fieldValue)]=\"port\"\n [labelColor]=\"labelColor\"\n [placeholder]=\"'0'\"\n (fieldValueChange)=\"update()\"\n ></lib-number-input>\n </div>\n</div>\n", styles: [".grid{display:grid;grid-template-columns:auto;grid-gap:.625rem}.grid.addressFull{grid-template-columns:4.6875rem auto 4.6875rem}.grid.addressFull .disabled{opacity:.5;pointer-events:none}.grid.address-only{grid-template-columns:auto}.host-name-port{grid-template-columns:auto 4.6875rem}\n"], dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3.StringInputComponent, selector: "lib-string-input", inputs: ["fieldName", "helpText", "fieldValue", "placeholder", "parentage", "labelColor", "fieldClass", "error"], outputs: ["fieldValueChange"] }, { kind: "component", type: i4.NumberInputComponent, selector: "lib-number-input", inputs: ["fieldName", "helpText", "fieldValue", "placeholder", "parentage", "labelColor", "fieldClass", "error"], outputs: ["fieldValueChange"] }, { kind: "component", type: i5.SelectorInputComponent, selector: "lib-selector-input", inputs: ["fieldName", "fieldValue", "helpText", "placeholder", "parentage", "valueList", "labelColor", "fieldClass", "error"], outputs: ["fieldValueChange"] }] }); }
|
|
149
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: ProtocolAddressPortInputComponent, selector: "lib-protocol-address-port-input", inputs: { protocolList: "protocolList", showProtocol: "showProtocol", showAddress: "showAddress", showHostName: "showHostName", showPort: "showPort", disableProtocol: "disableProtocol", disableAddress: "disableAddress", disableHostName: "disableHostName", disablePort: "disablePort", protocol: "protocol", address: "address", hostname: "hostname", port: "port", parentage: "parentage", labelColor: "labelColor", labelPrefix: "labelPrefix", fieldClass: "fieldClass", error: "error" }, outputs: { fieldValueChange: "fieldValueChange", portChange: "portChange", addressChange: "addressChange", hostnameChange: "hostnameChange", protocolChange: "protocolChange" }, ngImport: i0, template: "<div class=\"grid {{className}}\">\n <div *ngIf=\"showProtocol\" [ngClass]=\"{disabled: disableProtocol, invalid: errors['protocol']}\">\n <lib-selector-input [fieldName]=\"protocolFieldName\"\n [(fieldValue)]=\"protocol\"\n [labelColor]=\"labelColor\"\n [placeholder]=\"undefined\"\n [valueList]=\"['tcp', 'udp']\"\n (fieldValueChange)=\"update()\"\n ></lib-selector-input>\n </div>\n <div *ngIf=\"showAddress\" [ngClass]=\"{disabled: disableAddress, invalid: errors['address']}\">\n <lib-string-input [fieldName]=\"addressFieldName\"\n [(fieldValue)]=\"address\"\n [labelColor]=\"labelColor\"\n [placeholder]=\"'host.name'\"\n (fieldValueChange)=\"update()\"\n ></lib-string-input>\n </div>\n <div *ngIf=\"showHostName\" [ngClass]=\"{disabled: disableHostName, invalid: errors['hostname']}\">\n <lib-string-input [fieldName]=\"hostnameFieldName\"\n [(fieldValue)]=\"hostname\"\n [labelColor]=\"labelColor\"\n [placeholder]=\"'host.name'\"\n (fieldValueChange)=\"update()\"\n ></lib-string-input>\n </div>\n <div *ngIf=\"showPort\" [ngClass]=\"{disabled: disablePort, invalid: errors['port']}\">\n <lib-number-input [fieldName]=\"portFieldName\"\n [(fieldValue)]=\"port\"\n [labelColor]=\"labelColor\"\n [placeholder]=\"'0'\"\n (fieldValueChange)=\"update()\"\n ></lib-number-input>\n </div>\n</div>\n", styles: [".grid{display:grid;grid-template-columns:auto;grid-gap:.625rem}.grid.addressFull{grid-template-columns:4.6875rem auto 4.6875rem}.grid.addressFull .disabled{opacity:.5;pointer-events:none}.grid.address-only{grid-template-columns:auto}.host-name-port{grid-template-columns:auto 4.6875rem}\n"], dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3.StringInputComponent, selector: "lib-string-input", inputs: ["fieldName", "helpText", "fieldValue", "placeholder", "parentage", "labelColor", "fieldClass", "error", "autocomplete", "required"], outputs: ["fieldValueChange"] }, { kind: "component", type: i4.NumberInputComponent, selector: "lib-number-input", inputs: ["fieldName", "helpText", "fieldValue", "placeholder", "parentage", "labelColor", "fieldClass", "error"], outputs: ["fieldValueChange"] }, { kind: "component", type: i5.SelectorInputComponent, selector: "lib-selector-input", inputs: ["fieldName", "fieldValue", "helpText", "placeholder", "parentage", "valueList", "labelColor", "fieldClass", "error"], outputs: ["fieldValueChange"] }] }); }
|
|
150
150
|
}
|
|
151
151
|
export { ProtocolAddressPortInputComponent };
|
|
152
152
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ProtocolAddressPortInputComponent, decorators: [{
|
|
@@ -15,6 +15,8 @@ class StringInputComponent {
|
|
|
15
15
|
this.labelColor = '#000000';
|
|
16
16
|
this.fieldClass = '';
|
|
17
17
|
this.error = '';
|
|
18
|
+
this.autocomplete = '';
|
|
19
|
+
this.required = false;
|
|
18
20
|
this.fieldValueChange = new EventEmitter();
|
|
19
21
|
this.valueChange = new Subject();
|
|
20
22
|
this._isValid = true;
|
|
@@ -35,7 +37,7 @@ class StringInputComponent {
|
|
|
35
37
|
this.valueChange.next(this.fieldValue);
|
|
36
38
|
}
|
|
37
39
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: StringInputComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
38
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: StringInputComponent, selector: "lib-string-input", inputs: { fieldName: "fieldName", helpText: "helpText", fieldValue: "fieldValue", placeholder: "placeholder", parentage: "parentage", labelColor: "labelColor", fieldClass: "fieldClass", error: "error" }, outputs: { fieldValueChange: "fieldValueChange" }, ngImport: i0, template: `
|
|
40
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: StringInputComponent, selector: "lib-string-input", inputs: { fieldName: "fieldName", helpText: "helpText", fieldValue: "fieldValue", placeholder: "placeholder", parentage: "parentage", labelColor: "labelColor", fieldClass: "fieldClass", error: "error", autocomplete: "autocomplete", required: "required" }, outputs: { fieldValueChange: "fieldValueChange" }, ngImport: i0, template: `
|
|
39
41
|
<div [ngClass]="fieldClass + (!_isValid ? 'invalid' : '')" class="string-input-container">
|
|
40
42
|
<div class="label-container">
|
|
41
43
|
<label for="schema_{{parentage?parentage+'_':''}}{{_idName}}" [ngStyle]="{'color': labelColor}">{{_fieldName}}</label>
|
|
@@ -49,11 +51,13 @@ class StringInputComponent {
|
|
|
49
51
|
</div>
|
|
50
52
|
<input id="schema_{{parentage?parentage+'_':''}}{{_idName}}"
|
|
51
53
|
type="text" class="jsonEntry"
|
|
54
|
+
[required]="required"
|
|
55
|
+
[autocomplete]="autocomplete"
|
|
52
56
|
[ngClass]="{'error': error}"
|
|
53
57
|
[placeholder]="placeholder" [(ngModel)]="fieldValue" (paste)="onKeyup()" (keyup)="onKeyup()" (change)="emitEvents()"/>
|
|
54
58
|
<div *ngIf="error" class="error">{{error}}</div>
|
|
55
59
|
</div>
|
|
56
|
-
`, isInline: true, styles: [".string-input-container{margin:var(--marginSmall) 0}.string-input-container label{margin-bottom:0rem;margin-top:0rem;width:-moz-fit-content;width:fit-content}.string-input-container input.error{border-color:red}.string-input-container div.error{color:red}.label-container{display:flex;gap:.3125rem;margin-bottom:.3125rem;margin-top:.625rem}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i3.MatTooltip, selector: "[matTooltip]", exportAs: ["matTooltip"] }] }); }
|
|
60
|
+
`, isInline: true, styles: [".string-input-container{margin:var(--marginSmall) 0}.string-input-container label{margin-bottom:0rem;margin-top:0rem;width:-moz-fit-content;width:fit-content}.string-input-container input.error{border-color:red}.string-input-container div.error{color:red}.label-container{display:flex;gap:.3125rem;margin-bottom:.3125rem;margin-top:.625rem}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i3.MatTooltip, selector: "[matTooltip]", exportAs: ["matTooltip"] }] }); }
|
|
57
61
|
}
|
|
58
62
|
export { StringInputComponent };
|
|
59
63
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: StringInputComponent, decorators: [{
|
|
@@ -72,6 +76,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
72
76
|
</div>
|
|
73
77
|
<input id="schema_{{parentage?parentage+'_':''}}{{_idName}}"
|
|
74
78
|
type="text" class="jsonEntry"
|
|
79
|
+
[required]="required"
|
|
80
|
+
[autocomplete]="autocomplete"
|
|
75
81
|
[ngClass]="{'error': error}"
|
|
76
82
|
[placeholder]="placeholder" [(ngModel)]="fieldValue" (paste)="onKeyup()" (keyup)="onKeyup()" (change)="emitEvents()"/>
|
|
77
83
|
<div *ngIf="error" class="error">{{error}}</div>
|
|
@@ -93,7 +99,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
93
99
|
type: Input
|
|
94
100
|
}], error: [{
|
|
95
101
|
type: Input
|
|
102
|
+
}], autocomplete: [{
|
|
103
|
+
type: Input
|
|
104
|
+
}], required: [{
|
|
105
|
+
type: Input
|
|
96
106
|
}], fieldValueChange: [{
|
|
97
107
|
type: Output
|
|
98
108
|
}] } });
|
|
99
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
109
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RyaW5nLWlucHV0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3ppdGktY29uc29sZS1saWIvc3JjL2xpYi9mZWF0dXJlcy9keW5hbWljLXdpZGdldHMvc3RyaW5nL3N0cmluZy1pbnB1dC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUM3RSxPQUFPLEVBQUMsT0FBTyxFQUFDLE1BQU0sTUFBTSxDQUFDO0FBQzdCLE9BQU8sRUFBQyxRQUFRLEVBQUMsTUFBTSxRQUFRLENBQUM7Ozs7O0FBRWhDLE1BeUJhLG9CQUFvQjtJQXpCakM7UUEwQkksZUFBVSxHQUFHLGFBQWEsQ0FBQztRQUMzQixZQUFPLEdBQUcsV0FBVyxDQUFDO1FBTWIsZUFBVSxHQUFHLEVBQUUsQ0FBQztRQUNoQixnQkFBVyxHQUFHLEVBQUUsQ0FBQztRQUNqQixjQUFTLEdBQWEsRUFBRSxDQUFDO1FBQ3pCLGVBQVUsR0FBRyxTQUFTLENBQUM7UUFDdkIsZUFBVSxHQUFHLEVBQUUsQ0FBQztRQUNoQixVQUFLLEdBQUcsRUFBRSxDQUFDO1FBQ1gsaUJBQVksR0FBRyxFQUFFLENBQUM7UUFDbEIsYUFBUSxHQUFHLEtBQUssQ0FBQztRQUNoQixxQkFBZ0IsR0FBRyxJQUFJLFlBQVksRUFBVSxDQUFDO1FBQ3hELGdCQUFXLEdBQUcsSUFBSSxPQUFPLEVBQVcsQ0FBQztRQUVyQyxhQUFRLEdBQUcsSUFBSSxDQUFDO1FBU2hCLHdCQUFtQixHQUFHLFFBQVEsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQztLQUtuRTtJQTlCRyxJQUFhLFNBQVMsQ0FBQyxJQUFZO1FBQy9CLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDO1FBQ3ZCLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDekQsQ0FBQztJQWNNLFVBQVUsQ0FBRSxPQUFPO1FBQ3RCLElBQUksQ0FBQyxRQUFRLEdBQUcsT0FBTyxDQUFDO0lBQzVCLENBQUM7SUFFRCxPQUFPO1FBQ0gsSUFBSSxDQUFDLG1CQUFtQixFQUFFLENBQUM7SUFDL0IsQ0FBQztJQUdELFVBQVU7UUFDTixJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUM1QyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDM0MsQ0FBQzsrR0FoQ1Esb0JBQW9CO21HQUFwQixvQkFBb0IsMldBdkJyQjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FvQlQ7O1NBR1Usb0JBQW9COzRGQUFwQixvQkFBb0I7a0JBekJoQyxTQUFTOytCQUNFLGtCQUFrQixZQUNsQjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FvQlQ7OEJBTWMsU0FBUztzQkFBckIsS0FBSztnQkFJRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csWUFBWTtzQkFBcEIsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNJLGdCQUFnQjtzQkFBekIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkluaXQsIE91dHB1dH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1N1YmplY3R9IGZyb20gXCJyeGpzXCI7XG5pbXBvcnQge2RlYm91bmNlfSBmcm9tIFwibG9kYXNoXCI7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2xpYi1zdHJpbmctaW5wdXQnLFxuICB0ZW1wbGF0ZTogYFxuICAgICAgPGRpdiBbbmdDbGFzc109XCJmaWVsZENsYXNzICsgKCFfaXNWYWxpZCA/ICdpbnZhbGlkJyA6ICcnKVwiIGNsYXNzPVwic3RyaW5nLWlucHV0LWNvbnRhaW5lclwiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJsYWJlbC1jb250YWluZXJcIj5cbiAgICAgICAgICAgICAgPGxhYmVsIGZvcj1cInNjaGVtYV97e3BhcmVudGFnZT9wYXJlbnRhZ2UrJ18nOicnfX17e19pZE5hbWV9fVwiICBbbmdTdHlsZV09XCJ7J2NvbG9yJzogbGFiZWxDb2xvcn1cIj57e19maWVsZE5hbWV9fTwvbGFiZWw+XG4gICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICpuZ0lmPVwiaGVscFRleHRcIlxuICAgICAgICAgICAgICAgICAgY2xhc3M9XCJmb3JtLWZpZWxkLWluZm8gaW5mb2ljb25cIlxuICAgICAgICAgICAgICAgICAgbWF0VG9vbHRpcD1cInt7aGVscFRleHR9fVwiXG4gICAgICAgICAgICAgICAgICBtYXRUb29sdGlwUG9zaXRpb249XCJhYm92ZVwiXG4gICAgICAgICAgICAgICAgICBtYXRUb29sdGlwQ2xhc3M9XCJ3aWRlLXRvb2x0aXBcIlxuICAgICAgICAgICAgICA+PC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPGlucHV0IGlkPVwic2NoZW1hX3t7cGFyZW50YWdlP3BhcmVudGFnZSsnXyc6Jyd9fXt7X2lkTmFtZX19XCJcbiAgICAgICAgICAgICAgICAgdHlwZT1cInRleHRcIiBjbGFzcz1cImpzb25FbnRyeVwiXG4gICAgICAgICAgICAgICAgIFtyZXF1aXJlZF09XCJyZXF1aXJlZFwiXG4gICAgICAgICAgICAgICAgIFthdXRvY29tcGxldGVdPVwiYXV0b2NvbXBsZXRlXCJcbiAgICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwieydlcnJvcic6IGVycm9yfVwiXG4gICAgICAgICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCJwbGFjZWhvbGRlclwiIFsobmdNb2RlbCldPVwiZmllbGRWYWx1ZVwiIChwYXN0ZSk9XCJvbktleXVwKClcIiAoa2V5dXApPVwib25LZXl1cCgpXCIgKGNoYW5nZSk9XCJlbWl0RXZlbnRzKClcIi8+XG4gICAgICAgICAgPGRpdiAqbmdJZj1cImVycm9yXCIgY2xhc3M9XCJlcnJvclwiPnt7ZXJyb3J9fTwvZGl2PlxuICAgICAgPC9kaXY+XG4gIGAsXG4gICAgc3R5bGVVcmxzOiBbJ3N0cmluZy1pbnB1dC5jb21wb25lbnQuc2NzcyddXG59KVxuZXhwb3J0IGNsYXNzIFN0cmluZ0lucHV0Q29tcG9uZW50IHtcbiAgICBfZmllbGROYW1lID0gJ0ZpZWxkIExhYmVsJztcbiAgICBfaWROYW1lID0gJ2ZpZWxkbmFtZSc7XG4gICAgQElucHV0KCkgc2V0IGZpZWxkTmFtZShuYW1lOiBzdHJpbmcpIHtcbiAgICAgICAgdGhpcy5fZmllbGROYW1lID0gbmFtZTtcbiAgICAgICAgdGhpcy5faWROYW1lID0gbmFtZS5yZXBsYWNlKC9cXHMvZywgJycpLnRvTG93ZXJDYXNlKCk7XG4gICAgfVxuICAgIEBJbnB1dCgpIGhlbHBUZXh0O1xuICAgIEBJbnB1dCgpIGZpZWxkVmFsdWUgPSAnJztcbiAgICBASW5wdXQoKSBwbGFjZWhvbGRlciA9ICcnO1xuICAgIEBJbnB1dCgpIHBhcmVudGFnZTogc3RyaW5nW10gPSBbXTtcbiAgICBASW5wdXQoKSBsYWJlbENvbG9yID0gJyMwMDAwMDAnO1xuICAgIEBJbnB1dCgpIGZpZWxkQ2xhc3MgPSAnJztcbiAgICBASW5wdXQoKSBlcnJvciA9ICcnO1xuICAgIEBJbnB1dCgpIGF1dG9jb21wbGV0ZSA9ICcnO1xuICAgIEBJbnB1dCgpIHJlcXVpcmVkID0gZmFsc2U7XG4gICAgQE91dHB1dCgpIGZpZWxkVmFsdWVDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZz4oKTtcbiAgICB2YWx1ZUNoYW5nZSA9IG5ldyBTdWJqZWN0PHN0cmluZz4gKCk7XG5cbiAgICBfaXNWYWxpZCA9IHRydWU7XG4gICAgcHVibGljIHNldElzVmFsaWQgKGlzVmFsaWQpIHtcbiAgICAgICAgdGhpcy5faXNWYWxpZCA9IGlzVmFsaWQ7XG4gICAgfVxuXG4gICAgb25LZXl1cCgpIHtcbiAgICAgICAgdGhpcy5lbWl0RXZlbnRzRGVib3VuY2VkKCk7XG4gICAgfVxuXG4gICAgZW1pdEV2ZW50c0RlYm91bmNlZCA9IGRlYm91bmNlKHRoaXMuZW1pdEV2ZW50cy5iaW5kKHRoaXMpLCA1MDApO1xuICAgIGVtaXRFdmVudHMoKSB7XG4gICAgICAgIHRoaXMuZmllbGRWYWx1ZUNoYW5nZS5lbWl0KHRoaXMuZmllbGRWYWx1ZSk7XG4gICAgICAgIHRoaXMudmFsdWVDaGFuZ2UubmV4dCh0aGlzLmZpZWxkVmFsdWUpO1xuICAgIH1cbn1cbiJdfQ==
|
|
@@ -0,0 +1,123 @@
|
|
|
1
|
+
/*
|
|
2
|
+
Copyright NetFoundry Inc.
|
|
3
|
+
|
|
4
|
+
Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
|
+
you may not use this file except in compliance with the License.
|
|
6
|
+
You may obtain a copy of the License at
|
|
7
|
+
|
|
8
|
+
https://www.apache.org/licenses/LICENSE-2.0
|
|
9
|
+
|
|
10
|
+
Unless required by applicable law or agreed to in writing, software
|
|
11
|
+
distributed under the License is distributed on an "AS IS" BASIS,
|
|
12
|
+
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
+
See the License for the specific language governing permissions and
|
|
14
|
+
limitations under the License.
|
|
15
|
+
*/
|
|
16
|
+
import { Component, Inject } from '@angular/core';
|
|
17
|
+
import { MAT_DIALOG_DATA } from "@angular/material/dialog";
|
|
18
|
+
import { ZAC_LOGIN_SERVICE } from "../../services/login-service.class";
|
|
19
|
+
import { SETTINGS_SERVICE } from "../../services/settings.service";
|
|
20
|
+
import { isEmpty } from "lodash";
|
|
21
|
+
import * as i0 from "@angular/core";
|
|
22
|
+
import * as i1 from "@angular/router";
|
|
23
|
+
import * as i2 from "@angular/material/dialog";
|
|
24
|
+
import * as i3 from "@angular/common";
|
|
25
|
+
import * as i4 from "@angular/forms";
|
|
26
|
+
import * as i5 from "../dynamic-widgets/string/string-input.component";
|
|
27
|
+
import * as i6 from "../dynamic-widgets/selector/selector-input.component";
|
|
28
|
+
import * as i7 from "../dynamic-widgets/password/password-input.component";
|
|
29
|
+
import * as i8 from "../../services/login-service.class";
|
|
30
|
+
import * as i9 from "../../services/settings-service.class";
|
|
31
|
+
class LoginDialogComponent {
|
|
32
|
+
constructor(svc, settingsService, data, router, dialogRef) {
|
|
33
|
+
this.svc = svc;
|
|
34
|
+
this.settingsService = settingsService;
|
|
35
|
+
this.data = data;
|
|
36
|
+
this.router = router;
|
|
37
|
+
this.dialogRef = dialogRef;
|
|
38
|
+
this.dataObj = {};
|
|
39
|
+
this.selectedEdgeController = '';
|
|
40
|
+
this.username = '';
|
|
41
|
+
this.password = '';
|
|
42
|
+
this.loginFailed = false;
|
|
43
|
+
this.edgeControllerList = [];
|
|
44
|
+
this.dataObj = data;
|
|
45
|
+
this.svc.loginDialogOpen = true;
|
|
46
|
+
this.selectedEdgeController = this.settingsService?.settings?.selectedEdgeController;
|
|
47
|
+
}
|
|
48
|
+
ngOnInit() {
|
|
49
|
+
this.settingsService.settingsChange.subscribe((results) => {
|
|
50
|
+
if (this.svc.originIsController) {
|
|
51
|
+
return;
|
|
52
|
+
}
|
|
53
|
+
if (results)
|
|
54
|
+
this.settingsReturned(results);
|
|
55
|
+
});
|
|
56
|
+
}
|
|
57
|
+
settingsReturned(settings) {
|
|
58
|
+
this.edgeControllerList = [];
|
|
59
|
+
if (settings.edgeControllers?.length > 0) {
|
|
60
|
+
this.edgeControllerList = [];
|
|
61
|
+
settings.edgeControllers.forEach((controller) => {
|
|
62
|
+
if (!controller.url) {
|
|
63
|
+
return;
|
|
64
|
+
}
|
|
65
|
+
this.edgeControllerList.push({ name: controller.name + ` (${controller.url})`, value: controller.url });
|
|
66
|
+
});
|
|
67
|
+
}
|
|
68
|
+
const serviceUrl = localStorage.getItem("ziti-serviceUrl-value");
|
|
69
|
+
if (!isEmpty(serviceUrl)) {
|
|
70
|
+
const lastUrl = JSON.parse(serviceUrl).data;
|
|
71
|
+
this.selectedEdgeController = lastUrl.trim();
|
|
72
|
+
}
|
|
73
|
+
else {
|
|
74
|
+
this.selectedEdgeController = settings.selectedEdgeController;
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
edgeChanged(event) {
|
|
78
|
+
if (this.selectedEdgeController) {
|
|
79
|
+
this.settingsService.initApiVersions(this.selectedEdgeController);
|
|
80
|
+
}
|
|
81
|
+
this.settingsService.settings.selectedEdgeController = this.selectedEdgeController;
|
|
82
|
+
}
|
|
83
|
+
login() {
|
|
84
|
+
const apiVersions = this.settingsService.apiVersions;
|
|
85
|
+
const prefix = apiVersions && apiVersions["edge-management"]?.v1?.path || '';
|
|
86
|
+
this.loginFailed = false;
|
|
87
|
+
this.svc.login(prefix, this.selectedEdgeController, this.username.trim(), this.password, false).then((result) => {
|
|
88
|
+
if (result?.error) {
|
|
89
|
+
return;
|
|
90
|
+
}
|
|
91
|
+
this.svc.loginDialogOpen = false;
|
|
92
|
+
this.settingsService.set(this.settingsService.settings);
|
|
93
|
+
this.dialogRef.close({ isLoggedIn: true });
|
|
94
|
+
}).catch(() => {
|
|
95
|
+
this.loginFailed = true;
|
|
96
|
+
});
|
|
97
|
+
}
|
|
98
|
+
close() {
|
|
99
|
+
this.svc.loginDialogOpen = false;
|
|
100
|
+
this.dialogRef.close();
|
|
101
|
+
}
|
|
102
|
+
returnToLoginPage() {
|
|
103
|
+
this.svc.loginDialogOpen = false;
|
|
104
|
+
this.dialogRef.close({ returnToLogin: true });
|
|
105
|
+
}
|
|
106
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: LoginDialogComponent, deps: [{ token: ZAC_LOGIN_SERVICE }, { token: SETTINGS_SERVICE }, { token: MAT_DIALOG_DATA }, { token: i1.Router }, { token: i2.MatDialogRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
107
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: LoginDialogComponent, selector: "lib-confirm", ngImport: i0, template: "<div class=\"login-modal-container\">\n <div class=\"close icon-close\" (click)=\"close()\"></div>\n <form id=\"login-form\" (submit)=\"login()\" autocomplete=\"on\">\n <div class=\"login-modal-body\">\n <div class=\"login-modal-content\">\n <div class=\"login-title-container\">\n <span class=\"login-title\">Session Expired</span>\n <span class=\"login-subtitle\">Please login to continue.</span>\n </div>\n <div class=\"login-modal-main\">\n <lib-selector-input\n *ngIf=\"!svc.originIsController\"\n [fieldName]=\"'Edge Controller'\"\n [(fieldValue)]=\"selectedEdgeController\"\n [placeholder]=\"'Select an Edge Controller'\"\n [valueList]=\"edgeControllerList\"\n (fieldValueChange)=\"edgeChanged($event)\"\n >\n </lib-selector-input>\n <lib-string-input [fieldName]=\"'Username'\"\n [(fieldValue)]=\"username\"\n [autocomplete]=\"'username'\"\n [placeholder]=\"'enter username of controller'\"></lib-string-input>\n <lib-password-input [fieldName]=\"'Password'\"\n [(fieldValue)]=\"password\"\n [autocomplete]=\"'current-password'\"\n [placeholder]=\"'enter password of controller'\"></lib-password-input>\n <span class=\"login-error-message\" *ngIf=\"loginFailed\">Login Failed</span>\n </div>\n </div>\n </div>\n <div class=\"login-buttons-container\">\n <button class=\"button\" type=\"submit\">Login</button>\n <div class=\"linkButton cancel\" (click)=\"returnToLoginPage()\">Return to login page</div>\n </div>\n </form>\n</div>\n", styles: [".login-modal-container{display:flex;flex-direction:column;background-color:var(--background);border-radius:1.5625rem;width:25rem;padding:var(--paddingXXL)}.login-modal-container .login-modal-body{display:flex;flex-direction:row;align-items:center}.login-modal-container .login-modal-body .login-modal-content{display:flex;flex-direction:column;width:100%}.login-modal-container .login-modal-body .login-modal-main{display:flex;flex-direction:column;align-items:center}.login-modal-container .login-modal-body .login-modal-icon{width:7.5rem;height:7.5rem;background-size:contain;z-index:20;box-sizing:var(--shadow);margin-left:.9375rem}.login-modal-container .login-modal-body lib-string-input,.login-modal-container .login-modal-body lib-password-input{width:100%}.login-modal-container .login-title-container{width:100%;display:flex;flex-direction:column}.login-modal-container .login-title-container .login-title{color:var(--primaryColor);font-size:1.875rem;position:relative;padding-left:0;width:100%;background:none;text-transform:none;height:auto;font-family:Russo One;filter:brightness(50%)}.login-modal-container .login-buttons-container{display:flex;justify-content:flex-end;flex-direction:row;width:100%;align-items:flex-end;margin-top:var(--marginXXL)}.login-modal-container .login-buttons-container .linkButton{position:absolute;left:1.5625rem;color:var(--subText);font-weight:600}.login-modal-container button{width:6.25rem;height:2.5rem;color:var(--white);display:flex;align-items:center;justify-content:center;font-size:.75rem}.login-modal-container button.confirm{background-color:var(--secondary)}.login-modal-container button.cancel{background-color:var(--primary)}.login-error-message{display:flex;justify-content:flex-start;width:100%;margin-top:.325rem;color:var(--red);font-weight:600;font-size:.925rem}\n"], dependencies: [{ kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i4.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i4.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "component", type: i5.StringInputComponent, selector: "lib-string-input", inputs: ["fieldName", "helpText", "fieldValue", "placeholder", "parentage", "labelColor", "fieldClass", "error", "autocomplete", "required"], outputs: ["fieldValueChange"] }, { kind: "component", type: i6.SelectorInputComponent, selector: "lib-selector-input", inputs: ["fieldName", "fieldValue", "helpText", "placeholder", "parentage", "valueList", "labelColor", "fieldClass", "error"], outputs: ["fieldValueChange"] }, { kind: "component", type: i7.PasswordInputComponent, selector: "lib-password-input", inputs: ["fieldName", "fieldValue", "placeholder", "parentage", "labelColor", "fieldClass", "error", "autocomplete", "required"], outputs: ["fieldValueChange"] }] }); }
|
|
108
|
+
}
|
|
109
|
+
export { LoginDialogComponent };
|
|
110
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: LoginDialogComponent, decorators: [{
|
|
111
|
+
type: Component,
|
|
112
|
+
args: [{ selector: 'lib-confirm', template: "<div class=\"login-modal-container\">\n <div class=\"close icon-close\" (click)=\"close()\"></div>\n <form id=\"login-form\" (submit)=\"login()\" autocomplete=\"on\">\n <div class=\"login-modal-body\">\n <div class=\"login-modal-content\">\n <div class=\"login-title-container\">\n <span class=\"login-title\">Session Expired</span>\n <span class=\"login-subtitle\">Please login to continue.</span>\n </div>\n <div class=\"login-modal-main\">\n <lib-selector-input\n *ngIf=\"!svc.originIsController\"\n [fieldName]=\"'Edge Controller'\"\n [(fieldValue)]=\"selectedEdgeController\"\n [placeholder]=\"'Select an Edge Controller'\"\n [valueList]=\"edgeControllerList\"\n (fieldValueChange)=\"edgeChanged($event)\"\n >\n </lib-selector-input>\n <lib-string-input [fieldName]=\"'Username'\"\n [(fieldValue)]=\"username\"\n [autocomplete]=\"'username'\"\n [placeholder]=\"'enter username of controller'\"></lib-string-input>\n <lib-password-input [fieldName]=\"'Password'\"\n [(fieldValue)]=\"password\"\n [autocomplete]=\"'current-password'\"\n [placeholder]=\"'enter password of controller'\"></lib-password-input>\n <span class=\"login-error-message\" *ngIf=\"loginFailed\">Login Failed</span>\n </div>\n </div>\n </div>\n <div class=\"login-buttons-container\">\n <button class=\"button\" type=\"submit\">Login</button>\n <div class=\"linkButton cancel\" (click)=\"returnToLoginPage()\">Return to login page</div>\n </div>\n </form>\n</div>\n", styles: [".login-modal-container{display:flex;flex-direction:column;background-color:var(--background);border-radius:1.5625rem;width:25rem;padding:var(--paddingXXL)}.login-modal-container .login-modal-body{display:flex;flex-direction:row;align-items:center}.login-modal-container .login-modal-body .login-modal-content{display:flex;flex-direction:column;width:100%}.login-modal-container .login-modal-body .login-modal-main{display:flex;flex-direction:column;align-items:center}.login-modal-container .login-modal-body .login-modal-icon{width:7.5rem;height:7.5rem;background-size:contain;z-index:20;box-sizing:var(--shadow);margin-left:.9375rem}.login-modal-container .login-modal-body lib-string-input,.login-modal-container .login-modal-body lib-password-input{width:100%}.login-modal-container .login-title-container{width:100%;display:flex;flex-direction:column}.login-modal-container .login-title-container .login-title{color:var(--primaryColor);font-size:1.875rem;position:relative;padding-left:0;width:100%;background:none;text-transform:none;height:auto;font-family:Russo One;filter:brightness(50%)}.login-modal-container .login-buttons-container{display:flex;justify-content:flex-end;flex-direction:row;width:100%;align-items:flex-end;margin-top:var(--marginXXL)}.login-modal-container .login-buttons-container .linkButton{position:absolute;left:1.5625rem;color:var(--subText);font-weight:600}.login-modal-container button{width:6.25rem;height:2.5rem;color:var(--white);display:flex;align-items:center;justify-content:center;font-size:.75rem}.login-modal-container button.confirm{background-color:var(--secondary)}.login-modal-container button.cancel{background-color:var(--primary)}.login-error-message{display:flex;justify-content:flex-start;width:100%;margin-top:.325rem;color:var(--red);font-weight:600;font-size:.925rem}\n"] }]
|
|
113
|
+
}], ctorParameters: function () { return [{ type: i8.LoginServiceClass, decorators: [{
|
|
114
|
+
type: Inject,
|
|
115
|
+
args: [ZAC_LOGIN_SERVICE]
|
|
116
|
+
}] }, { type: i9.SettingsServiceClass, decorators: [{
|
|
117
|
+
type: Inject,
|
|
118
|
+
args: [SETTINGS_SERVICE]
|
|
119
|
+
}] }, { type: undefined, decorators: [{
|
|
120
|
+
type: Inject,
|
|
121
|
+
args: [MAT_DIALOG_DATA]
|
|
122
|
+
}] }, { type: i1.Router }, { type: i2.MatDialogRef }]; } });
|
|
123
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9naW4tZGlhbG9nLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3ppdGktY29uc29sZS1saWIvc3JjL2xpYi9mZWF0dXJlcy9sb2dpbi9sb2dpbi1kaWFsb2cuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMveml0aS1jb25zb2xlLWxpYi9zcmMvbGliL2ZlYXR1cmVzL2xvZ2luL2xvZ2luLWRpYWxvZy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7RUFjRTtBQUVGLE9BQU8sRUFBQyxTQUFTLEVBQUUsTUFBTSxFQUFTLE1BQU0sZUFBZSxDQUFDO0FBQ3hELE9BQU8sRUFBQyxlQUFlLEVBQWUsTUFBTSwwQkFBMEIsQ0FBQztBQUd2RSxPQUFPLEVBQW9CLGlCQUFpQixFQUFDLE1BQU0sb0NBQW9DLENBQUM7QUFDeEYsT0FBTyxFQUFDLGdCQUFnQixFQUFDLE1BQU0saUNBQWlDLENBQUM7QUFFakUsT0FBTyxFQUFDLE9BQU8sRUFBQyxNQUFNLFFBQVEsQ0FBQzs7Ozs7Ozs7Ozs7QUFFL0IsTUFLYSxvQkFBb0I7SUFTL0IsWUFDb0MsR0FBc0IsRUFDdEIsZUFBcUMsRUFDdkMsSUFBUyxFQUNqQyxNQUFjLEVBQ2QsU0FBNkM7UUFKbkIsUUFBRyxHQUFILEdBQUcsQ0FBbUI7UUFDdEIsb0JBQWUsR0FBZixlQUFlLENBQXNCO1FBQ3ZDLFNBQUksR0FBSixJQUFJLENBQUs7UUFDakMsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUNkLGNBQVMsR0FBVCxTQUFTLENBQW9DO1FBWnZELFlBQU8sR0FBRyxFQUFFLENBQUE7UUFDWiwyQkFBc0IsR0FBRyxFQUFFLENBQUM7UUFDNUIsYUFBUSxHQUFHLEVBQUUsQ0FBQztRQUNkLGFBQVEsR0FBRyxFQUFFLENBQUM7UUFDZCxnQkFBVyxHQUFHLEtBQUssQ0FBQztRQUNwQix1QkFBa0IsR0FBRyxFQUFFLENBQUM7UUFTdEIsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUM7UUFDcEIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxlQUFlLEdBQUcsSUFBSSxDQUFDO1FBQ2hDLElBQUksQ0FBQyxzQkFBc0IsR0FBRyxJQUFJLENBQUMsZUFBZSxFQUFFLFFBQVEsRUFBRSxzQkFBc0IsQ0FBQztJQUN2RixDQUFDO0lBRUQsUUFBUTtRQUNOLElBQUksQ0FBQyxlQUFlLENBQUMsY0FBYyxDQUFDLFNBQVMsQ0FBQyxDQUFDLE9BQVksRUFBRSxFQUFFO1lBQzdELElBQUksSUFBSSxDQUFDLEdBQUcsQ0FBQyxrQkFBa0IsRUFBRTtnQkFDL0IsT0FBTzthQUNSO1lBQ0QsSUFBSSxPQUFPO2dCQUFFLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUM5QyxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxnQkFBZ0IsQ0FBQyxRQUFhO1FBQzVCLElBQUksQ0FBQyxrQkFBa0IsR0FBRyxFQUFFLENBQUM7UUFDN0IsSUFBSSxRQUFRLENBQUMsZUFBZSxFQUFFLE1BQU0sR0FBRyxDQUFDLEVBQUU7WUFDeEMsSUFBSSxDQUFDLGtCQUFrQixHQUFHLEVBQUUsQ0FBQztZQUM3QixRQUFRLENBQUMsZUFBZSxDQUFDLE9BQU8sQ0FBQyxDQUFDLFVBQVUsRUFBRSxFQUFFO2dCQUM5QyxJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsRUFBRTtvQkFDbkIsT0FBTztpQkFDUjtnQkFDRCxJQUFJLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLEVBQUMsSUFBSSxFQUFDLFVBQVUsQ0FBQyxJQUFJLEdBQUcsS0FBSyxVQUFVLENBQUMsR0FBRyxHQUFHLEVBQUUsS0FBSyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUMsQ0FBQyxDQUFDO1lBQ3ZHLENBQUMsQ0FBQyxDQUFDO1NBQ0o7UUFDRCxNQUFNLFVBQVUsR0FBRyxZQUFZLENBQUMsT0FBTyxDQUFDLHVCQUF1QixDQUFDLENBQUM7UUFDakUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsRUFBRTtZQUN4QixNQUFNLE9BQU8sR0FBUSxJQUFJLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxDQUFDLElBQUksQ0FBQztZQUNqRCxJQUFJLENBQUMsc0JBQXNCLEdBQUcsT0FBTyxDQUFDLElBQUksRUFBRSxDQUFDO1NBQzlDO2FBQU07WUFDTCxJQUFJLENBQUMsc0JBQXNCLEdBQUcsUUFBUSxDQUFDLHNCQUFzQixDQUFDO1NBQy9EO0lBQ0gsQ0FBQztJQUVELFdBQVcsQ0FBQyxLQUFNO1FBQ2hCLElBQUksSUFBSSxDQUFDLHNCQUFzQixFQUFFO1lBQy9CLElBQUksQ0FBQyxlQUFlLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxDQUFBO1NBQ2xFO1FBQ0QsSUFBSSxDQUFDLGVBQWUsQ0FBQyxRQUFRLENBQUMsc0JBQXNCLEdBQUcsSUFBSSxDQUFDLHNCQUFzQixDQUFDO0lBQ3JGLENBQUM7SUFFRCxLQUFLO1FBQ0QsTUFBTSxXQUFXLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxXQUFXLENBQUM7UUFDckQsTUFBTSxNQUFNLEdBQUcsV0FBVyxJQUFJLFdBQVcsQ0FBQyxpQkFBaUIsQ0FBQyxFQUFFLEVBQUUsRUFBRSxJQUFJLElBQUksRUFBRSxDQUFDO1FBQzdFLElBQUksQ0FBQyxXQUFXLEdBQUcsS0FBSyxDQUFDO1FBQ3pCLElBQUksQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUNWLE1BQU0sRUFDTixJQUFJLENBQUMsc0JBQXNCLEVBQzNCLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLEVBQ3BCLElBQUksQ0FBQyxRQUFRLEVBQ2IsS0FBSyxDQUNSLENBQUMsSUFBSSxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUU7WUFDaEIsSUFBSSxNQUFNLEVBQUUsS0FBSyxFQUFFO2dCQUNqQixPQUFPO2FBQ1I7WUFDRCxJQUFJLENBQUMsR0FBRyxDQUFDLGVBQWUsR0FBRyxLQUFLLENBQUM7WUFDakMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUN4RCxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxFQUFDLFVBQVUsRUFBRSxJQUFJLEVBQUMsQ0FBQyxDQUFDO1FBQzNDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxHQUFHLEVBQUU7WUFDWixJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQztRQUMxQixDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFRCxLQUFLO1FBQ0gsSUFBSSxDQUFDLEdBQUcsQ0FBQyxlQUFlLEdBQUcsS0FBSyxDQUFDO1FBQ2pDLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDekIsQ0FBQztJQUVELGlCQUFpQjtRQUNmLElBQUksQ0FBQyxHQUFHLENBQUMsZUFBZSxHQUFHLEtBQUssQ0FBQztRQUNqQyxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxFQUFDLGFBQWEsRUFBRSxJQUFJLEVBQUMsQ0FBQyxDQUFDO0lBQzlDLENBQUM7K0dBdkZVLG9CQUFvQixrQkFVckIsaUJBQWlCLGFBQ2pCLGdCQUFnQixhQUNoQixlQUFlO21HQVpkLG9CQUFvQixtREM5QmpDLDZrRUFxQ0E7O1NEUGEsb0JBQW9COzRGQUFwQixvQkFBb0I7a0JBTGhDLFNBQVM7K0JBQ0UsYUFBYTs7MEJBY3BCLE1BQU07MkJBQUMsaUJBQWlCOzswQkFDeEIsTUFBTTsyQkFBQyxnQkFBZ0I7OzBCQUN2QixNQUFNOzJCQUFDLGVBQWUiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICAgIENvcHlyaWdodCBOZXRGb3VuZHJ5IEluYy5cblxuICAgIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gICAgeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICAgIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuXG4gICAgaHR0cHM6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuXG4gICAgVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICAgIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAgICBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAgICBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gICAgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4qL1xuXG5pbXBvcnQge0NvbXBvbmVudCwgSW5qZWN0LCBPbkluaXR9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtNQVRfRElBTE9HX0RBVEEsIE1hdERpYWxvZ1JlZn0gZnJvbSBcIkBhbmd1bGFyL21hdGVyaWFsL2RpYWxvZ1wiO1xuXG5pbXBvcnQge1JvdXRlcn0gZnJvbSBcIkBhbmd1bGFyL3JvdXRlclwiO1xuaW1wb3J0IHtMb2dpblNlcnZpY2VDbGFzcywgWkFDX0xPR0lOX1NFUlZJQ0V9IGZyb20gXCIuLi8uLi9zZXJ2aWNlcy9sb2dpbi1zZXJ2aWNlLmNsYXNzXCI7XG5pbXBvcnQge1NFVFRJTkdTX1NFUlZJQ0V9IGZyb20gXCIuLi8uLi9zZXJ2aWNlcy9zZXR0aW5ncy5zZXJ2aWNlXCI7XG5pbXBvcnQge1NldHRpbmdzU2VydmljZUNsYXNzfSBmcm9tIFwiLi4vLi4vc2VydmljZXMvc2V0dGluZ3Mtc2VydmljZS5jbGFzc1wiO1xuaW1wb3J0IHtpc0VtcHR5fSBmcm9tIFwibG9kYXNoXCI7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2xpYi1jb25maXJtJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2xvZ2luLWRpYWxvZy5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2xvZ2luLWRpYWxvZy5jb21wb25lbnQuc2NzcyddXG59KVxuZXhwb3J0IGNsYXNzIExvZ2luRGlhbG9nQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcblxuICBkYXRhT2JqID0ge31cbiAgc2VsZWN0ZWRFZGdlQ29udHJvbGxlciA9ICcnO1xuICB1c2VybmFtZSA9ICcnO1xuICBwYXNzd29yZCA9ICcnO1xuICBsb2dpbkZhaWxlZCA9IGZhbHNlO1xuICBlZGdlQ29udHJvbGxlckxpc3QgPSBbXTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBASW5qZWN0KFpBQ19MT0dJTl9TRVJWSUNFKSBwdWJsaWMgc3ZjOiBMb2dpblNlcnZpY2VDbGFzcyxcbiAgICBASW5qZWN0KFNFVFRJTkdTX1NFUlZJQ0UpIHByaXZhdGUgc2V0dGluZ3NTZXJ2aWNlOiBTZXR0aW5nc1NlcnZpY2VDbGFzcyxcbiAgICBASW5qZWN0KE1BVF9ESUFMT0dfREFUQSkgcHVibGljIGRhdGE6IGFueSxcbiAgICBwcml2YXRlIHJvdXRlcjogUm91dGVyLFxuICAgIHByaXZhdGUgZGlhbG9nUmVmOiBNYXREaWFsb2dSZWY8TG9naW5EaWFsb2dDb21wb25lbnQ+XG4gICkge1xuICAgIHRoaXMuZGF0YU9iaiA9IGRhdGE7XG4gICAgdGhpcy5zdmMubG9naW5EaWFsb2dPcGVuID0gdHJ1ZTtcbiAgICB0aGlzLnNlbGVjdGVkRWRnZUNvbnRyb2xsZXIgPSB0aGlzLnNldHRpbmdzU2VydmljZT8uc2V0dGluZ3M/LnNlbGVjdGVkRWRnZUNvbnRyb2xsZXI7XG4gIH1cblxuICBuZ09uSW5pdCgpIHtcbiAgICB0aGlzLnNldHRpbmdzU2VydmljZS5zZXR0aW5nc0NoYW5nZS5zdWJzY3JpYmUoKHJlc3VsdHM6IGFueSkgPT4ge1xuICAgICAgaWYgKHRoaXMuc3ZjLm9yaWdpbklzQ29udHJvbGxlcikge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICBpZiAocmVzdWx0cykgdGhpcy5zZXR0aW5nc1JldHVybmVkKHJlc3VsdHMpO1xuICAgIH0pO1xuICB9XG5cbiAgc2V0dGluZ3NSZXR1cm5lZChzZXR0aW5nczogYW55KSB7XG4gICAgdGhpcy5lZGdlQ29udHJvbGxlckxpc3QgPSBbXTtcbiAgICBpZiAoc2V0dGluZ3MuZWRnZUNvbnRyb2xsZXJzPy5sZW5ndGggPiAwKSB7XG4gICAgICB0aGlzLmVkZ2VDb250cm9sbGVyTGlzdCA9IFtdO1xuICAgICAgc2V0dGluZ3MuZWRnZUNvbnRyb2xsZXJzLmZvckVhY2goKGNvbnRyb2xsZXIpID0+IHtcbiAgICAgICAgaWYgKCFjb250cm9sbGVyLnVybCkge1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmVkZ2VDb250cm9sbGVyTGlzdC5wdXNoKHtuYW1lOmNvbnRyb2xsZXIubmFtZSArIGAgKCR7Y29udHJvbGxlci51cmx9KWAsIHZhbHVlOiBjb250cm9sbGVyLnVybH0pO1xuICAgICAgfSk7XG4gICAgfVxuICAgIGNvbnN0IHNlcnZpY2VVcmwgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbShcInppdGktc2VydmljZVVybC12YWx1ZVwiKTtcbiAgICBpZiAoIWlzRW1wdHkoc2VydmljZVVybCkpIHtcbiAgICAgIGNvbnN0IGxhc3RVcmw6IGFueSA9IEpTT04ucGFyc2Uoc2VydmljZVVybCkuZGF0YTtcbiAgICAgIHRoaXMuc2VsZWN0ZWRFZGdlQ29udHJvbGxlciA9IGxhc3RVcmwudHJpbSgpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnNlbGVjdGVkRWRnZUNvbnRyb2xsZXIgPSBzZXR0aW5ncy5zZWxlY3RlZEVkZ2VDb250cm9sbGVyO1xuICAgIH1cbiAgfVxuXG4gIGVkZ2VDaGFuZ2VkKGV2ZW50Pykge1xuICAgIGlmICh0aGlzLnNlbGVjdGVkRWRnZUNvbnRyb2xsZXIpIHtcbiAgICAgIHRoaXMuc2V0dGluZ3NTZXJ2aWNlLmluaXRBcGlWZXJzaW9ucyh0aGlzLnNlbGVjdGVkRWRnZUNvbnRyb2xsZXIpXG4gICAgfVxuICAgIHRoaXMuc2V0dGluZ3NTZXJ2aWNlLnNldHRpbmdzLnNlbGVjdGVkRWRnZUNvbnRyb2xsZXIgPSB0aGlzLnNlbGVjdGVkRWRnZUNvbnRyb2xsZXI7XG4gIH1cblxuICBsb2dpbigpIHtcbiAgICAgIGNvbnN0IGFwaVZlcnNpb25zID0gdGhpcy5zZXR0aW5nc1NlcnZpY2UuYXBpVmVyc2lvbnM7XG4gICAgICBjb25zdCBwcmVmaXggPSBhcGlWZXJzaW9ucyAmJiBhcGlWZXJzaW9uc1tcImVkZ2UtbWFuYWdlbWVudFwiXT8udjE/LnBhdGggfHwgJyc7XG4gICAgICB0aGlzLmxvZ2luRmFpbGVkID0gZmFsc2U7XG4gICAgICB0aGlzLnN2Yy5sb2dpbihcbiAgICAgICAgICBwcmVmaXgsXG4gICAgICAgICAgdGhpcy5zZWxlY3RlZEVkZ2VDb250cm9sbGVyLFxuICAgICAgICAgIHRoaXMudXNlcm5hbWUudHJpbSgpLFxuICAgICAgICAgIHRoaXMucGFzc3dvcmQsXG4gICAgICAgICAgZmFsc2VcbiAgICAgICkudGhlbigocmVzdWx0KSA9PiB7XG4gICAgICAgIGlmIChyZXN1bHQ/LmVycm9yKSB7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuc3ZjLmxvZ2luRGlhbG9nT3BlbiA9IGZhbHNlO1xuICAgICAgICB0aGlzLnNldHRpbmdzU2VydmljZS5zZXQodGhpcy5zZXR0aW5nc1NlcnZpY2Uuc2V0dGluZ3MpO1xuICAgICAgICB0aGlzLmRpYWxvZ1JlZi5jbG9zZSh7aXNMb2dnZWRJbjogdHJ1ZX0pO1xuICAgICAgfSkuY2F0Y2goKCkgPT4ge1xuICAgICAgICB0aGlzLmxvZ2luRmFpbGVkID0gdHJ1ZTtcbiAgICAgIH0pO1xuICB9XG5cbiAgY2xvc2UoKSB7XG4gICAgdGhpcy5zdmMubG9naW5EaWFsb2dPcGVuID0gZmFsc2U7XG4gICAgdGhpcy5kaWFsb2dSZWYuY2xvc2UoKTtcbiAgfVxuXG4gIHJldHVyblRvTG9naW5QYWdlKCkge1xuICAgIHRoaXMuc3ZjLmxvZ2luRGlhbG9nT3BlbiA9IGZhbHNlO1xuICAgIHRoaXMuZGlhbG9nUmVmLmNsb3NlKHtyZXR1cm5Ub0xvZ2luOiB0cnVlfSk7XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJsb2dpbi1tb2RhbC1jb250YWluZXJcIj5cbiAgICA8ZGl2IGNsYXNzPVwiY2xvc2UgaWNvbi1jbG9zZVwiIChjbGljayk9XCJjbG9zZSgpXCI+PC9kaXY+XG4gICAgPGZvcm0gaWQ9XCJsb2dpbi1mb3JtXCIgKHN1Ym1pdCk9XCJsb2dpbigpXCIgYXV0b2NvbXBsZXRlPVwib25cIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImxvZ2luLW1vZGFsLWJvZHlcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJsb2dpbi1tb2RhbC1jb250ZW50XCI+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImxvZ2luLXRpdGxlLWNvbnRhaW5lclwiPlxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImxvZ2luLXRpdGxlXCI+U2Vzc2lvbiBFeHBpcmVkPC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImxvZ2luLXN1YnRpdGxlXCI+UGxlYXNlIGxvZ2luIHRvIGNvbnRpbnVlLjwvc3Bhbj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibG9naW4tbW9kYWwtbWFpblwiPlxuICAgICAgICAgICAgICAgICAgICA8bGliLXNlbGVjdG9yLWlucHV0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCIhc3ZjLm9yaWdpbklzQ29udHJvbGxlclwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2ZpZWxkTmFtZV09XCInRWRnZSBDb250cm9sbGVyJ1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgWyhmaWVsZFZhbHVlKV09XCJzZWxlY3RlZEVkZ2VDb250cm9sbGVyXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwiJ1NlbGVjdCBhbiBFZGdlIENvbnRyb2xsZXInXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbdmFsdWVMaXN0XT1cImVkZ2VDb250cm9sbGVyTGlzdFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZpZWxkVmFsdWVDaGFuZ2UpPVwiZWRnZUNoYW5nZWQoJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgPC9saWItc2VsZWN0b3ItaW5wdXQ+XG4gICAgICAgICAgICAgICAgICAgIDxsaWItc3RyaW5nLWlucHV0IFtmaWVsZE5hbWVdPVwiJ1VzZXJuYW1lJ1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsoZmllbGRWYWx1ZSldPVwidXNlcm5hbWVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbYXV0b2NvbXBsZXRlXT1cIid1c2VybmFtZSdcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwiJ2VudGVyIHVzZXJuYW1lIG9mIGNvbnRyb2xsZXInXCI+PC9saWItc3RyaW5nLWlucHV0PlxuICAgICAgICAgICAgICAgICAgICA8bGliLXBhc3N3b3JkLWlucHV0IFtmaWVsZE5hbWVdPVwiJ1Bhc3N3b3JkJ1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyhmaWVsZFZhbHVlKV09XCJwYXNzd29yZFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2F1dG9jb21wbGV0ZV09XCInY3VycmVudC1wYXNzd29yZCdcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCInZW50ZXIgcGFzc3dvcmQgb2YgY29udHJvbGxlcidcIj48L2xpYi1wYXNzd29yZC1pbnB1dD5cbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJsb2dpbi1lcnJvci1tZXNzYWdlXCIgKm5nSWY9XCJsb2dpbkZhaWxlZFwiPkxvZ2luIEZhaWxlZDwvc3Bhbj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImxvZ2luLWJ1dHRvbnMtY29udGFpbmVyXCI+XG4gICAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwiYnV0dG9uXCIgdHlwZT1cInN1Ym1pdFwiPkxvZ2luPC9idXR0b24+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwibGlua0J1dHRvbiBjYW5jZWxcIiAoY2xpY2spPVwicmV0dXJuVG9Mb2dpblBhZ2UoKVwiPlJldHVybiB0byBsb2dpbiBwYWdlPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgIDwvZm9ybT5cbjwvZGl2PlxuIl19
|