valtech-components 2.0.1032 → 2.0.1034

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.
@@ -181,9 +181,12 @@ export class DateInputComponent {
181
181
  {{ displayValue || placeholderText }}
182
182
  </ion-button>
183
183
  </div>
184
+ <!-- Sin keepContentsMounted: el ion-datetime debe montarse cuando el modal
185
+ está VISIBLE. Montado oculto (display:none) no puede medir y el grid de
186
+ días renderiza vacío al reabrir con un valor pre-cargado (edición). Ya no
187
+ usamos ion-datetime-button (trigger propio arriba), así que no se necesita. -->
184
188
  <ion-modal
185
189
  [trigger]="triggerId"
186
- [keepContentsMounted]="true"
187
190
  class="val-date-modal"
188
191
  >
189
192
  <ng-template>
@@ -202,7 +205,7 @@ export class DateInputComponent {
202
205
  </ion-datetime>
203
206
  </ng-template>
204
207
  </ion-modal>
205
- `, isInline: true, styles: ["@charset \"UTF-8\";:root{--val-container-sm: 540px;--val-container-md: 720px;--val-container-lg: 880px;--val-container-xl: 1100px;--val-container-padding: 16px;--ion-color-primary: #7026df;--ion-color-primary-rgb: 112, 38, 223;--ion-color-primary-contrast: #ffffff;--ion-color-primary-contrast-rgb: 255, 255, 255;--ion-color-primary-shade: #6321c4;--ion-color-primary-tint: #7e3ce2;--ion-color-secondary: #e2ccff;--ion-color-secondary-rgb: 226, 204, 255;--ion-color-secondary-contrast: #000000;--ion-color-secondary-contrast-rgb: 0, 0, 0;--ion-color-secondary-shade: #c7b4e0;--ion-color-secondary-tint: #e5d1ff;--ion-color-texti: #354c69;--ion-color-texti-rgb: 53, 76, 105;--ion-color-texti-contrast: #ffffff;--ion-color-texti-contrast-rgb: 255, 255, 255;--ion-color-texti-shade: #2f435c;--ion-color-texti-tint: #495e78;--ion-color-darki: #090f1b;--ion-color-darki-rgb: 9, 15, 27;--ion-color-darki-contrast: #ffffff;--ion-color-darki-contrast-rgb: 255, 255, 255;--ion-color-darki-shade: #080d18;--ion-color-darki-tint: #222732;--ion-color-medium: #9e9e9e;--ion-color-medium-rgb: 158, 158, 158;--ion-color-medium-contrast: #000000;--ion-color-medium-contrast-rgb: 0, 0, 0;--ion-color-medium-shade: #8b8b8b;--ion-color-medium-tint: #a8a8a8;--swiper-pagination-color: var(--ion-color-primary);--swiper-navigation-color: var(--ion-color-primary);--swiper-pagination-bullet-inactive-color: var(--ion-color-medium)}body.dark,html.ion-palette-dark,body[data-theme=dark]{--ion-color-texti: #8fc1ff;--ion-color-texti-rgb: 143, 193, 255;--ion-color-texti-contrast: #000000;--ion-color-texti-contrast-rgb: 0, 0, 0;--ion-color-texti-shade: #7eaae0;--ion-color-texti-tint: #9ac7ff;--ion-color-darki: #ffffff;--ion-color-darki-rgb: 255, 255, 255;--ion-color-darki-contrast: #000000;--ion-color-darki-contrast-rgb: 0, 0, 0;--ion-color-darki-shade: #e0e0e0;--ion-color-darki-tint: #ffffff;--ion-color-primary: #8f49f8;--ion-color-primary-rgb: 143, 73, 248;--ion-color-primary-contrast: #ffffff;--ion-color-primary-contrast-rgb: 255, 255, 255;--ion-color-primary-shade: #7e40da;--ion-color-primary-tint: #9a5bf9}.ion-color-texti{--ion-color-base: var(--ion-color-texti);--ion-color-base-rgb: var(--ion-color-texti-rgb);--ion-color-contrast: var(--ion-color-texti-contrast);--ion-color-contrast-rgb: var(--ion-color-texti-contrast-rgb);--ion-color-shade: var(--ion-color-texti-shade);--ion-color-tint: var(--ion-color-texti-tint)}.ion-color-darki{--ion-color-base: var(--ion-color-darki);--ion-color-base-rgb: var(--ion-color-darki-rgb);--ion-color-contrast: var(--ion-color-darki-contrast);--ion-color-contrast-rgb: var(--ion-color-darki-contrast-rgb);--ion-color-shade: var(--ion-color-darki-shade);--ion-color-tint: var(--ion-color-darki-tint)}.section{margin-top:1rem}.input{margin:var(--val-form-field-gap, .5rem) 0}@media (min-width: 768px){.input{margin:var(--val-form-field-gap, .75rem) 0}}.submit-actions--sticky{position:sticky;bottom:0;z-index:1;background:var(--ion-background-color);border-top:1px solid var(--ion-color-step-150, rgba(0, 0, 0, .08));padding:.75rem 0 calc(.75rem + env(safe-area-inset-bottom))}.field-description{display:block;font-size:.75rem;color:var(--ion-color-dark);margin-bottom:.25rem;line-height:1.4}.button-container{display:flex;flex-direction:column;align-items:flex-start}.action{margin-top:.25rem}ion-modal.val-date-modal{--width: fit-content;--min-width: pxToRem(320);--height: fit-content;--border-radius: pxToRem(16);--box-shadow: 0 pxToRem(12) pxToRem(48) rgba(0, 0, 0, .25)}ion-modal.val-date-modal ion-datetime{margin:0 auto}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "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: IonDatetime, selector: "ion-datetime", inputs: ["cancelText", "clearText", "color", "dayValues", "disabled", "doneText", "firstDayOfWeek", "formatOptions", "highlightedDates", "hourCycle", "hourValues", "isDateEnabled", "locale", "max", "min", "minuteValues", "mode", "monthValues", "multiple", "name", "preferWheel", "presentation", "readonly", "showAdjacentDays", "showClearButton", "showDefaultButtons", "showDefaultTimeLabel", "showDefaultTitle", "size", "titleSelectedDatesFormatter", "value", "yearValues"] }, { kind: "component", type: IonModal, selector: "ion-modal" }] }); }
208
+ `, isInline: true, styles: ["@charset \"UTF-8\";:root{--val-container-sm: 540px;--val-container-md: 720px;--val-container-lg: 880px;--val-container-xl: 1100px;--val-container-padding: 16px;--ion-color-primary: #7026df;--ion-color-primary-rgb: 112, 38, 223;--ion-color-primary-contrast: #ffffff;--ion-color-primary-contrast-rgb: 255, 255, 255;--ion-color-primary-shade: #6321c4;--ion-color-primary-tint: #7e3ce2;--ion-color-secondary: #e2ccff;--ion-color-secondary-rgb: 226, 204, 255;--ion-color-secondary-contrast: #000000;--ion-color-secondary-contrast-rgb: 0, 0, 0;--ion-color-secondary-shade: #c7b4e0;--ion-color-secondary-tint: #e5d1ff;--ion-color-texti: #354c69;--ion-color-texti-rgb: 53, 76, 105;--ion-color-texti-contrast: #ffffff;--ion-color-texti-contrast-rgb: 255, 255, 255;--ion-color-texti-shade: #2f435c;--ion-color-texti-tint: #495e78;--ion-color-darki: #090f1b;--ion-color-darki-rgb: 9, 15, 27;--ion-color-darki-contrast: #ffffff;--ion-color-darki-contrast-rgb: 255, 255, 255;--ion-color-darki-shade: #080d18;--ion-color-darki-tint: #222732;--ion-color-medium: #9e9e9e;--ion-color-medium-rgb: 158, 158, 158;--ion-color-medium-contrast: #000000;--ion-color-medium-contrast-rgb: 0, 0, 0;--ion-color-medium-shade: #8b8b8b;--ion-color-medium-tint: #a8a8a8;--swiper-pagination-color: var(--ion-color-primary);--swiper-navigation-color: var(--ion-color-primary);--swiper-pagination-bullet-inactive-color: var(--ion-color-medium)}body.dark,html.ion-palette-dark,body[data-theme=dark]{--ion-color-texti: #8fc1ff;--ion-color-texti-rgb: 143, 193, 255;--ion-color-texti-contrast: #000000;--ion-color-texti-contrast-rgb: 0, 0, 0;--ion-color-texti-shade: #7eaae0;--ion-color-texti-tint: #9ac7ff;--ion-color-darki: #ffffff;--ion-color-darki-rgb: 255, 255, 255;--ion-color-darki-contrast: #000000;--ion-color-darki-contrast-rgb: 0, 0, 0;--ion-color-darki-shade: #e0e0e0;--ion-color-darki-tint: #ffffff;--ion-color-primary: #8f49f8;--ion-color-primary-rgb: 143, 73, 248;--ion-color-primary-contrast: #ffffff;--ion-color-primary-contrast-rgb: 255, 255, 255;--ion-color-primary-shade: #7e40da;--ion-color-primary-tint: #9a5bf9}.ion-color-texti{--ion-color-base: var(--ion-color-texti);--ion-color-base-rgb: var(--ion-color-texti-rgb);--ion-color-contrast: var(--ion-color-texti-contrast);--ion-color-contrast-rgb: var(--ion-color-texti-contrast-rgb);--ion-color-shade: var(--ion-color-texti-shade);--ion-color-tint: var(--ion-color-texti-tint)}.ion-color-darki{--ion-color-base: var(--ion-color-darki);--ion-color-base-rgb: var(--ion-color-darki-rgb);--ion-color-contrast: var(--ion-color-darki-contrast);--ion-color-contrast-rgb: var(--ion-color-darki-contrast-rgb);--ion-color-shade: var(--ion-color-darki-shade);--ion-color-tint: var(--ion-color-darki-tint)}.section{margin-top:1rem}.input{margin:var(--val-form-field-gap, .5rem) 0}@media (min-width: 768px){.input{margin:var(--val-form-field-gap, .75rem) 0}}.submit-actions--sticky{position:sticky;bottom:0;z-index:1;background:var(--ion-background-color);border-top:1px solid var(--ion-color-step-150, rgba(0, 0, 0, .08));padding:.75rem 0 calc(.75rem + env(safe-area-inset-bottom))}.field-description{display:block;font-size:.75rem;color:var(--ion-color-dark);margin-bottom:.25rem;line-height:1.4}.button-container{display:flex;flex-direction:column;align-items:flex-start}.action{margin-top:.25rem}ion-modal.val-date-modal{--width: pxToRem(350);--min-width: pxToRem(350);--height: pxToRem(460);--border-radius: pxToRem(16);--box-shadow: 0 pxToRem(12) pxToRem(48) rgba(0, 0, 0, .25)}ion-modal.val-date-modal ion-datetime{width:21.875rem;height:28.75rem;margin:0 auto}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "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: IonDatetime, selector: "ion-datetime", inputs: ["cancelText", "clearText", "color", "dayValues", "disabled", "doneText", "firstDayOfWeek", "formatOptions", "highlightedDates", "hourCycle", "hourValues", "isDateEnabled", "locale", "max", "min", "minuteValues", "mode", "monthValues", "multiple", "name", "preferWheel", "presentation", "readonly", "showAdjacentDays", "showClearButton", "showDefaultButtons", "showDefaultTimeLabel", "showDefaultTitle", "size", "titleSelectedDatesFormatter", "value", "yearValues"] }, { kind: "component", type: IonModal, selector: "ion-modal" }] }); }
206
209
  }
