@ng-formworks/material 17.5.8 → 17.6.2

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 (35) hide show
  1. package/esm2022/lib/material-design-framework.component.mjs +2 -2
  2. package/esm2022/lib/widgets/flex-layout-root.component.mjs +19 -2
  3. package/esm2022/lib/widgets/material-button-group.component.mjs +5 -2
  4. package/esm2022/lib/widgets/material-button.component.mjs +3 -2
  5. package/esm2022/lib/widgets/material-checkbox.component.mjs +5 -2
  6. package/esm2022/lib/widgets/material-checkboxes.component.mjs +9 -2
  7. package/esm2022/lib/widgets/material-chip-list.component.mjs +5 -2
  8. package/esm2022/lib/widgets/material-datepicker.component.mjs +5 -2
  9. package/esm2022/lib/widgets/material-file.component.mjs +5 -2
  10. package/esm2022/lib/widgets/material-input.component.mjs +4 -1
  11. package/esm2022/lib/widgets/material-number.component.mjs +4 -1
  12. package/esm2022/lib/widgets/material-one-of.component.mjs +89 -5
  13. package/esm2022/lib/widgets/material-radios.component.mjs +5 -2
  14. package/esm2022/lib/widgets/material-select.component.mjs +99 -5
  15. package/esm2022/lib/widgets/material-stepper.component.mjs +5 -2
  16. package/esm2022/lib/widgets/material-tabs.component.mjs +104 -26
  17. package/esm2022/lib/widgets/material-textarea.component.mjs +5 -2
  18. package/fesm2022/ng-formworks-material.mjs +404 -96
  19. package/fesm2022/ng-formworks-material.mjs.map +1 -1
  20. package/lib/widgets/flex-layout-root.component.d.ts +9 -1
  21. package/lib/widgets/material-button-group.component.d.ts +3 -2
  22. package/lib/widgets/material-checkbox.component.d.ts +3 -2
  23. package/lib/widgets/material-checkboxes.component.d.ts +3 -2
  24. package/lib/widgets/material-chip-list.component.d.ts +3 -2
  25. package/lib/widgets/material-datepicker.component.d.ts +3 -2
  26. package/lib/widgets/material-file.component.d.ts +3 -2
  27. package/lib/widgets/material-input.component.d.ts +3 -2
  28. package/lib/widgets/material-number.component.d.ts +3 -2
  29. package/lib/widgets/material-one-of.component.d.ts +6 -2
  30. package/lib/widgets/material-radios.component.d.ts +3 -2
  31. package/lib/widgets/material-select.component.d.ts +5 -2
  32. package/lib/widgets/material-stepper.component.d.ts +3 -2
  33. package/lib/widgets/material-textarea.component.d.ts +3 -2
  34. package/lib/widgets/public_api.d.ts +1 -1
  35. package/package.json +3 -3
@@ -1,9 +1,10 @@
1
- import { Component, input, signal, inject } from '@angular/core';
1
+ import { Component, inject, input, signal } from '@angular/core';
2
2
  import { JsonSchemaFormService } from '@ng-formworks/core';
3
3
  import * as i0 from "@angular/core";
4
4
  import * as i1 from "@angular/common";
5
- import * as i2 from "@angular/material/tabs";
6
- import * as i3 from "@ng-formworks/core";
5
+ import * as i2 from "@angular/material/radio";
6
+ import * as i3 from "@angular/material/tabs";
7
+ import * as i4 from "@ng-formworks/core";
7
8
  export class MaterialTabsComponent {
8
9
  constructor() {
9
10
  this.jsf = inject(JsonSchemaFormService);
@@ -15,6 +16,9 @@ export class MaterialTabsComponent {
15
16
  }
16
17
  ngOnInit() {
17
18
  this.options = this.layoutNode().options || {};
19
+ if (this.options.selectedTab) {
20
+ this.selectedItem = this.options.selectedTab;
21
+ }
18
22
  this.itemCount = this.layoutNode().items.length - 1;
19
23
  this.updateControl();
20
24
  }
@@ -44,24 +48,61 @@ export class MaterialTabsComponent {
44
48
  <nav mat-tab-nav-bar [tabPanel]="tabPanel"
45
49
  [attr.aria-label]="options?.label || options?.title || ''"
46
50
  [style.width]="'100%'">
51
+
47
52
  <a mat-tab-link *ngFor="let item of layoutNode()?.items; let i = index"
48
53
  [active]="selectedItem === i"
49
54
  (click)="select(i)">
55
+
56
+
57
+ <!--
58
+ <input
59
+ type="radio"
60
+ name="tabSelection"
61
+ [(ngModel)]="selectedItem"
62
+ [value]="i"
63
+ (change)="select(i)" class="mat-mdc-radio-button" />
64
+
65
+ {{ setTabTitle(item, i) }}
66
+ -->
67
+ <mat-radio-button *ngIf="options?.tabMode=='oneOfMode'"
68
+ [checked]="selectedItem === i"
69
+ [value]="i"
70
+ >
71
+ </mat-radio-button>
72
+
50
73
  <span *ngIf="showAddTab || item.type !== '$ref'"
51
74
  [innerHTML]="setTabTitle(item, i)"></span>
75
+
52
76
  </a>
77
+
78
+
53
79
  </nav>
54
- <mat-tab-nav-panel #tabPanel>
55
- <div *ngFor="let layoutItem of layoutNode()?.items; let i = index"
56
- [class]="options?.htmlClass || ''">
57
- <select-framework-widget *ngIf="selectedItem === i"
58
- [class]="(options?.fieldHtmlClass || '') + ' ' + (options?.activeClass || '') + ' ' + (options?.style?.selected || '')"
59
- [dataIndex]="layoutNode()?.dataType === 'array' ? (dataIndex() || []).concat(i) : dataIndex()"
60
- [layoutIndex]="(layoutIndex() || []).concat(i)"
61
- [layoutNode]="layoutItem"></select-framework-widget>
62
- </div>
63
- </mat-tab-nav-panel>
64
- `, isInline: true, styles: ["a{cursor:pointer}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.MatTabNav, selector: "[mat-tab-nav-bar]", inputs: ["fitInkBarToContent", "mat-stretch-tabs", "animationDuration", "backgroundColor", "disableRipple", "color", "tabPanel"], exportAs: ["matTabNavBar", "matTabNav"] }, { kind: "component", type: i2.MatTabNavPanel, selector: "mat-tab-nav-panel", inputs: ["id"], exportAs: ["matTabNavPanel"] }, { kind: "component", type: i2.MatTabLink, selector: "[mat-tab-link], [matTabLink]", inputs: ["active", "disabled", "disableRipple", "tabIndex", "id"], exportAs: ["matTabLink"] }, { kind: "component", type: i3.SelectFrameworkComponent, selector: "select-framework-widget", inputs: ["layoutNode", "layoutIndex", "dataIndex"] }] }); }
80
+ <mat-tab-nav-panel #tabPanel>
81
+ <div *ngFor="let layoutItem of layoutNode()?.items; let i = index"
82
+ [class]="(options?.htmlClass || '') + (selectedItem != i?' ngf-hidden':'')">
83
+ <!--for now the only difference between oneOfMode and the default
84
+ is that oneOfMode uses the *ngIf="selectedItem === i" clause, which automatically
85
+ destroys the tabs that are not rendered while default mode only hide them
86
+ the upshot is that only the active tabs value will be used
87
+ -->
88
+ <ng-container *ngIf="options?.tabMode=='oneOfMode'">
89
+ <select-framework-widget *ngIf="selectedItem === i"
90
+ [class]="(options?.fieldHtmlClass || '') + ' ' + (options?.activeClass || '') + ' ' + (options?.style?.selected || '')"
91
+ [dataIndex]="layoutNode()?.dataType === 'array' ? (dataIndex() || []).concat(i) : dataIndex()"
92
+ [layoutIndex]="(layoutIndex() || []).concat(i)"
93
+ [layoutNode]="layoutItem"></select-framework-widget>
94
+ </ng-container>
95
+ <ng-container *ngIf="options?.tabMode !='oneOfMode'">
96
+ <select-framework-widget *ngIf="selectedItem === i"
97
+ [class]="(options?.fieldHtmlClass || '') + ' ' + (options?.activeClass || '') + ' ' + (options?.style?.selected || '')"
98
+ [dataIndex]="layoutNode()?.dataType === 'array' ? (dataIndex() || []).concat(i) : dataIndex()"
99
+ [layoutIndex]="(layoutIndex() || []).concat(i)"
100
+ [layoutNode]="layoutItem"></select-framework-widget>
101
+ </ng-container>
102
+ </div>
103
+ </mat-tab-nav-panel>
104
+
105
+ `, isInline: true, styles: ["a{cursor:pointer}.ngf-hidden{display:none}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.MatRadioButton, selector: "mat-radio-button", inputs: ["id", "name", "aria-label", "aria-labelledby", "aria-describedby", "disableRipple", "tabIndex", "checked", "value", "labelPosition", "disabled", "required", "color"], outputs: ["change"], exportAs: ["matRadioButton"] }, { kind: "component", type: i3.MatTabNav, selector: "[mat-tab-nav-bar]", inputs: ["fitInkBarToContent", "mat-stretch-tabs", "animationDuration", "backgroundColor", "disableRipple", "color", "tabPanel"], exportAs: ["matTabNavBar", "matTabNav"] }, { kind: "component", type: i3.MatTabNavPanel, selector: "mat-tab-nav-panel", inputs: ["id"], exportAs: ["matTabNavPanel"] }, { kind: "component", type: i3.MatTabLink, selector: "[mat-tab-link], [matTabLink]", inputs: ["active", "disabled", "disableRipple", "tabIndex", "id"], exportAs: ["matTabLink"] }, { kind: "component", type: i4.SelectFrameworkComponent, selector: "select-framework-widget", inputs: ["layoutNode", "layoutIndex", "dataIndex"] }] }); }
65
106
  }
66
107
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: MaterialTabsComponent, decorators: [{
67
108
  type: Component,
@@ -69,23 +110,60 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
69
110
  <nav mat-tab-nav-bar [tabPanel]="tabPanel"
70
111
  [attr.aria-label]="options?.label || options?.title || ''"
71
112
  [style.width]="'100%'">
113
+
72
114
  <a mat-tab-link *ngFor="let item of layoutNode()?.items; let i = index"
73
115
  [active]="selectedItem === i"
74
116
  (click)="select(i)">
117
+
118
+
119
+ <!--
120
+ <input
121
+ type="radio"
122
+ name="tabSelection"
123
+ [(ngModel)]="selectedItem"
124
+ [value]="i"
125
+ (change)="select(i)" class="mat-mdc-radio-button" />
126
+
127
+ {{ setTabTitle(item, i) }}
128
+ -->
129
+ <mat-radio-button *ngIf="options?.tabMode=='oneOfMode'"
130
+ [checked]="selectedItem === i"
131
+ [value]="i"
132
+ >
133
+ </mat-radio-button>
134
+
75
135
  <span *ngIf="showAddTab || item.type !== '$ref'"
76
136
  [innerHTML]="setTabTitle(item, i)"></span>
137
+
77
138
  </a>
139
+
140
+
78
141
  </nav>
79
- <mat-tab-nav-panel #tabPanel>
80
- <div *ngFor="let layoutItem of layoutNode()?.items; let i = index"
81
- [class]="options?.htmlClass || ''">
82
- <select-framework-widget *ngIf="selectedItem === i"
83
- [class]="(options?.fieldHtmlClass || '') + ' ' + (options?.activeClass || '') + ' ' + (options?.style?.selected || '')"
84
- [dataIndex]="layoutNode()?.dataType === 'array' ? (dataIndex() || []).concat(i) : dataIndex()"
85
- [layoutIndex]="(layoutIndex() || []).concat(i)"
86
- [layoutNode]="layoutItem"></select-framework-widget>
87
- </div>
88
- </mat-tab-nav-panel>
89
- `, styles: ["a{cursor:pointer}\n"] }]
142
+ <mat-tab-nav-panel #tabPanel>
143
+ <div *ngFor="let layoutItem of layoutNode()?.items; let i = index"
144
+ [class]="(options?.htmlClass || '') + (selectedItem != i?' ngf-hidden':'')">
145
+ <!--for now the only difference between oneOfMode and the default
146
+ is that oneOfMode uses the *ngIf="selectedItem === i" clause, which automatically
147
+ destroys the tabs that are not rendered while default mode only hide them
148
+ the upshot is that only the active tabs value will be used
149
+ -->
150
+ <ng-container *ngIf="options?.tabMode=='oneOfMode'">
151
+ <select-framework-widget *ngIf="selectedItem === i"
152
+ [class]="(options?.fieldHtmlClass || '') + ' ' + (options?.activeClass || '') + ' ' + (options?.style?.selected || '')"
153
+ [dataIndex]="layoutNode()?.dataType === 'array' ? (dataIndex() || []).concat(i) : dataIndex()"
154
+ [layoutIndex]="(layoutIndex() || []).concat(i)"
155
+ [layoutNode]="layoutItem"></select-framework-widget>
156
+ </ng-container>
157
+ <ng-container *ngIf="options?.tabMode !='oneOfMode'">
158
+ <select-framework-widget *ngIf="selectedItem === i"
159
+ [class]="(options?.fieldHtmlClass || '') + ' ' + (options?.activeClass || '') + ' ' + (options?.style?.selected || '')"
160
+ [dataIndex]="layoutNode()?.dataType === 'array' ? (dataIndex() || []).concat(i) : dataIndex()"
161
+ [layoutIndex]="(layoutIndex() || []).concat(i)"
162
+ [layoutNode]="layoutItem"></select-framework-widget>
163
+ </ng-container>
164
+ </div>
165
+ </mat-tab-nav-panel>
166
+
167
+ `, standalone: false, styles: ["a{cursor:pointer}.ngf-hidden{display:none}\n"] }]
90
168
  }] });
