info-library 2.16.0-beta → 3.0.0-beta

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 (79) hide show
  1. package/controls/autocomplete/autocomplete.component.d.ts +2 -1
  2. package/controls/date/date.component.d.ts +2 -1
  3. package/controls/date-month/date-month.component.d.ts +2 -1
  4. package/controls/grid/grid.component.d.ts +5 -5
  5. package/controls/input/input.component.d.ts +13 -3
  6. package/controls/multi-select/multi-select.component.d.ts +3 -1
  7. package/controls/select/select.component.d.ts +2 -1
  8. package/directives/unmask.directive.d.ts +2 -1
  9. package/esm2022/controls/alert/alert.component.mjs +8 -10
  10. package/esm2022/controls/autocomplete/autocomplete.component.mjs +33 -26
  11. package/esm2022/controls/big-checkbox/big-checkbox.component.mjs +27 -25
  12. package/esm2022/controls/card/card.component.mjs +12 -6
  13. package/esm2022/controls/card-menu/card-menu.component.mjs +14 -16
  14. package/esm2022/controls/checkbox/checkbox.component.mjs +13 -13
  15. package/esm2022/controls/chips/chips.component.mjs +12 -11
  16. package/esm2022/controls/date/date.component.mjs +64 -32
  17. package/esm2022/controls/date-month/date-month.component.mjs +64 -31
  18. package/esm2022/controls/editor/editor.component.mjs +35 -31
  19. package/esm2022/controls/grid/grid.component.mjs +529 -511
  20. package/esm2022/controls/input/input.component.mjs +146 -71
  21. package/esm2022/controls/input-list/input-list.component.mjs +16 -15
  22. package/esm2022/controls/list-checkbox/list-checkbox.component.mjs +16 -12
  23. package/esm2022/controls/message/message.component.mjs +9 -11
  24. package/esm2022/controls/multi-select/multi-select.component.mjs +35 -22
  25. package/esm2022/controls/paginator/paginator.component.mjs +15 -16
  26. package/esm2022/controls/select/select.component.mjs +32 -23
  27. package/esm2022/controls/timeline/timeline.component.mjs +15 -16
  28. package/esm2022/directives/mask.directive.mjs +17 -8
  29. package/esm2022/directives/unmask.directive.mjs +14 -7
  30. package/esm2022/info-library.module.mjs +10 -5
  31. package/esm2022/layouts/dialog/dialog.component.mjs +10 -6
  32. package/esm2022/layouts/filter/filter.component.mjs +179 -0
  33. package/esm2022/layouts/loading/loading.component.mjs +7 -9
  34. package/esm2022/layouts/main/main.component.mjs +101 -54
  35. package/esm2022/layouts/modal/modal.component.mjs +37 -22
  36. package/esm2022/layouts/pagebar/pagebar.component.mjs +125 -97
  37. package/esm2022/layouts/sidebar/sidebar.component.mjs +152 -100
  38. package/esm2022/layouts/topbar/topbar.component.mjs +417 -253
  39. package/esm2022/layouts/topmenu/topmenu.component.mjs +20 -12
  40. package/esm2022/model/app-config.model.mjs +12 -12
  41. package/esm2022/model/data-access.model.mjs +10 -8
  42. package/esm2022/model/dialog-result.model.mjs +3 -2
  43. package/esm2022/model/dialog.model.mjs +13 -14
  44. package/esm2022/model/form-prop.model.mjs +8 -6
  45. package/esm2022/model/grid-button.model.mjs +12 -7
  46. package/esm2022/model/last-search.model.mjs +5 -7
  47. package/esm2022/model/login.model.mjs +4 -2
  48. package/esm2022/model/method-grid-button.model.mjs +4 -2
  49. package/esm2022/model/notification.model.mjs +9 -5
  50. package/esm2022/model/pagebar-buttons.model.mjs +6 -6
  51. package/esm2022/model/permission.model.mjs +4 -1
  52. package/esm2022/model/platform.model.mjs +13 -14
  53. package/esm2022/model/session.model.mjs +25 -6
  54. package/esm2022/pipe/mask.pipe.mjs +10 -6
  55. package/esm2022/pipe/translate.pipe.mjs +4 -3
  56. package/esm2022/public_api.mjs +2 -1
  57. package/esm2022/service/authentication.service.mjs +89 -36
  58. package/esm2022/service/configuration.service.mjs +41 -10
  59. package/esm2022/service/data.service.mjs +38 -21
  60. package/esm2022/service/theme.service.mjs +16 -6
  61. package/esm2022/service/translate.service.mjs +9 -5
  62. package/esm2022/utils/utilities.mjs +52 -5
  63. package/fesm2022/info-library.mjs +2551 -1649
  64. package/fesm2022/info-library.mjs.map +1 -1
  65. package/info-library-3.0.0-beta.tgz +0 -0
  66. package/info-library.module.d.ts +32 -31
  67. package/layouts/filter/filter.component.d.ts +24 -0
  68. package/layouts/main/main.component.d.ts +4 -0
  69. package/layouts/modal/modal.component.d.ts +1 -0
  70. package/layouts/sidebar/sidebar.component.d.ts +1 -1
  71. package/layouts/topbar/topbar.component.d.ts +4 -1
  72. package/model/app-config.model.d.ts +2 -0
  73. package/model/session.model.d.ts +5 -0
  74. package/package.json +1 -1
  75. package/public_api.d.ts +1 -0
  76. package/service/authentication.service.d.ts +4 -2
  77. package/service/configuration.service.d.ts +4 -1
  78. package/service/data.service.d.ts +2 -0
  79. package/utils/utilities.d.ts +11 -0
@@ -6,12 +6,45 @@ import { createTextMaskInputElement } from "text-mask-core/dist/textMaskCore";
6
6
  import { createAutoCorrectedDatePipe } from "text-mask-addons";
7
7
  import moment from "moment";
8
8
  import * as i0 from "@angular/core";
9
- import * as i1 from "@angular/forms";
10
- import * as i2 from "@angular/material/form-field";
11
- import * as i3 from "@angular/material/input";
12
- import * as i4 from "@angular/material/datepicker";
13
- import * as i5 from "../../pipe/translate.pipe";
9
+ import * as i1 from "@angular/common";
10
+ import * as i2 from "@angular/forms";
11
+ import * as i3 from "@angular/material/form-field";
12
+ import * as i4 from "@angular/material/input";
13
+ import * as i5 from "@angular/material/datepicker";
14
+ import * as i6 from "../../pipe/translate.pipe";
14
15
  const _c0 = ["inputDate"];
16
+ function InfoDateComponent_mat_form_field_0_Template(rf, ctx) { if (rf & 1) {
17
+ const _r5 = i0.ɵɵgetCurrentView();
18
+ i0.ɵɵelementStart(0, "mat-form-field")(1, "input", 1, 2);
19
+ i0.ɵɵlistener("ngModelChange", function InfoDateComponent_mat_form_field_0_Template_input_ngModelChange_1_listener($event) { i0.ɵɵrestoreView(_r5); const ctx_r4 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r4.dateValue = $event); })("dateChange", function InfoDateComponent_mat_form_field_0_Template_input_dateChange_1_listener() { i0.ɵɵrestoreView(_r5); const ctx_r6 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r6.onChangeValue()); })("input", function InfoDateComponent_mat_form_field_0_Template_input_input_1_listener($event) { i0.ɵɵrestoreView(_r5); const ctx_r7 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r7.onInputDate($event.target.value)); })("keypress", function InfoDateComponent_mat_form_field_0_Template_input_keypress_1_listener($event) { i0.ɵɵrestoreView(_r5); const ctx_r8 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r8.onKeyPress($event)); })("blur", function InfoDateComponent_mat_form_field_0_Template_input_blur_1_listener() { i0.ɵɵrestoreView(_r5); const ctx_r9 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r9.onChangeValue()); });
20
+ i0.ɵɵpipe(3, "translate");
21
+ i0.ɵɵelementEnd();
22
+ i0.ɵɵelement(4, "mat-datepicker-toggle", 3)(5, "mat-datepicker", 4, 5);
23
+ i0.ɵɵelementEnd();
24
+ } if (rf & 2) {
25
+ const _r3 = i0.ɵɵreference(6);
26
+ const ctx_r0 = i0.ɵɵnextContext();
27
+ i0.ɵɵadvance(1);
28
+ i0.ɵɵproperty("placeholder", i0.ɵɵpipeBind1(3, 10, ctx_r0.placeholder))("ngModel", ctx_r0.dateValue)("disabled", ctx_r0.disabled)("required", ctx_r0.required)("min", ctx_r0.minDate)("max", ctx_r0.maxDate)("matDatepicker", _r3)("matDatepickerFilter", ctx_r0.datefilter);
29
+ i0.ɵɵadvance(3);
30
+ i0.ɵɵproperty("for", _r3);
31
+ i0.ɵɵadvance(1);
32
+ i0.ɵɵproperty("dateClass", ctx_r0.dateclass);
33
+ } }
34
+ function InfoDateComponent_ng_container_1_Template(rf, ctx) { if (rf & 1) {
35
+ const _r13 = i0.ɵɵgetCurrentView();
36
+ i0.ɵɵelementContainerStart(0);
37
+ i0.ɵɵelementStart(1, "input", 6, 2);
38
+ i0.ɵɵlistener("click", function InfoDateComponent_ng_container_1_Template_input_click_1_listener() { i0.ɵɵrestoreView(_r13); const _r11 = i0.ɵɵreference(4); return i0.ɵɵresetView(_r11.open()); })("ngModelChange", function InfoDateComponent_ng_container_1_Template_input_ngModelChange_1_listener($event) { i0.ɵɵrestoreView(_r13); const ctx_r14 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r14.dateValue = $event); })("dateChange", function InfoDateComponent_ng_container_1_Template_input_dateChange_1_listener() { i0.ɵɵrestoreView(_r13); const ctx_r15 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r15.onChangeValue()); });
39
+ i0.ɵɵelementEnd();
40
+ i0.ɵɵelement(3, "mat-datepicker", null, 5);
41
+ i0.ɵɵelementContainerEnd();
42
+ } if (rf & 2) {
43
+ const _r11 = i0.ɵɵreference(4);
44
+ const ctx_r1 = i0.ɵɵnextContext();
45
+ i0.ɵɵadvance(1);
46
+ i0.ɵɵproperty("ngModel", ctx_r1.dateValue)("disabled", ctx_r1.disabled)("required", ctx_r1.required)("min", ctx_r1.minDate)("max", ctx_r1.maxDate)("matDatepicker", _r11)("matDatepickerFilter", ctx_r1.datefilter);
47
+ } }
15
48
  export const PT_BR_DATE_FORMATS = {
16
49
  parse: {
17
50
  dateInput: 'DD/MM/YYYY',
@@ -24,14 +57,19 @@ export const PT_BR_DATE_FORMATS = {
24
57
  },
25
58
  };
26
59
  export class InfoDateComponent {
27
- constructor() {
28
- this.disabled = false;
29
- this.required = false;
30
- this.minDate = new Date(1800, 0, 1);
31
- this.maxDate = null;
32
- this.datefilter = null; //Metodo que recebe uma data(moment) e retorna boolean
33
- this.dateclass = null; //Metodo que recebe uma data(moment) e retorna string
34
- }
60
+ placeholder;
61
+ disabled = false;
62
+ required = false;
63
+ minDate = new Date(1800, 0, 1);
64
+ maxDate = null;
65
+ button = false;
66
+ datefilter = null; //Metodo que recebe uma data(moment) e retorna boolean
67
+ dateclass = null; //Metodo que recebe uma data(moment) e retorna string
68
+ input;
69
+ dateValue;
70
+ dateMask;
71
+ onChange;
72
+ onTouched;
35
73
  ngAfterViewInit() {
36
74
  let config = {
37
75
  mask: [/\d/, /\d/, '/', /\d/, /\d/, '/', /\d/, /\d/, /\d/, /\d/],
@@ -78,13 +116,13 @@ export class InfoDateComponent {
78
116
  if (e.keyCode == 13)
79
117
  this.onChangeValue();
80
118
  }
81
- /** @nocollapse */ static { this.ɵfac = function InfoDateComponent_Factory(t) { return new (t || InfoDateComponent)(); }; }
82
- /** @nocollapse */ static { this.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: InfoDateComponent, selectors: [["info-date"]], viewQuery: function InfoDateComponent_Query(rf, ctx) { if (rf & 1) {
119
+ /** @nocollapse */ static ɵfac = function InfoDateComponent_Factory(t) { return new (t || InfoDateComponent)(); };
120
+ /** @nocollapse */ static ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: InfoDateComponent, selectors: [["info-date"]], viewQuery: function InfoDateComponent_Query(rf, ctx) { if (rf & 1) {
83
121
  i0.ɵɵviewQuery(_c0, 5);
84
122
  } if (rf & 2) {
85
123
  let _t;
86
124
  i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.input = _t.first);
87
- } }, inputs: { placeholder: "placeholder", disabled: "disabled", required: "required", minDate: "minDate", maxDate: "maxDate", datefilter: "datefilter", dateclass: "dateclass" }, features: [i0.ɵɵProvidersFeature([{
125
+ } }, inputs: { placeholder: "placeholder", disabled: "disabled", required: "required", minDate: "minDate", maxDate: "maxDate", button: "button", datefilter: "datefilter", dateclass: "dateclass" }, features: [i0.ɵɵProvidersFeature([{
88
126
  provide: NG_VALUE_ACCESSOR,
89
127
  useExisting: forwardRef((() => InfoDateComponent)),
90
128
  multi: true
@@ -92,22 +130,14 @@ export class InfoDateComponent {
92
130
  { provide: MAT_DATE_LOCALE, useValue: 'pt-BR' },
93
131
  { provide: DateAdapter, useClass: MomentDateAdapter, deps: [MAT_DATE_LOCALE] },
94
132
  { provide: MAT_DATE_FORMATS, useValue: PT_BR_DATE_FORMATS },
95
- { provide: MAT_MOMENT_DATE_ADAPTER_OPTIONS, useValue: { useUtc: true } }])], decls: 7, vars: 12, consts: [["matInput", "", 3, "placeholder", "ngModel", "disabled", "required", "min", "max", "matDatepicker", "matDatepickerFilter", "ngModelChange", "dateChange", "input", "keypress", "blur"], ["inputDate", ""], ["matSuffix", "", 3, "for"], [3, "dateClass"], ["datepicker", ""]], template: function InfoDateComponent_Template(rf, ctx) { if (rf & 1) {
96
- i0.ɵɵelementStart(0, "mat-form-field")(1, "input", 0, 1);
97
- i0.ɵɵlistener("ngModelChange", function InfoDateComponent_Template_input_ngModelChange_1_listener($event) { return ctx.dateValue = $event; })("dateChange", function InfoDateComponent_Template_input_dateChange_1_listener() { return ctx.onChangeValue(); })("input", function InfoDateComponent_Template_input_input_1_listener($event) { return ctx.onInputDate($event.target.value); })("keypress", function InfoDateComponent_Template_input_keypress_1_listener($event) { return ctx.onKeyPress($event); })("blur", function InfoDateComponent_Template_input_blur_1_listener() { return ctx.onChangeValue(); });
98
- i0.ɵɵpipe(3, "translate");
99
- i0.ɵɵelementEnd();
100
- i0.ɵɵelement(4, "mat-datepicker-toggle", 2)(5, "mat-datepicker", 3, 4);
101
- i0.ɵɵelementEnd();
133
+ { provide: MAT_MOMENT_DATE_ADAPTER_OPTIONS, useValue: { useUtc: true } }])], decls: 2, vars: 2, consts: [[4, "ngIf"], ["matInput", "", 3, "placeholder", "ngModel", "disabled", "required", "min", "max", "matDatepicker", "matDatepickerFilter", "ngModelChange", "dateChange", "input", "keypress", "blur"], ["inputDate", ""], ["matSuffix", "", 3, "for"], [3, "dateClass"], ["datepicker", ""], ["type", "button", 1, "mat-button", 3, "ngModel", "disabled", "required", "min", "max", "matDatepicker", "matDatepickerFilter", "click", "ngModelChange", "dateChange"]], template: function InfoDateComponent_Template(rf, ctx) { if (rf & 1) {
134
+ i0.ɵɵtemplate(0, InfoDateComponent_mat_form_field_0_Template, 7, 12, "mat-form-field", 0);
135
+ i0.ɵɵtemplate(1, InfoDateComponent_ng_container_1_Template, 5, 7, "ng-container", 0);
102
136
  } if (rf & 2) {
103
- const _r1 = i0.ɵɵreference(6);
104
- i0.ɵɵadvance(1);
105
- i0.ɵɵproperty("placeholder", i0.ɵɵpipeBind1(3, 10, ctx.placeholder))("ngModel", ctx.dateValue)("disabled", ctx.disabled)("required", ctx.required)("min", ctx.minDate)("max", ctx.maxDate)("matDatepicker", _r1)("matDatepickerFilter", ctx.datefilter);
106
- i0.ɵɵadvance(3);
107
- i0.ɵɵproperty("for", _r1);
137
+ i0.ɵɵproperty("ngIf", !ctx.button);
108
138
  i0.ɵɵadvance(1);
109
- i0.ɵɵproperty("dateClass", ctx.dateclass);
110
- } }, dependencies: [i1.DefaultValueAccessor, i1.NgControlStatus, i1.RequiredValidator, i1.NgModel, i2.MatFormField, i2.MatSuffix, i3.MatInput, i4.MatDatepicker, i4.MatDatepickerInput, i4.MatDatepickerToggle, i5.InfoTranslatePipe], encapsulation: 2 }); }
139
+ i0.ɵɵproperty("ngIf", ctx.button);
140
+ } }, dependencies: [i1.NgIf, i2.DefaultValueAccessor, i2.NgControlStatus, i2.RequiredValidator, i2.NgModel, i3.MatFormField, i3.MatSuffix, i4.MatInput, i5.MatDatepicker, i5.MatDatepickerInput, i5.MatDatepickerToggle, i6.InfoTranslatePipe], encapsulation: 2 });
111
141
  }
112
142
  (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(InfoDateComponent, [{
113
143
  type: Component,
@@ -119,7 +149,7 @@ export class InfoDateComponent {
119
149
  { provide: MAT_DATE_LOCALE, useValue: 'pt-BR' },
120
150
  { provide: DateAdapter, useClass: MomentDateAdapter, deps: [MAT_DATE_LOCALE] },
121
151
  { provide: MAT_DATE_FORMATS, useValue: PT_BR_DATE_FORMATS },
122
- { provide: MAT_MOMENT_DATE_ADAPTER_OPTIONS, useValue: { useUtc: true } }], template: "<mat-form-field>\r\n <input matInput [placeholder]=\"placeholder | translate\" [(ngModel)]=\"dateValue\" [disabled]=\"disabled\" [required]=\"required\" [min]=\"minDate\" [max]=\"maxDate\"\r\n (dateChange)=\"onChangeValue()\" (input)=\"onInputDate($event.target.value)\" (keypress)=\"onKeyPress($event)\" (blur)=\"onChangeValue()\" [matDatepicker]=\"datepicker\"\r\n [matDatepickerFilter]=\"datefilter\" #inputDate >\r\n\r\n <mat-datepicker-toggle matSuffix [for]=\"datepicker\"></mat-datepicker-toggle>\r\n <mat-datepicker [dateClass]=\"dateclass\" #datepicker></mat-datepicker>\r\n</mat-form-field>" }]
152
+ { provide: MAT_MOMENT_DATE_ADAPTER_OPTIONS, useValue: { useUtc: true } }], template: "<mat-form-field *ngIf=\"!button\">\r\n <input matInput [placeholder]=\"placeholder | translate\" [(ngModel)]=\"dateValue\" [disabled]=\"disabled\" [required]=\"required\" [min]=\"minDate\" [max]=\"maxDate\"\r\n (dateChange)=\"onChangeValue()\" (input)=\"onInputDate($event.target.value)\" (keypress)=\"onKeyPress($event)\" (blur)=\"onChangeValue()\" [matDatepicker]=\"datepicker\"\r\n [matDatepickerFilter]=\"datefilter\" #inputDate>\r\n\r\n <mat-datepicker-toggle matSuffix [for]=\"datepicker\"></mat-datepicker-toggle>\r\n <mat-datepicker [dateClass]=\"dateclass\" #datepicker></mat-datepicker>\r\n</mat-form-field>\r\n\r\n<ng-container *ngIf=\"button\">\r\n <input class=\"mat-button\" type=\"button\" (click)=\"datepicker.open()\" [(ngModel)]=\"dateValue\" [disabled]=\"disabled\" [required]=\"required\" [min]=\"minDate\" [max]=\"maxDate\"\r\n (dateChange)=\"onChangeValue()\" [matDatepicker]=\"datepicker\"\r\n [matDatepickerFilter]=\"datefilter\" #inputDate>\r\n\r\n <mat-datepicker #datepicker></mat-datepicker>\r\n</ng-container>" }]
123
153
  }], null, { placeholder: [{
124
154
  type: Input
125
155
  }], disabled: [{
@@ -130,6 +160,8 @@ export class InfoDateComponent {
130
160
  type: Input
131
161
  }], maxDate: [{
132
162
  type: Input
163
+ }], button: [{
164
+ type: Input
133
165
  }], datefilter: [{
134
166
  type: Input
135
167
  }], dateclass: [{
@@ -138,4 +170,4 @@ export class InfoDateComponent {
138
170
  type: ViewChild,
139
171
  args: ['inputDate', { static: false }]
140
172
  }] }); })();
