@eui/ecl 16.2.12-snapshot-1708398719797 → 16.2.12

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.
@@ -49,6 +49,15 @@ export class EclTimelineItemComponent extends ECLBaseDirective {
49
49
  this.destroy$.next(true);
50
50
  this.destroy$.unsubscribe();
51
51
  }
52
+ get isShowExpandLabel() {
53
+ return !!this.expandLabel && !this.isTogglerExpanded;
54
+ }
55
+ get isShowCollapseLabel() {
56
+ return !!this.collapseLabel && this.isTogglerExpanded;
57
+ }
58
+ get isShowOneToggleLabel() {
59
+ return !this.collapseLabel && !this.expandLabel;
60
+ }
52
61
  handleToggler() {
53
62
  const nextExpandedState = !this.isTogglerExpanded;
54
63
  const event = new EclTimelineItemToggleEvent(nextExpandedState, this.toggleGroup);
@@ -58,20 +67,24 @@ export class EclTimelineItemComponent extends ECLBaseDirective {
58
67
  }
59
68
  }
60
69
  /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: EclTimelineItemComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
61
- /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: EclTimelineItemComponent, selector: "ecl-timeline-item", inputs: { label: "label", eclTitle: "eclTitle", toggleButtonLabel: "toggleButtonLabel", isTogglerExpanded: "isTogglerExpanded", isCollapsed: "isCollapsed", isToggler: "isToggler", toggleGroup: "toggleGroup" }, outputs: { toggle: "toggle" }, host: { properties: { "class": "this.cssClasses", "class.ecl-timeline__item--collapsed": "this.isCollapsed", "class.ecl-timeline__item--toggle": "this.isToggler" } }, queries: [{ propertyName: "timelineItemToggler", first: true, predicate: i0.forwardRef(function () { return EclTimelineItemTogglerComponent; }), descendants: true }], usesInheritance: true, ngImport: i0, template: "<div *ngIf=\"label\" class=\"ecl-timeline__label\">{{ label }}</div>\n<ng-content select=\"[eclTimelineItemLabel]\"></ng-content>\n\n<div *ngIf=\"eclTitle\" class=\"ecl-timeline__title\">{{ eclTitle }}</div>\n<ng-content select=\"[eclTimelineItemTitle]\"></ng-content>\n\n<div class=\"ecl-timeline__content\">\n <button eclButton *ngIf=\"hasDefaultToggler()\" (click)=\"onTogglerClick($event)\" variant=\"secondary\">\n <span eclButtonLabel>\n {{ toggleButtonLabel || 'ecl.timeline.TOGGLE-ITEMS' | translate }}\n </span>\n <ecl-icon icon=\"corner-arrow\" size=\"fluid\" [transform]=\"!isTogglerExpanded ? 'rotate-180' : ''\"></ecl-icon>\n </button>\n\n <ng-content select=\"ecl-timeline-item-toggler\"></ng-content>\n\n <ng-content></ng-content>\n</div>\n", styles: ["ecl-timeline-item{display:list-item}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.EclButtonComponent, selector: "button[eclButton], button[ecl-button], a[eclButton]", inputs: ["variant", "containerStyleClass"] }, { kind: "directive", type: i3.EclButtonLabelDirective, selector: "[eclButtonLabel]" }, { kind: "component", type: i4.EclIconComponent, selector: "ecl-icon", inputs: ["iconSet", "icon", "size", "color", "transform", "ariaLabelledby", "role", "isInverted", "ariaHidden", "focusable"] }, { kind: "pipe", type: i5.TranslatePipe, name: "translate" }], encapsulation: i0.ViewEncapsulation.None }); }
70
+ /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: EclTimelineItemComponent, selector: "ecl-timeline-item", inputs: { label: "label", eclTitle: "eclTitle", toggleButtonLabel: "toggleButtonLabel", expandLabel: "expandLabel", collapseLabel: "collapseLabel", isTogglerExpanded: "isTogglerExpanded", isCollapsed: "isCollapsed", isToggler: "isToggler", toggleGroup: "toggleGroup" }, outputs: { toggle: "toggle" }, host: { properties: { "class": "this.cssClasses", "class.ecl-timeline__item--collapsed": "this.isCollapsed", "class.ecl-timeline__item--toggle": "this.isToggler" } }, queries: [{ propertyName: "timelineItemToggler", first: true, predicate: i0.forwardRef(function () { return EclTimelineItemTogglerComponent; }), descendants: true }], usesInheritance: true, ngImport: i0, template: "<div class=\"ecl-timeline__tooltip\" *ngIf=\"!isToggler\">\n <div class=\"ecl-timeline__tooltip-arrow\"></div>\n <div *ngIf=\"label\" class=\"ecl-timeline__label\">{{ label }}</div>\n <ng-content select=\"[eclTimelineItemLabel]\"></ng-content>\n\n <div *ngIf=\"eclTitle\" class=\"ecl-timeline__title\">{{ eclTitle }}</div>\n <ng-content select=\"[eclTimelineItemTitle]\"></ng-content>\n\n <div class=\"ecl-timeline__content\">\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n </div>\n</div>\n\n<div class=\"ecl-timeline__content\" *ngIf=\"isToggler\">\n <button eclButton *ngIf=\"hasDefaultToggler()\" (click)=\"onTogglerClick($event)\" variant=\"secondary\">\n <span eclButtonLabel *ngIf=\"isShowExpandLabel\">\n {{ expandLabel }}\n </span>\n <span eclButtonLabel *ngIf=\"isShowCollapseLabel\">\n {{ collapseLabel }}\n </span>\n <span eclButtonLabel *ngIf=\"isShowOneToggleLabel\">\n {{ toggleButtonLabel || 'ecl.timeline.TOGGLE-ITEMS' | translate }}\n </span>\n <ecl-icon icon=\"corner-arrow\" size=\"fluid\" [transform]=\"!isTogglerExpanded ? 'rotate-180' : ''\"></ecl-icon>\n </button>\n\n <ng-content select=\"ecl-timeline-item-toggler\"></ng-content>\n\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n</div>\n\n<ng-template #content>\n <ng-content></ng-content>\n</ng-template>", styles: ["ecl-timeline-item{display:list-item}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i2.EclButtonComponent, selector: "button[eclButton], button[ecl-button], a[eclButton]", inputs: ["variant", "containerStyleClass"] }, { kind: "directive", type: i3.EclButtonLabelDirective, selector: "[eclButtonLabel]" }, { kind: "component", type: i4.EclIconComponent, selector: "ecl-icon", inputs: ["iconSet", "icon", "size", "color", "transform", "ariaLabelledby", "role", "isInverted", "ariaHidden", "focusable"] }, { kind: "pipe", type: i5.TranslatePipe, name: "translate" }], encapsulation: i0.ViewEncapsulation.None }); }
62
71
  }
63
72
  __decorate([
64
73
  coerceBoolean
65
74
  ], EclTimelineItemComponent.prototype, "isTogglerExpanded", void 0);
66
75
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: EclTimelineItemComponent, decorators: [{
67
76
  type: Component,
68
- args: [{ selector: 'ecl-timeline-item', encapsulation: ViewEncapsulation.None, template: "<div *ngIf=\"label\" class=\"ecl-timeline__label\">{{ label }}</div>\n<ng-content select=\"[eclTimelineItemLabel]\"></ng-content>\n\n<div *ngIf=\"eclTitle\" class=\"ecl-timeline__title\">{{ eclTitle }}</div>\n<ng-content select=\"[eclTimelineItemTitle]\"></ng-content>\n\n<div class=\"ecl-timeline__content\">\n <button eclButton *ngIf=\"hasDefaultToggler()\" (click)=\"onTogglerClick($event)\" variant=\"secondary\">\n <span eclButtonLabel>\n {{ toggleButtonLabel || 'ecl.timeline.TOGGLE-ITEMS' | translate }}\n </span>\n <ecl-icon icon=\"corner-arrow\" size=\"fluid\" [transform]=\"!isTogglerExpanded ? 'rotate-180' : ''\"></ecl-icon>\n </button>\n\n <ng-content select=\"ecl-timeline-item-toggler\"></ng-content>\n\n <ng-content></ng-content>\n</div>\n", styles: ["ecl-timeline-item{display:list-item}\n"] }]
77
+ args: [{ selector: 'ecl-timeline-item', encapsulation: ViewEncapsulation.None, template: "<div class=\"ecl-timeline__tooltip\" *ngIf=\"!isToggler\">\n <div class=\"ecl-timeline__tooltip-arrow\"></div>\n <div *ngIf=\"label\" class=\"ecl-timeline__label\">{{ label }}</div>\n <ng-content select=\"[eclTimelineItemLabel]\"></ng-content>\n\n <div *ngIf=\"eclTitle\" class=\"ecl-timeline__title\">{{ eclTitle }}</div>\n <ng-content select=\"[eclTimelineItemTitle]\"></ng-content>\n\n <div class=\"ecl-timeline__content\">\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n </div>\n</div>\n\n<div class=\"ecl-timeline__content\" *ngIf=\"isToggler\">\n <button eclButton *ngIf=\"hasDefaultToggler()\" (click)=\"onTogglerClick($event)\" variant=\"secondary\">\n <span eclButtonLabel *ngIf=\"isShowExpandLabel\">\n {{ expandLabel }}\n </span>\n <span eclButtonLabel *ngIf=\"isShowCollapseLabel\">\n {{ collapseLabel }}\n </span>\n <span eclButtonLabel *ngIf=\"isShowOneToggleLabel\">\n {{ toggleButtonLabel || 'ecl.timeline.TOGGLE-ITEMS' | translate }}\n </span>\n <ecl-icon icon=\"corner-arrow\" size=\"fluid\" [transform]=\"!isTogglerExpanded ? 'rotate-180' : ''\"></ecl-icon>\n </button>\n\n <ng-content select=\"ecl-timeline-item-toggler\"></ng-content>\n\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n</div>\n\n<ng-template #content>\n <ng-content></ng-content>\n</ng-template>", styles: ["ecl-timeline-item{display:list-item}\n"] }]
69
78
  }], propDecorators: { label: [{
70
79
  type: Input
71
80
  }], eclTitle: [{
72
81
  type: Input
73
82
  }], toggleButtonLabel: [{
74
83
  type: Input
84
+ }], expandLabel: [{
85
+ type: Input
86
+ }], collapseLabel: [{
87
+ type: Input
75
88
  }], isTogglerExpanded: [{
76
89
  type: Input
77
90
  }], cssClasses: [{
@@ -95,4 +108,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
95
108
  }], toggle: [{
96
109
  type: Output
97
110
  }] } });
