survey-angular-ui 1.9.75 → 1.9.77

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.
@@ -1,7 +1,7 @@
1
1
  import * as i0 from '@angular/core';
2
- import { TemplateRef, Component, ViewChild, Directive, Input, ViewContainerRef, Injectable, HostBinding, ElementRef, HostListener, Pipe, NgModule } from '@angular/core';
2
+ import { TemplateRef, Component, ViewChild, Directive, Input, ViewContainerRef, Injectable, ElementRef, HostBinding, HostListener, Pipe, NgModule } from '@angular/core';
3
3
  import * as Survey from 'survey-core';
4
- import { createPopupModalViewModel, settings, createDialogOptions, SvgRegistry, PopupSurveyModel, TooltipManager, LocalizableString, createPopupViewModel, DropdownListModel, Helpers, DropdownMultiSelectListModel, RendererFactory, ButtonGroupItemModel, doKey2ClickUp, doKey2ClickDown, doKey2ClickBlur, ActionDropdownViewModel, SurveyProgressModel, SurveyProgressButtonsModel, SurveyModel } from 'survey-core';
4
+ import { createPopupModalViewModel, settings, createDialogOptions, SvgRegistry, PopupSurveyModel, TooltipManager, LocalizableString, createPopupViewModel, DropdownListModel, Helpers, DropdownMultiSelectListModel, RendererFactory, ButtonGroupItemModel, doKey2ClickUp, doKey2ClickDown, doKey2ClickBlur, ActionDropdownViewModel, SurveyProgressModel, SurveyProgressButtonsModel, createTOCListModel, SurveyModel } from 'survey-core';
5
5
  import { DomPortalOutlet, ComponentPortal } from '@angular/cdk/portal';
6
6
  import * as i2 from '@angular/common';
7
7
  import { CommonModule } from '@angular/common';
@@ -532,101 +532,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImpo
532
532
  type: Input
533
533
  }] } });
534
534
 
