bpm-core 0.0.27 → 0.0.28

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 (41) hide show
  1. package/esm2022/lib/components/app-component-sections/activities/activities.component.mjs +3 -3
  2. package/esm2022/lib/components/app-component-sections/feedback-section/feedback-section.component.mjs +2 -2
  3. package/esm2022/lib/components/app-component-sections/service-header/service-header.component.mjs +3 -3
  4. package/esm2022/lib/components/shared-components/form-field/add-attachment-section/add-attachment-section.component.mjs +2 -2
  5. package/esm2022/lib/components/shared-components/form-field/checkbox/checkbox.component.mjs +42 -31
  6. package/esm2022/lib/components/shared-components/form-field/control-value-accessor.directive.mjs +63 -14
  7. package/esm2022/lib/components/shared-components/form-field/custom-searchable-autocomplete/custom-searchable.component.mjs +70 -137
  8. package/esm2022/lib/components/shared-components/form-field/date-picker/date-picker.component.mjs +42 -78
  9. package/esm2022/lib/components/shared-components/form-field/input/input.component.mjs +5 -19
  10. package/esm2022/lib/components/shared-components/form-field/input-currency/input-currency.component.mjs +23 -115
  11. package/esm2022/lib/components/shared-components/form-field/input-email/input-email.component.mjs +20 -72
  12. package/esm2022/lib/components/shared-components/form-field/input-mask/input-mask.component.mjs +20 -74
  13. package/esm2022/lib/components/shared-components/form-field/input-number/input-number.component.mjs +20 -104
  14. package/esm2022/lib/components/shared-components/form-field/input-telephone/input-telephone.component.mjs +20 -39
  15. package/esm2022/lib/components/shared-components/form-field/textarea/textarea.component.mjs +27 -59
  16. package/esm2022/lib/components/shared-components/form-field/validation-errors/validation-errors.component.mjs +3 -6
  17. package/esm2022/lib/testComponent/general-approver-section/general-approver-section.component.mjs +2 -2
  18. package/esm2022/lib/testComponent/request-details-section/request-details-section.component.mjs +37 -23
  19. package/fesm2022/bpm-core.mjs +524 -908
  20. package/fesm2022/bpm-core.mjs.map +1 -1
  21. package/lib/components/app-component-sections/activities/activities.component.d.ts +2 -2
  22. package/lib/components/app-component-sections/approvals-workflow/approvals-workflow.component.d.ts +1 -1
  23. package/lib/components/app-component-sections/form-section/form-section.component.d.ts +1 -1
  24. package/lib/components/app-component-sections/service-header/service-header.component.d.ts +1 -1
  25. package/lib/components/shared-components/dialogs/submit-dialog/submit-dialog.component.d.ts +1 -1
  26. package/lib/components/shared-components/form-field/checkbox/checkbox.component.d.ts +10 -7
  27. package/lib/components/shared-components/form-field/control-value-accessor.directive.d.ts +15 -5
  28. package/lib/components/shared-components/form-field/custom-searchable-autocomplete/custom-searchable.component.d.ts +15 -15
  29. package/lib/components/shared-components/form-field/date-picker/date-picker.component.d.ts +6 -13
  30. package/lib/components/shared-components/form-field/input/input.component.d.ts +2 -6
  31. package/lib/components/shared-components/form-field/input-currency/input-currency.component.d.ts +6 -23
  32. package/lib/components/shared-components/form-field/input-email/input-email.component.d.ts +4 -18
  33. package/lib/components/shared-components/form-field/input-mask/input-mask.component.d.ts +4 -18
  34. package/lib/components/shared-components/form-field/input-number/input-number.component.d.ts +5 -20
  35. package/lib/components/shared-components/form-field/input-telephone/input-telephone.component.d.ts +4 -15
  36. package/lib/components/shared-components/form-field/textarea/textarea.component.d.ts +5 -14
  37. package/lib/components/shared-components/form-field/validation-errors/validation-errors.component.d.ts +1 -2
  38. package/lib/testComponent/request-details-section/request-details-section.component.d.ts +5 -7
  39. package/package.json +3 -2
  40. package/esm2022/lib/testComponent/services/state-machine.service.mjs +0 -148
  41. package/lib/testComponent/services/state-machine.service.d.ts +0 -29
@@ -1,28 +1,20 @@
1
- import { FormControl, FormsModule } from '@angular/forms';
1
+ import { FormControl, FormsModule, NG_VALUE_ACCESSOR } from '@angular/forms';
2
2
  /* eslint-disable @typescript-eslint/no-explicit-any */
3
3
  /* eslint-disable @angular-eslint/component-selector */
4
- import { Component, Input, Output, EventEmitter, CUSTOM_ELEMENTS_SCHEMA } from '@angular/core';
4
+ import { Component, Input, Output, EventEmitter, CUSTOM_ELEMENTS_SCHEMA, forwardRef } from '@angular/core';
5
5
  import { MatError, MatFormField } from "@angular/material/form-field";
6
6
  import { InfoItemComponent } from "../info-item/info-item.component";
7
7
  import { NgIf } from "@angular/common";
8
+ import { ControlValueAccessorDirective } from '../control-value-accessor.directive';
8
9
  import * as i0 from "@angular/core";
