@energycap/components 0.39.11-schematics.20240314-1719 → 0.39.13

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.
@@ -44,6 +44,21 @@ export class TourComponent {
44
44
  await this.endTour();
45
45
  }
46
46
  }
47
+ else if (event.tourAction === 'append') {
48
+ let visibleTours = event.tours;
49
+ // If this was triggered via auto start then we need to remove any tours that have been completed
50
+ if (event.isAutoStart) {
51
+ visibleTours = this.removeCompletedTours(visibleTours);
52
+ }
53
+ // If there is already a current tour, then we need to append the new tours to the current tour
54
+ if (this.currentTour) {
55
+ this.tours = this.tours.concat(visibleTours);
56
+ }
57
+ else {
58
+ // There is not a current tour, so treat this as a start event
59
+ await this.setupTourComponent(event);
60
+ }
61
+ }
47
62
  });
48
63
  }
49
64
  ngOnDestroy() {
@@ -380,4 +395,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImpor
380
395
  type: ViewChild,
381
396
  args: ['tourTooltip']
382
397
  }] } });
383
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG91ci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb21wb25lbnRzL3NyYy9saWIvZGlzcGxheS90b3VyL3RvdXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29tcG9uZW50cy9zcmMvbGliL2Rpc3BsYXkvdG91ci90b3VyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMzQyxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBdUIsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRWxGLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDL0IsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7Ozs7Ozs7O0FBZTNDLE1BQU0sT0FBTyxhQUFhO0lBNEJ4QixZQUNVLFdBQXdCLEVBQ3hCLGNBQThCLEVBQzlCLGdCQUFrQyxFQUNsQyxZQUEwQixFQUMxQixhQUE0QixFQUM1QixnQkFBa0MsRUFDaEIsUUFBa0I7UUFOcEMsZ0JBQVcsR0FBWCxXQUFXLENBQWE7UUFDeEIsbUJBQWMsR0FBZCxjQUFjLENBQWdCO1FBQzlCLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7UUFDbEMsaUJBQVksR0FBWixZQUFZLENBQWM7UUFDMUIsa0JBQWEsR0FBYixhQUFhLENBQWU7UUFDNUIscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtRQUNoQixhQUFRLEdBQVIsUUFBUSxDQUFVO1FBN0I5Qzs7V0FFRztRQUNJLG1CQUFjLEdBQVksS0FBSyxDQUFDO1FBS3ZDLHFFQUFxRTtRQUM3RCxVQUFLLEdBQVcsRUFBRSxDQUFDO1FBRTNCLDRIQUE0SDtRQUNwSCxxQkFBZ0IsR0FBVyxDQUFDLENBQUMsQ0FBQztRQUM5QixxQkFBZ0IsR0FB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SSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxJQUFJLENBQUMsZUFBZ0IsQ0FBQyxFQUFFLGFBQWEsQ0FBQyxFQUFFO1lBQ25FLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxJQUFJLENBQUMsZUFBZ0IsQ0FBQyxFQUFFLGFBQWEsQ0FBQyxDQUFBO1NBQy9EO0lBQ0gsQ0FBQztJQUVEOzs7T0FHRztJQUNLLGNBQWMsQ0FBQyxRQUFnQjtRQUNyQyxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLGFBQWEsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUN0RCxJQUFJLE9BQU8sRUFBRTtZQUNWLE9BQXVCLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDakMsT0FBTyxJQUFJLENBQUM7U0FDYjtRQUNELE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQzs7MEdBdGFVLGFBQWEsb01BbUNkLFFBQVE7OEZBbkNQLGFBQWEsc0pDbkIxQiwwaENBZWM7MkZESUQsYUFBYTtrQkFMekIsU0FBUzsrQkFDRSxTQUFTOzswQkF1Q2hCLE1BQU07MkJBQUMsUUFBUTs0Q0FUZSxNQUFNO3NCQUF0QyxTQUFTO3VCQUFDLGFBQWEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBET0NVTUVOVCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IENvbXBvbmVudCwgSW5qZWN0LCBPbkluaXQsIFRlbXBsYXRlUmVmLCBWaWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgVHJhbnNsYXRlU2VydmljZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xyXG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IHRha2VVbnRpbCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuXHJcbmltcG9ydCB7IENhY2hlU2VydmljZSB9IGZyb20gJy4uLy4uL2NvcmUvY2FjaGUuc2VydmljZSc7XHJcbmltcG9ydCB7IFRlbGVtZXRyeVNlcnZpY2UgfSBmcm9tICcuLi8uLi9jb3JlL3RlbGVtZXRyeS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgRGlhbG9nU2VydmljZSB9IGZyb20gJy4uL2RpYWxvZy9kaWFsb2cuc2VydmljZSc7XHJcbmltcG9ydCB7IFRvb2x0aXBDb21wb25lbnQsIFRvb2x0aXBPcHRpb25zIH0gZnJvbSAnLi8uLi90b29sdGlwL3Rvb2x0aXAuY29tcG9uZW50JztcclxuaW1wb3J0IHsgVG9vbHRpcFNlcnZpY2UgfSBmcm9tICcuLy4uL3Rvb2x0aXAvdG9vbHRpcC5zZXJ2aWNlJztcclxuaW1wb3J0IHsgVG91ciwgVG91ckFuY2hvciwgVG91ckNhY2hlRW50cnksIFRvdXJFdmVudCwgVG91clN0ZXAgfSBmcm9tICcuL3RvdXItdHlwZXMnO1xyXG5pbXBvcnQgeyBUb3VyU2VydmljZSB9IGZyb20gJy4vdG91ci5zZXJ2aWNlJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnZWMtdG91cicsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3RvdXIuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL3RvdXIuY29tcG9uZW50LnNjc3MnXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgVG91ckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcbiAgLyoqIEN1cnJlbnQgdG91ciBzdGVwIGJlaW5nIHNob3duIHRvIHRoZSB1c2VyLiBUaGUgY3VzdG9tIGNvbnRlbnQgaW4gdGhlIHRlbXBsYXRlIGlzIGJvdW5kIHRvIHByb3BlcnRpZXMgb24gdGhpcyBhbmQgdGhlcmVmb3IgbmVlZHMgdG8gYmVcclxuICAqICBpdHMgb3duIHByb3BlcnR5LiBUaGUgZXhpdFN0ZXAgaXMgYSB0b3VyIHN0ZXAgYW5kIHRoaXMgd2lsbCBob2xkIHRoYXQgc3RlcCBhdCB0aGUgZW5kIG9mIHRoZSB0b3VyLlxyXG4gICovXHJcbiAgcHVibGljIGN1cnJlbnRUb3VyU3RlcD86IFRvdXJTdGVwO1xyXG5cclxuICAvKiogVXNlZCB0byB0ZWxsIHRoZSBVSSB0aGF0IHRoZSBzdGVwIGJlaW5nIHNob3duIGlzIGFuIGV4aXQgc3RlcC4gVGhpcyB3aWxsIGNoYW5nZSB0aGVcclxuICAgKiAgbGluayB0ZXh0IGFuZCB0aGUgYWN0aW9uIHdoZW4gY2xpY2tlZFxyXG4gICAqL1xyXG4gIHB1YmxpYyBzaG93RG9uZUJ1dHRvbjogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICAvKiogUmVmZXJlbmNlIHRvIHRoZSB0b29sdGlwIHVzZWQgZm9yIHRoZSB0b3VyIHN0ZXBzICovXHJcbiAgcHVibGljIHRvb2x0aXA/OiBUb29sdGlwQ29tcG9uZW50O1xyXG5cclxuICAvKiogQXJyYXkgb2YgdG91cnMgcHJvdmlkZWQgd2hlbiB0aGUgc3RhcnQgdG91ciBldmVudCB3YXMgZGV0ZWN0ZWQgKi9cclxuICBwcml2YXRlIHRvdXJzOiBUb3VyW10gPSBbXTtcclxuXHJcbiAgLy8gQ291cGxlIGluZGV4ZXMgZm9yIHRoZSBjdXJyZW50IHRvdXIvc3RlcCBzdG9yZWQgZm9yIGVhc2llciByZWZlcmVuY2Ugd2hlbiBrbm93aW5nIGlmIHdlIGFyZSBhdCB0aGUgZW5kIG9mIHRoZSBzdGVwcy90b3Vyc1xyXG4gIHByaXZhdGUgY3VycmVudFN0ZXBJbmRleDogbnVtYmVyID0gLTE7XHJcbiAgcHJpdmF0ZSBjdXJyZW50VG91ckluZGV4OiBudW1iZXIgPSAtMTtcclxuXHJcbiAgLyoqIFVzZWQgdG8ga25vdyBpZiB0aGUgcmVzdG9yZSBzdGVwIHNob3VsZCBiZSB0cmlnZ2VyZWQgd2hlbiB0aGUgdG91ciBpcyBkaXNtaXNzZWQgKi9cclxuICBwcml2YXRlIGlzQXV0b1N0YXJ0OiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gIHByaXZhdGUgZGVzdHJveWVkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcclxuXHJcbiAgQFZpZXdDaGlsZCgndG91clRvb2x0aXAnKSBwdWJsaWMgY3VzdG9tITogVGVtcGxhdGVSZWY8YW55PjtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIHRvdXJTZXJ2aWNlOiBUb3VyU2VydmljZSxcclxuICAgIHByaXZhdGUgdG9vbHRpcFNlcnZpY2U6IFRvb2x0aXBTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSB0ZWxlbWV0cnlTZXJ2aWNlOiBUZWxlbWV0cnlTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBjYWNoZVNlcnZpY2U6IENhY2hlU2VydmljZSxcclxuICAgIHByaXZhdGUgZGlhbG9nU2VydmljZTogRGlhbG9nU2VydmljZSxcclxuICAgIHByaXZhdGUgdHJhbnNsYXRlU2VydmljZTogVHJhbnNsYXRlU2VydmljZSxcclxuICAgIEBJbmplY3QoRE9DVU1FTlQpIHByaXZhdGUgZG9jdW1lbnQ6IERvY3VtZW50LFxyXG4gICkgeyB9XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy50b3VyU2VydmljZS5ldmVudHMucGlwZShcclxuICAgICAgdGFrZVVudGlsKHRoaXMuZGVzdHJveWVkKVxyXG4gICAgKS5zdWJzY3JpYmUoYXN5bmMgZXZlbnQgPT4ge1xyXG4gICAgICBpZiAoZXZlbnQudG91ckFjdGlvbiA9PT0gJ3N0YXJ0Jykge1xyXG4gICAgICAgIGF3YWl0IHRoaXMuc2V0dXBUb3VyQ29tcG9uZW50KGV2ZW50KTtcclxuICAgICAgfSBlbHNlIGlmIChldmVudC50b3VyQWN0aW9uID09PSAnZW5kJykge1xyXG4gICAgICAgIGlmICh0aGlzLmN1cnJlbnRUb3VyKSB7XHJcbiAgICAgICAgICB0aGlzLndyaXRlQ29tcGxldGlvbktleUZvckFsbFRvdXJzKCk7XHJcbiAgICAgICAgICBhd2FpdCB0aGlzLmVuZFRvdXIoKTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICB0aGlzLmRlc3Ryb3llZC5uZXh0KCk7XHJcbiAgICB0aGlzLmRlc3Ryb3llZC51bnN1YnNjcmliZSgpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQ2FsbGVkIHdoZW4gYSByZXN0b3JlIHN0ZXAgaGFzIGJlZW4gY29tcGxldGVkXHJcbiAgICovXHJcbiAgcHVibGljIGFzeW5jIGRvbmUoKTogUHJvbWlzZTx2b2lkPiB7XHJcbiAgICB0aGlzLndyaXRlQ29tcGxldGlvbktleSh0aGlzLmN1cnJlbnRUb3VyKTtcclxuICAgIGF3YWl0IHRoaXMuZW5kVG91cigpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQ2FsbGVkIHdoZW4gYSB0b3VyIGJlZ2lucyBhbmQgd2hlbiB0aGUgdXNlciBjbGlja3MgbmV4dCBvbiB0aGUgY3VycmVudCB0b3VyIHN0ZXAuIEl0IHdpbGwgaGFuZGxlIGFueSBhZnRlciBjbGljayBhY3Rpb25zIGFuZCB0aGVuXHJcbiAgICogZmluZCB0aGUgbmV4dCBzdGVwIGFuZCBwcmVzZW50IGl0IHRvIHRoZSB1c2VyIGFuZCB0cmFuc2l0aW9uIHRvIGEgcmVzdG9yZSBzdGVwIG9yIG5ldyB0b3VyIGlmIG5lZWRlZC5cclxuICAgKi9cclxuICBwdWJsaWMgYXN5bmMgc2hvd05leHRTdGVwKCk6IFByb21pc2U8dm9pZD4ge1xyXG4gICAgLy8gQmVmb3JlIG1vdmluZyB0byB0aGUgbmV4dCBzdGVwLCBtYWtlIHN1cmUgdGhlIGN1cnJlbnQgc3RlcCBkb2VzIG5vdCBoYXZlIGEgY2xpY2sgYWZ0ZXIgZGVmaW5lZC4gVGhpcyBjb3VsZCBiZSBoaWRpbmcgYSBtZW51XHJcbiAgICAvLyB0aGF0IHdhcyBvcGVuZWQgZm9yIHRoZSBzb29uIHRvIGJlIHByZXZpb3VzIHN0ZXAuXHJcbiAgICBhd2FpdCB0aGlzLndhaXRGb3JUaW1lb3V0KHRoaXMuaGFuZGxlQ2xpY2tBZnRlci5iaW5kKHRoaXMpKTtcclxuXHJcbiAgICAvLyBSZW1vdmUgYW55IHByZXZpb3VzIHRvb2x0aXBzXHJcbiAgICB0aGlzLnJlbW92ZVRvb2x0aXAoKTtcclxuXHJcbiAgICAvLyBHZXQgb3VyIG5leHQgc3RlcCBpbmRleCB0byBkaXNwbGF5IHRvIHRoZSB1c2VyXHJcbiAgICB0aGlzLmN1cnJlbnRTdGVwSW5kZXggPSB0aGlzLmdldE5leHRBdmFpbGFibGVTdGVwSW5kZXgoKTtcclxuXHJcbiAgICBpZiAodGhpcy5jdXJyZW50U3RlcEluZGV4ID09PSAtMSkge1xyXG4gICAgICAvLyBObyBtb3JlIHN0ZXBzIGZvdW5kLCB3ZSBlaXRoZXIgbmVlZCB0byBjaGVjayBmb3IgdGhlIGV4aXQgc3RlcCBpZiB0aGlzIGlzIHRoZSBsYXN0IHRvdXJcclxuICAgICAgLy8gaW4gdGhlIHRvdXJzIGFycmF5IG9yIGFkdmFuY2UgdG8gdGhlIG5leHQgdG91clxyXG4gICAgICBpZiAodGhpcy5jdXJyZW50VG91ckluZGV4ID09PSB0aGlzLnRvdXJzLmxlbmd0aCAtIDEpIHtcclxuICAgICAgICBhd2FpdCB0aGlzLmhhbmRsZUV4aXRTdGVwKCk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgLy8gV3JpdGUgdGhlIGNvbXBsZXRpb24ga2V5IGZvciB0aGUgY3VycmVudCB0b3VyIGJlZm9yZSB3ZSBtb3ZlIHRvIHRoZSBuZXh0XHJcbiAgICAgICAgdGhpcy53cml0ZUNvbXBsZXRpb25LZXkodGhpcy5jdXJyZW50VG91cik7XHJcblxyXG4gICAgICAgIHRoaXMuY3VycmVudFRvdXJJbmRleCsrO1xyXG4gICAgICAgIGF3YWl0IHRoaXMuc2hvd05leHRUb3VyKCk7XHJcbiAgICAgIH1cclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuY3VycmVudFRvdXJTdGVwID0gdGhpcy5jdXJyZW50VG91cj8uc3RlcHNbdGhpcy5jdXJyZW50U3RlcEluZGV4XTtcclxuXHJcbiAgICAgIC8vIE5vdyB0aGF0IHdlIGhhdmUgb3VyIGN1cnJlbnQgc3RlcCBpbmRleCwgdGFrZSBjYXJlIG9mIGFueSBjbGljayBiZWZvcmUgZWxlbWVudHMgYmVmb3JlIHNob3dpbmcgdGhlXHJcbiAgICAgIC8vIHRvb2x0aXAuIFRoaXMgY291bGQgYmUgb3BlbmluZyBhIG1lbnUgdG8gZ2V0IHRoZSB0b29sdGlwIGVsZW1lbnQgdmlzaWJsZS5cclxuICAgICAgYXdhaXQgdGhpcy53YWl0Rm9yVGltZW91dCh0aGlzLmhhbmRsZUNsaWNrQmVmb3JlLmJpbmQodGhpcykpO1xyXG5cclxuICAgICAgLy8gQ2xpY2sgYmVmb3JlcyBhcmUgZG9uZSwgbm93IGxldCdzIHNob3cgdGhlIHRvb2x0aXAgZGVmaW5lZCBpbiB0aGUgdG91ciBzdGVwXHJcbiAgICAgIGF3YWl0IHRoaXMud2FpdEZvclRpbWVvdXQodGhpcy5zaG93U3RlcFRvb2x0aXAuYmluZCh0aGlzKSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGFzeW5jIHNldHVwVG91ckNvbXBvbmVudChldmVudDogVG91ckV2ZW50KTogUHJvbWlzZTx2b2lkPiB7XHJcbiAgICAvLyBFbmQgYW55IHRvdXJzIHRoYXQgbWF5IGhhdmUgYmVlbiBpbiBwcm9ncmVzcyBpZiB0aGUgdXNlciBraWNrcyBvZmYgYSBuZXcgb25lXHJcbiAgICBpZiAodGhpcy5jdXJyZW50VG91cikge1xyXG4gICAgICB0aGlzLndyaXRlQ29tcGxldGlvbktleUZvckFsbFRvdXJzKCk7XHJcbiAgICAgIGF3YWl0IHRoaXMuZW5kVG91cigpO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuaXNBdXRvU3RhcnQgPSBldmVudC5pc0F1dG9TdGFydDtcclxuXHJcbiAgICBpZiAoZXZlbnQuaXNBdXRvU3RhcnQpIHtcclxuICAgICAgdGhpcy50b3VycyA9IHRoaXMucmVtb3ZlQ29tcGxldGVkVG91cnMoZXZlbnQudG91cnMpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy50b3VycyA9IGV2ZW50LnRvdXJzO1xyXG4gICAgfVxyXG5cclxuICAgIGlmICh0aGlzLnRvdXJzLmxlbmd0aCkge1xyXG4gICAgICB0aGlzLnNob3dEb25lQnV0dG9uID0gZmFsc2U7XHJcblxyXG4gICAgICB0aGlzLmN1cnJlbnRUb3VyU3RlcCA9IHVuZGVmaW5lZDtcclxuICAgICAgdGhpcy5jdXJyZW50U3RlcEluZGV4ID0gLTE7XHJcblxyXG4gICAgICAvLyBQcmltZSB0aGUgaW5kZXggZm9yIHRoZSBmaXJzdCB0b3VyXHJcbiAgICAgIHRoaXMuY3VycmVudFRvdXJJbmRleCA9IDA7XHJcblxyXG4gICAgICBhd2FpdCB0aGlzLnNob3dOZXh0VG91cigpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogU2hvd3MgYSB0b3VyIGFuZCBlbWl0cyBhbiBldmVudCB0aGF0IGl0IHdhcyBzdGFydGVkXHJcbiAgICogQHBhcmFtIHRvdXJcclxuICAgKi9cclxuICBwcml2YXRlIGFzeW5jIHNob3dOZXh0VG91cigpOiBQcm9taXNlPHZvaWQ+IHtcclxuICAgIC8vIFRyYWNrIGEgdG91ciBzdGFydGVkIGV2ZW50IGlmIHRoZSBjb25zdW1lciBvZiB0aGUgbGlicmFyeSBoYXMgdGVsZW1ldHJ5IGNvbmZpZ3VyZWRcclxuICAgIHRoaXMudGVsZW1ldHJ5U2VydmljZS50cmFja0V2ZW50KCdUb3VyU3RhcnRlZCcsIHsgdG91cklkOiB0aGlzLmN1cnJlbnRUb3VyIS5pZCB9KTtcclxuXHJcbiAgICBsZXQgY29udGludWVUb3VyOiBib29sZWFuID0gdHJ1ZTtcclxuXHJcbiAgICBpZiAodGhpcy5pc0F1dG9TdGFydCAmJiB0aGlzLmN1cnJlbnRUb3VySW5kZXggPT09IDAgJiYgdGhpcy5jdXJyZW50VG91cj8uaW50cm9EaWFsb2cpIHtcclxuICAgICAgbGV0IHJlc3VsdCA9IGF3YWl0IHRoaXMuZGlhbG9nU2VydmljZS5vcGVuRGlhbG9nKFxyXG4gICAgICAgIHRoaXMuY3VycmVudFRvdXIuaW50cm9EaWFsb2cuY29udGVudCEsXHJcbiAgICAgICAgdGhpcy5jdXJyZW50VG91ci5pbnRyb0RpYWxvZy5zaXplID8/ICdzbWFsbCcsXHJcbiAgICAgICAgdGhpcy5jdXJyZW50VG91ci5pbnRyb0RpYWxvZy5jb250ZXh0ID8/IHVuZGVmaW5lZCxcclxuICAgICAgICB0aGlzLmN1cnJlbnRUb3VyLmludHJvRGlhbG9nLm9wdGlvbnMgPz8gdW5kZWZpbmVkKS50b1Byb21pc2UoKTtcclxuICAgICAgaWYgKCFyZXN1bHQuc2F2ZSkge1xyXG4gICAgICAgIGNvbnRpbnVlVG91ciA9IGZhbHNlO1xyXG5cclxuICAgICAgICB0aGlzLndyaXRlQ29tcGxldGlvbktleUZvckFsbFRvdXJzKCk7XHJcbiAgICAgICAgLy8gQWR2YW5jZSB0byB0aGUgbGFzdCB0b3VyIGlmIHRoZXJlIGFyZSBtdWx0aXBsZSBmb3IgaXRzIGV4aXQgc3RlcFxyXG4gICAgICAgIHRoaXMuY3VycmVudFRvdXJJbmRleCA9IHRoaXMudG91cnMubGVuZ3RoIC0gMTtcclxuICAgICAgICBhd2FpdCB0aGlzLmhhbmRsZUV4aXRTdGVwKCk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBpZiAoY29udGludWVUb3VyKSB7XHJcbiAgICAgIHRoaXMuc2hvd05leHRTdGVwKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGFzeW5jIGVuZFRvdXIoKTogUHJvbWlzZTx2b2lkPiB7XHJcbiAgICAvLyBIYW5kbGUgYW55IGNsaWNrIGFmdGVycyBmb3IgdGhlIGFjdGl2ZSBzdGVwIHNob3duIGJlZm9yZSBzaHV0dGluZyBpdCBkb3duXHJcbiAgICBhd2FpdCB0aGlzLndhaXRGb3JUaW1lb3V0KHRoaXMuaGFuZGxlQ2xpY2tBZnRlci5iaW5kKHRoaXMpKTtcclxuXHJcbiAgICB0aGlzLmN1cnJlbnRUb3VyU3RlcCA9IHVuZGVmaW5lZDtcclxuICAgIHRoaXMudG91cnMgPSBbXTtcclxuXHJcbiAgICB0aGlzLnJlbW92ZVRvb2x0aXAoKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIERpc3BsYXlzIGEgdG9vbHRpcCBmb3IgdGhlIGN1cnJlbnQgdG91ciBzdGVwXHJcbiAgICovXHJcbiAgcHJpdmF0ZSBhc3luYyBzaG93U3RlcFRvb2x0aXAoKSB7XHJcbiAgICAvLyBUcmFjayBhbiBldmVudCBpZiB0aGUgY29uc3VtZXIgb2YgdGhlIGxpYnJhcnkgaGFzIHRlbGVtZXRyeSBjb25maWd1cmVkXHJcbiAgICB0aGlzLnRlbGVtZXRyeVNlcnZpY2UudHJhY2tFdmVudCgnVG91clN0ZXBDaGFuZ2UnLCB7IHRvdXJJZDogdGhpcy5jdXJyZW50VG91ciEuaWQsIHRvdXJTdGVwSWQ6IHRoaXMuY3VycmVudFRvdXJTdGVwIS5pZCB9KTtcclxuXHJcbiAgICBjb25zdCB0b29sdGlwRWxlbWVudCA9IHRoaXMuZG9jdW1lbnQucXVlcnlTZWxlY3Rvcih0aGlzLmN1cnJlbnRUb3VyU3RlcCEuYW5jaG9yIS5zZWxlY3Rvcik7XHJcblxyXG4gICAgaWYgKHRvb2x0aXBFbGVtZW50KSB7XHJcbiAgICAgIC8vIERlZmF1bHQgd2lkdGggaWYgbm9uZSBwcm92aWRlZFxyXG4gICAgICBsZXQgc3RlcFdpZHRoOiBudW1iZXIgfCB1bmRlZmluZWQgPSA0MzI7XHJcblxyXG4gICAgICAvLyBDaGVjayB0aGUgY3VycmVudCB0b3VyIHN0ZXAgd2lkdGggYW5kIGRlY2lkZSBpZiBpdCBuZWVkcyB0byBjaGFuZ2UgZnJvbSB0aGUgZGVmYXVsdCB2YWx1ZVxyXG4gICAgICAvLyBiYXNlZCBvbiB3aGV0aGVyIHRoZSBzdGVwIGRlZmluZWQgaXQgb3Igbm90XHJcbiAgICAgIGlmICh0aGlzLmN1cnJlbnRUb3VyU3RlcD8ud2lkdGggIT09IHVuZGVmaW5lZCkge1xyXG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5jdXJyZW50VG91clN0ZXAud2lkdGggPT09ICdudW1iZXInKSB7XHJcbiAgICAgICAgICBzdGVwV2lkdGggPSB0aGlzLmN1cnJlbnRUb3VyU3RlcC53aWR0aDtcclxuICAgICAgICB9IGVsc2UgaWYgKHRoaXMuY3VycmVudFRvdXJTdGVwLndpZHRoID09PSAnYXV0bycpIHtcclxuICAgICAgICAgIHN0ZXBXaWR0aCA9IHVuZGVmaW5lZDtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGNvbnN0IG9wdGlvbnM6IFRvb2x0aXBPcHRpb25zID0ge1xyXG4gICAgICAgIGlkOiBgJHt0aGlzLmN1cnJlbnRUb3VyPy5pZH1fJHt0aGlzLmN1cnJlbnRUb3VyU3RlcCEuaWR9YCxcclxuICAgICAgICB0ZXh0OiB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudCh0aGlzLmN1cnJlbnRUb3VyU3RlcCEudGV4dCksXHJcbiAgICAgICAgdGl0bGU6IHRoaXMuY3VycmVudFRvdXJTdGVwIS50aXRsZSA/IHRoaXMudHJhbnNsYXRlU2VydmljZS5pbnN0YW50KHRoaXMuY3VycmVudFRvdXJTdGVwIS50aXRsZSkgOiB1bmRlZmluZWQsXHJcbiAgICAgICAgY3VzdG9tQ29udGVudDogdGhpcy5jdXN0b20sXHJcbiAgICAgICAgZGlzbWlzc2libGU6IHRydWUsXHJcbiAgICAgICAgbWF4V2lkdGg6IHRoaXMuY3VycmVudFRvdXJTdGVwPy5tYXhXaWR0aCxcclxuICAgICAgICB3aWR0aDogc3RlcFdpZHRoLFxyXG4gICAgICAgIGJhY2tncm91bmRDb2xvcjogJ3ZhcigtLWVjLWJhY2tncm91bmQtY29sb3ItdG91ciknLFxyXG4gICAgICAgIHRpdGxlQ29sb3I6ICd2YXIoLS1lYy1jb2xvci10b3VyLXRpdGxlKSdcclxuICAgICAgfTtcclxuXHJcbiAgICAgIHRoaXMudG9vbHRpcCA9IHRoaXMudG9vbHRpcFNlcnZpY2Uuc2hvdyh0b29sdGlwRWxlbWVudCBhcyBIVE1MRWxlbWVudCwgdGhpcy5jdXJyZW50VG91clN0ZXAhLmFuY2hvcj8ucG9zaXRpb24sIG9wdGlvbnMpO1xyXG4gICAgICBhd2FpdCB0aGlzLndhaXRGb3JUaW1lb3V0KHRoaXMuZm9jdXNPbk5leHRPckRvbmVCdXR0b24uYmluZCh0aGlzKSk7XHJcbiAgICAgIHRoaXMuc3Vic2NyaWJlVG9Ub29sdGlwT25IaWRlKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBTdWJzY3JpYmVzIHRvIHRoZSB0b29sdGlwcyBvbkhpZGUgZXZlbnQgZW1pdHRlciBhbmQgcmVhY3RzIGlmIHRoZSB1c2VyIGRpc21pc3NlcyB0aGUgdG9vbHRpcFxyXG4gICAqL1xyXG4gIHByaXZhdGUgYXN5bmMgc3Vic2NyaWJlVG9Ub29sdGlwT25IaWRlKCk6IFByb21pc2U8dm9pZD4ge1xyXG4gICAgbGV0IHRvb2x0aXBTdWJzY3JpcHRpb24gPSB0aGlzLnRvb2x0aXA/Lm9uSGlkZS5waXBlKFxyXG4gICAgICB0YWtlVW50aWwodGhpcy5kZXN0cm95ZWQpXHJcbiAgICApLnN1YnNjcmliZShhc3luYyAoKSA9PiB7XHJcbiAgICAgIHRvb2x0aXBTdWJzY3JpcHRpb24/LnVuc3Vic2NyaWJlKCk7XHJcblxyXG4gICAgICB0aGlzLndyaXRlQ29tcGxldGlvbktleUZvckFsbFRvdXJzKCk7XHJcbiAgICAgIC8vIElmIHRoaXMgaXMgZGlzbWlzc2VkIGR1cmluZyBhbiBhdXRvIHN0YXJ0IHRvdXIgdGhlbiBoYW5kbGUgdGhlIGV4aXQgc3RlcFxyXG4gICAgICAvLyBDaGVjayB0aGF0IHRoZSBkb25lIGJ1dHRvbiBpcyBzaG93biBhcyB3ZWxsLCBpZiB0aGUgZG9uZSBpcyBzaG93biB0aGVuIHdlJ3JlIGluIHRoZSBleGl0IHN0ZXBcclxuICAgICAgLy8gYW5kIGRpc21pc3Npbmcgc2hvdWxkIGp1c3QgZW5kIHRoZSB0b3VyXHJcbiAgICAgIGlmICh0aGlzLmlzQXV0b1N0YXJ0ICYmICF0aGlzLnNob3dEb25lQnV0dG9uKSB7XHJcbiAgICAgICAgLy8gQWR2YW5jZSB0byB0aGUgbGFzdCB0b3VyIGlmIHRoZXJlIGFyZSBtdWx0aXBsZSBmb3IgaXRzIGV4aXQgc3RlcFxyXG4gICAgICAgIHRoaXMuY3VycmVudFRvdXJJbmRleCA9IHRoaXMudG91cnMubGVuZ3RoIC0gMTtcclxuXHJcbiAgICAgICAgYXdhaXQgdGhpcy5oYW5kbGVFeGl0U3RlcCgpO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIGF3YWl0IHRoaXMuZW5kVG91cigpO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIExvb3BzIHRocm91Z2ggdGhlIGN1cnJlbnQgdG91ciBzdGVwcyBzdGFydGluZyBhZnRlciB0aGUgY3VycmVudCBzdGVwIGluZGV4LiBJdCB3aWxsIHRyeSB0byBmaW5kIGEgdmlzaWJsZVxyXG4gICAqIHNlbGVjdG9yIGFuZCBpZiBzbyByZXR1cm4gdGhlIGluZGV4LlxyXG4gICAqIEByZXR1cm5zXHJcbiAgICovXHJcbiAgcHJpdmF0ZSBnZXROZXh0QXZhaWxhYmxlU3RlcEluZGV4KCk6IG51bWJlciB7XHJcbiAgICBsZXQgbmV4dFN0ZXBJbmRleDogbnVtYmVyID0gLTE7XHJcblxyXG4gICAgLy8gTG9vayB0aHJvdWdoIHRoZSBzdGVwcyBzdGFydGluZyB3aXRoIHRoZSBjdXJyZW50IGluZGV4IGFuZCBmaW5kIHRoZSBuZXh0IHRoYXQgaXMgYXZhaWFibGVcclxuICAgIC8vIGZvciB0aGUgdXNlci5cclxuICAgIGZvciAobGV0IGk6IG51bWJlciA9IHRoaXMuY3VycmVudFN0ZXBJbmRleCArIDE7IGkgPCB0aGlzLmN1cnJlbnRUb3VyIS5zdGVwcy5sZW5ndGg7IGkrKykge1xyXG4gICAgICBpZiAodGhpcy5jdXJyZW50VG91cj8uc3RlcHNbaV0uYW5jaG9yICYmIHRoaXMuc3RlcEVsZW1lbnRGb3VuZCh0aGlzLmN1cnJlbnRUb3VyIS5zdGVwc1tpXS5hbmNob3IhKSkge1xyXG4gICAgICAgIHJldHVybiBpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIG5leHRTdGVwSW5kZXg7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBUcnkgdG8gZmluZCB0aGUgdG91ciBzdGVwIGVsZW1lbnQgdG8ga25vdyBpZiBpdCBpcyB2aXNpYmxlIGZvciB0aGUgdXNlci4gQ2hlY2sgZm9yIHRoZSBjbGlja0JlZm9yZSBmaXJzdCBpZiBkZWZpbmVkXHJcbiAgICogQHBhcmFtIGFuY2hvclxyXG4gICAqIEByZXR1cm5zXHJcbiAgICovXHJcbiAgcHJpdmF0ZSBzdGVwRWxlbWVudEZvdW5kKGFuY2hvcjogVG91ckFuY2hvcik6IGJvb2xlYW4ge1xyXG4gICAgaWYgKGFuY2hvci5jbGlja0JlZm9yZSkge1xyXG4gICAgICByZXR1cm4gdGhpcy5kb2N1bWVudC5xdWVyeVNlbGVjdG9yKGFuY2hvci5jbGlja0JlZm9yZSkgIT09IG51bGw7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICByZXR1cm4gdGhpcy5kb2N1bWVudC5xdWVyeVNlbGVjdG9yKGFuY2hvci5zZWxlY3RvcikgIT09IG51bGw7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBTb21lIHRvdXIgc3RlcHMgbWF5IGhhdmUgYSBjbGljayBhZnRlciBkZWZpbmVkLiBJZiBzbyBjYWxsIHRoZSBjbGljayBtZXRob2Qgb24gdGhlIGh0bWwgZWxlbWVudFxyXG4gICAqL1xyXG4gIHByaXZhdGUgaGFuZGxlQ2xpY2tBZnRlcigpOiB2b2lkIHtcclxuICAgIGxldCBzZWxlY3RvciA9IHRoaXMuY3VycmVudFRvdXJTdGVwPy5hbmNob3I/LmNsaWNrQWZ0ZXI7XHJcbiAgICBpZiAoc2VsZWN0b3IpIHtcclxuICAgICAgdGhpcy5jbGlja0VsZW1lbnRJZkZvdW5kKHNlbGVjdG9yKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFNvbWUgdG91ciBzdGVwcyBtYXkgaGF2ZSBhIGNsaWNrIGJlZm9yZSBkZWZpbmVkLiBJZiBzbyBjYWxsIHRoZSBjbGljayBtZXRob2Qgb24gdGhlIGh0bWwgZWxlbWVudFxyXG4gICAqL1xyXG4gIHByaXZhdGUgaGFuZGxlQ2xpY2tCZWZvcmUoKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5jdXJyZW50VG91clN0ZXA/LmFuY2hvcj8uY2xpY2tCZWZvcmUpIHtcclxuICAgICAgdGhpcy5jbGlja0VsZW1lbnRJZkZvdW5kKHRoaXMuY3VycmVudFRvdXJTdGVwLmFuY2hvcj8uY2xpY2tCZWZvcmUpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgKiBDaGVja3MgZm9yIGFuIGV4aXQgc3RlcCBvbiB0aGUgY3VycmVudCB0b3VyIGFuZCBpZiBmb3VuZCBkaXNwbGF5cyB0aGUgc3RlcFxyXG4gICovXHJcbiAgcHJpdmF0ZSBhc3luYyBoYW5kbGVFeGl0U3RlcCgpOiBQcm9taXNlPHZvaWQ+IHtcclxuICAgIGlmICh0aGlzLmN1cnJlbnRUb3VyPy5leGl0U3RlcCkge1xyXG4gICAgICB0aGlzLnJlbW92ZVRvb2x0aXAoKTtcclxuXHJcbiAgICAgIHRoaXMuc2hvd0RvbmVCdXR0b24gPSB0cnVlO1xyXG4gICAgICB0aGlzLmN1cnJlbnRUb3VyU3RlcCA9IHRoaXMuY3VycmVudFRvdXI/LmV4aXRTdGVwO1xyXG5cclxuICAgICAgYXdhaXQgdGhpcy53YWl0Rm9yVGltZW91dCh0aGlzLmhhbmRsZUNsaWNrQmVmb3JlLmJpbmQodGhpcykpO1xyXG4gICAgICBhd2FpdCB0aGlzLndhaXRGb3JUaW1lb3V0KHRoaXMuc2hvd1N0ZXBUb29sdGlwLmJpbmQodGhpcykpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogVHJ5IHRvIGZpbmQgdGhlIGVsZW1lbnQgd2l0aCB0aGUgc2VsZWN0b3IgcHJvdmlkZWQgYW5kIGlmIHNvIGNsaWNrIGl0LiBUaGlzIGlzIGhvdyB0b3VyIHN0ZXBzIHdpbGwgb3Blbi9jbG9zZSBtZW51cyB0b1xyXG4gICAqIGdpdmUgYSB0b3VyIHRvIHRoZSB1c2VyXHJcbiAgICogQHBhcmFtIHNlbGVjdG9yXHJcbiAgICovXHJcbiAgcHJpdmF0ZSBjbGlja0VsZW1lbnRJZkZvdW5kKHNlbGVjdG9yOiBzdHJpbmcgfCB1bmRlZmluZWQpOiB2b2lkIHtcclxuICAgIGlmIChzZWxlY3RvciAhPT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgIGNvbnN0IGVsZW1lbnQgPSB0aGlzLmRvY3VtZW50LnF1ZXJ5U2VsZWN0b3Ioc2VsZWN0b3IpO1xyXG4gICAgICBpZiAoZWxlbWVudCkge1xyXG4gICAgICAgIChlbGVtZW50IGFzIEhUTUxFbGVtZW50KS5jbGljaygpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBXaGVuIGF1dG8gc3RhcnRpbmcgdG91cnMgd2Ugd2lsbCB3YW50IHRvIHJlbW92ZSBhbnkgdGhhdCBoYXZlIHRoZSBsb2NhbCBzdG9yYWdlIGtleSB3cml0dGVuIGFzIGNvbXBsZXRlZCBzb1xyXG4gICAqIHRoZXkgYXJlIG5vdCBwcmVzZW50ZWQgdG8gdGhlIHVzZXIgYWdhaW4uXHJcbiAgICogQHBhcmFtIHRvdXJzXHJcbiAgICogQHJldHVybnNcclxuICAgKi9cclxuICBwcml2YXRlIHJlbW92ZUNvbXBsZXRlZFRvdXJzKHRvdXJzOiBUb3VyW10pOiBUb3VyW10ge1xyXG4gICAgcmV0dXJuIHRvdXJzLmZpbHRlcih0b3VyID0+IHtcclxuICAgICAgbGV0IGNhY2hlVmFsdWUgPSB0aGlzLmNhY2hlU2VydmljZS5nZXRJdGVtPFRvdXJDYWNoZUVudHJ5Pih0aGlzLm1ha2VDYWNoZUtleSh0b3VyKSk7XHJcbiAgICAgIGlmIChjYWNoZVZhbHVlKSB7XHJcbiAgICAgICAgcmV0dXJuICFjYWNoZVZhbHVlLmNvbXBsZXRlZDtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICByZXR1cm4gdHJ1ZTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBXcml0ZXMgYSBrZXkgdG8gbG9jYWwgc3RvcmFnZSBzbyB0aGUgdG91ciB3aWxsIG5vdCBiZSBzaG93biBhZ2FpbiBhdXRvbWF0aWNhbGx5XHJcbiAgICovXHJcbiAgcHJpdmF0ZSB3cml0ZUNvbXBsZXRpb25LZXkodG91cjogVG91ciB8IHVuZGVmaW5lZCk6IHZvaWQge1xyXG4gICAgaWYgKHRvdXIpIHtcclxuICAgICAgdGhpcy5jYWNoZVNlcnZpY2Uuc2V0SXRlbSh0aGlzLm1ha2VDYWNoZUtleSh0b3VyKSwgPFRvdXJDYWNoZUVudHJ5PnsgY29tcGxldGVkOiB0cnVlIH0pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogV2hlbiBkaXNtaXNzaW5nIGEgdG91ciBvciBvbmUgYmVpbmcgZGlzbWlzc2VkIHZpYSBhIG5hdmlnYXRpb24gZXZlbnQsIGV0YyB3ZSB3aWxsIHdhbnQgdG8gbWFya1xyXG4gICAqIGV2ZXJ5IHRvdXIgaW4gdGhlIGFycmF5IGFzIGNvbXBsZXRlZCBzbyBpdCBkb2Vzbid0IHJlc3VyZmFjZSB1bmxlc3MgdGhlIHVzZXIgcmVxdWVzdHMgdGhlIHRvdXIuXHJcbiAgICogVGhpcyBmdW5jdGlvbiB3aWxsIGxvb3Agb3ZlciBhbGwgYW5kIHdyaXRlIHRoZSBsb2NhbCBzdG9yYWdlIGtleVxyXG4gICAqL1xyXG4gIHByaXZhdGUgd3JpdGVDb21wbGV0aW9uS2V5Rm9yQWxsVG91cnMoKTogdm9pZCB7XHJcbiAgICB0aGlzLnRvdXJzLmZvckVhY2godG91ciA9PiB7XHJcbiAgICAgIHRoaXMud3JpdGVDb21wbGV0aW9uS2V5KHRvdXIpO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBDYWNoZSBrZXkgdXNlZCB0byBzZXQvZ2V0IHRoZSBjb21wbGV0aW9uIHN0YXR1cyBvZiBhIHRvdXJcclxuICAgKiBAcGFyYW0gdG91clxyXG4gICAqIEByZXR1cm5zXHJcbiAgICovXHJcbiAgcHJpdmF0ZSBtYWtlQ2FjaGVLZXkodG91cjogVG91cik6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gdGhpcy50b3VyU2VydmljZS5nZXRDYWNoZUtleSh0b3VyKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFJlbW92ZXMgYSB0b29sdGlwIGZyb20gdGhlIHZpZXcsIHVzZWQgd2hlbiBzd2l0Y2hpbmcgdG91ciBzdGVwcyBhbmQgY2xvc2luZyBhIHRvdXJcclxuICAgKi9cclxuICBwcml2YXRlIHJlbW92ZVRvb2x0aXAoKTogdm9pZCB7XHJcbiAgICB0aGlzLnRvb2x0aXA/Lm92ZXJsYXlSZWY/LmRpc3Bvc2UoKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFJldHVybnMgdGhlIHRvdXIgYmFzZWQgb24gdGhlIGN1cnJlbnQgaW5kZXhcclxuICAgKi9cclxuICBwcml2YXRlIGdldCBjdXJyZW50VG91cigpOiBUb3VyIHwgdW5kZWZpbmVkIHtcclxuICAgIGlmICh0aGlzLmN1cnJlbnRUb3VySW5kZXggPiAtMSAmJiB0aGlzLmN1cnJlbnRUb3VySW5kZXggPCB0aGlzLnRvdXJzLmxlbmd0aCkge1xyXG4gICAgICByZXR1cm4gdGhpcy50b3Vyc1t0aGlzLmN1cnJlbnRUb3VySW5kZXhdO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFRoZSBjbGljayBiZWZvcmUvYWZ0ZXIgYW5kIHNob3cgdG9vbHRpcCBmdW5jdGlvbnMgbmVlZCB0byBiZSB3cmFwcGVkIGluIHNldFRpbWVvdXQgZm9yIHRoZSBVSVxyXG4gICAqIHRvIG9wZXJhdGUgY29ycmVjdGx5IGJ1dCBzZXRUaW1lb3V0IGlzIGFuIGFjdGlvbiB3ZSBjYW5ub3QgYXdhaXQgc28gd2UncmUgd3JhcHBpbmcgaXQgaW4gYSBwcm9taXNlIHRvIHJldHVyblxyXG4gICAqIHNvIHRoZSBmdW5jdGlvbiBjYWxscyBjYW4gYXdhaXQgdGhlIGFjdGlvblxyXG4gICAqIEBwYXJhbSBmblxyXG4gICAqIEByZXR1cm5zXHJcbiAgICovXHJcbiAgcHJpdmF0ZSB3YWl0Rm9yVGltZW91dChmbjogKCkgPT4gdm9pZCkge1xyXG4gICAgcmV0dXJuIG5ldyBQcm9taXNlPHZvaWQ+KHJlc29sdmUgPT4ge1xyXG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICBmbigpO1xyXG4gICAgICAgIHJlc29sdmUoKTtcclxuICAgICAgfSk7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEZpbmQgdGhlIFwibmV4dFwiIG9yIFwiZG9uZVwiIGJ1dHRvbiBhbmQgZm9jdXMgb24gaXQuXHJcbiAgICpcclxuICAgKiBUaGV5IGFyZSBtdXR1YWxseSBleGNsdXNpdmUsIHNvIGlmIHdlIGNhbm5vdCBmaW5kIHRoZSBuZXh0IGJ1dHRvblxyXG4gICAqIHdlIGxvb2sgZm9yIHRoZSBkb25lIGJ1dHRvbi5cclxuICAgKi9cclxuICBwcml2YXRlIGZvY3VzT25OZXh0T3JEb25lQnV0dG9uKCk6IHZvaWQge1xyXG4gICAgaWYgKCF0aGlzLmZvY3VzT25FbGVtZW50KGAjJHt0aGlzLmN1cnJlbnRUb3VyU3RlcCEuaWR9X25leHRCdXR0b25gKSkge1xyXG4gICAgICB0aGlzLmZvY3VzT25FbGVtZW50KGAjJHt0aGlzLmN1cnJlbnRUb3VyU3RlcCEuaWR9X2RvbmVCdXR0b25gKVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogRmluZCBhbiBlbGVtZW50IHdpdGggZ2l2ZW4gc2VsZWN0b3IgYW5kIGZvY3VzIG9uIGl0LlxyXG4gICAqIFJldHVybiBmYWxzZSBpZiBlbGVtZW50IG5vdCBmb3VuZC5cclxuICAgKi9cclxuICBwcml2YXRlIGZvY3VzT25FbGVtZW50KHNlbGVjdG9yOiBzdHJpbmcpOiBib29sZWFuIHtcclxuICAgIGNvbnN0IGVsZW1lbnQgPSB0aGlzLmRvY3VtZW50LnF1ZXJ5U2VsZWN0b3Ioc2VsZWN0b3IpO1xyXG4gICAgaWYgKGVsZW1lbnQpIHtcclxuICAgICAgKGVsZW1lbnQgYXMgSFRNTEVsZW1lbnQpLmZvY3VzKCk7XHJcbiAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIGZhbHNlO1xyXG4gIH1cclxufVxyXG4iLCI8bmctdGVtcGxhdGUgI3RvdXJUb29sdGlwPlxyXG4gICAgPGRpdiAqbmdJZj1cImN1cnJlbnRUb3VyU3RlcD8ubWVkaWFcIlxyXG4gICAgICAgICBjbGFzcz1cIm1iLTNcIj5cclxuICAgICAgICA8aW1nIGlkPVwie3tjdXJyZW50VG91clN0ZXA/LmlkICsgJ19tZWRpYSd9fVwiXHJcbiAgICAgICAgICAgICBzdHlsZT1cIm1heC13aWR0aDogMTAwJTtcIlxyXG4gICAgICAgICAgICAgc3JjPVwie3tjdXJyZW50VG91clN0ZXA/Lm1lZGlhfX1cIj5cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdiBjbGFzcz1cImZvbnQtY29sb3ItcHJpbWFyeS1saWdodCBweC0zIG1iLTNcIlxyXG4gICAgICAgICBbaW5uZXJIdG1sXT1cImN1cnJlbnRUb3VyU3RlcD8udGV4dCB8IHRyYW5zbGF0ZVwiPlxyXG4gICAgPC9kaXY+XHJcbiAgICA8YSAqbmdJZj1cImN1cnJlbnRUb3VyU3RlcD8uaGVscExpbmtcIiBpZD1cInt7Y3VycmVudFRvdXJTdGVwPy5pZCArICdfaGVscExpbmsnfX1cIiBjbGFzcz1cImQtYmxvY2sgbWItMyBweC0zXCIgdGFyZ2V0PVwiX2JsYW5rXCIgaHJlZj1cInt7Y3VycmVudFRvdXJTdGVwPy5oZWxwTGlua319XCIgdHJhbnNsYXRlPkxlYXJuTW9yZV9TQzwvYT5cclxuICAgIDxmb290ZXIgY2xhc3M9XCJweC0zIG10LTMgZC1mbGV4XCI+XHJcbiAgICAgICAgPGJ1dHRvbiBpZD1cInt7Y3VycmVudFRvdXJTdGVwPy5pZCArICdfbmV4dEJ1dHRvbid9fVwiICpuZ0lmPVwiIXNob3dEb25lQnV0dG9uXCIgY2xhc3M9XCJtbC1hdXRvIHRvdXJBY3Rpb25cIiBlY0xpbmtCdXR0b24gKGNsaWNrKT1cInNob3dOZXh0U3RlcCgpXCIgdHJhbnNsYXRlPk5leHRfVEM8L2J1dHRvbj5cclxuICAgICAgICA8YnV0dG9uIGlkPVwie3tjdXJyZW50VG91clN0ZXA/LmlkICsgJ19kb25lQnV0dG9uJ319XCIgKm5nSWY9XCJzaG93RG9uZUJ1dHRvblwiIGNsYXNzPVwibWwtYXV0byB0b3VyQWN0aW9uXCIgZWNMaW5rQnV0dG9uIChjbGljayk9XCJkb25lKClcIiB0cmFuc2xhdGU+RG9uZV9UQzwvYnV0dG9uPlxyXG4gICAgPC9mb290ZXI+XHJcbjwvbmctdGVtcGxhdGU+Il19
398
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG91ci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb21wb25lbnRzL3NyYy9saWIvZGlzcGxheS90b3VyL3RvdXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29tcG9uZW50cy9zcmMvbGliL2Rpc3BsYXkvdG91ci90b3VyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMzQyxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBdUIsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRWxGLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDL0IsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7Ozs7Ozs7O0FBZTNDLE1BQU0sT0FBTyxhQUFhO0lBNEJ4QixZQUNVLFdBQXdCLEVBQ3hCLGNBQThCLEVBQzlCLGdCQUFrQyxFQUNsQyxZQUEwQixFQUMxQixhQUE0QixFQUM1QixnQkFBa0MsRUFDaEIsUUFBa0I7UUFOcEMsZ0JBQVcsR0FBWCxXQUFXLENBQWE7UUFDeEIsbUJBQWMsR0FBZCxjQUFjLENBQWdCO1FBQzlCLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7UUFDbEMsaUJBQVksR0FBWixZQUFZLENBQWM7UUFDMUIsa0JBQWEsR0FBYixhQUFhLENBQWU7UUFDNUIscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtRQUNoQixhQUFRLEdBQVIsUUFBUSxDQUFVO1FBN0I5Qzs7V0FFRztRQUNJLG1CQUFjLEdBQVksS0FBSyxDQUFDO1FBS3ZDLHFFQUFxRTtRQUM3RCxVQUFLLEdBQVcsRUFBRSxDQUFDO1FBRTNCLDRIQUE0SDtRQUNwSCxxQkFBZ0IsR0FBVyxDQUFDLENBQUMsQ0FBQztRQUM5QixxQkFBZ0IsR0FB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QyxhQUFhIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRE9DVU1FTlQgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBDb21wb25lbnQsIEluamVjdCwgT25Jbml0LCBUZW1wbGF0ZVJlZiwgVmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFRyYW5zbGF0ZVNlcnZpY2UgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcclxuaW1wb3J0IHsgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcblxyXG5pbXBvcnQgeyBDYWNoZVNlcnZpY2UgfSBmcm9tICcuLi8uLi9jb3JlL2NhY2hlLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBUZWxlbWV0cnlTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vY29yZS90ZWxlbWV0cnkuc2VydmljZSc7XHJcbmltcG9ydCB7IERpYWxvZ1NlcnZpY2UgfSBmcm9tICcuLi9kaWFsb2cvZGlhbG9nLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBUb29sdGlwQ29tcG9uZW50LCBUb29sdGlwT3B0aW9ucyB9IGZyb20gJy4vLi4vdG9vbHRpcC90b29sdGlwLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFRvb2x0aXBTZXJ2aWNlIH0gZnJvbSAnLi8uLi90b29sdGlwL3Rvb2x0aXAuc2VydmljZSc7XHJcbmltcG9ydCB7IFRvdXIsIFRvdXJBbmNob3IsIFRvdXJDYWNoZUVudHJ5LCBUb3VyRXZlbnQsIFRvdXJTdGVwIH0gZnJvbSAnLi90b3VyLXR5cGVzJztcclxuaW1wb3J0IHsgVG91clNlcnZpY2UgfSBmcm9tICcuL3RvdXIuc2VydmljZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2VjLXRvdXInLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi90b3VyLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi90b3VyLmNvbXBvbmVudC5zY3NzJ11cclxufSlcclxuZXhwb3J0IGNsYXNzIFRvdXJDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG4gIC8qKiBDdXJyZW50IHRvdXIgc3RlcCBiZWluZyBzaG93biB0byB0aGUgdXNlci4gVGhlIGN1c3RvbSBjb250ZW50IGluIHRoZSB0ZW1wbGF0ZSBpcyBib3VuZCB0byBwcm9wZXJ0aWVzIG9uIHRoaXMgYW5kIHRoZXJlZm9yIG5lZWRzIHRvIGJlXHJcbiAgKiAgaXRzIG93biBwcm9wZXJ0eS4gVGhlIGV4aXRTdGVwIGlzIGEgdG91ciBzdGVwIGFuZCB0aGlzIHdpbGwgaG9sZCB0aGF0IHN0ZXAgYXQgdGhlIGVuZCBvZiB0aGUgdG91ci5cclxuICAqL1xyXG4gIHB1YmxpYyBjdXJyZW50VG91clN0ZXA/OiBUb3VyU3RlcDtcclxuXHJcbiAgLyoqIFVzZWQgdG8gdGVsbCB0aGUgVUkgdGhhdCB0aGUgc3RlcCBiZWluZyBzaG93biBpcyBhbiBleGl0IHN0ZXAuIFRoaXMgd2lsbCBjaGFuZ2UgdGhlXHJcbiAgICogIGxpbmsgdGV4dCBhbmQgdGhlIGFjdGlvbiB3aGVuIGNsaWNrZWRcclxuICAgKi9cclxuICBwdWJsaWMgc2hvd0RvbmVCdXR0b246IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgLyoqIFJlZmVyZW5jZSB0byB0aGUgdG9vbHRpcCB1c2VkIGZvciB0aGUgdG91ciBzdGVwcyAqL1xyXG4gIHB1YmxpYyB0b29sdGlwPzogVG9vbHRpcENvbXBvbmVudDtcclxuXHJcbiAgLyoqIEFycmF5IG9mIHRvdXJzIHByb3ZpZGVkIHdoZW4gdGhlIHN0YXJ0IHRvdXIgZXZlbnQgd2FzIGRldGVjdGVkICovXHJcbiAgcHJpdmF0ZSB0b3VyczogVG91cltdID0gW107XHJcblxyXG4gIC8vIENvdXBsZSBpbmRleGVzIGZvciB0aGUgY3VycmVudCB0b3VyL3N0ZXAgc3RvcmVkIGZvciBlYXNpZXIgcmVmZXJlbmNlIHdoZW4ga25vd2luZyBpZiB3ZSBhcmUgYXQgdGhlIGVuZCBvZiB0aGUgc3RlcHMvdG91cnNcclxuICBwcml2YXRlIGN1cnJlbnRTdGVwSW5kZXg6IG51bWJlciA9IC0xO1xyXG4gIHByaXZhdGUgY3VycmVudFRvdXJJbmRleDogbnVtYmVyID0gLTE7XHJcblxyXG4gIC8qKiBVc2VkIHRvIGtub3cgaWYgdGhlIHJlc3RvcmUgc3RlcCBzaG91bGQgYmUgdHJpZ2dlcmVkIHdoZW4gdGhlIHRvdXIgaXMgZGlzbWlzc2VkICovXHJcbiAgcHJpdmF0ZSBpc0F1dG9TdGFydDogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICBwcml2YXRlIGRlc3Ryb3llZCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XHJcblxyXG4gIEBWaWV3Q2hpbGQoJ3RvdXJUb29sdGlwJykgcHVibGljIGN1c3RvbSE6IFRlbXBsYXRlUmVmPGFueT47XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSB0b3VyU2VydmljZTogVG91clNlcnZpY2UsXHJcbiAgICBwcml2YXRlIHRvb2x0aXBTZXJ2aWNlOiBUb29sdGlwU2VydmljZSxcclxuICAgIHByaXZhdGUgdGVsZW1ldHJ5U2VydmljZTogVGVsZW1ldHJ5U2VydmljZSxcclxuICAgIHByaXZhdGUgY2FjaGVTZXJ2aWNlOiBDYWNoZVNlcnZpY2UsXHJcbiAgICBwcml2YXRlIGRpYWxvZ1NlcnZpY2U6IERpYWxvZ1NlcnZpY2UsXHJcbiAgICBwcml2YXRlIHRyYW5zbGF0ZVNlcnZpY2U6IFRyYW5zbGF0ZVNlcnZpY2UsXHJcbiAgICBASW5qZWN0KERPQ1VNRU5UKSBwcml2YXRlIGRvY3VtZW50OiBEb2N1bWVudCxcclxuICApIHsgfVxyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMudG91clNlcnZpY2UuZXZlbnRzLnBpcGUoXHJcbiAgICAgIHRha2VVbnRpbCh0aGlzLmRlc3Ryb3llZClcclxuICAgICkuc3Vic2NyaWJlKGFzeW5jIGV2ZW50ID0+IHtcclxuICAgICAgaWYgKGV2ZW50LnRvdXJBY3Rpb24gPT09ICdzdGFydCcpIHtcclxuICAgICAgICBhd2FpdCB0aGlzLnNldHVwVG91ckNvbXBvbmVudChldmVudCk7XHJcbiAgICAgIH0gZWxzZSBpZiAoZXZlbnQudG91ckFjdGlvbiA9PT0gJ2VuZCcpIHtcclxuICAgICAgICBpZiAodGhpcy5jdXJyZW50VG91cikge1xyXG4gICAgICAgICAgdGhpcy53cml0ZUNvbXBsZXRpb25LZXlGb3JBbGxUb3VycygpO1xyXG4gICAgICAgICAgYXdhaXQgdGhpcy5lbmRUb3VyKCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9IGVsc2UgaWYgKGV2ZW50LnRvdXJBY3Rpb24gPT09ICdhcHBlbmQnKSB7XHJcbiAgICAgICAgbGV0IHZpc2libGVUb3VyczogVG91cltdID0gZXZlbnQudG91cnM7XHJcbiAgICAgICAgXHJcbiAgICAgICAgLy8gSWYgdGhpcyB3YXMgdHJpZ2dlcmVkIHZpYSBhdXRvIHN0YXJ0IHRoZW4gd2UgbmVlZCB0byByZW1vdmUgYW55IHRvdXJzIHRoYXQgaGF2ZSBiZWVuIGNvbXBsZXRlZFxyXG4gICAgICAgIGlmIChldmVudC5pc0F1dG9TdGFydCkge1xyXG4gICAgICAgICAgdmlzaWJsZVRvdXJzID0gdGhpcy5yZW1vdmVDb21wbGV0ZWRUb3Vycyh2aXNpYmxlVG91cnMpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLy8gSWYgdGhlcmUgaXMgYWxyZWFkeSBhIGN1cnJlbnQgdG91ciwgdGhlbiB3ZSBuZWVkIHRvIGFwcGVuZCB0aGUgbmV3IHRvdXJzIHRvIHRoZSBjdXJyZW50IHRvdXJcclxuICAgICAgICBpZiAodGhpcy5jdXJyZW50VG91cikge1xyXG4gICAgICAgICAgdGhpcy50b3VycyA9IHRoaXMudG91cnMuY29uY2F0KHZpc2libGVUb3Vycyk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIC8vIFRoZXJlIGlzIG5vdCBhIGN1cnJlbnQgdG91ciwgc28gdHJlYXQgdGhpcyBhcyBhIHN0YXJ0IGV2ZW50XHJcbiAgICAgICAgICBhd2FpdCB0aGlzLnNldHVwVG91ckNvbXBvbmVudChldmVudCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgdGhpcy5kZXN0cm95ZWQubmV4dCgpO1xyXG4gICAgdGhpcy5kZXN0cm95ZWQudW5zdWJzY3JpYmUoKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIENhbGxlZCB3aGVuIGEgcmVzdG9yZSBzdGVwIGhhcyBiZWVuIGNvbXBsZXRlZFxyXG4gICAqL1xyXG4gIHB1YmxpYyBhc3luYyBkb25lKCk6IFByb21pc2U8dm9pZD4ge1xyXG4gICAgdGhpcy53cml0ZUNvbXBsZXRpb25LZXkodGhpcy5jdXJyZW50VG91cik7XHJcbiAgICBhd2FpdCB0aGlzLmVuZFRvdXIoKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIENhbGxlZCB3aGVuIGEgdG91ciBiZWdpbnMgYW5kIHdoZW4gdGhlIHVzZXIgY2xpY2tzIG5leHQgb24gdGhlIGN1cnJlbnQgdG91ciBzdGVwLiBJdCB3aWxsIGhhbmRsZSBhbnkgYWZ0ZXIgY2xpY2sgYWN0aW9ucyBhbmQgdGhlblxyXG4gICAqIGZpbmQgdGhlIG5leHQgc3RlcCBhbmQgcHJlc2VudCBpdCB0byB0aGUgdXNlciBhbmQgdHJhbnNpdGlvbiB0byBhIHJlc3RvcmUgc3RlcCBvciBuZXcgdG91ciBpZiBuZWVkZWQuXHJcbiAgICovXHJcbiAgcHVibGljIGFzeW5jIHNob3dOZXh0U3RlcCgpOiBQcm9taXNlPHZvaWQ+IHtcclxuICAgIC8vIEJlZm9yZSBtb3ZpbmcgdG8gdGhlIG5leHQgc3RlcCwgbWFrZSBzdXJlIHRoZSBjdXJyZW50IHN0ZXAgZG9lcyBub3QgaGF2ZSBhIGNsaWNrIGFmdGVyIGRlZmluZWQuIFRoaXMgY291bGQgYmUgaGlkaW5nIGEgbWVudVxyXG4gICAgLy8gdGhhdCB3YXMgb3BlbmVkIGZvciB0aGUgc29vbiB0byBiZSBwcmV2aW91cyBzdGVwLlxyXG4gICAgYXdhaXQgdGhpcy53YWl0Rm9yVGltZW91dCh0aGlzLmhhbmRsZUNsaWNrQWZ0ZXIuYmluZCh0aGlzKSk7XHJcblxyXG4gICAgLy8gUmVtb3ZlIGFueSBwcmV2aW91cyB0b29sdGlwc1xyXG4gICAgdGhpcy5yZW1vdmVUb29sdGlwKCk7XHJcblxyXG4gICAgLy8gR2V0IG91ciBuZXh0IHN0ZXAgaW5kZXggdG8gZGlzcGxheSB0byB0aGUgdXNlclxyXG4gICAgdGhpcy5jdXJyZW50U3RlcEluZGV4ID0gdGhpcy5nZXROZXh0QXZhaWxhYmxlU3RlcEluZGV4KCk7XHJcblxyXG4gICAgaWYgKHRoaXMuY3VycmVudFN0ZXBJbmRleCA9PT0gLTEpIHtcclxuICAgICAgLy8gTm8gbW9yZSBzdGVwcyBmb3VuZCwgd2UgZWl0aGVyIG5lZWQgdG8gY2hlY2sgZm9yIHRoZSBleGl0IHN0ZXAgaWYgdGhpcyBpcyB0aGUgbGFzdCB0b3VyXHJcbiAgICAgIC8vIGluIHRoZSB0b3VycyBhcnJheSBvciBhZHZhbmNlIHRvIHRoZSBuZXh0IHRvdXJcclxuICAgICAgaWYgKHRoaXMuY3VycmVudFRvdXJJbmRleCA9PT0gdGhpcy50b3Vycy5sZW5ndGggLSAxKSB7XHJcbiAgICAgICAgYXdhaXQgdGhpcy5oYW5kbGVFeGl0U3RlcCgpO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIC8vIFdyaXRlIHRoZSBjb21wbGV0aW9uIGtleSBmb3IgdGhlIGN1cnJlbnQgdG91ciBiZWZvcmUgd2UgbW92ZSB0byB0aGUgbmV4dFxyXG4gICAgICAgIHRoaXMud3JpdGVDb21wbGV0aW9uS2V5KHRoaXMuY3VycmVudFRvdXIpO1xyXG5cclxuICAgICAgICB0aGlzLmN1cnJlbnRUb3VySW5kZXgrKztcclxuICAgICAgICBhd2FpdCB0aGlzLnNob3dOZXh0VG91cigpO1xyXG4gICAgICB9XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLmN1cnJlbnRUb3VyU3RlcCA9IHRoaXMuY3VycmVudFRvdXI/LnN0ZXBzW3RoaXMuY3VycmVudFN0ZXBJbmRleF07XHJcblxyXG4gICAgICAvLyBOb3cgdGhhdCB3ZSBoYXZlIG91ciBjdXJyZW50IHN0ZXAgaW5kZXgsIHRha2UgY2FyZSBvZiBhbnkgY2xpY2sgYmVmb3JlIGVsZW1lbnRzIGJlZm9yZSBzaG93aW5nIHRoZVxyXG4gICAgICAvLyB0b29sdGlwLiBUaGlzIGNvdWxkIGJlIG9wZW5pbmcgYSBtZW51IHRvIGdldCB0aGUgdG9vbHRpcCBlbGVtZW50IHZpc2libGUuXHJcbiAgICAgIGF3YWl0IHRoaXMud2FpdEZvclRpbWVvdXQodGhpcy5oYW5kbGVDbGlja0JlZm9yZS5iaW5kKHRoaXMpKTtcclxuXHJcbiAgICAgIC8vIENsaWNrIGJlZm9yZXMgYXJlIGRvbmUsIG5vdyBsZXQncyBzaG93IHRoZSB0b29sdGlwIGRlZmluZWQgaW4gdGhlIHRvdXIgc3RlcFxyXG4gICAgICBhd2FpdCB0aGlzLndhaXRGb3JUaW1lb3V0KHRoaXMuc2hvd1N0ZXBUb29sdGlwLmJpbmQodGhpcykpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBhc3luYyBzZXR1cFRvdXJDb21wb25lbnQoZXZlbnQ6IFRvdXJFdmVudCk6IFByb21pc2U8dm9pZD4ge1xyXG4gICAgLy8gRW5kIGFueSB0b3VycyB0aGF0IG1heSBoYXZlIGJlZW4gaW4gcHJvZ3Jlc3MgaWYgdGhlIHVzZXIga2lja3Mgb2ZmIGEgbmV3IG9uZVxyXG4gICAgaWYgKHRoaXMuY3VycmVudFRvdXIpIHtcclxuICAgICAgdGhpcy53cml0ZUNvbXBsZXRpb25LZXlGb3JBbGxUb3VycygpO1xyXG4gICAgICBhd2FpdCB0aGlzLmVuZFRvdXIoKTtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLmlzQXV0b1N0YXJ0ID0gZXZlbnQuaXNBdXRvU3RhcnQ7XHJcblxyXG4gICAgaWYgKGV2ZW50LmlzQXV0b1N0YXJ0KSB7XHJcbiAgICAgIHRoaXMudG91cnMgPSB0aGlzLnJlbW92ZUNvbXBsZXRlZFRvdXJzKGV2ZW50LnRvdXJzKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMudG91cnMgPSBldmVudC50b3VycztcclxuICAgIH1cclxuXHJcbiAgICBpZiAodGhpcy50b3Vycy5sZW5ndGgpIHtcclxuICAgICAgdGhpcy5zaG93RG9uZUJ1dHRvbiA9IGZhbHNlO1xyXG5cclxuICAgICAgdGhpcy5jdXJyZW50VG91clN0ZXAgPSB1bmRlZmluZWQ7XHJcbiAgICAgIHRoaXMuY3VycmVudFN0ZXBJbmRleCA9IC0xO1xyXG5cclxuICAgICAgLy8gUHJpbWUgdGhlIGluZGV4IGZvciB0aGUgZmlyc3QgdG91clxyXG4gICAgICB0aGlzLmN1cnJlbnRUb3VySW5kZXggPSAwO1xyXG5cclxuICAgICAgYXdhaXQgdGhpcy5zaG93TmV4dFRvdXIoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFNob3dzIGEgdG91ciBhbmQgZW1pdHMgYW4gZXZlbnQgdGhhdCBpdCB3YXMgc3RhcnRlZFxyXG4gICAqIEBwYXJhbSB0b3VyXHJcbiAgICovXHJcbiAgcHJpdmF0ZSBhc3luYyBzaG93TmV4dFRvdXIoKTogUHJvbWlzZTx2b2lkPiB7XHJcbiAgICAvLyBUcmFjayBhIHRvdXIgc3RhcnRlZCBldmVudCBpZiB0aGUgY29uc3VtZXIgb2YgdGhlIGxpYnJhcnkgaGFzIHRlbGVtZXRyeSBjb25maWd1cmVkXHJcbiAgICB0aGlzLnRlbGVtZXRyeVNlcnZpY2UudHJhY2tFdmVudCgnVG91clN0YXJ0ZWQnLCB7IHRvdXJJZDogdGhpcy5jdXJyZW50VG91ciEuaWQgfSk7XHJcblxyXG4gICAgbGV0IGNvbnRpbnVlVG91cjogYm9vbGVhbiA9IHRydWU7XHJcblxyXG4gICAgaWYgKHRoaXMuaXNBdXRvU3RhcnQgJiYgdGhpcy5jdXJyZW50VG91ckluZGV4ID09PSAwICYmIHRoaXMuY3VycmVudFRvdXI/LmludHJvRGlhbG9nKSB7XHJcbiAgICAgIGxldCByZXN1bHQgPSBhd2FpdCB0aGlzLmRpYWxvZ1NlcnZpY2Uub3BlbkRpYWxvZyhcclxuICAgICAgICB0aGlzLmN1cnJlbnRUb3VyLmludHJvRGlhbG9nLmNvbnRlbnQhLFxyXG4gICAgICAgIHRoaXMuY3VycmVudFRvdXIuaW50cm9EaWFsb2cuc2l6ZSA/PyAnc21hbGwnLFxyXG4gICAgICAgIHRoaXMuY3VycmVudFRvdXIuaW50cm9EaWFsb2cuY29udGV4dCA/PyB1bmRlZmluZWQsXHJcbiAgICAgICAgdGhpcy5jdXJyZW50VG91ci5pbnRyb0RpYWxvZy5vcHRpb25zID8/IHVuZGVmaW5lZCkudG9Qcm9taXNlKCk7XHJcbiAgICAgIGlmICghcmVzdWx0LnNhdmUpIHtcclxuICAgICAgICBjb250aW51ZVRvdXIgPSBmYWxzZTtcclxuXHJcbiAgICAgICAgdGhpcy53cml0ZUNvbXBsZXRpb25LZXlGb3JBbGxUb3VycygpO1xyXG4gICAgICAgIC8vIEFkdmFuY2UgdG8gdGhlIGxhc3QgdG91ciBpZiB0aGVyZSBhcmUgbXVsdGlwbGUgZm9yIGl0cyBleGl0IHN0ZXBcclxuICAgICAgICB0aGlzLmN1cnJlbnRUb3VySW5kZXggPSB0aGlzLnRvdXJzLmxlbmd0aCAtIDE7XHJcbiAgICAgICAgYXdhaXQgdGhpcy5oYW5kbGVFeGl0U3RlcCgpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKGNvbnRpbnVlVG91cikge1xyXG4gICAgICB0aGlzLnNob3dOZXh0U3RlcCgpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBhc3luYyBlbmRUb3VyKCk6IFByb21pc2U8dm9pZD4ge1xyXG4gICAgLy8gSGFuZGxlIGFueSBjbGljayBhZnRlcnMgZm9yIHRoZSBhY3RpdmUgc3RlcCBzaG93biBiZWZvcmUgc2h1dHRpbmcgaXQgZG93blxyXG4gICAgYXdhaXQgdGhpcy53YWl0Rm9yVGltZW91dCh0aGlzLmhhbmRsZUNsaWNrQWZ0ZXIuYmluZCh0aGlzKSk7XHJcblxyXG4gICAgdGhpcy5jdXJyZW50VG91clN0ZXAgPSB1bmRlZmluZWQ7XHJcbiAgICB0aGlzLnRvdXJzID0gW107XHJcblxyXG4gICAgdGhpcy5yZW1vdmVUb29sdGlwKCk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBEaXNwbGF5cyBhIHRvb2x0aXAgZm9yIHRoZSBjdXJyZW50IHRvdXIgc3RlcFxyXG4gICAqL1xyXG4gIHByaXZhdGUgYXN5bmMgc2hvd1N0ZXBUb29sdGlwKCkge1xyXG4gICAgLy8gVHJhY2sgYW4gZXZlbnQgaWYgdGhlIGNvbnN1bWVyIG9mIHRoZSBsaWJyYXJ5IGhhcyB0ZWxlbWV0cnkgY29uZmlndXJlZFxyXG4gICAgdGhpcy50ZWxlbWV0cnlTZXJ2aWNlLnRyYWNrRXZlbnQoJ1RvdXJTdGVwQ2hhbmdlJywgeyB0b3VySWQ6IHRoaXMuY3VycmVudFRvdXIhLmlkLCB0b3VyU3RlcElkOiB0aGlzLmN1cnJlbnRUb3VyU3RlcCEuaWQgfSk7XHJcblxyXG4gICAgY29uc3QgdG9vbHRpcEVsZW1lbnQgPSB0aGlzLmRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IodGhpcy5jdXJyZW50VG91clN0ZXAhLmFuY2hvciEuc2VsZWN0b3IpO1xyXG5cclxuICAgIGlmICh0b29sdGlwRWxlbWVudCkge1xyXG4gICAgICAvLyBEZWZhdWx0IHdpZHRoIGlmIG5vbmUgcHJvdmlkZWRcclxuICAgICAgbGV0IHN0ZXBXaWR0aDogbnVtYmVyIHwgdW5kZWZpbmVkID0gNDMyO1xyXG5cclxuICAgICAgLy8gQ2hlY2sgdGhlIGN1cnJlbnQgdG91ciBzdGVwIHdpZHRoIGFuZCBkZWNpZGUgaWYgaXQgbmVlZHMgdG8gY2hhbmdlIGZyb20gdGhlIGRlZmF1bHQgdmFsdWVcclxuICAgICAgLy8gYmFzZWQgb24gd2hldGhlciB0aGUgc3RlcCBkZWZpbmVkIGl0IG9yIG5vdFxyXG4gICAgICBpZiAodGhpcy5jdXJyZW50VG91clN0ZXA/LndpZHRoICE9PSB1bmRlZmluZWQpIHtcclxuICAgICAgICBpZiAodHlwZW9mIHRoaXMuY3VycmVudFRvdXJTdGVwLndpZHRoID09PSAnbnVtYmVyJykge1xyXG4gICAgICAgICAgc3RlcFdpZHRoID0gdGhpcy5jdXJyZW50VG91clN0ZXAud2lkdGg7XHJcbiAgICAgICAgfSBlbHNlIGlmICh0aGlzLmN1cnJlbnRUb3VyU3RlcC53aWR0aCA9PT0gJ2F1dG8nKSB7XHJcbiAgICAgICAgICBzdGVwV2lkdGggPSB1bmRlZmluZWQ7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcblxyXG4gICAgICBjb25zdCBvcHRpb25zOiBUb29sdGlwT3B0aW9ucyA9IHtcclxuICAgICAgICBpZDogYCR7dGhpcy5jdXJyZW50VG91cj8uaWR9XyR7dGhpcy5jdXJyZW50VG91clN0ZXAhLmlkfWAsXHJcbiAgICAgICAgdGV4dDogdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQodGhpcy5jdXJyZW50VG91clN0ZXAhLnRleHQpLFxyXG4gICAgICAgIHRpdGxlOiB0aGlzLmN1cnJlbnRUb3VyU3RlcCEudGl0bGUgPyB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudCh0aGlzLmN1cnJlbnRUb3VyU3RlcCEudGl0bGUpIDogdW5kZWZpbmVkLFxyXG4gICAgICAgIGN1c3RvbUNvbnRlbnQ6IHRoaXMuY3VzdG9tLFxyXG4gICAgICAgIGRpc21pc3NpYmxlOiB0cnVlLFxyXG4gICAgICAgIG1heFdpZHRoOiB0aGlzLmN1cnJlbnRUb3VyU3RlcD8ubWF4V2lkdGgsXHJcbiAgICAgICAgd2lkdGg6IHN0ZXBXaWR0aCxcclxuICAgICAgICBiYWNrZ3JvdW5kQ29sb3I6ICd2YXIoLS1lYy1iYWNrZ3JvdW5kLWNvbG9yLXRvdXIpJyxcclxuICAgICAgICB0aXRsZUNvbG9yOiAndmFyKC0tZWMtY29sb3ItdG91ci10aXRsZSknXHJcbiAgICAgIH07XHJcblxyXG4gICAgICB0aGlzLnRvb2x0aXAgPSB0aGlzLnRvb2x0aXBTZXJ2aWNlLnNob3codG9vbHRpcEVsZW1lbnQgYXMgSFRNTEVsZW1lbnQsIHRoaXMuY3VycmVudFRvdXJTdGVwIS5hbmNob3I/LnBvc2l0aW9uLCBvcHRpb25zKTtcclxuICAgICAgYXdhaXQgdGhpcy53YWl0Rm9yVGltZW91dCh0aGlzLmZvY3VzT25OZXh0T3JEb25lQnV0dG9uLmJpbmQodGhpcykpO1xyXG4gICAgICB0aGlzLnN1YnNjcmliZVRvVG9vbHRpcE9uSGlkZSgpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogU3Vic2NyaWJlcyB0byB0aGUgdG9vbHRpcHMgb25IaWRlIGV2ZW50IGVtaXR0ZXIgYW5kIHJlYWN0cyBpZiB0aGUgdXNlciBkaXNtaXNzZXMgdGhlIHRvb2x0aXBcclxuICAgKi9cclxuICBwcml2YXRlIGFzeW5jIHN1YnNjcmliZVRvVG9vbHRpcE9uSGlkZSgpOiBQcm9taXNlPHZvaWQ+IHtcclxuICAgIGxldCB0b29sdGlwU3Vic2NyaXB0aW9uID0gdGhpcy50b29sdGlwPy5vbkhpZGUucGlwZShcclxuICAgICAgdGFrZVVudGlsKHRoaXMuZGVzdHJveWVkKVxyXG4gICAgKS5zdWJzY3JpYmUoYXN5bmMgKCkgPT4ge1xyXG4gICAgICB0b29sdGlwU3Vic2NyaXB0aW9uPy51bnN1YnNjcmliZSgpO1xyXG5cclxuICAgICAgdGhpcy53cml0ZUNvbXBsZXRpb25LZXlGb3JBbGxUb3VycygpO1xyXG4gICAgICAvLyBJZiB0aGlzIGlzIGRpc21pc3NlZCBkdXJpbmcgYW4gYXV0byBzdGFydCB0b3VyIHRoZW4gaGFuZGxlIHRoZSBleGl0IHN0ZXBcclxuICAgICAgLy8gQ2hlY2sgdGhhdCB0aGUgZG9uZSBidXR0b24gaXMgc2hvd24gYXMgd2VsbCwgaWYgdGhlIGRvbmUgaXMgc2hvd24gdGhlbiB3ZSdyZSBpbiB0aGUgZXhpdCBzdGVwXHJcbiAgICAgIC8vIGFuZCBkaXNtaXNzaW5nIHNob3VsZCBqdXN0IGVuZCB0aGUgdG91clxyXG4gICAgICBpZiAodGhpcy5pc0F1dG9TdGFydCAmJiAhdGhpcy5zaG93RG9uZUJ1dHRvbikge1xyXG4gICAgICAgIC8vIEFkdmFuY2UgdG8gdGhlIGxhc3QgdG91ciBpZiB0aGVyZSBhcmUgbXVsdGlwbGUgZm9yIGl0cyBleGl0IHN0ZXBcclxuICAgICAgICB0aGlzLmN1cnJlbnRUb3VySW5kZXggPSB0aGlzLnRvdXJzLmxlbmd0aCAtIDE7XHJcblxyXG4gICAgICAgIGF3YWl0IHRoaXMuaGFuZGxlRXhpdFN0ZXAoKTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBhd2FpdCB0aGlzLmVuZFRvdXIoKTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBMb29wcyB0aHJvdWdoIHRoZSBjdXJyZW50IHRvdXIgc3RlcHMgc3RhcnRpbmcgYWZ0ZXIgdGhlIGN1cnJlbnQgc3RlcCBpbmRleC4gSXQgd2lsbCB0cnkgdG8gZmluZCBhIHZpc2libGVcclxuICAgKiBzZWxlY3RvciBhbmQgaWYgc28gcmV0dXJuIHRoZSBpbmRleC5cclxuICAgKiBAcmV0dXJuc1xyXG4gICAqL1xyXG4gIHByaXZhdGUgZ2V0TmV4dEF2YWlsYWJsZVN0ZXBJbmRleCgpOiBudW1iZXIge1xyXG4gICAgbGV0IG5leHRTdGVwSW5kZXg6IG51bWJlciA9IC0xO1xyXG5cclxuICAgIC8vIExvb2sgdGhyb3VnaCB0aGUgc3RlcHMgc3RhcnRpbmcgd2l0aCB0aGUgY3VycmVudCBpbmRleCBhbmQgZmluZCB0aGUgbmV4dCB0aGF0IGlzIGF2YWlhYmxlXHJcbiAgICAvLyBmb3IgdGhlIHVzZXIuXHJcbiAgICBmb3IgKGxldCBpOiBudW1iZXIgPSB0aGlzLmN1cnJlbnRTdGVwSW5kZXggKyAxOyBpIDwgdGhpcy5jdXJyZW50VG91ciEuc3RlcHMubGVuZ3RoOyBpKyspIHtcclxuICAgICAgaWYgKHRoaXMuY3VycmVudFRvdXI/LnN0ZXBzW2ldLmFuY2hvciAmJiB0aGlzLnN0ZXBFbGVtZW50Rm91bmQodGhpcy5jdXJyZW50VG91ciEuc3RlcHNbaV0uYW5jaG9yISkpIHtcclxuICAgICAgICByZXR1cm4gaTtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBuZXh0U3RlcEluZGV4O1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogVHJ5IHRvIGZpbmQgdGhlIHRvdXIgc3RlcCBlbGVtZW50IHRvIGtub3cgaWYgaXQgaXMgdmlzaWJsZSBmb3IgdGhlIHVzZXIuIENoZWNrIGZvciB0aGUgY2xpY2tCZWZvcmUgZmlyc3QgaWYgZGVmaW5lZFxyXG4gICAqIEBwYXJhbSBhbmNob3JcclxuICAgKiBAcmV0dXJuc1xyXG4gICAqL1xyXG4gIHByaXZhdGUgc3RlcEVsZW1lbnRGb3VuZChhbmNob3I6IFRvdXJBbmNob3IpOiBib29sZWFuIHtcclxuICAgIGlmIChhbmNob3IuY2xpY2tCZWZvcmUpIHtcclxuICAgICAgcmV0dXJuIHRoaXMuZG9jdW1lbnQucXVlcnlTZWxlY3RvcihhbmNob3IuY2xpY2tCZWZvcmUpICE9PSBudWxsO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgcmV0dXJuIHRoaXMuZG9jdW1lbnQucXVlcnlTZWxlY3RvcihhbmNob3Iuc2VsZWN0b3IpICE9PSBudWxsO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogU29tZSB0b3VyIHN0ZXBzIG1heSBoYXZlIGEgY2xpY2sgYWZ0ZXIgZGVmaW5lZC4gSWYgc28gY2FsbCB0aGUgY2xpY2sgbWV0aG9kIG9uIHRoZSBodG1sIGVsZW1lbnRcclxuICAgKi9cclxuICBwcml2YXRlIGhhbmRsZUNsaWNrQWZ0ZXIoKTogdm9pZCB7XHJcbiAgICBsZXQgc2VsZWN0b3IgPSB0aGlzLmN1cnJlbnRUb3VyU3RlcD8uYW5jaG9yPy5jbGlja0FmdGVyO1xyXG4gICAgaWYgKHNlbGVjdG9yKSB7XHJcbiAgICAgIHRoaXMuY2xpY2tFbGVtZW50SWZGb3VuZChzZWxlY3Rvcik7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBTb21lIHRvdXIgc3RlcHMgbWF5IGhhdmUgYSBjbGljayBiZWZvcmUgZGVmaW5lZC4gSWYgc28gY2FsbCB0aGUgY2xpY2sgbWV0aG9kIG9uIHRoZSBodG1sIGVsZW1lbnRcclxuICAgKi9cclxuICBwcml2YXRlIGhhbmRsZUNsaWNrQmVmb3JlKCk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMuY3VycmVudFRvdXJTdGVwPy5hbmNob3I/LmNsaWNrQmVmb3JlKSB7XHJcbiAgICAgIHRoaXMuY2xpY2tFbGVtZW50SWZGb3VuZCh0aGlzLmN1cnJlbnRUb3VyU3RlcC5hbmNob3I/LmNsaWNrQmVmb3JlKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICogQ2hlY2tzIGZvciBhbiBleGl0IHN0ZXAgb24gdGhlIGN1cnJlbnQgdG91ciBhbmQgaWYgZm91bmQgZGlzcGxheXMgdGhlIHN0ZXBcclxuICAqL1xyXG4gIHByaXZhdGUgYXN5bmMgaGFuZGxlRXhpdFN0ZXAoKTogUHJvbWlzZTx2b2lkPiB7XHJcbiAgICBpZiAodGhpcy5jdXJyZW50VG91cj8uZXhpdFN0ZXApIHtcclxuICAgICAgdGhpcy5yZW1vdmVUb29sdGlwKCk7XHJcblxyXG4gICAgICB0aGlzLnNob3dEb25lQnV0dG9uID0gdHJ1ZTtcclxuICAgICAgdGhpcy5jdXJyZW50VG91clN0ZXAgPSB0aGlzLmN1cnJlbnRUb3VyPy5leGl0U3RlcDtcclxuXHJcbiAgICAgIGF3YWl0IHRoaXMud2FpdEZvclRpbWVvdXQodGhpcy5oYW5kbGVDbGlja0JlZm9yZS5iaW5kKHRoaXMpKTtcclxuICAgICAgYXdhaXQgdGhpcy53YWl0Rm9yVGltZW91dCh0aGlzLnNob3dTdGVwVG9vbHRpcC5iaW5kKHRoaXMpKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFRyeSB0byBmaW5kIHRoZSBlbGVtZW50IHdpdGggdGhlIHNlbGVjdG9yIHByb3ZpZGVkIGFuZCBpZiBzbyBjbGljayBpdC4gVGhpcyBpcyBob3cgdG91ciBzdGVwcyB3aWxsIG9wZW4vY2xvc2UgbWVudXMgdG9cclxuICAgKiBnaXZlIGEgdG91ciB0byB0aGUgdXNlclxyXG4gICAqIEBwYXJhbSBzZWxlY3RvclxyXG4gICAqL1xyXG4gIHByaXZhdGUgY2xpY2tFbGVtZW50SWZGb3VuZChzZWxlY3Rvcjogc3RyaW5nIHwgdW5kZWZpbmVkKTogdm9pZCB7XHJcbiAgICBpZiAoc2VsZWN0b3IgIT09IHVuZGVmaW5lZCkge1xyXG4gICAgICBjb25zdCBlbGVtZW50ID0gdGhpcy5kb2N1bWVudC5xdWVyeVNlbGVjdG9yKHNlbGVjdG9yKTtcclxuICAgICAgaWYgKGVsZW1lbnQpIHtcclxuICAgICAgICAoZWxlbWVudCBhcyBIVE1MRWxlbWVudCkuY2xpY2soKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogV2hlbiBhdXRvIHN0YXJ0aW5nIHRvdXJzIHdlIHdpbGwgd2FudCB0byByZW1vdmUgYW55IHRoYXQgaGF2ZSB0aGUgbG9jYWwgc3RvcmFnZSBrZXkgd3JpdHRlbiBhcyBjb21wbGV0ZWQgc29cclxuICAgKiB0aGV5IGFyZSBub3QgcHJlc2VudGVkIHRvIHRoZSB1c2VyIGFnYWluLlxyXG4gICAqIEBwYXJhbSB0b3Vyc1xyXG4gICAqIEByZXR1cm5zXHJcbiAgICovXHJcbiAgcHJpdmF0ZSByZW1vdmVDb21wbGV0ZWRUb3Vycyh0b3VyczogVG91cltdKTogVG91cltdIHtcclxuICAgIHJldHVybiB0b3Vycy5maWx0ZXIodG91ciA9PiB7XHJcbiAgICAgIGxldCBjYWNoZVZhbHVlID0gdGhpcy5jYWNoZVNlcnZpY2UuZ2V0SXRlbTxUb3VyQ2FjaGVFbnRyeT4odGhpcy5tYWtlQ2FjaGVLZXkodG91cikpO1xyXG4gICAgICBpZiAoY2FjaGVWYWx1ZSkge1xyXG4gICAgICAgIHJldHVybiAhY2FjaGVWYWx1ZS5jb21wbGV0ZWQ7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogV3JpdGVzIGEga2V5IHRvIGxvY2FsIHN0b3JhZ2Ugc28gdGhlIHRvdXIgd2lsbCBub3QgYmUgc2hvd24gYWdhaW4gYXV0b21hdGljYWxseVxyXG4gICAqL1xyXG4gIHByaXZhdGUgd3JpdGVDb21wbGV0aW9uS2V5KHRvdXI6IFRvdXIgfCB1bmRlZmluZWQpOiB2b2lkIHtcclxuICAgIGlmICh0b3VyKSB7XHJcbiAgICAgIHRoaXMuY2FjaGVTZXJ2aWNlLnNldEl0ZW0odGhpcy5tYWtlQ2FjaGVLZXkodG91ciksIDxUb3VyQ2FjaGVFbnRyeT57IGNvbXBsZXRlZDogdHJ1ZSB9KTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFdoZW4gZGlzbWlzc2luZyBhIHRvdXIgb3Igb25lIGJlaW5nIGRpc21pc3NlZCB2aWEgYSBuYXZpZ2F0aW9uIGV2ZW50LCBldGMgd2Ugd2lsbCB3YW50IHRvIG1hcmtcclxuICAgKiBldmVyeSB0b3VyIGluIHRoZSBhcnJheSBhcyBjb21wbGV0ZWQgc28gaXQgZG9lc24ndCByZXN1cmZhY2UgdW5sZXNzIHRoZSB1c2VyIHJlcXVlc3RzIHRoZSB0b3VyLlxyXG4gICAqIFRoaXMgZnVuY3Rpb24gd2lsbCBsb29wIG92ZXIgYWxsIGFuZCB3cml0ZSB0aGUgbG9jYWwgc3RvcmFnZSBrZXlcclxuICAgKi9cclxuICBwcml2YXRlIHdyaXRlQ29tcGxldGlvbktleUZvckFsbFRvdXJzKCk6IHZvaWQge1xyXG4gICAgdGhpcy50b3Vycy5mb3JFYWNoKHRvdXIgPT4ge1xyXG4gICAgICB0aGlzLndyaXRlQ29tcGxldGlvbktleSh0b3VyKTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQ2FjaGUga2V5IHVzZWQgdG8gc2V0L2dldCB0aGUgY29tcGxldGlvbiBzdGF0dXMgb2YgYSB0b3VyXHJcbiAgICogQHBhcmFtIHRvdXJcclxuICAgKiBAcmV0dXJuc1xyXG4gICAqL1xyXG4gIHByaXZhdGUgbWFrZUNhY2hlS2V5KHRvdXI6IFRvdXIpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIHRoaXMudG91clNlcnZpY2UuZ2V0Q2FjaGVLZXkodG91cik7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBSZW1vdmVzIGEgdG9vbHRpcCBmcm9tIHRoZSB2aWV3LCB1c2VkIHdoZW4gc3dpdGNoaW5nIHRvdXIgc3RlcHMgYW5kIGNsb3NpbmcgYSB0b3VyXHJcbiAgICovXHJcbiAgcHJpdmF0ZSByZW1vdmVUb29sdGlwKCk6IHZvaWQge1xyXG4gICAgdGhpcy50b29sdGlwPy5vdmVybGF5UmVmPy5kaXNwb3NlKCk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBSZXR1cm5zIHRoZSB0b3VyIGJhc2VkIG9uIHRoZSBjdXJyZW50IGluZGV4XHJcbiAgICovXHJcbiAgcHJpdmF0ZSBnZXQgY3VycmVudFRvdXIoKTogVG91ciB8IHVuZGVmaW5lZCB7XHJcbiAgICBpZiAodGhpcy5jdXJyZW50VG91ckluZGV4ID4gLTEgJiYgdGhpcy5jdXJyZW50VG91ckluZGV4IDwgdGhpcy50b3Vycy5sZW5ndGgpIHtcclxuICAgICAgcmV0dXJuIHRoaXMudG91cnNbdGhpcy5jdXJyZW50VG91ckluZGV4XTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHJldHVybiB1bmRlZmluZWQ7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBUaGUgY2xpY2sgYmVmb3JlL2FmdGVyIGFuZCBzaG93IHRvb2x0aXAgZnVuY3Rpb25zIG5lZWQgdG8gYmUgd3JhcHBlZCBpbiBzZXRUaW1lb3V0IGZvciB0aGUgVUlcclxuICAgKiB0byBvcGVyYXRlIGNvcnJlY3RseSBidXQgc2V0VGltZW91dCBpcyBhbiBhY3Rpb24gd2UgY2Fubm90IGF3YWl0IHNvIHdlJ3JlIHdyYXBwaW5nIGl0IGluIGEgcHJvbWlzZSB0byByZXR1cm5cclxuICAgKiBzbyB0aGUgZnVuY3Rpb24gY2FsbHMgY2FuIGF3YWl0IHRoZSBhY3Rpb25cclxuICAgKiBAcGFyYW0gZm5cclxuICAgKiBAcmV0dXJuc1xyXG4gICAqL1xyXG4gIHByaXZhdGUgd2FpdEZvclRpbWVvdXQoZm46ICgpID0+IHZvaWQpIHtcclxuICAgIHJldHVybiBuZXcgUHJvbWlzZTx2b2lkPihyZXNvbHZlID0+IHtcclxuICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgZm4oKTtcclxuICAgICAgICByZXNvbHZlKCk7XHJcbiAgICAgIH0pO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBGaW5kIHRoZSBcIm5leHRcIiBvciBcImRvbmVcIiBidXR0b24gYW5kIGZvY3VzIG9uIGl0LlxyXG4gICAqXHJcbiAgICogVGhleSBhcmUgbXV0dWFsbHkgZXhjbHVzaXZlLCBzbyBpZiB3ZSBjYW5ub3QgZmluZCB0aGUgbmV4dCBidXR0b25cclxuICAgKiB3ZSBsb29rIGZvciB0aGUgZG9uZSBidXR0b24uXHJcbiAgICovXHJcbiAgcHJpdmF0ZSBmb2N1c09uTmV4dE9yRG9uZUJ1dHRvbigpOiB2b2lkIHtcclxuICAgIGlmICghdGhpcy5mb2N1c09uRWxlbWVudChgIyR7dGhpcy5jdXJyZW50VG91clN0ZXAhLmlkfV9uZXh0QnV0dG9uYCkpIHtcclxuICAgICAgdGhpcy5mb2N1c09uRWxlbWVudChgIyR7dGhpcy5jdXJyZW50VG91clN0ZXAhLmlkfV9kb25lQnV0dG9uYClcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEZpbmQgYW4gZWxlbWVudCB3aXRoIGdpdmVuIHNlbGVjdG9yIGFuZCBmb2N1cyBvbiBpdC5cclxuICAgKiBSZXR1cm4gZmFsc2UgaWYgZWxlbWVudCBub3QgZm91bmQuXHJcbiAgICovXHJcbiAgcHJpdmF0ZSBmb2N1c09uRWxlbWVudChzZWxlY3Rvcjogc3RyaW5nKTogYm9vbGVhbiB7XHJcbiAgICBjb25zdCBlbGVtZW50ID0gdGhpcy5kb2N1bWVudC5xdWVyeVNlbGVjdG9yKHNlbGVjdG9yKTtcclxuICAgIGlmIChlbGVtZW50KSB7XHJcbiAgICAgIChlbGVtZW50IGFzIEhUTUxFbGVtZW50KS5mb2N1cygpO1xyXG4gICAgICByZXR1cm4gdHJ1ZTtcclxuICAgIH1cclxuICAgIHJldHVybiBmYWxzZTtcclxuICB9XHJcbn1cclxuIiwiPG5nLXRlbXBsYXRlICN0b3VyVG9vbHRpcD5cclxuICAgIDxkaXYgKm5nSWY9XCJjdXJyZW50VG91clN0ZXA/Lm1lZGlhXCJcclxuICAgICAgICAgY2xhc3M9XCJtYi0zXCI+XHJcbiAgICAgICAgPGltZyBpZD1cInt7Y3VycmVudFRvdXJTdGVwPy5pZCArICdfbWVkaWEnfX1cIlxyXG4gICAgICAgICAgICAgc3R5bGU9XCJtYXgtd2lkdGg6IDEwMCU7XCJcclxuICAgICAgICAgICAgIHNyYz1cInt7Y3VycmVudFRvdXJTdGVwPy5tZWRpYX19XCI+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXYgY2xhc3M9XCJmb250LWNvbG9yLXByaW1hcnktbGlnaHQgcHgtMyBtYi0zXCJcclxuICAgICAgICAgW2lubmVySHRtbF09XCJjdXJyZW50VG91clN0ZXA/LnRleHQgfCB0cmFuc2xhdGVcIj5cclxuICAgIDwvZGl2PlxyXG4gICAgPGEgKm5nSWY9XCJjdXJyZW50VG91clN0ZXA/LmhlbHBMaW5rXCIgaWQ9XCJ7e2N1cnJlbnRUb3VyU3RlcD8uaWQgKyAnX2hlbHBMaW5rJ319XCIgY2xhc3M9XCJkLWJsb2NrIG1iLTMgcHgtM1wiIHRhcmdldD1cIl9ibGFua1wiIGhyZWY9XCJ7e2N1cnJlbnRUb3VyU3RlcD8uaGVscExpbmt9fVwiIHRyYW5zbGF0ZT5MZWFybk1vcmVfU0M8L2E+XHJcbiAgICA8Zm9vdGVyIGNsYXNzPVwicHgtMyBtdC0zIGQtZmxleFwiPlxyXG4gICAgICAgIDxidXR0b24gaWQ9XCJ7e2N1cnJlbnRUb3VyU3RlcD8uaWQgKyAnX25leHRCdXR0b24nfX1cIiAqbmdJZj1cIiFzaG93RG9uZUJ1dHRvblwiIGNsYXNzPVwibWwtYXV0byB0b3VyQWN0aW9uXCIgZWNMaW5rQnV0dG9uIChjbGljayk9XCJzaG93TmV4dFN0ZXAoKVwiIHRyYW5zbGF0ZT5OZXh0X1RDPC9idXR0b24+XHJcbiAgICAgICAgPGJ1dHRvbiBpZD1cInt7Y3VycmVudFRvdXJTdGVwPy5pZCArICdfZG9uZUJ1dHRvbid9fVwiICpuZ0lmPVwic2hvd0RvbmVCdXR0b25cIiBjbGFzcz1cIm1sLWF1dG8gdG91ckFjdGlvblwiIGVjTGlua0J1dHRvbiAoY2xpY2spPVwiZG9uZSgpXCIgdHJhbnNsYXRlPkRvbmVfVEM8L2J1dHRvbj5cclxuICAgIDwvZm9vdGVyPlxyXG48L25nLXRlbXBsYXRlPiJdfQ==
@@ -22,6 +22,10 @@ export class TourService {
22
22
  let tourEvent = new TourEvent([], 'end');
23
23
  this.events.next(tourEvent);
24
24
  }
