survey-angular-ui 1.9.104 → 1.9.106

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.
Files changed (34) hide show
  1. package/angular-ui.d.ts +2 -1
  2. package/angular-ui.module.d.ts +4 -3
  3. package/bundles/survey-angular-ui.umd.js +106 -37
  4. package/bundles/survey-angular-ui.umd.js.map +1 -1
  5. package/components/list/list.component.d.ts +1 -0
  6. package/components/popup/popup.component.d.ts +1 -0
  7. package/components/progress/default/progress.component.d.ts +2 -1
  8. package/errors.component.d.ts +2 -8
  9. package/esm2015/angular-ui.js +3 -2
  10. package/esm2015/angular-ui.module.js +6 -5
  11. package/esm2015/base-angular.js +2 -1
  12. package/esm2015/comment.component.js +2 -2
  13. package/esm2015/components/list/list.component.js +5 -1
  14. package/esm2015/components/popup/modal-container.component.js +4 -1
  15. package/esm2015/components/popup/popup.component.js +10 -1
  16. package/esm2015/components/progress/default/progress.component.js +5 -3
  17. package/esm2015/components-container.component.js +2 -2
  18. package/esm2015/errors.component.js +6 -22
  19. package/esm2015/popup.survey.component.js +5 -1
  20. package/esm2015/question.component.js +2 -2
  21. package/esm2015/questions/file.component.js +2 -2
  22. package/esm2015/questions/matrixcell.component.js +2 -2
  23. package/esm2015/questions/multipletext.component.js +3 -6
  24. package/esm2015/questions/multipletextitem.component.js +28 -5
  25. package/esm2015/questions/multipletextrow.component.js +28 -0
  26. package/esm2015/questions/signature.component.js +2 -2
  27. package/esm2015/survey-content.component.js +4 -2
  28. package/fesm2015/survey-angular-ui.js +93 -40
  29. package/fesm2015/survey-angular-ui.js.map +1 -1
  30. package/package.json +1 -1
  31. package/popup.survey.component.d.ts +1 -0
  32. package/questions/multipletext.component.d.ts +1 -2
  33. package/questions/multipletextitem.component.d.ts +8 -3
  34. package/questions/multipletextrow.component.d.ts +11 -0
package/angular-ui.d.ts CHANGED
@@ -73,8 +73,9 @@ export * from "./utils/safe-html.pipe";
73
73
  export * from "./questions/comment.component";
74
74
  export * from "./questions/signature.component";
75
75
  export * from "./questions/multipletext.component";
76
- export * from "./errors.component";
77
76
  export * from "./questions/multipletextitem.component";
77
+ export * from "./questions/multipletextrow.component";
78
+ export * from "./errors.component";
78
79
  export * from "./utils/dynamic.directive";
79
80
  export * from "./questions/ranking.component";
80
81
  export * from "./questions/ranking-item.component";
@@ -105,10 +105,11 @@ import * as i103 from "./components/timer-panel/timer-panel.component";
105
105
  import * as i104 from "./components/paneldynamic-actions/paneldynamic-remove-btn.component";
106
106
  import * as i105 from "./components/notifier/notifier.component";
107
107
  import * as i106 from "./components-container.component";
