survey-creator-angular 3.0.0-beta.8 → 3.0.0

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.
@@ -11,7 +11,7 @@ export class FileEditorButtonComponent extends BaseAngular {
11
11
  }
12
12
  }
13
13
  FileEditorButtonComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: FileEditorButtonComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
14
- FileEditorButtonComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: FileEditorButtonComponent, selector: "sv-ng-file-editor-button", inputs: { model: "model" }, usesInheritance: true, ngImport: i0, template: "<ng-template #template>\n <div>\n <label [class]=\"model.getActionBarItemCss()\" [attr.for]=\"question.inputId\" [attr.aria-label]=\"question.chooseButtonCaption\"\n (click)=\"question.chooseFiles($event)\" [key2click]>\n <svg [iconName]=\"model.iconName\" size=\"'auto'\" [title]=\"model.title\" [class]=\"model.cssClasses.itemIcon\" sv-ng-svg-icon></svg>\n </label>\n <input type=\"file\" [disabled]=\"model.disabled\" [class]=\"question.cssClasses.fileInput\" [attr.id]=\"question.inputId\"\n [attr.aria-required]=\"question.ariaRequired\" [attr.aria-label]=\"question.ariaLabel\"\n [attr.aria-invalid]=\"question.ariaInvalid\" [attr.aria-describedby]=\"question.ariaDescribedBy\" [attr.multiple]=\"false\"\n [title]=\"question.inputTitle\" [accept]=\"question.acceptedTypes\" (change)=\"question.onFileInputChange($event)\" tabindex=\"-1\">\n </div>\n</ng-template>\n", styles: ["{ :host { display: none; } }"], components: [{ type: i1.SvgIconComponent, selector: "'[sv-ng-svg-icon]'", inputs: ["size", "width", "height", "iconName", "partCss", "css", "title"] }], directives: [{ type: i1.Key2ClickDirective, selector: "[key2click]", inputs: ["key2click"] }] });
14
+ FileEditorButtonComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: FileEditorButtonComponent, selector: "sv-ng-file-editor-button", inputs: { model: "model" }, usesInheritance: true, ngImport: i0, template: "<ng-template #template>\n <div>\n <label [class]=\"model.getActionBarItemCss()\" [attr.for]=\"question.inputId\" [attr.aria-label]=\"question.chooseButtonCaption\"\n (click)=\"question.chooseFiles($event)\" [key2click]>\n <svg [iconName]=\"model.iconName\" size=\"'auto'\" [title]=\"model.title\" [class]=\"model.cssClasses.itemIcon\" sv-ng-svg-icon></svg>\n <span class=\"sv-visuallyhidden\">{{ question.chooseButtonCaption }}</span>\n </label>\n <input type=\"file\" [disabled]=\"model.disabled\" [class]=\"question.cssClasses.fileInput\" [attr.id]=\"question.inputId\"\n [attr.aria-required]=\"question.ariaRequired\" [attr.aria-label]=\"question.ariaLabel\"\n [attr.aria-invalid]=\"question.ariaInvalid\" [attr.aria-describedby]=\"question.ariaDescribedBy\" [attr.multiple]=\"false\"\n [title]=\"question.inputTitle\" [accept]=\"question.acceptedTypes\" (change)=\"question.onFileInputChange($event)\" tabindex=\"-1\">\n </div>\n</ng-template>\n", styles: ["{ :host { display: none; } }"], components: [{ type: i1.SvgIconComponent, selector: "'[sv-ng-svg-icon]'", inputs: ["size", "width", "height", "iconName", "partCss", "css", "title"] }], directives: [{ type: i1.Key2ClickDirective, selector: "[key2click]", inputs: ["key2click"] }] });
15
15
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: FileEditorButtonComponent, decorators: [{
16
16
  type: Component,
17
17
  args: [{
@@ -23,4 +23,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImpo
23
23
  type: Input
24
24
  }] } });
25
25
  AngularComponentFactory.Instance.registerComponent("sv-fileedit-button", FileEditorButtonComponent);
