survey-angular-ui 1.9.48 → 1.9.49

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (34) hide show
  1. package/angular-ui.d.ts +3 -0
  2. package/angular-ui.module.d.ts +86 -82
  3. package/base-angular.d.ts +2 -1
  4. package/components/action-bar/action.component.d.ts +0 -1
  5. package/components/dropdown/dropdown.component.d.ts +9 -4
  6. package/components/list/list.component.d.ts +1 -0
  7. package/components/tagbox/tagbox-filter.component.d.ts +10 -0
  8. package/components/tagbox/tagbox.component.d.ts +3 -2
  9. package/element.component.d.ts +2 -0
  10. package/esm2020/angular-ui.mjs +4 -1
  11. package/esm2020/angular-ui.module.mjs +16 -12
  12. package/esm2020/base-angular.mjs +4 -1
  13. package/esm2020/components/action-bar/action.component.mjs +3 -6
  14. package/esm2020/components/dropdown/dropdown.component.mjs +33 -10
  15. package/esm2020/components/list/list.component.mjs +6 -3
  16. package/esm2020/components/renderAs/boolean-checkbox/boolean-checkbox.component.mjs +3 -3
  17. package/esm2020/components/renderAs/boolean-radio/boolean-radio-item.component.mjs +3 -3
  18. package/esm2020/components/tagbox/tagbox-filter.component.mjs +22 -0
  19. package/esm2020/components/tagbox/tagbox-item.component.mjs +3 -3
  20. package/esm2020/components/tagbox/tagbox.component.mjs +12 -8
  21. package/esm2020/element.component.mjs +20 -3
  22. package/esm2020/questions/button-group/button-group-item.component.mjs +29 -0
  23. package/esm2020/questions/button-group/button-group.component.mjs +14 -0
  24. package/esm2020/questions/matrixtable.component.mjs +3 -3
  25. package/esm2020/template-renderer.component.mjs +26 -0
  26. package/esm2020/utils/dynamic.directive.mjs +6 -2
  27. package/fesm2015/survey-angular-ui.mjs +158 -42
  28. package/fesm2015/survey-angular-ui.mjs.map +1 -1
  29. package/fesm2020/survey-angular-ui.mjs +157 -42
  30. package/fesm2020/survey-angular-ui.mjs.map +1 -1
  31. package/package.json +1 -1
  32. package/questions/button-group/button-group-item.component.d.ts +14 -0
  33. package/questions/button-group/button-group.component.d.ts +7 -0
  34. package/template-renderer.component.d.ts +11 -0
@@ -8,10 +8,10 @@ export class BooleanRadioItemComponent {
8
8
  }
9
9
  }
10
10
  BooleanRadioItemComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: BooleanRadioItemComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
11
- BooleanRadioItemComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0.3", type: BooleanRadioItemComponent, selector: "sv-ng-boolean-radio-item", inputs: { question: "question", value: "value", locText: "locText" }, ngImport: i0, template: "<div role=\"presentation\" [class]=\"question.getRadioItemClass(question.cssClasses, value)\">\n <label [class]=\"question.cssClasses.radioLabel\">\n <input\n type=\"radio\"\n [attr.name]=\"question.name\" [attr.aria-describedby]=\"question.ariaDescribedBy\" [value]=\"value\" [(ngModel)]=\"question.value\"\n [disabled]=\"question.isInputReadOnly\" [class]=\"question.cssClasses.itemControl || ''\"\n />\n <span *ngIf=\"question.cssClasses.materialRadioDecorator\" [class]=\"question.cssClasses.materialRadioDecorator\"></span>\n <span [class]=\"question.cssClasses.radioControlLabel\" [model]=\"locText\" sv-ng-string>\n </span>\n </label>\n</div>\n", components: [{ type: i1.SurveyStringComponent, selector: "sv-ng-string, '[sv-ng-string]'", inputs: ["model"] }], directives: [{ type: i2.RadioControlValueAccessor, selector: "input[type=radio][formControlName],input[type=radio][formControl],input[type=radio][ngModel]", inputs: ["name", "formControlName", "value"] }, { type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
11
+ BooleanRadioItemComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0.3", type: BooleanRadioItemComponent, selector: "sv-ng-boolean-radio-item", inputs: { question: "question", value: "value", locText: "locText" }, ngImport: i0, template: "<div role=\"presentation\" [class]=\"question.getRadioItemClass(question.cssClasses, value)\">\n <label [class]=\"question.cssClasses.radioLabel\">\n <input\n type=\"radio\"\n [attr.name]=\"question.name\" [attr.aria-describedby]=\"question.ariaDescribedBy\" [value]=\"value\" [(ngModel)]=\"question.value\"\n [disabled]=\"question.isInputReadOnly\" [class]=\"question.cssClasses.itemRadioControl || ''\"\n />\n <span *ngIf=\"question.cssClasses.materialRadioDecorator\" [class]=\"question.cssClasses.materialRadioDecorator\"></span>\n <span [class]=\"question.cssClasses.radioControlLabel\" [model]=\"locText\" sv-ng-string>\n </span>\n </label>\n</div>\n", components: [{ type: i1.SurveyStringComponent, selector: "sv-ng-string, '[sv-ng-string]'", inputs: ["model"] }], directives: [{ type: i2.RadioControlValueAccessor, selector: "input[type=radio][formControlName],input[type=radio][formControl],input[type=radio][ngModel]", inputs: ["name", "formControlName", "value"] }, { type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
12
12
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: BooleanRadioItemComponent, decorators: [{
13
13
  type: Component,
14
- args: [{ selector: "sv-ng-boolean-radio-item", template: "<div role=\"presentation\" [class]=\"question.getRadioItemClass(question.cssClasses, value)\">\n <label [class]=\"question.cssClasses.radioLabel\">\n <input\n type=\"radio\"\n [attr.name]=\"question.name\" [attr.aria-describedby]=\"question.ariaDescribedBy\" [value]=\"value\" [(ngModel)]=\"question.value\"\n [disabled]=\"question.isInputReadOnly\" [class]=\"question.cssClasses.itemControl || ''\"\n />\n <span *ngIf=\"question.cssClasses.materialRadioDecorator\" [class]=\"question.cssClasses.materialRadioDecorator\"></span>\n <span [class]=\"question.cssClasses.radioControlLabel\" [model]=\"locText\" sv-ng-string>\n </span>\n </label>\n</div>\n" }]
14
+ args: [{ selector: "sv-ng-boolean-radio-item", template: "<div role=\"presentation\" [class]=\"question.getRadioItemClass(question.cssClasses, value)\">\n <label [class]=\"question.cssClasses.radioLabel\">\n <input\n type=\"radio\"\n [attr.name]=\"question.name\" [attr.aria-describedby]=\"question.ariaDescribedBy\" [value]=\"value\" [(ngModel)]=\"question.value\"\n [disabled]=\"question.isInputReadOnly\" [class]=\"question.cssClasses.itemRadioControl || ''\"\n />\n <span *ngIf=\"question.cssClasses.materialRadioDecorator\" [class]=\"question.cssClasses.materialRadioDecorator\"></span>\n <span [class]=\"question.cssClasses.radioControlLabel\" [model]=\"locText\" sv-ng-string>\n </span>\n </label>\n</div>\n" }]
15
15
  }], ctorParameters: function () { return []; }, propDecorators: { question: [{
16
16
  type: Input
17
17
  }], value: [{
@@ -19,4 +19,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImpor
19
19
  }], locText: [{
20
20
  type: Input
21
21
  }] } });
22
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYm9vbGVhbi1yYWRpby1pdGVtLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL3N1cnZleS1hbmd1bGFyLXVpL3NyYy9jb21wb25lbnRzL3JlbmRlckFzL2Jvb2xlYW4tcmFkaW8vYm9vbGVhbi1yYWRpby1pdGVtLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL3N1cnZleS1hbmd1bGFyLXVpL3NyYy9jb21wb25lbnRzL3JlbmRlckFzL2Jvb2xlYW4tcmFkaW8vYm9vbGVhbi1yYWRpby1pdGVtLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7OztBQU1qRCxNQUFNLE9BQU8seUJBQXlCO0lBSXBDO0lBRUEsQ0FBQzs7c0hBTlUseUJBQXlCOzBHQUF6Qix5QkFBeUIsc0lDTnRDLDZxQkFZQTsyRkROYSx5QkFBeUI7a0JBSnJDLFNBQVM7K0JBQ0UsMEJBQTBCOzBFQUkzQixRQUFRO3NCQUFoQixLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0IH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7IExvY2FsaXphYmxlU3RyaW5nLCBRdWVzdGlvbkJvb2xlYW5Nb2RlbCB9IGZyb20gXCJzdXJ2ZXktY29yZVwiO1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiBcInN2LW5nLWJvb2xlYW4tcmFkaW8taXRlbVwiLFxuICB0ZW1wbGF0ZVVybDogXCJib29sZWFuLXJhZGlvLWl0ZW0uY29tcG9uZW50Lmh0bWxcIixcbn0pXG5leHBvcnQgY2xhc3MgQm9vbGVhblJhZGlvSXRlbUNvbXBvbmVudCB7XG4gIEBJbnB1dCgpIHF1ZXN0aW9uITogUXVlc3Rpb25Cb29sZWFuTW9kZWw7XG4gIEBJbnB1dCgpIHZhbHVlITogYm9vbGVhbjtcbiAgQElucHV0KCkgbG9jVGV4dCE6IExvY2FsaXphYmxlU3RyaW5nO1xuICBjb25zdHJ1Y3RvcigpIHtcblxuICB9XG59XG4iLCI8ZGl2IHJvbGU9XCJwcmVzZW50YXRpb25cIiBbY2xhc3NdPVwicXVlc3Rpb24uZ2V0UmFkaW9JdGVtQ2xhc3MocXVlc3Rpb24uY3NzQ2xhc3NlcywgdmFsdWUpXCI+XG4gIDxsYWJlbCBbY2xhc3NdPVwicXVlc3Rpb24uY3NzQ2xhc3Nlcy5yYWRpb0xhYmVsXCI+XG4gICAgPGlucHV0XG4gICAgICB0eXBlPVwicmFkaW9cIlxuICAgICAgW2F0dHIubmFtZV09XCJxdWVzdGlvbi5uYW1lXCIgW2F0dHIuYXJpYS1kZXNjcmliZWRieV09XCJxdWVzdGlvbi5hcmlhRGVzY3JpYmVkQnlcIiBbdmFsdWVdPVwidmFsdWVcIiBbKG5nTW9kZWwpXT1cInF1ZXN0aW9uLnZhbHVlXCJcbiAgICAgIFtkaXNhYmxlZF09XCJxdWVzdGlvbi5pc0lucHV0UmVhZE9ubHlcIiBbY2xhc3NdPVwicXVlc3Rpb24uY3NzQ2xhc3Nlcy5pdGVtQ29udHJvbCB8fCAnJ1wiXG4gICAgLz5cbiAgICA8c3BhbiAqbmdJZj1cInF1ZXN0aW9uLmNzc0NsYXNzZXMubWF0ZXJpYWxSYWRpb0RlY29yYXRvclwiIFtjbGFzc109XCJxdWVzdGlvbi5jc3NDbGFzc2VzLm1hdGVyaWFsUmFkaW9EZWNvcmF0b3JcIj48L3NwYW4+XG4gICAgPHNwYW4gW2NsYXNzXT1cInF1ZXN0aW9uLmNzc0NsYXNzZXMucmFkaW9Db250cm9sTGFiZWxcIiBbbW9kZWxdPVwibG9jVGV4dFwiIHN2LW5nLXN0cmluZz5cbiAgICA8L3NwYW4+XG4gIDwvbGFiZWw+XG48L2Rpdj5cbiJdfQ==
22
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYm9vbGVhbi1yYWRpby1pdGVtLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL3N1cnZleS1hbmd1bGFyLXVpL3NyYy9jb21wb25lbnRzL3JlbmRlckFzL2Jvb2xlYW4tcmFkaW8vYm9vbGVhbi1yYWRpby1pdGVtLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL3N1cnZleS1hbmd1bGFyLXVpL3NyYy9jb21wb25lbnRzL3JlbmRlckFzL2Jvb2xlYW4tcmFkaW8vYm9vbGVhbi1yYWRpby1pdGVtLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7OztBQU1qRCxNQUFNLE9BQU8seUJBQXlCO0lBSXBDO0lBRUEsQ0FBQzs7c0hBTlUseUJBQXlCOzBHQUF6Qix5QkFBeUIsc0lDTnRDLGtyQkFZQTsyRkROYSx5QkFBeUI7a0JBSnJDLFNBQVM7K0JBQ0UsMEJBQTBCOzBFQUkzQixRQUFRO3NCQUFoQixLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0IH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7IExvY2FsaXphYmxlU3RyaW5nLCBRdWVzdGlvbkJvb2xlYW5Nb2RlbCB9IGZyb20gXCJzdXJ2ZXktY29yZVwiO1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiBcInN2LW5nLWJvb2xlYW4tcmFkaW8taXRlbVwiLFxuICB0ZW1wbGF0ZVVybDogXCJib29sZWFuLXJhZGlvLWl0ZW0uY29tcG9uZW50Lmh0bWxcIixcbn0pXG5leHBvcnQgY2xhc3MgQm9vbGVhblJhZGlvSXRlbUNvbXBvbmVudCB7XG4gIEBJbnB1dCgpIHF1ZXN0aW9uITogUXVlc3Rpb25Cb29sZWFuTW9kZWw7XG4gIEBJbnB1dCgpIHZhbHVlITogYm9vbGVhbjtcbiAgQElucHV0KCkgbG9jVGV4dCE6IExvY2FsaXphYmxlU3RyaW5nO1xuICBjb25zdHJ1Y3RvcigpIHtcblxuICB9XG59XG4iLCI8ZGl2IHJvbGU9XCJwcmVzZW50YXRpb25cIiBbY2xhc3NdPVwicXVlc3Rpb24uZ2V0UmFkaW9JdGVtQ2xhc3MocXVlc3Rpb24uY3NzQ2xhc3NlcywgdmFsdWUpXCI+XG4gIDxsYWJlbCBbY2xhc3NdPVwicXVlc3Rpb24uY3NzQ2xhc3Nlcy5yYWRpb0xhYmVsXCI+XG4gICAgPGlucHV0XG4gICAgICB0eXBlPVwicmFkaW9cIlxuICAgICAgW2F0dHIubmFtZV09XCJxdWVzdGlvbi5uYW1lXCIgW2F0dHIuYXJpYS1kZXNjcmliZWRieV09XCJxdWVzdGlvbi5hcmlhRGVzY3JpYmVkQnlcIiBbdmFsdWVdPVwidmFsdWVcIiBbKG5nTW9kZWwpXT1cInF1ZXN0aW9uLnZhbHVlXCJcbiAgICAgIFtkaXNhYmxlZF09XCJxdWVzdGlvbi5pc0lucHV0UmVhZE9ubHlcIiBbY2xhc3NdPVwicXVlc3Rpb24uY3NzQ2xhc3Nlcy5pdGVtUmFkaW9Db250cm9sIHx8ICcnXCJcbiAgICAvPlxuICAgIDxzcGFuICpuZ0lmPVwicXVlc3Rpb24uY3NzQ2xhc3Nlcy5tYXRlcmlhbFJhZGlvRGVjb3JhdG9yXCIgW2NsYXNzXT1cInF1ZXN0aW9uLmNzc0NsYXNzZXMubWF0ZXJpYWxSYWRpb0RlY29yYXRvclwiPjwvc3Bhbj5cbiAgICA8c3BhbiBbY2xhc3NdPVwicXVlc3Rpb24uY3NzQ2xhc3Nlcy5yYWRpb0NvbnRyb2xMYWJlbFwiIFttb2RlbF09XCJsb2NUZXh0XCIgc3Ytbmctc3RyaW5nPlxuICAgIDwvc3Bhbj5cbiAgPC9sYWJlbD5cbjwvZGl2PlxuIl19
@@ -0,0 +1,22 @@
1
+ import { Component, Input } from "@angular/core";
2
+ import { BaseAngular } from "../../base-angular";
3
+ import { AngularComponentFactory } from "../../component-factory";
4
+ import * as i0 from "@angular/core";
5
+ import * as i1 from "@angular/forms";
6
+ export class TagboxFilterComponent extends BaseAngular {
7
+ getModel() {
8
+ return this.model;
9
+ }
10
+ }
11
+ TagboxFilterComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: TagboxFilterComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
12
+ TagboxFilterComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0.3", type: TagboxFilterComponent, selector: "sv-tagbox-filter", inputs: { model: "model", question: "question" }, usesInheritance: true, ngImport: i0, template: "<ng-template #template>\n <input type=\"text\" autocomplete=\"off\" [(ngModel)]=\"model.filterString\" [attr.id]=\"question.getInputId()\"\n [class]=\"question.cssClasses.filterStringInput\" [attr.readonly]=\"!model.searchEnabled ? true : null\"\n [attr.disabled]=\"question.isInputReadOnly ? true : null\"\n [attr.size]=\"!model.filterString ? 1 : null\"\n [attr.placeholder]=\"model.filterStringPlaceholder\" (keyup)=\"model.inputKeyUpHandler($event)\"\n (blur)=\"model.onBlur($event)\" />\n</ng-template>", styles: [":host{display:none}\n"], directives: [{ type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }] });
13
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: TagboxFilterComponent, decorators: [{
14
+ type: Component,
15
+ args: [{ selector: "sv-tagbox-filter", template: "<ng-template #template>\n <input type=\"text\" autocomplete=\"off\" [(ngModel)]=\"model.filterString\" [attr.id]=\"question.getInputId()\"\n [class]=\"question.cssClasses.filterStringInput\" [attr.readonly]=\"!model.searchEnabled ? true : null\"\n [attr.disabled]=\"question.isInputReadOnly ? true : null\"\n [attr.size]=\"!model.filterString ? 1 : null\"\n [attr.placeholder]=\"model.filterStringPlaceholder\" (keyup)=\"model.inputKeyUpHandler($event)\"\n (blur)=\"model.onBlur($event)\" />\n</ng-template>", styles: [":host{display:none}\n"] }]
16
+ }], propDecorators: { model: [{
17
+ type: Input
18
+ }], question: [{
19
+ type: Input
20
+ }] } });
21
+ AngularComponentFactory.Instance.registerComponent("sv-tagbox-filter", TagboxFilterComponent);
22
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFnYm94LWZpbHRlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9zdXJ2ZXktYW5ndWxhci11aS9zcmMvY29tcG9uZW50cy90YWdib3gvdGFnYm94LWZpbHRlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9zdXJ2ZXktYW5ndWxhci11aS9zcmMvY29tcG9uZW50cy90YWdib3gvdGFnYm94LWZpbHRlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUVqRCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDakQsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0seUJBQXlCLENBQUM7OztBQU9sRSxNQUFNLE9BQU8scUJBQXNCLFNBQVEsV0FBVztJQUlwRCxRQUFRO1FBQ04sT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDO0lBQ3BCLENBQUM7O2tIQU5VLHFCQUFxQjtzR0FBckIscUJBQXFCLGlJQ1ZsQyxtaUJBT2M7MkZER0QscUJBQXFCO2tCQUxqQyxTQUFTOytCQUNFLGtCQUFrQjs4QkFLbkIsS0FBSztzQkFBYixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7O0FBT1IsdUJBQXVCLENBQUMsUUFBUSxDQUFDLGlCQUFpQixDQUFDLGtCQUFrQixFQUFFLHFCQUFxQixDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0IH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7IERyb3Bkb3duTXVsdGlTZWxlY3RMaXN0TW9kZWwsIFF1ZXN0aW9uVGFnYm94TW9kZWwgfSBmcm9tIFwic3VydmV5LWNvcmVcIjtcbmltcG9ydCB7IEJhc2VBbmd1bGFyIH0gZnJvbSBcIi4uLy4uL2Jhc2UtYW5ndWxhclwiO1xuaW1wb3J0IHsgQW5ndWxhckNvbXBvbmVudEZhY3RvcnkgfSBmcm9tIFwiLi4vLi4vY29tcG9uZW50LWZhY3RvcnlcIjtcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiBcInN2LXRhZ2JveC1maWx0ZXJcIixcbiAgdGVtcGxhdGVVcmw6IFwiLi90YWdib3gtZmlsdGVyLmNvbXBvbmVudC5odG1sXCIsXG4gIHN0eWxlVXJsczogW1wiLi4vLi4vaGlkZS1ob3N0LnNjc3NcIl1cbn0pXG5leHBvcnQgY2xhc3MgVGFnYm94RmlsdGVyQ29tcG9uZW50IGV4dGVuZHMgQmFzZUFuZ3VsYXIge1xuICBASW5wdXQoKSBtb2RlbCE6IERyb3Bkb3duTXVsdGlTZWxlY3RMaXN0TW9kZWw7XG4gIEBJbnB1dCgpIHF1ZXN0aW9uITogUXVlc3Rpb25UYWdib3hNb2RlbDtcblxuICBnZXRNb2RlbCgpIHtcbiAgICByZXR1cm4gdGhpcy5tb2RlbDtcbiAgfVxufVxuXG5Bbmd1bGFyQ29tcG9uZW50RmFjdG9yeS5JbnN0YW5jZS5yZWdpc3RlckNvbXBvbmVudChcInN2LXRhZ2JveC1maWx0ZXJcIiwgVGFnYm94RmlsdGVyQ29tcG9uZW50KTsiLCI8bmctdGVtcGxhdGUgI3RlbXBsYXRlPlxuICAgIDxpbnB1dCB0eXBlPVwidGV4dFwiIGF1dG9jb21wbGV0ZT1cIm9mZlwiIFsobmdNb2RlbCldPVwibW9kZWwuZmlsdGVyU3RyaW5nXCIgW2F0dHIuaWRdPVwicXVlc3Rpb24uZ2V0SW5wdXRJZCgpXCJcbiAgICAgICAgW2NsYXNzXT1cInF1ZXN0aW9uLmNzc0NsYXNzZXMuZmlsdGVyU3RyaW5nSW5wdXRcIiBbYXR0ci5yZWFkb25seV09XCIhbW9kZWwuc2VhcmNoRW5hYmxlZCA/IHRydWUgOiBudWxsXCJcbiAgICAgICAgW2F0dHIuZGlzYWJsZWRdPVwicXVlc3Rpb24uaXNJbnB1dFJlYWRPbmx5ID8gdHJ1ZSA6IG51bGxcIlxuICAgICAgICBbYXR0ci5zaXplXT1cIiFtb2RlbC5maWx0ZXJTdHJpbmcgPyAxIDogbnVsbFwiXG4gICAgICAgIFthdHRyLnBsYWNlaG9sZGVyXT1cIm1vZGVsLmZpbHRlclN0cmluZ1BsYWNlaG9sZGVyXCIgKGtleXVwKT1cIm1vZGVsLmlucHV0S2V5VXBIYW5kbGVyKCRldmVudClcIlxuICAgICAgICAoYmx1cik9XCJtb2RlbC5vbkJsdXIoJGV2ZW50KVwiIC8+XG48L25nLXRlbXBsYXRlPiJdfQ==
@@ -14,14 +14,14 @@ export class TagboxItemComponent extends BaseAngular {
14
14
  }
