survey-creator-angular 3.0.0-beta.9 → 3.0.1

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.
@@ -5,10 +5,26 @@ import { CommonModule } from '@angular/common';
5
5
  import * as i3 from '@angular/forms';
6
6
  import { FormsModule } from '@angular/forms';
7
7
  import * as i1 from 'survey-angular-ui';
8
- import { BaseAngular, AngularComponentFactory, SurveyContentComponent, EmbeddedViewContentComponent, ButtonGroupQuestionComponent, QuestionAngular, SurveyModule } from 'survey-angular-ui';
9
- import { cssVariablesToString, PageNavigatorViewModel, editorLocalization, SurveyResultsModel, PageAdorner, QuestionAdornerViewModel, ItemValueWrapperViewModel, ImageItemValueWrapperViewModel, QuestionDropdownAdornerViewModel, QuestionImageAdornerViewModel, PanelAdornerViewModel, ToolboxToolViewModel, StringEditorViewModelBase, editableStringRendererName, initLogicOperator, MatrixCellWrapperViewModel, RowViewModel, QuestionRatingAdornerViewModel, LogoImageViewModel } from 'survey-creator-core';
8
+ import { EmbeddedViewContentComponent, AngularComponentFactory, BaseAngular, SurveyContentComponent, ButtonGroupQuestionComponent, QuestionAngular, SurveyModule } from 'survey-angular-ui';
9
+ import { cssVariablesToString, PageNavigatorViewModel, editorLocalization, SurveyResultsModel, PageAdorner, QuestionAdornerViewModel, ItemValueWrapperViewModel, ImageItemValueWrapperViewModel, QuestionDropdownAdornerViewModel, QuestionImageAdornerViewModel, PanelAdornerViewModel, ToolboxToolViewModel, StringEditorViewModelBase, editableStringRendererName, initLogicOperator, MatrixCellWrapperViewModel, RowViewModel, QuestionRatingAdornerViewModel, TranslationDropdownViewModel, LogoImageViewModel, getTranslationLocaleProgress, translationLocaleItemComponentName } from 'survey-creator-core';
10
10
  import { getActionDropdownButtonTarget, DropdownListModel, RendererFactory } from 'survey-core';
11
11
 
