survey-angular-ui 2.0.5 → 2.0.6

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 (30) hide show
  1. package/angular-ui.d.ts +4 -0
  2. package/angular-ui.module.d.ts +7 -3
  3. package/bundles/survey-angular-ui.umd.js +130 -17
  4. package/bundles/survey-angular-ui.umd.js.map +1 -1
  5. package/components/breadcrumbs/breadcrumbs.component.d.ts +10 -0
  6. package/components/matrixdynamicplaceholder/matrixdynamicplaceholder.component.d.ts +8 -0
  7. package/components/paneldynamicplaceholder/paneldynamicplaceholder.component.d.ts +7 -0
  8. package/components/single-input-summary/single-input-summary.component.d.ts +10 -0
  9. package/esm2015/angular-ui.js +5 -1
  10. package/esm2015/angular-ui.module.js +13 -5
  11. package/esm2015/components/breadcrumbs/breadcrumbs.component.js +26 -0
  12. package/esm2015/components/element-title/title-actions.component.js +2 -2
  13. package/esm2015/components/matrixdynamicplaceholder/matrixdynamicplaceholder.component.js +23 -0
  14. package/esm2015/components/paneldynamicplaceholder/paneldynamicplaceholder.component.js +21 -0
  15. package/esm2015/components/rating/rating-item-smiley.component.js +2 -2
  16. package/esm2015/components/rating/rating-item-star.component.js +2 -2
  17. package/esm2015/components/single-input-summary/single-input-summary.component.js +26 -0
  18. package/esm2015/components/svg-icon/svg-icon.component.js +3 -3
  19. package/esm2015/question.component.js +19 -9
  20. package/esm2015/questions/file.component.js +2 -2
  21. package/esm2015/questions/matrixdynamic.component.js +5 -4
  22. package/esm2015/questions/multipletextitem.component.js +2 -2
  23. package/esm2015/questions/paneldynamic.component.js +3 -3
  24. package/esm2015/questions/ranking-item.component.js +2 -2
  25. package/esm2015/questions/signature.component.js +2 -2
  26. package/esm2015/questions/text.component.js +2 -2
  27. package/fesm2015/survey-angular-ui.js +101 -18
  28. package/fesm2015/survey-angular-ui.js.map +1 -1
  29. package/package.json +2 -2
  30. package/question.component.d.ts +4 -1
package/angular-ui.d.ts CHANGED
@@ -123,3 +123,7 @@ export * from "./components/header/header-mobile.component";
123
123
  export * from "./svgbundle.component";
124
124
  export * from "./component-factory";
125
125
  export * from "./angular-ui.module";
126
+ export * from "./components/breadcrumbs/breadcrumbs.component";
127
+ export * from "./components/single-input-summary/single-input-summary.component";
128
+ export * from "./components/matrixdynamicplaceholder/matrixdynamicplaceholder.component";
129
+ export * from "./components/paneldynamicplaceholder/paneldynamicplaceholder.component";
@@ -123,10 +123,14 @@ import * as i121 from "./components/file/file-preview.component";
123
123
  import * as i122 from "./svgbundle.component";
124
124
  import * as i123 from "./components/file/file-item.component";
125
125
  import * as i124 from "./components/file/file-page.component";
126
- import * as i125 from "@angular/common";
127
- import * as i126 from "@angular/forms";
126
+ import * as i125 from "./components/breadcrumbs/breadcrumbs.component";
127
+ import * as i126 from "./components/single-input-summary/single-input-summary.component";
128
+ import * as i127 from "./components/matrixdynamicplaceholder/matrixdynamicplaceholder.component";
129
+ import * as i128 from "./components/paneldynamicplaceholder/paneldynamicplaceholder.component";
130
+ import * as i129 from "@angular/common";
131
+ import * as i130 from "@angular/forms";
128
132
  export declare class SurveyModule {
129
133
  static ɵfac: i0.ɵɵFactoryDeclaration<SurveyModule, never>;
130
- 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.TextAreaComponent, typeof i19.QuestionSkeletonComponent, typeof i20.ScrollComponent, typeof i21.TextQuestionComponent, typeof i22.RadiogroupComponent, typeof i23.RadiogroupItemComponent, typeof i24.CheckboxComponent, typeof i25.CheckboxItemComponent, typeof i26.DropdownComponent, typeof i27.DropdownQuestionComponent, typeof i28.DropdownSelectComponent, typeof i29.DropdownOptionItemComponent, typeof i30.PopupComponent, typeof i31.PopupBaseContainerComponent, typeof i32.PopupPointerComponent, typeof i33.CharacterCounterComponent, typeof i34.ListComponent, typeof i35.ListItemComponent, typeof i36.ListItemContentComponent, typeof i37.ListItemGroupComponent, typeof i38.RatingItemComponent, typeof i39.RatingItemStarComponent, typeof i40.RatingItemSmileyComponent, typeof i41.TagboxFilterComponent, typeof i42.TagboxComponent, typeof i43.TagboxQuestionComponent, typeof i44.TagboxItemComponent, typeof i45.ActionBarComponent, typeof i46.ActionComponent, typeof i47.ActionBarItemComponent, typeof i48.ActionBarItemDropdownComponent, typeof i49.HtmlQuestionComponent, typeof i50.SelectBaseItemComponent, typeof i51.SelectBaseComponent, typeof i52.SurveyCommentComponent, typeof i53.SurveyCommentOtherComponent, typeof i54.ElementHeaderComponent, typeof i55.ElementTitleActionsComponent, typeof i56.ElementTitleComponent, typeof i57.DynamicHeadComponent, typeof i58.RowComponent, typeof i59.RatingQuestionComponent, typeof i60.RatingDropdownItemComponent, typeof i61.RatingDropdownComponent, typeof i62.BooleanQuestionComponent, typeof i63.BooleanCheckboxComponent, typeof i64.BooleanRadioComponent, typeof i65.BooleanRadioItemComponent, typeof i66.ImagePickerItemComponent, typeof i67.ImagePickerQuestionComponent, typeof i68.ImageQuestionComponent, typeof i69.SurveyHeaderComponent, typeof i70.ProgressDefaultComponent, typeof i71.ProgressButtonsComponent, typeof i72.ProgressTocComponent, typeof i73.SurveyNavigationButton, typeof i74.MatrixQuestionComponent, typeof i75.SvgIconComponent, typeof i76.FileQuestionComponent, typeof i77.SafeUrlPipe, typeof i78.SafeHtmlPipe, typeof i79.CommentQuestionComponent, typeof i80.SignaturePadQuestionComponent, typeof i81.ErrorsComponent, typeof i82.MultipleTextComponent, typeof i83.MultipleTextItemComponent, typeof i84.DynamicComponentDirective, typeof i85.RankingQuestionComponent, typeof i86.RankingItemComponent, typeof i87.RankingItemContentComponent, typeof i88.PanelDynamicQuestionComponent, typeof i89.EmbeddedViewContentComponent, typeof i90.CustomWidgetComponent, typeof i91.MatrixCellComponent, typeof i92.MatrixDropdownCellComponent, typeof i93.MatrixTableComponent, typeof i94.MatrixDropdownComponent, typeof i95.MatrixDynamicComponent, typeof i96.MatrixDetailButtonComponent, typeof i97.MatrixDynamicRemoveButtonComponent, typeof i98.MatrixDynamicDragDropIconComponent, typeof i99.MatrixRequiredHeader, typeof i100.ExpressionComponent, typeof i77.SafeResourceUrlPipe, typeof i101.BrandInfoComponent, typeof i102.QuestionErrorComponent, typeof i103.CustomQuestionComponent, typeof i104.CompositeQuestionComponent, typeof i105.ButtonGroupItemComponent, typeof i106.ButtonGroupQuestionComponent, typeof i107.MatrixRowComponent, typeof i108.ModalComponent, typeof i109.LogoImageComponent, typeof i110.SkeletonComponent, typeof i111.TimerPanelComponent, typeof i112.PaneldynamicRemoveButtonComponent, typeof i113.NotifierComponent, typeof i114.ComponentsContainerComponent, typeof i115.MultipleTextRowComponent, typeof i116.LoadingIndicatorComponent, typeof i117.HeaderComponent, typeof i118.HeaderCellComponent, typeof i119.HeaderMobileComponent, typeof i120.ChooseFileBtn, typeof i121.FilePreviewComponent, typeof i122.SvgBundleComponent, typeof i123.FileItemComponent, typeof i124.FilePageComponent], [typeof i125.CommonModule, typeof i126.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.TextAreaComponent, typeof i19.QuestionSkeletonComponent, typeof i20.ScrollComponent, typeof i21.TextQuestionComponent, typeof i22.RadiogroupComponent, typeof i23.RadiogroupItemComponent, typeof i24.CheckboxComponent, typeof i25.CheckboxItemComponent, typeof i33.CharacterCounterComponent, typeof i26.DropdownComponent, typeof i27.DropdownQuestionComponent, typeof i28.DropdownSelectComponent, typeof i29.DropdownOptionItemComponent, typeof i30.PopupComponent, typeof i31.PopupBaseContainerComponent, typeof i32.PopupPointerComponent, typeof i33.CharacterCounterComponent, typeof i34.ListComponent, typeof i35.ListItemComponent, typeof i36.ListItemContentComponent, typeof i37.ListItemGroupComponent, typeof i38.RatingItemComponent, typeof i39.RatingItemStarComponent, typeof i40.RatingItemSmileyComponent, typeof i41.TagboxFilterComponent, typeof i42.TagboxComponent, typeof i43.TagboxQuestionComponent, typeof i44.TagboxItemComponent, typeof i45.ActionBarComponent, typeof i46.ActionComponent, typeof i47.ActionBarItemComponent, typeof i48.ActionBarItemDropdownComponent, typeof i49.HtmlQuestionComponent, typeof i50.SelectBaseItemComponent, typeof i51.SelectBaseComponent, typeof i52.SurveyCommentComponent, typeof i53.SurveyCommentOtherComponent, typeof i54.ElementHeaderComponent, typeof i56.ElementTitleComponent, typeof i57.DynamicHeadComponent, typeof i58.RowComponent, typeof i59.RatingQuestionComponent, typeof i60.RatingDropdownItemComponent, typeof i61.RatingDropdownComponent, typeof i62.BooleanQuestionComponent, typeof i63.BooleanCheckboxComponent, typeof i64.BooleanRadioComponent, typeof i65.BooleanRadioItemComponent, typeof i66.ImagePickerItemComponent, typeof i67.ImagePickerQuestionComponent, typeof i68.ImageQuestionComponent, typeof i69.SurveyHeaderComponent, typeof i70.ProgressDefaultComponent, typeof i71.ProgressButtonsComponent, typeof i73.SurveyNavigationButton, typeof i74.MatrixQuestionComponent, typeof i75.SvgIconComponent, typeof i76.FileQuestionComponent, typeof i77.SafeUrlPipe, typeof i78.SafeHtmlPipe, typeof i79.CommentQuestionComponent, typeof i80.SignaturePadQuestionComponent, typeof i81.ErrorsComponent, typeof i82.MultipleTextComponent, typeof i83.MultipleTextItemComponent, typeof i84.DynamicComponentDirective, typeof i85.RankingQuestionComponent, typeof i86.RankingItemComponent, typeof i87.RankingItemContentComponent, typeof i88.PanelDynamicQuestionComponent, typeof i89.EmbeddedViewContentComponent, typeof i90.CustomWidgetComponent, typeof i91.MatrixCellComponent, typeof i92.MatrixDropdownCellComponent, typeof i93.MatrixTableComponent, typeof i94.MatrixDropdownComponent, typeof i95.MatrixDynamicComponent, typeof i96.MatrixDetailButtonComponent, typeof i97.MatrixDynamicRemoveButtonComponent, typeof i98.MatrixDynamicDragDropIconComponent, typeof i99.MatrixRequiredHeader, typeof i100.ExpressionComponent, typeof i77.SafeResourceUrlPipe, typeof i103.CustomQuestionComponent, typeof i104.CompositeQuestionComponent, typeof i106.ButtonGroupQuestionComponent, typeof i108.ModalComponent, typeof i109.LogoImageComponent, typeof i110.SkeletonComponent, typeof i111.TimerPanelComponent, typeof i112.PaneldynamicRemoveButtonComponent, typeof i113.NotifierComponent, typeof i114.ComponentsContainerComponent, typeof i115.MultipleTextRowComponent, typeof i116.LoadingIndicatorComponent, typeof i117.HeaderComponent, typeof i118.HeaderCellComponent, typeof i119.HeaderMobileComponent, typeof i121.FilePreviewComponent, typeof i122.SvgBundleComponent, typeof i123.FileItemComponent, typeof i124.FilePageComponent]>;
134
+ 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.TextAreaComponent, typeof i19.QuestionSkeletonComponent, typeof i20.ScrollComponent, typeof i21.TextQuestionComponent, typeof i22.RadiogroupComponent, typeof i23.RadiogroupItemComponent, typeof i24.CheckboxComponent, typeof i25.CheckboxItemComponent, typeof i26.DropdownComponent, typeof i27.DropdownQuestionComponent, typeof i28.DropdownSelectComponent, typeof i29.DropdownOptionItemComponent, typeof i30.PopupComponent, typeof i31.PopupBaseContainerComponent, typeof i32.PopupPointerComponent, typeof i33.CharacterCounterComponent, typeof i34.ListComponent, typeof i35.ListItemComponent, typeof i36.ListItemContentComponent, typeof i37.ListItemGroupComponent, typeof i38.RatingItemComponent, typeof i39.RatingItemStarComponent, typeof i40.RatingItemSmileyComponent, typeof i41.TagboxFilterComponent, typeof i42.TagboxComponent, typeof i43.TagboxQuestionComponent, typeof i44.TagboxItemComponent, typeof i45.ActionBarComponent, typeof i46.ActionComponent, typeof i47.ActionBarItemComponent, typeof i48.ActionBarItemDropdownComponent, typeof i49.HtmlQuestionComponent, typeof i50.SelectBaseItemComponent, typeof i51.SelectBaseComponent, typeof i52.SurveyCommentComponent, typeof i53.SurveyCommentOtherComponent, typeof i54.ElementHeaderComponent, typeof i55.ElementTitleActionsComponent, typeof i56.ElementTitleComponent, typeof i57.DynamicHeadComponent, typeof i58.RowComponent, typeof i59.RatingQuestionComponent, typeof i60.RatingDropdownItemComponent, typeof i61.RatingDropdownComponent, typeof i62.BooleanQuestionComponent, typeof i63.BooleanCheckboxComponent, typeof i64.BooleanRadioComponent, typeof i65.BooleanRadioItemComponent, typeof i66.ImagePickerItemComponent, typeof i67.ImagePickerQuestionComponent, typeof i68.ImageQuestionComponent, typeof i69.SurveyHeaderComponent, typeof i70.ProgressDefaultComponent, typeof i71.ProgressButtonsComponent, typeof i72.ProgressTocComponent, typeof i73.SurveyNavigationButton, typeof i74.MatrixQuestionComponent, typeof i75.SvgIconComponent, typeof i76.FileQuestionComponent, typeof i77.SafeUrlPipe, typeof i78.SafeHtmlPipe, typeof i79.CommentQuestionComponent, typeof i80.SignaturePadQuestionComponent, typeof i81.ErrorsComponent, typeof i82.MultipleTextComponent, typeof i83.MultipleTextItemComponent, typeof i84.DynamicComponentDirective, typeof i85.RankingQuestionComponent, typeof i86.RankingItemComponent, typeof i87.RankingItemContentComponent, typeof i88.PanelDynamicQuestionComponent, typeof i89.EmbeddedViewContentComponent, typeof i90.CustomWidgetComponent, typeof i91.MatrixCellComponent, typeof i92.MatrixDropdownCellComponent, typeof i93.MatrixTableComponent, typeof i94.MatrixDropdownComponent, typeof i95.MatrixDynamicComponent, typeof i96.MatrixDetailButtonComponent, typeof i97.MatrixDynamicRemoveButtonComponent, typeof i98.MatrixDynamicDragDropIconComponent, typeof i99.MatrixRequiredHeader, typeof i100.ExpressionComponent, typeof i77.SafeResourceUrlPipe, typeof i101.BrandInfoComponent, typeof i102.QuestionErrorComponent, typeof i103.CustomQuestionComponent, typeof i104.CompositeQuestionComponent, typeof i105.ButtonGroupItemComponent, typeof i106.ButtonGroupQuestionComponent, typeof i107.MatrixRowComponent, typeof i108.ModalComponent, typeof i109.LogoImageComponent, typeof i110.SkeletonComponent, typeof i111.TimerPanelComponent, typeof i112.PaneldynamicRemoveButtonComponent, typeof i113.NotifierComponent, typeof i114.ComponentsContainerComponent, typeof i115.MultipleTextRowComponent, typeof i116.LoadingIndicatorComponent, typeof i117.HeaderComponent, typeof i118.HeaderCellComponent, typeof i119.HeaderMobileComponent, typeof i120.ChooseFileBtn, typeof i121.FilePreviewComponent, typeof i122.SvgBundleComponent, typeof i123.FileItemComponent, typeof i124.FilePageComponent, typeof i125.BreadcrumbsComponent, typeof i126.SingleInputSummaryComponent, typeof i127.MatrixDynamicPlaceholderComponent, typeof i128.PanelDynamicPlaceholderComponent], [typeof i129.CommonModule, typeof i130.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.TextAreaComponent, typeof i19.QuestionSkeletonComponent, typeof i20.ScrollComponent, typeof i21.TextQuestionComponent, typeof i22.RadiogroupComponent, typeof i23.RadiogroupItemComponent, typeof i24.CheckboxComponent, typeof i25.CheckboxItemComponent, typeof i33.CharacterCounterComponent, typeof i26.DropdownComponent, typeof i27.DropdownQuestionComponent, typeof i28.DropdownSelectComponent, typeof i29.DropdownOptionItemComponent, typeof i30.PopupComponent, typeof i31.PopupBaseContainerComponent, typeof i32.PopupPointerComponent, typeof i33.CharacterCounterComponent, typeof i34.ListComponent, typeof i35.ListItemComponent, typeof i36.ListItemContentComponent, typeof i37.ListItemGroupComponent, typeof i38.RatingItemComponent, typeof i39.RatingItemStarComponent, typeof i40.RatingItemSmileyComponent, typeof i41.TagboxFilterComponent, typeof i42.TagboxComponent, typeof i43.TagboxQuestionComponent, typeof i44.TagboxItemComponent, typeof i45.ActionBarComponent, typeof i46.ActionComponent, typeof i47.ActionBarItemComponent, typeof i48.ActionBarItemDropdownComponent, typeof i49.HtmlQuestionComponent, typeof i50.SelectBaseItemComponent, typeof i51.SelectBaseComponent, typeof i52.SurveyCommentComponent, typeof i53.SurveyCommentOtherComponent, typeof i54.ElementHeaderComponent, typeof i56.ElementTitleComponent, typeof i57.DynamicHeadComponent, typeof i58.RowComponent, typeof i59.RatingQuestionComponent, typeof i60.RatingDropdownItemComponent, typeof i61.RatingDropdownComponent, typeof i62.BooleanQuestionComponent, typeof i63.BooleanCheckboxComponent, typeof i64.BooleanRadioComponent, typeof i65.BooleanRadioItemComponent, typeof i66.ImagePickerItemComponent, typeof i67.ImagePickerQuestionComponent, typeof i68.ImageQuestionComponent, typeof i69.SurveyHeaderComponent, typeof i70.ProgressDefaultComponent, typeof i71.ProgressButtonsComponent, typeof i73.SurveyNavigationButton, typeof i74.MatrixQuestionComponent, typeof i75.SvgIconComponent, typeof i76.FileQuestionComponent, typeof i77.SafeUrlPipe, typeof i78.SafeHtmlPipe, typeof i79.CommentQuestionComponent, typeof i80.SignaturePadQuestionComponent, typeof i81.ErrorsComponent, typeof i82.MultipleTextComponent, typeof i83.MultipleTextItemComponent, typeof i84.DynamicComponentDirective, typeof i85.RankingQuestionComponent, typeof i86.RankingItemComponent, typeof i87.RankingItemContentComponent, typeof i88.PanelDynamicQuestionComponent, typeof i89.EmbeddedViewContentComponent, typeof i90.CustomWidgetComponent, typeof i91.MatrixCellComponent, typeof i92.MatrixDropdownCellComponent, typeof i93.MatrixTableComponent, typeof i94.MatrixDropdownComponent, typeof i95.MatrixDynamicComponent, typeof i96.MatrixDetailButtonComponent, typeof i97.MatrixDynamicRemoveButtonComponent, typeof i98.MatrixDynamicDragDropIconComponent, typeof i99.MatrixRequiredHeader, typeof i100.ExpressionComponent, typeof i77.SafeResourceUrlPipe, typeof i103.CustomQuestionComponent, typeof i104.CompositeQuestionComponent, typeof i106.ButtonGroupQuestionComponent, typeof i108.ModalComponent, typeof i109.LogoImageComponent, typeof i110.SkeletonComponent, typeof i111.TimerPanelComponent, typeof i112.PaneldynamicRemoveButtonComponent, typeof i113.NotifierComponent, typeof i114.ComponentsContainerComponent, typeof i115.MultipleTextRowComponent, typeof i116.LoadingIndicatorComponent, typeof i117.HeaderComponent, typeof i118.HeaderCellComponent, typeof i119.HeaderMobileComponent, typeof i121.FilePreviewComponent, typeof i122.SvgBundleComponent, typeof i123.FileItemComponent, typeof i124.FilePageComponent, typeof i125.BreadcrumbsComponent, typeof i126.SingleInputSummaryComponent, typeof i127.MatrixDynamicPlaceholderComponent, typeof i128.PanelDynamicPlaceholderComponent]>;
131
135
  static ɵinj: i0.ɵɵInjectorDeclaration<SurveyModule>;