15
15
  }
16
16
  TagboxItemComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: TagboxItemComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
17
- TagboxItemComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0.3", type: TagboxItemComponent, selector: "sv-ng-tagbox-item, '[sv-ng-tagbox-item]'", inputs: { item: "item", question: "question" }, usesInheritance: true, ngImport: i0, template: "<li class=\"sv-tagbox__item\">\n <div class=\"sv-tagbox__item-text\" [model]=\"item.locText\" sv-ng-string></div> \n <div [class]=\"question.cssClasses.cleanItemButton\" (click)=\"removeItem($event)\">\n <svg [iconName]=\"question.cssClasses.cleanItemButtonIconId\" [partCss]=\"question.cssClasses.cleanItemButtonSvg\" [size]=\"16\" sv-ng-svg-icon></svg>\n </div>\n</li>", components: [{ type: i1.SurveyStringComponent, selector: "sv-ng-string, '[sv-ng-string]'", inputs: ["model"] }, { type: i2.SvgIconComponent, selector: "'[sv-ng-svg-icon]'", inputs: ["size", "width", "height", "iconName", "partCss", "css", "title"] }] });
17
+ TagboxItemComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0.3", type: TagboxItemComponent, selector: "sv-ng-tagbox-item, '[sv-ng-tagbox-item]'", inputs: { item: "item", question: "question" }, usesInheritance: true, ngImport: i0, template: "<div class=\"sv-tagbox__item\">\n <div class=\"sv-tagbox__item-text\" [model]=\"item.locText\" sv-ng-string></div> \n <div [class]=\"question.cssClasses.cleanItemButton\" (click)=\"removeItem($event)\">\n <svg [iconName]=\"question.cssClasses.cleanItemButtonIconId\" [partCss]=\"question.cssClasses.cleanItemButtonSvg\" [size]=\"16\" sv-ng-svg-icon></svg>\n </div>\n</div>", components: [{ type: i1.SurveyStringComponent, selector: "sv-ng-string, '[sv-ng-string]'", inputs: ["model"] }, { type: i2.SvgIconComponent, selector: "'[sv-ng-svg-icon]'", inputs: ["size", "width", "height", "iconName", "partCss", "css", "title"] }] });
18
18
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: TagboxItemComponent, decorators: [{
19
19
  type: Component,
20
- args: [{ selector: "sv-ng-tagbox-item, '[sv-ng-tagbox-item]'", template: "<li class=\"sv-tagbox__item\">\n <div class=\"sv-tagbox__item-text\" [model]=\"item.locText\" sv-ng-string></div> \n <div [class]=\"question.cssClasses.cleanItemButton\" (click)=\"removeItem($event)\">\n <svg [iconName]=\"question.cssClasses.cleanItemButtonIconId\" [partCss]=\"question.cssClasses.cleanItemButtonSvg\" [size]=\"16\" sv-ng-svg-icon></svg>\n </div>\n</li>" }]
20
+ args: [{ selector: "sv-ng-tagbox-item, '[sv-ng-tagbox-item]'", template: "<div class=\"sv-tagbox__item\">\n <div class=\"sv-tagbox__item-text\" [model]=\"item.locText\" sv-ng-string></div> \n <div [class]=\"question.cssClasses.cleanItemButton\" (click)=\"removeItem($event)\">\n <svg [iconName]=\"question.cssClasses.cleanItemButtonIconId\" [partCss]=\"question.cssClasses.cleanItemButtonSvg\" [size]=\"16\" sv-ng-svg-icon></svg>\n </div>\n</div>" }]
21
21
  }], propDecorators: { item: [{
22
22
  type: Input
23
23
  }], question: [{
24
24
  type: Input
25
25
  }] } });
26
26
  AngularComponentFactory.Instance.registerComponent("sv-tagbox-item", TagboxItemComponent);
27
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFnYm94LWl0ZW0uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvc3VydmV5LWFuZ3VsYXItdWkvc3JjL2NvbXBvbmVudHMvdGFnYm94L3RhZ2JveC1pdGVtLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL3N1cnZleS1hbmd1bGFyLXVpL3NyYy9jb21wb25lbnRzL3RhZ2JveC90YWdib3gtaXRlbS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUVqRCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDakQsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0seUJBQXlCLENBQUM7Ozs7QUFNbEUsTUFBTSxPQUFPLG1CQUFvQixTQUFRLFdBQVc7SUFJbEQsVUFBVSxDQUFDLEtBQVU7UUFDbkIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxpQkFBaUIsQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUM5RCxLQUFLLENBQUMsZUFBZSxFQUFFLENBQUM7SUFDMUIsQ0FBQztJQUVELFFBQVE7UUFDTixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUM7SUFDbkIsQ0FBQzs7Z0hBWFUsbUJBQW1CO29HQUFuQixtQkFBbUIsdUpDVGhDLDJYQUtLOzJGRElRLG1CQUFtQjtrQkFKL0IsU0FBUzsrQkFDRSwwQ0FBMEM7OEJBSTNDLElBQUk7c0JBQVosS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLOztBQVlSLHVCQUF1QixDQUFDLFFBQVEsQ0FBQyxpQkFBaUIsQ0FBQyxnQkFBZ0IsRUFBRSxtQkFBbUIsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQgeyBJdGVtVmFsdWUsIFF1ZXN0aW9uVGFnYm94TW9kZWwgfSBmcm9tIFwic3VydmV5LWNvcmVcIjtcbmltcG9ydCB7IEJhc2VBbmd1bGFyIH0gZnJvbSBcIi4uLy4uL2Jhc2UtYW5ndWxhclwiO1xuaW1wb3J0IHsgQW5ndWxhckNvbXBvbmVudEZhY3RvcnkgfSBmcm9tIFwiLi4vLi4vY29tcG9uZW50LWZhY3RvcnlcIjtcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiBcInN2LW5nLXRhZ2JveC1pdGVtLCAnW3N2LW5nLXRhZ2JveC1pdGVtXSdcIixcbiAgdGVtcGxhdGVVcmw6IFwiLi90YWdib3gtaXRlbS5jb21wb25lbnQuaHRtbFwiLFxufSlcbmV4cG9ydCBjbGFzcyBUYWdib3hJdGVtQ29tcG9uZW50IGV4dGVuZHMgQmFzZUFuZ3VsYXIge1xuICBASW5wdXQoKSBpdGVtITogSXRlbVZhbHVlO1xuICBASW5wdXQoKSBxdWVzdGlvbiE6IFF1ZXN0aW9uVGFnYm94TW9kZWw7XG5cbiAgcmVtb3ZlSXRlbShldmVudDogYW55KSB7XG4gICAgdGhpcy5xdWVzdGlvbi5kcm9wZG93bkxpc3RNb2RlbC5kZXNlbGVjdEl0ZW0odGhpcy5pdGVtLnZhbHVlKTtcbiAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgfVxuXG4gIGdldE1vZGVsKCkge1xuICAgIHJldHVybiB0aGlzLml0ZW07XG4gIH1cbn1cblxuQW5ndWxhckNvbXBvbmVudEZhY3RvcnkuSW5zdGFuY2UucmVnaXN0ZXJDb21wb25lbnQoXCJzdi10YWdib3gtaXRlbVwiLCBUYWdib3hJdGVtQ29tcG9uZW50KTsiLCI8bGkgY2xhc3M9XCJzdi10YWdib3hfX2l0ZW1cIj5cbiAgPGRpdiBjbGFzcz1cInN2LXRhZ2JveF9faXRlbS10ZXh0XCIgW21vZGVsXT1cIml0ZW0ubG9jVGV4dFwiIHN2LW5nLXN0cmluZz48L2Rpdj4gIFxuICA8ZGl2IFtjbGFzc109XCJxdWVzdGlvbi5jc3NDbGFzc2VzLmNsZWFuSXRlbUJ1dHRvblwiIChjbGljayk9XCJyZW1vdmVJdGVtKCRldmVudClcIj5cbiAgICA8c3ZnIFtpY29uTmFtZV09XCJxdWVzdGlvbi5jc3NDbGFzc2VzLmNsZWFuSXRlbUJ1dHRvbkljb25JZFwiIFtwYXJ0Q3NzXT1cInF1ZXN0aW9uLmNzc0NsYXNzZXMuY2xlYW5JdGVtQnV0dG9uU3ZnXCIgW3NpemVdPVwiMTZcIiBzdi1uZy1zdmctaWNvbj48L3N2Zz5cbiAgPC9kaXY+XG48L2xpPiJdfQ==
27
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFnYm94LWl0ZW0uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvc3VydmV5LWFuZ3VsYXItdWkvc3JjL2NvbXBvbmVudHMvdGFnYm94L3RhZ2JveC1pdGVtLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL3N1cnZleS1hbmd1bGFyLXVpL3NyYy9jb21wb25lbnRzL3RhZ2JveC90YWdib3gtaXRlbS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUVqRCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDakQsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0seUJBQXlCLENBQUM7Ozs7QUFNbEUsTUFBTSxPQUFPLG1CQUFvQixTQUFRLFdBQVc7SUFJbEQsVUFBVSxDQUFDLEtBQVU7UUFDbkIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxpQkFBaUIsQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUM5RCxLQUFLLENBQUMsZUFBZSxFQUFFLENBQUM7SUFDMUIsQ0FBQztJQUVELFFBQVE7UUFDTixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUM7SUFDbkIsQ0FBQzs7Z0hBWFUsbUJBQW1CO29HQUFuQixtQkFBbUIsdUpDVGhDLDZYQUtNOzJGRElPLG1CQUFtQjtrQkFKL0IsU0FBUzsrQkFDRSwwQ0FBMEM7OEJBSTNDLElBQUk7c0JBQVosS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLOztBQVlSLHVCQUF1QixDQUFDLFFBQVEsQ0FBQyxpQkFBaUIsQ0FBQyxnQkFBZ0IsRUFBRSxtQkFBbUIsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQgeyBJdGVtVmFsdWUsIFF1ZXN0aW9uVGFnYm94TW9kZWwgfSBmcm9tIFwic3VydmV5LWNvcmVcIjtcbmltcG9ydCB7IEJhc2VBbmd1bGFyIH0gZnJvbSBcIi4uLy4uL2Jhc2UtYW5ndWxhclwiO1xuaW1wb3J0IHsgQW5ndWxhckNvbXBvbmVudEZhY3RvcnkgfSBmcm9tIFwiLi4vLi4vY29tcG9uZW50LWZhY3RvcnlcIjtcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiBcInN2LW5nLXRhZ2JveC1pdGVtLCAnW3N2LW5nLXRhZ2JveC1pdGVtXSdcIixcbiAgdGVtcGxhdGVVcmw6IFwiLi90YWdib3gtaXRlbS5jb21wb25lbnQuaHRtbFwiLFxufSlcbmV4cG9ydCBjbGFzcyBUYWdib3hJdGVtQ29tcG9uZW50IGV4dGVuZHMgQmFzZUFuZ3VsYXIge1xuICBASW5wdXQoKSBpdGVtITogSXRlbVZhbHVlO1xuICBASW5wdXQoKSBxdWVzdGlvbiE6IFF1ZXN0aW9uVGFnYm94TW9kZWw7XG5cbiAgcmVtb3ZlSXRlbShldmVudDogYW55KSB7XG4gICAgdGhpcy5xdWVzdGlvbi5kcm9wZG93bkxpc3RNb2RlbC5kZXNlbGVjdEl0ZW0odGhpcy5pdGVtLnZhbHVlKTtcbiAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgfVxuXG4gIGdldE1vZGVsKCkge1xuICAgIHJldHVybiB0aGlzLml0ZW07XG4gIH1cbn1cblxuQW5ndWxhckNvbXBvbmVudEZhY3RvcnkuSW5zdGFuY2UucmVnaXN0ZXJDb21wb25lbnQoXCJzdi10YWdib3gtaXRlbVwiLCBUYWdib3hJdGVtQ29tcG9uZW50KTsiLCI8ZGl2IGNsYXNzPVwic3YtdGFnYm94X19pdGVtXCI+XG4gIDxkaXYgY2xhc3M9XCJzdi10YWdib3hfX2l0ZW0tdGV4dFwiIFttb2RlbF09XCJpdGVtLmxvY1RleHRcIiBzdi1uZy1zdHJpbmc+PC9kaXY+ICBcbiAgPGRpdiBbY2xhc3NdPVwicXVlc3Rpb24uY3NzQ2xhc3Nlcy5jbGVhbkl0ZW1CdXR0b25cIiAoY2xpY2spPVwicmVtb3ZlSXRlbSgkZXZlbnQpXCI+XG4gICAgPHN2ZyBbaWNvbk5hbWVdPVwicXVlc3Rpb24uY3NzQ2xhc3Nlcy5jbGVhbkl0ZW1CdXR0b25JY29uSWRcIiBbcGFydENzc109XCJxdWVzdGlvbi5jc3NDbGFzc2VzLmNsZWFuSXRlbUJ1dHRvblN2Z1wiIFtzaXplXT1cIjE2XCIgc3Ytbmctc3ZnLWljb24+PC9zdmc+XG4gIDwvZGl2PlxuPC9kaXY+Il19
@@ -1,17 +1,21 @@
1
1
  import { Component, Input } from "@angular/core";
