valtech-components 4.0.16 → 4.0.19

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.
@@ -1,13 +1,11 @@
1
1
  import { CommonModule } from '@angular/common';
2
- import { Component, EventEmitter, Input, Output, computed, inject, signal } from '@angular/core';
3
- import { FormsModule } from '@angular/forms';
2
+ import { Component, EventEmitter, Input, Output, computed, inject, signal, } from '@angular/core';
4
3
  import { IonButton, IonIcon, IonInput } from '@ionic/angular/standalone';
5
4
  import { addIcons } from 'ionicons';
6
5
  import { addOutline, trashOutline } from 'ionicons/icons';
7
6
  import { I18nService } from '../../../services/i18n';
8
7
  import { FIELD_LIST_I18N } from './field-list.i18n';
9
8
  import * as i0 from "@angular/core";
10
- import * as i1 from "@angular/forms";
11
9
  addIcons({ addOutline, trashOutline });
12
10
  const I18N_NS = 'FieldList';
13
11
  /**
@@ -75,7 +73,7 @@ export class FieldListComponent {
75
73
  const prev = changes['props'].previousValue;
76
74
  const curr = changes['props'].currentValue;
77
75
  if (changes['props'].firstChange || prev?.items !== curr?.items) {
78
- this.rowsSig.set((curr?.items ?? []).map((it) => ({ ...it })));
76
+ this.rowsSig.set((curr?.items ?? []).map(it => ({ ...it })));
79
77
  }
80
78
  }
81
79
  }
@@ -90,22 +88,22 @@ export class FieldListComponent {
90
88
  const blank = {};
91
89
  for (const f of this.fields())
92
90
  blank[f.name] = f.type === 'number' ? 0 : '';
93
- this.rowsSig.update((list) => [...list, blank]);
91
+ this.rowsSig.update(list => [...list, blank]);
94
92
  this.emit();
95
93
  }
96
94
  removeRow(index) {
97
95
  if (this.rowsSig().length <= (this.props.min ?? 0))
98
96
  return;
99
- this.rowsSig.update((list) => list.filter((_, i) => i !== index));
97
+ this.rowsSig.update(list => list.filter((_, i) => i !== index));
100
98
  this.emit();
101
99
  }
102
100
  updateField(index, field, value) {
103
101
  const next = field.type === 'number' ? Number(value) || 0 : value;
104
- this.rowsSig.update((list) => list.map((row, i) => (i === index ? { ...row, [field.name]: next } : row)));
102
+ this.rowsSig.update(list => list.map((row, i) => (i === index ? { ...row, [field.name]: next } : row)));
105
103
  this.emit();
106
104
  }
107
105
  emit() {
108
- this.itemsChange.emit(this.rowsSig().map((r) => ({ ...r })));
106
+ this.itemsChange.emit(this.rowsSig().map(r => ({ ...r })));
109
107
  }
110
108
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: FieldListComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
111
109
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: FieldListComponent, isStandalone: true, selector: "val-field-list", inputs: { props: "props" }, outputs: { itemsChange: "itemsChange" }, usesOnChanges: true, ngImport: i0, template: `
@@ -143,8 +141,8 @@ export class FieldListComponent {
143
141
  [placeholder]="field.placeholder ?? ''"
144
142
  [maxlength]="field.maxlength ?? null"
145
143
  [min]="field.min ?? null"
146
- [ngModel]="row[field.name]"
147
- (ngModelChange)="updateField($index, field, $event)"
144
+ [value]="row[field.name]"
145
+ (ionInput)="updateField($index, field, $event.detail.value ?? '')"
148
146
  />
149
147
  </div>
150
148
  }
@@ -155,23 +153,16 @@ export class FieldListComponent {
155
153
  }
156
154
 
157
155
  @if (canAdd()) {
158
- <ion-button
159
- class="fl-add"
160
- fill="outline"
161
- color="dark"
162
- size="default"
163
- shape="round"
164
- (click)="addRow()"
165
- >
156
+ <ion-button class="fl-add" fill="outline" color="dark" size="default" shape="round" (click)="addRow()">
166
157
  <ion-icon [name]="addIcon()" slot="start" />
167
158
  {{ addText() }}
168
159
  </ion-button>
169
160
  }
170
- `, isInline: true, styles: [":host{display:block}.fl-empty{margin:0 0 12px;font-size:.875rem;color:var(--ion-color-medium)}.fl-rows{display:flex;flex-direction:column;gap:12px;margin-bottom:12px}.fl-card{border:1px solid var(--ion-color-step-150, #e0e0e0);border-radius:14px;background:var(--ion-color-step-50, #fbfbfb);padding:12px 14px 14px}.fl-card__head{display:flex;align-items:center;justify-content:space-between;min-height:28px;margin-bottom:4px}.fl-card__label{font-size:.8125rem;font-weight:700;letter-spacing:.02em;color:var(--ion-color-medium-shade, #6b6e76)}.fl-remove{margin:0;--padding-start: 6px;--padding-end: 6px;height:32px}.fl-fields{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,200px),1fr));gap:10px 12px}.fl-field ion-input{--border-radius: 10px}.fl-add{--border-radius: 999px;font-weight:600}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.MaxLengthValidator, selector: "[maxlength][formControlName],[maxlength][formControl],[maxlength][ngModel]", inputs: ["maxlength"] }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: IonButton, selector: "ion-button", inputs: ["buttonType", "color", "disabled", "download", "expand", "fill", "form", "href", "mode", "rel", "routerAnimation", "routerDirection", "shape", "size", "strong", "target", "type"] }, { kind: "component", type: IonIcon, selector: "ion-icon", inputs: ["color", "flipRtl", "icon", "ios", "lazy", "md", "mode", "name", "sanitize", "size", "src"] }, { kind: "component", type: IonInput, selector: "ion-input", inputs: ["accept", "autocapitalize", "autocomplete", "autocorrect", "autofocus", "clearInput", "clearOnEdit", "color", "counter", "counterFormatter", "debounce", "disabled", "enterkeyhint", "errorText", "fill", "helperText", "inputmode", "label", "labelPlacement", "max", "maxlength", "min", "minlength", "mode", "multiple", "name", "pattern", "placeholder", "readonly", "required", "shape", "size", "spellcheck", "step", "type", "value"] }] }); }
161
+ `, isInline: true, styles: [":host{display:block}.fl-empty{margin:0 0 12px;font-size:.875rem;color:var(--ion-color-medium)}.fl-rows{display:flex;flex-direction:column;gap:12px;margin-bottom:12px}.fl-card{border:1px solid var(--ion-border-color, var(--ion-color-step-150, #e0e0e0));border-radius:14px;background:var(--ion-card-background, var(--ion-color-step-50, #fbfbfb));padding:12px 14px 14px}.fl-card__head{display:flex;align-items:center;justify-content:space-between;min-height:28px;margin-bottom:4px}.fl-card__label{font-size:.8125rem;font-weight:700;letter-spacing:.02em;color:var(--ion-color-medium-shade, #6b6e76)}.fl-remove{margin:0;--padding-start: 6px;--padding-end: 6px;height:32px}.fl-fields{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,200px),1fr));gap:10px 12px}.fl-field ion-input{--border-radius: 10px}.fl-add{--border-radius: 999px;font-weight:600}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "component", type: IonButton, selector: "ion-button", inputs: ["buttonType", "color", "disabled", "download", "expand", "fill", "form", "href", "mode", "rel", "routerAnimation", "routerDirection", "shape", "size", "strong", "target", "type"] }, { kind: "component", type: IonIcon, selector: "ion-icon", inputs: ["color", "flipRtl", "icon", "ios", "lazy", "md", "mode", "name", "sanitize", "size", "src"] }, { kind: "component", type: IonInput, selector: "ion-input", inputs: ["accept", "autocapitalize", "autocomplete", "autocorrect", "autofocus", "clearInput", "clearOnEdit", "color", "counter", "counterFormatter", "debounce", "disabled", "enterkeyhint", "errorText", "fill", "helperText", "inputmode", "label", "labelPlacement", "max", "maxlength", "min", "minlength", "mode", "multiple", "name", "pattern", "placeholder", "readonly", "required", "shape", "size", "spellcheck", "step", "type", "value"] }] }); }
171
162
  }
172
163
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: FieldListComponent, decorators: [{
173
164
  type: Component,
174
- args: [{ selector: 'val-field-list', standalone: true, imports: [CommonModule, FormsModule, IonButton, IonIcon, IonInput], template: `
165
+ args: [{ selector: 'val-field-list', standalone: true, imports: [CommonModule, IonButton, IonIcon, IonInput], template: `
175
166
  @if (rows().length === 0) {
176
167
  <p class="fl-empty">{{ emptyText() }}</p>
177
168
  } @else {
@@ -206,8 +197,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
206
197
  [placeholder]="field.placeholder ?? ''"
207
198
  [maxlength]="field.maxlength ?? null"
208
199
  [min]="field.min ?? null"
209
- [ngModel]="row[field.name]"
210
- (ngModelChange)="updateField($index, field, $event)"
200
+ [value]="row[field.name]"
201
+ (ionInput)="updateField($index, field, $event.detail.value ?? '')"
211
202
  />
212
203
  </div>
213
204
  }
@@ -218,22 +209,15 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
218
209
  }
219
210
 
220
211
  @if (canAdd()) {
221
- <ion-button
222
- class="fl-add"
223
- fill="outline"
224
- color="dark"
225
- size="default"
226
- shape="round"
227
- (click)="addRow()"
228
- >
212
+ <ion-button class="fl-add" fill="outline" color="dark" size="default" shape="round" (click)="addRow()">
229
213
  <ion-icon [name]="addIcon()" slot="start" />
230
214
  {{ addText() }}
231
215
  </ion-button>
232
216
  }
233
- `, styles: [":host{display:block}.fl-empty{margin:0 0 12px;font-size:.875rem;color:var(--ion-color-medium)}.fl-rows{display:flex;flex-direction:column;gap:12px;margin-bottom:12px}.fl-card{border:1px solid var(--ion-color-step-150, #e0e0e0);border-radius:14px;background:var(--ion-color-step-50, #fbfbfb);padding:12px 14px 14px}.fl-card__head{display:flex;align-items:center;justify-content:space-between;min-height:28px;margin-bottom:4px}.fl-card__label{font-size:.8125rem;font-weight:700;letter-spacing:.02em;color:var(--ion-color-medium-shade, #6b6e76)}.fl-remove{margin:0;--padding-start: 6px;--padding-end: 6px;height:32px}.fl-fields{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,200px),1fr));gap:10px 12px}.fl-field ion-input{--border-radius: 10px}.fl-add{--border-radius: 999px;font-weight:600}\n"] }]
217
+ `, styles: [":host{display:block}.fl-empty{margin:0 0 12px;font-size:.875rem;color:var(--ion-color-medium)}.fl-rows{display:flex;flex-direction:column;gap:12px;margin-bottom:12px}.fl-card{border:1px solid var(--ion-border-color, var(--ion-color-step-150, #e0e0e0));border-radius:14px;background:var(--ion-card-background, var(--ion-color-step-50, #fbfbfb));padding:12px 14px 14px}.fl-card__head{display:flex;align-items:center;justify-content:space-between;min-height:28px;margin-bottom:4px}.fl-card__label{font-size:.8125rem;font-weight:700;letter-spacing:.02em;color:var(--ion-color-medium-shade, #6b6e76)}.fl-remove{margin:0;--padding-start: 6px;--padding-end: 6px;height:32px}.fl-fields{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,200px),1fr));gap:10px 12px}.fl-field ion-input{--border-radius: 10px}.fl-add{--border-radius: 999px;font-weight:600}\n"] }]
234
218
  }], ctorParameters: () => [], propDecorators: { props: [{
235
219
  type: Input
236
220
  }], itemsChange: [{
237
221
  type: Output
238
222
  }] } });
239
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmllbGQtbGlzdC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvb3JnYW5pc21zL2ZpZWxkLWxpc3QvZmllbGQtbGlzdC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBYSxNQUFNLEVBQWlCLFFBQVEsRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNILE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3QyxPQUFPLEVBQUUsU0FBUyxFQUFFLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUN6RSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBQ3BDLE9BQU8sRUFBRSxVQUFVLEVBQUUsWUFBWSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFMUQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBRXJELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQzs7O0FBRXBELFFBQVEsQ0FBQyxFQUFFLFVBQVUsRUFBRSxZQUFZLEVBQUUsQ0FBQyxDQUFDO0FBRXZDLE1BQU0sT0FBTyxHQUFHLFdBQVcsQ0FBQztBQUU1Qjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQXNCRztBQTBISCxNQUFNLE9BQU8sa0JBQWtCO0lBRzdCO1FBRlEsU0FBSSxHQUFHLE1BQU0sQ0FBQyxXQUFXLENBQUMsQ0FBQztRQVFuQywwQkFBMEI7UUFDakIsVUFBSyxHQUFzQixFQUFFLE1BQU0sRUFBRSxFQUFFLEVBQUUsQ0FBQztRQUVuRCxtRUFBbUU7UUFDekQsZ0JBQVcsR0FBRyxJQUFJLFlBQVks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O3NCQUFwQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25DaGFuZ2VzLCBPdXRwdXQsIFNpbXBsZUNoYW5nZXMsIGNvbXB1dGVkLCBpbmplY3QsIHNpZ25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBJb25CdXR0b24sIElvbkljb24sIElvbklucHV0IH0gZnJvbSAnQGlvbmljL2FuZ3VsYXIvc3RhbmRhbG9uZSc7XG5pbXBvcnQgeyBhZGRJY29ucyB9IGZyb20gJ2lvbmljb25zJztcbmltcG9ydCB7IGFkZE91dGxpbmUsIHRyYXNoT3V0bGluZSB9IGZyb20gJ2lvbmljb25zL2ljb25zJztcblxuaW1wb3J0IHsgSTE4blNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9pMThuJztcbmltcG9ydCB7IEZpZWxkTGlzdENvbHVtbiwgRmllbGRMaXN0SXRlbSwgRmllbGRMaXN0TWV0YWRhdGEgfSBmcm9tICcuL3R5cGVzJztcbmltcG9ydCB7IEZJRUxEX0xJU1RfSTE4TiB9IGZyb20gJy4vZmllbGQtbGlzdC5pMThuJztcblxuYWRkSWNvbnMoeyBhZGRPdXRsaW5lLCB0cmFzaE91dGxpbmUgfSk7XG5cbmNvbnN0IEkxOE5fTlMgPSAnRmllbGRMaXN0JztcblxuLyoqXG4gKiBgdmFsLWZpZWxkLWxpc3RgIOKAlCBlZGl0b3IgZGUgbGlzdGFzIGRlIGNhbXBvcyByZXBldGlibGVzIChwcmVtaW9zLCByb25kYXMsXG4gKiBpbnRlZ3JhbnRlcywgZXRjLikuIENhZGEgw610ZW0gZXMgdW5hICoqY2FyZCoqIGNvbiBzdXMgY2FtcG9zIGFwaWxhZG9zIHkgdW4gYm90w7NuXG4gKiBwYXJhIHF1aXRhcmxhOyBhbCBwaWUgdW4gYm90w7NuIFwiQWdyZWdhclwiLiBNb2JpbGUtZmlyc3QgKDEgY29sdW1uYSksIGVzY2FsYSBhXG4gKiB2YXJpYXMgY29sdW1uYXMgcG9yIGZpbGEgZW4gcGFudGFsbGFzIGFuY2hhcy5cbiAqXG4gKiBNYW5lamEgc3UgcHJvcGlvIGVzdGFkbyBpbnRlcm5vIHkgZW1pdGUgZWwgYXJyYXkgY29tcGxldG8gZW4gY2FkYSBjYW1iaW9cbiAqIChgaXRlbXNDaGFuZ2VgKS4gUGF0csOzbiBvYmplY3QtZmlyc3QgKGBASW5wdXQoKSBwcm9wc2ApLiBBdXRvLXJlZ2lzdHJhIGkxOG5cbiAqIChuYW1lc3BhY2UgYEZpZWxkTGlzdGApIHBhcmEgbG9zIGxhYmVscyBwb3IgZGVmZWN0byAoYWdyZWdhci9xdWl0YXIvdmFjw61vKS5cbiAqXG4gKiBAZXhhbXBsZVxuICogPHZhbC1maWVsZC1saXN0XG4gKiAgIFtwcm9wc109XCJ7XG4gKiAgICAgZmllbGRzOiBbXG4gKiAgICAgICB7IG5hbWU6ICdub21icmUnLCBsYWJlbDogJ05vbWJyZScgfSxcbiAqICAgICAgIHsgbmFtZTogJ2Rlc2NyaXBjaW9uJywgbGFiZWw6ICdEZXNjcmlwY2nDs24nIH1cbiAqICAgICBdLFxuICogICAgIGl0ZW1zOiBwcmVtaW9zLFxuICogICAgIGl0ZW1MYWJlbDogJ1ByZW1pbyB7bn0nLFxuICogICAgIGFkZExhYmVsOiAnQWdyZWdhciBwcmVtaW8nXG4gKiAgIH1cIlxuICogICAoaXRlbXNDaGFuZ2UpPVwicHJlbWlvcyA9ICRldmVudFwiIC8+XG4gKi9cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3ZhbC1maWVsZC1saXN0JyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgRm9ybXNNb2R1bGUsIElvbkJ1dHRvbiwgSW9uSWNvbiwgSW9uSW5wdXRdLFxuICB0ZW1wbGF0ZTogYFxuICAgIEBpZiAocm93cygpLmxlbmd0aCA9PT0gMCkge1xuICAgICAgPHAgY2xhc3M9XCJmbC1lbXB0eVwiPnt7IGVtcHR5VGV4dCgpIH19PC9wPlxuICAgIH0gQGVsc2Uge1xuICAgICAgPGRpdiBjbGFzcz1cImZsLXJvd3NcIj5cbiAgICAgICAgQGZvciAocm93IG9mIHJvd3MoKTsgdHJhY2sgJGluZGV4KSB7XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImZsLWNhcmRcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmbC1jYXJkX19oZWFkXCI+XG4gICAgICAgICAgICAgIEBpZiAoaXRlbUxhYmVsKCk7IGFzIGxhYmVsKSB7XG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJmbC1jYXJkX19sYWJlbFwiPnt7IHJvd0xhYmVsKGxhYmVsLCAkaW5kZXgpIH19PC9zcGFuPlxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIDxpb24tYnV0dG9uXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJmbC1yZW1vdmVcIlxuICAgICAgICAgICAgICAgIGZpbGw9XCJjbGVhclwiXG4gICAgICAgICAgICAgICAgY29sb3I9XCJtZWRpdW1cIlxuICAgICAgICAgICAgICAgIHNpemU9XCJzbWFsbFwiXG4gICAgICAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJyZW1vdmVUZXh0KClcIlxuICAgICAgICAgICAgICAgIChjbGljayk9XCJyZW1vdmVSb3coJGluZGV4KVwiXG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8aW9uLWljb24gc2xvdD1cImljb24tb25seVwiIG5hbWU9XCJ0cmFzaC1vdXRsaW5lXCIgLz5cbiAgICAgICAgICAgICAgPC9pb24tYnV0dG9uPlxuICAgICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmbC1maWVsZHNcIj5cbiAgICAgICAgICAgICAgQGZvciAoZmllbGQgb2YgZmllbGRzKCk7IHRyYWNrIGZpZWxkLm5hbWUpIHtcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmwtZmllbGRcIj5cbiAgICAgICAgICAgICAgICAgIDxpb24taW5wdXRcbiAgICAgICAgICAgICAgICAgICAgW2xhYmVsXT1cImZpZWxkLmxhYmVsXCJcbiAgICAgICAgICAgICAgICAgICAgbGFiZWxQbGFjZW1lbnQ9XCJzdGFja2VkXCJcbiAgICAgICAgICAgICAgICAgICAgZmlsbD1cIm91dGxpbmVcIlxuICAgICAgICAgICAgICAgICAgICBbdHlwZV09XCJmaWVsZC50eXBlID09PSAnbnVtYmVyJyA/ICdudW1iZXInIDogJ3RleHQnXCJcbiAgICAgICAgICAgICAgICAgICAgW2lucHV0bW9kZV09XCJmaWVsZC5pbnB1dG1vZGUgPz8gKGZpZWxkLnR5cGUgPT09ICdudW1iZXInID8gJ251bWVyaWMnIDogbnVsbClcIlxuICAgICAgICAgICAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwiZmllbGQucGxhY2Vob2xkZXIgPz8gJydcIlxuICAgICAgICAgICAgICAgICAgICBbbWF4bGVuZ3RoXT1cImZpZWxkLm1heGxlbmd0aCA/PyBudWxsXCJcbiAgICAgICAgICAgICAgICAgICAgW21pbl09XCJmaWVsZC5taW4gPz8gbnVsbFwiXG4gICAgICAgICAgICAgICAgICAgIFtuZ01vZGVsXT1cInJvd1tmaWVsZC5uYW1lXVwiXG4gICAgICAgICAgICAgICAgICAgIChuZ01vZGVsQ2hhbmdlKT1cInVwZGF0ZUZpZWxkKCRpbmRleCwgZmllbGQsICRldmVudClcIlxuICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIH1cbiAgICAgIDwvZGl2PlxuICAgIH1cblxuICAgIEBpZiAoY2FuQWRkKCkpIHtcbiAgICAgIDxpb24tYnV0dG9uXG4gICAgICAgIGNsYXNzPVwiZmwtYWRkXCJcbiAgICAgICAgZmlsbD1cIm91dGxpbmVcIlxuICAgICAgICBjb2xvcj1cImRhcmtcIlxuICAgICAgICBzaXplPVwiZGVmYXVsdFwiXG4gICAgICAgIHNoYXBlPVwicm91bmRcIlxuICAgICAgICAoY2xpY2spPVwiYWRkUm93KClcIlxuICAgICAgPlxuICAgICAgICA8aW9uLWljb24gW25hbWVdPVwiYWRkSWNvbigpXCIgc2xvdD1cInN0YXJ0XCIgLz5cbiAgICAgICAge3sgYWRkVGV4dCgpIH19XG4gICAgICA8L2lvbi1idXR0b24+XG4gICAgfVxuICBgLFxuICBzdHlsZXM6IFtcbiAgICBgXG4gICAgICA6aG9zdCB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgfVxuICAgICAgLmZsLWVtcHR5IHtcbiAgICAgICAgbWFyZ2luOiAwIDAgMTJweDtcbiAgICAgICAgZm9udC1zaXplOiAwLjg3NXJlbTtcbiAgICAgICAgY29sb3I6IHZhcigtLWlvbi1jb2xvci1tZWRpdW0pO1xuICAgICAgfVxuICAgICAgLmZsLXJvd3Mge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICBnYXA6IDEycHg7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDEycHg7XG4gICAgICB9XG4gICAgICAuZmwtY2FyZCB7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWlvbi1jb2xvci1zdGVwLTE1MCwgI2UwZTBlMCk7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDE0cHg7XG4gICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWlvbi1jb2xvci1zdGVwLTUwLCAjZmJmYmZiKTtcbiAgICAgICAgcGFkZGluZzogMTJweCAxNHB4IDE0cHg7XG4gICAgICB9XG4gICAgICAuZmwtY2FyZF9faGVhZCB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgbWluLWhlaWdodDogMjhweDtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogNHB4O1xuICAgICAgfVxuICAgICAgLmZsLWNhcmRfX2xhYmVsIHtcbiAgICAgICAgZm9udC1zaXplOiAwLjgxMjVyZW07XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgICAgIGxldHRlci1zcGFjaW5nOiAwLjAyZW07XG4gICAgICAgIGNvbG9yOiB2YXIoLS1pb24tY29sb3ItbWVkaXVtLXNoYWRlLCAjNmI2ZTc2KTtcbiAgICAgIH1cbiAgICAgIC5mbC1yZW1vdmUge1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIC0tcGFkZGluZy1zdGFydDogNnB4O1xuICAgICAgICAtLXBhZGRpbmctZW5kOiA2cHg7XG4gICAgICAgIGhlaWdodDogMzJweDtcbiAgICAgIH1cbiAgICAgIC8qIENhbXBvczogMSBjb2x1bW5hIGVuIG3Ds3ZpbCwgdmFyaWFzIGVuIGFuY2hvIChhdXRvLWZpbGwsIG1pbiAyMDBweCkuICovXG4gICAgICAuZmwtZmllbGRzIHtcbiAgICAgICAgZGlzcGxheTogZ3JpZDtcbiAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoYXV0by1maXQsIG1pbm1heChtaW4oMTAwJSwgMjAwcHgpLCAxZnIpKTtcbiAgICAgICAgZ2FwOiAxMHB4IDEycHg7XG4gICAgICB9XG4gICAgICAuZmwtZmllbGQgaW9uLWlucHV0IHtcbiAgICAgICAgLS1ib3JkZXItcmFkaXVzOiAxMHB4O1xuICAgICAgfVxuICAgICAgLmZsLWFkZCB7XG4gICAgICAgIC0tYm9yZGVyLXJhZGl1czogOTk5cHg7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgICB9XG4gICAgYCxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgRmllbGRMaXN0Q29tcG9uZW50IGltcGxlbWVudHMgT25DaGFuZ2VzIHtcbiAgcHJpdmF0ZSBpMThuID0gaW5qZWN0KEkxOG5TZXJ2aWNlKTtcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICBpZiAoIXRoaXMuaTE4bi5oYXNOYW1lc3BhY2UoSTE4Tl9OUykpIHtcbiAgICAgIHRoaXMuaTE4bi5yZWdpc3RlckNvbnRlbnQoSTE4Tl9OUywgRklFTERfTElTVF9JMThOKTtcbiAgICB9XG4gIH1cblxuICAvKiogUHJvcHMgb2JqZWN0LWZpcnN0LiAqL1xuICBASW5wdXQoKSBwcm9wczogRmllbGRMaXN0TWV0YWRhdGEgPSB7IGZpZWxkczogW10gfTtcblxuICAvKiogRW1pdGUgZWwgYXJyYXkgY29tcGxldG8gZGUgw610ZW1zIGVuIGNhZGEgYWRkL3JlbW92ZS9lZGljacOzbi4gKi9cbiAgQE91dHB1dCgpIGl0ZW1zQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxGaWVsZExpc3RJdGVtW10+KCk7XG5cbiAgLyoqIEVzdGFkbyBpbnRlcm5vIGRlIGxhcyBmaWxhcyAoc2Ugc2llbWJyYSBkZXNkZSBwcm9wcy5pdGVtcykuICovXG4gIHByaXZhdGUgcmVhZG9ubHkgcm93c1NpZyA9IHNpZ25hbDxGaWVsZExpc3RJdGVtW10+KFtdKTtcbiAgcmVhZG9ubHkgcm93cyA9IHRoaXMucm93c1NpZy5hc1JlYWRvbmx5KCk7XG5cbiAgcmVhZG9ubHkgZmllbGRzID0gY29tcHV0ZWQ8RmllbGRMaXN0Q29sdW1uW10+KCgpID0+IHRoaXMucHJvcHMuZmllbGRzID8/IFtdKTtcbiAgcmVhZG9ubHkgaXRlbUxhYmVsID0gY29tcHV0ZWQ8c3RyaW5nPigoKSA9PiB0aGlzLnByb3BzLml0ZW1MYWJlbCA/PyAnJyk7XG4gIHJlYWRvbmx5IGFkZEljb24gPSBjb21wdXRlZDxzdHJpbmc+KCgpID0+IHRoaXMucHJvcHMuYWRkSWNvbiA/PyAnYWRkLW91dGxpbmUnKTtcblxuICByZWFkb25seSBhZGRUZXh0ID0gY29tcHV0ZWQ8c3RyaW5nPigoKSA9PiB7XG4gICAgdGhpcy5pMThuLmxhbmcoKTtcbiAgICByZXR1cm4gdGhpcy5wcm9wcy5hZGRMYWJlbCA/PyB0aGlzLnQoJ2FkZCcpO1xuICB9KTtcbiAgcmVhZG9ubHkgcmVtb3ZlVGV4dCA9IGNvbXB1dGVkPHN0cmluZz4oKCkgPT4ge1xuICAgIHRoaXMuaTE4bi5sYW5nKCk7XG4gICAgcmV0dXJuIHRoaXMucHJvcHMucmVtb3ZlTGFiZWwgPz8gdGhpcy50KCdyZW1vdmUnKTtcbiAgfSk7XG4gIHJlYWRvbmx5IGVtcHR5VGV4dCA9IGNvbXB1dGVkPHN0cmluZz4oKCkgPT4ge1xuICAgIHRoaXMuaTE4bi5sYW5nKCk7XG4gICAgcmV0dXJuIHRoaXMucHJvcHMuZW1wdHlUZXh0ID8/IHRoaXMudCgnZW1wdHknKTtcbiAgfSk7XG5cbiAgLyoqIFB1ZWRlIGFncmVnYXIgc2kgbm8gc2UgYWxjYW56w7MgZWwgbcOheGltby4gKi9cbiAgcmVhZG9ubHkgY2FuQWRkID0gY29tcHV0ZWQ8Ym9vbGVhbj4oKCkgPT4ge1xuICAgIGNvbnN0IG1heCA9IHRoaXMucHJvcHMubWF4O1xuICAgIHJldHVybiBtYXggPT0gbnVsbCB8fCB0aGlzLnJvd3NTaWcoKS5sZW5ndGggPCBtYXg7XG4gIH0pO1xuXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICAvLyBSZS1zaWVtYnJhIHNvbG8gc2kgY2FtYmnDsyBsYSByZWZlcmVuY2lhIGRlIGl0ZW1zIGVudHJhbnRlIChldml0YSBwaXNhciBsb1xuICAgIC8vIGVkaXRhZG8gcG9yIGVsIHVzZXIgZW4gY2FkYSBDRCkuIEVsIGNvbnN1bWVyIGNvbnRyb2xhIGN1w6FuZG8gcmVzZW1icmFyXG4gICAgLy8gcGFzYW5kbyB1bmEgbnVldmEgcmVmZXJlbmNpYSBkZSBhcnJheS5cbiAgICBpZiAoY2hhbmdlc1sncHJvcHMnXSkge1xuICAgICAgY29uc3QgcHJldiA9IGNoYW5nZXNbJ3Byb3BzJ10ucHJldmlvdXNWYWx1ZSBhcyBGaWVsZExpc3RNZXRhZGF0YSB8IHVuZGVmaW5lZDtcbiAgICAgIGNvbnN0IGN1cnIgPSBjaGFuZ2VzWydwcm9wcyddLmN1cnJlbnRWYWx1ZSBhcyBGaWVsZExpc3RNZXRhZGF0YSB8IHVuZGVmaW5lZDtcbiAgICAgIGlmIChjaGFuZ2VzWydwcm9wcyddLmZpcnN0Q2hhbmdlIHx8IHByZXY/Lml0ZW1zICE9PSBjdXJyPy5pdGVtcykge1xuICAgICAgICB0aGlzLnJvd3NTaWcuc2V0KChjdXJyPy5pdGVtcyA/PyBbXSkubWFwKChpdCkgPT4gKHsgLi4uaXQgfSkpKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHQoa2V5OiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLmkxOG4udChrZXksIEkxOE5fTlMpO1xuICB9XG5cbiAgLyoqIFJlZW1wbGF6YSBge259YCBwb3IgZWwgbsO6bWVybyBkZSBmaWxhICgxLWJhc2VkKSBlbiBlbCByw7N0dWxvIGRlIGxhIGNhcmQuICovXG4gIHJvd0xhYmVsKHRlbXBsYXRlOiBzdHJpbmcsIGluZGV4OiBudW1iZXIpOiBzdHJpbmcge1xuICAgIHJldHVybiB0ZW1wbGF0ZS5yZXBsYWNlKCd7bn0nLCBTdHJpbmcoaW5kZXggKyAxKSk7XG4gIH1cblxuICBhZGRSb3coKTogdm9pZCB7XG4gICAgY29uc3QgYmxhbms6IEZpZWxkTGlzdEl0ZW0gPSB7fTtcbiAgICBmb3IgKGNvbnN0IGYgb2YgdGhpcy5maWVsZHMoKSkgYmxhbmtbZi5uYW1lXSA9IGYudHlwZSA9PT0gJ251bWJlcicgPyAwIDogJyc7XG4gICAgdGhpcy5yb3dzU2lnLnVwZGF0ZSgobGlzdCkgPT4gWy4uLmxpc3QsIGJsYW5rXSk7XG4gICAgdGhpcy5lbWl0KCk7XG4gIH1cblxuICByZW1vdmVSb3coaW5kZXg6IG51bWJlcik6IHZvaWQge1xuICAgIGlmICh0aGlzLnJvd3NTaWcoKS5sZW5ndGggPD0gKHRoaXMucHJvcHMubWluID8/IDApKSByZXR1cm47XG4gICAgdGhpcy5yb3dzU2lnLnVwZGF0ZSgobGlzdCkgPT4gbGlzdC5maWx0ZXIoKF8sIGkpID0+IGkgIT09IGluZGV4KSk7XG4gICAgdGhpcy5lbWl0KCk7XG4gIH1cblxuICB1cGRhdGVGaWVsZChpbmRleDogbnVtYmVyLCBmaWVsZDogRmllbGRMaXN0Q29sdW1uLCB2YWx1ZTogc3RyaW5nIHwgbnVtYmVyKTogdm9pZCB7XG4gICAgY29uc3QgbmV4dCA9IGZpZWxkLnR5cGUgPT09ICdudW1iZXInID8gTnVtYmVyKHZhbHVlKSB8fCAwIDogdmFsdWU7XG4gICAgdGhpcy5yb3dzU2lnLnVwZGF0ZSgobGlzdCkgPT5cbiAgICAgIGxpc3QubWFwKChyb3csIGkpID0+IChpID09PSBpbmRleCA/IHsgLi4ucm93LCBbZmllbGQubmFtZV06IG5leHQgfSA6IHJvdykpLFxuICAgICk7XG4gICAgdGhpcy5lbWl0KCk7XG4gIH1cblxuICBwcml2YXRlIGVtaXQoKTogdm9pZCB7XG4gICAgdGhpcy5pdGVtc0NoYW5nZS5lbWl0KHRoaXMucm93c1NpZygpLm1hcCgocikgPT4gKHsgLi4uciB9KSkpO1xuICB9XG59XG4iXX0=
223
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmllbGQtbGlzdC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvb3JnYW5pc21zL2ZpZWxkLWxpc3QvZmllbGQtbGlzdC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFDTCxTQUFTLEVBQ1QsWUFBWSxFQUNaLEtBQUssRUFFTCxNQUFNLEVBRU4sUUFBUSxFQUNSLE1BQU0sRUFDTixNQUFNLEdBQ1AsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLFNBQVMsRUFBRSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDekUsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUNwQyxPQUFPLEVBQUUsVUFBVSxFQUFFLFlBQVksRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRTFELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUVyRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7O0FBRXBELFFBQVEsQ0FBQyxFQUFFLFVBQVUsRUFBRSxZQUFZLEVBQUUsQ0FBQyxDQUFDO0FBRXZDLE1BQU0sT0FBTyxHQUFHLFdBQVcsQ0FBQztBQUU1Qjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQXNCRztBQW1ISCxNQUFNLE9BQU8sa0JBQWtCO0lBRzdCO1FBRlEsU0FBSSxHQUFHLE1BQU0sQ0FBQyxXQUFXLENBQUMsQ0FBQztRQVFuQywwQkFBMEI7UUFDakIsVUFBSyxHQUFzQixFQUFFLE1BQU0sRUFBRSxFQUFFLEVBQUUsQ0FBQztRQUVuRCxtRUFBbUU7UUFDekQsZ0JBQVcsR0FBRyxJQUFJLFlBQVksRUFBbUIsQ0FBQztRQUU1RCxrRUFBa0U7UUFDakQsWUFBTyxHQUFHLE1BQU0sQ0FBa0IsRUFBRSxDQUFDLENBQUM7UUFDOUMsU0FBSSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsVUFBVSxFQUFFLENBQUM7UUFFakMsV0FBTSxHQUFHLFFBQVEsQ0FBb0IsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLElBQUksRUFBRSxDQUFDLENBQUM7UUFDcEUsY0FBUyxHQUFHLFFBQVEsQ0FBUyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLFNBQVMsSUFBSSxFQUFFLENBQUMsQ0FBQztRQUMvRCxZQUFPLEdBQUcsUUFBUSxDQUFTLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxJQUFJLGFBQWEsQ0FBQyxDQUFDO1FBRXRFLFlBQU8sR0FBRyxRQUFRLENBQVMsR0FBRyxFQUFFO1lBQ3ZDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDakIsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsSUFBSSxJQUFJLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzlDLENBQUMsQ0FBQyxDQUFDO1FBQ00sZUFBVSxHQUFHLFFBQVEsQ0FBUyxHQUFHLEVBQUU7WUFDMUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUNqQixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsV0FBVyxJQUFJLElBQUksQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDcEQsQ0FBQyxDQUFDLENBQUM7UUFDTSxjQUFTLEdBQUcsUUFBUSxDQUFTLEdBQUcsRUFBRTtZQUN6QyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO1lBQ2pCLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxTQUFTLElBQUksSUFBSSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUNqRCxDQUFDLENBQUMsQ0FBQztRQUVILGdEQUFnRDtRQUN2QyxXQUFNLEdBQUcsUUFBUSxDQUFVLEdBQUcsRUFBRTtZQUN2QyxNQUFNLEdBQUcsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQztZQUMzQixPQUFPLEdBQUcsSUFBSSxJQUFJLElBQUksSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDLE1BQU0sR0FBRyxHQUFHLENBQUM7UUFDcEQsQ0FBQyxDQUFDLENBQUM7UUFwQ0QsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7WUFDckMsSUFBSSxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsT0FBTyxFQUFFLGVBQWUsQ0FBQyxDQUFDO1FBQ3RELENBQUM7SUFDSCxDQUFDO0lBbUNELFdBQVcsQ0FBQyxPQUFzQjtRQUNoQyw0RUFBNEU7UUFDNUUseUVBQXlFO1FBQ3pFLHlDQUF5QztRQUN6QyxJQUFJLE9BQU8sQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDO1lBQ3JCLE1BQU0sSUFBSSxHQUFHLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQyxhQUE4QyxDQUFDO1lBQzdFLE1BQU0sSUFBSSxHQUFHLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQyxZQUE2QyxDQUFDO1lBQzVFLElBQUksT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDLFdBQVcsSUFBSSxJQUFJLEVBQUUsS0FBSyxLQUFLLElBQUksRUFBRSxLQUFLLEVBQUUsQ0FBQztnQkFDaEUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLEVBQUUsS0FBSyxJQUFJLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxHQUFHLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQy9ELENBQUM7UUFDSCxDQUFDO0lBQ0gsQ0FBQztJQUVPLENBQUMsQ0FBQyxHQUFXO1FBQ25CLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBQ25DLENBQUM7SUFFRCwrRUFBK0U7SUFDL0UsUUFBUSxDQUFDLFFBQWdCLEVBQUUsS0FBYTtRQUN0QyxPQUFPLFFBQVEsQ0FBQyxPQUFPLENBQUMsS0FBSyxFQUFFLE1BQU0sQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNwRCxDQUFDO0lBRUQsTUFBTTtRQUNKLE1BQU0sS0FBSyxHQUFrQixFQUFFLENBQUM7UUFDaEMsS0FBSyxNQUFNLENBQUMsSUFBSSxJQUFJLENBQUMsTUFBTSxFQUFFO1lBQUUsS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxLQUFLLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7UUFDNUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLEdBQUcsSUFBSSxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUM7UUFDOUMsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO0lBQ2QsQ0FBQztJQUVELFNBQVMsQ0FBQyxLQUFhO1FBQ3JCLElBQUksSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDLE1BQU0sSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxJQUFJLENBQUMsQ0FBQztZQUFFLE9BQU87UUFDM0QsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxLQUFLLEtBQUssQ0FBQyxDQUFDLENBQUM7UUFDaEUsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO0lBQ2QsQ0FBQztJQUVELFdBQVcsQ0FBQyxLQUFhLEVBQUUsS0FBc0IsRUFBRSxLQUFzQjtRQUN2RSxNQUFNLElBQUksR0FBRyxLQUFLLENBQUMsSUFBSSxLQUFLLFFBQVEsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDO1FBQ2xFLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxLQUFLLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRSxHQUFHLEdBQUcsRUFBRSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ3hHLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUNkLENBQUM7SUFFTyxJQUFJO1FBQ1YsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQzdELENBQUM7K0dBckZVLGtCQUFrQjttR0FBbEIsa0JBQWtCLG9LQTlHbkI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FvRFQsdzZCQXJEUyxZQUFZLCtCQUFFLFNBQVMsb1BBQUUsT0FBTywySkFBRSxRQUFROzs0RkErR3pDLGtCQUFrQjtrQkFsSDlCLFNBQVM7K0JBQ0UsZ0JBQWdCLGNBQ2QsSUFBSSxXQUNQLENBQUMsWUFBWSxFQUFFLFNBQVMsRUFBRSxPQUFPLEVBQUUsUUFBUSxDQUFDLFlBQzNDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBb0RUO3dEQW9FUSxLQUFLO3NCQUFiLEtBQUs7Z0JBR0ksV0FBVztzQkFBcEIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge1xuICBDb21wb25lbnQsXG4gIEV2ZW50RW1pdHRlcixcbiAgSW5wdXQsXG4gIE9uQ2hhbmdlcyxcbiAgT3V0cHV0LFxuICBTaW1wbGVDaGFuZ2VzLFxuICBjb21wdXRlZCxcbiAgaW5qZWN0LFxuICBzaWduYWwsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgSW9uQnV0dG9uLCBJb25JY29uLCBJb25JbnB1dCB9IGZyb20gJ0Bpb25pYy9hbmd1bGFyL3N0YW5kYWxvbmUnO1xuaW1wb3J0IHsgYWRkSWNvbnMgfSBmcm9tICdpb25pY29ucyc7XG5pbXBvcnQgeyBhZGRPdXRsaW5lLCB0cmFzaE91dGxpbmUgfSBmcm9tICdpb25pY29ucy9pY29ucyc7XG5cbmltcG9ydCB7IEkxOG5TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvaTE4bic7XG5pbXBvcnQgeyBGaWVsZExpc3RDb2x1bW4sIEZpZWxkTGlzdEl0ZW0sIEZpZWxkTGlzdE1ldGFkYXRhIH0gZnJvbSAnLi90eXBlcyc7XG5pbXBvcnQgeyBGSUVMRF9MSVNUX0kxOE4gfSBmcm9tICcuL2ZpZWxkLWxpc3QuaTE4bic7XG5cbmFkZEljb25zKHsgYWRkT3V0bGluZSwgdHJhc2hPdXRsaW5lIH0pO1xuXG5jb25zdCBJMThOX05TID0gJ0ZpZWxkTGlzdCc7XG5cbi8qKlxuICogYHZhbC1maWVsZC1saXN0YCDigJQgZWRpdG9yIGRlIGxpc3RhcyBkZSBjYW1wb3MgcmVwZXRpYmxlcyAocHJlbWlvcywgcm9uZGFzLFxuICogaW50ZWdyYW50ZXMsIGV0Yy4pLiBDYWRhIMOtdGVtIGVzIHVuYSAqKmNhcmQqKiBjb24gc3VzIGNhbXBvcyBhcGlsYWRvcyB5IHVuIGJvdMOzblxuICogcGFyYSBxdWl0YXJsYTsgYWwgcGllIHVuIGJvdMOzbiBcIkFncmVnYXJcIi4gTW9iaWxlLWZpcnN0ICgxIGNvbHVtbmEpLCBlc2NhbGEgYVxuICogdmFyaWFzIGNvbHVtbmFzIHBvciBmaWxhIGVuIHBhbnRhbGxhcyBhbmNoYXMuXG4gKlxuICogTWFuZWphIHN1IHByb3BpbyBlc3RhZG8gaW50ZXJubyB5IGVtaXRlIGVsIGFycmF5IGNvbXBsZXRvIGVuIGNhZGEgY2FtYmlvXG4gKiAoYGl0ZW1zQ2hhbmdlYCkuIFBhdHLDs24gb2JqZWN0LWZpcnN0IChgQElucHV0KCkgcHJvcHNgKS4gQXV0by1yZWdpc3RyYSBpMThuXG4gKiAobmFtZXNwYWNlIGBGaWVsZExpc3RgKSBwYXJhIGxvcyBsYWJlbHMgcG9yIGRlZmVjdG8gKGFncmVnYXIvcXVpdGFyL3ZhY8OtbykuXG4gKlxuICogQGV4YW1wbGVcbiAqIDx2YWwtZmllbGQtbGlzdFxuICogICBbcHJvcHNdPVwie1xuICogICAgIGZpZWxkczogW1xuICogICAgICAgeyBuYW1lOiAnbm9tYnJlJywgbGFiZWw6ICdOb21icmUnIH0sXG4gKiAgICAgICB7IG5hbWU6ICdkZXNjcmlwY2lvbicsIGxhYmVsOiAnRGVzY3JpcGNpw7NuJyB9XG4gKiAgICAgXSxcbiAqICAgICBpdGVtczogcHJlbWlvcyxcbiAqICAgICBpdGVtTGFiZWw6ICdQcmVtaW8ge259JyxcbiAqICAgICBhZGRMYWJlbDogJ0FncmVnYXIgcHJlbWlvJ1xuICogICB9XCJcbiAqICAgKGl0ZW1zQ2hhbmdlKT1cInByZW1pb3MgPSAkZXZlbnRcIiAvPlxuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd2YWwtZmllbGQtbGlzdCcsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIElvbkJ1dHRvbiwgSW9uSWNvbiwgSW9uSW5wdXRdLFxuICB0ZW1wbGF0ZTogYFxuICAgIEBpZiAocm93cygpLmxlbmd0aCA9PT0gMCkge1xuICAgICAgPHAgY2xhc3M9XCJmbC1lbXB0eVwiPnt7IGVtcHR5VGV4dCgpIH19PC9wPlxuICAgIH0gQGVsc2Uge1xuICAgICAgPGRpdiBjbGFzcz1cImZsLXJvd3NcIj5cbiAgICAgICAgQGZvciAocm93IG9mIHJvd3MoKTsgdHJhY2sgJGluZGV4KSB7XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImZsLWNhcmRcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmbC1jYXJkX19oZWFkXCI+XG4gICAgICAgICAgICAgIEBpZiAoaXRlbUxhYmVsKCk7IGFzIGxhYmVsKSB7XG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJmbC1jYXJkX19sYWJlbFwiPnt7IHJvd0xhYmVsKGxhYmVsLCAkaW5kZXgpIH19PC9zcGFuPlxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIDxpb24tYnV0dG9uXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJmbC1yZW1vdmVcIlxuICAgICAgICAgICAgICAgIGZpbGw9XCJjbGVhclwiXG4gICAgICAgICAgICAgICAgY29sb3I9XCJtZWRpdW1cIlxuICAgICAgICAgICAgICAgIHNpemU9XCJzbWFsbFwiXG4gICAgICAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJyZW1vdmVUZXh0KClcIlxuICAgICAgICAgICAgICAgIChjbGljayk9XCJyZW1vdmVSb3coJGluZGV4KVwiXG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8aW9uLWljb24gc2xvdD1cImljb24tb25seVwiIG5hbWU9XCJ0cmFzaC1vdXRsaW5lXCIgLz5cbiAgICAgICAgICAgICAgPC9pb24tYnV0dG9uPlxuICAgICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmbC1maWVsZHNcIj5cbiAgICAgICAgICAgICAgQGZvciAoZmllbGQgb2YgZmllbGRzKCk7IHRyYWNrIGZpZWxkLm5hbWUpIHtcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmwtZmllbGRcIj5cbiAgICAgICAgICAgICAgICAgIDxpb24taW5wdXRcbiAgICAgICAgICAgICAgICAgICAgW2xhYmVsXT1cImZpZWxkLmxhYmVsXCJcbiAgICAgICAgICAgICAgICAgICAgbGFiZWxQbGFjZW1lbnQ9XCJzdGFja2VkXCJcbiAgICAgICAgICAgICAgICAgICAgZmlsbD1cIm91dGxpbmVcIlxuICAgICAgICAgICAgICAgICAgICBbdHlwZV09XCJmaWVsZC50eXBlID09PSAnbnVtYmVyJyA/ICdudW1iZXInIDogJ3RleHQnXCJcbiAgICAgICAgICAgICAgICAgICAgW2lucHV0bW9kZV09XCJmaWVsZC5pbnB1dG1vZGUgPz8gKGZpZWxkLnR5cGUgPT09ICdudW1iZXInID8gJ251bWVyaWMnIDogbnVsbClcIlxuICAgICAgICAgICAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwiZmllbGQucGxhY2Vob2xkZXIgPz8gJydcIlxuICAgICAgICAgICAgICAgICAgICBbbWF4bGVuZ3RoXT1cImZpZWxkLm1heGxlbmd0aCA/PyBudWxsXCJcbiAgICAgICAgICAgICAgICAgICAgW21pbl09XCJmaWVsZC5taW4gPz8gbnVsbFwiXG4gICAgICAgICAgICAgICAgICAgIFt2YWx1ZV09XCJyb3dbZmllbGQubmFtZV1cIlxuICAgICAgICAgICAgICAgICAgICAoaW9uSW5wdXQpPVwidXBkYXRlRmllbGQoJGluZGV4LCBmaWVsZCwgJGV2ZW50LmRldGFpbC52YWx1ZSA/PyAnJylcIlxuICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIH1cbiAgICAgIDwvZGl2PlxuICAgIH1cblxuICAgIEBpZiAoY2FuQWRkKCkpIHtcbiAgICAgIDxpb24tYnV0dG9uIGNsYXNzPVwiZmwtYWRkXCIgZmlsbD1cIm91dGxpbmVcIiBjb2xvcj1cImRhcmtcIiBzaXplPVwiZGVmYXVsdFwiIHNoYXBlPVwicm91bmRcIiAoY2xpY2spPVwiYWRkUm93KClcIj5cbiAgICAgICAgPGlvbi1pY29uIFtuYW1lXT1cImFkZEljb24oKVwiIHNsb3Q9XCJzdGFydFwiIC8+XG4gICAgICAgIHt7IGFkZFRleHQoKSB9fVxuICAgICAgPC9pb24tYnV0dG9uPlxuICAgIH1cbiAgYCxcbiAgc3R5bGVzOiBbXG4gICAgYFxuICAgICAgOmhvc3Qge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIH1cbiAgICAgIC5mbC1lbXB0eSB7XG4gICAgICAgIG1hcmdpbjogMCAwIDEycHg7XG4gICAgICAgIGZvbnQtc2l6ZTogMC44NzVyZW07XG4gICAgICAgIGNvbG9yOiB2YXIoLS1pb24tY29sb3ItbWVkaXVtKTtcbiAgICAgIH1cbiAgICAgIC5mbC1yb3dzIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgZ2FwOiAxMnB4O1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAxMnB4O1xuICAgICAgfVxuICAgICAgLmZsLWNhcmQge1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1pb24tYm9yZGVyLWNvbG9yLCB2YXIoLS1pb24tY29sb3Itc3RlcC0xNTAsICNlMGUwZTApKTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMTRweDtcbiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0taW9uLWNhcmQtYmFja2dyb3VuZCwgdmFyKC0taW9uLWNvbG9yLXN0ZXAtNTAsICNmYmZiZmIpKTtcbiAgICAgICAgcGFkZGluZzogMTJweCAxNHB4IDE0cHg7XG4gICAgICB9XG4gICAgICAuZmwtY2FyZF9faGVhZCB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgbWluLWhlaWdodDogMjhweDtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogNHB4O1xuICAgICAgfVxuICAgICAgLmZsLWNhcmRfX2xhYmVsIHtcbiAgICAgICAgZm9udC1zaXplOiAwLjgxMjVyZW07XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgICAgIGxldHRlci1zcGFjaW5nOiAwLjAyZW07XG4gICAgICAgIGNvbG9yOiB2YXIoLS1pb24tY29sb3ItbWVkaXVtLXNoYWRlLCAjNmI2ZTc2KTtcbiAgICAgIH1cbiAgICAgIC5mbC1yZW1vdmUge1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIC0tcGFkZGluZy1zdGFydDogNnB4O1xuICAgICAgICAtLXBhZGRpbmctZW5kOiA2cHg7XG4gICAgICAgIGhlaWdodDogMzJweDtcbiAgICAgIH1cbiAgICAgIC8qIENhbXBvczogMSBjb2x1bW5hIGVuIG3Ds3ZpbCwgdmFyaWFzIGVuIGFuY2hvIChhdXRvLWZpbGwsIG1pbiAyMDBweCkuICovXG4gICAgICAuZmwtZmllbGRzIHtcbiAgICAgICAgZGlzcGxheTogZ3JpZDtcbiAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoYXV0by1maXQsIG1pbm1heChtaW4oMTAwJSwgMjAwcHgpLCAxZnIpKTtcbiAgICAgICAgZ2FwOiAxMHB4IDEycHg7XG4gICAgICB9XG4gICAgICAuZmwtZmllbGQgaW9uLWlucHV0IHtcbiAgICAgICAgLS1ib3JkZXItcmFkaXVzOiAxMHB4O1xuICAgICAgfVxuICAgICAgLmZsLWFkZCB7XG4gICAgICAgIC0tYm9yZGVyLXJhZGl1czogOTk5cHg7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgICB9XG4gICAgYCxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgRmllbGRMaXN0Q29tcG9uZW50IGltcGxlbWVudHMgT25DaGFuZ2VzIHtcbiAgcHJpdmF0ZSBpMThuID0gaW5qZWN0KEkxOG5TZXJ2aWNlKTtcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICBpZiAoIXRoaXMuaTE4bi5oYXNOYW1lc3BhY2UoSTE4Tl9OUykpIHtcbiAgICAgIHRoaXMuaTE4bi5yZWdpc3RlckNvbnRlbnQoSTE4Tl9OUywgRklFTERfTElTVF9JMThOKTtcbiAgICB9XG4gIH1cblxuICAvKiogUHJvcHMgb2JqZWN0LWZpcnN0LiAqL1xuICBASW5wdXQoKSBwcm9wczogRmllbGRMaXN0TWV0YWRhdGEgPSB7IGZpZWxkczogW10gfTtcblxuICAvKiogRW1pdGUgZWwgYXJyYXkgY29tcGxldG8gZGUgw610ZW1zIGVuIGNhZGEgYWRkL3JlbW92ZS9lZGljacOzbi4gKi9cbiAgQE91dHB1dCgpIGl0ZW1zQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxGaWVsZExpc3RJdGVtW10+KCk7XG5cbiAgLyoqIEVzdGFkbyBpbnRlcm5vIGRlIGxhcyBmaWxhcyAoc2Ugc2llbWJyYSBkZXNkZSBwcm9wcy5pdGVtcykuICovXG4gIHByaXZhdGUgcmVhZG9ubHkgcm93c1NpZyA9IHNpZ25hbDxGaWVsZExpc3RJdGVtW10+KFtdKTtcbiAgcmVhZG9ubHkgcm93cyA9IHRoaXMucm93c1NpZy5hc1JlYWRvbmx5KCk7XG5cbiAgcmVhZG9ubHkgZmllbGRzID0gY29tcHV0ZWQ8RmllbGRMaXN0Q29sdW1uW10+KCgpID0+IHRoaXMucHJvcHMuZmllbGRzID8/IFtdKTtcbiAgcmVhZG9ubHkgaXRlbUxhYmVsID0gY29tcHV0ZWQ8c3RyaW5nPigoKSA9PiB0aGlzLnByb3BzLml0ZW1MYWJlbCA/PyAnJyk7XG4gIHJlYWRvbmx5IGFkZEljb24gPSBjb21wdXRlZDxzdHJpbmc+KCgpID0+IHRoaXMucHJvcHMuYWRkSWNvbiA/PyAnYWRkLW91dGxpbmUnKTtcblxuICByZWFkb25seSBhZGRUZXh0ID0gY29tcHV0ZWQ8c3RyaW5nPigoKSA9PiB7XG4gICAgdGhpcy5pMThuLmxhbmcoKTtcbiAgICByZXR1cm4gdGhpcy5wcm9wcy5hZGRMYWJlbCA/PyB0aGlzLnQoJ2FkZCcpO1xuICB9KTtcbiAgcmVhZG9ubHkgcmVtb3ZlVGV4dCA9IGNvbXB1dGVkPHN0cmluZz4oKCkgPT4ge1xuICAgIHRoaXMuaTE4bi5sYW5nKCk7XG4gICAgcmV0dXJuIHRoaXMucHJvcHMucmVtb3ZlTGFiZWwgPz8gdGhpcy50KCdyZW1vdmUnKTtcbiAgfSk7XG4gIHJlYWRvbmx5IGVtcHR5VGV4dCA9IGNvbXB1dGVkPHN0cmluZz4oKCkgPT4ge1xuICAgIHRoaXMuaTE4bi5sYW5nKCk7XG4gICAgcmV0dXJuIHRoaXMucHJvcHMuZW1wdHlUZXh0ID8/IHRoaXMudCgnZW1wdHknKTtcbiAgfSk7XG5cbiAgLyoqIFB1ZWRlIGFncmVnYXIgc2kgbm8gc2UgYWxjYW56w7MgZWwgbcOheGltby4gKi9cbiAgcmVhZG9ubHkgY2FuQWRkID0gY29tcHV0ZWQ8Ym9vbGVhbj4oKCkgPT4ge1xuICAgIGNvbnN0IG1heCA9IHRoaXMucHJvcHMubWF4O1xuICAgIHJldHVybiBtYXggPT0gbnVsbCB8fCB0aGlzLnJvd3NTaWcoKS5sZW5ndGggPCBtYXg7XG4gIH0pO1xuXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICAvLyBSZS1zaWVtYnJhIHNvbG8gc2kgY2FtYmnDsyBsYSByZWZlcmVuY2lhIGRlIGl0ZW1zIGVudHJhbnRlIChldml0YSBwaXNhciBsb1xuICAgIC8vIGVkaXRhZG8gcG9yIGVsIHVzZXIgZW4gY2FkYSBDRCkuIEVsIGNvbnN1bWVyIGNvbnRyb2xhIGN1w6FuZG8gcmVzZW1icmFyXG4gICAgLy8gcGFzYW5kbyB1bmEgbnVldmEgcmVmZXJlbmNpYSBkZSBhcnJheS5cbiAgICBpZiAoY2hhbmdlc1sncHJvcHMnXSkge1xuICAgICAgY29uc3QgcHJldiA9IGNoYW5nZXNbJ3Byb3BzJ10ucHJldmlvdXNWYWx1ZSBhcyBGaWVsZExpc3RNZXRhZGF0YSB8IHVuZGVmaW5lZDtcbiAgICAgIGNvbnN0IGN1cnIgPSBjaGFuZ2VzWydwcm9wcyddLmN1cnJlbnRWYWx1ZSBhcyBGaWVsZExpc3RNZXRhZGF0YSB8IHVuZGVmaW5lZDtcbiAgICAgIGlmIChjaGFuZ2VzWydwcm9wcyddLmZpcnN0Q2hhbmdlIHx8IHByZXY/Lml0ZW1zICE9PSBjdXJyPy5pdGVtcykge1xuICAgICAgICB0aGlzLnJvd3NTaWcuc2V0KChjdXJyPy5pdGVtcyA/PyBbXSkubWFwKGl0ID0+ICh7IC4uLml0IH0pKSk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSB0KGtleTogc3RyaW5nKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5pMThuLnQoa2V5LCBJMThOX05TKTtcbiAgfVxuXG4gIC8qKiBSZWVtcGxhemEgYHtufWAgcG9yIGVsIG7Dum1lcm8gZGUgZmlsYSAoMS1iYXNlZCkgZW4gZWwgcsOzdHVsbyBkZSBsYSBjYXJkLiAqL1xuICByb3dMYWJlbCh0ZW1wbGF0ZTogc3RyaW5nLCBpbmRleDogbnVtYmVyKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGVtcGxhdGUucmVwbGFjZSgne259JywgU3RyaW5nKGluZGV4ICsgMSkpO1xuICB9XG5cbiAgYWRkUm93KCk6IHZvaWQge1xuICAgIGNvbnN0IGJsYW5rOiBGaWVsZExpc3RJdGVtID0ge307XG4gICAgZm9yIChjb25zdCBmIG9mIHRoaXMuZmllbGRzKCkpIGJsYW5rW2YubmFtZV0gPSBmLnR5cGUgPT09ICdudW1iZXInID8gMCA6ICcnO1xuICAgIHRoaXMucm93c1NpZy51cGRhdGUobGlzdCA9PiBbLi4ubGlzdCwgYmxhbmtdKTtcbiAgICB0aGlzLmVtaXQoKTtcbiAgfVxuXG4gIHJlbW92ZVJvdyhpbmRleDogbnVtYmVyKTogdm9pZCB7XG4gICAgaWYgKHRoaXMucm93c1NpZygpLmxlbmd0aCA8PSAodGhpcy5wcm9wcy5taW4gPz8gMCkpIHJldHVybjtcbiAgICB0aGlzLnJvd3NTaWcudXBkYXRlKGxpc3QgPT4gbGlzdC5maWx0ZXIoKF8sIGkpID0+IGkgIT09IGluZGV4KSk7XG4gICAgdGhpcy5lbWl0KCk7XG4gIH1cblxuICB1cGRhdGVGaWVsZChpbmRleDogbnVtYmVyLCBmaWVsZDogRmllbGRMaXN0Q29sdW1uLCB2YWx1ZTogc3RyaW5nIHwgbnVtYmVyKTogdm9pZCB7XG4gICAgY29uc3QgbmV4dCA9IGZpZWxkLnR5cGUgPT09ICdudW1iZXInID8gTnVtYmVyKHZhbHVlKSB8fCAwIDogdmFsdWU7XG4gICAgdGhpcy5yb3dzU2lnLnVwZGF0ZShsaXN0ID0+IGxpc3QubWFwKChyb3csIGkpID0+IChpID09PSBpbmRleCA/IHsgLi4ucm93LCBbZmllbGQubmFtZV06IG5leHQgfSA6IHJvdykpKTtcbiAgICB0aGlzLmVtaXQoKTtcbiAgfVxuXG4gIHByaXZhdGUgZW1pdCgpOiB2b2lkIHtcbiAgICB0aGlzLml0ZW1zQ2hhbmdlLmVtaXQodGhpcy5yb3dzU2lnKCkubWFwKHIgPT4gKHsgLi4uciB9KSkpO1xuICB9XG59XG4iXX0=
@@ -2,5 +2,5 @@
2
2
  * Current version of valtech-components.
3
3
  * This is automatically updated during the publish process.
4
4
  */
