bpm-core 0.0.32 → 0.0.34

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 (58) hide show
  1. package/esm2022/lib/app/app.component.mjs +2 -2
  2. package/esm2022/lib/components/app-component-sections/faq-sidenav/faq-sidenav.component.mjs +1 -5
  3. package/esm2022/lib/components/app-component-sections/faqs/faqs.component.mjs +4 -9
  4. package/esm2022/lib/components/app-component-sections/form-section/form-section.component.mjs +140 -72
  5. package/esm2022/lib/components/app-component-sections/index.mjs +1 -2
  6. package/esm2022/lib/components/app-component-sections/main-request-details/main-request-details.component.mjs +5 -7
  7. package/esm2022/lib/components/app-component-sections/previous-requests/previous-requests.component.mjs +67 -0
  8. package/esm2022/lib/components/app-component-sections/service-header/service-header.component.mjs +158 -68
  9. package/esm2022/lib/components/shared-components/form-field/control-value-accessor.directive.mjs +5 -6
  10. package/esm2022/lib/components/shared-components/form-field/custom-searchable-autocomplete/custom-searchable.component.mjs +3 -3
  11. package/esm2022/lib/components/shared-components/form-field/date-picker/date-picker.component.mjs +8 -46
  12. package/esm2022/lib/components/shared-components/form-field/date-range-picker/date-range-picker.component.mjs +161 -14
  13. package/esm2022/lib/components/shared-components/form-field/input/input.component.mjs +10 -12
  14. package/esm2022/lib/components/shared-components/form-field/input-currency/input-currency.component.mjs +11 -4
  15. package/esm2022/lib/components/shared-components/form-field/input-email/input-email.component.mjs +12 -4
  16. package/esm2022/lib/components/shared-components/form-field/input-mask/input-mask.component.mjs +3 -3
  17. package/esm2022/lib/components/shared-components/form-field/input-number/input-number.component.mjs +9 -5
  18. package/esm2022/lib/components/shared-components/form-field/validation-errors/validation-errors.component.mjs +5 -1
  19. package/esm2022/lib/{validators → directives}/ar.directive.mjs +4 -3
  20. package/esm2022/lib/{validators → directives}/currency.directive.mjs +4 -3
  21. package/esm2022/lib/{validators → directives}/en.directive.mjs +4 -3
  22. package/esm2022/lib/directives/number.directive.mjs +68 -0
  23. package/esm2022/lib/i18n/ar.mjs +4 -2
  24. package/esm2022/lib/i18n/en.mjs +3 -1
  25. package/esm2022/lib/pipes/status-style.pipe.mjs +57 -0
  26. package/esm2022/lib/regex/regex-patterns.mjs +4 -0
  27. package/esm2022/lib/services/core.service.ts.mjs +37 -9
  28. package/esm2022/lib/testComponent/general-approver-section/general-approver-section.component.mjs +2 -2
  29. package/esm2022/lib/testComponent/request-details-section/request-details-section.component.mjs +13 -6
  30. package/esm2022/lib/validators/index.mjs +4 -4
  31. package/fesm2022/bpm-core.mjs +1007 -592
  32. package/fesm2022/bpm-core.mjs.map +1 -1
  33. package/lib/components/app-component-sections/faq-sidenav/faq-sidenav.component.d.ts +2 -4
  34. package/lib/components/app-component-sections/faqs/faqs.component.d.ts +1 -3
  35. package/lib/components/app-component-sections/form-section/form-section.component.d.ts +92 -7
  36. package/lib/components/app-component-sections/index.d.ts +0 -1
  37. package/lib/components/app-component-sections/previous-requests/previous-requests.component.d.ts +22 -0
  38. package/lib/components/app-component-sections/service-header/service-header.component.d.ts +98 -7
  39. package/lib/components/shared-components/form-field/control-value-accessor.directive.d.ts +2 -1
  40. package/lib/components/shared-components/form-field/date-picker/date-picker.component.d.ts +0 -4
  41. package/lib/components/shared-components/form-field/date-range-picker/date-range-picker.component.d.ts +22 -6
  42. package/lib/components/shared-components/form-field/input/input.component.d.ts +1 -3
  43. package/lib/components/shared-components/form-field/input-email/input-email.component.d.ts +1 -0
  44. package/lib/{validators → directives}/ar.directive.d.ts +1 -1
  45. package/lib/{validators → directives}/currency.directive.d.ts +1 -1
  46. package/lib/{validators → directives}/en.directive.d.ts +1 -1
  47. package/lib/directives/number.directive.d.ts +14 -0
  48. package/lib/i18n/ar.d.ts +2 -0
  49. package/lib/i18n/en.d.ts +2 -0
  50. package/lib/pipes/status-style.pipe.d.ts +7 -0
  51. package/lib/regex/regex-patterns.d.ts +3 -0
  52. package/lib/services/core.service.ts.d.ts +2 -0
  53. package/lib/validators/index.d.ts +0 -3
  54. package/package.json +1 -1
  55. package/src/lib/assets/scss/_custom-popover.scss +3 -0
  56. package/src/lib/assets/scss/_settings.scss +5 -2
  57. package/esm2022/lib/components/app-component-sections/comment-section/comment-section.component.mjs +0 -66
  58. package/lib/components/app-component-sections/comment-section/comment-section.component.d.ts +0 -19
@@ -1,26 +1,173 @@
1
1
  /* eslint-disable @angular-eslint/component-selector */
2
2
  /* eslint-disable @typescript-eslint/no-empty-function */
3
- import { Component, CUSTOM_ELEMENTS_SCHEMA, Input } from '@angular/core';
3
+ import { Component, CUSTOM_ELEMENTS_SCHEMA, forwardRef, Inject, Input, ViewChild } from '@angular/core';
4
+ import { ControlValueAccessorDirective } from '../control-value-accessor.directive';
5
+ import { FormControl, NG_VALUE_ACCESSOR, ReactiveFormsModule } from '@angular/forms';
6
+ import { MatFormField, MatFormFieldModule } from '@angular/material/form-field';
7
+ import { MatDatepicker, MatDatepickerInput, MatDatepickerModule, MatDatepickerToggle } from '@angular/material/datepicker';
8
+ import { MatInput } from '@angular/material/input';
9
+ import { MatIcon } from '@angular/material/icon';
10
+ import { NgClass, NgIf } from '@angular/common';
11
+ import { InfoItemComponent } from '../info-item/info-item.component';
12
+ import { DateAdapter, MAT_DATE_FORMATS, MAT_DATE_LOCALE } from '@angular/material/core';
13
+ import { MAT_MOMENT_DATE_ADAPTER_OPTIONS, MomentDateAdapter } from '@angular/material-moment-adapter';
14
+ import { CustomDateFormat } from '../date-picker/date-format';
15
+ import * as moment from 'moment';
16
+ import { ValidationErrorsComponent } from '../validation-errors/validation-errors.component';
4
17
  import * as i0 from "@angular/core";
5
- export class DateRangePickerComponent {
6
- label;
18
+ import * as i1 from "@angular/material/form-field";
19
+ import * as i2 from "@angular/material/datepicker";
20
+ import * as i3 from "@angular/forms";
21
+ const YEAR_ONLY_FORMAT = {
22
+ parse: {
23
+ dateInput: 'YYYY',
24
+ },
25
+ display: {
26
+ dateInput: 'YYYY',
27
+ monthYearLabel: 'YYYY',
28
+ dateA11yLabel: 'LL',
29
+ monthYearA11yLabel: 'YYYY',
30
+ },
31
+ };
32
+ export class DateRangePickerComponent extends ControlValueAccessorDirective {
7
33
  tooltip;
8
- className = 'gray-input';
9
- placeholder;
10
- constructor() { }
11
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: DateRangePickerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
12
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.8", type: DateRangePickerComponent, isStandalone: true, selector: "app-date-range-picker", inputs: { label: "label", tooltip: "tooltip", className: "className", placeholder: "placeholder" }, ngImport: i0, template: "<mat-form-field class=\"date-range primary-form {{className}}\">\r\n <label class=\"mat-form-content\">\r\n <mat-date-range-input [rangePicker]=\"picker\">\r\n <input matStartDate placeholder=\"Start date\">\r\n <input matEndDate placeholder=\"End date\">\r\n </mat-date-range-input>\r\n </label>\r\n <mat-datepicker-toggle matSuffix [for]=\"picker\" [disableRipple]=\"true\">\r\n <i class=\"sfi sfi-calendar-o fc-onyx font-18\" matDatepickerToggleIcon></i>\r\n </mat-datepicker-toggle>\r\n <mat-date-range-picker #picker></mat-date-range-picker>\r\n</mat-form-field>\r\n", styles: [":host{flex-grow:1}\n"] });
34
+ className = 'white-input';
35
+ yearOnly;
36
+ dateFormat;
37
+ datepicker;
38
+ startControl = new FormControl();
39
+ endControl = new FormControl();
40
+ startInputValue;
41
+ endInputValue;
42
+ dateRange;
43
+ ngAfterViewInit() {
44
+ if (!this.isReadOnly && this.yearOnly)
45
+ this.activateYearOnlyMode();
46
+ }
47
+ ngOnChanges(changes) {
48
+ if (changes) {
49
+ if (this.customMaxDate) {
50
+ const date = new Date(this.customMaxDate);
51
+ this.maxDateValue = new Date(date.getFullYear(), date.getMonth(), date.getDate());
52
+ }
53
+ }
54
+ if (changes && !this.isReadOnly) { // add min date value for 2 dates validations
55
+ if (this.customMinDate) {
56
+ const date = new Date(this.customMinDate);
57
+ this.minDateValue = new Date(date.getFullYear(), date.getMonth(), date.getDate() + 1);
58
+ }
59
+ }
60
+ }
61
+ focusPicker(picker) {
62
+ picker.open();
63
+ }
64
+ dateChange(event) {
65
+ if (event?.value && !this.isDisabled) {
66
+ let inputValue;
67
+ if (this.startControl.value && !this.endControl.value) {
68
+ this.startInputValue = moment(event.value).locale('en-US').format("YYYY-MM-DDTHH:mm:ss.SSSZ");
69
+ }
70
+ if (this.startControl.value && this.endControl.value) {
71
+ this.endInputValue = moment(event.value).locale('en-US').format("YYYY-MM-DDTHH:mm:ss.SSSZ");
72
+ }
73
+ if (this.endInputValue && this.startInputValue) {
74
+ this.dateRange = {
75
+ startDate: this.startInputValue,
76
+ endDate: this.endInputValue
77
+ };
78
+ }
79
+ inputValue = moment(event.value).locale('en-US').format("YYYY-MM-DDTHH:mm:ss.SSSZ");
80
+ if (this.dateRange?.startDate && this.dateRange?.endDate) {
81
+ this.control.setValue(this.dateRange);
82
+ }
83
+ }
84
+ }
85
+ clearDateValue(event) {
86
+ this.dateRange = null;
87
+ this.startInputValue = null;
88
+ this.endInputValue = null;
89
+ this.control.setValue(null);
90
+ this.endControl.setValue(null);
91
+ this.startControl.setValue(null);
92
+ }
93
+ activateYearOnlyMode() {
94
+ this.dateFormat.updateDateFormat(YEAR_ONLY_FORMAT.parse, YEAR_ONLY_FORMAT.display);
95
+ if (this.control) {
96
+ this.control.setValue(moment(this.control.value).format('yyyy'));
97
+ }
98
+ this.datepicker.startView = 'multi-year';
99
+ this.datepicker.yearSelected.subscribe(e => {
100
+ this.control.setValue(moment(e).format('yyyy'));
101
+ this.datepicker.close();
102
+ });
103
+ this.datepicker.openedStream.subscribe(() => {
104
+ document.body.classList.add('year-only');
105
+ });
106
+ this.datepicker.closedStream.subscribe(() => {
107
+ document.body.classList.remove('year-only');
108
+ });
109
+ }
110
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: DateRangePickerComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
111
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.8", type: DateRangePickerComponent, isStandalone: true, selector: "app-date-range-picker", inputs: { tooltip: "tooltip", className: "className", yearOnly: "yearOnly" }, providers: [
112
+ {
113
+ provide: NG_VALUE_ACCESSOR,
114
+ useExisting: forwardRef(() => DateRangePickerComponent),
115
+ multi: true,
116
+ },
117
+ {
118
+ provide: DateAdapter,
119
+ useClass: MomentDateAdapter,
120
+ deps: [MAT_DATE_LOCALE, MAT_MOMENT_DATE_ADAPTER_OPTIONS],
121
+ },
122
+ {
123
+ provide: MAT_DATE_FORMATS,
124
+ useClass: CustomDateFormat
125
+ },
126
+ ], viewQueries: [{ propertyName: "datepicker", first: true, predicate: MatDatepicker, descendants: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "@if(label){\r\n <div class=\"d-flex justify-content-between mb-1\">\r\n <span class=\"form-label mb-0\">{{label}}</span>\r\n @if(!required){\r\n <span class=\"fs-11 fc-dark-gray\"> {{i18n.translate('optional')}} </span>\r\n }\r\n </div>\r\n}\r\n<mat-form-field class=\"date-range primary-form {{className}}\">\r\n <label class=\"mat-form-content\">\r\n <mat-date-range-input [rangePicker]=\"picker\">\r\n <input matStartDate placeholder=\"Start date\" [formControl]=\"startControl\" [value]=\"value?.startDate ? value?.startDate : null\" (dateInput)=\"dateChange($event)\" (focus)=\"focusPicker(picker)\" [min]=\"minDateValue\"\r\n [max]=\"maxDateValue\">\r\n <input matEndDate placeholder=\"End date\" [formControl]=\"endControl\" [value]=\"value?.endDate ? value?.endDate : null\" (dateInput)=\"dateChange($event)\" (focus)=\"focusPicker(picker)\" [min]=\"minDateValue\"\r\n [max]=\"maxDateValue\">\r\n </mat-date-range-input>\r\n </label>\r\n @if(control?.value){\r\n <ds-icon matSuffix icon=\"close\" class=\"fc-onyx fs-10 mx-2 cursor-pointer\" (click)=\"clearDateValue($event)\"></ds-icon>\r\n }\r\n <mat-datepicker-toggle matSuffix [for]=\"picker\" [disableRipple]=\"true\">\r\n <i class=\"sfi sfi-calendar-o fc-onyx font-18\" matDatepickerToggleIcon></i>\r\n </mat-datepicker-toggle>\r\n <mat-date-range-picker #picker></mat-date-range-picker>\r\n</mat-form-field>\r\n<app-validation-errors [errors]=\"control.errors\"></app-validation-errors>\r\n", styles: [":host{flex-grow:1}\n"], dependencies: [{ kind: "ngmodule", type: MatFormFieldModule }, { kind: "component", type: i1.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i1.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "ngmodule", type: MatDatepickerModule }, { kind: "component", type: i2.MatDatepickerToggle, selector: "mat-datepicker-toggle", inputs: ["for", "tabIndex", "aria-label", "disabled", "disableRipple"], exportAs: ["matDatepickerToggle"] }, { kind: "directive", type: i2.MatDatepickerToggleIcon, selector: "[matDatepickerToggleIcon]" }, { kind: "component", type: i2.MatDateRangeInput, selector: "mat-date-range-input", inputs: ["rangePicker", "required", "dateFilter", "min", "max", "disabled", "separator", "comparisonStart", "comparisonEnd"], exportAs: ["matDateRangeInput"] }, { kind: "directive", type: i2.MatStartDate, selector: "input[matStartDate]", outputs: ["dateChange", "dateInput"] }, { kind: "directive", type: i2.MatEndDate, selector: "input[matEndDate]", outputs: ["dateChange", "dateInput"] }, { kind: "component", type: i2.MatDateRangePicker, selector: "mat-date-range-picker", exportAs: ["matDateRangePicker"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i3.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "component", type: ValidationErrorsComponent, selector: "app-validation-errors", inputs: ["errors", "customErrorMessages"] }] });
13
127
  }
14
128
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: DateRangePickerComponent, decorators: [{
15
129
  type: Component,
16
- args: [{ selector: 'app-date-range-picker', schemas: [CUSTOM_ELEMENTS_SCHEMA], standalone: true, template: "<mat-form-field class=\"date-range primary-form {{className}}\">\r\n <label class=\"mat-form-content\">\r\n <mat-date-range-input [rangePicker]=\"picker\">\r\n <input matStartDate placeholder=\"Start date\">\r\n <input matEndDate placeholder=\"End date\">\r\n </mat-date-range-input>\r\n </label>\r\n <mat-datepicker-toggle matSuffix [for]=\"picker\" [disableRipple]=\"true\">\r\n <i class=\"sfi sfi-calendar-o fc-onyx font-18\" matDatepickerToggleIcon></i>\r\n </mat-datepicker-toggle>\r\n <mat-date-range-picker #picker></mat-date-range-picker>\r\n</mat-form-field>\r\n", styles: [":host{flex-grow:1}\n"] }]
17
- }], ctorParameters: () => [], propDecorators: { label: [{
18
- type: Input
19
- }], tooltip: [{
130
+ args: [{ selector: 'app-date-range-picker', schemas: [CUSTOM_ELEMENTS_SCHEMA], standalone: true, providers: [
131
+ {
132
+ provide: NG_VALUE_ACCESSOR,
133
+ useExisting: forwardRef(() => DateRangePickerComponent),
134
+ multi: true,
135
+ },
136
+ {
137
+ provide: DateAdapter,
138
+ useClass: MomentDateAdapter,
139
+ deps: [MAT_DATE_LOCALE, MAT_MOMENT_DATE_ADAPTER_OPTIONS],
140
+ },
141
+ {
142
+ provide: MAT_DATE_FORMATS,
143
+ useClass: CustomDateFormat
144
+ },
145
+ ], imports: [
146
+ MatFormFieldModule,
147
+ MatDatepickerModule,
148
+ MatFormField,
149
+ MatInput,
150
+ MatIcon,
151
+ MatDatepickerToggle,
152
+ MatDatepicker,
153
+ MatDatepickerInput,
154
+ NgClass,
155
+ NgIf,
156
+ InfoItemComponent,
157
+ ReactiveFormsModule,
158
+ ValidationErrorsComponent
159
+ ], template: "@if(label){\r\n <div class=\"d-flex justify-content-between mb-1\">\r\n <span class=\"form-label mb-0\">{{label}}</span>\r\n @if(!required){\r\n <span class=\"fs-11 fc-dark-gray\"> {{i18n.translate('optional')}} </span>\r\n }\r\n </div>\r\n}\r\n<mat-form-field class=\"date-range primary-form {{className}}\">\r\n <label class=\"mat-form-content\">\r\n <mat-date-range-input [rangePicker]=\"picker\">\r\n <input matStartDate placeholder=\"Start date\" [formControl]=\"startControl\" [value]=\"value?.startDate ? value?.startDate : null\" (dateInput)=\"dateChange($event)\" (focus)=\"focusPicker(picker)\" [min]=\"minDateValue\"\r\n [max]=\"maxDateValue\">\r\n <input matEndDate placeholder=\"End date\" [formControl]=\"endControl\" [value]=\"value?.endDate ? value?.endDate : null\" (dateInput)=\"dateChange($event)\" (focus)=\"focusPicker(picker)\" [min]=\"minDateValue\"\r\n [max]=\"maxDateValue\">\r\n </mat-date-range-input>\r\n </label>\r\n @if(control?.value){\r\n <ds-icon matSuffix icon=\"close\" class=\"fc-onyx fs-10 mx-2 cursor-pointer\" (click)=\"clearDateValue($event)\"></ds-icon>\r\n }\r\n <mat-datepicker-toggle matSuffix [for]=\"picker\" [disableRipple]=\"true\">\r\n <i class=\"sfi sfi-calendar-o fc-onyx font-18\" matDatepickerToggleIcon></i>\r\n </mat-datepicker-toggle>\r\n <mat-date-range-picker #picker></mat-date-range-picker>\r\n</mat-form-field>\r\n<app-validation-errors [errors]=\"control.errors\"></app-validation-errors>\r\n", styles: [":host{flex-grow:1}\n"] }]
160
+ }], propDecorators: { tooltip: [{
20
161
  type: Input
21
162
  }], className: [{
22
163
  type: Input
23
- }], placeholder: [{
164
+ }], yearOnly: [{
24
165
  type: Input
166
+ }], dateFormat: [{
167
+ type: Inject,
168
+ args: [MAT_DATE_FORMATS]
169
+ }], datepicker: [{
170
+ type: ViewChild,
171
+ args: [MatDatepicker]
25
172
  }] } });