12
+ class ComponentContainerComponent extends EmbeddedViewContentComponent {
13
+ }
14
+ ComponentContainerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: ComponentContainerComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
15
+ ComponentContainerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: ComponentContainerComponent, selector: "svc-component-container", inputs: { model: "model" }, usesInheritance: true, ngImport: i0, template: "<ng-template #template>\n <ng-template #elementsTemplate>\n <ng-template *ngFor=\"let element of model.elements\"\n [component]=\"{ name: element.componentName, data: element.componentData }\"></ng-template>\n </ng-template>\n\n <ng-container *ngIf=\"model.wrapped; else unwrappedTemplate\">\n <div [class]=\"model.cssClass\">\n <sv-scroll *ngIf=\"model.scrollable; else wrappedPlainTemplate\">\n <ng-container *ngTemplateOutlet=\"elementsTemplate\"></ng-container>\n </sv-scroll>\n <ng-template #wrappedPlainTemplate>\n <ng-container *ngTemplateOutlet=\"elementsTemplate\"></ng-container>\n </ng-template>\n </div>\n </ng-container>\n\n <ng-template #unwrappedTemplate>\n <sv-scroll *ngIf=\"model.scrollable; else unwrappedPlainTemplate\">\n <ng-container *ngTemplateOutlet=\"elementsTemplate\"></ng-container>\n </sv-scroll>\n <ng-template #unwrappedPlainTemplate>\n <ng-container *ngTemplateOutlet=\"elementsTemplate\"></ng-container>\n </ng-template>\n </ng-template>\n</ng-template>", styles: [":host { display: none; }"], components: [{ type: i1.ScrollComponent, selector: "sv-scroll", inputs: ["disabled", "onInnerHeightChanged"] }], directives: [{ type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i1.DynamicComponentDirective, selector: "[component]", inputs: ["component"] }, { type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }] });
16
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: ComponentContainerComponent, decorators: [{
17
+ type: Component,
18
+ args: [{
19
+ selector: "svc-component-container",
20
+ templateUrl: "./component-container.component.html",
21
+ styles: [":host { display: none; }"]
22
+ }]
23
+ }], propDecorators: { model: [{
24
+ type: Input
25
+ }] } });
26
+ AngularComponentFactory.Instance.registerComponent("svc-component-container", ComponentContainerComponent);
27
+
12
28
  class TabbedMenuItemWrapperComponent extends BaseAngular {
13
29
  getModel() {
14
30
  return this.model;
@@ -149,6 +165,13 @@ class CreatorComponent extends BaseAngular {
149
165
  get creator() {
150
166
  return this.model;
151
167
  }
168
+ // The collaboration strip is a ComponentContainerModel contributed by the
169
+ // plugin. `collabBar` is typed as Base in creator-core to keep the creator
170
+ // free of a dependency on the plugin, hence the cast.
171
+ get collabBarContainer() {
172
+ const bar = this.model.collabBar;
173
+ return !!bar ? bar.container : undefined;
174
+ }
152
175
  getShouldReattachChangeDetector() {
153
176
  return false;
154
177
  }
@@ -180,7 +203,7 @@ class CreatorComponent extends BaseAngular {
180
203
  }
181
204
  }
182
205
  CreatorComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: CreatorComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
183
- CreatorComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: CreatorComponent, selector: "survey-creator", inputs: { model: "model" }, viewQueries: [{ propertyName: "container", first: true, predicate: ["container"], descendants: true, read: ElementRef }], usesInheritance: true, ngImport: i0, template: "<ng-container *ngIf=\"!creator.isCreatorDisposed\">\n <sv-ng-modal-container></sv-ng-modal-container>\n <div [class]=\"creator.getRootCss()\" [attr.style]=\"themeVariablesString\" #container>\n <div>\n <sv-svg-bundle></sv-svg-bundle>\n </div>\n <div class=\"svc-full-container svc-creator__area svc-flex-column\"\n [class.svc-creator__area--with-banner]=\"!creator.haveCommercialLicense\">\n <div class=\"svc-flex-row svc-full-container\"\n [class.svc-creator__side-bar--left]=\"creator.sidebarLocation == 'left'\">\n <div class=\"svc-flex-column svc-flex-row__element svc-flex-row__element--growing\">\n <div class=\"svc-top-bar\">\n <div class=\"svc-tabbed-menu-wrapper\" [visible]=\"creator.showTabs\">\n <svc-tabbed-menu [model]=\"creator.tabbedMenu\"></svc-tabbed-menu>\n </div>\n <div *ngIf=\"creator.showToolbar\" class=\"svc-toolbar-wrapper\" [visible]=\"creator.showToolbar\">\n <sv-action-bar [model]=\"creator.toolbar\"></sv-action-bar>\n </div>\n </div>\n <div class=\"svc-creator__content-wrapper svc-flex-row\"\n [class.svc-creator__content-wrapper--footer-toolbar]=\"creator.isMobileView\">\n <div class=\"svc-creator__content-holder svc-flex-column\">\n <ng-container *ngIf=\"!!activeTab\">\n <div role=\"tabpanel\" class=\"svc-creator-tab\" [attr.id]=\"'scrollableDiv-' + activeTab.id\"\n [attr.aria-labelledby]=\"'tab-' + activeTab.id\"\n [class.svc-creator__toolbox--right]=\"creator.toolboxLocation == 'right'\">\n <ng-template\n [component]=\"{ name: activeTab.componentContent, data: { data: creator, model: activeTab.data.model } }\"></ng-template>\n </div>\n </ng-container>\n </div>\n </div>\n <div *ngIf=\"creator.isMobileView\" class=\"svc-footer-bar\">\n <div class=\"svc-toolbar-wrapper\" [visible]=\"creator.isMobileView\">\n <sv-action-bar [model]=\"creator.footerToolbar\"></sv-action-bar>\n </div>\n </div>\n </div>\n <svc-side-bar [model]=\"creator.sidebar\" *ngIf=\"creator.isSidebarVisible\"></svc-side-bar>\n </div>\n <div class=\"svc-creator__banner\" *ngIf=\"!creator.haveCommercialLicense\">\n <span class=\"svc-creator__non-commercial-text\" [innerHTML]=\"creator.licenseText | safeHtml\"></span>\n </div>\n <sv-notifier [notifier]=\"creator.notifier\"></sv-notifier>\n </div>\n </div>\n</ng-container>", components: [{ type: i1.ModalComponent, selector: "sv-ng-modal-container" }, { type: i1.SvgBundleComponent, selector: "sv-svg-bundle" }, { type: TabbledMenuComponent, selector: "svc-tabbed-menu", inputs: ["model"] }, { type: i1.ActionBarComponent, selector: "sv-action-bar, sv-ng-action-bar", inputs: ["model", "handleClick"] }, { type: SidebarComponent, selector: "svc-side-bar", inputs: ["model"] }, { type: i1.NotifierComponent, selector: "sv-notifier", inputs: ["notifier"] }], directives: [{ type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i1.VisibleDirective, selector: "[visible]", inputs: ["visible"] }, { type: i1.DynamicComponentDirective, selector: "[component]", inputs: ["component"] }], pipes: { "safeHtml": i1.SafeHtmlPipe } });
206
+ CreatorComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: CreatorComponent, selector: "survey-creator", inputs: { model: "model" }, viewQueries: [{ propertyName: "container", first: true, predicate: ["container"], descendants: true, read: ElementRef }], usesInheritance: true, ngImport: i0, template: "<ng-container *ngIf=\"!creator.isCreatorDisposed\">\n <sv-ng-modal-container></sv-ng-modal-container>\n <div [class]=\"creator.getRootCss()\" [attr.style]=\"themeVariablesString\" #container>\n <div>\n <sv-svg-bundle></sv-svg-bundle>\n </div>\n <div class=\"svc-full-container svc-creator__area svc-flex-column\"\n [class.svc-creator__area--with-banner]=\"!creator.haveCommercialLicense\">\n <svc-component-container *ngIf=\"collabBarContainer\" [model]=\"collabBarContainer\"></svc-component-container>\n <div class=\"svc-flex-row svc-full-container\"\n [class.svc-creator__side-bar--left]=\"creator.sidebarLocation == 'left'\">\n <div class=\"svc-flex-column svc-flex-row__element svc-flex-row__element--growing\">\n <div class=\"svc-top-bar\">\n <div class=\"svc-tabbed-menu-wrapper\" [visible]=\"creator.showTabs\">\n <svc-tabbed-menu [model]=\"creator.tabbedMenu\"></svc-tabbed-menu>\n </div>\n <div *ngIf=\"creator.showToolbar\" class=\"svc-toolbar-wrapper\" [visible]=\"creator.showToolbar\">\n <sv-action-bar [model]=\"creator.toolbar\"></sv-action-bar>\n </div>\n </div>\n <div class=\"svc-creator__content-wrapper svc-flex-row\"\n [class.svc-creator__content-wrapper--footer-toolbar]=\"creator.isMobileView\">\n <div class=\"svc-creator__content-holder svc-flex-column\">\n <ng-container *ngIf=\"!!activeTab\">\n <div role=\"tabpanel\" class=\"svc-creator-tab\" [attr.id]=\"'scrollableDiv-' + activeTab.id\"\n [attr.aria-labelledby]=\"'tab-' + activeTab.id\"\n [class.svc-creator__toolbox--right]=\"creator.toolboxLocation == 'right'\">\n <ng-template\n [component]=\"{ name: activeTab.componentContent, data: { data: creator, model: activeTab.data.model } }\"></ng-template>\n </div>\n </ng-container>\n </div>\n </div>\n <div *ngIf=\"creator.isMobileView\" class=\"svc-footer-bar\">\n <div class=\"svc-toolbar-wrapper\" [visible]=\"creator.isMobileView\">\n <sv-action-bar [model]=\"creator.footerToolbar\"></sv-action-bar>\n </div>\n </div>\n </div>\n <svc-side-bar [model]=\"creator.sidebar\" *ngIf=\"creator.isSidebarVisible\"></svc-side-bar>\n </div>\n <div class=\"svc-creator__banner\" *ngIf=\"!creator.haveCommercialLicense\">\n <span class=\"svc-creator__non-commercial-text\" [innerHTML]=\"creator.licenseText | safeHtml\"></span>\n </div>\n <sv-notifier [notifier]=\"creator.notifier\"></sv-notifier>\n </div>\n </div>\n</ng-container>", components: [{ type: i1.ModalComponent, selector: "sv-ng-modal-container" }, { type: i1.SvgBundleComponent, selector: "sv-svg-bundle" }, { type: ComponentContainerComponent, selector: "svc-component-container", inputs: ["model"] }, { type: TabbledMenuComponent, selector: "svc-tabbed-menu", inputs: ["model"] }, { type: i1.ActionBarComponent, selector: "sv-action-bar, sv-ng-action-bar", inputs: ["model", "handleClick"] }, { type: SidebarComponent, selector: "svc-side-bar", inputs: ["model"] }, { type: i1.NotifierComponent, selector: "sv-notifier", inputs: ["notifier"] }], directives: [{ type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i1.VisibleDirective, selector: "[visible]", inputs: ["visible"] }, { type: i1.DynamicComponentDirective, selector: "[component]", inputs: ["component"] }], pipes: { "safeHtml": i1.SafeHtmlPipe } });
184
207
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: CreatorComponent, decorators: [{
185
208
  type: Component,
186
209
  args: [{
@@ -599,22 +622,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImpo
599
622
  }] } });
600
623
  AngularComponentFactory.Instance.registerComponent("svc-side-bar-header", SidebarHeaderComponent);
601
624
 
602
- class ComponentContainerComponent extends EmbeddedViewContentComponent {
603
- }
604
- ComponentContainerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: ComponentContainerComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
605
- ComponentContainerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: ComponentContainerComponent, selector: "svc-component-container", inputs: { model: "model" }, usesInheritance: true, ngImport: i0, template: "<ng-template #template>\n <ng-template #elementsTemplate>\n <ng-template *ngFor=\"let element of model.elements\"\n [component]=\"{ name: element.componentName, data: element.componentData }\"></ng-template>\n </ng-template>\n\n <ng-container *ngIf=\"model.wrapped; else unwrappedTemplate\">\n <div [class]=\"model.cssClass\">\n <sv-scroll *ngIf=\"model.scrollable; else wrappedPlainTemplate\">\n <ng-container *ngTemplateOutlet=\"elementsTemplate\"></ng-container>\n </sv-scroll>\n <ng-template #wrappedPlainTemplate>\n <ng-container *ngTemplateOutlet=\"elementsTemplate\"></ng-container>\n </ng-template>\n </div>\n </ng-container>\n\n <ng-template #unwrappedTemplate>\n <sv-scroll *ngIf=\"model.scrollable; else unwrappedPlainTemplate\">\n <ng-container *ngTemplateOutlet=\"elementsTemplate\"></ng-container>\n </sv-scroll>\n <ng-template #unwrappedPlainTemplate>\n <ng-container *ngTemplateOutlet=\"elementsTemplate\"></ng-container>\n </ng-template>\n </ng-template>\n</ng-template>", styles: [":host { display: none; }"], components: [{ type: i1.ScrollComponent, selector: "sv-scroll", inputs: ["disabled", "onInnerHeightChanged"] }], directives: [{ type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i1.DynamicComponentDirective, selector: "[component]", inputs: ["component"] }, { type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }] });
606
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: ComponentContainerComponent, decorators: [{
607
- type: Component,
608
- args: [{
609
- selector: "svc-component-container",
610
- templateUrl: "./component-container.component.html",
611
- styles: [":host { display: none; }"]
612
- }]
613
- }], propDecorators: { model: [{
614
- type: Input
615
- }] } });
616
- AngularComponentFactory.Instance.registerComponent("svc-component-container", ComponentContainerComponent);
617
-
618
625
  class IconItemComponent extends EmbeddedViewContentComponent {
619
626
  }