141
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9pbmZvLWxpYnJhcnkvc3JjL2NvbnRyb2xzL2RhdGUvZGF0ZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9pbmZvLWxpYnJhcnkvc3JjL2NvbnRyb2xzL2RhdGUvZGF0ZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3hFLE9BQU8sRUFBd0IsaUJBQWlCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN6RSxPQUFPLEVBQUUsV0FBVyxFQUFFLGdCQUFnQixFQUFFLGVBQWUsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3hGLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSwrQkFBK0IsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQ3RHLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQzlFLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQy9ELE9BQU8sTUFBTSxNQUFNLFFBQVEsQ0FBQzs7Ozs7Ozs7QUFFNUIsTUFBTSxDQUFDLE1BQU0sa0JBQWtCLEdBQUc7SUFDOUIsS0FBSyxFQUFFO1FBQ0gsU0FBUyxFQUFFLFlBQVk7S0FDMUI7SUFDRCxPQUFPLEVBQUU7UUFDTCxTQUFTLEVBQUUsWUFBWTtRQUN2QixjQUFjLEVBQUUsT0FBTztRQUN2QixhQUFhLEVBQUUsSUFBSTtRQUNuQixrQkFBa0IsRUFBRSxRQUFRO0tBQy9CO0NBQ0osQ0FBQztBQWVGLE1BQU0sT0FBTyxpQkFBaUI7SUFiOUI7UUFnQmEsYUFBUSxHQUFZLEtBQUssQ0FBQztRQUMxQixhQUFRLEdBQVksS0FBSyxDQUFDO1FBQzFCLFlBQU8sR0FBUyxJQUFJ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QUFFLFFBQVEsRUFBRSxPQUFPLEVBQUU7b0JBQy9DLEVBQUUsT0FBTyxFQUFFLFdBQVcsRUFBRSxRQUFRLEVBQUUsaUJBQWlCLEVBQUUsSUFBSSxFQUFFLENBQUMsZUFBZSxDQUFDLEVBQUU7b0JBQzlFLEVBQUUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLFFBQVEsRUFBRSxrQkFBa0IsRUFBRTtvQkFDM0QsRUFBRSxPQUFPLEVBQUUsK0JBQStCLEVBQUUsUUFBUSxFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxFQUFFLENBQUM7Z0JBSWhFLFdBQVc7a0JBQW5CLEtBQUs7WUFDRyxRQUFRO2tCQUFoQixLQUFLO1lBQ0csUUFBUTtrQkFBaEIsS0FBSztZQUNHLE9BQU87a0JBQWYsS0FBSztZQUNHLE9BQU87a0JBQWYsS0FBSztZQUVHLFVBQVU7a0JBQWxCLEtBQUs7WUFDRyxTQUFTO2tCQUFqQixLQUFLO1lBRXFDLEtBQUs7a0JBQS9DLFNBQVM7bUJBQUMsV0FBVyxFQUFFLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgZm9yd2FyZFJlZiwgSW5wdXQsIFZpZXdDaGlsZCB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7IENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBOR19WQUxVRV9BQ0NFU1NPUiB9IGZyb20gXCJAYW5ndWxhci9mb3Jtc1wiO1xyXG5pbXBvcnQgeyBEYXRlQWRhcHRlciwgTUFUX0RBVEVfRk9STUFUUywgTUFUX0RBVEVfTE9DQUxFIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvY29yZSc7XHJcbmltcG9ydCB7IE1vbWVudERhdGVBZGFwdGVyLCBNQVRfTU9NRU5UX0RBVEVfQURBUFRFUl9PUFRJT05TIH0gZnJvbSBcIkBhbmd1bGFyL21hdGVyaWFsLW1vbWVudC1hZGFwdGVyXCI7XHJcbmltcG9ydCB7IGNyZWF0ZVRleHRNYXNrSW5wdXRFbGVtZW50IH0gZnJvbSBcInRleHQtbWFzay1jb3JlL2Rpc3QvdGV4dE1hc2tDb3JlXCI7XHJcbmltcG9ydCB7IGNyZWF0ZUF1dG9Db3JyZWN0ZWREYXRlUGlwZSB9IGZyb20gXCJ0ZXh0LW1hc2stYWRkb25zXCI7XHJcbmltcG9ydCBtb21lbnQgZnJvbSBcIm1vbWVudFwiO1xyXG5cclxuZXhwb3J0IGNvbnN0IFBUX0JSX0RBVEVfRk9STUFUUyA9IHtcclxuICAgIHBhcnNlOiB7XHJcbiAgICAgICAgZGF0ZUlucHV0OiAnREQvTU0vWVlZWScsXHJcbiAgICB9LFxyXG4gICAgZGlzcGxheToge1xyXG4gICAgICAgIGRhdGVJbnB1dDogJ0REL01NL1lZWVknLFxyXG4gICAgICAgIG1vbnRoWWVhckxhYmVsOiAnTU1NIFknLFxyXG4gICAgICAgIGRhdGVBMTF5TGFiZWw6ICdMTCcsXHJcbiAgICAgICAgbW9udGhZZWFyQTExeUxhYmVsOiAnTU1NTSBZJyxcclxuICAgIH0sXHJcbn07XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICAgIHNlbGVjdG9yOiAnaW5mby1kYXRlJyxcclxuICAgIHRlbXBsYXRlVXJsOiAnLi9kYXRlLmNvbXBvbmVudC5odG1sJyxcclxuICAgIHByb3ZpZGVyczogW3tcclxuICAgICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcclxuICAgICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBJbmZvRGF0ZUNvbXBvbmVudCksXHJcbiAgICAgICAgbXVsdGk6IHRydWVcclxuICAgIH0sXHJcbiAgICB7IHByb3ZpZGU6IE1BVF9EQVRFX0xPQ0FMRSwgdXNlVmFsdWU6ICdwdC1CUicgfSxcclxuICAgIHsgcHJvdmlkZTogRGF0ZUFkYXB0ZXIsIHVzZUNsYXNzOiBNb21lbnREYXRlQWRhcHRlciwgZGVwczogW01BVF9EQVRFX0xPQ0FMRV0gfSxcclxuICAgIHsgcHJvdmlkZTogTUFUX0RBVEVfRk9STUFUUywgdXNlVmFsdWU6IFBUX0JSX0RBVEVfRk9STUFUUyB9LFxyXG4gICAgeyBwcm92aWRlOiBNQVRfTU9NRU5UX0RBVEVfQURBUFRFUl9PUFRJT05TLCB1c2VWYWx1ZTogeyB1c2VVdGM6IHRydWUgfSB9XVxyXG59KVxyXG5leHBvcnQgY2xhc3MgSW5mb0RhdGVDb21wb25lbnQgaW1wbGVtZW50cyBDb250cm9sVmFsdWVBY2Nlc3NvciB7XHJcblxyXG4gICAgQElucHV0KCkgcGxhY2Vob2xkZXI6IHN0cmluZztcclxuICAgIEBJbnB1dCgpIGRpc2FibGVkOiBib29sZWFuID0gZmFsc2U7XHJcbiAgICBASW5wdXQoKSByZXF1aXJlZDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gICAgQElucHV0KCkgbWluRGF0ZTogRGF0ZSA9IG5ldyBEYXRlKDE4MDAsIDAsIDEpO1xyXG4gICAgQElucHV0KCkgbWF4RGF0ZTogRGF0ZSA9IG51bGw7XHJcblxyXG4gICAgQElucHV0KCkgZGF0ZWZpbHRlcjogYW55ID0gbnVsbDsgLy9NZXRvZG8gcXVlIHJlY2ViZSB1bWEgZGF0YShtb21lbnQpIGUgcmV0b3JuYSBib29sZWFuXHJcbiAgICBASW5wdXQoKSBkYXRlY2xhc3M6IGFueSA9IG51bGw7IC8vTWV0b2RvIHF1ZSByZWNlYmUgdW1hIGRhdGEobW9tZW50KSBlIHJldG9ybmEgc3RyaW5nXHJcblxyXG4gICAgQFZpZXdDaGlsZCgnaW5wdXREYXRlJywgeyBzdGF0aWM6IGZhbHNlIH0pIGlucHV0O1xyXG5cclxuICAgIGRhdGVWYWx1ZTogYW55O1xyXG4gICAgZGF0ZU1hc2s6IGFueTtcclxuICAgIG9uQ2hhbmdlO1xyXG4gICAgb25Ub3VjaGVkO1xyXG5cclxuICAgIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcclxuXHJcbiAgICAgICAgbGV0IGNvbmZpZyA9IHtcclxuICAgICAgICAgICAgbWFzazogWy9cXGQvLCAvXFxkLywgJy8nLCAvXFxkLywgL1xcZC8sICcvJywgL1xcZC8sIC9cXGQvLCAvXFxkLywgL1xcZC9dLFxyXG4gICAgICAgICAgICBndWlkZTogdHJ1ZSxcclxuICAgICAgICAgICAgcGxhY2Vob2xkZXJDaGFyOiAnXycsXHJcbiAgICAgICAgICAgIHBpcGU6IGNyZWF0ZUF1dG9Db3JyZWN0ZWREYXRlUGlwZShQVF9CUl9EQVRFX0ZPUk1BVFMucGFyc2UuZGF0ZUlucHV0LnRvTG93ZXJDYXNlKCkpLFxyXG4gICAgICAgICAgICBtb2RlbENsZWFuOiB0cnVlLFxyXG4gICAgICAgICAgICBrZWVwQ2hhclBvc2l0aW9uczogZmFsc2UsXHJcbiAgICAgICAgfTtcclxuXHJcbiAgICAgICAgdGhpcy5kYXRlTWFzayA9IGNyZWF0ZVRleHRNYXNrSW5wdXRFbGVtZW50KFxyXG4gICAgICAgICAgICBPYmplY3QuYXNzaWduKHsgaW5wdXRFbGVtZW50OiB0aGlzLmlucHV0Lm5hdGl2ZUVsZW1lbnQgfSwgY29uZmlnKVxyXG4gICAgICAgICk7XHJcbiAgICB9XHJcblxyXG4gICAgb25JbnB1dERhdGUodmFsdWUpIHtcclxuICAgICAgICB0aGlzLmRhdGVNYXNrLnVwZGF0ZSh2YWx1ZSk7XHJcbiAgICB9XHJcblxyXG4gICAgb25DaGFuZ2VWYWx1ZSgpIHtcclxuICAgICAgICBpZiAodGhpcy5kYXRlVmFsdWUgIT0gbnVsbCkge1xyXG4gICAgICAgICAgICBpZiAobW9tZW50KHRoaXMuZGF0ZVZhbHVlKS5pc0JlZm9yZShtb21lbnQodGhpcy5taW5EYXRlKSkpXHJcbiAgICAgICAgICAgICAgIHRoaXMuZGF0ZVZhbHVlID0gdGhpcy5taW5EYXRlO1xyXG4gICAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgIGlmICh0aGlzLm1heERhdGUgIT0gbnVsbCAmJiBtb21lbnQodGhpcy5kYXRlVmFsdWUpLmlzQWZ0ZXIobW9tZW50KHRoaXMubWF4RGF0ZSkpKVxyXG4gICAgICAgICAgICAgICAgdGhpcy5kYXRlVmFsdWUgPSB0aGlzLm1heERhdGU7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAodGhpcy5vbkNoYW5nZSAhPSBudWxsKVxyXG4gICAgICAgICAgICB0aGlzLm9uQ2hhbmdlKHRoaXMuZGF0ZVZhbHVlKTtcclxuICAgIH1cclxuXHJcbiAgICB3cml0ZVZhbHVlKHZhbHVlOiBhbnkpOiB2b2lkIHtcclxuICAgICAgICBpZiAodmFsdWUgIT0gbnVsbCkge1xyXG4gICAgICAgICAgICB2YWx1ZSA9IG5ldyBEYXRlKHZhbHVlKTtcclxuICAgICAgICAgICAgdmFsdWUuc2V0TWludXRlcyh2YWx1ZS5nZXRNaW51dGVzKCkgKyB2YWx1ZS5nZXRUaW1lem9uZU9mZnNldCgpKTtcclxuICAgICAgICAgICAgdmFsdWUgPSBuZXcgRGF0ZSh2YWx1ZS5nZXRGdWxsWWVhcigpLCB2YWx1ZS5nZXRNb250aCgpLCB2YWx1ZS5nZXREYXRlKCkpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgdGhpcy5kYXRlVmFsdWUgPSB2YWx1ZTtcclxuICAgICAgICB0aGlzLm9uQ2hhbmdlVmFsdWUoKTtcclxuICAgIH1cclxuXHJcbiAgICByZWdpc3Rlck9uQ2hhbmdlKGZuOiBhbnkpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLm9uQ2hhbmdlID0gZm47XHJcbiAgICB9XHJcblxyXG4gICAgcmVnaXN0ZXJPblRvdWNoZWQoZm46IGFueSk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMub25Ub3VjaGVkID0gZm47XHJcbiAgICB9XHJcblxyXG4gICAgc2V0RGlzYWJsZWRTdGF0ZT8oaXNEaXNhYmxlZDogYm9vbGVhbik6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuZGlzYWJsZWQgPSBpc0Rpc2FibGVkO1xyXG4gICAgfVxyXG5cclxuICAgIG9uS2V5UHJlc3MoZSl7XHJcbiAgICAgICAgaWYgKGUua2V5Q29kZSA9PSAxMylcclxuICAgICAgICAgICAgdGhpcy5vbkNoYW5nZVZhbHVlKCk7XHJcbiAgICB9XHJcbn0iLCI8bWF0LWZvcm0tZmllbGQ+XHJcbiAgICA8aW5wdXQgbWF0SW5wdXQgW3BsYWNlaG9sZGVyXT1cInBsYWNlaG9sZGVyIHwgdHJhbnNsYXRlXCIgWyhuZ01vZGVsKV09XCJkYXRlVmFsdWVcIiBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIiBbcmVxdWlyZWRdPVwicmVxdWlyZWRcIiBbbWluXT1cIm1pbkRhdGVcIiBbbWF4XT1cIm1heERhdGVcIlxyXG4gICAgICAgICAgIChkYXRlQ2hhbmdlKT1cIm9uQ2hhbmdlVmFsdWUoKVwiIChpbnB1dCk9XCJvbklucHV0RGF0ZSgkZXZlbnQudGFyZ2V0LnZhbHVlKVwiIChrZXlwcmVzcyk9XCJvbktleVByZXNzKCRldmVudClcIiAoYmx1cik9XCJvbkNoYW5nZVZhbHVlKClcIiBbbWF0RGF0ZXBpY2tlcl09XCJkYXRlcGlja2VyXCJcclxuICAgICAgICAgICBbbWF0RGF0ZXBpY2tlckZpbHRlcl09XCJkYXRlZmlsdGVyXCIgI2lucHV0RGF0ZSA+XHJcblxyXG4gICAgPG1hdC1kYXRlcGlja2VyLXRvZ2dsZSBtYXRTdWZmaXggW2Zvcl09XCJkYXRlcGlja2VyXCI+PC9tYXQtZGF0ZXBpY2tlci10b2dnbGU+XHJcbiAgICA8bWF0LWRhdGVwaWNrZXIgW2RhdGVDbGFzc109XCJkYXRlY2xhc3NcIiAjZGF0ZXBpY2tlcj48L21hdC1kYXRlcGlja2VyPlxyXG48L21hdC1mb3JtLWZpZWxkPiJdfQ==
173
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9pbmZvLWxpYnJhcnkvc3JjL2NvbnRyb2xzL2RhdGUvZGF0ZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9pbmZvLWxpYnJhcnkvc3JjL2NvbnRyb2xzL2RhdGUvZGF0ZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3hFLE9BQU8sRUFBd0IsaUJBQWlCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN6RSxPQUFPLEVBQUUsV0FBVyxFQUFFLGdCQUFnQixFQUFFLGVBQWUsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3hGLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSwrQkFBK0IsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQ3RHLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQzlFLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQy9ELE9BQU8sTUFBTSxNQUFNLFFBQVEsQ0FBQzs7Ozs7Ozs7Ozs7SUNONUIsc0NBQWdDLGtCQUFBO0lBQzRCLDJPQUF1QixxS0FDMUQsZUFBQSxzQkFBZSxDQUFBLElBRDJDLGlLQUNoQyxlQUFBLHVDQUFnQyxDQUFBLElBREEsdUtBQ2MsZUFBQSx5QkFBa0IsQ0FBQSxJQURoQyx5SkFDMEMsZUFBQSxzQkFBZSxDQUFBLElBRHpEOztJQUEvRSxpQkFFcUQ7SUFFckQsMkNBQTRFLDJCQUFBO0lBRWhGLGlCQUFpQjs7OztJQU5HLGVBQXVDO0lBQXZDLHVFQUF1Qyw2QkFBQSw2QkFBQSw2QkFBQSx1QkFBQSx1QkFBQSxzQkFBQSwwQ0FBQTtJQUl0QixlQUFrQjtJQUFsQix5QkFBa0I7SUFDbkMsZUFBdUI7SUFBdkIsNENBQXVCOzs7O0lBRzNDLDZCQUE2QjtJQUN6QixtQ0FFcUQ7SUFGYixvS0FBUyxlQUFBLFdBQWlCLENBQUEsSUFBQywrTkFBQSxxS0FDOUMsZUFBQSx1QkFBZSxDQUFBLElBRCtCO0lBQW5FLGlCQUVxRDtJQUVyRCwwQ0FBNkM7SUFDakQsMEJBQWU7Ozs7SUFMeUQsZUFBdUI7SUFBdkIsMENBQXVCLDZCQUFBLDZCQUFBLHVCQUFBLHVCQUFBLHVCQUFBLDBDQUFBOztBREYvRixNQUFNLENBQUMsTUFBTSxrQkFBa0IsR0FBRztJQUM5QixLQUFLLEVBQUU7UUFDSCxTQUFTLEVBQUUsWUFBWTtLQUMxQjtJQUNELE9BQU8sRUFBRTtRQUNMLFNBQVMsRUFBRSxZQUFZO1FBQ3ZCLGNBQWMsRUFBRSxPQUFPO1FBQ3ZCLGFBQWEsRUFBRSxJQUFJO1FBQ25CLGtCQUFrQixFQUFFLFFBQVE7S0FDL0I7Q0FDSixDQUFDO0FBZUYsTUFBTSxPQUFPLGlCQUFpQjtJQUVqQixXQUFXLENBQVM7SUFDcEIsUUFBUSxHQUFZLEtBQUssQ0FBQztJQUMxQixRQUFRLEdBQVksS0FBSyxDQUFDO0lBQzFCLE9BQU8sR0FBUyxJQUFJLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQ3JDLE9BQU8sR0FBUyxJQUFJLENBQUM7SUFDckIsTUFBTSxHQUFZLEtBQUssQ0FBQztJQUV4QixVQUFVLEdBQVEsSUFBSSxDQUFDLENBQUMsc0RBQXNEO0lBQzlFLFNBQVMsR0FBUSxJQUFJLENBQUMsQ0FBQyxxREFBcUQ7SUFFMUMsS0FBSyxDQUFDO0lBRWpELFNBQVMsQ0FBTTtJQUNmLFFBQVEsQ0FBTTtJQUNkLFFBQVEsQ0FBQztJQUNULFNBQVMsQ0FBQztJQUVWLGVBQWU7UUFFWCxJQUFJLE1BQU0sR0FBRztZQUNULElBQUksRUFBRSxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsR0FBRyxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsR0FBRyxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQztZQUNoRSxLQUFLLEVBQUUsSUFBSTtZQUNYLGVBQWUsRUFBRSxHQUFHO1lBQ3BCLElBQUksRUFBRSwyQkFBMkIsQ0FBQyxrQkFBa0IsQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDLFdBQVcsRUFBRSxDQUFDO1lBQ25GLFVBQVUsRUFBRSxJQUFJO1lBQ2hCLGlCQUFpQixFQUFFLEtBQUs7U0FDM0IsQ0FBQztRQUVGLElBQUksQ0FBQyxRQUFRLEdBQUcsMEJBQTBCLENBQ3RDLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFBRSxZQUFZLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxhQUFhLEVBQUUsRUFBRSxNQUFNLENBQUMsQ0FDcEUsQ0FBQztJQUNOLENBQUM7SUFFRCxXQUFXLENBQUMsS0FBSztRQUNiLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ2hDLENBQUM7SUFFRCxhQUFhO1FBQ1QsSUFBSSxJQUFJLENBQUMsU0FBUyxJQUFJLElBQUksRUFBRTtZQUN4QixJQUFJLE1BQU0sQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7Z0JBQ3RELElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQztZQUVqQyxJQUFJLElBQUksQ0FBQyxPQUFPLElBQUksSUFBSSxJQUFJLE1BQU0sQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7Z0JBQzVFLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQztTQUNyQztRQUVELElBQUksSUFBSSxDQUFDLFFBQVEsSUFBSSxJQUFJO1lBQ3JCLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQ3RDLENBQUM7SUFFRCxVQUFVLENBQUMsS0FBVTtRQUNqQixJQUFJLEtBQUssSUFBSSxJQUFJLEVBQUU7WUFDZixLQUFLLEdBQUcsSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDeEIsS0FBSyxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsVUFBVSxFQUFFLEdBQUcsS0FBSyxDQUFDLGlCQUFpQixFQUFFLENBQUMsQ0FBQztZQUNqRSxLQUFLLEdBQUcsSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLFdBQVcsRUFBRSxFQUFFLEtBQUssQ0FBQyxRQUFRLEVBQUUsRUFBRSxLQUFLLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQztTQUM1RTtRQUVELElBQUksQ0FBQyxTQUFTLEdBQUcsS0FBSyxDQUFDO1FBQ3ZCLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztJQUN6QixDQUFDO0lBRUQsZ0JBQWdCLENBQUMsRUFBTztRQUNwQixJQUFJLENBQUMsUUFBUSxHQUFHLEVBQUUsQ0FBQztJQUN2QixDQUFDO0lBRUQsaUJBQWlCLENBQUMsRUFBTztRQUNyQixJQUFJLENBQUMsU0FBUyxHQUFHLEVBQUUsQ0FBQztJQUN4QixDQUFDO0lBRUQsZ0JBQWdCLENBQUUsVUFBbUI7UUFDakMsSUFBSSxDQUFDLFFBQVEsR0FBRyxVQUFVLENBQUM7SUFDL0IsQ0FBQztJQUVELFVBQVUsQ0FBQyxDQUFDO1FBQ1IsSUFBSSxDQUFDLENBQUMsT0FBTyxJQUFJLEVBQUU7WUFDZixJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7SUFDN0IsQ0FBQzs4RkE5RVEsaUJBQWlCOzRGQUFqQixpQkFBaUI7Ozs7OzhPQVZmLENBQUM7b0JBQ1IsT0FBTyxFQUFFLGlCQUFpQjtvQkFDMUIsV0FBVyxFQUFFLFVBQVUsRUFBQyxHQUFHLEVBQUUsQ0FBQyxpQkFBaUIsRUFBQztvQkFDaEQsS0FBSyxFQUFFLElBQUk7aUJBQ2Q7Z0JBQ0QsRUFBRSxPQUFPLEVBQUUsZUFBZSxFQUFFLFFBQVEsRUFBRSxPQUFPLEVBQUU7Z0JBQy9DLEVBQUUsT0FBTyxFQUFFLFdBQVcsRUFBRSxRQUFRLEVBQUUsaUJBQWlCLEVBQUUsSUFBSSxFQUFFLENBQUMsZUFBZSxDQUFDLEVBQUU7Z0JBQzlFLEVBQUUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLFFBQVEsRUFBRSxrQkFBa0IsRUFBRTtnQkFDM0QsRUFBRSxPQUFPLEVBQUUsK0JBQStCLEVBQUUsUUFBUSxFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxFQUFFLENBQUM7WUMvQjdFLHlGQU9pQjtZQUVqQixvRkFNZTs7WUFmRSxrQ0FBYTtZQVNmLGVBQVk7WUFBWixpQ0FBWTs7O3VGRHdCZCxpQkFBaUI7Y0FiN0IsU0FBUzsyQkFDSSxXQUFXLGFBRVYsQ0FBQzt3QkFDUixPQUFPLEVBQUUsaUJBQWlCO3dCQUMxQixXQUFXLEVBQUUsVUFBVSxFQUFDLEdBQUcsRUFBRSxrQkFBa0IsRUFBQzt3QkFDaEQsS0FBSyxFQUFFLElBQUk7cUJBQ2Q7b0JBQ0QsRUFBRSxPQUFPLEVBQUUsZUFBZSxFQUFFLFFBQVEsRUFBRSxPQUFPLEVBQUU7b0JBQy9DLEVBQUUsT0FBTyxFQUFFLFdBQVcsRUFBRSxRQUFRLEVBQUUsaUJBQWlCLEVBQUUsSUFBSSxFQUFFLENBQUMsZUFBZSxDQUFDLEVBQUU7b0JBQzlFLEVBQUUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLFFBQVEsRUFBRSxrQkFBa0IsRUFBRTtvQkFDM0QsRUFBRSxPQUFPLEVBQUUsK0JBQStCLEVBQUUsUUFBUSxFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxFQUFFLENBQUM7Z0JBSWhFLFdBQVc7a0JBQW5CLEtBQUs7WUFDRyxRQUFRO2tCQUFoQixLQUFLO1lBQ0csUUFBUTtrQkFBaEIsS0FBSztZQUNHLE9BQU87a0JBQWYsS0FBSztZQUNHLE9BQU87a0JBQWYsS0FBSztZQUNHLE1BQU07a0JBQWQsS0FBSztZQUVHLFVBQVU7a0JBQWxCLEtBQUs7WUFDRyxTQUFTO2tCQUFqQixLQUFLO1lBRXFDLEtBQUs7a0JBQS9DLFNBQVM7bUJBQUMsV0FBVyxFQUFFLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgZm9yd2FyZFJlZiwgSW5wdXQsIFZpZXdDaGlsZCB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7IENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBOR19WQUxVRV9BQ0NFU1NPUiB9IGZyb20gXCJAYW5ndWxhci9mb3Jtc1wiO1xyXG5pbXBvcnQgeyBEYXRlQWRhcHRlciwgTUFUX0RBVEVfRk9STUFUUywgTUFUX0RBVEVfTE9DQUxFIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvY29yZSc7XHJcbmltcG9ydCB7IE1vbWVudERhdGVBZGFwdGVyLCBNQVRfTU9NRU5UX0RBVEVfQURBUFRFUl9PUFRJT05TIH0gZnJvbSBcIkBhbmd1bGFyL21hdGVyaWFsLW1vbWVudC1hZGFwdGVyXCI7XHJcbmltcG9ydCB7IGNyZWF0ZVRleHRNYXNrSW5wdXRFbGVtZW50IH0gZnJvbSBcInRleHQtbWFzay1jb3JlL2Rpc3QvdGV4dE1hc2tDb3JlXCI7XHJcbmltcG9ydCB7IGNyZWF0ZUF1dG9Db3JyZWN0ZWREYXRlUGlwZSB9IGZyb20gXCJ0ZXh0LW1hc2stYWRkb25zXCI7XHJcbmltcG9ydCBtb21lbnQgZnJvbSBcIm1vbWVudFwiO1xyXG5cclxuZXhwb3J0IGNvbnN0IFBUX0JSX0RBVEVfRk9STUFUUyA9IHtcclxuICAgIHBhcnNlOiB7XHJcbiAgICAgICAgZGF0ZUlucHV0OiAnREQvTU0vWVlZWScsXHJcbiAgICB9LFxyXG4gICAgZGlzcGxheToge1xyXG4gICAgICAgIGRhdGVJbnB1dDogJ0REL01NL1lZWVknLFxyXG4gICAgICAgIG1vbnRoWWVhckxhYmVsOiAnTU1NIFknLFxyXG4gICAgICAgIGRhdGVBMTF5TGFiZWw6ICdMTCcsXHJcbiAgICAgICAgbW9udGhZZWFyQTExeUxhYmVsOiAnTU1NTSBZJyxcclxuICAgIH0sXHJcbn07XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICAgIHNlbGVjdG9yOiAnaW5mby1kYXRlJyxcclxuICAgIHRlbXBsYXRlVXJsOiAnLi9kYXRlLmNvbXBvbmVudC5odG1sJyxcclxuICAgIHByb3ZpZGVyczogW3tcclxuICAgICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcclxuICAgICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBJbmZvRGF0ZUNvbXBvbmVudCksXHJcbiAgICAgICAgbXVsdGk6IHRydWVcclxuICAgIH0sXHJcbiAgICB7IHByb3ZpZGU6IE1BVF9EQVRFX0xPQ0FMRSwgdXNlVmFsdWU6ICdwdC1CUicgfSxcclxuICAgIHsgcHJvdmlkZTogRGF0ZUFkYXB0ZXIsIHVzZUNsYXNzOiBNb21lbnREYXRlQWRhcHRlciwgZGVwczogW01BVF9EQVRFX0xPQ0FMRV0gfSxcclxuICAgIHsgcHJvdmlkZTogTUFUX0RBVEVfRk9STUFUUywgdXNlVmFsdWU6IFBUX0JSX0RBVEVfRk9STUFUUyB9LFxyXG4gICAgeyBwcm92aWRlOiBNQVRfTU9NRU5UX0RBVEVfQURBUFRFUl9PUFRJT05TLCB1c2VWYWx1ZTogeyB1c2VVdGM6IHRydWUgfSB9XVxyXG59KVxyXG5leHBvcnQgY2xhc3MgSW5mb0RhdGVDb21wb25lbnQgaW1wbGVtZW50cyBDb250cm9sVmFsdWVBY2Nlc3NvciB7XHJcblxyXG4gICAgQElucHV0KCkgcGxhY2Vob2xkZXI6IHN0cmluZztcclxuICAgIEBJbnB1dCgpIGRpc2FibGVkOiBib29sZWFuID0gZmFsc2U7XHJcbiAgICBASW5wdXQoKSByZXF1aXJlZDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gICAgQElucHV0KCkgbWluRGF0ZTogRGF0ZSA9IG5ldyBEYXRlKDE4MDAsIDAsIDEpO1xyXG4gICAgQElucHV0KCkgbWF4RGF0ZTogRGF0ZSA9IG51bGw7XHJcbiAgICBASW5wdXQoKSBidXR0b246IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgICBASW5wdXQoKSBkYXRlZmlsdGVyOiBhbnkgPSBudWxsOyAvL01ldG9kbyBxdWUgcmVjZWJlIHVtYSBkYXRhKG1vbWVudCkgZSByZXRvcm5hIGJvb2xlYW5cclxuICAgIEBJbnB1dCgpIGRhdGVjbGFzczogYW55ID0gbnVsbDsgLy9NZXRvZG8gcXVlIHJlY2ViZSB1bWEgZGF0YShtb21lbnQpIGUgcmV0b3JuYSBzdHJpbmdcclxuXHJcbiAgICBAVmlld0NoaWxkKCdpbnB1dERhdGUnLCB7IHN0YXRpYzogZmFsc2UgfSkgaW5wdXQ7XHJcblxyXG4gICAgZGF0ZVZhbHVlOiBhbnk7XHJcbiAgICBkYXRlTWFzazogYW55O1xyXG4gICAgb25DaGFuZ2U7XHJcbiAgICBvblRvdWNoZWQ7XHJcblxyXG4gICAgbmdBZnRlclZpZXdJbml0KCkge1xyXG5cclxuICAgICAgICBsZXQgY29uZmlnID0ge1xyXG4gICAgICAgICAgICBtYXNrOiBbL1xcZC8sIC9cXGQvLCAnLycsIC9cXGQvLCAvXFxkLywgJy8nLCAvXFxkLywgL1xcZC8sIC9cXGQvLCAvXFxkL10sXHJcbiAgICAgICAgICAgIGd1aWRlOiB0cnVlLFxyXG4gICAgICAgICAgICBwbGFjZWhvbGRlckNoYXI6ICdfJyxcclxuICAgICAgICAgICAgcGlwZTogY3JlYXRlQXV0b0NvcnJlY3RlZERhdGVQaXBlKFBUX0JSX0RBVEVfRk9STUFUUy5wYXJzZS5kYXRlSW5wdXQudG9Mb3dlckNhc2UoKSksXHJcbiAgICAgICAgICAgIG1vZGVsQ2xlYW46IHRydWUsXHJcbiAgICAgICAgICAgIGtlZXBDaGFyUG9zaXRpb25zOiBmYWxzZSxcclxuICAgICAgICB9O1xyXG5cclxuICAgICAgICB0aGlzLmRhdGVNYXNrID0gY3JlYXRlVGV4dE1hc2tJbnB1dEVsZW1lbnQoXHJcbiAgICAgICAgICAgIE9iamVjdC5hc3NpZ24oeyBpbnB1dEVsZW1lbnQ6IHRoaXMuaW5wdXQubmF0aXZlRWxlbWVudCB9LCBjb25maWcpXHJcbiAgICAgICAgKTtcclxuICAgIH1cclxuXHJcbiAgICBvbklucHV0RGF0ZSh2YWx1ZSkge1xyXG4gICAgICAgIHRoaXMuZGF0ZU1hc2sudXBkYXRlKHZhbHVlKTtcclxuICAgIH1cclxuXHJcbiAgICBvbkNoYW5nZVZhbHVlKCkge1xyXG4gICAgICAgIGlmICh0aGlzLmRhdGVWYWx1ZSAhPSBudWxsKSB7XHJcbiAgICAgICAgICAgIGlmIChtb21lbnQodGhpcy5kYXRlVmFsdWUpLmlzQmVmb3JlKG1vbWVudCh0aGlzLm1pbkRhdGUpKSlcclxuICAgICAgICAgICAgICAgdGhpcy5kYXRlVmFsdWUgPSB0aGlzLm1pbkRhdGU7XHJcbiAgICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgaWYgKHRoaXMubWF4RGF0ZSAhPSBudWxsICYmIG1vbWVudCh0aGlzLmRhdGVWYWx1ZSkuaXNBZnRlcihtb21lbnQodGhpcy5tYXhEYXRlKSkpXHJcbiAgICAgICAgICAgICAgICB0aGlzLmRhdGVWYWx1ZSA9IHRoaXMubWF4RGF0ZTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmICh0aGlzLm9uQ2hhbmdlICE9IG51bGwpXHJcbiAgICAgICAgICAgIHRoaXMub25DaGFuZ2UodGhpcy5kYXRlVmFsdWUpO1xyXG4gICAgfVxyXG5cclxuICAgIHdyaXRlVmFsdWUodmFsdWU6IGFueSk6IHZvaWQge1xyXG4gICAgICAgIGlmICh2YWx1ZSAhPSBudWxsKSB7XHJcbiAgICAgICAgICAgIHZhbHVlID0gbmV3IERhdGUodmFsdWUpO1xyXG4gICAgICAgICAgICB2YWx1ZS5zZXRNaW51dGVzKHZhbHVlLmdldE1pbnV0ZXMoKSArIHZhbHVlLmdldFRpbWV6b25lT2Zmc2V0KCkpO1xyXG4gICAgICAgICAgICB2YWx1ZSA9IG5ldyBEYXRlKHZhbHVlLmdldEZ1bGxZZWFyKCksIHZhbHVlLmdldE1vbnRoKCksIHZhbHVlLmdldERhdGUoKSk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICB0aGlzLmRhdGVWYWx1ZSA9IHZhbHVlO1xyXG4gICAgICAgIHRoaXMub25DaGFuZ2VWYWx1ZSgpO1xyXG4gICAgfVxyXG5cclxuICAgIHJlZ2lzdGVyT25DaGFuZ2UoZm46IGFueSk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMub25DaGFuZ2UgPSBmbjtcclxuICAgIH1cclxuXHJcbiAgICByZWdpc3Rlck9uVG91Y2hlZChmbjogYW55KTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5vblRvdWNoZWQgPSBmbjtcclxuICAgIH1cclxuXHJcbiAgICBzZXREaXNhYmxlZFN0YXRlPyhpc0Rpc2FibGVkOiBib29sZWFuKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5kaXNhYmxlZCA9IGlzRGlzYWJsZWQ7XHJcbiAgICB9XHJcblxyXG4gICAgb25LZXlQcmVzcyhlKXtcclxuICAgICAgICBpZiAoZS5rZXlDb2RlID09IDEzKVxyXG4gICAgICAgICAgICB0aGlzLm9uQ2hhbmdlVmFsdWUoKTtcclxuICAgIH1cclxufSIsIjxtYXQtZm9ybS1maWVsZCAqbmdJZj1cIiFidXR0b25cIj5cclxuICAgIDxpbnB1dCBtYXRJbnB1dCBbcGxhY2Vob2xkZXJdPVwicGxhY2Vob2xkZXIgfCB0cmFuc2xhdGVcIiBbKG5nTW9kZWwpXT1cImRhdGVWYWx1ZVwiIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiIFtyZXF1aXJlZF09XCJyZXF1aXJlZFwiIFttaW5dPVwibWluRGF0ZVwiIFttYXhdPVwibWF4RGF0ZVwiXHJcbiAgICAgICAgICAgKGRhdGVDaGFuZ2UpPVwib25DaGFuZ2VWYWx1ZSgpXCIgKGlucHV0KT1cIm9uSW5wdXREYXRlKCRldmVudC50YXJnZXQudmFsdWUpXCIgKGtleXByZXNzKT1cIm9uS2V5UHJlc3MoJGV2ZW50KVwiIChibHVyKT1cIm9uQ2hhbmdlVmFsdWUoKVwiIFttYXREYXRlcGlja2VyXT1cImRhdGVwaWNrZXJcIlxyXG4gICAgICAgICAgIFttYXREYXRlcGlja2VyRmlsdGVyXT1cImRhdGVmaWx0ZXJcIiAjaW5wdXREYXRlPlxyXG5cclxuICAgIDxtYXQtZGF0ZXBpY2tlci10b2dnbGUgbWF0U3VmZml4IFtmb3JdPVwiZGF0ZXBpY2tlclwiPjwvbWF0LWRhdGVwaWNrZXItdG9nZ2xlPlxyXG4gICAgPG1hdC1kYXRlcGlja2VyIFtkYXRlQ2xhc3NdPVwiZGF0ZWNsYXNzXCIgI2RhdGVwaWNrZXI+PC9tYXQtZGF0ZXBpY2tlcj5cclxuPC9tYXQtZm9ybS1maWVsZD5cclxuXHJcbjxuZy1jb250YWluZXIgKm5nSWY9XCJidXR0b25cIj5cclxuICAgIDxpbnB1dCBjbGFzcz1cIm1hdC1idXR0b25cIiB0eXBlPVwiYnV0dG9uXCIgKGNsaWNrKT1cImRhdGVwaWNrZXIub3BlbigpXCIgWyhuZ01vZGVsKV09XCJkYXRlVmFsdWVcIiBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIiBbcmVxdWlyZWRdPVwicmVxdWlyZWRcIiBbbWluXT1cIm1pbkRhdGVcIiBbbWF4XT1cIm1heERhdGVcIlxyXG4gICAgICAgICAgIChkYXRlQ2hhbmdlKT1cIm9uQ2hhbmdlVmFsdWUoKVwiIFttYXREYXRlcGlja2VyXT1cImRhdGVwaWNrZXJcIlxyXG4gICAgICAgICAgIFttYXREYXRlcGlja2VyRmlsdGVyXT1cImRhdGVmaWx0ZXJcIiAjaW5wdXREYXRlPlxyXG5cclxuICAgIDxtYXQtZGF0ZXBpY2tlciAjZGF0ZXBpY2tlcj48L21hdC1kYXRlcGlja2VyPlxyXG48L25nLWNvbnRhaW5lcj4iXX0=
@@ -6,12 +6,47 @@ import { createTextMaskInputElement } from "text-mask-core/dist/textMaskCore";
6
6
  import { createAutoCorrectedDatePipe } from "text-mask-addons";