2
- import { DropdownListModel } from "survey-core";
2
+ import { DropdownMultiSelectListModel } from "survey-core";
3
3
  import * as i0 from "@angular/core";
4
4
  import * as i1 from "./tagbox-item.component";
5
5
  import * as i2 from "../svg-icon/svg-icon.component";
6
6
  import * as i3 from "../popup/popup.component";
7
7
  import * as i4 from "@angular/common";
8
- import * as i5 from "../../utils/ng-show.directive";
8
+ import * as i5 from "../../utils/dynamic.directive";
9
+ import * as i6 from "../../utils/ng-show.directive";
9
10
  export class TagboxComponent {
10
- get popupModel() {
11
- return this.dropdownListModel.popupModel;
11
+ get dropdownModel() {
12
+ return this.dropdownListModel;
13
+ }
14
+ getModel() {
15
+ return this.model;
12
16
  }
13
17
  ngOnInit() {
14
- this.dropdownListModel = this.model.dropdownListModel || new DropdownListModel(this.model);
18
+ this.dropdownListModel = this.model.dropdownListModel || new DropdownMultiSelectListModel(this.model);
15
19
  }
16
20
  ngOnDestroy() {
17
21
  this.dropdownListModel?.dispose();
@@ -30,11 +34,11 @@ export class TagboxComponent {
30
34
  }
31
35
  }
32
36
  TagboxComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: TagboxComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
33
- TagboxComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0.3", type: TagboxComponent, selector: "sv-ng-tagbox, '[sv-ng-tagbox]'", inputs: { model: "model" }, ngImport: i0, template: "<div [class]=\"model.cssClasses.selectWrapper\">\n <div *ngIf=\"!model.isReadOnly\" [tabindex]=\"model.isInputReadOnly ? null : 0\" [class]=\"model.getControlClass()\"\n [attr.disabled]=\"model.isInputReadOnly ? true : null\" (click)=\"click($event)\" (blur)=\"blur($event)\"\n (keyup)=\"keyup($event)\" [attr.id]=\"model.inputId\" [attr.aria-required]=\"model.ariaRequired\"\n [attr.aria-label]=\"model.ariaLabel\" [attr.aria-invalid]=\"model.ariaInvalid\"\n [attr.aria-describedby]=\"model.ariaDescribedBy\" [attr.role]=\"model.ariaRole\">\n <div *ngIf=\"model.isEmpty()\" [class]=\"model.cssClasses.controlValue\">{{ model.placeholder }}</div>\n <ul *ngIf=\"!model.isEmpty()\" [class]=\"model.cssClasses.controlValue\">\n <sv-ng-tagbox-item *ngFor=\"let item of model.selectedItems\" [item]=\"item\" [question]=\"model\"></sv-ng-tagbox-item>\n </ul>\n <div *ngIf=\"(model.allowClear && model.cssClasses.cleanButtonIconId)\" [class]=\"model.cssClasses.cleanButton\"\n (click)=\"clear($event)\" [visible]=\"!model.isEmpty()\">\n <!-- ko component: { name: 'sv-svg-icon', params: { css: model.cssClasses.cleanButtonSvg, iconName: model.cssClasses.cleanButtonIconId, size: 'auto' } } -->\n <!-- /ko -->\n <svg [iconName]=\"model.cssClasses.cleanButtonIconId\" [partCss]=\"model.cssClasses.cleanButtonSvg\" [title]=\"model.cleanButtonCaption\"\n [size]=\"'auto'\" sv-ng-svg-icon></svg>\n </div>\n </div>\n <sv-ng-popup *ngIf=\"!model.isReadOnly\" [popupModel]=\"popupModel\"></sv-ng-popup>\n <div disabled *ngIf=\"model.isReadOnly\" [class]=\"model.getControlClass()\" [attr.id]=\"model.inputId\">{{ model.readOnlyText }}</div>\n</div>", components: [{ type: i1.TagboxItemComponent, selector: "sv-ng-tagbox-item, '[sv-ng-tagbox-item]'", inputs: ["item", "question"] }, { type: i2.SvgIconComponent, selector: "'[sv-ng-svg-icon]'", inputs: ["size", "width", "height", "iconName", "partCss", "css", "title"] }, { type: i3.PopupComponent, selector: "sv-ng-popup, '[sv-ng-popup]'", inputs: ["popupModel"] }], directives: [{ type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i5.VisibleDirective, selector: "[visible]", inputs: ["visible"] }] });
37
+ TagboxComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0.3", type: TagboxComponent, selector: "sv-ng-tagbox, '[sv-ng-tagbox]'", inputs: { model: "model" }, ngImport: i0, template: "<div [class]=\"model.cssClasses.selectWrapper\">\n <div *ngIf=\"!model.isReadOnly\" [attr.tabindex]=\"(model.isInputReadOnly || dropdownModel.searchEnabled) ? null : 0\" [class]=\"model.getControlClass()\"\n [attr.disabled]=\"model.isInputReadOnly ? true : null\" (click)=\"click($event)\" (blur)=\"blur($event)\"\n (keyup)=\"keyup($event)\" [attr.id]=\"model.inputId\" [attr.aria-required]=\"model.ariaRequired\"\n [attr.aria-label]=\"model.ariaLabel\" [attr.aria-invalid]=\"model.ariaInvalid\"\n [attr.aria-describedby]=\"model.ariaDescribedBy\" [attr.role]=\"model.ariaRole\">\n <div [class]=\"model.cssClasses.controlValue\">\n <ng-container *ngIf=\"!model.isEmpty()\">\n <sv-ng-tagbox-item *ngFor=\"let item of model.selectedItems\" [item]=\"item\" [question]=\"model\">\n </sv-ng-tagbox-item>\n </ng-container>\n <ng-template [component]=\"{ name: 'sv-tagbox-filter', data: { model: dropdownModel, question: model } }\"></ng-template>\n </div>\n <div *ngIf=\"(model.allowClear && model.cssClasses.cleanButtonIconId)\" [class]=\"model.cssClasses.cleanButton\"\n (click)=\"clear($event)\" [visible]=\"!model.isEmpty()\">\n <!-- ko component: { name: 'sv-svg-icon', params: { css: model.cssClasses.cleanButtonSvg, iconName: model.cssClasses.cleanButtonIconId, size: 'auto' } } -->\n <!-- /ko -->\n <svg [iconName]=\"model.cssClasses.cleanButtonIconId\" [partCss]=\"model.cssClasses.cleanButtonSvg\" [title]=\"model.cleanButtonCaption\"\n [size]=\"'auto'\" sv-ng-svg-icon></svg>\n </div>\n </div>\n <sv-ng-popup *ngIf=\"!model.isReadOnly\" [popupModel]=\"model.popupModel\"></sv-ng-popup>\n <div disabled *ngIf=\"model.isReadOnly\" [class]=\"model.getControlClass()\" [attr.id]=\"model.inputId\">{{ model.readOnlyText }}</div>\n</div>", components: [{ type: i1.TagboxItemComponent, selector: "sv-ng-tagbox-item, '[sv-ng-tagbox-item]'", inputs: ["item", "question"] }, { type: i2.SvgIconComponent, selector: "'[sv-ng-svg-icon]'", inputs: ["size", "width", "height", "iconName", "partCss", "css", "title"] }, { type: i3.PopupComponent, selector: "sv-ng-popup, '[sv-ng-popup]'", inputs: ["popupModel"] }], directives: [{ type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i5.DynamicComponentDirective, selector: "[component]", inputs: ["component"] }, { type: i6.VisibleDirective, selector: "[visible]", inputs: ["visible"] }] });
34
38
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: TagboxComponent, decorators: [{
35
39
  type: Component,
36
- args: [{ selector: "sv-ng-tagbox, '[sv-ng-tagbox]'", template: "<div [class]=\"model.cssClasses.selectWrapper\">\n <div *ngIf=\"!model.isReadOnly\" [tabindex]=\"model.isInputReadOnly ? null : 0\" [class]=\"model.getControlClass()\"\n [attr.disabled]=\"model.isInputReadOnly ? true : null\" (click)=\"click($event)\" (blur)=\"blur($event)\"\n (keyup)=\"keyup($event)\" [attr.id]=\"model.inputId\" [attr.aria-required]=\"model.ariaRequired\"\n [attr.aria-label]=\"model.ariaLabel\" [attr.aria-invalid]=\"model.ariaInvalid\"\n [attr.aria-describedby]=\"model.ariaDescribedBy\" [attr.role]=\"model.ariaRole\">\n <div *ngIf=\"model.isEmpty()\" [class]=\"model.cssClasses.controlValue\">{{ model.placeholder }}</div>\n <ul *ngIf=\"!model.isEmpty()\" [class]=\"model.cssClasses.controlValue\">\n <sv-ng-tagbox-item *ngFor=\"let item of model.selectedItems\" [item]=\"item\" [question]=\"model\"></sv-ng-tagbox-item>\n </ul>\n <div *ngIf=\"(model.allowClear && model.cssClasses.cleanButtonIconId)\" [class]=\"model.cssClasses.cleanButton\"\n (click)=\"clear($event)\" [visible]=\"!model.isEmpty()\">\n <!-- ko component: { name: 'sv-svg-icon', params: { css: model.cssClasses.cleanButtonSvg, iconName: model.cssClasses.cleanButtonIconId, size: 'auto' } } -->\n <!-- /ko -->\n <svg [iconName]=\"model.cssClasses.cleanButtonIconId\" [partCss]=\"model.cssClasses.cleanButtonSvg\" [title]=\"model.cleanButtonCaption\"\n [size]=\"'auto'\" sv-ng-svg-icon></svg>\n </div>\n </div>\n <sv-ng-popup *ngIf=\"!model.isReadOnly\" [popupModel]=\"popupModel\"></sv-ng-popup>\n <div disabled *ngIf=\"model.isReadOnly\" [class]=\"model.getControlClass()\" [attr.id]=\"model.inputId\">{{ model.readOnlyText }}</div>\n</div>" }]
40
+ args: [{ selector: "sv-ng-tagbox, '[sv-ng-tagbox]'", template: "<div [class]=\"model.cssClasses.selectWrapper\">\n <div *ngIf=\"!model.isReadOnly\" [attr.tabindex]=\"(model.isInputReadOnly || dropdownModel.searchEnabled) ? null : 0\" [class]=\"model.getControlClass()\"\n [attr.disabled]=\"model.isInputReadOnly ? true : null\" (click)=\"click($event)\" (blur)=\"blur($event)\"\n (keyup)=\"keyup($event)\" [attr.id]=\"model.inputId\" [attr.aria-required]=\"model.ariaRequired\"\n [attr.aria-label]=\"model.ariaLabel\" [attr.aria-invalid]=\"model.ariaInvalid\"\n [attr.aria-describedby]=\"model.ariaDescribedBy\" [attr.role]=\"model.ariaRole\">\n <div [class]=\"model.cssClasses.controlValue\">\n <ng-container *ngIf=\"!model.isEmpty()\">\n <sv-ng-tagbox-item *ngFor=\"let item of model.selectedItems\" [item]=\"item\" [question]=\"model\">\n </sv-ng-tagbox-item>\n </ng-container>\n <ng-template [component]=\"{ name: 'sv-tagbox-filter', data: { model: dropdownModel, question: model } }\"></ng-template>\n </div>\n <div *ngIf=\"(model.allowClear && model.cssClasses.cleanButtonIconId)\" [class]=\"model.cssClasses.cleanButton\"\n (click)=\"clear($event)\" [visible]=\"!model.isEmpty()\">\n <!-- ko component: { name: 'sv-svg-icon', params: { css: model.cssClasses.cleanButtonSvg, iconName: model.cssClasses.cleanButtonIconId, size: 'auto' } } -->\n <!-- /ko -->\n <svg [iconName]=\"model.cssClasses.cleanButtonIconId\" [partCss]=\"model.cssClasses.cleanButtonSvg\" [title]=\"model.cleanButtonCaption\"\n [size]=\"'auto'\" sv-ng-svg-icon></svg>\n </div>\n </div>\n <sv-ng-popup *ngIf=\"!model.isReadOnly\" [popupModel]=\"model.popupModel\"></sv-ng-popup>\n <div disabled *ngIf=\"model.isReadOnly\" [class]=\"model.getControlClass()\" [attr.id]=\"model.inputId\">{{ model.readOnlyText }}</div>\n</div>" }]
37
41
  }], propDecorators: { model: [{
38
42
  type: Input
39
43
  }] } });