108
- import * as i107 from "@angular/common";
109
- import * as i108 from "@angular/forms";
108
+ import * as i107 from "./questions/multipletextrow.component";
109
+ import * as i108 from "@angular/common";
110
+ import * as i109 from "@angular/forms";
110
111
  export declare class SurveyModule {
111
112
  static ɵfac: i0.ɵɵFactoryDeclaration<SurveyModule, never>;
112
- static ɵmod: i0.ɵɵNgModuleDeclaration<SurveyModule, [typeof i1.VisibleDirective, typeof i2.Key2ClickDirective, typeof i3.PanelDynamicAddBtn, typeof i4.PanelDynamicNextBtn, typeof i5.PanelDynamicPrevBtn, typeof i6.PanelDynamicProgressText, typeof i7.ElementComponent, typeof i8.TemplateRendererComponent, typeof i9.SurveyComponent, typeof i10.SurveyContentComponent, typeof i11.PopupSurveyComponent, typeof i12.PageComponent, typeof i13.PanelComponent, typeof i14.QuestionComponent, typeof i15.StringViewerComponent, typeof i16.SurveyStringComponent, typeof i17.StringEditorComponent, typeof i18.QuestionSkeletonComponent, typeof i19.TextQuestionComponent, typeof i20.RadiogroupComponent, typeof i21.RadiogroupItemComponent, typeof i22.CheckboxComponent, typeof i23.CheckboxItemComponent, typeof i24.DropdownComponent, typeof i25.DropdownQuestionComponent, typeof i26.DropdownSelectComponent, typeof i27.DropdownOptionItemComponent, typeof i28.PopupComponent, typeof i29.PopupBaseContainerComponent, typeof i30.PopupPointerComponent, typeof i31.CharacterCounterComponent, typeof i32.ListComponent, typeof i33.ListItemComponent, typeof i34.RatingItemComponent, typeof i35.RatingItemStarComponent, typeof i36.RatingItemSmileyComponent, typeof i37.TagboxFilterComponent, typeof i38.TagboxComponent, typeof i39.TagboxQuestionComponent, typeof i40.TagboxItemComponent, typeof i41.ActionBarComponent, typeof i42.ActionComponent, typeof i43.ActionBarItemComponent, typeof i44.ActionBarItemDropdownComponent, typeof i45.HtmlQuestionComponent, typeof i46.SelectBaseItemComponent, typeof i47.SelectBaseComponent, typeof i48.SurveyCommentComponent, typeof i49.SurveyCommentOtherComponent, typeof i50.ElementHeaderComponent, typeof i51.ElementTitleActionsComponent, typeof i52.ElementTitleComponent, typeof i53.DynamicHeadComponent, typeof i54.RowComponent, typeof i55.RatingQuestionComponent, typeof i56.RatingDropdownComponent, typeof i57.BooleanQuestionComponent, typeof i58.BooleanCheckboxComponent, typeof i59.BooleanRadioComponent, typeof i60.BooleanRadioItemComponent, typeof i61.ImagePickerItemComponent, typeof i62.ImagePickerQuestionComponent, typeof i63.ImageQuestionComponent, typeof i64.SurveyHeaderComponent, typeof i65.ProgressDefaultComponent, typeof i66.ProgressButtonsComponent, typeof i67.ProgressTocComponent, typeof i68.SurveyNavigationButton, typeof i69.MatrixQuestionComponent, typeof i70.SvgIconComponent, typeof i71.FileQuestionComponent, typeof i72.SafeUrlPipe, typeof i73.SafeHtmlPipe, typeof i74.CommentQuestionComponent, typeof i75.SignaturePadQuestionComponent, typeof i76.ErrorsComponent, typeof i77.MultipleTextComponent, typeof i78.MultipleTextItemComponent, typeof i79.DynamicComponentDirective, typeof i80.RankingQuestionComponent, typeof i81.RankingItemComponent, typeof i82.PanelDynamicQuestionComponent, typeof i83.EmbeddedViewContentComponent, typeof i84.CustomWidgetComponent, typeof i85.MatrixCellComponent, typeof i86.MatrixTableComponent, typeof i87.MatrixDropdownComponent, typeof i88.MatrixDynamicComponent, typeof i89.MatrixDetailButtonComponent, typeof i90.MatrixDynamicRemoveButtonComponent, typeof i91.MatrixDynamicDragDropIconComponent, typeof i92.MatrixRequiredHeader, typeof i93.ExpressionComponent, typeof i72.SafeResourceUrlPipe, typeof i94.BrandInfoComponent, typeof i95.CustomQuestionComponent, typeof i96.CompositeQuestionComponent, typeof i97.ButtonGroupItemComponent, typeof i98.ButtonGroupQuestionComponent, typeof i99.MatrixRowComponent, typeof i100.ModalComponent, typeof i101.LogoImageComponent, typeof i102.SkeletonComponent, typeof i103.TimerPanelComponent, typeof i104.PaneldynamicRemoveButtonComponent, typeof i105.NotifierComponent, typeof i106.ComponentsContainerComponent], [typeof i107.CommonModule, typeof i108.FormsModule], [typeof i1.VisibleDirective, typeof i2.Key2ClickDirective, typeof i3.PanelDynamicAddBtn, typeof i4.PanelDynamicNextBtn, typeof i5.PanelDynamicPrevBtn, typeof i6.PanelDynamicProgressText, typeof i7.ElementComponent, typeof i8.TemplateRendererComponent, typeof i9.SurveyComponent, typeof i10.SurveyContentComponent, typeof i11.PopupSurveyComponent, typeof i12.PageComponent, typeof i13.PanelComponent, typeof i14.QuestionComponent, typeof i15.StringViewerComponent, typeof i16.SurveyStringComponent, typeof i17.StringEditorComponent, typeof i18.QuestionSkeletonComponent, typeof i19.TextQuestionComponent, typeof i20.RadiogroupComponent, typeof i21.RadiogroupItemComponent, typeof i22.CheckboxComponent, typeof i23.CheckboxItemComponent, typeof i31.CharacterCounterComponent, typeof i24.DropdownComponent, typeof i25.DropdownQuestionComponent, typeof i26.DropdownSelectComponent, typeof i27.DropdownOptionItemComponent, typeof i28.PopupComponent, typeof i29.PopupBaseContainerComponent, typeof i30.PopupPointerComponent, typeof i31.CharacterCounterComponent, typeof i32.ListComponent, typeof i33.ListItemComponent, typeof i34.RatingItemComponent, typeof i35.RatingItemStarComponent, typeof i36.RatingItemSmileyComponent, typeof i37.TagboxFilterComponent, typeof i38.TagboxComponent, typeof i39.TagboxQuestionComponent, typeof i40.TagboxItemComponent, typeof i41.ActionBarComponent, typeof i42.ActionComponent, typeof i43.ActionBarItemComponent, typeof i44.ActionBarItemDropdownComponent, typeof i45.HtmlQuestionComponent, typeof i46.SelectBaseItemComponent, typeof i47.SelectBaseComponent, typeof i48.SurveyCommentComponent, typeof i49.SurveyCommentOtherComponent, typeof i50.ElementHeaderComponent, typeof i52.ElementTitleComponent, typeof i53.DynamicHeadComponent, typeof i54.RowComponent, typeof i55.RatingQuestionComponent, typeof i56.RatingDropdownComponent, typeof i57.BooleanQuestionComponent, typeof i58.BooleanCheckboxComponent, typeof i59.BooleanRadioComponent, typeof i60.BooleanRadioItemComponent, typeof i61.ImagePickerItemComponent, typeof i62.ImagePickerQuestionComponent, typeof i63.ImageQuestionComponent, typeof i64.SurveyHeaderComponent, typeof i65.ProgressDefaultComponent, typeof i66.ProgressButtonsComponent, typeof i68.SurveyNavigationButton, typeof i69.MatrixQuestionComponent, typeof i70.SvgIconComponent, typeof i71.FileQuestionComponent, typeof i72.SafeUrlPipe, typeof i73.SafeHtmlPipe, typeof i74.CommentQuestionComponent, typeof i75.SignaturePadQuestionComponent, typeof i76.ErrorsComponent, typeof i77.MultipleTextComponent, typeof i78.MultipleTextItemComponent, typeof i79.DynamicComponentDirective, typeof i80.RankingQuestionComponent, typeof i81.RankingItemComponent, typeof i82.PanelDynamicQuestionComponent, typeof i83.EmbeddedViewContentComponent, typeof i84.CustomWidgetComponent, typeof i85.MatrixCellComponent, typeof i86.MatrixTableComponent, typeof i87.MatrixDropdownComponent, typeof i88.MatrixDynamicComponent, typeof i89.MatrixDetailButtonComponent, typeof i90.MatrixDynamicRemoveButtonComponent, typeof i91.MatrixDynamicDragDropIconComponent, typeof i92.MatrixRequiredHeader, typeof i93.ExpressionComponent, typeof i72.SafeResourceUrlPipe, typeof i95.CustomQuestionComponent, typeof i96.CompositeQuestionComponent, typeof i98.ButtonGroupQuestionComponent, typeof i100.ModalComponent, typeof i101.LogoImageComponent, typeof i102.SkeletonComponent, typeof i103.TimerPanelComponent, typeof i104.PaneldynamicRemoveButtonComponent, typeof i105.NotifierComponent, typeof i106.ComponentsContainerComponent]>;
113
+ static ɵmod: i0.ɵɵNgModuleDeclaration<SurveyModule, [typeof i1.VisibleDirective, typeof i2.Key2ClickDirective, typeof i3.PanelDynamicAddBtn, typeof i4.PanelDynamicNextBtn, typeof i5.PanelDynamicPrevBtn, typeof i6.PanelDynamicProgressText, typeof i7.ElementComponent, typeof i8.TemplateRendererComponent, typeof i9.SurveyComponent, typeof i10.SurveyContentComponent, typeof i11.PopupSurveyComponent, typeof i12.PageComponent, typeof i13.PanelComponent, typeof i14.QuestionComponent, typeof i15.StringViewerComponent, typeof i16.SurveyStringComponent, typeof i17.StringEditorComponent, typeof i18.QuestionSkeletonComponent, typeof i19.TextQuestionComponent, typeof i20.RadiogroupComponent, typeof i21.RadiogroupItemComponent, typeof i22.CheckboxComponent, typeof i23.CheckboxItemComponent, typeof i24.DropdownComponent, typeof i25.DropdownQuestionComponent, typeof i26.DropdownSelectComponent, typeof i27.DropdownOptionItemComponent, typeof i28.PopupComponent, typeof i29.PopupBaseContainerComponent, typeof i30.PopupPointerComponent, typeof i31.CharacterCounterComponent, typeof i32.ListComponent, typeof i33.ListItemComponent, typeof i34.RatingItemComponent, typeof i35.RatingItemStarComponent, typeof i36.RatingItemSmileyComponent, typeof i37.TagboxFilterComponent, typeof i38.TagboxComponent, typeof i39.TagboxQuestionComponent, typeof i40.TagboxItemComponent, typeof i41.ActionBarComponent, typeof i42.ActionComponent, typeof i43.ActionBarItemComponent, typeof i44.ActionBarItemDropdownComponent, typeof i45.HtmlQuestionComponent, typeof i46.SelectBaseItemComponent, typeof i47.SelectBaseComponent, typeof i48.SurveyCommentComponent, typeof i49.SurveyCommentOtherComponent, typeof i50.ElementHeaderComponent, typeof i51.ElementTitleActionsComponent, typeof i52.ElementTitleComponent, typeof i53.DynamicHeadComponent, typeof i54.RowComponent, typeof i55.RatingQuestionComponent, typeof i56.RatingDropdownComponent, typeof i57.BooleanQuestionComponent, typeof i58.BooleanCheckboxComponent, typeof i59.BooleanRadioComponent, typeof i60.BooleanRadioItemComponent, typeof i61.ImagePickerItemComponent, typeof i62.ImagePickerQuestionComponent, typeof i63.ImageQuestionComponent, typeof i64.SurveyHeaderComponent, typeof i65.ProgressDefaultComponent, typeof i66.ProgressButtonsComponent, typeof i67.ProgressTocComponent, typeof i68.SurveyNavigationButton, typeof i69.MatrixQuestionComponent, typeof i70.SvgIconComponent, typeof i71.FileQuestionComponent, typeof i72.SafeUrlPipe, typeof i73.SafeHtmlPipe, typeof i74.CommentQuestionComponent, typeof i75.SignaturePadQuestionComponent, typeof i76.ErrorsComponent, typeof i77.MultipleTextComponent, typeof i78.MultipleTextItemComponent, typeof i79.DynamicComponentDirective, typeof i80.RankingQuestionComponent, typeof i81.RankingItemComponent, typeof i82.PanelDynamicQuestionComponent, typeof i83.EmbeddedViewContentComponent, typeof i84.CustomWidgetComponent, typeof i85.MatrixCellComponent, typeof i86.MatrixTableComponent, typeof i87.MatrixDropdownComponent, typeof i88.MatrixDynamicComponent, typeof i89.MatrixDetailButtonComponent, typeof i90.MatrixDynamicRemoveButtonComponent, typeof i91.MatrixDynamicDragDropIconComponent, typeof i92.MatrixRequiredHeader, typeof i93.ExpressionComponent, typeof i72.SafeResourceUrlPipe, typeof i94.BrandInfoComponent, typeof i95.CustomQuestionComponent, typeof i96.CompositeQuestionComponent, typeof i97.ButtonGroupItemComponent, typeof i98.ButtonGroupQuestionComponent, typeof i99.MatrixRowComponent, typeof i100.ModalComponent, typeof i101.LogoImageComponent, typeof i102.SkeletonComponent, typeof i103.TimerPanelComponent, typeof i104.PaneldynamicRemoveButtonComponent, typeof i105.NotifierComponent, typeof i106.ComponentsContainerComponent, typeof i107.MultipleTextRowComponent], [typeof i108.CommonModule, typeof i109.FormsModule], [typeof i1.VisibleDirective, typeof i2.Key2ClickDirective, typeof i3.PanelDynamicAddBtn, typeof i4.PanelDynamicNextBtn, typeof i5.PanelDynamicPrevBtn, typeof i6.PanelDynamicProgressText, typeof i7.ElementComponent, typeof i8.TemplateRendererComponent, typeof i9.SurveyComponent, typeof i10.SurveyContentComponent, typeof i11.PopupSurveyComponent, typeof i12.PageComponent, typeof i13.PanelComponent, typeof i14.QuestionComponent, typeof i15.StringViewerComponent, typeof i16.SurveyStringComponent, typeof i17.StringEditorComponent, typeof i18.QuestionSkeletonComponent, typeof i19.TextQuestionComponent, typeof i20.RadiogroupComponent, typeof i21.RadiogroupItemComponent, typeof i22.CheckboxComponent, typeof i23.CheckboxItemComponent, typeof i31.CharacterCounterComponent, typeof i24.DropdownComponent, typeof i25.DropdownQuestionComponent, typeof i26.DropdownSelectComponent, typeof i27.DropdownOptionItemComponent, typeof i28.PopupComponent, typeof i29.PopupBaseContainerComponent, typeof i30.PopupPointerComponent, typeof i31.CharacterCounterComponent, typeof i32.ListComponent, typeof i33.ListItemComponent, typeof i34.RatingItemComponent, typeof i35.RatingItemStarComponent, typeof i36.RatingItemSmileyComponent, typeof i37.TagboxFilterComponent, typeof i38.TagboxComponent, typeof i39.TagboxQuestionComponent, typeof i40.TagboxItemComponent, typeof i41.ActionBarComponent, typeof i42.ActionComponent, typeof i43.ActionBarItemComponent, typeof i44.ActionBarItemDropdownComponent, typeof i45.HtmlQuestionComponent, typeof i46.SelectBaseItemComponent, typeof i47.SelectBaseComponent, typeof i48.SurveyCommentComponent, typeof i49.SurveyCommentOtherComponent, typeof i50.ElementHeaderComponent, typeof i52.ElementTitleComponent, typeof i53.DynamicHeadComponent, typeof i54.RowComponent, typeof i55.RatingQuestionComponent, typeof i56.RatingDropdownComponent, typeof i57.BooleanQuestionComponent, typeof i58.BooleanCheckboxComponent, typeof i59.BooleanRadioComponent, typeof i60.BooleanRadioItemComponent, typeof i61.ImagePickerItemComponent, typeof i62.ImagePickerQuestionComponent, typeof i63.ImageQuestionComponent, typeof i64.SurveyHeaderComponent, typeof i65.ProgressDefaultComponent, typeof i66.ProgressButtonsComponent, typeof i68.SurveyNavigationButton, typeof i69.MatrixQuestionComponent, typeof i70.SvgIconComponent, typeof i71.FileQuestionComponent, typeof i72.SafeUrlPipe, typeof i73.SafeHtmlPipe, typeof i74.CommentQuestionComponent, typeof i75.SignaturePadQuestionComponent, typeof i76.ErrorsComponent, typeof i77.MultipleTextComponent, typeof i78.MultipleTextItemComponent, typeof i79.DynamicComponentDirective, typeof i80.RankingQuestionComponent, typeof i81.RankingItemComponent, typeof i82.PanelDynamicQuestionComponent, typeof i83.EmbeddedViewContentComponent, typeof i84.CustomWidgetComponent, typeof i85.MatrixCellComponent, typeof i86.MatrixTableComponent, typeof i87.MatrixDropdownComponent, typeof i88.MatrixDynamicComponent, typeof i89.MatrixDetailButtonComponent, typeof i90.MatrixDynamicRemoveButtonComponent, typeof i91.MatrixDynamicDragDropIconComponent, typeof i92.MatrixRequiredHeader, typeof i93.ExpressionComponent, typeof i72.SafeResourceUrlPipe, typeof i95.CustomQuestionComponent, typeof i96.CompositeQuestionComponent, typeof i98.ButtonGroupQuestionComponent, typeof i100.ModalComponent, typeof i101.LogoImageComponent, typeof i102.SkeletonComponent, typeof i103.TimerPanelComponent, typeof i104.PaneldynamicRemoveButtonComponent, typeof i105.NotifierComponent, typeof i106.ComponentsContainerComponent, typeof i107.MultipleTextRowComponent]>;
113
114
  static ɵinj: i0.ɵɵInjectorDeclaration<SurveyModule>;
114
115
  }
@@ -555,6 +555,7 @@
555
555
  BaseAngular.prototype.ngOnDestroy = function () {
556
556
  this.isDestroyed = true;
557
557
  this.unMakeBaseElementAngular(this.getModel());
558
+ this.previousModel = undefined;
558
559
  };
559
560
  BaseAngular.prototype.makeBaseElementAngular = function (stateElement) {
560
561
  var _this = this;
@@ -948,6 +949,9 @@
948
949
  };
949
950
  };
950
951
  ModalComponent.prototype.ngOnDestroy = function () {
952
+ var _a, _b;
953
+ (_a = this.portalHost) === null || _a === void 0 ? void 0 : _a.detach();
954
+ (_b = this.model) === null || _b === void 0 ? void 0 : _b.dispose();
951
955
  if (this.functionDefined) {
952
956
  Survey.settings.showModal = undefined;
953
957
  Survey.settings.showDialog = undefined;
@@ -1328,6 +1332,8 @@
1328
1332
  SurveyContentComponent.prototype.ngOnDestroy = function () {
1329
1333
  _super.prototype.ngOnDestroy.call(this);
1330
1334
  if (!!this.model) {
1335
+ this.model.rootElement = undefined;
1336
+ this.model.destroyResizeObserver();
1331
1337
  this.model.renderCallback = undefined;
1332
1338
  }
1333
1339
  };
@@ -1344,7 +1350,7 @@
1344
1350
  return SurveyContentComponent;
1345
1351
  }(BaseAngular));
1346
1352
  SurveyContentComponent.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0__namespace, type: SurveyContentComponent, deps: null, target: i0__namespace.ɵɵFactoryTarget.Component });