7
7
  import moment from "moment";
8
8
  import * as i0 from "@angular/core";
9
- import * as i1 from "@angular/forms";
10
- import * as i2 from "@angular/material/form-field";
11
- import * as i3 from "@angular/material/input";
12
- import * as i4 from "@angular/material/datepicker";
13
- import * as i5 from "../../pipe/translate.pipe";
9
+ import * as i1 from "@angular/common";
10
+ import * as i2 from "@angular/forms";
11
+ import * as i3 from "@angular/material/form-field";
12
+ import * as i4 from "@angular/material/input";
13
+ import * as i5 from "@angular/material/datepicker";
14
+ import * as i6 from "../../pipe/translate.pipe";
14
15
  const _c0 = ["inputDate"];
16
+ function InfoDateMonthComponent_mat_form_field_0_Template(rf, ctx) { if (rf & 1) {
17
+ const _r5 = i0.ɵɵgetCurrentView();
18
+ i0.ɵɵelementStart(0, "mat-form-field")(1, "input", 1, 2);
19
+ i0.ɵɵlistener("ngModelChange", function InfoDateMonthComponent_mat_form_field_0_Template_input_ngModelChange_1_listener($event) { i0.ɵɵrestoreView(_r5); const ctx_r4 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r4.dateValue = $event); })("dateChange", function InfoDateMonthComponent_mat_form_field_0_Template_input_dateChange_1_listener() { i0.ɵɵrestoreView(_r5); const ctx_r6 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r6.onChangeValue()); })("input", function InfoDateMonthComponent_mat_form_field_0_Template_input_input_1_listener($event) { i0.ɵɵrestoreView(_r5); const ctx_r7 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r7.onInputDate($event.target.value)); })("keypress", function InfoDateMonthComponent_mat_form_field_0_Template_input_keypress_1_listener($event) { i0.ɵɵrestoreView(_r5); const ctx_r8 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r8.onKeyPress($event)); })("blur", function InfoDateMonthComponent_mat_form_field_0_Template_input_blur_1_listener() { i0.ɵɵrestoreView(_r5); const ctx_r9 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r9.onChangeValue()); });
20
+ i0.ɵɵpipe(3, "translate");
21
+ i0.ɵɵelementEnd();
22
+ i0.ɵɵelement(4, "mat-datepicker-toggle", 3);
23
+ i0.ɵɵelementStart(5, "mat-datepicker", 4, 5);
24
+ i0.ɵɵlistener("yearSelected", function InfoDateMonthComponent_mat_form_field_0_Template_mat_datepicker_yearSelected_5_listener($event) { i0.ɵɵrestoreView(_r5); const ctx_r10 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r10.chosenYearHandler($event)); })("monthSelected", function InfoDateMonthComponent_mat_form_field_0_Template_mat_datepicker_monthSelected_5_listener($event) { i0.ɵɵrestoreView(_r5); const _r3 = i0.ɵɵreference(6); const ctx_r11 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r11.chosenMonthHandler($event, _r3)); });
25
+ i0.ɵɵelementEnd()();
26
+ } if (rf & 2) {
27
+ const _r3 = i0.ɵɵreference(6);
28
+ const ctx_r0 = i0.ɵɵnextContext();
29
+ i0.ɵɵadvance(1);
30
+ i0.ɵɵproperty("placeholder", i0.ɵɵpipeBind1(3, 7, ctx_r0.placeholder))("ngModel", ctx_r0.dateValue)("disabled", ctx_r0.disabled)("required", ctx_r0.required)("min", ctx_r0.minDate)("matDatepicker", _r3);
31
+ i0.ɵɵadvance(3);
32
+ i0.ɵɵproperty("for", _r3);
33
+ } }
34
+ function InfoDateMonthComponent_ng_container_1_Template(rf, ctx) { if (rf & 1) {
35
+ const _r15 = i0.ɵɵgetCurrentView();
36
+ i0.ɵɵelementContainerStart(0);
37
+ i0.ɵɵelementStart(1, "input", 6, 2);
38
+ i0.ɵɵlistener("click", function InfoDateMonthComponent_ng_container_1_Template_input_click_1_listener() { i0.ɵɵrestoreView(_r15); const _r13 = i0.ɵɵreference(4); return i0.ɵɵresetView(_r13.open()); })("ngModelChange", function InfoDateMonthComponent_ng_container_1_Template_input_ngModelChange_1_listener($event) { i0.ɵɵrestoreView(_r15); const ctx_r16 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r16.dateValue = $event); })("dateChange", function InfoDateMonthComponent_ng_container_1_Template_input_dateChange_1_listener() { i0.ɵɵrestoreView(_r15); const ctx_r17 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r17.onChangeValue()); })("input", function InfoDateMonthComponent_ng_container_1_Template_input_input_1_listener($event) { i0.ɵɵrestoreView(_r15); const ctx_r18 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r18.onInputDate($event.target.value)); });
39
+ i0.ɵɵelementEnd();
40
+ i0.ɵɵelementStart(3, "mat-datepicker", 4, 5);
41
+ i0.ɵɵlistener("yearSelected", function InfoDateMonthComponent_ng_container_1_Template_mat_datepicker_yearSelected_3_listener($event) { i0.ɵɵrestoreView(_r15); const ctx_r19 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r19.chosenYearHandler($event)); })("monthSelected", function InfoDateMonthComponent_ng_container_1_Template_mat_datepicker_monthSelected_3_listener($event) { i0.ɵɵrestoreView(_r15); const _r13 = i0.ɵɵreference(4); const ctx_r20 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r20.chosenMonthHandler($event, _r13)); });
42
+ i0.ɵɵelementEnd();
43
+ i0.ɵɵelementContainerEnd();
44
+ } if (rf & 2) {
45
+ const _r13 = i0.ɵɵreference(4);
46
+ const ctx_r1 = i0.ɵɵnextContext();
47
+ i0.ɵɵadvance(1);
48
+ i0.ɵɵproperty("ngModel", ctx_r1.dateValue)("disabled", ctx_r1.disabled)("required", ctx_r1.required)("min", ctx_r1.minDate)("matDatepicker", _r13);
49
+ } }
15
50
  export const PT_BR_DATE_MONTH_FORMATS = {
16
51
  parse: {
17
52
  dateInput: 'MM/YYYY',
@@ -24,12 +59,17 @@ export const PT_BR_DATE_MONTH_FORMATS = {
24
59
  },
25
60
  };
26
61
  export class InfoDateMonthComponent {
27
- constructor() {
28
- this.disabled = false;
29
- this.required = false;
30
- this.changeonlyonmonth = false;
31
- this.minDate = new Date(1800, 0, 1);
32
- }
62
+ placeholder;
63
+ disabled = false;
64
+ required = false;
65
+ changeonlyonmonth = false;
66
+ minDate = new Date(1800, 0, 1);
67
+ button = false;
68
+ input;
69
+ dateValue;
70
+ dateMask;
71
+ onChange;
72
+ onTouched;
33
73
  ngAfterViewInit() {
34
74
  let config = {
35
75
  mask: [/\d/, /\d/, '/', /\d/, /\d/, /\d/, /\d/],
@@ -88,13 +128,13 @@ export class InfoDateMonthComponent {
88
128
  if (e.keyCode == 13)
89
129
  this.onChangeValue();
90
130
  }
91
- /** @nocollapse */ static { this.ɵfac = function InfoDateMonthComponent_Factory(t) { return new (t || InfoDateMonthComponent)(); }; }
92
- /** @nocollapse */ static { this.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: InfoDateMonthComponent, selectors: [["info-date-month"]], viewQuery: function InfoDateMonthComponent_Query(rf, ctx) { if (rf & 1) {
131
+ /** @nocollapse */ static ɵfac = function InfoDateMonthComponent_Factory(t) { return new (t || InfoDateMonthComponent)(); };
132
+ /** @nocollapse */ static ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: InfoDateMonthComponent, selectors: [["info-date-month"]], viewQuery: function InfoDateMonthComponent_Query(rf, ctx) { if (rf & 1) {
93
133
  i0.ɵɵviewQuery(_c0, 5);
94
134
  } if (rf & 2) {
95
135
  let _t;
96
136
  i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.input = _t.first);
97
- } }, inputs: { placeholder: "placeholder", disabled: "disabled", required: "required", changeonlyonmonth: "changeonlyonmonth", minDate: "minDate" }, features: [i0.ɵɵProvidersFeature([{
137
+ } }, inputs: { placeholder: "placeholder", disabled: "disabled", required: "required", changeonlyonmonth: "changeonlyonmonth", minDate: "minDate", button: "button" }, features: [i0.ɵɵProvidersFeature([{
98
138
  provide: NG_VALUE_ACCESSOR,
99
139
  useExisting: forwardRef((() => InfoDateMonthComponent)),
100
140
  multi: true
@@ -102,23 +142,14 @@ export class InfoDateMonthComponent {
102
142
  { provide: MAT_DATE_LOCALE, useValue: 'pt-BR' },
103
143
  { provide: DateAdapter, useClass: MomentDateAdapter, deps: [MAT_DATE_LOCALE] },
104
144
  { provide: MAT_DATE_FORMATS, useValue: PT_BR_DATE_MONTH_FORMATS },
105
- { provide: MAT_MOMENT_DATE_ADAPTER_OPTIONS, useValue: { useUtc: true } }])], decls: 7, vars: 9, consts: [["matInput", "", 3, "placeholder", "ngModel", "disabled", "required", "min", "matDatepicker", "ngModelChange", "dateChange", "input", "keypress", "blur"], ["inputDate", ""], ["matSuffix", "", 3, "for"], ["startView", "multi-year", 3, "yearSelected", "monthSelected"], ["datepicker", ""]], template: function InfoDateMonthComponent_Template(rf, ctx) { if (rf & 1) {
106
- const _r2 = i0.ɵɵgetCurrentView();
107
- i0.ɵɵelementStart(0, "mat-form-field")(1, "input", 0, 1);
108
- i0.ɵɵlistener("ngModelChange", function InfoDateMonthComponent_Template_input_ngModelChange_1_listener($event) { return ctx.dateValue = $event; })("dateChange", function InfoDateMonthComponent_Template_input_dateChange_1_listener() { return ctx.onChangeValue(); })("input", function InfoDateMonthComponent_Template_input_input_1_listener($event) { return ctx.onInputDate($event.target.value); })("keypress", function InfoDateMonthComponent_Template_input_keypress_1_listener($event) { return ctx.onKeyPress($event); })("blur", function InfoDateMonthComponent_Template_input_blur_1_listener() { return ctx.onChangeValue(); });
109
- i0.ɵɵpipe(3, "translate");
110
- i0.ɵɵelementEnd();
111
- i0.ɵɵelement(4, "mat-datepicker-toggle", 2);
112
- i0.ɵɵelementStart(5, "mat-datepicker", 3, 4);
113
- i0.ɵɵlistener("yearSelected", function InfoDateMonthComponent_Template_mat_datepicker_yearSelected_5_listener($event) { return ctx.chosenYearHandler($event); })("monthSelected", function InfoDateMonthComponent_Template_mat_datepicker_monthSelected_5_listener($event) { i0.ɵɵrestoreView(_r2); const _r1 = i0.ɵɵreference(6); return i0.ɵɵresetView(ctx.chosenMonthHandler($event, _r1)); });
114
- i0.ɵɵelementEnd()();
145
+ { provide: MAT_MOMENT_DATE_ADAPTER_OPTIONS, useValue: { useUtc: true } }])], decls: 2, vars: 2, consts: [[4, "ngIf"], ["matInput", "", 3, "placeholder", "ngModel", "disabled", "required", "min", "matDatepicker", "ngModelChange", "dateChange", "input", "keypress", "blur"], ["inputDate", ""], ["matSuffix", "", 3, "for"], ["startView", "multi-year", 3, "yearSelected", "monthSelected"], ["datepicker", ""], ["type", "button", 1, "mat-button", 3, "ngModel", "disabled", "required", "min", "matDatepicker", "click", "ngModelChange", "dateChange", "input"]], template: function InfoDateMonthComponent_Template(rf, ctx) { if (rf & 1) {
146
+ i0.ɵɵtemplate(0, InfoDateMonthComponent_mat_form_field_0_Template, 7, 9, "mat-form-field", 0);
147
+ i0.ɵɵtemplate(1, InfoDateMonthComponent_ng_container_1_Template, 5, 5, "ng-container", 0);
115
148
  } if (rf & 2) {
116
- const _r1 = i0.ɵɵreference(6);
149
+ i0.ɵɵproperty("ngIf", !ctx.button);
117
150
  i0.ɵɵadvance(1);
118
- i0.ɵɵproperty("placeholder", i0.ɵɵpipeBind1(3, 7, ctx.placeholder))("ngModel", ctx.dateValue)("disabled", ctx.disabled)("required", ctx.required)("min", ctx.minDate)("matDatepicker", _r1);
119
- i0.ɵɵadvance(3);
120
- i0.ɵɵproperty("for", _r1);
121
- } }, dependencies: [i1.DefaultValueAccessor, i1.NgControlStatus, i1.RequiredValidator, i1.NgModel, i2.MatFormField, i2.MatSuffix, i3.MatInput, i4.MatDatepicker, i4.MatDatepickerInput, i4.MatDatepickerToggle, i5.InfoTranslatePipe], encapsulation: 2 }); }
151
+ i0.ɵɵproperty("ngIf", ctx.button);
152
+ } }, dependencies: [i1.NgIf, i2.DefaultValueAccessor, i2.NgControlStatus, i2.RequiredValidator, i2.NgModel, i3.MatFormField, i3.MatSuffix, i4.MatInput, i5.MatDatepicker, i5.MatDatepickerInput, i5.MatDatepickerToggle, i6.InfoTranslatePipe], encapsulation: 2 });
122
153
  }
123
154
  (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(InfoDateMonthComponent, [{
124
155
  type: Component,
@@ -130,7 +161,7 @@ export class InfoDateMonthComponent {
130
161
  { provide: MAT_DATE_LOCALE, useValue: 'pt-BR' },
131
162
  { provide: DateAdapter, useClass: MomentDateAdapter, deps: [MAT_DATE_LOCALE] },
132
163
  { provide: MAT_DATE_FORMATS, useValue: PT_BR_DATE_MONTH_FORMATS },
133
- { provide: MAT_MOMENT_DATE_ADAPTER_OPTIONS, useValue: { useUtc: true } }], template: "<mat-form-field>\r\n <input matInput [placeholder]=\"placeholder | translate\" [(ngModel)]=\"dateValue\" [disabled]=\"disabled\" [required]=\"required\" [min]=\"minDate\"\r\n (dateChange)=\"onChangeValue()\" (input)=\"onInputDate($event.target.value)\" (keypress)=\"onKeyPress($event)\" (blur)=\"onChangeValue()\" [matDatepicker]=\"datepicker\" #inputDate >\r\n\r\n <mat-datepicker-toggle matSuffix [for]=\"datepicker\"></mat-datepicker-toggle>\r\n <mat-datepicker #datepicker startView=\"multi-year\" (yearSelected)=\"chosenYearHandler($event)\" (monthSelected)=\"chosenMonthHandler($event, datepicker)\"></mat-datepicker>\r\n</mat-form-field> " }]
164
+ { provide: MAT_MOMENT_DATE_ADAPTER_OPTIONS, useValue: { useUtc: true } }], template: "<mat-form-field *ngIf=\"!button\">\r\n <input matInput [placeholder]=\"placeholder | translate\" [(ngModel)]=\"dateValue\" [disabled]=\"disabled\" [required]=\"required\" [min]=\"minDate\"\r\n (dateChange)=\"onChangeValue()\" (input)=\"onInputDate($event.target.value)\" (keypress)=\"onKeyPress($event)\" (blur)=\"onChangeValue()\" [matDatepicker]=\"datepicker\" #inputDate >\r\n\r\n <mat-datepicker-toggle matSuffix [for]=\"datepicker\"></mat-datepicker-toggle>\r\n <mat-datepicker #datepicker startView=\"multi-year\" (yearSelected)=\"chosenYearHandler($event)\" (monthSelected)=\"chosenMonthHandler($event, datepicker)\"></mat-datepicker>\r\n</mat-form-field>\r\n\r\n<ng-container *ngIf=\"button\">\r\n <input class=\"mat-button\" type=\"button\" (click)=\"datepicker.open()\" [(ngModel)]=\"dateValue\" [disabled]=\"disabled\" [required]=\"required\" [min]=\"minDate\"\r\n (dateChange)=\"onChangeValue()\" (input)=\"onInputDate($event.target.value)\" [matDatepicker]=\"datepicker\" #inputDate>\r\n\r\n <mat-datepicker #datepicker startView=\"multi-year\" (yearSelected)=\"chosenYearHandler($event)\" (monthSelected)=\"chosenMonthHandler($event, datepicker)\"></mat-datepicker>\r\n</ng-container>" }]
134
165
  }], null, { placeholder: [{
135
166
  type: Input
136
167
  }], disabled: [{
@@ -141,8 +172,10 @@ export class InfoDateMonthComponent {
141
172
  type: Input
142
173
  }], minDate: [{
143
174
  type: Input
175
+ }], button: [{
176
+ type: Input
144
177
  }], input: [{
145
178
  type: ViewChild,
146
179
  args: ['inputDate', { static: false }]
147
180
  }] }); })();