132
136
  }
@@ -1205,7 +1205,7 @@
1205
1205
  return SvgIconComponent;
1206
1206
  }());
1207
1207
  SvgIconComponent.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0__namespace, type: SvgIconComponent, deps: [{ token: i0__namespace.ViewContainerRef }], target: i0__namespace.ɵɵFactoryTarget.Component });
1208
- SvgIconComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: SvgIconComponent, selector: "'[sv-ng-svg-icon]'", inputs: { size: "size", width: "width", height: "height", iconName: "iconName", partCss: "partCss", css: "css", title: "title" }, host: { properties: { "class": "this.rootClass", "[attr.role]": "this.rootRole" } }, usesOnChanges: true, ngImport: i0__namespace, template: "", isInline: true });
1208
+ SvgIconComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: SvgIconComponent, selector: "'[sv-ng-svg-icon]'", inputs: { size: "size", width: "width", height: "height", iconName: "iconName", partCss: "partCss", css: "css", title: "title" }, host: { properties: { "class": "this.rootClass", "attr.role": "this.rootRole" } }, usesOnChanges: true, ngImport: i0__namespace, template: "", isInline: true });
1209
1209
  i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0__namespace, type: SvgIconComponent, decorators: [{
1210
1210
  type: i0.Component,
1211
1211
  args: [{
@@ -1231,7 +1231,7 @@
1231
1231
  args: ["class"]
1232
1232
  }], rootRole: [{
1233
1233
  type: i0.HostBinding,
1234
- args: ["[attr.role]"]
1234
+ args: ["attr.role"]
1235
1235
  }] } });
1236
1236
 
1237
1237
  var SurveyStringComponent = /** @class */ (function () {
@@ -1266,7 +1266,7 @@
1266
1266
  return ElementTitleActionsComponent;
1267
1267
  }(EmbeddedViewContentComponent));
1268
1268
  ElementTitleActionsComponent.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0__namespace, type: ElementTitleActionsComponent, deps: null, target: i0__namespace.ɵɵFactoryTarget.Component });