1347
- SurveyContentComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: SurveyContentComponent, selector: "survey-content", inputs: { model: "model" }, viewQueries: [{ propertyName: "rootEl", first: true, predicate: ["surveyContainer"], descendants: true }], usesInheritance: true, ngImport: i0__namespace, template: "<ng-template #template>\n <div #surveyContainer *ngIf=\"!!model\" [class]=\"model.getRootCss()\" [style]=\"model.themeVariables\">\n <div *ngIf=\"!!model.renderBackgroundImage\" [class]=\"model.css.rootBackgroundImage\" [style]=\"model.backgroundImageStyle\"></div>\n <form onsubmit=\"return false;\">\n <div class=\"sv_custom_header\" [hidden]=\"model.hasLogo\"></div>\n <div [class]=\"model.css.container\">\n <div *ngIf=\"model.renderedHasHeader\" [class]=\"model.css.header\" [survey]=\"model\" sv-ng-survey-header></div>\n <ng-template [component]=\"{ name: 'sv-components-container', data: { survey: model, container: 'header', needRenderWrapper: false } }\"></ng-template>\n <div *ngIf=\"model.isShowingPage\" [class]=\"model.bodyContainerCss\">\n <ng-template [component]=\"{ name: 'sv-components-container', data: { survey: model, container: 'left' } }\"></ng-template>\n <div [class]=\"model.bodyCss\" [style.maxWidth]=\"model.renderedWidth\" [id]=\"model.activePage ? model.activePage.id : ''\">\n <ng-template [component]=\"{ name: 'sv-components-container', data: { survey: model, container: 'contentTop' } }\"></ng-template>\n <!-- ko if: activePage -->\n <ng-container *ngIf=\"model.activePage\">\n <sv-ng-page [model]=\"model.activePage\" [survey]=\"model\"></sv-ng-page>\n </ng-container>\n <!-- ko if: activePage.rows.length == 0 && $data.emptyPageTemplate -->\n <!-- ko template: { name: emptyPageTemplate, data: $data.emptyPageTemplateData || $data } -->\n <!-- /ko -->\n <!-- /ko -->\n <!-- /ko -->\n <ng-template [component]=\"{ name: 'sv-components-container', data: { survey: model, container: 'contentBottom' } }\"></ng-template>\n </div>\n <ng-template [component]=\"{ name: 'sv-components-container', data: { survey: model, container: 'right' } }\"></ng-template>\n </div>\n <ng-template [component]=\"{ name: 'sv-components-container', data: { survey: model, container: 'footer', needRenderWrapper: false } }\"></ng-template>\n <div *ngIf=\"model.state === 'completed' && model.showCompletedPage\" [class]=\"model.completedCss\"\n [innerHtml]=\"model.processedCompletedHtml\"></div>\n <div *ngIf=\"model.state === 'completedbefore'\" [class]=\"model.css.body\"\n [innerHtml]=\"model.processedCompletedBeforeHtml\"></div>\n <div *ngIf=\"model.state === 'loading'\" [class]=\"model.css.body\" [innerHtml]=\"model.processedLoadingHtml\"></div>\n <div *ngIf=\"model.state === 'empty'\" [class]=\"model.css.bodyEmpty\">{{model.emptySurveyText}}</div>\n </div>\n </form>\n <sv-brand-info *ngIf=\"model.showBrandInfo\"></sv-brand-info>\n <sv-notifier [notifier]=\"model.notifier\"></sv-notifier>\n </div>\n</ng-template>", components: [{ type: SurveyHeaderComponent, selector: "'[sv-ng-survey-header]'", inputs: ["survey"] }, { type: PageComponent, selector: "page, sv-ng-page", inputs: ["model", "survey"] }, { type: BrandInfoComponent, selector: "sv-brand-info" }, { type: NotifierComponent, selector: "sv-notifier", inputs: ["notifier"] }], directives: [{ type: i2__namespace.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i2__namespace$1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { type: i2__namespace$1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { type: i2__namespace$1.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { type: DynamicComponentDirective, selector: "[component]", inputs: ["component"] }] });
1353
+ SurveyContentComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: SurveyContentComponent, selector: "survey-content", inputs: { model: "model" }, viewQueries: [{ propertyName: "rootEl", first: true, predicate: ["surveyContainer"], descendants: true }], usesInheritance: true, ngImport: i0__namespace, template: "<ng-template #template>\n <div #surveyContainer *ngIf=\"!!model\" [class]=\"model.getRootCss()\" [style]=\"model.themeVariables\">\n <div *ngIf=\"!!model.renderBackgroundImage\" [class]=\"model.css.rootBackgroundImage\" [style]=\"model.backgroundImageStyle\"></div>\n <form onsubmit=\"return false;\">\n <div class=\"sv_custom_header\" [hidden]=\"model.hasLogo\"></div>\n <div [class]=\"model.css.container\">\n <div *ngIf=\"model.renderedHasHeader\" [class]=\"model.css.header\" [survey]=\"model\" sv-ng-survey-header></div>\n <ng-template [component]=\"{ name: 'sv-components-container', data: { survey: model, container: 'header', needRenderWrapper: false } }\"></ng-template>\n <div *ngIf=\"model.isShowingPage\" [class]=\"model.bodyContainerCss\">\n <ng-template [component]=\"{ name: 'sv-components-container', data: { survey: model, container: 'left' } }\"></ng-template>\n <div [class]=\"model.bodyCss\" [style.maxWidth]=\"model.renderedWidth\" [id]=\"model.activePage ? model.activePage.id : ''\">\n <ng-template [component]=\"{ name: 'sv-components-container', data: { survey: model, container: 'contentTop' } }\"></ng-template>\n <!-- ko if: activePage -->\n <ng-container *ngIf=\"model.activePage\">\n <sv-ng-page [model]=\"model.activePage\" [survey]=\"model\"></sv-ng-page>\n </ng-container>\n <!-- ko if: activePage.rows.length == 0 && $data.emptyPageTemplate -->\n <!-- ko template: { name: emptyPageTemplate, data: $data.emptyPageTemplateData || $data } -->\n <!-- /ko -->\n <!-- /ko -->\n <!-- /ko -->\n <ng-template [component]=\"{ name: 'sv-components-container', data: { survey: model, container: 'contentBottom' } }\"></ng-template>\n </div>\n <ng-template [component]=\"{ name: 'sv-components-container', data: { survey: model, container: 'right' } }\"></ng-template>\n </div>\n <ng-template [component]=\"{ name: 'sv-components-container', data: { survey: model, container: 'footer', needRenderWrapper: false } }\"></ng-template>\n <div *ngIf=\"model.state === 'completed' && model.showCompletedPage\" [class]=\"model.completedCss\"\n [innerHtml]=\"model.processedCompletedHtml\"></div>\n <div *ngIf=\"model.state === 'completedbefore'\" [class]=\"model.completedBeforeCss\"\n [innerHtml]=\"model.processedCompletedBeforeHtml\"></div>\n <div *ngIf=\"model.state === 'loading'\" [class]=\"model.loadingBodyCss\" [innerHtml]=\"model.processedLoadingHtml\"></div>\n <div *ngIf=\"model.state === 'empty'\" [class]=\"model.css.bodyEmpty\">{{model.emptySurveyText}}</div>\n </div>\n </form>\n <sv-brand-info *ngIf=\"model.showBrandInfo\"></sv-brand-info>\n <sv-notifier [notifier]=\"model.notifier\"></sv-notifier>\n </div>\n</ng-template>", components: [{ type: SurveyHeaderComponent, selector: "'[sv-ng-survey-header]'", inputs: ["survey"] }, { type: PageComponent, selector: "page, sv-ng-page", inputs: ["model", "survey"] }, { type: BrandInfoComponent, selector: "sv-brand-info" }, { type: NotifierComponent, selector: "sv-notifier", inputs: ["notifier"] }], directives: [{ type: i2__namespace.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i2__namespace$1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { type: i2__namespace$1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { type: i2__namespace$1.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { type: DynamicComponentDirective, selector: "[component]", inputs: ["component"] }] });
1348
1354
  i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0__namespace, type: SurveyContentComponent, decorators: [{
1349
1355
  type: i0.Component,
1350
1356
  args: [{
@@ -1497,6 +1503,10 @@
1497
1503
  this.popup.isShowing = true;
1498
1504
  this.changeDetectorRef.detectChanges();
1499
1505
  };
1506
+ PopupSurveyComponent.prototype.ngOnDestroy = function () {
1507
+ _super.prototype.ngOnDestroy.call(this);
1508
+ this.popup.dispose();
1509
+ };
1500
1510
  return PopupSurveyComponent;
1501
1511
  }(BaseAngular));
1502
1512
  PopupSurveyComponent.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0__namespace, type: PopupSurveyComponent, deps: [{ token: i0__namespace.ChangeDetectorRef }], target: i0__namespace.ɵɵFactoryTarget.Component });
@@ -1564,19 +1574,8 @@
1564
1574
  }
1565
1575
 
1566
1576
  var ErrorsComponent = /** @class */ (function () {
1567
- function ErrorsComponent(viewContainerRef) {
1568
- this.viewContainerRef = viewContainerRef;
1577
+ function ErrorsComponent() {
1569
1578
  }
1570
- ErrorsComponent.prototype.ngOnInit = function () {
1571
- if (this.location == "tooltip") {
1572
- this.tooltipManager = new Survey.TooltipManager(this.viewContainerRef.element.nativeElement);
1573
- }
1574
- };
1575
- ErrorsComponent.prototype.ngOnDestroy = function () {
1576
- if (!!this.tooltipManager) {
1577
- this.tooltipManager.dispose();
1578
- }
1579
- };
1580
1579
  Object.defineProperty(ErrorsComponent.prototype, "role", {
1581
1580
  get: function () {
1582
1581
  return "alert";
@@ -1607,21 +1606,18 @@
1607
1606
  });
1608
1607
  return ErrorsComponent;
1609
1608
  }());
1610
- ErrorsComponent.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0__namespace, type: ErrorsComponent, deps: [{ token: i0__namespace.ViewContainerRef }], target: i0__namespace.ɵɵFactoryTarget.Component });
1611
- ErrorsComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: ErrorsComponent, selector: "'[sv-ng-errors]'", inputs: { element: "element", location: "location" }, host: { properties: { "attr.role": "this.role", "id": "this.id", "attr.aria-live": "this.ariaLive", "class": "this.class" } }, viewQueries: [{ propertyName: "errorsContainerRef", first: true, predicate: ["errorsContainer"], descendants: true, static: true }], ngImport: i0__namespace, template: "<div *ngFor=\"let error of element.errors;\">\n <span\n [class]=\"element.cssClasses ? element.cssClasses.error.icon : 'panel-error-icon'\"\n aria-hidden=\"true\"\n ></span>\n <span [class]=\"element.cssClasses ? element.cssClasses.error.item : 'panel-error-item'\" [model]=\"error.locText\" sv-ng-string>\n </span>\n</div>", components: [{ type: SurveyStringComponent, selector: "sv-ng-string, '[sv-ng-string]'", inputs: ["model"] }], directives: [{ type: i2__namespace.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }] });
1609
+ ErrorsComponent.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0__namespace, type: ErrorsComponent, deps: [], target: i0__namespace.ɵɵFactoryTarget.Component });
1610
+ ErrorsComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: ErrorsComponent, selector: "'[sv-ng-errors]'", inputs: { element: "element", location: "location" }, host: { properties: { "attr.role": "this.role", "id": "this.id", "attr.aria-live": "this.ariaLive", "class": "this.class" } }, ngImport: i0__namespace, template: "<div *ngFor=\"let error of element.errors;\">\n <span\n [class]=\"element.cssClasses ? element.cssClasses.error.icon : 'panel-error-icon'\"\n aria-hidden=\"true\"\n ></span>\n <span [class]=\"element.cssClasses ? element.cssClasses.error.item : 'panel-error-item'\" [model]=\"error.locText\" sv-ng-string>\n </span>\n</div>", components: [{ type: SurveyStringComponent, selector: "sv-ng-string, '[sv-ng-string]'", inputs: ["model"] }], directives: [{ type: i2__namespace.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }] });
1612
1611
  i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0__namespace, type: ErrorsComponent, decorators: [{
1613
1612
  type: i0.Component,
1614
1613
  args: [{
1615
1614
  templateUrl: "./errors.component.html",
1616
1615
  selector: "'[sv-ng-errors]'"
1617
1616
  }]
1618
- }], ctorParameters: function () { return [{ type: i0__namespace.ViewContainerRef }]; }, propDecorators: { element: [{
1617
+ }], ctorParameters: function () { return []; }, propDecorators: { element: [{
1619
1618
  type: i0.Input
1620
1619
  }], location: [{
1621
1620
  type: i0.Input
1622
- }], errorsContainerRef: [{
1623
- type: i0.ViewChild,
1624
- args: ["errorsContainer", { static: true }]
1625
1621
  }], role: [{
1626
1622
  type: i0.HostBinding,
1627
1623
  args: ["attr.role"]
@@ -1686,7 +1682,7 @@
1686
1682
  return SurveyCommentComponent;
1687
1683
  }());
1688
1684
  SurveyCommentComponent.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0__namespace, type: SurveyCommentComponent, deps: [], target: i0__namespace.ɵɵFactoryTarget.Component });
