@cqa-lib/cqa-ui 1.1.50 → 1.1.51
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/dashboards/failed-test-cases-card/failed-test-cases-card.component.mjs +19 -3
- package/esm2020/lib/dashboards/metrics-card/metrics-card.component.mjs +3 -3
- package/esm2020/lib/dashboards/test-distribution-card/test-distribution-card.component.mjs +14 -3
- package/esm2020/lib/failed-step-card/failed-step-card.component.mjs +3 -3
- package/esm2020/lib/simulator/simulator.component.mjs +3 -3
- package/fesm2015/cqa-lib-cqa-ui.mjs +37 -10
- package/fesm2015/cqa-lib-cqa-ui.mjs.map +1 -1
- package/fesm2020/cqa-lib-cqa-ui.mjs +37 -10
- package/fesm2020/cqa-lib-cqa-ui.mjs.map +1 -1
- package/lib/dashboards/failed-test-cases-card/failed-test-cases-card.component.d.ts +5 -1
- package/lib/dashboards/test-distribution-card/test-distribution-card.component.d.ts +4 -0
- package/package.json +1 -1
- package/styles.css +1 -1
|
@@ -24,6 +24,8 @@ export class FailedTestCasesCardComponent {
|
|
|
24
24
|
this.leftAccentClass = 'cqa-border-l-[4px]';
|
|
25
25
|
/** Optional tags to render under the title */
|
|
26
26
|
this.tags = [];
|
|
27
|
+
/** Minimum number of tags to display before showing count */
|
|
28
|
+
this.minTags = 3;
|
|
27
29
|
/** Emitted when the card is clicked */
|
|
28
30
|
this.cardClick = new EventEmitter();
|
|
29
31
|
}
|
|
@@ -34,6 +36,18 @@ export class FailedTestCasesCardComponent {
|
|
|
34
36
|
// Trim and return the root cause text
|
|
35
37
|
return this.rootCause.trim();
|
|
36
38
|
}
|
|
39
|
+
get visibleTags() {
|
|
40
|
+
if (!this.tags || this.tags.length <= this.minTags) {
|
|
41
|
+
return this.tags || [];
|
|
42
|
+
}
|
|
43
|
+
return this.tags.slice(0, this.minTags);
|
|
44
|
+
}
|
|
45
|
+
get overflowTagsCount() {
|
|
46
|
+
if (!this.tags || this.tags.length <= this.minTags) {
|
|
47
|
+
return 0;
|
|
48
|
+
}
|
|
49
|
+
return this.tags.length - this.minTags;
|
|
50
|
+
}
|
|
37
51
|
onCardClick() {
|
|
38
52
|
this.cardClick.emit();
|
|
39
53
|
}
|
|
@@ -74,10 +88,10 @@ export class FailedTestCasesCardComponent {
|
|
|
74
88
|
}
|
|
75
89
|
}
|
|
76
90
|
FailedTestCasesCardComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: FailedTestCasesCardComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
77
|
-
FailedTestCasesCardComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.4.0", type: FailedTestCasesCardComponent, selector: "cqa-failed-test-cases-card", inputs: { title: "title", fullTitle: "fullTitle", failures: "failures", failuresLabel: "failuresLabel", pillClass: "pillClass", rootCause: "rootCause", rootCauseLabel: "rootCauseLabel", showRootCause: "showRootCause", lastFailed: "lastFailed", lastFailedLabel: "lastFailedLabel", cardClass: "cardClass", leftAccentClass: "leftAccentClass", tags: "tags" }, outputs: { cardClick: "cardClick" }, host: { classAttribute: "cqa-ui-root" }, ngImport: i0, template: "<div class=\"cqa-ui-root\">\n <div class=\"cqa-w-full cqa-bg-[#FEF2F240] cqa-border cqa-border-solid cqa-border-[#E5E7EB] cqa-border-l-[#EF4444] cqa-rounded-[10px] cqa-p-[10px] cqa-pl-[20px] cqa-cursor-pointer cqa-transition-shadow cqa-duration-200 hover:cqa-shadow-md\"\n [ngClass]=\"[leftAccentClass, cardClass]\"\n (click)=\"onCardClick()\">\n <div class=\"cqa-flex cqa-flex-col cqa-gap-2\">\n <div class=\"cqa-flex cqa-items-start cqa-justify-between cqa-gap-2 cqa-flex-wrap\">\n <!-- Title with Copy Button -->\n <div class=\"cqa-flex cqa-items-center cqa-gap-2 cqa-flex-1 cqa-min-w-0\">\n <h3 class=\"cqa-text-[14px] cqa-leading-[17px] cqa-font-semibold cqa-font-inter cqa-text-[#1A1A1A] cqa-truncate\">{{ title }}</h3>\n <button\n type=\"button\"\n class=\"cqa-inline-flex cqa-cursor-pointer cqa-outline-none cqa-bg-transparent cqa-border-none cqa-p-1 cqa-items-center cqa-justify-center cqa-min-w-[20px] cqa-min-h-[20px] cqa-flex-shrink-0 cqa-text-[#6B7280] hover:cqa-text-[#1A1A1A] cqa-transition-colors\"\n (click)=\"onCopyTitle($event)\"\n [attr.aria-label]=\"'Copy title'\"\n title=\"Copy title\"\n >\n <mat-icon class=\"cqa-w-4 cqa-h-4 cqa-text-[16px] cqa-leading-[16px]\">content_copy</mat-icon>\n </button>\n </div>\n\n <!-- Failures pill -->\n <span class=\"cqa-px-[11px] cqa-py-[3px] cqa-rounded-full cqa-text-[12px] cqa-leading-[16px] cqa-font-medium cqa-font-inter cqa-tracking-[0.3px]\"\n [ngClass]=\"pillClass\">\n {{ failures | number }} {{ failuresLabel }}\n </span>\n </div>\n\n <!-- Tags -->\n <div *ngIf=\"tags?.length\" class=\"cqa-flex cqa-flex-wrap cqa-gap-2\">\n <span\n *ngFor=\"let tag of
|
|
91
|
+
FailedTestCasesCardComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.4.0", type: FailedTestCasesCardComponent, selector: "cqa-failed-test-cases-card", inputs: { title: "title", fullTitle: "fullTitle", failures: "failures", failuresLabel: "failuresLabel", pillClass: "pillClass", rootCause: "rootCause", rootCauseLabel: "rootCauseLabel", showRootCause: "showRootCause", lastFailed: "lastFailed", lastFailedLabel: "lastFailedLabel", cardClass: "cardClass", leftAccentClass: "leftAccentClass", tags: "tags", minTags: "minTags" }, outputs: { cardClick: "cardClick" }, host: { classAttribute: "cqa-ui-root" }, ngImport: i0, template: "<div class=\"cqa-ui-root\" style=\"height: 100%\">\n <div class=\"cqa-w-full cqa-h-full cqa-bg-[#FEF2F240] cqa-border cqa-border-solid cqa-border-[#E5E7EB] cqa-border-l-[#EF4444] cqa-rounded-[10px] cqa-p-[10px] cqa-pl-[20px] cqa-cursor-pointer cqa-transition-shadow cqa-duration-200 hover:cqa-shadow-md\n cqa-flex cqa-flex-col cqa-justify-between\"\n [ngClass]=\"[leftAccentClass, cardClass]\"\n (click)=\"onCardClick()\">\n <div class=\"cqa-flex cqa-flex-col cqa-gap-2\">\n <div class=\"cqa-flex cqa-items-start cqa-justify-between cqa-gap-2 cqa-flex-wrap\">\n <!-- Title with Copy Button -->\n <div class=\"cqa-flex cqa-items-center cqa-gap-2 cqa-flex-1 cqa-min-w-0\">\n <h3 class=\"cqa-text-[14px] cqa-leading-[17px] cqa-font-semibold cqa-font-inter cqa-text-[#1A1A1A] cqa-truncate\">{{ title }}</h3>\n <button\n type=\"button\"\n class=\"cqa-inline-flex cqa-cursor-pointer cqa-outline-none cqa-bg-transparent cqa-border-none cqa-p-1 cqa-items-center cqa-justify-center cqa-min-w-[20px] cqa-min-h-[20px] cqa-flex-shrink-0 cqa-text-[#6B7280] hover:cqa-text-[#1A1A1A] cqa-transition-colors\"\n (click)=\"onCopyTitle($event)\"\n [attr.aria-label]=\"'Copy title'\"\n title=\"Copy title\"\n >\n <mat-icon class=\"cqa-w-4 cqa-h-4 cqa-text-[16px] cqa-leading-[16px]\">content_copy</mat-icon>\n </button>\n </div>\n\n <!-- Failures pill -->\n <span class=\"cqa-px-[11px] cqa-py-[3px] cqa-rounded-full cqa-text-[12px] cqa-leading-[16px] cqa-font-medium cqa-font-inter cqa-tracking-[0.3px]\"\n [ngClass]=\"pillClass\">\n {{ failures | number }} {{ failuresLabel }}\n </span>\n </div>\n\n <!-- Tags -->\n <div *ngIf=\"tags?.length\" class=\"cqa-flex cqa-flex-wrap cqa-gap-2\">\n <span\n *ngFor=\"let tag of visibleTags\"\n class=\"cqa-inline-flex cqa-items-center cqa-gap-1 cqa-border-solid cqa-rounded-full cqa-bg-white cqa-border cqa-border-[#E5E7EB] cqa-text-[#1F1F24] cqa-text-[11px] cqa-leading-[14px] cqa-font-semibold cqa-font-inter cqa-px-[10px] cqa-py-[4px]\">\n {{ tag }}\n </span>\n <span\n *ngIf=\"overflowTagsCount > 0\"\n class=\"cqa-inline-flex cqa-items-center cqa-gap-1 cqa-border-solid cqa-rounded-full cqa-bg-white cqa-border cqa-border-[#E5E7EB] cqa-text-[#1F1F24] cqa-text-[11px] cqa-leading-[14px] cqa-font-semibold cqa-font-inter cqa-px-[10px] cqa-py-[4px]\">\n +{{ overflowTagsCount }}\n </span>\n </div>\n </div>\n\n <div class=\"cqa-flex cqa-items-center cqa-justify-between cqa-flex-wrap cqa-mt-2\">\n <!-- Root cause -->\n <div *ngIf=\"showRootCause\" class=\"cqa-text-[12px] cqa-leading-[15px] cqa-font-inter cqa-text-[#F15F5F] cqa-flex-1 cqa-min-w-0 cqa-mr-2 cqa-truncate\">\n <span class=\"cqa-font-semibold\">{{ rootCauseLabel }}: </span>{{ rootCauseDisplay }}\n </div>\n\n <!-- Timestamp -->\n <div *ngIf=\"lastFailed\"\n class=\"cqa-py-[3px] cqa-flex cqa-items-center cqa-gap-1 cqa-text-[10px] cqa-leading-[15px] cqa-font-medium cqa-font-inter cqa-text-dialog-muted\">\n <svg width=\"12\" height=\"12\" viewBox=\"0 0 12 12\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M6 11C8.76142 11 11 8.76142 11 6C11 3.23858 8.76142 1 6 1C3.23858 1 1 3.23858 1 6C1 8.76142 3.23858 11 6 11Z\" stroke=\"#6B7280\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M6 3V6L8 7\" stroke=\"#6B7280\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></svg>\n <span>{{ lastFailedLabel }}: {{ lastFailed }}</span>\n </div>\n </div>\n </div>\n</div>", components: [{ type: i1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }], directives: [{ type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }], pipes: { "number": i2.DecimalPipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
78
92
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: FailedTestCasesCardComponent, decorators: [{
|
|
79
93
|
type: Component,
|
|
80
|
-
args: [{ selector: 'cqa-failed-test-cases-card', changeDetection: ChangeDetectionStrategy.OnPush, host: { class: 'cqa-ui-root' }, template: "<div class=\"cqa-ui-root\">\n <div class=\"cqa-w-full cqa-bg-[#FEF2F240] cqa-border cqa-border-solid cqa-border-[#E5E7EB] cqa-border-l-[#EF4444] cqa-rounded-[10px] cqa-p-[10px] cqa-pl-[20px] cqa-cursor-pointer cqa-transition-shadow cqa-duration-200 hover:cqa-shadow-md\"\n [ngClass]=\"[leftAccentClass, cardClass]\"\n (click)=\"onCardClick()\">\n <div class=\"cqa-flex cqa-flex-col cqa-gap-2\">\n <div class=\"cqa-flex cqa-items-start cqa-justify-between cqa-gap-2 cqa-flex-wrap\">\n <!-- Title with Copy Button -->\n <div class=\"cqa-flex cqa-items-center cqa-gap-2 cqa-flex-1 cqa-min-w-0\">\n <h3 class=\"cqa-text-[14px] cqa-leading-[17px] cqa-font-semibold cqa-font-inter cqa-text-[#1A1A1A] cqa-truncate\">{{ title }}</h3>\n <button\n type=\"button\"\n class=\"cqa-inline-flex cqa-cursor-pointer cqa-outline-none cqa-bg-transparent cqa-border-none cqa-p-1 cqa-items-center cqa-justify-center cqa-min-w-[20px] cqa-min-h-[20px] cqa-flex-shrink-0 cqa-text-[#6B7280] hover:cqa-text-[#1A1A1A] cqa-transition-colors\"\n (click)=\"onCopyTitle($event)\"\n [attr.aria-label]=\"'Copy title'\"\n title=\"Copy title\"\n >\n <mat-icon class=\"cqa-w-4 cqa-h-4 cqa-text-[16px] cqa-leading-[16px]\">content_copy</mat-icon>\n </button>\n </div>\n\n <!-- Failures pill -->\n <span class=\"cqa-px-[11px] cqa-py-[3px] cqa-rounded-full cqa-text-[12px] cqa-leading-[16px] cqa-font-medium cqa-font-inter cqa-tracking-[0.3px]\"\n [ngClass]=\"pillClass\">\n {{ failures | number }} {{ failuresLabel }}\n </span>\n </div>\n\n <!-- Tags -->\n <div *ngIf=\"tags?.length\" class=\"cqa-flex cqa-flex-wrap cqa-gap-2\">\n <span\n *ngFor=\"let tag of
|
|
94
|
+
args: [{ selector: 'cqa-failed-test-cases-card', changeDetection: ChangeDetectionStrategy.OnPush, host: { class: 'cqa-ui-root' }, template: "<div class=\"cqa-ui-root\" style=\"height: 100%\">\n <div class=\"cqa-w-full cqa-h-full cqa-bg-[#FEF2F240] cqa-border cqa-border-solid cqa-border-[#E5E7EB] cqa-border-l-[#EF4444] cqa-rounded-[10px] cqa-p-[10px] cqa-pl-[20px] cqa-cursor-pointer cqa-transition-shadow cqa-duration-200 hover:cqa-shadow-md\n cqa-flex cqa-flex-col cqa-justify-between\"\n [ngClass]=\"[leftAccentClass, cardClass]\"\n (click)=\"onCardClick()\">\n <div class=\"cqa-flex cqa-flex-col cqa-gap-2\">\n <div class=\"cqa-flex cqa-items-start cqa-justify-between cqa-gap-2 cqa-flex-wrap\">\n <!-- Title with Copy Button -->\n <div class=\"cqa-flex cqa-items-center cqa-gap-2 cqa-flex-1 cqa-min-w-0\">\n <h3 class=\"cqa-text-[14px] cqa-leading-[17px] cqa-font-semibold cqa-font-inter cqa-text-[#1A1A1A] cqa-truncate\">{{ title }}</h3>\n <button\n type=\"button\"\n class=\"cqa-inline-flex cqa-cursor-pointer cqa-outline-none cqa-bg-transparent cqa-border-none cqa-p-1 cqa-items-center cqa-justify-center cqa-min-w-[20px] cqa-min-h-[20px] cqa-flex-shrink-0 cqa-text-[#6B7280] hover:cqa-text-[#1A1A1A] cqa-transition-colors\"\n (click)=\"onCopyTitle($event)\"\n [attr.aria-label]=\"'Copy title'\"\n title=\"Copy title\"\n >\n <mat-icon class=\"cqa-w-4 cqa-h-4 cqa-text-[16px] cqa-leading-[16px]\">content_copy</mat-icon>\n </button>\n </div>\n\n <!-- Failures pill -->\n <span class=\"cqa-px-[11px] cqa-py-[3px] cqa-rounded-full cqa-text-[12px] cqa-leading-[16px] cqa-font-medium cqa-font-inter cqa-tracking-[0.3px]\"\n [ngClass]=\"pillClass\">\n {{ failures | number }} {{ failuresLabel }}\n </span>\n </div>\n\n <!-- Tags -->\n <div *ngIf=\"tags?.length\" class=\"cqa-flex cqa-flex-wrap cqa-gap-2\">\n <span\n *ngFor=\"let tag of visibleTags\"\n class=\"cqa-inline-flex cqa-items-center cqa-gap-1 cqa-border-solid cqa-rounded-full cqa-bg-white cqa-border cqa-border-[#E5E7EB] cqa-text-[#1F1F24] cqa-text-[11px] cqa-leading-[14px] cqa-font-semibold cqa-font-inter cqa-px-[10px] cqa-py-[4px]\">\n {{ tag }}\n </span>\n <span\n *ngIf=\"overflowTagsCount > 0\"\n class=\"cqa-inline-flex cqa-items-center cqa-gap-1 cqa-border-solid cqa-rounded-full cqa-bg-white cqa-border cqa-border-[#E5E7EB] cqa-text-[#1F1F24] cqa-text-[11px] cqa-leading-[14px] cqa-font-semibold cqa-font-inter cqa-px-[10px] cqa-py-[4px]\">\n +{{ overflowTagsCount }}\n </span>\n </div>\n </div>\n\n <div class=\"cqa-flex cqa-items-center cqa-justify-between cqa-flex-wrap cqa-mt-2\">\n <!-- Root cause -->\n <div *ngIf=\"showRootCause\" class=\"cqa-text-[12px] cqa-leading-[15px] cqa-font-inter cqa-text-[#F15F5F] cqa-flex-1 cqa-min-w-0 cqa-mr-2 cqa-truncate\">\n <span class=\"cqa-font-semibold\">{{ rootCauseLabel }}: </span>{{ rootCauseDisplay }}\n </div>\n\n <!-- Timestamp -->\n <div *ngIf=\"lastFailed\"\n class=\"cqa-py-[3px] cqa-flex cqa-items-center cqa-gap-1 cqa-text-[10px] cqa-leading-[15px] cqa-font-medium cqa-font-inter cqa-text-dialog-muted\">\n <svg width=\"12\" height=\"12\" viewBox=\"0 0 12 12\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M6 11C8.76142 11 11 8.76142 11 6C11 3.23858 8.76142 1 6 1C3.23858 1 1 3.23858 1 6C1 8.76142 3.23858 11 6 11Z\" stroke=\"#6B7280\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M6 3V6L8 7\" stroke=\"#6B7280\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></svg>\n <span>{{ lastFailedLabel }}: {{ lastFailed }}</span>\n </div>\n </div>\n </div>\n</div>", styles: [] }]
|
|
81
95
|
}], propDecorators: { title: [{
|
|
82
96
|
type: Input
|
|
83
97
|
}], fullTitle: [{
|
|
@@ -104,7 +118,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImpor
|
|
|
104
118
|
type: Input
|
|
105
119
|
}], tags: [{
|
|
106
120
|
type: Input
|
|
121
|
+
}], minTags: [{
|
|
122
|
+
type: Input
|
|
107
123
|
}], cardClick: [{
|
|
108
124
|
type: Output
|
|
109
125
|
}] } });
|
|
110
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmFpbGVkLXRlc3QtY2FzZXMtY2FyZC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2Rhc2hib2FyZHMvZmFpbGVkLXRlc3QtY2FzZXMtY2FyZC9mYWlsZWQtdGVzdC1jYXNlcy1jYXJkLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWIvZGFzaGJvYXJkcy9mYWlsZWQtdGVzdC1jYXNlcy1jYXJkL2ZhaWxlZC10ZXN0LWNhc2VzLWNhcmQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBRSxNQUFNLGVBQWUsQ0FBQzs7OztBQVNoRyxNQUFNLE9BQU8sNEJBQTRCO0lBUHpDO1FBUUUsbUNBQW1DO1FBQzFCLFVBQUssR0FBVyxrQkFBa0IsQ0FBQztRQUc1QyxnREFBZ0Q7UUFDdkMsYUFBUSxHQUFXLENBQUMsQ0FBQztRQUM5QixvQ0FBb0M7UUFDM0Isa0JBQWEsR0FBVyxVQUFVLENBQUM7UUFDNUMsb0RBQW9EO1FBQzNDLGNBQVMsR0FBVyxxQ0FBcUMsQ0FBQztRQUduRSwrQ0FBK0M7UUFDdEMsbUJBQWMsR0FBVyxZQUFZLENBQUM7UUFDL0Msd0NBQXdDO1FBQy9CLGtCQUFhLEdBQVksSUFBSSxDQUFDO1FBR3ZDLDBCQUEwQjtRQUNqQixvQkFBZSxHQUFXLGFBQWEsQ0FBQztRQUNqRCw4Q0FBOEM7UUFDckMsY0FBUyxHQUFXLEVBQUUsQ0FBQztRQUNoQywrQkFBK0I7UUFDdEIsb0JBQWUsR0FBVyxvQkFBb0IsQ0FBQztRQUN4RCw4Q0FBOEM7UUFDckMsU0FBSSxHQUFhLEVBQUUsQ0FBQztRQUM3Qix1Q0FBdUM7UUFDN0IsY0FBUyxHQUFHLElBQUksWUFBWSxFQUFRLENBQUM7S0FrRGhEO0lBaERDLElBQUksZ0JBQWdCO1FBQ2xC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bXBvbmVudCwgSW5wdXQsIE91dHB1dCwgRXZlbnRFbWl0dGVyIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2NxYS1mYWlsZWQtdGVzdC1jYXNlcy1jYXJkJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2ZhaWxlZC10ZXN0LWNhc2VzLWNhcmQuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFtdLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgaG9zdDogeyBjbGFzczogJ2NxYS11aS1yb290JyB9XG59KVxuZXhwb3J0IGNsYXNzIEZhaWxlZFRlc3RDYXNlc0NhcmRDb21wb25lbnQge1xuICAvKiogRS5nLiwgXCJDLTYyOiBVcGxvYWQgQ29udGVudFwiICovXG4gIEBJbnB1dCgpIHRpdGxlOiBzdHJpbmcgPSAnRmFpbGVkIFRlc3QgQ2FzZSc7XG4gIC8qKiBGdWxsIHRpdGxlIHRleHQgdG8gY29weSAoaWYgZGlmZmVyZW50IGZyb20gZGlzcGxheWVkIHRpdGxlKSAqL1xuICBASW5wdXQoKSBmdWxsVGl0bGU/OiBzdHJpbmc7XG4gIC8qKiBOdW1iZXIgb2YgZmFpbHVyZXMgdG8gZGlzcGxheSBpbiB0aGUgcGlsbCAqL1xuICBASW5wdXQoKSBmYWlsdXJlczogbnVtYmVyID0gMDtcbiAgLyoqIFBpbGwgbGFiZWwgKGUuZy4sIFwiZmFpbHVyZXNcIikgKi9cbiAgQElucHV0KCkgZmFpbHVyZXNMYWJlbDogc3RyaW5nID0gJ2ZhaWx1cmVzJztcbiAgLyoqIE9wdGlvbmFsIGN1c3RvbSBjbGFzcyBmb3IgdGhlIHBpbGwgYmFja2dyb3VuZCAqL1xuICBASW5wdXQoKSBwaWxsQ2xhc3M6IHN0cmluZyA9ICdjcWEtYmctWyNGMTVGNUZdIGNxYS10ZXh0LVsjRkFGQUZBXSc7XG4gIC8qKiBSb290IGNhdXNlIHRleHQ7IHdoZW4gZW1wdHksIHNob3cgYSBkZWZhdWx0IG1lc3NhZ2UgKi9cbiAgQElucHV0KCkgcm9vdENhdXNlPzogc3RyaW5nO1xuICAvKiogUm9vdCBjYXVzZSBsYWJlbCAobGVmdCBwYXJ0LCBlbXBoYXNpemVkKSAqL1xuICBASW5wdXQoKSByb290Q2F1c2VMYWJlbDogc3RyaW5nID0gJ1Jvb3QgY2F1c2UnO1xuICAvKiogSWYgZmFsc2UsIGhpZGUgdGhlIHJvb3QgY2F1c2Ugcm93ICovXG4gIEBJbnB1dCgpIHNob3dSb290Q2F1c2U6IGJvb2xlYW4gPSB0cnVlO1xuICAvKiogTGFzdCBmYWlsZWQgdGV4dCAoZS5nLiwgXCIyIGhvdXJzIGFnb1wiKSAqL1xuICBASW5wdXQoKSBsYXN0RmFpbGVkPzogc3RyaW5nO1xuICAvKiogTGFiZWwgZm9yIHRpbWVzdGFtcCAqL1xuICBASW5wdXQoKSBsYXN0RmFpbGVkTGFiZWw6IHN0cmluZyA9ICdMYXN0IGZhaWxlZCc7XG4gIC8qKiBPcHRpb25hbCBleHRyYSBjbGFzcyBmb3IgdGhlIG91dGVyIGNhcmQgKi9cbiAgQElucHV0KCkgY2FyZENsYXNzOiBzdHJpbmcgPSAnJztcbiAgLyoqIExlZnQgYm9yZGVyIGFjY2VudCBjbGFzcyAqL1xuICBASW5wdXQoKSBsZWZ0QWNjZW50Q2xhc3M6IHN0cmluZyA9ICdjcWEtYm9yZGVyLWwtWzRweF0nO1xuICAvKiogT3B0aW9uYWwgdGFncyB0byByZW5kZXIgdW5kZXIgdGhlIHRpdGxlICovXG4gIEBJbnB1dCgpIHRhZ3M6IHN0cmluZ1tdID0gW107XG4gIC8qKiBFbWl0dGVkIHdoZW4gdGhlIGNhcmQgaXMgY2xpY2tlZCAqL1xuICBAT3V0cHV0KCkgY2FyZENsaWNrID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuXG4gIGdldCByb290Q2F1c2VEaXNwbGF5KCk6IHN0cmluZyB7XG4gICAgaWYgKCF0aGlzLnJvb3RDYXVzZSB8fCAhdGhpcy5yb290Q2F1c2UudHJpbSgpLmxlbmd0aCkge1xuICAgICAgcmV0dXJuICdObyByb290IGNhdXNlIGF2YWlsYWJsZSc7XG4gICAgfVxuICAgIC8vIFRyaW0gYW5kIHJldHVybiB0aGUgcm9vdCBjYXVzZSB0ZXh0XG4gICAgcmV0dXJuIHRoaXMucm9vdENhdXNlLnRyaW0oKTtcbiAgfVxuXG4gIG9uQ2FyZENsaWNrKCk6IHZvaWQge1xuICAgIHRoaXMuY2FyZENsaWNrLmVtaXQoKTtcbiAgfVxuXG4gIG9uQ29weVRpdGxlKGV2ZW50OiBFdmVudCk6IHZvaWQge1xuICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpOyAvLyBQcmV2ZW50IGNhcmQgY2xpY2sgZnJvbSBmaXJpbmdcbiAgICBcbiAgICAvLyBVc2UgZnVsbFRpdGxlIGlmIHByb3ZpZGVkLCBvdGhlcndpc2UgdXNlIHRpdGxlXG4gICAgY29uc3QgdGV4dFRvQ29weSA9IHRoaXMuZnVsbFRpdGxlIHx8IHRoaXMudGl0bGU7XG4gICAgXG4gICAgaWYgKG5hdmlnYXRvci5jbGlwYm9hcmQgJiYgdGV4dFRvQ29weSkge1xuICAgICAgbmF2aWdhdG9yLmNsaXBib2FyZC53cml0ZVRleHQodGV4dFRvQ29weSkuY2F0Y2goKGVycikgPT4ge1xuICAgICAgICBjb25zb2xlLmVycm9yKCdGYWlsZWQgdG8gY29weSB0aXRsZTonLCBlcnIpO1xuICAgICAgICAvLyBGYWxsYmFjayBmb3Igb2xkZXIgYnJvd3NlcnNcbiAgICAgICAgdGhpcy5mYWxsYmFja0NvcHlUb0NsaXBib2FyZCh0ZXh0VG9Db3B5KTtcbiAgICAgIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICAvLyBGYWxsYmFjayBmb3IgYnJvd3NlcnMgd2l0aG91dCBjbGlwYm9hcmQgQVBJXG4gICAgICB0aGlzLmZhbGxiYWNrQ29weVRvQ2xpcGJvYXJkKHRleHRUb0NvcHkpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgZmFsbGJhY2tDb3B5VG9DbGlwYm9hcmQodGV4dDogc3RyaW5nKTogdm9pZCB7XG4gICAgY29uc3QgdGV4dEFyZWEgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ZXh0YXJlYScpO1xuICAgIHRleHRBcmVhLnZhbHVlID0gdGV4dDtcbiAgICB0ZXh0QXJlYS5zdHlsZS5wb3NpdGlvbiA9ICdmaXhlZCc7XG4gICAgdGV4dEFyZWEuc3R5bGUubGVmdCA9ICctOTk5OTk5cHgnO1xuICAgIHRleHRBcmVhLnN0eWxlLnRvcCA9ICctOTk5OTk5cHgnO1xuICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQodGV4dEFyZWEpO1xuICAgIHRleHRBcmVhLmZvY3VzKCk7XG4gICAgdGV4dEFyZWEuc2VsZWN0KCk7XG4gICAgXG4gICAgdHJ5IHtcbiAgICAgIGRvY3VtZW50LmV4ZWNDb21tYW5kKCdjb3B5Jyk7XG4gICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICBjb25zb2xlLmVycm9yKCdGYWxsYmFjayBjb3B5IGZhaWxlZDonLCBlcnIpO1xuICAgIH0gZmluYWxseSB7XG4gICAgICBkb2N1bWVudC5ib2R5LnJlbW92ZUNoaWxkKHRleHRBcmVhKTtcbiAgICB9XG4gIH1cbn1cblxuXG4iLCI8ZGl2IGNsYXNzPVwiY3FhLXVpLXJvb3RcIj5cbiAgPGRpdiBjbGFzcz1cImNxYS13LWZ1bGwgY3FhLWJnLVsjRkVGMkYyNDBdIGNxYS1ib3JkZXIgY3FhLWJvcmRlci1zb2xpZCBjcWEtYm9yZGVyLVsjRTVFN0VCXSBjcWEtYm9yZGVyLWwtWyNFRjQ0NDRdIGNxYS1yb3VuZGVkLVsxMHB4XSBjcWEtcC1bMTBweF0gY3FhLXBsLVsyMHB4XSBjcWEtY3Vyc29yLXBvaW50ZXIgY3FhLXRyYW5zaXRpb24tc2hhZG93IGNxYS1kdXJhdGlvbi0yMDAgaG92ZXI6Y3FhLXNoYWRvdy1tZFwiXG4gICAgW25nQ2xhc3NdPVwiW2xlZnRBY2NlbnRDbGFzcywgY2FyZENsYXNzXVwiXG4gICAgKGNsaWNrKT1cIm9uQ2FyZENsaWNrKClcIj5cbiAgICA8ZGl2IGNsYXNzPVwiY3FhLWZsZXggY3FhLWZsZXgtY29sIGNxYS1nYXAtMlwiPlxuICAgICAgPGRpdiBjbGFzcz1cImNxYS1mbGV4IGNxYS1pdGVtcy1zdGFydCBjcWEtanVzdGlmeS1iZXR3ZWVuIGNxYS1nYXAtMiBjcWEtZmxleC13cmFwXCI+XG4gICAgICAgIDwhLS0gVGl0bGUgd2l0aCBDb3B5IEJ1dHRvbiAtLT5cbiAgICAgICAgPGRpdiBjbGFzcz1cImNxYS1mbGV4IGNxYS1pdGVtcy1jZW50ZXIgY3FhLWdhcC0yIGNxYS1mbGV4LTEgY3FhLW1pbi13LTBcIj5cbiAgICAgICAgICA8aDMgY2xhc3M9XCJjcWEtdGV4dC1bMTRweF0gY3FhLWxlYWRpbmctWzE3cHhdIGNxYS1mb250LXNlbWlib2xkIGNxYS1mb250LWludGVyIGNxYS10ZXh0LVsjMUExQTFBXSBjcWEtdHJ1bmNhdGVcIj57eyB0aXRsZSB9fTwvaDM+XG4gICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICBjbGFzcz1cImNxYS1pbmxpbmUtZmxleCBjcWEtY3Vyc29yLXBvaW50ZXIgY3FhLW91dGxpbmUtbm9uZSBjcWEtYmctdHJhbnNwYXJlbnQgY3FhLWJvcmRlci1ub25lIGNxYS1wLTEgY3FhLWl0ZW1zLWNlbnRlciBjcWEtanVzdGlmeS1jZW50ZXIgY3FhLW1pbi13LVsyMHB4XSBjcWEtbWluLWgtWzIwcHhdIGNxYS1mbGV4LXNocmluay0wIGNxYS10ZXh0LVsjNkI3MjgwXSBob3ZlcjpjcWEtdGV4dC1bIzFBMUExQV0gY3FhLXRyYW5zaXRpb24tY29sb3JzXCJcbiAgICAgICAgICAgIChjbGljayk9XCJvbkNvcHlUaXRsZSgkZXZlbnQpXCJcbiAgICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiJ0NvcHkgdGl0bGUnXCJcbiAgICAgICAgICAgIHRpdGxlPVwiQ29weSB0aXRsZVwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgPG1hdC1pY29uIGNsYXNzPVwiY3FhLXctNCBjcWEtaC00IGNxYS10ZXh0LVsxNnB4XSBjcWEtbGVhZGluZy1bMTZweF1cIj5jb250ZW50X2NvcHk8L21hdC1pY29uPlxuICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICA8L2Rpdj5cblxuICAgICAgICA8IS0tIEZhaWx1cmVzIHBpbGwgLS0+XG4gICAgICAgIDxzcGFuIGNsYXNzPVwiY3FhLXB4LVsxMXB4XSBjcWEtcHktWzNweF0gY3FhLXJvdW5kZWQtZnVsbCBjcWEtdGV4dC1bMTJweF0gY3FhLWxlYWRpbmctWzE2cHhdIGNxYS1mb250LW1lZGl1bSBjcWEtZm9udC1pbnRlciBjcWEtdHJhY2tpbmctWzAuM3B4XVwiXG4gICAgICAgICAgW25nQ2xhc3NdPVwicGlsbENsYXNzXCI+XG4gICAgICAgICAge3sgZmFpbHVyZXMgfCBudW1iZXIgfX0ge3sgZmFpbHVyZXNMYWJlbCB9fVxuICAgICAgICA8L3NwYW4+XG4gICAgICA8L2Rpdj5cblxuICAgICAgPCEtLSBUYWdzIC0tPlxuICAgICAgPGRpdiAqbmdJZj1cInRhZ3M/Lmxlbmd0aFwiIGNsYXNzPVwiY3FhLWZsZXggY3FhLWZsZXgtd3JhcCBjcWEtZ2FwLTJcIj5cbiAgICAgICAgPHNwYW5cbiAgICAgICAgICAqbmdGb3I9XCJsZXQgdGFnIG9mIHRhZ3NcIlxuICAgICAgICAgIGNsYXNzPVwiY3FhLWlubGluZS1mbGV4IGNxYS1pdGVtcy1jZW50ZXIgY3FhLWdhcC0xIGNxYS1ib3JkZXItc29saWQgY3FhLXJvdW5kZWQtZnVsbCBjcWEtYmctd2hpdGUgY3FhLWJvcmRlciBjcWEtYm9yZGVyLVsjRTVFN0VCXSBjcWEtdGV4dC1bIzFGMUYyNF0gY3FhLXRleHQtWzExcHhdIGNxYS1sZWFkaW5nLVsxNHB4XSBjcWEtZm9udC1zZW1pYm9sZCBjcWEtZm9udC1pbnRlciBjcWEtcHgtWzEwcHhdIGNxYS1weS1bNHB4XVwiPlxuICAgICAgICAgIHt7IHRhZyB9fVxuICAgICAgICA8L3NwYW4+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cblxuICAgIDxkaXYgY2xhc3M9XCJjcWEtZmxleCBjcWEtaXRlbXMtY2VudGVyIGNxYS1qdXN0aWZ5LWJldHdlZW4gY3FhLWZsZXgtd3JhcCBjcWEtbXQtMlwiPlxuICAgICAgPCEtLSBSb290IGNhdXNlIC0tPlxuICAgICAgPGRpdiAqbmdJZj1cInNob3dSb290Q2F1c2VcIiBjbGFzcz1cImNxYS10ZXh0LVsxMnB4XSBjcWEtbGVhZGluZy1bMTVweF0gY3FhLWZvbnQtaW50ZXIgY3FhLXRleHQtWyNGMTVGNUZdIGNxYS1mbGV4LTEgY3FhLW1pbi13LTAgY3FhLW1yLTIgY3FhLXRydW5jYXRlXCI+XG4gICAgICAgIDxzcGFuIGNsYXNzPVwiY3FhLWZvbnQtc2VtaWJvbGRcIj57eyByb290Q2F1c2VMYWJlbCB9fTogPC9zcGFuPnt7IHJvb3RDYXVzZURpc3BsYXkgfX1cbiAgICAgIDwvZGl2PlxuXG4gICAgICA8IS0tIFRpbWVzdGFtcCAtLT5cbiAgICAgIDxkaXYgKm5nSWY9XCJsYXN0RmFpbGVkXCJcbiAgICAgICAgY2xhc3M9XCJjcWEtcHktWzNweF0gY3FhLWZsZXggY3FhLWl0ZW1zLWNlbnRlciBjcWEtZ2FwLTEgY3FhLXRleHQtWzEwcHhdIGNxYS1sZWFkaW5nLVsxNXB4XSBjcWEtZm9udC1tZWRpdW0gY3FhLWZvbnQtaW50ZXIgY3FhLXRleHQtZGlhbG9nLW11dGVkXCI+XG4gICAgICAgIDxzdmcgd2lkdGg9XCIxMlwiIGhlaWdodD1cIjEyXCIgdmlld0JveD1cIjAgMCAxMiAxMlwiIGZpbGw9XCJub25lXCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiPjxwYXRoIGQ9XCJNNiAxMUM4Ljc2MTQyIDExIDExIDguNzYxNDIgMTEgNkMxMSAzLjIzODU4IDguNzYxNDIgMSA2IDFDMy4yMzg1OCAxIDEgMy4yMzg1OCAxIDZDMSA4Ljc2MTQyIDMuMjM4NTggMTEgNiAxMVpcIiBzdHJva2U9XCIjNkI3MjgwXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIvPjxwYXRoIGQ9XCJNNiAzVjZMOCA3XCIgc3Ryb2tlPVwiIzZCNzI4MFwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiLz48L3N2Zz5cbiAgICAgICAgPHNwYW4+e3sgbGFzdEZhaWxlZExhYmVsIH19OiB7eyBsYXN0RmFpbGVkIH19PC9zcGFuPlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC9kaXY+Il19
|
|
126
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmFpbGVkLXRlc3QtY2FzZXMtY2FyZC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2Rhc2hib2FyZHMvZmFpbGVkLXRlc3QtY2FzZXMtY2FyZC9mYWlsZWQtdGVzdC1jYXNlcy1jYXJkLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWIvZGFzaGJvYXJkcy9mYWlsZWQtdGVzdC1jYXNlcy1jYXJkL2ZhaWxlZC10ZXN0LWNhc2VzLWNhcmQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBRSxNQUFNLGVBQWUsQ0FBQzs7OztBQVNoRyxNQUFNLE9BQU8sNEJBQTRCO0lBUHpDO1FBUUUsbUNBQW1DO1FBQzFCLFVBQUssR0FBVyxrQkFBa0IsQ0FBQztRQUc1QyxnREFBZ0Q7UUFDdkMsYUFBUSxHQUFXLENBQUMsQ0FBQztRQUM5QixvQ0FBb0M7UUFDM0Isa0JBQWEsR0FBVyxVQUFVLENBQUM7UUFDNUMsb0RBQW9EO1FBQzNDLGNBQVMsR0FBVyxxQ0FBcUMsQ0FBQztRQUduRSwrQ0FBK0M7UUFDdEMsbUJBQWMsR0FBVyxZQUFZLENBQUM7UUFDL0Msd0NBQXdDO1FBQy9CLGtCQUFhLEdBQVksSUFBSSxDQUFDO1FBR3ZDLDBCQUEwQjtRQUNqQixvQkFBZSxHQUFXLGFBQWEsQ0FBQztRQUNqRCw4Q0FBOEM7UUFDckMsY0FBUyxHQUFXLEVBQUUsQ0FBQztRQUNoQywrQkFBK0I7UUFDdEIsb0JBQWUsR0FBVyxvQkFBb0IsQ0FBQztRQUN4RCw4Q0FBOEM7UUFDckMsU0FBSSxHQUFhLEVBQUUsQ0FBQztRQUM3Qiw2REFBNkQ7UUFDcEQsWUFBTyxHQUFXLENBQUMsQ0FBQztRQUM3Qix1Q0FBdUM7UUFDN0IsY0FBUyxHQUFHLElBQUksWUFBWSxF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TTsyRkRoRE8sNEJBQTRCO2tCQVB4QyxTQUFTOytCQUNFLDRCQUE0QixtQkFHckIsdUJBQXVCLENBQUMsTUFBTSxRQUN6QyxFQUFFLEtBQUssRUFBRSxhQUFhLEVBQUU7OEJBSXJCLEtBQUs7c0JBQWIsS0FBSztnQkFFRyxTQUFTO3NCQUFqQixLQUFLO2dCQUVHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBRUcsYUFBYTtzQkFBckIsS0FBSztnQkFFRyxTQUFTO3NCQUFqQixLQUFLO2dCQUVHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBRUcsY0FBYztzQkFBdEIsS0FBSztnQkFFRyxhQUFhO3NCQUFyQixLQUFLO2dCQUVHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBRUcsZUFBZTtzQkFBdkIsS0FBSztnQkFFRyxTQUFTO3NCQUFqQixLQUFLO2dCQUVHLGVBQWU7c0JBQXZCLEtBQUs7Z0JBRUcsSUFBSTtzQkFBWixLQUFLO2dCQUVHLE9BQU87c0JBQWYsS0FBSztnQkFFSSxTQUFTO3NCQUFsQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgSW5wdXQsIE91dHB1dCwgRXZlbnRFbWl0dGVyIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2NxYS1mYWlsZWQtdGVzdC1jYXNlcy1jYXJkJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2ZhaWxlZC10ZXN0LWNhc2VzLWNhcmQuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFtdLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgaG9zdDogeyBjbGFzczogJ2NxYS11aS1yb290JyB9XG59KVxuZXhwb3J0IGNsYXNzIEZhaWxlZFRlc3RDYXNlc0NhcmRDb21wb25lbnQge1xuICAvKiogRS5nLiwgXCJDLTYyOiBVcGxvYWQgQ29udGVudFwiICovXG4gIEBJbnB1dCgpIHRpdGxlOiBzdHJpbmcgPSAnRmFpbGVkIFRlc3QgQ2FzZSc7XG4gIC8qKiBGdWxsIHRpdGxlIHRleHQgdG8gY29weSAoaWYgZGlmZmVyZW50IGZyb20gZGlzcGxheWVkIHRpdGxlKSAqL1xuICBASW5wdXQoKSBmdWxsVGl0bGU/OiBzdHJpbmc7XG4gIC8qKiBOdW1iZXIgb2YgZmFpbHVyZXMgdG8gZGlzcGxheSBpbiB0aGUgcGlsbCAqL1xuICBASW5wdXQoKSBmYWlsdXJlczogbnVtYmVyID0gMDtcbiAgLyoqIFBpbGwgbGFiZWwgKGUuZy4sIFwiZmFpbHVyZXNcIikgKi9cbiAgQElucHV0KCkgZmFpbHVyZXNMYWJlbDogc3RyaW5nID0gJ2ZhaWx1cmVzJztcbiAgLyoqIE9wdGlvbmFsIGN1c3RvbSBjbGFzcyBmb3IgdGhlIHBpbGwgYmFja2dyb3VuZCAqL1xuICBASW5wdXQoKSBwaWxsQ2xhc3M6IHN0cmluZyA9ICdjcWEtYmctWyNGMTVGNUZdIGNxYS10ZXh0LVsjRkFGQUZBXSc7XG4gIC8qKiBSb290IGNhdXNlIHRleHQ7IHdoZW4gZW1wdHksIHNob3cgYSBkZWZhdWx0IG1lc3NhZ2UgKi9cbiAgQElucHV0KCkgcm9vdENhdXNlPzogc3RyaW5nO1xuICAvKiogUm9vdCBjYXVzZSBsYWJlbCAobGVmdCBwYXJ0LCBlbXBoYXNpemVkKSAqL1xuICBASW5wdXQoKSByb290Q2F1c2VMYWJlbDogc3RyaW5nID0gJ1Jvb3QgY2F1c2UnO1xuICAvKiogSWYgZmFsc2UsIGhpZGUgdGhlIHJvb3QgY2F1c2Ugcm93ICovXG4gIEBJbnB1dCgpIHNob3dSb290Q2F1c2U6IGJvb2xlYW4gPSB0cnVlO1xuICAvKiogTGFzdCBmYWlsZWQgdGV4dCAoZS5nLiwgXCIyIGhvdXJzIGFnb1wiKSAqL1xuICBASW5wdXQoKSBsYXN0RmFpbGVkPzogc3RyaW5nO1xuICAvKiogTGFiZWwgZm9yIHRpbWVzdGFtcCAqL1xuICBASW5wdXQoKSBsYXN0RmFpbGVkTGFiZWw6IHN0cmluZyA9ICdMYXN0IGZhaWxlZCc7XG4gIC8qKiBPcHRpb25hbCBleHRyYSBjbGFzcyBmb3IgdGhlIG91dGVyIGNhcmQgKi9cbiAgQElucHV0KCkgY2FyZENsYXNzOiBzdHJpbmcgPSAnJztcbiAgLyoqIExlZnQgYm9yZGVyIGFjY2VudCBjbGFzcyAqL1xuICBASW5wdXQoKSBsZWZ0QWNjZW50Q2xhc3M6IHN0cmluZyA9ICdjcWEtYm9yZGVyLWwtWzRweF0nO1xuICAvKiogT3B0aW9uYWwgdGFncyB0byByZW5kZXIgdW5kZXIgdGhlIHRpdGxlICovXG4gIEBJbnB1dCgpIHRhZ3M6IHN0cmluZ1tdID0gW107XG4gIC8qKiBNaW5pbXVtIG51bWJlciBvZiB0YWdzIHRvIGRpc3BsYXkgYmVmb3JlIHNob3dpbmcgY291bnQgKi9cbiAgQElucHV0KCkgbWluVGFnczogbnVtYmVyID0gMztcbiAgLyoqIEVtaXR0ZWQgd2hlbiB0aGUgY2FyZCBpcyBjbGlja2VkICovXG4gIEBPdXRwdXQoKSBjYXJkQ2xpY2sgPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG5cbiAgZ2V0IHJvb3RDYXVzZURpc3BsYXkoKTogc3RyaW5nIHtcbiAgICBpZiAoIXRoaXMucm9vdENhdXNlIHx8ICF0aGlzLnJvb3RDYXVzZS50cmltKCkubGVuZ3RoKSB7XG4gICAgICByZXR1cm4gJ05vIHJvb3QgY2F1c2UgYXZhaWxhYmxlJztcbiAgICB9XG4gICAgLy8gVHJpbSBhbmQgcmV0dXJuIHRoZSByb290IGNhdXNlIHRleHRcbiAgICByZXR1cm4gdGhpcy5yb290Q2F1c2UudHJpbSgpO1xuICB9XG5cbiAgZ2V0IHZpc2libGVUYWdzKCk6IHN0cmluZ1tdIHtcbiAgICBpZiAoIXRoaXMudGFncyB8fCB0aGlzLnRhZ3MubGVuZ3RoIDw9IHRoaXMubWluVGFncykge1xuICAgICAgcmV0dXJuIHRoaXMudGFncyB8fCBbXTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMudGFncy5zbGljZSgwLCB0aGlzLm1pblRhZ3MpO1xuICB9XG5cbiAgZ2V0IG92ZXJmbG93VGFnc0NvdW50KCk6IG51bWJlciB7XG4gICAgaWYgKCF0aGlzLnRhZ3MgfHwgdGhpcy50YWdzLmxlbmd0aCA8PSB0aGlzLm1pblRhZ3MpIHtcbiAgICAgIHJldHVybiAwO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy50YWdzLmxlbmd0aCAtIHRoaXMubWluVGFncztcbiAgfVxuXG4gIG9uQ2FyZENsaWNrKCk6IHZvaWQge1xuICAgIHRoaXMuY2FyZENsaWNrLmVtaXQoKTtcbiAgfVxuXG4gIG9uQ29weVRpdGxlKGV2ZW50OiBFdmVudCk6IHZvaWQge1xuICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpOyAvLyBQcmV2ZW50IGNhcmQgY2xpY2sgZnJvbSBmaXJpbmdcbiAgICBcbiAgICAvLyBVc2UgZnVsbFRpdGxlIGlmIHByb3ZpZGVkLCBvdGhlcndpc2UgdXNlIHRpdGxlXG4gICAgY29uc3QgdGV4dFRvQ29weSA9IHRoaXMuZnVsbFRpdGxlIHx8IHRoaXMudGl0bGU7XG4gICAgXG4gICAgaWYgKG5hdmlnYXRvci5jbGlwYm9hcmQgJiYgdGV4dFRvQ29weSkge1xuICAgICAgbmF2aWdhdG9yLmNsaXBib2FyZC53cml0ZVRleHQodGV4dFRvQ29weSkuY2F0Y2goKGVycikgPT4ge1xuICAgICAgICBjb25zb2xlLmVycm9yKCdGYWlsZWQgdG8gY29weSB0aXRsZTonLCBlcnIpO1xuICAgICAgICAvLyBGYWxsYmFjayBmb3Igb2xkZXIgYnJvd3NlcnNcbiAgICAgICAgdGhpcy5mYWxsYmFja0NvcHlUb0NsaXBib2FyZCh0ZXh0VG9Db3B5KTtcbiAgICAgIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICAvLyBGYWxsYmFjayBmb3IgYnJvd3NlcnMgd2l0aG91dCBjbGlwYm9hcmQgQVBJXG4gICAgICB0aGlzLmZhbGxiYWNrQ29weVRvQ2xpcGJvYXJkKHRleHRUb0NvcHkpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgZmFsbGJhY2tDb3B5VG9DbGlwYm9hcmQodGV4dDogc3RyaW5nKTogdm9pZCB7XG4gICAgY29uc3QgdGV4dEFyZWEgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ZXh0YXJlYScpO1xuICAgIHRleHRBcmVhLnZhbHVlID0gdGV4dDtcbiAgICB0ZXh0QXJlYS5zdHlsZS5wb3NpdGlvbiA9ICdmaXhlZCc7XG4gICAgdGV4dEFyZWEuc3R5bGUubGVmdCA9ICctOTk5OTk5cHgnO1xuICAgIHRleHRBcmVhLnN0eWxlLnRvcCA9ICctOTk5OTk5cHgnO1xuICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQodGV4dEFyZWEpO1xuICAgIHRleHRBcmVhLmZvY3VzKCk7XG4gICAgdGV4dEFyZWEuc2VsZWN0KCk7XG4gICAgXG4gICAgdHJ5IHtcbiAgICAgIGRvY3VtZW50LmV4ZWNDb21tYW5kKCdjb3B5Jyk7XG4gICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICBjb25zb2xlLmVycm9yKCdGYWxsYmFjayBjb3B5IGZhaWxlZDonLCBlcnIpO1xuICAgIH0gZmluYWxseSB7XG4gICAgICBkb2N1bWVudC5ib2R5LnJlbW92ZUNoaWxkKHRleHRBcmVhKTtcbiAgICB9XG4gIH1cbn1cblxuXG4iLCI8ZGl2IGNsYXNzPVwiY3FhLXVpLXJvb3RcIiBzdHlsZT1cImhlaWdodDogMTAwJVwiPlxuICA8ZGl2IGNsYXNzPVwiY3FhLXctZnVsbCBjcWEtaC1mdWxsIGNxYS1iZy1bI0ZFRjJGMjQwXSBjcWEtYm9yZGVyIGNxYS1ib3JkZXItc29saWQgY3FhLWJvcmRlci1bI0U1RTdFQl0gY3FhLWJvcmRlci1sLVsjRUY0NDQ0XSBjcWEtcm91bmRlZC1bMTBweF0gY3FhLXAtWzEwcHhdIGNxYS1wbC1bMjBweF0gY3FhLWN1cnNvci1wb2ludGVyIGNxYS10cmFuc2l0aW9uLXNoYWRvdyBjcWEtZHVyYXRpb24tMjAwIGhvdmVyOmNxYS1zaGFkb3ctbWRcbiAgICBjcWEtZmxleCBjcWEtZmxleC1jb2wgY3FhLWp1c3RpZnktYmV0d2VlblwiXG4gICAgW25nQ2xhc3NdPVwiW2xlZnRBY2NlbnRDbGFzcywgY2FyZENsYXNzXVwiXG4gICAgKGNsaWNrKT1cIm9uQ2FyZENsaWNrKClcIj5cbiAgICA8ZGl2IGNsYXNzPVwiY3FhLWZsZXggY3FhLWZsZXgtY29sIGNxYS1nYXAtMlwiPlxuICAgICAgPGRpdiBjbGFzcz1cImNxYS1mbGV4IGNxYS1pdGVtcy1zdGFydCBjcWEtanVzdGlmeS1iZXR3ZWVuIGNxYS1nYXAtMiBjcWEtZmxleC13cmFwXCI+XG4gICAgICAgIDwhLS0gVGl0bGUgd2l0aCBDb3B5IEJ1dHRvbiAtLT5cbiAgICAgICAgPGRpdiBjbGFzcz1cImNxYS1mbGV4IGNxYS1pdGVtcy1jZW50ZXIgY3FhLWdhcC0yIGNxYS1mbGV4LTEgY3FhLW1pbi13LTBcIj5cbiAgICAgICAgICA8aDMgY2xhc3M9XCJjcWEtdGV4dC1bMTRweF0gY3FhLWxlYWRpbmctWzE3cHhdIGNxYS1mb250LXNlbWlib2xkIGNxYS1mb250LWludGVyIGNxYS10ZXh0LVsjMUExQTFBXSBjcWEtdHJ1bmNhdGVcIj57eyB0aXRsZSB9fTwvaDM+XG4gICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICBjbGFzcz1cImNxYS1pbmxpbmUtZmxleCBjcWEtY3Vyc29yLXBvaW50ZXIgY3FhLW91dGxpbmUtbm9uZSBjcWEtYmctdHJhbnNwYXJlbnQgY3FhLWJvcmRlci1ub25lIGNxYS1wLTEgY3FhLWl0ZW1zLWNlbnRlciBjcWEtanVzdGlmeS1jZW50ZXIgY3FhLW1pbi13LVsyMHB4XSBjcWEtbWluLWgtWzIwcHhdIGNxYS1mbGV4LXNocmluay0wIGNxYS10ZXh0LVsjNkI3MjgwXSBob3ZlcjpjcWEtdGV4dC1bIzFBMUExQV0gY3FhLXRyYW5zaXRpb24tY29sb3JzXCJcbiAgICAgICAgICAgIChjbGljayk9XCJvbkNvcHlUaXRsZSgkZXZlbnQpXCJcbiAgICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiJ0NvcHkgdGl0bGUnXCJcbiAgICAgICAgICAgIHRpdGxlPVwiQ29weSB0aXRsZVwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgPG1hdC1pY29uIGNsYXNzPVwiY3FhLXctNCBjcWEtaC00IGNxYS10ZXh0LVsxNnB4XSBjcWEtbGVhZGluZy1bMTZweF1cIj5jb250ZW50X2NvcHk8L21hdC1pY29uPlxuICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICA8L2Rpdj5cblxuICAgICAgICA8IS0tIEZhaWx1cmVzIHBpbGwgLS0+XG4gICAgICAgIDxzcGFuIGNsYXNzPVwiY3FhLXB4LVsxMXB4XSBjcWEtcHktWzNweF0gY3FhLXJvdW5kZWQtZnVsbCBjcWEtdGV4dC1bMTJweF0gY3FhLWxlYWRpbmctWzE2cHhdIGNxYS1mb250LW1lZGl1bSBjcWEtZm9udC1pbnRlciBjcWEtdHJhY2tpbmctWzAuM3B4XVwiXG4gICAgICAgICAgW25nQ2xhc3NdPVwicGlsbENsYXNzXCI+XG4gICAgICAgICAge3sgZmFpbHVyZXMgfCBudW1iZXIgfX0ge3sgZmFpbHVyZXNMYWJlbCB9fVxuICAgICAgICA8L3NwYW4+XG4gICAgICA8L2Rpdj5cblxuICAgICAgPCEtLSBUYWdzIC0tPlxuICAgICAgPGRpdiAqbmdJZj1cInRhZ3M/Lmxlbmd0aFwiIGNsYXNzPVwiY3FhLWZsZXggY3FhLWZsZXgtd3JhcCBjcWEtZ2FwLTJcIj5cbiAgICAgICAgPHNwYW5cbiAgICAgICAgICAqbmdGb3I9XCJsZXQgdGFnIG9mIHZpc2libGVUYWdzXCJcbiAgICAgICAgICBjbGFzcz1cImNxYS1pbmxpbmUtZmxleCBjcWEtaXRlbXMtY2VudGVyIGNxYS1nYXAtMSBjcWEtYm9yZGVyLXNvbGlkIGNxYS1yb3VuZGVkLWZ1bGwgY3FhLWJnLXdoaXRlIGNxYS1ib3JkZXIgY3FhLWJvcmRlci1bI0U1RTdFQl0gY3FhLXRleHQtWyMxRjFGMjRdIGNxYS10ZXh0LVsxMXB4XSBjcWEtbGVhZGluZy1bMTRweF0gY3FhLWZvbnQtc2VtaWJvbGQgY3FhLWZvbnQtaW50ZXIgY3FhLXB4LVsxMHB4XSBjcWEtcHktWzRweF1cIj5cbiAgICAgICAgICB7eyB0YWcgfX1cbiAgICAgICAgPC9zcGFuPlxuICAgICAgICA8c3BhblxuICAgICAgICAgICpuZ0lmPVwib3ZlcmZsb3dUYWdzQ291bnQgPiAwXCJcbiAgICAgICAgICBjbGFzcz1cImNxYS1pbmxpbmUtZmxleCBjcWEtaXRlbXMtY2VudGVyIGNxYS1nYXAtMSBjcWEtYm9yZGVyLXNvbGlkIGNxYS1yb3VuZGVkLWZ1bGwgY3FhLWJnLXdoaXRlIGNxYS1ib3JkZXIgY3FhLWJvcmRlci1bI0U1RTdFQl0gY3FhLXRleHQtWyMxRjFGMjRdIGNxYS10ZXh0LVsxMXB4XSBjcWEtbGVhZGluZy1bMTRweF0gY3FhLWZvbnQtc2VtaWJvbGQgY3FhLWZvbnQtaW50ZXIgY3FhLXB4LVsxMHB4XSBjcWEtcHktWzRweF1cIj5cbiAgICAgICAgICAre3sgb3ZlcmZsb3dUYWdzQ291bnQgfX1cbiAgICAgICAgPC9zcGFuPlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG5cbiAgICA8ZGl2IGNsYXNzPVwiY3FhLWZsZXggY3FhLWl0ZW1zLWNlbnRlciBjcWEtanVzdGlmeS1iZXR3ZWVuIGNxYS1mbGV4LXdyYXAgY3FhLW10LTJcIj5cbiAgICAgIDwhLS0gUm9vdCBjYXVzZSAtLT5cbiAgICAgIDxkaXYgKm5nSWY9XCJzaG93Um9vdENhdXNlXCIgY2xhc3M9XCJjcWEtdGV4dC1bMTJweF0gY3FhLWxlYWRpbmctWzE1cHhdIGNxYS1mb250LWludGVyIGNxYS10ZXh0LVsjRjE1RjVGXSBjcWEtZmxleC0xIGNxYS1taW4tdy0wIGNxYS1tci0yIGNxYS10cnVuY2F0ZVwiPlxuICAgICAgICA8c3BhbiBjbGFzcz1cImNxYS1mb250LXNlbWlib2xkXCI+e3sgcm9vdENhdXNlTGFiZWwgfX06IDwvc3Bhbj57eyByb290Q2F1c2VEaXNwbGF5IH19XG4gICAgICA8L2Rpdj5cblxuICAgICAgPCEtLSBUaW1lc3RhbXAgLS0+XG4gICAgICA8ZGl2ICpuZ0lmPVwibGFzdEZhaWxlZFwiXG4gICAgICAgIGNsYXNzPVwiY3FhLXB5LVszcHhdIGNxYS1mbGV4IGNxYS1pdGVtcy1jZW50ZXIgY3FhLWdhcC0xIGNxYS10ZXh0LVsxMHB4XSBjcWEtbGVhZGluZy1bMTVweF0gY3FhLWZvbnQtbWVkaXVtIGNxYS1mb250LWludGVyIGNxYS10ZXh0LWRpYWxvZy1tdXRlZFwiPlxuICAgICAgICA8c3ZnIHdpZHRoPVwiMTJcIiBoZWlnaHQ9XCIxMlwiIHZpZXdCb3g9XCIwIDAgMTIgMTJcIiBmaWxsPVwibm9uZVwiIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIj48cGF0aCBkPVwiTTYgMTFDOC43NjE0MiAxMSAxMSA4Ljc2MTQyIDExIDZDMTEgMy4yMzg1OCA4Ljc2MTQyIDEgNiAxQzMuMjM4NTggMSAxIDMuMjM4NTggMSA2QzEgOC43NjE0MiAzLjIzODU4IDExIDYgMTFaXCIgc3Ryb2tlPVwiIzZCNzI4MFwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiLz48cGF0aCBkPVwiTTYgM1Y2TDggN1wiIHN0cm9rZT1cIiM2QjcyODBcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIi8+PC9zdmc+XG4gICAgICAgIDxzcGFuPnt7IGxhc3RGYWlsZWRMYWJlbCB9fToge3sgbGFzdEZhaWxlZCB9fTwvc3Bhbj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvZGl2PiJdfQ==
|
|
@@ -58,10 +58,10 @@ export class MetricsCardComponent {
|
|
|
58
58
|
}
|
|
59
59
|
}
|
|
60
60
|
MetricsCardComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: MetricsCardComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
61
|
-
MetricsCardComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.4.0", type: MetricsCardComponent, selector: "cqa-metrics-card", inputs: { icon: "icon", title: "title", total: "total", items: "items", cardClass: "cardClass", layout: "layout", totalPercent: "totalPercent", onTotalClick: "onTotalClick" }, outputs: { totalClick: "totalClick" }, host: { classAttribute: "cqa-ui-root" }, ngImport: i0, template: "<div class=\"cqa-ui-root\">\n <div *ngIf=\"layout === '1'\"\n class=\"cqa-w-full cqa-box-border cqa-flex cqa-flex-col cqa-items-start cqa-px-px cqa-pb-px md:cqa-h-[63px] cqa-bg-white cqa-border-t-2 cqa-border-r cqa-border-b-0 cqa-border-l cqa-border-solid cqa-border-[#3F43EE] cqa-rounded-[10px] cqa-flex-none cqa-order-0 cqa-self-stretch cqa-grow-0\"\n [ngClass]=\"cardClass\">\n <!-- Metric blocks -->\n <div\n class=\"cqa-flex-1 cqa-w-full cqa-grid cqa-grid-cols-2 sm:cqa-grid-cols-2 md:cqa-grid-cols-4 cqa-border cqa-border-[#E5E7EB] cqa-rounded-[10px] cqa-overflow-hidden\">\n <!-- Left total block -->\n <div\n class=\"cqa-flex cqa-flex-col cqa-justify-center cqa-items-start cqa-py-3 md:cqa-pt-1 md:cqa-pb-0.5 cqa-px-6 cqa-gap-1 cqa-w-full sm:cqa-w-[100%] md:cqa-w-[180px] lg:cqa-w-[290px] md:cqa-h-[61px] cqa-border-b cqa-border-[#E5E7EB] sm:cqa-border-b-0 sm:cqa-border-r\"\n [ngClass]=\"{'cqa-cursor-pointer cqa-transition-colors hover:cqa-bg-gray-50': isTotalClickable}\"\n (click)=\"handleTotalClick($event)\"\n [attr.title]=\"null\">\n <span class=\"cqa-text-[12px] cqa-leading-[16px] cqa-font-medium cqa-font-inter cqa-text-[#6A7282]\" [attr.title]=\"null\"> {{ title }} </span>\n <h3 class=\"cqa-text-[30px] cqa-leading-[36px] cqa-font-bold cqa-font-inter cqa-tracking-[0.395508px] cqa-text-[#101828]\" [attr.title]=\"null\"> {{\n total | number }} </h3>\n </div>\n <ng-container *ngFor=\"let it of items; let i = index\">\n <div class=\"cqa-flex cqa-items-stretch cqa-border-b cqa-border-[#E5E7EB] md:cqa-border-b-0 cqa-min-w-0\" [attr.title]=\"null\">\n <div class=\"cqa-hidden sm:cqa-block md:cqa-block cqa-w-[1px] cqa-bg-[#E5E7EB] cqa-flex-shrink-0\"></div>\n <cqa-metrics-block [item]=\"it\" [itemslength]=\"items.length.toString()\"\n [progress]=\"progressWidth(it)\" class=\"cqa-flex-1 cqa-min-w-0\">\n </cqa-metrics-block>\n </div>\n </ng-container>\n </div>\n </div>\n\n <div *ngIf=\"layout === '2'\"\n class=\"cqa-w-full cqa-box-border cqa-flex cqa-flex-col cqa-items-start cqa-px-px cqa-pb-px
|
|
61
|
+
MetricsCardComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.4.0", type: MetricsCardComponent, selector: "cqa-metrics-card", inputs: { icon: "icon", title: "title", total: "total", items: "items", cardClass: "cardClass", layout: "layout", totalPercent: "totalPercent", onTotalClick: "onTotalClick" }, outputs: { totalClick: "totalClick" }, host: { classAttribute: "cqa-ui-root" }, ngImport: i0, template: "<div class=\"cqa-ui-root\">\n <div *ngIf=\"layout === '1'\"\n class=\"cqa-w-full cqa-box-border cqa-flex cqa-flex-col cqa-items-start cqa-px-px cqa-pb-px md:cqa-h-[63px] cqa-bg-white cqa-border-t-2 cqa-border-r cqa-border-b-0 cqa-border-l cqa-border-solid cqa-border-[#3F43EE] cqa-rounded-[10px] cqa-flex-none cqa-order-0 cqa-self-stretch cqa-grow-0\"\n [ngClass]=\"cardClass\">\n <!-- Metric blocks -->\n <div\n class=\"cqa-flex-1 cqa-w-full cqa-grid cqa-grid-cols-2 sm:cqa-grid-cols-2 md:cqa-grid-cols-4 cqa-border cqa-border-[#E5E7EB] cqa-rounded-[10px] cqa-overflow-hidden\">\n <!-- Left total block -->\n <div\n class=\"cqa-flex cqa-flex-col cqa-justify-center cqa-items-start cqa-py-3 md:cqa-pt-1 md:cqa-pb-0.5 cqa-px-6 cqa-gap-1 cqa-w-full sm:cqa-w-[100%] md:cqa-w-[180px] lg:cqa-w-[290px] md:cqa-h-[61px] cqa-border-b cqa-border-[#E5E7EB] sm:cqa-border-b-0 sm:cqa-border-r\"\n [ngClass]=\"{'cqa-cursor-pointer cqa-transition-colors hover:cqa-bg-gray-50': isTotalClickable}\"\n (click)=\"handleTotalClick($event)\"\n [attr.title]=\"null\">\n <span class=\"cqa-text-[12px] cqa-leading-[16px] cqa-font-medium cqa-font-inter cqa-text-[#6A7282]\" [attr.title]=\"null\"> {{ title }} </span>\n <h3 class=\"cqa-text-[30px] cqa-leading-[36px] cqa-font-bold cqa-font-inter cqa-tracking-[0.395508px] cqa-text-[#101828]\" [attr.title]=\"null\"> {{\n total | number }} </h3>\n </div>\n <ng-container *ngFor=\"let it of items; let i = index\">\n <div class=\"cqa-flex cqa-items-stretch cqa-border-b cqa-border-[#E5E7EB] md:cqa-border-b-0 cqa-min-w-0\" [attr.title]=\"null\">\n <div class=\"cqa-hidden sm:cqa-block md:cqa-block cqa-w-[1px] cqa-bg-[#E5E7EB] cqa-flex-shrink-0\"></div>\n <cqa-metrics-block [item]=\"it\" [itemslength]=\"items.length.toString()\"\n [progress]=\"progressWidth(it)\" class=\"cqa-flex-1 cqa-min-w-0\">\n </cqa-metrics-block>\n </div>\n </ng-container>\n </div>\n </div>\n\n <div *ngIf=\"layout === '2'\"\n class=\"cqa-w-full cqa-box-border cqa-flex cqa-flex-col cqa-items-start cqa-px-px cqa-pb-px cqa-bg-white cqa-flex-none cqa-order-0 cqa-self-stretch cqa-grow-0\"\n [ngClass]=\"cardClass\">\n <div\n class=\"cqa-flex cqa-flex-col md:cqa-flex-row cqa-flex-wrap cqa-items-stretch cqa-w-full cqa-rounded-none cqa-flex-none cqa-order-0 cqa-self-stretch cqa-grow-0 cqa-gap-4\">\n <!-- Left total block -->\n <div\n class=\"cqa-flex cqa-flex-col cqa-justify-center cqa-items-start cqa-py-3 md:cqa-py-1 cqa-px-4 sm:cqa-px-6 cqa-gap-1 cqa-w-full sm:cqa-w-[100%] md:cqa-w-[240px] lg:cqa-w-[290px] cqa-rounded-[10px] cqa-border cqa-border-solid cqa-border-[#E5E7EB] cqa-relative cqa-overflow-hidden before:cqa-content-[''] before:cqa-bg-[#4C4C51] before:cqa-h-[2px] before:cqa-w-full before:cqa-absolute before:cqa-top-0 before:cqa-left-0 cqa-h-auto\"\n [ngClass]=\"{'cqa-cursor-pointer cqa-transition-colors hover:cqa-bg-gray-50': isTotalClickable}\"\n (click)=\"handleTotalClick($event)\"\n [attr.title]=\"null\">\n <div class=\"cqa-flex cqa-items-center cqa-gap-2 cqa-justify-between cqa-w-full\">\n <mat-icon class=\"!cqa-w-4 !cqa-h-4 !cqa-text-[16px] cqa-text-[#6B7280]\">{{ icon }}</mat-icon>\n <span class=\"cqa-text-[#6B7280] cqa-text-[14px] cqa-leading-4 cqa-font-inter\" [attr.title]=\"null\">{{ title }}</span>\n <div class=\"cqa-flex cqa-items-end cqa-gap-2 cqa-ml-auto\">\n <h4 class=\"cqa-text-[28px] cqa-leading-7 cqa-tracking-[-0.45px] cqa-font-inter cqa-text-[#111827]\" [attr.title]=\"null\">{{ total | number }}\n </h4>\n <span *ngIf=\"totalPercent !== undefined\" class=\"cqa-text-[10px] cqa-leading-4 cqa-font-inter\"\n [ngClass]=\"percentClass(totalPercent)\" [attr.title]=\"null\">{{ formatPercent(totalPercent) }}</span>\n </div>\n </div>\n\n </div>\n <!-- Metric blocks -->\n <div [ngClass]=\"'cqa-grid-cols-' + items.length + ' lg:cqa-grid-cols-' + items.length\"\n class=\"cqa-flex-1 cqa-w-full cqa-grid md:cqa-grid-cols-3 cqa-gap-2 md:cqa-gap-3 cqa-items-center cqa-rounded-[10px] cqa-border cqa-border-solid cqa-border-[#E5E7EB] cqa-relative cqa-overflow-hidden\">\n <span class=\"cqa-h-[2px] cqa-w-full cqa-absolute cqa-top-0 cqa-left-0\"\n [style.background]=\"'linear-gradient(90deg, #3B82F6 0%, rgba(0, 0, 0, 0) 100%)'\"></span>\n <cqa-metrics-block *ngFor=\"let it of items; let i = index\" [item]=\"it\" [layout]=\"layout\" [attr.title]=\"null\">\n </cqa-metrics-block>\n </div>\n </div>\n </div>\n</div>", components: [{ type: i1.MetricsBlockComponent, selector: "cqa-metrics-block", inputs: ["item", "progress", "layout", "itemslength"] }, { type: i2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }], directives: [{ type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }], pipes: { "number": i3.DecimalPipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
62
62
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: MetricsCardComponent, decorators: [{
|
|
63
63
|
type: Component,
|
|
64
|
-
args: [{ selector: 'cqa-metrics-card', changeDetection: ChangeDetectionStrategy.OnPush, host: { class: 'cqa-ui-root' }, template: "<div class=\"cqa-ui-root\">\n <div *ngIf=\"layout === '1'\"\n class=\"cqa-w-full cqa-box-border cqa-flex cqa-flex-col cqa-items-start cqa-px-px cqa-pb-px md:cqa-h-[63px] cqa-bg-white cqa-border-t-2 cqa-border-r cqa-border-b-0 cqa-border-l cqa-border-solid cqa-border-[#3F43EE] cqa-rounded-[10px] cqa-flex-none cqa-order-0 cqa-self-stretch cqa-grow-0\"\n [ngClass]=\"cardClass\">\n <!-- Metric blocks -->\n <div\n class=\"cqa-flex-1 cqa-w-full cqa-grid cqa-grid-cols-2 sm:cqa-grid-cols-2 md:cqa-grid-cols-4 cqa-border cqa-border-[#E5E7EB] cqa-rounded-[10px] cqa-overflow-hidden\">\n <!-- Left total block -->\n <div\n class=\"cqa-flex cqa-flex-col cqa-justify-center cqa-items-start cqa-py-3 md:cqa-pt-1 md:cqa-pb-0.5 cqa-px-6 cqa-gap-1 cqa-w-full sm:cqa-w-[100%] md:cqa-w-[180px] lg:cqa-w-[290px] md:cqa-h-[61px] cqa-border-b cqa-border-[#E5E7EB] sm:cqa-border-b-0 sm:cqa-border-r\"\n [ngClass]=\"{'cqa-cursor-pointer cqa-transition-colors hover:cqa-bg-gray-50': isTotalClickable}\"\n (click)=\"handleTotalClick($event)\"\n [attr.title]=\"null\">\n <span class=\"cqa-text-[12px] cqa-leading-[16px] cqa-font-medium cqa-font-inter cqa-text-[#6A7282]\" [attr.title]=\"null\"> {{ title }} </span>\n <h3 class=\"cqa-text-[30px] cqa-leading-[36px] cqa-font-bold cqa-font-inter cqa-tracking-[0.395508px] cqa-text-[#101828]\" [attr.title]=\"null\"> {{\n total | number }} </h3>\n </div>\n <ng-container *ngFor=\"let it of items; let i = index\">\n <div class=\"cqa-flex cqa-items-stretch cqa-border-b cqa-border-[#E5E7EB] md:cqa-border-b-0 cqa-min-w-0\" [attr.title]=\"null\">\n <div class=\"cqa-hidden sm:cqa-block md:cqa-block cqa-w-[1px] cqa-bg-[#E5E7EB] cqa-flex-shrink-0\"></div>\n <cqa-metrics-block [item]=\"it\" [itemslength]=\"items.length.toString()\"\n [progress]=\"progressWidth(it)\" class=\"cqa-flex-1 cqa-min-w-0\">\n </cqa-metrics-block>\n </div>\n </ng-container>\n </div>\n </div>\n\n <div *ngIf=\"layout === '2'\"\n class=\"cqa-w-full cqa-box-border cqa-flex cqa-flex-col cqa-items-start cqa-px-px cqa-pb-px
|
|
64
|
+
args: [{ selector: 'cqa-metrics-card', changeDetection: ChangeDetectionStrategy.OnPush, host: { class: 'cqa-ui-root' }, template: "<div class=\"cqa-ui-root\">\n <div *ngIf=\"layout === '1'\"\n class=\"cqa-w-full cqa-box-border cqa-flex cqa-flex-col cqa-items-start cqa-px-px cqa-pb-px md:cqa-h-[63px] cqa-bg-white cqa-border-t-2 cqa-border-r cqa-border-b-0 cqa-border-l cqa-border-solid cqa-border-[#3F43EE] cqa-rounded-[10px] cqa-flex-none cqa-order-0 cqa-self-stretch cqa-grow-0\"\n [ngClass]=\"cardClass\">\n <!-- Metric blocks -->\n <div\n class=\"cqa-flex-1 cqa-w-full cqa-grid cqa-grid-cols-2 sm:cqa-grid-cols-2 md:cqa-grid-cols-4 cqa-border cqa-border-[#E5E7EB] cqa-rounded-[10px] cqa-overflow-hidden\">\n <!-- Left total block -->\n <div\n class=\"cqa-flex cqa-flex-col cqa-justify-center cqa-items-start cqa-py-3 md:cqa-pt-1 md:cqa-pb-0.5 cqa-px-6 cqa-gap-1 cqa-w-full sm:cqa-w-[100%] md:cqa-w-[180px] lg:cqa-w-[290px] md:cqa-h-[61px] cqa-border-b cqa-border-[#E5E7EB] sm:cqa-border-b-0 sm:cqa-border-r\"\n [ngClass]=\"{'cqa-cursor-pointer cqa-transition-colors hover:cqa-bg-gray-50': isTotalClickable}\"\n (click)=\"handleTotalClick($event)\"\n [attr.title]=\"null\">\n <span class=\"cqa-text-[12px] cqa-leading-[16px] cqa-font-medium cqa-font-inter cqa-text-[#6A7282]\" [attr.title]=\"null\"> {{ title }} </span>\n <h3 class=\"cqa-text-[30px] cqa-leading-[36px] cqa-font-bold cqa-font-inter cqa-tracking-[0.395508px] cqa-text-[#101828]\" [attr.title]=\"null\"> {{\n total | number }} </h3>\n </div>\n <ng-container *ngFor=\"let it of items; let i = index\">\n <div class=\"cqa-flex cqa-items-stretch cqa-border-b cqa-border-[#E5E7EB] md:cqa-border-b-0 cqa-min-w-0\" [attr.title]=\"null\">\n <div class=\"cqa-hidden sm:cqa-block md:cqa-block cqa-w-[1px] cqa-bg-[#E5E7EB] cqa-flex-shrink-0\"></div>\n <cqa-metrics-block [item]=\"it\" [itemslength]=\"items.length.toString()\"\n [progress]=\"progressWidth(it)\" class=\"cqa-flex-1 cqa-min-w-0\">\n </cqa-metrics-block>\n </div>\n </ng-container>\n </div>\n </div>\n\n <div *ngIf=\"layout === '2'\"\n class=\"cqa-w-full cqa-box-border cqa-flex cqa-flex-col cqa-items-start cqa-px-px cqa-pb-px cqa-bg-white cqa-flex-none cqa-order-0 cqa-self-stretch cqa-grow-0\"\n [ngClass]=\"cardClass\">\n <div\n class=\"cqa-flex cqa-flex-col md:cqa-flex-row cqa-flex-wrap cqa-items-stretch cqa-w-full cqa-rounded-none cqa-flex-none cqa-order-0 cqa-self-stretch cqa-grow-0 cqa-gap-4\">\n <!-- Left total block -->\n <div\n class=\"cqa-flex cqa-flex-col cqa-justify-center cqa-items-start cqa-py-3 md:cqa-py-1 cqa-px-4 sm:cqa-px-6 cqa-gap-1 cqa-w-full sm:cqa-w-[100%] md:cqa-w-[240px] lg:cqa-w-[290px] cqa-rounded-[10px] cqa-border cqa-border-solid cqa-border-[#E5E7EB] cqa-relative cqa-overflow-hidden before:cqa-content-[''] before:cqa-bg-[#4C4C51] before:cqa-h-[2px] before:cqa-w-full before:cqa-absolute before:cqa-top-0 before:cqa-left-0 cqa-h-auto\"\n [ngClass]=\"{'cqa-cursor-pointer cqa-transition-colors hover:cqa-bg-gray-50': isTotalClickable}\"\n (click)=\"handleTotalClick($event)\"\n [attr.title]=\"null\">\n <div class=\"cqa-flex cqa-items-center cqa-gap-2 cqa-justify-between cqa-w-full\">\n <mat-icon class=\"!cqa-w-4 !cqa-h-4 !cqa-text-[16px] cqa-text-[#6B7280]\">{{ icon }}</mat-icon>\n <span class=\"cqa-text-[#6B7280] cqa-text-[14px] cqa-leading-4 cqa-font-inter\" [attr.title]=\"null\">{{ title }}</span>\n <div class=\"cqa-flex cqa-items-end cqa-gap-2 cqa-ml-auto\">\n <h4 class=\"cqa-text-[28px] cqa-leading-7 cqa-tracking-[-0.45px] cqa-font-inter cqa-text-[#111827]\" [attr.title]=\"null\">{{ total | number }}\n </h4>\n <span *ngIf=\"totalPercent !== undefined\" class=\"cqa-text-[10px] cqa-leading-4 cqa-font-inter\"\n [ngClass]=\"percentClass(totalPercent)\" [attr.title]=\"null\">{{ formatPercent(totalPercent) }}</span>\n </div>\n </div>\n\n </div>\n <!-- Metric blocks -->\n <div [ngClass]=\"'cqa-grid-cols-' + items.length + ' lg:cqa-grid-cols-' + items.length\"\n class=\"cqa-flex-1 cqa-w-full cqa-grid md:cqa-grid-cols-3 cqa-gap-2 md:cqa-gap-3 cqa-items-center cqa-rounded-[10px] cqa-border cqa-border-solid cqa-border-[#E5E7EB] cqa-relative cqa-overflow-hidden\">\n <span class=\"cqa-h-[2px] cqa-w-full cqa-absolute cqa-top-0 cqa-left-0\"\n [style.background]=\"'linear-gradient(90deg, #3B82F6 0%, rgba(0, 0, 0, 0) 100%)'\"></span>\n <cqa-metrics-block *ngFor=\"let it of items; let i = index\" [item]=\"it\" [layout]=\"layout\" [attr.title]=\"null\">\n </cqa-metrics-block>\n </div>\n </div>\n </div>\n</div>", styles: [] }]
|
|
65
65
|
}], propDecorators: { icon: [{
|
|
66
66
|
type: Input
|
|
67
67
|
}], title: [{
|
|
@@ -81,4 +81,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImpor
|
|
|
81
81
|
}], totalClick: [{
|
|
82
82
|
type: Output
|
|
83
83
|
}] } });
|
|
84
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWV0cmljcy1jYXJkLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWIvZGFzaGJvYXJkcy9tZXRyaWNzLWNhcmQvbWV0cmljcy1jYXJkLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWIvZGFzaGJvYXJkcy9tZXRyaWNzLWNhcmQvbWV0cmljcy1jYXJkLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7Ozs7O0FBVWhHLE1BQU0sT0FBTyxvQkFBb0I7SUFQakM7UUFRVyxTQUFJLEdBQVcsY0FBYyxDQUFDO1FBQzlCLFVBQUssR0FBVyxFQUFFLENBQUM7UUFDbkIsVUFBSyxHQUFvQixDQUFDLENBQUM7UUFDM0IsVUFBSyxHQUFzQixFQUFFLENBQUM7UUFDOUIsY0FBUyxHQUFXLEVBQUUsQ0FBQztRQUN2QixXQUFNLEdBQVcsR0FBRyxDQUFDO1FBR3BCLGVBQVUsR0FBRyxJQUFJLFlBQVksRUFBUyxDQUFDLENBQUMscUNBQXFDO0tBNEN4RjtJQTFDQyxJQUFJLGdCQUFnQjtRQUNsQiw4RUFBOEU7UUFDOUUsSUFBSTtZQUNGLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FBQyxZQUFZLElBQUssSUFBSSxDQUFDLFVBQWtCLEVBQUUsU0FBUyxFQUFFLE1BQU0sR0FBRyxDQUFDLENBQUM7U0FDL0U7UUFBQyxNQUFNO1lBQ04sT0FBTyxDQUFDLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQztTQUM1QjtJQUNILENBQUM7SUFFRCxhQUFhLENBQUMsSUFBcUI7UUFDakMsTUFBTSxHQUFHLEdBQUcsSUFBSSxDQUFDLEdBQUcsSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDeEMsSUFBSSxDQUFDLEdBQUcsSUFBSSxHQUFHLElBQUksQ0FBQztZQUFFLE9BQU8sSUFBSSxDQUFDO1FBQ2xDLE1BQU0sR0FBRyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLEtBQUssR0FBRyxHQUFHLENBQUMsR0FBRyxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBQ2pFLE9BQU8sR0FBRyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsR0FBRyxHQUFHLENBQUM7SUFDOUIsQ0FBQztJQUVPLFFBQVE7UUFDZCxNQUFNLFlBQVksR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUM1RSxPQUFPLFlBQVksSUFBSSxDQUFDLENBQUM7SUFDM0IsQ0FBQztJQUVELGFBQWEsQ0FBQyxLQUFjO1FBQzFCLElBQUksS0FBSyxLQUFLLFNBQVMsSUFBSSxLQUFLLEtBQUssSUFBSSxJQUFJLE1BQU0sQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDO1lBQUUsT0FBTyxFQUFFLENBQUM7UUFDNUUsTUFBTSxJQUFJLEdBQUcsS0FBSyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztRQUNuRCxPQUFPLEdBQUcsSUFBSSxHQUFHLEtBQUssR0FBRyxDQUFDO0lBQzVCLENBQUM7SUFFRCxZQUFZLENBQUMsS0FBYztRQUN6QixJQUFJLEtBQUssS0FBSyxTQUFTLElBQUksS0FBSyxLQUFLLElBQUksSUFBSSxNQUFNLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQztZQUFFLE9BQU8sb0JBQW9CLENBQUM7UUFDOUYsSUFBSSxLQUFLLEdBQUcsQ0FBQztZQUFFLE9BQU8sb0JBQW9CLENBQUMsQ0FBQyxRQUFRO1FBQ3BELElBQUksS0FBSyxHQUFHLENBQUM7WUFBRSxPQUFPLG9CQUFvQixDQUFDLENBQUMsTUFBTTtRQUNsRCxPQUFPLG9CQUFvQixDQUFDLENBQUMsVUFBVTtJQUN6QyxDQUFDO0lBRUQsZ0JBQWdCLENBQUMsS0FBWTtRQUMzQix3REFBd0Q7UUFDeEQsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDNUIscUNBQXFDO1FBQ3JDLElBQUksSUFBSSxDQUFDLFlBQVksRUFBRTtZQUNyQixJQUFJLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxDQUFDO1NBQzFCO0lBQ0gsQ0FBQzs7aUhBcERVLG9CQUFvQjtxR0FBcEIsb0JBQW9CLHdUQ1ZqQyxpcEpBNkRNOzJGRG5ETyxvQkFBb0I7a0JBUGhDLFNBQVM7K0JBQ0Usa0JBQWtCLG1CQUdYLHVCQUF1QixDQUFDLE1BQU0sUUFDekMsRUFBRSxLQUFLLEVBQUUsYUFBYSxFQUFFOzhCQUdyQixJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csS0FBSztzQkFBYixLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFDRyxNQUFNO3NCQUFkLEtBQUs7Z0JBQ0csWUFBWTtzQkFBcEIsS0FBSztnQkFDRyxZQUFZO3NCQUFwQixLQUFLO2dCQUNJLFVBQVU7c0JBQW5CLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE1ldHJpY3NDYXJkSXRlbSB9IGZyb20gJy4vbWV0cmljcy1jYXJkLWl0ZW0uaW50ZXJmYWNlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnY3FhLW1ldHJpY3MtY2FyZCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9tZXRyaWNzLWNhcmQuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFtdLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgaG9zdDogeyBjbGFzczogJ2NxYS11aS1yb290JyB9XG59KVxuZXhwb3J0IGNsYXNzIE1ldHJpY3NDYXJkQ29tcG9uZW50IHtcbiAgQElucHV0KCkgaWNvbjogc3RyaW5nID0gJ3RleHRfc25pcHBldCc7XG4gIEBJbnB1dCgpIHRpdGxlOiBzdHJpbmcgPSAnJztcbiAgQElucHV0KCkgdG90YWw6IG51bWJlciB8IHN0cmluZyA9IDA7XG4gIEBJbnB1dCgpIGl0ZW1zOiBNZXRyaWNzQ2FyZEl0ZW1bXSA9IFtdO1xuICBASW5wdXQoKSBjYXJkQ2xhc3M6IHN0cmluZyA9ICcnO1xuICBASW5wdXQoKSBsYXlvdXQ6IHN0cmluZyA9ICcxJztcbiAgQElucHV0KCkgdG90YWxQZXJjZW50PzogbnVtYmVyOyAvLyBPcHRpb25hbCBvdmVyYWxsIHBlcmNlbnQgZGVsdGEgZm9yIGxheW91dCAyXG4gIEBJbnB1dCgpIG9uVG90YWxDbGljaz86IChldmVudD86IEV2ZW50KSA9PiB2b2lkOyAvLyBPcHRpb25hbCBjbGljayBoYW5kbGVyIGZvciB0b3RhbCBibG9ja1xuICBAT3V0cHV0KCkgdG90YWxDbGljayA9IG5ldyBFdmVudEVtaXR0ZXI8RXZlbnQ+KCk7IC8vIE91dHB1dCBldmVudCBmb3IgdG90YWwgYmxvY2sgY2xpY2tcbiAgXG4gIGdldCBpc1RvdGFsQ2xpY2thYmxlKCk6IGJvb2xlYW4ge1xuICAgIC8vIFNob3cgcG9pbnRlciBpZiBhbiBpbnB1dCBoYW5kbGVyIGlzIHByb3ZpZGVkIG9yIGFuIG91dHB1dCBsaXN0ZW5lciBpcyBib3VuZFxuICAgIHRyeSB7XG4gICAgICByZXR1cm4gISF0aGlzLm9uVG90YWxDbGljayB8fCAodGhpcy50b3RhbENsaWNrIGFzIGFueSk/Lm9ic2VydmVycz8ubGVuZ3RoID4gMDtcbiAgICB9IGNhdGNoIHtcbiAgICAgIHJldHVybiAhIXRoaXMub25Ub3RhbENsaWNrO1xuICAgIH1cbiAgfVxuXG4gIHByb2dyZXNzV2lkdGgoaXRlbTogTWV0cmljc0NhcmRJdGVtKTogc3RyaW5nIHtcbiAgICBjb25zdCBtYXggPSBpdGVtLm1heCA/PyB0aGlzLmluZmVyTWF4KCk7XG4gICAgaWYgKCFtYXggfHwgbWF4IDw9IDApIHJldHVybiAnMCUnO1xuICAgIGNvbnN0IHBjdCA9IE1hdGgubWF4KDAsIE1hdGgubWluKDEwMCwgKGl0ZW0udmFsdWUgLyBtYXgpICogMTAwKSk7XG4gICAgcmV0dXJuIHBjdC50b0ZpeGVkKDEpICsgJyUnO1xuICB9XG5cbiAgcHJpdmF0ZSBpbmZlck1heCgpOiBudW1iZXIge1xuICAgIGNvbnN0IG1heEZyb21JdGVtcyA9IHRoaXMuaXRlbXMucmVkdWNlKChtLCBpdCkgPT4gTWF0aC5tYXgobSwgaXQudmFsdWUpLCAwKTtcbiAgICByZXR1cm4gbWF4RnJvbUl0ZW1zIHx8IDE7XG4gIH1cblxuICBmb3JtYXRQZXJjZW50KHZhbHVlPzogbnVtYmVyKTogc3RyaW5nIHtcbiAgICBpZiAodmFsdWUgPT09IHVuZGVmaW5lZCB8fCB2YWx1ZSA9PT0gbnVsbCB8fCBOdW1iZXIuaXNOYU4odmFsdWUpKSByZXR1cm4gJyc7XG4gICAgY29uc3Qgc2lnbiA9IHZhbHVlID4gMCA/ICcrJyA6IHZhbHVlIDwgMCA/ICcnIDogJyc7XG4gICAgcmV0dXJuIGAke3NpZ259JHt2YWx1ZX0lYDtcbiAgfVxuXG4gIHBlcmNlbnRDbGFzcyh2YWx1ZT86IG51bWJlcik6IHN0cmluZyB7XG4gICAgaWYgKHZhbHVlID09PSB1bmRlZmluZWQgfHwgdmFsdWUgPT09IG51bGwgfHwgTnVtYmVyLmlzTmFOKHZhbHVlKSkgcmV0dXJuICdjcWEtdGV4dC1bIzZCNzI4MF0nO1xuICAgIGlmICh2YWx1ZSA+IDApIHJldHVybiAnY3FhLXRleHQtWyMxMEI5ODFdJzsgLy8gZ3JlZW5cbiAgICBpZiAodmFsdWUgPCAwKSByZXR1cm4gJ2NxYS10ZXh0LVsjRUY0NDQ0XSc7IC8vIHJlZFxuICAgIHJldHVybiAnY3FhLXRleHQtWyM2QjcyODBdJzsgLy8gbmV1dHJhbFxuICB9XG5cbiAgaGFuZGxlVG90YWxDbGljayhldmVudDogRXZlbnQpOiB2b2lkIHtcbiAgICAvLyBBbHdheXMgZW1pdCB0aGUgZXZlbnQsIGV2ZW4gaWYgbm8gaGFuZGxlciBpcyBwcm92aWRlZFxuICAgIHRoaXMudG90YWxDbGljay5lbWl0KGV2ZW50KTtcbiAgICAvLyBDYWxsIHRoZSBpbnB1dCBoYW5kbGVyIGlmIHByb3ZpZGVkXG4gICAgaWYgKHRoaXMub25Ub3RhbENsaWNrKSB7XG4gICAgICB0aGlzLm9uVG90YWxDbGljayhldmVudCk7XG4gICAgfVxuICB9XG59XG5cblxuIiwiPGRpdiBjbGFzcz1cImNxYS11aS1yb290XCI+XG4gIDxkaXYgKm5nSWY9XCJsYXlvdXQgPT09ICcxJ1wiXG4gICAgY2xhc3M9XCJjcWEtdy1mdWxsIGNxYS1ib3gtYm9yZGVyIGNxYS1mbGV4IGNxYS1mbGV4LWNvbCBjcWEtaXRlbXMtc3RhcnQgY3FhLXB4LXB4IGNxYS1wYi1weCBtZDpjcWEtaC1bNjNweF0gY3FhLWJnLXdoaXRlIGNxYS1ib3JkZXItdC0yIGNxYS1ib3JkZXItciBjcWEtYm9yZGVyLWItMCBjcWEtYm9yZGVyLWwgY3FhLWJvcmRlci1zb2xpZCBjcWEtYm9yZGVyLVsjM0Y0M0VFXSBjcWEtcm91bmRlZC1bMTBweF0gY3FhLWZsZXgtbm9uZSBjcWEtb3JkZXItMCBjcWEtc2VsZi1zdHJldGNoIGNxYS1ncm93LTBcIlxuICAgIFtuZ0NsYXNzXT1cImNhcmRDbGFzc1wiPlxuICAgIDwhLS0gTWV0cmljIGJsb2NrcyAtLT5cbiAgICA8ZGl2XG4gICAgICBjbGFzcz1cImNxYS1mbGV4LTEgY3FhLXctZnVsbCBjcWEtZ3JpZCBjcWEtZ3JpZC1jb2xzLTIgc206Y3FhLWdyaWQtY29scy0yIG1kOmNxYS1ncmlkLWNvbHMtNCBjcWEtYm9yZGVyIGNxYS1ib3JkZXItWyNFNUU3RUJdIGNxYS1yb3VuZGVkLVsxMHB4XSBjcWEtb3ZlcmZsb3ctaGlkZGVuXCI+XG4gICAgICA8IS0tIExlZnQgdG90YWwgYmxvY2sgLS0+XG4gICAgICA8ZGl2XG4gICAgICAgIGNsYXNzPVwiY3FhLWZsZXggY3FhLWZsZXgtY29sIGNxYS1qdXN0aWZ5LWNlbnRlciBjcWEtaXRlbXMtc3RhcnQgY3FhLXB5LTMgbWQ6Y3FhLXB0LTEgbWQ6Y3FhLXBiLTAuNSBjcWEtcHgtNiBjcWEtZ2FwLTEgY3FhLXctZnVsbCBzbTpjcWEtdy1bMTAwJV0gbWQ6Y3FhLXctWzE4MHB4XSBsZzpjcWEtdy1bMjkwcHhdIG1kOmNxYS1oLVs2MXB4XSBjcWEtYm9yZGVyLWIgY3FhLWJvcmRlci1bI0U1RTdFQl0gc206Y3FhLWJvcmRlci1iLTAgc206Y3FhLWJvcmRlci1yXCJcbiAgICAgICAgW25nQ2xhc3NdPVwieydjcWEtY3Vyc29yLXBvaW50ZXIgY3FhLXRyYW5zaXRpb24tY29sb3JzIGhvdmVyOmNxYS1iZy1ncmF5LTUwJzogaXNUb3RhbENsaWNrYWJsZX1cIlxuICAgICAgICAoY2xpY2spPVwiaGFuZGxlVG90YWxDbGljaygkZXZlbnQpXCJcbiAgICAgICAgW2F0dHIudGl0bGVdPVwibnVsbFwiPlxuICAgICAgICA8c3BhbiBjbGFzcz1cImNxYS10ZXh0LVsxMnB4XSBjcWEtbGVhZGluZy1bMTZweF0gY3FhLWZvbnQtbWVkaXVtIGNxYS1mb250LWludGVyIGNxYS10ZXh0LVsjNkE3MjgyXVwiIFthdHRyLnRpdGxlXT1cIm51bGxcIj4ge3sgdGl0bGUgfX0gPC9zcGFuPlxuICAgICAgICA8aDMgY2xhc3M9XCJjcWEtdGV4dC1bMzBweF0gY3FhLWxlYWRpbmctWzM2cHhdIGNxYS1mb250LWJvbGQgY3FhLWZvbnQtaW50ZXIgY3FhLXRyYWNraW5nLVswLjM5NTUwOHB4XSBjcWEtdGV4dC1bIzEwMTgyOF1cIiBbYXR0ci50aXRsZV09XCJudWxsXCI+IHt7XG4gICAgICAgICAgdG90YWwgfCBudW1iZXIgfX0gPC9oMz5cbiAgICAgIDwvZGl2PlxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgaXQgb2YgaXRlbXM7IGxldCBpID0gaW5kZXhcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImNxYS1mbGV4IGNxYS1pdGVtcy1zdHJldGNoIGNxYS1ib3JkZXItYiBjcWEtYm9yZGVyLVsjRTVFN0VCXSBtZDpjcWEtYm9yZGVyLWItMCBjcWEtbWluLXctMFwiIFthdHRyLnRpdGxlXT1cIm51bGxcIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiY3FhLWhpZGRlbiBzbTpjcWEtYmxvY2sgbWQ6Y3FhLWJsb2NrIGNxYS13LVsxcHhdIGNxYS1iZy1bI0U1RTdFQl0gY3FhLWZsZXgtc2hyaW5rLTBcIj48L2Rpdj5cbiAgICAgICAgICA8Y3FhLW1ldHJpY3MtYmxvY2sgW2l0ZW1dPVwiaXRcIiBbaXRlbXNsZW5ndGhdPVwiaXRlbXMubGVuZ3RoLnRvU3RyaW5nKClcIlxuICAgICAgICAgICAgW3Byb2dyZXNzXT1cInByb2dyZXNzV2lkdGgoaXQpXCIgY2xhc3M9XCJjcWEtZmxleC0xIGNxYS1taW4tdy0wXCI+XG4gICAgICAgICAgPC9jcWEtbWV0cmljcy1ibG9jaz5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG5cbiAgPGRpdiAqbmdJZj1cImxheW91dCA9PT0gJzInXCJcbiAgICBjbGFzcz1cImNxYS13LWZ1bGwgY3FhLWJveC1ib3JkZXIgY3FhLWZsZXggY3FhLWZsZXgtY29sIGNxYS1pdGVtcy1zdGFydCBjcWEtcHgtcHggY3FhLXBiLXB4IG1kOmNxYS1oLVs2M3B4XSBjcWEtYmctd2hpdGUgY3FhLWZsZXgtbm9uZSBjcWEtb3JkZXItMCBjcWEtc2VsZi1zdHJldGNoIGNxYS1ncm93LTBcIlxuICAgIFtuZ0NsYXNzXT1cImNhcmRDbGFzc1wiPlxuICAgIDxkaXZcbiAgICAgIGNsYXNzPVwiY3FhLWZsZXggY3FhLWZsZXgtY29sIG1kOmNxYS1mbGV4LXJvdyBjcWEtZmxleC13cmFwIGNxYS1pdGVtcy1zdHJldGNoIGNxYS13LWZ1bGwgY3FhLW1pbi1oLVs1M3B4XSBjcWEtcm91bmRlZC1ub25lIGNxYS1mbGV4LW5vbmUgY3FhLW9yZGVyLTAgY3FhLXNlbGYtc3RyZXRjaCBjcWEtZ3Jvdy0wIGNxYS1nYXAtNFwiPlxuICAgICAgPCEtLSBMZWZ0IHRvdGFsIGJsb2NrIC0tPlxuICAgICAgPGRpdlxuICAgICAgICBjbGFzcz1cImNxYS1mbGV4IGNxYS1mbGV4LWNvbCBjcWEtanVzdGlmeS1jZW50ZXIgY3FhLWl0ZW1zLXN0YXJ0IGNxYS1weS0zIG1kOmNxYS1weS0xIGNxYS1weC00IHNtOmNxYS1weC02IGNxYS1nYXAtMSBjcWEtdy1mdWxsIHNtOmNxYS13LVsxMDAlXSBtZDpjcWEtdy1bMjQwcHhdIGxnOmNxYS13LVsyOTBweF0gbWQ6Y3FhLWgtWzYxcHhdIGNxYS1yb3VuZGVkLVsxMHB4XSBjcWEtYm9yZGVyIGNxYS1ib3JkZXItc29saWQgY3FhLWJvcmRlci1bI0U1RTdFQl0gY3FhLXJlbGF0aXZlIGNxYS1vdmVyZmxvdy1oaWRkZW4gYmVmb3JlOmNxYS1jb250ZW50LVsnJ10gYmVmb3JlOmNxYS1iZy1bIzRDNEM1MV0gYmVmb3JlOmNxYS1oLVsycHhdIGJlZm9yZTpjcWEtdy1mdWxsIGJlZm9yZTpjcWEtYWJzb2x1dGUgYmVmb3JlOmNxYS10b3AtMCBiZWZvcmU6Y3FhLWxlZnQtMFwiXG4gICAgICAgIFtuZ0NsYXNzXT1cInsnY3FhLWN1cnNvci1wb2ludGVyIGNxYS10cmFuc2l0aW9uLWNvbG9ycyBob3ZlcjpjcWEtYmctZ3JheS01MCc6IGlzVG90YWxDbGlja2FibGV9XCJcbiAgICAgICAgKGNsaWNrKT1cImhhbmRsZVRvdGFsQ2xpY2soJGV2ZW50KVwiXG4gICAgICAgIFthdHRyLnRpdGxlXT1cIm51bGxcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImNxYS1mbGV4IGNxYS1pdGVtcy1jZW50ZXIgY3FhLWdhcC0yIGNxYS1qdXN0aWZ5LWJldHdlZW4gY3FhLXctZnVsbFwiPlxuICAgICAgICAgIDxtYXQtaWNvbiBjbGFzcz1cIiFjcWEtdy00ICFjcWEtaC00ICFjcWEtdGV4dC1bMTZweF0gY3FhLXRleHQtWyM2QjcyODBdXCI+e3sgaWNvbiB9fTwvbWF0LWljb24+XG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJjcWEtdGV4dC1bIzZCNzI4MF0gY3FhLXRleHQtWzE0cHhdIGNxYS1sZWFkaW5nLTQgY3FhLWZvbnQtaW50ZXJcIiBbYXR0ci50aXRsZV09XCJudWxsXCI+e3sgdGl0bGUgfX08L3NwYW4+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImNxYS1mbGV4IGNxYS1pdGVtcy1lbmQgY3FhLWdhcC0yIGNxYS1tbC1hdXRvXCI+XG4gICAgICAgICAgICA8aDQgY2xhc3M9XCJjcWEtdGV4dC1bMjhweF0gY3FhLWxlYWRpbmctNyBjcWEtdHJhY2tpbmctWy0wLjQ1cHhdIGNxYS1mb250LWludGVyIGNxYS10ZXh0LVsjMTExODI3XVwiIFthdHRyLnRpdGxlXT1cIm51bGxcIj57eyB0b3RhbCB8IG51bWJlciB9fVxuICAgICAgICAgICAgPC9oND5cbiAgICAgICAgICAgIDxzcGFuICpuZ0lmPVwidG90YWxQZXJjZW50ICE9PSB1bmRlZmluZWRcIiBjbGFzcz1cImNxYS10ZXh0LVsxMHB4XSBjcWEtbGVhZGluZy00IGNxYS1mb250LWludGVyXCJcbiAgICAgICAgICAgICAgW25nQ2xhc3NdPVwicGVyY2VudENsYXNzKHRvdGFsUGVyY2VudClcIiBbYXR0ci50aXRsZV09XCJudWxsXCI+e3sgZm9ybWF0UGVyY2VudCh0b3RhbFBlcmNlbnQpIH19PC9zcGFuPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cblxuICAgICAgPC9kaXY+XG4gICAgICA8IS0tIE1ldHJpYyBibG9ja3MgLS0+XG4gICAgICA8ZGl2IFtuZ0NsYXNzXT1cIidjcWEtZ3JpZC1jb2xzLScgKyBpdGVtcy5sZW5ndGggKyAnIGxnOmNxYS1ncmlkLWNvbHMtJyArIGl0ZW1zLmxlbmd0aFwiXG4gICAgICAgIGNsYXNzPVwiY3FhLWZsZXgtMSBjcWEtdy1mdWxsIGNxYS1ncmlkIG1kOmNxYS1ncmlkLWNvbHMtMyBjcWEtZ2FwLTIgbWQ6Y3FhLWdhcC0zIGNxYS1pdGVtcy1jZW50ZXIgY3FhLXJvdW5kZWQtWzEwcHhdIGNxYS1ib3JkZXIgY3FhLWJvcmRlci1zb2xpZCBjcWEtYm9yZGVyLVsjRTVFN0VCXSBjcWEtcmVsYXRpdmUgY3FhLW92ZXJmbG93LWhpZGRlblwiPlxuICAgICAgICA8c3BhbiBjbGFzcz1cImNxYS1oLVsycHhdIGNxYS13LWZ1bGwgY3FhLWFic29sdXRlIGNxYS10b3AtMCBjcWEtbGVmdC0wXCJcbiAgICAgICAgICBbc3R5bGUuYmFja2dyb3VuZF09XCInbGluZWFyLWdyYWRpZW50KDkwZGVnLCAjM0I4MkY2IDAlLCByZ2JhKDAsIDAsIDAsIDApIDEwMCUpJ1wiPjwvc3Bhbj5cbiAgICAgICAgPGNxYS1tZXRyaWNzLWJsb2NrICpuZ0Zvcj1cImxldCBpdCBvZiBpdGVtczsgbGV0IGkgPSBpbmRleFwiIFtpdGVtXT1cIml0XCIgW2xheW91dF09XCJsYXlvdXRcIiBbYXR0ci50aXRsZV09XCJudWxsXCI+XG4gICAgICAgIDwvY3FhLW1ldHJpY3MtYmxvY2s+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG48L2Rpdj4iXX0=
|
|
84
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWV0cmljcy1jYXJkLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWIvZGFzaGJvYXJkcy9tZXRyaWNzLWNhcmQvbWV0cmljcy1jYXJkLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWIvZGFzaGJvYXJkcy9tZXRyaWNzLWNhcmQvbWV0cmljcy1jYXJkLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7Ozs7O0FBVWhHLE1BQU0sT0FBTyxvQkFBb0I7SUFQakM7UUFRVyxTQUFJLEdBQVcsY0FBYyxDQUFDO1FBQzlCLFVBQUssR0FBVyxFQUFFLENBQUM7UUFDbkIsVUFBSyxHQUFvQixDQUFDLENBQUM7UUFDM0IsVUFBSyxHQUFzQixFQUFFLENBQUM7UUFDOUIsY0FBUyxHQUFXLEVBQUUsQ0FBQztRQUN2QixXQUFNLEdBQVcsR0FBRyxDQUFDO1FBR3BCLGVBQVUsR0FBRyxJQUFJLFlBQVksRUFBUyxDQUFDLENBQUMscUNBQXFDO0tBNEN4RjtJQTFDQyxJQUFJLGdCQUFnQjtRQUNsQiw4RUFBOEU7UUFDOUUsSUFBSTtZQUNGLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FBQyxZQUFZLElBQUssSUFBSSxDQUFDLFVBQWtCLEVBQUUsU0FBUyxFQUFFLE1BQU0sR0FBRyxDQUFDLENBQUM7U0FDL0U7UUFBQyxNQUFNO1lBQ04sT0FBTyxDQUFDLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQztTQUM1QjtJQUNILENBQUM7SUFFRCxhQUFhLENBQUMsSUFBcUI7UUFDakMsTUFBTSxHQUFHLEdBQUcsSUFBSSxDQUFDLEdBQUcsSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDeEMsSUFBSSxDQUFDLEdBQUcsSUFBSSxHQUFHLElBQUksQ0FBQztZQUFFLE9BQU8sSUFBSSxDQUFDO1FBQ2xDLE1BQU0sR0FBRyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLEtBQUssR0FBRyxHQUFHLENBQUMsR0FBRyxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBQ2pFLE9BQU8sR0FBRyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsR0FBRyxHQUFHLENBQUM7SUFDOUIsQ0FBQztJQUVPLFFBQVE7UUFDZCxNQUFNLFlBQVksR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUM1RSxPQUFPLFlBQVksSUFBSSxDQUFDLENBQUM7SUFDM0IsQ0FBQztJQUVELGFBQWEsQ0FBQyxLQUFjO1FBQzFCLElBQUksS0FBSyxLQUFLLFNBQVMsSUFBSSxLQUFLLEtBQUssSUFBSSxJQUFJLE1BQU0sQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDO1lBQUUsT0FBTyxFQUFFLENBQUM7UUFDNUUsTUFBTSxJQUFJLEdBQUcsS0FBSyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztRQUNuRCxPQUFPLEdBQUcsSUFBSSxHQUFHLEtBQUssR0FBRyxDQUFDO0lBQzVCLENBQUM7SUFFRCxZQUFZLENBQUMsS0FBYztRQUN6QixJQUFJLEtBQUssS0FBSyxTQUFTLElBQUksS0FBSyxLQUFLLElBQUksSUFBSSxNQUFNLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQztZQUFFLE9BQU8sb0JBQW9CLENBQUM7UUFDOUYsSUFBSSxLQUFLLEdBQUcsQ0FBQztZQUFFLE9BQU8sb0JBQW9CLENBQUMsQ0FBQyxRQUFRO1FBQ3BELElBQUksS0FBSyxHQUFHLENBQUM7WUFBRSxPQUFPLG9CQUFvQixDQUFDLENBQUMsTUFBTTtRQUNsRCxPQUFPLG9CQUFvQixDQUFDLENBQUMsVUFBVTtJQUN6QyxDQUFDO0lBRUQsZ0JBQWdCLENBQUMsS0FBWTtRQUMzQix3REFBd0Q7UUFDeEQsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDNUIscUNBQXFDO1FBQ3JDLElBQUksSUFBSSxDQUFDLFlBQVksRUFBRTtZQUNyQixJQUFJLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxDQUFDO1NBQzFCO0lBQ0gsQ0FBQzs7aUhBcERVLG9CQUFvQjtxR0FBcEIsb0JBQW9CLHdUQ1ZqQywybUpBNkRNOzJGRG5ETyxvQkFBb0I7a0JBUGhDLFNBQVM7K0JBQ0Usa0JBQWtCLG1CQUdYLHVCQUF1QixDQUFDLE1BQU0sUUFDekMsRUFBRSxLQUFLLEVBQUUsYUFBYSxFQUFFOzhCQUdyQixJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csS0FBSztzQkFBYixLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFDRyxNQUFNO3NCQUFkLEtBQUs7Z0JBQ0csWUFBWTtzQkFBcEIsS0FBSztnQkFDRyxZQUFZO3NCQUFwQixLQUFLO2dCQUNJLFVBQVU7c0JBQW5CLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE1ldHJpY3NDYXJkSXRlbSB9IGZyb20gJy4vbWV0cmljcy1jYXJkLWl0ZW0uaW50ZXJmYWNlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnY3FhLW1ldHJpY3MtY2FyZCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9tZXRyaWNzLWNhcmQuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFtdLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgaG9zdDogeyBjbGFzczogJ2NxYS11aS1yb290JyB9XG59KVxuZXhwb3J0IGNsYXNzIE1ldHJpY3NDYXJkQ29tcG9uZW50IHtcbiAgQElucHV0KCkgaWNvbjogc3RyaW5nID0gJ3RleHRfc25pcHBldCc7XG4gIEBJbnB1dCgpIHRpdGxlOiBzdHJpbmcgPSAnJztcbiAgQElucHV0KCkgdG90YWw6IG51bWJlciB8IHN0cmluZyA9IDA7XG4gIEBJbnB1dCgpIGl0ZW1zOiBNZXRyaWNzQ2FyZEl0ZW1bXSA9IFtdO1xuICBASW5wdXQoKSBjYXJkQ2xhc3M6IHN0cmluZyA9ICcnO1xuICBASW5wdXQoKSBsYXlvdXQ6IHN0cmluZyA9ICcxJztcbiAgQElucHV0KCkgdG90YWxQZXJjZW50PzogbnVtYmVyOyAvLyBPcHRpb25hbCBvdmVyYWxsIHBlcmNlbnQgZGVsdGEgZm9yIGxheW91dCAyXG4gIEBJbnB1dCgpIG9uVG90YWxDbGljaz86IChldmVudD86IEV2ZW50KSA9PiB2b2lkOyAvLyBPcHRpb25hbCBjbGljayBoYW5kbGVyIGZvciB0b3RhbCBibG9ja1xuICBAT3V0cHV0KCkgdG90YWxDbGljayA9IG5ldyBFdmVudEVtaXR0ZXI8RXZlbnQ+KCk7IC8vIE91dHB1dCBldmVudCBmb3IgdG90YWwgYmxvY2sgY2xpY2tcbiAgXG4gIGdldCBpc1RvdGFsQ2xpY2thYmxlKCk6IGJvb2xlYW4ge1xuICAgIC8vIFNob3cgcG9pbnRlciBpZiBhbiBpbnB1dCBoYW5kbGVyIGlzIHByb3ZpZGVkIG9yIGFuIG91dHB1dCBsaXN0ZW5lciBpcyBib3VuZFxuICAgIHRyeSB7XG4gICAgICByZXR1cm4gISF0aGlzLm9uVG90YWxDbGljayB8fCAodGhpcy50b3RhbENsaWNrIGFzIGFueSk/Lm9ic2VydmVycz8ubGVuZ3RoID4gMDtcbiAgICB9IGNhdGNoIHtcbiAgICAgIHJldHVybiAhIXRoaXMub25Ub3RhbENsaWNrO1xuICAgIH1cbiAgfVxuXG4gIHByb2dyZXNzV2lkdGgoaXRlbTogTWV0cmljc0NhcmRJdGVtKTogc3RyaW5nIHtcbiAgICBjb25zdCBtYXggPSBpdGVtLm1heCA/PyB0aGlzLmluZmVyTWF4KCk7XG4gICAgaWYgKCFtYXggfHwgbWF4IDw9IDApIHJldHVybiAnMCUnO1xuICAgIGNvbnN0IHBjdCA9IE1hdGgubWF4KDAsIE1hdGgubWluKDEwMCwgKGl0ZW0udmFsdWUgLyBtYXgpICogMTAwKSk7XG4gICAgcmV0dXJuIHBjdC50b0ZpeGVkKDEpICsgJyUnO1xuICB9XG5cbiAgcHJpdmF0ZSBpbmZlck1heCgpOiBudW1iZXIge1xuICAgIGNvbnN0IG1heEZyb21JdGVtcyA9IHRoaXMuaXRlbXMucmVkdWNlKChtLCBpdCkgPT4gTWF0aC5tYXgobSwgaXQudmFsdWUpLCAwKTtcbiAgICByZXR1cm4gbWF4RnJvbUl0ZW1zIHx8IDE7XG4gIH1cblxuICBmb3JtYXRQZXJjZW50KHZhbHVlPzogbnVtYmVyKTogc3RyaW5nIHtcbiAgICBpZiAodmFsdWUgPT09IHVuZGVmaW5lZCB8fCB2YWx1ZSA9PT0gbnVsbCB8fCBOdW1iZXIuaXNOYU4odmFsdWUpKSByZXR1cm4gJyc7XG4gICAgY29uc3Qgc2lnbiA9IHZhbHVlID4gMCA/ICcrJyA6IHZhbHVlIDwgMCA/ICcnIDogJyc7XG4gICAgcmV0dXJuIGAke3NpZ259JHt2YWx1ZX0lYDtcbiAgfVxuXG4gIHBlcmNlbnRDbGFzcyh2YWx1ZT86IG51bWJlcik6IHN0cmluZyB7XG4gICAgaWYgKHZhbHVlID09PSB1bmRlZmluZWQgfHwgdmFsdWUgPT09IG51bGwgfHwgTnVtYmVyLmlzTmFOKHZhbHVlKSkgcmV0dXJuICdjcWEtdGV4dC1bIzZCNzI4MF0nO1xuICAgIGlmICh2YWx1ZSA+IDApIHJldHVybiAnY3FhLXRleHQtWyMxMEI5ODFdJzsgLy8gZ3JlZW5cbiAgICBpZiAodmFsdWUgPCAwKSByZXR1cm4gJ2NxYS10ZXh0LVsjRUY0NDQ0XSc7IC8vIHJlZFxuICAgIHJldHVybiAnY3FhLXRleHQtWyM2QjcyODBdJzsgLy8gbmV1dHJhbFxuICB9XG5cbiAgaGFuZGxlVG90YWxDbGljayhldmVudDogRXZlbnQpOiB2b2lkIHtcbiAgICAvLyBBbHdheXMgZW1pdCB0aGUgZXZlbnQsIGV2ZW4gaWYgbm8gaGFuZGxlciBpcyBwcm92aWRlZFxuICAgIHRoaXMudG90YWxDbGljay5lbWl0KGV2ZW50KTtcbiAgICAvLyBDYWxsIHRoZSBpbnB1dCBoYW5kbGVyIGlmIHByb3ZpZGVkXG4gICAgaWYgKHRoaXMub25Ub3RhbENsaWNrKSB7XG4gICAgICB0aGlzLm9uVG90YWxDbGljayhldmVudCk7XG4gICAgfVxuICB9XG59XG5cblxuIiwiPGRpdiBjbGFzcz1cImNxYS11aS1yb290XCI+XG4gIDxkaXYgKm5nSWY9XCJsYXlvdXQgPT09ICcxJ1wiXG4gICAgY2xhc3M9XCJjcWEtdy1mdWxsIGNxYS1ib3gtYm9yZGVyIGNxYS1mbGV4IGNxYS1mbGV4LWNvbCBjcWEtaXRlbXMtc3RhcnQgY3FhLXB4LXB4IGNxYS1wYi1weCBtZDpjcWEtaC1bNjNweF0gY3FhLWJnLXdoaXRlIGNxYS1ib3JkZXItdC0yIGNxYS1ib3JkZXItciBjcWEtYm9yZGVyLWItMCBjcWEtYm9yZGVyLWwgY3FhLWJvcmRlci1zb2xpZCBjcWEtYm9yZGVyLVsjM0Y0M0VFXSBjcWEtcm91bmRlZC1bMTBweF0gY3FhLWZsZXgtbm9uZSBjcWEtb3JkZXItMCBjcWEtc2VsZi1zdHJldGNoIGNxYS1ncm93LTBcIlxuICAgIFtuZ0NsYXNzXT1cImNhcmRDbGFzc1wiPlxuICAgIDwhLS0gTWV0cmljIGJsb2NrcyAtLT5cbiAgICA8ZGl2XG4gICAgICBjbGFzcz1cImNxYS1mbGV4LTEgY3FhLXctZnVsbCBjcWEtZ3JpZCBjcWEtZ3JpZC1jb2xzLTIgc206Y3FhLWdyaWQtY29scy0yIG1kOmNxYS1ncmlkLWNvbHMtNCBjcWEtYm9yZGVyIGNxYS1ib3JkZXItWyNFNUU3RUJdIGNxYS1yb3VuZGVkLVsxMHB4XSBjcWEtb3ZlcmZsb3ctaGlkZGVuXCI+XG4gICAgICA8IS0tIExlZnQgdG90YWwgYmxvY2sgLS0+XG4gICAgICA8ZGl2XG4gICAgICAgIGNsYXNzPVwiY3FhLWZsZXggY3FhLWZsZXgtY29sIGNxYS1qdXN0aWZ5LWNlbnRlciBjcWEtaXRlbXMtc3RhcnQgY3FhLXB5LTMgbWQ6Y3FhLXB0LTEgbWQ6Y3FhLXBiLTAuNSBjcWEtcHgtNiBjcWEtZ2FwLTEgY3FhLXctZnVsbCBzbTpjcWEtdy1bMTAwJV0gbWQ6Y3FhLXctWzE4MHB4XSBsZzpjcWEtdy1bMjkwcHhdIG1kOmNxYS1oLVs2MXB4XSBjcWEtYm9yZGVyLWIgY3FhLWJvcmRlci1bI0U1RTdFQl0gc206Y3FhLWJvcmRlci1iLTAgc206Y3FhLWJvcmRlci1yXCJcbiAgICAgICAgW25nQ2xhc3NdPVwieydjcWEtY3Vyc29yLXBvaW50ZXIgY3FhLXRyYW5zaXRpb24tY29sb3JzIGhvdmVyOmNxYS1iZy1ncmF5LTUwJzogaXNUb3RhbENsaWNrYWJsZX1cIlxuICAgICAgICAoY2xpY2spPVwiaGFuZGxlVG90YWxDbGljaygkZXZlbnQpXCJcbiAgICAgICAgW2F0dHIudGl0bGVdPVwibnVsbFwiPlxuICAgICAgICA8c3BhbiBjbGFzcz1cImNxYS10ZXh0LVsxMnB4XSBjcWEtbGVhZGluZy1bMTZweF0gY3FhLWZvbnQtbWVkaXVtIGNxYS1mb250LWludGVyIGNxYS10ZXh0LVsjNkE3MjgyXVwiIFthdHRyLnRpdGxlXT1cIm51bGxcIj4ge3sgdGl0bGUgfX0gPC9zcGFuPlxuICAgICAgICA8aDMgY2xhc3M9XCJjcWEtdGV4dC1bMzBweF0gY3FhLWxlYWRpbmctWzM2cHhdIGNxYS1mb250LWJvbGQgY3FhLWZvbnQtaW50ZXIgY3FhLXRyYWNraW5nLVswLjM5NTUwOHB4XSBjcWEtdGV4dC1bIzEwMTgyOF1cIiBbYXR0ci50aXRsZV09XCJudWxsXCI+IHt7XG4gICAgICAgICAgdG90YWwgfCBudW1iZXIgfX0gPC9oMz5cbiAgICAgIDwvZGl2PlxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgaXQgb2YgaXRlbXM7IGxldCBpID0gaW5kZXhcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImNxYS1mbGV4IGNxYS1pdGVtcy1zdHJldGNoIGNxYS1ib3JkZXItYiBjcWEtYm9yZGVyLVsjRTVFN0VCXSBtZDpjcWEtYm9yZGVyLWItMCBjcWEtbWluLXctMFwiIFthdHRyLnRpdGxlXT1cIm51bGxcIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiY3FhLWhpZGRlbiBzbTpjcWEtYmxvY2sgbWQ6Y3FhLWJsb2NrIGNxYS13LVsxcHhdIGNxYS1iZy1bI0U1RTdFQl0gY3FhLWZsZXgtc2hyaW5rLTBcIj48L2Rpdj5cbiAgICAgICAgICA8Y3FhLW1ldHJpY3MtYmxvY2sgW2l0ZW1dPVwiaXRcIiBbaXRlbXNsZW5ndGhdPVwiaXRlbXMubGVuZ3RoLnRvU3RyaW5nKClcIlxuICAgICAgICAgICAgW3Byb2dyZXNzXT1cInByb2dyZXNzV2lkdGgoaXQpXCIgY2xhc3M9XCJjcWEtZmxleC0xIGNxYS1taW4tdy0wXCI+XG4gICAgICAgICAgPC9jcWEtbWV0cmljcy1ibG9jaz5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG5cbiAgPGRpdiAqbmdJZj1cImxheW91dCA9PT0gJzInXCJcbiAgICBjbGFzcz1cImNxYS13LWZ1bGwgY3FhLWJveC1ib3JkZXIgY3FhLWZsZXggY3FhLWZsZXgtY29sIGNxYS1pdGVtcy1zdGFydCBjcWEtcHgtcHggY3FhLXBiLXB4IGNxYS1iZy13aGl0ZSBjcWEtZmxleC1ub25lIGNxYS1vcmRlci0wIGNxYS1zZWxmLXN0cmV0Y2ggY3FhLWdyb3ctMFwiXG4gICAgW25nQ2xhc3NdPVwiY2FyZENsYXNzXCI+XG4gICAgPGRpdlxuICAgICAgY2xhc3M9XCJjcWEtZmxleCBjcWEtZmxleC1jb2wgbWQ6Y3FhLWZsZXgtcm93IGNxYS1mbGV4LXdyYXAgY3FhLWl0ZW1zLXN0cmV0Y2ggY3FhLXctZnVsbCBjcWEtcm91bmRlZC1ub25lIGNxYS1mbGV4LW5vbmUgY3FhLW9yZGVyLTAgY3FhLXNlbGYtc3RyZXRjaCBjcWEtZ3Jvdy0wIGNxYS1nYXAtNFwiPlxuICAgICAgPCEtLSBMZWZ0IHRvdGFsIGJsb2NrIC0tPlxuICAgICAgPGRpdlxuICAgICAgICBjbGFzcz1cImNxYS1mbGV4IGNxYS1mbGV4LWNvbCBjcWEtanVzdGlmeS1jZW50ZXIgY3FhLWl0ZW1zLXN0YXJ0IGNxYS1weS0zIG1kOmNxYS1weS0xIGNxYS1weC00IHNtOmNxYS1weC02IGNxYS1nYXAtMSBjcWEtdy1mdWxsIHNtOmNxYS13LVsxMDAlXSBtZDpjcWEtdy1bMjQwcHhdIGxnOmNxYS13LVsyOTBweF0gY3FhLXJvdW5kZWQtWzEwcHhdIGNxYS1ib3JkZXIgY3FhLWJvcmRlci1zb2xpZCBjcWEtYm9yZGVyLVsjRTVFN0VCXSBjcWEtcmVsYXRpdmUgY3FhLW92ZXJmbG93LWhpZGRlbiBiZWZvcmU6Y3FhLWNvbnRlbnQtWycnXSBiZWZvcmU6Y3FhLWJnLVsjNEM0QzUxXSBiZWZvcmU6Y3FhLWgtWzJweF0gYmVmb3JlOmNxYS13LWZ1bGwgYmVmb3JlOmNxYS1hYnNvbHV0ZSBiZWZvcmU6Y3FhLXRvcC0wIGJlZm9yZTpjcWEtbGVmdC0wIGNxYS1oLWF1dG9cIlxuICAgICAgICBbbmdDbGFzc109XCJ7J2NxYS1jdXJzb3ItcG9pbnRlciBjcWEtdHJhbnNpdGlvbi1jb2xvcnMgaG92ZXI6Y3FhLWJnLWdyYXktNTAnOiBpc1RvdGFsQ2xpY2thYmxlfVwiXG4gICAgICAgIChjbGljayk9XCJoYW5kbGVUb3RhbENsaWNrKCRldmVudClcIlxuICAgICAgICBbYXR0ci50aXRsZV09XCJudWxsXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJjcWEtZmxleCBjcWEtaXRlbXMtY2VudGVyIGNxYS1nYXAtMiBjcWEtanVzdGlmeS1iZXR3ZWVuIGNxYS13LWZ1bGxcIj5cbiAgICAgICAgICA8bWF0LWljb24gY2xhc3M9XCIhY3FhLXctNCAhY3FhLWgtNCAhY3FhLXRleHQtWzE2cHhdIGNxYS10ZXh0LVsjNkI3MjgwXVwiPnt7IGljb24gfX08L21hdC1pY29uPlxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwiY3FhLXRleHQtWyM2QjcyODBdIGNxYS10ZXh0LVsxNHB4XSBjcWEtbGVhZGluZy00IGNxYS1mb250LWludGVyXCIgW2F0dHIudGl0bGVdPVwibnVsbFwiPnt7IHRpdGxlIH19PC9zcGFuPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJjcWEtZmxleCBjcWEtaXRlbXMtZW5kIGNxYS1nYXAtMiBjcWEtbWwtYXV0b1wiPlxuICAgICAgICAgICAgPGg0IGNsYXNzPVwiY3FhLXRleHQtWzI4cHhdIGNxYS1sZWFkaW5nLTcgY3FhLXRyYWNraW5nLVstMC40NXB4XSBjcWEtZm9udC1pbnRlciBjcWEtdGV4dC1bIzExMTgyN11cIiBbYXR0ci50aXRsZV09XCJudWxsXCI+e3sgdG90YWwgfCBudW1iZXIgfX1cbiAgICAgICAgICAgIDwvaDQ+XG4gICAgICAgICAgICA8c3BhbiAqbmdJZj1cInRvdGFsUGVyY2VudCAhPT0gdW5kZWZpbmVkXCIgY2xhc3M9XCJjcWEtdGV4dC1bMTBweF0gY3FhLWxlYWRpbmctNCBjcWEtZm9udC1pbnRlclwiXG4gICAgICAgICAgICAgIFtuZ0NsYXNzXT1cInBlcmNlbnRDbGFzcyh0b3RhbFBlcmNlbnQpXCIgW2F0dHIudGl0bGVdPVwibnVsbFwiPnt7IGZvcm1hdFBlcmNlbnQodG90YWxQZXJjZW50KSB9fTwvc3Bhbj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG5cbiAgICAgIDwvZGl2PlxuICAgICAgPCEtLSBNZXRyaWMgYmxvY2tzIC0tPlxuICAgICAgPGRpdiBbbmdDbGFzc109XCInY3FhLWdyaWQtY29scy0nICsgaXRlbXMubGVuZ3RoICsgJyBsZzpjcWEtZ3JpZC1jb2xzLScgKyBpdGVtcy5sZW5ndGhcIlxuICAgICAgICBjbGFzcz1cImNxYS1mbGV4LTEgY3FhLXctZnVsbCBjcWEtZ3JpZCBtZDpjcWEtZ3JpZC1jb2xzLTMgY3FhLWdhcC0yIG1kOmNxYS1nYXAtMyBjcWEtaXRlbXMtY2VudGVyIGNxYS1yb3VuZGVkLVsxMHB4XSBjcWEtYm9yZGVyIGNxYS1ib3JkZXItc29saWQgY3FhLWJvcmRlci1bI0U1RTdFQl0gY3FhLXJlbGF0aXZlIGNxYS1vdmVyZmxvdy1oaWRkZW5cIj5cbiAgICAgICAgPHNwYW4gY2xhc3M9XCJjcWEtaC1bMnB4XSBjcWEtdy1mdWxsIGNxYS1hYnNvbHV0ZSBjcWEtdG9wLTAgY3FhLWxlZnQtMFwiXG4gICAgICAgICAgW3N0eWxlLmJhY2tncm91bmRdPVwiJ2xpbmVhci1ncmFkaWVudCg5MGRlZywgIzNCODJGNiAwJSwgcmdiYSgwLCAwLCAwLCAwKSAxMDAlKSdcIj48L3NwYW4+XG4gICAgICAgIDxjcWEtbWV0cmljcy1ibG9jayAqbmdGb3I9XCJsZXQgaXQgb2YgaXRlbXM7IGxldCBpID0gaW5kZXhcIiBbaXRlbV09XCJpdFwiIFtsYXlvdXRdPVwibGF5b3V0XCIgW2F0dHIudGl0bGVdPVwibnVsbFwiPlxuICAgICAgICA8L2NxYS1tZXRyaWNzLWJsb2NrPlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC9kaXY+Il19
|
|
@@ -9,6 +9,9 @@ export class TestDistributionCardComponent {
|
|
|
9
9
|
this.items = [];
|
|
10
10
|
this.itemClick = new EventEmitter();
|
|
11
11
|
this.childClick = new EventEmitter();
|
|
12
|
+
this.canvas = document.createElement('canvas');
|
|
13
|
+
this.context = this.canvas.getContext('2d');
|
|
14
|
+
this.segmentHPadding = 4;
|
|
12
15
|
}
|
|
13
16
|
totalSegments() {
|
|
14
17
|
return this.visibleSegments.reduce((sum, s) => sum + (s.value || 0), 0) || 1;
|
|
@@ -48,6 +51,14 @@ export class TestDistributionCardComponent {
|
|
|
48
51
|
const scaledPct = (currentWidth.naturalPct / totalNaturalAboveMinimum) * remainingSpace;
|
|
49
52
|
return Math.max(minWidthPct, scaledPct) + '%';
|
|
50
53
|
}
|
|
54
|
+
segmentMinWidth(segment) {
|
|
55
|
+
if (!this.context) {
|
|
56
|
+
return '0px';
|
|
57
|
+
}
|
|
58
|
+
this.context.font = '12px Inter';
|
|
59
|
+
const width = this.context.measureText(segment.label).width;
|
|
60
|
+
return `${width + this.segmentHPadding * 2}px`;
|
|
61
|
+
}
|
|
51
62
|
segmentColor(segment, fallback) {
|
|
52
63
|
return segment.colorClass || fallback;
|
|
53
64
|
}
|
|
@@ -91,10 +102,10 @@ export class TestDistributionCardComponent {
|
|
|
91
102
|
}
|
|
92
103
|
}
|
|
93
104
|
TestDistributionCardComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: TestDistributionCardComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
94
|
-
TestDistributionCardComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.4.0", type: TestDistributionCardComponent, selector: "cqa-test-distribution-card", inputs: { title: "title", segments: "segments", items: "items" }, outputs: { itemClick: "itemClick", childClick: "childClick" }, host: { classAttribute: "cqa-ui-root" }, ngImport: i0, template: "<div class=\"cqa-ui-root\">\n <div class=\"cqa-bg-white cqa-rounded-[8px] cqa-border cqa-border-solid cqa-border-border-default cqa-py-[14.5px] cqa-px-[17px] cqa-shadow-card\">\n <!-- Title -->\n <h3 class=\"cqa-text-[16px] cqa-leading-6 cqa-font-inter cqa-text-[#111827] cqa-mb-2\">{{ title }}</h3>\n\n <!-- Stacked segments pill -->\n <div class=\"cqa-w-full cqa-h-[24px] cqa-rounded-full cqa-bg-[#F3F4F6] cqa-overflow-hidden cqa-flex cqa-mb-2\">\n <ng-container *ngFor=\"let s of visibleSegments; let i = index; let last = last\">\n <div\n class=\"cqa-h-full cqa-flex cqa-items-center cqa-justify-center cqa-text-white cqa-text-[12px] cqa-leading-[16px]\"\n [ngClass]=\"[\n segmentColor(s, i === 0 ? 'cqa-bg-[#4F46E5]' : i === segments.length - 1 ? 'cqa-bg-[#059669]' : 'cqa-bg-[#9333EA]'),\n i === 0 ? 'cqa-rounded-l-full' : '',\n last ? 'cqa-rounded-r-full' : ''\n ]\" [style.width]=\"segmentWidth(s)\" class=\"cqa-h-full cqa-flex cqa-font-inter cqa-items-center cqa-justify-center cqa-text-white cqa-text-[12px] cqa-leading-[16px]\">\n {{ s
|
|
105
|
+
TestDistributionCardComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.4.0", type: TestDistributionCardComponent, selector: "cqa-test-distribution-card", inputs: { title: "title", segments: "segments", items: "items" }, outputs: { itemClick: "itemClick", childClick: "childClick" }, host: { classAttribute: "cqa-ui-root" }, ngImport: i0, template: "<div class=\"cqa-ui-root\">\n <div class=\"cqa-bg-white cqa-rounded-[8px] cqa-border cqa-border-solid cqa-border-border-default cqa-py-[14.5px] cqa-px-[17px] cqa-shadow-card\">\n <!-- Title -->\n <h3 class=\"cqa-text-[16px] cqa-leading-6 cqa-font-inter cqa-text-[#111827] cqa-mb-2\">{{ title }}</h3>\n\n <!-- Stacked segments pill -->\n <div class=\"cqa-w-full cqa-h-[24px] cqa-rounded-full cqa-bg-[#F3F4F6] cqa-overflow-hidden cqa-flex cqa-mb-2\">\n <ng-container *ngFor=\"let s of visibleSegments; let i = index; let last = last\">\n <div\n class=\"cqa-h-full cqa-flex cqa-items-center cqa-justify-center cqa-text-white cqa-text-[12px] cqa-leading-[16px]\"\n #segmentEl\n [ngClass]=\"[\n segmentColor(s, i === 0 ? 'cqa-bg-[#4F46E5]' : i === segments.length - 1 ? 'cqa-bg-[#059669]' : 'cqa-bg-[#9333EA]'),\n i === 0 ? 'cqa-rounded-l-full' : '',\n last ? 'cqa-rounded-r-full' : ''\n ]\" [style.width]=\"segmentWidth(s)\" \n [style.min-width]=\"segmentMinWidth(s)\"\n class=\"cqa-h-full cqa-flex cqa-font-inter cqa-items-center cqa-justify-center cqa-text-white cqa-text-[12px] cqa-leading-[16px]\">\n {{ s?.label || '' }}\n </div>\n </ng-container>\n </div>\n\n <!-- Items list -->\n <div class=\"cqa-flex cqa-flex-col cqa-gap-[6px]\">\n <div *ngFor=\"let it of items\" class=\"cqa-flex cqa-flex-col cqa-gap-[6px]\">\n <!-- Parent row -->\n <div \n class=\"cqa-flex cqa-items-center cqa-justify-between cqa-cursor-pointer cqa-transition cqa-hover:cqa-opacity-80\"\n (click)=\"onItemClick(it, $event)\">\n <div class=\"cqa-flex cqa-items-center\">\n <span class=\"cqa-w-[4px] cqa-h-[12px] cqa-rounded-full\" [style.background-color]=\"getItemIconColor(it)\"></span>\n <div class=\"cqa-ml-[8px] cqa-mr-[6px]\">\n <mat-icon *ngIf=\"it.icon\" class=\"cqa-w-[14px] cqa-h-[14px] cqa-text-[14px] cqa-leading-[14px]\" [style.color]=\"getItemIconColor(it)\">\n {{ it.icon }}\n </mat-icon>\n </div>\n <span class=\"cqa-text-[12px] cqa-leading-[18px] cqa-font-inter cqa-text-dialog-muted\">{{ it.label }}</span>\n </div>\n <div class=\"cqa-text-[12px] cqa-leading-4 cqa-font-bold cqa-font-inter\">{{ it.value | number }}</div>\n </div>\n\n <!-- Children rows -->\n <div *ngIf=\"it.children?.length\" class=\"cqa-flex cqa-items-center cqa-gap-2\">\n <div *ngFor=\"let ch of it.children\"\n class=\"cqa-flex cqa-items-center cqa-justify-between cqa-flex-1 cqa-rounded-[4px] cqa-bg-[#F9FAFB] cqa-cursor-pointer cqa-transition cqa-hover:cqa-bg-[#F3F4F6]\"\n (click)=\"onChildClick(it, ch, $event)\">\n <div class=\"cqa-flex cqa-items-center cqa-text-[10px] cqa-leading-[15px] cqa-font-inter cqa-text-[#4B5563]\">\n <ng-container *ngIf=\"getChildIcon(ch.label) as icon\">\n <ng-container [ngSwitch]=\"icon\">\n <svg *ngSwitchCase=\"'apple'\" class=\"cqa-w-[14px] cqa-h-[14px] cqa-ml-2 cqa-mr-1\" viewBox=\"0 0 24 24\" aria-hidden=\"true\" focusable=\"false\">\n <path fill=\"currentColor\" d=\"M16.365 1.43c0 1.182-.435 2.014-1.086 2.845-.823.99-1.982 1.707-3.078 1.6-.13-1.115.433-2.154 1.09-2.87.825-.925 2.196-1.59 3.07-1.575-.003.003.003 0 .003 0zm3.217 6.094c-.086-.067-2.684-1.598-5.468-.507-1.332.53-2.429.542-3.788.006-1.997-.8-3.635.156-3.735.208-.083.044-1.948 1.143-2.4 3.667-.43 2.375.6 4.92 1.4 6.52.723 1.421 1.704 3.126 3.067 3.07 1.35-.053 1.78-.883 3.323-.883 1.542 0 1.92.883 3.36.853 1.44-.026 2.352-1.443 3.073-2.855.674-1.324.963-2.603.983-2.668-.021-.009-1.88-.72-1.903-2.854-.021-1.786 1.463-2.64 1.534-2.682z\"/>\n </svg>\n <svg *ngSwitchCase=\"'android'\" class=\"cqa-w-[14px] cqa-h-[14px] cqa-ml-2 cqa-mr-1\" viewBox=\"0 0 24 24\" aria-hidden=\"true\" focusable=\"false\">\n <path fill=\"currentColor\" d=\"M17.6 9.48l1.42-2.46a.5.5 0 10-.86-.5l-1.44 2.52A11 11 0 0016 7h-8c-.24 0-.48.01-.72.04L5.84 6.5a.5.5 0 00-.86.5l1.42 2.46A7 7 0 004 15h.5a1.5 1.5 0 001.5-1.5V10h1v9.5A1.5 1.5 0 008.5 21h1a1.5 1.5 0 001.5-1.5V17h2v2.5A1.5 1.5 0 0014.5 21h1a1.5 1.5 0 001.5-1.5V10h1v3.5A1.5 1.5 0 0019.5 15H20a7 7 0 00-2.4-5.52zM9 5a.75.75 0 11-1.5 0A.75.75 0 019 5zm7.5 0a.75.75 0 11-1.5 0 .75.75 0 011.5 0z\"/>\n </svg>\n </ng-container>\n </ng-container>\n <div class=\"cqa-pr-1\" [ngClass]=\"getChildIcon(ch.label) ? 'cqa-pl-0' : 'cqa-pl-2'\">{{ ch.label }}</div>\n </div>\n <span class=\"cqa-font-bold cqa-font-inter cqa-text-[#111827] cqa-text-[10px] cqa-leading-[15px]\">{{ ch.value }}</span>\n </div>\n </div>\n </div>\n </div>\n </div>\n</div>", components: [{ type: i1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }], directives: [{ type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i2.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { type: i2.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }], pipes: { "number": i2.DecimalPipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
95
106
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: TestDistributionCardComponent, decorators: [{
|
|
96
107
|
type: Component,
|
|
97
|
-
args: [{ selector: 'cqa-test-distribution-card', changeDetection: ChangeDetectionStrategy.OnPush, host: { class: 'cqa-ui-root' }, template: "<div class=\"cqa-ui-root\">\n <div class=\"cqa-bg-white cqa-rounded-[8px] cqa-border cqa-border-solid cqa-border-border-default cqa-py-[14.5px] cqa-px-[17px] cqa-shadow-card\">\n <!-- Title -->\n <h3 class=\"cqa-text-[16px] cqa-leading-6 cqa-font-inter cqa-text-[#111827] cqa-mb-2\">{{ title }}</h3>\n\n <!-- Stacked segments pill -->\n <div class=\"cqa-w-full cqa-h-[24px] cqa-rounded-full cqa-bg-[#F3F4F6] cqa-overflow-hidden cqa-flex cqa-mb-2\">\n <ng-container *ngFor=\"let s of visibleSegments; let i = index; let last = last\">\n <div\n class=\"cqa-h-full cqa-flex cqa-items-center cqa-justify-center cqa-text-white cqa-text-[12px] cqa-leading-[16px]\"\n [ngClass]=\"[\n segmentColor(s, i === 0 ? 'cqa-bg-[#4F46E5]' : i === segments.length - 1 ? 'cqa-bg-[#059669]' : 'cqa-bg-[#9333EA]'),\n i === 0 ? 'cqa-rounded-l-full' : '',\n last ? 'cqa-rounded-r-full' : ''\n ]\" [style.width]=\"segmentWidth(s)\" class=\"cqa-h-full cqa-flex cqa-font-inter cqa-items-center cqa-justify-center cqa-text-white cqa-text-[12px] cqa-leading-[16px]\">\n {{ s
|
|
108
|
+
args: [{ selector: 'cqa-test-distribution-card', changeDetection: ChangeDetectionStrategy.OnPush, host: { class: 'cqa-ui-root' }, template: "<div class=\"cqa-ui-root\">\n <div class=\"cqa-bg-white cqa-rounded-[8px] cqa-border cqa-border-solid cqa-border-border-default cqa-py-[14.5px] cqa-px-[17px] cqa-shadow-card\">\n <!-- Title -->\n <h3 class=\"cqa-text-[16px] cqa-leading-6 cqa-font-inter cqa-text-[#111827] cqa-mb-2\">{{ title }}</h3>\n\n <!-- Stacked segments pill -->\n <div class=\"cqa-w-full cqa-h-[24px] cqa-rounded-full cqa-bg-[#F3F4F6] cqa-overflow-hidden cqa-flex cqa-mb-2\">\n <ng-container *ngFor=\"let s of visibleSegments; let i = index; let last = last\">\n <div\n class=\"cqa-h-full cqa-flex cqa-items-center cqa-justify-center cqa-text-white cqa-text-[12px] cqa-leading-[16px]\"\n #segmentEl\n [ngClass]=\"[\n segmentColor(s, i === 0 ? 'cqa-bg-[#4F46E5]' : i === segments.length - 1 ? 'cqa-bg-[#059669]' : 'cqa-bg-[#9333EA]'),\n i === 0 ? 'cqa-rounded-l-full' : '',\n last ? 'cqa-rounded-r-full' : ''\n ]\" [style.width]=\"segmentWidth(s)\" \n [style.min-width]=\"segmentMinWidth(s)\"\n class=\"cqa-h-full cqa-flex cqa-font-inter cqa-items-center cqa-justify-center cqa-text-white cqa-text-[12px] cqa-leading-[16px]\">\n {{ s?.label || '' }}\n </div>\n </ng-container>\n </div>\n\n <!-- Items list -->\n <div class=\"cqa-flex cqa-flex-col cqa-gap-[6px]\">\n <div *ngFor=\"let it of items\" class=\"cqa-flex cqa-flex-col cqa-gap-[6px]\">\n <!-- Parent row -->\n <div \n class=\"cqa-flex cqa-items-center cqa-justify-between cqa-cursor-pointer cqa-transition cqa-hover:cqa-opacity-80\"\n (click)=\"onItemClick(it, $event)\">\n <div class=\"cqa-flex cqa-items-center\">\n <span class=\"cqa-w-[4px] cqa-h-[12px] cqa-rounded-full\" [style.background-color]=\"getItemIconColor(it)\"></span>\n <div class=\"cqa-ml-[8px] cqa-mr-[6px]\">\n <mat-icon *ngIf=\"it.icon\" class=\"cqa-w-[14px] cqa-h-[14px] cqa-text-[14px] cqa-leading-[14px]\" [style.color]=\"getItemIconColor(it)\">\n {{ it.icon }}\n </mat-icon>\n </div>\n <span class=\"cqa-text-[12px] cqa-leading-[18px] cqa-font-inter cqa-text-dialog-muted\">{{ it.label }}</span>\n </div>\n <div class=\"cqa-text-[12px] cqa-leading-4 cqa-font-bold cqa-font-inter\">{{ it.value | number }}</div>\n </div>\n\n <!-- Children rows -->\n <div *ngIf=\"it.children?.length\" class=\"cqa-flex cqa-items-center cqa-gap-2\">\n <div *ngFor=\"let ch of it.children\"\n class=\"cqa-flex cqa-items-center cqa-justify-between cqa-flex-1 cqa-rounded-[4px] cqa-bg-[#F9FAFB] cqa-cursor-pointer cqa-transition cqa-hover:cqa-bg-[#F3F4F6]\"\n (click)=\"onChildClick(it, ch, $event)\">\n <div class=\"cqa-flex cqa-items-center cqa-text-[10px] cqa-leading-[15px] cqa-font-inter cqa-text-[#4B5563]\">\n <ng-container *ngIf=\"getChildIcon(ch.label) as icon\">\n <ng-container [ngSwitch]=\"icon\">\n <svg *ngSwitchCase=\"'apple'\" class=\"cqa-w-[14px] cqa-h-[14px] cqa-ml-2 cqa-mr-1\" viewBox=\"0 0 24 24\" aria-hidden=\"true\" focusable=\"false\">\n <path fill=\"currentColor\" d=\"M16.365 1.43c0 1.182-.435 2.014-1.086 2.845-.823.99-1.982 1.707-3.078 1.6-.13-1.115.433-2.154 1.09-2.87.825-.925 2.196-1.59 3.07-1.575-.003.003.003 0 .003 0zm3.217 6.094c-.086-.067-2.684-1.598-5.468-.507-1.332.53-2.429.542-3.788.006-1.997-.8-3.635.156-3.735.208-.083.044-1.948 1.143-2.4 3.667-.43 2.375.6 4.92 1.4 6.52.723 1.421 1.704 3.126 3.067 3.07 1.35-.053 1.78-.883 3.323-.883 1.542 0 1.92.883 3.36.853 1.44-.026 2.352-1.443 3.073-2.855.674-1.324.963-2.603.983-2.668-.021-.009-1.88-.72-1.903-2.854-.021-1.786 1.463-2.64 1.534-2.682z\"/>\n </svg>\n <svg *ngSwitchCase=\"'android'\" class=\"cqa-w-[14px] cqa-h-[14px] cqa-ml-2 cqa-mr-1\" viewBox=\"0 0 24 24\" aria-hidden=\"true\" focusable=\"false\">\n <path fill=\"currentColor\" d=\"M17.6 9.48l1.42-2.46a.5.5 0 10-.86-.5l-1.44 2.52A11 11 0 0016 7h-8c-.24 0-.48.01-.72.04L5.84 6.5a.5.5 0 00-.86.5l1.42 2.46A7 7 0 004 15h.5a1.5 1.5 0 001.5-1.5V10h1v9.5A1.5 1.5 0 008.5 21h1a1.5 1.5 0 001.5-1.5V17h2v2.5A1.5 1.5 0 0014.5 21h1a1.5 1.5 0 001.5-1.5V10h1v3.5A1.5 1.5 0 0019.5 15H20a7 7 0 00-2.4-5.52zM9 5a.75.75 0 11-1.5 0A.75.75 0 019 5zm7.5 0a.75.75 0 11-1.5 0 .75.75 0 011.5 0z\"/>\n </svg>\n </ng-container>\n </ng-container>\n <div class=\"cqa-pr-1\" [ngClass]=\"getChildIcon(ch.label) ? 'cqa-pl-0' : 'cqa-pl-2'\">{{ ch.label }}</div>\n </div>\n <span class=\"cqa-font-bold cqa-font-inter cqa-text-[#111827] cqa-text-[10px] cqa-leading-[15px]\">{{ ch.value }}</span>\n </div>\n </div>\n </div>\n </div>\n </div>\n</div>", styles: [] }]
|
|
98
109
|
}], propDecorators: { title: [{
|
|
99
110
|
type: Input
|
|
100
111
|
}], segments: [{
|
|
@@ -106,4 +117,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImpor
|
|
|
106
117
|
}], childClick: [{
|
|
107
118
|
type: Output
|
|
108
119
|
}] } });
|
|
109
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVzdC1kaXN0cmlidXRpb24tY2FyZC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2Rhc2hib2FyZHMvdGVzdC1kaXN0cmlidXRpb24tY2FyZC90ZXN0LWRpc3RyaWJ1dGlvbi1jYXJkLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWIvZGFzaGJvYXJkcy90ZXN0LWRpc3RyaWJ1dGlvbi1jYXJkL3Rlc3QtZGlzdHJpYnV0aW9uLWNhcmQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBRSxNQUFNLGVBQWUsQ0FBQzs7OztBQThCaEcsTUFBTSxPQUFPLDZCQUE2QjtJQVAxQztRQVFXLFVBQUssR0FBVyxtQkFBbUIsQ0FBQztRQUNwQyxhQUFRLEdBQTBCLEVBQUUsQ0FBQztRQUNyQyxVQUFLLEdBQXVCLEVBQUUsQ0FBQztRQUM5QixjQUFTLEdBQUcsSUFBSSxZQUFZLEVBQW9CLENBQUM7UUFDakQsZUFBVSxHQUFHLElBQUksWUFBWSxFQUE4RCxDQUFDO0tBNkZ2RztJQTNGQyxhQUFhO1FBQ1gsT0FBTyxJQUFJLENBQUMsZUFBZSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQUcsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLEdBQUcsR0FBRyxDQUFDLENBQUMsQ0FBQyxLQUFLLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQy9FLENBQUM7SUFFRCxZQUFZLENBQUMsT0FBNEI7UUFDdkMsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO1FBQ25DLE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxlQUFlLENBQUM7UUFDdEMsTUFBTSxXQUFXLEdBQUcsQ0FBQyxDQUFDLENBQUMs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QzFCLE9BQU8sU0FBUyxDQUFDO1NBQ2xCO1FBQ0QsT0FBTyxTQUFTLENBQUMsQ0FBQyxVQUFVO0lBQzlCLENBQUM7SUFFRDs7T0FFRztJQUNILElBQUksZUFBZTtRQUNqQixPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxDQUFDLEtBQUssR0FBRyxDQUFDLENBQUMsQ0FBQztJQUM1RCxDQUFDO0lBRUQsV0FBVyxDQUFDLElBQXNCLEVBQUUsS0FBWTtRQUM5QyxLQUFLLENBQUMsZUFBZSxFQUFFLENBQUM7UUFDeEIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDNUIsQ0FBQztJQUVELFlBQVksQ0FBQyxNQUF3QixFQUFFLEtBQTRCLEVBQUUsS0FBWTtRQUMvRSxLQUFLLENBQUMsZUFBZSxFQUFFLENBQUM7UUFDeEIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQztJQUMxQyxDQUFDOzswSEFqR1UsNkJBQTZCOzhHQUE3Qiw2QkFBNkIsNE9DOUIxQyxvdUpBK0RNOzJGRGpDTyw2QkFBNkI7a0JBUHpDLFNBQVM7K0JBQ0UsNEJBQTRCLG1CQUdyQix1QkFBdUIsQ0FBQyxNQUFNLFFBQ3pDLEVBQUUsS0FBSyxFQUFFLGFBQWEsRUFBRTs4QkFHckIsS0FBSztzQkFBYixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csS0FBSztzQkFBYixLQUFLO2dCQUNJLFNBQVM7c0JBQWxCLE1BQU07Z0JBQ0csVUFBVTtzQkFBbkIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIElucHV0LCBPdXRwdXQsIEV2ZW50RW1pdHRlciB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5leHBvcnQgaW50ZXJmYWNlIERpc3RyaWJ1dGlvblNlZ21lbnQge1xuICBsYWJlbDogc3RyaW5nO1xuICB2YWx1ZTogbnVtYmVyO1xuICAvKiogVGFpbHdpbmQtbGlrZSBjbGFzcyBvciBoZXggYmcgY29sb3IgKi9cbiAgY29sb3JDbGFzcz86IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBEaXN0cmlidXRpb25DaGlsZEl0ZW0ge1xuICBsYWJlbDogc3RyaW5nO1xuICB2YWx1ZTogbnVtYmVyO1xuICBjb2xvckNsYXNzPzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIERpc3RyaWJ1dGlvbkl0ZW0ge1xuICBpY29uPzogc3RyaW5nO1xuICBsYWJlbDogc3RyaW5nO1xuICB2YWx1ZTogbnVtYmVyO1xuICBjb2xvckNsYXNzPzogc3RyaW5nOyAvLyB1c2VkIGZvciBpY29uL2FjY2VudCBpZiBkZXNpcmVkXG4gIGNoaWxkcmVuPzogRGlzdHJpYnV0aW9uQ2hpbGRJdGVtW107XG59XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2NxYS10ZXN0LWRpc3RyaWJ1dGlvbi1jYXJkJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3Rlc3QtZGlzdHJpYnV0aW9uLWNhcmQuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFtdLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgaG9zdDogeyBjbGFzczogJ2NxYS11aS1yb290JyB9XG59KVxuZXhwb3J0IGNsYXNzIFRlc3REaXN0cmlidXRpb25DYXJkQ29tcG9uZW50IHtcbiAgQElucHV0KCkgdGl0bGU6IHN0cmluZyA9ICdUZXN0IERpc3RyaWJ1dGlvbic7XG4gIEBJbnB1dCgpIHNlZ21lbnRzOiBEaXN0cmlidXRpb25TZWdtZW50W10gPSBbXTtcbiAgQElucHV0KCkgaXRlbXM6IERpc3RyaWJ1dGlvbkl0ZW1bXSA9IFtdO1xuICBAT3V0cHV0KCkgaXRlbUNsaWNrID0gbmV3IEV2ZW50RW1pdHRlcjxEaXN0cmlidXRpb25JdGVtPigpO1xuICBAT3V0cHV0KCkgY2hpbGRDbGljayA9IG5ldyBFdmVudEVtaXR0ZXI8eyBwYXJlbnQ6IERpc3RyaWJ1dGlvbkl0ZW07IGNoaWxkOiBEaXN0cmlidXRpb25DaGlsZEl0ZW0gfT4oKTtcblxuICB0b3RhbFNlZ21lbnRzKCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMudmlzaWJsZVNlZ21lbnRzLnJlZHVjZSgoc3VtLCBzKSA9PiBzdW0gKyAocy52YWx1ZSB8fCAwKSwgMCkgfHwgMTtcbiAgfVxuXG4gIHNlZ21lbnRXaWR0aChzZWdtZW50OiBEaXN0cmlidXRpb25TZWdtZW50KTogc3RyaW5nIHtcbiAgICBjb25zdCB0b3RhbCA9IHRoaXMudG90YWxTZWdtZW50cygpO1xuICAgIGNvbnN0IHNlZ21lbnRzID0gdGhpcy52aXNpYmxlU2VnbWVudHM7XG4gICAgY29uc3QgbWluV2lkdGhQY3QgPSA4OyAvLyBNaW5pbXVtIDglIHRvIGVuc3VyZSBsYWJlbCBpcyB2aXNpYmxlXG4gICAgXG4gICAgLy8gQ2FsY3VsYXRlIG5hdHVyYWwgcGVyY2VudGFnZXMgZm9yIGFsbCBzZWdtZW50c1xuICAgIGNvbnN0IG5hdHVyYWxXaWR0aHMgPSBzZWdtZW50cy5tYXAocyA9PiAoe1xuICAgICAgc2VnbWVudDogcyxcbiAgICAgIG5hdHVyYWxQY3Q6IChzLnZhbHVlIC8gdG90YWwpICogMTAwLFxuICAgICAgbmVlZHNNaW5pbXVtOiAocy52YWx1ZSAvIHRvdGFsKSAqIDEwMCA8IG1pbldpZHRoUGN0XG4gICAgfSkpO1xuICAgIFxuICAgIC8vIENvdW50IGhvdyBtYW55IHNlZ21lbnRzIG5lZWQgbWluaW11bSB3aWR0aFxuICAgIGNvbnN0IHNlZ21lbnRzTmVlZGluZ01pbmltdW0gPSBuYXR1cmFsV2lkdGhzLmZpbHRlcih3ID0+IHcubmVlZHNNaW5pbXVtKS5sZW5ndGg7XG4gICAgY29uc3QgdG90YWxNaW5pbXVtV2lkdGggPSBzZWdtZW50c05lZWRpbmdNaW5pbXVtICogbWluV2lkdGhQY3Q7XG4gICAgXG4gICAgLy8gRmluZCBjdXJyZW50IHNlZ21lbnRcbiAgICBjb25zdCBjdXJyZW50V2lkdGggPSBuYXR1cmFsV2lkdGhzLmZpbmQodyA9PiB3LnNlZ21lbnQgPT09IHNlZ21lbnQpO1xuICAgIGlmICghY3VycmVudFdpZHRoKSB7XG4gICAgICByZXR1cm4gJzAlJztcbiAgICB9XG4gICAgXG4gICAgLy8gSWYgdGhpcyBzZWdtZW50IG5lZWRzIG1pbmltdW0sIGdpdmUgaXQgbWluaW11bSB3aWR0aFxuICAgIGlmIChjdXJyZW50V2lkdGgubmVlZHNNaW5pbXVtKSB7XG4gICAgICByZXR1cm4gbWluV2lkdGhQY3QgKyAnJSc7XG4gICAgfVxuICAgIFxuICAgIC8vIEZvciBzZWdtZW50cyB0aGF0IGRvbid0IG5lZWQgbWluaW11bSwgZGlzdHJpYnV0ZSByZW1haW5pbmcgc3BhY2UgcHJvcG9ydGlvbmFsbHlcbiAgICAvLyBSZW1haW5pbmcgc3BhY2UgPSAxMDAlIC0gKHNlZ21lbnRzIG5lZWRpbmcgbWluaW11bSAqIG1pbldpZHRoUGN0KVxuICAgIGNvbnN0IHJlbWFpbmluZ1NwYWNlID0gMTAwIC0gdG90YWxNaW5pbXVtV2lkdGg7XG4gICAgY29uc3Qgc2VnbWVudHNBYm92ZU1pbmltdW0gPSBuYXR1cmFsV2lkdGhzLmZpbHRlcih3ID0+ICF3Lm5lZWRzTWluaW11bSk7XG4gICAgY29uc3QgdG90YWxOYXR1cmFsQWJvdmVNaW5pbXVtID0gc2VnbWVudHNBYm92ZU1pbmltdW0ucmVkdWNlKChzdW0sIHcpID0+IHN1bSArIHcubmF0dXJhbFBjdCwgMCk7XG4gICAgXG4gICAgLy8gSWYgdGhlcmUncyBubyBuYXR1cmFsIHNwYWNlIGFib3ZlIG1pbmltdW0sIGp1c3QgdXNlIG5hdHVyYWwgcGVyY2VudGFnZVxuICAgIGlmICh0b3RhbE5hdHVyYWxBYm92ZU1pbmltdW0gPT09IDApIHtcbiAgICAgIHJldHVybiBNYXRoLm1heChtaW5XaWR0aFBjdCwgY3VycmVudFdpZHRoLm5hdHVyYWxQY3QpICsgJyUnO1xuICAgIH1cbiAgICBcbiAgICAvLyBTY2FsZSB0aGUgbmF0dXJhbCBwZXJjZW50YWdlIHRvIGZpdCBpbiByZW1haW5pbmcgc3BhY2VcbiAgICBjb25zdCBzY2FsZWRQY3QgPSAoY3VycmVudFdpZHRoLm5hdHVyYWxQY3QgLyB0b3RhbE5hdHVyYWxBYm92ZU1pbmltdW0pICogcmVtYWluaW5nU3BhY2U7XG4gICAgXG4gICAgcmV0dXJuIE1hdGgubWF4KG1pbldpZHRoUGN0LCBzY2FsZWRQY3QpICsgJyUnO1xuICB9XG5cbiAgc2VnbWVudENvbG9yKHNlZ21lbnQ6IERpc3RyaWJ1dGlvblNlZ21lbnQsIGZhbGxiYWNrOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIHJldHVybiBzZWdtZW50LmNvbG9yQ2xhc3MgfHwgZmFsbGJhY2s7XG4gIH1cblxuICBnZXRDaGlsZEljb24obGFiZWw6IHN0cmluZyk6IHN0cmluZyB8IG51bGwge1xuICAgIGNvbnN0IG5vcm1hbGl6ZWRMYWJlbCA9IGxhYmVsLnRvTG93ZXJDYXNlKCkudHJpbSgpO1xuICAgIGlmIChub3JtYWxpemVkTGFiZWwgPT09ICdpb3MnIHx8IG5vcm1hbGl6ZWRMYWJlbCA9PT0gJ2FwcGxlJykge1xuICAgICAgcmV0dXJuICdhcHBsZSc7XG4gICAgfSBlbHNlIGlmIChub3JtYWxpemVkTGFiZWwgPT09ICdhbmRyb2lkJykge1xuICAgICAgcmV0dXJuICdhbmRyb2lkJztcbiAgICB9XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICBnZXRJdGVtSWNvbkNvbG9yKGl0ZW06IERpc3RyaWJ1dGlvbkl0ZW0pOiBzdHJpbmcge1xuICAgIC8vIFJldHVybiBjb2xvciBiYXNlZCBvbiBsYWJlbCBvciB1c2UgZGVmYXVsdFxuICAgIGNvbnN0IGxhYmVsID0gaXRlbS5sYWJlbC50b0xvd2VyQ2FzZSgpO1xuICAgIGlmIChsYWJlbCA9PT0gJ3dlYicpIHtcbiAgICAgIHJldHVybiAnIzRGNDZFNSc7XG4gICAgfSBlbHNlIGlmIChsYWJlbCA9PT0gJ21vYmlsZScpIHtcbiAgICAgIHJldHVybiAnIzkzMzNFQSc7XG4gICAgfSBlbHNlIGlmIChsYWJlbCA9PT0gJ2FwaScpIHtcbiAgICAgIHJldHVybiAnIzA1OTY2OSc7XG4gICAgfVxuICAgIHJldHVybiAnIzRGNDZFNSc7IC8vIGRlZmF1bHRcbiAgfVxuXG4gIC8qKlxuICAgKiBGaWx0ZXIgc2VnbWVudHMgdG8gb25seSBzaG93IHRob3NlIHdpdGggdmFsdWUgPiAwXG4gICAqL1xuICBnZXQgdmlzaWJsZVNlZ21lbnRzKCk6IERpc3RyaWJ1dGlvblNlZ21lbnRbXSB7XG4gICAgcmV0dXJuIHRoaXMuc2VnbWVudHMuZmlsdGVyKHNlZ21lbnQgPT4gc2VnbWVudC52YWx1ZSA+IDApO1xuICB9XG5cbiAgb25JdGVtQ2xpY2soaXRlbTogRGlzdHJpYnV0aW9uSXRlbSwgZXZlbnQ6IEV2ZW50KTogdm9pZCB7XG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgdGhpcy5pdGVtQ2xpY2suZW1pdChpdGVtKTtcbiAgfVxuXG4gIG9uQ2hpbGRDbGljayhwYXJlbnQ6IERpc3RyaWJ1dGlvbkl0ZW0sIGNoaWxkOiBEaXN0cmlidXRpb25DaGlsZEl0ZW0sIGV2ZW50OiBFdmVudCk6IHZvaWQge1xuICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgIHRoaXMuY2hpbGRDbGljay5lbWl0KHsgcGFyZW50LCBjaGlsZCB9KTtcbiAgfVxufVxuXG5cbiIsIjxkaXYgY2xhc3M9XCJjcWEtdWktcm9vdFwiPlxuICA8ZGl2IGNsYXNzPVwiY3FhLWJnLXdoaXRlIGNxYS1yb3VuZGVkLVs4cHhdIGNxYS1ib3JkZXIgY3FhLWJvcmRlci1zb2xpZCBjcWEtYm9yZGVyLWJvcmRlci1kZWZhdWx0IGNxYS1weS1bMTQuNXB4XSBjcWEtcHgtWzE3cHhdIGNxYS1zaGFkb3ctY2FyZFwiPlxuICAgIDwhLS0gVGl0bGUgLS0+XG4gICAgPGgzIGNsYXNzPVwiY3FhLXRleHQtWzE2cHhdIGNxYS1sZWFkaW5nLTYgY3FhLWZvbnQtaW50ZXIgY3FhLXRleHQtWyMxMTE4MjddIGNxYS1tYi0yXCI+e3sgdGl0bGUgfX08L2gzPlxuXG4gICAgPCEtLSBTdGFja2VkIHNlZ21lbnRzIHBpbGwgLS0+XG4gICAgPGRpdiBjbGFzcz1cImNxYS13LWZ1bGwgY3FhLWgtWzI0cHhdIGNxYS1yb3VuZGVkLWZ1bGwgY3FhLWJnLVsjRjNGNEY2XSBjcWEtb3ZlcmZsb3ctaGlkZGVuIGNxYS1mbGV4IGNxYS1tYi0yXCI+XG4gICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBzIG9mIHZpc2libGVTZWdtZW50czsgbGV0IGkgPSBpbmRleDsgbGV0IGxhc3QgPSBsYXN0XCI+XG4gICAgICAgIDxkaXZcbiAgICAgICAgICBjbGFzcz1cImNxYS1oLWZ1bGwgY3FhLWZsZXggY3FhLWl0ZW1zLWNlbnRlciBjcWEtanVzdGlmeS1jZW50ZXIgY3FhLXRleHQtd2hpdGUgY3FhLXRleHQtWzEycHhdIGNxYS1sZWFkaW5nLVsxNnB4XVwiXG4gICAgICAgICAgW25nQ2xhc3NdPVwiW1xuICAgICAgICAgICAgc2VnbWVudENvbG9yKHMsIGkgPT09IDAgPyAnY3FhLWJnLVsjNEY0NkU1XScgOiBpID09PSBzZWdtZW50cy5sZW5ndGggLSAxID8gJ2NxYS1iZy1bIzA1OTY2OV0nIDogJ2NxYS1iZy1bIzkzMzNFQV0nKSxcbiAgICAgICAgICAgIGkgPT09IDAgPyAnY3FhLXJvdW5kZWQtbC1mdWxsJyA6ICcnLFxuICAgICAgICAgICAgbGFzdCA/ICdjcWEtcm91bmRlZC1yLWZ1bGwnIDogJydcbiAgICAgICAgICBdXCIgW3N0eWxlLndpZHRoXT1cInNlZ21lbnRXaWR0aChzKVwiIGNsYXNzPVwiY3FhLWgtZnVsbCBjcWEtZmxleCBjcWEtZm9udC1pbnRlciBjcWEtaXRlbXMtY2VudGVyIGNxYS1qdXN0aWZ5LWNlbnRlciBjcWEtdGV4dC13aGl0ZSBjcWEtdGV4dC1bMTJweF0gY3FhLWxlYWRpbmctWzE2cHhdXCI+XG4gICAgICAgICAge3sgcy5sYWJlbCB9fVxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvbmctY29udGFpbmVyPlxuICAgIDwvZGl2PlxuXG4gICAgPCEtLSBJdGVtcyBsaXN0IC0tPlxuICAgIDxkaXYgY2xhc3M9XCJjcWEtZmxleCBjcWEtZmxleC1jb2wgY3FhLWdhcC1bNnB4XVwiPlxuICAgICAgPGRpdiAqbmdGb3I9XCJsZXQgaXQgb2YgaXRlbXNcIiBjbGFzcz1cImNxYS1mbGV4IGNxYS1mbGV4LWNvbCBjcWEtZ2FwLVs2cHhdXCI+XG4gICAgICAgIDwhLS0gUGFyZW50IHJvdyAtLT5cbiAgICAgICAgPGRpdiBcbiAgICAgICAgICBjbGFzcz1cImNxYS1mbGV4IGNxYS1pdGVtcy1jZW50ZXIgY3FhLWp1c3RpZnktYmV0d2VlbiBjcWEtY3Vyc29yLXBvaW50ZXIgY3FhLXRyYW5zaXRpb24gY3FhLWhvdmVyOmNxYS1vcGFjaXR5LTgwXCJcbiAgICAgICAgICAoY2xpY2spPVwib25JdGVtQ2xpY2soaXQsICRldmVudClcIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiY3FhLWZsZXggY3FhLWl0ZW1zLWNlbnRlclwiPlxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJjcWEtdy1bNHB4XSBjcWEtaC1bMTJweF0gY3FhLXJvdW5kZWQtZnVsbFwiIFtzdHlsZS5iYWNrZ3JvdW5kLWNvbG9yXT1cImdldEl0ZW1JY29uQ29sb3IoaXQpXCI+PC9zcGFuPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNxYS1tbC1bOHB4XSBjcWEtbXItWzZweF1cIj5cbiAgICAgICAgICAgICAgPG1hdC1pY29uICpuZ0lmPVwiaXQuaWNvblwiIGNsYXNzPVwiY3FhLXctWzE0cHhdIGNxYS1oLVsxNHB4XSBjcWEtdGV4dC1bMTRweF0gY3FhLWxlYWRpbmctWzE0cHhdXCIgW3N0eWxlLmNvbG9yXT1cImdldEl0ZW1JY29uQ29sb3IoaXQpXCI+XG4gICAgICAgICAgICAgICAge3sgaXQuaWNvbiB9fVxuICAgICAgICAgICAgICA8L21hdC1pY29uPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cImNxYS10ZXh0LVsxMnB4XSBjcWEtbGVhZGluZy1bMThweF0gY3FhLWZvbnQtaW50ZXIgY3FhLXRleHQtZGlhbG9nLW11dGVkXCI+e3sgaXQubGFiZWwgfX08L3NwYW4+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImNxYS10ZXh0LVsxMnB4XSBjcWEtbGVhZGluZy00IGNxYS1mb250LWJvbGQgY3FhLWZvbnQtaW50ZXJcIj57eyBpdC52YWx1ZSB8IG51bWJlciB9fTwvZGl2PlxuICAgICAgICA8L2Rpdj5cblxuICAgICAgICA8IS0tIENoaWxkcmVuIHJvd3MgLS0+XG4gICAgICAgIDxkaXYgKm5nSWY9XCJpdC5jaGlsZHJlbj8ubGVuZ3RoXCIgY2xhc3M9XCJjcWEtZmxleCBjcWEtaXRlbXMtY2VudGVyIGNxYS1nYXAtMlwiPlxuICAgICAgICAgIDxkaXYgKm5nRm9yPVwibGV0IGNoIG9mIGl0LmNoaWxkcmVuXCJcbiAgICAgICAgICAgIGNsYXNzPVwiY3FhLWZsZXggY3FhLWl0ZW1zLWNlbnRlciBjcWEtanVzdGlmeS1iZXR3ZWVuIGNxYS1mbGV4LTEgY3FhLXJvdW5kZWQtWzRweF0gY3FhLWJnLVsjRjlGQUZCXSBjcWEtY3Vyc29yLXBvaW50ZXIgY3FhLXRyYW5zaXRpb24gY3FhLWhvdmVyOmNxYS1iZy1bI0YzRjRGNl1cIlxuICAgICAgICAgICAgKGNsaWNrKT1cIm9uQ2hpbGRDbGljayhpdCwgY2gsICRldmVudClcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjcWEtZmxleCBjcWEtaXRlbXMtY2VudGVyIGNxYS10ZXh0LVsxMHB4XSBjcWEtbGVhZGluZy1bMTVweF0gY3FhLWZvbnQtaW50ZXIgY3FhLXRleHQtWyM0QjU1NjNdXCI+XG4gICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJnZXRDaGlsZEljb24oY2gubGFiZWwpIGFzIGljb25cIj5cbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyIFtuZ1N3aXRjaF09XCJpY29uXCI+XG4gICAgICAgICAgICAgICAgICA8c3ZnICpuZ1N3aXRjaENhc2U9XCInYXBwbGUnXCIgY2xhc3M9XCJjcWEtdy1bMTRweF0gY3FhLWgtWzE0cHhdIGNxYS1tbC0yIGNxYS1tci0xXCIgdmlld0JveD1cIjAgMCAyNCAyNFwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiIGZvY3VzYWJsZT1cImZhbHNlXCI+XG4gICAgICAgICAgICAgICAgICAgIDxwYXRoIGZpbGw9XCJjdXJyZW50Q29sb3JcIiBkPVwiTTE2LjM2NSAxLjQzYzAgMS4xODItLjQzNSAyLjAxNC0xLjA4NiAyLjg0NS0uODIzLjk5LTEuOTgyIDEuNzA3LTMuMDc4IDEuNi0uMTMtMS4xMTUuNDMzLTIuMTU0IDEuMDktMi44Ny44MjUtLjkyNSAyLjE5Ni0xLjU5IDMuMDctMS41NzUtLjAwMy4wMDMuMDAzIDAgLjAwMyAwem0zLjIxNyA2LjA5NGMtLjA4Ni0uMDY3LTIuNjg0LTEuNTk4LTUuNDY4LS41MDctMS4zMzIuNTMtMi40MjkuNTQyLTMuNzg4LjAwNi0xLjk5Ny0uOC0zLjYzNS4xNTYtMy43MzUuMjA4LS4wODMuMDQ0LTEuOTQ4IDEuMTQzLTIuNCAzLjY2Ny0uNDMgMi4zNzUuNiA0LjkyIDEuNCA2LjUyLjcyMyAxLjQyMSAxLjcwNCAzLjEyNiAzLjA2NyAzLjA3IDEuMzUtLjA1MyAxLjc4LS44ODMgMy4zMjMtLjg4MyAxLjU0MiAwIDEuOTIuODgzIDMuMzYuODUzIDEuNDQtLjAyNiAyLjM1Mi0xLjQ0MyAzLjA3My0yLjg1NS42NzQtMS4zMjQuOTYzLTIuNjAzLjk4My0yLjY2OC0uMDIxLS4wMDktMS44OC0uNzItMS45MDMtMi44NTQtLjAyMS0xLjc4NiAxLjQ2My0yLjY0IDEuNTM0LTIuNjgyelwiLz5cbiAgICAgICAgICAgICAgICAgIDwvc3ZnPlxuICAgICAgICAgICAgICAgICAgPHN2ZyAqbmdTd2l0Y2hDYXNlPVwiJ2FuZHJvaWQnXCIgY2xhc3M9XCJjcWEtdy1bMTRweF0gY3FhLWgtWzE0cHhdIGNxYS1tbC0yIGNxYS1tci0xXCIgdmlld0JveD1cIjAgMCAyNCAyNFwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiIGZvY3VzYWJsZT1cImZhbHNlXCI+XG4gICAgICAgICAgICAgICAgICAgIDxwYXRoIGZpbGw9XCJjdXJyZW50Q29sb3JcIiBkPVwiTTE3LjYgOS40OGwxLjQyLTIuNDZhLjUuNSAwIDEwLS44Ni0uNWwtMS40NCAyLjUyQTExIDExIDAgMDAxNiA3aC04Yy0uMjQgMC0uNDguMDEtLjcyLjA0TDUuODQgNi41YS41LjUgMCAwMC0uODYuNWwxLjQyIDIuNDZBNyA3IDAgMDA0IDE1aC41YTEuNSAxLjUgMCAwMDEuNS0xLjVWMTBoMXY5LjVBMS41IDEuNSAwIDAwOC41IDIxaDFhMS41IDEuNSAwIDAwMS41LTEuNVYxN2gydjIuNUExLjUgMS41IDAgMDAxNC41IDIxaDFhMS41IDEuNSAwIDAwMS41LTEuNVYxMGgxdjMuNUExLjUgMS41IDAgMDAxOS41IDE1SDIwYTcgNyAwIDAwLTIuNC01LjUyek05IDVhLjc1Ljc1IDAgMTEtMS41IDBBLjc1Ljc1IDAgMDE5IDV6bTcuNSAwYS43NS43NSAwIDExLTEuNSAwIC43NS43NSAwIDAxMS41IDB6XCIvPlxuICAgICAgICAgICAgICAgICAgPC9zdmc+XG4gICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY3FhLXByLTFcIiBbbmdDbGFzc109XCJnZXRDaGlsZEljb24oY2gubGFiZWwpID8gJ2NxYS1wbC0wJyA6ICdjcWEtcGwtMidcIj57eyBjaC5sYWJlbCB9fTwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cImNxYS1mb250LWJvbGQgY3FhLWZvbnQtaW50ZXIgY3FhLXRleHQtWyMxMTE4MjddIGNxYS10ZXh0LVsxMHB4XSBjcWEtbGVhZGluZy1bMTVweF1cIj57eyBjaC52YWx1ZSB9fTwvc3Bhbj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG48L2Rpdj4iXX0=
|
|
120
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVzdC1kaXN0cmlidXRpb24tY2FyZC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2Rhc2hib2FyZHMvdGVzdC1kaXN0cmlidXRpb24tY2FyZC90ZXN0LWRpc3RyaWJ1dGlvbi1jYXJkLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWIvZGFzaGJvYXJkcy90ZXN0LWRpc3RyaWJ1dGlvbi1jYXJkL3Rlc3QtZGlzdHJpYnV0aW9uLWNhcmQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFHLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBRSxNQUFNLGVBQWUsQ0FBQzs7OztBQThCakcsTUFBTSxPQUFPLDZCQUE2QjtJQVAxQztRQVNXLFVBQUssR0FBVyxtQkFBbUIsQ0FBQztRQUNwQyxhQUFRLEdBQTBCLEVBQUUsQ0FBQztRQUNyQyxVQUFLLEdBQXVCLEVBQUUsQ0FBQztRQUM5QixjQUFTLEdBQUcsSUFBSSxZQUFZLEVBQW9CLENBQUM7UUFDakQsZUFBVSxHQUFHLElBQUksWUFBWSxFQUE4RCxDQUFDO1FBRTlGLFdBQU0sR0FBc0IsUUFBUSxDQUFDLGFBQWEsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUM3RCxZQUFPLEdBQW9DLElBQUksQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ2hGLG9CQUFlLEdBQVcsQ0FBQyxDQUFDO0tBdUc3QjtJQXJHQyxhQUFhO1FBQ1gsT0FBTyxJQUFJLENBQUMsZUFBZSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQUcsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLEdBQUcsR0FBRyxDQUFDLENBQUMsQ0FBQyxLQUFLLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQy9FLENBQUM7SUFF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Q0FBQzs7MEhBaEhVLDZCQUE2Qjs4R0FBN0IsNkJBQTZCLDRPQzlCMUMsaTBKQWtFTTsyRkRwQ08sNkJBQTZCO2tCQVB6QyxTQUFTOytCQUNFLDRCQUE0QixtQkFHckIsdUJBQXVCLENBQUMsTUFBTSxRQUN6QyxFQUFFLEtBQUssRUFBRSxhQUFhLEVBQUU7OEJBSXJCLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFDSSxTQUFTO3NCQUFsQixNQUFNO2dCQUNHLFVBQVU7c0JBQW5CLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgIENvbXBvbmVudCwgSW5wdXQsIE91dHB1dCwgRXZlbnRFbWl0dGVyIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgRGlzdHJpYnV0aW9uU2VnbWVudCB7XG4gIGxhYmVsOiBzdHJpbmc7XG4gIHZhbHVlOiBudW1iZXI7XG4gIC8qKiBUYWlsd2luZC1saWtlIGNsYXNzIG9yIGhleCBiZyBjb2xvciAqL1xuICBjb2xvckNsYXNzPzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIERpc3RyaWJ1dGlvbkNoaWxkSXRlbSB7XG4gIGxhYmVsOiBzdHJpbmc7XG4gIHZhbHVlOiBudW1iZXI7XG4gIGNvbG9yQ2xhc3M/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRGlzdHJpYnV0aW9uSXRlbSB7XG4gIGljb24/OiBzdHJpbmc7XG4gIGxhYmVsOiBzdHJpbmc7XG4gIHZhbHVlOiBudW1iZXI7XG4gIGNvbG9yQ2xhc3M/OiBzdHJpbmc7IC8vIHVzZWQgZm9yIGljb24vYWNjZW50IGlmIGRlc2lyZWRcbiAgY2hpbGRyZW4/OiBEaXN0cmlidXRpb25DaGlsZEl0ZW1bXTtcbn1cblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnY3FhLXRlc3QtZGlzdHJpYnV0aW9uLWNhcmQnLFxuICB0ZW1wbGF0ZVVybDogJy4vdGVzdC1kaXN0cmlidXRpb24tY2FyZC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogW10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBob3N0OiB7IGNsYXNzOiAnY3FhLXVpLXJvb3QnIH1cbn0pXG5leHBvcnQgY2xhc3MgVGVzdERpc3RyaWJ1dGlvbkNhcmRDb21wb25lbnQge1xuXG4gIEBJbnB1dCgpIHRpdGxlOiBzdHJpbmcgPSAnVGVzdCBEaXN0cmlidXRpb24nO1xuICBASW5wdXQoKSBzZWdtZW50czogRGlzdHJpYnV0aW9uU2VnbWVudFtdID0gW107XG4gIEBJbnB1dCgpIGl0ZW1zOiBEaXN0cmlidXRpb25JdGVtW10gPSBbXTtcbiAgQE91dHB1dCgpIGl0ZW1DbGljayA9IG5ldyBFdmVudEVtaXR0ZXI8RGlzdHJpYnV0aW9uSXRlbT4oKTtcbiAgQE91dHB1dCgpIGNoaWxkQ2xpY2sgPSBuZXcgRXZlbnRFbWl0dGVyPHsgcGFyZW50OiBEaXN0cmlidXRpb25JdGVtOyBjaGlsZDogRGlzdHJpYnV0aW9uQ2hpbGRJdGVtIH0+KCk7XG5cbiAgcHJpdmF0ZSBjYW52YXM6IEhUTUxDYW52YXNFbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnY2FudmFzJyk7XG4gIHByaXZhdGUgY29udGV4dDogQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEIHwgbnVsbCA9IHRoaXMuY2FudmFzLmdldENvbnRleHQoJzJkJyk7XG4gIHNlZ21lbnRIUGFkZGluZzogbnVtYmVyID0gNDtcblxuICB0b3RhbFNlZ21lbnRzKCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMudmlzaWJsZVNlZ21lbnRzLnJlZHVjZSgoc3VtLCBzKSA9PiBzdW0gKyAocy52YWx1ZSB8fCAwKSwgMCkgfHwgMTtcbiAgfVxuXG4gIHNlZ21lbnRXaWR0aChzZWdtZW50OiBEaXN0cmlidXRpb25TZWdtZW50KTogc3RyaW5nIHtcbiAgICBjb25zdCB0b3RhbCA9IHRoaXMudG90YWxTZWdtZW50cygpO1xuICAgIGNvbnN0IHNlZ21lbnRzID0gdGhpcy52aXNpYmxlU2VnbWVudHM7XG4gICAgY29uc3QgbWluV2lkdGhQY3QgPSA4OyAvLyBNaW5pbXVtIDglIHRvIGVuc3VyZSBsYWJlbCBpcyB2aXNpYmxlXG4gICAgXG4gICAgLy8gQ2FsY3VsYXRlIG5hdHVyYWwgcGVyY2VudGFnZXMgZm9yIGFsbCBzZWdtZW50c1xuICAgIGNvbnN0IG5hdHVyYWxXaWR0aHMgPSBzZWdtZW50cy5tYXAocyA9PiAoe1xuICAgICAgc2VnbWVudDogcyxcbiAgICAgIG5hdHVyYWxQY3Q6IChzLnZhbHVlIC8gdG90YWwpICogMTAwLFxuICAgICAgbmVlZHNNaW5pbXVtOiAocy52YWx1ZSAvIHRvdGFsKSAqIDEwMCA8IG1pbldpZHRoUGN0XG4gICAgfSkpO1xuICAgIFxuICAgIC8vIENvdW50IGhvdyBtYW55IHNlZ21lbnRzIG5lZWQgbWluaW11bSB3aWR0aFxuICAgIGNvbnN0IHNlZ21lbnRzTmVlZGluZ01pbmltdW0gPSBuYXR1cmFsV2lkdGhzLmZpbHRlcih3ID0+IHcubmVlZHNNaW5pbXVtKS5sZW5ndGg7XG4gICAgY29uc3QgdG90YWxNaW5pbXVtV2lkdGggPSBzZWdtZW50c05lZWRpbmdNaW5pbXVtICogbWluV2lkdGhQY3Q7XG4gICAgXG4gICAgLy8gRmluZCBjdXJyZW50IHNlZ21lbnRcbiAgICBjb25zdCBjdXJyZW50V2lkdGggPSBuYXR1cmFsV2lkdGhzLmZpbmQodyA9PiB3LnNlZ21lbnQgPT09IHNlZ21lbnQpO1xuICAgIGlmICghY3VycmVudFdpZHRoKSB7XG4gICAgICByZXR1cm4gJzAlJztcbiAgICB9XG4gICAgXG4gICAgLy8gSWYgdGhpcyBzZWdtZW50IG5lZWRzIG1pbmltdW0sIGdpdmUgaXQgbWluaW11bSB3aWR0aFxuICAgIGlmIChjdXJyZW50V2lkdGgubmVlZHNNaW5pbXVtKSB7XG4gICAgICByZXR1cm4gbWluV2lkdGhQY3QgKyAnJSc7XG4gICAgfVxuICAgIFxuICAgIC8vIEZvciBzZWdtZW50cyB0aGF0IGRvbid0IG5lZWQgbWluaW11bSwgZGlzdHJpYnV0ZSByZW1haW5pbmcgc3BhY2UgcHJvcG9ydGlvbmFsbHlcbiAgICAvLyBSZW1haW5pbmcgc3BhY2UgPSAxMDAlIC0gKHNlZ21lbnRzIG5lZWRpbmcgbWluaW11bSAqIG1pbldpZHRoUGN0KVxuICAgIGNvbnN0IHJlbWFpbmluZ1NwYWNlID0gMTAwIC0gdG90YWxNaW5pbXVtV2lkdGg7XG4gICAgY29uc3Qgc2VnbWVudHNBYm92ZU1pbmltdW0gPSBuYXR1cmFsV2lkdGhzLmZpbHRlcih3ID0+ICF3Lm5lZWRzTWluaW11bSk7XG4gICAgY29uc3QgdG90YWxOYXR1cmFsQWJvdmVNaW5pbXVtID0gc2VnbWVudHNBYm92ZU1pbmltdW0ucmVkdWNlKChzdW0sIHcpID0+IHN1bSArIHcubmF0dXJhbFBjdCwgMCk7XG4gICAgXG4gICAgLy8gSWYgdGhlcmUncyBubyBuYXR1cmFsIHNwYWNlIGFib3ZlIG1pbmltdW0sIGp1c3QgdXNlIG5hdHVyYWwgcGVyY2VudGFnZVxuICAgIGlmICh0b3RhbE5hdHVyYWxBYm92ZU1pbmltdW0gPT09IDApIHtcbiAgICAgIHJldHVybiBNYXRoLm1heChtaW5XaWR0aFBjdCwgY3VycmVudFdpZHRoLm5hdHVyYWxQY3QpICsgJyUnO1xuICAgIH1cbiAgICBcbiAgICAvLyBTY2FsZSB0aGUgbmF0dXJhbCBwZXJjZW50YWdlIHRvIGZpdCBpbiByZW1haW5pbmcgc3BhY2VcbiAgICBjb25zdCBzY2FsZWRQY3QgPSAoY3VycmVudFdpZHRoLm5hdHVyYWxQY3QgLyB0b3RhbE5hdHVyYWxBYm92ZU1pbmltdW0pICogcmVtYWluaW5nU3BhY2U7XG4gICAgXG4gICAgcmV0dXJuIE1hdGgubWF4KG1pbldpZHRoUGN0LCBzY2FsZWRQY3QpICsgJyUnO1xuICB9XG5cbiAgc2VnbWVudE1pbldpZHRoKHNlZ21lbnQ6IERpc3RyaWJ1dGlvblNlZ21lbnQpOiBzdHJpbmcge1xuICAgIGlmICghdGhpcy5jb250ZXh0KSB7XG4gICAgICByZXR1cm4gJzBweCc7XG4gICAgfVxuICAgIHRoaXMuY29udGV4dC5mb250ID0gJzEycHggSW50ZXInO1xuXG4gICAgY29uc3Qgd2lkdGggPSB0aGlzLmNvbnRleHQubWVhc3VyZVRleHQoc2VnbWVudC5sYWJlbCkud2lkdGg7XG4gICAgcmV0dXJuIGAke3dpZHRoICsgdGhpcy5zZWdtZW50SFBhZGRpbmcgKiAyfXB4YDtcbiAgfVxuXG4gIHNlZ21lbnRDb2xvcihzZWdtZW50OiBEaXN0cmlidXRpb25TZWdtZW50LCBmYWxsYmFjazogc3RyaW5nKTogc3RyaW5nIHtcbiAgICByZXR1cm4gc2VnbWVudC5jb2xvckNsYXNzIHx8IGZhbGxiYWNrO1xuICB9XG5cbiAgZ2V0Q2hpbGRJY29uKGxhYmVsOiBzdHJpbmcpOiBzdHJpbmcgfCBudWxsIHtcbiAgICBjb25zdCBub3JtYWxpemVkTGFiZWwgPSBsYWJlbC50b0xvd2VyQ2FzZSgpLnRyaW0oKTtcbiAgICBpZiAobm9ybWFsaXplZExhYmVsID09PSAnaW9zJyB8fCBub3JtYWxpemVkTGFiZWwgPT09ICdhcHBsZScpIHtcbiAgICAgIHJldHVybiAnYXBwbGUnO1xuICAgIH0gZWxzZSBpZiAobm9ybWFsaXplZExhYmVsID09PSAnYW5kcm9pZCcpIHtcbiAgICAgIHJldHVybiAnYW5kcm9pZCc7XG4gICAgfVxuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgZ2V0SXRlbUljb25Db2xvcihpdGVtOiBEaXN0cmlidXRpb25JdGVtKTogc3RyaW5nIHtcbiAgICAvLyBSZXR1cm4gY29sb3IgYmFzZWQgb24gbGFiZWwgb3IgdXNlIGRlZmF1bHRcbiAgICBjb25zdCBsYWJlbCA9IGl0ZW0ubGFiZWwudG9Mb3dlckNhc2UoKTtcbiAgICBpZiAobGFiZWwgPT09ICd3ZWInKSB7XG4gICAgICByZXR1cm4gJyM0RjQ2RTUnO1xuICAgIH0gZWxzZSBpZiAobGFiZWwgPT09ICdtb2JpbGUnKSB7XG4gICAgICByZXR1cm4gJyM5MzMzRUEnO1xuICAgIH0gZWxzZSBpZiAobGFiZWwgPT09ICdhcGknKSB7XG4gICAgICByZXR1cm4gJyMwNTk2NjknO1xuICAgIH1cbiAgICByZXR1cm4gJyM0RjQ2RTUnOyAvLyBkZWZhdWx0XG4gIH1cblxuICAvKipcbiAgICogRmlsdGVyIHNlZ21lbnRzIHRvIG9ubHkgc2hvdyB0aG9zZSB3aXRoIHZhbHVlID4gMFxuICAgKi9cbiAgZ2V0IHZpc2libGVTZWdtZW50cygpOiBEaXN0cmlidXRpb25TZWdtZW50W10ge1xuICAgIHJldHVybiB0aGlzLnNlZ21lbnRzLmZpbHRlcihzZWdtZW50ID0+IHNlZ21lbnQudmFsdWUgPiAwKTtcbiAgfVxuXG4gIG9uSXRlbUNsaWNrKGl0ZW06IERpc3RyaWJ1dGlvbkl0ZW0sIGV2ZW50OiBFdmVudCk6IHZvaWQge1xuICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgIHRoaXMuaXRlbUNsaWNrLmVtaXQoaXRlbSk7XG4gIH1cblxuICBvbkNoaWxkQ2xpY2socGFyZW50OiBEaXN0cmlidXRpb25JdGVtLCBjaGlsZDogRGlzdHJpYnV0aW9uQ2hpbGRJdGVtLCBldmVudDogRXZlbnQpOiB2b2lkIHtcbiAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICB0aGlzLmNoaWxkQ2xpY2suZW1pdCh7IHBhcmVudCwgY2hpbGQgfSk7XG4gIH1cbn1cblxuXG4iLCI8ZGl2IGNsYXNzPVwiY3FhLXVpLXJvb3RcIj5cbiAgPGRpdiBjbGFzcz1cImNxYS1iZy13aGl0ZSBjcWEtcm91bmRlZC1bOHB4XSBjcWEtYm9yZGVyIGNxYS1ib3JkZXItc29saWQgY3FhLWJvcmRlci1ib3JkZXItZGVmYXVsdCBjcWEtcHktWzE0LjVweF0gY3FhLXB4LVsxN3B4XSBjcWEtc2hhZG93LWNhcmRcIj5cbiAgICA8IS0tIFRpdGxlIC0tPlxuICAgIDxoMyBjbGFzcz1cImNxYS10ZXh0LVsxNnB4XSBjcWEtbGVhZGluZy02IGNxYS1mb250LWludGVyIGNxYS10ZXh0LVsjMTExODI3XSBjcWEtbWItMlwiPnt7IHRpdGxlIH19PC9oMz5cblxuICAgIDwhLS0gU3RhY2tlZCBzZWdtZW50cyBwaWxsIC0tPlxuICAgIDxkaXYgY2xhc3M9XCJjcWEtdy1mdWxsIGNxYS1oLVsyNHB4XSBjcWEtcm91bmRlZC1mdWxsIGNxYS1iZy1bI0YzRjRGNl0gY3FhLW92ZXJmbG93LWhpZGRlbiBjcWEtZmxleCBjcWEtbWItMlwiPlxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgcyBvZiB2aXNpYmxlU2VnbWVudHM7IGxldCBpID0gaW5kZXg7IGxldCBsYXN0ID0gbGFzdFwiPlxuICAgICAgICA8ZGl2XG4gICAgICAgICAgY2xhc3M9XCJjcWEtaC1mdWxsIGNxYS1mbGV4IGNxYS1pdGVtcy1jZW50ZXIgY3FhLWp1c3RpZnktY2VudGVyIGNxYS10ZXh0LXdoaXRlIGNxYS10ZXh0LVsxMnB4XSBjcWEtbGVhZGluZy1bMTZweF1cIlxuICAgICAgICAgICNzZWdtZW50RWxcbiAgICAgICAgICBbbmdDbGFzc109XCJbXG4gICAgICAgICAgICBzZWdtZW50Q29sb3IocywgaSA9PT0gMCA/ICdjcWEtYmctWyM0RjQ2RTVdJyA6IGkgPT09IHNlZ21lbnRzLmxlbmd0aCAtIDEgPyAnY3FhLWJnLVsjMDU5NjY5XScgOiAnY3FhLWJnLVsjOTMzM0VBXScpLFxuICAgICAgICAgICAgaSA9PT0gMCA/ICdjcWEtcm91bmRlZC1sLWZ1bGwnIDogJycsXG4gICAgICAgICAgICBsYXN0ID8gJ2NxYS1yb3VuZGVkLXItZnVsbCcgOiAnJ1xuICAgICAgICAgIF1cIiBbc3R5bGUud2lkdGhdPVwic2VnbWVudFdpZHRoKHMpXCIgXG4gICAgICAgICAgW3N0eWxlLm1pbi13aWR0aF09XCJzZWdtZW50TWluV2lkdGgocylcIlxuICAgICAgICAgIGNsYXNzPVwiY3FhLWgtZnVsbCBjcWEtZmxleCBjcWEtZm9udC1pbnRlciBjcWEtaXRlbXMtY2VudGVyIGNxYS1qdXN0aWZ5LWNlbnRlciBjcWEtdGV4dC13aGl0ZSBjcWEtdGV4dC1bMTJweF0gY3FhLWxlYWRpbmctWzE2cHhdXCI+XG4gICAgICAgICAge3sgcz8ubGFiZWwgfHwgJycgfX1cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8L2Rpdj5cblxuICAgIDwhLS0gSXRlbXMgbGlzdCAtLT5cbiAgICA8ZGl2IGNsYXNzPVwiY3FhLWZsZXggY3FhLWZsZXgtY29sIGNxYS1nYXAtWzZweF1cIj5cbiAgICAgIDxkaXYgKm5nRm9yPVwibGV0IGl0IG9mIGl0ZW1zXCIgY2xhc3M9XCJjcWEtZmxleCBjcWEtZmxleC1jb2wgY3FhLWdhcC1bNnB4XVwiPlxuICAgICAgICA8IS0tIFBhcmVudCByb3cgLS0+XG4gICAgICAgIDxkaXYgXG4gICAgICAgICAgY2xhc3M9XCJjcWEtZmxleCBjcWEtaXRlbXMtY2VudGVyIGNxYS1qdXN0aWZ5LWJldHdlZW4gY3FhLWN1cnNvci1wb2ludGVyIGNxYS10cmFuc2l0aW9uIGNxYS1ob3ZlcjpjcWEtb3BhY2l0eS04MFwiXG4gICAgICAgICAgKGNsaWNrKT1cIm9uSXRlbUNsaWNrKGl0LCAkZXZlbnQpXCI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImNxYS1mbGV4IGNxYS1pdGVtcy1jZW50ZXJcIj5cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiY3FhLXctWzRweF0gY3FhLWgtWzEycHhdIGNxYS1yb3VuZGVkLWZ1bGxcIiBbc3R5bGUuYmFja2dyb3VuZC1jb2xvcl09XCJnZXRJdGVtSWNvbkNvbG9yKGl0KVwiPjwvc3Bhbj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjcWEtbWwtWzhweF0gY3FhLW1yLVs2cHhdXCI+XG4gICAgICAgICAgICAgIDxtYXQtaWNvbiAqbmdJZj1cIml0Lmljb25cIiBjbGFzcz1cImNxYS13LVsxNHB4XSBjcWEtaC1bMTRweF0gY3FhLXRleHQtWzE0cHhdIGNxYS1sZWFkaW5nLVsxNHB4XVwiIFtzdHlsZS5jb2xvcl09XCJnZXRJdGVtSWNvbkNvbG9yKGl0KVwiPlxuICAgICAgICAgICAgICAgIHt7IGl0Lmljb24gfX1cbiAgICAgICAgICAgICAgPC9tYXQtaWNvbj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJjcWEtdGV4dC1bMTJweF0gY3FhLWxlYWRpbmctWzE4cHhdIGNxYS1mb250LWludGVyIGNxYS10ZXh0LWRpYWxvZy1tdXRlZFwiPnt7IGl0LmxhYmVsIH19PC9zcGFuPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJjcWEtdGV4dC1bMTJweF0gY3FhLWxlYWRpbmctNCBjcWEtZm9udC1ib2xkIGNxYS1mb250LWludGVyXCI+e3sgaXQudmFsdWUgfCBudW1iZXIgfX08L2Rpdj5cbiAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgPCEtLSBDaGlsZHJlbiByb3dzIC0tPlxuICAgICAgICA8ZGl2ICpuZ0lmPVwiaXQuY2hpbGRyZW4/Lmxlbmd0aFwiIGNsYXNzPVwiY3FhLWZsZXggY3FhLWl0ZW1zLWNlbnRlciBjcWEtZ2FwLTJcIj5cbiAgICAgICAgICA8ZGl2ICpuZ0Zvcj1cImxldCBjaCBvZiBpdC5jaGlsZHJlblwiXG4gICAgICAgICAgICBjbGFzcz1cImNxYS1mbGV4IGNxYS1pdGVtcy1jZW50ZXIgY3FhLWp1c3RpZnktYmV0d2VlbiBjcWEtZmxleC0xIGNxYS1yb3VuZGVkLVs0cHhdIGNxYS1iZy1bI0Y5RkFGQl0gY3FhLWN1cnNvci1wb2ludGVyIGNxYS10cmFuc2l0aW9uIGNxYS1ob3ZlcjpjcWEtYmctWyNGM0Y0RjZdXCJcbiAgICAgICAgICAgIChjbGljayk9XCJvbkNoaWxkQ2xpY2soaXQsIGNoLCAkZXZlbnQpXCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY3FhLWZsZXggY3FhLWl0ZW1zLWNlbnRlciBjcWEtdGV4dC1bMTBweF0gY3FhLWxlYWRpbmctWzE1cHhdIGNxYS1mb250LWludGVyIGNxYS10ZXh0LVsjNEI1NTYzXVwiPlxuICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiZ2V0Q2hpbGRJY29uKGNoLmxhYmVsKSBhcyBpY29uXCI+XG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciBbbmdTd2l0Y2hdPVwiaWNvblwiPlxuICAgICAgICAgICAgICAgICAgPHN2ZyAqbmdTd2l0Y2hDYXNlPVwiJ2FwcGxlJ1wiIGNsYXNzPVwiY3FhLXctWzE0cHhdIGNxYS1oLVsxNHB4XSBjcWEtbWwtMiBjcWEtbXItMVwiIHZpZXdCb3g9XCIwIDAgMjQgMjRcIiBhcmlhLWhpZGRlbj1cInRydWVcIiBmb2N1c2FibGU9XCJmYWxzZVwiPlxuICAgICAgICAgICAgICAgICAgICA8cGF0aCBmaWxsPVwiY3VycmVudENvbG9yXCIgZD1cIk0xNi4zNjUgMS40M2MwIDEuMTgyLS40MzUgMi4wMTQtMS4wODYgMi44NDUtLjgyMy45OS0xLjk4MiAxLjcwNy0zLjA3OCAxLjYtLjEzLTEuMTE1LjQzMy0yLjE1NCAxLjA5LTIuODcuODI1LS45MjUgMi4xOTYtMS41OSAzLjA3LTEuNTc1LS4wMDMuMDAzLjAwMyAwIC4wMDMgMHptMy4yMTcgNi4wOTRjLS4wODYtLjA2Ny0yLjY4NC0xLjU5OC01LjQ2OC0uNTA3LTEuMzMyLjUzLTIuNDI5LjU0Mi0zLjc4OC4wMDYtMS45OTctLjgtMy42MzUuMTU2LTMuNzM1LjIwOC0uMDgzLjA0NC0xLjk0OCAxLjE0My0yLjQgMy42NjctLjQzIDIuMzc1LjYgNC45MiAxLjQgNi41Mi43MjMgMS40MjEgMS43MDQgMy4xMjYgMy4wNjcgMy4wNyAxLjM1LS4wNTMgMS43OC0uODgzIDMuMzIzLS44ODMgMS41NDIgMCAxLjkyLjg4MyAzLjM2Ljg1MyAxLjQ0LS4wMjYgMi4zNTItMS40NDMgMy4wNzMtMi44NTUuNjc0LTEuMzI0Ljk2My0yLjYwMy45ODMtMi42NjgtLjAyMS0uMDA5LTEuODgtLjcyLTEuOTAzLTIuODU0LS4wMjEtMS43ODYgMS40NjMtMi42NCAxLjUzNC0yLjY4MnpcIi8+XG4gICAgICAgICAgICAgICAgICA8L3N2Zz5cbiAgICAgICAgICAgICAgICAgIDxzdmcgKm5nU3dpdGNoQ2FzZT1cIidhbmRyb2lkJ1wiIGNsYXNzPVwiY3FhLXctWzE0cHhdIGNxYS1oLVsxNHB4XSBjcWEtbWwtMiBjcWEtbXItMVwiIHZpZXdCb3g9XCIwIDAgMjQgMjRcIiBhcmlhLWhpZGRlbj1cInRydWVcIiBmb2N1c2FibGU9XCJmYWxzZVwiPlxuICAgICAgICAgICAgICAgICAgICA8cGF0aCBmaWxsPVwiY3VycmVudENvbG9yXCIgZD1cIk0xNy42IDkuNDhsMS40Mi0yLjQ2YS41LjUgMCAxMC0uODYtLjVsLTEuNDQgMi41MkExMSAxMSAwIDAwMTYgN2gtOGMtLjI0IDAtLjQ4LjAxLS43Mi4wNEw1Ljg0IDYuNWEuNS41IDAgMDAtLjg2LjVsMS40MiAyLjQ2QTcgNyAwIDAwNCAxNWguNWExLjUgMS41IDAgMDAxLjUtMS41VjEwaDF2OS41QTEuNSAxLjUgMCAwMDguNSAyMWgxYTEuNSAxLjUgMCAwMDEuNS0xLjVWMTdoMnYyLjVBMS41IDEuNSAwIDAwMTQuNSAyMWgxYTEuNSAxLjUgMCAwMDEuNS0xLjVWMTBoMXYzLjVBMS41IDEuNSAwIDAwMTkuNSAxNUgyMGE3IDcgMCAwMC0yLjQtNS41MnpNOSA1YS43NS43NSAwIDExLTEuNSAwQS43NS43NSAwIDAxOSA1em03LjUgMGEuNzUuNzUgMCAxMS0xLjUgMCAuNzUuNzUgMCAwMTEuNSAwelwiLz5cbiAgICAgICAgICAgICAgICAgIDwvc3ZnPlxuICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNxYS1wci0xXCIgW25nQ2xhc3NdPVwiZ2V0Q2hpbGRJY29uKGNoLmxhYmVsKSA/ICdjcWEtcGwtMCcgOiAnY3FhLXBsLTInXCI+e3sgY2gubGFiZWwgfX08L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJjcWEtZm9udC1ib2xkIGNxYS1mb250LWludGVyIGNxYS10ZXh0LVsjMTExODI3XSBjcWEtdGV4dC1bMTBweF0gY3FhLWxlYWRpbmctWzE1cHhdXCI+e3sgY2gudmFsdWUgfX08L3NwYW4+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC9kaXY+Il19
|
|
@@ -35,11 +35,11 @@ export class FailedStepCardComponent {
|
|
|
35
35
|
}
|
|
36
36
|
}
|
|
37
37
|
FailedStepCardComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: FailedStepCardComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
38
|
-
FailedStepCardComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.4.0", type: FailedStepCardComponent, selector: "cqa-failed-step-card", inputs: { failedStepData: "failedStepData" }, ngImport: i0, template: "<div class=\"cqa-ui-root\" style=\"display: block; width: 100%;\">\n <div class=\"cqa-h-[200px] cqa-overflow-y-auto cqa-bg-[#FEF2F2] cqa-p-[17px] cqa-rounded-lg cqa-overflow-hidden cqa-flex cqa-flex-col cqa-gap-3\" style=\"border: 1px solid #FECACA;\">\n <div>\n <h3 class=\"cqa-text-sm cqa-leading-[18px] cqa-text-[#111827] cqa-mb-1\">{{ headerTitle }}</h3>\n <div class=\"cqa-flex cqa-flex-wrap cqa-items-center cqa-gap-3 cqa-text-xs\">\n <span class=\"cqa-text-[12px] cqa-text-[#B91C1C]\">Error: {{ errorText }}</span>\n <span class=\"cqa-text-[#636363]\">\u2022</span>\n <span class=\"cqa-text-[#636363]\">Video timestamp: {{ videoTimestamp }}</span>\n <span class=\"cqa-text-[#636363]\">\u2022</span>\n <span class=\"cqa-text-[#636363]\">Duration: {{ durationText }}</span>\n </div>\n </div>\n\n <div class=\"cqa-h-[114px] cqa-grid cqa-grid-cols-2 cqa-gap-0 cqa-rounded-[4px]\" style=\"border: 1px solid #E5E7EB\">\n <div class=\"cqa-bg-white cqa-px-2 cqa-py-1 md:cqa-border-r cqa-flex cqa-flex-col\" style=\"border-right: 1px solid #E5E7EB\">\n <div class=\"cqa-flex cqa-flex-col cqa-gap-1\">\n <span class=\"cqa-text-[10px] cqa-font-semibold cqa-text-[#9CA3AF] cqa-uppercase cqa-tracking-wide\">EXPECTED</span>\n <div class=\"cqa-text-[10px] cqa-text-[#0B0B0B] cqa-leading-relaxed cqa-h-[85px] cqa-max-h-[85px] cqa-overflow-y-auto cqa-font-medium\">\n {{ expectedResult }}\n </div>\n </div>\n </div>\n\n <div class=\"cqa-bg-[#FFF9F9] cqa-px-2 cqa-py-1 cqa-flex cqa-flex-col\">\n <div class=\"cqa-flex cqa-flex-col cqa-gap-1\">\n <span class=\"cqa-text-[10px] cqa-font-semibold cqa-text-[#9CA3AF] cqa-uppercase cqa-tracking-wide\">ACTUAL</span>\n <div class=\"cqa-text-[10px] cqa-text-[#C10007] cqa-leading-relaxed cqa-h-[85px] cqa-max-h-[85px] cqa-overflow-y-auto cqa-font-medium\">\n {{ actualResult }}\n </div>\n </div>\n </div>\n </div>\n </div>\n</div>\n\n" });
|
|
38
|
+
FailedStepCardComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.4.0", type: FailedStepCardComponent, selector: "cqa-failed-step-card", inputs: { failedStepData: "failedStepData" }, ngImport: i0, template: "<div class=\"cqa-ui-root\" style=\"display: block; width: 100%;\">\n <div class=\"cqa-h-[200px] cqa-overflow-y-auto cqa-bg-[#FEF2F2] cqa-p-[17px] cqa-rounded-lg cqa-overflow-hidden cqa-flex cqa-flex-col cqa-gap-3\" \n style=\"border: 1px solid #FECACA; scrollbar-width: thin;\">\n <div>\n <h3 class=\"cqa-text-sm cqa-leading-[18px] cqa-text-[#111827] cqa-mb-1\">{{ headerTitle }}</h3>\n <div class=\"cqa-flex cqa-flex-wrap cqa-items-center cqa-gap-3 cqa-text-xs\">\n <span class=\"cqa-text-[12px] cqa-text-[#B91C1C]\">Error: {{ errorText }}</span>\n <span class=\"cqa-text-[#636363]\">\u2022</span>\n <span class=\"cqa-text-[#636363]\">Video timestamp: {{ videoTimestamp }}</span>\n <span class=\"cqa-text-[#636363]\">\u2022</span>\n <span class=\"cqa-text-[#636363]\">Duration: {{ durationText }}</span>\n </div>\n </div>\n\n <div class=\"cqa-h-[114px] cqa-grid cqa-grid-cols-2 cqa-gap-0 cqa-rounded-[4px]\" style=\"border: 1px solid #E5E7EB\">\n <div class=\"cqa-bg-white cqa-px-2 cqa-py-1 md:cqa-border-r cqa-flex cqa-flex-col\" style=\"border-right: 1px solid #E5E7EB\">\n <div class=\"cqa-flex cqa-flex-col cqa-gap-1\">\n <span class=\"cqa-text-[10px] cqa-font-semibold cqa-text-[#9CA3AF] cqa-uppercase cqa-tracking-wide\">EXPECTED</span>\n <div class=\"cqa-text-[10px] cqa-text-[#0B0B0B] cqa-leading-relaxed cqa-h-[85px] cqa-max-h-[85px] cqa-overflow-y-auto cqa-font-medium\"\n style=\"scrollbar-gutter: stable; scrollbar-width: thin;\">\n {{ expectedResult }}\n </div>\n </div>\n </div>\n\n <div class=\"cqa-bg-[#FFF9F9] cqa-px-2 cqa-py-1 cqa-flex cqa-flex-col\">\n <div class=\"cqa-flex cqa-flex-col cqa-gap-1\">\n <span class=\"cqa-text-[10px] cqa-font-semibold cqa-text-[#9CA3AF] cqa-uppercase cqa-tracking-wide\">ACTUAL</span>\n <div class=\"cqa-text-[10px] cqa-text-[#C10007] cqa-leading-relaxed cqa-h-[85px] cqa-max-h-[85px] cqa-overflow-y-auto cqa-font-medium\">\n {{ actualResult }}\n </div>\n </div>\n </div>\n </div>\n </div>\n</div>\n\n" });
|
|
39
39
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: FailedStepCardComponent, decorators: [{
|
|
40
40
|
type: Component,
|
|
41
|
-
args: [{ selector: 'cqa-failed-step-card', template: "<div class=\"cqa-ui-root\" style=\"display: block; width: 100%;\">\n <div class=\"cqa-h-[200px] cqa-overflow-y-auto cqa-bg-[#FEF2F2] cqa-p-[17px] cqa-rounded-lg cqa-overflow-hidden cqa-flex cqa-flex-col cqa-gap-3\" style=\"border: 1px solid #FECACA;\">\n <div>\n <h3 class=\"cqa-text-sm cqa-leading-[18px] cqa-text-[#111827] cqa-mb-1\">{{ headerTitle }}</h3>\n <div class=\"cqa-flex cqa-flex-wrap cqa-items-center cqa-gap-3 cqa-text-xs\">\n <span class=\"cqa-text-[12px] cqa-text-[#B91C1C]\">Error: {{ errorText }}</span>\n <span class=\"cqa-text-[#636363]\">\u2022</span>\n <span class=\"cqa-text-[#636363]\">Video timestamp: {{ videoTimestamp }}</span>\n <span class=\"cqa-text-[#636363]\">\u2022</span>\n <span class=\"cqa-text-[#636363]\">Duration: {{ durationText }}</span>\n </div>\n </div>\n\n <div class=\"cqa-h-[114px] cqa-grid cqa-grid-cols-2 cqa-gap-0 cqa-rounded-[4px]\" style=\"border: 1px solid #E5E7EB\">\n <div class=\"cqa-bg-white cqa-px-2 cqa-py-1 md:cqa-border-r cqa-flex cqa-flex-col\" style=\"border-right: 1px solid #E5E7EB\">\n <div class=\"cqa-flex cqa-flex-col cqa-gap-1\">\n <span class=\"cqa-text-[10px] cqa-font-semibold cqa-text-[#9CA3AF] cqa-uppercase cqa-tracking-wide\">EXPECTED</span>\n <div class=\"cqa-text-[10px] cqa-text-[#0B0B0B] cqa-leading-relaxed cqa-h-[85px] cqa-max-h-[85px] cqa-overflow-y-auto cqa-font-medium\">\n {{ expectedResult }}\n </div>\n </div>\n </div>\n\n <div class=\"cqa-bg-[#FFF9F9] cqa-px-2 cqa-py-1 cqa-flex cqa-flex-col\">\n <div class=\"cqa-flex cqa-flex-col cqa-gap-1\">\n <span class=\"cqa-text-[10px] cqa-font-semibold cqa-text-[#9CA3AF] cqa-uppercase cqa-tracking-wide\">ACTUAL</span>\n <div class=\"cqa-text-[10px] cqa-text-[#C10007] cqa-leading-relaxed cqa-h-[85px] cqa-max-h-[85px] cqa-overflow-y-auto cqa-font-medium\">\n {{ actualResult }}\n </div>\n </div>\n </div>\n </div>\n </div>\n</div>\n\n", styles: [] }]
|
|
41
|
+
args: [{ selector: 'cqa-failed-step-card', template: "<div class=\"cqa-ui-root\" style=\"display: block; width: 100%;\">\n <div class=\"cqa-h-[200px] cqa-overflow-y-auto cqa-bg-[#FEF2F2] cqa-p-[17px] cqa-rounded-lg cqa-overflow-hidden cqa-flex cqa-flex-col cqa-gap-3\" \n style=\"border: 1px solid #FECACA; scrollbar-width: thin;\">\n <div>\n <h3 class=\"cqa-text-sm cqa-leading-[18px] cqa-text-[#111827] cqa-mb-1\">{{ headerTitle }}</h3>\n <div class=\"cqa-flex cqa-flex-wrap cqa-items-center cqa-gap-3 cqa-text-xs\">\n <span class=\"cqa-text-[12px] cqa-text-[#B91C1C]\">Error: {{ errorText }}</span>\n <span class=\"cqa-text-[#636363]\">\u2022</span>\n <span class=\"cqa-text-[#636363]\">Video timestamp: {{ videoTimestamp }}</span>\n <span class=\"cqa-text-[#636363]\">\u2022</span>\n <span class=\"cqa-text-[#636363]\">Duration: {{ durationText }}</span>\n </div>\n </div>\n\n <div class=\"cqa-h-[114px] cqa-grid cqa-grid-cols-2 cqa-gap-0 cqa-rounded-[4px]\" style=\"border: 1px solid #E5E7EB\">\n <div class=\"cqa-bg-white cqa-px-2 cqa-py-1 md:cqa-border-r cqa-flex cqa-flex-col\" style=\"border-right: 1px solid #E5E7EB\">\n <div class=\"cqa-flex cqa-flex-col cqa-gap-1\">\n <span class=\"cqa-text-[10px] cqa-font-semibold cqa-text-[#9CA3AF] cqa-uppercase cqa-tracking-wide\">EXPECTED</span>\n <div class=\"cqa-text-[10px] cqa-text-[#0B0B0B] cqa-leading-relaxed cqa-h-[85px] cqa-max-h-[85px] cqa-overflow-y-auto cqa-font-medium\"\n style=\"scrollbar-gutter: stable; scrollbar-width: thin;\">\n {{ expectedResult }}\n </div>\n </div>\n </div>\n\n <div class=\"cqa-bg-[#FFF9F9] cqa-px-2 cqa-py-1 cqa-flex cqa-flex-col\">\n <div class=\"cqa-flex cqa-flex-col cqa-gap-1\">\n <span class=\"cqa-text-[10px] cqa-font-semibold cqa-text-[#9CA3AF] cqa-uppercase cqa-tracking-wide\">ACTUAL</span>\n <div class=\"cqa-text-[10px] cqa-text-[#C10007] cqa-leading-relaxed cqa-h-[85px] cqa-max-h-[85px] cqa-overflow-y-auto cqa-font-medium\">\n {{ actualResult }}\n </div>\n </div>\n </div>\n </div>\n </div>\n</div>\n\n", styles: [] }]
|
|
42
42
|
}], propDecorators: { failedStepData: [{
|
|
43
43
|
type: Input
|
|
44
44
|
}] } });
|
|
45
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
45
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmFpbGVkLXN0ZXAtY2FyZC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvbGliL2ZhaWxlZC1zdGVwLWNhcmQvZmFpbGVkLXN0ZXAtY2FyZC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9zcmMvbGliL2ZhaWxlZC1zdGVwLWNhcmQvZmFpbGVkLXN0ZXAtY2FyZC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBd0IsTUFBTSxlQUFlLENBQUM7O0FBdUJ2RSxNQUFNLE9BQU8sdUJBQXVCO0lBR2xDLElBQUksV0FBVztRQUNiLElBQUksSUFBSSxDQUFDLGNBQWMsRUFBRSxTQUFTLEVBQUU7WUFDbEMsT0FBTyxrQkFBa0IsSUFBSSxDQUFDLGNBQWMsQ0FBQyxpQkFBaUIsS0FBSyxJQUFJLENBQUMsY0FBYyxDQUFDLFNBQVMsRUFBRSxDQUFDO1NBQ3BHO1FBQ0QsT0FBTyxrQkFBa0IsSUFBSSxDQUFDLGNBQWMsRUFBRSxpQkFBaUIsSUFBSSxFQUFFLEVBQUUsQ0FBQztJQUMxRSxDQUFDO0lBRUQsSUFBSSxTQUFTO1FBQ1gsT0FBTyxJQUFJLENBQUMsY0FBYyxFQUFFLFlBQVksSUFBSSxJQUFJLENBQUMsY0FBYyxFQUFFLE1BQU0sSUFBSSxtQkFBbUIsQ0FBQztJQUNqRyxDQUFDO0lBRUQsSUFBSSxjQUFjO1FBQ2hCLE9BQU8sSUFBSSxDQUFDLGNBQWMsRUFBRSxTQUFTLElBQUksT0FBTyxDQUFDO0lBQ25ELENBQUM7SUFFRCxJQUFJLFlBQVk7UUFDZCxPQUFPLElBQUksQ0FBQyxjQUFjLEVBQUUsUUFBUSxJQUFJLElBQUksQ0FBQztJQUMvQyxDQUFDO0lBRUQsSUFBSSxjQUFjO1FBQ2hCLE9BQU8sSUFBSSxDQUFDLGNBQWMsRUFBRSxlQUFlLElBQUksRUFBRSxDQUFDO0lBQ3BELENBQUM7SUFFRCxJQUFJLFlBQVk7UUFDZCxPQUFPLElBQUksQ0FBQyxjQUFjLEVBQUUsYUFBYSxJQUFJLEVBQUUsQ0FBQztJQUNsRCxDQUFDO0lBRUQsSUFBSSxXQUFXO1FBQ2IsT0FBTyxJQUFJLENBQUMsY0FBYyxFQUFFLFdBQVcsSUFBSSxFQUFFLENBQUM7SUFDaEQsQ0FBQztJQUVELElBQUksY0FBYztRQUNoQixPQUFPLENBQUMsQ0FBQyxJQUFJLENBQUMsY0FBYyxFQUFFLFdBQVcsSUFBSSxJQUFJLENBQUMsY0FBYyxDQUFDLFdBQVcsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDO0lBQ2pHLENBQUM7SUFFRCx1QkFBdUI7UUFDckIsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXO1lBQUUsT0FBTyxFQUFFLENBQUM7UUFDakMsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDO0lBQ3ZFLENBQUM7O29IQXpDVSx1QkFBdUI7d0dBQXZCLHVCQUF1QiwwR0N2QnBDLGduRUFxQ0E7MkZEZGEsdUJBQXVCO2tCQUxuQyxTQUFTOytCQUNFLHNCQUFzQjs4QkFLdkIsY0FBYztzQkFBdEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIE91dHB1dCwgRXZlbnRFbWl0dGVyIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgRmFpbGVkU3RlcERhdGEge1xuICBleHBlY3RlZF9yZXN1bHQ6IHN0cmluZztcbiAgYWN0dWFsX3Jlc3VsdDogc3RyaW5nO1xuICBmYWlsZWRfc3RlcF9pZDogc3RyaW5nO1xuICBpc1RpbWVvdXRlcnJvcjogYm9vbGVhbjtcbiAgZmFpbGVkX3N0ZXBfaW5kZXg6IHN0cmluZztcbiAgc3RlcHM6IGFueVtdO1xuICB0aW1lc3RhbXA6IHN0cmluZztcbiAgZHVyYXRpb246IHN0cmluZztcbiAgc3RlcFNjcmVlbnNob3RVcmw6IHN0cmluZyB8IG51bGw7XG4gIHN1Z2dlc3Rpb25zOiBzdHJpbmc7XG4gIHJlYXNvbjogc3RyaW5nO1xuICBzdGVwVGl0bGU/OiBzdHJpbmc7XG4gIGVycm9yTWVzc2FnZT86IHN0cmluZztcbn1cblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnY3FhLWZhaWxlZC1zdGVwLWNhcmQnLFxuICB0ZW1wbGF0ZVVybDogJy4vZmFpbGVkLXN0ZXAtY2FyZC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogW11cbn0pXG5leHBvcnQgY2xhc3MgRmFpbGVkU3RlcENhcmRDb21wb25lbnQge1xuICBASW5wdXQoKSBmYWlsZWRTdGVwRGF0YSE6IEZhaWxlZFN0ZXBEYXRhO1xuXG4gIGdldCBoZWFkZXJUaXRsZSgpOiBzdHJpbmcge1xuICAgIGlmICh0aGlzLmZhaWxlZFN0ZXBEYXRhPy5zdGVwVGl0bGUpIHtcbiAgICAgIHJldHVybiBgRmFpbGVkIGF0IFN0ZXAgJHt0aGlzLmZhaWxlZFN0ZXBEYXRhLmZhaWxlZF9zdGVwX2luZGV4fTogJHt0aGlzLmZhaWxlZFN0ZXBEYXRhLnN0ZXBUaXRsZX1gO1xuICAgIH1cbiAgICByZXR1cm4gYEZhaWxlZCBhdCBTdGVwICR7dGhpcy5mYWlsZWRTdGVwRGF0YT8uZmFpbGVkX3N0ZXBfaW5kZXggfHwgJyd9YDtcbiAgfVxuXG4gIGdldCBlcnJvclRleHQoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5mYWlsZWRTdGVwRGF0YT8uZXJyb3JNZXNzYWdlIHx8IHRoaXMuZmFpbGVkU3RlcERhdGE/LnJlYXNvbiB8fCAnQW4gZXJyb3Igb2NjdXJyZWQnO1xuICB9XG5cbiAgZ2V0IHZpZGVvVGltZXN0YW1wKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuZmFpbGVkU3RlcERhdGE/LnRpbWVzdGFtcCB8fCAnMDA6MDAnO1xuICB9XG5cbiAgZ2V0IGR1cmF0aW9uVGV4dCgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLmZhaWxlZFN0ZXBEYXRhPy5kdXJhdGlvbiB8fCAnMHMnO1xuICB9XG5cbiAgZ2V0IGV4cGVjdGVkUmVzdWx0KCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuZmFpbGVkU3RlcERhdGE/LmV4cGVjdGVkX3Jlc3VsdCB8fCAnJztcbiAgfVxuXG4gIGdldCBhY3R1YWxSZXN1bHQoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5mYWlsZWRTdGVwRGF0YT8uYWN0dWFsX3Jlc3VsdCB8fCAnJztcbiAgfVxuXG4gIGdldCBzdWdnZXN0aW9ucygpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLmZhaWxlZFN0ZXBEYXRhPy5zdWdnZXN0aW9ucyB8fCAnJztcbiAgfVxuXG4gIGdldCBoYXNTdWdnZXN0aW9ucygpOiBib29sZWFuIHtcbiAgICByZXR1cm4gISF0aGlzLmZhaWxlZFN0ZXBEYXRhPy5zdWdnZXN0aW9ucyAmJiB0aGlzLmZhaWxlZFN0ZXBEYXRhLnN1Z2dlc3Rpb25zLnRyaW0oKS5sZW5ndGggPiAwO1xuICB9XG5cbiAgZ2V0Rm9ybWF0dGVkU3VnZ2VzdGlvbnMoKTogc3RyaW5nW10ge1xuICAgIGlmICghdGhpcy5zdWdnZXN0aW9ucykgcmV0dXJuIFtdO1xuICAgIHJldHVybiB0aGlzLnN1Z2dlc3Rpb25zLnNwbGl0KCdcXG4nKS5maWx0ZXIocyA9PiBzLnRyaW0oKS5sZW5ndGggPiAwKTtcbiAgfVxufVxuXG4iLCI8ZGl2IGNsYXNzPVwiY3FhLXVpLXJvb3RcIiBzdHlsZT1cImRpc3BsYXk6IGJsb2NrOyB3aWR0aDogMTAwJTtcIj5cbiAgPGRpdiBjbGFzcz1cImNxYS1oLVsyMDBweF0gY3FhLW92ZXJmbG93LXktYXV0byBjcWEtYmctWyNGRUYyRjJdIGNxYS1wLVsxN3B4XSBjcWEtcm91bmRlZC1sZyBjcWEtb3ZlcmZsb3ctaGlkZGVuIGNxYS1mbGV4IGNxYS1mbGV4LWNvbCBjcWEtZ2FwLTNcIiBcbiAgICBzdHlsZT1cImJvcmRlcjogMXB4IHNvbGlkICNGRUNBQ0E7IHNjcm9sbGJhci13aWR0aDogdGhpbjtcIj5cbiAgICA8ZGl2PlxuICAgICAgPGgzIGNsYXNzPVwiY3FhLXRleHQtc20gY3FhLWxlYWRpbmctWzE4cHhdIGNxYS10ZXh0LVsjMTExODI3XSBjcWEtbWItMVwiPnt7IGhlYWRlclRpdGxlIH19PC9oMz5cbiAgICAgIDxkaXYgY2xhc3M9XCJjcWEtZmxleCBjcWEtZmxleC13cmFwIGNxYS1pdGVtcy1jZW50ZXIgY3FhLWdhcC0zIGNxYS10ZXh0LXhzXCI+XG4gICAgICAgIDxzcGFuIGNsYXNzPVwiY3FhLXRleHQtWzEycHhdIGNxYS10ZXh0LVsjQjkxQzFDXVwiPkVycm9yOiB7eyBlcnJvclRleHQgfX08L3NwYW4+XG4gICAgICAgIDxzcGFuIGNsYXNzPVwiY3FhLXRleHQtWyM2MzYzNjNdXCI+4oCiPC9zcGFuPlxuICAgICAgICA8c3BhbiBjbGFzcz1cImNxYS10ZXh0LVsjNjM2MzYzXVwiPlZpZGVvIHRpbWVzdGFtcDoge3sgdmlkZW9UaW1lc3RhbXAgfX08L3NwYW4+XG4gICAgICAgIDxzcGFuIGNsYXNzPVwiY3FhLXRleHQtWyM2MzYzNjNdXCI+4oCiPC9zcGFuPlxuICAgICAgICA8c3BhbiBjbGFzcz1cImNxYS10ZXh0LVsjNjM2MzYzXVwiPkR1cmF0aW9uOiB7eyBkdXJhdGlvblRleHQgfX08L3NwYW4+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cblxuICAgIDxkaXYgY2xhc3M9XCJjcWEtaC1bMTE0cHhdIGNxYS1ncmlkIGNxYS1ncmlkLWNvbHMtMiBjcWEtZ2FwLTAgY3FhLXJvdW5kZWQtWzRweF1cIiBzdHlsZT1cImJvcmRlcjogMXB4IHNvbGlkICNFNUU3RUJcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJjcWEtYmctd2hpdGUgY3FhLXB4LTIgY3FhLXB5LTEgbWQ6Y3FhLWJvcmRlci1yIGNxYS1mbGV4IGNxYS1mbGV4LWNvbFwiIHN0eWxlPVwiYm9yZGVyLXJpZ2h0OiAxcHggc29saWQgI0U1RTdFQlwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiY3FhLWZsZXggY3FhLWZsZXgtY29sIGNxYS1nYXAtMVwiPlxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwiY3FhLXRleHQtWzEwcHhdIGNxYS1mb250LXNlbWlib2xkIGNxYS10ZXh0LVsjOUNBM0FGXSBjcWEtdXBwZXJjYXNlIGNxYS10cmFja2luZy13aWRlXCI+RVhQRUNURUQ8L3NwYW4+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImNxYS10ZXh0LVsxMHB4XSBjcWEtdGV4dC1bIzBCMEIwQl0gY3FhLWxlYWRpbmctcmVsYXhlZCBjcWEtaC1bODVweF0gY3FhLW1heC1oLVs4NXB4XSBjcWEtb3ZlcmZsb3cteS1hdXRvIGNxYS1mb250LW1lZGl1bVwiXG4gICAgICAgICAgICBzdHlsZT1cInNjcm9sbGJhci1ndXR0ZXI6IHN0YWJsZTsgc2Nyb2xsYmFyLXdpZHRoOiB0aGluO1wiPlxuICAgICAgICAgICAge3sgZXhwZWN0ZWRSZXN1bHQgfX1cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cblxuICAgICAgPGRpdiBjbGFzcz1cImNxYS1iZy1bI0ZGRjlGOV0gY3FhLXB4LTIgY3FhLXB5LTEgY3FhLWZsZXggY3FhLWZsZXgtY29sXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJjcWEtZmxleCBjcWEtZmxleC1jb2wgY3FhLWdhcC0xXCI+XG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJjcWEtdGV4dC1bMTBweF0gY3FhLWZvbnQtc2VtaWJvbGQgY3FhLXRleHQtWyM5Q0EzQUZdIGNxYS11cHBlcmNhc2UgY3FhLXRyYWNraW5nLXdpZGVcIj5BQ1RVQUw8L3NwYW4+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImNxYS10ZXh0LVsxMHB4XSBjcWEtdGV4dC1bI0MxMDAwN10gY3FhLWxlYWRpbmctcmVsYXhlZCBjcWEtaC1bODVweF0gY3FhLW1heC1oLVs4NXB4XSBjcWEtb3ZlcmZsb3cteS1hdXRvIGNxYS1mb250LW1lZGl1bVwiPlxuICAgICAgICAgICAge3sgYWN0dWFsUmVzdWx0IH19XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG48L2Rpdj5cblxuIl19
|