40
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFnYm94LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL3N1cnZleS1hbmd1bGFyLXVpL3NyYy9jb21wb25lbnRzL3RhZ2JveC90YWdib3guY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvc3VydmV5LWFuZ3VsYXItdWkvc3JjL2NvbXBvbmVudHMvdGFnYm94L3RhZ2JveC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBcUIsTUFBTSxlQUFlLENBQUM7QUFDcEUsT0FBTyxFQUFFLGlCQUFpQixFQUFjLE1BQU0sYUFBYSxDQUFDOzs7Ozs7O0FBTTVELE1BQU0sT0FBTyxlQUFlO0lBSXhCLElBQUksVUFBVTtRQUNaLE9BQU8sSUFBSSxDQUFDLGlCQUFpQixDQUFDLFVBQVUsQ0FBQztJQUMzQyxDQUFDO0lBRUQsUUFBUTtRQUNOLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLGlCQUFpQixJQUFJLElBQUksaUJBQWlCLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzdGLENBQUM7SUFFRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLGlCQUFpQixFQUFFLE9BQU8sRUFBRSxDQUFDO0lBQ3BDLENBQUM7SUFFRCxLQUFLLENBQUMsS0FBVTtRQUNkLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDekMsQ0FBQztJQUNELEtBQUssQ0FBQyxLQUFVO1FBQ2QsSUFBSSxDQUFDLGlCQUFpQixFQUFFLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUN6QyxDQUFDO0lBQ0QsS0FBSyxDQUFDLEtBQVU7UUFDZCxJQUFJLENBQUMsaUJBQWlCLEVBQUUsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3pDLENBQUM7SUFDRCxJQUFJLENBQUMsS0FBVTtRQUNiLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDeEMsQ0FBQzs7NEdBM0JRLGVBQWU7Z0dBQWYsZUFBZSxrR0NQNUIsb3ZEQW9CTTsyRkRiTyxlQUFlO2tCQUozQixTQUFTOytCQUNFLGdDQUFnQzs4QkFJL0IsS0FBSztzQkFBYixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgT25EZXN0cm95LCBPbkluaXQgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHsgRHJvcGRvd25MaXN0TW9kZWwsIFBvcHVwTW9kZWwgfSBmcm9tIFwic3VydmV5LWNvcmVcIjtcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiBcInN2LW5nLXRhZ2JveCwgJ1tzdi1uZy10YWdib3hdJ1wiLFxuICB0ZW1wbGF0ZVVybDogXCIuL3RhZ2JveC5jb21wb25lbnQuaHRtbFwiXG59KVxuZXhwb3J0IGNsYXNzIFRhZ2JveENvbXBvbmVudCBpbXBsZW1lbnRzIE9uRGVzdHJveSwgT25Jbml0IHtcbiAgICBASW5wdXQoKSBtb2RlbDogYW55O1xuICAgIHByaXZhdGUgZHJvcGRvd25MaXN0TW9kZWwhOiBEcm9wZG93bkxpc3RNb2RlbDtcblxuICAgIGdldCBwb3B1cE1vZGVsKCk6IFBvcHVwTW9kZWwge1xuICAgICAgcmV0dXJuIHRoaXMuZHJvcGRvd25MaXN0TW9kZWwucG9wdXBNb2RlbDtcbiAgICB9XG5cbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgIHRoaXMuZHJvcGRvd25MaXN0TW9kZWwgPSB0aGlzLm1vZGVsLmRyb3Bkb3duTGlzdE1vZGVsIHx8IG5ldyBEcm9wZG93bkxpc3RNb2RlbCh0aGlzLm1vZGVsKTtcbiAgICB9XG5cbiAgICBuZ09uRGVzdHJveSgpIHtcbiAgICAgIHRoaXMuZHJvcGRvd25MaXN0TW9kZWw/LmRpc3Bvc2UoKTtcbiAgICB9XG5cbiAgICBjbGljayhldmVudDogYW55KSB7XG4gICAgICB0aGlzLmRyb3Bkb3duTGlzdE1vZGVsPy5vbkNsaWNrKGV2ZW50KTtcbiAgICB9XG4gICAgY2xlYXIoZXZlbnQ6IGFueSkge1xuICAgICAgdGhpcy5kcm9wZG93bkxpc3RNb2RlbD8ub25DbGVhcihldmVudCk7XG4gICAgfVxuICAgIGtleXVwKGV2ZW50OiBhbnkpIHtcbiAgICAgIHRoaXMuZHJvcGRvd25MaXN0TW9kZWw/Lm9uS2V5VXAoZXZlbnQpO1xuICAgIH1cbiAgICBibHVyKGV2ZW50OiBhbnkpIHtcbiAgICAgIHRoaXMuZHJvcGRvd25MaXN0TW9kZWw/Lm9uQmx1cihldmVudCk7XG4gICAgfVxufSIsIjxkaXYgW2NsYXNzXT1cIm1vZGVsLmNzc0NsYXNzZXMuc2VsZWN0V3JhcHBlclwiPlxuICAgIDxkaXYgKm5nSWY9XCIhbW9kZWwuaXNSZWFkT25seVwiIFt0YWJpbmRleF09XCJtb2RlbC5pc0lucHV0UmVhZE9ubHkgPyBudWxsIDogMFwiIFtjbGFzc109XCJtb2RlbC5nZXRDb250cm9sQ2xhc3MoKVwiXG4gICAgICAgIFthdHRyLmRpc2FibGVkXT1cIm1vZGVsLmlzSW5wdXRSZWFkT25seSA/IHRydWUgOiBudWxsXCIgKGNsaWNrKT1cImNsaWNrKCRldmVudClcIiAoYmx1cik9XCJibHVyKCRldmVudClcIlxuICAgICAgICAoa2V5dXApPVwia2V5dXAoJGV2ZW50KVwiIFthdHRyLmlkXT1cIm1vZGVsLmlucHV0SWRcIiBbYXR0ci5hcmlhLXJlcXVpcmVkXT1cIm1vZGVsLmFyaWFSZXF1aXJlZFwiXG4gICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwibW9kZWwuYXJpYUxhYmVsXCIgW2F0dHIuYXJpYS1pbnZhbGlkXT1cIm1vZGVsLmFyaWFJbnZhbGlkXCJcbiAgICAgICAgW2F0dHIuYXJpYS1kZXNjcmliZWRieV09XCJtb2RlbC5hcmlhRGVzY3JpYmVkQnlcIiBbYXR0ci5yb2xlXT1cIm1vZGVsLmFyaWFSb2xlXCI+XG4gICAgICAgIDxkaXYgKm5nSWY9XCJtb2RlbC5pc0VtcHR5KClcIiBbY2xhc3NdPVwibW9kZWwuY3NzQ2xhc3Nlcy5jb250cm9sVmFsdWVcIj57eyBtb2RlbC5wbGFjZWhvbGRlciB9fTwvZGl2PlxuICAgICAgICA8dWwgKm5nSWY9XCIhbW9kZWwuaXNFbXB0eSgpXCIgW2NsYXNzXT1cIm1vZGVsLmNzc0NsYXNzZXMuY29udHJvbFZhbHVlXCI+XG4gICAgICAgICAgICA8c3YtbmctdGFnYm94LWl0ZW0gKm5nRm9yPVwibGV0IGl0ZW0gb2YgbW9kZWwuc2VsZWN0ZWRJdGVtc1wiIFtpdGVtXT1cIml0ZW1cIiBbcXVlc3Rpb25dPVwibW9kZWxcIj48L3N2LW5nLXRhZ2JveC1pdGVtPlxuICAgICAgICA8L3VsPlxuICAgICAgICA8ZGl2ICpuZ0lmPVwiKG1vZGVsLmFsbG93Q2xlYXIgJiYgbW9kZWwuY3NzQ2xhc3Nlcy5jbGVhbkJ1dHRvbkljb25JZClcIiBbY2xhc3NdPVwibW9kZWwuY3NzQ2xhc3Nlcy5jbGVhbkJ1dHRvblwiXG4gICAgICAgICAgICAoY2xpY2spPVwiY2xlYXIoJGV2ZW50KVwiIFt2aXNpYmxlXT1cIiFtb2RlbC5pc0VtcHR5KClcIj5cbiAgICAgICAgICAgIDwhLS0ga28gY29tcG9uZW50OiB7IG5hbWU6ICdzdi1zdmctaWNvbicsIHBhcmFtczogeyBjc3M6IG1vZGVsLmNzc0NsYXNzZXMuY2xlYW5CdXR0b25TdmcsIGljb25OYW1lOiBtb2RlbC5jc3NDbGFzc2VzLmNsZWFuQnV0dG9uSWNvbklkLCBzaXplOiAnYXV0bycgfSB9IC0tPlxuICAgICAgICAgICAgPCEtLSAva28gLS0+XG4gICAgICAgICAgICA8c3ZnIFtpY29uTmFtZV09XCJtb2RlbC5jc3NDbGFzc2VzLmNsZWFuQnV0dG9uSWNvbklkXCIgW3BhcnRDc3NdPVwibW9kZWwuY3NzQ2xhc3Nlcy5jbGVhbkJ1dHRvblN2Z1wiIFt0aXRsZV09XCJtb2RlbC5jbGVhbkJ1dHRvbkNhcHRpb25cIlxuICAgICAgICAgICAgICAgIFtzaXplXT1cIidhdXRvJ1wiIHN2LW5nLXN2Zy1pY29uPjwvc3ZnPlxuICAgICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgICA8c3YtbmctcG9wdXAgKm5nSWY9XCIhbW9kZWwuaXNSZWFkT25seVwiIFtwb3B1cE1vZGVsXT1cInBvcHVwTW9kZWxcIj48L3N2LW5nLXBvcHVwPlxuICAgIDxkaXYgZGlzYWJsZWQgKm5nSWY9XCJtb2RlbC5pc1JlYWRPbmx5XCIgW2NsYXNzXT1cIm1vZGVsLmdldENvbnRyb2xDbGFzcygpXCIgW2F0dHIuaWRdPVwibW9kZWwuaW5wdXRJZFwiPnt7IG1vZGVsLnJlYWRPbmx5VGV4dCB9fTwvZGl2PlxuPC9kaXY+Il19
44
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFnYm94LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL3N1cnZleS1hbmd1bGFyLXVpL3NyYy9jb21wb25lbnRzL3RhZ2JveC90YWdib3guY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvc3VydmV5LWFuZ3VsYXItdWkvc3JjL2NvbXBvbmVudHMvdGFnYm94L3RhZ2JveC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBcUIsTUFBTSxlQUFlLENBQUM7QUFDcEUsT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0sYUFBYSxDQUFDOzs7Ozs7OztBQU0zRCxNQUFNLE9BQU8sZUFBZTtJQUl4QixJQUFJLGFBQWE7UUFDZixPQUFPLElBQUksQ0FBQyxpQkFBaUIsQ0FBQztJQUNoQyxDQUFDO0lBRUQsUUFBUTtRQUNOLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQztJQUNwQixDQUFDO0lBRUQsUUFBUTtRQUNOLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLGlCQUFpQixJQUFJLElBQUksNEJBQTRCLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3hHLENBQUM7SUFFRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLGlCQUFpQixFQUFFLE9BQU8sRUFBRSxDQUFDO0lBQ3BDLENBQUM7SUFFRCxLQUFLLENBQUMsS0FBVTtRQUNkLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDekMsQ0FBQztJQUNELEtBQUssQ0FBQyxLQUFVO1FBQ2QsSUFBSSxDQUFDLGlCQUFpQixFQUFFLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUN6QyxDQUFDO0lBQ0QsS0FBSyxDQUFDLEtBQVU7UUFDZCxJQUFJLENBQUMsaUJBQWlCLEVBQUUsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3pDLENBQUM7SUFDRCxJQUFJLENBQUMsS0FBVTtRQUNiLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDeEMsQ0FBQzs7NEdBL0JRLGVBQWU7Z0dBQWYsZUFBZSxrR0NQNUIsdzREQXVCTTsyRkRoQk8sZUFBZTtrQkFKM0IsU0FBUzsrQkFDRSxnQ0FBZ0M7OEJBSS9CLEtBQUs7c0JBQWIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIE9uRGVzdHJveSwgT25Jbml0IH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7IERyb3Bkb3duTXVsdGlTZWxlY3RMaXN0TW9kZWwgfSBmcm9tIFwic3VydmV5LWNvcmVcIjtcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiBcInN2LW5nLXRhZ2JveCwgJ1tzdi1uZy10YWdib3hdJ1wiLFxuICB0ZW1wbGF0ZVVybDogXCIuL3RhZ2JveC5jb21wb25lbnQuaHRtbFwiXG59KVxuZXhwb3J0IGNsYXNzIFRhZ2JveENvbXBvbmVudCBpbXBsZW1lbnRzIE9uRGVzdHJveSwgT25Jbml0IHtcbiAgICBASW5wdXQoKSBtb2RlbDogYW55O1xuICAgIHByaXZhdGUgZHJvcGRvd25MaXN0TW9kZWwhOiBEcm9wZG93bk11bHRpU2VsZWN0TGlzdE1vZGVsO1xuXG4gICAgZ2V0IGRyb3Bkb3duTW9kZWwoKTogRHJvcGRvd25NdWx0aVNlbGVjdExpc3RNb2RlbCB7XG4gICAgICByZXR1cm4gdGhpcy5kcm9wZG93bkxpc3RNb2RlbDtcbiAgICB9XG5cbiAgICBnZXRNb2RlbCgpIHtcbiAgICAgIHJldHVybiB0aGlzLm1vZGVsO1xuICAgIH1cblxuICAgIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgdGhpcy5kcm9wZG93bkxpc3RNb2RlbCA9IHRoaXMubW9kZWwuZHJvcGRvd25MaXN0TW9kZWwgfHwgbmV3IERyb3Bkb3duTXVsdGlTZWxlY3RMaXN0TW9kZWwodGhpcy5tb2RlbCk7XG4gICAgfVxuXG4gICAgbmdPbkRlc3Ryb3koKSB7XG4gICAgICB0aGlzLmRyb3Bkb3duTGlzdE1vZGVsPy5kaXNwb3NlKCk7XG4gICAgfVxuXG4gICAgY2xpY2soZXZlbnQ6IGFueSkge1xuICAgICAgdGhpcy5kcm9wZG93bkxpc3RNb2RlbD8ub25DbGljayhldmVudCk7XG4gICAgfVxuICAgIGNsZWFyKGV2ZW50OiBhbnkpIHtcbiAgICAgIHRoaXMuZHJvcGRvd25MaXN0TW9kZWw/Lm9uQ2xlYXIoZXZlbnQpO1xuICAgIH1cbiAgICBrZXl1cChldmVudDogYW55KSB7XG4gICAgICB0aGlzLmRyb3Bkb3duTGlzdE1vZGVsPy5vbktleVVwKGV2ZW50KTtcbiAgICB9XG4gICAgYmx1cihldmVudDogYW55KSB7XG4gICAgICB0aGlzLmRyb3Bkb3duTGlzdE1vZGVsPy5vbkJsdXIoZXZlbnQpO1xuICAgIH1cbn0iLCI8ZGl2IFtjbGFzc109XCJtb2RlbC5jc3NDbGFzc2VzLnNlbGVjdFdyYXBwZXJcIj5cbiAgICA8ZGl2ICpuZ0lmPVwiIW1vZGVsLmlzUmVhZE9ubHlcIiBbYXR0ci50YWJpbmRleF09XCIobW9kZWwuaXNJbnB1dFJlYWRPbmx5IHx8IGRyb3Bkb3duTW9kZWwuc2VhcmNoRW5hYmxlZCkgPyBudWxsIDogMFwiIFtjbGFzc109XCJtb2RlbC5nZXRDb250cm9sQ2xhc3MoKVwiXG4gICAgICAgIFthdHRyLmRpc2FibGVkXT1cIm1vZGVsLmlzSW5wdXRSZWFkT25seSA/IHRydWUgOiBudWxsXCIgKGNsaWNrKT1cImNsaWNrKCRldmVudClcIiAoYmx1cik9XCJibHVyKCRldmVudClcIlxuICAgICAgICAoa2V5dXApPVwia2V5dXAoJGV2ZW50KVwiIFthdHRyLmlkXT1cIm1vZGVsLmlucHV0SWRcIiBbYXR0ci5hcmlhLXJlcXVpcmVkXT1cIm1vZGVsLmFyaWFSZXF1aXJlZFwiXG4gICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwibW9kZWwuYXJpYUxhYmVsXCIgW2F0dHIuYXJpYS1pbnZhbGlkXT1cIm1vZGVsLmFyaWFJbnZhbGlkXCJcbiAgICAgICAgW2F0dHIuYXJpYS1kZXNjcmliZWRieV09XCJtb2RlbC5hcmlhRGVzY3JpYmVkQnlcIiBbYXR0ci5yb2xlXT1cIm1vZGVsLmFyaWFSb2xlXCI+XG4gICAgICAgIDxkaXYgW2NsYXNzXT1cIm1vZGVsLmNzc0NsYXNzZXMuY29udHJvbFZhbHVlXCI+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIW1vZGVsLmlzRW1wdHkoKVwiPlxuICAgICAgICAgICAgICAgIDxzdi1uZy10YWdib3gtaXRlbSAqbmdGb3I9XCJsZXQgaXRlbSBvZiBtb2RlbC5zZWxlY3RlZEl0ZW1zXCIgW2l0ZW1dPVwiaXRlbVwiIFtxdWVzdGlvbl09XCJtb2RlbFwiPlxuICAgICAgICAgICAgICAgIDwvc3YtbmctdGFnYm94LWl0ZW0+XG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSBbY29tcG9uZW50XT1cInsgbmFtZTogJ3N2LXRhZ2JveC1maWx0ZXInLCBkYXRhOiB7IG1vZGVsOiBkcm9wZG93bk1vZGVsLCBxdWVzdGlvbjogbW9kZWwgfSB9XCI+PC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgKm5nSWY9XCIobW9kZWwuYWxsb3dDbGVhciAmJiBtb2RlbC5jc3NDbGFzc2VzLmNsZWFuQnV0dG9uSWNvbklkKVwiIFtjbGFzc109XCJtb2RlbC5jc3NDbGFzc2VzLmNsZWFuQnV0dG9uXCJcbiAgICAgICAgICAgIChjbGljayk9XCJjbGVhcigkZXZlbnQpXCIgW3Zpc2libGVdPVwiIW1vZGVsLmlzRW1wdHkoKVwiPlxuICAgICAgICAgICAgPCEtLSBrbyBjb21wb25lbnQ6IHsgbmFtZTogJ3N2LXN2Zy1pY29uJywgcGFyYW1zOiB7IGNzczogbW9kZWwuY3NzQ2xhc3Nlcy5jbGVhbkJ1dHRvblN2ZywgaWNvbk5hbWU6IG1vZGVsLmNzc0NsYXNzZXMuY2xlYW5CdXR0b25JY29uSWQsIHNpemU6ICdhdXRvJyB9IH0gLS0+XG4gICAgICAgICAgICA8IS0tIC9rbyAtLT5cbiAgICAgICAgICAgIDxzdmcgW2ljb25OYW1lXT1cIm1vZGVsLmNzc0NsYXNzZXMuY2xlYW5CdXR0b25JY29uSWRcIiBbcGFydENzc109XCJtb2RlbC5jc3NDbGFzc2VzLmNsZWFuQnV0dG9uU3ZnXCIgW3RpdGxlXT1cIm1vZGVsLmNsZWFuQnV0dG9uQ2FwdGlvblwiXG4gICAgICAgICAgICAgICAgW3NpemVdPVwiJ2F1dG8nXCIgc3Ytbmctc3ZnLWljb24+PC9zdmc+XG4gICAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICAgIDxzdi1uZy1wb3B1cCAqbmdJZj1cIiFtb2RlbC5pc1JlYWRPbmx5XCIgW3BvcHVwTW9kZWxdPVwibW9kZWwucG9wdXBNb2RlbFwiPjwvc3YtbmctcG9wdXA+XG4gICAgPGRpdiBkaXNhYmxlZCAqbmdJZj1cIm1vZGVsLmlzUmVhZE9ubHlcIiBbY2xhc3NdPVwibW9kZWwuZ2V0Q29udHJvbENsYXNzKClcIiBbYXR0ci5pZF09XCJtb2RlbC5pbnB1dElkXCI+e3sgbW9kZWwucmVhZE9ubHlUZXh0IH19PC9kaXY+XG48L2Rpdj4iXX0=
@@ -6,13 +6,30 @@ export class ElementComponent extends BaseAngular {
6
6
  getModel() {
7
7
  return this.model;
8
8
  }
9
+ get componentName() {
10
+ const survey = this.surveyModel;
11
+ if (!!survey) {
12
+ return survey.getElementWrapperComponentName(this.model);
13
+ }
14
+ return this.model.isPanel ? "panel" : "question";
15
+ }
16
+ get componentData() {
17
+ const survey = this.surveyModel;
18
+ if (!!survey) {
19
+ return {
20
+ model: this.model,
21
+ componentData: survey.getElementWrapperComponentData(this.model)
22
+ };
23
+ }
24
+ return { model: this.model };
25
+ }
9
26
  }