26
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS1lZGl0b3ItYnV0dG9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jdXN0b20tcXVlc3Rpb25zL2ZpbGUtZWRpdG9yLWJ1dHRvbi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi9zcmMvY3VzdG9tLXF1ZXN0aW9ucy9maWxlLWVkaXRvci1idXR0b24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDakQsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFdBQVcsRUFBRSxNQUFNLG1CQUFtQixDQUFDOzs7QUFTekUsTUFBTSxPQUFPLHlCQUEwQixTQUFRLFdBQVc7SUFFeEQsSUFBSSxRQUFRO1FBQ1YsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxRQUFtQyxDQUFDO0lBQzdELENBQUM7SUFDRCxRQUFRO1FBQ04sT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDO0lBQ3BCLENBQUM7O3VIQVBVLHlCQUF5QjsyR0FBekIseUJBQXlCLG1IQ1Z0QyxtNUJBWUE7NEZERmEseUJBQXlCO2tCQUxyQyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSwwQkFBMEI7b0JBQ3BDLFdBQVcsRUFBRSxxQ0FBcUM7b0JBQ2xELE1BQU0sRUFBRSxDQUFDLDhCQUE4QixDQUFDO2lCQUN6Qzs4QkFFVSxLQUFLO3NCQUFiLEtBQUs7O0FBU1IsdUJBQXVCLENBQUMsUUFBUSxDQUFDLGlCQUFpQixDQUFDLG9CQUFvQixFQUFFLHlCQUF5QixDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0IH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7IEFuZ3VsYXJDb21wb25lbnRGYWN0b3J5LCBCYXNlQW5ndWxhciB9IGZyb20gXCJzdXJ2ZXktYW5ndWxhci11aVwiO1xuaW1wb3J0IHsgQWN0aW9uIH0gZnJvbSBcInN1cnZleS1jb3JlXCI7XG5pbXBvcnQgeyBRdWVzdGlvbkZpbGVFZGl0b3JNb2RlbCB9IGZyb20gXCJzdXJ2ZXktY3JlYXRvci1jb3JlXCI7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogXCJzdi1uZy1maWxlLWVkaXRvci1idXR0b25cIixcbiAgdGVtcGxhdGVVcmw6IFwiLi9maWxlLWVkaXRvci1idXR0b24uY29tcG9uZW50Lmh0bWxcIixcbiAgc3R5bGVzOiBbXCJ7IDpob3N0IHsgZGlzcGxheTogbm9uZTsgfSB9XCJdXG59KVxuZXhwb3J0IGNsYXNzIEZpbGVFZGl0b3JCdXR0b25Db21wb25lbnQgZXh0ZW5kcyBCYXNlQW5ndWxhciB7XG4gIEBJbnB1dCgpIG1vZGVsITogQWN0aW9uO1xuICBnZXQgcXVlc3Rpb24oKSB7XG4gICAgcmV0dXJuIHRoaXMubW9kZWwuZGF0YS5xdWVzdGlvbiBhcyBRdWVzdGlvbkZpbGVFZGl0b3JNb2RlbDtcbiAgfVxuICBnZXRNb2RlbCgpIHtcbiAgICByZXR1cm4gdGhpcy5tb2RlbDtcbiAgfVxufVxuXG5Bbmd1bGFyQ29tcG9uZW50RmFjdG9yeS5JbnN0YW5jZS5yZWdpc3RlckNvbXBvbmVudChcInN2LWZpbGVlZGl0LWJ1dHRvblwiLCBGaWxlRWRpdG9yQnV0dG9uQ29tcG9uZW50KTsiLCI8bmctdGVtcGxhdGUgI3RlbXBsYXRlPlxuICA8ZGl2PlxuICAgIDxsYWJlbCBbY2xhc3NdPVwibW9kZWwuZ2V0QWN0aW9uQmFySXRlbUNzcygpXCIgW2F0dHIuZm9yXT1cInF1ZXN0aW9uLmlucHV0SWRcIiBbYXR0ci5hcmlhLWxhYmVsXT1cInF1ZXN0aW9uLmNob29zZUJ1dHRvbkNhcHRpb25cIlxuICAgICAgKGNsaWNrKT1cInF1ZXN0aW9uLmNob29zZUZpbGVzKCRldmVudClcIiBba2V5MmNsaWNrXT5cbiAgICAgIDxzdmcgW2ljb25OYW1lXT1cIm1vZGVsLmljb25OYW1lXCIgc2l6ZT1cIidhdXRvJ1wiIFt0aXRsZV09XCJtb2RlbC50aXRsZVwiIFtjbGFzc109XCJtb2RlbC5jc3NDbGFzc2VzLml0ZW1JY29uXCIgc3Ytbmctc3ZnLWljb24+PC9zdmc+XG4gICAgPC9sYWJlbD5cbiAgICA8aW5wdXQgdHlwZT1cImZpbGVcIiBbZGlzYWJsZWRdPVwibW9kZWwuZGlzYWJsZWRcIiBbY2xhc3NdPVwicXVlc3Rpb24uY3NzQ2xhc3Nlcy5maWxlSW5wdXRcIiBbYXR0ci5pZF09XCJxdWVzdGlvbi5pbnB1dElkXCJcbiAgICAgICAgW2F0dHIuYXJpYS1yZXF1aXJlZF09XCJxdWVzdGlvbi5hcmlhUmVxdWlyZWRcIiBbYXR0ci5hcmlhLWxhYmVsXT1cInF1ZXN0aW9uLmFyaWFMYWJlbFwiXG4gICAgICAgIFthdHRyLmFyaWEtaW52YWxpZF09XCJxdWVzdGlvbi5hcmlhSW52YWxpZFwiIFthdHRyLmFyaWEtZGVzY3JpYmVkYnldPVwicXVlc3Rpb24uYXJpYURlc2NyaWJlZEJ5XCIgW2F0dHIubXVsdGlwbGVdPVwiZmFsc2VcIlxuICAgICAgICBbdGl0bGVdPVwicXVlc3Rpb24uaW5wdXRUaXRsZVwiIFthY2NlcHRdPVwicXVlc3Rpb24uYWNjZXB0ZWRUeXBlc1wiIChjaGFuZ2UpPVwicXVlc3Rpb24ub25GaWxlSW5wdXRDaGFuZ2UoJGV2ZW50KVwiIHRhYmluZGV4PVwiLTFcIj5cbiAgPC9kaXY+XG48L25nLXRlbXBsYXRlPlxuIl19
26
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS1lZGl0b3ItYnV0dG9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jdXN0b20tcXVlc3Rpb25zL2ZpbGUtZWRpdG9yLWJ1dHRvbi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi9zcmMvY3VzdG9tLXF1ZXN0aW9ucy9maWxlLWVkaXRvci1idXR0b24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDakQsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFdBQVcsRUFBRSxNQUFNLG1CQUFtQixDQUFDOzs7QUFTekUsTUFBTSxPQUFPLHlCQUEwQixTQUFRLFdBQVc7SUFFeEQsSUFBSSxRQUFRO1FBQ1YsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxRQUFtQyxDQUFDO0lBQzdELENBQUM7SUFDRCxRQUFRO1FBQ04sT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDO0lBQ3BCLENBQUM7O3VIQVBVLHlCQUF5QjsyR0FBekIseUJBQXlCLG1IQ1Z0QyxzK0JBYUE7NEZESGEseUJBQXlCO2tCQUxyQyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSwwQkFBMEI7b0JBQ3BDLFdBQVcsRUFBRSxxQ0FBcUM7b0JBQ2xELE1BQU0sRUFBRSxDQUFDLDhCQUE4QixDQUFDO2lCQUN6Qzs4QkFFVSxLQUFLO3NCQUFiLEtBQUs7O0FBU1IsdUJBQXVCLENBQUMsUUFBUSxDQUFDLGlCQUFpQixDQUFDLG9CQUFvQixFQUFFLHlCQUF5QixDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0IH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7IEFuZ3VsYXJDb21wb25lbnRGYWN0b3J5LCBCYXNlQW5ndWxhciB9IGZyb20gXCJzdXJ2ZXktYW5ndWxhci11aVwiO1xuaW1wb3J0IHsgQWN0aW9uIH0gZnJvbSBcInN1cnZleS1jb3JlXCI7XG5pbXBvcnQgeyBRdWVzdGlvbkZpbGVFZGl0b3JNb2RlbCB9IGZyb20gXCJzdXJ2ZXktY3JlYXRvci1jb3JlXCI7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogXCJzdi1uZy1maWxlLWVkaXRvci1idXR0b25cIixcbiAgdGVtcGxhdGVVcmw6IFwiLi9maWxlLWVkaXRvci1idXR0b24uY29tcG9uZW50Lmh0bWxcIixcbiAgc3R5bGVzOiBbXCJ7IDpob3N0IHsgZGlzcGxheTogbm9uZTsgfSB9XCJdXG59KVxuZXhwb3J0IGNsYXNzIEZpbGVFZGl0b3JCdXR0b25Db21wb25lbnQgZXh0ZW5kcyBCYXNlQW5ndWxhciB7XG4gIEBJbnB1dCgpIG1vZGVsITogQWN0aW9uO1xuICBnZXQgcXVlc3Rpb24oKSB7XG4gICAgcmV0dXJuIHRoaXMubW9kZWwuZGF0YS5xdWVzdGlvbiBhcyBRdWVzdGlvbkZpbGVFZGl0b3JNb2RlbDtcbiAgfVxuICBnZXRNb2RlbCgpIHtcbiAgICByZXR1cm4gdGhpcy5tb2RlbDtcbiAgfVxufVxuXG5Bbmd1bGFyQ29tcG9uZW50RmFjdG9yeS5JbnN0YW5jZS5yZWdpc3RlckNvbXBvbmVudChcInN2LWZpbGVlZGl0LWJ1dHRvblwiLCBGaWxlRWRpdG9yQnV0dG9uQ29tcG9uZW50KTsiLCI8bmctdGVtcGxhdGUgI3RlbXBsYXRlPlxuICA8ZGl2PlxuICAgIDxsYWJlbCBbY2xhc3NdPVwibW9kZWwuZ2V0QWN0aW9uQmFySXRlbUNzcygpXCIgW2F0dHIuZm9yXT1cInF1ZXN0aW9uLmlucHV0SWRcIiBbYXR0ci5hcmlhLWxhYmVsXT1cInF1ZXN0aW9uLmNob29zZUJ1dHRvbkNhcHRpb25cIlxuICAgICAgKGNsaWNrKT1cInF1ZXN0aW9uLmNob29zZUZpbGVzKCRldmVudClcIiBba2V5MmNsaWNrXT5cbiAgICAgIDxzdmcgW2ljb25OYW1lXT1cIm1vZGVsLmljb25OYW1lXCIgc2l6ZT1cIidhdXRvJ1wiIFt0aXRsZV09XCJtb2RlbC50aXRsZVwiIFtjbGFzc109XCJtb2RlbC5jc3NDbGFzc2VzLml0ZW1JY29uXCIgc3Ytbmctc3ZnLWljb24+PC9zdmc+XG4gICAgICA8c3BhbiBjbGFzcz1cInN2LXZpc3VhbGx5aGlkZGVuXCI+e3sgcXVlc3Rpb24uY2hvb3NlQnV0dG9uQ2FwdGlvbiB9fTwvc3Bhbj5cbiAgICA8L2xhYmVsPlxuICAgIDxpbnB1dCB0eXBlPVwiZmlsZVwiIFtkaXNhYmxlZF09XCJtb2RlbC5kaXNhYmxlZFwiIFtjbGFzc109XCJxdWVzdGlvbi5jc3NDbGFzc2VzLmZpbGVJbnB1dFwiIFthdHRyLmlkXT1cInF1ZXN0aW9uLmlucHV0SWRcIlxuICAgICAgICBbYXR0ci5hcmlhLXJlcXVpcmVkXT1cInF1ZXN0aW9uLmFyaWFSZXF1aXJlZFwiIFthdHRyLmFyaWEtbGFiZWxdPVwicXVlc3Rpb24uYXJpYUxhYmVsXCJcbiAgICAgICAgW2F0dHIuYXJpYS1pbnZhbGlkXT1cInF1ZXN0aW9uLmFyaWFJbnZhbGlkXCIgW2F0dHIuYXJpYS1kZXNjcmliZWRieV09XCJxdWVzdGlvbi5hcmlhRGVzY3JpYmVkQnlcIiBbYXR0ci5tdWx0aXBsZV09XCJmYWxzZVwiXG4gICAgICAgIFt0aXRsZV09XCJxdWVzdGlvbi5pbnB1dFRpdGxlXCIgW2FjY2VwdF09XCJxdWVzdGlvbi5hY2NlcHRlZFR5cGVzXCIgKGNoYW5nZSk9XCJxdWVzdGlvbi5vbkZpbGVJbnB1dENoYW5nZSgkZXZlbnQpXCIgdGFiaW5kZXg9XCItMVwiPlxuICA8L2Rpdj5cbjwvbmctdGVtcGxhdGU+XG4iXX0=
@@ -27,15 +27,16 @@ export class CreatorRowComponent extends CreatorModelComponent {
27
27
  }