9
- import * as i1 from "../../../../services";
10
- export class InputTelephoneComponent {
11
- i18n;
12
- label;
13
- value;
10
+ export class InputTelephoneComponent extends ControlValueAccessorDirective {
14
11
  tooltip;
15
12
  floatLabel = 'auto';
16
13
  className = 'bordered-input';
17
- placeholder;
18
14
  showLabel = true;
19
- isReadOnly = false;
20
15
  matPrefix;
21
16
  iconPrefixName;
22
- matSuffix;
23
17
  iconSuffixName;
24
- required = true;
25
- disabled = false;
26
18
  field;
27
19
  name;
28
20
  controller = new FormControl();
@@ -30,17 +22,12 @@ export class InputTelephoneComponent {
30
22
  checkPhoneError = new EventEmitter();
31
23
  phoneValue = new EventEmitter();
32
24
  totalNumber = new EventEmitter();
33
- maxLength;
34
- minLength;
35
25
  countryCode = '966';
36
26
  showEdit = false;
37
27
  inputValue = new EventEmitter();
38
28
  emitedValue = new EventEmitter();
39
29
  telhasError;
40
30
  emitedError = new EventEmitter();
41
- constructor(i18n) {
42
- this.i18n = i18n;
43
- }
44
31
  onCountryChange(event) {
45
32
  this.countryCode = event.dialCode;
46
33
  // console.log(event)
@@ -105,8 +92,14 @@ export class InputTelephoneComponent {
105
92
  // console.log('xxxxxxxxxxxxxx',this.countryCode,data.target.value)
106
93
  this.inputValue.emit(data.target.value);
107
94
  }
108
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: InputTelephoneComponent, deps: [{ token: i1.CoreI18nService }], target: i0.ɵɵFactoryTarget.Component });
109
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.8", type: InputTelephoneComponent, isStandalone: true, selector: "app-input-telephone", inputs: { label: "label", value: "value", tooltip: "tooltip", floatLabel: "floatLabel", className: "className", placeholder: "placeholder", showLabel: "showLabel", isReadOnly: "isReadOnly", matPrefix: "matPrefix", iconPrefixName: "iconPrefixName", matSuffix: "matSuffix", iconSuffixName: "iconSuffixName", required: "required", disabled: "disabled", field: "field", name: "name", controller: "controller", error: "error", maxLength: "maxLength", minLength: "minLength", showEdit: "showEdit" }, outputs: { checkPhoneError: "checkPhoneError", phoneValue: "phoneValue", totalNumber: "totalNumber", inputValue: "inputValue", emitedValue: "emitedValue", emitedError: "emitedError" }, ngImport: i0, template: "<ng-container *ngIf=\"!isReadOnly\">\r\n <div class=\"d-flex justify-content-between mb-1\" *ngIf=\"showLabel\">\r\n <span class=\"form-label mb-0\">{{label}}</span>\r\n <span *ngIf=\"!required\" class=\"fs-11 fc-dark-gray\"> {{i18n.translate('Optional')}}\r\n </span>\r\n </div>\r\n <mat-form-field style=\"height: 50px;\" class=\"primary-form input-telephone {{className}}\" floatLabel=\"always\">\r\n <mat-label>\r\n {{label}}\r\n </mat-label>\r\n <label class=\"mat-form-content\">\r\n <!-- [placeholder]=\"label\" -->\r\n <!-- <input matInput [disabled]=\"disabled\" ng2TelInput numberOnly #phone\r\n [ng2TelInputOptions]=\"{initialCountry: 'sa', utilsScript: 'assets/js/utils.js'}\" (hasError)=\"hasError($event)\"\r\n (ng2TelOutput)=\"getNumber($event)\" (intlTelInputObject)=\"telInputObject($event)\"\r\n (countryChange)=\"onCountryChange($event)\" [(ngModel)]=\"field\" [name]=\"name\"\r\n oninput=\"this.value.replace(/[^0-9.]/g, ''); this.value = this.value.replace(/(\\..*)\\./g, '$1');\"\r\n [maxlength]=\"maxLength\" [minLength]=\"minLength\" />-->\r\n </label>\r\n\r\n </mat-form-field>\r\n <mat-error class=\"mb-2 fs-14\" *ngIf=\"controller?.errors?.['incorrect']\">\r\n {{error}}\r\n </mat-error>\r\n <!-- <mat-error *ngIf=\"controller?.errors?.incorrect\" class=\"fc-red1-imp\"> {{error}} </mat-error> -->\r\n\r\n\r\n <!-- <span *ngIf=\"telhasError\"> {{error}}</span> -->\r\n</ng-container>\r\n\r\n\r\n<ng-container *ngIf=\"isReadOnly\">\r\n <app-info-item class=\"info-item w-100\" [type]=\"'telephone'\" [label]=\"label\"\r\n [value]=\"field\"></app-info-item>\r\n</ng-container>\r\n", styles: ["[dir=rtl] :host .mat-input-element{direction:ltr;text-align:right}\n"], dependencies: [{ kind: "component", type: MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "component", type: InfoItemComponent, selector: "app-info-item", inputs: ["label", "value", "name", "type", "dateType", "multiple", "insideTable", "hasLabel", "arrayList", "actionType", "download"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
95
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: InputTelephoneComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
96
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.8", type: InputTelephoneComponent, isStandalone: true, selector: "app-input-telephone", inputs: { tooltip: "tooltip", floatLabel: "floatLabel", className: "className", showLabel: "showLabel", matPrefix: "matPrefix", iconPrefixName: "iconPrefixName", iconSuffixName: "iconSuffixName", field: "field", name: "name", controller: "controller", error: "error", showEdit: "showEdit" }, outputs: { checkPhoneError: "checkPhoneError", phoneValue: "phoneValue", totalNumber: "totalNumber", inputValue: "inputValue", emitedValue: "emitedValue", emitedError: "emitedError" }, providers: [
97
+ {
98
+ provide: NG_VALUE_ACCESSOR,
99
+ useExisting: forwardRef(() => InputTelephoneComponent),
100
+ multi: true,
101
+ },
102
+ ], usesInheritance: true, ngImport: i0, template: "<ng-container *ngIf=\"!isReadOnly\">\r\n <div class=\"d-flex justify-content-between mb-1\" *ngIf=\"showLabel\">\r\n <span class=\"form-label mb-0\">{{label}}</span>\r\n <span *ngIf=\"!required\" class=\"fs-11 fc-dark-gray\"> {{i18n.translate('Optional')}}\r\n </span>\r\n </div>\r\n <mat-form-field style=\"height: 50px;\" class=\"primary-form input-telephone {{className}}\" floatLabel=\"always\">\r\n <mat-label>\r\n {{label}}\r\n </mat-label>\r\n <label class=\"mat-form-content\">\r\n <!-- [placeholder]=\"label\" -->\r\n <!-- <input matInput [disabled]=\"disabled\" ng2TelInput numberOnly #phone\r\n [ng2TelInputOptions]=\"{initialCountry: 'sa', utilsScript: 'assets/js/utils.js'}\" (hasError)=\"hasError($event)\"\r\n (ng2TelOutput)=\"getNumber($event)\" (intlTelInputObject)=\"telInputObject($event)\"\r\n (countryChange)=\"onCountryChange($event)\" [(ngModel)]=\"field\" [name]=\"name\"\r\n oninput=\"this.value.replace(/[^0-9.]/g, ''); this.value = this.value.replace(/(\\..*)\\./g, '$1');\"\r\n [maxlength]=\"maxLength\" [minLength]=\"minLength\" />-->\r\n </label>\r\n\r\n </mat-form-field>\r\n <mat-error class=\"mb-2 fs-14\" *ngIf=\"controller?.errors?.['incorrect']\">\r\n {{error}}\r\n </mat-error>\r\n <!-- <mat-error *ngIf=\"controller?.errors?.incorrect\" class=\"fc-red1-imp\"> {{error}} </mat-error> -->\r\n\r\n\r\n <!-- <span *ngIf=\"telhasError\"> {{error}}</span> -->\r\n</ng-container>\r\n\r\n\r\n<ng-container *ngIf=\"isReadOnly\">\r\n <app-info-item class=\"info-item w-100\" [type]=\"'telephone'\" [label]=\"label\"\r\n [value]=\"field\"></app-info-item>\r\n</ng-container>\r\n", styles: ["[dir=rtl] :host .mat-input-element{direction:ltr;text-align:right}\n"], dependencies: [{ kind: "component", type: MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "component", type: InfoItemComponent, selector: "app-info-item", inputs: ["label", "value", "name", "type", "dateType", "multiple", "insideTable", "hasLabel", "arrayList", "actionType", "download"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
110
103
  }
111
104
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: InputTelephoneComponent, decorators: [{
112
105
  type: Component,
@@ -117,35 +110,27 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImpor
117
110
  FormsModule,
118
111
  NgIf,
119
112
  // Ng2TelInputModule
113
+ ], providers: [
114
+ {
115
+ provide: NG_VALUE_ACCESSOR,
116
+ useExisting: forwardRef(() => InputTelephoneComponent),
117
+ multi: true,
118
+ },
120
119
  ], template: "<ng-container *ngIf=\"!isReadOnly\">\r\n <div class=\"d-flex justify-content-between mb-1\" *ngIf=\"showLabel\">\r\n <span class=\"form-label mb-0\">{{label}}</span>\r\n <span *ngIf=\"!required\" class=\"fs-11 fc-dark-gray\"> {{i18n.translate('Optional')}}\r\n </span>\r\n </div>\r\n <mat-form-field style=\"height: 50px;\" class=\"primary-form input-telephone {{className}}\" floatLabel=\"always\">\r\n <mat-label>\r\n {{label}}\r\n </mat-label>\r\n <label class=\"mat-form-content\">\r\n <!-- [placeholder]=\"label\" -->\r\n <!-- <input matInput [disabled]=\"disabled\" ng2TelInput numberOnly #phone\r\n [ng2TelInputOptions]=\"{initialCountry: 'sa', utilsScript: 'assets/js/utils.js'}\" (hasError)=\"hasError($event)\"\r\n (ng2TelOutput)=\"getNumber($event)\" (intlTelInputObject)=\"telInputObject($event)\"\r\n (countryChange)=\"onCountryChange($event)\" [(ngModel)]=\"field\" [name]=\"name\"\r\n oninput=\"this.value.replace(/[^0-9.]/g, ''); this.value = this.value.replace(/(\\..*)\\./g, '$1');\"\r\n [maxlength]=\"maxLength\" [minLength]=\"minLength\" />-->\r\n </label>\r\n\r\n </mat-form-field>\r\n <mat-error class=\"mb-2 fs-14\" *ngIf=\"controller?.errors?.['incorrect']\">\r\n {{error}}\r\n </mat-error>\r\n <!-- <mat-error *ngIf=\"controller?.errors?.incorrect\" class=\"fc-red1-imp\"> {{error}} </mat-error> -->\r\n\r\n\r\n <!-- <span *ngIf=\"telhasError\"> {{error}}</span> -->\r\n</ng-container>\r\n\r\n\r\n<ng-container *ngIf=\"isReadOnly\">\r\n <app-info-item class=\"info-item w-100\" [type]=\"'telephone'\" [label]=\"label\"\r\n [value]=\"field\"></app-info-item>\r\n</ng-container>\r\n", styles: ["[dir=rtl] :host .mat-input-element{direction:ltr;text-align:right}\n"] }]
121
- }], ctorParameters: () => [{ type: i1.CoreI18nService }], propDecorators: { label: [{
122
- type: Input
123
- }], value: [{
124
- type: Input
125
- }], tooltip: [{
120
+ }], propDecorators: { tooltip: [{
126
121
  type: Input
127
122
  }], floatLabel: [{
128
123
  type: Input
129
124
  }], className: [{
130
125
  type: Input
131
- }], placeholder: [{
132
- type: Input
133
126
  }], showLabel: [{
134
127
  type: Input
135
- }], isReadOnly: [{
136
- type: Input
137
128
  }], matPrefix: [{
138
129
  type: Input
139
130
  }], iconPrefixName: [{
140
131
  type: Input
141
- }], matSuffix: [{
142
- type: Input
143
132
  }], iconSuffixName: [{
144
133
  type: Input
145
- }], required: [{
146
- type: Input
147
- }], disabled: [{
148
- type: Input
149
134
  }], field: [{
150
135
  type: Input
151
136
  }], name: [{
@@ -160,10 +145,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImpor
160
145
  type: Output
161
146
  }], totalNumber: [{
162
147
  type: Output
163
- }], maxLength: [{
164
- type: Input
165
- }], minLength: [{
166
- type: Input
167
148
  }], showEdit: [{
168
149
  type: Input
169
150
  }], inputValue: [{
@@ -173,4 +154,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImpor
173
154
  }], emitedError: [{
174
155
  type: Output
175
156
  }] } });
176
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQtdGVsZXBob25lLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2JwbS1jb3JlL3NyYy9saWIvY29tcG9uZW50cy9zaGFyZWQtY29tcG9uZW50cy9mb3JtLWZpZWxkL2lucHV0LXRlbGVwaG9uZS9pbnB1dC10ZWxlcGhvbmUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYnBtLWNvcmUvc3JjL2xpYi9jb21wb25lbnRzL3NoYXJlZC1jb21wb25lbnRzL2Zvcm0tZmllbGQvaW5wdXQtdGVsZXBob25lL2lucHV0LXRlbGVwaG9uZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsV0FBVyxFQUFFLFdBQVcsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQ3hELHVEQUF1RDtBQUN2RCx1REFBdUQ7QUFDdkQsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBRSxzQkFBc0IsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMvRixPQUFPLEVBQWlCLFFBQVEsRUFBRSxZQUFZLEVBQUMsTUFBTSw4QkFBOEIsQ0FBQztBQUdwRixPQUFPLEVBQUMsaUJBQWlCLEVBQUMsTUFBTSxrQ0FBa0MsQ0FBQztBQUNuRSxPQUFPLEVBQUMsSUFBSSxFQUFDLE1BQU0saUJBQWlCLENBQUM7OztBQWlCckMsTUFBTSxPQUFPLHVCQUF1QjtJQStCekI7SUE5QkEsS0FBSyxDQUFVO0lBQ2YsS0FBSyxDQUFVO0lBQ2YsT0FBTyxDQUFVO0lBQ2pCLFVBQVUsR0FBUSxNQUFNLENBQUM7SUFDekIsU0FBUyxHQUFHLGdCQUFnQixDQUFDO0lBQzdCLFdBQVcsQ0FBVTtJQUNyQixTQUFTLEdBQUcsSUFBSSxDQUFDO0lBQ2pCLFVBQVUsR0FBRyxLQUFLLENBQUM7SUFDbkIsU0FBUyxDQUFXO0lB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QUk7c0JBQVosS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFDSSxlQUFlO3NCQUF4QixNQUFNO2dCQUNHLFVBQVU7c0JBQW5CLE1BQU07Z0JBQ0csV0FBVztzQkFBcEIsTUFBTTtnQkFDRSxTQUFTO3NCQUFqQixLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBRUcsUUFBUTtzQkFBaEIsS0FBSztnQkFDSSxVQUFVO3NCQUFuQixNQUFNO2dCQUNHLFdBQVc7c0JBQXBCLE1BQU07Z0JBRUcsV0FBVztzQkFBcEIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Rm9ybUNvbnRyb2wsIEZvcm1zTW9kdWxlfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbi8qIGVzbGludC1kaXNhYmxlIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnkgKi9cclxuLyogZXNsaW50LWRpc2FibGUgQGFuZ3VsYXItZXNsaW50L2NvbXBvbmVudC1zZWxlY3RvciAqL1xyXG5pbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBPdXRwdXQsIEV2ZW50RW1pdHRlciwgQ1VTVE9NX0VMRU1FTlRTX1NDSEVNQSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQge0Zsb2F0TGFiZWxUeXBlLCBNYXRFcnJvciwgTWF0Rm9ybUZpZWxkfSBmcm9tIFwiQGFuZ3VsYXIvbWF0ZXJpYWwvZm9ybS1maWVsZFwiO1xyXG5pbXBvcnQgeyBDb3JlSTE4blNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi8uLi9zZXJ2aWNlcyc7XHJcbmltcG9ydCB7TmcyVGVsSW5wdXRNb2R1bGV9IGZyb20gXCJuZzItdGVsLWlucHV0XCI7XHJcbmltcG9ydCB7SW5mb0l0ZW1Db21wb25lbnR9IGZyb20gXCIuLi9pbmZvLWl0ZW0vaW5mby1pdGVtLmNvbXBvbmVudFwiO1xyXG5pbXBvcnQge05nSWZ9IGZyb20gXCJAYW5ndWxhci9jb21tb25cIjtcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnYXBwLWlucHV0LXRlbGVwaG9uZScsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2lucHV0LXRlbGVwaG9uZS5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vaW5wdXQtdGVsZXBob25lLmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgc2NoZW1hczogW0NVU1RPTV9FTEVNRU5UU19TQ0hFTUFdLFxyXG4gIHN0YW5kYWxvbmU6IHRydWUsXHJcbiAgaW1wb3J0czogW1xyXG4gICAgTWF0Rm9ybUZpZWxkLFxyXG4gICAgTWF0RXJyb3IsXHJcbiAgICBJbmZvSXRlbUNvbXBvbmVudCxcclxuICAgIEZvcm1zTW9kdWxlLFxyXG4gICAgTmdJZixcclxuICAgIC8vIE5nMlRlbElucHV0TW9kdWxlXHJcbiAgXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgSW5wdXRUZWxlcGhvbmVDb21wb25lbnQge1xyXG4gIEBJbnB1dCgpIGxhYmVsITogc3RyaW5nO1xyXG4gIEBJbnB1dCgpIHZhbHVlITogc3RyaW5nO1xyXG4gIEBJbnB1dCgpIHRvb2x0aXAhOiBzdHJpbmc7XHJcbiAgQElucHV0KCkgZmxvYXRMYWJlbDogYW55ID0gJ2F1dG8nO1xyXG4gIEBJbnB1dCgpIGNsYXNzTmFtZSA9ICdib3JkZXJlZC1pbnB1dCc7XHJcbiAgQElucHV0KCkgcGxhY2Vob2xkZXIhOiBzdHJpbmc7XHJcbiAgQElucHV0KCkgc2hvd0xhYmVsID0gdHJ1ZTtcclxuICBASW5wdXQoKSBpc1JlYWRPbmx5ID0gZmFsc2U7XHJcbiAgQElucHV0KCkgbWF0UHJlZml4ITogYm9vbGVhbjtcclxuICBASW5wdXQoKSBpY29uUHJlZml4TmFtZSE6IHN0cmluZztcclxuICBASW5wdXQoKSBtYXRTdWZmaXghOiBib29sZWFuO1xyXG4gIEBJbnB1dCgpIGljb25TdWZmaXhOYW1lITogc3RyaW5nO1xyXG4gIEBJbnB1dCgpIHJlcXVpcmVkID0gdHJ1ZTtcclxuICBASW5wdXQoKSBkaXNhYmxlZCA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIGZpZWxkOiBhbnk7XHJcbiAgQElucHV0KCkgbmFtZTogc3RyaW5nO1xyXG4gIEBJbnB1dCgpIGNvbnRyb2xsZXI6IEZvcm1Db250cm9sID0gbmV3IEZvcm1Db250cm9sKCk7XHJcbiAgQElucHV0KCkgZXJyb3IhOiBzdHJpbmc7XHJcbiAgQE91dHB1dCgpIGNoZWNrUGhvbmVFcnJvciA9IG5ldyBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4oKTtcclxuICBAT3V0cHV0KCkgcGhvbmVWYWx1ZSA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPigpO1xyXG4gIEBPdXRwdXQoKSB0b3RhbE51bWJlciA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPigpO1xyXG4gIEBJbnB1dCgpIG1heExlbmd0aDogYW55O1xyXG4gIEBJbnB1dCgpIG1pbkxlbmd0aDogYW55O1xyXG4gIGNvdW50cnlDb2RlID0gJzk2Nic7XHJcbiAgQElucHV0KCkgc2hvd0VkaXQgPSBmYWxzZTtcclxuICBAT3V0cHV0KCkgaW5wdXRWYWx1ZSA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICBAT3V0cHV0KCkgZW1pdGVkVmFsdWUgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgdGVsaGFzRXJyb3I6IGJvb2xlYW47XHJcbiAgQE91dHB1dCgpIGVtaXRlZEVycm9yID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHVibGljIGkxOG46IENvcmVJMThuU2VydmljZVxyXG4gICkgeyB9XHJcblxyXG5cclxuXHJcbiAgb25Db3VudHJ5Q2hhbmdlKGV2ZW50OiBhbnkpIHtcclxuICAgIHRoaXMuY291bnRyeUNvZGUgPSBldmVudC5kaWFsQ29kZVxyXG4gICAgLy8gY29uc29sZS5sb2coZXZlbnQpXHJcbiAgfVxyXG5cclxuICBoYXNFcnJvcihldmVudDogYm9vbGVhbikge1xyXG4gICAgY29uc29sZS5sb2coZXZlbnQpO1xyXG4gICAgdGhpcy50ZWxoYXNFcnJvciA9ICFldmVudFxyXG4gICAgaWYgKHRoaXMudGVsaGFzRXJyb3IpIHtcclxuICAgICAgdGhpcy5lbWl0ZWRFcnJvci5lbWl0KHRoaXMudGVsaGFzRXJyb3IpXHJcblxyXG4gICAgICBjb25zb2xlLmxvZyhcIiBlcnJvclwiLCB0aGlzLmVycm9yKTtcclxuICAgICAgdGhpcy5jb250cm9sbGVyLnNldEVycm9ycyh7ICdpbmNvcnJlY3QnOiB0cnVlIH0pO1xyXG4gICAgICB0aGlzLmVycm9yID0gdGhpcy5pMThuLnRyYW5zbGF0ZSgnbWVzc2FnZUVycm9yUGhvbmVOdW1iZXInKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuY29udHJvbGxlci5zZXRFcnJvcnMoeyAnaW5jb3JyZWN0JzogZmFsc2UgfSk7XHJcbiAgICB9XHJcbiAgICB0aGlzLmVtaXRlZFZhbHVlLmVtaXQoXHJcbiAgICAgIHtcclxuICAgICAgICBmaWVsZDp0aGlzLmZpZWxkLFxyXG4gICAgICAgIGhhc0Vycm9yOnRoaXMudGVsaGFzRXJyb3JcclxuICAgICAgfVxyXG4gICAgIClcclxuXHJcbiAgICAvLyB0aGlzLmNoZWNrUGhvbmVFcnJvci5lbWl0KGV2ZW50KTtcclxuXHJcbiAgICAvLyBpZiAodGhpcy5jb250cm9sbGVyLnZhbHVlICE9IG51bGwpIHtcclxuICAgIC8vICAgaWYgKGV2ZW50ID09IGZhbHNlICYmIHRoaXMuY29udHJvbGxlci52YWx1ZS5sZW5ndGggPCAwKSB7XHJcbiAgICAvLyAgICAgLy8gdGhpcy5waG9uZUhhc0VyclJlcWl1cmVkID0gdHJ1ZTtcclxuICAgIC8vICAgICAvLyB0aGlzLnBob25lSGFzRXJyVmFsaWQgPSBmYWxzZTtcclxuXHJcbiAgICAvLyAgICAgdGhpcy5lcnJvciA9IHRoaXMudHJhbnNsYXRlLnRyYW5zbGF0ZSgnbWVzc2FnZUVycm9yUGhvbmVOdW1iZXInKTtcclxuXHJcbiAgICAvLyAgIH0gZWxzZSB7XHJcbiAgICAvLyAgICAgaWYgKGV2ZW50ID09IGZhbHNlKSB7XHJcbiAgICAvLyAgICAgICBpZiAodGhpcy5jb250cm9sbGVyLnZhbHVlLmxlbmd0aCA9PSAwKSB7XHJcbiAgICAvLyAgICAgICAgIHRoaXMuZXJyb3IgPSB0aGlzLnRyYW5zbGF0ZS50cmFuc2xhdGUoJ21lc3NhZ2VFcnJvclBob25lTnVtYmVyJyk7XHJcbiAgICAvLyAgICAgICB9IGVsc2Uge1xyXG4gICAgLy8gICAgICAgICB0aGlzLmVycm9yID0gdGhpcy50cmFuc2xhdGUudHJhbnNsYXRlKCdtZXNzYWdlRXJyb3JQaG9uZU51bWJlcicpO1xyXG4gICAgLy8gICAgICAgfVxyXG4gICAgLy8gICAgIH0gZWxzZSB7XHJcbiAgICAvLyAgICAgICBpZiAodGhpcy5jb250cm9sbGVyLnZhbHVlLmxlbmd0aCA9PSAwKSB7XHJcbiAgICAvLyAgICAgICAgIHRoaXMuZXJyb3IgPSB0aGlzLnRyYW5zbGF0ZS50cmFuc2xhdGUoJ21lc3NhZ2VFcnJvclBob25lTnVtYmVyJyk7XHJcbiAgICAvLyAgICAgICB9IGVsc2Uge1xyXG4gICAgLy8gICAgICAgICB0aGlzLmVycm9yID0gJyc7XHJcbiAgICAvLyAgICAgICB9XHJcbiAgICAvLyAgICAgfVxyXG4gICAgLy8gICB9XHJcbiAgICAvLyB9IGVsc2Uge1xyXG4gICAgLy8gICB0aGlzLmVycm9yID0gdGhpcy50cmFuc2xhdGUudHJhbnNsYXRlKCdtZXNzYWdlRXJyb3JQaG9uZU51bWJlcicpO1xyXG4gICAgLy8gfVxyXG4gICAgLy8gLy8gY29uc29sZS5sb2coXCIgdGhpcy5lcnJvclwiLCB0aGlzLmVycm9yKTtcclxuICB9XHJcblxyXG4gIGdldE51bWJlcihldmVudDogYW55KSB7XHJcbiAgICBjb25zb2xlLmxvZygnc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3NzJylcclxuICAgIHRoaXMucGhvbmVWYWx1ZS5lbWl0KHRoaXMuY291bnRyeUNvZGUpXHJcbiAgICB0aGlzLnRvdGFsTnVtYmVyLmVtaXQoZXZlbnQpXHJcbiAgIC8vIHRoaXMuZW1pdGVkVmFsdWUuZW1pdCh0aGlzLmZpZWxkKVxyXG4gICAgdGhpcy5lbWl0ZWRFcnJvci5lbWl0KHRoaXMudGVsaGFzRXJyb3IpXHJcbiAgfVxyXG5cclxuICB0ZWxJbnB1dE9iamVjdCgkZXZlbnQ6IGFueSkge1xyXG4gICAgY29uc29sZS5sb2coZXZlbnQpXHJcbiAgfVxyXG5cclxuICBlZGl0Q2xpY2tlZCgpIHtcclxuICAgIGNvbnNvbGUubG9nKCd4eHh4eHh4eHh4eHh4eCcpXHJcbiAgICAvLyB0aGlzLmVkaXRQaG9uZS5lbWl0KClcclxuICB9XHJcblxyXG4gIG9uVmFsdWVDaGFuZ2UoZGF0YTogYW55KSB7XHJcbiAgICAvLyBjb25zb2xlLmxvZygneHh4eHh4eHh4eHh4eHgnLHRoaXMuY291bnRyeUNvZGUsZGF0YS50YXJnZXQudmFsdWUpXHJcbiAgICB0aGlzLmlucHV0VmFsdWUuZW1pdChkYXRhLnRhcmdldC52YWx1ZSlcclxuICB9XHJcblxyXG59XHJcbiIsIjxuZy1jb250YWluZXIgKm5nSWY9XCIhaXNSZWFkT25seVwiPlxyXG4gIDxkaXYgY2xhc3M9XCJkLWZsZXgganVzdGlmeS1jb250ZW50LWJldHdlZW4gbWItMVwiICpuZ0lmPVwic2hvd0xhYmVsXCI+XHJcbiAgICA8c3BhbiBjbGFzcz1cImZvcm0tbGFiZWwgbWItMFwiPnt7bGFiZWx9fTwvc3Bhbj5cclxuICAgIDxzcGFuICpuZ0lmPVwiIXJlcXVpcmVkXCIgY2xhc3M9XCJmcy0xMSBmYy1kYXJrLWdyYXlcIj4ge3tpMThuLnRyYW5zbGF0ZSgnT3B0aW9uYWwnKX19XHJcbiAgICA8L3NwYW4+XHJcbiAgPC9kaXY+XHJcbiAgPG1hdC1mb3JtLWZpZWxkIHN0eWxlPVwiaGVpZ2h0OiA1MHB4O1wiIGNsYXNzPVwicHJpbWFyeS1mb3JtIGlucHV0LXRlbGVwaG9uZSB7e2NsYXNzTmFtZX19XCIgZmxvYXRMYWJlbD1cImFsd2F5c1wiPlxyXG4gICAgPG1hdC1sYWJlbD5cclxuICAgICAge3tsYWJlbH19XHJcbiAgICA8L21hdC1sYWJlbD5cclxuICAgIDxsYWJlbCBjbGFzcz1cIm1hdC1mb3JtLWNvbnRlbnRcIj5cclxuICAgICAgPCEtLSBbcGxhY2Vob2xkZXJdPVwibGFiZWxcIiAtLT5cclxuICAgIDwhLS0gIDxpbnB1dCBtYXRJbnB1dCBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIiBuZzJUZWxJbnB1dCBudW1iZXJPbmx5ICNwaG9uZVxyXG4gICAgICAgIFtuZzJUZWxJbnB1dE9wdGlvbnNdPVwie2luaXRpYWxDb3VudHJ5OiAnc2EnLCB1dGlsc1NjcmlwdDogJ2Fzc2V0cy9qcy91dGlscy5qcyd9XCIgKGhhc0Vycm9yKT1cImhhc0Vycm9yKCRldmVudClcIlxyXG4gICAgICAgIChuZzJUZWxPdXRwdXQpPVwiZ2V0TnVtYmVyKCRldmVudClcIiAoaW50bFRlbElucHV0T2JqZWN0KT1cInRlbElucHV0T2JqZWN0KCRldmVudClcIlxyXG4gICAgICAgIChjb3VudHJ5Q2hhbmdlKT1cIm9uQ291bnRyeUNoYW5nZSgkZXZlbnQpXCIgWyhuZ01vZGVsKV09XCJmaWVsZFwiIFtuYW1lXT1cIm5hbWVcIlxyXG4gICAgICAgIG9uaW5wdXQ9XCJ0aGlzLnZhbHVlLnJlcGxhY2UoL1teMC05Ll0vZywgJycpOyB0aGlzLnZhbHVlID0gdGhpcy52YWx1ZS5yZXBsYWNlKC8oXFwuLiopXFwuL2csICckMScpO1wiXHJcbiAgICAgICAgW21heGxlbmd0aF09XCJtYXhMZW5ndGhcIiBbbWluTGVuZ3RoXT1cIm1pbkxlbmd0aFwiIC8+LS0+XHJcbiAgICAgIDwvbGFiZWw+XHJcblxyXG4gICAgPC9tYXQtZm9ybS1maWVsZD5cclxuICAgIDxtYXQtZXJyb3IgY2xhc3M9XCJtYi0yIGZzLTE0XCIgKm5nSWY9XCJjb250cm9sbGVyPy5lcnJvcnM/LlsnaW5jb3JyZWN0J11cIj5cclxuICAgICAge3tlcnJvcn19XHJcbiAgICA8L21hdC1lcnJvcj5cclxuICAgIDwhLS0gPG1hdC1lcnJvciAqbmdJZj1cImNvbnRyb2xsZXI/LmVycm9ycz8uaW5jb3JyZWN0XCIgY2xhc3M9XCJmYy1yZWQxLWltcFwiPiB7e2Vycm9yfX0gPC9tYXQtZXJyb3I+IC0tPlxyXG5cclxuXHJcbiAgICA8IS0tIDxzcGFuICAqbmdJZj1cInRlbGhhc0Vycm9yXCI+IHt7ZXJyb3J9fTwvc3Bhbj4gLS0+XHJcbjwvbmctY29udGFpbmVyPlxyXG5cclxuXHJcbjxuZy1jb250YWluZXIgKm5nSWY9XCJpc1JlYWRPbmx5XCI+XHJcbiAgPGFwcC1pbmZvLWl0ZW0gY2xhc3M9XCJpbmZvLWl0ZW0gdy0xMDBcIiAgW3R5cGVdPVwiJ3RlbGVwaG9uZSdcIiBbbGFiZWxdPVwibGFiZWxcIlxyXG4gICAgW3ZhbHVlXT1cImZpZWxkXCI+PC9hcHAtaW5mby1pdGVtPlxyXG48L25nLWNvbnRhaW5lcj5cclxuIl19
157
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQtdGVsZXBob25lLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2JwbS1jb3JlL3NyYy9saWIvY29tcG9uZW50cy9zaGFyZWQtY29tcG9uZW50cy9mb3JtLWZpZWxkL2lucHV0LXRlbGVwaG9uZS9pbnB1dC10ZWxlcGhvbmUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYnBtLWNvcmUvc3JjL2xpYi9jb21wb25lbnRzL3NoYXJlZC1jb21wb25lbnRzL2Zvcm0tZmllbGQvaW5wdXQtdGVsZXBob25lL2lucHV0LXRlbGVwaG9uZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsV0FBVyxFQUFFLFdBQVcsRUFBRSxpQkFBaUIsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQzNFLHVEQUF1RDtBQUN2RCx1REFBdUQ7QUFDdkQsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBRSxzQkFBc0IsRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0csT0FBTyxFQUFpQixRQUFRLEVBQUUsWUFBWSxFQUFDLE1BQU0sOEJBQThCLENBQUM7QUFHcEYsT0FBTyxFQUFDLGlCQUFpQixFQUFDLE1BQU0sa0NBQWtDLENBQUM7QUFDbkUsT0FBTyxFQUFDLElBQUksRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBQ3JDLE9BQU8sRUFBRSw2QkFBNkIsRUFBRSxNQUFNLHFDQUFxQyxDQUFDOztBQXdCcEYsTUFBTSxPQUFPLHVCQUE4QixTQUFRLDZCQUFtQztJQUMzRSxPQUFPLENBQVU7SUFDakIsVUFBVSxHQUFRLE1BQU0sQ0FBQztJQUN6QixTQUFTLEdBQUcsZ0JBQWdCLENBQUM7SUFDN0IsU0FBUyxHQUFHLElBQUksQ0FBQztJQUNqQixTQUFTLENBQVc7SUFD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QixNQUFNO2dCQUNHLFVBQVU7c0JBQW5CLE1BQU07Z0JBQ0csV0FBVztzQkFBcEIsTUFBTTtnQkFFRSxRQUFRO3NCQUFoQixLQUFLO2dCQUNJLFVBQVU7c0JBQW5CLE1BQU07Z0JBQ0csV0FBVztzQkFBcEIsTUFBTTtnQkFFRyxXQUFXO3NCQUFwQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtGb3JtQ29udHJvbCwgRm9ybXNNb2R1bGUsIE5HX1ZBTFVFX0FDQ0VTU09SfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbi8qIGVzbGludC1kaXNhYmxlIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnkgKi9cclxuLyogZXNsaW50LWRpc2FibGUgQGFuZ3VsYXItZXNsaW50L2NvbXBvbmVudC1zZWxlY3RvciAqL1xyXG5pbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBPdXRwdXQsIEV2ZW50RW1pdHRlciwgQ1VTVE9NX0VMRU1FTlRTX1NDSEVNQSwgZm9yd2FyZFJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQge0Zsb2F0TGFiZWxUeXBlLCBNYXRFcnJvciwgTWF0Rm9ybUZpZWxkfSBmcm9tIFwiQGFuZ3VsYXIvbWF0ZXJpYWwvZm9ybS1maWVsZFwiO1xyXG5pbXBvcnQgeyBDb3JlSTE4blNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi8uLi9zZXJ2aWNlcyc7XHJcbmltcG9ydCB7TmcyVGVsSW5wdXRNb2R1bGV9IGZyb20gXCJuZzItdGVsLWlucHV0XCI7XHJcbmltcG9ydCB7SW5mb0l0ZW1Db21wb25lbnR9IGZyb20gXCIuLi9pbmZvLWl0ZW0vaW5mby1pdGVtLmNvbXBvbmVudFwiO1xyXG5pbXBvcnQge05nSWZ9IGZyb20gXCJAYW5ndWxhci9jb21tb25cIjtcclxuaW1wb3J0IHsgQ29udHJvbFZhbHVlQWNjZXNzb3JEaXJlY3RpdmUgfSBmcm9tICcuLi9jb250cm9sLXZhbHVlLWFjY2Vzc29yLmRpcmVjdGl2ZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2FwcC1pbnB1dC10ZWxlcGhvbmUnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9pbnB1dC10ZWxlcGhvbmUuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2lucHV0LXRlbGVwaG9uZS5jb21wb25lbnQuc2NzcyddLFxyXG4gIHNjaGVtYXM6IFtDVVNUT01fRUxFTUVOVFNfU0NIRU1BXSxcclxuICBzdGFuZGFsb25lOiB0cnVlLFxyXG4gIGltcG9ydHM6IFtcclxuICAgIE1hdEZvcm1GaWVsZCxcclxuICAgIE1hdEVycm9yLFxyXG4gICAgSW5mb0l0ZW1Db21wb25lbnQsXHJcbiAgICBGb3Jtc01vZHVsZSxcclxuICAgIE5nSWYsXHJcbiAgICAvLyBOZzJUZWxJbnB1dE1vZHVsZVxyXG4gIF0sXHJcbiAgcHJvdmlkZXJzOiBbXHJcbiAgICB7XHJcbiAgICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxyXG4gICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBJbnB1dFRlbGVwaG9uZUNvbXBvbmVudCksXHJcbiAgICAgIG11bHRpOiB0cnVlLFxyXG4gICAgfSxcclxuICBdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBJbnB1dFRlbGVwaG9uZUNvbXBvbmVudDxUeXBlPiBleHRlbmRzIENvbnRyb2xWYWx1ZUFjY2Vzc29yRGlyZWN0aXZlPFR5cGU+IHtcclxuICBASW5wdXQoKSB0b29sdGlwITogc3RyaW5nO1xyXG4gIEBJbnB1dCgpIGZsb2F0TGFiZWw6IGFueSA9ICdhdXRvJztcclxuICBASW5wdXQoKSBjbGFzc05hbWUgPSAnYm9yZGVyZWQtaW5wdXQnO1xyXG4gIEBJbnB1dCgpIHNob3dMYWJlbCA9IHRydWU7XHJcbiAgQElucHV0KCkgbWF0UHJlZml4ITogYm9vbGVhbjtcclxuICBASW5wdXQoKSBpY29uUHJlZml4TmFtZSE6IHN0cmluZztcclxuICBASW5wdXQoKSBpY29uU3VmZml4TmFtZSE6IHN0cmluZztcclxuICBASW5wdXQoKSBmaWVsZDogYW55O1xyXG4gIEBJbnB1dCgpIG5hbWU6IHN0cmluZztcclxuICBASW5wdXQoKSBjb250cm9sbGVyOiBGb3JtQ29udHJvbCA9IG5ldyBGb3JtQ29udHJvbCgpO1xyXG4gIEBJbnB1dCgpIGVycm9yITogc3RyaW5nO1xyXG4gIEBPdXRwdXQoKSBjaGVja1Bob25lRXJyb3IgPSBuZXcgRXZlbnRFbWl0dGVyPGJvb2xlYW4+KCk7XHJcbiAgQE91dHB1dCgpIHBob25lVmFsdWUgPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZz4oKTtcclxuICBAT3V0cHV0KCkgdG90YWxOdW1iZXIgPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZz4oKTtcclxuICBjb3VudHJ5Q29kZSA9ICc5NjYnO1xyXG4gIEBJbnB1dCgpIHNob3dFZGl0ID0gZmFsc2U7XHJcbiAgQE91dHB1dCgpIGlucHV0VmFsdWUgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgQE91dHB1dCgpIGVtaXRlZFZhbHVlID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gIHRlbGhhc0Vycm9yOiBib29sZWFuO1xyXG4gIEBPdXRwdXQoKSBlbWl0ZWRFcnJvciA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuXHJcblxyXG5cclxuICBvbkNvdW50cnlDaGFuZ2UoZXZlbnQ6IGFueSkge1xyXG4gICAgdGhpcy5jb3VudHJ5Q29kZSA9IGV2ZW50LmRpYWxDb2RlXHJcbiAgICAvLyBjb25zb2xlLmxvZyhldmVudClcclxuICB9XHJcblxyXG4gIGhhc0Vycm9yKGV2ZW50OiBib29sZWFuKSB7XHJcbiAgICBjb25zb2xlLmxvZyhldmVudCk7XHJcbiAgICB0aGlzLnRlbGhhc0Vycm9yID0gIWV2ZW50XHJcbiAgICBpZiAodGhpcy50ZWxoYXNFcnJvcikge1xyXG4gICAgICB0aGlzLmVtaXRlZEVycm9yLmVtaXQodGhpcy50ZWxoYXNFcnJvcilcclxuXHJcbiAgICAgIGNvbnNvbGUubG9nKFwiIGVycm9yXCIsIHRoaXMuZXJyb3IpO1xyXG4gICAgICB0aGlzLmNvbnRyb2xsZXIuc2V0RXJyb3JzKHsgJ2luY29ycmVjdCc6IHRydWUgfSk7XHJcbiAgICAgIHRoaXMuZXJyb3IgPSB0aGlzLmkxOG4udHJhbnNsYXRlKCdtZXNzYWdlRXJyb3JQaG9uZU51bWJlcicpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5jb250cm9sbGVyLnNldEVycm9ycyh7ICdpbmNvcnJlY3QnOiBmYWxzZSB9KTtcclxuICAgIH1cclxuICAgIHRoaXMuZW1pdGVkVmFsdWUuZW1pdChcclxuICAgICAge1xyXG4gICAgICAgIGZpZWxkOnRoaXMuZmllbGQsXHJcbiAgICAgICAgaGFzRXJyb3I6dGhpcy50ZWxoYXNFcnJvclxyXG4gICAgICB9XHJcbiAgICAgKVxyXG5cclxuICAgIC8vIHRoaXMuY2hlY2tQaG9uZUVycm9yLmVtaXQoZXZlbnQpO1xyXG5cclxuICAgIC8vIGlmICh0aGlzLmNvbnRyb2xsZXIudmFsdWUgIT0gbnVsbCkge1xyXG4gICAgLy8gICBpZiAoZXZlbnQgPT0gZmFsc2UgJiYgdGhpcy5jb250cm9sbGVyLnZhbHVlLmxlbmd0aCA8IDApIHtcclxuICAgIC8vICAgICAvLyB0aGlzLnBob25lSGFzRXJyUmVxaXVyZWQgPSB0cnVlO1xyXG4gICAgLy8gICAgIC8vIHRoaXMucGhvbmVIYXNFcnJWYWxpZCA9IGZhbHNlO1xyXG5cclxuICAgIC8vICAgICB0aGlzLmVycm9yID0gdGhpcy50cmFuc2xhdGUudHJhbnNsYXRlKCdtZXNzYWdlRXJyb3JQaG9uZU51bWJlcicpO1xyXG5cclxuICAgIC8vICAgfSBlbHNlIHtcclxuICAgIC8vICAgICBpZiAoZXZlbnQgPT0gZmFsc2UpIHtcclxuICAgIC8vICAgICAgIGlmICh0aGlzLmNvbnRyb2xsZXIudmFsdWUubGVuZ3RoID09IDApIHtcclxuICAgIC8vICAgICAgICAgdGhpcy5lcnJvciA9IHRoaXMudHJhbnNsYXRlLnRyYW5zbGF0ZSgnbWVzc2FnZUVycm9yUGhvbmVOdW1iZXInKTtcclxuICAgIC8vICAgICAgIH0gZWxzZSB7XHJcbiAgICAvLyAgICAgICAgIHRoaXMuZXJyb3IgPSB0aGlzLnRyYW5zbGF0ZS50cmFuc2xhdGUoJ21lc3NhZ2VFcnJvclBob25lTnVtYmVyJyk7XHJcbiAgICAvLyAgICAgICB9XHJcbiAgICAvLyAgICAgfSBlbHNlIHtcclxuICAgIC8vICAgICAgIGlmICh0aGlzLmNvbnRyb2xsZXIudmFsdWUubGVuZ3RoID09IDApIHtcclxuICAgIC8vICAgICAgICAgdGhpcy5lcnJvciA9IHRoaXMudHJhbnNsYXRlLnRyYW5zbGF0ZSgnbWVzc2FnZUVycm9yUGhvbmVOdW1iZXInKTtcclxuICAgIC8vICAgICAgIH0gZWxzZSB7XHJcbiAgICAvLyAgICAgICAgIHRoaXMuZXJyb3IgPSAnJztcclxuICAgIC8vICAgICAgIH1cclxuICAgIC8vICAgICB9XHJcbiAgICAvLyAgIH1cclxuICAgIC8vIH0gZWxzZSB7XHJcbiAgICAvLyAgIHRoaXMuZXJyb3IgPSB0aGlzLnRyYW5zbGF0ZS50cmFuc2xhdGUoJ21lc3NhZ2VFcnJvclBob25lTnVtYmVyJyk7XHJcbiAgICAvLyB9XHJcbiAgICAvLyAvLyBjb25zb2xlLmxvZyhcIiB0aGlzLmVycm9yXCIsIHRoaXMuZXJyb3IpO1xyXG4gIH1cclxuXHJcbiAgZ2V0TnVtYmVyKGV2ZW50OiBhbnkpIHtcclxuICAgIGNvbnNvbGUubG9nKCdzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3MnKVxyXG4gICAgdGhpcy5waG9uZVZhbHVlLmVtaXQodGhpcy5jb3VudHJ5Q29kZSlcclxuICAgIHRoaXMudG90YWxOdW1iZXIuZW1pdChldmVudClcclxuICAgLy8gdGhpcy5lbWl0ZWRWYWx1ZS5lbWl0KHRoaXMuZmllbGQpXHJcbiAgICB0aGlzLmVtaXRlZEVycm9yLmVtaXQodGhpcy50ZWxoYXNFcnJvcilcclxuICB9XHJcblxyXG4gIHRlbElucHV0T2JqZWN0KCRldmVudDogYW55KSB7XHJcbiAgICBjb25zb2xlLmxvZyhldmVudClcclxuICB9XHJcblxyXG4gIGVkaXRDbGlja2VkKCkge1xyXG4gICAgY29uc29sZS5sb2coJ3h4eHh4eHh4eHh4eHh4JylcclxuICAgIC8vIHRoaXMuZWRpdFBob25lLmVtaXQoKVxyXG4gIH1cclxuXHJcbiAgb25WYWx1ZUNoYW5nZShkYXRhOiBhbnkpIHtcclxuICAgIC8vIGNvbnNvbGUubG9nKCd4eHh4eHh4eHh4eHh4eCcsdGhpcy5jb3VudHJ5Q29kZSxkYXRhLnRhcmdldC52YWx1ZSlcclxuICAgIHRoaXMuaW5wdXRWYWx1ZS5lbWl0KGRhdGEudGFyZ2V0LnZhbHVlKVxyXG4gIH1cclxuXHJcbn1cclxuIiwiPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFpc1JlYWRPbmx5XCI+XHJcbiAgPGRpdiBjbGFzcz1cImQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlbiBtYi0xXCIgKm5nSWY9XCJzaG93TGFiZWxcIj5cclxuICAgIDxzcGFuIGNsYXNzPVwiZm9ybS1sYWJlbCBtYi0wXCI+e3tsYWJlbH19PC9zcGFuPlxyXG4gICAgPHNwYW4gKm5nSWY9XCIhcmVxdWlyZWRcIiBjbGFzcz1cImZzLTExIGZjLWRhcmstZ3JheVwiPiB7e2kxOG4udHJhbnNsYXRlKCdPcHRpb25hbCcpfX1cclxuICAgIDwvc3Bhbj5cclxuICA8L2Rpdj5cclxuICA8bWF0LWZvcm0tZmllbGQgc3R5bGU9XCJoZWlnaHQ6IDUwcHg7XCIgY2xhc3M9XCJwcmltYXJ5LWZvcm0gaW5wdXQtdGVsZXBob25lIHt7Y2xhc3NOYW1lfX1cIiBmbG9hdExhYmVsPVwiYWx3YXlzXCI+XHJcbiAgICA8bWF0LWxhYmVsPlxyXG4gICAgICB7e2xhYmVsfX1cclxuICAgIDwvbWF0LWxhYmVsPlxyXG4gICAgPGxhYmVsIGNsYXNzPVwibWF0LWZvcm0tY29udGVudFwiPlxyXG4gICAgICA8IS0tIFtwbGFjZWhvbGRlcl09XCJsYWJlbFwiIC0tPlxyXG4gICAgPCEtLSAgPGlucHV0IG1hdElucHV0IFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiIG5nMlRlbElucHV0IG51bWJlck9ubHkgI3Bob25lXHJcbiAgICAgICAgW25nMlRlbElucHV0T3B0aW9uc109XCJ7aW5pdGlhbENvdW50cnk6ICdzYScsIHV0aWxzU2NyaXB0OiAnYXNzZXRzL2pzL3V0aWxzLmpzJ31cIiAoaGFzRXJyb3IpPVwiaGFzRXJyb3IoJGV2ZW50KVwiXHJcbiAgICAgICAgKG5nMlRlbE91dHB1dCk9XCJnZXROdW1iZXIoJGV2ZW50KVwiIChpbnRsVGVsSW5wdXRPYmplY3QpPVwidGVsSW5wdXRPYmplY3QoJGV2ZW50KVwiXHJcbiAgICAgICAgKGNvdW50cnlDaGFuZ2UpPVwib25Db3VudHJ5Q2hhbmdlKCRldmVudClcIiBbKG5nTW9kZWwpXT1cImZpZWxkXCIgW25hbWVdPVwibmFtZVwiXHJcbiAgICAgICAgb25pbnB1dD1cInRoaXMudmFsdWUucmVwbGFjZSgvW14wLTkuXS9nLCAnJyk7IHRoaXMudmFsdWUgPSB0aGlzLnZhbHVlLnJlcGxhY2UoLyhcXC4uKilcXC4vZywgJyQxJyk7XCJcclxuICAgICAgICBbbWF4bGVuZ3RoXT1cIm1heExlbmd0aFwiIFttaW5MZW5ndGhdPVwibWluTGVuZ3RoXCIgLz4tLT5cclxuICAgICAgPC9sYWJlbD5cclxuXHJcbiAgICA8L21hdC1mb3JtLWZpZWxkPlxyXG4gICAgPG1hdC1lcnJvciBjbGFzcz1cIm1iLTIgZnMtMTRcIiAqbmdJZj1cImNvbnRyb2xsZXI/LmVycm9ycz8uWydpbmNvcnJlY3QnXVwiPlxyXG4gICAgICB7e2Vycm9yfX1cclxuICAgIDwvbWF0LWVycm9yPlxyXG4gICAgPCEtLSA8bWF0LWVycm9yICpuZ0lmPVwiY29udHJvbGxlcj8uZXJyb3JzPy5pbmNvcnJlY3RcIiBjbGFzcz1cImZjLXJlZDEtaW1wXCI+IHt7ZXJyb3J9fSA8L21hdC1lcnJvcj4gLS0+XHJcblxyXG5cclxuICAgIDwhLS0gPHNwYW4gICpuZ0lmPVwidGVsaGFzRXJyb3JcIj4ge3tlcnJvcn19PC9zcGFuPiAtLT5cclxuPC9uZy1jb250YWluZXI+XHJcblxyXG5cclxuPG5nLWNvbnRhaW5lciAqbmdJZj1cImlzUmVhZE9ubHlcIj5cclxuICA8YXBwLWluZm8taXRlbSBjbGFzcz1cImluZm8taXRlbSB3LTEwMFwiICBbdHlwZV09XCIndGVsZXBob25lJ1wiIFtsYWJlbF09XCJsYWJlbFwiXHJcbiAgICBbdmFsdWVdPVwiZmllbGRcIj48L2FwcC1pbmZvLWl0ZW0+XHJcbjwvbmctY29udGFpbmVyPlxyXG4iXX0=
@@ -1,88 +1,56 @@
1
- import { ReactiveFormsModule, Validators } from '@angular/forms';
1
+ import { NG_VALUE_ACCESSOR, ReactiveFormsModule } from '@angular/forms';
2
2
  /* eslint-disable @angular-eslint/component-selector */
3
3
  /* eslint-disable @angular-eslint/use-lifecycle-interface */
4
- import { Component, CUSTOM_ELEMENTS_SCHEMA, Input } from '@angular/core';
5
- import { BaseComponent } from '../base-component/base-component.component';
4
+ import { Component, CUSTOM_ELEMENTS_SCHEMA, forwardRef, Input } from '@angular/core';
6
5
  import { MatFormField } from "@angular/material/form-field";
7
6
  import { NgClass, NgIf } from "@angular/common";
8
- import { InfoItemComponent } from "../info-item/info-item.component";
7
+ import { ControlValueAccessorDirective } from '../control-value-accessor.directive';
8
+ import { MatInput } from '@angular/material/input';
9
+ import { ValidationErrorsComponent } from '../validation-errors/validation-errors.component';
9
10
  import * as i0 from "@angular/core";
10
11
  import * as i1 from "@angular/forms";
11
- export class TextareaComponent extends BaseComponent {
12
- label;
13
- tooltip;
12
+ export class TextareaComponent extends ControlValueAccessorDirective {
14
13
  className;
15
14
  preventSpecailChar;
16
- textAreaFocus = false;
17
- ngOnChanges(changes) {
18
- if (changes?.['field'].currentValue == '' || changes?.['field'].currentValue == null) {
19
- this.controller.setValue('');
20
- }
21
- else {
22
- this.controller.setValue(changes['field'].currentValue);
23
- }
24
- if (changes?.['disabled']?.previousValue !== changes?.['disabled']?.currentValue) {
25
- if (this.disabled)
26
- this.controller.disable();
27
- else
28
- this.controller.enable();
29
- }
30
- }
31
- ngOnInit() {
32
- // this.resetPropagator.subscribe(this, this.resetData);
33
- this.field == undefined ? (this.field = '') : this.field;
34
- this.controller.setValue(this.field);
35
- if (this.minLength) {
36
- this.controller.setValidators([
37
- Validators.minLength(+this.minLength),
38
- ]);
39
- }
40
- if (this.maxLength) {
41
- this.controller.setValidators([
42
- Validators.maxLength(+this.maxLength),
43
- ]);
44
- }
45
- if (this.required) {
46
- this.controller.setValidators([Validators.required]);
47
- }
48
- }
49
15
  focusInFunction() {
50
- this.textAreaFocus = true;
51
16
  this.validateTextAreaBorder();
52
17
  }
53
18
  focusOutFunction() {
54
- this.textAreaFocus = false;
55
19
  this.validateTextAreaBorder();
56
20
  }
57
21
  validateTextAreaBorder() {
58
- return {
59
- "field-border-error": (this.field && this.field.length < this.minLength) || (this.field && this.field.length > this.maxLength),
60
- };
61
- }
62
- onValueChange(event) {
63
- const target = event.target;
64
- const data = target.value;
65
- this.emitedValue.emit(data.trim());
22
+ // return {
23
+ // "field-border-error": (this.field && this.field.length < this.minLength) || (this.field && this.field.length > this.maxLength),
24
+ // }
66
25
  }
67
26
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: TextareaComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
68
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.8", type: TextareaComponent, isStandalone: true, selector: "app-textarea", inputs: { label: "label", tooltip: "tooltip", className: "className", preventSpecailChar: "preventSpecailChar" }, usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<ng-container *ngIf=\"!isReadOnly\">\r\n <div class=\"d-flex justify-content-between mb-1\" *ngIf=\"hasLabel\">\r\n <span class=\"form-label mb-0\">{{ label }}</span>\r\n <span *ngIf=\"!required\" class=\"fs-11 fc-dark-gray\">\r\n <!-- {{'Optional'| transloco}} -->{{ i18n.translate('Optional') }}\r\n </span>\r\n </div>\r\n <mat-form-field class=\"custom-textarea bordered-input {{className}}\">\r\n <mat-label>{{ label }}</mat-label>\r\n <label class=\"mat-form-content\">\r\n\r\n <textarea *ngIf=\"type === 'arOnly'\" [placeholder]=\"placeholder\" [minlength]=\"minLength\" [maxlength]=\"maxLength\" min=\"minlength\" arOnly\r\n (input)=\"onValueChange($event)\" (focusout)=\"focusOutFunction()\" (focusin)=\"focusInFunction()\" max=\"maxValue\"\r\n [formControl]=\"controller\" matInput></textarea>\r\n\r\n <textarea *ngIf=\"type === 'enOnly'\" [placeholder]=\"placeholder\" [minlength]=\"minLength\" [maxlength]=\"maxLength\" min=\"minlength\" enOnly\r\n (input)=\"onValueChange($event)\" (focusout)=\"focusOutFunction()\" (focusin)=\"focusInFunction()\" max=\"maxValue\"\r\n [formControl]=\"controller\" matInput></textarea>\r\n\r\n <!-- <textarea *ngIf=\"preventSpecailChar\" [placeholder]=\"placeholder\" [minlength]=\"minLength\" [maxlength]=\"maxLength\" min=\"minlength\"\r\n specialIsAlphaNumeric\r\n (input)=\"onValueChange($event.target.value)\" (focusout)=\"focusOutFunction()\" (focusin)=\"focusInFunction()\" max=\"maxValue\"\r\n [formControl]=\"controller\" matInput></textarea>-->\r\n <!--&& !preventSpecailChar-->\r\n <textarea *ngIf=\"type !== 'enOnly' && type !== 'arOnly' \" [placeholder]=\"placeholder\" [minlength]=\"minLength\"\r\n [maxlength]=\"maxLength\" min=\"minlength\" specialIsAlphaNumeric\r\n (input)=\"onValueChange($event)\" (focusout)=\"focusOutFunction()\" (focusin)=\"focusInFunction()\" max=\"maxValue\"\r\n [formControl]=\"controller\" matInput></textarea>\r\n\r\n </label>\r\n <!-- [(ngModel)]=\"field\" [name]=\"name\" -->\r\n <mat-error *ngIf=\"field && field?.length < minLength\">{{ errorMessage }}</mat-error>\r\n <mat-error *ngIf=\"field && field?.length > maxLength\">{{ errorMessage }}</mat-error>\r\n <mat-error class=\"mb-2\" *ngIf=\"!field && (!controller?.valid)\">{{ i18n.translate('validFieldError') }}{{ label }}</mat-error>\r\n\r\n\r\n <mat-hint class=\"d-flex align-items-center gap-1 mt-1\" *ngIf=\"showHint\">\r\n <span class=\"sfi sfi-info fs-17 fc-dark-gray\" [ngClass]=\"{'fc-oasis-light-imp':value}\"></span>\r\n <span class=\"fs-12 fc-black line-height-1\">{{ hint }}</span>\r\n </mat-hint>\r\n\r\n\r\n </mat-form-field>\r\n</ng-container>\r\n\r\n<ng-container *ngIf=\"isReadOnly && (showIfEmpty || field)\">\r\n <app-info-item class=\"info-item w-100\" [insideTable]=\"insideTable\" [label]=\"label\" [value]=\"field\" [type]=\"type\"></app-info-item>\r\n</ng-container>\r\n", styles: [":host{flex-grow:1}:host ::ng-deep mat-form-field.custom-textarea .mat-form-field-flex{padding:var(--input-padding)}:host ::ng-deep table mat-form-field.custom-textarea .mat-form-field-flex{--input-height: 80px}\n"], dependencies: [{ kind: "component", type: MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.MinLengthValidator, selector: "[minlength][formControlName],[minlength][formControl],[minlength][ngModel]", inputs: ["minlength"] }, { kind: "directive", type: i1.MaxLengthValidator, selector: "[maxlength][formControlName],[maxlength][formControl],[maxlength][ngModel]", inputs: ["maxlength"] }, { kind: "directive", type: i1.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { 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"] }] });
27
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.8", type: TextareaComponent, isStandalone: true, selector: "app-textarea", inputs: { className: "className", preventSpecailChar: "preventSpecailChar" }, providers: [
28
+ {
29
+ provide: NG_VALUE_ACCESSOR,
30
+ useExisting: forwardRef(() => TextareaComponent),
31
+ multi: true,
32
+ },
33
+ ], usesInheritance: true, ngImport: i0, template: "@if(!isReadOnly){\r\n <ng-container>\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\">\r\n <!-- {{'Optional'| transloco}} -->{{ i18n.translate('Optional') }}\r\n </span>\r\n }\r\n </div>\r\n }\r\n <mat-form-field class=\"custom-textarea bordered-input {{className}}\">\r\n <mat-label>{{ label }}</mat-label>\r\n <label class=\"mat-form-content\">\r\n @if (type === 'arOnly'){\r\n <textarea [placeholder]=\"placeholder\" min=\"minlength\" arOnly\r\n (focusout)=\"focusOutFunction()\" (focusin)=\"focusInFunction()\" max=\"maxValue\"\r\n [formControl]=\"control\" matInput></textarea>\r\n }\r\n @if (type === 'enOnly'){\r\n <textarea [placeholder]=\"placeholder\" min=\"minlength\" enOnly\r\n (focusout)=\"focusOutFunction()\" (focusin)=\"focusInFunction()\" max=\"maxValue\"\r\n [formControl]=\"control\" matInput></textarea>\r\n }\r\n @if (type !== 'enOnly' && type !== 'arOnly' ){\r\n <textarea [placeholder]=\"placeholder\" \r\n [maxlength]=\"maxLength\" min=\"minlength\" specialIsAlphaNumeric\r\n (focusout)=\"focusOutFunction()\" (focusin)=\"focusInFunction()\" max=\"maxValue\"\r\n [formControl]=\"control\" matInput></textarea>\r\n }\r\n \r\n </label>\r\n @if (showHint){\r\n <mat-hint class=\"d-flex align-items-center gap-1 mt-1\">\r\n <span class=\"sfi sfi-info fs-17 fc-dark-gray\" [ngClass]=\"{'fc-oasis-light-imp':value}\"></span>\r\n <span class=\"fs-12 fc-black line-height-1\">{{ hint }}</span>\r\n </mat-hint>\r\n }\r\n \r\n </mat-form-field>\r\n <app-validation-errors [errors]=\"control.errors\"></app-validation-errors>\r\n \r\n </ng-container>\r\n}\r\n@if (isReadOnly && (showIfEmpty || control)){\r\n <ng-container>\r\n <app-info-item class=\"info-item w-100\" [insideTable]=\"insideTable\" [label]=\"label\" [value]=\"control\" [type]=\"type\"></app-info-item>\r\n </ng-container>\r\n}\r\n\r\n", styles: [":host{flex-grow:1}:host ::ng-deep mat-form-field.custom-textarea .mat-form-field-flex{padding:var(--input-padding)}:host ::ng-deep table mat-form-field.custom-textarea .mat-form-field-flex{--input-height: 80px}\n"], dependencies: [{ kind: "component", type: MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.MaxLengthValidator, selector: "[maxlength][formControlName],[maxlength][formControl],[maxlength][ngModel]", inputs: ["maxlength"] }, { 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: "component", type: ValidationErrorsComponent, selector: "app-validation-errors", inputs: ["errors", "customErrorMessages"] }] });
69
34
  }
70
35
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: TextareaComponent, decorators: [{
71
36
  type: Component,
72
37
  args: [{ selector: 'app-textarea', schemas: [CUSTOM_ELEMENTS_SCHEMA], imports: [
73
38
  MatFormField,
39
+ MatInput,
74
40
  ReactiveFormsModule,
75
41
  NgIf,
76
42
  NgClass,
77
- InfoItemComponent
78
- ], standalone: true, template: "<ng-container *ngIf=\"!isReadOnly\">\r\n <div class=\"d-flex justify-content-between mb-1\" *ngIf=\"hasLabel\">\r\n <span class=\"form-label mb-0\">{{ label }}</span>\r\n <span *ngIf=\"!required\" class=\"fs-11 fc-dark-gray\">\r\n <!-- {{'Optional'| transloco}} -->{{ i18n.translate('Optional') }}\r\n </span>\r\n </div>\r\n <mat-form-field class=\"custom-textarea bordered-input {{className}}\">\r\n <mat-label>{{ label }}</mat-label>\r\n <label class=\"mat-form-content\">\r\n\r\n <textarea *ngIf=\"type === 'arOnly'\" [placeholder]=\"placeholder\" [minlength]=\"minLength\" [maxlength]=\"maxLength\" min=\"minlength\" arOnly\r\n (input)=\"onValueChange($event)\" (focusout)=\"focusOutFunction()\" (focusin)=\"focusInFunction()\" max=\"maxValue\"\r\n [formControl]=\"controller\" matInput></textarea>\r\n\r\n <textarea *ngIf=\"type === 'enOnly'\" [placeholder]=\"placeholder\" [minlength]=\"minLength\" [maxlength]=\"maxLength\" min=\"minlength\" enOnly\r\n (input)=\"onValueChange($event)\" (focusout)=\"focusOutFunction()\" (focusin)=\"focusInFunction()\" max=\"maxValue\"\r\n [formControl]=\"controller\" matInput></textarea>\r\n\r\n <!-- <textarea *ngIf=\"preventSpecailChar\" [placeholder]=\"placeholder\" [minlength]=\"minLength\" [maxlength]=\"maxLength\" min=\"minlength\"\r\n specialIsAlphaNumeric\r\n (input)=\"onValueChange($event.target.value)\" (focusout)=\"focusOutFunction()\" (focusin)=\"focusInFunction()\" max=\"maxValue\"\r\n [formControl]=\"controller\" matInput></textarea>-->\r\n <!--&& !preventSpecailChar-->\r\n <textarea *ngIf=\"type !== 'enOnly' && type !== 'arOnly' \" [placeholder]=\"placeholder\" [minlength]=\"minLength\"\r\n [maxlength]=\"maxLength\" min=\"minlength\" specialIsAlphaNumeric\r\n (input)=\"onValueChange($event)\" (focusout)=\"focusOutFunction()\" (focusin)=\"focusInFunction()\" max=\"maxValue\"\r\n [formControl]=\"controller\" matInput></textarea>\r\n\r\n </label>\r\n <!-- [(ngModel)]=\"field\" [name]=\"name\" -->\r\n <mat-error *ngIf=\"field && field?.length < minLength\">{{ errorMessage }}</mat-error>\r\n <mat-error *ngIf=\"field && field?.length > maxLength\">{{ errorMessage }}</mat-error>\r\n <mat-error class=\"mb-2\" *ngIf=\"!field && (!controller?.valid)\">{{ i18n.translate('validFieldError') }}{{ label }}</mat-error>\r\n\r\n\r\n <mat-hint class=\"d-flex align-items-center gap-1 mt-1\" *ngIf=\"showHint\">\r\n <span class=\"sfi sfi-info fs-17 fc-dark-gray\" [ngClass]=\"{'fc-oasis-light-imp':value}\"></span>\r\n <span class=\"fs-12 fc-black line-height-1\">{{ hint }}</span>\r\n </mat-hint>\r\n\r\n\r\n </mat-form-field>\r\n</ng-container>\r\n\r\n<ng-container *ngIf=\"isReadOnly && (showIfEmpty || field)\">\r\n <app-info-item class=\"info-item w-100\" [insideTable]=\"insideTable\" [label]=\"label\" [value]=\"field\" [type]=\"type\"></app-info-item>\r\n</ng-container>\r\n", styles: [":host{flex-grow:1}:host ::ng-deep mat-form-field.custom-textarea .mat-form-field-flex{padding:var(--input-padding)}:host ::ng-deep table mat-form-field.custom-textarea .mat-form-field-flex{--input-height: 80px}\n"] }]
79
- }], propDecorators: { label: [{
80
- type: Input
81
- }], tooltip: [{
82
- type: Input
83
- }], className: [{
43
+ ValidationErrorsComponent
44
+ ], standalone: true, providers: [
45
+ {
46
+ provide: NG_VALUE_ACCESSOR,
47
+ useExisting: forwardRef(() => TextareaComponent),
48
+ multi: true,
49
+ },
50
+ ], template: "@if(!isReadOnly){\r\n <ng-container>\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\">\r\n <!-- {{'Optional'| transloco}} -->{{ i18n.translate('Optional') }}\r\n </span>\r\n }\r\n </div>\r\n }\r\n <mat-form-field class=\"custom-textarea bordered-input {{className}}\">\r\n <mat-label>{{ label }}</mat-label>\r\n <label class=\"mat-form-content\">\r\n @if (type === 'arOnly'){\r\n <textarea [placeholder]=\"placeholder\" min=\"minlength\" arOnly\r\n (focusout)=\"focusOutFunction()\" (focusin)=\"focusInFunction()\" max=\"maxValue\"\r\n [formControl]=\"control\" matInput></textarea>\r\n }\r\n @if (type === 'enOnly'){\r\n <textarea [placeholder]=\"placeholder\" min=\"minlength\" enOnly\r\n (focusout)=\"focusOutFunction()\" (focusin)=\"focusInFunction()\" max=\"maxValue\"\r\n [formControl]=\"control\" matInput></textarea>\r\n }\r\n @if (type !== 'enOnly' && type !== 'arOnly' ){\r\n <textarea [placeholder]=\"placeholder\" \r\n [maxlength]=\"maxLength\" min=\"minlength\" specialIsAlphaNumeric\r\n (focusout)=\"focusOutFunction()\" (focusin)=\"focusInFunction()\" max=\"maxValue\"\r\n [formControl]=\"control\" matInput></textarea>\r\n }\r\n \r\n </label>\r\n @if (showHint){\r\n <mat-hint class=\"d-flex align-items-center gap-1 mt-1\">\r\n <span class=\"sfi sfi-info fs-17 fc-dark-gray\" [ngClass]=\"{'fc-oasis-light-imp':value}\"></span>\r\n <span class=\"fs-12 fc-black line-height-1\">{{ hint }}</span>\r\n </mat-hint>\r\n }\r\n \r\n </mat-form-field>\r\n <app-validation-errors [errors]=\"control.errors\"></app-validation-errors>\r\n \r\n </ng-container>\r\n}\r\n@if (isReadOnly && (showIfEmpty || control)){\r\n <ng-container>\r\n <app-info-item class=\"info-item w-100\" [insideTable]=\"insideTable\" [label]=\"label\" [value]=\"control\" [type]=\"type\"></app-info-item>\r\n </ng-container>\r\n}\r\n\r\n", styles: [":host{flex-grow:1}:host ::ng-deep mat-form-field.custom-textarea .mat-form-field-flex{padding:var(--input-padding)}:host ::ng-deep table mat-form-field.custom-textarea .mat-form-field-flex{--input-height: 80px}\n"] }]
51
+ }], propDecorators: { className: [{
84
52
  type: Input
85
53
  }], preventSpecailChar: [{
86
54
  type: Input
87
55
  }] } });