98
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWNsLXRpbWVsaW5lLWl0ZW0uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9jb21wb25lbnRzL2VjbC10aW1lbGluZS9lY2wtdGltZWxpbmUtaXRlbS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvZWNsLXRpbWVsaW5lL2VjbC10aW1lbGluZS1pdGVtLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQ0gsU0FBUyxFQUNULEtBQUssRUFDTCxXQUFXLEVBRVgsaUJBQWlCLEVBQ2pCLE1BQU0sRUFDTixZQUFZLEVBQ1osWUFBWSxFQUNaLFVBQVUsR0FFYixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQzFDLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDL0IsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzNDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUMxRCxPQUFPLEVBQUUsK0JBQStCLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUN4RixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQzs7Ozs7OztBQUV6RCxNQUFNLE9BQU8sMEJBQTJCLFNBQVEsWUFBWTtJQUN4RCxZQUNXLFVBQW1CLEVBQ25CLFdBQW1CO1FBRTFCLEtBQUssRUFBRSxDQUFDO1FBSEQsZUFBVSxHQUFWLFVBQVUsQ0FBUztRQUNuQixnQkFBVyxHQUFYLFdBQVcsQ0FBUTtJQUc5QixDQUFDO0NBQ0o7QUFjRCxNQUFNLE9BQU8sd0JBQXlCLFNBQVEsZ0JBQWdCO0lBWjlEOztRQXNCSSw4REFBOEQ7UUFDdEMsc0JBQWlCLEdBQWtCLEtBQUssQ0FBQztRQVVKLGdCQUFXLEdBQUcsS0FBSyxDQUFDO1FBQ3ZCLGNBQVMsR0FBRyxLQUFLLENBQUM7UUFHbEUsV0FBTSxHQUFHLElBQUksWUFBWSxFQUE4QixDQUFDO1FBRWxFLGFBQVEsR0FBcUIsSUFBSSxPQUFPLEVBQVcsQ0FBQztLQWdDdkQ7SUE5Q0csSUFDSSxVQUFVO1FBQ1YsT0FBTyxDQUFDLEtBQUssQ0FBQyxhQUFhLENBQUMsb0JBQW9CLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUNqRSxDQUFDO0lBYUQsa0JBQWtCO1FBQ2QsSUFBSSxJQUFJLENBQUMsbUJBQW1CLEVBQUU7WUFDMUIsSUFBSSxDQUFDLG1CQUFtQixDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUU7Z0JBQzFFLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztZQUN6QixDQUFDLENBQUMsQ0FBQztTQUNOO0lBQ0wsQ0FBQztJQUVELGlCQUFpQjtRQUNiLE9BQU8sSUFBSSxDQUFDLFNBQVMsSUFBSSxDQUFDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQztJQUN2RCxDQUFDO0lBRUQsY0FBYyxDQUFDLEdBQWU7UUFDMUIsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO0lBQ3pCLENBQUM7SUFFRCxXQUFXO1FBQ1AsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDekIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUNoQyxDQUFDO0lBRU8sYUFBYTtRQUNqQixNQUFNLGlCQUFpQixHQUFHLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDO1FBQ2xELE1BQU0sS0FBSyxHQUFHLElBQUksMEJBQTBCLENBQUMsaUJBQWlCLEVBQUUsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBRWxGLElBQUksQ0FBQyxLQUFLLENBQUMsZ0JBQWdCLEVBQUU7WUFDekIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDeEIsSUFBSSxDQUFDLGlCQUFpQixHQUFHLGlCQUFpQixDQUFDO1NBQzlDO0lBQ0wsQ0FBQztrSUExRFEsd0JBQXdCO3NIQUF4Qix3QkFBd0IscWlCQWtCRiwrQkFBK0IsMkVDMURsRSxpeUJBa0JBOztBRGlDbUI7SUFBZCxhQUFhO21FQUFtRDs0RkFYeEQsd0JBQXdCO2tCQVpwQyxTQUFTOytCQUNJLG1CQUFtQixpQkFTZCxpQkFBaUIsQ0FBQyxJQUFJOzhCQU01QixLQUFLO3NCQUFiLEtBQUs7Z0JBSUcsUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxpQkFBaUI7c0JBQXpCLEtBQUs7Z0JBRWtCLGlCQUFpQjtzQkFBekIsS0FBSztnQkFHakIsVUFBVTtzQkFEYixXQUFXO3VCQUFDLE9BQU87Z0JBTXBCLG1CQUFtQjtzQkFEbEIsWUFBWTt1QkFBQyxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsK0JBQStCLENBQUM7Z0JBR0YsV0FBVztzQkFBdkUsS0FBSzs7c0JBQUksV0FBVzt1QkFBQyxxQ0FBcUM7Z0JBQ0QsU0FBUztzQkFBbEUsS0FBSzs7c0JBQUksV0FBVzt1QkFBQyxrQ0FBa0M7Z0JBQy9DLFdBQVc7c0JBQW5CLEtBQUs7Z0JBRUksTUFBTTtzQkFBZixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBDb21wb25lbnQsXG4gICAgSW5wdXQsXG4gICAgSG9zdEJpbmRpbmcsXG4gICAgQWZ0ZXJDb250ZW50SW5pdCxcbiAgICBWaWV3RW5jYXBzdWxhdGlvbixcbiAgICBPdXRwdXQsXG4gICAgRXZlbnRFbWl0dGVyLFxuICAgIENvbnRlbnRDaGlsZCxcbiAgICBmb3J3YXJkUmVmLFxuICAgIE9uRGVzdHJveSxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBjb2VyY2VCb29sZWFuIH0gZnJvbSAnQGV1aS9iYXNlJztcbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IHRha2VVbnRpbCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IEVjbEJhc2VFdmVudCB9IGZyb20gJy4uLy4uL21vZGVsL2VjbC1iYXNlLmV2ZW50JztcbmltcG9ydCB7IEVjbFRpbWVsaW5lSXRlbVRvZ2dsZXJDb21wb25lbnQgfSBmcm9tICcuL2VjbC10aW1lbGluZS1pdGVtLXRvZ2dsZXIuY29tcG9uZW50JztcbmltcG9ydCB7IEVDTEJhc2VEaXJlY3RpdmUgfSBmcm9tICcuLi9lY2wtYmFzZS5kaXJlY3RpdmUnO1xuXG5leHBvcnQgY2xhc3MgRWNsVGltZWxpbmVJdGVtVG9nZ2xlRXZlbnQgZXh0ZW5kcyBFY2xCYXNlRXZlbnQge1xuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwdWJsaWMgaXNFeHBhbmRlZDogYm9vbGVhbixcbiAgICAgICAgcHVibGljIHRvZ2dsZUdyb3VwOiBzdHJpbmcsXG4gICAgKSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgfVxufVxuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2VjbC10aW1lbGluZS1pdGVtJyxcbiAgICB0ZW1wbGF0ZVVybDogJ2VjbC10aW1lbGluZS1pdGVtLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZXM6IFtcbiAgICAgICAgYFxuICAgICAgICAgICAgZWNsLXRpbWVsaW5lLWl0ZW0ge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGxpc3QtaXRlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgYCxcbiAgICBdLFxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG59KVxuZXhwb3J0IGNsYXNzIEVjbFRpbWVsaW5lSXRlbUNvbXBvbmVudCBleHRlbmRzIEVDTEJhc2VEaXJlY3RpdmUgaW1wbGVtZW50cyBBZnRlckNvbnRlbnRJbml0LCBPbkRlc3Ryb3kge1xuICAgIC8qKlxuICAgICAqIEBkZXByZWNhdGVkIFBsZWFzZSB1c2UgZWNsVGltZWxpbmVJdGVtTGFiZWwgZGlyZWN0aXZlIGluc3RlYWRcbiAgICAgKi9cbiAgICBASW5wdXQoKSBsYWJlbDogc3RyaW5nO1xuICAgIC8qKlxuICAgICAqIEBkZXByZWNhdGVkIFBsZWFzZSB1c2UgZWNsVGltZWxpbmVJdGVtVGl0bGUgZGlyZWN0aXZlIGluc3RlYWRcbiAgICAgKi9cbiAgICBASW5wdXQoKSBlY2xUaXRsZTogc3RyaW5nO1xuICAgIEBJbnB1dCgpIHRvZ2dsZUJ1dHRvbkxhYmVsOiBzdHJpbmc7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcbiAgICBAY29lcmNlQm9vbGVhbiBASW5wdXQoKSBpc1RvZ2dsZXJFeHBhbmRlZDogYm9vbGVhbiB8IGFueSA9IGZhbHNlO1xuXG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcycpXG4gICAgZ2V0IGNzc0NsYXNzZXMoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIFtzdXBlci5nZXRDc3NDbGFzc2VzKCdlY2wtdGltZWxpbmVfX2l0ZW0nKV0uam9pbignICcpO1xuICAgIH1cblxuICAgIEBDb250ZW50Q2hpbGQoZm9yd2FyZFJlZigoKSA9PiBFY2xUaW1lbGluZUl0ZW1Ub2dnbGVyQ29tcG9uZW50KSlcbiAgICB0aW1lbGluZUl0ZW1Ub2dnbGVyOiBFY2xUaW1lbGluZUl0ZW1Ub2dnbGVyQ29tcG9uZW50O1xuXG4gICAgQElucHV0KCkgQEhvc3RCaW5kaW5nKCdjbGFzcy5lY2wtdGltZWxpbmVfX2l0ZW0tLWNvbGxhcHNlZCcpIGlzQ29sbGFwc2VkID0gZmFsc2U7XG4gICAgQElucHV0KCkgQEhvc3RCaW5kaW5nKCdjbGFzcy5lY2wtdGltZWxpbmVfX2l0ZW0tLXRvZ2dsZScpIGlzVG9nZ2xlciA9IGZhbHNlO1xuICAgIEBJbnB1dCgpIHRvZ2dsZUdyb3VwOiBzdHJpbmc7XG5cbiAgICBAT3V0cHV0KCkgdG9nZ2xlID0gbmV3IEV2ZW50RW1pdHRlcjxFY2xUaW1lbGluZUl0ZW1Ub2dnbGVFdmVudD4oKTtcblxuICAgIGRlc3Ryb3kkOiBTdWJqZWN0PGJvb2xlYW4+ID0gbmV3IFN1YmplY3Q8Ym9vbGVhbj4oKTtcblxuICAgIG5nQWZ0ZXJDb250ZW50SW5pdCgpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMudGltZWxpbmVJdGVtVG9nZ2xlcikge1xuICAgICAgICAgICAgdGhpcy50aW1lbGluZUl0ZW1Ub2dnbGVyLnRvZ2dsZS5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSkuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLmhhbmRsZVRvZ2dsZXIoKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgaGFzRGVmYXVsdFRvZ2dsZXIoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLmlzVG9nZ2xlciAmJiAhdGhpcy50aW1lbGluZUl0ZW1Ub2dnbGVyO1xuICAgIH1cblxuICAgIG9uVG9nZ2xlckNsaWNrKGV2dDogTW91c2VFdmVudCk6IHZvaWQge1xuICAgICAgICB0aGlzLmhhbmRsZVRvZ2dsZXIoKTtcbiAgICB9XG5cbiAgICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5kZXN0cm95JC5uZXh0KHRydWUpO1xuICAgICAgICB0aGlzLmRlc3Ryb3kkLnVuc3Vic2NyaWJlKCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBoYW5kbGVUb2dnbGVyKCk6IHZvaWQge1xuICAgICAgICBjb25zdCBuZXh0RXhwYW5kZWRTdGF0ZSA9ICF0aGlzLmlzVG9nZ2xlckV4cGFuZGVkO1xuICAgICAgICBjb25zdCBldmVudCA9IG5ldyBFY2xUaW1lbGluZUl0ZW1Ub2dnbGVFdmVudChuZXh0RXhwYW5kZWRTdGF0ZSwgdGhpcy50b2dnbGVHcm91cCk7XG5cbiAgICAgICAgaWYgKCFldmVudC5kZWZhdWx0UHJldmVudGVkKSB7XG4gICAgICAgICAgICB0aGlzLnRvZ2dsZS5uZXh0KGV2ZW50KTtcbiAgICAgICAgICAgIHRoaXMuaXNUb2dnbGVyRXhwYW5kZWQgPSBuZXh0RXhwYW5kZWRTdGF0ZTtcbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIjxkaXYgKm5nSWY9XCJsYWJlbFwiIGNsYXNzPVwiZWNsLXRpbWVsaW5lX19sYWJlbFwiPnt7IGxhYmVsIH19PC9kaXY+XG48bmctY29udGVudCBzZWxlY3Q9XCJbZWNsVGltZWxpbmVJdGVtTGFiZWxdXCI+PC9uZy1jb250ZW50PlxuXG48ZGl2ICpuZ0lmPVwiZWNsVGl0bGVcIiBjbGFzcz1cImVjbC10aW1lbGluZV9fdGl0bGVcIj57eyBlY2xUaXRsZSB9fTwvZGl2PlxuPG5nLWNvbnRlbnQgc2VsZWN0PVwiW2VjbFRpbWVsaW5lSXRlbVRpdGxlXVwiPjwvbmctY29udGVudD5cblxuPGRpdiBjbGFzcz1cImVjbC10aW1lbGluZV9fY29udGVudFwiPlxuICAgIDxidXR0b24gZWNsQnV0dG9uICpuZ0lmPVwiaGFzRGVmYXVsdFRvZ2dsZXIoKVwiIChjbGljayk9XCJvblRvZ2dsZXJDbGljaygkZXZlbnQpXCIgdmFyaWFudD1cInNlY29uZGFyeVwiPlxuICAgICAgICA8c3BhbiBlY2xCdXR0b25MYWJlbD5cbiAgICAgICAgICAgIHt7IHRvZ2dsZUJ1dHRvbkxhYmVsIHx8ICdlY2wudGltZWxpbmUuVE9HR0xFLUlURU1TJyB8IHRyYW5zbGF0ZSB9fVxuICAgICAgICA8L3NwYW4+XG4gICAgICAgIDxlY2wtaWNvbiBpY29uPVwiY29ybmVyLWFycm93XCIgc2l6ZT1cImZsdWlkXCIgW3RyYW5zZm9ybV09XCIhaXNUb2dnbGVyRXhwYW5kZWQgPyAncm90YXRlLTE4MCcgOiAnJ1wiPjwvZWNsLWljb24+XG4gICAgPC9idXR0b24+XG5cbiAgICA8bmctY29udGVudCBzZWxlY3Q9XCJlY2wtdGltZWxpbmUtaXRlbS10b2dnbGVyXCI+PC9uZy1jb250ZW50PlxuXG4gICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuPC9kaXY+XG4iXX0=
111
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWNsLXRpbWVsaW5lLWl0ZW0uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9jb21wb25lbnRzL2VjbC10aW1lbGluZS9lY2wtdGltZWxpbmUtaXRlbS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvZWNsLXRpbWVsaW5lL2VjbC10aW1lbGluZS1pdGVtLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQ0gsU0FBUyxFQUNULEtBQUssRUFDTCxXQUFXLEVBRVgsaUJBQWlCLEVBQ2pCLE1BQU0sRUFDTixZQUFZLEVBQ1osWUFBWSxFQUNaLFVBQVUsR0FFYixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQzFDLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDL0IsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzNDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUMxRCxPQUFPLEVBQUUsK0JBQStCLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUN4RixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQzs7Ozs7OztBQUV6RCxNQUFNLE9BQU8sMEJBQTJCLFNBQVEsWUFBWTtJQUN4RCxZQUNXLFVBQW1CLEVBQ25CLFdBQW1CO1FBRTFCLEtBQUssRUFBRSxDQUFDO1FBSEQsZUFBVSxHQUFWLFVBQVUsQ0FBUztRQUNuQixnQkFBVyxHQUFYLFdBQVcsQ0FBUTtJQUc5QixDQUFDO0NBQ0o7QUFjRCxNQUFNLE9BQU8sd0JBQXlCLFNBQVEsZ0JBQWdCO0lBWjlEOztRQXdCSSw4REFBOEQ7UUFDdEMsc0JBQWlCLEdBQWtCLEtBQUssQ0FBQztRQVVKLGdCQUFXLEdBQUcsS0FBSyxD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OlsiaW1wb3J0IHtcbiAgICBDb21wb25lbnQsXG4gICAgSW5wdXQsXG4gICAgSG9zdEJpbmRpbmcsXG4gICAgQWZ0ZXJDb250ZW50SW5pdCxcbiAgICBWaWV3RW5jYXBzdWxhdGlvbixcbiAgICBPdXRwdXQsXG4gICAgRXZlbnRFbWl0dGVyLFxuICAgIENvbnRlbnRDaGlsZCxcbiAgICBmb3J3YXJkUmVmLFxuICAgIE9uRGVzdHJveSxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBjb2VyY2VCb29sZWFuIH0gZnJvbSAnQGV1aS9iYXNlJztcbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IHRha2VVbnRpbCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IEVjbEJhc2VFdmVudCB9IGZyb20gJy4uLy4uL21vZGVsL2VjbC1iYXNlLmV2ZW50JztcbmltcG9ydCB7IEVjbFRpbWVsaW5lSXRlbVRvZ2dsZXJDb21wb25lbnQgfSBmcm9tICcuL2VjbC10aW1lbGluZS1pdGVtLXRvZ2dsZXIuY29tcG9uZW50JztcbmltcG9ydCB7IEVDTEJhc2VEaXJlY3RpdmUgfSBmcm9tICcuLi9lY2wtYmFzZS5kaXJlY3RpdmUnO1xuXG5leHBvcnQgY2xhc3MgRWNsVGltZWxpbmVJdGVtVG9nZ2xlRXZlbnQgZXh0ZW5kcyBFY2xCYXNlRXZlbnQge1xuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwdWJsaWMgaXNFeHBhbmRlZDogYm9vbGVhbixcbiAgICAgICAgcHVibGljIHRvZ2dsZUdyb3VwOiBzdHJpbmcsXG4gICAgKSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgfVxufVxuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2VjbC10aW1lbGluZS1pdGVtJyxcbiAgICB0ZW1wbGF0ZVVybDogJ2VjbC10aW1lbGluZS1pdGVtLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZXM6IFtcbiAgICAgICAgYFxuICAgICAgICAgICAgZWNsLXRpbWVsaW5lLWl0ZW0ge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGxpc3QtaXRlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgYCxcbiAgICBdLFxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG59KVxuZXhwb3J0IGNsYXNzIEVjbFRpbWVsaW5lSXRlbUNvbXBvbmVudCBleHRlbmRzIEVDTEJhc2VEaXJlY3RpdmUgaW1wbGVtZW50cyBBZnRlckNvbnRlbnRJbml0LCBPbkRlc3Ryb3kge1xuICAgIC8qKlxuICAgICAqIEBkZXByZWNhdGVkIFBsZWFzZSB1c2UgZWNsVGltZWxpbmVJdGVtTGFiZWwgZGlyZWN0aXZlIGluc3RlYWRcbiAgICAgKi9cbiAgICBASW5wdXQoKSBsYWJlbDogc3RyaW5nO1xuICAgIC8qKlxuICAgICAqIEBkZXByZWNhdGVkIFBsZWFzZSB1c2UgZWNsVGltZWxpbmVJdGVtVGl0bGUgZGlyZWN0aXZlIGluc3RlYWRcbiAgICAgKi9cbiAgICBASW5wdXQoKSBlY2xUaXRsZTogc3RyaW5nO1xuICAgIEBJbnB1dCgpIHRvZ2dsZUJ1dHRvbkxhYmVsOiBzdHJpbmc7XG4gICAgQElucHV0KCkgZXhwYW5kTGFiZWw6IHN0cmluZztcbiAgICBASW5wdXQoKSBjb2xsYXBzZUxhYmVsOiBzdHJpbmc7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcbiAgICBAY29lcmNlQm9vbGVhbiBASW5wdXQoKSBpc1RvZ2dsZXJFeHBhbmRlZDogYm9vbGVhbiB8IGFueSA9IGZhbHNlO1xuXG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcycpXG4gICAgZ2V0IGNzc0NsYXNzZXMoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIFtzdXBlci5nZXRDc3NDbGFzc2VzKCdlY2wtdGltZWxpbmVfX2l0ZW0nKV0uam9pbignICcpO1xuICAgIH1cblxuICAgIEBDb250ZW50Q2hpbGQoZm9yd2FyZFJlZigoKSA9PiBFY2xUaW1lbGluZUl0ZW1Ub2dnbGVyQ29tcG9uZW50KSlcbiAgICB0aW1lbGluZUl0ZW1Ub2dnbGVyOiBFY2xUaW1lbGluZUl0ZW1Ub2dnbGVyQ29tcG9uZW50O1xuXG4gICAgQElucHV0KCkgQEhvc3RCaW5kaW5nKCdjbGFzcy5lY2wtdGltZWxpbmVfX2l0ZW0tLWNvbGxhcHNlZCcpIGlzQ29sbGFwc2VkID0gZmFsc2U7XG4gICAgQElucHV0KCkgQEhvc3RCaW5kaW5nKCdjbGFzcy5lY2wtdGltZWxpbmVfX2l0ZW0tLXRvZ2dsZScpIGlzVG9nZ2xlciA9IGZhbHNlO1xuICAgIEBJbnB1dCgpIHRvZ2dsZUdyb3VwOiBzdHJpbmc7XG5cbiAgICBAT3V0cHV0KCkgdG9nZ2xlID0gbmV3IEV2ZW50RW1pdHRlcjxFY2xUaW1lbGluZUl0ZW1Ub2dnbGVFdmVudD4oKTtcblxuICAgIGRlc3Ryb3kkOiBTdWJqZWN0PGJvb2xlYW4+ID0gbmV3IFN1YmplY3Q8Ym9vbGVhbj4oKTtcblxuICAgIG5nQWZ0ZXJDb250ZW50SW5pdCgpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMudGltZWxpbmVJdGVtVG9nZ2xlcikge1xuICAgICAgICAgICAgdGhpcy50aW1lbGluZUl0ZW1Ub2dnbGVyLnRvZ2dsZS5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSkuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLmhhbmRsZVRvZ2dsZXIoKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgaGFzRGVmYXVsdFRvZ2dsZXIoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLmlzVG9nZ2xlciAmJiAhdGhpcy50aW1lbGluZUl0ZW1Ub2dnbGVyO1xuICAgIH1cblxuICAgIG9uVG9nZ2xlckNsaWNrKGV2dDogTW91c2VFdmVudCk6IHZvaWQge1xuICAgICAgICB0aGlzLmhhbmRsZVRvZ2dsZXIoKTtcbiAgICB9XG5cbiAgICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5kZXN0cm95JC5uZXh0KHRydWUpO1xuICAgICAgICB0aGlzLmRlc3Ryb3kkLnVuc3Vic2NyaWJlKCk7XG4gICAgfVxuXG4gICAgZ2V0IGlzU2hvd0V4cGFuZExhYmVsKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gISF0aGlzLmV4cGFuZExhYmVsICYmICF0aGlzLmlzVG9nZ2xlckV4cGFuZGVkO1xuICAgIH1cblxuICAgIGdldCBpc1Nob3dDb2xsYXBzZUxhYmVsKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gISF0aGlzLmNvbGxhcHNlTGFiZWwgJiYgdGhpcy5pc1RvZ2dsZXJFeHBhbmRlZDtcbiAgICB9XG5cbiAgICBnZXQgaXNTaG93T25lVG9nZ2xlTGFiZWwoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiAhdGhpcy5jb2xsYXBzZUxhYmVsICYmICF0aGlzLmV4cGFuZExhYmVsO1xuICAgIH1cblxuICAgIHByaXZhdGUgaGFuZGxlVG9nZ2xlcigpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgbmV4dEV4cGFuZGVkU3RhdGUgPSAhdGhpcy5pc1RvZ2dsZXJFeHBhbmRlZDtcbiAgICAgICAgY29uc3QgZXZlbnQgPSBuZXcgRWNsVGltZWxpbmVJdGVtVG9nZ2xlRXZlbnQobmV4dEV4cGFuZGVkU3RhdGUsIHRoaXMudG9nZ2xlR3JvdXApO1xuXG4gICAgICAgIGlmICghZXZlbnQuZGVmYXVsdFByZXZlbnRlZCkge1xuICAgICAgICAgICAgdGhpcy50b2dnbGUubmV4dChldmVudCk7XG4gICAgICAgICAgICB0aGlzLmlzVG9nZ2xlckV4cGFuZGVkID0gbmV4dEV4cGFuZGVkU3RhdGU7XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwiZWNsLXRpbWVsaW5lX190b29sdGlwXCIgKm5nSWY9XCIhaXNUb2dnbGVyXCI+XG4gICAgPGRpdiBjbGFzcz1cImVjbC10aW1lbGluZV9fdG9vbHRpcC1hcnJvd1wiPjwvZGl2PlxuICAgIDxkaXYgKm5nSWY9XCJsYWJlbFwiIGNsYXNzPVwiZWNsLXRpbWVsaW5lX19sYWJlbFwiPnt7IGxhYmVsIH19PC9kaXY+XG4gICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiW2VjbFRpbWVsaW5lSXRlbUxhYmVsXVwiPjwvbmctY29udGVudD5cblxuICAgIDxkaXYgKm5nSWY9XCJlY2xUaXRsZVwiIGNsYXNzPVwiZWNsLXRpbWVsaW5lX190aXRsZVwiPnt7IGVjbFRpdGxlIH19PC9kaXY+XG4gICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiW2VjbFRpbWVsaW5lSXRlbVRpdGxlXVwiPjwvbmctY29udGVudD5cblxuICAgIDxkaXYgY2xhc3M9XCJlY2wtdGltZWxpbmVfX2NvbnRlbnRcIj5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImNvbnRlbnRcIj48L25nLWNvbnRhaW5lcj5cbiAgICA8L2Rpdj5cbjwvZGl2PlxuXG48ZGl2IGNsYXNzPVwiZWNsLXRpbWVsaW5lX19jb250ZW50XCIgKm5nSWY9XCJpc1RvZ2dsZXJcIj5cbiAgICA8YnV0dG9uIGVjbEJ1dHRvbiAqbmdJZj1cImhhc0RlZmF1bHRUb2dnbGVyKClcIiAoY2xpY2spPVwib25Ub2dnbGVyQ2xpY2soJGV2ZW50KVwiIHZhcmlhbnQ9XCJzZWNvbmRhcnlcIj5cbiAgICAgICAgPHNwYW4gZWNsQnV0dG9uTGFiZWwgKm5nSWY9XCJpc1Nob3dFeHBhbmRMYWJlbFwiPlxuICAgICAgICAgICAge3sgZXhwYW5kTGFiZWwgfX1cbiAgICAgICAgPC9zcGFuPlxuICAgICAgICA8c3BhbiBlY2xCdXR0b25MYWJlbCAqbmdJZj1cImlzU2hvd0NvbGxhcHNlTGFiZWxcIj5cbiAgICAgICAgICAgIHt7IGNvbGxhcHNlTGFiZWwgfX1cbiAgICAgICAgPC9zcGFuPlxuICAgICAgICA8c3BhbiBlY2xCdXR0b25MYWJlbCAqbmdJZj1cImlzU2hvd09uZVRvZ2dsZUxhYmVsXCI+XG4gICAgICAgICAgICB7eyB0b2dnbGVCdXR0b25MYWJlbCB8fCAnZWNsLnRpbWVsaW5lLlRPR0dMRS1JVEVNUycgfCB0cmFuc2xhdGUgfX1cbiAgICAgICAgPC9zcGFuPlxuICAgICAgICA8ZWNsLWljb24gaWNvbj1cImNvcm5lci1hcnJvd1wiIHNpemU9XCJmbHVpZFwiIFt0cmFuc2Zvcm1dPVwiIWlzVG9nZ2xlckV4cGFuZGVkID8gJ3JvdGF0ZS0xODAnIDogJydcIj48L2VjbC1pY29uPlxuICAgIDwvYnV0dG9uPlxuXG4gICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiZWNsLXRpbWVsaW5lLWl0ZW0tdG9nZ2xlclwiPjwvbmctY29udGVudD5cblxuICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJjb250ZW50XCI+PC9uZy1jb250YWluZXI+XG48L2Rpdj5cblxuPG5nLXRlbXBsYXRlICNjb250ZW50PlxuICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbjwvbmctdGVtcGxhdGU+Il19
@@ -16837,6 +16837,15 @@ class EclTimelineItemComponent extends ECLBaseDirective {
16837
16837
  this.destroy$.next(true);
16838
16838
  this.destroy$.unsubscribe();
16839
16839
  }