1269
- ElementTitleActionsComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: ElementTitleActionsComponent, selector: "sv-ng-element-title-actions", inputs: { element: "element" }, usesInheritance: true, ngImport: i0__namespace, template: "<ng-template #template>\n <ng-container *ngIf=\"!element.hasTitleActions\">\n <ng-container *ngTemplateOutlet=\"elementTitleContent\"></ng-container>\n </ng-container>\n <ng-container *ngIf=\"element.hasTitleActions\">\n <div class=\"sv-title-actions\">\n <span class=\"sv-title-actions__title\">\n <ng-container *ngTemplateOutlet=\"elementTitleContent\"></ng-container>\n </span>\n <sv-ng-action-bar [model]=\"element.getTitleToolbar()\"></sv-ng-action-bar>\n </div>\n </ng-container>\n <ng-template #elementTitleContent>\n <sv-ng-string *ngIf=\"element.isTitleRenderedAsString\" [model]=\"element.locTitle\"></sv-ng-string>\n <ng-container *ngIf=\"!element.isTitleRenderedAsString\">\n <span\n *ngIf=\"element.isRequireTextOnStart\"\n [class]=\"element.cssRequiredMark\"\n [attr.aria-hidden]=\"true\"\n >{{ element.requiredMark }}</span>\n <span\n *ngIf=\"element.no\"\n style=\"position: static\"\n [class]=\"element.cssTitleNumber\"\n [attr.aria-hidden]=\"true\"\n >{{ element.no }}</span>\n <span *ngIf=\"element.no\">&nbsp;</span>\n <span\n *ngIf=\"element.isRequireTextBeforeTitle\"\n [class]=\"element.cssRequiredMark\"\n [attr.aria-hidden]=\"true\"\n >{{ element.requiredMark }}</span>\n <span *ngIf=\"element.isRequireTextBeforeTitle\">&nbsp;</span>\n <sv-ng-string [model]=\"element.locTitle\"></sv-ng-string>\n <span *ngIf=\"element.isRequireTextAfterTitle\">&nbsp;</span>\n <span\n *ngIf=\" element.isRequireTextAfterTitle\"\n [class]=\"element.cssRequiredMark\"\n [attr.aria-hidden]=\"true\"\n >{{ element.requiredMark }}</span> \n </ng-container>\n </ng-template>\n</ng-template>", styles: [":host{display:none}\n"], components: [{ type: ActionBarComponent, selector: "sv-action-bar, sv-ng-action-bar", inputs: ["model", "handleClick"] }, { type: SurveyStringComponent, selector: "sv-ng-string, '[sv-ng-string]'", inputs: ["model"] }], directives: [{ type: i2__namespace.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i2__namespace.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }] });
1269
+ ElementTitleActionsComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: ElementTitleActionsComponent, selector: "sv-ng-element-title-actions", inputs: { element: "element" }, usesInheritance: true, ngImport: i0__namespace, template: "<ng-template #template>\n <ng-container *ngIf=\"!element.hasTitleActions\">\n <ng-container *ngTemplateOutlet=\"elementTitleContent\"></ng-container>\n </ng-container>\n <ng-container *ngIf=\"element.hasTitleActions\">\n <div class=\"sv-title-actions\">\n <span class=\"sv-title-actions__title\">\n <ng-container *ngTemplateOutlet=\"elementTitleContent\"></ng-container>\n </span>\n <sv-ng-action-bar [model]=\"element.getTitleToolbar()\"></sv-ng-action-bar>\n </div>\n </ng-container>\n <ng-template #elementTitleContent>\n <sv-ng-string *ngIf=\"element.isTitleRenderedAsString\" [model]=\"element.locRenderedTitle\"></sv-ng-string>\n <ng-container *ngIf=\"!element.isTitleRenderedAsString\">\n <span\n *ngIf=\"element.isRequireTextOnStart\"\n [class]=\"element.cssRequiredMark\"\n [attr.aria-hidden]=\"true\"\n >{{ element.requiredMark }}</span>\n <span *ngIf=\"element.isRequireTextOnStart\">&nbsp;</span>\n <span\n *ngIf=\"element.no\"\n style=\"position: static\"\n [class]=\"element.cssTitleNumber\"\n [attr.aria-hidden]=\"true\"\n >{{ element.no }}</span>\n <span *ngIf=\"element.no\">&nbsp;</span>\n <span\n *ngIf=\"element.isRequireTextBeforeTitle\"\n [class]=\"element.cssRequiredMark\"\n [attr.aria-hidden]=\"true\"\n >{{ element.requiredMark }}</span>\n <span *ngIf=\"element.isRequireTextBeforeTitle\">&nbsp;</span>\n <sv-ng-string [model]=\"element.locRenderedTitle\"></sv-ng-string>\n <span *ngIf=\"element.isRequireTextAfterTitle\">&nbsp;</span>\n <span\n *ngIf=\" element.isRequireTextAfterTitle\"\n [class]=\"element.cssRequiredMark\"\n [attr.aria-hidden]=\"true\"\n >{{ element.requiredMark }}</span> \n </ng-container>\n </ng-template>\n</ng-template>", styles: [":host{display:none}\n"], components: [{ type: ActionBarComponent, selector: "sv-action-bar, sv-ng-action-bar", inputs: ["model", "handleClick"] }, { type: SurveyStringComponent, selector: "sv-ng-string, '[sv-ng-string]'", inputs: ["model"] }], directives: [{ type: i2__namespace.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i2__namespace.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }] });
1270
1270
  i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0__namespace, type: ElementTitleActionsComponent, decorators: [{
1271
1271
  type: i0.Component,
1272
1272
  args: [{
@@ -1863,6 +1863,31 @@
1863
1863
  return question.getComponentName();
1864
1864
  }
1865
1865
 
1866
+ var BreadcrumbsComponent = /** @class */ (function (_super) {
1867
+ __extends(BreadcrumbsComponent, _super);
1868
+ function BreadcrumbsComponent() {
1869
+ return _super !== null && _super.apply(this, arguments) || this;
1870
+ }
1871
+ BreadcrumbsComponent.prototype.getModel = function () {
1872
+ return this.model;
1873
+ };
1874
+ return BreadcrumbsComponent;
1875
+ }(BaseAngular));
1876
+ BreadcrumbsComponent.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0__namespace, type: BreadcrumbsComponent, deps: null, target: i0__namespace.ɵɵFactoryTarget.Component });
1877
+ BreadcrumbsComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: BreadcrumbsComponent, selector: "sv-breadcrumbs", inputs: { model: "model", css: "css" }, usesInheritance: true, ngImport: i0__namespace, template: "<div *ngIf=\"model.actions && model.actions.length\" [class]=\"css.breadcrumbsRoot\">\n <ng-container *ngFor=\"let item of model.actions; let itemIndex = index\">\n <svg\n *ngIf=\"itemIndex\"\n [class]=\"css.breadcrumbsSeparator\"\n [iconName]=\"'arrowright-16x16'\"\n [size]=\"'auto'\"\n sv-ng-svg-icon\n ></svg>\n <sv-ng-action [model]=\"item\"></sv-ng-action>\n </ng-container>\n</div> ", components: [{ type: SvgIconComponent, selector: "'[sv-ng-svg-icon]'", inputs: ["size", "width", "height", "iconName", "partCss", "css", "title"] }, { type: ActionComponent, selector: "sv-ng-action", inputs: ["model"] }], directives: [{ type: i2__namespace.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i2__namespace.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }] });
1878
+ i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0__namespace, type: BreadcrumbsComponent, decorators: [{
1879
+ type: i0.Component,
1880
+ args: [{
1881
+ selector: "sv-breadcrumbs",
1882
+ templateUrl: "./breadcrumbs.component.html",
1883
+ //styles: [":host { display: none; }"],
1884
+ }]
1885
+ }], propDecorators: { model: [{
1886
+ type: i0.Input
1887
+ }], css: [{
1888
+ type: i0.Input
1889
+ }] } });
1890
+
1866
1891
  var ElementHeaderComponent = /** @class */ (function () {
1867
1892
  function ElementHeaderComponent() {
1868
1893
  }
@@ -1908,6 +1933,36 @@
1908
1933
  args: ["click", ["$event"]]
1909
1934
  }] } });
1910
1935
 
1936
+ var SingleInputSummaryComponent = /** @class */ (function () {
1937
+ function SingleInputSummaryComponent() {
1938
+ }
1939
+ Object.defineProperty(SingleInputSummaryComponent.prototype, "placeholderComponent", {
1940
+ get: function () { return "sv-ng-placeholder-" + this.model.question.getTemplate(); },
1941
+ enumerable: false,
1942
+ configurable: true
1943
+ });
1944
+ Object.defineProperty(SingleInputSummaryComponent.prototype, "componentRegistered", {
1945
+ get: function () { return AngularComponentFactory.Instance.isComponentRegistered(this.placeholderComponent); },
1946
+ enumerable: false,
1947
+ configurable: true
1948
+ });
1949
+ return SingleInputSummaryComponent;
1950
+ }());
1951
+ SingleInputSummaryComponent.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0__namespace, type: SingleInputSummaryComponent, deps: [], target: i0__namespace.ɵɵFactoryTarget.Component });
1952
+ SingleInputSummaryComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: SingleInputSummaryComponent, selector: "sv-single-input-summary", inputs: { model: "model", css: "css" }, ngImport: i0__namespace, template: "<div *ngIf=\"!model.isEmpty()\" [class]=\"css.summary\">\n <div *ngFor=\"let item of model.items; index as index\" [class]=\"css.summaryRow\">\n <div [class]=\"css.summaryRowContent\">\n <sv-ng-string [model]=\"item.locText\"></sv-ng-string>\n </div>\n <div [class]=\"css.summaryRowActions\">\n <button\n *ngIf=\"item.btnEdit\"\n [class]=\"css.summaryRowActionEdit\"\n (click)=\"item.btnEdit.action()\"\n [title]=\"item.btnEdit.title\"\n >\n <svg [iconName]=\"'icon-editsmall-16x16'\" [size]=\"'auto'\" sv-ng-svg-icon></svg>\n </button>\n <button\n *ngIf=\"item.showRemove && item.btnRemove\"\n [class]=\"css.summaryRowActionDelete\"\n (click)=\"item.btnRemove.action()\"\n [title]=\"item.btnRemove.title\"\n >\n <svg [iconName]=\"'icon-delete-16x16'\" [size]=\"'auto'\" sv-ng-svg-icon></svg>\n </button>\n </div>\n </div>\n</div>\n<div *ngIf=\"model.isEmpty()\">\n <ng-template\n [component]=\"{ \n name: placeholderComponent,\n data: {\n question: model.question,\n cssClasses: css \n }\n }\"\n *ngIf=\"componentRegistered\"\n ></ng-template>\n <div *ngIf=\"!componentRegistered\">\n <sv-ng-string [model]=\"model.noEntry\"></sv-ng-string>\n </div>\n</div>", components: [{ type: SurveyStringComponent, selector: "sv-ng-string, '[sv-ng-string]'", inputs: ["model"] }, { type: SvgIconComponent, selector: "'[sv-ng-svg-icon]'", inputs: ["size", "width", "height", "iconName", "partCss", "css", "title"] }], 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"] }] });
1953
+ i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0__namespace, type: SingleInputSummaryComponent, decorators: [{
1954
+ type: i0.Component,
1955
+ args: [{
1956
+ selector: "sv-single-input-summary",
1957
+ templateUrl: "./single-input-summary.component.html"
1958
+ }]
1959
+ }], propDecorators: { model: [{
1960
+ type: i0.Input
1961
+ }], css: [{
1962
+ type: i0.Input
1963
+ }] } });
1964
+ AngularComponentFactory.Instance.registerComponent("sv-single-input-summary", SingleInputSummaryComponent);
1965
+
1911
1966
  var SurveyCommentComponent = /** @class */ (function () {
1912
1967
  function SurveyCommentComponent() {
1913
1968
  }
@@ -1942,6 +1997,13 @@
1942
1997
  QuestionComponent.prototype.getModel = function () {
1943
1998
  return this.model;
1944
1999
  };
2000
+ Object.defineProperty(QuestionComponent.prototype, "singleQuestion", {
2001
+ get: function () {
2002
+ return this.model.singleInputQuestion;
2003
+ },
2004
+ enumerable: false,
2005
+ configurable: true
2006
+ });
1945
2007
  QuestionComponent.prototype.ngAfterViewInit = function () {
1946
2008
  var _a, _b;
1947
2009
  if (!!((_a = this.rootEl) === null || _a === void 0 ? void 0 : _a.nativeElement)) {
@@ -1968,7 +2030,7 @@
1968
2030
  return QuestionComponent;
1969
2031
  }(EmbeddedViewContentComponent));
1970
2032
  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 });
