ecabs-components 1.0.56-alpha → 1.0.56-beta

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,8 +1,9 @@
1
- import { filter, takeUntil } from 'rxjs';
1
+ import { catchError, filter, from, map, of, shareReplay, takeUntil } from 'rxjs';
2
2
  import { Component, EventEmitter, Input, Output } from '@angular/core';
3
3
  import { NG_VALUE_ACCESSOR, NgControl } from '@angular/forms';
4
4
  import { UnsubscribeService } from '../../public-api';
5
5
  import ElementBaseComponent from '../base/element-base';
6
+ import { Loader } from '@googlemaps/js-api-loader';
6
7
  import * as i0 from "@angular/core";
7
8
  import * as i1 from "../../public-api";
8
9
  import * as i2 from "@angular/common";
@@ -17,15 +18,16 @@ export class EcabsPlaceAutocompleteComponent extends ElementBaseComponent {
17
18
  showDeleteItem = false;
18
19
  showSuffix = false;
19
20
  countryCode = 'MT';
20
- apiLoaded$;
21
+ apiKey;
21
22
  placeResult = new EventEmitter();
22
23
  deleteItem = new EventEmitter();
24
+ apiLoaded$;
23
25
  val;
24
26
  get value() {
25
27
  return this.val;
26
28
  }
27
29
  set value(val) {
28
- if (this.val !== val) {
30
+ if (val !== undefined && this.val !== val) {
29
31
  this.val = val;
30
32
  this.onChange(val);
31
33
  }
@@ -38,11 +40,12 @@ export class EcabsPlaceAutocompleteComponent extends ElementBaseComponent {
38
40
  this.injector = injector;
39
41
  }
40
42
  ngOnChanges(changes) {
41
- const { value, apiLoaded$ } = changes ?? {};
43
+ const { value, apiKey } = changes ?? {};
42
44
  if (!value?.firstChange && !value?.currentValue) {
43
45
  this.onClean();
44
46
  }
45
- if (apiLoaded$?.currentValue) {
47
+ if (apiKey?.currentValue) {
48
+ this.apiLoaded$ = this.loadGoogleMap(this.apiKey);
46
49
  this.apiLoaded$.pipe(takeUntil(this.unsubscribeService.subscription()), filter((value) => !!value))
47
50
  .subscribe(() => {
48
51
  this.initGoogle();
@@ -74,7 +77,6 @@ export class EcabsPlaceAutocompleteComponent extends ElementBaseComponent {
74
77
  }
75
78
  onClean() {
76
79
  this.value = '';
77
- this.onTouch();
78
80
  }
79
81
  initGoogle() {
80
82
  const autocomplete = new google.maps.places.Autocomplete(this.getElement(), {
@@ -99,15 +101,26 @@ export class EcabsPlaceAutocompleteComponent extends ElementBaseComponent {
99
101
  getElement() {
100
102
  return this.elementRef.nativeElement.querySelector('.form-field__input');
101
103
  }
104
+ loadGoogleMap(apiKey) {
105
+ if (this.apiLoaded$) {
106
+ return this.apiLoaded$;
107
+ }
108
+ const loader = new Loader({
109
+ apiKey: apiKey,
110
+ version: 'weekly',
111
+ libraries: ['places', 'drawing'],
112
+ });
113
+ return from(loader.importLibrary('maps')).pipe(map(() => true), shareReplay(), catchError(() => of(false)));
114
+ }
102
115
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: EcabsPlaceAutocompleteComponent, deps: [{ token: i0.NgZone }, { token: i1.UnsubscribeService }, { token: i0.ElementRef }, { token: i0.Injector }], target: i0.ɵɵFactoryTarget.Component });
103
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: EcabsPlaceAutocompleteComponent, selector: "ecabs-place-autocomplete", inputs: { showDeleteItem: "showDeleteItem", showSuffix: "showSuffix", countryCode: "countryCode", apiLoaded$: "apiLoaded$" }, outputs: { placeResult: "placeResult", deleteItem: "deleteItem" }, providers: [
116
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: EcabsPlaceAutocompleteComponent, selector: "ecabs-place-autocomplete", inputs: { showDeleteItem: "showDeleteItem", showSuffix: "showSuffix", countryCode: "countryCode", apiKey: "apiKey" }, outputs: { placeResult: "placeResult", deleteItem: "deleteItem" }, providers: [
104
117
  UnsubscribeService,
105
118
  {
106
119
  provide: NG_VALUE_ACCESSOR,
107
120
  useExisting: EcabsPlaceAutocompleteComponent,
108
121
  multi: true,
109
122
  },
110
- ], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<app-element-wrapper [data]=\"getData()\">\r\n <div class=\"form-field__input--wrapper w-full\">\r\n <input\r\n [placeholder]=\"placeholder\"\r\n [disabled]=\"disabled\"\r\n [(ngModel)]=\"value\"\r\n [id]=\"name\"\r\n class=\"form-field__input w-full\"\r\n autocorrect=\"off\"\r\n autocapitalize=\"off\"\r\n spellcheck=\"off\"\r\n (blur)=\"onTouch()\"\r\n />\r\n <div class=\"form-field__input--suffix\" *ngIf=\"showSuffix\">\r\n <mat-icon class=\"suffix\" *ngIf=\"!showDeleteItem && !value\">search</mat-icon>\r\n <mat-icon class=\"suffix cursor-pointer delete-button\" *ngIf=\"showDeleteItem\" (click)=\"onDeleteItem()\"\r\n >delete</mat-icon\r\n >\r\n <mat-icon class=\"suffix cursor-pointer\" *ngIf=\"!showDeleteItem && value\" (click)=\"onClean()\">close</mat-icon>\r\n </div>\r\n </div>\r\n</app-element-wrapper>\r\n", styles: ["mat-form-field{margin-bottom:0!important}.delete-button{color:var(--color-error)}\n"], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3.ElementWrapperComponent, selector: "app-element-wrapper", inputs: ["data", "showCloseIcon", "focusedFlag", "showPassword", "control"], outputs: ["showHidePassword", "clear", "increase", "decrease"] }, { kind: "directive", type: i4.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: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i5.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }] });
123
+ ], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<app-element-wrapper [data]=\"getData()\">\r\n <div class=\"form-field__input--wrapper w-full\">\r\n <input\r\n [placeholder]=\"placeholder\"\r\n [disabled]=\"disabled\"\r\n [(ngModel)]=\"value\"\r\n [id]=\"name\"\r\n class=\"form-field__input w-full\"\r\n autocorrect=\"off\"\r\n autocapitalize=\"off\"\r\n spellcheck=\"off\"\r\n (blur)=\"onTouch()\"\r\n />\r\n <div class=\"form-field__input--suffix\" *ngIf=\"showSuffix\">\r\n <mat-icon class=\"suffix\" *ngIf=\"!showDeleteItem && !value\">search</mat-icon>\r\n <mat-icon class=\"suffix cursor-pointer delete-button\" *ngIf=\"showDeleteItem\" (click)=\"onDeleteItem()\"\r\n >delete</mat-icon\r\n >\r\n <mat-icon class=\"suffix cursor-pointer\" *ngIf=\"!showDeleteItem && value\" (click)=\"onClean(); onTouch()\">close</mat-icon>\r\n </div>\r\n </div>\r\n</app-element-wrapper>\r\n", styles: ["mat-form-field{margin-bottom:0!important}.delete-button{color:var(--color-error)}\n"], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3.ElementWrapperComponent, selector: "app-element-wrapper", inputs: ["data", "showCloseIcon", "focusedFlag", "showPassword", "control"], outputs: ["showHidePassword", "clear", "increase", "decrease"] }, { kind: "directive", type: i4.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: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i5.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }] });
111
124
  }
112
125
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: EcabsPlaceAutocompleteComponent, decorators: [{
113
126
  type: Component,
@@ -118,18 +131,18 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
118
131
  useExisting: EcabsPlaceAutocompleteComponent,
119
132
  multi: true,
120
133
  },
121
- ], template: "<app-element-wrapper [data]=\"getData()\">\r\n <div class=\"form-field__input--wrapper w-full\">\r\n <input\r\n [placeholder]=\"placeholder\"\r\n [disabled]=\"disabled\"\r\n [(ngModel)]=\"value\"\r\n [id]=\"name\"\r\n class=\"form-field__input w-full\"\r\n autocorrect=\"off\"\r\n autocapitalize=\"off\"\r\n spellcheck=\"off\"\r\n (blur)=\"onTouch()\"\r\n />\r\n <div class=\"form-field__input--suffix\" *ngIf=\"showSuffix\">\r\n <mat-icon class=\"suffix\" *ngIf=\"!showDeleteItem && !value\">search</mat-icon>\r\n <mat-icon class=\"suffix cursor-pointer delete-button\" *ngIf=\"showDeleteItem\" (click)=\"onDeleteItem()\"\r\n >delete</mat-icon\r\n >\r\n <mat-icon class=\"suffix cursor-pointer\" *ngIf=\"!showDeleteItem && value\" (click)=\"onClean()\">close</mat-icon>\r\n </div>\r\n </div>\r\n</app-element-wrapper>\r\n", styles: ["mat-form-field{margin-bottom:0!important}.delete-button{color:var(--color-error)}\n"] }]
134
+ ], template: "<app-element-wrapper [data]=\"getData()\">\r\n <div class=\"form-field__input--wrapper w-full\">\r\n <input\r\n [placeholder]=\"placeholder\"\r\n [disabled]=\"disabled\"\r\n [(ngModel)]=\"value\"\r\n [id]=\"name\"\r\n class=\"form-field__input w-full\"\r\n autocorrect=\"off\"\r\n autocapitalize=\"off\"\r\n spellcheck=\"off\"\r\n (blur)=\"onTouch()\"\r\n />\r\n <div class=\"form-field__input--suffix\" *ngIf=\"showSuffix\">\r\n <mat-icon class=\"suffix\" *ngIf=\"!showDeleteItem && !value\">search</mat-icon>\r\n <mat-icon class=\"suffix cursor-pointer delete-button\" *ngIf=\"showDeleteItem\" (click)=\"onDeleteItem()\"\r\n >delete</mat-icon\r\n >\r\n <mat-icon class=\"suffix cursor-pointer\" *ngIf=\"!showDeleteItem && value\" (click)=\"onClean(); onTouch()\">close</mat-icon>\r\n </div>\r\n </div>\r\n</app-element-wrapper>\r\n", styles: ["mat-form-field{margin-bottom:0!important}.delete-button{color:var(--color-error)}\n"] }]
122
135
  }], ctorParameters: function () { return [{ type: i0.NgZone }, { type: i1.UnsubscribeService }, { type: i0.ElementRef }, { type: i0.Injector }]; }, propDecorators: { showDeleteItem: [{
123
136
  type: Input
124
137
  }], showSuffix: [{
125
138
  type: Input
126
139
  }], countryCode: [{
127
140
  type: Input
128
- }], apiLoaded$: [{
141
+ }], apiKey: [{
129
142
  type: Input
130
143
  }], placeResult: [{
131
144
  type: Output
132
145
  }], deleteItem: [{
133
146
  type: Output
134
147
  }] } });