148
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS1tb250aC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9pbmZvLWxpYnJhcnkvc3JjL2NvbnRyb2xzL2RhdGUtbW9udGgvZGF0ZS1tb250aC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9pbmZvLWxpYnJhcnkvc3JjL2NvbnRyb2xzL2RhdGUtbW9udGgvZGF0ZS1tb250aC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxLQUFLLEVBQVUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2hGLE9BQU8sRUFBd0IsaUJBQWlCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN6RSxPQUFPLEVBQUUsZUFBZSxFQUFFLFdBQVcsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3hGLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSwrQkFBK0IsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBRXRHLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQzlFLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBRS9ELE9BQU8sTUFBTSxNQUFNLFFBQVEsQ0FBQzs7Ozs7Ozs7QUFFNUIsTUFBTSxDQUFDLE1BQU0sd0JBQXdCLEdBQUc7SUFDcEMsS0FBSyxFQUFFO1FBQ0gsU0FBUyxFQUFFLFNBQVM7S0FDdkI7SUFDRCxPQUFPLEVBQUU7UUFDTCxTQUFTLEVBQUUsU0FBUztRQUNwQixjQUFjLEVBQUUsVUFBVTtRQUMxQixhQUFhLEVBQUUsSUFBSTtRQUNuQixrQkFBa0IsRUFBRSxXQUFXO0tBQ2xDO0NBQ0osQ0FBQztBQWVGLE1BQU0sT0FBTyxzQkFBc0I7SUFibkM7UUFnQmEsYUFBUSxHQUFZLEtBQUssQ0FBQztRQUMxQixhQUFRLEdBQVks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QUMsMEtBQWtCLGVBQUEsbUNBQXNDLENBQUEsSUFBeEQ7WUFBMEQsaUJBQWlCLEVBQUE7OztZQUp4SixlQUF1QztZQUF2QyxtRUFBdUMsMEJBQUEsMEJBQUEsMEJBQUEsb0JBQUEsc0JBQUE7WUFHdEIsZUFBa0I7WUFBbEIseUJBQWtCOzs7dUZEK0IxQyxzQkFBc0I7Y0FibEMsU0FBUzsyQkFDSSxpQkFBaUIsYUFFaEIsQ0FBQzt3QkFDUixPQUFPLEVBQUUsaUJBQWlCO3dCQUMxQixXQUFXLEVBQUUsVUFBVSxFQUFDLEdBQUcsRUFBRSx1QkFBdUIsRUFBQzt3QkFDckQsS0FBSyxFQUFFLElBQUk7cUJBQ2Q7b0JBQ0QsRUFBRSxPQUFPLEVBQUUsZUFBZSxFQUFFLFFBQVEsRUFBRSxPQUFPLEVBQUU7b0JBQy9DLEVBQUUsT0FBTyxFQUFFLFdBQVcsRUFBRSxRQUFRLEVBQUUsaUJBQWlCLEVBQUUsSUFBSSxFQUFFLENBQUMsZUFBZSxDQUFDLEVBQUU7b0JBQzlFLEVBQUUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLFFBQVEsRUFBRSx3QkFBd0IsRUFBRTtvQkFDakUsRUFBRSxPQUFPLEVBQUUsK0JBQStCLEVBQUUsUUFBUSxFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxFQUFFLENBQUM7Z0JBSWhFLFdBQVc7a0JBQW5CLEtBQUs7WUFDRyxRQUFRO2tCQUFoQixLQUFLO1lBQ0csUUFBUTtrQkFBaEIsS0FBSztZQUNHLGlCQUFpQjtrQkFBekIsS0FBSztZQUNHLE9BQU87a0JBQWYsS0FBSztZQUVxQyxLQUFLO2tCQUEvQyxTQUFTO21CQUFDLFdBQVcsRUFBRSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIGZvcndhcmRSZWYsIElucHV0LCBPbkluaXQsIFZpZXdDaGlsZCB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7IENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBOR19WQUxVRV9BQ0NFU1NPUiB9IGZyb20gXCJAYW5ndWxhci9mb3Jtc1wiO1xyXG5pbXBvcnQgeyBNQVRfREFURV9MT0NBTEUsIERhdGVBZGFwdGVyLCBNQVRfREFURV9GT1JNQVRTIH0gZnJvbSBcIkBhbmd1bGFyL21hdGVyaWFsL2NvcmVcIjtcclxuaW1wb3J0IHsgTW9tZW50RGF0ZUFkYXB0ZXIsIE1BVF9NT01FTlRfREFURV9BREFQVEVSX09QVElPTlMgfSBmcm9tIFwiQGFuZ3VsYXIvbWF0ZXJpYWwtbW9tZW50LWFkYXB0ZXJcIjtcclxuaW1wb3J0IHsgTWF0RGF0ZXBpY2tlciB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RhdGVwaWNrZXInO1xyXG5pbXBvcnQgeyBjcmVhdGVUZXh0TWFza0lucHV0RWxlbWVudCB9IGZyb20gXCJ0ZXh0LW1hc2stY29yZS9kaXN0L3RleHRNYXNrQ29yZVwiO1xyXG5pbXBvcnQgeyBjcmVhdGVBdXRvQ29ycmVjdGVkRGF0ZVBpcGUgfSBmcm9tIFwidGV4dC1tYXNrLWFkZG9uc1wiO1xyXG5pbXBvcnQgeyBNb21lbnQgfSBmcm9tIFwibW9tZW50XCI7XHJcbmltcG9ydCBtb21lbnQgZnJvbSBcIm1vbWVudFwiO1xyXG5cclxuZXhwb3J0IGNvbnN0IFBUX0JSX0RBVEVfTU9OVEhfRk9STUFUUyA9IHtcclxuICAgIHBhcnNlOiB7XHJcbiAgICAgICAgZGF0ZUlucHV0OiAnTU0vWVlZWScsXHJcbiAgICB9LFxyXG4gICAgZGlzcGxheToge1xyXG4gICAgICAgIGRhdGVJbnB1dDogJ01NL1lZWVknLFxyXG4gICAgICAgIG1vbnRoWWVhckxhYmVsOiAnTU1NIFlZWVknLFxyXG4gICAgICAgIGRhdGVBMTF5TGFiZWw6ICdMTCcsXHJcbiAgICAgICAgbW9udGhZZWFyQTExeUxhYmVsOiAnTU1NTSBZWVlZJyxcclxuICAgIH0sXHJcbn07XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICAgIHNlbGVjdG9yOiAnaW5mby1kYXRlLW1vbnRoJyxcclxuICAgIHRlbXBsYXRlVXJsOiAnLi9kYXRlLW1vbnRoLmNvbXBvbmVudC5odG1sJyxcclxuICAgIHByb3ZpZGVyczogW3tcclxuICAgICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcclxuICAgICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBJbmZvRGF0ZU1vbnRoQ29tcG9uZW50KSxcclxuICAgICAgICBtdWx0aTogdHJ1ZVxyXG4gICAgfSxcclxuICAgIHsgcHJvdmlkZTogTUFUX0RBVEVfTE9DQUxFLCB1c2VWYWx1ZTogJ3B0LUJSJyB9LFxyXG4gICAgeyBwcm92aWRlOiBEYXRlQWRhcHRlciwgdXNlQ2xhc3M6IE1vbWVudERhdGVBZGFwdGVyLCBkZXBzOiBbTUFUX0RBVEVfTE9DQUxFXSB9LFxyXG4gICAgeyBwcm92aWRlOiBNQVRfREFURV9GT1JNQVRTLCB1c2VWYWx1ZTogUFRfQlJfREFURV9NT05USF9GT1JNQVRTIH0sXHJcbiAgICB7IHByb3ZpZGU6IE1BVF9NT01FTlRfREFURV9BREFQVEVSX09QVElPTlMsIHVzZVZhbHVlOiB7IHVzZVV0YzogdHJ1ZSB9IH1dXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBJbmZvRGF0ZU1vbnRoQ29tcG9uZW50IGltcGxlbWVudHMgQ29udHJvbFZhbHVlQWNjZXNzb3Ige1xyXG5cclxuICAgIEBJbnB1dCgpIHBsYWNlaG9sZGVyOiBzdHJpbmc7XHJcbiAgICBASW5wdXQoKSBkaXNhYmxlZDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gICAgQElucHV0KCkgcmVxdWlyZWQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuICAgIEBJbnB1dCgpIGNoYW5nZW9ubHlvbm1vbnRoOiBib29sZWFuID0gZmFsc2U7XHJcbiAgICBASW5wdXQoKSBtaW5EYXRlOiBEYXRlID0gbmV3IERhdGUoMTgwMCwgMCwgMSk7XHJcbiAgICBcclxuICAgIEBWaWV3Q2hpbGQoJ2lucHV0RGF0ZScsIHsgc3RhdGljOiBmYWxzZSB9KSBpbnB1dDtcclxuXHJcbiAgICBkYXRlVmFsdWU6IGFueTtcclxuICAgIGRhdGVNYXNrOiBhbnk7XHJcbiAgICBvbkNoYW5nZTtcclxuICAgIG9uVG91Y2hlZDtcclxuXHJcbiAgICBuZ0FmdGVyVmlld0luaXQoKSB7XHJcblxyXG4gICAgICAgIGxldCBjb25maWcgPSB7XHJcbiAgICAgICAgICAgIG1hc2s6IFsvXFxkLywgL1xcZC8sICcvJywgL1xcZC8sIC9cXGQvLCAvXFxkLywgL1xcZC9dLFxyXG4gICAgICAgICAgICBndWlkZTogdHJ1ZSxcclxuICAgICAgICAgICAgcGxhY2Vob2xkZXJDaGFyOiAnXycsXHJcbiAgICAgICAgICAgIHBpcGU6IGNyZWF0ZUF1dG9Db3JyZWN0ZWREYXRlUGlwZShQVF9CUl9EQVRFX01PTlRIX0ZPUk1BVFMucGFyc2UuZGF0ZUlucHV0LnRvTG93ZXJDYXNlKCkpLFxyXG4gICAgICAgICAgICBtb2RlbENsZWFuOiB0cnVlLFxyXG4gICAgICAgICAgICBrZWVwQ2hhclBvc2l0aW9uczogZmFsc2UsXHJcbiAgICAgICAgfTtcclxuXHJcbiAgICAgICAgdGhpcy5kYXRlTWFzayA9IGNyZWF0ZVRleHRNYXNrSW5wdXRFbGVtZW50KFxyXG4gICAgICAgICAgICBPYmplY3QuYXNzaWduKHsgaW5wdXRFbGVtZW50OiB0aGlzLmlucHV0Lm5hdGl2ZUVsZW1lbnQgfSwgY29uZmlnKVxyXG4gICAgICAgICk7XHJcbiAgICB9XHJcblxyXG4gICAgb25JbnB1dERhdGUodmFsdWUpIHtcclxuICAgICAgICB0aGlzLmRhdGVNYXNrLnVwZGF0ZSh2YWx1ZSk7XHJcbiAgICB9XHJcblxyXG4gICAgb25DaGFuZ2VWYWx1ZSgpIHtcclxuICAgICAgICBpZiAodGhpcy5vbkNoYW5nZSAhPSBudWxsKSB7XHJcbiAgICAgICAgICAgIGlmIChtb21lbnQodGhpcy5kYXRlVmFsdWUpLmlzQmVmb3JlKG1vbWVudCh0aGlzLm1pbkRhdGUpKSlcclxuICAgICAgICAgICAgICAgdGhpcy5kYXRlVmFsdWUgPSB0aGlzLm1pbkRhdGU7XHJcblxyXG4gICAgICAgICAgICB0aGlzLm9uQ2hhbmdlKHRoaXMuZGF0ZVZhbHVlKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgd3JpdGVWYWx1ZSh2YWx1ZTogYW55KTogdm9pZCB7XHJcbiAgICAgICAgaWYgKHZhbHVlID09IG51bGwgfHwgdmFsdWUgPT0gdW5kZWZpbmVkKVxyXG4gICAgICAgICAgICB0aGlzLmRhdGVWYWx1ZSA9IG51bGw7XHJcbiAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgIHZhbHVlID0gbmV3IERhdGUodmFsdWUpO1xyXG4gICAgICAgICAgICB2YWx1ZS5zZXRNaW51dGVzKHZhbHVlLmdldE1pbnV0ZXMoKSArIHZhbHVlLmdldFRpbWV6b25lT2Zmc2V0KCkpO1xyXG4gICAgICAgICAgICB2YWx1ZSA9IG5ldyBEYXRlKHZhbHVlLmdldEZ1bGxZZWFyKCksIHZhbHVlLmdldE1vbnRoKCksIDEpO1xyXG4gICAgICAgICAgICB0aGlzLmRhdGVWYWx1ZSA9IHZhbHVlO1xyXG4gICAgICAgIH1cclxuICAgICAgICBcclxuICAgICAgICB0aGlzLm9uQ2hhbmdlVmFsdWUoKTtcclxuICAgIH1cclxuXHJcbiAgICByZWdpc3Rlck9uQ2hhbmdlKGZuOiBhbnkpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLm9uQ2hhbmdlID0gZm47XHJcbiAgICB9XHJcblxyXG4gICAgcmVnaXN0ZXJPblRvdWNoZWQoZm46IGFueSk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMub25Ub3VjaGVkID0gZm47XHJcbiAgICB9XHJcblxyXG4gICAgc2V0RGlzYWJsZWRTdGF0ZT8oaXNEaXNhYmxlZDogYm9vbGVhbik6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuZGlzYWJsZWQgPSBpc0Rpc2FibGVkO1xyXG4gICAgfVxyXG5cclxuICAgIGNob3NlblllYXJIYW5kbGVyKHZhbHVlOiBNb21lbnQpIHtcclxuICAgICAgICBpZiAodGhpcy5jaGFuZ2Vvbmx5b25tb250aClcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIGxldCBhdXggPSBuZXcgRGF0ZSh2YWx1ZS55ZWFyKCksIG5ldyBEYXRlKHRoaXMuZGF0ZVZhbHVlKS5nZXRNb250aCgpLCAxKTtcclxuICAgICAgICB0aGlzLmRhdGVWYWx1ZSA9IGF1eDtcclxuICAgICAgICB0aGlzLm9uQ2hhbmdlVmFsdWUoKTtcclxuICAgIH1cclxuXHJcbiAgICBjaG9zZW5Nb250aEhhbmRsZXIodmFsdWU6IE1vbWVudCwgZGF0ZXBpY2tlcjogTWF0RGF0ZXBpY2tlcjxNb21lbnQ+KSB7XHJcbiAgICAgICAgbGV0IGF1eCA9IG5ldyBEYXRlKHZhbHVlLnllYXIoKSwgdmFsdWUubW9udGgoKSwgMSk7XHJcbiAgICAgICAgdGhpcy5kYXRlVmFsdWUgPSBhdXg7XHJcbiAgICAgICAgdGhpcy5vbkNoYW5nZVZhbHVlKCk7XHJcbiAgICAgICAgZGF0ZXBpY2tlci5jbG9zZSgpO1xyXG4gICAgfVxyXG4gICAgXHJcbiAgICBvbktleVByZXNzKGUpe1xyXG4gICAgICAgIGlmIChlLmtleUNvZGUgPT0gMTMpXHJcbiAgICAgICAgICAgIHRoaXMub25DaGFuZ2VWYWx1ZSgpO1xyXG4gICAgfVxyXG59IiwiPG1hdC1mb3JtLWZpZWxkPlxyXG4gICAgPGlucHV0IG1hdElucHV0IFtwbGFjZWhvbGRlcl09XCJwbGFjZWhvbGRlciB8IHRyYW5zbGF0ZVwiIFsobmdNb2RlbCldPVwiZGF0ZVZhbHVlXCIgW2Rpc2FibGVkXT1cImRpc2FibGVkXCIgW3JlcXVpcmVkXT1cInJlcXVpcmVkXCIgW21pbl09XCJtaW5EYXRlXCJcclxuICAgICAgICAgICAoZGF0ZUNoYW5nZSk9XCJvbkNoYW5nZVZhbHVlKClcIiAoaW5wdXQpPVwib25JbnB1dERhdGUoJGV2ZW50LnRhcmdldC52YWx1ZSlcIiAoa2V5cHJlc3MpPVwib25LZXlQcmVzcygkZXZlbnQpXCIgKGJsdXIpPVwib25DaGFuZ2VWYWx1ZSgpXCIgW21hdERhdGVwaWNrZXJdPVwiZGF0ZXBpY2tlclwiICNpbnB1dERhdGUgPlxyXG5cclxuICAgIDxtYXQtZGF0ZXBpY2tlci10b2dnbGUgbWF0U3VmZml4IFtmb3JdPVwiZGF0ZXBpY2tlclwiPjwvbWF0LWRhdGVwaWNrZXItdG9nZ2xlPlxyXG4gICAgPG1hdC1kYXRlcGlja2VyICNkYXRlcGlja2VyIHN0YXJ0Vmlldz1cIm11bHRpLXllYXJcIiAoeWVhclNlbGVjdGVkKT1cImNob3NlblllYXJIYW5kbGVyKCRldmVudClcIiAobW9udGhTZWxlY3RlZCk9XCJjaG9zZW5Nb250aEhhbmRsZXIoJGV2ZW50LCBkYXRlcGlja2VyKVwiPjwvbWF0LWRhdGVwaWNrZXI+XHJcbjwvbWF0LWZvcm0tZmllbGQ+ICAgIl19
181
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS1tb250aC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9pbmZvLWxpYnJhcnkvc3JjL2NvbnRyb2xzL2RhdGUtbW9udGgvZGF0ZS1tb250aC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9pbmZvLWxpYnJhcnkvc3JjL2NvbnRyb2xzL2RhdGUtbW9udGgvZGF0ZS1tb250aC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxLQUFLLEVBQVUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2hGLE9BQU8sRUFBd0IsaUJBQWlCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN6RSxPQUFPLEVBQUUsZUFBZSxFQUFFLFdBQVcsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3hGLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSwrQkFBK0IsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBRXRHLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQzlFLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBRS9ELE9BQU8sTUFBTSxNQUFNLFFBQVEsQ0FBQzs7Ozs7Ozs7Ozs7SUNSNUIsc0NBQWdDLGtCQUFBO0lBQzRCLGdQQUF1QiwwS0FDMUQsZUFBQSxzQkFBZSxDQUFBLElBRDJDLHNLQUNoQyxlQUFBLHVDQUFnQyxDQUFBLElBREEsNEtBQ2MsZUFBQSx5QkFBa0IsQ0FBQSxJQURoQyw4SkFDMEMsZUFBQSxzQkFBZSxDQUFBLElBRHpEOztJQUEvRSxpQkFDbUw7SUFFbkwsMkNBQTRFO0lBQzVFLDRDQUF1SjtJQUFwRywyTUFBZ0IsZUFBQSxpQ0FBeUIsQ0FBQSxJQUFDLCtOQUFrQixlQUFBLHVDQUFzQyxDQUFBLElBQXhEO0lBQTBE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QUFJLEVBQUUsQ0FBQyxlQUFlLENBQUMsRUFBRTtvQkFDOUUsRUFBRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsUUFBUSxFQUFFLHdCQUF3QixFQUFFO29CQUNqRSxFQUFFLE9BQU8sRUFBRSwrQkFBK0IsRUFBRSxRQUFRLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLEVBQUUsQ0FBQztnQkFJaEUsV0FBVztrQkFBbkIsS0FBSztZQUNHLFFBQVE7a0JBQWhCLEtBQUs7WUFDRyxRQUFRO2tCQUFoQixLQUFLO1lBQ0csaUJBQWlCO2tCQUF6QixLQUFLO1lBQ0csT0FBTztrQkFBZixLQUFLO1lBQ0csTUFBTTtrQkFBZCxLQUFLO1lBRXFDLEtBQUs7a0JBQS9DLFNBQVM7bUJBQUMsV0FBVyxFQUFFLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgZm9yd2FyZFJlZiwgSW5wdXQsIE9uSW5pdCwgVmlld0NoaWxkIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHsgQ29udHJvbFZhbHVlQWNjZXNzb3IsIE5HX1ZBTFVFX0FDQ0VTU09SIH0gZnJvbSBcIkBhbmd1bGFyL2Zvcm1zXCI7XHJcbmltcG9ydCB7IE1BVF9EQVRFX0xPQ0FMRSwgRGF0ZUFkYXB0ZXIsIE1BVF9EQVRFX0ZPUk1BVFMgfSBmcm9tIFwiQGFuZ3VsYXIvbWF0ZXJpYWwvY29yZVwiO1xyXG5pbXBvcnQgeyBNb21lbnREYXRlQWRhcHRlciwgTUFUX01PTUVOVF9EQVRFX0FEQVBURVJfT1BUSU9OUyB9IGZyb20gXCJAYW5ndWxhci9tYXRlcmlhbC1tb21lbnQtYWRhcHRlclwiO1xyXG5pbXBvcnQgeyBNYXREYXRlcGlja2VyIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGF0ZXBpY2tlcic7XHJcbmltcG9ydCB7IGNyZWF0ZVRleHRNYXNrSW5wdXRFbGVtZW50IH0gZnJvbSBcInRleHQtbWFzay1jb3JlL2Rpc3QvdGV4dE1hc2tDb3JlXCI7XHJcbmltcG9ydCB7IGNyZWF0ZUF1dG9Db3JyZWN0ZWREYXRlUGlwZSB9IGZyb20gXCJ0ZXh0LW1hc2stYWRkb25zXCI7XHJcbmltcG9ydCB7IE1vbWVudCB9IGZyb20gXCJtb21lbnRcIjtcclxuaW1wb3J0IG1vbWVudCBmcm9tIFwibW9tZW50XCI7XHJcblxyXG5leHBvcnQgY29uc3QgUFRfQlJfREFURV9NT05USF9GT1JNQVRTID0ge1xyXG4gICAgcGFyc2U6IHtcclxuICAgICAgICBkYXRlSW5wdXQ6ICdNTS9ZWVlZJyxcclxuICAgIH0sXHJcbiAgICBkaXNwbGF5OiB7XHJcbiAgICAgICAgZGF0ZUlucHV0OiAnTU0vWVlZWScsXHJcbiAgICAgICAgbW9udGhZZWFyTGFiZWw6ICdNTU0gWVlZWScsXHJcbiAgICAgICAgZGF0ZUExMXlMYWJlbDogJ0xMJyxcclxuICAgICAgICBtb250aFllYXJBMTF5TGFiZWw6ICdNTU1NIFlZWVknLFxyXG4gICAgfSxcclxufTtcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gICAgc2VsZWN0b3I6ICdpbmZvLWRhdGUtbW9udGgnLFxyXG4gICAgdGVtcGxhdGVVcmw6ICcuL2RhdGUtbW9udGguY29tcG9uZW50Lmh0bWwnLFxyXG4gICAgcHJvdmlkZXJzOiBbe1xyXG4gICAgICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxyXG4gICAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IEluZm9EYXRlTW9udGhDb21wb25lbnQpLFxyXG4gICAgICAgIG11bHRpOiB0cnVlXHJcbiAgICB9LFxyXG4gICAgeyBwcm92aWRlOiBNQVRfREFURV9MT0NBTEUsIHVzZVZhbHVlOiAncHQtQlInIH0sXHJcbiAgICB7IHByb3ZpZGU6IERhdGVBZGFwdGVyLCB1c2VDbGFzczogTW9tZW50RGF0ZUFkYXB0ZXIsIGRlcHM6IFtNQVRfREFURV9MT0NBTEVdIH0sXHJcbiAgICB7IHByb3ZpZGU6IE1BVF9EQVRFX0ZPUk1BVFMsIHVzZVZhbHVlOiBQVF9CUl9EQVRFX01PTlRIX0ZPUk1BVFMgfSxcclxuICAgIHsgcHJvdmlkZTogTUFUX01PTUVOVF9EQVRFX0FEQVBURVJfT1BUSU9OUywgdXNlVmFsdWU6IHsgdXNlVXRjOiB0cnVlIH0gfV1cclxufSlcclxuZXhwb3J0IGNsYXNzIEluZm9EYXRlTW9udGhDb21wb25lbnQgaW1wbGVtZW50cyBDb250cm9sVmFsdWVBY2Nlc3NvciB7XHJcblxyXG4gICAgQElucHV0KCkgcGxhY2Vob2xkZXI6IHN0cmluZztcclxuICAgIEBJbnB1dCgpIGRpc2FibGVkOiBib29sZWFuID0gZmFsc2U7XHJcbiAgICBASW5wdXQoKSByZXF1aXJlZDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gICAgQElucHV0KCkgY2hhbmdlb25seW9ubW9udGg6IGJvb2xlYW4gPSBmYWxzZTtcclxuICAgIEBJbnB1dCgpIG1pbkRhdGU6IERhdGUgPSBuZXcgRGF0ZSgxODAwLCAwLCAxKTtcclxuICAgIEBJbnB1dCgpIGJ1dHRvbjogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICAgIEBWaWV3Q2hpbGQoJ2lucHV0RGF0ZScsIHsgc3RhdGljOiBmYWxzZSB9KSBpbnB1dDtcclxuXHJcbiAgICBkYXRlVmFsdWU6IGFueTtcclxuICAgIGRhdGVNYXNrOiBhbnk7XHJcbiAgICBvbkNoYW5nZTtcclxuICAgIG9uVG91Y2hlZDtcclxuXHJcbiAgICBuZ0FmdGVyVmlld0luaXQoKSB7XHJcblxyXG4gICAgICAgIGxldCBjb25maWcgPSB7XHJcbiAgICAgICAgICAgIG1hc2s6IFsvXFxkLywgL1xcZC8sICcvJywgL1xcZC8sIC9cXGQvLCAvXFxkLywgL1xcZC9dLFxyXG4gICAgICAgICAgICBndWlkZTogdHJ1ZSxcclxuICAgICAgICAgICAgcGxhY2Vob2xkZXJDaGFyOiAnXycsXHJcbiAgICAgICAgICAgIHBpcGU6IGNyZWF0ZUF1dG9Db3JyZWN0ZWREYXRlUGlwZShQVF9CUl9EQVRFX01PTlRIX0ZPUk1BVFMucGFyc2UuZGF0ZUlucHV0LnRvTG93ZXJDYXNlKCkpLFxyXG4gICAgICAgICAgICBtb2RlbENsZWFuOiB0cnVlLFxyXG4gICAgICAgICAgICBrZWVwQ2hhclBvc2l0aW9uczogZmFsc2UsXHJcbiAgICAgICAgfTtcclxuXHJcbiAgICAgICAgdGhpcy5kYXRlTWFzayA9IGNyZWF0ZVRleHRNYXNrSW5wdXRFbGVtZW50KFxyXG4gICAgICAgICAgICBPYmplY3QuYXNzaWduKHsgaW5wdXRFbGVtZW50OiB0aGlzLmlucHV0Lm5hdGl2ZUVsZW1lbnQgfSwgY29uZmlnKVxyXG4gICAgICAgICk7XHJcbiAgICB9XHJcblxyXG4gICAgb25JbnB1dERhdGUodmFsdWUpIHtcclxuICAgICAgICB0aGlzLmRhdGVNYXNrLnVwZGF0ZSh2YWx1ZSk7XHJcbiAgICB9XHJcblxyXG4gICAgb25DaGFuZ2VWYWx1ZSgpIHtcclxuICAgICAgICBpZiAodGhpcy5vbkNoYW5nZSAhPSBudWxsKSB7XHJcbiAgICAgICAgICAgIGlmIChtb21lbnQodGhpcy5kYXRlVmFsdWUpLmlzQmVmb3JlKG1vbWVudCh0aGlzLm1pbkRhdGUpKSlcclxuICAgICAgICAgICAgICAgdGhpcy5kYXRlVmFsdWUgPSB0aGlzLm1pbkRhdGU7XHJcblxyXG4gICAgICAgICAgICB0aGlzLm9uQ2hhbmdlKHRoaXMuZGF0ZVZhbHVlKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgd3JpdGVWYWx1ZSh2YWx1ZTogYW55KTogdm9pZCB7XHJcbiAgICAgICAgaWYgKHZhbHVlID09IG51bGwgfHwgdmFsdWUgPT0gdW5kZWZpbmVkKVxyXG4gICAgICAgICAgICB0aGlzLmRhdGVWYWx1ZSA9IG51bGw7XHJcbiAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgIHZhbHVlID0gbmV3IERhdGUodmFsdWUpO1xyXG4gICAgICAgICAgICB2YWx1ZS5zZXRNaW51dGVzKHZhbHVlLmdldE1pbnV0ZXMoKSArIHZhbHVlLmdldFRpbWV6b25lT2Zmc2V0KCkpO1xyXG4gICAgICAgICAgICB2YWx1ZSA9IG5ldyBEYXRlKHZhbHVlLmdldEZ1bGxZZWFyKCksIHZhbHVlLmdldE1vbnRoKCksIDEpO1xyXG4gICAgICAgICAgICB0aGlzLmRhdGVWYWx1ZSA9IHZhbHVlO1xyXG4gICAgICAgIH1cclxuICAgICAgICBcclxuICAgICAgICB0aGlzLm9uQ2hhbmdlVmFsdWUoKTtcclxuICAgIH1cclxuXHJcbiAgICByZWdpc3Rlck9uQ2hhbmdlKGZuOiBhbnkpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLm9uQ2hhbmdlID0gZm47XHJcbiAgICB9XHJcblxyXG4gICAgcmVnaXN0ZXJPblRvdWNoZWQoZm46IGFueSk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMub25Ub3VjaGVkID0gZm47XHJcbiAgICB9XHJcblxyXG4gICAgc2V0RGlzYWJsZWRTdGF0ZT8oaXNEaXNhYmxlZDogYm9vbGVhbik6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuZGlzYWJsZWQgPSBpc0Rpc2FibGVkO1xyXG4gICAgfVxyXG5cclxuICAgIGNob3NlblllYXJIYW5kbGVyKHZhbHVlOiBNb21lbnQpIHtcclxuICAgICAgICBpZiAodGhpcy5jaGFuZ2Vvbmx5b25tb250aClcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIGxldCBhdXggPSBuZXcgRGF0ZSh2YWx1ZS55ZWFyKCksIG5ldyBEYXRlKHRoaXMuZGF0ZVZhbHVlKS5nZXRNb250aCgpLCAxKTtcclxuICAgICAgICB0aGlzLmRhdGVWYWx1ZSA9IGF1eDtcclxuICAgICAgICB0aGlzLm9uQ2hhbmdlVmFsdWUoKTtcclxuICAgIH1cclxuXHJcbiAgICBjaG9zZW5Nb250aEhhbmRsZXIodmFsdWU6IE1vbWVudCwgZGF0ZXBpY2tlcjogTWF0RGF0ZXBpY2tlcjxNb21lbnQ+KSB7XHJcbiAgICAgICAgbGV0IGF1eCA9IG5ldyBEYXRlKHZhbHVlLnllYXIoKSwgdmFsdWUubW9udGgoKSwgMSk7XHJcbiAgICAgICAgdGhpcy5kYXRlVmFsdWUgPSBhdXg7XHJcbiAgICAgICAgdGhpcy5vbkNoYW5nZVZhbHVlKCk7XHJcbiAgICAgICAgZGF0ZXBpY2tlci5jbG9zZSgpO1xyXG4gICAgfVxyXG4gICAgXHJcbiAgICBvbktleVByZXNzKGUpe1xyXG4gICAgICAgIGlmIChlLmtleUNvZGUgPT0gMTMpXHJcbiAgICAgICAgICAgIHRoaXMub25DaGFuZ2VWYWx1ZSgpO1xyXG4gICAgfVxyXG59IiwiPG1hdC1mb3JtLWZpZWxkICpuZ0lmPVwiIWJ1dHRvblwiPlxyXG4gICAgPGlucHV0IG1hdElucHV0IFtwbGFjZWhvbGRlcl09XCJwbGFjZWhvbGRlciB8IHRyYW5zbGF0ZVwiIFsobmdNb2RlbCldPVwiZGF0ZVZhbHVlXCIgW2Rpc2FibGVkXT1cImRpc2FibGVkXCIgW3JlcXVpcmVkXT1cInJlcXVpcmVkXCIgW21pbl09XCJtaW5EYXRlXCJcclxuICAgICAgICAgICAoZGF0ZUNoYW5nZSk9XCJvbkNoYW5nZVZhbHVlKClcIiAoaW5wdXQpPVwib25JbnB1dERhdGUoJGV2ZW50LnRhcmdldC52YWx1ZSlcIiAoa2V5cHJlc3MpPVwib25LZXlQcmVzcygkZXZlbnQpXCIgKGJsdXIpPVwib25DaGFuZ2VWYWx1ZSgpXCIgW21hdERhdGVwaWNrZXJdPVwiZGF0ZXBpY2tlclwiICNpbnB1dERhdGUgPlxyXG5cclxuICAgIDxtYXQtZGF0ZXBpY2tlci10b2dnbGUgbWF0U3VmZml4IFtmb3JdPVwiZGF0ZXBpY2tlclwiPjwvbWF0LWRhdGVwaWNrZXItdG9nZ2xlPlxyXG4gICAgPG1hdC1kYXRlcGlja2VyICNkYXRlcGlja2VyIHN0YXJ0Vmlldz1cIm11bHRpLXllYXJcIiAoeWVhclNlbGVjdGVkKT1cImNob3NlblllYXJIYW5kbGVyKCRldmVudClcIiAobW9udGhTZWxlY3RlZCk9XCJjaG9zZW5Nb250aEhhbmRsZXIoJGV2ZW50LCBkYXRlcGlja2VyKVwiPjwvbWF0LWRhdGVwaWNrZXI+XHJcbjwvbWF0LWZvcm0tZmllbGQ+XHJcblxyXG48bmctY29udGFpbmVyICpuZ0lmPVwiYnV0dG9uXCI+XHJcbiAgICA8aW5wdXQgY2xhc3M9XCJtYXQtYnV0dG9uXCIgdHlwZT1cImJ1dHRvblwiIChjbGljayk9XCJkYXRlcGlja2VyLm9wZW4oKVwiIFsobmdNb2RlbCldPVwiZGF0ZVZhbHVlXCIgW2Rpc2FibGVkXT1cImRpc2FibGVkXCIgW3JlcXVpcmVkXT1cInJlcXVpcmVkXCIgW21pbl09XCJtaW5EYXRlXCJcclxuICAgICAgICAgICAoZGF0ZUNoYW5nZSk9XCJvbkNoYW5nZVZhbHVlKClcIiAoaW5wdXQpPVwib25JbnB1dERhdGUoJGV2ZW50LnRhcmdldC52YWx1ZSlcIiBbbWF0RGF0ZXBpY2tlcl09XCJkYXRlcGlja2VyXCIgI2lucHV0RGF0ZT5cclxuXHJcbiAgICA8bWF0LWRhdGVwaWNrZXIgI2RhdGVwaWNrZXIgc3RhcnRWaWV3PVwibXVsdGkteWVhclwiICh5ZWFyU2VsZWN0ZWQpPVwiY2hvc2VuWWVhckhhbmRsZXIoJGV2ZW50KVwiIChtb250aFNlbGVjdGVkKT1cImNob3Nlbk1vbnRoSGFuZGxlcigkZXZlbnQsIGRhdGVwaWNrZXIpXCI+PC9tYXQtZGF0ZXBpY2tlcj5cclxuPC9uZy1jb250YWluZXI+Il19
@@ -8,6 +8,11 @@ import * as i2 from "@angular/forms";
8
8
  import * as i3 from "@kolkov/angular-editor";