535
- class SvgIconComponent {
536
- constructor(viewContaierRef) {
537
- this.viewContaierRef = viewContaierRef;
538
- }
539
- createSvg() {
540
- if (!!this.iconName) {
541
- Survey.createSvg(this.size, this.width, this.height, this.iconName, this.viewContaierRef.element.nativeElement, this.title);
542
- }
543
- }
544
- get rootClass() {
545
- let className = "sv-svg-icon";
546
- if (!this.css && !!this.partCss) {
547
- className += " " + this.partCss;
548
- }
549
- else if (!!this.css) {
550
- className = this.css;
551
- }
552
- return className;
553
- }
554
- get rootRole() {
555
- return "img";
556
- }
557
- get ariaLabel() {
558
- return this.title;
559
- }
560
- ngOnChanges() {
561
- const el = this.viewContaierRef.element.nativeElement;
562
- el.innerHTML = "";
563
- el.appendChild(document.createElementNS("http://www.w3.org/2000/svg", "use"));
564
- this.createSvg();
565
- }
566
- }
567
- SvgIconComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: SvgIconComponent, deps: [{ token: i0.ViewContainerRef }], target: i0.ɵɵFactoryTarget.Component });
568
- SvgIconComponent.ɵcmp = i0.ɵɵ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", "[attr.aria-label]": "this.ariaLabel" } }, usesOnChanges: true, ngImport: i0, template: "", isInline: true });
569
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: SvgIconComponent, decorators: [{
570
- type: Component,
571
- args: [{
572
- selector: "'[sv-ng-svg-icon]'",
573
- template: ""
574
- }]
575
- }], ctorParameters: function () { return [{ type: i0.ViewContainerRef }]; }, propDecorators: { size: [{
576
- type: Input
577
- }], width: [{
578
- type: Input
579
- }], height: [{
580
- type: Input
581
- }], iconName: [{
582
- type: Input
583
- }], partCss: [{
584
- type: Input
585
- }], css: [{
586
- type: Input
587
- }], title: [{
588
- type: Input
589
- }], rootClass: [{
590
- type: HostBinding,
591
- args: ["class"]
592
- }], rootRole: [{
593
- type: HostBinding,
594
- args: ["[attr.role]"]
595
- }], ariaLabel: [{
596
- type: HostBinding,
597
- args: ["[attr.aria-label]"]
598
- }] } });
599
-
600
- class TimerPanelComponent extends BaseAngular {
601
- constructor() {
602
- super(...arguments);
603
- this.circleLengthValue = 440;
604
- }
605
- getStateElement() {
606
- return this.model;
607
- }
608
- getModel() {
609
- return this.model;
610
- }
611
- get circleLength() {
612
- return this.circleLengthValue;
613
- }
614
- get progress() {
615
- return -this.model.progress * this.circleLength;
616
- }
617
- }
618
- TimerPanelComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: TimerPanelComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
619
- TimerPanelComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: TimerPanelComponent, selector: "sv-timer-panel", inputs: { model: "model" }, usesInheritance: true, ngImport: i0, template: "<div *ngIf=\"model.showTimerAsClock\" [class]=\"model.rootCss\">\n <svg *ngIf=\"model.showProgress\" [class]=\"model.getProgressCss()\" [style.stroke-dasharray]=\"circleLength\" [style.stroke-dashoffset]=\"progress\" [size]=\"'auto'\" [iconName]=\"'icon-timercircle'\" sv-ng-svg-icon></svg>\n <div [class]=\"model.textContainerCss\">\n <span [class]=\"model.majorTextCss\">{{ model.clockMajorText }}</span>\n <span *ngIf=\"model.clockMinorText\" [class]=\"model.minorTextCss\">{{ model.clockMinorText }}</span>\n </div>\n</div>\n<div *ngIf=\"!model.showTimerAsClock\" [class]='model.survey.getCss().timerRoot'>{{model.text}}</div>", components: [{ type: SvgIconComponent, selector: "'[sv-ng-svg-icon]'", inputs: ["size", "width", "height", "iconName", "partCss", "css", "title"] }], directives: [{ type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
620
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: TimerPanelComponent, decorators: [{
621
- type: Component,
622
- args: [{
623
- selector: "sv-timer-panel",
624
- templateUrl: "./timer-panel.component.html",
625
- }]
626
- }], propDecorators: { model: [{
627
- type: Input
628
- }] } });
629
-
630
535
  class ElementComponent extends BaseAngular {
631
536
  getModel() {
632
537
  return this.model;
@@ -847,7 +752,7 @@ class SurveyContentComponent extends BaseAngular {
847
752
  }
848
753
  }
849
754
  SurveyContentComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: SurveyContentComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
850
- SurveyContentComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: SurveyContentComponent, selector: "survey-content", inputs: { model: "model" }, viewQueries: [{ propertyName: "rootEl", first: true, predicate: ["surveyContainer"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<ng-template #template>\n <div #surveyContainer *ngIf=\"!!model\" [class]=\"model.getRootCss()\">\n <form onsubmit=\"return false;\">\n <div class=\"sv_custom_header\" [hidden]=\"model.hasLogo\"></div>\n <div [class]=\"model.css.container\">\n <div *ngIf=\"model.renderedHasHeader\" [class]=\"model.css.header\" [survey]=\"model\" sv-ng-survey-header></div>\n <ng-container *ngIf=\"model.isTimerPanelShowingOnTop && !model.isShowStartingPage\">\n <sv-timer-panel [model]=\"model.timerModel\"></sv-timer-panel>\n </ng-container>\n <ng-container *ngIf=\"model.isShowProgressBarOnTop && !model.isShowStartingPage\">\n <ng-template [component]='{ name: \"sv-progress-\" + this.model.progressBarType, data: { model } }'></ng-template>\n </ng-container>\n <div *ngIf=\"model.isShowingPage\" [class]=\"model.bodyCss\" [style.maxWidth]=\"model.renderedWidth\" [id]=\"model.activePage ? model.activePage.id : ''\">\n <sv-action-bar *ngIf=\"model.isNavigationButtonsShowingOnTop\" [model]=\"model.navigationBar\"></sv-action-bar>\n <!-- ko if: activePage -->\n <ng-container *ngIf=\"model.activePage\">\n <sv-ng-page [model]=\"model.activePage\" [survey]=\"model\"></sv-ng-page>\n </ng-container>\n <!-- ko if: activePage.rows.length == 0 && $data.emptyPageTemplate -->\n <!-- ko template: { name: emptyPageTemplate, data: $data.emptyPageTemplateData || $data } -->\n <!-- /ko -->\n <!-- /ko -->\n <!-- /ko -->\n <ng-container *ngIf=\"model.isShowProgressBarOnBottom && !model.isShowStartingPage\">\n <ng-template [component]='{ name: \"sv-progress-\" + this.model.progressBarType, data: { model } }'></ng-template>\n </ng-container>\n <sv-action-bar *ngIf=\"model.isNavigationButtonsShowingOnBottom\" [model]=\"model.navigationBar\"></sv-action-bar> \n </div>\n <ng-container *ngIf=\"model.isTimerPanelShowingOnBottom && !model.isShowStartingPage\">\n <sv-timer-panel [model]=\"model.timerModel\"></sv-timer-panel>\n </ng-container>\n <div *ngIf=\"model.state === 'completed' && model.showCompletedPage\" [class]=\"model.completedCss\"\n [innerHtml]=\"model.processedCompletedHtml\"></div>\n <div *ngIf=\"model.state === 'completedbefore'\" [class]=\"model.css.body\"\n [innerHtml]=\"model.processedCompletedBeforeHtml\"></div>\n <div *ngIf=\"model.state === 'loading'\" [class]=\"model.css.body\" [innerHtml]=\"model.processedLoadingHtml\"></div>\n <div *ngIf=\"model.state === 'empty'\" [class]=\"model.css.bodyEmpty\">{{model.emptySurveyText}}</div>\n </div>\n </form>\n <sv-brand-info *ngIf=\"model.showBrandInfo\"></sv-brand-info>\n <sv-notifier [notifier]=\"model.notifier\"></sv-notifier>\n </div>\n</ng-template>", components: [{ type: SurveyHeaderComponent, selector: "'[sv-ng-survey-header]'", inputs: ["survey"] }, { type: TimerPanelComponent, selector: "sv-timer-panel", inputs: ["model"] }, { type: ActionBarComponent, selector: "sv-action-bar, sv-ng-action-bar", inputs: ["model", "handleClick"] }, { type: PageComponent, selector: "page, sv-ng-page", inputs: ["model", "survey"] }, { type: BrandInfoComponent, selector: "sv-brand-info" }, { type: NotifierComponent, selector: "sv-notifier", inputs: ["notifier"] }], directives: [{ type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i3.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { type: i3.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { type: i3.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { type: DynamicComponentDirective, selector: "[component]", inputs: ["component"] }] });
755
+ SurveyContentComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: SurveyContentComponent, selector: "survey-content", inputs: { model: "model" }, viewQueries: [{ propertyName: "rootEl", first: true, predicate: ["surveyContainer"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<ng-template #template>\n <div #surveyContainer *ngIf=\"!!model\" [class]=\"model.getRootCss()\">\n <form onsubmit=\"return false;\">\n <div class=\"sv_custom_header\" [hidden]=\"model.hasLogo\"></div>\n <div [class]=\"model.css.container\">\n <div *ngIf=\"model.renderedHasHeader\" [class]=\"model.css.header\" [survey]=\"model\" sv-ng-survey-header></div>\n <ng-template [component]=\"{ name: 'sv-components-container', data: { survey: model, container: 'header', needRenderWrapper: false } }\"></ng-template>\n <div [class]=\"model.bodyContainerCss\">\n <ng-template [component]=\"{ name: 'sv-components-container', data: { survey: model, container: 'left' } }\"></ng-template>\n <div *ngIf=\"model.isShowingPage\" [class]=\"model.bodyCss\" [style.maxWidth]=\"model.renderedWidth\" [id]=\"model.activePage ? model.activePage.id : ''\">\n <ng-template [component]=\"{ name: 'sv-components-container', data: { survey: model, container: 'contentTop' } }\"></ng-template>\n <!-- ko if: activePage -->\n <ng-container *ngIf=\"model.activePage\">\n <sv-ng-page [model]=\"model.activePage\" [survey]=\"model\"></sv-ng-page>\n </ng-container>\n <!-- ko if: activePage.rows.length == 0 && $data.emptyPageTemplate -->\n <!-- ko template: { name: emptyPageTemplate, data: $data.emptyPageTemplateData || $data } -->\n <!-- /ko -->\n <!-- /ko -->\n <!-- /ko -->\n <ng-template [component]=\"{ name: 'sv-components-container', data: { survey: model, container: 'contentBottom' } }\"></ng-template>\n </div>\n <ng-template [component]=\"{ name: 'sv-components-container', data: { survey: model, container: 'right' } }\"></ng-template>\n </div>\n <ng-template [component]=\"{ name: 'sv-components-container', data: { survey: model, container: 'footer', needRenderWrapper: false } }\"></ng-template>\n <div *ngIf=\"model.state === 'completed' && model.showCompletedPage\" [class]=\"model.completedCss\"\n [innerHtml]=\"model.processedCompletedHtml\"></div>\n <div *ngIf=\"model.state === 'completedbefore'\" [class]=\"model.css.body\"\n [innerHtml]=\"model.processedCompletedBeforeHtml\"></div>\n <div *ngIf=\"model.state === 'loading'\" [class]=\"model.css.body\" [innerHtml]=\"model.processedLoadingHtml\"></div>\n <div *ngIf=\"model.state === 'empty'\" [class]=\"model.css.bodyEmpty\">{{model.emptySurveyText}}</div>\n </div>\n </form>\n <sv-brand-info *ngIf=\"model.showBrandInfo\"></sv-brand-info>\n <sv-notifier [notifier]=\"model.notifier\"></sv-notifier>\n </div>\n</ng-template>", components: [{ type: SurveyHeaderComponent, selector: "'[sv-ng-survey-header]'", inputs: ["survey"] }, { type: PageComponent, selector: "page, sv-ng-page", inputs: ["model", "survey"] }, { type: BrandInfoComponent, selector: "sv-brand-info" }, { type: NotifierComponent, selector: "sv-notifier", inputs: ["notifier"] }], directives: [{ type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i3.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { type: i3.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { type: i3.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { type: DynamicComponentDirective, selector: "[component]", inputs: ["component"] }] });
851
756
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: SurveyContentComponent, decorators: [{
852
757
  type: Component,
853
758
  args: [{
@@ -1071,7 +976,7 @@ class QuestionComponent extends EmbeddedViewContentComponent {
1071
976
  }
1072
977
  }
1073
978
  QuestionComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: QuestionComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
1074
- QuestionComponent.ɵcmp = i0.ɵɵ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, template: "<ng-template #template>\n <div *ngIf=\"!!model\" #elementContainer [class]=\"model.getRootCss()\" [style]=\"{ paddingLeft: model.paddingLeft, paddingRight: model.paddingRight }\" [id]=\"model.id\" [attr.data-name]=\"model.name\" [attr.role]=\"model.ariaRole\" [attr.aria-required]=\"model.ariaRequired\" [attr.aria-invalid]=\"model.ariaInvalid\" [attr.aria-labelledby]=\"model.ariaLabelledBy\">\n <div *ngIf=\"model.showErrorsAboveQuestion && model.hasVisibleErrors\" [element]=\"model\" sv-ng-errors></div>\n <div [element]=\"model\" *ngIf=\"model.hasTitleOnLeftTop\" sv-ng-element-header></div>\n <div [class]=\"model.cssContent\" role=\"presentation\" [visible]=\"!model.isCollapsed\">\n <div *ngIf=\"model.showErrorOnTop && model.hasVisibleErrors\" [element]=\"model\" sv-ng-errors></div>\n <ng-template [component]=\"{ name: getQuestionContentWrapperComponentName(), data: getQuestionContentWrapperComponentData(), default: 'skeleton-question' }\">\n </ng-template>\n <div *ngIf=\"model.hasComment\" [class]=\"model.getCommentAreaCss(false)\">\n <div [model]=\"model.locCommentText\" sv-ng-string></div>\n <sv-ng-comment [question]=\"model\"></sv-ng-comment>\n </div>\n <div *ngIf=\"model.showErrorOnBottom && model.hasVisibleErrors\" [element]=\"model\" sv-ng-errors></div>\n <div *ngIf=\"model.isErrorsModeTooltip && model.hasVisibleErrors\" [element]=\"model\" [location]=\"'tooltip'\" sv-ng-errors></div>\n <div *ngIf=\"model.hasDescriptionUnderInput\" [class]=\"model.cssDescription\" [model]=\"model.locDescription\" sv-ng-string></div>\n </div>\n <div [element]=\"model\" *ngIf=\"model.hasTitleOnBottom\" sv-ng-element-header></div>\n <div *ngIf=\"model.showErrorsBelowQuestion && model.hasVisibleErrors\" [element]=\"model\" sv-ng-errors></div>\n </div>\n</ng-template>", components: [{ type: ErrorsComponent, selector: "'[sv-ng-errors]'", inputs: ["element", "location"] }, { type: ElementHeaderComponent, selector: "'[sv-ng-element-header]'", inputs: ["element"] }, { type: SurveyStringComponent, selector: "sv-ng-string, '[sv-ng-string]'", inputs: ["model"] }, { type: SurveyCommentComponent, selector: "sv-ng-comment, '[sv-ng-comment]'", inputs: ["question"] }], directives: [{ type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: VisibleDirective, selector: "[visible]", inputs: ["visible"] }, { type: DynamicComponentDirective, selector: "[component]", inputs: ["component"] }] });
979
+ QuestionComponent.ɵcmp = i0.ɵɵ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, template: "<ng-template #template>\n <div *ngIf=\"!!model\" #elementContainer [class]=\"model.getRootCss()\" [style]=\"model.getRootStyle()\" [id]=\"model.id\" [attr.data-name]=\"model.name\" [attr.role]=\"model.ariaRole\" [attr.aria-required]=\"model.ariaRequired\" [attr.aria-invalid]=\"model.ariaInvalid\" [attr.aria-labelledby]=\"model.ariaLabelledBy\">\n <div *ngIf=\"model.showErrorsAboveQuestion && model.hasVisibleErrors\" [element]=\"model\" sv-ng-errors></div>\n <div [element]=\"model\" *ngIf=\"model.hasTitleOnLeftTop\" sv-ng-element-header></div>\n <div [class]=\"model.cssContent\" role=\"presentation\" [visible]=\"!model.isCollapsed\">\n <div *ngIf=\"model.showErrorOnTop && model.hasVisibleErrors\" [element]=\"model\" sv-ng-errors></div>\n <ng-template [component]=\"{ name: getQuestionContentWrapperComponentName(), data: getQuestionContentWrapperComponentData(), default: 'skeleton-question' }\">\n </ng-template>\n <div *ngIf=\"model.hasComment\" [class]=\"model.getCommentAreaCss(false)\">\n <div [model]=\"model.locCommentText\" sv-ng-string></div>\n <sv-ng-comment [question]=\"model\"></sv-ng-comment>\n </div>\n <div *ngIf=\"model.showErrorOnBottom && model.hasVisibleErrors\" [element]=\"model\" sv-ng-errors></div>\n <div *ngIf=\"model.isErrorsModeTooltip && model.hasVisibleErrors\" [element]=\"model\" [location]=\"'tooltip'\" sv-ng-errors></div>\n <div *ngIf=\"model.hasDescriptionUnderInput\" [class]=\"model.cssDescription\" [model]=\"model.locDescription\" sv-ng-string></div>\n </div>\n <div [element]=\"model\" *ngIf=\"model.hasTitleOnBottom\" sv-ng-element-header></div>\n <div *ngIf=\"model.showErrorsBelowQuestion && model.hasVisibleErrors\" [element]=\"model\" sv-ng-errors></div>\n </div>\n</ng-template>", components: [{ type: ErrorsComponent, selector: "'[sv-ng-errors]'", inputs: ["element", "location"] }, { type: ElementHeaderComponent, selector: "'[sv-ng-element-header]'", inputs: ["element"] }, { type: SurveyStringComponent, selector: "sv-ng-string, '[sv-ng-string]'", inputs: ["model"] }, { type: SurveyCommentComponent, selector: "sv-ng-comment, '[sv-ng-comment]'", inputs: ["question"] }], directives: [{ type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: VisibleDirective, selector: "[visible]", inputs: ["visible"] }, { type: DynamicComponentDirective, selector: "[component]", inputs: ["component"] }] });
1075
980
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: QuestionComponent, decorators: [{
1076
981
  type: Component,
1077
982
  args: [{
@@ -1199,6 +1104,71 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImpo
1199
1104
  }] } });
1200
1105
  AngularComponentFactory.Instance.registerComponent("skeleton-question", QuestionSkeletonComponent);
1201
1106
 
1107
+ class SvgIconComponent {
1108
+ constructor(viewContaierRef) {
1109
+ this.viewContaierRef = viewContaierRef;
1110
+ }
1111
+ createSvg() {
1112
+ if (!!this.iconName) {
1113
+ Survey.createSvg(this.size, this.width, this.height, this.iconName, this.viewContaierRef.element.nativeElement, this.title);
1114
+ }
1115
+ }
1116
+ get rootClass() {
1117
+ let className = "sv-svg-icon";
1118
+ if (!this.css && !!this.partCss) {
1119
+ className += " " + this.partCss;
1120
+ }
1121
+ else if (!!this.css) {
1122
+ className = this.css;
1123
+ }
1124
+ return className;
1125
+ }
1126
+ get rootRole() {
1127
+ return "img";
1128
+ }
1129
+ get ariaLabel() {
1130
+ return this.title;
1131
+ }
1132
+ ngOnChanges() {
1133
+ const el = this.viewContaierRef.element.nativeElement;
1134
+ el.innerHTML = "";
1135
+ el.appendChild(document.createElementNS("http://www.w3.org/2000/svg", "use"));
1136
+ this.createSvg();
1137
+ }
1138
+ }
1139
+ SvgIconComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: SvgIconComponent, deps: [{ token: i0.ViewContainerRef }], target: i0.ɵɵFactoryTarget.Component });
1140
+ SvgIconComponent.ɵcmp = i0.ɵɵ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", "[attr.aria-label]": "this.ariaLabel" } }, usesOnChanges: true, ngImport: i0, template: "", isInline: true });
1141
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: SvgIconComponent, decorators: [{
1142
+ type: Component,
1143
+ args: [{
1144
+ selector: "'[sv-ng-svg-icon]'",
1145
+ template: ""
1146
+ }]
1147
+ }], ctorParameters: function () { return [{ type: i0.ViewContainerRef }]; }, propDecorators: { size: [{
1148
+ type: Input
1149
+ }], width: [{
1150
+ type: Input
1151
+ }], height: [{
1152
+ type: Input
1153
+ }], iconName: [{
1154
+ type: Input
1155
+ }], partCss: [{
1156
+ type: Input
1157
+ }], css: [{
1158
+ type: Input
1159
+ }], title: [{
1160
+ type: Input
1161
+ }], rootClass: [{
1162
+ type: HostBinding,
1163
+ args: ["class"]
1164
+ }], rootRole: [{
1165
+ type: HostBinding,
1166
+ args: ["[attr.role]"]
1167
+ }], ariaLabel: [{
1168
+ type: HostBinding,
1169
+ args: ["[attr.aria-label]"]
1170
+ }] } });
1171
+
1202
1172
  class DropdownComponent extends BaseAngular {
1203
1173
  get dropdownModel() {
1204
1174
  var _a;
@@ -1690,7 +1660,7 @@ class CheckboxItemComponent {
1690
1660
  constructor() {
1691
1661
  }
1692
1662
  onChange(event) {
1693
- this.question.clickItemHandler(this.model, event.target.checked);
1663
+ this.question["clickItemHandler"](this.model, event.target.checked);
1694
1664
  }
1695
1665
  onSelectAllChange(event) {
1696
1666
  this.question.toggleSelectAll();
@@ -1747,7 +1717,7 @@ class RatingQuestionComponent extends QuestionAngular {
1747
1717
  }
1748
1718
  }
1749
1719
  RatingQuestionComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: RatingQuestionComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
1750
- RatingQuestionComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: RatingQuestionComponent, selector: "sv-ng-rating-question", usesInheritance: true, ngImport: i0, template: " <div [class]=\"model.ratingRootCss\" #contentElement>\n <fieldset role=\"radiogroup\">\n <legend role=\"presentation\" class=\"sv-hidden\"></legend>\n <span *ngIf=\"model.hasMinLabel\" [class]=\"model.cssClasses.minText\" [model]=\"model.locMinRateDescription\" sv-ng-string>\n </span>\n <ng-template *ngFor=\"let item of model.renderedRateItems; index as index; trackBy: trackByFn\" [component]=\"{ name: 'sv-rating-item', data: {model: model, item: item, index: index }}\"></ng-template>\n <span *ngIf=\"model.hasMaxLabel\" [class]=\"model.cssClasses.maxText\" [model]=\"model.locMaxRateDescription\" sv-ng-string></span>\n </fieldset>\n </div>\n", components: [{ type: SurveyStringComponent, selector: "sv-ng-string, '[sv-ng-string]'", inputs: ["model"] }], directives: [{ type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: DynamicComponentDirective, selector: "[component]", inputs: ["component"] }] });
1720
+ RatingQuestionComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: RatingQuestionComponent, selector: "sv-ng-rating-question", usesInheritance: true, ngImport: i0, template: " <div [class]=\"model.ratingRootCss\" #contentElement>\n <fieldset role=\"radiogroup\">\n <legend role=\"presentation\" class=\"sv-hidden\"></legend>\n <span *ngIf=\"model.hasMinLabel\" [class]=\"model.cssClasses.minText\" [model]=\"model.locMinRateDescription\" sv-ng-string>\n </span>\n <ng-template *ngFor=\"let item of model.renderedRateItems; index as index; trackBy: trackByFn\" [component]=\"{ name: model.itemComponentName, data: {model: model, item: item, index: index }}\"></ng-template>\n <span *ngIf=\"model.hasMaxLabel\" [class]=\"model.cssClasses.maxText\" [model]=\"model.locMaxRateDescription\" sv-ng-string></span>\n </fieldset>\n </div>\n", components: [{ type: SurveyStringComponent, selector: "sv-ng-string, '[sv-ng-string]'", inputs: ["model"] }], directives: [{ type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: DynamicComponentDirective, selector: "[component]", inputs: ["component"] }] });
1751
1721
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: RatingQuestionComponent, decorators: [{
1752
1722
  type: Component,
1753
1723
  args: [{
@@ -1881,6 +1851,32 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImpo
1881
1851
  }]
1882
1852
  }] });