5
- export const VERSION = '4.0.16';
6
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVyc2lvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9saWIvdmVyc2lvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7O0dBR0c7QUFDSCxNQUFNLENBQUMsTUFBTSxPQUFPLEdBQUcsUUFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBDdXJyZW50IHZlcnNpb24gb2YgdmFsdGVjaC1jb21wb25lbnRzLlxuICogVGhpcyBpcyBhdXRvbWF0aWNhbGx5IHVwZGF0ZWQgZHVyaW5nIHRoZSBwdWJsaXNoIHByb2Nlc3MuXG4gKi9cbmV4cG9ydCBjb25zdCBWRVJTSU9OID0gJzQuMC4xNic7XG4iXX0=
5
+ export const VERSION = '4.0.19';
6
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVyc2lvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9saWIvdmVyc2lvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7O0dBR0c7QUFDSCxNQUFNLENBQUMsTUFBTSxPQUFPLEdBQUcsUUFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBDdXJyZW50IHZlcnNpb24gb2YgdmFsdGVjaC1jb21wb25lbnRzLlxuICogVGhpcyBpcyBhdXRvbWF0aWNhbGx5IHVwZGF0ZWQgZHVyaW5nIHRoZSBwdWJsaXNoIHByb2Nlc3MuXG4gKi9cbmV4cG9ydCBjb25zdCBWRVJTSU9OID0gJzQuMC4xOSc7XG4iXX0=
@@ -56,7 +56,7 @@ import { BrowserMultiFormatReader } from '@zxing/browser';
56
56
  * Current version of valtech-components.
