@cqa-lib/cqa-ui 1.1.451 → 1.1.453
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/execution-screen/breakpoints-modal/breakpoints-modal.component.mjs +2 -2
- package/esm2020/lib/execution-screen/condition-debug-step/condition-debug-step.component.mjs +25 -23
- package/esm2020/lib/execution-screen/jump-to-step-modal/jump-to-step-modal.component.mjs +84 -20
- package/esm2020/lib/execution-screen/session-changes-modal/session-changes-modal.component.mjs +2 -2
- package/esm2020/lib/execution-screen/step-renderer/step-renderer.component.mjs +27 -8
- package/esm2020/lib/questionnaire-list/questionnaire-list.component.mjs +3 -3
- package/esm2020/lib/version-history/new-version-history-detail/new-version-history-detail.component.mjs +3 -3
- package/esm2020/lib/version-history/version-history-list/version-history-list.component.mjs +6 -3
- package/esm2020/lib/version-history/version-history-restore-confirm/version-history-restore-confirm.component.mjs +9 -3
- package/fesm2015/cqa-lib-cqa-ui.mjs +159 -63
- package/fesm2015/cqa-lib-cqa-ui.mjs.map +1 -1
- package/fesm2020/cqa-lib-cqa-ui.mjs +152 -58
- package/fesm2020/cqa-lib-cqa-ui.mjs.map +1 -1
- package/lib/execution-screen/jump-to-step-modal/jump-to-step-modal.component.d.ts +6 -0
- package/lib/execution-screen/session-changes-modal/session-changes-modal.component.d.ts +2 -0
- package/lib/version-history/version-history-list/version-history-list.component.d.ts +7 -1
- package/lib/version-history/version-history-restore-confirm/version-history-restore-confirm.component.d.ts +2 -0
- package/package.json +1 -1
- package/styles.css +1 -1
|
@@ -14,15 +14,16 @@ export class VersionHistoryListComponent {
|
|
|
14
14
|
this.getAuthorInitialsFn = () => '';
|
|
15
15
|
this.getAuthorLabelFn = () => '';
|
|
16
16
|
this.getChangeTypeBadgeFn = () => ({ backgroundColor: '#F2F4F7', textColor: '#344054', borderColor: '#E4E7EC' });
|
|
17
|
+
this.getChangeSummaryBadgeFn = (v) => ({ label: v?.changeSummary || '', backgroundColor: '#F2F4F7', textColor: '#344054', borderColor: '#E4E7EC' });
|
|
17
18
|
this.versionSelected = new EventEmitter();
|
|
18
19
|
this.listScroll = new EventEmitter();
|
|
19
20
|
}
|
|
20
21
|
}
|
|
21
22
|
VersionHistoryListComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: VersionHistoryListComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
22
|
-
VersionHistoryListComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.4.0", type: VersionHistoryListComponent, selector: "cqa-version-history-list", inputs: { versions: "versions", selectedVersionId: "selectedVersionId", currentVersionId: "currentVersionId", isLoadingList: "isLoadingList", isLoadingMore: "isLoadingMore", emptyStateConfig: "emptyStateConfig", getRelativeTimeFn: "getRelativeTimeFn", getAuthorInitialsFn: "getAuthorInitialsFn", getAuthorLabelFn: "getAuthorLabelFn", getChangeTypeBadgeFn: "getChangeTypeBadgeFn" }, outputs: { versionSelected: "versionSelected", listScroll: "listScroll" }, ngImport: i0, template: "<div class=\"cqa-vh-list-container\" (scroll)=\"listScroll.emit($event)\">\n <div class=\"d-flex align-items-center justify-content-between fz-14 fw-semi-bold cqa-vh-list-header\">\n {{ versions.length }} Versions\n </div>\n\n <div *ngIf=\"isLoadingList\" class=\"cqa-vh-list-skeleton\">\n <div *ngFor=\"let i of [1,2,3,4]\" class=\"cqa-vh-list-skeleton-row\">\n <div class=\"animated-background rounded-circle cqa-vh-list-skeleton-dot\"></div>\n <div style=\"flex: 1;\">\n <div class=\"animated-background\" style=\"height: 14px; width: 50%; border-radius: 4px; margin-bottom: 10px;\"></div>\n <div class=\"animated-background\" style=\"height: 12px; width: 80%; border-radius: 4px; margin-bottom: 10px;\"></div>\n <div class=\"animated-background\" style=\"height: 12px; width: 45%; border-radius: 4px;\"></div>\n </div>\n </div>\n </div>\n\n <ng-container *ngIf=\"!isLoadingList\">\n <div *ngIf=\"!versions.length\" class=\"cqa-vh-list-empty\">\n <cqa-empty-state [title]=\"emptyStateConfig?.title\" [description]=\"emptyStateConfig?.description\"\n [imageUrl]=\"emptyStateConfig?.imageUrl\"></cqa-empty-state>\n </div>\n <div class=\"cqa-vh-list-body\">\n <div\n *ngFor=\"let v of versions\"\n (click)=\"versionSelected.emit(v.id)\"\n class=\"cqa-vh-list-item\"\n [class.cqa-vh-list-item--selected]=\"v.id === selectedVersionId\">\n <div class=\"d-flex align-items-start\" style=\"gap: 12px;\">\n <div style=\"padding-top: 3px; flex-shrink: 0;\">\n <span class=\"cqa-vh-list-item-radio\"\n [class.cqa-vh-list-item-radio--selected]=\"v.id === selectedVersionId\">\n <span *ngIf=\"v.id === selectedVersionId\" class=\"cqa-vh-list-item-radio-dot\"></span>\n </span>\n </div>\n <div style=\"flex: 1; min-width: 0;\">\n <div class=\"d-flex align-items-center justify-content-between\" style=\"margin-bottom: 4px;\">\n <div class=\"d-flex align-items-center\" style=\"gap: 6px;\">\n <span class=\"cqa-vh-list-item-version\"\n [class.cqa-vh-list-item-version--selected]=\"v.id === selectedVersionId\">\n v{{ v.versionNumber }}\n </span>\n <cqa-badge *ngIf=\"v.id === currentVersionId\" label=\"Current\" size=\"extra-small\" variant=\"info\"\n backgroundColor=\"#EFF4FF\" textColor=\"#3f43ee\" borderColor=\"#C7D7FE\"></cqa-badge>\n </div>\n <span class=\"cqa-vh-list-item-time\">{{ getRelativeTimeFn(v.createdDate) }}</span>\n </div>\n\n <div *ngIf=\"v.changeSummary\" class=\"cqa-vh-list-item-summary\">\n
|
|
23
|
+
VersionHistoryListComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.4.0", type: VersionHistoryListComponent, selector: "cqa-version-history-list", inputs: { versions: "versions", selectedVersionId: "selectedVersionId", currentVersionId: "currentVersionId", isLoadingList: "isLoadingList", isLoadingMore: "isLoadingMore", emptyStateConfig: "emptyStateConfig", getRelativeTimeFn: "getRelativeTimeFn", getAuthorInitialsFn: "getAuthorInitialsFn", getAuthorLabelFn: "getAuthorLabelFn", getChangeTypeBadgeFn: "getChangeTypeBadgeFn", getChangeSummaryBadgeFn: "getChangeSummaryBadgeFn" }, outputs: { versionSelected: "versionSelected", listScroll: "listScroll" }, ngImport: i0, template: "<div class=\"cqa-vh-list-container\" (scroll)=\"listScroll.emit($event)\">\n <div class=\"d-flex align-items-center justify-content-between fz-14 fw-semi-bold cqa-vh-list-header\">\n {{ versions.length }} Versions\n </div>\n\n <div *ngIf=\"isLoadingList\" class=\"cqa-vh-list-skeleton\">\n <div *ngFor=\"let i of [1,2,3,4]\" class=\"cqa-vh-list-skeleton-row\">\n <div class=\"animated-background rounded-circle cqa-vh-list-skeleton-dot\"></div>\n <div style=\"flex: 1;\">\n <div class=\"animated-background\" style=\"height: 14px; width: 50%; border-radius: 4px; margin-bottom: 10px;\"></div>\n <div class=\"animated-background\" style=\"height: 12px; width: 80%; border-radius: 4px; margin-bottom: 10px;\"></div>\n <div class=\"animated-background\" style=\"height: 12px; width: 45%; border-radius: 4px;\"></div>\n </div>\n </div>\n </div>\n\n <ng-container *ngIf=\"!isLoadingList\">\n <div *ngIf=\"!versions.length\" class=\"cqa-vh-list-empty\">\n <cqa-empty-state [title]=\"emptyStateConfig?.title\" [description]=\"emptyStateConfig?.description\"\n [imageUrl]=\"emptyStateConfig?.imageUrl\"></cqa-empty-state>\n </div>\n <div class=\"cqa-vh-list-body\">\n <div\n *ngFor=\"let v of versions\"\n (click)=\"versionSelected.emit(v.id)\"\n class=\"cqa-vh-list-item\"\n [class.cqa-vh-list-item--selected]=\"v.id === selectedVersionId\">\n <div class=\"d-flex align-items-start\" style=\"gap: 12px;\">\n <div style=\"padding-top: 3px; flex-shrink: 0;\">\n <span class=\"cqa-vh-list-item-radio\"\n [class.cqa-vh-list-item-radio--selected]=\"v.id === selectedVersionId\">\n <span *ngIf=\"v.id === selectedVersionId\" class=\"cqa-vh-list-item-radio-dot\"></span>\n </span>\n </div>\n <div style=\"flex: 1; min-width: 0;\">\n <div class=\"d-flex align-items-center justify-content-between\" style=\"margin-bottom: 4px;\">\n <div class=\"d-flex align-items-center\" style=\"gap: 6px;\">\n <span class=\"cqa-vh-list-item-version\"\n [class.cqa-vh-list-item-version--selected]=\"v.id === selectedVersionId\">\n v{{ v.versionNumber }}\n </span>\n <cqa-badge *ngIf=\"v.id === currentVersionId\" label=\"Current\" size=\"extra-small\" variant=\"info\"\n backgroundColor=\"#EFF4FF\" textColor=\"#3f43ee\" borderColor=\"#C7D7FE\"></cqa-badge>\n </div>\n <span class=\"cqa-vh-list-item-time\">{{ getRelativeTimeFn(v.createdDate) }}</span>\n </div>\n\n <div *ngIf=\"v.changeSummary\" class=\"cqa-vh-list-item-summary\">\n <ng-container *ngIf=\"getChangeSummaryBadgeFn(v) as badge\">\n <cqa-badge\n [label]=\"badge.label\"\n size=\"extra-small\"\n [backgroundColor]=\"badge.backgroundColor\"\n [textColor]=\"badge.textColor\"\n [borderColor]=\"badge.borderColor\">\n </cqa-badge>\n </ng-container>\n </div>\n\n <div class=\"d-flex align-items-center\" style=\"gap: 8px; margin-top: 4px;\">\n <span class=\"cqa-vh-list-item-avatar\">{{ getAuthorInitialsFn(v) }}</span>\n <span class=\"cqa-vh-list-item-author\">{{ getAuthorLabelFn(v) }}</span>\n </div>\n </div>\n </div>\n </div>\n\n <div *ngIf=\"isLoadingMore\" class=\"cqa-vh-list-loading-more\">\n Loading more...\n </div>\n </div>\n </ng-container>\n</div>\n", components: [{ type: i1.EmptyStateComponent, selector: "cqa-empty-state", inputs: ["preset", "imageUrl", "title", "description", "actions"], outputs: ["actionClick"] }, { 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", "fullWidth", "centerContent", "title"] }], directives: [{ type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }] });
|
|
23
24
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: VersionHistoryListComponent, decorators: [{
|
|
24
25
|
type: Component,
|
|
25
|
-
args: [{ selector: 'cqa-version-history-list', template: "<div class=\"cqa-vh-list-container\" (scroll)=\"listScroll.emit($event)\">\n <div class=\"d-flex align-items-center justify-content-between fz-14 fw-semi-bold cqa-vh-list-header\">\n {{ versions.length }} Versions\n </div>\n\n <div *ngIf=\"isLoadingList\" class=\"cqa-vh-list-skeleton\">\n <div *ngFor=\"let i of [1,2,3,4]\" class=\"cqa-vh-list-skeleton-row\">\n <div class=\"animated-background rounded-circle cqa-vh-list-skeleton-dot\"></div>\n <div style=\"flex: 1;\">\n <div class=\"animated-background\" style=\"height: 14px; width: 50%; border-radius: 4px; margin-bottom: 10px;\"></div>\n <div class=\"animated-background\" style=\"height: 12px; width: 80%; border-radius: 4px; margin-bottom: 10px;\"></div>\n <div class=\"animated-background\" style=\"height: 12px; width: 45%; border-radius: 4px;\"></div>\n </div>\n </div>\n </div>\n\n <ng-container *ngIf=\"!isLoadingList\">\n <div *ngIf=\"!versions.length\" class=\"cqa-vh-list-empty\">\n <cqa-empty-state [title]=\"emptyStateConfig?.title\" [description]=\"emptyStateConfig?.description\"\n [imageUrl]=\"emptyStateConfig?.imageUrl\"></cqa-empty-state>\n </div>\n <div class=\"cqa-vh-list-body\">\n <div\n *ngFor=\"let v of versions\"\n (click)=\"versionSelected.emit(v.id)\"\n class=\"cqa-vh-list-item\"\n [class.cqa-vh-list-item--selected]=\"v.id === selectedVersionId\">\n <div class=\"d-flex align-items-start\" style=\"gap: 12px;\">\n <div style=\"padding-top: 3px; flex-shrink: 0;\">\n <span class=\"cqa-vh-list-item-radio\"\n [class.cqa-vh-list-item-radio--selected]=\"v.id === selectedVersionId\">\n <span *ngIf=\"v.id === selectedVersionId\" class=\"cqa-vh-list-item-radio-dot\"></span>\n </span>\n </div>\n <div style=\"flex: 1; min-width: 0;\">\n <div class=\"d-flex align-items-center justify-content-between\" style=\"margin-bottom: 4px;\">\n <div class=\"d-flex align-items-center\" style=\"gap: 6px;\">\n <span class=\"cqa-vh-list-item-version\"\n [class.cqa-vh-list-item-version--selected]=\"v.id === selectedVersionId\">\n v{{ v.versionNumber }}\n </span>\n <cqa-badge *ngIf=\"v.id === currentVersionId\" label=\"Current\" size=\"extra-small\" variant=\"info\"\n backgroundColor=\"#EFF4FF\" textColor=\"#3f43ee\" borderColor=\"#C7D7FE\"></cqa-badge>\n </div>\n <span class=\"cqa-vh-list-item-time\">{{ getRelativeTimeFn(v.createdDate) }}</span>\n </div>\n\n <div *ngIf=\"v.changeSummary\" class=\"cqa-vh-list-item-summary\">\n
|
|
26
|
+
args: [{ selector: 'cqa-version-history-list', template: "<div class=\"cqa-vh-list-container\" (scroll)=\"listScroll.emit($event)\">\n <div class=\"d-flex align-items-center justify-content-between fz-14 fw-semi-bold cqa-vh-list-header\">\n {{ versions.length }} Versions\n </div>\n\n <div *ngIf=\"isLoadingList\" class=\"cqa-vh-list-skeleton\">\n <div *ngFor=\"let i of [1,2,3,4]\" class=\"cqa-vh-list-skeleton-row\">\n <div class=\"animated-background rounded-circle cqa-vh-list-skeleton-dot\"></div>\n <div style=\"flex: 1;\">\n <div class=\"animated-background\" style=\"height: 14px; width: 50%; border-radius: 4px; margin-bottom: 10px;\"></div>\n <div class=\"animated-background\" style=\"height: 12px; width: 80%; border-radius: 4px; margin-bottom: 10px;\"></div>\n <div class=\"animated-background\" style=\"height: 12px; width: 45%; border-radius: 4px;\"></div>\n </div>\n </div>\n </div>\n\n <ng-container *ngIf=\"!isLoadingList\">\n <div *ngIf=\"!versions.length\" class=\"cqa-vh-list-empty\">\n <cqa-empty-state [title]=\"emptyStateConfig?.title\" [description]=\"emptyStateConfig?.description\"\n [imageUrl]=\"emptyStateConfig?.imageUrl\"></cqa-empty-state>\n </div>\n <div class=\"cqa-vh-list-body\">\n <div\n *ngFor=\"let v of versions\"\n (click)=\"versionSelected.emit(v.id)\"\n class=\"cqa-vh-list-item\"\n [class.cqa-vh-list-item--selected]=\"v.id === selectedVersionId\">\n <div class=\"d-flex align-items-start\" style=\"gap: 12px;\">\n <div style=\"padding-top: 3px; flex-shrink: 0;\">\n <span class=\"cqa-vh-list-item-radio\"\n [class.cqa-vh-list-item-radio--selected]=\"v.id === selectedVersionId\">\n <span *ngIf=\"v.id === selectedVersionId\" class=\"cqa-vh-list-item-radio-dot\"></span>\n </span>\n </div>\n <div style=\"flex: 1; min-width: 0;\">\n <div class=\"d-flex align-items-center justify-content-between\" style=\"margin-bottom: 4px;\">\n <div class=\"d-flex align-items-center\" style=\"gap: 6px;\">\n <span class=\"cqa-vh-list-item-version\"\n [class.cqa-vh-list-item-version--selected]=\"v.id === selectedVersionId\">\n v{{ v.versionNumber }}\n </span>\n <cqa-badge *ngIf=\"v.id === currentVersionId\" label=\"Current\" size=\"extra-small\" variant=\"info\"\n backgroundColor=\"#EFF4FF\" textColor=\"#3f43ee\" borderColor=\"#C7D7FE\"></cqa-badge>\n </div>\n <span class=\"cqa-vh-list-item-time\">{{ getRelativeTimeFn(v.createdDate) }}</span>\n </div>\n\n <div *ngIf=\"v.changeSummary\" class=\"cqa-vh-list-item-summary\">\n <ng-container *ngIf=\"getChangeSummaryBadgeFn(v) as badge\">\n <cqa-badge\n [label]=\"badge.label\"\n size=\"extra-small\"\n [backgroundColor]=\"badge.backgroundColor\"\n [textColor]=\"badge.textColor\"\n [borderColor]=\"badge.borderColor\">\n </cqa-badge>\n </ng-container>\n </div>\n\n <div class=\"d-flex align-items-center\" style=\"gap: 8px; margin-top: 4px;\">\n <span class=\"cqa-vh-list-item-avatar\">{{ getAuthorInitialsFn(v) }}</span>\n <span class=\"cqa-vh-list-item-author\">{{ getAuthorLabelFn(v) }}</span>\n </div>\n </div>\n </div>\n </div>\n\n <div *ngIf=\"isLoadingMore\" class=\"cqa-vh-list-loading-more\">\n Loading more...\n </div>\n </div>\n </ng-container>\n</div>\n", styles: [] }]
|
|
26
27
|
}], propDecorators: { versions: [{
|
|
27
28
|
type: Input
|
|
28
29
|
}], selectedVersionId: [{
|
|
@@ -43,9 +44,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImpor
|
|
|
43
44
|
type: Input
|
|
44
45
|
}], getChangeTypeBadgeFn: [{
|
|
45
46
|
type: Input
|
|
47
|
+
}], getChangeSummaryBadgeFn: [{
|
|
48
|
+
type: Input
|
|
46
49
|
}], versionSelected: [{
|
|
47
50
|
type: Output
|
|
48
51
|
}], listScroll: [{
|
|
49
52
|
type: Output
|
|
50
53
|
}] } });
|
|
51
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
54
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVyc2lvbi1oaXN0b3J5LWxpc3QuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi92ZXJzaW9uLWhpc3RvcnkvdmVyc2lvbi1oaXN0b3J5LWxpc3QvdmVyc2lvbi1oaXN0b3J5LWxpc3QuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi92ZXJzaW9uLWhpc3RvcnkvdmVyc2lvbi1oaXN0b3J5LWxpc3QvdmVyc2lvbi1oaXN0b3J5LWxpc3QuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQzs7Ozs7QUFPdkUsTUFBTSxPQUFPLDJCQUEyQjtJQUx4QztRQU1XLGFBQVEsR0FBVSxFQUFFLENBQUM7UUFDckIsc0JBQWlCLEdBQWtCLElBQUksQ0FBQztRQUN4QyxxQkFBZ0IsR0FBa0IsSUFBSSxDQUFDO1FBQ3ZDLGtCQUFhLEdBQUcsS0FBSyxDQUFDO1FBQ3RCLGtCQUFhLEdBQUcsS0FBSyxDQUFDO1FBR3RCLHNCQUFpQixHQUFnQyxHQUFHLEVBQUUsQ0FBQyxFQUFFLENBQUM7UUFDMUQsd0JBQW1CLEdBQTZCLEdBQUcsRUFBRSxDQUFDLEVBQUUsQ0FBQztRQUN6RCxxQkFBZ0IsR0FBNkIsR0FBRyxFQUFFLENBQUMsRUFBRSxDQUFDO1FBQ3RELHlCQUFvQixHQUMzQixHQUFHLEVBQUUsQ0FBQyxDQUFDLEVBQUUsZUFBZSxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUUsQ0FBQyxDQUFDO1FBQzlFLDRCQUF1QixHQUM5QixDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEtBQUssRUFBRSxDQUFDLEVBQUUsYUFBYSxJQUFJLEVBQUUsRUFBRSxlQUFlLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsV0FBVyxFQUFFLFNBQVMsRUFBRSxDQUFDLENBQUM7UUFFN0csb0JBQWUsR0FBRyxJQUFJLFlBQVksRUFBVSxDQUFDO1FBQzdDLGVBQVUsR0FBRyxJQUFJLFlBQVksRUFBUyxDQUFDO0tBQ2xEOzt3SEFsQlksMkJBQTJCOzRHQUEzQiwyQkFBMkIsNmpCQ1B4QywybUhBeUVBOzJGRGxFYSwyQkFBMkI7a0JBTHZDLFNBQVM7K0JBQ0UsMEJBQTBCOzhCQUszQixRQUFRO3NCQUFoQixLQUFLO2dCQUNHLGlCQUFpQjtzQkFBekIsS0FBSztnQkFDRyxnQkFBZ0I7c0JBQXhCLEtBQUs7Z0JBQ0csYUFBYTtzQkFBckIsS0FBSztnQkFDRyxhQUFhO3NCQUFyQixLQUFLO2dCQUNHLGdCQUFnQjtzQkFBeEIsS0FBSztnQkFFRyxpQkFBaUI7c0JBQXpCLEtBQUs7Z0JBQ0csbUJBQW1CO3NCQUEzQixLQUFLO2dCQUNHLGdCQUFnQjtzQkFBeEIsS0FBSztnQkFDRyxvQkFBb0I7c0JBQTVCLEtBQUs7Z0JBRUcsdUJBQXVCO3NCQUEvQixLQUFLO2dCQUdJLGVBQWU7c0JBQXhCLE1BQU07Z0JBQ0csVUFBVTtzQkFBbkIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2NxYS12ZXJzaW9uLWhpc3RvcnktbGlzdCcsXG4gIHRlbXBsYXRlVXJsOiAnLi92ZXJzaW9uLWhpc3RvcnktbGlzdC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogW11cbn0pXG5leHBvcnQgY2xhc3MgVmVyc2lvbkhpc3RvcnlMaXN0Q29tcG9uZW50IHtcbiAgQElucHV0KCkgdmVyc2lvbnM6IGFueVtdID0gW107XG4gIEBJbnB1dCgpIHNlbGVjdGVkVmVyc2lvbklkOiBudW1iZXIgfCBudWxsID0gbnVsbDtcbiAgQElucHV0KCkgY3VycmVudFZlcnNpb25JZDogbnVtYmVyIHwgbnVsbCA9IG51bGw7XG4gIEBJbnB1dCgpIGlzTG9hZGluZ0xpc3QgPSBmYWxzZTtcbiAgQElucHV0KCkgaXNMb2FkaW5nTW9yZSA9IGZhbHNlO1xuICBASW5wdXQoKSBlbXB0eVN0YXRlQ29uZmlnOiBhbnk7XG5cbiAgQElucHV0KCkgZ2V0UmVsYXRpdmVUaW1lRm46IChlcG9jaE1zOiBudW1iZXIpID0+IHN0cmluZyA9ICgpID0+ICcnO1xuICBASW5wdXQoKSBnZXRBdXRob3JJbml0aWFsc0ZuOiAodmVyc2lvbjogYW55KSA9PiBzdHJpbmcgPSAoKSA9PiAnJztcbiAgQElucHV0KCkgZ2V0QXV0aG9yTGFiZWxGbjogKHZlcnNpb246IGFueSkgPT4gc3RyaW5nID0gKCkgPT4gJyc7XG4gIEBJbnB1dCgpIGdldENoYW5nZVR5cGVCYWRnZUZuOiAoY2hhbmdlVHlwZTogc3RyaW5nKSA9PiB7IGJhY2tncm91bmRDb2xvcjogc3RyaW5nOyB0ZXh0Q29sb3I6IHN0cmluZzsgYm9yZGVyQ29sb3I6IHN0cmluZyB9ID1cbiAgICAoKSA9PiAoeyBiYWNrZ3JvdW5kQ29sb3I6ICcjRjJGNEY3JywgdGV4dENvbG9yOiAnIzM0NDA1NCcsIGJvcmRlckNvbG9yOiAnI0U0RTdFQycgfSk7XG4gIEBJbnB1dCgpIGdldENoYW5nZVN1bW1hcnlCYWRnZUZuOiAodmVyc2lvbjogYW55KSA9PiB7IGxhYmVsOiBzdHJpbmc7IGJhY2tncm91bmRDb2xvcjogc3RyaW5nOyB0ZXh0Q29sb3I6IHN0cmluZzsgYm9yZGVyQ29sb3I6IHN0cmluZyB9ID1cbiAgICAodikgPT4gKHsgbGFiZWw6IHY/LmNoYW5nZVN1bW1hcnkgfHwgJycsIGJhY2tncm91bmRDb2xvcjogJyNGMkY0RjcnLCB0ZXh0Q29sb3I6ICcjMzQ0MDU0JywgYm9yZGVyQ29sb3I6ICcjRTRFN0VDJyB9KTtcblxuICBAT3V0cHV0KCkgdmVyc2lvblNlbGVjdGVkID0gbmV3IEV2ZW50RW1pdHRlcjxudW1iZXI+KCk7XG4gIEBPdXRwdXQoKSBsaXN0U2Nyb2xsID0gbmV3IEV2ZW50RW1pdHRlcjxFdmVudD4oKTtcbn1cbiIsIjxkaXYgY2xhc3M9XCJjcWEtdmgtbGlzdC1jb250YWluZXJcIiAoc2Nyb2xsKT1cImxpc3RTY3JvbGwuZW1pdCgkZXZlbnQpXCI+XG4gIDxkaXYgY2xhc3M9XCJkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIGp1c3RpZnktY29udGVudC1iZXR3ZWVuIGZ6LTE0IGZ3LXNlbWktYm9sZCBjcWEtdmgtbGlzdC1oZWFkZXJcIj5cbiAgICB7eyB2ZXJzaW9ucy5sZW5ndGggfX0gVmVyc2lvbnNcbiAgPC9kaXY+XG5cbiAgPGRpdiAqbmdJZj1cImlzTG9hZGluZ0xpc3RcIiBjbGFzcz1cImNxYS12aC1saXN0LXNrZWxldG9uXCI+XG4gICAgPGRpdiAqbmdGb3I9XCJsZXQgaSBvZiBbMSwyLDMsNF1cIiBjbGFzcz1cImNxYS12aC1saXN0LXNrZWxldG9uLXJvd1wiPlxuICAgICAgPGRpdiBjbGFzcz1cImFuaW1hdGVkLWJhY2tncm91bmQgcm91bmRlZC1jaXJjbGUgY3FhLXZoLWxpc3Qtc2tlbGV0b24tZG90XCI+PC9kaXY+XG4gICAgICA8ZGl2IHN0eWxlPVwiZmxleDogMTtcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImFuaW1hdGVkLWJhY2tncm91bmRcIiBzdHlsZT1cImhlaWdodDogMTRweDsgd2lkdGg6IDUwJTsgYm9yZGVyLXJhZGl1czogNHB4OyBtYXJnaW4tYm90dG9tOiAxMHB4O1wiPjwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwiYW5pbWF0ZWQtYmFja2dyb3VuZFwiIHN0eWxlPVwiaGVpZ2h0OiAxMnB4OyB3aWR0aDogODAlOyBib3JkZXItcmFkaXVzOiA0cHg7IG1hcmdpbi1ib3R0b206IDEwcHg7XCI+PC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJhbmltYXRlZC1iYWNrZ3JvdW5kXCIgc3R5bGU9XCJoZWlnaHQ6IDEycHg7IHdpZHRoOiA0NSU7IGJvcmRlci1yYWRpdXM6IDRweDtcIj48L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cblxuICA8bmctY29udGFpbmVyICpuZ0lmPVwiIWlzTG9hZGluZ0xpc3RcIj5cbiAgICA8ZGl2ICpuZ0lmPVwiIXZlcnNpb25zLmxlbmd0aFwiIGNsYXNzPVwiY3FhLXZoLWxpc3QtZW1wdHlcIj5cbiAgICAgIDxjcWEtZW1wdHktc3RhdGUgW3RpdGxlXT1cImVtcHR5U3RhdGVDb25maWc/LnRpdGxlXCIgW2Rlc2NyaXB0aW9uXT1cImVtcHR5U3RhdGVDb25maWc/LmRlc2NyaXB0aW9uXCJcbiAgICAgICAgW2ltYWdlVXJsXT1cImVtcHR5U3RhdGVDb25maWc/LmltYWdlVXJsXCI+PC9jcWEtZW1wdHktc3RhdGU+XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cImNxYS12aC1saXN0LWJvZHlcIj5cbiAgICAgIDxkaXZcbiAgICAgICAgKm5nRm9yPVwibGV0IHYgb2YgdmVyc2lvbnNcIlxuICAgICAgICAoY2xpY2spPVwidmVyc2lvblNlbGVjdGVkLmVtaXQodi5pZClcIlxuICAgICAgICBjbGFzcz1cImNxYS12aC1saXN0LWl0ZW1cIlxuICAgICAgICBbY2xhc3MuY3FhLXZoLWxpc3QtaXRlbS0tc2VsZWN0ZWRdPVwidi5pZCA9PT0gc2VsZWN0ZWRWZXJzaW9uSWRcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBhbGlnbi1pdGVtcy1zdGFydFwiIHN0eWxlPVwiZ2FwOiAxMnB4O1wiPlxuICAgICAgICAgIDxkaXYgc3R5bGU9XCJwYWRkaW5nLXRvcDogM3B4OyBmbGV4LXNocmluazogMDtcIj5cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiY3FhLXZoLWxpc3QtaXRlbS1yYWRpb1wiXG4gICAgICAgICAgICAgIFtjbGFzcy5jcWEtdmgtbGlzdC1pdGVtLXJhZGlvLS1zZWxlY3RlZF09XCJ2LmlkID09PSBzZWxlY3RlZFZlcnNpb25JZFwiPlxuICAgICAgICAgICAgICA8c3BhbiAqbmdJZj1cInYuaWQgPT09IHNlbGVjdGVkVmVyc2lvbklkXCIgY2xhc3M9XCJjcWEtdmgtbGlzdC1pdGVtLXJhZGlvLWRvdFwiPjwvc3Bhbj5cbiAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8ZGl2IHN0eWxlPVwiZmxleDogMTsgbWluLXdpZHRoOiAwO1wiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIganVzdGlmeS1jb250ZW50LWJldHdlZW5cIiBzdHlsZT1cIm1hcmdpbi1ib3R0b206IDRweDtcIj5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXJcIiBzdHlsZT1cImdhcDogNnB4O1wiPlxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiY3FhLXZoLWxpc3QtaXRlbS12ZXJzaW9uXCJcbiAgICAgICAgICAgICAgICAgIFtjbGFzcy5jcWEtdmgtbGlzdC1pdGVtLXZlcnNpb24tLXNlbGVjdGVkXT1cInYuaWQgPT09IHNlbGVjdGVkVmVyc2lvbklkXCI+XG4gICAgICAgICAgICAgICAgICB2e3sgdi52ZXJzaW9uTnVtYmVyIH19XG4gICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICAgIDxjcWEtYmFkZ2UgKm5nSWY9XCJ2LmlkID09PSBjdXJyZW50VmVyc2lvbklkXCIgbGFiZWw9XCJDdXJyZW50XCIgc2l6ZT1cImV4dHJhLXNtYWxsXCIgdmFyaWFudD1cImluZm9cIlxuICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZENvbG9yPVwiI0VGRjRGRlwiIHRleHRDb2xvcj1cIiMzZjQzZWVcIiBib3JkZXJDb2xvcj1cIiNDN0Q3RkVcIj48L2NxYS1iYWRnZT5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiY3FhLXZoLWxpc3QtaXRlbS10aW1lXCI+e3sgZ2V0UmVsYXRpdmVUaW1lRm4odi5jcmVhdGVkRGF0ZSkgfX08L3NwYW4+XG4gICAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgICAgPGRpdiAqbmdJZj1cInYuY2hhbmdlU3VtbWFyeVwiIGNsYXNzPVwiY3FhLXZoLWxpc3QtaXRlbS1zdW1tYXJ5XCI+XG4gICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJnZXRDaGFuZ2VTdW1tYXJ5QmFkZ2VGbih2KSBhcyBiYWRnZVwiPlxuICAgICAgICAgICAgICAgIDxjcWEtYmFkZ2VcbiAgICAgICAgICAgICAgICAgIFtsYWJlbF09XCJiYWRnZS5sYWJlbFwiXG4gICAgICAgICAgICAgICAgICBzaXplPVwiZXh0cmEtc21hbGxcIlxuICAgICAgICAgICAgICAgICAgW2JhY2tncm91bmRDb2xvcl09XCJiYWRnZS5iYWNrZ3JvdW5kQ29sb3JcIlxuICAgICAgICAgICAgICAgICAgW3RleHRDb2xvcl09XCJiYWRnZS50ZXh0Q29sb3JcIlxuICAgICAgICAgICAgICAgICAgW2JvcmRlckNvbG9yXT1cImJhZGdlLmJvcmRlckNvbG9yXCI+XG4gICAgICAgICAgICAgICAgPC9jcWEtYmFkZ2U+XG4gICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyXCIgc3R5bGU9XCJnYXA6IDhweDsgbWFyZ2luLXRvcDogNHB4O1wiPlxuICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImNxYS12aC1saXN0LWl0ZW0tYXZhdGFyXCI+e3sgZ2V0QXV0aG9ySW5pdGlhbHNGbih2KSB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJjcWEtdmgtbGlzdC1pdGVtLWF1dGhvclwiPnt7IGdldEF1dGhvckxhYmVsRm4odikgfX08L3NwYW4+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cblxuICAgICAgPGRpdiAqbmdJZj1cImlzTG9hZGluZ01vcmVcIiBjbGFzcz1cImNxYS12aC1saXN0LWxvYWRpbmctbW9yZVwiPlxuICAgICAgICBMb2FkaW5nIG1vcmUuLi5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICA8L25nLWNvbnRhaW5lcj5cbjwvZGl2PlxuIl19
|
|
@@ -8,6 +8,12 @@ export class VersionHistoryRestoreConfirmComponent {
|
|
|
8
8
|
this.authorName = '';
|
|
9
9
|
this.getChangeHeadlineFn = null;
|
|
10
10
|
}
|
|
11
|
+
get settingsChanges() {
|
|
12
|
+
return (this.restoringToVersion?.changes || []).filter((c) => c.category === 'settings');
|
|
13
|
+
}
|
|
14
|
+
get stepChanges() {
|
|
15
|
+
return (this.restoringToVersion?.changes || []).filter((c) => c.category !== 'settings');
|
|
16
|
+
}
|
|
11
17
|
getRestoreToLabel() {
|
|
12
18
|
if (!this.restoringToVersion) {
|
|
13
19
|
return '';
|
|
@@ -24,10 +30,10 @@ export class VersionHistoryRestoreConfirmComponent {
|
|
|
24
30
|
}
|
|
25
31
|
}
|
|
26
32
|
VersionHistoryRestoreConfirmComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: VersionHistoryRestoreConfirmComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
27
|
-
VersionHistoryRestoreConfirmComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.4.0", type: VersionHistoryRestoreConfirmComponent, selector: "cqa-version-history-restore-confirm", inputs: { restoringToVersion: "restoringToVersion", currentVersionNumber: "currentVersionNumber", newVersionNumber: "newVersionNumber", authorName: "authorName", getChangeHeadlineFn: "getChangeHeadlineFn" }, ngImport: i0, template: "<div class=\"cqa-vh-restore-confirm\">\n\n <!-- Info grid -->\n <div class=\"cqa-vh-restore-info-grid\">\n <div class=\"cqa-vh-restore-info-row\">\n <span class=\"cqa-vh-restore-info-label\">Restoring to</span>\n <span class=\"cqa-vh-restore-info-value\">{{ getRestoreToLabel() }}</span>\n </div>\n <div class=\"cqa-vh-restore-info-row\">\n <span class=\"cqa-vh-restore-info-label\">New version created</span>\n <span class=\"cqa-vh-restore-info-value\">v{{ newVersionNumber }} (auto-incremented)</span>\n </div>\n <div class=\"cqa-vh-restore-info-row\">\n <span class=\"cqa-vh-restore-info-label\">Current version</span>\n <span class=\"cqa-vh-restore-info-value\">v{{ currentVersionNumber }} \u2014 preserved in history</span>\n </div>\n <div class=\"cqa-vh-restore-info-row\">\n <span class=\"cqa-vh-restore-info-label\">Author</span>\n <span class=\"cqa-vh-restore-info-value\">{{ authorName }}</span>\n </div>\n </div>\n\n <!-- Changes that will be reverted -->\n <div *ngIf=\"restoringToVersion?.changes?.length\">\n <div class=\"cqa-vh-restore-changes-title\">Changes that will be reverted</div>\n <div class=\"cqa-vh-restore-changes-
|
|
33
|
+
VersionHistoryRestoreConfirmComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.4.0", type: VersionHistoryRestoreConfirmComponent, selector: "cqa-version-history-restore-confirm", inputs: { restoringToVersion: "restoringToVersion", currentVersionNumber: "currentVersionNumber", newVersionNumber: "newVersionNumber", authorName: "authorName", getChangeHeadlineFn: "getChangeHeadlineFn" }, ngImport: i0, template: "<div class=\"cqa-vh-restore-confirm\">\n\n <!-- Info grid -->\n <div class=\"cqa-vh-restore-info-grid\">\n <div class=\"cqa-vh-restore-info-row\">\n <span class=\"cqa-vh-restore-info-label\">Restoring to</span>\n <span class=\"cqa-vh-restore-info-value\">{{ getRestoreToLabel() }}</span>\n </div>\n <div class=\"cqa-vh-restore-info-row\">\n <span class=\"cqa-vh-restore-info-label\">New version created</span>\n <span class=\"cqa-vh-restore-info-value\">v{{ newVersionNumber }} (auto-incremented)</span>\n </div>\n <div class=\"cqa-vh-restore-info-row\">\n <span class=\"cqa-vh-restore-info-label\">Current version</span>\n <span class=\"cqa-vh-restore-info-value\">v{{ currentVersionNumber }} \u2014 preserved in history</span>\n </div>\n <div class=\"cqa-vh-restore-info-row\">\n <span class=\"cqa-vh-restore-info-label\">Author</span>\n <span class=\"cqa-vh-restore-info-value\">{{ authorName }}</span>\n </div>\n </div>\n\n <!-- Changes that will be reverted -->\n <div *ngIf=\"restoringToVersion?.changes?.length\">\n <div class=\"cqa-vh-restore-changes-title\">Changes that will be reverted</div>\n\n <!-- Settings changes -->\n <ng-container *ngIf=\"settingsChanges.length\">\n <div class=\"cqa-vh-restore-changes-subheader\">\n <span class=\"material-symbols-outlined cqa-vh-restore-subheader-icon\">settings</span>\n Test Case Settings\n </div>\n <div class=\"cqa-vh-restore-changes-list\">\n <div *ngFor=\"let change of settingsChanges; let i = index\" class=\"cqa-vh-restore-change-item\">\n <div class=\"cqa-vh-restore-change-index\">{{ i + 1 }}</div>\n <span class=\"cqa-vh-restore-change-sentence\">{{ getChangeHeadlineFn ? getChangeHeadlineFn(change) : change?.sentence || '' }}</span>\n </div>\n </div>\n </ng-container>\n\n <!-- Step changes -->\n <ng-container *ngIf=\"stepChanges.length\">\n <div class=\"cqa-vh-restore-changes-subheader\" [style.marginTop]=\"settingsChanges.length ? '12px' : '0'\">\n <span class=\"material-symbols-outlined cqa-vh-restore-subheader-icon\">list_alt</span>\n Step Changes\n </div>\n <div class=\"cqa-vh-restore-changes-list\">\n <div *ngFor=\"let change of stepChanges; let i = index\" class=\"cqa-vh-restore-change-item\">\n <div class=\"cqa-vh-restore-change-index\">{{ i + 1 }}</div>\n <span class=\"cqa-vh-restore-change-sentence\">{{ getChangeHeadlineFn ? getChangeHeadlineFn(change) : change?.sentence || '' }}</span>\n </div>\n </div>\n </ng-container>\n </div>\n\n <!-- Preservation note -->\n <div class=\"cqa-vh-restore-note\">\n <span class=\"material-symbols-outlined cqa-vh-restore-note-icon\">info</span>\n <span class=\"cqa-vh-restore-note-text\">\n All version history will be fully preserved. This restore action will itself appear as a new version entry in the timeline.\n </span>\n </div>\n\n</div>\n", directives: [{ type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }] });
|
|
28
34
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: VersionHistoryRestoreConfirmComponent, decorators: [{
|
|
29
35
|
type: Component,
|
|
30
|
-
args: [{ selector: 'cqa-version-history-restore-confirm', template: "<div class=\"cqa-vh-restore-confirm\">\n\n <!-- Info grid -->\n <div class=\"cqa-vh-restore-info-grid\">\n <div class=\"cqa-vh-restore-info-row\">\n <span class=\"cqa-vh-restore-info-label\">Restoring to</span>\n <span class=\"cqa-vh-restore-info-value\">{{ getRestoreToLabel() }}</span>\n </div>\n <div class=\"cqa-vh-restore-info-row\">\n <span class=\"cqa-vh-restore-info-label\">New version created</span>\n <span class=\"cqa-vh-restore-info-value\">v{{ newVersionNumber }} (auto-incremented)</span>\n </div>\n <div class=\"cqa-vh-restore-info-row\">\n <span class=\"cqa-vh-restore-info-label\">Current version</span>\n <span class=\"cqa-vh-restore-info-value\">v{{ currentVersionNumber }} \u2014 preserved in history</span>\n </div>\n <div class=\"cqa-vh-restore-info-row\">\n <span class=\"cqa-vh-restore-info-label\">Author</span>\n <span class=\"cqa-vh-restore-info-value\">{{ authorName }}</span>\n </div>\n </div>\n\n <!-- Changes that will be reverted -->\n <div *ngIf=\"restoringToVersion?.changes?.length\">\n <div class=\"cqa-vh-restore-changes-title\">Changes that will be reverted</div>\n <div class=\"cqa-vh-restore-changes-
|
|
36
|
+
args: [{ selector: 'cqa-version-history-restore-confirm', template: "<div class=\"cqa-vh-restore-confirm\">\n\n <!-- Info grid -->\n <div class=\"cqa-vh-restore-info-grid\">\n <div class=\"cqa-vh-restore-info-row\">\n <span class=\"cqa-vh-restore-info-label\">Restoring to</span>\n <span class=\"cqa-vh-restore-info-value\">{{ getRestoreToLabel() }}</span>\n </div>\n <div class=\"cqa-vh-restore-info-row\">\n <span class=\"cqa-vh-restore-info-label\">New version created</span>\n <span class=\"cqa-vh-restore-info-value\">v{{ newVersionNumber }} (auto-incremented)</span>\n </div>\n <div class=\"cqa-vh-restore-info-row\">\n <span class=\"cqa-vh-restore-info-label\">Current version</span>\n <span class=\"cqa-vh-restore-info-value\">v{{ currentVersionNumber }} \u2014 preserved in history</span>\n </div>\n <div class=\"cqa-vh-restore-info-row\">\n <span class=\"cqa-vh-restore-info-label\">Author</span>\n <span class=\"cqa-vh-restore-info-value\">{{ authorName }}</span>\n </div>\n </div>\n\n <!-- Changes that will be reverted -->\n <div *ngIf=\"restoringToVersion?.changes?.length\">\n <div class=\"cqa-vh-restore-changes-title\">Changes that will be reverted</div>\n\n <!-- Settings changes -->\n <ng-container *ngIf=\"settingsChanges.length\">\n <div class=\"cqa-vh-restore-changes-subheader\">\n <span class=\"material-symbols-outlined cqa-vh-restore-subheader-icon\">settings</span>\n Test Case Settings\n </div>\n <div class=\"cqa-vh-restore-changes-list\">\n <div *ngFor=\"let change of settingsChanges; let i = index\" class=\"cqa-vh-restore-change-item\">\n <div class=\"cqa-vh-restore-change-index\">{{ i + 1 }}</div>\n <span class=\"cqa-vh-restore-change-sentence\">{{ getChangeHeadlineFn ? getChangeHeadlineFn(change) : change?.sentence || '' }}</span>\n </div>\n </div>\n </ng-container>\n\n <!-- Step changes -->\n <ng-container *ngIf=\"stepChanges.length\">\n <div class=\"cqa-vh-restore-changes-subheader\" [style.marginTop]=\"settingsChanges.length ? '12px' : '0'\">\n <span class=\"material-symbols-outlined cqa-vh-restore-subheader-icon\">list_alt</span>\n Step Changes\n </div>\n <div class=\"cqa-vh-restore-changes-list\">\n <div *ngFor=\"let change of stepChanges; let i = index\" class=\"cqa-vh-restore-change-item\">\n <div class=\"cqa-vh-restore-change-index\">{{ i + 1 }}</div>\n <span class=\"cqa-vh-restore-change-sentence\">{{ getChangeHeadlineFn ? getChangeHeadlineFn(change) : change?.sentence || '' }}</span>\n </div>\n </div>\n </ng-container>\n </div>\n\n <!-- Preservation note -->\n <div class=\"cqa-vh-restore-note\">\n <span class=\"material-symbols-outlined cqa-vh-restore-note-icon\">info</span>\n <span class=\"cqa-vh-restore-note-text\">\n All version history will be fully preserved. This restore action will itself appear as a new version entry in the timeline.\n </span>\n </div>\n\n</div>\n", styles: [] }]
|
|
31
37
|
}], propDecorators: { restoringToVersion: [{
|
|
32
38
|
type: Input
|
|
33
39
|
}], currentVersionNumber: [{
|
|
@@ -39,4 +45,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImpor
|
|
|
39
45
|
}], getChangeHeadlineFn: [{
|
|
40
46
|
type: Input
|
|
41
47
|
}] } });
|
|
42
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
48
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVyc2lvbi1oaXN0b3J5LXJlc3RvcmUtY29uZmlybS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL3ZlcnNpb24taGlzdG9yeS92ZXJzaW9uLWhpc3RvcnktcmVzdG9yZS1jb25maXJtL3ZlcnNpb24taGlzdG9yeS1yZXN0b3JlLWNvbmZpcm0uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi92ZXJzaW9uLWhpc3RvcnkvdmVyc2lvbi1oaXN0b3J5LXJlc3RvcmUtY29uZmlybS92ZXJzaW9uLWhpc3RvcnktcmVzdG9yZS1jb25maXJtLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7QUFPakQsTUFBTSxPQUFPLHFDQUFxQztJQUxsRDtRQU9XLHlCQUFvQixHQUFXLENBQUMsQ0FBQztRQUNqQyxxQkFBZ0IsR0FBVyxDQUFDLENBQUM7UUFDN0IsZUFBVSxHQUFXLEVBQUUsQ0FBQztRQUN4Qix3QkFBbUIsR0FBcUMsSUFBSSxDQUFDO0tBd0J2RTtJQXRCQyxJQUFJLGVBQWU7UUFDakIsT0FBTyxDQUFDLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxPQUFPLElBQUksRUFBRSxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBTSxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsUUFBUSxLQUFLLFVBQVUsQ0FBQyxDQUFDO0lBQ2hHLENBQUM7SUFFRCxJQUFJLFdBQVc7UUFDYixPQUFPLENBQUMsSUFBSSxDQUFDLGtCQUFrQixFQUFFLE9BQU8sSUFBSSxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFNLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxRQUFRLEtBQUssVUFBVSxDQUFDLENBQUM7SUFDaEcsQ0FBQztJQUVELGlCQUFpQjtRQUNmLElBQUksQ0FBQyxJQUFJLENBQUMsa0JBQWtCLEVBQUU7WUFBRSxPQUFPLEVBQUUsQ0FBQztTQUFFO1FBQzVDLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxXQUFXO1lBQzlDLENBQUMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxXQUFXLENBQUM7WUFDdEQsQ0FBQyxDQUFDLEVBQUUsQ0FBQztRQUNQLE9BQU8sR0FBRyxHQUFHLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxhQUFhLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQ2xGLENBQUM7SUFFRCxVQUFVLENBQUMsSUFBVTtRQUNuQixNQUFNLENBQUMsR0FBRyxJQUFJLFlBQVksSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3ZELE9BQU8sQ0FBQyxDQUFDLGtCQUFrQixDQUFDLE9BQU8sRUFBRSxFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUUsR0FBRyxFQUFFLFNBQVMsRUFBRSxDQUFDLEdBQUcsSUFBSTtZQUM3RSxDQUFDLENBQUMsa0JBQWtCLENBQUMsT0FBTyxFQUFFLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFLENBQUMsQ0FBQztJQUMxRSxDQUFDOztrSUEzQlUscUNBQXFDO3NIQUFyQyxxQ0FBcUMsMlJDUGxELHM4RkFnRUE7MkZEekRhLHFDQUFxQztrQkFMakQsU0FBUzsrQkFDRSxxQ0FBcUM7OEJBS3RDLGtCQUFrQjtzQkFBMUIsS0FBSztnQkFDRyxvQkFBb0I7c0JBQTVCLEtBQUs7Z0JBQ0csZ0JBQWdCO3NCQUF4QixLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csbUJBQW1CO3NCQUEzQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdjcWEtdmVyc2lvbi1oaXN0b3J5LXJlc3RvcmUtY29uZmlybScsXG4gIHRlbXBsYXRlVXJsOiAnLi92ZXJzaW9uLWhpc3RvcnktcmVzdG9yZS1jb25maXJtLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbXVxufSlcbmV4cG9ydCBjbGFzcyBWZXJzaW9uSGlzdG9yeVJlc3RvcmVDb25maXJtQ29tcG9uZW50IHtcbiAgQElucHV0KCkgcmVzdG9yaW5nVG9WZXJzaW9uOiBhbnk7XG4gIEBJbnB1dCgpIGN1cnJlbnRWZXJzaW9uTnVtYmVyOiBudW1iZXIgPSAwO1xuICBASW5wdXQoKSBuZXdWZXJzaW9uTnVtYmVyOiBudW1iZXIgPSAwO1xuICBASW5wdXQoKSBhdXRob3JOYW1lOiBzdHJpbmcgPSAnJztcbiAgQElucHV0KCkgZ2V0Q2hhbmdlSGVhZGxpbmVGbjogKChjaGFuZ2U6IGFueSkgPT4gc3RyaW5nKSB8IG51bGwgPSBudWxsO1xuXG4gIGdldCBzZXR0aW5nc0NoYW5nZXMoKTogYW55W10ge1xuICAgIHJldHVybiAodGhpcy5yZXN0b3JpbmdUb1ZlcnNpb24/LmNoYW5nZXMgfHwgW10pLmZpbHRlcigoYzogYW55KSA9PiBjLmNhdGVnb3J5ID09PSAnc2V0dGluZ3MnKTtcbiAgfVxuXG4gIGdldCBzdGVwQ2hhbmdlcygpOiBhbnlbXSB7XG4gICAgcmV0dXJuICh0aGlzLnJlc3RvcmluZ1RvVmVyc2lvbj8uY2hhbmdlcyB8fCBbXSkuZmlsdGVyKChjOiBhbnkpID0+IGMuY2F0ZWdvcnkgIT09ICdzZXR0aW5ncycpO1xuICB9XG5cbiAgZ2V0UmVzdG9yZVRvTGFiZWwoKTogc3RyaW5nIHtcbiAgICBpZiAoIXRoaXMucmVzdG9yaW5nVG9WZXJzaW9uKSB7IHJldHVybiAnJzsgfVxuICAgIGNvbnN0IGRhdGUgPSB0aGlzLnJlc3RvcmluZ1RvVmVyc2lvbi5kaXNwbGF5RGF0ZVxuICAgICAgPyB0aGlzLmZvcm1hdERhdGUodGhpcy5yZXN0b3JpbmdUb1ZlcnNpb24uZGlzcGxheURhdGUpXG4gICAgICA6ICcnO1xuICAgIHJldHVybiAndicgKyB0aGlzLnJlc3RvcmluZ1RvVmVyc2lvbi52ZXJzaW9uTnVtYmVyICsgKGRhdGUgPyAnIOKAlCAnICsgZGF0ZSA6ICcnKTtcbiAgfVxuXG4gIGZvcm1hdERhdGUoZGF0ZTogRGF0ZSk6IHN0cmluZyB7XG4gICAgY29uc3QgZCA9IGRhdGUgaW5zdGFuY2VvZiBEYXRlID8gZGF0ZSA6IG5ldyBEYXRlKGRhdGUpO1xuICAgIHJldHVybiBkLnRvTG9jYWxlRGF0ZVN0cmluZygnZW4tVVMnLCB7IG1vbnRoOiAnc2hvcnQnLCBkYXk6ICdudW1lcmljJyB9KSArICcsICcgK1xuICAgICAgZC50b0xvY2FsZVRpbWVTdHJpbmcoJ2VuLVVTJywgeyBob3VyOiAnbnVtZXJpYycsIG1pbnV0ZTogJzItZGlnaXQnIH0pO1xuICB9XG5cbn1cbiIsIjxkaXYgY2xhc3M9XCJjcWEtdmgtcmVzdG9yZS1jb25maXJtXCI+XG5cbiAgPCEtLSBJbmZvIGdyaWQgLS0+XG4gIDxkaXYgY2xhc3M9XCJjcWEtdmgtcmVzdG9yZS1pbmZvLWdyaWRcIj5cbiAgICA8ZGl2IGNsYXNzPVwiY3FhLXZoLXJlc3RvcmUtaW5mby1yb3dcIj5cbiAgICAgIDxzcGFuIGNsYXNzPVwiY3FhLXZoLXJlc3RvcmUtaW5mby1sYWJlbFwiPlJlc3RvcmluZyB0bzwvc3Bhbj5cbiAgICAgIDxzcGFuIGNsYXNzPVwiY3FhLXZoLXJlc3RvcmUtaW5mby12YWx1ZVwiPnt7IGdldFJlc3RvcmVUb0xhYmVsKCkgfX08L3NwYW4+XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cImNxYS12aC1yZXN0b3JlLWluZm8tcm93XCI+XG4gICAgICA8c3BhbiBjbGFzcz1cImNxYS12aC1yZXN0b3JlLWluZm8tbGFiZWxcIj5OZXcgdmVyc2lvbiBjcmVhdGVkPC9zcGFuPlxuICAgICAgPHNwYW4gY2xhc3M9XCJjcWEtdmgtcmVzdG9yZS1pbmZvLXZhbHVlXCI+dnt7IG5ld1ZlcnNpb25OdW1iZXIgfX0gKGF1dG8taW5jcmVtZW50ZWQpPC9zcGFuPlxuICAgIDwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJjcWEtdmgtcmVzdG9yZS1pbmZvLXJvd1wiPlxuICAgICAgPHNwYW4gY2xhc3M9XCJjcWEtdmgtcmVzdG9yZS1pbmZvLWxhYmVsXCI+Q3VycmVudCB2ZXJzaW9uPC9zcGFuPlxuICAgICAgPHNwYW4gY2xhc3M9XCJjcWEtdmgtcmVzdG9yZS1pbmZvLXZhbHVlXCI+dnt7IGN1cnJlbnRWZXJzaW9uTnVtYmVyIH19IOKAlCBwcmVzZXJ2ZWQgaW4gaGlzdG9yeTwvc3Bhbj5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwiY3FhLXZoLXJlc3RvcmUtaW5mby1yb3dcIj5cbiAgICAgIDxzcGFuIGNsYXNzPVwiY3FhLXZoLXJlc3RvcmUtaW5mby1sYWJlbFwiPkF1dGhvcjwvc3Bhbj5cbiAgICAgIDxzcGFuIGNsYXNzPVwiY3FhLXZoLXJlc3RvcmUtaW5mby12YWx1ZVwiPnt7IGF1dGhvck5hbWUgfX08L3NwYW4+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuXG4gIDwhLS0gQ2hhbmdlcyB0aGF0IHdpbGwgYmUgcmV2ZXJ0ZWQgLS0+XG4gIDxkaXYgKm5nSWY9XCJyZXN0b3JpbmdUb1ZlcnNpb24/LmNoYW5nZXM/Lmxlbmd0aFwiPlxuICAgIDxkaXYgY2xhc3M9XCJjcWEtdmgtcmVzdG9yZS1jaGFuZ2VzLXRpdGxlXCI+Q2hhbmdlcyB0aGF0IHdpbGwgYmUgcmV2ZXJ0ZWQ8L2Rpdj5cblxuICAgIDwhLS0gU2V0dGluZ3MgY2hhbmdlcyAtLT5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwic2V0dGluZ3NDaGFuZ2VzLmxlbmd0aFwiPlxuICAgICAgPGRpdiBjbGFzcz1cImNxYS12aC1yZXN0b3JlLWNoYW5nZXMtc3ViaGVhZGVyXCI+XG4gICAgICAgIDxzcGFuIGNsYXNzPVwibWF0ZXJpYWwtc3ltYm9scy1vdXRsaW5lZCBjcWEtdmgtcmVzdG9yZS1zdWJoZWFkZXItaWNvblwiPnNldHRpbmdzPC9zcGFuPlxuICAgICAgICBUZXN0IENhc2UgU2V0dGluZ3NcbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiBjbGFzcz1cImNxYS12aC1yZXN0b3JlLWNoYW5nZXMtbGlzdFwiPlxuICAgICAgICA8ZGl2ICpuZ0Zvcj1cImxldCBjaGFuZ2Ugb2Ygc2V0dGluZ3NDaGFuZ2VzOyBsZXQgaSA9IGluZGV4XCIgY2xhc3M9XCJjcWEtdmgtcmVzdG9yZS1jaGFuZ2UtaXRlbVwiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJjcWEtdmgtcmVzdG9yZS1jaGFuZ2UtaW5kZXhcIj57eyBpICsgMSB9fTwvZGl2PlxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwiY3FhLXZoLXJlc3RvcmUtY2hhbmdlLXNlbnRlbmNlXCI+e3sgZ2V0Q2hhbmdlSGVhZGxpbmVGbiA/IGdldENoYW5nZUhlYWRsaW5lRm4oY2hhbmdlKSA6IGNoYW5nZT8uc2VudGVuY2UgfHwgJycgfX08L3NwYW4+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgPC9uZy1jb250YWluZXI+XG5cbiAgICA8IS0tIFN0ZXAgY2hhbmdlcyAtLT5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwic3RlcENoYW5nZXMubGVuZ3RoXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwiY3FhLXZoLXJlc3RvcmUtY2hhbmdlcy1zdWJoZWFkZXJcIiBbc3R5bGUubWFyZ2luVG9wXT1cInNldHRpbmdzQ2hhbmdlcy5sZW5ndGggPyAnMTJweCcgOiAnMCdcIj5cbiAgICAgICAgPHNwYW4gY2xhc3M9XCJtYXRlcmlhbC1zeW1ib2xzLW91dGxpbmVkIGNxYS12aC1yZXN0b3JlLXN1YmhlYWRlci1pY29uXCI+bGlzdF9hbHQ8L3NwYW4+XG4gICAgICAgIFN0ZXAgQ2hhbmdlc1xuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2IGNsYXNzPVwiY3FhLXZoLXJlc3RvcmUtY2hhbmdlcy1saXN0XCI+XG4gICAgICAgIDxkaXYgKm5nRm9yPVwibGV0IGNoYW5nZSBvZiBzdGVwQ2hhbmdlczsgbGV0IGkgPSBpbmRleFwiIGNsYXNzPVwiY3FhLXZoLXJlc3RvcmUtY2hhbmdlLWl0ZW1cIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiY3FhLXZoLXJlc3RvcmUtY2hhbmdlLWluZGV4XCI+e3sgaSArIDEgfX08L2Rpdj5cbiAgICAgICAgICA8c3BhbiBjbGFzcz1cImNxYS12aC1yZXN0b3JlLWNoYW5nZS1zZW50ZW5jZVwiPnt7IGdldENoYW5nZUhlYWRsaW5lRm4gPyBnZXRDaGFuZ2VIZWFkbGluZUZuKGNoYW5nZSkgOiBjaGFuZ2U/LnNlbnRlbmNlIHx8ICcnIH19PC9zcGFuPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIDwvbmctY29udGFpbmVyPlxuICA8L2Rpdj5cblxuICA8IS0tIFByZXNlcnZhdGlvbiBub3RlIC0tPlxuICA8ZGl2IGNsYXNzPVwiY3FhLXZoLXJlc3RvcmUtbm90ZVwiPlxuICAgIDxzcGFuIGNsYXNzPVwibWF0ZXJpYWwtc3ltYm9scy1vdXRsaW5lZCBjcWEtdmgtcmVzdG9yZS1ub3RlLWljb25cIj5pbmZvPC9zcGFuPlxuICAgIDxzcGFuIGNsYXNzPVwiY3FhLXZoLXJlc3RvcmUtbm90ZS10ZXh0XCI+XG4gICAgICBBbGwgdmVyc2lvbiBoaXN0b3J5IHdpbGwgYmUgZnVsbHkgcHJlc2VydmVkLiBUaGlzIHJlc3RvcmUgYWN0aW9uIHdpbGwgaXRzZWxmIGFwcGVhciBhcyBhIG5ldyB2ZXJzaW9uIGVudHJ5IGluIHRoZSB0aW1lbGluZS5cbiAgICA8L3NwYW4+XG4gIDwvZGl2PlxuXG48L2Rpdj5cbiJdfQ==
|