207
210
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: DateInputComponent, decorators: [{
208
211
  type: Component,
@@ -221,9 +224,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
221
224
  {{ displayValue || placeholderText }}
222
225
  </ion-button>
223
226
  </div>
227
+ <!-- Sin keepContentsMounted: el ion-datetime debe montarse cuando el modal
228
+ está VISIBLE. Montado oculto (display:none) no puede medir y el grid de
229
+ días renderiza vacío al reabrir con un valor pre-cargado (edición). Ya no
230
+ usamos ion-datetime-button (trigger propio arriba), así que no se necesita. -->
224
231
  <ion-modal
225
232
  [trigger]="triggerId"
226
- [keepContentsMounted]="true"
227
233
  class="val-date-modal"
228
234
  >
229
235
  <ng-template>
@@ -242,10 +248,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
242
248
  </ion-datetime>
243
249
  </ng-template>
244
250
  </ion-modal>
245
- `, styles: ["@charset \"UTF-8\";:root{--val-container-sm: 540px;--val-container-md: 720px;--val-container-lg: 880px;--val-container-xl: 1100px;--val-container-padding: 16px;--ion-color-primary: #7026df;--ion-color-primary-rgb: 112, 38, 223;--ion-color-primary-contrast: #ffffff;--ion-color-primary-contrast-rgb: 255, 255, 255;--ion-color-primary-shade: #6321c4;--ion-color-primary-tint: #7e3ce2;--ion-color-secondary: #e2ccff;--ion-color-secondary-rgb: 226, 204, 255;--ion-color-secondary-contrast: #000000;--ion-color-secondary-contrast-rgb: 0, 0, 0;--ion-color-secondary-shade: #c7b4e0;--ion-color-secondary-tint: #e5d1ff;--ion-color-texti: #354c69;--ion-color-texti-rgb: 53, 76, 105;--ion-color-texti-contrast: #ffffff;--ion-color-texti-contrast-rgb: 255, 255, 255;--ion-color-texti-shade: #2f435c;--ion-color-texti-tint: #495e78;--ion-color-darki: #090f1b;--ion-color-darki-rgb: 9, 15, 27;--ion-color-darki-contrast: #ffffff;--ion-color-darki-contrast-rgb: 255, 255, 255;--ion-color-darki-shade: #080d18;--ion-color-darki-tint: #222732;--ion-color-medium: #9e9e9e;--ion-color-medium-rgb: 158, 158, 158;--ion-color-medium-contrast: #000000;--ion-color-medium-contrast-rgb: 0, 0, 0;--ion-color-medium-shade: #8b8b8b;--ion-color-medium-tint: #a8a8a8;--swiper-pagination-color: var(--ion-color-primary);--swiper-navigation-color: var(--ion-color-primary);--swiper-pagination-bullet-inactive-color: var(--ion-color-medium)}body.dark,html.ion-palette-dark,body[data-theme=dark]{--ion-color-texti: #8fc1ff;--ion-color-texti-rgb: 143, 193, 255;--ion-color-texti-contrast: #000000;--ion-color-texti-contrast-rgb: 0, 0, 0;--ion-color-texti-shade: #7eaae0;--ion-color-texti-tint: #9ac7ff;--ion-color-darki: #ffffff;--ion-color-darki-rgb: 255, 255, 255;--ion-color-darki-contrast: #000000;--ion-color-darki-contrast-rgb: 0, 0, 0;--ion-color-darki-shade: #e0e0e0;--ion-color-darki-tint: #ffffff;--ion-color-primary: #8f49f8;--ion-color-primary-rgb: 143, 73, 248;--ion-color-primary-contrast: #ffffff;--ion-color-primary-contrast-rgb: 255, 255, 255;--ion-color-primary-shade: #7e40da;--ion-color-primary-tint: #9a5bf9}.ion-color-texti{--ion-color-base: var(--ion-color-texti);--ion-color-base-rgb: var(--ion-color-texti-rgb);--ion-color-contrast: var(--ion-color-texti-contrast);--ion-color-contrast-rgb: var(--ion-color-texti-contrast-rgb);--ion-color-shade: var(--ion-color-texti-shade);--ion-color-tint: var(--ion-color-texti-tint)}.ion-color-darki{--ion-color-base: var(--ion-color-darki);--ion-color-base-rgb: var(--ion-color-darki-rgb);--ion-color-contrast: var(--ion-color-darki-contrast);--ion-color-contrast-rgb: var(--ion-color-darki-contrast-rgb);--ion-color-shade: var(--ion-color-darki-shade);--ion-color-tint: var(--ion-color-darki-tint)}.section{margin-top:1rem}.input{margin:var(--val-form-field-gap, .5rem) 0}@media (min-width: 768px){.input{margin:var(--val-form-field-gap, .75rem) 0}}.submit-actions--sticky{position:sticky;bottom:0;z-index:1;background:var(--ion-background-color);border-top:1px solid var(--ion-color-step-150, rgba(0, 0, 0, .08));padding:.75rem 0 calc(.75rem + env(safe-area-inset-bottom))}.field-description{display:block;font-size:.75rem;color:var(--ion-color-dark);margin-bottom:.25rem;line-height:1.4}.button-container{display:flex;flex-direction:column;align-items:flex-start}.action{margin-top:.25rem}ion-modal.val-date-modal{--width: fit-content;--min-width: pxToRem(320);--height: fit-content;--border-radius: pxToRem(16);--box-shadow: 0 pxToRem(12) pxToRem(48) rgba(0, 0, 0, .25)}ion-modal.val-date-modal ion-datetime{margin:0 auto}\n"] }]
251
+ `, styles: ["@charset \"UTF-8\";:root{--val-container-sm: 540px;--val-container-md: 720px;--val-container-lg: 880px;--val-container-xl: 1100px;--val-container-padding: 16px;--ion-color-primary: #7026df;--ion-color-primary-rgb: 112, 38, 223;--ion-color-primary-contrast: #ffffff;--ion-color-primary-contrast-rgb: 255, 255, 255;--ion-color-primary-shade: #6321c4;--ion-color-primary-tint: #7e3ce2;--ion-color-secondary: #e2ccff;--ion-color-secondary-rgb: 226, 204, 255;--ion-color-secondary-contrast: #000000;--ion-color-secondary-contrast-rgb: 0, 0, 0;--ion-color-secondary-shade: #c7b4e0;--ion-color-secondary-tint: #e5d1ff;--ion-color-texti: #354c69;--ion-color-texti-rgb: 53, 76, 105;--ion-color-texti-contrast: #ffffff;--ion-color-texti-contrast-rgb: 255, 255, 255;--ion-color-texti-shade: #2f435c;--ion-color-texti-tint: #495e78;--ion-color-darki: #090f1b;--ion-color-darki-rgb: 9, 15, 27;--ion-color-darki-contrast: #ffffff;--ion-color-darki-contrast-rgb: 255, 255, 255;--ion-color-darki-shade: #080d18;--ion-color-darki-tint: #222732;--ion-color-medium: #9e9e9e;--ion-color-medium-rgb: 158, 158, 158;--ion-color-medium-contrast: #000000;--ion-color-medium-contrast-rgb: 0, 0, 0;--ion-color-medium-shade: #8b8b8b;--ion-color-medium-tint: #a8a8a8;--swiper-pagination-color: var(--ion-color-primary);--swiper-navigation-color: var(--ion-color-primary);--swiper-pagination-bullet-inactive-color: var(--ion-color-medium)}body.dark,html.ion-palette-dark,body[data-theme=dark]{--ion-color-texti: #8fc1ff;--ion-color-texti-rgb: 143, 193, 255;--ion-color-texti-contrast: #000000;--ion-color-texti-contrast-rgb: 0, 0, 0;--ion-color-texti-shade: #7eaae0;--ion-color-texti-tint: #9ac7ff;--ion-color-darki: #ffffff;--ion-color-darki-rgb: 255, 255, 255;--ion-color-darki-contrast: #000000;--ion-color-darki-contrast-rgb: 0, 0, 0;--ion-color-darki-shade: #e0e0e0;--ion-color-darki-tint: #ffffff;--ion-color-primary: #8f49f8;--ion-color-primary-rgb: 143, 73, 248;--ion-color-primary-contrast: #ffffff;--ion-color-primary-contrast-rgb: 255, 255, 255;--ion-color-primary-shade: #7e40da;--ion-color-primary-tint: #9a5bf9}.ion-color-texti{--ion-color-base: var(--ion-color-texti);--ion-color-base-rgb: var(--ion-color-texti-rgb);--ion-color-contrast: var(--ion-color-texti-contrast);--ion-color-contrast-rgb: var(--ion-color-texti-contrast-rgb);--ion-color-shade: var(--ion-color-texti-shade);--ion-color-tint: var(--ion-color-texti-tint)}.ion-color-darki{--ion-color-base: var(--ion-color-darki);--ion-color-base-rgb: var(--ion-color-darki-rgb);--ion-color-contrast: var(--ion-color-darki-contrast);--ion-color-contrast-rgb: var(--ion-color-darki-contrast-rgb);--ion-color-shade: var(--ion-color-darki-shade);--ion-color-tint: var(--ion-color-darki-tint)}.section{margin-top:1rem}.input{margin:var(--val-form-field-gap, .5rem) 0}@media (min-width: 768px){.input{margin:var(--val-form-field-gap, .75rem) 0}}.submit-actions--sticky{position:sticky;bottom:0;z-index:1;background:var(--ion-background-color);border-top:1px solid var(--ion-color-step-150, rgba(0, 0, 0, .08));padding:.75rem 0 calc(.75rem + env(safe-area-inset-bottom))}.field-description{display:block;font-size:.75rem;color:var(--ion-color-dark);margin-bottom:.25rem;line-height:1.4}.button-container{display:flex;flex-direction:column;align-items:flex-start}.action{margin-top:.25rem}ion-modal.val-date-modal{--width: pxToRem(350);--min-width: pxToRem(350);--height: pxToRem(460);--border-radius: pxToRem(16);--box-shadow: 0 pxToRem(12) pxToRem(48) rgba(0, 0, 0, .25)}ion-modal.val-date-modal ion-datetime{width:21.875rem;height:28.75rem;margin:0 auto}\n"] }]
246
252
  }], ctorParameters: () => [], propDecorators: { preset: [{
247
253
  type: Input
248
254
  }], props: [{
249
255
  type: Input
250
256
  }] } });
