@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.
- package/esm2022/lib/features/progress-meter/progress-meter.component.mjs +44 -0
- package/esm2022/lib/features/progress-wizard/progress-wizard.component.mjs +91 -0
- package/esm2022/lib/features/visualizer/identity-service-path/identity-service-path.component.mjs +19 -19
- package/esm2022/lib/features/visualizer/identity-service-path/identity-service-path.helper.mjs +10 -4
- package/esm2022/lib/version.mjs +2 -2
- package/esm2022/lib/ziti-console-lib.module.mjs +19 -5
- package/esm2022/public-api.mjs +5 -1
- package/fesm2022/openziti-ziti-console-lib.mjs +170 -26
- package/fesm2022/openziti-ziti-console-lib.mjs.map +1 -1
- package/lib/features/progress-meter/progress-meter.component.d.ts +19 -0
- package/lib/features/progress-meter/progress-meter.component.d.ts.map +1 -0
- package/lib/features/progress-wizard/progress-wizard.component.d.ts +31 -0
- package/lib/features/progress-wizard/progress-wizard.component.d.ts.map +1 -0
- package/lib/features/visualizer/identity-service-path/identity-service-path.component.d.ts +1 -0
- package/lib/features/visualizer/identity-service-path/identity-service-path.component.d.ts.map +1 -1
- package/lib/features/visualizer/identity-service-path/identity-service-path.helper.d.ts.map +1 -1
- package/lib/features/visualizer/network-visualizer/network-visualizer.component.d.ts +1 -1
- package/lib/ziti-console-lib.module.d.ts +20 -18
- package/lib/ziti-console-lib.module.d.ts.map +1 -1
- package/package.json +1 -1
- package/public-api.d.ts +4 -0
- 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
|