1883
1853
 
1854
+ class ComponentsContainerComponent extends EmbeddedViewContentComponent {
1855
+ get components() {
1856
+ return this.survey.getContainerContent(this.container);
1857
+ }
1858
+ get isNeedRenderWrapper() {
1859
+ return this.needRenderWrapper === false ? false : true;
1860
+ }
1861
+ }
1862
+ ComponentsContainerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: ComponentsContainerComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
1863
+ ComponentsContainerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: ComponentsContainerComponent, selector: "sv-components-container, [sv-components-container], sv-ng-components-container", inputs: { survey: "survey", container: "container", needRenderWrapper: "needRenderWrapper" }, usesInheritance: true, ngImport: i0, template: "<ng-template #template>\n <ng-container *ngIf=\"isNeedRenderWrapper\">\n <div *ngIf=\"components.length > 0\" class=\"sv-components-column\">\n <ng-container *ngFor=\"let component of components\">\n <ng-template [component]=\"{ name: component.component, data: { survey: survey, model: component.data } }\"></ng-template>\n </ng-container>\n </div>\n </ng-container>\n <ng-container *ngIf=\"!isNeedRenderWrapper && components.length > 0\">\n <ng-container *ngFor=\"let component of components\">\n <ng-template [component]=\"{ name: component.component, data: { survey: survey, model: component.data } }\"></ng-template>\n </ng-container>\n </ng-container>\n</ng-template>", styles: [":host{display:none}\n"], directives: [{ type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: DynamicComponentDirective, selector: "[component]", inputs: ["component"] }] });
1864
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: ComponentsContainerComponent, decorators: [{
1865
+ type: Component,
1866
+ args: [{
1867
+ selector: "sv-components-container, [sv-components-container], sv-ng-components-container",
1868
+ templateUrl: "./components-container.component.html",
1869
+ styleUrls: ["./hide-host.scss"]
1870
+ }]
1871
+ }], propDecorators: { survey: [{
1872
+ type: Input
1873
+ }], container: [{
1874
+ type: Input
1875
+ }], needRenderWrapper: [{
1876
+ type: Input
1877
+ }] } });
1878
+ AngularComponentFactory.Instance.registerComponent("sv-components-container", ComponentsContainerComponent);
1879
+
1884
1880
  class Key2ClickDirective {
1885
1881
  constructor(el) {
1886
1882
  this.el = el;
@@ -2038,6 +2034,37 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImpo
2038
2034
  }] } });