1971
- 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\"\n [attr.data-name]=\"model.name\" [attr.role]=\"model.ariaRole\" [attr.aria-required]=\"model.ariaRequired\"\n [attr.aria-invalid]=\"model.ariaInvalid\" [attr.aria-label]=\"model.ariaLabel\"\n [attr.aria-labelledby]=\"model.ariaLabelledBy\" [attr.aria-describedby]=\"model.ariaDescribedBy\"\n [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 <ng-template\n [component]=\"{ name: getQuestionContentWrapperComponentName(), data: getQuestionContentWrapperComponentData() }\">\n <div [class]=\"model.cssContent\" role=\"presentation\" [visible]=\"model.renderedIsExpanded\">\n <ng-template\n [component]=\"{ name: getComponentName(), data: { model: model }, default: 'skeleton-question' }\"></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.hasDescriptionUnderInput\" [class]=\"model.cssDescription\" [attr.id]=\"model.ariaDescriptionId\"\n [model]=\"model.locDescription\" sv-ng-string></div>\n </div>\n </ng-template>\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: DynamicComponentDirective, selector: "[component]", inputs: ["component"] }, { type: VisibleDirective, selector: "[visible]", inputs: ["visible"] }] });
2033
+ QuestionComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: QuestionComponent, selector: "sv-ng-question", inputs: { model: "model", css: "css", survey: "survey" }, 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\"\n [attr.data-name]=\"model.name\" [attr.role]=\"model.ariaRole\" [attr.aria-required]=\"model.ariaRequired\"\n [attr.aria-invalid]=\"model.ariaInvalid\" [attr.aria-label]=\"model.ariaLabel\"\n [attr.aria-labelledby]=\"model.ariaLabelledBy\" [attr.aria-describedby]=\"model.ariaDescribedBy\"\n [attr.aria-expanded]=\"model.ariaExpanded\">\n <sv-breadcrumbs\n *ngIf=\"model.singleInputHasActions\"\n [model]=\"model.singleInputActions\"\n [css]=\"model.cssClasses\"\n ></sv-breadcrumbs>\n <div *ngIf=\"model.showErrorsAboveQuestion && model.hasVisibleErrors\" [element]=\"model\" sv-ng-errors></div>\n <div [element]=\"model\" *ngIf=\"!model.singleInputHideHeader && model.hasTitleOnLeftTop\" sv-ng-element-header></div>\n <sv-single-input-summary\n *ngIf=\"!!model.singleInputSummary\"\n [model]=\"model.singleInputSummary\"\n [css]=\"model.cssClasses\"\n ></sv-single-input-summary>\n <sv-ng-element\n *ngIf=\"!model.singleInputSummary && !!singleQuestion\"\n [model]=\"singleQuestion\"\n ></sv-ng-element>\n <ng-template\n *ngIf=\"!model.singleInputSummary && !singleQuestion\"\n [component]=\"{ name: getQuestionContentWrapperComponentName(), data: getQuestionContentWrapperComponentData() }\">\n <div [class]=\"model.cssContent\" role=\"presentation\" [visible]=\"model.renderedIsExpanded\">\n <ng-template\n [component]=\"{ name: getComponentName(), data: { model: model }, default: 'skeleton-question' }\"></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.hasDescriptionUnderInput\" [class]=\"model.cssDescription\" [attr.id]=\"model.ariaDescriptionId\"\n [model]=\"model.locDescription\" sv-ng-string></div>\n </div>\n </ng-template>\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: BreadcrumbsComponent, selector: "sv-breadcrumbs", inputs: ["model", "css"] }, { type: ErrorsComponent, selector: "'[sv-ng-errors]'", inputs: ["element", "location"] }, { type: ElementHeaderComponent, selector: "'[sv-ng-element-header]'", inputs: ["element"] }, { type: SingleInputSummaryComponent, selector: "sv-single-input-summary", inputs: ["model", "css"] }, { type: ElementComponent, selector: "sv-ng-element", inputs: ["model"] }, { 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: DynamicComponentDirective, selector: "[component]", inputs: ["component"] }, { type: VisibleDirective, selector: "[visible]", inputs: ["visible"] }] });
1972
2034
  i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0__namespace, type: QuestionComponent, decorators: [{
1973
2035
  type: i0.Component,
1974
2036
  args: [{
@@ -1977,6 +2039,10 @@
1977
2039
  }]
1978
2040
  }], propDecorators: { model: [{
1979
2041
  type: i0.Input
2042
+ }], css: [{
2043
+ type: i0.Input
2044
+ }], survey: [{
2045
+ type: i0.Input
1980
2046
  }], rootEl: [{
1981
2047
  type: i0.ViewChild,
1982
2048
  args: ["elementContainer"]
@@ -2567,7 +2633,7 @@
2567
2633
  return TextQuestionComponent;
2568
2634
  }(QuestionAngular));
2569
2635
  TextQuestionComponent.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0__namespace, type: TextQuestionComponent, deps: null, target: i0__namespace.ɵɵFactoryTarget.Component });
2570
- TextQuestionComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: TextQuestionComponent, selector: "sv-ng-text-question", viewQueries: [{ propertyName: "inputElementRef", first: true, predicate: ["inputElement"], descendants: true }], usesInheritance: true, ngImport: i0__namespace, template: " <ng-container [ngTemplateOutlet]=\"input\" *ngIf=\"!model.dataListId && !model.isReadOnlyRenderDiv()\"></ng-container>\n <div *ngIf=\"model.dataListId && !model.isReadOnlyRenderDiv()\">\n <ng-container [ngTemplateOutlet]=\"input\"></ng-container>\n <datalist [id]=\"model.dataListId\">\n <option *ngFor=\"let dataListItem of model.dataList\" [value]=\"dataListItem\"></option>\n </datalist>\n </div>\n <div *ngIf=\"model.isReadOnlyRenderDiv()\" #contentElement>{{ value }}</div>\n <ng-template #input>\n <input #inputElement [style]=\"model.inputStyle\" [class]=\"model.getControlClass()\" [attr.list]=\"model.dataListId\"\n (change)=\"model.onChange($event)\" [value]=\"value\" [disabled]=\"model.isDisabledAttr\" [type]=\"model.inputType\" [id]=\"model.inputId\" [attr.placeholder]=\"model.renderedPlaceholder\"\n (keyup)=\"model.onKeyUp($event)\" (keydown)=\"model.onKeyDown($event)\" (blur)=\"blur($event)\" (focus)=\"model.onFocus($event)\" (compositionupdate)=\"model.onCompositionUpdate($event)\" \n [attr.size] = \"model.renderedInputSize\" [attr.maxlength]= \"model.getMaxLength()\" [attr.min]=\"model.renderedMin\" [readonly]=\"model.isReadOnlyAttr\"\n [attr.max]=\"model.renderedMax\" [attr.step]=\"model.renderedStep\" [attr.max]=\"model.renderedMax\" [attr.aria-required]=\"model.a11y_input_ariaRequired\"\n [attr.aria-label]=\"model.a11y_input_ariaLabel\" [attr.aria-labelledby]=\"model.a11y_input_ariaLabelledBy\" [attr.aria-describedby]=\"model.a11y_input_ariaDescribedBy\"[attr.aria-invalid]=\"model.a11y_input_ariaInvalid\" [attr.aria-errormessage]=\"model.a11y_input_ariaErrormessage\" [attr.autocomplete]=\"model.autocomplete\" #contentElement/>\n <sv-ng-character-counter *ngIf=\"model.getMaxLength()\" \n [counter]=\"model.characterCounter\"\n [remainingCharacterCounter]=\"model.cssClasses.remainingCharacterCounter\">\n </sv-ng-character-counter>\n </ng-template>", styles: [""], components: [{ type: CharacterCounterComponent, selector: "sv-ng-character-counter", inputs: ["counter", "remainingCharacterCounter"] }], directives: [{ type: i2__namespace.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i2__namespace.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }, { type: i2__namespace.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i2__namespace$1.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { type: i2__namespace$1.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }] });
2636
+ TextQuestionComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: TextQuestionComponent, selector: "sv-ng-text-question", viewQueries: [{ propertyName: "inputElementRef", first: true, predicate: ["inputElement"], descendants: true }], usesInheritance: true, ngImport: i0__namespace, template: " <ng-container [ngTemplateOutlet]=\"input\" *ngIf=\"!model.dataListId && !model.isReadOnlyRenderDiv()\"></ng-container>\n <div *ngIf=\"model.dataListId && !model.isReadOnlyRenderDiv()\">\n <ng-container [ngTemplateOutlet]=\"input\"></ng-container>\n <datalist [id]=\"model.dataListId\">\n <option *ngFor=\"let dataListItem of model.dataList\" [value]=\"dataListItem\"></option>\n </datalist>\n </div>\n <div *ngIf=\"model.isReadOnlyRenderDiv()\" #contentElement>{{ value }}</div>\n <ng-template #input>\n <input #inputElement [style]=\"model.inputStyle\" [class]=\"model.getControlClass()\" [attr.list]=\"model.dataListId\" (click)=\"model.readOnlyBlocker($event)\" (pointerdown)=\"model.readOnlyBlocker($event)\" \n (change)=\"model.onChange($event)\" [value]=\"value\" [disabled]=\"model.isDisabledAttr\" [type]=\"model.inputType\" [id]=\"model.inputId\" [attr.placeholder]=\"model.renderedPlaceholder\"\n (keyup)=\"model.onKeyUp($event)\" (keydown)=\"model.onKeyDown($event)\" (blur)=\"blur($event)\" (focus)=\"model.onFocus($event)\" (compositionupdate)=\"model.onCompositionUpdate($event)\" \n [attr.size] = \"model.renderedInputSize\" [attr.maxlength]= \"model.getMaxLength()\" [attr.min]=\"model.renderedMin\" [readonly]=\"model.isReadOnlyAttr\"\n [attr.max]=\"model.renderedMax\" [attr.step]=\"model.renderedStep\" [attr.max]=\"model.renderedMax\" [attr.aria-required]=\"model.a11y_input_ariaRequired\"\n [attr.aria-label]=\"model.a11y_input_ariaLabel\" [attr.aria-labelledby]=\"model.a11y_input_ariaLabelledBy\" [attr.aria-describedby]=\"model.a11y_input_ariaDescribedBy\"[attr.aria-invalid]=\"model.a11y_input_ariaInvalid\" [attr.aria-errormessage]=\"model.a11y_input_ariaErrormessage\" [attr.autocomplete]=\"model.autocomplete\" #contentElement/>\n <sv-ng-character-counter *ngIf=\"model.getMaxLength()\" \n [counter]=\"model.characterCounter\"\n [remainingCharacterCounter]=\"model.cssClasses.remainingCharacterCounter\">\n </sv-ng-character-counter>\n </ng-template>", styles: [""], components: [{ type: CharacterCounterComponent, selector: "sv-ng-character-counter", inputs: ["counter", "remainingCharacterCounter"] }], directives: [{ type: i2__namespace.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i2__namespace.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }, { type: i2__namespace.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i2__namespace$1.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { type: i2__namespace$1.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }] });
2571
2637
  i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0__namespace, type: TextQuestionComponent, decorators: [{
2572
2638
  type: i0.Component,
2573
2639
  args: [{
@@ -3485,7 +3551,7 @@
3485
3551
  return RatingItemStarComponent;
3486
3552
  }(BaseAngular));
3487
3553
  RatingItemStarComponent.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0__namespace, type: RatingItemStarComponent, deps: null, target: i0__namespace.ɵɵFactoryTarget.Component });
3488
- RatingItemStarComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: RatingItemStarComponent, selector: "sv-ng-rating-item-star", inputs: { element: "element", model: "model", item: "item", index: "index" }, usesInheritance: true, ngImport: i0__namespace, template: "<ng-template #template>\n <label [class]=\"model.getItemClass(item.itemValue, item.highlight)\" (mouseover)=\"model.onItemMouseIn(item)\" (mouseout)=\"model.onItemMouseOut(item)\" (mousedown)=\"model.onMouseDown()\">\n <input type=\"radio\"\n class=\"sv-visuallyhidden\"\n [attr.name]=\"model.questionName\" [attr.id]=\"model.getInputId(index)\" [value]=\"item.value\" [attr.aria-required]=\"model.ariaRequired\" [attr.aria-label]=\"model.ariaLabel\" [attr.aria-invalid]=\"model.ariaInvalid\" [attr.aria-errormessage]=\"model.ariaErrormessage\"\n [disabled]=\"model.isDisabledAttr\" [readonly]=\"model.isReadOnlyAttr\" [checked]=\"model.value === item.value\" (click)=\"onClick($event)\"\n />\n <svg [iconName]=\"model.itemStarIcon\" [size]=\"'auto'\" [title]=\"item.text\" [class]=\"'sv-star'\" sv-ng-svg-icon></svg>\n <svg [iconName]=\"model.itemStarIconAlt\" [size]=\"'auto'\" [title]=\"item.text\" [class]=\"'sv-star-2'\" sv-ng-svg-icon></svg>\n </label>\n</ng-template>", styles: [":host{display:none}\n"], components: [{ type: SvgIconComponent, selector: "'[sv-ng-svg-icon]'", inputs: ["size", "width", "height", "iconName", "partCss", "css", "title"] }] });
3554
+ RatingItemStarComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: RatingItemStarComponent, selector: "sv-ng-rating-item-star", inputs: { element: "element", model: "model", item: "item", index: "index" }, usesInheritance: true, ngImport: i0__namespace, template: "<ng-template #template>\n <label [class]=\"model.getItemClass(item.itemValue, item.highlight)\" (mouseover)=\"model.onItemMouseIn(item)\" (mouseout)=\"model.onItemMouseOut(item)\" (mousedown)=\"model.onMouseDown()\" [title]=\"item.text\">\n <input type=\"radio\"\n class=\"sv-visuallyhidden\"\n [attr.name]=\"model.questionName\" [attr.id]=\"model.getInputId(index)\" [value]=\"item.value\" [attr.aria-required]=\"model.ariaRequired\" [attr.aria-label]=\"model.ariaLabel\" [attr.aria-invalid]=\"model.ariaInvalid\" [attr.aria-errormessage]=\"model.ariaErrormessage\"\n [disabled]=\"model.isDisabledAttr\" [readonly]=\"model.isReadOnlyAttr\" [checked]=\"model.value === item.value\" (click)=\"onClick($event)\"\n />\n <svg [iconName]=\"model.itemStarIcon\" [size]=\"'auto'\" [class]=\"'sv-star'\" sv-ng-svg-icon></svg>\n <svg [iconName]=\"model.itemStarIconAlt\" [size]=\"'auto'\" [class]=\"'sv-star-2'\" sv-ng-svg-icon></svg>\n </label>\n</ng-template>", styles: [":host{display:none}\n"], components: [{ type: SvgIconComponent, selector: "'[sv-ng-svg-icon]'", inputs: ["size", "width", "height", "iconName", "partCss", "css", "title"] }] });
3489
3555
  i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0__namespace, type: RatingItemStarComponent, decorators: [{
3490
3556
  type: i0.Component,
3491
3557
  args: [{
@@ -3519,7 +3585,7 @@
3519
3585
  return RatingItemSmileyComponent;
3520
3586
  }(BaseAngular));
3521
3587
  RatingItemSmileyComponent.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0__namespace, type: RatingItemSmileyComponent, deps: null, target: i0__namespace.ɵɵFactoryTarget.Component });