9
9
  const _c0 = ["editor"];
10
10
  export class InfoEditorComponent {
11
+ _sanitizer;
12
+ editor;
13
+ required = false;
14
+ enabledhtmlmode = false;
15
+ sanitize = true;
11
16
  get disabled() { return !(this.editorConfig || {}).editable; }
12
17
  set disabled(value) { this.editorConfig.editable = !value; }
13
18
  get height() { return (this.editorConfig || {}).height; }
@@ -20,35 +25,34 @@ export class InfoEditorComponent {
20
25
  set width(value) { this.editorConfig.width = value || 'auto'; }
21
26
  get minwidth() { return (this.editorConfig || {}).minWidth; }
22
27
  set minwidth(value) { this.editorConfig.minWidth = value || '0'; }
28
+ value = '';
29
+ onChange;
30
+ onTouched;
31
+ focused = false;
32
+ id = null;
33
+ editorConfig = {
34
+ editable: true,
35
+ spellcheck: true,
36
+ height: 'auto',
37
+ minHeight: '0',
38
+ maxHeight: 'auto',
39
+ width: 'auto',
40
+ minWidth: '0',
41
+ translate: 'yes',
42
+ enableToolbar: true,
43
+ showToolbar: true,
44
+ defaultParagraphSeparator: '',
45
+ toolbarPosition: 'top',
46
+ sanitize: false,
47
+ fonts: [
48
+ { class: 'arial', name: 'Arial' },
49
+ { class: 'times-new-roman', name: 'Times New Roman' },
50
+ { class: 'calibri', name: 'Calibri' },
51
+ { class: 'comic-sans-ms', name: 'Comic Sans MS' }
52
+ ],
53
+ };
23
54
  constructor(_sanitizer) {
24
55
  this._sanitizer = _sanitizer;
25
- this.required = false;
26
- this.enabledhtmlmode = false;
27
- this.sanitize = true;
28
- this.value = '';
29
- this.focused = false;
30
- this.id = null;
31
- this.editorConfig = {
32
- editable: true,
33
- spellcheck: true,
34
- height: 'auto',
35
- minHeight: '0',
36
- maxHeight: 'auto',
37
- width: 'auto',
38
- minWidth: '0',
39
- translate: 'yes',
40
- enableToolbar: true,
41
- showToolbar: true,
42
- defaultParagraphSeparator: '',
43
- toolbarPosition: 'top',
44
- sanitize: false,
45
- fonts: [
46
- { class: 'arial', name: 'Arial' },
47
- { class: 'times-new-roman', name: 'Times New Roman' },
48
- { class: 'calibri', name: 'Calibri' },
49
- { class: 'comic-sans-ms', name: 'Comic Sans MS' }
50
- ],
51
- };
52
56
  }
53
57
  ngOnInit() {
54
58
  this.id = `editor-${this.getGuid()}`;
@@ -84,8 +88,8 @@ export class InfoEditorComponent {
84
88
  setDisabledState(isDisabled) {
85
89
  this.disabled = isDisabled;
86
90
  }
87
- /** @nocollapse */ static { this.ɵfac = function InfoEditorComponent_Factory(t) { return new (t || InfoEditorComponent)(i0.ɵɵdirectiveInject(i1.DomSanitizer)); }; }
88
- /** @nocollapse */ static { this.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: InfoEditorComponent, selectors: [["info-editor"]], viewQuery: function InfoEditorComponent_Query(rf, ctx) { if (rf & 1) {
91
+ /** @nocollapse */ static ɵfac = function InfoEditorComponent_Factory(t) { return new (t || InfoEditorComponent)(i0.ɵɵdirectiveInject(i1.DomSanitizer)); };
92
+ /** @nocollapse */ static ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: InfoEditorComponent, selectors: [["info-editor"]], viewQuery: function InfoEditorComponent_Query(rf, ctx) { if (rf & 1) {
89
93
  i0.ɵɵviewQuery(_c0, 5);
90
94
  } if (rf & 2) {
91
95
  let _t;
@@ -101,7 +105,7 @@ export class InfoEditorComponent {
101
105
  } if (rf & 2) {
102
106
  i0.ɵɵproperty("ngModel", ctx.value)("config", ctx.editorConfig)("required", ctx.required);
103
107
  i0.ɵɵattribute("id", ctx.id)("focused", ctx.focused)("htmlmode", ctx.enabledhtmlmode);
104
- } }, dependencies: [i2.NgControlStatus, i2.RequiredValidator, i2.NgModel, i3.AngularEditorComponent], styles: ["[_nghost-%COMP%] [htmlmode=false] .angular-editor-toolbar-set #toggleEditorMode-{display:none}[_nghost-%COMP%] .angular-editor-toolbar-set #insertVideo-{display:none}[_nghost-%COMP%] .angular-editor-textarea{outline:none;border-top:none!important;border-left:none!important;border-right:none!important;border-bottom:solid 1px!important}[_nghost-%COMP%] .angular-editor-textarea[contenteditable=false]{border-bottom:dotted 1.5px lightgray!important}[_nghost-%COMP%] .angular-editor-wrapper:after{content:\"\";position:absolute;left:0;width:100%;height:2px;bottom:0;transform-origin:50%;transform:scaleX(.5);opacity:0;background-color:#000;transition:background-color .3s cubic-bezier(.55,0,.55,.2)}[_nghost-%COMP%] [focused=true] .angular-editor-wrapper:after{opacity:1;transform:scaleX(1);transition:transform .3s cubic-bezier(.25,.8,.25,1),opacity .1s cubic-bezier(.25,.8,.25,1),background-color .3s cubic-bezier(.25,.8,.25,1)}[_nghost-%COMP%] .ng-touched.ng-invalid .angular-editor-wrapper:after{background-color:#f44336!important}[_nghost-%COMP%] .ng-touched.ng-invalid .angular-editor-textarea[contenteditable=true]{border-bottom-color:#f44336!important}"] }); }
108
+ } }, dependencies: [i2.NgControlStatus, i2.RequiredValidator, i2.NgModel, i3.AngularEditorComponent], styles: ["[_nghost-%COMP%] [htmlmode=false] .angular-editor-toolbar-set #toggleEditorMode-{display:none}[_nghost-%COMP%] .angular-editor-toolbar-set #insertVideo-{display:none}[_nghost-%COMP%] .angular-editor-textarea{outline:none;border-top:none!important;border-left:none!important;border-right:none!important;border-bottom:solid 1px!important}[_nghost-%COMP%] .angular-editor-textarea[contenteditable=false]{border-bottom:dotted 1.5px lightgray!important}[_nghost-%COMP%] .angular-editor-wrapper:after{content:\"\";position:absolute;left:0;width:100%;height:2px;bottom:0;transform-origin:50%;transform:scaleX(.5);opacity:0;background-color:#000;transition:background-color .3s cubic-bezier(.55,0,.55,.2)}[_nghost-%COMP%] [focused=true] .angular-editor-wrapper:after{opacity:1;transform:scaleX(1);transition:transform .3s cubic-bezier(.25,.8,.25,1),opacity .1s cubic-bezier(.25,.8,.25,1),background-color .3s cubic-bezier(.25,.8,.25,1)}[_nghost-%COMP%] .ng-touched.ng-invalid .angular-editor-wrapper:after{background-color:#f44336!important}[_nghost-%COMP%] .ng-touched.ng-invalid .angular-editor-textarea[contenteditable=true]{border-bottom-color:#f44336!important}"] });
105
109
  }