88
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGV4dGFyZWEuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYnBtLWNvcmUvc3JjL2xpYi9jb21wb25lbnRzL3NoYXJlZC1jb21wb25lbnRzL2Zvcm0tZmllbGQvdGV4dGFyZWEvdGV4dGFyZWEuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYnBtLWNvcmUvc3JjL2xpYi9jb21wb25lbnRzL3NoYXJlZC1jb21wb25lbnRzL2Zvcm0tZmllbGQvdGV4dGFyZWEvdGV4dGFyZWEuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLG1CQUFtQixFQUFFLFVBQVUsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQy9ELHVEQUF1RDtBQUN2RCw0REFBNEQ7QUFDNUQsT0FBTyxFQUFDLFNBQVMsRUFBRSxzQkFBc0IsRUFBRSxLQUFLLEVBQTJCLE1BQU0sZUFBZSxDQUFDO0FBQ2pHLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSw0Q0FBNEMsQ0FBQztBQUMzRSxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0sOEJBQThCLENBQUM7QUFDMUQsT0FBTyxFQUFDLE9BQU8sRUFBRSxJQUFJLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQztBQUM5QyxPQUFPLEVBQUMsaUJBQWlCLEVBQUMsTUFBTSxrQ0FBa0MsQ0FBQzs7O0FBZ0JuRSxNQUFNLE9BQU8saUJBQWtCLFNBQVEsYUFBYTtJQUN6QyxLQUFLLENBQVU7SUFDZixPQUFPLENBQVU7SUFDakIsU0FBUyxDQUFVO0lBQ25CLGtCQUFrQixDQUFXO0lBQ3RDLGFBQWEsR0FBRyxLQUFLLENBQUE7SUFFckIsV0FBVyxDQUFDLE9BQXNCO1FBQzlCLElBQUksT0FBTyxFQUFFLENBQUMsT0FBTyxDQUFDLENBQUMsWUFBWSxJQUFJLEVBQUUsSUFBSSxPQUFPLEVBQUUsQ0FBQyxPQUFP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QVk7d0JBQ1osbUJBQW1CO3dCQUNuQixJQUFJO3dCQUNKLE9BQU87d0JBQ1AsaUJBQWlCO3FCQUNsQixjQUNXLElBQUk7OEJBR1AsS0FBSztzQkFBYixLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQUNHLGtCQUFrQjtzQkFBMUIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7UmVhY3RpdmVGb3Jtc01vZHVsZSwgVmFsaWRhdG9yc30gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG4vKiBlc2xpbnQtZGlzYWJsZSBAYW5ndWxhci1lc2xpbnQvY29tcG9uZW50LXNlbGVjdG9yICovXHJcbi8qIGVzbGludC1kaXNhYmxlIEBhbmd1bGFyLWVzbGludC91c2UtbGlmZWN5Y2xlLWludGVyZmFjZSAqL1xyXG5pbXBvcnQge0NvbXBvbmVudCwgQ1VTVE9NX0VMRU1FTlRTX1NDSEVNQSwgSW5wdXQsIE9uQ2hhbmdlcywgU2ltcGxlQ2hhbmdlc30gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEJhc2VDb21wb25lbnQgfSBmcm9tICcuLi9iYXNlLWNvbXBvbmVudC9iYXNlLWNvbXBvbmVudC5jb21wb25lbnQnO1xyXG5pbXBvcnQge01hdEZvcm1GaWVsZH0gZnJvbSBcIkBhbmd1bGFyL21hdGVyaWFsL2Zvcm0tZmllbGRcIjtcclxuaW1wb3J0IHtOZ0NsYXNzLCBOZ0lmfSBmcm9tIFwiQGFuZ3VsYXIvY29tbW9uXCI7XHJcbmltcG9ydCB7SW5mb0l0ZW1Db21wb25lbnR9IGZyb20gXCIuLi9pbmZvLWl0ZW0vaW5mby1pdGVtLmNvbXBvbmVudFwiO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdhcHAtdGV4dGFyZWEnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi90ZXh0YXJlYS5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vdGV4dGFyZWEuY29tcG9uZW50LnNjc3MnXSxcclxuICBzY2hlbWFzOiBbQ1VTVE9NX0VMRU1FTlRTX1NDSEVNQV0sXHJcbiAgaW1wb3J0czogW1xyXG4gICAgTWF0Rm9ybUZpZWxkLFxyXG4gICAgUmVhY3RpdmVGb3Jtc01vZHVsZSxcclxuICAgIE5nSWYsXHJcbiAgICBOZ0NsYXNzLFxyXG4gICAgSW5mb0l0ZW1Db21wb25lbnRcclxuICBdLFxyXG4gIHN0YW5kYWxvbmU6IHRydWVcclxufSlcclxuZXhwb3J0IGNsYXNzIFRleHRhcmVhQ29tcG9uZW50IGV4dGVuZHMgQmFzZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uQ2hhbmdlcyB7XHJcbiAgQElucHV0KCkgbGFiZWwhOiBzdHJpbmc7XHJcbiAgQElucHV0KCkgdG9vbHRpcCE6IHN0cmluZztcclxuICBASW5wdXQoKSBjbGFzc05hbWUhOiBzdHJpbmc7XHJcbiAgQElucHV0KCkgcHJldmVudFNwZWNhaWxDaGFyITogYm9vbGVhbjtcclxuICB0ZXh0QXJlYUZvY3VzID0gZmFsc2VcclxuXHJcbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xyXG4gICAgICBpZiAoY2hhbmdlcz8uWydmaWVsZCddLmN1cnJlbnRWYWx1ZSA9PSAnJyB8fCBjaGFuZ2VzPy5bJ2ZpZWxkJ10uY3VycmVudFZhbHVlID09IG51bGwpIHtcclxuICAgICAgICB0aGlzLmNvbnRyb2xsZXIuc2V0VmFsdWUoJycpO1xyXG4gICAgICB9ZWxzZXtcclxuICAgICAgICB0aGlzLmNvbnRyb2xsZXIuc2V0VmFsdWUoY2hhbmdlc1snZmllbGQnXS5jdXJyZW50VmFsdWUpXHJcbiAgICAgIH1cclxuICAgICAgaWYoY2hhbmdlcz8uWydkaXNhYmxlZCddPy5wcmV2aW91c1ZhbHVlICE9PSBjaGFuZ2VzPy5bJ2Rpc2FibGVkJ10/LmN1cnJlbnRWYWx1ZSl7XHJcbiAgICAgICAgaWYodGhpcy5kaXNhYmxlZCkgdGhpcy5jb250cm9sbGVyLmRpc2FibGUoKTtcclxuICAgICAgICBlbHNlIHRoaXMuY29udHJvbGxlci5lbmFibGUoKTtcclxuICAgICAgfVxyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICAvLyB0aGlzLnJlc2V0UHJvcGFnYXRvci5zdWJzY3JpYmUodGhpcywgdGhpcy5yZXNldERhdGEpO1xyXG4gICAgdGhpcy5maWVsZCA9PSB1bmRlZmluZWQgPyAodGhpcy5maWVsZCA9ICcnKSA6IHRoaXMuZmllbGQ7XHJcbiAgICB0aGlzLmNvbnRyb2xsZXIuc2V0VmFsdWUodGhpcy5maWVsZCk7XHJcbiAgICBpZiAodGhpcy5taW5MZW5ndGggKSB7XHJcbiAgICAgIHRoaXMuY29udHJvbGxlci5zZXRWYWxpZGF0b3JzKFtcclxuICAgICAgICBWYWxpZGF0b3JzLm1pbkxlbmd0aCgrdGhpcy5taW5MZW5ndGgpLFxyXG4gICAgICBdKTtcclxuICAgIH1cclxuICAgIGlmICh0aGlzLm1heExlbmd0aCApIHtcclxuICAgICAgdGhpcy5jb250cm9sbGVyLnNldFZhbGlkYXRvcnMoW1xyXG4gICAgICAgIFZhbGlkYXRvcnMubWF4TGVuZ3RoKCt0aGlzLm1heExlbmd0aCksXHJcbiAgICAgIF0pO1xyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMucmVxdWlyZWQpIHtcclxuICAgICAgdGhpcy5jb250cm9sbGVyLnNldFZhbGlkYXRvcnMoW1ZhbGlkYXRvcnMucmVxdWlyZWRdKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGZvY3VzSW5GdW5jdGlvbigpIHtcclxuICAgIHRoaXMudGV4dEFyZWFGb2N1cyA9IHRydWU7XHJcbiAgICB0aGlzLnZhbGlkYXRlVGV4dEFyZWFCb3JkZXIoKTtcclxuICB9XHJcblxyXG4gIGZvY3VzT3V0RnVuY3Rpb24oKSB7XHJcbiAgICB0aGlzLnRleHRBcmVhRm9jdXMgPSBmYWxzZTtcclxuICAgIHRoaXMudmFsaWRhdGVUZXh0QXJlYUJvcmRlcigpO1xyXG4gIH1cclxuXHJcbiAgdmFsaWRhdGVUZXh0QXJlYUJvcmRlcigpIHtcclxuICAgIHJldHVybiB7XHJcbiAgICAgIFwiZmllbGQtYm9yZGVyLWVycm9yXCI6ICh0aGlzLmZpZWxkICYmIHRoaXMuZmllbGQubGVuZ3RoIDwgdGhpcy5taW5MZW5ndGgpIHx8ICh0aGlzLmZpZWxkICYmIHRoaXMuZmllbGQubGVuZ3RoID4gdGhpcy5tYXhMZW5ndGgpLFxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgb25WYWx1ZUNoYW5nZShldmVudCkge1xyXG4gICAgY29uc3QgdGFyZ2V0ID0gZXZlbnQudGFyZ2V0IGFzIEhUTUxJbnB1dEVsZW1lbnQ7XHJcbiAgICBjb25zdCBkYXRhID0gdGFyZ2V0LnZhbHVlXHJcbiAgICB0aGlzLmVtaXRlZFZhbHVlLmVtaXQoZGF0YS50cmltKCkpO1xyXG4gIH1cclxuXHJcbn1cclxuIiwiPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFpc1JlYWRPbmx5XCI+XHJcbiAgPGRpdiBjbGFzcz1cImQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlbiBtYi0xXCIgKm5nSWY9XCJoYXNMYWJlbFwiPlxyXG4gICAgPHNwYW4gY2xhc3M9XCJmb3JtLWxhYmVsIG1iLTBcIj57eyBsYWJlbCB9fTwvc3Bhbj5cclxuICAgIDxzcGFuICpuZ0lmPVwiIXJlcXVpcmVkXCIgY2xhc3M9XCJmcy0xMSBmYy1kYXJrLWdyYXlcIj5cclxuICAgICAgPCEtLSB7eydPcHRpb25hbCd8IHRyYW5zbG9jb319ICAtLT57eyBpMThuLnRyYW5zbGF0ZSgnT3B0aW9uYWwnKSB9fVxyXG4gICAgPC9zcGFuPlxyXG4gIDwvZGl2PlxyXG4gIDxtYXQtZm9ybS1maWVsZCBjbGFzcz1cImN1c3RvbS10ZXh0YXJlYSBib3JkZXJlZC1pbnB1dCAge3tjbGFzc05hbWV9fVwiPlxyXG4gICAgPG1hdC1sYWJlbD57eyBsYWJlbCB9fTwvbWF0LWxhYmVsPlxyXG4gICAgPGxhYmVsIGNsYXNzPVwibWF0LWZvcm0tY29udGVudFwiPlxyXG5cclxuICAgICAgICA8dGV4dGFyZWEgKm5nSWY9XCJ0eXBlID09PSAnYXJPbmx5J1wiIFtwbGFjZWhvbGRlcl09XCJwbGFjZWhvbGRlclwiIFttaW5sZW5ndGhdPVwibWluTGVuZ3RoXCIgW21heGxlbmd0aF09XCJtYXhMZW5ndGhcIiBtaW49XCJtaW5sZW5ndGhcIiBhck9ubHlcclxuICAgICAgICAgICAgICAgICAgKGlucHV0KT1cIm9uVmFsdWVDaGFuZ2UoJGV2ZW50KVwiIChmb2N1c291dCk9XCJmb2N1c091dEZ1bmN0aW9uKClcIiAoZm9jdXNpbik9XCJmb2N1c0luRnVuY3Rpb24oKVwiIG1heD1cIm1heFZhbHVlXCJcclxuICAgICAgICAgICAgICAgICAgW2Zvcm1Db250cm9sXT1cImNvbnRyb2xsZXJcIiBtYXRJbnB1dD48L3RleHRhcmVhPlxyXG5cclxuICAgICAgPHRleHRhcmVhICpuZ0lmPVwidHlwZSA9PT0gJ2VuT25seSdcIiBbcGxhY2Vob2xkZXJdPVwicGxhY2Vob2xkZXJcIiBbbWlubGVuZ3RoXT1cIm1pbkxlbmd0aFwiIFttYXhsZW5ndGhdPVwibWF4TGVuZ3RoXCIgbWluPVwibWlubGVuZ3RoXCIgZW5Pbmx5XHJcbiAgICAgICAgICAgICAgICAoaW5wdXQpPVwib25WYWx1ZUNoYW5nZSgkZXZlbnQpXCIgKGZvY3Vzb3V0KT1cImZvY3VzT3V0RnVuY3Rpb24oKVwiIChmb2N1c2luKT1cImZvY3VzSW5GdW5jdGlvbigpXCIgbWF4PVwibWF4VmFsdWVcIlxyXG4gICAgICAgICAgICAgICAgW2Zvcm1Db250cm9sXT1cImNvbnRyb2xsZXJcIiBtYXRJbnB1dD48L3RleHRhcmVhPlxyXG5cclxuICAgICAgPCEtLSAgICAgIDx0ZXh0YXJlYSAqbmdJZj1cInByZXZlbnRTcGVjYWlsQ2hhclwiIFtwbGFjZWhvbGRlcl09XCJwbGFjZWhvbGRlclwiIFttaW5sZW5ndGhdPVwibWluTGVuZ3RoXCIgW21heGxlbmd0aF09XCJtYXhMZW5ndGhcIiBtaW49XCJtaW5sZW5ndGhcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgc3BlY2lhbElzQWxwaGFOdW1lcmljXHJcbiAgICAgICAgICAgICAgICAgICAgICAoaW5wdXQpPVwib25WYWx1ZUNoYW5nZSgkZXZlbnQudGFyZ2V0LnZhbHVlKVwiIChmb2N1c291dCk9XCJmb2N1c091dEZ1bmN0aW9uKClcIiAoZm9jdXNpbik9XCJmb2N1c0luRnVuY3Rpb24oKVwiIG1heD1cIm1heFZhbHVlXCJcclxuICAgICAgICAgICAgICAgICAgICAgIFtmb3JtQ29udHJvbF09XCJjb250cm9sbGVyXCIgbWF0SW5wdXQ+PC90ZXh0YXJlYT4tLT5cclxuICAgICAgPCEtLSYmICFwcmV2ZW50U3BlY2FpbENoYXItLT5cclxuICAgICAgPHRleHRhcmVhICpuZ0lmPVwidHlwZSAhPT0gJ2VuT25seScgJiYgIHR5cGUgIT09ICdhck9ubHknIFwiIFtwbGFjZWhvbGRlcl09XCJwbGFjZWhvbGRlclwiIFttaW5sZW5ndGhdPVwibWluTGVuZ3RoXCJcclxuICAgICAgICAgICAgICAgIFttYXhsZW5ndGhdPVwibWF4TGVuZ3RoXCIgbWluPVwibWlubGVuZ3RoXCIgc3BlY2lhbElzQWxwaGFOdW1lcmljXHJcbiAgICAgICAgICAgICAgICAoaW5wdXQpPVwib25WYWx1ZUNoYW5nZSgkZXZlbnQpXCIgKGZvY3Vzb3V0KT1cImZvY3VzT3V0RnVuY3Rpb24oKVwiIChmb2N1c2luKT1cImZvY3VzSW5GdW5jdGlvbigpXCIgbWF4PVwibWF4VmFsdWVcIlxyXG4gICAgICAgICAgICAgICAgW2Zvcm1Db250cm9sXT1cImNvbnRyb2xsZXJcIiBtYXRJbnB1dD48L3RleHRhcmVhPlxyXG5cclxuICAgIDwvbGFiZWw+XHJcbiAgICA8IS0tIFsobmdNb2RlbCldPVwiZmllbGRcIiBbbmFtZV09XCJuYW1lXCIgLS0+XHJcbiAgICA8bWF0LWVycm9yICpuZ0lmPVwiZmllbGQgJiYgZmllbGQ/Lmxlbmd0aCA8IG1pbkxlbmd0aFwiPnt7IGVycm9yTWVzc2FnZSB9fTwvbWF0LWVycm9yPlxyXG4gICAgPG1hdC1lcnJvciAqbmdJZj1cImZpZWxkICYmIGZpZWxkPy5sZW5ndGggPiBtYXhMZW5ndGhcIj57eyBlcnJvck1lc3NhZ2UgfX08L21hdC1lcnJvcj5cclxuICAgIDxtYXQtZXJyb3IgY2xhc3M9XCJtYi0yXCIgKm5nSWY9XCIhZmllbGQgJiYgKCFjb250cm9sbGVyPy52YWxpZClcIj57eyBpMThuLnRyYW5zbGF0ZSgndmFsaWRGaWVsZEVycm9yJykgfX17eyBsYWJlbCB9fTwvbWF0LWVycm9yPlxyXG5cclxuXHJcbiAgICA8bWF0LWhpbnQgY2xhc3M9XCJkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIGdhcC0xIG10LTFcIiAqbmdJZj1cInNob3dIaW50XCI+XHJcbiAgICAgIDxzcGFuIGNsYXNzPVwic2ZpIHNmaS1pbmZvIGZzLTE3IGZjLWRhcmstZ3JheVwiIFtuZ0NsYXNzXT1cInsnZmMtb2FzaXMtbGlnaHQtaW1wJzp2YWx1ZX1cIj48L3NwYW4+XHJcbiAgICAgIDxzcGFuIGNsYXNzPVwiZnMtMTIgZmMtYmxhY2sgbGluZS1oZWlnaHQtMVwiPnt7IGhpbnQgfX08L3NwYW4+XHJcbiAgICA8L21hdC1oaW50PlxyXG5cclxuXHJcbiAgPC9tYXQtZm9ybS1maWVsZD5cclxuPC9uZy1jb250YWluZXI+XHJcblxyXG48bmctY29udGFpbmVyICpuZ0lmPVwiaXNSZWFkT25seSAmJiAoc2hvd0lmRW1wdHkgfHwgZmllbGQpXCI+XHJcbiAgPGFwcC1pbmZvLWl0ZW0gY2xhc3M9XCJpbmZvLWl0ZW0gdy0xMDBcIiBbaW5zaWRlVGFibGVdPVwiaW5zaWRlVGFibGVcIiBbbGFiZWxdPVwibGFiZWxcIiBbdmFsdWVdPVwiZmllbGRcIiBbdHlwZV09XCJ0eXBlXCI+PC9hcHAtaW5mby1pdGVtPlxyXG48L25nLWNvbnRhaW5lcj5cclxuIl19
56
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGV4dGFyZWEuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYnBtLWNvcmUvc3JjL2xpYi9jb21wb25lbnRzL3NoYXJlZC1jb21wb25lbnRzL2Zvcm0tZmllbGQvdGV4dGFyZWEvdGV4dGFyZWEuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYnBtLWNvcmUvc3JjL2xpYi9jb21wb25lbnRzL3NoYXJlZC1jb21wb25lbnRzL2Zvcm0tZmllbGQvdGV4dGFyZWEvdGV4dGFyZWEuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLGlCQUFpQixFQUFFLG1CQUFtQixFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDdEUsdURBQXVEO0FBQ3ZELDREQUE0RDtBQUM1RCxPQUFPLEVBQUMsU0FBUyxFQUFFLHNCQUFzQixFQUFFLFVBQVUsRUFBRSxLQUFLLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDbkYsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLDhCQUE4QixDQUFDO0FBQzFELE9BQU8sRUFBQyxPQUFPLEVBQUUsSUFBSSxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFDOUMsT0FBTyxFQUFFLDZCQUE2QixFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFDcEYsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ25ELE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLGtEQUFrRCxDQUFDOzs7QUF3QjdGLE1BQU0sT0FBTyxpQkFBd0IsU0FBUSw2QkFBbUM7SUFDckUsU0FBUyxDQUFVO0lBQ25CLGtCQUFrQixDQUFXO0lBR3RDLGVBQWU7UUFDYixJQUFJLENBQUMsc0JBQXNCLEVBQUUsQ0FBQztJQUNoQyxDQUFDO0lBRUQsZ0JBQWdCO1FBQ2QsSUFBSSxDQUFDLHNCQUFzQixFQUFFLENBQUM7SUFDaEMsQ0FBQztJQUVELHNCQUFzQjtRQUNwQixXQUFXO1FBQ1gsb0lBQW9JO1FBQ3BJLElBQUk7SUFDTixDQUFDO3VHQWpCVSxpQkFBaUI7MkZBQWpCLGlCQUFpQix5SUFSakI7WUFDVDtnQkFDRSxPQUFPLEVBQUUsaUJBQWlCO2dCQUMxQixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLGlCQUFpQixDQUFDO2dCQUNoRCxLQUFLLEVBQUUsSUFBSTthQUNaO1NBQ0YsaURDOUJILHVyRUFtREEsOFFEbkNJLFlBQVksNExBQ1osUUFBUSxnVUFDUixtQkFBbUIsNnVCQUVuQixPQUFPLG9GQUNQLHlCQUF5Qjs7MkZBV2hCLGlCQUFpQjtrQkF0QjdCLFNBQVM7K0JBQ0UsY0FBYyxXQUdmLENBQUMsc0JBQXNCLENBQUMsV0FDeEI7d0JBQ1AsWUFBWTt3QkFDWixRQUFRO3dCQUNSLG1CQUFtQjt3QkFDbkIsSUFBSTt3QkFDSixPQUFPO3dCQUNQLHlCQUF5QjtxQkFDMUIsY0FDVyxJQUFJLGFBQ0w7d0JBQ1Q7NEJBQ0UsT0FBTyxFQUFFLGlCQUFpQjs0QkFDMUIsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsa0JBQWtCLENBQUM7NEJBQ2hELEtBQUssRUFBRSxJQUFJO3lCQUNaO3FCQUNGOzhCQUdRLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csa0JBQWtCO3NCQUExQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtOR19WQUxVRV9BQ0NFU1NPUiwgUmVhY3RpdmVGb3Jtc01vZHVsZX0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG4vKiBlc2xpbnQtZGlzYWJsZSBAYW5ndWxhci1lc2xpbnQvY29tcG9uZW50LXNlbGVjdG9yICovXHJcbi8qIGVzbGludC1kaXNhYmxlIEBhbmd1bGFyLWVzbGludC91c2UtbGlmZWN5Y2xlLWludGVyZmFjZSAqL1xyXG5pbXBvcnQge0NvbXBvbmVudCwgQ1VTVE9NX0VMRU1FTlRTX1NDSEVNQSwgZm9yd2FyZFJlZiwgSW5wdXR9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQge01hdEZvcm1GaWVsZH0gZnJvbSBcIkBhbmd1bGFyL21hdGVyaWFsL2Zvcm0tZmllbGRcIjtcclxuaW1wb3J0IHtOZ0NsYXNzLCBOZ0lmfSBmcm9tIFwiQGFuZ3VsYXIvY29tbW9uXCI7XHJcbmltcG9ydCB7IENvbnRyb2xWYWx1ZUFjY2Vzc29yRGlyZWN0aXZlIH0gZnJvbSAnLi4vY29udHJvbC12YWx1ZS1hY2Nlc3Nvci5kaXJlY3RpdmUnO1xyXG5pbXBvcnQgeyBNYXRJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2lucHV0JztcclxuaW1wb3J0IHsgVmFsaWRhdGlvbkVycm9yc0NvbXBvbmVudCB9IGZyb20gJy4uL3ZhbGlkYXRpb24tZXJyb3JzL3ZhbGlkYXRpb24tZXJyb3JzLmNvbXBvbmVudCc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2FwcC10ZXh0YXJlYScsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3RleHRhcmVhLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi90ZXh0YXJlYS5jb21wb25lbnQuc2NzcyddLFxyXG4gIHNjaGVtYXM6IFtDVVNUT01fRUxFTUVOVFNfU0NIRU1BXSxcclxuICBpbXBvcnRzOiBbXHJcbiAgICBNYXRGb3JtRmllbGQsXHJcbiAgICBNYXRJbnB1dCxcclxuICAgIFJlYWN0aXZlRm9ybXNNb2R1bGUsXHJcbiAgICBOZ0lmLFxyXG4gICAgTmdDbGFzcyxcclxuICAgIFZhbGlkYXRpb25FcnJvcnNDb21wb25lbnRcclxuICBdLFxyXG4gIHN0YW5kYWxvbmU6IHRydWUsXHJcbiAgcHJvdmlkZXJzOiBbXHJcbiAgICB7XHJcbiAgICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxyXG4gICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBUZXh0YXJlYUNvbXBvbmVudCksXHJcbiAgICAgIG11bHRpOiB0cnVlLFxyXG4gICAgfSxcclxuICBdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBUZXh0YXJlYUNvbXBvbmVudDxUeXBlPiBleHRlbmRzIENvbnRyb2xWYWx1ZUFjY2Vzc29yRGlyZWN0aXZlPFR5cGU+IHtcclxuICBASW5wdXQoKSBjbGFzc05hbWUhOiBzdHJpbmc7XHJcbiAgQElucHV0KCkgcHJldmVudFNwZWNhaWxDaGFyITogYm9vbGVhbjtcclxuXHJcblxyXG4gIGZvY3VzSW5GdW5jdGlvbigpIHtcclxuICAgIHRoaXMudmFsaWRhdGVUZXh0QXJlYUJvcmRlcigpO1xyXG4gIH1cclxuXHJcbiAgZm9jdXNPdXRGdW5jdGlvbigpIHtcclxuICAgIHRoaXMudmFsaWRhdGVUZXh0QXJlYUJvcmRlcigpO1xyXG4gIH1cclxuXHJcbiAgdmFsaWRhdGVUZXh0QXJlYUJvcmRlcigpIHtcclxuICAgIC8vIHJldHVybiB7XHJcbiAgICAvLyAgIFwiZmllbGQtYm9yZGVyLWVycm9yXCI6ICh0aGlzLmZpZWxkICYmIHRoaXMuZmllbGQubGVuZ3RoIDwgdGhpcy5taW5MZW5ndGgpIHx8ICh0aGlzLmZpZWxkICYmIHRoaXMuZmllbGQubGVuZ3RoID4gdGhpcy5tYXhMZW5ndGgpLFxyXG4gICAgLy8gfVxyXG4gIH1cclxufVxyXG4iLCJAaWYoIWlzUmVhZE9ubHkpe1xyXG4gIDxuZy1jb250YWluZXI+XHJcbiAgICBAaWYgKGxhYmVsKXtcclxuICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlbiBtYi0xXCI+XHJcbiAgICAgICAgPHNwYW4gY2xhc3M9XCJmb3JtLWxhYmVsIG1iLTBcIj57eyBsYWJlbCB9fTwvc3Bhbj5cclxuICAgICAgICBAaWYoIXJlcXVpcmVkKXtcclxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZnMtMTEgZmMtZGFyay1ncmF5XCI+XHJcbiAgICAgICAgICAgIDwhLS0ge3snT3B0aW9uYWwnfCB0cmFuc2xvY299fSAgLS0+e3sgaTE4bi50cmFuc2xhdGUoJ09wdGlvbmFsJykgfX1cclxuICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICB9XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgfVxyXG4gICAgPG1hdC1mb3JtLWZpZWxkIGNsYXNzPVwiY3VzdG9tLXRleHRhcmVhIGJvcmRlcmVkLWlucHV0ICB7e2NsYXNzTmFtZX19XCI+XHJcbiAgICAgIDxtYXQtbGFiZWw+e3sgbGFiZWwgfX08L21hdC1sYWJlbD5cclxuICAgICAgPGxhYmVsIGNsYXNzPVwibWF0LWZvcm0tY29udGVudFwiPlxyXG4gICAgICAgIEBpZiAodHlwZSA9PT0gJ2FyT25seScpe1xyXG4gICAgICAgICAgPHRleHRhcmVhIFtwbGFjZWhvbGRlcl09XCJwbGFjZWhvbGRlclwiICAgbWluPVwibWlubGVuZ3RoXCIgYXJPbmx5XHJcbiAgICAgICAgICAoZm9jdXNvdXQpPVwiZm9jdXNPdXRGdW5jdGlvbigpXCIgKGZvY3VzaW4pPVwiZm9jdXNJbkZ1bmN0aW9uKClcIiBtYXg9XCJtYXhWYWx1ZVwiXHJcbiAgICAgICAgIFtmb3JtQ29udHJvbF09XCJjb250cm9sXCIgbWF0SW5wdXQ+PC90ZXh0YXJlYT5cclxuICAgICAgICB9XHJcbiAgICAgICAgQGlmICh0eXBlID09PSAnZW5Pbmx5Jyl7XHJcbiAgICAgICAgICA8dGV4dGFyZWEgIFtwbGFjZWhvbGRlcl09XCJwbGFjZWhvbGRlclwiICBtaW49XCJtaW5sZW5ndGhcIiBlbk9ubHlcclxuICAgICAgICAgIChmb2N1c291dCk9XCJmb2N1c091dEZ1bmN0aW9uKClcIiAoZm9jdXNpbik9XCJmb2N1c0luRnVuY3Rpb24oKVwiIG1heD1cIm1heFZhbHVlXCJcclxuICAgICAgICAgW2Zvcm1Db250cm9sXT1cImNvbnRyb2xcIiBtYXRJbnB1dD48L3RleHRhcmVhPlxyXG4gICAgICAgIH1cclxuICAgICAgIEBpZiAodHlwZSAhPT0gJ2VuT25seScgJiYgIHR5cGUgIT09ICdhck9ubHknICl7XHJcbiAgICAgICAgPHRleHRhcmVhIFtwbGFjZWhvbGRlcl09XCJwbGFjZWhvbGRlclwiIFxyXG4gICAgICAgIFttYXhsZW5ndGhdPVwibWF4TGVuZ3RoXCIgbWluPVwibWlubGVuZ3RoXCIgc3BlY2lhbElzQWxwaGFOdW1lcmljXHJcbiAgICAgICAgIChmb2N1c291dCk9XCJmb2N1c091dEZ1bmN0aW9uKClcIiAoZm9jdXNpbik9XCJmb2N1c0luRnVuY3Rpb24oKVwiIG1heD1cIm1heFZhbHVlXCJcclxuICAgICAgICBbZm9ybUNvbnRyb2xdPVwiY29udHJvbFwiIG1hdElucHV0PjwvdGV4dGFyZWE+XHJcbiAgICAgICB9XHJcbiAgICAgICBcclxuICAgICAgPC9sYWJlbD5cclxuICAgICAgQGlmIChzaG93SGludCl7XHJcbiAgICAgICAgPG1hdC1oaW50IGNsYXNzPVwiZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBnYXAtMSBtdC0xXCI+XHJcbiAgICAgICAgICA8c3BhbiBjbGFzcz1cInNmaSBzZmktaW5mbyBmcy0xNyBmYy1kYXJrLWdyYXlcIiBbbmdDbGFzc109XCJ7J2ZjLW9hc2lzLWxpZ2h0LWltcCc6dmFsdWV9XCI+PC9zcGFuPlxyXG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJmcy0xMiBmYy1ibGFjayBsaW5lLWhlaWdodC0xXCI+e3sgaGludCB9fTwvc3Bhbj5cclxuICAgICAgICA8L21hdC1oaW50PlxyXG4gICAgICB9XHJcbiAgICBcclxuICAgIDwvbWF0LWZvcm0tZmllbGQ+XHJcbiAgPGFwcC12YWxpZGF0aW9uLWVycm9ycyBbZXJyb3JzXT1cImNvbnRyb2wuZXJyb3JzXCI+PC9hcHAtdmFsaWRhdGlvbi1lcnJvcnM+XHJcbiAgXHJcbiAgPC9uZy1jb250YWluZXI+XHJcbn1cclxuQGlmIChpc1JlYWRPbmx5ICYmIChzaG93SWZFbXB0eSB8fCBjb250cm9sKSl7XHJcbiAgPG5nLWNvbnRhaW5lcj5cclxuICAgIDxhcHAtaW5mby1pdGVtIGNsYXNzPVwiaW5mby1pdGVtIHctMTAwXCIgW2luc2lkZVRhYmxlXT1cImluc2lkZVRhYmxlXCIgW2xhYmVsXT1cImxhYmVsXCIgW3ZhbHVlXT1cImNvbnRyb2xcIiBbdHlwZV09XCJ0eXBlXCI+PC9hcHAtaW5mby1pdGVtPlxyXG4gIDwvbmctY29udGFpbmVyPlxyXG59XHJcblxyXG4iXX0=
@@ -7,7 +7,6 @@ import * as i1 from "@angular/common";
7
7
  export class ValidationErrorsComponent extends ControlValueAccessorDirective {
8
8
  errors = {};
9
9
  customErrorMessages = {};
10
- label;
11
10
  errorMessages = {
12
11
  required: 'This field is required',
13
12
  maxlength: 'This field max length',
@@ -23,7 +22,7 @@ export class ValidationErrorsComponent extends ControlValueAccessorDirective {
23
22
  }
24
23
  }
25
24
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: ValidationErrorsComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
26
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.8", type: ValidationErrorsComponent, isStandalone: true, selector: "app-validation-errors", inputs: { errors: "errors", customErrorMessages: "customErrorMessages", label: "label" }, usesInheritance: true, usesOnChanges: true, ngImport: i0, template: " @if(control.touched) {\r\n @for(error of errors | keyvalue; track error ) {\r\n <mat-error class=\"mb-2\">\r\n {{ errorMessages[error.key] }} {{errors['maxlength']?.requiredLength}} {{errors['minlength']?.requiredLength}}\r\n </mat-error>\r\n }\r\n }\r\n\r\n ", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "pipe", type: i1.KeyValuePipe, name: "keyvalue" }, { kind: "directive", type: MatError, selector: "mat-error, [matError]", inputs: ["id"] }] });
25
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.8", type: ValidationErrorsComponent, isStandalone: true, selector: "app-validation-errors", inputs: { errors: "errors", customErrorMessages: "customErrorMessages" }, usesInheritance: true, usesOnChanges: true, ngImport: i0, template: " @if(control.touched) {\r\n @for(error of errors | keyvalue; track error ) {\r\n <mat-error class=\"mb-2\">\r\n {{ errorMessages[error.key] }} {{errors['maxlength']?.requiredLength}} {{errors['minlength']?.requiredLength}}\r\n </mat-error>\r\n }\r\n }", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "pipe", type: i1.KeyValuePipe, name: "keyvalue" }, { kind: "directive", type: MatError, selector: "mat-error, [matError]", inputs: ["id"] }] });
27
26
  }