1689
- SurveyCommentComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: SurveyCommentComponent, selector: "sv-ng-comment, '[sv-ng-comment]'", inputs: { question: "question" }, ngImport: i0__namespace, template: "<textarea *ngIf=\"!question.isReadOnlyRenderDiv()\" [id]=\"question.commentId\" [attr.maxlength]=\"question.getOthersMaxLength()\" [attr.aria-required]=\"question.ariaRequired\" [attr.aria-label]=\"question.ariaLabel\" [attr.placeholder]=\"question.commentPlaceholder\" \n [value]=\"comment\"\n [style.resize]=\"question.resizeStyle\"\n [disabled]=\"question.isInputReadOnly\"\n (change)=\"question.onCommentChange($event)\"\n (input)=\"question.onCommentInput($event)\"\n [class]=\"question.cssClasses.other\">\n</textarea>\n<div *ngIf=\"question.isReadOnlyRenderDiv()\">{{ question.comment }}</div>\n", directives: [{ type: i2__namespace.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
1685
+ SurveyCommentComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: SurveyCommentComponent, selector: "sv-ng-comment, '[sv-ng-comment]'", inputs: { question: "question" }, ngImport: i0__namespace, template: "<textarea *ngIf=\"!question.isReadOnlyRenderDiv()\" [id]=\"question.commentId\" [attr.maxlength]=\"question.getOthersMaxLength()\" [attr.aria-required]=\"question.ariaRequired\" [attr.aria-label]=\"question.ariaLabel\" [attr.placeholder]=\"question.renderedCommentPlaceholder\" \n [value]=\"comment\"\n [style.resize]=\"question.resizeStyle\"\n [disabled]=\"question.isInputReadOnly\"\n (change)=\"question.onCommentChange($event)\"\n (input)=\"question.onCommentInput($event)\"\n [class]=\"question.cssClasses.other\">\n</textarea>\n<div *ngIf=\"question.isReadOnlyRenderDiv()\">{{ question.comment }}</div>\n", directives: [{ type: i2__namespace.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
1690
1686
  i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0__namespace, type: SurveyCommentComponent, decorators: [{
1691
1687
  type: i0.Component,
1692
1688
  args: [{
@@ -1732,7 +1728,7 @@
1732
1728
  return QuestionComponent;
1733
1729
  }(EmbeddedViewContentComponent));
1734
1730
  QuestionComponent.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0__namespace, type: QuestionComponent, deps: null, target: i0__namespace.ɵɵFactoryTarget.Component });
1735
- QuestionComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: QuestionComponent, selector: "sv-ng-question", inputs: { model: "model" }, viewQueries: [{ propertyName: "rootEl", first: true, predicate: ["elementContainer"], descendants: true }], usesInheritance: true, ngImport: i0__namespace, template: "<ng-template #template>\n <div *ngIf=\"!!model\" #elementContainer [class]=\"model.getRootCss()\" [style]=\"model.getRootStyle()\" [id]=\"model.id\" [attr.data-name]=\"model.name\" [attr.role]=\"model.ariaRole\" [attr.aria-required]=\"model.ariaRequired\" [attr.aria-invalid]=\"model.ariaInvalid\" [attr.aria-labelledby]=\"model.ariaLabelledBy\" [attr.aria-expanded]=\"model.ariaExpanded\">\n <div *ngIf=\"model.showErrorsAboveQuestion && model.hasVisibleErrors\" [element]=\"model\" sv-ng-errors></div>\n <div [element]=\"model\" *ngIf=\"model.hasTitleOnLeftTop\" sv-ng-element-header></div>\n <div [class]=\"model.cssContent\" role=\"presentation\" [visible]=\"!model.isCollapsed\">\n <div *ngIf=\"model.showErrorOnTop && model.hasVisibleErrors\" [element]=\"model\" sv-ng-errors></div>\n <ng-template [component]=\"{ name: getQuestionContentWrapperComponentName(), data: getQuestionContentWrapperComponentData(), default: 'skeleton-question' }\">\n </ng-template>\n <div *ngIf=\"model.hasComment\" [class]=\"model.getCommentAreaCss(false)\">\n <div [model]=\"model.locCommentText\" sv-ng-string></div>\n <sv-ng-comment [question]=\"model\"></sv-ng-comment>\n </div>\n <div *ngIf=\"model.showErrorOnBottom && model.hasVisibleErrors\" [element]=\"model\" sv-ng-errors></div>\n <div *ngIf=\"model.isErrorsModeTooltip && model.hasVisibleErrors\" [element]=\"model\" [location]=\"'tooltip'\" sv-ng-errors></div>\n <div *ngIf=\"model.hasDescriptionUnderInput\" [class]=\"model.cssDescription\" [model]=\"model.locDescription\" sv-ng-string></div>\n </div>\n <div [element]=\"model\" *ngIf=\"model.hasTitleOnBottom\" sv-ng-element-header></div>\n <div *ngIf=\"model.showErrorsBelowQuestion && model.hasVisibleErrors\" [element]=\"model\" sv-ng-errors></div>\n </div>\n</ng-template>", components: [{ type: ErrorsComponent, selector: "'[sv-ng-errors]'", inputs: ["element", "location"] }, { type: ElementHeaderComponent, selector: "'[sv-ng-element-header]'", inputs: ["element"] }, { type: SurveyStringComponent, selector: "sv-ng-string, '[sv-ng-string]'", inputs: ["model"] }, { type: SurveyCommentComponent, selector: "sv-ng-comment, '[sv-ng-comment]'", inputs: ["question"] }], directives: [{ type: i2__namespace.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: VisibleDirective, selector: "[visible]", inputs: ["visible"] }, { type: DynamicComponentDirective, selector: "[component]", inputs: ["component"] }] });
1731
+ QuestionComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: QuestionComponent, selector: "sv-ng-question", inputs: { model: "model" }, viewQueries: [{ propertyName: "rootEl", first: true, predicate: ["elementContainer"], descendants: true }], usesInheritance: true, ngImport: i0__namespace, template: "<ng-template #template>\n <div *ngIf=\"!!model\" #elementContainer [class]=\"model.getRootCss()\" [style]=\"model.getRootStyle()\" [id]=\"model.id\" [attr.data-name]=\"model.name\" [attr.role]=\"model.ariaRole\" [attr.aria-required]=\"model.ariaRequired\" [attr.aria-invalid]=\"model.ariaInvalid\" [attr.aria-labelledby]=\"model.ariaLabelledBy\" [attr.aria-expanded]=\"model.ariaExpanded\">\n <div *ngIf=\"model.showErrorsAboveQuestion && model.hasVisibleErrors\" [element]=\"model\" sv-ng-errors></div>\n <div [element]=\"model\" *ngIf=\"model.hasTitleOnLeftTop\" sv-ng-element-header></div>\n <div [class]=\"model.cssContent\" role=\"presentation\" [visible]=\"!model.isCollapsed\">\n <div *ngIf=\"model.showErrorOnTop && model.hasVisibleErrors\" [element]=\"model\" sv-ng-errors></div>\n <ng-template [component]=\"{ name: getQuestionContentWrapperComponentName(), data: getQuestionContentWrapperComponentData(), default: 'skeleton-question' }\">\n </ng-template>\n <div *ngIf=\"model.hasComment\" [class]=\"model.getCommentAreaCss(false)\">\n <div [model]=\"model.locCommentText\" sv-ng-string></div>\n <sv-ng-comment [question]=\"model\"></sv-ng-comment>\n </div>\n <div *ngIf=\"model.showErrorOnBottom && model.hasVisibleErrors\" [element]=\"model\" sv-ng-errors></div>\n <div *ngIf=\"model.hasDescriptionUnderInput\" [class]=\"model.cssDescription\" [model]=\"model.locDescription\" sv-ng-string></div>\n </div>\n <div [element]=\"model\" *ngIf=\"model.hasTitleOnBottom\" sv-ng-element-header></div>\n <div *ngIf=\"model.showErrorsBelowQuestion && model.hasVisibleErrors\" [element]=\"model\" sv-ng-errors></div>\n </div>\n</ng-template>", components: [{ type: ErrorsComponent, selector: "'[sv-ng-errors]'", inputs: ["element", "location"] }, { type: ElementHeaderComponent, selector: "'[sv-ng-element-header]'", inputs: ["element"] }, { type: SurveyStringComponent, selector: "sv-ng-string, '[sv-ng-string]'", inputs: ["model"] }, { type: SurveyCommentComponent, selector: "sv-ng-comment, '[sv-ng-comment]'", inputs: ["question"] }], directives: [{ type: i2__namespace.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: VisibleDirective, selector: "[visible]", inputs: ["visible"] }, { type: DynamicComponentDirective, selector: "[component]", inputs: ["component"] }] });
1736
1732
  i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0__namespace, type: QuestionComponent, decorators: [{
1737
1733
  type: i0.Component,
1738
1734
  args: [{
@@ -1841,6 +1837,10 @@
1841
1837
  };
1842
1838
  PopupComponent.prototype.onModelChanged = function () {
1843
1839
  var _a;
1840
+ if (this.model) {
1841
+ this.model.resetComponentElement();
1842
+ this.model.dispose();
1843
+ }
1844
1844
  this.model = Survey.createPopupViewModel(this.popupModel, (_a = this.viewContainerRef) === null || _a === void 0 ? void 0 : _a.element.nativeElement);
1845
1845
  };
1846
1846
  PopupComponent.prototype.ngAfterViewInit = function () {
@@ -1853,6 +1853,11 @@
1853
1853
  PopupComponent.prototype.ngOnInit = function () {
1854
1854
  this.onModelChanged();
1855
1855
  };
1856
+ PopupComponent.prototype.ngOnDestroy = function () {
1857
+ this.model.resetComponentElement();
1858
+ this.model.dispose();
1859
+ _super.prototype.ngOnDestroy.call(this);
1860
+ };
1856
1861
  return PopupComponent;
1857
1862
  }(BaseAngular));
1858
1863
  PopupComponent.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0__namespace, type: PopupComponent, deps: [{ token: i0__namespace.ViewContainerRef }, { token: i0__namespace.ChangeDetectorRef }], target: i0__namespace.ɵɵFactoryTarget.Component });
@@ -2696,7 +2701,7 @@
2696
2701
  return ComponentsContainerComponent;
2697
2702
  }(EmbeddedViewContentComponent));
2698
2703
  ComponentsContainerComponent.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0__namespace, type: ComponentsContainerComponent, deps: null, target: i0__namespace.ɵɵFactoryTarget.Component });