10
27
  ElementComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: ElementComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
11
- ElementComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0.3", type: ElementComponent, selector: "sv-ng-element", inputs: { model: "model" }, usesInheritance: true, ngImport: i0, template: "<ng-template #template>\n <div [class]=\"model.cssClasses.questionWrapper\" [style]=\"model.rootStyle\">\n <ng-template [component]=\"{ name: model.isPanel ? 'panel': 'question', data: { model } }\"></ng-template>\n </div>\n</ng-template>", directives: [{ type: i1.DynamicComponentDirective, selector: "[component]", inputs: ["component"] }] });
28
+ ElementComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0.3", type: ElementComponent, selector: "sv-ng-element", inputs: { model: "model" }, usesInheritance: true, ngImport: i0, template: "<ng-template #template>\n <div [class]=\"model.cssClasses.questionWrapper\" [style]=\"model.rootStyle\">\n <ng-template [component]=\"{ name: componentName, data: componentData }\"></ng-template>\n </div>\n</ng-template>", directives: [{ type: i1.DynamicComponentDirective, selector: "[component]", inputs: ["component"] }] });
12
29
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: ElementComponent, decorators: [{
13
30
  type: Component,
14
- args: [{ selector: "sv-ng-element", template: "<ng-template #template>\n <div [class]=\"model.cssClasses.questionWrapper\" [style]=\"model.rootStyle\">\n <ng-template [component]=\"{ name: model.isPanel ? 'panel': 'question', data: { model } }\"></ng-template>\n </div>\n</ng-template>" }]
31
+ args: [{ selector: "sv-ng-element", template: "<ng-template #template>\n <div [class]=\"model.cssClasses.questionWrapper\" [style]=\"model.rootStyle\">\n <ng-template [component]=\"{ name: componentName, data: componentData }\"></ng-template>\n </div>\n</ng-template>" }]
15
32
  }], propDecorators: { model: [{
16
33
  type: Input
17
34
  }] } });
18
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxlbWVudC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9wYWNrYWdlcy9zdXJ2ZXktYW5ndWxhci11aS9zcmMvZWxlbWVudC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi9wYWNrYWdlcy9zdXJ2ZXktYW5ndWxhci11aS9zcmMvZWxlbWVudC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQXFCLFNBQVMsRUFBRSxLQUFLLEVBQW9CLE1BQU0sZUFBZSxDQUFDO0FBRXRGLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7O0FBTTdDLE1BQU0sT0FBTyxnQkFBaUIsU0FBUSxXQUFrQztJQUU3RCxRQUFRO1FBQ2hCLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQztJQUNwQixDQUFDOzs2R0FKVyxnQkFBZ0I7aUdBQWhCLGdCQUFnQix3R0NSN0IscVBBSWM7MkZESUQsZ0JBQWdCO2tCQUo1QixTQUFTOytCQUNFLGVBQWU7OEJBSWpCLEtBQUs7c0JBQWIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdG9yUmVmLCBDb21wb25lbnQsIElucHV0LCBWaWV3Q29udGFpbmVyUmVmIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7IEJ1dHRvbkdyb3VwSXRlbU1vZGVsLCBQYW5lbE1vZGVsLCBRdWVzdGlvbiB9IGZyb20gXCJzdXJ2ZXktY29yZVwiO1xuaW1wb3J0IHsgQmFzZUFuZ3VsYXIgfSBmcm9tIFwiLi9iYXNlLWFuZ3VsYXJcIjtcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiBcInN2LW5nLWVsZW1lbnRcIixcbiAgdGVtcGxhdGVVcmw6IFwiLi9lbGVtZW50LmNvbXBvbmVudC5odG1sXCJcbn0pXG5leHBvcnQgY2xhc3MgRWxlbWVudENvbXBvbmVudCBleHRlbmRzIEJhc2VBbmd1bGFyPFBhbmVsTW9kZWwgfCBRdWVzdGlvbj4ge1xuIEBJbnB1dCgpIG1vZGVsITogUGFuZWxNb2RlbCB8IFF1ZXN0aW9uO1xuIHByb3RlY3RlZCBnZXRNb2RlbCgpOiBQYW5lbE1vZGVsIHwgUXVlc3Rpb24ge1xuICAgcmV0dXJuIHRoaXMubW9kZWw7XG4gfVxufSIsIjxuZy10ZW1wbGF0ZSAjdGVtcGxhdGU+XG4gIDxkaXYgW2NsYXNzXT1cIm1vZGVsLmNzc0NsYXNzZXMucXVlc3Rpb25XcmFwcGVyXCIgW3N0eWxlXT1cIm1vZGVsLnJvb3RTdHlsZVwiPlxuICAgIDxuZy10ZW1wbGF0ZSBbY29tcG9uZW50XT1cInsgbmFtZTogbW9kZWwuaXNQYW5lbCA/ICdwYW5lbCc6ICdxdWVzdGlvbicsIGRhdGE6IHsgbW9kZWwgfSB9XCI+PC9uZy10ZW1wbGF0ZT5cbiAgPC9kaXY+XG48L25nLXRlbXBsYXRlPiJdfQ==
35
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxlbWVudC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9wYWNrYWdlcy9zdXJ2ZXktYW5ndWxhci11aS9zcmMvZWxlbWVudC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi9wYWNrYWdlcy9zdXJ2ZXktYW5ndWxhci11aS9zcmMvZWxlbWVudC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQXFCLFNBQVMsRUFBRSxLQUFLLEVBQW9CLE1BQU0sZUFBZSxDQUFDO0FBRXRGLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7O0FBTTdDLE1BQU0sT0FBTyxnQkFBaUIsU0FBUSxXQUFrQztJQUU1RCxRQUFRO1FBQ2hCLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQztJQUNwQixDQUFDO0lBQ0QsSUFBVyxhQUFhO1FBQ3RCLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxXQUEwQixDQUFDO1FBQy9DLElBQUcsQ0FBQyxDQUFDLE1BQU0sRUFBRTtZQUNYLE9BQU8sTUFBTSxDQUFDLDhCQUE4QixDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztTQUMxRDtRQUNELE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQSxDQUFDLENBQUMsVUFBVSxDQUFDO0lBQ2xELENBQUM7SUFDRCxJQUFXLGFBQWE7UUFDdEIsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLFdBQTBCLENBQUM7UUFDL0MsSUFBRyxDQUFDLENBQUMsTUFBTSxFQUFFO1lBQ1gsT0FBTztnQkFDTCxLQUFLLEVBQUUsSUFBSSxDQUFDLEtBQUs7Z0JBQ2pCLGFBQWEsRUFBRSxNQUFNLENBQUMsOEJBQThCLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQzthQUNqRSxDQUFDO1NBQ0g7UUFDRCxPQUFPLEVBQUUsS0FBSyxFQUFFLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUMvQixDQUFDOzs2R0FyQlUsZ0JBQWdCO2lHQUFoQixnQkFBZ0Isd0dDUjdCLDJPQUljOzJGRElELGdCQUFnQjtrQkFKNUIsU0FBUzsrQkFDRSxlQUFlOzhCQUloQixLQUFLO3NCQUFiLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3RvclJlZiwgQ29tcG9uZW50LCBJbnB1dCwgVmlld0NvbnRhaW5lclJlZiB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQgeyBCdXR0b25Hcm91cEl0ZW1Nb2RlbCwgUGFuZWxNb2RlbCwgUXVlc3Rpb24sIFN1cnZleU1vZGVsIH0gZnJvbSBcInN1cnZleS1jb3JlXCI7XG5pbXBvcnQgeyBCYXNlQW5ndWxhciB9IGZyb20gXCIuL2Jhc2UtYW5ndWxhclwiO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6IFwic3YtbmctZWxlbWVudFwiLFxuICB0ZW1wbGF0ZVVybDogXCIuL2VsZW1lbnQuY29tcG9uZW50Lmh0bWxcIlxufSlcbmV4cG9ydCBjbGFzcyBFbGVtZW50Q29tcG9uZW50IGV4dGVuZHMgQmFzZUFuZ3VsYXI8UGFuZWxNb2RlbCB8IFF1ZXN0aW9uPiB7XG4gIEBJbnB1dCgpIG1vZGVsITogUGFuZWxNb2RlbCB8IFF1ZXN0aW9uO1xuICBwcm90ZWN0ZWQgZ2V0TW9kZWwoKTogUGFuZWxNb2RlbCB8IFF1ZXN0aW9uIHtcbiAgICByZXR1cm4gdGhpcy5tb2RlbDtcbiAgfVxuICBwdWJsaWMgZ2V0IGNvbXBvbmVudE5hbWUoKTogc3RyaW5nIHtcbiAgICBjb25zdCBzdXJ2ZXkgPSB0aGlzLnN1cnZleU1vZGVsIGFzIFN1cnZleU1vZGVsO1xuICAgIGlmKCEhc3VydmV5KSB7XG4gICAgICByZXR1cm4gc3VydmV5LmdldEVsZW1lbnRXcmFwcGVyQ29tcG9uZW50TmFtZSh0aGlzLm1vZGVsKTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMubW9kZWwuaXNQYW5lbCA/IFwicGFuZWxcIjogXCJxdWVzdGlvblwiO1xuICB9XG4gIHB1YmxpYyBnZXQgY29tcG9uZW50RGF0YSgpOiBhbnkge1xuICAgIGNvbnN0IHN1cnZleSA9IHRoaXMuc3VydmV5TW9kZWwgYXMgU3VydmV5TW9kZWw7XG4gICAgaWYoISFzdXJ2ZXkpIHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIG1vZGVsOiB0aGlzLm1vZGVsLFxuICAgICAgICBjb21wb25lbnREYXRhOiBzdXJ2ZXkuZ2V0RWxlbWVudFdyYXBwZXJDb21wb25lbnREYXRhKHRoaXMubW9kZWwpXG4gICAgICB9O1xuICAgIH1cbiAgICByZXR1cm4geyBtb2RlbDogdGhpcy5tb2RlbCB9O1xuICB9XG59IiwiPG5nLXRlbXBsYXRlICN0ZW1wbGF0ZT5cbiAgICA8ZGl2IFtjbGFzc109XCJtb2RlbC5jc3NDbGFzc2VzLnF1ZXN0aW9uV3JhcHBlclwiIFtzdHlsZV09XCJtb2RlbC5yb290U3R5bGVcIj5cbiAgICAgICAgPG5nLXRlbXBsYXRlIFtjb21wb25lbnRdPVwieyBuYW1lOiBjb21wb25lbnROYW1lLCBkYXRhOiBjb21wb25lbnREYXRhIH1cIj48L25nLXRlbXBsYXRlPlxuICAgIDwvZGl2PlxuPC9uZy10ZW1wbGF0ZT4iXX0=
@@ -0,0 +1,29 @@
1
+ import { Component, Input } from "@angular/core";
2
+ import { BaseAngular } from "../../base-angular";
3
+ import { ButtonGroupItemModel } from "survey-core";
4
+ import * as i0 from "@angular/core";
5
+ import * as i1 from "../../components/svg-icon/svg-icon.component";
6
+ import * as i2 from "../../survey-string.component";
7
+ import * as i3 from "@angular/forms";
8
+ import * as i4 from "@angular/common";
9
+ export class ButtonGroupItemComponent extends BaseAngular {
10
+ ngOnChanges() {
11
+ this.model = new ButtonGroupItemModel(this.question, this.item, this.index);
12
+ }
13
+ getModel() {
14
+ return this.item;
15
+ }
16
+ }
17
+ ButtonGroupItemComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: ButtonGroupItemComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
18
+ ButtonGroupItemComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0.3", type: ButtonGroupItemComponent, selector: "sv-button-group-item", inputs: { item: "item", question: "question", index: "index" }, usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<ng-template #template>\n <label role=\"radio\" [class]=\"model.css.label\" [attr.title]=\"model.caption.renderedHtml\">\n <input type=\"radio\"\n [attr.name]=\"model.name\" [attr.id]=\"model.id\" [attr.aria-required]=\"model.isRequired\" [attr.aria-label]=\"model.caption.renderedHtml\" role=\"radio\" [attr.aria-invalid]=\"model.hasErrors\" [attr.aria-describedby]=\"model.describedBy\" [disabled]=\"model.readOnly\" [class]=\"model.css.control\" [(ngModel)]=\"question.renderedValue\" [attr.value]=\"model.value\" [value]=\"model.value\"/>\n <div data-bind=\"css: model.css.decorator\">\n <svg *ngIf=\"model.iconName\" [iconName]=\"model.iconName\" [size]=\"model.iconSize\" [class]=\"model.css.icon\" sv-ng-svg-icon></svg>\n <span [class]=\"model.css.caption\" *ngIf=\"model.showCaption\" [attr.title]=\"model.caption.renderedHtml\" sv-ng-string [model]=\"model.caption\">\n </span>\n </div>\n </label>\n</ng-template>", styles: [":host{display:none}\n"], components: [{ type: i1.SvgIconComponent, selector: "'[sv-ng-svg-icon]'", inputs: ["size", "width", "height", "iconName", "partCss", "css", "title"] }, { type: i2.SurveyStringComponent, selector: "sv-ng-string, '[sv-ng-string]'", inputs: ["model"] }], directives: [{ type: i3.RadioControlValueAccessor, selector: "input[type=radio][formControlName],input[type=radio][formControl],input[type=radio][ngModel]", inputs: ["name", "formControlName", "value"] }, { type: i3.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
19
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: ButtonGroupItemComponent, decorators: [{
20
+ type: Component,
21
+ args: [{ selector: "sv-button-group-item", template: "<ng-template #template>\n <label role=\"radio\" [class]=\"model.css.label\" [attr.title]=\"model.caption.renderedHtml\">\n <input type=\"radio\"\n [attr.name]=\"model.name\" [attr.id]=\"model.id\" [attr.aria-required]=\"model.isRequired\" [attr.aria-label]=\"model.caption.renderedHtml\" role=\"radio\" [attr.aria-invalid]=\"model.hasErrors\" [attr.aria-describedby]=\"model.describedBy\" [disabled]=\"model.readOnly\" [class]=\"model.css.control\" [(ngModel)]=\"question.renderedValue\" [attr.value]=\"model.value\" [value]=\"model.value\"/>\n <div data-bind=\"css: model.css.decorator\">\n <svg *ngIf=\"model.iconName\" [iconName]=\"model.iconName\" [size]=\"model.iconSize\" [class]=\"model.css.icon\" sv-ng-svg-icon></svg>\n <span [class]=\"model.css.caption\" *ngIf=\"model.showCaption\" [attr.title]=\"model.caption.renderedHtml\" sv-ng-string [model]=\"model.caption\">\n </span>\n </div>\n </label>\n</ng-template>", styles: [":host{display:none}\n"] }]
22
+ }], propDecorators: { item: [{
23
+ type: Input
24
+ }], question: [{
25
+ type: Input
26
+ }], index: [{
27
+ type: Input
28
+ }] } });
29
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnV0dG9uLWdyb3VwLWl0ZW0uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvc3VydmV5LWFuZ3VsYXItdWkvc3JjL3F1ZXN0aW9ucy9idXR0b24tZ3JvdXAvYnV0dG9uLWdyb3VwLWl0ZW0uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvc3VydmV5LWFuZ3VsYXItdWkvc3JjL3F1ZXN0aW9ucy9idXR0b24tZ3JvdXAvYnV0dG9uLWdyb3VwLWl0ZW0uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQWEsTUFBTSxlQUFlLENBQUM7QUFDNUQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ2pELE9BQU8sRUFBRSxvQkFBb0IsRUFBdUMsTUFBTSxhQUFhLENBQUM7Ozs7OztBQU94RixNQUFNLE9BQU8sd0JBQXlCLFNBQVEsV0FBc0I7SUFLM0QsV0FBVztRQUNoQixJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksb0JBQW9CLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUM5RSxDQUFDO0lBQ1MsUUFBUTtRQUNoQixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUM7SUFDbkIsQ0FBQzs7cUhBVlUsd0JBQXdCO3lHQUF4Qix3QkFBd0Isd0tDVHJDLDI3QkFVYzsyRkRERCx3QkFBd0I7a0JBTHBDLFNBQVM7K0JBQ0Usc0JBQXNCOzhCQUt2QixJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBPbkNoYW5nZXMgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHsgQmFzZUFuZ3VsYXIgfSBmcm9tIFwiLi4vLi4vYmFzZS1hbmd1bGFyXCI7XG5pbXBvcnQgeyBCdXR0b25Hcm91cEl0ZW1Nb2RlbCwgSXRlbVZhbHVlLCBRdWVzdGlvbkJ1dHRvbkdyb3VwTW9kZWwgfSBmcm9tIFwic3VydmV5LWNvcmVcIjtcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiBcInN2LWJ1dHRvbi1ncm91cC1pdGVtXCIsXG4gIHRlbXBsYXRlVXJsOiBcIi4vYnV0dG9uLWdyb3VwLWl0ZW0uY29tcG9uZW50Lmh0bWxcIixcbiAgc3R5bGVVcmxzOiBbXCIuLi8uLi9oaWRlLWhvc3Quc2Nzc1wiXVxufSlcbmV4cG9ydCBjbGFzcyBCdXR0b25Hcm91cEl0ZW1Db21wb25lbnQgZXh0ZW5kcyBCYXNlQW5ndWxhcjxJdGVtVmFsdWU+IGltcGxlbWVudHMgT25DaGFuZ2VzIHtcbiAgQElucHV0KCkgaXRlbSE6IEl0ZW1WYWx1ZTtcbiAgQElucHV0KCkgcXVlc3Rpb24hOiBRdWVzdGlvbkJ1dHRvbkdyb3VwTW9kZWw7XG4gIEBJbnB1dCgpIGluZGV4ITogbnVtYmVyO1xuICBwdWJsaWMgbW9kZWwhOiBCdXR0b25Hcm91cEl0ZW1Nb2RlbDtcbiAgcHVibGljIG5nT25DaGFuZ2VzKCk6IHZvaWQge1xuICAgIHRoaXMubW9kZWwgPSBuZXcgQnV0dG9uR3JvdXBJdGVtTW9kZWwodGhpcy5xdWVzdGlvbiwgdGhpcy5pdGVtLCB0aGlzLmluZGV4KTtcbiAgfVxuICBwcm90ZWN0ZWQgZ2V0TW9kZWwoKTogSXRlbVZhbHVlIHtcbiAgICByZXR1cm4gdGhpcy5pdGVtO1xuICB9XG59IiwiPG5nLXRlbXBsYXRlICN0ZW1wbGF0ZT5cbiAgPGxhYmVsIHJvbGU9XCJyYWRpb1wiIFtjbGFzc109XCJtb2RlbC5jc3MubGFiZWxcIiBbYXR0ci50aXRsZV09XCJtb2RlbC5jYXB0aW9uLnJlbmRlcmVkSHRtbFwiPlxuICAgIDxpbnB1dCB0eXBlPVwicmFkaW9cIlxuICAgICAgW2F0dHIubmFtZV09XCJtb2RlbC5uYW1lXCIgW2F0dHIuaWRdPVwibW9kZWwuaWRcIiBbYXR0ci5hcmlhLXJlcXVpcmVkXT1cIm1vZGVsLmlzUmVxdWlyZWRcIiBbYXR0ci5hcmlhLWxhYmVsXT1cIm1vZGVsLmNhcHRpb24ucmVuZGVyZWRIdG1sXCIgcm9sZT1cInJhZGlvXCIgW2F0dHIuYXJpYS1pbnZhbGlkXT1cIm1vZGVsLmhhc0Vycm9yc1wiIFthdHRyLmFyaWEtZGVzY3JpYmVkYnldPVwibW9kZWwuZGVzY3JpYmVkQnlcIiBbZGlzYWJsZWRdPVwibW9kZWwucmVhZE9ubHlcIiBbY2xhc3NdPVwibW9kZWwuY3NzLmNvbnRyb2xcIiBbKG5nTW9kZWwpXT1cInF1ZXN0aW9uLnJlbmRlcmVkVmFsdWVcIiBbYXR0ci52YWx1ZV09XCJtb2RlbC52YWx1ZVwiIFt2YWx1ZV09XCJtb2RlbC52YWx1ZVwiLz5cbiAgICA8ZGl2IGRhdGEtYmluZD1cImNzczogbW9kZWwuY3NzLmRlY29yYXRvclwiPlxuICAgICAgPHN2ZyAqbmdJZj1cIm1vZGVsLmljb25OYW1lXCIgW2ljb25OYW1lXT1cIm1vZGVsLmljb25OYW1lXCIgW3NpemVdPVwibW9kZWwuaWNvblNpemVcIiBbY2xhc3NdPVwibW9kZWwuY3NzLmljb25cIiBzdi1uZy1zdmctaWNvbj48L3N2Zz5cbiAgICAgIDxzcGFuIFtjbGFzc109XCJtb2RlbC5jc3MuY2FwdGlvblwiICpuZ0lmPVwibW9kZWwuc2hvd0NhcHRpb25cIiBbYXR0ci50aXRsZV09XCJtb2RlbC5jYXB0aW9uLnJlbmRlcmVkSHRtbFwiIHN2LW5nLXN0cmluZyBbbW9kZWxdPVwibW9kZWwuY2FwdGlvblwiPlxuICAgICAgPC9zcGFuPlxuICAgIDwvZGl2PlxuICA8L2xhYmVsPlxuPC9uZy10ZW1wbGF0ZT4iXX0=
@@ -0,0 +1,14 @@
1
+ import { Component } from "@angular/core";
2
+ import { QuestionAngular } from "../../question";
3
+ import * as i0 from "@angular/core";
4
+ import * as i1 from "./button-group-item.component";
5
+ import * as i2 from "@angular/common";
6
+ export class ButtonGroupQuestionComponent extends QuestionAngular {
7
+ }
8
+ ButtonGroupQuestionComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: ButtonGroupQuestionComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
9
+ ButtonGroupQuestionComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0.3", type: ButtonGroupQuestionComponent, selector: "sv-ng-buttongroup-question", usesInheritance: true, ngImport: i0, template: "<div role=\"group\" [class]=\"model.cssClasses.root\">\n <sv-button-group-item *ngFor=\"let item of model.visibleChoices; index as index\" [question]=\"model\" [item]=\"item\" [index]=\"index\" ></sv-button-group-item>\n</div>\n", components: [{ type: i1.ButtonGroupItemComponent, selector: "sv-button-group-item", inputs: ["item", "question", "index"] }], directives: [{ type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }] });
10
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: ButtonGroupQuestionComponent, decorators: [{
11
+ type: Component,
12
+ args: [{ selector: "sv-ng-buttongroup-question", template: "<div role=\"group\" [class]=\"model.cssClasses.root\">\n <sv-button-group-item *ngFor=\"let item of model.visibleChoices; index as index\" [question]=\"model\" [item]=\"item\" [index]=\"index\" ></sv-button-group-item>\n</div>\n" }]
13
+ }] });
14
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnV0dG9uLWdyb3VwLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL3N1cnZleS1hbmd1bGFyLXVpL3NyYy9xdWVzdGlvbnMvYnV0dG9uLWdyb3VwL2J1dHRvbi1ncm91cC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9zdXJ2ZXktYW5ndWxhci11aS9zcmMvcXVlc3Rpb25zL2J1dHRvbi1ncm91cC9idXR0b24tZ3JvdXAuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMxQyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7Ozs7QUFPakQsTUFBTSxPQUFPLDRCQUE2QixTQUFRLGVBQXlDOzt5SEFBOUUsNEJBQTRCOzZHQUE1Qiw0QkFBNEIseUZDVHpDLHVPQUdBOzJGRE1hLDRCQUE0QjtrQkFKeEMsU0FBUzsrQkFDRSw0QkFBNEIiLCJzb3VyY2VzQ29udGVudCI6WyJcbmltcG9ydCB7IENvbXBvbmVudCB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQgeyBRdWVzdGlvbkFuZ3VsYXIgfSBmcm9tIFwiLi4vLi4vcXVlc3Rpb25cIjtcbmltcG9ydCB7IFF1ZXN0aW9uQnV0dG9uR3JvdXBNb2RlbCB9IGZyb20gXCJzdXJ2ZXktY29yZVwiO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6IFwic3YtbmctYnV0dG9uZ3JvdXAtcXVlc3Rpb25cIixcbiAgdGVtcGxhdGVVcmw6IFwiLi9idXR0b24tZ3JvdXAuY29tcG9uZW50Lmh0bWxcIlxufSlcbmV4cG9ydCBjbGFzcyBCdXR0b25Hcm91cFF1ZXN0aW9uQ29tcG9uZW50IGV4dGVuZHMgUXVlc3Rpb25Bbmd1bGFyPFF1ZXN0aW9uQnV0dG9uR3JvdXBNb2RlbD4ge1xufSIsIjxkaXYgcm9sZT1cImdyb3VwXCIgW2NsYXNzXT1cIm1vZGVsLmNzc0NsYXNzZXMucm9vdFwiPlxuICA8c3YtYnV0dG9uLWdyb3VwLWl0ZW0gKm5nRm9yPVwibGV0IGl0ZW0gb2YgbW9kZWwudmlzaWJsZUNob2ljZXM7IGluZGV4IGFzIGluZGV4XCIgW3F1ZXN0aW9uXT1cIm1vZGVsXCIgW2l0ZW1dPVwiaXRlbVwiIFtpbmRleF09XCJpbmRleFwiID48L3N2LWJ1dHRvbi1ncm91cC1pdGVtPlxuPC9kaXY+XG4iXX0=
@@ -17,13 +17,13 @@ export class MatrixTableComponent extends BaseAngular {
17
17
  }