3522
- RatingItemSmileyComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: RatingItemSmileyComponent, selector: "sv-ng-rating-item-smiley", inputs: { element: "element", model: "model", item: "item", index: "index" }, usesInheritance: true, ngImport: i0__namespace, template: "<ng-template #template>\n <label [style]=\"model.getItemStyle(item.itemValue, item.highlight)\" [class]=\"model.getItemClass(item.itemValue, item.highlight)\" (mouseover)=\"model.onItemMouseIn(item)\" (mouseout)=\"model.onItemMouseOut(item)\" (mousedown)=\"model.onMouseDown()\">\n <input type=\"radio\"\n class=\"sv-visuallyhidden\"\n [attr.name]=\"model.questionName\" [attr.id]=\"model.getInputId(index)\" [value]=\"item.value\" [attr.aria-required]=\"model.ariaRequired\" [attr.aria-label]=\"model.ariaLabel\" [attr.aria-invalid]=\"model.ariaInvalid\" [attr.aria-errormessage]=\"model.ariaErrormessage\"\n [disabled]=\"model.isDisabledAttr\" [readonly]=\"model.isReadOnlyAttr\" [checked]=\"model.value === item.value\" (click)=\"onClick($event)\"\n />\n <svg [iconName]=\"model.getItemSmileyIconName(item.itemValue)\" [size]=\"'auto'\" [title]=\"item.text\" sv-ng-svg-icon></svg>\n </label>\n</ng-template>", styles: [":host{display:none}\n"], components: [{ type: SvgIconComponent, selector: "'[sv-ng-svg-icon]'", inputs: ["size", "width", "height", "iconName", "partCss", "css", "title"] }] });
3588
+ RatingItemSmileyComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: RatingItemSmileyComponent, selector: "sv-ng-rating-item-smiley", inputs: { element: "element", model: "model", item: "item", index: "index" }, usesInheritance: true, ngImport: i0__namespace, template: "<ng-template #template>\n <label [style]=\"model.getItemStyle(item.itemValue, item.highlight)\" [class]=\"model.getItemClass(item.itemValue, item.highlight)\" (mouseover)=\"model.onItemMouseIn(item)\" (mouseout)=\"model.onItemMouseOut(item)\" (mousedown)=\"model.onMouseDown()\" [title]=\"item.text\">\n <input type=\"radio\"\n class=\"sv-visuallyhidden\"\n [attr.name]=\"model.questionName\" [attr.id]=\"model.getInputId(index)\" [value]=\"item.value\" [attr.aria-required]=\"model.ariaRequired\" [attr.aria-label]=\"model.ariaLabel\" [attr.aria-invalid]=\"model.ariaInvalid\" [attr.aria-errormessage]=\"model.ariaErrormessage\"\n [disabled]=\"model.isDisabledAttr\" [readonly]=\"model.isReadOnlyAttr\" [checked]=\"model.value === item.value\" (click)=\"onClick($event)\"\n />\n <svg [iconName]=\"model.getItemSmileyIconName(item.itemValue)\" [size]=\"'auto'\" sv-ng-svg-icon></svg>\n </label>\n</ng-template>", styles: [":host{display:none}\n"], components: [{ type: SvgIconComponent, selector: "'[sv-ng-svg-icon]'", inputs: ["size", "width", "height", "iconName", "partCss", "css", "title"] }] });
3523
3589
  i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0__namespace, type: RatingItemSmileyComponent, decorators: [{
3524
3590
  type: i0.Component,
3525
3591
  args: [{
@@ -3973,7 +4039,7 @@
3973
4039
  return FileQuestionComponent;
3974
4040
  }(QuestionAngular));
3975
4041
  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 });
3976
- 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 [class]=\"model.cssClasses.fileInput\" *ngIf=\"!model.isReadOnlyAttr && !model.isDisabledAttr && model.hasFileUI\"\n tabindex=\"-1\" type=\"file\" [attr.id]=\"model.inputId\" [attr.aria-required]=\"model.ariaRequired\"\n [attr.aria-label]=\"model.ariaLabel\" [attr.aria-invalid]=\"model.ariaInvalid\"\n [attr.aria-errormessage]=\"model.ariaErrormessage\" [attr.multiple]=\"model.multipleRendered\"\n [attr.title]=\"model.inputTitle\" [attr.accept]=\"model.acceptedTypes\" [attr.capture]=\"model.renderCapture\" />\n <input *ngIf=\"model.isReadOnlyAttr\" type=\"file\" readonly [class]=\"model.getReadOnlyFileCss()\"\n [attr.id]=\"model.inputId\" [attr.multiple]=\"model.multipleRendered\" [attr.placeholder]=\"model.title\"\n style=\"color: transparent\" />\n <input *ngIf=\"model.isDisabledAttr\" type=\"file\" disabled [class]=\"model.getReadOnlyFileCss()\"\n [attr.id]=\"model.inputId\" [attr.multiple]=\"model.multipleRendered\" [attr.placeholder]=\"model.title\"\n style=\"color: transparent\" />\n <div [class]=\"model.cssClasses.dragArea\" (dragenter)=\"model.onDragEnter($event)\" (drop)=\"model.onDrop($event)\"\n (dragover)=\"model.onDragOver($event)\" (dragleave)=\"model.onDragLeave($event)\">\n <div [class]=\"model.getFileDecoratorCss()\" *ngIf=\"model.showFileDecorator\">\n <span [class]=\"model.cssClasses.dragAreaPlaceholder\" [model]=\"model.locRenderedPlaceholder\" sv-ng-string></span>\n <div [class]=\"model.cssClasses.wrapper\">\n <sv-ng-action-bar [model]=\"model.actionsContainer\" *ngIf=\"model.actionsContainerVisible\"></sv-ng-action-bar>\n <span [class]=\"model.cssClasses.noFileChosen\" *ngIf=\"model.isEmpty()\">{{ model.noFileChosenCaption }}</span>\n </div>\n </div>\n <ng-container *ngIf=\"model.showLoadingIndicator\">\n <div [class]=\"model.cssClasses.loadingIndicator\">\n <sv-ng-loading-indicator></sv-ng-loading-indicator>\n </div>\n </ng-container>\n <ng-container *ngIf=\"model.isPlayingVideo\">\n <ng-container *ngTemplateOutlet=\"fileVideo\"></ng-container>\n </ng-container>\n <ng-container *ngIf=\"model.allowShowPreview\">\n <ng-template [component]=\"{ name: 'sv-file-preview', data: { question: model } }\"></ng-template>\n </ng-container>\n <sv-action-bar *ngIf=\"model.fileNavigatorVisible\" [model]=\"model.fileNavigator\"></sv-action-bar>\n </div>\n</div>\n<ng-template #fileCleanButton let-css=\"css\">\n <button type=\"button\" [class]=\"css\" (click)=\"model.doClean()\">\n <span>{{ model.clearButtonCaption }}</span>\n <svg *ngIf=\"model.cssClasses.removeButtonIconId\" [iconName]=\"model.cssClasses.removeButtonIconId\" [size]=\"'auto'\"\n [title]=\"model.clearButtonCaption\" sv-ng-svg-icon></svg>\n </button>\n</ng-template>\n<ng-template #fileVideo>\n <div [class]=\"model.cssClasses.videoContainer\">\n <sv-ng-action [model]=\"model.changeCameraAction\"></sv-ng-action>\n <sv-ng-action [model]=\"model.closeCameraAction\"></sv-ng-action>\n <video autoplay playsinline [attr.id]=\"model.videoId\" [class]=\"model.cssClasses.video\"></video>\n <sv-ng-action [model]=\"model.takePictureAction\"></sv-ng-action>\n </div>\n</ng-template>", components: [{ type: SurveyStringComponent, selector: "sv-ng-string, '[sv-ng-string]'", inputs: ["model"] }, { type: ActionBarComponent, selector: "sv-action-bar, sv-ng-action-bar", inputs: ["model", "handleClick"] }, { type: LoadingIndicatorComponent, selector: "sv-ng-loading-indicator" }, { type: SvgIconComponent, selector: "'[sv-ng-svg-icon]'", inputs: ["size", "width", "height", "iconName", "partCss", "css", "title"] }, { type: ActionComponent, selector: "sv-ng-action", inputs: ["model"] }], directives: [{ type: i2__namespace.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i2__namespace.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }, { type: DynamicComponentDirective, selector: "[component]", inputs: ["component"] }] });
4042
+ 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 [class]=\"model.cssClasses.fileInput\" *ngIf=\"!model.isReadOnlyAttr && !model.isDisabledAttr && model.hasFileUI\"\n tabindex=\"-1\" type=\"file\" [attr.id]=\"model.inputId\" [attr.aria-required]=\"model.ariaRequired\"\n [attr.aria-label]=\"model.ariaLabel\" [attr.aria-invalid]=\"model.ariaInvalid\"\n [attr.aria-errormessage]=\"model.ariaErrormessage\" [attr.multiple]=\"model.multipleRendered\"\n [attr.title]=\"model.inputTitle\" [attr.accept]=\"model.acceptedTypes\" [attr.capture]=\"model.renderCapture\" />\n <input *ngIf=\"model.isReadOnlyAttr\" type=\"file\" readonly [class]=\"model.getReadOnlyFileCss()\"\n [attr.id]=\"model.inputId\" [attr.multiple]=\"model.multipleRendered\" [attr.placeholder]=\"model.title\"\n style=\"color: transparent\" />\n <input *ngIf=\"model.isDisabledAttr\" type=\"file\" disabled [class]=\"model.getReadOnlyFileCss()\"\n [attr.id]=\"model.inputId\" [attr.multiple]=\"model.multipleRendered\" [attr.placeholder]=\"model.title\"\n style=\"color: transparent\" />\n <div [class]=\"model.cssClasses.dragArea\" (dragenter)=\"model.onDragEnter($event)\" (drop)=\"model.onDrop($event)\"\n (dragover)=\"model.onDragOver($event)\" (dragleave)=\"model.onDragLeave($event)\">\n <div [class]=\"model.getFileDecoratorCss()\" *ngIf=\"model.showFileDecorator\">\n <span *ngIf=\"model.showDragAreaPlaceholder\" [class]=\"model.cssClasses.dragAreaPlaceholder\" [model]=\"model.locRenderedPlaceholder\" sv-ng-string></span>\n <div [class]=\"model.cssClasses.wrapper\">\n <sv-ng-action-bar [model]=\"model.actionsContainer\" *ngIf=\"model.actionsContainerVisible\"></sv-ng-action-bar>\n </div>\n </div>\n <ng-container *ngIf=\"model.showLoadingIndicator\">\n <div [class]=\"model.cssClasses.loadingIndicator\">\n <sv-ng-loading-indicator></sv-ng-loading-indicator>\n </div>\n </ng-container>\n <ng-container *ngIf=\"model.isPlayingVideo\">\n <ng-container *ngTemplateOutlet=\"fileVideo\"></ng-container>\n </ng-container>\n <ng-container *ngIf=\"model.allowShowPreview\">\n <ng-template [component]=\"{ name: 'sv-file-preview', data: { question: model } }\"></ng-template>\n </ng-container>\n <sv-action-bar *ngIf=\"model.fileNavigatorVisible\" [model]=\"model.fileNavigator\"></sv-action-bar>\n </div>\n</div>\n<ng-template #fileCleanButton let-css=\"css\">\n <button type=\"button\" [class]=\"css\" (click)=\"model.doClean()\">\n <span>{{ model.clearButtonCaption }}</span>\n <svg *ngIf=\"model.cssClasses.removeButtonIconId\" [iconName]=\"model.cssClasses.removeButtonIconId\" [size]=\"'auto'\"\n [title]=\"model.clearButtonCaption\" sv-ng-svg-icon></svg>\n </button>\n</ng-template>\n<ng-template #fileVideo>\n <div [class]=\"model.cssClasses.videoContainer\">\n <sv-ng-action [model]=\"model.changeCameraAction\"></sv-ng-action>\n <sv-ng-action [model]=\"model.closeCameraAction\"></sv-ng-action>\n <video autoplay playsinline [attr.id]=\"model.videoId\" [class]=\"model.cssClasses.video\"></video>\n <sv-ng-action [model]=\"model.takePictureAction\"></sv-ng-action>\n </div>\n</ng-template>", components: [{ type: SurveyStringComponent, selector: "sv-ng-string, '[sv-ng-string]'", inputs: ["model"] }, { type: ActionBarComponent, selector: "sv-action-bar, sv-ng-action-bar", inputs: ["model", "handleClick"] }, { type: LoadingIndicatorComponent, selector: "sv-ng-loading-indicator" }, { type: SvgIconComponent, selector: "'[sv-ng-svg-icon]'", inputs: ["size", "width", "height", "iconName", "partCss", "css", "title"] }, { type: ActionComponent, selector: "sv-ng-action", inputs: ["model"] }], directives: [{ type: i2__namespace.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i2__namespace.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }, { type: DynamicComponentDirective, selector: "[component]", inputs: ["component"] }] });
3977
4043
  i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0__namespace, type: FileQuestionComponent, decorators: [{
3978
4044
  type: i0.Component,
3979
4045
  args: [{
@@ -4013,7 +4079,7 @@
4013
4079
  return SignaturePadQuestionComponent;
4014
4080
  }(QuestionAngular));
4015
4081
  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 });