57
57
  * This is automatically updated during the publish process.
58
58
  */
59
- const VERSION = '4.0.16';
59
+ const VERSION = '4.0.19';
60
60
 
61
61
  // Control de estado de refresco (singleton a nivel de módulo)
62
62
  let isRefreshing = false;
@@ -56084,7 +56084,7 @@ class FieldListComponent {
56084
56084
  const prev = changes['props'].previousValue;
56085
56085
  const curr = changes['props'].currentValue;
56086
56086
  if (changes['props'].firstChange || prev?.items !== curr?.items) {
56087
- this.rowsSig.set((curr?.items ?? []).map((it) => ({ ...it })));
56087
+ this.rowsSig.set((curr?.items ?? []).map(it => ({ ...it })));
56088
56088
  }
56089
56089
  }
56090
56090
  }
@@ -56099,22 +56099,22 @@ class FieldListComponent {
56099
56099
  const blank = {};
56100
56100
  for (const f of this.fields())
56101
56101
  blank[f.name] = f.type === 'number' ? 0 : '';
56102
- this.rowsSig.update((list) => [...list, blank]);
56102
+ this.rowsSig.update(list => [...list, blank]);
56103
56103
  this.emit();
56104
56104
  }
56105
56105
  removeRow(index) {
56106
56106
  if (this.rowsSig().length <= (this.props.min ?? 0))
56107
56107
  return;
56108
- this.rowsSig.update((list) => list.filter((_, i) => i !== index));
56108
+ this.rowsSig.update(list => list.filter((_, i) => i !== index));
56109
56109
  this.emit();
56110
56110
  }