28
27
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: ValidationErrorsComponent, decorators: [{
29
28
  type: Component,
@@ -31,12 +30,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImpor
31
30
  NgFor,
32
31
  CommonModule,
33
32
  MatError
34
- ], template: " @if(control.touched) {\r\n @for(error of errors | keyvalue; track error ) {\r\n <mat-error class=\"mb-2\">\r\n {{ errorMessages[error.key] }} {{errors['maxlength']?.requiredLength}} {{errors['minlength']?.requiredLength}}\r\n </mat-error>\r\n }\r\n }\r\n\r\n " }]
33
+ ], template: " @if(control.touched) {\r\n @for(error of errors | keyvalue; track error ) {\r\n <mat-error class=\"mb-2\">\r\n {{ errorMessages[error.key] }} {{errors['maxlength']?.requiredLength}} {{errors['minlength']?.requiredLength}}\r\n </mat-error>\r\n }\r\n }" }]
35
34
  }], propDecorators: { errors: [{
36
35
  type: Input
37
36
  }], customErrorMessages: [{
38
37
  type: Input
39
- }], label: [{
40
- type: Input
41
38
  }] } });
42
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsaWRhdGlvbi1lcnJvcnMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYnBtLWNvcmUvc3JjL2xpYi9jb21wb25lbnRzL3NoYXJlZC1jb21wb25lbnRzL2Zvcm0tZmllbGQvdmFsaWRhdGlvbi1lcnJvcnMvdmFsaWRhdGlvbi1lcnJvcnMuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYnBtLWNvcmUvc3JjL2xpYi9jb21wb25lbnRzL3NoYXJlZC1jb21wb25lbnRzL2Zvcm0tZmllbGQvdmFsaWRhdGlvbi1lcnJvcnMvdmFsaWRhdGlvbi1lcnJvcnMuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN0RCxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBNEIsTUFBTSxlQUFlLENBQUM7QUFFM0UsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ3hELE9BQU8sRUFBRSw2QkFBNkIsRUFBRSxNQUFNLHFDQUFxQyxDQUFDOzs7QUFhcEYsTUFBTSxPQUFPLHlCQUFnQyxTQUFRLDZCQUFtQztJQUM3RSxNQUFNLEdBQUcsRUFBRSxDQUFDO0lBQ1osbUJBQW1CLEdBQUcsRUFBRSxDQUFDO0lBQ3pCLEtBQUssQ0FBUztJQUN2QixhQUFhLEdBQUc7UUFDZCxRQUFRLEVBQUUsd0JBQXdCO1FBQ2xDLFNBQVMsRUFBRSx1QkFBdUI7UUFDbEMsU0FBUyxFQUFFLHVCQUF1QjtLQUNuQyxDQUFDO0lBRUYsV0FBVyxDQUFDLE9BQXNCO1FBQ2hDLE1BQU0sRUFBRSxtQkFBbUIsRUFBRSxHQUFHLE9BQU8sQ0FBQztRQUN4QyxJQUFJLG1CQUFtQixFQUFFLENBQUM7WUFDeEIsSUFBSSxDQUFDLGFBQWEsR0FBRztnQkFDbkIsR0FBRyxJQUFJLENBQUMsYUFBYTtnQkFDckIsR0FBRyxtQkFBbUIsQ0FBQyxZQUFZO2FBQ3BDLENBQUM7UUFDSixDQUFDO0lBQ0gsQ0FBQzt1R0FsQlUseUJBQXlCOzJGQUF6Qix5QkFBeUIsdU5DakJ0QyxzVEFRRSx5RERLRSxZQUFZLDBGQUNaLFFBQVE7OzJGQUdDLHlCQUF5QjtrQkFYckMsU0FBUzsrQkFDRSx1QkFBdUIsY0FHckIsSUFBSSxXQUNQO3dCQUNQLEtBQUs7d0JBQ0wsWUFBWTt3QkFDWixRQUFRO3FCQUNUOzhCQUdRLE1BQU07c0JBQWQsS0FBSztnQkFDRyxtQkFBbUI7c0JBQTNCLEtBQUs7Z0JBQ0csS0FBSztzQkFBYixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlLCBOZ0ZvciB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIE9uQ2hhbmdlcywgU2ltcGxlQ2hhbmdlcyB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBWYWxpZGF0aW9uRXJyb3JzIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBNYXRFcnJvciB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2Zvcm0tZmllbGQnO1xyXG5pbXBvcnQgeyBDb250cm9sVmFsdWVBY2Nlc3NvckRpcmVjdGl2ZSB9IGZyb20gJy4uL2NvbnRyb2wtdmFsdWUtYWNjZXNzb3IuZGlyZWN0aXZlJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnYXBwLXZhbGlkYXRpb24tZXJyb3JzJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vdmFsaWRhdGlvbi1lcnJvcnMuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL3ZhbGlkYXRpb24tZXJyb3JzLmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcclxuICBpbXBvcnRzOiBbXHJcbiAgICBOZ0ZvcixcclxuICAgIENvbW1vbk1vZHVsZSxcclxuICAgIE1hdEVycm9yXHJcbiAgXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgVmFsaWRhdGlvbkVycm9yc0NvbXBvbmVudDxUeXBlPiBleHRlbmRzIENvbnRyb2xWYWx1ZUFjY2Vzc29yRGlyZWN0aXZlPFR5cGU+ICB7XHJcbiAgQElucHV0KCkgZXJyb3JzID0ge307XHJcbiAgQElucHV0KCkgY3VzdG9tRXJyb3JNZXNzYWdlcyA9IHt9O1xyXG4gIEBJbnB1dCgpIGxhYmVsOiBzdHJpbmc7XHJcbiAgZXJyb3JNZXNzYWdlcyA9IHtcclxuICAgIHJlcXVpcmVkOiAnVGhpcyBmaWVsZCBpcyByZXF1aXJlZCcsXHJcbiAgICBtYXhsZW5ndGg6ICdUaGlzIGZpZWxkIG1heCBsZW5ndGgnLFxyXG4gICAgbWlubGVuZ3RoOiAnVGhpcyBmaWVsZCBtaW4gbGVuZ3RoJyxcclxuICB9O1xyXG5cclxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XHJcbiAgICBjb25zdCB7IGN1c3RvbUVycm9yTWVzc2FnZXMgfSA9IGNoYW5nZXM7XHJcbiAgICBpZiAoY3VzdG9tRXJyb3JNZXNzYWdlcykge1xyXG4gICAgICB0aGlzLmVycm9yTWVzc2FnZXMgPSB7XHJcbiAgICAgICAgLi4udGhpcy5lcnJvck1lc3NhZ2VzLFxyXG4gICAgICAgIC4uLmN1c3RvbUVycm9yTWVzc2FnZXMuY3VycmVudFZhbHVlLFxyXG4gICAgICB9O1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iLCIgIEBpZihjb250cm9sLnRvdWNoZWQpIHtcclxuICAgIEBmb3IoZXJyb3Igb2YgZXJyb3JzIHwga2V5dmFsdWU7IHRyYWNrIGVycm9yICkge1xyXG4gICAgICAgICAgICA8bWF0LWVycm9yIGNsYXNzPVwibWItMlwiPlxyXG4gICAgICAgICAgICAgICAge3sgZXJyb3JNZXNzYWdlc1tlcnJvci5rZXldIH19IHt7ZXJyb3JzWydtYXhsZW5ndGgnXT8ucmVxdWlyZWRMZW5ndGh9fSB7e2Vycm9yc1snbWlubGVuZ3RoJ10/LnJlcXVpcmVkTGVuZ3RofX1cclxuICAgICAgICAgICAgICA8L21hdC1lcnJvcj5cclxuICAgIH1cclxuICB9XHJcblxyXG4gICJdfQ==
39
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsaWRhdGlvbi1lcnJvcnMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYnBtLWNvcmUvc3JjL2xpYi9jb21wb25lbnRzL3NoYXJlZC1jb21wb25lbnRzL2Zvcm0tZmllbGQvdmFsaWRhdGlvbi1lcnJvcnMvdmFsaWRhdGlvbi1lcnJvcnMuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYnBtLWNvcmUvc3JjL2xpYi9jb21wb25lbnRzL3NoYXJlZC1jb21wb25lbnRzL2Zvcm0tZmllbGQvdmFsaWRhdGlvbi1lcnJvcnMvdmFsaWRhdGlvbi1lcnJvcnMuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN0RCxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBNEIsTUFBTSxlQUFlLENBQUM7QUFDM0UsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ3hELE9BQU8sRUFBRSw2QkFBNkIsRUFBRSxNQUFNLHFDQUFxQyxDQUFDOzs7QUFhcEYsTUFBTSxPQUFPLHlCQUFnQyxTQUFRLDZCQUFtQztJQUM3RSxNQUFNLEdBQUcsRUFBRSxDQUFDO0lBQ1osbUJBQW1CLEdBQUcsRUFBRSxDQUFDO0lBQ2xDLGFBQWEsR0FBRztRQUNkLFFBQVEsRUFBRSx3QkFBd0I7UUFDbEMsU0FBUyxFQUFFLHVCQUF1QjtRQUNsQyxTQUFTLEVBQUUsdUJBQXVCO0tBQ25DLENBQUM7SUFFRixXQUFXLENBQUMsT0FBc0I7UUFDaEMsTUFBTSxFQUFFLG1CQUFtQixFQUFFLEdBQUcsT0FBTyxDQUFDO1FBQ3hDLElBQUksbUJBQW1CLEVBQUUsQ0FBQztZQUN4QixJQUFJLENBQUMsYUFBYSxHQUFHO2dCQUNuQixHQUFHLElBQUksQ0FBQyxhQUFhO2dCQUNyQixHQUFHLG1CQUFtQixDQUFDLFlBQVk7YUFDcEMsQ0FBQztRQUNKLENBQUM7SUFDSCxDQUFDO3VHQWpCVSx5QkFBeUI7MkZBQXpCLHlCQUF5Qix1TUNoQnRDLDRTQU1HLHlERE1DLFlBQVksMEZBQ1osUUFBUTs7MkZBR0MseUJBQXlCO2tCQVhyQyxTQUFTOytCQUNFLHVCQUF1QixjQUdyQixJQUFJLFdBQ1A7d0JBQ1AsS0FBSzt3QkFDTCxZQUFZO3dCQUNaLFFBQVE7cUJBQ1Q7OEJBR1EsTUFBTTtzQkFBZCxLQUFLO2dCQUNHLG1CQUFtQjtzQkFBM0IsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSwgTmdGb3IgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBPbkNoYW5nZXMsIFNpbXBsZUNoYW5nZXMgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgTWF0RXJyb3IgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9mb3JtLWZpZWxkJztcclxuaW1wb3J0IHsgQ29udHJvbFZhbHVlQWNjZXNzb3JEaXJlY3RpdmUgfSBmcm9tICcuLi9jb250cm9sLXZhbHVlLWFjY2Vzc29yLmRpcmVjdGl2ZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2FwcC12YWxpZGF0aW9uLWVycm9ycycsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3ZhbGlkYXRpb24tZXJyb3JzLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi92YWxpZGF0aW9uLWVycm9ycy5jb21wb25lbnQuc2NzcyddLFxyXG4gIHN0YW5kYWxvbmU6IHRydWUsXHJcbiAgaW1wb3J0czogW1xyXG4gICAgTmdGb3IsXHJcbiAgICBDb21tb25Nb2R1bGUsXHJcbiAgICBNYXRFcnJvclxyXG4gIF1cclxufSlcclxuZXhwb3J0IGNsYXNzIFZhbGlkYXRpb25FcnJvcnNDb21wb25lbnQ8VHlwZT4gZXh0ZW5kcyBDb250cm9sVmFsdWVBY2Nlc3NvckRpcmVjdGl2ZTxUeXBlPiAge1xyXG4gIEBJbnB1dCgpIGVycm9ycyA9IHt9O1xyXG4gIEBJbnB1dCgpIGN1c3RvbUVycm9yTWVzc2FnZXMgPSB7fTtcclxuICBlcnJvck1lc3NhZ2VzID0ge1xyXG4gICAgcmVxdWlyZWQ6ICdUaGlzIGZpZWxkIGlzIHJlcXVpcmVkJyxcclxuICAgIG1heGxlbmd0aDogJ1RoaXMgZmllbGQgbWF4IGxlbmd0aCcsXHJcbiAgICBtaW5sZW5ndGg6ICdUaGlzIGZpZWxkIG1pbiBsZW5ndGgnLFxyXG4gIH07XHJcblxyXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcclxuICAgIGNvbnN0IHsgY3VzdG9tRXJyb3JNZXNzYWdlcyB9ID0gY2hhbmdlcztcclxuICAgIGlmIChjdXN0b21FcnJvck1lc3NhZ2VzKSB7XHJcbiAgICAgIHRoaXMuZXJyb3JNZXNzYWdlcyA9IHtcclxuICAgICAgICAuLi50aGlzLmVycm9yTWVzc2FnZXMsXHJcbiAgICAgICAgLi4uY3VzdG9tRXJyb3JNZXNzYWdlcy5jdXJyZW50VmFsdWUsXHJcbiAgICAgIH07XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiIsIiAgQGlmKGNvbnRyb2wudG91Y2hlZCkge1xyXG4gICAgQGZvcihlcnJvciBvZiBlcnJvcnMgfCBrZXl2YWx1ZTsgdHJhY2sgZXJyb3IgKSB7XHJcbiAgICAgICAgICAgIDxtYXQtZXJyb3IgY2xhc3M9XCJtYi0yXCI+XHJcbiAgICAgICAgICAgICAgICB7eyBlcnJvck1lc3NhZ2VzW2Vycm9yLmtleV0gfX0ge3tlcnJvcnNbJ21heGxlbmd0aCddPy5yZXF1aXJlZExlbmd0aH19IHt7ZXJyb3JzWydtaW5sZW5ndGgnXT8ucmVxdWlyZWRMZW5ndGh9fVxyXG4gICAgICAgICAgICAgIDwvbWF0LWVycm9yPlxyXG4gICAgfVxyXG4gIH0iXX0=
@@ -69,7 +69,7 @@ export class GeneralApproverSectionComponent {
69
69
  this.fieldsForm.reset();
70
70
  }