18
18
  }
19
19
  MatrixTableComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: MatrixTableComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
20
- MatrixTableComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0.3", type: MatrixTableComponent, selector: "sv-ng-matrix-table", inputs: { question: "question", table: "table" }, usesInheritance: true, ngImport: i0, template: "<table [class]=\"question.getTableCss()\">\n <thead *ngIf=\"table.showHeader\">\n <tr>\n <th\n [class]=\"cell.className\"\n *ngFor=\"let cell of table.headerRow.cells; trackBy: trackCellBy\"\n [style]=\"{ minWidth: cell.minWidth, width: cell.width }\"\n >\n <sv-ng-string *ngIf=\"cell.hasTitle\" [model]=\"cell.locTitle\"></sv-ng-string>\n <sv-ng-matrixheaderrequired *ngIf=\"!!cell.column\" [column]=\"cell.column\" [question]=\"question\"></sv-ng-matrixheaderrequired>\n </th>\n </tr>\n </thead>\n <tbody>\n <tr *ngFor=\"let row of table.rows; trackBy: trackRowBy\" [class]=\"row.className\">\n <sv-ng-matrix-cell\n [cell]=\"cell\"\n [question]=\"question\"\n *ngFor=\"let cell of row.cells; trackBy: trackCellBy\"\n ></sv-ng-matrix-cell>\n </tr>\n </tbody>\n <tfoot *ngIf=\"table.showFooter\">\n <tr>\n <sv-ng-matrix-cell [cell]=\"cell\" [question]=\"question\" *ngFor=\"let cell of table.footerRow.cells; trackBy: trackCellBy\">\n </sv-ng-matrix-cell>\n </tr>\n </tfoot>\n</table>", components: [{ type: i1.SurveyStringComponent, selector: "sv-ng-string, '[sv-ng-string]'", inputs: ["model"] }, { type: i2.MatrixRequiredHeader, selector: "sv-ng-matrixheaderrequired", inputs: ["column", "question"] }, { type: i3.MatrixCellComponent, selector: "sv-ng-matrix-cell", inputs: ["question", "cell"] }], directives: [{ type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }] });
20
+ MatrixTableComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0.3", type: MatrixTableComponent, selector: "sv-ng-matrix-table", inputs: { question: "question", table: "table" }, usesInheritance: true, ngImport: i0, template: "<table [class]=\"question.getTableCss()\">\n <thead *ngIf=\"table.showHeader\">\n <tr>\n <ng-container\n *ngFor=\"let cell of table.headerRow.cells; trackBy: trackCellBy\"\n >\n <th *ngIf=\"cell.hasTitle\" [class]=\"cell.className\" [style]=\"{ minWidth: cell.minWidth, width: cell.width }\">\n <sv-ng-string [model]=\"cell.locTitle\"></sv-ng-string>\n <sv-ng-matrixheaderrequired *ngIf=\"!!cell.column\" [column]=\"cell.column\" [question]=\"question\">\n </sv-ng-matrixheaderrequired>\n </th>\n \n <td *ngIf=\"!cell.hasTitle\" [class]=\"cell.className\" [style]=\"{ minWidth: cell.minWidth, width: cell.width }\"></td>\n </ng-container>\n </tr>\n </thead>\n <tbody>\n <tr *ngFor=\"let row of table.rows; trackBy: trackRowBy\" [class]=\"row.className\">\n <sv-ng-matrix-cell\n [cell]=\"cell\"\n [question]=\"question\"\n *ngFor=\"let cell of row.cells; trackBy: trackCellBy\"\n ></sv-ng-matrix-cell>\n </tr>\n </tbody>\n <tfoot *ngIf=\"table.showFooter\">\n <tr>\n <sv-ng-matrix-cell [cell]=\"cell\" [question]=\"question\" *ngFor=\"let cell of table.footerRow.cells; trackBy: trackCellBy\">\n </sv-ng-matrix-cell>\n </tr>\n </tfoot>\n</table>", components: [{ type: i1.SurveyStringComponent, selector: "sv-ng-string, '[sv-ng-string]'", inputs: ["model"] }, { type: i2.MatrixRequiredHeader, selector: "sv-ng-matrixheaderrequired", inputs: ["column", "question"] }, { type: i3.MatrixCellComponent, selector: "sv-ng-matrix-cell", inputs: ["question", "cell"] }], directives: [{ type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }] });
21
21
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: MatrixTableComponent, decorators: [{
22
22
  type: Component,
23
- args: [{ selector: "sv-ng-matrix-table", template: "<table [class]=\"question.getTableCss()\">\n <thead *ngIf=\"table.showHeader\">\n <tr>\n <th\n [class]=\"cell.className\"\n *ngFor=\"let cell of table.headerRow.cells; trackBy: trackCellBy\"\n [style]=\"{ minWidth: cell.minWidth, width: cell.width }\"\n >\n <sv-ng-string *ngIf=\"cell.hasTitle\" [model]=\"cell.locTitle\"></sv-ng-string>\n <sv-ng-matrixheaderrequired *ngIf=\"!!cell.column\" [column]=\"cell.column\" [question]=\"question\"></sv-ng-matrixheaderrequired>\n </th>\n </tr>\n </thead>\n <tbody>\n <tr *ngFor=\"let row of table.rows; trackBy: trackRowBy\" [class]=\"row.className\">\n <sv-ng-matrix-cell\n [cell]=\"cell\"\n [question]=\"question\"\n *ngFor=\"let cell of row.cells; trackBy: trackCellBy\"\n ></sv-ng-matrix-cell>\n </tr>\n </tbody>\n <tfoot *ngIf=\"table.showFooter\">\n <tr>\n <sv-ng-matrix-cell [cell]=\"cell\" [question]=\"question\" *ngFor=\"let cell of table.footerRow.cells; trackBy: trackCellBy\">\n </sv-ng-matrix-cell>\n </tr>\n </tfoot>\n</table>" }]
23
+ args: [{ selector: "sv-ng-matrix-table", template: "<table [class]=\"question.getTableCss()\">\n <thead *ngIf=\"table.showHeader\">\n <tr>\n <ng-container\n *ngFor=\"let cell of table.headerRow.cells; trackBy: trackCellBy\"\n >\n <th *ngIf=\"cell.hasTitle\" [class]=\"cell.className\" [style]=\"{ minWidth: cell.minWidth, width: cell.width }\">\n <sv-ng-string [model]=\"cell.locTitle\"></sv-ng-string>\n <sv-ng-matrixheaderrequired *ngIf=\"!!cell.column\" [column]=\"cell.column\" [question]=\"question\">\n </sv-ng-matrixheaderrequired>\n </th>\n \n <td *ngIf=\"!cell.hasTitle\" [class]=\"cell.className\" [style]=\"{ minWidth: cell.minWidth, width: cell.width }\"></td>\n </ng-container>\n </tr>\n </thead>\n <tbody>\n <tr *ngFor=\"let row of table.rows; trackBy: trackRowBy\" [class]=\"row.className\">\n <sv-ng-matrix-cell\n [cell]=\"cell\"\n [question]=\"question\"\n *ngFor=\"let cell of row.cells; trackBy: trackCellBy\"\n ></sv-ng-matrix-cell>\n </tr>\n </tbody>\n <tfoot *ngIf=\"table.showFooter\">\n <tr>\n <sv-ng-matrix-cell [cell]=\"cell\" [question]=\"question\" *ngFor=\"let cell of table.footerRow.cells; trackBy: trackCellBy\">\n </sv-ng-matrix-cell>\n </tr>\n </tfoot>\n</table>" }]
24
24
  }], propDecorators: { question: [{
25
25
  type: Input
26
26
  }], table: [{
27
27
  type: Input
28
28
  }] } });