91
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWF0ZXJpYWwtdGFicy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1mb3Jtd29ya3MtbWF0ZXJpYWwvc3JjL2xpYi93aWRnZXRzL21hdGVyaWFsLXRhYnMuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQVUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekUsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7Ozs7O0FBNkIzRCxNQUFNLE9BQU8scUJBQXFCO0lBM0JsQztRQTRCVSxRQUFHLEdBQUcsTUFBTSxDQUFDLHFCQUFxQixDQUFDLENBQUM7UUFJNUMsaUJBQVksR0FBRyxDQUFDLENBQUM7UUFDakIsZUFBVSxHQUFHLElBQUksQ0FBQztRQUNULGVBQVUsR0FBRyxLQUFLLENBQU0sU0FBUyxDQUFDLENBQUM7UUFDbkMsZ0JBQVcsR0FBRyxLQUFLLENBQVcsU0FBUyxDQUFDLENBQUM7UUFDekMsY0FBUyxHQUFHLEtBQUssQ0FBVyxTQUFTLENBQUMsQ0FBQztLQStCakQ7SUE3QkMsUUFBUTtRQUNOLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDLE9BQU8sSUFBSSxFQUFFLENBQUM7UUFDL0MsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUMsS0FBSyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUM7UUFDcEQsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO0lBQ3ZCLENBQUM7SUFFRCxNQUFNLENBQUMsS0FBSztRQUNWLE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztRQUNyQyxJQUFJLFVBQVUsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUMsSUFBSSxLQUFLLE1BQU0sRUFBRTtZQUMzQyxJQUFJLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQztnQkFDZixVQUFVLEVBQUUsTUFBTSxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7Z0JBQzNDLFdBQVcsRUFBRSxNQUFNLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztnQkFDckQsU0FBUyxFQUFFLE1BQU0sQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO2FBQ2xELENBQUMsQ0FBQztZQUNILElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztTQUN0QjtRQUNELElBQUksQ0FBQyxZQUFZLEdBQUcsS0FBSyxDQUFDO0lBQzVCLENBQUM7SUFFRCxhQUFhO1FBQ1gsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUMsS0FBSyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUM7UUFDcEQsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUMsS0FBSyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQztRQUM3RSxJQUFJLENBQUMsVUFBVSxHQUFHLFFBQVEsQ0FBQyxJQUFJLEtBQUssTUFBTTtZQUN4QyxJQUFJLENBQUMsU0FBUyxHQUFHLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxRQUFRLElBQUksSUFBSSxDQUFDLENBQUM7SUFDekQsQ0FBQztJQUVELFdBQVcsQ0FBQyxJQUFTLEVBQUUsS0FBYTtRQUNsQyxPQUFPLElBQUksQ0FBQyxHQUFHLENBQUMsaUJBQWlCLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxLQUFLLENBQUMsQ0FBQztJQUN2RCxDQUFDOytHQXZDVSxxQkFBcUI7bUdBQXJCLHFCQUFxQiw2ZEF4QnRCOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Q0FxQlg7OzRGQUdZLHFCQUFxQjtrQkEzQmpDLFNBQVM7K0JBRUUsc0JBQXNCLFlBQ3RCOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Q0FxQlgiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCwgaW5wdXQsIHNpZ25hbCwgaW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEpzb25TY2hlbWFGb3JtU2VydmljZSB9IGZyb20gJ0BuZy1mb3Jtd29ya3MvY29yZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6Y29tcG9uZW50LXNlbGVjdG9yXHJcbiAgc2VsZWN0b3I6ICdtYXRlcmlhbC10YWJzLXdpZGdldCcsXHJcbiAgdGVtcGxhdGU6IGBcclxuICAgIDxuYXYgbWF0LXRhYi1uYXYtYmFyIFt0YWJQYW5lbF09XCJ0YWJQYW5lbFwiXHJcbiAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwib3B0aW9ucz8ubGFiZWwgfHwgb3B0aW9ucz8udGl0bGUgfHwgJydcIlxyXG4gICAgICBbc3R5bGUud2lkdGhdPVwiJzEwMCUnXCI+XHJcbiAgICAgICAgPGEgbWF0LXRhYi1saW5rICpuZ0Zvcj1cImxldCBpdGVtIG9mIGxheW91dE5vZGUoKT8uaXRlbXM7IGxldCBpID0gaW5kZXhcIlxyXG4gICAgICAgICAgW2FjdGl2ZV09XCJzZWxlY3RlZEl0ZW0gPT09IGlcIlxyXG4gICAgICAgICAgKGNsaWNrKT1cInNlbGVjdChpKVwiPlxyXG4gICAgICAgICAgPHNwYW4gKm5nSWY9XCJzaG93QWRkVGFiIHx8IGl0ZW0udHlwZSAhPT0gJyRyZWYnXCJcclxuICAgICAgICAgICAgW2lubmVySFRNTF09XCJzZXRUYWJUaXRsZShpdGVtLCBpKVwiPjwvc3Bhbj5cclxuICAgICAgICA8L2E+XHJcbiAgICA8L25hdj5cclxuICAgIDxtYXQtdGFiLW5hdi1wYW5lbCAjdGFiUGFuZWw+XHJcbiAgICAgIDxkaXYgKm5nRm9yPVwibGV0IGxheW91dEl0ZW0gb2YgbGF5b3V0Tm9kZSgpPy5pdGVtczsgbGV0IGkgPSBpbmRleFwiXHJcbiAgICAgICAgW2NsYXNzXT1cIm9wdGlvbnM/Lmh0bWxDbGFzcyB8fCAnJ1wiPlxyXG4gICAgICAgIDxzZWxlY3QtZnJhbWV3b3JrLXdpZGdldCAqbmdJZj1cInNlbGVjdGVkSXRlbSA9PT0gaVwiXHJcbiAgICAgICAgICBbY2xhc3NdPVwiKG9wdGlvbnM/LmZpZWxkSHRtbENsYXNzIHx8ICcnKSArICcgJyArIChvcHRpb25zPy5hY3RpdmVDbGFzcyB8fCAnJykgKyAnICcgKyAob3B0aW9ucz8uc3R5bGU/LnNlbGVjdGVkIHx8ICcnKVwiXHJcbiAgICAgICAgICBbZGF0YUluZGV4XT1cImxheW91dE5vZGUoKT8uZGF0YVR5cGUgPT09ICdhcnJheScgPyAoZGF0YUluZGV4KCkgfHwgW10pLmNvbmNhdChpKSA6IGRhdGFJbmRleCgpXCJcclxuICAgICAgICAgIFtsYXlvdXRJbmRleF09XCIobGF5b3V0SW5kZXgoKSB8fCBbXSkuY29uY2F0KGkpXCJcclxuICAgICAgICAgIFtsYXlvdXROb2RlXT1cImxheW91dEl0ZW1cIj48L3NlbGVjdC1mcmFtZXdvcmstd2lkZ2V0PlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvbWF0LXRhYi1uYXYtcGFuZWw+XHJcbmAsXHJcbiAgc3R5bGVzOiBbYCBhIHsgY3Vyc29yOiBwb2ludGVyOyB9IGBdLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgTWF0ZXJpYWxUYWJzQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuICBwcml2YXRlIGpzZiA9IGluamVjdChKc29uU2NoZW1hRm9ybVNlcnZpY2UpO1xyXG5cclxuICBvcHRpb25zOiBhbnk7XHJcbiAgaXRlbUNvdW50OiBudW1iZXI7XHJcbiAgc2VsZWN0ZWRJdGVtID0gMDtcclxuICBzaG93QWRkVGFiID0gdHJ1ZTtcclxuICByZWFkb25seSBsYXlvdXROb2RlID0gaW5wdXQ8YW55Pih1bmRlZmluZWQpO1xyXG4gIHJlYWRvbmx5IGxheW91dEluZGV4ID0gaW5wdXQ8bnVtYmVyW10+KHVuZGVmaW5lZCk7XHJcbiAgcmVhZG9ubHkgZGF0YUluZGV4ID0gaW5wdXQ8bnVtYmVyW10+KHVuZGVmaW5lZCk7XHJcblxyXG4gIG5nT25Jbml0KCkge1xyXG4gICAgdGhpcy5vcHRpb25zID0gdGhpcy5sYXlvdXROb2RlKCkub3B0aW9ucyB8fCB7fTtcclxuICAgIHRoaXMuaXRlbUNvdW50ID0gdGhpcy5sYXlvdXROb2RlKCkuaXRlbXMubGVuZ3RoIC0gMTtcclxuICAgIHRoaXMudXBkYXRlQ29udHJvbCgpO1xyXG4gIH1cclxuXHJcbiAgc2VsZWN0KGluZGV4KSB7XHJcbiAgICBjb25zdCBsYXlvdXROb2RlID0gdGhpcy5sYXlvdXROb2RlKCk7XHJcbiAgICBpZiAobGF5b3V0Tm9kZS5pdGVtc1tpbmRleF0udHlwZSA9PT0gJyRyZWYnKSB7XHJcbiAgICAgIHRoaXMuanNmLmFkZEl0ZW0oe1xyXG4gICAgICAgIGxheW91dE5vZGU6IHNpZ25hbChsYXlvdXROb2RlLml0ZW1zW2luZGV4XSksXHJcbiAgICAgICAgbGF5b3V0SW5kZXg6IHNpZ25hbCh0aGlzLmxheW91dEluZGV4KCkuY29uY2F0KGluZGV4KSksXHJcbiAgICAgICAgZGF0YUluZGV4OiBzaWduYWwodGhpcy5kYXRhSW5kZXgoKS5jb25jYXQoaW5kZXgpKVxyXG4gICAgICB9KTtcclxuICAgICAgdGhpcy51cGRhdGVDb250cm9sKCk7XHJcbiAgICB9XHJcbiAgICB0aGlzLnNlbGVjdGVkSXRlbSA9IGluZGV4O1xyXG4gIH1cclxuXHJcbiAgdXBkYXRlQ29udHJvbCgpIHtcclxuICAgIHRoaXMuaXRlbUNvdW50ID0gdGhpcy5sYXlvdXROb2RlKCkuaXRlbXMubGVuZ3RoIC0gMTtcclxuICAgIGNvbnN0IGxhc3RJdGVtID0gdGhpcy5sYXlvdXROb2RlKCkuaXRlbXNbdGhpcy5sYXlvdXROb2RlKCkuaXRlbXMubGVuZ3RoIC0gMV07XHJcbiAgICB0aGlzLnNob3dBZGRUYWIgPSBsYXN0SXRlbS50eXBlID09PSAnJHJlZicgJiZcclxuICAgICAgdGhpcy5pdGVtQ291bnQgPCAobGFzdEl0ZW0ub3B0aW9ucy5tYXhJdGVtcyB8fCAxMDAwKTtcclxuICB9XHJcblxyXG4gIHNldFRhYlRpdGxlKGl0ZW06IGFueSwgaW5kZXg6IG51bWJlcik6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gdGhpcy5qc2Yuc2V0QXJyYXlJdGVtVGl0bGUodGhpcywgaXRlbSwgaW5kZXgpO1xyXG4gIH1cclxufVxyXG4iXX0=
169
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWF0ZXJpYWwtdGFicy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1mb3Jtd29ya3MtbWF0ZXJpYWwvc3JjL2xpYi93aWRnZXRzL21hdGVyaWFsLXRhYnMuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQVUsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekUsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7Ozs7OztBQXFFM0QsTUFBTSxPQUFPLHFCQUFxQjtJQW5FbEM7UUFvRVUsUUFBRyxHQUFHLE1BQU0sQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDO1FBSTVDLGlCQUFZLEdBQUcsQ0FBQyxDQUFDO1FBQ2pCLGVBQVUsR0FBRyxJQUFJLENBQUM7UUFDVCxlQUFVLEdBQUcsS0FBSyxDQUFNLFNBQVMsQ0FBQyxDQUFDO1FBQ25DLGdCQUFXLEdBQUcsS0FBSyxDQUFXLFNBQVMsQ0FBQyxDQUFDO1FBQ3pDLGNBQVMsR0FBRyxLQUFLLENBQVcsU0FBUyxDQUFDLENBQUM7S0FrQ2pEO0lBaENDLFFBQVE7UUFDTixJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQyxPQUFPLElBQUksRUFBRSxDQUFDO1FBQy9DLElBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxXQUFXLEVBQUM7WUFDMUIsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQztTQUM5QztRQUNELElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDLEtBQUssQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDO1FBQ3BELElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztJQUN2QixDQUFDO0lBRUQsTUFBTSxDQUFDLEtBQUs7UUFDVixNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7UUFDckMsSUFBSSxVQUFVLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDLElBQUksS0FBSyxNQUFNLEVBQUU7WUFDM0MsSUFBSSxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUM7Z0JBQ2YsVUFBVSxFQUFFLE1BQU0sQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO2dCQUMzQyxXQUFXLEVBQUUsTUFBTSxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7Z0JBQ3JELFNBQVMsRUFBRSxNQUFNLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQzthQUNsRCxDQUFDLENBQUM7WUFDSCxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7U0FDdEI7UUFDRCxJQUFJLENBQUMsWUFBWSxHQUFHLEtBQUssQ0FBQztJQUM1QixDQUFDO0lBRUQsYUFBYTtRQUNYLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDLEtBQUssQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDO1FBQ3BELE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDLEtBQUssQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFDN0UsSUFBSSxDQUFDLFVBQVUsR0FBRyxRQUFRLENBQUMsSUFBSSxLQUFLLE1BQU07WUFDeEMsSUFBSSxDQUFDLFNBQVMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsUUFBUSxJQUFJLElBQUksQ0FBQyxDQUFDO0lBQ3pELENBQUM7SUFFRCxXQUFXLENBQUMsSUFBUyxFQUFFLEtBQWE7UUFDbEMsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDLGlCQUFpQixDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsS0FBSyxDQUFDLENBQUM7SUFDdkQsQ0FBQzsrR0ExQ1UscUJBQXFCO21HQUFyQixxQkFBcUIsNmRBaEV0Qjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztDQTBEWDs7NEZBTVkscUJBQXFCO2tCQW5FakMsU0FBUzsrQkFFRSxzQkFBc0IsWUFDdEI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Q0EwRFgsY0FJZSxLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQsIGluamVjdCwgaW5wdXQsIHNpZ25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBKc29uU2NoZW1hRm9ybVNlcnZpY2UgfSBmcm9tICdAbmctZm9ybXdvcmtzL2NvcmUnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOmNvbXBvbmVudC1zZWxlY3RvclxyXG4gIHNlbGVjdG9yOiAnbWF0ZXJpYWwtdGFicy13aWRnZXQnLFxyXG4gIHRlbXBsYXRlOiBgXHJcbiAgICA8bmF2IG1hdC10YWItbmF2LWJhciBbdGFiUGFuZWxdPVwidGFiUGFuZWxcIlxyXG4gICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cIm9wdGlvbnM/LmxhYmVsIHx8IG9wdGlvbnM/LnRpdGxlIHx8ICcnXCJcclxuICAgICAgW3N0eWxlLndpZHRoXT1cIicxMDAlJ1wiPlxyXG4gICAgICBcclxuICAgICAgICA8YSBtYXQtdGFiLWxpbmsgKm5nRm9yPVwibGV0IGl0ZW0gb2YgbGF5b3V0Tm9kZSgpPy5pdGVtczsgbGV0IGkgPSBpbmRleFwiXHJcbiAgICAgICAgICBbYWN0aXZlXT1cInNlbGVjdGVkSXRlbSA9PT0gaVwiXHJcbiAgICAgICAgICAoY2xpY2spPVwic2VsZWN0KGkpXCI+XHJcbiAgICAgICAgICBcclxuXHJcbiAgICAgICAgIDwhLS0gICBcclxuICAgICAgICAgIDxpbnB1dCBcclxuICAgICAgdHlwZT1cInJhZGlvXCIgXHJcbiAgICAgIG5hbWU9XCJ0YWJTZWxlY3Rpb25cIiBcclxuICAgICAgWyhuZ01vZGVsKV09XCJzZWxlY3RlZEl0ZW1cIiBcclxuICAgICAgW3ZhbHVlXT1cImlcIiBcclxuICAgICAgKGNoYW5nZSk9XCJzZWxlY3QoaSlcIiBjbGFzcz1cIm1hdC1tZGMtcmFkaW8tYnV0dG9uXCIgLz5cclxuXHJcbiAgICB7eyBzZXRUYWJUaXRsZShpdGVtLCBpKSB9fVxyXG4gICAgIC0tPlxyXG4gICAgICAgIDxtYXQtcmFkaW8tYnV0dG9uICpuZ0lmPVwib3B0aW9ucz8udGFiTW9kZT09J29uZU9mTW9kZSdcIlxyXG4gICAgICAgICAgW2NoZWNrZWRdPVwic2VsZWN0ZWRJdGVtID09PSBpXCIgXHJcbiAgICAgICAgICBbdmFsdWVdPVwiaVwiXHJcbiAgICAgICAgICA+XHJcbiAgICAgICAgPC9tYXQtcmFkaW8tYnV0dG9uPlxyXG5cclxuICAgICAgICAgIDxzcGFuICpuZ0lmPVwic2hvd0FkZFRhYiB8fCBpdGVtLnR5cGUgIT09ICckcmVmJ1wiXHJcbiAgICAgICAgICAgIFtpbm5lckhUTUxdPVwic2V0VGFiVGl0bGUoaXRlbSwgaSlcIj48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgIFxyXG4gICAgICAgIDwvYT5cclxuXHJcbiAgICAgICAgXHJcbiAgICA8L25hdj5cclxuICAgICAgICA8bWF0LXRhYi1uYXYtcGFuZWwgI3RhYlBhbmVsPlxyXG4gICAgICAgICAgPGRpdiAqbmdGb3I9XCJsZXQgbGF5b3V0SXRlbSBvZiBsYXlvdXROb2RlKCk/Lml0ZW1zOyBsZXQgaSA9IGluZGV4XCIgXHJcbiAgICAgICAgICAgIFtjbGFzc109XCIob3B0aW9ucz8uaHRtbENsYXNzIHx8ICcnKSArIChzZWxlY3RlZEl0ZW0gIT0gaT8nIG5nZi1oaWRkZW4nOicnKVwiPlxyXG4gICAgICAgICAgICAgICA8IS0tZm9yIG5vdyB0aGUgb25seSBkaWZmZXJlbmNlIGJldHdlZW4gb25lT2ZNb2RlIGFuZCB0aGUgZGVmYXVsdCBcclxuICAgICAgICAgICAgICAgIGlzIHRoYXQgb25lT2ZNb2RlIHVzZXMgdGhlICpuZ0lmPVwic2VsZWN0ZWRJdGVtID09PSBpXCIgY2xhdXNlLCB3aGljaCBhdXRvbWF0aWNhbGx5XHJcbiAgICAgICAgICAgICAgICBkZXN0cm95cyB0aGUgdGFicyB0aGF0IGFyZSBub3QgcmVuZGVyZWQgd2hpbGUgZGVmYXVsdCBtb2RlIG9ubHkgaGlkZSB0aGVtXHJcbiAgICAgICAgICAgICAgICB0aGUgdXBzaG90IGlzIHRoYXQgb25seSB0aGUgYWN0aXZlIHRhYnMgdmFsdWUgd2lsbCBiZSB1c2VkXHJcbiAgICAgICAgICAgICAgLS0+XHJcbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJvcHRpb25zPy50YWJNb2RlPT0nb25lT2ZNb2RlJ1wiPlxyXG4gICAgICAgICAgICAgIDxzZWxlY3QtZnJhbWV3b3JrLXdpZGdldCAqbmdJZj1cInNlbGVjdGVkSXRlbSA9PT0gaVwiXHJcbiAgICAgICAgICAgICAgICBbY2xhc3NdPVwiKG9wdGlvbnM/LmZpZWxkSHRtbENsYXNzIHx8ICcnKSArICcgJyArIChvcHRpb25zPy5hY3RpdmVDbGFzcyB8fCAnJykgKyAnICcgKyAob3B0aW9ucz8uc3R5bGU/LnNlbGVjdGVkIHx8ICcnKVwiXHJcbiAgICAgICAgICAgICAgICBbZGF0YUluZGV4XT1cImxheW91dE5vZGUoKT8uZGF0YVR5cGUgPT09ICdhcnJheScgPyAoZGF0YUluZGV4KCkgfHwgW10pLmNvbmNhdChpKSA6IGRhdGFJbmRleCgpXCJcclxuICAgICAgICAgICAgICAgIFtsYXlvdXRJbmRleF09XCIobGF5b3V0SW5kZXgoKSB8fCBbXSkuY29uY2F0KGkpXCJcclxuICAgICAgICAgICAgICAgIFtsYXlvdXROb2RlXT1cImxheW91dEl0ZW1cIj48L3NlbGVjdC1mcmFtZXdvcmstd2lkZ2V0PlxyXG4gICAgICAgICAgICAgPC9uZy1jb250YWluZXI+ICAgXHJcbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJvcHRpb25zPy50YWJNb2RlICE9J29uZU9mTW9kZSdcIj5cclxuICAgICAgICAgICAgICA8c2VsZWN0LWZyYW1ld29yay13aWRnZXQgKm5nSWY9XCJzZWxlY3RlZEl0ZW0gPT09IGlcIlxyXG4gICAgICAgICAgICAgICAgW2NsYXNzXT1cIihvcHRpb25zPy5maWVsZEh0bWxDbGFzcyB8fCAnJykgKyAnICcgKyAob3B0aW9ucz8uYWN0aXZlQ2xhc3MgfHwgJycpICsgJyAnICsgKG9wdGlvbnM/LnN0eWxlPy5zZWxlY3RlZCB8fCAnJylcIlxyXG4gICAgICAgICAgICAgICAgW2RhdGFJbmRleF09XCJsYXlvdXROb2RlKCk/LmRhdGFUeXBlID09PSAnYXJyYXknID8gKGRhdGFJbmRleCgpIHx8IFtdKS5jb25jYXQoaSkgOiBkYXRhSW5kZXgoKVwiXHJcbiAgICAgICAgICAgICAgICBbbGF5b3V0SW5kZXhdPVwiKGxheW91dEluZGV4KCkgfHwgW10pLmNvbmNhdChpKVwiXHJcbiAgICAgICAgICAgICAgICBbbGF5b3V0Tm9kZV09XCJsYXlvdXRJdGVtXCI+PC9zZWxlY3QtZnJhbWV3b3JrLXdpZGdldD5cclxuICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPiAgIFxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9tYXQtdGFiLW5hdi1wYW5lbD5cclxuXHJcbmAsXHJcbiAgICBzdHlsZXM6IFtgIGEgeyBjdXJzb3I6IHBvaW50ZXI7IH0gXHJcbiAgICAgICAgICAgIC5uZ2YtaGlkZGVue2Rpc3BsYXk6bm9uZX1cclxuICAgICAgYF0sXHJcbiAgICBzdGFuZGFsb25lOiBmYWxzZVxyXG59KVxyXG5leHBvcnQgY2xhc3MgTWF0ZXJpYWxUYWJzQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuICBwcml2YXRlIGpzZiA9IGluamVjdChKc29uU2NoZW1hRm9ybVNlcnZpY2UpO1xyXG5cclxuICBvcHRpb25zOiBhbnk7XHJcbiAgaXRlbUNvdW50OiBudW1iZXI7XHJcbiAgc2VsZWN0ZWRJdGVtID0gMDtcclxuICBzaG93QWRkVGFiID0gdHJ1ZTtcclxuICByZWFkb25seSBsYXlvdXROb2RlID0gaW5wdXQ8YW55Pih1bmRlZmluZWQpO1xyXG4gIHJlYWRvbmx5IGxheW91dEluZGV4ID0gaW5wdXQ8bnVtYmVyW10+KHVuZGVmaW5lZCk7XHJcbiAgcmVhZG9ubHkgZGF0YUluZGV4ID0gaW5wdXQ8bnVtYmVyW10+KHVuZGVmaW5lZCk7XHJcblxyXG4gIG5nT25Jbml0KCkge1xyXG4gICAgdGhpcy5vcHRpb25zID0gdGhpcy5sYXlvdXROb2RlKCkub3B0aW9ucyB8fCB7fTtcclxuICAgIGlmKHRoaXMub3B0aW9ucy5zZWxlY3RlZFRhYil7XHJcbiAgICAgIHRoaXMuc2VsZWN0ZWRJdGVtID0gdGhpcy5vcHRpb25zLnNlbGVjdGVkVGFiO1xyXG4gICAgfVxyXG4gICAgdGhpcy5pdGVtQ291bnQgPSB0aGlzLmxheW91dE5vZGUoKS5pdGVtcy5sZW5ndGggLSAxO1xyXG4gICAgdGhpcy51cGRhdGVDb250cm9sKCk7XHJcbiAgfVxyXG5cclxuICBzZWxlY3QoaW5kZXgpIHtcclxuICAgIGNvbnN0IGxheW91dE5vZGUgPSB0aGlzLmxheW91dE5vZGUoKTtcclxuICAgIGlmIChsYXlvdXROb2RlLml0ZW1zW2luZGV4XS50eXBlID09PSAnJHJlZicpIHtcclxuICAgICAgdGhpcy5qc2YuYWRkSXRlbSh7XHJcbiAgICAgICAgbGF5b3V0Tm9kZTogc2lnbmFsKGxheW91dE5vZGUuaXRlbXNbaW5kZXhdKSxcclxuICAgICAgICBsYXlvdXRJbmRleDogc2lnbmFsKHRoaXMubGF5b3V0SW5kZXgoKS5jb25jYXQoaW5kZXgpKSxcclxuICAgICAgICBkYXRhSW5kZXg6IHNpZ25hbCh0aGlzLmRhdGFJbmRleCgpLmNvbmNhdChpbmRleCkpXHJcbiAgICAgIH0pO1xyXG4gICAgICB0aGlzLnVwZGF0ZUNvbnRyb2woKTtcclxuICAgIH1cclxuICAgIHRoaXMuc2VsZWN0ZWRJdGVtID0gaW5kZXg7XHJcbiAgfVxyXG5cclxuICB1cGRhdGVDb250cm9sKCkge1xyXG4gICAgdGhpcy5pdGVtQ291bnQgPSB0aGlzLmxheW91dE5vZGUoKS5pdGVtcy5sZW5ndGggLSAxO1xyXG4gICAgY29uc3QgbGFzdEl0ZW0gPSB0aGlzLmxheW91dE5vZGUoKS5pdGVtc1t0aGlzLmxheW91dE5vZGUoKS5pdGVtcy5sZW5ndGggLSAxXTtcclxuICAgIHRoaXMuc2hvd0FkZFRhYiA9IGxhc3RJdGVtLnR5cGUgPT09ICckcmVmJyAmJlxyXG4gICAgICB0aGlzLml0ZW1Db3VudCA8IChsYXN0SXRlbS5vcHRpb25zLm1heEl0ZW1zIHx8IDEwMDApO1xyXG4gIH1cclxuXHJcbiAgc2V0VGFiVGl0bGUoaXRlbTogYW55LCBpbmRleDogbnVtYmVyKTogc3RyaW5nIHtcclxuICAgIHJldHVybiB0aGlzLmpzZi5zZXRBcnJheUl0ZW1UaXRsZSh0aGlzLCBpdGVtLCBpbmRleCk7XHJcbiAgfVxyXG59XHJcbiJdfQ==
@@ -1,4 +1,4 @@
1
- import { Component, input, inject } from '@angular/core';
1
+ import { Component, inject, input } from '@angular/core';
2
2
  import { MAT_FORM_FIELD_DEFAULT_OPTIONS } from '@angular/material/form-field';