26
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS1yYW5nZS1waWNrZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYnBtLWNvcmUvc3JjL2xpYi9jb21wb25lbnRzL3NoYXJlZC1jb21wb25lbnRzL2Zvcm0tZmllbGQvZGF0ZS1yYW5nZS1waWNrZXIvZGF0ZS1yYW5nZS1waWNrZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYnBtLWNvcmUvc3JjL2xpYi9jb21wb25lbnRzL3NoYXJlZC1jb21wb25lbnRzL2Zvcm0tZmllbGQvZGF0ZS1yYW5nZS1waWNrZXIvZGF0ZS1yYW5nZS1waWNrZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsdURBQXVEO0FBQ3ZELHlEQUF5RDtBQUN6RCxPQUFPLEVBQUMsU0FBUyxFQUFFLHNCQUFzQixFQUFFLEtBQUssRUFBQyxNQUFNLGVBQWUsQ0FBQzs7QUFVdkUsTUFBTSxPQUFPLHdCQUF3QjtJQUMxQixLQUFLLENBQVc7SUFDaEIsT0FBTyxDQUFXO0lBQ2xCLFNBQVMsR0FBRyxZQUFZLENBQUM7SUFDekIsV0FBVyxDQUFXO0lBQy9CLGdCQUFnQixDQUFDO3VHQUxOLHdCQUF3QjsyRkFBeEIsd0JBQXdCLHFMQ1pyQyxxbEJBWUE7OzJGREFhLHdCQUF3QjtrQkFScEMsU0FBUzsrQkFDRSx1QkFBdUIsV0FHeEIsQ0FBQyxzQkFBc0IsQ0FBQyxjQUNyQixJQUFJO3dEQUlQLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgQGFuZ3VsYXItZXNsaW50L2NvbXBvbmVudC1zZWxlY3RvciAqL1xyXG4vKiBlc2xpbnQtZGlzYWJsZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZW1wdHktZnVuY3Rpb24gKi9cclxuaW1wb3J0IHtDb21wb25lbnQsIENVU1RPTV9FTEVNRU5UU19TQ0hFTUEsIElucHV0fSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnYXBwLWRhdGUtcmFuZ2UtcGlja2VyJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vZGF0ZS1yYW5nZS1waWNrZXIuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2RhdGUtcmFuZ2UtcGlja2VyLmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgc2NoZW1hczogW0NVU1RPTV9FTEVNRU5UU19TQ0hFTUFdLFxyXG4gIHN0YW5kYWxvbmU6IHRydWUsXHJcblxyXG59KVxyXG5leHBvcnQgY2xhc3MgRGF0ZVJhbmdlUGlja2VyQ29tcG9uZW50ICB7XHJcbiAgQElucHV0KCkgbGFiZWwhIDogc3RyaW5nO1xyXG4gIEBJbnB1dCgpIHRvb2x0aXAhIDogc3RyaW5nO1xyXG4gIEBJbnB1dCgpIGNsYXNzTmFtZSA9ICdncmF5LWlucHV0JztcclxuICBASW5wdXQoKSBwbGFjZWhvbGRlciEgOiBzdHJpbmc7XHJcbiAgY29uc3RydWN0b3IoKSB7IH1cclxuXHJcbiAgXHJcblxyXG59XHJcbiIsIjxtYXQtZm9ybS1maWVsZCBjbGFzcz1cImRhdGUtcmFuZ2UgcHJpbWFyeS1mb3JtIHt7Y2xhc3NOYW1lfX1cIj5cclxuICA8bGFiZWwgY2xhc3M9XCJtYXQtZm9ybS1jb250ZW50XCI+XHJcbiAgICA8bWF0LWRhdGUtcmFuZ2UtaW5wdXQgW3JhbmdlUGlja2VyXT1cInBpY2tlclwiPlxyXG4gICAgICA8aW5wdXQgbWF0U3RhcnREYXRlIHBsYWNlaG9sZGVyPVwiU3RhcnQgZGF0ZVwiPlxyXG4gICAgICA8aW5wdXQgbWF0RW5kRGF0ZSBwbGFjZWhvbGRlcj1cIkVuZCBkYXRlXCI+XHJcbiAgICA8L21hdC1kYXRlLXJhbmdlLWlucHV0PlxyXG4gIDwvbGFiZWw+XHJcbiAgPG1hdC1kYXRlcGlja2VyLXRvZ2dsZSBtYXRTdWZmaXggW2Zvcl09XCJwaWNrZXJcIiBbZGlzYWJsZVJpcHBsZV09XCJ0cnVlXCI+XHJcbiAgICA8aSBjbGFzcz1cInNmaSBzZmktY2FsZW5kYXItbyBmYy1vbnl4IGZvbnQtMThcIiBtYXREYXRlcGlja2VyVG9nZ2xlSWNvbj48L2k+XHJcbiAgPC9tYXQtZGF0ZXBpY2tlci10b2dnbGU+XHJcbiAgPG1hdC1kYXRlLXJhbmdlLXBpY2tlciAjcGlja2VyPjwvbWF0LWRhdGUtcmFuZ2UtcGlja2VyPlxyXG48L21hdC1mb3JtLWZpZWxkPlxyXG4iXX0=
173
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS1yYW5nZS1waWNrZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYnBtLWNvcmUvc3JjL2xpYi9jb21wb25lbnRzL3NoYXJlZC1jb21wb25lbnRzL2Zvcm0tZmllbGQvZGF0ZS1yYW5nZS1waWNrZXIvZGF0ZS1yYW5nZS1waWNrZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYnBtLWNvcmUvc3JjL2xpYi9jb21wb25lbnRzL3NoYXJlZC1jb21wb25lbnRzL2Zvcm0tZmllbGQvZGF0ZS1yYW5nZS1waWNrZXIvZGF0ZS1yYW5nZS1waWNrZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsdURBQXVEO0FBQ3ZELHlEQUF5RDtBQUN6RCxPQUFPLEVBQUMsU0FBUyxFQUFFLHNCQUFzQixFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBZ0IsTUFBTSxlQUFlLENBQUM7QUFDckgsT0FBTyxFQUFFLDZCQUE2QixFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFDcEYsT0FBTyxFQUFFLFdBQVcsRUFBRSxpQkFBaUIsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3JGLE9BQU8sRUFBRSxZQUFZLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUNoRixPQUFPLEVBQUUsYUFBYSxFQUFFLGtCQUFrQixFQUFFLG1CQUFtQixFQUFFLG1CQUFtQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDM0gsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ25ELE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUNqRCxPQUFPLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ2hELE9B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RyxRQUFRO3NCQUFoQixLQUFLO2dCQUMyQixVQUFVO3NCQUExQyxNQUFNO3VCQUFDLGdCQUFnQjtnQkFDRSxVQUFVO3NCQUFuQyxTQUFTO3VCQUFDLGFBQWEiLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSBAYW5ndWxhci1lc2xpbnQvY29tcG9uZW50LXNlbGVjdG9yICovXHJcbi8qIGVzbGludC1kaXNhYmxlIEB0eXBlc2NyaXB0LWVzbGludC9uby1lbXB0eS1mdW5jdGlvbiAqL1xyXG5pbXBvcnQge0NvbXBvbmVudCwgQ1VTVE9NX0VMRU1FTlRTX1NDSEVNQSwgZm9yd2FyZFJlZiwgSW5qZWN0LCBJbnB1dCwgVmlld0NoaWxkLCBTaW1wbGVDaGFuZ2VzfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQ29udHJvbFZhbHVlQWNjZXNzb3JEaXJlY3RpdmUgfSBmcm9tICcuLi9jb250cm9sLXZhbHVlLWFjY2Vzc29yLmRpcmVjdGl2ZSc7XHJcbmltcG9ydCB7IEZvcm1Db250cm9sLCBOR19WQUxVRV9BQ0NFU1NPUiwgUmVhY3RpdmVGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgTWF0Rm9ybUZpZWxkLCBNYXRGb3JtRmllbGRNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9mb3JtLWZpZWxkJztcclxuaW1wb3J0IHsgTWF0RGF0ZXBpY2tlciwgTWF0RGF0ZXBpY2tlcklucHV0LCBNYXREYXRlcGlja2VyTW9kdWxlLCBNYXREYXRlcGlja2VyVG9nZ2xlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGF0ZXBpY2tlcic7XHJcbmltcG9ydCB7IE1hdElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaW5wdXQnO1xyXG5pbXBvcnQgeyBNYXRJY29uIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaWNvbic7XHJcbmltcG9ydCB7IE5nQ2xhc3MsIE5nSWYgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBJbmZvSXRlbUNvbXBvbmVudCB9IGZyb20gJy4uL2luZm8taXRlbS9pbmZvLWl0ZW0uY29tcG9uZW50JztcclxuaW1wb3J0IHsgRGF0ZUFkYXB0ZXIsIE1BVF9EQVRFX0ZPUk1BVFMsIE1BVF9EQVRFX0xPQ0FMRSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2NvcmUnO1xyXG5pbXBvcnQgeyBNQVRfTU9NRU5UX0RBVEVfQURBUFRFUl9PUFRJT05TLCBNb21lbnREYXRlQWRhcHRlciB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsLW1vbWVudC1hZGFwdGVyJztcclxuaW1wb3J0IHsgQ3VzdG9tRGF0ZUZvcm1hdCB9IGZyb20gJy4uL2RhdGUtcGlja2VyL2RhdGUtZm9ybWF0JztcclxuaW1wb3J0ICogYXMgbW9tZW50IGZyb20gJ21vbWVudCc7XHJcbmltcG9ydCB7IFZhbGlkYXRpb25FcnJvcnNDb21wb25lbnQgfSBmcm9tICcuLi92YWxpZGF0aW9uLWVycm9ycy92YWxpZGF0aW9uLWVycm9ycy5jb21wb25lbnQnO1xyXG5jb25zdCBZRUFSX09OTFlfRk9STUFUID0ge1xyXG4gIHBhcnNlOiB7XHJcbiAgICBkYXRlSW5wdXQ6ICdZWVlZJyxcclxuICB9LFxyXG4gIGRpc3BsYXk6IHtcclxuICAgIGRhdGVJbnB1dDogJ1lZWVknLFxyXG4gICAgbW9udGhZZWFyTGFiZWw6ICdZWVlZJyxcclxuICAgIGRhdGVBMTF5TGFiZWw6ICdMTCcsXHJcbiAgICBtb250aFllYXJBMTF5TGFiZWw6ICdZWVlZJyxcclxuICB9LFxyXG59O1xyXG5cclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnYXBwLWRhdGUtcmFuZ2UtcGlja2VyJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vZGF0ZS1yYW5nZS1waWNrZXIuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2RhdGUtcmFuZ2UtcGlja2VyLmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgc2NoZW1hczogW0NVU1RPTV9FTEVNRU5UU19TQ0hFTUFdLFxyXG4gIHN0YW5kYWxvbmU6IHRydWUsXHJcbiAgcHJvdmlkZXJzOiBbXHJcbiAgICB7XHJcbiAgICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxyXG4gICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBEYXRlUmFuZ2VQaWNrZXJDb21wb25lbnQpLFxyXG4gICAgICBtdWx0aTogdHJ1ZSxcclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgIHByb3ZpZGU6IERhdGVBZGFwdGVyLFxyXG4gICAgICB1c2VDbGFzczogTW9tZW50RGF0ZUFkYXB0ZXIsXHJcbiAgICAgIGRlcHM6IFtNQVRfREFURV9MT0NBTEUsIE1BVF9NT01FTlRfREFURV9BREFQVEVSX09QVElPTlNdLFxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgcHJvdmlkZTogTUFUX0RBVEVfRk9STUFUUyxcclxuICAgICAgdXNlQ2xhc3M6IEN1c3RvbURhdGVGb3JtYXRcclxuICAgIH0sXHJcbiAgXSxcclxuICBpbXBvcnRzOiBbXHJcbiAgICBNYXRGb3JtRmllbGRNb2R1bGUsXHJcbiAgICBNYXREYXRlcGlja2VyTW9kdWxlLFxyXG4gICAgTWF0Rm9ybUZpZWxkLFxyXG4gICAgTWF0SW5wdXQsXHJcbiAgICBNYXRJY29uLFxyXG4gICAgTWF0RGF0ZXBpY2tlclRvZ2dsZSxcclxuICAgIE1hdERhdGVwaWNrZXIsXHJcbiAgICBNYXREYXRlcGlja2VySW5wdXQsXHJcbiAgICBOZ0NsYXNzLFxyXG4gICAgTmdJZixcclxuICAgIEluZm9JdGVtQ29tcG9uZW50LFxyXG4gICAgUmVhY3RpdmVGb3Jtc01vZHVsZSxcclxuICAgIFZhbGlkYXRpb25FcnJvcnNDb21wb25lbnRcclxuICBdXHJcblxyXG59KVxyXG5leHBvcnQgY2xhc3MgRGF0ZVJhbmdlUGlja2VyQ29tcG9uZW50PFR5cGU+IGV4dGVuZHMgQ29udHJvbFZhbHVlQWNjZXNzb3JEaXJlY3RpdmU8VHlwZT4gIHtcclxuICBASW5wdXQoKSB0b29sdGlwISA6IHN0cmluZztcclxuICBASW5wdXQoKSBjbGFzc05hbWUgPSAnd2hpdGUtaW5wdXQnO1xyXG4gIEBJbnB1dCgpIHllYXJPbmx5OiBib29sZWFuO1xyXG4gIEBJbmplY3QoTUFUX0RBVEVfRk9STUFUUykgcHVibGljIGRhdGVGb3JtYXQ6IEN1c3RvbURhdGVGb3JtYXQ7XHJcbiAgQFZpZXdDaGlsZChNYXREYXRlcGlja2VyKSBkYXRlcGlja2VyOiBNYXREYXRlcGlja2VyPGFueT47XHJcbiAgc3RhcnRDb250cm9sID0gbmV3IEZvcm1Db250cm9sKClcclxuICBlbmRDb250cm9sID0gbmV3IEZvcm1Db250cm9sKCk7XHJcbiAgc3RhcnRJbnB1dFZhbHVlOnN0cmluZ1xyXG4gIGVuZElucHV0VmFsdWU6c3RyaW5nXHJcbiAgZGF0ZVJhbmdlOmFueVxyXG5cclxuXHJcblxyXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcclxuICAgIGlmICghdGhpcy5pc1JlYWRPbmx5ICYmIHRoaXMueWVhck9ubHkpIHRoaXMuYWN0aXZhdGVZZWFyT25seU1vZGUoKTtcclxuICB9XHJcblxyXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpIHtcclxuICAgIGlmIChjaGFuZ2VzKSB7XHJcbiAgICAgIGlmICh0aGlzLmN1c3RvbU1heERhdGUpIHtcclxuICAgICAgICBjb25zdCBkYXRlID0gbmV3IERhdGUodGhpcy5jdXN0b21NYXhEYXRlKTtcclxuICAgICAgICB0aGlzLm1heERhdGVWYWx1ZSA9IG5ldyBEYXRlKGRhdGUuZ2V0RnVsbFllYXIoKSwgZGF0ZS5nZXRNb250aCgpLCBkYXRlLmdldERhdGUoKSk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIGlmIChjaGFuZ2VzICYmICF0aGlzLmlzUmVhZE9ubHkpIHsgLy8gYWRkIG1pbiBkYXRlIHZhbHVlIGZvciAyIGRhdGVzIHZhbGlkYXRpb25zXHJcbiAgICAgIGlmICh0aGlzLmN1c3RvbU1pbkRhdGUpIHtcclxuICAgICAgICBjb25zdCBkYXRlID0gbmV3IERhdGUodGhpcy5jdXN0b21NaW5EYXRlKTtcclxuICAgICAgICB0aGlzLm1pbkRhdGVWYWx1ZSA9IG5ldyBEYXRlKGRhdGUuZ2V0RnVsbFllYXIoKSwgZGF0ZS5nZXRNb250aCgpLCBkYXRlLmdldERhdGUoKSArIDEpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuXHJcbiAgZm9jdXNQaWNrZXIocGlja2VyKSB7XHJcbiAgICBwaWNrZXIub3BlbigpO1xyXG4gIH1cclxuXHJcbiAgZGF0ZUNoYW5nZShldmVudDogYW55KSB7XHJcbiAgICAgIGlmIChldmVudD8udmFsdWUgJiYgIXRoaXMuaXNEaXNhYmxlZCkge1xyXG4gICAgICAgICAgbGV0IGlucHV0VmFsdWVcclxuICAgICAgICAgIGlmICh0aGlzLnN0YXJ0Q29udHJvbC52YWx1ZSAmJiAhdGhpcy5lbmRDb250cm9sLnZhbHVlKXtcclxuICAgICAgICAgICAgdGhpcy5zdGFydElucHV0VmFsdWUgPSBtb21lbnQoZXZlbnQudmFsdWUpLmxvY2FsZSgnZW4tVVMnKS5mb3JtYXQoXCJZWVlZLU1NLUREVEhIOm1tOnNzLlNTU1pcIilcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGlmKHRoaXMuc3RhcnRDb250cm9sLnZhbHVlICYmIHRoaXMuZW5kQ29udHJvbC52YWx1ZSl7XHJcbiAgICAgICAgICAgIHRoaXMuZW5kSW5wdXRWYWx1ZSA9IG1vbWVudChldmVudC52YWx1ZSkubG9jYWxlKCdlbi1VUycpLmZvcm1hdChcIllZWVktTU0tRERUSEg6bW06c3MuU1NTWlwiKVxyXG4gICAgICAgICAgfVxyXG5cclxuICAgICAgICAgIGlmKHRoaXMuZW5kSW5wdXRWYWx1ZSAmJiB0aGlzLnN0YXJ0SW5wdXRWYWx1ZSl7XHJcbiAgICAgICAgICAgIHRoaXMuZGF0ZVJhbmdlID0ge1xyXG4gICAgICAgICAgICAgIHN0YXJ0RGF0ZTogdGhpcy5zdGFydElucHV0VmFsdWUsXHJcbiAgICAgICAgICAgICAgZW5kRGF0ZTogdGhpcy5lbmRJbnB1dFZhbHVlXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICBpbnB1dFZhbHVlID0gbW9tZW50KGV2ZW50LnZhbHVlKS5sb2NhbGUoJ2VuLVVTJykuZm9ybWF0KFwiWVlZWS1NTS1ERFRISDptbTpzcy5TU1NaXCIpO1xyXG4gICAgICAgICAgaWYgKHRoaXMuZGF0ZVJhbmdlPy5zdGFydERhdGUgJiYgdGhpcy5kYXRlUmFuZ2U/LmVuZERhdGUpe1xyXG4gICAgICAgICAgICB0aGlzLmNvbnRyb2wuc2V0VmFsdWUodGhpcy5kYXRlUmFuZ2UpXHJcbiAgICAgICAgICB9XHJcbiAgICAgIH1cclxuICB9XHJcblxyXG4gIGNsZWFyRGF0ZVZhbHVlKGV2ZW50KTogdm9pZCB7XHJcbiAgICB0aGlzLmRhdGVSYW5nZSA9IG51bGw7XHJcbiAgICB0aGlzLnN0YXJ0SW5wdXRWYWx1ZSA9IG51bGw7XHJcbiAgICB0aGlzLmVuZElucHV0VmFsdWUgPSBudWxsO1xyXG4gICAgdGhpcy5jb250cm9sLnNldFZhbHVlKG51bGwpO1xyXG4gICAgdGhpcy5lbmRDb250cm9sLnNldFZhbHVlKG51bGwpO1xyXG4gICAgdGhpcy5zdGFydENvbnRyb2wuc2V0VmFsdWUobnVsbCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGFjdGl2YXRlWWVhck9ubHlNb2RlKCk6IHZvaWQge1xyXG4gICAgdGhpcy5kYXRlRm9ybWF0LnVwZGF0ZURhdGVGb3JtYXQoWUVBUl9PTkxZX0ZPUk1BVC5wYXJzZSwgWUVBUl9PTkxZX0ZPUk1BVC5kaXNwbGF5KTtcclxuICAgIGlmICh0aGlzLmNvbnRyb2wpIHtcclxuICAgICAgdGhpcy5jb250cm9sLnNldFZhbHVlKG1vbWVudCh0aGlzLmNvbnRyb2wudmFsdWUpLmZvcm1hdCgneXl5eScpKTtcclxuICAgIH1cclxuICAgIHRoaXMuZGF0ZXBpY2tlci5zdGFydFZpZXcgPSAnbXVsdGkteWVhcic7XHJcbiAgICB0aGlzLmRhdGVwaWNrZXIueWVhclNlbGVjdGVkLnN1YnNjcmliZShlID0+IHtcclxuICAgICAgdGhpcy5jb250cm9sLnNldFZhbHVlKG1vbWVudChlKS5mb3JtYXQoJ3l5eXknKSk7XHJcbiAgICAgIHRoaXMuZGF0ZXBpY2tlci5jbG9zZSgpO1xyXG4gICAgfSlcclxuICAgIHRoaXMuZGF0ZXBpY2tlci5vcGVuZWRTdHJlYW0uc3Vic2NyaWJlKCgpID0+IHtcclxuICAgICAgZG9jdW1lbnQuYm9keS5jbGFzc0xpc3QuYWRkKCd5ZWFyLW9ubHknKTtcclxuICAgIH0pXHJcbiAgICB0aGlzLmRhdGVwaWNrZXIuY2xvc2VkU3RyZWFtLnN1YnNjcmliZSgoKSA9PiB7XHJcbiAgICAgIGRvY3VtZW50LmJvZHkuY2xhc3NMaXN0LnJlbW92ZSgneWVhci1vbmx5Jyk7XHJcbiAgICB9KVxyXG4gIH1cclxufVxyXG4iLCJAaWYobGFiZWwpe1xyXG4gIDxkaXYgY2xhc3M9XCJkLWZsZXgganVzdGlmeS1jb250ZW50LWJldHdlZW4gbWItMVwiPlxyXG4gICAgPHNwYW4gY2xhc3M9XCJmb3JtLWxhYmVsIG1iLTBcIj57e2xhYmVsfX08L3NwYW4+XHJcbiAgICBAaWYoIXJlcXVpcmVkKXtcclxuICAgIDxzcGFuIGNsYXNzPVwiZnMtMTEgZmMtZGFyay1ncmF5XCI+IHt7aTE4bi50cmFuc2xhdGUoJ29wdGlvbmFsJyl9fSA8L3NwYW4+XHJcbiAgICB9XHJcbiAgPC9kaXY+XHJcbn1cclxuPG1hdC1mb3JtLWZpZWxkIGNsYXNzPVwiZGF0ZS1yYW5nZSBwcmltYXJ5LWZvcm0ge3tjbGFzc05hbWV9fVwiPlxyXG4gIDxsYWJlbCBjbGFzcz1cIm1hdC1mb3JtLWNvbnRlbnRcIj5cclxuICAgIDxtYXQtZGF0ZS1yYW5nZS1pbnB1dCBbcmFuZ2VQaWNrZXJdPVwicGlja2VyXCI+XHJcbiAgICAgIDxpbnB1dCBtYXRTdGFydERhdGUgcGxhY2Vob2xkZXI9XCJTdGFydCBkYXRlXCIgW2Zvcm1Db250cm9sXT1cInN0YXJ0Q29udHJvbFwiIFt2YWx1ZV09XCJ2YWx1ZT8uc3RhcnREYXRlID8gdmFsdWU/LnN0YXJ0RGF0ZSA6IG51bGxcIiAoZGF0ZUlucHV0KT1cImRhdGVDaGFuZ2UoJGV2ZW50KVwiIChmb2N1cyk9XCJmb2N1c1BpY2tlcihwaWNrZXIpXCIgW21pbl09XCJtaW5EYXRlVmFsdWVcIlxyXG4gICAgICBbbWF4XT1cIm1heERhdGVWYWx1ZVwiPlxyXG4gICAgICA8aW5wdXQgbWF0RW5kRGF0ZSBwbGFjZWhvbGRlcj1cIkVuZCBkYXRlXCIgW2Zvcm1Db250cm9sXT1cImVuZENvbnRyb2xcIiBbdmFsdWVdPVwidmFsdWU/LmVuZERhdGUgPyB2YWx1ZT8uZW5kRGF0ZSA6IG51bGxcIiAoZGF0ZUlucHV0KT1cImRhdGVDaGFuZ2UoJGV2ZW50KVwiIChmb2N1cyk9XCJmb2N1c1BpY2tlcihwaWNrZXIpXCIgW21pbl09XCJtaW5EYXRlVmFsdWVcIlxyXG4gICAgICBbbWF4XT1cIm1heERhdGVWYWx1ZVwiPlxyXG4gICAgPC9tYXQtZGF0ZS1yYW5nZS1pbnB1dD5cclxuICA8L2xhYmVsPlxyXG4gIEBpZihjb250cm9sPy52YWx1ZSl7XHJcbiAgICA8ZHMtaWNvbiBtYXRTdWZmaXggaWNvbj1cImNsb3NlXCIgY2xhc3M9XCJmYy1vbnl4IGZzLTEwIG14LTIgY3Vyc29yLXBvaW50ZXJcIiAoY2xpY2spPVwiY2xlYXJEYXRlVmFsdWUoJGV2ZW50KVwiPjwvZHMtaWNvbj5cclxuICAgIH1cclxuICA8bWF0LWRhdGVwaWNrZXItdG9nZ2xlIG1hdFN1ZmZpeCBbZm9yXT1cInBpY2tlclwiIFtkaXNhYmxlUmlwcGxlXT1cInRydWVcIj5cclxuICAgIDxpIGNsYXNzPVwic2ZpIHNmaS1jYWxlbmRhci1vIGZjLW9ueXggZm9udC0xOFwiIG1hdERhdGVwaWNrZXJUb2dnbGVJY29uPjwvaT5cclxuICA8L21hdC1kYXRlcGlja2VyLXRvZ2dsZT5cclxuICA8bWF0LWRhdGUtcmFuZ2UtcGlja2VyICNwaWNrZXI+PC9tYXQtZGF0ZS1yYW5nZS1waWNrZXI+XHJcbjwvbWF0LWZvcm0tZmllbGQ+XHJcbjxhcHAtdmFsaWRhdGlvbi1lcnJvcnMgW2Vycm9yc109XCJjb250cm9sLmVycm9yc1wiPjwvYXBwLXZhbGlkYXRpb24tZXJyb3JzPlxyXG4iXX0=
@@ -10,26 +10,26 @@ import { InfoItemComponent } from "../info-item/info-item.component";
10
10
  import { MatInput } from "@angular/material/input";