2039
2035
  AngularComponentFactory.Instance.registerComponent("sv-skeleton", SkeletonComponent);
2040
2036
 
2037
+ class TimerPanelComponent extends BaseAngular {
2038
+ constructor() {
2039
+ super(...arguments);
2040
+ this.circleLengthValue = 440;
2041
+ }
2042
+ getStateElement() {
2043
+ return this.model;
2044
+ }
2045
+ getModel() {
2046
+ return this.model;
2047
+ }
2048
+ get circleLength() {
2049
+ return this.circleLengthValue;
2050
+ }
2051
+ get progress() {
2052
+ return -this.model.progress * this.circleLength;
2053
+ }
2054
+ }
2055
+ TimerPanelComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: TimerPanelComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
2056
+ TimerPanelComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: TimerPanelComponent, selector: "sv-timerpanel", inputs: { model: "model" }, usesInheritance: true, ngImport: i0, template: "<div *ngIf=\"model.isRunning && model.showTimerAsClock\" [class]=\"model.rootCss\">\n <svg *ngIf=\"model.showProgress\" [class]=\"model.getProgressCss()\" [style.stroke-dasharray]=\"circleLength\" [style.stroke-dashoffset]=\"progress\" [size]=\"'auto'\" [iconName]=\"'icon-timercircle'\" sv-ng-svg-icon></svg>\n <div [class]=\"model.textContainerCss\">\n <span [class]=\"model.majorTextCss\">{{ model.clockMajorText }}</span>\n <span *ngIf=\"model.clockMinorText\" [class]=\"model.minorTextCss\">{{ model.clockMinorText }}</span>\n </div>\n</div>\n<div *ngIf=\"model.isRunning && !model.showTimerAsClock\" [class]='model.survey.getCss().timerRoot'>{{model.text}}</div>", components: [{ type: SvgIconComponent, selector: "'[sv-ng-svg-icon]'", inputs: ["size", "width", "height", "iconName", "partCss", "css", "title"] }], directives: [{ type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
2057
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: TimerPanelComponent, decorators: [{
2058
+ type: Component,
2059
+ args: [{
2060
+ selector: "sv-timerpanel",
2061
+ templateUrl: "./timer-panel.component.html",
2062
+ }]
2063
+ }], propDecorators: { model: [{
2064
+ type: Input
2065
+ }] } });
2066
+ AngularComponentFactory.Instance.registerComponent("sv-timerpanel", TimerPanelComponent);
2067
+
2041
2068
  class ListItemComponent extends BaseAngular {
2042
2069
  get ariaSelected() {
2043
2070
  return this.listModel.isItemSelected(this.model) || "";
@@ -2132,7 +2159,7 @@ class RatingItemComponent extends BaseAngular {
2132
2159
  event.stopPropagation();
2133
2160
  }
2134
2161
  getModel() {
2135
- return this.model;
2162
+ return this.item;
2136
2163
  }
2137
2164
  }
2138
2165
  RatingItemComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: RatingItemComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
@@ -2155,6 +2182,35 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImpo
2155
2182
  }] } });