28
28
  }
29
29
  CreatorRowComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: CreatorRowComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
30
- CreatorRowComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: CreatorRowComponent, selector: "svc-row", inputs: { componentData: "componentData" }, usesInheritance: true, ngImport: i0, template: "<ng-template #template>\n <div [class]=\"model.cssClasses\">\n <div class=\"svc-row__drop-indicator svc-row__drop-indicator--top\"></div>\n <div class=\"svc-row__drop-indicator svc-row__drop-indicator--bottom\"></div>\n <sv-ng-row [row]=\"row\"></sv-ng-row>\n </div>\n</ng-template>", components: [{ type: i1.RowComponent, selector: "sv-ng-row", inputs: ["row"] }] });
30
+ CreatorRowComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: CreatorRowComponent, selector: "svc-row", inputs: { componentData: "componentData" }, usesInheritance: true, ngImport: i0, template: "<ng-template #template>\n <div [class]=\"model.cssClasses\">\n <div class=\"svc-row__drop-indicator svc-row__drop-indicator--top\"></div>\n <div class=\"svc-row__drop-indicator svc-row__drop-indicator--bottom\"></div>\n <sv-ng-row [row]=\"row\"></sv-ng-row>\n </div>\n</ng-template>", styles: [":host { display: none; }"], components: [{ type: i1.RowComponent, selector: "sv-ng-row", inputs: ["row"] }] });
31
31
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: CreatorRowComponent, decorators: [{
32
32
  type: Component,
33
33
  args: [{
34
34
  selector: "svc-row",
35
- templateUrl: "./row.component.html"
35
+ templateUrl: "./row.component.html",
36
+ styles: [":host { display: none; }"]
36
37
  }]
37
38
  }], propDecorators: { componentData: [{
38
39
  type: Input
39
40
  }] } });
40
41
  AngularComponentFactory.Instance.registerComponent("svc-row", CreatorRowComponent);
