@cqa-lib/cqa-ui 1.1.436 → 1.1.438
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
|
@@ -42615,7 +42615,7 @@ class VersionHistoryCompareComponent {
|
|
|
42615
42615
|
this.compareFromId = null;
|
|
42616
42616
|
this.compareToId = null;
|
|
42617
42617
|
this.formatValueHtmlFn = (v) => String(v !== null && v !== void 0 ? v : '');
|
|
42618
|
-
this.
|
|
42618
|
+
this.getFieldLabelFn = (f) => f || 'field';
|
|
42619
42619
|
this.swapVersions = new EventEmitter();
|
|
42620
42620
|
this.closeComparison = new EventEmitter();
|
|
42621
42621
|
this.compareFromChange = new EventEmitter();
|
|
@@ -42627,12 +42627,6 @@ class VersionHistoryCompareComponent {
|
|
|
42627
42627
|
this.groupedStepChanges = this.buildGroupedStepChanges();
|
|
42628
42628
|
}
|
|
42629
42629
|
}
|
|
42630
|
-
getFieldLabel(field) {
|
|
42631
|
-
if (!field) {
|
|
42632
|
-
return 'field';
|
|
42633
|
-
}
|
|
42634
|
-
return this.fieldLabelMap[field] || field;
|
|
42635
|
-
}
|
|
42636
42630
|
buildGroupedStepChanges() {
|
|
42637
42631
|
var _a;
|
|
42638
42632
|
const changes = ((_a = this.compareResult) === null || _a === void 0 ? void 0 : _a.stepChanges) || [];
|
|
@@ -42664,10 +42658,10 @@ class VersionHistoryCompareComponent {
|
|
|
42664
42658
|
}
|
|
42665
42659
|
}
|
|
42666
42660
|
VersionHistoryCompareComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: VersionHistoryCompareComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
42667
|
-
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",
|
|
42661
|
+
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 } });
|
|
42668
42662
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: VersionHistoryCompareComponent, decorators: [{
|
|
42669
42663
|
type: Component,
|
|
42670
|
-
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\">{{
|
|
42664
|
+
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: [] }]
|
|
42671
42665
|
}], propDecorators: { compareResult: [{
|
|
42672
42666
|
type: Input
|
|
42673
42667
|
}], versions: [{
|
|
@@ -42678,7 +42672,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImpor
|
|
|
42678
42672
|
type: Input
|
|
42679
42673
|
}], formatValueHtmlFn: [{
|
|
42680
42674
|
type: Input
|
|
42681
|
-
}],
|
|
42675
|
+
}], getFieldLabelFn: [{
|
|
42682
42676
|
type: Input
|
|
42683
42677
|
}], swapVersions: [{
|
|
42684
42678
|
type: Output
|
|
@@ -42706,10 +42700,10 @@ class VersionHistoryDetailComponent {
|
|
|
42706
42700
|
}
|
|
42707
42701
|
}
|
|
42708
42702
|
VersionHistoryDetailComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: VersionHistoryDetailComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
42709
|
-
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 } });
|
|
42703
|
+
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 } });
|
|
42710
42704
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: VersionHistoryDetailComponent, decorators: [{
|
|
42711
42705
|
type: Component,
|
|
42712
|
-
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: [] }]
|
|
42706
|
+
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: [] }]
|
|
42713
42707
|
}], propDecorators: { selectedVersion: [{
|
|
42714
42708
|
type: Input
|
|
42715
42709
|
}], selectedIsCurrent: [{
|
|
@@ -42742,7 +42736,6 @@ class VersionHistoryRestoreConfirmComponent {
|
|
|
42742
42736
|
this.newVersionNumber = 0;
|
|
42743
42737
|
this.authorName = '';
|
|
42744
42738
|
this.getChangeHeadlineFn = null;
|
|
42745
|
-
this.fieldLabelMap = {};
|
|
42746
42739
|
}
|
|
42747
42740
|
getRestoreToLabel() {
|
|
42748
42741
|
if (!this.restoringToVersion) {
|
|
@@ -42759,58 +42752,30 @@ class VersionHistoryRestoreConfirmComponent {
|
|
|
42759
42752
|
d.toLocaleTimeString('en-US', { hour: 'numeric', minute: '2-digit' });
|
|
42760
42753
|
}
|
|
42761
42754
|
getChangeInfo(change) {
|
|
42762
|
-
const rawField = (change === null || change === void 0 ? void 0 : change.field) || 'field';
|
|
42763
|
-
const field = this.fieldLabelMap[rawField] || rawField;
|
|
42764
42755
|
const op = ((change === null || change === void 0 ? void 0 : change.op) || '').toLowerCase();
|
|
42765
|
-
|
|
42766
|
-
|
|
42767
|
-
|
|
42768
|
-
|
|
42769
|
-
// Raw values preserved for innerHTML detail rows (HTML kept, no truncation)
|
|
42756
|
+
// Sentence comes entirely from the parent via getChangeHeadlineFn
|
|
42757
|
+
const sentence = this.getChangeHeadlineFn
|
|
42758
|
+
? this.getChangeHeadlineFn(change)
|
|
42759
|
+
: this.fallbackSentence(change);
|
|
42770
42760
|
const fromDisplay = this.toDisplayHtml(change === null || change === void 0 ? void 0 : change.fromValue);
|
|
42771
42761
|
const toDisplay = this.toDisplayHtml(change === null || change === void 0 ? void 0 : change.toValue);
|
|
42772
|
-
let sentence;
|
|
42773
|
-
if (op === 'add') {
|
|
42774
|
-
sentence = `${step}${field} added`;
|
|
42775
|
-
}
|
|
42776
|
-
else if (op === 'remove') {
|
|
42777
|
-
sentence = `${step}${field} removed`;
|
|
42778
|
-
}
|
|
42779
|
-
else if (op === 'replace') {
|
|
42780
|
-
if (fromText && toText) {
|
|
42781
|
-
sentence = `${step}${field} changed`;
|
|
42782
|
-
}
|
|
42783
|
-
else if (toText) {
|
|
42784
|
-
sentence = `${step}${field} reset to ${toText}`;
|
|
42785
|
-
}
|
|
42786
|
-
else if (fromText) {
|
|
42787
|
-
sentence = `${step}${field} reverted`;
|
|
42788
|
-
}
|
|
42789
|
-
else {
|
|
42790
|
-
sentence = `${step}${field} changed`;
|
|
42791
|
-
}
|
|
42792
|
-
}
|
|
42793
|
-
else {
|
|
42794
|
-
sentence = `${step}${field} updated`;
|
|
42795
|
-
}
|
|
42796
42762
|
return { sentence, fromDisplay, toDisplay, op };
|
|
42797
42763
|
}
|
|
42798
|
-
//
|
|
42799
|
-
|
|
42800
|
-
|
|
42801
|
-
|
|
42802
|
-
}
|
|
42803
|
-
|
|
42804
|
-
|
|
42805
|
-
text = value.replace(/<[^>]*>/g, ' ').replace(/\s+/g, ' ').trim();
|
|
42764
|
+
// Basic fallback if no getChangeHeadlineFn is provided
|
|
42765
|
+
fallbackSentence(change) {
|
|
42766
|
+
const field = (change === null || change === void 0 ? void 0 : change.field) || 'Step';
|
|
42767
|
+
const op = ((change === null || change === void 0 ? void 0 : change.op) || '').toLowerCase();
|
|
42768
|
+
const step = (change === null || change === void 0 ? void 0 : change.stepId) != null ? `Step #${change.stepId} ` : '';
|
|
42769
|
+
if (op === 'add') {
|
|
42770
|
+
return `${step}${field} added`;
|
|
42806
42771
|
}
|
|
42807
|
-
|
|
42808
|
-
|
|
42772
|
+
if (op === 'remove') {
|
|
42773
|
+
return `${step}${field} removed`;
|
|
42809
42774
|
}
|
|
42810
|
-
|
|
42811
|
-
|
|
42775
|
+
if (op === 'replace') {
|
|
42776
|
+
return `${step}${field} changed`;
|
|
42812
42777
|
}
|
|
42813
|
-
return
|
|
42778
|
+
return `${step}${field} updated`;
|
|
42814
42779
|
}
|
|
42815
42780
|
// Preserve HTML for detail pills — objects resolved to a readable string
|
|
42816
42781
|
toDisplayHtml(value) {
|
|
@@ -42827,7 +42792,7 @@ class VersionHistoryRestoreConfirmComponent {
|
|
|
42827
42792
|
}
|
|
42828
42793
|
}
|
|
42829
42794
|
VersionHistoryRestoreConfirmComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: VersionHistoryRestoreConfirmComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
42830
|
-
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"
|
|
42795
|
+
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"] }] });
|
|
42831
42796
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: VersionHistoryRestoreConfirmComponent, decorators: [{
|
|
42832
42797
|
type: Component,
|
|
42833
42798
|
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: [] }]
|
|
@@ -42841,8 +42806,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImpor
|
|
|
42841
42806
|
type: Input
|
|
42842
42807
|
}], getChangeHeadlineFn: [{
|
|
42843
42808
|
type: Input
|
|
42844
|
-
}], fieldLabelMap: [{
|
|
42845
|
-
type: Input
|
|
42846
42809
|
}] } });
|
|
42847
42810
|
|
|
42848
42811
|
class UiKitModule {
|