56111
56111
  updateField(index, field, value) {
56112
56112
  const next = field.type === 'number' ? Number(value) || 0 : value;
56113
- this.rowsSig.update((list) => list.map((row, i) => (i === index ? { ...row, [field.name]: next } : row)));
56113
+ this.rowsSig.update(list => list.map((row, i) => (i === index ? { ...row, [field.name]: next } : row)));
56114
56114
  this.emit();
56115
56115
  }
56116
56116
  emit() {
56117
- this.itemsChange.emit(this.rowsSig().map((r) => ({ ...r })));
56117
+ this.itemsChange.emit(this.rowsSig().map(r => ({ ...r })));
56118
56118
  }
56119
56119
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: FieldListComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
56120
56120
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: FieldListComponent, isStandalone: true, selector: "val-field-list", inputs: { props: "props" }, outputs: { itemsChange: "itemsChange" }, usesOnChanges: true, ngImport: i0, template: `
@@ -56152,8 +56152,8 @@ class FieldListComponent {
56152
56152
  [placeholder]="field.placeholder ?? ''"
56153
56153
  [maxlength]="field.maxlength ?? null"
56154
56154
  [min]="field.min ?? null"
56155
- [ngModel]="row[field.name]"
56156
- (ngModelChange)="updateField($index, field, $event)"
56155
+ [value]="row[field.name]"
56156
+ (ionInput)="updateField($index, field, $event.detail.value ?? '')"
56157
56157
  />
56158
56158
  </div>
56159
56159
  }
@@ -56164,23 +56164,16 @@ class FieldListComponent {
56164
56164
  }
56165
56165
 
56166
56166
  @if (canAdd()) {
56167
- <ion-button
56168
- class="fl-add"
56169
- fill="outline"
56170
- color="dark"
56171
- size="default"
56172
- shape="round"
56173
- (click)="addRow()"
56174
- >
56167
+ <ion-button class="fl-add" fill="outline" color="dark" size="default" shape="round" (click)="addRow()">
56175
56168
  <ion-icon [name]="addIcon()" slot="start" />
56176
56169
  {{ addText() }}
56177
56170
  </ion-button>
56178
56171
  }
56179
- `, isInline: true, styles: [":host{display:block}.fl-empty{margin:0 0 12px;font-size:.875rem;color:var(--ion-color-medium)}.fl-rows{display:flex;flex-direction:column;gap:12px;margin-bottom:12px}.fl-card{border:1px solid var(--ion-color-step-150, #e0e0e0);border-radius:14px;background:var(--ion-color-step-50, #fbfbfb);padding:12px 14px 14px}.fl-card__head{display:flex;align-items:center;justify-content:space-between;min-height:28px;margin-bottom:4px}.fl-card__label{font-size:.8125rem;font-weight:700;letter-spacing:.02em;color:var(--ion-color-medium-shade, #6b6e76)}.fl-remove{margin:0;--padding-start: 6px;--padding-end: 6px;height:32px}.fl-fields{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,200px),1fr));gap:10px 12px}.fl-field ion-input{--border-radius: 10px}.fl-add{--border-radius: 999px;font-weight:600}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1$7.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$7.MaxLengthValidator, selector: "[maxlength][formControlName],[maxlength][formControl],[maxlength][ngModel]", inputs: ["maxlength"] }, { kind: "directive", type: i1$7.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: IonButton, selector: "ion-button", inputs: ["buttonType", "color", "disabled", "download", "expand", "fill", "form", "href", "mode", "rel", "routerAnimation", "routerDirection", "shape", "size", "strong", "target", "type"] }, { kind: "component", type: IonIcon, selector: "ion-icon", inputs: ["color", "flipRtl", "icon", "ios", "lazy", "md", "mode", "name", "sanitize", "size", "src"] }, { kind: "component", type: IonInput, selector: "ion-input", inputs: ["accept", "autocapitalize", "autocomplete", "autocorrect", "autofocus", "clearInput", "clearOnEdit", "color", "counter", "counterFormatter", "debounce", "disabled", "enterkeyhint", "errorText", "fill", "helperText", "inputmode", "label", "labelPlacement", "max", "maxlength", "min", "minlength", "mode", "multiple", "name", "pattern", "placeholder", "readonly", "required", "shape", "size", "spellcheck", "step", "type", "value"] }] }); }
56172
+ `, isInline: true, styles: [":host{display:block}.fl-empty{margin:0 0 12px;font-size:.875rem;color:var(--ion-color-medium)}.fl-rows{display:flex;flex-direction:column;gap:12px;margin-bottom:12px}.fl-card{border:1px solid var(--ion-border-color, var(--ion-color-step-150, #e0e0e0));border-radius:14px;background:var(--ion-card-background, var(--ion-color-step-50, #fbfbfb));padding:12px 14px 14px}.fl-card__head{display:flex;align-items:center;justify-content:space-between;min-height:28px;margin-bottom:4px}.fl-card__label{font-size:.8125rem;font-weight:700;letter-spacing:.02em;color:var(--ion-color-medium-shade, #6b6e76)}.fl-remove{margin:0;--padding-start: 6px;--padding-end: 6px;height:32px}.fl-fields{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,200px),1fr));gap:10px 12px}.fl-field ion-input{--border-radius: 10px}.fl-add{--border-radius: 999px;font-weight:600}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "component", type: IonButton, selector: "ion-button", inputs: ["buttonType", "color", "disabled", "download", "expand", "fill", "form", "href", "mode", "rel", "routerAnimation", "routerDirection", "shape", "size", "strong", "target", "type"] }, { kind: "component", type: IonIcon, selector: "ion-icon", inputs: ["color", "flipRtl", "icon", "ios", "lazy", "md", "mode", "name", "sanitize", "size", "src"] }, { kind: "component", type: IonInput, selector: "ion-input", inputs: ["accept", "autocapitalize", "autocomplete", "autocorrect", "autofocus", "clearInput", "clearOnEdit", "color", "counter", "counterFormatter", "debounce", "disabled", "enterkeyhint", "errorText", "fill", "helperText", "inputmode", "label", "labelPlacement", "max", "maxlength", "min", "minlength", "mode", "multiple", "name", "pattern", "placeholder", "readonly", "required", "shape", "size", "spellcheck", "step", "type", "value"] }] }); }
56180
56173
  }
56181
56174
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: FieldListComponent, decorators: [{
56182
56175
  type: Component,
56183
- args: [{ selector: 'val-field-list', standalone: true, imports: [CommonModule, FormsModule, IonButton, IonIcon, IonInput], template: `
56176
+ args: [{ selector: 'val-field-list', standalone: true, imports: [CommonModule, IonButton, IonIcon, IonInput], template: `
56184
56177
  @if (rows().length === 0) {
56185
56178
  <p class="fl-empty">{{ emptyText() }}</p>
56186
56179
  } @else {
@@ -56215,8 +56208,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
56215
56208
  [placeholder]="field.placeholder ?? ''"
56216
56209
  [maxlength]="field.maxlength ?? null"
56217
56210
  [min]="field.min ?? null"
56218
- [ngModel]="row[field.name]"
56219
- (ngModelChange)="updateField($index, field, $event)"
56211
+ [value]="row[field.name]"
56212
+ (ionInput)="updateField($index, field, $event.detail.value ?? '')"
56220
56213
  />
56221
56214
  </div>
56222
56215
  }
@@ -56227,19 +56220,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
56227
56220
  }
56228
56221
 
56229
56222
  @if (canAdd()) {
56230
- <ion-button
56231
- class="fl-add"
56232
- fill="outline"
56233
- color="dark"
56234
- size="default"
56235
- shape="round"
56236
- (click)="addRow()"
56237
- >
56223
+ <ion-button class="fl-add" fill="outline" color="dark" size="default" shape="round" (click)="addRow()">
56238
56224
  <ion-icon [name]="addIcon()" slot="start" />
56239
56225
  {{ addText() }}
56240
56226
  </ion-button>
56241
56227
  }
56242
- `, styles: [":host{display:block}.fl-empty{margin:0 0 12px;font-size:.875rem;color:var(--ion-color-medium)}.fl-rows{display:flex;flex-direction:column;gap:12px;margin-bottom:12px}.fl-card{border:1px solid var(--ion-color-step-150, #e0e0e0);border-radius:14px;background:var(--ion-color-step-50, #fbfbfb);padding:12px 14px 14px}.fl-card__head{display:flex;align-items:center;justify-content:space-between;min-height:28px;margin-bottom:4px}.fl-card__label{font-size:.8125rem;font-weight:700;letter-spacing:.02em;color:var(--ion-color-medium-shade, #6b6e76)}.fl-remove{margin:0;--padding-start: 6px;--padding-end: 6px;height:32px}.fl-fields{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,200px),1fr));gap:10px 12px}.fl-field ion-input{--border-radius: 10px}.fl-add{--border-radius: 999px;font-weight:600}\n"] }]
56228
+ `, styles: [":host{display:block}.fl-empty{margin:0 0 12px;font-size:.875rem;color:var(--ion-color-medium)}.fl-rows{display:flex;flex-direction:column;gap:12px;margin-bottom:12px}.fl-card{border:1px solid var(--ion-border-color, var(--ion-color-step-150, #e0e0e0));border-radius:14px;background:var(--ion-card-background, var(--ion-color-step-50, #fbfbfb));padding:12px 14px 14px}.fl-card__head{display:flex;align-items:center;justify-content:space-between;min-height:28px;margin-bottom:4px}.fl-card__label{font-size:.8125rem;font-weight:700;letter-spacing:.02em;color:var(--ion-color-medium-shade, #6b6e76)}.fl-remove{margin:0;--padding-start: 6px;--padding-end: 6px;height:32px}.fl-fields{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,200px),1fr));gap:10px 12px}.fl-field ion-input{--border-radius: 10px}.fl-add{--border-radius: 999px;font-weight:600}\n"] }]
56243
56229
  }], ctorParameters: () => [], propDecorators: { props: [{
56244
56230
  type: Input
56245
56231
  }], itemsChange: [{