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,52 +1,49 @@
1
1
  /* eslint-disable @typescript-eslint/no-empty-function */
2
2
  /* eslint-disable @angular-eslint/use-lifecycle-interface */
3
3
  /* eslint-disable @angular-eslint/component-selector */
4
- import { Component, CUSTOM_ELEMENTS_SCHEMA, EventEmitter, Input, Output } from '@angular/core';
5
- import { BaseComponent } from '../base-component/base-component.component';
4
+ import { Component, CUSTOM_ELEMENTS_SCHEMA, EventEmitter, forwardRef, inject, Input, Output } from '@angular/core';
6
5
  import { MatCheckbox } from "@angular/material/checkbox";
7
- import { FormsModule } from "@angular/forms";
6
+ import { FormsModule, NG_VALUE_ACCESSOR } from "@angular/forms";
8
7
  import { NgIf } from "@angular/common";
8
+ import { ControlValueAccessorDirective } from '../control-value-accessor.directive';
9
+ import { TermsConditionsComponent } from '../../terms-conditions/terms-conditions.component';
10
+ import { MatDialog } from '@angular/material/dialog';
9
11
  import * as i0 from "@angular/core";
10
- import * as i1 from "@angular/forms";
11
- export class CheckBoxComponent extends BaseComponent {
12
+ export class CheckBoxComponent extends ControlValueAccessorDirective {
12
13
  containTerms;
13
14
  termsLabel;
14
15
  linkText;
15
16
  hrefLink;
17
+ link;
18
+ name;
19
+ randomID;
20
+ termsBody;
16
21
  downloadCheckBox = new EventEmitter();
17
- ngOnInit() {
18
- this.value = this.field ? JSON.parse(this.field) : false;
19
- // this.resetPropagator.subscribe(this, this.resetCheckBoxData);
20
- }
21
- resetCheckBoxData() {
22
- if (!this.isReadOnly) {
23
- this.emitedValue.emit('false');
24
- this.value = false;
25
- }
26
- }
22
+ dialog = inject(MatDialog);
27
23
  openUrl() {
28
24
  window.open(this.hrefLink);
29
25
  }
30
26
  valueChange(event) {
31
27
  const checked = event.checked;
32
- this.value = checked;
33
- this.field = (checked).toString();
34
- this.emitedValue.emit(this.field);
35
- }
36
- downloadFile() {
37
- this.downloadCheckBox.emit();
28
+ this.control.setValue(checked);
38
29
  }
39
30
  openTermsPopup() {
40
- // const dialogRef = this.dialog.open(TermsConditionsComponent, {
41
- // data: this.termsBody,
42
- // width: '700px',
43
- // panelClass: ['main-popup'],
44
- // });
45
- // dialogRef.afterClosed().subscribe(() => {
46
- // });
31
+ const dialogRef = this.dialog.open(TermsConditionsComponent, {
32
+ data: this.termsBody,
33
+ width: '700px',
34
+ panelClass: ['main-popup'],
35
+ });
36
+ dialogRef.afterClosed().subscribe(() => {
37
+ });
47
38
  }
48
39
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: CheckBoxComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
49
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.8", type: CheckBoxComponent, isStandalone: true, selector: "app-checkbox", inputs: { containTerms: "containTerms", termsLabel: "termsLabel", linkText: "linkText", hrefLink: "hrefLink" }, outputs: { downloadCheckBox: "downloadCheckBox" }, usesInheritance: true, ngImport: i0, template: "<mat-checkbox\r\n class=\"my-3\" [disabled]=\"isReadOnly || disabled\" id=\"{{name}}{{randomID}}\" [(ngModel)]=\"value\" [name]=\"name\"\r\n (change)=\"valueChange($event)\" [checked]=\"field\"\r\n>\r\n <span class=\"fs-12 fw-medium fc-onyx\">\r\n {{ isReadOnly ? labelTextReadMode : labelTextWriteMode }}\r\n </span>\r\n <span\r\n class=\"fs-12 fw-bold fc-coral cursor-pointer mx-1\" *ngIf=\"containTerms\"\r\n (click)=\"openTermsPopup(); false\">\r\n {{ termsLabel ? termsLabel : i18n.translate('termsAndConditions') }}\r\n </span>\r\n <ng-container *ngIf=\"link\">\r\n <span> | </span>\r\n <a class=\"fs-12 fw-bold fc-coral cursor-pointer mx-1 d-inline-flex align-items-center gap-1\" href=\"{{hrefLink}}\" target=\"_blank\">\r\n <ds-icon icon=\"external-link\"></ds-icon>\r\n <span class=\"underline\">{{ linkText }}</span>\r\n </a>\r\n </ng-container>\r\n <!-- <a *ngIf=\"containDownload\" style=\"color: blue;\" class=\"fs-12 fw-bold fc-coral cursor-pointer mx-1\" href=\"{{hrefLink}}\" target=\"_top\"> {{termsLabel}}</a> -->\r\n</mat-checkbox>\r\n", styles: [".checkbox{margin-top:10px!important;position:relative;margin-bottom:0!important}.checkbox label{padding-left:30px;font-size:14px;color:#414142}.checkbox input[type=checkbox]{opacity:0}.checkbox input[type=checkbox]+label.checkboxInput{position:absolute;width:25px;height:25px;top:0;left:0;padding-left:0}@media (max-width: 768px){.checkbox input[type=checkbox]+label.checkboxInput{top:8px!important}}.checkbox input[type=checkbox]+label.checkboxInput:before{content:\"\\f096\";font-family:FontAwesome;font-size:25px;display:block;margin-top:-7px;color:#ddd}.checkbox input[type=checkbox]:checked+label.checkboxInput:before{content:\"\\f14a\";color:#da3f7b;background-color:#fff}.rtlCheckbox.checkbox input[type=checkbox]+label.checkboxInput{left:inherit;right:0;padding-left:0;padding-right:0}.rtlCheckbox.checkbox label{padding-left:0;padding-right:30px}\n"], dependencies: [{ kind: "component", type: MatCheckbox, selector: "mat-checkbox", inputs: ["aria-label", "aria-labelledby", "aria-describedby", "id", "required", "labelPosition", "name", "value", "disableRipple", "tabIndex", "color", "disabledInteractive", "checked", "disabled", "indeterminate"], outputs: ["change", "indeterminateChange"], exportAs: ["matCheckbox"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
40
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.8", type: CheckBoxComponent, isStandalone: true, selector: "app-checkbox", inputs: { containTerms: "containTerms", termsLabel: "termsLabel", linkText: "linkText", hrefLink: "hrefLink", link: "link", name: "name", randomID: "randomID", termsBody: "termsBody" }, outputs: { downloadCheckBox: "downloadCheckBox" }, providers: [
41
+ {
42
+ provide: NG_VALUE_ACCESSOR,
43
+ useExisting: forwardRef(() => CheckBoxComponent),
44
+ multi: true,
45
+ },
46
+ ], usesInheritance: true, ngImport: i0, template: "<mat-checkbox\r\n class=\"my-3\" [disabled]=\"isDisabled\" id=\"{{name}}{{randomID}}\" [name]=\"name\"\r\n (change)=\"valueChange($event)\" [checked]=\"control.value\">\r\n <span class=\"fs-12 fw-medium fc-onyx\">\r\n {{ isReadOnly ? labelTextReadMode : labelTextWriteMode }}\r\n </span>\r\n @if(containTerms){\r\n <span\r\n class=\"fs-12 fw-bold fc-coral cursor-pointer mx-1\"\r\n (click)=\"openTermsPopup(); false\">\r\n {{ termsLabel ? termsLabel : i18n.translate('termsAndConditions') }}\r\n </span>\r\n }\r\n @if (link){\r\n <ng-container>\r\n <span> | </span>\r\n <a class=\"fs-12 fw-bold fc-coral cursor-pointer mx-1 d-inline-flex align-items-center gap-1\" href=\"{{hrefLink}}\" target=\"_blank\">\r\n <ds-icon icon=\"external-link\"></ds-icon>\r\n <span class=\"underline\">{{ linkText }}</span>\r\n </a>\r\n </ng-container>\r\n }\r\n \r\n <!-- <a *ngIf=\"containDownload\" style=\"color: blue;\" class=\"fs-12 fw-bold fc-coral cursor-pointer mx-1\" href=\"{{hrefLink}}\" target=\"_top\"> {{termsLabel}}</a> -->\r\n</mat-checkbox>\r\n", styles: [".checkbox{margin-top:10px!important;position:relative;margin-bottom:0!important}.checkbox label{padding-left:30px;font-size:14px;color:#414142}.checkbox input[type=checkbox]{opacity:0}.checkbox input[type=checkbox]+label.checkboxInput{position:absolute;width:25px;height:25px;top:0;left:0;padding-left:0}@media (max-width: 768px){.checkbox input[type=checkbox]+label.checkboxInput{top:8px!important}}.checkbox input[type=checkbox]+label.checkboxInput:before{content:\"\\f096\";font-family:FontAwesome;font-size:25px;display:block;margin-top:-7px;color:#ddd}.checkbox input[type=checkbox]:checked+label.checkboxInput:before{content:\"\\f14a\";color:#da3f7b;background-color:#fff}.rtlCheckbox.checkbox input[type=checkbox]+label.checkboxInput{left:inherit;right:0;padding-left:0;padding-right:0}.rtlCheckbox.checkbox label{padding-left:0;padding-right:30px}\n"], dependencies: [{ kind: "component", type: MatCheckbox, selector: "mat-checkbox", inputs: ["aria-label", "aria-labelledby", "aria-describedby", "id", "required", "labelPosition", "name", "value", "disableRipple", "tabIndex", "color", "disabledInteractive", "checked", "disabled", "indeterminate"], outputs: ["change", "indeterminateChange"], exportAs: ["matCheckbox"] }, { kind: "ngmodule", type: FormsModule }] });
50
47
  }
51
48
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: CheckBoxComponent, decorators: [{
52
49
  type: Component,
@@ -54,7 +51,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImpor
54
51
  MatCheckbox,
55
52
  FormsModule,
56
53
  NgIf
57
- ], standalone: true, template: "<mat-checkbox\r\n class=\"my-3\" [disabled]=\"isReadOnly || disabled\" id=\"{{name}}{{randomID}}\" [(ngModel)]=\"value\" [name]=\"name\"\r\n (change)=\"valueChange($event)\" [checked]=\"field\"\r\n>\r\n <span class=\"fs-12 fw-medium fc-onyx\">\r\n {{ isReadOnly ? labelTextReadMode : labelTextWriteMode }}\r\n </span>\r\n <span\r\n class=\"fs-12 fw-bold fc-coral cursor-pointer mx-1\" *ngIf=\"containTerms\"\r\n (click)=\"openTermsPopup(); false\">\r\n {{ termsLabel ? termsLabel : i18n.translate('termsAndConditions') }}\r\n </span>\r\n <ng-container *ngIf=\"link\">\r\n <span> | </span>\r\n <a class=\"fs-12 fw-bold fc-coral cursor-pointer mx-1 d-inline-flex align-items-center gap-1\" href=\"{{hrefLink}}\" target=\"_blank\">\r\n <ds-icon icon=\"external-link\"></ds-icon>\r\n <span class=\"underline\">{{ linkText }}</span>\r\n </a>\r\n </ng-container>\r\n <!-- <a *ngIf=\"containDownload\" style=\"color: blue;\" class=\"fs-12 fw-bold fc-coral cursor-pointer mx-1\" href=\"{{hrefLink}}\" target=\"_top\"> {{termsLabel}}</a> -->\r\n</mat-checkbox>\r\n", styles: [".checkbox{margin-top:10px!important;position:relative;margin-bottom:0!important}.checkbox label{padding-left:30px;font-size:14px;color:#414142}.checkbox input[type=checkbox]{opacity:0}.checkbox input[type=checkbox]+label.checkboxInput{position:absolute;width:25px;height:25px;top:0;left:0;padding-left:0}@media (max-width: 768px){.checkbox input[type=checkbox]+label.checkboxInput{top:8px!important}}.checkbox input[type=checkbox]+label.checkboxInput:before{content:\"\\f096\";font-family:FontAwesome;font-size:25px;display:block;margin-top:-7px;color:#ddd}.checkbox input[type=checkbox]:checked+label.checkboxInput:before{content:\"\\f14a\";color:#da3f7b;background-color:#fff}.rtlCheckbox.checkbox input[type=checkbox]+label.checkboxInput{left:inherit;right:0;padding-left:0;padding-right:0}.rtlCheckbox.checkbox label{padding-left:0;padding-right:30px}\n"] }]
54
+ ], standalone: true, providers: [
55
+ {
56
+ provide: NG_VALUE_ACCESSOR,
57
+ useExisting: forwardRef(() => CheckBoxComponent),
58
+ multi: true,
59
+ },
60
+ ], template: "<mat-checkbox\r\n class=\"my-3\" [disabled]=\"isDisabled\" id=\"{{name}}{{randomID}}\" [name]=\"name\"\r\n (change)=\"valueChange($event)\" [checked]=\"control.value\">\r\n <span class=\"fs-12 fw-medium fc-onyx\">\r\n {{ isReadOnly ? labelTextReadMode : labelTextWriteMode }}\r\n </span>\r\n @if(containTerms){\r\n <span\r\n class=\"fs-12 fw-bold fc-coral cursor-pointer mx-1\"\r\n (click)=\"openTermsPopup(); false\">\r\n {{ termsLabel ? termsLabel : i18n.translate('termsAndConditions') }}\r\n </span>\r\n }\r\n @if (link){\r\n <ng-container>\r\n <span> | </span>\r\n <a class=\"fs-12 fw-bold fc-coral cursor-pointer mx-1 d-inline-flex align-items-center gap-1\" href=\"{{hrefLink}}\" target=\"_blank\">\r\n <ds-icon icon=\"external-link\"></ds-icon>\r\n <span class=\"underline\">{{ linkText }}</span>\r\n </a>\r\n </ng-container>\r\n }\r\n \r\n <!-- <a *ngIf=\"containDownload\" style=\"color: blue;\" class=\"fs-12 fw-bold fc-coral cursor-pointer mx-1\" href=\"{{hrefLink}}\" target=\"_top\"> {{termsLabel}}</a> -->\r\n</mat-checkbox>\r\n", styles: [".checkbox{margin-top:10px!important;position:relative;margin-bottom:0!important}.checkbox label{padding-left:30px;font-size:14px;color:#414142}.checkbox input[type=checkbox]{opacity:0}.checkbox input[type=checkbox]+label.checkboxInput{position:absolute;width:25px;height:25px;top:0;left:0;padding-left:0}@media (max-width: 768px){.checkbox input[type=checkbox]+label.checkboxInput{top:8px!important}}.checkbox input[type=checkbox]+label.checkboxInput:before{content:\"\\f096\";font-family:FontAwesome;font-size:25px;display:block;margin-top:-7px;color:#ddd}.checkbox input[type=checkbox]:checked+label.checkboxInput:before{content:\"\\f14a\";color:#da3f7b;background-color:#fff}.rtlCheckbox.checkbox input[type=checkbox]+label.checkboxInput{left:inherit;right:0;padding-left:0;padding-right:0}.rtlCheckbox.checkbox label{padding-left:0;padding-right:30px}\n"] }]
58
61
  }], propDecorators: { containTerms: [{
59
62
  type: Input
60
63
  }], termsLabel: [{
@@ -63,7 +66,15 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImpor
63
66
  type: Input
64
67
  }], hrefLink: [{
65
68
  type: Input
69
+ }], link: [{
70
+ type: Input
71
+ }], name: [{
72
+ type: Input
73
+ }], randomID: [{
74
+ type: Input
75
+ }], termsBody: [{
76
+ type: Input
66
77
  }], downloadCheckBox: [{
67
78
  type: Output
68
79
  }] } });