11
11
  import { ControlValueAccessorDirective } from '../control-value-accessor.directive';
12
12
  import { ValidationErrorsComponent } from '../validation-errors/validation-errors.component';
13
+ import { EnOnlyDirective } from "../../../../directives/en.directive";
14
+ import { ArOnlyDirective } from "../../../../directives/ar.directive";
13
15
  import * as i0 from "@angular/core";
14
16
  import * as i1 from "@ncstate/sat-popover";
15
17
  import * as i2 from "@angular/forms";
16
18
  export class InputComponent extends ControlValueAccessorDirective {
17
- hasTooltip = false;
18
19
  tooltip;
19
20
  floatLabel = 'auto';
20
21
  className = 'bordered-input';
21
- showLabel = true;
22
22
  iconPrefixName;
23
23
  iconSuffixName;
24
24
  emitedChangedValue1 = new EventEmitter();
25
25
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: InputComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
26
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.8", type: InputComponent, isStandalone: true, selector: "app-input", inputs: { hasTooltip: "hasTooltip", tooltip: "tooltip", floatLabel: "floatLabel", className: "className", showLabel: "showLabel", iconPrefixName: "iconPrefixName", iconSuffixName: "iconSuffixName", emitedChangedValue1: "emitedChangedValue1" }, providers: [
26
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.8", type: InputComponent, isStandalone: true, selector: "app-input", inputs: { tooltip: "tooltip", floatLabel: "floatLabel", className: "className", iconPrefixName: "iconPrefixName", iconSuffixName: "iconSuffixName", emitedChangedValue1: "emitedChangedValue1" }, providers: [
27
27
  {
28
28
  provide: NG_VALUE_ACCESSOR,
29
29
  useExisting: forwardRef(() => InputComponent),
30
30
  multi: true,
31
31
  },
32
- ], usesInheritance: true, ngImport: i0, template: "@if(!isReadOnly){\r\n<app-form-label\r\n [label]=\"label\"\r\n [optional]=\"!required\"\r\n [hideOption]=\"required\"\r\n [showLabel]=\"showLabel\"\r\n></app-form-label>\r\n@if(label){\r\n<div class=\"d-flex justify-content-between mb-1\">\r\n @if(!hasTooltip){<span class=\"form-label mb-0\">{{ label }}</span\r\n >} @if(!required){<span class=\"fs-11 fc-dark-gray\">{{\r\n i18n.translate(\"Optional\")\r\n }}</span\r\n >} @if(hasTooltip){\r\n <span class=\"form-label mb-0\">\r\n {{ labelTextWriteMode }}\r\n <ds-icon\r\n icon=\"info fs-22\"\r\n class=\"cursor-pointer\"\r\n [satPopoverAnchor]=\"popover\"\r\n (click)=\"popover.toggle(); $event.stopImmediatePropagation()\"\r\n ></ds-icon>\r\n </span>\r\n }\r\n</div>\r\n}\r\n<mat-form-field\r\n class=\"primary-form {{ className }}\"\r\n [ngClass]=\"{ 'input-disabled': control.disabled }\"\r\n [floatLabel]=\"floatLabel\"\r\n>\r\n @if(iconPrefixName){<span class=\"sfi {{ iconPrefixName }}\"></span>}\r\n @if(loading){<span\r\n class=\"sfi sfi-spinner d-inline-block spin fc-coral\"\r\n matSuffix\r\n ></span\r\n >}\r\n\r\n <label class=\"mat-form-content\">\r\n <!-- add input for ar && en custom directive with add type = arOnly || type = enOnly-->\r\n @if(type === 'arOnly'){\r\n <input\r\n arOnly\r\n matInput\r\n [value]=\"value\"\r\n oninput=\"validity.valid || (value='');\"\r\n [formControl]=\"control\"\r\n [required]=\"required\"\r\n [placeholder]=\"placeholder\"\r\n />\r\n } @else if(type === 'enOnly'){\r\n <input\r\n enOnly\r\n matInput\r\n [value]=\"value\"\r\n oninput=\"validity.valid || (value='');\"\r\n [formControl]=\"control\"\r\n [required]=\"required\"\r\n [placeholder]=\"placeholder\"\r\n />\r\n }\r\n <!-- -->\r\n @else{\r\n <input\r\n matInput\r\n [value]=\"value\"\r\n oninput=\"validity.valid || (value='');\"\r\n [formControl]=\"control\"\r\n [type]=\"type\"\r\n [placeholder]=\"placeholder\"\r\n />\r\n }\r\n </label>\r\n \r\n @if(matSuffix){<span matSuffix class=\"sfi {{ iconSuffixName }}\"></span>}\r\n @if(!control?.valid){\r\n <!-- <mat-error class=\"mb-2\">\r\n {{ i18n.translate(\"validFieldError\") }}{{ label }}\r\n </mat-error> -->\r\n \r\n } @if(showHint){\r\n <mat-hint class=\"d-flex align-items-center gap-1 mt-1\">\r\n <span\r\n class=\"sfi sfi-info fs-17 fc-dark-gray\"\r\n [ngClass]=\"{ 'fc-oasis-light-imp': value }\"\r\n ></span>\r\n <span class=\"fs-12 fc-black line-height-1\">{{ hint }}</span>\r\n </mat-hint>\r\n }\r\n</mat-form-field>\r\n<app-validation-errors [errors]=\"control.errors\"></app-validation-errors>\r\n\r\n\r\n\r\n\r\n<!-- <span class=\"fc-coral\" style=\"color: #f44336\">\r\n {{ control.errors }}\r\n</span> -->\r\n\r\n} @if(isReadOnly && (showIfEmpty || control)){\r\n<ng-container class=\"info-section\">\r\n <app-info-item\r\n class=\"info-item w-100\"\r\n [label]=\"label\"\r\n [insideTable]=\"insideTable\"\r\n [hasLabel]=\"label ? true : false\"\r\n [type]=\"type\"\r\n [value]=\"control.value\"\r\n ></app-info-item>\r\n @if(showHint){\r\n <mat-hint class=\"d-flex align-items-center gap-1 mt-1\">\r\n <span\r\n class=\"sfi sfi-info fs-17 fc-dark-gray\"\r\n [ngClass]=\"{ 'fc-oasis-light-imp': value }\"\r\n ></span>\r\n <span class=\"fs-12 fc-black line-height-1\">{{ hint }}</span>\r\n </mat-hint>\r\n }\r\n</ng-container>\r\n}\r\n\r\n<!-- section tooltip -->\r\n<!-- <sat-popover #popover [hasBackdrop]=\"true\" verticalAlign=\"below\">\r\n <div class=\"deafult-tooltip\">\r\n {{tooltip}}\r\n </div>\r\n</sat-popover> -->\r\n\r\n<sat-popover #popover [hasBackdrop]=\"true\" verticalAlign=\"below\">\r\n <div class=\"default-popover p-3 fs-14\">\r\n <span class=\"fs-14 fw-bold signature-notes\" [innerHTML]=\"tooltip\"></span>\r\n </div>\r\n</sat-popover>\r\n", styles: [":host{flex-grow:1}.input-disabled{pointer-events:none;opacity:1.5}\n"], dependencies: [{ kind: "ngmodule", type: SatPopoverModule }, { kind: "component", type: i1.SatPopoverComponent, selector: "sat-popover", inputs: ["anchor", "horizontalAlign", "xAlign", "verticalAlign", "yAlign", "forceAlignment", "lockAlignment", "autoFocus", "restoreFocus", "scrollStrategy", "hasBackdrop", "interactiveClose", "openTransition", "closeTransition", "openAnimationStartAtScale", "closeAnimationEndAtScale", "backdropClass", "panelClass"], outputs: ["opened", "closed", "afterOpen", "afterClose", "backdropClicked", "overlayKeydown"] }, { kind: "directive", type: i1.SatPopoverAnchorDirective, selector: "[satPopoverAnchor]", inputs: ["satPopoverAnchor"], exportAs: ["satPopoverAnchor"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: MatHint, selector: "mat-hint", inputs: ["align", "id"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: InfoItemComponent, selector: "app-info-item", inputs: ["label", "value", "name", "type", "dateType", "multiple", "insideTable", "hasLabel", "arrayList", "actionType", "download"] }, { kind: "component", type: MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "component", type: ValidationErrorsComponent, selector: "app-validation-errors", inputs: ["errors", "customErrorMessages"] }] });
32
+ ], usesInheritance: true, ngImport: i0, template: "@if(!isReadOnly){\r\n@if(label){\r\n<div class=\"d-flex justify-content-between mb-1\">\r\n <span class=\"form-label mb-0\">{{ label }}</span\r\n > @if(!required){<span class=\"fs-11 fc-dark-gray\">{{\r\n i18n.translate(\"Optional\")\r\n }}</span\r\n >} @if(hasTooltip){\r\n <span class=\"form-label mb-0\">\r\n {{ tooltip }}\r\n <ds-icon\r\n icon=\"info fs-22\"\r\n class=\"cursor-pointer\"\r\n [satPopoverAnchor]=\"popover\"\r\n (click)=\"popover.toggle(); $event.stopImmediatePropagation()\"\r\n ></ds-icon>\r\n </span>\r\n }\r\n</div>\r\n}\r\n<mat-form-field\r\n class=\"primary-form {{ className }}\"\r\n [ngClass]=\"{ 'input-disabled': control.disabled }\"\r\n [floatLabel]=\"floatLabel\"\r\n>\r\n @if(iconPrefixName){<span class=\"sfi {{ iconPrefixName }}\"></span>}\r\n <label class=\"mat-form-content\">\r\n <!-- add input for ar && en custom directive with add type = arOnly || type = enOnly-->\r\n @if(type === 'arOnly'){\r\n <input\r\n arOnly\r\n matInput\r\n [value]=\"value\"\r\n oninput=\"validity.valid || (value='');\"\r\n [formControl]=\"control\"\r\n [required]=\"required\"\r\n [placeholder]=\"placeholder\"\r\n />\r\n } @else if(type === 'enOnly'){\r\n <input\r\n enOnly\r\n matInput\r\n [value]=\"value\"\r\n oninput=\"validity.valid || (value='');\"\r\n [formControl]=\"control\"\r\n [required]=\"required\"\r\n [placeholder]=\"placeholder\"\r\n />\r\n }\r\n @else{\r\n <input\r\n matInput\r\n [value]=\"value\"\r\n oninput=\"validity.valid || (value='');\"\r\n [formControl]=\"control\"\r\n [type]=\"type\"\r\n [placeholder]=\"placeholder\"\r\n />\r\n }\r\n </label>\r\n \r\n @if(iconSuffixName){<span matSuffix class=\"sfi {{ iconSuffixName }}\"></span>}\r\n @if(hint){\r\n <mat-hint class=\"d-flex align-items-center gap-1 mt-1\">\r\n <span\r\n class=\"sfi sfi-info fs-17 fc-dark-gray\"\r\n [ngClass]=\"{ 'fc-oasis-light-imp': value }\"\r\n ></span>\r\n <span class=\"fs-12 fc-black line-height-1\">{{ hint }}</span>\r\n </mat-hint>\r\n }\r\n</mat-form-field>\r\n<app-validation-errors [errors]=\"control.errors\"></app-validation-errors>\r\n\r\n} @if(isReadOnly && (showIfEmpty || control)){\r\n<ng-container class=\"info-section\">\r\n <app-info-item\r\n class=\"info-item w-100\"\r\n [label]=\"label\"\r\n [insideTable]=\"insideTable\"\r\n [hasLabel]=\"!!label\"\r\n [type]=\"type\"\r\n [value]=\"control.value\"\r\n ></app-info-item>\r\n</ng-container>\r\n}\r\n\r\n<sat-popover #popover [hasBackdrop]=\"true\" verticalAlign=\"below\">\r\n <div class=\"default-popover p-3 fs-14\">\r\n <span class=\"fs-14 fw-bold signature-notes\" [innerHTML]=\"tooltip\"></span>\r\n </div>\r\n</sat-popover>\r\n", styles: [":host{flex-grow:1}.input-disabled{pointer-events:none;opacity:1.5}\n"], dependencies: [{ kind: "ngmodule", type: SatPopoverModule }, { kind: "component", type: i1.SatPopoverComponent, selector: "sat-popover", inputs: ["anchor", "horizontalAlign", "xAlign", "verticalAlign", "yAlign", "forceAlignment", "lockAlignment", "autoFocus", "restoreFocus", "scrollStrategy", "hasBackdrop", "interactiveClose", "openTransition", "closeTransition", "openAnimationStartAtScale", "closeAnimationEndAtScale", "backdropClass", "panelClass"], outputs: ["opened", "closed", "afterOpen", "afterClose", "backdropClicked", "overlayKeydown"] }, { kind: "directive", type: i1.SatPopoverAnchorDirective, selector: "[satPopoverAnchor]", inputs: ["satPopoverAnchor"], exportAs: ["satPopoverAnchor"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: MatHint, selector: "mat-hint", inputs: ["align", "id"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: InfoItemComponent, selector: "app-info-item", inputs: ["label", "value", "name", "type", "dateType", "multiple", "insideTable", "hasLabel", "arrayList", "actionType", "download"] }, { kind: "component", type: MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "component", type: ValidationErrorsComponent, selector: "app-validation-errors", inputs: ["errors", "customErrorMessages"] }, { kind: "directive", type: EnOnlyDirective, selector: "[enOnly]" }, { kind: "directive", type: ArOnlyDirective, selector: "[arOnly]" }] });
33
33
  }