2699
- ComponentsContainerComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: ComponentsContainerComponent, selector: "sv-components-container, [sv-components-container], sv-ng-components-container", inputs: { survey: "survey", container: "container", needRenderWrapper: "needRenderWrapper" }, usesInheritance: true, ngImport: i0__namespace, template: "<ng-template #template>\n <ng-container *ngIf=\"isNeedRenderWrapper\">\n <div *ngIf=\"components.length > 0\" class=\"sv-components-column\">\n <ng-container *ngFor=\"let component of components\">\n <ng-template [component]=\"{ name: component.component, data: { survey: survey, model: component.data } }\"></ng-template>\n </ng-container>\n </div>\n </ng-container>\n <ng-container *ngIf=\"!isNeedRenderWrapper && components.length > 0\">\n <ng-container *ngFor=\"let component of components\">\n <ng-template [component]=\"{ name: component.component, data: { survey: survey, model: component.data } }\"></ng-template>\n </ng-container>\n </ng-container>\n</ng-template>", styles: [":host{display:none}\n"], directives: [{ type: i2__namespace.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i2__namespace.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: DynamicComponentDirective, selector: "[component]", inputs: ["component"] }] });
2704
+ ComponentsContainerComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: ComponentsContainerComponent, selector: "sv-components-container, [sv-components-container], sv-ng-components-container", inputs: { survey: "survey", container: "container", needRenderWrapper: "needRenderWrapper" }, usesInheritance: true, ngImport: i0__namespace, template: "<ng-template #template>\n <ng-container *ngIf=\"isNeedRenderWrapper\">\n <div *ngIf=\"components.length > 0\" class=\"sv-components-column\">\n <ng-container *ngFor=\"let component of components\">\n <ng-template [component]=\"{ name: component.component, data: { survey: survey, container: container, model: component.data } }\"></ng-template>\n </ng-container>\n </div>\n </ng-container>\n <ng-container *ngIf=\"!isNeedRenderWrapper && components.length > 0\">\n <ng-container *ngFor=\"let component of components\">\n <ng-template [component]=\"{ name: component.component, data: { survey: survey, container: container, model: component.data } }\"></ng-template>\n </ng-container>\n </ng-container>\n</ng-template>", styles: [":host{display:none}\n"], directives: [{ type: i2__namespace.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i2__namespace.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: DynamicComponentDirective, selector: "[component]", inputs: ["component"] }] });
2700
2705
  i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0__namespace, type: ComponentsContainerComponent, decorators: [{
2701
2706
  type: i0.Component,
2702
2707
  args: [{
@@ -3038,6 +3043,10 @@
3038
3043
  this.model.initListContainerHtmlElement(this.listContainerElement.nativeElement);
3039
3044
  }
3040
3045
  };
3046
+ ListComponent.prototype.ngOnDestroy = function () {
3047
+ this.model.initListContainerHtmlElement(undefined);
3048
+ _super.prototype.ngOnDestroy.call(this);
3049
+ };
3041
3050
  return ListComponent;
3042
3051
  }(BaseAngular));
3043
3052
  ListComponent.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0__namespace, type: ListComponent, deps: null, target: i0__namespace.ɵɵFactoryTarget.Component });
@@ -3251,14 +3260,16 @@
3251
3260
  return ProgressDefaultComponent;
3252
3261
  }(EmbeddedViewContentComponent));
3253
3262
  ProgressDefaultComponent.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0__namespace, type: ProgressDefaultComponent, deps: null, target: i0__namespace.ɵɵFactoryTarget.Component });
3254
- ProgressDefaultComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: ProgressDefaultComponent, selector: "sv-ng-progress-default", inputs: { model: "model" }, usesInheritance: true, ngImport: i0__namespace, template: "<ng-template #template>\n <div [class]=\"model.getProgressCssClasses()\">\n <div [class]=\"model.css.progressBar\" [style.width]=\"model.progressValue + '%'\"\n role=\"progressbar\" aria-valuemin=\"0\" aria-valuemax=\"100\">\n <span [class]=\"getProgressTextInBarCss(model.css)\">\n {{ model.progressText }}\n </span>\n </div>\n <span [class]=\"getProgressTextUnderBarCss(model.css)\"> {{ model.progressText }} </span>\n </div>\n</ng-template>" });
3263
+ ProgressDefaultComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: ProgressDefaultComponent, selector: "sv-ng-progress-default", inputs: { container: "container", model: "model" }, usesInheritance: true, ngImport: i0__namespace, template: "<ng-template #template>\n <div [class]=\"model.getProgressCssClasses(container)\">\n <div [class]=\"model.css.progressBar\" [style.width]=\"model.progressValue + '%'\"\n role=\"progressbar\" aria-valuemin=\"0\" aria-valuemax=\"100\">\n <span [class]=\"getProgressTextInBarCss(model.css)\">\n {{ model.progressText }}\n </span>\n </div>\n <span [class]=\"getProgressTextUnderBarCss(model.css)\"> {{ model.progressText }} </span>\n </div>\n</ng-template>" });
3255
3264
  i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0__namespace, type: ProgressDefaultComponent, decorators: [{
3256
3265
  type: i0.Component,
3257
3266
  args: [{
3258
3267
  selector: "sv-ng-progress-default",
3259
3268
  templateUrl: "./progress.component.html"
3260
3269
  }]
3261
- }], propDecorators: { model: [{
3270
+ }], propDecorators: { container: [{
3271
+ type: i0.Input
3272
+ }], model: [{
3262
3273
  type: i0.Input
3263
3274
  }] } });
3264
3275
  AngularComponentFactory.Instance.registerComponent("sv-progress-progress", ProgressDefaultComponent);
@@ -3477,7 +3488,7 @@
3477
3488
  return FileQuestionComponent;
3478
3489
  }(QuestionAngular));
3479
3490
  FileQuestionComponent.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0__namespace, type: FileQuestionComponent, deps: null, target: i0__namespace.ɵɵFactoryTarget.Component });
3480
- FileQuestionComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: FileQuestionComponent, selector: "sv-ng-file-question", usesInheritance: true, ngImport: i0__namespace, template: "<div [class]=\"model.fileRootCss\" #contentElement>\n <input\n [class]=\"model.cssClasses.fileInput\"\n *ngIf=\"!model.isReadOnly\"\n tabindex=\"-1\"\n type=\"file\"\n [attr.id]=\"model.inputId\"\n (change)=\"model.doChange($event)\"\n [attr.aria-required]=\"model.ariaRequired\"\n [attr.aria-label]=\"model.ariaLabel\"\n [attr.aria-invalid]=\"model.ariaInvalid\"\n [attr.aria-describedby]=\"model.ariaDescribedBy\"\n [attr.multiple]=\"model.multipleRendered\"\n [attr.title]=\"model.inputTitle\"\n [attr.accept]=\"model.acceptedTypes\"\n [attr.capture]=\"model.renderCapture\"\n />\n <input\n *ngIf=\"model.isReadOnly\"\n type=\"file\"\n disabled\n [class]=\"model.getReadOnlyFileCss()\"\n [attr.id]=\"model.inputId\"\n [attr.multiple]=\"model.multipleRendered\"\n [attr.placeholder]=\"model.title\"\n style=\"color: transparent\"\n />\n <div [class]=\"model.cssClasses.dragArea\"\n (dragenter)=\"model.onDragEnter($event)\"\n (drop)=\"model.onDrop($event)\"\n (dragover)=\"model.onDragOver($event)\"\n (dragleave)=\"model.onDragLeave($event)\"> \n <div\n [class]=\"model.getFileDecoratorCss()\"\n >\n <span [class]=\"model.cssClasses.dragAreaPlaceholder\">{{ model.dragAreaPlaceholder }}</span>\n <div [class]=\"model.cssClasses.wrapper\">\n <label\n *ngIf=\"!model.isReadOnly\"\n role=\"button\"\n tabindex=\"0\"\n [class]=\"model.getChooseFileCss()\"\n [attr.for]=\"model.inputId\"\n [attr.aria-label]=\"model.chooseButtonText\"\n [key2click]\n >\n <span>{{ model.chooseButtonText }}</span>\n <svg *ngIf=\"model.cssClasses.chooseFileIconId\" [title]=\"model.chooseButtonText\" [iconName]=\"model.cssClasses.chooseFileIconId\" [size]=\"'auto'\" sv-ng-svg-icon></svg>\n </label>\n <span\n [class]=\"model.cssClasses.noFileChosen\"\n *ngIf=\"model.isEmpty()\"\n >{{ model.noFileChosenCaption }}</span\n >\n </div>\n </div>\n <button\n type=\"button\"\n *ngIf=\"model.showRemoveButton\"\n [class]=\"model.cssClasses.removeButton\"\n (click)=\"model.doClean($event)\"\n >\n <span>{{ model.clearButtonCaption }}</span>\n <svg *ngIf=\"model.cssClasses.removeButtonIconId\" [iconName]=\"model.cssClasses.removeButtonIconId\" [size]=\"'auto'\" [title]=\"model.clearButtonCaption\" sv-ng-svg-icon></svg>\n </button>\n <div [class]=\"model.cssClasses.fileList || undefined\" *ngIf=\"!model.isEmpty()\">\n <span\n *ngFor=\"let val of model.previewValue; index as index; trackBy: trackFilesFn\"\n [visible]=\"val && model.isPreviewVisible(index)\"\n [class]=\"model.cssClasses.preview\"\n >\n <div *ngIf=\"val.name && model.cssClasses.fileSign\" [class]=\"model.cssClasses.fileSign\">\n <a\n (click)=\"model.doDownloadFile($event, val)\"\n [attr.href]=\"val.content | safeUrl\"\n [attr.title]=\"val.name\"\n [attr.download]=\"val.name\"\n [style.width]=\"model.imageWidth\"\n >{{ val.name }}</a\n >\n </div>\n <div [class]=\"model.cssClasses.imageWrapper\">\n <img\n *ngIf=\"model.canPreviewImage(val)\"\n [attr.src]=\"val.content | safeUrl\"\n [style.height]=\"model.imageHeight\"\n [style.width]=\"model.imageWidth\"\n alt=\"File preview\"\n />\n <svg *ngIf=\"model.defaultImage(val)\" \n [iconName]=\"model.cssClasses.defaultImageIconId\" [partCss]=\"model.cssClasses.defaultImage\" [size]=\"'auto'\" sv-ng-svg-icon></svg>\n <div *ngIf=\"val.name && !model.isReadOnly\" [class]=\"model.cssClasses.removeFileButton\" (click)=\"model.doRemoveFile(val)\">\n <span\n [class]=\"model.cssClasses.removeFile\"\n >{{ model.removeFileCaption }}</span\n >\n <svg *ngIf=\"model.cssClasses.removeFileSvgIconId\" [title]=\"model.removeFileCaption\" [partCss]=\"model.cssClasses.removeFileSvg\" [iconName]=\"model.cssClasses.removeFileSvgIconId\" [size]=\"'auto'\" sv-ng-svg-icon ></svg>\n </div>\n </div>\n <div *ngIf=\"val.name && model.cssClasses.fileSignBottom\" [class]=\"model.cssClasses.fileSignBottom\">\n <a\n (click)=\"model.doDownloadFile($event, val)\"\n [attr.href]=\"val.content | safeUrl\"\n [attr.title]=\"val.name\"\n [attr.download]=\"val.name\"\n [style.width]=\"model.imageWidth\"\n >{{ val.name }}</a\n >\n </div>\n </span>\n </div>\n <button\n type=\"button\"\n *ngIf=\"model.showRemoveButtonBottom\"\n [class]=\"model.showRemoveButtonBottom\"\n (click)=\"model.doClean($event)\"\n >\n <span>{{ model.clearButtonCaption }}</span>\n <svg *ngIf=\"model.cssClasses.removeButtonIconId\" [iconName]=\"model.cssClasses.removeButtonIconId\" [size]=\"'auto'\" [title]=\"model.clearButtonCaption\" sv-ng-svg-icon></svg>\n </button>\n <sv-action-bar *ngIf=\"model.mobileFileNavigatorVisible\" [model]=\"model.mobileFileNavigator\"></sv-action-bar>\n </div>\n</div>", components: [{ type: SvgIconComponent, selector: "'[sv-ng-svg-icon]'", inputs: ["size", "width", "height", "iconName", "partCss", "css", "title"] }, { type: ActionBarComponent, selector: "sv-action-bar, sv-ng-action-bar", inputs: ["model", "handleClick"] }], directives: [{ type: i2__namespace.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: Key2ClickDirective, selector: "[key2click]", inputs: ["key2click"] }, { type: i2__namespace.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: VisibleDirective, selector: "[visible]", inputs: ["visible"] }], pipes: { "safeUrl": SafeUrlPipe } });
3491
+ FileQuestionComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: FileQuestionComponent, selector: "sv-ng-file-question", usesInheritance: true, ngImport: i0__namespace, template: "<div [class]=\"model.fileRootCss\" #contentElement>\n <input\n [class]=\"model.cssClasses.fileInput\"\n *ngIf=\"!model.isReadOnly\"\n tabindex=\"-1\"\n type=\"file\"\n [attr.id]=\"model.inputId\"\n (change)=\"model.doChange($event)\"\n [attr.aria-required]=\"model.ariaRequired\"\n [attr.aria-label]=\"model.ariaLabel\"\n [attr.aria-invalid]=\"model.ariaInvalid\"\n [attr.aria-describedby]=\"model.ariaDescribedBy\"\n [attr.multiple]=\"model.multipleRendered\"\n [attr.title]=\"model.inputTitle\"\n [attr.accept]=\"model.acceptedTypes\"\n [attr.capture]=\"model.renderCapture\"\n />\n <input\n *ngIf=\"model.isReadOnly\"\n type=\"file\"\n disabled\n [class]=\"model.getReadOnlyFileCss()\"\n [attr.id]=\"model.inputId\"\n [attr.multiple]=\"model.multipleRendered\"\n [attr.placeholder]=\"model.title\"\n style=\"color: transparent\"\n />\n <div [class]=\"model.cssClasses.dragArea\"\n (dragenter)=\"model.onDragEnter($event)\"\n (drop)=\"model.onDrop($event)\"\n (dragover)=\"model.onDragOver($event)\"\n (dragleave)=\"model.onDragLeave($event)\"> \n <div\n [class]=\"model.getFileDecoratorCss()\"\n >\n <span [class]=\"model.cssClasses.dragAreaPlaceholder\">{{ model.renderedPlaceholder }}</span>\n <div [class]=\"model.cssClasses.wrapper\">\n <label\n *ngIf=\"!model.isReadOnly\"\n role=\"button\"\n tabindex=\"0\"\n [class]=\"model.getChooseFileCss()\"\n [attr.for]=\"model.inputId\"\n [attr.aria-label]=\"model.chooseButtonText\"\n [key2click]\n >\n <span>{{ model.chooseButtonText }}</span>\n <svg *ngIf=\"model.cssClasses.chooseFileIconId\" [title]=\"model.chooseButtonText\" [iconName]=\"model.cssClasses.chooseFileIconId\" [size]=\"'auto'\" sv-ng-svg-icon></svg>\n </label>\n <span\n [class]=\"model.cssClasses.noFileChosen\"\n *ngIf=\"model.isEmpty()\"\n >{{ model.noFileChosenCaption }}</span\n >\n </div>\n </div>\n <button\n type=\"button\"\n *ngIf=\"model.showRemoveButton\"\n [class]=\"model.cssClasses.removeButton\"\n (click)=\"model.doClean($event)\"\n >\n <span>{{ model.clearButtonCaption }}</span>\n <svg *ngIf=\"model.cssClasses.removeButtonIconId\" [iconName]=\"model.cssClasses.removeButtonIconId\" [size]=\"'auto'\" [title]=\"model.clearButtonCaption\" sv-ng-svg-icon></svg>\n </button>\n <div [class]=\"model.cssClasses.fileList || undefined\" *ngIf=\"!model.isEmpty()\">\n <span\n *ngFor=\"let val of model.previewValue; index as index; trackBy: trackFilesFn\"\n [visible]=\"val && model.isPreviewVisible(index)\"\n [class]=\"model.cssClasses.preview\"\n >\n <div *ngIf=\"val.name && model.cssClasses.fileSign\" [class]=\"model.cssClasses.fileSign\">\n <a\n (click)=\"model.doDownloadFile($event, val)\"\n [attr.href]=\"val.content | safeUrl\"\n [attr.title]=\"val.name\"\n [attr.download]=\"val.name\"\n [style.width]=\"model.imageWidth\"\n >{{ val.name }}</a\n >\n </div>\n <div [class]=\"model.cssClasses.imageWrapper\">\n <img\n *ngIf=\"model.canPreviewImage(val)\"\n [attr.src]=\"val.content | safeUrl\"\n [style.height]=\"model.imageHeight\"\n [style.width]=\"model.imageWidth\"\n alt=\"File preview\"\n />\n <svg *ngIf=\"model.defaultImage(val)\" \n [iconName]=\"model.cssClasses.defaultImageIconId\" [partCss]=\"model.cssClasses.defaultImage\" [size]=\"'auto'\" sv-ng-svg-icon></svg>\n <div *ngIf=\"val.name && !model.isReadOnly\" [class]=\"model.cssClasses.removeFileButton\" (click)=\"model.doRemoveFile(val)\">\n <span\n [class]=\"model.cssClasses.removeFile\"\n >{{ model.removeFileCaption }}</span\n >\n <svg *ngIf=\"model.cssClasses.removeFileSvgIconId\" [title]=\"model.removeFileCaption\" [partCss]=\"model.cssClasses.removeFileSvg\" [iconName]=\"model.cssClasses.removeFileSvgIconId\" [size]=\"'auto'\" sv-ng-svg-icon ></svg>\n </div>\n </div>\n <div *ngIf=\"val.name && model.cssClasses.fileSignBottom\" [class]=\"model.cssClasses.fileSignBottom\">\n <a\n (click)=\"model.doDownloadFile($event, val)\"\n [attr.href]=\"val.content | safeUrl\"\n [attr.title]=\"val.name\"\n [attr.download]=\"val.name\"\n [style.width]=\"model.imageWidth\"\n >{{ val.name }}</a\n >\n </div>\n </span>\n </div>\n <button\n type=\"button\"\n *ngIf=\"model.showRemoveButtonBottom\"\n [class]=\"model.showRemoveButtonBottom\"\n (click)=\"model.doClean($event)\"\n >\n <span>{{ model.clearButtonCaption }}</span>\n <svg *ngIf=\"model.cssClasses.removeButtonIconId\" [iconName]=\"model.cssClasses.removeButtonIconId\" [size]=\"'auto'\" [title]=\"model.clearButtonCaption\" sv-ng-svg-icon></svg>\n </button>\n <sv-action-bar *ngIf=\"model.mobileFileNavigatorVisible\" [model]=\"model.mobileFileNavigator\"></sv-action-bar>\n </div>\n</div>", components: [{ type: SvgIconComponent, selector: "'[sv-ng-svg-icon]'", inputs: ["size", "width", "height", "iconName", "partCss", "css", "title"] }, { type: ActionBarComponent, selector: "sv-action-bar, sv-ng-action-bar", inputs: ["model", "handleClick"] }], directives: [{ type: i2__namespace.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: Key2ClickDirective, selector: "[key2click]", inputs: ["key2click"] }, { type: i2__namespace.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: VisibleDirective, selector: "[visible]", inputs: ["visible"] }], pipes: { "safeUrl": SafeUrlPipe } });
3481
3492
  i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0__namespace, type: FileQuestionComponent, decorators: [{
3482
3493
  type: i0.Component,
3483
3494
  args: [{
@@ -3517,7 +3528,7 @@
3517
3528
  return SignaturePadQuestionComponent;
3518
3529
  }(QuestionAngular));
3519
3530
  SignaturePadQuestionComponent.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0__namespace, type: SignaturePadQuestionComponent, deps: null, target: i0__namespace.ɵɵFactoryTarget.Component });