69
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hlY2tib3guY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYnBtLWNvcmUvc3JjL2xpYi9jb21wb25lbnRzL3NoYXJlZC1jb21wb25lbnRzL2Zvcm0tZmllbGQvY2hlY2tib3gvY2hlY2tib3guY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYnBtLWNvcmUvc3JjL2xpYi9jb21wb25lbnRzL3NoYXJlZC1jb21wb25lbnRzL2Zvcm0tZmllbGQvY2hlY2tib3gvY2hlY2tib3guY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEseURBQXlEO0FBQ3pELDREQUE0RDtBQUM1RCx1REFBdUQ7QUFDdkQsT0FBTyxFQUFFLFNBQVMsRUFBRSxzQkFBc0IsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMvRixPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sNENBQTRDLENBQUM7QUFDM0UsT0FBTyxFQUFDLFdBQVcsRUFBQyxNQUFNLDRCQUE0QixDQUFDO0FBQ3ZELE9BQU8sRUFBQyxXQUFXLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUMzQyxPQUFPLEVBQUMsSUFBSSxFQUFDLE1BQU0saUJBQWlCLENBQUM7OztBQWVyQyxNQUFNLE9BQU8saUJBQWtCLFNBQVEsYUFBYTtJQUN6QyxZQUFZLENBQVU7SUFDdEIsVUFBVSxDQUFTO0lBQ25CLFFBQVEsQ0FBUztJQUNqQixRQUFRLENBQVM7SUFDaEIsZ0JBQWdCLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztJQUNoRCxRQUFRO1FBQ04sSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDO1FBRXpELGdFQUFnRTtJQUNsRSxDQUFDO0lBRUQsaUJBQWlCO1FBQ2YsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztZQUNyQixJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQTtZQUM5QixJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztRQUNyQixDQUFDO0lBQ0gsQ0FBQztJQUVELE9BQU87UUFDTCxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQTtJQUM1QixDQUFDO0lBRUQsV0FBVyxDQUFDLEtBQVU7UUFDcEIsTUFBTSxPQUFPLEdBQUcsS0FBSyxDQUFDLE9BQU8sQ0FBQztRQUM5QixJQUFJLENBQUMsS0FBSyxHQUFHLE9BQU8sQ0FBQztRQUNyQixJQUFJLENBQUMsS0FBSyxHQUFHLENBQUMsT0FBTyxDQUFDLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDbEMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFBO0lBQ25DLENBQUM7SUFFRCxZQUFZO1FBQ1YsSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksRUFBRSxDQUFBO0lBQzlCLENBQUM7SUFFRCxjQUFjO1FBQ1osaUVBQWlFO1FBQ2pFLDBCQUEwQjtRQUMxQixvQkFBb0I7UUFDcEIsZ0NBQWdDO1FBQ2hDLE1BQU07UUFFTiw0Q0FBNEM7UUFDNUMsTUFBTTtJQUNSLENBQUM7dUdBM0NVLGlCQUFpQjsyRkFBakIsaUJBQWlCLGtRQ3RCOUIseWtDQXFCQSxtNUJETkksV0FBVyx1VkFDWCxXQUFXLCtWQUNYLElBQUk7OzJGQUtLLGlCQUFpQjtrQkFiN0IsU0FBUzsrQkFDRSxjQUFjLFdBR2YsQ0FBQyxzQkFBc0IsQ0FBQyxXQUN4Qjt3QkFDUCxXQUFXO3dCQUNYLFdBQVc7d0JBQ1gsSUFBSTtxQkFDTCxjQUNXLElBQUk7OEJBSVAsWUFBWTtzQkFBcEIsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDSSxnQkFBZ0I7c0JBQXpCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZW1wdHktZnVuY3Rpb24gKi9cclxuLyogZXNsaW50LWRpc2FibGUgQGFuZ3VsYXItZXNsaW50L3VzZS1saWZlY3ljbGUtaW50ZXJmYWNlICovXHJcbi8qIGVzbGludC1kaXNhYmxlIEBhbmd1bGFyLWVzbGludC9jb21wb25lbnQtc2VsZWN0b3IgKi9cclxuaW1wb3J0IHsgQ29tcG9uZW50LCBDVVNUT01fRUxFTUVOVFNfU0NIRU1BLCBFdmVudEVtaXR0ZXIsIElucHV0LCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQmFzZUNvbXBvbmVudCB9IGZyb20gJy4uL2Jhc2UtY29tcG9uZW50L2Jhc2UtY29tcG9uZW50LmNvbXBvbmVudCc7XHJcbmltcG9ydCB7TWF0Q2hlY2tib3h9IGZyb20gXCJAYW5ndWxhci9tYXRlcmlhbC9jaGVja2JveFwiO1xyXG5pbXBvcnQge0Zvcm1zTW9kdWxlfSBmcm9tIFwiQGFuZ3VsYXIvZm9ybXNcIjtcclxuaW1wb3J0IHtOZ0lmfSBmcm9tIFwiQGFuZ3VsYXIvY29tbW9uXCI7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2FwcC1jaGVja2JveCcsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2NoZWNrYm94LmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9jaGVja2JveC5jb21wb25lbnQuc2NzcyddLFxyXG4gIHNjaGVtYXM6IFtDVVNUT01fRUxFTUVOVFNfU0NIRU1BXSxcclxuICBpbXBvcnRzOiBbXHJcbiAgICBNYXRDaGVja2JveCxcclxuICAgIEZvcm1zTW9kdWxlLFxyXG4gICAgTmdJZlxyXG4gIF0sXHJcbiAgc3RhbmRhbG9uZTogdHJ1ZVxyXG5cclxufSlcclxuZXhwb3J0IGNsYXNzIENoZWNrQm94Q29tcG9uZW50IGV4dGVuZHMgQmFzZUNvbXBvbmVudCB7XHJcbiAgQElucHV0KCkgY29udGFpblRlcm1zOiBib29sZWFuO1xyXG4gIEBJbnB1dCgpIHRlcm1zTGFiZWw6IHN0cmluZztcclxuICBASW5wdXQoKSBsaW5rVGV4dDogc3RyaW5nO1xyXG4gIEBJbnB1dCgpIGhyZWZMaW5rOiBzdHJpbmc7XHJcbiAgQE91dHB1dCgpIGRvd25sb2FkQ2hlY2tCb3ggPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLnZhbHVlID0gdGhpcy5maWVsZCA/IEpTT04ucGFyc2UodGhpcy5maWVsZCkgOiBmYWxzZTtcclxuXHJcbiAgICAvLyB0aGlzLnJlc2V0UHJvcGFnYXRvci5zdWJzY3JpYmUodGhpcywgdGhpcy5yZXNldENoZWNrQm94RGF0YSk7XHJcbiAgfVxyXG5cclxuICByZXNldENoZWNrQm94RGF0YSgpIHtcclxuICAgIGlmICghdGhpcy5pc1JlYWRPbmx5KSB7XHJcbiAgICAgIHRoaXMuZW1pdGVkVmFsdWUuZW1pdCgnZmFsc2UnKVxyXG4gICAgICB0aGlzLnZhbHVlID0gZmFsc2U7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBvcGVuVXJsKCl7XHJcbiAgICB3aW5kb3cub3Blbih0aGlzLmhyZWZMaW5rKVxyXG4gIH1cclxuXHJcbiAgdmFsdWVDaGFuZ2UoZXZlbnQ6IGFueSkge1xyXG4gICAgY29uc3QgY2hlY2tlZCA9IGV2ZW50LmNoZWNrZWQ7XHJcbiAgICB0aGlzLnZhbHVlID0gY2hlY2tlZDtcclxuICAgIHRoaXMuZmllbGQgPSAoY2hlY2tlZCkudG9TdHJpbmcoKTtcclxuICAgIHRoaXMuZW1pdGVkVmFsdWUuZW1pdCh0aGlzLmZpZWxkKVxyXG4gIH1cclxuXHJcbiAgZG93bmxvYWRGaWxlKCl7XHJcbiAgICB0aGlzLmRvd25sb2FkQ2hlY2tCb3guZW1pdCgpXHJcbiAgfVxyXG5cclxuICBvcGVuVGVybXNQb3B1cCgpOiB2b2lkIHtcclxuICAgIC8vIGNvbnN0IGRpYWxvZ1JlZiA9IHRoaXMuZGlhbG9nLm9wZW4oVGVybXNDb25kaXRpb25zQ29tcG9uZW50LCB7XHJcbiAgICAvLyAgIGRhdGE6IHRoaXMudGVybXNCb2R5LFxyXG4gICAgLy8gICB3aWR0aDogJzcwMHB4JyxcclxuICAgIC8vICAgcGFuZWxDbGFzczogWydtYWluLXBvcHVwJ10sXHJcbiAgICAvLyB9KTtcclxuXHJcbiAgICAvLyBkaWFsb2dSZWYuYWZ0ZXJDbG9zZWQoKS5zdWJzY3JpYmUoKCkgPT4ge1xyXG4gICAgLy8gfSk7XHJcbiAgfVxyXG59XHJcbiIsIjxtYXQtY2hlY2tib3hcclxuICBjbGFzcz1cIm15LTNcIiBbZGlzYWJsZWRdPVwiaXNSZWFkT25seSB8fCBkaXNhYmxlZFwiIGlkPVwie3tuYW1lfX17e3JhbmRvbUlEfX1cIiBbKG5nTW9kZWwpXT1cInZhbHVlXCIgW25hbWVdPVwibmFtZVwiXHJcbiAgKGNoYW5nZSk9XCJ2YWx1ZUNoYW5nZSgkZXZlbnQpXCIgW2NoZWNrZWRdPVwiZmllbGRcIlxyXG4+XHJcbiAgPHNwYW4gY2xhc3M9XCJmcy0xMiBmdy1tZWRpdW0gZmMtb255eFwiPlxyXG4gICAge3sgaXNSZWFkT25seSA/IGxhYmVsVGV4dFJlYWRNb2RlIDogbGFiZWxUZXh0V3JpdGVNb2RlIH19XHJcbiAgPC9zcGFuPlxyXG4gIDxzcGFuXHJcbiAgICBjbGFzcz1cImZzLTEyIGZ3LWJvbGQgZmMtY29yYWwgY3Vyc29yLXBvaW50ZXIgbXgtMVwiICpuZ0lmPVwiY29udGFpblRlcm1zXCJcclxuICAgIChjbGljayk9XCJvcGVuVGVybXNQb3B1cCgpOyBmYWxzZVwiPlxyXG4gICAge3sgdGVybXNMYWJlbCA/IHRlcm1zTGFiZWwgOiBpMThuLnRyYW5zbGF0ZSgndGVybXNBbmRDb25kaXRpb25zJykgfX1cclxuICA8L3NwYW4+XHJcbiAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImxpbmtcIj5cclxuICAgIDxzcGFuPiB8IDwvc3Bhbj5cclxuICAgIDxhIGNsYXNzPVwiZnMtMTIgZnctYm9sZCBmYy1jb3JhbCBjdXJzb3ItcG9pbnRlciBteC0xIGQtaW5saW5lLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIGdhcC0xXCIgaHJlZj1cInt7aHJlZkxpbmt9fVwiIHRhcmdldD1cIl9ibGFua1wiPlxyXG4gICAgICA8ZHMtaWNvbiBpY29uPVwiZXh0ZXJuYWwtbGlua1wiPjwvZHMtaWNvbj5cclxuICAgICAgPHNwYW4gY2xhc3M9XCJ1bmRlcmxpbmVcIj57eyBsaW5rVGV4dCB9fTwvc3Bhbj5cclxuICAgIDwvYT5cclxuICA8L25nLWNvbnRhaW5lcj5cclxuICA8IS0tIDxhICpuZ0lmPVwiY29udGFpbkRvd25sb2FkXCIgc3R5bGU9XCJjb2xvcjogYmx1ZTtcIiBjbGFzcz1cImZzLTEyIGZ3LWJvbGQgZmMtY29yYWwgY3Vyc29yLXBvaW50ZXIgbXgtMVwiIGhyZWY9XCJ7e2hyZWZMaW5rfX1cIiB0YXJnZXQ9XCJfdG9wXCI+IHt7dGVybXNMYWJlbH19PC9hPiAtLT5cclxuPC9tYXQtY2hlY2tib3g+XHJcbiJdfQ==
80
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hlY2tib3guY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYnBtLWNvcmUvc3JjL2xpYi9jb21wb25lbnRzL3NoYXJlZC1jb21wb25lbnRzL2Zvcm0tZmllbGQvY2hlY2tib3gvY2hlY2tib3guY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYnBtLWNvcmUvc3JjL2xpYi9jb21wb25lbnRzL3NoYXJlZC1jb21wb25lbnRzL2Zvcm0tZmllbGQvY2hlY2tib3gvY2hlY2tib3guY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEseURBQXlEO0FBQ3pELDREQUE0RDtBQUM1RCx1REFBdUQ7QUFDdkQsT0FBTyxFQUFFLFNBQVMsRUFBRSxzQkFBc0IsRUFBRSxZQUFZLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25ILE9BQU8sRUFBQyxXQUFXLEVBQUMsTUFBTSw0QkFBNEIsQ0FBQztBQUN2RCxPQUFPLEVBQUMsV0FBVyxFQUFFLGlCQUFpQixFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDOUQsT0FBTyxFQUFDLElBQUksRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBQ3JDLE9BQU8sRUFBRSw2QkFBNkIsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQ3BGLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLG1EQUFtRCxDQUFDO0FBQzdGLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQzs7QUFzQnJELE1BQU0sT0FBTyxpQkFBd0IsU0FBUSw2QkFBbUM7SUFDckUsWUFBWSxDQUFVO0lBQ3RCLFVBQVUsQ0FBUztJQUNuQixRQUFRLENBQVM7SUFDakIsUUFBUSxDQUFTO0lBQ2pCLElBQUksQ0FBUztJQUNiLElBQUksQ0FBUztJQUNiLFFBQVEsQ0FBUztJQUNqQixTQUFTLENBQU07SUFDZCxnQkFBZ0IsR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO0lBQ2hELE1BQU0sR0FBRyxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUM7SUFFM0IsT0FBTztRQUNMLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFBO0lBQzVCLENBQUM7SUFFRCxXQUFXLENBQUMsS0FBVTtRQUNwQixNQUFNLE9BQU8sR0FBRyxLQUFLLENBQUMsT0FBTyxDQUFDO1FBQzlCLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFBO0lBQ2hDLENBQUM7SUFFRCxjQUFjO1FBQ1osTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsd0JBQXdCLEVBQUU7WUFDM0QsSUFBSSxFQUFFLElBQUksQ0FBQyxTQUFTO1lBQ3BCLEtBQUssRUFBRSxPQUFPO1lBQ2QsVUFBVSxFQUFFLENBQUMsWUFBWSxDQUFDO1NBQzNCLENBQUMsQ0FBQztRQUVILFNBQVMsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFO1FBQ3ZDLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzt1R0E5QlUsaUJBQWlCOzJGQUFqQixpQkFBaUIsd1NBVGpCO1lBQ1Q7Z0JBQ0UsT0FBTyxFQUFFLGlCQUFpQjtnQkFDMUIsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxpQkFBaUIsQ0FBQztnQkFDaEQsS0FBSyxFQUFFLElBQUk7YUFDWjtTQUNGLGlEQzVCSCxpa0NBeUJBLG01QkRSSSxXQUFXLHVWQUNYLFdBQVc7OzJGQWFGLGlCQUFpQjtrQkFwQjdCLFNBQVM7K0JBQ0UsY0FBYyxXQUdmLENBQUMsc0JBQXNCLENBQUMsV0FDeEI7d0JBQ1AsV0FBVzt3QkFDWCxXQUFXO3dCQUNYLElBQUk7cUJBQ0wsY0FDVyxJQUFJLGFBQ0w7d0JBQ1Q7NEJBQ0UsT0FBTyxFQUFFLGlCQUFpQjs0QkFDMUIsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsa0JBQWtCLENBQUM7NEJBQ2hELEtBQUssRUFBRSxJQUFJO3lCQUNaO3FCQUNGOzhCQUlRLFlBQVk7c0JBQXBCLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLO2dCQUNHLElBQUk7c0JBQVosS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0ksZ0JBQWdCO3NCQUF6QixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWVtcHR5LWZ1bmN0aW9uICovXHJcbi8qIGVzbGludC1kaXNhYmxlIEBhbmd1bGFyLWVzbGludC91c2UtbGlmZWN5Y2xlLWludGVyZmFjZSAqL1xyXG4vKiBlc2xpbnQtZGlzYWJsZSBAYW5ndWxhci1lc2xpbnQvY29tcG9uZW50LXNlbGVjdG9yICovXHJcbmltcG9ydCB7IENvbXBvbmVudCwgQ1VTVE9NX0VMRU1FTlRTX1NDSEVNQSwgRXZlbnRFbWl0dGVyLCBmb3J3YXJkUmVmLCBpbmplY3QsIElucHV0LCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHtNYXRDaGVja2JveH0gZnJvbSBcIkBhbmd1bGFyL21hdGVyaWFsL2NoZWNrYm94XCI7XHJcbmltcG9ydCB7Rm9ybXNNb2R1bGUsIE5HX1ZBTFVFX0FDQ0VTU09SfSBmcm9tIFwiQGFuZ3VsYXIvZm9ybXNcIjtcclxuaW1wb3J0IHtOZ0lmfSBmcm9tIFwiQGFuZ3VsYXIvY29tbW9uXCI7XHJcbmltcG9ydCB7IENvbnRyb2xWYWx1ZUFjY2Vzc29yRGlyZWN0aXZlIH0gZnJvbSAnLi4vY29udHJvbC12YWx1ZS1hY2Nlc3Nvci5kaXJlY3RpdmUnO1xyXG5pbXBvcnQgeyBUZXJtc0NvbmRpdGlvbnNDb21wb25lbnQgfSBmcm9tICcuLi8uLi90ZXJtcy1jb25kaXRpb25zL3Rlcm1zLWNvbmRpdGlvbnMuY29tcG9uZW50JztcclxuaW1wb3J0IHsgTWF0RGlhbG9nIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnYXBwLWNoZWNrYm94JyxcclxuICB0ZW1wbGF0ZVVybDogJy4vY2hlY2tib3guY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2NoZWNrYm94LmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgc2NoZW1hczogW0NVU1RPTV9FTEVNRU5UU19TQ0hFTUFdLFxyXG4gIGltcG9ydHM6IFtcclxuICAgIE1hdENoZWNrYm94LFxyXG4gICAgRm9ybXNNb2R1bGUsXHJcbiAgICBOZ0lmXHJcbiAgXSxcclxuICBzdGFuZGFsb25lOiB0cnVlLFxyXG4gIHByb3ZpZGVyczogW1xyXG4gICAge1xyXG4gICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcclxuICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gQ2hlY2tCb3hDb21wb25lbnQpLFxyXG4gICAgICBtdWx0aTogdHJ1ZSxcclxuICAgIH0sXHJcbiAgXVxyXG5cclxufSlcclxuZXhwb3J0IGNsYXNzIENoZWNrQm94Q29tcG9uZW50PFR5cGU+IGV4dGVuZHMgQ29udHJvbFZhbHVlQWNjZXNzb3JEaXJlY3RpdmU8VHlwZT4ge1xyXG4gIEBJbnB1dCgpIGNvbnRhaW5UZXJtczogYm9vbGVhbjtcclxuICBASW5wdXQoKSB0ZXJtc0xhYmVsOiBzdHJpbmc7XHJcbiAgQElucHV0KCkgbGlua1RleHQ6IHN0cmluZztcclxuICBASW5wdXQoKSBocmVmTGluazogc3RyaW5nO1xyXG4gIEBJbnB1dCgpIGxpbms6IHN0cmluZztcclxuICBASW5wdXQoKSBuYW1lOiBzdHJpbmc7XHJcbiAgQElucHV0KCkgcmFuZG9tSUQ6IHN0cmluZztcclxuICBASW5wdXQoKSB0ZXJtc0JvZHk6IGFueTtcclxuICBAT3V0cHV0KCkgZG93bmxvYWRDaGVja0JveCA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICBkaWFsb2cgPSBpbmplY3QoTWF0RGlhbG9nKTtcclxuIFxyXG4gIG9wZW5VcmwoKXtcclxuICAgIHdpbmRvdy5vcGVuKHRoaXMuaHJlZkxpbmspXHJcbiAgfVxyXG5cclxuICB2YWx1ZUNoYW5nZShldmVudDogYW55KSB7XHJcbiAgICBjb25zdCBjaGVja2VkID0gZXZlbnQuY2hlY2tlZDtcclxuICAgIHRoaXMuY29udHJvbC5zZXRWYWx1ZShjaGVja2VkKVxyXG4gIH1cclxuXHJcbiAgb3BlblRlcm1zUG9wdXAoKTogdm9pZCB7XHJcbiAgICBjb25zdCBkaWFsb2dSZWYgPSB0aGlzLmRpYWxvZy5vcGVuKFRlcm1zQ29uZGl0aW9uc0NvbXBvbmVudCwge1xyXG4gICAgICBkYXRhOiB0aGlzLnRlcm1zQm9keSxcclxuICAgICAgd2lkdGg6ICc3MDBweCcsXHJcbiAgICAgIHBhbmVsQ2xhc3M6IFsnbWFpbi1wb3B1cCddLFxyXG4gICAgfSk7XHJcblxyXG4gICAgZGlhbG9nUmVmLmFmdGVyQ2xvc2VkKCkuc3Vic2NyaWJlKCgpID0+IHtcclxuICAgIH0pO1xyXG4gIH1cclxufVxyXG4iLCI8bWF0LWNoZWNrYm94XHJcbiAgY2xhc3M9XCJteS0zXCIgW2Rpc2FibGVkXT1cImlzRGlzYWJsZWRcIiBpZD1cInt7bmFtZX19e3tyYW5kb21JRH19XCIgW25hbWVdPVwibmFtZVwiXHJcbiAgKGNoYW5nZSk9XCJ2YWx1ZUNoYW5nZSgkZXZlbnQpXCIgW2NoZWNrZWRdPVwiY29udHJvbC52YWx1ZVwiPlxyXG4gIDxzcGFuIGNsYXNzPVwiZnMtMTIgZnctbWVkaXVtIGZjLW9ueXhcIj5cclxuICAgIHt7IGlzUmVhZE9ubHkgPyBsYWJlbFRleHRSZWFkTW9kZSA6IGxhYmVsVGV4dFdyaXRlTW9kZSB9fVxyXG4gIDwvc3Bhbj5cclxuICBAaWYoY29udGFpblRlcm1zKXtcclxuICAgIDxzcGFuXHJcbiAgICBjbGFzcz1cImZzLTEyIGZ3LWJvbGQgZmMtY29yYWwgY3Vyc29yLXBvaW50ZXIgbXgtMVwiXHJcbiAgICAoY2xpY2spPVwib3BlblRlcm1zUG9wdXAoKTsgZmFsc2VcIj5cclxuICAgIHt7IHRlcm1zTGFiZWwgPyB0ZXJtc0xhYmVsIDogaTE4bi50cmFuc2xhdGUoJ3Rlcm1zQW5kQ29uZGl0aW9ucycpIH19XHJcbiAgPC9zcGFuPlxyXG4gIH1cclxuIEBpZiAobGluayl7XHJcbiAgPG5nLWNvbnRhaW5lcj5cclxuICAgIDxzcGFuPiB8IDwvc3Bhbj5cclxuICAgIDxhIGNsYXNzPVwiZnMtMTIgZnctYm9sZCBmYy1jb3JhbCBjdXJzb3ItcG9pbnRlciBteC0xIGQtaW5saW5lLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIGdhcC0xXCIgaHJlZj1cInt7aHJlZkxpbmt9fVwiIHRhcmdldD1cIl9ibGFua1wiPlxyXG4gICAgICA8ZHMtaWNvbiBpY29uPVwiZXh0ZXJuYWwtbGlua1wiPjwvZHMtaWNvbj5cclxuICAgICAgPHNwYW4gY2xhc3M9XCJ1bmRlcmxpbmVcIj57eyBsaW5rVGV4dCB9fTwvc3Bhbj5cclxuICAgIDwvYT5cclxuICA8L25nLWNvbnRhaW5lcj5cclxuIH1cclxuIFxyXG4gIDwhLS0gPGEgKm5nSWY9XCJjb250YWluRG93bmxvYWRcIiBzdHlsZT1cImNvbG9yOiBibHVlO1wiIGNsYXNzPVwiZnMtMTIgZnctYm9sZCBmYy1jb3JhbCBjdXJzb3ItcG9pbnRlciBteC0xXCIgaHJlZj1cInt7aHJlZkxpbmt9fVwiIHRhcmdldD1cIl90b3BcIj4ge3t0ZXJtc0xhYmVsfX08L2E+IC0tPlxyXG48L21hdC1jaGVja2JveD5cclxuIl19
@@ -5,23 +5,33 @@ import * as i1 from "../../../services";
5
5
  export class ControlValueAccessorDirective {
6
6
  injector;
7
7
  i18n;
8
- hasLabel = true;
9
8
  isReadOnly;
10
- hideOption = false;
11
9
  labelTextWriteMode;
10
+ labelTextReadMode;
12
11
  hint = '';
13
12
  loading;
14
13
  placeholder;
15
14
  type;
16
- value;
17
15
  showErrorMessage;
18
16
  showHint;
19
17
  showIfEmpty;
20
18
  insideTable;
19
+ mask;
20
+ label;
21
+ matSuffix;
22
+ minDateValue;
23
+ maxDateValue;
24
+ maxDate;
25
+ // @ViewChild('default')
26
+ datepickerObj;
27
+ minDate;
28
+ customMaxDate;
29
+ customMinDate;
30
+ value;
21
31
  control;
22
32
  required = false;
23
33
  maxLength;
24
- _isDisabled = false;
34
+ isDisabled = false;
25
35
  constructor(injector, i18n) {
26
36
  this.injector = injector;
27
37
  this.i18n = i18n;
@@ -48,11 +58,40 @@ export class ControlValueAccessorDirective {
48
58
  this.control = new FormControl();
49
59
  }
50
60
  this.setFormValidators();
61
+ this.setDateFormControl();
51
62
  }
52
63
  setFormValidators() {
53
64
  console.log(this.control);
54
65
  this.required = this.control?.hasValidator(Validators.required) ?? false;
55
66
  }
67
+ setDateFormControl() {
68
+ const today = new Date();
69
+ const currentYear = today.getFullYear();
70
+ const currentMonth = today.getMonth();
71
+ const currentDay = today.getDate();
72
+ if (this.minDate) {
73
+ if (this.minDate == 'today') {
74
+ this.minDateValue = new Date(currentYear, currentMonth, currentDay);
75
+ }
76
+ }
77
+ if (this.maxDate) {
78
+ if (this.maxDate == 'today') {
79
+ this.maxDateValue = new Date(currentYear, currentMonth, currentDay);
80
+ }
81
+ else if (this.maxDate == 'oneYear') {
82
+ this.maxDateValue = new Date(currentYear + 1, currentMonth, currentDay - 1);
83
+ }
84
+ }
85
+ else if (this.customMaxDate) {
86
+ const date = new Date(this.customMaxDate);
87
+ this.maxDateValue = new Date(date.getFullYear(), date.getMonth(), date.getDate());
88
+ }
89
+ // if (this.field) {
90
+ // this.date.setValue(this.field);
91
+ // }
92
+ if (this.required)
93
+ this.control.addValidators(Validators.required);
94
+ }
56
95
  writeValue(value) {
57
96
  this.value = value;
58
97
  }
@@ -61,24 +100,22 @@ export class ControlValueAccessorDirective {
61
100
  registerOnTouched(fn) {
62
101
  }
63
102
  setDisabledState(isDisabled) {
64
- this._isDisabled = isDisabled;
103
+ this.isDisabled = isDisabled;
65
104
  }
66
105
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: ControlValueAccessorDirective, deps: [{ token: i0.Injector }, { token: i1.CoreI18nService }], target: i0.ɵɵFactoryTarget.Directive });
67
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.8", type: ControlValueAccessorDirective, selector: "[appControlValueAccessor]", inputs: { hasLabel: "hasLabel", isReadOnly: "isReadOnly", hideOption: "hideOption", labelTextWriteMode: "labelTextWriteMode", hint: "hint", loading: "loading", placeholder: "placeholder", type: "type", value: "value", showErrorMessage: "showErrorMessage", showHint: "showHint", showIfEmpty: "showIfEmpty", insideTable: "insideTable" }, ngImport: i0 });
106
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.8", type: ControlValueAccessorDirective, selector: "[appControlValueAccessor]", inputs: { isReadOnly: "isReadOnly", labelTextWriteMode: "labelTextWriteMode", labelTextReadMode: "labelTextReadMode", hint: "hint", loading: "loading", placeholder: "placeholder", type: "type", showErrorMessage: "showErrorMessage", showHint: "showHint", showIfEmpty: "showIfEmpty", insideTable: "insideTable", mask: "mask", label: "label", matSuffix: "matSuffix", maxDate: "maxDate", minDate: "minDate", customMaxDate: "customMaxDate", customMinDate: "customMinDate" }, ngImport: i0 });
68
107
  }