251
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS1pbnB1dC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvbW9sZWN1bGVzL2RhdGUtaW5wdXQvZGF0ZS1pbnB1dC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBb0MsTUFBTSxlQUFlLENBQUM7QUFDM0YsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDckQsT0FBTyxFQUFFLFNBQVMsRUFBRSxXQUFXLEVBQUUsUUFBUSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDN0UsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3JELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQzs7O0FBRzFELE1BQU0sZUFBZSxHQUFHO0lBQ3RCLEVBQUUsRUFBRSxFQUFFLFVBQVUsRUFBRSxtQkFBbUIsRUFBRSxVQUFVLEVBQUUsa0JBQWtCLEVBQUU7SUFDdkUsRUFBRSxFQUFFLEVBQUUsVUFBVSxFQUFFLGFBQWEsRUFBRSxVQUFVLEVBQUUsYUFBYSxFQUFFO0NBQzdELENBQUM7QUE2Q0Y7Ozs7Ozs7Ozs7Ozs7R0FhRztBQUNILE1BQU0sT0FBTyxrQkFBa0I7SUFJN0I7UUFIUSxTQUFJLEdBQUcsTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQzNCLFlBQU8sR0FBRyxNQUFNLENBQUMsYUFBYSxDQUFDLENBQUM7UUFrQnhDOzs7OztXQUtHO1FBQ00sVUFBSyxHQUErQixFQUFFLENBQUM7UUFFaEQ7O1dBRUc7UUFDSCxrQkFBYSxHQUFzQixFQUF1QixDQUFDO1FBMUJ6RCx5RUFBeUU7UUFDekUsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJ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QUMsV0FBVyxFQUFFLENBQUM7UUFDeEUsQ0FBQzthQUFNLElBQUksSUFBSSxDQUFDLGFBQWEsQ0FBQyxXQUFXLEtBQUssSUFBSSxFQUFFLENBQUM7WUFDbkQsWUFBWSxHQUFHLElBQUksSUFBSSxFQUFFLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDMUMsQ0FBQztRQUVELElBQUksWUFBWSxFQUFFLENBQUM7WUFDakIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLFlBQVksQ0FBQyxDQUFDO1lBQ2xELElBQUksQ0FBQyxhQUFhLENBQUMsT0FBTyxDQUFDLGNBQWMsRUFBRSxDQUFDO1lBQzVDLElBQUksQ0FBQyxhQUFhLENBQUMsT0FBTyxDQUFDLHNCQUFzQixFQUFFLENBQUM7UUFDdEQsQ0FBQztJQUNILENBQUM7K0dBeEtVLGtCQUFrQjttR0FBbEIsa0JBQWtCLDZJQXJEbkI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQW9DVCwraUhBckNTLFlBQVksOEJBQUUsbUJBQW1CLDBUQUFFLFNBQVMsb1BBQUUsV0FBVyxvaEJBQUUsUUFBUTs7NEZBc0RsRSxrQkFBa0I7a0JBekQ5QixTQUFTOytCQUNFLGdCQUFnQixjQUNkLElBQUksV0FDUCxDQUFDLFlBQVksRUFBRSxtQkFBbUIsRUFBRSxTQUFTLEVBQUUsV0FBVyxFQUFFLFFBQVEsQ0FBQyxZQUNwRTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBb0NUO3dEQW1DUSxNQUFNO3NCQUFkLEtBQUs7Z0JBUUcsS0FBSztzQkFBYixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IENvbXBvbmVudCwgaW5qZWN0LCBJbnB1dCwgT25DaGFuZ2VzLCBPbkluaXQsIFNpbXBsZUNoYW5nZXMgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFJlYWN0aXZlRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBJb25CdXR0b24sIElvbkRhdGV0aW1lLCBJb25Nb2RhbCB9IGZyb20gJ0Bpb25pYy9hbmd1bGFyL3N0YW5kYWxvbmUnO1xuaW1wb3J0IHsgSTE4blNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9pMThuJztcbmltcG9ydCB7IFByZXNldFNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9wcmVzZXRzJztcbmltcG9ydCB7IERhdGVJbnB1dE1ldGFkYXRhIH0gZnJvbSAnLi90eXBlcyc7XG5cbmNvbnN0IERBVEVfSU5QVVRfSTE4TiA9IHtcbiAgZXM6IHsgc2VsZWN0RGF0ZTogJ1NlbGVjY2lvbmFyIGZlY2hhJywgc2VsZWN0VGltZTogJ1NlbGVjY2lvbmFyIGhvcmEnIH0sXG4gIGVuOiB7IHNlbGVjdERhdGU6ICdTZWxlY3QgZGF0ZScsIHNlbGVjdFRpbWU6ICdTZWxlY3QgdGltZScgfSxcbn07XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3ZhbC1kYXRlLWlucHV0JyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgUmVhY3RpdmVGb3Jtc01vZHVsZSwgSW9uQnV0dG9uLCBJb25EYXRldGltZSwgSW9uTW9kYWxdLFxuICB0ZW1wbGF0ZTogYFxuICAgIDxkaXYgY2xhc3M9XCJidXR0b24tY29udGFpbmVyXCI+XG4gICAgICA8IS0tIFRyaWdnZXIgcHJvcGlvIChyZWVtcGxhemEgaW9uLWRhdGV0aW1lLWJ1dHRvbiwgcXVlIHJlbmRlcml6YSBlbiBibGFuY29cbiAgICAgICAgICAgY3VhbmRvIGVsIGNvbnRyb2wgbm8gdGllbmUgdmFsb3IpLiBNdWVzdHJhIGVsIHZhbG9yIGZvcm1hdGVhZG8gbyBlbFxuICAgICAgICAgICBwbGFjZWhvbGRlciwgeSBhYnJlIGVsIG1vZGFsIHbDrWEgW3RyaWdnZXJdLiAtLT5cbiAgICAgIDxpb24tYnV0dG9uXG4gICAgICAgIFtpZF09XCJ0cmlnZ2VySWRcIlxuICAgICAgICBjbGFzcz1cImFjdGlvbiBkYXRlLXRyaWdnZXJcIlxuICAgICAgICBmaWxsPVwib3V0bGluZVwiXG4gICAgICAgIGNvbG9yPVwibWVkaXVtXCJcbiAgICAgICAgW2NsYXNzLmlzLXBsYWNlaG9sZGVyXT1cIiFkaXNwbGF5VmFsdWVcIlxuICAgICAgPlxuICAgICAgICB7eyBkaXNwbGF5VmFsdWUgfHwgcGxhY2Vob2xkZXJUZXh0IH19XG4gICAgICA8L2lvbi1idXR0b24+XG4gICAgPC9kaXY+XG4gICAgPGlvbi1tb2RhbFxuICAgICAgW3RyaWdnZXJdPVwidHJpZ2dlcklkXCJcbiAgICAgIFtrZWVwQ29udGVudHNNb3VudGVkXT1cInRydWVcIlxuICAgICAgY2xhc3M9XCJ2YWwtZGF0ZS1tb2RhbFwiXG4gICAgPlxuICAgICAgPG5nLXRlbXBsYXRlPlxuICAgICAgICA8aW9uLWRhdGV0aW1lXG4gICAgICAgICAgW2Zvcm1Db250cm9sXT1cInJlc29sdmVkUHJvcHMuY29udHJvbFwiXG4gICAgICAgICAgW2lkXT1cInJlc29sdmVkUHJvcHMudG9rZW5cIlxuICAgICAgICAgIFtwcmVzZW50YXRpb25dPVwicHJlc2VudGF0aW9uXCJcbiAgICAgICAgICBbbG9jYWxlXT1cImRhdGV0aW1lTG9jYWxlXCJcbiAgICAgICAgICBbZmlyc3REYXlPZldlZWtdPVwiZmlyc3REYXlPZldlZWtcIlxuICAgICAgICAgIFtzaG93RGVmYXVsdEJ1dHRvbnNdPVwidHJ1ZVwiXG4gICAgICAgICAgW2RvbmVUZXh0XT1cImRvbmVUZXh0XCJcbiAgICAgICAgICBbY2FuY2VsVGV4dF09XCJjYW5jZWxUZXh0XCJcbiAgICAgICAgICBbZm9ybWF0T3B0aW9uc109XCJkYXRldGltZUZvcm1hdE9wdGlvbnNcIlxuICAgICAgICA+XG4gICAgICAgICAgPHNwYW4gc2xvdD1cInRpdGxlXCI+e3sgcmVzb2x2ZWRQcm9wcy5oaW50IH19PC9zcGFuPlxuICAgICAgICA8L2lvbi1kYXRldGltZT5cbiAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgPC9pb24tbW9kYWw+XG4gIGAsXG4gIHN0eWxlVXJsczogWycuL2RhdGUtaW5wdXQuY29tcG9uZW50LnNjc3MnXSxcbn0pXG4vKipcbiAqIHZhbC1kYXRlLWlucHV0XG4gKlxuICogQSBkYXRlIHBpY2tlciBpbnB1dCBpbnRlZ3JhdGVkIHdpdGggQW5ndWxhciBmb3JtcywgdXNpbmcgSW9uaWMncyBkYXRldGltZSBjb21wb25lbnQuXG4gKlxuICogQ3VhbmRvIGVsIGNvbnRyb2wgbm8gdGllbmUgdmFsb3IsIG11ZXN0cmEgdW4gYm90w7NuIGNvbiBlbCB0ZXh0byBgcGxhY2Vob2xkZXJgXG4gKiAobyB1biBkZWZhdWx0IGkxOG4gXCJTZWxlY2Npb25hciBmZWNoYVwiKSBlbiB2ZXogZGUgcmVuZGVyaXphciBlbiBibGFuY28g4oCUXG4gKiBgaW9uLWRhdGV0aW1lLWJ1dHRvbmAgbm8gc29wb3J0YSBwbGFjZWhvbGRlciwgcG9yIGVzbyB1c2Ftb3MgdW4gdHJpZ2dlciBwcm9waW8uXG4gKlxuICogQGV4YW1wbGVcbiAqIDx2YWwtZGF0ZS1pbnB1dCBbcHJvcHNdPVwieyBjb250cm9sOiBteUNvbnRyb2wsIGhpbnQ6ICdTZWxlY3QgYSBkYXRlJyB9XCI+PC92YWwtZGF0ZS1pbnB1dD5cbiAqXG4gKiBAaW5wdXQgcHJvcHM6IERhdGVJbnB1dE1ldGFkYXRhIC0gQ29uZmlndXJhdGlvbiBmb3IgdGhlIGRhdGUgaW5wdXQgKGZvcm0gY29udHJvbCwgaGludCwgZXRjLilcbiAqL1xuZXhwb3J0IGNsYXNzIERhdGVJbnB1dENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25DaGFuZ2VzIHtcbiAgcHJpdmF0ZSBpMThuID0gaW5qZWN0KEkxOG5TZXJ2aWNlKTtcbiAgcHJpdmF0ZSBwcmVzZXRzID0gaW5qZWN0KFByZXNldFNlcnZpY2UpO1xuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIC8vIEF1dG8tcmVnaXN0cm8gZGUgZGVmYXVsdHMgaTE4biAoYW50aSBrZXktZmFsdGFudGUg4oaSIGFudGkgc3Rvcm0gZGUgQ0QpLlxuICAgIGlmICghdGhpcy5pMThuLmhhc05hbWVzcGFjZSgnRGF0ZUlucHV0JykpIHtcbiAgICAgIHRoaXMuaTE4bi5yZWdpc3RlckNvbnRlbnQoJ0RhdGVJbnB1dCcsIERBVEVfSU5QVVRfSTE4Tik7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFByZXNldCBuYW1lIHRvIGFwcGx5LiBQcmVzZXRzIGRlZmluZSByZXVzYWJsZSBkYXRlIGlucHV0IGNvbmZpZ3VyYXRpb25zXG4gICAqIHRoYXQgY2FuIGJlIHJlZ2lzdGVyZWQgYXQgYXBwIGxldmVsIHZpYSBwcm92aWRlVmFsdGVjaFByZXNldHMoKS5cbiAgICpcbiAgICogQGV4YW1wbGVcbiAgICogPHZhbC1kYXRlLWlucHV0IHByZXNldD1cImZvcm0tZmllbGRcIiBbcHJvcHNdPVwieyBjb250cm9sOiBjdHJsIH1cIj48L3ZhbC1kYXRlLWlucHV0PlxuICAgKi9cbiAgQElucHV0KCkgcHJlc2V0Pzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBJbnB1dCBjb25maWd1cmF0aW9uIG9iamVjdC4gVmFsdWVzIGhlcmUgb3ZlcnJpZGUgcHJlc2V0IHZhbHVlcy5cbiAgICogQHR5cGUge0RhdGVJbnB1dE1ldGFkYXRhfVxuICAgKiBAcHJvcGVydHkgY29udHJvbCAtIFRoZSBBbmd1bGFyIEZvcm1Db250cm9sIGZvciB0aGUgZGF0ZSBpbnB1dC5cbiAgICogQHByb3BlcnR5IGhpbnQgLSBUaGUgaGludCB0ZXh0IGZvciB0aGUgaW5wdXQuXG4gICAqL1xuICBASW5wdXQoKSBwcm9wczogUGFydGlhbDxEYXRlSW5wdXRNZXRhZGF0YT4gPSB7fTtcblxuICAvKipcbiAgICogUmVzb2x2ZWQgcHJvcHMgYWZ0ZXIgbWVyZ2luZyBwcmVzZXQgKyBleHBsaWNpdCBwcm9wcy5cbiAgICovXG4gIHJlc29sdmVkUHJvcHM6IERhdGVJbnB1dE1ldGFkYXRhID0ge30gYXMgRGF0ZUlucHV0TWV0YWRhdGE7XG5cbiAgLyoqIERvbmUgYnV0dG9uIHRleHQgLSBmcm9tIHByb3BzIG9yIGkxOG4gZGVmYXVsdCAqL1xuICBnZXQgZG9uZVRleHQoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5yZXNvbHZlZFByb3BzPy5kb25lVGV4dCB8fCB0aGlzLmkxOG4udCgnb2snKTtcbiAgfVxuXG4gIC8qKiBDYW5jZWwgYnV0dG9uIHRleHQgLSBmcm9tIHByb3BzIG9yIGkxOG4gZGVmYXVsdCAqL1xuICBnZXQgY2FuY2VsVGV4dCgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLnJlc29sdmVkUHJvcHM/LmNhbmNlbFRleHQgfHwgdGhpcy5pMThuLnQoJ2NhbmNlbCcpO1xuICB9XG5cbiAgLyoqIFByZXNlbnRhY2nDs24gZGVsIGRhdGV0aW1lIChkZWZhdWx0OiBkYXRlKS4gKi9cbiAgZ2V0IHByZXNlbnRhdGlvbigpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLnJlc29sdmVkUHJvcHM/LnByZXNlbnRhdGlvbiB8fCAnZGF0ZSc7XG4gIH1cblxuICAvKiogTG9jYWxlIGRlbCBkYXRldGltZSDigJQgaG9ucmEgZWwgcHJvcCBkZWwgY29uc3VtZXIgKGRlZmF1bHQgZXMtRVMpLiAqL1xuICBnZXQgZGF0ZXRpbWVMb2NhbGUoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5yZXNvbHZlZFByb3BzPy5sb2NhbGUgfHwgJ2VzLUVTJztcbiAgfVxuXG4gIC8qKiBQcmltZXIgZMOtYSBkZSBsYSBzZW1hbmEg4oCUIGhvbnJhIGVsIHByb3AgZGVsIGNvbnN1bWVyIChkZWZhdWx0IGx1bmVzKS4gKi9cbiAgZ2V0IGZpcnN0RGF5T2ZXZWVrKCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMucmVzb2x2ZWRQcm9wcz8uZmlyc3REYXlPZldlZWsgPz8gMTtcbiAgfVxuXG4gIC8qKlxuICAgKiBPcGNpb25lcyBkZSBmb3JtYXRvIHBhcmEgYGlvbi1kYXRldGltZWAgKGJpbmRpbmcsIE5PIHN0cmluZykuIEhvbnJhIGVsIHByb3BcbiAgICogZGVsIGNvbnN1bWVyIHkgY2FlIGEgdW4gZGVmYXVsdCBzZW5zYXRvIChkYXRlIG1lZGl1bSAvIHRpbWUgc2hvcnQpLlxuICAgKi9cbiAgZ2V0IGRhdGV0aW1lRm9ybWF0T3B0aW9ucygpOiB7XG4gICAgZGF0ZT86IHsgZGF0ZVN0eWxlPzogJ2Z1bGwnIHwgJ2xvbmcnIHwgJ21lZGl1bScgfCAnc2hvcnQnIH07XG4gICAgdGltZT86IHsgdGltZVN0eWxlPzogJ2Z1bGwnIHwgJ2xvbmcnIHwgJ21lZGl1bScgfCAnc2hvcnQnIH07XG4gIH0ge1xuICAgIHJldHVybiAoXG4gICAgICB0aGlzLnJlc29sdmVkUHJvcHM/LmZvcm1hdE9wdGlvbnMgfHwge1xuICAgICAgICBkYXRlOiB7IGRhdGVTdHlsZTogJ21lZGl1bScgfSxcbiAgICAgICAgdGltZTogeyB0aW1lU3R5bGU6ICdzaG9ydCcgfSxcbiAgICAgIH1cbiAgICApO1xuICB9XG5cbiAgLyoqIFRleHRvIGRlbCB0cmlnZ2VyIGN1YW5kbyBOTyBoYXkgdmFsb3IgKHBsYWNlaG9sZGVyIGV4cGzDrWNpdG8gbyBkZWZhdWx0IGkxOG4pLiAqL1xuICBnZXQgcGxhY2Vob2xkZXJUZXh0KCk6IHN0cmluZyB7XG4gICAgaWYgKHRoaXMucmVzb2x2ZWRQcm9wcz8ucGxhY2Vob2xkZXIpIHJldHVybiB0aGlzLnJlc29sdmVkUHJvcHMucGxhY2Vob2xkZXI7XG4gICAgdGhpcy5pMThuLmxhbmcoKTsgLy8gcmVhY3RpdmlkYWQgYW50ZSBjYW1iaW8gZGUgaWRpb21hXG4gICAgcmV0dXJuIHRoaXMucHJlc2VudGF0aW9uID09PSAndGltZSdcbiAgICAgID8gdGhpcy5pMThuLnQoJ3NlbGVjdFRpbWUnLCAnRGF0ZUlucHV0JylcbiAgICAgIDogdGhpcy5pMThuLnQoJ3NlbGVjdERhdGUnLCAnRGF0ZUlucHV0Jyk7XG4gIH1cblxuICAvKiogSWQgZGVsIHRyaWdnZXIvZGF0ZXRpbWUg4oCUIGVzdGFibGU7IHNlIGdhcmFudGl6YSBubyB2YWPDrW8gZW4gcmVzb2x2ZVByb3BzLiAqL1xuICBnZXQgdHJpZ2dlcklkKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMucmVzb2x2ZWRQcm9wcz8udG9rZW4gfHwgJyc7XG4gIH1cblxuICAvKiogVmFsb3IgZm9ybWF0ZWFkbyBkZWwgY29udHJvbCBwYXJhIG1vc3RyYXIgZW4gZWwgdHJpZ2dlciAoJycgc2kgdmFjw61vKS4gKi9cbiAgZ2V0IGRpc3BsYXlWYWx1ZSgpOiBzdHJpbmcge1xuICAgIGNvbnN0IHJhdyA9IHRoaXMucmVzb2x2ZWRQcm9wcz8uY29udHJvbD8udmFsdWU7XG4gICAgaWYgKCFyYXcpIHJldHVybiAnJztcbiAgICBjb25zdCBkID0gbmV3IERhdGUocmF3KTtcbiAgICBpZiAoaXNOYU4oZC5nZXRUaW1lKCkpKSByZXR1cm4gU3RyaW5nKHJhdyk7XG4gICAgdGhpcy5pMThuLmxhbmcoKTsgLy8gcmVhY3RpdmlkYWRcbiAgICBjb25zdCBsb2NhbGUgPSB0aGlzLmRhdGV0aW1lTG9jYWxlO1xuICAgIHRyeSB7XG4gICAgICBzd2l0Y2ggKHRoaXMucHJlc2VudGF0aW9uKSB7XG4gICAgICAgIGNhc2UgJ3RpbWUnOlxuICAgICAgICAgIHJldHVybiBuZXcgSW50bC5EYXRlVGltZUZvcm1hdChsb2NhbGUsIHsgdGltZVN0eWxlOiAnc2hvcnQnIH0pLmZvcm1hdChkKTtcbiAgICAgICAgY2FzZSAnbW9udGgnOlxuICAgICAgICBjYXNlICdtb250aC15ZWFyJzpcbiAgICAgICAgICByZXR1cm4gbmV3IEludGwuRGF0ZVRpbWVGb3JtYXQobG9jYWxlLCB7IG1vbnRoOiAnbG9uZycsIHllYXI6ICdudW1lcmljJyB9KS5mb3JtYXQoZCk7XG4gICAgICAgIGNhc2UgJ3llYXInOlxuICAgICAgICAgIHJldHVybiBuZXcgSW50bC5EYXRlVGltZUZvcm1hdChsb2NhbGUsIHsgeWVhcjogJ251bWVyaWMnIH0pLmZvcm1hdChkKTtcbiAgICAgICAgY2FzZSAnZGF0ZS10aW1lJzpcbiAgICAgICAgICByZXR1cm4gbmV3IEludGwuRGF0ZVRpbWVGb3JtYXQobG9jYWxlLCB7IGRhdGVTdHlsZTogJ21lZGl1bScsIHRpbWVTdHlsZTogJ3Nob3J0JyB9KS5mb3JtYXQoZCk7XG4gICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgcmV0dXJuIG5ldyBJbnRsLkRhdGVUaW1lRm9ybWF0KGxvY2FsZSwgeyBkYXRlU3R5bGU6ICdtZWRpdW0nIH0pLmZvcm1hdChkKTtcbiAgICAgIH1cbiAgICB9IGNhdGNoIHtcbiAgICAgIHJldHVybiBTdHJpbmcocmF3KTtcbiAgICB9XG4gIH1cblxuICBuZ09uSW5pdCgpIHtcbiAgICB0aGlzLnJlc29sdmVQcm9wcygpO1xuICAgIHRoaXMuYXBwbHlEZWZhdWx0VmFsdWUoKTtcbiAgfVxuXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpIHtcbiAgICBpZiAoY2hhbmdlc1sncHJlc2V0J10gfHwgY2hhbmdlc1sncHJvcHMnXSkge1xuICAgICAgdGhpcy5yZXNvbHZlUHJvcHMoKTtcbiAgICAgIHRoaXMuYXBwbHlEZWZhdWx0VmFsdWUoKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogTWVyZ2UgcHJlc2V0IGNvbmZpZ3VyYXRpb24gd2l0aCBleHBsaWNpdCBwcm9wcy5cbiAgICogRXhwbGljaXQgcHJvcHMgdGFrZSBwcmVjZWRlbmNlIG92ZXIgcHJlc2V0IHZhbHVlcy5cbiAgICovXG4gIHByaXZhdGUgcmVzb2x2ZVByb3BzKCk6IHZvaWQge1xuICAgIGNvbnN0IHByZXNldFByb3BzID0gdGhpcy5wcmVzZXQgPyAodGhpcy5wcmVzZXRzLmdldCgnZGF0ZUlucHV0JywgdGhpcy5wcmVzZXQpIGFzIFBhcnRpYWw8RGF0ZUlucHV0TWV0YWRhdGE+KSA6IHt9O1xuXG4gICAgdGhpcy5yZXNvbHZlZFByb3BzID0ge1xuICAgICAgLi4ucHJlc2V0UHJvcHMsXG4gICAgICAuLi50aGlzLnByb3BzLFxuICAgIH0gYXMgRGF0ZUlucHV0TWV0YWRhdGE7XG5cbiAgICAvLyBHYXJhbnRpemFyIHVuIHRva2VuIChpZCkgbm8gdmFjw61vOiBsbyBuZWNlc2l0YW4gW3RyaWdnZXJdIGRlbCBtb2RhbCB5IGVsXG4gICAgLy8gW2lkXSBkZWwgaW9uLWRhdGV0aW1lIHBhcmEgdmluY3VsYXJzZS4gU2kgZWwgY29uc3VtZXIgbm8gbG8gcGFzw7MsIGdlbmVyYW1vcyB1bm8uXG4gICAgaWYgKCF0aGlzLnJlc29sdmVkUHJvcHMudG9rZW4pIHtcbiAgICAgIHRoaXMucmVzb2x2ZWRQcm9wcy50b2tlbiA9IGB2YWwtZGF0ZS0ke01hdGgucmFuZG9tKCkudG9TdHJpbmcoMzYpLnNsaWNlKDIsIDEwKX1gO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgYXBwbHlEZWZhdWx0VmFsdWUoKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLnJlc29sdmVkUHJvcHMuY29udHJvbCkgcmV0dXJuO1xuXG4gICAgLy8gT25seSBhcHBseSBpZiB3aXRoRGVmYXVsdCBvciB2YWx1ZSBpcyBzZXRcbiAgICBpZiAoIXRoaXMucmVzb2x2ZWRQcm9wcy53aXRoRGVmYXVsdCAmJiAhdGhpcy5yZXNvbHZlZFByb3BzLnZhbHVlKSByZXR1cm47XG5cbiAgICBsZXQgZGVmYXVsdFZhbHVlOiBzdHJpbmcgfCBudWxsID0gbnVsbDtcblxuICAgIC8vIEV4cGxpY2l0IHZhbHVlIHRha2VzIHByZWNlZGVuY2VcbiAgICBpZiAodGhpcy5yZXNvbHZlZFByb3BzLnZhbHVlKSB7XG4gICAgICBkZWZhdWx0VmFsdWUgPSBuZXcgRGF0ZSh0aGlzLnJlc29sdmVkUHJvcHMudmFsdWUpLnRvSVNPU3RyaW5nKCk7XG4gICAgfSBlbHNlIGlmICh0eXBlb2YgdGhpcy5yZXNvbHZlZFByb3BzLndpdGhEZWZhdWx0ID09PSAnc3RyaW5nJykge1xuICAgICAgZGVmYXVsdFZhbHVlID0gbmV3IERhdGUodGhpcy5yZXNvbHZlZFByb3BzLndpdGhEZWZhdWx0KS50b0lTT1N0cmluZygpO1xuICAgIH0gZWxzZSBpZiAodGhpcy5yZXNvbHZlZFByb3BzLndpdGhEZWZhdWx0ID09PSB0cnVlKSB7XG4gICAgICBkZWZhdWx0VmFsdWUgPSBuZXcgRGF0ZSgpLnRvSVNPU3RyaW5nKCk7XG4gICAgfVxuXG4gICAgaWYgKGRlZmF1bHRWYWx1ZSkge1xuICAgICAgdGhpcy5yZXNvbHZlZFByb3BzLmNvbnRyb2wuc2V0VmFsdWUoZGVmYXVsdFZhbHVlKTtcbiAgICAgIHRoaXMucmVzb2x2ZWRQcm9wcy5jb250cm9sLm1hcmtBc1ByaXN0aW5lKCk7XG4gICAgICB0aGlzLnJlc29sdmVkUHJvcHMuY29udHJvbC51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KCk7XG4gICAgfVxuICB9XG59XG4iXX0=
257
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS1pbnB1dC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvbW9sZWN1bGVzL2RhdGUtaW5wdXQvZGF0ZS1pbnB1dC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBb0MsTUFBTSxlQUFlLENBQUM7QUFDM0YsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDckQsT0FBTyxFQUFFLFNBQVMsRUFBRSxXQUFXLEVBQUUsUUFBUSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDN0UsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3JELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQzs7O0FBRzFELE1BQU0sZUFBZSxHQUFHO0lBQ3RCLEVBQUUsRUFBRSxFQUFFLFVBQVUsRUFBRSxtQkFBbUIsRUFBRSxVQUFVLEVBQUUsa0JBQWtCLEVBQUU7SUFDdkUsRUFBRSxFQUFFLEVBQUUsVUFBVSxFQUFFLGFBQWEsRUFBRSxVQUFVLEVBQUUsYUFBYSxFQUFFO0NBQzdELENBQUM7QUFnREY7Ozs7Ozs7Ozs7Ozs7R0FhRztBQUNILE1BQU0sT0FBTyxrQkFBa0I7SUFJN0I7UUFIUSxTQUFJLEdBQUcsTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQzNCLFlBQU8sR0FBRyxNQUFNLENBQUMsYUFBYSxDQUFDLENBQUM7UUFrQnhDOzs7OztXQUtHO1FBQ00sVUFBSyxHQUErQixFQUFFLENBQUM7UUFFaEQ7O1dBRUc7UUFDSCxrQkFBYSxHQUFzQixFQUF1QixDQUFDO1FBMUJ6RCx5RUFBeUU7UUFDekUsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJ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QUMsV0FBVyxFQUFFLENBQUM7UUFDeEUsQ0FBQzthQUFNLElBQUksSUFBSSxDQUFDLGFBQWEsQ0FBQyxXQUFXLEtBQUssSUFBSSxFQUFFLENBQUM7WUFDbkQsWUFBWSxHQUFHLElBQUksSUFBSSxFQUFFLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDMUMsQ0FBQztRQUVELElBQUksWUFBWSxFQUFFLENBQUM7WUFDakIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLFlBQVksQ0FBQyxDQUFDO1lBQ2xELElBQUksQ0FBQyxhQUFhLENBQUMsT0FBTyxDQUFDLGNBQWMsRUFBRSxDQUFDO1lBQzVDLElBQUksQ0FBQyxhQUFhLENBQUMsT0FBTyxDQUFDLHNCQUFzQixFQUFFLENBQUM7UUFDdEQsQ0FBQztJQUNILENBQUM7K0dBeEtVLGtCQUFrQjttR0FBbEIsa0JBQWtCLDZJQXhEbkI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQXVDVCxpbEhBeENTLFlBQVksOEJBQUUsbUJBQW1CLDBUQUFFLFNBQVMsb1BBQUUsV0FBVyxvaEJBQUUsUUFBUTs7NEZBeURsRSxrQkFBa0I7a0JBNUQ5QixTQUFTOytCQUNFLGdCQUFnQixjQUNkLElBQUksV0FDUCxDQUFDLFlBQVksRUFBRSxtQkFBbUIsRUFBRSxTQUFTLEVBQUUsV0FBVyxFQUFFLFFBQVEsQ0FBQyxZQUNwRTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBdUNUO3dEQW1DUSxNQUFNO3NCQUFkLEtBQUs7Z0JBUUcsS0FBSztzQkFBYixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IENvbXBvbmVudCwgaW5qZWN0LCBJbnB1dCwgT25DaGFuZ2VzLCBPbkluaXQsIFNpbXBsZUNoYW5nZXMgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFJlYWN0aXZlRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBJb25CdXR0b24sIElvbkRhdGV0aW1lLCBJb25Nb2RhbCB9IGZyb20gJ0Bpb25pYy9hbmd1bGFyL3N0YW5kYWxvbmUnO1xuaW1wb3J0IHsgSTE4blNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9pMThuJztcbmltcG9ydCB7IFByZXNldFNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9wcmVzZXRzJztcbmltcG9ydCB7IERhdGVJbnB1dE1ldGFkYXRhIH0gZnJvbSAnLi90eXBlcyc7XG5cbmNvbnN0IERBVEVfSU5QVVRfSTE4TiA9IHtcbiAgZXM6IHsgc2VsZWN0RGF0ZTogJ1NlbGVjY2lvbmFyIGZlY2hhJywgc2VsZWN0VGltZTogJ1NlbGVjY2lvbmFyIGhvcmEnIH0sXG4gIGVuOiB7IHNlbGVjdERhdGU6ICdTZWxlY3QgZGF0ZScsIHNlbGVjdFRpbWU6ICdTZWxlY3QgdGltZScgfSxcbn07XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3ZhbC1kYXRlLWlucHV0JyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgUmVhY3RpdmVGb3Jtc01vZHVsZSwgSW9uQnV0dG9uLCBJb25EYXRldGltZSwgSW9uTW9kYWxdLFxuICB0ZW1wbGF0ZTogYFxuICAgIDxkaXYgY2xhc3M9XCJidXR0b24tY29udGFpbmVyXCI+XG4gICAgICA8IS0tIFRyaWdnZXIgcHJvcGlvIChyZWVtcGxhemEgaW9uLWRhdGV0aW1lLWJ1dHRvbiwgcXVlIHJlbmRlcml6YSBlbiBibGFuY29cbiAgICAgICAgICAgY3VhbmRvIGVsIGNvbnRyb2wgbm8gdGllbmUgdmFsb3IpLiBNdWVzdHJhIGVsIHZhbG9yIGZvcm1hdGVhZG8gbyBlbFxuICAgICAgICAgICBwbGFjZWhvbGRlciwgeSBhYnJlIGVsIG1vZGFsIHbDrWEgW3RyaWdnZXJdLiAtLT5cbiAgICAgIDxpb24tYnV0dG9uXG4gICAgICAgIFtpZF09XCJ0cmlnZ2VySWRcIlxuICAgICAgICBjbGFzcz1cImFjdGlvbiBkYXRlLXRyaWdnZXJcIlxuICAgICAgICBmaWxsPVwib3V0bGluZVwiXG4gICAgICAgIGNvbG9yPVwibWVkaXVtXCJcbiAgICAgICAgW2NsYXNzLmlzLXBsYWNlaG9sZGVyXT1cIiFkaXNwbGF5VmFsdWVcIlxuICAgICAgPlxuICAgICAgICB7eyBkaXNwbGF5VmFsdWUgfHwgcGxhY2Vob2xkZXJUZXh0IH19XG4gICAgICA8L2lvbi1idXR0b24+XG4gICAgPC9kaXY+XG4gICAgPCEtLSBTaW4ga2VlcENvbnRlbnRzTW91bnRlZDogZWwgaW9uLWRhdGV0aW1lIGRlYmUgbW9udGFyc2UgY3VhbmRvIGVsIG1vZGFsXG4gICAgICAgICBlc3TDoSBWSVNJQkxFLiBNb250YWRvIG9jdWx0byAoZGlzcGxheTpub25lKSBubyBwdWVkZSBtZWRpciB5IGVsIGdyaWQgZGVcbiAgICAgICAgIGTDrWFzIHJlbmRlcml6YSB2YWPDrW8gYWwgcmVhYnJpciBjb24gdW4gdmFsb3IgcHJlLWNhcmdhZG8gKGVkaWNpw7NuKS4gWWEgbm9cbiAgICAgICAgIHVzYW1vcyBpb24tZGF0ZXRpbWUtYnV0dG9uICh0cmlnZ2VyIHByb3BpbyBhcnJpYmEpLCBhc8OtIHF1ZSBubyBzZSBuZWNlc2l0YS4gLS0+XG4gICAgPGlvbi1tb2RhbFxuICAgICAgW3RyaWdnZXJdPVwidHJpZ2dlcklkXCJcbiAgICAgIGNsYXNzPVwidmFsLWRhdGUtbW9kYWxcIlxuICAgID5cbiAgICAgIDxuZy10ZW1wbGF0ZT5cbiAgICAgICAgPGlvbi1kYXRldGltZVxuICAgICAgICAgIFtmb3JtQ29udHJvbF09XCJyZXNvbHZlZFByb3BzLmNvbnRyb2xcIlxuICAgICAgICAgIFtpZF09XCJyZXNvbHZlZFByb3BzLnRva2VuXCJcbiAgICAgICAgICBbcHJlc2VudGF0aW9uXT1cInByZXNlbnRhdGlvblwiXG4gICAgICAgICAgW2xvY2FsZV09XCJkYXRldGltZUxvY2FsZVwiXG4gICAgICAgICAgW2ZpcnN0RGF5T2ZXZWVrXT1cImZpcnN0RGF5T2ZXZWVrXCJcbiAgICAgICAgICBbc2hvd0RlZmF1bHRCdXR0b25zXT1cInRydWVcIlxuICAgICAgICAgIFtkb25lVGV4dF09XCJkb25lVGV4dFwiXG4gICAgICAgICAgW2NhbmNlbFRleHRdPVwiY2FuY2VsVGV4dFwiXG4gICAgICAgICAgW2Zvcm1hdE9wdGlvbnNdPVwiZGF0ZXRpbWVGb3JtYXRPcHRpb25zXCJcbiAgICAgICAgPlxuICAgICAgICAgIDxzcGFuIHNsb3Q9XCJ0aXRsZVwiPnt7IHJlc29sdmVkUHJvcHMuaGludCB9fTwvc3Bhbj5cbiAgICAgICAgPC9pb24tZGF0ZXRpbWU+XG4gICAgICA8L25nLXRlbXBsYXRlPlxuICAgIDwvaW9uLW1vZGFsPlxuICBgLFxuICBzdHlsZVVybHM6IFsnLi9kYXRlLWlucHV0LmNvbXBvbmVudC5zY3NzJ10sXG59KVxuLyoqXG4gKiB2YWwtZGF0ZS1pbnB1dFxuICpcbiAqIEEgZGF0ZSBwaWNrZXIgaW5wdXQgaW50ZWdyYXRlZCB3aXRoIEFuZ3VsYXIgZm9ybXMsIHVzaW5nIElvbmljJ3MgZGF0ZXRpbWUgY29tcG9uZW50LlxuICpcbiAqIEN1YW5kbyBlbCBjb250cm9sIG5vIHRpZW5lIHZhbG9yLCBtdWVzdHJhIHVuIGJvdMOzbiBjb24gZWwgdGV4dG8gYHBsYWNlaG9sZGVyYFxuICogKG8gdW4gZGVmYXVsdCBpMThuIFwiU2VsZWNjaW9uYXIgZmVjaGFcIikgZW4gdmV6IGRlIHJlbmRlcml6YXIgZW4gYmxhbmNvIOKAlFxuICogYGlvbi1kYXRldGltZS1idXR0b25gIG5vIHNvcG9ydGEgcGxhY2Vob2xkZXIsIHBvciBlc28gdXNhbW9zIHVuIHRyaWdnZXIgcHJvcGlvLlxuICpcbiAqIEBleGFtcGxlXG4gKiA8dmFsLWRhdGUtaW5wdXQgW3Byb3BzXT1cInsgY29udHJvbDogbXlDb250cm9sLCBoaW50OiAnU2VsZWN0IGEgZGF0ZScgfVwiPjwvdmFsLWRhdGUtaW5wdXQ+XG4gKlxuICogQGlucHV0IHByb3BzOiBEYXRlSW5wdXRNZXRhZGF0YSAtIENvbmZpZ3VyYXRpb24gZm9yIHRoZSBkYXRlIGlucHV0IChmb3JtIGNvbnRyb2wsIGhpbnQsIGV0Yy4pXG4gKi9cbmV4cG9ydCBjbGFzcyBEYXRlSW5wdXRDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uQ2hhbmdlcyB7XG4gIHByaXZhdGUgaTE4biA9IGluamVjdChJMThuU2VydmljZSk7XG4gIHByaXZhdGUgcHJlc2V0cyA9IGluamVjdChQcmVzZXRTZXJ2aWNlKTtcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICAvLyBBdXRvLXJlZ2lzdHJvIGRlIGRlZmF1bHRzIGkxOG4gKGFudGkga2V5LWZhbHRhbnRlIOKGkiBhbnRpIHN0b3JtIGRlIENEKS5cbiAgICBpZiAoIXRoaXMuaTE4bi5oYXNOYW1lc3BhY2UoJ0RhdGVJbnB1dCcpKSB7XG4gICAgICB0aGlzLmkxOG4ucmVnaXN0ZXJDb250ZW50KCdEYXRlSW5wdXQnLCBEQVRFX0lOUFVUX0kxOE4pO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBQcmVzZXQgbmFtZSB0byBhcHBseS4gUHJlc2V0cyBkZWZpbmUgcmV1c2FibGUgZGF0ZSBpbnB1dCBjb25maWd1cmF0aW9uc1xuICAgKiB0aGF0IGNhbiBiZSByZWdpc3RlcmVkIGF0IGFwcCBsZXZlbCB2aWEgcHJvdmlkZVZhbHRlY2hQcmVzZXRzKCkuXG4gICAqXG4gICAqIEBleGFtcGxlXG4gICAqIDx2YWwtZGF0ZS1pbnB1dCBwcmVzZXQ9XCJmb3JtLWZpZWxkXCIgW3Byb3BzXT1cInsgY29udHJvbDogY3RybCB9XCI+PC92YWwtZGF0ZS1pbnB1dD5cbiAgICovXG4gIEBJbnB1dCgpIHByZXNldD86IHN0cmluZztcblxuICAvKipcbiAgICogSW5wdXQgY29uZmlndXJhdGlvbiBvYmplY3QuIFZhbHVlcyBoZXJlIG92ZXJyaWRlIHByZXNldCB2YWx1ZXMuXG4gICAqIEB0eXBlIHtEYXRlSW5wdXRNZXRhZGF0YX1cbiAgICogQHByb3BlcnR5IGNvbnRyb2wgLSBUaGUgQW5ndWxhciBGb3JtQ29udHJvbCBmb3IgdGhlIGRhdGUgaW5wdXQuXG4gICAqIEBwcm9wZXJ0eSBoaW50IC0gVGhlIGhpbnQgdGV4dCBmb3IgdGhlIGlucHV0LlxuICAgKi9cbiAgQElucHV0KCkgcHJvcHM6IFBhcnRpYWw8RGF0ZUlucHV0TWV0YWRhdGE+ID0ge307XG5cbiAgLyoqXG4gICAqIFJlc29sdmVkIHByb3BzIGFmdGVyIG1lcmdpbmcgcHJlc2V0ICsgZXhwbGljaXQgcHJvcHMuXG4gICAqL1xuICByZXNvbHZlZFByb3BzOiBEYXRlSW5wdXRNZXRhZGF0YSA9IHt9IGFzIERhdGVJbnB1dE1ldGFkYXRhO1xuXG4gIC8qKiBEb25lIGJ1dHRvbiB0ZXh0IC0gZnJvbSBwcm9wcyBvciBpMThuIGRlZmF1bHQgKi9cbiAgZ2V0IGRvbmVUZXh0KCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMucmVzb2x2ZWRQcm9wcz8uZG9uZVRleHQgfHwgdGhpcy5pMThuLnQoJ29rJyk7XG4gIH1cblxuICAvKiogQ2FuY2VsIGJ1dHRvbiB0ZXh0IC0gZnJvbSBwcm9wcyBvciBpMThuIGRlZmF1bHQgKi9cbiAgZ2V0IGNhbmNlbFRleHQoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5yZXNvbHZlZFByb3BzPy5jYW5jZWxUZXh0IHx8IHRoaXMuaTE4bi50KCdjYW5jZWwnKTtcbiAgfVxuXG4gIC8qKiBQcmVzZW50YWNpw7NuIGRlbCBkYXRldGltZSAoZGVmYXVsdDogZGF0ZSkuICovXG4gIGdldCBwcmVzZW50YXRpb24oKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5yZXNvbHZlZFByb3BzPy5wcmVzZW50YXRpb24gfHwgJ2RhdGUnO1xuICB9XG5cbiAgLyoqIExvY2FsZSBkZWwgZGF0ZXRpbWUg4oCUIGhvbnJhIGVsIHByb3AgZGVsIGNvbnN1bWVyIChkZWZhdWx0IGVzLUVTKS4gKi9cbiAgZ2V0IGRhdGV0aW1lTG9jYWxlKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMucmVzb2x2ZWRQcm9wcz8ubG9jYWxlIHx8ICdlcy1FUyc7XG4gIH1cblxuICAvKiogUHJpbWVyIGTDrWEgZGUgbGEgc2VtYW5hIOKAlCBob25yYSBlbCBwcm9wIGRlbCBjb25zdW1lciAoZGVmYXVsdCBsdW5lcykuICovXG4gIGdldCBmaXJzdERheU9mV2VlaygpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLnJlc29sdmVkUHJvcHM/LmZpcnN0RGF5T2ZXZWVrID8/IDE7XG4gIH1cblxuICAvKipcbiAgICogT3BjaW9uZXMgZGUgZm9ybWF0byBwYXJhIGBpb24tZGF0ZXRpbWVgIChiaW5kaW5nLCBOTyBzdHJpbmcpLiBIb25yYSBlbCBwcm9wXG4gICAqIGRlbCBjb25zdW1lciB5IGNhZSBhIHVuIGRlZmF1bHQgc2Vuc2F0byAoZGF0ZSBtZWRpdW0gLyB0aW1lIHNob3J0KS5cbiAgICovXG4gIGdldCBkYXRldGltZUZvcm1hdE9wdGlvbnMoKToge1xuICAgIGRhdGU/OiB7IGRhdGVTdHlsZT86ICdmdWxsJyB8ICdsb25nJyB8ICdtZWRpdW0nIHwgJ3Nob3J0JyB9O1xuICAgIHRpbWU/OiB7IHRpbWVTdHlsZT86ICdmdWxsJyB8ICdsb25nJyB8ICdtZWRpdW0nIHwgJ3Nob3J0JyB9O1xuICB9IHtcbiAgICByZXR1cm4gKFxuICAgICAgdGhpcy5yZXNvbHZlZFByb3BzPy5mb3JtYXRPcHRpb25zIHx8IHtcbiAgICAgICAgZGF0ZTogeyBkYXRlU3R5bGU6ICdtZWRpdW0nIH0sXG4gICAgICAgIHRpbWU6IHsgdGltZVN0eWxlOiAnc2hvcnQnIH0sXG4gICAgICB9XG4gICAgKTtcbiAgfVxuXG4gIC8qKiBUZXh0byBkZWwgdHJpZ2dlciBjdWFuZG8gTk8gaGF5IHZhbG9yIChwbGFjZWhvbGRlciBleHBsw61jaXRvIG8gZGVmYXVsdCBpMThuKS4gKi9cbiAgZ2V0IHBsYWNlaG9sZGVyVGV4dCgpOiBzdHJpbmcge1xuICAgIGlmICh0aGlzLnJlc29sdmVkUHJvcHM/LnBsYWNlaG9sZGVyKSByZXR1cm4gdGhpcy5yZXNvbHZlZFByb3BzLnBsYWNlaG9sZGVyO1xuICAgIHRoaXMuaTE4bi5sYW5nKCk7IC8vIHJlYWN0aXZpZGFkIGFudGUgY2FtYmlvIGRlIGlkaW9tYVxuICAgIHJldHVybiB0aGlzLnByZXNlbnRhdGlvbiA9PT0gJ3RpbWUnXG4gICAgICA/IHRoaXMuaTE4bi50KCdzZWxlY3RUaW1lJywgJ0RhdGVJbnB1dCcpXG4gICAgICA6IHRoaXMuaTE4bi50KCdzZWxlY3REYXRlJywgJ0RhdGVJbnB1dCcpO1xuICB9XG5cbiAgLyoqIElkIGRlbCB0cmlnZ2VyL2RhdGV0aW1lIOKAlCBlc3RhYmxlOyBzZSBnYXJhbnRpemEgbm8gdmFjw61vIGVuIHJlc29sdmVQcm9wcy4gKi9cbiAgZ2V0IHRyaWdnZXJJZCgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLnJlc29sdmVkUHJvcHM/LnRva2VuIHx8ICcnO1xuICB9XG5cbiAgLyoqIFZhbG9yIGZvcm1hdGVhZG8gZGVsIGNvbnRyb2wgcGFyYSBtb3N0cmFyIGVuIGVsIHRyaWdnZXIgKCcnIHNpIHZhY8OtbykuICovXG4gIGdldCBkaXNwbGF5VmFsdWUoKTogc3RyaW5nIHtcbiAgICBjb25zdCByYXcgPSB0aGlzLnJlc29sdmVkUHJvcHM/LmNvbnRyb2w/LnZhbHVlO1xuICAgIGlmICghcmF3KSByZXR1cm4gJyc7XG4gICAgY29uc3QgZCA9IG5ldyBEYXRlKHJhdyk7XG4gICAgaWYgKGlzTmFOKGQuZ2V0VGltZSgpKSkgcmV0dXJuIFN0cmluZyhyYXcpO1xuICAgIHRoaXMuaTE4bi5sYW5nKCk7IC8vIHJlYWN0aXZpZGFkXG4gICAgY29uc3QgbG9jYWxlID0gdGhpcy5kYXRldGltZUxvY2FsZTtcbiAgICB0cnkge1xuICAgICAgc3dpdGNoICh0aGlzLnByZXNlbnRhdGlvbikge1xuICAgICAgICBjYXNlICd0aW1lJzpcbiAgICAgICAgICByZXR1cm4gbmV3IEludGwuRGF0ZVRpbWVGb3JtYXQobG9jYWxlLCB7IHRpbWVTdHlsZTogJ3Nob3J0JyB9KS5mb3JtYXQoZCk7XG4gICAgICAgIGNhc2UgJ21vbnRoJzpcbiAgICAgICAgY2FzZSAnbW9udGgteWVhcic6XG4gICAgICAgICAgcmV0dXJuIG5ldyBJbnRsLkRhdGVUaW1lRm9ybWF0KGxvY2FsZSwgeyBtb250aDogJ2xvbmcnLCB5ZWFyOiAnbnVtZXJpYycgfSkuZm9ybWF0KGQpO1xuICAgICAgICBjYXNlICd5ZWFyJzpcbiAgICAgICAgICByZXR1cm4gbmV3IEludGwuRGF0ZVRpbWVGb3JtYXQobG9jYWxlLCB7IHllYXI6ICdudW1lcmljJyB9KS5mb3JtYXQoZCk7XG4gICAgICAgIGNhc2UgJ2RhdGUtdGltZSc6XG4gICAgICAgICAgcmV0dXJuIG5ldyBJbnRsLkRhdGVUaW1lRm9ybWF0KGxvY2FsZSwgeyBkYXRlU3R5bGU6ICdtZWRpdW0nLCB0aW1lU3R5bGU6ICdzaG9ydCcgfSkuZm9ybWF0KGQpO1xuICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgIHJldHVybiBuZXcgSW50bC5EYXRlVGltZUZvcm1hdChsb2NhbGUsIHsgZGF0ZVN0eWxlOiAnbWVkaXVtJyB9KS5mb3JtYXQoZCk7XG4gICAgICB9XG4gICAgfSBjYXRjaCB7XG4gICAgICByZXR1cm4gU3RyaW5nKHJhdyk7XG4gICAgfVxuICB9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgdGhpcy5yZXNvbHZlUHJvcHMoKTtcbiAgICB0aGlzLmFwcGx5RGVmYXVsdFZhbHVlKCk7XG4gIH1cblxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKSB7XG4gICAgaWYgKGNoYW5nZXNbJ3ByZXNldCddIHx8IGNoYW5nZXNbJ3Byb3BzJ10pIHtcbiAgICAgIHRoaXMucmVzb2x2ZVByb3BzKCk7XG4gICAgICB0aGlzLmFwcGx5RGVmYXVsdFZhbHVlKCk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIE1lcmdlIHByZXNldCBjb25maWd1cmF0aW9uIHdpdGggZXhwbGljaXQgcHJvcHMuXG4gICAqIEV4cGxpY2l0IHByb3BzIHRha2UgcHJlY2VkZW5jZSBvdmVyIHByZXNldCB2YWx1ZXMuXG4gICAqL1xuICBwcml2YXRlIHJlc29sdmVQcm9wcygpOiB2b2lkIHtcbiAgICBjb25zdCBwcmVzZXRQcm9wcyA9IHRoaXMucHJlc2V0ID8gKHRoaXMucHJlc2V0cy5nZXQoJ2RhdGVJbnB1dCcsIHRoaXMucHJlc2V0KSBhcyBQYXJ0aWFsPERhdGVJbnB1dE1ldGFkYXRhPikgOiB7fTtcblxuICAgIHRoaXMucmVzb2x2ZWRQcm9wcyA9IHtcbiAgICAgIC4uLnByZXNldFByb3BzLFxuICAgICAgLi4udGhpcy5wcm9wcyxcbiAgICB9IGFzIERhdGVJbnB1dE1ldGFkYXRhO1xuXG4gICAgLy8gR2FyYW50aXphciB1biB0b2tlbiAoaWQpIG5vIHZhY8OtbzogbG8gbmVjZXNpdGFuIFt0cmlnZ2VyXSBkZWwgbW9kYWwgeSBlbFxuICAgIC8vIFtpZF0gZGVsIGlvbi1kYXRldGltZSBwYXJhIHZpbmN1bGFyc2UuIFNpIGVsIGNvbnN1bWVyIG5vIGxvIHBhc8OzLCBnZW5lcmFtb3MgdW5vLlxuICAgIGlmICghdGhpcy5yZXNvbHZlZFByb3BzLnRva2VuKSB7XG4gICAgICB0aGlzLnJlc29sdmVkUHJvcHMudG9rZW4gPSBgdmFsLWRhdGUtJHtNYXRoLnJhbmRvbSgpLnRvU3RyaW5nKDM2KS5zbGljZSgyLCAxMCl9YDtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGFwcGx5RGVmYXVsdFZhbHVlKCk6IHZvaWQge1xuICAgIGlmICghdGhpcy5yZXNvbHZlZFByb3BzLmNvbnRyb2wpIHJldHVybjtcblxuICAgIC8vIE9ubHkgYXBwbHkgaWYgd2l0aERlZmF1bHQgb3IgdmFsdWUgaXMgc2V0XG4gICAgaWYgKCF0aGlzLnJlc29sdmVkUHJvcHMud2l0aERlZmF1bHQgJiYgIXRoaXMucmVzb2x2ZWRQcm9wcy52YWx1ZSkgcmV0dXJuO1xuXG4gICAgbGV0IGRlZmF1bHRWYWx1ZTogc3RyaW5nIHwgbnVsbCA9IG51bGw7XG5cbiAgICAvLyBFeHBsaWNpdCB2YWx1ZSB0YWtlcyBwcmVjZWRlbmNlXG4gICAgaWYgKHRoaXMucmVzb2x2ZWRQcm9wcy52YWx1ZSkge1xuICAgICAgZGVmYXVsdFZhbHVlID0gbmV3IERhdGUodGhpcy5yZXNvbHZlZFByb3BzLnZhbHVlKS50b0lTT1N0cmluZygpO1xuICAgIH0gZWxzZSBpZiAodHlwZW9mIHRoaXMucmVzb2x2ZWRQcm9wcy53aXRoRGVmYXVsdCA9PT0gJ3N0cmluZycpIHtcbiAgICAgIGRlZmF1bHRWYWx1ZSA9IG5ldyBEYXRlKHRoaXMucmVzb2x2ZWRQcm9wcy53aXRoRGVmYXVsdCkudG9JU09TdHJpbmcoKTtcbiAgICB9IGVsc2UgaWYgKHRoaXMucmVzb2x2ZWRQcm9wcy53aXRoRGVmYXVsdCA9PT0gdHJ1ZSkge1xuICAgICAgZGVmYXVsdFZhbHVlID0gbmV3IERhdGUoKS50b0lTT1N0cmluZygpO1xuICAgIH1cblxuICAgIGlmIChkZWZhdWx0VmFsdWUpIHtcbiAgICAgIHRoaXMucmVzb2x2ZWRQcm9wcy5jb250cm9sLnNldFZhbHVlKGRlZmF1bHRWYWx1ZSk7XG4gICAgICB0aGlzLnJlc29sdmVkUHJvcHMuY29udHJvbC5tYXJrQXNQcmlzdGluZSgpO1xuICAgICAgdGhpcy5yZXNvbHZlZFByb3BzLmNvbnRyb2wudXBkYXRlVmFsdWVBbmRWYWxpZGl0eSgpO1xuICAgIH1cbiAgfVxufVxuIl19
@@ -0,0 +1,239 @@
1
+ import { CommonModule } from '@angular/common';
2
+ import { Component, EventEmitter, Input, Output, computed, inject, signal } from '@angular/core';
3
+ import { FormsModule } from '@angular/forms';
4
+ import { IonButton, IonIcon, IonInput } from '@ionic/angular/standalone';
5
+ import { addIcons } from 'ionicons';
6
+ import { addOutline, trashOutline } from 'ionicons/icons';
7
+ import { I18nService } from '../../../services/i18n';
8
+ import { FIELD_LIST_I18N } from './field-list.i18n';
9
+ import * as i0 from "@angular/core";
10
+ import * as i1 from "@angular/forms";
11
+ addIcons({ addOutline, trashOutline });
12
+ const I18N_NS = 'FieldList';
13
+ /**
14
+ * `val-field-list` — editor de listas de campos repetibles (premios, rondas,
15
+ * integrantes, etc.). Cada ítem es una **card** con sus campos apilados y un botón
16
+ * para quitarla; al pie un botón "Agregar". Mobile-first (1 columna), escala a
17
+ * varias columnas por fila en pantallas anchas.
18
+ *
19
+ * Maneja su propio estado interno y emite el array completo en cada cambio
20
+ * (`itemsChange`). Patrón object-first (`@Input() props`). Auto-registra i18n
21
+ * (namespace `FieldList`) para los labels por defecto (agregar/quitar/vacío).
22
+ *
23
+ * @example
24
+ * <val-field-list
25
+ * [props]="{
26
+ * fields: [
27
+ * { name: 'nombre', label: 'Nombre' },
28
+ * { name: 'descripcion', label: 'Descripción' }
29
+ * ],
30
+ * items: premios,
31
+ * itemLabel: 'Premio {n}',
32
+ * addLabel: 'Agregar premio'
33
+ * }"
34
+ * (itemsChange)="premios = $event" />
35
+ */
36
+ export class FieldListComponent {
37
+ constructor() {
38
+ this.i18n = inject(I18nService);
39
+ /** Props object-first. */
40
+ this.props = { fields: [] };
41
+ /** Emite el array completo de ítems en cada add/remove/edición. */
42
+ this.itemsChange = new EventEmitter();
43
+ /** Estado interno de las filas (se siembra desde props.items). */
44
+ this.rowsSig = signal([]);
45
+ this.rows = this.rowsSig.asReadonly();
46
+ this.fields = computed(() => this.props.fields ?? []);
47
+ this.itemLabel = computed(() => this.props.itemLabel ?? '');
48
+ this.addIcon = computed(() => this.props.addIcon ?? 'add-outline');
49
+ this.addText = computed(() => {
50
+ this.i18n.lang();
51
+ return this.props.addLabel ?? this.t('add');
52
+ });
53
+ this.removeText = computed(() => {
54
+ this.i18n.lang();
55
+ return this.props.removeLabel ?? this.t('remove');
56
+ });
57
+ this.emptyText = computed(() => {
58
+ this.i18n.lang();
59
+ return this.props.emptyText ?? this.t('empty');
60
+ });
61
+ /** Puede agregar si no se alcanzó el máximo. */
62
+ this.canAdd = computed(() => {
63
+ const max = this.props.max;
64
+ return max == null || this.rowsSig().length < max;
65
+ });
66
+ if (!this.i18n.hasNamespace(I18N_NS)) {
67
+ this.i18n.registerContent(I18N_NS, FIELD_LIST_I18N);
68
+ }
69
+ }
70
+ ngOnChanges(changes) {
71
+ // Re-siembra solo si cambió la referencia de items entrante (evita pisar lo
72
+ // editado por el user en cada CD). El consumer controla cuándo resembrar
73
+ // pasando una nueva referencia de array.
74
+ if (changes['props']) {
75
+ const prev = changes['props'].previousValue;
76
+ const curr = changes['props'].currentValue;
77
+ if (changes['props'].firstChange || prev?.items !== curr?.items) {
78
+ this.rowsSig.set((curr?.items ?? []).map((it) => ({ ...it })));
79
+ }
80
+ }
81
+ }
82
+ t(key) {
83
+ return this.i18n.t(key, I18N_NS);
84
+ }
85
+ /** Reemplaza `{n}` por el número de fila (1-based) en el rótulo de la card. */
86
+ rowLabel(template, index) {
87
+ return template.replace('{n}', String(index + 1));
88
+ }
89
+ addRow() {
90
+ const blank = {};
91
+ for (const f of this.fields())
92
+ blank[f.name] = f.type === 'number' ? 0 : '';
93
+ this.rowsSig.update((list) => [...list, blank]);
94
+ this.emit();
95
+ }
96
+ removeRow(index) {
97
+ if (this.rowsSig().length <= (this.props.min ?? 0))
98
+ return;
99
+ this.rowsSig.update((list) => list.filter((_, i) => i !== index));
100
+ this.emit();
101
+ }
102
+ updateField(index, field, value) {
103
+ 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)));
105
+ this.emit();
106
+ }
107
+ emit() {
108
+ this.itemsChange.emit(this.rowsSig().map((r) => ({ ...r })));
109
+ }
110
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: FieldListComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
111
+ 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: `
112
+ @if (rows().length === 0) {
113
+ <p class="fl-empty">{{ emptyText() }}</p>
114
+ } @else {
115
+ <div class="fl-rows">
116
+ @for (row of rows(); track $index) {
117
+ <div class="fl-card">
118
+ <div class="fl-card__head">
119
+ @if (itemLabel(); as label) {
120
+ <span class="fl-card__label">{{ rowLabel(label, $index) }}</span>
121
+ }
122
+ <ion-button
123
+ class="fl-remove"
124
+ fill="clear"
125
+ color="medium"
126
+ size="small"
127
+ [attr.aria-label]="removeText()"
128
+ (click)="removeRow($index)"
129
+ >
130
+ <ion-icon slot="icon-only" name="trash-outline" />
131
+ </ion-button>
132
+ </div>
133
+
134
+ <div class="fl-fields">
135
+ @for (field of fields(); track field.name) {
136
+ <div class="fl-field">
137
+ <ion-input
138
+ [label]="field.label"
139
+ labelPlacement="stacked"
140
+ fill="outline"
141
+ [type]="field.type === 'number' ? 'number' : 'text'"
142
+ [inputmode]="field.inputmode ?? (field.type === 'number' ? 'numeric' : null)"
143
+ [placeholder]="field.placeholder ?? ''"
144
+ [maxlength]="field.maxlength ?? null"
145
+ [min]="field.min ?? null"
146
+ [ngModel]="row[field.name]"
147
+ (ngModelChange)="updateField($index, field, $event)"
148
+ />
149
+ </div>
150
+ }
151
+ </div>
152
+ </div>
153
+ }
154
+ </div>
155
+ }
156
+
157
+ @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
+ >
166
+ <ion-icon [name]="addIcon()" slot="start" />
167
+ {{ addText() }}
168
+ </ion-button>
169
+ }
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"] }] }); }
171
+ }
172
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: FieldListComponent, decorators: [{
173
+ type: Component,
174
+ args: [{ selector: 'val-field-list', standalone: true, imports: [CommonModule, FormsModule, IonButton, IonIcon, IonInput], template: `
175
+ @if (rows().length === 0) {
176
+ <p class="fl-empty">{{ emptyText() }}</p>
177
+ } @else {
178
+ <div class="fl-rows">
179
+ @for (row of rows(); track $index) {
180
+ <div class="fl-card">
181
+ <div class="fl-card__head">
182
+ @if (itemLabel(); as label) {
183
+ <span class="fl-card__label">{{ rowLabel(label, $index) }}</span>
184
+ }
185
+ <ion-button
186
+ class="fl-remove"
187
+ fill="clear"
188
+ color="medium"
189
+ size="small"
190
+ [attr.aria-label]="removeText()"
191
+ (click)="removeRow($index)"
192
+ >
193
+ <ion-icon slot="icon-only" name="trash-outline" />
194
+ </ion-button>
195
+ </div>
196
+
197
+ <div class="fl-fields">
198
+ @for (field of fields(); track field.name) {
199
+ <div class="fl-field">
200
+ <ion-input
201
+ [label]="field.label"
202
+ labelPlacement="stacked"
203
+ fill="outline"
204
+ [type]="field.type === 'number' ? 'number' : 'text'"
205
+ [inputmode]="field.inputmode ?? (field.type === 'number' ? 'numeric' : null)"
206
+ [placeholder]="field.placeholder ?? ''"
207
+ [maxlength]="field.maxlength ?? null"
208
+ [min]="field.min ?? null"
209
+ [ngModel]="row[field.name]"
210
+ (ngModelChange)="updateField($index, field, $event)"
211
+ />
212
+ </div>
213
+ }
214
+ </div>
215
+ </div>
216
+ }
217
+ </div>
218
+ }
219
+
220
+ @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
+ >
229
+ <ion-icon [name]="addIcon()" slot="start" />
230
+ {{ addText() }}
231
+ </ion-button>
232
+ }
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"] }]
234
+ }], ctorParameters: () => [], propDecorators: { props: [{
235
+ type: Input
236
+ }], itemsChange: [{
237
+ type: Output
238
+ }] } });
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=
@@ -0,0 +1,17 @@
1
+ /**
2
+ * Defaults i18n (es/en) embebidos en `val-field-list`. Auto-registrados en el
3
+ * namespace `FieldList` si el consumer no lo proveyó (anti key-faltante).
4
+ */
5
+ export const FIELD_LIST_I18N = {
6
+ es: {
7
+ add: 'Agregar',
8
+ remove: 'Quitar',
9
+ empty: 'Todavía no agregaste ningún ítem.',
10
+ },
11
+ en: {
12
+ add: 'Add',
13
+ remove: 'Remove',
14
+ empty: "You haven't added any items yet.",
15
+ },
16
+ };
17
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmllbGQtbGlzdC5pMThuLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9jb21wb25lbnRzL29yZ2FuaXNtcy9maWVsZC1saXN0L2ZpZWxkLWxpc3QuaTE4bi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQTs7O0dBR0c7QUFDSCxNQUFNLENBQUMsTUFBTSxlQUFlLEdBQXFCO0lBQy9DLEVBQUUsRUFBRTtRQUNGLEdBQUcsRUFBRSxTQUFTO1FBQ2QsTUFBTSxFQUFFLFFBQVE7UUFDaEIsS0FBSyxFQUFFLG1DQUFtQztLQUMzQztJQUNELEVBQUUsRUFBRTtRQUNGLEdBQUcsRUFBRSxLQUFLO1FBQ1YsTUFBTSxFQUFFLFFBQVE7UUFDaEIsS0FBSyxFQUFFLGtDQUFrQztLQUMxQztDQUNGLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBMYW5ndWFnZXNDb250ZW50IH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvaTE4bi90eXBlcyc7XG5cbi8qKlxuICogRGVmYXVsdHMgaTE4biAoZXMvZW4pIGVtYmViaWRvcyBlbiBgdmFsLWZpZWxkLWxpc3RgLiBBdXRvLXJlZ2lzdHJhZG9zIGVuIGVsXG4gKiBuYW1lc3BhY2UgYEZpZWxkTGlzdGAgc2kgZWwgY29uc3VtZXIgbm8gbG8gcHJvdmV5w7MgKGFudGkga2V5LWZhbHRhbnRlKS5cbiAqL1xuZXhwb3J0IGNvbnN0IEZJRUxEX0xJU1RfSTE4TjogTGFuZ3VhZ2VzQ29udGVudCA9IHtcbiAgZXM6IHtcbiAgICBhZGQ6ICdBZ3JlZ2FyJyxcbiAgICByZW1vdmU6ICdRdWl0YXInLFxuICAgIGVtcHR5OiAnVG9kYXbDrWEgbm8gYWdyZWdhc3RlIG5pbmfDum4gw610ZW0uJyxcbiAgfSxcbiAgZW46IHtcbiAgICBhZGQ6ICdBZGQnLFxuICAgIHJlbW92ZTogJ1JlbW92ZScsXG4gICAgZW1wdHk6IFwiWW91IGhhdmVuJ3QgYWRkZWQgYW55IGl0ZW1zIHlldC5cIixcbiAgfSxcbn07XG4iXX0=
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Tipos de `val-field-list` — editor de listas de campos repetibles.
3
+ *
4
+ * Cada ítem de la lista es un registro (`FieldListItem`) con las claves definidas
5
+ * en `fields`. El componente maneja su propio estado y emite el array completo en
6
+ * cada cambio (`itemsChange`). Patrón object-first (`@Input() props`).
7
+ */
8
+ export {};
9
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvb3JnYW5pc21zL2ZpZWxkLWxpc3QvdHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7OztHQU1HIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBUaXBvcyBkZSBgdmFsLWZpZWxkLWxpc3RgIOKAlCBlZGl0b3IgZGUgbGlzdGFzIGRlIGNhbXBvcyByZXBldGlibGVzLlxuICpcbiAqIENhZGEgw610ZW0gZGUgbGEgbGlzdGEgZXMgdW4gcmVnaXN0cm8gKGBGaWVsZExpc3RJdGVtYCkgY29uIGxhcyBjbGF2ZXMgZGVmaW5pZGFzXG4gKiBlbiBgZmllbGRzYC4gRWwgY29tcG9uZW50ZSBtYW5lamEgc3UgcHJvcGlvIGVzdGFkbyB5IGVtaXRlIGVsIGFycmF5IGNvbXBsZXRvIGVuXG4gKiBjYWRhIGNhbWJpbyAoYGl0ZW1zQ2hhbmdlYCkuIFBhdHLDs24gb2JqZWN0LWZpcnN0IChgQElucHV0KCkgcHJvcHNgKS5cbiAqL1xuXG4vKiogVGlwbyBkZSBpbnB1dCBzb3BvcnRhZG8gcG9yIHVuYSBjb2x1bW5hIGRlbCBmaWVsZC1saXN0LiAqL1xuZXhwb3J0IHR5cGUgRmllbGRMaXN0SW5wdXRUeXBlID0gJ3RleHQnIHwgJ251bWJlcic7XG5cbi8qKiBEZWZpbmljacOzbiBkZSB1biBjYW1wbyAoY29sdW1uYSkgZGUgY2FkYSBmaWxhLiAqL1xuZXhwb3J0IGludGVyZmFjZSBGaWVsZExpc3RDb2x1bW4ge1xuICAvKiogQ2xhdmUgZGVsIGNhbXBvIGVuIGVsIHJlZ2lzdHJvIGRlIGxhIGZpbGEuICovXG4gIG5hbWU6IHN0cmluZztcbiAgLyoqIExhYmVsIHZpc2libGUgYXJyaWJhIGRlbCBpbnB1dC4gKi9cbiAgbGFiZWw6IHN0cmluZztcbiAgLyoqIFBsYWNlaG9sZGVyIGRlbCBpbnB1dC4gKi9cbiAgcGxhY2Vob2xkZXI/OiBzdHJpbmc7XG4gIC8qKiBUaXBvIGRlIGlucHV0IChkZWZhdWx0IGB0ZXh0YCkuICovXG4gIHR5cGU/OiBGaWVsZExpc3RJbnB1dFR5cGU7XG4gIC8qKiBgaW5wdXRtb2RlYCBkZWwgaW5wdXQgKGVqLiBgbnVtZXJpY2AgcGFyYSBtb250b3Mvw7NyZGVuZXMpLiAqL1xuICBpbnB1dG1vZGU/OiBzdHJpbmc7XG4gIC8qKiBMYXJnbyBtw6F4aW1vIChzb2xvIGB0ZXh0YCkuICovXG4gIG1heGxlbmd0aD86IG51bWJlcjtcbiAgLyoqIE3DrW5pbW8gKHNvbG8gYG51bWJlcmApLiAqL1xuICBtaW4/OiBudW1iZXI7XG59XG5cbi8qKiBVbiDDrXRlbSBkZSBsYSBsaXN0YTogcmVnaXN0cm8gY2xhdmXihpJ2YWxvciBzZWfDum4gYGZpZWxkc2AuICovXG5leHBvcnQgdHlwZSBGaWVsZExpc3RJdGVtID0gUmVjb3JkPHN0cmluZywgc3RyaW5nIHwgbnVtYmVyPjtcblxuLyoqIFByb3BzIChvYmplY3QtZmlyc3QpIGRlIGB2YWwtZmllbGQtbGlzdGAuICovXG5leHBvcnQgaW50ZXJmYWNlIEZpZWxkTGlzdE1ldGFkYXRhIHtcbiAgLyoqIEVzcXVlbWEgZGUgY2FtcG9zIGRlIGNhZGEgZmlsYS4gKi9cbiAgZmllbGRzOiBGaWVsZExpc3RDb2x1bW5bXTtcbiAgLyoqIFZhbG9yIGluaWNpYWwgZGUgbGEgbGlzdGEgKHNlIGNsb25hIGFsIGVzdGFkbyBpbnRlcm5vKS4gKi9cbiAgaXRlbXM/OiBGaWVsZExpc3RJdGVtW107XG4gIC8qKiBUZXh0byBkZWwgYm90w7NuIFwiQWdyZWdhclwiIChkZWZhdWx0IGkxOG4pLiAqL1xuICBhZGRMYWJlbD86IHN0cmluZztcbiAgLyoqIFRleHRvL2FyaWEgZGVsIGJvdMOzbiBxdWl0YXIgKGRlZmF1bHQgaTE4bikuICovXG4gIHJlbW92ZUxhYmVsPzogc3RyaW5nO1xuICAvKiogSGludCBtb3N0cmFkbyBjdWFuZG8gbGEgbGlzdGEgZXN0w6EgdmFjw61hIChkZWZhdWx0IGkxOG4pLiAqL1xuICBlbXB0eVRleHQ/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBUZW1wbGF0ZSBkZWwgcsOzdHVsbyBkZSBjYWRhIGNhcmQ6IGB7bn1gIHNlIHJlZW1wbGF6YSBwb3IgZWwgbsO6bWVybyBkZSBmaWxhXG4gICAqICgxLWJhc2VkKS4gRWouIGBcIlByZW1pbyB7bn1cImAuIFNpIHNlIG9taXRlLCBsYSBjYXJkIG5vIG11ZXN0cmEgcsOzdHVsby5cbiAgICovXG4gIGl0ZW1MYWJlbD86IHN0cmluZztcbiAgLyoqIE3DrW5pbW8gZGUgZmlsYXMgKG5vIHNlIHB1ZWRlIGJhamFyIGRlIGFjw6EpLiBEZWZhdWx0IDAuICovXG4gIG1pbj86IG51bWJlcjtcbiAgLyoqIE3DoXhpbW8gZGUgZmlsYXMgKG9jdWx0YSBcIkFncmVnYXJcIiBhbCBhbGNhbnphcmxvKS4gRGVmYXVsdCBzaW4gbMOtbWl0ZS4gKi9cbiAgbWF4PzogbnVtYmVyO1xuICAvKiogSW9uaWNvbiBkZWwgYm90w7NuIGFncmVnYXIgKGRlZmF1bHQgYGFkZC1vdXRsaW5lYCkuICovXG4gIGFkZEljb24/OiBzdHJpbmc7XG59XG4iXX0=
@@ -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 = '2.0.1032';
6
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVyc2lvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9saWIvdmVyc2lvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7O0dBR0c7QUFDSCxNQUFNLENBQUMsTUFBTSxPQUFPLEdBQUcsVUFBVSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBDdXJyZW50IHZlcnNpb24gb2YgdmFsdGVjaC1jb21wb25lbnRzLlxuICogVGhpcyBpcyBhdXRvbWF0aWNhbGx5IHVwZGF0ZWQgZHVyaW5nIHRoZSBwdWJsaXNoIHByb2Nlc3MuXG4gKi9cbmV4cG9ydCBjb25zdCBWRVJTSU9OID0gJzIuMC4xMDMyJztcbiJdfQ==
5
+ export const VERSION = '2.0.1034';
6
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVyc2lvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9saWIvdmVyc2lvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7O0dBR0c7QUFDSCxNQUFNLENBQUMsTUFBTSxPQUFPLEdBQUcsVUFBVSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBDdXJyZW50IHZlcnNpb24gb2YgdmFsdGVjaC1jb21wb25lbnRzLlxuICogVGhpcyBpcyBhdXRvbWF0aWNhbGx5IHVwZGF0ZWQgZHVyaW5nIHRoZSBwdWJsaXNoIHByb2Nlc3MuXG4gKi9cbmV4cG9ydCBjb25zdCBWRVJTSU9OID0gJzIuMC4xMDM0JztcbiJdfQ==