2156
2183
  AngularComponentFactory.Instance.registerComponent("sv-rating-item", RatingItemComponent);
2157
2184
 
2185
+ class RatingItemStarComponent extends BaseAngular {
2186
+ onClick(event) {
2187
+ this.model.setValueFromClick(event.target.value);
2188
+ event.stopPropagation();
2189
+ }
2190
+ getModel() {
2191
+ return this.item;
2192
+ }
2193
+ }
2194
+ RatingItemStarComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: RatingItemStarComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
2195
+ RatingItemStarComponent.ɵcmp = i0.ɵɵ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, template: "<ng-template #template>\n <label [class]=\"model.getItemClass(item.itemValue, item.highlight)\" (mouseover)=\"model.onItemMouseIn(item)\" (mouseout)=\"model.onItemMouseOut(item)\">\n <input type=\"radio\"\n class=\"sv-visuallyhidden\"\n [attr.name]=\"model.name\" [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-describedby]=\"model.ariaDescribedBy\"\n [disabled]=\"model.isInputReadOnly\" [checked]=\"model.value === item.value\" (click)=\"onClick($event)\"\n />\n <svg [iconName]=\"'icon-rating-star'\" [size]=\"48\" [title]=\"item.text\" [class]=\"'sv-star'\" sv-ng-svg-icon></svg>\n <svg [iconName]=\"'icon-rating-star-2'\" [size]=\"48\" [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"] }] });
2196
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: RatingItemStarComponent, decorators: [{
2197
+ type: Component,
2198
+ args: [{
2199
+ selector: "sv-ng-rating-item-star",
2200
+ templateUrl: "./rating-item-star.component.html",
2201
+ styleUrls: ["../../hide-host.scss"],
2202
+ }]
2203
+ }], propDecorators: { element: [{
2204
+ type: Input
2205
+ }], model: [{
2206
+ type: Input
2207
+ }], item: [{
2208
+ type: Input
2209
+ }], index: [{
2210
+ type: Input
2211
+ }] } });
2212
+ AngularComponentFactory.Instance.registerComponent("sv-rating-item-star", RatingItemStarComponent);
2213
+
2158
2214
  class RatingDropdownComponent {
2159
2215
  }
2160
2216
  RatingDropdownComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: RatingDropdownComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
@@ -2245,8 +2301,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImpo
2245
2301
  AngularComponentFactory.Instance.registerComponent("sv-progress-progress", ProgressDefaultComponent);
2246
2302
  AngularComponentFactory.Instance.registerComponent("sv-progress-pages", ProgressDefaultComponent);
2247
2303
  AngularComponentFactory.Instance.registerComponent("sv-progress-questions", ProgressDefaultComponent);
