@openziti/ziti-console-lib 0.12.5 → 0.12.6

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 (22) hide show
  1. package/esm2022/lib/features/progress-meter/progress-meter.component.mjs +44 -0
  2. package/esm2022/lib/features/progress-wizard/progress-wizard.component.mjs +91 -0
  3. package/esm2022/lib/features/visualizer/identity-service-path/identity-service-path.component.mjs +19 -19
  4. package/esm2022/lib/features/visualizer/identity-service-path/identity-service-path.helper.mjs +10 -4
  5. package/esm2022/lib/version.mjs +2 -2
  6. package/esm2022/lib/ziti-console-lib.module.mjs +19 -5
  7. package/esm2022/public-api.mjs +5 -1
  8. package/fesm2022/openziti-ziti-console-lib.mjs +170 -26
  9. package/fesm2022/openziti-ziti-console-lib.mjs.map +1 -1
  10. package/lib/features/progress-meter/progress-meter.component.d.ts +19 -0
  11. package/lib/features/progress-meter/progress-meter.component.d.ts.map +1 -0
  12. package/lib/features/progress-wizard/progress-wizard.component.d.ts +31 -0
  13. package/lib/features/progress-wizard/progress-wizard.component.d.ts.map +1 -0
  14. package/lib/features/visualizer/identity-service-path/identity-service-path.component.d.ts +1 -0
  15. package/lib/features/visualizer/identity-service-path/identity-service-path.component.d.ts.map +1 -1
  16. package/lib/features/visualizer/identity-service-path/identity-service-path.helper.d.ts.map +1 -1
  17. package/lib/features/visualizer/network-visualizer/network-visualizer.component.d.ts +1 -1
  18. package/lib/ziti-console-lib.module.d.ts +20 -18
  19. package/lib/ziti-console-lib.module.d.ts.map +1 -1
  20. package/package.json +1 -1
  21. package/public-api.d.ts +4 -0
  22. package/public-api.d.ts.map +1 -1