41
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm93LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9yb3cuY29tcG9uZW50LnRzIiwiLi4vLi4vc3JjL3Jvdy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUVqRCxPQUFPLEVBQXNCLFlBQVksRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ2xFLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLG1CQUFtQixDQUFDOzs7QUFNNUQsTUFBTSxPQUFPLG1CQUFvQixTQUFRLHFCQUFtQztJQUsxRSxJQUFXLEdBQUc7UUFDWixPQUFPLElBQUksQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDO0lBQ2hDLENBQUM7SUFDRCxJQUFXLE9BQU87UUFDaEIsT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBQztJQUNwQyxDQUFDO0lBQ1MsUUFBUTtRQUNoQixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUM7SUFDcEIsQ0FBQztJQUNELFdBQVc7UUFDVCxJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksWUFBWSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLEdBQUcsRUFBTyxTQUFTLENBQUMsQ0FBQztRQUN0RSxJQUFJLENBQUMsS0FBSyxDQUFDLHVCQUF1QixFQUFFLENBQUM7SUFDdkMsQ0FBQztJQUNELG9CQUFvQjtRQUNsQixPQUFPLENBQUMsU0FBUyxFQUFFLEtBQUssQ0FBQyxDQUFDO0lBQzVCLENBQUM7SUFDUSxXQUFXO1FBQ2xCLEtBQUssQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUNwQixJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sRUFBRSxDQUFDO0lBQ3ZCLENBQUM7O2lIQXhCVSxtQkFBbUI7cUdBQW5CLG1CQUFtQixrSENWaEMsdVNBTWM7NEZESUQsbUJBQW1CO2tCQUovQixTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxTQUFTO29CQUNuQixXQUFXLEVBQUUsc0JBQXNCO2lCQUNwQzs4QkFFVSxhQUFhO3NCQUFyQixLQUFLOztBQTJCUix1QkFBdUIsQ0FBQyxRQUFRLENBQUMsaUJBQWlCLENBQUMsU0FBUyxFQUFFLG1CQUFtQixDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0IH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7IFF1ZXN0aW9uUm93TW9kZWwgfSBmcm9tIFwic3VydmV5LWNvcmVcIjtcbmltcG9ydCB7IFN1cnZleUNyZWF0b3JNb2RlbCwgUm93Vmlld01vZGVsIH0gZnJvbSBcInN1cnZleS1jcmVhdG9yLWNvcmVcIjtcbmltcG9ydCB7IENyZWF0b3JNb2RlbENvbXBvbmVudCB9IGZyb20gXCIuL2NyZWF0b3ItbW9kZWwuY29tcG9uZW50XCI7XG5pbXBvcnQgeyBBbmd1bGFyQ29tcG9uZW50RmFjdG9yeSB9IGZyb20gXCJzdXJ2ZXktYW5ndWxhci11aVwiO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6IFwic3ZjLXJvd1wiLFxuICB0ZW1wbGF0ZVVybDogXCIuL3Jvdy5jb21wb25lbnQuaHRtbFwiXG59KVxuZXhwb3J0IGNsYXNzIENyZWF0b3JSb3dDb21wb25lbnQgZXh0ZW5kcyBDcmVhdG9yTW9kZWxDb21wb25lbnQ8Um93Vmlld01vZGVsPiB7XG4gIEBJbnB1dCgpIGNvbXBvbmVudERhdGEhOiB7IGNyZWF0b3I6IFN1cnZleUNyZWF0b3JNb2RlbCwgcm93OiBRdWVzdGlvblJvd01vZGVsIH07XG5cbiAgcHVibGljIG1vZGVsITogUm93Vmlld01vZGVsO1xuXG4gIHB1YmxpYyBnZXQgcm93KCkge1xuICAgIHJldHVybiB0aGlzLmNvbXBvbmVudERhdGEucm93O1xuICB9XG4gIHB1YmxpYyBnZXQgY3JlYXRvcigpIHtcbiAgICByZXR1cm4gdGhpcy5jb21wb25lbnREYXRhLmNyZWF0b3I7XG4gIH1cbiAgcHJvdGVjdGVkIGdldE1vZGVsKCk6IFJvd1ZpZXdNb2RlbCB7XG4gICAgcmV0dXJuIHRoaXMubW9kZWw7XG4gIH1cbiAgY3JlYXRlTW9kZWwoKSB7XG4gICAgdGhpcy5tb2RlbCA9IG5ldyBSb3dWaWV3TW9kZWwodGhpcy5jcmVhdG9yLCB0aGlzLnJvdywgPGFueT51bmRlZmluZWQpO1xuICAgIHRoaXMubW9kZWwuc3Vic2NyaWJlRWxlbWVudENoYW5nZXMoKTtcbiAgfVxuICBnZXRQcm9wZXJ0aWVzVG9UcmFjaygpOiBzdHJpbmdbXSB7XG4gICAgcmV0dXJuIFtcImNyZWF0b3JcIiwgXCJyb3dcIl07XG4gIH1cbiAgb3ZlcnJpZGUgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgc3VwZXIubmdPbkRlc3Ryb3koKTtcbiAgICB0aGlzLm1vZGVsLmRpc3Bvc2UoKTtcbiAgfVxuXG59XG5cbkFuZ3VsYXJDb21wb25lbnRGYWN0b3J5Lkluc3RhbmNlLnJlZ2lzdGVyQ29tcG9uZW50KFwic3ZjLXJvd1wiLCBDcmVhdG9yUm93Q29tcG9uZW50KTsiLCI8bmctdGVtcGxhdGUgI3RlbXBsYXRlPlxuICA8ZGl2IFtjbGFzc109XCJtb2RlbC5jc3NDbGFzc2VzXCI+XG4gICAgPGRpdiBjbGFzcz1cInN2Yy1yb3dfX2Ryb3AtaW5kaWNhdG9yIHN2Yy1yb3dfX2Ryb3AtaW5kaWNhdG9yLS10b3BcIj48L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwic3ZjLXJvd19fZHJvcC1pbmRpY2F0b3Igc3ZjLXJvd19fZHJvcC1pbmRpY2F0b3ItLWJvdHRvbVwiPjwvZGl2PlxuICAgIDxzdi1uZy1yb3cgW3Jvd109XCJyb3dcIj48L3N2LW5nLXJvdz5cbiAgPC9kaXY+XG48L25nLXRlbXBsYXRlPiJdfQ==
42
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm93LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9yb3cuY29tcG9uZW50LnRzIiwiLi4vLi4vc3JjL3Jvdy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUVqRCxPQUFPLEVBQXNCLFlBQVksRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ2xFLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLG1CQUFtQixDQUFDOzs7QUFPNUQsTUFBTSxPQUFPLG1CQUFvQixTQUFRLHFCQUFtQztJQUsxRSxJQUFXLEdBQUc7UUFDWixPQUFPLElBQUksQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDO0lBQ2hDLENBQUM7SUFDRCxJQUFXLE9BQU87UUFDaEIsT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBQztJQUNwQyxDQUFDO0lBQ1MsUUFBUTtRQUNoQixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUM7SUFDcEIsQ0FBQztJQUNELFdBQVc7UUFDVCxJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksWUFBWSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLEdBQUcsRUFBTyxTQUFTLENBQUMsQ0FBQztRQUN0RSxJQUFJLENBQUMsS0FBSyxDQUFDLHVCQUF1QixFQUFFLENBQUM7SUFDdkMsQ0FBQztJQUNELG9CQUFvQjtRQUNsQixPQUFPLENBQUMsU0FBUyxFQUFFLEtBQUssQ0FBQyxDQUFDO0lBQzVCLENBQUM7SUFDUSxXQUFXO1FBQ2xCLEtBQUssQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUNwQixJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sRUFBRSxDQUFDO0lBQ3ZCLENBQUM7O2lIQXhCVSxtQkFBbUI7cUdBQW5CLG1CQUFtQixrSENYaEMsdVNBTWM7NEZES0QsbUJBQW1CO2tCQUwvQixTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxTQUFTO29CQUNuQixXQUFXLEVBQUUsc0JBQXNCO29CQUNuQyxNQUFNLEVBQUUsQ0FBQywwQkFBMEIsQ0FBQztpQkFDckM7OEJBRVUsYUFBYTtzQkFBckIsS0FBSzs7QUEyQlIsdUJBQXVCLENBQUMsUUFBUSxDQUFDLGlCQUFpQixDQUFDLFNBQVMsRUFBRSxtQkFBbUIsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQgeyBRdWVzdGlvblJvd01vZGVsIH0gZnJvbSBcInN1cnZleS1jb3JlXCI7XG5pbXBvcnQgeyBTdXJ2ZXlDcmVhdG9yTW9kZWwsIFJvd1ZpZXdNb2RlbCB9IGZyb20gXCJzdXJ2ZXktY3JlYXRvci1jb3JlXCI7XG5pbXBvcnQgeyBDcmVhdG9yTW9kZWxDb21wb25lbnQgfSBmcm9tIFwiLi9jcmVhdG9yLW1vZGVsLmNvbXBvbmVudFwiO1xuaW1wb3J0IHsgQW5ndWxhckNvbXBvbmVudEZhY3RvcnkgfSBmcm9tIFwic3VydmV5LWFuZ3VsYXItdWlcIjtcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiBcInN2Yy1yb3dcIixcbiAgdGVtcGxhdGVVcmw6IFwiLi9yb3cuY29tcG9uZW50Lmh0bWxcIixcbiAgc3R5bGVzOiBbXCI6aG9zdCB7IGRpc3BsYXk6IG5vbmU7IH1cIl1cbn0pXG5leHBvcnQgY2xhc3MgQ3JlYXRvclJvd0NvbXBvbmVudCBleHRlbmRzIENyZWF0b3JNb2RlbENvbXBvbmVudDxSb3dWaWV3TW9kZWw+IHtcbiAgQElucHV0KCkgY29tcG9uZW50RGF0YSE6IHsgY3JlYXRvcjogU3VydmV5Q3JlYXRvck1vZGVsLCByb3c6IFF1ZXN0aW9uUm93TW9kZWwgfTtcblxuICBwdWJsaWMgbW9kZWwhOiBSb3dWaWV3TW9kZWw7XG5cbiAgcHVibGljIGdldCByb3coKSB7XG4gICAgcmV0dXJuIHRoaXMuY29tcG9uZW50RGF0YS5yb3c7XG4gIH1cbiAgcHVibGljIGdldCBjcmVhdG9yKCkge1xuICAgIHJldHVybiB0aGlzLmNvbXBvbmVudERhdGEuY3JlYXRvcjtcbiAgfVxuICBwcm90ZWN0ZWQgZ2V0TW9kZWwoKTogUm93Vmlld01vZGVsIHtcbiAgICByZXR1cm4gdGhpcy5tb2RlbDtcbiAgfVxuICBjcmVhdGVNb2RlbCgpIHtcbiAgICB0aGlzLm1vZGVsID0gbmV3IFJvd1ZpZXdNb2RlbCh0aGlzLmNyZWF0b3IsIHRoaXMucm93LCA8YW55PnVuZGVmaW5lZCk7XG4gICAgdGhpcy5tb2RlbC5zdWJzY3JpYmVFbGVtZW50Q2hhbmdlcygpO1xuICB9XG4gIGdldFByb3BlcnRpZXNUb1RyYWNrKCk6IHN0cmluZ1tdIHtcbiAgICByZXR1cm4gW1wiY3JlYXRvclwiLCBcInJvd1wiXTtcbiAgfVxuICBvdmVycmlkZSBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICBzdXBlci5uZ09uRGVzdHJveSgpO1xuICAgIHRoaXMubW9kZWwuZGlzcG9zZSgpO1xuICB9XG5cbn1cblxuQW5ndWxhckNvbXBvbmVudEZhY3RvcnkuSW5zdGFuY2UucmVnaXN0ZXJDb21wb25lbnQoXCJzdmMtcm93XCIsIENyZWF0b3JSb3dDb21wb25lbnQpOyIsIjxuZy10ZW1wbGF0ZSAjdGVtcGxhdGU+XG4gIDxkaXYgW2NsYXNzXT1cIm1vZGVsLmNzc0NsYXNzZXNcIj5cbiAgICA8ZGl2IGNsYXNzPVwic3ZjLXJvd19fZHJvcC1pbmRpY2F0b3Igc3ZjLXJvd19fZHJvcC1pbmRpY2F0b3ItLXRvcFwiPjwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJzdmMtcm93X19kcm9wLWluZGljYXRvciBzdmMtcm93X19kcm9wLWluZGljYXRvci0tYm90dG9tXCI+PC9kaXY+XG4gICAgPHN2LW5nLXJvdyBbcm93XT1cInJvd1wiPjwvc3Ytbmctcm93PlxuICA8L2Rpdj5cbjwvbmctdGVtcGxhdGU+Il19
@@ -8,9 +8,15 @@ export class TranslationTabComponent extends BaseAngular {
8
8
  getModel() {
9
9
  return this.model;
10
10
  }
11
+ // The strings survey is fully recreated on reset(). Its elements keep deterministic ids across
12
+ // instances, so *ngFor's element trackBy would reuse the disposed survey's (lazy-skeleton) rows.
13
+ // Keying the survey-content by the per-instance elementIdPrefix forces Angular to recreate it.
14
+ trackStringsSurveyBy(_, survey) {
15
+ return (survey === null || survey === void 0 ? void 0 : survey.elementIdPrefix) || "";
16
+ }
11
17
  }