2248
- AngularComponentFactory.Instance.registerComponent("sv-progress-correctQuestions", ProgressDefaultComponent);
2249
- AngularComponentFactory.Instance.registerComponent("sv-progress-requiredQuestions", ProgressDefaultComponent);
2304
+ AngularComponentFactory.Instance.registerComponent("sv-progress-correctquestions", ProgressDefaultComponent);
2305
+ AngularComponentFactory.Instance.registerComponent("sv-progress-requiredquestions", ProgressDefaultComponent);
2250
2306
 
2251
2307
  class ProgressButtonsComponent {
2252
2308
  constructor(changeDetectorRef) {
@@ -2314,6 +2370,36 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImpo
2314
2370
  }] } });
2315
2371
  AngularComponentFactory.Instance.registerComponent("sv-progress-buttons", ProgressButtonsComponent);
2316
2372
 
2373
+ class ProgressTocComponent extends EmbeddedViewContentComponent {
2374
+ constructor() {
2375
+ super(...arguments);
2376
+ this.containerCss = "sv_progress-toc";
2377
+ }
2378
+ createProgressTOCModel() {
2379
+ this.listModel = createTOCListModel(this.model);
2380
+ }
2381
+ ngOnInit() {
2382
+ super.ngOnInit();
2383
+ this.createProgressTOCModel();
2384
+ }
2385
+ ngOnChanges(changes) {
2386
+ this.createProgressTOCModel();
2387
+ }
2388
+ }
2389
+ ProgressTocComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: ProgressTocComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
2390
+ ProgressTocComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: ProgressTocComponent, selector: "sv-progress-toc, sv-ng-progress-toc", inputs: { model: "model" }, usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<ng-template #template>\n <div [class]=\"containerCss\">\n <sv-ng-list [model]=\"listModel\"></sv-ng-list>\n </div>\n</ng-template>", styles: [":host { display: none; }"], components: [{ type: ListComponent, selector: "sv-ng-list, '[sv-ng-list]'", inputs: ["model"] }] });
2391
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: ProgressTocComponent, decorators: [{
2392
+ type: Component,
2393
+ args: [{
2394
+ selector: "sv-progress-toc, sv-ng-progress-toc",
2395
+ templateUrl: "./progress.component.html",
2396
+ styles: [":host { display: none; }"]
2397
+ }]
2398
+ }], propDecorators: { model: [{
2399
+ type: Input
2400
+ }] } });
2401
+ AngularComponentFactory.Instance.registerComponent("sv-progress-toc", ProgressTocComponent);
2402
+
2317
2403
  class PanelComponent extends BaseAngular {
2318
2404
  constructor() {
2319
2405
  super(...arguments);
@@ -3123,24 +3209,23 @@ SurveyModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "1
3123
3209
  SurveyModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: SurveyModule, declarations: [VisibleDirective, Key2ClickDirective, PanelDynamicAddBtn, PanelDynamicNextBtn, PanelDynamicPrevBtn, PanelDynamicProgressText, ElementComponent, TemplateRendererComponent,
3124
3210
  SurveyComponent, SurveyContentComponent, PopupSurveyComponent, PageComponent, PanelComponent, QuestionComponent, StringViewerComponent, SurveyStringComponent, StringEditorComponent,
3125
3211
  QuestionSkeletonComponent, TextQuestionComponent, RadiogroupComponent, RadiogroupItemComponent, CheckboxComponent, CheckboxItemComponent,
3126
- CharacterCounterComponent,
3127
3212
  DropdownComponent, DropdownQuestionComponent, DropdownSelectComponent, DropdownOptionItemComponent,
3128
3213
  PopupComponent, PopupBaseContainerComponent, PopupPointerComponent,
3129
- ListComponent, ListItemComponent, RatingItemComponent,
3214
+ CharacterCounterComponent, ListComponent, ListItemComponent, RatingItemComponent, RatingItemStarComponent,
3130
3215
  TagboxFilterComponent, TagboxComponent, TagboxQuestionComponent, TagboxItemComponent,
3131
3216
  ActionBarComponent, ActionComponent, ActionBarItemComponent, ActionBarItemDropdownComponent, HtmlQuestionComponent,
3132
3217
  SelectBaseItemComponent, SelectBaseComponent, SurveyCommentComponent, SurveyCommentOtherComponent, ElementHeaderComponent, ElementTitleActionsComponent, ElementTitleComponent, DynamicHeadComponent, RowComponent,
3133
3218
  RatingQuestionComponent, RatingDropdownComponent, BooleanQuestionComponent, BooleanCheckboxComponent, BooleanRadioComponent, BooleanRadioItemComponent, ImagePickerItemComponent, ImagePickerQuestionComponent, ImageQuestionComponent,
3134
- SurveyHeaderComponent, ProgressDefaultComponent, ProgressButtonsComponent, SurveyNavigationButton, MatrixQuestionComponent, SvgIconComponent, FileQuestionComponent, SafeUrlPipe, SafeHtmlPipe, CommentQuestionComponent, SignaturePadQuestionComponent, ErrorsComponent,
3219
+ SurveyHeaderComponent, ProgressDefaultComponent, ProgressButtonsComponent, ProgressTocComponent, SurveyNavigationButton, MatrixQuestionComponent, SvgIconComponent, FileQuestionComponent, SafeUrlPipe, SafeHtmlPipe, CommentQuestionComponent, SignaturePadQuestionComponent, ErrorsComponent,
3135
3220
  MultipleTextComponent, MultipleTextItemComponent, DynamicComponentDirective, RankingQuestionComponent, RankingItemComponent, PanelDynamicQuestionComponent, EmbeddedViewContentComponent, CustomWidgetComponent, MatrixCellComponent, MatrixTableComponent, MatrixDropdownComponent,
3136
3221
  MatrixDynamicComponent, MatrixDetailButtonComponent, MatrixDynamicRemoveButtonComponent, MatrixDynamicDragDropIconComponent, MatrixRequiredHeader, ExpressionComponent, SafeResourceUrlPipe, BrandInfoComponent,
3137
3222
  CustomQuestionComponent, CompositeQuestionComponent, ButtonGroupItemComponent, ButtonGroupQuestionComponent, MatrixRowComponent, ModalComponent, LogoImageComponent, SkeletonComponent, TimerPanelComponent, PaneldynamicRemoveButtonComponent,
3138
- NotifierComponent], imports: [CommonModule, FormsModule], exports: [VisibleDirective, Key2ClickDirective, PanelDynamicAddBtn, PanelDynamicNextBtn, PanelDynamicPrevBtn, PanelDynamicProgressText, ElementComponent, TemplateRendererComponent,
3223
+ NotifierComponent, ComponentsContainerComponent], imports: [CommonModule, FormsModule], exports: [VisibleDirective, Key2ClickDirective, PanelDynamicAddBtn, PanelDynamicNextBtn, PanelDynamicPrevBtn, PanelDynamicProgressText, ElementComponent, TemplateRendererComponent,
3139
3224
  SurveyComponent, SurveyContentComponent, PopupSurveyComponent, PageComponent, PanelComponent, QuestionComponent, StringViewerComponent, SurveyStringComponent, StringEditorComponent,
3140
3225
  QuestionSkeletonComponent, TextQuestionComponent, RadiogroupComponent, RadiogroupItemComponent, CheckboxComponent, CheckboxItemComponent,
3141
3226
  DropdownComponent, DropdownQuestionComponent, DropdownSelectComponent, DropdownOptionItemComponent,
3142
3227
  PopupComponent, PopupBaseContainerComponent, PopupPointerComponent,
3143
- ListComponent, ListItemComponent, RatingItemComponent,
3228
+ CharacterCounterComponent, ListComponent, ListItemComponent, RatingItemComponent, RatingItemStarComponent,
3144
3229
  TagboxFilterComponent, TagboxComponent, TagboxQuestionComponent, TagboxItemComponent,
3145
3230
  ActionBarComponent, ActionComponent, ActionBarItemComponent, ActionBarItemDropdownComponent, HtmlQuestionComponent,
3146
3231
  SelectBaseItemComponent, SelectBaseComponent, SurveyCommentComponent, SurveyCommentOtherComponent, ElementHeaderComponent, ElementTitleComponent, DynamicHeadComponent, RowComponent,
@@ -3149,7 +3234,7 @@ SurveyModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "
3149
3234
  MultipleTextComponent, MultipleTextItemComponent, DynamicComponentDirective, RankingQuestionComponent, RankingItemComponent, PanelDynamicQuestionComponent, EmbeddedViewContentComponent, CustomWidgetComponent, MatrixCellComponent, MatrixTableComponent, MatrixDropdownComponent,
3150
3235
  MatrixDynamicComponent, MatrixDetailButtonComponent, MatrixDynamicRemoveButtonComponent, MatrixDynamicDragDropIconComponent, MatrixRequiredHeader, ExpressionComponent, SafeResourceUrlPipe,
3151
3236
  CustomQuestionComponent, CompositeQuestionComponent, ButtonGroupQuestionComponent, ModalComponent, LogoImageComponent, SkeletonComponent, TimerPanelComponent, PaneldynamicRemoveButtonComponent,
3152
- NotifierComponent] });
3237
+ NotifierComponent, ComponentsContainerComponent] });
3153
3238
  SurveyModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: SurveyModule, providers: [PopupService], imports: [[
3154
3239
  CommonModule, FormsModule
3155
3240
  ]] });
