@cqa-lib/cqa-ui 1.1.117 → 1.1.119
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/run-history-card/run-history-card.component.mjs +48 -4
- package/fesm2015/cqa-lib-cqa-ui.mjs +45 -2
- package/fesm2015/cqa-lib-cqa-ui.mjs.map +1 -1
- package/fesm2020/cqa-lib-cqa-ui.mjs +45 -2
- package/fesm2020/cqa-lib-cqa-ui.mjs.map +1 -1
- package/lib/run-history-card/run-history-card.component.d.ts +6 -1
- package/package.json +1 -1
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import { Component, EventEmitter, Input, Output } from "@angular/core";
|
|
2
2
|
import * as i0 from "@angular/core";
|
|
3
3
|
import * as i1 from "@angular/material/icon";
|
|
4
|
-
import * as i2 from "
|
|
4
|
+
import * as i2 from "../badge/badge.component";
|
|
5
|
+
import * as i3 from "@angular/common";
|
|
5
6
|
export class RunHistoryCardComponent {
|
|
6
7
|
constructor() {
|
|
7
8
|
this.size = 'normal';
|
|
@@ -143,15 +144,56 @@ export class RunHistoryCardComponent {
|
|
|
143
144
|
get borderLeftWidth() {
|
|
144
145
|
return this.isSmall ? '3px' : '4px';
|
|
145
146
|
}
|
|
147
|
+
get platformIcon() {
|
|
148
|
+
if (!this.platform)
|
|
149
|
+
return '';
|
|
150
|
+
switch (this.platform) {
|
|
151
|
+
case 'ios':
|
|
152
|
+
return 'fab fa-apple';
|
|
153
|
+
case 'android':
|
|
154
|
+
return 'android';
|
|
155
|
+
case 'web':
|
|
156
|
+
return 'language';
|
|
157
|
+
case 'chromium':
|
|
158
|
+
return 'web';
|
|
159
|
+
case 'desktop':
|
|
160
|
+
return 'desktop_windows';
|
|
161
|
+
default:
|
|
162
|
+
return '';
|
|
163
|
+
}
|
|
164
|
+
}
|
|
165
|
+
get platformIconLibrary() {
|
|
166
|
+
if (!this.platform)
|
|
167
|
+
return 'mat';
|
|
168
|
+
return this.platform === 'ios' ? 'fa' : 'mat';
|
|
169
|
+
}
|
|
170
|
+
get platformLabel() {
|
|
171
|
+
if (!this.platform)
|
|
172
|
+
return '';
|
|
173
|
+
switch (this.platform) {
|
|
174
|
+
case 'ios':
|
|
175
|
+
return 'iOS';
|
|
176
|
+
case 'android':
|
|
177
|
+
return 'Android';
|
|
178
|
+
case 'web':
|
|
179
|
+
return 'Web';
|
|
180
|
+
case 'chromium':
|
|
181
|
+
return 'Chromium';
|
|
182
|
+
case 'desktop':
|
|
183
|
+
return 'Web';
|
|
184
|
+
default:
|
|
185
|
+
return '';
|
|
186
|
+
}
|
|
187
|
+
}
|
|
146
188
|
linkClicked() {
|
|
147
189
|
this.headingClicked.emit();
|
|
148
190
|
}
|
|
149
191
|
}
|
|
150
192
|
RunHistoryCardComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: RunHistoryCardComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
151
|
-
RunHistoryCardComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.4.0", type: RunHistoryCardComponent, selector: "cqa-run-history-card", inputs: { id: "id", status: "status", type: "type", timestamp: "timestamp", duration: "duration", runLabel: "runLabel", errorMessage: "errorMessage", size: "size", durationTooltip: "durationTooltip" }, outputs: { headingClicked: "headingClicked" }, ngImport: i0, template: "<div class=\"cqa-ui-root\" style=\"display: block; width: 100%; height: 100%; min-width: 180px;\">\n <div class=\"cqa-bg-white cqa-rounded-lg cqa-shadow-sm cqa-flex cqa-flex-col\" [ngStyle]=\"{\n padding: cardPadding,\n border: '1px solid #E4E4E4',\n 'border-left-color': statusColor,\n 'border-left-width': borderLeftWidth\n }\">\n\n <!-- Header: Run ID and Status Badge -->\n <div class=\"cqa-flex cqa-items-start cqa-justify-between cqa-gap-2 cqa-flex-wrap\" [ngClass]=\"{\n 'cqa-mb-[10px]': isSmall,\n 'cqa-mb-2': !isSmall\n }\">\n <div class=\"cqa-flex cqa-items-center\" [ngClass]=\"{ 'cqa-gap-[6px]': isSmall, 'cqa-gap-2': !isSmall }\">\n <span [ngStyle]=\"statusIconContainerStyles\">\n <mat-icon [ngStyle]=\"statusIconStyles\">\n {{ statusIcon }}\n </mat-icon>\n </span>\n <span class=\"cqa-font-semibold cqa-cursor-pointer cqa-underline cqa-text-[#3f43ee]\" [ngClass]=\"{\n 'cqa-text-xs': isSmall,\n 'cqa-text-sm': !isSmall\n }\" (click)=\"linkClicked()\">\n #{{ id }}\n </span>\n </div>\n\n <!-- Status Badge -->\n <span class=\"cqa-inline-flex cqa-items-center cqa-justify-center cqa-rounded-md cqa-font-medium cqa-text-white cqa-px-2\"\n [ngClass]=\"{\n 'cqa-py-[2px] cqa-text-[10px]': isSmall,\n 'cqa-py-1 cqa-text-xs': !isSmall\n }\" [ngStyle]=\"statusBadgeStyles\">\n {{ statusLabel }}\n </span>\n </div>\n\n <!-- Type and Timestamp -->\n <div class=\"cqa-flex cqa-items-center cqa-text-[#636363]\" [ngClass]=\"{\n 'cqa-gap-1': isSmall,\n 'cqa-gap-[6px]': !isSmall,\n 'cqa-mb-2': isSmall,\n 'cqa-mb-[6px]': !isSmall\n }\">\n <mat-icon [ngClass]=\"{\n 'cqa-text-[12px] cqa-w-3 cqa-h-3': isSmall,\n 'cqa-text-[14px] cqa-w-[14px] cqa-h-[14px]': !isSmall }\">\n {{ typeIcon }}\n </mat-icon>\n <span [ngClass]=\"{ 'cqa-text-[10px]': isSmall, 'cqa-text-xs': !isSmall }\">\n {{ typeLabel }}\n </span>\n </div>\n\n <!-- Timestamp -->\n <div class=\"cqa-font-normal cqa-text-[#0B0B0B] cqa-leading-normal\" [ngClass]=\"{\n 'cqa-text-sm': !isSmall,\n 'cqa-text-[11px]': isSmall,\n 'cqa-mb-2': isSmall,\n 'cqa-mb-[6px]': !isSmall\n }\">\n {{ timestamp }}\n </div>\n\n <!-- Duration and Run Label -->\n <div class=\"cqa-flex cqa-items-center cqa-justify-between cqa-gap-2\">\n <div class=\"cqa-flex cqa-items-center cqa-text-[#636363]\" [ngClass]=\"{\n
|
|
193
|
+
RunHistoryCardComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.4.0", type: RunHistoryCardComponent, selector: "cqa-run-history-card", inputs: { id: "id", status: "status", type: "type", timestamp: "timestamp", duration: "duration", runLabel: "runLabel", errorMessage: "errorMessage", size: "size", durationTooltip: "durationTooltip", platform: "platform" }, outputs: { headingClicked: "headingClicked" }, ngImport: i0, template: "<div class=\"cqa-ui-root\" style=\"display: block; width: 100%; height: 100%; min-width: 180px;\">\n <div class=\"cqa-bg-white cqa-rounded-lg cqa-shadow-sm cqa-flex cqa-flex-col\" [ngStyle]=\"{\n padding: cardPadding,\n border: '1px solid #E4E4E4',\n 'border-left-color': statusColor,\n 'border-left-width': borderLeftWidth\n }\">\n\n <!-- Header: Run ID and Status Badge -->\n <div class=\"cqa-flex cqa-items-start cqa-justify-between cqa-gap-2 cqa-flex-wrap\" [ngClass]=\"{\n 'cqa-mb-[10px]': isSmall,\n 'cqa-mb-2': !isSmall\n }\">\n <div class=\"cqa-flex cqa-items-center\" [ngClass]=\"{ 'cqa-gap-[6px]': isSmall, 'cqa-gap-2': !isSmall }\">\n <span [ngStyle]=\"statusIconContainerStyles\">\n <mat-icon [ngStyle]=\"statusIconStyles\">\n {{ statusIcon }}\n </mat-icon>\n </span>\n <span class=\"cqa-font-semibold cqa-cursor-pointer cqa-underline cqa-text-[#3f43ee]\" [ngClass]=\"{\n 'cqa-text-xs': isSmall,\n 'cqa-text-sm': !isSmall\n }\" (click)=\"linkClicked()\">\n #{{ id }}\n </span>\n </div>\n\n <!-- Status Badge -->\n <span class=\"cqa-inline-flex cqa-items-center cqa-justify-center cqa-rounded-md cqa-font-medium cqa-text-white cqa-px-2\"\n [ngClass]=\"{\n 'cqa-py-[2px] cqa-text-[10px]': isSmall,\n 'cqa-py-1 cqa-text-xs': !isSmall\n }\" [ngStyle]=\"statusBadgeStyles\">\n {{ statusLabel }}\n </span>\n </div>\n\n <!-- Type and Timestamp -->\n <div class=\"cqa-flex cqa-items-center cqa-text-[#636363]\" [ngClass]=\"{\n 'cqa-gap-1': isSmall,\n 'cqa-gap-[6px]': !isSmall,\n 'cqa-mb-2': isSmall,\n 'cqa-mb-[6px]': !isSmall\n }\">\n <mat-icon [ngClass]=\"{\n 'cqa-text-[12px] cqa-w-3 cqa-h-3': isSmall,\n 'cqa-text-[14px] cqa-w-[14px] cqa-h-[14px]': !isSmall }\">\n {{ typeIcon }}\n </mat-icon>\n <span [ngClass]=\"{ 'cqa-text-[10px]': isSmall, 'cqa-text-xs': !isSmall }\">\n {{ typeLabel }}\n </span>\n </div>\n\n <!-- Timestamp -->\n <div class=\"cqa-font-normal cqa-text-[#0B0B0B] cqa-leading-normal\" [ngClass]=\"{\n 'cqa-text-sm': !isSmall,\n 'cqa-text-[11px]': isSmall,\n 'cqa-mb-2': isSmall,\n 'cqa-mb-[6px]': !isSmall\n }\">\n {{ timestamp }}\n </div>\n\n <!-- Duration, Platform and Run Label -->\n <div class=\"cqa-flex cqa-items-center cqa-justify-between cqa-gap-2\">\n <div class=\"cqa-flex cqa-items-center cqa-gap-2\" [ngClass]=\"{\n 'cqa-gap-1': isSmall,\n 'cqa-gap-2': !isSmall\n }\">\n <div class=\"cqa-flex cqa-items-center cqa-text-[#636363]\" [ngClass]=\"{\n 'cqa-gap-1': isSmall,\n 'cqa-gap-[6px]': !isSmall\n }\" [title]=\"durationTooltip\">\n <mat-icon [ngClass]=\"{\n 'cqa-text-[12px] cqa-w-3 cqa-h-3': isSmall,\n 'cqa-text-[14px] cqa-w-[14px] cqa-h-[14px]': !isSmall }\" style=\"flex-shrink: 0;\">\n schedule\n </mat-icon>\n <span [ngClass]=\"{\n 'cqa-text-[8px]': isSmall,\n 'cqa-text-[10px]': !isSmall\n }\">\n {{ duration }}\n </span>\n </div>\n\n <cqa-badge \n *ngIf=\"platform\"\n [label]=\"platformLabel\"\n [icon]=\"platformIcon\"\n [iconLibrary]=\"platformIconLibrary\"\n [size]=\"isSmall ? 'extra-small' : 'small'\"\n variant=\"default\"\n [iconSize]=\"isSmall ? 10 : 12\">\n </cqa-badge>\n </div>\n\n <span *ngIf=\"runLabel\" class=\"cqa-text-[#3F43EE] cqa-rounded-md cqa-whitespace-nowrap\"\n [ngStyle]=\"runLabelStyles\"\n [ngClass]=\"{ 'cqa-font-medium': !isSmall }\">\n {{ runLabel }}\n </span>\n </div>\n\n <!-- Error Message (only for failed status and normal size) -->\n <div *ngIf=\"errorMessage && status === 'failed' && !isSmall\" class=\"cqa-mt-2 cqa-pt-2\"\n style=\"border-top: 1px solid #E4E4E4;\">\n <p class=\"cqa-text-[10px] cqa-text-[#E7000B]\">\n {{ errorMessage }}\n </p>\n </div>\n </div>\n</div>", components: [{ type: i1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { type: i2.BadgeComponent, selector: "cqa-badge", inputs: ["type", "label", "icon", "iconLibrary", "variant", "size", "backgroundColor", "textColor", "borderColor", "iconBackgroundColor", "iconColor", "iconSize", "inlineStyles", "key", "value", "keyTextColor", "valueTextColor", "isLoading"] }], directives: [{ type: i3.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
|
|
152
194
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: RunHistoryCardComponent, decorators: [{
|
|
153
195
|
type: Component,
|
|
154
|
-
args: [{ selector: 'cqa-run-history-card', template: "<div class=\"cqa-ui-root\" style=\"display: block; width: 100%; height: 100%; min-width: 180px;\">\n <div class=\"cqa-bg-white cqa-rounded-lg cqa-shadow-sm cqa-flex cqa-flex-col\" [ngStyle]=\"{\n padding: cardPadding,\n border: '1px solid #E4E4E4',\n 'border-left-color': statusColor,\n 'border-left-width': borderLeftWidth\n }\">\n\n <!-- Header: Run ID and Status Badge -->\n <div class=\"cqa-flex cqa-items-start cqa-justify-between cqa-gap-2 cqa-flex-wrap\" [ngClass]=\"{\n 'cqa-mb-[10px]': isSmall,\n 'cqa-mb-2': !isSmall\n }\">\n <div class=\"cqa-flex cqa-items-center\" [ngClass]=\"{ 'cqa-gap-[6px]': isSmall, 'cqa-gap-2': !isSmall }\">\n <span [ngStyle]=\"statusIconContainerStyles\">\n <mat-icon [ngStyle]=\"statusIconStyles\">\n {{ statusIcon }}\n </mat-icon>\n </span>\n <span class=\"cqa-font-semibold cqa-cursor-pointer cqa-underline cqa-text-[#3f43ee]\" [ngClass]=\"{\n 'cqa-text-xs': isSmall,\n 'cqa-text-sm': !isSmall\n }\" (click)=\"linkClicked()\">\n #{{ id }}\n </span>\n </div>\n\n <!-- Status Badge -->\n <span class=\"cqa-inline-flex cqa-items-center cqa-justify-center cqa-rounded-md cqa-font-medium cqa-text-white cqa-px-2\"\n [ngClass]=\"{\n 'cqa-py-[2px] cqa-text-[10px]': isSmall,\n 'cqa-py-1 cqa-text-xs': !isSmall\n }\" [ngStyle]=\"statusBadgeStyles\">\n {{ statusLabel }}\n </span>\n </div>\n\n <!-- Type and Timestamp -->\n <div class=\"cqa-flex cqa-items-center cqa-text-[#636363]\" [ngClass]=\"{\n 'cqa-gap-1': isSmall,\n 'cqa-gap-[6px]': !isSmall,\n 'cqa-mb-2': isSmall,\n 'cqa-mb-[6px]': !isSmall\n }\">\n <mat-icon [ngClass]=\"{\n 'cqa-text-[12px] cqa-w-3 cqa-h-3': isSmall,\n 'cqa-text-[14px] cqa-w-[14px] cqa-h-[14px]': !isSmall }\">\n {{ typeIcon }}\n </mat-icon>\n <span [ngClass]=\"{ 'cqa-text-[10px]': isSmall, 'cqa-text-xs': !isSmall }\">\n {{ typeLabel }}\n </span>\n </div>\n\n <!-- Timestamp -->\n <div class=\"cqa-font-normal cqa-text-[#0B0B0B] cqa-leading-normal\" [ngClass]=\"{\n 'cqa-text-sm': !isSmall,\n 'cqa-text-[11px]': isSmall,\n 'cqa-mb-2': isSmall,\n 'cqa-mb-[6px]': !isSmall\n }\">\n {{ timestamp }}\n </div>\n\n <!-- Duration and Run Label -->\n <div class=\"cqa-flex cqa-items-center cqa-justify-between cqa-gap-2\">\n <div class=\"cqa-flex cqa-items-center cqa-text-[#636363]\" [ngClass]=\"{\n
|
|
196
|
+
args: [{ selector: 'cqa-run-history-card', template: "<div class=\"cqa-ui-root\" style=\"display: block; width: 100%; height: 100%; min-width: 180px;\">\n <div class=\"cqa-bg-white cqa-rounded-lg cqa-shadow-sm cqa-flex cqa-flex-col\" [ngStyle]=\"{\n padding: cardPadding,\n border: '1px solid #E4E4E4',\n 'border-left-color': statusColor,\n 'border-left-width': borderLeftWidth\n }\">\n\n <!-- Header: Run ID and Status Badge -->\n <div class=\"cqa-flex cqa-items-start cqa-justify-between cqa-gap-2 cqa-flex-wrap\" [ngClass]=\"{\n 'cqa-mb-[10px]': isSmall,\n 'cqa-mb-2': !isSmall\n }\">\n <div class=\"cqa-flex cqa-items-center\" [ngClass]=\"{ 'cqa-gap-[6px]': isSmall, 'cqa-gap-2': !isSmall }\">\n <span [ngStyle]=\"statusIconContainerStyles\">\n <mat-icon [ngStyle]=\"statusIconStyles\">\n {{ statusIcon }}\n </mat-icon>\n </span>\n <span class=\"cqa-font-semibold cqa-cursor-pointer cqa-underline cqa-text-[#3f43ee]\" [ngClass]=\"{\n 'cqa-text-xs': isSmall,\n 'cqa-text-sm': !isSmall\n }\" (click)=\"linkClicked()\">\n #{{ id }}\n </span>\n </div>\n\n <!-- Status Badge -->\n <span class=\"cqa-inline-flex cqa-items-center cqa-justify-center cqa-rounded-md cqa-font-medium cqa-text-white cqa-px-2\"\n [ngClass]=\"{\n 'cqa-py-[2px] cqa-text-[10px]': isSmall,\n 'cqa-py-1 cqa-text-xs': !isSmall\n }\" [ngStyle]=\"statusBadgeStyles\">\n {{ statusLabel }}\n </span>\n </div>\n\n <!-- Type and Timestamp -->\n <div class=\"cqa-flex cqa-items-center cqa-text-[#636363]\" [ngClass]=\"{\n 'cqa-gap-1': isSmall,\n 'cqa-gap-[6px]': !isSmall,\n 'cqa-mb-2': isSmall,\n 'cqa-mb-[6px]': !isSmall\n }\">\n <mat-icon [ngClass]=\"{\n 'cqa-text-[12px] cqa-w-3 cqa-h-3': isSmall,\n 'cqa-text-[14px] cqa-w-[14px] cqa-h-[14px]': !isSmall }\">\n {{ typeIcon }}\n </mat-icon>\n <span [ngClass]=\"{ 'cqa-text-[10px]': isSmall, 'cqa-text-xs': !isSmall }\">\n {{ typeLabel }}\n </span>\n </div>\n\n <!-- Timestamp -->\n <div class=\"cqa-font-normal cqa-text-[#0B0B0B] cqa-leading-normal\" [ngClass]=\"{\n 'cqa-text-sm': !isSmall,\n 'cqa-text-[11px]': isSmall,\n 'cqa-mb-2': isSmall,\n 'cqa-mb-[6px]': !isSmall\n }\">\n {{ timestamp }}\n </div>\n\n <!-- Duration, Platform and Run Label -->\n <div class=\"cqa-flex cqa-items-center cqa-justify-between cqa-gap-2\">\n <div class=\"cqa-flex cqa-items-center cqa-gap-2\" [ngClass]=\"{\n 'cqa-gap-1': isSmall,\n 'cqa-gap-2': !isSmall\n }\">\n <div class=\"cqa-flex cqa-items-center cqa-text-[#636363]\" [ngClass]=\"{\n 'cqa-gap-1': isSmall,\n 'cqa-gap-[6px]': !isSmall\n }\" [title]=\"durationTooltip\">\n <mat-icon [ngClass]=\"{\n 'cqa-text-[12px] cqa-w-3 cqa-h-3': isSmall,\n 'cqa-text-[14px] cqa-w-[14px] cqa-h-[14px]': !isSmall }\" style=\"flex-shrink: 0;\">\n schedule\n </mat-icon>\n <span [ngClass]=\"{\n 'cqa-text-[8px]': isSmall,\n 'cqa-text-[10px]': !isSmall\n }\">\n {{ duration }}\n </span>\n </div>\n\n <cqa-badge \n *ngIf=\"platform\"\n [label]=\"platformLabel\"\n [icon]=\"platformIcon\"\n [iconLibrary]=\"platformIconLibrary\"\n [size]=\"isSmall ? 'extra-small' : 'small'\"\n variant=\"default\"\n [iconSize]=\"isSmall ? 10 : 12\">\n </cqa-badge>\n </div>\n\n <span *ngIf=\"runLabel\" class=\"cqa-text-[#3F43EE] cqa-rounded-md cqa-whitespace-nowrap\"\n [ngStyle]=\"runLabelStyles\"\n [ngClass]=\"{ 'cqa-font-medium': !isSmall }\">\n {{ runLabel }}\n </span>\n </div>\n\n <!-- Error Message (only for failed status and normal size) -->\n <div *ngIf=\"errorMessage && status === 'failed' && !isSmall\" class=\"cqa-mt-2 cqa-pt-2\"\n style=\"border-top: 1px solid #E4E4E4;\">\n <p class=\"cqa-text-[10px] cqa-text-[#E7000B]\">\n {{ errorMessage }}\n </p>\n </div>\n </div>\n</div>", styles: [] }]
|
|
155
197
|
}], propDecorators: { id: [{
|
|
156
198
|
type: Input
|
|
157
199
|
}], status: [{
|
|
@@ -170,7 +212,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImpor
|
|
|
170
212
|
type: Input
|
|
171
213
|
}], durationTooltip: [{
|
|
172
214
|
type: Input
|
|
215
|
+
}], platform: [{
|
|
216
|
+
type: Input
|
|
173
217
|
}], headingClicked: [{
|
|
174
218
|
type: Output
|
|
175
219
|
}] } });
|
|
176
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnVuLWhpc3RvcnktY2FyZC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvbGliL3J1bi1oaXN0b3J5LWNhcmQvcnVuLWhpc3RvcnktY2FyZC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9zcmMvbGliL3J1bi1oaXN0b3J5LWNhcmQvcnVuLWhpc3RvcnktY2FyZC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7O0FBV3ZFLE1BQU0sT0FBTyx1QkFBdUI7SUFMcEM7UUFhVyxTQUFJLEdBQWEsUUFBUSxDQUFDO1FBRXpCLG1CQUFjLEdBQUcsSUFBSSxZQUFZLEVBQVEsQ0FBQztLQTJKckQ7SUF6SkMsSUFBSSxXQUFXO1FBQ2IsUUFBUSxJQUFJLENBQUMsTUFBTSxFQUFFO1lBQ25CLEtBQUssUUFBUTtnQkFDWCxPQUFPLFFBQVEsQ0FBQztZQUNsQixLQUFLLFFBQVE7Z0JBQ1gsT0FBTyxRQUFRLENBQUM7WUFDbEIsS0FBSyxTQUFTO2dCQUNaLE9BQU8sU0FBUyxDQUFDO1lBQ25CLEtBQUssU0FBUztnQkFDWixPQUFPLFNBQVMsQ0FBQztZQUNuQixLQUFLLFNBQVM7Z0JBQ1osT0FBTyxTQUFTLENBQUM7WUFDbkIsS0FBSyxRQUFRO2dCQUNYLE9BQU8sUUFBUSxDQUFDO1lBQ2xCLEtBQUssY0FBYztnQkFDakIsT0FBTyxjQUFjLENBQUM7WUFDeEIsS0FBSyxTQUFTO2dCQUNaLE9BQU8sU0FBUyxDQUFDO1lBQ25CO2dCQUNFLE9BQU8sRUFBRSxDQUFDO1NBQ2I7SUFDSCxDQUFDO0lBRUQsSUFBSSxXQUFXO1FBQ2IsUUFBUSxJQUFJLENBQUMsTUFBTSxFQUFFO1lBQ25CLEtBQUssUUFBUTtnQkFDWCxPQUFPLFNBQVMsQ0FBQztZQUNuQixLQUFLLFFB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U0FBUzsrQkFDRSxzQkFBc0I7OEJBS3ZCLEVBQUU7c0JBQVYsS0FBSztnQkFDRyxNQUFNO3NCQUFkLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLO2dCQUNHLGVBQWU7c0JBQXZCLEtBQUs7Z0JBQ0ksY0FBYztzQkFBdkIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT3V0cHV0IH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcblxuZXhwb3J0IHR5cGUgUnVuU3RhdHVzID0gJ3Bhc3NlZCcgfCAnZmFpbGVkJyB8ICdhYm9ydGVkJyB8ICdydW5uaW5nJyB8ICdzdG9wcGVkJyB8ICdxdWV1ZWQnIHwgJ25vdC1leGVjdXRlZCcgfCAndW5rbm93bic7XG5leHBvcnQgdHlwZSBSdW5UeXBlID0gJ2F1dG9tYXRlZCcgfCAnbWFudWFsJztcbmV4cG9ydCB0eXBlIENhcmRTaXplID0gJ25vcm1hbCcgfCAnc21hbGwnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdjcWEtcnVuLWhpc3RvcnktY2FyZCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9ydW4taGlzdG9yeS1jYXJkLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbXVxufSlcbmV4cG9ydCBjbGFzcyBSdW5IaXN0b3J5Q2FyZENvbXBvbmVudCB7XG4gIEBJbnB1dCgpIGlkITogbnVtYmVyO1xuICBASW5wdXQoKSBzdGF0dXMhOiBSdW5TdGF0dXM7XG4gIEBJbnB1dCgpIHR5cGUhOiBSdW5UeXBlO1xuICBASW5wdXQoKSB0aW1lc3RhbXAhOiBzdHJpbmc7XG4gIEBJbnB1dCgpIGR1cmF0aW9uITogc3RyaW5nO1xuICBASW5wdXQoKSBydW5MYWJlbD86IHN0cmluZztcbiAgQElucHV0KCkgZXJyb3JNZXNzYWdlPzogc3RyaW5nO1xuICBASW5wdXQoKSBzaXplOiBDYXJkU2l6ZSA9ICdub3JtYWwnO1xuICBASW5wdXQoKSBkdXJhdGlvblRvb2x0aXA/OiBzdHJpbmc7XG4gIEBPdXRwdXQoKSBoZWFkaW5nQ2xpY2tlZCA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcblxuICBnZXQgc3RhdHVzTGFiZWwoKTogc3RyaW5nIHtcbiAgICBzd2l0Y2ggKHRoaXMuc3RhdHVzKSB7XG4gICAgICBjYXNlICdwYXNzZWQnOlxuICAgICAgICByZXR1cm4gJ1Bhc3NlZCc7XG4gICAgICBjYXNlICdmYWlsZWQnOlxuICAgICAgICByZXR1cm4gJ0ZhaWxlZCc7XG4gICAgICBjYXNlICdhYm9ydGVkJzpcbiAgICAgICAgcmV0dXJuICdBYm9ydGVkJztcbiAgICAgIGNhc2UgJ3J1bm5pbmcnOlxuICAgICAgICByZXR1cm4gJ1J1bm5pbmcnO1xuICAgICAgY2FzZSAnc3RvcHBlZCc6XG4gICAgICAgIHJldHVybiAnU3RvcHBlZCc7XG4gICAgICBjYXNlICdxdWV1ZWQnOlxuICAgICAgICByZXR1cm4gJ1F1ZXVlZCc7XG4gICAgICBjYXNlICdub3QtZXhlY3V0ZWQnOlxuICAgICAgICByZXR1cm4gJ05vdCBFeGVjdXRlZCc7XG4gICAgICBjYXNlICd1bmtub3duJzpcbiAgICAgICAgcmV0dXJuICdVbmtub3duJztcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIHJldHVybiAnJztcbiAgICB9XG4gIH1cblxuICBnZXQgc3RhdHVzQ29sb3IoKTogc3RyaW5nIHtcbiAgICBzd2l0Y2ggKHRoaXMuc3RhdHVzKSB7XG4gICAgICBjYXNlICdwYXNzZWQnOlxuICAgICAgICByZXR1cm4gJyMwMEM5NTAnO1xuICAgICAgY2FzZSAnZmFpbGVkJzpcbiAgICAgICAgcmV0dXJuICcjRkIyQzM2JztcbiAgICAgIGNhc2UgJ2Fib3J0ZWQnOlxuICAgICAgICByZXR1cm4gJyNGOTczMTYnO1xuICAgICAgY2FzZSAncnVubmluZyc6XG4gICAgICAgIHJldHVybiAnIzNCODJGNic7XG4gICAgICBjYXNlICdzdG9wcGVkJzpcbiAgICAgICAgcmV0dXJuICcjRUY0NDQ0JztcbiAgICAgIGNhc2UgJ3F1ZXVlZCc6XG4gICAgICAgIHJldHVybiAnIzhCNUNGNic7XG4gICAgICBjYXNlICdub3QtZXhlY3V0ZWQnOlxuICAgICAgICByZXR1cm4gJyM2QjcyODAnO1xuICAgICAgY2FzZSAndW5rbm93bic6XG4gICAgICAgIHJldHVybiAnIzlDQTNBRic7XG4gICAgICBkZWZhdWx0OlxuICAgICAgICByZXR1cm4gJyM2QjcyODAnO1xuICAgIH1cbiAgfVxuXG4gIGdldCBzdGF0dXNJY29uQmdDb2xvcigpOiBzdHJpbmcge1xuICAgIHN3aXRjaCAodGhpcy5zdGF0dXMpIHtcbiAgICAgICAgY2FzZSAncGFzc2VkJzpcbiAgICAgICAgICAgIHJldHVybiAnI0RDRkNFNyc7XG4gICAgICAgIGNhc2UgJ2ZhaWxlZCc6XG4gICAgICAgICAgICByZXR1cm4gJyNmZmUyZTInO1xuICAgICAgICBjYXNlICdhYm9ydGVkJzpcbiAgICAgICAgICAgIHJldHVybiAnI0ZGRURENSc7IFxuICAgICAgICBjYXNlICdydW5uaW5nJzpcbiAgICAgICAgICAgIHJldHVybiAnI0RCRUFGRSc7XG4gICAgICAgIGNhc2UgJ3N0b3BwZWQnOlxuICAgICAgICAgICAgcmV0dXJuICcjRkVFMkUyJztcbiAgICAgICAgY2FzZSAncXVldWVkJzpcbiAgICAgICAgICAgIHJldHVybiAnI0VERTlGRSc7XG4gICAgICAgIGNhc2UgJ25vdC1leGVjdXRlZCc6XG4gICAgICAgICAgICByZXR1cm4gJyNGM0Y0RjYnO1xuICAgICAgICBjYXNlICd1bmtub3duJzpcbiAgICAgICAgICAgIHJldHVybiAnI0YzRjRGNic7XG4gICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICByZXR1cm4gJyNFNUU3RUInO1xuICAgIH1cbiAgfVxuXG4gIGdldCBzdGF0dXNJY29uKCk6IHN0cmluZyB7XG4gICAgc3dpdGNoICh0aGlzLnN0YXR1cykge1xuICAgICAgY2FzZSAncGFzc2VkJzpcbiAgICAgICAgcmV0dXJuICdjaGVjayc7XG4gICAgICBjYXNlICdmYWlsZWQnOlxuICAgICAgICByZXR1cm4gJ2Nsb3NlJztcbiAgICAgIGNhc2UgJ2Fib3J0ZWQnOlxuICAgICAgICByZXR1cm4gJ3dhcm5pbmcnO1xuICAgICAgY2FzZSAncnVubmluZyc6XG4gICAgICAgIHJldHVybiAnc2NoZWR1bGUnO1xuICAgICAgY2FzZSAnc3RvcHBlZCc6XG4gICAgICAgIHJldHVybiAnc3RvcCc7XG4gICAgICBjYXNlICdxdWV1ZWQnOlxuICAgICAgICByZXR1cm4gJ2hvdXJnbGFzc19lbXB0eSc7XG4gICAgICBjYXNlICdub3QtZXhlY3V0ZWQnOlxuICAgICAgICByZXR1cm4gJ3JlbW92ZV9jaXJjbGVfb3V0bGluZSc7XG4gICAgICBjYXNlICd1bmtub3duJzpcbiAgICAgICAgcmV0dXJuICdoZWxwX291dGxpbmUnO1xuICAgICAgZGVmYXVsdDpcbiAgICAgICAgcmV0dXJuICdoZWxwX291dGxpbmUnO1xuICAgIH1cbiAgfVxuXG4gIGdldCB0eXBlSWNvbigpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLnR5cGUgPT09ICdhdXRvbWF0ZWQnID8gJ3NldHRpbmdzJyA6ICdwZXJzb24nO1xuICB9XG5cbiAgZ2V0IHR5cGVMYWJlbCgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLnR5cGUgPT09ICdhdXRvbWF0ZWQnID8gJ0F1dG9tYXRlZCcgOiAnTWFudWFsJztcbiAgfVxuXG4gIGdldCBpc1NtYWxsKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLnNpemUgPT09ICdzbWFsbCc7XG4gIH1cblxuICBnZXQgc3RhdHVzSWNvbkNvbnRhaW5lclN0eWxlcygpOiB7IFtrZXk6IHN0cmluZ106IHN0cmluZyB9IHtcbiAgICByZXR1cm4ge1xuICAgICAgJ2JhY2tncm91bmQtY29sb3InOiB0aGlzLnN0YXR1c0ljb25CZ0NvbG9yLFxuICAgICAgJ3dpZHRoJzogdGhpcy5pc1NtYWxsID8gJzE2cHgnIDogJzIwcHgnLFxuICAgICAgJ2hlaWdodCc6IHRoaXMuaXNTbWFsbCA/ICcxNnB4JyA6ICcyMHB4JyxcbiAgICAgICdib3JkZXItcmFkaXVzJzogJzRweCcsXG4gICAgICAnZGlzcGxheSc6ICdpbmxpbmUtZmxleCcsXG4gICAgICAnYWxpZ24taXRlbXMnOiAnY2VudGVyJyxcbiAgICAgICdqdXN0aWZ5LWNvbnRlbnQnOiAnY2VudGVyJ1xuICAgIH07XG4gIH1cblxuICBnZXQgc3RhdHVzSWNvblN0eWxlcygpOiB7IFtrZXk6IHN0cmluZ106IHN0cmluZyB9IHtcbiAgICByZXR1cm4ge1xuICAgICAgJ2NvbG9yJzogdGhpcy5zdGF0dXNDb2xvcixcbiAgICAgICdmb250LXNpemUnOiB0aGlzLmlzU21hbGwgPyAnMTBweCcgOiAnMTJweCcsXG4gICAgICAnd2lkdGgnOiB0aGlzLmlzU21hbGwgPyAnMTBweCcgOiAnMTJweCcsXG4gICAgICAnaGVpZ2h0JzogdGhpcy5pc1NtYWxsID8gJzEwcHgnIDogJzEycHgnXG4gICAgfTtcbiAgfVxuXG4gIGdldCBzdGF0dXNCYWRnZVN0eWxlcygpOiB7IFtrZXk6IHN0cmluZ106IHN0cmluZyB9IHtcbiAgICByZXR1cm4ge1xuICAgICAgJ2JhY2tncm91bmQtY29sb3InOiB0aGlzLnN0YXR1c0NvbG9yXG4gICAgfTtcbiAgfVxuXG4gIGdldCBydW5MYWJlbFN0eWxlcygpOiB7IFtrZXk6IHN0cmluZ106IHN0cmluZyB9IHtcbiAgICByZXR1cm4ge1xuICAgICAgJ2JhY2tncm91bmQtY29sb3InOiAnI2VjZWRmZScsXG4gICAgICAncGFkZGluZyc6IHRoaXMuaXNTbWFsbCA/ICcycHggNnB4JyA6ICcycHggOHB4JyxcbiAgICAgICdib3JkZXItcmFkaXVzJzogdGhpcy5pc1NtYWxsID8gJzVweCcgOiAnNHB4JyxcbiAgICAgICdmb250LXNpemUnIDogdGhpcy5pc1NtYWxsID8gJzhweCcgOiAnMTBweCcsXG4gICAgICAnbGluZS1oZWlnaHQnOiB0aGlzLmlzU21hbGwgPyAnMTJweCcgOiAnMTVweCdcbiAgICB9O1xuICB9XG5cbiAgZ2V0IGNhcmRQYWRkaW5nKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuaXNTbWFsbCA/ICcxMHB4JyA6ICcxMnB4JztcbiAgfVxuXG4gIGdldCBib3JkZXJMZWZ0V2lkdGgoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5pc1NtYWxsID8gJzNweCcgOiAnNHB4JztcbiAgfVxuXG4gIGxpbmtDbGlja2VkKCl7XG4gICAgdGhpcy5oZWFkaW5nQ2xpY2tlZC5lbWl0KCk7XG4gIH1cblxufSIsIjxkaXYgY2xhc3M9XCJjcWEtdWktcm9vdFwiIHN0eWxlPVwiZGlzcGxheTogYmxvY2s7IHdpZHRoOiAxMDAlOyBoZWlnaHQ6IDEwMCU7IG1pbi13aWR0aDogMTgwcHg7XCI+XG4gIDxkaXYgY2xhc3M9XCJjcWEtYmctd2hpdGUgY3FhLXJvdW5kZWQtbGcgY3FhLXNoYWRvdy1zbSBjcWEtZmxleCBjcWEtZmxleC1jb2xcIiBbbmdTdHlsZV09XCJ7XG4gICAgICBwYWRkaW5nOiBjYXJkUGFkZGluZyxcbiAgICAgIGJvcmRlcjogJzFweCBzb2xpZCAjRTRFNEU0JyxcbiAgICAgICdib3JkZXItbGVmdC1jb2xvcic6IHN0YXR1c0NvbG9yLFxuICAgICAgJ2JvcmRlci1sZWZ0LXdpZHRoJzogYm9yZGVyTGVmdFdpZHRoXG4gICAgfVwiPlxuXG4gICAgPCEtLSBIZWFkZXI6IFJ1biBJRCBhbmQgU3RhdHVzIEJhZGdlIC0tPlxuICAgIDxkaXYgY2xhc3M9XCJjcWEtZmxleCBjcWEtaXRlbXMtc3RhcnQgY3FhLWp1c3RpZnktYmV0d2VlbiBjcWEtZ2FwLTIgY3FhLWZsZXgtd3JhcFwiIFtuZ0NsYXNzXT1cIntcbiAgICAgICAgJ2NxYS1tYi1bMTBweF0nOiBpc1NtYWxsLFxuICAgICAgICAnY3FhLW1iLTInOiAhaXNTbWFsbFxuICAgICAgfVwiPlxuICAgICAgPGRpdiBjbGFzcz1cImNxYS1mbGV4IGNxYS1pdGVtcy1jZW50ZXJcIiBbbmdDbGFzc109XCJ7ICdjcWEtZ2FwLVs2cHhdJzogaXNTbWFsbCwgJ2NxYS1nYXAtMic6ICFpc1NtYWxsIH1cIj5cbiAgICAgICAgPHNwYW4gW25nU3R5bGVdPVwic3RhdHVzSWNvbkNvbnRhaW5lclN0eWxlc1wiPlxuICAgICAgICAgIDxtYXQtaWNvbiBbbmdTdHlsZV09XCJzdGF0dXNJY29uU3R5bGVzXCI+XG4gICAgICAgICAgICB7eyBzdGF0dXNJY29uIH19XG4gICAgICAgICAgPC9tYXQtaWNvbj5cbiAgICAgICAgPC9zcGFuPlxuICAgICAgICA8c3BhbiBjbGFzcz1cImNxYS1mb250LXNlbWlib2xkIGNxYS1jdXJzb3ItcG9pbnRlciBjcWEtdW5kZXJsaW5lIGNxYS10ZXh0LVsjM2Y0M2VlXVwiIFtuZ0NsYXNzXT1cIntcbiAgICAgICAgICAgICdjcWEtdGV4dC14cyc6IGlzU21hbGwsXG4gICAgICAgICAgICAnY3FhLXRleHQtc20nOiAhaXNTbWFsbFxuICAgICAgICAgIH1cIiAoY2xpY2spPVwibGlua0NsaWNrZWQoKVwiPlxuICAgICAgICAgICN7eyBpZCB9fVxuICAgICAgICA8L3NwYW4+XG4gICAgICA8L2Rpdj5cblxuICAgICAgPCEtLSBTdGF0dXMgQmFkZ2UgLS0+XG4gICAgICA8c3BhbiBjbGFzcz1cImNxYS1pbmxpbmUtZmxleCBjcWEtaXRlbXMtY2VudGVyIGNxYS1qdXN0aWZ5LWNlbnRlciBjcWEtcm91bmRlZC1tZCBjcWEtZm9udC1tZWRpdW0gY3FhLXRleHQtd2hpdGUgY3FhLXB4LTJcIlxuICAgICAgICBbbmdDbGFzc109XCJ7XG4gICAgICAgICAgJ2NxYS1weS1bMnB4XSBjcWEtdGV4dC1bMTBweF0nOiBpc1NtYWxsLFxuICAgICAgICAgICdjcWEtcHktMSBjcWEtdGV4dC14cyc6ICFpc1NtYWxsXG4gICAgICAgIH1cIiBbbmdTdHlsZV09XCJzdGF0dXNCYWRnZVN0eWxlc1wiPlxuICAgICAgICB7eyBzdGF0dXNMYWJlbCB9fVxuICAgICAgPC9zcGFuPlxuICAgIDwvZGl2PlxuXG4gICAgPCEtLSBUeXBlIGFuZCBUaW1lc3RhbXAgLS0+XG4gICAgPGRpdiBjbGFzcz1cImNxYS1mbGV4IGNxYS1pdGVtcy1jZW50ZXIgY3FhLXRleHQtWyM2MzYzNjNdXCIgW25nQ2xhc3NdPVwie1xuICAgICAgICAgICdjcWEtZ2FwLTEnOiBpc1NtYWxsLFxuICAgICAgICAgICdjcWEtZ2FwLVs2cHhdJzogIWlzU21hbGwsXG4gICAgICAgICAgJ2NxYS1tYi0yJzogaXNTbWFsbCxcbiAgICAgICAgICAnY3FhLW1iLVs2cHhdJzogIWlzU21hbGxcbiAgICAgICAgfVwiPlxuICAgICAgPG1hdC1pY29uIFtuZ0NsYXNzXT1cIntcbiAgICAgICAgJ2NxYS10ZXh0LVsxMnB4XSBjcWEtdy0zIGNxYS1oLTMnOiBpc1NtYWxsLFxuICAgICAgICAnY3FhLXRleHQtWzE0cHhdIGNxYS13LVsxNHB4XSBjcWEtaC1bMTRweF0nOiAhaXNTbWFsbCB9XCI+XG4gICAgICAgIHt7IHR5cGVJY29uIH19XG4gICAgICA8L21hdC1pY29uPlxuICAgICAgPHNwYW4gW25nQ2xhc3NdPVwieyAnY3FhLXRleHQtWzEwcHhdJzogaXNTbWFsbCwgJ2NxYS10ZXh0LXhzJzogIWlzU21hbGwgfVwiPlxuICAgICAgICB7eyB0eXBlTGFiZWwgfX1cbiAgICAgIDwvc3Bhbj5cbiAgICA8L2Rpdj5cblxuICAgIDwhLS0gVGltZXN0YW1wIC0tPlxuICAgIDxkaXYgY2xhc3M9XCJjcWEtZm9udC1ub3JtYWwgY3FhLXRleHQtWyMwQjBCMEJdIGNxYS1sZWFkaW5nLW5vcm1hbFwiIFtuZ0NsYXNzXT1cIntcbiAgICAgICAgJ2NxYS10ZXh0LXNtJzogIWlzU21hbGwsXG4gICAgICAgICdjcWEtdGV4dC1bMTFweF0nOiBpc1NtYWxsLFxuICAgICAgICAnY3FhLW1iLTInOiBpc1NtYWxsLFxuICAgICAgICAnY3FhLW1iLVs2cHhdJzogIWlzU21hbGxcbiAgICAgIH1cIj5cbiAgICAgIHt7IHRpbWVzdGFtcCB9fVxuICAgIDwvZGl2PlxuXG4gICAgPCEtLSBEdXJhdGlvbiBhbmQgUnVuIExhYmVsIC0tPlxuICAgIDxkaXYgY2xhc3M9XCJjcWEtZmxleCBjcWEtaXRlbXMtY2VudGVyIGNxYS1qdXN0aWZ5LWJldHdlZW4gY3FhLWdhcC0yXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwiY3FhLWZsZXggY3FhLWl0ZW1zLWNlbnRlciBjcWEtdGV4dC1bIzYzNjM2M11cIiBbbmdDbGFzc109XCJ7XG4gICAgICAgICdjcWEtZ2FwLTEnOiBpc1NtYWxsLFxuICAgICAgICAnY3FhLWdhcC1bNnB4XSc6ICFpc1NtYWxsXG4gICAgICB9XCIgW3RpdGxlXT1cImR1cmF0aW9uVG9vbHRpcFwiPlxuICAgICAgICA8bWF0LWljb24gW25nQ2xhc3NdPVwie1xuICAgICAgICAgICdjcWEtdGV4dC1bMTJweF0gY3FhLXctMyBjcWEtaC0zJzogaXNTbWFsbCxcbiAgICAgICAgICAnY3FhLXRleHQtWzE0cHhdIGNxYS13LVsxNHB4XSBjcWEtaC1bMTRweF0nOiAhaXNTbWFsbCB9XCIgc3R5bGU9XCJmbGV4LXNocmluazogMDtcIj5cbiAgICAgICAgICBzY2hlZHVsZVxuICAgICAgICA8L21hdC1pY29uPlxuICAgICAgICA8c3BhbiBbbmdDbGFzc109XCJ7XG4gICAgICAgICAgJ2NxYS10ZXh0LVs4cHhdJzogaXNTbWFsbCxcbiAgICAgICAgICAnY3FhLXRleHQtWzEwcHhdJzogIWlzU21hbGxcbiAgICAgICAgfVwiPlxuICAgICAgICAgIHt7IGR1cmF0aW9uIH19XG4gICAgICAgIDwvc3Bhbj5cbiAgICAgIDwvZGl2PlxuXG4gICAgICA8c3BhbiAqbmdJZj1cInJ1bkxhYmVsXCIgY2xhc3M9XCJjcWEtdGV4dC1bIzNGNDNFRV0gY3FhLXJvdW5kZWQtbWQgY3FhLXdoaXRlc3BhY2Utbm93cmFwXCJcbiAgICAgICAgW25nU3R5bGVdPVwicnVuTGFiZWxTdHlsZXNcIlxuICAgICAgICBbbmdDbGFzc109XCJ7ICdjcWEtZm9udC1tZWRpdW0nOiAhaXNTbWFsbCB9XCI+XG4gICAgICAgIHt7IHJ1bkxhYmVsIH19XG4gICAgICA8L3NwYW4+XG4gICAgPC9kaXY+XG5cbiAgICA8IS0tIEVycm9yIE1lc3NhZ2UgKG9ubHkgZm9yIGZhaWxlZCBzdGF0dXMgYW5kIG5vcm1hbCBzaXplKSAtLT5cbiAgICA8ZGl2ICpuZ0lmPVwiZXJyb3JNZXNzYWdlICYmIHN0YXR1cyA9PT0gJ2ZhaWxlZCcgJiYgIWlzU21hbGxcIiBjbGFzcz1cImNxYS1tdC0yIGNxYS1wdC0yXCJcbiAgICAgIHN0eWxlPVwiYm9yZGVyLXRvcDogMXB4IHNvbGlkICNFNEU0RTQ7XCI+XG4gICAgICA8cCBjbGFzcz1cImNxYS10ZXh0LVsxMHB4XSBjcWEtdGV4dC1bI0U3MDAwQl1cIj5cbiAgICAgICAge3sgZXJyb3JNZXNzYWdlIH19XG4gICAgICA8L3A+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC9kaXY+Il19
|
|
220
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnVuLWhpc3RvcnktY2FyZC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvbGliL3J1bi1oaXN0b3J5LWNhcmQvcnVuLWhpc3RvcnktY2FyZC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9zcmMvbGliL3J1bi1oaXN0b3J5LWNhcmQvcnVuLWhpc3RvcnktY2FyZC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7OztBQVl2RSxNQUFNLE9BQU8sdUJBQXVCO0lBTHBDO1FBYVcsU0FBSSxHQUFhLFFBQVEsQ0FBQztRQUd6QixtQkFBYyxHQUFHLElBQUksWUFBWSxFQUFRLENBQUM7S0FvTXJEO0lBbE1DLElBQUksV0FBVztRQUNiLFFBQVEsSUFBSSxDQUFDLE1BQU0sRUFBRTtZQUNuQixLQUFLLFFBQVE7Z0JBQ1gsT0FBTyxRQUFRLENBQUM7WUFDbEIsS0FBSyxRQUFRO2dCQUNYLE9BQU8sUUFBUSxDQUFDO1lBQ2xCLEtBQUssU0FBUztnQkFDWixPQUFPLFNBQVMsQ0FBQztZQUNuQixLQUFLLFNBQVM7Z0JBQ1osT0FBTyxTQUFTLENBQUM7WUFDbkIsS0FBSyxTQUFTO2dCQUNaLE9BQU8sU0FBUyxDQUFDO1lBQ25CLEtBQUssUUFBUTtnQkFDWCxPQUFPLFFBQVEsQ0FBQztZQUNsQixLQUFLLGNBQWM7Z0JBQ2pCLE9BQU8sY0FBYyxDQUFDO1lBQ3hCLEtBQUssU0FBUztnQkFDWixPQUFPLFNBQVMsQ0FBQztZQUNuQjtnQkFDRSxPQUFPLEVBQUUsQ0FBQztTQUNiO0lBQ0gsQ0FBQztJQUVELElBQUksV0FBVztRQUNiLFFBQVEsSUFBSSxDQUFDLE1BQU0sRUFBRTtZQUNuQixLQUFLLFFBQVE7Z0JBQ1gsT0FBTyxTQUFTLENBQUM7WUFDbkIsS0FBSyxR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O3NCQUFqQixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxZQUFZO3NCQUFwQixLQUFLO2dCQUNHLElBQUk7c0JBQVosS0FBSztnQkFDRyxlQUFlO3NCQUF2QixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0ksY0FBYztzQkFBdkIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT3V0cHV0IH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcblxuZXhwb3J0IHR5cGUgUnVuU3RhdHVzID0gJ3Bhc3NlZCcgfCAnZmFpbGVkJyB8ICdhYm9ydGVkJyB8ICdydW5uaW5nJyB8ICdzdG9wcGVkJyB8ICdxdWV1ZWQnIHwgJ25vdC1leGVjdXRlZCcgfCAndW5rbm93bic7XG5leHBvcnQgdHlwZSBSdW5UeXBlID0gJ2F1dG9tYXRlZCcgfCAnbWFudWFsJztcbmV4cG9ydCB0eXBlIENhcmRTaXplID0gJ25vcm1hbCcgfCAnc21hbGwnO1xuZXhwb3J0IHR5cGUgUGxhdGZvcm0gPSAnaW9zJyB8ICdhbmRyb2lkJyB8ICd3ZWInIHwgJ2Nocm9taXVtJyB8ICdkZXNrdG9wJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnY3FhLXJ1bi1oaXN0b3J5LWNhcmQnLFxuICB0ZW1wbGF0ZVVybDogJy4vcnVuLWhpc3RvcnktY2FyZC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogW11cbn0pXG5leHBvcnQgY2xhc3MgUnVuSGlzdG9yeUNhcmRDb21wb25lbnQge1xuICBASW5wdXQoKSBpZCE6IG51bWJlcjtcbiAgQElucHV0KCkgc3RhdHVzITogUnVuU3RhdHVzO1xuICBASW5wdXQoKSB0eXBlITogUnVuVHlwZTtcbiAgQElucHV0KCkgdGltZXN0YW1wITogc3RyaW5nO1xuICBASW5wdXQoKSBkdXJhdGlvbiE6IHN0cmluZztcbiAgQElucHV0KCkgcnVuTGFiZWw/OiBzdHJpbmc7XG4gIEBJbnB1dCgpIGVycm9yTWVzc2FnZT86IHN0cmluZztcbiAgQElucHV0KCkgc2l6ZTogQ2FyZFNpemUgPSAnbm9ybWFsJztcbiAgQElucHV0KCkgZHVyYXRpb25Ub29sdGlwPzogc3RyaW5nO1xuICBASW5wdXQoKSBwbGF0Zm9ybT86IFBsYXRmb3JtO1xuICBAT3V0cHV0KCkgaGVhZGluZ0NsaWNrZWQgPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG5cbiAgZ2V0IHN0YXR1c0xhYmVsKCk6IHN0cmluZyB7XG4gICAgc3dpdGNoICh0aGlzLnN0YXR1cykge1xuICAgICAgY2FzZSAncGFzc2VkJzpcbiAgICAgICAgcmV0dXJuICdQYXNzZWQnO1xuICAgICAgY2FzZSAnZmFpbGVkJzpcbiAgICAgICAgcmV0dXJuICdGYWlsZWQnO1xuICAgICAgY2FzZSAnYWJvcnRlZCc6XG4gICAgICAgIHJldHVybiAnQWJvcnRlZCc7XG4gICAgICBjYXNlICdydW5uaW5nJzpcbiAgICAgICAgcmV0dXJuICdSdW5uaW5nJztcbiAgICAgIGNhc2UgJ3N0b3BwZWQnOlxuICAgICAgICByZXR1cm4gJ1N0b3BwZWQnO1xuICAgICAgY2FzZSAncXVldWVkJzpcbiAgICAgICAgcmV0dXJuICdRdWV1ZWQnO1xuICAgICAgY2FzZSAnbm90LWV4ZWN1dGVkJzpcbiAgICAgICAgcmV0dXJuICdOb3QgRXhlY3V0ZWQnO1xuICAgICAgY2FzZSAndW5rbm93bic6XG4gICAgICAgIHJldHVybiAnVW5rbm93bic7XG4gICAgICBkZWZhdWx0OlxuICAgICAgICByZXR1cm4gJyc7XG4gICAgfVxuICB9XG5cbiAgZ2V0IHN0YXR1c0NvbG9yKCk6IHN0cmluZyB7XG4gICAgc3dpdGNoICh0aGlzLnN0YXR1cykge1xuICAgICAgY2FzZSAncGFzc2VkJzpcbiAgICAgICAgcmV0dXJuICcjMDBDOTUwJztcbiAgICAgIGNhc2UgJ2ZhaWxlZCc6XG4gICAgICAgIHJldHVybiAnI0ZCMkMzNic7XG4gICAgICBjYXNlICdhYm9ydGVkJzpcbiAgICAgICAgcmV0dXJuICcjRjk3MzE2JztcbiAgICAgIGNhc2UgJ3J1bm5pbmcnOlxuICAgICAgICByZXR1cm4gJyMzQjgyRjYnO1xuICAgICAgY2FzZSAnc3RvcHBlZCc6XG4gICAgICAgIHJldHVybiAnI0VGNDQ0NCc7XG4gICAgICBjYXNlICdxdWV1ZWQnOlxuICAgICAgICByZXR1cm4gJyM4QjVDRjYnO1xuICAgICAgY2FzZSAnbm90LWV4ZWN1dGVkJzpcbiAgICAgICAgcmV0dXJuICcjNkI3MjgwJztcbiAgICAgIGNhc2UgJ3Vua25vd24nOlxuICAgICAgICByZXR1cm4gJyM5Q0EzQUYnO1xuICAgICAgZGVmYXVsdDpcbiAgICAgICAgcmV0dXJuICcjNkI3MjgwJztcbiAgICB9XG4gIH1cblxuICBnZXQgc3RhdHVzSWNvbkJnQ29sb3IoKTogc3RyaW5nIHtcbiAgICBzd2l0Y2ggKHRoaXMuc3RhdHVzKSB7XG4gICAgICAgIGNhc2UgJ3Bhc3NlZCc6XG4gICAgICAgICAgICByZXR1cm4gJyNEQ0ZDRTcnO1xuICAgICAgICBjYXNlICdmYWlsZWQnOlxuICAgICAgICAgICAgcmV0dXJuICcjZmZlMmUyJztcbiAgICAgICAgY2FzZSAnYWJvcnRlZCc6XG4gICAgICAgICAgICByZXR1cm4gJyNGRkVERDUnOyBcbiAgICAgICAgY2FzZSAncnVubmluZyc6XG4gICAgICAgICAgICByZXR1cm4gJyNEQkVBRkUnO1xuICAgICAgICBjYXNlICdzdG9wcGVkJzpcbiAgICAgICAgICAgIHJldHVybiAnI0ZFRTJFMic7XG4gICAgICAgIGNhc2UgJ3F1ZXVlZCc6XG4gICAgICAgICAgICByZXR1cm4gJyNFREU5RkUnO1xuICAgICAgICBjYXNlICdub3QtZXhlY3V0ZWQnOlxuICAgICAgICAgICAgcmV0dXJuICcjRjNGNEY2JztcbiAgICAgICAgY2FzZSAndW5rbm93bic6XG4gICAgICAgICAgICByZXR1cm4gJyNGM0Y0RjYnO1xuICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgcmV0dXJuICcjRTVFN0VCJztcbiAgICB9XG4gIH1cblxuICBnZXQgc3RhdHVzSWNvbigpOiBzdHJpbmcge1xuICAgIHN3aXRjaCAodGhpcy5zdGF0dXMpIHtcbiAgICAgIGNhc2UgJ3Bhc3NlZCc6XG4gICAgICAgIHJldHVybiAnY2hlY2snO1xuICAgICAgY2FzZSAnZmFpbGVkJzpcbiAgICAgICAgcmV0dXJuICdjbG9zZSc7XG4gICAgICBjYXNlICdhYm9ydGVkJzpcbiAgICAgICAgcmV0dXJuICd3YXJuaW5nJztcbiAgICAgIGNhc2UgJ3J1bm5pbmcnOlxuICAgICAgICByZXR1cm4gJ3NjaGVkdWxlJztcbiAgICAgIGNhc2UgJ3N0b3BwZWQnOlxuICAgICAgICByZXR1cm4gJ3N0b3AnO1xuICAgICAgY2FzZSAncXVldWVkJzpcbiAgICAgICAgcmV0dXJuICdob3VyZ2xhc3NfZW1wdHknO1xuICAgICAgY2FzZSAnbm90LWV4ZWN1dGVkJzpcbiAgICAgICAgcmV0dXJuICdyZW1vdmVfY2lyY2xlX291dGxpbmUnO1xuICAgICAgY2FzZSAndW5rbm93bic6XG4gICAgICAgIHJldHVybiAnaGVscF9vdXRsaW5lJztcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIHJldHVybiAnaGVscF9vdXRsaW5lJztcbiAgICB9XG4gIH1cblxuICBnZXQgdHlwZUljb24oKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy50eXBlID09PSAnYXV0b21hdGVkJyA/ICdzZXR0aW5ncycgOiAncGVyc29uJztcbiAgfVxuXG4gIGdldCB0eXBlTGFiZWwoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy50eXBlID09PSAnYXV0b21hdGVkJyA/ICdBdXRvbWF0ZWQnIDogJ01hbnVhbCc7XG4gIH1cblxuICBnZXQgaXNTbWFsbCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5zaXplID09PSAnc21hbGwnO1xuICB9XG5cbiAgZ2V0IHN0YXR1c0ljb25Db250YWluZXJTdHlsZXMoKTogeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfSB7XG4gICAgcmV0dXJuIHtcbiAgICAgICdiYWNrZ3JvdW5kLWNvbG9yJzogdGhpcy5zdGF0dXNJY29uQmdDb2xvcixcbiAgICAgICd3aWR0aCc6IHRoaXMuaXNTbWFsbCA/ICcxNnB4JyA6ICcyMHB4JyxcbiAgICAgICdoZWlnaHQnOiB0aGlzLmlzU21hbGwgPyAnMTZweCcgOiAnMjBweCcsXG4gICAgICAnYm9yZGVyLXJhZGl1cyc6ICc0cHgnLFxuICAgICAgJ2Rpc3BsYXknOiAnaW5saW5lLWZsZXgnLFxuICAgICAgJ2FsaWduLWl0ZW1zJzogJ2NlbnRlcicsXG4gICAgICAnanVzdGlmeS1jb250ZW50JzogJ2NlbnRlcidcbiAgICB9O1xuICB9XG5cbiAgZ2V0IHN0YXR1c0ljb25TdHlsZXMoKTogeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfSB7XG4gICAgcmV0dXJuIHtcbiAgICAgICdjb2xvcic6IHRoaXMuc3RhdHVzQ29sb3IsXG4gICAgICAnZm9udC1zaXplJzogdGhpcy5pc1NtYWxsID8gJzEwcHgnIDogJzEycHgnLFxuICAgICAgJ3dpZHRoJzogdGhpcy5pc1NtYWxsID8gJzEwcHgnIDogJzEycHgnLFxuICAgICAgJ2hlaWdodCc6IHRoaXMuaXNTbWFsbCA/ICcxMHB4JyA6ICcxMnB4J1xuICAgIH07XG4gIH1cblxuICBnZXQgc3RhdHVzQmFkZ2VTdHlsZXMoKTogeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfSB7XG4gICAgcmV0dXJuIHtcbiAgICAgICdiYWNrZ3JvdW5kLWNvbG9yJzogdGhpcy5zdGF0dXNDb2xvclxuICAgIH07XG4gIH1cblxuICBnZXQgcnVuTGFiZWxTdHlsZXMoKTogeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfSB7XG4gICAgcmV0dXJuIHtcbiAgICAgICdiYWNrZ3JvdW5kLWNvbG9yJzogJyNlY2VkZmUnLFxuICAgICAgJ3BhZGRpbmcnOiB0aGlzLmlzU21hbGwgPyAnMnB4IDZweCcgOiAnMnB4IDhweCcsXG4gICAgICAnYm9yZGVyLXJhZGl1cyc6IHRoaXMuaXNTbWFsbCA/ICc1cHgnIDogJzRweCcsXG4gICAgICAnZm9udC1zaXplJyA6IHRoaXMuaXNTbWFsbCA/ICc4cHgnIDogJzEwcHgnLFxuICAgICAgJ2xpbmUtaGVpZ2h0JzogdGhpcy5pc1NtYWxsID8gJzEycHgnIDogJzE1cHgnXG4gICAgfTtcbiAgfVxuXG4gIGdldCBjYXJkUGFkZGluZygpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLmlzU21hbGwgPyAnMTBweCcgOiAnMTJweCc7XG4gIH1cblxuICBnZXQgYm9yZGVyTGVmdFdpZHRoKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuaXNTbWFsbCA/ICczcHgnIDogJzRweCc7XG4gIH1cblxuICBnZXQgcGxhdGZvcm1JY29uKCk6IHN0cmluZyB7XG4gICAgaWYgKCF0aGlzLnBsYXRmb3JtKSByZXR1cm4gJyc7XG4gICAgc3dpdGNoICh0aGlzLnBsYXRmb3JtKSB7XG4gICAgICBjYXNlICdpb3MnOlxuICAgICAgICByZXR1cm4gJ2ZhYiBmYS1hcHBsZSc7XG4gICAgICBjYXNlICdhbmRyb2lkJzpcbiAgICAgICAgcmV0dXJuICdhbmRyb2lkJztcbiAgICAgIGNhc2UgJ3dlYic6XG4gICAgICAgIHJldHVybiAnbGFuZ3VhZ2UnO1xuICAgICAgY2FzZSAnY2hyb21pdW0nOlxuICAgICAgICByZXR1cm4gJ3dlYic7XG4gICAgICBjYXNlICdkZXNrdG9wJzpcbiAgICAgICAgcmV0dXJuICdkZXNrdG9wX3dpbmRvd3MnO1xuICAgICAgZGVmYXVsdDpcbiAgICAgICAgcmV0dXJuICcnO1xuICAgIH1cbiAgfVxuXG4gIGdldCBwbGF0Zm9ybUljb25MaWJyYXJ5KCk6ICdtYXQnIHwgJ2ZhJyB7XG4gICAgaWYgKCF0aGlzLnBsYXRmb3JtKSByZXR1cm4gJ21hdCc7XG4gICAgcmV0dXJuIHRoaXMucGxhdGZvcm0gPT09ICdpb3MnID8gJ2ZhJyA6ICdtYXQnO1xuICB9XG5cbiAgZ2V0IHBsYXRmb3JtTGFiZWwoKTogc3RyaW5nIHtcbiAgICBpZiAoIXRoaXMucGxhdGZvcm0pIHJldHVybiAnJztcbiAgICBzd2l0Y2ggKHRoaXMucGxhdGZvcm0pIHtcbiAgICAgIGNhc2UgJ2lvcyc6XG4gICAgICAgIHJldHVybiAnaU9TJztcbiAgICAgIGNhc2UgJ2FuZHJvaWQnOlxuICAgICAgICByZXR1cm4gJ0FuZHJvaWQnO1xuICAgICAgY2FzZSAnd2ViJzpcbiAgICAgICAgcmV0dXJuICdXZWInO1xuICAgICAgY2FzZSAnY2hyb21pdW0nOlxuICAgICAgICByZXR1cm4gJ0Nocm9taXVtJztcbiAgICAgIGNhc2UgJ2Rlc2t0b3AnOlxuICAgICAgICByZXR1cm4gJ1dlYic7XG4gICAgICBkZWZhdWx0OlxuICAgICAgICByZXR1cm4gJyc7XG4gICAgfVxuICB9XG5cbiAgbGlua0NsaWNrZWQoKXtcbiAgICB0aGlzLmhlYWRpbmdDbGlja2VkLmVtaXQoKTtcbiAgfVxuXG59IiwiPGRpdiBjbGFzcz1cImNxYS11aS1yb290XCIgc3R5bGU9XCJkaXNwbGF5OiBibG9jazsgd2lkdGg6IDEwMCU7IGhlaWdodDogMTAwJTsgbWluLXdpZHRoOiAxODBweDtcIj5cbiAgPGRpdiBjbGFzcz1cImNxYS1iZy13aGl0ZSBjcWEtcm91bmRlZC1sZyBjcWEtc2hhZG93LXNtIGNxYS1mbGV4IGNxYS1mbGV4LWNvbFwiIFtuZ1N0eWxlXT1cIntcbiAgICAgIHBhZGRpbmc6IGNhcmRQYWRkaW5nLFxuICAgICAgYm9yZGVyOiAnMXB4IHNvbGlkICNFNEU0RTQnLFxuICAgICAgJ2JvcmRlci1sZWZ0LWNvbG9yJzogc3RhdHVzQ29sb3IsXG4gICAgICAnYm9yZGVyLWxlZnQtd2lkdGgnOiBib3JkZXJMZWZ0V2lkdGhcbiAgICB9XCI+XG5cbiAgICA8IS0tIEhlYWRlcjogUnVuIElEIGFuZCBTdGF0dXMgQmFkZ2UgLS0+XG4gICAgPGRpdiBjbGFzcz1cImNxYS1mbGV4IGNxYS1pdGVtcy1zdGFydCBjcWEtanVzdGlmeS1iZXR3ZWVuIGNxYS1nYXAtMiBjcWEtZmxleC13cmFwXCIgW25nQ2xhc3NdPVwie1xuICAgICAgICAnY3FhLW1iLVsxMHB4XSc6IGlzU21hbGwsXG4gICAgICAgICdjcWEtbWItMic6ICFpc1NtYWxsXG4gICAgICB9XCI+XG4gICAgICA8ZGl2IGNsYXNzPVwiY3FhLWZsZXggY3FhLWl0ZW1zLWNlbnRlclwiIFtuZ0NsYXNzXT1cInsgJ2NxYS1nYXAtWzZweF0nOiBpc1NtYWxsLCAnY3FhLWdhcC0yJzogIWlzU21hbGwgfVwiPlxuICAgICAgICA8c3BhbiBbbmdTdHlsZV09XCJzdGF0dXNJY29uQ29udGFpbmVyU3R5bGVzXCI+XG4gICAgICAgICAgPG1hdC1pY29uIFtuZ1N0eWxlXT1cInN0YXR1c0ljb25TdHlsZXNcIj5cbiAgICAgICAgICAgIHt7IHN0YXR1c0ljb24gfX1cbiAgICAgICAgICA8L21hdC1pY29uPlxuICAgICAgICA8L3NwYW4+XG4gICAgICAgIDxzcGFuIGNsYXNzPVwiY3FhLWZvbnQtc2VtaWJvbGQgY3FhLWN1cnNvci1wb2ludGVyIGNxYS11bmRlcmxpbmUgY3FhLXRleHQtWyMzZjQzZWVdXCIgW25nQ2xhc3NdPVwie1xuICAgICAgICAgICAgJ2NxYS10ZXh0LXhzJzogaXNTbWFsbCxcbiAgICAgICAgICAgICdjcWEtdGV4dC1zbSc6ICFpc1NtYWxsXG4gICAgICAgICAgfVwiIChjbGljayk9XCJsaW5rQ2xpY2tlZCgpXCI+XG4gICAgICAgICAgI3t7IGlkIH19XG4gICAgICAgIDwvc3Bhbj5cbiAgICAgIDwvZGl2PlxuXG4gICAgICA8IS0tIFN0YXR1cyBCYWRnZSAtLT5cbiAgICAgIDxzcGFuIGNsYXNzPVwiY3FhLWlubGluZS1mbGV4IGNxYS1pdGVtcy1jZW50ZXIgY3FhLWp1c3RpZnktY2VudGVyIGNxYS1yb3VuZGVkLW1kIGNxYS1mb250LW1lZGl1bSBjcWEtdGV4dC13aGl0ZSBjcWEtcHgtMlwiXG4gICAgICAgIFtuZ0NsYXNzXT1cIntcbiAgICAgICAgICAnY3FhLXB5LVsycHhdIGNxYS10ZXh0LVsxMHB4XSc6IGlzU21hbGwsXG4gICAgICAgICAgJ2NxYS1weS0xIGNxYS10ZXh0LXhzJzogIWlzU21hbGxcbiAgICAgICAgfVwiIFtuZ1N0eWxlXT1cInN0YXR1c0JhZGdlU3R5bGVzXCI+XG4gICAgICAgIHt7IHN0YXR1c0xhYmVsIH19XG4gICAgICA8L3NwYW4+XG4gICAgPC9kaXY+XG5cbiAgICA8IS0tIFR5cGUgYW5kIFRpbWVzdGFtcCAtLT5cbiAgICA8ZGl2IGNsYXNzPVwiY3FhLWZsZXggY3FhLWl0ZW1zLWNlbnRlciBjcWEtdGV4dC1bIzYzNjM2M11cIiBbbmdDbGFzc109XCJ7XG4gICAgICAgICAgJ2NxYS1nYXAtMSc6IGlzU21hbGwsXG4gICAgICAgICAgJ2NxYS1nYXAtWzZweF0nOiAhaXNTbWFsbCxcbiAgICAgICAgICAnY3FhLW1iLTInOiBpc1NtYWxsLFxuICAgICAgICAgICdjcWEtbWItWzZweF0nOiAhaXNTbWFsbFxuICAgICAgICB9XCI+XG4gICAgICA8bWF0LWljb24gW25nQ2xhc3NdPVwie1xuICAgICAgICAnY3FhLXRleHQtWzEycHhdIGNxYS13LTMgY3FhLWgtMyc6IGlzU21hbGwsXG4gICAgICAgICdjcWEtdGV4dC1bMTRweF0gY3FhLXctWzE0cHhdIGNxYS1oLVsxNHB4XSc6ICFpc1NtYWxsIH1cIj5cbiAgICAgICAge3sgdHlwZUljb24gfX1cbiAgICAgIDwvbWF0LWljb24+XG4gICAgICA8c3BhbiBbbmdDbGFzc109XCJ7ICdjcWEtdGV4dC1bMTBweF0nOiBpc1NtYWxsLCAnY3FhLXRleHQteHMnOiAhaXNTbWFsbCB9XCI+XG4gICAgICAgIHt7IHR5cGVMYWJlbCB9fVxuICAgICAgPC9zcGFuPlxuICAgIDwvZGl2PlxuXG4gICAgPCEtLSBUaW1lc3RhbXAgLS0+XG4gICAgPGRpdiBjbGFzcz1cImNxYS1mb250LW5vcm1hbCBjcWEtdGV4dC1bIzBCMEIwQl0gY3FhLWxlYWRpbmctbm9ybWFsXCIgW25nQ2xhc3NdPVwie1xuICAgICAgICAnY3FhLXRleHQtc20nOiAhaXNTbWFsbCxcbiAgICAgICAgJ2NxYS10ZXh0LVsxMXB4XSc6IGlzU21hbGwsXG4gICAgICAgICdjcWEtbWItMic6IGlzU21hbGwsXG4gICAgICAgICdjcWEtbWItWzZweF0nOiAhaXNTbWFsbFxuICAgICAgfVwiPlxuICAgICAge3sgdGltZXN0YW1wIH19XG4gICAgPC9kaXY+XG5cbiAgICA8IS0tIER1cmF0aW9uLCBQbGF0Zm9ybSBhbmQgUnVuIExhYmVsIC0tPlxuICAgIDxkaXYgY2xhc3M9XCJjcWEtZmxleCBjcWEtaXRlbXMtY2VudGVyIGNxYS1qdXN0aWZ5LWJldHdlZW4gY3FhLWdhcC0yXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwiY3FhLWZsZXggY3FhLWl0ZW1zLWNlbnRlciBjcWEtZ2FwLTJcIiBbbmdDbGFzc109XCJ7XG4gICAgICAgICdjcWEtZ2FwLTEnOiBpc1NtYWxsLFxuICAgICAgICAnY3FhLWdhcC0yJzogIWlzU21hbGxcbiAgICAgIH1cIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImNxYS1mbGV4IGNxYS1pdGVtcy1jZW50ZXIgY3FhLXRleHQtWyM2MzYzNjNdXCIgW25nQ2xhc3NdPVwie1xuICAgICAgICAgICdjcWEtZ2FwLTEnOiBpc1NtYWxsLFxuICAgICAgICAgICdjcWEtZ2FwLVs2cHhdJzogIWlzU21hbGxcbiAgICAgICAgfVwiIFt0aXRsZV09XCJkdXJhdGlvblRvb2x0aXBcIj5cbiAgICAgICAgICA8bWF0LWljb24gW25nQ2xhc3NdPVwie1xuICAgICAgICAgICAgJ2NxYS10ZXh0LVsxMnB4XSBjcWEtdy0zIGNxYS1oLTMnOiBpc1NtYWxsLFxuICAgICAgICAgICAgJ2NxYS10ZXh0LVsxNHB4XSBjcWEtdy1bMTRweF0gY3FhLWgtWzE0cHhdJzogIWlzU21hbGwgfVwiIHN0eWxlPVwiZmxleC1zaHJpbms6IDA7XCI+XG4gICAgICAgICAgICBzY2hlZHVsZVxuICAgICAgICAgIDwvbWF0LWljb24+XG4gICAgICAgICAgPHNwYW4gW25nQ2xhc3NdPVwie1xuICAgICAgICAgICAgJ2NxYS10ZXh0LVs4cHhdJzogaXNTbWFsbCxcbiAgICAgICAgICAgICdjcWEtdGV4dC1bMTBweF0nOiAhaXNTbWFsbFxuICAgICAgICAgIH1cIj5cbiAgICAgICAgICAgIHt7IGR1cmF0aW9uIH19XG4gICAgICAgICAgPC9zcGFuPlxuICAgICAgICA8L2Rpdj5cblxuICAgICAgICA8Y3FhLWJhZGdlIFxuICAgICAgICAgICpuZ0lmPVwicGxhdGZvcm1cIlxuICAgICAgICAgIFtsYWJlbF09XCJwbGF0Zm9ybUxhYmVsXCJcbiAgICAgICAgICBbaWNvbl09XCJwbGF0Zm9ybUljb25cIlxuICAgICAgICAgIFtpY29uTGlicmFyeV09XCJwbGF0Zm9ybUljb25MaWJyYXJ5XCJcbiAgICAgICAgICBbc2l6ZV09XCJpc1NtYWxsID8gJ2V4dHJhLXNtYWxsJyA6ICdzbWFsbCdcIlxuICAgICAgICAgIHZhcmlhbnQ9XCJkZWZhdWx0XCJcbiAgICAgICAgICBbaWNvblNpemVdPVwiaXNTbWFsbCA/IDEwIDogMTJcIj5cbiAgICAgICAgPC9jcWEtYmFkZ2U+XG4gICAgICA8L2Rpdj5cblxuICAgICAgPHNwYW4gKm5nSWY9XCJydW5MYWJlbFwiIGNsYXNzPVwiY3FhLXRleHQtWyMzRjQzRUVdIGNxYS1yb3VuZGVkLW1kIGNxYS13aGl0ZXNwYWNlLW5vd3JhcFwiXG4gICAgICAgIFtuZ1N0eWxlXT1cInJ1bkxhYmVsU3R5bGVzXCJcbiAgICAgICAgW25nQ2xhc3NdPVwieyAnY3FhLWZvbnQtbWVkaXVtJzogIWlzU21hbGwgfVwiPlxuICAgICAgICB7eyBydW5MYWJlbCB9fVxuICAgICAgPC9zcGFuPlxuICAgIDwvZGl2PlxuXG4gICAgPCEtLSBFcnJvciBNZXNzYWdlIChvbmx5IGZvciBmYWlsZWQgc3RhdHVzIGFuZCBub3JtYWwgc2l6ZSkgLS0+XG4gICAgPGRpdiAqbmdJZj1cImVycm9yTWVzc2FnZSAmJiBzdGF0dXMgPT09ICdmYWlsZWQnICYmICFpc1NtYWxsXCIgY2xhc3M9XCJjcWEtbXQtMiBjcWEtcHQtMlwiXG4gICAgICBzdHlsZT1cImJvcmRlci10b3A6IDFweCBzb2xpZCAjRTRFNEU0O1wiPlxuICAgICAgPHAgY2xhc3M9XCJjcWEtdGV4dC1bMTBweF0gY3FhLXRleHQtWyNFNzAwMEJdXCI+XG4gICAgICAgIHt7IGVycm9yTWVzc2FnZSB9fVxuICAgICAgPC9wPlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvZGl2PiJdfQ==
|
|
@@ -10640,15 +10640,56 @@ class RunHistoryCardComponent {
|
|
|
10640
10640
|
get borderLeftWidth() {
|
|
10641
10641
|
return this.isSmall ? '3px' : '4px';
|
|
10642
10642
|
}
|
|
10643
|
+
get platformIcon() {
|
|
10644
|
+
if (!this.platform)
|
|
10645
|
+
return '';
|
|
10646
|
+
switch (this.platform) {
|
|
10647
|
+
case 'ios':
|
|
10648
|
+
return 'fab fa-apple';
|
|
10649
|
+
case 'android':
|
|
10650
|
+
return 'android';
|
|
10651
|
+
case 'web':
|
|
10652
|
+
return 'language';
|
|
10653
|
+
case 'chromium':
|
|
10654
|
+
return 'web';
|
|
10655
|
+
case 'desktop':
|
|
10656
|
+
return 'desktop_windows';
|
|
10657
|
+
default:
|
|
10658
|
+
return '';
|
|
10659
|
+
}
|
|
10660
|
+
}
|
|
10661
|
+
get platformIconLibrary() {
|
|
10662
|
+
if (!this.platform)
|
|
10663
|
+
return 'mat';
|
|
10664
|
+
return this.platform === 'ios' ? 'fa' : 'mat';
|
|
10665
|
+
}
|
|
10666
|
+
get platformLabel() {
|
|
10667
|
+
if (!this.platform)
|
|
10668
|
+
return '';
|
|
10669
|
+
switch (this.platform) {
|
|
10670
|
+
case 'ios':
|
|
10671
|
+
return 'iOS';
|
|
10672
|
+
case 'android':
|
|
10673
|
+
return 'Android';
|
|
10674
|
+
case 'web':
|
|
10675
|
+
return 'Web';
|
|
10676
|
+
case 'chromium':
|
|
10677
|
+
return 'Chromium';
|
|
10678
|
+
case 'desktop':
|
|
10679
|
+
return 'Web';
|
|
10680
|
+
default:
|
|
10681
|
+
return '';
|
|
10682
|
+
}
|
|
10683
|
+
}
|
|
10643
10684
|
linkClicked() {
|
|
10644
10685
|
this.headingClicked.emit();
|
|
10645
10686
|
}
|
|
10646
10687
|
}
|
|
10647
10688
|
RunHistoryCardComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: RunHistoryCardComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
10648
|
-
RunHistoryCardComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.4.0", type: RunHistoryCardComponent, selector: "cqa-run-history-card", inputs: { id: "id", status: "status", type: "type", timestamp: "timestamp", duration: "duration", runLabel: "runLabel", errorMessage: "errorMessage", size: "size", durationTooltip: "durationTooltip" }, outputs: { headingClicked: "headingClicked" }, ngImport: i0, template: "<div class=\"cqa-ui-root\" style=\"display: block; width: 100%; height: 100%; min-width: 180px;\">\n <div class=\"cqa-bg-white cqa-rounded-lg cqa-shadow-sm cqa-flex cqa-flex-col\" [ngStyle]=\"{\n padding: cardPadding,\n border: '1px solid #E4E4E4',\n 'border-left-color': statusColor,\n 'border-left-width': borderLeftWidth\n }\">\n\n <!-- Header: Run ID and Status Badge -->\n <div class=\"cqa-flex cqa-items-start cqa-justify-between cqa-gap-2 cqa-flex-wrap\" [ngClass]=\"{\n 'cqa-mb-[10px]': isSmall,\n 'cqa-mb-2': !isSmall\n }\">\n <div class=\"cqa-flex cqa-items-center\" [ngClass]=\"{ 'cqa-gap-[6px]': isSmall, 'cqa-gap-2': !isSmall }\">\n <span [ngStyle]=\"statusIconContainerStyles\">\n <mat-icon [ngStyle]=\"statusIconStyles\">\n {{ statusIcon }}\n </mat-icon>\n </span>\n <span class=\"cqa-font-semibold cqa-cursor-pointer cqa-underline cqa-text-[#3f43ee]\" [ngClass]=\"{\n 'cqa-text-xs': isSmall,\n 'cqa-text-sm': !isSmall\n }\" (click)=\"linkClicked()\">\n #{{ id }}\n </span>\n </div>\n\n <!-- Status Badge -->\n <span class=\"cqa-inline-flex cqa-items-center cqa-justify-center cqa-rounded-md cqa-font-medium cqa-text-white cqa-px-2\"\n [ngClass]=\"{\n 'cqa-py-[2px] cqa-text-[10px]': isSmall,\n 'cqa-py-1 cqa-text-xs': !isSmall\n }\" [ngStyle]=\"statusBadgeStyles\">\n {{ statusLabel }}\n </span>\n </div>\n\n <!-- Type and Timestamp -->\n <div class=\"cqa-flex cqa-items-center cqa-text-[#636363]\" [ngClass]=\"{\n 'cqa-gap-1': isSmall,\n 'cqa-gap-[6px]': !isSmall,\n 'cqa-mb-2': isSmall,\n 'cqa-mb-[6px]': !isSmall\n }\">\n <mat-icon [ngClass]=\"{\n 'cqa-text-[12px] cqa-w-3 cqa-h-3': isSmall,\n 'cqa-text-[14px] cqa-w-[14px] cqa-h-[14px]': !isSmall }\">\n {{ typeIcon }}\n </mat-icon>\n <span [ngClass]=\"{ 'cqa-text-[10px]': isSmall, 'cqa-text-xs': !isSmall }\">\n {{ typeLabel }}\n </span>\n </div>\n\n <!-- Timestamp -->\n <div class=\"cqa-font-normal cqa-text-[#0B0B0B] cqa-leading-normal\" [ngClass]=\"{\n 'cqa-text-sm': !isSmall,\n 'cqa-text-[11px]': isSmall,\n 'cqa-mb-2': isSmall,\n 'cqa-mb-[6px]': !isSmall\n }\">\n {{ timestamp }}\n </div>\n\n <!-- Duration and Run Label -->\n <div class=\"cqa-flex cqa-items-center cqa-justify-between cqa-gap-2\">\n <div class=\"cqa-flex cqa-items-center cqa-text-[#636363]\" [ngClass]=\"{\n
|
|
10689
|
+
RunHistoryCardComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.4.0", type: RunHistoryCardComponent, selector: "cqa-run-history-card", inputs: { id: "id", status: "status", type: "type", timestamp: "timestamp", duration: "duration", runLabel: "runLabel", errorMessage: "errorMessage", size: "size", durationTooltip: "durationTooltip", platform: "platform" }, outputs: { headingClicked: "headingClicked" }, ngImport: i0, template: "<div class=\"cqa-ui-root\" style=\"display: block; width: 100%; height: 100%; min-width: 180px;\">\n <div class=\"cqa-bg-white cqa-rounded-lg cqa-shadow-sm cqa-flex cqa-flex-col\" [ngStyle]=\"{\n padding: cardPadding,\n border: '1px solid #E4E4E4',\n 'border-left-color': statusColor,\n 'border-left-width': borderLeftWidth\n }\">\n\n <!-- Header: Run ID and Status Badge -->\n <div class=\"cqa-flex cqa-items-start cqa-justify-between cqa-gap-2 cqa-flex-wrap\" [ngClass]=\"{\n 'cqa-mb-[10px]': isSmall,\n 'cqa-mb-2': !isSmall\n }\">\n <div class=\"cqa-flex cqa-items-center\" [ngClass]=\"{ 'cqa-gap-[6px]': isSmall, 'cqa-gap-2': !isSmall }\">\n <span [ngStyle]=\"statusIconContainerStyles\">\n <mat-icon [ngStyle]=\"statusIconStyles\">\n {{ statusIcon }}\n </mat-icon>\n </span>\n <span class=\"cqa-font-semibold cqa-cursor-pointer cqa-underline cqa-text-[#3f43ee]\" [ngClass]=\"{\n 'cqa-text-xs': isSmall,\n 'cqa-text-sm': !isSmall\n }\" (click)=\"linkClicked()\">\n #{{ id }}\n </span>\n </div>\n\n <!-- Status Badge -->\n <span class=\"cqa-inline-flex cqa-items-center cqa-justify-center cqa-rounded-md cqa-font-medium cqa-text-white cqa-px-2\"\n [ngClass]=\"{\n 'cqa-py-[2px] cqa-text-[10px]': isSmall,\n 'cqa-py-1 cqa-text-xs': !isSmall\n }\" [ngStyle]=\"statusBadgeStyles\">\n {{ statusLabel }}\n </span>\n </div>\n\n <!-- Type and Timestamp -->\n <div class=\"cqa-flex cqa-items-center cqa-text-[#636363]\" [ngClass]=\"{\n 'cqa-gap-1': isSmall,\n 'cqa-gap-[6px]': !isSmall,\n 'cqa-mb-2': isSmall,\n 'cqa-mb-[6px]': !isSmall\n }\">\n <mat-icon [ngClass]=\"{\n 'cqa-text-[12px] cqa-w-3 cqa-h-3': isSmall,\n 'cqa-text-[14px] cqa-w-[14px] cqa-h-[14px]': !isSmall }\">\n {{ typeIcon }}\n </mat-icon>\n <span [ngClass]=\"{ 'cqa-text-[10px]': isSmall, 'cqa-text-xs': !isSmall }\">\n {{ typeLabel }}\n </span>\n </div>\n\n <!-- Timestamp -->\n <div class=\"cqa-font-normal cqa-text-[#0B0B0B] cqa-leading-normal\" [ngClass]=\"{\n 'cqa-text-sm': !isSmall,\n 'cqa-text-[11px]': isSmall,\n 'cqa-mb-2': isSmall,\n 'cqa-mb-[6px]': !isSmall\n }\">\n {{ timestamp }}\n </div>\n\n <!-- Duration, Platform and Run Label -->\n <div class=\"cqa-flex cqa-items-center cqa-justify-between cqa-gap-2\">\n <div class=\"cqa-flex cqa-items-center cqa-gap-2\" [ngClass]=\"{\n 'cqa-gap-1': isSmall,\n 'cqa-gap-2': !isSmall\n }\">\n <div class=\"cqa-flex cqa-items-center cqa-text-[#636363]\" [ngClass]=\"{\n 'cqa-gap-1': isSmall,\n 'cqa-gap-[6px]': !isSmall\n }\" [title]=\"durationTooltip\">\n <mat-icon [ngClass]=\"{\n 'cqa-text-[12px] cqa-w-3 cqa-h-3': isSmall,\n 'cqa-text-[14px] cqa-w-[14px] cqa-h-[14px]': !isSmall }\" style=\"flex-shrink: 0;\">\n schedule\n </mat-icon>\n <span [ngClass]=\"{\n 'cqa-text-[8px]': isSmall,\n 'cqa-text-[10px]': !isSmall\n }\">\n {{ duration }}\n </span>\n </div>\n\n <cqa-badge \n *ngIf=\"platform\"\n [label]=\"platformLabel\"\n [icon]=\"platformIcon\"\n [iconLibrary]=\"platformIconLibrary\"\n [size]=\"isSmall ? 'extra-small' : 'small'\"\n variant=\"default\"\n [iconSize]=\"isSmall ? 10 : 12\">\n </cqa-badge>\n </div>\n\n <span *ngIf=\"runLabel\" class=\"cqa-text-[#3F43EE] cqa-rounded-md cqa-whitespace-nowrap\"\n [ngStyle]=\"runLabelStyles\"\n [ngClass]=\"{ 'cqa-font-medium': !isSmall }\">\n {{ runLabel }}\n </span>\n </div>\n\n <!-- Error Message (only for failed status and normal size) -->\n <div *ngIf=\"errorMessage && status === 'failed' && !isSmall\" class=\"cqa-mt-2 cqa-pt-2\"\n style=\"border-top: 1px solid #E4E4E4;\">\n <p class=\"cqa-text-[10px] cqa-text-[#E7000B]\">\n {{ errorMessage }}\n </p>\n </div>\n </div>\n</div>", components: [{ type: i1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { type: BadgeComponent, selector: "cqa-badge", inputs: ["type", "label", "icon", "iconLibrary", "variant", "size", "backgroundColor", "textColor", "borderColor", "iconBackgroundColor", "iconColor", "iconSize", "inlineStyles", "key", "value", "keyTextColor", "valueTextColor", "isLoading"] }], directives: [{ type: i2$1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { type: i2$1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i2$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
|
|
10649
10690
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: RunHistoryCardComponent, decorators: [{
|
|
10650
10691
|
type: Component,
|
|
10651
|
-
args: [{ selector: 'cqa-run-history-card', template: "<div class=\"cqa-ui-root\" style=\"display: block; width: 100%; height: 100%; min-width: 180px;\">\n <div class=\"cqa-bg-white cqa-rounded-lg cqa-shadow-sm cqa-flex cqa-flex-col\" [ngStyle]=\"{\n padding: cardPadding,\n border: '1px solid #E4E4E4',\n 'border-left-color': statusColor,\n 'border-left-width': borderLeftWidth\n }\">\n\n <!-- Header: Run ID and Status Badge -->\n <div class=\"cqa-flex cqa-items-start cqa-justify-between cqa-gap-2 cqa-flex-wrap\" [ngClass]=\"{\n 'cqa-mb-[10px]': isSmall,\n 'cqa-mb-2': !isSmall\n }\">\n <div class=\"cqa-flex cqa-items-center\" [ngClass]=\"{ 'cqa-gap-[6px]': isSmall, 'cqa-gap-2': !isSmall }\">\n <span [ngStyle]=\"statusIconContainerStyles\">\n <mat-icon [ngStyle]=\"statusIconStyles\">\n {{ statusIcon }}\n </mat-icon>\n </span>\n <span class=\"cqa-font-semibold cqa-cursor-pointer cqa-underline cqa-text-[#3f43ee]\" [ngClass]=\"{\n 'cqa-text-xs': isSmall,\n 'cqa-text-sm': !isSmall\n }\" (click)=\"linkClicked()\">\n #{{ id }}\n </span>\n </div>\n\n <!-- Status Badge -->\n <span class=\"cqa-inline-flex cqa-items-center cqa-justify-center cqa-rounded-md cqa-font-medium cqa-text-white cqa-px-2\"\n [ngClass]=\"{\n 'cqa-py-[2px] cqa-text-[10px]': isSmall,\n 'cqa-py-1 cqa-text-xs': !isSmall\n }\" [ngStyle]=\"statusBadgeStyles\">\n {{ statusLabel }}\n </span>\n </div>\n\n <!-- Type and Timestamp -->\n <div class=\"cqa-flex cqa-items-center cqa-text-[#636363]\" [ngClass]=\"{\n 'cqa-gap-1': isSmall,\n 'cqa-gap-[6px]': !isSmall,\n 'cqa-mb-2': isSmall,\n 'cqa-mb-[6px]': !isSmall\n }\">\n <mat-icon [ngClass]=\"{\n 'cqa-text-[12px] cqa-w-3 cqa-h-3': isSmall,\n 'cqa-text-[14px] cqa-w-[14px] cqa-h-[14px]': !isSmall }\">\n {{ typeIcon }}\n </mat-icon>\n <span [ngClass]=\"{ 'cqa-text-[10px]': isSmall, 'cqa-text-xs': !isSmall }\">\n {{ typeLabel }}\n </span>\n </div>\n\n <!-- Timestamp -->\n <div class=\"cqa-font-normal cqa-text-[#0B0B0B] cqa-leading-normal\" [ngClass]=\"{\n 'cqa-text-sm': !isSmall,\n 'cqa-text-[11px]': isSmall,\n 'cqa-mb-2': isSmall,\n 'cqa-mb-[6px]': !isSmall\n }\">\n {{ timestamp }}\n </div>\n\n <!-- Duration and Run Label -->\n <div class=\"cqa-flex cqa-items-center cqa-justify-between cqa-gap-2\">\n <div class=\"cqa-flex cqa-items-center cqa-text-[#636363]\" [ngClass]=\"{\n
|
|
10692
|
+
args: [{ selector: 'cqa-run-history-card', template: "<div class=\"cqa-ui-root\" style=\"display: block; width: 100%; height: 100%; min-width: 180px;\">\n <div class=\"cqa-bg-white cqa-rounded-lg cqa-shadow-sm cqa-flex cqa-flex-col\" [ngStyle]=\"{\n padding: cardPadding,\n border: '1px solid #E4E4E4',\n 'border-left-color': statusColor,\n 'border-left-width': borderLeftWidth\n }\">\n\n <!-- Header: Run ID and Status Badge -->\n <div class=\"cqa-flex cqa-items-start cqa-justify-between cqa-gap-2 cqa-flex-wrap\" [ngClass]=\"{\n 'cqa-mb-[10px]': isSmall,\n 'cqa-mb-2': !isSmall\n }\">\n <div class=\"cqa-flex cqa-items-center\" [ngClass]=\"{ 'cqa-gap-[6px]': isSmall, 'cqa-gap-2': !isSmall }\">\n <span [ngStyle]=\"statusIconContainerStyles\">\n <mat-icon [ngStyle]=\"statusIconStyles\">\n {{ statusIcon }}\n </mat-icon>\n </span>\n <span class=\"cqa-font-semibold cqa-cursor-pointer cqa-underline cqa-text-[#3f43ee]\" [ngClass]=\"{\n 'cqa-text-xs': isSmall,\n 'cqa-text-sm': !isSmall\n }\" (click)=\"linkClicked()\">\n #{{ id }}\n </span>\n </div>\n\n <!-- Status Badge -->\n <span class=\"cqa-inline-flex cqa-items-center cqa-justify-center cqa-rounded-md cqa-font-medium cqa-text-white cqa-px-2\"\n [ngClass]=\"{\n 'cqa-py-[2px] cqa-text-[10px]': isSmall,\n 'cqa-py-1 cqa-text-xs': !isSmall\n }\" [ngStyle]=\"statusBadgeStyles\">\n {{ statusLabel }}\n </span>\n </div>\n\n <!-- Type and Timestamp -->\n <div class=\"cqa-flex cqa-items-center cqa-text-[#636363]\" [ngClass]=\"{\n 'cqa-gap-1': isSmall,\n 'cqa-gap-[6px]': !isSmall,\n 'cqa-mb-2': isSmall,\n 'cqa-mb-[6px]': !isSmall\n }\">\n <mat-icon [ngClass]=\"{\n 'cqa-text-[12px] cqa-w-3 cqa-h-3': isSmall,\n 'cqa-text-[14px] cqa-w-[14px] cqa-h-[14px]': !isSmall }\">\n {{ typeIcon }}\n </mat-icon>\n <span [ngClass]=\"{ 'cqa-text-[10px]': isSmall, 'cqa-text-xs': !isSmall }\">\n {{ typeLabel }}\n </span>\n </div>\n\n <!-- Timestamp -->\n <div class=\"cqa-font-normal cqa-text-[#0B0B0B] cqa-leading-normal\" [ngClass]=\"{\n 'cqa-text-sm': !isSmall,\n 'cqa-text-[11px]': isSmall,\n 'cqa-mb-2': isSmall,\n 'cqa-mb-[6px]': !isSmall\n }\">\n {{ timestamp }}\n </div>\n\n <!-- Duration, Platform and Run Label -->\n <div class=\"cqa-flex cqa-items-center cqa-justify-between cqa-gap-2\">\n <div class=\"cqa-flex cqa-items-center cqa-gap-2\" [ngClass]=\"{\n 'cqa-gap-1': isSmall,\n 'cqa-gap-2': !isSmall\n }\">\n <div class=\"cqa-flex cqa-items-center cqa-text-[#636363]\" [ngClass]=\"{\n 'cqa-gap-1': isSmall,\n 'cqa-gap-[6px]': !isSmall\n }\" [title]=\"durationTooltip\">\n <mat-icon [ngClass]=\"{\n 'cqa-text-[12px] cqa-w-3 cqa-h-3': isSmall,\n 'cqa-text-[14px] cqa-w-[14px] cqa-h-[14px]': !isSmall }\" style=\"flex-shrink: 0;\">\n schedule\n </mat-icon>\n <span [ngClass]=\"{\n 'cqa-text-[8px]': isSmall,\n 'cqa-text-[10px]': !isSmall\n }\">\n {{ duration }}\n </span>\n </div>\n\n <cqa-badge \n *ngIf=\"platform\"\n [label]=\"platformLabel\"\n [icon]=\"platformIcon\"\n [iconLibrary]=\"platformIconLibrary\"\n [size]=\"isSmall ? 'extra-small' : 'small'\"\n variant=\"default\"\n [iconSize]=\"isSmall ? 10 : 12\">\n </cqa-badge>\n </div>\n\n <span *ngIf=\"runLabel\" class=\"cqa-text-[#3F43EE] cqa-rounded-md cqa-whitespace-nowrap\"\n [ngStyle]=\"runLabelStyles\"\n [ngClass]=\"{ 'cqa-font-medium': !isSmall }\">\n {{ runLabel }}\n </span>\n </div>\n\n <!-- Error Message (only for failed status and normal size) -->\n <div *ngIf=\"errorMessage && status === 'failed' && !isSmall\" class=\"cqa-mt-2 cqa-pt-2\"\n style=\"border-top: 1px solid #E4E4E4;\">\n <p class=\"cqa-text-[10px] cqa-text-[#E7000B]\">\n {{ errorMessage }}\n </p>\n </div>\n </div>\n</div>", styles: [] }]
|
|
10652
10693
|
}], propDecorators: { id: [{
|
|
10653
10694
|
type: Input
|
|
10654
10695
|
}], status: [{
|
|
@@ -10667,6 +10708,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImpor
|
|
|
10667
10708
|
type: Input
|
|
10668
10709
|
}], durationTooltip: [{
|
|
10669
10710
|
type: Input
|
|
10711
|
+
}], platform: [{
|
|
10712
|
+
type: Input
|
|
10670
10713
|
}], headingClicked: [{
|
|
10671
10714
|
type: Output
|
|
10672
10715
|
}] } });
|