620
627
  IconItemComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: IconItemComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
@@ -866,6 +873,61 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImpo
866
873
  }] } });
867
874
  AngularComponentFactory.Instance.registerComponent("svc-switcher", SwitcherComponent);
868
875
 
876
+ // See the React CollabRow for what this renders. Presentation only, no events.
877
+ class CollabRowComponent extends BaseAngular {
878
+ getModel() {
879
+ return this.model;
880
+ }
881
+ }
882
+ CollabRowComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: CollabRowComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
883
+ CollabRowComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: CollabRowComponent, selector: "svc-collab-row", inputs: { model: "model" }, usesInheritance: true, ngImport: i0, template: "<ng-template #template>\n <div *ngIf=\"model.visible\" [class]=\"model.rowCss\" [attr.role]=\"model.rowRole || null\"\n [attr.aria-expanded]=\"model.ariaExpanded\">\n <span *ngIf=\"model.hasMarkerText\" [class]=\"model.markerCss\">{{ model.markerText }}</span>\n <span *ngIf=\"!model.hasMarkerText && model.hasMarkerIcon\" class=\"svc-collab-row__icon\">\n <svg [iconName]=\"model.markerIconName\" [size]=\"model.markerIconSize\" sv-ng-svg-icon></svg>\n </span>\n <span class=\"svc-collab-row__title\">{{ model.title }}</span>\n <span *ngIf=\"model.hasSubtitle\" class=\"svc-collab-row__subtitle\">{{ model.subtitle }}</span>\n </div>\n</ng-template>\n", styles: [":host { display: none; }"], components: [{ type: i1.SvgIconComponent, selector: "'[sv-ng-svg-icon]'", inputs: ["size", "width", "height", "iconName", "partCss", "css", "title"] }], directives: [{ type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
884
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: CollabRowComponent, decorators: [{
885
+ type: Component,
886
+ args: [{
887
+ selector: "svc-collab-row",
888
+ templateUrl: "./collab-row.component.html",
889
+ styles: [":host { display: none; }"]
890
+ }]
891
+ }], propDecorators: { model: [{
892
+ type: Input
893
+ }] } });
894
+ AngularComponentFactory.Instance.registerComponent("svc-collab-row", CollabRowComponent);
895
+
896
+ // See the React FloatingPanel for what this renders. Markup only: the root node
897
+ // is handed to the model and the header's raw pointerdown is forwarded from the
898
+ // template; geometry, listeners, focus and hiding all live in the model.
899
+ class FloatingPanelComponent extends BaseAngular {
900
+ getModel() {
901
+ return this.model;
902
+ }
903
+ ngAfterViewInit() {
904
+ var _a;
905
+ if (!!((_a = this.root) === null || _a === void 0 ? void 0 : _a.nativeElement)) {
906
+ this.model.setComponentElement(this.root.nativeElement);
907
+ }
908
+ }
909
+ ngOnDestroy() {
910
+ this.model.resetComponentElement();
911
+ super.ngOnDestroy();
912
+ }
913
+ }
914
+ FloatingPanelComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: FloatingPanelComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
915
+ FloatingPanelComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: FloatingPanelComponent, selector: "svc-floating-panel", inputs: { model: "model" }, viewQueries: [{ propertyName: "root", first: true, predicate: ["root"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<ng-template #template>\n <div #root [class]=\"model.rootCss\" [ngStyle]=\"model.style\" role=\"dialog\" [attr.aria-modal]=\"false\"\n [attr.aria-labelledby]=\"model.titleId\" tabindex=\"-1\" (pointerdown)=\"model.bringToFront()\">\n <div [class]=\"model.headerCss\" (pointerdown)=\"model.onPointerDown($event)\">\n <span [id]=\"model.titleId\" class=\"svc-floating-panel__title\">{{ model.titleText }}</span>\n <span class=\"svc-floating-panel__drag\" aria-hidden=\"true\">\n <svg [iconName]=\"'icon-draghorizontal-24x16'\" [size]=\"'auto'\" sv-ng-svg-icon></svg>\n </span>\n <sv-action-bar [model]=\"model.headerToolbar\"></sv-action-bar>\n </div>\n <div [class]=\"model.bodyCss\">\n <ng-template [component]=\"{ name: model.contentComponentName, data: model.contentComponentData }\"></ng-template>\n </div>\n </div>\n</ng-template>\n", styles: [":host { display: none; }"], components: [{ type: i1.SvgIconComponent, selector: "'[sv-ng-svg-icon]'", inputs: ["size", "width", "height", "iconName", "partCss", "css", "title"] }, { type: i1.ActionBarComponent, selector: "sv-action-bar, sv-ng-action-bar", inputs: ["model", "handleClick"] }], directives: [{ type: i2.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { type: i1.DynamicComponentDirective, selector: "[component]", inputs: ["component"] }] });
916
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: FloatingPanelComponent, decorators: [{
917
+ type: Component,
918
+ args: [{
919
+ selector: "svc-floating-panel",
920
+ templateUrl: "./floating-panel.component.html",
921
+ styles: [":host { display: none; }"]
922
+ }]
923
+ }], propDecorators: { model: [{
924
+ type: Input
925
+ }], root: [{
926
+ type: ViewChild,
927
+ args: ["root"]
928
+ }] } });
929
+ AngularComponentFactory.Instance.registerComponent("svc-floating-panel", FloatingPanelComponent);
930
+
869
931
  class LinkValueQuestionComponent extends QuestionAngular {
870
932
  get clearCaption() {
871
933
  return editorLocalization.getString("pe.clear");
@@ -919,6 +981,22 @@ class TranslationTabComponent extends BaseAngular {
919
981
  getModel() {
920
982
  return this.model;
921
983
  }
984
+ get sideBySideModel() {
985
+ return this.model.isSideBySideForms ? this.model : undefined;
986
+ }
987
+ // The setters also fire with undefined when *ngIf removes the panes, which detaches the listeners.
988
+ set sourceScrollContainer(ref) {
989
+ var _a;
990
+ (_a = this.sideBySideModel) === null || _a === void 0 ? void 0 : _a.setSourceScrollElement(ref ? ref.nativeElement : undefined);
991
+ }
992
+ set targetScrollContainer(ref) {
993
+ var _a;
994
+ (_a = this.sideBySideModel) === null || _a === void 0 ? void 0 : _a.setTargetScrollElement(ref ? ref.nativeElement : undefined);
995
+ }
996
+ // The strings-grid model: the tab model itself in the default mode and in the side-by-side grid view.
997
+ get stringsModel() {
998
+ return this.sideBySideModel ? undefined : this.model;
999
+ }
922
1000
  // The strings survey is fully recreated on reset(). Its elements keep deterministic ids across
923
1001
  // instances, so *ngFor's element trackBy would reuse the disposed survey's (lazy-skeleton) rows.
924
1002
  // Keying the survey-content by the per-instance elementIdPrefix forces Angular to recreate it.
@@ -927,7 +1005,7 @@ class TranslationTabComponent extends BaseAngular {
927
1005
  }
928
1006
  }
929
1007
  TranslationTabComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: TranslationTabComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
930
- TranslationTabComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: TranslationTabComponent, selector: "svc-tab-translation", inputs: { model: "model" }, usesInheritance: true, ngImport: i0, template: "<ng-template #template>\n <div class=\"svc-creator-tab__content svc-translation-tab\" [class]=\"model.isEmpty ? 'svc-translation-tab--empty' : ''\">\n <svc-surface-placeholder *ngIf=\"model.isEmpty\" [name]=\"'translation'\"\n [placeholderTitleText]=\"model.placeholderTitleText\"\n [placeholderDescriptionText]=\"model.placeholderDescriptionText\">\n </svc-surface-placeholder>\n <div *ngIf=\"!model.isEmpty\" class=\"st-content\">\n <div class=\"svc-flex-column st-strings-wrapper\">\n <div class=\"svc-flex-row st-strings-header\">\n <ng-container *ngFor=\"let s of [model.stringsHeaderSurvey]; trackBy: trackStringsSurveyBy\">\n <survey-content [model]=\"s\"></survey-content>\n </ng-container>\n </div>\n <div class=\"svc-flex-row svc-plugin-tab__content st-strings\">\n <ng-container *ngFor=\"let s of [model.stringsSurvey]; trackBy: trackStringsSurveyBy\">\n <survey-content [model]=\"s\"></survey-content>\n </ng-container>\n </div>\n </div>\n </div>\n </div>\n</ng-template>", styles: [":host { display: none; }"], components: [{ type: SurfacePlaceholderComponent, selector: "svc-surface-placeholder", inputs: ["name", "placeholderTitleText", "placeholderDescriptionText"] }, { type: i1.SurveyContentComponent, selector: "survey-content", inputs: ["model"] }], directives: [{ type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }] });
1008
+ TranslationTabComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: TranslationTabComponent, selector: "svc-tab-translation", inputs: { model: "model" }, viewQueries: [{ propertyName: "sourceScrollContainer", first: true, predicate: ["sourceScrollContainer"], descendants: true }, { propertyName: "targetScrollContainer", first: true, predicate: ["targetScrollContainer"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<ng-template #template>\n <div class=\"svc-creator-tab__content svc-translation-tab\" [class]=\"model.isEmpty ? 'svc-translation-tab--empty' : ''\">\n <svc-surface-placeholder *ngIf=\"model.isEmpty\" [name]=\"'translation'\"\n [placeholderTitleText]=\"model.placeholderTitleText\"\n [placeholderDescriptionText]=\"model.placeholderDescriptionText\">\n </svc-surface-placeholder>\n <ng-container *ngIf=\"!model.isEmpty\">\n <div *ngIf=\"stringsModel\" class=\"st-content\">\n <div class=\"svc-flex-column st-strings-wrapper\">\n <div class=\"svc-flex-row st-strings-header\">\n <ng-container *ngFor=\"let s of [stringsModel.stringsHeaderSurvey]; trackBy: trackStringsSurveyBy\">\n <survey-content [model]=\"s\"></survey-content>\n </ng-container>\n </div>\n <div class=\"svc-flex-row svc-plugin-tab__content st-strings\">\n <ng-container *ngFor=\"let s of [stringsModel.stringsSurvey]; trackBy: trackStringsSurveyBy\">\n <survey-content [model]=\"s\"></survey-content>\n </ng-container>\n </div>\n </div>\n </div>\n <div *ngIf=\"sideBySideModel\" class=\"st-side-by-side\"\n [class]=\"sideBySideModel.targetSurvey ? '' : 'st-side-by-side--no-target'\">\n <div class=\"st-side-by-side__source\" #sourceScrollContainer>\n <ng-container *ngFor=\"let s of [sideBySideModel.sourceSurvey]; trackBy: trackStringsSurveyBy\">\n <survey-content [model]=\"s\"></survey-content>\n </ng-container>\n </div>\n <div *ngIf=\"sideBySideModel.targetSurvey\" class=\"st-side-by-side__target\" #targetScrollContainer>\n <ng-container *ngFor=\"let s of [sideBySideModel.targetSurvey]; trackBy: trackStringsSurveyBy\">\n <survey-content [model]=\"s\"></survey-content>\n </ng-container>\n </div>\n </div>\n </ng-container>\n </div>\n</ng-template>", styles: [":host { display: none; }"], components: [{ type: SurfacePlaceholderComponent, selector: "svc-surface-placeholder", inputs: ["name", "placeholderTitleText", "placeholderDescriptionText"] }, { type: i1.SurveyContentComponent, selector: "survey-content", inputs: ["model"] }], directives: [{ type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }] });
931
1009
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: TranslationTabComponent, decorators: [{
932
1010
  type: Component,
933
1011
  args: [{
@@ -937,6 +1015,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImpo
937
1015
  }]
938
1016
  }], propDecorators: { model: [{
939
1017
  type: Input
1018
+ }], sourceScrollContainer: [{
1019
+ type: ViewChild,
1020
+ args: ["sourceScrollContainer"]
1021
+ }], targetScrollContainer: [{
1022
+ type: ViewChild,
1023
+ args: ["targetScrollContainer"]
940
1024
  }] } });
941
1025
  AngularComponentFactory.Instance.registerComponent("svc-tab-translation", TranslationTabComponent);
942
1026
 
@@ -1498,7 +1582,7 @@ class QuestionDropdownAdornerDesignerComponent extends EmbeddedViewContentCompon
1498
1582
  componentData: {
1499
1583
  question: this.question,
1500
1584
  model: item,
1501
- inputType: "radio",
1585
+ inputType: this.adorner.itemInputType,
1502
1586
  data: this.question.getItemValueWrapperComponentData(item)
1503
1587
  }
1504
1588
  };
@@ -2222,6 +2306,52 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImpo
2222
2306
  }] } });