34
34
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: InputComponent, decorators: [{
35
35
  type: Component,
@@ -43,24 +43,22 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImpor
43
43
  InfoItemComponent,
44
44
  MatFormField,
45
45
  MatInput,
46
- ValidationErrorsComponent
46
+ ValidationErrorsComponent,
47
+ EnOnlyDirective,
48
+ ArOnlyDirective
47
49
  ], standalone: true, providers: [
48
50
  {
49
51
  provide: NG_VALUE_ACCESSOR,
50
52
  useExisting: forwardRef(() => InputComponent),
51
53
  multi: true,
52
54
  },
53
- ], template: "@if(!isReadOnly){\r\n<app-form-label\r\n [label]=\"label\"\r\n [optional]=\"!required\"\r\n [hideOption]=\"required\"\r\n [showLabel]=\"showLabel\"\r\n></app-form-label>\r\n@if(label){\r\n<div class=\"d-flex justify-content-between mb-1\">\r\n @if(!hasTooltip){<span class=\"form-label mb-0\">{{ label }}</span\r\n >} @if(!required){<span class=\"fs-11 fc-dark-gray\">{{\r\n i18n.translate(\"Optional\")\r\n }}</span\r\n >} @if(hasTooltip){\r\n <span class=\"form-label mb-0\">\r\n {{ labelTextWriteMode }}\r\n <ds-icon\r\n icon=\"info fs-22\"\r\n class=\"cursor-pointer\"\r\n [satPopoverAnchor]=\"popover\"\r\n (click)=\"popover.toggle(); $event.stopImmediatePropagation()\"\r\n ></ds-icon>\r\n </span>\r\n }\r\n</div>\r\n}\r\n<mat-form-field\r\n class=\"primary-form {{ className }}\"\r\n [ngClass]=\"{ 'input-disabled': control.disabled }\"\r\n [floatLabel]=\"floatLabel\"\r\n>\r\n @if(iconPrefixName){<span class=\"sfi {{ iconPrefixName }}\"></span>}\r\n @if(loading){<span\r\n class=\"sfi sfi-spinner d-inline-block spin fc-coral\"\r\n matSuffix\r\n ></span\r\n >}\r\n\r\n <label class=\"mat-form-content\">\r\n <!-- add input for ar && en custom directive with add type = arOnly || type = enOnly-->\r\n @if(type === 'arOnly'){\r\n <input\r\n arOnly\r\n matInput\r\n [value]=\"value\"\r\n oninput=\"validity.valid || (value='');\"\r\n [formControl]=\"control\"\r\n [required]=\"required\"\r\n [placeholder]=\"placeholder\"\r\n />\r\n } @else if(type === 'enOnly'){\r\n <input\r\n enOnly\r\n matInput\r\n [value]=\"value\"\r\n oninput=\"validity.valid || (value='');\"\r\n [formControl]=\"control\"\r\n [required]=\"required\"\r\n [placeholder]=\"placeholder\"\r\n />\r\n }\r\n <!-- -->\r\n @else{\r\n <input\r\n matInput\r\n [value]=\"value\"\r\n oninput=\"validity.valid || (value='');\"\r\n [formControl]=\"control\"\r\n [type]=\"type\"\r\n [placeholder]=\"placeholder\"\r\n />\r\n }\r\n </label>\r\n \r\n @if(matSuffix){<span matSuffix class=\"sfi {{ iconSuffixName }}\"></span>}\r\n @if(!control?.valid){\r\n <!-- <mat-error class=\"mb-2\">\r\n {{ i18n.translate(\"validFieldError\") }}{{ label }}\r\n </mat-error> -->\r\n \r\n } @if(showHint){\r\n <mat-hint class=\"d-flex align-items-center gap-1 mt-1\">\r\n <span\r\n class=\"sfi sfi-info fs-17 fc-dark-gray\"\r\n [ngClass]=\"{ 'fc-oasis-light-imp': value }\"\r\n ></span>\r\n <span class=\"fs-12 fc-black line-height-1\">{{ hint }}</span>\r\n </mat-hint>\r\n }\r\n</mat-form-field>\r\n<app-validation-errors [errors]=\"control.errors\"></app-validation-errors>\r\n\r\n\r\n\r\n\r\n<!-- <span class=\"fc-coral\" style=\"color: #f44336\">\r\n {{ control.errors }}\r\n</span> -->\r\n\r\n} @if(isReadOnly && (showIfEmpty || control)){\r\n<ng-container class=\"info-section\">\r\n <app-info-item\r\n class=\"info-item w-100\"\r\n [label]=\"label\"\r\n [insideTable]=\"insideTable\"\r\n [hasLabel]=\"label ? true : false\"\r\n [type]=\"type\"\r\n [value]=\"control.value\"\r\n ></app-info-item>\r\n @if(showHint){\r\n <mat-hint class=\"d-flex align-items-center gap-1 mt-1\">\r\n <span\r\n class=\"sfi sfi-info fs-17 fc-dark-gray\"\r\n [ngClass]=\"{ 'fc-oasis-light-imp': value }\"\r\n ></span>\r\n <span class=\"fs-12 fc-black line-height-1\">{{ hint }}</span>\r\n </mat-hint>\r\n }\r\n</ng-container>\r\n}\r\n\r\n<!-- section tooltip -->\r\n<!-- <sat-popover #popover [hasBackdrop]=\"true\" verticalAlign=\"below\">\r\n <div class=\"deafult-tooltip\">\r\n {{tooltip}}\r\n </div>\r\n</sat-popover> -->\r\n\r\n<sat-popover #popover [hasBackdrop]=\"true\" verticalAlign=\"below\">\r\n <div class=\"default-popover p-3 fs-14\">\r\n <span class=\"fs-14 fw-bold signature-notes\" [innerHTML]=\"tooltip\"></span>\r\n </div>\r\n</sat-popover>\r\n", styles: [":host{flex-grow:1}.input-disabled{pointer-events:none;opacity:1.5}\n"] }]
54
- }], propDecorators: { hasTooltip: [{
55
- type: Input
56
- }], tooltip: [{
55
+ ], template: "@if(!isReadOnly){\r\n@if(label){\r\n<div class=\"d-flex justify-content-between mb-1\">\r\n <span class=\"form-label mb-0\">{{ label }}</span\r\n > @if(!required){<span class=\"fs-11 fc-dark-gray\">{{\r\n i18n.translate(\"Optional\")\r\n }}</span\r\n >} @if(hasTooltip){\r\n <span class=\"form-label mb-0\">\r\n {{ tooltip }}\r\n <ds-icon\r\n icon=\"info fs-22\"\r\n class=\"cursor-pointer\"\r\n [satPopoverAnchor]=\"popover\"\r\n (click)=\"popover.toggle(); $event.stopImmediatePropagation()\"\r\n ></ds-icon>\r\n </span>\r\n }\r\n</div>\r\n}\r\n<mat-form-field\r\n class=\"primary-form {{ className }}\"\r\n [ngClass]=\"{ 'input-disabled': control.disabled }\"\r\n [floatLabel]=\"floatLabel\"\r\n>\r\n @if(iconPrefixName){<span class=\"sfi {{ iconPrefixName }}\"></span>}\r\n <label class=\"mat-form-content\">\r\n <!-- add input for ar && en custom directive with add type = arOnly || type = enOnly-->\r\n @if(type === 'arOnly'){\r\n <input\r\n arOnly\r\n matInput\r\n [value]=\"value\"\r\n oninput=\"validity.valid || (value='');\"\r\n [formControl]=\"control\"\r\n [required]=\"required\"\r\n [placeholder]=\"placeholder\"\r\n />\r\n } @else if(type === 'enOnly'){\r\n <input\r\n enOnly\r\n matInput\r\n [value]=\"value\"\r\n oninput=\"validity.valid || (value='');\"\r\n [formControl]=\"control\"\r\n [required]=\"required\"\r\n [placeholder]=\"placeholder\"\r\n />\r\n }\r\n @else{\r\n <input\r\n matInput\r\n [value]=\"value\"\r\n oninput=\"validity.valid || (value='');\"\r\n [formControl]=\"control\"\r\n [type]=\"type\"\r\n [placeholder]=\"placeholder\"\r\n />\r\n }\r\n </label>\r\n \r\n @if(iconSuffixName){<span matSuffix class=\"sfi {{ iconSuffixName }}\"></span>}\r\n @if(hint){\r\n <mat-hint class=\"d-flex align-items-center gap-1 mt-1\">\r\n <span\r\n class=\"sfi sfi-info fs-17 fc-dark-gray\"\r\n [ngClass]=\"{ 'fc-oasis-light-imp': value }\"\r\n ></span>\r\n <span class=\"fs-12 fc-black line-height-1\">{{ hint }}</span>\r\n </mat-hint>\r\n }\r\n</mat-form-field>\r\n<app-validation-errors [errors]=\"control.errors\"></app-validation-errors>\r\n\r\n} @if(isReadOnly && (showIfEmpty || control)){\r\n<ng-container class=\"info-section\">\r\n <app-info-item\r\n class=\"info-item w-100\"\r\n [label]=\"label\"\r\n [insideTable]=\"insideTable\"\r\n [hasLabel]=\"!!label\"\r\n [type]=\"type\"\r\n [value]=\"control.value\"\r\n ></app-info-item>\r\n</ng-container>\r\n}\r\n\r\n<sat-popover #popover [hasBackdrop]=\"true\" verticalAlign=\"below\">\r\n <div class=\"default-popover p-3 fs-14\">\r\n <span class=\"fs-14 fw-bold signature-notes\" [innerHTML]=\"tooltip\"></span>\r\n </div>\r\n</sat-popover>\r\n", styles: [":host{flex-grow:1}.input-disabled{pointer-events:none;opacity:1.5}\n"] }]
56
+ }], propDecorators: { tooltip: [{
57
57
  type: Input
58
58
  }], floatLabel: [{
59
59
  type: Input
60
60
  }], className: [{
61
61
  type: Input
62
- }], showLabel: [{
63
- type: Input
64
62
  }], iconPrefixName: [{
65
63
  type: Input
66
64
  }], iconSuffixName: [{
@@ -68,4 +66,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImpor
68
66
  }], emitedChangedValue1: [{
69
67
  type: Input
70
68
  }] } });