71
71
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: GeneralApproverSectionComponent, deps: [{ token: i1.CoreI18nService }, { token: i2.FormBuilder }, { token: i1.ActionStateService }], target: i0.ɵɵFactoryTarget.Component });
72
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.8", type: GeneralApproverSectionComponent, isStandalone: true, selector: "app-general-approver-section", inputs: { isReadOnly: "isReadOnly", section: "section", form: "form", lov: "lov", className: "className" }, ngImport: i0, template: "<div\r\n [ngClass]=\"{'form-section-divide form-section':!section?.header?.readOnly,'info-section':section?.header?.readOnly}\">\r\n\r\n <ds-alert class=\"full\" type=\"warning\" icon=\"info\">\r\n\r\n <div class=\"d-flex gap-2\">\r\n\r\n Request details working fine\r\n\r\n </div>\r\n\r\n </ds-alert>\r\n\r\n <form [formGroup]=\"fieldsForm\">\r\n <app-input formControlName=\"input1\"></app-input>\r\n </form>\r\n\r\n</div>\r\n@if (!section?.header?.readOnly) {\r\n <div class=\"mt-4\">\r\n <lib-action-buttons\r\n [lovOptions]=\"lov?.['decision']?.options\"\r\n [lovType]=\"lov?.['decision']?.type\"\r\n [section]=\"section\"\r\n [form]=\"form\"\r\n [sections]=\"form.sections\"\r\n [showApprovalCycle]=\"true\"\r\n [customCall]=\"false\"\r\n [fieldsForm]=\"fieldsForm\"\r\n (customCallEmit)=\"customCallSubmit($event)\"\r\n (resetFormEmit)=\"resetForm()\"\r\n />\r\n </div>\r\n}\r\n", styles: [".form-section-divide{--form-section-columns: 1fr 1fr}@media (max-width: 756px){.form-section-divide{--form-section-columns: 100%}}.form-section-divide .full{grid-column:1/-1}.head-title{position:relative;margin-bottom:12px}.head-title h3{display:inline-block;color:#8e9aa0;font-size:14px;font-weight:500;background-color:#fff;padding-inline-end:20px;position:relative;z-index:2;margin:0}.head-title:after{content:\"\";position:absolute;width:100%;height:1px;background-color:#dee0e2;top:50%;left:0;right:0;transform:translateY(-50%);z-index:1}.chamber{margin-bottom:20px}.chamber .chamber-content{background-color:#f8f8f8;padding:20px}.chamber .chamber-content .chamber-select{display:flex}.chamber .chamber-content mat-checkbox{font-size:14px}\n"], dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: InputComponent, selector: "app-input", inputs: ["label", "hasTooltip", "tooltip", "floatLabel", "className", "showLabel", "iconPrefixName", "matSuffix", "iconSuffixName", "emitedChangedValue1"] }, { kind: "component", type: ActionButtonsComponent, selector: "lib-action-buttons", inputs: ["lovOptions", "lovType", "fieldsForm", "form", "section", "sections", "showApprovalCycle", "customCall"], outputs: ["resetFormEmit", "customCallEmit"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i2.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }] });
72
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.8", type: GeneralApproverSectionComponent, isStandalone: true, selector: "app-general-approver-section", inputs: { isReadOnly: "isReadOnly", section: "section", form: "form", lov: "lov", className: "className" }, ngImport: i0, template: "<div\r\n [ngClass]=\"{'form-section-divide form-section':!section?.header?.readOnly,'info-section':section?.header?.readOnly}\">\r\n\r\n <ds-alert class=\"full\" type=\"warning\" icon=\"info\">\r\n\r\n <div class=\"d-flex gap-2\">\r\n\r\n Request details working fine\r\n\r\n </div>\r\n\r\n </ds-alert>\r\n\r\n <form [formGroup]=\"fieldsForm\">\r\n <app-input formControlName=\"input1\"></app-input>\r\n </form>\r\n\r\n</div>\r\n@if (!section?.header?.readOnly) {\r\n <div class=\"mt-4\">\r\n <lib-action-buttons\r\n [lovOptions]=\"lov?.['decision']?.options\"\r\n [lovType]=\"lov?.['decision']?.type\"\r\n [section]=\"section\"\r\n [form]=\"form\"\r\n [sections]=\"form.sections\"\r\n [showApprovalCycle]=\"true\"\r\n [customCall]=\"false\"\r\n [fieldsForm]=\"fieldsForm\"\r\n (customCallEmit)=\"customCallSubmit($event)\"\r\n (resetFormEmit)=\"resetForm()\"\r\n />\r\n </div>\r\n}\r\n", styles: [".form-section-divide{--form-section-columns: 1fr 1fr}@media (max-width: 756px){.form-section-divide{--form-section-columns: 100%}}.form-section-divide .full{grid-column:1/-1}.head-title{position:relative;margin-bottom:12px}.head-title h3{display:inline-block;color:#8e9aa0;font-size:14px;font-weight:500;background-color:#fff;padding-inline-end:20px;position:relative;z-index:2;margin:0}.head-title:after{content:\"\";position:absolute;width:100%;height:1px;background-color:#dee0e2;top:50%;left:0;right:0;transform:translateY(-50%);z-index:1}.chamber{margin-bottom:20px}.chamber .chamber-content{background-color:#f8f8f8;padding:20px}.chamber .chamber-content .chamber-select{display:flex}.chamber .chamber-content mat-checkbox{font-size:14px}\n"], dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: InputComponent, selector: "app-input", inputs: ["hasTooltip", "tooltip", "floatLabel", "className", "showLabel", "iconPrefixName", "iconSuffixName", "emitedChangedValue1"] }, { kind: "component", type: ActionButtonsComponent, selector: "lib-action-buttons", inputs: ["lovOptions", "lovType", "fieldsForm", "form", "section", "sections", "showApprovalCycle", "customCall"], outputs: ["resetFormEmit", "customCallEmit"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i2.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }] });
73
73
  }