2223
2307
  AngularComponentFactory.Instance.registerComponent("svc-rating-question-content", QuestionRatingAdornerDesignerComponent);
2224
2308
 
2309
+ // The flattened choice list of a dropdown/tagbox question in the translation side-by-side
2310
+ // panes. Chrome-free: no designer adorner and no itemvalue wrappers - the choice texts render
2311
+ // through the survey's string renderer (editable in the target pane, plain in the source one).
2312
+ class TranslationDropdownQuestionComponent extends CreatorModelComponent {
2313
+ get question() {
2314
+ return this.componentData.model;
2315
+ }
2316
+ createModel() {
2317
+ if (this.componentData) {
2318
+ if (!!this.adorner) {
2319
+ this.adorner.dispose();
2320
+ }
2321
+ this.adorner = new TranslationDropdownViewModel(this.componentData.model, this.componentData.data ? this.componentData.data.translation : undefined);
2322
+ }
2323
+ }
2324
+ getPropertiesToTrack() {
2325
+ return ["componentData"];
2326
+ }
2327
+ getModel() {
2328
+ return this.adorner;
2329
+ }
2330
+ ngOnDestroy() {
2331
+ super.ngOnDestroy();
2332
+ if (!!this.adorner) {
2333
+ this.adorner.dispose();
2334
+ }
2335
+ }
2336
+ }
2337
+ TranslationDropdownQuestionComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: TranslationDropdownQuestionComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
2338
+ TranslationDropdownQuestionComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: TranslationDropdownQuestionComponent, selector: "svc-translation-dropdown-question", inputs: { componentName: "componentName", componentData: "componentData", contentTempl: "contentTempl" }, usesInheritance: true, ngImport: i0, template: "<ng-template #template>\n <ng-container *ngTemplateOutlet=\"contentTempl\"></ng-container>\n <div class=\"st-dropdown-choices--wrapper\">\n <div class=\"svc-question__dropdown-choices\">\n <div *ngFor=\"let item of adorner.getRenderedItems()\" [class]=\"adorner.getChoiceCss()\">\n <ng-template\n [component]=\"{ name: 'sv-ng-selectbase-item', data: { question: question, model: item, inputType: adorner.itemInputType } }\">\n </ng-template>\n </div>\n </div>\n <ng-container *ngIf=\"adorner.needToCollapse\">\n <ng-template [component]=\"{ name: 'sv-action-bar-item', data: { model: adorner.collapseAction } }\"></ng-template>\n </ng-container>\n </div>\n</ng-template>\n", styles: [":host { display: none; }"], directives: [{ type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }, { type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i1.DynamicComponentDirective, selector: "[component]", inputs: ["component"] }, { type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
2339
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: TranslationDropdownQuestionComponent, decorators: [{
2340
+ type: Component,
2341
+ args: [{
2342
+ selector: "svc-translation-dropdown-question",
2343
+ templateUrl: "./translation-dropdown-question.component.html",
2344
+ styles: [":host { display: none; }"]
2345
+ }]
2346
+ }], propDecorators: { componentName: [{
2347
+ type: Input
2348
+ }], componentData: [{
2349
+ type: Input
2350
+ }], contentTempl: [{
2351
+ type: Input
2352
+ }] } });
2353
+ AngularComponentFactory.Instance.registerComponent("svc-translation-dropdown-question", TranslationDropdownQuestionComponent);
2354
+
2225
2355
  class CreatorLogoImageComponent extends CreatorModelComponent {
2226
2356
  createModel() {
2227
2357
  this.model = new LogoImageViewModel(this.creator, null);
@@ -2409,7 +2539,7 @@ class FileEditorButtonComponent extends BaseAngular {
2409
2539
  }
2410
2540
  }
2411
2541
  FileEditorButtonComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: FileEditorButtonComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
2412
- FileEditorButtonComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: FileEditorButtonComponent, selector: "sv-ng-file-editor-button", inputs: { model: "model" }, usesInheritance: true, ngImport: i0, template: "<ng-template #template>\n <div>\n <label [class]=\"model.getActionBarItemCss()\" [attr.for]=\"question.inputId\" [attr.aria-label]=\"question.chooseButtonCaption\"\n (click)=\"question.chooseFiles($event)\" [key2click]>\n <svg [iconName]=\"model.iconName\" size=\"'auto'\" [title]=\"model.title\" [class]=\"model.cssClasses.itemIcon\" sv-ng-svg-icon></svg>\n </label>\n <input type=\"file\" [disabled]=\"model.disabled\" [class]=\"question.cssClasses.fileInput\" [attr.id]=\"question.inputId\"\n [attr.aria-required]=\"question.ariaRequired\" [attr.aria-label]=\"question.ariaLabel\"\n [attr.aria-invalid]=\"question.ariaInvalid\" [attr.aria-describedby]=\"question.ariaDescribedBy\" [attr.multiple]=\"false\"\n [title]=\"question.inputTitle\" [accept]=\"question.acceptedTypes\" (change)=\"question.onFileInputChange($event)\" tabindex=\"-1\">\n </div>\n</ng-template>\n", styles: ["{ :host { display: none; } }"], components: [{ type: i1.SvgIconComponent, selector: "'[sv-ng-svg-icon]'", inputs: ["size", "width", "height", "iconName", "partCss", "css", "title"] }], directives: [{ type: i1.Key2ClickDirective, selector: "[key2click]", inputs: ["key2click"] }] });
2542
+ FileEditorButtonComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: FileEditorButtonComponent, selector: "sv-ng-file-editor-button", inputs: { model: "model" }, usesInheritance: true, ngImport: i0, template: "<ng-template #template>\n <div>\n <label [class]=\"model.getActionBarItemCss()\" [attr.for]=\"question.inputId\" [attr.aria-label]=\"question.chooseButtonCaption\"\n (click)=\"question.chooseFiles($event)\" [key2click]>\n <svg [iconName]=\"model.iconName\" size=\"'auto'\" [title]=\"model.title\" [class]=\"model.cssClasses.itemIcon\" sv-ng-svg-icon></svg>\n <span class=\"sv-visuallyhidden\">{{ question.chooseButtonCaption }}</span>\n </label>\n <input type=\"file\" [disabled]=\"model.disabled\" [class]=\"question.cssClasses.fileInput\" [attr.id]=\"question.inputId\"\n [attr.aria-required]=\"question.ariaRequired\" [attr.aria-label]=\"question.ariaLabel\"\n [attr.aria-invalid]=\"question.ariaInvalid\" [attr.aria-describedby]=\"question.ariaDescribedBy\" [attr.multiple]=\"false\"\n [title]=\"question.inputTitle\" [accept]=\"question.acceptedTypes\" (change)=\"question.onFileInputChange($event)\" tabindex=\"-1\">\n </div>\n</ng-template>\n", styles: ["{ :host { display: none; } }"], components: [{ type: i1.SvgIconComponent, selector: "'[sv-ng-svg-icon]'", inputs: ["size", "width", "height", "iconName", "partCss", "css", "title"] }], directives: [{ type: i1.Key2ClickDirective, selector: "[key2click]", inputs: ["key2click"] }] });
2413
2543
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: FileEditorButtonComponent, decorators: [{
2414
2544
  type: Component,
2415
2545
  args: [{
@@ -2464,6 +2594,32 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImpo
2464
2594
  }] } });
