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.
- package/bundles/survey-creator-angular.umd.js +10 -1
- package/bundles/survey-creator-angular.umd.js.map +1 -1
- package/esm2015/tabs/translation/translation.component.js +11 -2
- package/fesm2015/survey-creator-angular.js +10 -1
- package/fesm2015/survey-creator-angular.js.map +1 -1
- package/package.json +4 -4
- package/tabs/translation/translation.component.d.ts +1 -0
|
@@ -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
|
|
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,
|
|
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
|
|
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: [{
|