@@ -0,0 +1,44 @@
1
+ import { Component, EventEmitter, Input, Output } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ import * as i1 from "@angular/common";
4
+ export class ProgressMeterStep {
5
+ constructor() {
6
+ this.index = 0;
7
+ this.label = '';
8
+ this.state = '';
9
+ }
10
+ }
11
+ ;
12
+ class ProgressMeterComponent {
13
+ constructor() {
14
+ this.errors = {};
15
+ this.title = '';
16
+ this.steps = [];
17
+ this.currentStepIndex = 0;
18
+ this.currentStepChange = new EventEmitter;
19
+ }
20
+ getProgressBarStyle(index) {
21
+ const step = this.steps[index];
22
+ const nextStep = this.steps[index + 1];
23
+ if (step?.state === 'COMPLETE' && nextStep?.state === 'COMPLETE') {
24
+ return true;
25
+ }
26
+ return false;
27
+ }
28
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ProgressMeterComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
29
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: ProgressMeterComponent, selector: "lib-progress-meter", inputs: { title: "title", steps: "steps", currentStepIndex: "currentStepIndex" }, outputs: { currentStepChange: "currentStepChange" }, ngImport: i0, template: "<div class=\"progress-meter-wrapper\">\n <div class=\"progress-meter-container\">\n <div\n *ngFor=\"let step of steps; let index = index\"\n [ngClass]=\"{ 'last-step': index === steps.length - 1 }\"\n class=\"progress-meter-step-container\"\n >\n <div class=\"progress-step-item\" [ngClass]=\"{'in-progress': currentStepIndex === step.index}\">\n <div class=\"progress-step-ball\" [ngClass]=\"{'progress-step-complete': step.state === 'COMPLETE', 'step-in-progress': step.state === 'IN_PROGRESS'}\">\n </div>\n <div *ngIf=\"step.state === 'IN_PROGRESS'\" class=\"spinner\"></div>\n <div class=\"progress-step-label\" [ngClass]=\"{'step-in-progress': step.state === 'IN_PROGRESS'}\">{{ step.label }}</div>\n </div>\n <div *ngIf=\"index !== steps.length - 1\">\n <div class=\"progress-step-bar\"\n [ngClass]=\"{\n 'progress-step-complete': getProgressBarStyle(index),\n 'step-in-progress': currentStepIndex === index + 1\n }\"\n >\n </div>\n </div>\n </div>\n </div>\n</div>\n", styles: [".progress-meter-wrapper{display:flex;align-items:flex-start;font-size:1rem;gap:1rem;width:100%;height:6rem}.progress-meter-wrapper .progress-meter-container{display:flex;flex-direction:row;align-items:center;justify-content:center;position:relative;width:100%;height:3.4375rem;z-index:999999999}.progress-meter-wrapper .progress-meter-container .progress-meter-step-container{display:flex;flex-direction:row;align-items:center;justify-content:center;width:18rem;height:100%}.progress-meter-wrapper .progress-meter-container .progress-meter-step-container.last-step{width:1.875rem}.progress-meter-wrapper .progress-meter-container .progress-meter-step-container .progress-step-item{display:flex;flex-direction:row;align-items:center;justify-content:center;height:100%;width:1.875rem}.progress-meter-wrapper .progress-meter-container .progress-meter-step-container .progress-step-item .progress-step-ball{width:1.875rem;height:1.875rem;border-radius:1.875rem;border:none;background-size:45%;background-position:center center;background-color:var(--placeholder);opacity:.35}.progress-meter-wrapper .progress-meter-container .progress-meter-step-container .progress-step-item .progress-step-ball.progress-step-complete{background-color:var(--green);background-image:url(/assets/images/Icon_Check.png);border:none;opacity:1}.progress-meter-wrapper .progress-meter-container .progress-meter-step-container .progress-step-item .progress-step-ball.step-in-progress{opacity:.35}.progress-meter-wrapper .progress-meter-container .progress-meter-step-container .progress-step-item .spinner{display:inline-block;width:2rem;height:2rem;border-radius:50%;background:transparent;border-top:.25rem solid var(--stroke);border-right:.25rem solid var(--stroke);border-bottom:.25rem solid transparent;border-left:.25rem solid transparent;animation:loading .5s infinite linear;margin-left:-.125rem;margin-top:-.125rem;position:absolute}.progress-meter-wrapper .progress-meter-container .progress-meter-step-container .progress-step-item .progress-step-label{height:1.25rem;font-size:.9375rem;margin-top:.3125rem;display:flex;align-items:center;justify-content:center;position:absolute;top:3.4375rem;color:var(--tableText);text-align:center;width:9.5rem;font-weight:600;opacity:.5}.progress-meter-wrapper .progress-meter-container .progress-meter-step-container .progress-step-item .progress-step-label.step-in-progress{opacity:1}.progress-meter-wrapper .progress-meter-container .progress-meter-step-container .progress-step-bar{background-color:var(--placeholder);border:none;width:16.2rem;height:.5rem;opacity:.35}.progress-meter-wrapper .progress-meter-container .progress-meter-step-container .progress-step-bar.progress-step-complete{background-color:var(--green);opacity:1}.progress-meter-wrapper .progress-meter-container .progress-meter-step-container .progress-step-bar.step-in-progress{opacity:1}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] }); }
30
+ }
31
+ export { ProgressMeterComponent };
32
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ProgressMeterComponent, decorators: [{
33
+ type: Component,
34
+ args: [{ selector: 'lib-progress-meter', template: "<div class=\"progress-meter-wrapper\">\n <div class=\"progress-meter-container\">\n <div\n *ngFor=\"let step of steps; let index = index\"\n [ngClass]=\"{ 'last-step': index === steps.length - 1 }\"\n class=\"progress-meter-step-container\"\n >\n <div class=\"progress-step-item\" [ngClass]=\"{'in-progress': currentStepIndex === step.index}\">\n <div class=\"progress-step-ball\" [ngClass]=\"{'progress-step-complete': step.state === 'COMPLETE', 'step-in-progress': step.state === 'IN_PROGRESS'}\">\n </div>\n <div *ngIf=\"step.state === 'IN_PROGRESS'\" class=\"spinner\"></div>\n <div class=\"progress-step-label\" [ngClass]=\"{'step-in-progress': step.state === 'IN_PROGRESS'}\">{{ step.label }}</div>\n </div>\n <div *ngIf=\"index !== steps.length - 1\">\n <div class=\"progress-step-bar\"\n [ngClass]=\"{\n 'progress-step-complete': getProgressBarStyle(index),\n 'step-in-progress': currentStepIndex === index + 1\n }\"\n >\n </div>\n </div>\n </div>\n </div>\n</div>\n", styles: [".progress-meter-wrapper{display:flex;align-items:flex-start;font-size:1rem;gap:1rem;width:100%;height:6rem}.progress-meter-wrapper .progress-meter-container{display:flex;flex-direction:row;align-items:center;justify-content:center;position:relative;width:100%;height:3.4375rem;z-index:999999999}.progress-meter-wrapper .progress-meter-container .progress-meter-step-container{display:flex;flex-direction:row;align-items:center;justify-content:center;width:18rem;height:100%}.progress-meter-wrapper .progress-meter-container .progress-meter-step-container.last-step{width:1.875rem}.progress-meter-wrapper .progress-meter-container .progress-meter-step-container .progress-step-item{display:flex;flex-direction:row;align-items:center;justify-content:center;height:100%;width:1.875rem}.progress-meter-wrapper .progress-meter-container .progress-meter-step-container .progress-step-item .progress-step-ball{width:1.875rem;height:1.875rem;border-radius:1.875rem;border:none;background-size:45%;background-position:center center;background-color:var(--placeholder);opacity:.35}.progress-meter-wrapper .progress-meter-container .progress-meter-step-container .progress-step-item .progress-step-ball.progress-step-complete{background-color:var(--green);background-image:url(/assets/images/Icon_Check.png);border:none;opacity:1}.progress-meter-wrapper .progress-meter-container .progress-meter-step-container .progress-step-item .progress-step-ball.step-in-progress{opacity:.35}.progress-meter-wrapper .progress-meter-container .progress-meter-step-container .progress-step-item .spinner{display:inline-block;width:2rem;height:2rem;border-radius:50%;background:transparent;border-top:.25rem solid var(--stroke);border-right:.25rem solid var(--stroke);border-bottom:.25rem solid transparent;border-left:.25rem solid transparent;animation:loading .5s infinite linear;margin-left:-.125rem;margin-top:-.125rem;position:absolute}.progress-meter-wrapper .progress-meter-container .progress-meter-step-container .progress-step-item .progress-step-label{height:1.25rem;font-size:.9375rem;margin-top:.3125rem;display:flex;align-items:center;justify-content:center;position:absolute;top:3.4375rem;color:var(--tableText);text-align:center;width:9.5rem;font-weight:600;opacity:.5}.progress-meter-wrapper .progress-meter-container .progress-meter-step-container .progress-step-item .progress-step-label.step-in-progress{opacity:1}.progress-meter-wrapper .progress-meter-container .progress-meter-step-container .progress-step-bar{background-color:var(--placeholder);border:none;width:16.2rem;height:.5rem;opacity:.35}.progress-meter-wrapper .progress-meter-container .progress-meter-step-container .progress-step-bar.progress-step-complete{background-color:var(--green);opacity:1}.progress-meter-wrapper .progress-meter-container .progress-meter-step-container .progress-step-bar.step-in-progress{opacity:1}\n"] }]
35
+ }], ctorParameters: function () { return []; }, propDecorators: { title: [{
36
+ type: Input
37
+ }], steps: [{
38
+ type: Input
39
+ }], currentStepIndex: [{
40
+ type: Input
41
+ }], currentStepChange: [{
42
+ type: Output
43
+ }] } });
44
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZ3Jlc3MtbWV0ZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMveml0aS1jb25zb2xlLWxpYi9zcmMvbGliL2ZlYXR1cmVzL3Byb2dyZXNzLW1ldGVyL3Byb2dyZXNzLW1ldGVyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3ppdGktY29uc29sZS1saWIvc3JjL2xpYi9mZWF0dXJlcy9wcm9ncmVzcy1tZXRlci9wcm9ncmVzcy1tZXRlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFDLE1BQU0sZUFBZSxDQUFDOzs7QUFFckUsTUFBTSxPQUFPLGlCQUFpQjtJQUE5QjtRQUNFLFVBQUssR0FBRyxDQUFDLENBQUM7UUFDVixVQUFLLEdBQVcsRUFBRSxDQUFDO1FBQ25CLFVBQUssR0FBb0UsRUFBRSxDQUFDO0lBQzlFLENBQUM7Q0FBQTtBQUFBLENBQUM7QUFFRixNQUthLHNCQUFzQjtJQVNqQztRQVBBLFdBQU0sR0FBUSxFQUFFLENBQUM7UUFFUixVQUFLLEdBQUcsRUFBRSxDQUFDO1FBQ1gsVUFBSyxHQUF3QixFQUFFLENBQUM7UUFDaEMscUJBQWdCLEdBQUcsQ0FBQyxDQUFDO1FBQ3BCLHNCQUFpQixHQUFHLElBQUksWUFBaUIsQ0FBQztJQUVyQyxDQUFDO0lBRWhCLG1CQUFtQixDQUFDLEtBQUs7UUFDdkIsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUMvQixNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssR0FBRyxDQUFDLENBQUMsQ0FBQztRQUN2QyxJQUFJLElBQUksRUFBRSxLQUFLLEtBQUssVUFBVSxJQUFJLFFBQVEsRUFBRSxLQUFLLEtBQUssVUFBVSxFQUFFO1lBQ2hFLE9BQU8sSUFBSSxDQUFDO1NBQ2I7UUFDRCxPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7K0dBbEJVLHNCQUFzQjttR0FBdEIsc0JBQXNCLGlNQ2JuQyxzbUNBeUJBOztTRFphLHNCQUFzQjs0RkFBdEIsc0JBQXNCO2tCQUxsQyxTQUFTOytCQUNFLG9CQUFvQjswRUFRckIsS0FBSztzQkFBYixLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxnQkFBZ0I7c0JBQXhCLEtBQUs7Z0JBQ0ksaUJBQWlCO3NCQUExQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE91dHB1dH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmV4cG9ydCBjbGFzcyBQcm9ncmVzc01ldGVyU3RlcCB7XG4gIGluZGV4ID0gMDtcbiAgbGFiZWw6IHN0cmluZyA9ICcnO1xuICBzdGF0ZTogJycgfCAnVE9fRE8nIHwgJ0lOX1BST0dSRVNTJyB8ICdDT01QTEVURScgfCAnRVJST1InIHwgJ1dBUk5JTkcnID0gJyc7XG59O1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdsaWItcHJvZ3Jlc3MtbWV0ZXInLFxuICB0ZW1wbGF0ZVVybDogJy4vcHJvZ3Jlc3MtbWV0ZXIuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9wcm9ncmVzcy1tZXRlci5jb21wb25lbnQuc2NzcyddXG59KVxuZXhwb3J0IGNsYXNzIFByb2dyZXNzTWV0ZXJDb21wb25lbnQge1xuXG4gIGVycm9yczogYW55ID0ge307XG5cbiAgQElucHV0KCkgdGl0bGUgPSAnJztcbiAgQElucHV0KCkgc3RlcHM6IFByb2dyZXNzTWV0ZXJTdGVwW10gPSBbXTtcbiAgQElucHV0KCkgY3VycmVudFN0ZXBJbmRleCA9IDA7XG4gIEBPdXRwdXQoKSBjdXJyZW50U3RlcENoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PjtcblxuICBjb25zdHJ1Y3RvcigpIHt9XG5cbiAgZ2V0UHJvZ3Jlc3NCYXJTdHlsZShpbmRleCkge1xuICAgIGNvbnN0IHN0ZXAgPSB0aGlzLnN0ZXBzW2luZGV4XTtcbiAgICBjb25zdCBuZXh0U3RlcCA9IHRoaXMuc3RlcHNbaW5kZXggKyAxXTtcbiAgICBpZiAoc3RlcD8uc3RhdGUgPT09ICdDT01QTEVURScgJiYgbmV4dFN0ZXA/LnN0YXRlID09PSAnQ09NUExFVEUnKSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbn1cbiIsIjxkaXYgY2xhc3M9XCJwcm9ncmVzcy1tZXRlci13cmFwcGVyXCI+XG4gIDxkaXYgY2xhc3M9XCJwcm9ncmVzcy1tZXRlci1jb250YWluZXJcIj5cbiAgICA8ZGl2XG4gICAgICAgICpuZ0Zvcj1cImxldCBzdGVwIG9mIHN0ZXBzOyBsZXQgaW5kZXggPSBpbmRleFwiXG4gICAgICAgIFtuZ0NsYXNzXT1cInsgJ2xhc3Qtc3RlcCc6IGluZGV4ID09PSBzdGVwcy5sZW5ndGggLSAxIH1cIlxuICAgICAgICBjbGFzcz1cInByb2dyZXNzLW1ldGVyLXN0ZXAtY29udGFpbmVyXCJcbiAgICA+XG4gICAgICA8ZGl2IGNsYXNzPVwicHJvZ3Jlc3Mtc3RlcC1pdGVtXCIgW25nQ2xhc3NdPVwieydpbi1wcm9ncmVzcyc6IGN1cnJlbnRTdGVwSW5kZXggPT09IHN0ZXAuaW5kZXh9XCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJwcm9ncmVzcy1zdGVwLWJhbGxcIiBbbmdDbGFzc109XCJ7J3Byb2dyZXNzLXN0ZXAtY29tcGxldGUnOiBzdGVwLnN0YXRlID09PSAnQ09NUExFVEUnLCAnc3RlcC1pbi1wcm9ncmVzcyc6IHN0ZXAuc3RhdGUgPT09ICdJTl9QUk9HUkVTUyd9XCI+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2ICpuZ0lmPVwic3RlcC5zdGF0ZSA9PT0gJ0lOX1BST0dSRVNTJ1wiIGNsYXNzPVwic3Bpbm5lclwiPjwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwicHJvZ3Jlc3Mtc3RlcC1sYWJlbFwiIFtuZ0NsYXNzXT1cInsnc3RlcC1pbi1wcm9ncmVzcyc6IHN0ZXAuc3RhdGUgPT09ICdJTl9QUk9HUkVTUyd9XCI+e3sgc3RlcC5sYWJlbCB9fTwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2ICpuZ0lmPVwiaW5kZXggIT09IHN0ZXBzLmxlbmd0aCAtIDFcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInByb2dyZXNzLXN0ZXAtYmFyXCJcbiAgICAgICAgICAgICBbbmdDbGFzc109XCJ7XG4gICAgICAgICAgICAgICdwcm9ncmVzcy1zdGVwLWNvbXBsZXRlJzogZ2V0UHJvZ3Jlc3NCYXJTdHlsZShpbmRleCksXG4gICAgICAgICAgICAgICdzdGVwLWluLXByb2dyZXNzJzogY3VycmVudFN0ZXBJbmRleCA9PT0gaW5kZXggKyAxXG4gICAgICAgICAgICB9XCJcbiAgICAgICAgPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvZGl2PlxuIl19
@@ -0,0 +1,91 @@
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 "@angular/forms";
5
+ export class ProgressWizardStep {
6
+ constructor() {
7
+ this.index = 0;
8
+ this.label = '';
9
+ }
10
+ }
11
+ ;
12
+ class ProgressWizardComponent {
13
+ constructor() {
14
+ this.errors = {};
15
+ this.title = '';
16
+ this.steps = [];
17
+ this.backButtonLabel = 'Back';
18
+ this.nextButtonLabel = 'Next';
19
+ this.nextButtonDisabled = false;
20
+ this.titleImageSrc = '';
21
+ this.showCloseButton = true;
22
+ this.currentStepIndex = 0;
23
+ this.currentStepIndexChange = new EventEmitter;
24
+ this.close = new EventEmitter;
25
+ this.done = new EventEmitter;
26
+ this.stepChanged = new EventEmitter;
27
+ }
28
+ cancel() {
29
+ this.close.emit();
30
+ }
31
+ confirm() {
32
+ this.close.emit();
33
+ }
34
+ nextStep() {
35
+ if (this.currentStepIndex >= (this.steps.length - 1)) {
36
+ this.done.emit();
37
+ return;
38
+ }
39
+ this.currentStepIndex++;
40
+ this.currentStepIndexChange.emit(this.currentStepIndex);
41
+ this.stepChanged.emit(this.steps[this.currentStepIndex]);
42
+ }
43
+ goToStep(stepNum) {
44
+ this.currentStepIndex = stepNum.index;
45
+ this.currentStepIndexChange.emit(this.currentStepIndex);
46
+ this.stepChanged.emit(this.steps[this.currentStepIndex]);
47
+ }
48
+ prevStep() {
49
+ this.currentStepIndex--;
50
+ this.currentStepIndexChange.emit(this.currentStepIndex);
51
+ this.stepChanged.emit(this.steps[this.currentStepIndex]);
52
+ }
53
+ get progressTrackHeight() {
54
+ const heightfactor = 8.333;
55
+ const trackNumber = ((this.steps ? this.steps.length : 1) - 1);
56
+ const trackHeight = heightfactor * trackNumber;
57
+ return trackHeight + 'rem';
58
+ }
59
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ProgressWizardComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
60
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: ProgressWizardComponent, selector: "lib-progress-wizard", inputs: { title: "title", steps: "steps", backButtonLabel: "backButtonLabel", nextButtonLabel: "nextButtonLabel", nextButtonDisabled: "nextButtonDisabled", titleImageSrc: "titleImageSrc", showCloseButton: "showCloseButton", currentStepIndex: "currentStepIndex" }, outputs: { currentStepIndexChange: "currentStepIndexChange", close: "close", done: "done", stepChanged: "stepChanged" }, ngImport: i0, template: "<div class=\"progress-wizard-wrapper\">\n <div class=\"progress-wizard-container\">\n <div *ngIf=\"showCloseButton\" (click)=\"cancel()\" class=\"close cancel\"></div>\n <div class=\"side-progress-bar\">\n <div class=\"progress-steps\">\n <div class=\"progress-track\" style=\"height: {{progressTrackHeight}}\"></div>\n <div *ngFor=\"let step of steps\" class=\"progress-step\" [ngClass]=\"{'step-active': step.index === currentStepIndex}\" (click)=\"goToStep(step)\">\n <div class=\"progress-step-number\">{{step.index}}</div>\n <div class=\"progress-step-number-background\"></div>\n <div class=\"progress-step-label\">{{step.label}}</div>\n </div>\n </div>\n </div>\n <div>\n <div class=\"center-content-container\">\n <div class=\"center-content\">\n <div class=\"header-title-container\" style=\"display: flex; flex-direction: row; gap: var(--gapSmall);align-items: center;\">\n <div class=\"header-title-image\" style=\"background-image: url({{titleImageSrc}});\"></div>\n <div class=\"header-title-container\">\n <div class=\"header-title\">{{title}}</div>\n </div>\n </div>\n <form name=\"form\" class=\"step-content-form\">\n <div class=\"step-content-wrapper\">\n <ng-content></ng-content>\n </div>\n <div class=\"buttons-container\">\n <div *ngIf=\"currentStepIndex === 0\">\n </div>\n <button *ngIf=\"currentStepIndex > 0\" name=\"action\" type=\"submit\" class=\"btn-primary\" (click)=\"prevStep()\">\n {{backButtonLabel}}\n </button>\n <button name=\"action\" type=\"submit\" class=\"btn-primary\" (click)=\"nextStep()\" [disabled]=\"nextButtonDisabled\">\n {{nextButtonLabel}}\n </button>\n </div>\n </form>\n </div>\n </div>\n </div>\n </div>\n</div>\n", styles: [".progress-wizard-wrapper{width:-moz-fit-content;width:fit-content;height:-moz-fit-content;height:fit-content;box-shadow:-1px 1rem 1.5625rem #0003}.progress-wizard-wrapper .progress-wizard-container{width:-moz-fit-content;width:fit-content;height:-moz-fit-content;height:fit-content;display:flex;flex-direction:row;position:relative}.progress-wizard-wrapper .progress-wizard-container .center-content-container{-webkit-backdrop-filter:saturate(180%) blur(1.25rem);backdrop-filter:saturate(180%) blur(1.25rem);background-color:#eceef2;padding:2.1875rem;border-radius:.5rem;box-shadow:0 0 1.5625rem #0003;display:flex;flex-direction:column;height:100%;max-width:52rem}.progress-wizard-wrapper .progress-wizard-container .center-content-container .center-content{display:flex;flex-direction:column;height:100%}.header-title{color:var(--primaryColor)!important;filter:brightness(var(--brightnessDark));opacity:1;font-family:Russo One,Arial,sans-serif;font-size:2.35rem!important;line-height:unset;font-weight:400!important;margin:0!important;text-align:center;height:100%}.header-title-container{display:flex;flex-direction:column;justify-content:flex-start;align-items:flex-start;overflow:visible}.step-content-container{display:flex;flex-direction:column;align-items:flex-start;justify-content:flex-start;margin-top:var(--marginXL);padding:0!important;width:100%}.step-content-container .step-label-text{text-transform:none;font-size:1.125rem;width:100%;margin-bottom:var(--marginSmall);font-weight:600}.step-content-container .step-label-text.list-instructions{font-size:1rem;font-weight:600}.header-title-image{background-image:url(/assets/svgs/zlan-logo.svg);background-size:4.25rem;height:4.25rem;width:4.25rem}.buttons-container{display:flex;flex-direction:row;justify-content:space-between;align-items:center;margin-top:var(--marginXXL)}.buttons-container button{box-shadow:0 .1875rem .5625rem 0 var(--primaryColorOpaque)!important;color:#fff!important;line-height:2.5rem!important;height:3.125rem!important;border:none!important;vertical-align:middle!important;text-align:center!important;position:relative!important;z-index:1!important;display:inline-block!important;padding:0rem;margin-top:1.5625rem!important;transition:color .2s!important;font-size:.875rem!important;font-weight:600!important;font-family:Open Sans!important;text-transform:uppercase!important;border-radius:.5rem!important;min-width:10rem;background:var(--primaryColor)!important;cursor:pointer}.buttons-container button:hover{outline:0!important;box-shadow:0 .3125rem 1.25rem #0000000d!important}.buttons-container button:active{filter:brightness(95%)!important;box-shadow:none!important;transform:translateY(1px)!important}.buttons-container button.btn-primary{position:relative;width:10rem;margin-top:0!important}.buttons-container button.btn-primary:disabled{filter:grayscale(1);opacity:.5;pointer-events:none}.buttons-container .saving-button,.buttons-container .saving-button:hover{filter:grayscale(1)!important;opacity:.5!important}.side-progress-bar{display:flex;flex-direction:row;width:20rem;margin-right:-1rem;position:relative;border-top-left-radius:.5rem;border-bottom-left-radius:.5rem;background-color:#eceef2f4;align-items:flex-start}.side-progress-bar .progress-steps{display:flex;flex-direction:column;height:100%;width:100%;justify-content:flex-start;align-items:flex-start;gap:5.5rem;cursor:pointer;padding:var(--paddingXXL) 0}.side-progress-bar .progress-steps .progress-track{position:absolute;width:.175rem;background-color:var(--stroke);left:2.175rem;height:23rem;opacity:.4}.side-progress-bar .progress-steps .progress-step{display:flex;flex-direction:row;justify-content:flex-start;align-items:center;width:100%;height:2.5rem;filter:grayscale(1)}.side-progress-bar .progress-steps .progress-step.step-active{filter:none}.side-progress-bar .progress-steps .progress-step.step-active .progress-step-number{opacity:1;box-shadow:1px 0 .8rem #0003}.side-progress-bar .progress-steps .progress-step.step-active .progress-step-label{opacity:1}.side-progress-bar .progress-steps .progress-step-number{width:2.5rem;height:2.5rem;display:flex;align-items:center;justify-content:center;font-size:1.125rem;font-weight:600;background-color:var(--primary);border-style:solid;border-radius:2rem;border-color:#fff;color:var(--white);margin-left:1rem;border-width:.25rem;z-index:999999;opacity:.4}.side-progress-bar .progress-steps .progress-step-label{font-size:1.125rem;font-weight:600;margin-left:var(--marginSmall);opacity:.4}.side-progress-bar .progress-steps .progress-step-number-background{position:absolute;width:2.5rem;height:2.5rem;display:flex;align-items:center;justify-content:center;font-size:1.125rem;font-weight:600;background-color:#eceef2;border-style:solid;border-radius:2rem;border-color:#fff;color:var(--white);margin-left:1rem;border-width:.25rem;z-index:999}.step-content-form{display:flex;flex-direction:column;background-color:transparent;font-family:Open Sans;height:100%}.step-content-form .step-content-wrapper{height:100%;display:flex;flex-direction:column;justify-content:center}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }] }); }
61
+ }
62
+ export { ProgressWizardComponent };
63
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ProgressWizardComponent, decorators: [{
64
+ type: Component,
65
+ args: [{ selector: 'lib-progress-wizard', template: "<div class=\"progress-wizard-wrapper\">\n <div class=\"progress-wizard-container\">\n <div *ngIf=\"showCloseButton\" (click)=\"cancel()\" class=\"close cancel\"></div>\n <div class=\"side-progress-bar\">\n <div class=\"progress-steps\">\n <div class=\"progress-track\" style=\"height: {{progressTrackHeight}}\"></div>\n <div *ngFor=\"let step of steps\" class=\"progress-step\" [ngClass]=\"{'step-active': step.index === currentStepIndex}\" (click)=\"goToStep(step)\">\n <div class=\"progress-step-number\">{{step.index}}</div>\n <div class=\"progress-step-number-background\"></div>\n <div class=\"progress-step-label\">{{step.label}}</div>\n </div>\n </div>\n </div>\n <div>\n <div class=\"center-content-container\">\n <div class=\"center-content\">\n <div class=\"header-title-container\" style=\"display: flex; flex-direction: row; gap: var(--gapSmall);align-items: center;\">\n <div class=\"header-title-image\" style=\"background-image: url({{titleImageSrc}});\"></div>\n <div class=\"header-title-container\">\n <div class=\"header-title\">{{title}}</div>\n </div>\n </div>\n <form name=\"form\" class=\"step-content-form\">\n <div class=\"step-content-wrapper\">\n <ng-content></ng-content>\n </div>\n <div class=\"buttons-container\">\n <div *ngIf=\"currentStepIndex === 0\">\n </div>\n <button *ngIf=\"currentStepIndex > 0\" name=\"action\" type=\"submit\" class=\"btn-primary\" (click)=\"prevStep()\">\n {{backButtonLabel}}\n </button>\n <button name=\"action\" type=\"submit\" class=\"btn-primary\" (click)=\"nextStep()\" [disabled]=\"nextButtonDisabled\">\n {{nextButtonLabel}}\n </button>\n </div>\n </form>\n </div>\n </div>\n </div>\n </div>\n</div>\n", styles: [".progress-wizard-wrapper{width:-moz-fit-content;width:fit-content;height:-moz-fit-content;height:fit-content;box-shadow:-1px 1rem 1.5625rem #0003}.progress-wizard-wrapper .progress-wizard-container{width:-moz-fit-content;width:fit-content;height:-moz-fit-content;height:fit-content;display:flex;flex-direction:row;position:relative}.progress-wizard-wrapper .progress-wizard-container .center-content-container{-webkit-backdrop-filter:saturate(180%) blur(1.25rem);backdrop-filter:saturate(180%) blur(1.25rem);background-color:#eceef2;padding:2.1875rem;border-radius:.5rem;box-shadow:0 0 1.5625rem #0003;display:flex;flex-direction:column;height:100%;max-width:52rem}.progress-wizard-wrapper .progress-wizard-container .center-content-container .center-content{display:flex;flex-direction:column;height:100%}.header-title{color:var(--primaryColor)!important;filter:brightness(var(--brightnessDark));opacity:1;font-family:Russo One,Arial,sans-serif;font-size:2.35rem!important;line-height:unset;font-weight:400!important;margin:0!important;text-align:center;height:100%}.header-title-container{display:flex;flex-direction:column;justify-content:flex-start;align-items:flex-start;overflow:visible}.step-content-container{display:flex;flex-direction:column;align-items:flex-start;justify-content:flex-start;margin-top:var(--marginXL);padding:0!important;width:100%}.step-content-container .step-label-text{text-transform:none;font-size:1.125rem;width:100%;margin-bottom:var(--marginSmall);font-weight:600}.step-content-container .step-label-text.list-instructions{font-size:1rem;font-weight:600}.header-title-image{background-image:url(/assets/svgs/zlan-logo.svg);background-size:4.25rem;height:4.25rem;width:4.25rem}.buttons-container{display:flex;flex-direction:row;justify-content:space-between;align-items:center;margin-top:var(--marginXXL)}.buttons-container button{box-shadow:0 .1875rem .5625rem 0 var(--primaryColorOpaque)!important;color:#fff!important;line-height:2.5rem!important;height:3.125rem!important;border:none!important;vertical-align:middle!important;text-align:center!important;position:relative!important;z-index:1!important;display:inline-block!important;padding:0rem;margin-top:1.5625rem!important;transition:color .2s!important;font-size:.875rem!important;font-weight:600!important;font-family:Open Sans!important;text-transform:uppercase!important;border-radius:.5rem!important;min-width:10rem;background:var(--primaryColor)!important;cursor:pointer}.buttons-container button:hover{outline:0!important;box-shadow:0 .3125rem 1.25rem #0000000d!important}.buttons-container button:active{filter:brightness(95%)!important;box-shadow:none!important;transform:translateY(1px)!important}.buttons-container button.btn-primary{position:relative;width:10rem;margin-top:0!important}.buttons-container button.btn-primary:disabled{filter:grayscale(1);opacity:.5;pointer-events:none}.buttons-container .saving-button,.buttons-container .saving-button:hover{filter:grayscale(1)!important;opacity:.5!important}.side-progress-bar{display:flex;flex-direction:row;width:20rem;margin-right:-1rem;position:relative;border-top-left-radius:.5rem;border-bottom-left-radius:.5rem;background-color:#eceef2f4;align-items:flex-start}.side-progress-bar .progress-steps{display:flex;flex-direction:column;height:100%;width:100%;justify-content:flex-start;align-items:flex-start;gap:5.5rem;cursor:pointer;padding:var(--paddingXXL) 0}.side-progress-bar .progress-steps .progress-track{position:absolute;width:.175rem;background-color:var(--stroke);left:2.175rem;height:23rem;opacity:.4}.side-progress-bar .progress-steps .progress-step{display:flex;flex-direction:row;justify-content:flex-start;align-items:center;width:100%;height:2.5rem;filter:grayscale(1)}.side-progress-bar .progress-steps .progress-step.step-active{filter:none}.side-progress-bar .progress-steps .progress-step.step-active .progress-step-number{opacity:1;box-shadow:1px 0 .8rem #0003}.side-progress-bar .progress-steps .progress-step.step-active .progress-step-label{opacity:1}.side-progress-bar .progress-steps .progress-step-number{width:2.5rem;height:2.5rem;display:flex;align-items:center;justify-content:center;font-size:1.125rem;font-weight:600;background-color:var(--primary);border-style:solid;border-radius:2rem;border-color:#fff;color:var(--white);margin-left:1rem;border-width:.25rem;z-index:999999;opacity:.4}.side-progress-bar .progress-steps .progress-step-label{font-size:1.125rem;font-weight:600;margin-left:var(--marginSmall);opacity:.4}.side-progress-bar .progress-steps .progress-step-number-background{position:absolute;width:2.5rem;height:2.5rem;display:flex;align-items:center;justify-content:center;font-size:1.125rem;font-weight:600;background-color:#eceef2;border-style:solid;border-radius:2rem;border-color:#fff;color:var(--white);margin-left:1rem;border-width:.25rem;z-index:999}.step-content-form{display:flex;flex-direction:column;background-color:transparent;font-family:Open Sans;height:100%}.step-content-form .step-content-wrapper{height:100%;display:flex;flex-direction:column;justify-content:center}\n"] }]
66
+ }], ctorParameters: function () { return []; }, propDecorators: { title: [{
67
+ type: Input
68
+ }], steps: [{
69
+ type: Input
70
+ }], backButtonLabel: [{
71
+ type: Input
72
+ }], nextButtonLabel: [{
73
+ type: Input
74
+ }], nextButtonDisabled: [{
75
+ type: Input
76
+ }], titleImageSrc: [{
77
+ type: Input
78
+ }], showCloseButton: [{
79
+ type: Input
80
+ }], currentStepIndex: [{
81
+ type: Input
82
+ }], currentStepIndexChange: [{
83
+ type: Output
84
+ }], close: [{
85
+ type: Output
86
+ }], done: [{
87
+ type: Output
88
+ }], stepChanged: [{
89
+ type: Output
90
+ }] } });
91
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZ3Jlc3Mtd2l6YXJkLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3ppdGktY29uc29sZS1saWIvc3JjL2xpYi9mZWF0dXJlcy9wcm9ncmVzcy13aXphcmQvcHJvZ3Jlc3Mtd2l6YXJkLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3ppdGktY29uc29sZS1saWIvc3JjL2xpYi9mZWF0dXJlcy9wcm9ncmVzcy13aXphcmQvcHJvZ3Jlc3Mtd2l6YXJkLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQUUsWUFBWSxFQUFVLEtBQUssRUFBRSxNQUFNLEVBQVksTUFBTSxlQUFlLENBQUM7Ozs7QUFJeEYsTUFBTSxPQUFPLGtCQUFrQjtJQUEvQjtRQUNFLFVBQUssR0FBRyxDQUFDLENBQUM7UUFDVixVQUFLLEdBQVcsRUFBRSxDQUFDO0lBQ3JCLENBQUM7Q0FBQTtBQUFBLENBQUM7QUFFRixNQUthLHVCQUF1QjtJQWlCbEM7UUFmQSxXQUFNLEdBQVEsRUFBRSxDQUFDO1FBRVIsVUFBSyxHQUFHLEVBQUUsQ0FBQztRQUNYLFVBQUssR0FBeUIsRUFBRSxDQUFDO1FBQ2pDLG9CQUFlLEdBQUcsTUFBTSxDQUFDO1FBQ3pCLG9CQUFlLEdBQUcsTUFBTSxDQUFDO1FBQ3pCLHVCQUFrQixHQUFHLEtBQUssQ0FBQztRQUMzQixrQkFBYSxHQUFHLEVBQUUsQ0FBQztRQUNuQixvQkFBZSxHQUFHLElBQUksQ0FBQztRQUN2QixxQkFBZ0IsR0FBRyxDQUFDLENBQUM7UUFDcEIsMkJBQXNCLEdBQUcsSUFBSSxZQUFpQixDQUFDO1FBQy9DLFVBQUssR0FBRyxJQUFJLFlBQWlCLENBQUM7UUFDOUIsU0FBSSxHQUFHLElBQUksWUFBaUIsQ0FBQztRQUM3QixnQkFBVyxHQUFHLElBQUksWUFBWSxDQUFDO0lBRTFCLENBQUM7SUFFaEIsTUFBTTtRQUNKLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDcEIsQ0FBQztJQUVELE9BQU87UUFDTCxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksRUFBRSxDQUFDO0lBQ3BCLENBQUM7SUFFRCxRQUFRO1FBQ04sSUFBSSxJQUFJLENBQUMsZ0JBQWdCLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsRUFBRTtZQUNwRCxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO1lBQ2pCLE9BQU87U0FDUjtRQUNELElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO1FBQ3hCLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLENBQUM7UUFDeEQsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDO0lBQzNELENBQUM7SUFFRCxRQUFRLENBQUMsT0FBTztRQUNkLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxPQUFPLENBQUMsS0FBSyxDQUFDO1FBQ3RDLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLENBQUM7UUFDeEQsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDO0lBQzNELENBQUM7SUFFRCxRQUFRO1FBQ04sSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUM7UUFDeEIsSUFBSSxDQUFDLHNCQUFzQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztRQUN4RCxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUM7SUFDM0QsQ0FBQztJQUVELElBQUksbUJBQW1CO1FBQ3JCLE1BQU0sWUFBWSxHQUFHLEtBQUssQ0FBQztRQUMzQixNQUFNLFdBQVcsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBQy9ELE1BQU0sV0FBVyxHQUFHLFlBQVksR0FBRyxXQUFXLENBQUM7UUFDL0MsT0FBTyxXQUFXLEdBQUcsS0FBSyxDQUFDO0lBQzdCLENBQUM7K0dBdERVLHVCQUF1QjttR0FBdkIsdUJBQXVCLDRiQ2RwQyxnK0RBMENBOztTRDVCYSx1QkFBdUI7NEZBQXZCLHVCQUF1QjtrQkFMbkMsU0FBUzsrQkFDRSxxQkFBcUI7MEVBUXRCLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csZUFBZTtzQkFBdkIsS0FBSztnQkFDRyxlQUFlO3NCQUF2QixLQUFLO2dCQUNHLGtCQUFrQjtzQkFBMUIsS0FBSztnQkFDRyxhQUFhO3NCQUFyQixLQUFLO2dCQUNHLGVBQWU7c0JBQXZCLEtBQUs7Z0JBQ0csZ0JBQWdCO3NCQUF4QixLQUFLO2dCQUNJLHNCQUFzQjtzQkFBL0IsTUFBTTtnQkFDRyxLQUFLO3NCQUFkLE1BQU07Z0JBQ0csSUFBSTtzQkFBYixNQUFNO2dCQUNHLFdBQVc7c0JBQXBCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbmplY3QsIElucHV0LCBPdXRwdXQsIFZpZXdDaGlsZH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge2RlbGF5LCBkZWZlciwgaXNFbXB0eX0gZnJvbSBcImxvZGFzaFwiO1xuaW1wb3J0IHtjbG9uZURlZXB9IGZyb20gJ2xvZGFzaC1lcyc7XG5cbmV4cG9ydCBjbGFzcyBQcm9ncmVzc1dpemFyZFN0ZXAge1xuICBpbmRleCA9IDA7XG4gIGxhYmVsOiBzdHJpbmcgPSAnJztcbn07XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2xpYi1wcm9ncmVzcy13aXphcmQnLFxuICB0ZW1wbGF0ZVVybDogJy4vcHJvZ3Jlc3Mtd2l6YXJkLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vcHJvZ3Jlc3Mtd2l6YXJkLmNvbXBvbmVudC5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgUHJvZ3Jlc3NXaXphcmRDb21wb25lbnQge1xuXG4gIGVycm9yczogYW55ID0ge307XG5cbiAgQElucHV0KCkgdGl0bGUgPSAnJztcbiAgQElucHV0KCkgc3RlcHM6IFByb2dyZXNzV2l6YXJkU3RlcFtdID0gW107XG4gIEBJbnB1dCgpIGJhY2tCdXR0b25MYWJlbCA9ICdCYWNrJztcbiAgQElucHV0KCkgbmV4dEJ1dHRvbkxhYmVsID0gJ05leHQnO1xuICBASW5wdXQoKSBuZXh0QnV0dG9uRGlzYWJsZWQgPSBmYWxzZTtcbiAgQElucHV0KCkgdGl0bGVJbWFnZVNyYyA9ICcnO1xuICBASW5wdXQoKSBzaG93Q2xvc2VCdXR0b24gPSB0cnVlO1xuICBASW5wdXQoKSBjdXJyZW50U3RlcEluZGV4ID0gMDtcbiAgQE91dHB1dCgpIGN1cnJlbnRTdGVwSW5kZXhDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT47XG4gIEBPdXRwdXQoKSBjbG9zZSA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PjtcbiAgQE91dHB1dCgpIGRvbmUgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT47XG4gIEBPdXRwdXQoKSBzdGVwQ2hhbmdlZCA9IG5ldyBFdmVudEVtaXR0ZXI7XG5cbiAgY29uc3RydWN0b3IoKSB7fVxuXG4gIGNhbmNlbCgpIHtcbiAgICB0aGlzLmNsb3NlLmVtaXQoKTtcbiAgfVxuXG4gIGNvbmZpcm0oKSB7XG4gICAgdGhpcy5jbG9zZS5lbWl0KCk7XG4gIH1cblxuICBuZXh0U3RlcCgpIHtcbiAgICBpZiAodGhpcy5jdXJyZW50U3RlcEluZGV4ID49ICh0aGlzLnN0ZXBzLmxlbmd0aCAtIDEpKSB7XG4gICAgICB0aGlzLmRvbmUuZW1pdCgpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLmN1cnJlbnRTdGVwSW5kZXgrKztcbiAgICB0aGlzLmN1cnJlbnRTdGVwSW5kZXhDaGFuZ2UuZW1pdCh0aGlzLmN1cnJlbnRTdGVwSW5kZXgpO1xuICAgIHRoaXMuc3RlcENoYW5nZWQuZW1pdCh0aGlzLnN0ZXBzW3RoaXMuY3VycmVudFN0ZXBJbmRleF0pO1xuICB9XG5cbiAgZ29Ub1N0ZXAoc3RlcE51bSkge1xuICAgIHRoaXMuY3VycmVudFN0ZXBJbmRleCA9IHN0ZXBOdW0uaW5kZXg7XG4gICAgdGhpcy5jdXJyZW50U3RlcEluZGV4Q2hhbmdlLmVtaXQodGhpcy5jdXJyZW50U3RlcEluZGV4KTtcbiAgICB0aGlzLnN0ZXBDaGFuZ2VkLmVtaXQodGhpcy5zdGVwc1t0aGlzLmN1cnJlbnRTdGVwSW5kZXhdKTtcbiAgfVxuXG4gIHByZXZTdGVwKCkge1xuICAgIHRoaXMuY3VycmVudFN0ZXBJbmRleC0tO1xuICAgIHRoaXMuY3VycmVudFN0ZXBJbmRleENoYW5nZS5lbWl0KHRoaXMuY3VycmVudFN0ZXBJbmRleCk7XG4gICAgdGhpcy5zdGVwQ2hhbmdlZC5lbWl0KHRoaXMuc3RlcHNbdGhpcy5jdXJyZW50U3RlcEluZGV4XSk7XG4gIH1cblxuICBnZXQgcHJvZ3Jlc3NUcmFja0hlaWdodCgpIHtcbiAgICBjb25zdCBoZWlnaHRmYWN0b3IgPSA4LjMzMztcbiAgICBjb25zdCB0cmFja051bWJlciA9ICgodGhpcy5zdGVwcyA/IHRoaXMuc3RlcHMubGVuZ3RoIDogMSkgLSAxKTtcbiAgICBjb25zdCB0cmFja0hlaWdodCA9IGhlaWdodGZhY3RvciAqIHRyYWNrTnVtYmVyO1xuICAgIHJldHVybiB0cmFja0hlaWdodCArICdyZW0nO1xuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwicHJvZ3Jlc3Mtd2l6YXJkLXdyYXBwZXJcIj5cbiAgPGRpdiBjbGFzcz1cInByb2dyZXNzLXdpemFyZC1jb250YWluZXJcIj5cbiAgICA8ZGl2ICpuZ0lmPVwic2hvd0Nsb3NlQnV0dG9uXCIgKGNsaWNrKT1cImNhbmNlbCgpXCIgY2xhc3M9XCJjbG9zZSBjYW5jZWxcIj48L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwic2lkZS1wcm9ncmVzcy1iYXJcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJwcm9ncmVzcy1zdGVwc1wiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwicHJvZ3Jlc3MtdHJhY2tcIiBzdHlsZT1cImhlaWdodDoge3twcm9ncmVzc1RyYWNrSGVpZ2h0fX1cIj48L2Rpdj5cbiAgICAgICAgPGRpdiAqbmdGb3I9XCJsZXQgc3RlcCBvZiBzdGVwc1wiIGNsYXNzPVwicHJvZ3Jlc3Mtc3RlcFwiIFtuZ0NsYXNzXT1cInsnc3RlcC1hY3RpdmUnOiBzdGVwLmluZGV4ID09PSBjdXJyZW50U3RlcEluZGV4fVwiIChjbGljayk9XCJnb1RvU3RlcChzdGVwKVwiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJwcm9ncmVzcy1zdGVwLW51bWJlclwiPnt7c3RlcC5pbmRleH19PC9kaXY+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cInByb2dyZXNzLXN0ZXAtbnVtYmVyLWJhY2tncm91bmRcIj48L2Rpdj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwicHJvZ3Jlc3Mtc3RlcC1sYWJlbFwiPnt7c3RlcC5sYWJlbH19PC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gICAgPGRpdj5cbiAgICAgIDxkaXYgY2xhc3M9XCJjZW50ZXItY29udGVudC1jb250YWluZXJcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImNlbnRlci1jb250ZW50XCI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImhlYWRlci10aXRsZS1jb250YWluZXJcIiBzdHlsZT1cImRpc3BsYXk6IGZsZXg7IGZsZXgtZGlyZWN0aW9uOiByb3c7IGdhcDogdmFyKC0tZ2FwU21hbGwpO2FsaWduLWl0ZW1zOiBjZW50ZXI7XCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaGVhZGVyLXRpdGxlLWltYWdlXCIgc3R5bGU9XCJiYWNrZ3JvdW5kLWltYWdlOiB1cmwoe3t0aXRsZUltYWdlU3JjfX0pO1wiPjwvZGl2PlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImhlYWRlci10aXRsZS1jb250YWluZXJcIj5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImhlYWRlci10aXRsZVwiPnt7dGl0bGV9fTwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPGZvcm0gbmFtZT1cImZvcm1cIiBjbGFzcz1cInN0ZXAtY29udGVudC1mb3JtXCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3RlcC1jb250ZW50LXdyYXBwZXJcIj5cbiAgICAgICAgICAgICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYnV0dG9ucy1jb250YWluZXJcIj5cbiAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cImN1cnJlbnRTdGVwSW5kZXggPT09IDBcIj5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIDxidXR0b24gKm5nSWY9XCJjdXJyZW50U3RlcEluZGV4ID4gMFwiIG5hbWU9XCJhY3Rpb25cIiB0eXBlPVwic3VibWl0XCIgY2xhc3M9XCJidG4tcHJpbWFyeVwiIChjbGljayk9XCJwcmV2U3RlcCgpXCI+XG4gICAgICAgICAgICAgICAge3tiYWNrQnV0dG9uTGFiZWx9fVxuICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgPGJ1dHRvbiBuYW1lPVwiYWN0aW9uXCIgdHlwZT1cInN1Ym1pdFwiIGNsYXNzPVwiYnRuLXByaW1hcnlcIiAoY2xpY2spPVwibmV4dFN0ZXAoKVwiIFtkaXNhYmxlZF09XCJuZXh0QnV0dG9uRGlzYWJsZWRcIj5cbiAgICAgICAgICAgICAgICB7e25leHRCdXR0b25MYWJlbH19XG4gICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9mb3JtPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvZGl2PlxuIl19