4016
- 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.width]=\"model.renderedCanvasWidth\" #contentElement>\n<div [class]=\"model.cssClasses.placeholder\" [visible]=\"model.needShowPlaceholder()\" [model]=\"$any(model).locRenderedPlaceholder\" sv-ng-string></div>\n<div>\n <img *ngIf=\"!!model.backgroundImage\" [src]=\"model.backgroundImage\" [style.width]=\"model.renderedCanvasWidth\" [class]=\"model.cssClasses.backgroundImage\">\n <canvas tabindex=\"-1\" [class]=\"model.cssClasses.canvas\" (blur)=\"model.onBlur($event)\"></canvas>\n</div>\n<div [class]=\"model.cssClasses.controls\" *ngIf=\"model.canShowClearButton\">\n <button\n type=\"button\"\n [class]=\"model.cssClasses.clearButton\"\n [title]=\"model.clearButtonCaption\"\n (click)=\"model.clearValue(true)\"\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<ng-container *ngIf=\"model.showLoadingIndicator\">\n <div [class]=\"model.cssClasses.loadingIndicator\">\n <sv-ng-loading-indicator></sv-ng-loading-indicator>\n </div>\n</ng-container>\n</div>", components: [{ type: SurveyStringComponent, selector: "sv-ng-string, '[sv-ng-string]'", inputs: ["model"] }, { type: SvgIconComponent, selector: "'[sv-ng-svg-icon]'", inputs: ["size", "width", "height", "iconName", "partCss", "css", "title"] }, { type: LoadingIndicatorComponent, selector: "sv-ng-loading-indicator" }], directives: [{ type: VisibleDirective, selector: "[visible]", inputs: ["visible"] }, { type: i2__namespace.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
4082
+ 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.width]=\"model.renderedCanvasWidth\" #contentElement>\n<div [class]=\"model.cssClasses.placeholder\" [visible]=\"model.needShowPlaceholder()\" [model]=\"$any(model).locRenderedPlaceholder\" sv-ng-string></div>\n<div>\n <img *ngIf=\"!!model.backgroundImage\" [src]=\"model.backgroundImage\" [style.width]=\"model.renderedCanvasWidth\" [class]=\"model.cssClasses.backgroundImage\" role=\"presentation\">\n <canvas tabindex=\"-1\" [class]=\"model.cssClasses.canvas\" (blur)=\"model.onBlur($event)\"></canvas>\n</div>\n<div [class]=\"model.cssClasses.controls\" *ngIf=\"model.canShowClearButton\">\n <button\n type=\"button\"\n [class]=\"model.cssClasses.clearButton\"\n [title]=\"model.clearButtonCaption\"\n (click)=\"model.clearValue(true)\"\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<ng-container *ngIf=\"model.showLoadingIndicator\">\n <div [class]=\"model.cssClasses.loadingIndicator\">\n <sv-ng-loading-indicator></sv-ng-loading-indicator>\n </div>\n</ng-container>\n</div>", components: [{ type: SurveyStringComponent, selector: "sv-ng-string, '[sv-ng-string]'", inputs: ["model"] }, { type: SvgIconComponent, selector: "'[sv-ng-svg-icon]'", inputs: ["size", "width", "height", "iconName", "partCss", "css", "title"] }, { type: LoadingIndicatorComponent, selector: "sv-ng-loading-indicator" }], directives: [{ type: VisibleDirective, selector: "[visible]", inputs: ["visible"] }, { type: i2__namespace.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
4017
4083
  i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0__namespace, type: SignaturePadQuestionComponent, decorators: [{
4018
4084
  type: i0.Component,
4019
4085
  args: [{
@@ -4066,7 +4132,7 @@
4066
4132
  return MultipleTextItemComponent;
4067
4133
  }(BaseAngular));
4068
4134
  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 });
4069
- 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()\" [style]=\"{ minWidth: question.itemTitleWidth, width: question.itemTitleWidth }\">\n <span *ngIf=\" item.editor.isRequireTextBeforeTitle || item.editor.isRequireTextOnStart\"\n [class]=\"question.cssClasses.requiredMark\">{{ item.editor.requiredMark }}</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.requiredMark\" aria-hidden=\"true\">{{\n item.editor.requiredMark }}</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"] }] });
4135
+ 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()\" [style]=\"{ minWidth: question.itemTitleWidth, width: question.itemTitleWidth }\">\n <span *ngIf=\" item.editor.isRequireTextBeforeTitle || item.editor.isRequireTextOnStart\"\n [class]=\"question.cssClasses.requiredMark\">{{ item.editor.requiredMark }}</span>\n <span *ngIf=\"item.editor.isRequireTextBeforeTitle || item.editor.isRequireTextOnStart\">&nbsp;</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.requiredMark\" aria-hidden=\"true\">{{\n item.editor.requiredMark }}</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"] }] });
4070
4136
  i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0__namespace, type: MultipleTextItemComponent, decorators: [{
4071
4137
  type: i0.Component,
4072
4138
  args: [{
@@ -4180,7 +4246,7 @@
4180
4246
  return RankingItemComponent;
4181
4247
  }(BaseAngular));
4182
4248
  RankingItemComponent.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0__namespace, type: RankingItemComponent, deps: null, target: i0__namespace.ɵɵFactoryTarget.Component });
4183
- RankingItemComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: RankingItemComponent, selector: "sv-ng-ranking-item", inputs: { question: "question", model: "model", index: "index", unrankedItem: "unrankedItem" }, usesInheritance: true, ngImport: i0__namespace, template: "\n\n\n<div [attr.tabindex]=\"question.getItemTabIndex(model)\" [attr.data-sv-drop-target-ranking-item]=\"index\" \n [class]=\"question.getItemClass(model)\"\n (keydown)=\"question.handleKeydown($event, model)\"\n (pointerdown)=\"question.handlePointerDown($event, model, $any($event.currentTarget))\"\n (pointerup)=\"question.handlePointerUp($event, model, $any($event.currentTarget))\">\n <div tabindex=\"-1\" style=\"outline: none;\">\n <div [class]=\"question.cssClasses.itemGhostNode\"></div>\n <div [class]=\"question.cssClasses.itemContent\">\n <div [class]=\"question.cssClasses.itemIconContainer\">\n <svg [class]=\"question.getIconHoverCss()\">\n <use [attr.xlink:href]=\"question.dragDropSvgIcon\"></use>\n </svg> \n <svg [class]=\"question.getIconFocusCss()\">\n <use [attr.xlink:href]=\"question.arrowsSvgIcon\"></use>\n </svg> \n </div>\n\n <div *ngIf=\"!unrankedItem && question.getNumberByIndex(index); else elseBlock\" [class]=\"question.getItemIndexClasses(model)\">{{ question.getNumberByIndex(index) }}</div>\n <ng-template #elseBlock><div [class]=\"question.getItemIndexClasses(model)\">\n <svg>\n <use [attr.xlink:href]=\"question.dashSvgIcon\"></use>\n </svg> \n </div></ng-template>\n\n <ng-template [component]=\"{ name: question.itemComponent, data: { item: model, cssClasses: question.cssClasses } }\"></ng-template>\n </div>\n </div>\n</div>", directives: [{ type: i2__namespace.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: DynamicComponentDirective, selector: "[component]", inputs: ["component"] }] });
4249
+ RankingItemComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: RankingItemComponent, selector: "sv-ng-ranking-item", inputs: { question: "question", model: "model", index: "index", unrankedItem: "unrankedItem" }, usesInheritance: true, ngImport: i0__namespace, template: "<div [id]=\"question.getItemId(model)\" [attr.tabindex]=\"question.getItemTabIndex(model)\" [attr.data-sv-drop-target-ranking-item]=\"index\" \n [class]=\"question.getItemClass(model)\"\n (keydown)=\"question.handleKeydown($event, model)\"\n (pointerdown)=\"question.handlePointerDown($event, model, $any($event.currentTarget))\"\n (pointerup)=\"question.handlePointerUp($event, model, $any($event.currentTarget))\">\n <div tabindex=\"-1\" style=\"outline: none;\">\n <div [class]=\"question.cssClasses.itemGhostNode\"></div>\n <div [class]=\"question.cssClasses.itemContent\">\n <div [class]=\"question.cssClasses.itemIconContainer\">\n <svg [class]=\"question.getIconHoverCss()\">\n <use [attr.xlink:href]=\"question.dragDropSvgIcon\"></use>\n </svg> \n <svg [class]=\"question.getIconFocusCss()\">\n <use [attr.xlink:href]=\"question.arrowsSvgIcon\"></use>\n </svg> \n </div>\n\n <div *ngIf=\"!unrankedItem && question.getNumberByIndex(index); else elseBlock\" [class]=\"question.getItemIndexClasses(model)\">{{ question.getNumberByIndex(index) }}</div>\n <ng-template #elseBlock><div [class]=\"question.getItemIndexClasses(model)\">\n <svg>\n <use [attr.xlink:href]=\"question.dashSvgIcon\"></use>\n </svg> \n </div></ng-template>\n\n <ng-template [component]=\"{ name: question.itemComponent, data: { item: model, cssClasses: question.cssClasses } }\"></ng-template>\n </div>\n </div>\n</div>", directives: [{ type: i2__namespace.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: DynamicComponentDirective, selector: "[component]", inputs: ["component"] }] });
4184
4250
  i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0__namespace, type: RankingItemComponent, decorators: [{
4185
4251
  type: i0.Component,
4186
4252
  args: [{
@@ -4378,6 +4444,24 @@
4378
4444
  }] });
4379
4445
  AngularComponentFactory.Instance.registerComponent("sv-paneldynamic-progress-text", PanelDynamicProgressText);
4380
4446
 
