@cqa-lib/cqa-ui 1.1.43 → 1.1.45
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/esm2020/lib/progress-indicator/progress-indicator.component.mjs +3 -3
- package/esm2020/lib/simulator/simulator.component.mjs +166 -14
- package/esm2020/lib/step-progress-card/step-progress-card.component.mjs +3 -4
- package/esm2020/lib/step-status-card/step-status-card.component.mjs +7 -6
- package/fesm2015/cqa-lib-cqa-ui.mjs +172 -20
- package/fesm2015/cqa-lib-cqa-ui.mjs.map +1 -1
- package/fesm2020/cqa-lib-cqa-ui.mjs +171 -20
- package/fesm2020/cqa-lib-cqa-ui.mjs.map +1 -1
- package/lib/simulator/simulator.component.d.ts +27 -2
- package/lib/step-progress-card/step-progress-card.component.d.ts +1 -1
- package/package.json +1 -1
- package/styles.css +1 -1
|
@@ -5,7 +5,6 @@ export class StepProgressCardComponent {
|
|
|
5
5
|
constructor() {
|
|
6
6
|
this.currentStep = 4;
|
|
7
7
|
this.totalSteps = 6;
|
|
8
|
-
this.subText = 'This may take up to 30s. Preparing environment and dependencies...';
|
|
9
8
|
}
|
|
10
9
|
get progressPercentage() {
|
|
11
10
|
return (this.currentStep / this.totalSteps) * 100;
|
|
@@ -15,10 +14,10 @@ export class StepProgressCardComponent {
|
|
|
15
14
|
}
|
|
16
15
|
}
|
|
17
16
|
StepProgressCardComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: StepProgressCardComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
18
|
-
StepProgressCardComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.4.0", type: StepProgressCardComponent, selector: "cqa-step-progress-card", inputs: { currentStep: "currentStep", totalSteps: "totalSteps", subText: "subText" }, ngImport: i0, template: "<div class=\"cqa-ui-root\">\n <div class=\"cqa-px-[25px] cqa-py-3 cqa-rounded-[14px] cqa-bg-surface-default cqa-flex cqa-flex-col cqa-
|
|
17
|
+
StepProgressCardComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.4.0", type: StepProgressCardComponent, selector: "cqa-step-progress-card", inputs: { currentStep: "currentStep", totalSteps: "totalSteps", subText: "subText" }, ngImport: i0, template: "<div class=\"cqa-ui-root\">\n <div class=\"cqa-px-[25px] cqa-py-3 cqa-rounded-[14px] cqa-bg-surface-default cqa-flex cqa-flex-col cqa-relative cqa-shadow\"\n [ngStyle]=\"{ border: '1px solid #E5E7EB' }\">\n <!-- Card Header with Title and Step Info -->\n <div class=\"cqa-flex cqa-justify-between cqa-items-center cqa-gap-2 cqa-mb-2\">\n <span class=\"cqa-font-normal cqa-text-base cqa-leading-6 cqa-text-[#364153]\">Setup Progress</span>\n <span class=\"cqa-font-normal cqa-text-sm cqa-leading-[18px] cqa-text-metadata-key\">{{ stepText }}</span>\n </div>\n\n <!-- Progress Bar -->\n <div class=\"cqa-flex cqa-items-center cqa-gap-2 cqa-mb-1\">\n <div class=\"cqa-w-full cqa-h-[10px] cqa-rounded-full cqa-bg-primary-surface cqa-overflow-hidden cqa-relative\">\n <div \n class=\"cqa-h-full cqa-bg-primary cqa-rounded-full cqa-transition-all cqa-duration-300 cqa-ease-in-out\" \n [style.width.%]=\"progressPercentage\">\n </div>\n </div>\n </div>\n\n <!-- Sub Text -->\n <div *ngIf=\"subText\" class=\"cqa-font-normal cqa-text-xs cqa-text-metadata-key cqa-mt-1 cqa-truncate cqa-whitespace-nowrap cqa-leading-tight\">\n {{ subText }}\n </div>\n </div>\n</div>\n", directives: [{ type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
|
|
19
18
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: StepProgressCardComponent, decorators: [{
|
|
20
19
|
type: Component,
|
|
21
|
-
args: [{ selector: 'cqa-step-progress-card', template: "<div class=\"cqa-ui-root\">\n <div class=\"cqa-px-[25px] cqa-py-3 cqa-rounded-[14px] cqa-bg-surface-default cqa-flex cqa-flex-col cqa-
|
|
20
|
+
args: [{ selector: 'cqa-step-progress-card', template: "<div class=\"cqa-ui-root\">\n <div class=\"cqa-px-[25px] cqa-py-3 cqa-rounded-[14px] cqa-bg-surface-default cqa-flex cqa-flex-col cqa-relative cqa-shadow\"\n [ngStyle]=\"{ border: '1px solid #E5E7EB' }\">\n <!-- Card Header with Title and Step Info -->\n <div class=\"cqa-flex cqa-justify-between cqa-items-center cqa-gap-2 cqa-mb-2\">\n <span class=\"cqa-font-normal cqa-text-base cqa-leading-6 cqa-text-[#364153]\">Setup Progress</span>\n <span class=\"cqa-font-normal cqa-text-sm cqa-leading-[18px] cqa-text-metadata-key\">{{ stepText }}</span>\n </div>\n\n <!-- Progress Bar -->\n <div class=\"cqa-flex cqa-items-center cqa-gap-2 cqa-mb-1\">\n <div class=\"cqa-w-full cqa-h-[10px] cqa-rounded-full cqa-bg-primary-surface cqa-overflow-hidden cqa-relative\">\n <div \n class=\"cqa-h-full cqa-bg-primary cqa-rounded-full cqa-transition-all cqa-duration-300 cqa-ease-in-out\" \n [style.width.%]=\"progressPercentage\">\n </div>\n </div>\n </div>\n\n <!-- Sub Text -->\n <div *ngIf=\"subText\" class=\"cqa-font-normal cqa-text-xs cqa-text-metadata-key cqa-mt-1 cqa-truncate cqa-whitespace-nowrap cqa-leading-tight\">\n {{ subText }}\n </div>\n </div>\n</div>\n", styles: [] }]
|
|
22
21
|
}], propDecorators: { currentStep: [{
|
|
23
22
|
type: Input
|
|
24
23
|
}], totalSteps: [{
|
|
@@ -26,4 +25,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImpor
|
|
|
26
25
|
}], subText: [{
|
|
27
26
|
type: Input
|
|
28
27
|
}] } });
|
|
29
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
28
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RlcC1wcm9ncmVzcy1jYXJkLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9saWIvc3RlcC1wcm9ncmVzcy1jYXJkL3N0ZXAtcHJvZ3Jlc3MtY2FyZC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9zcmMvbGliL3N0ZXAtcHJvZ3Jlc3MtY2FyZC9zdGVwLXByb2dyZXNzLWNhcmQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7OztBQU9qRCxNQUFNLE9BQU8seUJBQXlCO0lBTHRDO1FBTVcsZ0JBQVcsR0FBVyxDQUFDLENBQUM7UUFDeEIsZUFBVSxHQUFXLENBQUMsQ0FBQztLQVVqQztJQVBDLElBQUksa0JBQWtCO1FBQ3BCLE9BQU8sQ0FBQyxJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxHQUFHLENBQUM7SUFDcEQsQ0FBQztJQUVELElBQUksUUFBUTtRQUNWLE9BQU8sUUFBUSxJQUFJLENBQUMsV0FBVyxPQUFPLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztJQUMxRCxDQUFDOztzSEFYVSx5QkFBeUI7MEdBQXpCLHlCQUF5QixvSkNQdEMsb3VDQXlCQTsyRkRsQmEseUJBQXlCO2tCQUxyQyxTQUFTOytCQUNFLHdCQUF3Qjs4QkFLekIsV0FBVztzQkFBbkIsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnY3FhLXN0ZXAtcHJvZ3Jlc3MtY2FyZCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9zdGVwLXByb2dyZXNzLWNhcmQuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFtdXG59KVxuZXhwb3J0IGNsYXNzIFN0ZXBQcm9ncmVzc0NhcmRDb21wb25lbnQge1xuICBASW5wdXQoKSBjdXJyZW50U3RlcDogbnVtYmVyID0gNDtcbiAgQElucHV0KCkgdG90YWxTdGVwczogbnVtYmVyID0gNjtcbiAgQElucHV0KCkgc3ViVGV4dD86IHN0cmluZztcblxuICBnZXQgcHJvZ3Jlc3NQZXJjZW50YWdlKCk6IG51bWJlciB7XG4gICAgcmV0dXJuICh0aGlzLmN1cnJlbnRTdGVwIC8gdGhpcy50b3RhbFN0ZXBzKSAqIDEwMDtcbiAgfVxuXG4gIGdldCBzdGVwVGV4dCgpOiBzdHJpbmcge1xuICAgIHJldHVybiBgU3RlcCAke3RoaXMuY3VycmVudFN0ZXB9IG9mICR7dGhpcy50b3RhbFN0ZXBzfWA7XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJjcWEtdWktcm9vdFwiPlxuICA8ZGl2IGNsYXNzPVwiY3FhLXB4LVsyNXB4XSBjcWEtcHktMyBjcWEtcm91bmRlZC1bMTRweF0gY3FhLWJnLXN1cmZhY2UtZGVmYXVsdCBjcWEtZmxleCBjcWEtZmxleC1jb2wgY3FhLXJlbGF0aXZlIGNxYS1zaGFkb3dcIlxuICAgIFtuZ1N0eWxlXT1cInsgYm9yZGVyOiAnMXB4IHNvbGlkICNFNUU3RUInIH1cIj5cbiAgICA8IS0tIENhcmQgSGVhZGVyIHdpdGggVGl0bGUgYW5kIFN0ZXAgSW5mbyAtLT5cbiAgICA8ZGl2IGNsYXNzPVwiY3FhLWZsZXggY3FhLWp1c3RpZnktYmV0d2VlbiBjcWEtaXRlbXMtY2VudGVyIGNxYS1nYXAtMiBjcWEtbWItMlwiPlxuICAgICAgPHNwYW4gY2xhc3M9XCJjcWEtZm9udC1ub3JtYWwgY3FhLXRleHQtYmFzZSBjcWEtbGVhZGluZy02IGNxYS10ZXh0LVsjMzY0MTUzXVwiPlNldHVwIFByb2dyZXNzPC9zcGFuPlxuICAgICAgPHNwYW4gY2xhc3M9XCJjcWEtZm9udC1ub3JtYWwgY3FhLXRleHQtc20gY3FhLWxlYWRpbmctWzE4cHhdIGNxYS10ZXh0LW1ldGFkYXRhLWtleVwiPnt7IHN0ZXBUZXh0IH19PC9zcGFuPlxuICAgIDwvZGl2PlxuXG4gICAgPCEtLSBQcm9ncmVzcyBCYXIgLS0+XG4gICAgPGRpdiBjbGFzcz1cImNxYS1mbGV4IGNxYS1pdGVtcy1jZW50ZXIgY3FhLWdhcC0yIGNxYS1tYi0xXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwiY3FhLXctZnVsbCBjcWEtaC1bMTBweF0gY3FhLXJvdW5kZWQtZnVsbCBjcWEtYmctcHJpbWFyeS1zdXJmYWNlIGNxYS1vdmVyZmxvdy1oaWRkZW4gY3FhLXJlbGF0aXZlXCI+XG4gICAgICAgIDxkaXYgXG4gICAgICAgICAgY2xhc3M9XCJjcWEtaC1mdWxsIGNxYS1iZy1wcmltYXJ5IGNxYS1yb3VuZGVkLWZ1bGwgY3FhLXRyYW5zaXRpb24tYWxsIGNxYS1kdXJhdGlvbi0zMDAgY3FhLWVhc2UtaW4tb3V0XCIgXG4gICAgICAgICAgW3N0eWxlLndpZHRoLiVdPVwicHJvZ3Jlc3NQZXJjZW50YWdlXCI+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG5cbiAgICA8IS0tIFN1YiBUZXh0IC0tPlxuICAgIDxkaXYgKm5nSWY9XCJzdWJUZXh0XCIgY2xhc3M9XCJjcWEtZm9udC1ub3JtYWwgY3FhLXRleHQteHMgY3FhLXRleHQtbWV0YWRhdGEta2V5IGNxYS1tdC0xIGNxYS10cnVuY2F0ZSBjcWEtd2hpdGVzcGFjZS1ub3dyYXAgY3FhLWxlYWRpbmctdGlnaHRcIj5cbiAgICAgICAge3sgc3ViVGV4dCB9fVxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvZGl2PlxuIl19
|
|
@@ -7,6 +7,7 @@ export class StepStatusCardComponent {
|
|
|
7
7
|
this.title = '';
|
|
8
8
|
this.description = '';
|
|
9
9
|
this.type = 'waiting';
|
|
10
|
+
this.icon = '';
|
|
10
11
|
}
|
|
11
12
|
get statusConfig() {
|
|
12
13
|
const configs = {
|
|
@@ -25,7 +26,7 @@ export class StepStatusCardComponent {
|
|
|
25
26
|
iconColor: '#1B1FEB',
|
|
26
27
|
statusColor: '#1216CC',
|
|
27
28
|
statusBgColor: '#D8D9FC',
|
|
28
|
-
icon: '
|
|
29
|
+
icon: '',
|
|
29
30
|
label: 'Running'
|
|
30
31
|
},
|
|
31
32
|
waiting: {
|
|
@@ -42,16 +43,16 @@ export class StepStatusCardComponent {
|
|
|
42
43
|
}
|
|
43
44
|
get cardStyles() {
|
|
44
45
|
return {
|
|
45
|
-
'border': '1px solid ' + this.statusConfig
|
|
46
|
-
'background-color': this.statusConfig
|
|
46
|
+
'border': '1px solid ' + (this.statusConfig?.borderColor || '#E5E7EB'),
|
|
47
|
+
'background-color': (this.statusConfig?.bgColor || '#FFFFFF')
|
|
47
48
|
};
|
|
48
49
|
}
|
|
49
50
|
}
|
|
50
51
|
StepStatusCardComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: StepStatusCardComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
51
|
-
StepStatusCardComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.4.0", type: StepStatusCardComponent, selector: "cqa-step-status-card", inputs: { title: "title", description: "description", type: "type", icon: "icon" }, ngImport: i0, template: "<div class=\"cqa-ui-root\">\n <div \n class=\"cqa-p-4 cqa-rounded-[14px] cqa-shadow cqa-flex cqa-items-center cqa-justify-between cqa-transition-all\"\n [ngStyle]=\"cardStyles\">\n \n <!-- Left Section: Icon and Text -->\n <div class=\"cqa-flex cqa-items-start cqa-gap-3 cqa-flex-1\">\n <!-- Icon -->\n <div class=\"cqa-
|
|
52
|
+
StepStatusCardComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.4.0", type: StepStatusCardComponent, selector: "cqa-step-status-card", inputs: { title: "title", description: "description", type: "type", icon: "icon" }, ngImport: i0, template: "<div class=\"cqa-ui-root\">\n <div \n class=\"cqa-p-4 cqa-rounded-[14px] cqa-shadow cqa-flex cqa-items-center cqa-justify-between cqa-transition-all\"\n [ngStyle]=\"cardStyles\">\n \n <!-- Left Section: Icon and Text -->\n <div class=\"cqa-flex cqa-items-start cqa-gap-3 cqa-flex-1\">\n <!-- Icon -->\n <div class=\"cqa-mt-1\">\n <mat-icon \n *ngIf=\"icon || statusConfig?.icon\"\n class=\"!cqa-text-[20px] cqa-w-[20px] cqa-h-[20px]\"\n [ngClass]=\"{ 'cqa-animate-spin': type === 'running' }\"\n [ngStyle]=\"{ color: statusConfig?.iconColor }\">\n {{ icon || statusConfig?.icon }}\n </mat-icon>\n\n <svg *ngIf=\"type === 'running' && !icon\" class=\"cqa-animate-spin\" width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" \n fill=\"none\" [attr.stroke]=\"statusConfig?.iconColor\" stroke-width=\"2\">\n <path d=\"M21 12a9 9 0 1 1-6.219-8.56\"></path>\n </svg>\n </div>\n \n <!-- Text Content -->\n <div class=\"cqa-flex cqa-flex-col cqa-gap-1\">\n <span class=\"cqa-text-base cqa-leading-6 cqa-text-[#101828] cqa-tracking-normal\">\n {{ title }}\n </span>\n <span class=\"cqa-text-sm cqa-font-normal cqa-leading-[18px] cqa-text-[#4A5565] cqa-tracking-normal\">\n {{ description }}\n </span>\n </div>\n </div>\n \n <!-- Right Section: Status Badge -->\n <div class=\"cqa-flex-shrink-0\">\n <span \n class=\"cqa-px-2 cqa-py-0.5 cqa-rounded-lg cqa-text-xs cqa-font-medium cqa-leading-4 cqa-tracking-normal\"\n [ngStyle]=\"{ color: statusConfig?.statusColor, backgroundColor: statusConfig?.statusBgColor}\">\n {{ statusConfig?.label }}\n </span>\n </div>\n </div>\n</div>\n", components: [{ type: i1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }], directives: [{ type: i2.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }] });
|
|
52
53
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: StepStatusCardComponent, decorators: [{
|
|
53
54
|
type: Component,
|
|
54
|
-
args: [{ selector: 'cqa-step-status-card', template: "<div class=\"cqa-ui-root\">\n <div \n class=\"cqa-p-4 cqa-rounded-[14px] cqa-shadow cqa-flex cqa-items-center cqa-justify-between cqa-transition-all\"\n [ngStyle]=\"cardStyles\">\n \n <!-- Left Section: Icon and Text -->\n <div class=\"cqa-flex cqa-items-start cqa-gap-3 cqa-flex-1\">\n <!-- Icon -->\n <div class=\"cqa-
|
|
55
|
+
args: [{ selector: 'cqa-step-status-card', template: "<div class=\"cqa-ui-root\">\n <div \n class=\"cqa-p-4 cqa-rounded-[14px] cqa-shadow cqa-flex cqa-items-center cqa-justify-between cqa-transition-all\"\n [ngStyle]=\"cardStyles\">\n \n <!-- Left Section: Icon and Text -->\n <div class=\"cqa-flex cqa-items-start cqa-gap-3 cqa-flex-1\">\n <!-- Icon -->\n <div class=\"cqa-mt-1\">\n <mat-icon \n *ngIf=\"icon || statusConfig?.icon\"\n class=\"!cqa-text-[20px] cqa-w-[20px] cqa-h-[20px]\"\n [ngClass]=\"{ 'cqa-animate-spin': type === 'running' }\"\n [ngStyle]=\"{ color: statusConfig?.iconColor }\">\n {{ icon || statusConfig?.icon }}\n </mat-icon>\n\n <svg *ngIf=\"type === 'running' && !icon\" class=\"cqa-animate-spin\" width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" \n fill=\"none\" [attr.stroke]=\"statusConfig?.iconColor\" stroke-width=\"2\">\n <path d=\"M21 12a9 9 0 1 1-6.219-8.56\"></path>\n </svg>\n </div>\n \n <!-- Text Content -->\n <div class=\"cqa-flex cqa-flex-col cqa-gap-1\">\n <span class=\"cqa-text-base cqa-leading-6 cqa-text-[#101828] cqa-tracking-normal\">\n {{ title }}\n </span>\n <span class=\"cqa-text-sm cqa-font-normal cqa-leading-[18px] cqa-text-[#4A5565] cqa-tracking-normal\">\n {{ description }}\n </span>\n </div>\n </div>\n \n <!-- Right Section: Status Badge -->\n <div class=\"cqa-flex-shrink-0\">\n <span \n class=\"cqa-px-2 cqa-py-0.5 cqa-rounded-lg cqa-text-xs cqa-font-medium cqa-leading-4 cqa-tracking-normal\"\n [ngStyle]=\"{ color: statusConfig?.statusColor, backgroundColor: statusConfig?.statusBgColor}\">\n {{ statusConfig?.label }}\n </span>\n </div>\n </div>\n</div>\n", styles: [] }]
|
|
55
56
|
}], propDecorators: { title: [{
|
|
56
57
|
type: Input
|
|
57
58
|
}], description: [{
|
|
@@ -61,4 +62,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImpor
|
|
|
61
62
|
}], icon: [{
|
|
62
63
|
type: Input
|
|
63
64
|
}] } });
|
|
64
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
65
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RlcC1zdGF0dXMtY2FyZC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvbGliL3N0ZXAtc3RhdHVzLWNhcmQvc3RlcC1zdGF0dXMtY2FyZC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9zcmMvbGliL3N0ZXAtc3RhdHVzLWNhcmQvc3RlcC1zdGF0dXMtY2FyZC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQzs7OztBQU9qRCxNQUFNLE9BQU8sdUJBQXVCO0lBTHBDO1FBTVcsVUFBSyxHQUFXLEVBQUUsQ0FBQztRQUNuQixnQkFBVyxHQUFXLEVBQUUsQ0FBQztRQUN6QixTQUFJLEdBQW9DLFNBQVMsQ0FBQztRQUNsRCxTQUFJLEdBQVksRUFBRSxDQUFDO0tBeUM3QjtJQXZDQyxJQUFJLFlBQVk7UUFDZCxNQUFNLE9BQU8sR0FBRztZQUNkLEtBQUssRUFBRTtnQkFDTCxXQUFXLEVBQUUsU0FBUztnQkFDdEIsT0FBTyxFQUFFLFNBQVM7Z0JBQ2xCLFNBQVMsRUFBRSxTQUFTO2dCQUNwQixXQUFXLEVBQUUsU0FBUztnQkFDdEIsYUFBYSxFQUFFLFNBQVM7Z0JBQ3hCLElBQUksRUFBRSxjQUFjO2dCQUNwQixLQUFLLEVBQUUsT0FBTzthQUNmO1lBQ0QsT0FBTyxFQUFFO2dCQUNQLFdBQVcsRUFBRSxTQUFTO2dCQUN0QixPQUFPLEVBQUUsV0FBVztnQkFDcEIsU0FBUyxFQUFFLFNBQVM7Z0JBQ3BCLFdBQVcsRUFBRSxTQUFTO2dCQUN0QixhQUFhLEVBQUUsU0FBUztnQkFDeEIsSUFBSSxFQUFFLEVBQUU7Z0JBQ1IsS0FBSyxFQUFFLFNBQVM7YUFDakI7WUFDRCxPQUFPLEVBQUU7Z0JBQ1AsV0FBVyxFQUFFLFNBQVM7Z0JBQ3RCLE9BQU8sRUFBRSxTQUFTO2dCQUNsQixTQUFTLEVBQUUsU0FBUztnQkFDcEIsV0FBVyxFQUFFLFNBQVM7Z0JBQ3RCLGFBQWEsRUFBRSxTQUFTO2dCQUN4QixJQUFJLEVBQUUsVUFBVTtnQkFDaEIsS0FBSyxFQUFFLFNBQVM7YUFDakI7U0FDRixDQUFDO1FBQ0YsT0FBTyxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzVCLENBQUM7SUFFRCxJQUFJLFVBQVU7UUFDWixPQUFPO1lBQ0wsUUFBUSxFQUFFLFlBQVksR0FBRSxDQUFDLElBQUksQ0FBQyxZQUFZLEVBQUUsV0FBVyxJQUFJLFNBQVMsQ0FBQztZQUNyRSxrQkFBa0IsRUFBRSxDQUFDLElBQUksQ0FBQyxZQUFZLEVBQUUsT0FBTyxJQUFJLFNBQVMsQ0FBQztTQUM5RCxDQUFDO0lBQ0osQ0FBQzs7b0hBNUNVLHVCQUF1Qjt3R0FBdkIsdUJBQXVCLGdKQ1BwQywwd0RBNENBOzJGRHJDYSx1QkFBdUI7a0JBTG5DLFNBQVM7K0JBQ0Usc0JBQXNCOzhCQUt2QixLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFDRyxJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdjcWEtc3RlcC1zdGF0dXMtY2FyZCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9zdGVwLXN0YXR1cy1jYXJkLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbXVxufSlcbmV4cG9ydCBjbGFzcyBTdGVwU3RhdHVzQ2FyZENvbXBvbmVudCB7XG4gIEBJbnB1dCgpIHRpdGxlOiBzdHJpbmcgPSAnJztcbiAgQElucHV0KCkgZGVzY3JpcHRpb246IHN0cmluZyA9ICcnO1xuICBASW5wdXQoKSB0eXBlOiAncmVhZHknIHwgJ3J1bm5pbmcnIHwgJ3dhaXRpbmcnID0gJ3dhaXRpbmcnO1xuICBASW5wdXQoKSBpY29uPzogc3RyaW5nID0gJyc7XG5cbiAgZ2V0IHN0YXR1c0NvbmZpZygpIHtcbiAgICBjb25zdCBjb25maWdzID0ge1xuICAgICAgcmVhZHk6IHtcbiAgICAgICAgYm9yZGVyQ29sb3I6ICcjQjlGOENGJyxcbiAgICAgICAgYmdDb2xvcjogJyNGMEZERjQnLFxuICAgICAgICBpY29uQ29sb3I6ICcjMDBBNjNFJyxcbiAgICAgICAgc3RhdHVzQ29sb3I6ICcjMDA4MjM2JyxcbiAgICAgICAgc3RhdHVzQmdDb2xvcjogJyNEQ0ZDRTcnLFxuICAgICAgICBpY29uOiAnY2hlY2tfY2lyY2xlJyxcbiAgICAgICAgbGFiZWw6ICdSZWFkeSdcbiAgICAgIH0sXG4gICAgICBydW5uaW5nOiB7XG4gICAgICAgIGJvcmRlckNvbG9yOiAnI0Q4RDlGQycsXG4gICAgICAgIGJnQ29sb3I6ICcjRDhEOUZDNEQnLFxuICAgICAgICBpY29uQ29sb3I6ICcjMUIxRkVCJyxcbiAgICAgICAgc3RhdHVzQ29sb3I6ICcjMTIxNkNDJyxcbiAgICAgICAgc3RhdHVzQmdDb2xvcjogJyNEOEQ5RkMnLFxuICAgICAgICBpY29uOiAnJyxcbiAgICAgICAgbGFiZWw6ICdSdW5uaW5nJ1xuICAgICAgfSxcbiAgICAgIHdhaXRpbmc6IHtcbiAgICAgICAgYm9yZGVyQ29sb3I6ICcjRTVFN0VCJyxcbiAgICAgICAgYmdDb2xvcjogJyNGRkZGRkYnLFxuICAgICAgICBpY29uQ29sb3I6ICcjOTlBMUFGJyxcbiAgICAgICAgc3RhdHVzQ29sb3I6ICcjNEE1NTY1JyxcbiAgICAgICAgc3RhdHVzQmdDb2xvcjogJyNGM0Y0RjYnLFxuICAgICAgICBpY29uOiAnc2NoZWR1bGUnLFxuICAgICAgICBsYWJlbDogJ1dhaXRpbmcnXG4gICAgICB9XG4gICAgfTtcbiAgICByZXR1cm4gY29uZmlnc1t0aGlzLnR5cGVdO1xuICB9XG5cbiAgZ2V0IGNhcmRTdHlsZXMoKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgICdib3JkZXInOiAnMXB4IHNvbGlkICcrICh0aGlzLnN0YXR1c0NvbmZpZz8uYm9yZGVyQ29sb3IgfHwgJyNFNUU3RUInKSxcbiAgICAgICdiYWNrZ3JvdW5kLWNvbG9yJzogKHRoaXMuc3RhdHVzQ29uZmlnPy5iZ0NvbG9yIHx8ICcjRkZGRkZGJylcbiAgICB9O1xuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwiY3FhLXVpLXJvb3RcIj5cbiAgPGRpdiBcbiAgICBjbGFzcz1cImNxYS1wLTQgY3FhLXJvdW5kZWQtWzE0cHhdIGNxYS1zaGFkb3cgY3FhLWZsZXggY3FhLWl0ZW1zLWNlbnRlciBjcWEtanVzdGlmeS1iZXR3ZWVuIGNxYS10cmFuc2l0aW9uLWFsbFwiXG4gICAgW25nU3R5bGVdPVwiY2FyZFN0eWxlc1wiPlxuICAgIFxuICAgIDwhLS0gTGVmdCBTZWN0aW9uOiBJY29uIGFuZCBUZXh0IC0tPlxuICAgIDxkaXYgY2xhc3M9XCJjcWEtZmxleCBjcWEtaXRlbXMtc3RhcnQgY3FhLWdhcC0zIGNxYS1mbGV4LTFcIj5cbiAgICAgIDwhLS0gSWNvbiAtLT5cbiAgICAgIDxkaXYgY2xhc3M9XCJjcWEtbXQtMVwiPlxuICAgICAgICA8bWF0LWljb24gXG4gICAgICAgICAgKm5nSWY9XCJpY29uIHx8IHN0YXR1c0NvbmZpZz8uaWNvblwiXG4gICAgICAgICAgY2xhc3M9XCIhY3FhLXRleHQtWzIwcHhdIGNxYS13LVsyMHB4XSBjcWEtaC1bMjBweF1cIlxuICAgICAgICAgIFtuZ0NsYXNzXT1cInsgJ2NxYS1hbmltYXRlLXNwaW4nOiB0eXBlID09PSAncnVubmluZycgfVwiXG4gICAgICAgICAgW25nU3R5bGVdPVwieyBjb2xvcjogc3RhdHVzQ29uZmlnPy5pY29uQ29sb3IgfVwiPlxuICAgICAgICAgIHt7IGljb24gfHwgc3RhdHVzQ29uZmlnPy5pY29uIH19XG4gICAgICAgIDwvbWF0LWljb24+XG5cbiAgICAgICAgPHN2ZyAqbmdJZj1cInR5cGUgPT09ICdydW5uaW5nJyAmJiAhaWNvblwiIGNsYXNzPVwiY3FhLWFuaW1hdGUtc3BpblwiIHdpZHRoPVwiMjBcIiBoZWlnaHQ9XCIyMFwiIHZpZXdCb3g9XCIwIDAgMjQgMjRcIiBcbiAgICAgICAgICBmaWxsPVwibm9uZVwiIFthdHRyLnN0cm9rZV09XCJzdGF0dXNDb25maWc/Lmljb25Db2xvclwiIHN0cm9rZS13aWR0aD1cIjJcIj5cbiAgICAgICAgICA8cGF0aCBkPVwiTTIxIDEyYTkgOSAwIDEgMS02LjIxOS04LjU2XCI+PC9wYXRoPlxuICAgICAgICA8L3N2Zz5cbiAgICAgIDwvZGl2PlxuICAgICAgXG4gICAgICA8IS0tIFRleHQgQ29udGVudCAtLT5cbiAgICAgIDxkaXYgY2xhc3M9XCJjcWEtZmxleCBjcWEtZmxleC1jb2wgY3FhLWdhcC0xXCI+XG4gICAgICAgIDxzcGFuIGNsYXNzPVwiY3FhLXRleHQtYmFzZSBjcWEtbGVhZGluZy02IGNxYS10ZXh0LVsjMTAxODI4XSBjcWEtdHJhY2tpbmctbm9ybWFsXCI+XG4gICAgICAgICAge3sgdGl0bGUgfX1cbiAgICAgICAgPC9zcGFuPlxuICAgICAgICA8c3BhbiBjbGFzcz1cImNxYS10ZXh0LXNtIGNxYS1mb250LW5vcm1hbCBjcWEtbGVhZGluZy1bMThweF0gY3FhLXRleHQtWyM0QTU1NjVdIGNxYS10cmFja2luZy1ub3JtYWxcIj5cbiAgICAgICAgICB7eyBkZXNjcmlwdGlvbiB9fVxuICAgICAgICA8L3NwYW4+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgICBcbiAgICA8IS0tIFJpZ2h0IFNlY3Rpb246IFN0YXR1cyBCYWRnZSAtLT5cbiAgICA8ZGl2IGNsYXNzPVwiY3FhLWZsZXgtc2hyaW5rLTBcIj5cbiAgICAgIDxzcGFuIFxuICAgICAgICBjbGFzcz1cImNxYS1weC0yIGNxYS1weS0wLjUgY3FhLXJvdW5kZWQtbGcgY3FhLXRleHQteHMgY3FhLWZvbnQtbWVkaXVtIGNxYS1sZWFkaW5nLTQgY3FhLXRyYWNraW5nLW5vcm1hbFwiXG4gICAgICAgIFtuZ1N0eWxlXT1cInsgY29sb3I6IHN0YXR1c0NvbmZpZz8uc3RhdHVzQ29sb3IsIGJhY2tncm91bmRDb2xvcjogc3RhdHVzQ29uZmlnPy5zdGF0dXNCZ0NvbG9yfVwiPlxuICAgICAgICB7eyBzdGF0dXNDb25maWc/LmxhYmVsIH19XG4gICAgICA8L3NwYW4+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC9kaXY+XG4iXX0=
|