3
3
  import { JsonSchemaFormService } from '@ng-formworks/core';
4
4
  import * as i0 from "@angular/core";
@@ -26,6 +26,9 @@ export class MaterialTextareaComponent {
26
26
  updateValue(event) {
27
27
  this.jsf.updateValue(this, event.target.value);
28
28
  }
29
+ ngOnDestroy() {
30
+ this.jsf.updateValue(this, null);
31
+ }
29
32
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: MaterialTextareaComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
30
33
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "17.3.12", type: MaterialTextareaComponent, selector: "material-textarea-widget", inputs: { layoutNode: { classPropertyName: "layoutNode", publicName: "layoutNode", isSignal: true, isRequired: false, transformFunction: null }, layoutIndex: { classPropertyName: "layoutIndex", publicName: "layoutIndex", isSignal: true, isRequired: false, transformFunction: null }, dataIndex: { classPropertyName: "dataIndex", publicName: "dataIndex", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: `
31
34
  <mat-form-field [appearance]="options?.appearance || matFormFieldDefaultOptions?.appearance || 'fill'"
@@ -123,4 +126,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
123
126
  <mat-error *ngIf="options?.showErrors && options?.errorMessage"
124
127
  [innerHTML]="options?.errorMessage"></mat-error>`, styles: ["mat-error{font-size:75%;margin-top:-1rem;margin-bottom:.5rem}::ng-deep json-schema-form mat-form-field .mat-mdc-form-field-wrapper .mat-form-field-flex .mat-form-field-infix{width:initial}\n"] }]
125
128
  }] });