4447
+ var PanelDynamicPlaceholderComponent = /** @class */ (function () {
4448
+ function PanelDynamicPlaceholderComponent() {
4449
+ }
4450
+ return PanelDynamicPlaceholderComponent;
4451
+ }());
4452
+ PanelDynamicPlaceholderComponent.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0__namespace, type: PanelDynamicPlaceholderComponent, deps: [], target: i0__namespace.ɵɵFactoryTarget.Component });
4453
+ PanelDynamicPlaceholderComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: PanelDynamicPlaceholderComponent, selector: "sv-ng-placeholder-paneldynamic", inputs: { question: "question" }, ngImport: i0__namespace, template: "<div *ngIf=\"question.getShowNoEntriesPlaceholder()\" [class]=\"question.cssClasses.noEntriesPlaceholder\">\n <span>\n <sv-ng-string [model]=\"question.locNoEntriesText\"></sv-ng-string>\n </span>\n <sv-ng-paneldynamic-add-btn *ngIf=\"question.canAddPanel\" [data]=\"{ question }\"></sv-ng-paneldynamic-add-btn>\n</div> ", components: [{ type: SurveyStringComponent, selector: "sv-ng-string, '[sv-ng-string]'", inputs: ["model"] }, { type: PanelDynamicAddBtn, selector: "sv-ng-paneldynamic-add-btn" }], directives: [{ type: i2__namespace.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
4454
+ i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0__namespace, type: PanelDynamicPlaceholderComponent, decorators: [{
4455
+ type: i0.Component,
4456
+ args: [{
4457
+ selector: "sv-ng-placeholder-paneldynamic",
4458
+ templateUrl: "./paneldynamicplaceholder.component.html"
4459
+ }]
4460
+ }], propDecorators: { question: [{
4461
+ type: i0.Input
4462
+ }] } });
4463
+ AngularComponentFactory.Instance.registerComponent("sv-ng-placeholder-paneldynamic", PanelDynamicPlaceholderComponent);
4464
+
4381
4465
  var PanelDynamicQuestionComponent = /** @class */ (function (_super) {
4382
4466
  __extends(PanelDynamicQuestionComponent, _super);
4383
4467
  function PanelDynamicQuestionComponent() {
@@ -4441,7 +4525,7 @@
4441
4525
  return PanelDynamicQuestionComponent;
4442
4526
  }(QuestionAngular));
4443
4527
  PanelDynamicQuestionComponent.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0__namespace, type: PanelDynamicQuestionComponent, deps: null, target: i0__namespace.ɵɵFactoryTarget.Component });
4444
- PanelDynamicQuestionComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: PanelDynamicQuestionComponent, selector: "sv-ng-paneldynamic-question", usesInheritance: true, ngImport: i0__namespace, template: "<div [class]=\"model.cssClasses.root\" #contentElement>\n <div *ngIf=\"model.hasTabbedMenu\" [class]=\"model.getTabsContainerCss()\">\n <sv-action-bar [model]=\"model.tabbedMenu\"></sv-action-bar>\n </div>\n <div *ngIf=\"model.getShowNoEntriesPlaceholder()\" [class]=\"model.cssClasses.noEntriesPlaceholder\">\n <span [model]=\"model.locNoEntriesText\" sv-ng-string></span>\n <sv-ng-paneldynamic-add-btn *ngIf=\"model.canAddPanel\" [data]=\"{ question: model }\"></sv-ng-paneldynamic-add-btn>\n </div>\n <div [class]=\"model.cssClasses.progress\" *ngIf=\"model.isProgressTopShowing && model.isRangeShowing\">\n <div [class]=\"model.cssClasses.progressBar\" [style]=\"{ width: model.progress }\" role=\"progressbar\"></div>\n </div>\n <div [class]=\"model.cssClasses.panelsContainer\">\n <ng-container *ngFor=\"let panel of model.renderedPanels; index as index; trackBy: trackPanelBy\">\n <div [class]=\"model.getPanelWrapperCss(panel)\">\n <ng-template\n [component]=\"{ name: getPanelComponentName(panel), data: getPanelComponentData(panel) }\"></ng-template>\n <ng-container *ngIf=\"model.canRenderRemovePanelOnRight(panel)\">\n <ng-template\n [component]=\"{ name: 'sv-paneldynamic-remove-btn', data: { data: { panel, question: model }}}\"></ng-template>\n </ng-container>\n </div>\n <hr [class]=\"model.cssClasses.separator\" *ngIf=\"model.showSeparator(index)\" />\n </ng-container>\n </div>\n <sv-ng-paneldynamic-add-btn *ngIf=\"model.showLegacyNavigation && model.isRenderModeList\"\n [data]=\"{ question: model }\"></sv-ng-paneldynamic-add-btn>\n <ng-container [ngTemplateOutlet]=\"progressV2\" *ngIf=\"model.showNavigation\"></ng-container>\n</div>\n<ng-template #progressV2>\n <div [class]=\"model.cssClasses.footer\" *ngIf=\"!!model.cssClasses.footer\">\n <hr [class]=\"model.cssClasses.separator\" />\n <div [class]=\"model.cssClasses.progress\" *ngIf=\"model.isRangeShowing && model.isProgressBottomShowing\">\n <div [class]=\"model.cssClasses.progressBar\" [style]=\"{ width: model.progress }\" role=\"progressbar\"></div>\n </div>\n <div *ngIf=\"model.footerToolbar.visibleActions.length\" [class]=\"model.cssClasses.footerButtonsContainer\">\n <sv-ng-action-bar [model]=\"model.footerToolbar\"></sv-ng-action-bar>\n </div>\n </div>\n</ng-template>", components: [{ type: ActionBarComponent, selector: "sv-action-bar, sv-ng-action-bar", inputs: ["model", "handleClick"] }, { type: SurveyStringComponent, selector: "sv-ng-string, '[sv-ng-string]'", inputs: ["model"] }, { type: PanelDynamicAddBtn, selector: "sv-ng-paneldynamic-add-btn" }], 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"] }, { type: i2__namespace.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }] });
4528
+ PanelDynamicQuestionComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: PanelDynamicQuestionComponent, selector: "sv-ng-paneldynamic-question", usesInheritance: true, ngImport: i0__namespace, template: "<div [class]=\"model.cssClasses.root\" #contentElement>\n <div *ngIf=\"model.hasTabbedMenu\" [class]=\"model.getTabsContainerCss()\">\n <sv-action-bar [model]=\"model.tabbedMenu\"></sv-action-bar>\n </div>\n <sv-ng-placeholder-paneldynamic [question]=\"model\"></sv-ng-placeholder-paneldynamic>\n <div [class]=\"model.cssClasses.progress\" *ngIf=\"model.isProgressTopShowing && model.isRangeShowing\">\n <div [class]=\"model.cssClasses.progressBar\" [style]=\"{ width: model.progress }\" role=\"progressbar\"></div>\n </div>\n <div [class]=\"model.cssClasses.panelsContainer\">\n <ng-container *ngFor=\"let panel of model.renderedPanels; index as index; trackBy: trackPanelBy\">\n <div [class]=\"model.getPanelWrapperCss(panel)\">\n <ng-template\n [component]=\"{ name: getPanelComponentName(panel), data: getPanelComponentData(panel) }\"></ng-template>\n <ng-container *ngIf=\"model.canRenderRemovePanelOnRight(panel)\">\n <ng-template\n [component]=\"{ name: 'sv-paneldynamic-remove-btn', data: { data: { panel, question: model }}}\"></ng-template>\n </ng-container>\n </div>\n <hr [class]=\"model.cssClasses.separator\" *ngIf=\"model.showSeparator(index)\" />\n </ng-container>\n </div>\n <sv-ng-paneldynamic-add-btn *ngIf=\"model.showLegacyNavigation && model.isRenderModeList\"\n [data]=\"{ question: model }\"></sv-ng-paneldynamic-add-btn>\n <ng-container [ngTemplateOutlet]=\"progressV2\" *ngIf=\"model.showNavigation\"></ng-container>\n</div>\n<ng-template #progressV2>\n <div [class]=\"model.cssClasses.footer\" *ngIf=\"!!model.cssClasses.footer\">\n <hr [class]=\"model.cssClasses.separator\" />\n <div [class]=\"model.cssClasses.progress\" *ngIf=\"model.isRangeShowing && model.isProgressBottomShowing\">\n <div [class]=\"model.cssClasses.progressBar\" [style]=\"{ width: model.progress }\" role=\"progressbar\"></div>\n </div>\n <div *ngIf=\"model.footerToolbar.visibleActions.length\" [class]=\"model.cssClasses.footerButtonsContainer\">\n <sv-ng-action-bar [model]=\"model.footerToolbar\"></sv-ng-action-bar>\n </div>\n </div>\n</ng-template>", components: [{ type: ActionBarComponent, selector: "sv-action-bar, sv-ng-action-bar", inputs: ["model", "handleClick"] }, { type: PanelDynamicPlaceholderComponent, selector: "sv-ng-placeholder-paneldynamic", inputs: ["question"] }, { type: PanelDynamicAddBtn, selector: "sv-ng-paneldynamic-add-btn" }], 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"] }, { type: i2__namespace.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }] });
4445
4529
  i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0__namespace, type: PanelDynamicQuestionComponent, decorators: [{
4446
4530
  type: i0.Component,
4447
4531
  args: [{
@@ -4870,6 +4954,27 @@
4870
4954
  }] });
4871
4955
  AngularComponentFactory.Instance.registerComponent("matrixdropdown-question", MatrixDropdownComponent);
4872
4956
 
4957
+ var MatrixDynamicPlaceholderComponent = /** @class */ (function () {
4958
+ function MatrixDynamicPlaceholderComponent() {
4959
+ }
4960
+ MatrixDynamicPlaceholderComponent.prototype.addRowClick = function () {
4961
+ this.question.addRowUI();
4962
+ };
4963
+ return MatrixDynamicPlaceholderComponent;
4964
+ }());
4965
+ MatrixDynamicPlaceholderComponent.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0__namespace, type: MatrixDynamicPlaceholderComponent, deps: [], target: i0__namespace.ɵɵFactoryTarget.Component });
4966
+ MatrixDynamicPlaceholderComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: MatrixDynamicPlaceholderComponent, selector: "sv-ng-placeholder-matrixdynamic", inputs: { question: "question" }, ngImport: i0__namespace, template: "<div [class]=\"question.cssClasses.noRowsSection\">\n <div [class]=\"question.cssClasses.noRowsText\">\n <sv-ng-string [model]=\"question.locNoRowsText\"></sv-ng-string>\n </div>\n <button\n *ngIf=\"question.renderedTable.showAddRow\"\n type=\"button\"\n [class]=\"question.getAddRowButtonCss(true)\"\n (click)=\"addRowClick()\"\n >\n <sv-ng-string [model]=\"question.locAddRowText\"></sv-ng-string>\n <span [class]=\"question.cssClasses.iconAdd\"></span>\n </button>\n</div> ", components: [{ type: SurveyStringComponent, selector: "sv-ng-string, '[sv-ng-string]'", inputs: ["model"] }], directives: [{ type: i2__namespace.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
4967
+ i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0__namespace, type: MatrixDynamicPlaceholderComponent, decorators: [{
4968
+ type: i0.Component,
4969
+ args: [{
4970
+ selector: "sv-ng-placeholder-matrixdynamic",
4971
+ templateUrl: "./matrixdynamicplaceholder.component.html"
4972
+ }]
4973
+ }], propDecorators: { question: [{
4974
+ type: i0.Input
4975
+ }] } });
4976
+ AngularComponentFactory.Instance.registerComponent("sv-ng-placeholder-matrixdynamic", MatrixDynamicPlaceholderComponent);
4977
+
4873
4978
  var MatrixDynamicComponent = /** @class */ (function (_super) {
4874
4979
  __extends(MatrixDynamicComponent, _super);
4875
4980
  function MatrixDynamicComponent() {
@@ -4878,7 +4983,7 @@
4878
4983
  return MatrixDynamicComponent;
4879
4984
  }(QuestionAngular));
4880
4985
  MatrixDynamicComponent.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0__namespace, type: MatrixDynamicComponent, deps: null, target: i0__namespace.ɵɵFactoryTarget.Component });
