@guajiritos/general-autocomplete 0.1.8 → 0.1.9

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (30) hide show
  1. package/README.md +0 -1
  2. package/esm2022/lib/guachos-general-autocomplete.component.mjs +29 -48
  3. package/esm2022/utils/interfaces/interfaces.mjs +2 -12
  4. package/esm2022/utils/pipes/i18n-field.pipe.mjs +8 -1
  5. package/esm2022/utils/pipes/pipes.module.mjs +10 -62
  6. package/esm2022/utils/pipes/resolve-property-path.pipe.mjs +11 -58
  7. package/esm2022/utils/services/autocomplete.service.mjs +39 -1
  8. package/esm2022/utils/services/utils.service.mjs +5 -28
  9. package/fesm2022/guajiritos-general-autocomplete.mjs +95 -297
  10. package/fesm2022/guajiritos-general-autocomplete.mjs.map +1 -1
  11. package/lib/guachos-general-autocomplete.component.d.ts +5 -16
  12. package/package.json +1 -1
  13. package/utils/interfaces/interfaces.d.ts +0 -17
  14. package/utils/pipes/i18n-field.pipe.d.ts +7 -0
  15. package/utils/pipes/pipes.module.d.ts +3 -10
  16. package/utils/pipes/resolve-property-path.pipe.d.ts +8 -17
  17. package/utils/services/autocomplete.service.d.ts +38 -0
  18. package/utils/services/utils.service.d.ts +4 -16
  19. package/esm2022/utils/pipes/duration.pipe.mjs +0 -18
  20. package/esm2022/utils/pipes/humanize-duration.pipe.mjs +0 -17
  21. package/esm2022/utils/pipes/ida-return.pipe.mjs +0 -23
  22. package/esm2022/utils/pipes/show-roles.pipe.mjs +0 -24
  23. package/esm2022/utils/pipes/show-segments.pipe.mjs +0 -24
  24. package/esm2022/utils/pipes/show-transport-types.pipe.mjs +0 -24
  25. package/utils/pipes/duration.pipe.d.ts +0 -8
  26. package/utils/pipes/humanize-duration.pipe.d.ts +0 -7
  27. package/utils/pipes/ida-return.pipe.d.ts +0 -8
  28. package/utils/pipes/show-roles.pipe.d.ts +0 -8
  29. package/utils/pipes/show-segments.pipe.d.ts +0 -8
  30. package/utils/pipes/show-transport-types.pipe.d.ts +0 -8
package/README.md CHANGED
@@ -64,7 +64,6 @@ Como elementos opcionales se pueden introducir los siguientes campos:
64
64
  * `showLabel` - Muestra u oculta el label.
65
65
  * `showSuffix` - Muestra u oculta el ícono del input.
66
66
  * `suffixIcon` - Nombre del ícono de material usado como sufijo del input. Se muestra si `showSuffix` está activo y por defecto tiene valor `search`.
67
- * `customValidators` - Una lista de validadores para el formulario reactivo. Se definen en la interfaz `CustomValidator`.
68
67
 
