ecabs-components 1.1.47 → 1.1.49

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.
package/README.md CHANGED
@@ -107,3 +107,5 @@ To get more help on the Angular CLI use `ng help` or go check out the [Angular C
107
107
  - **v1.1.45** — Added default validation of date range
108
108
  - **v1.1.46** — Add `ViewChild` reference for `MatRadioGroup` and update event type in `EcabsRadioButtonListComponent`.
109
109
  - **v1.1.47** — Add `Title` and `dynamic` content support to `EcabsEmptyPlaceholderComponent`.
110
+ - **v1.1.48** — Implement `EcabsPlaceAutocompleteV2Component` to support waypoints history, query change handling, and dropdown suggestions display.
111
+ - **v1.1.49** — Add support for `splitButtonsWidth` in `EcabsDialogConfirmComponent` and update button styling.`.
@@ -0,0 +1,26 @@
1
+ export const WAYPOINT_SUGGESTIONS = [
2
+ {
3
+ suggestion_id: '123',
4
+ additional_info: 'Fastlane Ltd.',
5
+ location: { lat: 35.9038623, lng: 14.4129533 },
6
+ place_id: 'ChIJk9v0xtlRDhMRhrtrt2ChIic',
7
+ source: 'history',
8
+ },
9
+ ];
10
+ export const WAYPOINT_SUGGESTIONS2 = [
11
+ {
12
+ suggestion_id: '1234',
13
+ additional_info: 'Fastlane Ltd. 2000',
14
+ location: { lat: 35.9038623, lng: 14.4129533 },
15
+ place_id: 'ChIJk9v0xtlRDhMRhrtrt2ChIic',
16
+ source: 'history',
17
+ },
18
+ {
19
+ suggestion_id: '1234',
20
+ additional_info: '448 D’Argens Garden, Leyland, Sliema, Malta',
21
+ location: { lat: 35.9095011, lng: 14.4945982 },
22
+ place_id: 'ChIJk9v0xtlRDhMRhrtrt2ChIic',
23
+ source: 'history',
24
+ },
25
+ ];
26
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2F5cG9pbnQubW9kZWxzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZWNhYnMtY29tcG9uZW50cy9zcmMvbGliL2Jhc2UvbW9kZWxzL3dheXBvaW50Lm1vZGVscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUErQkEsTUFBTSxDQUFDLE1BQU0sb0JBQW9CLEdBQXlCO0lBQ3hEO1FBQ0UsYUFBYSxFQUFFLEtBQUs7UUFDcEIsZUFBZSxFQUFFLGVBQWU7UUFDaEMsUUFBUSxFQUFFLEVBQUUsR0FBRyxFQUFFLFVBQVUsRUFBRSxHQUFHLEVBQUUsVUFBVSxFQUFFO1FBQzlDLFFBQVEsRUFBRSw2QkFBNkI7UUFDdkMsTUFBTSxFQUFFLFNBQVM7S0FDbEI7Q0FDRixDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0scUJBQXFCLEdBQXlCO0lBQ3pEO1FBQ0UsYUFBYSxFQUFFLE1BQU07UUFDckIsZUFBZSxFQUFFLG9CQUFvQjtRQUNyQyxRQUFRLEVBQUUsRUFBRSxHQUFHLEVBQUUsVUFBVSxFQUFFLEdBQUcsRUFBRSxVQUFVLEVBQUU7UUFDOUMsUUFBUSxFQUFFLDZCQUE2QjtRQUN2QyxNQUFNLEVBQUUsU0FBUztLQUNsQjtJQUNEO1FBQ0UsYUFBYSxFQUFFLE1BQU07UUFDckIsZUFBZSxFQUFFLDZDQUE2QztRQUM5RCxRQUFRLEVBQUUsRUFBRSxHQUFHLEVBQUUsVUFBVSxFQUFFLEdBQUcsRUFBRSxVQUFVLEVBQUU7UUFDOUMsUUFBUSxFQUFFLDZCQUE2QjtRQUN2QyxNQUFNLEVBQUUsU0FBUztLQUNsQjtDQUNGLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUGxhY2VSZXN1bHQgPSBnb29nbGUubWFwcy5wbGFjZXMuUGxhY2VSZXN1bHQ7XHJcbmltcG9ydCB7IFdheXBvaW50VHlwZUVudW0gfSBmcm9tICcuLi9jb25zdHMvd2F5cG9pbnQuY29uc3RzJztcclxuaW1wb3J0IFByZWRpY3Rpb25UZXJtID0gZ29vZ2xlLm1hcHMucGxhY2VzLlByZWRpY3Rpb25UZXJtO1xyXG5cclxuZXhwb3J0IGludGVyZmFjZSBXYXlwb2ludFN1Z2dlc3Rpb24ge1xyXG4gIHN1Z2dlc3Rpb25faWQ/OiBzdHJpbmc7XHJcbiAgYWRkaXRpb25hbF9pbmZvPzogc3RyaW5nO1xyXG4gIGxvY2F0aW9uPzogR2VvUG9pbnQ7XHJcbiAgcGxhY2VfaWQ6IHN0cmluZztcclxuICBzb3VyY2U/OiBzdHJpbmc7XHJcbiAgZnJlcXVlbmN5PzogbnVtYmVyO1xyXG4gIGxhc3RfdmlzaXQ/OiBzdHJpbmcgfCBEYXRlO1xyXG4gIGdlb19rZXk/OiBzdHJpbmc7XHJcbiAgcHJlZGljdGlvbl90ZXJtPzogUHJlZGljdGlvblRlcm1bXTtcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBHZW9Qb2ludCB7XHJcbiAgbGF0OiBudW1iZXI7XHJcbiAgbG5nOiBudW1iZXI7XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgR29vZ2xlUGxhY2VSZXN1bHQge1xyXG4gIHBsYWNlOiBQbGFjZVJlc3VsdDtcclxuICB0ZXh0OiBzdHJpbmc7XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgV2F5cG9pbnRRdWVyeUNoYW5nZSB7XHJcbiAgd2F5cG9pbnRfdHlwZTogV2F5cG9pbnRUeXBlRW51bTtcclxuICBxdWVyeTogc3RyaW5nO1xyXG59XHJcblxyXG5leHBvcnQgY29uc3QgV0FZUE9JTlRfU1VHR0VTVElPTlM6IFdheXBvaW50U3VnZ2VzdGlvbltdID0gW1xyXG4gIHtcclxuICAgIHN1Z2dlc3Rpb25faWQ6ICcxMjMnLFxyXG4gICAgYWRkaXRpb25hbF9pbmZvOiAnRmFzdGxhbmUgTHRkLicsXHJcbiAgICBsb2NhdGlvbjogeyBsYXQ6IDM1LjkwMzg2MjMsIGxuZzogMTQuNDEyOTUzMyB9LFxyXG4gICAgcGxhY2VfaWQ6ICdDaElKazl2MHh0bFJEaE1SaHJ0cnQyQ2hJaWMnLFxyXG4gICAgc291cmNlOiAnaGlzdG9yeScsXHJcbiAgfSxcclxuXTtcclxuXHJcbmV4cG9ydCBjb25zdCBXQVlQT0lOVF9TVUdHRVNUSU9OUzI6IFdheXBvaW50U3VnZ2VzdGlvbltdID0gW1xyXG4gIHtcclxuICAgIHN1Z2dlc3Rpb25faWQ6ICcxMjM0JyxcclxuICAgIGFkZGl0aW9uYWxfaW5mbzogJ0Zhc3RsYW5lIEx0ZC4gMjAwMCcsXHJcbiAgICBsb2NhdGlvbjogeyBsYXQ6IDM1LjkwMzg2MjMsIGxuZzogMTQuNDEyOTUzMyB9LFxyXG4gICAgcGxhY2VfaWQ6ICdDaElKazl2MHh0bFJEaE1SaHJ0cnQyQ2hJaWMnLFxyXG4gICAgc291cmNlOiAnaGlzdG9yeScsXHJcbiAgfSxcclxuICB7XHJcbiAgICBzdWdnZXN0aW9uX2lkOiAnMTIzNCcsXHJcbiAgICBhZGRpdGlvbmFsX2luZm86ICc0NDggROKAmUFyZ2VucyBHYXJkZW4sIExleWxhbmQsIFNsaWVtYSwgTWFsdGEnLFxyXG4gICAgbG9jYXRpb246IHsgbGF0OiAzNS45MDk1MDExLCBsbmc6IDE0LjQ5NDU5ODIgfSxcclxuICAgIHBsYWNlX2lkOiAnQ2hJSms5djB4dGxSRGhNUmhydHJ0MkNoSWljJyxcclxuICAgIHNvdXJjZTogJ2hpc3RvcnknLFxyXG4gIH0sXHJcbl07XHJcbiJdfQ==
@@ -0,0 +1,17 @@
1
+ import { Pipe } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ export class SeparatorAppendPipe {
4
+ transform(value, nextSibling, separator = ', ') {
5
+ return value && nextSibling ? `${value}${separator}` : value;
6
+ }
7
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SeparatorAppendPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
8
+ static ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "16.2.12", ngImport: i0, type: SeparatorAppendPipe, isStandalone: true, name: "separatorAppend" });
9
+ }
10
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SeparatorAppendPipe, decorators: [{
11
+ type: Pipe,
12
+ args: [{
13
+ name: 'separatorAppend',
14
+ standalone: true,
15
+ }]
16
+ }] });
17
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VwYXJhdG9yLWFwcGVuZC5waXBlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZWNhYnMtY29tcG9uZW50cy9zcmMvbGliL2Jhc2UvcGlwZXMvc2VwYXJhdG9yLWFwcGVuZC5waXBlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxJQUFJLEVBQWlCLE1BQU0sZUFBZSxDQUFDOztBQU1wRCxNQUFNLE9BQU8sbUJBQW1CO0lBQzlCLFNBQVMsQ0FBQyxLQUFhLEVBQUUsV0FBb0IsRUFBRSxTQUFTLEdBQUcsSUFBSTtRQUM3RCxPQUFPLEtBQUssSUFBSSxXQUFXLENBQUMsQ0FBQyxDQUFDLEdBQUcsS0FBSyxHQUFHLFNBQVMsRUFBRSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUM7SUFDL0QsQ0FBQzt3R0FIVSxtQkFBbUI7c0dBQW5CLG1CQUFtQjs7NEZBQW5CLG1CQUFtQjtrQkFKL0IsSUFBSTttQkFBQztvQkFDSixJQUFJLEVBQUUsaUJBQWlCO29CQUN2QixVQUFVLEVBQUUsSUFBSTtpQkFDakIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBQaXBlLCBQaXBlVHJhbnNmb3JtIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG5AUGlwZSh7XHJcbiAgbmFtZTogJ3NlcGFyYXRvckFwcGVuZCcsXHJcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcclxufSlcclxuZXhwb3J0IGNsYXNzIFNlcGFyYXRvckFwcGVuZFBpcGUgaW1wbGVtZW50cyBQaXBlVHJhbnNmb3JtIHtcclxuICB0cmFuc2Zvcm0odmFsdWU6IHN0cmluZywgbmV4dFNpYmxpbmc/OiBzdHJpbmcsIHNlcGFyYXRvciA9ICcsICcpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIHZhbHVlICYmIG5leHRTaWJsaW5nID8gYCR7dmFsdWV9JHtzZXBhcmF0b3J9YCA6IHZhbHVlO1xyXG4gIH1cclxufVxyXG4iXX0=
@@ -67,13 +67,13 @@ export class EcabsDialogConfirmComponent {
67
67
  this.dialogRef.close(this.data.popoverResult ?? false);
68
68
  }
69
69
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: EcabsDialogConfirmComponent, deps: [{ token: MAT_DIALOG_DATA }, { token: i1.MatDialogRef }, { token: i2.UnsubscribeService }, { token: i3.EcabsComponentsService }, { token: i0.DestroyRef }], target: i0.ɵɵFactoryTarget.Component });
70
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: EcabsDialogConfirmComponent, selector: "ecabs-dialog-confirm", providers: [UnsubscribeService], ngImport: i0, template: "<div matDialogTitle *ngIf=\"data?.titleTemplate; else title\">\r\n <div class=\"flex items-center justify-between modal-title\">\r\n <ng-container *ngTemplateOutlet=\"data?.titleTemplate\"></ng-container>\r\n\r\n <mat-icon *ngIf=\"!!data?.isPopover\" (click)=\"closeOnPopover()\"\r\n (keydown.enter)=\"closeOnPopover()\"\r\n class=\"mat-icon material-icons-outlined justify-end icon--close\">\r\n close\r\n </mat-icon>\r\n </div>\r\n</div>\r\n\r\n\r\n<ng-template #title>\r\n <div matDialogTitle *ngIf=\"data?.title || !!data?.isPopover\" class=\"flex flex-column\">\r\n <div *ngIf=\"!!data?.isPopover\" class=\"w-full flex justify-end\">\r\n <mat-icon (click)=\"closeOnPopover()\"\r\n (keydown.enter)=\"closeOnPopover()\"\r\n class=\"mat-icon material-icons-outlined float-right icon--close mb-2\">\r\n close\r\n </mat-icon>\r\n </div>\r\n\r\n <div class=\"font-semibold heading--xs modal-title {{ data.titleColor }}\" *ngIf=\"data.title\">\r\n {{ data.title }}\r\n </div>\r\n </div>\r\n</ng-template>\r\n\r\n\r\n<div mat-dialog-content>\r\n <div *ngIf=\"data?.content\">{{ data?.content }}</div>\r\n <ng-container *ngTemplateOutlet=\"data?.message\"></ng-container>\r\n</div>\r\n\r\n<div *ngIf=\"(!!data?.cancelLabel || !!data?.confirmLabel) && !data?.hideCtaButtons\">\r\n <div mat-dialog-actions\r\n [ngClass]=\"{'gap-y-4': data?.useFullButtonSize}\"\r\n class=\"btn__group flex justify-end w-full\">\r\n <ecabs-buttons *ngIf=\"!!data?.cancelLabel\"\r\n [full]=\"data?.useFullButtonSize\"\r\n (click)=\"closeFalsey()\"\r\n (keydown.enter)=\"closeFalsey()\"\r\n [style]=\"data?.cancelStyle || 'stroked'\">\r\n {{ data?.cancelLabel }}\r\n </ecabs-buttons>\r\n\r\n <ecabs-buttons *ngIf=\"!!data?.confirmLabel\"\r\n [full]=\"data?.useFullButtonSize\"\r\n [color]=\"data?.color || color\"\r\n [style]=\"data?.confirmStyle || 'flat'\"\r\n [loading]=\"data?.loading$ | async\"\r\n (click)=\"closeDialog()\"\r\n [disabled]=\"data?.disableConfirm$ | async\"\r\n (keydown.enter)=\"closeDialog()\">\r\n {{ data?.confirmLabel }}\r\n </ecabs-buttons>\r\n </div>\r\n</div>\r\n", styles: [":host .mat-icon.icon--close,:host ::ng-deep .mat-icon.icon--close{cursor:pointer;color:var(--color-gray-500)}.modal-title.warn{color:var(--color-error)!important}\n"], dependencies: [{ kind: "directive", type: i4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i1.MatDialogTitle, selector: "[mat-dialog-title], [matDialogTitle]", inputs: ["id"], exportAs: ["matDialogTitle"] }, { kind: "directive", type: i1.MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { kind: "directive", type: i1.MatDialogActions, selector: "[mat-dialog-actions], mat-dialog-actions, [matDialogActions]", inputs: ["align"] }, { kind: "component", type: i5.ButtonsComponent, selector: "ecabs-buttons", inputs: ["disabled", "loading", "size", "type", "style", "full", "color"] }, { kind: "component", type: i6.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "pipe", type: i4.AsyncPipe, name: "async" }] });
70
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: EcabsDialogConfirmComponent, selector: "ecabs-dialog-confirm", providers: [UnsubscribeService], ngImport: i0, template: "<div matDialogTitle *ngIf=\"data?.titleTemplate; else title\">\r\n <div class=\"flex items-center justify-between modal-title\">\r\n <ng-container *ngTemplateOutlet=\"data?.titleTemplate\"></ng-container>\r\n\r\n <mat-icon *ngIf=\"!!data?.isPopover\" (click)=\"closeOnPopover()\"\r\n (keydown.enter)=\"closeOnPopover()\"\r\n class=\"mat-icon material-icons-outlined justify-end icon--close\">\r\n close\r\n </mat-icon>\r\n </div>\r\n</div>\r\n\r\n\r\n<ng-template #title>\r\n <div matDialogTitle *ngIf=\"data?.title || !!data?.isPopover\" class=\"flex flex-column\">\r\n <div *ngIf=\"!!data?.isPopover\" class=\"w-full flex justify-end\">\r\n <mat-icon (click)=\"closeOnPopover()\"\r\n (keydown.enter)=\"closeOnPopover()\"\r\n class=\"mat-icon material-icons-outlined float-right icon--close mb-2\">\r\n close\r\n </mat-icon>\r\n </div>\r\n\r\n <div class=\"font-semibold heading--xs modal-title {{ data.titleColor }}\" *ngIf=\"data.title\">\r\n {{ data.title }}\r\n </div>\r\n </div>\r\n</ng-template>\r\n\r\n\r\n<div mat-dialog-content>\r\n <div *ngIf=\"data?.content\">{{ data?.content }}</div>\r\n <ng-container *ngTemplateOutlet=\"data?.message\"></ng-container>\r\n</div>\r\n\r\n<div *ngIf=\"(!!data?.cancelLabel || !!data?.confirmLabel) && !data?.hideCtaButtons\">\r\n <div mat-dialog-actions\r\n [ngClass]=\"{'gap-y-4': data?.useFullButtonSize || data?.splitButtonsWidth}\"\r\n class=\"btn__group flex justify-end w-full\">\r\n <ecabs-buttons *ngIf=\"!!data?.cancelLabel\"\r\n [ngClass]=\"{'flex-1': data?.splitButtonsWidth}\"\r\n [full]=\"data?.useFullButtonSize\"\r\n (click)=\"closeFalsey()\"\r\n (keydown.enter)=\"closeFalsey()\"\r\n [style]=\"data?.cancelStyle || 'stroked'\">\r\n {{ data?.cancelLabel }}\r\n </ecabs-buttons>\r\n\r\n <ecabs-buttons *ngIf=\"!!data?.confirmLabel\"\r\n [ngClass]=\"{'flex-1': data?.splitButtonsWidth}\"\r\n [full]=\"data?.useFullButtonSize\"\r\n [color]=\"data?.color || color\"\r\n [style]=\"data?.confirmStyle || 'flat'\"\r\n [loading]=\"data?.loading$ | async\"\r\n (click)=\"closeDialog()\"\r\n [disabled]=\"data?.disableConfirm$ | async\"\r\n (keydown.enter)=\"closeDialog()\">\r\n {{ data?.confirmLabel }}\r\n </ecabs-buttons>\r\n </div>\r\n</div>\r\n", styles: [":host .mat-icon.icon--close,:host ::ng-deep .mat-icon.icon--close{cursor:pointer;color:var(--color-gray-500)}.modal-title.warn{color:var(--color-error)!important}\n"], dependencies: [{ kind: "directive", type: i4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i1.MatDialogTitle, selector: "[mat-dialog-title], [matDialogTitle]", inputs: ["id"], exportAs: ["matDialogTitle"] }, { kind: "directive", type: i1.MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { kind: "directive", type: i1.MatDialogActions, selector: "[mat-dialog-actions], mat-dialog-actions, [matDialogActions]", inputs: ["align"] }, { kind: "component", type: i5.ButtonsComponent, selector: "ecabs-buttons", inputs: ["disabled", "loading", "size", "type", "style", "full", "color"] }, { kind: "component", type: i6.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "pipe", type: i4.AsyncPipe, name: "async" }] });
71
71
  }
72
72
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: EcabsDialogConfirmComponent, decorators: [{
73
73
  type: Component,
74
- args: [{ selector: 'ecabs-dialog-confirm', providers: [UnsubscribeService], template: "<div matDialogTitle *ngIf=\"data?.titleTemplate; else title\">\r\n <div class=\"flex items-center justify-between modal-title\">\r\n <ng-container *ngTemplateOutlet=\"data?.titleTemplate\"></ng-container>\r\n\r\n <mat-icon *ngIf=\"!!data?.isPopover\" (click)=\"closeOnPopover()\"\r\n (keydown.enter)=\"closeOnPopover()\"\r\n class=\"mat-icon material-icons-outlined justify-end icon--close\">\r\n close\r\n </mat-icon>\r\n </div>\r\n</div>\r\n\r\n\r\n<ng-template #title>\r\n <div matDialogTitle *ngIf=\"data?.title || !!data?.isPopover\" class=\"flex flex-column\">\r\n <div *ngIf=\"!!data?.isPopover\" class=\"w-full flex justify-end\">\r\n <mat-icon (click)=\"closeOnPopover()\"\r\n (keydown.enter)=\"closeOnPopover()\"\r\n class=\"mat-icon material-icons-outlined float-right icon--close mb-2\">\r\n close\r\n </mat-icon>\r\n </div>\r\n\r\n <div class=\"font-semibold heading--xs modal-title {{ data.titleColor }}\" *ngIf=\"data.title\">\r\n {{ data.title }}\r\n </div>\r\n </div>\r\n</ng-template>\r\n\r\n\r\n<div mat-dialog-content>\r\n <div *ngIf=\"data?.content\">{{ data?.content }}</div>\r\n <ng-container *ngTemplateOutlet=\"data?.message\"></ng-container>\r\n</div>\r\n\r\n<div *ngIf=\"(!!data?.cancelLabel || !!data?.confirmLabel) && !data?.hideCtaButtons\">\r\n <div mat-dialog-actions\r\n [ngClass]=\"{'gap-y-4': data?.useFullButtonSize}\"\r\n class=\"btn__group flex justify-end w-full\">\r\n <ecabs-buttons *ngIf=\"!!data?.cancelLabel\"\r\n [full]=\"data?.useFullButtonSize\"\r\n (click)=\"closeFalsey()\"\r\n (keydown.enter)=\"closeFalsey()\"\r\n [style]=\"data?.cancelStyle || 'stroked'\">\r\n {{ data?.cancelLabel }}\r\n </ecabs-buttons>\r\n\r\n <ecabs-buttons *ngIf=\"!!data?.confirmLabel\"\r\n [full]=\"data?.useFullButtonSize\"\r\n [color]=\"data?.color || color\"\r\n [style]=\"data?.confirmStyle || 'flat'\"\r\n [loading]=\"data?.loading$ | async\"\r\n (click)=\"closeDialog()\"\r\n [disabled]=\"data?.disableConfirm$ | async\"\r\n (keydown.enter)=\"closeDialog()\">\r\n {{ data?.confirmLabel }}\r\n </ecabs-buttons>\r\n </div>\r\n</div>\r\n", styles: [":host .mat-icon.icon--close,:host ::ng-deep .mat-icon.icon--close{cursor:pointer;color:var(--color-gray-500)}.modal-title.warn{color:var(--color-error)!important}\n"] }]
74
+ args: [{ selector: 'ecabs-dialog-confirm', providers: [UnsubscribeService], template: "<div matDialogTitle *ngIf=\"data?.titleTemplate; else title\">\r\n <div class=\"flex items-center justify-between modal-title\">\r\n <ng-container *ngTemplateOutlet=\"data?.titleTemplate\"></ng-container>\r\n\r\n <mat-icon *ngIf=\"!!data?.isPopover\" (click)=\"closeOnPopover()\"\r\n (keydown.enter)=\"closeOnPopover()\"\r\n class=\"mat-icon material-icons-outlined justify-end icon--close\">\r\n close\r\n </mat-icon>\r\n </div>\r\n</div>\r\n\r\n\r\n<ng-template #title>\r\n <div matDialogTitle *ngIf=\"data?.title || !!data?.isPopover\" class=\"flex flex-column\">\r\n <div *ngIf=\"!!data?.isPopover\" class=\"w-full flex justify-end\">\r\n <mat-icon (click)=\"closeOnPopover()\"\r\n (keydown.enter)=\"closeOnPopover()\"\r\n class=\"mat-icon material-icons-outlined float-right icon--close mb-2\">\r\n close\r\n </mat-icon>\r\n </div>\r\n\r\n <div class=\"font-semibold heading--xs modal-title {{ data.titleColor }}\" *ngIf=\"data.title\">\r\n {{ data.title }}\r\n </div>\r\n </div>\r\n</ng-template>\r\n\r\n\r\n<div mat-dialog-content>\r\n <div *ngIf=\"data?.content\">{{ data?.content }}</div>\r\n <ng-container *ngTemplateOutlet=\"data?.message\"></ng-container>\r\n</div>\r\n\r\n<div *ngIf=\"(!!data?.cancelLabel || !!data?.confirmLabel) && !data?.hideCtaButtons\">\r\n <div mat-dialog-actions\r\n [ngClass]=\"{'gap-y-4': data?.useFullButtonSize || data?.splitButtonsWidth}\"\r\n class=\"btn__group flex justify-end w-full\">\r\n <ecabs-buttons *ngIf=\"!!data?.cancelLabel\"\r\n [ngClass]=\"{'flex-1': data?.splitButtonsWidth}\"\r\n [full]=\"data?.useFullButtonSize\"\r\n (click)=\"closeFalsey()\"\r\n (keydown.enter)=\"closeFalsey()\"\r\n [style]=\"data?.cancelStyle || 'stroked'\">\r\n {{ data?.cancelLabel }}\r\n </ecabs-buttons>\r\n\r\n <ecabs-buttons *ngIf=\"!!data?.confirmLabel\"\r\n [ngClass]=\"{'flex-1': data?.splitButtonsWidth}\"\r\n [full]=\"data?.useFullButtonSize\"\r\n [color]=\"data?.color || color\"\r\n [style]=\"data?.confirmStyle || 'flat'\"\r\n [loading]=\"data?.loading$ | async\"\r\n (click)=\"closeDialog()\"\r\n [disabled]=\"data?.disableConfirm$ | async\"\r\n (keydown.enter)=\"closeDialog()\">\r\n {{ data?.confirmLabel }}\r\n </ecabs-buttons>\r\n </div>\r\n</div>\r\n", styles: [":host .mat-icon.icon--close,:host ::ng-deep .mat-icon.icon--close{cursor:pointer;color:var(--color-gray-500)}.modal-title.warn{color:var(--color-error)!important}\n"] }]
75
75
  }], ctorParameters: function () { return [{ type: undefined, decorators: [{
76
76
  type: Inject,
77
77
  args: [MAT_DIALOG_DATA]
78
78
  }] }, { type: i1.MatDialogRef }, { type: i2.UnsubscribeService }, { type: i3.EcabsComponentsService }, { type: i0.DestroyRef }]; } });
79
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWNhYnMtZGlhbG9nLWNvbmZpcm0uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZWNhYnMtY29tcG9uZW50cy9zcmMvbGliL2VjYWJzLWRpYWxvZy1jb25maXJtL2VjYWJzLWRpYWxvZy1jb25maXJtLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2VjYWJzLWNvbXBvbmVudHMvc3JjL2xpYi9lY2Ficy1kaWFsb2ctY29uZmlybS9lY2Ficy1kaWFsb2ctY29uZmlybS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUVULE1BQU0sR0FJUCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsZUFBZSxFQUFnQixNQUFNLDBCQUEwQixDQUFDO0FBRXpFLE9BQU8sRUFBYyxTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDN0MsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFNMUUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7Ozs7Ozs7O0FBUWhFLE1BQU0sT0FBTywyQkFBMkI7SUFLSjtJQUN6QjtJQUNVO0lBQ0E7SUFDQTtJQVJuQixPQUFPLENBQVM7SUFDaEIsS0FBSyxHQUFpQixTQUFTLENBQUM7SUFFaEMsWUFDa0MsSUFBdUMsRUFDaEUsU0FBMEQsRUFDaEQsa0JBQXNDLEVBQ3RDLGlCQUF5QyxFQUN6QyxVQUFzQjtRQUpQLFNBQUksR0FBSixJQUFJLENBQW1DO1FBQ2hFLGNBQVMsR0FBVCxTQUFTLENBQWlEO1FBQ2hELHVCQUFrQixHQUFsQixrQkFBa0IsQ0FBb0I7UUFDdEMsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUF3QjtRQUN6QyxlQUFVLEdBQVYsVUFBVSxDQUFZO0lBQ3RDLENBQUM7SUFFSixZQUFZLENBQVk7SUFFeEIsUUFBUTtRQUNOLElBQUksQ0FBQyxpQkFBaUI7YUFDbkIsU0FBUyxFQUFFO2FBQ1gsSUFBSSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQzthQUN6QyxTQUFTLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRTtZQUNwQixNQUFNLEVBQUUsSUFBSSxFQUFFLEdBQUcsTUFBTSxJQUFJLEVBQUUsQ0FBQztZQUM5QixNQUFNLEVBQ0osWUFBWSxFQUNaLFdBQVcsRUFDWCxpQkFBaUIsRUFDakIsZ0JBQWdCLEdBQ2pCLEdBQUcsSUFBSSxDQUFDLElBQUksSUFBSSxFQUFFLENBQUM7WUFFcEIsSUFBSSxJQUFJLEVBQUU7Z0JBQ1IsSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZLEdBQUcsQ0FBQyxpQkFBaUI7b0JBQ3pDLENBQUMsQ0FBQyxZQUFZLElBQUksSUFBSSxFQUFFLFlBQVk7b0JBQ3BDLENBQUMsQ0FBQyxTQUFTLENBQUM7Z0JBQ2QsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLEdBQUcsQ0FBQyxnQkFBZ0I7b0JBQ3ZDLENBQUMsQ0FBQyxXQUFXLElBQUksSUFBSSxFQUFFLFdBQVc7b0JBQ2xDLENBQUMsQ0FBQyxTQUFTLENBQUM7YUFDZjtRQUNILENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVELFdBQVc7UUFDVCxJQUFJLENBQUMsa0JBQWtCLENBQUMsT0FBTyxFQUFFLENBQUM7SUFDcEMsQ0FBQztJQUVELFdBQVc7UUFDVCxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFO1lBQ3RCLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUTtnQkFDaEIsRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxZQUFZLEVBQUUsQ0FBQyxDQUFDO2lCQUN4RCxTQUFTLENBQUMsQ0FBQyxPQUFPLEVBQUUsRUFBRTtnQkFDckIsSUFBSSxDQUFDLE9BQU8sRUFBRTtvQkFDWixJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsSUFBSSxJQUFJLENBQUMsQ0FBQztpQkFDdkQ7WUFDSCxDQUFDLENBQUMsQ0FBQztTQUNOO2FBQU07WUFDTCxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsSUFBSSxJQUFJLENBQUMsQ0FBQztTQUN2RDtJQUNILENBQUM7SUFFRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZLElBQUksS0FBSyxDQUFDLENBQUM7SUFDeEQsQ0FBQztJQUVELGNBQWM7UUFDWixJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsSUFBSSxLQUFLLENBQUMsQ0FBQztJQUN6RCxDQUFDO3dHQTlEVSwyQkFBMkIsa0JBSzVCLGVBQWU7NEZBTGQsMkJBQTJCLCtDQUYzQixDQUFDLGtCQUFrQixDQUFDLDBCQ3ZCakMsNDJFQTJEQTs7NEZEbENhLDJCQUEyQjtrQkFOdkMsU0FBUzsrQkFDRSxzQkFBc0IsYUFHckIsQ0FBQyxrQkFBa0IsQ0FBQzs7MEJBTzVCLE1BQU07MkJBQUMsZUFBZSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgQ29tcG9uZW50LFxyXG4gIERlc3Ryb3lSZWYsXHJcbiAgSW5qZWN0LFxyXG4gIE9uRGVzdHJveSxcclxuICBPbkluaXQsXHJcbiAgVGVtcGxhdGVSZWYsXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IE1BVF9ESUFMT0dfREFUQSwgTWF0RGlhbG9nUmVmIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nJztcclxuaW1wb3J0IHsgVGhlbWVQYWxldHRlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvY29yZSc7XHJcbmltcG9ydCB7IE9ic2VydmFibGUsIHRha2VVbnRpbCB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBVbnN1YnNjcmliZVNlcnZpY2UgfSBmcm9tICcuLi9iYXNlL3NlcnZpY2VzL3Vuc3Vic2NyaWJlLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBCdXR0b25TdHlsZSB9IGZyb20gJy4uL2Jhc2UvY29uc3RzL2J1dHRvbnMuY29uc3RzJztcclxuaW1wb3J0IHtcclxuICBFY2Fic0NvbXBvbmVudHNTZXJ2aWNlLFxyXG4gIEVjYWJzaTE4bixcclxufSBmcm9tICcuLi9iYXNlL3NlcnZpY2VzL2VjYWJzLWNvbXBvbmVudHMuc2VydmljZSc7XHJcbmltcG9ydCB7IHRha2VVbnRpbERlc3Ryb3llZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUvcnhqcy1pbnRlcm9wJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnZWNhYnMtZGlhbG9nLWNvbmZpcm0nLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9lY2Ficy1kaWFsb2ctY29uZmlybS5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vZWNhYnMtZGlhbG9nLWNvbmZpcm0uY29tcG9uZW50LnNjc3MnXSxcclxuICBwcm92aWRlcnM6IFtVbnN1YnNjcmliZVNlcnZpY2VdLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgRWNhYnNEaWFsb2dDb25maXJtQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xyXG4gIG1lc3NhZ2U6IHN0cmluZztcclxuICBjb2xvcjogVGhlbWVQYWxldHRlID0gJ3ByaW1hcnknO1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIEBJbmplY3QoTUFUX0RJQUxPR19EQVRBKSBwdWJsaWMgZGF0YTogRWNhYnNEaWFsb2dDb25maXJtQ29tcG9uZW50Q29uZmlnLFxyXG4gICAgcHVibGljIGRpYWxvZ1JlZjogTWF0RGlhbG9nUmVmPEVjYWJzRGlhbG9nQ29uZmlybUNvbXBvbmVudENvbmZpZz4sXHJcbiAgICBwcml2YXRlIHJlYWRvbmx5IHVuc3Vic2NyaWJlU2VydmljZTogVW5zdWJzY3JpYmVTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSByZWFkb25seSBjb21wb25lbnRzU2VydmljZTogRWNhYnNDb21wb25lbnRzU2VydmljZSxcclxuICAgIHByaXZhdGUgcmVhZG9ubHkgZGVzdHJveVJlZjogRGVzdHJveVJlZixcclxuICApIHt9XHJcblxyXG4gIHRyYW5zbGF0aW9uczogRWNhYnNpMThuO1xyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMuY29tcG9uZW50c1NlcnZpY2VcclxuICAgICAgLmdldENvbmZpZygpXHJcbiAgICAgIC5waXBlKHRha2VVbnRpbERlc3Ryb3llZCh0aGlzLmRlc3Ryb3lSZWYpKVxyXG4gICAgICAuc3Vic2NyaWJlKChjb25maWcpID0+IHtcclxuICAgICAgICBjb25zdCB7IGkxOG4gfSA9IGNvbmZpZyA/PyB7fTtcclxuICAgICAgICBjb25zdCB7XHJcbiAgICAgICAgICBjb25maXJtTGFiZWwsXHJcbiAgICAgICAgICBjYW5jZWxMYWJlbCxcclxuICAgICAgICAgIGhpZGVDb25maXJtQnV0dG9uLFxyXG4gICAgICAgICAgaGlkZUNhbmNlbEJ1dHRvbixcclxuICAgICAgICB9ID0gdGhpcy5kYXRhID8/IHt9O1xyXG5cclxuICAgICAgICBpZiAoaTE4bikge1xyXG4gICAgICAgICAgdGhpcy5kYXRhLmNvbmZpcm1MYWJlbCA9ICFoaWRlQ29uZmlybUJ1dHRvblxyXG4gICAgICAgICAgICA/IGNvbmZpcm1MYWJlbCB8fCBpMThuPy5jb25maXJtTGFiZWxcclxuICAgICAgICAgICAgOiB1bmRlZmluZWQ7XHJcbiAgICAgICAgICB0aGlzLmRhdGEuY2FuY2VsTGFiZWwgPSAhaGlkZUNhbmNlbEJ1dHRvblxyXG4gICAgICAgICAgICA/IGNhbmNlbExhYmVsIHx8IGkxOG4/LmNhbmNlbExhYmVsXHJcbiAgICAgICAgICAgIDogdW5kZWZpbmVkO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgfVxyXG5cclxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgIHRoaXMudW5zdWJzY3JpYmVTZXJ2aWNlLmRlc3Ryb3koKTtcclxuICB9XHJcblxyXG4gIGNsb3NlRGlhbG9nKCk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMuZGF0YS5sb2FkaW5nJCkge1xyXG4gICAgICB0aGlzLmRhdGEubG9hZGluZyRcclxuICAgICAgICA/LnBpcGUodGFrZVVudGlsKHRoaXMudW5zdWJzY3JpYmVTZXJ2aWNlLnN1YnNjcmlwdGlvbigpKSlcclxuICAgICAgICAuc3Vic2NyaWJlKChsb2FkaW5nKSA9PiB7XHJcbiAgICAgICAgICBpZiAoIWxvYWRpbmcpIHtcclxuICAgICAgICAgICAgdGhpcy5kaWFsb2dSZWYuY2xvc2UodGhpcy5kYXRhLmNvbmZpcm1SZXN1bHQgPz8gdHJ1ZSk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLmRpYWxvZ1JlZi5jbG9zZSh0aGlzLmRhdGEuY29uZmlybVJlc3VsdCA/PyB0cnVlKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGNsb3NlRmFsc2V5KCk6IHZvaWQge1xyXG4gICAgdGhpcy5kaWFsb2dSZWYuY2xvc2UodGhpcy5kYXRhLmNhbmNlbFJlc3VsdCA/PyBmYWxzZSk7XHJcbiAgfVxyXG5cclxuICBjbG9zZU9uUG9wb3ZlcigpOiB2b2lkIHtcclxuICAgIHRoaXMuZGlhbG9nUmVmLmNsb3NlKHRoaXMuZGF0YS5wb3BvdmVyUmVzdWx0ID8/IGZhbHNlKTtcclxuICB9XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgRWNhYnNEaWFsb2dDb25maXJtQ29tcG9uZW50Q29uZmlnIHtcclxuICB0aXRsZT86IHN0cmluZztcclxuICB0aXRsZVRlbXBsYXRlPzogVGVtcGxhdGVSZWY8Tm9uTnVsbGFibGU8dW5rbm93bj4+O1xyXG4gIG1lc3NhZ2U/OiBUZW1wbGF0ZVJlZjxOb25OdWxsYWJsZTx1bmtub3duPj47XHJcbiAgY29sb3I/OiBUaGVtZVBhbGV0dGU7XHJcbiAgdGl0bGVDb2xvcj86IFRoZW1lUGFsZXR0ZTtcclxuICBjb25maXJtTGFiZWw/OiBzdHJpbmc7XHJcbiAgY29uZmlybVN0eWxlPzogQnV0dG9uU3R5bGU7XHJcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcclxuICBjb25maXJtUmVzdWx0PzogYW55O1xyXG4gIGNhbmNlbExhYmVsPzogc3RyaW5nO1xyXG4gIGNhbmNlbFN0eWxlPzogQnV0dG9uU3R5bGU7XHJcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcclxuICBjYW5jZWxSZXN1bHQ/OiBhbnk7XHJcbiAgaGlkZUN0YUJ1dHRvbnM/OiBib29sZWFuO1xyXG4gIGhpZGVDb25maXJtQnV0dG9uPzogYm9vbGVhbjtcclxuICBoaWRlQ2FuY2VsQnV0dG9uPzogYm9vbGVhbjtcclxuICBpc1BvcG92ZXI/OiBib29sZWFuO1xyXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XHJcbiAgcG9wb3ZlclJlc3VsdD86IGFueTtcclxuICBjb250ZW50Pzogc3RyaW5nO1xyXG4gIHVzZUZ1bGxCdXR0b25TaXplPzogYm9vbGVhbjtcclxuICBsb2FkaW5nJD86IE9ic2VydmFibGU8Ym9vbGVhbj47XHJcbiAgZGlzYWJsZUNvbmZpcm0kPzogT2JzZXJ2YWJsZTxib29sZWFuPjtcclxufVxyXG4iLCI8ZGl2IG1hdERpYWxvZ1RpdGxlICpuZ0lmPVwiZGF0YT8udGl0bGVUZW1wbGF0ZTsgZWxzZSB0aXRsZVwiPlxyXG4gIDxkaXYgY2xhc3M9XCJmbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWJldHdlZW4gbW9kYWwtdGl0bGVcIj5cclxuICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJkYXRhPy50aXRsZVRlbXBsYXRlXCI+PC9uZy1jb250YWluZXI+XHJcblxyXG4gICAgPG1hdC1pY29uICpuZ0lmPVwiISFkYXRhPy5pc1BvcG92ZXJcIiAoY2xpY2spPVwiY2xvc2VPblBvcG92ZXIoKVwiXHJcbiAgICAgICAgICAgICAgKGtleWRvd24uZW50ZXIpPVwiY2xvc2VPblBvcG92ZXIoKVwiXHJcbiAgICAgICAgICAgICAgY2xhc3M9XCJtYXQtaWNvbiBtYXRlcmlhbC1pY29ucy1vdXRsaW5lZCBqdXN0aWZ5LWVuZCBpY29uLS1jbG9zZVwiPlxyXG4gICAgICBjbG9zZVxyXG4gICAgPC9tYXQtaWNvbj5cclxuICA8L2Rpdj5cclxuPC9kaXY+XHJcblxyXG5cclxuPG5nLXRlbXBsYXRlICN0aXRsZT5cclxuICA8ZGl2IG1hdERpYWxvZ1RpdGxlICpuZ0lmPVwiZGF0YT8udGl0bGUgfHwgISFkYXRhPy5pc1BvcG92ZXJcIiBjbGFzcz1cImZsZXggZmxleC1jb2x1bW5cIj5cclxuICAgIDxkaXYgKm5nSWY9XCIhIWRhdGE/LmlzUG9wb3ZlclwiIGNsYXNzPVwidy1mdWxsIGZsZXgganVzdGlmeS1lbmRcIj5cclxuICAgICAgPG1hdC1pY29uIChjbGljayk9XCJjbG9zZU9uUG9wb3ZlcigpXCJcclxuICAgICAgICAgICAgICAgIChrZXlkb3duLmVudGVyKT1cImNsb3NlT25Qb3BvdmVyKClcIlxyXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJtYXQtaWNvbiBtYXRlcmlhbC1pY29ucy1vdXRsaW5lZCBmbG9hdC1yaWdodCBpY29uLS1jbG9zZSBtYi0yXCI+XHJcbiAgICAgICAgY2xvc2VcclxuICAgICAgPC9tYXQtaWNvbj5cclxuICAgIDwvZGl2PlxyXG5cclxuICAgIDxkaXYgY2xhc3M9XCJmb250LXNlbWlib2xkIGhlYWRpbmctLXhzIG1vZGFsLXRpdGxlIHt7IGRhdGEudGl0bGVDb2xvciB9fVwiICpuZ0lmPVwiZGF0YS50aXRsZVwiPlxyXG4gICAgICB7eyBkYXRhLnRpdGxlIH19XHJcbiAgICA8L2Rpdj5cclxuICA8L2Rpdj5cclxuPC9uZy10ZW1wbGF0ZT5cclxuXHJcblxyXG48ZGl2IG1hdC1kaWFsb2ctY29udGVudD5cclxuICA8ZGl2ICpuZ0lmPVwiZGF0YT8uY29udGVudFwiPnt7IGRhdGE/LmNvbnRlbnQgfX08L2Rpdj5cclxuICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiZGF0YT8ubWVzc2FnZVwiPjwvbmctY29udGFpbmVyPlxyXG48L2Rpdj5cclxuXHJcbjxkaXYgKm5nSWY9XCIoISFkYXRhPy5jYW5jZWxMYWJlbCB8fCAhIWRhdGE/LmNvbmZpcm1MYWJlbCkgJiYgIWRhdGE/LmhpZGVDdGFCdXR0b25zXCI+XHJcbiAgPGRpdiBtYXQtZGlhbG9nLWFjdGlvbnNcclxuICAgICAgIFtuZ0NsYXNzXT1cInsnZ2FwLXktNCc6IGRhdGE/LnVzZUZ1bGxCdXR0b25TaXplfVwiXHJcbiAgICAgICBjbGFzcz1cImJ0bl9fZ3JvdXAgZmxleCBqdXN0aWZ5LWVuZCB3LWZ1bGxcIj5cclxuICAgIDxlY2Ficy1idXR0b25zICpuZ0lmPVwiISFkYXRhPy5jYW5jZWxMYWJlbFwiXHJcbiAgICAgICAgICAgICAgICAgICBbZnVsbF09XCJkYXRhPy51c2VGdWxsQnV0dG9uU2l6ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiY2xvc2VGYWxzZXkoKVwiXHJcbiAgICAgICAgICAgICAgICAgICAoa2V5ZG93bi5lbnRlcik9XCJjbG9zZUZhbHNleSgpXCJcclxuICAgICAgICAgICAgICAgICAgIFtzdHlsZV09XCJkYXRhPy5jYW5jZWxTdHlsZSB8fCAnc3Ryb2tlZCdcIj5cclxuICAgICAge3sgZGF0YT8uY2FuY2VsTGFiZWwgfX1cclxuICAgIDwvZWNhYnMtYnV0dG9ucz5cclxuXHJcbiAgICA8ZWNhYnMtYnV0dG9ucyAqbmdJZj1cIiEhZGF0YT8uY29uZmlybUxhYmVsXCJcclxuICAgICAgICAgICAgICAgICAgIFtmdWxsXT1cImRhdGE/LnVzZUZ1bGxCdXR0b25TaXplXCJcclxuICAgICAgICAgICAgICAgICAgIFtjb2xvcl09XCJkYXRhPy5jb2xvciB8fCBjb2xvclwiXHJcbiAgICAgICAgICAgICAgICAgICBbc3R5bGVdPVwiZGF0YT8uY29uZmlybVN0eWxlIHx8ICdmbGF0J1wiXHJcbiAgICAgICAgICAgICAgICAgICBbbG9hZGluZ109XCJkYXRhPy5sb2FkaW5nJCB8IGFzeW5jXCJcclxuICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJjbG9zZURpYWxvZygpXCJcclxuICAgICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJkYXRhPy5kaXNhYmxlQ29uZmlybSQgfCBhc3luY1wiXHJcbiAgICAgICAgICAgICAgICAgICAoa2V5ZG93bi5lbnRlcik9XCJjbG9zZURpYWxvZygpXCI+XHJcbiAgICAgIHt7IGRhdGE/LmNvbmZpcm1MYWJlbCB9fVxyXG4gICAgPC9lY2Ficy1idXR0b25zPlxyXG4gIDwvZGl2PlxyXG48L2Rpdj5cclxuIl19
79
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWNhYnMtZGlhbG9nLWNvbmZpcm0uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZWNhYnMtY29tcG9uZW50cy9zcmMvbGliL2VjYWJzLWRpYWxvZy1jb25maXJtL2VjYWJzLWRpYWxvZy1jb25maXJtLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2VjYWJzLWNvbXBvbmVudHMvc3JjL2xpYi9lY2Ficy1kaWFsb2ctY29uZmlybS9lY2Ficy1kaWFsb2ctY29uZmlybS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUVULE1BQU0sR0FJUCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsZUFBZSxFQUFnQixNQUFNLDBCQUEwQixDQUFDO0FBRXpFLE9BQU8sRUFBYyxTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDN0MsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFNMUUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7Ozs7Ozs7O0FBUWhFLE1BQU0sT0FBTywyQkFBMkI7SUFLSjtJQUN6QjtJQUNVO0lBQ0E7SUFDQTtJQVJuQixPQUFPLENBQVM7SUFDaEIsS0FBSyxHQUFpQixTQUFTLENBQUM7SUFFaEMsWUFDa0MsSUFBdUMsRUFDaEUsU0FBMEQsRUFDaEQsa0JBQXNDLEVBQ3RDLGlCQUF5QyxFQUN6QyxVQUFzQjtRQUpQLFNBQUksR0FBSixJQUFJLENBQW1DO1FBQ2hFLGNBQVMsR0FBVCxTQUFTLENBQWlEO1FBQ2hELHVCQUFrQixHQUFsQixrQkFBa0IsQ0FBb0I7UUFDdEMsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUF3QjtRQUN6QyxlQUFVLEdBQVYsVUFBVSxDQUFZO0lBQ3RDLENBQUM7SUFFSixZQUFZLENBQVk7SUFFeEIsUUFBUTtRQUNOLElBQUksQ0FBQyxpQkFBaUI7YUFDbkIsU0FBUyxFQUFFO2FBQ1gsSUFBSSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQzthQUN6QyxTQUFTLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRTtZQUNwQixNQUFNLEVBQUUsSUFBSSxFQUFFLEdBQUcsTUFBTSxJQUFJLEVBQUUsQ0FBQztZQUM5QixNQUFNLEVBQ0osWUFBWSxFQUNaLFdBQVcsRUFDWCxpQkFBaUIsRUFDakIsZ0JBQWdCLEdBQ2pCLEdBQUcsSUFBSSxDQUFDLElBQUksSUFBSSxFQUFFLENBQUM7WUFFcEIsSUFBSSxJQUFJLEVBQUU7Z0JBQ1IsSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZLEdBQUcsQ0FBQyxpQkFBaUI7b0JBQ3pDLENBQUMsQ0FBQyxZQUFZLElBQUksSUFBSSxFQUFFLFlBQVk7b0JBQ3BDLENBQUMsQ0FBQyxTQUFTLENBQUM7Z0JBQ2QsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLEdBQUcsQ0FBQyxnQkFBZ0I7b0JBQ3ZDLENBQUMsQ0FBQyxXQUFXLElBQUksSUFBSSxFQUFFLFdBQVc7b0JBQ2xDLENBQUMsQ0FBQyxTQUFTLENBQUM7YUFDZjtRQUNILENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVELFdBQVc7UUFDVCxJQUFJLENBQUMsa0JBQWtCLENBQUMsT0FBTyxFQUFFLENBQUM7SUFDcEMsQ0FBQztJQUVELFdBQVc7UUFDVCxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFO1lBQ3RCLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUTtnQkFDaEIsRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxZQUFZLEVBQUUsQ0FBQyxDQUFDO2lCQUN4RCxTQUFTLENBQUMsQ0FBQyxPQUFPLEVBQUUsRUFBRTtnQkFDckIsSUFBSSxDQUFDLE9BQU8sRUFBRTtvQkFDWixJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsSUFBSSxJQUFJLENBQUMsQ0FBQztpQkFDdkQ7WUFDSCxDQUFDLENBQUMsQ0FBQztTQUNOO2FBQU07WUFDTCxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsSUFBSSxJQUFJLENBQUMsQ0FBQztTQUN2RDtJQUNILENBQUM7SUFFRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZLElBQUksS0FBSyxDQUFDLENBQUM7SUFDeEQsQ0FBQztJQUVELGNBQWM7UUFDWixJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsSUFBSSxLQUFLLENBQUMsQ0FBQztJQUN6RCxDQUFDO3dHQTlEVSwyQkFBMkIsa0JBSzVCLGVBQWU7NEZBTGQsMkJBQTJCLCtDQUYzQixDQUFDLGtCQUFrQixDQUFDLDBCQ3ZCakMsd2hGQTZEQTs7NEZEcENhLDJCQUEyQjtrQkFOdkMsU0FBUzsrQkFDRSxzQkFBc0IsYUFHckIsQ0FBQyxrQkFBa0IsQ0FBQzs7MEJBTzVCLE1BQU07MkJBQUMsZUFBZSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgQ29tcG9uZW50LFxyXG4gIERlc3Ryb3lSZWYsXHJcbiAgSW5qZWN0LFxyXG4gIE9uRGVzdHJveSxcclxuICBPbkluaXQsXHJcbiAgVGVtcGxhdGVSZWYsXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IE1BVF9ESUFMT0dfREFUQSwgTWF0RGlhbG9nUmVmIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nJztcclxuaW1wb3J0IHsgVGhlbWVQYWxldHRlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvY29yZSc7XHJcbmltcG9ydCB7IE9ic2VydmFibGUsIHRha2VVbnRpbCB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBVbnN1YnNjcmliZVNlcnZpY2UgfSBmcm9tICcuLi9iYXNlL3NlcnZpY2VzL3Vuc3Vic2NyaWJlLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBCdXR0b25TdHlsZSB9IGZyb20gJy4uL2Jhc2UvY29uc3RzL2J1dHRvbnMuY29uc3RzJztcclxuaW1wb3J0IHtcclxuICBFY2Fic0NvbXBvbmVudHNTZXJ2aWNlLFxyXG4gIEVjYWJzaTE4bixcclxufSBmcm9tICcuLi9iYXNlL3NlcnZpY2VzL2VjYWJzLWNvbXBvbmVudHMuc2VydmljZSc7XHJcbmltcG9ydCB7IHRha2VVbnRpbERlc3Ryb3llZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUvcnhqcy1pbnRlcm9wJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnZWNhYnMtZGlhbG9nLWNvbmZpcm0nLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9lY2Ficy1kaWFsb2ctY29uZmlybS5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vZWNhYnMtZGlhbG9nLWNvbmZpcm0uY29tcG9uZW50LnNjc3MnXSxcclxuICBwcm92aWRlcnM6IFtVbnN1YnNjcmliZVNlcnZpY2VdLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgRWNhYnNEaWFsb2dDb25maXJtQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xyXG4gIG1lc3NhZ2U6IHN0cmluZztcclxuICBjb2xvcjogVGhlbWVQYWxldHRlID0gJ3ByaW1hcnknO1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIEBJbmplY3QoTUFUX0RJQUxPR19EQVRBKSBwdWJsaWMgZGF0YTogRWNhYnNEaWFsb2dDb25maXJtQ29tcG9uZW50Q29uZmlnLFxyXG4gICAgcHVibGljIGRpYWxvZ1JlZjogTWF0RGlhbG9nUmVmPEVjYWJzRGlhbG9nQ29uZmlybUNvbXBvbmVudENvbmZpZz4sXHJcbiAgICBwcml2YXRlIHJlYWRvbmx5IHVuc3Vic2NyaWJlU2VydmljZTogVW5zdWJzY3JpYmVTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSByZWFkb25seSBjb21wb25lbnRzU2VydmljZTogRWNhYnNDb21wb25lbnRzU2VydmljZSxcclxuICAgIHByaXZhdGUgcmVhZG9ubHkgZGVzdHJveVJlZjogRGVzdHJveVJlZixcclxuICApIHt9XHJcblxyXG4gIHRyYW5zbGF0aW9uczogRWNhYnNpMThuO1xyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMuY29tcG9uZW50c1NlcnZpY2VcclxuICAgICAgLmdldENvbmZpZygpXHJcbiAgICAgIC5waXBlKHRha2VVbnRpbERlc3Ryb3llZCh0aGlzLmRlc3Ryb3lSZWYpKVxyXG4gICAgICAuc3Vic2NyaWJlKChjb25maWcpID0+IHtcclxuICAgICAgICBjb25zdCB7IGkxOG4gfSA9IGNvbmZpZyA/PyB7fTtcclxuICAgICAgICBjb25zdCB7XHJcbiAgICAgICAgICBjb25maXJtTGFiZWwsXHJcbiAgICAgICAgICBjYW5jZWxMYWJlbCxcclxuICAgICAgICAgIGhpZGVDb25maXJtQnV0dG9uLFxyXG4gICAgICAgICAgaGlkZUNhbmNlbEJ1dHRvbixcclxuICAgICAgICB9ID0gdGhpcy5kYXRhID8/IHt9O1xyXG5cclxuICAgICAgICBpZiAoaTE4bikge1xyXG4gICAgICAgICAgdGhpcy5kYXRhLmNvbmZpcm1MYWJlbCA9ICFoaWRlQ29uZmlybUJ1dHRvblxyXG4gICAgICAgICAgICA/IGNvbmZpcm1MYWJlbCB8fCBpMThuPy5jb25maXJtTGFiZWxcclxuICAgICAgICAgICAgOiB1bmRlZmluZWQ7XHJcbiAgICAgICAgICB0aGlzLmRhdGEuY2FuY2VsTGFiZWwgPSAhaGlkZUNhbmNlbEJ1dHRvblxyXG4gICAgICAgICAgICA/IGNhbmNlbExhYmVsIHx8IGkxOG4/LmNhbmNlbExhYmVsXHJcbiAgICAgICAgICAgIDogdW5kZWZpbmVkO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgfVxyXG5cclxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgIHRoaXMudW5zdWJzY3JpYmVTZXJ2aWNlLmRlc3Ryb3koKTtcclxuICB9XHJcblxyXG4gIGNsb3NlRGlhbG9nKCk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMuZGF0YS5sb2FkaW5nJCkge1xyXG4gICAgICB0aGlzLmRhdGEubG9hZGluZyRcclxuICAgICAgICA/LnBpcGUodGFrZVVudGlsKHRoaXMudW5zdWJzY3JpYmVTZXJ2aWNlLnN1YnNjcmlwdGlvbigpKSlcclxuICAgICAgICAuc3Vic2NyaWJlKChsb2FkaW5nKSA9PiB7XHJcbiAgICAgICAgICBpZiAoIWxvYWRpbmcpIHtcclxuICAgICAgICAgICAgdGhpcy5kaWFsb2dSZWYuY2xvc2UodGhpcy5kYXRhLmNvbmZpcm1SZXN1bHQgPz8gdHJ1ZSk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLmRpYWxvZ1JlZi5jbG9zZSh0aGlzLmRhdGEuY29uZmlybVJlc3VsdCA/PyB0cnVlKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGNsb3NlRmFsc2V5KCk6IHZvaWQge1xyXG4gICAgdGhpcy5kaWFsb2dSZWYuY2xvc2UodGhpcy5kYXRhLmNhbmNlbFJlc3VsdCA/PyBmYWxzZSk7XHJcbiAgfVxyXG5cclxuICBjbG9zZU9uUG9wb3ZlcigpOiB2b2lkIHtcclxuICAgIHRoaXMuZGlhbG9nUmVmLmNsb3NlKHRoaXMuZGF0YS5wb3BvdmVyUmVzdWx0ID8/IGZhbHNlKTtcclxuICB9XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgRWNhYnNEaWFsb2dDb25maXJtQ29tcG9uZW50Q29uZmlnIHtcclxuICB0aXRsZT86IHN0cmluZztcclxuICB0aXRsZVRlbXBsYXRlPzogVGVtcGxhdGVSZWY8Tm9uTnVsbGFibGU8dW5rbm93bj4+O1xyXG4gIG1lc3NhZ2U/OiBUZW1wbGF0ZVJlZjxOb25OdWxsYWJsZTx1bmtub3duPj47XHJcbiAgY29sb3I/OiBUaGVtZVBhbGV0dGU7XHJcbiAgdGl0bGVDb2xvcj86IFRoZW1lUGFsZXR0ZTtcclxuICBjb25maXJtTGFiZWw/OiBzdHJpbmc7XHJcbiAgY29uZmlybVN0eWxlPzogQnV0dG9uU3R5bGU7XHJcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcclxuICBjb25maXJtUmVzdWx0PzogYW55O1xyXG4gIGNhbmNlbExhYmVsPzogc3RyaW5nO1xyXG4gIGNhbmNlbFN0eWxlPzogQnV0dG9uU3R5bGU7XHJcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcclxuICBjYW5jZWxSZXN1bHQ/OiBhbnk7XHJcbiAgaGlkZUN0YUJ1dHRvbnM/OiBib29sZWFuO1xyXG4gIGhpZGVDb25maXJtQnV0dG9uPzogYm9vbGVhbjtcclxuICBoaWRlQ2FuY2VsQnV0dG9uPzogYm9vbGVhbjtcclxuICBpc1BvcG92ZXI/OiBib29sZWFuO1xyXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XHJcbiAgcG9wb3ZlclJlc3VsdD86IGFueTtcclxuICBjb250ZW50Pzogc3RyaW5nO1xyXG4gIHVzZUZ1bGxCdXR0b25TaXplPzogYm9vbGVhbjtcclxuICBzcGxpdEJ1dHRvbnNXaWR0aD86IGJvb2xlYW47XHJcbiAgbG9hZGluZyQ/OiBPYnNlcnZhYmxlPGJvb2xlYW4+O1xyXG4gIGRpc2FibGVDb25maXJtJD86IE9ic2VydmFibGU8Ym9vbGVhbj47XHJcbn1cclxuIiwiPGRpdiBtYXREaWFsb2dUaXRsZSAqbmdJZj1cImRhdGE/LnRpdGxlVGVtcGxhdGU7IGVsc2UgdGl0bGVcIj5cclxuICA8ZGl2IGNsYXNzPVwiZmxleCBpdGVtcy1jZW50ZXIganVzdGlmeS1iZXR3ZWVuIG1vZGFsLXRpdGxlXCI+XHJcbiAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiZGF0YT8udGl0bGVUZW1wbGF0ZVwiPjwvbmctY29udGFpbmVyPlxyXG5cclxuICAgIDxtYXQtaWNvbiAqbmdJZj1cIiEhZGF0YT8uaXNQb3BvdmVyXCIgKGNsaWNrKT1cImNsb3NlT25Qb3BvdmVyKClcIlxyXG4gICAgICAgICAgICAgIChrZXlkb3duLmVudGVyKT1cImNsb3NlT25Qb3BvdmVyKClcIlxyXG4gICAgICAgICAgICAgIGNsYXNzPVwibWF0LWljb24gbWF0ZXJpYWwtaWNvbnMtb3V0bGluZWQganVzdGlmeS1lbmQgaWNvbi0tY2xvc2VcIj5cclxuICAgICAgY2xvc2VcclxuICAgIDwvbWF0LWljb24+XHJcbiAgPC9kaXY+XHJcbjwvZGl2PlxyXG5cclxuXHJcbjxuZy10ZW1wbGF0ZSAjdGl0bGU+XHJcbiAgPGRpdiBtYXREaWFsb2dUaXRsZSAqbmdJZj1cImRhdGE/LnRpdGxlIHx8ICEhZGF0YT8uaXNQb3BvdmVyXCIgY2xhc3M9XCJmbGV4IGZsZXgtY29sdW1uXCI+XHJcbiAgICA8ZGl2ICpuZ0lmPVwiISFkYXRhPy5pc1BvcG92ZXJcIiBjbGFzcz1cInctZnVsbCBmbGV4IGp1c3RpZnktZW5kXCI+XHJcbiAgICAgIDxtYXQtaWNvbiAoY2xpY2spPVwiY2xvc2VPblBvcG92ZXIoKVwiXHJcbiAgICAgICAgICAgICAgICAoa2V5ZG93bi5lbnRlcik9XCJjbG9zZU9uUG9wb3ZlcigpXCJcclxuICAgICAgICAgICAgICAgIGNsYXNzPVwibWF0LWljb24gbWF0ZXJpYWwtaWNvbnMtb3V0bGluZWQgZmxvYXQtcmlnaHQgaWNvbi0tY2xvc2UgbWItMlwiPlxyXG4gICAgICAgIGNsb3NlXHJcbiAgICAgIDwvbWF0LWljb24+XHJcbiAgICA8L2Rpdj5cclxuXHJcbiAgICA8ZGl2IGNsYXNzPVwiZm9udC1zZW1pYm9sZCBoZWFkaW5nLS14cyBtb2RhbC10aXRsZSB7eyBkYXRhLnRpdGxlQ29sb3IgfX1cIiAqbmdJZj1cImRhdGEudGl0bGVcIj5cclxuICAgICAge3sgZGF0YS50aXRsZSB9fVxyXG4gICAgPC9kaXY+XHJcbiAgPC9kaXY+XHJcbjwvbmctdGVtcGxhdGU+XHJcblxyXG5cclxuPGRpdiBtYXQtZGlhbG9nLWNvbnRlbnQ+XHJcbiAgPGRpdiAqbmdJZj1cImRhdGE/LmNvbnRlbnRcIj57eyBkYXRhPy5jb250ZW50IH19PC9kaXY+XHJcbiAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImRhdGE/Lm1lc3NhZ2VcIj48L25nLWNvbnRhaW5lcj5cclxuPC9kaXY+XHJcblxyXG48ZGl2ICpuZ0lmPVwiKCEhZGF0YT8uY2FuY2VsTGFiZWwgfHwgISFkYXRhPy5jb25maXJtTGFiZWwpICYmICFkYXRhPy5oaWRlQ3RhQnV0dG9uc1wiPlxyXG4gIDxkaXYgbWF0LWRpYWxvZy1hY3Rpb25zXHJcbiAgICAgICBbbmdDbGFzc109XCJ7J2dhcC15LTQnOiBkYXRhPy51c2VGdWxsQnV0dG9uU2l6ZSB8fCBkYXRhPy5zcGxpdEJ1dHRvbnNXaWR0aH1cIlxyXG4gICAgICAgY2xhc3M9XCJidG5fX2dyb3VwIGZsZXgganVzdGlmeS1lbmQgdy1mdWxsXCI+XHJcbiAgICA8ZWNhYnMtYnV0dG9ucyAqbmdJZj1cIiEhZGF0YT8uY2FuY2VsTGFiZWxcIlxyXG4gICAgICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwieydmbGV4LTEnOiBkYXRhPy5zcGxpdEJ1dHRvbnNXaWR0aH1cIlxyXG4gICAgICAgICAgICAgICAgICAgW2Z1bGxdPVwiZGF0YT8udXNlRnVsbEJ1dHRvblNpemVcIlxyXG4gICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cImNsb3NlRmFsc2V5KClcIlxyXG4gICAgICAgICAgICAgICAgICAgKGtleWRvd24uZW50ZXIpPVwiY2xvc2VGYWxzZXkoKVwiXHJcbiAgICAgICAgICAgICAgICAgICBbc3R5bGVdPVwiZGF0YT8uY2FuY2VsU3R5bGUgfHwgJ3N0cm9rZWQnXCI+XHJcbiAgICAgIHt7IGRhdGE/LmNhbmNlbExhYmVsIH19XHJcbiAgICA8L2VjYWJzLWJ1dHRvbnM+XHJcblxyXG4gICAgPGVjYWJzLWJ1dHRvbnMgKm5nSWY9XCIhIWRhdGE/LmNvbmZpcm1MYWJlbFwiXHJcbiAgICAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJ7J2ZsZXgtMSc6ICBkYXRhPy5zcGxpdEJ1dHRvbnNXaWR0aH1cIlxyXG4gICAgICAgICAgICAgICAgICAgW2Z1bGxdPVwiZGF0YT8udXNlRnVsbEJ1dHRvblNpemVcIlxyXG4gICAgICAgICAgICAgICAgICAgW2NvbG9yXT1cImRhdGE/LmNvbG9yIHx8IGNvbG9yXCJcclxuICAgICAgICAgICAgICAgICAgIFtzdHlsZV09XCJkYXRhPy5jb25maXJtU3R5bGUgfHwgJ2ZsYXQnXCJcclxuICAgICAgICAgICAgICAgICAgIFtsb2FkaW5nXT1cImRhdGE/LmxvYWRpbmckIHwgYXN5bmNcIlxyXG4gICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cImNsb3NlRGlhbG9nKClcIlxyXG4gICAgICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cImRhdGE/LmRpc2FibGVDb25maXJtJCB8IGFzeW5jXCJcclxuICAgICAgICAgICAgICAgICAgIChrZXlkb3duLmVudGVyKT1cImNsb3NlRGlhbG9nKClcIj5cclxuICAgICAge3sgZGF0YT8uY29uZmlybUxhYmVsIH19XHJcbiAgICA8L2VjYWJzLWJ1dHRvbnM+XHJcbiAgPC9kaXY+XHJcbjwvZGl2PlxyXG4iXX0=
@@ -0,0 +1,237 @@
1
+ import { Component, EventEmitter, Input, Output, ViewChild, } from '@angular/core';
2
+ import { NG_VALUE_ACCESSOR, NgControl, } from '@angular/forms';
3
+ import EcabsElementBaseComponent from '../base/element-base';
4
+ import { BehaviorSubject, combineLatest, debounceTime, map, Observable, of, } from 'rxjs';
5
+ import { switchMap } from 'rxjs/operators';
6
+ import * as i0 from "@angular/core";
7
+ import * as i1 from "@angular/common";
8
+ import * as i2 from "../base/element-wrapper/element-wrapper.component";
9
+ import * as i3 from "@angular/forms";
10
+ import * as i4 from "@angular/material/icon";
11
+ import * as i5 from "@angular/cdk/overlay";
12
+ import * as i6 from "../base/pipes/separator-append.pipe";
13
+ export class EcabsPlaceAutocompleteV2Component extends EcabsElementBaseComponent {
14
+ ngZone;
15
+ injector;
16
+ matCustomInput;
17
+ showDeleteItem = false;
18
+ waypointsHistory = [];
19
+ showSuffix = false;
20
+ countryCode = 'MT';
21
+ googleLoaded;
22
+ waypointType;
23
+ placeResult = new EventEmitter();
24
+ deleteItem = new EventEmitter();
25
+ queryChanged = new EventEmitter();
26
+ isFocused$ = new BehaviorSubject(false);
27
+ value$ = new BehaviorSubject('');
28
+ waypointSuggestions$;
29
+ selectedIndex = -1;
30
+ displayedSuggestions = [];
31
+ val;
32
+ listener;
33
+ mapAutocompleteService;
34
+ placesService;
35
+ sessionToken;
36
+ get value() {
37
+ return this.val;
38
+ }
39
+ set value(val) {
40
+ if (this.val !== val) {
41
+ this.val = val;
42
+ this.value$.next(val);
43
+ this.onChange(val);
44
+ this.onTouch(val);
45
+ }
46
+ }
47
+ constructor(ngZone, injector) {
48
+ super();
49
+ this.ngZone = ngZone;
50
+ this.injector = injector;
51
+ }
52
+ ngOnChanges(changes) {
53
+ const { googleLoaded } = changes ?? {};
54
+ if (googleLoaded?.currentValue) {
55
+ this.initGoogle();
56
+ }
57
+ }
58
+ ngAfterViewInit() {
59
+ const ngControl = this.injector.get(NgControl, null);
60
+ if (ngControl) {
61
+ this.control = ngControl.control;
62
+ }
63
+ this.waypointSuggestions$ = combineLatest([
64
+ this.isFocused$,
65
+ this.value$,
66
+ ]).pipe(debounceTime(500), switchMap(([isFocused, value]) => {
67
+ if (!isFocused) {
68
+ return of([]);
69
+ }
70
+ if (!value) {
71
+ return of(this.waypointsHistory);
72
+ }
73
+ return this.getWaypointResults(value);
74
+ }), map((results) => {
75
+ this.displayedSuggestions = results;
76
+ this.selectedIndex = results?.length ? 0 : -1;
77
+ return results;
78
+ }));
79
+ }
80
+ getWaypointResults(query) {
81
+ this.queryChanged.emit({ waypoint_type: this.waypointType, query });
82
+ return combineLatest([
83
+ of(this.waypointsHistory),
84
+ this.getPlacesResults(query),
85
+ ]).pipe(map(([history, google]) => {
86
+ const historyItems = history ?? [], googleItems = google ?? [];
87
+ return [...historyItems, ...googleItems];
88
+ }));
89
+ }
90
+ getPlacesResults(query) {
91
+ return new Observable((observer) => {
92
+ this.mapAutocompleteService.getPlacePredictions({
93
+ input: query,
94
+ componentRestrictions: { country: this.countryCode },
95
+ sessionToken: this.sessionToken,
96
+ }, (predictions) => {
97
+ observer.next((predictions ?? []).map((prediction) => {
98
+ return {
99
+ additional_info: prediction.description,
100
+ place_id: prediction.place_id,
101
+ source: 'google',
102
+ prediction_term: prediction.terms,
103
+ };
104
+ }));
105
+ observer.complete();
106
+ });
107
+ });
108
+ }
109
+ onSelectSuggestion(suggestion) {
110
+ const { additional_info, place_id } = suggestion ?? {};
111
+ this.value = additional_info;
112
+ this.placesService.getDetails({
113
+ placeId: place_id,
114
+ sessionToken: this.sessionToken,
115
+ fields: ['address_components', 'geometry.location'],
116
+ }, (place, status) => {
117
+ if (status === google.maps.places.PlacesServiceStatus.OK && place) {
118
+ this.ngZone.run(() => {
119
+ this.placeResult.emit({
120
+ place,
121
+ text: additional_info,
122
+ });
123
+ });
124
+ }
125
+ this.resetSessionToken();
126
+ });
127
+ }
128
+ onKeyDown(event) {
129
+ if (!this.displayedSuggestions?.length) {
130
+ return;
131
+ }
132
+ switch (event.key) {
133
+ case 'ArrowDown':
134
+ event.preventDefault();
135
+ this.selectedIndex =
136
+ (this.selectedIndex + 1) % this.displayedSuggestions.length;
137
+ break;
138
+ case 'ArrowUp':
139
+ event.preventDefault();
140
+ this.selectedIndex =
141
+ (this.selectedIndex - 1 + this.displayedSuggestions.length) %
142
+ this.displayedSuggestions.length;
143
+ break;
144
+ case 'Enter':
145
+ event.preventDefault();
146
+ if (this.selectedIndex >= 0) {
147
+ this.onSelectSuggestion(this.displayedSuggestions[this.selectedIndex]);
148
+ }
149
+ break;
150
+ case 'Escape':
151
+ this.isFocused$.next(false);
152
+ this.selectedIndex = -1;
153
+ break;
154
+ }
155
+ }
156
+ ngOnDestroy() {
157
+ if (this.listener) {
158
+ this.listener.remove();
159
+ }
160
+ }
161
+ onChange = () => { };
162
+ onTouch = () => { };
163
+ onBlur() {
164
+ this.isFocused$.next(false);
165
+ this.onTouch;
166
+ }
167
+ onFocus() {
168
+ this.isFocused$.next(true);
169
+ if (!this.value) {
170
+ this.resetSessionToken();
171
+ }
172
+ }
173
+ writeValue(value) {
174
+ this.value = value;
175
+ }
176
+ registerOnChange(fn) {
177
+ this.onChange = fn;
178
+ }
179
+ registerOnTouched(fn) {
180
+ this.onTouch = fn;
181
+ }
182
+ onDeleteItem() {
183
+ this.deleteItem.emit();
184
+ }
185
+ onClean() {
186
+ this.value = '';
187
+ this.onTouch();
188
+ }
189
+ initGoogle() {
190
+ this.mapAutocompleteService = new google.maps.places.AutocompleteService();
191
+ this.placesService = new google.maps.places.PlacesService(document.createElement('div'));
192
+ this.resetSessionToken();
193
+ }
194
+ resetSessionToken() {
195
+ this.sessionToken = new google.maps.places.AutocompleteSessionToken();
196
+ }
197
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: EcabsPlaceAutocompleteV2Component, deps: [{ token: i0.NgZone }, { token: i0.Injector }], target: i0.ɵɵFactoryTarget.Component });
198
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: EcabsPlaceAutocompleteV2Component, selector: "ecabs-place-autocomplete-v2", inputs: { showDeleteItem: "showDeleteItem", waypointsHistory: "waypointsHistory", showSuffix: "showSuffix", countryCode: "countryCode", googleLoaded: "googleLoaded", waypointType: "waypointType" }, outputs: { placeResult: "placeResult", deleteItem: "deleteItem", queryChanged: "queryChanged" }, providers: [
199
+ {
200
+ provide: NG_VALUE_ACCESSOR,
201
+ useExisting: EcabsPlaceAutocompleteV2Component,
202
+ multi: true,
203
+ },
204
+ ], viewQueries: [{ propertyName: "matCustomInput", first: true, predicate: ["matCustomAutocompleteInput"], descendants: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<ecabs-element-wrapper [data]=\"getData()\">\r\n <div class=\"autocomplete-ui w-full\">\r\n <section class=\"form-field__input--wrapper w-full\">\r\n <input #matCustomAutocompleteInput\r\n cdkOverlayOrigin\r\n #trigger=\"cdkOverlayOrigin\"\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 (focus)=\"onFocus()\"\r\n (keydown)=\"onKeyDown($event)\"\r\n (blur)=\"onBlur()\"\r\n />\r\n <div class=\"form-field__input--suffix\" *ngIf=\"showSuffix\">\r\n <mat-icon *ngIf=\"showDeleteItem\"\r\n class=\"suffix cursor-pointer delete-button\"\r\n (click)=\"onDeleteItem()\">\r\n delete\r\n </mat-icon>\r\n <mat-icon class=\"suffix cursor-pointer\" *ngIf=\"!showDeleteItem && value\" (click)=\"onClean()\">close</mat-icon>\r\n </div>\r\n </section>\r\n <!-- Custom dropdown -->\r\n <ng-template cdkConnectedOverlay\r\n [cdkConnectedOverlayWidth]=\"trigger.elementRef.nativeElement.offsetWidth\"\r\n [cdkConnectedOverlayFlexibleDimensions]=\"false\"\r\n [cdkConnectedOverlayOrigin]=\"trigger\"\r\n [cdkConnectedOverlayOpen]=\"isFocused$ | async\">\r\n <ul class=\"autocomplete-ui__container\">\r\n <li *ngFor=\"let suggestion of waypointSuggestions$ | async | slice:0:10; let i = index\"\r\n class=\"autocomplete-ui--item flex items-center justify-between hover:bg-gray-100\"\r\n [class.active]=\"i === selectedIndex\"\r\n (mousedown)=\"onSelectSuggestion(suggestion)\">\r\n <ng-container *ngIf=\"suggestion?.source === 'history'; else purePlaceResultTpl\">\r\n <div class=\"w-full truncate\">\r\n {{ suggestion?.additional_info }}\r\n </div>\r\n <mat-icon *ngIf=\"suggestion?.source === 'history'\"\r\n class=\"w-5 h-5 text-xl text-gray-400 !hover:text-gray-400\">\r\n history\r\n </mat-icon>\r\n </ng-container>\r\n\r\n <ng-template #purePlaceResultTpl>\r\n <ul class=\"w-full flex items-center gap-x-1 leading-0 overflow-hidden whitespace-nowrap\">\r\n <li>\r\n {{ suggestion?.prediction_term[0]?.value }}\r\n </li>\r\n <li *ngIf=\"suggestion?.prediction_term[1]?.value\"\r\n class=\"text-xs text-gray-600 truncate\">\r\n {{ suggestion?.prediction_term[1]?.value | separatorAppend: suggestion?.prediction_term[2]?.value }}\r\n </li>\r\n <li *ngIf=\"suggestion?.prediction_term[2]?.value\"\r\n class=\"text-xs text-gray-600 font-semibold truncate\">\r\n {{ suggestion?.prediction_term[2]?.value }}\r\n </li>\r\n </ul>\r\n </ng-template>\r\n </li>\r\n </ul>\r\n </ng-template>\r\n </div>\r\n</ecabs-element-wrapper>\r\n", styles: ["mat-form-field{margin-bottom:0!important}.delete-button{color:var(--color-error)}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.EcabsElementWrapperComponent, selector: "ecabs-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: i4.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i5.CdkOverlayOrigin, selector: "[cdk-overlay-origin], [overlay-origin], [cdkOverlayOrigin]", exportAs: ["cdkOverlayOrigin"] }, { kind: "directive", type: i5.CdkConnectedOverlay, selector: "[cdk-connected-overlay], [connected-overlay], [cdkConnectedOverlay]", inputs: ["cdkConnectedOverlayOrigin", "cdkConnectedOverlayPositions", "cdkConnectedOverlayPositionStrategy", "cdkConnectedOverlayOffsetX", "cdkConnectedOverlayOffsetY", "cdkConnectedOverlayWidth", "cdkConnectedOverlayHeight", "cdkConnectedOverlayMinWidth", "cdkConnectedOverlayMinHeight", "cdkConnectedOverlayBackdropClass", "cdkConnectedOverlayPanelClass", "cdkConnectedOverlayViewportMargin", "cdkConnectedOverlayScrollStrategy", "cdkConnectedOverlayOpen", "cdkConnectedOverlayDisableClose", "cdkConnectedOverlayTransformOriginOn", "cdkConnectedOverlayHasBackdrop", "cdkConnectedOverlayLockPosition", "cdkConnectedOverlayFlexibleDimensions", "cdkConnectedOverlayGrowAfterOpen", "cdkConnectedOverlayPush"], outputs: ["backdropClick", "positionChange", "attach", "detach", "overlayKeydown", "overlayOutsideClick"], exportAs: ["cdkConnectedOverlay"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "pipe", type: i1.SlicePipe, name: "slice" }, { kind: "pipe", type: i6.SeparatorAppendPipe, name: "separatorAppend" }] });
205
+ }
206
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: EcabsPlaceAutocompleteV2Component, decorators: [{
207
+ type: Component,
208
+ args: [{ selector: 'ecabs-place-autocomplete-v2', providers: [
209
+ {
210
+ provide: NG_VALUE_ACCESSOR,
211
+ useExisting: EcabsPlaceAutocompleteV2Component,
212
+ multi: true,
213
+ },
214
+ ], template: "<ecabs-element-wrapper [data]=\"getData()\">\r\n <div class=\"autocomplete-ui w-full\">\r\n <section class=\"form-field__input--wrapper w-full\">\r\n <input #matCustomAutocompleteInput\r\n cdkOverlayOrigin\r\n #trigger=\"cdkOverlayOrigin\"\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 (focus)=\"onFocus()\"\r\n (keydown)=\"onKeyDown($event)\"\r\n (blur)=\"onBlur()\"\r\n />\r\n <div class=\"form-field__input--suffix\" *ngIf=\"showSuffix\">\r\n <mat-icon *ngIf=\"showDeleteItem\"\r\n class=\"suffix cursor-pointer delete-button\"\r\n (click)=\"onDeleteItem()\">\r\n delete\r\n </mat-icon>\r\n <mat-icon class=\"suffix cursor-pointer\" *ngIf=\"!showDeleteItem && value\" (click)=\"onClean()\">close</mat-icon>\r\n </div>\r\n </section>\r\n <!-- Custom dropdown -->\r\n <ng-template cdkConnectedOverlay\r\n [cdkConnectedOverlayWidth]=\"trigger.elementRef.nativeElement.offsetWidth\"\r\n [cdkConnectedOverlayFlexibleDimensions]=\"false\"\r\n [cdkConnectedOverlayOrigin]=\"trigger\"\r\n [cdkConnectedOverlayOpen]=\"isFocused$ | async\">\r\n <ul class=\"autocomplete-ui__container\">\r\n <li *ngFor=\"let suggestion of waypointSuggestions$ | async | slice:0:10; let i = index\"\r\n class=\"autocomplete-ui--item flex items-center justify-between hover:bg-gray-100\"\r\n [class.active]=\"i === selectedIndex\"\r\n (mousedown)=\"onSelectSuggestion(suggestion)\">\r\n <ng-container *ngIf=\"suggestion?.source === 'history'; else purePlaceResultTpl\">\r\n <div class=\"w-full truncate\">\r\n {{ suggestion?.additional_info }}\r\n </div>\r\n <mat-icon *ngIf=\"suggestion?.source === 'history'\"\r\n class=\"w-5 h-5 text-xl text-gray-400 !hover:text-gray-400\">\r\n history\r\n </mat-icon>\r\n </ng-container>\r\n\r\n <ng-template #purePlaceResultTpl>\r\n <ul class=\"w-full flex items-center gap-x-1 leading-0 overflow-hidden whitespace-nowrap\">\r\n <li>\r\n {{ suggestion?.prediction_term[0]?.value }}\r\n </li>\r\n <li *ngIf=\"suggestion?.prediction_term[1]?.value\"\r\n class=\"text-xs text-gray-600 truncate\">\r\n {{ suggestion?.prediction_term[1]?.value | separatorAppend: suggestion?.prediction_term[2]?.value }}\r\n </li>\r\n <li *ngIf=\"suggestion?.prediction_term[2]?.value\"\r\n class=\"text-xs text-gray-600 font-semibold truncate\">\r\n {{ suggestion?.prediction_term[2]?.value }}\r\n </li>\r\n </ul>\r\n </ng-template>\r\n </li>\r\n </ul>\r\n </ng-template>\r\n </div>\r\n</ecabs-element-wrapper>\r\n", styles: ["mat-form-field{margin-bottom:0!important}.delete-button{color:var(--color-error)}\n"] }]
215
+ }], ctorParameters: function () { return [{ type: i0.NgZone }, { type: i0.Injector }]; }, propDecorators: { matCustomInput: [{
216
+ type: ViewChild,
217
+ args: ['matCustomAutocompleteInput', { static: false }]
218
+ }], showDeleteItem: [{
219
+ type: Input
220
+ }], waypointsHistory: [{
221
+ type: Input
222
+ }], showSuffix: [{
223
+ type: Input
224
+ }], countryCode: [{
225
+ type: Input
226
+ }], googleLoaded: [{
227
+ type: Input
228
+ }], waypointType: [{
229
+ type: Input
230
+ }], placeResult: [{
231
+ type: Output
232
+ }], deleteItem: [{
233
+ type: Output
234
+ }], queryChanged: [{
235
+ type: Output
236
+ }] } });
237
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWNhYnMtcGxhY2UtYXV0b2NvbXBsZXRlLXYyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2VjYWJzLWNvbXBvbmVudHMvc3JjL2xpYi9lY2Ficy1wbGFjZS1hdXRvY29tcGxldGUtdjIvZWNhYnMtcGxhY2UtYXV0b2NvbXBsZXRlLXYyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2VjYWJzLWNvbXBvbmVudHMvc3JjL2xpYi9lY2Ficy1wbGFjZS1hdXRvY29tcGxldGUtdjIvZWNhYnMtcGxhY2UtYXV0b2NvbXBsZXRlLXYyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFTCxTQUFTLEVBRVQsWUFBWSxFQUVaLEtBQUssRUFJTCxNQUFNLEVBRU4sU0FBUyxHQUNWLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFFTCxpQkFBaUIsRUFDakIsU0FBUyxHQUVWLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEIsT0FBTyx5QkFBeUIsTUFBTSxzQkFBc0IsQ0FBQztBQU83RCxPQUFPLEVBQ0wsZUFBZSxFQUNmLGFBQWEsRUFDYixZQUFZLEVBQ1osR0FBRyxFQUNILFVBQVUsRUFDVixFQUFFLEdBQ0gsTUFBTSxNQUFNLENBQUM7QUFDZCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7Ozs7Ozs7O0FBYzNDLE1BQU0sT0FBTyxpQ0FDWCxTQUFRLHlCQUF5QjtJQTZEZDtJQUNBO0lBMURuQixjQUFjLENBQWE7SUFHM0IsY0FBYyxHQUFHLEtBQUssQ0FBQztJQUd2QixnQkFBZ0IsR0FBeUIsRUFBRSxDQUFDO0lBRzVDLFVBQVUsR0FBRyxLQUFLLENBQUM7SUFHbkIsV0FBVyxHQUFHLElBQUksQ0FBQztJQUduQixZQUFZLENBQVU7SUFHdEIsWUFBWSxDQUFtQjtJQUd0QixXQUFXLEdBQW9DLElBQUksWUFBWSxFQUFFLENBQUM7SUFHbEUsVUFBVSxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7SUFHaEMsWUFBWSxHQUFHLElBQUksWUFBWSxFQUF1QixDQUFDO0lBRWhFLFVBQVUsR0FBRyxJQUFJLGVBQWUsQ0FBVSxLQUFLLENBQUMsQ0FBQztJQUNqRCxNQUFNLEdBQUcsSUFBSSxlQUFlLENBQVMsRUFBRSxDQUFDLENBQUM7SUFDekMsb0JBQW9CLENBQW1DO0lBRXZELGFBQWEsR0FBRyxDQUFDLENBQUMsQ0FBQztJQUNuQixvQkFBb0IsR0FBeUIsRUFBRSxDQUFDO0lBRWhELEdBQUcsQ0FBVTtJQUNiLFFBQVEsQ0FBZ0M7SUFFaEMsc0JBQXNCLENBQXlDO0lBQy9ELGFBQWEsQ0FBbUM7SUFDaEQsWUFBWSxDQUE4QztJQUVsRSxJQUFJLEtBQUs7UUFDUCxPQUFPLElBQUksQ0FBQyxHQUFHLENBQUM7SUFDbEIsQ0FBQztJQUVELElBQUksS0FBSyxDQUFDLEdBQVc7UUFDbkIsSUFBSSxJQUFJLENBQUMsR0FBRyxLQUFLLEdBQUcsRUFBRTtZQUNwQixJQUFJLENBQUMsR0FBRyxHQUFHLEdBQUcsQ0FBQztZQUNmLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQ3RCLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDbkIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQztTQUNuQjtJQUNILENBQUM7SUFFRCxZQUNtQixNQUFjLEVBQ2QsUUFBa0I7UUFFbkMsS0FBSyxFQUFFLENBQUM7UUFIUyxXQUFNLEdBQU4sTUFBTSxDQUFRO1FBQ2QsYUFBUSxHQUFSLFFBQVEsQ0FBVTtJQUdyQyxDQUFDO0lBRUQsV0FBVyxDQUFDLE9BQXNCO1FBQ2hDLE1BQU0sRUFBRSxZQUFZLEVBQUUsR0FBRyxPQUFPLElBQUksRUFBRSxDQUFDO1FBRXZDLElBQUksWUFBWSxFQUFFLFlBQVksRUFBRTtZQUM5QixJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7U0FDbkI7SUFDSCxDQUFDO0lBRUQsZUFBZTtRQUNiLE1BQU0sU0FBUyxHQUFjLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUM1QyxTQUFTLEVBQ1QsSUFBSSxDQUNRLENBQUM7UUFFZixJQUFJLFNBQVMsRUFBRTtZQUNiLElBQUksQ0FBQyxPQUFPLEdBQUcsU0FBUyxDQUFDLE9BQTZCLENBQUM7U0FDeEQ7UUFFRCxJQUFJLENBQUMsb0JBQW9CLEdBQUcsYUFBYSxDQUFDO1lBQ3hDLElBQUksQ0FBQyxVQUFVO1lBQ2YsSUFBSSxDQUFDLE1BQU07U0FDWixDQUFDLENBQUMsSUFBSSxDQUNMLFlBQVksQ0FBQyxHQUFHLENBQUMsRUFDakIsU0FBUyxDQUFDLENBQUMsQ0FBQyxTQUFTLEVBQUUsS0FBSyxDQUFDLEVBQUUsRUFBRTtZQUMvQixJQUFJLENBQUMsU0FBUyxFQUFFO2dCQUNkLE9BQU8sRUFBRSxDQUFDLEVBQTBCLENBQUMsQ0FBQzthQUN2QztZQUVELElBQUksQ0FBQyxLQUFLLEVBQUU7Z0JBQ1YsT0FBTyxFQUFFLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLENBQUM7YUFDbEM7WUFFRCxPQUFPLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUN4QyxDQUFDLENBQUMsRUFDRixHQUFHLENBQUMsQ0FBQyxPQUFPLEVBQUUsRUFBRTtZQUNkLElBQUksQ0FBQyxvQkFBb0IsR0FBRyxPQUFPLENBQUM7WUFDcEMsSUFBSSxDQUFDLGFBQWEsR0FBRyxPQUFPLEVBQUUsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBRTlDLE9BQU8sT0FBTyxDQUFDO1FBQ2pCLENBQUMsQ0FBQyxDQUNILENBQUM7SUFDSixDQUFDO0lBRU8sa0JBQWtCLENBQUMsS0FBYTtRQUN0QyxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxFQUFFLGFBQWEsRUFBRSxJQUFJLENBQUMsWUFBWSxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUM7UUFFcEUsT0FBTyxhQUFhLENBQUM7WUFDbkIsRUFBRSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQztZQUN6QixJQUFJLENBQUMsZ0JBQWdCLENBQUMsS0FBSyxDQUFDO1NBQzdCLENBQUMsQ0FBQyxJQUFJLENBQ0wsR0FBRyxDQUFDLENBQUMsQ0FBQyxPQUFPLEVBQUUsTUFBTSxDQUFDLEVBQUUsRUFBRTtZQUN4QixNQUFNLFlBQVksR0FBRyxPQUFPLElBQUksRUFBRSxFQUNoQyxXQUFXLEdBQUcsTUFBTSxJQUFJLEVBQUUsQ0FBQztZQUU3QixPQUFPLENBQUMsR0FBRyxZQUFZLEVBQUUsR0FBRyxXQUFXLENBQUMsQ0FBQztRQUMzQyxDQUFDLENBQUMsQ0FDSCxDQUFDO0lBQ0osQ0FBQztJQUVPLGdCQUFnQixDQUFDLEtBQWE7UUFDcEMsT0FBTyxJQUFJLFVBQVUsQ0FBQyxDQUFDLFFBQVEsRUFBRSxFQUFFO1lBQ2pDLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxtQkFBbUIsQ0FDN0M7Z0JBQ0UsS0FBSyxFQUFFLEtBQUs7Z0JBQ1oscUJBQXFCLEVBQUUsRUFBRSxPQUFPLEVBQUUsSUFBSSxDQUFDLFdBQVcsRUFBRTtnQkFDcEQsWUFBWSxFQUFFLElBQUksQ0FBQyxZQUFZO2FBQ2hDLEVBQ0QsQ0FBQyxXQUFXLEVBQUUsRUFBRTtnQkFDZCxRQUFRLENBQUMsSUFBSSxDQUNYLENBQUMsV0FBVyxJQUFJLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLFVBQVUsRUFBRSxFQUFFO29CQUNyQyxPQUFPO3dCQUNMLGVBQWUsRUFBRSxVQUFVLENBQUMsV0FBVzt3QkFDdkMsUUFBUSxFQUFFLFVBQVUsQ0FBQyxRQUFTO3dCQUM5QixNQUFNLEVBQUUsUUFBUTt3QkFDaEIsZUFBZSxFQUFFLFVBQVUsQ0FBQyxLQUFLO3FCQUNsQyxDQUFDO2dCQUNKLENBQUMsQ0FBQyxDQUNILENBQUM7Z0JBQ0YsUUFBUSxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQ3RCLENBQUMsQ0FDRixDQUFDO1FBQ0osQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsa0JBQWtCLENBQUMsVUFBOEI7UUFDL0MsTUFBTSxFQUFFLGVBQWUsRUFBRSxRQUFRLEVBQUUsR0FBRyxVQUFVLElBQUksRUFBRSxDQUFDO1FBRXZELElBQUksQ0FBQyxLQUFLLEdBQUcsZUFBZSxDQUFDO1FBQzdCLElBQUksQ0FBQyxhQUFhLENBQUMsVUFBVSxDQUMzQjtZQUNFLE9BQU8sRUFBRSxRQUFTO1lBQ2xCLFlBQVksRUFBRSxJQUFJLENBQUMsWUFBWTtZQUMvQixNQUFNLEVBQUUsQ0FBQyxvQkFBb0IsRUFBRSxtQkFBbUIsQ0FBQztTQUNwRCxFQUNELENBQUMsS0FBSyxFQUFFLE1BQU0sRUFBRSxFQUFFO1lBQ2hCLElBQUksTUFBTSxLQUFLLE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLG1CQUFtQixDQUFDLEVBQUUsSUFBSSxLQUFLLEVBQUU7Z0JBQ2pFLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRTtvQkFDbkIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUM7d0JBQ3BCLEtBQUs7d0JBQ0wsSUFBSSxFQUFFLGVBQWU7cUJBQ3RCLENBQUMsQ0FBQztnQkFDTCxDQUFDLENBQUMsQ0FBQzthQUNKO1lBRUQsSUFBSSxDQUFDLGlCQUFpQixFQUFFLENBQUM7UUFDM0IsQ0FBQyxDQUNGLENBQUM7SUFDSixDQUFDO0lBRUQsU0FBUyxDQUFDLEtBQW9CO1FBQzVCLElBQUksQ0FBQyxJQUFJLENBQUMsb0JBQW9CLEVBQUUsTUFBTSxFQUFFO1lBQ3RDLE9BQU87U0FDUjtRQUVELFFBQVEsS0FBSyxDQUFDLEdBQUcsRUFBRTtZQUNqQixLQUFLLFdBQVc7Z0JBQ2QsS0FBSyxDQUFDLGNBQWMsRUFBRSxDQUFDO2dCQUN2QixJQUFJLENBQUMsYUFBYTtvQkFDaEIsQ0FBQyxJQUFJLENBQUMsYUFBYSxHQUFHLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxNQUFNLENBQUM7Z0JBQzlELE1BQU07WUFFUixLQUFLLFNBQVM7Z0JBQ1osS0FBSyxDQUFDLGNBQWMsRUFBRSxDQUFDO2dCQUN2QixJQUFJLENBQUMsYUFBYTtvQkFDaEIsQ0FBQyxJQUFJLENBQUMsYUFBYSxHQUFHLENBQUMsR0FBRyxJQUFJLENBQUMsb0JBQW9CLENBQUMsTUFBTSxDQUFDO3dCQUMzRCxJQUFJLENBQUMsb0JBQW9CLENBQUMsTUFBTSxDQUFDO2dCQUNuQyxNQUFNO1lBRVIsS0FBSyxPQUFPO2dCQUNWLEtBQUssQ0FBQyxjQUFjLEVBQUUsQ0FBQztnQkFFdkIsSUFBSSxJQUFJLENBQUMsYUFBYSxJQUFJLENBQUMsRUFBRTtvQkFDM0IsSUFBSSxDQUFDLGtCQUFrQixDQUNyQixJQUFJLENBQUMsb0JBQW9CLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUM5QyxDQUFDO2lCQUNIO2dCQUNELE1BQU07WUFFUixLQUFLLFFBQVE7Z0JBQ1gsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7Z0JBQzVCLElBQUksQ0FBQyxhQUFhLEdBQUcsQ0FBQyxDQUFDLENBQUM7Z0JBQ3hCLE1BQU07U0FDVDtJQUNILENBQUM7SUFFRCxXQUFXO1FBQ1QsSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFO1lBQ2pCLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLENBQUM7U0FDeEI7SUFDSCxDQUFDO0lBRUQsUUFBUSxHQUFRLEdBQUcsRUFBRSxHQUFFLENBQUMsQ0FBQztJQUV6QixPQUFPLEdBQVEsR0FBRyxFQUFFLEdBQUUsQ0FBQyxDQUFDO0lBRXhCLE1BQU07UUFDSixJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUM1QixJQUFJLENBQUMsT0FBTyxDQUFDO0lBQ2YsQ0FBQztJQUVELE9BQU87UUFDTCxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUUzQixJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRTtZQUNmLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO1NBQzFCO0lBQ0gsQ0FBQztJQUVELFVBQVUsQ0FBQyxLQUFVO1FBQ25CLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO0lBQ3JCLENBQUM7SUFFRCxnQkFBZ0IsQ0FBQyxFQUFPO1FBQ3RCLElBQUksQ0FBQyxRQUFRLEdBQUcsRUFBRSxDQUFDO0lBQ3JCLENBQUM7SUFFRCxpQkFBaUIsQ0FBQyxFQUFPO1FBQ3ZCLElBQUksQ0FBQyxPQUFPLEdBQUcsRUFBRSxDQUFDO0lBQ3BCLENBQUM7SUFFRCxZQUFZO1FBQ1YsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUN6QixDQUFDO0lBRUQsT0FBTztRQUNMLElBQUksQ0FBQyxLQUFLLEdBQUcsRUFBRSxDQUFDO1FBQ2hCLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUNqQixDQUFDO0lBRU8sVUFBVTtRQUNoQixJQUFJLENBQUMsc0JBQXNCLEdBQUcsSUFBSSxNQUFNLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxtQkFBbUIsRUFBRSxDQUFDO1FBRTNFLElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxNQUFNLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxhQUFhLENBQ3ZELFFBQVEsQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLENBQzlCLENBQUM7UUFFRixJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztJQUMzQixDQUFDO0lBRU8saUJBQWlCO1FBQ3ZCLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxNQUFNLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyx3QkFBd0IsRUFBRSxDQUFDO0lBQ3hFLENBQUM7d0dBN1FVLGlDQUFpQzs0RkFBakMsaUNBQWlDLDZWQVJqQztZQUNUO2dCQUNFLE9BQU8sRUFBRSxpQkFBaUI7Z0JBQzFCLFdBQVcsRUFBRSxpQ0FBaUM7Z0JBQzlDLEtBQUssRUFBRSxJQUFJO2FBQ1o7U0FDRixvTUMvQ0gscXNHQW9FQTs7NEZEbkJhLGlDQUFpQztrQkFaN0MsU0FBUzsrQkFDRSw2QkFBNkIsYUFHNUI7d0JBQ1Q7NEJBQ0UsT0FBTyxFQUFFLGlCQUFpQjs0QkFDMUIsV0FBVyxtQ0FBbUM7NEJBQzlDLEtBQUssRUFBRSxJQUFJO3lCQUNaO3FCQUNGO29IQU9ELGNBQWM7c0JBRGIsU0FBUzt1QkFBQyw0QkFBNEIsRUFBRSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUU7Z0JBSTFELGNBQWM7c0JBRGIsS0FBSztnQkFJTixnQkFBZ0I7c0JBRGYsS0FBSztnQkFJTixVQUFVO3NCQURULEtBQUs7Z0JBSU4sV0FBVztzQkFEVixLQUFLO2dCQUlOLFlBQVk7c0JBRFgsS0FBSztnQkFJTixZQUFZO3NCQURYLEtBQUs7Z0JBSUcsV0FBVztzQkFEbkIsTUFBTTtnQkFJRSxVQUFVO3NCQURsQixNQUFNO2dCQUlFLFlBQVk7c0JBRHBCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIEFmdGVyVmlld0luaXQsXHJcbiAgQ29tcG9uZW50LFxyXG4gIEVsZW1lbnRSZWYsXHJcbiAgRXZlbnRFbWl0dGVyLFxyXG4gIEluamVjdG9yLFxyXG4gIElucHV0LFxyXG4gIE5nWm9uZSxcclxuICBPbkNoYW5nZXMsXHJcbiAgT25EZXN0cm95LFxyXG4gIE91dHB1dCxcclxuICBTaW1wbGVDaGFuZ2VzLFxyXG4gIFZpZXdDaGlsZCxcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHtcclxuICBDb250cm9sVmFsdWVBY2Nlc3NvcixcclxuICBOR19WQUxVRV9BQ0NFU1NPUixcclxuICBOZ0NvbnRyb2wsXHJcbiAgVW50eXBlZEZvcm1Db250cm9sLFxyXG59IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IEVjYWJzRWxlbWVudEJhc2VDb21wb25lbnQgZnJvbSAnLi4vYmFzZS9lbGVtZW50LWJhc2UnO1xyXG5pbXBvcnQgeyBXYXlwb2ludFR5cGVFbnVtIH0gZnJvbSAnLi4vYmFzZS9jb25zdHMvd2F5cG9pbnQuY29uc3RzJztcclxuaW1wb3J0IHtcclxuICBHb29nbGVQbGFjZVJlc3VsdCxcclxuICBXYXlwb2ludFF1ZXJ5Q2hhbmdlLFxyXG4gIFdheXBvaW50U3VnZ2VzdGlvbixcclxufSBmcm9tICcuLi9iYXNlL21vZGVscy93YXlwb2ludC5tb2RlbHMnO1xyXG5pbXBvcnQge1xyXG4gIEJlaGF2aW9yU3ViamVjdCxcclxuICBjb21iaW5lTGF0ZXN0LFxyXG4gIGRlYm91bmNlVGltZSxcclxuICBtYXAsXHJcbiAgT2JzZXJ2YWJsZSxcclxuICBvZixcclxufSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgc3dpdGNoTWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdlY2Ficy1wbGFjZS1hdXRvY29tcGxldGUtdjInLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9lY2Ficy1wbGFjZS1hdXRvY29tcGxldGUtdjIuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2VjYWJzLXBsYWNlLWF1dG9jb21wbGV0ZS12Mi5jb21wb25lbnQuc2NzcyddLFxyXG4gIHByb3ZpZGVyczogW1xyXG4gICAge1xyXG4gICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcclxuICAgICAgdXNlRXhpc3Rpbmc6IEVjYWJzUGxhY2VBdXRvY29tcGxldGVWMkNvbXBvbmVudCxcclxuICAgICAgbXVsdGk6IHRydWUsXHJcbiAgICB9LFxyXG4gIF0sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBFY2Fic1BsYWNlQXV0b2NvbXBsZXRlVjJDb21wb25lbnRcclxuICBleHRlbmRzIEVjYWJzRWxlbWVudEJhc2VDb21wb25lbnRcclxuICBpbXBsZW1lbnRzIE9uRGVzdHJveSwgT25DaGFuZ2VzLCBBZnRlclZpZXdJbml0LCBDb250cm9sVmFsdWVBY2Nlc3NvclxyXG57XHJcbiAgQFZpZXdDaGlsZCgnbWF0Q3VzdG9tQXV0b2NvbXBsZXRlSW5wdXQnLCB7IHN0YXRpYzogZmFsc2UgfSlcclxuICBtYXRDdXN0b21JbnB1dDogRWxlbWVudFJlZjtcclxuXHJcbiAgQElucHV0KClcclxuICBzaG93RGVsZXRlSXRlbSA9IGZhbHNlO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHdheXBvaW50c0hpc3Rvcnk6IFdheXBvaW50U3VnZ2VzdGlvbltdID0gW107XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgc2hvd1N1ZmZpeCA9IGZhbHNlO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIGNvdW50cnlDb2RlID0gJ01UJztcclxuXHJcbiAgQElucHV0KClcclxuICBnb29nbGVMb2FkZWQ6IGJvb2xlYW47XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgd2F5cG9pbnRUeXBlOiBXYXlwb2ludFR5cGVFbnVtO1xyXG5cclxuICBAT3V0cHV0KClcclxuICByZWFkb25seSBwbGFjZVJlc3VsdDogRXZlbnRFbWl0dGVyPEdvb2dsZVBsYWNlUmVzdWx0PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuXHJcbiAgQE91dHB1dCgpXHJcbiAgcmVhZG9ubHkgZGVsZXRlSXRlbSA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuXHJcbiAgQE91dHB1dCgpXHJcbiAgcmVhZG9ubHkgcXVlcnlDaGFuZ2VkID0gbmV3IEV2ZW50RW1pdHRlcjxXYXlwb2ludFF1ZXJ5Q2hhbmdlPigpO1xyXG5cclxuICBpc0ZvY3VzZWQkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPihmYWxzZSk7XHJcbiAgdmFsdWUkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxzdHJpbmc+KCcnKTtcclxuICB3YXlwb2ludFN1Z2dlc3Rpb25zJDogT2JzZXJ2YWJsZTxXYXlwb2ludFN1Z2dlc3Rpb25bXT47XHJcblxyXG4gIHNlbGVjdGVkSW5kZXggPSAtMTtcclxuICBkaXNwbGF5ZWRTdWdnZXN0aW9uczogV2F5cG9pbnRTdWdnZXN0aW9uW10gPSBbXTtcclxuXHJcbiAgdmFsITogc3RyaW5nO1xyXG4gIGxpc3RlbmVyOiBnb29nbGUubWFwcy5NYXBzRXZlbnRMaXN0ZW5lcjtcclxuXHJcbiAgcHJpdmF0ZSBtYXBBdXRvY29tcGxldGVTZXJ2aWNlOiBnb29nbGUubWFwcy5wbGFjZXMuQXV0b2NvbXBsZXRlU2VydmljZTtcclxuICBwcml2YXRlIHBsYWNlc1NlcnZpY2U6IGdvb2dsZS5tYXBzLnBsYWNlcy5QbGFjZXNTZXJ2aWNlO1xyXG4gIHByaXZhdGUgc2Vzc2lvblRva2VuOiBnb29nbGUubWFwcy5wbGFjZXMuQXV0b2NvbXBsZXRlU2Vzc2lvblRva2VuO1xyXG5cclxuICBnZXQgdmFsdWUoKTogc3RyaW5nIHtcclxuICAgIHJldHVybiB0aGlzLnZhbDtcclxuICB9XHJcblxyXG4gIHNldCB2YWx1ZSh2YWw6IHN0cmluZykge1xyXG4gICAgaWYgKHRoaXMudmFsICE9PSB2YWwpIHtcclxuICAgICAgdGhpcy52YWwgPSB2YWw7XHJcbiAgICAgIHRoaXMudmFsdWUkLm5leHQodmFsKTtcclxuICAgICAgdGhpcy5vbkNoYW5nZSh2YWwpO1xyXG4gICAgICB0aGlzLm9uVG91Y2godmFsKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSByZWFkb25seSBuZ1pvbmU6IE5nWm9uZSxcclxuICAgIHByaXZhdGUgcmVhZG9ubHkgaW5qZWN0b3I6IEluamVjdG9yLFxyXG4gICkge1xyXG4gICAgc3VwZXIoKTtcclxuICB9XHJcblxyXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcclxuICAgIGNvbnN0IHsgZ29vZ2xlTG9hZGVkIH0gPSBjaGFuZ2VzID8/IHt9O1xyXG5cclxuICAgIGlmIChnb29nbGVMb2FkZWQ/LmN1cnJlbnRWYWx1ZSkge1xyXG4gICAgICB0aGlzLmluaXRHb29nbGUoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcclxuICAgIGNvbnN0IG5nQ29udHJvbDogTmdDb250cm9sID0gdGhpcy5pbmplY3Rvci5nZXQoXHJcbiAgICAgIE5nQ29udHJvbCxcclxuICAgICAgbnVsbCxcclxuICAgICkgYXMgTmdDb250cm9sO1xyXG5cclxuICAgIGlmIChuZ0NvbnRyb2wpIHtcclxuICAgICAgdGhpcy5jb250cm9sID0gbmdDb250cm9sLmNvbnRyb2wgYXMgVW50eXBlZEZvcm1Db250cm9sO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMud2F5cG9pbnRTdWdnZXN0aW9ucyQgPSBjb21iaW5lTGF0ZXN0KFtcclxuICAgICAgdGhpcy5pc0ZvY3VzZWQkLFxyXG4gICAgICB0aGlzLnZhbHVlJCxcclxuICAgIF0pLnBpcGUoXHJcbiAgICAgIGRlYm91bmNlVGltZSg1MDApLFxyXG4gICAgICBzd2l0Y2hNYXAoKFtpc0ZvY3VzZWQsIHZhbHVlXSkgPT4ge1xyXG4gICAgICAgIGlmICghaXNGb2N1c2VkKSB7XHJcbiAgICAgICAgICByZXR1cm4gb2YoW10gYXMgV2F5cG9pbnRTdWdnZXN0aW9uW10pO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKCF2YWx1ZSkge1xyXG4gICAgICAgICAgcmV0dXJuIG9mKHRoaXMud2F5cG9pbnRzSGlzdG9yeSk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICByZXR1cm4gdGhpcy5nZXRXYXlwb2ludFJlc3VsdHModmFsdWUpO1xyXG4gICAgICB9KSxcclxuICAgICAgbWFwKChyZXN1bHRzKSA9PiB7XHJcbiAgICAgICAgdGhpcy5kaXNwbGF5ZWRTdWdnZXN0aW9ucyA9IHJlc3VsdHM7XHJcbiAgICAgICAgdGhpcy5zZWxlY3RlZEluZGV4ID0gcmVzdWx0cz8ubGVuZ3RoID8gMCA6IC0xO1xyXG5cclxuICAgICAgICByZXR1cm4gcmVzdWx0cztcclxuICAgICAgfSksXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBnZXRXYXlwb2ludFJlc3VsdHMocXVlcnk6IHN0cmluZyk6IE9ic2VydmFibGU8V2F5cG9pbnRTdWdnZXN0aW9uW10+IHtcclxuICAgIHRoaXMucXVlcnlDaGFuZ2VkLmVtaXQoeyB3YXlwb2ludF90eXBlOiB0aGlzLndheXBvaW50VHlwZSwgcXVlcnkgfSk7XHJcblxyXG4gICAgcmV0dXJuIGNvbWJpbmVMYXRlc3QoW1xyXG4gICAgICBvZih0aGlzLndheXBvaW50c0hpc3RvcnkpLFxyXG4gICAgICB0aGlzLmdldFBsYWNlc1Jlc3VsdHMocXVlcnkpLFxyXG4gICAgXSkucGlwZShcclxuICAgICAgbWFwKChbaGlzdG9yeSwgZ29vZ2xlXSkgPT4ge1xyXG4gICAgICAgIGNvbnN0IGhpc3RvcnlJdGVtcyA9IGhpc3RvcnkgPz8gW10sXHJcbiAgICAgICAgICBnb29nbGVJdGVtcyA9IGdvb2dsZSA/PyBbXTtcclxuXHJcbiAgICAgICAgcmV0dXJuIFsuLi5oaXN0b3J5SXRlbXMsIC4uLmdvb2dsZUl0ZW1zXTtcclxuICAgICAgfSksXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBnZXRQbGFjZXNSZXN1bHRzKHF1ZXJ5OiBzdHJpbmcpOiBPYnNlcnZhYmxlPFdheXBvaW50U3VnZ2VzdGlvbltdPiB7XHJcbiAgICByZXR1cm4gbmV3IE9ic2VydmFibGUoKG9ic2VydmVyKSA9PiB7XHJcbiAgICAgIHRoaXMubWFwQXV0b2NvbXBsZXRlU2VydmljZS5nZXRQbGFjZVByZWRpY3Rpb25zKFxyXG4gICAgICAgIHtcclxuICAgICAgICAgIGlucHV0OiBxdWVyeSxcclxuICAgICAgICAgIGNvbXBvbmVudFJlc3RyaWN0aW9uczogeyBjb3VudHJ5OiB0aGlzLmNvdW50cnlDb2RlIH0sXHJcbiAgICAgICAgICBzZXNzaW9uVG9rZW46IHRoaXMuc2Vzc2lvblRva2VuLFxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgKHByZWRpY3Rpb25zKSA9PiB7XHJcbiAgICAgICAgICBvYnNlcnZlci5uZXh0KFxyXG4gICAgICAgICAgICAocHJlZGljdGlvbnMgPz8gW10pLm1hcCgocHJlZGljdGlvbikgPT4ge1xyXG4gICAgICAgICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICAgICAgICBhZGRpdGlvbmFsX2luZm86IHByZWRpY3Rpb24uZGVzY3JpcHRpb24sXHJcbiAgICAgICAgICAgICAgICBwbGFjZV9pZDogcHJlZGljdGlvbi5wbGFjZV9pZCEsXHJcbiAgICAgICAgICAgICAgICBzb3VyY2U6ICdnb29nbGUnLFxyXG4gICAgICAgICAgICAgICAgcHJlZGljdGlvbl90ZXJtOiBwcmVkaWN0aW9uLnRlcm1zLFxyXG4gICAgICAgICAgICAgIH07XHJcbiAgICAgICAgICAgIH0pLFxyXG4gICAgICAgICAgKTtcclxuICAgICAgICAgIG9ic2VydmVyLmNvbXBsZXRlKCk7XHJcbiAgICAgICAgfSxcclxuICAgICAgKTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgb25TZWxlY3RTdWdnZXN0aW9uKHN1Z2dlc3Rpb246IFdheXBvaW50U3VnZ2VzdGlvbik6IHZvaWQge1xyXG4gICAgY29uc3QgeyBhZGRpdGlvbmFsX2luZm8sIHBsYWNlX2lkIH0gPSBzdWdnZXN0aW9uID8/IHt9O1xyXG5cclxuICAgIHRoaXMudmFsdWUgPSBhZGRpdGlvbmFsX2luZm87XHJcbiAgICB0aGlzLnBsYWNlc1NlcnZpY2UuZ2V0RGV0YWlscyhcclxuICAgICAge1xyXG4gICAgICAgIHBsYWNlSWQ6IHBsYWNlX2lkISxcclxuICAgICAgICBzZXNzaW9uVG9rZW46IHRoaXMuc2Vzc2lvblRva2VuLFxyXG4gICAgICAgIGZpZWxkczogWydhZGRyZXNzX2NvbXBvbmVudHMnLCAnZ2VvbWV0cnkubG9jYXRpb24nXSxcclxuICAgICAgfSxcclxuICAgICAgKHBsYWNlLCBzdGF0dXMpID0+IHtcclxuICAgICAgICBpZiAoc3RhdHVzID09PSBnb29nbGUubWFwcy5wbGFjZXMuUGxhY2VzU2VydmljZVN0YXR1cy5PSyAmJiBwbGFjZSkge1xyXG4gICAgICAgICAgdGhpcy5uZ1pvbmUucnVuKCgpID0+IHtcclxuICAgICAgICAgICAgdGhpcy5wbGFjZVJlc3VsdC5lbWl0KHtcclxuICAgICAgICAgICAgICBwbGFjZSxcclxuICAgICAgICAgICAgICB0ZXh0OiBhZGRpdGlvbmFsX2luZm8sXHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgfSk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICB0aGlzLnJlc2V0U2Vzc2lvblRva2VuKCk7XHJcbiAgICAgIH0sXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgb25LZXlEb3duKGV2ZW50OiBLZXlib2FyZEV2ZW50KTogdm9pZCB7XHJcbiAgICBpZiAoIXRoaXMuZGlzcGxheWVkU3VnZ2VzdGlvbnM/Lmxlbmd0aCkge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgc3dpdGNoIChldmVudC5rZXkpIHtcclxuICAgICAgY2FzZSAnQXJyb3dEb3duJzpcclxuICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgICAgIHRoaXMuc2VsZWN0ZWRJbmRleCA9XHJcbiAgICAgICAgICAodGhpcy5zZWxlY3RlZEluZGV4ICsgMSkgJSB0aGlzLmRpc3BsYXllZFN1Z2dlc3Rpb25zLmxlbmd0aDtcclxuICAgICAgICBicmVhaztcclxuXHJcbiAgICAgIGNhc2UgJ0Fycm93VXAnOlxyXG4gICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XHJcbiAgICAgICAgdGhpcy5zZWxlY3RlZEluZGV4ID1cclxuICAgICAgICAgICh0aGlzLnNlbGVjdGVkSW5kZXggLSAxICsgdGhpcy5kaXNwbGF5ZWRTdWdnZXN0aW9ucy5sZW5ndGgpICVcclxuICAgICAgICAgIHRoaXMuZGlzcGxheWVkU3VnZ2VzdGlvbnMubGVuZ3RoO1xyXG4gICAgICAgIGJyZWFrO1xyXG5cclxuICAgICAgY2FzZSAnRW50ZXInOlxyXG4gICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XHJcblxyXG4gICAgICAgIGlmICh0aGlzLnNlbGVjdGVkSW5kZXggPj0gMCkge1xyXG4gICAgICAgICAgdGhpcy5vblNlbGVjdFN1Z2dlc3Rpb24oXHJcbiAgICAgICAgICAgIHRoaXMuZGlzcGxheWVkU3VnZ2VzdGlvbnNbdGhpcy5zZWxlY3RlZEluZGV4XSxcclxuICAgICAgICAgICk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGJyZWFrO1xyXG5cclxuICAgICAgY2FzZSAnRXNjYXBlJzpcclxuICAgICAgICB0aGlzLmlzRm9jdXNlZCQubmV4dChmYWxzZSk7XHJcbiAgICAgICAgdGhpcy5zZWxlY3RlZEluZGV4ID0gLTE7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLmxpc3RlbmVyKSB7XHJcbiAgICAgIHRoaXMubGlzdGVuZXIucmVtb3ZlKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBvbkNoYW5nZTogYW55ID0gKCkgPT4ge307XHJcblxyXG4gIG9uVG91Y2g6IGFueSA9ICgpID0+IHt9O1xyXG5cclxuICBvbkJsdXIoKTogdm9pZCB7XHJcbiAgICB0aGlzLmlzRm9jdXNlZCQubmV4dChmYWxzZSk7XHJcbiAgICB0aGlzLm9uVG91Y2g7XHJcbiAgfVxyXG5cclxuICBvbkZvY3VzKCk6IHZvaWQge1xyXG4gICAgdGhpcy5pc0ZvY3VzZWQkLm5leHQodHJ1ZSk7XHJcblxyXG4gICAgaWYgKCF0aGlzLnZhbHVlKSB7XHJcbiAgICAgIHRoaXMucmVzZXRTZXNzaW9uVG9rZW4oKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHdyaXRlVmFsdWUodmFsdWU6IGFueSk6IHZvaWQge1xyXG4gICAgdGhpcy52YWx1ZSA9IHZhbHVlO1xyXG4gIH1cclxuXHJcbiAgcmVnaXN0ZXJPbkNoYW5nZShmbjogYW55KTogdm9pZCB7XHJcbiAgICB0aGlzLm9uQ2hhbmdlID0gZm47XHJcbiAgfVxyXG5cclxuICByZWdpc3Rlck9uVG91Y2hlZChmbjogYW55KTogdm9pZCB7XHJcbiAgICB0aGlzLm9uVG91Y2ggPSBmbjtcclxuICB9XHJcblxyXG4gIG9uRGVsZXRlSXRlbSgpOiB2b2lkIHtcclxuICAgIHRoaXMuZGVsZXRlSXRlbS5lbWl0KCk7XHJcbiAgfVxyXG5cclxuICBvbkNsZWFuKCk6IHZvaWQge1xyXG4gICAgdGhpcy52YWx1ZSA9ICcnO1xyXG4gICAgdGhpcy5vblRvdWNoKCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGluaXRHb29nbGUoKTogdm9pZCB7XHJcbiAgICB0aGlzLm1hcEF1dG9jb21wbGV0ZVNlcnZpY2UgPSBuZXcgZ29vZ2xlLm1hcHMucGxhY2VzLkF1dG9jb21wbGV0ZVNlcnZpY2UoKTtcclxuXHJcbiAgICB0aGlzLnBsYWNlc1NlcnZpY2UgPSBuZXcgZ29vZ2xlLm1hcHMucGxhY2VzLlBsYWNlc1NlcnZpY2UoXHJcbiAgICAgIGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpLFxyXG4gICAgKTtcclxuXHJcbiAgICB0aGlzLnJlc2V0U2Vzc2lvblRva2VuKCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHJlc2V0U2Vzc2lvblRva2VuKCk6IHZvaWQge1xyXG4gICAgdGhpcy5zZXNzaW9uVG9rZW4gPSBuZXcgZ29vZ2xlLm1hcHMucGxhY2VzLkF1dG9jb21wbGV0ZVNlc3Npb25Ub2tlbigpO1xyXG4gIH1cclxufVxyXG4iLCI8ZWNhYnMtZWxlbWVudC13cmFwcGVyIFtkYXRhXT1cImdldERhdGEoKVwiPlxyXG4gIDxkaXYgY2xhc3M9XCJhdXRvY29tcGxldGUtdWkgdy1mdWxsXCI+XHJcbiAgICA8c2VjdGlvbiBjbGFzcz1cImZvcm0tZmllbGRfX2lucHV0LS13cmFwcGVyIHctZnVsbFwiPlxyXG4gICAgICA8aW5wdXQgI21hdEN1c3RvbUF1dG9jb21wbGV0ZUlucHV0XHJcbiAgICAgICAgICAgICBjZGtPdmVybGF5T3JpZ2luXHJcbiAgICAgICAgICAgICAjdHJpZ2dlcj1cImNka092ZXJsYXlPcmlnaW5cIlxyXG4gICAgICAgICAgICAgW3BsYWNlaG9sZGVyXT1cInBsYWNlaG9sZGVyXCJcclxuICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiXHJcbiAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cInZhbHVlXCJcclxuICAgICAgICAgICAgIFtpZF09XCJuYW1lXCJcclxuICAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1maWVsZF9faW5wdXQgdy1mdWxsXCJcclxuICAgICAgICAgICAgIGF1dG9jb3JyZWN0PVwib2ZmXCJcclxuICAgICAgICAgICAgIGF1dG9jYXBpdGFsaXplPVwib2ZmXCJcclxuICAgICAgICAgICAgIHNwZWxsY2hlY2s9XCJvZmZcIlxyXG4gICAgICAgICAgICAgKGZvY3VzKT1cIm9uRm9jdXMoKVwiXHJcbiAgICAgICAgICAgICAoa2V5ZG93bik9XCJvbktleURvd24oJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICAoYmx1cik9XCJvbkJsdXIoKVwiXHJcbiAgICAgIC8+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLWZpZWxkX19pbnB1dC0tc3VmZml4XCIgKm5nSWY9XCJzaG93U3VmZml4XCI+XHJcbiAgICAgICAgPG1hdC1pY29uICpuZ0lmPVwic2hvd0RlbGV0ZUl0ZW1cIlxyXG4gICAgICAgICAgICAgICAgICBjbGFzcz1cInN1ZmZpeCBjdXJzb3ItcG9pbnRlciBkZWxldGUtYnV0dG9uXCJcclxuICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIm9uRGVsZXRlSXRlbSgpXCI+XHJcbiAgICAgICAgICBkZWxldGVcclxuICAgICAgICA8L21hdC1pY29uPlxyXG4gICAgICAgIDxtYXQtaWNvbiBjbGFzcz1cInN1ZmZpeCBjdXJzb3ItcG9pbnRlclwiICpuZ0lmPVwiIXNob3dEZWxldGVJdGVtICYmIHZhbHVlXCIgKGNsaWNrKT1cIm9uQ2xlYW4oKVwiPmNsb3NlPC9tYXQtaWNvbj5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L3NlY3Rpb24+XHJcbiAgICA8IS0tIEN1c3RvbSBkcm9wZG93biAtLT5cclxuICAgIDxuZy10ZW1wbGF0ZSBjZGtDb25uZWN0ZWRPdmVybGF5XHJcbiAgICAgICAgICAgICAgICAgW2Nka0Nvbm5lY3RlZE92ZXJsYXlXaWR0aF09XCJ0cmlnZ2VyLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5vZmZzZXRXaWR0aFwiXHJcbiAgICAgICAgICAgICAgICAgW2Nka0Nvbm5lY3RlZE92ZXJsYXlGbGV4aWJsZURpbWVuc2lvbnNdPVwiZmFsc2VcIlxyXG4gICAgICAgICAgICAgICAgIFtjZGtDb25uZWN0ZWRPdmVybGF5T3JpZ2luXT1cInRyaWdnZXJcIlxyXG4gICAgICAgICAgICAgICAgIFtjZGtDb25uZWN0ZWRPdmVybGF5T3Blbl09XCJpc0ZvY3VzZWQkIHwgYXN5bmNcIj5cclxuICAgICAgPHVsIGNsYXNzPVwiYXV0b2NvbXBsZXRlLXVpX19jb250YWluZXJcIj5cclxuICAgICAgICA8bGkgKm5nRm9yPVwibGV0IHN1Z2dlc3Rpb24gb2Ygd2F5cG9pbnRTdWdnZXN0aW9ucyQgfCBhc3luYyB8IHNsaWNlOjA6MTA7IGxldCBpID0gaW5kZXhcIlxyXG4gICAgICAgICAgICBjbGFzcz1cImF1dG9jb21wbGV0ZS11aS0taXRlbSBmbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWJldHdlZW4gaG92ZXI6YmctZ3JheS0xMDBcIlxyXG4gICAgICAgICAgICBbY2xhc3MuYWN0aXZlXT1cImkgPT09IHNlbGVjdGVkSW5kZXhcIlxyXG4gICAgICAgICAgICAobW91c2Vkb3duKT1cIm9uU2VsZWN0U3VnZ2VzdGlvbihzdWdnZXN0aW9uKVwiPlxyXG4gICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInN1Z2dlc3Rpb24/LnNvdXJjZSA9PT0gJ2hpc3RvcnknOyBlbHNlIHB1cmVQbGFjZVJlc3VsdFRwbFwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwidy1mdWxsIHRydW5jYXRlXCI+XHJcbiAgICAgICAgICAgICAge3sgc3VnZ2VzdGlvbj8uYWRkaXRpb25hbF9pbmZvIH19XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8bWF0LWljb24gKm5nSWY9XCJzdWdnZXN0aW9uPy5zb3VyY2UgPT09ICdoaXN0b3J5J1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInctNSBoLTUgdGV4dC14bCB0ZXh0LWdyYXktNDAwICFob3Zlcjp0ZXh0LWdyYXktNDAwXCI+XHJcbiAgICAgICAgICAgICAgaGlzdG9yeVxyXG4gICAgICAgICAgICA8L21hdC1pY29uPlxyXG4gICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcblxyXG4gICAgICAgICAgPG5nLXRlbXBsYXRlICNwdXJlUGxhY2VSZXN1bHRUcGw+XHJcbiAgICAgICAgICAgIDx1bCBjbGFzcz1cInctZnVsbCBmbGV4IGl0ZW1zLWNlbnRlciBnYXAteC0xIGxlYWRpbmctMCBvdmVyZmxvdy1oaWRkZW4gd2hpdGVzcGFjZS1ub3dyYXBcIj5cclxuICAgICAgICAgICAgICA8bGk+XHJcbiAgICAgICAgICAgICAgICB7eyBzdWdnZXN0aW9uPy5wcmVkaWN0aW9uX3Rlcm1bMF0/LnZhbHVlIH19XHJcbiAgICAgICAgICAgICAgPC9saT5cclxuICAgICAgICAgICAgICA8bGkgKm5nSWY9XCJzdWdnZXN0aW9uPy5wcmVkaWN0aW9uX3Rlcm1bMV0/LnZhbHVlXCJcclxuICAgICAgICAgICAgICAgICAgY2xhc3M9XCJ0ZXh0LXhzIHRleHQtZ3JheS02MDAgdHJ1bmNhdGVcIj5cclxuICAgICAgICAgICAgICAgIHt7IHN1Z2dlc3Rpb24/LnByZWRpY3Rpb25fdGVybVsxXT8udmFsdWUgfCBzZXBhcmF0b3JBcHBlbmQ6IHN1Z2dlc3Rpb24/LnByZWRpY3Rpb25fdGVybVsyXT8udmFsdWUgfX1cclxuICAgICAgICAgICAgICA8L2xpPlxyXG4gICAgICAgICAgICAgIDxsaSAqbmdJZj1cInN1Z2dlc3Rpb24/LnByZWRpY3Rpb25fdGVybVsyXT8udmFsdWVcIlxyXG4gICAgICAgICAgICAgICAgICBjbGFzcz1cInRleHQteHMgdGV4dC1ncmF5LTYwMCBmb250LXNlbWlib2xkIHRydW5jYXRlXCI+XHJcbiAgICAgICAgICAgICAgICB7eyBzdWdnZXN0aW9uPy5wcmVkaWN0aW9uX3Rlcm1bMl0/LnZhbHVlIH19XHJcbiAgICAgICAgICAgICAgPC9saT5cclxuICAgICAgICAgICAgPC91bD5cclxuICAgICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgPC9saT5cclxuICAgICAgPC91bD5cclxuICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgPC9kaXY+XHJcbjwvZWNhYnMtZWxlbWVudC13cmFwcGVyPlxyXG4iXX0=
@@ -0,0 +1,40 @@
1
+ import { NgModule } from '@angular/core';
2
+ import { CommonModule } from '@angular/common';
3
+ import { EcabsPlaceAutocompleteV2Component } from './ecabs-place-autocomplete-v2.component';
4
+ import { FormsModule } from '@angular/forms';
5
+ import { MatIconModule } from '@angular/material/icon';
6
+ import { ElementWrapperModule } from '../base/element-wrapper/element-wrapper.module';
7
+ import { SeparatorAppendPipe } from '../base/pipes/separator-append.pipe';
8
+ import { CdkConnectedOverlay, CdkOverlayOrigin } from '@angular/cdk/overlay';
9
+ import * as i0 from "@angular/core";
10
+ export class EcabsPlaceAutocompleteV2Module {
11
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: EcabsPlaceAutocompleteV2Module, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
12
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.2.12", ngImport: i0, type: EcabsPlaceAutocompleteV2Module, declarations: [EcabsPlaceAutocompleteV2Component], imports: [CommonModule,
13
+ ElementWrapperModule,
14
+ FormsModule,
15
+ MatIconModule,
16
+ SeparatorAppendPipe,
17
+ CdkOverlayOrigin,
18
+ CdkConnectedOverlay], exports: [EcabsPlaceAutocompleteV2Component] });
19
+ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: EcabsPlaceAutocompleteV2Module, imports: [CommonModule,
20
+ ElementWrapperModule,
21
+ FormsModule,
22
+ MatIconModule] });
23
+ }
24
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: EcabsPlaceAutocompleteV2Module, decorators: [{
25
+ type: NgModule,
26
+ args: [{
27
+ declarations: [EcabsPlaceAutocompleteV2Component],
28
+ imports: [
29
+ CommonModule,
30
+ ElementWrapperModule,
31
+ FormsModule,
32
+ MatIconModule,
33
+ SeparatorAppendPipe,
34
+ CdkOverlayOrigin,
35
+ CdkConnectedOverlay,
36
+ ],
37
+ exports: [EcabsPlaceAutocompleteV2Component],
38
+ }]
39
+ }] });
40
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWNhYnMtcGxhY2UtYXV0b2NvbXBsZXRlLXYyLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2VjYWJzLWNvbXBvbmVudHMvc3JjL2xpYi9lY2Ficy1wbGFjZS1hdXRvY29tcGxldGUtdjIvZWNhYnMtcGxhY2UtYXV0b2NvbXBsZXRlLXYyLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsaUNBQWlDLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQztBQUM1RixPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0MsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGdEQUFnRCxDQUFDO0FBQ3RGLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQzFFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHNCQUFzQixDQUFDOztBQWU3RSxNQUFNLE9BQU8sOEJBQThCO3dHQUE5Qiw4QkFBOEI7eUdBQTlCLDhCQUE4QixpQkFaMUIsaUNBQWlDLGFBRTlDLFlBQVk7WUFDWixvQkFBb0I7WUFDcEIsV0FBVztZQUNYLGFBQWE7WUFDYixtQkFBbUI7WUFDbkIsZ0JBQWdCO1lBQ2hCLG1CQUFtQixhQUVYLGlDQUFpQzt5R0FFaEMsOEJBQThCLFlBVnZDLFlBQVk7WUFDWixvQkFBb0I7WUFDcEIsV0FBVztZQUNYLGFBQWE7OzRGQU9KLDhCQUE4QjtrQkFiMUMsUUFBUTttQkFBQztvQkFDUixZQUFZLEVBQUUsQ0FBQyxpQ0FBaUMsQ0FBQztvQkFDakQsT0FBTyxFQUFFO3dCQUNQLFlBQVk7d0JBQ1osb0JBQW9CO3dCQUNwQixXQUFXO3dCQUNYLGFBQWE7d0JBQ2IsbUJBQW1CO3dCQUNuQixnQkFBZ0I7d0JBQ2hCLG1CQUFtQjtxQkFDcEI7b0JBQ0QsT0FBTyxFQUFFLENBQUMsaUNBQWlDLENBQUM7aUJBQzdDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgRWNhYnNQbGFjZUF1dG9jb21wbGV0ZVYyQ29tcG9uZW50IH0gZnJvbSAnLi9lY2Ficy1wbGFjZS1hdXRvY29tcGxldGUtdjIuY29tcG9uZW50JztcclxuaW1wb3J0IHsgRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IE1hdEljb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pY29uJztcclxuaW1wb3J0IHsgRWxlbWVudFdyYXBwZXJNb2R1bGUgfSBmcm9tICcuLi9iYXNlL2VsZW1lbnQtd3JhcHBlci9lbGVtZW50LXdyYXBwZXIubW9kdWxlJztcclxuaW1wb3J0IHsgU2VwYXJhdG9yQXBwZW5kUGlwZSB9IGZyb20gJy4uL2Jhc2UvcGlwZXMvc2VwYXJhdG9yLWFwcGVuZC5waXBlJztcclxuaW1wb3J0IHsgQ2RrQ29ubmVjdGVkT3ZlcmxheSwgQ2RrT3ZlcmxheU9yaWdpbiB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9vdmVybGF5JztcclxuXHJcbkBOZ01vZHVsZSh7XHJcbiAgZGVjbGFyYXRpb25zOiBbRWNhYnNQbGFjZUF1dG9jb21wbGV0ZVYyQ29tcG9uZW50XSxcclxuICBpbXBvcnRzOiBbXHJcbiAgICBDb21tb25Nb2R1bGUsXHJcbiAgICBFbGVtZW50V3JhcHBlck1vZHVsZSxcclxuICAgIEZvcm1zTW9kdWxlLFxyXG4gICAgTWF0SWNvbk1vZHVsZSxcclxuICAgIFNlcGFyYXRvckFwcGVuZFBpcGUsXHJcbiAgICBDZGtPdmVybGF5T3JpZ2luLFxyXG4gICAgQ2RrQ29ubmVjdGVkT3ZlcmxheSxcclxuICBdLFxyXG4gIGV4cG9ydHM6IFtFY2Fic1BsYWNlQXV0b2NvbXBsZXRlVjJDb21wb25lbnRdLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgRWNhYnNQbGFjZUF1dG9jb21wbGV0ZVYyTW9kdWxlIHt9XHJcbiJdfQ==