29
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWF0cml4dGFibGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcGFja2FnZXMvc3VydmV5LWFuZ3VsYXItdWkvc3JjL3F1ZXN0aW9ucy9tYXRyaXh0YWJsZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi9wYWNrYWdlcy9zdXJ2ZXktYW5ndWxhci11aS9zcmMvcXVlc3Rpb25zL21hdHJpeHRhYmxlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2pELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQzs7Ozs7O0FBTzlDLE1BQU0sT0FBTyxvQkFBcUIsU0FBUSxXQUFnRDtJQUc5RSxRQUFRO1FBQ2hCLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQztJQUNwQixDQUFDO0lBQ00sV0FBVyxDQUFDLENBQVMsRUFBRSxJQUFTO1FBQ3JDLE9BQU8sSUFBSSxDQUFDLEVBQUUsQ0FBQztJQUNqQixDQUFDO0lBQ00sVUFBVSxDQUFDLEtBQWEsRUFBRSxHQUFRO1FBQ3ZDLE9BQU8sR0FBRyxDQUFDLEVBQUUsQ0FBQztJQUNoQixDQUFDOztpSEFYVSxvQkFBb0I7cUdBQXBCLG9CQUFvQixtSUNSakMsNmtDQTRCUTsyRkRwQkssb0JBQW9CO2tCQUpoQyxTQUFTOytCQUNFLG9CQUFvQjs4QkFJckIsUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0IH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7IEJhc2VBbmd1bGFyIH0gZnJvbSBcIi4uL2Jhc2UtYW5ndWxhclwiO1xuaW1wb3J0IHsgUXVlc3Rpb25NYXRyaXhEcm9wZG93bk1vZGVsQmFzZSwgUXVlc3Rpb25NYXRyaXhEcm9wZG93blJlbmRlcmVkVGFibGUgfSBmcm9tIFwic3VydmV5LWNvcmVcIjtcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiBcInN2LW5nLW1hdHJpeC10YWJsZVwiLFxuICB0ZW1wbGF0ZVVybDogXCIuL21hdHJpeHRhYmxlLmNvbXBvbmVudC5odG1sXCJcbn0pXG5leHBvcnQgY2xhc3MgTWF0cml4VGFibGVDb21wb25lbnQgZXh0ZW5kcyBCYXNlQW5ndWxhcjxRdWVzdGlvbk1hdHJpeERyb3Bkb3duUmVuZGVyZWRUYWJsZT4ge1xuICBASW5wdXQoKSBxdWVzdGlvbiE6IFF1ZXN0aW9uTWF0cml4RHJvcGRvd25Nb2RlbEJhc2U7XG4gIEBJbnB1dCgpIHRhYmxlITogUXVlc3Rpb25NYXRyaXhEcm9wZG93blJlbmRlcmVkVGFibGU7XG4gIHByb3RlY3RlZCBnZXRNb2RlbCgpOiBRdWVzdGlvbk1hdHJpeERyb3Bkb3duUmVuZGVyZWRUYWJsZSB7XG4gICAgcmV0dXJuIHRoaXMudGFibGU7XG4gIH1cbiAgcHVibGljIHRyYWNrQ2VsbEJ5KF86IG51bWJlciwgY2VsbDogYW55KTogc3RyaW5nIHtcbiAgICByZXR1cm4gY2VsbC5pZDtcbiAgfVxuICBwdWJsaWMgdHJhY2tSb3dCeShpbmRleDogbnVtYmVyLCByb3c6IGFueSk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHJvdy5pZDtcbiAgfVxufVxuIiwiPHRhYmxlIFtjbGFzc109XCJxdWVzdGlvbi5nZXRUYWJsZUNzcygpXCI+XG4gIDx0aGVhZCAqbmdJZj1cInRhYmxlLnNob3dIZWFkZXJcIj5cbiAgICA8dHI+XG4gICAgICA8dGhcbiAgICAgICAgW2NsYXNzXT1cImNlbGwuY2xhc3NOYW1lXCJcbiAgICAgICAgKm5nRm9yPVwibGV0IGNlbGwgb2YgdGFibGUuaGVhZGVyUm93LmNlbGxzOyB0cmFja0J5OiB0cmFja0NlbGxCeVwiXG4gICAgICAgIFtzdHlsZV09XCJ7IG1pbldpZHRoOiBjZWxsLm1pbldpZHRoLCB3aWR0aDogY2VsbC53aWR0aCB9XCJcbiAgICAgID5cbiAgICAgICAgPHN2LW5nLXN0cmluZyAqbmdJZj1cImNlbGwuaGFzVGl0bGVcIiBbbW9kZWxdPVwiY2VsbC5sb2NUaXRsZVwiPjwvc3Ytbmctc3RyaW5nPlxuICAgICAgICA8c3YtbmctbWF0cml4aGVhZGVycmVxdWlyZWQgKm5nSWY9XCIhIWNlbGwuY29sdW1uXCIgW2NvbHVtbl09XCJjZWxsLmNvbHVtblwiIFtxdWVzdGlvbl09XCJxdWVzdGlvblwiPjwvc3YtbmctbWF0cml4aGVhZGVycmVxdWlyZWQ+XG4gICAgICA8L3RoPlxuICAgIDwvdHI+XG4gIDwvdGhlYWQ+XG4gIDx0Ym9keT5cbiAgICA8dHIgKm5nRm9yPVwibGV0IHJvdyBvZiB0YWJsZS5yb3dzOyB0cmFja0J5OiB0cmFja1Jvd0J5XCIgW2NsYXNzXT1cInJvdy5jbGFzc05hbWVcIj5cbiAgICAgIDxzdi1uZy1tYXRyaXgtY2VsbFxuICAgICAgICBbY2VsbF09XCJjZWxsXCJcbiAgICAgICAgW3F1ZXN0aW9uXT1cInF1ZXN0aW9uXCJcbiAgICAgICAgKm5nRm9yPVwibGV0IGNlbGwgb2Ygcm93LmNlbGxzOyB0cmFja0J5OiB0cmFja0NlbGxCeVwiXG4gICAgICA+PC9zdi1uZy1tYXRyaXgtY2VsbD5cbiAgICA8L3RyPlxuICA8L3Rib2R5PlxuICA8dGZvb3QgKm5nSWY9XCJ0YWJsZS5zaG93Rm9vdGVyXCI+XG4gICAgPHRyPlxuICAgICAgPHN2LW5nLW1hdHJpeC1jZWxsIFtjZWxsXT1cImNlbGxcIiBbcXVlc3Rpb25dPVwicXVlc3Rpb25cIiAqbmdGb3I9XCJsZXQgY2VsbCBvZiB0YWJsZS5mb290ZXJSb3cuY2VsbHM7IHRyYWNrQnk6IHRyYWNrQ2VsbEJ5XCI+XG4gICAgICA8L3N2LW5nLW1hdHJpeC1jZWxsPlxuICAgIDwvdHI+XG4gIDwvdGZvb3Q+XG48L3RhYmxlPiJdfQ==
29
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWF0cml4dGFibGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcGFja2FnZXMvc3VydmV5LWFuZ3VsYXItdWkvc3JjL3F1ZXN0aW9ucy9tYXRyaXh0YWJsZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi9wYWNrYWdlcy9zdXJ2ZXktYW5ndWxhci11aS9zcmMvcXVlc3Rpb25zL21hdHJpeHRhYmxlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2pELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQzs7Ozs7O0FBTzlDLE1BQU0sT0FBTyxvQkFBcUIsU0FBUSxXQUFnRDtJQUc5RSxRQUFRO1FBQ2hCLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQztJQUNwQixDQUFDO0lBQ00sV0FBVyxDQUFDLENBQVMsRUFBRSxJQUFTO1FBQ3JDLE9BQU8sSUFBSSxDQUFDLEVBQUUsQ0FBQztJQUNqQixDQUFDO0lBQ00sVUFBVSxDQUFDLEtBQWEsRUFBRSxHQUFRO1FBQ3ZDLE9BQU8sR0FBRyxDQUFDLEVBQUUsQ0FBQztJQUNoQixDQUFDOztpSEFYVSxvQkFBb0I7cUdBQXBCLG9CQUFvQixtSUNSakMsb3lDQStCUTsyRkR2Qkssb0JBQW9CO2tCQUpoQyxTQUFTOytCQUNFLG9CQUFvQjs4QkFJckIsUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0IH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7IEJhc2VBbmd1bGFyIH0gZnJvbSBcIi4uL2Jhc2UtYW5ndWxhclwiO1xuaW1wb3J0IHsgUXVlc3Rpb25NYXRyaXhEcm9wZG93bk1vZGVsQmFzZSwgUXVlc3Rpb25NYXRyaXhEcm9wZG93blJlbmRlcmVkVGFibGUgfSBmcm9tIFwic3VydmV5LWNvcmVcIjtcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiBcInN2LW5nLW1hdHJpeC10YWJsZVwiLFxuICB0ZW1wbGF0ZVVybDogXCIuL21hdHJpeHRhYmxlLmNvbXBvbmVudC5odG1sXCJcbn0pXG5leHBvcnQgY2xhc3MgTWF0cml4VGFibGVDb21wb25lbnQgZXh0ZW5kcyBCYXNlQW5ndWxhcjxRdWVzdGlvbk1hdHJpeERyb3Bkb3duUmVuZGVyZWRUYWJsZT4ge1xuICBASW5wdXQoKSBxdWVzdGlvbiE6IFF1ZXN0aW9uTWF0cml4RHJvcGRvd25Nb2RlbEJhc2U7XG4gIEBJbnB1dCgpIHRhYmxlITogUXVlc3Rpb25NYXRyaXhEcm9wZG93blJlbmRlcmVkVGFibGU7XG4gIHByb3RlY3RlZCBnZXRNb2RlbCgpOiBRdWVzdGlvbk1hdHJpeERyb3Bkb3duUmVuZGVyZWRUYWJsZSB7XG4gICAgcmV0dXJuIHRoaXMudGFibGU7XG4gIH1cbiAgcHVibGljIHRyYWNrQ2VsbEJ5KF86IG51bWJlciwgY2VsbDogYW55KTogc3RyaW5nIHtcbiAgICByZXR1cm4gY2VsbC5pZDtcbiAgfVxuICBwdWJsaWMgdHJhY2tSb3dCeShpbmRleDogbnVtYmVyLCByb3c6IGFueSk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHJvdy5pZDtcbiAgfVxufVxuIiwiPHRhYmxlIFtjbGFzc109XCJxdWVzdGlvbi5nZXRUYWJsZUNzcygpXCI+XG4gIDx0aGVhZCAqbmdJZj1cInRhYmxlLnNob3dIZWFkZXJcIj5cbiAgICA8dHI+XG4gICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICpuZ0Zvcj1cImxldCBjZWxsIG9mIHRhYmxlLmhlYWRlclJvdy5jZWxsczsgdHJhY2tCeTogdHJhY2tDZWxsQnlcIlxuICAgICAgPlxuICAgICAgICAgICAgPHRoICpuZ0lmPVwiY2VsbC5oYXNUaXRsZVwiIFtjbGFzc109XCJjZWxsLmNsYXNzTmFtZVwiIFtzdHlsZV09XCJ7IG1pbldpZHRoOiBjZWxsLm1pbldpZHRoLCB3aWR0aDogY2VsbC53aWR0aCB9XCI+XG4gICAgICAgICAgICAgIDxzdi1uZy1zdHJpbmcgW21vZGVsXT1cImNlbGwubG9jVGl0bGVcIj48L3N2LW5nLXN0cmluZz5cbiAgICAgICAgICAgICAgPHN2LW5nLW1hdHJpeGhlYWRlcnJlcXVpcmVkICpuZ0lmPVwiISFjZWxsLmNvbHVtblwiIFtjb2x1bW5dPVwiY2VsbC5jb2x1bW5cIiBbcXVlc3Rpb25dPVwicXVlc3Rpb25cIj5cbiAgICAgICAgICAgICAgPC9zdi1uZy1tYXRyaXhoZWFkZXJyZXF1aXJlZD5cbiAgICAgICAgICAgIDwvdGg+XG4gICAgICAgICAgICBcbiAgICAgICAgICAgIDx0ZCAqbmdJZj1cIiFjZWxsLmhhc1RpdGxlXCIgW2NsYXNzXT1cImNlbGwuY2xhc3NOYW1lXCIgW3N0eWxlXT1cInsgbWluV2lkdGg6IGNlbGwubWluV2lkdGgsIHdpZHRoOiBjZWxsLndpZHRoIH1cIj48L3RkPlxuICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgPC90cj5cbiAgPC90aGVhZD5cbiAgPHRib2R5PlxuICAgIDx0ciAqbmdGb3I9XCJsZXQgcm93IG9mIHRhYmxlLnJvd3M7IHRyYWNrQnk6IHRyYWNrUm93QnlcIiBbY2xhc3NdPVwicm93LmNsYXNzTmFtZVwiPlxuICAgICAgPHN2LW5nLW1hdHJpeC1jZWxsXG4gICAgICAgIFtjZWxsXT1cImNlbGxcIlxuICAgICAgICBbcXVlc3Rpb25dPVwicXVlc3Rpb25cIlxuICAgICAgICAqbmdGb3I9XCJsZXQgY2VsbCBvZiByb3cuY2VsbHM7IHRyYWNrQnk6IHRyYWNrQ2VsbEJ5XCJcbiAgICAgID48L3N2LW5nLW1hdHJpeC1jZWxsPlxuICAgIDwvdHI+XG4gIDwvdGJvZHk+XG4gIDx0Zm9vdCAqbmdJZj1cInRhYmxlLnNob3dGb290ZXJcIj5cbiAgICA8dHI+XG4gICAgICA8c3YtbmctbWF0cml4LWNlbGwgW2NlbGxdPVwiY2VsbFwiIFtxdWVzdGlvbl09XCJxdWVzdGlvblwiICpuZ0Zvcj1cImxldCBjZWxsIG9mIHRhYmxlLmZvb3RlclJvdy5jZWxsczsgdHJhY2tCeTogdHJhY2tDZWxsQnlcIj5cbiAgICAgIDwvc3YtbmctbWF0cml4LWNlbGw+XG4gICAgPC90cj5cbiAgPC90Zm9vdD5cbjwvdGFibGU+Il19
@@ -0,0 +1,26 @@
1
+ import { Component, Input } from "@angular/core";
2
+ import { SurveyModel } from "survey-core";
3
+ import { BaseAngular } from "./base-angular";
4
+ import { AngularComponentFactory } from "./component-factory";
5
+ import * as i0 from "@angular/core";
6
+ import * as i1 from "./utils/dynamic.directive";
7
+ export class TemplateRendererComponent extends BaseAngular {
8
+ getModel() {
9
+ return this.model;
10
+ }
11
+ get componentName() {
12
+ return this.model.isPanel ? "panel" : "question";
13
+ }
14
+ }
15
+ TemplateRendererComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: TemplateRendererComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
16
+ TemplateRendererComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0.3", type: TemplateRendererComponent, selector: "sv-template-renderer", inputs: { model: "model", componentData: "componentData" }, usesInheritance: true, ngImport: i0, template: "<ng-template #template>\n <ng-template [component]=\"{ name: componentName, data: { model: this.model } }\"></ng-template>\n</ng-template>", directives: [{ type: i1.DynamicComponentDirective, selector: "[component]", inputs: ["component"] }] });
17
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: TemplateRendererComponent, decorators: [{
18
+ type: Component,
19
+ args: [{ selector: "sv-template-renderer", template: "<ng-template #template>\n <ng-template [component]=\"{ name: componentName, data: { model: this.model } }\"></ng-template>\n</ng-template>" }]
20
+ }], propDecorators: { model: [{
21
+ type: Input
22
+ }], componentData: [{
23
+ type: Input
24
+ }] } });
25
+ AngularComponentFactory.Instance.registerComponent(SurveyModel.TemplateRendererComponentName, TemplateRendererComponent);
26
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVtcGxhdGUtcmVuZGVyZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vcGFja2FnZXMvc3VydmV5LWFuZ3VsYXItdWkvc3JjL3RlbXBsYXRlLXJlbmRlcmVyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uL3BhY2thZ2VzL3N1cnZleS1hbmd1bGFyLXVpL3NyYy90ZW1wbGF0ZS1yZW5kZXJlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQXFCLFNBQVMsRUFBRSxLQUFLLEVBQW9CLE1BQU0sZUFBZSxDQUFDO0FBQ3RGLE9BQU8sRUFBOEMsV0FBVyxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQ3RGLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3QyxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQzs7O0FBTTlELE1BQU0sT0FBTyx5QkFBMEIsU0FBUSxXQUFrQztJQUdyRSxRQUFRO1FBQ2hCLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQztJQUNwQixDQUFDO0lBQ0QsSUFBVyxhQUFhO1FBQ3RCLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQSxDQUFDLENBQUMsVUFBVSxDQUFDO0lBQ2xELENBQUM7O3NIQVJVLHlCQUF5QjswR0FBekIseUJBQXlCLCtJQ1R0Qyw2SUFFYzsyRkRPRCx5QkFBeUI7a0JBSnJDLFNBQVM7K0JBQ0Usc0JBQXNCOzhCQUl2QixLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csYUFBYTtzQkFBckIsS0FBSzs7QUFRUix1QkFBdUIsQ0FBQyxRQUFRLENBQUMsaUJBQWlCLENBQUMsV0FBVyxDQUFDLDZCQUE2QixFQUFFLHlCQUF5QixDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3RvclJlZiwgQ29tcG9uZW50LCBJbnB1dCwgVmlld0NvbnRhaW5lclJlZiB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQgeyBCdXR0b25Hcm91cEl0ZW1Nb2RlbCwgUGFuZWxNb2RlbCwgUXVlc3Rpb24sIFN1cnZleU1vZGVsIH0gZnJvbSBcInN1cnZleS1jb3JlXCI7XG5pbXBvcnQgeyBCYXNlQW5ndWxhciB9IGZyb20gXCIuL2Jhc2UtYW5ndWxhclwiO1xuaW1wb3J0IHsgQW5ndWxhckNvbXBvbmVudEZhY3RvcnkgfSBmcm9tIFwiLi9jb21wb25lbnQtZmFjdG9yeVwiO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6IFwic3YtdGVtcGxhdGUtcmVuZGVyZXJcIixcbiAgdGVtcGxhdGVVcmw6IFwiLi90ZW1wbGF0ZS1yZW5kZXJlci5jb21wb25lbnQuaHRtbFwiXG59KVxuZXhwb3J0IGNsYXNzIFRlbXBsYXRlUmVuZGVyZXJDb21wb25lbnQgZXh0ZW5kcyBCYXNlQW5ndWxhcjxQYW5lbE1vZGVsIHwgUXVlc3Rpb24+IHtcbiAgQElucHV0KCkgbW9kZWwhOiBQYW5lbE1vZGVsIHwgUXVlc3Rpb247XG4gIEBJbnB1dCgpIGNvbXBvbmVudERhdGE/OiBhbnk7XG4gIHByb3RlY3RlZCBnZXRNb2RlbCgpOiBQYW5lbE1vZGVsIHwgUXVlc3Rpb24ge1xuICAgIHJldHVybiB0aGlzLm1vZGVsO1xuICB9XG4gIHB1YmxpYyBnZXQgY29tcG9uZW50TmFtZSgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLm1vZGVsLmlzUGFuZWwgPyBcInBhbmVsXCI6IFwicXVlc3Rpb25cIjtcbiAgfVxufVxuQW5ndWxhckNvbXBvbmVudEZhY3RvcnkuSW5zdGFuY2UucmVnaXN0ZXJDb21wb25lbnQoU3VydmV5TW9kZWwuVGVtcGxhdGVSZW5kZXJlckNvbXBvbmVudE5hbWUsIFRlbXBsYXRlUmVuZGVyZXJDb21wb25lbnQpOyIsIjxuZy10ZW1wbGF0ZSAjdGVtcGxhdGU+XG4gIDxuZy10ZW1wbGF0ZSBbY29tcG9uZW50XT1cInsgbmFtZTogY29tcG9uZW50TmFtZSwgZGF0YTogeyBtb2RlbDogdGhpcy5tb2RlbCB9IH1cIj48L25nLXRlbXBsYXRlPlxuPC9uZy10ZW1wbGF0ZT4iXX0=
@@ -7,7 +7,8 @@ export class DynamicComponentDirective {
7
7
  }
