@touchpoll/tp-survey 0.0.23 → 0.0.25

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 (60) hide show
  1. package/fesm2022/touchpoll-tp-survey.mjs +202 -150
  2. package/fesm2022/touchpoll-tp-survey.mjs.map +1 -1
  3. package/lib/component/answer/answer.ms/answer.ms.component.d.ts +3 -3
  4. package/lib/component/answer/answer.sl/answer.sl.component.d.ts +3 -3
  5. package/lib/component/survey.play/survey.play.component.d.ts +2 -2
  6. package/lib/pipe/get.question.image.background.size/get.question.image.background.css.size.pipe.d.ts +12 -0
  7. package/lib/tp.survey.interface.d.ts +4 -4
  8. package/package.json +1 -3
  9. package/styles/platform/component/survey.checkbox.scss +5 -5
  10. package/styles/platform/component/survey.radio.button.scss +3 -3
  11. package/styles/platform/survey.mixins.desktop.scss +9 -9
  12. package/styles/platform/survey.mixins.tablet.scss +3 -3
  13. package/styles/survey.mixins.scss +4 -3
  14. package/styles/survey.themes.scss +5 -2
  15. package/styles/theme/azure.blue.scss +3 -2
  16. package/styles/theme/cyan.orange.scss +4 -2
  17. package/styles/theme/rose.red.scss +3 -2
  18. package/esm2022/lib/component/answer/answer.additional/answer.additional.component.mjs +0 -49
  19. package/esm2022/lib/component/answer/answer.additional/directive/additional.answer.caption.position/additional.answer.caption.position.directive.mjs +0 -61
  20. package/esm2022/lib/component/answer/answer.end/answer.end.component.mjs +0 -30
  21. package/esm2022/lib/component/answer/answer.info/answer.info.component.mjs +0 -30
  22. package/esm2022/lib/component/answer/answer.lang/answer.lang.component.mjs +0 -22
  23. package/esm2022/lib/component/answer/answer.master/answer.master.component.mjs +0 -57
  24. package/esm2022/lib/component/answer/answer.ms/answer.ms.component.mjs +0 -106
  25. package/esm2022/lib/component/answer/answer.od/answer.od.component.mjs +0 -39
  26. package/esm2022/lib/component/answer/answer.ol/answer.ol.component.mjs +0 -40
  27. package/esm2022/lib/component/answer/answer.sl/answer.sl.component.mjs +0 -131
  28. package/esm2022/lib/component/answer/answer.sl/pipe/as.form.array/as.form.array.pipe.mjs +0 -17
  29. package/esm2022/lib/component/answer/answer.sl/pipe/as.form.control/as.form.control.pipe.mjs +0 -17
  30. package/esm2022/lib/component/answer/answer.ss/answer.ss.component.mjs +0 -51
  31. package/esm2022/lib/component/answer/container.answer/container.answer.component.mjs +0 -319
  32. package/esm2022/lib/component/answer/container.answer/container.answer.validator.mjs +0 -130
  33. package/esm2022/lib/component/navigation.button/navigation.button.component.mjs +0 -21
  34. package/esm2022/lib/component/question.caption/question.caption.component.mjs +0 -15
  35. package/esm2022/lib/component/survey.play/survey.play.component.mjs +0 -126
  36. package/esm2022/lib/component/survey.question.preview/survey.question.preview.component.mjs +0 -60
  37. package/esm2022/lib/core/tp.servey.quota/tp.survey.quota.mjs +0 -105
  38. package/esm2022/lib/core/tp.survey.answer/tp.survey.answer.mjs +0 -27
  39. package/esm2022/lib/core/tp.survey.core/tp.survey.core.service.mjs +0 -455
  40. package/esm2022/lib/core/tp.survey.interview/tp.survey.interview.service.mjs +0 -68
  41. package/esm2022/lib/core/tp.survey.logic/tp.survey.logic.service.mjs +0 -42
  42. package/esm2022/lib/directive/alternatives.container/alternatives.container.directive.mjs +0 -130
  43. package/esm2022/lib/directive/focus.and.select/focus.and.select.directive.mjs +0 -27
  44. package/esm2022/lib/directive/survey.theme/survey.theme.directive.mjs +0 -53
  45. package/esm2022/lib/directive/update.font.size/update.font.size.directive.mjs +0 -28
  46. package/esm2022/lib/icons/default.icons/default.icons.mjs +0 -15
  47. package/esm2022/lib/icons/default.icons/default.icons.module.mjs +0 -31
  48. package/esm2022/lib/pipe/get.active.language/get.active.language.pipe.mjs +0 -17
  49. package/esm2022/lib/pipe/get.additional.value.by.value/get.additional.value.by.value.pipe.mjs +0 -18
  50. package/esm2022/lib/pipe/key.values/key.values.pipe.mjs +0 -20
  51. package/esm2022/lib/pipe/multi.lang.object.to.html/multi.lang.object.to.html.pipe.mjs +0 -48
  52. package/esm2022/lib/tp.survey.config.mjs +0 -8
  53. package/esm2022/lib/tp.survey.const.mjs +0 -28
  54. package/esm2022/lib/tp.survey.enum.mjs +0 -50
  55. package/esm2022/lib/tp.survey.interface.mjs +0 -2
  56. package/esm2022/lib/tp.survey.method.mjs +0 -5
  57. package/esm2022/lib/tp.survey.module.mjs +0 -27
  58. package/esm2022/lib/tp.survey.type.mjs +0 -2
  59. package/esm2022/public-api.mjs +0 -14
  60. package/esm2022/touchpoll-tp-survey.mjs +0 -5