@@ -3160,19 +3245,18 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImpo
3160
3245
  VisibleDirective, Key2ClickDirective, PanelDynamicAddBtn, PanelDynamicNextBtn, PanelDynamicPrevBtn, PanelDynamicProgressText, ElementComponent, TemplateRendererComponent,
3161
3246
  SurveyComponent, SurveyContentComponent, PopupSurveyComponent, PageComponent, PanelComponent, QuestionComponent, StringViewerComponent, SurveyStringComponent, StringEditorComponent,
3162
3247
  QuestionSkeletonComponent, TextQuestionComponent, RadiogroupComponent, RadiogroupItemComponent, CheckboxComponent, CheckboxItemComponent,
3163
- CharacterCounterComponent,
3164
3248
  DropdownComponent, DropdownQuestionComponent, DropdownSelectComponent, DropdownOptionItemComponent,
3165
3249
  PopupComponent, PopupBaseContainerComponent, PopupPointerComponent,
3166
- ListComponent, ListItemComponent, RatingItemComponent,
3250
+ CharacterCounterComponent, ListComponent, ListItemComponent, RatingItemComponent, RatingItemStarComponent,
3167
3251
  TagboxFilterComponent, TagboxComponent, TagboxQuestionComponent, TagboxItemComponent,
3168
3252
  ActionBarComponent, ActionComponent, ActionBarItemComponent, ActionBarItemDropdownComponent, HtmlQuestionComponent,
3169
3253
  SelectBaseItemComponent, SelectBaseComponent, SurveyCommentComponent, SurveyCommentOtherComponent, ElementHeaderComponent, ElementTitleActionsComponent, ElementTitleComponent, DynamicHeadComponent, RowComponent,
3170
3254
  RatingQuestionComponent, RatingDropdownComponent, BooleanQuestionComponent, BooleanCheckboxComponent, BooleanRadioComponent, BooleanRadioItemComponent, ImagePickerItemComponent, ImagePickerQuestionComponent, ImageQuestionComponent,
3171
- SurveyHeaderComponent, ProgressDefaultComponent, ProgressButtonsComponent, SurveyNavigationButton, MatrixQuestionComponent, SvgIconComponent, FileQuestionComponent, SafeUrlPipe, SafeHtmlPipe, CommentQuestionComponent, SignaturePadQuestionComponent, ErrorsComponent,
3255
+ SurveyHeaderComponent, ProgressDefaultComponent, ProgressButtonsComponent, ProgressTocComponent, SurveyNavigationButton, MatrixQuestionComponent, SvgIconComponent, FileQuestionComponent, SafeUrlPipe, SafeHtmlPipe, CommentQuestionComponent, SignaturePadQuestionComponent, ErrorsComponent,
3172
3256
  MultipleTextComponent, MultipleTextItemComponent, DynamicComponentDirective, RankingQuestionComponent, RankingItemComponent, PanelDynamicQuestionComponent, EmbeddedViewContentComponent, CustomWidgetComponent, MatrixCellComponent, MatrixTableComponent, MatrixDropdownComponent,
3173
3257
  MatrixDynamicComponent, MatrixDetailButtonComponent, MatrixDynamicRemoveButtonComponent, MatrixDynamicDragDropIconComponent, MatrixRequiredHeader, ExpressionComponent, SafeResourceUrlPipe, BrandInfoComponent,
3174
3258
  CustomQuestionComponent, CompositeQuestionComponent, ButtonGroupItemComponent, ButtonGroupQuestionComponent, MatrixRowComponent, ModalComponent, LogoImageComponent, SkeletonComponent, TimerPanelComponent, PaneldynamicRemoveButtonComponent,
3175
- NotifierComponent
3259
+ NotifierComponent, ComponentsContainerComponent
3176
3260
  ],
3177
3261
  imports: [
3178
3262
  CommonModule, FormsModule
@@ -3183,7 +3267,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImpo
3183
3267
  QuestionSkeletonComponent, TextQuestionComponent, RadiogroupComponent, RadiogroupItemComponent, CheckboxComponent, CheckboxItemComponent,
3184
3268
  DropdownComponent, DropdownQuestionComponent, DropdownSelectComponent, DropdownOptionItemComponent,
3185
3269
  PopupComponent, PopupBaseContainerComponent, PopupPointerComponent,
3186
- ListComponent, ListItemComponent, RatingItemComponent,
3270
+ CharacterCounterComponent, ListComponent, ListItemComponent, RatingItemComponent, RatingItemStarComponent,
3187
3271
  TagboxFilterComponent, TagboxComponent, TagboxQuestionComponent, TagboxItemComponent,
3188
3272
  ActionBarComponent, ActionComponent, ActionBarItemComponent, ActionBarItemDropdownComponent, HtmlQuestionComponent,
3189
3273
  SelectBaseItemComponent, SelectBaseComponent, SurveyCommentComponent, SurveyCommentOtherComponent, ElementHeaderComponent, ElementTitleComponent, DynamicHeadComponent, RowComponent,
@@ -3192,7 +3276,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImpo
3192
3276
  MultipleTextComponent, MultipleTextItemComponent, DynamicComponentDirective, RankingQuestionComponent, RankingItemComponent, PanelDynamicQuestionComponent, EmbeddedViewContentComponent, CustomWidgetComponent, MatrixCellComponent, MatrixTableComponent, MatrixDropdownComponent,
3193
3277
  MatrixDynamicComponent, MatrixDetailButtonComponent, MatrixDynamicRemoveButtonComponent, MatrixDynamicDragDropIconComponent, MatrixRequiredHeader, ExpressionComponent, SafeResourceUrlPipe,
3194
3278
  CustomQuestionComponent, CompositeQuestionComponent, ButtonGroupQuestionComponent, ModalComponent, LogoImageComponent, SkeletonComponent, TimerPanelComponent, PaneldynamicRemoveButtonComponent,
3195
- NotifierComponent
3279
+ NotifierComponent, ComponentsContainerComponent
3196
3280
  ],