25
+ append(tours, isAutoStart = false) {
26
+ let tourEvent = new TourEvent(tours, 'append', isAutoStart);
27
+ this.events.next(tourEvent);
28
+ }
25
29
  /**
26
30
  * Returns a formatted cache key for tours
27
31
  * @param tour
@@ -68,4 +72,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImpor
68
72
  providedIn: 'root'
69
73
  }]
70
74
  }], ctorParameters: function () { return [{ type: i1.CacheService }]; } });
71
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG91ci5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29tcG9uZW50cy9zcmMvbGliL2Rpc3BsYXkvdG91ci90b3VyLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQWMsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRTNDLE9BQU8sRUFBd0IsU0FBUyxFQUFFLE1BQU0sY0FBYyxDQUFDOzs7QUFLL0QsTUFBTSxPQUFPLFdBQVc7SUFJdEIsWUFDVSxZQUEwQjtRQUExQixpQkFBWSxHQUFaLFlBQVksQ0FBYztRQUg3QixXQUFNLEdBQTBCLElBQUksT0FBTyxFQUFFLENBQUM7SUFJakQsQ0FBQztJQUVMOzs7OztPQUtHO0lBQ0ksS0FBSyxDQUFDLEtBQWEsRUFBRSxjQUF1QixLQUFLO1FBQ3RELElBQUksU0FBUyxHQUFjLElBQUksU0FBUyxDQUFDLEtBQUssRUFBRSxPQUFPLEVBQUUsV0FBVyxDQUFDLENBQUM7UUFDckUsSUFBSSxDQUFDLE1BQTZCLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQ3RELENBQUM7SUFFTSxHQUFHO1FBQ1IsSUFBSSxTQUFTLEdBQWMsSUFBSSxTQUFTLENBQUMsRUFBRSxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBQ25ELElBQUksQ0FBQyxNQUE2QixDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUN0RCxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNJLFdBQVcsQ0FBQyxJQUFVO1FBQzNCLE9BQU8saUJBQWlCLElBQUksQ0FBQyxFQUFFLEVBQUUsQ0FBQztJQUNwQyxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNJLGlCQUFpQixDQUFDLElBQVU7UUFDakMsSUFBSSxVQUFVLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQWlCLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztRQUNuRixJQUFJLFVBQVUsRUFBRTtZQUNkLE9BQU8sVUFBVSxDQUFDLFNBQVMsQ0FBQztTQUM3QjthQUFNO1lBQ0wsaUVBQWlFO1lBQ2pFLE9BQU8sS0FBSyxDQUFDO1NBQ2Q7SUFDSCxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNJLHNCQUFzQixDQUFDLEtBQWE7UUFDekMsSUFBSSxXQUFXLEdBQVcsQ0FBQyxDQUFDO1FBRTVCLEtBQUssQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEVBQUU7WUFDbkIsSUFBSSxJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLEVBQUU7Z0JBQ2hDLFdBQVcsRUFBRSxDQUFDO2FBQ2Y7UUFDSCxDQUFDLENBQUMsQ0FBQztRQUVILE9BQU8sV0FBVyxLQUFLLEtBQUssQ0FBQyxNQUFNLENBQUM7SUFDdEMsQ0FBQzs7d0dBL0RVLFdBQVc7NEdBQVgsV0FBVyxjQUZWLE1BQU07MkZBRVAsV0FBVztrQkFIdkIsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IE9ic2VydmFibGUsIFN1YmplY3QgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgQ2FjaGVTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vY29yZS9jYWNoZS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgVG91ciwgVG91ckNhY2hlRW50cnksIFRvdXJFdmVudCB9IGZyb20gJy4vdG91ci10eXBlcyc7XHJcblxyXG5ASW5qZWN0YWJsZSh7XHJcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBUb3VyU2VydmljZSB7XHJcblxyXG4gIHB1YmxpYyBldmVudHM6IE9ic2VydmFibGU8VG91ckV2ZW50PiA9IG5ldyBTdWJqZWN0KCk7XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBjYWNoZVNlcnZpY2U6IENhY2hlU2VydmljZVxyXG4gICkgeyB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFN0YXJ0IGEgdG91ciBvZiB0aGUgYXBwbGljYXRpb24uIEFsbG93cyBvbmUgb3IgbWFueSB0b3VycyB0byBiZSBzZW50IGluLCBlYWNoIHdpbGxcclxuICAgKiBmb2xsb3cgdGhlIG5leHQuIElmIG11bHRpcGxlIHRvdXJzIGhhdmUgZXhpdCBzdGVwcyBkZWZpbmVkIG9ubHkgdGhlIGZpbmFsIHRvdXIgd2lsbFxyXG4gICAqIGV4ZWN1dGUgdGhlIGV4aXQgc3RlcC5cclxuICAgKiBAcGFyYW0gdG91cnMgXHJcbiAgICovXHJcbiAgcHVibGljIHN0YXJ0KHRvdXJzOiBUb3VyW10sIGlzQXV0b1N0YXJ0OiBib29sZWFuID0gZmFsc2UpOiB2b2lkIHtcclxuICAgIGxldCB0b3VyRXZlbnQ6IFRvdXJFdmVudCA9IG5ldyBUb3VyRXZlbnQodG91cnMsICdzdGFydCcsIGlzQXV0b1N0YXJ0KTtcclxuICAgICh0aGlzLmV2ZW50cyBhcyBTdWJqZWN0PFRvdXJFdmVudD4pLm5leHQodG91ckV2ZW50KTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBlbmQoKTogdm9pZCB7XHJcbiAgICBsZXQgdG91ckV2ZW50OiBUb3VyRXZlbnQgPSBuZXcgVG91ckV2ZW50KFtdLCAnZW5kJyk7XHJcbiAgICAodGhpcy5ldmVudHMgYXMgU3ViamVjdDxUb3VyRXZlbnQ+KS5uZXh0KHRvdXJFdmVudCk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBSZXR1cm5zIGEgZm9ybWF0dGVkIGNhY2hlIGtleSBmb3IgdG91cnNcclxuICAgKiBAcGFyYW0gdG91ciBcclxuICAgKiBAcmV0dXJucyBcclxuICAgKi9cclxuICBwdWJsaWMgZ2V0Q2FjaGVLZXkodG91cjogVG91cik6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gYFRvdXJDb21wbGV0ZWRfJHt0b3VyLmlkfWA7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBHaXZlbiBhIHRvdXIsIGNoZWNrIHRvIHNlZSBpZiBpdCdzIGJlZW4gY29tcGxldGVkXHJcbiAgICogQHBhcmFtIHRvdXIgXHJcbiAgICogQHJldHVybnMgXHJcbiAgICovXHJcbiAgcHVibGljIGhhc1RvdXJCZWVuVmlld2VkKHRvdXI6IFRvdXIpOiBib29sZWFuIHtcclxuICAgIGxldCBjYWNoZVZhbHVlID0gdGhpcy5jYWNoZVNlcnZpY2UuZ2V0SXRlbTxUb3VyQ2FjaGVFbnRyeT4odGhpcy5nZXRDYWNoZUtleSh0b3VyKSk7XHJcbiAgICBpZiAoY2FjaGVWYWx1ZSkge1xyXG4gICAgICByZXR1cm4gY2FjaGVWYWx1ZS5jb21wbGV0ZWQ7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICAvLyBJZiBubyBjYWNoZSB2YWx1ZSB0aGVuIHdlIG5ldmVyIHJhbiB0aHJvdWdoIGl0IGFuZCB3cm90ZSBhIGtleVxyXG4gICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBHaXZlbiBhIGxpc3Qgb2YgdG91cnMsIGNoZWNrIHRvIHNlZSBpZiBhbnkgd2lsbCBzaG93IHRvIHRoZSB1c2VyXHJcbiAgICogQHBhcmFtIHRvdXJzIFxyXG4gICAqIEByZXR1cm5zIFxyXG4gICAqL1xyXG4gIHB1YmxpYyBoYXZlQWxsVG91cnNCZWVuVmlld2VkKHRvdXJzOiBUb3VyW10pOiBib29sZWFuIHtcclxuICAgIGxldCB2aWV3ZWRDb3VudDogbnVtYmVyID0gMDtcclxuXHJcbiAgICB0b3Vycy5mb3JFYWNoKHRvdXIgPT4ge1xyXG4gICAgICBpZiAodGhpcy5oYXNUb3VyQmVlblZpZXdlZCh0b3VyKSkge1xyXG4gICAgICAgIHZpZXdlZENvdW50Kys7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG5cclxuICAgIHJldHVybiB2aWV3ZWRDb3VudCA9PT0gdG91cnMubGVuZ3RoO1xyXG4gIH1cclxufVxyXG4iXX0=
75
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG91ci5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29tcG9uZW50cy9zcmMvbGliL2Rpc3BsYXkvdG91ci90b3VyLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQWMsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRTNDLE9BQU8sRUFBd0IsU0FBUyxFQUFFLE1BQU0sY0FBYyxDQUFDOzs7QUFLL0QsTUFBTSxPQUFPLFdBQVc7SUFJdEIsWUFDVSxZQUEwQjtRQUExQixpQkFBWSxHQUFaLFlBQVksQ0FBYztRQUg3QixXQUFNLEdBQTBCLElBQUksT0FBTyxFQUFFLENBQUM7SUFJakQsQ0FBQztJQUVMOzs7OztPQUtHO0lBQ0ksS0FBSyxDQUFDLEtBQWEsRUFBRSxjQUF1QixLQUFLO1FBQ3RELElBQUksU0FBUyxHQUFjLElBQUksU0FBUyxDQUFDLEtBQUssRUFBRSxPQUFPLEVBQUUsV0FBVyxDQUFDLENBQUM7UUFDckUsSUFBSSxDQUFDLE1BQTZCLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQ3RELENBQUM7SUFFTSxHQUFHO1FBQ1IsSUFBSSxTQUFTLEdBQWMsSUFBSSxTQUFTLENBQUMsRUFBRSxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBQ25ELElBQUksQ0FBQyxNQUE2QixDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUN0RCxDQUFDO0lBRU0sTUFBTSxDQUFDLEtBQWEsRUFBRSxjQUF1QixLQUFLO1FBQ3ZELElBQUksU0FBUyxHQUFjLElBQUksU0FBUyxDQUFDLEtBQUssRUFBRSxRQUFRLEVBQUUsV0FBVyxDQUFDLENBQUM7UUFDdEUsSUFBSSxDQUFDLE1BQTZCLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQ3RELENBQUM7SUFFRDs7OztPQUlHO0lBQ0ksV0FBVyxDQUFDLElBQVU7UUFDM0IsT0FBTyxpQkFBaUIsSUFBSSxDQUFDLEVBQUUsRUFBRSxDQUFDO0lBQ3BDLENBQUM7SUFFRDs7OztPQUlHO0lBQ0ksaUJBQWlCLENBQUMsSUFBVTtRQUNqQyxJQUFJLFVBQVUsR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBaUIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO1FBQ25GLElBQUksVUFBVSxFQUFFO1lBQ2QsT0FBTyxVQUFVLENBQUMsU0FBUyxDQUFDO1NBQzdCO2FBQU07WUFDTCxpRUFBaUU7WUFDakUsT0FBTyxLQUFLLENBQUM7U0FDZDtJQUNILENBQUM7SUFFRDs7OztPQUlHO0lBQ0ksc0JBQXNCLENBQUMsS0FBYTtRQUN6QyxJQUFJLFdBQVcsR0FBVyxDQUFDLENBQUM7UUFFNUIsS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsRUFBRTtZQUNuQixJQUFJLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsRUFBRTtnQkFDaEMsV0FBVyxFQUFFLENBQUM7YUFDZjtRQUNILENBQUMsQ0FBQyxDQUFDO1FBRUgsT0FBTyxXQUFXLEtBQUssS0FBSyxDQUFDLE1BQU0sQ0FBQztJQUN0QyxDQUFDOzt3R0FwRVUsV0FBVzs0R0FBWCxXQUFXLGNBRlYsTUFBTTsyRkFFUCxXQUFXO2tCQUh2QixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBDYWNoZVNlcnZpY2UgfSBmcm9tICcuLi8uLi9jb3JlL2NhY2hlLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBUb3VyLCBUb3VyQ2FjaGVFbnRyeSwgVG91ckV2ZW50IH0gZnJvbSAnLi90b3VyLXR5cGVzJztcclxuXHJcbkBJbmplY3RhYmxlKHtcclxuICBwcm92aWRlZEluOiAncm9vdCdcclxufSlcclxuZXhwb3J0IGNsYXNzIFRvdXJTZXJ2aWNlIHtcclxuXHJcbiAgcHVibGljIGV2ZW50czogT2JzZXJ2YWJsZTxUb3VyRXZlbnQ+ID0gbmV3IFN1YmplY3QoKTtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIGNhY2hlU2VydmljZTogQ2FjaGVTZXJ2aWNlXHJcbiAgKSB7IH1cclxuXHJcbiAgLyoqXHJcbiAgICogU3RhcnQgYSB0b3VyIG9mIHRoZSBhcHBsaWNhdGlvbi4gQWxsb3dzIG9uZSBvciBtYW55IHRvdXJzIHRvIGJlIHNlbnQgaW4sIGVhY2ggd2lsbFxyXG4gICAqIGZvbGxvdyB0aGUgbmV4dC4gSWYgbXVsdGlwbGUgdG91cnMgaGF2ZSBleGl0IHN0ZXBzIGRlZmluZWQgb25seSB0aGUgZmluYWwgdG91ciB3aWxsXHJcbiAgICogZXhlY3V0ZSB0aGUgZXhpdCBzdGVwLlxyXG4gICAqIEBwYXJhbSB0b3VycyBcclxuICAgKi9cclxuICBwdWJsaWMgc3RhcnQodG91cnM6IFRvdXJbXSwgaXNBdXRvU3RhcnQ6IGJvb2xlYW4gPSBmYWxzZSk6IHZvaWQge1xyXG4gICAgbGV0IHRvdXJFdmVudDogVG91ckV2ZW50ID0gbmV3IFRvdXJFdmVudCh0b3VycywgJ3N0YXJ0JywgaXNBdXRvU3RhcnQpO1xyXG4gICAgKHRoaXMuZXZlbnRzIGFzIFN1YmplY3Q8VG91ckV2ZW50PikubmV4dCh0b3VyRXZlbnQpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGVuZCgpOiB2b2lkIHtcclxuICAgIGxldCB0b3VyRXZlbnQ6IFRvdXJFdmVudCA9IG5ldyBUb3VyRXZlbnQoW10sICdlbmQnKTtcclxuICAgICh0aGlzLmV2ZW50cyBhcyBTdWJqZWN0PFRvdXJFdmVudD4pLm5leHQodG91ckV2ZW50KTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBhcHBlbmQodG91cnM6IFRvdXJbXSwgaXNBdXRvU3RhcnQ6IGJvb2xlYW4gPSBmYWxzZSk6IHZvaWQge1xyXG4gICAgbGV0IHRvdXJFdmVudDogVG91ckV2ZW50ID0gbmV3IFRvdXJFdmVudCh0b3VycywgJ2FwcGVuZCcsIGlzQXV0b1N0YXJ0KTtcclxuICAgICh0aGlzLmV2ZW50cyBhcyBTdWJqZWN0PFRvdXJFdmVudD4pLm5leHQodG91ckV2ZW50KTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFJldHVybnMgYSBmb3JtYXR0ZWQgY2FjaGUga2V5IGZvciB0b3Vyc1xyXG4gICAqIEBwYXJhbSB0b3VyIFxyXG4gICAqIEByZXR1cm5zIFxyXG4gICAqL1xyXG4gIHB1YmxpYyBnZXRDYWNoZUtleSh0b3VyOiBUb3VyKTogc3RyaW5nIHtcclxuICAgIHJldHVybiBgVG91ckNvbXBsZXRlZF8ke3RvdXIuaWR9YDtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEdpdmVuIGEgdG91ciwgY2hlY2sgdG8gc2VlIGlmIGl0J3MgYmVlbiBjb21wbGV0ZWRcclxuICAgKiBAcGFyYW0gdG91ciBcclxuICAgKiBAcmV0dXJucyBcclxuICAgKi9cclxuICBwdWJsaWMgaGFzVG91ckJlZW5WaWV3ZWQodG91cjogVG91cik6IGJvb2xlYW4ge1xyXG4gICAgbGV0IGNhY2hlVmFsdWUgPSB0aGlzLmNhY2hlU2VydmljZS5nZXRJdGVtPFRvdXJDYWNoZUVudHJ5Pih0aGlzLmdldENhY2hlS2V5KHRvdXIpKTtcclxuICAgIGlmIChjYWNoZVZhbHVlKSB7XHJcbiAgICAgIHJldHVybiBjYWNoZVZhbHVlLmNvbXBsZXRlZDtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIC8vIElmIG5vIGNhY2hlIHZhbHVlIHRoZW4gd2UgbmV2ZXIgcmFuIHRocm91Z2ggaXQgYW5kIHdyb3RlIGEga2V5XHJcbiAgICAgIHJldHVybiBmYWxzZTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEdpdmVuIGEgbGlzdCBvZiB0b3VycywgY2hlY2sgdG8gc2VlIGlmIGFueSB3aWxsIHNob3cgdG8gdGhlIHVzZXJcclxuICAgKiBAcGFyYW0gdG91cnMgXHJcbiAgICogQHJldHVybnMgXHJcbiAgICovXHJcbiAgcHVibGljIGhhdmVBbGxUb3Vyc0JlZW5WaWV3ZWQodG91cnM6IFRvdXJbXSk6IGJvb2xlYW4ge1xyXG4gICAgbGV0IHZpZXdlZENvdW50OiBudW1iZXIgPSAwO1xyXG5cclxuICAgIHRvdXJzLmZvckVhY2godG91ciA9PiB7XHJcbiAgICAgIGlmICh0aGlzLmhhc1RvdXJCZWVuVmlld2VkKHRvdXIpKSB7XHJcbiAgICAgICAgdmlld2VkQ291bnQrKztcclxuICAgICAgfVxyXG4gICAgfSk7XHJcblxyXG4gICAgcmV0dXJuIHZpZXdlZENvdW50ID09PSB0b3Vycy5sZW5ndGg7XHJcbiAgfVxyXG59XHJcbiJdfQ==
@@ -3481,10 +3481,10 @@ class FormControlComponent {
3481
3481
  }
3482
3482
  }
3483
3483
  FormControlComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: FormControlComponent, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
3484
- FormControlComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: FormControlComponent, selector: "ec-form-control", inputs: { id: "id", icon: "icon", actionIcon: "actionIcon", showClear: "showClear", pending: "pending", required: "required", readonly: "readonly" }, outputs: { actionClicked: "actionClicked" }, host: { listeners: { "click": "onClick()" }, properties: { "class.is-pending": "this.pending", "class.is-required": "this.required", "class.is-readonly": "this.readonly", "class.is-empty": "this.empty", "class.is-invalid": "this.invalid", "class.is-disabled": "this.disabled" } }, queries: [{ propertyName: "formModel", first: true, predicate: FormControlDirective, descendants: true }], ngImport: i0, template: "<ng-content></ng-content>\r\n<i id=\"{{id + '_icon'}}\" class=\"ec-form-control-icon ec-icon {{icon}}\"></i>\r\n<i id=\"{{id + '_loading'}}\" class=\"ec-form-control-icon ec-icon icon-loading\"></i>\r\n<i id=\"{{id + '_required'}}\" class=\"ec-form-control-icon ec-icon icon-required\"></i>\r\n<i id=\"{{id + '_invalid'}}\" class=\"ec-form-control-icon ec-icon icon-invalid\"></i>\r\n<i id=\"{{id + '_clear'}}\" *ngIf=\"showClear\" class=\"ec-form-control-clear ec-icon icon-cancel\" (click)=\"clear()\"></i>\r\n<i id=\"{{id + '_action'}}\" *ngIf=\"actionIcon\" class=\"ec-form-control-action ec-icon {{actionIcon}}\" (click)=\"actionClicked.emit()\"></i>\r\n<div class=\"ec-focus-ring\"></div>", styles: ["ec-form-control{background-color:var(--ec-form-control-background-color);background-clip:padding-box;border:1px solid var(--ec-form-control-border-color);border-radius:var(--ec-border-radius);padding:0 .5rem;position:relative;color:var(--ec-form-control-color);display:flex;font-size:var(--ec-form-control-font-size);min-height:2rem;width:100%}ec-form-control>input,ec-form-control>select,ec-form-control>textarea{color:inherit;flex:1 1;min-width:0;border:0;background-color:transparent;order:2}ec-form-control>input::selection,ec-form-control>select::selection,ec-form-control>textarea::selection{background-color:var(--ec-form-control-background-color-selection);color:var(--ec-form-control-color-selection)}ec-form-control>input::-webkit-input-placeholder,ec-form-control>select::-webkit-input-placeholder,ec-form-control>textarea::-webkit-input-placeholder{color:var(--ec-form-control-color-placeholder)}ec-form-control>input::-moz-placeholder,ec-form-control>select::-moz-placeholder,ec-form-control>textarea::-moz-placeholder{color:var(--ec-form-control-color-placeholder);opacity:1}ec-form-control>input:-ms-input-placeholder,ec-form-control>select:-ms-input-placeholder,ec-form-control>textarea:-ms-input-placeholder{color:var(--ec-form-control-color-placeholder)}ec-form-control>input:-moz-placeholder,ec-form-control>select:-moz-placeholder,ec-form-control>textarea:-moz-placeholder{color:var(--ec-form-control-color-placeholder);opacity:1}ec-form-control>input:focus,ec-form-control>select:focus,ec-form-control>textarea:focus{outline:none}ec-form-control>input:focus~.ec-focus-ring,ec-form-control>select:focus~.ec-focus-ring,ec-form-control>textarea:focus~.ec-focus-ring{display:block}ec-form-control>input,ec-form-control>textarea,ec-form-control>select,ec-form-control .ec-form-control-prefix,ec-form-control .ec-form-control-suffix{padding:calc((1.875rem - var(--ec-font-size-body) * 1.25) / 2) 0;line-height:1.25;font-size:inherit}ec-form-control>textarea{resize:none;padding:.3125rem 0}ec-form-control .ec-form-control-icon{margin-top:.4375rem;margin-right:.25rem;order:1}ec-form-control .ec-form-control-icon:not([class*=icon-]){display:none}ec-form-control .icon-required,ec-form-control .icon-invalid{color:var(--ec-form-control-border-color-invalid)}ec-form-control .ec-form-control-clear,ec-form-control .ec-form-control-action{cursor:pointer;flex:none;height:1.875rem;width:2rem;order:3}ec-form-control .ec-form-control-clear:last-of-type,ec-form-control .ec-form-control-action:last-of-type{margin-right:-.5rem}ec-form-control .ec-form-control-clear:hover,ec-form-control .ec-form-control-action:hover{background-color:var(--ec-background-color-hover)}ec-form-control .ec-form-control-clear{width:1.5rem}ec-form-control .ec-form-control-prefix,ec-form-control .ec-form-control-suffix{color:var(--ec-color-secondary-dark);flex:none;cursor:default}ec-form-control .ec-form-control-prefix{margin-right:.125rem;order:2}ec-form-control .ec-form-control-suffix{margin-left:.125rem;order:3}ec-form-control .ec-focus-ring{position:absolute;inset:-1px;border:.125rem solid var(--ec-form-control-border-color-focus);pointer-events:none;display:none;border-radius:var(--ec-form-control-border-radius);z-index:1}ec-form-control.is-pending .icon-invalid,ec-form-control.is-pending .icon-required{display:none}ec-form-control.is-invalid{border-color:var(--ec-form-control-border-color-invalid);background-color:var(--ec-form-control-background-color-invalid)}ec-form-control.is-invalid .icon-required{display:none}ec-form-control.is-empty .ec-form-control-clear{display:none}ec-form-control.is-required.is-empty .ec-form-control-icon:first-of-type{display:none}ec-form-control:not(.is-pending) .icon-loading{display:none}ec-form-control:not(.is-required) .icon-required,ec-form-control:not(.is-empty) .icon-required{display:none}ec-form-control:not(.is-invalid) .icon-invalid{display:none}ec-form-control.is-readonly,ec-form-control.is-disabled{background-color:var(--ec-form-control-background-color-disabled)}ec-form-control.is-readonly .icon-loading,ec-form-control.is-readonly .icon-invalid,ec-form-control.is-readonly .icon-required,ec-form-control.is-readonly .ec-form-control-clear,ec-form-control.is-disabled .icon-loading,ec-form-control.is-disabled .icon-invalid,ec-form-control.is-disabled .icon-required,ec-form-control.is-disabled .ec-form-control-clear{display:none}ec-form-control.is-readonly{border-color:var(--ec-form-control-border-color-readonly);color:var(--ec-form-control-color-readonly)}ec-form-control.is-readonly .ec-form-control-action{display:none}ec-form-control.is-disabled:not(.is-readonly){color:var(--ec-form-control-color-disabled);opacity:.6}ec-form-control.is-disabled:not(.is-readonly) .ec-form-control-prefix,ec-form-control.is-disabled:not(.is-readonly) .ec-form-control-suffix{color:inherit}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], encapsulation: i0.ViewEncapsulation.None });
3484
+ FormControlComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: FormControlComponent, selector: "ec-form-control", inputs: { id: "id", icon: "icon", actionIcon: "actionIcon", showClear: "showClear", pending: "pending", required: "required", readonly: "readonly" }, outputs: { actionClicked: "actionClicked" }, host: { listeners: { "click": "onClick()" }, properties: { "class.is-pending": "this.pending", "class.is-required": "this.required", "class.is-readonly": "this.readonly", "class.is-empty": "this.empty", "class.is-invalid": "this.invalid", "class.is-disabled": "this.disabled" } }, queries: [{ propertyName: "formModel", first: true, predicate: FormControlDirective, descendants: true }], ngImport: i0, template: "<ng-content></ng-content>\r\n<i id=\"{{id + '_icon'}}\" class=\"ec-form-control-icon ec-icon {{icon}}\"></i>\r\n<i id=\"{{id + '_loading'}}\" class=\"ec-form-control-icon ec-icon icon-loading\"></i>\r\n<i id=\"{{id + '_required'}}\" class=\"ec-form-control-icon ec-icon icon-required\"></i>\r\n<i id=\"{{id + '_invalid'}}\" class=\"ec-form-control-icon ec-icon icon-invalid\"></i>\r\n<i id=\"{{id + '_clear'}}\" *ngIf=\"showClear\" class=\"ec-form-control-clear ec-icon icon-cancel\" (click)=\"clear()\"></i>\r\n<i id=\"{{id + '_action'}}\" *ngIf=\"actionIcon\" class=\"ec-form-control-action ec-icon {{actionIcon}}\" (click)=\"actionClicked.emit()\"></i>\r\n<div class=\"ec-focus-ring\"></div>", styles: ["ec-form-control{background-color:var(--ec-form-control-background-color);background-clip:padding-box;border:1px solid var(--ec-form-control-border-color);border-radius:var(--ec-border-radius);padding:0 .5rem;position:relative;color:var(--ec-form-control-color);display:flex;font-size:var(--ec-form-control-font-size);min-height:2rem;width:100%}ec-form-control>input,ec-form-control>select,ec-form-control>textarea{color:inherit;flex:1 1;min-width:0;border:0;background-color:transparent;order:2}ec-form-control>input::selection,ec-form-control>select::selection,ec-form-control>textarea::selection{background-color:var(--ec-form-control-background-color-selection);color:var(--ec-form-control-color-selection)}ec-form-control>input::-webkit-input-placeholder,ec-form-control>select::-webkit-input-placeholder,ec-form-control>textarea::-webkit-input-placeholder{color:var(--ec-form-control-color-placeholder)}ec-form-control>input::-moz-placeholder,ec-form-control>select::-moz-placeholder,ec-form-control>textarea::-moz-placeholder{color:var(--ec-form-control-color-placeholder);opacity:1}ec-form-control>input:-ms-input-placeholder,ec-form-control>select:-ms-input-placeholder,ec-form-control>textarea:-ms-input-placeholder{color:var(--ec-form-control-color-placeholder)}ec-form-control>input:-moz-placeholder,ec-form-control>select:-moz-placeholder,ec-form-control>textarea:-moz-placeholder{color:var(--ec-form-control-color-placeholder);opacity:1}ec-form-control>input:focus,ec-form-control>select:focus,ec-form-control>textarea:focus{outline:none}ec-form-control>input:focus~.ec-focus-ring,ec-form-control>select:focus~.ec-focus-ring,ec-form-control>textarea:focus~.ec-focus-ring{display:block}ec-form-control>input,ec-form-control>textarea,ec-form-control>select,ec-form-control .ec-form-control-prefix,ec-form-control .ec-form-control-suffix{padding:calc((1.875rem - (var(--ec-font-size-body) * 1.25)) / 2) 0;line-height:1.25;font-size:inherit}ec-form-control>textarea{resize:none;padding:.3125rem 0}ec-form-control .ec-form-control-icon{margin-top:.4375rem;margin-right:.25rem;order:1}ec-form-control .ec-form-control-icon:not([class*=icon-]){display:none}ec-form-control .icon-required,ec-form-control .icon-invalid{color:var(--ec-form-control-border-color-invalid)}ec-form-control .ec-form-control-clear,ec-form-control .ec-form-control-action{cursor:pointer;flex:none;height:1.875rem;width:2rem;order:3}ec-form-control .ec-form-control-clear:last-of-type,ec-form-control .ec-form-control-action:last-of-type{margin-right:-.5rem}ec-form-control .ec-form-control-clear:hover,ec-form-control .ec-form-control-action:hover{background-color:var(--ec-background-color-hover)}ec-form-control .ec-form-control-clear{width:1.5rem}ec-form-control .ec-form-control-prefix,ec-form-control .ec-form-control-suffix{color:var(--ec-color-secondary-dark);flex:none;cursor:default}ec-form-control .ec-form-control-prefix{margin-right:.125rem;order:2}ec-form-control .ec-form-control-suffix{margin-left:.125rem;order:3}ec-form-control .ec-focus-ring{position:absolute;inset:-1px;border:.125rem solid var(--ec-form-control-border-color-focus);pointer-events:none;display:none;border-radius:var(--ec-form-control-border-radius);z-index:1}ec-form-control.is-pending .icon-invalid,ec-form-control.is-pending .icon-required{display:none}ec-form-control.is-invalid{border-color:var(--ec-form-control-border-color-invalid);background-color:var(--ec-form-control-background-color-invalid)}ec-form-control.is-invalid .icon-required{display:none}ec-form-control.is-empty .ec-form-control-clear{display:none}ec-form-control.is-required.is-empty .ec-form-control-icon:first-of-type{display:none}ec-form-control:not(.is-pending) .icon-loading{display:none}ec-form-control:not(.is-required) .icon-required,ec-form-control:not(.is-empty) .icon-required{display:none}ec-form-control:not(.is-invalid) .icon-invalid{display:none}ec-form-control.is-readonly,ec-form-control.is-disabled{background-color:var(--ec-form-control-background-color-disabled)}ec-form-control.is-readonly .icon-loading,ec-form-control.is-readonly .icon-invalid,ec-form-control.is-readonly .icon-required,ec-form-control.is-readonly .ec-form-control-clear,ec-form-control.is-disabled .icon-loading,ec-form-control.is-disabled .icon-invalid,ec-form-control.is-disabled .icon-required,ec-form-control.is-disabled .ec-form-control-clear{display:none}ec-form-control.is-readonly{border-color:var(--ec-form-control-border-color-readonly);color:var(--ec-form-control-color-readonly)}ec-form-control.is-readonly .ec-form-control-action{display:none}ec-form-control.is-disabled:not(.is-readonly){color:var(--ec-form-control-color-disabled);opacity:.6}ec-form-control.is-disabled:not(.is-readonly) .ec-form-control-prefix,ec-form-control.is-disabled:not(.is-readonly) .ec-form-control-suffix{color:inherit}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], encapsulation: i0.ViewEncapsulation.None });
3485
3485
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: FormControlComponent, decorators: [{
3486
3486
  type: Component,
3487
- args: [{ selector: 'ec-form-control', encapsulation: ViewEncapsulation.None, template: "<ng-content></ng-content>\r\n<i id=\"{{id + '_icon'}}\" class=\"ec-form-control-icon ec-icon {{icon}}\"></i>\r\n<i id=\"{{id + '_loading'}}\" class=\"ec-form-control-icon ec-icon icon-loading\"></i>\r\n<i id=\"{{id + '_required'}}\" class=\"ec-form-control-icon ec-icon icon-required\"></i>\r\n<i id=\"{{id + '_invalid'}}\" class=\"ec-form-control-icon ec-icon icon-invalid\"></i>\r\n<i id=\"{{id + '_clear'}}\" *ngIf=\"showClear\" class=\"ec-form-control-clear ec-icon icon-cancel\" (click)=\"clear()\"></i>\r\n<i id=\"{{id + '_action'}}\" *ngIf=\"actionIcon\" class=\"ec-form-control-action ec-icon {{actionIcon}}\" (click)=\"actionClicked.emit()\"></i>\r\n<div class=\"ec-focus-ring\"></div>", styles: ["ec-form-control{background-color:var(--ec-form-control-background-color);background-clip:padding-box;border:1px solid var(--ec-form-control-border-color);border-radius:var(--ec-border-radius);padding:0 .5rem;position:relative;color:var(--ec-form-control-color);display:flex;font-size:var(--ec-form-control-font-size);min-height:2rem;width:100%}ec-form-control>input,ec-form-control>select,ec-form-control>textarea{color:inherit;flex:1 1;min-width:0;border:0;background-color:transparent;order:2}ec-form-control>input::selection,ec-form-control>select::selection,ec-form-control>textarea::selection{background-color:var(--ec-form-control-background-color-selection);color:var(--ec-form-control-color-selection)}ec-form-control>input::-webkit-input-placeholder,ec-form-control>select::-webkit-input-placeholder,ec-form-control>textarea::-webkit-input-placeholder{color:var(--ec-form-control-color-placeholder)}ec-form-control>input::-moz-placeholder,ec-form-control>select::-moz-placeholder,ec-form-control>textarea::-moz-placeholder{color:var(--ec-form-control-color-placeholder);opacity:1}ec-form-control>input:-ms-input-placeholder,ec-form-control>select:-ms-input-placeholder,ec-form-control>textarea:-ms-input-placeholder{color:var(--ec-form-control-color-placeholder)}ec-form-control>input:-moz-placeholder,ec-form-control>select:-moz-placeholder,ec-form-control>textarea:-moz-placeholder{color:var(--ec-form-control-color-placeholder);opacity:1}ec-form-control>input:focus,ec-form-control>select:focus,ec-form-control>textarea:focus{outline:none}ec-form-control>input:focus~.ec-focus-ring,ec-form-control>select:focus~.ec-focus-ring,ec-form-control>textarea:focus~.ec-focus-ring{display:block}ec-form-control>input,ec-form-control>textarea,ec-form-control>select,ec-form-control .ec-form-control-prefix,ec-form-control .ec-form-control-suffix{padding:calc((1.875rem - var(--ec-font-size-body) * 1.25) / 2) 0;line-height:1.25;font-size:inherit}ec-form-control>textarea{resize:none;padding:.3125rem 0}ec-form-control .ec-form-control-icon{margin-top:.4375rem;margin-right:.25rem;order:1}ec-form-control .ec-form-control-icon:not([class*=icon-]){display:none}ec-form-control .icon-required,ec-form-control .icon-invalid{color:var(--ec-form-control-border-color-invalid)}ec-form-control .ec-form-control-clear,ec-form-control .ec-form-control-action{cursor:pointer;flex:none;height:1.875rem;width:2rem;order:3}ec-form-control .ec-form-control-clear:last-of-type,ec-form-control .ec-form-control-action:last-of-type{margin-right:-.5rem}ec-form-control .ec-form-control-clear:hover,ec-form-control .ec-form-control-action:hover{background-color:var(--ec-background-color-hover)}ec-form-control .ec-form-control-clear{width:1.5rem}ec-form-control .ec-form-control-prefix,ec-form-control .ec-form-control-suffix{color:var(--ec-color-secondary-dark);flex:none;cursor:default}ec-form-control .ec-form-control-prefix{margin-right:.125rem;order:2}ec-form-control .ec-form-control-suffix{margin-left:.125rem;order:3}ec-form-control .ec-focus-ring{position:absolute;inset:-1px;border:.125rem solid var(--ec-form-control-border-color-focus);pointer-events:none;display:none;border-radius:var(--ec-form-control-border-radius);z-index:1}ec-form-control.is-pending .icon-invalid,ec-form-control.is-pending .icon-required{display:none}ec-form-control.is-invalid{border-color:var(--ec-form-control-border-color-invalid);background-color:var(--ec-form-control-background-color-invalid)}ec-form-control.is-invalid .icon-required{display:none}ec-form-control.is-empty .ec-form-control-clear{display:none}ec-form-control.is-required.is-empty .ec-form-control-icon:first-of-type{display:none}ec-form-control:not(.is-pending) .icon-loading{display:none}ec-form-control:not(.is-required) .icon-required,ec-form-control:not(.is-empty) .icon-required{display:none}ec-form-control:not(.is-invalid) .icon-invalid{display:none}ec-form-control.is-readonly,ec-form-control.is-disabled{background-color:var(--ec-form-control-background-color-disabled)}ec-form-control.is-readonly .icon-loading,ec-form-control.is-readonly .icon-invalid,ec-form-control.is-readonly .icon-required,ec-form-control.is-readonly .ec-form-control-clear,ec-form-control.is-disabled .icon-loading,ec-form-control.is-disabled .icon-invalid,ec-form-control.is-disabled .icon-required,ec-form-control.is-disabled .ec-form-control-clear{display:none}ec-form-control.is-readonly{border-color:var(--ec-form-control-border-color-readonly);color:var(--ec-form-control-color-readonly)}ec-form-control.is-readonly .ec-form-control-action{display:none}ec-form-control.is-disabled:not(.is-readonly){color:var(--ec-form-control-color-disabled);opacity:.6}ec-form-control.is-disabled:not(.is-readonly) .ec-form-control-prefix,ec-form-control.is-disabled:not(.is-readonly) .ec-form-control-suffix{color:inherit}\n"] }]
3487
+ args: [{ selector: 'ec-form-control', encapsulation: ViewEncapsulation.None, template: "<ng-content></ng-content>\r\n<i id=\"{{id + '_icon'}}\" class=\"ec-form-control-icon ec-icon {{icon}}\"></i>\r\n<i id=\"{{id + '_loading'}}\" class=\"ec-form-control-icon ec-icon icon-loading\"></i>\r\n<i id=\"{{id + '_required'}}\" class=\"ec-form-control-icon ec-icon icon-required\"></i>\r\n<i id=\"{{id + '_invalid'}}\" class=\"ec-form-control-icon ec-icon icon-invalid\"></i>\r\n<i id=\"{{id + '_clear'}}\" *ngIf=\"showClear\" class=\"ec-form-control-clear ec-icon icon-cancel\" (click)=\"clear()\"></i>\r\n<i id=\"{{id + '_action'}}\" *ngIf=\"actionIcon\" class=\"ec-form-control-action ec-icon {{actionIcon}}\" (click)=\"actionClicked.emit()\"></i>\r\n<div class=\"ec-focus-ring\"></div>", styles: ["ec-form-control{background-color:var(--ec-form-control-background-color);background-clip:padding-box;border:1px solid var(--ec-form-control-border-color);border-radius:var(--ec-border-radius);padding:0 .5rem;position:relative;color:var(--ec-form-control-color);display:flex;font-size:var(--ec-form-control-font-size);min-height:2rem;width:100%}ec-form-control>input,ec-form-control>select,ec-form-control>textarea{color:inherit;flex:1 1;min-width:0;border:0;background-color:transparent;order:2}ec-form-control>input::selection,ec-form-control>select::selection,ec-form-control>textarea::selection{background-color:var(--ec-form-control-background-color-selection);color:var(--ec-form-control-color-selection)}ec-form-control>input::-webkit-input-placeholder,ec-form-control>select::-webkit-input-placeholder,ec-form-control>textarea::-webkit-input-placeholder{color:var(--ec-form-control-color-placeholder)}ec-form-control>input::-moz-placeholder,ec-form-control>select::-moz-placeholder,ec-form-control>textarea::-moz-placeholder{color:var(--ec-form-control-color-placeholder);opacity:1}ec-form-control>input:-ms-input-placeholder,ec-form-control>select:-ms-input-placeholder,ec-form-control>textarea:-ms-input-placeholder{color:var(--ec-form-control-color-placeholder)}ec-form-control>input:-moz-placeholder,ec-form-control>select:-moz-placeholder,ec-form-control>textarea:-moz-placeholder{color:var(--ec-form-control-color-placeholder);opacity:1}ec-form-control>input:focus,ec-form-control>select:focus,ec-form-control>textarea:focus{outline:none}ec-form-control>input:focus~.ec-focus-ring,ec-form-control>select:focus~.ec-focus-ring,ec-form-control>textarea:focus~.ec-focus-ring{display:block}ec-form-control>input,ec-form-control>textarea,ec-form-control>select,ec-form-control .ec-form-control-prefix,ec-form-control .ec-form-control-suffix{padding:calc((1.875rem - (var(--ec-font-size-body) * 1.25)) / 2) 0;line-height:1.25;font-size:inherit}ec-form-control>textarea{resize:none;padding:.3125rem 0}ec-form-control .ec-form-control-icon{margin-top:.4375rem;margin-right:.25rem;order:1}ec-form-control .ec-form-control-icon:not([class*=icon-]){display:none}ec-form-control .icon-required,ec-form-control .icon-invalid{color:var(--ec-form-control-border-color-invalid)}ec-form-control .ec-form-control-clear,ec-form-control .ec-form-control-action{cursor:pointer;flex:none;height:1.875rem;width:2rem;order:3}ec-form-control .ec-form-control-clear:last-of-type,ec-form-control .ec-form-control-action:last-of-type{margin-right:-.5rem}ec-form-control .ec-form-control-clear:hover,ec-form-control .ec-form-control-action:hover{background-color:var(--ec-background-color-hover)}ec-form-control .ec-form-control-clear{width:1.5rem}ec-form-control .ec-form-control-prefix,ec-form-control .ec-form-control-suffix{color:var(--ec-color-secondary-dark);flex:none;cursor:default}ec-form-control .ec-form-control-prefix{margin-right:.125rem;order:2}ec-form-control .ec-form-control-suffix{margin-left:.125rem;order:3}ec-form-control .ec-focus-ring{position:absolute;inset:-1px;border:.125rem solid var(--ec-form-control-border-color-focus);pointer-events:none;display:none;border-radius:var(--ec-form-control-border-radius);z-index:1}ec-form-control.is-pending .icon-invalid,ec-form-control.is-pending .icon-required{display:none}ec-form-control.is-invalid{border-color:var(--ec-form-control-border-color-invalid);background-color:var(--ec-form-control-background-color-invalid)}ec-form-control.is-invalid .icon-required{display:none}ec-form-control.is-empty .ec-form-control-clear{display:none}ec-form-control.is-required.is-empty .ec-form-control-icon:first-of-type{display:none}ec-form-control:not(.is-pending) .icon-loading{display:none}ec-form-control:not(.is-required) .icon-required,ec-form-control:not(.is-empty) .icon-required{display:none}ec-form-control:not(.is-invalid) .icon-invalid{display:none}ec-form-control.is-readonly,ec-form-control.is-disabled{background-color:var(--ec-form-control-background-color-disabled)}ec-form-control.is-readonly .icon-loading,ec-form-control.is-readonly .icon-invalid,ec-form-control.is-readonly .icon-required,ec-form-control.is-readonly .ec-form-control-clear,ec-form-control.is-disabled .icon-loading,ec-form-control.is-disabled .icon-invalid,ec-form-control.is-disabled .icon-required,ec-form-control.is-disabled .ec-form-control-clear{display:none}ec-form-control.is-readonly{border-color:var(--ec-form-control-border-color-readonly);color:var(--ec-form-control-color-readonly)}ec-form-control.is-readonly .ec-form-control-action{display:none}ec-form-control.is-disabled:not(.is-readonly){color:var(--ec-form-control-color-disabled);opacity:.6}ec-form-control.is-disabled:not(.is-readonly) .ec-form-control-prefix,ec-form-control.is-disabled:not(.is-readonly) .ec-form-control-suffix{color:inherit}\n"] }]
3488
3488
  }], ctorParameters: function () { return [{ type: i0.ElementRef }]; }, propDecorators: { formModel: [{
3489
3489
  type: ContentChild,
3490
3490
  args: [FormControlDirective]
@@ -4800,10 +4800,10 @@ class SelectComponent extends FormControlBase {
4800
4800
  }
4801
4801
  }
4802
4802
  SelectComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: SelectComponent, deps: [{ token: ValidationMessageService }, { token: FormGroupHelper }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
4803
- SelectComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: SelectComponent, selector: "ec-select", inputs: { placeholder: "placeholder", options: "options", autoDefault: "autoDefault" }, usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<div class=\"control\"\r\n [ngClass]=\"{'is-readonly': readonly, 'is-disabled': formModel.disabled}\">\r\n <label for=\"{{id}}_select\"\r\n *ngIf=\"label\"\r\n ngPreserveWhitespaces>{{label|translate}}</label>\r\n <select [attr.id]=\"inputId\"\r\n tabindex=\"{{tabindex}}\"\r\n [formControl]=\"formModel\"\r\n [attr.required]=\"required\"\r\n [attr.cdkFocusInitial]=\"autofocus || null\">\r\n <option *ngIf=\"!required\"\r\n [ngValue]=\"null\">{{placeholder}}</option>\r\n <option *ngFor=\"let option of options\"\r\n [ngValue]=\"option.value\">{{option.label}}</option>\r\n </select>\r\n <i class=\"ec-icon icon-caret-down\"></i>\r\n</div>", styles: [":host{color:var(--ec-form-control-color);font-size:var(--ec-form-control-font-size);display:block;margin-bottom:1rem;width:100%}:host :host-context(.form-condensed){margin-bottom:.5rem}:host .control{width:100%;display:flex;flex-direction:column}:host .control.control-label-bottom{flex-direction:column-reverse}:host .control.control-label-left{flex-direction:row}:host .control.control-label-left label{margin-right:.25rem}:host .control.control-label-right{flex-direction:row-reverse}:host .control.control-label-right label{margin-left:.25rem}:host .control.control-label-left,:host .control.control-label-right{align-items:center}:host .control.control-label-left label,:host .control.control-label-right label{flex:1 1;margin-top:0;margin-bottom:0}:host .control.control-label-left .control-input,:host .control.control-label-right .control-input{flex:2 2}:host .control.is-readonly input,:host .control.is-readonly select,:host .control.is-readonly textarea{border-color:var(--ec-form-control-border-color-readonly);background-color:var(--ec-form-control-background-color-readonly);background-clip:border-box;background-image:none;color:var(--ec-form-control-color-readonly);opacity:1;-webkit-user-select:none;user-select:none;pointer-events:none;overflow:hidden;white-space:nowrap}:host .control.invalid .textbox-group-input ::ng-deep .control input.ng-invalid,:host .control.invalid .textbox-group-input ::ng-deep .control input.ng-valid{background-color:var(--ec-form-control-background-color-invalid);border-color:var(--ec-form-control-border-color-invalid);background-repeat:no-repeat;background-position:.5rem center;background-size:1rem,1rem;padding-left:1.75rem;background-image:none}:host .control.invalid .textbox-group-input ::ng-deep .control input.ng-invalid:focus,:host .control.invalid .textbox-group-input ::ng-deep .control input.ng-valid:focus{border-color:var(--ec-form-control-background-color-invalid)}:host .control.invalid .textbox-group-input ::ng-deep .control input.ng-invalid~.icon-invalid,:host .control.invalid .textbox-group-input ::ng-deep .control input.ng-valid~.icon-invalid{display:inline-flex;position:absolute;left:.5rem;top:.5rem;z-index:1}:host .control.invalid .textbox-group-input ::ng-deep .control input.ng-invalid~.icon-required,:host .control.invalid .textbox-group-input ::ng-deep .control input.ng-valid~.icon-required{display:none}:host .control.invalid:not(.open) .textbox-group-btn-right ::ng-deep button{background-color:var(--ec-form-control-background-color-invalid)}:host .control.invalid:not(.open) .textbox-group-btn-right ::ng-deep button:not(:focus){border-color:var(--ec-form-control-border-color-invalid)}:host .textbox-group{display:flex;position:relative}:host textarea:focus,:host input:focus,:host select:focus{outline:none}:host .control{position:relative}:host label{color:var(--ec-form-control-label-color, var(--ec-color-secondary-dark));display:block;font-size:var(--ec-font-size-label);line-height:1;margin:calc(var(--ec-font-size-label) / 2) 0}:host select{appearance:none;background-color:var(--ec-form-control-background-color);border:1px solid var(--ec-form-control-border-color);border-radius:var(--ec-border-radius);background-image:none;background-clip:padding-box;width:100%;line-height:1.25rem;padding:.3125rem 1.5rem .3125rem .5rem;height:2rem}:host select::selection{background-color:var(--ec-form-control-background-color-selection);color:var(--ec-form-control-color-selection)}:host select::-webkit-input-placeholder{color:var(--ec-form-control-color-placeholder)}:host select::-moz-placeholder{color:var(--ec-form-control-color-placeholder);opacity:1}:host select:-ms-input-placeholder{color:var(--ec-form-control-color-placeholder)}:host select:-moz-placeholder{color:var(--ec-form-control-color-placeholder);opacity:1}:host select~.icon-required,:host select~.icon-invalid{color:var(--ec-form-control-border-color-invalid)}:host select:required.is-empty{background-image:none;background-repeat:no-repeat;background-position:.5rem center;background-size:1rem,1rem;padding-left:1.75rem}:host select.ng-invalid.ng-touched{background-color:var(--ec-form-control-background-color-invalid);border-color:var(--ec-form-control-border-color-invalid);background-image:none;background-repeat:no-repeat;background-position:.5rem center;background-size:1rem,1rem;padding-left:1.75rem}:host select.ng-invalid.ng-touched:focus{border-color:var(--ec-form-control-background-color-invalid)}:host select.is-pending.ng-valid,:host select.is-pending.ng-invalid,:host select.is-pending.ng-pending{background-image:\"\";background-repeat:no-repeat;background-position:.5rem center;background-size:1rem,1rem;padding-left:1.75rem}:host select:focus,:host select:focus.is-empty{border-color:var(--ec-form-control-border-color-focus);box-shadow:var(--ec-form-control-box-shadow-focus);position:relative;z-index:1}:host select:disabled{background-color:var(--ec-form-control-background-color-disabled);border-color:var(--ec-form-control-border-color-disabled);color:var(--ec-form-control-color-disabled);opacity:var(--ec-form-control-opacity-disabled)}:host select:disabled:required,:host select:disabled:required.is-empty{background-image:none;padding-left:.5rem;background-color:var(--ec-form-control-background-color-disabled);border-color:var(--ec-form-control-border-color-disabled)}:host select:disabled:required+.icon-required,:host select:disabled:required.is-empty+.icon-required{display:none}:host select.is-uppercase:not(.is-empty){text-transform:uppercase}:host select:focus{position:static}:host .icon-caret-down{position:absolute;right:.5rem;bottom:.5625rem;z-index:1;pointer-events:none}:host select:disabled~.icon-caret-down{opacity:var(--ec-form-control-opacity-disabled)}:host .is-readonly .icon-caret-down{display:none}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i4.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i4.SelectControlValueAccessor, selector: "select:not([multiple])[formControlName],select:not([multiple])[formControl],select:not([multiple])[ngModel]", inputs: ["compareWith"] }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i4.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "pipe", type: i2.TranslatePipe, name: "translate" }] });
4803
+ SelectComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: SelectComponent, selector: "ec-select", inputs: { placeholder: "placeholder", options: "options", autoDefault: "autoDefault" }, usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<div class=\"control\"\r\n [ngClass]=\"{'is-readonly': readonly, 'is-disabled': formModel.disabled}\">\r\n <label for=\"{{id}}_select\"\r\n *ngIf=\"label\"\r\n ngPreserveWhitespaces>{{label|translate}}</label>\r\n <select [attr.id]=\"inputId\"\r\n tabindex=\"{{tabindex}}\"\r\n [formControl]=\"formModel\"\r\n [attr.required]=\"required\"\r\n [attr.cdkFocusInitial]=\"autofocus || null\">\r\n <option *ngIf=\"!required\"\r\n [ngValue]=\"null\">{{placeholder}}</option>\r\n <option *ngFor=\"let option of options\"\r\n [ngValue]=\"option.value\">{{option.label}}</option>\r\n </select>\r\n <i class=\"ec-icon icon-caret-down\"></i>\r\n</div>", styles: [":host{color:var(--ec-form-control-color);font-size:var(--ec-form-control-font-size);display:block;margin-bottom:1rem;width:100%}:host :host-context(.form-condensed){margin-bottom:.5rem}:host .control{width:100%;display:flex;flex-direction:column}:host .control.control-label-bottom{flex-direction:column-reverse}:host .control.control-label-left{flex-direction:row}:host .control.control-label-left label{margin-right:.25rem}:host .control.control-label-right{flex-direction:row-reverse}:host .control.control-label-right label{margin-left:.25rem}:host .control.control-label-left,:host .control.control-label-right{align-items:center}:host .control.control-label-left label,:host .control.control-label-right label{flex:1 1;margin-top:0;margin-bottom:0}:host .control.control-label-left .control-input,:host .control.control-label-right .control-input{flex:2 2}:host .control.is-readonly input,:host .control.is-readonly select,:host .control.is-readonly textarea{border-color:var(--ec-form-control-border-color-readonly);background-color:var(--ec-form-control-background-color-readonly);background-clip:border-box;background-image:none;color:var(--ec-form-control-color-readonly);opacity:1;-webkit-user-select:none;user-select:none;pointer-events:none;overflow:hidden;white-space:nowrap}:host .control.invalid .textbox-group-input ::ng-deep .control input.ng-invalid,:host .control.invalid .textbox-group-input ::ng-deep .control input.ng-valid{background-color:var(--ec-form-control-background-color-invalid);border-color:var(--ec-form-control-border-color-invalid);background-repeat:no-repeat;background-position:.5rem center;background-size:1rem,1rem;padding-left:1.75rem;background-image:none}:host .control.invalid .textbox-group-input ::ng-deep .control input.ng-invalid:focus,:host .control.invalid .textbox-group-input ::ng-deep .control input.ng-valid:focus{border-color:var(--ec-form-control-background-color-invalid)}:host .control.invalid .textbox-group-input ::ng-deep .control input.ng-invalid~.icon-invalid,:host .control.invalid .textbox-group-input ::ng-deep .control input.ng-valid~.icon-invalid{display:inline-flex;position:absolute;left:.5rem;top:.5rem;z-index:1}:host .control.invalid .textbox-group-input ::ng-deep .control input.ng-invalid~.icon-required,:host .control.invalid .textbox-group-input ::ng-deep .control input.ng-valid~.icon-required{display:none}:host .control.invalid:not(.open) .textbox-group-btn-right ::ng-deep button{background-color:var(--ec-form-control-background-color-invalid)}:host .control.invalid:not(.open) .textbox-group-btn-right ::ng-deep button:not(:focus){border-color:var(--ec-form-control-border-color-invalid)}:host .textbox-group{display:flex;position:relative}:host textarea:focus,:host input:focus,:host select:focus{outline:none}:host .control{position:relative}:host label{color:var(--ec-form-control-label-color, var(--ec-color-secondary-dark));display:block;font-size:var(--ec-font-size-label);line-height:1;margin:calc(var(--ec-font-size-label) / 2) 0}:host select{-webkit-appearance:none;appearance:none;background-color:var(--ec-form-control-background-color);border:1px solid var(--ec-form-control-border-color);border-radius:var(--ec-border-radius);background-image:none;background-clip:padding-box;width:100%;line-height:1.25rem;padding:.3125rem 1.5rem .3125rem .5rem;height:2rem}:host select::selection{background-color:var(--ec-form-control-background-color-selection);color:var(--ec-form-control-color-selection)}:host select::-webkit-input-placeholder{color:var(--ec-form-control-color-placeholder)}:host select::-moz-placeholder{color:var(--ec-form-control-color-placeholder);opacity:1}:host select:-ms-input-placeholder{color:var(--ec-form-control-color-placeholder)}:host select:-moz-placeholder{color:var(--ec-form-control-color-placeholder);opacity:1}:host select~.icon-required,:host select~.icon-invalid{color:var(--ec-form-control-border-color-invalid)}:host select:required.is-empty{background-image:none;background-repeat:no-repeat;background-position:.5rem center;background-size:1rem,1rem;padding-left:1.75rem}:host select.ng-invalid.ng-touched{background-color:var(--ec-form-control-background-color-invalid);border-color:var(--ec-form-control-border-color-invalid);background-image:none;background-repeat:no-repeat;background-position:.5rem center;background-size:1rem,1rem;padding-left:1.75rem}:host select.ng-invalid.ng-touched:focus{border-color:var(--ec-form-control-background-color-invalid)}:host select.is-pending.ng-valid,:host select.is-pending.ng-invalid,:host select.is-pending.ng-pending{background-image:\"\";background-repeat:no-repeat;background-position:.5rem center;background-size:1rem,1rem;padding-left:1.75rem}:host select:focus,:host select:focus.is-empty{border-color:var(--ec-form-control-border-color-focus);box-shadow:var(--ec-form-control-box-shadow-focus);position:relative;z-index:1}:host select:disabled{background-color:var(--ec-form-control-background-color-disabled);border-color:var(--ec-form-control-border-color-disabled);color:var(--ec-form-control-color-disabled);opacity:var(--ec-form-control-opacity-disabled)}:host select:disabled:required,:host select:disabled:required.is-empty{background-image:none;padding-left:.5rem;background-color:var(--ec-form-control-background-color-disabled);border-color:var(--ec-form-control-border-color-disabled)}:host select:disabled:required+.icon-required,:host select:disabled:required.is-empty+.icon-required{display:none}:host select.is-uppercase:not(.is-empty){text-transform:uppercase}:host select:focus{position:static}:host .icon-caret-down{position:absolute;right:.5rem;bottom:.5625rem;z-index:1;pointer-events:none}:host select:disabled~.icon-caret-down{opacity:var(--ec-form-control-opacity-disabled)}:host .is-readonly .icon-caret-down{display:none}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i4.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i4.SelectControlValueAccessor, selector: "select:not([multiple])[formControlName],select:not([multiple])[formControl],select:not([multiple])[ngModel]", inputs: ["compareWith"] }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i4.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "pipe", type: i2.TranslatePipe, name: "translate" }] });
4804
4804
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: SelectComponent, decorators: [{
4805
4805
  type: Component,
4806
- args: [{ selector: 'ec-select', template: "<div class=\"control\"\r\n [ngClass]=\"{'is-readonly': readonly, 'is-disabled': formModel.disabled}\">\r\n <label for=\"{{id}}_select\"\r\n *ngIf=\"label\"\r\n ngPreserveWhitespaces>{{label|translate}}</label>\r\n <select [attr.id]=\"inputId\"\r\n tabindex=\"{{tabindex}}\"\r\n [formControl]=\"formModel\"\r\n [attr.required]=\"required\"\r\n [attr.cdkFocusInitial]=\"autofocus || null\">\r\n <option *ngIf=\"!required\"\r\n [ngValue]=\"null\">{{placeholder}}</option>\r\n <option *ngFor=\"let option of options\"\r\n [ngValue]=\"option.value\">{{option.label}}</option>\r\n </select>\r\n <i class=\"ec-icon icon-caret-down\"></i>\r\n</div>", styles: [":host{color:var(--ec-form-control-color);font-size:var(--ec-form-control-font-size);display:block;margin-bottom:1rem;width:100%}:host :host-context(.form-condensed){margin-bottom:.5rem}:host .control{width:100%;display:flex;flex-direction:column}:host .control.control-label-bottom{flex-direction:column-reverse}:host .control.control-label-left{flex-direction:row}:host .control.control-label-left label{margin-right:.25rem}:host .control.control-label-right{flex-direction:row-reverse}:host .control.control-label-right label{margin-left:.25rem}:host .control.control-label-left,:host .control.control-label-right{align-items:center}:host .control.control-label-left label,:host .control.control-label-right label{flex:1 1;margin-top:0;margin-bottom:0}:host .control.control-label-left .control-input,:host .control.control-label-right .control-input{flex:2 2}:host .control.is-readonly input,:host .control.is-readonly select,:host .control.is-readonly textarea{border-color:var(--ec-form-control-border-color-readonly);background-color:var(--ec-form-control-background-color-readonly);background-clip:border-box;background-image:none;color:var(--ec-form-control-color-readonly);opacity:1;-webkit-user-select:none;user-select:none;pointer-events:none;overflow:hidden;white-space:nowrap}:host .control.invalid .textbox-group-input ::ng-deep .control input.ng-invalid,:host .control.invalid .textbox-group-input ::ng-deep .control input.ng-valid{background-color:var(--ec-form-control-background-color-invalid);border-color:var(--ec-form-control-border-color-invalid);background-repeat:no-repeat;background-position:.5rem center;background-size:1rem,1rem;padding-left:1.75rem;background-image:none}:host .control.invalid .textbox-group-input ::ng-deep .control input.ng-invalid:focus,:host .control.invalid .textbox-group-input ::ng-deep .control input.ng-valid:focus{border-color:var(--ec-form-control-background-color-invalid)}:host .control.invalid .textbox-group-input ::ng-deep .control input.ng-invalid~.icon-invalid,:host .control.invalid .textbox-group-input ::ng-deep .control input.ng-valid~.icon-invalid{display:inline-flex;position:absolute;left:.5rem;top:.5rem;z-index:1}:host .control.invalid .textbox-group-input ::ng-deep .control input.ng-invalid~.icon-required,:host .control.invalid .textbox-group-input ::ng-deep .control input.ng-valid~.icon-required{display:none}:host .control.invalid:not(.open) .textbox-group-btn-right ::ng-deep button{background-color:var(--ec-form-control-background-color-invalid)}:host .control.invalid:not(.open) .textbox-group-btn-right ::ng-deep button:not(:focus){border-color:var(--ec-form-control-border-color-invalid)}:host .textbox-group{display:flex;position:relative}:host textarea:focus,:host input:focus,:host select:focus{outline:none}:host .control{position:relative}:host label{color:var(--ec-form-control-label-color, var(--ec-color-secondary-dark));display:block;font-size:var(--ec-font-size-label);line-height:1;margin:calc(var(--ec-font-size-label) / 2) 0}:host select{appearance:none;background-color:var(--ec-form-control-background-color);border:1px solid var(--ec-form-control-border-color);border-radius:var(--ec-border-radius);background-image:none;background-clip:padding-box;width:100%;line-height:1.25rem;padding:.3125rem 1.5rem .3125rem .5rem;height:2rem}:host select::selection{background-color:var(--ec-form-control-background-color-selection);color:var(--ec-form-control-color-selection)}:host select::-webkit-input-placeholder{color:var(--ec-form-control-color-placeholder)}:host select::-moz-placeholder{color:var(--ec-form-control-color-placeholder);opacity:1}:host select:-ms-input-placeholder{color:var(--ec-form-control-color-placeholder)}:host select:-moz-placeholder{color:var(--ec-form-control-color-placeholder);opacity:1}:host select~.icon-required,:host select~.icon-invalid{color:var(--ec-form-control-border-color-invalid)}:host select:required.is-empty{background-image:none;background-repeat:no-repeat;background-position:.5rem center;background-size:1rem,1rem;padding-left:1.75rem}:host select.ng-invalid.ng-touched{background-color:var(--ec-form-control-background-color-invalid);border-color:var(--ec-form-control-border-color-invalid);background-image:none;background-repeat:no-repeat;background-position:.5rem center;background-size:1rem,1rem;padding-left:1.75rem}:host select.ng-invalid.ng-touched:focus{border-color:var(--ec-form-control-background-color-invalid)}:host select.is-pending.ng-valid,:host select.is-pending.ng-invalid,:host select.is-pending.ng-pending{background-image:\"\";background-repeat:no-repeat;background-position:.5rem center;background-size:1rem,1rem;padding-left:1.75rem}:host select:focus,:host select:focus.is-empty{border-color:var(--ec-form-control-border-color-focus);box-shadow:var(--ec-form-control-box-shadow-focus);position:relative;z-index:1}:host select:disabled{background-color:var(--ec-form-control-background-color-disabled);border-color:var(--ec-form-control-border-color-disabled);color:var(--ec-form-control-color-disabled);opacity:var(--ec-form-control-opacity-disabled)}:host select:disabled:required,:host select:disabled:required.is-empty{background-image:none;padding-left:.5rem;background-color:var(--ec-form-control-background-color-disabled);border-color:var(--ec-form-control-border-color-disabled)}:host select:disabled:required+.icon-required,:host select:disabled:required.is-empty+.icon-required{display:none}:host select.is-uppercase:not(.is-empty){text-transform:uppercase}:host select:focus{position:static}:host .icon-caret-down{position:absolute;right:.5rem;bottom:.5625rem;z-index:1;pointer-events:none}:host select:disabled~.icon-caret-down{opacity:var(--ec-form-control-opacity-disabled)}:host .is-readonly .icon-caret-down{display:none}\n"] }]
4806
+ args: [{ selector: 'ec-select', template: "<div class=\"control\"\r\n [ngClass]=\"{'is-readonly': readonly, 'is-disabled': formModel.disabled}\">\r\n <label for=\"{{id}}_select\"\r\n *ngIf=\"label\"\r\n ngPreserveWhitespaces>{{label|translate}}</label>\r\n <select [attr.id]=\"inputId\"\r\n tabindex=\"{{tabindex}}\"\r\n [formControl]=\"formModel\"\r\n [attr.required]=\"required\"\r\n [attr.cdkFocusInitial]=\"autofocus || null\">\r\n <option *ngIf=\"!required\"\r\n [ngValue]=\"null\">{{placeholder}}</option>\r\n <option *ngFor=\"let option of options\"\r\n [ngValue]=\"option.value\">{{option.label}}</option>\r\n </select>\r\n <i class=\"ec-icon icon-caret-down\"></i>\r\n</div>", styles: [":host{color:var(--ec-form-control-color);font-size:var(--ec-form-control-font-size);display:block;margin-bottom:1rem;width:100%}:host :host-context(.form-condensed){margin-bottom:.5rem}:host .control{width:100%;display:flex;flex-direction:column}:host .control.control-label-bottom{flex-direction:column-reverse}:host .control.control-label-left{flex-direction:row}:host .control.control-label-left label{margin-right:.25rem}:host .control.control-label-right{flex-direction:row-reverse}:host .control.control-label-right label{margin-left:.25rem}:host .control.control-label-left,:host .control.control-label-right{align-items:center}:host .control.control-label-left label,:host .control.control-label-right label{flex:1 1;margin-top:0;margin-bottom:0}:host .control.control-label-left .control-input,:host .control.control-label-right .control-input{flex:2 2}:host .control.is-readonly input,:host .control.is-readonly select,:host .control.is-readonly textarea{border-color:var(--ec-form-control-border-color-readonly);background-color:var(--ec-form-control-background-color-readonly);background-clip:border-box;background-image:none;color:var(--ec-form-control-color-readonly);opacity:1;-webkit-user-select:none;user-select:none;pointer-events:none;overflow:hidden;white-space:nowrap}:host .control.invalid .textbox-group-input ::ng-deep .control input.ng-invalid,:host .control.invalid .textbox-group-input ::ng-deep .control input.ng-valid{background-color:var(--ec-form-control-background-color-invalid);border-color:var(--ec-form-control-border-color-invalid);background-repeat:no-repeat;background-position:.5rem center;background-size:1rem,1rem;padding-left:1.75rem;background-image:none}:host .control.invalid .textbox-group-input ::ng-deep .control input.ng-invalid:focus,:host .control.invalid .textbox-group-input ::ng-deep .control input.ng-valid:focus{border-color:var(--ec-form-control-background-color-invalid)}:host .control.invalid .textbox-group-input ::ng-deep .control input.ng-invalid~.icon-invalid,:host .control.invalid .textbox-group-input ::ng-deep .control input.ng-valid~.icon-invalid{display:inline-flex;position:absolute;left:.5rem;top:.5rem;z-index:1}:host .control.invalid .textbox-group-input ::ng-deep .control input.ng-invalid~.icon-required,:host .control.invalid .textbox-group-input ::ng-deep .control input.ng-valid~.icon-required{display:none}:host .control.invalid:not(.open) .textbox-group-btn-right ::ng-deep button{background-color:var(--ec-form-control-background-color-invalid)}:host .control.invalid:not(.open) .textbox-group-btn-right ::ng-deep button:not(:focus){border-color:var(--ec-form-control-border-color-invalid)}:host .textbox-group{display:flex;position:relative}:host textarea:focus,:host input:focus,:host select:focus{outline:none}:host .control{position:relative}:host label{color:var(--ec-form-control-label-color, var(--ec-color-secondary-dark));display:block;font-size:var(--ec-font-size-label);line-height:1;margin:calc(var(--ec-font-size-label) / 2) 0}:host select{-webkit-appearance:none;appearance:none;background-color:var(--ec-form-control-background-color);border:1px solid var(--ec-form-control-border-color);border-radius:var(--ec-border-radius);background-image:none;background-clip:padding-box;width:100%;line-height:1.25rem;padding:.3125rem 1.5rem .3125rem .5rem;height:2rem}:host select::selection{background-color:var(--ec-form-control-background-color-selection);color:var(--ec-form-control-color-selection)}:host select::-webkit-input-placeholder{color:var(--ec-form-control-color-placeholder)}:host select::-moz-placeholder{color:var(--ec-form-control-color-placeholder);opacity:1}:host select:-ms-input-placeholder{color:var(--ec-form-control-color-placeholder)}:host select:-moz-placeholder{color:var(--ec-form-control-color-placeholder);opacity:1}:host select~.icon-required,:host select~.icon-invalid{color:var(--ec-form-control-border-color-invalid)}:host select:required.is-empty{background-image:none;background-repeat:no-repeat;background-position:.5rem center;background-size:1rem,1rem;padding-left:1.75rem}:host select.ng-invalid.ng-touched{background-color:var(--ec-form-control-background-color-invalid);border-color:var(--ec-form-control-border-color-invalid);background-image:none;background-repeat:no-repeat;background-position:.5rem center;background-size:1rem,1rem;padding-left:1.75rem}:host select.ng-invalid.ng-touched:focus{border-color:var(--ec-form-control-background-color-invalid)}:host select.is-pending.ng-valid,:host select.is-pending.ng-invalid,:host select.is-pending.ng-pending{background-image:\"\";background-repeat:no-repeat;background-position:.5rem center;background-size:1rem,1rem;padding-left:1.75rem}:host select:focus,:host select:focus.is-empty{border-color:var(--ec-form-control-border-color-focus);box-shadow:var(--ec-form-control-box-shadow-focus);position:relative;z-index:1}:host select:disabled{background-color:var(--ec-form-control-background-color-disabled);border-color:var(--ec-form-control-border-color-disabled);color:var(--ec-form-control-color-disabled);opacity:var(--ec-form-control-opacity-disabled)}:host select:disabled:required,:host select:disabled:required.is-empty{background-image:none;padding-left:.5rem;background-color:var(--ec-form-control-background-color-disabled);border-color:var(--ec-form-control-border-color-disabled)}:host select:disabled:required+.icon-required,:host select:disabled:required.is-empty+.icon-required{display:none}:host select.is-uppercase:not(.is-empty){text-transform:uppercase}:host select:focus{position:static}:host .icon-caret-down{position:absolute;right:.5rem;bottom:.5625rem;z-index:1;pointer-events:none}:host select:disabled~.icon-caret-down{opacity:var(--ec-form-control-opacity-disabled)}:host .is-readonly .icon-caret-down{display:none}\n"] }]
4807
4807
  }], ctorParameters: function () { return [{ type: ValidationMessageService }, { type: FormGroupHelper }, { type: i0.ElementRef }]; }, propDecorators: { placeholder: [{
4808
4808
  type: Input
4809
4809
  }], options: [{
@@ -9319,6 +9319,10 @@ class TourService {
9319
9319
  let tourEvent = new TourEvent([], 'end');
9320
9320
  this.events.next(tourEvent);
9321
9321
  }
9322
+ append(tours, isAutoStart = false) {
9323
+ let tourEvent = new TourEvent(tours, 'append', isAutoStart);
9324
+ this.events.next(tourEvent);
9325
+ }
9322
9326
  /**
9323
9327
  * Returns a formatted cache key for tours
9324
9328
  * @param tour
@@ -9399,6 +9403,21 @@ class TourComponent {
9399
9403
  yield this.endTour();
9400
9404
  }
9401
9405
  }
9406
+ else if (event.tourAction === 'append') {
9407
+ let visibleTours = event.tours;
9408
+ // If this was triggered via auto start then we need to remove any tours that have been completed
9409
+ if (event.isAutoStart) {
9410
+ visibleTours = this.removeCompletedTours(visibleTours);
9411
+ }
9412
+ // If there is already a current tour, then we need to append the new tours to the current tour
9413
+ if (this.currentTour) {
9414
+ this.tours = this.tours.concat(visibleTours);
9415
+ }
9416
+ else {
9417
+ // There is not a current tour, so treat this as a start event
9418
+ yield this.setupTourComponent(event);
9419
+ }
9420
+ }
9402
9421
  }));
9403
9422
  }
9404
9423
  ngOnDestroy() {