8
8
  ngOnChanges(changes) {
9
9
  const componentChanges = changes["component"];
10
- if (componentChanges.currentValue.name !== componentChanges.previousValue?.name) {
10
+ if (componentChanges.currentValue.name !== componentChanges.previousValue?.name ||
11
+ (componentChanges.currentValue.name === undefined && componentChanges.previousValue === undefined && !this.componentInstance)) {
11
12
  this.createComponent();
12
13
  }
13
14
  else {
@@ -22,6 +23,9 @@ export class DynamicComponentDirective {
22
23
  else if (this.component.default) {
23
24
  this.componentInstance = AngularComponentFactory.Instance.create(this.containerRef, this.component.default).instance;
24
25
  }
26
+ if (!this.componentInstance) {
27
+ throw new Error(`Can't create component with name: ${this.component.name} and default: ${this.component.default}`);
28
+ }
25
29
  this.updateComponentData();
26
30
  }
27
31
  updateComponentData() {
@@ -43,4 +47,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImpor
43
47
  }], ctorParameters: function () { return [{ type: i0.ViewContainerRef }]; }, propDecorators: { component: [{
44
48
  type: Input
45
49
  }] } });
46
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHluYW1pYy5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9zdXJ2ZXktYW5ndWxhci11aS9zcmMvdXRpbHMvZHluYW1pYy5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBYyxLQUFLLEVBQThDLE1BQU0sZUFBZSxDQUFDO0FBQ3pHLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLHNCQUFzQixDQUFDOztBQVkvRCxNQUFNLE9BQU8seUJBQXlCO0lBQ3BDLFlBQW9CLFlBQThCO1FBQTlCLGlCQUFZLEdBQVosWUFBWSxDQUFrQjtJQUFJLENBQUM7SUFHdkQsV0FBVyxDQUFDLE9BQXNCO1FBQ2hDLE1BQU0sZ0JBQWdCLEdBQUcsT0FBTyxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQzlDLElBQUcsZ0JBQWdCLENBQUMsWUFBWSxDQUFDLElBQUksS0FBSyxnQkFBZ0IsQ0FBQyxhQUFhLEVBQUUsSUFBSSxFQUFFO1lBQzlFLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQztTQUN4QjthQUFNO1lBQ0wsSUFBSSxDQUFDLG1CQUFtQixFQUFFLENBQUM7U0FDNUI7SUFDSCxDQUFDO0lBQ0QsZUFBZTtRQUNiLElBQUksQ0FBQyxZQUFZLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDMUIsSUFBRyx1QkFBdUIsQ0FBQyxRQUFRLENBQUMscUJBQXFCLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsRUFBRTtZQUM5RSxJQUFJLENBQUMsaUJBQWlCLEdBQUcsdUJBQXVCLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsWUFBWSxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUMsUUFBUSxDQUFDO1NBQ25IO2FBQU0sSUFBSSxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sRUFBRTtZQUNqQyxJQUFJLENBQUMsaUJBQWlCLEdBQUcsdUJBQXVCLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsWUFBWSxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDO1NBQ3RIO1FBQ0QsSUFBSSxDQUFDLG1CQUFtQixFQUFFLENBQUM7SUFDN0IsQ0FBQztJQUNELG1CQUFtQjtRQUNqQixJQUFHLENBQUMsSUFBSSxDQUFDLGlCQUFpQjtZQUFFLE9BQU87UUFDbkMsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUM7UUFDakMsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRTtZQUNoQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsR0FBRyxDQUFDLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQzFDLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzs7c0hBM0JVLHlCQUF5QjswR0FBekIseUJBQXlCOzJGQUF6Qix5QkFBeUI7a0JBSnJDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLGFBQWE7aUJBQ3hCO3VHQUlVLFNBQVM7c0JBQWpCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIEVsZW1lbnRSZWYsIElucHV0LCBPbkNoYW5nZXMsIFNpbXBsZUNoYW5nZXMsIFZpZXdDb250YWluZXJSZWYgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHsgQW5ndWxhckNvbXBvbmVudEZhY3RvcnkgfSBmcm9tIFwiLi4vY29tcG9uZW50LWZhY3RvcnlcIjtcblxuaW50ZXJmYWNlIElEeW5hbWljQ29tcG9uZW50IHtcbiAgbmFtZTogc3RyaW5nO1xuICBkYXRhPzogYW55O1xuICBkZWZhdWx0Pzogc3RyaW5nO1xufVxuXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6IFwiW2NvbXBvbmVudF1cIlxufSlcblxuZXhwb3J0IGNsYXNzIER5bmFtaWNDb21wb25lbnREaXJlY3RpdmUgaW1wbGVtZW50cyBPbkNoYW5nZXMge1xuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGNvbnRhaW5lclJlZjogVmlld0NvbnRhaW5lclJlZikgeyB9XG4gIEBJbnB1dCgpIGNvbXBvbmVudCE6IElEeW5hbWljQ29tcG9uZW50O1xuICBwcml2YXRlIGNvbXBvbmVudEluc3RhbmNlOiBhbnk7XG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICBjb25zdCBjb21wb25lbnRDaGFuZ2VzID0gY2hhbmdlc1tcImNvbXBvbmVudFwiXTtcbiAgICBpZihjb21wb25lbnRDaGFuZ2VzLmN1cnJlbnRWYWx1ZS5uYW1lICE9PSBjb21wb25lbnRDaGFuZ2VzLnByZXZpb3VzVmFsdWU/Lm5hbWUpIHtcbiAgICAgIHRoaXMuY3JlYXRlQ29tcG9uZW50KCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMudXBkYXRlQ29tcG9uZW50RGF0YSgpO1xuICAgIH1cbiAgfVxuICBjcmVhdGVDb21wb25lbnQoKTogdm9pZCB7XG4gICAgdGhpcy5jb250YWluZXJSZWYuY2xlYXIoKTtcbiAgICBpZihBbmd1bGFyQ29tcG9uZW50RmFjdG9yeS5JbnN0YW5jZS5pc0NvbXBvbmVudFJlZ2lzdGVyZWQodGhpcy5jb21wb25lbnQubmFtZSkpIHtcbiAgICAgIHRoaXMuY29tcG9uZW50SW5zdGFuY2UgPSBBbmd1bGFyQ29tcG9uZW50RmFjdG9yeS5JbnN0YW5jZS5jcmVhdGUodGhpcy5jb250YWluZXJSZWYsIHRoaXMuY29tcG9uZW50Lm5hbWUpLmluc3RhbmNlO1xuICAgIH0gZWxzZSBpZiAodGhpcy5jb21wb25lbnQuZGVmYXVsdCkge1xuICAgICAgdGhpcy5jb21wb25lbnRJbnN0YW5jZSA9IEFuZ3VsYXJDb21wb25lbnRGYWN0b3J5Lkluc3RhbmNlLmNyZWF0ZSh0aGlzLmNvbnRhaW5lclJlZiwgdGhpcy5jb21wb25lbnQuZGVmYXVsdCkuaW5zdGFuY2U7XG4gICAgfVxuICAgIHRoaXMudXBkYXRlQ29tcG9uZW50RGF0YSgpO1xuICB9XG4gIHVwZGF0ZUNvbXBvbmVudERhdGEoKTogdm9pZCB7XG4gICAgaWYoIXRoaXMuY29tcG9uZW50SW5zdGFuY2UpIHJldHVybjtcbiAgICBjb25zdCBkYXRhID0gdGhpcy5jb21wb25lbnQuZGF0YTtcbiAgICBPYmplY3Qua2V5cyhkYXRhKS5mb3JFYWNoKChrZXkpID0+IHtcbiAgICAgIHRoaXMuY29tcG9uZW50SW5zdGFuY2Vba2V5XSA9IGRhdGFba2V5XTtcbiAgICB9KTtcbiAgfVxufSJdfQ==
50
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHluYW1pYy5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9zdXJ2ZXktYW5ndWxhci11aS9zcmMvdXRpbHMvZHluYW1pYy5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBYyxLQUFLLEVBQThDLE1BQU0sZUFBZSxDQUFDO0FBQ3pHLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLHNCQUFzQixDQUFDOztBQVkvRCxNQUFNLE9BQU8seUJBQXlCO0lBQ3BDLFlBQW9CLFlBQThCO1FBQTlCLGlCQUFZLEdBQVosWUFBWSxDQUFrQjtJQUFJLENBQUM7SUFHdkQsV0FBVyxDQUFDLE9BQXNCO1FBQ2hDLE1BQU0sZ0JBQWdCLEdBQUcsT0FBTyxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQzlDLElBQUcsZ0JBQWdCLENBQUMsWUFBWSxDQUFDLElBQUksS0FBSyxnQkFBZ0IsQ0FBQyxhQUFhLEVBQUUsSUFBSTtZQUM1RSxDQUFDLGdCQUFnQixDQUFDLFlBQVksQ0FBQyxJQUFJLEtBQUssU0FBUyxJQUFJLGdCQUFnQixDQUFDLGFBQWEsS0FBSyxTQUFTLElBQUksQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsRUFBRTtZQUMvSCxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7U0FDeEI7YUFBTTtZQUNMLElBQUksQ0FBQyxtQkFBbUIsRUFBRSxDQUFDO1NBQzVCO0lBQ0gsQ0FBQztJQUNELGVBQWU7UUFDYixJQUFJLENBQUMsWUFBWSxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQzFCLElBQUcsdUJBQXVCLENBQUMsUUFBUSxDQUFDLHFCQUFxQixDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLEVBQUU7WUFDOUUsSUFBSSxDQUFDLGlCQUFpQixHQUFHLHVCQUF1QixDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFlBQVksRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDLFFBQVEsQ0FBQztTQUNuSDthQUFNLElBQUksSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLEVBQUU7WUFDakMsSUFBSSxDQUFDLGlCQUFpQixHQUFHLHVCQUF1QixDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFlBQVksRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQztTQUN0SDtRQUNELElBQUcsQ0FBQyxJQUFJLENBQUMsaUJBQWlCLEVBQUU7WUFDMUIsTUFBTSxJQUFJLEtBQUssQ0FBQyxxQ0FBcUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLGlCQUFpQixJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUM7U0FDcEg7UUFDRCxJQUFJLENBQUMsbUJBQW1CLEVBQUUsQ0FBQztJQUM3QixDQUFDO0lBQ0QsbUJBQW1CO1FBQ2pCLElBQUcsQ0FBQyxJQUFJLENBQUMsaUJBQWlCO1lBQUUsT0FBTztRQUNuQyxNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQztRQUNqQyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFO1lBQ2hDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxHQUFHLENBQUMsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDMUMsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDOztzSEEvQlUseUJBQXlCOzBHQUF6Qix5QkFBeUI7MkZBQXpCLHlCQUF5QjtrQkFKckMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsYUFBYTtpQkFDeEI7dUdBSVUsU0FBUztzQkFBakIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgRWxlbWVudFJlZiwgSW5wdXQsIE9uQ2hhbmdlcywgU2ltcGxlQ2hhbmdlcywgVmlld0NvbnRhaW5lclJlZiB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQgeyBBbmd1bGFyQ29tcG9uZW50RmFjdG9yeSB9IGZyb20gXCIuLi9jb21wb25lbnQtZmFjdG9yeVwiO1xuXG5pbnRlcmZhY2UgSUR5bmFtaWNDb21wb25lbnQge1xuICBuYW1lOiBzdHJpbmc7XG4gIGRhdGE/OiBhbnk7XG4gIGRlZmF1bHQ/OiBzdHJpbmc7XG59XG5cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogXCJbY29tcG9uZW50XVwiXG59KVxuXG5leHBvcnQgY2xhc3MgRHluYW1pY0NvbXBvbmVudERpcmVjdGl2ZSBpbXBsZW1lbnRzIE9uQ2hhbmdlcyB7XG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgY29udGFpbmVyUmVmOiBWaWV3Q29udGFpbmVyUmVmKSB7IH1cbiAgQElucHV0KCkgY29tcG9uZW50ITogSUR5bmFtaWNDb21wb25lbnQ7XG4gIHByaXZhdGUgY29tcG9uZW50SW5zdGFuY2U6IGFueTtcbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgIGNvbnN0IGNvbXBvbmVudENoYW5nZXMgPSBjaGFuZ2VzW1wiY29tcG9uZW50XCJdO1xuICAgIGlmKGNvbXBvbmVudENoYW5nZXMuY3VycmVudFZhbHVlLm5hbWUgIT09IGNvbXBvbmVudENoYW5nZXMucHJldmlvdXNWYWx1ZT8ubmFtZSB8fFxuICAgICAgKGNvbXBvbmVudENoYW5nZXMuY3VycmVudFZhbHVlLm5hbWUgPT09IHVuZGVmaW5lZCAmJiBjb21wb25lbnRDaGFuZ2VzLnByZXZpb3VzVmFsdWUgPT09IHVuZGVmaW5lZCAmJiAhdGhpcy5jb21wb25lbnRJbnN0YW5jZSkpIHtcbiAgICAgIHRoaXMuY3JlYXRlQ29tcG9uZW50KCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMudXBkYXRlQ29tcG9uZW50RGF0YSgpO1xuICAgIH1cbiAgfVxuICBjcmVhdGVDb21wb25lbnQoKTogdm9pZCB7XG4gICAgdGhpcy5jb250YWluZXJSZWYuY2xlYXIoKTtcbiAgICBpZihBbmd1bGFyQ29tcG9uZW50RmFjdG9yeS5JbnN0YW5jZS5pc0NvbXBvbmVudFJlZ2lzdGVyZWQodGhpcy5jb21wb25lbnQubmFtZSkpIHtcbiAgICAgIHRoaXMuY29tcG9uZW50SW5zdGFuY2UgPSBBbmd1bGFyQ29tcG9uZW50RmFjdG9yeS5JbnN0YW5jZS5jcmVhdGUodGhpcy5jb250YWluZXJSZWYsIHRoaXMuY29tcG9uZW50Lm5hbWUpLmluc3RhbmNlO1xuICAgIH0gZWxzZSBpZiAodGhpcy5jb21wb25lbnQuZGVmYXVsdCkge1xuICAgICAgdGhpcy5jb21wb25lbnRJbnN0YW5jZSA9IEFuZ3VsYXJDb21wb25lbnRGYWN0b3J5Lkluc3RhbmNlLmNyZWF0ZSh0aGlzLmNvbnRhaW5lclJlZiwgdGhpcy5jb21wb25lbnQuZGVmYXVsdCkuaW5zdGFuY2U7XG4gICAgfVxuICAgIGlmKCF0aGlzLmNvbXBvbmVudEluc3RhbmNlKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYENhbid0IGNyZWF0ZSBjb21wb25lbnQgd2l0aCBuYW1lOiAke3RoaXMuY29tcG9uZW50Lm5hbWV9IGFuZCBkZWZhdWx0OiAke3RoaXMuY29tcG9uZW50LmRlZmF1bHR9YCk7XG4gICAgfVxuICAgIHRoaXMudXBkYXRlQ29tcG9uZW50RGF0YSgpO1xuICB9XG4gIHVwZGF0ZUNvbXBvbmVudERhdGEoKTogdm9pZCB7XG4gICAgaWYoIXRoaXMuY29tcG9uZW50SW5zdGFuY2UpIHJldHVybjtcbiAgICBjb25zdCBkYXRhID0gdGhpcy5jb21wb25lbnQuZGF0YTtcbiAgICBPYmplY3Qua2V5cyhkYXRhKS5mb3JFYWNoKChrZXkpID0+IHtcbiAgICAgIHRoaXMuY29tcG9uZW50SW5zdGFuY2Vba2V5XSA9IGRhdGFba2V5XTtcbiAgICB9KTtcbiAgfVxufSJdfQ==