71
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYnBtLWNvcmUvc3JjL2xpYi9jb21wb25lbnRzL3NoYXJlZC1jb21wb25lbnRzL2Zvcm0tZmllbGQvaW5wdXQvaW5wdXQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYnBtLWNvcmUvc3JjL2xpYi9jb21wb25lbnRzL3NoYXJlZC1jb21wb25lbnRzL2Zvcm0tZmllbGQvaW5wdXQvaW5wdXQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsNERBQTREO0FBQzVELHVEQUF1RDtBQUN2RCx1REFBdUQ7QUFDdkQsT0FBTyxFQUFDLGlCQUFpQixFQUFFLG1CQUFtQixFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDdEUsT0FBTyxFQUFFLFNBQVMsRUFBRSxzQkFBc0IsRUFBRSxLQUFLLEVBQWlCLFlBQVksRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbEgsT0FBTyxFQUFDLFFBQVEsRUFBRSxZQUFZLEVBQUUsT0FBTyxFQUFDLE1BQU0sOEJBQThCLENBQUM7QUFDN0UsT0FBTyxFQUFDLGdCQUFnQixFQUFDLE1BQU0sc0JBQXNCLENBQUM7QUFDdEQsT0FBTyxFQUFDLE9BQU8sRUFBRSxJQUFJLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQztBQUM5QyxPQUFPLEVBQUMsaUJBQWlCLEVBQUMsTUFBTSxrQ0FBa0MsQ0FBQztBQUNuRSxPQUFPLEVBQUMsUUFBUSxFQUFDLE1BQU0seUJBQXlCLENBQUM7QUFDakQsT0FBTyxFQUFFLDZCQUE2QixFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFDcEYsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sa0RBQWtELENBQUM7Ozs7QUE2QjdGLE1BQU0sT0FBTyxjQUFxQixTQUFRLDZCQUFtQztJQUNsRSxVQUFVLEdBQUcsS0FBSyxDQUFDO0lBQ25CLE9BQU8sQ0FBVTtJQUNqQixVQUFVLEdBQVEsTUFBTSxDQUFDO0lBQ3pCLFNBQVMsR0FBRyxnQkFBZ0IsQ0FBQztJQUM3QixTQUFTLEdBQUcsSUFBSSxDQUFDO0lBQ2pCLGNBQWMsQ0FBVTtJQUN4QixjQUFjLENBQVU7SUFDeEIsbUJBQW1CLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQzt1R0FSdkMsY0FBYzsyRkFBZCxjQUFjLDRTQVRkO1lBQ1Q7Z0JBQ0UsT0FBTyxFQUFFLGlCQUFpQjtnQkFDMUIsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxjQUFjLENBQUM7Z0JBQzdDLEtBQUssRUFBRSxJQUFJO2FBQ1o7U0FDRixpRENyQ0gsKzRIQXFJQSw2SERsSEksZ0JBQWdCLGtxQkFDaEIsbUJBQW1CLHV5QkFHbkIsT0FBTyw4RUFDUCxPQUFPLG9GQUNQLGlCQUFpQixnTUFDakIsWUFBWSw0TEFDWixRQUFRLGlVQUNSLHlCQUF5Qjs7MkZBWWhCLGNBQWM7a0JBM0IxQixTQUFTOytCQUNFLFdBQVcsV0FHWixDQUFDLHNCQUFzQixDQUFDLFdBQ3hCO3dCQUNQLGdCQUFnQjt3QkFDaEIsbUJBQW1CO3dCQUNuQixJQUFJO3dCQUNKLFFBQVE7d0JBQ1IsT0FBTzt3QkFDUCxPQUFPO3dCQUNQLGlCQUFpQjt3QkFDakIsWUFBWTt3QkFDWixRQUFRO3dCQUNSLHlCQUF5QjtxQkFDMUIsY0FDVyxJQUFJLGFBQ0w7d0JBQ1Q7NEJBQ0UsT0FBTyxFQUFFLGlCQUFpQjs0QkFDMUIsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsZUFBZSxDQUFDOzRCQUM3QyxLQUFLLEVBQUUsSUFBSTt5QkFDWjtxQkFDRjs4QkFJUSxVQUFVO3NCQUFsQixLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFDRyxjQUFjO3NCQUF0QixLQUFLO2dCQUNHLGNBQWM7c0JBQXRCLEtBQUs7Z0JBQ0csbUJBQW1CO3NCQUEzQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgQGFuZ3VsYXItZXNsaW50L3VzZS1saWZlY3ljbGUtaW50ZXJmYWNlICovXHJcbi8qIGVzbGludC1kaXNhYmxlIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnkgKi9cclxuLyogZXNsaW50LWRpc2FibGUgQGFuZ3VsYXItZXNsaW50L2NvbXBvbmVudC1zZWxlY3RvciAqL1xyXG5pbXBvcnQge05HX1ZBTFVFX0FDQ0VTU09SLCBSZWFjdGl2ZUZvcm1zTW9kdWxlfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IENvbXBvbmVudCwgQ1VTVE9NX0VMRU1FTlRTX1NDSEVNQSwgSW5wdXQsIFNpbXBsZUNoYW5nZXMsIEV2ZW50RW1pdHRlciwgZm9yd2FyZFJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQge01hdEVycm9yLCBNYXRGb3JtRmllbGQsIE1hdEhpbnR9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2Zvcm0tZmllbGQnO1xyXG5pbXBvcnQge1NhdFBvcG92ZXJNb2R1bGV9IGZyb20gXCJAbmNzdGF0ZS9zYXQtcG9wb3ZlclwiO1xyXG5pbXBvcnQge05nQ2xhc3MsIE5nSWZ9IGZyb20gXCJAYW5ndWxhci9jb21tb25cIjtcclxuaW1wb3J0IHtJbmZvSXRlbUNvbXBvbmVudH0gZnJvbSBcIi4uL2luZm8taXRlbS9pbmZvLWl0ZW0uY29tcG9uZW50XCI7XHJcbmltcG9ydCB7TWF0SW5wdXR9IGZyb20gXCJAYW5ndWxhci9tYXRlcmlhbC9pbnB1dFwiO1xyXG5pbXBvcnQgeyBDb250cm9sVmFsdWVBY2Nlc3NvckRpcmVjdGl2ZSB9IGZyb20gJy4uL2NvbnRyb2wtdmFsdWUtYWNjZXNzb3IuZGlyZWN0aXZlJztcclxuaW1wb3J0IHsgVmFsaWRhdGlvbkVycm9yc0NvbXBvbmVudCB9IGZyb20gJy4uL3ZhbGlkYXRpb24tZXJyb3JzL3ZhbGlkYXRpb24tZXJyb3JzLmNvbXBvbmVudCc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2FwcC1pbnB1dCcsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2lucHV0LmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9pbnB1dC5jb21wb25lbnQuc2NzcyddLFxyXG4gIHNjaGVtYXM6IFtDVVNUT01fRUxFTUVOVFNfU0NIRU1BXSxcclxuICBpbXBvcnRzOiBbXHJcbiAgICBTYXRQb3BvdmVyTW9kdWxlLFxyXG4gICAgUmVhY3RpdmVGb3Jtc01vZHVsZSxcclxuICAgIE5nSWYsXHJcbiAgICBNYXRFcnJvcixcclxuICAgIE1hdEhpbnQsXHJcbiAgICBOZ0NsYXNzLFxyXG4gICAgSW5mb0l0ZW1Db21wb25lbnQsXHJcbiAgICBNYXRGb3JtRmllbGQsXHJcbiAgICBNYXRJbnB1dCxcclxuICAgIFZhbGlkYXRpb25FcnJvcnNDb21wb25lbnRcclxuICBdLFxyXG4gIHN0YW5kYWxvbmU6IHRydWUsXHJcbiAgcHJvdmlkZXJzOiBbXHJcbiAgICB7XHJcbiAgICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxyXG4gICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBJbnB1dENvbXBvbmVudCksXHJcbiAgICAgIG11bHRpOiB0cnVlLFxyXG4gICAgfSxcclxuICBdXHJcblxyXG59KVxyXG5leHBvcnQgY2xhc3MgSW5wdXRDb21wb25lbnQ8VHlwZT4gZXh0ZW5kcyBDb250cm9sVmFsdWVBY2Nlc3NvckRpcmVjdGl2ZTxUeXBlPiAge1xyXG4gIEBJbnB1dCgpIGhhc1Rvb2x0aXAgPSBmYWxzZTtcclxuICBASW5wdXQoKSB0b29sdGlwITogc3RyaW5nO1xyXG4gIEBJbnB1dCgpIGZsb2F0TGFiZWw6IGFueSA9ICdhdXRvJztcclxuICBASW5wdXQoKSBjbGFzc05hbWUgPSAnYm9yZGVyZWQtaW5wdXQnO1xyXG4gIEBJbnB1dCgpIHNob3dMYWJlbCA9IHRydWU7XHJcbiAgQElucHV0KCkgaWNvblByZWZpeE5hbWUhOiBzdHJpbmc7XHJcbiAgQElucHV0KCkgaWNvblN1ZmZpeE5hbWUhOiBzdHJpbmc7XHJcbiAgQElucHV0KCkgZW1pdGVkQ2hhbmdlZFZhbHVlMSA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuXHJcbn1cclxuIiwiQGlmKCFpc1JlYWRPbmx5KXtcclxuPGFwcC1mb3JtLWxhYmVsXHJcbiAgW2xhYmVsXT1cImxhYmVsXCJcclxuICBbb3B0aW9uYWxdPVwiIXJlcXVpcmVkXCJcclxuICBbaGlkZU9wdGlvbl09XCJyZXF1aXJlZFwiXHJcbiAgW3Nob3dMYWJlbF09XCJzaG93TGFiZWxcIlxyXG4+PC9hcHAtZm9ybS1sYWJlbD5cclxuQGlmKGxhYmVsKXtcclxuPGRpdiBjbGFzcz1cImQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlbiBtYi0xXCI+XHJcbiAgQGlmKCFoYXNUb29sdGlwKXs8c3BhbiBjbGFzcz1cImZvcm0tbGFiZWwgbWItMFwiPnt7IGxhYmVsIH19PC9zcGFuXHJcbiAgPn0gQGlmKCFyZXF1aXJlZCl7PHNwYW4gY2xhc3M9XCJmcy0xMSBmYy1kYXJrLWdyYXlcIj57e1xyXG4gICAgaTE4bi50cmFuc2xhdGUoXCJPcHRpb25hbFwiKVxyXG4gIH19PC9zcGFuXHJcbiAgPn0gQGlmKGhhc1Rvb2x0aXApe1xyXG4gIDxzcGFuIGNsYXNzPVwiZm9ybS1sYWJlbCBtYi0wXCI+XHJcbiAgICB7eyBsYWJlbFRleHRXcml0ZU1vZGUgfX1cclxuICAgIDxkcy1pY29uXHJcbiAgICAgIGljb249XCJpbmZvIGZzLTIyXCJcclxuICAgICAgY2xhc3M9XCJjdXJzb3ItcG9pbnRlclwiXHJcbiAgICAgIFtzYXRQb3BvdmVyQW5jaG9yXT1cInBvcG92ZXJcIlxyXG4gICAgICAoY2xpY2spPVwicG9wb3Zlci50b2dnbGUoKTsgJGV2ZW50LnN0b3BJbW1lZGlhdGVQcm9wYWdhdGlvbigpXCJcclxuICAgID48L2RzLWljb24+XHJcbiAgPC9zcGFuPlxyXG4gIH1cclxuPC9kaXY+XHJcbn1cclxuPG1hdC1mb3JtLWZpZWxkXHJcbiAgY2xhc3M9XCJwcmltYXJ5LWZvcm0ge3sgY2xhc3NOYW1lIH19XCJcclxuICBbbmdDbGFzc109XCJ7ICdpbnB1dC1kaXNhYmxlZCc6IGNvbnRyb2wuZGlzYWJsZWQgfVwiXHJcbiAgW2Zsb2F0TGFiZWxdPVwiZmxvYXRMYWJlbFwiXHJcbj5cclxuICBAaWYoaWNvblByZWZpeE5hbWUpezxzcGFuIGNsYXNzPVwic2ZpIHt7IGljb25QcmVmaXhOYW1lIH19XCI+PC9zcGFuPn1cclxuICBAaWYobG9hZGluZyl7PHNwYW5cclxuICAgIGNsYXNzPVwic2ZpIHNmaS1zcGlubmVyIGQtaW5saW5lLWJsb2NrIHNwaW4gZmMtY29yYWxcIlxyXG4gICAgbWF0U3VmZml4XHJcbiAgPjwvc3BhblxyXG4gID59XHJcblxyXG4gIDxsYWJlbCBjbGFzcz1cIm1hdC1mb3JtLWNvbnRlbnRcIj5cclxuICAgIDwhLS0gYWRkIGlucHV0IGZvciBhciAmJiBlbiBjdXN0b20gZGlyZWN0aXZlIHdpdGggYWRkIHR5cGUgPSBhck9ubHkgfHwgIHR5cGUgPSBlbk9ubHktLT5cclxuICAgIEBpZih0eXBlID09PSAnYXJPbmx5Jyl7XHJcbiAgICA8aW5wdXRcclxuICAgICAgYXJPbmx5XHJcbiAgICAgIG1hdElucHV0XHJcbiAgICAgIFt2YWx1ZV09XCJ2YWx1ZVwiXHJcbiAgICAgIG9uaW5wdXQ9XCJ2YWxpZGl0eS52YWxpZCB8fCAodmFsdWU9JycpO1wiXHJcbiAgICAgIFtmb3JtQ29udHJvbF09XCJjb250cm9sXCJcclxuICAgICAgW3JlcXVpcmVkXT1cInJlcXVpcmVkXCJcclxuICAgICAgW3BsYWNlaG9sZGVyXT1cInBsYWNlaG9sZGVyXCJcclxuICAgIC8+XHJcbiAgICB9IEBlbHNlIGlmKHR5cGUgPT09ICdlbk9ubHknKXtcclxuICAgIDxpbnB1dFxyXG4gICAgICBlbk9ubHlcclxuICAgICAgbWF0SW5wdXRcclxuICAgICAgW3ZhbHVlXT1cInZhbHVlXCJcclxuICAgICAgb25pbnB1dD1cInZhbGlkaXR5LnZhbGlkIHx8ICh2YWx1ZT0nJyk7XCJcclxuICAgICAgW2Zvcm1Db250cm9sXT1cImNvbnRyb2xcIlxyXG4gICAgICBbcmVxdWlyZWRdPVwicmVxdWlyZWRcIlxyXG4gICAgICBbcGxhY2Vob2xkZXJdPVwicGxhY2Vob2xkZXJcIlxyXG4gICAgLz5cclxuICAgIH1cclxuICAgIDwhLS0gIC0tPlxyXG4gICAgQGVsc2V7XHJcbiAgICA8aW5wdXRcclxuICAgICAgbWF0SW5wdXRcclxuICAgICAgW3ZhbHVlXT1cInZhbHVlXCJcclxuICAgICAgb25pbnB1dD1cInZhbGlkaXR5LnZhbGlkIHx8ICh2YWx1ZT0nJyk7XCJcclxuICAgICAgW2Zvcm1Db250cm9sXT1cImNvbnRyb2xcIlxyXG4gICAgICBbdHlwZV09XCJ0eXBlXCJcclxuICAgICAgW3BsYWNlaG9sZGVyXT1cInBsYWNlaG9sZGVyXCJcclxuICAgIC8+XHJcbiAgICB9XHJcbiAgPC9sYWJlbD5cclxuICBcclxuICBAaWYobWF0U3VmZml4KXs8c3BhbiBtYXRTdWZmaXggY2xhc3M9XCJzZmkge3sgaWNvblN1ZmZpeE5hbWUgfX1cIj48L3NwYW4+fVxyXG4gIEBpZighY29udHJvbD8udmFsaWQpe1xyXG4gIDwhLS0gPG1hdC1lcnJvciBjbGFzcz1cIm1iLTJcIj5cclxuICAgIHt7IGkxOG4udHJhbnNsYXRlKFwidmFsaWRGaWVsZEVycm9yXCIpIH19e3sgbGFiZWwgfX1cclxuICA8L21hdC1lcnJvcj4gLS0+XHJcbiAgXHJcbiAgfSBAaWYoc2hvd0hpbnQpe1xyXG4gIDxtYXQtaGludCBjbGFzcz1cImQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIgZ2FwLTEgbXQtMVwiPlxyXG4gICAgPHNwYW5cclxuICAgICAgY2xhc3M9XCJzZmkgc2ZpLWluZm8gZnMtMTcgZmMtZGFyay1ncmF5XCJcclxuICAgICAgW25nQ2xhc3NdPVwieyAnZmMtb2FzaXMtbGlnaHQtaW1wJzogdmFsdWUgfVwiXHJcbiAgICA+PC9zcGFuPlxyXG4gICAgPHNwYW4gY2xhc3M9XCJmcy0xMiBmYy1ibGFjayBsaW5lLWhlaWdodC0xXCI+e3sgaGludCB9fTwvc3Bhbj5cclxuICA8L21hdC1oaW50PlxyXG4gIH1cclxuPC9tYXQtZm9ybS1maWVsZD5cclxuPGFwcC12YWxpZGF0aW9uLWVycm9ycyBbZXJyb3JzXT1cImNvbnRyb2wuZXJyb3JzXCI+PC9hcHAtdmFsaWRhdGlvbi1lcnJvcnM+XHJcblxyXG5cclxuXHJcblxyXG48IS0tIDxzcGFuIGNsYXNzPVwiZmMtY29yYWxcIiBzdHlsZT1cImNvbG9yOiAjZjQ0MzM2XCI+XHJcbiAge3sgY29udHJvbC5lcnJvcnMgfX1cclxuPC9zcGFuPiAtLT5cclxuXHJcbn0gQGlmKGlzUmVhZE9ubHkgJiYgKHNob3dJZkVtcHR5IHx8IGNvbnRyb2wpKXtcclxuPG5nLWNvbnRhaW5lciBjbGFzcz1cImluZm8tc2VjdGlvblwiPlxyXG4gIDxhcHAtaW5mby1pdGVtXHJcbiAgICBjbGFzcz1cImluZm8taXRlbSB3LTEwMFwiXHJcbiAgICBbbGFiZWxdPVwibGFiZWxcIlxyXG4gICAgW2luc2lkZVRhYmxlXT1cImluc2lkZVRhYmxlXCJcclxuICAgIFtoYXNMYWJlbF09XCJsYWJlbCA/IHRydWUgOiBmYWxzZVwiXHJcbiAgICBbdHlwZV09XCJ0eXBlXCJcclxuICAgIFt2YWx1ZV09XCJjb250cm9sLnZhbHVlXCJcclxuICA+PC9hcHAtaW5mby1pdGVtPlxyXG4gIEBpZihzaG93SGludCl7XHJcbiAgPG1hdC1oaW50IGNsYXNzPVwiZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBnYXAtMSBtdC0xXCI+XHJcbiAgICA8c3BhblxyXG4gICAgICBjbGFzcz1cInNmaSBzZmktaW5mbyBmcy0xNyBmYy1kYXJrLWdyYXlcIlxyXG4gICAgICBbbmdDbGFzc109XCJ7ICdmYy1vYXNpcy1saWdodC1pbXAnOiB2YWx1ZSB9XCJcclxuICAgID48L3NwYW4+XHJcbiAgICA8c3BhbiBjbGFzcz1cImZzLTEyIGZjLWJsYWNrIGxpbmUtaGVpZ2h0LTFcIj57eyBoaW50IH19PC9zcGFuPlxyXG4gIDwvbWF0LWhpbnQ+XHJcbiAgfVxyXG48L25nLWNvbnRhaW5lcj5cclxufVxyXG5cclxuPCEtLSBzZWN0aW9uIHRvb2x0aXAgLS0+XHJcbjwhLS0gPHNhdC1wb3BvdmVyICNwb3BvdmVyIFtoYXNCYWNrZHJvcF09XCJ0cnVlXCIgdmVydGljYWxBbGlnbj1cImJlbG93XCI+XHJcbiAgPGRpdiBjbGFzcz1cImRlYWZ1bHQtdG9vbHRpcFwiPlxyXG4gICAge3t0b29sdGlwfX1cclxuICA8L2Rpdj5cclxuPC9zYXQtcG9wb3Zlcj4gLS0+XHJcblxyXG48c2F0LXBvcG92ZXIgI3BvcG92ZXIgW2hhc0JhY2tkcm9wXT1cInRydWVcIiB2ZXJ0aWNhbEFsaWduPVwiYmVsb3dcIj5cclxuICA8ZGl2IGNsYXNzPVwiZGVmYXVsdC1wb3BvdmVyIHAtMyBmcy0xNFwiPlxyXG4gICAgPHNwYW4gY2xhc3M9XCJmcy0xNCBmdy1ib2xkIHNpZ25hdHVyZS1ub3Rlc1wiIFtpbm5lckhUTUxdPVwidG9vbHRpcFwiPjwvc3Bhbj5cclxuICA8L2Rpdj5cclxuPC9zYXQtcG9wb3Zlcj5cclxuIl19
69
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYnBtLWNvcmUvc3JjL2xpYi9jb21wb25lbnRzL3NoYXJlZC1jb21wb25lbnRzL2Zvcm0tZmllbGQvaW5wdXQvaW5wdXQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYnBtLWNvcmUvc3JjL2xpYi9jb21wb25lbnRzL3NoYXJlZC1jb21wb25lbnRzL2Zvcm0tZmllbGQvaW5wdXQvaW5wdXQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsNERBQTREO0FBQzVELHVEQUF1RDtBQUN2RCx1REFBdUQ7QUFDdkQsT0FBTyxFQUFDLGlCQUFpQixFQUFFLG1CQUFtQixFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDdEUsT0FBTyxFQUFFLFNBQVMsRUFBRSxzQkFBc0IsRUFBRSxLQUFLLEVBQWlCLFlBQVksRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbEgsT0FBTyxFQUFDLFFBQVEsRUFBRSxZQUFZLEVBQUUsT0FBTyxFQUFDLE1BQU0sOEJBQThCLENBQUM7QUFDN0UsT0FBTyxFQUFDLGdCQUFnQixFQUFDLE1BQU0sc0JBQXNCLENBQUM7QUFDdEQsT0FBTyxFQUFDLE9BQU8sRUFBRSxJQUFJLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQztBQUM5QyxPQUFPLEVBQUMsaUJBQWlCLEVBQUMsTUFBTSxrQ0FBa0MsQ0FBQztBQUNuRSxPQUFPLEVBQUMsUUFBUSxFQUFDLE1BQU0seUJBQXlCLENBQUM7QUFDakQsT0FBTyxFQUFFLDZCQUE2QixFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFDcEYsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sa0RBQWtELENBQUM7QUFDN0YsT0FBTyxFQUFDLGVBQWUsRUFBQyxNQUFNLHFDQUFxQyxDQUFDO0FBQ3BFLE9BQU8sRUFBQyxlQUFlLEVBQUMsTUFBTSxxQ0FBcUMsQ0FBQzs7OztBQStCcEUsTUFBTSxPQUFPLGNBQXFCLFNBQVEsNkJBQW1DO0lBQ2xFLE9BQU8sQ0FBVTtJQUNqQixVQUFVLEdBQVEsTUFBTSxDQUFDO0lBQ3pCLFNBQVMsR0FBRyxnQkFBZ0IsQ0FBQztJQUM3QixjQUFjLENBQVU7SUFDeEIsY0FBYyxDQUFVO0lBQ3hCLG1CQUFtQixHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7dUdBTnZDLGNBQWM7MkZBQWQsY0FBYywwUEFUZDtZQUNUO2dCQUNFLE9BQU8sRUFBRSxpQkFBaUI7Z0JBQzFCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsY0FBYyxDQUFDO2dCQUM3QyxLQUFLLEVBQUUsSUFBSTthQUNaO1NBQ0YsaURDekNILDJ5RkE0RkEsNkhEdkVJLGdCQUFnQixrcUJBQ2hCLG1CQUFtQix1eUJBR25CLE9BQU8sOEVBQ1AsT0FBTyxvRkFDUCxpQkFBaUIsZ01BQ2pCLFlBQVksNExBQ1osUUFBUSxpVUFDUix5QkFBeUIsNkdBQ3pCLGVBQWUscURBQ2YsZUFBZTs7MkZBWU4sY0FBYztrQkE3QjFCLFNBQVM7K0JBQ0UsV0FBVyxXQUdaLENBQUMsc0JBQXNCLENBQUMsV0FDeEI7d0JBQ1AsZ0JBQWdCO3dCQUNoQixtQkFBbUI7d0JBQ25CLElBQUk7d0JBQ0osUUFBUTt3QkFDUixPQUFPO3dCQUNQLE9BQU87d0JBQ1AsaUJBQWlCO3dCQUNqQixZQUFZO3dCQUNaLFFBQVE7d0JBQ1IseUJBQXlCO3dCQUN6QixlQUFlO3dCQUNmLGVBQWU7cUJBQ2hCLGNBQ1csSUFBSSxhQUNMO3dCQUNUOzRCQUNFLE9BQU8sRUFBRSxpQkFBaUI7NEJBQzFCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLGVBQWUsQ0FBQzs0QkFDN0MsS0FBSyxFQUFFLElBQUk7eUJBQ1o7cUJBQ0Y7OEJBSVEsT0FBTztzQkFBZixLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFDRyxjQUFjO3NCQUF0QixLQUFLO2dCQUNHLGNBQWM7c0JBQXRCLEtBQUs7Z0JBQ0csbUJBQW1CO3NCQUEzQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgQGFuZ3VsYXItZXNsaW50L3VzZS1saWZlY3ljbGUtaW50ZXJmYWNlICovXHJcbi8qIGVzbGludC1kaXNhYmxlIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnkgKi9cclxuLyogZXNsaW50LWRpc2FibGUgQGFuZ3VsYXItZXNsaW50L2NvbXBvbmVudC1zZWxlY3RvciAqL1xyXG5pbXBvcnQge05HX1ZBTFVFX0FDQ0VTU09SLCBSZWFjdGl2ZUZvcm1zTW9kdWxlfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IENvbXBvbmVudCwgQ1VTVE9NX0VMRU1FTlRTX1NDSEVNQSwgSW5wdXQsIFNpbXBsZUNoYW5nZXMsIEV2ZW50RW1pdHRlciwgZm9yd2FyZFJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQge01hdEVycm9yLCBNYXRGb3JtRmllbGQsIE1hdEhpbnR9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2Zvcm0tZmllbGQnO1xyXG5pbXBvcnQge1NhdFBvcG92ZXJNb2R1bGV9IGZyb20gXCJAbmNzdGF0ZS9zYXQtcG9wb3ZlclwiO1xyXG5pbXBvcnQge05nQ2xhc3MsIE5nSWZ9IGZyb20gXCJAYW5ndWxhci9jb21tb25cIjtcclxuaW1wb3J0IHtJbmZvSXRlbUNvbXBvbmVudH0gZnJvbSBcIi4uL2luZm8taXRlbS9pbmZvLWl0ZW0uY29tcG9uZW50XCI7XHJcbmltcG9ydCB7TWF0SW5wdXR9IGZyb20gXCJAYW5ndWxhci9tYXRlcmlhbC9pbnB1dFwiO1xyXG5pbXBvcnQgeyBDb250cm9sVmFsdWVBY2Nlc3NvckRpcmVjdGl2ZSB9IGZyb20gJy4uL2NvbnRyb2wtdmFsdWUtYWNjZXNzb3IuZGlyZWN0aXZlJztcclxuaW1wb3J0IHsgVmFsaWRhdGlvbkVycm9yc0NvbXBvbmVudCB9IGZyb20gJy4uL3ZhbGlkYXRpb24tZXJyb3JzL3ZhbGlkYXRpb24tZXJyb3JzLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7RW5Pbmx5RGlyZWN0aXZlfSBmcm9tIFwiLi4vLi4vLi4vLi4vZGlyZWN0aXZlcy9lbi5kaXJlY3RpdmVcIjtcclxuaW1wb3J0IHtBck9ubHlEaXJlY3RpdmV9IGZyb20gXCIuLi8uLi8uLi8uLi9kaXJlY3RpdmVzL2FyLmRpcmVjdGl2ZVwiO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdhcHAtaW5wdXQnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9pbnB1dC5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vaW5wdXQuY29tcG9uZW50LnNjc3MnXSxcclxuICBzY2hlbWFzOiBbQ1VTVE9NX0VMRU1FTlRTX1NDSEVNQV0sXHJcbiAgaW1wb3J0czogW1xyXG4gICAgU2F0UG9wb3Zlck1vZHVsZSxcclxuICAgIFJlYWN0aXZlRm9ybXNNb2R1bGUsXHJcbiAgICBOZ0lmLFxyXG4gICAgTWF0RXJyb3IsXHJcbiAgICBNYXRIaW50LFxyXG4gICAgTmdDbGFzcyxcclxuICAgIEluZm9JdGVtQ29tcG9uZW50LFxyXG4gICAgTWF0Rm9ybUZpZWxkLFxyXG4gICAgTWF0SW5wdXQsXHJcbiAgICBWYWxpZGF0aW9uRXJyb3JzQ29tcG9uZW50LFxyXG4gICAgRW5Pbmx5RGlyZWN0aXZlLFxyXG4gICAgQXJPbmx5RGlyZWN0aXZlXHJcbiAgXSxcclxuICBzdGFuZGFsb25lOiB0cnVlLFxyXG4gIHByb3ZpZGVyczogW1xyXG4gICAge1xyXG4gICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcclxuICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gSW5wdXRDb21wb25lbnQpLFxyXG4gICAgICBtdWx0aTogdHJ1ZSxcclxuICAgIH0sXHJcbiAgXVxyXG5cclxufSlcclxuZXhwb3J0IGNsYXNzIElucHV0Q29tcG9uZW50PFR5cGU+IGV4dGVuZHMgQ29udHJvbFZhbHVlQWNjZXNzb3JEaXJlY3RpdmU8VHlwZT4gIHtcclxuICBASW5wdXQoKSB0b29sdGlwITogc3RyaW5nO1xyXG4gIEBJbnB1dCgpIGZsb2F0TGFiZWw6IGFueSA9ICdhdXRvJztcclxuICBASW5wdXQoKSBjbGFzc05hbWUgPSAnYm9yZGVyZWQtaW5wdXQnO1xyXG4gIEBJbnB1dCgpIGljb25QcmVmaXhOYW1lITogc3RyaW5nO1xyXG4gIEBJbnB1dCgpIGljb25TdWZmaXhOYW1lITogc3RyaW5nO1xyXG4gIEBJbnB1dCgpIGVtaXRlZENoYW5nZWRWYWx1ZTEgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcblxyXG59XHJcbiIsIkBpZighaXNSZWFkT25seSl7XHJcbkBpZihsYWJlbCl7XHJcbjxkaXYgY2xhc3M9XCJkLWZsZXgganVzdGlmeS1jb250ZW50LWJldHdlZW4gbWItMVwiPlxyXG4gIDxzcGFuIGNsYXNzPVwiZm9ybS1sYWJlbCBtYi0wXCI+e3sgbGFiZWwgfX08L3NwYW5cclxuICA+IEBpZighcmVxdWlyZWQpezxzcGFuIGNsYXNzPVwiZnMtMTEgZmMtZGFyay1ncmF5XCI+e3tcclxuICAgIGkxOG4udHJhbnNsYXRlKFwiT3B0aW9uYWxcIilcclxuICB9fTwvc3BhblxyXG4gID59IEBpZihoYXNUb29sdGlwKXtcclxuICA8c3BhbiBjbGFzcz1cImZvcm0tbGFiZWwgbWItMFwiPlxyXG4gICAge3sgdG9vbHRpcCB9fVxyXG4gICAgPGRzLWljb25cclxuICAgICAgaWNvbj1cImluZm8gZnMtMjJcIlxyXG4gICAgICBjbGFzcz1cImN1cnNvci1wb2ludGVyXCJcclxuICAgICAgW3NhdFBvcG92ZXJBbmNob3JdPVwicG9wb3ZlclwiXHJcbiAgICAgIChjbGljayk9XCJwb3BvdmVyLnRvZ2dsZSgpOyAkZXZlbnQuc3RvcEltbWVkaWF0ZVByb3BhZ2F0aW9uKClcIlxyXG4gICAgPjwvZHMtaWNvbj5cclxuICA8L3NwYW4+XHJcbiAgfVxyXG48L2Rpdj5cclxufVxyXG48bWF0LWZvcm0tZmllbGRcclxuICBjbGFzcz1cInByaW1hcnktZm9ybSB7eyBjbGFzc05hbWUgfX1cIlxyXG4gIFtuZ0NsYXNzXT1cInsgJ2lucHV0LWRpc2FibGVkJzogY29udHJvbC5kaXNhYmxlZCB9XCJcclxuICBbZmxvYXRMYWJlbF09XCJmbG9hdExhYmVsXCJcclxuPlxyXG4gIEBpZihpY29uUHJlZml4TmFtZSl7PHNwYW4gY2xhc3M9XCJzZmkge3sgaWNvblByZWZpeE5hbWUgfX1cIj48L3NwYW4+fVxyXG4gIDxsYWJlbCBjbGFzcz1cIm1hdC1mb3JtLWNvbnRlbnRcIj5cclxuICAgIDwhLS0gYWRkIGlucHV0IGZvciBhciAmJiBlbiBjdXN0b20gZGlyZWN0aXZlIHdpdGggYWRkIHR5cGUgPSBhck9ubHkgfHwgIHR5cGUgPSBlbk9ubHktLT5cclxuICAgIEBpZih0eXBlID09PSAnYXJPbmx5Jyl7XHJcbiAgICA8aW5wdXRcclxuICAgICAgYXJPbmx5XHJcbiAgICAgIG1hdElucHV0XHJcbiAgICAgIFt2YWx1ZV09XCJ2YWx1ZVwiXHJcbiAgICAgIG9uaW5wdXQ9XCJ2YWxpZGl0eS52YWxpZCB8fCAodmFsdWU9JycpO1wiXHJcbiAgICAgIFtmb3JtQ29udHJvbF09XCJjb250cm9sXCJcclxuICAgICAgW3JlcXVpcmVkXT1cInJlcXVpcmVkXCJcclxuICAgICAgW3BsYWNlaG9sZGVyXT1cInBsYWNlaG9sZGVyXCJcclxuICAgIC8+XHJcbiAgICB9IEBlbHNlIGlmKHR5cGUgPT09ICdlbk9ubHknKXtcclxuICAgIDxpbnB1dFxyXG4gICAgICBlbk9ubHlcclxuICAgICAgbWF0SW5wdXRcclxuICAgICAgW3ZhbHVlXT1cInZhbHVlXCJcclxuICAgICAgb25pbnB1dD1cInZhbGlkaXR5LnZhbGlkIHx8ICh2YWx1ZT0nJyk7XCJcclxuICAgICAgW2Zvcm1Db250cm9sXT1cImNvbnRyb2xcIlxyXG4gICAgICBbcmVxdWlyZWRdPVwicmVxdWlyZWRcIlxyXG4gICAgICBbcGxhY2Vob2xkZXJdPVwicGxhY2Vob2xkZXJcIlxyXG4gICAgLz5cclxuICAgIH1cclxuICAgIEBlbHNle1xyXG4gICAgPGlucHV0XHJcbiAgICAgIG1hdElucHV0XHJcbiAgICAgIFt2YWx1ZV09XCJ2YWx1ZVwiXHJcbiAgICAgIG9uaW5wdXQ9XCJ2YWxpZGl0eS52YWxpZCB8fCAodmFsdWU9JycpO1wiXHJcbiAgICAgIFtmb3JtQ29udHJvbF09XCJjb250cm9sXCJcclxuICAgICAgW3R5cGVdPVwidHlwZVwiXHJcbiAgICAgIFtwbGFjZWhvbGRlcl09XCJwbGFjZWhvbGRlclwiXHJcbiAgICAvPlxyXG4gICAgfVxyXG4gIDwvbGFiZWw+XHJcbiAgXHJcbiAgQGlmKGljb25TdWZmaXhOYW1lKXs8c3BhbiBtYXRTdWZmaXggY2xhc3M9XCJzZmkge3sgaWNvblN1ZmZpeE5hbWUgfX1cIj48L3NwYW4+fVxyXG4gIEBpZihoaW50KXtcclxuICA8bWF0LWhpbnQgY2xhc3M9XCJkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIGdhcC0xIG10LTFcIj5cclxuICAgIDxzcGFuXHJcbiAgICAgIGNsYXNzPVwic2ZpIHNmaS1pbmZvIGZzLTE3IGZjLWRhcmstZ3JheVwiXHJcbiAgICAgIFtuZ0NsYXNzXT1cInsgJ2ZjLW9hc2lzLWxpZ2h0LWltcCc6IHZhbHVlIH1cIlxyXG4gICAgPjwvc3Bhbj5cclxuICAgIDxzcGFuIGNsYXNzPVwiZnMtMTIgZmMtYmxhY2sgbGluZS1oZWlnaHQtMVwiPnt7IGhpbnQgfX08L3NwYW4+XHJcbiAgPC9tYXQtaGludD5cclxuICB9XHJcbjwvbWF0LWZvcm0tZmllbGQ+XHJcbjxhcHAtdmFsaWRhdGlvbi1lcnJvcnMgW2Vycm9yc109XCJjb250cm9sLmVycm9yc1wiPjwvYXBwLXZhbGlkYXRpb24tZXJyb3JzPlxyXG5cclxufSBAaWYoaXNSZWFkT25seSAmJiAoc2hvd0lmRW1wdHkgfHwgY29udHJvbCkpe1xyXG48bmctY29udGFpbmVyIGNsYXNzPVwiaW5mby1zZWN0aW9uXCI+XHJcbiAgPGFwcC1pbmZvLWl0ZW1cclxuICAgIGNsYXNzPVwiaW5mby1pdGVtIHctMTAwXCJcclxuICAgIFtsYWJlbF09XCJsYWJlbFwiXHJcbiAgICBbaW5zaWRlVGFibGVdPVwiaW5zaWRlVGFibGVcIlxyXG4gICAgW2hhc0xhYmVsXT1cIiEhbGFiZWxcIlxyXG4gICAgW3R5cGVdPVwidHlwZVwiXHJcbiAgICBbdmFsdWVdPVwiY29udHJvbC52YWx1ZVwiXHJcbiAgPjwvYXBwLWluZm8taXRlbT5cclxuPC9uZy1jb250YWluZXI+XHJcbn1cclxuXHJcbjxzYXQtcG9wb3ZlciAjcG9wb3ZlciBbaGFzQmFja2Ryb3BdPVwidHJ1ZVwiIHZlcnRpY2FsQWxpZ249XCJiZWxvd1wiPlxyXG4gIDxkaXYgY2xhc3M9XCJkZWZhdWx0LXBvcG92ZXIgcC0zIGZzLTE0XCI+XHJcbiAgICA8c3BhbiBjbGFzcz1cImZzLTE0IGZ3LWJvbGQgc2lnbmF0dXJlLW5vdGVzXCIgW2lubmVySFRNTF09XCJ0b29sdGlwXCI+PC9zcGFuPlxyXG4gIDwvZGl2PlxyXG48L3NhdC1wb3BvdmVyPlxyXG4iXX0=
@@ -10,6 +10,9 @@ import { InfoItemComponent } from "../info-item/info-item.component";
10
10
  import { SatPopoverModule } from "@ncstate/sat-popover";