74
74
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: GeneralApproverSectionComponent, decorators: [{
75
75
  type: Component,
@@ -94,4 +94,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImpor
94
94
  }], className: [{
95
95
  type: Input
96
96
  }] } });
97
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VuZXJhbC1hcHByb3Zlci1zZWN0aW9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2JwbS1jb3JlL3NyYy9saWIvdGVzdENvbXBvbmVudC9nZW5lcmFsLWFwcHJvdmVyLXNlY3Rpb24vZ2VuZXJhbC1hcHByb3Zlci1zZWN0aW9uLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2JwbS1jb3JlL3NyYy9saWIvdGVzdENvbXBvbmVudC9nZW5lcmFsLWFwcHJvdmVyLXNlY3Rpb24vZ2VuZXJhbC1hcHByb3Zlci1zZWN0aW9uLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQUUsc0JBQXNCLEVBQUUsS0FBSyxFQUFFLGdCQUFnQixFQUFTLE1BQU0sZUFBZSxDQUFDO0FBR2pHLE9BQU8sRUFBQyxPQUFPLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBQ3ZELE9BQU8sRUFBQyxzQkFBc0IsRUFBQyxNQUFNLG9DQUFvQyxDQUFDO0FBQzFFLE9BQU8sRUFBYyxXQUFXLEVBQUUsU0FBUyxFQUFFLG1CQUFtQixFQUFFLFVBQVUsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQ3BHLE9BQU8sRUFBQyx5QkFBeUIsRUFBRSxjQUFjLEVBQUMsTUFBTSxvQ0FBb0MsQ0FBQztBQUM3RixPQUFPLEVBQUMseUJBQXlCLEVBQUMsTUFBTSw2RkFBNkYsQ0FBQzs7OztBQW1CdEksTUFBTSxPQUFPLCtCQUErQjtJQWdCdkI7SUFBK0I7SUFBeUI7SUFkbEUsVUFBVSxDQUFVO0lBQ3BCLE9BQU8sQ0FBVTtJQUNqQixJQUFJLENBQU87SUFDWCxHQUFHLENBQU07SUFDVCxTQUFTLEdBQVcsY0FBYyxDQUFDO0lBQzVDLFVBQVUsQ0FBWTtJQUN0QixPQUFPLEdBQUcsQ0FBQyxHQUFHLEtBQUssQ0FB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LGNBQWMsa05BR2Qsc0JBQXNCLCtOQUN0QixtQkFBbUI7OzJGQUtWLCtCQUErQjtrQkFqQjNDLFNBQVM7K0JBQ0UsOEJBQThCLGNBRzVCLElBQUksV0FDUCxDQUFDLHNCQUFzQixFQUFFLGdCQUFnQixDQUFDLFdBQzFDO3dCQUNQLE9BQU87d0JBQ1AsY0FBYzt3QkFDZCxJQUFJO3dCQUNKLE9BQU87d0JBQ1Asc0JBQXNCO3dCQUN0QixtQkFBbUI7d0JBQ25CLHlCQUF5Qjt3QkFDekIseUJBQXlCO3FCQUMxQjsrSUFJUSxVQUFVO3NCQUFsQixLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSztnQkFDRyxJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csR0FBRztzQkFBWCxLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NvbXBvbmVudCwgQ1VTVE9NX0VMRU1FTlRTX1NDSEVNQSwgSW5wdXQsIE5PX0VSUk9SU19TQ0hFTUEsIE9uSW5pdH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7Rm9ybSwgU2VjdGlvbn0gZnJvbSBcIi4uLy4uL2ludGVyZmFjZXNcIjtcclxuaW1wb3J0IHtBY3Rpb25TdGF0ZVNlcnZpY2UsIENvcmVJMThuU2VydmljZX0gZnJvbSBcIi4uLy4uL3NlcnZpY2VzXCI7XHJcbmltcG9ydCB7TmdDbGFzcywgTmdGb3JPZiwgTmdJZn0gZnJvbSBcIkBhbmd1bGFyL2NvbW1vblwiO1xyXG5pbXBvcnQge0FjdGlvbkJ1dHRvbnNDb21wb25lbnR9IGZyb20gXCIuLi8uLi9jb21wb25lbnRzL3NoYXJlZC1jb21wb25lbnRzXCI7XHJcbmltcG9ydCB7Rm9ybUJ1aWxkZXIsIEZvcm1Db250cm9sLCBGb3JtR3JvdXAsIFJlYWN0aXZlRm9ybXNNb2R1bGUsIFZhbGlkYXRvcnN9IGZyb20gXCJAYW5ndWxhci9mb3Jtc1wiO1xyXG5pbXBvcnQge0N1c3RvbVNlYXJjaGFibGVDb21wb25lbnQsIElucHV0Q29tcG9uZW50fSBmcm9tICcuLi8uLi9jb21wb25lbnRzL3NoYXJlZC1jb21wb25lbnRzJztcclxuaW1wb3J0IHtWYWxpZGF0aW9uRXJyb3JzQ29tcG9uZW50fSBmcm9tICcuLi8uLi9jb21wb25lbnRzL3NoYXJlZC1jb21wb25lbnRzL2Zvcm0tZmllbGQvdmFsaWRhdGlvbi1lcnJvcnMvdmFsaWRhdGlvbi1lcnJvcnMuY29tcG9uZW50JztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnYXBwLWdlbmVyYWwtYXBwcm92ZXItc2VjdGlvbicsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2dlbmVyYWwtYXBwcm92ZXItc2VjdGlvbi5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vZ2VuZXJhbC1hcHByb3Zlci1zZWN0aW9uLmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcclxuICBzY2hlbWFzOiBbQ1VTVE9NX0VMRU1FTlRTX1NDSEVNQSwgTk9fRVJST1JTX1NDSEVNQV0sXHJcbiAgaW1wb3J0czogW1xyXG4gICAgTmdDbGFzcyxcclxuICAgIElucHV0Q29tcG9uZW50LFxyXG4gICAgTmdJZixcclxuICAgIE5nRm9yT2YsXHJcbiAgICBBY3Rpb25CdXR0b25zQ29tcG9uZW50LFxyXG4gICAgUmVhY3RpdmVGb3Jtc01vZHVsZSxcclxuICAgIFZhbGlkYXRpb25FcnJvcnNDb21wb25lbnQsXHJcbiAgICBDdXN0b21TZWFyY2hhYmxlQ29tcG9uZW50XHJcbiAgXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgR2VuZXJhbEFwcHJvdmVyU2VjdGlvbkNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdHtcclxuXHJcbiAgQElucHV0KCkgaXNSZWFkT25seTogYm9vbGVhbjtcclxuICBASW5wdXQoKSBzZWN0aW9uOiBTZWN0aW9uO1xyXG4gIEBJbnB1dCgpIGZvcm06IEZvcm07XHJcbiAgQElucHV0KCkgbG92OiBhbnk7XHJcbiAgQElucHV0KCkgY2xhc3NOYW1lOiBzdHJpbmcgPSBcImluZm8tc2VjdGlvblwiO1xyXG4gIGZpZWxkc0Zvcm06IEZvcm1Hcm91cDtcclxuICBudW1iZXJzID0gWy4uLkFycmF5KDEwMCkua2V5cygpXS5tYXAoaSA9PiBpICsgMSk7XHJcblxyXG4gIGZvcm1Hcm91cCA9IG5ldyBGb3JtR3JvdXAoe1xyXG4gICAgbmFtZTogbmV3IEZvcm1Db250cm9sKCcnLCBbVmFsaWRhdG9ycy5yZXF1aXJlZCwgVmFsaWRhdG9ycy5tYXhMZW5ndGgoMyksIFZhbGlkYXRvcnMubWluTGVuZ3RoKDIpXSksXHJcbiAgICBjb3VudHJpZXM6IG5ldyBGb3JtQ29udHJvbCgnJywgVmFsaWRhdG9ycy5yZXF1aXJlZCksXHJcbiAgfSk7XHJcblxyXG5cclxuICBjb25zdHJ1Y3RvcihwdWJsaWMgaTE4bjogQ29yZUkxOG5TZXJ2aWNlLCBwcml2YXRlIGZiOiBGb3JtQnVpbGRlciwgcHJpdmF0ZSBhY3Rpb25TdGF0ZVNlcnZpY2U6IEFjdGlvblN0YXRlU2VydmljZSkge1xyXG5cclxuICB9XHJcblxyXG4gIG5nT25Jbml0KCkge1xyXG4gICAgdGhpcy5jcmVhdGVGb3JtKCk7XHJcbiAgfVxyXG5cclxuICBjcmVhdGVGb3JtKCkge1xyXG4gICAgbGV0IG5ld0Zvcm0gPSB7XHJcbiAgICAgIGlucHV0MTogWycnLCBWYWxpZGF0b3JzLnJlcXVpcmVkXVxyXG4gICAgfTtcclxuICAgIHRoaXMubG92Py5bJ2RlY2lzaW9uJ10/Lm9wdGlvbnM/LmZvckVhY2gob3B0aW9uID0+IHtcclxuICAgICAgbmV3Rm9ybVtvcHRpb24udmFsdWVdID0gWycnXTtcclxuICAgIH0pXHJcbiAgICB0aGlzLmZpZWxkc0Zvcm0gPSB0aGlzLmZiLmdyb3VwKG5ld0Zvcm0pO1xyXG5cclxuICAgIGNvbnN0IGNoZWNrVmFsaWRpdHlBbmRVcGRhdGUgPSAoKSA9PiB7XHJcbiAgICAgIHRoaXMubG92Py5bJ2RlY2lzaW9uJ10/Lm9wdGlvbnM/LmZvckVhY2gob3B0aW9uID0+IHtcclxuICAgICAgICBsZXQgaXNBY3Rpb25WYWxpZCA9IHRoaXMuY2hlY2tWYWxpZGl0eShvcHRpb24udmFsdWUpO1xyXG4gICAgICAgIHRoaXMuYWN0aW9uU3RhdGVTZXJ2aWNlLnNldEFjdGlvblZhbGlkKG9wdGlvbi52YWx1ZSwgaXNBY3Rpb25WYWxpZCk7XHJcbiAgICAgICAgdGhpcy5zZWN0aW9uLmJvZHkuZGV0YWlscyA9IHRoaXMuZmllbGRzRm9ybS52YWx1ZVxyXG4gICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICBjaGVja1ZhbGlkaXR5QW5kVXBkYXRlKCk7XHJcblxyXG4gICAgdGhpcy5maWVsZHNGb3JtLnZhbHVlQ2hhbmdlcy5zdWJzY3JpYmUoKCkgPT4ge1xyXG4gICAgICBjaGVja1ZhbGlkaXR5QW5kVXBkYXRlKCk7XHJcbiAgICB9KTtcclxuXHJcbiAgfVxyXG5cclxuICBjaGVja1ZhbGlkaXR5KGFjdGlvbjogc3RyaW5nKTogYm9vbGVhbiB7XHJcbiAgICBzd2l0Y2ggKGFjdGlvbikge1xyXG4gICAgICBjYXNlICdBUFBST1ZFJzpcclxuICAgICAgICByZXR1cm4gdHJ1ZTtcclxuICAgICAgY2FzZSAnUkVKRUNUJzpcclxuICAgICAgICByZXR1cm4gdGhpcy5maWVsZHNGb3JtLnZhbGlkO1xyXG4gICAgICBjYXNlICdTRU5EQkFDSyc6XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuZmllbGRzRm9ybS52YWxpZDtcclxuICAgICAgZGVmYXVsdDpcclxuICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuXHJcbiAgY3VzdG9tQ2FsbFN1Ym1pdChhY3Rpb246IHN0cmluZykge1xyXG4gICAgY29uc29sZS5sb2coJ2N1c3RvbUNhbGxTdWJtaXQnLCBhY3Rpb24pXHJcbiAgfVxyXG5cclxuICByZXNldEZvcm0oKSB7XHJcbiAgICB0aGlzLmZpZWxkc0Zvcm0ucmVzZXQoKVxyXG4gIH1cclxuXHJcbn1cclxuIiwiPGRpdlxyXG4gIFtuZ0NsYXNzXT1cInsnZm9ybS1zZWN0aW9uLWRpdmlkZSBmb3JtLXNlY3Rpb24nOiFzZWN0aW9uPy5oZWFkZXI/LnJlYWRPbmx5LCdpbmZvLXNlY3Rpb24nOnNlY3Rpb24/LmhlYWRlcj8ucmVhZE9ubHl9XCI+XHJcblxyXG4gIDxkcy1hbGVydCBjbGFzcz1cImZ1bGxcIiB0eXBlPVwid2FybmluZ1wiIGljb249XCJpbmZvXCI+XHJcblxyXG4gICAgPGRpdiBjbGFzcz1cImQtZmxleCBnYXAtMlwiPlxyXG5cclxuICAgICAgUmVxdWVzdCBkZXRhaWxzIHdvcmtpbmcgZmluZVxyXG5cclxuICAgIDwvZGl2PlxyXG5cclxuICA8L2RzLWFsZXJ0PlxyXG5cclxuICA8Zm9ybSBbZm9ybUdyb3VwXT1cImZpZWxkc0Zvcm1cIj5cclxuICAgIDxhcHAtaW5wdXQgZm9ybUNvbnRyb2xOYW1lPVwiaW5wdXQxXCI+PC9hcHAtaW5wdXQ+XHJcbiAgPC9mb3JtPlxyXG5cclxuPC9kaXY+XHJcbkBpZiAoIXNlY3Rpb24/LmhlYWRlcj8ucmVhZE9ubHkpIHtcclxuICA8ZGl2IGNsYXNzPVwibXQtNFwiPlxyXG4gICAgPGxpYi1hY3Rpb24tYnV0dG9uc1xyXG4gICAgICBbbG92T3B0aW9uc109XCJsb3Y/LlsnZGVjaXNpb24nXT8ub3B0aW9uc1wiXHJcbiAgICAgIFtsb3ZUeXBlXT1cImxvdj8uWydkZWNpc2lvbiddPy50eXBlXCJcclxuICAgICAgW3NlY3Rpb25dPVwic2VjdGlvblwiXHJcbiAgICAgIFtmb3JtXT1cImZvcm1cIlxyXG4gICAgICBbc2VjdGlvbnNdPVwiZm9ybS5zZWN0aW9uc1wiXHJcbiAgICAgIFtzaG93QXBwcm92YWxDeWNsZV09XCJ0cnVlXCJcclxuICAgICAgW2N1c3RvbUNhbGxdPVwiZmFsc2VcIlxyXG4gICAgICBbZmllbGRzRm9ybV09XCJmaWVsZHNGb3JtXCJcclxuICAgICAgKGN1c3RvbUNhbGxFbWl0KT1cImN1c3RvbUNhbGxTdWJtaXQoJGV2ZW50KVwiXHJcbiAgICAgIChyZXNldEZvcm1FbWl0KT1cInJlc2V0Rm9ybSgpXCJcclxuICAgIC8+XHJcbiAgPC9kaXY+XHJcbn1cclxuIl19
97
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VuZXJhbC1hcHByb3Zlci1zZWN0aW9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2JwbS1jb3JlL3NyYy9saWIvdGVzdENvbXBvbmVudC9nZW5lcmFsLWFwcHJvdmVyLXNlY3Rpb24vZ2VuZXJhbC1hcHByb3Zlci1zZWN0aW9uLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2JwbS1jb3JlL3NyYy9saWIvdGVzdENvbXBvbmVudC9nZW5lcmFsLWFwcHJvdmVyLXNlY3Rpb24vZ2VuZXJhbC1hcHByb3Zlci1zZWN0aW9uLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQUUsc0JBQXNCLEVBQUUsS0FBSyxFQUFFLGdCQUFnQixFQUFTLE1BQU0sZUFBZSxDQUFDO0FBR2pHLE9BQU8sRUFBQyxPQUFPLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBQ3ZELE9BQU8sRUFBQyxzQkFBc0IsRUFBQyxNQUFNLG9DQUFvQyxDQUFDO0FBQzFFLE9BQU8sRUFBYyxXQUFXLEVBQUUsU0FBUyxFQUFFLG1CQUFtQixFQUFFLFVBQVUsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQ3BHLE9BQU8sRUFBQyx5QkFBeUIsRUFBRSxjQUFjLEVBQUMsTUFBTSxvQ0FBb0MsQ0FBQztBQUM3RixPQUFPLEVBQUMseUJBQXlCLEVBQUMsTUFBTSw2RkFBNkYsQ0FBQzs7OztBQW1CdEksTUFBTSxPQUFPLCtCQUErQjtJQWdCdkI7SUFBK0I7SUFBeUI7SUFkbEUsVUFBVSxDQUFVO0lBQ3BCLE9BQU8sQ0FBVTtJQUNqQixJQUFJLENBQU87SUFDWCxHQUFHLENBQU07SUFDVCxTQUFTLEdBQVcsY0FBYyxDQUFDO0lBQzVDLFVBQVUsQ0FBWTtJQUN0QixPQUFPLEdBQUcsQ0FBQyxHQUFHLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztJQUVqRCxTQUFTLEdBQUcsSUFBSSxTQUFTLENBQUM7UUFDeEIsSUFBSSxFQUFFLElBQUksV0FBVyxDQUFDLEVBQUUsRUFBRSxDQUFDLFVBQVUsQ0FBQyxRQUFRLEVBQUUsVUFBVSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRSxVQUFVLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDbEcsU0FBUyxFQUFFLElBQUksV0FBVyxDQUFDLEVBQUUsRUFBRSxVQUFVLENBQUMsUUFBUSxDQUFDO0tBQ3BELENBQUMsQ0FBQztJQUdILFlBQW1CLElBQXFCLEVBQVUsRUFBZSxFQUFVLGtCQUFzQztRQUE5RixTQUFJLEdBQUosSUFBSSxDQUFpQjtRQUFVLE9BQUUsR0FBRixFQUFFLENBQWE7UUFBVSx1QkFBa0IsR0FBbEIsa0JBQWtCLENBQW9CO0lBRWpILENBQUM7SUFFRCxRQUFRO1FBQ04sSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO0lBQ3BCLENBQUM7SUFFRCxVQUFVO1FBQ1IsSUFBSSxPQUFPLEdBQUc7WUFDWixNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUUsVUFBVSxDQUFDLFFBQVEsQ0FBQztTQUNsQyxDQUFDO1FBQ0YsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDLFVBQVUsQ0FBQyxFQUFFLE9BQU8sRUFBRSxPQUFPLENBQUMsTUFBTSxDQUFDLEVBQUU7WUFDaEQsT0FBTyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQy9CLENBQUMsQ0FBQyxDQUFBO1FBQ0YsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUV6QyxNQUFNLHNCQUFzQixHQUFHLEdBQUcsRUFBRTtZQUNsQyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUMsVUFBVSxDQUFDLEVBQUUsT0FBTyxFQUFFLE9BQU8sQ0FBQyxNQUFNLENBQUMsRUFBRTtnQkFDaEQsSUFBSSxhQUFhLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7Z0JBQ3JELElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDLEtBQUssRUFBRSxhQUFhLENBQUMsQ0FBQztnQkFDcEUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFBO1lBQ25ELENBQUMsQ0FBQyxDQUFDO1FBQ0wsQ0FBQyxDQUFBO1FBRUQsc0JBQXNCLEVBQUUsQ0FBQztRQUV6QixJQUFJLENBQUMsVUFBVSxDQUFDLFlBQVksQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFO1lBQzFDLHNCQUFzQixFQUFFLENBQUM7UUFDM0IsQ0FBQyxDQUFDLENBQUM7SUFFTCxDQUFDO0lBRUQsYUFBYSxDQUFDLE1BQWM7UUFDMUIsUUFBUSxNQUFNLEVBQUUsQ0FBQztZQUNmLEtBQUssU0FBUztnQkFDWixPQUFPLElBQUksQ0FBQztZQUNkLEtBQUssUUFBUTtnQkFDWCxPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDO1lBQy9CLEtBQUssVUFBVTtnQkFDYixPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDO1lBQy9CO2dCQUNFLE9BQU8sS0FBSyxDQUFDO1FBQ2pCLENBQUM7SUFDSCxDQUFDO0lBR0QsZ0JBQWdCLENBQUMsTUFBYztRQUM3QixPQUFPLENBQUMsR0FBRyxDQUFDLGtCQUFrQixFQUFFLE1BQU0sQ0FBQyxDQUFBO0lBQ3pDLENBQUM7SUFFRCxTQUFTO1FBQ1AsSUFBSSxDQUFDLFVBQVUsQ0FBQyxLQUFLLEVBQUUsQ0FBQTtJQUN6QixDQUFDO3VHQXJFVSwrQkFBK0I7MkZBQS9CLCtCQUErQixvTUMxQjVDLHE4QkFrQ0Esb3lCRGxCSSxPQUFPLG9GQUNQLGNBQWMsNExBR2Qsc0JBQXNCLCtOQUN0QixtQkFBbUI7OzJGQUtWLCtCQUErQjtrQkFqQjNDLFNBQVM7K0JBQ0UsOEJBQThCLGNBRzVCLElBQUksV0FDUCxDQUFDLHNCQUFzQixFQUFFLGdCQUFnQixDQUFDLFdBQzFDO3dCQUNQLE9BQU87d0JBQ1AsY0FBYzt3QkFDZCxJQUFJO3dCQUNKLE9BQU87d0JBQ1Asc0JBQXNCO3dCQUN0QixtQkFBbUI7d0JBQ25CLHlCQUF5Qjt3QkFDekIseUJBQXlCO3FCQUMxQjsrSUFJUSxVQUFVO3NCQUFsQixLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSztnQkFDRyxJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csR0FBRztzQkFBWCxLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NvbXBvbmVudCwgQ1VTVE9NX0VMRU1FTlRTX1NDSEVNQSwgSW5wdXQsIE5PX0VSUk9SU19TQ0hFTUEsIE9uSW5pdH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7Rm9ybSwgU2VjdGlvbn0gZnJvbSBcIi4uLy4uL2ludGVyZmFjZXNcIjtcclxuaW1wb3J0IHtBY3Rpb25TdGF0ZVNlcnZpY2UsIENvcmVJMThuU2VydmljZX0gZnJvbSBcIi4uLy4uL3NlcnZpY2VzXCI7XHJcbmltcG9ydCB7TmdDbGFzcywgTmdGb3JPZiwgTmdJZn0gZnJvbSBcIkBhbmd1bGFyL2NvbW1vblwiO1xyXG5pbXBvcnQge0FjdGlvbkJ1dHRvbnNDb21wb25lbnR9IGZyb20gXCIuLi8uLi9jb21wb25lbnRzL3NoYXJlZC1jb21wb25lbnRzXCI7XHJcbmltcG9ydCB7Rm9ybUJ1aWxkZXIsIEZvcm1Db250cm9sLCBGb3JtR3JvdXAsIFJlYWN0aXZlRm9ybXNNb2R1bGUsIFZhbGlkYXRvcnN9IGZyb20gXCJAYW5ndWxhci9mb3Jtc1wiO1xyXG5pbXBvcnQge0N1c3RvbVNlYXJjaGFibGVDb21wb25lbnQsIElucHV0Q29tcG9uZW50fSBmcm9tICcuLi8uLi9jb21wb25lbnRzL3NoYXJlZC1jb21wb25lbnRzJztcclxuaW1wb3J0IHtWYWxpZGF0aW9uRXJyb3JzQ29tcG9uZW50fSBmcm9tICcuLi8uLi9jb21wb25lbnRzL3NoYXJlZC1jb21wb25lbnRzL2Zvcm0tZmllbGQvdmFsaWRhdGlvbi1lcnJvcnMvdmFsaWRhdGlvbi1lcnJvcnMuY29tcG9uZW50JztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnYXBwLWdlbmVyYWwtYXBwcm92ZXItc2VjdGlvbicsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2dlbmVyYWwtYXBwcm92ZXItc2VjdGlvbi5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vZ2VuZXJhbC1hcHByb3Zlci1zZWN0aW9uLmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcclxuICBzY2hlbWFzOiBbQ1VTVE9NX0VMRU1FTlRTX1NDSEVNQSwgTk9fRVJST1JTX1NDSEVNQV0sXHJcbiAgaW1wb3J0czogW1xyXG4gICAgTmdDbGFzcyxcclxuICAgIElucHV0Q29tcG9uZW50LFxyXG4gICAgTmdJZixcclxuICAgIE5nRm9yT2YsXHJcbiAgICBBY3Rpb25CdXR0b25zQ29tcG9uZW50LFxyXG4gICAgUmVhY3RpdmVGb3Jtc01vZHVsZSxcclxuICAgIFZhbGlkYXRpb25FcnJvcnNDb21wb25lbnQsXHJcbiAgICBDdXN0b21TZWFyY2hhYmxlQ29tcG9uZW50XHJcbiAgXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgR2VuZXJhbEFwcHJvdmVyU2VjdGlvbkNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdHtcclxuXHJcbiAgQElucHV0KCkgaXNSZWFkT25seTogYm9vbGVhbjtcclxuICBASW5wdXQoKSBzZWN0aW9uOiBTZWN0aW9uO1xyXG4gIEBJbnB1dCgpIGZvcm06IEZvcm07XHJcbiAgQElucHV0KCkgbG92OiBhbnk7XHJcbiAgQElucHV0KCkgY2xhc3NOYW1lOiBzdHJpbmcgPSBcImluZm8tc2VjdGlvblwiO1xyXG4gIGZpZWxkc0Zvcm06IEZvcm1Hcm91cDtcclxuICBudW1iZXJzID0gWy4uLkFycmF5KDEwMCkua2V5cygpXS5tYXAoaSA9PiBpICsgMSk7XHJcblxyXG4gIGZvcm1Hcm91cCA9IG5ldyBGb3JtR3JvdXAoe1xyXG4gICAgbmFtZTogbmV3IEZvcm1Db250cm9sKCcnLCBbVmFsaWRhdG9ycy5yZXF1aXJlZCwgVmFsaWRhdG9ycy5tYXhMZW5ndGgoMyksIFZhbGlkYXRvcnMubWluTGVuZ3RoKDIpXSksXHJcbiAgICBjb3VudHJpZXM6IG5ldyBGb3JtQ29udHJvbCgnJywgVmFsaWRhdG9ycy5yZXF1aXJlZCksXHJcbiAgfSk7XHJcblxyXG5cclxuICBjb25zdHJ1Y3RvcihwdWJsaWMgaTE4bjogQ29yZUkxOG5TZXJ2aWNlLCBwcml2YXRlIGZiOiBGb3JtQnVpbGRlciwgcHJpdmF0ZSBhY3Rpb25TdGF0ZVNlcnZpY2U6IEFjdGlvblN0YXRlU2VydmljZSkge1xyXG5cclxuICB9XHJcblxyXG4gIG5nT25Jbml0KCkge1xyXG4gICAgdGhpcy5jcmVhdGVGb3JtKCk7XHJcbiAgfVxyXG5cclxuICBjcmVhdGVGb3JtKCkge1xyXG4gICAgbGV0IG5ld0Zvcm0gPSB7XHJcbiAgICAgIGlucHV0MTogWycnLCBWYWxpZGF0b3JzLnJlcXVpcmVkXVxyXG4gICAgfTtcclxuICAgIHRoaXMubG92Py5bJ2RlY2lzaW9uJ10/Lm9wdGlvbnM/LmZvckVhY2gob3B0aW9uID0+IHtcclxuICAgICAgbmV3Rm9ybVtvcHRpb24udmFsdWVdID0gWycnXTtcclxuICAgIH0pXHJcbiAgICB0aGlzLmZpZWxkc0Zvcm0gPSB0aGlzLmZiLmdyb3VwKG5ld0Zvcm0pO1xyXG5cclxuICAgIGNvbnN0IGNoZWNrVmFsaWRpdHlBbmRVcGRhdGUgPSAoKSA9PiB7XHJcbiAgICAgIHRoaXMubG92Py5bJ2RlY2lzaW9uJ10/Lm9wdGlvbnM/LmZvckVhY2gob3B0aW9uID0+IHtcclxuICAgICAgICBsZXQgaXNBY3Rpb25WYWxpZCA9IHRoaXMuY2hlY2tWYWxpZGl0eShvcHRpb24udmFsdWUpO1xyXG4gICAgICAgIHRoaXMuYWN0aW9uU3RhdGVTZXJ2aWNlLnNldEFjdGlvblZhbGlkKG9wdGlvbi52YWx1ZSwgaXNBY3Rpb25WYWxpZCk7XHJcbiAgICAgICAgdGhpcy5zZWN0aW9uLmJvZHkuZGV0YWlscyA9IHRoaXMuZmllbGRzRm9ybS52YWx1ZVxyXG4gICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICBjaGVja1ZhbGlkaXR5QW5kVXBkYXRlKCk7XHJcblxyXG4gICAgdGhpcy5maWVsZHNGb3JtLnZhbHVlQ2hhbmdlcy5zdWJzY3JpYmUoKCkgPT4ge1xyXG4gICAgICBjaGVja1ZhbGlkaXR5QW5kVXBkYXRlKCk7XHJcbiAgICB9KTtcclxuXHJcbiAgfVxyXG5cclxuICBjaGVja1ZhbGlkaXR5KGFjdGlvbjogc3RyaW5nKTogYm9vbGVhbiB7XHJcbiAgICBzd2l0Y2ggKGFjdGlvbikge1xyXG4gICAgICBjYXNlICdBUFBST1ZFJzpcclxuICAgICAgICByZXR1cm4gdHJ1ZTtcclxuICAgICAgY2FzZSAnUkVKRUNUJzpcclxuICAgICAgICByZXR1cm4gdGhpcy5maWVsZHNGb3JtLnZhbGlkO1xyXG4gICAgICBjYXNlICdTRU5EQkFDSyc6XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuZmllbGRzRm9ybS52YWxpZDtcclxuICAgICAgZGVmYXVsdDpcclxuICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuXHJcbiAgY3VzdG9tQ2FsbFN1Ym1pdChhY3Rpb246IHN0cmluZykge1xyXG4gICAgY29uc29sZS5sb2coJ2N1c3RvbUNhbGxTdWJtaXQnLCBhY3Rpb24pXHJcbiAgfVxyXG5cclxuICByZXNldEZvcm0oKSB7XHJcbiAgICB0aGlzLmZpZWxkc0Zvcm0ucmVzZXQoKVxyXG4gIH1cclxuXHJcbn1cclxuIiwiPGRpdlxyXG4gIFtuZ0NsYXNzXT1cInsnZm9ybS1zZWN0aW9uLWRpdmlkZSBmb3JtLXNlY3Rpb24nOiFzZWN0aW9uPy5oZWFkZXI/LnJlYWRPbmx5LCdpbmZvLXNlY3Rpb24nOnNlY3Rpb24/LmhlYWRlcj8ucmVhZE9ubHl9XCI+XHJcblxyXG4gIDxkcy1hbGVydCBjbGFzcz1cImZ1bGxcIiB0eXBlPVwid2FybmluZ1wiIGljb249XCJpbmZvXCI+XHJcblxyXG4gICAgPGRpdiBjbGFzcz1cImQtZmxleCBnYXAtMlwiPlxyXG5cclxuICAgICAgUmVxdWVzdCBkZXRhaWxzIHdvcmtpbmcgZmluZVxyXG5cclxuICAgIDwvZGl2PlxyXG5cclxuICA8L2RzLWFsZXJ0PlxyXG5cclxuICA8Zm9ybSBbZm9ybUdyb3VwXT1cImZpZWxkc0Zvcm1cIj5cclxuICAgIDxhcHAtaW5wdXQgZm9ybUNvbnRyb2xOYW1lPVwiaW5wdXQxXCI+PC9hcHAtaW5wdXQ+XHJcbiAgPC9mb3JtPlxyXG5cclxuPC9kaXY+XHJcbkBpZiAoIXNlY3Rpb24/LmhlYWRlcj8ucmVhZE9ubHkpIHtcclxuICA8ZGl2IGNsYXNzPVwibXQtNFwiPlxyXG4gICAgPGxpYi1hY3Rpb24tYnV0dG9uc1xyXG4gICAgICBbbG92T3B0aW9uc109XCJsb3Y/LlsnZGVjaXNpb24nXT8ub3B0aW9uc1wiXHJcbiAgICAgIFtsb3ZUeXBlXT1cImxvdj8uWydkZWNpc2lvbiddPy50eXBlXCJcclxuICAgICAgW3NlY3Rpb25dPVwic2VjdGlvblwiXHJcbiAgICAgIFtmb3JtXT1cImZvcm1cIlxyXG4gICAgICBbc2VjdGlvbnNdPVwiZm9ybS5zZWN0aW9uc1wiXHJcbiAgICAgIFtzaG93QXBwcm92YWxDeWNsZV09XCJ0cnVlXCJcclxuICAgICAgW2N1c3RvbUNhbGxdPVwiZmFsc2VcIlxyXG4gICAgICBbZmllbGRzRm9ybV09XCJmaWVsZHNGb3JtXCJcclxuICAgICAgKGN1c3RvbUNhbGxFbWl0KT1cImN1c3RvbUNhbGxTdWJtaXQoJGV2ZW50KVwiXHJcbiAgICAgIChyZXNldEZvcm1FbWl0KT1cInJlc2V0Rm9ybSgpXCJcclxuICAgIC8+XHJcbiAgPC9kaXY+XHJcbn1cclxuIl19