126
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWF0ZXJpYWwtdGV4dGFyZWEuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctZm9ybXdvcmtzLW1hdGVyaWFsL3NyYy9saWIvd2lkZ2V0cy9tYXRlcmlhbC10ZXh0YXJlYS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBVSxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRWpFLE9BQU8sRUFBRSw4QkFBOEIsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQzlFLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLG9CQUFvQixDQUFDOzs7Ozs7QUF5RDNELE1BQU0sT0FBTyx5QkFBeUI7SUF2RHRDO1FBd0RFLCtCQUEwQixHQUFHLE1BQU0sQ0FBQyw4QkFBOEIsRUFBRSxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO1FBQ2hGLFFBQUcsR0FBRyxNQUFNLENBQUMscUJBQXFCLENBQUMsQ0FBQztRQUs1QyxvQkFBZSxHQUFHLEtBQUssQ0FBQztRQUN4QixpQkFBWSxHQUFHLEtBQUssQ0FBQztRQUVaLGVBQVUsR0FBRyxLQUFLLENBQU0sU0FBUyxDQUFDLENBQUM7UUFDbkMsZ0JBQVcsR0FBRyxLQUFLLENBQVcsU0FBUyxDQUFDLENBQUM7UUFDekMsY0FBUyxHQUFHLEtBQUssQ0FBVyxTQUFTLENBQUMsQ0FBQztLQWFqRDtJQVhDLFFBQVE7UUFDTixJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQyxPQUFPLElBQUksRUFBRSxDQUFDO1FBQy9DLElBQUksQ0FBQyxHQUFHLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDakMsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxXQUFXLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxXQUFXLEVBQUU7WUFDbEYsSUFBSSxDQUFDLE9BQU8sQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUM7U0FDckQ7SUFDSCxDQUFDO0lBRUQsV0FBVyxDQUFDLEtBQUs7UUFDZixJQUFJLENBQUMsR0FBRyxDQUFDLFdBQVcsQ0FBQyxJQUFJLEVBQUUsS0FBSyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNqRCxDQUFDOytHQXhCVSx5QkFBeUI7bUdBQXpCLHlCQUF5QixpZUFwRDFCOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7dURBNkMyQzs7NEZBTzFDLHlCQUF5QjtrQkF2RHJDLFNBQVM7K0JBRUUsMEJBQTBCLFlBQzFCOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7dURBNkMyQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0LCBpbnB1dCwgaW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEFic3RyYWN0Q29udHJvbCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgTUFUX0ZPUk1fRklFTERfREVGQVVMVF9PUFRJT05TIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZm9ybS1maWVsZCc7XHJcbmltcG9ydCB7IEpzb25TY2hlbWFGb3JtU2VydmljZSB9IGZyb20gJ0BuZy1mb3Jtd29ya3MvY29yZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6Y29tcG9uZW50LXNlbGVjdG9yXHJcbiAgc2VsZWN0b3I6ICdtYXRlcmlhbC10ZXh0YXJlYS13aWRnZXQnLFxyXG4gIHRlbXBsYXRlOiBgXHJcbiAgICA8bWF0LWZvcm0tZmllbGQgW2FwcGVhcmFuY2VdPVwib3B0aW9ucz8uYXBwZWFyYW5jZSB8fCBtYXRGb3JtRmllbGREZWZhdWx0T3B0aW9ucz8uYXBwZWFyYW5jZSB8fCAnZmlsbCdcIlxyXG4gICAgICBbY2xhc3NdPVwib3B0aW9ucz8uaHRtbENsYXNzIHx8ICcnXCJcclxuICAgICAgW2Zsb2F0TGFiZWxdPVwib3B0aW9ucz8uZmxvYXRMYWJlbCB8fCBtYXRGb3JtRmllbGREZWZhdWx0T3B0aW9ucz8uZmxvYXRMYWJlbCB8fCAob3B0aW9ucz8ubm90aXRsZSA/ICduZXZlcicgOiAnYXV0bycpXCJcclxuICAgICAgW2hpZGVSZXF1aXJlZE1hcmtlcl09XCJvcHRpb25zPy5oaWRlUmVxdWlyZWQgPyAndHJ1ZScgOiAnZmFsc2UnXCJcclxuICAgICAgW3N0eWxlLndpZHRoXT1cIicxMDAlJ1wiPlxyXG4gICAgICA8bWF0LWxhYmVsICpuZ0lmPVwiIW9wdGlvbnM/Lm5vdGl0bGVcIj57e29wdGlvbnM/LnRpdGxlfX08L21hdC1sYWJlbD5cclxuICAgICAgPHNwYW4gbWF0UHJlZml4ICpuZ0lmPVwib3B0aW9ucz8ucHJlZml4IHx8IG9wdGlvbnM/LmZpZWxkQWRkb25MZWZ0XCJcclxuICAgICAgICBbaW5uZXJIVE1MXT1cIm9wdGlvbnM/LnByZWZpeCB8fCBvcHRpb25zPy5maWVsZEFkZG9uTGVmdFwiPjwvc3Bhbj5cclxuICAgICAgPHRleHRhcmVhIG1hdElucHV0ICpuZ0lmPVwiYm91bmRDb250cm9sXCJcclxuICAgICAgICBbZm9ybUNvbnRyb2xdPVwiZm9ybUNvbnRyb2xcIlxyXG4gICAgICAgIFthdHRyLmFyaWEtZGVzY3JpYmVkYnldPVwiJ2NvbnRyb2wnICsgbGF5b3V0Tm9kZSgpPy5faWQgKyAnU3RhdHVzJ1wiXHJcbiAgICAgICAgW2F0dHIubGlzdF09XCInY29udHJvbCcgKyBsYXlvdXROb2RlKCk/Ll9pZCArICdBdXRvY29tcGxldGUnXCJcclxuICAgICAgICBbYXR0ci5tYXhsZW5ndGhdPVwib3B0aW9ucz8ubWF4TGVuZ3RoXCJcclxuICAgICAgICBbYXR0ci5taW5sZW5ndGhdPVwib3B0aW9ucz8ubWluTGVuZ3RoXCJcclxuICAgICAgICBbYXR0ci5wYXR0ZXJuXT1cIm9wdGlvbnM/LnBhdHRlcm5cIlxyXG4gICAgICAgIFtyZXF1aXJlZF09XCJvcHRpb25zPy5yZXF1aXJlZFwiXHJcbiAgICAgICAgW2lkXT1cIidjb250cm9sJyArIGxheW91dE5vZGUoKT8uX2lkXCJcclxuICAgICAgICBbbmFtZV09XCJjb250cm9sTmFtZVwiXHJcbiAgICAgICAgW3BsYWNlaG9sZGVyXT1cIm9wdGlvbnM/Lm5vdGl0bGUgPyBvcHRpb25zPy5wbGFjZWhvbGRlciA6IG9wdGlvbnM/LnRpdGxlXCJcclxuICAgICAgICBbcmVhZG9ubHldPVwib3B0aW9ucz8ucmVhZG9ubHkgPyAncmVhZG9ubHknIDogbnVsbFwiXHJcbiAgICAgICAgW3N0eWxlLndpZHRoXT1cIicxMDAlJ1wiXHJcbiAgICAgICAgKGJsdXIpPVwib3B0aW9ucy5zaG93RXJyb3JzID0gdHJ1ZVwiPjwvdGV4dGFyZWE+XHJcbiAgICAgIDx0ZXh0YXJlYSBtYXRJbnB1dCAqbmdJZj1cIiFib3VuZENvbnRyb2xcIlxyXG4gICAgICAgIFthdHRyLmFyaWEtZGVzY3JpYmVkYnldPVwiJ2NvbnRyb2wnICsgbGF5b3V0Tm9kZSgpPy5faWQgKyAnU3RhdHVzJ1wiXHJcbiAgICAgICAgW2F0dHIubGlzdF09XCInY29udHJvbCcgKyBsYXlvdXROb2RlKCk/Ll9pZCArICdBdXRvY29tcGxldGUnXCJcclxuICAgICAgICBbYXR0ci5tYXhsZW5ndGhdPVwib3B0aW9ucz8ubWF4TGVuZ3RoXCJcclxuICAgICAgICBbYXR0ci5taW5sZW5ndGhdPVwib3B0aW9ucz8ubWluTGVuZ3RoXCJcclxuICAgICAgICBbYXR0ci5wYXR0ZXJuXT1cIm9wdGlvbnM/LnBhdHRlcm5cIlxyXG4gICAgICAgIFtyZXF1aXJlZF09XCJvcHRpb25zPy5yZXF1aXJlZFwiXHJcbiAgICAgICAgW2Rpc2FibGVkXT1cImNvbnRyb2xEaXNhYmxlZFwiXHJcbiAgICAgICAgW2lkXT1cIidjb250cm9sJyArIGxheW91dE5vZGUoKT8uX2lkXCJcclxuICAgICAgICBbbmFtZV09XCJjb250cm9sTmFtZVwiXHJcbiAgICAgICAgW3BsYWNlaG9sZGVyXT1cIm9wdGlvbnM/Lm5vdGl0bGUgPyBvcHRpb25zPy5wbGFjZWhvbGRlciA6IG9wdGlvbnM/LnRpdGxlXCJcclxuICAgICAgICBbcmVhZG9ubHldPVwib3B0aW9ucz8ucmVhZG9ubHkgPyAncmVhZG9ubHknIDogbnVsbFwiXHJcbiAgICAgICAgW3N0eWxlLndpZHRoXT1cIicxMDAlJ1wiXHJcbiAgICAgICAgW3ZhbHVlXT1cImNvbnRyb2xWYWx1ZVwiXHJcbiAgICAgICAgKGlucHV0KT1cInVwZGF0ZVZhbHVlKCRldmVudClcIlxyXG4gICAgICAgIChibHVyKT1cIm9wdGlvbnMuc2hvd0Vycm9ycyA9IHRydWVcIj48L3RleHRhcmVhPlxyXG4gICAgICA8c3BhbiBtYXRTdWZmaXggKm5nSWY9XCJvcHRpb25zPy5zdWZmaXggfHwgb3B0aW9ucz8uZmllbGRBZGRvblJpZ2h0XCJcclxuICAgICAgICBbaW5uZXJIVE1MXT1cIm9wdGlvbnM/LnN1ZmZpeCB8fCBvcHRpb25zPy5maWVsZEFkZG9uUmlnaHRcIj48L3NwYW4+XHJcbiAgICAgIDxtYXQtaGludCAqbmdJZj1cIm9wdGlvbnM/LmRlc2NyaXB0aW9uICYmICghb3B0aW9ucz8uc2hvd0Vycm9ycyB8fCAhb3B0aW9ucz8uZXJyb3JNZXNzYWdlKVwiXHJcbiAgICAgICAgYWxpZ249XCJlbmRcIiBbaW5uZXJIVE1MXT1cIm9wdGlvbnM/LmRlc2NyaXB0aW9uXCI+PC9tYXQtaGludD5cclxuICAgIDwvbWF0LWZvcm0tZmllbGQ+XHJcbiAgICA8bWF0LWVycm9yICpuZ0lmPVwib3B0aW9ucz8uc2hvd0Vycm9ycyAmJiBvcHRpb25zPy5lcnJvck1lc3NhZ2VcIlxyXG4gICAgICBbaW5uZXJIVE1MXT1cIm9wdGlvbnM/LmVycm9yTWVzc2FnZVwiPjwvbWF0LWVycm9yPmAsXHJcbiAgc3R5bGVzOiBbYFxyXG4gICAgbWF0LWVycm9yIHsgZm9udC1zaXplOiA3NSU7IG1hcmdpbi10b3A6IC0xcmVtOyBtYXJnaW4tYm90dG9tOiAwLjVyZW07IH1cclxuICAgIDo6bmctZGVlcCBqc29uLXNjaGVtYS1mb3JtIG1hdC1mb3JtLWZpZWxkIC5tYXQtbWRjLWZvcm0tZmllbGQtd3JhcHBlciAubWF0LWZvcm0tZmllbGQtZmxleFxyXG4gICAgICAubWF0LWZvcm0tZmllbGQtaW5maXggeyB3aWR0aDogaW5pdGlhbDsgfVxyXG4gIGBdLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgTWF0ZXJpYWxUZXh0YXJlYUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcbiAgbWF0Rm9ybUZpZWxkRGVmYXVsdE9wdGlvbnMgPSBpbmplY3QoTUFUX0ZPUk1fRklFTERfREVGQVVMVF9PUFRJT05TLCB7IG9wdGlvbmFsOiB0cnVlIH0pO1xyXG4gIHByaXZhdGUganNmID0gaW5qZWN0KEpzb25TY2hlbWFGb3JtU2VydmljZSk7XHJcblxyXG4gIGZvcm1Db250cm9sOiBBYnN0cmFjdENvbnRyb2w7XHJcbiAgY29udHJvbE5hbWU6IHN0cmluZztcclxuICBjb250cm9sVmFsdWU6IGFueTtcclxuICBjb250cm9sRGlzYWJsZWQgPSBmYWxzZTtcclxuICBib3VuZENvbnRyb2wgPSBmYWxzZTtcclxuICBvcHRpb25zOiBhbnk7XHJcbiAgcmVhZG9ubHkgbGF5b3V0Tm9kZSA9IGlucHV0PGFueT4odW5kZWZpbmVkKTtcclxuICByZWFkb25seSBsYXlvdXRJbmRleCA9IGlucHV0PG51bWJlcltdPih1bmRlZmluZWQpO1xyXG4gIHJlYWRvbmx5IGRhdGFJbmRleCA9IGlucHV0PG51bWJlcltdPih1bmRlZmluZWQpO1xyXG5cclxuICBuZ09uSW5pdCgpIHtcclxuICAgIHRoaXMub3B0aW9ucyA9IHRoaXMubGF5b3V0Tm9kZSgpLm9wdGlvbnMgfHwge307XHJcbiAgICB0aGlzLmpzZi5pbml0aWFsaXplQ29udHJvbCh0aGlzKTtcclxuICAgIGlmICghdGhpcy5vcHRpb25zLm5vdGl0bGUgJiYgIXRoaXMub3B0aW9ucy5kZXNjcmlwdGlvbiAmJiB0aGlzLm9wdGlvbnMucGxhY2Vob2xkZXIpIHtcclxuICAgICAgdGhpcy5vcHRpb25zLmRlc2NyaXB0aW9uID0gdGhpcy5vcHRpb25zLnBsYWNlaG9sZGVyO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgdXBkYXRlVmFsdWUoZXZlbnQpIHtcclxuICAgIHRoaXMuanNmLnVwZGF0ZVZhbHVlKHRoaXMsIGV2ZW50LnRhcmdldC52YWx1ZSk7XHJcbiAgfVxyXG59XHJcbiJdfQ==
129
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWF0ZXJpYWwtdGV4dGFyZWEuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctZm9ybXdvcmtzLW1hdGVyaWFsL3NyYy9saWIvd2lkZ2V0cy9tYXRlcmlhbC10ZXh0YXJlYS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFxQixNQUFNLGVBQWUsQ0FBQztBQUU1RSxPQUFPLEVBQUUsOEJBQThCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUM5RSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQzs7Ozs7O0FBeUQzRCxNQUFNLE9BQU8seUJBQXlCO0lBdkR0QztRQXdERSwrQkFBMEIsR0FBRyxNQUFNLENBQUMsOEJBQThCLEVBQUUsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztRQUNoRixRQUFHLEdBQUcsTUFBTSxDQUFDLHFCQUFxQixDQUFDLENBQUM7UUFLNUMsb0JBQWUsR0FBRyxLQUFLLENBQUM7UUFDeEIsaUJBQVksR0FBRyxLQUFLLENBQUM7UUFFWixlQUFVLEdBQUcsS0FBSyxDQUFNLFNBQVMsQ0FBQyxDQUFDO1FBQ25DLGdCQUFXLEdBQUcsS0FBSyxDQUFXLFNBQVMsQ0FBQyxDQUFDO1FBQ3pDLGNBQVMsR0FBRyxLQUFLLENBQVcsU0FBUyxDQUFDLENBQUM7S0FnQmpEO0lBZEMsUUFBUTtRQUNOLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDLE9BQU8sSUFBSSxFQUFFLENBQUM7UUFDL0MsSUFBSSxDQUFDLEdBQUcsQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNqQyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLFdBQVcsSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLFdBQVcsRUFBRTtZQUNsRixJQUFJLENBQUMsT0FBTyxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQztTQUNyRDtJQUNILENBQUM7SUFFRCxXQUFXLENBQUMsS0FBSztRQUNmLElBQUksQ0FBQyxHQUFHLENBQUMsV0FBVyxDQUFDLElBQUksRUFBRSxLQUFLLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ2pELENBQUM7SUFDRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLEdBQUcsQ0FBQyxXQUFXLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQ25DLENBQUM7K0dBM0JVLHlCQUF5QjttR0FBekIseUJBQXlCLGllQXBEMUI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozt1REE2QzJDOzs0RkFPMUMseUJBQXlCO2tCQXZEckMsU0FBUzsrQkFFRSwwQkFBMEIsWUFDMUI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozt1REE2QzJDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBpbmplY3QsIGlucHV0LCBPbkRlc3Ryb3ksIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBBYnN0cmFjdENvbnRyb2wgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IE1BVF9GT1JNX0ZJRUxEX0RFRkFVTFRfT1BUSU9OUyB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2Zvcm0tZmllbGQnO1xyXG5pbXBvcnQgeyBKc29uU2NoZW1hRm9ybVNlcnZpY2UgfSBmcm9tICdAbmctZm9ybXdvcmtzL2NvcmUnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOmNvbXBvbmVudC1zZWxlY3RvclxyXG4gIHNlbGVjdG9yOiAnbWF0ZXJpYWwtdGV4dGFyZWEtd2lkZ2V0JyxcclxuICB0ZW1wbGF0ZTogYFxyXG4gICAgPG1hdC1mb3JtLWZpZWxkIFthcHBlYXJhbmNlXT1cIm9wdGlvbnM/LmFwcGVhcmFuY2UgfHwgbWF0Rm9ybUZpZWxkRGVmYXVsdE9wdGlvbnM/LmFwcGVhcmFuY2UgfHwgJ2ZpbGwnXCJcclxuICAgICAgW2NsYXNzXT1cIm9wdGlvbnM/Lmh0bWxDbGFzcyB8fCAnJ1wiXHJcbiAgICAgIFtmbG9hdExhYmVsXT1cIm9wdGlvbnM/LmZsb2F0TGFiZWwgfHwgbWF0Rm9ybUZpZWxkRGVmYXVsdE9wdGlvbnM/LmZsb2F0TGFiZWwgfHwgKG9wdGlvbnM/Lm5vdGl0bGUgPyAnbmV2ZXInIDogJ2F1dG8nKVwiXHJcbiAgICAgIFtoaWRlUmVxdWlyZWRNYXJrZXJdPVwib3B0aW9ucz8uaGlkZVJlcXVpcmVkID8gJ3RydWUnIDogJ2ZhbHNlJ1wiXHJcbiAgICAgIFtzdHlsZS53aWR0aF09XCInMTAwJSdcIj5cclxuICAgICAgPG1hdC1sYWJlbCAqbmdJZj1cIiFvcHRpb25zPy5ub3RpdGxlXCI+e3tvcHRpb25zPy50aXRsZX19PC9tYXQtbGFiZWw+XHJcbiAgICAgIDxzcGFuIG1hdFByZWZpeCAqbmdJZj1cIm9wdGlvbnM/LnByZWZpeCB8fCBvcHRpb25zPy5maWVsZEFkZG9uTGVmdFwiXHJcbiAgICAgICAgW2lubmVySFRNTF09XCJvcHRpb25zPy5wcmVmaXggfHwgb3B0aW9ucz8uZmllbGRBZGRvbkxlZnRcIj48L3NwYW4+XHJcbiAgICAgIDx0ZXh0YXJlYSBtYXRJbnB1dCAqbmdJZj1cImJvdW5kQ29udHJvbFwiXHJcbiAgICAgICAgW2Zvcm1Db250cm9sXT1cImZvcm1Db250cm9sXCJcclxuICAgICAgICBbYXR0ci5hcmlhLWRlc2NyaWJlZGJ5XT1cIidjb250cm9sJyArIGxheW91dE5vZGUoKT8uX2lkICsgJ1N0YXR1cydcIlxyXG4gICAgICAgIFthdHRyLmxpc3RdPVwiJ2NvbnRyb2wnICsgbGF5b3V0Tm9kZSgpPy5faWQgKyAnQXV0b2NvbXBsZXRlJ1wiXHJcbiAgICAgICAgW2F0dHIubWF4bGVuZ3RoXT1cIm9wdGlvbnM/Lm1heExlbmd0aFwiXHJcbiAgICAgICAgW2F0dHIubWlubGVuZ3RoXT1cIm9wdGlvbnM/Lm1pbkxlbmd0aFwiXHJcbiAgICAgICAgW2F0dHIucGF0dGVybl09XCJvcHRpb25zPy5wYXR0ZXJuXCJcclxuICAgICAgICBbcmVxdWlyZWRdPVwib3B0aW9ucz8ucmVxdWlyZWRcIlxyXG4gICAgICAgIFtpZF09XCInY29udHJvbCcgKyBsYXlvdXROb2RlKCk/Ll9pZFwiXHJcbiAgICAgICAgW25hbWVdPVwiY29udHJvbE5hbWVcIlxyXG4gICAgICAgIFtwbGFjZWhvbGRlcl09XCJvcHRpb25zPy5ub3RpdGxlID8gb3B0aW9ucz8ucGxhY2Vob2xkZXIgOiBvcHRpb25zPy50aXRsZVwiXHJcbiAgICAgICAgW3JlYWRvbmx5XT1cIm9wdGlvbnM/LnJlYWRvbmx5ID8gJ3JlYWRvbmx5JyA6IG51bGxcIlxyXG4gICAgICAgIFtzdHlsZS53aWR0aF09XCInMTAwJSdcIlxyXG4gICAgICAgIChibHVyKT1cIm9wdGlvbnMuc2hvd0Vycm9ycyA9IHRydWVcIj48L3RleHRhcmVhPlxyXG4gICAgICA8dGV4dGFyZWEgbWF0SW5wdXQgKm5nSWY9XCIhYm91bmRDb250cm9sXCJcclxuICAgICAgICBbYXR0ci5hcmlhLWRlc2NyaWJlZGJ5XT1cIidjb250cm9sJyArIGxheW91dE5vZGUoKT8uX2lkICsgJ1N0YXR1cydcIlxyXG4gICAgICAgIFthdHRyLmxpc3RdPVwiJ2NvbnRyb2wnICsgbGF5b3V0Tm9kZSgpPy5faWQgKyAnQXV0b2NvbXBsZXRlJ1wiXHJcbiAgICAgICAgW2F0dHIubWF4bGVuZ3RoXT1cIm9wdGlvbnM/Lm1heExlbmd0aFwiXHJcbiAgICAgICAgW2F0dHIubWlubGVuZ3RoXT1cIm9wdGlvbnM/Lm1pbkxlbmd0aFwiXHJcbiAgICAgICAgW2F0dHIucGF0dGVybl09XCJvcHRpb25zPy5wYXR0ZXJuXCJcclxuICAgICAgICBbcmVxdWlyZWRdPVwib3B0aW9ucz8ucmVxdWlyZWRcIlxyXG4gICAgICAgIFtkaXNhYmxlZF09XCJjb250cm9sRGlzYWJsZWRcIlxyXG4gICAgICAgIFtpZF09XCInY29udHJvbCcgKyBsYXlvdXROb2RlKCk/Ll9pZFwiXHJcbiAgICAgICAgW25hbWVdPVwiY29udHJvbE5hbWVcIlxyXG4gICAgICAgIFtwbGFjZWhvbGRlcl09XCJvcHRpb25zPy5ub3RpdGxlID8gb3B0aW9ucz8ucGxhY2Vob2xkZXIgOiBvcHRpb25zPy50aXRsZVwiXHJcbiAgICAgICAgW3JlYWRvbmx5XT1cIm9wdGlvbnM/LnJlYWRvbmx5ID8gJ3JlYWRvbmx5JyA6IG51bGxcIlxyXG4gICAgICAgIFtzdHlsZS53aWR0aF09XCInMTAwJSdcIlxyXG4gICAgICAgIFt2YWx1ZV09XCJjb250cm9sVmFsdWVcIlxyXG4gICAgICAgIChpbnB1dCk9XCJ1cGRhdGVWYWx1ZSgkZXZlbnQpXCJcclxuICAgICAgICAoYmx1cik9XCJvcHRpb25zLnNob3dFcnJvcnMgPSB0cnVlXCI+PC90ZXh0YXJlYT5cclxuICAgICAgPHNwYW4gbWF0U3VmZml4ICpuZ0lmPVwib3B0aW9ucz8uc3VmZml4IHx8IG9wdGlvbnM/LmZpZWxkQWRkb25SaWdodFwiXHJcbiAgICAgICAgW2lubmVySFRNTF09XCJvcHRpb25zPy5zdWZmaXggfHwgb3B0aW9ucz8uZmllbGRBZGRvblJpZ2h0XCI+PC9zcGFuPlxyXG4gICAgICA8bWF0LWhpbnQgKm5nSWY9XCJvcHRpb25zPy5kZXNjcmlwdGlvbiAmJiAoIW9wdGlvbnM/LnNob3dFcnJvcnMgfHwgIW9wdGlvbnM/LmVycm9yTWVzc2FnZSlcIlxyXG4gICAgICAgIGFsaWduPVwiZW5kXCIgW2lubmVySFRNTF09XCJvcHRpb25zPy5kZXNjcmlwdGlvblwiPjwvbWF0LWhpbnQ+XHJcbiAgICA8L21hdC1mb3JtLWZpZWxkPlxyXG4gICAgPG1hdC1lcnJvciAqbmdJZj1cIm9wdGlvbnM/LnNob3dFcnJvcnMgJiYgb3B0aW9ucz8uZXJyb3JNZXNzYWdlXCJcclxuICAgICAgW2lubmVySFRNTF09XCJvcHRpb25zPy5lcnJvck1lc3NhZ2VcIj48L21hdC1lcnJvcj5gLFxyXG4gIHN0eWxlczogW2BcclxuICAgIG1hdC1lcnJvciB7IGZvbnQtc2l6ZTogNzUlOyBtYXJnaW4tdG9wOiAtMXJlbTsgbWFyZ2luLWJvdHRvbTogMC41cmVtOyB9XHJcbiAgICA6Om5nLWRlZXAganNvbi1zY2hlbWEtZm9ybSBtYXQtZm9ybS1maWVsZCAubWF0LW1kYy1mb3JtLWZpZWxkLXdyYXBwZXIgLm1hdC1mb3JtLWZpZWxkLWZsZXhcclxuICAgICAgLm1hdC1mb3JtLWZpZWxkLWluZml4IHsgd2lkdGg6IGluaXRpYWw7IH1cclxuICBgXSxcclxufSlcclxuZXhwb3J0IGNsYXNzIE1hdGVyaWFsVGV4dGFyZWFDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsT25EZXN0cm95IHtcclxuICBtYXRGb3JtRmllbGREZWZhdWx0T3B0aW9ucyA9IGluamVjdChNQVRfRk9STV9GSUVMRF9ERUZBVUxUX09QVElPTlMsIHsgb3B0aW9uYWw6IHRydWUgfSk7XHJcbiAgcHJpdmF0ZSBqc2YgPSBpbmplY3QoSnNvblNjaGVtYUZvcm1TZXJ2aWNlKTtcclxuXHJcbiAgZm9ybUNvbnRyb2w6IEFic3RyYWN0Q29udHJvbDtcclxuICBjb250cm9sTmFtZTogc3RyaW5nO1xyXG4gIGNvbnRyb2xWYWx1ZTogYW55O1xyXG4gIGNvbnRyb2xEaXNhYmxlZCA9IGZhbHNlO1xyXG4gIGJvdW5kQ29udHJvbCA9IGZhbHNlO1xyXG4gIG9wdGlvbnM6IGFueTtcclxuICByZWFkb25seSBsYXlvdXROb2RlID0gaW5wdXQ8YW55Pih1bmRlZmluZWQpO1xyXG4gIHJlYWRvbmx5IGxheW91dEluZGV4ID0gaW5wdXQ8bnVtYmVyW10+KHVuZGVmaW5lZCk7XHJcbiAgcmVhZG9ubHkgZGF0YUluZGV4ID0gaW5wdXQ8bnVtYmVyW10+KHVuZGVmaW5lZCk7XHJcblxyXG4gIG5nT25Jbml0KCkge1xyXG4gICAgdGhpcy5vcHRpb25zID0gdGhpcy5sYXlvdXROb2RlKCkub3B0aW9ucyB8fCB7fTtcclxuICAgIHRoaXMuanNmLmluaXRpYWxpemVDb250cm9sKHRoaXMpO1xyXG4gICAgaWYgKCF0aGlzLm9wdGlvbnMubm90aXRsZSAmJiAhdGhpcy5vcHRpb25zLmRlc2NyaXB0aW9uICYmIHRoaXMub3B0aW9ucy5wbGFjZWhvbGRlcikge1xyXG4gICAgICB0aGlzLm9wdGlvbnMuZGVzY3JpcHRpb24gPSB0aGlzLm9wdGlvbnMucGxhY2Vob2xkZXI7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICB1cGRhdGVWYWx1ZShldmVudCkge1xyXG4gICAgdGhpcy5qc2YudXBkYXRlVmFsdWUodGhpcywgZXZlbnQudGFyZ2V0LnZhbHVlKTtcclxuICB9XHJcbiAgbmdPbkRlc3Ryb3kgKCkge1xyXG4gICAgdGhpcy5qc2YudXBkYXRlVmFsdWUodGhpcywgbnVsbCk7XHJcbiAgfVxyXG59XHJcbiJdfQ==