69
68
  ```html
70
69
  ...
@@ -1,5 +1,5 @@
1
- import { ChangeDetectionStrategy, Component, ElementRef, EventEmitter, forwardRef, Input, NgZone, Output, signal, TemplateRef, ViewChild, } from '@angular/core';
2
- import { NG_VALUE_ACCESSOR, ReactiveFormsModule, UntypedFormControl, Validators, } from '@angular/forms';
1
+ import { ChangeDetectionStrategy, Component, ElementRef, EventEmitter, forwardRef, Input, NgZone, Output, signal, TemplateRef, ViewChild } from '@angular/core';
2
+ import { NG_VALUE_ACCESSOR, ReactiveFormsModule, UntypedFormControl, Validators } from '@angular/forms';
3
3
  import { MatAutocompleteModule } from '@angular/material/autocomplete';
4
4
  import { MatFormFieldModule } from '@angular/material/form-field';
5
5
  import { TranslateModule, TranslateService } from '@ngx-translate/core';
@@ -37,7 +37,6 @@ export class GuajiritosGeneralAutocomplete {
37
37
  this.selectedElement = signal(null);
38
38
  this._url = signal(null);
39
39
  this.restrictionsFilters = signal([]);
40
- this.validators = signal([]);
41
40
  this.disabledButton = signal(false);
42
41
  this.loading = signal(false);
43
42
  this.required = signal(false);
@@ -52,6 +51,7 @@ export class GuajiritosGeneralAutocomplete {
52
51
  this.showLabel = true;
53
52
  this.appearance = 'outline';
54
53
  this.color = 'accent';
54
+ this.subscriptSizing = 'dynamic';
55
55
  this.placeholder = 'Seleccione un elemento';
56
56
  this.field = ['name'];
57
57
  this.filterString = 'filter[$and][name][$like]';
@@ -108,7 +108,7 @@ export class GuajiritosGeneralAutocomplete {
108
108
  this.SelectElement.emit(null);
109
109
  this.filteredOptions.set([]);
110
110
  this.propagateChange(null);
111
- },
111
+ }
112
112
  });
113
113
  }
114
114
  }
@@ -160,24 +160,8 @@ export class GuajiritosGeneralAutocomplete {
160
160
  this.inputText?.nativeElement?.focus();
161
161
  }, 500);
162
162
  });
163
- },
164
- });
165
- }
166
- }
167
- /**
168
- * Set custom validators for autocomplete
169
- *
170
- * @param validators - A list of customs validators
171
- */
172
- set customValidators(validators) {
173
- if (validators?.length) {
174
- validators.forEach((validator) => {
175
- this.component.addValidators(validator.validator);
163
+ }
176
164
  });
177
- this.validators.set(validators);
178
- }
179
- else {
180
- this.validators.set([]);
181
165
  }
182
166
  }
183
167
  /**
@@ -206,7 +190,7 @@ export class GuajiritosGeneralAutocomplete {
206
190
  this.firstCall.set(false);
207
191
  }
208
192
  this.wasSelected.set(false);
209
- },
193
+ }
210
194
  });
211
195
  }
212
196
  /**
@@ -222,7 +206,7 @@ export class GuajiritosGeneralAutocomplete {
222
206
  next: (result) => {
223
207
  this.filteredOptions.set(result?.payload?.data ?? result?.data);
224
208
  this.loading.set(false);
225
- },
209
+ }
226
210
  });
227
211
  });
228
212
  }
@@ -308,20 +292,17 @@ export class GuajiritosGeneralAutocomplete {
308
292
  this.getAutocompleteByTextHandler(this.getAutocompleteSearchText());
309
293
  }
310
294
  }
311
- /**
312
- * Acción al seleccionar un elemento
313
- *
314
- * @param item - Elemento seleccionado
315
- */
316
- onSelectElement(item) {
317
- this.wasSelected.set(true);
318
- this.selectedElement.set(item);
319
- this.SelectElement.emit(item);
320
- if (this.valueId) {
321
- this.propagateChange(typeof item === 'object' ? item?.id : item);
322
- }
323
- else {
324
- this.propagateChange(item);
295
+ optionSelected($event) {
296
+ if ($event?.option?.value) {
297
+ this.wasSelected.set(true);
298
+ this.selectedElement.set($event.option.value);
299
+ this.SelectElement.emit($event.option.value);
300
+ if (this.valueId) {
301
+ this.propagateChange(typeof $event.option.value === 'object' ? $event.option.value?.id : $event.option.value);
302
+ }
303
+ else {
304
+ this.propagateChange($event.option.value);
305
+ }
325
306
  }
326
307
  }
327
308
  ngOnDestroy() {
@@ -329,13 +310,13 @@ export class GuajiritosGeneralAutocomplete {
329
310
  this.unsubscribeAll$.complete();
330
311
  }
331
312
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.1", ngImport: i0, type: GuajiritosGeneralAutocomplete, deps: [{ token: i1.AutocompleteService }, { token: i0.NgZone }, { token: i2.TranslateService }], target: i0.ɵɵFactoryTarget.Component }); }
332
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.1", type: GuajiritosGeneralAutocomplete, isStandalone: true, selector: "guajiritos-general-autocomplete", inputs: { floatLabel: "floatLabel", bodyRequest: "bodyRequest", debounceTimeValue: "debounceTimeValue", detailsTemplate: "detailsTemplate", label: "label", showLabel: "showLabel", appearance: "appearance", color: "color", placeholder: "placeholder", field: "field", filterString: "filterString", displayOptions: "displayOptions", withoutPaddingBottom: "withoutPaddingBottom", valueId: "valueId", showSuffix: "showSuffix", order: "order", suffixIcon: "suffixIcon", removeProperties: "removeProperties", url: "url", clearData: "clearData", initialValue: "initialValue", restrictions: "restrictions", isRequired: "isRequired", doFocus: "doFocus", customValidators: "customValidators" }, outputs: { SelectElement: "SelectElement" }, providers: [
313
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.1", type: GuajiritosGeneralAutocomplete, isStandalone: true, selector: "guajiritos-general-autocomplete", inputs: { floatLabel: "floatLabel", bodyRequest: "bodyRequest", debounceTimeValue: "debounceTimeValue", detailsTemplate: "detailsTemplate", label: "label", showLabel: "showLabel", appearance: "appearance", color: "color", subscriptSizing: "subscriptSizing", placeholder: "placeholder", field: "field", filterString: "filterString", displayOptions: "displayOptions", withoutPaddingBottom: "withoutPaddingBottom", valueId: "valueId", showSuffix: "showSuffix", order: "order", suffixIcon: "suffixIcon", removeProperties: "removeProperties", url: "url", clearData: "clearData", initialValue: "initialValue", restrictions: "restrictions", isRequired: "isRequired", doFocus: "doFocus" }, outputs: { SelectElement: "SelectElement" }, providers: [
333
314
  {
334
315
  provide: NG_VALUE_ACCESSOR,
335
316
  useExisting: forwardRef(() => GuajiritosGeneralAutocomplete),
336
- multi: true,
337
- },
338
- ], viewQueries: [{ propertyName: "inputText", first: true, predicate: ["inputText"], descendants: true, static: true }], ngImport: i0, template: "<mat-form-field [floatLabel]=\"floatLabel\" [ngClass]=\"{'without-padding-bottom': withoutPaddingBottom}\" class=\"w-100\"\r\n [appearance]=\"appearance\" [color]=\"color\">\r\n\r\n <mat-label *ngIf=\"showLabel\">{{label | translate}}</mat-label>\r\n <mat-icon matSuffix *ngIf=\"showSuffix\">{{suffixIcon ?? \"search\"}}</mat-icon>\r\n <input #inputText #trigger=\"matAutocompleteTrigger\" (focus)=\"onFocus()\" [formControl]=\"component\"\r\n [matAutocomplete]=\"autocomplete\" [placeholder]=\"placeholder | translate\" aria-label=\"autocomplete\"\r\n autocomplete=\"off\" matInput type=\"text\" [required]=\"required()\">\r\n <button (click)=\"clear(trigger)\" *ngIf=\"!loading() && component?.value\" [disabled]=\"disabledButton()\"\r\n aria-label=\"Clear\" mat-icon-button matSuffix>\r\n <mat-icon>close</mat-icon>\r\n </button>\r\n <button *ngIf=\"loading()\" aria-label=\"search\" mat-icon-button matSuffix>\r\n <mat-spinner [value]=\"90\" color=\"accent\" diameter=\"25\"></mat-spinner>\r\n </button>\r\n <mat-autocomplete #autocomplete=\"matAutocomplete\" [displayWith]=\"displayFn\">\r\n <mat-option *ngFor=\"let option of filteredOptions()\" [value]=\"option\" (onSelectionChange)=\"onSelectElement(option)\">\r\n\r\n <ng-container *ngIf=\"!displayOptions && !detailsTemplate\">\r\n {{ option?.name | i18nField: translateService.currentLang }}\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"!detailsTemplate\">\r\n <div class=\"display-options\">\r\n <span [ngStyle]=\"{'line-height': displayOptions?.secondLabel ? '16px' : ''}\">\r\n {{option | resolvePropertyPath:displayOptions.firthLabel | i18nField: translateService.currentLang}}\r\n </span>\r\n <span *ngIf=\"displayOptions?.secondLabel\" class=\"mat-caption\">\r\n {{option | resolvePropertyPath: displayOptions.secondLabel | i18nField: translateService.currentLang}}\r\n </span>\r\n </div>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"detailsTemplate\">\r\n <ng-container *ngTemplateOutlet=\"detailsTemplate;context:{$implicit: option }\"></ng-container>\r\n </ng-container>\r\n </mat-option>\r\n </mat-autocomplete>\r\n\r\n <mat-error *ngIf=\"component.hasError('required')\">\r\n {{'Este campo es requerido.' | translate}}\r\n </mat-error>\r\n\r\n <mat-error *ngIf=\"component.hasError('invalidSelection')\">\r\n {{'Debe seleccionar un elemento.' | translate}}\r\n </mat-error>\r\n\r\n <ng-container *ngFor=\"let validator of validators()\">\r\n <mat-error *ngIf=\"component.hasError(validator.key)\">\r\n {{validator.message | translate}}\r\n </mat-error>\r\n </ng-container>\r\n</mat-form-field>\r\n", styles: [".w-100{width:100%}.display-options{display:flex;flex-direction:column;justify-content:flex-start;align-items:flex-start}\n"], dependencies: [{ kind: "ngmodule", type: MatFormFieldModule }, { kind: "component", type: i3.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i3.MatLabel, selector: "mat-label" }, { kind: "directive", type: i3.MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "directive", type: i3.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i2.TranslatePipe, name: "translate" }, { kind: "ngmodule", type: MatAutocompleteModule }, { kind: "component", type: i4.MatAutocomplete, selector: "mat-autocomplete", inputs: ["disableRipple", "hideSingleSelectionIndicator"], exportAs: ["matAutocomplete"] }, { kind: "component", type: i5.MatOption, selector: "mat-option", exportAs: ["matOption"] }, { kind: "directive", type: i4.MatAutocompleteTrigger, selector: "input[matAutocomplete], textarea[matAutocomplete]", exportAs: ["matAutocompleteTrigger"] }, { kind: "ngmodule", type: MatInputModule }, { kind: "directive", type: i6.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i7.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i7.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i7.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i7.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i8.MatIconButton, selector: "button[mat-icon-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i9.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: MatProgressSpinnerModule }, { kind: "component", type: i10.MatProgressSpinner, selector: "mat-progress-spinner, mat-spinner", inputs: ["color", "mode", "value", "diameter", "strokeWidth"], exportAs: ["matProgressSpinner"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "ngmodule", type: PipesModule }, { kind: "pipe", type: i11.I18nFieldPipe, name: "i18nField" }, { kind: "pipe", type: i12.ResolvePropertyPath, name: "resolvePropertyPath" }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
317
+ multi: true
318
+ }
319
+ ], viewQueries: [{ propertyName: "inputText", first: true, predicate: ["inputText"], descendants: true, static: true }], ngImport: i0, template: "<mat-form-field [floatLabel]=\"floatLabel\" class=\"w-100\" [appearance]=\"appearance\" [color]=\"color\"\r\n [subscriptSizing]=\"subscriptSizing\">\r\n\r\n <mat-label *ngIf=\"showLabel\">{{ label | translate }}</mat-label>\r\n <mat-icon matSuffix *ngIf=\"showSuffix\">{{ suffixIcon ?? \"search\" }}</mat-icon>\r\n <input #inputText #trigger=\"matAutocompleteTrigger\" (focus)=\"onFocus()\" [formControl]=\"component\"\r\n [matAutocomplete]=\"autocomplete\" [placeholder]=\"placeholder | translate\" aria-label=\"autocomplete\"\r\n autocomplete=\"off\" matInput type=\"text\" [required]=\"required()\">\r\n <button (click)=\"clear(trigger)\" *ngIf=\"!loading() && component?.value\" [disabled]=\"disabledButton()\"\r\n aria-label=\"Clear\" mat-icon-button matSuffix>\r\n <mat-icon>close</mat-icon>\r\n </button>\r\n <button *ngIf=\"loading()\" aria-label=\"search\" mat-icon-button matSuffix>\r\n <mat-spinner [value]=\"90\" color=\"accent\" diameter=\"25\"></mat-spinner>\r\n </button>\r\n <mat-autocomplete #autocomplete=\"matAutocomplete\" [displayWith]=\"displayFn\" requireSelection\r\n (optionSelected)=\"optionSelected($event)\">\r\n <mat-option *ngFor=\"let option of filteredOptions()\" [value]=\"option\">\r\n\r\n <ng-container *ngIf=\"!displayOptions && !detailsTemplate\">\r\n {{ option?.name | i18nField: translateService.currentLang }}\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"!detailsTemplate\">\r\n <div class=\"display-options\">\r\n <span [ngStyle]=\"{'line-height': displayOptions?.secondLabel ? '16px' : ''}\">\r\n {{ option | resolvePropertyPath:displayOptions.firthLabel | i18nField: translateService.currentLang }}\r\n </span>\r\n <span *ngIf=\"displayOptions?.secondLabel\" class=\"mat-caption\">\r\n {{ option | resolvePropertyPath: displayOptions.secondLabel | i18nField: translateService.currentLang }}\r\n </span>\r\n </div>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"detailsTemplate\">\r\n <ng-container *ngTemplateOutlet=\"detailsTemplate;context:{$implicit: option }\"></ng-container>\r\n </ng-container>\r\n </mat-option>\r\n </mat-autocomplete>\r\n\r\n <mat-error *ngIf=\"component.invalid\">\r\n {{ 'Este campo es requerido.' | translate }}\r\n </mat-error>\r\n</mat-form-field>\r\n", styles: [".w-100{width:100%}.display-options{display:flex;flex-direction:column;justify-content:flex-start;align-items:flex-start}\n"], dependencies: [{ kind: "ngmodule", type: MatFormFieldModule }, { kind: "component", type: i3.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i3.MatLabel, selector: "mat-label" }, { kind: "directive", type: i3.MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "directive", type: i3.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i2.TranslatePipe, name: "translate" }, { kind: "ngmodule", type: MatAutocompleteModule }, { kind: "component", type: i4.MatAutocomplete, selector: "mat-autocomplete", inputs: ["disableRipple", "hideSingleSelectionIndicator"], exportAs: ["matAutocomplete"] }, { kind: "component", type: i5.MatOption, selector: "mat-option", exportAs: ["matOption"] }, { kind: "directive", type: i4.MatAutocompleteTrigger, selector: "input[matAutocomplete], textarea[matAutocomplete]", exportAs: ["matAutocompleteTrigger"] }, { kind: "ngmodule", type: MatInputModule }, { kind: "directive", type: i6.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i7.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i7.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i7.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i7.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i8.MatIconButton, selector: "button[mat-icon-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i9.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: MatProgressSpinnerModule }, { kind: "component", type: i10.MatProgressSpinner, selector: "mat-progress-spinner, mat-spinner", inputs: ["color", "mode", "value", "diameter", "strokeWidth"], exportAs: ["matProgressSpinner"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "ngmodule", type: PipesModule }, { kind: "pipe", type: i11.I18nFieldPipe, name: "i18nField" }, { kind: "pipe", type: i12.ResolvePropertyPath, name: "resolvePropertyPath" }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
339
320
  }
340
321
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.1", ngImport: i0, type: GuajiritosGeneralAutocomplete, decorators: [{
341
322
  type: Component,
@@ -353,14 +334,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.1", ngImpor
353
334
  NgForOf,
354
335
  NgStyle,
355
336
  PipesModule,
356
- NgTemplateOutlet,
337
+ NgTemplateOutlet
357
338
  ], providers: [
358
339
  {
359
340
  provide: NG_VALUE_ACCESSOR,
360
341
  useExisting: forwardRef(() => GuajiritosGeneralAutocomplete),
361
- multi: true,
362
- },
363
- ], template: "<mat-form-field [floatLabel]=\"floatLabel\" [ngClass]=\"{'without-padding-bottom': withoutPaddingBottom}\" class=\"w-100\"\r\n [appearance]=\"appearance\" [color]=\"color\">\r\n\r\n <mat-label *ngIf=\"showLabel\">{{label | translate}}</mat-label>\r\n <mat-icon matSuffix *ngIf=\"showSuffix\">{{suffixIcon ?? \"search\"}}</mat-icon>\r\n <input #inputText #trigger=\"matAutocompleteTrigger\" (focus)=\"onFocus()\" [formControl]=\"component\"\r\n [matAutocomplete]=\"autocomplete\" [placeholder]=\"placeholder | translate\" aria-label=\"autocomplete\"\r\n autocomplete=\"off\" matInput type=\"text\" [required]=\"required()\">\r\n <button (click)=\"clear(trigger)\" *ngIf=\"!loading() && component?.value\" [disabled]=\"disabledButton()\"\r\n aria-label=\"Clear\" mat-icon-button matSuffix>\r\n <mat-icon>close</mat-icon>\r\n </button>\r\n <button *ngIf=\"loading()\" aria-label=\"search\" mat-icon-button matSuffix>\r\n <mat-spinner [value]=\"90\" color=\"accent\" diameter=\"25\"></mat-spinner>\r\n </button>\r\n <mat-autocomplete #autocomplete=\"matAutocomplete\" [displayWith]=\"displayFn\">\r\n <mat-option *ngFor=\"let option of filteredOptions()\" [value]=\"option\" (onSelectionChange)=\"onSelectElement(option)\">\r\n\r\n <ng-container *ngIf=\"!displayOptions && !detailsTemplate\">\r\n {{ option?.name | i18nField: translateService.currentLang }}\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"!detailsTemplate\">\r\n <div class=\"display-options\">\r\n <span [ngStyle]=\"{'line-height': displayOptions?.secondLabel ? '16px' : ''}\">\r\n {{option | resolvePropertyPath:displayOptions.firthLabel | i18nField: translateService.currentLang}}\r\n </span>\r\n <span *ngIf=\"displayOptions?.secondLabel\" class=\"mat-caption\">\r\n {{option | resolvePropertyPath: displayOptions.secondLabel | i18nField: translateService.currentLang}}\r\n </span>\r\n </div>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"detailsTemplate\">\r\n <ng-container *ngTemplateOutlet=\"detailsTemplate;context:{$implicit: option }\"></ng-container>\r\n </ng-container>\r\n </mat-option>\r\n </mat-autocomplete>\r\n\r\n <mat-error *ngIf=\"component.hasError('required')\">\r\n {{'Este campo es requerido.' | translate}}\r\n </mat-error>\r\n\r\n <mat-error *ngIf=\"component.hasError('invalidSelection')\">\r\n {{'Debe seleccionar un elemento.' | translate}}\r\n </mat-error>\r\n\r\n <ng-container *ngFor=\"let validator of validators()\">\r\n <mat-error *ngIf=\"component.hasError(validator.key)\">\r\n {{validator.message | translate}}\r\n </mat-error>\r\n </ng-container>\r\n</mat-form-field>\r\n", styles: [".w-100{width:100%}.display-options{display:flex;flex-direction:column;justify-content:flex-start;align-items:flex-start}\n"] }]
342
+ multi: true
343
+ }
344
+ ], template: "<mat-form-field [floatLabel]=\"floatLabel\" class=\"w-100\" [appearance]=\"appearance\" [color]=\"color\"\r\n [subscriptSizing]=\"subscriptSizing\">\r\n\r\n <mat-label *ngIf=\"showLabel\">{{ label | translate }}</mat-label>\r\n <mat-icon matSuffix *ngIf=\"showSuffix\">{{ suffixIcon ?? \"search\" }}</mat-icon>\r\n <input #inputText #trigger=\"matAutocompleteTrigger\" (focus)=\"onFocus()\" [formControl]=\"component\"\r\n [matAutocomplete]=\"autocomplete\" [placeholder]=\"placeholder | translate\" aria-label=\"autocomplete\"\r\n autocomplete=\"off\" matInput type=\"text\" [required]=\"required()\">\r\n <button (click)=\"clear(trigger)\" *ngIf=\"!loading() && component?.value\" [disabled]=\"disabledButton()\"\r\n aria-label=\"Clear\" mat-icon-button matSuffix>\r\n <mat-icon>close</mat-icon>\r\n </button>\r\n <button *ngIf=\"loading()\" aria-label=\"search\" mat-icon-button matSuffix>\r\n <mat-spinner [value]=\"90\" color=\"accent\" diameter=\"25\"></mat-spinner>\r\n </button>\r\n <mat-autocomplete #autocomplete=\"matAutocomplete\" [displayWith]=\"displayFn\" requireSelection\r\n (optionSelected)=\"optionSelected($event)\">\r\n <mat-option *ngFor=\"let option of filteredOptions()\" [value]=\"option\">\r\n\r\n <ng-container *ngIf=\"!displayOptions && !detailsTemplate\">\r\n {{ option?.name | i18nField: translateService.currentLang }}\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"!detailsTemplate\">\r\n <div class=\"display-options\">\r\n <span [ngStyle]=\"{'line-height': displayOptions?.secondLabel ? '16px' : ''}\">\r\n {{ option | resolvePropertyPath:displayOptions.firthLabel | i18nField: translateService.currentLang }}\r\n </span>\r\n <span *ngIf=\"displayOptions?.secondLabel\" class=\"mat-caption\">\r\n {{ option | resolvePropertyPath: displayOptions.secondLabel | i18nField: translateService.currentLang }}\r\n </span>\r\n </div>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"detailsTemplate\">\r\n <ng-container *ngTemplateOutlet=\"detailsTemplate;context:{$implicit: option }\"></ng-container>\r\n </ng-container>\r\n </mat-option>\r\n </mat-autocomplete>\r\n\r\n <mat-error *ngIf=\"component.invalid\">\r\n {{ 'Este campo es requerido.' | translate }}\r\n </mat-error>\r\n</mat-form-field>\r\n", styles: [".w-100{width:100%}.display-options{display:flex;flex-direction:column;justify-content:flex-start;align-items:flex-start}\n"] }]
364
345
  }], ctorParameters: function () { return [{ type: i1.AutocompleteService }, { type: i0.NgZone }, { type: i2.TranslateService }]; }, propDecorators: { inputText: [{
365
346
  type: ViewChild,
366
347
  args: ['inputText', { static: true }]
@@ -380,6 +361,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.1", ngImpor
380
361
  type: Input
381
362
  }], color: [{
382
363
  type: Input
364
+ }], subscriptSizing: [{
365
+ type: Input
383
366
  }], placeholder: [{
384
367
  type: Input
385
368
  }], field: [{
@@ -414,7 +397,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.1", ngImpor
414
397
  type: Input
415
398
  }], doFocus: [{
416
399
  type: Input
417
- }], customValidators: [{
418
- type: Input
419
400
  }] } });
420
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3VhY2hvcy1nZW5lcmFsLWF1dG9jb21wbGV0ZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9ndWFjaG9zLWdlbmVyYWwtYXV0b2NvbXBsZXRlL3NyYy9saWIvZ3VhY2hvcy1nZW5lcmFsLWF1dG9jb21wbGV0ZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi9wcm9qZWN0cy9ndWFjaG9zLWdlbmVyYWwtYXV0b2NvbXBsZXRlL3NyYy9saWIvZ3VhY2hvcy1nZW5lcmFsLWF1dG9jb21wbGV0ZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxVQUFVLEVBQ1YsWUFBWSxFQUNaLFVBQVUsRUFDVixLQUFLLEVBQ0wsTUFBTSxFQUVOLE1BQU0sRUFDTixNQUFNLEVBQ04sV0FBVyxFQUNYLFNBQVMsR0FFVixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBR0wsaUJBQWlCLEVBQ2pCLG1CQUFtQixFQUNuQixrQkFBa0IsRUFFbEIsVUFBVSxHQUNYLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEIsT0FBTyxFQUFDLHFCQUFxQixFQUF5QixNQUFNLGdDQUFnQyxDQUFDO0FBQzdGLE9BQU8sRUFBeUMsa0JBQWtCLEVBQUMsTUFBTSw4QkFBOEIsQ0FBQztBQUN4RyxPQUFPLEVBQUMsZUFBZSxFQUFFLGdCQUFnQixFQUFDLE1BQU0scUJBQXFCLENBQUM7QUFDdEUsT0FBTyxFQUFDLFlBQVksRUFBYyxPQUFPLEVBQUUsU0FBUyxFQUFDLE1BQU0sTUFBTSxDQUFDO0FBQ2xFLE9BQU8sRUFBQyxPQUFPLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQztBQUNsRixPQUFPLEVBQUMsY0FBYyxFQUFDLE1BQU0seUJBQXlCLENBQUM7QUFDdkQsT0FBTyxFQUFDLGVB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QU9PLFNBQVM7c0JBQXJCLEtBQUs7Z0JBaUJPLFlBQVk7c0JBQXhCLEtBQUs7Z0JBU08sWUFBWTtzQkFBeEIsS0FBSztnQkFhTyxVQUFVO3NCQUF0QixLQUFLO2dCQWlCTyxPQUFPO3NCQUFuQixLQUFLO2dCQXVCTyxnQkFBZ0I7c0JBQTVCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxyXG4gIENvbXBvbmVudCxcclxuICBFbGVtZW50UmVmLFxyXG4gIEV2ZW50RW1pdHRlcixcclxuICBmb3J3YXJkUmVmLFxyXG4gIElucHV0LFxyXG4gIE5nWm9uZSxcclxuICBPbkRlc3Ryb3ksXHJcbiAgT3V0cHV0LFxyXG4gIHNpZ25hbCxcclxuICBUZW1wbGF0ZVJlZixcclxuICBWaWV3Q2hpbGQsXHJcbiAgV3JpdGFibGVTaWduYWwsXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7XHJcbiAgQWJzdHJhY3RDb250cm9sLFxyXG4gIENvbnRyb2xWYWx1ZUFjY2Vzc29yLFxyXG4gIE5HX1ZBTFVFX0FDQ0VTU09SLFxyXG4gIFJlYWN0aXZlRm9ybXNNb2R1bGUsXHJcbiAgVW50eXBlZEZvcm1Db250cm9sLFxyXG4gIFZhbGlkYXRvckZuLFxyXG4gIFZhbGlkYXRvcnMsXHJcbn0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQge01hdEF1dG9jb21wbGV0ZU1vZHVsZSwgTWF0QXV0b2NvbXBsZXRlVHJpZ2dlcn0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvYXV0b2NvbXBsZXRlJztcclxuaW1wb3J0IHtGbG9hdExhYmVsVHlwZSwgTWF0Rm9ybUZpZWxkQXBwZWFyYW5jZSwgTWF0Rm9ybUZpZWxkTW9kdWxlfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9mb3JtLWZpZWxkJztcclxuaW1wb3J0IHtUcmFuc2xhdGVNb2R1bGUsIFRyYW5zbGF0ZVNlcnZpY2V9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xyXG5pbXBvcnQge2RlYm91bmNlVGltZSwgT2JzZXJ2YWJsZSwgU3ViamVjdCwgdGFrZVVudGlsfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHtOZ0NsYXNzLCBOZ0Zvck9mLCBOZ0lmLCBOZ1N0eWxlLCBOZ1RlbXBsYXRlT3V0bGV0fSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQge01hdElucHV0TW9kdWxlfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pbnB1dCc7XHJcbmltcG9ydCB7TWF0QnV0dG9uTW9kdWxlfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9idXR0b24nO1xyXG5pbXBvcnQge01hdEljb25Nb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2ljb24nO1xyXG5pbXBvcnQge01hdFByb2dyZXNzU3Bpbm5lck1vZHVsZX0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvcHJvZ3Jlc3Mtc3Bpbm5lcic7XHJcbmltcG9ydCB7VGhlbWVQYWxldHRlfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9jb3JlJztcclxuXHJcbmltcG9ydCB7R0VORVJBTF9ESVNQTEFZX09QVElPTlN9IGZyb20gJy4uL3V0aWxzL2NvbnN0YW50cy9jb250YWN0cyc7XHJcbmltcG9ydCB7QXV0b2NvbXBsZXRlU2VydmljZX0gZnJvbSAnLi4vdXRpbHMvc2VydmljZXMvYXV0b2NvbXBsZXRlLnNlcnZpY2UnO1xyXG5pbXBvcnQge1V0aWxzU2VydmljZX0gZnJvbSAnLi4vdXRpbHMvc2VydmljZXMvdXRpbHMuc2VydmljZSc7XHJcbmltcG9ydCB7QXBpRm9ybURhdGEsIEN1c3RvbVZhbGlkYXRvciwgRGlzcGxheU9wdGlvbiwgUmVzdHJpY3Rpb25GaWx0ZXJ9IGZyb20gJy4uL3V0aWxzL2ludGVyZmFjZXMvaW50ZXJmYWNlcyc7XHJcbmltcG9ydCB7UGlwZXNNb2R1bGV9IGZyb20gJy4uL3V0aWxzL3BpcGVzL3BpcGVzLm1vZHVsZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2d1YWppcml0b3MtZ2VuZXJhbC1hdXRvY29tcGxldGUnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9ndWFjaG9zLWdlbmVyYWwtYXV0b2NvbXBsZXRlLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9ndWFjaG9zLWdlbmVyYWwtYXV0b2NvbXBsZXRlLmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXHJcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcclxuICBpbXBvcnRzOiBbXHJcbiAgICBNYXRGb3JtRmllbGRNb2R1bGUsXHJcbiAgICBOZ0NsYXNzLFxyXG4gICAgVHJhbnNsYXRlTW9kdWxlLFxyXG4gICAgTWF0QXV0b2NvbXBsZXRlTW9kdWxlLFxyXG4gICAgTWF0SW5wdXRNb2R1bGUsXHJcbiAgICBSZWFjdGl2ZUZvcm1zTW9kdWxlLFxyXG4gICAgTWF0QnV0dG9uTW9kdWxlLFxyXG4gICAgTWF0SWNvbk1vZHVsZSxcclxuICAgIE1hdFByb2dyZXNzU3Bpbm5lck1vZHVsZSxcclxuICAgIE5nSWYsXHJcbiAgICBOZ0Zvck9mLFxyXG4gICAgTmdTdHlsZSxcclxuICAgIFBpcGVzTW9kdWxlLFxyXG4gICAgTmdUZW1wbGF0ZU91dGxldCxcclxuICBdLFxyXG4gIHByb3ZpZGVyczogW1xyXG4gICAge1xyXG4gICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcclxuICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gR3VhamlyaXRvc0dlbmVyYWxBdXRvY29tcGxldGUpLFxyXG4gICAgICBtdWx0aTogdHJ1ZSxcclxuICAgIH0sXHJcbiAgXSxcclxufSlcclxuZXhwb3J0IGNsYXNzIEd1YWppcml0b3NHZW5lcmFsQXV0b2NvbXBsZXRlIGltcGxlbWVudHMgT25EZXN0cm95LCBDb250cm9sVmFsdWVBY2Nlc3NvciB7XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBfYXV0b2NvbXBsZXRlU2VydmljZTogQXV0b2NvbXBsZXRlU2VydmljZSxcclxuICAgIHByaXZhdGUgX3pvbmU6IE5nWm9uZSxcclxuICAgIHB1YmxpYyB0cmFuc2xhdGVTZXJ2aWNlOiBUcmFuc2xhdGVTZXJ2aWNlLFxyXG4gICkge1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSB3YXNTZWxlY3RlZDogV3JpdGFibGVTaWduYWw8Ym9vbGVhbj4gPSBzaWduYWwoZmFsc2UpO1xyXG4gIHByaXZhdGUgZmlyc3RDYWxsOiBXcml0YWJsZVNpZ25hbDxib29sZWFuPiA9IHNpZ25hbCh0cnVlKTtcclxuICBwcml2YXRlIGNsZWFyRGF0YSQ6IFN1YmplY3Q8dm9pZD47XHJcbiAgcHJpdmF0ZSB1bnN1YnNjcmliZUFsbCQ6IFN1YmplY3Q8dm9pZD4gPSBuZXcgU3ViamVjdDx2b2lkPigpO1xyXG4gIHByaXZhdGUgZG9Gb2N1c1N1YmplY3QkOiBTdWJqZWN0PHZvaWQ+O1xyXG4gIHByaXZhdGUgc2VsZWN0ZWRFbGVtZW50OiBXcml0YWJsZVNpZ25hbDxhbnk+ID0gc2lnbmFsKG51bGwpO1xyXG4gIHByaXZhdGUgX3VybDogV3JpdGFibGVTaWduYWw8c3RyaW5nPiA9IHNpZ25hbChudWxsKTtcclxuICBwcml2YXRlIHJlc3RyaWN0aW9uc0ZpbHRlcnM6IFdyaXRhYmxlU2lnbmFsPFJlc3RyaWN0aW9uRmlsdGVyW10+ID0gc2lnbmFsKFtdKTtcclxuXHJcbiAgcHVibGljIHZhbGlkYXRvcnM6IFdyaXRhYmxlU2lnbmFsPEN1c3RvbVZhbGlkYXRvcltdPiA9IHNpZ25hbChbXSk7XHJcbiAgcHVibGljIGRpc2FibGVkQnV0dG9uOiBXcml0YWJsZVNpZ25hbDxib29sZWFuPiA9IHNpZ25hbChmYWxzZSk7XHJcbiAgcHVibGljIGxvYWRpbmc6IFdyaXRhYmxlU2lnbmFsPGJvb2xlYW4+ID0gc2lnbmFsKGZhbHNlKTtcclxuICBwdWJsaWMgcmVxdWlyZWQ6IFdyaXRhYmxlU2lnbmFsPGJvb2xlYW4+ID0gc2lnbmFsKGZhbHNlKTtcclxuICBwdWJsaWMgZmlsdGVyZWRPcHRpb25zOiBXcml0YWJsZVNpZ25hbDxhbnlbXT4gPSBzaWduYWwoW10pO1xyXG4gIHB1YmxpYyBjb21wb25lbnQ6IFVudHlwZWRGb3JtQ29udHJvbCA9IG5ldyBVbnR5cGVkRm9ybUNvbnRyb2woe3ZhbHVlOiBudWxsLCBkaXNhYmxlZDogZmFsc2V9KTtcclxuXHJcbiAgQFZpZXdDaGlsZCgnaW5wdXRUZXh0Jywge3N0YXRpYzogdHJ1ZX0pIGlucHV0VGV4dDogRWxlbWVudFJlZjtcclxuICAvKipcclxuICAgKiBQb3NzaWJsZSB2YWx1ZXMgJ25ldmVyJywgJ2F1dG8nIG9yICdhbHdheXMnXHJcbiAgICovXHJcbiAgQElucHV0KCkgZmxvYXRMYWJlbDogRmxvYXRMYWJlbFR5cGUgPSAnYXV0byc7XHJcbiAgQElucHV0KCkgYm9keVJlcXVlc3Q6IEFwaUZvcm1EYXRhO1xyXG4gIEBJbnB1dCgpIGRlYm91bmNlVGltZVZhbHVlOiBudW1iZXIgPSAzMDA7XHJcbiAgQElucHV0KCkgZGV0YWlsc1RlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+O1xyXG4gIEBJbnB1dCgpIGxhYmVsOiBzdHJpbmcgPSAnU2VsZWNjaW9uZSc7XHJcbiAgQElucHV0KCkgc2hvd0xhYmVsOiBib29sZWFuID0gdHJ1ZTtcclxuICBASW5wdXQoKSBhcHBlYXJhbmNlOiBNYXRGb3JtRmllbGRBcHBlYXJhbmNlID0gJ291dGxpbmUnO1xyXG4gIEBJbnB1dCgpIGNvbG9yOiBUaGVtZVBhbGV0dGUgPSAnYWNjZW50JztcclxuICBASW5wdXQoKSBwbGFjZWhvbGRlcjogc3RyaW5nID0gJ1NlbGVjY2lvbmUgdW4gZWxlbWVudG8nO1xyXG4gIEBJbnB1dCgpIGZpZWxkOiBzdHJpbmdbXSA9IFsnbmFtZSddO1xyXG4gIEBJbnB1dCgpIGZpbHRlclN0cmluZzogc3RyaW5nID0gJ2ZpbHRlclskYW5kXVtuYW1lXVskbGlrZV0nO1xyXG4gIEBJbnB1dCgpIGRpc3BsYXlPcHRpb25zOiBEaXNwbGF5T3B0aW9uID0gR0VORVJBTF9ESVNQTEFZX09QVElPTlM7XHJcbiAgQElucHV0KCkgd2l0aG91dFBhZGRpbmdCb3R0b206IGJvb2xlYW4gPSB0cnVlO1xyXG4gIEBJbnB1dCgpIHZhbHVlSWQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBASW5wdXQoKSBzaG93U3VmZml4OiBib29sZWFuID0gZmFsc2U7XHJcbiAgQElucHV0KCkgb3JkZXIhOiBzdHJpbmc7XHJcbiAgQElucHV0KCkgc3VmZml4SWNvbjogc3RyaW5nID0gJ3NlYXJjaCc7XHJcbiAgQElucHV0KCkgcmVtb3ZlUHJvcGVydGllczogc3RyaW5nW10gPSBbXTtcclxuICBAT3V0cHV0KCkgU2VsZWN0RWxlbWVudDogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcclxuXHJcbiAgQElucHV0KCkgc2V0IHVybChkYXRhOiBzdHJpbmcpIHtcclxuICAgIGlmIChkYXRhKSB7XHJcbiAgICAgIHRoaXMuX3VybC5zZXQoZGF0YSk7XHJcbiAgICAgIHRoaXMuc3Vic2NyaWJlQ29tcG9uZW50Q2hhbmdlcygpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgQElucHV0KCkgc2V0IGNsZWFyRGF0YSh2YWx1ZTogU3ViamVjdDx2b2lkPikge1xyXG4gICAgdGhpcy5jbGVhckRhdGEkID0gdmFsdWU7XHJcbiAgICBpZiAodGhpcy5jbGVhckRhdGEkKSB7XHJcbiAgICAgIHRoaXMuY2xlYXJEYXRhJFxyXG4gICAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLnVuc3Vic2NyaWJlQWxsJCkpXHJcbiAgICAgICAgLnN1YnNjcmliZSh7XHJcbiAgICAgICAgICBuZXh0OiAoKTogdm9pZCA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMuY29tcG9uZW50LnNldFZhbHVlKG51bGwsIHtlbWl0RXZlbnQ6IGZhbHNlfSk7XHJcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRFbGVtZW50LnNldChudWxsKTtcclxuICAgICAgICAgICAgdGhpcy5TZWxlY3RFbGVtZW50LmVtaXQobnVsbCk7XHJcbiAgICAgICAgICAgIHRoaXMuZmlsdGVyZWRPcHRpb25zLnNldChbXSk7XHJcbiAgICAgICAgICAgIHRoaXMucHJvcGFnYXRlQ2hhbmdlKG51bGwpO1xyXG4gICAgICAgICAgfSxcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIEBJbnB1dCgpIHNldCBpbml0aWFsVmFsdWUodmFsdWU6IGFueSkge1xyXG4gICAgdGhpcy5jb21wb25lbnQuc2V0VmFsdWUodmFsdWUpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQcOxYWRlIG8gZWxpbWluYSByZXN0cmljY2lvbmVzIHBhcmEgbGEgYsO6c3F1ZWRhXHJcbiAgICpcclxuICAgKiBAcGFyYW0gcmVzdHJpY3Rpb25zIC0gUmVzdHJpY2Npb25lcyBwYXJhIGxhIGLDunNxdWVkYVxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIHNldCByZXN0cmljdGlvbnMocmVzdHJpY3Rpb25zOiBSZXN0cmljdGlvbkZpbHRlcltdKSB7XHJcbiAgICBpZiAocmVzdHJpY3Rpb25zKSB7XHJcbiAgICAgIHRoaXMucmVzdHJpY3Rpb25zRmlsdGVycy5zZXQocmVzdHJpY3Rpb25zKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMucmVzdHJpY3Rpb25zRmlsdGVycy5zZXQoW10pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQcOxYWRlIG8gZWxpbWluYSBsYSB2YWxpZGFjacOzbiBkZSBxdWUgZWwgY2FtcG8gc2VhIHJlcXVlcmlkb1xyXG4gICAqXHJcbiAgICogQHBhcmFtIHJlcXVpcmVkIC0gRGVmaW5lIHNpIGVzIHJlcXVlcmlkbyBvIG5vXHJcbiAgICovXHJcbiAgQElucHV0KCkgc2V0IGlzUmVxdWlyZWQocmVxdWlyZWQ6IGJvb2xlYW4pIHtcclxuICAgIHRoaXMucmVxdWlyZWQuc2V0KHJlcXVpcmVkKTtcclxuXHJcbiAgICBpZiAocmVxdWlyZWQpIHtcclxuICAgICAgdGhpcy5jb21wb25lbnQuc2V0VmFsaWRhdG9ycyhbVmFsaWRhdG9ycy5yZXF1aXJlZCwgR3VhamlyaXRvc0dlbmVyYWxBdXRvY29tcGxldGUuYXV0b2NvbXBsZXRlVmFsaWRhdG9yXSk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLmNvbXBvbmVudC5jbGVhclZhbGlkYXRvcnMoKTtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLmNvbXBvbmVudC51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KCk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBEZWZpbmUgc2kgdmFtb3MgYSByZWFsaXphciB1bmEgYsO6c3F1ZWRhIGFsIGVsZW1lbnRvIGVzdGFyIGVuIGVsIGZvY3VzIGRlIGxhIGFwbGljYWNpw7NuXHJcbiAgICpcclxuICAgKiBAcGFyYW0gZm9jdXNTdWJqZWN0IC0gT2JzZXJ2YWJsZSBwYXJhIGxhIHN1YnNjcmlwY2nDs24gYWwgZXZlbnRvIEZvY3VzXHJcbiAgICovXHJcbiAgQElucHV0KCkgc2V0IGRvRm9jdXMoZm9jdXNTdWJqZWN0OiBTdWJqZWN0PHZvaWQ+KSB7XHJcbiAgICB0aGlzLmRvRm9jdXNTdWJqZWN0JCA9IGZvY3VzU3ViamVjdDtcclxuXHJcbiAgICBpZiAodGhpcy5kb0ZvY3VzU3ViamVjdCQpIHtcclxuICAgICAgdGhpcy5kb0ZvY3VzU3ViamVjdCRcclxuICAgICAgICAucGlwZSh0YWtlVW50aWwodGhpcy51bnN1YnNjcmliZUFsbCQpKVxyXG4gICAgICAgIC5zdWJzY3JpYmUoe1xyXG4gICAgICAgICAgbmV4dDogKCk6IHZvaWQgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLl96b25lLnJ1bigoKTogdm9pZCA9PiB7XHJcbiAgICAgICAgICAgICAgc2V0VGltZW91dCgoKTogdm9pZCA9PiB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmlucHV0VGV4dD8ubmF0aXZlRWxlbWVudD8uZm9jdXMoKTtcclxuICAgICAgICAgICAgICB9LCA1MDApO1xyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICAgIH0sXHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBTZXQgY3VzdG9tIHZhbGlkYXRvcnMgZm9yIGF1dG9jb21wbGV0ZVxyXG4gICAqXHJcbiAgICogQHBhcmFtIHZhbGlkYXRvcnMgLSBBIGxpc3Qgb2YgY3VzdG9tcyB2YWxpZGF0b3JzXHJcbiAgICovXHJcbiAgQElucHV0KCkgc2V0IGN1c3RvbVZhbGlkYXRvcnModmFsaWRhdG9yczogQ3VzdG9tVmFsaWRhdG9yW10pIHtcclxuICAgIGlmICh2YWxpZGF0b3JzPy5sZW5ndGgpIHtcclxuICAgICAgdmFsaWRhdG9ycy5mb3JFYWNoKCh2YWxpZGF0b3I6IEN1c3RvbVZhbGlkYXRvcik6IHZvaWQgPT4ge1xyXG4gICAgICAgIHRoaXMuY29tcG9uZW50LmFkZFZhbGlkYXRvcnModmFsaWRhdG9yLnZhbGlkYXRvcik7XHJcbiAgICAgIH0pO1xyXG4gICAgICB0aGlzLnZhbGlkYXRvcnMuc2V0KHZhbGlkYXRvcnMpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy52YWxpZGF0b3JzLnNldChbXSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBWYWxpZGFjacOzbiBjdXN0b21pemFkYSBwYXJhIGxhIHNlbGVjY2nDs24gZGUgZWxlbWVudG9zXHJcbiAgICovXHJcbiAgcHJpdmF0ZSBzdGF0aWMgYXV0b2NvbXBsZXRlVmFsaWRhdG9yKCk6IFZhbGlkYXRvckZuIHtcclxuICAgIHJldHVybiAoY29udHJvbDogQWJzdHJhY3RDb250cm9sKTogeyBba2V5OiBzdHJpbmddOiBhbnkgfSB8IG51bGwgPT4ge1xyXG4gICAgICBpZiAoY29udHJvbD8udmFsdWU/LmNvbnN0cnVjdG9yICE9PSBPYmplY3QgfHwgIWNvbnRyb2w/LnZhbHVlPy5pZCkge1xyXG4gICAgICAgIHJldHVybiB7aW52YWxpZFNlbGVjdGlvbjogdHJ1ZX07XHJcbiAgICAgIH1cclxuICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICB9O1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogU3Vic2NyaXBjacOzbiBhIGxvcyBjYW1iaW9zIGRlbCBpbnB1dCBkZSBiw7pzcXVlZGFcclxuICAgKi9cclxuICBwcml2YXRlIHN1YnNjcmliZUNvbXBvbmVudENoYW5nZXMoKTogdm9pZCB7XHJcbiAgICB0aGlzLmNvbXBvbmVudD8udmFsdWVDaGFuZ2VzXHJcbiAgICAgID8ucGlwZShkZWJvdW5jZVRpbWUodGhpcy5kZWJvdW5jZVRpbWVWYWx1ZSksIHRha2VVbnRpbCh0aGlzLnVuc3Vic2NyaWJlQWxsJCkpXHJcbiAgICAgID8uc3Vic2NyaWJlKHtcclxuICAgICAgICBuZXh0OiAoKTogdm9pZCA9PiB7XHJcbiAgICAgICAgICBpZiAoIXRoaXMuZmlyc3RDYWxsKCkgJiYgIXRoaXMud2FzU2VsZWN0ZWQoKSkge1xyXG4gICAgICAgICAgICB0aGlzLmdldEF1dG9jb21wbGV0ZUJ5VGV4dEhhbmRsZXIodGhpcy5nZXRBdXRvY29tcGxldGVTZWFyY2hUZXh0KCkpO1xyXG4gICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgdGhpcy5maXJzdENhbGwuc2V0KGZhbHNlKTtcclxuICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICB0aGlzLndhc1NlbGVjdGVkLnNldChmYWxzZSk7XHJcbiAgICAgICAgfSxcclxuICAgICAgfSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBCw7pzcXVlZGEgZGUgbG9zIGVsZW1lbnRvcyBhIG1vc3RyYXIgZW4gZWwgY29tcG9uZW50ZSBkZSBhdXRvY29tcGxldGFtaWVudG9cclxuICAgKlxyXG4gICAqIEBwYXJhbSB0ZXh0IC0gVGV4dG8gYSBidXNjYXJcclxuICAgKi9cclxuICBwcml2YXRlIGdldEF1dG9jb21wbGV0ZUJ5VGV4dEhhbmRsZXIodGV4dD86IHN0cmluZyk6IHZvaWQge1xyXG4gICAgdGhpcy5fYXV0b2NvbXBsZXRlU2VydmljZVxyXG4gICAgICAuZ2V0QXV0b2NvbXBsZXRlQnlUZXh0KHRoaXMuX3VybCgpLCB0ZXh0LCB0aGlzLmZpbHRlclN0cmluZywgdGhpcy5yZXN0cmljdGlvbnNGaWx0ZXJzKCksXHJcbiAgICAgICAgdGhpcy5yZW1vdmVQcm9wZXJ0aWVzLCB0aGlzLm9yZGVyLCB0aGlzLmJvZHlSZXF1ZXN0KVxyXG4gICAgICAudGhlbigocmVzcDogT2JzZXJ2YWJsZTxhbnk+KTogdm9pZCA9PiB7XHJcbiAgICAgICAgcmVzcD8uc3Vic2NyaWJlKHtcclxuICAgICAgICAgIG5leHQ6IChyZXN1bHQ6IGFueSk6IHZvaWQgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLmZpbHRlcmVkT3B0aW9ucy5zZXQocmVzdWx0Py5wYXlsb2FkPy5kYXRhID8/IHJlc3VsdD8uZGF0YSk7XHJcbiAgICAgICAgICAgIHRoaXMubG9hZGluZy5zZXQoZmFsc2UpO1xyXG4gICAgICAgICAgfSxcclxuICAgICAgICB9KTtcclxuICAgICAgfSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBEZWZpbmUgZWwgdGV4dG8gcG9yIGVsIHF1ZSBzZSB2YSBhIHJlYWxpemFyIGxhIGLDunNxdWVkYVxyXG4gICAqXHJcbiAgICogQHJldHVybiB7c3RyaW5nfSBUZXh0byBkZSBsYSBiw7pzcXVlZGFcclxuICAgKi9cclxuICBwcml2YXRlIGdldEF1dG9jb21wbGV0ZVNlYXJjaFRleHQoKTogc3RyaW5nIHtcclxuICAgIHRoaXMubG9hZGluZy5zZXQodHJ1ZSk7XHJcblxyXG4gICAgbGV0IHRleHQ6IHN0cmluZyA9ICcnO1xyXG5cclxuICAgIGlmICh0aGlzLmNvbXBvbmVudD8udmFsdWUpIHtcclxuICAgICAgaWYgKHR5cGVvZiB0aGlzLmNvbXBvbmVudC52YWx1ZSA9PT0gJ29iamVjdCcpIHtcclxuICAgICAgICBjb25zdCBjb21wb25lbnRWYWx1ZSA9IHRoaXMuY29tcG9uZW50Py52YWx1ZVt0aGlzLmZpZWxkWzBdXTtcclxuICAgICAgICBpZiAodHlwZW9mIGNvbXBvbmVudFZhbHVlID09PSAnb2JqZWN0Jykge1xyXG4gICAgICAgICAgbGV0IGxhbmc6IHN0cmluZyA9ICdlcyc7XHJcbiAgICAgICAgICBpZiAodGhpcy5maWVsZFsxXSkge1xyXG4gICAgICAgICAgICBsYW5nID0gdGhpcy5maWVsZFsxXTtcclxuICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICB0ZXh0ID0gY29tcG9uZW50VmFsdWVbbGFuZ107XHJcbiAgICAgICAgfVxyXG4gICAgICB9IGVsc2UgaWYgKHR5cGVvZiB0aGlzLmNvbXBvbmVudD8udmFsdWUgPT09ICdzdHJpbmcnKSB7XHJcbiAgICAgICAgdGV4dCA9IHRoaXMuY29tcG9uZW50LnZhbHVlO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIHRleHQ7XHJcbiAgfVxyXG5cclxuICBwcm9wYWdhdGVDaGFuZ2UgPSAoXzogYW55KTogdm9pZCA9PiB7XHJcbiAgfTtcclxuXHJcbiAgcmVnaXN0ZXJPbkNoYW5nZShmbjogKF86IGFueSkgPT4gdm9pZCk6IHZvaWQge1xyXG4gICAgdGhpcy5wcm9wYWdhdGVDaGFuZ2UgPSBmbjtcclxuICB9XHJcblxyXG4gIHJlZ2lzdGVyT25Ub3VjaGVkKCk6IHZvaWQge1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogUmVjaWJlIGVsIHZhbG9yIGRlbCBGb3JtQ29udHJvbFxyXG4gICAqXHJcbiAgICogQHBhcmFtIHZhbHVlIC0gVmFsb3IgZW50cmFkbyBwb3IgRm9ybUNvbnRyb2xcclxuICAgKi9cclxuICB3cml0ZVZhbHVlKHZhbHVlOiBhbnkpOiB2b2lkIHtcclxuICAgIGlmICh2YWx1ZSkge1xyXG4gICAgICB0aGlzLmNvbXBvbmVudC5zZXRWYWx1ZSh2YWx1ZSwge2VtaXRFdmVudDogZmFsc2V9KTtcclxuXHJcbiAgICAgIGlmICh0eXBlb2YgdmFsdWUgPT09ICdvYmplY3QnICYmIHRoaXMudmFsdWVJZCkge1xyXG4gICAgICAgIHRoaXMuc2VsZWN0ZWRFbGVtZW50LnNldCh2YWx1ZT8uaWQpO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRoaXMuc2VsZWN0ZWRFbGVtZW50LnNldCh2YWx1ZSk7XHJcbiAgICAgIH1cclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuc2VsZWN0ZWRFbGVtZW50LnNldChudWxsKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHNldERpc2FibGVkU3RhdGUoaXNEaXNhYmxlZDogYm9vbGVhbik6IHZvaWQge1xyXG4gICAgdGhpcy5kaXNhYmxlZEJ1dHRvbi5zZXQoaXNEaXNhYmxlZCk7XHJcbiAgICBpZiAoaXNEaXNhYmxlZCkge1xyXG4gICAgICB0aGlzLmNvbXBvbmVudC5kaXNhYmxlKCk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLmNvbXBvbmVudC5lbmFibGUoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEZ1bmNpw7NuIHBhcmEgbW9zdHJhciBsb3MgZWxlbWVudG9zIGEgc2VsZWNjaW9uYXJcclxuICAgKlxyXG4gICAqIEBwYXJhbSB2YWx1ZSAtIFZhbG9yIGEgbW9zdHJhclxyXG4gICAqL1xyXG4gIHB1YmxpYyBkaXNwbGF5Rm4gPSAodmFsdWU6IGFueSk6IHN0cmluZyA9PiB7XHJcbiAgICBpZiAodmFsdWUpIHtcclxuICAgICAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ3N0cmluZycpIHtcclxuICAgICAgICByZXR1cm4gdmFsdWU7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGxldCBkaXNwbGF5VGV4dDogc3RyaW5nID0gJyc7XHJcbiAgICAgIGlmICghdGhpcy5kaXNwbGF5T3B0aW9ucykge1xyXG4gICAgICAgIHRoaXMuZGlzcGxheU9wdGlvbnMgPSBHRU5FUkFMX0RJU1BMQVlfT1BUSU9OUztcclxuICAgICAgfVxyXG5cclxuICAgICAgdGhpcy5kaXNwbGF5T3B0aW9ucz8uZmlydGhMYWJlbD8uZm9yRWFjaCgoZmllbGQ6IGFueSk6IHZvaWQgPT4ge1xyXG4gICAgICAgIGlmIChmaWVsZD8udHlwZSA9PT0gJ3BhdGgnKSB7XHJcbiAgICAgICAgICBkaXNwbGF5VGV4dCArPSBVdGlsc1NlcnZpY2UucmVzb2x2ZVByb3BlcnR5QnlQYXRoKHZhbHVlLCBmaWVsZD8ucGF0aCk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIGRpc3BsYXlUZXh0ICs9IGZpZWxkPy5kaXZpZGVyO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcblxyXG4gICAgICByZXR1cm4gZGlzcGxheVRleHQ7XHJcbiAgICB9XHJcbiAgfTtcclxuXHJcbiAgLyoqXHJcbiAgICogQWNjacOzbiBhbCBsaW1waWFyIGVsIHZhbG9yIGRlbCBpbnB1dFxyXG4gICAqXHJcbiAgICogQHBhcmFtIHRyaWdnZXJcclxuICAgKi9cclxuICBwdWJsaWMgY2xlYXIodHJpZ2dlcjogTWF0QXV0b2NvbXBsZXRlVHJpZ2dlcik6IHZvaWQge1xyXG4gICAgdGhpcy5jb21wb25lbnQuc2V0VmFsdWUobnVsbCk7XHJcbiAgICB0aGlzLnNlbGVjdGVkRWxlbWVudC5zZXQobnVsbCk7XHJcbiAgICB0aGlzLlNlbGVjdEVsZW1lbnQuZW1pdChudWxsKTtcclxuICAgIHRoaXMucHJvcGFnYXRlQ2hhbmdlKG51bGwpO1xyXG5cclxuICAgIHRoaXMuX3pvbmUucnVuKCgpOiB2b2lkID0+IHtcclxuICAgICAgc2V0VGltZW91dCgoKTogdm9pZCA9PiB7XHJcbiAgICAgICAgdHJpZ2dlci5vcGVuUGFuZWwoKTtcclxuICAgICAgfSwgMTAwKTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQWNjacOzbiBlbiBlbCBGb2N1cyBkZWwgZWxlbWVudG9cclxuICAgKi9cclxuICBwdWJsaWMgb25Gb2N1cygpOiB2b2lkIHtcclxuICAgIGlmICghdGhpcy5zZWxlY3RlZEVsZW1lbnQoKSkge1xyXG4gICAgICB0aGlzLmdldEF1dG9jb21wbGV0ZUJ5VGV4dEhhbmRsZXIodGhpcy5nZXRBdXRvY29tcGxldGVTZWFyY2hUZXh0KCkpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQWNjacOzbiBhbCBzZWxlY2Npb25hciB1biBlbGVtZW50b1xyXG4gICAqXHJcbiAgICogQHBhcmFtIGl0ZW0gLSBFbGVtZW50byBzZWxlY2Npb25hZG9cclxuICAgKi9cclxuICBwdWJsaWMgb25TZWxlY3RFbGVtZW50KGl0ZW06IGFueSk6IHZvaWQge1xyXG4gICAgdGhpcy53YXNTZWxlY3RlZC5zZXQodHJ1ZSk7XHJcbiAgICB0aGlzLnNlbGVjdGVkRWxlbWVudC5zZXQoaXRlbSk7XHJcbiAgICB0aGlzLlNlbGVjdEVsZW1lbnQuZW1pdChpdGVtKTtcclxuXHJcbiAgICBpZiAodGhpcy52YWx1ZUlkKSB7XHJcbiAgICAgIHRoaXMucHJvcGFnYXRlQ2hhbmdlKHR5cGVvZiBpdGVtID09PSAnb2JqZWN0JyA/IGl0ZW0/LmlkIDogaXRlbSk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLnByb3BhZ2F0ZUNoYW5nZShpdGVtKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgdGhpcy51bnN1YnNjcmliZUFsbCQubmV4dCgpO1xyXG4gICAgdGhpcy51bnN1YnNjcmliZUFsbCQuY29tcGxldGUoKTtcclxuICB9XHJcbn1cclxuIiwiPG1hdC1mb3JtLWZpZWxkIFtmbG9hdExhYmVsXT1cImZsb2F0TGFiZWxcIiBbbmdDbGFzc109XCJ7J3dpdGhvdXQtcGFkZGluZy1ib3R0b20nOiB3aXRob3V0UGFkZGluZ0JvdHRvbX1cIiBjbGFzcz1cInctMTAwXCJcclxuICAgICAgICAgICAgICAgIFthcHBlYXJhbmNlXT1cImFwcGVhcmFuY2VcIiBbY29sb3JdPVwiY29sb3JcIj5cclxuXHJcbiAgPG1hdC1sYWJlbCAqbmdJZj1cInNob3dMYWJlbFwiPnt7bGFiZWwgfCB0cmFuc2xhdGV9fTwvbWF0LWxhYmVsPlxyXG4gIDxtYXQtaWNvbiBtYXRTdWZmaXggKm5nSWY9XCJzaG93U3VmZml4XCI+e3tzdWZmaXhJY29uID8/IFwic2VhcmNoXCJ9fTwvbWF0LWljb24+XHJcbiAgPGlucHV0ICNpbnB1dFRleHQgI3RyaWdnZXI9XCJtYXRBdXRvY29tcGxldGVUcmlnZ2VyXCIgKGZvY3VzKT1cIm9uRm9jdXMoKVwiIFtmb3JtQ29udHJvbF09XCJjb21wb25lbnRcIlxyXG4gICAgICAgICBbbWF0QXV0b2NvbXBsZXRlXT1cImF1dG9jb21wbGV0ZVwiIFtwbGFjZWhvbGRlcl09XCJwbGFjZWhvbGRlciB8IHRyYW5zbGF0ZVwiIGFyaWEtbGFiZWw9XCJhdXRvY29tcGxldGVcIlxyXG4gICAgICAgICBhdXRvY29tcGxldGU9XCJvZmZcIiBtYXRJbnB1dCB0eXBlPVwidGV4dFwiIFtyZXF1aXJlZF09XCJyZXF1aXJlZCgpXCI+XHJcbiAgPGJ1dHRvbiAoY2xpY2spPVwiY2xlYXIodHJpZ2dlcilcIiAqbmdJZj1cIiFsb2FkaW5nKCkgJiYgY29tcG9uZW50Py52YWx1ZVwiIFtkaXNhYmxlZF09XCJkaXNhYmxlZEJ1dHRvbigpXCJcclxuICAgICAgICAgIGFyaWEtbGFiZWw9XCJDbGVhclwiIG1hdC1pY29uLWJ1dHRvbiBtYXRTdWZmaXg+XHJcbiAgICA8bWF0LWljb24+Y2xvc2U8L21hdC1pY29uPlxyXG4gIDwvYnV0dG9uPlxyXG4gIDxidXR0b24gKm5nSWY9XCJsb2FkaW5nKClcIiBhcmlhLWxhYmVsPVwic2VhcmNoXCIgbWF0LWljb24tYnV0dG9uIG1hdFN1ZmZpeD5cclxuICAgIDxtYXQtc3Bpbm5lciBbdmFsdWVdPVwiOTBcIiBjb2xvcj1cImFjY2VudFwiIGRpYW1ldGVyPVwiMjVcIj48L21hdC1zcGlubmVyPlxyXG4gIDwvYnV0dG9uPlxyXG4gIDxtYXQtYXV0b2NvbXBsZXRlICNhdXRvY29tcGxldGU9XCJtYXRBdXRvY29tcGxldGVcIiBbZGlzcGxheVdpdGhdPVwiZGlzcGxheUZuXCI+XHJcbiAgICA8bWF0LW9wdGlvbiAqbmdGb3I9XCJsZXQgb3B0aW9uIG9mIGZpbHRlcmVkT3B0aW9ucygpXCIgW3ZhbHVlXT1cIm9wdGlvblwiIChvblNlbGVjdGlvbkNoYW5nZSk9XCJvblNlbGVjdEVsZW1lbnQob3B0aW9uKVwiPlxyXG5cclxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFkaXNwbGF5T3B0aW9ucyAmJiAhZGV0YWlsc1RlbXBsYXRlXCI+XHJcbiAgICAgICAge3sgb3B0aW9uPy5uYW1lIHwgaTE4bkZpZWxkOiB0cmFuc2xhdGVTZXJ2aWNlLmN1cnJlbnRMYW5nIH19XHJcbiAgICAgIDwvbmctY29udGFpbmVyPlxyXG5cclxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFkZXRhaWxzVGVtcGxhdGVcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiZGlzcGxheS1vcHRpb25zXCI+XHJcbiAgICAgICAgICA8c3BhbiBbbmdTdHlsZV09XCJ7J2xpbmUtaGVpZ2h0JzogZGlzcGxheU9wdGlvbnM/LnNlY29uZExhYmVsID8gJzE2cHgnIDogJyd9XCI+XHJcbiAgICAgICAgICAgIHt7b3B0aW9uIHwgcmVzb2x2ZVByb3BlcnR5UGF0aDpkaXNwbGF5T3B0aW9ucy5maXJ0aExhYmVsIHwgaTE4bkZpZWxkOiB0cmFuc2xhdGVTZXJ2aWNlLmN1cnJlbnRMYW5nfX1cclxuICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgIDxzcGFuICpuZ0lmPVwiZGlzcGxheU9wdGlvbnM/LnNlY29uZExhYmVsXCIgY2xhc3M9XCJtYXQtY2FwdGlvblwiPlxyXG4gICAgICAgICAgICB7e29wdGlvbiB8IHJlc29sdmVQcm9wZXJ0eVBhdGg6IGRpc3BsYXlPcHRpb25zLnNlY29uZExhYmVsIHwgaTE4bkZpZWxkOiB0cmFuc2xhdGVTZXJ2aWNlLmN1cnJlbnRMYW5nfX1cclxuICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9uZy1jb250YWluZXI+XHJcblxyXG4gICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiZGV0YWlsc1RlbXBsYXRlXCI+XHJcbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImRldGFpbHNUZW1wbGF0ZTtjb250ZXh0OnskaW1wbGljaXQ6IG9wdGlvbiB9XCI+PC9uZy1jb250YWluZXI+XHJcbiAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgPC9tYXQtb3B0aW9uPlxyXG4gIDwvbWF0LWF1dG9jb21wbGV0ZT5cclxuXHJcbiAgPG1hdC1lcnJvciAqbmdJZj1cImNvbXBvbmVudC5oYXNFcnJvcigncmVxdWlyZWQnKVwiPlxyXG4gICAge3snRXN0ZSBjYW1wbyBlcyByZXF1ZXJpZG8uJyB8IHRyYW5zbGF0ZX19XHJcbiAgPC9tYXQtZXJyb3I+XHJcblxyXG4gIDxtYXQtZXJyb3IgKm5nSWY9XCJjb21wb25lbnQuaGFzRXJyb3IoJ2ludmFsaWRTZWxlY3Rpb24nKVwiPlxyXG4gICAge3snRGViZSBzZWxlY2Npb25hciB1biBlbGVtZW50by4nIHwgdHJhbnNsYXRlfX1cclxuICA8L21hdC1lcnJvcj5cclxuXHJcbiAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgdmFsaWRhdG9yIG9mIHZhbGlkYXRvcnMoKVwiPlxyXG4gICAgPG1hdC1lcnJvciAqbmdJZj1cImNvbXBvbmVudC5oYXNFcnJvcih2YWxpZGF0b3Iua2V5KVwiPlxyXG4gICAgICB7e3ZhbGlkYXRvci5tZXNzYWdlIHwgdHJhbnNsYXRlfX1cclxuICAgIDwvbWF0LWVycm9yPlxyXG4gIDwvbmctY29udGFpbmVyPlxyXG48L21hdC1mb3JtLWZpZWxkPlxyXG4iXX0=
401
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3VhY2hvcy1nZW5lcmFsLWF1dG9jb21wbGV0ZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9ndWFjaG9zLWdlbmVyYWwtYXV0b2NvbXBsZXRlL3NyYy9saWIvZ3VhY2hvcy1nZW5lcmFsLWF1dG9jb21wbGV0ZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi9wcm9qZWN0cy9ndWFjaG9zLWdlbmVyYWwtYXV0b2NvbXBsZXRlL3NyYy9saWIvZ3VhY2hvcy1nZW5lcmFsLWF1dG9jb21wbGV0ZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxVQUFVLEVBQ1YsWUFBWSxFQUNaLFVBQVUsRUFDVixLQUFLLEVBQ0wsTUFBTSxFQUVOLE1BQU0sRUFDTixNQUFNLEVBQ04sV0FBVyxFQUNYLFNBQVMsRUFFVixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBR0wsaUJBQWlCLEVBQ2pCLG1CQUFtQixFQUNuQixrQkFBa0IsRUFFbEIsVUFBVSxFQUNYLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEIsT0FBTyxFQUFFLHFCQUFxQixFQUEwQixNQUFNLGdDQUFnQyxDQUFDO0FBQy9GLE9BQU8sRUFHTCxrQkFBa0IsRUFFbkIsTUFBTSw4QkFBOEIsQ0FBQztBQUN0QyxPQUFPLEVBQUUsZUFBZSxFQUFFLGdCQUFnQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDeEUsT0FBTyxFQUFFLFlBQVksRUFBYyxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3BFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNwRixPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDekQsT0FBTyxFQUFFLGVB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XG4gIENvbXBvbmVudCxcclxuICBFbGVtZW50UmVmLFxyXG4gIEV2ZW50RW1pdHRlcixcclxuICBmb3J3YXJkUmVmLFxyXG4gIElucHV0LFxyXG4gIE5nWm9uZSxcclxuICBPbkRlc3Ryb3ksXHJcbiAgT3V0cHV0LFxyXG4gIHNpZ25hbCxcclxuICBUZW1wbGF0ZVJlZixcclxuICBWaWV3Q2hpbGQsXHJcbiAgV3JpdGFibGVTaWduYWxcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHtcclxuICBBYnN0cmFjdENvbnRyb2wsXHJcbiAgQ29udHJvbFZhbHVlQWNjZXNzb3IsXHJcbiAgTkdfVkFMVUVfQUNDRVNTT1IsXHJcbiAgUmVhY3RpdmVGb3Jtc01vZHVsZSxcclxuICBVbnR5cGVkRm9ybUNvbnRyb2wsXHJcbiAgVmFsaWRhdG9yRm4sXHJcbiAgVmFsaWRhdG9yc1xyXG59IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgTWF0QXV0b2NvbXBsZXRlTW9kdWxlLCBNYXRBdXRvY29tcGxldGVUcmlnZ2VyIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvYXV0b2NvbXBsZXRlJztcclxuaW1wb3J0IHtcclxuICBGbG9hdExhYmVsVHlwZSxcclxuICBNYXRGb3JtRmllbGRBcHBlYXJhbmNlLFxyXG4gIE1hdEZvcm1GaWVsZE1vZHVsZSxcclxuICBTdWJzY3JpcHRTaXppbmdcclxufSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9mb3JtLWZpZWxkJztcclxuaW1wb3J0IHsgVHJhbnNsYXRlTW9kdWxlLCBUcmFuc2xhdGVTZXJ2aWNlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XHJcbmltcG9ydCB7IGRlYm91bmNlVGltZSwgT2JzZXJ2YWJsZSwgU3ViamVjdCwgdGFrZVVudGlsIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IE5nQ2xhc3MsIE5nRm9yT2YsIE5nSWYsIE5nU3R5bGUsIE5nVGVtcGxhdGVPdXRsZXQgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBNYXRJbnB1dE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2lucHV0JztcclxuaW1wb3J0IHsgTWF0QnV0dG9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvYnV0dG9uJztcclxuaW1wb3J0IHsgTWF0SWNvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2ljb24nO1xyXG5pbXBvcnQgeyBNYXRQcm9ncmVzc1NwaW5uZXJNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9wcm9ncmVzcy1zcGlubmVyJztcclxuaW1wb3J0IHsgVGhlbWVQYWxldHRlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvY29yZSc7XHJcblxyXG5pbXBvcnQgeyBHRU5FUkFMX0RJU1BMQVlfT1BUSU9OUyB9IGZyb20gJy4uL3V0aWxzL2NvbnN0YW50cy9jb250YWN0cyc7XHJcbmltcG9ydCB7IEF1dG9jb21wbGV0ZVNlcnZpY2UgfSBmcm9tICcuLi91dGlscy9zZXJ2aWNlcy9hdXRvY29tcGxldGUuc2VydmljZSc7XHJcbmltcG9ydCB7IFV0aWxzU2VydmljZSB9IGZyb20gJy4uL3V0aWxzL3NlcnZpY2VzL3V0aWxzLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBBcGlGb3JtRGF0YSwgRGlzcGxheU9wdGlvbiwgUmVzdHJpY3Rpb25GaWx0ZXIgfSBmcm9tICcuLi91dGlscy9pbnRlcmZhY2VzL2ludGVyZmFjZXMnO1xyXG5pbXBvcnQgeyBQaXBlc01vZHVsZSB9IGZyb20gJy4uL3V0aWxzL3BpcGVzL3BpcGVzLm1vZHVsZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2d1YWppcml0b3MtZ2VuZXJhbC1hdXRvY29tcGxldGUnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9ndWFjaG9zLWdlbmVyYWwtYXV0b2NvbXBsZXRlLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9ndWFjaG9zLWdlbmVyYWwtYXV0b2NvbXBsZXRlLmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXHJcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcclxuICBpbXBvcnRzOiBbXHJcbiAgICBNYXRGb3JtRmllbGRNb2R1bGUsXHJcbiAgICBOZ0NsYXNzLFxyXG4gICAgVHJhbnNsYXRlTW9kdWxlLFxyXG4gICAgTWF0QXV0b2NvbXBsZXRlTW9kdWxlLFxyXG4gICAgTWF0SW5wdXRNb2R1bGUsXHJcbiAgICBSZWFjdGl2ZUZvcm1zTW9kdWxlLFxyXG4gICAgTWF0QnV0dG9uTW9kdWxlLFxyXG4gICAgTWF0SWNvbk1vZHVsZSxcclxuICAgIE1hdFByb2dyZXNzU3Bpbm5lck1vZHVsZSxcclxuICAgIE5nSWYsXHJcbiAgICBOZ0Zvck9mLFxyXG4gICAgTmdTdHlsZSxcclxuICAgIFBpcGVzTW9kdWxlLFxyXG4gICAgTmdUZW1wbGF0ZU91dGxldFxyXG4gIF0sXHJcbiAgcHJvdmlkZXJzOiBbXHJcbiAgICB7XHJcbiAgICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxyXG4gICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBHdWFqaXJpdG9zR2VuZXJhbEF1dG9jb21wbGV0ZSksXHJcbiAgICAgIG11bHRpOiB0cnVlXHJcbiAgICB9XHJcbiAgXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgR3VhamlyaXRvc0dlbmVyYWxBdXRvY29tcGxldGUgaW1wbGVtZW50cyBPbkRlc3Ryb3ksIENvbnRyb2xWYWx1ZUFjY2Vzc29yIHtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIF9hdXRvY29tcGxldGVTZXJ2aWNlOiBBdXRvY29tcGxldGVTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBfem9uZTogTmdab25lLFxyXG4gICAgcHVibGljIHRyYW5zbGF0ZVNlcnZpY2U6IFRyYW5zbGF0ZVNlcnZpY2VcclxuICApIHtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgd2FzU2VsZWN0ZWQ6IFdyaXRhYmxlU2lnbmFsPGJvb2xlYW4+ID0gc2lnbmFsKGZhbHNlKTtcclxuICBwcml2YXRlIGZpcnN0Q2FsbDogV3JpdGFibGVTaWduYWw8Ym9vbGVhbj4gPSBzaWduYWwodHJ1ZSk7XHJcbiAgcHJpdmF0ZSBjbGVhckRhdGEkOiBTdWJqZWN0PHZvaWQ+O1xyXG4gIHByaXZhdGUgdW5zdWJzY3JpYmVBbGwkOiBTdWJqZWN0PHZvaWQ+ID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcclxuICBwcml2YXRlIGRvRm9jdXNTdWJqZWN0JDogU3ViamVjdDx2b2lkPjtcclxuICBwcml2YXRlIHNlbGVjdGVkRWxlbWVudDogV3JpdGFibGVTaWduYWw8YW55PiA9IHNpZ25hbChudWxsKTtcclxuICBwcml2YXRlIF91cmw6IFdyaXRhYmxlU2lnbmFsPHN0cmluZz4gPSBzaWduYWwobnVsbCk7XHJcbiAgcHJpdmF0ZSByZXN0cmljdGlvbnNGaWx0ZXJzOiBXcml0YWJsZVNpZ25hbDxSZXN0cmljdGlvbkZpbHRlcltdPiA9IHNpZ25hbChbXSk7XHJcblxyXG4gIHB1YmxpYyBkaXNhYmxlZEJ1dHRvbjogV3JpdGFibGVTaWduYWw8Ym9vbGVhbj4gPSBzaWduYWwoZmFsc2UpO1xyXG4gIHB1YmxpYyBsb2FkaW5nOiBXcml0YWJsZVNpZ25hbDxib29sZWFuPiA9IHNpZ25hbChmYWxzZSk7XHJcbiAgcHVibGljIHJlcXVpcmVkOiBXcml0YWJsZVNpZ25hbDxib29sZWFuPiA9IHNpZ25hbChmYWxzZSk7XHJcbiAgcHVibGljIGZpbHRlcmVkT3B0aW9uczogV3JpdGFibGVTaWduYWw8YW55W10+ID0gc2lnbmFsKFtdKTtcclxuICBwdWJsaWMgY29tcG9uZW50OiBVbnR5cGVkRm9ybUNvbnRyb2wgPSBuZXcgVW50eXBlZEZvcm1Db250cm9sKHsgdmFsdWU6IG51bGwsIGRpc2FibGVkOiBmYWxzZSB9KTtcclxuXHJcbiAgQFZpZXdDaGlsZCgnaW5wdXRUZXh0JywgeyBzdGF0aWM6IHRydWUgfSkgaW5wdXRUZXh0OiBFbGVtZW50UmVmO1xyXG4gIC8qKlxyXG4gICAqIFBvc3NpYmxlIHZhbHVlcyAnbmV2ZXInLCAnYXV0bycgb3IgJ2Fsd2F5cydcclxuICAgKi9cclxuICBASW5wdXQoKSBmbG9hdExhYmVsOiBGbG9hdExhYmVsVHlwZSA9ICdhdXRvJztcclxuICBASW5wdXQoKSBib2R5UmVxdWVzdDogQXBpRm9ybURhdGE7XHJcbiAgQElucHV0KCkgZGVib3VuY2VUaW1lVmFsdWU6IG51bWJlciA9IDMwMDtcclxuICBASW5wdXQoKSBkZXRhaWxzVGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT47XHJcbiAgQElucHV0KCkgbGFiZWw6IHN0cmluZyA9ICdTZWxlY2Npb25lJztcclxuICBASW5wdXQoKSBzaG93TGFiZWw6IGJvb2xlYW4gPSB0cnVlO1xyXG4gIEBJbnB1dCgpIGFwcGVhcmFuY2U6IE1hdEZvcm1GaWVsZEFwcGVhcmFuY2UgPSAnb3V0bGluZSc7XHJcbiAgQElucHV0KCkgY29sb3I6IFRoZW1lUGFsZXR0ZSA9ICdhY2NlbnQnO1xyXG4gIEBJbnB1dCgpIHN1YnNjcmlwdFNpemluZzogU3Vic2NyaXB0U2l6aW5nID0gJ2R5bmFtaWMnO1xyXG4gIEBJbnB1dCgpIHBsYWNlaG9sZGVyOiBzdHJpbmcgPSAnU2VsZWNjaW9uZSB1biBlbGVtZW50byc7XHJcbiAgQElucHV0KCkgZmllbGQ6IHN0cmluZ1tdID0gWyduYW1lJ107XHJcbiAgQElucHV0KCkgZmlsdGVyU3RyaW5nOiBzdHJpbmcgPSAnZmlsdGVyWyRhbmRdW25hbWVdWyRsaWtlXSc7XHJcbiAgQElucHV0KCkgZGlzcGxheU9wdGlvbnM6IERpc3BsYXlPcHRpb24gPSBHRU5FUkFMX0RJU1BMQVlfT1BUSU9OUztcclxuICBASW5wdXQoKSB3aXRob3V0UGFkZGluZ0JvdHRvbTogYm9vbGVhbiA9IHRydWU7XHJcbiAgQElucHV0KCkgdmFsdWVJZDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIHNob3dTdWZmaXg6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBASW5wdXQoKSBvcmRlcjogc3RyaW5nO1xyXG4gIEBJbnB1dCgpIHN1ZmZpeEljb246IHN0cmluZyA9ICdzZWFyY2gnO1xyXG4gIEBJbnB1dCgpIHJlbW92ZVByb3BlcnRpZXM6IHN0cmluZ1tdID0gW107XHJcbiAgQE91dHB1dCgpIFNlbGVjdEVsZW1lbnQ6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XHJcblxyXG4gIEBJbnB1dCgpIHNldCB1cmwoZGF0YTogc3RyaW5nKSB7XHJcbiAgICBpZiAoZGF0YSkge1xyXG4gICAgICB0aGlzLl91cmwuc2V0KGRhdGEpO1xyXG4gICAgICB0aGlzLnN1YnNjcmliZUNvbXBvbmVudENoYW5nZXMoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIEBJbnB1dCgpIHNldCBjbGVhckRhdGEodmFsdWU6IFN1YmplY3Q8dm9pZD4pIHtcclxuICAgIHRoaXMuY2xlYXJEYXRhJCA9IHZhbHVlO1xyXG4gICAgaWYgKHRoaXMuY2xlYXJEYXRhJCkge1xyXG4gICAgICB0aGlzLmNsZWFyRGF0YSRcclxuICAgICAgICAucGlwZSh0YWtlVW50aWwodGhpcy51bnN1YnNjcmliZUFsbCQpKVxyXG4gICAgICAgIC5zdWJzY3JpYmUoe1xyXG4gICAgICAgICAgbmV4dDogKCk6IHZvaWQgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLmNvbXBvbmVudC5zZXRWYWx1ZShudWxsLCB7IGVtaXRFdmVudDogZmFsc2UgfSk7XHJcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRFbGVtZW50LnNldChudWxsKTtcclxuICAgICAgICAgICAgdGhpcy5TZWxlY3RFbGVtZW50LmVtaXQobnVsbCk7XHJcbiAgICAgICAgICAgIHRoaXMuZmlsdGVyZWRPcHRpb25zLnNldChbXSk7XHJcbiAgICAgICAgICAgIHRoaXMucHJvcGFnYXRlQ2hhbmdlKG51bGwpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgQElucHV0KCkgc2V0IGluaXRpYWxWYWx1ZSh2YWx1ZTogYW55KSB7XHJcbiAgICB0aGlzLmNvbXBvbmVudC5zZXRWYWx1ZSh2YWx1ZSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBBw7FhZGUgbyBlbGltaW5hIHJlc3RyaWNjaW9uZXMgcGFyYSBsYSBiw7pzcXVlZGFcclxuICAgKlxyXG4gICAqIEBwYXJhbSByZXN0cmljdGlvbnMgLSBSZXN0cmljY2lvbmVzIHBhcmEgbGEgYsO6c3F1ZWRhXHJcbiAgICovXHJcbiAgQElucHV0KCkgc2V0IHJlc3RyaWN0aW9ucyhyZXN0cmljdGlvbnM6IFJlc3RyaWN0aW9uRmlsdGVyW10pIHtcclxuICAgIGlmIChyZXN0cmljdGlvbnMpIHtcclxuICAgICAgdGhpcy5yZXN0cmljdGlvbnNGaWx0ZXJzLnNldChyZXN0cmljdGlvbnMpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5yZXN0cmljdGlvbnNGaWx0ZXJzLnNldChbXSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBBw7FhZGUgbyBlbGltaW5hIGxhIHZhbGlkYWNpw7NuIGRlIHF1ZSBlbCBjYW1wbyBzZWEgcmVxdWVyaWRvXHJcbiAgICpcclxuICAgKiBAcGFyYW0gcmVxdWlyZWQgLSBEZWZpbmUgc2kgZXMgcmVxdWVyaWRvIG8gbm9cclxuICAgKi9cclxuICBASW5wdXQoKSBzZXQgaXNSZXF1aXJlZChyZXF1aXJlZDogYm9vbGVhbikge1xyXG4gICAgdGhpcy5yZXF1aXJlZC5zZXQocmVxdWlyZWQpO1xyXG5cclxuICAgIGlmIChyZXF1aXJlZCkge1xyXG4gICAgICB0aGlzLmNvbXBvbmVudC5zZXRWYWxpZGF0b3JzKFtWYWxpZGF0b3JzLnJlcXVpcmVkLCBHdWFqaXJpdG9zR2VuZXJhbEF1dG9jb21wbGV0ZS5hdXRvY29tcGxldGVWYWxpZGF0b3JdKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuY29tcG9uZW50LmNsZWFyVmFsaWRhdG9ycygpO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuY29tcG9uZW50LnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIERlZmluZSBzaSB2YW1vcyBhIHJlYWxpemFyIHVuYSBiw7pzcXVlZGEgYWwgZWxlbWVudG8gZXN0YXIgZW4gZWwgZm9jdXMgZGUgbGEgYXBsaWNhY2nDs25cclxuICAgKlxyXG4gICAqIEBwYXJhbSBmb2N1c1N1YmplY3QgLSBPYnNlcnZhYmxlIHBhcmEgbGEgc3Vic2NyaXBjacOzbiBhbCBldmVudG8gRm9jdXNcclxuICAgKi9cclxuICBASW5wdXQoKSBzZXQgZG9Gb2N1cyhmb2N1c1N1YmplY3Q6IFN1YmplY3Q8dm9pZD4pIHtcclxuICAgIHRoaXMuZG9Gb2N1c1N1YmplY3QkID0gZm9jdXNTdWJqZWN0O1xyXG5cclxuICAgIGlmICh0aGlzLmRvRm9jdXNTdWJqZWN0JCkge1xyXG4gICAgICB0aGlzLmRvRm9jdXNTdWJqZWN0JFxyXG4gICAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLnVuc3Vic2NyaWJlQWxsJCkpXHJcbiAgICAgICAgLnN1YnNjcmliZSh7XHJcbiAgICAgICAgICBuZXh0OiAoKTogdm9pZCA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMuX3pvbmUucnVuKCgpOiB2b2lkID0+IHtcclxuICAgICAgICAgICAgICBzZXRUaW1lb3V0KCgpOiB2b2lkID0+IHtcclxuICAgICAgICAgICAgICAgIHRoaXMuaW5wdXRUZXh0Py5uYXRpdmVFbGVtZW50Py5mb2N1cygpO1xyXG4gICAgICAgICAgICAgIH0sIDUwMCk7XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogVmFsaWRhY2nDs24gY3VzdG9taXphZGEgcGFyYSBsYSBzZWxlY2Npw7NuIGRlIGVsZW1lbnRvc1xyXG4gICAqL1xyXG4gIHByaXZhdGUgc3RhdGljIGF1dG9jb21wbGV0ZVZhbGlkYXRvcigpOiBWYWxpZGF0b3JGbiB7XHJcbiAgICByZXR1cm4gKGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbCk6IHsgW2tleTogc3RyaW5nXTogYW55IH0gfCBudWxsID0+IHtcclxuICAgICAgaWYgKGNvbnRyb2w/LnZhbHVlPy5jb25zdHJ1Y3RvciAhPT0gT2JqZWN0IHx8ICFjb250cm9sPy52YWx1ZT8uaWQpIHtcclxuICAgICAgICByZXR1cm4geyBpbnZhbGlkU2VsZWN0aW9uOiB0cnVlIH07XHJcbiAgICAgIH1cclxuICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICB9O1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogU3Vic2NyaXBjacOzbiBhIGxvcyBjYW1iaW9zIGRlbCBpbnB1dCBkZSBiw7pzcXVlZGFcclxuICAgKi9cclxuICBwcml2YXRlIHN1YnNjcmliZUNvbXBvbmVudENoYW5nZXMoKTogdm9pZCB7XHJcbiAgICB0aGlzLmNvbXBvbmVudD8udmFsdWVDaGFuZ2VzXHJcbiAgICAgID8ucGlwZShkZWJvdW5jZVRpbWUodGhpcy5kZWJvdW5jZVRpbWVWYWx1ZSksIHRha2VVbnRpbCh0aGlzLnVuc3Vic2NyaWJlQWxsJCkpXHJcbiAgICAgID8uc3Vic2NyaWJlKHtcclxuICAgICAgICBuZXh0OiAoKTogdm9pZCA9PiB7XHJcbiAgICAgICAgICBpZiAoIXRoaXMuZmlyc3RDYWxsKCkgJiYgIXRoaXMud2FzU2VsZWN0ZWQoKSkge1xyXG4gICAgICAgICAgICB0aGlzLmdldEF1dG9jb21wbGV0ZUJ5VGV4dEhhbmRsZXIodGhpcy5nZXRBdXRvY29tcGxldGVTZWFyY2hUZXh0KCkpO1xyXG4gICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgdGhpcy5maXJzdENhbGwuc2V0KGZhbHNlKTtcclxuICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICB0aGlzLndhc1NlbGVjdGVkLnNldChmYWxzZSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIELDunNxdWVkYSBkZSBsb3MgZWxlbWVudG9zIGEgbW9zdHJhciBlbiBlbCBjb21wb25lbnRlIGRlIGF1dG9jb21wbGV0YW1pZW50b1xyXG4gICAqXHJcbiAgICogQHBhcmFtIHRleHQgLSBUZXh0byBhIGJ1c2NhclxyXG4gICAqL1xyXG4gIHByaXZhdGUgZ2V0QXV0b2NvbXBsZXRlQnlUZXh0SGFuZGxlcih0ZXh0Pzogc3RyaW5nKTogdm9pZCB7XHJcbiAgICB0aGlzLl9hdXRvY29tcGxldGVTZXJ2aWNlXHJcbiAgICAgIC5nZXRBdXRvY29tcGxldGVCeVRleHQodGhpcy5fdXJsKCksIHRleHQsIHRoaXMuZmlsdGVyU3RyaW5nLCB0aGlzLnJlc3RyaWN0aW9uc0ZpbHRlcnMoKSxcclxuICAgICAgICB0aGlzLnJlbW92ZVByb3BlcnRpZXMsIHRoaXMub3JkZXIsIHRoaXMuYm9keVJlcXVlc3QpXHJcbiAgICAgIC50aGVuKChyZXNwOiBPYnNlcnZhYmxlPGFueT4pOiB2b2lkID0+IHtcclxuICAgICAgICByZXNwPy5zdWJzY3JpYmUoe1xyXG4gICAgICAgICAgbmV4dDogKHJlc3VsdDogYW55KTogdm9pZCA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMuZmlsdGVyZWRPcHRpb25zLnNldChyZXN1bHQ/LnBheWxvYWQ/LmRhdGEgPz8gcmVzdWx0Py5kYXRhKTtcclxuICAgICAgICAgICAgdGhpcy5sb2FkaW5nLnNldChmYWxzZSk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogRGVmaW5lIGVsIHRleHRvIHBvciBlbCBxdWUgc2UgdmEgYSByZWFsaXphciBsYSBiw7pzcXVlZGFcclxuICAgKlxyXG4gICAqIEByZXR1cm4ge3N0cmluZ30gVGV4dG8gZGUgbGEgYsO6c3F1ZWRhXHJcbiAgICovXHJcbiAgcHJpdmF0ZSBnZXRBdXRvY29tcGxldGVTZWFyY2hUZXh0KCk6IHN0cmluZyB7XHJcbiAgICB0aGlzLmxvYWRpbmcuc2V0KHRydWUpO1xyXG5cclxuICAgIGxldCB0ZXh0OiBzdHJpbmcgPSAnJztcclxuXHJcbiAgICBpZiAodGhpcy5jb21wb25lbnQ/LnZhbHVlKSB7XHJcbiAgICAgIGlmICh0eXBlb2YgdGhpcy5jb21wb25lbnQudmFsdWUgPT09ICdvYmplY3QnKSB7XHJcbiAgICAgICAgY29uc3QgY29tcG9uZW50VmFsdWUgPSB0aGlzLmNvbXBvbmVudD8udmFsdWVbdGhpcy5maWVsZFswXV07XHJcbiAgICAgICAgaWYgKHR5cGVvZiBjb21wb25lbnRWYWx1ZSA9PT0gJ29iamVjdCcpIHtcclxuICAgICAgICAgIGxldCBsYW5nOiBzdHJpbmcgPSAnZXMnO1xyXG4gICAgICAgICAgaWYgKHRoaXMuZmllbGRbMV0pIHtcclxuICAgICAgICAgICAgbGFuZyA9IHRoaXMuZmllbGRbMV07XHJcbiAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgdGV4dCA9IGNvbXBvbmVudFZhbHVlW2xhbmddO1xyXG4gICAgICAgIH1cclxuICAgICAgfSBlbHNlIGlmICh0eXBlb2YgdGhpcy5jb21wb25lbnQ/LnZhbHVlID09PSAnc3RyaW5nJykge1xyXG4gICAgICAgIHRleHQgPSB0aGlzLmNvbXBvbmVudC52YWx1ZTtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiB0ZXh0O1xyXG4gIH1cclxuXHJcbiAgcHJvcGFnYXRlQ2hhbmdlID0gKF86IGFueSk6IHZvaWQgPT4ge1xyXG4gIH07XHJcblxyXG4gIHJlZ2lzdGVyT25DaGFuZ2UoZm46IChfOiBhbnkpID0+IHZvaWQpOiB2b2lkIHtcclxuICAgIHRoaXMucHJvcGFnYXRlQ2hhbmdlID0gZm47XHJcbiAgfVxyXG5cclxuICByZWdpc3Rlck9uVG91Y2hlZCgpOiB2b2lkIHtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFJlY2liZSBlbCB2YWxvciBkZWwgRm9ybUNvbnRyb2xcclxuICAgKlxyXG4gICAqIEBwYXJhbSB2YWx1ZSAtIFZhbG9yIGVudHJhZG8gcG9yIEZvcm1Db250cm9sXHJcbiAgICovXHJcbiAgd3JpdGVWYWx1ZSh2YWx1ZTogYW55KTogdm9pZCB7XHJcbiAgICBpZiAodmFsdWUpIHtcclxuICAgICAgdGhpcy5jb21wb25lbnQuc2V0VmFsdWUodmFsdWUsIHsgZW1pdEV2ZW50OiBmYWxzZSB9KTtcclxuXHJcbiAgICAgIGlmICh0eXBlb2YgdmFsdWUgPT09ICdvYmplY3QnICYmIHRoaXMudmFsdWVJZCkge1xyXG4gICAgICAgIHRoaXMuc2VsZWN0ZWRFbGVtZW50LnNldCh2YWx1ZT8uaWQpO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRoaXMuc2VsZWN0ZWRFbGVtZW50LnNldCh2YWx1ZSk7XHJcbiAgICAgIH1cclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuc2VsZWN0ZWRFbGVtZW50LnNldChudWxsKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHNldERpc2FibGVkU3RhdGUoaXNEaXNhYmxlZDogYm9vbGVhbikge1xyXG4gICAgdGhpcy5kaXNhYmxlZEJ1dHRvbi5zZXQoaXNEaXNhYmxlZCk7XHJcbiAgICBpZiAoaXNEaXNhYmxlZCkge1xyXG4gICAgICB0aGlzLmNvbXBvbmVudC5kaXNhYmxlKCk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLmNvbXBvbmVudC5lbmFibGUoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEZ1bmNpw7NuIHBhcmEgbW9zdHJhciBsb3MgZWxlbWVudG9zIGEgc2VsZWNjaW9uYXJcclxuICAgKlxyXG4gICAqIEBwYXJhbSB2YWx1ZSAtIFZhbG9yIGEgbW9zdHJhclxyXG4gICAqL1xyXG4gIHB1YmxpYyBkaXNwbGF5Rm4gPSAodmFsdWU6IGFueSk6IHN0cmluZyA9PiB7XHJcbiAgICBpZiAodmFsdWUpIHtcclxuICAgICAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ3N0cmluZycpIHtcclxuICAgICAgICByZXR1cm4gdmFsdWU7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGxldCBkaXNwbGF5VGV4dDogc3RyaW5nID0gJyc7XHJcbiAgICAgIGlmICghdGhpcy5kaXNwbGF5T3B0aW9ucykge1xyXG4gICAgICAgIHRoaXMuZGlzcGxheU9wdGlvbnMgPSBHRU5FUkFMX0RJU1BMQVlfT1BUSU9OUztcclxuICAgICAgfVxyXG5cclxuICAgICAgdGhpcy5kaXNwbGF5T3B0aW9ucz8uZmlydGhMYWJlbD8uZm9yRWFjaCgoZmllbGQ6IGFueSk6IHZvaWQgPT4ge1xyXG4gICAgICAgIGlmIChmaWVsZD8udHlwZSA9PT0gJ3BhdGgnKSB7XHJcbiAgICAgICAgICBkaXNwbGF5VGV4dCArPSBVdGlsc1NlcnZpY2UucmVzb2x2ZVByb3BlcnR5QnlQYXRoKHZhbHVlLCBmaWVsZD8ucGF0aCk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIGRpc3BsYXlUZXh0ICs9IGZpZWxkPy5kaXZpZGVyO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcblxyXG4gICAgICByZXR1cm4gZGlzcGxheVRleHQ7XHJcbiAgICB9XHJcbiAgfTtcclxuXHJcbiAgLyoqXHJcbiAgICogQWNjacOzbiBhbCBsaW1waWFyIGVsIHZhbG9yIGRlbCBpbnB1dFxyXG4gICAqXHJcbiAgICogQHBhcmFtIHRyaWdnZXJcclxuICAgKi9cclxuICBwdWJsaWMgY2xlYXIodHJpZ2dlcjogTWF0QXV0b2NvbXBsZXRlVHJpZ2dlcik6IHZvaWQge1xyXG4gICAgdGhpcy5jb21wb25lbnQuc2V0VmFsdWUobnVsbCk7XHJcbiAgICB0aGlzLnNlbGVjdGVkRWxlbWVudC5zZXQobnVsbCk7XHJcbiAgICB0aGlzLlNlbGVjdEVsZW1lbnQuZW1pdChudWxsKTtcclxuICAgIHRoaXMucHJvcGFnYXRlQ2hhbmdlKG51bGwpO1xyXG5cclxuICAgIHRoaXMuX3pvbmUucnVuKCgpOiB2b2lkID0+IHtcclxuICAgICAgc2V0VGltZW91dCgoKTogdm9pZCA9PiB7XHJcbiAgICAgICAgdHJpZ2dlci5vcGVuUGFuZWwoKTtcclxuICAgICAgfSwgMTAwKTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQWNjacOzbiBlbiBlbCBGb2N1cyBkZWwgZWxlbWVudG9cclxuICAgKi9cclxuICBwdWJsaWMgb25Gb2N1cygpOiB2b2lkIHtcclxuICAgIGlmICghdGhpcy5zZWxlY3RlZEVsZW1lbnQoKSkge1xyXG4gICAgICB0aGlzLmdldEF1dG9jb21wbGV0ZUJ5VGV4dEhhbmRsZXIodGhpcy5nZXRBdXRvY29tcGxldGVTZWFyY2hUZXh0KCkpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIG9wdGlvblNlbGVjdGVkKCRldmVudDogYW55KTogdm9pZCB7XHJcbiAgICBpZiAoJGV2ZW50Py5vcHRpb24/LnZhbHVlKSB7XHJcbiAgICAgIHRoaXMud2FzU2VsZWN0ZWQuc2V0KHRydWUpO1xyXG4gICAgICB0aGlzLnNlbGVjdGVkRWxlbWVudC5zZXQoJGV2ZW50Lm9wdGlvbi52YWx1ZSk7XHJcbiAgICAgIHRoaXMuU2VsZWN0RWxlbWVudC5lbWl0KCRldmVudC5vcHRpb24udmFsdWUpO1xyXG5cclxuICAgICAgaWYgKHRoaXMudmFsdWVJZCkge1xyXG4gICAgICAgIHRoaXMucHJvcGFnYXRlQ2hhbmdlKHR5cGVvZiAkZXZlbnQub3B0aW9uLnZhbHVlID09PSAnb2JqZWN0JyA/ICRldmVudC5vcHRpb24udmFsdWU/LmlkIDogJGV2ZW50Lm9wdGlvbi52YWx1ZSk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGhpcy5wcm9wYWdhdGVDaGFuZ2UoJGV2ZW50Lm9wdGlvbi52YWx1ZSk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgdGhpcy51bnN1YnNjcmliZUFsbCQubmV4dCgpO1xyXG4gICAgdGhpcy51bnN1YnNjcmliZUFsbCQuY29tcGxldGUoKTtcclxuICB9XHJcbn1cclxuIiwiPG1hdC1mb3JtLWZpZWxkIFtmbG9hdExhYmVsXT1cImZsb2F0TGFiZWxcIiBjbGFzcz1cInctMTAwXCIgW2FwcGVhcmFuY2VdPVwiYXBwZWFyYW5jZVwiIFtjb2xvcl09XCJjb2xvclwiXHJcbiAgICAgICAgICAgICAgICBbc3Vic2NyaXB0U2l6aW5nXT1cInN1YnNjcmlwdFNpemluZ1wiPlxyXG5cclxuICA8bWF0LWxhYmVsICpuZ0lmPVwic2hvd0xhYmVsXCI+e3sgbGFiZWwgfCB0cmFuc2xhdGUgfX08L21hdC1sYWJlbD5cclxuICA8bWF0LWljb24gbWF0U3VmZml4ICpuZ0lmPVwic2hvd1N1ZmZpeFwiPnt7IHN1ZmZpeEljb24gPz8gXCJzZWFyY2hcIiB9fTwvbWF0LWljb24+XHJcbiAgPGlucHV0ICNpbnB1dFRleHQgI3RyaWdnZXI9XCJtYXRBdXRvY29tcGxldGVUcmlnZ2VyXCIgKGZvY3VzKT1cIm9uRm9jdXMoKVwiIFtmb3JtQ29udHJvbF09XCJjb21wb25lbnRcIlxyXG4gICAgICAgICBbbWF0QXV0b2NvbXBsZXRlXT1cImF1dG9jb21wbGV0ZVwiIFtwbGFjZWhvbGRlcl09XCJwbGFjZWhvbGRlciB8IHRyYW5zbGF0ZVwiIGFyaWEtbGFiZWw9XCJhdXRvY29tcGxldGVcIlxyXG4gICAgICAgICBhdXRvY29tcGxldGU9XCJvZmZcIiBtYXRJbnB1dCB0eXBlPVwidGV4dFwiIFtyZXF1aXJlZF09XCJyZXF1aXJlZCgpXCI+XHJcbiAgPGJ1dHRvbiAoY2xpY2spPVwiY2xlYXIodHJpZ2dlcilcIiAqbmdJZj1cIiFsb2FkaW5nKCkgJiYgY29tcG9uZW50Py52YWx1ZVwiIFtkaXNhYmxlZF09XCJkaXNhYmxlZEJ1dHRvbigpXCJcclxuICAgICAgICAgIGFyaWEtbGFiZWw9XCJDbGVhclwiIG1hdC1pY29uLWJ1dHRvbiBtYXRTdWZmaXg+XHJcbiAgICA8bWF0LWljb24+Y2xvc2U8L21hdC1pY29uPlxyXG4gIDwvYnV0dG9uPlxyXG4gIDxidXR0b24gKm5nSWY9XCJsb2FkaW5nKClcIiBhcmlhLWxhYmVsPVwic2VhcmNoXCIgbWF0LWljb24tYnV0dG9uIG1hdFN1ZmZpeD5cclxuICAgIDxtYXQtc3Bpbm5lciBbdmFsdWVdPVwiOTBcIiBjb2xvcj1cImFjY2VudFwiIGRpYW1ldGVyPVwiMjVcIj48L21hdC1zcGlubmVyPlxyXG4gIDwvYnV0dG9uPlxyXG4gIDxtYXQtYXV0b2NvbXBsZXRlICNhdXRvY29tcGxldGU9XCJtYXRBdXRvY29tcGxldGVcIiBbZGlzcGxheVdpdGhdPVwiZGlzcGxheUZuXCIgcmVxdWlyZVNlbGVjdGlvblxyXG4gICAgICAgICAgICAgICAgICAgIChvcHRpb25TZWxlY3RlZCk9XCJvcHRpb25TZWxlY3RlZCgkZXZlbnQpXCI+XHJcbiAgICA8bWF0LW9wdGlvbiAqbmdGb3I9XCJsZXQgb3B0aW9uIG9mIGZpbHRlcmVkT3B0aW9ucygpXCIgW3ZhbHVlXT1cIm9wdGlvblwiPlxyXG5cclxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFkaXNwbGF5T3B0aW9ucyAmJiAhZGV0YWlsc1RlbXBsYXRlXCI+XHJcbiAgICAgICAge3sgb3B0aW9uPy5uYW1lIHwgaTE4bkZpZWxkOiB0cmFuc2xhdGVTZXJ2aWNlLmN1cnJlbnRMYW5nIH19XHJcbiAgICAgIDwvbmctY29udGFpbmVyPlxyXG5cclxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFkZXRhaWxzVGVtcGxhdGVcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiZGlzcGxheS1vcHRpb25zXCI+XHJcbiAgICAgICAgICA8c3BhbiBbbmdTdHlsZV09XCJ7J2xpbmUtaGVpZ2h0JzogZGlzcGxheU9wdGlvbnM/LnNlY29uZExhYmVsID8gJzE2cHgnIDogJyd9XCI+XHJcbiAgICAgICAgICAgIHt7IG9wdGlvbiB8IHJlc29sdmVQcm9wZXJ0eVBhdGg6ZGlzcGxheU9wdGlvbnMuZmlydGhMYWJlbCB8IGkxOG5GaWVsZDogdHJhbnNsYXRlU2VydmljZS5jdXJyZW50TGFuZyB9fVxyXG4gICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgPHNwYW4gKm5nSWY9XCJkaXNwbGF5T3B0aW9ucz8uc2Vjb25kTGFiZWxcIiBjbGFzcz1cIm1hdC1jYXB0aW9uXCI+XHJcbiAgICAgICAgICAgIHt7IG9wdGlvbiB8IHJlc29sdmVQcm9wZXJ0eVBhdGg6IGRpc3BsYXlPcHRpb25zLnNlY29uZExhYmVsIHwgaTE4bkZpZWxkOiB0cmFuc2xhdGVTZXJ2aWNlLmN1cnJlbnRMYW5nIH19XHJcbiAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvbmctY29udGFpbmVyPlxyXG5cclxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImRldGFpbHNUZW1wbGF0ZVwiPlxyXG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJkZXRhaWxzVGVtcGxhdGU7Y29udGV4dDp7JGltcGxpY2l0OiBvcHRpb24gfVwiPjwvbmctY29udGFpbmVyPlxyXG4gICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgIDwvbWF0LW9wdGlvbj5cclxuICA8L21hdC1hdXRvY29tcGxldGU+XHJcblxyXG4gIDxtYXQtZXJyb3IgKm5nSWY9XCJjb21wb25lbnQuaW52YWxpZFwiPlxyXG4gICAge3sgJ0VzdGUgY2FtcG8gZXMgcmVxdWVyaWRvLicgfCB0cmFuc2xhdGUgfX1cclxuICA8L21hdC1lcnJvcj5cclxuPC9tYXQtZm9ybS1maWVsZD5cclxuIl19
@@ -1,12 +1,2 @@
1
- export var CustomPipes;
2
- (function (CustomPipes) {
3
- CustomPipes["SHOW_SEGMENTS"] = "showSegments";
4
- CustomPipes["DURATION_TIME"] = "durationTime";
5
- CustomPipes["HUMANIZE_DURATION"] = "humanizeDuration";
6
- CustomPipes["SHOW_TRANSPORT_TYPES"] = "showTransportTypes";
7
- CustomPipes["SHOW_ROLES"] = "showRoles";
8
- CustomPipes["IDA_RETURN"] = "idaReturn";
9
- CustomPipes["CURRENCY"] = "currency";
10
- CustomPipes["UPPERCASE"] = "uppercase";
11
- })(CustomPipes || (CustomPipes = {}));
12
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW50ZXJmYWNlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2d1YWNob3MtZ2VuZXJhbC1hdXRvY29tcGxldGUvc3JjL3V0aWxzL2ludGVyZmFjZXMvaW50ZXJmYWNlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFJQSxNQUFNLENBQU4sSUFBWSxXQVNYO0FBVEQsV0FBWSxXQUFXO0lBQ25CLDZDQUE4QixDQUFBO0lBQzlCLDZDQUE4QixDQUFBO0lBQzlCLHFEQUFzQyxDQUFBO0lBQ3RDLDBEQUEyQyxDQUFBO0lBQzNDLHVDQUF3QixDQUFBO0lBQ3hCLHVDQUF3QixDQUFBO0lBQ3hCLG9DQUFxQixDQUFBO0lBQ3JCLHNDQUF1QixDQUFBO0FBQzNCLENBQUMsRUFUVyxXQUFXLEtBQVgsV0FBVyxRQVN0QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7VmFsaWRhdG9yRm59IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuXHJcbmRlY2xhcmUgdHlwZSBEaXNwbGF5T3B0aW9uSXRlbVR5cGUgPSAnZGl2aWRlcicgfCAncGF0aCc7XHJcblxyXG5leHBvcnQgZW51bSBDdXN0b21QaXBlcyB7XHJcbiAgICBTSE9XX1NFR01FTlRTID0gJ3Nob3dTZWdtZW50cycsXHJcbiAgICBEVVJBVElPTl9USU1FID0gJ2R1cmF0aW9uVGltZScsXHJcbiAgICBIVU1BTklaRV9EVVJBVElPTiA9ICdodW1hbml6ZUR1cmF0aW9uJyxcclxuICAgIFNIT1dfVFJBTlNQT1JUX1RZUEVTID0gJ3Nob3dUcmFuc3BvcnRUeXBlcycsXHJcbiAgICBTSE9XX1JPTEVTID0gJ3Nob3dSb2xlcycsXHJcbiAgICBJREFfUkVUVVJOID0gJ2lkYVJldHVybicsXHJcbiAgICBDVVJSRU5DWSA9ICdjdXJyZW5jeScsXHJcbiAgICBVUFBFUkNBU0UgPSAndXBwZXJjYXNlJyxcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBEaXNwbGF5T3B0aW9uSXRlbSB7XHJcbiAgICB0eXBlOiBEaXNwbGF5T3B0aW9uSXRlbVR5cGU7XHJcbiAgICBjdXN0b21QaXBlPzogc3RyaW5nO1xyXG4gICAgZGl2aWRlcj86IHN0cmluZztcclxuICAgIHBhdGg/OiBzdHJpbmdbXTtcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBEaXNwbGF5T3B0aW9uIHtcclxuICAgIGZpcnRoTGFiZWw6IERpc3BsYXlPcHRpb25JdGVtW107XHJcbiAgICBzZWNvbmRMYWJlbD86IERpc3BsYXlPcHRpb25JdGVtW107XHJcbiAgICBmaWx0ZXJTdHJpbmc/OiBzdHJpbmdbXSB8IHN0cmluZztcclxuICAgIGFwcGx5VHJhbnNsYXRlPzogYm9vbGVhbjtcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBSZXN0cmljdGlvbkZpbHRlciB7XHJcbiAgICBmaWx0ZXI6IHN0cmluZztcclxuICAgIHZhbHVlOiBzdHJpbmcgfCBudW1iZXI7XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgQXBpRm9ybURhdGEge1xyXG4gICAgYXR0cmlidXRlcz86IHN0cmluZ1tdLFxyXG4gICAgZmlsdGVyPzogYW55O1xyXG4gICAgcmVsYXRpb25zPzogYW55O1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIEN1c3RvbVZhbGlkYXRvciB7XHJcbiAgICBrZXk6IHN0cmluZztcclxuICAgIG1lc3NhZ2U6IHN0cmluZztcclxuICAgIHZhbGlkYXRvcjogVmFsaWRhdG9yRm47XHJcbn1cclxuIl19
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW50ZXJmYWNlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2d1YWNob3MtZ2VuZXJhbC1hdXRvY29tcGxldGUvc3JjL3V0aWxzL2ludGVyZmFjZXMvaW50ZXJmYWNlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiZGVjbGFyZSB0eXBlIERpc3BsYXlPcHRpb25JdGVtVHlwZSA9ICdkaXZpZGVyJyB8ICdwYXRoJztcclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgRGlzcGxheU9wdGlvbkl0ZW0ge1xyXG4gICAgdHlwZTogRGlzcGxheU9wdGlvbkl0ZW1UeXBlO1xyXG4gICAgZGl2aWRlcj86IHN0cmluZztcclxuICAgIHBhdGg/OiBzdHJpbmdbXTtcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBEaXNwbGF5T3B0aW9uIHtcclxuICAgIGZpcnRoTGFiZWw6IERpc3BsYXlPcHRpb25JdGVtW107XHJcbiAgICBzZWNvbmRMYWJlbD86IERpc3BsYXlPcHRpb25JdGVtW107XHJcbiAgICBmaWx0ZXJTdHJpbmc/OiBzdHJpbmdbXSB8IHN0cmluZztcclxuICAgIGFwcGx5VHJhbnNsYXRlPzogYm9vbGVhbjtcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBSZXN0cmljdGlvbkZpbHRlciB7XHJcbiAgICBmaWx0ZXI6IHN0cmluZztcclxuICAgIHZhbHVlOiBzdHJpbmcgfCBudW1iZXI7XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgQXBpRm9ybURhdGEge1xyXG4gICAgYXR0cmlidXRlcz86IHN0cmluZ1tdLFxyXG4gICAgZmlsdGVyPzogYW55O1xyXG4gICAgcmVsYXRpb25zPzogYW55O1xyXG59XHJcbiJdfQ==
@@ -1,6 +1,13 @@
1
1
  import { Pipe } from '@angular/core';
2
2
  import * as i0 from "@angular/core";
3
3
  export class I18nFieldPipe {
4
+ /**
5
+ * Transforms a value based on the specified language.
6
+ *
7
+ * @param {any} value - The value to be transformed.
8
+ * @param {string} lang - The language to use for transformation.
9
+ * @return {string} The transformed value.
10
+ */
4
11
  transform(value, lang) {
5
12
  if (!value) {
6
13
  return '';
@@ -25,4 +32,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.1", ngImpor
25
32
  type: Pipe,
26
33
  args: [{ name: 'i18nField' }]
27
34
  }] });
28
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaTE4bi1maWVsZC5waXBlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZ3VhY2hvcy1nZW5lcmFsLWF1dG9jb21wbGV0ZS9zcmMvdXRpbHMvcGlwZXMvaTE4bi1maWVsZC5waXBlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxJQUFJLEVBQWdCLE1BQU0sZUFBZSxDQUFDOztBQUdsRCxNQUFNLE9BQU8sYUFBYTtJQUN0QixTQUFTLENBQUMsS0FBVSxFQUFFLElBQVk7UUFDOUIsSUFBSSxDQUFDLEtBQUssRUFBRTtZQUNSLE9BQU8sRUFBRSxDQUFDO1NBQ2I7UUFFRCxJQUFJLE9BQU8sS0FBSyxLQUFLLFFBQVEsRUFBRTtZQUMzQixPQUFPLEtBQUssQ0FBQztTQUNoQjtRQUVELE1BQU0sSUFBSSxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDaEMsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsRUFBRTtZQUNkLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUNWLE9BQU8sQ0FBQyxHQUFHLElBQUksRUFBRSxNQUFNLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssSUFBSSxJQUFJLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxFQUFFLENBQUMsRUFBRTtnQkFDM0UsQ0FBQyxFQUFFLENBQUM7YUFDUDtZQUNELE9BQU8sSUFBSSxFQUFFLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsa0JBQWtCLENBQUM7U0FDakU7UUFFRCxPQUFPLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxrQkFBa0IsQ0FBQztJQUM3QyxDQUFDOzhHQXBCUSxhQUFhOzRHQUFiLGFBQWE7OzJGQUFiLGFBQWE7a0JBRHpCLElBQUk7bUJBQUMsRUFBQyxJQUFJLEVBQUUsV0FBVyxFQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtQaXBlLCBQaXBlVHJhbnNmb3JtfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuXHJcbkBQaXBlKHtuYW1lOiAnaTE4bkZpZWxkJ30pXHJcbmV4cG9ydCBjbGFzcyBJMThuRmllbGRQaXBlIGltcGxlbWVudHMgUGlwZVRyYW5zZm9ybSB7XHJcbiAgICB0cmFuc2Zvcm0odmFsdWU6IGFueSwgbGFuZzogc3RyaW5nKTogc3RyaW5nIHtcclxuICAgICAgICBpZiAoIXZhbHVlKSB7XHJcbiAgICAgICAgICAgIHJldHVybiAnJztcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmICh0eXBlb2YgdmFsdWUgPT09ICdzdHJpbmcnKSB7XHJcbiAgICAgICAgICAgIHJldHVybiB2YWx1ZTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGNvbnN0IGtleXMgPSBPYmplY3Qua2V5cyh2YWx1ZSk7XHJcbiAgICAgICAgaWYgKCF2YWx1ZVtsYW5nXSkge1xyXG4gICAgICAgICAgICBsZXQgaSA9IDA7XHJcbiAgICAgICAgICAgIHdoaWxlIChpIDwga2V5cz8ubGVuZ3RoICYmICh2YWx1ZVtrZXlzW2ldXSA9PT0gbnVsbCB8fCB2YWx1ZVtrZXlzW2ldXSA9PT0gJycpKSB7XHJcbiAgICAgICAgICAgICAgICBpKys7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgcmV0dXJuIGtleXM/Lmxlbmd0aCA+IGkgPyB2YWx1ZVtrZXlzW2ldXSA6ICdObyBlc3TDoSBkZWZpbmlkbyc7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICByZXR1cm4gdmFsdWVbbGFuZ10gfHwgJ05vIGVzdMOhIGRlZmluaWRvJztcclxuICAgIH1cclxufVxyXG4iXX0=
35
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaTE4bi1maWVsZC5waXBlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZ3VhY2hvcy1nZW5lcmFsLWF1dG9jb21wbGV0ZS9zcmMvdXRpbHMvcGlwZXMvaTE4bi1maWVsZC5waXBlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxJQUFJLEVBQWdCLE1BQU0sZUFBZSxDQUFDOztBQUdsRCxNQUFNLE9BQU8sYUFBYTtJQUN0Qjs7Ozs7O09BTUc7SUFDSCxTQUFTLENBQUMsS0FBVSxFQUFFLElBQVk7UUFDOUIsSUFBSSxDQUFDLEtBQUssRUFBRTtZQUNSLE9BQU8sRUFBRSxDQUFDO1NBQ2I7UUFFRCxJQUFJLE9BQU8sS0FBSyxLQUFLLFFBQVEsRUFBRTtZQUMzQixPQUFPLEtBQUssQ0FBQztTQUNoQjtRQUVELE1BQU0sSUFBSSxHQUFhLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDMUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsRUFBRTtZQUNkLElBQUksQ0FBQyxHQUFXLENBQUMsQ0FBQztZQUNsQixPQUFPLENBQUMsR0FBRyxJQUFJLEVBQUUsTUFBTSxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLElBQUksSUFBSSxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUFDLEVBQUU7Z0JBQzNFLENBQUMsRUFBRSxDQUFDO2FBQ1A7WUFDRCxPQUFPLElBQUksRUFBRSxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLGtCQUFrQixDQUFDO1NBQ2pFO1FBRUQsT0FBTyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksa0JBQWtCLENBQUM7SUFDN0MsQ0FBQzs4R0EzQlEsYUFBYTs0R0FBYixhQUFhOzsyRkFBYixhQUFhO2tCQUR6QixJQUFJO21CQUFDLEVBQUMsSUFBSSxFQUFFLFdBQVcsRUFBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7UGlwZSwgUGlwZVRyYW5zZm9ybX0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG5AUGlwZSh7bmFtZTogJ2kxOG5GaWVsZCd9KVxyXG5leHBvcnQgY2xhc3MgSTE4bkZpZWxkUGlwZSBpbXBsZW1lbnRzIFBpcGVUcmFuc2Zvcm0ge1xyXG4gICAgLyoqXHJcbiAgICAgKiBUcmFuc2Zvcm1zIGEgdmFsdWUgYmFzZWQgb24gdGhlIHNwZWNpZmllZCBsYW5ndWFnZS5cclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0ge2FueX0gdmFsdWUgLSBUaGUgdmFsdWUgdG8gYmUgdHJhbnNmb3JtZWQuXHJcbiAgICAgKiBAcGFyYW0ge3N0cmluZ30gbGFuZyAtIFRoZSBsYW5ndWFnZSB0byB1c2UgZm9yIHRyYW5zZm9ybWF0aW9uLlxyXG4gICAgICogQHJldHVybiB7c3RyaW5nfSBUaGUgdHJhbnNmb3JtZWQgdmFsdWUuXHJcbiAgICAgKi9cclxuICAgIHRyYW5zZm9ybSh2YWx1ZTogYW55LCBsYW5nOiBzdHJpbmcpOiBzdHJpbmcge1xyXG4gICAgICAgIGlmICghdmFsdWUpIHtcclxuICAgICAgICAgICAgcmV0dXJuICcnO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ3N0cmluZycpIHtcclxuICAgICAgICAgICAgcmV0dXJuIHZhbHVlO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgY29uc3Qga2V5czogc3RyaW5nW10gPSBPYmplY3Qua2V5cyh2YWx1ZSk7XHJcbiAgICAgICAgaWYgKCF2YWx1ZVtsYW5nXSkge1xyXG4gICAgICAgICAgICBsZXQgaTogbnVtYmVyID0gMDtcclxuICAgICAgICAgICAgd2hpbGUgKGkgPCBrZXlzPy5sZW5ndGggJiYgKHZhbHVlW2tleXNbaV1dID09PSBudWxsIHx8IHZhbHVlW2tleXNbaV1dID09PSAnJykpIHtcclxuICAgICAgICAgICAgICAgIGkrKztcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICByZXR1cm4ga2V5cz8ubGVuZ3RoID4gaSA/IHZhbHVlW2tleXNbaV1dIDogJ05vIGVzdMOhIGRlZmluaWRvJztcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHJldHVybiB2YWx1ZVtsYW5nXSB8fCAnTm8gZXN0w6EgZGVmaW5pZG8nO1xyXG4gICAgfVxyXG59XHJcbiJdfQ==
@@ -1,84 +1,32 @@
1
1
  import { NgModule } from '@angular/core';
2
- import { CurrencyPipe, UpperCasePipe } from "@angular/common";
3
- import { DurationTimePipe } from "./duration.pipe";
4
- import { HumanizeDurationPipe } from "./humanize-duration.pipe";
5
- import { I18nFieldPipe } from "./i18n-field.pipe";
6
- import { IdaReturnPipe } from "./ida-return.pipe";
7
- import { ResolvePropertyPath } from "./resolve-property-path.pipe";
8
- import { ShowRolesPipe } from "./show-roles.pipe";
9
- import { ShowSegmentsPipe } from "./show-segments.pipe";
10
- import { ShowTransportTypesPipe } from "./show-transport-types.pipe";
2
+ import { I18nFieldPipe } from './i18n-field.pipe';
3
+ import { ResolvePropertyPath } from './resolve-property-path.pipe';
11
4
  import * as i0 from "@angular/core";
12
5
  export class PipesModule {
13
6
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.1", ngImport: i0, type: PipesModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
14
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.1.1", ngImport: i0, type: PipesModule, declarations: [DurationTimePipe,
15
- HumanizeDurationPipe,
16
- I18nFieldPipe,
17
- IdaReturnPipe,
18
- ResolvePropertyPath,
19
- ShowRolesPipe,
20
- ShowSegmentsPipe,
21
- ShowTransportTypesPipe], imports: [CurrencyPipe,
22
- UpperCasePipe], exports: [DurationTimePipe,
23
- HumanizeDurationPipe,
24
- I18nFieldPipe,
25
- IdaReturnPipe,
26
- ResolvePropertyPath,
27
- ShowRolesPipe,
28
- ShowSegmentsPipe,
29
- ShowTransportTypesPipe] }); }
7
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.1.1", ngImport: i0, type: PipesModule, declarations: [I18nFieldPipe,
8
+ ResolvePropertyPath], exports: [I18nFieldPipe,
9
+ ResolvePropertyPath] }); }
30
10
  static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.1.1", ngImport: i0, type: PipesModule, providers: [
31
- DurationTimePipe,
32
- HumanizeDurationPipe,
33
11
  I18nFieldPipe,
34
- IdaReturnPipe,
35
- ResolvePropertyPath,
36
- ShowRolesPipe,
37
- ShowSegmentsPipe,
38
- ShowTransportTypesPipe,
39
- CurrencyPipe,
40
- UpperCasePipe
12
+ ResolvePropertyPath
41
13
  ] }); }
42
14
  }
43
15
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.1", ngImport: i0, type: PipesModule, decorators: [{
44
16
  type: NgModule,
45
17
  args: [{
46
18
  declarations: [
47
- DurationTimePipe,
48
- HumanizeDurationPipe,
49
19
  I18nFieldPipe,
50
- IdaReturnPipe,
51
- ResolvePropertyPath,
52
- ShowRolesPipe,
53
- ShowSegmentsPipe,
54
- ShowTransportTypesPipe,
55
- ],
56
- imports: [
57
- CurrencyPipe,
58
- UpperCasePipe
20
+ ResolvePropertyPath
59
21
  ],
60
22
  exports: [
61
- DurationTimePipe,
62
- HumanizeDurationPipe,
63
23
  I18nFieldPipe,
64
- IdaReturnPipe,
65
- ResolvePropertyPath,
66
- ShowRolesPipe,
67
- ShowSegmentsPipe,
68
- ShowTransportTypesPipe
24
+ ResolvePropertyPath
69
25
  ],
70
26
  providers: [
71
- DurationTimePipe,
72
- HumanizeDurationPipe,
73
27
  I18nFieldPipe,
74
- IdaReturnPipe,
75
- ResolvePropertyPath,
76
- ShowRolesPipe,
77
- ShowSegmentsPipe,
78
- ShowTransportTypesPipe,
79
- CurrencyPipe,
80
- UpperCasePipe
28
+ ResolvePropertyPath
81
29
  ]
82
30
  }]
83
31
  }] });
84
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGlwZXMubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZ3VhY2hvcy1nZW5lcmFsLWF1dG9jb21wbGV0ZS9zcmMvdXRpbHMvcGlwZXMvcGlwZXMubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxRQUFRLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDdkMsT0FBTyxFQUFDLFlBQVksRUFBRSxhQUFhLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQztBQUU1RCxPQUFPLEVBQUMsZ0JBQWdCLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQztBQUNqRCxPQUFPLEVBQUMsb0JBQW9CLEVBQUMsTUFBTSwwQkFBMEIsQ0FBQztBQUM5RCxPQUFPLEVBQUMsYUFBYSxFQUFDLE1BQU0sbUJBQW1CLENBQUM7QUFDaEQsT0FBTyxFQUFDLGFBQWEsRUFBQyxNQUFNLG1CQUFtQixDQUFDO0FBQ2hELE9BQU8sRUFBQyxtQkFBbUIsRUFBQyxNQUFNLDhCQUE4QixDQUFDO0FBQ2pFLE9BQU8sRUFBQyxhQUFhLEVBQUMsTUFBTSxtQkFBbUIsQ0FBQztBQUNoRCxPQUFPLEVBQUMsZ0JBQWdCLEVBQUMsTUFBTSxzQkFBc0IsQ0FBQztBQUN0RCxPQUFPLEVBQUMsc0JBQXNCLEVBQUMsTUFBTSw2QkFBNkIsQ0FBQzs7QUF3Q25FLE1BQU0sT0FBTyxXQUFXOzhHQUFYLFdBQVc7K0dBQVgsV0FBVyxpQkFwQ3BCLGdCQUFnQjtZQUNoQixvQkFBb0I7WUFDcEIsYUFBYTtZQUNiLGFBQWE7WUFDYixtQkFBbUI7WUFDbkIsYUFBYTtZQUNiLGdCQUFnQjtZQUNoQixzQkFBc0IsYUFHdEIsWUFBWTtZQUNaLGFBQWEsYUFHYixnQkFBZ0I7WUFDaEIsb0JBQW9CO1lBQ3BCLGFBQWE7WUFDYixhQUFhO1lBQ2IsbUJBQW1CO1lBQ25CLGFBQWE7WUFDYixnQkFBZ0I7WUFDaEIsc0JBQXNCOytHQWViLFdBQVcsYUFiWDtZQUNULGdCQUFnQjtZQUNoQixvQkFBb0I7WUFDcEIsYUFBYTtZQUNiLGFBQWE7WUFDYixtQkFBbUI7WUFDbkIsYUFBYTtZQUNiLGdCQUFnQjtZQUNoQixzQkFBc0I7WUFDdEIsWUFBWTtZQUNaLGFBQWE7U0FDZDs7MkZBRVUsV0FBVztrQkF0Q3ZCLFFBQVE7bUJBQUM7b0JBQ1IsWUFBWSxFQUFFO3dCQUNaLGdCQUFnQjt3QkFDaEIsb0JBQW9CO3dCQUNwQixhQUFhO3dCQUNiLGFBQWE7d0JBQ2IsbUJBQW1CO3dCQUNuQixhQUFhO3dCQUNiLGdCQUFnQjt3QkFDaEIsc0JBQXNCO3FCQUN2QjtvQkFDRCxPQUFPLEVBQUU7d0JBQ1AsWUFBWTt3QkFDWixhQUFhO3FCQUNkO29CQUNELE9BQU8sRUFBRTt3QkFDUCxnQkFBZ0I7d0JBQ2hCLG9CQUFvQjt3QkFDcEIsYUFBYTt3QkFDYixhQUFhO3dCQUNiLG1CQUFtQjt3QkFDbkIsYUFBYTt3QkFDYixnQkFBZ0I7d0JBQ2hCLHNCQUFzQjtxQkFDdkI7b0JBQ0QsU0FBUyxFQUFFO3dCQUNULGdCQUFnQjt3QkFDaEIsb0JBQW9CO3dCQUNwQixhQUFhO3dCQUNiLGFBQWE7d0JBQ2IsbUJBQW1CO3dCQUNuQixhQUFhO3dCQUNiLGdCQUFnQjt3QkFDaEIsc0JBQXNCO3dCQUN0QixZQUFZO3dCQUNaLGFBQWE7cUJBQ2Q7aUJBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge05nTW9kdWxlfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHtDdXJyZW5jeVBpcGUsIFVwcGVyQ2FzZVBpcGV9IGZyb20gXCJAYW5ndWxhci9jb21tb25cIjtcclxuXHJcbmltcG9ydCB7RHVyYXRpb25UaW1lUGlwZX0gZnJvbSBcIi4vZHVyYXRpb24ucGlwZVwiO1xyXG5pbXBvcnQge0h1bWFuaXplRHVyYXRpb25QaXBlfSBmcm9tIFwiLi9odW1hbml6ZS1kdXJhdGlvbi5waXBlXCI7XHJcbmltcG9ydCB7STE4bkZpZWxkUGlwZX0gZnJvbSBcIi4vaTE4bi1maWVsZC5waXBlXCI7XHJcbmltcG9ydCB7SWRhUmV0dXJuUGlwZX0gZnJvbSBcIi4vaWRhLXJldHVybi5waXBlXCI7XHJcbmltcG9ydCB7UmVzb2x2ZVByb3BlcnR5UGF0aH0gZnJvbSBcIi4vcmVzb2x2ZS1wcm9wZXJ0eS1wYXRoLnBpcGVcIjtcclxuaW1wb3J0IHtTaG93Um9sZXNQaXBlfSBmcm9tIFwiLi9zaG93LXJvbGVzLnBpcGVcIjtcclxuaW1wb3J0IHtTaG93U2VnbWVudHNQaXBlfSBmcm9tIFwiLi9zaG93LXNlZ21lbnRzLnBpcGVcIjtcclxuaW1wb3J0IHtTaG93VHJhbnNwb3J0VHlwZXNQaXBlfSBmcm9tIFwiLi9zaG93LXRyYW5zcG9ydC10eXBlcy5waXBlXCI7XHJcblxyXG5ATmdNb2R1bGUoe1xyXG4gIGRlY2xhcmF0aW9uczogW1xyXG4gICAgRHVyYXRpb25UaW1lUGlwZSxcclxuICAgIEh1bWFuaXplRHVyYXRpb25QaXBlLFxyXG4gICAgSTE4bkZpZWxkUGlwZSxcclxuICAgIElkYVJldHVyblBpcGUsXHJcbiAgICBSZXNvbHZlUHJvcGVydHlQYXRoLFxyXG4gICAgU2hvd1JvbGVzUGlwZSxcclxuICAgIFNob3dTZWdtZW50c1BpcGUsXHJcbiAgICBTaG93VHJhbnNwb3J0VHlwZXNQaXBlLFxyXG4gIF0sXHJcbiAgaW1wb3J0czogW1xyXG4gICAgQ3VycmVuY3lQaXBlLFxyXG4gICAgVXBwZXJDYXNlUGlwZVxyXG4gIF0sXHJcbiAgZXhwb3J0czogW1xyXG4gICAgRHVyYXRpb25UaW1lUGlwZSxcclxuICAgIEh1bWFuaXplRHVyYXRpb25QaXBlLFxyXG4gICAgSTE4bkZpZWxkUGlwZSxcclxuICAgIElkYVJldHVyblBpcGUsXHJcbiAgICBSZXNvbHZlUHJvcGVydHlQYXRoLFxyXG4gICAgU2hvd1JvbGVzUGlwZSxcclxuICAgIFNob3dTZWdtZW50c1BpcGUsXHJcbiAgICBTaG93VHJhbnNwb3J0VHlwZXNQaXBlXHJcbiAgXSxcclxuICBwcm92aWRlcnM6IFtcclxuICAgIER1cmF0aW9uVGltZVBpcGUsXHJcbiAgICBIdW1hbml6ZUR1cmF0aW9uUGlwZSxcclxuICAgIEkxOG5GaWVsZFBpcGUsXHJcbiAgICBJZGFSZXR1cm5QaXBlLFxyXG4gICAgUmVzb2x2ZVByb3BlcnR5UGF0aCxcclxuICAgIFNob3dSb2xlc1BpcGUsXHJcbiAgICBTaG93U2VnbWVudHNQaXBlLFxyXG4gICAgU2hvd1RyYW5zcG9ydFR5cGVzUGlwZSxcclxuICAgIEN1cnJlbmN5UGlwZSxcclxuICAgIFVwcGVyQ2FzZVBpcGVcclxuICBdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBQaXBlc01vZHVsZSB7XHJcbn1cclxuIl19
32
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGlwZXMubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZ3VhY2hvcy1nZW5lcmFsLWF1dG9jb21wbGV0ZS9zcmMvdXRpbHMvcGlwZXMvcGlwZXMubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFHekMsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ2xELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLDhCQUE4QixDQUFDOztBQWdCbkUsTUFBTSxPQUFPLFdBQVc7OEdBQVgsV0FBVzsrR0FBWCxXQUFXLGlCQVpwQixhQUFhO1lBQ2IsbUJBQW1CLGFBR25CLGFBQWE7WUFDYixtQkFBbUI7K0dBT1YsV0FBVyxhQUxYO1lBQ1QsYUFBYTtZQUNiLG1CQUFtQjtTQUNwQjs7MkZBRVUsV0FBVztrQkFkdkIsUUFBUTttQkFBQztvQkFDUixZQUFZLEVBQUU7d0JBQ1osYUFBYTt3QkFDYixtQkFBbUI7cUJBQ3BCO29CQUNELE9BQU8sRUFBRTt3QkFDUCxhQUFhO3dCQUNiLG1CQUFtQjtxQkFDcEI7b0JBQ0QsU0FBUyxFQUFFO3dCQUNULGFBQWE7d0JBQ2IsbUJBQW1CO3FCQUNwQjtpQkFDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEN1cnJlbmN5UGlwZSwgVXBwZXJDYXNlUGlwZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcblxyXG5pbXBvcnQgeyBJMThuRmllbGRQaXBlIH0gZnJvbSAnLi9pMThuLWZpZWxkLnBpcGUnO1xyXG5pbXBvcnQgeyBSZXNvbHZlUHJvcGVydHlQYXRoIH0gZnJvbSAnLi9yZXNvbHZlLXByb3BlcnR5LXBhdGgucGlwZSc7XHJcblxyXG5ATmdNb2R1bGUoe1xyXG4gIGRlY2xhcmF0aW9uczogW1xyXG4gICAgSTE4bkZpZWxkUGlwZSxcclxuICAgIFJlc29sdmVQcm9wZXJ0eVBhdGhcclxuICBdLFxyXG4gIGV4cG9ydHM6IFtcclxuICAgIEkxOG5GaWVsZFBpcGUsXHJcbiAgICBSZXNvbHZlUHJvcGVydHlQYXRoXHJcbiAgXSxcclxuICBwcm92aWRlcnM6IFtcclxuICAgIEkxOG5GaWVsZFBpcGUsXHJcbiAgICBSZXNvbHZlUHJvcGVydHlQYXRoXHJcbiAgXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgUGlwZXNNb2R1bGUge1xyXG59XHJcbiJdfQ==