@cqa-lib/cqa-ui 1.1.436 → 1.1.437
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/version-history/version-history-compare/version-history-compare.component.mjs +5 -11
- package/esm2020/lib/version-history/version-history-detail/version-history-detail.component.mjs +3 -3
- package/esm2020/lib/version-history/version-history-restore-confirm/version-history-restore-confirm.component.mjs +18 -49
- package/fesm2015/cqa-lib-cqa-ui.mjs +23 -60
- package/fesm2015/cqa-lib-cqa-ui.mjs.map +1 -1
- package/fesm2020/cqa-lib-cqa-ui.mjs +23 -60
- package/fesm2020/cqa-lib-cqa-ui.mjs.map +1 -1
- package/lib/version-history/version-history-compare/version-history-compare.component.d.ts +3 -4
- package/lib/version-history/version-history-detail/version-history-detail.component.d.ts +1 -1
- package/lib/version-history/version-history-restore-confirm/version-history-restore-confirm.component.d.ts +2 -3
- package/package.json +1 -1
|
@@ -42486,7 +42486,7 @@ class VersionHistoryCompareComponent {
|
|
|
42486
42486
|
this.compareFromId = null;
|
|
42487
42487
|
this.compareToId = null;
|
|
42488
42488
|
this.formatValueHtmlFn = (v) => String(v ?? '');
|
|
42489
|
-
this.
|
|
42489
|
+
this.getFieldLabelFn = (f) => f || 'field';
|
|
42490
42490
|
this.swapVersions = new EventEmitter();
|
|
42491
42491
|
this.closeComparison = new EventEmitter();
|
|
42492
42492
|
this.compareFromChange = new EventEmitter();
|
|
@@ -42498,12 +42498,6 @@ class VersionHistoryCompareComponent {
|
|
|
42498
42498
|
this.groupedStepChanges = this.buildGroupedStepChanges();
|
|
42499
42499
|
}
|
|
42500
42500
|
}
|
|
42501
|
-
getFieldLabel(field) {
|
|
42502
|
-
if (!field) {
|
|
42503
|
-
return 'field';
|
|
42504
|
-
}
|
|
42505
|
-
return this.fieldLabelMap[field] || field;
|
|
42506
|
-
}
|
|
42507
42501
|
buildGroupedStepChanges() {
|
|
42508
42502
|
const changes = this.compareResult?.stepChanges || [];
|
|
42509
42503
|
if (!changes.length) {
|
|
@@ -42534,10 +42528,10 @@ class VersionHistoryCompareComponent {
|
|
|
42534
42528
|
}
|
|
42535
42529
|
}
|
|
42536
42530
|
VersionHistoryCompareComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: VersionHistoryCompareComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
42537
|
-
VersionHistoryCompareComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.4.0", type: VersionHistoryCompareComponent, selector: "cqa-version-history-compare", inputs: { compareResult: "compareResult", versions: "versions", compareFromId: "compareFromId", compareToId: "compareToId", formatValueHtmlFn: "formatValueHtmlFn",
|
|
42531
|
+
VersionHistoryCompareComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.4.0", type: VersionHistoryCompareComponent, selector: "cqa-version-history-compare", inputs: { compareResult: "compareResult", versions: "versions", compareFromId: "compareFromId", compareToId: "compareToId", formatValueHtmlFn: "formatValueHtmlFn", getFieldLabelFn: "getFieldLabelFn" }, outputs: { swapVersions: "swapVersions", closeComparison: "closeComparison", compareFromChange: "compareFromChange", compareToChange: "compareToChange" }, usesOnChanges: true, ngImport: i0, template: "<div>\n <div class=\"d-flex align-items-center justify-content-between cqa-vh-compare-header\">\n <div class=\"d-flex align-items-center\" style=\"gap: 10px;\">\n <span class=\"cqa-vh-compare-swap-btn\" (click)=\"swapVersions.emit()\" title=\"Swap versions\">\n <svg width=\"18\" height=\"18\" viewBox=\"0 0 16 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M4 2L4 14M4 14L1 11M4 14L7 11M12 14L12 2M12 2L9 5M12 2L15 5\" stroke=\"#667085\" stroke-width=\"1.5\"\n stroke-linecap=\"round\" stroke-linejoin=\"round\" />\n </svg>\n </span>\n <span class=\"cqa-vh-compare-title\">Version Comparison</span>\n <cqa-badge *ngIf=\"compareResult\" [label]=\"compareResult.totalDifferences + ' differences'\" size=\"small\"\n variant=\"info\" backgroundColor=\"#EFF4FF\" textColor=\"#3f43ee\" borderColor=\"#C7D7FE\"></cqa-badge>\n </div>\n <cqa-button variant=\"outlined\" text=\"Close\" (clicked)=\"closeComparison.emit()\"></cqa-button>\n </div>\n\n <div class=\"d-flex align-items-center justify-content-between cqa-vh-compare-selectors\">\n <div class=\"d-flex align-items-center\" style=\"gap: 8px; flex: 1; min-width: 0;\">\n <select class=\"cqa-vh-compare-select\" [ngModel]=\"compareFromId\" (ngModelChange)=\"compareFromChange.emit($event)\">\n <option *ngFor=\"let v of versions\" [ngValue]=\"v.id\">V{{ v.versionNumber }} \u00B7 {{ v.displayDate | date:'MMM d,\n yyyy \u00B7 h:mm a' }}</option>\n </select>\n <span class=\"cqa-vh-compare-swap-btn\" (click)=\"swapVersions.emit()\" title=\"Swap\">\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M2 5H14M14 5L11 2M14 5L11 8M14 11H2M2 11L5 8M2 11L5 14\" stroke=\"#3f43ee\" stroke-width=\"1.5\"\n stroke-linecap=\"round\" stroke-linejoin=\"round\" />\n </svg>\n </span>\n <select class=\"cqa-vh-compare-select\" [ngModel]=\"compareToId\" (ngModelChange)=\"compareToChange.emit($event)\">\n <option *ngFor=\"let v of versions\" [ngValue]=\"v.id\">V{{ v.versionNumber }} \u00B7 {{ v.displayDate | date:'MMM d,\n yyyy \u00B7 h:mm a' }}</option>\n </select>\n </div>\n </div>\n\n <div *ngIf=\"!compareResult\" class=\"cqa-vh-compare-loading\">\n Loading comparison...\n </div>\n\n <ng-container *ngIf=\"compareResult\">\n <div class=\"d-flex align-items-center cqa-vh-compare-summary-badges\">\n <cqa-badge [label]=\"'+ ' + compareResult.summary.added + ' added'\" size=\"small\" backgroundColor=\"#ECFDF3\"\n textColor=\"#027A48\" borderColor=\"#A7F3D0\"></cqa-badge>\n <cqa-badge [label]=\"'~ ' + compareResult.summary.modified + ' modified'\" size=\"small\" backgroundColor=\"#FFFAEB\"\n textColor=\"#B54708\" borderColor=\"#FEDF89\"></cqa-badge>\n <cqa-badge [label]=\"'- ' + compareResult.summary.removed + ' removed'\" size=\"small\" backgroundColor=\"#FEF3F2\"\n textColor=\"#B42318\" borderColor=\"#FECDCA\"></cqa-badge>\n <cqa-badge [label]=\"'= ' + compareResult.summary.unchanged + ' unchanged'\" size=\"small\" backgroundColor=\"#F2F4F7\"\n textColor=\"#344054\" borderColor=\"#E4E7EC\"></cqa-badge>\n </div>\n\n <ng-container *ngIf=\"compareResult.testCaseChanges?.length || compareResult.stepChanges?.length; else noDiffs\">\n <ng-container *ngIf=\"compareResult.testCaseChanges?.length\">\n <div class=\"d-flex align-items-center cqa-vh-compare-section-header\">\n <span>Test Case Changes</span>\n <cqa-badge [label]=\"compareResult.testCaseChanges.length + ' diffs'\" size=\"small\" backgroundColor=\"#EFF4FF\"\n textColor=\"#3f43ee\" borderColor=\"#C7D7FE\"></cqa-badge>\n </div>\n <div *ngFor=\"let change of compareResult.testCaseChanges\" class=\"cqa-vh-compare-diff-row\">\n <div class=\"cqa-vh-compare-field-label\">{{ getFieldLabelFn(change.field) }}</div>\n <div style=\"display: flex; flex: 1; gap: 12px; min-width: 0;\">\n <div *ngIf=\"change.fromValue != null\" class=\"cqa-vh-compare-diff-cell cqa-vh-compare-diff-cell--removed\">\n <div class=\"cqa-vh-compare-diff-cell-text\" [innerHTML]=\"formatValueHtmlFn(change.fromValue, change.field)\"></div>\n </div>\n <div *ngIf=\"change.fromValue == null\" class=\"cqa-vh-compare-diff-cell-empty\"></div>\n <div *ngIf=\"change.toValue != null\" class=\"cqa-vh-compare-diff-cell cqa-vh-compare-diff-cell--added\">\n <div class=\"cqa-vh-compare-diff-cell-text\" [innerHTML]=\"formatValueHtmlFn(change.toValue, change.field)\"></div>\n </div>\n <div *ngIf=\"change.toValue == null\" class=\"cqa-vh-compare-diff-cell-empty\"></div>\n </div>\n </div>\n </ng-container>\n\n <ng-container *ngIf=\"compareResult.stepChanges?.length\">\n <div class=\"d-flex align-items-center cqa-vh-compare-section-header\"\n [style.margin-top.px]=\"compareResult.testCaseChanges?.length ? 20 : 0\">\n <span>Step Changes</span>\n <cqa-badge [label]=\"compareResult.stepChanges.length + ' diffs'\" size=\"small\" backgroundColor=\"#EFF4FF\"\n textColor=\"#3f43ee\" borderColor=\"#C7D7FE\"></cqa-badge>\n </div>\n\n <ng-container *ngFor=\"let stepGroup of groupedStepChanges; let sgi = index\">\n <div class=\"d-flex gap-2\">\n <!-- Step sub-group header -->\n <div class=\"cqa-vh-detail-step-group-header\" [style.margin-top.px]=\"sgi > 0 ? 14 : 4\">\n <!-- <span class=\"cqa-vh-detail-step-group-label\">{{ stepGroup.label }}</span> -->\n <cqa-badge [label]=\"stepGroup.label\" size=\"small\" backgroundColor=\"#EDF1F3\" textColor=\"#636A71\"\n borderColor=\"#DBDEE1\"></cqa-badge>\n </div>\n\n <!-- Changes within this step -->\n <div class=\"cqa-vh-compare-diff-row-container\">\n <div *ngFor=\"let change of stepGroup.changes\"\n class=\"cqa-vh-compare-diff-row cqa-vh-compare-diff-row--indented\">\n <!-- <div class=\"cqa-vh-compare-field-label\">{{ getFieldLabelFn(change.field) }}</div> -->\n <div style=\"display: flex; flex: 1; gap: 12px; min-width: 0; flex-grow:1;\">\n <div *ngIf=\"change.fromValue != null\"\n class=\"cqa-vh-compare-diff-cell cqa-vh-compare-diff-cell--removed\">\n <div class=\"cqa-vh-compare-diff-cell-text\" [innerHTML]=\"formatValueHtmlFn(change.fromValue, change.field)\"></div>\n </div>\n <div *ngIf=\"change.fromValue == null\" class=\"cqa-vh-compare-diff-cell-empty\"></div>\n <div *ngIf=\"change.toValue != null\" class=\"cqa-vh-compare-diff-cell cqa-vh-compare-diff-cell--added\">\n <div class=\"cqa-vh-compare-diff-cell-text\" [innerHTML]=\"formatValueHtmlFn(change.toValue, change.field)\"></div>\n </div>\n <div *ngIf=\"change.toValue == null\" class=\"cqa-vh-compare-diff-cell-empty\"></div>\n </div>\n </div>\n </div>\n </div>\n\n </ng-container>\n </ng-container>\n </ng-container>\n\n <ng-template #noDiffs>\n <div class=\"cqa-vh-compare-empty\">\n <cqa-empty-state title=\"No differences\" description=\"No differences between these versions.\"></cqa-empty-state>\n </div>\n </ng-template>\n </ng-container>\n</div>", components: [{ type: 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"] }, { type: ButtonComponent, selector: "cqa-button", inputs: ["variant", "btnSize", "disabled", "icon", "iconPosition", "fullWidth", "iconColor", "type", "text", "customClass", "inlineStyles", "tooltip", "tooltipPosition"], outputs: ["clicked"] }, { type: EmptyStateComponent, selector: "cqa-empty-state", inputs: ["preset", "imageUrl", "title", "description", "actions"], outputs: ["actionClick"] }], directives: [{ type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i1$1.SelectControlValueAccessor, selector: "select:not([multiple])[formControlName],select:not([multiple])[formControl],select:not([multiple])[ngModel]", inputs: ["compareWith"] }, { type: i1$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i1$1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i1$1.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { type: i1$1.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }], pipes: { "date": i2.DatePipe } });
|
|
42538
42532
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: VersionHistoryCompareComponent, decorators: [{
|
|
42539
42533
|
type: Component,
|
|
42540
|
-
args: [{ selector: 'cqa-version-history-compare', template: "<div>\n <div class=\"d-flex align-items-center justify-content-between cqa-vh-compare-header\">\n <div class=\"d-flex align-items-center\" style=\"gap: 10px;\">\n <span class=\"cqa-vh-compare-swap-btn\" (click)=\"swapVersions.emit()\" title=\"Swap versions\">\n <svg width=\"18\" height=\"18\" viewBox=\"0 0 16 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M4 2L4 14M4 14L1 11M4 14L7 11M12 14L12 2M12 2L9 5M12 2L15 5\" stroke=\"#667085\" stroke-width=\"1.5\"\n stroke-linecap=\"round\" stroke-linejoin=\"round\" />\n </svg>\n </span>\n <span class=\"cqa-vh-compare-title\">Version Comparison</span>\n <cqa-badge *ngIf=\"compareResult\" [label]=\"compareResult.totalDifferences + ' differences'\" size=\"small\"\n variant=\"info\" backgroundColor=\"#EFF4FF\" textColor=\"#3f43ee\" borderColor=\"#C7D7FE\"></cqa-badge>\n </div>\n <cqa-button variant=\"outlined\" text=\"Close\" (clicked)=\"closeComparison.emit()\"></cqa-button>\n </div>\n\n <div class=\"d-flex align-items-center justify-content-between cqa-vh-compare-selectors\">\n <div class=\"d-flex align-items-center\" style=\"gap: 8px; flex: 1; min-width: 0;\">\n <select class=\"cqa-vh-compare-select\" [ngModel]=\"compareFromId\" (ngModelChange)=\"compareFromChange.emit($event)\">\n <option *ngFor=\"let v of versions\" [ngValue]=\"v.id\">V{{ v.versionNumber }} \u00B7 {{ v.displayDate | date:'MMM d,\n yyyy \u00B7 h:mm a' }}</option>\n </select>\n <span class=\"cqa-vh-compare-swap-btn\" (click)=\"swapVersions.emit()\" title=\"Swap\">\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M2 5H14M14 5L11 2M14 5L11 8M14 11H2M2 11L5 8M2 11L5 14\" stroke=\"#3f43ee\" stroke-width=\"1.5\"\n stroke-linecap=\"round\" stroke-linejoin=\"round\" />\n </svg>\n </span>\n <select class=\"cqa-vh-compare-select\" [ngModel]=\"compareToId\" (ngModelChange)=\"compareToChange.emit($event)\">\n <option *ngFor=\"let v of versions\" [ngValue]=\"v.id\">V{{ v.versionNumber }} \u00B7 {{ v.displayDate | date:'MMM d,\n yyyy \u00B7 h:mm a' }}</option>\n </select>\n </div>\n </div>\n\n <div *ngIf=\"!compareResult\" class=\"cqa-vh-compare-loading\">\n Loading comparison...\n </div>\n\n <ng-container *ngIf=\"compareResult\">\n <div class=\"d-flex align-items-center cqa-vh-compare-summary-badges\">\n <cqa-badge [label]=\"'+ ' + compareResult.summary.added + ' added'\" size=\"small\" backgroundColor=\"#ECFDF3\"\n textColor=\"#027A48\" borderColor=\"#A7F3D0\"></cqa-badge>\n <cqa-badge [label]=\"'~ ' + compareResult.summary.modified + ' modified'\" size=\"small\" backgroundColor=\"#FFFAEB\"\n textColor=\"#B54708\" borderColor=\"#FEDF89\"></cqa-badge>\n <cqa-badge [label]=\"'- ' + compareResult.summary.removed + ' removed'\" size=\"small\" backgroundColor=\"#FEF3F2\"\n textColor=\"#B42318\" borderColor=\"#FECDCA\"></cqa-badge>\n <cqa-badge [label]=\"'= ' + compareResult.summary.unchanged + ' unchanged'\" size=\"small\" backgroundColor=\"#F2F4F7\"\n textColor=\"#344054\" borderColor=\"#E4E7EC\"></cqa-badge>\n </div>\n\n <ng-container *ngIf=\"compareResult.testCaseChanges?.length || compareResult.stepChanges?.length; else noDiffs\">\n <ng-container *ngIf=\"compareResult.testCaseChanges?.length\">\n <div class=\"d-flex align-items-center cqa-vh-compare-section-header\">\n <span>Test Case Changes</span>\n <cqa-badge [label]=\"compareResult.testCaseChanges.length + ' diffs'\" size=\"small\" backgroundColor=\"#EFF4FF\"\n textColor=\"#3f43ee\" borderColor=\"#C7D7FE\"></cqa-badge>\n </div>\n <div *ngFor=\"let change of compareResult.testCaseChanges\" class=\"cqa-vh-compare-diff-row\">\n <div class=\"cqa-vh-compare-field-label\">{{
|
|
42534
|
+
args: [{ selector: 'cqa-version-history-compare', template: "<div>\n <div class=\"d-flex align-items-center justify-content-between cqa-vh-compare-header\">\n <div class=\"d-flex align-items-center\" style=\"gap: 10px;\">\n <span class=\"cqa-vh-compare-swap-btn\" (click)=\"swapVersions.emit()\" title=\"Swap versions\">\n <svg width=\"18\" height=\"18\" viewBox=\"0 0 16 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M4 2L4 14M4 14L1 11M4 14L7 11M12 14L12 2M12 2L9 5M12 2L15 5\" stroke=\"#667085\" stroke-width=\"1.5\"\n stroke-linecap=\"round\" stroke-linejoin=\"round\" />\n </svg>\n </span>\n <span class=\"cqa-vh-compare-title\">Version Comparison</span>\n <cqa-badge *ngIf=\"compareResult\" [label]=\"compareResult.totalDifferences + ' differences'\" size=\"small\"\n variant=\"info\" backgroundColor=\"#EFF4FF\" textColor=\"#3f43ee\" borderColor=\"#C7D7FE\"></cqa-badge>\n </div>\n <cqa-button variant=\"outlined\" text=\"Close\" (clicked)=\"closeComparison.emit()\"></cqa-button>\n </div>\n\n <div class=\"d-flex align-items-center justify-content-between cqa-vh-compare-selectors\">\n <div class=\"d-flex align-items-center\" style=\"gap: 8px; flex: 1; min-width: 0;\">\n <select class=\"cqa-vh-compare-select\" [ngModel]=\"compareFromId\" (ngModelChange)=\"compareFromChange.emit($event)\">\n <option *ngFor=\"let v of versions\" [ngValue]=\"v.id\">V{{ v.versionNumber }} \u00B7 {{ v.displayDate | date:'MMM d,\n yyyy \u00B7 h:mm a' }}</option>\n </select>\n <span class=\"cqa-vh-compare-swap-btn\" (click)=\"swapVersions.emit()\" title=\"Swap\">\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M2 5H14M14 5L11 2M14 5L11 8M14 11H2M2 11L5 8M2 11L5 14\" stroke=\"#3f43ee\" stroke-width=\"1.5\"\n stroke-linecap=\"round\" stroke-linejoin=\"round\" />\n </svg>\n </span>\n <select class=\"cqa-vh-compare-select\" [ngModel]=\"compareToId\" (ngModelChange)=\"compareToChange.emit($event)\">\n <option *ngFor=\"let v of versions\" [ngValue]=\"v.id\">V{{ v.versionNumber }} \u00B7 {{ v.displayDate | date:'MMM d,\n yyyy \u00B7 h:mm a' }}</option>\n </select>\n </div>\n </div>\n\n <div *ngIf=\"!compareResult\" class=\"cqa-vh-compare-loading\">\n Loading comparison...\n </div>\n\n <ng-container *ngIf=\"compareResult\">\n <div class=\"d-flex align-items-center cqa-vh-compare-summary-badges\">\n <cqa-badge [label]=\"'+ ' + compareResult.summary.added + ' added'\" size=\"small\" backgroundColor=\"#ECFDF3\"\n textColor=\"#027A48\" borderColor=\"#A7F3D0\"></cqa-badge>\n <cqa-badge [label]=\"'~ ' + compareResult.summary.modified + ' modified'\" size=\"small\" backgroundColor=\"#FFFAEB\"\n textColor=\"#B54708\" borderColor=\"#FEDF89\"></cqa-badge>\n <cqa-badge [label]=\"'- ' + compareResult.summary.removed + ' removed'\" size=\"small\" backgroundColor=\"#FEF3F2\"\n textColor=\"#B42318\" borderColor=\"#FECDCA\"></cqa-badge>\n <cqa-badge [label]=\"'= ' + compareResult.summary.unchanged + ' unchanged'\" size=\"small\" backgroundColor=\"#F2F4F7\"\n textColor=\"#344054\" borderColor=\"#E4E7EC\"></cqa-badge>\n </div>\n\n <ng-container *ngIf=\"compareResult.testCaseChanges?.length || compareResult.stepChanges?.length; else noDiffs\">\n <ng-container *ngIf=\"compareResult.testCaseChanges?.length\">\n <div class=\"d-flex align-items-center cqa-vh-compare-section-header\">\n <span>Test Case Changes</span>\n <cqa-badge [label]=\"compareResult.testCaseChanges.length + ' diffs'\" size=\"small\" backgroundColor=\"#EFF4FF\"\n textColor=\"#3f43ee\" borderColor=\"#C7D7FE\"></cqa-badge>\n </div>\n <div *ngFor=\"let change of compareResult.testCaseChanges\" class=\"cqa-vh-compare-diff-row\">\n <div class=\"cqa-vh-compare-field-label\">{{ getFieldLabelFn(change.field) }}</div>\n <div style=\"display: flex; flex: 1; gap: 12px; min-width: 0;\">\n <div *ngIf=\"change.fromValue != null\" class=\"cqa-vh-compare-diff-cell cqa-vh-compare-diff-cell--removed\">\n <div class=\"cqa-vh-compare-diff-cell-text\" [innerHTML]=\"formatValueHtmlFn(change.fromValue, change.field)\"></div>\n </div>\n <div *ngIf=\"change.fromValue == null\" class=\"cqa-vh-compare-diff-cell-empty\"></div>\n <div *ngIf=\"change.toValue != null\" class=\"cqa-vh-compare-diff-cell cqa-vh-compare-diff-cell--added\">\n <div class=\"cqa-vh-compare-diff-cell-text\" [innerHTML]=\"formatValueHtmlFn(change.toValue, change.field)\"></div>\n </div>\n <div *ngIf=\"change.toValue == null\" class=\"cqa-vh-compare-diff-cell-empty\"></div>\n </div>\n </div>\n </ng-container>\n\n <ng-container *ngIf=\"compareResult.stepChanges?.length\">\n <div class=\"d-flex align-items-center cqa-vh-compare-section-header\"\n [style.margin-top.px]=\"compareResult.testCaseChanges?.length ? 20 : 0\">\n <span>Step Changes</span>\n <cqa-badge [label]=\"compareResult.stepChanges.length + ' diffs'\" size=\"small\" backgroundColor=\"#EFF4FF\"\n textColor=\"#3f43ee\" borderColor=\"#C7D7FE\"></cqa-badge>\n </div>\n\n <ng-container *ngFor=\"let stepGroup of groupedStepChanges; let sgi = index\">\n <div class=\"d-flex gap-2\">\n <!-- Step sub-group header -->\n <div class=\"cqa-vh-detail-step-group-header\" [style.margin-top.px]=\"sgi > 0 ? 14 : 4\">\n <!-- <span class=\"cqa-vh-detail-step-group-label\">{{ stepGroup.label }}</span> -->\n <cqa-badge [label]=\"stepGroup.label\" size=\"small\" backgroundColor=\"#EDF1F3\" textColor=\"#636A71\"\n borderColor=\"#DBDEE1\"></cqa-badge>\n </div>\n\n <!-- Changes within this step -->\n <div class=\"cqa-vh-compare-diff-row-container\">\n <div *ngFor=\"let change of stepGroup.changes\"\n class=\"cqa-vh-compare-diff-row cqa-vh-compare-diff-row--indented\">\n <!-- <div class=\"cqa-vh-compare-field-label\">{{ getFieldLabelFn(change.field) }}</div> -->\n <div style=\"display: flex; flex: 1; gap: 12px; min-width: 0; flex-grow:1;\">\n <div *ngIf=\"change.fromValue != null\"\n class=\"cqa-vh-compare-diff-cell cqa-vh-compare-diff-cell--removed\">\n <div class=\"cqa-vh-compare-diff-cell-text\" [innerHTML]=\"formatValueHtmlFn(change.fromValue, change.field)\"></div>\n </div>\n <div *ngIf=\"change.fromValue == null\" class=\"cqa-vh-compare-diff-cell-empty\"></div>\n <div *ngIf=\"change.toValue != null\" class=\"cqa-vh-compare-diff-cell cqa-vh-compare-diff-cell--added\">\n <div class=\"cqa-vh-compare-diff-cell-text\" [innerHTML]=\"formatValueHtmlFn(change.toValue, change.field)\"></div>\n </div>\n <div *ngIf=\"change.toValue == null\" class=\"cqa-vh-compare-diff-cell-empty\"></div>\n </div>\n </div>\n </div>\n </div>\n\n </ng-container>\n </ng-container>\n </ng-container>\n\n <ng-template #noDiffs>\n <div class=\"cqa-vh-compare-empty\">\n <cqa-empty-state title=\"No differences\" description=\"No differences between these versions.\"></cqa-empty-state>\n </div>\n </ng-template>\n </ng-container>\n</div>", styles: [] }]
|
|
42541
42535
|
}], propDecorators: { compareResult: [{
|
|
42542
42536
|
type: Input
|
|
42543
42537
|
}], versions: [{
|
|
@@ -42548,7 +42542,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImpor
|
|
|
42548
42542
|
type: Input
|
|
42549
42543
|
}], formatValueHtmlFn: [{
|
|
42550
42544
|
type: Input
|
|
42551
|
-
}],
|
|
42545
|
+
}], getFieldLabelFn: [{
|
|
42552
42546
|
type: Input
|
|
42553
42547
|
}], swapVersions: [{
|
|
42554
42548
|
type: Output
|
|
@@ -42576,10 +42570,10 @@ class VersionHistoryDetailComponent {
|
|
|
42576
42570
|
}
|
|
42577
42571
|
}
|
|
42578
42572
|
VersionHistoryDetailComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: VersionHistoryDetailComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
42579
|
-
VersionHistoryDetailComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.4.0", type: VersionHistoryDetailComponent, selector: "cqa-version-history-detail", inputs: { selectedVersion: "selectedVersion", selectedIsCurrent: "selectedIsCurrent", selectedVersionGroupedChanges: "selectedVersionGroupedChanges", isRestoring: "isRestoring", getAuthorLabelFn: "getAuthorLabelFn", getOpBadgeFn: "getOpBadgeFn", getChangeHeadlineFn: "getChangeHeadlineFn", formatValueHtmlFn: "formatValueHtmlFn", trackByGroupCategoryFn: "trackByGroupCategoryFn", trackByChangeFn: "trackByChangeFn" }, outputs: { compare: "compare", restore: "restore" }, ngImport: i0, template: "<ng-container *ngIf=\"selectedVersion; else noSelection\">\n <div class=\"d-flex align-items-start justify-content-between cqa-vh-detail-header\">\n <div>\n <div class=\"d-flex align-items-center\" style=\"gap: 8px; margin-bottom: 6px;\">\n <h3 class=\"cqa-vh-detail-version-number\">Version {{ selectedVersion.versionNumber }}</h3>\n <cqa-badge *ngIf=\"selectedIsCurrent\" label=\"Current\" size=\"small\" variant=\"info\" backgroundColor=\"#EFF4FF\"\n textColor=\"#3f43ee\" borderColor=\"#C7D7FE\"></cqa-badge>\n </div>\n <div class=\"cqa-vh-detail-meta\">\n {{ getAuthorLabelFn(selectedVersion) }} \u00B7 {{ selectedVersion.displayDate | date:'MMM d, yyyy \u00B7 h:mm a' }}\n </div>\n <div *ngIf=\"selectedVersion.changeSummary\" class=\"cqa-vh-detail-summary\">\n {{ selectedVersion.changeSummary }}\n </div>\n </div>\n <div *ngIf=\"!selectedIsCurrent\" class=\"cqa-vh-detail-actions\">\n <cqa-button variant=\"outlined\" text=\"Compare with Current\" (clicked)=\"compare.emit()\"></cqa-button>\n <cqa-button variant=\"filled\" icon=\"refresh\" [text]=\"isRestoring ? 'Restoring...' : 'Restore this Version'\"\n [disabled]=\"isRestoring\" (clicked)=\"restore.emit()\"></cqa-button>\n </div>\n </div>\n\n <ng-container *ngFor=\"let group of selectedVersionGroupedChanges; let gi = index; trackBy: trackByGroupCategoryFn\">\n\n <!-- Category header -->\n <div class=\"d-flex align-items-center\" style=\"gap: 8px; margin-bottom: 10px;\"\n [style.margin-top.px]=\"gi > 0 ? 20 : 0\">\n <span class=\"cqa-vh-detail-group-label\">{{ group.label }}</span>\n <cqa-badge [label]=\"'' + group.changes.length\" size=\"small\" variant=\"info\" backgroundColor=\"#EFF4FF\"\n textColor=\"#3f43ee\" borderColor=\"#C7D7FE\"></cqa-badge>\n </div>\n\n <!-- STEP category: second-level grouping by stepId -->\n <ng-container *ngIf=\"group.category === 'STEP' && group.stepGroups?.length; else flatChanges\">\n <ng-container *ngFor=\"let stepGroup of group.stepGroups; let si = index\">\n <div class=\"d-flex gap-2\">\n <!-- Step sub-group header -->\n <div class=\"\" [style.margin-top.px]=\"si > 0 ? 12 : 0\">\n <!-- <span class=\"cqa-vh-detail-step-group-label\">{{ stepGroup.label }}</span> -->\n <cqa-badge [label]=\"stepGroup.label\" size=\"small\" backgroundColor=\"#EDF1F3\"\n textColor=\"#636A71\" borderColor=\"#DBDEE1\"></cqa-badge>\n </div>\n <!-- Changes within this step \u2014 no Step badge (step is already in the sub-header) -->\n <div class=\"cqa-vh-detail-change-row-container\">\n <div *ngFor=\"let change of stepGroup.changes; trackBy: trackByChangeFn\"\n class=\"cqa-vh-detail-change-row cqa-vh-detail-change-row--indented\">\n <div>\n <div class=\"d-flex align-items-center my-4\" style=\"gap: 8px; flex-wrap: wrap;\">\n <cqa-badge [label]=\"getOpBadgeFn(change.op).label\" size=\"small\"\n [backgroundColor]=\"getOpBadgeFn(change.op).backgroundColor\"\n [textColor]=\"getOpBadgeFn(change.op).textColor\"\n [borderColor]=\"getOpBadgeFn(change.op).borderColor\"></cqa-badge>\n <span class=\"cqa-vh-detail-change-headline\">{{ getChangeHeadlineFn(change) }}</span>\n </div>\n\n <div *ngIf=\"change.fromValue != null\" class=\"cqa-vh-detail-change-value\">\n <cqa-badge [label]=\"'Before'\" size=\"small\" [backgroundColor]=\"'#FEF2F2'\" [textColor]=\"'#FB2C36'\"\n [borderColor]=\"'#FFE2E2'\"></cqa-badge>\n <span class=\"pl-4\" [innerHTML]=\"formatValueHtmlFn(change.fromValue)\"></span>\n </div>\n\n <div *ngIf=\"change.toValue != null\" class=\"cqa-vh-detail-change-value\">\n <cqa-badge [label]=\"'After'\" size=\"small\" [backgroundColor]=\"'#ECFDF5'\" [textColor]=\"'#009966'\"\n [borderColor]=\"'#D0FAE5'\"></cqa-badge>\n <span class=\"pl-4\" [innerHTML]=\"formatValueHtmlFn(change.toValue)\"></span>\n </div>\n </div>\n </div>\n </div>\n </div>\n\n\n\n\n </ng-container>\n </ng-container>\n\n <!-- All other categories: flat list (also fallback for STEP if no stepGroups) -->\n <ng-template #flatChanges>\n <div *ngFor=\"let change of group.changes; trackBy: trackByChangeFn\" class=\"cqa-vh-detail-change-row\">\n <div *ngIf=\"change.stepId != null\" class=\"cqa-vh-detail-change-step-col\">\n <cqa-badge [label]=\"'Step #' + change.stepId\" size=\"small\" [backgroundColor]=\"'#EDF1F3'\"\n [textColor]=\"'#636A71'\" [borderColor]=\"'#DBDEE1'\"></cqa-badge>\n </div>\n <div>\n <div class=\"d-flex align-items-center my-4\" style=\"gap: 8px; flex-wrap: wrap;\">\n <cqa-badge [label]=\"getOpBadgeFn(change.op).label\" size=\"small\"\n [backgroundColor]=\"getOpBadgeFn(change.op).backgroundColor\"\n [textColor]=\"getOpBadgeFn(change.op).textColor\"\n [borderColor]=\"getOpBadgeFn(change.op).borderColor\"></cqa-badge>\n <span class=\"cqa-vh-detail-change-headline\">{{ getChangeHeadlineFn(change) }}</span>\n </div>\n\n <div *ngIf=\"change.fromValue != null\" class=\"cqa-vh-detail-change-value\">\n <cqa-badge [label]=\"'Before'\" size=\"small\" [backgroundColor]=\"'#FEF2F2'\" [textColor]=\"'#FB2C36'\"\n [borderColor]=\"'#FFE2E2'\"></cqa-badge>\n <span class=\"pl-4\" [innerHTML]=\"formatValueHtmlFn(change.fromValue)\"></span>\n </div>\n\n <div *ngIf=\"change.toValue != null\" class=\"cqa-vh-detail-change-value\">\n <cqa-badge [label]=\"'After'\" size=\"small\" [backgroundColor]=\"'#ECFDF5'\" [textColor]=\"'#009966'\"\n [borderColor]=\"'#D0FAE5'\"></cqa-badge>\n <span class=\"pl-4\" [innerHTML]=\"formatValueHtmlFn(change.toValue)\"></span>\n </div>\n </div>\n </div>\n </ng-template>\n\n </ng-container>\n\n <div *ngIf=\"!selectedVersion.changes?.length\" class=\"cqa-vh-detail-empty\">\n <cqa-empty-state title=\"No changes\" description=\"No changes recorded for this version.\"></cqa-empty-state>\n </div>\n</ng-container>\n\n<ng-template #noSelection>\n <div class=\"cqa-vh-detail-no-selection\">\n Select a version to view details.\n </div>\n</ng-template>", components: [{ type: 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"] }, { type: ButtonComponent, selector: "cqa-button", inputs: ["variant", "btnSize", "disabled", "icon", "iconPosition", "fullWidth", "iconColor", "type", "text", "customClass", "inlineStyles", "tooltip", "tooltipPosition"], outputs: ["clicked"] }, { type: EmptyStateComponent, selector: "cqa-empty-state", inputs: ["preset", "imageUrl", "title", "description", "actions"], outputs: ["actionClick"] }], directives: [{ type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }], pipes: { "date": i2.DatePipe } });
|
|
42573
|
+
VersionHistoryDetailComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.4.0", type: VersionHistoryDetailComponent, selector: "cqa-version-history-detail", inputs: { selectedVersion: "selectedVersion", selectedIsCurrent: "selectedIsCurrent", selectedVersionGroupedChanges: "selectedVersionGroupedChanges", isRestoring: "isRestoring", getAuthorLabelFn: "getAuthorLabelFn", getOpBadgeFn: "getOpBadgeFn", getChangeHeadlineFn: "getChangeHeadlineFn", formatValueHtmlFn: "formatValueHtmlFn", trackByGroupCategoryFn: "trackByGroupCategoryFn", trackByChangeFn: "trackByChangeFn" }, outputs: { compare: "compare", restore: "restore" }, ngImport: i0, template: "<ng-container *ngIf=\"selectedVersion; else noSelection\">\n <div class=\"d-flex align-items-start justify-content-between cqa-vh-detail-header\">\n <div>\n <div class=\"d-flex align-items-center\" style=\"gap: 8px; margin-bottom: 6px;\">\n <h3 class=\"cqa-vh-detail-version-number\">Version {{ selectedVersion.versionNumber }}</h3>\n <cqa-badge *ngIf=\"selectedIsCurrent\" label=\"Current\" size=\"small\" variant=\"info\" backgroundColor=\"#EFF4FF\"\n textColor=\"#3f43ee\" borderColor=\"#C7D7FE\"></cqa-badge>\n </div>\n <div class=\"cqa-vh-detail-meta\">\n {{ getAuthorLabelFn(selectedVersion) }} \u00B7 {{ selectedVersion.displayDate | date:'MMM d, yyyy \u00B7 h:mm a' }}\n </div>\n <div *ngIf=\"selectedVersion.changeSummary\" class=\"cqa-vh-detail-summary\">\n {{ selectedVersion.changeSummary }}\n </div>\n </div>\n <div *ngIf=\"!selectedIsCurrent\" class=\"cqa-vh-detail-actions\">\n <cqa-button variant=\"outlined\" text=\"Compare with Current\" (clicked)=\"compare.emit()\"></cqa-button>\n <cqa-button variant=\"filled\" icon=\"refresh\" [text]=\"isRestoring ? 'Restoring...' : 'Restore this Version'\"\n [disabled]=\"isRestoring\" (clicked)=\"restore.emit()\"></cqa-button>\n </div>\n </div>\n\n <ng-container *ngFor=\"let group of selectedVersionGroupedChanges; let gi = index; trackBy: trackByGroupCategoryFn\">\n\n <!-- Category header -->\n <div class=\"d-flex align-items-center\" style=\"gap: 8px; margin-bottom: 10px;\"\n [style.margin-top.px]=\"gi > 0 ? 20 : 0\">\n <span class=\"cqa-vh-detail-group-label\">{{ group.label }}</span>\n <cqa-badge [label]=\"'' + group.changes.length\" size=\"small\" variant=\"info\" backgroundColor=\"#EFF4FF\"\n textColor=\"#3f43ee\" borderColor=\"#C7D7FE\"></cqa-badge>\n </div>\n\n <!-- STEP category: second-level grouping by stepId -->\n <ng-container *ngIf=\"group.category === 'STEP' && group.stepGroups?.length; else flatChanges\">\n <ng-container *ngFor=\"let stepGroup of group.stepGroups; let si = index\">\n <div class=\"d-flex gap-2\">\n <!-- Step sub-group header -->\n <div class=\"\" [style.margin-top.px]=\"si > 0 ? 12 : 0\">\n <!-- <span class=\"cqa-vh-detail-step-group-label\">{{ stepGroup.label }}</span> -->\n <cqa-badge [label]=\"stepGroup.label\" size=\"small\" backgroundColor=\"#EDF1F3\"\n textColor=\"#636A71\" borderColor=\"#DBDEE1\"></cqa-badge>\n </div>\n <!-- Changes within this step \u2014 no Step badge (step is already in the sub-header) -->\n <div class=\"cqa-vh-detail-change-row-container\">\n <div *ngFor=\"let change of stepGroup.changes; trackBy: trackByChangeFn\"\n class=\"cqa-vh-detail-change-row cqa-vh-detail-change-row--indented\">\n <div>\n <div class=\"d-flex align-items-center my-4\" style=\"gap: 8px; flex-wrap: wrap;\">\n <cqa-badge [label]=\"getOpBadgeFn(change.op).label\" size=\"small\"\n [backgroundColor]=\"getOpBadgeFn(change.op).backgroundColor\"\n [textColor]=\"getOpBadgeFn(change.op).textColor\"\n [borderColor]=\"getOpBadgeFn(change.op).borderColor\"></cqa-badge>\n <span class=\"cqa-vh-detail-change-headline\">{{ getChangeHeadlineFn(change) }}</span>\n </div>\n\n <div *ngIf=\"change.fromValue != null\" class=\"cqa-vh-detail-change-value\">\n <cqa-badge [label]=\"'Before'\" size=\"small\" [backgroundColor]=\"'#FEF2F2'\" [textColor]=\"'#FB2C36'\"\n [borderColor]=\"'#FFE2E2'\"></cqa-badge>\n <span class=\"pl-4\" [innerHTML]=\"formatValueHtmlFn(change.fromValue, change.field)\"></span>\n </div>\n\n <div *ngIf=\"change.toValue != null\" class=\"cqa-vh-detail-change-value\">\n <cqa-badge [label]=\"'After'\" size=\"small\" [backgroundColor]=\"'#ECFDF5'\" [textColor]=\"'#009966'\"\n [borderColor]=\"'#D0FAE5'\"></cqa-badge>\n <span class=\"pl-4\" [innerHTML]=\"formatValueHtmlFn(change.toValue, change.field)\"></span>\n </div>\n </div>\n </div>\n </div>\n </div>\n\n\n\n\n </ng-container>\n </ng-container>\n\n <!-- All other categories: flat list (also fallback for STEP if no stepGroups) -->\n <ng-template #flatChanges>\n <div *ngFor=\"let change of group.changes; trackBy: trackByChangeFn\" class=\"cqa-vh-detail-change-row\">\n <div *ngIf=\"change.stepId != null\" class=\"cqa-vh-detail-change-step-col\">\n <cqa-badge [label]=\"'Step #' + change.stepId\" size=\"small\" [backgroundColor]=\"'#EDF1F3'\"\n [textColor]=\"'#636A71'\" [borderColor]=\"'#DBDEE1'\"></cqa-badge>\n </div>\n <div>\n <div class=\"d-flex align-items-center my-4\" style=\"gap: 8px; flex-wrap: wrap;\">\n <cqa-badge [label]=\"getOpBadgeFn(change.op).label\" size=\"small\"\n [backgroundColor]=\"getOpBadgeFn(change.op).backgroundColor\"\n [textColor]=\"getOpBadgeFn(change.op).textColor\"\n [borderColor]=\"getOpBadgeFn(change.op).borderColor\"></cqa-badge>\n <span class=\"cqa-vh-detail-change-headline\">{{ getChangeHeadlineFn(change) }}</span>\n </div>\n\n <div *ngIf=\"change.fromValue != null\" class=\"cqa-vh-detail-change-value\">\n <cqa-badge [label]=\"'Before'\" size=\"small\" [backgroundColor]=\"'#FEF2F2'\" [textColor]=\"'#FB2C36'\"\n [borderColor]=\"'#FFE2E2'\"></cqa-badge>\n <span class=\"pl-4\" [innerHTML]=\"formatValueHtmlFn(change.fromValue, change.field)\"></span>\n </div>\n\n <div *ngIf=\"change.toValue != null\" class=\"cqa-vh-detail-change-value\">\n <cqa-badge [label]=\"'After'\" size=\"small\" [backgroundColor]=\"'#ECFDF5'\" [textColor]=\"'#009966'\"\n [borderColor]=\"'#D0FAE5'\"></cqa-badge>\n <span class=\"pl-4\" [innerHTML]=\"formatValueHtmlFn(change.toValue, change.field)\"></span>\n </div>\n </div>\n </div>\n </ng-template>\n\n </ng-container>\n\n <div *ngIf=\"!selectedVersion.changes?.length\" class=\"cqa-vh-detail-empty\">\n <cqa-empty-state title=\"No changes\" description=\"No changes recorded for this version.\"></cqa-empty-state>\n </div>\n</ng-container>\n\n<ng-template #noSelection>\n <div class=\"cqa-vh-detail-no-selection\">\n Select a version to view details.\n </div>\n</ng-template>", components: [{ type: 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"] }, { type: ButtonComponent, selector: "cqa-button", inputs: ["variant", "btnSize", "disabled", "icon", "iconPosition", "fullWidth", "iconColor", "type", "text", "customClass", "inlineStyles", "tooltip", "tooltipPosition"], outputs: ["clicked"] }, { type: EmptyStateComponent, selector: "cqa-empty-state", inputs: ["preset", "imageUrl", "title", "description", "actions"], outputs: ["actionClick"] }], directives: [{ type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }], pipes: { "date": i2.DatePipe } });
|
|
42580
42574
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: VersionHistoryDetailComponent, decorators: [{
|
|
42581
42575
|
type: Component,
|
|
42582
|
-
args: [{ selector: 'cqa-version-history-detail', template: "<ng-container *ngIf=\"selectedVersion; else noSelection\">\n <div class=\"d-flex align-items-start justify-content-between cqa-vh-detail-header\">\n <div>\n <div class=\"d-flex align-items-center\" style=\"gap: 8px; margin-bottom: 6px;\">\n <h3 class=\"cqa-vh-detail-version-number\">Version {{ selectedVersion.versionNumber }}</h3>\n <cqa-badge *ngIf=\"selectedIsCurrent\" label=\"Current\" size=\"small\" variant=\"info\" backgroundColor=\"#EFF4FF\"\n textColor=\"#3f43ee\" borderColor=\"#C7D7FE\"></cqa-badge>\n </div>\n <div class=\"cqa-vh-detail-meta\">\n {{ getAuthorLabelFn(selectedVersion) }} \u00B7 {{ selectedVersion.displayDate | date:'MMM d, yyyy \u00B7 h:mm a' }}\n </div>\n <div *ngIf=\"selectedVersion.changeSummary\" class=\"cqa-vh-detail-summary\">\n {{ selectedVersion.changeSummary }}\n </div>\n </div>\n <div *ngIf=\"!selectedIsCurrent\" class=\"cqa-vh-detail-actions\">\n <cqa-button variant=\"outlined\" text=\"Compare with Current\" (clicked)=\"compare.emit()\"></cqa-button>\n <cqa-button variant=\"filled\" icon=\"refresh\" [text]=\"isRestoring ? 'Restoring...' : 'Restore this Version'\"\n [disabled]=\"isRestoring\" (clicked)=\"restore.emit()\"></cqa-button>\n </div>\n </div>\n\n <ng-container *ngFor=\"let group of selectedVersionGroupedChanges; let gi = index; trackBy: trackByGroupCategoryFn\">\n\n <!-- Category header -->\n <div class=\"d-flex align-items-center\" style=\"gap: 8px; margin-bottom: 10px;\"\n [style.margin-top.px]=\"gi > 0 ? 20 : 0\">\n <span class=\"cqa-vh-detail-group-label\">{{ group.label }}</span>\n <cqa-badge [label]=\"'' + group.changes.length\" size=\"small\" variant=\"info\" backgroundColor=\"#EFF4FF\"\n textColor=\"#3f43ee\" borderColor=\"#C7D7FE\"></cqa-badge>\n </div>\n\n <!-- STEP category: second-level grouping by stepId -->\n <ng-container *ngIf=\"group.category === 'STEP' && group.stepGroups?.length; else flatChanges\">\n <ng-container *ngFor=\"let stepGroup of group.stepGroups; let si = index\">\n <div class=\"d-flex gap-2\">\n <!-- Step sub-group header -->\n <div class=\"\" [style.margin-top.px]=\"si > 0 ? 12 : 0\">\n <!-- <span class=\"cqa-vh-detail-step-group-label\">{{ stepGroup.label }}</span> -->\n <cqa-badge [label]=\"stepGroup.label\" size=\"small\" backgroundColor=\"#EDF1F3\"\n textColor=\"#636A71\" borderColor=\"#DBDEE1\"></cqa-badge>\n </div>\n <!-- Changes within this step \u2014 no Step badge (step is already in the sub-header) -->\n <div class=\"cqa-vh-detail-change-row-container\">\n <div *ngFor=\"let change of stepGroup.changes; trackBy: trackByChangeFn\"\n class=\"cqa-vh-detail-change-row cqa-vh-detail-change-row--indented\">\n <div>\n <div class=\"d-flex align-items-center my-4\" style=\"gap: 8px; flex-wrap: wrap;\">\n <cqa-badge [label]=\"getOpBadgeFn(change.op).label\" size=\"small\"\n [backgroundColor]=\"getOpBadgeFn(change.op).backgroundColor\"\n [textColor]=\"getOpBadgeFn(change.op).textColor\"\n [borderColor]=\"getOpBadgeFn(change.op).borderColor\"></cqa-badge>\n <span class=\"cqa-vh-detail-change-headline\">{{ getChangeHeadlineFn(change) }}</span>\n </div>\n\n <div *ngIf=\"change.fromValue != null\" class=\"cqa-vh-detail-change-value\">\n <cqa-badge [label]=\"'Before'\" size=\"small\" [backgroundColor]=\"'#FEF2F2'\" [textColor]=\"'#FB2C36'\"\n [borderColor]=\"'#FFE2E2'\"></cqa-badge>\n <span class=\"pl-4\" [innerHTML]=\"formatValueHtmlFn(change.fromValue)\"></span>\n </div>\n\n <div *ngIf=\"change.toValue != null\" class=\"cqa-vh-detail-change-value\">\n <cqa-badge [label]=\"'After'\" size=\"small\" [backgroundColor]=\"'#ECFDF5'\" [textColor]=\"'#009966'\"\n [borderColor]=\"'#D0FAE5'\"></cqa-badge>\n <span class=\"pl-4\" [innerHTML]=\"formatValueHtmlFn(change.toValue)\"></span>\n </div>\n </div>\n </div>\n </div>\n </div>\n\n\n\n\n </ng-container>\n </ng-container>\n\n <!-- All other categories: flat list (also fallback for STEP if no stepGroups) -->\n <ng-template #flatChanges>\n <div *ngFor=\"let change of group.changes; trackBy: trackByChangeFn\" class=\"cqa-vh-detail-change-row\">\n <div *ngIf=\"change.stepId != null\" class=\"cqa-vh-detail-change-step-col\">\n <cqa-badge [label]=\"'Step #' + change.stepId\" size=\"small\" [backgroundColor]=\"'#EDF1F3'\"\n [textColor]=\"'#636A71'\" [borderColor]=\"'#DBDEE1'\"></cqa-badge>\n </div>\n <div>\n <div class=\"d-flex align-items-center my-4\" style=\"gap: 8px; flex-wrap: wrap;\">\n <cqa-badge [label]=\"getOpBadgeFn(change.op).label\" size=\"small\"\n [backgroundColor]=\"getOpBadgeFn(change.op).backgroundColor\"\n [textColor]=\"getOpBadgeFn(change.op).textColor\"\n [borderColor]=\"getOpBadgeFn(change.op).borderColor\"></cqa-badge>\n <span class=\"cqa-vh-detail-change-headline\">{{ getChangeHeadlineFn(change) }}</span>\n </div>\n\n <div *ngIf=\"change.fromValue != null\" class=\"cqa-vh-detail-change-value\">\n <cqa-badge [label]=\"'Before'\" size=\"small\" [backgroundColor]=\"'#FEF2F2'\" [textColor]=\"'#FB2C36'\"\n [borderColor]=\"'#FFE2E2'\"></cqa-badge>\n <span class=\"pl-4\" [innerHTML]=\"formatValueHtmlFn(change.fromValue)\"></span>\n </div>\n\n <div *ngIf=\"change.toValue != null\" class=\"cqa-vh-detail-change-value\">\n <cqa-badge [label]=\"'After'\" size=\"small\" [backgroundColor]=\"'#ECFDF5'\" [textColor]=\"'#009966'\"\n [borderColor]=\"'#D0FAE5'\"></cqa-badge>\n <span class=\"pl-4\" [innerHTML]=\"formatValueHtmlFn(change.toValue)\"></span>\n </div>\n </div>\n </div>\n </ng-template>\n\n </ng-container>\n\n <div *ngIf=\"!selectedVersion.changes?.length\" class=\"cqa-vh-detail-empty\">\n <cqa-empty-state title=\"No changes\" description=\"No changes recorded for this version.\"></cqa-empty-state>\n </div>\n</ng-container>\n\n<ng-template #noSelection>\n <div class=\"cqa-vh-detail-no-selection\">\n Select a version to view details.\n </div>\n</ng-template>", styles: [] }]
|
|
42576
|
+
args: [{ selector: 'cqa-version-history-detail', template: "<ng-container *ngIf=\"selectedVersion; else noSelection\">\n <div class=\"d-flex align-items-start justify-content-between cqa-vh-detail-header\">\n <div>\n <div class=\"d-flex align-items-center\" style=\"gap: 8px; margin-bottom: 6px;\">\n <h3 class=\"cqa-vh-detail-version-number\">Version {{ selectedVersion.versionNumber }}</h3>\n <cqa-badge *ngIf=\"selectedIsCurrent\" label=\"Current\" size=\"small\" variant=\"info\" backgroundColor=\"#EFF4FF\"\n textColor=\"#3f43ee\" borderColor=\"#C7D7FE\"></cqa-badge>\n </div>\n <div class=\"cqa-vh-detail-meta\">\n {{ getAuthorLabelFn(selectedVersion) }} \u00B7 {{ selectedVersion.displayDate | date:'MMM d, yyyy \u00B7 h:mm a' }}\n </div>\n <div *ngIf=\"selectedVersion.changeSummary\" class=\"cqa-vh-detail-summary\">\n {{ selectedVersion.changeSummary }}\n </div>\n </div>\n <div *ngIf=\"!selectedIsCurrent\" class=\"cqa-vh-detail-actions\">\n <cqa-button variant=\"outlined\" text=\"Compare with Current\" (clicked)=\"compare.emit()\"></cqa-button>\n <cqa-button variant=\"filled\" icon=\"refresh\" [text]=\"isRestoring ? 'Restoring...' : 'Restore this Version'\"\n [disabled]=\"isRestoring\" (clicked)=\"restore.emit()\"></cqa-button>\n </div>\n </div>\n\n <ng-container *ngFor=\"let group of selectedVersionGroupedChanges; let gi = index; trackBy: trackByGroupCategoryFn\">\n\n <!-- Category header -->\n <div class=\"d-flex align-items-center\" style=\"gap: 8px; margin-bottom: 10px;\"\n [style.margin-top.px]=\"gi > 0 ? 20 : 0\">\n <span class=\"cqa-vh-detail-group-label\">{{ group.label }}</span>\n <cqa-badge [label]=\"'' + group.changes.length\" size=\"small\" variant=\"info\" backgroundColor=\"#EFF4FF\"\n textColor=\"#3f43ee\" borderColor=\"#C7D7FE\"></cqa-badge>\n </div>\n\n <!-- STEP category: second-level grouping by stepId -->\n <ng-container *ngIf=\"group.category === 'STEP' && group.stepGroups?.length; else flatChanges\">\n <ng-container *ngFor=\"let stepGroup of group.stepGroups; let si = index\">\n <div class=\"d-flex gap-2\">\n <!-- Step sub-group header -->\n <div class=\"\" [style.margin-top.px]=\"si > 0 ? 12 : 0\">\n <!-- <span class=\"cqa-vh-detail-step-group-label\">{{ stepGroup.label }}</span> -->\n <cqa-badge [label]=\"stepGroup.label\" size=\"small\" backgroundColor=\"#EDF1F3\"\n textColor=\"#636A71\" borderColor=\"#DBDEE1\"></cqa-badge>\n </div>\n <!-- Changes within this step \u2014 no Step badge (step is already in the sub-header) -->\n <div class=\"cqa-vh-detail-change-row-container\">\n <div *ngFor=\"let change of stepGroup.changes; trackBy: trackByChangeFn\"\n class=\"cqa-vh-detail-change-row cqa-vh-detail-change-row--indented\">\n <div>\n <div class=\"d-flex align-items-center my-4\" style=\"gap: 8px; flex-wrap: wrap;\">\n <cqa-badge [label]=\"getOpBadgeFn(change.op).label\" size=\"small\"\n [backgroundColor]=\"getOpBadgeFn(change.op).backgroundColor\"\n [textColor]=\"getOpBadgeFn(change.op).textColor\"\n [borderColor]=\"getOpBadgeFn(change.op).borderColor\"></cqa-badge>\n <span class=\"cqa-vh-detail-change-headline\">{{ getChangeHeadlineFn(change) }}</span>\n </div>\n\n <div *ngIf=\"change.fromValue != null\" class=\"cqa-vh-detail-change-value\">\n <cqa-badge [label]=\"'Before'\" size=\"small\" [backgroundColor]=\"'#FEF2F2'\" [textColor]=\"'#FB2C36'\"\n [borderColor]=\"'#FFE2E2'\"></cqa-badge>\n <span class=\"pl-4\" [innerHTML]=\"formatValueHtmlFn(change.fromValue, change.field)\"></span>\n </div>\n\n <div *ngIf=\"change.toValue != null\" class=\"cqa-vh-detail-change-value\">\n <cqa-badge [label]=\"'After'\" size=\"small\" [backgroundColor]=\"'#ECFDF5'\" [textColor]=\"'#009966'\"\n [borderColor]=\"'#D0FAE5'\"></cqa-badge>\n <span class=\"pl-4\" [innerHTML]=\"formatValueHtmlFn(change.toValue, change.field)\"></span>\n </div>\n </div>\n </div>\n </div>\n </div>\n\n\n\n\n </ng-container>\n </ng-container>\n\n <!-- All other categories: flat list (also fallback for STEP if no stepGroups) -->\n <ng-template #flatChanges>\n <div *ngFor=\"let change of group.changes; trackBy: trackByChangeFn\" class=\"cqa-vh-detail-change-row\">\n <div *ngIf=\"change.stepId != null\" class=\"cqa-vh-detail-change-step-col\">\n <cqa-badge [label]=\"'Step #' + change.stepId\" size=\"small\" [backgroundColor]=\"'#EDF1F3'\"\n [textColor]=\"'#636A71'\" [borderColor]=\"'#DBDEE1'\"></cqa-badge>\n </div>\n <div>\n <div class=\"d-flex align-items-center my-4\" style=\"gap: 8px; flex-wrap: wrap;\">\n <cqa-badge [label]=\"getOpBadgeFn(change.op).label\" size=\"small\"\n [backgroundColor]=\"getOpBadgeFn(change.op).backgroundColor\"\n [textColor]=\"getOpBadgeFn(change.op).textColor\"\n [borderColor]=\"getOpBadgeFn(change.op).borderColor\"></cqa-badge>\n <span class=\"cqa-vh-detail-change-headline\">{{ getChangeHeadlineFn(change) }}</span>\n </div>\n\n <div *ngIf=\"change.fromValue != null\" class=\"cqa-vh-detail-change-value\">\n <cqa-badge [label]=\"'Before'\" size=\"small\" [backgroundColor]=\"'#FEF2F2'\" [textColor]=\"'#FB2C36'\"\n [borderColor]=\"'#FFE2E2'\"></cqa-badge>\n <span class=\"pl-4\" [innerHTML]=\"formatValueHtmlFn(change.fromValue, change.field)\"></span>\n </div>\n\n <div *ngIf=\"change.toValue != null\" class=\"cqa-vh-detail-change-value\">\n <cqa-badge [label]=\"'After'\" size=\"small\" [backgroundColor]=\"'#ECFDF5'\" [textColor]=\"'#009966'\"\n [borderColor]=\"'#D0FAE5'\"></cqa-badge>\n <span class=\"pl-4\" [innerHTML]=\"formatValueHtmlFn(change.toValue, change.field)\"></span>\n </div>\n </div>\n </div>\n </ng-template>\n\n </ng-container>\n\n <div *ngIf=\"!selectedVersion.changes?.length\" class=\"cqa-vh-detail-empty\">\n <cqa-empty-state title=\"No changes\" description=\"No changes recorded for this version.\"></cqa-empty-state>\n </div>\n</ng-container>\n\n<ng-template #noSelection>\n <div class=\"cqa-vh-detail-no-selection\">\n Select a version to view details.\n </div>\n</ng-template>", styles: [] }]
|
|
42583
42577
|
}], propDecorators: { selectedVersion: [{
|
|
42584
42578
|
type: Input
|
|
42585
42579
|
}], selectedIsCurrent: [{
|
|
@@ -42612,7 +42606,6 @@ class VersionHistoryRestoreConfirmComponent {
|
|
|
42612
42606
|
this.newVersionNumber = 0;
|
|
42613
42607
|
this.authorName = '';
|
|
42614
42608
|
this.getChangeHeadlineFn = null;
|
|
42615
|
-
this.fieldLabelMap = {};
|
|
42616
42609
|
}
|
|
42617
42610
|
getRestoreToLabel() {
|
|
42618
42611
|
if (!this.restoringToVersion) {
|
|
@@ -42629,58 +42622,30 @@ class VersionHistoryRestoreConfirmComponent {
|
|
|
42629
42622
|
d.toLocaleTimeString('en-US', { hour: 'numeric', minute: '2-digit' });
|
|
42630
42623
|
}
|
|
42631
42624
|
getChangeInfo(change) {
|
|
42632
|
-
const rawField = change?.field || 'field';
|
|
42633
|
-
const field = this.fieldLabelMap[rawField] || rawField;
|
|
42634
42625
|
const op = (change?.op || '').toLowerCase();
|
|
42635
|
-
|
|
42636
|
-
|
|
42637
|
-
|
|
42638
|
-
|
|
42639
|
-
// Raw values preserved for innerHTML detail rows (HTML kept, no truncation)
|
|
42626
|
+
// Sentence comes entirely from the parent via getChangeHeadlineFn
|
|
42627
|
+
const sentence = this.getChangeHeadlineFn
|
|
42628
|
+
? this.getChangeHeadlineFn(change)
|
|
42629
|
+
: this.fallbackSentence(change);
|
|
42640
42630
|
const fromDisplay = this.toDisplayHtml(change?.fromValue);
|
|
42641
42631
|
const toDisplay = this.toDisplayHtml(change?.toValue);
|
|
42642
|
-
let sentence;
|
|
42643
|
-
if (op === 'add') {
|
|
42644
|
-
sentence = `${step}${field} added`;
|
|
42645
|
-
}
|
|
42646
|
-
else if (op === 'remove') {
|
|
42647
|
-
sentence = `${step}${field} removed`;
|
|
42648
|
-
}
|
|
42649
|
-
else if (op === 'replace') {
|
|
42650
|
-
if (fromText && toText) {
|
|
42651
|
-
sentence = `${step}${field} changed`;
|
|
42652
|
-
}
|
|
42653
|
-
else if (toText) {
|
|
42654
|
-
sentence = `${step}${field} reset to ${toText}`;
|
|
42655
|
-
}
|
|
42656
|
-
else if (fromText) {
|
|
42657
|
-
sentence = `${step}${field} reverted`;
|
|
42658
|
-
}
|
|
42659
|
-
else {
|
|
42660
|
-
sentence = `${step}${field} changed`;
|
|
42661
|
-
}
|
|
42662
|
-
}
|
|
42663
|
-
else {
|
|
42664
|
-
sentence = `${step}${field} updated`;
|
|
42665
|
-
}
|
|
42666
42632
|
return { sentence, fromDisplay, toDisplay, op };
|
|
42667
42633
|
}
|
|
42668
|
-
//
|
|
42669
|
-
|
|
42670
|
-
|
|
42671
|
-
|
|
42672
|
-
}
|
|
42673
|
-
|
|
42674
|
-
|
|
42675
|
-
text = value.replace(/<[^>]*>/g, ' ').replace(/\s+/g, ' ').trim();
|
|
42634
|
+
// Basic fallback if no getChangeHeadlineFn is provided
|
|
42635
|
+
fallbackSentence(change) {
|
|
42636
|
+
const field = change?.field || 'Step';
|
|
42637
|
+
const op = (change?.op || '').toLowerCase();
|
|
42638
|
+
const step = change?.stepId != null ? `Step #${change.stepId} ` : '';
|
|
42639
|
+
if (op === 'add') {
|
|
42640
|
+
return `${step}${field} added`;
|
|
42676
42641
|
}
|
|
42677
|
-
|
|
42678
|
-
|
|
42642
|
+
if (op === 'remove') {
|
|
42643
|
+
return `${step}${field} removed`;
|
|
42679
42644
|
}
|
|
42680
|
-
|
|
42681
|
-
|
|
42645
|
+
if (op === 'replace') {
|
|
42646
|
+
return `${step}${field} changed`;
|
|
42682
42647
|
}
|
|
42683
|
-
return
|
|
42648
|
+
return `${step}${field} updated`;
|
|
42684
42649
|
}
|
|
42685
42650
|
// Preserve HTML for detail pills — objects resolved to a readable string
|
|
42686
42651
|
toDisplayHtml(value) {
|
|
@@ -42697,7 +42662,7 @@ class VersionHistoryRestoreConfirmComponent {
|
|
|
42697
42662
|
}
|
|
42698
42663
|
}
|
|
42699
42664
|
VersionHistoryRestoreConfirmComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: VersionHistoryRestoreConfirmComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
42700
|
-
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"
|
|
42665
|
+
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-list\">\n <div *ngFor=\"let change of restoringToVersion.changes; let i = index\"\n class=\"cqa-vh-restore-change-item\">\n\n <div class=\"cqa-vh-restore-change-index\">{{ i + 1 }}</div>\n\n <ng-container *ngIf=\"getChangeInfo(change) as info\">\n <div class=\"cqa-vh-restore-change-body\">\n\n <!-- Primary sentence -->\n <span class=\"cqa-vh-restore-change-sentence\">{{ info.sentence }}</span>\n\n <!-- From \u2192 To detail (replace only) -->\n <div *ngIf=\"info.op === 'replace' && info.fromDisplay && info.toDisplay\"\n class=\"cqa-vh-restore-change-detail\">\n <span class=\"cqa-vh-restore-change-detail-value cqa-vh-restore-change-detail-value--from\" [innerHTML]=\"info.fromDisplay\"></span>\n <span class=\"cqa-vh-restore-change-detail-arrow\">\u2192</span>\n <span class=\"cqa-vh-restore-change-detail-value cqa-vh-restore-change-detail-value--to\" [innerHTML]=\"info.toDisplay\"></span>\n </div>\n\n <!-- Was: (remove only) -->\n <div *ngIf=\"info.op === 'remove' && info.fromDisplay\" class=\"cqa-vh-restore-change-detail\">\n <span class=\"cqa-vh-restore-change-detail-label\">Was:</span>\n <span class=\"cqa-vh-restore-change-detail-value cqa-vh-restore-change-detail-value--from\" [innerHTML]=\"info.fromDisplay\"></span>\n </div>\n\n </div>\n </ng-container>\n\n </div>\n </div>\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: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }] });
|
|
42701
42666
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: VersionHistoryRestoreConfirmComponent, decorators: [{
|
|
42702
42667
|
type: Component,
|
|
42703
42668
|
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-list\">\n <div *ngFor=\"let change of restoringToVersion.changes; let i = index\"\n class=\"cqa-vh-restore-change-item\">\n\n <div class=\"cqa-vh-restore-change-index\">{{ i + 1 }}</div>\n\n <ng-container *ngIf=\"getChangeInfo(change) as info\">\n <div class=\"cqa-vh-restore-change-body\">\n\n <!-- Primary sentence -->\n <span class=\"cqa-vh-restore-change-sentence\">{{ info.sentence }}</span>\n\n <!-- From \u2192 To detail (replace only) -->\n <div *ngIf=\"info.op === 'replace' && info.fromDisplay && info.toDisplay\"\n class=\"cqa-vh-restore-change-detail\">\n <span class=\"cqa-vh-restore-change-detail-value cqa-vh-restore-change-detail-value--from\" [innerHTML]=\"info.fromDisplay\"></span>\n <span class=\"cqa-vh-restore-change-detail-arrow\">\u2192</span>\n <span class=\"cqa-vh-restore-change-detail-value cqa-vh-restore-change-detail-value--to\" [innerHTML]=\"info.toDisplay\"></span>\n </div>\n\n <!-- Was: (remove only) -->\n <div *ngIf=\"info.op === 'remove' && info.fromDisplay\" class=\"cqa-vh-restore-change-detail\">\n <span class=\"cqa-vh-restore-change-detail-label\">Was:</span>\n <span class=\"cqa-vh-restore-change-detail-value cqa-vh-restore-change-detail-value--from\" [innerHTML]=\"info.fromDisplay\"></span>\n </div>\n\n </div>\n </ng-container>\n\n </div>\n </div>\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: [] }]
|
|
@@ -42711,8 +42676,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImpor
|
|
|
42711
42676
|
type: Input
|
|
42712
42677
|
}], getChangeHeadlineFn: [{
|
|
42713
42678
|
type: Input
|
|
42714
|
-
}], fieldLabelMap: [{
|
|
42715
|
-
type: Input
|
|
42716
42679
|
}] } });
|
|
42717
42680
|
|
|
42718
42681
|
class UiKitModule {
|