135
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWNhYnMtcGxhY2UtYXV0b2NvbXBsZXRlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2VjYWJzLWNvbXBvbmVudHMvc3JjL2xpYi9lY2Ficy1wbGFjZS1hdXRvY29tcGxldGUvZWNhYnMtcGxhY2UtYXV0b2NvbXBsZXRlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2VjYWJzLWNvbXBvbmVudHMvc3JjL2xpYi9lY2Ficy1wbGFjZS1hdXRvY29tcGxldGUvZWNhYnMtcGxhY2UtYXV0b2NvbXBsZXRlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQWMsU0FBUyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRXJELE9BQU8sRUFFTCxTQUFTLEVBQWMsWUFBWSxFQUFZLEtBQUssRUFDcEQsTUFBTSxFQUNQLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBd0IsaUJBQWlCLEVBQUUsU0FBUyxFQUFzQixNQUFNLGdCQUFnQixDQUFDO0FBRXhHLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ3RELE9BQU8sb0JBQW9CLE1BQU0sc0JBQXNCLENBQUM7Ozs7Ozs7QUFpQnhELE1BQU0sT0FBTywrQkFDWCxTQUFRLG9CQUFvQjtJQTRCVDtJQUNBO0lBQ0E7SUFDQTtJQTdCVixjQUFjLEdBQUcsS0FBSyxDQUFDO0lBQ3ZCLFVBQVUsR0FBRyxLQUFLLENBQUM7SUFDbkIsV0FBVyxHQUFHLElBQUksQ0FBQztJQUNuQixVQUFVLENBQXNCO0lBRXRCLFdBQVcsR0FHekIsSUFBSSxZQUFZLEVBQUUsQ0FBQztJQUVkLFVBQVUsR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO0lBRTFDLEdBQUcsQ0FBVTtJQUViLElBQUksS0FBSztRQUNQLE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBQztJQUNsQixDQUFD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bCB9IGZyb20gJ3J4anMnO1xyXG5cclxuaW1wb3J0IHtcclxuICBBZnRlclZpZXdJbml0LFxyXG4gIENvbXBvbmVudCwgRWxlbWVudFJlZiwgRXZlbnRFbWl0dGVyLCBJbmplY3RvciwgSW5wdXQsIE5nWm9uZSwgT25DaGFuZ2VzLCBPbkRlc3Ryb3ksXHJcbiAgT3V0cHV0LCBTaW1wbGVDaGFuZ2VzXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBOR19WQUxVRV9BQ0NFU1NPUiwgTmdDb250cm9sLCBVbnR5cGVkRm9ybUNvbnRyb2wgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcblxyXG5pbXBvcnQgeyBVbnN1YnNjcmliZVNlcnZpY2UgfSBmcm9tICcuLi8uLi9wdWJsaWMtYXBpJztcclxuaW1wb3J0IEVsZW1lbnRCYXNlQ29tcG9uZW50IGZyb20gJy4uL2Jhc2UvZWxlbWVudC1iYXNlJztcclxuXHJcbmltcG9ydCBQbGFjZVJlc3VsdCA9IGdvb2dsZS5tYXBzLnBsYWNlcy5QbGFjZVJlc3VsdDtcclxuXHJcbkBDb21wb25lbnQoIHtcclxuICBzZWxlY3RvcjogJ2VjYWJzLXBsYWNlLWF1dG9jb21wbGV0ZScsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2VjYWJzLXBsYWNlLWF1dG9jb21wbGV0ZS5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbICcuL2VjYWJzLXBsYWNlLWF1dG9jb21wbGV0ZS5jb21wb25lbnQuc2NzcycgXSxcclxuICBwcm92aWRlcnM6IFtcclxuICAgIFVuc3Vic2NyaWJlU2VydmljZSxcclxuICAgIHtcclxuICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXHJcbiAgICAgIHVzZUV4aXN0aW5nOiBFY2Fic1BsYWNlQXV0b2NvbXBsZXRlQ29tcG9uZW50LFxyXG4gICAgICBtdWx0aTogdHJ1ZSxcclxuICAgIH0sXHJcbiAgXSxcclxufSApXHJcbmV4cG9ydCBjbGFzcyBFY2Fic1BsYWNlQXV0b2NvbXBsZXRlQ29tcG9uZW50XHJcbiAgZXh0ZW5kcyBFbGVtZW50QmFzZUNvbXBvbmVudFxyXG4gIGltcGxlbWVudHMgT25EZXN0cm95LCBPbkNoYW5nZXMsIEFmdGVyVmlld0luaXQsIENvbnRyb2xWYWx1ZUFjY2Vzc29yIHtcclxuICBASW5wdXQoKSBzaG93RGVsZXRlSXRlbSA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIHNob3dTdWZmaXggPSBmYWxzZTtcclxuICBASW5wdXQoKSBjb3VudHJ5Q29kZSA9ICdNVCc7XHJcbiAgQElucHV0KCkgYXBpTG9hZGVkJDogT2JzZXJ2YWJsZTxib29sZWFuPjtcclxuXHJcbiAgQE91dHB1dCgpIHJlYWRvbmx5IHBsYWNlUmVzdWx0OiBFdmVudEVtaXR0ZXI8e1xyXG4gICAgcGxhY2U6IFBsYWNlUmVzdWx0O1xyXG4gICAgdGV4dDogc3RyaW5nO1xyXG4gIH0+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG5cclxuICBAT3V0cHV0KCkgZGVsZXRlSXRlbSA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuXHJcbiAgdmFsITogc3RyaW5nO1xyXG5cclxuICBnZXQgdmFsdWUoKTogc3RyaW5nIHtcclxuICAgIHJldHVybiB0aGlzLnZhbDtcclxuICB9XHJcblxyXG4gIHNldCB2YWx1ZSggdmFsICkge1xyXG4gICAgaWYgKCB0aGlzLnZhbCAhPT0gdmFsICkge1xyXG4gICAgICB0aGlzLnZhbCA9IHZhbDtcclxuICAgICAgdGhpcy5vbkNoYW5nZSggdmFsICk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgcmVhZG9ubHkgbmdab25lOiBOZ1pvbmUsXHJcbiAgICBwcml2YXRlIHJlYWRvbmx5IHVuc3Vic2NyaWJlU2VydmljZTogVW5zdWJzY3JpYmVTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSByZWFkb25seSBlbGVtZW50UmVmOiBFbGVtZW50UmVmLFxyXG4gICAgcHJpdmF0ZSByZWFkb25seSBpbmplY3RvcjogSW5qZWN0b3JcclxuICApIHtcclxuICAgIHN1cGVyKCk7XHJcbiAgfVxyXG5cclxuICBuZ09uQ2hhbmdlcyggY2hhbmdlczogU2ltcGxlQ2hhbmdlcyApOiB2b2lkIHtcclxuICAgIGNvbnN0IHsgdmFsdWUsIGFwaUxvYWRlZCQgfSA9IGNoYW5nZXMgPz8ge307XHJcblxyXG4gICAgaWYgKCAhdmFsdWU/LmZpcnN0Q2hhbmdlICYmICF2YWx1ZT8uY3VycmVudFZhbHVlICkge1xyXG4gICAgICB0aGlzLm9uQ2xlYW4oKTtcclxuICAgIH1cclxuXHJcbiAgICBpZiAoIGFwaUxvYWRlZCQ/LmN1cnJlbnRWYWx1ZSApIHtcclxuICAgICAgdGhpcy5hcGlMb2FkZWQkLnBpcGUoXHJcbiAgICAgICAgdGFrZVVudGlsKCB0aGlzLnVuc3Vic2NyaWJlU2VydmljZS5zdWJzY3JpcHRpb24oKSApLFxyXG4gICAgICAgIGZpbHRlciggKCB2YWx1ZSApID0+ICEhdmFsdWUgKVxyXG4gICAgICApXHJcbiAgICAgICAgLnN1YnNjcmliZSggKCkgPT4ge1xyXG4gICAgICAgICAgdGhpcy5pbml0R29vZ2xlKCk7XHJcbiAgICAgICAgfSApO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xyXG4gICAgY29uc3QgbmdDb250cm9sOiBOZ0NvbnRyb2wgPSB0aGlzLmluamVjdG9yLmdldCggTmdDb250cm9sLCBudWxsICkgYXMgTmdDb250cm9sO1xyXG4gICAgaWYgKCBuZ0NvbnRyb2wgKSB7XHJcbiAgICAgIHRoaXMuY29udHJvbCA9IG5nQ29udHJvbC5jb250cm9sIGFzIFVudHlwZWRGb3JtQ29udHJvbDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgdGhpcy51bnN1YnNjcmliZVNlcnZpY2UuZGVzdHJveSgpO1xyXG4gIH1cclxuXHJcbiAgb25DaGFuZ2U6IGFueSA9ICgpID0+IHsgfTtcclxuXHJcbiAgb25Ub3VjaDogYW55ID0gKCkgPT4geyB9O1xyXG5cclxuICB3cml0ZVZhbHVlKCB2YWx1ZTogYW55ICk6IHZvaWQge1xyXG4gICAgdGhpcy52YWx1ZSA9IHZhbHVlO1xyXG4gIH1cclxuXHJcbiAgcmVnaXN0ZXJPbkNoYW5nZSggZm46IGFueSApOiB2b2lkIHtcclxuICAgIHRoaXMub25DaGFuZ2UgPSBmbjtcclxuICB9XHJcblxyXG4gIHJlZ2lzdGVyT25Ub3VjaGVkKCBmbjogYW55ICk6IHZvaWQge1xyXG4gICAgdGhpcy5vblRvdWNoID0gZm47XHJcbiAgfVxyXG5cclxuICBvbkRlbGV0ZUl0ZW0oKTogdm9pZCB7XHJcbiAgICB0aGlzLmRlbGV0ZUl0ZW0uZW1pdCgpO1xyXG4gIH1cclxuXHJcbiAgb25DbGVhbigpOiB2b2lkIHtcclxuICAgIHRoaXMudmFsdWUgPSAnJztcclxuICAgIHRoaXMub25Ub3VjaCgpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBpbml0R29vZ2xlKCk6IHZvaWQge1xyXG4gICAgY29uc3QgYXV0b2NvbXBsZXRlID0gbmV3IGdvb2dsZS5tYXBzLnBsYWNlcy5BdXRvY29tcGxldGUoIHRoaXMuZ2V0RWxlbWVudCgpLCB7XHJcbiAgICAgIHR5cGVzOiBbXSxcclxuICAgICAgY29tcG9uZW50UmVzdHJpY3Rpb25zOiB7IGNvdW50cnk6IFsgdGhpcy5jb3VudHJ5Q29kZSBdIH0sXHJcbiAgICAgIGZpZWxkczogWyAnYWRkcmVzc19jb21wb25lbnRzJywgJ2dlb21ldHJ5LmxvY2F0aW9uJyBdLFxyXG4gICAgfSApO1xyXG5cclxuICAgIGF1dG9jb21wbGV0ZS5hZGRMaXN0ZW5lciggJ3BsYWNlX2NoYW5nZWQnLCAoKSA9PiB7XHJcbiAgICAgIHRoaXMubmdab25lLnJ1biggKCkgPT4ge1xyXG4gICAgICAgIGNvbnN0IHBsYWNlID0gYXV0b2NvbXBsZXRlLmdldFBsYWNlKCk7XHJcblxyXG4gICAgICAgIC8vIHZlcmlmeSByZXN1bHRcclxuICAgICAgICBpZiAoIHBsYWNlLmdlb21ldHJ5ID09PSB1bmRlZmluZWQgfHwgcGxhY2UuZ2VvbWV0cnkgPT09IG51bGwgKSB7XHJcbiAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICB0aGlzLnBsYWNlUmVzdWx0LmVtaXQoIHtcclxuICAgICAgICAgIHBsYWNlOiBwbGFjZSxcclxuICAgICAgICAgIHRleHQ6IHRoaXMuZ2V0RWxlbWVudCgpLnZhbHVlLFxyXG4gICAgICAgIH0gKTtcclxuICAgICAgfSApO1xyXG4gICAgfSApO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBnZXRFbGVtZW50KCk6IGFueSB7XHJcbiAgICByZXR1cm4gdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQucXVlcnlTZWxlY3RvciggJy5mb3JtLWZpZWxkX19pbnB1dCcgKTtcclxuICB9XHJcbn1cclxuIiwiPGFwcC1lbGVtZW50LXdyYXBwZXIgW2RhdGFdPVwiZ2V0RGF0YSgpXCI+XHJcbiAgPGRpdiBjbGFzcz1cImZvcm0tZmllbGRfX2lucHV0LS13cmFwcGVyIHctZnVsbFwiPlxyXG4gICAgPGlucHV0XHJcbiAgICAgIFtwbGFjZWhvbGRlcl09XCJwbGFjZWhvbGRlclwiXHJcbiAgICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiXHJcbiAgICAgIFsobmdNb2RlbCldPVwidmFsdWVcIlxyXG4gICAgICBbaWRdPVwibmFtZVwiXHJcbiAgICAgIGNsYXNzPVwiZm9ybS1maWVsZF9faW5wdXQgdy1mdWxsXCJcclxuICAgICAgYXV0b2NvcnJlY3Q9XCJvZmZcIlxyXG4gICAgICBhdXRvY2FwaXRhbGl6ZT1cIm9mZlwiXHJcbiAgICAgIHNwZWxsY2hlY2s9XCJvZmZcIlxyXG4gICAgICAoYmx1cik9XCJvblRvdWNoKClcIlxyXG4gICAgLz5cclxuICAgICAgPGRpdiBjbGFzcz1cImZvcm0tZmllbGRfX2lucHV0LS1zdWZmaXhcIiAqbmdJZj1cInNob3dTdWZmaXhcIj5cclxuICAgICAgICA8bWF0LWljb24gY2xhc3M9XCJzdWZmaXhcIiAqbmdJZj1cIiFzaG93RGVsZXRlSXRlbSAmJiAhdmFsdWVcIj5zZWFyY2g8L21hdC1pY29uPlxyXG4gICAgICAgIDxtYXQtaWNvbiBjbGFzcz1cInN1ZmZpeCBjdXJzb3ItcG9pbnRlciBkZWxldGUtYnV0dG9uXCIgKm5nSWY9XCJzaG93RGVsZXRlSXRlbVwiIChjbGljayk9XCJvbkRlbGV0ZUl0ZW0oKVwiXHJcbiAgICAgICAgPmRlbGV0ZTwvbWF0LWljb25cclxuICAgICAgICA+XHJcbiAgICAgICAgPG1hdC1pY29uIGNsYXNzPVwic3VmZml4IGN1cnNvci1wb2ludGVyXCIgKm5nSWY9XCIhc2hvd0RlbGV0ZUl0ZW0gJiYgdmFsdWVcIiAoY2xpY2spPVwib25DbGVhbigpXCI+Y2xvc2U8L21hdC1pY29uPlxyXG4gICAgICA8L2Rpdj5cclxuICA8L2Rpdj5cclxuPC9hcHAtZWxlbWVudC13cmFwcGVyPlxyXG4iXX0=
148
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWNhYnMtcGxhY2UtYXV0b2NvbXBsZXRlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2VjYWJzLWNvbXBvbmVudHMvc3JjL2xpYi9lY2Ficy1wbGFjZS1hdXRvY29tcGxldGUvZWNhYnMtcGxhY2UtYXV0b2NvbXBsZXRlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2VjYWJzLWNvbXBvbmVudHMvc3JjL2xpYi9lY2Ficy1wbGFjZS1hdXRvY29tcGxldGUvZWNhYnMtcGxhY2UtYXV0b2NvbXBsZXRlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxHQUFHLEVBQWMsRUFBRSxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFN0YsT0FBTyxFQUVMLFNBQVMsRUFBYyxZQUFZLEVBQVksS0FBSyxFQUNwRCxNQUFNLEVBQ1AsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUF3QixpQkFBaUIsRUFBRSxTQUFTLEVBQXNCLE1BQU0sZ0JBQWdCLENBQUM7QUFFeEcsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDdEQsT0FBTyxvQkFBb0IsTUFBTSxzQkFBc0IsQ0FBQztBQUd4RCxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7Ozs7Ozs7QUFlbkQsTUFBTSxPQUFPLCtCQUNYLFNBQVEsb0JBQW9CO0lBNkJUO0lBQ0E7SUFDQTtJQUNBO0lBOUJWLGNBQWMsR0FBRyxLQUFLLENBQUM7SUFDdkIsVUFBVSxHQUFHLEtBQUssQ0FBQztJQUNuQixXQUFXLEdBQUcsSUFBSSxDQUFDO0lBQ25CLE1BQU0sQ0FBUztJQUVMLFdBQVcsR0FHekIsSUFBSSxZQUFZLEVBQUUsQ0FBQztJQUVkLFVBQVUsR0FBRyxJ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LElBQUksQ0FBRSxFQUNqQixXQUFXLEVBQUUsRUFDYixVQUFVLENBQUUsR0FBRyxFQUFFLENBQUMsRUFBRSxDQUFFLEtBQUssQ0FBRSxDQUFFLENBQ2hDLENBQUM7SUFDSixDQUFDO3dHQXpJVSwrQkFBK0I7NEZBQS9CLCtCQUErQiw0T0FUL0I7WUFDVCxrQkFBa0I7WUFDbEI7Z0JBQ0UsT0FBTyxFQUFFLGlCQUFpQjtnQkFDMUIsV0FBVyxFQUFFLCtCQUErQjtnQkFDNUMsS0FBSyxFQUFFLElBQUk7YUFDWjtTQUNGLHNFQzFCSCxxNkJBc0JBOzs0RkRNYSwrQkFBK0I7a0JBYjNDLFNBQVM7K0JBQ0UsMEJBQTBCLGFBR3pCO3dCQUNULGtCQUFrQjt3QkFDbEI7NEJBQ0UsT0FBTyxFQUFFLGlCQUFpQjs0QkFDMUIsV0FBVyxpQ0FBaUM7NEJBQzVDLEtBQUssRUFBRSxJQUFJO3lCQUNaO3FCQUNGOzhLQUtRLGNBQWM7c0JBQXRCLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLE1BQU07c0JBQWQsS0FBSztnQkFFYSxXQUFXO3NCQUE3QixNQUFNO2dCQUtHLFVBQVU7c0JBQW5CLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjYXRjaEVycm9yLCBmaWx0ZXIsIGZyb20sIG1hcCwgT2JzZXJ2YWJsZSwgb2YsIHNoYXJlUmVwbGF5LCB0YWtlVW50aWwgfSBmcm9tICdyeGpzJztcclxuXHJcbmltcG9ydCB7XHJcbiAgQWZ0ZXJWaWV3SW5pdCxcclxuICBDb21wb25lbnQsIEVsZW1lbnRSZWYsIEV2ZW50RW1pdHRlciwgSW5qZWN0b3IsIElucHV0LCBOZ1pvbmUsIE9uQ2hhbmdlcywgT25EZXN0cm95LFxyXG4gIE91dHB1dCwgU2ltcGxlQ2hhbmdlc1xyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBDb250cm9sVmFsdWVBY2Nlc3NvciwgTkdfVkFMVUVfQUNDRVNTT1IsIE5nQ29udHJvbCwgVW50eXBlZEZvcm1Db250cm9sIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5cclxuaW1wb3J0IHsgVW5zdWJzY3JpYmVTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vcHVibGljLWFwaSc7XHJcbmltcG9ydCBFbGVtZW50QmFzZUNvbXBvbmVudCBmcm9tICcuLi9iYXNlL2VsZW1lbnQtYmFzZSc7XHJcblxyXG5pbXBvcnQgUGxhY2VSZXN1bHQgPSBnb29nbGUubWFwcy5wbGFjZXMuUGxhY2VSZXN1bHQ7XHJcbmltcG9ydCB7IExvYWRlciB9IGZyb20gJ0Bnb29nbGVtYXBzL2pzLWFwaS1sb2FkZXInO1xyXG5cclxuQENvbXBvbmVudCgge1xyXG4gIHNlbGVjdG9yOiAnZWNhYnMtcGxhY2UtYXV0b2NvbXBsZXRlJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vZWNhYnMtcGxhY2UtYXV0b2NvbXBsZXRlLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsgJy4vZWNhYnMtcGxhY2UtYXV0b2NvbXBsZXRlLmNvbXBvbmVudC5zY3NzJyBdLFxyXG4gIHByb3ZpZGVyczogW1xyXG4gICAgVW5zdWJzY3JpYmVTZXJ2aWNlLFxyXG4gICAge1xyXG4gICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcclxuICAgICAgdXNlRXhpc3Rpbmc6IEVjYWJzUGxhY2VBdXRvY29tcGxldGVDb21wb25lbnQsXHJcbiAgICAgIG11bHRpOiB0cnVlLFxyXG4gICAgfSxcclxuICBdLFxyXG59IClcclxuZXhwb3J0IGNsYXNzIEVjYWJzUGxhY2VBdXRvY29tcGxldGVDb21wb25lbnRcclxuICBleHRlbmRzIEVsZW1lbnRCYXNlQ29tcG9uZW50XHJcbiAgaW1wbGVtZW50cyBPbkRlc3Ryb3ksIE9uQ2hhbmdlcywgQWZ0ZXJWaWV3SW5pdCwgQ29udHJvbFZhbHVlQWNjZXNzb3Ige1xyXG4gIEBJbnB1dCgpIHNob3dEZWxldGVJdGVtID0gZmFsc2U7XHJcbiAgQElucHV0KCkgc2hvd1N1ZmZpeCA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIGNvdW50cnlDb2RlID0gJ01UJztcclxuICBASW5wdXQoKSBhcGlLZXk6IHN0cmluZztcclxuXHJcbiAgQE91dHB1dCgpIHJlYWRvbmx5IHBsYWNlUmVzdWx0OiBFdmVudEVtaXR0ZXI8e1xyXG4gICAgcGxhY2U6IFBsYWNlUmVzdWx0O1xyXG4gICAgdGV4dDogc3RyaW5nO1xyXG4gIH0+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG5cclxuICBAT3V0cHV0KCkgZGVsZXRlSXRlbSA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuXHJcbiAgYXBpTG9hZGVkJDogT2JzZXJ2YWJsZTxib29sZWFuPjtcclxuICB2YWwhOiBzdHJpbmc7XHJcblxyXG4gIGdldCB2YWx1ZSgpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIHRoaXMudmFsO1xyXG4gIH1cclxuXHJcbiAgc2V0IHZhbHVlKCB2YWwgKSB7XHJcbiAgICBpZiAoIHZhbCAhPT0gdW5kZWZpbmVkICYmIHRoaXMudmFsICE9PSB2YWwgKSB7XHJcbiAgICAgIHRoaXMudmFsID0gdmFsO1xyXG4gICAgICB0aGlzLm9uQ2hhbmdlKCB2YWwgKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSByZWFkb25seSBuZ1pvbmU6IE5nWm9uZSxcclxuICAgIHByaXZhdGUgcmVhZG9ubHkgdW5zdWJzY3JpYmVTZXJ2aWNlOiBVbnN1YnNjcmliZVNlcnZpY2UsXHJcbiAgICBwcml2YXRlIHJlYWRvbmx5IGVsZW1lbnRSZWY6IEVsZW1lbnRSZWYsXHJcbiAgICBwcml2YXRlIHJlYWRvbmx5IGluamVjdG9yOiBJbmplY3RvclxyXG4gICkge1xyXG4gICAgc3VwZXIoKTtcclxuICB9XHJcblxyXG4gIG5nT25DaGFuZ2VzKCBjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzICk6IHZvaWQge1xyXG4gICAgY29uc3QgeyB2YWx1ZSwgYXBpS2V5IH0gPSBjaGFuZ2VzID8/IHt9O1xyXG5cclxuICAgIGlmICggIXZhbHVlPy5maXJzdENoYW5nZSAmJiAhdmFsdWU/LmN1cnJlbnRWYWx1ZSApIHtcclxuICAgICAgdGhpcy5vbkNsZWFuKCk7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKCBhcGlLZXk/LmN1cnJlbnRWYWx1ZSApIHtcclxuICAgICAgdGhpcy5hcGlMb2FkZWQkID0gdGhpcy5sb2FkR29vZ2xlTWFwKCB0aGlzLmFwaUtleSApO1xyXG5cclxuICAgICAgdGhpcy5hcGlMb2FkZWQkLnBpcGUoXHJcbiAgICAgICAgdGFrZVVudGlsKCB0aGlzLnVuc3Vic2NyaWJlU2VydmljZS5zdWJzY3JpcHRpb24oKSApLFxyXG4gICAgICAgIGZpbHRlciggKCB2YWx1ZSApID0+ICEhdmFsdWUgKVxyXG4gICAgICApXHJcbiAgICAgICAgLnN1YnNjcmliZSggKCkgPT4ge1xyXG4gICAgICAgICAgdGhpcy5pbml0R29vZ2xlKCk7XHJcbiAgICAgICAgfSApO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xyXG4gICAgY29uc3QgbmdDb250cm9sOiBOZ0NvbnRyb2wgPSB0aGlzLmluamVjdG9yLmdldCggTmdDb250cm9sLCBudWxsICkgYXMgTmdDb250cm9sO1xyXG4gICAgaWYgKCBuZ0NvbnRyb2wgKSB7XHJcbiAgICAgIHRoaXMuY29udHJvbCA9IG5nQ29udHJvbC5jb250cm9sIGFzIFVudHlwZWRGb3JtQ29udHJvbDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgdGhpcy51bnN1YnNjcmliZVNlcnZpY2UuZGVzdHJveSgpO1xyXG4gIH1cclxuXHJcbiAgb25DaGFuZ2U6IGFueSA9ICgpID0+IHsgfTtcclxuXHJcbiAgb25Ub3VjaDogYW55ID0gKCkgPT4geyB9O1xyXG5cclxuICB3cml0ZVZhbHVlKCB2YWx1ZTogYW55ICk6IHZvaWQge1xyXG4gICAgdGhpcy52YWx1ZSA9IHZhbHVlO1xyXG4gIH1cclxuXHJcbiAgcmVnaXN0ZXJPbkNoYW5nZSggZm46IGFueSApOiB2b2lkIHtcclxuICAgIHRoaXMub25DaGFuZ2UgPSBmbjtcclxuICB9XHJcblxyXG4gIHJlZ2lzdGVyT25Ub3VjaGVkKCBmbjogYW55ICk6IHZvaWQge1xyXG4gICAgdGhpcy5vblRvdWNoID0gZm47XHJcbiAgfVxyXG5cclxuICBvbkRlbGV0ZUl0ZW0oKTogdm9pZCB7XHJcbiAgICB0aGlzLmRlbGV0ZUl0ZW0uZW1pdCgpO1xyXG4gIH1cclxuXHJcbiAgb25DbGVhbigpOiB2b2lkIHtcclxuICAgIHRoaXMudmFsdWUgPSAnJztcclxuICB9XHJcblxyXG4gIHByaXZhdGUgaW5pdEdvb2dsZSgpOiB2b2lkIHtcclxuICAgIGNvbnN0IGF1dG9jb21wbGV0ZSA9IG5ldyBnb29nbGUubWFwcy5wbGFjZXMuQXV0b2NvbXBsZXRlKCB0aGlzLmdldEVsZW1lbnQoKSwge1xyXG4gICAgICB0eXBlczogW10sXHJcbiAgICAgIGNvbXBvbmVudFJlc3RyaWN0aW9uczogeyBjb3VudHJ5OiBbIHRoaXMuY291bnRyeUNvZGUgXSB9LFxyXG4gICAgICBmaWVsZHM6IFsgJ2FkZHJlc3NfY29tcG9uZW50cycsICdnZW9tZXRyeS5sb2NhdGlvbicgXSxcclxuICAgIH0gKTtcclxuXHJcbiAgICBhdXRvY29tcGxldGUuYWRkTGlzdGVuZXIoICdwbGFjZV9jaGFuZ2VkJywgKCkgPT4ge1xyXG4gICAgICB0aGlzLm5nWm9uZS5ydW4oICgpID0+IHtcclxuICAgICAgICBjb25zdCBwbGFjZSA9IGF1dG9jb21wbGV0ZS5nZXRQbGFjZSgpO1xyXG5cclxuICAgICAgICAvLyB2ZXJpZnkgcmVzdWx0XHJcbiAgICAgICAgaWYgKCBwbGFjZS5nZW9tZXRyeSA9PT0gdW5kZWZpbmVkIHx8IHBsYWNlLmdlb21ldHJ5ID09PSBudWxsICkge1xyXG4gICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgdGhpcy5wbGFjZVJlc3VsdC5lbWl0KCB7XHJcbiAgICAgICAgICBwbGFjZTogcGxhY2UsXHJcbiAgICAgICAgICB0ZXh0OiB0aGlzLmdldEVsZW1lbnQoKS52YWx1ZSxcclxuICAgICAgICB9ICk7XHJcbiAgICAgIH0gKTtcclxuICAgIH0gKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgZ2V0RWxlbWVudCgpOiBhbnkge1xyXG4gICAgcmV0dXJuIHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LnF1ZXJ5U2VsZWN0b3IoICcuZm9ybS1maWVsZF9faW5wdXQnICk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGxvYWRHb29nbGVNYXAoIGFwaUtleTogc3RyaW5nICk6IE9ic2VydmFibGU8Ym9vbGVhbj4ge1xyXG4gICAgaWYgKCB0aGlzLmFwaUxvYWRlZCQgKSB7XHJcbiAgICAgIHJldHVybiB0aGlzLmFwaUxvYWRlZCQ7XHJcbiAgICB9XHJcblxyXG4gICAgY29uc3QgbG9hZGVyID0gbmV3IExvYWRlcigge1xyXG4gICAgICBhcGlLZXk6IGFwaUtleSxcclxuICAgICAgdmVyc2lvbjogJ3dlZWtseScsXHJcbiAgICAgIGxpYnJhcmllczogWyAncGxhY2VzJywgJ2RyYXdpbmcnIF0sXHJcbiAgICB9ICk7XHJcblxyXG4gICAgcmV0dXJuIGZyb20oIGxvYWRlci5pbXBvcnRMaWJyYXJ5KCAnbWFwcycgKSApLnBpcGUoXHJcbiAgICAgIG1hcCggKCkgPT4gdHJ1ZSApLFxyXG4gICAgICBzaGFyZVJlcGxheSgpLFxyXG4gICAgICBjYXRjaEVycm9yKCAoKSA9PiBvZiggZmFsc2UgKSApXHJcbiAgICApO1xyXG4gIH1cclxufVxyXG4iLCI8YXBwLWVsZW1lbnQtd3JhcHBlciBbZGF0YV09XCJnZXREYXRhKClcIj5cclxuICA8ZGl2IGNsYXNzPVwiZm9ybS1maWVsZF9faW5wdXQtLXdyYXBwZXIgdy1mdWxsXCI+XHJcbiAgICA8aW5wdXRcclxuICAgICAgW3BsYWNlaG9sZGVyXT1cInBsYWNlaG9sZGVyXCJcclxuICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVkXCJcclxuICAgICAgWyhuZ01vZGVsKV09XCJ2YWx1ZVwiXHJcbiAgICAgIFtpZF09XCJuYW1lXCJcclxuICAgICAgY2xhc3M9XCJmb3JtLWZpZWxkX19pbnB1dCB3LWZ1bGxcIlxyXG4gICAgICBhdXRvY29ycmVjdD1cIm9mZlwiXHJcbiAgICAgIGF1dG9jYXBpdGFsaXplPVwib2ZmXCJcclxuICAgICAgc3BlbGxjaGVjaz1cIm9mZlwiXHJcbiAgICAgIChibHVyKT1cIm9uVG91Y2goKVwiXHJcbiAgICAvPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1maWVsZF9faW5wdXQtLXN1ZmZpeFwiICpuZ0lmPVwic2hvd1N1ZmZpeFwiPlxyXG4gICAgICAgIDxtYXQtaWNvbiBjbGFzcz1cInN1ZmZpeFwiICpuZ0lmPVwiIXNob3dEZWxldGVJdGVtICYmICF2YWx1ZVwiPnNlYXJjaDwvbWF0LWljb24+XHJcbiAgICAgICAgPG1hdC1pY29uIGNsYXNzPVwic3VmZml4IGN1cnNvci1wb2ludGVyIGRlbGV0ZS1idXR0b25cIiAqbmdJZj1cInNob3dEZWxldGVJdGVtXCIgKGNsaWNrKT1cIm9uRGVsZXRlSXRlbSgpXCJcclxuICAgICAgICA+ZGVsZXRlPC9tYXQtaWNvblxyXG4gICAgICAgID5cclxuICAgICAgICA8bWF0LWljb24gY2xhc3M9XCJzdWZmaXggY3Vyc29yLXBvaW50ZXJcIiAqbmdJZj1cIiFzaG93RGVsZXRlSXRlbSAmJiB2YWx1ZVwiIChjbGljayk9XCJvbkNsZWFuKCk7IG9uVG91Y2goKVwiPmNsb3NlPC9tYXQtaWNvbj5cclxuICAgICAgPC9kaXY+XHJcbiAgPC9kaXY+XHJcbjwvYXBwLWVsZW1lbnQtd3JhcHBlcj5cclxuIl19
@@ -8,7 +8,7 @@ import * as i2$1 from '@angular/material/icon';
8
8
  import { MatIconModule } from '@angular/material/icon';