11
11
  import { ControlValueAccessorDirective } from '../control-value-accessor.directive';
12
12
  import { MatInput } from '@angular/material/input';
13
+ import { MycurrencyPipe } from "../../../../pipes";
14
+ import { ValidationErrorsComponent } from '../validation-errors/validation-errors.component';
15
+ import { MycurrencyDirective } from "../../../../directives/currency.directive";
13
16
  import * as i0 from "@angular/core";
14
17
  import * as i1 from "@angular/forms";
15
18
  import * as i2 from "@ncstate/sat-popover";
@@ -28,7 +31,8 @@ export class InputCurrencyComponent extends ControlValueAccessorDirective {
28
31
  useExisting: forwardRef(() => InputCurrencyComponent),
29
32
  multi: true,
30
33
  },
31
- ], usesInheritance: true, ngImport: i0, template: "@if(!isReadOnly){\r\n<ng-container>\r\n <!-- <app-form-label [label]=\"label\" [optional]=\"!required\" [hideOption]=\"hideOption\" [showLabel]=\"showLabel\"></app-form-label> -->\r\n @if(label){\r\n <div class=\"d-flex justify-content-between mb-1\">\r\n <span class=\"form-label mb-0\">{{ label }}</span>\r\n @if(!required){\r\n <span class=\"fs-11 fc-dark-gray\">{{ i18n.translate(\"Optional\") }} </span>\r\n }\r\n </div>\r\n }\r\n\r\n <mat-form-field\r\n class=\"primary-form {{ className }}\"\r\n [ngClass]=\"{ 'input-disabled': isDisabled }\"\r\n [floatLabel]=\"floatLabel\"\r\n >\r\n @if(iconPrefixName){\r\n <span matPrefix class=\"sfi {{ iconPrefixName }}\"></span>\r\n }\r\n <label class=\"mat-form-content\">\r\n <input\r\n matInput\r\n [placeholder]=\"placeholder\"\r\n [value]=\"value\"\r\n [disabled]=\"isDisabled\"\r\n oninput=\"validity.valid || (value='');\"\r\n [formControl]=\"control\"\r\n (paste)=\"(false)\"\r\n [required]=\"required\"\r\n [placeholder]=\"placeholder\"\r\n appMycurrency\r\n />\r\n </label>\r\n @if(matSuffix){\r\n <span matSuffix class=\"sfi {{ iconSuffixName }}\"></span>\r\n } @if(type === 'number'){\r\n <div\r\n matSuffix\r\n class=\"d-flex align-items-center gap-2 position-relative\"\r\n (click)=\"$event.stopPropagation()\"\r\n >\r\n @if(numberSuffixName){\r\n <span class=\"fs-14 fw-medium\">{{ numberSuffixName }}</span>\r\n }\r\n </div>\r\n } @if(!control?.valid){\r\n <mat-error class=\"mb-2\">\r\n {{ i18n.translate(\"validFieldError\") }}{{ label }}\r\n </mat-error>\r\n } @if(showHint){\r\n <mat-hint>\r\n <span\r\n class=\"sfi sfi-check-circle font-10 fc-dark-gray\"\r\n [ngClass]=\"{ 'fc-oasis-light-imp': value }\"\r\n ></span>\r\n <span class=\"mx-1\"></span>\r\n <span class=\"fs-12 fc-onyx\">{{ hint }}</span>\r\n </mat-hint>\r\n }\r\n </mat-form-field>\r\n</ng-container>\r\n} @if(isReadOnly && (showIfEmpty || control)){\r\n<ng-container class=\"info-section\">\r\n <app-info-item\r\n class=\"info-item w-100\"\r\n [type]=\"'currency'\"\r\n [label]=\"label\"\r\n [insideTable]=\"insideTable\"\r\n [hasLabel]=\"label ? true : false\"\r\n [value]=\"control\"\r\n ></app-info-item>\r\n</ng-container>\r\n}\r\n\r\n<!-- section tooltip -->\r\n<sat-popover #popover [hasBackdrop]=\"true\" verticalAlign=\"below\">\r\n <div class=\"deafult-tooltip\">\r\n {{ tooltip }}\r\n </div>\r\n</sat-popover>\r\n", styles: [":host{flex-grow:1}.input-disabled{pointer-events:none!important;opacity:1.5}\n"], dependencies: [{ kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i1.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "directive", type: MatHint, selector: "mat-hint", inputs: ["align", "id"] }, { kind: "component", type: InfoItemComponent, selector: "app-info-item", inputs: ["label", "value", "name", "type", "dateType", "multiple", "insideTable", "hasLabel", "arrayList", "actionType", "download"] }, { kind: "ngmodule", type: SatPopoverModule }, { kind: "component", type: i2.SatPopoverComponent, selector: "sat-popover", inputs: ["anchor", "horizontalAlign", "xAlign", "verticalAlign", "yAlign", "forceAlignment", "lockAlignment", "autoFocus", "restoreFocus", "scrollStrategy", "hasBackdrop", "interactiveClose", "openTransition", "closeTransition", "openAnimationStartAtScale", "closeAnimationEndAtScale", "backdropClass", "panelClass"], outputs: ["opened", "closed", "afterOpen", "afterClose", "backdropClicked", "overlayKeydown"] }, { kind: "component", type: MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }] });
34
+ MycurrencyPipe
35
+ ], usesInheritance: true, ngImport: i0, template: "@if(!isReadOnly){\r\n @if(label){\r\n <div class=\"d-flex justify-content-between mb-1\">\r\n <span class=\"form-label mb-0\">{{ label }}</span\r\n > @if(!required){<span class=\"fs-11 fc-dark-gray\">{{\r\n i18n.translate(\"Optional\")\r\n }}</span\r\n >} @if(hasTooltip){\r\n <span class=\"form-label mb-0\">\r\n {{ tooltip }}\r\n <ds-icon\r\n icon=\"info fs-22\"\r\n class=\"cursor-pointer\"\r\n [satPopoverAnchor]=\"popover\"\r\n (click)=\"popover.toggle(); $event.stopImmediatePropagation()\"\r\n ></ds-icon>\r\n </span>\r\n }\r\n </div>\r\n }\r\n <mat-form-field\r\n class=\"primary-form {{ className }}\"\r\n [ngClass]=\"{ 'input-disabled': control.disabled }\"\r\n [floatLabel]=\"floatLabel\"\r\n >\r\n @if(iconPrefixName){<span class=\"sfi {{ iconPrefixName }}\"></span>}\r\n @if(loading){<span\r\n class=\"sfi sfi-spinner d-inline-block spin fc-coral\"\r\n matSuffix\r\n ></span\r\n >}\r\n <label class=\"mat-form-content\">\r\n <!-- add input for ar && en custom directive with add type = arOnly || type = enOnly-->\r\n <input\r\n matInput\r\n [value]=\"value\"\r\n oninput=\"validity.valid || (value='');\"\r\n [formControl]=\"control\"\r\n [type]=\"type\"\r\n [placeholder]=\"placeholder\"\r\n appMycurrency\r\n />\r\n </label>\r\n @if(iconSuffixName){<span matSuffix class=\"sfi {{ iconSuffixName }}\"></span>}\r\n @if(hint){\r\n <mat-hint class=\"d-flex align-items-center gap-1 mt-1\">\r\n <span\r\n class=\"sfi sfi-info fs-17 fc-dark-gray\"\r\n [ngClass]=\"{ 'fc-oasis-light-imp': value }\"\r\n ></span>\r\n <span class=\"fs-12 fc-black line-height-1\">{{ hint }}</span>\r\n </mat-hint>\r\n }\r\n </mat-form-field>\r\n <app-validation-errors [errors]=\"control.errors\"></app-validation-errors>\r\n } @if(isReadOnly && (showIfEmpty || control)){\r\n <ng-container class=\"info-section\">\r\n <app-info-item\r\n class=\"info-item w-100\"\r\n [label]=\"label\"\r\n [insideTable]=\"insideTable\"\r\n [hasLabel]=\"!!label\"\r\n [type]=\"type\"\r\n [value]=\"control.value\"\r\n ></app-info-item>\r\n </ng-container>\r\n }\r\n <sat-popover #popover [hasBackdrop]=\"true\" verticalAlign=\"below\">\r\n <div class=\"default-popover p-3 fs-14\">\r\n <span class=\"fs-14 fw-bold signature-notes\" [innerHTML]=\"tooltip\"></span>\r\n </div>\r\n </sat-popover>\r\n ", styles: [":host{flex-grow:1}.input-disabled{pointer-events:none!important;opacity:1.5}\n"], dependencies: [{ kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: MatHint, selector: "mat-hint", inputs: ["align", "id"] }, { kind: "component", type: InfoItemComponent, selector: "app-info-item", inputs: ["label", "value", "name", "type", "dateType", "multiple", "insideTable", "hasLabel", "arrayList", "actionType", "download"] }, { kind: "ngmodule", type: SatPopoverModule }, { kind: "component", type: i2.SatPopoverComponent, selector: "sat-popover", inputs: ["anchor", "horizontalAlign", "xAlign", "verticalAlign", "yAlign", "forceAlignment", "lockAlignment", "autoFocus", "restoreFocus", "scrollStrategy", "hasBackdrop", "interactiveClose", "openTransition", "closeTransition", "openAnimationStartAtScale", "closeAnimationEndAtScale", "backdropClass", "panelClass"], outputs: ["opened", "closed", "afterOpen", "afterClose", "backdropClicked", "overlayKeydown"] }, { kind: "directive", type: i2.SatPopoverAnchorDirective, selector: "[satPopoverAnchor]", inputs: ["satPopoverAnchor"], exportAs: ["satPopoverAnchor"] }, { kind: "component", type: MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "directive", type: MycurrencyDirective, selector: "[appMycurrency]", inputs: ["decimals"] }, { kind: "component", type: ValidationErrorsComponent, selector: "app-validation-errors", inputs: ["errors", "customErrorMessages"] }] });
32
36
  }