12
18
  TranslationTabComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: TranslationTabComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
13
- TranslationTabComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: TranslationTabComponent, selector: "svc-tab-translation", inputs: { model: "model" }, 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 <div *ngIf=\"!model.isEmpty\" class=\"st-content\">\n <div class=\"svc-flex-column st-strings-wrapper\">\n <div class=\"svc-flex-row st-strings-header\">\n <survey-content [model]=\"model.stringsHeaderSurvey\"></survey-content>\n </div>\n <div class=\"svc-flex-row svc-plugin-tab__content st-strings\">\n <survey-content [model]=\"model.stringsSurvey\"></survey-content>\n </div>\n </div>\n </div>\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"] }] });
19
+ TranslationTabComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: TranslationTabComponent, selector: "svc-tab-translation", inputs: { model: "model" }, 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 <div *ngIf=\"!model.isEmpty\" 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 [model.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 [model.stringsSurvey]; trackBy: trackStringsSurveyBy\">\n <survey-content [model]=\"s\"></survey-content>\n </ng-container>\n </div>\n </div>\n </div>\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"] }] });
14
20
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: TranslationTabComponent, decorators: [{
15
21
  type: Component,
16
22
  args: [{
@@ -22,4 +28,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImpo
22
28
  type: Input
23
29
  }] } });
