@cqa-lib/cqa-ui 1.1.540 → 1.1.541-gamma.8
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/.github/workflows/README.md +8 -1
- package/esm2020/lib/compare-runs/compare-runs.component.mjs +1 -1
- package/esm2020/lib/execution-screen/condition-debug-step/condition-branch-editor.component.mjs +32 -3
- package/esm2020/lib/execution-screen/db-query-execution-item/db-query-execution-item.component.mjs +1 -1
- package/esm2020/lib/execution-screen/db-verification-step/db-verification-step.component.mjs +1 -1
- package/esm2020/lib/iterations-loop/iterations-loop.component.mjs +1 -1
- package/esm2020/lib/mixed-variable-input/mixed-variable-input.component.mjs +30 -10
- package/esm2020/lib/new-global-variable-dialog/global-variable-tags-input.component.mjs +129 -0
- package/esm2020/lib/new-global-variable-dialog/new-global-variable-dialog.component.mjs +16 -5
- package/esm2020/lib/new-global-variable-dialog/new-global-variable-dialog.models.mjs +1 -1
- package/esm2020/lib/new-test-data-profile-dialog/new-test-data-profile-dialog.component.mjs +50 -51
- package/esm2020/lib/new-test-data-profile-dialog/new-test-data-profile-dialog.models.mjs +1 -1
- package/esm2020/lib/segment-control/segment-control.component.mjs +12 -4
- package/esm2020/lib/step-builder/step-builder-action/step-builder-action.component.mjs +21 -3
- package/esm2020/lib/step-builder/step-builder-ai-agent/step-builder-ai-agent.component.mjs +47 -23
- package/esm2020/lib/step-builder/step-builder-condition/step-builder-condition.component.mjs +21 -3
- package/esm2020/lib/step-builder/step-builder-database/step-builder-database.component.mjs +76 -47
- package/esm2020/lib/step-builder/step-builder-loop/step-builder-loop.component.mjs +16 -3
- package/esm2020/lib/step-builder/template-variables-form/template-variables-form.component.mjs +326 -29
- package/esm2020/lib/templates/modular-table-template/folder-sidebar/folder-sidebar.component.mjs +3 -3
- package/esm2020/lib/templates/table-template.component.mjs +5 -3
- package/esm2020/lib/test-case-details/api-edit-step/api-edit-step.component.mjs +20 -7
- package/esm2020/lib/test-case-details/data-library-panel/data-library-panel.component.mjs +116 -0
- package/esm2020/lib/test-case-details/data-library-panel/data-library-panel.models.mjs +2 -0
- package/esm2020/lib/test-case-details/data-library-panel/element-card.component.mjs +36 -0
- package/esm2020/lib/test-case-details/data-library-panel/test-data-profile-card.component.mjs +38 -0
- package/esm2020/lib/test-case-details/test-case-details-edit/test-case-details-edit.component.mjs +43 -4
- package/esm2020/lib/test-case-details/test-case-details.models.mjs +3 -1
- package/esm2020/lib/test-case-details/test-data-modal/test-data-modal-data.mjs +1 -1
- package/esm2020/lib/test-case-details/test-data-modal/test-data-modal.component.mjs +137 -7
- package/esm2020/lib/ui-kit.module.mjs +23 -3
- package/esm2020/public-api.mjs +6 -1
- package/fesm2015/cqa-lib-cqa-ui.mjs +1243 -260
- package/fesm2015/cqa-lib-cqa-ui.mjs.map +1 -1
- package/fesm2020/cqa-lib-cqa-ui.mjs +1154 -187
- package/fesm2020/cqa-lib-cqa-ui.mjs.map +1 -1
- package/lib/execution-screen/condition-debug-step/condition-branch-editor.component.d.ts +26 -1
- package/lib/new-global-variable-dialog/global-variable-tags-input.component.d.ts +39 -0
- package/lib/new-global-variable-dialog/new-global-variable-dialog.component.d.ts +5 -2
- package/lib/new-global-variable-dialog/new-global-variable-dialog.models.d.ts +8 -0
- package/lib/new-test-data-profile-dialog/new-test-data-profile-dialog.component.d.ts +9 -10
- package/lib/new-test-data-profile-dialog/new-test-data-profile-dialog.models.d.ts +1 -1
- package/lib/segment-control/segment-control.component.d.ts +3 -1
- package/lib/step-builder/step-builder-action/step-builder-action.component.d.ts +19 -1
- package/lib/step-builder/step-builder-ai-agent/step-builder-ai-agent.component.d.ts +16 -2
- package/lib/step-builder/step-builder-condition/step-builder-condition.component.d.ts +19 -1
- package/lib/step-builder/step-builder-database/step-builder-database.component.d.ts +33 -11
- package/lib/step-builder/step-builder-loop/step-builder-loop.component.d.ts +15 -1
- package/lib/step-builder/template-variables-form/template-variables-form.component.d.ts +75 -4
- package/lib/templates/table-template.component.d.ts +8 -1
- package/lib/test-case-details/api-edit-step/api-edit-step.component.d.ts +7 -1
- package/lib/test-case-details/data-library-panel/data-library-panel.component.d.ts +42 -0
- package/lib/test-case-details/data-library-panel/data-library-panel.models.d.ts +17 -0
- package/lib/test-case-details/data-library-panel/element-card.component.d.ts +13 -0
- package/lib/test-case-details/data-library-panel/test-data-profile-card.component.d.ts +13 -0
- package/lib/test-case-details/test-case-details-edit/test-case-details-edit.component.d.ts +7 -0
- package/lib/test-case-details/test-case-details.models.d.ts +2 -0
- package/lib/test-case-details/test-data-modal/test-data-modal-data.d.ts +23 -1
- package/lib/test-case-details/test-data-modal/test-data-modal.component.d.ts +40 -6
- package/lib/ui-kit.module.d.ts +100 -96
- package/package.json +1 -1
- package/public-api.d.ts +5 -0
- package/styles.css +1 -1
|
@@ -0,0 +1,116 @@
|
|
|
1
|
+
import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output, } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
import * as i1 from "../../search-bar/search-bar.component";
|
|
4
|
+
import * as i2 from "../../segment-control/segment-control.component";
|
|
5
|
+
import * as i3 from "./element-card.component";
|
|
6
|
+
import * as i4 from "./test-data-profile-card.component";
|
|
7
|
+
import * as i5 from "@angular/common";
|
|
8
|
+
export class DataLibraryPanelComponent {
|
|
9
|
+
constructor() {
|
|
10
|
+
this.searchTerm = '';
|
|
11
|
+
this.searchPlaceholder = 'Search elements or test data';
|
|
12
|
+
this.activeSubTab = 'elements';
|
|
13
|
+
this.elements = [];
|
|
14
|
+
this.profiles = [];
|
|
15
|
+
this.isLoadingElements = false;
|
|
16
|
+
this.isLoadingProfiles = false;
|
|
17
|
+
this.selectedElementId = null;
|
|
18
|
+
this.hasEnvironment = true;
|
|
19
|
+
this.showElementsLink = true;
|
|
20
|
+
this.showManageProfilesLink = true;
|
|
21
|
+
this.searchTermChange = new EventEmitter();
|
|
22
|
+
this.search = new EventEmitter();
|
|
23
|
+
this.searchCleared = new EventEmitter();
|
|
24
|
+
this.activeSubTabChange = new EventEmitter();
|
|
25
|
+
this.elementCardClick = new EventEmitter();
|
|
26
|
+
this.viewFullElementsClick = new EventEmitter();
|
|
27
|
+
this.manageProfilesClick = new EventEmitter();
|
|
28
|
+
/** Stable reference required by cqa-segment-control. */
|
|
29
|
+
this.segments = [
|
|
30
|
+
{ label: 'Elements', value: 'elements' },
|
|
31
|
+
{ label: 'Test Data Profiles', value: 'profiles' },
|
|
32
|
+
];
|
|
33
|
+
/** Stable iteration source for skeleton placeholders during loading. */
|
|
34
|
+
this.skeletonCards = [0, 1, 2, 3];
|
|
35
|
+
}
|
|
36
|
+
onSearchValueChange(value) {
|
|
37
|
+
this.searchTerm = value ?? '';
|
|
38
|
+
this.searchTermChange.emit(this.searchTerm);
|
|
39
|
+
}
|
|
40
|
+
onSearchSubmit(value) {
|
|
41
|
+
this.search.emit(value ?? '');
|
|
42
|
+
}
|
|
43
|
+
onSearchCleared() {
|
|
44
|
+
this.searchTerm = '';
|
|
45
|
+
this.searchCleared.emit();
|
|
46
|
+
}
|
|
47
|
+
onSegmentChange(value) {
|
|
48
|
+
if (value === 'elements' || value === 'profiles') {
|
|
49
|
+
this.activeSubTab = value;
|
|
50
|
+
this.activeSubTabChange.emit(value);
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
onElementClick(id) {
|
|
54
|
+
this.elementCardClick.emit(id);
|
|
55
|
+
}
|
|
56
|
+
onViewFullElements(event) {
|
|
57
|
+
event.preventDefault();
|
|
58
|
+
this.viewFullElementsClick.emit();
|
|
59
|
+
}
|
|
60
|
+
onManageProfiles(event) {
|
|
61
|
+
event.preventDefault();
|
|
62
|
+
this.manageProfilesClick.emit();
|
|
63
|
+
}
|
|
64
|
+
trackByElementId(_i, item) { return item.id; }
|
|
65
|
+
trackByAttachmentId(_i, item) { return item.attachmentId; }
|
|
66
|
+
get bannerLabel() {
|
|
67
|
+
return this.environmentName && this.environmentName.trim().length
|
|
68
|
+
? this.environmentName
|
|
69
|
+
: 'this test case';
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
DataLibraryPanelComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: DataLibraryPanelComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
73
|
+
DataLibraryPanelComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.4.0", type: DataLibraryPanelComponent, selector: "cqa-data-library-panel", inputs: { searchTerm: "searchTerm", searchPlaceholder: "searchPlaceholder", environmentName: "environmentName", activeSubTab: "activeSubTab", elements: "elements", profiles: "profiles", isLoadingElements: "isLoadingElements", isLoadingProfiles: "isLoadingProfiles", selectedElementId: "selectedElementId", hasEnvironment: "hasEnvironment", showElementsLink: "showElementsLink", showManageProfilesLink: "showManageProfilesLink" }, outputs: { searchTermChange: "searchTermChange", search: "search", searchCleared: "searchCleared", activeSubTabChange: "activeSubTabChange", elementCardClick: "elementCardClick", viewFullElementsClick: "viewFullElementsClick", manageProfilesClick: "manageProfilesClick" }, host: { classAttribute: "cqa-ui-root" }, ngImport: i0, template: "<div class=\"cqa-flex cqa-flex-col cqa-w-full cqa-bg-white\">\n <!-- Sticky region: search + env banner + segment. position:sticky pins inside the\n host scroll container (cqa-detail-side-panel scrolls our content) so only the\n cards below scroll past while these stay anchored. -->\n <div class=\"cqa-sticky cqa-top-0 cqa-z-10 cqa-flex cqa-flex-col cqa-gap-3 cqa-pt-2 cqa-pb-3 cqa-bg-white\">\n <cqa-search-bar\n [placeholder]=\"searchPlaceholder\"\n [value]=\"searchTerm\"\n [showClear]=\"true\"\n [fullWidth]=\"true\"\n (valueChange)=\"onSearchValueChange($event)\"\n (search)=\"onSearchSubmit($event)\"\n (cleared)=\"onSearchCleared()\">\n </cqa-search-bar>\n\n <div class=\"cqa-text-xs cqa-text-[#475569] cqa-bg-[#F8FAFC] cqa-border cqa-border-solid cqa-border-[#E2E8F0] cqa-rounded-md cqa-px-3 cqa-py-2\">\n Showing data for <span class=\"cqa-font-semibold cqa-text-[#0F172A]\">{{ bannerLabel }}</span> Environment\n </div>\n\n <cqa-segment-control\n [segments]=\"segments\"\n [value]=\"activeSubTab\"\n [fullWidth]=\"true\"\n (valueChange)=\"onSegmentChange($event)\">\n </cqa-segment-control>\n </div>\n\n <!-- Scrollable region: section header + cards / empty / loading.\n Scrolling is owned by the host's scroll container; this div is just a normal block. -->\n <div class=\"cqa-pt-3 cqa-pb-6\">\n <ng-container *ngIf=\"activeSubTab === 'elements'\">\n <div class=\"cqa-flex cqa-items-center cqa-justify-between cqa-mb-2\">\n <span class=\"cqa-text-[13px] cqa-font-semibold cqa-text-[#0F172A]\">Elements</span>\n <a\n *ngIf=\"showElementsLink\"\n href=\"#\"\n (click)=\"onViewFullElements($event)\"\n class=\"cqa-inline-flex cqa-items-center cqa-gap-[2px] cqa-text-xs cqa-font-medium cqa-text-[#4F46E5] cqa-no-underline hover:cqa-underline\">\n View full library<span class=\"cqa-text-sm cqa-leading-none\">›</span>\n </a>\n </div>\n\n <div *ngIf=\"!isLoadingElements && elements.length\" class=\"cqa-flex cqa-flex-col cqa-gap-2\">\n <cqa-element-card\n *ngFor=\"let el of elements; trackBy: trackByElementId\"\n [name]=\"el.name\"\n [screen]=\"el.screen\"\n [updatedRelative]=\"el.updatedRelative\"\n [locatorBadge]=\"el.locatorBadge\"\n [selected]=\"selectedElementId === el.id\"\n (cardClick)=\"onElementClick(el.id)\">\n </cqa-element-card>\n </div>\n\n <div *ngIf=\"!isLoadingElements && !elements.length\" class=\"cqa-text-xs cqa-text-[#94A3B8] cqa-py-3 cqa-px-1\">\n <ng-container *ngIf=\"searchTerm; else noElementsAtAll\">\n No elements match “{{ searchTerm }}”.\n </ng-container>\n <ng-template #noElementsAtAll>No elements yet for this workspace.</ng-template>\n </div>\n\n <div *ngIf=\"isLoadingElements\" class=\"cqa-flex cqa-flex-col cqa-gap-2\" aria-busy=\"true\" aria-label=\"Loading elements\">\n <div *ngFor=\"let _ of skeletonCards\"\n class=\"cqa-flex cqa-flex-col cqa-gap-2 cqa-px-3 cqa-py-[10px] cqa-rounded-lg cqa-border cqa-border-solid cqa-border-[#E2E8F0] cqa-bg-white\">\n <div class=\"cqa-flex cqa-items-center cqa-justify-between cqa-gap-2\">\n <div class=\"cqa-h-3 cqa-w-1/2 cqa-rounded cqa-bg-[#E2E8F0] cqa-animate-pulse\"></div>\n <div class=\"cqa-h-3 cqa-w-8 cqa-rounded cqa-bg-[#E2E8F0] cqa-animate-pulse\"></div>\n </div>\n <div class=\"cqa-h-2 cqa-w-1/3 cqa-rounded cqa-bg-[#E2E8F0] cqa-animate-pulse\"></div>\n <div class=\"cqa-h-2 cqa-w-1/4 cqa-rounded cqa-bg-[#E2E8F0] cqa-animate-pulse\"></div>\n </div>\n </div>\n </ng-container>\n\n <ng-container *ngIf=\"activeSubTab === 'profiles'\">\n <div class=\"cqa-flex cqa-items-center cqa-justify-between cqa-mb-2\">\n <span class=\"cqa-text-[13px] cqa-font-semibold cqa-text-[#0F172A]\">Test Data Profiles</span>\n <a\n *ngIf=\"showManageProfilesLink\"\n href=\"#\"\n (click)=\"onManageProfiles($event)\"\n class=\"cqa-inline-flex cqa-items-center cqa-gap-[2px] cqa-text-xs cqa-font-medium cqa-text-[#4F46E5] cqa-no-underline hover:cqa-underline\">\n Manage<span class=\"cqa-text-sm cqa-leading-none\">›</span>\n </a>\n </div>\n\n <div *ngIf=\"!isLoadingProfiles && profiles.length\" class=\"cqa-flex cqa-flex-col cqa-gap-2\">\n <cqa-test-data-profile-card\n *ngFor=\"let p of profiles; trackBy: trackByAttachmentId\"\n [name]=\"p.name\"\n [rowsCount]=\"p.rowsCount\"\n [columnsCount]=\"p.columnsCount\"\n [environmentName]=\"environmentName\"\n [permission]=\"p.permission\"\n [activeOnTestCase]=\"p.activeOnTestCase\">\n </cqa-test-data-profile-card>\n </div>\n\n <div *ngIf=\"!isLoadingProfiles && !profiles.length\" class=\"cqa-text-xs cqa-text-[#94A3B8] cqa-py-3 cqa-px-1\">\n <ng-container *ngIf=\"!hasEnvironment; else noAttachments\">\n Set an environment on this test case to see its test data profiles.\n </ng-container>\n <ng-template #noAttachments>\n <ng-container *ngIf=\"searchTerm; else noProfilesAtAll\">\n No profiles match “{{ searchTerm }}”.\n </ng-container>\n <ng-template #noProfilesAtAll>No test data profiles attached to this environment yet.</ng-template>\n </ng-template>\n </div>\n\n <div *ngIf=\"isLoadingProfiles\" class=\"cqa-flex cqa-flex-col cqa-gap-2\" aria-busy=\"true\" aria-label=\"Loading test data profiles\">\n <div *ngFor=\"let _ of skeletonCards\"\n class=\"cqa-flex cqa-flex-col cqa-gap-2 cqa-px-3 cqa-py-[10px] cqa-rounded-lg cqa-border cqa-border-solid cqa-border-[#E2E8F0] cqa-bg-white\">\n <div class=\"cqa-flex cqa-items-center cqa-justify-between cqa-gap-2\">\n <div class=\"cqa-h-3 cqa-w-1/2 cqa-rounded cqa-bg-[#E2E8F0] cqa-animate-pulse\"></div>\n <div class=\"cqa-h-3 cqa-w-8 cqa-rounded cqa-bg-[#E2E8F0] cqa-animate-pulse\"></div>\n </div>\n <div class=\"cqa-flex cqa-items-center cqa-justify-between cqa-gap-2\">\n <div class=\"cqa-h-2 cqa-w-1/3 cqa-rounded cqa-bg-[#E2E8F0] cqa-animate-pulse\"></div>\n <div class=\"cqa-h-3 cqa-w-12 cqa-rounded-full cqa-bg-[#E2E8F0] cqa-animate-pulse\"></div>\n </div>\n </div>\n </div>\n </ng-container>\n </div>\n</div>\n", components: [{ type: i1.SearchBarComponent, selector: "cqa-search-bar", inputs: ["placeholder", "value", "disabled", "showClear", "ariaLabel", "autoFocus", "size", "fullWidth"], outputs: ["valueChange", "search", "cleared"] }, { type: i2.SegmentControlComponent, selector: "cqa-segment-control", inputs: ["segments", "value", "disabled", "containerBgColor", "fullWidth", "size"], outputs: ["valueChange"] }, { type: i3.ElementCardComponent, selector: "cqa-element-card", inputs: ["name", "screen", "updatedRelative", "locatorBadge", "selected"], outputs: ["cardClick"] }, { type: i4.TestDataProfileCardComponent, selector: "cqa-test-data-profile-card", inputs: ["name", "rowsCount", "columnsCount", "environmentName", "permission", "activeOnTestCase"] }], directives: [{ type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i5.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
74
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: DataLibraryPanelComponent, decorators: [{
|
|
75
|
+
type: Component,
|
|
76
|
+
args: [{ selector: 'cqa-data-library-panel', host: { class: 'cqa-ui-root' }, changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"cqa-flex cqa-flex-col cqa-w-full cqa-bg-white\">\n <!-- Sticky region: search + env banner + segment. position:sticky pins inside the\n host scroll container (cqa-detail-side-panel scrolls our content) so only the\n cards below scroll past while these stay anchored. -->\n <div class=\"cqa-sticky cqa-top-0 cqa-z-10 cqa-flex cqa-flex-col cqa-gap-3 cqa-pt-2 cqa-pb-3 cqa-bg-white\">\n <cqa-search-bar\n [placeholder]=\"searchPlaceholder\"\n [value]=\"searchTerm\"\n [showClear]=\"true\"\n [fullWidth]=\"true\"\n (valueChange)=\"onSearchValueChange($event)\"\n (search)=\"onSearchSubmit($event)\"\n (cleared)=\"onSearchCleared()\">\n </cqa-search-bar>\n\n <div class=\"cqa-text-xs cqa-text-[#475569] cqa-bg-[#F8FAFC] cqa-border cqa-border-solid cqa-border-[#E2E8F0] cqa-rounded-md cqa-px-3 cqa-py-2\">\n Showing data for <span class=\"cqa-font-semibold cqa-text-[#0F172A]\">{{ bannerLabel }}</span> Environment\n </div>\n\n <cqa-segment-control\n [segments]=\"segments\"\n [value]=\"activeSubTab\"\n [fullWidth]=\"true\"\n (valueChange)=\"onSegmentChange($event)\">\n </cqa-segment-control>\n </div>\n\n <!-- Scrollable region: section header + cards / empty / loading.\n Scrolling is owned by the host's scroll container; this div is just a normal block. -->\n <div class=\"cqa-pt-3 cqa-pb-6\">\n <ng-container *ngIf=\"activeSubTab === 'elements'\">\n <div class=\"cqa-flex cqa-items-center cqa-justify-between cqa-mb-2\">\n <span class=\"cqa-text-[13px] cqa-font-semibold cqa-text-[#0F172A]\">Elements</span>\n <a\n *ngIf=\"showElementsLink\"\n href=\"#\"\n (click)=\"onViewFullElements($event)\"\n class=\"cqa-inline-flex cqa-items-center cqa-gap-[2px] cqa-text-xs cqa-font-medium cqa-text-[#4F46E5] cqa-no-underline hover:cqa-underline\">\n View full library<span class=\"cqa-text-sm cqa-leading-none\">›</span>\n </a>\n </div>\n\n <div *ngIf=\"!isLoadingElements && elements.length\" class=\"cqa-flex cqa-flex-col cqa-gap-2\">\n <cqa-element-card\n *ngFor=\"let el of elements; trackBy: trackByElementId\"\n [name]=\"el.name\"\n [screen]=\"el.screen\"\n [updatedRelative]=\"el.updatedRelative\"\n [locatorBadge]=\"el.locatorBadge\"\n [selected]=\"selectedElementId === el.id\"\n (cardClick)=\"onElementClick(el.id)\">\n </cqa-element-card>\n </div>\n\n <div *ngIf=\"!isLoadingElements && !elements.length\" class=\"cqa-text-xs cqa-text-[#94A3B8] cqa-py-3 cqa-px-1\">\n <ng-container *ngIf=\"searchTerm; else noElementsAtAll\">\n No elements match “{{ searchTerm }}”.\n </ng-container>\n <ng-template #noElementsAtAll>No elements yet for this workspace.</ng-template>\n </div>\n\n <div *ngIf=\"isLoadingElements\" class=\"cqa-flex cqa-flex-col cqa-gap-2\" aria-busy=\"true\" aria-label=\"Loading elements\">\n <div *ngFor=\"let _ of skeletonCards\"\n class=\"cqa-flex cqa-flex-col cqa-gap-2 cqa-px-3 cqa-py-[10px] cqa-rounded-lg cqa-border cqa-border-solid cqa-border-[#E2E8F0] cqa-bg-white\">\n <div class=\"cqa-flex cqa-items-center cqa-justify-between cqa-gap-2\">\n <div class=\"cqa-h-3 cqa-w-1/2 cqa-rounded cqa-bg-[#E2E8F0] cqa-animate-pulse\"></div>\n <div class=\"cqa-h-3 cqa-w-8 cqa-rounded cqa-bg-[#E2E8F0] cqa-animate-pulse\"></div>\n </div>\n <div class=\"cqa-h-2 cqa-w-1/3 cqa-rounded cqa-bg-[#E2E8F0] cqa-animate-pulse\"></div>\n <div class=\"cqa-h-2 cqa-w-1/4 cqa-rounded cqa-bg-[#E2E8F0] cqa-animate-pulse\"></div>\n </div>\n </div>\n </ng-container>\n\n <ng-container *ngIf=\"activeSubTab === 'profiles'\">\n <div class=\"cqa-flex cqa-items-center cqa-justify-between cqa-mb-2\">\n <span class=\"cqa-text-[13px] cqa-font-semibold cqa-text-[#0F172A]\">Test Data Profiles</span>\n <a\n *ngIf=\"showManageProfilesLink\"\n href=\"#\"\n (click)=\"onManageProfiles($event)\"\n class=\"cqa-inline-flex cqa-items-center cqa-gap-[2px] cqa-text-xs cqa-font-medium cqa-text-[#4F46E5] cqa-no-underline hover:cqa-underline\">\n Manage<span class=\"cqa-text-sm cqa-leading-none\">›</span>\n </a>\n </div>\n\n <div *ngIf=\"!isLoadingProfiles && profiles.length\" class=\"cqa-flex cqa-flex-col cqa-gap-2\">\n <cqa-test-data-profile-card\n *ngFor=\"let p of profiles; trackBy: trackByAttachmentId\"\n [name]=\"p.name\"\n [rowsCount]=\"p.rowsCount\"\n [columnsCount]=\"p.columnsCount\"\n [environmentName]=\"environmentName\"\n [permission]=\"p.permission\"\n [activeOnTestCase]=\"p.activeOnTestCase\">\n </cqa-test-data-profile-card>\n </div>\n\n <div *ngIf=\"!isLoadingProfiles && !profiles.length\" class=\"cqa-text-xs cqa-text-[#94A3B8] cqa-py-3 cqa-px-1\">\n <ng-container *ngIf=\"!hasEnvironment; else noAttachments\">\n Set an environment on this test case to see its test data profiles.\n </ng-container>\n <ng-template #noAttachments>\n <ng-container *ngIf=\"searchTerm; else noProfilesAtAll\">\n No profiles match “{{ searchTerm }}”.\n </ng-container>\n <ng-template #noProfilesAtAll>No test data profiles attached to this environment yet.</ng-template>\n </ng-template>\n </div>\n\n <div *ngIf=\"isLoadingProfiles\" class=\"cqa-flex cqa-flex-col cqa-gap-2\" aria-busy=\"true\" aria-label=\"Loading test data profiles\">\n <div *ngFor=\"let _ of skeletonCards\"\n class=\"cqa-flex cqa-flex-col cqa-gap-2 cqa-px-3 cqa-py-[10px] cqa-rounded-lg cqa-border cqa-border-solid cqa-border-[#E2E8F0] cqa-bg-white\">\n <div class=\"cqa-flex cqa-items-center cqa-justify-between cqa-gap-2\">\n <div class=\"cqa-h-3 cqa-w-1/2 cqa-rounded cqa-bg-[#E2E8F0] cqa-animate-pulse\"></div>\n <div class=\"cqa-h-3 cqa-w-8 cqa-rounded cqa-bg-[#E2E8F0] cqa-animate-pulse\"></div>\n </div>\n <div class=\"cqa-flex cqa-items-center cqa-justify-between cqa-gap-2\">\n <div class=\"cqa-h-2 cqa-w-1/3 cqa-rounded cqa-bg-[#E2E8F0] cqa-animate-pulse\"></div>\n <div class=\"cqa-h-3 cqa-w-12 cqa-rounded-full cqa-bg-[#E2E8F0] cqa-animate-pulse\"></div>\n </div>\n </div>\n </div>\n </ng-container>\n </div>\n</div>\n" }]
|
|
77
|
+
}], propDecorators: { searchTerm: [{
|
|
78
|
+
type: Input
|
|
79
|
+
}], searchPlaceholder: [{
|
|
80
|
+
type: Input
|
|
81
|
+
}], environmentName: [{
|
|
82
|
+
type: Input
|
|
83
|
+
}], activeSubTab: [{
|
|
84
|
+
type: Input
|
|
85
|
+
}], elements: [{
|
|
86
|
+
type: Input
|
|
87
|
+
}], profiles: [{
|
|
88
|
+
type: Input
|
|
89
|
+
}], isLoadingElements: [{
|
|
90
|
+
type: Input
|
|
91
|
+
}], isLoadingProfiles: [{
|
|
92
|
+
type: Input
|
|
93
|
+
}], selectedElementId: [{
|
|
94
|
+
type: Input
|
|
95
|
+
}], hasEnvironment: [{
|
|
96
|
+
type: Input
|
|
97
|
+
}], showElementsLink: [{
|
|
98
|
+
type: Input
|
|
99
|
+
}], showManageProfilesLink: [{
|
|
100
|
+
type: Input
|
|
101
|
+
}], searchTermChange: [{
|
|
102
|
+
type: Output
|
|
103
|
+
}], search: [{
|
|
104
|
+
type: Output
|
|
105
|
+
}], searchCleared: [{
|
|
106
|
+
type: Output
|
|
107
|
+
}], activeSubTabChange: [{
|
|
108
|
+
type: Output
|
|
109
|
+
}], elementCardClick: [{
|
|
110
|
+
type: Output
|
|
111
|
+
}], viewFullElementsClick: [{
|
|
112
|
+
type: Output
|
|
113
|
+
}], manageProfilesClick: [{
|
|
114
|
+
type: Output
|
|
115
|
+
}] } });
|
|
116
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS1saWJyYXJ5LXBhbmVsLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWIvdGVzdC1jYXNlLWRldGFpbHMvZGF0YS1saWJyYXJ5LXBhbmVsL2RhdGEtbGlicmFyeS1wYW5lbC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL3Rlc3QtY2FzZS1kZXRhaWxzL2RhdGEtbGlicmFyeS1wYW5lbC9kYXRhLWxpYnJhcnktcGFuZWwuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsWUFBWSxFQUNaLEtBQUssRUFDTCxNQUFNLEdBQ1AsTUFBTSxlQUFlLENBQUM7Ozs7Ozs7QUFjdkIsTUFBTSxPQUFPLHlCQUF5QjtJQU50QztRQU9XLGVBQVUsR0FBRyxFQUFFLENBQUM7UUFDaEIsc0JBQWlCLEdBQUcsOEJBQThCLENBQUM7UUFHbkQsaUJBQVksR0FBc0IsVUFBVSxDQUFDO1FBQzdDLGFBQVEsR0FBb0IsRUFBRSxDQUFDO1FBQy9CLGFBQVEsR0FBb0IsRUFBRSxDQUFDO1FBQy9CLHNCQUFpQixHQUFHLEtBQUssQ0FBQztRQUMxQixzQkFBaUIsR0FBRyxLQUFLLENBQUM7UUFDMUIsc0JBQWlCLEdBQTJCLElBQUksQ0FBQztRQUNqRCxtQkFBYyxHQUFHLElBQUksQ0FBQztRQUN0QixxQkFBZ0IsR0FBRyxJQUFJLENBQUM7UUFDeEIsMkJBQXNCLEdBQUcsSUFBSSxDQUFDO1FBRTdCLHFCQUFnQixHQUFHLElBQUksWUFBWSxFQUFVLENBQUM7UUFDOUMsV0FBTSxHQUFHLElBQUksWUFBWSxFQUFVLENBQUM7UUFDcEMsa0JBQWEsR0FBRyxJQUFJLFlBQVksRUFBUSxDQUFDO1FBQ3pDLHVCQUFrQixHQUFHLElBQUksWUFBWSxFQUFxQixDQUFDO1FBQzNELHFCQUFnQixHQUFHLElBQUksWUFBWSxFQUFtQixDQUFDO1FBQ3ZELDBCQUFxQixHQUFHLElBQUksWUFBWSxFQUFRLENBQUM7UUFDakQsd0JBQW1CLEdBQUcsSUFBSSxZQUFZLEVBQVEsQ0FBQztRQUV6RCx3REFBd0Q7UUFDL0MsYUFBUSxHQUFvQjtZQUNuQyxFQUFFLEtBQUssRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUFFLFVBQVUsRUFBRTtZQUN4QyxFQUFFLEtBQUssRUFBRSxvQkFBb0IsRUFBRSxLQUFLLEVBQUUsVUFBVSxFQUFFO1NBQ25ELENBQUM7UUFFRix3RUFBd0U7UUFDL0Qsa0JBQWEsR0FBYSxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO0tBNkNqRDtJQTNDQyxtQkFBbUIsQ0FBQyxLQUFhO1FBQy9CLElBQUksQ0FBQyxVQUFVLEdBQUcsS0FBSyxJQUFJLEVBQUUsQ0FBQztRQUM5QixJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUM5QyxDQUFDO0lBRUQsY0FBYyxDQUFDLEtBQWE7UUFDMUIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBQ2hDLENBQUM7SUFFRCxlQUFlO1FBQ2IsSUFBSSxDQUFDLFVBQVUsR0FBRyxFQUFFLENBQUM7UUFDckIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUM1QixDQUFDO0lBRUQsZUFBZSxDQUFDLEtBQWE7UUFDM0IsSUFBSSxLQUFLLEtBQUssVUFBVSxJQUFJLEtBQUssS0FBSyxVQUFVLEVBQUU7WUFDaEQsSUFBSSxDQUFDLFlBQVksR0FBRyxLQUFLLENBQUM7WUFDMUIsSUFBSSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztTQUNyQztJQUNILENBQUM7SUFFRCxjQUFjLENBQUMsRUFBbUI7UUFDaEMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUNqQyxDQUFDO0lBRUQsa0JBQWtCLENBQUMsS0FBWTtRQUM3QixLQUFLLENBQUMsY0FBYyxFQUFFLENBQUM7UUFDdkIsSUFBSSxDQUFDLHFCQUFxQixDQUFDLElBQUksRUFBRSxDQUFDO0lBQ3BDLENBQUM7SUFFRCxnQkFBZ0IsQ0FBQyxLQUFZO1FBQzNCLEtBQUssQ0FBQyxjQUFjLEVBQUUsQ0FBQztRQUN2QixJQUFJLENBQUMsbUJBQW1CLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDbEMsQ0FBQztJQUVELGdCQUFnQixDQUFDLEVBQVUsRUFBRSxJQUFtQixJQUFxQixPQUFPLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQ3RGLG1CQUFtQixDQUFDLEVBQVUsRUFBRSxJQUFtQixJQUFxQixPQUFPLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDO0lBRW5HLElBQUksV0FBVztRQUNiLE9BQU8sSUFBSSxDQUFDLGVBQWUsSUFBSSxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksRUFBRSxDQUFDLE1BQU07WUFDL0QsQ0FBQyxDQUFDLElBQUksQ0FBQyxlQUFlO1lBQ3RCLENBQUMsQ0FBQyxnQkFBZ0IsQ0FBQztJQUN2QixDQUFDOztzSEExRVUseUJBQXlCOzBHQUF6Qix5QkFBeUIsc3lCQ3BCdEMsZytNQThIQTsyRkQxR2EseUJBQXlCO2tCQU5yQyxTQUFTOytCQUNFLHdCQUF3QixRQUU1QixFQUFFLEtBQUssRUFBRSxhQUFhLEVBQUUsbUJBQ2IsdUJBQXVCLENBQUMsTUFBTTs4QkFHdEMsVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxpQkFBaUI7c0JBQXpCLEtBQUs7Z0JBRUcsZUFBZTtzQkFBdkIsS0FBSztnQkFDRyxZQUFZO3NCQUFwQixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxpQkFBaUI7c0JBQXpCLEtBQUs7Z0JBQ0csaUJBQWlCO3NCQUF6QixLQUFLO2dCQUNHLGlCQUFpQjtzQkFBekIsS0FBSztnQkFDRyxjQUFjO3NCQUF0QixLQUFLO2dCQUNHLGdCQUFnQjtzQkFBeEIsS0FBSztnQkFDRyxzQkFBc0I7c0JBQTlCLEtBQUs7Z0JBRUksZ0JBQWdCO3NCQUF6QixNQUFNO2dCQUNHLE1BQU07c0JBQWYsTUFBTTtnQkFDRyxhQUFhO3NCQUF0QixNQUFNO2dCQUNHLGtCQUFrQjtzQkFBM0IsTUFBTTtnQkFDRyxnQkFBZ0I7c0JBQXpCLE1BQU07Z0JBQ0cscUJBQXFCO3NCQUE5QixNQUFNO2dCQUNHLG1CQUFtQjtzQkFBNUIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDb21wb25lbnQsXG4gIEV2ZW50RW1pdHRlcixcbiAgSW5wdXQsXG4gIE91dHB1dCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTZWdtZW50T3B0aW9uIH0gZnJvbSAnLi4vLi4vc2VnbWVudC1jb250cm9sL3NlZ21lbnQtY29udHJvbC5jb21wb25lbnQnO1xuaW1wb3J0IHtcbiAgRGF0YUxpYnJhcnlTdWJUYWIsXG4gIEVsZW1lbnRDYXJkVm0sXG4gIFByb2ZpbGVDYXJkVm0sXG59IGZyb20gJy4vZGF0YS1saWJyYXJ5LXBhbmVsLm1vZGVscyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2NxYS1kYXRhLWxpYnJhcnktcGFuZWwnLFxuICB0ZW1wbGF0ZVVybDogJy4vZGF0YS1saWJyYXJ5LXBhbmVsLmNvbXBvbmVudC5odG1sJyxcbiAgaG9zdDogeyBjbGFzczogJ2NxYS11aS1yb290JyB9LFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgRGF0YUxpYnJhcnlQYW5lbENvbXBvbmVudCB7XG4gIEBJbnB1dCgpIHNlYXJjaFRlcm0gPSAnJztcbiAgQElucHV0KCkgc2VhcmNoUGxhY2Vob2xkZXIgPSAnU2VhcmNoIGVsZW1lbnRzIG9yIHRlc3QgZGF0YSc7XG4gIC8qKiBUaGUgYWN0aXZlIGVudmlyb25tZW50IG5hbWUsIGUuZy4gXCJRQVwiLiBFbXB0eS91bmRlZmluZWQgcmVuZGVycyBcInRoaXMgdGVzdCBjYXNlXCIgaW4gdGhlIGJhbm5lciBhbmQgaGlkZXMgdGhlIGVudiBjaGlwIG9uIHByb2ZpbGUgY2FyZHMuICovXG4gIEBJbnB1dCgpIGVudmlyb25tZW50TmFtZT86IHN0cmluZztcbiAgQElucHV0KCkgYWN0aXZlU3ViVGFiOiBEYXRhTGlicmFyeVN1YlRhYiA9ICdlbGVtZW50cyc7XG4gIEBJbnB1dCgpIGVsZW1lbnRzOiBFbGVtZW50Q2FyZFZtW10gPSBbXTtcbiAgQElucHV0KCkgcHJvZmlsZXM6IFByb2ZpbGVDYXJkVm1bXSA9IFtdO1xuICBASW5wdXQoKSBpc0xvYWRpbmdFbGVtZW50cyA9IGZhbHNlO1xuICBASW5wdXQoKSBpc0xvYWRpbmdQcm9maWxlcyA9IGZhbHNlO1xuICBASW5wdXQoKSBzZWxlY3RlZEVsZW1lbnRJZDogbnVtYmVyIHwgc3RyaW5nIHwgbnVsbCA9IG51bGw7XG4gIEBJbnB1dCgpIGhhc0Vudmlyb25tZW50ID0gdHJ1ZTtcbiAgQElucHV0KCkgc2hvd0VsZW1lbnRzTGluayA9IHRydWU7XG4gIEBJbnB1dCgpIHNob3dNYW5hZ2VQcm9maWxlc0xpbmsgPSB0cnVlO1xuXG4gIEBPdXRwdXQoKSBzZWFyY2hUZXJtQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KCk7XG4gIEBPdXRwdXQoKSBzZWFyY2ggPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZz4oKTtcbiAgQE91dHB1dCgpIHNlYXJjaENsZWFyZWQgPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG4gIEBPdXRwdXQoKSBhY3RpdmVTdWJUYWJDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPERhdGFMaWJyYXJ5U3ViVGFiPigpO1xuICBAT3V0cHV0KCkgZWxlbWVudENhcmRDbGljayA9IG5ldyBFdmVudEVtaXR0ZXI8bnVtYmVyIHwgc3RyaW5nPigpO1xuICBAT3V0cHV0KCkgdmlld0Z1bGxFbGVtZW50c0NsaWNrID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuICBAT3V0cHV0KCkgbWFuYWdlUHJvZmlsZXNDbGljayA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcblxuICAvKiogU3RhYmxlIHJlZmVyZW5jZSByZXF1aXJlZCBieSBjcWEtc2VnbWVudC1jb250cm9sLiAqL1xuICByZWFkb25seSBzZWdtZW50czogU2VnbWVudE9wdGlvbltdID0gW1xuICAgIHsgbGFiZWw6ICdFbGVtZW50cycsIHZhbHVlOiAnZWxlbWVudHMnIH0sXG4gICAgeyBsYWJlbDogJ1Rlc3QgRGF0YSBQcm9maWxlcycsIHZhbHVlOiAncHJvZmlsZXMnIH0sXG4gIF07XG5cbiAgLyoqIFN0YWJsZSBpdGVyYXRpb24gc291cmNlIGZvciBza2VsZXRvbiBwbGFjZWhvbGRlcnMgZHVyaW5nIGxvYWRpbmcuICovXG4gIHJlYWRvbmx5IHNrZWxldG9uQ2FyZHM6IG51bWJlcltdID0gWzAsIDEsIDIsIDNdO1xuXG4gIG9uU2VhcmNoVmFsdWVDaGFuZ2UodmFsdWU6IHN0cmluZyk6IHZvaWQge1xuICAgIHRoaXMuc2VhcmNoVGVybSA9IHZhbHVlID8/ICcnO1xuICAgIHRoaXMuc2VhcmNoVGVybUNoYW5nZS5lbWl0KHRoaXMuc2VhcmNoVGVybSk7XG4gIH1cblxuICBvblNlYXJjaFN1Ym1pdCh2YWx1ZTogc3RyaW5nKTogdm9pZCB7XG4gICAgdGhpcy5zZWFyY2guZW1pdCh2YWx1ZSA/PyAnJyk7XG4gIH1cblxuICBvblNlYXJjaENsZWFyZWQoKTogdm9pZCB7XG4gICAgdGhpcy5zZWFyY2hUZXJtID0gJyc7XG4gICAgdGhpcy5zZWFyY2hDbGVhcmVkLmVtaXQoKTtcbiAgfVxuXG4gIG9uU2VnbWVudENoYW5nZSh2YWx1ZTogc3RyaW5nKTogdm9pZCB7XG4gICAgaWYgKHZhbHVlID09PSAnZWxlbWVudHMnIHx8IHZhbHVlID09PSAncHJvZmlsZXMnKSB7XG4gICAgICB0aGlzLmFjdGl2ZVN1YlRhYiA9IHZhbHVlO1xuICAgICAgdGhpcy5hY3RpdmVTdWJUYWJDaGFuZ2UuZW1pdCh2YWx1ZSk7XG4gICAgfVxuICB9XG5cbiAgb25FbGVtZW50Q2xpY2soaWQ6IG51bWJlciB8IHN0cmluZyk6IHZvaWQge1xuICAgIHRoaXMuZWxlbWVudENhcmRDbGljay5lbWl0KGlkKTtcbiAgfVxuXG4gIG9uVmlld0Z1bGxFbGVtZW50cyhldmVudDogRXZlbnQpOiB2b2lkIHtcbiAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIHRoaXMudmlld0Z1bGxFbGVtZW50c0NsaWNrLmVtaXQoKTtcbiAgfVxuXG4gIG9uTWFuYWdlUHJvZmlsZXMoZXZlbnQ6IEV2ZW50KTogdm9pZCB7XG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICB0aGlzLm1hbmFnZVByb2ZpbGVzQ2xpY2suZW1pdCgpO1xuICB9XG5cbiAgdHJhY2tCeUVsZW1lbnRJZChfaTogbnVtYmVyLCBpdGVtOiBFbGVtZW50Q2FyZFZtKTogbnVtYmVyIHwgc3RyaW5nIHsgcmV0dXJuIGl0ZW0uaWQ7IH1cbiAgdHJhY2tCeUF0dGFjaG1lbnRJZChfaTogbnVtYmVyLCBpdGVtOiBQcm9maWxlQ2FyZFZtKTogbnVtYmVyIHwgc3RyaW5nIHsgcmV0dXJuIGl0ZW0uYXR0YWNobWVudElkOyB9XG5cbiAgZ2V0IGJhbm5lckxhYmVsKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuZW52aXJvbm1lbnROYW1lICYmIHRoaXMuZW52aXJvbm1lbnROYW1lLnRyaW0oKS5sZW5ndGhcbiAgICAgID8gdGhpcy5lbnZpcm9ubWVudE5hbWVcbiAgICAgIDogJ3RoaXMgdGVzdCBjYXNlJztcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cImNxYS1mbGV4IGNxYS1mbGV4LWNvbCBjcWEtdy1mdWxsIGNxYS1iZy13aGl0ZVwiPlxuICA8IS0tIFN0aWNreSByZWdpb246IHNlYXJjaCArIGVudiBiYW5uZXIgKyBzZWdtZW50LiBwb3NpdGlvbjpzdGlja3kgcGlucyBpbnNpZGUgdGhlXG4gICAgICAgaG9zdCBzY3JvbGwgY29udGFpbmVyIChjcWEtZGV0YWlsLXNpZGUtcGFuZWwgc2Nyb2xscyBvdXIgY29udGVudCkgc28gb25seSB0aGVcbiAgICAgICBjYXJkcyBiZWxvdyBzY3JvbGwgcGFzdCB3aGlsZSB0aGVzZSBzdGF5IGFuY2hvcmVkLiAtLT5cbiAgPGRpdiBjbGFzcz1cImNxYS1zdGlja3kgY3FhLXRvcC0wIGNxYS16LTEwIGNxYS1mbGV4IGNxYS1mbGV4LWNvbCBjcWEtZ2FwLTMgY3FhLXB0LTIgY3FhLXBiLTMgY3FhLWJnLXdoaXRlXCI+XG4gICAgPGNxYS1zZWFyY2gtYmFyXG4gICAgICBbcGxhY2Vob2xkZXJdPVwic2VhcmNoUGxhY2Vob2xkZXJcIlxuICAgICAgW3ZhbHVlXT1cInNlYXJjaFRlcm1cIlxuICAgICAgW3Nob3dDbGVhcl09XCJ0cnVlXCJcbiAgICAgIFtmdWxsV2lkdGhdPVwidHJ1ZVwiXG4gICAgICAodmFsdWVDaGFuZ2UpPVwib25TZWFyY2hWYWx1ZUNoYW5nZSgkZXZlbnQpXCJcbiAgICAgIChzZWFyY2gpPVwib25TZWFyY2hTdWJtaXQoJGV2ZW50KVwiXG4gICAgICAoY2xlYXJlZCk9XCJvblNlYXJjaENsZWFyZWQoKVwiPlxuICAgIDwvY3FhLXNlYXJjaC1iYXI+XG5cbiAgICA8ZGl2IGNsYXNzPVwiY3FhLXRleHQteHMgY3FhLXRleHQtWyM0NzU1NjldIGNxYS1iZy1bI0Y4RkFGQ10gY3FhLWJvcmRlciBjcWEtYm9yZGVyLXNvbGlkIGNxYS1ib3JkZXItWyNFMkU4RjBdIGNxYS1yb3VuZGVkLW1kIGNxYS1weC0zIGNxYS1weS0yXCI+XG4gICAgICBTaG93aW5nIGRhdGEgZm9yIDxzcGFuIGNsYXNzPVwiY3FhLWZvbnQtc2VtaWJvbGQgY3FhLXRleHQtWyMwRjE3MkFdXCI+e3sgYmFubmVyTGFiZWwgfX08L3NwYW4+IEVudmlyb25tZW50XG4gICAgPC9kaXY+XG5cbiAgICA8Y3FhLXNlZ21lbnQtY29udHJvbFxuICAgICAgW3NlZ21lbnRzXT1cInNlZ21lbnRzXCJcbiAgICAgIFt2YWx1ZV09XCJhY3RpdmVTdWJUYWJcIlxuICAgICAgW2Z1bGxXaWR0aF09XCJ0cnVlXCJcbiAgICAgICh2YWx1ZUNoYW5nZSk9XCJvblNlZ21lbnRDaGFuZ2UoJGV2ZW50KVwiPlxuICAgIDwvY3FhLXNlZ21lbnQtY29udHJvbD5cbiAgPC9kaXY+XG5cbiAgPCEtLSBTY3JvbGxhYmxlIHJlZ2lvbjogc2VjdGlvbiBoZWFkZXIgKyBjYXJkcyAvIGVtcHR5IC8gbG9hZGluZy5cbiAgICAgICBTY3JvbGxpbmcgaXMgb3duZWQgYnkgdGhlIGhvc3QncyBzY3JvbGwgY29udGFpbmVyOyB0aGlzIGRpdiBpcyBqdXN0IGEgbm9ybWFsIGJsb2NrLiAtLT5cbiAgPGRpdiBjbGFzcz1cImNxYS1wdC0zIGNxYS1wYi02XCI+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImFjdGl2ZVN1YlRhYiA9PT0gJ2VsZW1lbnRzJ1wiPlxuICAgICAgPGRpdiBjbGFzcz1cImNxYS1mbGV4IGNxYS1pdGVtcy1jZW50ZXIgY3FhLWp1c3RpZnktYmV0d2VlbiBjcWEtbWItMlwiPlxuICAgICAgICA8c3BhbiBjbGFzcz1cImNxYS10ZXh0LVsxM3B4XSBjcWEtZm9udC1zZW1pYm9sZCBjcWEtdGV4dC1bIzBGMTcyQV1cIj5FbGVtZW50czwvc3Bhbj5cbiAgICAgICAgPGFcbiAgICAgICAgICAqbmdJZj1cInNob3dFbGVtZW50c0xpbmtcIlxuICAgICAgICAgIGhyZWY9XCIjXCJcbiAgICAgICAgICAoY2xpY2spPVwib25WaWV3RnVsbEVsZW1lbnRzKCRldmVudClcIlxuICAgICAgICAgIGNsYXNzPVwiY3FhLWlubGluZS1mbGV4IGNxYS1pdGVtcy1jZW50ZXIgY3FhLWdhcC1bMnB4XSBjcWEtdGV4dC14cyBjcWEtZm9udC1tZWRpdW0gY3FhLXRleHQtWyM0RjQ2RTVdIGNxYS1uby11bmRlcmxpbmUgaG92ZXI6Y3FhLXVuZGVybGluZVwiPlxuICAgICAgICAgIFZpZXcgZnVsbCBsaWJyYXJ5PHNwYW4gY2xhc3M9XCJjcWEtdGV4dC1zbSBjcWEtbGVhZGluZy1ub25lXCI+JnJzYXF1bzs8L3NwYW4+XG4gICAgICAgIDwvYT5cbiAgICAgIDwvZGl2PlxuXG4gICAgICA8ZGl2ICpuZ0lmPVwiIWlzTG9hZGluZ0VsZW1lbnRzICYmIGVsZW1lbnRzLmxlbmd0aFwiIGNsYXNzPVwiY3FhLWZsZXggY3FhLWZsZXgtY29sIGNxYS1nYXAtMlwiPlxuICAgICAgICA8Y3FhLWVsZW1lbnQtY2FyZFxuICAgICAgICAgICpuZ0Zvcj1cImxldCBlbCBvZiBlbGVtZW50czsgdHJhY2tCeTogdHJhY2tCeUVsZW1lbnRJZFwiXG4gICAgICAgICAgW25hbWVdPVwiZWwubmFtZVwiXG4gICAgICAgICAgW3NjcmVlbl09XCJlbC5zY3JlZW5cIlxuICAgICAgICAgIFt1cGRhdGVkUmVsYXRpdmVdPVwiZWwudXBkYXRlZFJlbGF0aXZlXCJcbiAgICAgICAgICBbbG9jYXRvckJhZGdlXT1cImVsLmxvY2F0b3JCYWRnZVwiXG4gICAgICAgICAgW3NlbGVjdGVkXT1cInNlbGVjdGVkRWxlbWVudElkID09PSBlbC5pZFwiXG4gICAgICAgICAgKGNhcmRDbGljayk9XCJvbkVsZW1lbnRDbGljayhlbC5pZClcIj5cbiAgICAgICAgPC9jcWEtZWxlbWVudC1jYXJkPlxuICAgICAgPC9kaXY+XG5cbiAgICAgIDxkaXYgKm5nSWY9XCIhaXNMb2FkaW5nRWxlbWVudHMgJiYgIWVsZW1lbnRzLmxlbmd0aFwiIGNsYXNzPVwiY3FhLXRleHQteHMgY3FhLXRleHQtWyM5NEEzQjhdIGNxYS1weS0zIGNxYS1weC0xXCI+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJzZWFyY2hUZXJtOyBlbHNlIG5vRWxlbWVudHNBdEFsbFwiPlxuICAgICAgICAgIE5vIGVsZW1lbnRzIG1hdGNoICZsZHF1bzt7eyBzZWFyY2hUZXJtIH19JnJkcXVvOy5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgIDxuZy10ZW1wbGF0ZSAjbm9FbGVtZW50c0F0QWxsPk5vIGVsZW1lbnRzIHlldCBmb3IgdGhpcyB3b3Jrc3BhY2UuPC9uZy10ZW1wbGF0ZT5cbiAgICAgIDwvZGl2PlxuXG4gICAgICA8ZGl2ICpuZ0lmPVwiaXNMb2FkaW5nRWxlbWVudHNcIiBjbGFzcz1cImNxYS1mbGV4IGNxYS1mbGV4LWNvbCBjcWEtZ2FwLTJcIiBhcmlhLWJ1c3k9XCJ0cnVlXCIgYXJpYS1sYWJlbD1cIkxvYWRpbmcgZWxlbWVudHNcIj5cbiAgICAgICAgPGRpdiAqbmdGb3I9XCJsZXQgXyBvZiBza2VsZXRvbkNhcmRzXCJcbiAgICAgICAgICAgICBjbGFzcz1cImNxYS1mbGV4IGNxYS1mbGV4LWNvbCBjcWEtZ2FwLTIgY3FhLXB4LTMgY3FhLXB5LVsxMHB4XSBjcWEtcm91bmRlZC1sZyBjcWEtYm9yZGVyIGNxYS1ib3JkZXItc29saWQgY3FhLWJvcmRlci1bI0UyRThGMF0gY3FhLWJnLXdoaXRlXCI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImNxYS1mbGV4IGNxYS1pdGVtcy1jZW50ZXIgY3FhLWp1c3RpZnktYmV0d2VlbiBjcWEtZ2FwLTJcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjcWEtaC0zIGNxYS13LTEvMiBjcWEtcm91bmRlZCBjcWEtYmctWyNFMkU4RjBdIGNxYS1hbmltYXRlLXB1bHNlXCI+PC9kaXY+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY3FhLWgtMyBjcWEtdy04IGNxYS1yb3VuZGVkIGNxYS1iZy1bI0UyRThGMF0gY3FhLWFuaW1hdGUtcHVsc2VcIj48L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiY3FhLWgtMiBjcWEtdy0xLzMgY3FhLXJvdW5kZWQgY3FhLWJnLVsjRTJFOEYwXSBjcWEtYW5pbWF0ZS1wdWxzZVwiPjwvZGl2PlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJjcWEtaC0yIGNxYS13LTEvNCBjcWEtcm91bmRlZCBjcWEtYmctWyNFMkU4RjBdIGNxYS1hbmltYXRlLXB1bHNlXCI+PC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgPC9uZy1jb250YWluZXI+XG5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiYWN0aXZlU3ViVGFiID09PSAncHJvZmlsZXMnXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwiY3FhLWZsZXggY3FhLWl0ZW1zLWNlbnRlciBjcWEtanVzdGlmeS1iZXR3ZWVuIGNxYS1tYi0yXCI+XG4gICAgICAgIDxzcGFuIGNsYXNzPVwiY3FhLXRleHQtWzEzcHhdIGNxYS1mb250LXNlbWlib2xkIGNxYS10ZXh0LVsjMEYxNzJBXVwiPlRlc3QgRGF0YSBQcm9maWxlczwvc3Bhbj5cbiAgICAgICAgPGFcbiAgICAgICAgICAqbmdJZj1cInNob3dNYW5hZ2VQcm9maWxlc0xpbmtcIlxuICAgICAgICAgIGhyZWY9XCIjXCJcbiAgICAgICAgICAoY2xpY2spPVwib25NYW5hZ2VQcm9maWxlcygkZXZlbnQpXCJcbiAgICAgICAgICBjbGFzcz1cImNxYS1pbmxpbmUtZmxleCBjcWEtaXRlbXMtY2VudGVyIGNxYS1nYXAtWzJweF0gY3FhLXRleHQteHMgY3FhLWZvbnQtbWVkaXVtIGNxYS10ZXh0LVsjNEY0NkU1XSBjcWEtbm8tdW5kZXJsaW5lIGhvdmVyOmNxYS11bmRlcmxpbmVcIj5cbiAgICAgICAgICBNYW5hZ2U8c3BhbiBjbGFzcz1cImNxYS10ZXh0LXNtIGNxYS1sZWFkaW5nLW5vbmVcIj4mcnNhcXVvOzwvc3Bhbj5cbiAgICAgICAgPC9hPlxuICAgICAgPC9kaXY+XG5cbiAgICAgIDxkaXYgKm5nSWY9XCIhaXNMb2FkaW5nUHJvZmlsZXMgJiYgcHJvZmlsZXMubGVuZ3RoXCIgY2xhc3M9XCJjcWEtZmxleCBjcWEtZmxleC1jb2wgY3FhLWdhcC0yXCI+XG4gICAgICAgIDxjcWEtdGVzdC1kYXRhLXByb2ZpbGUtY2FyZFxuICAgICAgICAgICpuZ0Zvcj1cImxldCBwIG9mIHByb2ZpbGVzOyB0cmFja0J5OiB0cmFja0J5QXR0YWNobWVudElkXCJcbiAgICAgICAgICBbbmFtZV09XCJwLm5hbWVcIlxuICAgICAgICAgIFtyb3dzQ291bnRdPVwicC5yb3dzQ291bnRcIlxuICAgICAgICAgIFtjb2x1bW5zQ291bnRdPVwicC5jb2x1bW5zQ291bnRcIlxuICAgICAgICAgIFtlbnZpcm9ubWVudE5hbWVdPVwiZW52aXJvbm1lbnROYW1lXCJcbiAgICAgICAgICBbcGVybWlzc2lvbl09XCJwLnBlcm1pc3Npb25cIlxuICAgICAgICAgIFthY3RpdmVPblRlc3RDYXNlXT1cInAuYWN0aXZlT25UZXN0Q2FzZVwiPlxuICAgICAgICA8L2NxYS10ZXN0LWRhdGEtcHJvZmlsZS1jYXJkPlxuICAgICAgPC9kaXY+XG5cbiAgICAgIDxkaXYgKm5nSWY9XCIhaXNMb2FkaW5nUHJvZmlsZXMgJiYgIXByb2ZpbGVzLmxlbmd0aFwiIGNsYXNzPVwiY3FhLXRleHQteHMgY3FhLXRleHQtWyM5NEEzQjhdIGNxYS1weS0zIGNxYS1weC0xXCI+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIhaGFzRW52aXJvbm1lbnQ7IGVsc2Ugbm9BdHRhY2htZW50c1wiPlxuICAgICAgICAgIFNldCBhbiBlbnZpcm9ubWVudCBvbiB0aGlzIHRlc3QgY2FzZSB0byBzZWUgaXRzIHRlc3QgZGF0YSBwcm9maWxlcy5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgIDxuZy10ZW1wbGF0ZSAjbm9BdHRhY2htZW50cz5cbiAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwic2VhcmNoVGVybTsgZWxzZSBub1Byb2ZpbGVzQXRBbGxcIj5cbiAgICAgICAgICAgIE5vIHByb2ZpbGVzIG1hdGNoICZsZHF1bzt7eyBzZWFyY2hUZXJtIH19JnJkcXVvOy5cbiAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICA8bmctdGVtcGxhdGUgI25vUHJvZmlsZXNBdEFsbD5ObyB0ZXN0IGRhdGEgcHJvZmlsZXMgYXR0YWNoZWQgdG8gdGhpcyBlbnZpcm9ubWVudCB5ZXQuPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgIDwvZGl2PlxuXG4gICAgICA8ZGl2ICpuZ0lmPVwiaXNMb2FkaW5nUHJvZmlsZXNcIiBjbGFzcz1cImNxYS1mbGV4IGNxYS1mbGV4LWNvbCBjcWEtZ2FwLTJcIiBhcmlhLWJ1c3k9XCJ0cnVlXCIgYXJpYS1sYWJlbD1cIkxvYWRpbmcgdGVzdCBkYXRhIHByb2ZpbGVzXCI+XG4gICAgICAgIDxkaXYgKm5nRm9yPVwibGV0IF8gb2Ygc2tlbGV0b25DYXJkc1wiXG4gICAgICAgICAgICAgY2xhc3M9XCJjcWEtZmxleCBjcWEtZmxleC1jb2wgY3FhLWdhcC0yIGNxYS1weC0zIGNxYS1weS1bMTBweF0gY3FhLXJvdW5kZWQtbGcgY3FhLWJvcmRlciBjcWEtYm9yZGVyLXNvbGlkIGNxYS1ib3JkZXItWyNFMkU4RjBdIGNxYS1iZy13aGl0ZVwiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJjcWEtZmxleCBjcWEtaXRlbXMtY2VudGVyIGNxYS1qdXN0aWZ5LWJldHdlZW4gY3FhLWdhcC0yXCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY3FhLWgtMyBjcWEtdy0xLzIgY3FhLXJvdW5kZWQgY3FhLWJnLVsjRTJFOEYwXSBjcWEtYW5pbWF0ZS1wdWxzZVwiPjwvZGl2PlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNxYS1oLTMgY3FhLXctOCBjcWEtcm91bmRlZCBjcWEtYmctWyNFMkU4RjBdIGNxYS1hbmltYXRlLXB1bHNlXCI+PC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImNxYS1mbGV4IGNxYS1pdGVtcy1jZW50ZXIgY3FhLWp1c3RpZnktYmV0d2VlbiBjcWEtZ2FwLTJcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjcWEtaC0yIGNxYS13LTEvMyBjcWEtcm91bmRlZCBjcWEtYmctWyNFMkU4RjBdIGNxYS1hbmltYXRlLXB1bHNlXCI+PC9kaXY+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY3FhLWgtMyBjcWEtdy0xMiBjcWEtcm91bmRlZC1mdWxsIGNxYS1iZy1bI0UyRThGMF0gY3FhLWFuaW1hdGUtcHVsc2VcIj48L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export {};
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS1saWJyYXJ5LXBhbmVsLm1vZGVscy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWIvdGVzdC1jYXNlLWRldGFpbHMvZGF0YS1saWJyYXJ5LXBhbmVsL2RhdGEtbGlicmFyeS1wYW5lbC5tb2RlbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBpbnRlcmZhY2UgRWxlbWVudENhcmRWbSB7XG4gIGlkOiBudW1iZXIgfCBzdHJpbmc7XG4gIG5hbWU6IHN0cmluZztcbiAgc2NyZWVuOiBzdHJpbmc7XG4gIHVwZGF0ZWRSZWxhdGl2ZTogc3RyaW5nO1xuICBsb2NhdG9yQmFkZ2U6IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBQcm9maWxlQ2FyZFZtIHtcbiAgYXR0YWNobWVudElkOiBudW1iZXIgfCBzdHJpbmc7XG4gIHRlc3REYXRhSWQ6IG51bWJlciB8IHN0cmluZztcbiAgbmFtZTogc3RyaW5nO1xuICByb3dzQ291bnQ6IG51bWJlcjtcbiAgY29sdW1uc0NvdW50OiBudW1iZXI7XG4gIHBlcm1pc3Npb246ICdSTycgfCAnUlcnIHwgbnVsbDtcbiAgYWN0aXZlT25UZXN0Q2FzZTogYm9vbGVhbjtcbn1cblxuZXhwb3J0IHR5cGUgRGF0YUxpYnJhcnlTdWJUYWIgPSAnZWxlbWVudHMnIHwgJ3Byb2ZpbGVzJztcbiJdfQ==
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output, } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
import * as i1 from "../../badge/badge.component";
|
|
4
|
+
import * as i2 from "@angular/common";
|
|
5
|
+
export class ElementCardComponent {
|
|
6
|
+
constructor() {
|
|
7
|
+
this.name = '';
|
|
8
|
+
this.screen = '';
|
|
9
|
+
this.updatedRelative = '';
|
|
10
|
+
this.locatorBadge = '';
|
|
11
|
+
this.selected = false;
|
|
12
|
+
this.cardClick = new EventEmitter();
|
|
13
|
+
}
|
|
14
|
+
onClick() {
|
|
15
|
+
this.cardClick.emit();
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
ElementCardComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: ElementCardComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
19
|
+
ElementCardComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.4.0", type: ElementCardComponent, selector: "cqa-element-card", inputs: { name: "name", screen: "screen", updatedRelative: "updatedRelative", locatorBadge: "locatorBadge", selected: "selected" }, outputs: { cardClick: "cardClick" }, host: { classAttribute: "cqa-ui-root" }, ngImport: i0, template: "<button\n type=\"button\"\n (click)=\"onClick()\"\n [ngClass]=\"selected\n ? 'cqa-border-[#818CF8] cqa-bg-[#EEF2FF] cqa-shadow-[inset_3px_0_0_0_#4F46E5]'\n : 'cqa-border-[#E2E8F0] cqa-bg-white hover:cqa-bg-[#FAFAFF] hover:cqa-border-[#C7D2FE]'\"\n class=\"cqa-relative cqa-flex cqa-flex-col cqa-gap-1 cqa-w-full cqa-px-3 cqa-py-[10px] cqa-rounded-lg cqa-border cqa-border-solid cqa-text-left cqa-cursor-pointer cqa-transition-all cqa-duration-150 focus:cqa-outline-none\">\n <div class=\"cqa-flex cqa-items-center cqa-justify-between cqa-gap-2 cqa-w-full\">\n <span class=\"cqa-flex-1 cqa-min-w-0 cqa-truncate cqa-text-[13px] cqa-font-semibold cqa-text-[#0F172A]\">\n {{ name }}\n </span>\n <cqa-badge\n *ngIf=\"locatorBadge\"\n [label]=\"locatorBadge\"\n size=\"extra-small\"\n variant=\"default\"\n backgroundColor=\"#F1F5F9\"\n textColor=\"#475569\"\n borderColor=\"#E2E8F0\">\n </cqa-badge>\n </div>\n <div class=\"cqa-truncate cqa-text-xs cqa-text-[#64748B]\">Screen: {{ screen }}</div>\n <div *ngIf=\"updatedRelative\" class=\"cqa-text-[11px] cqa-text-[#94A3B8]\">{{ updatedRelative }}</div>\n</button>\n", components: [{ type: i1.BadgeComponent, selector: "cqa-badge", inputs: ["type", "label", "icon", "iconLibrary", "variant", "size", "backgroundColor", "textColor", "borderColor", "iconBackgroundColor", "iconColor", "iconSize", "inlineStyles", "key", "value", "keyTextColor", "valueTextColor", "isLoading", "fullWidth", "centerContent", "title"] }], directives: [{ type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
20
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: ElementCardComponent, decorators: [{
|
|
21
|
+
type: Component,
|
|
22
|
+
args: [{ selector: 'cqa-element-card', host: { class: 'cqa-ui-root' }, changeDetection: ChangeDetectionStrategy.OnPush, template: "<button\n type=\"button\"\n (click)=\"onClick()\"\n [ngClass]=\"selected\n ? 'cqa-border-[#818CF8] cqa-bg-[#EEF2FF] cqa-shadow-[inset_3px_0_0_0_#4F46E5]'\n : 'cqa-border-[#E2E8F0] cqa-bg-white hover:cqa-bg-[#FAFAFF] hover:cqa-border-[#C7D2FE]'\"\n class=\"cqa-relative cqa-flex cqa-flex-col cqa-gap-1 cqa-w-full cqa-px-3 cqa-py-[10px] cqa-rounded-lg cqa-border cqa-border-solid cqa-text-left cqa-cursor-pointer cqa-transition-all cqa-duration-150 focus:cqa-outline-none\">\n <div class=\"cqa-flex cqa-items-center cqa-justify-between cqa-gap-2 cqa-w-full\">\n <span class=\"cqa-flex-1 cqa-min-w-0 cqa-truncate cqa-text-[13px] cqa-font-semibold cqa-text-[#0F172A]\">\n {{ name }}\n </span>\n <cqa-badge\n *ngIf=\"locatorBadge\"\n [label]=\"locatorBadge\"\n size=\"extra-small\"\n variant=\"default\"\n backgroundColor=\"#F1F5F9\"\n textColor=\"#475569\"\n borderColor=\"#E2E8F0\">\n </cqa-badge>\n </div>\n <div class=\"cqa-truncate cqa-text-xs cqa-text-[#64748B]\">Screen: {{ screen }}</div>\n <div *ngIf=\"updatedRelative\" class=\"cqa-text-[11px] cqa-text-[#94A3B8]\">{{ updatedRelative }}</div>\n</button>\n" }]
|
|
23
|
+
}], propDecorators: { name: [{
|
|
24
|
+
type: Input
|
|
25
|
+
}], screen: [{
|
|
26
|
+
type: Input
|
|
27
|
+
}], updatedRelative: [{
|
|
28
|
+
type: Input
|
|
29
|
+
}], locatorBadge: [{
|
|
30
|
+
type: Input
|
|
31
|
+
}], selected: [{
|
|
32
|
+
type: Input
|
|
33
|
+
}], cardClick: [{
|
|
34
|
+
type: Output
|
|
35
|
+
}] } });
|
|
36
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxlbWVudC1jYXJkLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWIvdGVzdC1jYXNlLWRldGFpbHMvZGF0YS1saWJyYXJ5LXBhbmVsL2VsZW1lbnQtY2FyZC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL3Rlc3QtY2FzZS1kZXRhaWxzL2RhdGEtbGlicmFyeS1wYW5lbC9lbGVtZW50LWNhcmQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsWUFBWSxFQUNaLEtBQUssRUFDTCxNQUFNLEdBQ1AsTUFBTSxlQUFlLENBQUM7Ozs7QUFRdkIsTUFBTSxPQUFPLG9CQUFvQjtJQU5qQztRQU9XLFNBQUksR0FBRyxFQUFFLENBQUM7UUFDVixXQUFNLEdBQUcsRUFBRSxDQUFDO1FBQ1osb0JBQWUsR0FBRyxFQUFFLENBQUM7UUFDckIsaUJBQVksR0FBRyxFQUFFLENBQUM7UUFDbEIsYUFBUSxHQUFHLEtBQUssQ0FBQztRQUVoQixjQUFTLEdBQUcsSUFBSSxZQUFZLEVBQVEsQ0FBQztLQUtoRDtJQUhDLE9BQU87UUFDTCxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksRUFBRSxDQUFDO0lBQ3hCLENBQUM7O2lIQVhVLG9CQUFvQjtxR0FBcEIsb0JBQW9CLDBRQ2RqQywwcENBd0JBOzJGRFZhLG9CQUFvQjtrQkFOaEMsU0FBUzsrQkFDRSxrQkFBa0IsUUFFdEIsRUFBRSxLQUFLLEVBQUUsYUFBYSxFQUFFLG1CQUNiLHVCQUF1QixDQUFDLE1BQU07OEJBR3RDLElBQUk7c0JBQVosS0FBSztnQkFDRyxNQUFNO3NCQUFkLEtBQUs7Z0JBQ0csZUFBZTtzQkFBdkIsS0FBSztnQkFDRyxZQUFZO3NCQUFwQixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBRUksU0FBUztzQkFBbEIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDb21wb25lbnQsXG4gIEV2ZW50RW1pdHRlcixcbiAgSW5wdXQsXG4gIE91dHB1dCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2NxYS1lbGVtZW50LWNhcmQnLFxuICB0ZW1wbGF0ZVVybDogJy4vZWxlbWVudC1jYXJkLmNvbXBvbmVudC5odG1sJyxcbiAgaG9zdDogeyBjbGFzczogJ2NxYS11aS1yb290JyB9LFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgRWxlbWVudENhcmRDb21wb25lbnQge1xuICBASW5wdXQoKSBuYW1lID0gJyc7XG4gIEBJbnB1dCgpIHNjcmVlbiA9ICcnO1xuICBASW5wdXQoKSB1cGRhdGVkUmVsYXRpdmUgPSAnJztcbiAgQElucHV0KCkgbG9jYXRvckJhZGdlID0gJyc7XG4gIEBJbnB1dCgpIHNlbGVjdGVkID0gZmFsc2U7XG5cbiAgQE91dHB1dCgpIGNhcmRDbGljayA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcblxuICBvbkNsaWNrKCk6IHZvaWQge1xuICAgIHRoaXMuY2FyZENsaWNrLmVtaXQoKTtcbiAgfVxufVxuIiwiPGJ1dHRvblxuICB0eXBlPVwiYnV0dG9uXCJcbiAgKGNsaWNrKT1cIm9uQ2xpY2soKVwiXG4gIFtuZ0NsYXNzXT1cInNlbGVjdGVkXG4gICAgPyAnY3FhLWJvcmRlci1bIzgxOENGOF0gY3FhLWJnLVsjRUVGMkZGXSBjcWEtc2hhZG93LVtpbnNldF8zcHhfMF8wXzBfIzRGNDZFNV0nXG4gICAgOiAnY3FhLWJvcmRlci1bI0UyRThGMF0gY3FhLWJnLXdoaXRlIGhvdmVyOmNxYS1iZy1bI0ZBRkFGRl0gaG92ZXI6Y3FhLWJvcmRlci1bI0M3RDJGRV0nXCJcbiAgY2xhc3M9XCJjcWEtcmVsYXRpdmUgY3FhLWZsZXggY3FhLWZsZXgtY29sIGNxYS1nYXAtMSBjcWEtdy1mdWxsIGNxYS1weC0zIGNxYS1weS1bMTBweF0gY3FhLXJvdW5kZWQtbGcgY3FhLWJvcmRlciBjcWEtYm9yZGVyLXNvbGlkIGNxYS10ZXh0LWxlZnQgY3FhLWN1cnNvci1wb2ludGVyIGNxYS10cmFuc2l0aW9uLWFsbCBjcWEtZHVyYXRpb24tMTUwIGZvY3VzOmNxYS1vdXRsaW5lLW5vbmVcIj5cbiAgPGRpdiBjbGFzcz1cImNxYS1mbGV4IGNxYS1pdGVtcy1jZW50ZXIgY3FhLWp1c3RpZnktYmV0d2VlbiBjcWEtZ2FwLTIgY3FhLXctZnVsbFwiPlxuICAgIDxzcGFuIGNsYXNzPVwiY3FhLWZsZXgtMSBjcWEtbWluLXctMCBjcWEtdHJ1bmNhdGUgY3FhLXRleHQtWzEzcHhdIGNxYS1mb250LXNlbWlib2xkIGNxYS10ZXh0LVsjMEYxNzJBXVwiPlxuICAgICAge3sgbmFtZSB9fVxuICAgIDwvc3Bhbj5cbiAgICA8Y3FhLWJhZGdlXG4gICAgICAqbmdJZj1cImxvY2F0b3JCYWRnZVwiXG4gICAgICBbbGFiZWxdPVwibG9jYXRvckJhZGdlXCJcbiAgICAgIHNpemU9XCJleHRyYS1zbWFsbFwiXG4gICAgICB2YXJpYW50PVwiZGVmYXVsdFwiXG4gICAgICBiYWNrZ3JvdW5kQ29sb3I9XCIjRjFGNUY5XCJcbiAgICAgIHRleHRDb2xvcj1cIiM0NzU1NjlcIlxuICAgICAgYm9yZGVyQ29sb3I9XCIjRTJFOEYwXCI+XG4gICAgPC9jcWEtYmFkZ2U+XG4gIDwvZGl2PlxuICA8ZGl2IGNsYXNzPVwiY3FhLXRydW5jYXRlIGNxYS10ZXh0LXhzIGNxYS10ZXh0LVsjNjQ3NDhCXVwiPlNjcmVlbjoge3sgc2NyZWVuIH19PC9kaXY+XG4gIDxkaXYgKm5nSWY9XCJ1cGRhdGVkUmVsYXRpdmVcIiBjbGFzcz1cImNxYS10ZXh0LVsxMXB4XSBjcWEtdGV4dC1bIzk0QTNCOF1cIj57eyB1cGRhdGVkUmVsYXRpdmUgfX08L2Rpdj5cbjwvYnV0dG9uPlxuIl19
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import { ChangeDetectionStrategy, Component, Input } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
import * as i1 from "../../badge/badge.component";
|
|
4
|
+
import * as i2 from "@angular/common";
|
|
5
|
+
export class TestDataProfileCardComponent {
|
|
6
|
+
constructor() {
|
|
7
|
+
this.name = '';
|
|
8
|
+
this.rowsCount = 0;
|
|
9
|
+
this.columnsCount = 0;
|
|
10
|
+
this.permission = null;
|
|
11
|
+
this.activeOnTestCase = false;
|
|
12
|
+
}
|
|
13
|
+
get rowsLabel() {
|
|
14
|
+
return this.rowsCount === 1 ? 'row' : 'rows';
|
|
15
|
+
}
|
|
16
|
+
get colsLabel() {
|
|
17
|
+
return this.columnsCount === 1 ? 'col' : 'cols';
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
TestDataProfileCardComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: TestDataProfileCardComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
21
|
+
TestDataProfileCardComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.4.0", type: TestDataProfileCardComponent, selector: "cqa-test-data-profile-card", inputs: { name: "name", rowsCount: "rowsCount", columnsCount: "columnsCount", environmentName: "environmentName", permission: "permission", activeOnTestCase: "activeOnTestCase" }, host: { classAttribute: "cqa-ui-root" }, ngImport: i0, template: "<div class=\"cqa-relative cqa-flex cqa-flex-col cqa-gap-1 cqa-w-full cqa-px-3 cqa-py-[10px] cqa-rounded-lg cqa-border cqa-border-solid cqa-border-[#E2E8F0] cqa-bg-white cqa-text-left\">\n <div class=\"cqa-flex cqa-items-center cqa-justify-between cqa-gap-2 cqa-w-full\">\n <span class=\"cqa-flex-1 cqa-min-w-0 cqa-truncate cqa-text-[13px] cqa-font-semibold cqa-text-[#0F172A]\">\n {{ name }}\n </span>\n <cqa-badge\n *ngIf=\"permission === 'RO'\"\n label=\"RO\"\n size=\"extra-small\"\n variant=\"error\">\n </cqa-badge>\n <cqa-badge\n *ngIf=\"permission === 'RW'\"\n label=\"RW\"\n size=\"extra-small\"\n variant=\"success\">\n </cqa-badge>\n </div>\n <div class=\"cqa-flex cqa-items-center cqa-justify-between cqa-gap-2 cqa-w-full cqa-mt-[2px]\">\n <span class=\"cqa-text-xs cqa-text-[#64748B]\">\n {{ rowsCount }} {{ rowsLabel }} · {{ columnsCount }} {{ colsLabel }}\n </span>\n <span\n *ngIf=\"environmentName\"\n class=\"cqa-flex-shrink-0 cqa-text-[11px] cqa-font-medium cqa-px-2 cqa-py-[2px] cqa-rounded-full cqa-bg-[#EFF6FF] cqa-text-[#1E40AF] cqa-border cqa-border-solid cqa-border-[#DBEAFE]\">\n {{ environmentName }}\n </span>\n </div>\n <div *ngIf=\"activeOnTestCase\" class=\"cqa-mt-1\">\n <span class=\"cqa-inline-block cqa-text-[11px] cqa-font-medium cqa-px-[6px] cqa-py-[2px] cqa-rounded cqa-bg-[#F5F3FF] cqa-text-[#6D28D9] cqa-border cqa-border-solid cqa-border-[#DDD6FE]\">\n Active on this test case\n </span>\n </div>\n</div>\n", components: [{ type: i1.BadgeComponent, selector: "cqa-badge", inputs: ["type", "label", "icon", "iconLibrary", "variant", "size", "backgroundColor", "textColor", "borderColor", "iconBackgroundColor", "iconColor", "iconSize", "inlineStyles", "key", "value", "keyTextColor", "valueTextColor", "isLoading", "fullWidth", "centerContent", "title"] }], directives: [{ type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
22
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: TestDataProfileCardComponent, decorators: [{
|
|
23
|
+
type: Component,
|
|
24
|
+
args: [{ selector: 'cqa-test-data-profile-card', host: { class: 'cqa-ui-root' }, changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"cqa-relative cqa-flex cqa-flex-col cqa-gap-1 cqa-w-full cqa-px-3 cqa-py-[10px] cqa-rounded-lg cqa-border cqa-border-solid cqa-border-[#E2E8F0] cqa-bg-white cqa-text-left\">\n <div class=\"cqa-flex cqa-items-center cqa-justify-between cqa-gap-2 cqa-w-full\">\n <span class=\"cqa-flex-1 cqa-min-w-0 cqa-truncate cqa-text-[13px] cqa-font-semibold cqa-text-[#0F172A]\">\n {{ name }}\n </span>\n <cqa-badge\n *ngIf=\"permission === 'RO'\"\n label=\"RO\"\n size=\"extra-small\"\n variant=\"error\">\n </cqa-badge>\n <cqa-badge\n *ngIf=\"permission === 'RW'\"\n label=\"RW\"\n size=\"extra-small\"\n variant=\"success\">\n </cqa-badge>\n </div>\n <div class=\"cqa-flex cqa-items-center cqa-justify-between cqa-gap-2 cqa-w-full cqa-mt-[2px]\">\n <span class=\"cqa-text-xs cqa-text-[#64748B]\">\n {{ rowsCount }} {{ rowsLabel }} · {{ columnsCount }} {{ colsLabel }}\n </span>\n <span\n *ngIf=\"environmentName\"\n class=\"cqa-flex-shrink-0 cqa-text-[11px] cqa-font-medium cqa-px-2 cqa-py-[2px] cqa-rounded-full cqa-bg-[#EFF6FF] cqa-text-[#1E40AF] cqa-border cqa-border-solid cqa-border-[#DBEAFE]\">\n {{ environmentName }}\n </span>\n </div>\n <div *ngIf=\"activeOnTestCase\" class=\"cqa-mt-1\">\n <span class=\"cqa-inline-block cqa-text-[11px] cqa-font-medium cqa-px-[6px] cqa-py-[2px] cqa-rounded cqa-bg-[#F5F3FF] cqa-text-[#6D28D9] cqa-border cqa-border-solid cqa-border-[#DDD6FE]\">\n Active on this test case\n </span>\n </div>\n</div>\n" }]
|
|
25
|
+
}], propDecorators: { name: [{
|
|
26
|
+
type: Input
|
|
27
|
+
}], rowsCount: [{
|
|
28
|
+
type: Input
|
|
29
|
+
}], columnsCount: [{
|
|
30
|
+
type: Input
|
|
31
|
+
}], environmentName: [{
|
|
32
|
+
type: Input
|
|
33
|
+
}], permission: [{
|
|
34
|
+
type: Input
|
|
35
|
+
}], activeOnTestCase: [{
|
|
36
|
+
type: Input
|
|
37
|
+
}] } });
|
|
38
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVzdC1kYXRhLXByb2ZpbGUtY2FyZC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL3Rlc3QtY2FzZS1kZXRhaWxzL2RhdGEtbGlicmFyeS1wYW5lbC90ZXN0LWRhdGEtcHJvZmlsZS1jYXJkLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWIvdGVzdC1jYXNlLWRldGFpbHMvZGF0YS1saWJyYXJ5LXBhbmVsL3Rlc3QtZGF0YS1wcm9maWxlLWNhcmQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7Ozs7QUFRMUUsTUFBTSxPQUFPLDRCQUE0QjtJQU56QztRQU9XLFNBQUksR0FBRyxFQUFFLENBQUM7UUFDVixjQUFTLEdBQUcsQ0FBQyxDQUFDO1FBQ2QsaUJBQVksR0FBRyxDQUFDLENBQUM7UUFFakIsZUFBVSxHQUF3QixJQUFJLENBQUM7UUFDdkMscUJBQWdCLEdBQUcsS0FBSyxDQUFDO0tBU25DO0lBUEMsSUFBSSxTQUFTO1FBQ1gsT0FBTyxJQUFJLENBQUMsU0FBUyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUM7SUFDL0MsQ0FBQztJQUVELElBQUksU0FBUztRQUNYLE9BQU8sSUFBSSxDQUFDLFlBQVksS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDO0lBQ2xELENBQUM7O3lIQWRVLDRCQUE0Qjs2R0FBNUIsNEJBQTRCLCtSQ1J6QywraERBa0NBOzJGRDFCYSw0QkFBNEI7a0JBTnhDLFNBQVM7K0JBQ0UsNEJBQTRCLFFBRWhDLEVBQUUsS0FBSyxFQUFFLGFBQWEsRUFBRSxtQkFDYix1QkFBdUIsQ0FBQyxNQUFNOzhCQUd0QyxJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFDRyxZQUFZO3NCQUFwQixLQUFLO2dCQUNHLGVBQWU7c0JBQXZCLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxnQkFBZ0I7c0JBQXhCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdjcWEtdGVzdC1kYXRhLXByb2ZpbGUtY2FyZCcsXG4gIHRlbXBsYXRlVXJsOiAnLi90ZXN0LWRhdGEtcHJvZmlsZS1jYXJkLmNvbXBvbmVudC5odG1sJyxcbiAgaG9zdDogeyBjbGFzczogJ2NxYS11aS1yb290JyB9LFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgVGVzdERhdGFQcm9maWxlQ2FyZENvbXBvbmVudCB7XG4gIEBJbnB1dCgpIG5hbWUgPSAnJztcbiAgQElucHV0KCkgcm93c0NvdW50ID0gMDtcbiAgQElucHV0KCkgY29sdW1uc0NvdW50ID0gMDtcbiAgQElucHV0KCkgZW52aXJvbm1lbnROYW1lPzogc3RyaW5nO1xuICBASW5wdXQoKSBwZXJtaXNzaW9uPzogJ1JPJyB8ICdSVycgfCBudWxsID0gbnVsbDtcbiAgQElucHV0KCkgYWN0aXZlT25UZXN0Q2FzZSA9IGZhbHNlO1xuXG4gIGdldCByb3dzTGFiZWwoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5yb3dzQ291bnQgPT09IDEgPyAncm93JyA6ICdyb3dzJztcbiAgfVxuXG4gIGdldCBjb2xzTGFiZWwoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5jb2x1bW5zQ291bnQgPT09IDEgPyAnY29sJyA6ICdjb2xzJztcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cImNxYS1yZWxhdGl2ZSBjcWEtZmxleCBjcWEtZmxleC1jb2wgY3FhLWdhcC0xIGNxYS13LWZ1bGwgY3FhLXB4LTMgY3FhLXB5LVsxMHB4XSBjcWEtcm91bmRlZC1sZyBjcWEtYm9yZGVyIGNxYS1ib3JkZXItc29saWQgY3FhLWJvcmRlci1bI0UyRThGMF0gY3FhLWJnLXdoaXRlIGNxYS10ZXh0LWxlZnRcIj5cbiAgPGRpdiBjbGFzcz1cImNxYS1mbGV4IGNxYS1pdGVtcy1jZW50ZXIgY3FhLWp1c3RpZnktYmV0d2VlbiBjcWEtZ2FwLTIgY3FhLXctZnVsbFwiPlxuICAgIDxzcGFuIGNsYXNzPVwiY3FhLWZsZXgtMSBjcWEtbWluLXctMCBjcWEtdHJ1bmNhdGUgY3FhLXRleHQtWzEzcHhdIGNxYS1mb250LXNlbWlib2xkIGNxYS10ZXh0LVsjMEYxNzJBXVwiPlxuICAgICAge3sgbmFtZSB9fVxuICAgIDwvc3Bhbj5cbiAgICA8Y3FhLWJhZGdlXG4gICAgICAqbmdJZj1cInBlcm1pc3Npb24gPT09ICdSTydcIlxuICAgICAgbGFiZWw9XCJST1wiXG4gICAgICBzaXplPVwiZXh0cmEtc21hbGxcIlxuICAgICAgdmFyaWFudD1cImVycm9yXCI+XG4gICAgPC9jcWEtYmFkZ2U+XG4gICAgPGNxYS1iYWRnZVxuICAgICAgKm5nSWY9XCJwZXJtaXNzaW9uID09PSAnUlcnXCJcbiAgICAgIGxhYmVsPVwiUldcIlxuICAgICAgc2l6ZT1cImV4dHJhLXNtYWxsXCJcbiAgICAgIHZhcmlhbnQ9XCJzdWNjZXNzXCI+XG4gICAgPC9jcWEtYmFkZ2U+XG4gIDwvZGl2PlxuICA8ZGl2IGNsYXNzPVwiY3FhLWZsZXggY3FhLWl0ZW1zLWNlbnRlciBjcWEtanVzdGlmeS1iZXR3ZWVuIGNxYS1nYXAtMiBjcWEtdy1mdWxsIGNxYS1tdC1bMnB4XVwiPlxuICAgIDxzcGFuIGNsYXNzPVwiY3FhLXRleHQteHMgY3FhLXRleHQtWyM2NDc0OEJdXCI+XG4gICAgICB7eyByb3dzQ291bnQgfX0ge3sgcm93c0xhYmVsIH19ICZtaWRkb3Q7IHt7IGNvbHVtbnNDb3VudCB9fSB7eyBjb2xzTGFiZWwgfX1cbiAgICA8L3NwYW4+XG4gICAgPHNwYW5cbiAgICAgICpuZ0lmPVwiZW52aXJvbm1lbnROYW1lXCJcbiAgICAgIGNsYXNzPVwiY3FhLWZsZXgtc2hyaW5rLTAgY3FhLXRleHQtWzExcHhdIGNxYS1mb250LW1lZGl1bSBjcWEtcHgtMiBjcWEtcHktWzJweF0gY3FhLXJvdW5kZWQtZnVsbCBjcWEtYmctWyNFRkY2RkZdIGNxYS10ZXh0LVsjMUU0MEFGXSBjcWEtYm9yZGVyIGNxYS1ib3JkZXItc29saWQgY3FhLWJvcmRlci1bI0RCRUFGRV1cIj5cbiAgICAgIHt7IGVudmlyb25tZW50TmFtZSB9fVxuICAgIDwvc3Bhbj5cbiAgPC9kaXY+XG4gIDxkaXYgKm5nSWY9XCJhY3RpdmVPblRlc3RDYXNlXCIgY2xhc3M9XCJjcWEtbXQtMVwiPlxuICAgIDxzcGFuIGNsYXNzPVwiY3FhLWlubGluZS1ibG9jayBjcWEtdGV4dC1bMTFweF0gY3FhLWZvbnQtbWVkaXVtIGNxYS1weC1bNnB4XSBjcWEtcHktWzJweF0gY3FhLXJvdW5kZWQgY3FhLWJnLVsjRjVGM0ZGXSBjcWEtdGV4dC1bIzZEMjhEOV0gY3FhLWJvcmRlciBjcWEtYm9yZGVyLXNvbGlkIGNxYS1ib3JkZXItWyNEREQ2RkVdXCI+XG4gICAgICBBY3RpdmUgb24gdGhpcyB0ZXN0IGNhc2VcbiAgICA8L3NwYW4+XG4gIDwvZGl2PlxuPC9kaXY+XG4iXX0=
|