33
37
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: InputCurrencyComponent, decorators: [{
34
38
  type: Component,
@@ -41,14 +45,17 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImpor
41
45
  SatPopoverModule,
42
46
  MatFormField,
43
47
  MatInput,
44
- NgIf
48
+ NgIf,
49
+ MycurrencyDirective,
50
+ ValidationErrorsComponent
45
51
  ], providers: [
46
52
  {
47
53
  provide: NG_VALUE_ACCESSOR,
48
54
  useExisting: forwardRef(() => InputCurrencyComponent),
49
55
  multi: true,
50
56
  },
51
- ], template: "@if(!isReadOnly){\r\n<ng-container>\r\n <!-- <app-form-label [label]=\"label\" [optional]=\"!required\" [hideOption]=\"hideOption\" [showLabel]=\"showLabel\"></app-form-label> -->\r\n @if(label){\r\n <div class=\"d-flex justify-content-between mb-1\">\r\n <span class=\"form-label mb-0\">{{ label }}</span>\r\n @if(!required){\r\n <span class=\"fs-11 fc-dark-gray\">{{ i18n.translate(\"Optional\") }} </span>\r\n }\r\n </div>\r\n }\r\n\r\n <mat-form-field\r\n class=\"primary-form {{ className }}\"\r\n [ngClass]=\"{ 'input-disabled': isDisabled }\"\r\n [floatLabel]=\"floatLabel\"\r\n >\r\n @if(iconPrefixName){\r\n <span matPrefix class=\"sfi {{ iconPrefixName }}\"></span>\r\n }\r\n <label class=\"mat-form-content\">\r\n <input\r\n matInput\r\n [placeholder]=\"placeholder\"\r\n [value]=\"value\"\r\n [disabled]=\"isDisabled\"\r\n oninput=\"validity.valid || (value='');\"\r\n [formControl]=\"control\"\r\n (paste)=\"(false)\"\r\n [required]=\"required\"\r\n [placeholder]=\"placeholder\"\r\n appMycurrency\r\n />\r\n </label>\r\n @if(matSuffix){\r\n <span matSuffix class=\"sfi {{ iconSuffixName }}\"></span>\r\n } @if(type === 'number'){\r\n <div\r\n matSuffix\r\n class=\"d-flex align-items-center gap-2 position-relative\"\r\n (click)=\"$event.stopPropagation()\"\r\n >\r\n @if(numberSuffixName){\r\n <span class=\"fs-14 fw-medium\">{{ numberSuffixName }}</span>\r\n }\r\n </div>\r\n } @if(!control?.valid){\r\n <mat-error class=\"mb-2\">\r\n {{ i18n.translate(\"validFieldError\") }}{{ label }}\r\n </mat-error>\r\n } @if(showHint){\r\n <mat-hint>\r\n <span\r\n class=\"sfi sfi-check-circle font-10 fc-dark-gray\"\r\n [ngClass]=\"{ 'fc-oasis-light-imp': value }\"\r\n ></span>\r\n <span class=\"mx-1\"></span>\r\n <span class=\"fs-12 fc-onyx\">{{ hint }}</span>\r\n </mat-hint>\r\n }\r\n </mat-form-field>\r\n</ng-container>\r\n} @if(isReadOnly && (showIfEmpty || control)){\r\n<ng-container class=\"info-section\">\r\n <app-info-item\r\n class=\"info-item w-100\"\r\n [type]=\"'currency'\"\r\n [label]=\"label\"\r\n [insideTable]=\"insideTable\"\r\n [hasLabel]=\"label ? true : false\"\r\n [value]=\"control\"\r\n ></app-info-item>\r\n</ng-container>\r\n}\r\n\r\n<!-- section tooltip -->\r\n<sat-popover #popover [hasBackdrop]=\"true\" verticalAlign=\"below\">\r\n <div class=\"deafult-tooltip\">\r\n {{ tooltip }}\r\n </div>\r\n</sat-popover>\r\n", styles: [":host{flex-grow:1}.input-disabled{pointer-events:none!important;opacity:1.5}\n"] }]
57
+ MycurrencyPipe
58
+ ], template: "@if(!isReadOnly){\r\n @if(label){\r\n <div class=\"d-flex justify-content-between mb-1\">\r\n <span class=\"form-label mb-0\">{{ label }}</span\r\n > @if(!required){<span class=\"fs-11 fc-dark-gray\">{{\r\n i18n.translate(\"Optional\")\r\n }}</span\r\n >} @if(hasTooltip){\r\n <span class=\"form-label mb-0\">\r\n {{ tooltip }}\r\n <ds-icon\r\n icon=\"info fs-22\"\r\n class=\"cursor-pointer\"\r\n [satPopoverAnchor]=\"popover\"\r\n (click)=\"popover.toggle(); $event.stopImmediatePropagation()\"\r\n ></ds-icon>\r\n </span>\r\n }\r\n </div>\r\n }\r\n <mat-form-field\r\n class=\"primary-form {{ className }}\"\r\n [ngClass]=\"{ 'input-disabled': control.disabled }\"\r\n [floatLabel]=\"floatLabel\"\r\n >\r\n @if(iconPrefixName){<span class=\"sfi {{ iconPrefixName }}\"></span>}\r\n @if(loading){<span\r\n class=\"sfi sfi-spinner d-inline-block spin fc-coral\"\r\n matSuffix\r\n ></span\r\n >}\r\n <label class=\"mat-form-content\">\r\n <!-- add input for ar && en custom directive with add type = arOnly || type = enOnly-->\r\n <input\r\n matInput\r\n [value]=\"value\"\r\n oninput=\"validity.valid || (value='');\"\r\n [formControl]=\"control\"\r\n [type]=\"type\"\r\n [placeholder]=\"placeholder\"\r\n appMycurrency\r\n />\r\n </label>\r\n @if(iconSuffixName){<span matSuffix class=\"sfi {{ iconSuffixName }}\"></span>}\r\n @if(hint){\r\n <mat-hint class=\"d-flex align-items-center gap-1 mt-1\">\r\n <span\r\n class=\"sfi sfi-info fs-17 fc-dark-gray\"\r\n [ngClass]=\"{ 'fc-oasis-light-imp': value }\"\r\n ></span>\r\n <span class=\"fs-12 fc-black line-height-1\">{{ hint }}</span>\r\n </mat-hint>\r\n }\r\n </mat-form-field>\r\n <app-validation-errors [errors]=\"control.errors\"></app-validation-errors>\r\n } @if(isReadOnly && (showIfEmpty || control)){\r\n <ng-container class=\"info-section\">\r\n <app-info-item\r\n class=\"info-item w-100\"\r\n [label]=\"label\"\r\n [insideTable]=\"insideTable\"\r\n [hasLabel]=\"!!label\"\r\n [type]=\"type\"\r\n [value]=\"control.value\"\r\n ></app-info-item>\r\n </ng-container>\r\n }\r\n <sat-popover #popover [hasBackdrop]=\"true\" verticalAlign=\"below\">\r\n <div class=\"default-popover p-3 fs-14\">\r\n <span class=\"fs-14 fw-bold signature-notes\" [innerHTML]=\"tooltip\"></span>\r\n </div>\r\n </sat-popover>\r\n ", styles: [":host{flex-grow:1}.input-disabled{pointer-events:none!important;opacity:1.5}\n"] }]
52
59
  }], propDecorators: { tooltip: [{
53
60
  type: Input
54
61
  }], floatLabel: [{
@@ -62,4 +69,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImpor
62
69
  }], numberSuffixName: [{
63
70
  type: Input
64
71
  }] } });