9
9
  import * as i3 from '@angular/forms';
10
10
  import { NgControl, NG_VALUE_ACCESSOR, FormsModule, UntypedFormControl, ReactiveFormsModule, UntypedFormGroup, Validators } from '@angular/forms';
11
- import { BehaviorSubject, Subscription, combineLatest, map, debounceTime, Subject, takeUntil, first, filter } from 'rxjs';
11
+ import { BehaviorSubject, Subscription, combineLatest, map, debounceTime, Subject, takeUntil, first, filter, from, shareReplay, catchError, of } from 'rxjs';
12
12
  import * as i5 from '@angular/material/legacy-tooltip';
13
13
  import { MatLegacyTooltipModule } from '@angular/material/legacy-tooltip';
14
14
  import { MatLegacyInputModule } from '@angular/material/legacy-input';
@@ -49,6 +49,7 @@ import { MAT_LEGACY_DIALOG_DATA, MatLegacyDialogModule } from '@angular/material
49
49
  import { map as map$1 } from 'rxjs/operators';
50
50
  import * as i3$5 from '@angular/platform-browser';
51
51
  import { MatSidenavModule } from '@angular/material/sidenav';
52
+ import { Loader } from '@googlemaps/js-api-loader';
52
53
 
53
54
  class EcabsSpinnerComponent {
54
55
  size = 'medium';
@@ -4510,15 +4511,16 @@ class EcabsPlaceAutocompleteComponent extends ElementBaseComponent {
4510
4511
  showDeleteItem = false;
4511
4512
  showSuffix = false;
4512
4513
  countryCode = 'MT';
4513
- apiLoaded$;
4514
+ apiKey;
4514
4515
  placeResult = new EventEmitter();
4515
4516
  deleteItem = new EventEmitter();
4517
+ apiLoaded$;
4516
4518
  val;
4517
4519
  get value() {
4518
4520
  return this.val;
4519
4521
  }
4520
4522
  set value(val) {
4521
- if (this.val !== val) {
4523
+ if (val !== undefined && this.val !== val) {
4522
4524
  this.val = val;
4523
4525
  this.onChange(val);
4524
4526
  }
@@ -4531,11 +4533,12 @@ class EcabsPlaceAutocompleteComponent extends ElementBaseComponent {
4531
4533
  this.injector = injector;
4532
4534
  }
4533
4535
  ngOnChanges(changes) {
4534
- const { value, apiLoaded$ } = changes ?? {};
4536
+ const { value, apiKey } = changes ?? {};
4535
4537
  if (!value?.firstChange && !value?.currentValue) {
4536
4538
  this.onClean();
4537
4539
  }
4538
- if (apiLoaded$?.currentValue) {
4540
+ if (apiKey?.currentValue) {
4541
+ this.apiLoaded$ = this.loadGoogleMap(this.apiKey);
4539
4542
  this.apiLoaded$.pipe(takeUntil(this.unsubscribeService.subscription()), filter((value) => !!value))
4540
4543
  .subscribe(() => {
4541
4544
  this.initGoogle();
@@ -4567,7 +4570,6 @@ class EcabsPlaceAutocompleteComponent extends ElementBaseComponent {
4567
4570
  }
4568
4571
  onClean() {
4569
4572
  this.value = '';
4570
- this.onTouch();
4571
4573
  }
4572
4574
  initGoogle() {
4573
4575
  const autocomplete = new google.maps.places.Autocomplete(this.getElement(), {
@@ -4592,15 +4594,26 @@ class EcabsPlaceAutocompleteComponent extends ElementBaseComponent {
4592
4594
  getElement() {
4593
4595
  return this.elementRef.nativeElement.querySelector('.form-field__input');
4594
4596
  }
4597
+ loadGoogleMap(apiKey) {
4598
+ if (this.apiLoaded$) {
4599
+ return this.apiLoaded$;
4600
+ }
4601
+ const loader = new Loader({
4602
+ apiKey: apiKey,
4603
+ version: 'weekly',
4604
+ libraries: ['places', 'drawing'],
4605
+ });
4606
+ return from(loader.importLibrary('maps')).pipe(map(() => true), shareReplay(), catchError(() => of(false)));
4607
+ }
4595
4608
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: EcabsPlaceAutocompleteComponent, deps: [{ token: i0.NgZone }, { token: UnsubscribeService }, { token: i0.ElementRef }, { token: i0.Injector }], target: i0.ɵɵFactoryTarget.Component });
4596
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: EcabsPlaceAutocompleteComponent, selector: "ecabs-place-autocomplete", inputs: { showDeleteItem: "showDeleteItem", showSuffix: "showSuffix", countryCode: "countryCode", apiLoaded$: "apiLoaded$" }, outputs: { placeResult: "placeResult", deleteItem: "deleteItem" }, providers: [
4609
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: EcabsPlaceAutocompleteComponent, selector: "ecabs-place-autocomplete", inputs: { showDeleteItem: "showDeleteItem", showSuffix: "showSuffix", countryCode: "countryCode", apiKey: "apiKey" }, outputs: { placeResult: "placeResult", deleteItem: "deleteItem" }, providers: [
4597
4610
  UnsubscribeService,
4598
4611
  {
4599
4612
  provide: NG_VALUE_ACCESSOR,
4600
4613
  useExisting: EcabsPlaceAutocompleteComponent,
4601
4614
  multi: true,
4602
4615
  },
4603
- ], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<app-element-wrapper [data]=\"getData()\">\r\n <div class=\"form-field__input--wrapper w-full\">\r\n <input\r\n [placeholder]=\"placeholder\"\r\n [disabled]=\"disabled\"\r\n [(ngModel)]=\"value\"\r\n [id]=\"name\"\r\n class=\"form-field__input w-full\"\r\n autocorrect=\"off\"\r\n autocapitalize=\"off\"\r\n spellcheck=\"off\"\r\n (blur)=\"onTouch()\"\r\n />\r\n <div class=\"form-field__input--suffix\" *ngIf=\"showSuffix\">\r\n <mat-icon class=\"suffix\" *ngIf=\"!showDeleteItem && !value\">search</mat-icon>\r\n <mat-icon class=\"suffix cursor-pointer delete-button\" *ngIf=\"showDeleteItem\" (click)=\"onDeleteItem()\"\r\n >delete</mat-icon\r\n >\r\n <mat-icon class=\"suffix cursor-pointer\" *ngIf=\"!showDeleteItem && value\" (click)=\"onClean()\">close</mat-icon>\r\n </div>\r\n </div>\r\n</app-element-wrapper>\r\n", styles: ["mat-form-field{margin-bottom:0!important}.delete-button{color:var(--color-error)}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: ElementWrapperComponent, selector: "app-element-wrapper", inputs: ["data", "showCloseIcon", "focusedFlag", "showPassword", "control"], outputs: ["showHidePassword", "clear", "increase", "decrease"] }, { kind: "directive", type: i3.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: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i2$1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }] });
4616
+ ], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<app-element-wrapper [data]=\"getData()\">\r\n <div class=\"form-field__input--wrapper w-full\">\r\n <input\r\n [placeholder]=\"placeholder\"\r\n [disabled]=\"disabled\"\r\n [(ngModel)]=\"value\"\r\n [id]=\"name\"\r\n class=\"form-field__input w-full\"\r\n autocorrect=\"off\"\r\n autocapitalize=\"off\"\r\n spellcheck=\"off\"\r\n (blur)=\"onTouch()\"\r\n />\r\n <div class=\"form-field__input--suffix\" *ngIf=\"showSuffix\">\r\n <mat-icon class=\"suffix\" *ngIf=\"!showDeleteItem && !value\">search</mat-icon>\r\n <mat-icon class=\"suffix cursor-pointer delete-button\" *ngIf=\"showDeleteItem\" (click)=\"onDeleteItem()\"\r\n >delete</mat-icon\r\n >\r\n <mat-icon class=\"suffix cursor-pointer\" *ngIf=\"!showDeleteItem && value\" (click)=\"onClean(); onTouch()\">close</mat-icon>\r\n </div>\r\n </div>\r\n</app-element-wrapper>\r\n", styles: ["mat-form-field{margin-bottom:0!important}.delete-button{color:var(--color-error)}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: ElementWrapperComponent, selector: "app-element-wrapper", inputs: ["data", "showCloseIcon", "focusedFlag", "showPassword", "control"], outputs: ["showHidePassword", "clear", "increase", "decrease"] }, { kind: "directive", type: i3.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: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i2$1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }] });
4604
4617
  }
4605
4618
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: EcabsPlaceAutocompleteComponent, decorators: [{
4606
4619
  type: Component,
@@ -4611,14 +4624,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
4611
4624
  useExisting: EcabsPlaceAutocompleteComponent,
4612
4625
  multi: true,
4613
4626
  },
4614
- ], template: "<app-element-wrapper [data]=\"getData()\">\r\n <div class=\"form-field__input--wrapper w-full\">\r\n <input\r\n [placeholder]=\"placeholder\"\r\n [disabled]=\"disabled\"\r\n [(ngModel)]=\"value\"\r\n [id]=\"name\"\r\n class=\"form-field__input w-full\"\r\n autocorrect=\"off\"\r\n autocapitalize=\"off\"\r\n spellcheck=\"off\"\r\n (blur)=\"onTouch()\"\r\n />\r\n <div class=\"form-field__input--suffix\" *ngIf=\"showSuffix\">\r\n <mat-icon class=\"suffix\" *ngIf=\"!showDeleteItem && !value\">search</mat-icon>\r\n <mat-icon class=\"suffix cursor-pointer delete-button\" *ngIf=\"showDeleteItem\" (click)=\"onDeleteItem()\"\r\n >delete</mat-icon\r\n >\r\n <mat-icon class=\"suffix cursor-pointer\" *ngIf=\"!showDeleteItem && value\" (click)=\"onClean()\">close</mat-icon>\r\n </div>\r\n </div>\r\n</app-element-wrapper>\r\n", styles: ["mat-form-field{margin-bottom:0!important}.delete-button{color:var(--color-error)}\n"] }]
4627
+ ], template: "<app-element-wrapper [data]=\"getData()\">\r\n <div class=\"form-field__input--wrapper w-full\">\r\n <input\r\n [placeholder]=\"placeholder\"\r\n [disabled]=\"disabled\"\r\n [(ngModel)]=\"value\"\r\n [id]=\"name\"\r\n class=\"form-field__input w-full\"\r\n autocorrect=\"off\"\r\n autocapitalize=\"off\"\r\n spellcheck=\"off\"\r\n (blur)=\"onTouch()\"\r\n />\r\n <div class=\"form-field__input--suffix\" *ngIf=\"showSuffix\">\r\n <mat-icon class=\"suffix\" *ngIf=\"!showDeleteItem && !value\">search</mat-icon>\r\n <mat-icon class=\"suffix cursor-pointer delete-button\" *ngIf=\"showDeleteItem\" (click)=\"onDeleteItem()\"\r\n >delete</mat-icon\r\n >\r\n <mat-icon class=\"suffix cursor-pointer\" *ngIf=\"!showDeleteItem && value\" (click)=\"onClean(); onTouch()\">close</mat-icon>\r\n </div>\r\n </div>\r\n</app-element-wrapper>\r\n", styles: ["mat-form-field{margin-bottom:0!important}.delete-button{color:var(--color-error)}\n"] }]
4615
4628
  }], ctorParameters: function () { return [{ type: i0.NgZone }, { type: UnsubscribeService }, { type: i0.ElementRef }, { type: i0.Injector }]; }, propDecorators: { showDeleteItem: [{
4616
4629
  type: Input
4617
4630
  }], showSuffix: [{
4618
4631
  type: Input
4619
4632
  }], countryCode: [{
4620
4633
  type: Input
4621
- }], apiLoaded$: [{
4634
+ }], apiKey: [{
4622
4635
  type: Input
4623
4636
  }], placeResult: [{
4624
4637
  type: Output