survey-creator-angular 3.0.3 → 3.0.4

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.
@@ -20,6 +20,15 @@ export class TranslationTabComponent extends BaseAngular {
20
20
  var _a;
21
21
  (_a = this.sideBySideModel) === null || _a === void 0 ? void 0 : _a.setTargetScrollElement(ref ? ref.nativeElement : undefined);
22
22
  }
23
+ // The template is rendered into an embedded view, and the model-driven updates run change
24
+ // detection on that view alone (see BaseAngular.detectChanges) - the component's own view,
25
+ // which owns the @ViewChild queries above, would be refreshed only once, before a target
26
+ // language is selected and its pane exists. Refreshing it after the embedded view keeps
27
+ // the queries - and the pane registration - up to date.
28
+ detectChanges() {
29
+ super.detectChanges();
30
+ this.changeDetectorRef.detectChanges();
31
+ }
23
32
  // The strings-grid model: the tab model itself in the default mode and in the side-by-side grid view.
24
33
  get stringsModel() {
25
34
  return this.sideBySideModel ? undefined : this.model;
@@ -32,7 +41,7 @@ export class TranslationTabComponent extends BaseAngular {
32
41
  }
33
42
  }
34
43
  TranslationTabComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: TranslationTabComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
35
- TranslationTabComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: TranslationTabComponent, selector: "svc-tab-translation", inputs: { model: "model" }, viewQueries: [{ propertyName: "sourceScrollContainer", first: true, predicate: ["sourceScrollContainer"], descendants: true }, { propertyName: "targetScrollContainer", first: true, predicate: ["targetScrollContainer"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<ng-template #template>\n <div class=\"svc-creator-tab__content svc-translation-tab\" [class]=\"model.isEmpty ? 'svc-translation-tab--empty' : ''\">\n <svc-surface-placeholder *ngIf=\"model.isEmpty\" [name]=\"'translation'\"\n [placeholderTitleText]=\"model.placeholderTitleText\"\n [placeholderDescriptionText]=\"model.placeholderDescriptionText\">\n </svc-surface-placeholder>\n <ng-container *ngIf=\"!model.isEmpty\">\n <div *ngIf=\"stringsModel\" class=\"st-content\">\n <div class=\"svc-flex-column st-strings-wrapper\">\n <div class=\"svc-flex-row st-strings-header\">\n <ng-container *ngFor=\"let s of [stringsModel.stringsHeaderSurvey]; trackBy: trackStringsSurveyBy\">\n <survey-content [model]=\"s\"></survey-content>\n </ng-container>\n </div>\n <div class=\"svc-flex-row svc-plugin-tab__content st-strings\">\n <ng-container *ngFor=\"let s of [stringsModel.stringsSurvey]; trackBy: trackStringsSurveyBy\">\n <survey-content [model]=\"s\"></survey-content>\n </ng-container>\n </div>\n </div>\n </div>\n <div *ngIf=\"sideBySideModel\" [class]=\"sideBySideModel.sideBySideRootCss\">\n <div class=\"st-side-by-side__source\" #sourceScrollContainer>\n <ng-container *ngFor=\"let s of [sideBySideModel.sourceSurvey]; trackBy: trackStringsSurveyBy\">\n <survey-content [model]=\"s\"></survey-content>\n </ng-container>\n </div>\n <div *ngIf=\"sideBySideModel.targetSurvey\" class=\"st-side-by-side__target\" #targetScrollContainer>\n <ng-container *ngFor=\"let s of [sideBySideModel.targetSurvey]; trackBy: trackStringsSurveyBy\">\n <survey-content [model]=\"s\"></survey-content>\n </ng-container>\n </div>\n </div>\n </ng-container>\n </div>\n</ng-template>", styles: [":host { display: none; }"], components: [{ type: i1.SurfacePlaceholderComponent, selector: "svc-surface-placeholder", inputs: ["name", "placeholderTitleText", "placeholderDescriptionText"] }, { type: i2.SurveyContentComponent, selector: "survey-content", inputs: ["model"] }], directives: [{ type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }] });
44
+ TranslationTabComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: TranslationTabComponent, selector: "svc-tab-translation", inputs: { model: "model" }, viewQueries: [{ propertyName: "sourceScrollContainer", first: true, predicate: ["sourceScrollContainer"], descendants: true }, { propertyName: "targetScrollContainer", first: true, predicate: ["targetScrollContainer"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<ng-template #template>\n <div class=\"svc-creator-tab__content svc-translation-tab\" [class]=\"model.isEmpty ? 'svc-translation-tab--empty' : ''\">\n <svc-surface-placeholder *ngIf=\"model.isEmpty\" [name]=\"'translation'\"\n [placeholderTitleText]=\"model.placeholderTitleText\"\n [placeholderDescriptionText]=\"model.placeholderDescriptionText\">\n </svc-surface-placeholder>\n <ng-container *ngIf=\"!model.isEmpty\">\n <div *ngIf=\"stringsModel\" class=\"st-content\">\n <div class=\"svc-flex-column st-strings-wrapper\">\n <div class=\"svc-flex-row st-strings-header\">\n <ng-container *ngFor=\"let s of [stringsModel.stringsHeaderSurvey]; trackBy: trackStringsSurveyBy\">\n <survey-content [model]=\"s\"></survey-content>\n </ng-container>\n </div>\n <div class=\"svc-flex-row svc-plugin-tab__content st-strings\">\n <ng-container *ngFor=\"let s of [stringsModel.stringsSurvey]; trackBy: trackStringsSurveyBy\">\n <survey-content [model]=\"s\"></survey-content>\n </ng-container>\n </div>\n </div>\n </div>\n <div *ngIf=\"sideBySideModel\" [class]=\"sideBySideModel.sideBySideRootCss\">\n <div class=\"st-side-by-side__panes\">\n <div class=\"st-side-by-side__source\" #sourceScrollContainer>\n <ng-container *ngFor=\"let s of [sideBySideModel.sourceSurvey]; trackBy: trackStringsSurveyBy\">\n <survey-content [model]=\"s\"></survey-content>\n </ng-container>\n </div>\n <div *ngIf=\"sideBySideModel.targetSurvey\" class=\"st-side-by-side__target\" #targetScrollContainer>\n <ng-container *ngFor=\"let s of [sideBySideModel.targetSurvey]; trackBy: trackStringsSurveyBy\">\n <survey-content [model]=\"s\"></survey-content>\n </ng-container>\n </div>\n </div>\n </div>\n </ng-container>\n </div>\n</ng-template>", styles: [":host { display: none; }"], components: [{ type: i1.SurfacePlaceholderComponent, selector: "svc-surface-placeholder", inputs: ["name", "placeholderTitleText", "placeholderDescriptionText"] }, { type: i2.SurveyContentComponent, selector: "survey-content", inputs: ["model"] }], directives: [{ type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }] });
36
45
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: TranslationTabComponent, decorators: [{
37
46
  type: Component,
38
47
  args: [{
@@ -50,4 +59,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImpo
50
59
  args: ["targetScrollContainer"]
51
60
  }] } });
52
61
  AngularComponentFactory.Instance.registerComponent("svc-tab-translation", TranslationTabComponent);
53
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNsYXRpb24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3RhYnMvdHJhbnNsYXRpb24vdHJhbnNsYXRpb24uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vc3JjL3RhYnMvdHJhbnNsYXRpb24vdHJhbnNsYXRpb24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBYyxLQUFLLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3hFLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxXQUFXLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQzs7Ozs7QUFRekUsTUFBTSxPQUFPLHVCQUF3QixTQUFRLFdBQTRCO0lBRzdELFFBQVE7UUFDaEIsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDO0lBQ3BCLENBQUM7SUFDRCxJQUFXLGVBQWU7UUFDeEIsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBd0IsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDO0lBQ3JGLENBQUM7SUFDRCxtR0FBbUc7SUFDbkcsSUFBd0MscUJBQXFCLENBQUMsR0FBd0M7O1FBQ3BHLE1BQUEsSUFBSSxDQUFDLGVBQWUsMENBQUUsc0JBQXNCLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxTQUFnQixDQUFDLENBQUM7SUFDM0YsQ0FBQztJQUNELElBQXdDLHFCQUFxQixDQUFDLEdBQXdDOztRQUNwRyxNQUFBLElBQUksQ0FBQyxlQUFlLDBDQUFFLHNCQUFzQixDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsU0FBZ0IsQ0FBQyxDQUFDO0lBQzNGLENBQUM7SUFDRCxzR0FBc0c7SUFDdEcsSUFBVyxZQUFZO1FBQ3JCLE9BQU8sSUFBSSxDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDO0lBQ3ZELENBQUM7SUFDRCwrRkFBK0Y7SUFDL0YsaUdBQWlHO0lBQ2pHLCtGQUErRjtJQUN4RixvQkFBb0IsQ0FBQyxDQUFTLEVBQUUsTUFBVztRQUNoRCxPQUFPLENBQUEsTUFBTSxhQUFOLE1BQU0sdUJBQU4sTUFBTSxDQUFFLGVBQWUsS0FBSSxFQUFFLENBQUM7SUFDdkMsQ0FBQzs7cUhBekJVLHVCQUF1Qjt5R0FBdkIsdUJBQXVCLCtWQ1RwQyw2M0RBbUNjOzRGRDFCRCx1QkFBdUI7a0JBTG5DLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLHFCQUFxQjtvQkFDL0IsV0FBVyxFQUFFLDhCQUE4QjtvQkFDM0MsTUFBTSxFQUFFLENBQUMsMEJBQTBCLENBQUM7aUJBQ3JDOzhCQUVVLEtBQUs7c0JBQWIsS0FBSztnQkFTa0MscUJBQXFCO3NCQUE1RCxTQUFTO3VCQUFDLHVCQUF1QjtnQkFHTSxxQkFBcUI7c0JBQTVELFNBQVM7dUJBQUMsdUJBQXVCOztBQWNwQyx1QkFBdUIsQ0FBQyxRQUFRLENBQUMsaUJBQWlCLENBQUMscUJBQXFCLEVBQUUsdUJBQXVCLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRWxlbWVudFJlZiwgSW5wdXQsIFZpZXdDaGlsZCB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQgeyBBbmd1bGFyQ29tcG9uZW50RmFjdG9yeSwgQmFzZUFuZ3VsYXIgfSBmcm9tIFwic3VydmV5LWFuZ3VsYXItdWlcIjtcbmltcG9ydCB7IFRyYW5zbGF0aW9uQmFzZSwgVHJhbnNsYXRpb25TaWRlQnlTaWRlIH0gZnJvbSBcInN1cnZleS1jcmVhdG9yLWNvcmVcIjtcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiBcInN2Yy10YWItdHJhbnNsYXRpb25cIixcbiAgdGVtcGxhdGVVcmw6IFwiLi90cmFuc2xhdGlvbi5jb21wb25lbnQuaHRtbFwiLFxuICBzdHlsZXM6IFtcIjpob3N0IHsgZGlzcGxheTogbm9uZTsgfVwiXVxufSlcbmV4cG9ydCBjbGFzcyBUcmFuc2xhdGlvblRhYkNvbXBvbmVudCBleHRlbmRzIEJhc2VBbmd1bGFyPFRyYW5zbGF0aW9uQmFzZT4ge1xuICBASW5wdXQoKSBtb2RlbCE6IFRyYW5zbGF0aW9uQmFzZTtcblxuICBwcm90ZWN0ZWQgZ2V0TW9kZWwoKTogVHJhbnNsYXRpb25CYXNlIHtcbiAgICByZXR1cm4gdGhpcy5tb2RlbDtcbiAgfVxuICBwdWJsaWMgZ2V0IHNpZGVCeVNpZGVNb2RlbCgpOiBUcmFuc2xhdGlvblNpZGVCeVNpZGUgfCB1bmRlZmluZWQge1xuICAgIHJldHVybiB0aGlzLm1vZGVsLmlzU2lkZUJ5U2lkZUZvcm0gPyA8VHJhbnNsYXRpb25TaWRlQnlTaWRlPnRoaXMubW9kZWwgOiB1bmRlZmluZWQ7XG4gIH1cbiAgLy8gVGhlIHNldHRlcnMgYWxzbyBmaXJlIHdpdGggdW5kZWZpbmVkIHdoZW4gKm5nSWYgcmVtb3ZlcyB0aGUgcGFuZXMsIHdoaWNoIGRldGFjaGVzIHRoZSBsaXN0ZW5lcnMuXG4gIEBWaWV3Q2hpbGQoXCJzb3VyY2VTY3JvbGxDb250YWluZXJcIikgc2V0IHNvdXJjZVNjcm9sbENvbnRhaW5lcihyZWY6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+IHwgdW5kZWZpbmVkKSB7XG4gICAgdGhpcy5zaWRlQnlTaWRlTW9kZWw/LnNldFNvdXJjZVNjcm9sbEVsZW1lbnQocmVmID8gcmVmLm5hdGl2ZUVsZW1lbnQgOiB1bmRlZmluZWQgYXMgYW55KTtcbiAgfVxuICBAVmlld0NoaWxkKFwidGFyZ2V0U2Nyb2xsQ29udGFpbmVyXCIpIHNldCB0YXJnZXRTY3JvbGxDb250YWluZXIocmVmOiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PiB8IHVuZGVmaW5lZCkge1xuICAgIHRoaXMuc2lkZUJ5U2lkZU1vZGVsPy5zZXRUYXJnZXRTY3JvbGxFbGVtZW50KHJlZiA/IHJlZi5uYXRpdmVFbGVtZW50IDogdW5kZWZpbmVkIGFzIGFueSk7XG4gIH1cbiAgLy8gVGhlIHN0cmluZ3MtZ3JpZCBtb2RlbDogdGhlIHRhYiBtb2RlbCBpdHNlbGYgaW4gdGhlIGRlZmF1bHQgbW9kZSBhbmQgaW4gdGhlIHNpZGUtYnktc2lkZSBncmlkIHZpZXcuXG4gIHB1YmxpYyBnZXQgc3RyaW5nc01vZGVsKCk6IFRyYW5zbGF0aW9uQmFzZSB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIHRoaXMuc2lkZUJ5U2lkZU1vZGVsID8gdW5kZWZpbmVkIDogdGhpcy5tb2RlbDtcbiAgfVxuICAvLyBUaGUgc3RyaW5ncyBzdXJ2ZXkgaXMgZnVsbHkgcmVjcmVhdGVkIG9uIHJlc2V0KCkuIEl0cyBlbGVtZW50cyBrZWVwIGRldGVybWluaXN0aWMgaWRzIGFjcm9zc1xuICAvLyBpbnN0YW5jZXMsIHNvICpuZ0ZvcidzIGVsZW1lbnQgdHJhY2tCeSB3b3VsZCByZXVzZSB0aGUgZGlzcG9zZWQgc3VydmV5J3MgKGxhenktc2tlbGV0b24pIHJvd3MuXG4gIC8vIEtleWluZyB0aGUgc3VydmV5LWNvbnRlbnQgYnkgdGhlIHBlci1pbnN0YW5jZSBlbGVtZW50SWRQcmVmaXggZm9yY2VzIEFuZ3VsYXIgdG8gcmVjcmVhdGUgaXQuXG4gIHB1YmxpYyB0cmFja1N0cmluZ3NTdXJ2ZXlCeShfOiBudW1iZXIsIHN1cnZleTogYW55KTogc3RyaW5nIHtcbiAgICByZXR1cm4gc3VydmV5Py5lbGVtZW50SWRQcmVmaXggfHwgXCJcIjtcbiAgfVxufVxuQW5ndWxhckNvbXBvbmVudEZhY3RvcnkuSW5zdGFuY2UucmVnaXN0ZXJDb21wb25lbnQoXCJzdmMtdGFiLXRyYW5zbGF0aW9uXCIsIFRyYW5zbGF0aW9uVGFiQ29tcG9uZW50KTtcblxuIiwiPG5nLXRlbXBsYXRlICN0ZW1wbGF0ZT5cbiAgPGRpdiBjbGFzcz1cInN2Yy1jcmVhdG9yLXRhYl9fY29udGVudCBzdmMtdHJhbnNsYXRpb24tdGFiXCIgW2NsYXNzXT1cIm1vZGVsLmlzRW1wdHkgPyAnc3ZjLXRyYW5zbGF0aW9uLXRhYi0tZW1wdHknIDogJydcIj5cbiAgICA8c3ZjLXN1cmZhY2UtcGxhY2Vob2xkZXIgKm5nSWY9XCJtb2RlbC5pc0VtcHR5XCIgW25hbWVdPVwiJ3RyYW5zbGF0aW9uJ1wiXG4gICAgICBbcGxhY2Vob2xkZXJUaXRsZVRleHRdPVwibW9kZWwucGxhY2Vob2xkZXJUaXRsZVRleHRcIlxuICAgICAgW3BsYWNlaG9sZGVyRGVzY3JpcHRpb25UZXh0XT1cIm1vZGVsLnBsYWNlaG9sZGVyRGVzY3JpcHRpb25UZXh0XCI+XG4gICAgPC9zdmMtc3VyZmFjZS1wbGFjZWhvbGRlcj5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIW1vZGVsLmlzRW1wdHlcIj5cbiAgICAgIDxkaXYgKm5nSWY9XCJzdHJpbmdzTW9kZWxcIiBjbGFzcz1cInN0LWNvbnRlbnRcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInN2Yy1mbGV4LWNvbHVtbiBzdC1zdHJpbmdzLXdyYXBwZXJcIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwic3ZjLWZsZXgtcm93IHN0LXN0cmluZ3MtaGVhZGVyXCI+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBzIG9mIFtzdHJpbmdzTW9kZWwuc3RyaW5nc0hlYWRlclN1cnZleV07IHRyYWNrQnk6IHRyYWNrU3RyaW5nc1N1cnZleUJ5XCI+XG4gICAgICAgICAgICAgIDxzdXJ2ZXktY29udGVudCBbbW9kZWxdPVwic1wiPjwvc3VydmV5LWNvbnRlbnQ+XG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwic3ZjLWZsZXgtcm93IHN2Yy1wbHVnaW4tdGFiX19jb250ZW50IHN0LXN0cmluZ3NcIj5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IHMgb2YgW3N0cmluZ3NNb2RlbC5zdHJpbmdzU3VydmV5XTsgdHJhY2tCeTogdHJhY2tTdHJpbmdzU3VydmV5QnlcIj5cbiAgICAgICAgICAgICAgPHN1cnZleS1jb250ZW50IFttb2RlbF09XCJzXCI+PC9zdXJ2ZXktY29udGVudD5cbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiAqbmdJZj1cInNpZGVCeVNpZGVNb2RlbFwiIFtjbGFzc109XCJzaWRlQnlTaWRlTW9kZWwuc2lkZUJ5U2lkZVJvb3RDc3NcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInN0LXNpZGUtYnktc2lkZV9fc291cmNlXCIgI3NvdXJjZVNjcm9sbENvbnRhaW5lcj5cbiAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBzIG9mIFtzaWRlQnlTaWRlTW9kZWwuc291cmNlU3VydmV5XTsgdHJhY2tCeTogdHJhY2tTdHJpbmdzU3VydmV5QnlcIj5cbiAgICAgICAgICAgIDxzdXJ2ZXktY29udGVudCBbbW9kZWxdPVwic1wiPjwvc3VydmV5LWNvbnRlbnQ+XG4gICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2ICpuZ0lmPVwic2lkZUJ5U2lkZU1vZGVsLnRhcmdldFN1cnZleVwiIGNsYXNzPVwic3Qtc2lkZS1ieS1zaWRlX190YXJnZXRcIiAjdGFyZ2V0U2Nyb2xsQ29udGFpbmVyPlxuICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IHMgb2YgW3NpZGVCeVNpZGVNb2RlbC50YXJnZXRTdXJ2ZXldOyB0cmFja0J5OiB0cmFja1N0cmluZ3NTdXJ2ZXlCeVwiPlxuICAgICAgICAgICAgPHN1cnZleS1jb250ZW50IFttb2RlbF09XCJzXCI+PC9zdXJ2ZXktY29udGVudD5cbiAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgPC9kaXY+XG48L25nLXRlbXBsYXRlPiJdfQ==
62
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNsYXRpb24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3RhYnMvdHJhbnNsYXRpb24vdHJhbnNsYXRpb24uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vc3JjL3RhYnMvdHJhbnNsYXRpb24vdHJhbnNsYXRpb24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBYyxLQUFLLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3hFLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxXQUFXLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQzs7Ozs7QUFRekUsTUFBTSxPQUFPLHVCQUF3QixTQUFRLFdBQTRCO0lBRzdELFFBQVE7UUFDaEIsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDO0lBQ3BCLENBQUM7SUFDRCxJQUFXLGVBQWU7UUFDeEIsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBd0IsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDO0lBQ3JGLENBQUM7SUFDRCxtR0FBbUc7SUFDbkcsSUFBd0MscUJBQXFCLENBQUMsR0FBd0M7O1FBQ3BHLE1BQUEsSUFBSSxDQUFDLGVBQWUsMENBQUUsc0JBQXNCLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxTQUFnQixDQUFDLENBQUM7SUFDM0YsQ0FBQztJQUNELElBQXdDLHFCQUFxQixDQUFDLEdBQXdDOztRQUNwRyxNQUFBLElBQUksQ0FBQyxlQUFlLDBDQUFFLHNCQUFzQixDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsU0FBZ0IsQ0FBQyxDQUFDO0lBQzNGLENBQUM7SUFDRCwwRkFBMEY7SUFDMUYsMkZBQTJGO0lBQzNGLHlGQUF5RjtJQUN6Rix3RkFBd0Y7SUFDeEYsd0RBQXdEO0lBQ3JDLGFBQWE7UUFDOUIsS0FBSyxDQUFDLGFBQWEsRUFBRSxDQUFDO1FBQ3RCLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxhQUFhLEVBQUUsQ0FBQztJQUN6QyxDQUFDO0lBQ0Qsc0dBQXNHO0lBQ3RHLElBQVcsWUFBWTtRQUNyQixPQUFPLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQztJQUN2RCxDQUFDO0lBQ0QsK0ZBQStGO0lBQy9GLGlHQUFpRztJQUNqRywrRkFBK0Y7SUFDeEYsb0JBQW9CLENBQUMsQ0FBUyxFQUFFLE1BQVc7UUFDaEQsT0FBTyxDQUFBLE1BQU0sYUFBTixNQUFNLHVCQUFOLE1BQU0sQ0FBRSxlQUFlLEtBQUksRUFBRSxDQUFDO0lBQ3ZDLENBQUM7O3FIQWxDVSx1QkFBdUI7eUdBQXZCLHVCQUF1QiwrVkNUcEMsaTlEQXFDYzs0RkQ1QkQsdUJBQXVCO2tCQUxuQyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxxQkFBcUI7b0JBQy9CLFdBQVcsRUFBRSw4QkFBOEI7b0JBQzNDLE1BQU0sRUFBRSxDQUFDLDBCQUEwQixDQUFDO2lCQUNyQzs4QkFFVSxLQUFLO3NCQUFiLEtBQUs7Z0JBU2tDLHFCQUFxQjtzQkFBNUQsU0FBUzt1QkFBQyx1QkFBdUI7Z0JBR00scUJBQXFCO3NCQUE1RCxTQUFTO3VCQUFDLHVCQUF1Qjs7QUF1QnBDLHVCQUF1QixDQUFDLFFBQVEsQ0FBQyxpQkFBaUIsQ0FBQyxxQkFBcUIsRUFBRSx1QkFBdUIsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFbGVtZW50UmVmLCBJbnB1dCwgVmlld0NoaWxkIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7IEFuZ3VsYXJDb21wb25lbnRGYWN0b3J5LCBCYXNlQW5ndWxhciB9IGZyb20gXCJzdXJ2ZXktYW5ndWxhci11aVwiO1xuaW1wb3J0IHsgVHJhbnNsYXRpb25CYXNlLCBUcmFuc2xhdGlvblNpZGVCeVNpZGUgfSBmcm9tIFwic3VydmV5LWNyZWF0b3ItY29yZVwiO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6IFwic3ZjLXRhYi10cmFuc2xhdGlvblwiLFxuICB0ZW1wbGF0ZVVybDogXCIuL3RyYW5zbGF0aW9uLmNvbXBvbmVudC5odG1sXCIsXG4gIHN0eWxlczogW1wiOmhvc3QgeyBkaXNwbGF5OiBub25lOyB9XCJdXG59KVxuZXhwb3J0IGNsYXNzIFRyYW5zbGF0aW9uVGFiQ29tcG9uZW50IGV4dGVuZHMgQmFzZUFuZ3VsYXI8VHJhbnNsYXRpb25CYXNlPiB7XG4gIEBJbnB1dCgpIG1vZGVsITogVHJhbnNsYXRpb25CYXNlO1xuXG4gIHByb3RlY3RlZCBnZXRNb2RlbCgpOiBUcmFuc2xhdGlvbkJhc2Uge1xuICAgIHJldHVybiB0aGlzLm1vZGVsO1xuICB9XG4gIHB1YmxpYyBnZXQgc2lkZUJ5U2lkZU1vZGVsKCk6IFRyYW5zbGF0aW9uU2lkZUJ5U2lkZSB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIHRoaXMubW9kZWwuaXNTaWRlQnlTaWRlRm9ybSA/IDxUcmFuc2xhdGlvblNpZGVCeVNpZGU+dGhpcy5tb2RlbCA6IHVuZGVmaW5lZDtcbiAgfVxuICAvLyBUaGUgc2V0dGVycyBhbHNvIGZpcmUgd2l0aCB1bmRlZmluZWQgd2hlbiAqbmdJZiByZW1vdmVzIHRoZSBwYW5lcywgd2hpY2ggZGV0YWNoZXMgdGhlIGxpc3RlbmVycy5cbiAgQFZpZXdDaGlsZChcInNvdXJjZVNjcm9sbENvbnRhaW5lclwiKSBzZXQgc291cmNlU2Nyb2xsQ29udGFpbmVyKHJlZjogRWxlbWVudFJlZjxIVE1MRWxlbWVudD4gfCB1bmRlZmluZWQpIHtcbiAgICB0aGlzLnNpZGVCeVNpZGVNb2RlbD8uc2V0U291cmNlU2Nyb2xsRWxlbWVudChyZWYgPyByZWYubmF0aXZlRWxlbWVudCA6IHVuZGVmaW5lZCBhcyBhbnkpO1xuICB9XG4gIEBWaWV3Q2hpbGQoXCJ0YXJnZXRTY3JvbGxDb250YWluZXJcIikgc2V0IHRhcmdldFNjcm9sbENvbnRhaW5lcihyZWY6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+IHwgdW5kZWZpbmVkKSB7XG4gICAgdGhpcy5zaWRlQnlTaWRlTW9kZWw/LnNldFRhcmdldFNjcm9sbEVsZW1lbnQocmVmID8gcmVmLm5hdGl2ZUVsZW1lbnQgOiB1bmRlZmluZWQgYXMgYW55KTtcbiAgfVxuICAvLyBUaGUgdGVtcGxhdGUgaXMgcmVuZGVyZWQgaW50byBhbiBlbWJlZGRlZCB2aWV3LCBhbmQgdGhlIG1vZGVsLWRyaXZlbiB1cGRhdGVzIHJ1biBjaGFuZ2VcbiAgLy8gZGV0ZWN0aW9uIG9uIHRoYXQgdmlldyBhbG9uZSAoc2VlIEJhc2VBbmd1bGFyLmRldGVjdENoYW5nZXMpIC0gdGhlIGNvbXBvbmVudCdzIG93biB2aWV3LFxuICAvLyB3aGljaCBvd25zIHRoZSBAVmlld0NoaWxkIHF1ZXJpZXMgYWJvdmUsIHdvdWxkIGJlIHJlZnJlc2hlZCBvbmx5IG9uY2UsIGJlZm9yZSBhIHRhcmdldFxuICAvLyBsYW5ndWFnZSBpcyBzZWxlY3RlZCBhbmQgaXRzIHBhbmUgZXhpc3RzLiBSZWZyZXNoaW5nIGl0IGFmdGVyIHRoZSBlbWJlZGRlZCB2aWV3IGtlZXBzXG4gIC8vIHRoZSBxdWVyaWVzIC0gYW5kIHRoZSBwYW5lIHJlZ2lzdHJhdGlvbiAtIHVwIHRvIGRhdGUuXG4gIHByb3RlY3RlZCBvdmVycmlkZSBkZXRlY3RDaGFuZ2VzKCk6IHZvaWQge1xuICAgIHN1cGVyLmRldGVjdENoYW5nZXMoKTtcbiAgICB0aGlzLmNoYW5nZURldGVjdG9yUmVmLmRldGVjdENoYW5nZXMoKTtcbiAgfVxuICAvLyBUaGUgc3RyaW5ncy1ncmlkIG1vZGVsOiB0aGUgdGFiIG1vZGVsIGl0c2VsZiBpbiB0aGUgZGVmYXVsdCBtb2RlIGFuZCBpbiB0aGUgc2lkZS1ieS1zaWRlIGdyaWQgdmlldy5cbiAgcHVibGljIGdldCBzdHJpbmdzTW9kZWwoKTogVHJhbnNsYXRpb25CYXNlIHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gdGhpcy5zaWRlQnlTaWRlTW9kZWwgPyB1bmRlZmluZWQgOiB0aGlzLm1vZGVsO1xuICB9XG4gIC8vIFRoZSBzdHJpbmdzIHN1cnZleSBpcyBmdWxseSByZWNyZWF0ZWQgb24gcmVzZXQoKS4gSXRzIGVsZW1lbnRzIGtlZXAgZGV0ZXJtaW5pc3RpYyBpZHMgYWNyb3NzXG4gIC8vIGluc3RhbmNlcywgc28gKm5nRm9yJ3MgZWxlbWVudCB0cmFja0J5IHdvdWxkIHJldXNlIHRoZSBkaXNwb3NlZCBzdXJ2ZXkncyAobGF6eS1za2VsZXRvbikgcm93cy5cbiAgLy8gS2V5aW5nIHRoZSBzdXJ2ZXktY29udGVudCBieSB0aGUgcGVyLWluc3RhbmNlIGVsZW1lbnRJZFByZWZpeCBmb3JjZXMgQW5ndWxhciB0byByZWNyZWF0ZSBpdC5cbiAgcHVibGljIHRyYWNrU3RyaW5nc1N1cnZleUJ5KF86IG51bWJlciwgc3VydmV5OiBhbnkpOiBzdHJpbmcge1xuICAgIHJldHVybiBzdXJ2ZXk/LmVsZW1lbnRJZFByZWZpeCB8fCBcIlwiO1xuICB9XG59XG5Bbmd1bGFyQ29tcG9uZW50RmFjdG9yeS5JbnN0YW5jZS5yZWdpc3RlckNvbXBvbmVudChcInN2Yy10YWItdHJhbnNsYXRpb25cIiwgVHJhbnNsYXRpb25UYWJDb21wb25lbnQpO1xuXG4iLCI8bmctdGVtcGxhdGUgI3RlbXBsYXRlPlxuICA8ZGl2IGNsYXNzPVwic3ZjLWNyZWF0b3ItdGFiX19jb250ZW50IHN2Yy10cmFuc2xhdGlvbi10YWJcIiBbY2xhc3NdPVwibW9kZWwuaXNFbXB0eSA/ICdzdmMtdHJhbnNsYXRpb24tdGFiLS1lbXB0eScgOiAnJ1wiPlxuICAgIDxzdmMtc3VyZmFjZS1wbGFjZWhvbGRlciAqbmdJZj1cIm1vZGVsLmlzRW1wdHlcIiBbbmFtZV09XCIndHJhbnNsYXRpb24nXCJcbiAgICAgIFtwbGFjZWhvbGRlclRpdGxlVGV4dF09XCJtb2RlbC5wbGFjZWhvbGRlclRpdGxlVGV4dFwiXG4gICAgICBbcGxhY2Vob2xkZXJEZXNjcmlwdGlvblRleHRdPVwibW9kZWwucGxhY2Vob2xkZXJEZXNjcmlwdGlvblRleHRcIj5cbiAgICA8L3N2Yy1zdXJmYWNlLXBsYWNlaG9sZGVyPlxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIhbW9kZWwuaXNFbXB0eVwiPlxuICAgICAgPGRpdiAqbmdJZj1cInN0cmluZ3NNb2RlbFwiIGNsYXNzPVwic3QtY29udGVudFwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwic3ZjLWZsZXgtY29sdW1uIHN0LXN0cmluZ3Mtd3JhcHBlclwiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdmMtZmxleC1yb3cgc3Qtc3RyaW5ncy1oZWFkZXJcIj5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IHMgb2YgW3N0cmluZ3NNb2RlbC5zdHJpbmdzSGVhZGVyU3VydmV5XTsgdHJhY2tCeTogdHJhY2tTdHJpbmdzU3VydmV5QnlcIj5cbiAgICAgICAgICAgICAgPHN1cnZleS1jb250ZW50IFttb2RlbF09XCJzXCI+PC9zdXJ2ZXktY29udGVudD5cbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdmMtZmxleC1yb3cgc3ZjLXBsdWdpbi10YWJfX2NvbnRlbnQgc3Qtc3RyaW5nc1wiPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgcyBvZiBbc3RyaW5nc01vZGVsLnN0cmluZ3NTdXJ2ZXldOyB0cmFja0J5OiB0cmFja1N0cmluZ3NTdXJ2ZXlCeVwiPlxuICAgICAgICAgICAgICA8c3VydmV5LWNvbnRlbnQgW21vZGVsXT1cInNcIj48L3N1cnZleS1jb250ZW50PlxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2ICpuZ0lmPVwic2lkZUJ5U2lkZU1vZGVsXCIgW2NsYXNzXT1cInNpZGVCeVNpZGVNb2RlbC5zaWRlQnlTaWRlUm9vdENzc1wiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwic3Qtc2lkZS1ieS1zaWRlX19wYW5lc1wiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdC1zaWRlLWJ5LXNpZGVfX3NvdXJjZVwiICNzb3VyY2VTY3JvbGxDb250YWluZXI+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBzIG9mIFtzaWRlQnlTaWRlTW9kZWwuc291cmNlU3VydmV5XTsgdHJhY2tCeTogdHJhY2tTdHJpbmdzU3VydmV5QnlcIj5cbiAgICAgICAgICAgICAgPHN1cnZleS1jb250ZW50IFttb2RlbF09XCJzXCI+PC9zdXJ2ZXktY29udGVudD5cbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxkaXYgKm5nSWY9XCJzaWRlQnlTaWRlTW9kZWwudGFyZ2V0U3VydmV5XCIgY2xhc3M9XCJzdC1zaWRlLWJ5LXNpZGVfX3RhcmdldFwiICN0YXJnZXRTY3JvbGxDb250YWluZXI+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBzIG9mIFtzaWRlQnlTaWRlTW9kZWwudGFyZ2V0U3VydmV5XTsgdHJhY2tCeTogdHJhY2tTdHJpbmdzU3VydmV5QnlcIj5cbiAgICAgICAgICAgICAgPHN1cnZleS1jb250ZW50IFttb2RlbF09XCJzXCI+PC9zdXJ2ZXktY29udGVudD5cbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIDwvbmctY29udGFpbmVyPlxuICA8L2Rpdj5cbjwvbmctdGVtcGxhdGU+Il19
@@ -993,6 +993,15 @@ class TranslationTabComponent extends BaseAngular {
993
993
  var _a;
994
994
  (_a = this.sideBySideModel) === null || _a === void 0 ? void 0 : _a.setTargetScrollElement(ref ? ref.nativeElement : undefined);
995
995
  }
996
+ // The template is rendered into an embedded view, and the model-driven updates run change
997
+ // detection on that view alone (see BaseAngular.detectChanges) - the component's own view,
998
+ // which owns the @ViewChild queries above, would be refreshed only once, before a target
999
+ // language is selected and its pane exists. Refreshing it after the embedded view keeps
1000
+ // the queries - and the pane registration - up to date.
1001
+ detectChanges() {
1002
+ super.detectChanges();
1003
+ this.changeDetectorRef.detectChanges();
1004
+ }
996
1005
  // The strings-grid model: the tab model itself in the default mode and in the side-by-side grid view.
997
1006
  get stringsModel() {
998
1007
  return this.sideBySideModel ? undefined : this.model;
@@ -1005,7 +1014,7 @@ class TranslationTabComponent extends BaseAngular {
1005
1014
  }
1006
1015
  }
1007
1016
  TranslationTabComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: TranslationTabComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
1008
- TranslationTabComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: TranslationTabComponent, selector: "svc-tab-translation", inputs: { model: "model" }, viewQueries: [{ propertyName: "sourceScrollContainer", first: true, predicate: ["sourceScrollContainer"], descendants: true }, { propertyName: "targetScrollContainer", first: true, predicate: ["targetScrollContainer"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<ng-template #template>\n <div class=\"svc-creator-tab__content svc-translation-tab\" [class]=\"model.isEmpty ? 'svc-translation-tab--empty' : ''\">\n <svc-surface-placeholder *ngIf=\"model.isEmpty\" [name]=\"'translation'\"\n [placeholderTitleText]=\"model.placeholderTitleText\"\n [placeholderDescriptionText]=\"model.placeholderDescriptionText\">\n </svc-surface-placeholder>\n <ng-container *ngIf=\"!model.isEmpty\">\n <div *ngIf=\"stringsModel\" class=\"st-content\">\n <div class=\"svc-flex-column st-strings-wrapper\">\n <div class=\"svc-flex-row st-strings-header\">\n <ng-container *ngFor=\"let s of [stringsModel.stringsHeaderSurvey]; trackBy: trackStringsSurveyBy\">\n <survey-content [model]=\"s\"></survey-content>\n </ng-container>\n </div>\n <div class=\"svc-flex-row svc-plugin-tab__content st-strings\">\n <ng-container *ngFor=\"let s of [stringsModel.stringsSurvey]; trackBy: trackStringsSurveyBy\">\n <survey-content [model]=\"s\"></survey-content>\n </ng-container>\n </div>\n </div>\n </div>\n <div *ngIf=\"sideBySideModel\" [class]=\"sideBySideModel.sideBySideRootCss\">\n <div class=\"st-side-by-side__source\" #sourceScrollContainer>\n <ng-container *ngFor=\"let s of [sideBySideModel.sourceSurvey]; trackBy: trackStringsSurveyBy\">\n <survey-content [model]=\"s\"></survey-content>\n </ng-container>\n </div>\n <div *ngIf=\"sideBySideModel.targetSurvey\" class=\"st-side-by-side__target\" #targetScrollContainer>\n <ng-container *ngFor=\"let s of [sideBySideModel.targetSurvey]; trackBy: trackStringsSurveyBy\">\n <survey-content [model]=\"s\"></survey-content>\n </ng-container>\n </div>\n </div>\n </ng-container>\n </div>\n</ng-template>", styles: [":host { display: none; }"], components: [{ type: SurfacePlaceholderComponent, selector: "svc-surface-placeholder", inputs: ["name", "placeholderTitleText", "placeholderDescriptionText"] }, { type: i1.SurveyContentComponent, selector: "survey-content", inputs: ["model"] }], directives: [{ type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }] });
1017
+ TranslationTabComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: TranslationTabComponent, selector: "svc-tab-translation", inputs: { model: "model" }, viewQueries: [{ propertyName: "sourceScrollContainer", first: true, predicate: ["sourceScrollContainer"], descendants: true }, { propertyName: "targetScrollContainer", first: true, predicate: ["targetScrollContainer"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<ng-template #template>\n <div class=\"svc-creator-tab__content svc-translation-tab\" [class]=\"model.isEmpty ? 'svc-translation-tab--empty' : ''\">\n <svc-surface-placeholder *ngIf=\"model.isEmpty\" [name]=\"'translation'\"\n [placeholderTitleText]=\"model.placeholderTitleText\"\n [placeholderDescriptionText]=\"model.placeholderDescriptionText\">\n </svc-surface-placeholder>\n <ng-container *ngIf=\"!model.isEmpty\">\n <div *ngIf=\"stringsModel\" class=\"st-content\">\n <div class=\"svc-flex-column st-strings-wrapper\">\n <div class=\"svc-flex-row st-strings-header\">\n <ng-container *ngFor=\"let s of [stringsModel.stringsHeaderSurvey]; trackBy: trackStringsSurveyBy\">\n <survey-content [model]=\"s\"></survey-content>\n </ng-container>\n </div>\n <div class=\"svc-flex-row svc-plugin-tab__content st-strings\">\n <ng-container *ngFor=\"let s of [stringsModel.stringsSurvey]; trackBy: trackStringsSurveyBy\">\n <survey-content [model]=\"s\"></survey-content>\n </ng-container>\n </div>\n </div>\n </div>\n <div *ngIf=\"sideBySideModel\" [class]=\"sideBySideModel.sideBySideRootCss\">\n <div class=\"st-side-by-side__panes\">\n <div class=\"st-side-by-side__source\" #sourceScrollContainer>\n <ng-container *ngFor=\"let s of [sideBySideModel.sourceSurvey]; trackBy: trackStringsSurveyBy\">\n <survey-content [model]=\"s\"></survey-content>\n </ng-container>\n </div>\n <div *ngIf=\"sideBySideModel.targetSurvey\" class=\"st-side-by-side__target\" #targetScrollContainer>\n <ng-container *ngFor=\"let s of [sideBySideModel.targetSurvey]; trackBy: trackStringsSurveyBy\">\n <survey-content [model]=\"s\"></survey-content>\n </ng-container>\n </div>\n </div>\n </div>\n </ng-container>\n </div>\n</ng-template>", styles: [":host { display: none; }"], components: [{ type: SurfacePlaceholderComponent, selector: "svc-surface-placeholder", inputs: ["name", "placeholderTitleText", "placeholderDescriptionText"] }, { type: i1.SurveyContentComponent, selector: "survey-content", inputs: ["model"] }], directives: [{ type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }] });
1009
1018
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: TranslationTabComponent, decorators: [{
1010
1019
  type: Component,
1011
1020
  args: [{