2465
2595
  AngularComponentFactory.Instance.registerComponent("svc-translate-from-action", TranslateFromAction);
2466
2596
 
2597
+ // An item of the target language dropdown: the language name and, at the right edge, how much of
2598
+ // the survey is already translated into it. The counts are precomputed on the choices themselves
2599
+ // (see updateTargetLocaleChoices) - a language with no translations carries none. The angular list
2600
+ // item passes the item itself as "model" (react and vue pass it as "item").
2601
+ class TranslationLocaleItemComponent extends BaseAngular {
2602
+ getModel() {
2603
+ return this.model;
2604
+ }
2605
+ get progress() {
2606
+ return getTranslationLocaleProgress(this.model);
2607
+ }
2608
+ }
2609
+ TranslationLocaleItemComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: TranslationLocaleItemComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
2610
+ TranslationLocaleItemComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: TranslationLocaleItemComponent, selector: "svc-translation-locale-item", inputs: { model: "model" }, usesInheritance: true, ngImport: i0, template: "<ng-template #template>\n <div class=\"svc-translation-locale-item\">\n <span class=\"svc-translation-locale-item__name\">\n <sv-ng-string [model]=\"model.locTitle\"></sv-ng-string>\n </span>\n <span *ngIf=\"!!progress\" class=\"svc-translation-locale-item__progress\">{{ progress }}</span>\n </div>\n</ng-template>\n", styles: [":host { display: none }"], components: [{ type: i1.SurveyStringComponent, selector: "sv-ng-string, '[sv-ng-string]'", inputs: ["model"] }], directives: [{ type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
2611
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: TranslationLocaleItemComponent, decorators: [{
2612
+ type: Component,
2613
+ args: [{
2614
+ selector: "svc-translation-locale-item",
2615
+ templateUrl: "./translation-locale-item.component.html",
2616
+ styles: [":host { display: none }"]
2617
+ }]
2618
+ }], propDecorators: { model: [{
2619
+ type: Input
2620
+ }] } });
2621
+ AngularComponentFactory.Instance.registerComponent(translationLocaleItemComponentName, TranslationLocaleItemComponent);
2622
+
2467
2623
  class ContainerTabComponent extends BaseAngular {
2468
2624
  getModel() {
2469
2625
  return this.model;
@@ -2505,17 +2661,17 @@ AngularComponentFactory.Instance.registerComponent("svc-image-item-drag-action",
2505
2661
  class SurveyCreatorModule {
2506
2662
  }
2507
2663
  SurveyCreatorModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: SurveyCreatorModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
2508
- SurveyCreatorModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: SurveyCreatorModule, declarations: [CreatorComponent, DesignerTabComponent, PageDesignerComponent, QuestionDesignerComponent, PanelDesignerComponent, TabbledMenuComponent, TabbedMenuItemComponent, TabbedMenuItemWrapperComponent, SidebarComponent, SidebarPageComponent, SidebarDefaultHeaderComponent, ObjectSelectorComponent, SidebarPropertyGridHeaderComponent, PropertyGridPlaceholderComponent, SidebarHeaderComponent, TabControlComponent, TabsComponent, TabButtonComponent, PropertyGridComponent, SearchComponent, TextareaJsonEditorComponent, AceJsonEditorComponent, LogicTabComponent, ActionButtonComponent, QuestionPgErrorComponent, SurfacePlaceholderComponent, SwitcherComponent, LinkValueQuestionComponent, EmbeddedSurveyQuestionComponent, TranslationTabComponent, TranslationSkeletonComponent, SimulatorComponent, TestTabComponent, SurveyResultsComponent, SurveyResultsTableRowComponent, ThemeTabComponent,
2664
+ SurveyCreatorModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: SurveyCreatorModule, declarations: [CreatorComponent, DesignerTabComponent, PageDesignerComponent, QuestionDesignerComponent, PanelDesignerComponent, TabbledMenuComponent, TabbedMenuItemComponent, TabbedMenuItemWrapperComponent, SidebarComponent, SidebarPageComponent, SidebarDefaultHeaderComponent, ObjectSelectorComponent, SidebarPropertyGridHeaderComponent, PropertyGridPlaceholderComponent, SidebarHeaderComponent, TabControlComponent, TabsComponent, TabButtonComponent, PropertyGridComponent, SearchComponent, TextareaJsonEditorComponent, AceJsonEditorComponent, LogicTabComponent, ActionButtonComponent, QuestionPgErrorComponent, SurfacePlaceholderComponent, SwitcherComponent, CollabRowComponent, FloatingPanelComponent, LinkValueQuestionComponent, EmbeddedSurveyQuestionComponent, TranslationTabComponent, TranslationSkeletonComponent, SimulatorComponent, TestTabComponent, SurveyResultsComponent, SurveyResultsTableRowComponent, ThemeTabComponent,
2509
2665
  AdaptiveToolboxComponent, ToolboxToolComponent, ToolboxItemComponent, ToolboxItemGroupComponent, ToolboxListComponent, ToolboxCategoryComponent, StringEditorComponent, PageNavigatorComponent, PageNavigatorItemComponent,
2510
- QuestionDropdownDesignerComponent, QuestionDropdownAdornerDesignerComponent, QuestionImageDesignerComponent, QuestionImageAdornerDesignerComponent,
2666
+ QuestionDropdownDesignerComponent, QuestionDropdownAdornerDesignerComponent, QuestionImageDesignerComponent, QuestionImageAdornerDesignerComponent, TranslationDropdownQuestionComponent,
2511
2667
  ItemValueDesignerComponent, ImageItemValueDesignerComponent, LogicOperatorComponent, MatrixCellComponent, QuestionEditorComponent, CellQuestionDropdownComponent, CreatorRowComponent, DesignerPagesComponent, DesignerSurveyComponent, CellQuestionComponent, QuestionWidgetDesignerComponent, CreatorLogoImageComponent,
2512
2668
  QuestionRatingAdornerDesignerComponent, QuestionRatingDesignerComponent, QuestionSpinEditorComponent, SpinEditorButtonComponent, ColorItemComponent, QuestionColorComponent, SwatchComponent, QuestionFileEditorComponent, FileEditorButtonComponent, AddQuestionButtonComponent, QuestionBannerComponent, JsonErrorItemComponent,
2513
- TranslateFromAction, QuestionElementContentComponent, PageElementContentComponent, PageWrapperComponent, ComponentContainerComponent,
2514
- IconItemComponent, SideBarLaunchCardComponent, ContainerTabComponent, ImageItemDragActionComponent], imports: [CommonModule, FormsModule, SurveyModule], exports: [CreatorComponent, DesignerTabComponent, PageDesignerComponent, QuestionDesignerComponent, PanelDesignerComponent, TabbledMenuComponent, TabbedMenuItemComponent, TabbedMenuItemWrapperComponent, SidebarComponent, SidebarPageComponent, SidebarDefaultHeaderComponent, SidebarPropertyGridHeaderComponent, PropertyGridPlaceholderComponent, SidebarHeaderComponent, TabControlComponent, TabsComponent, TabButtonComponent, ObjectSelectorComponent, PropertyGridComponent, SearchComponent, TextareaJsonEditorComponent, AceJsonEditorComponent, LogicTabComponent, ActionButtonComponent, QuestionPgErrorComponent, SurfacePlaceholderComponent, SwitcherComponent, LinkValueQuestionComponent, EmbeddedSurveyQuestionComponent, TranslationTabComponent, TranslationSkeletonComponent, SimulatorComponent, TestTabComponent, SurveyResultsComponent, SurveyResultsTableRowComponent, ThemeTabComponent,
2669
+ TranslateFromAction, TranslationLocaleItemComponent, QuestionElementContentComponent, PageElementContentComponent, PageWrapperComponent, ComponentContainerComponent,
2670
+ IconItemComponent, SideBarLaunchCardComponent, ContainerTabComponent, ImageItemDragActionComponent], imports: [CommonModule, FormsModule, SurveyModule], exports: [CreatorComponent, DesignerTabComponent, PageDesignerComponent, QuestionDesignerComponent, PanelDesignerComponent, TabbledMenuComponent, TabbedMenuItemComponent, TabbedMenuItemWrapperComponent, SidebarComponent, SidebarPageComponent, SidebarDefaultHeaderComponent, SidebarPropertyGridHeaderComponent, PropertyGridPlaceholderComponent, SidebarHeaderComponent, TabControlComponent, TabsComponent, TabButtonComponent, ObjectSelectorComponent, PropertyGridComponent, SearchComponent, TextareaJsonEditorComponent, AceJsonEditorComponent, LogicTabComponent, ActionButtonComponent, QuestionPgErrorComponent, SurfacePlaceholderComponent, SwitcherComponent, CollabRowComponent, FloatingPanelComponent, LinkValueQuestionComponent, EmbeddedSurveyQuestionComponent, TranslationTabComponent, TranslationSkeletonComponent, SimulatorComponent, TestTabComponent, SurveyResultsComponent, SurveyResultsTableRowComponent, ThemeTabComponent,
2515
2671
  AdaptiveToolboxComponent, ToolboxToolComponent, ToolboxItemComponent, ToolboxItemGroupComponent, ToolboxListComponent, ToolboxCategoryComponent, StringEditorComponent, PageNavigatorComponent, PageNavigatorItemComponent,
2516
- QuestionDropdownDesignerComponent, QuestionDropdownAdornerDesignerComponent, QuestionImageDesignerComponent, QuestionImageAdornerDesignerComponent,
2672
+ QuestionDropdownDesignerComponent, QuestionDropdownAdornerDesignerComponent, QuestionImageDesignerComponent, QuestionImageAdornerDesignerComponent, TranslationDropdownQuestionComponent,
2517
2673
  ItemValueDesignerComponent, ImageItemValueDesignerComponent, LogicOperatorComponent, MatrixCellComponent, QuestionEditorComponent, CellQuestionDropdownComponent, CreatorRowComponent, DesignerPagesComponent, DesignerSurveyComponent, CellQuestionComponent, QuestionWidgetDesignerComponent, CreatorLogoImageComponent,
2518
- QuestionRatingAdornerDesignerComponent, QuestionRatingDesignerComponent, QuestionSpinEditorComponent, SpinEditorButtonComponent, ColorItemComponent, QuestionColorComponent, SwatchComponent, QuestionFileEditorComponent, FileEditorButtonComponent, AddQuestionButtonComponent, QuestionBannerComponent, JsonErrorItemComponent, TranslateFromAction, QuestionElementContentComponent, PageElementContentComponent, ComponentContainerComponent,
2674
+ QuestionRatingAdornerDesignerComponent, QuestionRatingDesignerComponent, QuestionSpinEditorComponent, SpinEditorButtonComponent, ColorItemComponent, QuestionColorComponent, SwatchComponent, QuestionFileEditorComponent, FileEditorButtonComponent, AddQuestionButtonComponent, QuestionBannerComponent, JsonErrorItemComponent, TranslateFromAction, TranslationLocaleItemComponent, QuestionElementContentComponent, PageElementContentComponent, ComponentContainerComponent,
2519
2675
  IconItemComponent, SideBarLaunchCardComponent, ContainerTabComponent, ImageItemDragActionComponent] });
2520
2676
  SurveyCreatorModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: SurveyCreatorModule, providers: [], imports: [[
2521
2677
  CommonModule, FormsModule, SurveyModule
@@ -2523,22 +2679,22 @@ SurveyCreatorModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", ver
2523
2679
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: SurveyCreatorModule, decorators: [{
2524
2680
  type: NgModule,
2525
2681
  args: [{
2526
- declarations: [CreatorComponent, DesignerTabComponent, PageDesignerComponent, QuestionDesignerComponent, PanelDesignerComponent, TabbledMenuComponent, TabbedMenuItemComponent, TabbedMenuItemWrapperComponent, SidebarComponent, SidebarPageComponent, SidebarDefaultHeaderComponent, ObjectSelectorComponent, SidebarPropertyGridHeaderComponent, PropertyGridPlaceholderComponent, SidebarHeaderComponent, TabControlComponent, TabsComponent, TabButtonComponent, PropertyGridComponent, SearchComponent, TextareaJsonEditorComponent, AceJsonEditorComponent, LogicTabComponent, ActionButtonComponent, QuestionPgErrorComponent, SurfacePlaceholderComponent, SwitcherComponent, LinkValueQuestionComponent, EmbeddedSurveyQuestionComponent, TranslationTabComponent, TranslationSkeletonComponent, SimulatorComponent, TestTabComponent, SurveyResultsComponent, SurveyResultsTableRowComponent, ThemeTabComponent,
2682
+ declarations: [CreatorComponent, DesignerTabComponent, PageDesignerComponent, QuestionDesignerComponent, PanelDesignerComponent, TabbledMenuComponent, TabbedMenuItemComponent, TabbedMenuItemWrapperComponent, SidebarComponent, SidebarPageComponent, SidebarDefaultHeaderComponent, ObjectSelectorComponent, SidebarPropertyGridHeaderComponent, PropertyGridPlaceholderComponent, SidebarHeaderComponent, TabControlComponent, TabsComponent, TabButtonComponent, PropertyGridComponent, SearchComponent, TextareaJsonEditorComponent, AceJsonEditorComponent, LogicTabComponent, ActionButtonComponent, QuestionPgErrorComponent, SurfacePlaceholderComponent, SwitcherComponent, CollabRowComponent, FloatingPanelComponent, LinkValueQuestionComponent, EmbeddedSurveyQuestionComponent, TranslationTabComponent, TranslationSkeletonComponent, SimulatorComponent, TestTabComponent, SurveyResultsComponent, SurveyResultsTableRowComponent, ThemeTabComponent,
2527
2683
  AdaptiveToolboxComponent, ToolboxToolComponent, ToolboxItemComponent, ToolboxItemGroupComponent, ToolboxListComponent, ToolboxCategoryComponent, StringEditorComponent, PageNavigatorComponent, PageNavigatorItemComponent,
2528
- QuestionDropdownDesignerComponent, QuestionDropdownAdornerDesignerComponent, QuestionImageDesignerComponent, QuestionImageAdornerDesignerComponent,
2684
+ QuestionDropdownDesignerComponent, QuestionDropdownAdornerDesignerComponent, QuestionImageDesignerComponent, QuestionImageAdornerDesignerComponent, TranslationDropdownQuestionComponent,
2529
2685
  ItemValueDesignerComponent, ImageItemValueDesignerComponent, LogicOperatorComponent, MatrixCellComponent, QuestionEditorComponent, CellQuestionDropdownComponent, CreatorRowComponent, DesignerPagesComponent, DesignerSurveyComponent, CellQuestionComponent, QuestionWidgetDesignerComponent, CreatorLogoImageComponent,
2530
2686
  QuestionRatingAdornerDesignerComponent, QuestionRatingDesignerComponent, QuestionSpinEditorComponent, SpinEditorButtonComponent, ColorItemComponent, QuestionColorComponent, SwatchComponent, QuestionFileEditorComponent, FileEditorButtonComponent, AddQuestionButtonComponent, QuestionBannerComponent, JsonErrorItemComponent,
2531
- TranslateFromAction, QuestionElementContentComponent, PageElementContentComponent, PageWrapperComponent, ComponentContainerComponent,
2687
+ TranslateFromAction, TranslationLocaleItemComponent, QuestionElementContentComponent, PageElementContentComponent, PageWrapperComponent, ComponentContainerComponent,
2532
2688
  IconItemComponent, SideBarLaunchCardComponent, ContainerTabComponent, ImageItemDragActionComponent],
2533
2689
  imports: [
2534
2690
  CommonModule, FormsModule, SurveyModule
2535
2691
  ],
2536
2692
  exports: [
2537
- CreatorComponent, DesignerTabComponent, PageDesignerComponent, QuestionDesignerComponent, PanelDesignerComponent, TabbledMenuComponent, TabbedMenuItemComponent, TabbedMenuItemWrapperComponent, SidebarComponent, SidebarPageComponent, SidebarDefaultHeaderComponent, SidebarPropertyGridHeaderComponent, PropertyGridPlaceholderComponent, SidebarHeaderComponent, TabControlComponent, TabsComponent, TabButtonComponent, ObjectSelectorComponent, PropertyGridComponent, SearchComponent, TextareaJsonEditorComponent, AceJsonEditorComponent, LogicTabComponent, ActionButtonComponent, QuestionPgErrorComponent, SurfacePlaceholderComponent, SwitcherComponent, LinkValueQuestionComponent, EmbeddedSurveyQuestionComponent, TranslationTabComponent, TranslationSkeletonComponent, SimulatorComponent, TestTabComponent, SurveyResultsComponent, SurveyResultsTableRowComponent, ThemeTabComponent,
2693
+ CreatorComponent, DesignerTabComponent, PageDesignerComponent, QuestionDesignerComponent, PanelDesignerComponent, TabbledMenuComponent, TabbedMenuItemComponent, TabbedMenuItemWrapperComponent, SidebarComponent, SidebarPageComponent, SidebarDefaultHeaderComponent, SidebarPropertyGridHeaderComponent, PropertyGridPlaceholderComponent, SidebarHeaderComponent, TabControlComponent, TabsComponent, TabButtonComponent, ObjectSelectorComponent, PropertyGridComponent, SearchComponent, TextareaJsonEditorComponent, AceJsonEditorComponent, LogicTabComponent, ActionButtonComponent, QuestionPgErrorComponent, SurfacePlaceholderComponent, SwitcherComponent, CollabRowComponent, FloatingPanelComponent, LinkValueQuestionComponent, EmbeddedSurveyQuestionComponent, TranslationTabComponent, TranslationSkeletonComponent, SimulatorComponent, TestTabComponent, SurveyResultsComponent, SurveyResultsTableRowComponent, ThemeTabComponent,
2538
2694
  AdaptiveToolboxComponent, ToolboxToolComponent, ToolboxItemComponent, ToolboxItemGroupComponent, ToolboxListComponent, ToolboxCategoryComponent, StringEditorComponent, PageNavigatorComponent, PageNavigatorItemComponent,
2539
- QuestionDropdownDesignerComponent, QuestionDropdownAdornerDesignerComponent, QuestionImageDesignerComponent, QuestionImageAdornerDesignerComponent,
2695
+ QuestionDropdownDesignerComponent, QuestionDropdownAdornerDesignerComponent, QuestionImageDesignerComponent, QuestionImageAdornerDesignerComponent, TranslationDropdownQuestionComponent,
2540
2696
  ItemValueDesignerComponent, ImageItemValueDesignerComponent, LogicOperatorComponent, MatrixCellComponent, QuestionEditorComponent, CellQuestionDropdownComponent, CreatorRowComponent, DesignerPagesComponent, DesignerSurveyComponent, CellQuestionComponent, QuestionWidgetDesignerComponent, CreatorLogoImageComponent,
2541
- QuestionRatingAdornerDesignerComponent, QuestionRatingDesignerComponent, QuestionSpinEditorComponent, SpinEditorButtonComponent, ColorItemComponent, QuestionColorComponent, SwatchComponent, QuestionFileEditorComponent, FileEditorButtonComponent, AddQuestionButtonComponent, QuestionBannerComponent, JsonErrorItemComponent, TranslateFromAction, QuestionElementContentComponent, PageElementContentComponent, ComponentContainerComponent,
2697
+ QuestionRatingAdornerDesignerComponent, QuestionRatingDesignerComponent, QuestionSpinEditorComponent, SpinEditorButtonComponent, ColorItemComponent, QuestionColorComponent, SwatchComponent, QuestionFileEditorComponent, FileEditorButtonComponent, AddQuestionButtonComponent, QuestionBannerComponent, JsonErrorItemComponent, TranslateFromAction, TranslationLocaleItemComponent, QuestionElementContentComponent, PageElementContentComponent, ComponentContainerComponent,
2542
2698
  IconItemComponent, SideBarLaunchCardComponent, ContainerTabComponent, ImageItemDragActionComponent
2543
2699
  ],
2544
2700
  providers: [],
@@ -2549,5 +2705,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImpo
2549
2705
  * Generated bundle index. Do not edit.
2550
2706
  */
2551
2707
 
2552
- export { AceJsonEditorComponent, ActionButtonComponent, AdaptiveToolboxComponent, AddQuestionButtonComponent, CellQuestionComponent, CellQuestionDropdownComponent, ColorItemComponent, ComponentContainerComponent, ContainerTabComponent, CreatorComponent, CreatorLogoImageComponent, CreatorRowComponent, DesignerPagesComponent, DesignerSurveyComponent, DesignerTabComponent, EmbeddedSurveyQuestionComponent, FileEditorButtonComponent, IconItemComponent, ImageItemDragActionComponent, ImageItemValueDesignerComponent, ItemValueDesignerComponent, JsonErrorItemComponent, LinkValueQuestionComponent, LogicOperatorComponent, LogicTabComponent, MatrixCellComponent, ObjectSelectorComponent, PageDesignerComponent, PageElementContentComponent, PageNavigatorComponent, PageNavigatorItemComponent, PanelDesignerComponent, PropertyGridComponent, PropertyGridPlaceholderComponent, QuestionBannerComponent, QuestionColorComponent, QuestionDesignerComponent, QuestionDropdownAdornerDesignerComponent, QuestionDropdownDesignerComponent, QuestionEditorComponent, QuestionElementContentComponent, QuestionFileEditorComponent, QuestionImageAdornerDesignerComponent, QuestionImageDesignerComponent, QuestionPgErrorComponent, QuestionRatingAdornerDesignerComponent, QuestionRatingDesignerComponent, QuestionSpinEditorComponent, QuestionWidgetDesignerComponent, SearchComponent, SideBarLaunchCardComponent, SidebarComponent, SidebarDefaultHeaderComponent, SidebarHeaderComponent, SidebarPageComponent, SidebarPropertyGridHeaderComponent, SimulatorComponent, SpinEditorButtonComponent, StringEditorComponent, SurfacePlaceholderComponent, SurveyCreatorModule, SurveyResultsComponent, SurveyResultsTableRowComponent, SwatchComponent, SwitcherComponent, TabButtonComponent, TabControlComponent, TabbedMenuItemComponent, TabbedMenuItemWrapperComponent, TabbledMenuComponent, TabsComponent, TestTabComponent, TextareaJsonEditorComponent, ThemeTabComponent, ToolboxCategoryComponent, ToolboxItemComponent, ToolboxItemGroupComponent, ToolboxListComponent, ToolboxToolComponent, TranslateFromAction, TranslationSkeletonComponent, TranslationTabComponent };
2708
+ export { AceJsonEditorComponent, ActionButtonComponent, AdaptiveToolboxComponent, AddQuestionButtonComponent, CellQuestionComponent, CellQuestionDropdownComponent, CollabRowComponent, ColorItemComponent, ComponentContainerComponent, ContainerTabComponent, CreatorComponent, CreatorLogoImageComponent, CreatorRowComponent, DesignerPagesComponent, DesignerSurveyComponent, DesignerTabComponent, EmbeddedSurveyQuestionComponent, FileEditorButtonComponent, FloatingPanelComponent, IconItemComponent, ImageItemDragActionComponent, ImageItemValueDesignerComponent, ItemValueDesignerComponent, JsonErrorItemComponent, LinkValueQuestionComponent, LogicOperatorComponent, LogicTabComponent, MatrixCellComponent, ObjectSelectorComponent, PageDesignerComponent, PageElementContentComponent, PageNavigatorComponent, PageNavigatorItemComponent, PanelDesignerComponent, PropertyGridComponent, PropertyGridPlaceholderComponent, QuestionBannerComponent, QuestionColorComponent, QuestionDesignerComponent, QuestionDropdownAdornerDesignerComponent, QuestionDropdownDesignerComponent, QuestionEditorComponent, QuestionElementContentComponent, QuestionFileEditorComponent, QuestionImageAdornerDesignerComponent, QuestionImageDesignerComponent, QuestionPgErrorComponent, QuestionRatingAdornerDesignerComponent, QuestionRatingDesignerComponent, QuestionSpinEditorComponent, QuestionWidgetDesignerComponent, SearchComponent, SideBarLaunchCardComponent, SidebarComponent, SidebarDefaultHeaderComponent, SidebarHeaderComponent, SidebarPageComponent, SidebarPropertyGridHeaderComponent, SimulatorComponent, SpinEditorButtonComponent, StringEditorComponent, SurfacePlaceholderComponent, SurveyCreatorModule, SurveyResultsComponent, SurveyResultsTableRowComponent, SwatchComponent, SwitcherComponent, TabButtonComponent, TabControlComponent, TabbedMenuItemComponent, TabbedMenuItemWrapperComponent, TabbledMenuComponent, TabsComponent, TestTabComponent, TextareaJsonEditorComponent, ThemeTabComponent, ToolboxCategoryComponent, ToolboxItemComponent, ToolboxItemGroupComponent, ToolboxListComponent, ToolboxToolComponent, TranslateFromAction, TranslationDropdownQuestionComponent, TranslationLocaleItemComponent, TranslationSkeletonComponent, TranslationTabComponent };
2553
2709
  //# sourceMappingURL=survey-creator-angular.js.map