3520
- SignaturePadQuestionComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: SignaturePadQuestionComponent, selector: "sv-ng-signature-component", usesInheritance: true, ngImport: i0__namespace, template: "<div\n[class]=\"model.cssClasses.root\"\n[style.height]=\"model.signatureHeight + 'px'\" [style.width]=\"model.signatureWidth + 'px'\" #contentElement>\n<div [class]=\"model.cssClasses.placeholder\" [visible]=\"model.needShowPlaceholder()\">\n {{ model.placeHolderText }}\n</div>\n<div>\n <canvas tabindex=\"0\"></canvas>\n</div>\n<div [class]=\"model.cssClasses.controls\" [visible]=\"model.canShowClearButton\">\n <button\n type=\"button\"\n [class]=\"model.cssClasses.clearButton\"\n [title]=\"model.clearButtonCaption\"\n (click)=\"model.clearValue()\"\n >\n <span *ngIf=\"!model.cssClasses.clearButtonIconId\">\u2716</span>\n <svg\n *ngIf=\"model.cssClasses.clearButtonIconId\"\n [iconName]=\"model.cssClasses.clearButtonIconId\"\n [size]=\"'auto'\" sv-ng-svg-icon></svg>\n </button>\n</div>\n</div>", components: [{ type: SvgIconComponent, selector: "'[sv-ng-svg-icon]'", inputs: ["size", "width", "height", "iconName", "partCss", "css", "title"] }], directives: [{ type: VisibleDirective, selector: "[visible]", inputs: ["visible"] }, { type: i2__namespace.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
3531
+ SignaturePadQuestionComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: SignaturePadQuestionComponent, selector: "sv-ng-signature-component", usesInheritance: true, ngImport: i0__namespace, template: "<div\n[class]=\"model.cssClasses.root\"\n[style.height]=\"model.signatureHeight + 'px'\" [style.width]=\"model.signatureWidth + 'px'\" #contentElement>\n<div [class]=\"model.cssClasses.placeholder\" [visible]=\"model.needShowPlaceholder()\">{{ model.placeHolderText }}</div>\n<div>\n <img *ngIf=\"!!model.backgroundImage\" [src]=\"model.backgroundImage\" [width]=\"model.signatureWidth\" [height]=\"model.signatureHeight\" [class]=\"model.cssClasses.backgroundImage\">\n <canvas tabindex=\"0\" [class]=\"model.cssClasses.canvas\"></canvas>\n</div>\n<div [class]=\"model.cssClasses.controls\" [visible]=\"model.canShowClearButton\">\n <button\n type=\"button\"\n [class]=\"model.cssClasses.clearButton\"\n [title]=\"model.clearButtonCaption\"\n (click)=\"model.clearValue()\"\n >\n <span *ngIf=\"!model.cssClasses.clearButtonIconId\">\u2716</span>\n <svg\n *ngIf=\"model.cssClasses.clearButtonIconId\"\n [iconName]=\"model.cssClasses.clearButtonIconId\"\n [size]=\"'auto'\" sv-ng-svg-icon></svg>\n </button>\n</div>\n</div>", components: [{ type: SvgIconComponent, selector: "'[sv-ng-svg-icon]'", inputs: ["size", "width", "height", "iconName", "partCss", "css", "title"] }], directives: [{ type: VisibleDirective, selector: "[visible]", inputs: ["visible"] }, { type: i2__namespace.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
3521
3532
  i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0__namespace, type: SignaturePadQuestionComponent, decorators: [{
3522
3533
  type: i0.Component,
3523
3534
  args: [{
@@ -3533,12 +3544,44 @@
3533
3544
  return _super !== null && _super.apply(this, arguments) || this;
3534
3545
  }
3535
3546
  MultipleTextItemComponent.prototype.getModel = function () {
3536
- return this.model.editor;
3547
+ if (!this.model.isErrorsCell) {
3548
+ return this.model.item.editor;
3549
+ }
3550
+ return null;
3551
+ };
3552
+ Object.defineProperty(MultipleTextItemComponent.prototype, "item", {
3553
+ get: function () {
3554
+ return this.model.item;
3555
+ },
3556
+ enumerable: false,
3557
+ configurable: true
3558
+ });
3559
+ Object.defineProperty(MultipleTextItemComponent.prototype, "editor", {
3560
+ get: function () {
3561
+ return this.model.item.editor;
3562
+ },
3563
+ enumerable: false,
3564
+ configurable: true
3565
+ });
3566
+ MultipleTextItemComponent.prototype.ngDoCheck = function () {
3567
+ var _this = this;
3568
+ _super.prototype.ngDoCheck.call(this);
3569
+ if (this.model.isErrorsCell) {
3570
+ this.editor.registerFunctionOnPropertyValueChanged("errors", function () {
3571
+ _this.update();
3572
+ }, "__ngSubscription");
3573
+ }
3574
+ };
3575
+ MultipleTextItemComponent.prototype.ngOnDestroy = function () {
3576
+ _super.prototype.ngOnDestroy.call(this);
3577
+ if (this.model.isErrorsCell) {
3578
+ this.editor.unRegisterFunctionOnPropertyValueChanged("errors", "__ngSubscription");
3579
+ }
3537
3580
  };
3538
3581
  return MultipleTextItemComponent;
3539
3582
  }(BaseAngular));
3540
3583
  MultipleTextItemComponent.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0__namespace, type: MultipleTextItemComponent, deps: null, target: i0__namespace.ɵɵFactoryTarget.Component });
3541
- MultipleTextItemComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: MultipleTextItemComponent, selector: "'[sv-ng-multipletext-item]'", inputs: { question: "question", model: "model" }, usesInheritance: true, ngImport: i0__namespace, template: "<label [class]=\"question.getItemLabelCss(model)\">\n <span [class]=\"question.getItemTitleCss()\">\n <span *ngIf=\" model.editor.isRequireTextBeforeTitle || model.editor.isRequireTextOnStart\"\n [class]=\"question.cssClasses.requiredText\">{{ model.editor.requiredText }}</span>\n <sv-ng-string [model]=\"model.locTitle\"></sv-ng-string>\n <span\n *ngIf=\"model.editor.isRequireTextAfterTitle\"\n [class]=\"question.cssClasses.requiredText\"\n >{{ model.editor.requiredText }}</span\n >\n </span>\n <div [class]=\"question.getItemCss()\">\n <div *ngIf=\"model.editor.showErrorOnTop && model.editor.hasVisibleErrors\" [element]=\"model.editor\" sv-ng-errors></div>\n <sv-ng-text-question [model]=\"model.editor\"></sv-ng-text-question>\n <div *ngIf=\"model.editor.showErrorOnBottom && model.editor.hasVisibleErrors\" [element]=\"model.editor\" sv-ng-errors></div>\n </div>\n <div *ngIf=\"model.editor.isErrorsModeTooltip && model.editor.hasVisibleErrors\" [element]=\"model.editor\" [location]=\"'tooltip'\" sv-ng-errors></div>\n</label>", components: [{ type: SurveyStringComponent, selector: "sv-ng-string, '[sv-ng-string]'", inputs: ["model"] }, { type: ErrorsComponent, selector: "'[sv-ng-errors]'", inputs: ["element", "location"] }, { type: TextQuestionComponent, selector: "sv-ng-text-question" }], directives: [{ type: i2__namespace.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
3584
+ MultipleTextItemComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: MultipleTextItemComponent, selector: "'[sv-ng-multipletext-item]'", inputs: { question: "question", model: "model" }, usesInheritance: true, ngImport: i0__namespace, template: "<ng-container *ngIf=\"!model.isErrorsCell\">\n <label [class]=\"question.getItemLabelCss(item)\">\n <span [class]=\"question.getItemTitleCss()\">\n <span *ngIf=\" item.editor.isRequireTextBeforeTitle || item.editor.isRequireTextOnStart\"\n [class]=\"question.cssClasses.requiredText\">{{ item.editor.requiredText }}</span>\n <sv-ng-string [model]=\"item.locTitle\"></sv-ng-string>\n <span *ngIf=\"item.editor.isRequireTextAfterTitle\">&nbsp;</span>\n <span *ngIf=\"item.editor.isRequireTextAfterTitle\" [class]=\"question.cssClasses.requiredText\" aria-hidden=\"true\">{{\n item.editor.requiredText }}</span>\n </span>\n <div [class]=\"question.getItemCss()\" (focusin)=\"item.focusIn()\">\n <sv-ng-text-question [model]=\"item.editor\"></sv-ng-text-question>\n </div>\n </label>\n</ng-container>\n<ng-container *ngIf=\"model.isErrorsCell\">\n <div *ngIf=\"item.editor.hasVisibleErrors\" [element]=\"item.editor\" sv-ng-errors></div>\n</ng-container>", components: [{ type: SurveyStringComponent, selector: "sv-ng-string, '[sv-ng-string]'", inputs: ["model"] }, { type: TextQuestionComponent, selector: "sv-ng-text-question" }, { type: ErrorsComponent, selector: "'[sv-ng-errors]'", inputs: ["element", "location"] }], directives: [{ type: i2__namespace.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
3542
3585
  i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0__namespace, type: MultipleTextItemComponent, decorators: [{
3543
3586
  type: i0.Component,
3544
3587
  args: [{
@@ -3551,6 +3594,34 @@
3551
3594
  type: i0.Input
3552
3595
  }] } });
3553
3596
 
3597
+ var MultipleTextRowComponent = /** @class */ (function (_super) {
3598
+ __extends(MultipleTextRowComponent, _super);
3599
+ function MultipleTextRowComponent() {
3600
+ return _super !== null && _super.apply(this, arguments) || this;
3601
+ }
3602
+ MultipleTextRowComponent.prototype.getModel = function () {
3603
+ return this.model;
3604
+ };
3605
+ MultipleTextRowComponent.prototype.trackItemBy = function (_, cell) {
3606
+ return "item" + cell.item.editor.id;
3607
+ };
3608
+ return MultipleTextRowComponent;
3609
+ }(BaseAngular));
3610
+ MultipleTextRowComponent.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0__namespace, type: MultipleTextRowComponent, deps: null, target: i0__namespace.ɵɵFactoryTarget.Component });
3611
+ MultipleTextRowComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: MultipleTextRowComponent, selector: "sv-ng-multipletext-row", inputs: { question: "question", model: "model" }, usesInheritance: true, ngImport: i0__namespace, template: "<ng-template #template>\n <tr [class]=\"question.cssClasses.row\" *ngIf=\"model.isVisible\">\n <ng-container *ngFor=\"let cell of model.cells; trackBy: trackItemBy\">\n <td [class]=\"cell.className\" [question]=\"question\" [model]=\"cell\" sv-ng-multipletext-item></td>\n </ng-container>\n </tr>\n</ng-template>", styles: [":host{display:none}\n"], components: [{ type: MultipleTextItemComponent, selector: "'[sv-ng-multipletext-item]'", inputs: ["question", "model"] }], directives: [{ type: i2__namespace.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i2__namespace.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }] });
3612
+ i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0__namespace, type: MultipleTextRowComponent, decorators: [{
3613
+ type: i0.Component,
3614
+ args: [{
3615
+ selector: "sv-ng-multipletext-row",
3616
+ templateUrl: "./multipletextrow.component.html",
3617
+ styleUrls: ["../hide-host.scss"]
3618
+ }]
3619
+ }], propDecorators: { question: [{
3620
+ type: i0.Input
3621
+ }], model: [{
3622
+ type: i0.Input
3623
+ }] } });
3624
+
3554
3625
  var MultipleTextComponent = /** @class */ (function (_super) {
3555
3626
  __extends(MultipleTextComponent, _super);
3556
3627
  function MultipleTextComponent() {
@@ -3560,13 +3631,10 @@
3560
3631
  };
3561
3632
  return _this;
3562
3633
  }
3563
- MultipleTextComponent.prototype.trackItemBy = function (_, item) {
3564
- return "item" + item.editor.id;
3565
- };
3566
3634
  return MultipleTextComponent;
3567
3635
  }(QuestionAngular));