24
30
  AngularComponentFactory.Instance.registerComponent("svc-tab-translation", TranslationTabComponent);
25
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNsYXRpb24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3RhYnMvdHJhbnNsYXRpb24vdHJhbnNsYXRpb24uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vc3JjL3RhYnMvdHJhbnNsYXRpb24vdHJhbnNsYXRpb24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDakQsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFdBQVcsRUFBRSxNQUFNLG1CQUFtQixDQUFDOzs7OztBQVF6RSxNQUFNLE9BQU8sdUJBQXdCLFNBQVEsV0FBd0I7SUFHekQsUUFBUTtRQUNoQixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUM7SUFDcEIsQ0FBQzs7cUhBTFUsdUJBQXVCO3lHQUF2Qix1QkFBdUIsOEdDVHBDLHEzQkFpQmM7NEZEUkQsdUJBQXVCO2tCQUxuQyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxxQkFBcUI7b0JBQy9CLFdBQVcsRUFBRSw4QkFBOEI7b0JBQzNDLE1BQU0sRUFBRSxDQUFDLDBCQUEwQixDQUFDO2lCQUNyQzs4QkFFVSxLQUFLO3NCQUFiLEtBQUs7O0FBTVIsdUJBQXVCLENBQUMsUUFBUSxDQUFDLGlCQUFpQixDQUFDLHFCQUFxQixFQUFFLHVCQUF1QixDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0IH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7IEFuZ3VsYXJDb21wb25lbnRGYWN0b3J5LCBCYXNlQW5ndWxhciB9IGZyb20gXCJzdXJ2ZXktYW5ndWxhci11aVwiO1xuaW1wb3J0IHsgVHJhbnNsYXRpb24gfSBmcm9tIFwic3VydmV5LWNyZWF0b3ItY29yZVwiO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6IFwic3ZjLXRhYi10cmFuc2xhdGlvblwiLFxuICB0ZW1wbGF0ZVVybDogXCIuL3RyYW5zbGF0aW9uLmNvbXBvbmVudC5odG1sXCIsXG4gIHN0eWxlczogW1wiOmhvc3QgeyBkaXNwbGF5OiBub25lOyB9XCJdXG59KVxuZXhwb3J0IGNsYXNzIFRyYW5zbGF0aW9uVGFiQ29tcG9uZW50IGV4dGVuZHMgQmFzZUFuZ3VsYXI8VHJhbnNsYXRpb24+IHtcbiAgQElucHV0KCkgbW9kZWwhOiBUcmFuc2xhdGlvbjtcblxuICBwcm90ZWN0ZWQgZ2V0TW9kZWwoKTogVHJhbnNsYXRpb24ge1xuICAgIHJldHVybiB0aGlzLm1vZGVsO1xuICB9XG59XG5Bbmd1bGFyQ29tcG9uZW50RmFjdG9yeS5JbnN0YW5jZS5yZWdpc3RlckNvbXBvbmVudChcInN2Yy10YWItdHJhbnNsYXRpb25cIiwgVHJhbnNsYXRpb25UYWJDb21wb25lbnQpO1xuXG4iLCI8bmctdGVtcGxhdGUgI3RlbXBsYXRlPlxuICA8ZGl2IGNsYXNzPVwic3ZjLWNyZWF0b3ItdGFiX19jb250ZW50IHN2Yy10cmFuc2xhdGlvbi10YWJcIiBbY2xhc3NdPVwibW9kZWwuaXNFbXB0eSA/ICdzdmMtdHJhbnNsYXRpb24tdGFiLS1lbXB0eScgOiAnJ1wiPlxuICAgIDxzdmMtc3VyZmFjZS1wbGFjZWhvbGRlciAqbmdJZj1cIm1vZGVsLmlzRW1wdHlcIiBbbmFtZV09XCIndHJhbnNsYXRpb24nXCJcbiAgICAgIFtwbGFjZWhvbGRlclRpdGxlVGV4dF09XCJtb2RlbC5wbGFjZWhvbGRlclRpdGxlVGV4dFwiXG4gICAgICBbcGxhY2Vob2xkZXJEZXNjcmlwdGlvblRleHRdPVwibW9kZWwucGxhY2Vob2xkZXJEZXNjcmlwdGlvblRleHRcIj5cbiAgICA8L3N2Yy1zdXJmYWNlLXBsYWNlaG9sZGVyPlxuICAgIDxkaXYgKm5nSWY9XCIhbW9kZWwuaXNFbXB0eVwiIGNsYXNzPVwic3QtY29udGVudFwiPlxuICAgICAgPGRpdiBjbGFzcz1cInN2Yy1mbGV4LWNvbHVtbiBzdC1zdHJpbmdzLXdyYXBwZXJcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInN2Yy1mbGV4LXJvdyBzdC1zdHJpbmdzLWhlYWRlclwiPlxuICAgICAgICAgIDxzdXJ2ZXktY29udGVudCBbbW9kZWxdPVwibW9kZWwuc3RyaW5nc0hlYWRlclN1cnZleVwiPjwvc3VydmV5LWNvbnRlbnQ+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwic3ZjLWZsZXgtcm93IHN2Yy1wbHVnaW4tdGFiX19jb250ZW50IHN0LXN0cmluZ3NcIj5cbiAgICAgICAgICA8c3VydmV5LWNvbnRlbnQgW21vZGVsXT1cIm1vZGVsLnN0cmluZ3NTdXJ2ZXlcIj48L3N1cnZleS1jb250ZW50PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvbmctdGVtcGxhdGU+Il19
31
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNsYXRpb24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3RhYnMvdHJhbnNsYXRpb24vdHJhbnNsYXRpb24uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vc3JjL3RhYnMvdHJhbnNsYXRpb24vdHJhbnNsYXRpb24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDakQsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFdBQVcsRUFBRSxNQUFNLG1CQUFtQixDQUFDOzs7OztBQVF6RSxNQUFNLE9BQU8sdUJBQXdCLFNBQVEsV0FBd0I7SUFHekQsUUFBUTtRQUNoQixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUM7SUFDcEIsQ0FBQztJQUNELCtGQUErRjtJQUMvRixpR0FBaUc7SUFDakcsK0ZBQStGO0lBQ3hGLG9CQUFvQixDQUFDLENBQVMsRUFBRSxNQUFXO1FBQ2hELE9BQU8sQ0FBQSxNQUFNLGFBQU4sTUFBTSx1QkFBTixNQUFNLENBQUUsZUFBZSxLQUFJLEVBQUUsQ0FBQztJQUN2QyxDQUFDOztxSEFYVSx1QkFBdUI7eUdBQXZCLHVCQUF1Qiw4R0NUcEMsaWxDQXFCYzs0RkRaRCx1QkFBdUI7a0JBTG5DLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLHFCQUFxQjtvQkFDL0IsV0FBVyxFQUFFLDhCQUE4QjtvQkFDM0MsTUFBTSxFQUFFLENBQUMsMEJBQTBCLENBQUM7aUJBQ3JDOzhCQUVVLEtBQUs7c0JBQWIsS0FBSzs7QUFZUix1QkFBdUIsQ0FBQyxRQUFRLENBQUMsaUJBQWlCLENBQUMscUJBQXFCLEVBQUUsdUJBQXVCLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHsgQW5ndWxhckNvbXBvbmVudEZhY3RvcnksIEJhc2VBbmd1bGFyIH0gZnJvbSBcInN1cnZleS1hbmd1bGFyLXVpXCI7XG5pbXBvcnQgeyBUcmFuc2xhdGlvbiB9IGZyb20gXCJzdXJ2ZXktY3JlYXRvci1jb3JlXCI7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogXCJzdmMtdGFiLXRyYW5zbGF0aW9uXCIsXG4gIHRlbXBsYXRlVXJsOiBcIi4vdHJhbnNsYXRpb24uY29tcG9uZW50Lmh0bWxcIixcbiAgc3R5bGVzOiBbXCI6aG9zdCB7IGRpc3BsYXk6IG5vbmU7IH1cIl1cbn0pXG5leHBvcnQgY2xhc3MgVHJhbnNsYXRpb25UYWJDb21wb25lbnQgZXh0ZW5kcyBCYXNlQW5ndWxhcjxUcmFuc2xhdGlvbj4ge1xuICBASW5wdXQoKSBtb2RlbCE6IFRyYW5zbGF0aW9uO1xuXG4gIHByb3RlY3RlZCBnZXRNb2RlbCgpOiBUcmFuc2xhdGlvbiB7XG4gICAgcmV0dXJuIHRoaXMubW9kZWw7XG4gIH1cbiAgLy8gVGhlIHN0cmluZ3Mgc3VydmV5IGlzIGZ1bGx5IHJlY3JlYXRlZCBvbiByZXNldCgpLiBJdHMgZWxlbWVudHMga2VlcCBkZXRlcm1pbmlzdGljIGlkcyBhY3Jvc3NcbiAgLy8gaW5zdGFuY2VzLCBzbyAqbmdGb3IncyBlbGVtZW50IHRyYWNrQnkgd291bGQgcmV1c2UgdGhlIGRpc3Bvc2VkIHN1cnZleSdzIChsYXp5LXNrZWxldG9uKSByb3dzLlxuICAvLyBLZXlpbmcgdGhlIHN1cnZleS1jb250ZW50IGJ5IHRoZSBwZXItaW5zdGFuY2UgZWxlbWVudElkUHJlZml4IGZvcmNlcyBBbmd1bGFyIHRvIHJlY3JlYXRlIGl0LlxuICBwdWJsaWMgdHJhY2tTdHJpbmdzU3VydmV5QnkoXzogbnVtYmVyLCBzdXJ2ZXk6IGFueSk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHN1cnZleT8uZWxlbWVudElkUHJlZml4IHx8IFwiXCI7XG4gIH1cbn1cbkFuZ3VsYXJDb21wb25lbnRGYWN0b3J5Lkluc3RhbmNlLnJlZ2lzdGVyQ29tcG9uZW50KFwic3ZjLXRhYi10cmFuc2xhdGlvblwiLCBUcmFuc2xhdGlvblRhYkNvbXBvbmVudCk7XG5cbiIsIjxuZy10ZW1wbGF0ZSAjdGVtcGxhdGU+XG4gIDxkaXYgY2xhc3M9XCJzdmMtY3JlYXRvci10YWJfX2NvbnRlbnQgc3ZjLXRyYW5zbGF0aW9uLXRhYlwiIFtjbGFzc109XCJtb2RlbC5pc0VtcHR5ID8gJ3N2Yy10cmFuc2xhdGlvbi10YWItLWVtcHR5JyA6ICcnXCI+XG4gICAgPHN2Yy1zdXJmYWNlLXBsYWNlaG9sZGVyICpuZ0lmPVwibW9kZWwuaXNFbXB0eVwiIFtuYW1lXT1cIid0cmFuc2xhdGlvbidcIlxuICAgICAgW3BsYWNlaG9sZGVyVGl0bGVUZXh0XT1cIm1vZGVsLnBsYWNlaG9sZGVyVGl0bGVUZXh0XCJcbiAgICAgIFtwbGFjZWhvbGRlckRlc2NyaXB0aW9uVGV4dF09XCJtb2RlbC5wbGFjZWhvbGRlckRlc2NyaXB0aW9uVGV4dFwiPlxuICAgIDwvc3ZjLXN1cmZhY2UtcGxhY2Vob2xkZXI+XG4gICAgPGRpdiAqbmdJZj1cIiFtb2RlbC5pc0VtcHR5XCIgY2xhc3M9XCJzdC1jb250ZW50XCI+XG4gICAgICA8ZGl2IGNsYXNzPVwic3ZjLWZsZXgtY29sdW1uIHN0LXN0cmluZ3Mtd3JhcHBlclwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwic3ZjLWZsZXgtcm93IHN0LXN0cmluZ3MtaGVhZGVyXCI+XG4gICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgcyBvZiBbbW9kZWwuc3RyaW5nc0hlYWRlclN1cnZleV07IHRyYWNrQnk6IHRyYWNrU3RyaW5nc1N1cnZleUJ5XCI+XG4gICAgICAgICAgICA8c3VydmV5LWNvbnRlbnQgW21vZGVsXT1cInNcIj48L3N1cnZleS1jb250ZW50PlxuICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInN2Yy1mbGV4LXJvdyBzdmMtcGx1Z2luLXRhYl9fY29udGVudCBzdC1zdHJpbmdzXCI+XG4gICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgcyBvZiBbbW9kZWwuc3RyaW5nc1N1cnZleV07IHRyYWNrQnk6IHRyYWNrU3RyaW5nc1N1cnZleUJ5XCI+XG4gICAgICAgICAgICA8c3VydmV5LWNvbnRlbnQgW21vZGVsXT1cInNcIj48L3N1cnZleS1jb250ZW50PlxuICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvbmctdGVtcGxhdGU+Il19
@@ -919,9 +919,15 @@ class TranslationTabComponent extends BaseAngular {
919
919
  getModel() {
920
920
  return this.model;
921
921
  }
922
+ // The strings survey is fully recreated on reset(). Its elements keep deterministic ids across
923
+ // instances, so *ngFor's element trackBy would reuse the disposed survey's (lazy-skeleton) rows.
924
+ // Keying the survey-content by the per-instance elementIdPrefix forces Angular to recreate it.
925
+ trackStringsSurveyBy(_, survey) {
926
+ return (survey === null || survey === void 0 ? void 0 : survey.elementIdPrefix) || "";
927
+ }
922
928
  }