3197
3281
  providers: [PopupService],
3198
3282
  }]
@@ -3202,5 +3286,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImpo
3202
3286
  * Generated bundle index. Do not edit.
3203
3287
  */
3204
3288
 
3205
- export { ActionBarComponent, ActionBarItemComponent, ActionBarItemDropdownComponent, ActionComponent, AngularComponentFactory, BaseAngular, BooleanCheckboxComponent, BooleanQuestionComponent, BooleanRadioComponent, BooleanRadioItemComponent, BrandInfoComponent, ButtonGroupQuestionComponent, CharacterCounterComponent, CheckboxComponent, CheckboxItemComponent, CommentQuestionComponent, CompositeQuestionComponent, CustomQuestionComponent, CustomWidgetComponent, DropdownComponent, DropdownOptionItemComponent, DropdownQuestionComponent, DropdownSelectComponent, DynamicComponentDirective, DynamicHeadComponent, ElementComponent, ElementHeaderComponent, ElementTitleComponent, EmbeddedViewContentComponent, ErrorsComponent, ExpressionComponent, FileQuestionComponent, HtmlQuestionComponent, ImagePickerItemComponent, ImagePickerQuestionComponent, ImageQuestionComponent, Key2ClickDirective, ListComponent, ListItemComponent, LogoImageComponent, MatrixCellComponent, MatrixDetailButtonComponent, MatrixDropdownComponent, MatrixDynamicComponent, MatrixDynamicDragDropIconComponent, MatrixDynamicRemoveButtonComponent, MatrixQuestionComponent, MatrixRequiredHeader, MatrixTableComponent, ModalComponent, MultipleTextComponent, MultipleTextItemComponent, NotifierComponent, PageComponent, PanelComponent, PanelDynamicAddBtn, PanelDynamicNextBtn, PanelDynamicPrevBtn, PanelDynamicProgressText, PanelDynamicQuestionComponent, PaneldynamicAction, PaneldynamicRemoveButtonComponent, PopupBaseContainerComponent, PopupComponent, PopupPointerComponent, PopupService, PopupSurveyComponent, ProgressButtonsComponent, ProgressDefaultComponent, QuestionAngular, QuestionComponent, QuestionSkeletonComponent, RadiogroupComponent, RadiogroupItemComponent, RankingItemComponent, RankingQuestionComponent, RatingDropdownComponent, RatingItemComponent, RatingQuestionComponent, RowComponent, SafeHtmlPipe, SafeResourceUrlPipe, SafeUrlPipe, SelectBaseComponent, SelectBaseItemComponent, SignaturePadQuestionComponent, SkeletonComponent, StringEditorComponent, StringViewerComponent, SurveyCommentComponent, SurveyCommentOtherComponent, SurveyComponent, SurveyContentComponent, SurveyHeaderComponent, SurveyModule, SurveyNavigationButton, SurveyStringComponent, SvgIconComponent, TagboxComponent, TagboxFilterComponent, TagboxItemComponent, TagboxQuestionComponent, TemplateRendererComponent, TextQuestionComponent, TimerPanelComponent, VisibleDirective };
3289
+ export { ActionBarComponent, ActionBarItemComponent, ActionBarItemDropdownComponent, ActionComponent, AngularComponentFactory, BaseAngular, BooleanCheckboxComponent, BooleanQuestionComponent, BooleanRadioComponent, BooleanRadioItemComponent, BrandInfoComponent, ButtonGroupQuestionComponent, CharacterCounterComponent, CheckboxComponent, CheckboxItemComponent, CommentQuestionComponent, ComponentsContainerComponent, CompositeQuestionComponent, CustomQuestionComponent, CustomWidgetComponent, DropdownComponent, DropdownOptionItemComponent, DropdownQuestionComponent, DropdownSelectComponent, DynamicComponentDirective, DynamicHeadComponent, ElementComponent, ElementHeaderComponent, ElementTitleComponent, EmbeddedViewContentComponent, ErrorsComponent, ExpressionComponent, FileQuestionComponent, HtmlQuestionComponent, ImagePickerItemComponent, ImagePickerQuestionComponent, ImageQuestionComponent, Key2ClickDirective, ListComponent, ListItemComponent, LogoImageComponent, MatrixCellComponent, MatrixDetailButtonComponent, MatrixDropdownComponent, MatrixDynamicComponent, MatrixDynamicDragDropIconComponent, MatrixDynamicRemoveButtonComponent, MatrixQuestionComponent, MatrixRequiredHeader, MatrixTableComponent, ModalComponent, MultipleTextComponent, MultipleTextItemComponent, NotifierComponent, PageComponent, PanelComponent, PanelDynamicAddBtn, PanelDynamicNextBtn, PanelDynamicPrevBtn, PanelDynamicProgressText, PanelDynamicQuestionComponent, PaneldynamicAction, PaneldynamicRemoveButtonComponent, PopupBaseContainerComponent, PopupComponent, PopupPointerComponent, PopupService, PopupSurveyComponent, ProgressButtonsComponent, ProgressDefaultComponent, ProgressTocComponent, QuestionAngular, QuestionComponent, QuestionSkeletonComponent, RadiogroupComponent, RadiogroupItemComponent, RankingItemComponent, RankingQuestionComponent, RatingDropdownComponent, RatingItemComponent, RatingItemStarComponent, RatingQuestionComponent, RowComponent, SafeHtmlPipe, SafeResourceUrlPipe, SafeUrlPipe, SelectBaseComponent, SelectBaseItemComponent, SignaturePadQuestionComponent, SkeletonComponent, StringEditorComponent, StringViewerComponent, SurveyCommentComponent, SurveyCommentOtherComponent, SurveyComponent, SurveyContentComponent, SurveyHeaderComponent, SurveyModule, SurveyNavigationButton, SurveyStringComponent, SvgIconComponent, TagboxComponent, TagboxFilterComponent, TagboxItemComponent, TagboxQuestionComponent, TemplateRendererComponent, TextQuestionComponent, TimerPanelComponent, VisibleDirective };
3206
3290
  //# sourceMappingURL=survey-angular-ui.js.map