3568
3636
  MultipleTextComponent.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0__namespace, type: MultipleTextComponent, deps: null, target: i0__namespace.ɵɵFactoryTarget.Component });
3569
- MultipleTextComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: MultipleTextComponent, selector: "sv-ng-multipletext-question", usesInheritance: true, ngImport: i0__namespace, template: "<table [class]=\"model.cssClasses.root\" #contentElement>\n <tbody>\n <tr\n *ngFor=\"let row of model.getRows(); index as rowIndex; trackBy: trackRowBy\"\n [class]=\"model.cssClasses.row\"\n >\n <ng-container *ngFor=\"let item of row; trackBy: trackItemBy\" >\n <td [class]=\"model.cssClasses.cell\" [question]=\"model\" [model]=\"item\" sv-ng-multipletext-item></td>\n </ng-container>\n </tr>\n </tbody>\n</table>\n", components: [{ type: MultipleTextItemComponent, selector: "'[sv-ng-multipletext-item]'", inputs: ["question", "model"] }], directives: [{ type: i2__namespace.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }] });
3637
+ MultipleTextComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: MultipleTextComponent, selector: "sv-ng-multipletext-question", usesInheritance: true, ngImport: i0__namespace, template: "<table [class]=\"model.cssClasses.root\" #contentElement>\n <tbody>\n <ng-container *ngFor=\"let row of model.getRows(); index as rowIndex; trackBy: trackRowBy\">\n <sv-ng-multipletext-row [model]=\"row\" [question]=\"model\"></sv-ng-multipletext-row>\n </ng-container>\n </tbody>\n</table>", components: [{ type: MultipleTextRowComponent, selector: "sv-ng-multipletext-row", inputs: ["question", "model"] }], directives: [{ type: i2__namespace.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }] });
3570
3638
  i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0__namespace, type: MultipleTextComponent, decorators: [{
3571
3639
  type: i0.Component,
3572
3640
  args: [{
@@ -4094,7 +4162,7 @@
4094
4162
  return MatrixCellComponent;
4095
4163
  }(BaseAngular));
4096
4164
  MatrixCellComponent.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0__namespace, type: MatrixCellComponent, deps: null, target: i0__namespace.ɵɵFactoryTarget.Component });