69
108
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: ControlValueAccessorDirective, decorators: [{
70
109
  type: Directive,
71
110
  args: [{
72
111
  selector: '[appControlValueAccessor]',
73
112
  }]
74
- }], ctorParameters: () => [{ type: i0.Injector }, { type: i1.CoreI18nService }], propDecorators: { hasLabel: [{
75
- type: Input
76
- }], isReadOnly: [{
77
- type: Input
78
- }], hideOption: [{
113
+ }], ctorParameters: () => [{ type: i0.Injector }, { type: i1.CoreI18nService }], propDecorators: { isReadOnly: [{
79
114
  type: Input
80
115
  }], labelTextWriteMode: [{
81
116
  type: Input
117
+ }], labelTextReadMode: [{
118
+ type: Input
82
119
  }], hint: [{
83
120
  type: Input
84
121
  }], loading: [{
@@ -87,8 +124,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImpor
87
124
  type: Input
88
125
  }], type: [{
89
126
  type: Input
90
- }], value: [{
91
- type: Input
92
127
  }], showErrorMessage: [{
93
128
  type: Input
94
129
  }], showHint: [{
@@ -97,5 +132,19 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImpor
97
132
  type: Input
98
133
  }], insideTable: [{
99
134
  type: Input
135
+ }], mask: [{
136
+ type: Input
137
+ }], label: [{
138
+ type: Input
139
+ }], matSuffix: [{
140
+ type: Input
141
+ }], maxDate: [{
142
+ type: Input
143
+ }], minDate: [{
144
+ type: Input
145
+ }], customMaxDate: [{
146
+ type: Input
147
+ }], customMinDate: [{
148
+ type: Input
100
149
  }] } });