923
929
  TranslationTabComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: TranslationTabComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
924
- TranslationTabComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: TranslationTabComponent, selector: "svc-tab-translation", inputs: { model: "model" }, 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 <div *ngIf=\"!model.isEmpty\" class=\"st-content\">\n <div class=\"svc-flex-column st-strings-wrapper\">\n <div class=\"svc-flex-row st-strings-header\">\n <survey-content [model]=\"model.stringsHeaderSurvey\"></survey-content>\n </div>\n <div class=\"svc-flex-row svc-plugin-tab__content st-strings\">\n <survey-content [model]=\"model.stringsSurvey\"></survey-content>\n </div>\n </div>\n </div>\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"] }] });
930
+ TranslationTabComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: TranslationTabComponent, selector: "svc-tab-translation", inputs: { model: "model" }, 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 <div *ngIf=\"!model.isEmpty\" 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 [model.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 [model.stringsSurvey]; trackBy: trackStringsSurveyBy\">\n <survey-content [model]=\"s\"></survey-content>\n </ng-container>\n </div>\n </div>\n </div>\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"] }] });
925
931
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: TranslationTabComponent, decorators: [{
926
932
  type: Component,
927
933
  args: [{
@@ -2132,12 +2138,13 @@ class CreatorRowComponent extends CreatorModelComponent {
2132
2138
  }
2133
2139
  }
2134
2140
  CreatorRowComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: CreatorRowComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
2135
- CreatorRowComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: CreatorRowComponent, selector: "svc-row", inputs: { componentData: "componentData" }, usesInheritance: true, ngImport: i0, template: "<ng-template #template>\n <div [class]=\"model.cssClasses\">\n <div class=\"svc-row__drop-indicator svc-row__drop-indicator--top\"></div>\n <div class=\"svc-row__drop-indicator svc-row__drop-indicator--bottom\"></div>\n <sv-ng-row [row]=\"row\"></sv-ng-row>\n </div>\n</ng-template>", components: [{ type: i1.RowComponent, selector: "sv-ng-row", inputs: ["row"] }] });
2141
+ CreatorRowComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: CreatorRowComponent, selector: "svc-row", inputs: { componentData: "componentData" }, usesInheritance: true, ngImport: i0, template: "<ng-template #template>\n <div [class]=\"model.cssClasses\">\n <div class=\"svc-row__drop-indicator svc-row__drop-indicator--top\"></div>\n <div class=\"svc-row__drop-indicator svc-row__drop-indicator--bottom\"></div>\n <sv-ng-row [row]=\"row\"></sv-ng-row>\n </div>\n</ng-template>", styles: [":host { display: none; }"], components: [{ type: i1.RowComponent, selector: "sv-ng-row", inputs: ["row"] }] });
2136
2142
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: CreatorRowComponent, decorators: [{
2137
2143
  type: Component,
2138
2144
  args: [{
2139
2145
  selector: "svc-row",
2140
- templateUrl: "./row.component.html"
2146
+ templateUrl: "./row.component.html",
2147
+ styles: [":host { display: none; }"]
2141
2148
  }]
2142
2149
  }], propDecorators: { componentData: [{
2143
2150
  type: Input
@@ -2402,7 +2409,7 @@ class FileEditorButtonComponent extends BaseAngular {
2402
2409
  }
2403
2410
  }
2404
2411
  FileEditorButtonComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: FileEditorButtonComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
2405
- FileEditorButtonComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: FileEditorButtonComponent, selector: "sv-ng-file-editor-button", inputs: { model: "model" }, usesInheritance: true, ngImport: i0, template: "<ng-template #template>\n <div>\n <label [class]=\"model.getActionBarItemCss()\" [attr.for]=\"question.inputId\" [attr.aria-label]=\"question.chooseButtonCaption\"\n (click)=\"question.chooseFiles($event)\" [key2click]>\n <svg [iconName]=\"model.iconName\" size=\"'auto'\" [title]=\"model.title\" [class]=\"model.cssClasses.itemIcon\" sv-ng-svg-icon></svg>\n </label>\n <input type=\"file\" [disabled]=\"model.disabled\" [class]=\"question.cssClasses.fileInput\" [attr.id]=\"question.inputId\"\n [attr.aria-required]=\"question.ariaRequired\" [attr.aria-label]=\"question.ariaLabel\"\n [attr.aria-invalid]=\"question.ariaInvalid\" [attr.aria-describedby]=\"question.ariaDescribedBy\" [attr.multiple]=\"false\"\n [title]=\"question.inputTitle\" [accept]=\"question.acceptedTypes\" (change)=\"question.onFileInputChange($event)\" tabindex=\"-1\">\n </div>\n</ng-template>\n", styles: ["{ :host { display: none; } }"], components: [{ type: i1.SvgIconComponent, selector: "'[sv-ng-svg-icon]'", inputs: ["size", "width", "height", "iconName", "partCss", "css", "title"] }], directives: [{ type: i1.Key2ClickDirective, selector: "[key2click]", inputs: ["key2click"] }] });
2412
+ FileEditorButtonComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: FileEditorButtonComponent, selector: "sv-ng-file-editor-button", inputs: { model: "model" }, usesInheritance: true, ngImport: i0, template: "<ng-template #template>\n <div>\n <label [class]=\"model.getActionBarItemCss()\" [attr.for]=\"question.inputId\" [attr.aria-label]=\"question.chooseButtonCaption\"\n (click)=\"question.chooseFiles($event)\" [key2click]>\n <svg [iconName]=\"model.iconName\" size=\"'auto'\" [title]=\"model.title\" [class]=\"model.cssClasses.itemIcon\" sv-ng-svg-icon></svg>\n <span class=\"sv-visuallyhidden\">{{ question.chooseButtonCaption }}</span>\n </label>\n <input type=\"file\" [disabled]=\"model.disabled\" [class]=\"question.cssClasses.fileInput\" [attr.id]=\"question.inputId\"\n [attr.aria-required]=\"question.ariaRequired\" [attr.aria-label]=\"question.ariaLabel\"\n [attr.aria-invalid]=\"question.ariaInvalid\" [attr.aria-describedby]=\"question.ariaDescribedBy\" [attr.multiple]=\"false\"\n [title]=\"question.inputTitle\" [accept]=\"question.acceptedTypes\" (change)=\"question.onFileInputChange($event)\" tabindex=\"-1\">\n </div>\n</ng-template>\n", styles: ["{ :host { display: none; } }"], components: [{ type: i1.SvgIconComponent, selector: "'[sv-ng-svg-icon]'", inputs: ["size", "width", "height", "iconName", "partCss", "css", "title"] }], directives: [{ type: i1.Key2ClickDirective, selector: "[key2click]", inputs: ["key2click"] }] });
2406
2413
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: FileEditorButtonComponent, decorators: [{
2407
2414
  type: Component,
2408
2415
  args: [{