4097
- MatrixCellComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: MatrixCellComponent, selector: "sv-ng-matrix-cell", inputs: { question: "question", cell: "cell" }, viewQueries: [{ propertyName: "cellContainer", first: true, predicate: ["cellContainer"], descendants: true }], usesInheritance: true, ngImport: i0__namespace, template: "<ng-template #template>\n <td [class]=\"cell.className\" [attr.data-responsive-title]=\"getHeaders()\" [title]=\"cell.getTitle()\"\n [style]=\"getCellStyle()\" [attr.colspan]=\"cell.colSpans\" #cellContainer>\n <sv-ng-matrix-drag-drop-icon *ngIf=\"cell.isDragHandlerCell\"\n [model]=\"$any({ data: { row: row, question: question } })\"></sv-ng-matrix-drag-drop-icon>\n <sv-action-bar *ngIf=\"cell.isActionsCell\" [model]=\"cell.item.getData()\" [handleClick]=\"false\"></sv-action-bar>\n <ng-container *ngIf=\"cell.hasPanel\">\n <ng-template [component]=\"{ name: panelComponentName, data: panelComponentData }\"></ng-template>\n </ng-container>\n <div *ngIf=\"cell.isErrorsCell && cell.question?.hasVisibleErrors\" [element]=\"cell.question\" sv-ng-errors></div>\n <div *ngIf=\"cell.hasQuestion\" [class]=\"question.cssClasses.cellQuestionWrapper\"\n [visible]=\"cell.question.isVisible\">\n <ng-container *ngIf=\"!cell.isChoice && cell.question.isDefaultRendering()\">\n <ng-template\n [component]=\"{ name: question.getCellWrapperComponentName(cell.cell), data: { componentData: question.getCellWrapperComponentData(cell.cell)} }\">\n <ng-template\n [component]=\"{ name: getComponentName(cell.question), data: { model: cell.question } }\"></ng-template>\n </ng-template>\n </ng-container>\n <ng-template *ngIf=\"!cell.isChoice && !cell.question.isDefaultRendering()\"\n [component]=\"{ name: cell.question.getComponentName(), data: { model: cell.question } }\">\n </ng-template>\n <ng-container *ngIf=\"cell.isItemChoice\">\n <ng-template\n [component]=\"{ name: question.getCellWrapperComponentName(cell.cell), data: { componentData: question.getCellWrapperComponentData(cell.cell)} }\">\n <sv-ng-selebase-item [showLabel]=\"false\" [inputType]=\"cell.isCheckbox ? 'checkbox': 'radio'\"\n [question]=\"cell.question\" [model]=\"cell.item\"></sv-ng-selebase-item>\n </ng-template>\n </ng-container>\n <div *ngIf=\"cell.isOtherChoice\" [class]=\"cell.question.getCommentAreaCss(true)\" [question]=\"cell.question\"\n sv-ng-comment-other></div>\n </div>\n <ng-container *ngIf=\"cell.hasTitle\">\n <ng-template\n [component]=\"{ name: question.getCellWrapperComponentName($any(cell)), data: { componentData: question.getCellWrapperComponentData($any(cell))} }\">\n <sv-ng-string [model]=\"cell.locTitle\"></sv-ng-string>\n <span *ngIf=\"!!cell.requiredText\" [class]=\"question.cssClasses.cellRequiredText\">{{ cell.requiredText }}</span>\n </ng-template>\n </ng-container>\n </td>\n</ng-template>", styles: [":host { display: none; }"], components: [{ type: MatrixDynamicDragDropIconComponent, selector: "sv-ng-matrix-drag-drop-icon", inputs: ["model"] }, { type: ActionBarComponent, selector: "sv-action-bar, sv-ng-action-bar", inputs: ["model", "handleClick"] }, { type: ErrorsComponent, selector: "'[sv-ng-errors]'", inputs: ["element", "location"] }, { type: SelectBaseItemComponent, selector: "['sv-ng-selectbase-item'], sv-ng-selebase-item", inputs: ["question", "model", "inputType", "showLabel"] }, { type: SurveyCommentOtherComponent, selector: "sv-ng-comment-other, '[sv-ng-comment-other]'", inputs: ["question"] }, { type: SurveyStringComponent, selector: "sv-ng-string, '[sv-ng-string]'", inputs: ["model"] }], directives: [{ type: i2__namespace.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: DynamicComponentDirective, selector: "[component]", inputs: ["component"] }, { type: VisibleDirective, selector: "[visible]", inputs: ["visible"] }] });
4165
+ MatrixCellComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: MatrixCellComponent, selector: "sv-ng-matrix-cell", inputs: { question: "question", cell: "cell" }, viewQueries: [{ propertyName: "cellContainer", first: true, predicate: ["cellContainer"], descendants: true }], usesInheritance: true, ngImport: i0__namespace, template: "<ng-template #template>\n <td [class]=\"cell.className\" [attr.data-responsive-title]=\"getHeaders()\" [title]=\"cell.getTitle()\"\n [style]=\"getCellStyle()\" [attr.colspan]=\"cell.colSpans\" (focusin)=\"cell.focusIn()\" #cellContainer>\n <sv-ng-matrix-drag-drop-icon *ngIf=\"cell.isDragHandlerCell\"\n [model]=\"$any({ data: { row: row, question: question } })\"></sv-ng-matrix-drag-drop-icon>\n <sv-action-bar *ngIf=\"cell.isActionsCell\" [model]=\"cell.item.getData()\" [handleClick]=\"false\"></sv-action-bar>\n <ng-container *ngIf=\"cell.hasPanel\">\n <ng-template [component]=\"{ name: panelComponentName, data: panelComponentData }\"></ng-template>\n </ng-container>\n <div *ngIf=\"cell.isErrorsCell && cell.question?.hasVisibleErrors\" [element]=\"cell.question\" sv-ng-errors></div>\n <div *ngIf=\"cell.hasQuestion\" [class]=\"question.cssClasses.cellQuestionWrapper\"\n [visible]=\"cell.question.isVisible\">\n <ng-container *ngIf=\"!cell.isChoice && cell.question.isDefaultRendering()\">\n <ng-template\n [component]=\"{ name: question.getCellWrapperComponentName(cell.cell), data: { componentData: question.getCellWrapperComponentData(cell.cell)} }\">\n <ng-template\n [component]=\"{ name: getComponentName(cell.question), data: { model: cell.question } }\"></ng-template>\n </ng-template>\n </ng-container>\n <ng-template *ngIf=\"!cell.isChoice && !cell.question.isDefaultRendering()\"\n [component]=\"{ name: cell.question.getComponentName(), data: { model: cell.question } }\">\n </ng-template>\n <ng-container *ngIf=\"cell.isItemChoice\">\n <ng-template\n [component]=\"{ name: question.getCellWrapperComponentName(cell.cell), data: { componentData: question.getCellWrapperComponentData(cell.cell)} }\">\n <sv-ng-selebase-item [showLabel]=\"false\" [inputType]=\"cell.isCheckbox ? 'checkbox': 'radio'\"\n [question]=\"cell.question\" [model]=\"cell.item\"></sv-ng-selebase-item>\n </ng-template>\n </ng-container>\n <div *ngIf=\"cell.isOtherChoice\" [class]=\"cell.question.getCommentAreaCss(true)\" [question]=\"cell.question\"\n sv-ng-comment-other></div>\n </div>\n <ng-container *ngIf=\"cell.hasTitle\">\n <ng-template\n [component]=\"{ name: question.getCellWrapperComponentName($any(cell)), data: { componentData: question.getCellWrapperComponentData($any(cell))} }\">\n <sv-ng-string [model]=\"cell.locTitle\"></sv-ng-string>\n <span *ngIf=\"!!cell.requiredText\" [class]=\"question.cssClasses.cellRequiredText\">{{ cell.requiredText }}</span>\n </ng-template>\n </ng-container>\n </td>\n</ng-template>", styles: [":host { display: none; }"], components: [{ type: MatrixDynamicDragDropIconComponent, selector: "sv-ng-matrix-drag-drop-icon", inputs: ["model"] }, { type: ActionBarComponent, selector: "sv-action-bar, sv-ng-action-bar", inputs: ["model", "handleClick"] }, { type: ErrorsComponent, selector: "'[sv-ng-errors]'", inputs: ["element", "location"] }, { type: SelectBaseItemComponent, selector: "['sv-ng-selectbase-item'], sv-ng-selebase-item", inputs: ["question", "model", "inputType", "showLabel"] }, { type: SurveyCommentOtherComponent, selector: "sv-ng-comment-other, '[sv-ng-comment-other]'", inputs: ["question"] }, { type: SurveyStringComponent, selector: "sv-ng-string, '[sv-ng-string]'", inputs: ["model"] }], directives: [{ type: i2__namespace.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: DynamicComponentDirective, selector: "[component]", inputs: ["component"] }, { type: VisibleDirective, selector: "[visible]", inputs: ["visible"] }] });
4098
4166
  i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0__namespace, type: MatrixCellComponent, decorators: [{
4099
4167
  type: i0.Component,
4100
4168
  args: [{
@@ -4425,7 +4493,7 @@
4425
4493
  MultipleTextComponent, MultipleTextItemComponent, DynamicComponentDirective, RankingQuestionComponent, RankingItemComponent, PanelDynamicQuestionComponent, EmbeddedViewContentComponent, CustomWidgetComponent, MatrixCellComponent, MatrixTableComponent, MatrixDropdownComponent,
4426
4494
  MatrixDynamicComponent, MatrixDetailButtonComponent, MatrixDynamicRemoveButtonComponent, MatrixDynamicDragDropIconComponent, MatrixRequiredHeader, ExpressionComponent, SafeResourceUrlPipe, BrandInfoComponent,
4427
4495
  CustomQuestionComponent, CompositeQuestionComponent, ButtonGroupItemComponent, ButtonGroupQuestionComponent, MatrixRowComponent, ModalComponent, LogoImageComponent, SkeletonComponent, TimerPanelComponent, PaneldynamicRemoveButtonComponent,
4428
- NotifierComponent, ComponentsContainerComponent], imports: [i2.CommonModule, i2$1.FormsModule], exports: [VisibleDirective, Key2ClickDirective, PanelDynamicAddBtn, PanelDynamicNextBtn, PanelDynamicPrevBtn, PanelDynamicProgressText, ElementComponent, TemplateRendererComponent,
4496
+ NotifierComponent, ComponentsContainerComponent, MultipleTextRowComponent], imports: [i2.CommonModule, i2$1.FormsModule], exports: [VisibleDirective, Key2ClickDirective, PanelDynamicAddBtn, PanelDynamicNextBtn, PanelDynamicPrevBtn, PanelDynamicProgressText, ElementComponent, TemplateRendererComponent,
4429
4497
  SurveyComponent, SurveyContentComponent, PopupSurveyComponent, PageComponent, PanelComponent, QuestionComponent, StringViewerComponent, SurveyStringComponent, StringEditorComponent,
4430
4498
  QuestionSkeletonComponent, TextQuestionComponent, RadiogroupComponent, RadiogroupItemComponent, CheckboxComponent, CheckboxItemComponent,
4431
4499
  CharacterCounterComponent,
@@ -4440,7 +4508,7 @@
4440
4508
  MultipleTextComponent, MultipleTextItemComponent, DynamicComponentDirective, RankingQuestionComponent, RankingItemComponent, PanelDynamicQuestionComponent, EmbeddedViewContentComponent, CustomWidgetComponent, MatrixCellComponent, MatrixTableComponent, MatrixDropdownComponent,
4441
4509
  MatrixDynamicComponent, MatrixDetailButtonComponent, MatrixDynamicRemoveButtonComponent, MatrixDynamicDragDropIconComponent, MatrixRequiredHeader, ExpressionComponent, SafeResourceUrlPipe,
4442
4510
  CustomQuestionComponent, CompositeQuestionComponent, ButtonGroupQuestionComponent, ModalComponent, LogoImageComponent, SkeletonComponent, TimerPanelComponent, PaneldynamicRemoveButtonComponent,
4443
- NotifierComponent, ComponentsContainerComponent] });
4511
+ NotifierComponent, ComponentsContainerComponent, MultipleTextRowComponent] });
4444
4512
  SurveyModule.ɵinj = i0__namespace.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0__namespace, type: SurveyModule, providers: [PopupService], imports: [[
4445
4513
  i2.CommonModule, i2$1.FormsModule
4446
4514
  ]] });
@@ -4462,7 +4530,7 @@
4462
4530
  MultipleTextComponent, MultipleTextItemComponent, DynamicComponentDirective, RankingQuestionComponent, RankingItemComponent, PanelDynamicQuestionComponent, EmbeddedViewContentComponent, CustomWidgetComponent, MatrixCellComponent, MatrixTableComponent, MatrixDropdownComponent,
4463
4531
  MatrixDynamicComponent, MatrixDetailButtonComponent, MatrixDynamicRemoveButtonComponent, MatrixDynamicDragDropIconComponent, MatrixRequiredHeader, ExpressionComponent, SafeResourceUrlPipe, BrandInfoComponent,
4464
4532
  CustomQuestionComponent, CompositeQuestionComponent, ButtonGroupItemComponent, ButtonGroupQuestionComponent, MatrixRowComponent, ModalComponent, LogoImageComponent, SkeletonComponent, TimerPanelComponent, PaneldynamicRemoveButtonComponent,
4465
- NotifierComponent, ComponentsContainerComponent
4533
+ NotifierComponent, ComponentsContainerComponent, MultipleTextRowComponent
4466
4534
  ],
4467
4535
  imports: [
4468
4536
  i2.CommonModule, i2$1.FormsModule
@@ -4483,7 +4551,7 @@
4483
4551
  MultipleTextComponent, MultipleTextItemComponent, DynamicComponentDirective, RankingQuestionComponent, RankingItemComponent, PanelDynamicQuestionComponent, EmbeddedViewContentComponent, CustomWidgetComponent, MatrixCellComponent, MatrixTableComponent, MatrixDropdownComponent,
4484
4552
  MatrixDynamicComponent, MatrixDetailButtonComponent, MatrixDynamicRemoveButtonComponent, MatrixDynamicDragDropIconComponent, MatrixRequiredHeader, ExpressionComponent, SafeResourceUrlPipe,
4485
4553
  CustomQuestionComponent, CompositeQuestionComponent, ButtonGroupQuestionComponent, ModalComponent, LogoImageComponent, SkeletonComponent, TimerPanelComponent, PaneldynamicRemoveButtonComponent,
4486
- NotifierComponent, ComponentsContainerComponent
4554
+ NotifierComponent, ComponentsContainerComponent, MultipleTextRowComponent
4487
4555
  ],
4488
4556
  providers: [PopupService],
4489
4557
  }]
@@ -4546,6 +4614,7 @@
4546
4614
  exports.ModalComponent = ModalComponent;
4547
4615
  exports.MultipleTextComponent = MultipleTextComponent;
4548
4616
  exports.MultipleTextItemComponent = MultipleTextItemComponent;
4617
+ exports.MultipleTextRowComponent = MultipleTextRowComponent;
4549
4618
  exports.NotifierComponent = NotifierComponent;
4550
4619
  exports.PageComponent = PageComponent;
4551
4620
  exports.PanelComponent = PanelComponent;