65
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQtY3VycmVuY3kuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYnBtLWNvcmUvc3JjL2xpYi9jb21wb25lbnRzL3NoYXJlZC1jb21wb25lbnRzL2Zvcm0tZmllbGQvaW5wdXQtY3VycmVuY3kvaW5wdXQtY3VycmVuY3kuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYnBtLWNvcmUvc3JjL2xpYi9jb21wb25lbnRzL3NoYXJlZC1jb21wb25lbnRzL2Zvcm0tZmllbGQvaW5wdXQtY3VycmVuY3kvaW5wdXQtY3VycmVuY3kuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsc0RBQXNEO0FBQ3RELDREQUE0RDtBQUM1RCx1REFBdUQ7QUFDdkQsdURBQXVEO0FBQ3ZELE9BQU8sRUFBQyxpQkFBaUIsRUFBRSxtQkFBbUIsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQ3RFLE9BQU8sRUFBRSxTQUFTLEVBQUUsc0JBQXNCLEVBQUUsVUFBVSxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNyRixPQUFPLEVBQUUsUUFBUSxFQUFFLFlBQVksRUFBRSxPQUFPLEVBQUMsTUFBTSw4QkFBOEIsQ0FBQztBQUM5RSxPQUFPLEVBQUMsT0FBTyxFQUFFLElBQUksRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBQzlDLE9BQU8sRUFBQyxpQkFBaUIsRUFBQyxNQUFNLGtDQUFrQyxDQUFDO0FBQ25FLE9BQU8sRUFBQyxnQkFBZ0IsRUFBQyxNQUFNLHNCQUFzQixDQUFDO0FBQ3RELE9BQU8sRUFBRSw2QkFBNkIsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQ3BGLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQzs7OztBQTRCbkQsTUFBTSxPQUFPLHNCQUE2QixTQUFRLDZCQUFtQztJQUMxRSxPQUFPLENBQVU7SUFDakIsVUFBVSxHQUFRLE1BQU0sQ0FBQztJQUN6QixTQUFTLEdBQUcsZ0JBQWdCLENBQUM7SUFDN0IsY0FBYyxDQUFVO0lBQ3hCLGNBQWMsQ0FBVTtJQUN4QixnQkFBZ0IsQ0FBVTtJQUM1QixjQUFjLENBQWdCO3VHQVAxQixzQkFBc0I7MkZBQXRCLHNCQUFzQiw2UEFSdEI7WUFDVDtnQkFDRSxPQUFPLEVBQUUsaUJBQWlCO2dCQUMxQixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLHNCQUFzQixDQUFDO2dCQUNyRCxLQUFLLEVBQUUsSUFBSTthQUNaO1NBQ0YsaURDckNILHdqRkFpRkEsdUlENURJLG1CQUFtQix1eUJBQ25CLE9BQU8sb0ZBQ1AsUUFBUSxrRkFDUixPQUFPLDhFQUNQLGlCQUFpQiwrTEFDakIsZ0JBQWdCLDBnQkFDaEIsWUFBWSw0TEFDWixRQUFROzsyRkFXQyxzQkFBc0I7a0JBekJsQyxTQUFTOytCQUNFLG9CQUFvQixXQUdyQixDQUFDLHNCQUFzQixDQUFDLGNBQ3JCLElBQUksV0FDUDt3QkFDUCxtQkFBbUI7d0JBQ25CLE9BQU87d0JBQ1AsUUFBUTt3QkFDUixPQUFPO3dCQUNQLGlCQUFpQjt3QkFDakIsZ0JBQWdCO3dCQUNoQixZQUFZO3dCQUNaLFFBQVE7d0JBQ1IsSUFBSTtxQkFDTCxhQUNVO3dCQUNUOzRCQUNFLE9BQU8sRUFBRSxpQkFBaUI7NEJBQzFCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLHVCQUF1QixDQUFDOzRCQUNyRCxLQUFLLEVBQUUsSUFBSTt5QkFDWjtxQkFDRjs4QkFHUSxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQUNHLGNBQWM7c0JBQXRCLEtBQUs7Z0JBQ0csY0FBYztzQkFBdEIsS0FBSztnQkFDRyxnQkFBZ0I7c0JBQXhCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW51c2VkLXZhcnMgKi9cclxuLyogZXNsaW50LWRpc2FibGUgQGFuZ3VsYXItZXNsaW50L3VzZS1saWZlY3ljbGUtaW50ZXJmYWNlICovXHJcbi8qIGVzbGludC1kaXNhYmxlIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnkgKi9cclxuLyogZXNsaW50LWRpc2FibGUgQGFuZ3VsYXItZXNsaW50L2NvbXBvbmVudC1zZWxlY3RvciAqL1xyXG5pbXBvcnQge05HX1ZBTFVFX0FDQ0VTU09SLCBSZWFjdGl2ZUZvcm1zTW9kdWxlfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IENvbXBvbmVudCwgQ1VTVE9NX0VMRU1FTlRTX1NDSEVNQSwgZm9yd2FyZFJlZiwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgTWF0RXJyb3IsIE1hdEZvcm1GaWVsZCwgTWF0SGludH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZm9ybS1maWVsZCc7XHJcbmltcG9ydCB7TmdDbGFzcywgTmdJZn0gZnJvbSBcIkBhbmd1bGFyL2NvbW1vblwiO1xyXG5pbXBvcnQge0luZm9JdGVtQ29tcG9uZW50fSBmcm9tIFwiLi4vaW5mby1pdGVtL2luZm8taXRlbS5jb21wb25lbnRcIjtcclxuaW1wb3J0IHtTYXRQb3BvdmVyTW9kdWxlfSBmcm9tIFwiQG5jc3RhdGUvc2F0LXBvcG92ZXJcIjtcclxuaW1wb3J0IHsgQ29udHJvbFZhbHVlQWNjZXNzb3JEaXJlY3RpdmUgfSBmcm9tICcuLi9jb250cm9sLXZhbHVlLWFjY2Vzc29yLmRpcmVjdGl2ZSc7XHJcbmltcG9ydCB7IE1hdElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaW5wdXQnO1xyXG5pbXBvcnQge015Y3VycmVuY3lQaXBlfSBmcm9tIFwiLi4vLi4vLi4vLi4vcGlwZXNcIjtcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnYXBwLWlucHV0LWN1cnJlbmN5JyxcclxuICB0ZW1wbGF0ZVVybDogJy4vaW5wdXQtY3VycmVuY3kuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2lucHV0LWN1cnJlbmN5LmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgc2NoZW1hczogW0NVU1RPTV9FTEVNRU5UU19TQ0hFTUFdLFxyXG4gIHN0YW5kYWxvbmU6IHRydWUsXHJcbiAgaW1wb3J0czogW1xyXG4gICAgUmVhY3RpdmVGb3Jtc01vZHVsZSxcclxuICAgIE5nQ2xhc3MsXHJcbiAgICBNYXRFcnJvcixcclxuICAgIE1hdEhpbnQsXHJcbiAgICBJbmZvSXRlbUNvbXBvbmVudCxcclxuICAgIFNhdFBvcG92ZXJNb2R1bGUsXHJcbiAgICBNYXRGb3JtRmllbGQsXHJcbiAgICBNYXRJbnB1dCxcclxuICAgIE5nSWZcclxuICBdLFxyXG4gIHByb3ZpZGVyczogW1xyXG4gICAge1xyXG4gICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcclxuICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gSW5wdXRDdXJyZW5jeUNvbXBvbmVudCksXHJcbiAgICAgIG11bHRpOiB0cnVlLFxyXG4gICAgfSxcclxuICBdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBJbnB1dEN1cnJlbmN5Q29tcG9uZW50PFR5cGU+IGV4dGVuZHMgQ29udHJvbFZhbHVlQWNjZXNzb3JEaXJlY3RpdmU8VHlwZT4gIHtcclxuICBASW5wdXQoKSB0b29sdGlwITogc3RyaW5nO1xyXG4gIEBJbnB1dCgpIGZsb2F0TGFiZWw6IGFueSA9ICdhdXRvJztcclxuICBASW5wdXQoKSBjbGFzc05hbWUgPSAnYm9yZGVyZWQtaW5wdXQnO1xyXG4gIEBJbnB1dCgpIGljb25QcmVmaXhOYW1lITogc3RyaW5nO1xyXG4gIEBJbnB1dCgpIGljb25TdWZmaXhOYW1lITogc3RyaW5nO1xyXG4gIEBJbnB1dCgpIG51bWJlclN1ZmZpeE5hbWUhOiBzdHJpbmc7XHJcbiAgcHVibGljIG15Y3VycmVuY3lQaXBlOiBNeWN1cnJlbmN5UGlwZVxyXG5cclxufVxyXG4iLCJAaWYoIWlzUmVhZE9ubHkpe1xyXG48bmctY29udGFpbmVyPlxyXG4gIDwhLS0gPGFwcC1mb3JtLWxhYmVsIFtsYWJlbF09XCJsYWJlbFwiIFtvcHRpb25hbF09XCIhcmVxdWlyZWRcIiBbaGlkZU9wdGlvbl09XCJoaWRlT3B0aW9uXCIgW3Nob3dMYWJlbF09XCJzaG93TGFiZWxcIj48L2FwcC1mb3JtLWxhYmVsPiAtLT5cclxuICBAaWYobGFiZWwpe1xyXG4gIDxkaXYgY2xhc3M9XCJkLWZsZXgganVzdGlmeS1jb250ZW50LWJldHdlZW4gbWItMVwiPlxyXG4gICAgPHNwYW4gY2xhc3M9XCJmb3JtLWxhYmVsIG1iLTBcIj57eyBsYWJlbCB9fTwvc3Bhbj5cclxuICAgIEBpZighcmVxdWlyZWQpe1xyXG4gICAgPHNwYW4gY2xhc3M9XCJmcy0xMSBmYy1kYXJrLWdyYXlcIj57eyBpMThuLnRyYW5zbGF0ZShcIk9wdGlvbmFsXCIpIH19IDwvc3Bhbj5cclxuICAgIH1cclxuICA8L2Rpdj5cclxuICB9XHJcblxyXG4gIDxtYXQtZm9ybS1maWVsZFxyXG4gICAgY2xhc3M9XCJwcmltYXJ5LWZvcm0ge3sgY2xhc3NOYW1lIH19XCJcclxuICAgIFtuZ0NsYXNzXT1cInsgJ2lucHV0LWRpc2FibGVkJzogaXNEaXNhYmxlZCB9XCJcclxuICAgIFtmbG9hdExhYmVsXT1cImZsb2F0TGFiZWxcIlxyXG4gID5cclxuICAgIEBpZihpY29uUHJlZml4TmFtZSl7XHJcbiAgICA8c3BhbiBtYXRQcmVmaXggY2xhc3M9XCJzZmkge3sgaWNvblByZWZpeE5hbWUgfX1cIj48L3NwYW4+XHJcbiAgICB9XHJcbiAgICA8bGFiZWwgY2xhc3M9XCJtYXQtZm9ybS1jb250ZW50XCI+XHJcbiAgICAgIDxpbnB1dFxyXG4gICAgICAgIG1hdElucHV0XHJcbiAgICAgICAgW3BsYWNlaG9sZGVyXT1cInBsYWNlaG9sZGVyXCJcclxuICAgICAgICBbdmFsdWVdPVwidmFsdWVcIlxyXG4gICAgICAgIFtkaXNhYmxlZF09XCJpc0Rpc2FibGVkXCJcclxuICAgICAgICBvbmlucHV0PVwidmFsaWRpdHkudmFsaWQgfHwgKHZhbHVlPScnKTtcIlxyXG4gICAgICAgIFtmb3JtQ29udHJvbF09XCJjb250cm9sXCJcclxuICAgICAgICAocGFzdGUpPVwiKGZhbHNlKVwiXHJcbiAgICAgICAgW3JlcXVpcmVkXT1cInJlcXVpcmVkXCJcclxuICAgICAgICBbcGxhY2Vob2xkZXJdPVwicGxhY2Vob2xkZXJcIlxyXG4gICAgICAgIGFwcE15Y3VycmVuY3lcclxuICAgICAgLz5cclxuICAgIDwvbGFiZWw+XHJcbiAgICBAaWYobWF0U3VmZml4KXtcclxuICAgIDxzcGFuIG1hdFN1ZmZpeCBjbGFzcz1cInNmaSB7eyBpY29uU3VmZml4TmFtZSB9fVwiPjwvc3Bhbj5cclxuICAgIH0gQGlmKHR5cGUgPT09ICdudW1iZXInKXtcclxuICAgIDxkaXZcclxuICAgICAgbWF0U3VmZml4XHJcbiAgICAgIGNsYXNzPVwiZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBnYXAtMiBwb3NpdGlvbi1yZWxhdGl2ZVwiXHJcbiAgICAgIChjbGljayk9XCIkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKClcIlxyXG4gICAgPlxyXG4gICAgICBAaWYobnVtYmVyU3VmZml4TmFtZSl7XHJcbiAgICAgIDxzcGFuIGNsYXNzPVwiZnMtMTQgZnctbWVkaXVtXCI+e3sgbnVtYmVyU3VmZml4TmFtZSB9fTwvc3Bhbj5cclxuICAgICAgfVxyXG4gICAgPC9kaXY+XHJcbiAgICB9IEBpZighY29udHJvbD8udmFsaWQpe1xyXG4gICAgPG1hdC1lcnJvciBjbGFzcz1cIm1iLTJcIj5cclxuICAgICAge3sgaTE4bi50cmFuc2xhdGUoXCJ2YWxpZEZpZWxkRXJyb3JcIikgfX17eyBsYWJlbCB9fVxyXG4gICAgPC9tYXQtZXJyb3I+XHJcbiAgICB9IEBpZihzaG93SGludCl7XHJcbiAgICA8bWF0LWhpbnQ+XHJcbiAgICAgIDxzcGFuXHJcbiAgICAgICAgY2xhc3M9XCJzZmkgc2ZpLWNoZWNrLWNpcmNsZSBmb250LTEwIGZjLWRhcmstZ3JheVwiXHJcbiAgICAgICAgW25nQ2xhc3NdPVwieyAnZmMtb2FzaXMtbGlnaHQtaW1wJzogdmFsdWUgfVwiXHJcbiAgICAgID48L3NwYW4+XHJcbiAgICAgIDxzcGFuIGNsYXNzPVwibXgtMVwiPjwvc3Bhbj5cclxuICAgICAgPHNwYW4gY2xhc3M9XCJmcy0xMiBmYy1vbnl4XCI+e3sgaGludCB9fTwvc3Bhbj5cclxuICAgIDwvbWF0LWhpbnQ+XHJcbiAgICB9XHJcbiAgPC9tYXQtZm9ybS1maWVsZD5cclxuPC9uZy1jb250YWluZXI+XHJcbn0gQGlmKGlzUmVhZE9ubHkgJiYgKHNob3dJZkVtcHR5IHx8IGNvbnRyb2wpKXtcclxuPG5nLWNvbnRhaW5lciBjbGFzcz1cImluZm8tc2VjdGlvblwiPlxyXG4gIDxhcHAtaW5mby1pdGVtXHJcbiAgICBjbGFzcz1cImluZm8taXRlbSB3LTEwMFwiXHJcbiAgICBbdHlwZV09XCInY3VycmVuY3knXCJcclxuICAgIFtsYWJlbF09XCJsYWJlbFwiXHJcbiAgICBbaW5zaWRlVGFibGVdPVwiaW5zaWRlVGFibGVcIlxyXG4gICAgW2hhc0xhYmVsXT1cImxhYmVsID8gdHJ1ZSA6IGZhbHNlXCJcclxuICAgIFt2YWx1ZV09XCJjb250cm9sXCJcclxuICA+PC9hcHAtaW5mby1pdGVtPlxyXG48L25nLWNvbnRhaW5lcj5cclxufVxyXG5cclxuPCEtLSBzZWN0aW9uIHRvb2x0aXAgLS0+XHJcbjxzYXQtcG9wb3ZlciAjcG9wb3ZlciBbaGFzQmFja2Ryb3BdPVwidHJ1ZVwiIHZlcnRpY2FsQWxpZ249XCJiZWxvd1wiPlxyXG4gIDxkaXYgY2xhc3M9XCJkZWFmdWx0LXRvb2x0aXBcIj5cclxuICAgIHt7IHRvb2x0aXAgfX1cclxuICA8L2Rpdj5cclxuPC9zYXQtcG9wb3Zlcj5cclxuIl19
72
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQtY3VycmVuY3kuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYnBtLWNvcmUvc3JjL2xpYi9jb21wb25lbnRzL3NoYXJlZC1jb21wb25lbnRzL2Zvcm0tZmllbGQvaW5wdXQtY3VycmVuY3kvaW5wdXQtY3VycmVuY3kuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYnBtLWNvcmUvc3JjL2xpYi9jb21wb25lbnRzL3NoYXJlZC1jb21wb25lbnRzL2Zvcm0tZmllbGQvaW5wdXQtY3VycmVuY3kvaW5wdXQtY3VycmVuY3kuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsc0RBQXNEO0FBQ3RELDREQUE0RDtBQUM1RCx1REFBdUQ7QUFDdkQsdURBQXVEO0FBQ3ZELE9BQU8sRUFBQyxpQkFBaUIsRUFBRSxtQkFBbUIsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQ3RFLE9BQU8sRUFBRSxTQUFTLEVBQUUsc0JBQXNCLEVBQUUsVUFBVSxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNyRixPQUFPLEVBQUUsUUFBUSxFQUFFLFlBQVksRUFBRSxPQUFPLEVBQUMsTUFBTSw4QkFBOEIsQ0FBQztBQUM5RSxPQUFPLEVBQUMsT0FBTyxFQUFFLElBQUksRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBQzlDLE9BQU8sRUFBQyxpQkFBaUIsRUFBQyxNQUFNLGtDQUFrQyxDQUFDO0FBQ25FLE9BQU8sRUFBQyxnQkFBZ0IsRUFBQyxNQUFNLHNCQUFzQixDQUFDO0FBQ3RELE9BQU8sRUFBRSw2QkFBNkIsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQ3BGLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUNuRCxPQUFPLEVBQUMsY0FBYyxFQUFDLE1BQU0sbUJBQW1CLENBQUM7QUFDakQsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sa0RBQWtELENBQUM7QUFDN0YsT0FBTyxFQUFDLG1CQUFtQixFQUFDLE1BQU0sMkNBQTJDLENBQUM7Ozs7QUErQjlFLE1BQU0sT0FBTyxzQkFBNkIsU0FBUSw2QkFBbUM7SUFDMUUsT0FBTyxDQUFVO0lBQ2pCLFVBQVUsR0FBUSxNQUFNLENBQUM7SUFDekIsU0FBUyxHQUFHLGdCQUFnQixDQUFDO0lBQzdCLGNBQWMsQ0FBVTtJQUN4QixjQUFjLENBQVU7SUFDeEIsZ0JBQWdCLENBQVU7SUFDNUIsY0FBYyxDQUFnQjt1R0FQMUIsc0JBQXNCOzJGQUF0QixzQkFBc0IsNlBBVnRCO1lBQ1Q7Z0JBQ0UsT0FBTyxFQUFFLGlCQUFpQjtnQkFDMUIsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxzQkFBc0IsQ0FBQztnQkFDckQsS0FBSyxFQUFFLElBQUk7YUFFWjtZQUNELGNBQWM7U0FDZixpREMzQ0gscS9FQXdFRSx1SURqREUsbUJBQW1CLDBrQkFDbkIsT0FBTyxvRkFFUCxPQUFPLDhFQUNQLGlCQUFpQiwrTEFDakIsZ0JBQWdCLG1xQkFDaEIsWUFBWSw0TEFDWixRQUFRLGlVQUVSLG1CQUFtQixrRkFDbkIseUJBQXlCOzsyRkFZaEIsc0JBQXNCO2tCQTdCbEMsU0FBUzsrQkFDRSxvQkFBb0IsV0FHckIsQ0FBQyxzQkFBc0IsQ0FBQyxjQUNyQixJQUFJLFdBQ1A7d0JBQ1AsbUJBQW1CO3dCQUNuQixPQUFPO3dCQUNQLFFBQVE7d0JBQ1IsT0FBTzt3QkFDUCxpQkFBaUI7d0JBQ2pCLGdCQUFnQjt3QkFDaEIsWUFBWTt3QkFDWixRQUFRO3dCQUNSLElBQUk7d0JBQ0osbUJBQW1CO3dCQUNuQix5QkFBeUI7cUJBQzFCLGFBQ1U7d0JBQ1Q7NEJBQ0UsT0FBTyxFQUFFLGlCQUFpQjs0QkFDMUIsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsdUJBQXVCLENBQUM7NEJBQ3JELEtBQUssRUFBRSxJQUFJO3lCQUVaO3dCQUNELGNBQWM7cUJBQ2Y7OEJBR1EsT0FBTztzQkFBZixLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFDRyxjQUFjO3NCQUF0QixLQUFLO2dCQUNHLGNBQWM7c0JBQXRCLEtBQUs7Z0JBQ0csZ0JBQWdCO3NCQUF4QixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVudXNlZC12YXJzICovXHJcbi8qIGVzbGludC1kaXNhYmxlIEBhbmd1bGFyLWVzbGludC91c2UtbGlmZWN5Y2xlLWludGVyZmFjZSAqL1xyXG4vKiBlc2xpbnQtZGlzYWJsZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55ICovXHJcbi8qIGVzbGludC1kaXNhYmxlIEBhbmd1bGFyLWVzbGludC9jb21wb25lbnQtc2VsZWN0b3IgKi9cclxuaW1wb3J0IHtOR19WQUxVRV9BQ0NFU1NPUiwgUmVhY3RpdmVGb3Jtc01vZHVsZX0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBDb21wb25lbnQsIENVU1RPTV9FTEVNRU5UU19TQ0hFTUEsIGZvcndhcmRSZWYsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IE1hdEVycm9yLCBNYXRGb3JtRmllbGQsIE1hdEhpbnR9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2Zvcm0tZmllbGQnO1xyXG5pbXBvcnQge05nQ2xhc3MsIE5nSWZ9IGZyb20gXCJAYW5ndWxhci9jb21tb25cIjtcclxuaW1wb3J0IHtJbmZvSXRlbUNvbXBvbmVudH0gZnJvbSBcIi4uL2luZm8taXRlbS9pbmZvLWl0ZW0uY29tcG9uZW50XCI7XHJcbmltcG9ydCB7U2F0UG9wb3Zlck1vZHVsZX0gZnJvbSBcIkBuY3N0YXRlL3NhdC1wb3BvdmVyXCI7XHJcbmltcG9ydCB7IENvbnRyb2xWYWx1ZUFjY2Vzc29yRGlyZWN0aXZlIH0gZnJvbSAnLi4vY29udHJvbC12YWx1ZS1hY2Nlc3Nvci5kaXJlY3RpdmUnO1xyXG5pbXBvcnQgeyBNYXRJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2lucHV0JztcclxuaW1wb3J0IHtNeWN1cnJlbmN5UGlwZX0gZnJvbSBcIi4uLy4uLy4uLy4uL3BpcGVzXCI7XHJcbmltcG9ydCB7IFZhbGlkYXRpb25FcnJvcnNDb21wb25lbnQgfSBmcm9tICcuLi92YWxpZGF0aW9uLWVycm9ycy92YWxpZGF0aW9uLWVycm9ycy5jb21wb25lbnQnO1xyXG5pbXBvcnQge015Y3VycmVuY3lEaXJlY3RpdmV9IGZyb20gXCIuLi8uLi8uLi8uLi9kaXJlY3RpdmVzL2N1cnJlbmN5LmRpcmVjdGl2ZVwiO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdhcHAtaW5wdXQtY3VycmVuY3knLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9pbnB1dC1jdXJyZW5jeS5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vaW5wdXQtY3VycmVuY3kuY29tcG9uZW50LnNjc3MnXSxcclxuICBzY2hlbWFzOiBbQ1VTVE9NX0VMRU1FTlRTX1NDSEVNQV0sXHJcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcclxuICBpbXBvcnRzOiBbXHJcbiAgICBSZWFjdGl2ZUZvcm1zTW9kdWxlLFxyXG4gICAgTmdDbGFzcyxcclxuICAgIE1hdEVycm9yLFxyXG4gICAgTWF0SGludCxcclxuICAgIEluZm9JdGVtQ29tcG9uZW50LFxyXG4gICAgU2F0UG9wb3Zlck1vZHVsZSxcclxuICAgIE1hdEZvcm1GaWVsZCxcclxuICAgIE1hdElucHV0LFxyXG4gICAgTmdJZixcclxuICAgIE15Y3VycmVuY3lEaXJlY3RpdmUsXHJcbiAgICBWYWxpZGF0aW9uRXJyb3JzQ29tcG9uZW50XHJcbiAgXSxcclxuICBwcm92aWRlcnM6IFtcclxuICAgIHtcclxuICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXHJcbiAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IElucHV0Q3VycmVuY3lDb21wb25lbnQpLFxyXG4gICAgICBtdWx0aTogdHJ1ZSxcclxuXHJcbiAgICB9LFxyXG4gICAgTXljdXJyZW5jeVBpcGVcclxuICBdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBJbnB1dEN1cnJlbmN5Q29tcG9uZW50PFR5cGU+IGV4dGVuZHMgQ29udHJvbFZhbHVlQWNjZXNzb3JEaXJlY3RpdmU8VHlwZT4gIHtcclxuICBASW5wdXQoKSB0b29sdGlwITogc3RyaW5nO1xyXG4gIEBJbnB1dCgpIGZsb2F0TGFiZWw6IGFueSA9ICdhdXRvJztcclxuICBASW5wdXQoKSBjbGFzc05hbWUgPSAnYm9yZGVyZWQtaW5wdXQnO1xyXG4gIEBJbnB1dCgpIGljb25QcmVmaXhOYW1lITogc3RyaW5nO1xyXG4gIEBJbnB1dCgpIGljb25TdWZmaXhOYW1lITogc3RyaW5nO1xyXG4gIEBJbnB1dCgpIG51bWJlclN1ZmZpeE5hbWUhOiBzdHJpbmc7XHJcbiAgcHVibGljIG15Y3VycmVuY3lQaXBlOiBNeWN1cnJlbmN5UGlwZVxyXG5cclxufVxyXG4iLCJAaWYoIWlzUmVhZE9ubHkpe1xyXG4gIEBpZihsYWJlbCl7XHJcbiAgPGRpdiBjbGFzcz1cImQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlbiBtYi0xXCI+XHJcbiAgICA8c3BhbiBjbGFzcz1cImZvcm0tbGFiZWwgbWItMFwiPnt7IGxhYmVsIH19PC9zcGFuXHJcbiAgICA+IEBpZighcmVxdWlyZWQpezxzcGFuIGNsYXNzPVwiZnMtMTEgZmMtZGFyay1ncmF5XCI+e3tcclxuICAgICAgaTE4bi50cmFuc2xhdGUoXCJPcHRpb25hbFwiKVxyXG4gICAgfX08L3NwYW5cclxuICAgID59IEBpZihoYXNUb29sdGlwKXtcclxuICAgIDxzcGFuIGNsYXNzPVwiZm9ybS1sYWJlbCBtYi0wXCI+XHJcbiAgICAgIHt7IHRvb2x0aXAgfX1cclxuICAgICAgPGRzLWljb25cclxuICAgICAgICBpY29uPVwiaW5mbyBmcy0yMlwiXHJcbiAgICAgICAgY2xhc3M9XCJjdXJzb3ItcG9pbnRlclwiXHJcbiAgICAgICAgW3NhdFBvcG92ZXJBbmNob3JdPVwicG9wb3ZlclwiXHJcbiAgICAgICAgKGNsaWNrKT1cInBvcG92ZXIudG9nZ2xlKCk7ICRldmVudC5zdG9wSW1tZWRpYXRlUHJvcGFnYXRpb24oKVwiXHJcbiAgICAgID48L2RzLWljb24+XHJcbiAgICA8L3NwYW4+XHJcbiAgICB9XHJcbiAgPC9kaXY+XHJcbiAgfVxyXG4gIDxtYXQtZm9ybS1maWVsZFxyXG4gICAgY2xhc3M9XCJwcmltYXJ5LWZvcm0ge3sgY2xhc3NOYW1lIH19XCJcclxuICAgIFtuZ0NsYXNzXT1cInsgJ2lucHV0LWRpc2FibGVkJzogY29udHJvbC5kaXNhYmxlZCB9XCJcclxuICAgIFtmbG9hdExhYmVsXT1cImZsb2F0TGFiZWxcIlxyXG4gID5cclxuICAgIEBpZihpY29uUHJlZml4TmFtZSl7PHNwYW4gY2xhc3M9XCJzZmkge3sgaWNvblByZWZpeE5hbWUgfX1cIj48L3NwYW4+fVxyXG4gICAgQGlmKGxvYWRpbmcpezxzcGFuXHJcbiAgICAgIGNsYXNzPVwic2ZpIHNmaS1zcGlubmVyIGQtaW5saW5lLWJsb2NrIHNwaW4gZmMtY29yYWxcIlxyXG4gICAgICBtYXRTdWZmaXhcclxuICAgID48L3NwYW5cclxuICAgID59XHJcbiAgICA8bGFiZWwgY2xhc3M9XCJtYXQtZm9ybS1jb250ZW50XCI+XHJcbiAgICAgIDwhLS0gYWRkIGlucHV0IGZvciBhciAmJiBlbiBjdXN0b20gZGlyZWN0aXZlIHdpdGggYWRkIHR5cGUgPSBhck9ubHkgfHwgIHR5cGUgPSBlbk9ubHktLT5cclxuICAgICAgPGlucHV0XHJcbiAgICAgICAgbWF0SW5wdXRcclxuICAgICAgICBbdmFsdWVdPVwidmFsdWVcIlxyXG4gICAgICAgIG9uaW5wdXQ9XCJ2YWxpZGl0eS52YWxpZCB8fCAodmFsdWU9JycpO1wiXHJcbiAgICAgICAgW2Zvcm1Db250cm9sXT1cImNvbnRyb2xcIlxyXG4gICAgICAgIFt0eXBlXT1cInR5cGVcIlxyXG4gICAgICAgIFtwbGFjZWhvbGRlcl09XCJwbGFjZWhvbGRlclwiXHJcbiAgICAgICAgYXBwTXljdXJyZW5jeVxyXG4gICAgICAvPlxyXG4gICAgPC9sYWJlbD5cclxuICAgIEBpZihpY29uU3VmZml4TmFtZSl7PHNwYW4gbWF0U3VmZml4IGNsYXNzPVwic2ZpIHt7IGljb25TdWZmaXhOYW1lIH19XCI+PC9zcGFuPn1cclxuICAgIEBpZihoaW50KXtcclxuICAgIDxtYXQtaGludCBjbGFzcz1cImQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIgZ2FwLTEgbXQtMVwiPlxyXG4gICAgICA8c3BhblxyXG4gICAgICAgIGNsYXNzPVwic2ZpIHNmaS1pbmZvIGZzLTE3IGZjLWRhcmstZ3JheVwiXHJcbiAgICAgICAgW25nQ2xhc3NdPVwieyAnZmMtb2FzaXMtbGlnaHQtaW1wJzogdmFsdWUgfVwiXHJcbiAgICAgID48L3NwYW4+XHJcbiAgICAgIDxzcGFuIGNsYXNzPVwiZnMtMTIgZmMtYmxhY2sgbGluZS1oZWlnaHQtMVwiPnt7IGhpbnQgfX08L3NwYW4+XHJcbiAgICA8L21hdC1oaW50PlxyXG4gICAgfVxyXG4gIDwvbWF0LWZvcm0tZmllbGQ+XHJcbiAgPGFwcC12YWxpZGF0aW9uLWVycm9ycyBbZXJyb3JzXT1cImNvbnRyb2wuZXJyb3JzXCI+PC9hcHAtdmFsaWRhdGlvbi1lcnJvcnM+XHJcbiAgfSBAaWYoaXNSZWFkT25seSAmJiAoc2hvd0lmRW1wdHkgfHwgY29udHJvbCkpe1xyXG4gIDxuZy1jb250YWluZXIgY2xhc3M9XCJpbmZvLXNlY3Rpb25cIj5cclxuICAgIDxhcHAtaW5mby1pdGVtXHJcbiAgICAgIGNsYXNzPVwiaW5mby1pdGVtIHctMTAwXCJcclxuICAgICAgW2xhYmVsXT1cImxhYmVsXCJcclxuICAgICAgW2luc2lkZVRhYmxlXT1cImluc2lkZVRhYmxlXCJcclxuICAgICAgW2hhc0xhYmVsXT1cIiEhbGFiZWxcIlxyXG4gICAgICBbdHlwZV09XCJ0eXBlXCJcclxuICAgICAgW3ZhbHVlXT1cImNvbnRyb2wudmFsdWVcIlxyXG4gICAgPjwvYXBwLWluZm8taXRlbT5cclxuICA8L25nLWNvbnRhaW5lcj5cclxuICB9XHJcbiAgPHNhdC1wb3BvdmVyICNwb3BvdmVyIFtoYXNCYWNrZHJvcF09XCJ0cnVlXCIgdmVydGljYWxBbGlnbj1cImJlbG93XCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwiZGVmYXVsdC1wb3BvdmVyIHAtMyBmcy0xNFwiPlxyXG4gICAgICA8c3BhbiBjbGFzcz1cImZzLTE0IGZ3LWJvbGQgc2lnbmF0dXJlLW5vdGVzXCIgW2lubmVySFRNTF09XCJ0b29sdGlwXCI+PC9zcGFuPlxyXG4gICAgPC9kaXY+XHJcbiAgPC9zYXQtcG9wb3Zlcj5cclxuICAiXX0=