4881
- MatrixDynamicComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: MatrixDynamicComponent, selector: "sv-ng-matrixdynamic-question", usesInheritance: true, ngImport: i0__namespace, template: "<ng-template #template>\n <div #contentElement>\n <div *ngIf=\"model.renderedTable.showAddRowOnTop\" [class]=\"model.cssClasses.footer\">\n <ng-container *ngTemplateOutlet=\"addRowButton\"></ng-container>\n </div>\n <sv-ng-matrix-table *ngIf=\"model.renderedTable?.showTable\" [question]=\"model\" [table]=\"model.renderedTable\"></sv-ng-matrix-table>\n <div *ngIf=\"!model.renderedTable.showTable\" [class]=\"model.cssClasses.noRowsSection\">\n <div [class]=\"model.cssClasses.noRowsText\" [model]=\"model.locNoRowsText\" sv-ng-string></div>\n <ng-container *ngIf=\"model.renderedTable.showAddRow\">\n <ng-container *ngTemplateOutlet=\"addRowButton\"></ng-container>\n </ng-container>\n </div>\n <div *ngIf=\"model.renderedTable.showAddRowOnBottom\" [class]=\"model.cssClasses.footer\">\n <ng-container *ngTemplateOutlet=\"addRowButton\"></ng-container>\n </div>\n </div>\n <ng-template #addRowButton>\n <button type=\"button\" [class]=\"model.getAddRowButtonCss(true)\" (click)=\"model.addRowUI()\">\n <sv-ng-string [model]=\"model.locAddRowText\" ></sv-ng-string>\n <span [class]=\"model.cssClasses.iconAdd\"></span>\n </button>\n </ng-template>\n</ng-template>", components: [{ type: MatrixTableComponent, selector: "sv-ng-matrix-table", inputs: ["question", "table"] }, { type: SurveyStringComponent, selector: "sv-ng-string, '[sv-ng-string]'", inputs: ["model"] }], directives: [{ type: i2__namespace.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i2__namespace.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }] });
4986
+ MatrixDynamicComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: MatrixDynamicComponent, selector: "sv-ng-matrixdynamic-question", usesInheritance: true, ngImport: i0__namespace, template: "<ng-template #template>\n <div #contentElement>\n <div *ngIf=\"model.renderedTable.showAddRowOnTop\" [class]=\"model.cssClasses.footer\">\n <ng-container *ngTemplateOutlet=\"addRowButton\"></ng-container>\n </div>\n <sv-ng-matrix-table *ngIf=\"model.renderedTable?.showTable\" [question]=\"model\" [table]=\"model.renderedTable\"></sv-ng-matrix-table>\n <sv-ng-placeholder-matrixdynamic *ngIf=\"!model.renderedTable.showTable\" [question]=\"model\"></sv-ng-placeholder-matrixdynamic>\n \n <div *ngIf=\"model.renderedTable.showAddRowOnBottom\" [class]=\"model.cssClasses.footer\">\n <ng-container *ngTemplateOutlet=\"addRowButton\"></ng-container>\n </div>\n </div>\n <ng-template #addRowButton>\n <button type=\"button\" [class]=\"model.getAddRowButtonCss(true)\" (click)=\"model.addRowUI()\">\n <sv-ng-string [model]=\"model.locAddRowText\" ></sv-ng-string>\n <span [class]=\"model.cssClasses.iconAdd\"></span>\n </button>\n </ng-template>\n</ng-template>", components: [{ type: MatrixTableComponent, selector: "sv-ng-matrix-table", inputs: ["question", "table"] }, { type: MatrixDynamicPlaceholderComponent, selector: "sv-ng-placeholder-matrixdynamic", 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: i2__namespace.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }] });
4882
4987
  i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0__namespace, type: MatrixDynamicComponent, decorators: [{
4883
4988
  type: i0.Component,
4884
4989
  args: [{
@@ -5207,7 +5312,8 @@
5207
5312
  MatrixCellComponent, MatrixDropdownCellComponent, MatrixTableComponent, MatrixDropdownComponent,
5208
5313
  MatrixDynamicComponent, MatrixDetailButtonComponent, MatrixDynamicRemoveButtonComponent, MatrixDynamicDragDropIconComponent, MatrixRequiredHeader, ExpressionComponent, SafeResourceUrlPipe, BrandInfoComponent, QuestionErrorComponent,
5209
5314
  CustomQuestionComponent, CompositeQuestionComponent, ButtonGroupItemComponent, ButtonGroupQuestionComponent, MatrixRowComponent, ModalComponent, LogoImageComponent, SkeletonComponent, TimerPanelComponent, PaneldynamicRemoveButtonComponent,
5210
- NotifierComponent, ComponentsContainerComponent, MultipleTextRowComponent, LoadingIndicatorComponent, HeaderComponent, HeaderCellComponent, HeaderMobileComponent, ChooseFileBtn, FilePreviewComponent, SvgBundleComponent, FileItemComponent, FilePageComponent], imports: [i2.CommonModule, i2$1.FormsModule], exports: [VisibleDirective, Key2ClickDirective, PanelDynamicAddBtn, PanelDynamicNextBtn, PanelDynamicPrevBtn, PanelDynamicProgressText, ElementComponent, TemplateRendererComponent,
5315
+ NotifierComponent, ComponentsContainerComponent, MultipleTextRowComponent, LoadingIndicatorComponent, HeaderComponent, HeaderCellComponent, HeaderMobileComponent, ChooseFileBtn, FilePreviewComponent, SvgBundleComponent, FileItemComponent, FilePageComponent,
5316
+ BreadcrumbsComponent, SingleInputSummaryComponent, MatrixDynamicPlaceholderComponent, PanelDynamicPlaceholderComponent], imports: [i2.CommonModule, i2$1.FormsModule], exports: [VisibleDirective, Key2ClickDirective, PanelDynamicAddBtn, PanelDynamicNextBtn, PanelDynamicPrevBtn, PanelDynamicProgressText, ElementComponent, TemplateRendererComponent,
5211
5317
  SurveyComponent, SurveyContentComponent, PopupSurveyComponent, PageComponent, PanelComponent, QuestionComponent, StringViewerComponent, SurveyStringComponent, StringEditorComponent,
5212
5318
  TextAreaComponent,
5213
5319
  QuestionSkeletonComponent, ScrollComponent, TextQuestionComponent, RadiogroupComponent, RadiogroupItemComponent, CheckboxComponent, CheckboxItemComponent,
@@ -5224,7 +5330,8 @@
5224
5330
  MatrixCellComponent, MatrixDropdownCellComponent, MatrixTableComponent, MatrixDropdownComponent,
5225
5331
  MatrixDynamicComponent, MatrixDetailButtonComponent, MatrixDynamicRemoveButtonComponent, MatrixDynamicDragDropIconComponent, MatrixRequiredHeader, ExpressionComponent, SafeResourceUrlPipe,
5226
5332
  CustomQuestionComponent, CompositeQuestionComponent, ButtonGroupQuestionComponent, ModalComponent, LogoImageComponent, SkeletonComponent, TimerPanelComponent, PaneldynamicRemoveButtonComponent,
5227
- NotifierComponent, ComponentsContainerComponent, MultipleTextRowComponent, LoadingIndicatorComponent, HeaderComponent, HeaderCellComponent, HeaderMobileComponent, FilePreviewComponent, SvgBundleComponent, FileItemComponent, FilePageComponent] });
5333
+ NotifierComponent, ComponentsContainerComponent, MultipleTextRowComponent, LoadingIndicatorComponent, HeaderComponent, HeaderCellComponent, HeaderMobileComponent, FilePreviewComponent, SvgBundleComponent, FileItemComponent, FilePageComponent,
5334
+ BreadcrumbsComponent, SingleInputSummaryComponent, MatrixDynamicPlaceholderComponent, PanelDynamicPlaceholderComponent] });
5228
5335
  SurveyModule.ɵinj = i0__namespace.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0__namespace, type: SurveyModule, providers: [PopupService], imports: [[
5229
5336
  i2.CommonModule, i2$1.FormsModule
5230
5337
  ]] });
@@ -5248,7 +5355,8 @@
5248
5355
  MatrixCellComponent, MatrixDropdownCellComponent, MatrixTableComponent, MatrixDropdownComponent,
5249
5356
  MatrixDynamicComponent, MatrixDetailButtonComponent, MatrixDynamicRemoveButtonComponent, MatrixDynamicDragDropIconComponent, MatrixRequiredHeader, ExpressionComponent, SafeResourceUrlPipe, BrandInfoComponent, QuestionErrorComponent,
5250
5357
  CustomQuestionComponent, CompositeQuestionComponent, ButtonGroupItemComponent, ButtonGroupQuestionComponent, MatrixRowComponent, ModalComponent, LogoImageComponent, SkeletonComponent, TimerPanelComponent, PaneldynamicRemoveButtonComponent,
5251
- NotifierComponent, ComponentsContainerComponent, MultipleTextRowComponent, LoadingIndicatorComponent, HeaderComponent, HeaderCellComponent, HeaderMobileComponent, ChooseFileBtn, FilePreviewComponent, SvgBundleComponent, FileItemComponent, FilePageComponent
5358
+ NotifierComponent, ComponentsContainerComponent, MultipleTextRowComponent, LoadingIndicatorComponent, HeaderComponent, HeaderCellComponent, HeaderMobileComponent, ChooseFileBtn, FilePreviewComponent, SvgBundleComponent, FileItemComponent, FilePageComponent,
5359
+ BreadcrumbsComponent, SingleInputSummaryComponent, MatrixDynamicPlaceholderComponent, PanelDynamicPlaceholderComponent
5252
5360
  ],
5253
5361
  imports: [
5254
5362
  i2.CommonModule, i2$1.FormsModule
@@ -5271,7 +5379,8 @@
5271
5379
  MatrixCellComponent, MatrixDropdownCellComponent, MatrixTableComponent, MatrixDropdownComponent,
5272
5380
  MatrixDynamicComponent, MatrixDetailButtonComponent, MatrixDynamicRemoveButtonComponent, MatrixDynamicDragDropIconComponent, MatrixRequiredHeader, ExpressionComponent, SafeResourceUrlPipe,
5273
5381
  CustomQuestionComponent, CompositeQuestionComponent, ButtonGroupQuestionComponent, ModalComponent, LogoImageComponent, SkeletonComponent, TimerPanelComponent, PaneldynamicRemoveButtonComponent,
5274
- NotifierComponent, ComponentsContainerComponent, MultipleTextRowComponent, LoadingIndicatorComponent, HeaderComponent, HeaderCellComponent, HeaderMobileComponent, FilePreviewComponent, SvgBundleComponent, FileItemComponent, FilePageComponent
5382
+ NotifierComponent, ComponentsContainerComponent, MultipleTextRowComponent, LoadingIndicatorComponent, HeaderComponent, HeaderCellComponent, HeaderMobileComponent, FilePreviewComponent, SvgBundleComponent, FileItemComponent, FilePageComponent,
5383
+ BreadcrumbsComponent, SingleInputSummaryComponent, MatrixDynamicPlaceholderComponent, PanelDynamicPlaceholderComponent
5275
5384
  ],
5276
5385
  providers: [PopupService],
5277
5386
  }]
@@ -5292,6 +5401,7 @@
5292
5401
  exports.BooleanRadioComponent = BooleanRadioComponent;
5293
5402
  exports.BooleanRadioItemComponent = BooleanRadioItemComponent;
5294
5403
  exports.BrandInfoComponent = BrandInfoComponent;
5404
+ exports.BreadcrumbsComponent = BreadcrumbsComponent;
5295
5405
  exports.ButtonGroupQuestionComponent = ButtonGroupQuestionComponent;
5296
5406
  exports.CharacterCounterComponent = CharacterCounterComponent;
5297
5407
  exports.CheckboxComponent = CheckboxComponent;
@@ -5337,6 +5447,7 @@
5337
5447
  exports.MatrixDropdownComponent = MatrixDropdownComponent;
5338
5448
  exports.MatrixDynamicComponent = MatrixDynamicComponent;
5339
5449
  exports.MatrixDynamicDragDropIconComponent = MatrixDynamicDragDropIconComponent;
5450
+ exports.MatrixDynamicPlaceholderComponent = MatrixDynamicPlaceholderComponent;
5340
5451
  exports.MatrixDynamicRemoveButtonComponent = MatrixDynamicRemoveButtonComponent;
5341
5452
  exports.MatrixQuestionComponent = MatrixQuestionComponent;
5342
5453
  exports.MatrixRequiredHeader = MatrixRequiredHeader;
@@ -5350,6 +5461,7 @@
5350
5461
  exports.PanelComponent = PanelComponent;
5351
5462
  exports.PanelDynamicAddBtn = PanelDynamicAddBtn;
5352
5463
  exports.PanelDynamicNextBtn = PanelDynamicNextBtn;
5464
+ exports.PanelDynamicPlaceholderComponent = PanelDynamicPlaceholderComponent;
5353
5465
  exports.PanelDynamicPrevBtn = PanelDynamicPrevBtn;
5354
5466
  exports.PanelDynamicProgressText = PanelDynamicProgressText;
5355
5467
  exports.PanelDynamicQuestionComponent = PanelDynamicQuestionComponent;
@@ -5386,6 +5498,7 @@
5386
5498
  exports.SelectBaseComponent = SelectBaseComponent;
5387
5499
  exports.SelectBaseItemComponent = SelectBaseItemComponent;
5388
5500
  exports.SignaturePadQuestionComponent = SignaturePadQuestionComponent;
5501
+ exports.SingleInputSummaryComponent = SingleInputSummaryComponent;
5389
5502
  exports.SkeletonComponent = SkeletonComponent;
5390
5503
  exports.StringEditorComponent = StringEditorComponent;
5391
5504
  exports.StringViewerComponent = StringViewerComponent;