@@ -1,22 +0,0 @@
1
- import { Component, input, output } from '@angular/core';
2
- import { AnswerMasterComponent } from '../answer.master/answer.master.component';
3
- import { MatButton } from '@angular/material/button';
4
- import { MatIcon } from '@angular/material/icon';
5
- import * as i0 from "@angular/core";
6
- export class AnswerLangComponent extends AnswerMasterComponent {
7
- constructor() {
8
- super(...arguments);
9
- this.languageList = input.required();
10
- this.onLanguageChange = output();
11
- }
12
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: AnswerLangComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
13
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.0.1", type: AnswerLangComponent, isStandalone: true, selector: "tp-survey-answer-lang", inputs: { languageList: { classPropertyName: "languageList", publicName: "languageList", isSignal: true, isRequired: true, transformFunction: null } }, outputs: { onLanguageChange: "onLanguageChange" }, usesInheritance: true, ngImport: i0, template: "@for (language of languageList(); track $index) {\r\n <button mat-button (click)=\"onLanguageChange.emit(language.Value)\">\r\n {{language.Caption}}\r\n </button>\r\n}\r\n", styles: [""], dependencies: [{ kind: "component", type: MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }] }); }
14
- }
15
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: AnswerLangComponent, decorators: [{
16
- type: Component,
17
- args: [{ selector: 'tp-survey-answer-lang', standalone: true, imports: [
18
- MatButton,
19
- MatIcon
20
- ], template: "@for (language of languageList(); track $index) {\r\n <button mat-button (click)=\"onLanguageChange.emit(language.Value)\">\r\n {{language.Caption}}\r\n </button>\r\n}\r\n" }]
21
- }] });
22
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5zd2VyLmxhbmcuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHAuc3VydmV5L3NyYy9saWIvY29tcG9uZW50L2Fuc3dlci9hbnN3ZXIubGFuZy9hbnN3ZXIubGFuZy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90cC5zdXJ2ZXkvc3JjL2xpYi9jb21wb25lbnQvYW5zd2VyL2Fuc3dlci5sYW5nL2Fuc3dlci5sYW5nLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUN2RCxPQUFPLEVBQUMscUJBQXFCLEVBQUMsTUFBTSwwQ0FBMEMsQ0FBQztBQUUvRSxPQUFPLEVBQUMsU0FBUyxFQUFDLE1BQU0sMEJBQTBCLENBQUM7QUFDbkQsT0FBTyxFQUFDLE9BQU8sRUFBQyxNQUFNLHdCQUF3QixDQUFDOztBQWEvQyxNQUFNLE9BQU8sbUJBQW9CLFNBQVEscUJBQTZCO0lBWHRFOztRQVlFLGlCQUFZLEdBQUcsS0FBSyxDQUFDLFFBQVEsRUFBZ0MsQ0FBQztRQUM5RCxxQkFBZ0IsR0FBRyxNQUFNLEVBQVUsQ0FBQztLQUNyQzs4R0FIWSxtQkFBbUI7a0dBQW5CLG1CQUFtQixtVENqQmhDLDhLQUtBLDBERE9JLFNBQVM7OzJGQUtBLG1CQUFtQjtrQkFYL0IsU0FBUzsrQkFDRSx1QkFBdUIsY0FHckIsSUFBSSxXQUNQO3dCQUNQLFNBQVM7d0JBQ1QsT0FBTztxQkFDUiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q29tcG9uZW50LCBpbnB1dCwgb3V0cHV0fSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHtBbnN3ZXJNYXN0ZXJDb21wb25lbnR9IGZyb20gJy4uL2Fuc3dlci5tYXN0ZXIvYW5zd2VyLm1hc3Rlci5jb21wb25lbnQnO1xyXG5pbXBvcnQge0lkYkJhc2VQYXJhbXNMYW5ndWFnZX0gZnJvbSAnLi4vLi4vLi4vdHAuc3VydmV5LmludGVyZmFjZSc7XHJcbmltcG9ydCB7TWF0QnV0dG9ufSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9idXR0b24nO1xyXG5pbXBvcnQge01hdEljb259IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2ljb24nO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICd0cC1zdXJ2ZXktYW5zd2VyLWxhbmcnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9hbnN3ZXIubGFuZy5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vYW5zd2VyLmxhbmcuY29tcG9uZW50LnNjc3MnXSxcclxuICBzdGFuZGFsb25lOiB0cnVlLFxyXG4gIGltcG9ydHM6IFtcclxuICAgIE1hdEJ1dHRvbixcclxuICAgIE1hdEljb25cclxuICBdXHJcbn0pXHJcblxyXG5leHBvcnQgY2xhc3MgQW5zd2VyTGFuZ0NvbXBvbmVudCBleHRlbmRzIEFuc3dlck1hc3RlckNvbXBvbmVudDxudW1iZXI+e1xyXG4gIGxhbmd1YWdlTGlzdCA9IGlucHV0LnJlcXVpcmVkPEFycmF5PElkYkJhc2VQYXJhbXNMYW5ndWFnZT4+KCk7XHJcbiAgb25MYW5ndWFnZUNoYW5nZSA9IG91dHB1dDxudW1iZXI+KCk7XHJcbn1cclxuIiwiQGZvciAobGFuZ3VhZ2Ugb2YgbGFuZ3VhZ2VMaXN0KCk7IHRyYWNrICRpbmRleCkge1xyXG4gPGJ1dHRvbiBtYXQtYnV0dG9uIChjbGljayk9XCJvbkxhbmd1YWdlQ2hhbmdlLmVtaXQobGFuZ3VhZ2UuVmFsdWUpXCI+XHJcbiAge3tsYW5ndWFnZS5DYXB0aW9ufX1cclxuIDwvYnV0dG9uPlxyXG59XHJcbiJdfQ==
@@ -1,57 +0,0 @@
1
- import { ChangeDetectionStrategy, Component, DestroyRef, forwardRef, inject, input } from '@angular/core';
2
- import { FormControl, NG_VALUE_ACCESSOR } from '@angular/forms';
3
- import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
4
- import { ViewModel } from '../../../tp.survey.enum';
5
- import * as i0 from "@angular/core";
6
- export class AnswerMasterComponent {
7
- constructor() {
8
- this.language = input.required();
9
- this.viewModel = input.required();
10
- this.findVariable = input.required();
11
- this.repositoryPath = input('');
12
- this.viewModelE = ViewModel;
13
- this.onModelChange = (data) => { };
14
- this.onModelTouched = () => { };
15
- this.destroyRef = inject(DestroyRef);
16
- this.control = new FormControl(null);
17
- this.control.valueChanges.pipe(takeUntilDestroyed(this.destroyRef)).subscribe(res => {
18
- this.onModelChange(res);
19
- });
20
- }
21
- registerOnChange(fn) {
22
- this.onModelChange = fn;
23
- }
24
- registerOnTouched(fn) {
25
- this.onModelTouched();
26
- }
27
- setDisabledState(isDisabled) {
28
- }
29
- writeValue(value) {
30
- this.control.patchValue(value, { emitEvent: false });
31
- }
32
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: AnswerMasterComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
33
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.0.1", type: AnswerMasterComponent, isStandalone: true, selector: "app-answer-master", inputs: { language: { classPropertyName: "language", publicName: "language", isSignal: true, isRequired: true, transformFunction: null }, viewModel: { classPropertyName: "viewModel", publicName: "viewModel", isSignal: true, isRequired: true, transformFunction: null }, findVariable: { classPropertyName: "findVariable", publicName: "findVariable", isSignal: true, isRequired: true, transformFunction: null }, repositoryPath: { classPropertyName: "repositoryPath", publicName: "repositoryPath", isSignal: true, isRequired: false, transformFunction: null } }, providers: [
34
- {
35
- provide: NG_VALUE_ACCESSOR,
36
- useExisting: forwardRef(() => AnswerMasterComponent),
37
- multi: true
38
- },
39
- ], ngImport: i0, template: '', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
40
- }
41
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: AnswerMasterComponent, decorators: [{
42
- type: Component,
43
- args: [{
44
- selector: 'app-answer-master',
45
- template: '',
46
- changeDetection: ChangeDetectionStrategy.OnPush,
47
- standalone: true,
48
- providers: [
49
- {
50
- provide: NG_VALUE_ACCESSOR,
51
- useExisting: forwardRef(() => AnswerMasterComponent),
52
- multi: true
53
- },
54
- ],
55
- }]
56
- }], ctorParameters: () => [] });
57
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5zd2VyLm1hc3Rlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90cC5zdXJ2ZXkvc3JjL2xpYi9jb21wb25lbnQvYW5zd2VyL2Fuc3dlci5tYXN0ZXIvYW5zd2VyLm1hc3Rlci5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDeEcsT0FBTyxFQUF1QixXQUFXLEVBQUUsaUJBQWlCLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUNwRixPQUFPLEVBQUMsa0JBQWtCLEVBQUMsTUFBTSw0QkFBNEIsQ0FBQztBQUU5RCxPQUFPLEVBQUMsU0FBUyxFQUFDLE1BQU0seUJBQXlCLENBQUM7O0FBZ0JsRCxNQUFNLE9BQWdCLHFCQUFxQjtJQVV6QztRQVRBLGFBQVEsR0FBRyxLQUFLLENBQUMsUUFBUSxFQUFVLENBQUM7UUFDcEMsY0FBUyxHQUFHLEtBQUssQ0FBQyxRQUFRLEVBQWEsQ0FBQztRQUN4QyxpQkFBWSxHQUFHLEtBQUssQ0FBQyxRQUFRLEVBQXFCLENBQUM7UUFDbkQsbUJBQWMsR0FBRyxLQUFLLENBQVMsRUFBRSxDQUFDLENBQUM7UUFDbkMsZUFBVSxHQUFHLFNBQVMsQ0FBQztRQUViLGtCQUFhLEdBQUcsQ0FBQyxJQUFPLEVBQUUsRUFBRSxHQUFFLENBQUMsQ0FBQztRQUNoQyxtQkFBYyxHQUFHLEdBQUcsRUFBRSxHQUFFLENBQUMsQ0FBQztRQUNqQixlQUFVLEdBQUcsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBRWpELElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDckMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUM3QixrQkFBa0IsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQ25DLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxFQUFFO1lBQ2hCLElBQUksQ0FBQyxhQUFhLENBQUMsR0FBSSxDQUFDLENBQUM7UUFDM0IsQ0FBQyxDQUFDLENBQUE7SUFDSixDQUFDO0lBRUQsZ0JBQWdCLENBQUMsRUFBcUI7UUFDcEMsSUFBSSxDQUFDLGFBQWEsR0FBRyxFQUFFLENBQUM7SUFDMUIsQ0FBQztJQUVELGlCQUFpQixDQUFDLEVBQU87UUFDdkIsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO0lBQ3hCLENBQUM7SUFFRCxnQkFBZ0IsQ0FBQyxVQUFtQjtJQUNwQyxDQUFDO0lBRUQsVUFBVSxDQUFDLEtBQVE7UUFDakIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsS0FBSyxFQUFFLEVBQUMsU0FBUyxFQUFFLEtBQUssRUFBQyxDQUFDLENBQUM7SUFDckQsQ0FBQzs4R0FoQ21CLHFCQUFxQjtrR0FBckIscUJBQXFCLDhtQkFUOUI7WUFDVDtnQkFDRSxPQUFPLEVBQUUsaUJBQWlCO2dCQUMxQixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLHFCQUFxQixDQUFDO2dCQUNwRCxLQUFLLEVBQUUsSUFBSTthQUNaO1NBQ0YsMEJBVFMsRUFBRTs7MkZBWVEscUJBQXFCO2tCQWQxQyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxtQkFBbUI7b0JBQzdCLFFBQVEsRUFBRSxFQUFFO29CQUNaLGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO29CQUMvQyxVQUFVLEVBQUUsSUFBSTtvQkFDaEIsU0FBUyxFQUFFO3dCQUNUOzRCQUNFLE9BQU8sRUFBRSxpQkFBaUI7NEJBQzFCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLHNCQUFzQixDQUFDOzRCQUNwRCxLQUFLLEVBQUUsSUFBSTt5QkFDWjtxQkFDRjtpQkFFRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgRGVzdHJveVJlZiwgZm9yd2FyZFJlZiwgaW5qZWN0LCBpbnB1dH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7Q29udHJvbFZhbHVlQWNjZXNzb3IsIEZvcm1Db250cm9sLCBOR19WQUxVRV9BQ0NFU1NPUn0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQge3Rha2VVbnRpbERlc3Ryb3llZH0gZnJvbSAnQGFuZ3VsYXIvY29yZS9yeGpzLWludGVyb3AnO1xyXG5pbXBvcnQge0Fuc3dlclQsIFRGaW5kVmFyaWFibGVWb2lkfSBmcm9tICcuLi8uLi8uLi90cC5zdXJ2ZXkudHlwZSc7XHJcbmltcG9ydCB7Vmlld01vZGVsfSBmcm9tICcuLi8uLi8uLi90cC5zdXJ2ZXkuZW51bSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2FwcC1hbnN3ZXItbWFzdGVyJyxcclxuICB0ZW1wbGF0ZTogJycsXHJcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXHJcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcclxuICBwcm92aWRlcnM6IFtcclxuICAgIHtcclxuICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXHJcbiAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IEFuc3dlck1hc3RlckNvbXBvbmVudCksXHJcbiAgICAgIG11bHRpOiB0cnVlXHJcbiAgICB9LFxyXG4gIF0sXHJcblxyXG59KVxyXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgQW5zd2VyTWFzdGVyQ29tcG9uZW50PFQgZXh0ZW5kcyBBbnN3ZXJUPiBpbXBsZW1lbnRzIENvbnRyb2xWYWx1ZUFjY2Vzc29yIHtcclxuICBsYW5ndWFnZSA9IGlucHV0LnJlcXVpcmVkPG51bWJlcj4oKTtcclxuICB2aWV3TW9kZWwgPSBpbnB1dC5yZXF1aXJlZDxWaWV3TW9kZWw+KCk7XHJcbiAgZmluZFZhcmlhYmxlID0gaW5wdXQucmVxdWlyZWQ8VEZpbmRWYXJpYWJsZVZvaWQ+KCk7XHJcbiAgcmVwb3NpdG9yeVBhdGggPSBpbnB1dDxzdHJpbmc+KCcnKTtcclxuICB2aWV3TW9kZWxFID0gVmlld01vZGVsO1xyXG4gIGNvbnRyb2w6IEZvcm1Db250cm9sPFQgfCBudWxsPjtcclxuICBwcm90ZWN0ZWQgb25Nb2RlbENoYW5nZSA9IChkYXRhOiBUKSA9PiB7fTtcclxuICBwcm90ZWN0ZWQgb25Nb2RlbFRvdWNoZWQgPSAoKSA9PiB7fTtcclxuICBwcm90ZWN0ZWQgcmVhZG9ubHkgZGVzdHJveVJlZiA9IGluamVjdChEZXN0cm95UmVmKTtcclxuICBjb25zdHJ1Y3RvcigpIHtcclxuICAgIHRoaXMuY29udHJvbCA9IG5ldyBGb3JtQ29udHJvbChudWxsKTtcclxuICAgIHRoaXMuY29udHJvbC52YWx1ZUNoYW5nZXMucGlwZShcclxuICAgICB0YWtlVW50aWxEZXN0cm95ZWQodGhpcy5kZXN0cm95UmVmKVxyXG4gICAgKS5zdWJzY3JpYmUocmVzID0+IHtcclxuICAgICAgdGhpcy5vbk1vZGVsQ2hhbmdlKHJlcyEpO1xyXG4gICAgfSlcclxuICB9XHJcbiAgXHJcbiAgcmVnaXN0ZXJPbkNoYW5nZShmbjogKGRhdGE6IFQpID0+IHZvaWQpOiB2b2lkIHtcclxuICAgIHRoaXMub25Nb2RlbENoYW5nZSA9IGZuO1xyXG4gIH1cclxuXHJcbiAgcmVnaXN0ZXJPblRvdWNoZWQoZm46IGFueSk6IHZvaWQge1xyXG4gICAgdGhpcy5vbk1vZGVsVG91Y2hlZCgpO1xyXG4gIH1cclxuXHJcbiAgc2V0RGlzYWJsZWRTdGF0ZShpc0Rpc2FibGVkOiBib29sZWFuKTogdm9pZCB7XHJcbiAgfVxyXG4gIFxyXG4gIHdyaXRlVmFsdWUodmFsdWU6IFQpOiB2b2lkIHtcclxuICAgIHRoaXMuY29udHJvbC5wYXRjaFZhbHVlKHZhbHVlLCB7ZW1pdEV2ZW50OiBmYWxzZX0pO1xyXG4gIH1cclxufVxyXG4iXX0=
@@ -1,106 +0,0 @@
1
- import { Component, forwardRef, input, output } from '@angular/core';
2
- import { FormArray, FormControl, FormGroup, NG_VALUE_ACCESSOR, ReactiveFormsModule } from '@angular/forms';
3
- import { MatCheckbox } from '@angular/material/checkbox';
4
- import { map } from 'rxjs/operators';
5
- import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
6
- import { MatIcon } from '@angular/material/icon';
7
- import { MatRadioGroup } from '@angular/material/radio';
8
- import { filter, tap } from 'rxjs';
9
- import { MultiLangObjectToHtmlPipe } from '../../../pipe/multi.lang.object.to.html/multi.lang.object.to.html.pipe';
10
- import { AnswerMasterComponent } from '../answer.master/answer.master.component';
11
- import { AlternativesContainerDirective } from '../../../directive/alternatives.container/alternatives.container.directive';
12
- import * as i0 from "@angular/core";
13
- import * as i1 from "@angular/forms";
14
- export class AnswerMSComponent extends AnswerMasterComponent {
15
- constructor() {
16
- super();
17
- this.question = input.required();
18
- this.alternativeList = input.required();
19
- this.alternativeMaxAnswersCount = input.required();
20
- this.onAlternativeClick = output();
21
- this.answerMSForm = new FormGroup({
22
- alternativeList: new FormArray([])
23
- });
24
- }
25
- ngOnInit() {
26
- const alternativeList = this.alternativeList();
27
- const answerAsArray = Array.isArray(this.control.value) ? this.control.value : [];
28
- const maxCount = this.alternativeMaxAnswersCount();
29
- this.answerMSForm.controls.alternativeList.clear({ emitEvent: false });
30
- alternativeList.forEach(alt => {
31
- const control = new FormControl(answerAsArray.includes(alt.Value), { nonNullable: true });
32
- //У альтернативы есть понятие "Группа". Группа это число. Если выбирают альтернативу с определённой группой, то альтернативы с другой группой должны быть отжаты.
33
- control.valueChanges.pipe(filter(value => value), takeUntilDestroyed(this.destroyRef)).subscribe({
34
- next: () => this.#uncheckControlsWithOtherGroup(alt.GroupNo)
35
- });
36
- this.answerMSForm.controls.alternativeList.push(control, { emitEvent: false });
37
- });
38
- this.answerMSForm.controls.alternativeList.valueChanges.pipe(map((_) => {
39
- const checkedArray = this.answerMSForm.controls.alternativeList.controls.map(c => c.value) ?? [];
40
- return this.alternativeList()
41
- .map(alt => alt.Value)
42
- .filter((_, index) => checkedArray[index]);
43
- }), tap(answerArray => this.#disableExtraControls(answerArray.length, maxCount)), takeUntilDestroyed(this.destroyRef)).subscribe({
44
- next: res => this.control.patchValue(res, { emitEvent: true })
45
- });
46
- }
47
- //отжимает контролы у которых отличается номер группы
48
- #uncheckControlsWithOtherGroup(groupNumber) {
49
- //сначала отбираем контролы у которых другая группа.
50
- const otherGroupAlternativesList = this.alternativeList()
51
- .map((alt, altIndex) => ({ alternative: alt, index: altIndex })) //нужен индекс, по нему проще выбирать контролы в answerMSForm.controls.alternativeList
52
- .filter(data => data.alternative.GroupNo !== groupNumber); //контролы у которых другая группа
53
- //"отжимаем галочку"
54
- otherGroupAlternativesList.forEach(data => {
55
- const altControl = this.answerMSForm.controls.alternativeList.at(data.index);
56
- altControl.patchValue(false, { emitEvent: false });
57
- });
58
- }
59
- //дизейблит контроли если выбрали максимальное количество или енейблит если выбрали не максимальное количество
60
- #disableExtraControls(currentCount, maxCount) {
61
- //если в настройках анкеты указали что максимальное возможное количество выбранных альтернатив = 0, но ничего контролировать не надо.
62
- if (maxCount === 0) {
63
- return;
64
- }
65
- this.alternativeList().forEach((_, altIndex) => {
66
- const isDisable = currentCount >= maxCount;
67
- const control = this.answerMSForm.controls.alternativeList.at(altIndex);
68
- if (isDisable) {
69
- //надо дизейблить те которые не выбраны
70
- if (!control.value) {
71
- control.disable({ emitEvent: false });
72
- }
73
- }
74
- else {
75
- //лимита нет, можно выбирать все
76
- control.enable({ emitEvent: false });
77
- }
78
- });
79
- }
80
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: AnswerMSComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
81
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.0.1", type: AnswerMSComponent, isStandalone: true, selector: "tp-survey-answer-ms", inputs: { question: { classPropertyName: "question", publicName: "question", isSignal: true, isRequired: true, transformFunction: null }, alternativeList: { classPropertyName: "alternativeList", publicName: "alternativeList", isSignal: true, isRequired: true, transformFunction: null }, alternativeMaxAnswersCount: { classPropertyName: "alternativeMaxAnswersCount", publicName: "alternativeMaxAnswersCount", isSignal: true, isRequired: true, transformFunction: null } }, outputs: { onAlternativeClick: "onAlternativeClick" }, providers: [
82
- {
83
- provide: NG_VALUE_ACCESSOR,
84
- useExisting: forwardRef(() => AnswerMSComponent),
85
- multi: true
86
- },
87
- ], usesInheritance: true, ngImport: i0, template: "<ng-container [formGroup]=\"answerMSForm\">\r\n <div\r\n class=\"container-ms-ss-alternatives\"\r\n [tpSurveyAlternativesContainer] = \"question()\"\r\n [containerViewModel]=\"viewModel()\"\r\n formArrayName=\"alternativeList\">\r\n @for (alt of answerMSForm.controls.alternativeList.controls; track alt; let indx = $index) {\r\n <mat-checkbox\r\n #tablet_alt\r\n [formControl]=\"alt\"\r\n [style.font-size.%]=\"viewModel() === viewModelE.vmTablet ? question().AlternativeTabletFontSize : undefined\"\r\n (change)=\"onAlternativeClick.emit(alternativeList()[indx].Value)\"\r\n class=\"alternative-ss-ms tp-survey-checkbox\">\r\n @if (alternativeList()[indx].IsMute) {\r\n <mat-icon class=\"icon-is-mute\" svgIcon=\"iconIsMute\"></mat-icon>\r\n }\r\n <div class=\"container-caption\">\r\n @if (alternativeList()[indx].BackGround.Image) {\r\n <img alt=\"answer logo\" [style.height.px]=\"alternativeList()[indx].BackGround.ImageHeight ?? question().AlternativeBackgroundImageHeight ?? 30\" [src]=\"repositoryPath()+'/' + alternativeList()[indx].BackGround.Image\" importance=\"low\" loading=\"lazy\">\r\n }\r\n <span class=\"alternative-ss-ms-caption survey-object-caption\" [innerHTML]= \"alternativeList()[indx].MultiLangCaptions | multiLangObjectToHtml:language()\"></span>\r\n </div>\r\n </mat-checkbox>\r\n }\r\n </div>\r\n</ng-container>\r\n", styles: [".container-main-tablet{position:absolute;width:100%;height:100%;top:0;box-sizing:border-box;overflow:hidden}.radio-button{margin:4px}@media (max-width: 480px){.container-controls{padding:1em}}\n"], dependencies: [{ kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormArrayName, selector: "[formArrayName]", inputs: ["formArrayName"] }, { kind: "component", type: MatCheckbox, selector: "mat-checkbox", inputs: ["aria-label", "aria-labelledby", "aria-describedby", "id", "required", "labelPosition", "name", "value", "disableRipple", "tabIndex", "color", "checked", "disabled", "indeterminate"], outputs: ["change", "indeterminateChange"], exportAs: ["matCheckbox"] }, { kind: "pipe", type: MultiLangObjectToHtmlPipe, name: "multiLangObjectToHtml" }, { kind: "component", type: MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: AlternativesContainerDirective, selector: "[tpSurveyAlternativesContainer]", inputs: ["tpSurveyAlternativesContainer", "containerViewModel"] }] }); }
88
- }
89
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: AnswerMSComponent, decorators: [{
90
- type: Component,
91
- args: [{ selector: 'tp-survey-answer-ms', standalone: true, imports: [
92
- ReactiveFormsModule,
93
- MatCheckbox,
94
- MultiLangObjectToHtmlPipe,
95
- MatIcon,
96
- MatRadioGroup,
97
- AlternativesContainerDirective,
98
- ], providers: [
99
- {
100
- provide: NG_VALUE_ACCESSOR,
101
- useExisting: forwardRef(() => AnswerMSComponent),
102
- multi: true
103
- },
104
- ], template: "<ng-container [formGroup]=\"answerMSForm\">\r\n <div\r\n class=\"container-ms-ss-alternatives\"\r\n [tpSurveyAlternativesContainer] = \"question()\"\r\n [containerViewModel]=\"viewModel()\"\r\n formArrayName=\"alternativeList\">\r\n @for (alt of answerMSForm.controls.alternativeList.controls; track alt; let indx = $index) {\r\n <mat-checkbox\r\n #tablet_alt\r\n [formControl]=\"alt\"\r\n [style.font-size.%]=\"viewModel() === viewModelE.vmTablet ? question().AlternativeTabletFontSize : undefined\"\r\n (change)=\"onAlternativeClick.emit(alternativeList()[indx].Value)\"\r\n class=\"alternative-ss-ms tp-survey-checkbox\">\r\n @if (alternativeList()[indx].IsMute) {\r\n <mat-icon class=\"icon-is-mute\" svgIcon=\"iconIsMute\"></mat-icon>\r\n }\r\n <div class=\"container-caption\">\r\n @if (alternativeList()[indx].BackGround.Image) {\r\n <img alt=\"answer logo\" [style.height.px]=\"alternativeList()[indx].BackGround.ImageHeight ?? question().AlternativeBackgroundImageHeight ?? 30\" [src]=\"repositoryPath()+'/' + alternativeList()[indx].BackGround.Image\" importance=\"low\" loading=\"lazy\">\r\n }\r\n <span class=\"alternative-ss-ms-caption survey-object-caption\" [innerHTML]= \"alternativeList()[indx].MultiLangCaptions | multiLangObjectToHtml:language()\"></span>\r\n </div>\r\n </mat-checkbox>\r\n }\r\n </div>\r\n</ng-container>\r\n", styles: [".container-main-tablet{position:absolute;width:100%;height:100%;top:0;box-sizing:border-box;overflow:hidden}.radio-button{margin:4px}@media (max-width: 480px){.container-controls{padding:1em}}\n"] }]
105
- }], ctorParameters: () => [] });
106
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5zd2VyLm1zLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RwLnN1cnZleS9zcmMvbGliL2NvbXBvbmVudC9hbnN3ZXIvYW5zd2VyLm1zL2Fuc3dlci5tcy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90cC5zdXJ2ZXkvc3JjL2xpYi9jb21wb25lbnQvYW5zd2VyL2Fuc3dlci5tcy9hbnN3ZXIubXMuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFNBQVMsRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUMzRSxPQUFPLEVBQUMsU0FBUyxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUUsaUJBQWlCLEVBQUUsbUJBQW1CLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUN6RyxPQUFPLEVBQUMsV0FBVyxFQUFDLE1BQU0sNEJBQTRCLENBQUM7QUFDdkQsT0FBTyxFQUFDLEdBQUcsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQ25DLE9BQU8sRUFBQyxrQkFBa0IsRUFBQyxNQUFNLDRCQUE0QixDQUFDO0FBQzlELE9BQU8sRUFBQyxPQUFPLEVBQUMsTUFBTSx3QkFBd0IsQ0FBQztBQUMvQyxPQUFPLEVBQUMsYUFBYSxFQUFDLE1BQU0seUJBQXlCLENBQUM7QUFDdEQsT0FBTyxFQUFDLE1BQU0sRUFBRSxHQUFHLEVBQUMsTUFBTSxNQUFNLENBQUM7QUFDakMsT0FBTyxFQUFDLHlCQUF5QixFQUFDLE1BQU0sd0VBQXdFLENBQUM7QUFDakgsT0FBTyxFQUFDLHFCQUFxQixFQUFDLE1BQU0sMENBQTBDLENBQUM7QUFFL0UsT0FBTyxFQUFDLDhCQUE4QixFQUFDLE1BQU0sNEVBQTRFLENBQUM7OztBQTJCMUgsTUFBTSxPQUFPLGlCQUFrQixTQUFRLHFCQUFvQztJQU16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QVEsQ0FBQyxDQUFDO1lBQ3hFLElBQUksU0FBUyxFQUFFLENBQUM7Z0JBQ2QsdUNBQXVDO2dCQUN2QyxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRSxDQUFDO29CQUNuQixPQUFPLENBQUMsT0FBTyxDQUFDLEVBQUMsU0FBUyxFQUFFLEtBQUssRUFBQyxDQUFDLENBQUE7Z0JBQ3JDLENBQUM7WUFDSCxDQUFDO2lCQUFNLENBQUM7Z0JBQ04sZ0NBQWdDO2dCQUNoQyxPQUFPLENBQUMsTUFBTSxDQUFDLEVBQUMsU0FBUyxFQUFFLEtBQUssRUFBQyxDQUFDLENBQUE7WUFDcEMsQ0FBQztRQUNILENBQUMsQ0FBQyxDQUFBO0lBQ0osQ0FBQzs4R0FqRlUsaUJBQWlCO2tHQUFqQixpQkFBaUIsZ2xCQVJqQjtZQUNUO2dCQUNFLE9BQU8sRUFBRSxpQkFBaUI7Z0JBQzFCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsaUJBQWlCLENBQUM7Z0JBQ2hELEtBQUssRUFBRSxJQUFJO2FBQ1o7U0FDRixpRENwQ0gsNjNDQTBCQSwyUERISSxtQkFBbUIsOHNCQUNuQixXQUFXLDRUQUNYLHlCQUF5Qiw4REFDekIsT0FBTywySUFFUCw4QkFBOEI7OzJGQVVyQixpQkFBaUI7a0JBckI3QixTQUFTOytCQUNFLHFCQUFxQixjQUduQixJQUFJLFdBQ1A7d0JBQ1AsbUJBQW1CO3dCQUNuQixXQUFXO3dCQUNYLHlCQUF5Qjt3QkFDekIsT0FBTzt3QkFDUCxhQUFhO3dCQUNiLDhCQUE4QjtxQkFDL0IsYUFDVTt3QkFDVDs0QkFDRSxPQUFPLEVBQUUsaUJBQWlCOzRCQUMxQixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxrQkFBa0IsQ0FBQzs0QkFDaEQsS0FBSyxFQUFFLElBQUk7eUJBQ1o7cUJBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NvbXBvbmVudCwgZm9yd2FyZFJlZiwgaW5wdXQsIE9uSW5pdCwgb3V0cHV0fSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHtGb3JtQXJyYXksIEZvcm1Db250cm9sLCBGb3JtR3JvdXAsIE5HX1ZBTFVFX0FDQ0VTU09SLCBSZWFjdGl2ZUZvcm1zTW9kdWxlfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7TWF0Q2hlY2tib3h9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2NoZWNrYm94JztcclxuaW1wb3J0IHttYXB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0IHt0YWtlVW50aWxEZXN0cm95ZWR9IGZyb20gJ0Bhbmd1bGFyL2NvcmUvcnhqcy1pbnRlcm9wJztcclxuaW1wb3J0IHtNYXRJY29ufSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pY29uJztcclxuaW1wb3J0IHtNYXRSYWRpb0dyb3VwfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9yYWRpbyc7XHJcbmltcG9ydCB7ZmlsdGVyLCB0YXB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQge011bHRpTGFuZ09iamVjdFRvSHRtbFBpcGV9IGZyb20gJy4uLy4uLy4uL3BpcGUvbXVsdGkubGFuZy5vYmplY3QudG8uaHRtbC9tdWx0aS5sYW5nLm9iamVjdC50by5odG1sLnBpcGUnO1xyXG5pbXBvcnQge0Fuc3dlck1hc3RlckNvbXBvbmVudH0gZnJvbSAnLi4vYW5zd2VyLm1hc3Rlci9hbnN3ZXIubWFzdGVyLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7SWRiQWx0ZXJuYXRpdmUsIElkYlF1ZXN0aW9ufSBmcm9tICcuLi8uLi8uLi90cC5zdXJ2ZXkuaW50ZXJmYWNlJztcclxuaW1wb3J0IHtBbHRlcm5hdGl2ZXNDb250YWluZXJEaXJlY3RpdmV9IGZyb20gJy4uLy4uLy4uL2RpcmVjdGl2ZS9hbHRlcm5hdGl2ZXMuY29udGFpbmVyL2FsdGVybmF0aXZlcy5jb250YWluZXIuZGlyZWN0aXZlJztcclxuXHJcbmludGVyZmFjZSBJQW5zd2VyTVNGb3JtIHtcclxuICBhbHRlcm5hdGl2ZUxpc3Q6IEZvcm1BcnJheTxGb3JtQ29udHJvbDxib29sZWFuPj47XHJcbn1cclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAndHAtc3VydmV5LWFuc3dlci1tcycsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2Fuc3dlci5tcy5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vYW5zd2VyLm1zLmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcclxuICBpbXBvcnRzOiBbXHJcbiAgICBSZWFjdGl2ZUZvcm1zTW9kdWxlLFxyXG4gICAgTWF0Q2hlY2tib3gsXHJcbiAgICBNdWx0aUxhbmdPYmplY3RUb0h0bWxQaXBlLFxyXG4gICAgTWF0SWNvbixcclxuICAgIE1hdFJhZGlvR3JvdXAsXHJcbiAgICBBbHRlcm5hdGl2ZXNDb250YWluZXJEaXJlY3RpdmUsXHJcbiAgXSxcclxuICBwcm92aWRlcnM6IFtcclxuICAgIHtcclxuICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXHJcbiAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IEFuc3dlck1TQ29tcG9uZW50KSxcclxuICAgICAgbXVsdGk6IHRydWVcclxuICAgIH0sXHJcbiAgXSxcclxufSlcclxuZXhwb3J0IGNsYXNzIEFuc3dlck1TQ29tcG9uZW50IGV4dGVuZHMgQW5zd2VyTWFzdGVyQ29tcG9uZW50PEFycmF5PG51bWJlcj4+IGltcGxlbWVudHMgT25Jbml0e1xyXG4gIHF1ZXN0aW9uID0gaW5wdXQucmVxdWlyZWQ8SWRiUXVlc3Rpb24+KCk7XHJcbiAgYWx0ZXJuYXRpdmVMaXN0ID0gaW5wdXQucmVxdWlyZWQ8QXJyYXk8SWRiQWx0ZXJuYXRpdmU+PigpO1xyXG4gIGFsdGVybmF0aXZlTWF4QW5zd2Vyc0NvdW50ID0gaW5wdXQucmVxdWlyZWQ8bnVtYmVyPigpO1xyXG4gIG9uQWx0ZXJuYXRpdmVDbGljayA9IG91dHB1dDxudW1iZXI+KCk7XHJcbiAgcmVhZG9ubHkgYW5zd2VyTVNGb3JtOiBGb3JtR3JvdXA8SUFuc3dlck1TRm9ybT47XHJcbiAgY29uc3RydWN0b3IoKSB7XHJcbiAgICBzdXBlcigpO1xyXG4gICAgdGhpcy5hbnN3ZXJNU0Zvcm0gPSBuZXcgRm9ybUdyb3VwPElBbnN3ZXJNU0Zvcm0+KHtcclxuICAgICAgYWx0ZXJuYXRpdmVMaXN0OiBuZXcgRm9ybUFycmF5PEZvcm1Db250cm9sPGJvb2xlYW4+PihbXSlcclxuICAgIH0pXHJcbiAgfVxyXG5cclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICBjb25zdCBhbHRlcm5hdGl2ZUxpc3QgPSB0aGlzLmFsdGVybmF0aXZlTGlzdCgpO1xyXG4gICAgY29uc3QgYW5zd2VyQXNBcnJheTogQXJyYXk8bnVtYmVyPiA9IEFycmF5LmlzQXJyYXkodGhpcy5jb250cm9sLnZhbHVlKSA/IHRoaXMuY29udHJvbC52YWx1ZSA6IFtdO1xyXG4gICAgY29uc3QgbWF4Q291bnQgPSB0aGlzLmFsdGVybmF0aXZlTWF4QW5zd2Vyc0NvdW50KCk7XHJcblxyXG4gICAgdGhpcy5hbnN3ZXJNU0Zvcm0uY29udHJvbHMuYWx0ZXJuYXRpdmVMaXN0LmNsZWFyKHtlbWl0RXZlbnQ6IGZhbHNlfSk7XHJcbiAgICBhbHRlcm5hdGl2ZUxpc3QuZm9yRWFjaCggYWx0ID0+IHtcclxuICAgICAgY29uc3QgY29udHJvbD0gbmV3IEZvcm1Db250cm9sPGJvb2xlYW4+KCBhbnN3ZXJBc0FycmF5LmluY2x1ZGVzKGFsdC5WYWx1ZSksIHtub25OdWxsYWJsZTogdHJ1ZX0pO1xyXG5cclxuICAgICAgLy/QoyDQsNC70YzRgtC10YDQvdCw0YLQuNCy0Ysg0LXRgdGC0Ywg0L/QvtC90Y/RgtC40LUgXCLQk9GA0YPQv9C/0LBcIi4g0JPRgNGD0L/Qv9CwINGN0YLQviDRh9C40YHQu9C+LiDQldGB0LvQuCDQstGL0LHQuNGA0LDRjtGCINCw0LvRjNGC0LXRgNC90LDRgtC40LLRgyDRgSDQvtC/0YDQtdC00LXQu9GR0L3QvdC+0Lkg0LPRgNGD0L/Qv9C+0LksINGC0L4g0LDQu9GM0YLQtdGA0L3QsNGC0LjQstGLINGBINC00YDRg9Cz0L7QuSDQs9GA0YPQv9C/0L7QuSDQtNC+0LvQttC90Ysg0LHRi9GC0Ywg0L7RgtC20LDRgtGLLlxyXG4gICAgICBjb250cm9sLnZhbHVlQ2hhbmdlcy5waXBlKFxyXG4gICAgICAgZmlsdGVyKHZhbHVlID0+IHZhbHVlKSxcclxuICAgICAgIHRha2VVbnRpbERlc3Ryb3llZCh0aGlzLmRlc3Ryb3lSZWYpXHJcbiAgICAgICkuc3Vic2NyaWJlKCB7XHJcbiAgICAgICAgbmV4dDogKCkgPT4gdGhpcy4jdW5jaGVja0NvbnRyb2xzV2l0aE90aGVyR3JvdXAoYWx0Lkdyb3VwTm8pXHJcbiAgICAgIH0pO1xyXG5cclxuICAgICAgdGhpcy5hbnN3ZXJNU0Zvcm0uY29udHJvbHMuYWx0ZXJuYXRpdmVMaXN0LnB1c2goY29udHJvbCwge2VtaXRFdmVudDogZmFsc2V9KTtcclxuICAgIH0pO1xyXG5cclxuICAgIHRoaXMuYW5zd2VyTVNGb3JtLmNvbnRyb2xzLmFsdGVybmF0aXZlTGlzdC52YWx1ZUNoYW5nZXMucGlwZShcclxuICAgICBtYXAoKF8pID0+IHtcclxuICAgICAgY29uc3QgY2hlY2tlZEFycmF5ID0gdGhpcy5hbnN3ZXJNU0Zvcm0uY29udHJvbHMuYWx0ZXJuYXRpdmVMaXN0LmNvbnRyb2xzLm1hcChjID0+IGMudmFsdWUpID8/IFtdO1xyXG4gICAgICByZXR1cm4gdGhpcy5hbHRlcm5hdGl2ZUxpc3QoKVxyXG4gICAgICAgLm1hcChhbHQgPT4gYWx0LlZhbHVlKVxyXG4gICAgICAgLmZpbHRlcigoXywgaW5kZXgpID0+IGNoZWNrZWRBcnJheVtpbmRleF0gKVxyXG4gICAgIH0pLFxyXG4gICAgIHRhcChhbnN3ZXJBcnJheSA9PiB0aGlzLiNkaXNhYmxlRXh0cmFDb250cm9scyhhbnN3ZXJBcnJheS5sZW5ndGgsIG1heENvdW50KSksXHJcbiAgICAgdGFrZVVudGlsRGVzdHJveWVkKHRoaXMuZGVzdHJveVJlZilcclxuICAgICkuc3Vic2NyaWJlKHtcclxuICAgICAgbmV4dDogcmVzID0+IHRoaXMuY29udHJvbC5wYXRjaFZhbHVlKHJlcywge2VtaXRFdmVudDogdHJ1ZX0pXHJcbiAgICB9KVxyXG4gIH1cclxuXHJcbiAgLy/QvtGC0LbQuNC80LDQtdGCINC60L7QvdGC0YDQvtC70Ysg0YMg0LrQvtGC0L7RgNGL0YUg0L7RgtC70LjRh9Cw0LXRgtGB0Y8g0L3QvtC80LXRgCDQs9GA0YPQv9C/0YtcclxuICAjdW5jaGVja0NvbnRyb2xzV2l0aE90aGVyR3JvdXAoZ3JvdXBOdW1iZXI6IG51bWJlcik6IHZvaWQge1xyXG4gICAgLy/RgdC90LDRh9Cw0LvQsCDQvtGC0LHQuNGA0LDQtdC8INC60L7QvdGC0YDQvtC70Ysg0YMg0LrQvtGC0L7RgNGL0YUg0LTRgNGD0LPQsNGPINCz0YDRg9C/0L/QsC5cclxuICAgIGNvbnN0IG90aGVyR3JvdXBBbHRlcm5hdGl2ZXNMaXN0ID0gdGhpcy5hbHRlcm5hdGl2ZUxpc3QoKVxyXG4gICAgIC5tYXAoKGFsdCwgYWx0SW5kZXgpID0+ICh7YWx0ZXJuYXRpdmU6IGFsdCwgaW5kZXg6IGFsdEluZGV4fSkgKSAgLy/QvdGD0LbQtdC9INC40L3QtNC10LrRgSwg0L/QviDQvdC10LzRgyDQv9GA0L7RidC1INCy0YvQsdC40YDQsNGC0Ywg0LrQvtC90YLRgNC+0LvRiyDQsiBhbnN3ZXJNU0Zvcm0uY29udHJvbHMuYWx0ZXJuYXRpdmVMaXN0XHJcbiAgICAgLmZpbHRlcihkYXRhID0+IGRhdGEuYWx0ZXJuYXRpdmUuR3JvdXBObyAhPT0gZ3JvdXBOdW1iZXIpOyAvL9C60L7QvdGC0YDQvtC70Ysg0YMg0LrQvtGC0L7RgNGL0YUg0LTRgNGD0LPQsNGPINCz0YDRg9C/0L/QsFxyXG5cclxuICAgIC8vXCLQvtGC0LbQuNC80LDQtdC8INCz0LDQu9C+0YfQutGDXCJcclxuICAgIG90aGVyR3JvdXBBbHRlcm5hdGl2ZXNMaXN0LmZvckVhY2goZGF0YSA9PiB7XHJcbiAgICAgIGNvbnN0IGFsdENvbnRyb2wgPSB0aGlzLmFuc3dlck1TRm9ybS5jb250cm9scy5hbHRlcm5hdGl2ZUxpc3QuYXQoZGF0YS5pbmRleCk7XHJcbiAgICAgIGFsdENvbnRyb2wucGF0Y2hWYWx1ZShmYWxzZSwge2VtaXRFdmVudDogZmFsc2V9KVxyXG4gICAgfSlcclxuICB9XHJcbiAgXHJcbiAgLy/QtNC40LfQtdC50LHQu9C40YIg0LrQvtC90YLRgNC+0LvQuCDQtdGB0LvQuCDQstGL0LHRgNCw0LvQuCDQvNCw0LrRgdC40LzQsNC70YzQvdC+0LUg0LrQvtC70LjRh9C10YHRgtCy0L4g0LjQu9C4INC10L3QtdC50LHQu9C40YIg0LXRgdC70Lgg0LLRi9Cx0YDQsNC70Lgg0L3QtSDQvNCw0LrRgdC40LzQsNC70YzQvdC+0LUg0LrQvtC70LjRh9C10YHRgtCy0L5cclxuICAjZGlzYWJsZUV4dHJhQ29udHJvbHMoY3VycmVudENvdW50Om51bWJlciwgbWF4Q291bnQ6IG51bWJlcik6IHZvaWR7XHJcbiAgICAvL9C10YHQu9C4INCyINC90LDRgdGC0YDQvtC50LrQsNGFINCw0L3QutC10YLRiyDRg9C60LDQt9Cw0LvQuCDRh9GC0L4g0LzQsNC60YHQuNC80LDQu9GM0L3QvtC1INCy0L7Qt9C80L7QttC90L7QtSDQutC+0LvQuNGH0LXRgdGC0LLQviDQstGL0LHRgNCw0L3QvdGL0YUg0LDQu9GM0YLQtdGA0L3QsNGC0LjQsiA9IDAsINC90L4g0L3QuNGH0LXQs9C+INC60L7QvdGC0YDQvtC70LjRgNC+0LLQsNGC0Ywg0L3QtSDQvdCw0LTQvi5cclxuICAgIGlmIChtYXhDb3VudCA9PT0gMCkge1xyXG4gICAgICByZXR1cm5cclxuICAgIH1cclxuICAgIHRoaXMuYWx0ZXJuYXRpdmVMaXN0KCkuZm9yRWFjaCgoXywgYWx0SW5kZXgpID0+IHtcclxuICAgICAgY29uc3QgaXNEaXNhYmxlID0gY3VycmVudENvdW50ID49IG1heENvdW50O1xyXG4gICAgICBjb25zdCBjb250cm9sID0gdGhpcy5hbnN3ZXJNU0Zvcm0uY29udHJvbHMuYWx0ZXJuYXRpdmVMaXN0LmF0KGFsdEluZGV4KTtcclxuICAgICAgaWYgKGlzRGlzYWJsZSkge1xyXG4gICAgICAgIC8v0L3QsNC00L4g0LTQuNC30LXQudCx0LvQuNGC0Ywg0YLQtSDQutC+0YLQvtGA0YvQtSDQvdC1INCy0YvQsdGA0LDQvdGLXHJcbiAgICAgICAgaWYgKCFjb250cm9sLnZhbHVlKSB7XHJcbiAgICAgICAgICBjb250cm9sLmRpc2FibGUoe2VtaXRFdmVudDogZmFsc2V9KVxyXG4gICAgICAgIH1cclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICAvL9C70LjQvNC40YLQsCDQvdC10YIsINC80L7QttC90L4g0LLRi9Cx0LjRgNCw0YLRjCDQstGB0LVcclxuICAgICAgICBjb250cm9sLmVuYWJsZSh7ZW1pdEV2ZW50OiBmYWxzZX0pXHJcbiAgICAgIH1cclxuICAgIH0pXHJcbiAgfVxyXG59XHJcbiIsIjxuZy1jb250YWluZXIgW2Zvcm1Hcm91cF09XCJhbnN3ZXJNU0Zvcm1cIj5cclxuIDxkaXZcclxuICBjbGFzcz1cImNvbnRhaW5lci1tcy1zcy1hbHRlcm5hdGl2ZXNcIlxyXG4gIFt0cFN1cnZleUFsdGVybmF0aXZlc0NvbnRhaW5lcl0gPSBcInF1ZXN0aW9uKClcIlxyXG4gIFtjb250YWluZXJWaWV3TW9kZWxdPVwidmlld01vZGVsKClcIlxyXG4gIGZvcm1BcnJheU5hbWU9XCJhbHRlcm5hdGl2ZUxpc3RcIj5cclxuICBAZm9yIChhbHQgb2YgYW5zd2VyTVNGb3JtLmNvbnRyb2xzLmFsdGVybmF0aXZlTGlzdC5jb250cm9sczsgdHJhY2sgYWx0OyBsZXQgaW5keCA9ICRpbmRleCkge1xyXG4gICA8bWF0LWNoZWNrYm94XHJcbiAgICAjdGFibGV0X2FsdFxyXG4gICAgW2Zvcm1Db250cm9sXT1cImFsdFwiXHJcbiAgICBbc3R5bGUuZm9udC1zaXplLiVdPVwidmlld01vZGVsKCkgPT09IHZpZXdNb2RlbEUudm1UYWJsZXQgPyBxdWVzdGlvbigpLkFsdGVybmF0aXZlVGFibGV0Rm9udFNpemUgOiB1bmRlZmluZWRcIlxyXG4gICAgKGNoYW5nZSk9XCJvbkFsdGVybmF0aXZlQ2xpY2suZW1pdChhbHRlcm5hdGl2ZUxpc3QoKVtpbmR4XS5WYWx1ZSlcIlxyXG4gICAgY2xhc3M9XCJhbHRlcm5hdGl2ZS1zcy1tcyB0cC1zdXJ2ZXktY2hlY2tib3hcIj5cclxuICAgIEBpZiAoYWx0ZXJuYXRpdmVMaXN0KClbaW5keF0uSXNNdXRlKSB7XHJcbiAgICAgPG1hdC1pY29uIGNsYXNzPVwiaWNvbi1pcy1tdXRlXCIgc3ZnSWNvbj1cImljb25Jc011dGVcIj48L21hdC1pY29uPlxyXG4gICAgfVxyXG4gICAgPGRpdiBjbGFzcz1cImNvbnRhaW5lci1jYXB0aW9uXCI+XHJcbiAgICAgQGlmIChhbHRlcm5hdGl2ZUxpc3QoKVtpbmR4XS5CYWNrR3JvdW5kLkltYWdlKSB7XHJcbiAgICAgIDxpbWcgYWx0PVwiYW5zd2VyIGxvZ29cIiBbc3R5bGUuaGVpZ2h0LnB4XT1cImFsdGVybmF0aXZlTGlzdCgpW2luZHhdLkJhY2tHcm91bmQuSW1hZ2VIZWlnaHQgPz8gcXVlc3Rpb24oKS5BbHRlcm5hdGl2ZUJhY2tncm91bmRJbWFnZUhlaWdodCA/PyAzMFwiIFtzcmNdPVwicmVwb3NpdG9yeVBhdGgoKSsnLycgKyBhbHRlcm5hdGl2ZUxpc3QoKVtpbmR4XS5CYWNrR3JvdW5kLkltYWdlXCIgaW1wb3J0YW5jZT1cImxvd1wiIGxvYWRpbmc9XCJsYXp5XCI+XHJcbiAgICAgfVxyXG4gICAgIDxzcGFuIGNsYXNzPVwiYWx0ZXJuYXRpdmUtc3MtbXMtY2FwdGlvbiBzdXJ2ZXktb2JqZWN0LWNhcHRpb25cIiBbaW5uZXJIVE1MXT0gXCJhbHRlcm5hdGl2ZUxpc3QoKVtpbmR4XS5NdWx0aUxhbmdDYXB0aW9ucyB8IG11bHRpTGFuZ09iamVjdFRvSHRtbDpsYW5ndWFnZSgpXCI+PC9zcGFuPlxyXG4gICAgPC9kaXY+XHJcbiAgIDwvbWF0LWNoZWNrYm94PlxyXG4gIH1cclxuIDwvZGl2PlxyXG48L25nLWNvbnRhaW5lcj5cclxuIl19
@@ -1,39 +0,0 @@
1
- import { Component, forwardRef, input } from '@angular/core';
2
- import { MatFormField } from '@angular/material/form-field';
3
- import { MatInput } from '@angular/material/input';
4
- import { NG_VALUE_ACCESSOR, ReactiveFormsModule } from '@angular/forms';
5
- import { FocusAndSelectDirective } from '../../../directive/focus.and.select/focus.and.select.directive';
6
- import { AnswerMasterComponent } from '../answer.master/answer.master.component';
7
- import * as i0 from "@angular/core";
8
- import * as i1 from "@angular/forms";
9
- export class AnswerODComponent extends AnswerMasterComponent {
10
- constructor() {
11
- super(...arguments);
12
- this.minValue = input(1);
13
- this.maxValue = input(null);
14
- }
15
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: AnswerODComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
16
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.0.1", type: AnswerODComponent, isStandalone: true, selector: "tp-survey-answer-od", inputs: { minValue: { classPropertyName: "minValue", publicName: "minValue", isSignal: true, isRequired: false, transformFunction: null }, maxValue: { classPropertyName: "maxValue", publicName: "maxValue", isSignal: true, isRequired: false, transformFunction: null } }, providers: [
17
- {
18
- provide: NG_VALUE_ACCESSOR,
19
- useExisting: forwardRef(() => AnswerODComponent),
20
- multi: true
21
- },
22
- ], usesInheritance: true, ngImport: i0, template: "<div class=\"container-main\">\r\n <mat-form-field appearance=\"outline\" class=\"input-od-number\">\r\n <input [formControl]=\"control\" [min]=\"minValue()\" [max]=\"maxValue()\" tpSurveyFocusAndSelect matInput type=\"number\">\r\n </mat-form-field>\r\n</div>\r\n\r\n", styles: [".container-main{display:flex;width:100%;justify-content:center;align-items:center;flex-flow:column;gap:2em}.input-od-number{max-width:150px}\n"], dependencies: [{ kind: "component", type: MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", 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]" }, { kind: "directive", type: i1.NumberValueAccessor, selector: "input[type=number][formControlName],input[type=number][formControl],input[type=number][ngModel]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.MinValidator, selector: "input[type=number][min][formControlName],input[type=number][min][formControl],input[type=number][min][ngModel]", inputs: ["min"] }, { kind: "directive", type: i1.MaxValidator, selector: "input[type=number][max][formControlName],input[type=number][max][formControl],input[type=number][max][ngModel]", inputs: ["max"] }, { kind: "directive", type: i1.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: FocusAndSelectDirective, selector: "[tpSurveyFocusAndSelect]" }, { kind: "directive", type: MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }] }); }
23
- }
24
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: AnswerODComponent, decorators: [{
25
- type: Component,
26
- args: [{ selector: 'tp-survey-answer-od', standalone: true, imports: [
27
- MatFormField,
28
- ReactiveFormsModule,
29
- FocusAndSelectDirective,
30
- MatInput,
31
- ], providers: [
32
- {
33
- provide: NG_VALUE_ACCESSOR,
34
- useExisting: forwardRef(() => AnswerODComponent),
35
- multi: true
36
- },
37
- ], template: "<div class=\"container-main\">\r\n <mat-form-field appearance=\"outline\" class=\"input-od-number\">\r\n <input [formControl]=\"control\" [min]=\"minValue()\" [max]=\"maxValue()\" tpSurveyFocusAndSelect matInput type=\"number\">\r\n </mat-form-field>\r\n</div>\r\n\r\n", styles: [".container-main{display:flex;width:100%;justify-content:center;align-items:center;flex-flow:column;gap:2em}.input-od-number{max-width:150px}\n"] }]
38
- }] });
39
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5zd2VyLm9kLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RwLnN1cnZleS9zcmMvbGliL2NvbXBvbmVudC9hbnN3ZXIvYW5zd2VyLm9kL2Fuc3dlci5vZC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90cC5zdXJ2ZXkvc3JjL2xpYi9jb21wb25lbnQvYW5zd2VyL2Fuc3dlci5vZC9hbnN3ZXIub2QuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFNBQVMsRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQzNELE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSw4QkFBOEIsQ0FBQztBQUMxRCxPQUFPLEVBQUMsUUFBUSxFQUFDLE1BQU0seUJBQXlCLENBQUM7QUFDakQsT0FBTyxFQUFDLGlCQUFpQixFQUFFLG1CQUFtQixFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDdEUsT0FBTyxFQUFDLHVCQUF1QixFQUFDLE1BQU0sZ0VBQWdFLENBQUM7QUFDdkcsT0FBTyxFQUFDLHFCQUFxQixFQUFDLE1BQU0sMENBQTBDLENBQUM7OztBQXFCL0UsTUFBTSxPQUFPLGlCQUFrQixTQUFRLHFCQUE2QjtJQW5CcEU7O1FBb0JFLGFBQVEsR0FBRyxLQUFLLENBQVMsQ0FBQyxDQUFDLENBQUM7UUFDNUIsYUFBUSxHQUFHLEtBQUssQ0FBZ0IsSUFBSSxDQUFDLENBQUM7S0FDdkM7OEdBSFksaUJBQWlCO2tHQUFqQixpQkFBaUIsZ1ZBUmpCO1lBQ1Q7Z0JBQ0UsT0FBTyxFQUFFLGlCQUFpQjtnQkFDMUIsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxpQkFBaUIsQ0FBQztnQkFDaEQsS0FBSyxFQUFFLElBQUk7YUFDWjtTQUNGLGlEQ3hCSCxtUkFNQSx3TURPSSxZQUFZLDJMQUNaLG1CQUFtQixrbUNBQ25CLHVCQUF1QixxRUFDdkIsUUFBUTs7MkZBVUMsaUJBQWlCO2tCQW5CN0IsU0FBUzsrQkFDRSxxQkFBcUIsY0FHbkIsSUFBSSxXQUNQO3dCQUNQLFlBQVk7d0JBQ1osbUJBQW1CO3dCQUNuQix1QkFBdUI7d0JBQ3ZCLFFBQVE7cUJBQ1QsYUFDVTt3QkFDVDs0QkFDRSxPQUFPLEVBQUUsaUJBQWlCOzRCQUMxQixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxrQkFBa0IsQ0FBQzs0QkFDaEQsS0FBSyxFQUFFLElBQUk7eUJBQ1o7cUJBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NvbXBvbmVudCwgZm9yd2FyZFJlZiwgaW5wdXR9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQge01hdEZvcm1GaWVsZH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZm9ybS1maWVsZCc7XHJcbmltcG9ydCB7TWF0SW5wdXR9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2lucHV0JztcclxuaW1wb3J0IHtOR19WQUxVRV9BQ0NFU1NPUiwgUmVhY3RpdmVGb3Jtc01vZHVsZX0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQge0ZvY3VzQW5kU2VsZWN0RGlyZWN0aXZlfSBmcm9tICcuLi8uLi8uLi9kaXJlY3RpdmUvZm9jdXMuYW5kLnNlbGVjdC9mb2N1cy5hbmQuc2VsZWN0LmRpcmVjdGl2ZSc7XHJcbmltcG9ydCB7QW5zd2VyTWFzdGVyQ29tcG9uZW50fSBmcm9tICcuLi9hbnN3ZXIubWFzdGVyL2Fuc3dlci5tYXN0ZXIuY29tcG9uZW50JztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAndHAtc3VydmV5LWFuc3dlci1vZCcsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2Fuc3dlci5vZC5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vYW5zd2VyLm9kLmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcclxuICBpbXBvcnRzOiBbXHJcbiAgICBNYXRGb3JtRmllbGQsXHJcbiAgICBSZWFjdGl2ZUZvcm1zTW9kdWxlLFxyXG4gICAgRm9jdXNBbmRTZWxlY3REaXJlY3RpdmUsXHJcbiAgICBNYXRJbnB1dCxcclxuICBdLFxyXG4gIHByb3ZpZGVyczogW1xyXG4gICAge1xyXG4gICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcclxuICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gQW5zd2VyT0RDb21wb25lbnQpLFxyXG4gICAgICBtdWx0aTogdHJ1ZVxyXG4gICAgfSxcclxuICBdLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgQW5zd2VyT0RDb21wb25lbnQgZXh0ZW5kcyBBbnN3ZXJNYXN0ZXJDb21wb25lbnQ8bnVtYmVyPiB7XHJcbiAgbWluVmFsdWUgPSBpbnB1dDxudW1iZXI+KDEpO1xyXG4gIG1heFZhbHVlID0gaW5wdXQ8bnVtYmVyIHwgbnVsbD4obnVsbCk7XHJcbn1cclxuIiwiPGRpdiBjbGFzcz1cImNvbnRhaW5lci1tYWluXCI+XHJcbiAgPG1hdC1mb3JtLWZpZWxkIGFwcGVhcmFuY2U9XCJvdXRsaW5lXCIgY2xhc3M9XCJpbnB1dC1vZC1udW1iZXJcIj5cclxuICAgIDxpbnB1dCBbZm9ybUNvbnRyb2xdPVwiY29udHJvbFwiIFttaW5dPVwibWluVmFsdWUoKVwiIFttYXhdPVwibWF4VmFsdWUoKVwiIHRwU3VydmV5Rm9jdXNBbmRTZWxlY3QgbWF0SW5wdXQgdHlwZT1cIm51bWJlclwiPlxyXG4gIDwvbWF0LWZvcm0tZmllbGQ+XHJcbjwvZGl2PlxyXG5cclxuIl19
@@ -1,40 +0,0 @@
1
- import { Component, forwardRef, input } from '@angular/core';
2
- import { FormsModule, NG_VALUE_ACCESSOR, ReactiveFormsModule } from '@angular/forms';
3
- import { MatFormField, MatPrefix } from '@angular/material/form-field';
4
- import { MatInput } from '@angular/material/input';
5
- import { FocusAndSelectDirective } from '../../../directive/focus.and.select/focus.and.select.directive';
6
- import { AnswerMasterComponent } from '../answer.master/answer.master.component';
7
- import * as i0 from "@angular/core";
8
- import * as i1 from "@angular/forms";
9
- export class AnswerOLComponent extends AnswerMasterComponent {
10
- constructor() {
11
- super(...arguments);
12
- this.telephoneInput = input(false);
13
- }
14
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: AnswerOLComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
15
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.0.1", type: AnswerOLComponent, isStandalone: true, selector: "tp-survey-answer-ol", inputs: { telephoneInput: { classPropertyName: "telephoneInput", publicName: "telephoneInput", isSignal: true, isRequired: false, transformFunction: null } }, providers: [
16
- {
17
- provide: NG_VALUE_ACCESSOR,
18
- useExisting: forwardRef(() => AnswerOLComponent),
19
- multi: true
20
- },
21
- ], usesInheritance: true, ngImport: i0, template: "<div class=\"container-main\">\r\n @if (telephoneInput()) {\r\n <mat-form-field appearance=\"outline\">\r\n <input\r\n type=\"text\"\r\n inputmode=\"numeric\"\r\n matInput\r\n [formControl]=\"control\" tpSurveyFocusAndSelect>\r\n <span matTextPrefix>+380 &nbsp;</span>\r\n </mat-form-field>\r\n } @else {\r\n <mat-form-field appearance=\"outline\" class=\"input-text\">\r\n <textarea rows=\"10\" matInput [formControl]=\"control\" tpSurveyFocusAndSelect></textarea>\r\n </mat-form-field>\r\n\r\n<!-- <mat-form-field class=\"container-controls\" appearance=\"outline\">-->\r\n<!-- <textarea rows=\"10\" autofocus matInput [(ngModel)]=\"answer.AnswerValue\" (ngModelChange)=\"answerChange()\" appFocusAndSelect></textarea>-->\r\n<!-- </mat-form-field>-->\r\n }\r\n\r\n<!-- <mat-form-field appearance=\"outline\" class=\"input-od-number\">-->\r\n<!-- <input [formControl]=\"control\" tpSurveyFocusAndSelect matInput type=\"number\">-->\r\n<!-- </mat-form-field>-->\r\n</div>\r\n", styles: [":host{width:100%}.container-main{display:flex;width:100%;justify-content:center;align-items:center;flex-flow:column;gap:2em;padding:0 2em;box-sizing:border-box}.input-text{width:100%}\n"], dependencies: [{ kind: "directive", type: FocusAndSelectDirective, selector: "[tpSurveyFocusAndSelect]" }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", 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]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "component", type: MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: MatPrefix, selector: "[matPrefix], [matIconPrefix], [matTextPrefix]", inputs: ["matTextPrefix"] }] }); }
22
- }
23
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: AnswerOLComponent, decorators: [{
24
- type: Component,
25
- args: [{ selector: 'tp-survey-answer-ol', standalone: true, imports: [
26
- FocusAndSelectDirective,
27
- FormsModule,
28
- MatFormField,
29
- MatInput,
30
- ReactiveFormsModule,
31
- MatPrefix
32
- ], providers: [
33
- {
34
- provide: NG_VALUE_ACCESSOR,
35
- useExisting: forwardRef(() => AnswerOLComponent),
36
- multi: true
37
- },
38
- ], template: "<div class=\"container-main\">\r\n @if (telephoneInput()) {\r\n <mat-form-field appearance=\"outline\">\r\n <input\r\n type=\"text\"\r\n inputmode=\"numeric\"\r\n matInput\r\n [formControl]=\"control\" tpSurveyFocusAndSelect>\r\n <span matTextPrefix>+380 &nbsp;</span>\r\n </mat-form-field>\r\n } @else {\r\n <mat-form-field appearance=\"outline\" class=\"input-text\">\r\n <textarea rows=\"10\" matInput [formControl]=\"control\" tpSurveyFocusAndSelect></textarea>\r\n </mat-form-field>\r\n\r\n<!-- <mat-form-field class=\"container-controls\" appearance=\"outline\">-->\r\n<!-- <textarea rows=\"10\" autofocus matInput [(ngModel)]=\"answer.AnswerValue\" (ngModelChange)=\"answerChange()\" appFocusAndSelect></textarea>-->\r\n<!-- </mat-form-field>-->\r\n }\r\n\r\n<!-- <mat-form-field appearance=\"outline\" class=\"input-od-number\">-->\r\n<!-- <input [formControl]=\"control\" tpSurveyFocusAndSelect matInput type=\"number\">-->\r\n<!-- </mat-form-field>-->\r\n</div>\r\n", styles: [":host{width:100%}.container-main{display:flex;width:100%;justify-content:center;align-items:center;flex-flow:column;gap:2em;padding:0 2em;box-sizing:border-box}.input-text{width:100%}\n"] }]
39
- }] });
40
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5zd2VyLm9sLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RwLnN1cnZleS9zcmMvbGliL2NvbXBvbmVudC9hbnN3ZXIvYW5zd2VyLm9sL2Fuc3dlci5vbC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90cC5zdXJ2ZXkvc3JjL2xpYi9jb21wb25lbnQvYW5zd2VyL2Fuc3dlci5vbC9hbnN3ZXIub2wuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFNBQVMsRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUFTLE1BQU0sZUFBZSxDQUFDO0FBQ25FLE9BQU8sRUFBQyxXQUFXLEVBQUUsaUJBQWlCLEVBQUUsbUJBQW1CLEVBQWEsTUFBTSxnQkFBZ0IsQ0FBQztBQUMvRixPQUFPLEVBQUMsWUFBWSxFQUFFLFNBQVMsRUFBQyxNQUFNLDhCQUE4QixDQUFDO0FBQ3JFLE9BQU8sRUFBQyxRQUFRLEVBQUMsTUFBTSx5QkFBeUIsQ0FBQztBQUNqRCxPQUFPLEVBQUMsdUJBQXVCLEVBQUMsTUFBTSxnRUFBZ0UsQ0FBQztBQUN2RyxPQUFPLEVBQUMscUJBQXFCLEVBQUMsTUFBTSwwQ0FBMEMsQ0FBQzs7O0FBdUIvRSxNQUFNLE9BQU8saUJBQWtCLFNBQVEscUJBQTZCO0lBckJwRTs7UUFzQkUsbUJBQWMsR0FBRSxLQUFLLENBQVUsS0FBSyxDQUFDLENBQUM7S0FDdkM7OEdBRlksaUJBQWlCO2tHQUFqQixpQkFBaUIsaU9BUmpCO1lBQ1Q7Z0JBQ0UsT0FBTyxFQUFFLGlCQUFpQjtnQkFDMUIsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxpQkFBaUIsQ0FBQztnQkFDaEQsS0FBSyxFQUFFLElBQUk7YUFDWjtTQUNGLGlEQzFCSCwyL0JBd0JBLG1QRFhJLHVCQUF1QixvRUFDdkIsV0FBVyx1WkFDWCxZQUFZLDRMQUNaLFFBQVEsZ1VBQ1IsbUJBQW1CLGtOQUNuQixTQUFTOzsyRkFVQSxpQkFBaUI7a0JBckI3QixTQUFTOytCQUNFLHFCQUFxQixjQUduQixJQUFJLFdBQ1A7d0JBQ1AsdUJBQXVCO3dCQUN2QixXQUFXO3dCQUNYLFlBQVk7d0JBQ1osUUFBUTt3QkFDUixtQkFBbUI7d0JBQ25CLFNBQVM7cUJBQ1YsYUFDVTt3QkFDVDs0QkFDRSxPQUFPLEVBQUUsaUJBQWlCOzRCQUMxQixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxrQkFBa0IsQ0FBQzs0QkFDaEQsS0FBSyxFQUFFLElBQUk7eUJBQ1o7cUJBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NvbXBvbmVudCwgZm9yd2FyZFJlZiwgaW5wdXQsIE9uSW5pdH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7Rm9ybXNNb2R1bGUsIE5HX1ZBTFVFX0FDQ0VTU09SLCBSZWFjdGl2ZUZvcm1zTW9kdWxlLCBWYWxpZGF0b3JzfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7TWF0Rm9ybUZpZWxkLCBNYXRQcmVmaXh9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2Zvcm0tZmllbGQnO1xyXG5pbXBvcnQge01hdElucHV0fSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pbnB1dCc7XHJcbmltcG9ydCB7Rm9jdXNBbmRTZWxlY3REaXJlY3RpdmV9IGZyb20gJy4uLy4uLy4uL2RpcmVjdGl2ZS9mb2N1cy5hbmQuc2VsZWN0L2ZvY3VzLmFuZC5zZWxlY3QuZGlyZWN0aXZlJztcclxuaW1wb3J0IHtBbnN3ZXJNYXN0ZXJDb21wb25lbnR9IGZyb20gJy4uL2Fuc3dlci5tYXN0ZXIvYW5zd2VyLm1hc3Rlci5jb21wb25lbnQnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICd0cC1zdXJ2ZXktYW5zd2VyLW9sJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vYW5zd2VyLm9sLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9hbnN3ZXIub2wuY29tcG9uZW50LnNjc3MnXSxcclxuICBzdGFuZGFsb25lOiB0cnVlLFxyXG4gIGltcG9ydHM6IFtcclxuICAgIEZvY3VzQW5kU2VsZWN0RGlyZWN0aXZlLFxyXG4gICAgRm9ybXNNb2R1bGUsXHJcbiAgICBNYXRGb3JtRmllbGQsXHJcbiAgICBNYXRJbnB1dCxcclxuICAgIFJlYWN0aXZlRm9ybXNNb2R1bGUsXHJcbiAgICBNYXRQcmVmaXhcclxuICBdLFxyXG4gIHByb3ZpZGVyczogW1xyXG4gICAge1xyXG4gICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcclxuICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gQW5zd2VyT0xDb21wb25lbnQpLFxyXG4gICAgICBtdWx0aTogdHJ1ZVxyXG4gICAgfSxcclxuICBdLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgQW5zd2VyT0xDb21wb25lbnQgZXh0ZW5kcyBBbnN3ZXJNYXN0ZXJDb21wb25lbnQ8bnVtYmVyPntcclxuICB0ZWxlcGhvbmVJbnB1dD0gaW5wdXQ8Ym9vbGVhbj4oZmFsc2UpO1xyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJjb250YWluZXItbWFpblwiPlxyXG4gQGlmICh0ZWxlcGhvbmVJbnB1dCgpKSB7XHJcbiAgPG1hdC1mb3JtLWZpZWxkIGFwcGVhcmFuY2U9XCJvdXRsaW5lXCI+XHJcbiAgIDxpbnB1dFxyXG4gICAgIHR5cGU9XCJ0ZXh0XCJcclxuICAgICBpbnB1dG1vZGU9XCJudW1lcmljXCJcclxuICAgICBtYXRJbnB1dFxyXG4gICAgIFtmb3JtQ29udHJvbF09XCJjb250cm9sXCIgdHBTdXJ2ZXlGb2N1c0FuZFNlbGVjdD5cclxuICAgIDxzcGFuIG1hdFRleHRQcmVmaXg+KzM4MCAmbmJzcDs8L3NwYW4+XHJcbiAgPC9tYXQtZm9ybS1maWVsZD5cclxuIH0gQGVsc2Uge1xyXG4gICAgPG1hdC1mb3JtLWZpZWxkICBhcHBlYXJhbmNlPVwib3V0bGluZVwiIGNsYXNzPVwiaW5wdXQtdGV4dFwiPlxyXG4gICAgICA8dGV4dGFyZWEgcm93cz1cIjEwXCIgbWF0SW5wdXQgW2Zvcm1Db250cm9sXT1cImNvbnRyb2xcIiB0cFN1cnZleUZvY3VzQW5kU2VsZWN0PjwvdGV4dGFyZWE+XHJcbiAgICAgPC9tYXQtZm9ybS1maWVsZD5cclxuXHJcbjwhLS0gIDxtYXQtZm9ybS1maWVsZCBjbGFzcz1cImNvbnRhaW5lci1jb250cm9sc1wiIGFwcGVhcmFuY2U9XCJvdXRsaW5lXCI+LS0+XHJcbjwhLS0gICA8dGV4dGFyZWEgcm93cz1cIjEwXCIgYXV0b2ZvY3VzIG1hdElucHV0ICBbKG5nTW9kZWwpXT1cImFuc3dlci5BbnN3ZXJWYWx1ZVwiIChuZ01vZGVsQ2hhbmdlKT1cImFuc3dlckNoYW5nZSgpXCIgYXBwRm9jdXNBbmRTZWxlY3Q+PC90ZXh0YXJlYT4tLT5cclxuPCEtLSAgPC9tYXQtZm9ybS1maWVsZD4tLT5cclxuIH1cclxuXHJcbjwhLS0gPG1hdC1mb3JtLWZpZWxkIGFwcGVhcmFuY2U9XCJvdXRsaW5lXCIgY2xhc3M9XCJpbnB1dC1vZC1udW1iZXJcIj4tLT5cclxuPCEtLSAgPGlucHV0IFtmb3JtQ29udHJvbF09XCJjb250cm9sXCIgdHBTdXJ2ZXlGb2N1c0FuZFNlbGVjdCBtYXRJbnB1dCB0eXBlPVwibnVtYmVyXCI+LS0+XHJcbjwhLS0gPC9tYXQtZm9ybS1maWVsZD4tLT5cclxuPC9kaXY+XHJcbiJdfQ==
@@ -1,131 +0,0 @@
1
- import { booleanAttribute, Component, forwardRef, input, numberAttribute } from '@angular/core';
2
- import { FormArray, FormControl, FormGroup, NG_VALUE_ACCESSOR, ReactiveFormsModule } from '@angular/forms';
3
- import { MatCheckbox } from '@angular/material/checkbox';
4
- import { JsonPipe, KeyValuePipe } from '@angular/common';
5
- import { MatIcon } from '@angular/material/icon';
6
- import { MatRadioButton, MatRadioGroup } from '@angular/material/radio';
7
- import { map } from 'rxjs/operators';
8
- import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
9
- import { filter, tap } from 'rxjs';
10
- import { MultiLangObjectToHtmlPipe } from '../../../pipe/multi.lang.object.to.html/multi.lang.object.to.html.pipe';
11
- import { AsFormArrayPipe } from './pipe/as.form.array/as.form.array.pipe';
12
- import { AsFormControlPipe } from './pipe/as.form.control/as.form.control.pipe';
13
- import { AnswerMasterComponent } from '../answer.master/answer.master.component';
14
- import * as i0 from "@angular/core";
15
- import * as i1 from "@angular/forms";
16
- export class AnswerSLComponent extends AnswerMasterComponent {
17
- constructor() {
18
- super(...arguments);
19
- this.alternativeList = input.required();
20
- this.sectionList = input.required();
21
- this.multiSelect = input(false, { transform: booleanAttribute });
22
- this.maxCount = input(0, { transform: numberAttribute });
23
- this.answerSLForm = new FormGroup({});
24
- }
25
- ngOnInit() {
26
- const multiSelect = this.multiSelect();
27
- this.sectionList().forEach(section => {
28
- const sectionControl = this.#createSectionRowControl(multiSelect, []);
29
- this.answerSLForm.addControl(section.SectionGuid.toString(), sectionControl);
30
- });
31
- this.answerSLForm.valueChanges.pipe(map((fullAnswer) => {
32
- let res = {};
33
- //Если в настройках указали мультивыбор для секции, то в данной реализации, при изменении форма возвращает массив boolean?, true/false, нажата отжата.
34
- //Этот массив нужно конвертировать в массив number, в котором будут только нажатые альтернативы.
35
- if (this.multiSelect()) {
36
- Object.entries(fullAnswer).forEach(([key]) => {
37
- const sectionAnswerCheckedArray = this.answerSLForm.get(key)?.value;
38
- res[key] = this.alternativeList()
39
- .map(alt => alt.Value)
40
- .filter((_, index) => sectionAnswerCheckedArray[index]);
41
- });
42
- }
43
- else {
44
- //если единичный выбор для секции, то ответ просто исходное значение.
45
- res = fullAnswer;
46
- }
47
- return res;
48
- }), tap(res => this.#disableExtraControls(this.maxCount())), takeUntilDestroyed(this.destroyRef)).subscribe({
49
- next: res => this.control.patchValue(res, { emitEvent: true })
50
- });
51
- }
52
- #createSectionRowControl(multiSelect, answers) {
53
- if (multiSelect) {
54
- const msArray = new FormArray([]);
55
- const answerAsArray = Array(answers);
56
- this.alternativeList().forEach((alt) => {
57
- const control = new FormControl(answerAsArray.includes(alt.Value), { nonNullable: true });
58
- msArray.push(control, { emitEvent: false });
59
- //В режиме multiSelect у альтернативы есть понятие "Группа". Группа это число. Если выбирают альтернативу с определённой группой, то альтернативы с другой группой должны быть отжаты.
60
- //Логика такая же как и в ms вопросе
61
- control.valueChanges.pipe(filter(value => value && this.multiSelect()), takeUntilDestroyed(this.destroyRef)).subscribe({
62
- next: () => {
63
- //сначала отбираем контролы у которых другая группа.
64
- const otherGroupAlternativesList = this.alternativeList()
65
- .map((alt, altIndex) => ({ alternative: alt, index: altIndex })) //нужен индекс, по нему проще выбирать контролы в msArray
66
- .filter(data => data.alternative.GroupNo !== alt.GroupNo); //контролы у которых другая группа
67
- //"отжимаем галочку"
68
- otherGroupAlternativesList.forEach(data => {
69
- const altControl = msArray.controls.at(data.index);
70
- altControl.patchValue(false, { emitEvent: false });
71
- });
72
- }
73
- });
74
- });
75
- return msArray;
76
- }
77
- else {
78
- return new FormControl(Number(answers), { nonNullable: true });
79
- }
80
- }
81
- //дизейблит контроли если выбрали максимальное количество или енейблит если выбрали не максимальное количество
82
- #disableExtraControls(maxCount) {
83
- //если в настройках анкеты указали что максимальное возможное количество выбранных альтернатив = 0, но ничего контролировать не надо.
84
- if (maxCount === 0 || !this.multiSelect()) {
85
- return;
86
- }
87
- this.sectionList().forEach(sec => {
88
- const sectionControlArray = this.answerSLForm.get(sec.SectionGuid.toString());
89
- const values = sectionControlArray.value;
90
- const checkedCount = values.filter(v => v).length;
91
- sectionControlArray.controls.forEach(control => {
92
- if (checkedCount >= maxCount && !control.value) {
93
- control.disable({ emitEvent: false });
94
- }
95
- else {
96
- control.enable({ emitEvent: false });
97
- }
98
- });
99
- });
100
- }
101
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: AnswerSLComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
102
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.0.1", type: AnswerSLComponent, isStandalone: true, selector: "tp-survey-answer-sl", inputs: { alternativeList: { classPropertyName: "alternativeList", publicName: "alternativeList", isSignal: true, isRequired: true, transformFunction: null }, sectionList: { classPropertyName: "sectionList", publicName: "sectionList", isSignal: true, isRequired: true, transformFunction: null }, multiSelect: { classPropertyName: "multiSelect", publicName: "multiSelect", isSignal: true, isRequired: false, transformFunction: null }, maxCount: { classPropertyName: "maxCount", publicName: "maxCount", isSignal: true, isRequired: false, transformFunction: null } }, providers: [
103
- {
104
- provide: NG_VALUE_ACCESSOR,
105
- useExisting: forwardRef(() => AnswerSLComponent),
106
- multi: true
107
- },
108
- ], usesInheritance: true, ngImport: i0, template: "<table class=\"default-view\" [formGroup]=\"answerSLForm\">\r\n <thead>\r\n <tr>\r\n <th></th>\r\n @for (alt of alternativeList(); track alt.Value; let index = $index) {\r\n <th class=\"SLAlternativeCaption\">\r\n <span [innerHTML]= \"alt.MultiLangCaptions | multiLangObjectToHtml:language()\" class=\"survey-object-caption\"></span>\r\n </th>\r\n }\r\n </tr>\r\n </thead>\r\n <tbody>\r\n @for (secControl of answerSLForm.controls | keyvalue; track secControl.key; let sectionIndex = $index) {\r\n @if (multiSelect()){\r\n <tr>\r\n <td>\r\n <span [innerHTML]= \"sectionList()[sectionIndex].MultiLangCaptions | multiLangObjectToHtml:language()\" class=\"survey-object-caption\"></span>\r\n </td>\r\n @for (alternativeControl of (secControl.value | asFormArray).controls ; track alternativeControl) {\r\n <td>\r\n <mat-checkbox\r\n [formControl]=\"alternativeControl\"\r\n class=\"alternative-sl tp-survey-checkbox\"/>\r\n </td>\r\n }\r\n </tr>\r\n } @else {\r\n <mat-radio-group [formControl]=\"secControl.value | asFormControl\" class=\"single-select-row\">\r\n <td class=\"single-select-item\">\r\n <span [innerHTML]= \"sectionList()[sectionIndex].MultiLangCaptions | multiLangObjectToHtml:language()\" class=\"survey-object-caption\"></span>\r\n </td>\r\n @for (alt of alternativeList(); track alt.Value; let index = $index) {\r\n <td class=\"single-select-item\">\r\n <mat-radio-button\r\n class=\"alternative-sl tp-survey-radio-button\"\r\n [value]=\"alt.Value\">\r\n </mat-radio-button>\r\n </td>\r\n }\r\n </mat-radio-group>\r\n }\r\n }\r\n </tbody>\r\n</table>\r\n\r\n<div class=\"mobile-view\" [formGroup]=\"answerSLForm\">\r\n @for (secControl of answerSLForm.controls | keyvalue; track secControl.key; let secIndex = $index) {\r\n <div class=\"mobile-view-section-row\" [formArrayName]=\"secControl.key\">\r\n <span [innerHTML]= \"sectionList()[secIndex].MultiLangCaptions | multiLangObjectToHtml:language()\" class=\"mobile-view-section-caption section-sl-caption survey-object-caption\"></span>\r\n @if (multiSelect()) {\r\n <div class=\"mobile-view-alternative-list\">\r\n @for (alternativeControl of (secControl.value | asFormArray).controls; track alternativeControl; let altIndex = $index) {\r\n <mat-checkbox\r\n [formControl]=\"alternativeControl\"\r\n class=\"alternative-sl tp-survey-checkbox\">\r\n <span class=\"alternative-sl-caption survey-object-caption\" [innerHTML]= \"alternativeList()[altIndex].MultiLangCaptions | multiLangObjectToHtml:language()\"></span>\r\n </mat-checkbox>\r\n }\r\n </div>\r\n } @else {\r\n <mat-radio-group\r\n class=\"mobile-view-alternative-list\"\r\n [formControl]=\"secControl.value | asFormControl\">\r\n @for (alt of alternativeList(); track alt.Value; let index = $index) {\r\n <mat-radio-button\r\n class=\"tp-survey-radio-button\"\r\n [value]=\"alt.Value\">\r\n <span class=\"alternative-sl-caption survey-object-caption\" [innerHTML]= \"alt.MultiLangCaptions | multiLangObjectToHtml:language()\"></span>\r\n </mat-radio-button>\r\n }\r\n </mat-radio-group>\r\n }\r\n </div>\r\n }\r\n</div>\r\n", styles: ["td{text-align:center}table{width:100%}tr td{border-bottom:1px solid rgba(102,102,103,.49)}.default-view{display:block}.mobile-view{display:none;padding:1em;flex-flow:column;gap:4em}.mobile-view-alternative-list{display:flex;flex-flow:column}.mobile-view-section-row{margin-bottom:2em}.mobile-view-section-caption{display:block;border-bottom:1px solid}.section-sl-caption{font-size:1.3em}.alternative-sl-caption{font-size:1.1em}.single-select-row{display:table-row;vertical-align:middle;border-bottom:1px solid rgba(102,102,103,.49)}.single-select-item{vertical-align:middle;border-bottom:1px solid rgba(102,102,103,.49)}@media (max-width: 480px){.default-view{display:none}.mobile-view{display:block}}\n"], dependencies: [{ kind: "pipe", type: MultiLangObjectToHtmlPipe, name: "multiLangObjectToHtml" }, { kind: "component", type: MatCheckbox, selector: "mat-checkbox", inputs: ["aria-label", "aria-labelledby", "aria-describedby", "id", "required", "labelPosition", "name", "value", "disableRipple", "tabIndex", "color", "checked", "disabled", "indeterminate"], outputs: ["change", "indeterminateChange"], exportAs: ["matCheckbox"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormArrayName, selector: "[formArrayName]", inputs: ["formArrayName"] }, { kind: "pipe", type: KeyValuePipe, name: "keyvalue" }, { kind: "pipe", type: AsFormArrayPipe, name: "asFormArray" }, { kind: "component", type: MatRadioButton, selector: "mat-radio-button", inputs: ["id", "name", "aria-label", "aria-labelledby", "aria-describedby", "disableRipple", "tabIndex", "checked", "value", "labelPosition", "disabled", "required", "color"], outputs: ["change"], exportAs: ["matRadioButton"] }, { kind: "directive", type: MatRadioGroup, selector: "mat-radio-group", inputs: ["color", "name", "labelPosition", "value", "selected", "disabled", "required"], outputs: ["change"], exportAs: ["matRadioGroup"] }, { kind: "pipe", type: AsFormControlPipe, name: "asFormControl" }] }); }
109
- }
110
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: AnswerSLComponent, decorators: [{
111
- type: Component,
112
- args: [{ selector: 'tp-survey-answer-sl', standalone: true, imports: [
113
- MultiLangObjectToHtmlPipe,
114
- MatCheckbox,
115
- ReactiveFormsModule,
116
- KeyValuePipe,
117
- MatIcon,
118
- JsonPipe,
119
- AsFormArrayPipe,
120
- MatRadioButton,
121
- MatRadioGroup,
122
- AsFormControlPipe
123
- ], providers: [
124
- {
125
- provide: NG_VALUE_ACCESSOR,
126
- useExisting: forwardRef(() => AnswerSLComponent),
127
- multi: true
128
- },
129
- ], template: "<table class=\"default-view\" [formGroup]=\"answerSLForm\">\r\n <thead>\r\n <tr>\r\n <th></th>\r\n @for (alt of alternativeList(); track alt.Value; let index = $index) {\r\n <th class=\"SLAlternativeCaption\">\r\n <span [innerHTML]= \"alt.MultiLangCaptions | multiLangObjectToHtml:language()\" class=\"survey-object-caption\"></span>\r\n </th>\r\n }\r\n </tr>\r\n </thead>\r\n <tbody>\r\n @for (secControl of answerSLForm.controls | keyvalue; track secControl.key; let sectionIndex = $index) {\r\n @if (multiSelect()){\r\n <tr>\r\n <td>\r\n <span [innerHTML]= \"sectionList()[sectionIndex].MultiLangCaptions | multiLangObjectToHtml:language()\" class=\"survey-object-caption\"></span>\r\n </td>\r\n @for (alternativeControl of (secControl.value | asFormArray).controls ; track alternativeControl) {\r\n <td>\r\n <mat-checkbox\r\n [formControl]=\"alternativeControl\"\r\n class=\"alternative-sl tp-survey-checkbox\"/>\r\n </td>\r\n }\r\n </tr>\r\n } @else {\r\n <mat-radio-group [formControl]=\"secControl.value | asFormControl\" class=\"single-select-row\">\r\n <td class=\"single-select-item\">\r\n <span [innerHTML]= \"sectionList()[sectionIndex].MultiLangCaptions | multiLangObjectToHtml:language()\" class=\"survey-object-caption\"></span>\r\n </td>\r\n @for (alt of alternativeList(); track alt.Value; let index = $index) {\r\n <td class=\"single-select-item\">\r\n <mat-radio-button\r\n class=\"alternative-sl tp-survey-radio-button\"\r\n [value]=\"alt.Value\">\r\n </mat-radio-button>\r\n </td>\r\n }\r\n </mat-radio-group>\r\n }\r\n }\r\n </tbody>\r\n</table>\r\n\r\n<div class=\"mobile-view\" [formGroup]=\"answerSLForm\">\r\n @for (secControl of answerSLForm.controls | keyvalue; track secControl.key; let secIndex = $index) {\r\n <div class=\"mobile-view-section-row\" [formArrayName]=\"secControl.key\">\r\n <span [innerHTML]= \"sectionList()[secIndex].MultiLangCaptions | multiLangObjectToHtml:language()\" class=\"mobile-view-section-caption section-sl-caption survey-object-caption\"></span>\r\n @if (multiSelect()) {\r\n <div class=\"mobile-view-alternative-list\">\r\n @for (alternativeControl of (secControl.value | asFormArray).controls; track alternativeControl; let altIndex = $index) {\r\n <mat-checkbox\r\n [formControl]=\"alternativeControl\"\r\n class=\"alternative-sl tp-survey-checkbox\">\r\n <span class=\"alternative-sl-caption survey-object-caption\" [innerHTML]= \"alternativeList()[altIndex].MultiLangCaptions | multiLangObjectToHtml:language()\"></span>\r\n </mat-checkbox>\r\n }\r\n </div>\r\n } @else {\r\n <mat-radio-group\r\n class=\"mobile-view-alternative-list\"\r\n [formControl]=\"secControl.value | asFormControl\">\r\n @for (alt of alternativeList(); track alt.Value; let index = $index) {\r\n <mat-radio-button\r\n class=\"tp-survey-radio-button\"\r\n [value]=\"alt.Value\">\r\n <span class=\"alternative-sl-caption survey-object-caption\" [innerHTML]= \"alt.MultiLangCaptions | multiLangObjectToHtml:language()\"></span>\r\n </mat-radio-button>\r\n }\r\n </mat-radio-group>\r\n }\r\n </div>\r\n }\r\n</div>\r\n", styles: ["td{text-align:center}table{width:100%}tr td{border-bottom:1px solid rgba(102,102,103,.49)}.default-view{display:block}.mobile-view{display:none;padding:1em;flex-flow:column;gap:4em}.mobile-view-alternative-list{display:flex;flex-flow:column}.mobile-view-section-row{margin-bottom:2em}.mobile-view-section-caption{display:block;border-bottom:1px solid}.section-sl-caption{font-size:1.3em}.alternative-sl-caption{font-size:1.1em}.single-select-row{display:table-row;vertical-align:middle;border-bottom:1px solid rgba(102,102,103,.49)}.single-select-item{vertical-align:middle;border-bottom:1px solid rgba(102,102,103,.49)}@media (max-width: 480px){.default-view{display:none}.mobile-view{display:block}}\n"] }]
130
- }] });
131
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5zd2VyLnNsLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RwLnN1cnZleS9zcmMvbGliL2NvbXBvbmVudC9hbnN3ZXIvYW5zd2VyLnNsL2Fuc3dlci5zbC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90cC5zdXJ2ZXkvc3JjL2xpYi9jb21wb25lbnQvYW5zd2VyL2Fuc3dlci5zbC9hbnN3ZXIuc2wuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLGdCQUFnQixFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUFFLGVBQWUsRUFBUyxNQUFNLGVBQWUsQ0FBQztBQUN0RyxPQUFPLEVBQUMsU0FBUyxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUUsaUJBQWlCLEVBQUUsbUJBQW1CLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUN6RyxPQUFPLEVBQUMsV0FBVyxFQUFDLE1BQU0sNEJBQTRCLENBQUM7QUFDdkQsT0FBTyxFQUFDLFFBQVEsRUFBRSxZQUFZLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQztBQUN2RCxPQUFPLEVBQUMsT0FBTyxFQUFDLE1BQU0sd0JBQXdCLENBQUM7QUFDL0MsT0FBTyxFQUFDLGNBQWMsRUFBRSxhQUFhLEVBQUMsTUFBTSx5QkFBeUIsQ0FBQztBQUN0RSxPQUFPLEVBQUMsR0FBRyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDbkMsT0FBTyxFQUFDLGtCQUFrQixFQUFDLE1BQU0sNEJBQTRCLENBQUM7QUFDOUQsT0FBTyxFQUFDLE1BQU0sRUFBRSxHQUFHLEVBQUMsTUFBTSxNQUFNLENBQUM7QUFDakMsT0FBTyxFQUFDLHlCQUF5QixFQUFDLE1BQU0sd0VBQXdFLENBQUM7QUFDakgsT0FBTyxFQUFDLGVBQWUsRUFBQyxNQUFNLHlDQUF5QyxDQUFDO0FBQ3hFLE9BQU8sRUFB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QUMsRUFBQyxTQUFTLEVBQUUsS0FBSyxFQUFDLENBQUMsQ0FBQTtnQkFDcEMsQ0FBQztZQUNILENBQUMsQ0FBQyxDQUFBO1FBRUosQ0FBQyxDQUFDLENBQUE7SUFDSixDQUFDOzhHQWhHVSxpQkFBaUI7a0dBQWpCLGlCQUFpQix1bkJBUmpCO1lBQ1Q7Z0JBQ0UsT0FBTyxFQUFFLGlCQUFpQjtnQkFDMUIsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxpQkFBaUIsQ0FBQztnQkFDaEQsS0FBSyxFQUFFLElBQUk7YUFDWjtTQUNGLGlEQzNDSCxrdUdBMkVBLG92QkRqREkseUJBQXlCLDhEQUN6QixXQUFXLGdVQUNYLG1CQUFtQix5c0JBQ25CLFlBQVksNENBR1osZUFBZSxvREFDZixjQUFjLGdTQUNkLGFBQWEsa01BQ2IsaUJBQWlCOzsyRkFVUixpQkFBaUI7a0JBekI3QixTQUFTOytCQUNFLHFCQUFxQixjQUduQixJQUFJLFdBQ1A7d0JBQ1AseUJBQXlCO3dCQUN6QixXQUFXO3dCQUNYLG1CQUFtQjt3QkFDbkIsWUFBWTt3QkFDWixPQUFPO3dCQUNQLFFBQVE7d0JBQ1IsZUFBZTt3QkFDZixjQUFjO3dCQUNkLGFBQWE7d0JBQ2IsaUJBQWlCO3FCQUNsQixhQUNVO3dCQUNUOzRCQUNFLE9BQU8sRUFBRSxpQkFBaUI7NEJBQzFCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLGtCQUFrQixDQUFDOzRCQUNoRCxLQUFLLEVBQUUsSUFBSTt5QkFDWjtxQkFDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Ym9vbGVhbkF0dHJpYnV0ZSwgQ29tcG9uZW50LCBmb3J3YXJkUmVmLCBpbnB1dCwgbnVtYmVyQXR0cmlidXRlLCBPbkluaXR9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQge0Zvcm1BcnJheSwgRm9ybUNvbnRyb2wsIEZvcm1Hcm91cCwgTkdfVkFMVUVfQUNDRVNTT1IsIFJlYWN0aXZlRm9ybXNNb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHtNYXRDaGVja2JveH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvY2hlY2tib3gnO1xyXG5pbXBvcnQge0pzb25QaXBlLCBLZXlWYWx1ZVBpcGV9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7TWF0SWNvbn0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaWNvbic7XHJcbmltcG9ydCB7TWF0UmFkaW9CdXR0b24sIE1hdFJhZGlvR3JvdXB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3JhZGlvJztcclxuaW1wb3J0IHttYXB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0IHt0YWtlVW50aWxEZXN0cm95ZWR9IGZyb20gJ0Bhbmd1bGFyL2NvcmUvcnhqcy1pbnRlcm9wJztcclxuaW1wb3J0IHtmaWx0ZXIsIHRhcH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7TXVsdGlMYW5nT2JqZWN0VG9IdG1sUGlwZX0gZnJvbSAnLi4vLi4vLi4vcGlwZS9tdWx0aS5sYW5nLm9iamVjdC50by5odG1sL211bHRpLmxhbmcub2JqZWN0LnRvLmh0bWwucGlwZSc7XHJcbmltcG9ydCB7QXNGb3JtQXJyYXlQaXBlfSBmcm9tICcuL3BpcGUvYXMuZm9ybS5hcnJheS9hcy5mb3JtLmFycmF5LnBpcGUnO1xyXG5pbXBvcnQge0FzRm9ybUNvbnRyb2xQaXBlfSBmcm9tICcuL3BpcGUvYXMuZm9ybS5jb250cm9sL2FzLmZvcm0uY29udHJvbC5waXBlJztcclxuaW1wb3J0IHtBbnN3ZXJNYXN0ZXJDb21wb25lbnR9IGZyb20gJy4uL2Fuc3dlci5tYXN0ZXIvYW5zd2VyLm1hc3Rlci5jb21wb25lbnQnO1xyXG5pbXBvcnQge0Fuc3dlclNsVHlwZX0gZnJvbSAnLi4vLi4vLi4vdHAuc3VydmV5LnR5cGUnO1xyXG5pbXBvcnQge0lkYkFsdGVybmF0aXZlLCBJZGJTZWN0aW9ufSBmcm9tICcuLi8uLi8uLi90cC5zdXJ2ZXkuaW50ZXJmYWNlJztcclxuXHJcbmludGVyZmFjZSBJQW5zd2VyU0xGb3JtIHtcclxuICBba2V5OiBzdHJpbmddOiBGb3JtQXJyYXk8Rm9ybUNvbnRyb2w8Ym9vbGVhbj4+IHwgRm9ybUNvbnRyb2w8bnVtYmVyPiB8IEZvcm1Db250cm9sPEFycmF5PG51bWJlcj4+XHJcbn1cclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAndHAtc3VydmV5LWFuc3dlci1zbCcsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2Fuc3dlci5zbC5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vYW5zd2VyLnNsLmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcclxuICBpbXBvcnRzOiBbXHJcbiAgICBNdWx0aUxhbmdPYmplY3RUb0h0bWxQaXBlLFxyXG4gICAgTWF0Q2hlY2tib3gsXHJcbiAgICBSZWFjdGl2ZUZvcm1zTW9kdWxlLFxyXG4gICAgS2V5VmFsdWVQaXBlLFxyXG4gICAgTWF0SWNvbixcclxuICAgIEpzb25QaXBlLFxyXG4gICAgQXNGb3JtQXJyYXlQaXBlLFxyXG4gICAgTWF0UmFkaW9CdXR0b24sXHJcbiAgICBNYXRSYWRpb0dyb3VwLFxyXG4gICAgQXNGb3JtQ29udHJvbFBpcGVcclxuICBdLFxyXG4gIHByb3ZpZGVyczogW1xyXG4gICAge1xyXG4gICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcclxuICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gQW5zd2VyU0xDb21wb25lbnQpLFxyXG4gICAgICBtdWx0aTogdHJ1ZVxyXG4gICAgfSxcclxuICBdLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgQW5zd2VyU0xDb21wb25lbnQgZXh0ZW5kcyBBbnN3ZXJNYXN0ZXJDb21wb25lbnQ8QW5zd2VyU2xUeXBlPiBpbXBsZW1lbnRzIE9uSW5pdHtcclxuICBhbHRlcm5hdGl2ZUxpc3QgPSBpbnB1dC5yZXF1aXJlZDxBcnJheTxJZGJBbHRlcm5hdGl2ZT4+KCk7XHJcbiAgc2VjdGlvbkxpc3QgPSBpbnB1dC5yZXF1aXJlZDxBcnJheTxJZGJTZWN0aW9uPj4oKTtcclxuICBtdWx0aVNlbGVjdCA9IGlucHV0KGZhbHNlLCB7dHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlfSk7XHJcbiAgbWF4Q291bnQgPSBpbnB1dCgwLCB7dHJhbnNmb3JtOiBudW1iZXJBdHRyaWJ1dGV9KTtcclxuICBhbnN3ZXJTTEZvcm0gPSBuZXcgRm9ybUdyb3VwPElBbnN3ZXJTTEZvcm0+KHt9KVxyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIGNvbnN0IG11bHRpU2VsZWN0ID0gdGhpcy5tdWx0aVNlbGVjdCgpO1xyXG5cclxuICAgIHRoaXMuc2VjdGlvbkxpc3QoKS5mb3JFYWNoKHNlY3Rpb24gPT4ge1xyXG4gICAgICBjb25zdCBzZWN0aW9uQ29udHJvbCA9IHRoaXMuI2NyZWF0ZVNlY3Rpb25Sb3dDb250cm9sKG11bHRpU2VsZWN0LCBbXSk7XHJcbiAgICAgIHRoaXMuYW5zd2VyU0xGb3JtIS5hZGRDb250cm9sKHNlY3Rpb24uU2VjdGlvbkd1aWQudG9TdHJpbmcoKSwgc2VjdGlvbkNvbnRyb2wsICk7XHJcbiAgICB9KVxyXG5cclxuICAgIHRoaXMuYW5zd2VyU0xGb3JtLnZhbHVlQ2hhbmdlcy5waXBlKFxyXG4gICAgIG1hcCgoZnVsbEFuc3dlcikgPT4ge1xyXG4gICAgICAgbGV0IHJlczogUmVjb3JkPHN0cmluZywgQXJyYXk8bnVtYmVyPiB8IG51bWJlcj4gPSB7fTtcclxuICAgICAgIC8v0JXRgdC70Lgg0LIg0L3QsNGB0YLRgNC+0LnQutCw0YUg0YPQutCw0LfQsNC70Lgg0LzRg9C70YzRgtC40LLRi9Cx0L7RgCDQtNC70Y8g0YHQtdC60YbQuNC4LCDRgtC+INCyINC00LDQvdC90L7QuSDRgNC10LDQu9C40LfQsNGG0LjQuCwg0L/RgNC4INC40LfQvNC10L3QtdC90LjQuCDRhNC+0YDQvNCwINCy0L7Qt9Cy0YDQsNGJ0LDQtdGCINC80LDRgdGB0LjQsiBib29sZWFuPywgdHJ1ZS9mYWxzZSwg0L3QsNC20LDRgtCwINC+0YLQttCw0YLQsC5cclxuICAgICAgIC8v0K3RgtC+0YIg0LzQsNGB0YHQuNCyINC90YPQttC90L4g0LrQvtC90LLQtdGA0YLQuNGA0L7QstCw0YLRjCDQsiDQvNCw0YHRgdC40LIgbnVtYmVyLCDQsiDQutC+0YLQvtGA0L7QvCDQsdGD0LTRg9GCINGC0L7Qu9GM0LrQviDQvdCw0LbQsNGC0YvQtSDQsNC70YzRgtC10YDQvdCw0YLQuNCy0YsuXHJcbiAgICAgICBpZiAodGhpcy5tdWx0aVNlbGVjdCgpKSB7XHJcbiAgICAgICAgIE9iamVjdC5lbnRyaWVzKGZ1bGxBbnN3ZXIpLmZvckVhY2goKFtrZXldKSA9PiB7XHJcbiAgICAgICAgICAgY29uc3Qgc2VjdGlvbkFuc3dlckNoZWNrZWRBcnJheSA9IHRoaXMuYW5zd2VyU0xGb3JtLmdldChrZXkpPy52YWx1ZTtcclxuICAgICAgICAgICByZXNba2V5XSA9IHRoaXMuYWx0ZXJuYXRpdmVMaXN0KClcclxuICAgICAgICAgICAgLm1hcChhbHQgPT4gYWx0LlZhbHVlKVxyXG4gICAgICAgICAgICAuZmlsdGVyKChfLCBpbmRleCkgPT4gc2VjdGlvbkFuc3dlckNoZWNrZWRBcnJheVtpbmRleF0gKVxyXG4gICAgICAgICB9KTtcclxuICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgIC8v0LXRgdC70Lgg0LXQtNC40L3QuNGH0L3Ri9C5INCy0YvQsdC+0YAg0LTQu9GPINGB0LXQutGG0LjQuCwg0YLQviDQvtGC0LLQtdGCINC/0YDQvtGB0YLQviDQuNGB0YXQvtC00L3QvtC1INC30L3QsNGH0LXQvdC40LUuXHJcbiAgICAgICAgIHJlcyA9IGZ1bGxBbnN3ZXIgYXMgUmVjb3JkPHN0cmluZywgbnVtYmVyPjtcclxuICAgICAgIH1cclxuICAgICAgIHJldHVybiByZXM7XHJcbiAgICAgfSksXHJcbiAgICAgdGFwKHJlcyA9PiB0aGlzLiNkaXNhYmxlRXh0cmFDb250cm9scyh0aGlzLm1heENvdW50KCkpKSxcclxuICAgICB0YWtlVW50aWxEZXN0cm95ZWQodGhpcy5kZXN0cm95UmVmKVxyXG4gICAgKS5zdWJzY3JpYmUoe1xyXG4gICAgICBuZXh0OiByZXMgPT4gdGhpcy5jb250cm9sLnBhdGNoVmFsdWUocmVzLCB7ZW1pdEV2ZW50OiB0cnVlfSlcclxuICAgIH0pXHJcbiAgfVxyXG5cclxuICAjY3JlYXRlU2VjdGlvblJvd0NvbnRyb2wobXVsdGlTZWxlY3Q6IGJvb2xlYW4sIGFuc3dlcnM6IG51bWJlciB8IEFycmF5PG51bWJlcj4pOiBGb3JtQXJyYXk8Rm9ybUNvbnRyb2w8Ym9vbGVhbj4+IHwgRm9ybUNvbnRyb2w8bnVtYmVyPiB7XHJcbiAgICBpZiAobXVsdGlTZWxlY3QpIHtcclxuICAgICAgY29uc3QgbXNBcnJheSA9IG5ldyBGb3JtQXJyYXk8Rm9ybUNvbnRyb2w8Ym9vbGVhbj4+KFtdKTtcclxuICAgICAgY29uc3QgYW5zd2VyQXNBcnJheSA9IEFycmF5KGFuc3dlcnMpO1xyXG4gICAgICBcclxuICAgICAgdGhpcy5hbHRlcm5hdGl2ZUxpc3QoKS5mb3JFYWNoKChhbHQpID0+IHtcclxuICAgICAgICBjb25zdCBjb250cm9sPSBuZXcgRm9ybUNvbnRyb2w8Ym9vbGVhbj4oIGFuc3dlckFzQXJyYXkuaW5jbHVkZXMoYWx0LlZhbHVlKSwge25vbk51bGxhYmxlOiB0cnVlfSk7XHJcbiAgICAgICAgbXNBcnJheS5wdXNoKGNvbnRyb2wsIHtlbWl0RXZlbnQ6IGZhbHNlfSk7XHJcblxyXG4gICAgICAgIC8v0JIg0YDQtdC20LjQvNC1IG11bHRpU2VsZWN0INGDINCw0LvRjNGC0LXRgNC90LDRgtC40LLRiyDQtdGB0YLRjCDQv9C+0L3Rj9GC0LjQtSBcItCT0YDRg9C/0L/QsFwiLiDQk9GA0YPQv9C/0LAg0Y3RgtC+INGH0LjRgdC70L4uINCV0YHQu9C4INCy0YvQsdC40YDQsNGO0YIg0LDQu9GM0YLQtdGA0L3QsNGC0LjQstGDINGBINC+0L/RgNC10LTQtdC70ZHQvdC90L7QuSDQs9GA0YPQv9C/0L7QuSwg0YLQviDQsNC70YzRgtC10YDQvdCw0YLQuNCy0Ysg0YEg0LTRgNGD0LPQvtC5INCz0YDRg9C/0L/QvtC5INC00L7Qu9C20L3RiyDQsdGL0YLRjCDQvtGC0LbQsNGC0YsuXHJcbiAgICAgICAgLy/Qm9C+0LPQuNC60LAg0YLQsNC60LDRjyDQttC1INC60LDQuiDQuCDQsiBtcyDQstC+0L/RgNC+0YHQtVxyXG4gICAgICAgIGNvbnRyb2wudmFsdWVDaGFuZ2VzLnBpcGUoXHJcbiAgICAgICAgIGZpbHRlcih2YWx1ZSA9PiB2YWx1ZSAmJiB0aGlzLm11bHRpU2VsZWN0KCkpLFxyXG4gICAgICAgICB0YWtlVW50aWxEZXN0cm95ZWQodGhpcy5kZXN0cm95UmVmKSxcclxuICAgICAgICApLnN1YnNjcmliZSh7XHJcbiAgICAgICAgICBuZXh0OiAoKSA9PiB7XHJcbiAgICAgICAgICAgIC8v0YHQvdCw0YfQsNC70LAg0L7RgtCx0LjRgNCw0LXQvCDQutC+0L3RgtGA0L7Qu9GLINGDINC60L7RgtC+0YDRi9GFINC00YDRg9Cz0LDRjyDQs9GA0YPQv9C/0LAuXHJcbiAgICAgICAgICAgIGNvbnN0IG90aGVyR3JvdXBBbHRlcm5hdGl2ZXNMaXN0ID0gdGhpcy5hbHRlcm5hdGl2ZUxpc3QoKVxyXG4gICAgICAgICAgICAgLm1hcCgoYWx0LCBhbHRJbmRleCkgPT4gKHthbHRlcm5hdGl2ZTogYWx0LCBpbmRleDogYWx0SW5kZXh9KSApICAvL9C90YPQttC10L0g0LjQvdC00LXQutGBLCDQv9C+INC90LXQvNGDINC/0YDQvtGJ0LUg0LLRi9Cx0LjRgNCw0YLRjCDQutC+0L3RgtGA0L7Qu9GLINCyIG1zQXJyYXlcclxuICAgICAgICAgICAgIC5maWx0ZXIoZGF0YSA9PiBkYXRhLmFsdGVybmF0aXZlLkdyb3VwTm8gIT09IGFsdC5Hcm91cE5vKTsgLy/QutC+0L3RgtGA0L7Qu9GLINGDINC60L7RgtC+0YDRi9GFINC00YDRg9Cz0LDRjyDQs9GA0YPQv9C/0LBcclxuXHJcbiAgICAgICAgICAgIC8vXCLQvtGC0LbQuNC80LDQtdC8INCz0LDQu9C+0YfQutGDXCJcclxuICAgICAgICAgICAgb3RoZXJHcm91cEFsdGVybmF0aXZlc0xpc3QuZm9yRWFjaChkYXRhID0+IHtcclxuICAgICAgICAgICAgICBjb25zdCBhbHRDb250cm9sID0gbXNBcnJheS5jb250cm9scy5hdChkYXRhLmluZGV4KTtcclxuICAgICAgICAgICAgICBhbHRDb250cm9sIS5wYXRjaFZhbHVlKGZhbHNlLCB7ZW1pdEV2ZW50OiBmYWxzZX0pXHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0pXHJcbiAgICAgIH0pO1xyXG4gICAgICByZXR1cm4gbXNBcnJheTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHJldHVybiBuZXcgRm9ybUNvbnRyb2w8bnVtYmVyPihOdW1iZXIoYW5zd2VycyksIHtub25OdWxsYWJsZTogdHJ1ZX0pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLy/QtNC40LfQtdC50LHQu9C40YIg0LrQvtC90YLRgNC+0LvQuCDQtdGB0LvQuCDQstGL0LHRgNCw0LvQuCDQvNCw0LrRgdC40LzQsNC70YzQvdC+0LUg0LrQvtC70LjRh9C10YHRgtCy0L4g0LjQu9C4INC10L3QtdC50LHQu9C40YIg0LXRgdC70Lgg0LLRi9Cx0YDQsNC70Lgg0L3QtSDQvNCw0LrRgdC40LzQsNC70YzQvdC+0LUg0LrQvtC70LjRh9C10YHRgtCy0L5cclxuICAjZGlzYWJsZUV4dHJhQ29udHJvbHMobWF4Q291bnQ6IG51bWJlcik6IHZvaWR7XHJcbiAgICAvL9C10YHQu9C4INCyINC90LDRgdGC0YDQvtC50LrQsNGFINCw0L3QutC10YLRiyDRg9C60LDQt9Cw0LvQuCDRh9GC0L4g0LzQsNC60YHQuNC80LDQu9GM0L3QvtC1INCy0L7Qt9C80L7QttC90L7QtSDQutC+0LvQuNGH0LXRgdGC0LLQviDQstGL0LHRgNCw0L3QvdGL0YUg0LDQu9GM0YLQtdGA0L3QsNGC0LjQsiA9IDAsINC90L4g0L3QuNGH0LXQs9C+INC60L7QvdGC0YDQvtC70LjRgNC+0LLQsNGC0Ywg0L3QtSDQvdCw0LTQvi5cclxuICAgIGlmIChtYXhDb3VudCA9PT0gMCB8fCAhdGhpcy5tdWx0aVNlbGVjdCgpKSB7XHJcbiAgICAgIHJldHVyblxyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuc2VjdGlvbkxpc3QoKS5mb3JFYWNoKHNlYyA9PiB7XHJcbiAgICAgIGNvbnN0IHNlY3Rpb25Db250cm9sQXJyYXkgPSB0aGlzLmFuc3dlclNMRm9ybS5nZXQoc2VjLlNlY3Rpb25HdWlkLnRvU3RyaW5nKCkpIGFzIEZvcm1BcnJheTxGb3JtQ29udHJvbDxib29sZWFuPj47XHJcbiAgICAgIGNvbnN0IHZhbHVlcyA9IHNlY3Rpb25Db250cm9sQXJyYXkudmFsdWU7XHJcbiAgICAgIGNvbnN0IGNoZWNrZWRDb3VudCA9IHZhbHVlcy5maWx0ZXIodiA9PiB2KS5sZW5ndGg7XHJcblxyXG4gICAgICBzZWN0aW9uQ29udHJvbEFycmF5LmNvbnRyb2xzLmZvckVhY2goY29udHJvbCA9PiB7XHJcbiAgICAgICAgaWYgKGNoZWNrZWRDb3VudCA+PSBtYXhDb3VudCAmJiAhY29udHJvbC52YWx1ZSkge1xyXG4gICAgICAgICAgY29udHJvbC5kaXNhYmxlKHtlbWl0RXZlbnQ6IGZhbHNlfSlcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgY29udHJvbC5lbmFibGUoe2VtaXRFdmVudDogZmFsc2V9KVxyXG4gICAgICAgIH1cclxuICAgICAgfSlcclxuXHJcbiAgICB9KVxyXG4gIH1cclxufVxyXG4iLCI8dGFibGUgY2xhc3M9XCJkZWZhdWx0LXZpZXdcIiBbZm9ybUdyb3VwXT1cImFuc3dlclNMRm9ybVwiPlxyXG4gPHRoZWFkPlxyXG4gPHRyPlxyXG4gIDx0aD48L3RoPlxyXG4gIEBmb3IgKGFsdCBvZiBhbHRlcm5hdGl2ZUxpc3QoKTsgdHJhY2sgYWx0LlZhbHVlOyBsZXQgaW5kZXggPSAkaW5kZXgpIHtcclxuICAgPHRoIGNsYXNzPVwiU0xBbHRlcm5hdGl2ZUNhcHRpb25cIj5cclxuICAgIDxzcGFuIFtpbm5lckhUTUxdPSBcImFsdC5NdWx0aUxhbmdDYXB0aW9ucyB8IG11bHRpTGFuZ09iamVjdFRvSHRtbDpsYW5ndWFnZSgpXCIgY2xhc3M9XCJzdXJ2ZXktb2JqZWN0LWNhcHRpb25cIj48L3NwYW4+XHJcbiAgIDwvdGg+XHJcbiAgfVxyXG4gPC90cj5cclxuIDwvdGhlYWQ+XHJcbiA8dGJvZHk+XHJcbiAgQGZvciAoc2VjQ29udHJvbCBvZiBhbnN3ZXJTTEZvcm0uY29udHJvbHMgfCBrZXl2YWx1ZTsgdHJhY2sgc2VjQ29udHJvbC5rZXk7IGxldCBzZWN0aW9uSW5kZXggPSAkaW5kZXgpIHtcclxuICAgQGlmIChtdWx0aVNlbGVjdCgpKXtcclxuICAgIDx0cj5cclxuICAgICA8dGQ+XHJcbiAgICAgIDxzcGFuIFtpbm5lckhUTUxdPSBcInNlY3Rpb25MaXN0KClbc2VjdGlvbkluZGV4XS5NdWx0aUxhbmdDYXB0aW9ucyB8IG11bHRpTGFuZ09iamVjdFRvSHRtbDpsYW5ndWFnZSgpXCIgY2xhc3M9XCJzdXJ2ZXktb2JqZWN0LWNhcHRpb25cIj48L3NwYW4+XHJcbiAgICAgPC90ZD5cclxuICAgICBAZm9yIChhbHRlcm5hdGl2ZUNvbnRyb2wgb2YgKHNlY0NvbnRyb2wudmFsdWUgfCBhc0Zvcm1BcnJheSkuY29udHJvbHMgOyB0cmFjayBhbHRlcm5hdGl2ZUNvbnRyb2wpIHtcclxuICAgICAgPHRkPlxyXG4gICAgICAgPG1hdC1jaGVja2JveFxyXG4gICAgICAgIFtmb3JtQ29udHJvbF09XCJhbHRlcm5hdGl2ZUNvbnRyb2xcIlxyXG4gICAgICAgIGNsYXNzPVwiYWx0ZXJuYXRpdmUtc2wgdHAtc3VydmV5LWNoZWNrYm94XCIvPlxyXG4gICAgICA8L3RkPlxyXG4gICAgIH1cclxuICAgIDwvdHI+XHJcbiAgIH0gQGVsc2Uge1xyXG4gICAgPG1hdC1yYWRpby1ncm91cCBbZm9ybUNvbnRyb2xdPVwic2VjQ29udHJvbC52YWx1ZSB8IGFzRm9ybUNvbnRyb2xcIiBjbGFzcz1cInNpbmdsZS1zZWxlY3Qtcm93XCI+XHJcbiAgICAgPHRkIGNsYXNzPVwic2luZ2xlLXNlbGVjdC1pdGVtXCI+XHJcbiAgICAgIDxzcGFuIFtpbm5lckhUTUxdPSBcInNlY3Rpb25MaXN0KClbc2VjdGlvbkluZGV4XS5NdWx0aUxhbmdDYXB0aW9ucyB8IG11bHRpTGFuZ09iamVjdFRvSHRtbDpsYW5ndWFnZSgpXCIgY2xhc3M9XCJzdXJ2ZXktb2JqZWN0LWNhcHRpb25cIj48L3NwYW4+XHJcbiAgICAgPC90ZD5cclxuICAgICBAZm9yIChhbHQgb2YgYWx0ZXJuYXRpdmVMaXN0KCk7IHRyYWNrIGFsdC5WYWx1ZTsgbGV0IGluZGV4ID0gJGluZGV4KSB7XHJcbiAgICAgIDx0ZCBjbGFzcz1cInNpbmdsZS1zZWxlY3QtaXRlbVwiPlxyXG4gICAgICAgPG1hdC1yYWRpby1idXR0b25cclxuICAgICAgICBjbGFzcz1cImFsdGVybmF0aXZlLXNsICB0cC1zdXJ2ZXktcmFkaW8tYnV0dG9uXCJcclxuICAgICAgICBbdmFsdWVdPVwiYWx0LlZhbHVlXCI+XHJcbiAgICAgICA8L21hdC1yYWRpby1idXR0b24+XHJcbiAgICAgIDwvdGQ+XHJcbiAgICAgfVxyXG4gICAgPC9tYXQtcmFkaW8tZ3JvdXA+XHJcbiAgIH1cclxuICB9XHJcbiA8L3Rib2R5PlxyXG48L3RhYmxlPlxyXG5cclxuPGRpdiBjbGFzcz1cIm1vYmlsZS12aWV3XCIgW2Zvcm1Hcm91cF09XCJhbnN3ZXJTTEZvcm1cIj5cclxuIEBmb3IgKHNlY0NvbnRyb2wgb2YgYW5zd2VyU0xGb3JtLmNvbnRyb2xzIHwga2V5dmFsdWU7IHRyYWNrIHNlY0NvbnRyb2wua2V5OyBsZXQgc2VjSW5kZXggPSAkaW5kZXgpIHtcclxuICA8ZGl2IGNsYXNzPVwibW9iaWxlLXZpZXctc2VjdGlvbi1yb3dcIiBbZm9ybUFycmF5TmFtZV09XCJzZWNDb250cm9sLmtleVwiPlxyXG4gICA8c3BhbiBbaW5uZXJIVE1MXT0gXCJzZWN0aW9uTGlzdCgpW3NlY0luZGV4XS5NdWx0aUxhbmdDYXB0aW9ucyB8IG11bHRpTGFuZ09iamVjdFRvSHRtbDpsYW5ndWFnZSgpXCIgY2xhc3M9XCJtb2JpbGUtdmlldy1zZWN0aW9uLWNhcHRpb24gc2VjdGlvbi1zbC1jYXB0aW9uIHN1cnZleS1vYmplY3QtY2FwdGlvblwiPjwvc3Bhbj5cclxuICAgQGlmIChtdWx0aVNlbGVjdCgpKSB7XHJcbiAgICA8ZGl2IGNsYXNzPVwibW9iaWxlLXZpZXctYWx0ZXJuYXRpdmUtbGlzdFwiPlxyXG4gICAgIEBmb3IgKGFsdGVybmF0aXZlQ29udHJvbCBvZiAoc2VjQ29udHJvbC52YWx1ZSB8IGFzRm9ybUFycmF5KS5jb250cm9sczsgdHJhY2sgYWx0ZXJuYXRpdmVDb250cm9sOyBsZXQgYWx0SW5kZXggPSAkaW5kZXgpIHtcclxuICAgICAgPG1hdC1jaGVja2JveFxyXG4gICAgICAgW2Zvcm1Db250cm9sXT1cImFsdGVybmF0aXZlQ29udHJvbFwiXHJcbiAgICAgICBjbGFzcz1cImFsdGVybmF0aXZlLXNsIHRwLXN1cnZleS1jaGVja2JveFwiPlxyXG4gICAgICAgPHNwYW4gY2xhc3M9XCJhbHRlcm5hdGl2ZS1zbC1jYXB0aW9uIHN1cnZleS1vYmplY3QtY2FwdGlvblwiIFtpbm5lckhUTUxdPSBcImFsdGVybmF0aXZlTGlzdCgpW2FsdEluZGV4XS5NdWx0aUxhbmdDYXB0aW9ucyB8IG11bHRpTGFuZ09iamVjdFRvSHRtbDpsYW5ndWFnZSgpXCI+PC9zcGFuPlxyXG4gICAgICA8L21hdC1jaGVja2JveD5cclxuICAgICB9XHJcbiAgICA8L2Rpdj5cclxuICAgfSBAZWxzZSB7XHJcbiAgICA8bWF0LXJhZGlvLWdyb3VwXHJcbiAgICAgY2xhc3M9XCJtb2JpbGUtdmlldy1hbHRlcm5hdGl2ZS1saXN0XCJcclxuICAgICBbZm9ybUNvbnRyb2xdPVwic2VjQ29udHJvbC52YWx1ZSB8IGFzRm9ybUNvbnRyb2xcIj5cclxuICAgICBAZm9yIChhbHQgb2YgYWx0ZXJuYXRpdmVMaXN0KCk7IHRyYWNrIGFsdC5WYWx1ZTsgbGV0IGluZGV4ID0gJGluZGV4KSB7XHJcbiAgICAgIDxtYXQtcmFkaW8tYnV0dG9uXHJcbiAgICAgICBjbGFzcz1cInRwLXN1cnZleS1yYWRpby1idXR0b25cIlxyXG4gICAgICAgW3ZhbHVlXT1cImFsdC5WYWx1ZVwiPlxyXG4gICAgICAgPHNwYW4gY2xhc3M9XCJhbHRlcm5hdGl2ZS1zbC1jYXB0aW9uIHN1cnZleS1vYmplY3QtY2FwdGlvblwiIFtpbm5lckhUTUxdPSBcImFsdC5NdWx0aUxhbmdDYXB0aW9ucyB8IG11bHRpTGFuZ09iamVjdFRvSHRtbDpsYW5ndWFnZSgpXCI+PC9zcGFuPlxyXG4gICAgICA8L21hdC1yYWRpby1idXR0b24+XHJcbiAgICAgfVxyXG4gICAgPC9tYXQtcmFkaW8tZ3JvdXA+XHJcbiAgIH1cclxuICA8L2Rpdj5cclxuIH1cclxuPC9kaXY+XHJcbiJdfQ==
@@ -1,17 +0,0 @@
1
- import { Pipe } from '@angular/core';
2
- import * as i0 from "@angular/core";
3
- export class AsFormArrayPipe {
4
- transform(value) {
5
- return value;
6
- }
7
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: AsFormArrayPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
8
- static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "18.0.1", ngImport: i0, type: AsFormArrayPipe, isStandalone: true, name: "asFormArray" }); }
9
- }
10
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: AsFormArrayPipe, decorators: [{
11
- type: Pipe,
12
- args: [{
13
- name: 'asFormArray',
14
- standalone: true
15
- }]
16
- }] });
17
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXMuZm9ybS5hcnJheS5waXBlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHAuc3VydmV5L3NyYy9saWIvY29tcG9uZW50L2Fuc3dlci9hbnN3ZXIuc2wvcGlwZS9hcy5mb3JtLmFycmF5L2FzLmZvcm0uYXJyYXkucGlwZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsSUFBSSxFQUFnQixNQUFNLGVBQWUsQ0FBQzs7QUFPbEQsTUFBTSxPQUFPLGVBQWU7SUFFMUIsU0FBUyxDQUFDLEtBQVU7UUFDbEIsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDOzhHQUpVLGVBQWU7NEdBQWYsZUFBZTs7MkZBQWYsZUFBZTtrQkFKM0IsSUFBSTttQkFBQztvQkFDSixJQUFJLEVBQUUsYUFBYTtvQkFDbkIsVUFBVSxFQUFFLElBQUk7aUJBQ2pCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtQaXBlLCBQaXBlVHJhbnNmb3JtfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHtGb3JtQXJyYXksIEZvcm1Db250cm9sfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcblxyXG5AUGlwZSh7XHJcbiAgbmFtZTogJ2FzRm9ybUFycmF5JyxcclxuICBzdGFuZGFsb25lOiB0cnVlXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBBc0Zvcm1BcnJheVBpcGUgaW1wbGVtZW50cyBQaXBlVHJhbnNmb3JtIHtcclxuXHJcbiAgdHJhbnNmb3JtKHZhbHVlOiBhbnkpOiBGb3JtQXJyYXk8Rm9ybUNvbnRyb2w8Ym9vbGVhbj4+IHtcclxuICAgIHJldHVybiB2YWx1ZTtcclxuICB9XHJcblxyXG59XHJcbiJdfQ==
@@ -1,17 +0,0 @@
1
- import { Pipe } from '@angular/core';
2
- import * as i0 from "@angular/core";
3
- export class AsFormControlPipe {
4
- transform(value) {
5
- return value;
6
- }
7
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: AsFormControlPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
8
- static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "18.0.1", ngImport: i0, type: AsFormControlPipe, isStandalone: true, name: "asFormControl" }); }
9
- }
10
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: AsFormControlPipe, decorators: [{
11
- type: Pipe,
12
- args: [{
13
- name: 'asFormControl',
14
- standalone: true
15
- }]
16
- }] });
17
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXMuZm9ybS5jb250cm9sLnBpcGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90cC5zdXJ2ZXkvc3JjL2xpYi9jb21wb25lbnQvYW5zd2VyL2Fuc3dlci5zbC9waXBlL2FzLmZvcm0uY29udHJvbC9hcy5mb3JtLmNvbnRyb2wucGlwZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsSUFBSSxFQUFnQixNQUFNLGVBQWUsQ0FBQzs7QUFPbEQsTUFBTSxPQUFPLGlCQUFpQjtJQUU1QixTQUFTLENBQUMsS0FBVTtRQUNsQixPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7OEdBSlUsaUJBQWlCOzRHQUFqQixpQkFBaUI7OzJGQUFqQixpQkFBaUI7a0JBSjdCLElBQUk7bUJBQUM7b0JBQ0osSUFBSSxFQUFFLGVBQWU7b0JBQ3JCLFVBQVUsRUFBRSxJQUFJO2lCQUNqQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7UGlwZSwgUGlwZVRyYW5zZm9ybX0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7Rm9ybUNvbnRyb2x9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuXHJcbkBQaXBlKHtcclxuICBuYW1lOiAnYXNGb3JtQ29udHJvbCcsXHJcbiAgc3RhbmRhbG9uZTogdHJ1ZVxyXG59KVxyXG5leHBvcnQgY2xhc3MgQXNGb3JtQ29udHJvbFBpcGUgaW1wbGVtZW50cyBQaXBlVHJhbnNmb3JtIHtcclxuICBcclxuICB0cmFuc2Zvcm0odmFsdWU6IGFueSk6IEZvcm1Db250cm9sPG51bWJlcj4ge1xyXG4gICAgcmV0dXJuIHZhbHVlO1xyXG4gIH1cclxuXHJcbn1cclxuIl19