16840
+ get isShowExpandLabel() {
16841
+ return !!this.expandLabel && !this.isTogglerExpanded;
16842
+ }
16843
+ get isShowCollapseLabel() {
16844
+ return !!this.collapseLabel && this.isTogglerExpanded;
16845
+ }
16846
+ get isShowOneToggleLabel() {
16847
+ return !this.collapseLabel && !this.expandLabel;
16848
+ }
16840
16849
  handleToggler() {
16841
16850
  const nextExpandedState = !this.isTogglerExpanded;
16842
16851
  const event = new EclTimelineItemToggleEvent(nextExpandedState, this.toggleGroup);
@@ -16846,20 +16855,24 @@ class EclTimelineItemComponent extends ECLBaseDirective {
16846
16855
  }
16847
16856
  }
16848
16857
  /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: EclTimelineItemComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
16849
- /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: EclTimelineItemComponent, selector: "ecl-timeline-item", inputs: { label: "label", eclTitle: "eclTitle", toggleButtonLabel: "toggleButtonLabel", isTogglerExpanded: "isTogglerExpanded", isCollapsed: "isCollapsed", isToggler: "isToggler", toggleGroup: "toggleGroup" }, outputs: { toggle: "toggle" }, host: { properties: { "class": "this.cssClasses", "class.ecl-timeline__item--collapsed": "this.isCollapsed", "class.ecl-timeline__item--toggle": "this.isToggler" } }, queries: [{ propertyName: "timelineItemToggler", first: true, predicate: i0.forwardRef(function () { return EclTimelineItemTogglerComponent; }), descendants: true }], usesInheritance: true, ngImport: i0, template: "<div *ngIf=\"label\" class=\"ecl-timeline__label\">{{ label }}</div>\n<ng-content select=\"[eclTimelineItemLabel]\"></ng-content>\n\n<div *ngIf=\"eclTitle\" class=\"ecl-timeline__title\">{{ eclTitle }}</div>\n<ng-content select=\"[eclTimelineItemTitle]\"></ng-content>\n\n<div class=\"ecl-timeline__content\">\n <button eclButton *ngIf=\"hasDefaultToggler()\" (click)=\"onTogglerClick($event)\" variant=\"secondary\">\n <span eclButtonLabel>\n {{ toggleButtonLabel || 'ecl.timeline.TOGGLE-ITEMS' | translate }}\n </span>\n <ecl-icon icon=\"corner-arrow\" size=\"fluid\" [transform]=\"!isTogglerExpanded ? 'rotate-180' : ''\"></ecl-icon>\n </button>\n\n <ng-content select=\"ecl-timeline-item-toggler\"></ng-content>\n\n <ng-content></ng-content>\n</div>\n", styles: ["ecl-timeline-item{display:list-item}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: EclButtonComponent, selector: "button[eclButton], button[ecl-button], a[eclButton]", inputs: ["variant", "containerStyleClass"] }, { kind: "directive", type: EclButtonLabelDirective, selector: "[eclButtonLabel]" }, { kind: "component", type: EclIconComponent, selector: "ecl-icon", inputs: ["iconSet", "icon", "size", "color", "transform", "ariaLabelledby", "role", "isInverted", "ariaHidden", "focusable"] }, { kind: "pipe", type: i2$1.TranslatePipe, name: "translate" }], encapsulation: i0.ViewEncapsulation.None }); }
16858
+ /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: EclTimelineItemComponent, selector: "ecl-timeline-item", inputs: { label: "label", eclTitle: "eclTitle", toggleButtonLabel: "toggleButtonLabel", expandLabel: "expandLabel", collapseLabel: "collapseLabel", isTogglerExpanded: "isTogglerExpanded", isCollapsed: "isCollapsed", isToggler: "isToggler", toggleGroup: "toggleGroup" }, outputs: { toggle: "toggle" }, host: { properties: { "class": "this.cssClasses", "class.ecl-timeline__item--collapsed": "this.isCollapsed", "class.ecl-timeline__item--toggle": "this.isToggler" } }, queries: [{ propertyName: "timelineItemToggler", first: true, predicate: i0.forwardRef(function () { return EclTimelineItemTogglerComponent; }), descendants: true }], usesInheritance: true, ngImport: i0, template: "<div class=\"ecl-timeline__tooltip\" *ngIf=\"!isToggler\">\n <div class=\"ecl-timeline__tooltip-arrow\"></div>\n <div *ngIf=\"label\" class=\"ecl-timeline__label\">{{ label }}</div>\n <ng-content select=\"[eclTimelineItemLabel]\"></ng-content>\n\n <div *ngIf=\"eclTitle\" class=\"ecl-timeline__title\">{{ eclTitle }}</div>\n <ng-content select=\"[eclTimelineItemTitle]\"></ng-content>\n\n <div class=\"ecl-timeline__content\">\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n </div>\n</div>\n\n<div class=\"ecl-timeline__content\" *ngIf=\"isToggler\">\n <button eclButton *ngIf=\"hasDefaultToggler()\" (click)=\"onTogglerClick($event)\" variant=\"secondary\">\n <span eclButtonLabel *ngIf=\"isShowExpandLabel\">\n {{ expandLabel }}\n </span>\n <span eclButtonLabel *ngIf=\"isShowCollapseLabel\">\n {{ collapseLabel }}\n </span>\n <span eclButtonLabel *ngIf=\"isShowOneToggleLabel\">\n {{ toggleButtonLabel || 'ecl.timeline.TOGGLE-ITEMS' | translate }}\n </span>\n <ecl-icon icon=\"corner-arrow\" size=\"fluid\" [transform]=\"!isTogglerExpanded ? 'rotate-180' : ''\"></ecl-icon>\n </button>\n\n <ng-content select=\"ecl-timeline-item-toggler\"></ng-content>\n\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n</div>\n\n<ng-template #content>\n <ng-content></ng-content>\n</ng-template>", styles: ["ecl-timeline-item{display:list-item}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: EclButtonComponent, selector: "button[eclButton], button[ecl-button], a[eclButton]", inputs: ["variant", "containerStyleClass"] }, { kind: "directive", type: EclButtonLabelDirective, selector: "[eclButtonLabel]" }, { kind: "component", type: EclIconComponent, selector: "ecl-icon", inputs: ["iconSet", "icon", "size", "color", "transform", "ariaLabelledby", "role", "isInverted", "ariaHidden", "focusable"] }, { kind: "pipe", type: i2$1.TranslatePipe, name: "translate" }], encapsulation: i0.ViewEncapsulation.None }); }
16850
16859
  }
16851
16860
  __decorate([
16852
16861
  coerceBoolean
16853
16862
  ], EclTimelineItemComponent.prototype, "isTogglerExpanded", void 0);
16854
16863
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: EclTimelineItemComponent, decorators: [{
16855
16864
  type: Component,
16856
- args: [{ selector: 'ecl-timeline-item', encapsulation: ViewEncapsulation.None, template: "<div *ngIf=\"label\" class=\"ecl-timeline__label\">{{ label }}</div>\n<ng-content select=\"[eclTimelineItemLabel]\"></ng-content>\n\n<div *ngIf=\"eclTitle\" class=\"ecl-timeline__title\">{{ eclTitle }}</div>\n<ng-content select=\"[eclTimelineItemTitle]\"></ng-content>\n\n<div class=\"ecl-timeline__content\">\n <button eclButton *ngIf=\"hasDefaultToggler()\" (click)=\"onTogglerClick($event)\" variant=\"secondary\">\n <span eclButtonLabel>\n {{ toggleButtonLabel || 'ecl.timeline.TOGGLE-ITEMS' | translate }}\n </span>\n <ecl-icon icon=\"corner-arrow\" size=\"fluid\" [transform]=\"!isTogglerExpanded ? 'rotate-180' : ''\"></ecl-icon>\n </button>\n\n <ng-content select=\"ecl-timeline-item-toggler\"></ng-content>\n\n <ng-content></ng-content>\n</div>\n", styles: ["ecl-timeline-item{display:list-item}\n"] }]
16865
+ args: [{ selector: 'ecl-timeline-item', encapsulation: ViewEncapsulation.None, template: "<div class=\"ecl-timeline__tooltip\" *ngIf=\"!isToggler\">\n <div class=\"ecl-timeline__tooltip-arrow\"></div>\n <div *ngIf=\"label\" class=\"ecl-timeline__label\">{{ label }}</div>\n <ng-content select=\"[eclTimelineItemLabel]\"></ng-content>\n\n <div *ngIf=\"eclTitle\" class=\"ecl-timeline__title\">{{ eclTitle }}</div>\n <ng-content select=\"[eclTimelineItemTitle]\"></ng-content>\n\n <div class=\"ecl-timeline__content\">\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n </div>\n</div>\n\n<div class=\"ecl-timeline__content\" *ngIf=\"isToggler\">\n <button eclButton *ngIf=\"hasDefaultToggler()\" (click)=\"onTogglerClick($event)\" variant=\"secondary\">\n <span eclButtonLabel *ngIf=\"isShowExpandLabel\">\n {{ expandLabel }}\n </span>\n <span eclButtonLabel *ngIf=\"isShowCollapseLabel\">\n {{ collapseLabel }}\n </span>\n <span eclButtonLabel *ngIf=\"isShowOneToggleLabel\">\n {{ toggleButtonLabel || 'ecl.timeline.TOGGLE-ITEMS' | translate }}\n </span>\n <ecl-icon icon=\"corner-arrow\" size=\"fluid\" [transform]=\"!isTogglerExpanded ? 'rotate-180' : ''\"></ecl-icon>\n </button>\n\n <ng-content select=\"ecl-timeline-item-toggler\"></ng-content>\n\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n</div>\n\n<ng-template #content>\n <ng-content></ng-content>\n</ng-template>", styles: ["ecl-timeline-item{display:list-item}\n"] }]
16857
16866
  }], propDecorators: { label: [{
16858
16867
  type: Input
16859
16868
  }], eclTitle: [{
16860
16869
  type: Input
16861
16870
  }], toggleButtonLabel: [{
16862
16871
  type: Input
16872
+ }], expandLabel: [{
16873
+ type: Input
16874
+ }], collapseLabel: [{
16875
+ type: Input
16863
16876
  }], isTogglerExpanded: [{
16864
16877
  type: Input
16865
16878
  }], cssClasses: [{