106
110
  (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(InfoEditorComponent, [{
107
111
  type: Component,
@@ -132,4 +136,4 @@ export class InfoEditorComponent {
132
136
  }], minwidth: [{
133
137
  type: Input
134
138
  }] }); })();
135
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWRpdG9yLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2luZm8tbGlicmFyeS9zcmMvY29udHJvbHMvZWRpdG9yL2VkaXRvci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9pbmZvLWxpYnJhcnkvc3JjL2NvbnRyb2xzL2VkaXRvci9lZGl0b3IuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUFFLGVBQWUsRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekYsT0FBTyxFQUF3QixpQkFBaUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3pFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsc0JBQXNCLEVBQTZDLE1BQU0sd0JBQXdCLENBQUM7Ozs7OztBQVkzRyxNQUFNLE9BQU8sbUJBQW1CO0lBUTlCLElBQ0ksUUFBUSxLQUFLLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FBQyxZQUFZLElBQUksRUFBRSxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQztJQUM5RCxJQUFJLFFBQVEsQ0FBQyxLQUFLLElBQUksSUFBSSxDQUFDLFlBQVksQ0FBQyxRQUFRLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO0lBRTVELElBQ0ksTUFBTSxLQUFLLE9BQU8sQ0FBQyxJQUFJLENBQUMsWUFBWSxJQUFJLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7SUFDekQsSUFBSSxNQUFNLENBQUMsS0FBSyxJQUFJLElBQUksQ0FBQyxZQUFZLENBQUMsTUFBTSxHQUFHLEtBQUssSUFBSSxNQUFNLENBQUMsQ0FBQyxDQUFDO0lBRWpFLElBQ0ksU0FBUyxLQUFLLE9BQU8sQ0FBQyxJQUFJLENBQUMsWUFBWSxJQUFJLEVBQUUsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUM7SUFDL0QsSUFBSSxTQUFTLENBQUMsS0FBSyxJQUFJLElBQUksQ0FBQyxZQUFZLENBQUMsU0FBUyxHQUFHLEtBQUssSUFBSSxHQUFHLENBQUMsQ0FBQyxDQUFDO0lBRXBFLElBQ0ksU0FBUyxLQUFLLE9BQU8sQ0FBQyxJQUFJLENBQUMsWUFBWSxJQUFJLEVBQUUsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUM7SUFDL0QsSUFBSSxTQUFTLENBQUMsS0FBSyxJQUFJLElBQUksQ0FBQyxZQUFZLENBQUMsU0FBUyxHQUFHLEtBQUssSUFBSSxNQUFNLENBQUMsQ0FBQyxDQUFDO0lBRXZFLElBQ0ksS0FBSyxLQUFLLE9BQU8sQ0FBQyxJQUFJLENBQUMsWUFBWSxJQUFJLEVBQUUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7SUFDdkQsSUFBSSxLQUFLLENBQUMsS0FBSyxJQUFJLElBQUksQ0FBQyxZQUFZLENBQUMsS0FBSyxHQUFHLEtBQUssSUFBSSxNQUFNLENBQUMsQ0FBQyxDQUFDO0lBRS9ELElBQ0ksUUFBUSxLQUFLLE9BQU8sQ0FBQyxJQUFJLENBQUMsWUFBWSxJQUFJLEVBQUUsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUM7SUFDN0QsSUFBSSxRQUFRLENBQUMsS0FBSyxJQUFJLElBQUksQ0FBQyxZQUFZLENBQUMsUUFBUSxHQUFHLEtBQUssSUFBSSxHQUFHLENBQUMsQ0FBQyxDQUFDO0lBK0JsRSxZQUFvQixVQUF3QjtRQUF4QixlQUFVLEdBQVYsVUFBVSxDQUFjO1FBekRuQyxhQUFRLEdBQVksS0FBSyxDQUFDO1FBQzFCLG9CQUFlLEdBQVksS0FBSyxDQUFDO1FBQ2pDLGFBQVEsR0FBWSxJQUFJLENBQUM7UUEwQmxDLFVBQUssR0FBUSxFQUFFLENBQUM7UUFJaEIsWUFBTyxHQUFHLEtBQUssQ0FBQztRQUNoQixPQUFFLEdBQUcsSUFBSSxDQUFDO1FBRVYsaUJBQVksR0FBd0I7WUFDbEMsUUFBUSxFQUFFLElBQUk7WUFDZCxVQUFVLEVBQUUsSUFBSTtZQUNoQixNQUFNLEVBQUUsTUFBTTtZQUNkLFNBQVMsRUFBRSxHQUFHO1lBQ2QsU0FBUyxFQUFFLE1BQU07WUFDakIsS0FBSyxFQUFFLE1BQU07WUFDYixRQUFRLEVBQUUsR0FBRztZQUNiLFNBQVMsRUFBRSxLQUFLO1lBQ2hCLGFBQWEsRUFBRSxJQUFJO1lBQ25CLFdBQVcsRUFBRSxJQUFJO1lBQ2pCLHlCQUF5QixFQUFFLEVBQUU7WUFDN0IsZUFBZSxFQUFFLEtBQUs7WUFDdEIsUUFBUSxFQUFFLEtBQUs7WUFDZixLQUFLLEVBQUU7Z0JBQ0wsRUFBQyxLQUFLLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUM7Z0JBQy9CLEVBQUMsS0FBSyxFQUFFLGlCQUFpQixFQUFFLElBQUksRUFBRSxpQkFBaUIsRUFBQztnQkFDbkQsRUFBQyxLQUFLLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUM7Z0JBQ25DLEVBQUMsS0FBSyxFQUFFLGVBQWUsRUFBRSxJQUFJLEVBQUUsZUFBZSxFQUFDO2FBQ2hEO1NBQ0YsQ0FBQztJQUU2QyxDQUFDO0lBRWhELFFBQVE7UUFDTixJQUFJLENBQUMsRUFBRSxHQUFHLFVBQVUsSUFBSSxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQUM7SUFDdkMsQ0FBQztJQUVELGVBQWU7UUFDYixJQUFJLEtBQUssR0FBRyxJQUFJLENBQUM7UUFDakIsUUFBUSxDQUFDLGFBQWEsQ0FBQyxJQUFJLElBQUksQ0FBQyxFQUFFLDJCQUEyQixDQUFDLENBQUMsZ0JBQWdCLENBQUMsT0FBTyxFQUFFLEdBQUcsRUFBRSxDQUFDLEtBQUssQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLENBQUM7UUFDckgsUUFBUSxDQUFDLGFBQWEsQ0FBQyxJQUFJLElBQUksQ0FBQyxFQUFFLDJCQUEyQixDQUFDLENBQUMsZ0JBQWdCLENBQUMsTUFBTSxFQUFFLEdBQUcsRUFBRSxDQUFDLEtBQUssQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFDLENBQUM7UUFDckgsUUFBUSxDQUFDLGFBQWEsQ0FBQyxJQUFJLElBQUksQ0FBQyxFQUFFLDJCQUEyQixDQUFDLENBQUMsZ0JBQWdCLENBQUMsVUFBVSxFQUFFLEdBQUcsRUFBRSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsYUFBYSxDQUFDLGVBQWUsQ0FBQyxDQUFDLGFBQWEsRUFBRSxDQUFDLENBQUM7SUFDakssQ0FBQztJQUVPLE9BQU87UUFDYixPQUFPLHNDQUFzQyxDQUFDLE9BQU8sQ0FBQyxPQUFPLEVBQUUsVUFBUyxDQUFDO1lBQ3JFLE1BQU0sQ0FBQyxHQUFHLElBQUksQ0FBQyxNQUFNLEVBQUUsR0FBRyxFQUFFLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLEtBQUssR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUUsQ0FBQyxHQUFHLEdBQUcsR0FBRyxHQUFHLENBQUUsQ0FBQztZQUN4RSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDMUIsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsYUFBYTtRQUNYLElBQUksSUFBSSxDQUFDLFFBQVE7WUFDZixJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLGVBQWUsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzFFLElBQUksSUFBSSxDQUFDLFFBQVEsSUFBSSxJQUFJO1lBQ3JCLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ2hDLENBQUM7SUFFRCxVQUFVLENBQUMsVUFBZTtRQUN4QixJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLGVBQWUsQ0FBQyxJQUFJLEVBQUUsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQztRQUNyRyxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7SUFDdkIsQ0FBQztJQUVELGdCQUFnQixDQUFDLEVBQU87UUFDdEIsSUFBSSxDQUFDLFFBQVEsR0FBRyxFQUFFLENBQUM7SUFDckIsQ0FBQztJQUVELGlCQUFpQixDQUFDLEVBQU87UUFDdkIsSUFBSSxDQUFDLFNBQVMsR0FBRyxFQUFFLENBQUM7SUFDdEIsQ0FBQztJQUVELGdCQUFnQixDQUFFLFVBQW1CO1FBQ25DLElBQUksQ0FBQyxRQUFRLEdBQUcsVUFBVSxDQUFDO0lBQzdCLENBQUM7dUdBdkdVLG1CQUFtQjttR0FBbkIsbUJBQW1COzs7Ozt3UUFObkIsQ0FBQztvQkFDVixPQUFPLEVBQUUsaUJBQWlCO29CQUMxQixXQUFXLEVBQUUsVUFBVSxFQUFDLEdBQUcsRUFBRSxDQUFDLG1CQUFtQixFQUFDO29CQUNsRCxLQUFLLEVBQUUsSUFBSTtpQkFDWixDQUFDO1lDYkosNENBQW9OO1lBQTFILG9KQUFtQiwyR0FBd0QsbUJBQWUsSUFBdkU7WUFBdUcsaUJBQWlCOztZQUEzSSxtQ0FBbUIsNEJBQUEsMEJBQUE7WUFBN0YsNEJBQWMsd0JBQUEsaUNBQUE7Ozt1RkRlakIsbUJBQW1CO2NBVi9CLFNBQVM7MkJBQ0UsYUFBYSxhQUdaLENBQUM7d0JBQ1YsT0FBTyxFQUFFLGlCQUFpQjt3QkFDMUIsV0FBVyxFQUFFLFVBQVUsRUFBQyxHQUFHLEVBQUUsb0JBQW9CLEVBQUM7d0JBQ2xELEtBQUssRUFBRSxJQUFJO3FCQUNaLENBQUM7K0RBSW1CLE1BQU07a0JBQTFCLFNBQVM7bUJBQUMsUUFBUTtZQUVWLFFBQVE7a0JBQWhCLEtBQUs7WUFDRyxlQUFlO2tCQUF2QixLQUFLO1lBQ0csUUFBUTtrQkFBaEIsS0FBSztZQUdGLFFBQVE7a0JBRFgsS0FBSztZQUtGLE1BQU07a0JBRFQsS0FBSztZQUtGLFNBQVM7a0JBRFosS0FBSztZQUtGLFNBQVM7a0JBRFosS0FBSztZQUtGLEtBQUs7a0JBRFIsS0FBSztZQUtGLFFBQVE7a0JBRFgsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgZm9yd2FyZFJlZiwgSW5wdXQsIFNlY3VyaXR5Q29udGV4dCwgVmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBOR19WQUxVRV9BQ0NFU1NPUiB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgRG9tU2FuaXRpemVyIH0gZnJvbSAnQGFuZ3VsYXIvcGxhdGZvcm0tYnJvd3Nlcic7XHJcbmltcG9ydCB7IEFuZ3VsYXJFZGl0b3JDb21wb25lbnQsIEFuZ3VsYXJFZGl0b3JDb25maWcsIEFuZ3VsYXJFZGl0b3JTZXJ2aWNlIH0gZnJvbSAnQGtvbGtvdi9hbmd1bGFyLWVkaXRvcic7XHJcbiBcclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdpbmZvLWVkaXRvcicsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2VkaXRvci5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vZWRpdG9yLmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgcHJvdmlkZXJzOiBbe1xyXG4gICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXHJcbiAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBJbmZvRWRpdG9yQ29tcG9uZW50KSxcclxuICAgIG11bHRpOiB0cnVlXHJcbiAgfV1cclxufSlcclxuZXhwb3J0IGNsYXNzIEluZm9FZGl0b3JDb21wb25lbnQgaW1wbGVtZW50cyBDb250cm9sVmFsdWVBY2Nlc3NvciB7XHJcblxyXG4gIEBWaWV3Q2hpbGQoJ2VkaXRvcicpIGVkaXRvcjogQW5ndWxhckVkaXRvckNvbXBvbmVudDtcclxuXHJcbiAgQElucHV0KCkgcmVxdWlyZWQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBASW5wdXQoKSBlbmFibGVkaHRtbG1vZGU6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBASW5wdXQoKSBzYW5pdGl6ZTogYm9vbGVhbiA9IHRydWU7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgZ2V0IGRpc2FibGVkKCkgeyByZXR1cm4gISh0aGlzLmVkaXRvckNvbmZpZyB8fCB7fSkuZWRpdGFibGU7IH1cclxuICBzZXQgZGlzYWJsZWQodmFsdWUpIHsgdGhpcy5lZGl0b3JDb25maWcuZWRpdGFibGUgPSAhdmFsdWU7IH1cclxuXHJcbiAgQElucHV0KClcclxuICBnZXQgaGVpZ2h0KCkgeyByZXR1cm4gKHRoaXMuZWRpdG9yQ29uZmlnIHx8IHt9KS5oZWlnaHQ7IH1cclxuICBzZXQgaGVpZ2h0KHZhbHVlKSB7IHRoaXMuZWRpdG9yQ29uZmlnLmhlaWdodCA9IHZhbHVlIHx8ICdhdXRvJzsgfVxyXG5cclxuICBASW5wdXQoKVxyXG4gIGdldCBtaW5oZWlnaHQoKSB7IHJldHVybiAodGhpcy5lZGl0b3JDb25maWcgfHwge30pLm1pbkhlaWdodDsgfVxyXG4gIHNldCBtaW5oZWlnaHQodmFsdWUpIHsgdGhpcy5lZGl0b3JDb25maWcubWluSGVpZ2h0ID0gdmFsdWUgfHwgJzAnOyB9XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgZ2V0IG1heGhlaWdodCgpIHsgcmV0dXJuICh0aGlzLmVkaXRvckNvbmZpZyB8fCB7fSkubWF4SGVpZ2h0OyB9XHJcbiAgc2V0IG1heGhlaWdodCh2YWx1ZSkgeyB0aGlzLmVkaXRvckNvbmZpZy5tYXhIZWlnaHQgPSB2YWx1ZSB8fCAnYXV0byc7IH1cclxuXHJcbiAgQElucHV0KClcclxuICBnZXQgd2lkdGgoKSB7IHJldHVybiAodGhpcy5lZGl0b3JDb25maWcgfHwge30pLndpZHRoOyB9XHJcbiAgc2V0IHdpZHRoKHZhbHVlKSB7IHRoaXMuZWRpdG9yQ29uZmlnLndpZHRoID0gdmFsdWUgfHwgJ2F1dG8nOyB9XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgZ2V0IG1pbndpZHRoKCkgeyByZXR1cm4gKHRoaXMuZWRpdG9yQ29uZmlnIHx8IHt9KS5taW5XaWR0aDsgfVxyXG4gIHNldCBtaW53aWR0aCh2YWx1ZSkgeyB0aGlzLmVkaXRvckNvbmZpZy5taW5XaWR0aCA9IHZhbHVlIHx8ICcwJzsgfVxyXG5cclxuICB2YWx1ZTogYW55ID0gJyc7XHJcbiAgXHJcbiAgb25DaGFuZ2U6IGFueTtcclxuICBvblRvdWNoZWQ6IGFueTtcclxuICBmb2N1c2VkID0gZmFsc2U7XHJcbiAgaWQgPSBudWxsO1xyXG5cclxuICBlZGl0b3JDb25maWc6IEFuZ3VsYXJFZGl0b3JDb25maWcgPSB7XHJcbiAgICBlZGl0YWJsZTogdHJ1ZSxcclxuICAgIHNwZWxsY2hlY2s6IHRydWUsXHJcbiAgICBoZWlnaHQ6ICdhdXRvJyxcclxuICAgIG1pbkhlaWdodDogJzAnLFxyXG4gICAgbWF4SGVpZ2h0OiAnYXV0bycsXHJcbiAgICB3aWR0aDogJ2F1dG8nLFxyXG4gICAgbWluV2lkdGg6ICcwJyxcclxuICAgIHRyYW5zbGF0ZTogJ3llcycsXHJcbiAgICBlbmFibGVUb29sYmFyOiB0cnVlLFxyXG4gICAgc2hvd1Rvb2xiYXI6IHRydWUsXHJcbiAgICBkZWZhdWx0UGFyYWdyYXBoU2VwYXJhdG9yOiAnJyxcclxuICAgIHRvb2xiYXJQb3NpdGlvbjogJ3RvcCcsXHJcbiAgICBzYW5pdGl6ZTogZmFsc2UsXHJcbiAgICBmb250czogW1xyXG4gICAgICB7Y2xhc3M6ICdhcmlhbCcsIG5hbWU6ICdBcmlhbCd9LFxyXG4gICAgICB7Y2xhc3M6ICd0aW1lcy1uZXctcm9tYW4nLCBuYW1lOiAnVGltZXMgTmV3IFJvbWFuJ30sXHJcbiAgICAgIHtjbGFzczogJ2NhbGlicmknLCBuYW1lOiAnQ2FsaWJyaSd9LFxyXG4gICAgICB7Y2xhc3M6ICdjb21pYy1zYW5zLW1zJywgbmFtZTogJ0NvbWljIFNhbnMgTVMnfVxyXG4gICAgXSxcclxuICB9O1xyXG5cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIF9zYW5pdGl6ZXI6IERvbVNhbml0aXplcikge31cclxuXHJcbiAgbmdPbkluaXQoKSB7XHJcbiAgICB0aGlzLmlkID0gYGVkaXRvci0ke3RoaXMuZ2V0R3VpZCgpfWA7XHJcbiAgfVxyXG5cclxuICBuZ0FmdGVyVmlld0luaXQoKSB7XHJcbiAgICB2YXIgX3RoaXMgPSB0aGlzO1xyXG4gICAgZG9jdW1lbnQucXVlcnlTZWxlY3RvcihgIyR7dGhpcy5pZH0gLmFuZ3VsYXItZWRpdG9yLXRleHRhcmVhYCkuYWRkRXZlbnRMaXN0ZW5lcignZm9jdXMnLCAoKSA9PiBfdGhpcy5mb2N1c2VkID0gdHJ1ZSk7XHJcbiAgICBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKGAjJHt0aGlzLmlkfSAuYW5ndWxhci1lZGl0b3ItdGV4dGFyZWFgKS5hZGRFdmVudExpc3RlbmVyKCdibHVyJywgKCkgPT4gX3RoaXMuZm9jdXNlZCA9IGZhbHNlKTtcclxuICAgIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoYCMke3RoaXMuaWR9IC5hbmd1bGFyLWVkaXRvci10ZXh0YXJlYWApLmFkZEV2ZW50TGlzdGVuZXIoJ21vdXNlb3V0JywgKCkgPT4gX3RoaXMuZWRpdG9yLmVkaXRvclRvb2xiYXJbJ2VkaXRvclNlcnZpY2UnXS5zYXZlU2VsZWN0aW9uKCkpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBnZXRHdWlkKCkgOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuICd4eHh4eHh4eC14eHh4LTR4eHgteXh4eC14eHh4eHh4eHh4eHgnLnJlcGxhY2UoL1t4eV0vZywgZnVuY3Rpb24oYykge1xyXG4gICAgICAgIGNvbnN0IHIgPSBNYXRoLnJhbmRvbSgpICogMTYgfCAwLCB2ID0gYyA9PT0gJ3gnID8gciA6ICggciAmIDB4MyB8IDB4OCApO1xyXG4gICAgICAgIHJldHVybiB2LnRvU3RyaW5nKDE2KTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgb25DaGFuZ2VWYWx1ZSgpIHtcclxuICAgIGlmICh0aGlzLnNhbml0aXplKVxyXG4gICAgICB0aGlzLnZhbHVlID0gdGhpcy5fc2FuaXRpemVyLnNhbml0aXplKFNlY3VyaXR5Q29udGV4dC5IVE1MLCB0aGlzLnZhbHVlKTtcclxuICAgIGlmICh0aGlzLm9uQ2hhbmdlICE9IG51bGwpXHJcbiAgICAgICAgdGhpcy5vbkNoYW5nZSh0aGlzLnZhbHVlKTtcclxuICB9XHJcblxyXG4gIHdyaXRlVmFsdWUobW9kZWxWYWx1ZTogYW55KTogdm9pZCB7XHJcbiAgICB0aGlzLnZhbHVlID0gdGhpcy5zYW5pdGl6ZSA/IHRoaXMuX3Nhbml0aXplci5zYW5pdGl6ZShTZWN1cml0eUNvbnRleHQuSFRNTCwgbW9kZWxWYWx1ZSkgOiBtb2RlbFZhbHVlO1xyXG4gICAgdGhpcy5vbkNoYW5nZVZhbHVlKCk7XHJcbiAgfVxyXG4gIFxyXG4gIHJlZ2lzdGVyT25DaGFuZ2UoZm46IGFueSk6IHZvaWQge1xyXG4gICAgdGhpcy5vbkNoYW5nZSA9IGZuO1xyXG4gIH1cclxuICBcclxuICByZWdpc3Rlck9uVG91Y2hlZChmbjogYW55KTogdm9pZCB7XHJcbiAgICB0aGlzLm9uVG91Y2hlZCA9IGZuO1xyXG4gIH1cclxuICBcclxuICBzZXREaXNhYmxlZFN0YXRlPyhpc0Rpc2FibGVkOiBib29sZWFuKTogdm9pZCB7XHJcbiAgICB0aGlzLmRpc2FibGVkID0gaXNEaXNhYmxlZDtcclxuICB9XHJcbiAgXHJcbn0iLCI8YW5ndWxhci1lZGl0b3IgW2F0dHIuaWRdPVwiaWRcIiBbYXR0ci5mb2N1c2VkXT1cImZvY3VzZWRcIiBbYXR0ci5odG1sbW9kZV09XCJlbmFibGVkaHRtbG1vZGVcIiBbKG5nTW9kZWwpXT1cInZhbHVlXCIgbmFtZT1cImVkaXRvclwiIFtjb25maWddPVwiZWRpdG9yQ29uZmlnXCIgKG5nTW9kZWxDaGFuZ2UpPVwib25DaGFuZ2VWYWx1ZSgpXCIgW3JlcXVpcmVkXT1cInJlcXVpcmVkXCIgI2VkaXRvcj48L2FuZ3VsYXItZWRpdG9yPlxyXG4iXX0=
139
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWRpdG9yLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2luZm8tbGlicmFyeS9zcmMvY29udHJvbHMvZWRpdG9yL2VkaXRvci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9pbmZvLWxpYnJhcnkvc3JjL2NvbnRyb2xzL2VkaXRvci9lZGl0b3IuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUFFLGVBQWUsRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekYsT0FBTyxFQUF3QixpQkFBaUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3pFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsc0JBQXNCLEVBQTZDLE1BQU0sd0JBQXdCLENBQUM7Ozs7OztBQVkzRyxNQUFNLE9BQU8sbUJBQW1CO0lBNkRWO0lBM0RDLE1BQU0sQ0FBeUI7SUFFM0MsUUFBUSxHQUFZLEtBQUssQ0FBQztJQUMxQixlQUFlLEdBQVksS0FBSyxDQUFDO0lBQ2pDLFFBQVEsR0FBWSxJQUFJLENBQUM7SUFFbEMsSUFDSSxRQUFRLEtBQUssT0FBTyxDQUFDLENBQUMsSUFBSSxDQUFDLFlBQVksSUFBSSxFQUFFLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDO0lBQzlELElBQUksUUFBUSxDQUFDLEtBQUssSUFBSSxJQUFJLENBQUMsWUFBWSxDQUFDLFFBQVEsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7SUFFNUQsSUFDSSxNQUFNLEtBQUssT0FBTyxDQUFDLElBQUksQ0FBQyxZQUFZLElBQUksRUFBRSxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQztJQUN6RCxJQUFJLE1BQU0sQ0FBQyxLQUFLLElBQUksSUFBSSxDQUFD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SyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgZm9yd2FyZFJlZiwgSW5wdXQsIFNlY3VyaXR5Q29udGV4dCwgVmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBOR19WQUxVRV9BQ0NFU1NPUiB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgRG9tU2FuaXRpemVyIH0gZnJvbSAnQGFuZ3VsYXIvcGxhdGZvcm0tYnJvd3Nlcic7XHJcbmltcG9ydCB7IEFuZ3VsYXJFZGl0b3JDb21wb25lbnQsIEFuZ3VsYXJFZGl0b3JDb25maWcsIEFuZ3VsYXJFZGl0b3JTZXJ2aWNlIH0gZnJvbSAnQGtvbGtvdi9hbmd1bGFyLWVkaXRvcic7XHJcbiBcclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdpbmZvLWVkaXRvcicsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2VkaXRvci5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vZWRpdG9yLmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgcHJvdmlkZXJzOiBbe1xyXG4gICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXHJcbiAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBJbmZvRWRpdG9yQ29tcG9uZW50KSxcclxuICAgIG11bHRpOiB0cnVlXHJcbiAgfV1cclxufSlcclxuZXhwb3J0IGNsYXNzIEluZm9FZGl0b3JDb21wb25lbnQgaW1wbGVtZW50cyBDb250cm9sVmFsdWVBY2Nlc3NvciB7XHJcblxyXG4gIEBWaWV3Q2hpbGQoJ2VkaXRvcicpIGVkaXRvcjogQW5ndWxhckVkaXRvckNvbXBvbmVudDtcclxuXHJcbiAgQElucHV0KCkgcmVxdWlyZWQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBASW5wdXQoKSBlbmFibGVkaHRtbG1vZGU6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBASW5wdXQoKSBzYW5pdGl6ZTogYm9vbGVhbiA9IHRydWU7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgZ2V0IGRpc2FibGVkKCkgeyByZXR1cm4gISh0aGlzLmVkaXRvckNvbmZpZyB8fCB7fSkuZWRpdGFibGU7IH1cclxuICBzZXQgZGlzYWJsZWQodmFsdWUpIHsgdGhpcy5lZGl0b3JDb25maWcuZWRpdGFibGUgPSAhdmFsdWU7IH1cclxuXHJcbiAgQElucHV0KClcclxuICBnZXQgaGVpZ2h0KCkgeyByZXR1cm4gKHRoaXMuZWRpdG9yQ29uZmlnIHx8IHt9KS5oZWlnaHQ7IH1cclxuICBzZXQgaGVpZ2h0KHZhbHVlKSB7IHRoaXMuZWRpdG9yQ29uZmlnLmhlaWdodCA9IHZhbHVlIHx8ICdhdXRvJzsgfVxyXG5cclxuICBASW5wdXQoKVxyXG4gIGdldCBtaW5oZWlnaHQoKSB7IHJldHVybiAodGhpcy5lZGl0b3JDb25maWcgfHwge30pLm1pbkhlaWdodDsgfVxyXG4gIHNldCBtaW5oZWlnaHQodmFsdWUpIHsgdGhpcy5lZGl0b3JDb25maWcubWluSGVpZ2h0ID0gdmFsdWUgfHwgJzAnOyB9XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgZ2V0IG1heGhlaWdodCgpIHsgcmV0dXJuICh0aGlzLmVkaXRvckNvbmZpZyB8fCB7fSkubWF4SGVpZ2h0OyB9XHJcbiAgc2V0IG1heGhlaWdodCh2YWx1ZSkgeyB0aGlzLmVkaXRvckNvbmZpZy5tYXhIZWlnaHQgPSB2YWx1ZSB8fCAnYXV0byc7IH1cclxuXHJcbiAgQElucHV0KClcclxuICBnZXQgd2lkdGgoKSB7IHJldHVybiAodGhpcy5lZGl0b3JDb25maWcgfHwge30pLndpZHRoOyB9XHJcbiAgc2V0IHdpZHRoKHZhbHVlKSB7IHRoaXMuZWRpdG9yQ29uZmlnLndpZHRoID0gdmFsdWUgfHwgJ2F1dG8nOyB9XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgZ2V0IG1pbndpZHRoKCkgeyByZXR1cm4gKHRoaXMuZWRpdG9yQ29uZmlnIHx8IHt9KS5taW5XaWR0aDsgfVxyXG4gIHNldCBtaW53aWR0aCh2YWx1ZSkgeyB0aGlzLmVkaXRvckNvbmZpZy5taW5XaWR0aCA9IHZhbHVlIHx8ICcwJzsgfVxyXG5cclxuICB2YWx1ZTogYW55ID0gJyc7XHJcbiAgXHJcbiAgb25DaGFuZ2U6IGFueTtcclxuICBvblRvdWNoZWQ6IGFueTtcclxuICBmb2N1c2VkID0gZmFsc2U7XHJcbiAgaWQgPSBudWxsO1xyXG5cclxuICBlZGl0b3JDb25maWc6IEFuZ3VsYXJFZGl0b3JDb25maWcgPSB7XHJcbiAgICBlZGl0YWJsZTogdHJ1ZSxcclxuICAgIHNwZWxsY2hlY2s6IHRydWUsXHJcbiAgICBoZWlnaHQ6ICdhdXRvJyxcclxuICAgIG1pbkhlaWdodDogJzAnLFxyXG4gICAgbWF4SGVpZ2h0OiAnYXV0bycsXHJcbiAgICB3aWR0aDogJ2F1dG8nLFxyXG4gICAgbWluV2lkdGg6ICcwJyxcclxuICAgIHRyYW5zbGF0ZTogJ3llcycsXHJcbiAgICBlbmFibGVUb29sYmFyOiB0cnVlLFxyXG4gICAgc2hvd1Rvb2xiYXI6IHRydWUsXHJcbiAgICBkZWZhdWx0UGFyYWdyYXBoU2VwYXJhdG9yOiAnJyxcclxuICAgIHRvb2xiYXJQb3NpdGlvbjogJ3RvcCcsXHJcbiAgICBzYW5pdGl6ZTogZmFsc2UsXHJcbiAgICBmb250czogW1xyXG4gICAgICB7Y2xhc3M6ICdhcmlhbCcsIG5hbWU6ICdBcmlhbCd9LFxyXG4gICAgICB7Y2xhc3M6ICd0aW1lcy1uZXctcm9tYW4nLCBuYW1lOiAnVGltZXMgTmV3IFJvbWFuJ30sXHJcbiAgICAgIHtjbGFzczogJ2NhbGlicmknLCBuYW1lOiAnQ2FsaWJyaSd9LFxyXG4gICAgICB7Y2xhc3M6ICdjb21pYy1zYW5zLW1zJywgbmFtZTogJ0NvbWljIFNhbnMgTVMnfVxyXG4gICAgXSxcclxuICB9O1xyXG5cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIF9zYW5pdGl6ZXI6IERvbVNhbml0aXplcikge31cclxuXHJcbiAgbmdPbkluaXQoKSB7XHJcbiAgICB0aGlzLmlkID0gYGVkaXRvci0ke3RoaXMuZ2V0R3VpZCgpfWA7XHJcbiAgfVxyXG5cclxuICBuZ0FmdGVyVmlld0luaXQoKSB7XHJcbiAgICB2YXIgX3RoaXMgPSB0aGlzO1xyXG4gICAgZG9jdW1lbnQucXVlcnlTZWxlY3RvcihgIyR7dGhpcy5pZH0gLmFuZ3VsYXItZWRpdG9yLXRleHRhcmVhYCkuYWRkRXZlbnRMaXN0ZW5lcignZm9jdXMnLCAoKSA9PiBfdGhpcy5mb2N1c2VkID0gdHJ1ZSk7XHJcbiAgICBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKGAjJHt0aGlzLmlkfSAuYW5ndWxhci1lZGl0b3ItdGV4dGFyZWFgKS5hZGRFdmVudExpc3RlbmVyKCdibHVyJywgKCkgPT4gX3RoaXMuZm9jdXNlZCA9IGZhbHNlKTtcclxuICAgIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoYCMke3RoaXMuaWR9IC5hbmd1bGFyLWVkaXRvci10ZXh0YXJlYWApLmFkZEV2ZW50TGlzdGVuZXIoJ21vdXNlb3V0JywgKCkgPT4gX3RoaXMuZWRpdG9yLmVkaXRvclRvb2xiYXJbJ2VkaXRvclNlcnZpY2UnXS5zYXZlU2VsZWN0aW9uKCkpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBnZXRHdWlkKCkgOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuICd4eHh4eHh4eC14eHh4LTR4eHgteXh4eC14eHh4eHh4eHh4eHgnLnJlcGxhY2UoL1t4eV0vZywgZnVuY3Rpb24oYykge1xyXG4gICAgICAgIGNvbnN0IHIgPSBNYXRoLnJhbmRvbSgpICogMTYgfCAwLCB2ID0gYyA9PT0gJ3gnID8gciA6ICggciAmIDB4MyB8IDB4OCApO1xyXG4gICAgICAgIHJldHVybiB2LnRvU3RyaW5nKDE2KTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgb25DaGFuZ2VWYWx1ZSgpIHtcclxuICAgIGlmICh0aGlzLnNhbml0aXplKVxyXG4gICAgICB0aGlzLnZhbHVlID0gdGhpcy5fc2FuaXRpemVyLnNhbml0aXplKFNlY3VyaXR5Q29udGV4dC5IVE1MLCB0aGlzLnZhbHVlKTtcclxuICAgIGlmICh0aGlzLm9uQ2hhbmdlICE9IG51bGwpXHJcbiAgICAgICAgdGhpcy5vbkNoYW5nZSh0aGlzLnZhbHVlKTtcclxuICB9XHJcblxyXG4gIHdyaXRlVmFsdWUobW9kZWxWYWx1ZTogYW55KTogdm9pZCB7XHJcbiAgICB0aGlzLnZhbHVlID0gdGhpcy5zYW5pdGl6ZSA/IHRoaXMuX3Nhbml0aXplci5zYW5pdGl6ZShTZWN1cml0eUNvbnRleHQuSFRNTCwgbW9kZWxWYWx1ZSkgOiBtb2RlbFZhbHVlO1xyXG4gICAgdGhpcy5vbkNoYW5nZVZhbHVlKCk7XHJcbiAgfVxyXG4gIFxyXG4gIHJlZ2lzdGVyT25DaGFuZ2UoZm46IGFueSk6IHZvaWQge1xyXG4gICAgdGhpcy5vbkNoYW5nZSA9IGZuO1xyXG4gIH1cclxuICBcclxuICByZWdpc3Rlck9uVG91Y2hlZChmbjogYW55KTogdm9pZCB7XHJcbiAgICB0aGlzLm9uVG91Y2hlZCA9IGZuO1xyXG4gIH1cclxuICBcclxuICBzZXREaXNhYmxlZFN0YXRlPyhpc0Rpc2FibGVkOiBib29sZWFuKTogdm9pZCB7XHJcbiAgICB0aGlzLmRpc2FibGVkID0gaXNEaXNhYmxlZDtcclxuICB9XHJcbiAgXHJcbn0iLCI8YW5ndWxhci1lZGl0b3IgW2F0dHIuaWRdPVwiaWRcIiBbYXR0ci5mb2N1c2VkXT1cImZvY3VzZWRcIiBbYXR0ci5odG1sbW9kZV09XCJlbmFibGVkaHRtbG1vZGVcIiBbKG5nTW9kZWwpXT1cInZhbHVlXCIgbmFtZT1cImVkaXRvclwiIFtjb25maWddPVwiZWRpdG9yQ29uZmlnXCIgKG5nTW9kZWxDaGFuZ2UpPVwib25DaGFuZ2VWYWx1ZSgpXCIgW3JlcXVpcmVkXT1cInJlcXVpcmVkXCIgI2VkaXRvcj48L2FuZ3VsYXItZWRpdG9yPlxyXG4iXX0=