@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,4 +1,4 @@
1
- import { OnInit } from '@angular/core';
1
+ import { AfterViewInit } from '@angular/core';
2
2
  import { FormArray, FormControl, FormGroup } from '@angular/forms';
3
3
  import { AnswerMasterComponent } from '../answer.master/answer.master.component';
4
4
  import { IdbAlternative, IdbQuestion } from '../../../tp.survey.interface';
@@ -6,7 +6,7 @@ import * as i0 from "@angular/core";
6
6
  interface IAnswerMSForm {
7
7
  alternativeList: FormArray<FormControl<boolean>>;
8
8
  }
9
- export declare class AnswerMSComponent extends AnswerMasterComponent<Array<number>> implements OnInit {
9
+ export declare class AnswerMSComponent extends AnswerMasterComponent<Array<number>> implements AfterViewInit {
10
10
  #private;
11
11
  question: import("@angular/core").InputSignal<IdbQuestion>;
12
12
  alternativeList: import("@angular/core").InputSignal<IdbAlternative[]>;
@@ -14,7 +14,7 @@ export declare class AnswerMSComponent extends AnswerMasterComponent<Array<numbe
14
14
  onAlternativeClick: import("@angular/core").OutputEmitterRef<number>;
15
15
  readonly answerMSForm: FormGroup<IAnswerMSForm>;
16
16
  constructor();
17
- ngOnInit(): void;
17
+ ngAfterViewInit(): void;
18
18
  static ɵfac: i0.ɵɵFactoryDeclaration<AnswerMSComponent, never>;
19
19
  static ɵcmp: i0.ɵɵComponentDeclaration<AnswerMSComponent, "tp-survey-answer-ms", never, { "question": { "alias": "question"; "required": true; "isSignal": true; }; "alternativeList": { "alias": "alternativeList"; "required": true; "isSignal": true; }; "alternativeMaxAnswersCount": { "alias": "alternativeMaxAnswersCount"; "required": true; "isSignal": true; }; }, { "onAlternativeClick": "onAlternativeClick"; }, never, never, true, never>;
20
20
  }
@@ -1,4 +1,4 @@
1
- import { OnInit } from '@angular/core';
1
+ import { AfterViewInit } from '@angular/core';
2
2
  import { FormArray, FormControl, FormGroup } from '@angular/forms';
3
3
  import { AnswerMasterComponent } from '../answer.master/answer.master.component';
4
4
  import { AnswerSlType } from '../../../tp.survey.type';
@@ -7,14 +7,14 @@ import * as i0 from "@angular/core";
7
7
  interface IAnswerSLForm {
8
8
  [key: string]: FormArray<FormControl<boolean>> | FormControl<number> | FormControl<Array<number>>;
9
9
  }
10
- export declare class AnswerSLComponent extends AnswerMasterComponent<AnswerSlType> implements OnInit {
10
+ export declare class AnswerSLComponent extends AnswerMasterComponent<AnswerSlType> implements AfterViewInit {
11
11
  #private;
12
12
  alternativeList: import("@angular/core").InputSignal<IdbAlternative[]>;
13
13
  sectionList: import("@angular/core").InputSignal<IdbSection[]>;
14
14
  multiSelect: import("@angular/core").InputSignalWithTransform<boolean, unknown>;
15
15
  maxCount: import("@angular/core").InputSignalWithTransform<number, unknown>;
16
16
  answerSLForm: FormGroup<IAnswerSLForm>;
17
- ngOnInit(): void;
17
+ ngAfterViewInit(): void;
18
18
  static ɵfac: i0.ɵɵFactoryDeclaration<AnswerSLComponent, never>;
19
19
  static ɵcmp: i0.ɵɵComponentDeclaration<AnswerSLComponent, "tp-survey-answer-sl", never, { "alternativeList": { "alias": "alternativeList"; "required": true; "isSignal": true; }; "sectionList": { "alias": "sectionList"; "required": true; "isSignal": true; }; "multiSelect": { "alias": "multiSelect"; "required": false; "isSignal": true; }; "maxCount": { "alias": "maxCount"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
20
20
  }
@@ -1,6 +1,6 @@
1
1
  import { OnInit, TemplateRef } from '@angular/core';
2
2
  import { Observable } from 'rxjs';
3
- import { AnswerChange, ICurrentQuestionAnswer, IdbQuestion, IdbQuestionary, IInterviewAutoSaveData, IInterviewData, IInterviewProgressEvent, IInterviewStartedEvent } from '../../tp.survey.interface';
3
+ import { AnswerChange, ICurrentQuestionAnswer, IdbQuestion, IdbQuestionary, IInterviewAutoSaveData, IInterviewData, IInterviewProgressEvent } from '../../tp.survey.interface';
4
4
  import { NavigationButtonDirection, TpSurveyTheme } from '../../tp.survey.type';
5
5
  import { ViewModel } from '../../tp.survey.enum';
6
6
  import * as i0 from "@angular/core";
@@ -16,7 +16,7 @@ export declare class SurveyPlayComponent implements OnInit {
16
16
  theme: import("@angular/core").InputSignal<TpSurveyTheme>;
17
17
  language: import("@angular/core").InputSignal<number>;
18
18
  templateNavigationRef: import("@angular/core").InputSignal<TemplateRef<any> | null | undefined>;
19
- interviewStarted: import("@angular/core").OutputEmitterRef<IInterviewStartedEvent>;
19
+ interviewStarted: import("@angular/core").OutputEmitterRef<void>;
20
20
  interviewFinished: import("@angular/core").OutputEmitterRef<IInterviewData>;
21
21
  interviewProgress: import("@angular/core").OutputEmitterRef<IInterviewProgressEvent>;
22
22
  readonly currentQuestionViewData$: Observable<ICurrentQuestionViewData>;
@@ -0,0 +1,12 @@
1
+ import { PipeTransform } from '@angular/core';
2
+ import { IdbQuestion } from '../../tp.survey.interface';
3
+ import * as i0 from "@angular/core";
4
+ export declare class GetQuestionImageBackgroundCssSizePipe implements PipeTransform {
5
+ #private;
6
+ transform(question: IdbQuestion): {
7
+ height: string | null;
8
+ width: string | null;
9
+ };
10
+ static ɵfac: i0.ɵɵFactoryDeclaration<GetQuestionImageBackgroundCssSizePipe, never>;
11
+ static ɵpipe: i0.ɵɵPipeDeclaration<GetQuestionImageBackgroundCssSizePipe, "getQuestionImageBackgroundCssSize", true>;
12
+ }
@@ -211,10 +211,13 @@ export interface IdbQuestion {
211
211
  AlternativeMarginLeft: number;
212
212
  AlternativeHeight: number;
213
213
  AlternativeWidth: number;
214
- AlternativeBackgroundImageHeight: number;
214
+ AlternativeBackgroundImageHeight: string | null;
215
+ AlternativeBackgroundImageWidth: string | null;
215
216
  AlternativeTabletFontSize: number;
216
217
  TabletViewAlternativeColumnCount: number;
217
218
  MobileViewAlternativeColumnCount: number;
219
+ MobileViewAlternativeBackgroundImageHeight: string | null;
220
+ MobileViewAlternativeBackgroundImageWidth: string | null;
218
221
  MultiSelect: boolean;
219
222
  RequireAllAnswers: boolean;
220
223
  SLSectionMinAnswersCount: number;
@@ -329,6 +332,3 @@ export interface IInterviewProgressEvent {
329
332
  questionGuid: number;
330
333
  interviewData: IInterviewProgressEventData;
331
334
  }
332
- export interface IInterviewStartedEvent {
333
- questionary: IdbQuestionary;
334
- }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@touchpoll/tp-survey",
3
- "version": "0.0.23",
3
+ "version": "0.0.25",
4
4
  "peerDependencies": {
5
5
  "@angular/common": ">=17.0.0",
6
6
  "@angular/core": ">=17.0.0"
@@ -17,8 +17,6 @@
17
17
  },
18
18
  ".": {
19
19
  "types": "./index.d.ts",
20
- "esm2022": "./esm2022/touchpoll-tp-survey.mjs",
21
- "esm": "./esm2022/touchpoll-tp-survey.mjs",
22
20
  "default": "./fesm2022/touchpoll-tp-survey.mjs"
23
21
  }
24
22
  }
@@ -2,7 +2,7 @@
2
2
 
3
3
  @mixin link-survey-checkbox($theme) {
4
4
 
5
- $custom-colors: map-get($theme, custom-colors);
5
+ $custom-colors: map.get($theme, custom-colors);
6
6
 
7
7
  .tp-survey-checkbox{
8
8
  --mdc-checkbox-selected-checkmark-color: #fff;
@@ -21,7 +21,7 @@
21
21
  }
22
22
 
23
23
  &.mat-mdc-checkbox .mdc-checkbox .mdc-checkbox__native-control:enabled:checked~.mdc-checkbox__background{
24
- background-color: map-get($custom-colors, survey-red);
24
+ background-color: map.get($custom-colors, survey-red);
25
25
  border-radius: 8px;
26
26
  border: none ;
27
27
  }
@@ -38,7 +38,7 @@
38
38
  }
39
39
 
40
40
  &.mat-checkbox-checked.mat-accent .mat-checkbox-background {
41
- background-color: map-get($custom-colors, survey-red);
41
+ background-color: map.get($custom-colors, survey-red);
42
42
  border-radius: 8px;
43
43
  }
44
44
 
@@ -79,13 +79,13 @@
79
79
  }
80
80
 
81
81
  &.mat-mdc-checkbox .mdc-checkbox .mdc-checkbox__native-control:enabled:checked~.mdc-checkbox__background{
82
- background-color: map-get($custom-colors, survey-red);
82
+ background-color: map.get($custom-colors, survey-red);
83
83
  border-radius: 8px;
84
84
  border: none ;
85
85
  }
86
86
 
87
87
  &.mat-checkbox-checked.mat-accent .mat-checkbox-background {
88
- background-color: map-get($custom-colors, survey-red);
88
+ background-color: map.get($custom-colors, survey-red);
89
89
  border-radius: 8px;
90
90
  }
91
91
 
@@ -2,7 +2,7 @@
2
2
 
3
3
  @mixin link-survey-radio-button($theme) {
4
4
 
5
- $custom-colors: map-get($theme, custom-colors);
5
+ $custom-colors: map.get($theme, custom-colors);
6
6
 
7
7
  .tp-survey-radio-button{
8
8
 
@@ -11,10 +11,10 @@
11
11
  }
12
12
 
13
13
  //&.mat-mdc-radio-button .mdc-radio .mdc-radio__native-control:enabled+.mdc-radio__background .mdc-radio__outer-circle{
14
- // border-color: map-get($custom-colors, survey-input-border)
14
+ // border-color: map.get($custom-colors, survey-input-border)
15
15
  //}
16
16
  &.mat-mdc-radio-button .mdc-radio .mdc-radio__native-control:enabled+.mdc-radio__background .mdc-radio__inner-circle{
17
- border-color: map-get($custom-colors, survey-red);
17
+ border-color: map.get($custom-colors, survey-red);
18
18
  }
19
19
 
20
20
  > .mat-radio-button.mat-accent .mat-radio-ripple .mat-ripple-element {
@@ -3,7 +3,7 @@
3
3
  @use "component/survey.radio.button" as mixinRadioButton;
4
4
 
5
5
  @mixin link-desktop($theme) {
6
- $custom-colors: map-get($theme, custom-colors);
6
+ $custom-colors: map.get($theme, custom-colors);
7
7
 
8
8
  //@include mixinCheckbox.link-survey-checkbox($theme);
9
9
  //@include mixinRadioButton.link-survey-radio-button($theme);
@@ -18,7 +18,7 @@
18
18
  }
19
19
 
20
20
  .navigation-button{
21
- //color: map-get($custom-colors, survey-desktop-caption-color);
21
+ //color: map.get($custom-colors, survey-desktop-caption-color);
22
22
  .navigation-button-label{
23
23
  font-size: 1.3em;
24
24
  }
@@ -37,17 +37,17 @@
37
37
  gap: 0.5em;
38
38
 
39
39
  .alternative-ss-ms-caption{
40
- color: map-get($custom-colors, survey-font);
40
+ color: map.get($custom-colors, survey-font);
41
41
  font-size: 1.1em;
42
42
  }
43
43
  }
44
44
 
45
45
  .alternative-sl-caption{
46
- color: map-get($custom-colors, survey-font);
46
+ color: map.get($custom-colors, survey-font);
47
47
  }
48
48
 
49
49
  .mobile-view-section-caption{
50
- border-bottom-color: map-get($custom-colors, survey-caption-delimiter);;
50
+ border-bottom-color: map.get($custom-colors, survey-caption-delimiter);;
51
51
  }
52
52
 
53
53
  //
@@ -72,7 +72,7 @@
72
72
  // .QuestionCaptionFont{
73
73
  // font-size: 1.2em;
74
74
  // line-height: 1.25;
75
- // color: map-get($custom-colors, survey-desktop-caption-color);
75
+ // color: map.get($custom-colors, survey-desktop-caption-color);
76
76
  // width: 100%;
77
77
  // text-align: center;
78
78
  // }
@@ -80,7 +80,7 @@
80
80
  // .QuestionCaptionHelperFont{
81
81
  // font-size: 1.1em;
82
82
  // font-style: italic;
83
- // color: map-get($custom-colors, survey-caption-helper);
83
+ // color: map.get($custom-colors, survey-caption-helper);
84
84
  // }
85
85
  //
86
86
  // .AlternativeFont{
@@ -117,13 +117,13 @@
117
117
  // app-answer-additional{
118
118
  //
119
119
  // .mdc-text-field .mdc-text-field__input{
120
- // color: map-get($custom-colors, survey-desktop-input-color);
120
+ // color: map.get($custom-colors, survey-desktop-input-color);
121
121
  // }
122
122
  //
123
123
  // .mdc-text-field--outlined {
124
124
  // //поменяем цвет border
125
125
  // .mdc-notched-outline__leading, .mdc-notched-outline__trailing{
126
- // border-color: map-get($custom-colors, survey-input-border);
126
+ // border-color: map.get($custom-colors, survey-input-border);
127
127
  // }
128
128
  //
129
129
  // //стандартные material input контрлолы сделаем уже.
@@ -7,7 +7,7 @@
7
7
  //@include mixinCheckbox.link-survey-checkbox($theme);
8
8
  //@include mixinRadioButton.link-survey-radio-button($theme);
9
9
  //surface-container secondary-container secondary primary-container
10
- $custom-colors: map-get($theme, custom-colors);
10
+ $custom-colors: map.get($theme, custom-colors);
11
11
  $background-color: mat.get-theme-color($theme, secondary-container);
12
12
  $checked-background-color: mat.get-theme-color($theme, tertiary-container);
13
13
  $color: mat.get-theme-color($theme, on-secondary-container);
@@ -110,7 +110,7 @@
110
110
  display: flex;
111
111
  justify-content: center;
112
112
  align-items: center;
113
- color: map-get($custom-colors, survey-font);
113
+ color: map.get($custom-colors, survey-font);
114
114
  text-align: center;
115
115
  font-size: 1.1em;
116
116
  width: 100%;
@@ -125,7 +125,7 @@
125
125
  //&.mat-mdc-radio-checked, &.mat-mdc-checkbox-checked{
126
126
  // background-color: #e6382f;
127
127
  // .alternative-ss-ms-caption{
128
- // //color: map-get($custom-colors, survey-tablet-font-active-color);
128
+ // //color: map.get($custom-colors, survey-tablet-font-active-color);
129
129
  // }
130
130
  //}
131
131
  }
@@ -3,17 +3,18 @@
3
3
  @use "@angular/material" as mat;
4
4
  @use "sass:map";
5
5
 
6
+
6
7
  @mixin survey-theme($theme) {
7
- $custom-colors: map-get($theme, custom-colors);
8
+ $custom-colors: map.get($theme, custom-colors);
8
9
 
9
10
  &.survey-container-main{
10
- background-color: map-get($custom-colors, survey-background);
11
+ background-color: map.get($custom-colors, survey-background);
11
12
  color: var(--mat-app-text-color);
12
13
  }
13
14
 
14
15
  ::ng-deep {
15
16
  .question-caption-helper-font {
16
- color: map-get($custom-colors, survey-caption-helper);
17
+ color: map.get($custom-colors, survey-caption-helper);
17
18
  }
18
19
  }
19
20
 
@@ -4,12 +4,15 @@
4
4
  @use "theme/rose.red" as roseRed;
5
5
  @use "theme/azure.blue" as azureBlue;
6
6
 
7
- @include mat.core();
7
+ @include mat.elevation-classes();
8
+ @include mat.app-background();
8
9
 
9
10
  .survey-container-main{
10
11
  @include mat.all-component-themes(azureBlue.$theme-azure-blue-light);
11
12
 
12
- font-family: Roboto, "Helvetica Neue", sans-serif;
13
+ &{
14
+ font-family: Roboto, "Helvetica Neue", sans-serif;
15
+ }
13
16
 
14
17
  p{
15
18
  margin: 0;
@@ -1,4 +1,5 @@
1
1
  @use "@angular/material" as mat;
2
+ @use "sass:map";
2
3
 
3
4
  $theme-density: (scale:-1);
4
5
  $theme-typography: (
@@ -6,7 +7,7 @@ $theme-typography: (
6
7
  bold-weight: 900
7
8
  );
8
9
 
9
- $theme-azure-blue-light: map-merge(
10
+ $theme-azure-blue-light: map.merge(
10
11
  mat.define-theme(
11
12
  (
12
13
  color: (
@@ -29,7 +30,7 @@ $theme-azure-blue-light: map-merge(
29
30
  )
30
31
  );
31
32
 
32
- $theme-azure-blue-dark: map-merge(
33
+ $theme-azure-blue-dark: map.merge(
33
34
  mat.define-theme(
34
35
  (
35
36
  color: (
@@ -1,4 +1,6 @@
1
1
  @use "@angular/material" as mat;
2
+ @use "sass:map";
3
+
2
4
 
3
5
  $theme-density: (scale:-1);
4
6
  $theme-typography: (
@@ -6,7 +8,7 @@ $theme-typography: (
6
8
  bold-weight: 900
7
9
  );
8
10
 
9
- $theme-cyan-orange-light: map-merge(
11
+ $theme-cyan-orange-light: map.merge(
10
12
  mat.define-theme(
11
13
  (
12
14
  color: (
@@ -29,7 +31,7 @@ $theme-cyan-orange-light: map-merge(
29
31
  )
30
32
  );
31
33
 
32
- $theme-cyan-orange-dark: map-merge(
34
+ $theme-cyan-orange-dark: map.merge(
33
35
  mat.define-theme(
34
36
  (
35
37
  color: (
@@ -1,4 +1,5 @@
1
1
  @use "@angular/material" as mat;
2
+ @use "sass:map";
2
3
 
3
4
  $theme-density: (scale:-1);
4
5
  $theme-typography: (
@@ -6,7 +7,7 @@ $theme-typography: (
6
7
  bold-weight: 900
7
8
  );
8
9
 
9
- $theme-rose-red-light: map-merge(
10
+ $theme-rose-red-light: map.merge(
10
11
  mat.define-theme(
11
12
  (
12
13
  color: (
@@ -29,7 +30,7 @@ $theme-rose-red-light: map-merge(
29
30
  )
30
31
  );
31
32
 
32
- $theme-rose-red-dark: map-merge(
33
+ $theme-rose-red-dark: map.merge(
33
34
  mat.define-theme(
34
35
  (
35
36
  color: (
@@ -1,49 +0,0 @@
1
- import { Component, forwardRef, input, } from '@angular/core';
2
- import { NG_VALUE_ACCESSOR, ReactiveFormsModule } from '@angular/forms';
3
- import { MatFormField } from '@angular/material/form-field';
4
- import { MatInput } from '@angular/material/input';
5
- import { CdkTextareaAutosize } from '@angular/cdk/text-field';
6
- import { MatCheckbox } from '@angular/material/checkbox';
7
- import { AdditionalAnswerCaptionPositionDirective } from './directive/additional.answer.caption.position/additional.answer.caption.position.directive';
8
- import { AdditionalAnswerType } from '../../../tp.survey.enum';
9
- import * as i0 from "@angular/core";
10
- import * as i1 from "@angular/forms";
11
- export class AnswerAdditionalComponent {
12
- constructor() {
13
- // control = input.required<FormControl<AdditionalAnswer>>();
14
- this.control = input.required();
15
- this.answerType = input.required();
16
- this.caption = input('');
17
- this.numberMinValue = input(null);
18
- this.numberMaxValue = input(null);
19
- this.textMultiline = input(false);
20
- this.captionPosition = input('top');
21
- this.additionalAnswerType = AdditionalAnswerType;
22
- }
23
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: AnswerAdditionalComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
24
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.0.1", type: AnswerAdditionalComponent, isStandalone: true, selector: "tp-survey-answer-additional", inputs: { control: { classPropertyName: "control", publicName: "control", isSignal: true, isRequired: true, transformFunction: null }, answerType: { classPropertyName: "answerType", publicName: "answerType", isSignal: true, isRequired: true, transformFunction: null }, caption: { classPropertyName: "caption", publicName: "caption", isSignal: true, isRequired: false, transformFunction: null }, numberMinValue: { classPropertyName: "numberMinValue", publicName: "numberMinValue", isSignal: true, isRequired: false, transformFunction: null }, numberMaxValue: { classPropertyName: "numberMaxValue", publicName: "numberMaxValue", isSignal: true, isRequired: false, transformFunction: null }, textMultiline: { classPropertyName: "textMultiline", publicName: "textMultiline", isSignal: true, isRequired: false, transformFunction: null }, captionPosition: { classPropertyName: "captionPosition", publicName: "captionPosition", isSignal: true, isRequired: false, transformFunction: null } }, providers: [
25
- {
26
- provide: NG_VALUE_ACCESSOR,
27
- useExisting: forwardRef(() => AnswerAdditionalComponent),
28
- multi: true
29
- },
30
- ], ngImport: i0, template: "<div class=\"container-main\" [tpSurveyAdditionalAnswerCaptionPosition]=\"captionPosition()\" [tpSurveyAdditionalAnswerType]=\"answerType()\" >\r\n <span [innerHTML]= \"caption()\" class=\"answer-caption survey-object-caption\"></span>\r\n @switch (answerType()) {\r\n @case (additionalAnswerType.aatNumber) {\r\n <mat-form-field class=\"tp-survey-input\" appearance=\"outline\" subscriptSizing=\"dynamic\">\r\n <input [formControl]=\"control()\" matInput [step]=\"1\" [min]=\"numberMinValue()\" [max]=\"numberMaxValue()\" type=\"number\">\r\n </mat-form-field>\r\n }\r\n\r\n @case (additionalAnswerType.aatText) {\r\n <mat-form-field appearance=\"outline\" class=\"tp-survey-input\" subscriptSizing=\"dynamic\">\r\n @if (textMultiline()) {\r\n <textarea\r\n [formControl]=\"control()\"\r\n cdkAutosizeMaxRows=\"5\"\r\n cdkAutosizeMinRows=\"3\"\r\n cdkTextareaAutosize matInput>\r\n </textarea>\r\n } @else {\r\n <input [formControl]=\"control()\" matInput type=\"text\">\r\n }\r\n </mat-form-field>\r\n }\r\n @case (additionalAnswerType.aatBoolean) {\r\n <mat-checkbox\r\n [formControl]=\"control()\"\r\n [class.answer-checkbox-center] = \"captionPosition() === 'left' || captionPosition() === 'right'\"\r\n class=\"tp-survey-checkbox\">\r\n </mat-checkbox>\r\n }\r\n }\r\n</div>\r\n", styles: [".container-main{display:flex;flex-wrap:nowrap;flex-direction:column-reverse;align-items:center;min-width:40px;flex:1;flex-basis:0}.container-main{display:inline-flex}.answer-checkbox-center{align-self:center}.caption-align-top{flex-direction:column;align-items:baseline}.caption-align-right{flex-direction:row-reverse;align-items:center}.caption-align-right.answer-type-number .tp-survey-input,.caption-align-right.answer-type-text .tp-survey-input{margin-right:1em}.caption-align-left{flex-direction:row;align-items:center}.caption-align-left.answer-type-number .tp-survey-input,.caption-align-left.answer-type-text .tp-survey-input{margin-left:1em}.caption-align-bottom{flex-direction:column-reverse;align-items:baseline}.answer-type-text{width:100%}.answer-type-text :host{width:100%}.answer-type-text .tp-survey-input{width:100%}.is-number-control{max-width:150px}\n"], dependencies: [{ 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.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: AdditionalAnswerCaptionPositionDirective, selector: "[tpSurveyAdditionalAnswerCaptionPosition]", inputs: ["tpSurveyAdditionalAnswerCaptionPosition", "tpSurveyAdditionalAnswerType"] }, { kind: "directive", type: CdkTextareaAutosize, selector: "textarea[cdkTextareaAutosize]", inputs: ["cdkAutosizeMinRows", "cdkAutosizeMaxRows", "cdkTextareaAutosize", "placeholder"], exportAs: ["cdkTextareaAutosize"] }, { 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"] }] }); }
31
- }
32
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: AnswerAdditionalComponent, decorators: [{
33
- type: Component,
34
- args: [{ selector: 'tp-survey-answer-additional', standalone: true, imports: [
35
- MatFormField,
36
- MatInput,
37
- ReactiveFormsModule,
38
- AdditionalAnswerCaptionPositionDirective,
39
- CdkTextareaAutosize,
40
- MatCheckbox,
41
- ], providers: [
42
- {
43
- provide: NG_VALUE_ACCESSOR,
44
- useExisting: forwardRef(() => AnswerAdditionalComponent),
45
- multi: true
46
- },
47
- ], template: "<div class=\"container-main\" [tpSurveyAdditionalAnswerCaptionPosition]=\"captionPosition()\" [tpSurveyAdditionalAnswerType]=\"answerType()\" >\r\n <span [innerHTML]= \"caption()\" class=\"answer-caption survey-object-caption\"></span>\r\n @switch (answerType()) {\r\n @case (additionalAnswerType.aatNumber) {\r\n <mat-form-field class=\"tp-survey-input\" appearance=\"outline\" subscriptSizing=\"dynamic\">\r\n <input [formControl]=\"control()\" matInput [step]=\"1\" [min]=\"numberMinValue()\" [max]=\"numberMaxValue()\" type=\"number\">\r\n </mat-form-field>\r\n }\r\n\r\n @case (additionalAnswerType.aatText) {\r\n <mat-form-field appearance=\"outline\" class=\"tp-survey-input\" subscriptSizing=\"dynamic\">\r\n @if (textMultiline()) {\r\n <textarea\r\n [formControl]=\"control()\"\r\n cdkAutosizeMaxRows=\"5\"\r\n cdkAutosizeMinRows=\"3\"\r\n cdkTextareaAutosize matInput>\r\n </textarea>\r\n } @else {\r\n <input [formControl]=\"control()\" matInput type=\"text\">\r\n }\r\n </mat-form-field>\r\n }\r\n @case (additionalAnswerType.aatBoolean) {\r\n <mat-checkbox\r\n [formControl]=\"control()\"\r\n [class.answer-checkbox-center] = \"captionPosition() === 'left' || captionPosition() === 'right'\"\r\n class=\"tp-survey-checkbox\">\r\n </mat-checkbox>\r\n }\r\n }\r\n</div>\r\n", styles: [".container-main{display:flex;flex-wrap:nowrap;flex-direction:column-reverse;align-items:center;min-width:40px;flex:1;flex-basis:0}.container-main{display:inline-flex}.answer-checkbox-center{align-self:center}.caption-align-top{flex-direction:column;align-items:baseline}.caption-align-right{flex-direction:row-reverse;align-items:center}.caption-align-right.answer-type-number .tp-survey-input,.caption-align-right.answer-type-text .tp-survey-input{margin-right:1em}.caption-align-left{flex-direction:row;align-items:center}.caption-align-left.answer-type-number .tp-survey-input,.caption-align-left.answer-type-text .tp-survey-input{margin-left:1em}.caption-align-bottom{flex-direction:column-reverse;align-items:baseline}.answer-type-text{width:100%}.answer-type-text :host{width:100%}.answer-type-text .tp-survey-input{width:100%}.is-number-control{max-width:150px}\n"] }]
48
- }] });
49
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5zd2VyLmFkZGl0aW9uYWwuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHAuc3VydmV5L3NyYy9saWIvY29tcG9uZW50L2Fuc3dlci9hbnN3ZXIuYWRkaXRpb25hbC9hbnN3ZXIuYWRkaXRpb25hbC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90cC5zdXJ2ZXkvc3JjL2xpYi9jb21wb25lbnQvYW5zd2VyL2Fuc3dlci5hZGRpdGlvbmFsL2Fuc3dlci5hZGRpdGlvbmFsLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQUUsVUFBVSxFQUFFLEtBQUssR0FBRSxNQUFNLGVBQWUsQ0FBQztBQUM1RCxPQUFPLEVBQWMsaUJBQWlCLEVBQUUsbUJBQW1CLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUNuRixPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0sOEJBQThCLENBQUM7QUFDMUQsT0FBTyxFQUFDLFFBQVEsRUFBQyxNQUFNLHlCQUF5QixDQUFDO0FBRWpELE9BQU8sRUFBQyxtQkFBbUIsRUFBQyxNQUFNLHlCQUF5QixDQUFDO0FBQzVELE9BQU8sRUFBQyxXQUFXLEVBQUMsTUFBTSw0QkFBNEIsQ0FBQztBQUN2RCxPQUFPLEVBQUMsd0NBQXdDLEVBQUMsTUFBTSw2RkFBNkYsQ0FBQztBQUVySixPQUFPLEVBQUMsb0JBQW9CLEVBQUMsTUFBTSx5QkFBeUIsQ0FBQzs7O0FBdUI3RCxNQUFNLE9BQU8seUJBQXlCO0lBckJ0QztRQXNCRSw2REFBNkQ7UUFDN0QsWUFBTyxHQUFHLEtBQUssQ0FBQyxRQUFRLEVBQWlDLENBQUM7UUFDMUQsZUFBVSxHQUFHLEtBQUssQ0FBQyxRQUFRLEVBQXdCLENBQUE7UUFDbkQsWUFBTyxHQUFHLEtBQUssQ0FBVyxFQUFFLENBQUMsQ0FBQztRQUM5QixtQkFBYyxHQUFHLEtBQUssQ0FBZ0IsSUFBSSxDQUFDLENBQUM7UUFDNUMsbUJBQWMsR0FBRyxLQUFLLENBQWdCLElBQUksQ0FBQyxDQUFDO1FBQzVDLGtCQUFhLEdBQUcsS0FBSyxDQUFVLEtBQUssQ0FBQyxDQUFDO1FBQ3RDLG9CQUFlLEdBQUcsS0FBSyxDQUFrQyxLQUFLLENBQUMsQ0FBQztRQUNoRSx5QkFBb0IsR0FBRyxvQkFBb0IsQ0FBQztLQUM3Qzs4R0FWWSx5QkFBeUI7a0dBQXpCLHlCQUF5QixtaUNBUnpCO1lBQ1Q7Z0JBQ0UsT0FBTyxFQUFFLGlCQUFpQjtnQkFDMUIsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyx5QkFBeUIsQ0FBQztnQkFDeEQsS0FBSyxFQUFFLElBQUk7YUFDWjtTQUNGLDBCQzlCSCw4MENBZ0NBLGc2QkRmSSxZQUFZLDRMQUNaLFFBQVEsZ1VBQ1IsbUJBQW1CLGttQ0FDbkIsd0NBQXdDLDJLQUN4QyxtQkFBbUIseU1BQ25CLFdBQVc7OzJGQVVGLHlCQUF5QjtrQkFyQnJDLFNBQVM7K0JBQ0UsNkJBQTZCLGNBRzNCLElBQUksV0FDUDt3QkFDUCxZQUFZO3dCQUNaLFFBQVE7d0JBQ1IsbUJBQW1CO3dCQUNuQix3Q0FBd0M7d0JBQ3hDLG1CQUFtQjt3QkFDbkIsV0FBVztxQkFDWixhQUNVO3dCQUNUOzRCQUNFLE9BQU8sRUFBRSxpQkFBaUI7NEJBQzFCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLDBCQUEwQixDQUFDOzRCQUN4RCxLQUFLLEVBQUUsSUFBSTt5QkFDWjtxQkFDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q29tcG9uZW50LCBmb3J3YXJkUmVmLCBpbnB1dCx9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQge0Zvcm1Db250cm9sLCBOR19WQUxVRV9BQ0NFU1NPUiwgUmVhY3RpdmVGb3Jtc01vZHVsZX0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQge01hdEZvcm1GaWVsZH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZm9ybS1maWVsZCc7XHJcbmltcG9ydCB7TWF0SW5wdXR9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2lucHV0JztcclxuaW1wb3J0IHtTYWZlSHRtbH0gZnJvbSAnQGFuZ3VsYXIvcGxhdGZvcm0tYnJvd3Nlcic7XHJcbmltcG9ydCB7Q2RrVGV4dGFyZWFBdXRvc2l6ZX0gZnJvbSAnQGFuZ3VsYXIvY2RrL3RleHQtZmllbGQnO1xyXG5pbXBvcnQge01hdENoZWNrYm94fSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9jaGVja2JveCc7XHJcbmltcG9ydCB7QWRkaXRpb25hbEFuc3dlckNhcHRpb25Qb3NpdGlvbkRpcmVjdGl2ZX0gZnJvbSAnLi9kaXJlY3RpdmUvYWRkaXRpb25hbC5hbnN3ZXIuY2FwdGlvbi5wb3NpdGlvbi9hZGRpdGlvbmFsLmFuc3dlci5jYXB0aW9uLnBvc2l0aW9uLmRpcmVjdGl2ZSc7XHJcbmltcG9ydCB7QWRkaXRpb25hbEFuc3dlciwgQWRkaXRpb25hbEFuc3dlckNhcHRpb25Qb3NpdGlvbn0gZnJvbSAnLi4vLi4vLi4vdHAuc3VydmV5LnR5cGUnO1xyXG5pbXBvcnQge0FkZGl0aW9uYWxBbnN3ZXJUeXBlfSBmcm9tICcuLi8uLi8uLi90cC5zdXJ2ZXkuZW51bSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ3RwLXN1cnZleS1hbnN3ZXItYWRkaXRpb25hbCcsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2Fuc3dlci5hZGRpdGlvbmFsLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9hbnN3ZXIuYWRkaXRpb25hbC5jb21wb25lbnQuc2NzcyddLFxyXG4gIHN0YW5kYWxvbmU6IHRydWUsXHJcbiAgaW1wb3J0czogW1xyXG4gICAgTWF0Rm9ybUZpZWxkLFxyXG4gICAgTWF0SW5wdXQsXHJcbiAgICBSZWFjdGl2ZUZvcm1zTW9kdWxlLFxyXG4gICAgQWRkaXRpb25hbEFuc3dlckNhcHRpb25Qb3NpdGlvbkRpcmVjdGl2ZSxcclxuICAgIENka1RleHRhcmVhQXV0b3NpemUsXHJcbiAgICBNYXRDaGVja2JveCxcclxuICBdLFxyXG4gIHByb3ZpZGVyczogW1xyXG4gICAge1xyXG4gICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcclxuICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gQW5zd2VyQWRkaXRpb25hbENvbXBvbmVudCksXHJcbiAgICAgIG11bHRpOiB0cnVlXHJcbiAgICB9LFxyXG4gIF0sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBBbnN3ZXJBZGRpdGlvbmFsQ29tcG9uZW50IHsgLy9Db250cm9sVmFsdWVBY2Nlc3NvclxyXG4gIC8vIGNvbnRyb2wgPSBpbnB1dC5yZXF1aXJlZDxGb3JtQ29udHJvbDxBZGRpdGlvbmFsQW5zd2VyPj4oKTtcclxuICBjb250cm9sID0gaW5wdXQucmVxdWlyZWQ8Rm9ybUNvbnRyb2w8QWRkaXRpb25hbEFuc3dlcj4+KCk7XHJcbiAgYW5zd2VyVHlwZSA9IGlucHV0LnJlcXVpcmVkPEFkZGl0aW9uYWxBbnN3ZXJUeXBlPigpXHJcbiAgY2FwdGlvbiA9IGlucHV0PFNhZmVIdG1sPignJyk7XHJcbiAgbnVtYmVyTWluVmFsdWUgPSBpbnB1dDxudW1iZXIgfCBudWxsPihudWxsKTtcclxuICBudW1iZXJNYXhWYWx1ZSA9IGlucHV0PG51bWJlciB8IG51bGw+KG51bGwpO1xyXG4gIHRleHRNdWx0aWxpbmUgPSBpbnB1dDxib29sZWFuPihmYWxzZSk7XHJcbiAgY2FwdGlvblBvc2l0aW9uID0gaW5wdXQ8QWRkaXRpb25hbEFuc3dlckNhcHRpb25Qb3NpdGlvbj4oJ3RvcCcpO1xyXG4gIGFkZGl0aW9uYWxBbnN3ZXJUeXBlID0gQWRkaXRpb25hbEFuc3dlclR5cGU7XHJcbn1cclxuIiwiPGRpdiBjbGFzcz1cImNvbnRhaW5lci1tYWluXCIgW3RwU3VydmV5QWRkaXRpb25hbEFuc3dlckNhcHRpb25Qb3NpdGlvbl09XCJjYXB0aW9uUG9zaXRpb24oKVwiIFt0cFN1cnZleUFkZGl0aW9uYWxBbnN3ZXJUeXBlXT1cImFuc3dlclR5cGUoKVwiID5cclxuIDxzcGFuIFtpbm5lckhUTUxdPSBcImNhcHRpb24oKVwiIGNsYXNzPVwiYW5zd2VyLWNhcHRpb24gc3VydmV5LW9iamVjdC1jYXB0aW9uXCI+PC9zcGFuPlxyXG4gQHN3aXRjaCAoYW5zd2VyVHlwZSgpKSB7XHJcbiAgQGNhc2UgKGFkZGl0aW9uYWxBbnN3ZXJUeXBlLmFhdE51bWJlcikge1xyXG4gICA8bWF0LWZvcm0tZmllbGQgY2xhc3M9XCJ0cC1zdXJ2ZXktaW5wdXRcIiBhcHBlYXJhbmNlPVwib3V0bGluZVwiIHN1YnNjcmlwdFNpemluZz1cImR5bmFtaWNcIj5cclxuICAgIDxpbnB1dCBbZm9ybUNvbnRyb2xdPVwiY29udHJvbCgpXCIgbWF0SW5wdXQgW3N0ZXBdPVwiMVwiIFttaW5dPVwibnVtYmVyTWluVmFsdWUoKVwiIFttYXhdPVwibnVtYmVyTWF4VmFsdWUoKVwiIHR5cGU9XCJudW1iZXJcIj5cclxuICAgPC9tYXQtZm9ybS1maWVsZD5cclxuICB9XHJcblxyXG4gIEBjYXNlIChhZGRpdGlvbmFsQW5zd2VyVHlwZS5hYXRUZXh0KSB7XHJcbiAgIDxtYXQtZm9ybS1maWVsZCBhcHBlYXJhbmNlPVwib3V0bGluZVwiIGNsYXNzPVwidHAtc3VydmV5LWlucHV0XCIgc3Vic2NyaXB0U2l6aW5nPVwiZHluYW1pY1wiPlxyXG4gICAgQGlmICh0ZXh0TXVsdGlsaW5lKCkpIHtcclxuICAgICA8dGV4dGFyZWFcclxuICAgICAgW2Zvcm1Db250cm9sXT1cImNvbnRyb2woKVwiXHJcbiAgICAgIGNka0F1dG9zaXplTWF4Um93cz1cIjVcIlxyXG4gICAgICBjZGtBdXRvc2l6ZU1pblJvd3M9XCIzXCJcclxuICAgICAgY2RrVGV4dGFyZWFBdXRvc2l6ZSBtYXRJbnB1dD5cclxuICAgICA8L3RleHRhcmVhPlxyXG4gICAgfSBAZWxzZSB7XHJcbiAgICAgPGlucHV0IFtmb3JtQ29udHJvbF09XCJjb250cm9sKClcIiAgbWF0SW5wdXQgdHlwZT1cInRleHRcIj5cclxuICAgIH1cclxuICAgPC9tYXQtZm9ybS1maWVsZD5cclxuICB9XHJcbiAgQGNhc2UgKGFkZGl0aW9uYWxBbnN3ZXJUeXBlLmFhdEJvb2xlYW4pIHtcclxuICAgPG1hdC1jaGVja2JveFxyXG4gICAgW2Zvcm1Db250cm9sXT1cImNvbnRyb2woKVwiXHJcbiAgICBbY2xhc3MuYW5zd2VyLWNoZWNrYm94LWNlbnRlcl0gPSBcImNhcHRpb25Qb3NpdGlvbigpID09PSAnbGVmdCcgfHwgY2FwdGlvblBvc2l0aW9uKCkgPT09ICdyaWdodCdcIlxyXG4gICAgY2xhc3M9XCJ0cC1zdXJ2ZXktY2hlY2tib3hcIj5cclxuICAgPC9tYXQtY2hlY2tib3g+XHJcbiAgfVxyXG4gfVxyXG48L2Rpdj5cclxuIl19
@@ -1,61 +0,0 @@
1
- import { Directive, HostBinding, input } from '@angular/core';
2
- import { AdditionalAnswerType } from '../../../../../tp.survey.enum';
3
- import * as i0 from "@angular/core";
4
- export class AdditionalAnswerCaptionPositionDirective {
5
- constructor() {
6
- this.tpSurveyAdditionalAnswerCaptionPosition = input();
7
- this.tpSurveyAdditionalAnswerType = input();
8
- }
9
- get classBottom() {
10
- return this.tpSurveyAdditionalAnswerCaptionPosition() === 'bottom';
11
- }
12
- get classTop() {
13
- return this.tpSurveyAdditionalAnswerCaptionPosition() === 'top';
14
- }
15
- get classLeft() {
16
- return this.tpSurveyAdditionalAnswerCaptionPosition() === 'left';
17
- }
18
- get classRight() {
19
- return this.tpSurveyAdditionalAnswerCaptionPosition() === 'right';
20
- }
21
- get classTypeNumber() {
22
- return this.tpSurveyAdditionalAnswerType() === AdditionalAnswerType.aatNumber;
23
- }
24
- get classTypeText() {
25
- return this.tpSurveyAdditionalAnswerType() === AdditionalAnswerType.aatText;
26
- }
27
- get classTypeBoolean() {
28
- return this.tpSurveyAdditionalAnswerType() === AdditionalAnswerType.aatBoolean;
29
- }
30
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: AdditionalAnswerCaptionPositionDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
31
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "18.0.1", type: AdditionalAnswerCaptionPositionDirective, isStandalone: true, selector: "[tpSurveyAdditionalAnswerCaptionPosition]", inputs: { tpSurveyAdditionalAnswerCaptionPosition: { classPropertyName: "tpSurveyAdditionalAnswerCaptionPosition", publicName: "tpSurveyAdditionalAnswerCaptionPosition", isSignal: true, isRequired: false, transformFunction: null }, tpSurveyAdditionalAnswerType: { classPropertyName: "tpSurveyAdditionalAnswerType", publicName: "tpSurveyAdditionalAnswerType", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class.caption-align-bottom": "this.classBottom", "class.caption-align-top": "this.classTop", "class.caption-align-left": "this.classLeft", "class.caption-align-right": "this.classRight", "class.answer-type-number": "this.classTypeNumber", "class.answer-type-text": "this.classTypeText", "class.answer-type-boolean": "this.classTypeBoolean" } }, ngImport: i0 }); }
32
- }
33
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: AdditionalAnswerCaptionPositionDirective, decorators: [{
34
- type: Directive,
35
- args: [{
36
- selector: '[tpSurveyAdditionalAnswerCaptionPosition]',
37
- standalone: true
38
- }]
39
- }], propDecorators: { classBottom: [{
40
- type: HostBinding,
41
- args: ["class.caption-align-bottom"]
42
- }], classTop: [{
43
- type: HostBinding,
44
- args: ["class.caption-align-top"]
45
- }], classLeft: [{
46
- type: HostBinding,
47
- args: ["class.caption-align-left"]
48
- }], classRight: [{
49
- type: HostBinding,
50
- args: ["class.caption-align-right"]
51
- }], classTypeNumber: [{
52
- type: HostBinding,
53
- args: ["class.answer-type-number"]
54
- }], classTypeText: [{
55
- type: HostBinding,
56
- args: ["class.answer-type-text"]
57
- }], classTypeBoolean: [{
58
- type: HostBinding,
59
- args: ["class.answer-type-boolean"]
60
- }] } });
61
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRkaXRpb25hbC5hbnN3ZXIuY2FwdGlvbi5wb3NpdGlvbi5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90cC5zdXJ2ZXkvc3JjL2xpYi9jb21wb25lbnQvYW5zd2VyL2Fuc3dlci5hZGRpdGlvbmFsL2RpcmVjdGl2ZS9hZGRpdGlvbmFsLmFuc3dlci5jYXB0aW9uLnBvc2l0aW9uL2FkZGl0aW9uYWwuYW5zd2VyLmNhcHRpb24ucG9zaXRpb24uZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUU1RCxPQUFPLEVBQUMsb0JBQW9CLEVBQUMsTUFBTSwrQkFBK0IsQ0FBQzs7QUFNbkUsTUFBTSxPQUFPLHdDQUF3QztJQUpyRDtRQUtFLDRDQUF1QyxHQUFHLEtBQUssRUFBbUMsQ0FBQztRQUNuRixpQ0FBNEIsR0FBRyxLQUFLLEVBQXdCLENBQUM7S0F5QjlEO0lBeEJDLElBQXNELFdBQVc7UUFDL0QsT0FBTyxJQUFJLENBQUMsdUNBQXVDLEVBQUUsS0FBSyxRQUFRLENBQUM7SUFDckUsQ0FBQztJQUNELElBQW1ELFFBQVE7UUFDekQsT0FBTyxJQUFJLENBQUMsdUNBQXVDLEVBQUUsS0FBSyxLQUFLLENBQUM7SUFDbEUsQ0FBQztJQUNELElBQW9ELFNBQVM7UUFDM0QsT0FBTyxJQUFJLENBQUMsdUNBQXVDLEVBQUUsS0FBSyxNQUFNLENBQUM7SUFDbkUsQ0FBQztJQUNELElBQXFELFVBQVU7UUFDN0QsT0FBTyxJQUFJLENBQUMsdUNBQXVDLEVBQUUsS0FBSyxPQUFPLENBQUM7SUFDcEUsQ0FBQztJQUVELElBQW9ELGVBQWU7UUFDakUsT0FBTyxJQUFJLENBQUMsNEJBQTRCLEVBQUUsS0FBSyxvQkFBb0IsQ0FBQyxTQUFTLENBQUM7SUFDaEYsQ0FBQztJQUVELElBQWtELGFBQWE7UUFDN0QsT0FBTyxJQUFJLENBQUMsNEJBQTRCLEVBQUUsS0FBSyxvQkFBb0IsQ0FBQyxPQUFPLENBQUM7SUFDOUUsQ0FBQztJQUVELElBQXFELGdCQUFnQjtRQUNuRSxPQUFPLElBQUksQ0FBQyw0QkFBNEIsRUFBRSxLQUFLLG9CQUFvQixDQUFDLFVBQVUsQ0FBQztJQUNqRixDQUFDOzhHQTFCVSx3Q0FBd0M7a0dBQXhDLHdDQUF3Qzs7MkZBQXhDLHdDQUF3QztrQkFKcEQsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsMkNBQTJDO29CQUNyRCxVQUFVLEVBQUUsSUFBSTtpQkFDakI7OEJBSXVELFdBQVc7c0JBQWhFLFdBQVc7dUJBQUMsNEJBQTRCO2dCQUdVLFFBQVE7c0JBQTFELFdBQVc7dUJBQUMseUJBQXlCO2dCQUdjLFNBQVM7c0JBQTVELFdBQVc7dUJBQUMsMEJBQTBCO2dCQUdjLFVBQVU7c0JBQTlELFdBQVc7dUJBQUMsMkJBQTJCO2dCQUlZLGVBQWU7c0JBQWxFLFdBQVc7dUJBQUMsMEJBQTBCO2dCQUlXLGFBQWE7c0JBQTlELFdBQVc7dUJBQUMsd0JBQXdCO2dCQUlnQixnQkFBZ0I7c0JBQXBFLFdBQVc7dUJBQUMsMkJBQTJCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtEaXJlY3RpdmUsIEhvc3RCaW5kaW5nLCBpbnB1dH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7QWRkaXRpb25hbEFuc3dlckNhcHRpb25Qb3NpdGlvbn0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vdHAuc3VydmV5LnR5cGUnO1xyXG5pbXBvcnQge0FkZGl0aW9uYWxBbnN3ZXJUeXBlfSBmcm9tICcuLi8uLi8uLi8uLi8uLi90cC5zdXJ2ZXkuZW51bSc7XHJcblxyXG5ARGlyZWN0aXZlKHtcclxuICBzZWxlY3RvcjogJ1t0cFN1cnZleUFkZGl0aW9uYWxBbnN3ZXJDYXB0aW9uUG9zaXRpb25dJyxcclxuICBzdGFuZGFsb25lOiB0cnVlXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBBZGRpdGlvbmFsQW5zd2VyQ2FwdGlvblBvc2l0aW9uRGlyZWN0aXZle1xyXG4gIHRwU3VydmV5QWRkaXRpb25hbEFuc3dlckNhcHRpb25Qb3NpdGlvbiA9IGlucHV0PEFkZGl0aW9uYWxBbnN3ZXJDYXB0aW9uUG9zaXRpb24+KCk7XHJcbiAgdHBTdXJ2ZXlBZGRpdGlvbmFsQW5zd2VyVHlwZSA9IGlucHV0PEFkZGl0aW9uYWxBbnN3ZXJUeXBlPigpO1xyXG4gIEBIb3N0QmluZGluZyhcImNsYXNzLmNhcHRpb24tYWxpZ24tYm90dG9tXCIpIHB1YmxpYyBnZXQgY2xhc3NCb3R0b20oKSB7XHJcbiAgICByZXR1cm4gdGhpcy50cFN1cnZleUFkZGl0aW9uYWxBbnN3ZXJDYXB0aW9uUG9zaXRpb24oKSA9PT0gJ2JvdHRvbSc7XHJcbiAgfVxyXG4gIEBIb3N0QmluZGluZyhcImNsYXNzLmNhcHRpb24tYWxpZ24tdG9wXCIpIHB1YmxpYyBnZXQgY2xhc3NUb3AoKSB7XHJcbiAgICByZXR1cm4gdGhpcy50cFN1cnZleUFkZGl0aW9uYWxBbnN3ZXJDYXB0aW9uUG9zaXRpb24oKSA9PT0gJ3RvcCc7XHJcbiAgfVxyXG4gIEBIb3N0QmluZGluZyhcImNsYXNzLmNhcHRpb24tYWxpZ24tbGVmdFwiKSBwdWJsaWMgZ2V0IGNsYXNzTGVmdCgpIHtcclxuICAgIHJldHVybiB0aGlzLnRwU3VydmV5QWRkaXRpb25hbEFuc3dlckNhcHRpb25Qb3NpdGlvbigpID09PSAnbGVmdCc7XHJcbiAgfVxyXG4gIEBIb3N0QmluZGluZyhcImNsYXNzLmNhcHRpb24tYWxpZ24tcmlnaHRcIikgcHVibGljIGdldCBjbGFzc1JpZ2h0KCkge1xyXG4gICAgcmV0dXJuIHRoaXMudHBTdXJ2ZXlBZGRpdGlvbmFsQW5zd2VyQ2FwdGlvblBvc2l0aW9uKCkgPT09ICdyaWdodCc7XHJcbiAgfVxyXG4gIFxyXG4gIEBIb3N0QmluZGluZyhcImNsYXNzLmFuc3dlci10eXBlLW51bWJlclwiKSBwdWJsaWMgZ2V0IGNsYXNzVHlwZU51bWJlcigpIHtcclxuICAgIHJldHVybiB0aGlzLnRwU3VydmV5QWRkaXRpb25hbEFuc3dlclR5cGUoKSA9PT0gQWRkaXRpb25hbEFuc3dlclR5cGUuYWF0TnVtYmVyO1xyXG4gIH1cclxuICBcclxuICBASG9zdEJpbmRpbmcoXCJjbGFzcy5hbnN3ZXItdHlwZS10ZXh0XCIpIHB1YmxpYyBnZXQgY2xhc3NUeXBlVGV4dCgpIHtcclxuICAgIHJldHVybiB0aGlzLnRwU3VydmV5QWRkaXRpb25hbEFuc3dlclR5cGUoKSA9PT0gQWRkaXRpb25hbEFuc3dlclR5cGUuYWF0VGV4dDtcclxuICB9XHJcbiAgXHJcbiAgQEhvc3RCaW5kaW5nKFwiY2xhc3MuYW5zd2VyLXR5cGUtYm9vbGVhblwiKSBwdWJsaWMgZ2V0IGNsYXNzVHlwZUJvb2xlYW4oKSB7XHJcbiAgICByZXR1cm4gdGhpcy50cFN1cnZleUFkZGl0aW9uYWxBbnN3ZXJUeXBlKCkgPT09IEFkZGl0aW9uYWxBbnN3ZXJUeXBlLmFhdEJvb2xlYW47XHJcbiAgfVxyXG59XHJcbiJdfQ==
@@ -1,30 +0,0 @@
1
- import { Component, forwardRef } from '@angular/core';
2
- import { NG_VALUE_ACCESSOR } from '@angular/forms';
3
- import { AnswerMasterComponent } from '../answer.master/answer.master.component';
4
- import * as i0 from "@angular/core";
5
- export class AnswerEndComponent extends AnswerMasterComponent {
6
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: AnswerEndComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
7
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.1", type: AnswerEndComponent, isStandalone: true, selector: "tp-survey-answer-end", providers: [
8
- {
9
- provide: NG_VALUE_ACCESSOR,
10
- useExisting: forwardRef(() => AnswerEndComponent),
11
- multi: true
12
- },
13
- ], usesInheritance: true, ngImport: i0, template: '', isInline: true }); }
14
- }
15
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: AnswerEndComponent, decorators: [{
16
- type: Component,
17
- args: [{
18
- selector: 'tp-survey-answer-end',
19
- template: '',
20
- standalone: true,
21
- providers: [
22
- {
23
- provide: NG_VALUE_ACCESSOR,
24
- useExisting: forwardRef(() => AnswerEndComponent),
25
- multi: true
26
- },
27
- ],
28
- }]
29
- }] });
30
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5zd2VyLmVuZC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90cC5zdXJ2ZXkvc3JjL2xpYi9jb21wb25lbnQvYW5zd2VyL2Fuc3dlci5lbmQvYW5zd2VyLmVuZC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFNBQVMsRUFBRSxVQUFVLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDcEQsT0FBTyxFQUFDLGlCQUFpQixFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDakQsT0FBTyxFQUFDLHFCQUFxQixFQUFDLE1BQU0sMENBQTBDLENBQUM7O0FBZS9FLE1BQU0sT0FBTyxrQkFBbUIsU0FBUSxxQkFBNkI7OEdBQXhELGtCQUFrQjtrR0FBbEIsa0JBQWtCLG1FQVRsQjtZQUNUO2dCQUNFLE9BQU8sRUFBRSxpQkFBaUI7Z0JBQzFCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsa0JBQWtCLENBQUM7Z0JBQ2pELEtBQUssRUFBRSxJQUFJO2FBQ1o7U0FDRixpREFSUyxFQUFFOzsyRkFXRCxrQkFBa0I7a0JBYjlCLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLHNCQUFzQjtvQkFDaEMsUUFBUSxFQUFFLEVBQUU7b0JBQ1osVUFBVSxFQUFFLElBQUk7b0JBQ2hCLFNBQVMsRUFBRTt3QkFDVDs0QkFDRSxPQUFPLEVBQUUsaUJBQWlCOzRCQUMxQixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxtQkFBbUIsQ0FBQzs0QkFDakQsS0FBSyxFQUFFLElBQUk7eUJBQ1o7cUJBQ0Y7aUJBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NvbXBvbmVudCwgZm9yd2FyZFJlZn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7TkdfVkFMVUVfQUNDRVNTT1J9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHtBbnN3ZXJNYXN0ZXJDb21wb25lbnR9IGZyb20gJy4uL2Fuc3dlci5tYXN0ZXIvYW5zd2VyLm1hc3Rlci5jb21wb25lbnQnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICd0cC1zdXJ2ZXktYW5zd2VyLWVuZCcsXHJcbiAgdGVtcGxhdGU6ICcnLFxyXG4gIHN0YW5kYWxvbmU6IHRydWUsXHJcbiAgcHJvdmlkZXJzOiBbXHJcbiAgICB7XHJcbiAgICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxyXG4gICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBBbnN3ZXJFbmRDb21wb25lbnQpLFxyXG4gICAgICBtdWx0aTogdHJ1ZVxyXG4gICAgfSxcclxuICBdLFxyXG59KVxyXG5cclxuZXhwb3J0IGNsYXNzIEFuc3dlckVuZENvbXBvbmVudCBleHRlbmRzIEFuc3dlck1hc3RlckNvbXBvbmVudDxudW1iZXI+e1xyXG59XHJcbiJdfQ==
@@ -1,30 +0,0 @@
1
- import { Component, forwardRef } from '@angular/core';
2
- import { NG_VALUE_ACCESSOR } from '@angular/forms';
3
- import { AnswerMasterComponent } from '../answer.master/answer.master.component';
4
- import * as i0 from "@angular/core";
5
- export class AnswerInfoComponent extends AnswerMasterComponent {
6
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: AnswerInfoComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
7
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.1", type: AnswerInfoComponent, isStandalone: true, selector: "tp-survey-answer-info", providers: [
8
- {
9
- provide: NG_VALUE_ACCESSOR,
10
- useExisting: forwardRef(() => AnswerInfoComponent),
11
- multi: true
12
- },
13
- ], usesInheritance: true, ngImport: i0, template: '', isInline: true }); }
14
- }
15
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: AnswerInfoComponent, decorators: [{
16
- type: Component,
17
- args: [{
18
- selector: 'tp-survey-answer-info',
19
- template: '',
20
- standalone: true,
21
- providers: [
22
- {
23
- provide: NG_VALUE_ACCESSOR,
24
- useExisting: forwardRef(() => AnswerInfoComponent),
25
- multi: true
26
- },
27
- ],
28
- }]
29
- }] });
30
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5zd2VyLmluZm8uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHAuc3VydmV5L3NyYy9saWIvY29tcG9uZW50L2Fuc3dlci9hbnN3ZXIuaW5mby9hbnN3ZXIuaW5mby5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFNBQVMsRUFBRSxVQUFVLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDcEQsT0FBTyxFQUFDLGlCQUFpQixFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDakQsT0FBTyxFQUFDLHFCQUFxQixFQUFDLE1BQU0sMENBQTBDLENBQUM7O0FBYy9FLE1BQU0sT0FBTyxtQkFBb0IsU0FBUSxxQkFBNkI7OEdBQXpELG1CQUFtQjtrR0FBbkIsbUJBQW1CLG9FQVJuQjtZQUNUO2dCQUNFLE9BQU8sRUFBRSxpQkFBaUI7Z0JBQzFCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsbUJBQW1CLENBQUM7Z0JBQ2xELEtBQUssRUFBRSxJQUFJO2FBQ1o7U0FDRixpREFSUyxFQUFFOzsyRkFVRCxtQkFBbUI7a0JBWi9CLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLHVCQUF1QjtvQkFDakMsUUFBUSxFQUFFLEVBQUU7b0JBQ1osVUFBVSxFQUFFLElBQUk7b0JBQ2hCLFNBQVMsRUFBRTt3QkFDVDs0QkFDRSxPQUFPLEVBQUUsaUJBQWlCOzRCQUMxQixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxvQkFBb0IsQ0FBQzs0QkFDbEQsS0FBSyxFQUFFLElBQUk7eUJBQ1o7cUJBQ0Y7aUJBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NvbXBvbmVudCwgZm9yd2FyZFJlZn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7TkdfVkFMVUVfQUNDRVNTT1J9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHtBbnN3ZXJNYXN0ZXJDb21wb25lbnR9IGZyb20gJy4uL2Fuc3dlci5tYXN0ZXIvYW5zd2VyLm1hc3Rlci5jb21wb25lbnQnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICd0cC1zdXJ2ZXktYW5zd2VyLWluZm8nLFxyXG4gIHRlbXBsYXRlOiAnJyxcclxuICBzdGFuZGFsb25lOiB0cnVlLFxyXG4gIHByb3ZpZGVyczogW1xyXG4gICAge1xyXG4gICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcclxuICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gQW5zd2VySW5mb0NvbXBvbmVudCksXHJcbiAgICAgIG11bHRpOiB0cnVlXHJcbiAgICB9LFxyXG4gIF0sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBBbnN3ZXJJbmZvQ29tcG9uZW50IGV4dGVuZHMgQW5zd2VyTWFzdGVyQ29tcG9uZW50PG51bWJlcj57XHJcbn1cclxuXHJcblxyXG4iXX0=