101
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udHJvbC12YWx1ZS1hY2Nlc3Nvci5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9icG0tY29yZS9zcmMvbGliL2NvbXBvbmVudHMvc2hhcmVkLWNvbXBvbmVudHMvZm9ybS1maWVsZC9jb250cm9sLXZhbHVlLWFjY2Vzc29yLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFZLEtBQUssRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUNuRSxPQUFPLEVBRUwsV0FBVyxFQUNYLFVBQVUsRUFDVixTQUFTLEVBQ1QsZUFBZSxFQUNmLGtCQUFrQixHQUVuQixNQUFNLGdCQUFnQixDQUFDOzs7QUFNeEIsTUFBTSxPQUFPLDZCQUE2QjtJQTBCcEI7SUFBMkI7SUF2QnRDLFFBQVEsR0FBRyxJQUFJLENBQUM7SUFDaEIsVUFBVSxDQUFVO0lBQ3BCLFVBQVUsR0FBRyxLQUFLLENBQUM7SUFDbkIsa0JBQWtCLENBQVM7SUFDM0IsSUFBSSxHQUFHLEVBQUUsQ0FBQztJQUNWLE9BQU8sQ0FBVztJQUNsQixXQUFXLENBQVM7SUFDcEIsSUFBSSxDQUFTO0lBQ2IsS0FBSyxDQUFNO0lBQ1gsZ0JBQWdCLENBQVM7SUFDekIsUUFBUSxDQUFTO0lBQ2pCLFdBQVcsQ0FBUztJQUNwQixXQUFXLENBQU07SUFLMUIsT0FBTyxDQUEwQjtJQUNqQyxRQUFRLEdBQUcsS0FBSyxDQUFDO0lBQ2pCLFNBQVMsQ0FBTTtJQUVQLFdBQVcsR0FBRyxLQUFLLENBQUM7SUFFNUIsWUFBb0IsUUFBa0IsRUFBUyxJQUFxQjtRQUFoRCxhQUFRLEdBQVIsUUFBUSxDQUFVO1FBQVMsU0FBSSxHQUFKLElBQUksQ0FBaUI7SUFBRyxDQUFDO0lBRXhFLFFBQVE7UUFDTixJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7SUFDeEIsQ0FBQztJQUVELGNBQWM7UUFDWixJQUFJLENBQUM7WUFDSCxNQUFNLFdBQVcsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsQ0FBQztZQUNqRCxRQUFRLFdBQVcsQ0FBQyxXQUFXLEVBQUUsQ0FBQztnQkFDaEMsS0FBSyxlQUFlO29CQUNsQixJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxRQUFRO3lCQUN6QixHQUFHLENBQUMsa0JBQWtCLENBQUM7eUJBQ3ZCLFVBQVUsQ0FBQyxXQUE4QixDQUFDLENBQUM7b0JBQzlDLE1BQU07Z0JBQ1I7b0JBQ0UsSUFBSSxDQUFDLE9BQU8sR0FBSSxXQUFvQzt5QkFDakQsSUFBbUIsQ0FBQztvQkFDdkIsTUFBTTtZQUNWLENBQUM7UUFDSCxDQUFDO1FBQUMsT0FBTyxHQUFHLEVBQUUsQ0FBQztZQUNiLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxXQUFXLEVBQUUsQ0FBQztRQUNuQyxDQUFDO1FBQ0QsSUFBSSxDQUFDLGlCQUFpQixFQUFFLENBQUE7SUFDMUIsQ0FBQztJQUVELGlCQUFpQjtRQUNmLE9BQU8sQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFBO1FBQ3pCLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLE9BQU8sRUFBRSxZQUFZLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEtBQUssQ0FBQztJQUUzRSxDQUFDO0lBQ0QsVUFBVSxDQUFDLEtBQVc7UUFDcEIsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7SUFDckIsQ0FBQztJQUVELGdCQUFnQixDQUFDLEVBQThCO0lBRS9DLENBQUM7SUFFRCxpQkFBaUIsQ0FBQyxFQUFjO0lBQ2hDLENBQUM7SUFFRCxnQkFBZ0IsQ0FBRSxVQUFtQjtRQUNuQyxJQUFJLENBQUMsV0FBVyxHQUFHLFVBQVUsQ0FBQztJQUNoQyxDQUFDO3VHQXRFVSw2QkFBNkI7MkZBQTdCLDZCQUE2Qjs7MkZBQTdCLDZCQUE2QjtrQkFIekMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsMkJBQTJCO2lCQUN0QzsyR0FJVSxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxrQkFBa0I7c0JBQTFCLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLElBQUk7c0JBQVosS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csZ0JBQWdCO3NCQUF4QixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBJbmplY3RvciwgSW5wdXQsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQge1xyXG4gIENvbnRyb2xWYWx1ZUFjY2Vzc29yLFxyXG4gIEZvcm1Db250cm9sLFxyXG4gIFZhbGlkYXRvcnMsXHJcbiAgTmdDb250cm9sLFxyXG4gIEZvcm1Db250cm9sTmFtZSxcclxuICBGb3JtR3JvdXBEaXJlY3RpdmUsXHJcbiAgRm9ybUNvbnRyb2xEaXJlY3RpdmUsXHJcbn0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBDb3JlSTE4blNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcyc7XHJcblxyXG5ARGlyZWN0aXZlKHtcclxuICBzZWxlY3RvcjogJ1thcHBDb250cm9sVmFsdWVBY2Nlc3Nvcl0nLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgQ29udHJvbFZhbHVlQWNjZXNzb3JEaXJlY3RpdmU8VHlwZT5cclxuICBpbXBsZW1lbnRzIENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBPbkluaXRcclxue1xyXG4gIEBJbnB1dCgpIGhhc0xhYmVsID0gdHJ1ZTtcclxuICBASW5wdXQoKSBpc1JlYWRPbmx5OiBib29sZWFuO1xyXG4gIEBJbnB1dCgpIGhpZGVPcHRpb24gPSBmYWxzZTtcclxuICBASW5wdXQoKSBsYWJlbFRleHRXcml0ZU1vZGU6IHN0cmluZztcclxuICBASW5wdXQoKSBoaW50ID0gJyc7XHJcbiAgQElucHV0KCkgbG9hZGluZyE6IGJvb2xlYW47XHJcbiAgQElucHV0KCkgcGxhY2Vob2xkZXI6IHN0cmluZztcclxuICBASW5wdXQoKSB0eXBlOiBzdHJpbmc7XHJcbiAgQElucHV0KCkgdmFsdWU6IGFueTtcclxuICBASW5wdXQoKSBzaG93RXJyb3JNZXNzYWdlOiBzdHJpbmc7XHJcbiAgQElucHV0KCkgc2hvd0hpbnQ6IHN0cmluZztcclxuICBASW5wdXQoKSBzaG93SWZFbXB0eTogc3RyaW5nO1xyXG4gIEBJbnB1dCgpIGluc2lkZVRhYmxlOiBhbnk7XHJcbiAgXHJcblxyXG5cclxuXHJcbiAgY29udHJvbDogRm9ybUNvbnRyb2wgfCB1bmRlZmluZWQ7XHJcbiAgcmVxdWlyZWQgPSBmYWxzZTtcclxuICBtYXhMZW5ndGg6IGFueTtcclxuXHJcbiAgcHJpdmF0ZSBfaXNEaXNhYmxlZCA9IGZhbHNlO1xyXG5cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGluamVjdG9yOiBJbmplY3RvciwgcHVibGljIGkxOG46IENvcmVJMThuU2VydmljZSkge31cclxuXHJcbiAgbmdPbkluaXQoKSB7XHJcbiAgICB0aGlzLnNldEZvcm1Db250cm9sKCk7XHJcbiAgfVxyXG5cclxuICBzZXRGb3JtQ29udHJvbCgpIHtcclxuICAgIHRyeSB7XHJcbiAgICAgIGNvbnN0IGZvcm1Db250cm9sID0gdGhpcy5pbmplY3Rvci5nZXQoTmdDb250cm9sKTtcclxuICAgICAgc3dpdGNoIChmb3JtQ29udHJvbC5jb25zdHJ1Y3Rvcikge1xyXG4gICAgICAgIGNhc2UgRm9ybUNvbnRyb2xOYW1lOlxyXG4gICAgICAgICAgdGhpcy5jb250cm9sID0gdGhpcy5pbmplY3RvclxyXG4gICAgICAgICAgICAuZ2V0KEZvcm1Hcm91cERpcmVjdGl2ZSlcclxuICAgICAgICAgICAgLmdldENvbnRyb2woZm9ybUNvbnRyb2wgYXMgRm9ybUNvbnRyb2xOYW1lKTtcclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgICB0aGlzLmNvbnRyb2wgPSAoZm9ybUNvbnRyb2wgYXMgRm9ybUNvbnRyb2xEaXJlY3RpdmUpXHJcbiAgICAgICAgICAgIC5mb3JtIGFzIEZvcm1Db250cm9sO1xyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgIH1cclxuICAgIH0gY2F0Y2ggKGVycikge1xyXG4gICAgICB0aGlzLmNvbnRyb2wgPSBuZXcgRm9ybUNvbnRyb2woKTtcclxuICAgIH1cclxuICAgIHRoaXMuc2V0Rm9ybVZhbGlkYXRvcnMoKVxyXG4gIH1cclxuXHJcbiAgc2V0Rm9ybVZhbGlkYXRvcnMoKXtcclxuICAgIGNvbnNvbGUubG9nKHRoaXMuY29udHJvbClcclxuICAgIHRoaXMucmVxdWlyZWQgPSB0aGlzLmNvbnRyb2w/Lmhhc1ZhbGlkYXRvcihWYWxpZGF0b3JzLnJlcXVpcmVkKSA/PyBmYWxzZTtcclxuXHJcbiAgfVxyXG4gIHdyaXRlVmFsdWUodmFsdWU6IFR5cGUpOiB2b2lkIHtcclxuICAgIHRoaXMudmFsdWUgPSB2YWx1ZTtcclxuICB9XHJcblxyXG4gIHJlZ2lzdGVyT25DaGFuZ2UoZm46ICh2YWw6IFR5cGUgfCBudWxsKSA9PiBUeXBlKTogdm9pZCB7XHJcblxyXG4gIH1cclxuXHJcbiAgcmVnaXN0ZXJPblRvdWNoZWQoZm46ICgpID0+IFR5cGUpOiB2b2lkIHtcclxuICB9XHJcblxyXG4gIHNldERpc2FibGVkU3RhdGU/KGlzRGlzYWJsZWQ6IGJvb2xlYW4pOiB2b2lkIHtcclxuICAgIHRoaXMuX2lzRGlzYWJsZWQgPSBpc0Rpc2FibGVkO1xyXG4gIH1cclxufVxyXG4iXX0=
150
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udHJvbC12YWx1ZS1hY2Nlc3Nvci5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9icG0tY29yZS9zcmMvbGliL2NvbXBvbmVudHMvc2hhcmVkLWNvbXBvbmVudHMvZm9ybS1maWVsZC9jb250cm9sLXZhbHVlLWFjY2Vzc29yLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFZLEtBQUssRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUNuRSxPQUFPLEVBRUwsV0FBVyxFQUNYLFVBQVUsRUFDVixTQUFTLEVBQ1QsZUFBZSxFQUNmLGtCQUFrQixHQUVuQixNQUFNLGdCQUFnQixDQUFDOzs7QUFNeEIsTUFBTSxPQUFPLDZCQUE2QjtJQWtDcEI7SUFBMkI7SUEvQnRDLFVBQVUsQ0FBVTtJQUNwQixrQkFBa0IsQ0FBUztJQUMzQixpQkFBaUIsQ0FBUztJQUMxQixJQUFJLEdBQUcsRUFBRSxDQUFDO0lBQ1YsT0FBTyxDQUFXO0lBQ2xCLFdBQVcsQ0FBUztJQUNwQixJQUFJLENBQVM7SUFDYixnQkFBZ0IsQ0FBUztJQUN6QixRQUFRLENBQVM7SUFDakIsV0FBVyxDQUFTO0lBQ3BCLFdBQVcsQ0FBTTtJQUNqQixJQUFJLENBQU07SUFDVixLQUFLLENBQVU7SUFDZixTQUFTLENBQVU7SUFFNUIsWUFBWSxDQUFLO0lBQ2pCLFlBQVksQ0FBSztJQUNSLE9BQU8sQ0FBUztJQUN6Qix3QkFBd0I7SUFDakIsYUFBYSxDQUFPO0lBQ2xCLE9BQU8sQ0FBUztJQUNoQixhQUFhLENBQUs7SUFDbEIsYUFBYSxDQUFLO0lBRTNCLEtBQUssQ0FBTTtJQUNYLE9BQU8sQ0FBMEI7SUFDakMsUUFBUSxHQUFHLEtBQUssQ0FBQztJQUNqQixTQUFTLENBQU07SUFFZixVQUFVLEdBQUcsS0FBSyxDQUFDO0lBRW5CLFlBQW9CLFFBQWtCLEVBQVMsSUFBcUI7UUFB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YSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsQ0FBQTtJQUNwRSxDQUFDO0lBQ0QsVUFBVSxDQUFDLEtBQVc7UUFDcEIsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7SUFDckIsQ0FBQztJQUVELGdCQUFnQixDQUFDLEVBQThCO0lBRS9DLENBQUM7SUFFRCxpQkFBaUIsQ0FBQyxFQUFjO0lBQ2hDLENBQUM7SUFFRCxnQkFBZ0IsQ0FBRSxVQUFtQjtRQUNuQyxJQUFJLENBQUMsVUFBVSxHQUFHLFVBQVUsQ0FBQztJQUMvQixDQUFDO3VHQTFHVSw2QkFBNkI7MkZBQTdCLDZCQUE2Qjs7MkZBQTdCLDZCQUE2QjtrQkFIekMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsMkJBQTJCO2lCQUN0QzsyR0FJVSxVQUFVO3NCQUFsQixLQUFLO2dCQUNHLGtCQUFrQjtzQkFBMUIsS0FBSztnQkFDRyxpQkFBaUI7c0JBQXpCLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLElBQUk7c0JBQVosS0FBSztnQkFDRyxnQkFBZ0I7c0JBQXhCLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQUlHLE9BQU87c0JBQWYsS0FBSztnQkFHRyxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csYUFBYTtzQkFBckIsS0FBSztnQkFDRyxhQUFhO3NCQUFyQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBJbmplY3RvciwgSW5wdXQsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQge1xyXG4gIENvbnRyb2xWYWx1ZUFjY2Vzc29yLFxyXG4gIEZvcm1Db250cm9sLFxyXG4gIFZhbGlkYXRvcnMsXHJcbiAgTmdDb250cm9sLFxyXG4gIEZvcm1Db250cm9sTmFtZSxcclxuICBGb3JtR3JvdXBEaXJlY3RpdmUsXHJcbiAgRm9ybUNvbnRyb2xEaXJlY3RpdmUsXHJcbn0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBDb3JlSTE4blNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcyc7XHJcblxyXG5ARGlyZWN0aXZlKHtcclxuICBzZWxlY3RvcjogJ1thcHBDb250cm9sVmFsdWVBY2Nlc3Nvcl0nLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgQ29udHJvbFZhbHVlQWNjZXNzb3JEaXJlY3RpdmU8VHlwZT5cclxuICBpbXBsZW1lbnRzIENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBPbkluaXRcclxue1xyXG4gIEBJbnB1dCgpIGlzUmVhZE9ubHk6IGJvb2xlYW47XHJcbiAgQElucHV0KCkgbGFiZWxUZXh0V3JpdGVNb2RlOiBzdHJpbmc7XHJcbiAgQElucHV0KCkgbGFiZWxUZXh0UmVhZE1vZGU6IHN0cmluZztcclxuICBASW5wdXQoKSBoaW50ID0gJyc7XHJcbiAgQElucHV0KCkgbG9hZGluZyE6IGJvb2xlYW47XHJcbiAgQElucHV0KCkgcGxhY2Vob2xkZXI6IHN0cmluZztcclxuICBASW5wdXQoKSB0eXBlOiBzdHJpbmc7XHJcbiAgQElucHV0KCkgc2hvd0Vycm9yTWVzc2FnZTogc3RyaW5nO1xyXG4gIEBJbnB1dCgpIHNob3dIaW50OiBzdHJpbmc7XHJcbiAgQElucHV0KCkgc2hvd0lmRW1wdHk6IHN0cmluZztcclxuICBASW5wdXQoKSBpbnNpZGVUYWJsZTogYW55O1xyXG4gIEBJbnB1dCgpIG1hc2s6IGFueTtcclxuICBASW5wdXQoKSBsYWJlbCE6IHN0cmluZztcclxuICBASW5wdXQoKSBtYXRTdWZmaXg6IGJvb2xlYW47XHJcblxyXG4gIG1pbkRhdGVWYWx1ZTogYW55XHJcbiAgbWF4RGF0ZVZhbHVlOiBhbnlcclxuICBASW5wdXQoKSBtYXhEYXRlOiBzdHJpbmc7XHJcbiAgLy8gQFZpZXdDaGlsZCgnZGVmYXVsdCcpXHJcbiAgcHVibGljIGRhdGVwaWNrZXJPYmohOiBhbnk7XHJcbiAgQElucHV0KCkgbWluRGF0ZTogc3RyaW5nO1xyXG4gIEBJbnB1dCgpIGN1c3RvbU1heERhdGU6IGFueVxyXG4gIEBJbnB1dCgpIGN1c3RvbU1pbkRhdGU6IGFueVxyXG5cclxuICB2YWx1ZTogYW55O1xyXG4gIGNvbnRyb2w6IEZvcm1Db250cm9sIHwgdW5kZWZpbmVkO1xyXG4gIHJlcXVpcmVkID0gZmFsc2U7XHJcbiAgbWF4TGVuZ3RoOiBhbnk7XHJcblxyXG4gIGlzRGlzYWJsZWQgPSBmYWxzZTtcclxuXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBpbmplY3RvcjogSW5qZWN0b3IsIHB1YmxpYyBpMThuOiBDb3JlSTE4blNlcnZpY2UpIHt9XHJcblxyXG4gIG5nT25Jbml0KCkge1xyXG4gICAgdGhpcy5zZXRGb3JtQ29udHJvbCgpO1xyXG4gIH1cclxuXHJcbiAgc2V0Rm9ybUNvbnRyb2woKSB7XHJcbiAgICB0cnkge1xyXG4gICAgICBjb25zdCBmb3JtQ29udHJvbCA9IHRoaXMuaW5qZWN0b3IuZ2V0KE5nQ29udHJvbCk7XHJcbiAgICAgIHN3aXRjaCAoZm9ybUNvbnRyb2wuY29uc3RydWN0b3IpIHtcclxuICAgICAgICBjYXNlIEZvcm1Db250cm9sTmFtZTpcclxuICAgICAgICAgIHRoaXMuY29udHJvbCA9IHRoaXMuaW5qZWN0b3JcclxuICAgICAgICAgICAgLmdldChGb3JtR3JvdXBEaXJlY3RpdmUpXHJcbiAgICAgICAgICAgIC5nZXRDb250cm9sKGZvcm1Db250cm9sIGFzIEZvcm1Db250cm9sTmFtZSk7XHJcbiAgICAgICAgICBicmVhaztcclxuICAgICAgICBkZWZhdWx0OlxyXG4gICAgICAgICAgdGhpcy5jb250cm9sID0gKGZvcm1Db250cm9sIGFzIEZvcm1Db250cm9sRGlyZWN0aXZlKVxyXG4gICAgICAgICAgICAuZm9ybSBhcyBGb3JtQ29udHJvbDtcclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICB9XHJcbiAgICB9IGNhdGNoIChlcnIpIHtcclxuICAgICAgdGhpcy5jb250cm9sID0gbmV3IEZvcm1Db250cm9sKCk7XHJcbiAgICB9XHJcbiAgICB0aGlzLnNldEZvcm1WYWxpZGF0b3JzKCk7XHJcbiAgICB0aGlzLnNldERhdGVGb3JtQ29udHJvbCgpXHJcbiAgfVxyXG5cclxuICBzZXRGb3JtVmFsaWRhdG9ycygpe1xyXG4gICAgY29uc29sZS5sb2codGhpcy5jb250cm9sKVxyXG4gICAgdGhpcy5yZXF1aXJlZCA9IHRoaXMuY29udHJvbD8uaGFzVmFsaWRhdG9yKFZhbGlkYXRvcnMucmVxdWlyZWQpID8/IGZhbHNlO1xyXG4gIH1cclxuXHJcbiAgc2V0RGF0ZUZvcm1Db250cm9sKCl7XHJcbiAgICBjb25zdCB0b2RheSA9IG5ldyBEYXRlKCk7XHJcbiAgICBjb25zdCBjdXJyZW50WWVhciA9IHRvZGF5LmdldEZ1bGxZZWFyKCk7XHJcbiAgICBjb25zdCBjdXJyZW50TW9udGggPSB0b2RheS5nZXRNb250aCgpO1xyXG4gICAgY29uc3QgY3VycmVudERheSA9IHRvZGF5LmdldERhdGUoKTtcclxuICAgIGlmICh0aGlzLm1pbkRhdGUpIHtcclxuICAgICAgaWYgKHRoaXMubWluRGF0ZSA9PSAndG9kYXknKSB7XHJcbiAgICAgICAgdGhpcy5taW5EYXRlVmFsdWUgPSBuZXcgRGF0ZShjdXJyZW50WWVhciwgY3VycmVudE1vbnRoLCBjdXJyZW50RGF5KVxyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKHRoaXMubWF4RGF0ZSkge1xyXG4gICAgICBpZiAodGhpcy5tYXhEYXRlID09ICd0b2RheScpIHtcclxuICAgICAgICB0aGlzLm1heERhdGVWYWx1ZSA9IG5ldyBEYXRlKGN1cnJlbnRZZWFyLCBjdXJyZW50TW9udGgsIGN1cnJlbnREYXkpXHJcbiAgICAgIH0gZWxzZSBpZiAodGhpcy5tYXhEYXRlID09ICdvbmVZZWFyJykge1xyXG4gICAgICAgIHRoaXMubWF4RGF0ZVZhbHVlID0gbmV3IERhdGUoY3VycmVudFllYXIgKyAxLCBjdXJyZW50TW9udGgsIGN1cnJlbnREYXkgLSAxKTtcclxuICAgICAgfVxyXG4gICAgfSBlbHNlIGlmICh0aGlzLmN1c3RvbU1heERhdGUpIHtcclxuICAgICAgY29uc3QgZGF0ZSA9IG5ldyBEYXRlKHRoaXMuY3VzdG9tTWF4RGF0ZSlcclxuICAgICAgdGhpcy5tYXhEYXRlVmFsdWUgPSBuZXcgRGF0ZShkYXRlLmdldEZ1bGxZZWFyKCksIGRhdGUuZ2V0TW9udGgoKSwgZGF0ZS5nZXREYXRlKCkpO1xyXG4gICAgfVxyXG5cclxuICAgIC8vIGlmICh0aGlzLmZpZWxkKSB7XHJcbiAgICAvLyAgIHRoaXMuZGF0ZS5zZXRWYWx1ZSh0aGlzLmZpZWxkKTtcclxuICAgIC8vIH1cclxuICAgIGlmICh0aGlzLnJlcXVpcmVkKSB0aGlzLmNvbnRyb2wuYWRkVmFsaWRhdG9ycyhWYWxpZGF0b3JzLnJlcXVpcmVkKVxyXG4gIH1cclxuICB3cml0ZVZhbHVlKHZhbHVlOiBUeXBlKTogdm9pZCB7XHJcbiAgICB0aGlzLnZhbHVlID0gdmFsdWU7XHJcbiAgfVxyXG5cclxuICByZWdpc3Rlck9uQ2hhbmdlKGZuOiAodmFsOiBUeXBlIHwgbnVsbCkgPT4gVHlwZSk6IHZvaWQge1xyXG5cclxuICB9XHJcblxyXG4gIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiAoKSA9PiBUeXBlKTogdm9pZCB7XHJcbiAgfVxyXG5cclxuICBzZXREaXNhYmxlZFN0YXRlPyhpc0Rpc2FibGVkOiBib29sZWFuKTogdm9pZCB7XHJcbiAgICB0aGlzLmlzRGlzYWJsZWQgPSBpc0Rpc2FibGVkO1xyXG4gIH1cclxufVxyXG4iXX0=