@fundamental-ngx/core 0.38.2 → 0.38.3-rc.1

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.
@@ -86,7 +86,7 @@ export class FeedListItemComponent {
86
86
  }
87
87
  }
88
88
  FeedListItemComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.2", ngImport: i0, type: FeedListItemComponent, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
89
- FeedListItemComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.2", type: FeedListItemComponent, selector: "fd-feed-list-item", inputs: { class: "class", authorTitle: "authorTitle", authorLink: "authorLink", text: "text", maxChars: "maxChars", ariaLabel: "ariaLabel", ariaLabelledby: "ariaLabelledby", moreLabel: "moreLabel", lessLabel: "lessLabel", isRichText: "isRichText", mobile: "mobile" }, host: { properties: { "class.fd-feed-list__body": "this.isFeedListItemBody" } }, usesOnChanges: true, ngImport: i0, template: "<ng-container *ngIf=\"mobile; then headerTmpl; else avatarContent\"></ng-container>\n<div class=\"fd-feed-list__content\">\n <ng-container *ngIf=\"!mobile\">\n <ng-container *ngTemplateOutlet=\"actionContent\"></ng-container>\n </ng-container>\n <p class=\"fd-feed-list__text\">\n <ng-container *ngIf=\"!isRichText\">\n <ng-container *ngTemplateOutlet=\"feedContent; context: { $implicit: author }\"></ng-container>\n </ng-container>\n <ng-container *ngIf=\"isRichText\">\n <ng-container *ngTemplateOutlet=\"author\"></ng-container>\n <fd-formatted-text [htmlText]=\"text\"></fd-formatted-text>\n </ng-container>\n </p>\n <ng-container *ngIf=\"!mobile\">\n <ng-container *ngTemplateOutlet=\"footerContent\"></ng-container>\n </ng-container>\n</div>\n\n<ng-template #avatarContent>\n <ng-content select=\"fd-feed-list-avatar\"></ng-content>\n</ng-template>\n<ng-template #actionContent>\n <ng-content select=\"fd-feed-list-action\"></ng-content>\n</ng-template>\n<ng-template #footerContent>\n <ng-content select=\"fd-feed-list-footer\"></ng-content>\n</ng-template>\n\n<ng-template #author>\n <span class=\"fd-feed-list__name\">\n <ng-container *ngIf=\"authorLink; else authorTitleTemplate\">\n <a\n target=\"_blank\"\n fd-link\n [attr.title]=\"authorTitle\"\n [attr.href]=\"authorLink | safe: 'url'\"\n [emphasized]=\"true\"\n >\n <ng-container *ngTemplateOutlet=\"authorTitleTemplate\"></ng-container>\n </a> </ng-container\n >:\n </span>\n</ng-template>\n<ng-template #authorTitleTemplate>\n {{ authorTitle }}\n</ng-template>\n\n<ng-template #feedContent let-param>\n <ng-container *ngTemplateOutlet=\"param\"></ng-container>\n <span>\n {{ isCollapsed ? (text | truncate: maxChars) : text }}\n </span>\n <a\n fd-link\n class=\"fd-feed-list__link--more\"\n *ngIf=\"!isRichText && hasMore\"\n (click)=\"toggleTextView()\"\n [innerText]=\"\n isCollapsed\n ? moreLabel || ('coreFeedListItem.moreLabel' | fdTranslate)\n : lessLabel || ('coreFeedListItem.lessLabel' | fdTranslate)\n \"\n ></a>\n</ng-template>\n\n<ng-template #headerTmpl>\n <div class=\"fd-feed-list__wrapper\">\n <div class=\"fd-feed-list__wrapper fd-feed-list__wrapper--header\">\n <ng-container *ngTemplateOutlet=\"avatarContent\"></ng-container>\n <div>\n <ng-container *ngTemplateOutlet=\"author\"></ng-container>\n <ng-container *ngTemplateOutlet=\"footerContent\"></ng-container>\n </div>\n </div>\n <ng-container *ngTemplateOutlet=\"actionContent\"></ng-container>\n </div>\n</ng-template>\n", styles: [".fd-feed-list__name a{max-width:75%;display:inline-block;overflow:hidden;text-overflow:ellipsis;vertical-align:top;white-space:nowrap}.fd-feed-list__thumb{display:flex;align-items:center;justify-content:center;max-width:3rem;flex:0 0 3rem;height:3rem;overflow:hidden}.fd-feed-list__thumb img{width:100%;height:100%;object-fit:contain}.fd-feed-list__link--more{cursor:pointer;text-transform:initial}.fd-feed-list__link--more:hover{text-decoration:underline}\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.FormattedTextComponent, selector: "fd-formatted-text", inputs: ["htmlText", "convertedLinksDefaultTarget", "height", "width"], exportAs: ["fd-formatted-text"] }, { kind: "component", type: i3.LinkComponent, selector: "[fdLink], [fd-link], [fd-breadcrumb-link]", inputs: ["class", "emphasized", "disabled", "inverted", "subtle", "undecorated"] }, { kind: "pipe", type: i4.SafePipe, name: "safe" }, { kind: "pipe", type: i4.TruncatePipe, name: "truncate" }, { kind: "pipe", type: i5.FdTranslatePipe, name: "fdTranslate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
89
+ FeedListItemComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.2", type: FeedListItemComponent, selector: "fd-feed-list-item", inputs: { class: "class", authorTitle: "authorTitle", authorLink: "authorLink", text: "text", maxChars: "maxChars", ariaLabel: "ariaLabel", ariaLabelledby: "ariaLabelledby", moreLabel: "moreLabel", lessLabel: "lessLabel", isRichText: "isRichText", mobile: "mobile" }, host: { properties: { "class.fd-feed-list__body": "this.isFeedListItemBody" } }, usesOnChanges: true, ngImport: i0, template: "<ng-container *ngIf=\"mobile; then headerTmpl; else avatarContent\"></ng-container>\n<div class=\"fd-feed-list__content\">\n <ng-container *ngIf=\"!mobile\">\n <ng-container *ngTemplateOutlet=\"actionContent\"></ng-container>\n </ng-container>\n <p class=\"fd-feed-list__text\">\n <ng-container *ngIf=\"!isRichText\">\n <ng-container *ngTemplateOutlet=\"feedContent; context: { $implicit: author }\"></ng-container>\n </ng-container>\n <ng-container *ngIf=\"isRichText\">\n <ng-container *ngTemplateOutlet=\"author\"></ng-container>\n <fd-formatted-text [htmlText]=\"text\"></fd-formatted-text>\n </ng-container>\n </p>\n <ng-container *ngIf=\"!mobile\">\n <ng-container *ngTemplateOutlet=\"footerContent\"></ng-container>\n </ng-container>\n</div>\n\n<ng-template #avatarContent>\n <ng-content select=\"fd-feed-list-avatar\"></ng-content>\n</ng-template>\n<ng-template #actionContent>\n <ng-content select=\"fd-feed-list-action\"></ng-content>\n</ng-template>\n<ng-template #footerContent>\n <ng-content select=\"fd-feed-list-footer\"></ng-content>\n</ng-template>\n\n<ng-template #author>\n <span class=\"fd-feed-list__name\">\n <ng-container *ngIf=\"authorLink; else authorTitleTemplate\">\n <a\n target=\"_blank\"\n fd-link\n [attr.title]=\"authorTitle\"\n [attr.href]=\"authorLink | safe : 'url'\"\n [emphasized]=\"true\"\n >\n <ng-container *ngTemplateOutlet=\"authorTitleTemplate\"></ng-container>\n </a> </ng-container\n >:\n </span>\n</ng-template>\n<ng-template #authorTitleTemplate>\n {{ authorTitle }}\n</ng-template>\n\n<ng-template #feedContent let-param>\n <ng-container *ngTemplateOutlet=\"param\"></ng-container>\n <span>\n {{ isCollapsed ? (text | truncate : maxChars) : text }}\n </span>\n <a\n fd-link\n class=\"fd-feed-list__link--more\"\n tabindex=\"0\"\n *ngIf=\"!isRichText && hasMore\"\n (click)=\"toggleTextView()\"\n [innerText]=\"\n isCollapsed\n ? moreLabel || ('coreFeedListItem.moreLabel' | fdTranslate)\n : lessLabel || ('coreFeedListItem.lessLabel' | fdTranslate)\n \"\n ></a>\n</ng-template>\n\n<ng-template #headerTmpl>\n <div class=\"fd-feed-list__wrapper\">\n <div class=\"fd-feed-list__wrapper fd-feed-list__wrapper--header\">\n <ng-container *ngTemplateOutlet=\"avatarContent\"></ng-container>\n <div>\n <ng-container *ngTemplateOutlet=\"author\"></ng-container>\n <ng-container *ngTemplateOutlet=\"footerContent\"></ng-container>\n </div>\n </div>\n <ng-container *ngTemplateOutlet=\"actionContent\"></ng-container>\n </div>\n</ng-template>\n", styles: [".fd-feed-list__name a{max-width:75%;display:inline-block;overflow:hidden;text-overflow:ellipsis;vertical-align:top;white-space:nowrap}.fd-feed-list__thumb{display:flex;align-items:center;justify-content:center;max-width:3rem;flex:0 0 3rem;height:3rem;overflow:hidden}.fd-feed-list__thumb img{width:100%;height:100%;object-fit:contain}.fd-feed-list__link--more{cursor:pointer;text-transform:initial}.fd-feed-list__link--more:hover{text-decoration:underline}\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.FormattedTextComponent, selector: "fd-formatted-text", inputs: ["htmlText", "convertedLinksDefaultTarget", "height", "width"], exportAs: ["fd-formatted-text"] }, { kind: "component", type: i3.LinkComponent, selector: "[fdLink], [fd-link], [fd-breadcrumb-link]", inputs: ["class", "emphasized", "disabled", "inverted", "subtle", "undecorated"] }, { kind: "pipe", type: i4.SafePipe, name: "safe" }, { kind: "pipe", type: i4.TruncatePipe, name: "truncate" }, { kind: "pipe", type: i5.FdTranslatePipe, name: "fdTranslate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
90
90
  __decorate([
91
91
  applyCssClass,
92
92
  __metadata("design:type", Function),
@@ -95,7 +95,7 @@ __decorate([
95
95
  ], FeedListItemComponent.prototype, "buildComponentCssClass", null);
96
96
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.2", ngImport: i0, type: FeedListItemComponent, decorators: [{
97
97
  type: Component,
98
- args: [{ selector: 'fd-feed-list-item', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-container *ngIf=\"mobile; then headerTmpl; else avatarContent\"></ng-container>\n<div class=\"fd-feed-list__content\">\n <ng-container *ngIf=\"!mobile\">\n <ng-container *ngTemplateOutlet=\"actionContent\"></ng-container>\n </ng-container>\n <p class=\"fd-feed-list__text\">\n <ng-container *ngIf=\"!isRichText\">\n <ng-container *ngTemplateOutlet=\"feedContent; context: { $implicit: author }\"></ng-container>\n </ng-container>\n <ng-container *ngIf=\"isRichText\">\n <ng-container *ngTemplateOutlet=\"author\"></ng-container>\n <fd-formatted-text [htmlText]=\"text\"></fd-formatted-text>\n </ng-container>\n </p>\n <ng-container *ngIf=\"!mobile\">\n <ng-container *ngTemplateOutlet=\"footerContent\"></ng-container>\n </ng-container>\n</div>\n\n<ng-template #avatarContent>\n <ng-content select=\"fd-feed-list-avatar\"></ng-content>\n</ng-template>\n<ng-template #actionContent>\n <ng-content select=\"fd-feed-list-action\"></ng-content>\n</ng-template>\n<ng-template #footerContent>\n <ng-content select=\"fd-feed-list-footer\"></ng-content>\n</ng-template>\n\n<ng-template #author>\n <span class=\"fd-feed-list__name\">\n <ng-container *ngIf=\"authorLink; else authorTitleTemplate\">\n <a\n target=\"_blank\"\n fd-link\n [attr.title]=\"authorTitle\"\n [attr.href]=\"authorLink | safe: 'url'\"\n [emphasized]=\"true\"\n >\n <ng-container *ngTemplateOutlet=\"authorTitleTemplate\"></ng-container>\n </a> </ng-container\n >:\n </span>\n</ng-template>\n<ng-template #authorTitleTemplate>\n {{ authorTitle }}\n</ng-template>\n\n<ng-template #feedContent let-param>\n <ng-container *ngTemplateOutlet=\"param\"></ng-container>\n <span>\n {{ isCollapsed ? (text | truncate: maxChars) : text }}\n </span>\n <a\n fd-link\n class=\"fd-feed-list__link--more\"\n *ngIf=\"!isRichText && hasMore\"\n (click)=\"toggleTextView()\"\n [innerText]=\"\n isCollapsed\n ? moreLabel || ('coreFeedListItem.moreLabel' | fdTranslate)\n : lessLabel || ('coreFeedListItem.lessLabel' | fdTranslate)\n \"\n ></a>\n</ng-template>\n\n<ng-template #headerTmpl>\n <div class=\"fd-feed-list__wrapper\">\n <div class=\"fd-feed-list__wrapper fd-feed-list__wrapper--header\">\n <ng-container *ngTemplateOutlet=\"avatarContent\"></ng-container>\n <div>\n <ng-container *ngTemplateOutlet=\"author\"></ng-container>\n <ng-container *ngTemplateOutlet=\"footerContent\"></ng-container>\n </div>\n </div>\n <ng-container *ngTemplateOutlet=\"actionContent\"></ng-container>\n </div>\n</ng-template>\n", styles: [".fd-feed-list__name a{max-width:75%;display:inline-block;overflow:hidden;text-overflow:ellipsis;vertical-align:top;white-space:nowrap}.fd-feed-list__thumb{display:flex;align-items:center;justify-content:center;max-width:3rem;flex:0 0 3rem;height:3rem;overflow:hidden}.fd-feed-list__thumb img{width:100%;height:100%;object-fit:contain}.fd-feed-list__link--more{cursor:pointer;text-transform:initial}.fd-feed-list__link--more:hover{text-decoration:underline}\n"] }]
98
+ args: [{ selector: 'fd-feed-list-item', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-container *ngIf=\"mobile; then headerTmpl; else avatarContent\"></ng-container>\n<div class=\"fd-feed-list__content\">\n <ng-container *ngIf=\"!mobile\">\n <ng-container *ngTemplateOutlet=\"actionContent\"></ng-container>\n </ng-container>\n <p class=\"fd-feed-list__text\">\n <ng-container *ngIf=\"!isRichText\">\n <ng-container *ngTemplateOutlet=\"feedContent; context: { $implicit: author }\"></ng-container>\n </ng-container>\n <ng-container *ngIf=\"isRichText\">\n <ng-container *ngTemplateOutlet=\"author\"></ng-container>\n <fd-formatted-text [htmlText]=\"text\"></fd-formatted-text>\n </ng-container>\n </p>\n <ng-container *ngIf=\"!mobile\">\n <ng-container *ngTemplateOutlet=\"footerContent\"></ng-container>\n </ng-container>\n</div>\n\n<ng-template #avatarContent>\n <ng-content select=\"fd-feed-list-avatar\"></ng-content>\n</ng-template>\n<ng-template #actionContent>\n <ng-content select=\"fd-feed-list-action\"></ng-content>\n</ng-template>\n<ng-template #footerContent>\n <ng-content select=\"fd-feed-list-footer\"></ng-content>\n</ng-template>\n\n<ng-template #author>\n <span class=\"fd-feed-list__name\">\n <ng-container *ngIf=\"authorLink; else authorTitleTemplate\">\n <a\n target=\"_blank\"\n fd-link\n [attr.title]=\"authorTitle\"\n [attr.href]=\"authorLink | safe : 'url'\"\n [emphasized]=\"true\"\n >\n <ng-container *ngTemplateOutlet=\"authorTitleTemplate\"></ng-container>\n </a> </ng-container\n >:\n </span>\n</ng-template>\n<ng-template #authorTitleTemplate>\n {{ authorTitle }}\n</ng-template>\n\n<ng-template #feedContent let-param>\n <ng-container *ngTemplateOutlet=\"param\"></ng-container>\n <span>\n {{ isCollapsed ? (text | truncate : maxChars) : text }}\n </span>\n <a\n fd-link\n class=\"fd-feed-list__link--more\"\n tabindex=\"0\"\n *ngIf=\"!isRichText && hasMore\"\n (click)=\"toggleTextView()\"\n [innerText]=\"\n isCollapsed\n ? moreLabel || ('coreFeedListItem.moreLabel' | fdTranslate)\n : lessLabel || ('coreFeedListItem.lessLabel' | fdTranslate)\n \"\n ></a>\n</ng-template>\n\n<ng-template #headerTmpl>\n <div class=\"fd-feed-list__wrapper\">\n <div class=\"fd-feed-list__wrapper fd-feed-list__wrapper--header\">\n <ng-container *ngTemplateOutlet=\"avatarContent\"></ng-container>\n <div>\n <ng-container *ngTemplateOutlet=\"author\"></ng-container>\n <ng-container *ngTemplateOutlet=\"footerContent\"></ng-container>\n </div>\n </div>\n <ng-container *ngTemplateOutlet=\"actionContent\"></ng-container>\n </div>\n</ng-template>\n", styles: [".fd-feed-list__name a{max-width:75%;display:inline-block;overflow:hidden;text-overflow:ellipsis;vertical-align:top;white-space:nowrap}.fd-feed-list__thumb{display:flex;align-items:center;justify-content:center;max-width:3rem;flex:0 0 3rem;height:3rem;overflow:hidden}.fd-feed-list__thumb img{width:100%;height:100%;object-fit:contain}.fd-feed-list__link--more{cursor:pointer;text-transform:initial}.fd-feed-list__link--more:hover{text-decoration:underline}\n"] }]
99
99
  }], ctorParameters: function () { return [{ type: i0.ElementRef }]; }, propDecorators: { class: [{
100
100
  type: Input
101
101
  }], authorTitle: [{
@@ -122,4 +122,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.2", ngImpor
122
122
  type: HostBinding,
123
123
  args: ['class.fd-feed-list__body']
124
124
  }], buildComponentCssClass: [] } });
125
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmVlZC1saXN0LWl0ZW0uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb3JlL3NyYy9saWIvZmVlZC1saXN0LWl0ZW0vY29tcG9uZW50cy9pdGVtL2ZlZWQtbGlzdC1pdGVtLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29yZS9zcmMvbGliL2ZlZWQtbGlzdC1pdGVtL2NvbXBvbmVudHMvaXRlbS9mZWVkLWxpc3QtaXRlbS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM1QyxPQUFPLEVBQ0gsU0FBUyxFQUNULGlCQUFpQixFQUNqQix1QkFBdUIsRUFDdkIsS0FBSyxFQUVMLFVBQVUsRUFHYixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsYUFBYSxFQUFtQixNQUFNLDZCQUE2QixDQUFDO0FBRzdFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQzs7Ozs7OztBQVNqRCxNQUFNLE9BQU8scUJBQXFCO0lBdUY5QixjQUFjO0lBQ2QsWUFBNkIsV0FBdUI7UUFBdkIsZ0JBQVcsR0FBWCxXQUFXLENBQVk7UUEzRHBEOztXQUVHO1FBRUgsY0FBUyxHQUFHLEVBQUUsQ0FBQztRQXNCZjs7O1dBR0c7UUFFSCxlQUFVLEdBQUcsS0FBSyxDQUFDO1FBRW5COztXQUVHO1FBRUgsV0FBTSxHQUFHLEtBQUssQ0FBQztRQUVmLGNBQWM7UUFDZCxzQkFBaUIsR0FBRyxLQUFLLENBQUM7UUFFMUI7O1dBRUc7UUFFSCx1QkFBa0IsR0FBRyxJQUFJLENBQUM7UUFFMUI7O1dBRUc7UUFDSCxnQkFBVyxHQUFHLElBQUksQ0FBQztRQUVuQjs7V0FFRztRQUNILFlBQU8sR0FBRyxLQUFLLENBQUM7SUFHdUMsQ0FBQztJQUV4RCxjQUFjO0lBQ2QsVUFBVTtRQUNOLElBQUksSUFBSSxDQUFDLElBQUksRUFBRTtZQUNYLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQztTQUNuRDtJQUNMLENBQUM7SUFFRCxjQUFjO0lBQ2Qsa0JBQWtCO1FBQ2QsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQztJQUM1QyxDQUFDO0lBRUQsY0FBYztJQUNkLFFBQVE7UUFDSixJQUFJLENBQUMsc0JBQXNCLEVBQUUsQ0FBQztRQUM5QixJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRTtZQUNoQixJQUFJLENBQUMsa0JBQWtCLEVBQUUsQ0FBQztZQUMxQixJQUFJLENBQUMsaUJBQWlCLEdBQUcsSUFBSSxDQUFDO1NBQ2pDO1FBQ0QsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO0lBQ3RCLENBQUM7SUFFRCxjQUFjO0lBQ2QsV0FBVyxDQUFDLE9BQXNCO1FBQzlCLElBQUksT0FBTyxJQUFJLE9BQU8sSUFBSSxZQUFZLElBQUksT0FBTyxFQUFFO1lBQy9DLElBQUksQ0FBQyxzQkFBc0IsRUFBRSxDQUFDO1NBQ2pDO1FBQ0QsSUFBSSxDQUFDLGlCQUFpQixJQUFJLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO1FBQ3BELElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztJQUN0QixDQUFDO0lBRUQ7Ozs7T0FJRztJQUVILHNCQUFzQjtRQUNsQixPQUFPLENBQUMsY0FBYyxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxjQUFjLENBQUMsSUFBSSxlQUFlLENBQUMsQ0FBQztJQUMzRyxDQUFDO0lBRUQsY0FBYztJQUNkLFVBQVU7UUFDTixPQUFPLElBQUksQ0FBQyxXQUFXLENBQUM7SUFDNUIsQ0FBQztJQUVELGNBQWM7SUFDZCxjQUFjO1FBQ1YsSUFBSSxDQUFDLFdBQVcsR0FBRyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUM7SUFDekMsQ0FBQzs7a0hBM0lRLHFCQUFxQjtzR0FBckIscUJBQXFCLDJhQ3ZCbEMsNDFGQThFQTtBRHVFSTtJQUFDLGFBQWE7Ozs7bUVBR2I7MkZBaklRLHFCQUFxQjtrQkFQakMsU0FBUzsrQkFDSSxtQkFBbUIsaUJBR2QsaUJBQWlCLENBQUMsSUFBSSxtQkFDcEIsdUJBQXVCLENBQUMsTUFBTTtpR0FLL0MsS0FBSztzQkFESixLQUFLO2dCQU9OLFdBQVc7c0JBRFYsS0FBSztnQkFPTixVQUFVO3NCQURULEtBQUs7Z0JBT04sSUFBSTtzQkFESCxLQUFLO2dCQU9OLFFBQVE7c0JBRFAsS0FBSztnQkFPTixTQUFTO3NCQURSLEtBQUs7Z0JBT04sY0FBYztzQkFEYixLQUFLO2dCQVFOLFNBQVM7c0JBRFIsS0FBSztnQkFRTixTQUFTO3NCQURSLEtBQUs7Z0JBUU4sVUFBVTtzQkFEVCxLQUFLO2dCQU9OLE1BQU07c0JBREwsS0FBSztnQkFVTixrQkFBa0I7c0JBRGpCLFdBQVc7dUJBQUMsMEJBQTBCO2dCQXFEdkMsc0JBQXNCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSG9zdEJpbmRpbmcgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gICAgQ29tcG9uZW50LFxuICAgIFZpZXdFbmNhcHN1bGF0aW9uLFxuICAgIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICAgIElucHV0LFxuICAgIFNpbXBsZUNoYW5nZXMsXG4gICAgRWxlbWVudFJlZixcbiAgICBPbkluaXQsXG4gICAgT25DaGFuZ2VzXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgYXBwbHlDc3NDbGFzcywgQ3NzQ2xhc3NCdWlsZGVyIH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jb3JlL3V0aWxzJztcbmltcG9ydCB7IE51bGxhYmxlIH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jb3JlL3NoYXJlZCc7XG5cbmltcG9ydCB7IENTU19DTEFTU19OQU1FIH0gZnJvbSAnLi4vLi4vY29uc3RhbnRzJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdmZC1mZWVkLWxpc3QtaXRlbScsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2ZlZWQtbGlzdC1pdGVtLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9mZWVkLWxpc3QtaXRlbS5jb21wb25lbnQuc2NzcyddLFxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcbn0pXG5leHBvcnQgY2xhc3MgRmVlZExpc3RJdGVtQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkNoYW5nZXMsIENzc0NsYXNzQnVpbGRlciB7XG4gICAgLyoqIFVzZXIncyBjdXN0b20gY2xhc3NlcyAqL1xuICAgIEBJbnB1dCgpXG4gICAgY2xhc3M6IHN0cmluZztcblxuICAgIC8qKlxuICAgICAqIEF1dGhvciBvZiBmZWVkXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBhdXRob3JUaXRsZTogc3RyaW5nO1xuXG4gICAgLyoqXG4gICAgICogTGluayB0byBBdXRob3Igb2YgZmVlZFxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgYXV0aG9yTGluazogTnVsbGFibGU8c3RyaW5nPjtcblxuICAgIC8qKlxuICAgICAqIEZlZWQgdGV4dFxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgdGV4dDogc3RyaW5nO1xuXG4gICAgLyoqXG4gICAgICogTWF4IHByZXZpZXcgY2hhcmFjdGVycyBvZiBGZWVkIHRleHQuIElmIHlvdSBoYXZlIG1vcmUgdGhhbiBtYXggY2hhcmFjdGVycyB0ZXh0LCB5b3UgY2FuIHRvZ2dsZSBwcmV2aWV3L2Z1bGwgdGV4dCB3aXRoIG1vcmUvbGVzcyBidXR0b24uXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBtYXhDaGFyczogbnVtYmVyO1xuXG4gICAgLyoqXG4gICAgICogU2V0cyB0aGUgYGFyaWEtbGFiZWxgIGF0dHJpYnV0ZSB0byB0aGUgZWxlbWVudC5cbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIGFyaWFMYWJlbCA9ICcnO1xuXG4gICAgLyoqXG4gICAgICogYXJpYS1sYWJlbGxlZGJ5IGZvciBlbGVtZW50IGRlc2NyaWJpbmcuXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBhcmlhTGFiZWxsZWRieTogc3RyaW5nO1xuXG4gICAgLyoqXG4gICAgICogQGRlcHJlY2F0ZWQgdXNlIGkxOG4gY2FwYWJpbGl0aWVzIGluc3RlYWRcbiAgICAgKiBUZXh0IGZvciBtb3JlIGJ1dHRvblxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgbW9yZUxhYmVsOiBzdHJpbmc7XG5cbiAgICAvKipcbiAgICAgKiBAZGVwcmVjYXRlZCB1c2UgaTE4biBjYXBhYmlsaXRpZXMgaW5zdGVhZFxuICAgICAqIFRleHQgZm9yIGxlc3MgYnV0dG9uXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBsZXNzTGFiZWw6IHN0cmluZztcblxuICAgIC8qKlxuICAgICAqIEFwcGx5IHJpY2ggZmVlZCB0ZXh0LCBwbGVhc2Ugbm90ZSAtIHdlIHVzZSBhIGZvcm1hdHRlZCB0ZXh0IGNvbXBvbmVudCB3aXRoIHRoaXMgb3B0aW9uLCBpdCBoYXMgYSBsaXN0IG9mIGNvbnRyb2xsZWQgdGFncyBhbmQgYXR0aWJ1dGVzLlxuICAgICAqIFRoaXMgZmVhdHVyZSBzaG91bGQgYmUgaGFuZGxlZCB3aXRoIGNhcmUgYXMgaXQgYWxsb3dzIGZvciBjb3VudGxlc3MgY3VzdG9tIGxheW91dHMuXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBpc1JpY2hUZXh0ID0gZmFsc2U7XG5cbiAgICAvKipcbiAgICAgKiBBcHBseSBtb2JpbGUgdmlld1xuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgbW9iaWxlID0gZmFsc2U7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIG1heENoYXJzQXREZWZhdWx0ID0gZmFsc2U7XG5cbiAgICAvKipcbiAgICAgKiBBcHBseSBib2R5IGNsYXNzIGJ5IGRlZmF1bHRcbiAgICAgKi9cbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzLmZkLWZlZWQtbGlzdF9fYm9keScpXG4gICAgaXNGZWVkTGlzdEl0ZW1Cb2R5ID0gdHJ1ZTtcblxuICAgIC8qKlxuICAgICAqIFNob3dzIHRvZ2dsZSBzdGF0ZSBvZiBmZWVkIHRleHQgLSBtb3JlIG9yIGxlc3NcbiAgICAgKi9cbiAgICBpc0NvbGxhcHNlZCA9IHRydWU7XG5cbiAgICAvKipcbiAgICAgKiBTaG93cyBoYXZlIHlvdSBtb3JlIGxpbmUgdGhhbiBtYXggbGluZXNcbiAgICAgKi9cbiAgICBoYXNNb3JlID0gZmFsc2U7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVhZG9ubHkgX2VsZW1lbnRSZWY6IEVsZW1lbnRSZWYpIHt9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHNldEhhc01vcmUoKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLnRleHQpIHtcbiAgICAgICAgICAgIHRoaXMuaGFzTW9yZSA9IHRoaXMudGV4dC5sZW5ndGggPiB0aGlzLm1heENoYXJzO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBzZXREZWZhdWx0TWF4Q2hhcnMoKTogdm9pZCB7XG4gICAgICAgIHRoaXMubWF4Q2hhcnMgPSB0aGlzLm1vYmlsZSA/IDMwMCA6IDUwMDtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLmJ1aWxkQ29tcG9uZW50Q3NzQ2xhc3MoKTtcbiAgICAgICAgaWYgKCF0aGlzLm1heENoYXJzKSB7XG4gICAgICAgICAgICB0aGlzLnNldERlZmF1bHRNYXhDaGFycygpO1xuICAgICAgICAgICAgdGhpcy5tYXhDaGFyc0F0RGVmYXVsdCA9IHRydWU7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5zZXRIYXNNb3JlKCk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgICAgIGlmICgnY2xhc3MnIGluIGNoYW5nZXMgfHwgJ2lzUmljaFRleHQnIGluIGNoYW5nZXMpIHtcbiAgICAgICAgICAgIHRoaXMuYnVpbGRDb21wb25lbnRDc3NDbGFzcygpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMubWF4Q2hhcnNBdERlZmF1bHQgJiYgdGhpcy5zZXREZWZhdWx0TWF4Q2hhcnMoKTtcbiAgICAgICAgdGhpcy5zZXRIYXNNb3JlKCk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW5cbiAgICAgKiBDc3NDbGFzc0J1aWxkZXIgaW50ZXJmYWNlIGltcGxlbWVudGF0aW9uXG4gICAgICogZnVuY3Rpb24gbXVzdCByZXR1cm4gc2luZ2xlIHN0cmluZ1xuICAgICAqIGZ1bmN0aW9uIGlzIHJlc3BvbnNpYmxlIGZvciBvcmRlciB3aGljaCBjc3MgY2xhc3NlcyBhcmUgYXBwbGllZFxuICAgICAqL1xuICAgIEBhcHBseUNzc0NsYXNzXG4gICAgYnVpbGRDb21wb25lbnRDc3NDbGFzcygpOiBzdHJpbmdbXSB7XG4gICAgICAgIHJldHVybiBbQ1NTX0NMQVNTX05BTUUuaXRlbSwgdGhpcy5jbGFzcywgdGhpcy5pc1JpY2hUZXh0ID8gJycgOiBgJHtDU1NfQ0xBU1NfTkFNRS5pdGVtfS0tY29sbGFwc2libGVgXTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIGVsZW1lbnRSZWYoKTogRWxlbWVudFJlZjxhbnk+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2VsZW1lbnRSZWY7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICB0b2dnbGVUZXh0VmlldygpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5pc0NvbGxhcHNlZCA9ICF0aGlzLmlzQ29sbGFwc2VkO1xuICAgIH1cbn1cbiIsIjxuZy1jb250YWluZXIgKm5nSWY9XCJtb2JpbGU7IHRoZW4gaGVhZGVyVG1wbDsgZWxzZSBhdmF0YXJDb250ZW50XCI+PC9uZy1jb250YWluZXI+XG48ZGl2IGNsYXNzPVwiZmQtZmVlZC1saXN0X19jb250ZW50XCI+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFtb2JpbGVcIj5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImFjdGlvbkNvbnRlbnRcIj48L25nLWNvbnRhaW5lcj5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8cCBjbGFzcz1cImZkLWZlZWQtbGlzdF9fdGV4dFwiPlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIWlzUmljaFRleHRcIj5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJmZWVkQ29udGVudDsgY29udGV4dDogeyAkaW1wbGljaXQ6IGF1dGhvciB9XCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiaXNSaWNoVGV4dFwiPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImF1dGhvclwiPjwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgPGZkLWZvcm1hdHRlZC10ZXh0IFtodG1sVGV4dF09XCJ0ZXh0XCI+PC9mZC1mb3JtYXR0ZWQtdGV4dD5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgPC9wPlxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIhbW9iaWxlXCI+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJmb290ZXJDb250ZW50XCI+PC9uZy1jb250YWluZXI+XG4gICAgPC9uZy1jb250YWluZXI+XG48L2Rpdj5cblxuPG5nLXRlbXBsYXRlICNhdmF0YXJDb250ZW50PlxuICAgIDxuZy1jb250ZW50IHNlbGVjdD1cImZkLWZlZWQtbGlzdC1hdmF0YXJcIj48L25nLWNvbnRlbnQ+XG48L25nLXRlbXBsYXRlPlxuPG5nLXRlbXBsYXRlICNhY3Rpb25Db250ZW50PlxuICAgIDxuZy1jb250ZW50IHNlbGVjdD1cImZkLWZlZWQtbGlzdC1hY3Rpb25cIj48L25nLWNvbnRlbnQ+XG48L25nLXRlbXBsYXRlPlxuPG5nLXRlbXBsYXRlICNmb290ZXJDb250ZW50PlxuICAgIDxuZy1jb250ZW50IHNlbGVjdD1cImZkLWZlZWQtbGlzdC1mb290ZXJcIj48L25nLWNvbnRlbnQ+XG48L25nLXRlbXBsYXRlPlxuXG48bmctdGVtcGxhdGUgI2F1dGhvcj5cbiAgICA8c3BhbiBjbGFzcz1cImZkLWZlZWQtbGlzdF9fbmFtZVwiPlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiYXV0aG9yTGluazsgZWxzZSBhdXRob3JUaXRsZVRlbXBsYXRlXCI+XG4gICAgICAgICAgICA8YVxuICAgICAgICAgICAgICAgIHRhcmdldD1cIl9ibGFua1wiXG4gICAgICAgICAgICAgICAgZmQtbGlua1xuICAgICAgICAgICAgICAgIFthdHRyLnRpdGxlXT1cImF1dGhvclRpdGxlXCJcbiAgICAgICAgICAgICAgICBbYXR0ci5ocmVmXT1cImF1dGhvckxpbmsgfCBzYWZlOiAndXJsJ1wiXG4gICAgICAgICAgICAgICAgW2VtcGhhc2l6ZWRdPVwidHJ1ZVwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImF1dGhvclRpdGxlVGVtcGxhdGVcIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgIDwvYT4gPC9uZy1jb250YWluZXJcbiAgICAgICAgPjpcbiAgICA8L3NwYW4+XG48L25nLXRlbXBsYXRlPlxuPG5nLXRlbXBsYXRlICNhdXRob3JUaXRsZVRlbXBsYXRlPlxuICAgIHt7IGF1dGhvclRpdGxlIH19XG48L25nLXRlbXBsYXRlPlxuXG48bmctdGVtcGxhdGUgI2ZlZWRDb250ZW50IGxldC1wYXJhbT5cbiAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwicGFyYW1cIj48L25nLWNvbnRhaW5lcj5cbiAgICA8c3Bhbj5cbiAgICAgICAge3sgaXNDb2xsYXBzZWQgPyAodGV4dCB8IHRydW5jYXRlOiBtYXhDaGFycykgOiB0ZXh0IH19XG4gICAgPC9zcGFuPlxuICAgIDxhXG4gICAgICAgIGZkLWxpbmtcbiAgICAgICAgY2xhc3M9XCJmZC1mZWVkLWxpc3RfX2xpbmstLW1vcmVcIlxuICAgICAgICAqbmdJZj1cIiFpc1JpY2hUZXh0ICYmIGhhc01vcmVcIlxuICAgICAgICAoY2xpY2spPVwidG9nZ2xlVGV4dFZpZXcoKVwiXG4gICAgICAgIFtpbm5lclRleHRdPVwiXG4gICAgICAgICAgICBpc0NvbGxhcHNlZFxuICAgICAgICAgICAgICAgID8gbW9yZUxhYmVsIHx8ICgnY29yZUZlZWRMaXN0SXRlbS5tb3JlTGFiZWwnIHwgZmRUcmFuc2xhdGUpXG4gICAgICAgICAgICAgICAgOiBsZXNzTGFiZWwgfHwgKCdjb3JlRmVlZExpc3RJdGVtLmxlc3NMYWJlbCcgfCBmZFRyYW5zbGF0ZSlcbiAgICAgICAgXCJcbiAgICA+PC9hPlxuPC9uZy10ZW1wbGF0ZT5cblxuPG5nLXRlbXBsYXRlICNoZWFkZXJUbXBsPlxuICAgIDxkaXYgY2xhc3M9XCJmZC1mZWVkLWxpc3RfX3dyYXBwZXJcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImZkLWZlZWQtbGlzdF9fd3JhcHBlciBmZC1mZWVkLWxpc3RfX3dyYXBwZXItLWhlYWRlclwiPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImF2YXRhckNvbnRlbnRcIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgIDxkaXY+XG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImF1dGhvclwiPjwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJmb290ZXJDb250ZW50XCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJhY3Rpb25Db250ZW50XCI+PC9uZy1jb250YWluZXI+XG4gICAgPC9kaXY+XG48L25nLXRlbXBsYXRlPlxuIl19
125
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmVlZC1saXN0LWl0ZW0uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb3JlL3NyYy9saWIvZmVlZC1saXN0LWl0ZW0vY29tcG9uZW50cy9pdGVtL2ZlZWQtbGlzdC1pdGVtLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29yZS9zcmMvbGliL2ZlZWQtbGlzdC1pdGVtL2NvbXBvbmVudHMvaXRlbS9mZWVkLWxpc3QtaXRlbS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM1QyxPQUFPLEVBQ0gsU0FBUyxFQUNULGlCQUFpQixFQUNqQix1QkFBdUIsRUFDdkIsS0FBSyxFQUVMLFVBQVUsRUFHYixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsYUFBYSxFQUFtQixNQUFNLDZCQUE2QixDQUFDO0FBRzdFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQzs7Ozs7OztBQVNqRCxNQUFNLE9BQU8scUJBQXFCO0lBdUY5QixjQUFjO0lBQ2QsWUFBNkIsV0FBdUI7UUFBdkIsZ0JBQVcsR0FBWCxXQUFXLENBQVk7UUEzRHBEOztXQUVHO1FBRUgsY0FBUyxHQUFHLEVBQUUsQ0FBQztRQXNCZjs7O1dBR0c7UUFFSCxlQUFVLEdBQUcsS0FBSyxDQUFDO1FBRW5COztXQUVHO1FBRUgsV0FBTSxHQUFHLEtBQUssQ0FBQztRQUVmLGNBQWM7UUFDZCxzQkFBaUIsR0FBRyxLQUFLLENBQUM7UUFFMUI7O1dBRUc7UUFFSCx1QkFBa0IsR0FBRyxJQUFJLENBQUM7UUFFMUI7O1dBRUc7UUFDSCxnQkFBVyxHQUFHLElBQUksQ0FBQztRQUVuQjs7V0FFRztRQUNILFlBQU8sR0FBRyxLQUFLLENBQUM7SUFHdUMsQ0FBQztJQUV4RCxjQUFjO0lBQ2QsVUFBVTtRQUNOLElBQUksSUFBSSxDQUFDLElBQUksRUFBRTtZQUNYLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQztTQUNuRDtJQUNMLENBQUM7SUFFRCxjQUFjO0lBQ2Qsa0JBQWtCO1FBQ2QsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQztJQUM1QyxDQUFDO0lBRUQsY0FBYztJQUNkLFFBQVE7UUFDSixJQUFJLENBQUMsc0JBQXNCLEVBQUUsQ0FBQztRQUM5QixJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRTtZQUNoQixJQUFJLENBQUMsa0JBQWtCLEVBQUUsQ0FBQztZQUMxQixJQUFJLENBQUMsaUJBQWlCLEdBQUcsSUFBSSxDQUFDO1NBQ2pDO1FBQ0QsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO0lBQ3RCLENBQUM7SUFFRCxjQUFjO0lBQ2QsV0FBVyxDQUFDLE9BQXNCO1FBQzlCLElBQUksT0FBTyxJQUFJLE9BQU8sSUFBSSxZQUFZLElBQUksT0FBTyxFQUFFO1lBQy9DLElBQUksQ0FBQyxzQkFBc0IsRUFBRSxDQUFDO1NBQ2pDO1FBQ0QsSUFBSSxDQUFDLGlCQUFpQixJQUFJLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO1FBQ3BELElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztJQUN0QixDQUFDO0lBRUQ7Ozs7T0FJRztJQUVILHNCQUFzQjtRQUNsQixPQUFPLENBQUMsY0FBYyxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxjQUFjLENBQUMsSUFBSSxlQUFlLENBQUMsQ0FBQztJQUMzRyxDQUFDO0lBRUQsY0FBYztJQUNkLFVBQVU7UUFDTixPQUFPLElBQUksQ0FBQyxXQUFXLENBQUM7SUFDNUIsQ0FBQztJQUVELGNBQWM7SUFDZCxjQUFjO1FBQ1YsSUFBSSxDQUFDLFdBQVcsR0FBRyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUM7SUFDekMsQ0FBQzs7a0hBM0lRLHFCQUFxQjtzR0FBckIscUJBQXFCLDJhQ3ZCbEMsczNGQStFQTtBRHNFSTtJQUFDLGFBQWE7Ozs7bUVBR2I7MkZBaklRLHFCQUFxQjtrQkFQakMsU0FBUzsrQkFDSSxtQkFBbUIsaUJBR2QsaUJBQWlCLENBQUMsSUFBSSxtQkFDcEIsdUJBQXVCLENBQUMsTUFBTTtpR0FLL0MsS0FBSztzQkFESixLQUFLO2dCQU9OLFdBQVc7c0JBRFYsS0FBSztnQkFPTixVQUFVO3NCQURULEtBQUs7Z0JBT04sSUFBSTtzQkFESCxLQUFLO2dCQU9OLFFBQVE7c0JBRFAsS0FBSztnQkFPTixTQUFTO3NCQURSLEtBQUs7Z0JBT04sY0FBYztzQkFEYixLQUFLO2dCQVFOLFNBQVM7c0JBRFIsS0FBSztnQkFRTixTQUFTO3NCQURSLEtBQUs7Z0JBUU4sVUFBVTtzQkFEVCxLQUFLO2dCQU9OLE1BQU07c0JBREwsS0FBSztnQkFVTixrQkFBa0I7c0JBRGpCLFdBQVc7dUJBQUMsMEJBQTBCO2dCQXFEdkMsc0JBQXNCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSG9zdEJpbmRpbmcgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gICAgQ29tcG9uZW50LFxuICAgIFZpZXdFbmNhcHN1bGF0aW9uLFxuICAgIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICAgIElucHV0LFxuICAgIFNpbXBsZUNoYW5nZXMsXG4gICAgRWxlbWVudFJlZixcbiAgICBPbkluaXQsXG4gICAgT25DaGFuZ2VzXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgYXBwbHlDc3NDbGFzcywgQ3NzQ2xhc3NCdWlsZGVyIH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jb3JlL3V0aWxzJztcbmltcG9ydCB7IE51bGxhYmxlIH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jb3JlL3NoYXJlZCc7XG5cbmltcG9ydCB7IENTU19DTEFTU19OQU1FIH0gZnJvbSAnLi4vLi4vY29uc3RhbnRzJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdmZC1mZWVkLWxpc3QtaXRlbScsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2ZlZWQtbGlzdC1pdGVtLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9mZWVkLWxpc3QtaXRlbS5jb21wb25lbnQuc2NzcyddLFxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcbn0pXG5leHBvcnQgY2xhc3MgRmVlZExpc3RJdGVtQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkNoYW5nZXMsIENzc0NsYXNzQnVpbGRlciB7XG4gICAgLyoqIFVzZXIncyBjdXN0b20gY2xhc3NlcyAqL1xuICAgIEBJbnB1dCgpXG4gICAgY2xhc3M6IHN0cmluZztcblxuICAgIC8qKlxuICAgICAqIEF1dGhvciBvZiBmZWVkXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBhdXRob3JUaXRsZTogc3RyaW5nO1xuXG4gICAgLyoqXG4gICAgICogTGluayB0byBBdXRob3Igb2YgZmVlZFxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgYXV0aG9yTGluazogTnVsbGFibGU8c3RyaW5nPjtcblxuICAgIC8qKlxuICAgICAqIEZlZWQgdGV4dFxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgdGV4dDogc3RyaW5nO1xuXG4gICAgLyoqXG4gICAgICogTWF4IHByZXZpZXcgY2hhcmFjdGVycyBvZiBGZWVkIHRleHQuIElmIHlvdSBoYXZlIG1vcmUgdGhhbiBtYXggY2hhcmFjdGVycyB0ZXh0LCB5b3UgY2FuIHRvZ2dsZSBwcmV2aWV3L2Z1bGwgdGV4dCB3aXRoIG1vcmUvbGVzcyBidXR0b24uXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBtYXhDaGFyczogbnVtYmVyO1xuXG4gICAgLyoqXG4gICAgICogU2V0cyB0aGUgYGFyaWEtbGFiZWxgIGF0dHJpYnV0ZSB0byB0aGUgZWxlbWVudC5cbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIGFyaWFMYWJlbCA9ICcnO1xuXG4gICAgLyoqXG4gICAgICogYXJpYS1sYWJlbGxlZGJ5IGZvciBlbGVtZW50IGRlc2NyaWJpbmcuXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBhcmlhTGFiZWxsZWRieTogc3RyaW5nO1xuXG4gICAgLyoqXG4gICAgICogQGRlcHJlY2F0ZWQgdXNlIGkxOG4gY2FwYWJpbGl0aWVzIGluc3RlYWRcbiAgICAgKiBUZXh0IGZvciBtb3JlIGJ1dHRvblxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgbW9yZUxhYmVsOiBzdHJpbmc7XG5cbiAgICAvKipcbiAgICAgKiBAZGVwcmVjYXRlZCB1c2UgaTE4biBjYXBhYmlsaXRpZXMgaW5zdGVhZFxuICAgICAqIFRleHQgZm9yIGxlc3MgYnV0dG9uXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBsZXNzTGFiZWw6IHN0cmluZztcblxuICAgIC8qKlxuICAgICAqIEFwcGx5IHJpY2ggZmVlZCB0ZXh0LCBwbGVhc2Ugbm90ZSAtIHdlIHVzZSBhIGZvcm1hdHRlZCB0ZXh0IGNvbXBvbmVudCB3aXRoIHRoaXMgb3B0aW9uLCBpdCBoYXMgYSBsaXN0IG9mIGNvbnRyb2xsZWQgdGFncyBhbmQgYXR0aWJ1dGVzLlxuICAgICAqIFRoaXMgZmVhdHVyZSBzaG91bGQgYmUgaGFuZGxlZCB3aXRoIGNhcmUgYXMgaXQgYWxsb3dzIGZvciBjb3VudGxlc3MgY3VzdG9tIGxheW91dHMuXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBpc1JpY2hUZXh0ID0gZmFsc2U7XG5cbiAgICAvKipcbiAgICAgKiBBcHBseSBtb2JpbGUgdmlld1xuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgbW9iaWxlID0gZmFsc2U7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIG1heENoYXJzQXREZWZhdWx0ID0gZmFsc2U7XG5cbiAgICAvKipcbiAgICAgKiBBcHBseSBib2R5IGNsYXNzIGJ5IGRlZmF1bHRcbiAgICAgKi9cbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzLmZkLWZlZWQtbGlzdF9fYm9keScpXG4gICAgaXNGZWVkTGlzdEl0ZW1Cb2R5ID0gdHJ1ZTtcblxuICAgIC8qKlxuICAgICAqIFNob3dzIHRvZ2dsZSBzdGF0ZSBvZiBmZWVkIHRleHQgLSBtb3JlIG9yIGxlc3NcbiAgICAgKi9cbiAgICBpc0NvbGxhcHNlZCA9IHRydWU7XG5cbiAgICAvKipcbiAgICAgKiBTaG93cyBoYXZlIHlvdSBtb3JlIGxpbmUgdGhhbiBtYXggbGluZXNcbiAgICAgKi9cbiAgICBoYXNNb3JlID0gZmFsc2U7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVhZG9ubHkgX2VsZW1lbnRSZWY6IEVsZW1lbnRSZWYpIHt9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHNldEhhc01vcmUoKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLnRleHQpIHtcbiAgICAgICAgICAgIHRoaXMuaGFzTW9yZSA9IHRoaXMudGV4dC5sZW5ndGggPiB0aGlzLm1heENoYXJzO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBzZXREZWZhdWx0TWF4Q2hhcnMoKTogdm9pZCB7XG4gICAgICAgIHRoaXMubWF4Q2hhcnMgPSB0aGlzLm1vYmlsZSA/IDMwMCA6IDUwMDtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLmJ1aWxkQ29tcG9uZW50Q3NzQ2xhc3MoKTtcbiAgICAgICAgaWYgKCF0aGlzLm1heENoYXJzKSB7XG4gICAgICAgICAgICB0aGlzLnNldERlZmF1bHRNYXhDaGFycygpO1xuICAgICAgICAgICAgdGhpcy5tYXhDaGFyc0F0RGVmYXVsdCA9IHRydWU7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5zZXRIYXNNb3JlKCk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgICAgIGlmICgnY2xhc3MnIGluIGNoYW5nZXMgfHwgJ2lzUmljaFRleHQnIGluIGNoYW5nZXMpIHtcbiAgICAgICAgICAgIHRoaXMuYnVpbGRDb21wb25lbnRDc3NDbGFzcygpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMubWF4Q2hhcnNBdERlZmF1bHQgJiYgdGhpcy5zZXREZWZhdWx0TWF4Q2hhcnMoKTtcbiAgICAgICAgdGhpcy5zZXRIYXNNb3JlKCk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW5cbiAgICAgKiBDc3NDbGFzc0J1aWxkZXIgaW50ZXJmYWNlIGltcGxlbWVudGF0aW9uXG4gICAgICogZnVuY3Rpb24gbXVzdCByZXR1cm4gc2luZ2xlIHN0cmluZ1xuICAgICAqIGZ1bmN0aW9uIGlzIHJlc3BvbnNpYmxlIGZvciBvcmRlciB3aGljaCBjc3MgY2xhc3NlcyBhcmUgYXBwbGllZFxuICAgICAqL1xuICAgIEBhcHBseUNzc0NsYXNzXG4gICAgYnVpbGRDb21wb25lbnRDc3NDbGFzcygpOiBzdHJpbmdbXSB7XG4gICAgICAgIHJldHVybiBbQ1NTX0NMQVNTX05BTUUuaXRlbSwgdGhpcy5jbGFzcywgdGhpcy5pc1JpY2hUZXh0ID8gJycgOiBgJHtDU1NfQ0xBU1NfTkFNRS5pdGVtfS0tY29sbGFwc2libGVgXTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIGVsZW1lbnRSZWYoKTogRWxlbWVudFJlZjxhbnk+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2VsZW1lbnRSZWY7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICB0b2dnbGVUZXh0VmlldygpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5pc0NvbGxhcHNlZCA9ICF0aGlzLmlzQ29sbGFwc2VkO1xuICAgIH1cbn1cbiIsIjxuZy1jb250YWluZXIgKm5nSWY9XCJtb2JpbGU7IHRoZW4gaGVhZGVyVG1wbDsgZWxzZSBhdmF0YXJDb250ZW50XCI+PC9uZy1jb250YWluZXI+XG48ZGl2IGNsYXNzPVwiZmQtZmVlZC1saXN0X19jb250ZW50XCI+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFtb2JpbGVcIj5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImFjdGlvbkNvbnRlbnRcIj48L25nLWNvbnRhaW5lcj5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8cCBjbGFzcz1cImZkLWZlZWQtbGlzdF9fdGV4dFwiPlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIWlzUmljaFRleHRcIj5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJmZWVkQ29udGVudDsgY29udGV4dDogeyAkaW1wbGljaXQ6IGF1dGhvciB9XCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiaXNSaWNoVGV4dFwiPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImF1dGhvclwiPjwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgPGZkLWZvcm1hdHRlZC10ZXh0IFtodG1sVGV4dF09XCJ0ZXh0XCI+PC9mZC1mb3JtYXR0ZWQtdGV4dD5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgPC9wPlxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIhbW9iaWxlXCI+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJmb290ZXJDb250ZW50XCI+PC9uZy1jb250YWluZXI+XG4gICAgPC9uZy1jb250YWluZXI+XG48L2Rpdj5cblxuPG5nLXRlbXBsYXRlICNhdmF0YXJDb250ZW50PlxuICAgIDxuZy1jb250ZW50IHNlbGVjdD1cImZkLWZlZWQtbGlzdC1hdmF0YXJcIj48L25nLWNvbnRlbnQ+XG48L25nLXRlbXBsYXRlPlxuPG5nLXRlbXBsYXRlICNhY3Rpb25Db250ZW50PlxuICAgIDxuZy1jb250ZW50IHNlbGVjdD1cImZkLWZlZWQtbGlzdC1hY3Rpb25cIj48L25nLWNvbnRlbnQ+XG48L25nLXRlbXBsYXRlPlxuPG5nLXRlbXBsYXRlICNmb290ZXJDb250ZW50PlxuICAgIDxuZy1jb250ZW50IHNlbGVjdD1cImZkLWZlZWQtbGlzdC1mb290ZXJcIj48L25nLWNvbnRlbnQ+XG48L25nLXRlbXBsYXRlPlxuXG48bmctdGVtcGxhdGUgI2F1dGhvcj5cbiAgICA8c3BhbiBjbGFzcz1cImZkLWZlZWQtbGlzdF9fbmFtZVwiPlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiYXV0aG9yTGluazsgZWxzZSBhdXRob3JUaXRsZVRlbXBsYXRlXCI+XG4gICAgICAgICAgICA8YVxuICAgICAgICAgICAgICAgIHRhcmdldD1cIl9ibGFua1wiXG4gICAgICAgICAgICAgICAgZmQtbGlua1xuICAgICAgICAgICAgICAgIFthdHRyLnRpdGxlXT1cImF1dGhvclRpdGxlXCJcbiAgICAgICAgICAgICAgICBbYXR0ci5ocmVmXT1cImF1dGhvckxpbmsgfCBzYWZlIDogJ3VybCdcIlxuICAgICAgICAgICAgICAgIFtlbXBoYXNpemVkXT1cInRydWVcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJhdXRob3JUaXRsZVRlbXBsYXRlXCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICA8L2E+IDwvbmctY29udGFpbmVyXG4gICAgICAgID46XG4gICAgPC9zcGFuPlxuPC9uZy10ZW1wbGF0ZT5cbjxuZy10ZW1wbGF0ZSAjYXV0aG9yVGl0bGVUZW1wbGF0ZT5cbiAgICB7eyBhdXRob3JUaXRsZSB9fVxuPC9uZy10ZW1wbGF0ZT5cblxuPG5nLXRlbXBsYXRlICNmZWVkQ29udGVudCBsZXQtcGFyYW0+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cInBhcmFtXCI+PC9uZy1jb250YWluZXI+XG4gICAgPHNwYW4+XG4gICAgICAgIHt7IGlzQ29sbGFwc2VkID8gKHRleHQgfCB0cnVuY2F0ZSA6IG1heENoYXJzKSA6IHRleHQgfX1cbiAgICA8L3NwYW4+XG4gICAgPGFcbiAgICAgICAgZmQtbGlua1xuICAgICAgICBjbGFzcz1cImZkLWZlZWQtbGlzdF9fbGluay0tbW9yZVwiXG4gICAgICAgIHRhYmluZGV4PVwiMFwiXG4gICAgICAgICpuZ0lmPVwiIWlzUmljaFRleHQgJiYgaGFzTW9yZVwiXG4gICAgICAgIChjbGljayk9XCJ0b2dnbGVUZXh0VmlldygpXCJcbiAgICAgICAgW2lubmVyVGV4dF09XCJcbiAgICAgICAgICAgIGlzQ29sbGFwc2VkXG4gICAgICAgICAgICAgICAgPyBtb3JlTGFiZWwgfHwgKCdjb3JlRmVlZExpc3RJdGVtLm1vcmVMYWJlbCcgfCBmZFRyYW5zbGF0ZSlcbiAgICAgICAgICAgICAgICA6IGxlc3NMYWJlbCB8fCAoJ2NvcmVGZWVkTGlzdEl0ZW0ubGVzc0xhYmVsJyB8IGZkVHJhbnNsYXRlKVxuICAgICAgICBcIlxuICAgID48L2E+XG48L25nLXRlbXBsYXRlPlxuXG48bmctdGVtcGxhdGUgI2hlYWRlclRtcGw+XG4gICAgPGRpdiBjbGFzcz1cImZkLWZlZWQtbGlzdF9fd3JhcHBlclwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZmQtZmVlZC1saXN0X193cmFwcGVyIGZkLWZlZWQtbGlzdF9fd3JhcHBlci0taGVhZGVyXCI+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiYXZhdGFyQ29udGVudFwiPjwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiYXV0aG9yXCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImZvb3RlckNvbnRlbnRcIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImFjdGlvbkNvbnRlbnRcIj48L25nLWNvbnRhaW5lcj5cbiAgICA8L2Rpdj5cbjwvbmctdGVtcGxhdGU+XG4iXX0=
@@ -22,13 +22,13 @@ export class TimelineNodeComponent {
22
22
  }
23
23
  }
24
24
  TimelineNodeComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.2", ngImport: i0, type: TimelineNodeComponent, deps: [{ token: i0.ElementRef }, { token: i1.TimelinePositionControlService }], target: i0.ɵɵFactoryTarget.Component });
25
- TimelineNodeComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.2", type: TimelineNodeComponent, selector: "fd-timeline-node", inputs: { glyph: "glyph", ariaLabel: "ariaLabel" }, host: { properties: { "class.fd-timeline__node-wrapper--icon": "!!glyph" }, classAttribute: "fd-timeline__node-wrapper" }, viewQueries: [{ propertyName: "lineEl", first: true, predicate: ["lineEl"], descendants: true }], ngImport: i0, template: "<div class=\"fd-timeline__node-container\">\n <div class=\"fd-timeline__icon-wrapper\">\n <div class=\"fd-timeline__node\" [class.fd-timeline__node--icon]=\"!!glyph\">\n <fd-icon *ngIf=\"glyph\" [glyph]=\"glyph\"></fd-icon>\n </div>\n </div>\n <div #lineEl class=\"fd-timeline__connecting-line\"></div>\n</div>\n<div tabindex=\"0\" role=\"timelineitem\" [attr.aria-label]=\"ariaLabel\" class=\"fd-timeline__post\">\n <ng-content></ng-content>\n</div>\n", dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3.IconComponent, selector: "fd-icon", inputs: ["glyph", "font", "class", "ariaLabel"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
25
+ TimelineNodeComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.2", type: TimelineNodeComponent, selector: "fd-timeline-node", inputs: { glyph: "glyph", ariaLabel: "ariaLabel" }, host: { properties: { "class.fd-timeline__node-wrapper--icon": "!!glyph" }, classAttribute: "fd-timeline__node-wrapper" }, viewQueries: [{ propertyName: "lineEl", first: true, predicate: ["lineEl"], descendants: true }], ngImport: i0, template: "<div class=\"fd-timeline__node-container\">\n <div class=\"fd-timeline__icon-wrapper\">\n <div class=\"fd-timeline__node\" [class.fd-timeline__node--icon]=\"!!glyph\">\n <fd-icon *ngIf=\"glyph\" [glyph]=\"glyph\"></fd-icon>\n </div>\n </div>\n <div #lineEl class=\"fd-timeline__connecting-line\"></div>\n</div>\n<div role=\"timelineitem\" [attr.aria-label]=\"ariaLabel\" class=\"fd-timeline__post\">\n <ng-content></ng-content>\n</div>\n", dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3.IconComponent, selector: "fd-icon", inputs: ["glyph", "font", "class", "ariaLabel"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
26
26
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.2", ngImport: i0, type: TimelineNodeComponent, decorators: [{
27
27
  type: Component,
28
28
  args: [{ selector: 'fd-timeline-node', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, host: {
29
29
  class: 'fd-timeline__node-wrapper',
30
30
  '[class.fd-timeline__node-wrapper--icon]': '!!glyph'
31
- }, template: "<div class=\"fd-timeline__node-container\">\n <div class=\"fd-timeline__icon-wrapper\">\n <div class=\"fd-timeline__node\" [class.fd-timeline__node--icon]=\"!!glyph\">\n <fd-icon *ngIf=\"glyph\" [glyph]=\"glyph\"></fd-icon>\n </div>\n </div>\n <div #lineEl class=\"fd-timeline__connecting-line\"></div>\n</div>\n<div tabindex=\"0\" role=\"timelineitem\" [attr.aria-label]=\"ariaLabel\" class=\"fd-timeline__post\">\n <ng-content></ng-content>\n</div>\n" }]
31
+ }, template: "<div class=\"fd-timeline__node-container\">\n <div class=\"fd-timeline__icon-wrapper\">\n <div class=\"fd-timeline__node\" [class.fd-timeline__node--icon]=\"!!glyph\">\n <fd-icon *ngIf=\"glyph\" [glyph]=\"glyph\"></fd-icon>\n </div>\n </div>\n <div #lineEl class=\"fd-timeline__connecting-line\"></div>\n</div>\n<div role=\"timelineitem\" [attr.aria-label]=\"ariaLabel\" class=\"fd-timeline__post\">\n <ng-content></ng-content>\n</div>\n" }]
32
32
  }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i1.TimelinePositionControlService }]; }, propDecorators: { glyph: [{
33
33
  type: Input
34
34
  }], ariaLabel: [{
@@ -37,4 +37,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.2", ngImpor
37
37
  type: ViewChild,
38
38
  args: ['lineEl']
39
39
  }] } });
40
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGltZWxpbmUtbm9kZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvcmUvc3JjL2xpYi90aW1lbGluZS9jb21wb25lbnRzL3RpbWVsaW5lLW5vZGUvdGltZWxpbmUtbm9kZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvcmUvc3JjL2xpYi90aW1lbGluZS9jb21wb25lbnRzL3RpbWVsaW5lLW5vZGUvdGltZWxpbmUtbm9kZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0gsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxVQUFVLEVBQ1YsS0FBSyxFQUdMLFNBQVMsRUFDVCxpQkFBaUIsRUFDcEIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLDhCQUE4QixFQUFFLE1BQU0sa0RBQWtELENBQUM7Ozs7O0FBYWxHLE1BQU0sT0FBTyxxQkFBcUI7SUFhOUIsY0FBYztJQUNkLFlBQW1CLEVBQWMsRUFBVSx3QkFBd0Q7UUFBaEYsT0FBRSxHQUFGLEVBQUUsQ0FBWTtRQUFVLDZCQUF3QixHQUF4Qix3QkFBd0IsQ0FBZ0M7UUFUbkcsZ0RBQWdEO1FBRWhELGNBQVMsR0FBRyxjQUFjLENBQUM7SUFPMkUsQ0FBQztJQUV2RyxjQUFjO0lBQ2QsUUFBUTtRQUNKLElBQUksQ0FBQyx3QkFBd0IsQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDckQsQ0FBQztJQUVELGNBQWM7SUFDZCxXQUFXO1FBQ1AsSUFBSSxDQUFDLHdCQUF3QixDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNuRCxDQUFDOztrSEF4QlEscUJBQXFCO3NHQUFyQixxQkFBcUIseVVDdkJsQywyZUFXQTsyRkRZYSxxQkFBcUI7a0JBVmpDLFNBQVM7K0JBQ0ksa0JBQWtCLGlCQUViLGlCQUFpQixDQUFDLElBQUksbUJBQ3BCLHVCQUF1QixDQUFDLE1BQU0sUUFDekM7d0JBQ0YsS0FBSyxFQUFFLDJCQUEyQjt3QkFDbEMseUNBQXlDLEVBQUUsU0FBUztxQkFDdkQ7OElBS0QsS0FBSztzQkFESixLQUFLO2dCQUtOLFNBQVM7c0JBRFIsS0FBSztnQkFLTixNQUFNO3NCQURMLFNBQVM7dUJBQUMsUUFBUSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gICAgQ29tcG9uZW50LFxuICAgIEVsZW1lbnRSZWYsXG4gICAgSW5wdXQsXG4gICAgT25EZXN0cm95LFxuICAgIE9uSW5pdCxcbiAgICBWaWV3Q2hpbGQsXG4gICAgVmlld0VuY2Fwc3VsYXRpb25cbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBUaW1lbGluZVBvc2l0aW9uQ29udHJvbFNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy90aW1lbGluZS1wb3NpdGlvbi1jb250cm9sLnNlcnZpY2UnO1xuaW1wb3J0IHsgVGltZWxpbmVOb2RlQ29tcG9uZW50SW50ZXJmYWNlIH0gZnJvbSAnLi90aW1lbGluZS1ub2RlLWNvbXBvbmVudC5pbnRlcmZhY2UnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2ZkLXRpbWVsaW5lLW5vZGUnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi90aW1lbGluZS1ub2RlLmNvbXBvbmVudC5odG1sJyxcbiAgICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIGhvc3Q6IHtcbiAgICAgICAgY2xhc3M6ICdmZC10aW1lbGluZV9fbm9kZS13cmFwcGVyJyxcbiAgICAgICAgJ1tjbGFzcy5mZC10aW1lbGluZV9fbm9kZS13cmFwcGVyLS1pY29uXSc6ICchIWdseXBoJ1xuICAgIH1cbn0pXG5leHBvcnQgY2xhc3MgVGltZWxpbmVOb2RlQ29tcG9uZW50IGltcGxlbWVudHMgVGltZWxpbmVOb2RlQ29tcG9uZW50SW50ZXJmYWNlLCBPbkluaXQsIE9uRGVzdHJveSB7XG4gICAgLyoqIEdseXBoIG9mIHRoZSBjdXJyZW50IHRpbWVsaW5lIG5vZGUuKi9cbiAgICBASW5wdXQoKVxuICAgIGdseXBoOiBzdHJpbmc7XG5cbiAgICAvKiogQXJpYSBsYWJlbCBmb3IgdGhlIGN1cnJlbnQgdGltZWxpbmUgbm9kZS4gKi9cbiAgICBASW5wdXQoKVxuICAgIGFyaWFMYWJlbCA9ICd0aW1lbGluZWl0ZW0nO1xuXG4gICAgLyoqIFJlZmVyZW5jZSB0byB0aGUgbGluZSBvZiB0aW1lbGluZSBub2RlKi9cbiAgICBAVmlld0NoaWxkKCdsaW5lRWwnKVxuICAgIGxpbmVFbDogRWxlbWVudFJlZjtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgY29uc3RydWN0b3IocHVibGljIGVsOiBFbGVtZW50UmVmLCBwcml2YXRlIF90aW1lbGluZVBvc2l0aW9uQ29udHJvbDogVGltZWxpbmVQb3NpdGlvbkNvbnRyb2xTZXJ2aWNlKSB7fVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fdGltZWxpbmVQb3NpdGlvbkNvbnRyb2wucmVnaXN0ZXJOb2RlKHRoaXMpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX3RpbWVsaW5lUG9zaXRpb25Db250cm9sLnJlbW92ZU5vZGUodGhpcyk7XG4gICAgfVxufVxuIiwiPGRpdiBjbGFzcz1cImZkLXRpbWVsaW5lX19ub2RlLWNvbnRhaW5lclwiPlxuICAgIDxkaXYgY2xhc3M9XCJmZC10aW1lbGluZV9faWNvbi13cmFwcGVyXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJmZC10aW1lbGluZV9fbm9kZVwiIFtjbGFzcy5mZC10aW1lbGluZV9fbm9kZS0taWNvbl09XCIhIWdseXBoXCI+XG4gICAgICAgICAgICA8ZmQtaWNvbiAqbmdJZj1cImdseXBoXCIgW2dseXBoXT1cImdseXBoXCI+PC9mZC1pY29uPlxuICAgICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2ICNsaW5lRWwgY2xhc3M9XCJmZC10aW1lbGluZV9fY29ubmVjdGluZy1saW5lXCI+PC9kaXY+XG48L2Rpdj5cbjxkaXYgdGFiaW5kZXg9XCIwXCIgcm9sZT1cInRpbWVsaW5laXRlbVwiIFthdHRyLmFyaWEtbGFiZWxdPVwiYXJpYUxhYmVsXCIgY2xhc3M9XCJmZC10aW1lbGluZV9fcG9zdFwiPlxuICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbjwvZGl2PlxuIl19
40
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGltZWxpbmUtbm9kZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvcmUvc3JjL2xpYi90aW1lbGluZS9jb21wb25lbnRzL3RpbWVsaW5lLW5vZGUvdGltZWxpbmUtbm9kZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvcmUvc3JjL2xpYi90aW1lbGluZS9jb21wb25lbnRzL3RpbWVsaW5lLW5vZGUvdGltZWxpbmUtbm9kZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0gsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxVQUFVLEVBQ1YsS0FBSyxFQUdMLFNBQVMsRUFDVCxpQkFBaUIsRUFDcEIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLDhCQUE4QixFQUFFLE1BQU0sa0RBQWtELENBQUM7Ozs7O0FBYWxHLE1BQU0sT0FBTyxxQkFBcUI7SUFhOUIsY0FBYztJQUNkLFlBQW1CLEVBQWMsRUFBVSx3QkFBd0Q7UUFBaEYsT0FBRSxHQUFGLEVBQUUsQ0FBWTtRQUFVLDZCQUF3QixHQUF4Qix3QkFBd0IsQ0FBZ0M7UUFUbkcsZ0RBQWdEO1FBRWhELGNBQVMsR0FBRyxjQUFjLENBQUM7SUFPMkUsQ0FBQztJQUV2RyxjQUFjO0lBQ2QsUUFBUTtRQUNKLElBQUksQ0FBQyx3QkFBd0IsQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDckQsQ0FBQztJQUVELGNBQWM7SUFDZCxXQUFXO1FBQ1AsSUFBSSxDQUFDLHdCQUF3QixDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNuRCxDQUFDOztrSEF4QlEscUJBQXFCO3NHQUFyQixxQkFBcUIseVVDdkJsQyw0ZEFXQTsyRkRZYSxxQkFBcUI7a0JBVmpDLFNBQVM7K0JBQ0ksa0JBQWtCLGlCQUViLGlCQUFpQixDQUFDLElBQUksbUJBQ3BCLHVCQUF1QixDQUFDLE1BQU0sUUFDekM7d0JBQ0YsS0FBSyxFQUFFLDJCQUEyQjt3QkFDbEMseUNBQXlDLEVBQUUsU0FBUztxQkFDdkQ7OElBS0QsS0FBSztzQkFESixLQUFLO2dCQUtOLFNBQVM7c0JBRFIsS0FBSztnQkFLTixNQUFNO3NCQURMLFNBQVM7dUJBQUMsUUFBUSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gICAgQ29tcG9uZW50LFxuICAgIEVsZW1lbnRSZWYsXG4gICAgSW5wdXQsXG4gICAgT25EZXN0cm95LFxuICAgIE9uSW5pdCxcbiAgICBWaWV3Q2hpbGQsXG4gICAgVmlld0VuY2Fwc3VsYXRpb25cbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBUaW1lbGluZVBvc2l0aW9uQ29udHJvbFNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy90aW1lbGluZS1wb3NpdGlvbi1jb250cm9sLnNlcnZpY2UnO1xuaW1wb3J0IHsgVGltZWxpbmVOb2RlQ29tcG9uZW50SW50ZXJmYWNlIH0gZnJvbSAnLi90aW1lbGluZS1ub2RlLWNvbXBvbmVudC5pbnRlcmZhY2UnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2ZkLXRpbWVsaW5lLW5vZGUnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi90aW1lbGluZS1ub2RlLmNvbXBvbmVudC5odG1sJyxcbiAgICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIGhvc3Q6IHtcbiAgICAgICAgY2xhc3M6ICdmZC10aW1lbGluZV9fbm9kZS13cmFwcGVyJyxcbiAgICAgICAgJ1tjbGFzcy5mZC10aW1lbGluZV9fbm9kZS13cmFwcGVyLS1pY29uXSc6ICchIWdseXBoJ1xuICAgIH1cbn0pXG5leHBvcnQgY2xhc3MgVGltZWxpbmVOb2RlQ29tcG9uZW50IGltcGxlbWVudHMgVGltZWxpbmVOb2RlQ29tcG9uZW50SW50ZXJmYWNlLCBPbkluaXQsIE9uRGVzdHJveSB7XG4gICAgLyoqIEdseXBoIG9mIHRoZSBjdXJyZW50IHRpbWVsaW5lIG5vZGUuKi9cbiAgICBASW5wdXQoKVxuICAgIGdseXBoOiBzdHJpbmc7XG5cbiAgICAvKiogQXJpYSBsYWJlbCBmb3IgdGhlIGN1cnJlbnQgdGltZWxpbmUgbm9kZS4gKi9cbiAgICBASW5wdXQoKVxuICAgIGFyaWFMYWJlbCA9ICd0aW1lbGluZWl0ZW0nO1xuXG4gICAgLyoqIFJlZmVyZW5jZSB0byB0aGUgbGluZSBvZiB0aW1lbGluZSBub2RlKi9cbiAgICBAVmlld0NoaWxkKCdsaW5lRWwnKVxuICAgIGxpbmVFbDogRWxlbWVudFJlZjtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgY29uc3RydWN0b3IocHVibGljIGVsOiBFbGVtZW50UmVmLCBwcml2YXRlIF90aW1lbGluZVBvc2l0aW9uQ29udHJvbDogVGltZWxpbmVQb3NpdGlvbkNvbnRyb2xTZXJ2aWNlKSB7fVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fdGltZWxpbmVQb3NpdGlvbkNvbnRyb2wucmVnaXN0ZXJOb2RlKHRoaXMpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX3RpbWVsaW5lUG9zaXRpb25Db250cm9sLnJlbW92ZU5vZGUodGhpcyk7XG4gICAgfVxufVxuIiwiPGRpdiBjbGFzcz1cImZkLXRpbWVsaW5lX19ub2RlLWNvbnRhaW5lclwiPlxuICAgIDxkaXYgY2xhc3M9XCJmZC10aW1lbGluZV9faWNvbi13cmFwcGVyXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJmZC10aW1lbGluZV9fbm9kZVwiIFtjbGFzcy5mZC10aW1lbGluZV9fbm9kZS0taWNvbl09XCIhIWdseXBoXCI+XG4gICAgICAgICAgICA8ZmQtaWNvbiAqbmdJZj1cImdseXBoXCIgW2dseXBoXT1cImdseXBoXCI+PC9mZC1pY29uPlxuICAgICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2ICNsaW5lRWwgY2xhc3M9XCJmZC10aW1lbGluZV9fY29ubmVjdGluZy1saW5lXCI+PC9kaXY+XG48L2Rpdj5cbjxkaXYgcm9sZT1cInRpbWVsaW5laXRlbVwiIFthdHRyLmFyaWEtbGFiZWxdPVwiYXJpYUxhYmVsXCIgY2xhc3M9XCJmZC10aW1lbGluZV9fcG9zdFwiPlxuICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbjwvZGl2PlxuIl19
@@ -94,7 +94,7 @@ class FeedListItemComponent {
94
94
  }
95
95
  }
96
96
  FeedListItemComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.2", ngImport: i0, type: FeedListItemComponent, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
97
- FeedListItemComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.2", type: FeedListItemComponent, selector: "fd-feed-list-item", inputs: { class: "class", authorTitle: "authorTitle", authorLink: "authorLink", text: "text", maxChars: "maxChars", ariaLabel: "ariaLabel", ariaLabelledby: "ariaLabelledby", moreLabel: "moreLabel", lessLabel: "lessLabel", isRichText: "isRichText", mobile: "mobile" }, host: { properties: { "class.fd-feed-list__body": "this.isFeedListItemBody" } }, usesOnChanges: true, ngImport: i0, template: "<ng-container *ngIf=\"mobile; then headerTmpl; else avatarContent\"></ng-container>\n<div class=\"fd-feed-list__content\">\n <ng-container *ngIf=\"!mobile\">\n <ng-container *ngTemplateOutlet=\"actionContent\"></ng-container>\n </ng-container>\n <p class=\"fd-feed-list__text\">\n <ng-container *ngIf=\"!isRichText\">\n <ng-container *ngTemplateOutlet=\"feedContent; context: { $implicit: author }\"></ng-container>\n </ng-container>\n <ng-container *ngIf=\"isRichText\">\n <ng-container *ngTemplateOutlet=\"author\"></ng-container>\n <fd-formatted-text [htmlText]=\"text\"></fd-formatted-text>\n </ng-container>\n </p>\n <ng-container *ngIf=\"!mobile\">\n <ng-container *ngTemplateOutlet=\"footerContent\"></ng-container>\n </ng-container>\n</div>\n\n<ng-template #avatarContent>\n <ng-content select=\"fd-feed-list-avatar\"></ng-content>\n</ng-template>\n<ng-template #actionContent>\n <ng-content select=\"fd-feed-list-action\"></ng-content>\n</ng-template>\n<ng-template #footerContent>\n <ng-content select=\"fd-feed-list-footer\"></ng-content>\n</ng-template>\n\n<ng-template #author>\n <span class=\"fd-feed-list__name\">\n <ng-container *ngIf=\"authorLink; else authorTitleTemplate\">\n <a\n target=\"_blank\"\n fd-link\n [attr.title]=\"authorTitle\"\n [attr.href]=\"authorLink | safe: 'url'\"\n [emphasized]=\"true\"\n >\n <ng-container *ngTemplateOutlet=\"authorTitleTemplate\"></ng-container>\n </a> </ng-container\n >:\n </span>\n</ng-template>\n<ng-template #authorTitleTemplate>\n {{ authorTitle }}\n</ng-template>\n\n<ng-template #feedContent let-param>\n <ng-container *ngTemplateOutlet=\"param\"></ng-container>\n <span>\n {{ isCollapsed ? (text | truncate: maxChars) : text }}\n </span>\n <a\n fd-link\n class=\"fd-feed-list__link--more\"\n *ngIf=\"!isRichText && hasMore\"\n (click)=\"toggleTextView()\"\n [innerText]=\"\n isCollapsed\n ? moreLabel || ('coreFeedListItem.moreLabel' | fdTranslate)\n : lessLabel || ('coreFeedListItem.lessLabel' | fdTranslate)\n \"\n ></a>\n</ng-template>\n\n<ng-template #headerTmpl>\n <div class=\"fd-feed-list__wrapper\">\n <div class=\"fd-feed-list__wrapper fd-feed-list__wrapper--header\">\n <ng-container *ngTemplateOutlet=\"avatarContent\"></ng-container>\n <div>\n <ng-container *ngTemplateOutlet=\"author\"></ng-container>\n <ng-container *ngTemplateOutlet=\"footerContent\"></ng-container>\n </div>\n </div>\n <ng-container *ngTemplateOutlet=\"actionContent\"></ng-container>\n </div>\n</ng-template>\n", styles: [".fd-feed-list__name a{max-width:75%;display:inline-block;overflow:hidden;text-overflow:ellipsis;vertical-align:top;white-space:nowrap}.fd-feed-list__thumb{display:flex;align-items:center;justify-content:center;max-width:3rem;flex:0 0 3rem;height:3rem;overflow:hidden}.fd-feed-list__thumb img{width:100%;height:100%;object-fit:contain}.fd-feed-list__link--more{cursor:pointer;text-transform:initial}.fd-feed-list__link--more:hover{text-decoration:underline}\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.FormattedTextComponent, selector: "fd-formatted-text", inputs: ["htmlText", "convertedLinksDefaultTarget", "height", "width"], exportAs: ["fd-formatted-text"] }, { kind: "component", type: i3.LinkComponent, selector: "[fdLink], [fd-link], [fd-breadcrumb-link]", inputs: ["class", "emphasized", "disabled", "inverted", "subtle", "undecorated"] }, { kind: "pipe", type: i4.SafePipe, name: "safe" }, { kind: "pipe", type: i4.TruncatePipe, name: "truncate" }, { kind: "pipe", type: i5.FdTranslatePipe, name: "fdTranslate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
97
+ FeedListItemComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.2", type: FeedListItemComponent, selector: "fd-feed-list-item", inputs: { class: "class", authorTitle: "authorTitle", authorLink: "authorLink", text: "text", maxChars: "maxChars", ariaLabel: "ariaLabel", ariaLabelledby: "ariaLabelledby", moreLabel: "moreLabel", lessLabel: "lessLabel", isRichText: "isRichText", mobile: "mobile" }, host: { properties: { "class.fd-feed-list__body": "this.isFeedListItemBody" } }, usesOnChanges: true, ngImport: i0, template: "<ng-container *ngIf=\"mobile; then headerTmpl; else avatarContent\"></ng-container>\n<div class=\"fd-feed-list__content\">\n <ng-container *ngIf=\"!mobile\">\n <ng-container *ngTemplateOutlet=\"actionContent\"></ng-container>\n </ng-container>\n <p class=\"fd-feed-list__text\">\n <ng-container *ngIf=\"!isRichText\">\n <ng-container *ngTemplateOutlet=\"feedContent; context: { $implicit: author }\"></ng-container>\n </ng-container>\n <ng-container *ngIf=\"isRichText\">\n <ng-container *ngTemplateOutlet=\"author\"></ng-container>\n <fd-formatted-text [htmlText]=\"text\"></fd-formatted-text>\n </ng-container>\n </p>\n <ng-container *ngIf=\"!mobile\">\n <ng-container *ngTemplateOutlet=\"footerContent\"></ng-container>\n </ng-container>\n</div>\n\n<ng-template #avatarContent>\n <ng-content select=\"fd-feed-list-avatar\"></ng-content>\n</ng-template>\n<ng-template #actionContent>\n <ng-content select=\"fd-feed-list-action\"></ng-content>\n</ng-template>\n<ng-template #footerContent>\n <ng-content select=\"fd-feed-list-footer\"></ng-content>\n</ng-template>\n\n<ng-template #author>\n <span class=\"fd-feed-list__name\">\n <ng-container *ngIf=\"authorLink; else authorTitleTemplate\">\n <a\n target=\"_blank\"\n fd-link\n [attr.title]=\"authorTitle\"\n [attr.href]=\"authorLink | safe : 'url'\"\n [emphasized]=\"true\"\n >\n <ng-container *ngTemplateOutlet=\"authorTitleTemplate\"></ng-container>\n </a> </ng-container\n >:\n </span>\n</ng-template>\n<ng-template #authorTitleTemplate>\n {{ authorTitle }}\n</ng-template>\n\n<ng-template #feedContent let-param>\n <ng-container *ngTemplateOutlet=\"param\"></ng-container>\n <span>\n {{ isCollapsed ? (text | truncate : maxChars) : text }}\n </span>\n <a\n fd-link\n class=\"fd-feed-list__link--more\"\n tabindex=\"0\"\n *ngIf=\"!isRichText && hasMore\"\n (click)=\"toggleTextView()\"\n [innerText]=\"\n isCollapsed\n ? moreLabel || ('coreFeedListItem.moreLabel' | fdTranslate)\n : lessLabel || ('coreFeedListItem.lessLabel' | fdTranslate)\n \"\n ></a>\n</ng-template>\n\n<ng-template #headerTmpl>\n <div class=\"fd-feed-list__wrapper\">\n <div class=\"fd-feed-list__wrapper fd-feed-list__wrapper--header\">\n <ng-container *ngTemplateOutlet=\"avatarContent\"></ng-container>\n <div>\n <ng-container *ngTemplateOutlet=\"author\"></ng-container>\n <ng-container *ngTemplateOutlet=\"footerContent\"></ng-container>\n </div>\n </div>\n <ng-container *ngTemplateOutlet=\"actionContent\"></ng-container>\n </div>\n</ng-template>\n", styles: [".fd-feed-list__name a{max-width:75%;display:inline-block;overflow:hidden;text-overflow:ellipsis;vertical-align:top;white-space:nowrap}.fd-feed-list__thumb{display:flex;align-items:center;justify-content:center;max-width:3rem;flex:0 0 3rem;height:3rem;overflow:hidden}.fd-feed-list__thumb img{width:100%;height:100%;object-fit:contain}.fd-feed-list__link--more{cursor:pointer;text-transform:initial}.fd-feed-list__link--more:hover{text-decoration:underline}\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.FormattedTextComponent, selector: "fd-formatted-text", inputs: ["htmlText", "convertedLinksDefaultTarget", "height", "width"], exportAs: ["fd-formatted-text"] }, { kind: "component", type: i3.LinkComponent, selector: "[fdLink], [fd-link], [fd-breadcrumb-link]", inputs: ["class", "emphasized", "disabled", "inverted", "subtle", "undecorated"] }, { kind: "pipe", type: i4.SafePipe, name: "safe" }, { kind: "pipe", type: i4.TruncatePipe, name: "truncate" }, { kind: "pipe", type: i5.FdTranslatePipe, name: "fdTranslate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
98
98
  __decorate([
99
99
  applyCssClass,
100
100
  __metadata("design:type", Function),
@@ -103,7 +103,7 @@ __decorate([
103
103
  ], FeedListItemComponent.prototype, "buildComponentCssClass", null);
104
104
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.2", ngImport: i0, type: FeedListItemComponent, decorators: [{
105
105
  type: Component,
106
- args: [{ selector: 'fd-feed-list-item', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-container *ngIf=\"mobile; then headerTmpl; else avatarContent\"></ng-container>\n<div class=\"fd-feed-list__content\">\n <ng-container *ngIf=\"!mobile\">\n <ng-container *ngTemplateOutlet=\"actionContent\"></ng-container>\n </ng-container>\n <p class=\"fd-feed-list__text\">\n <ng-container *ngIf=\"!isRichText\">\n <ng-container *ngTemplateOutlet=\"feedContent; context: { $implicit: author }\"></ng-container>\n </ng-container>\n <ng-container *ngIf=\"isRichText\">\n <ng-container *ngTemplateOutlet=\"author\"></ng-container>\n <fd-formatted-text [htmlText]=\"text\"></fd-formatted-text>\n </ng-container>\n </p>\n <ng-container *ngIf=\"!mobile\">\n <ng-container *ngTemplateOutlet=\"footerContent\"></ng-container>\n </ng-container>\n</div>\n\n<ng-template #avatarContent>\n <ng-content select=\"fd-feed-list-avatar\"></ng-content>\n</ng-template>\n<ng-template #actionContent>\n <ng-content select=\"fd-feed-list-action\"></ng-content>\n</ng-template>\n<ng-template #footerContent>\n <ng-content select=\"fd-feed-list-footer\"></ng-content>\n</ng-template>\n\n<ng-template #author>\n <span class=\"fd-feed-list__name\">\n <ng-container *ngIf=\"authorLink; else authorTitleTemplate\">\n <a\n target=\"_blank\"\n fd-link\n [attr.title]=\"authorTitle\"\n [attr.href]=\"authorLink | safe: 'url'\"\n [emphasized]=\"true\"\n >\n <ng-container *ngTemplateOutlet=\"authorTitleTemplate\"></ng-container>\n </a> </ng-container\n >:\n </span>\n</ng-template>\n<ng-template #authorTitleTemplate>\n {{ authorTitle }}\n</ng-template>\n\n<ng-template #feedContent let-param>\n <ng-container *ngTemplateOutlet=\"param\"></ng-container>\n <span>\n {{ isCollapsed ? (text | truncate: maxChars) : text }}\n </span>\n <a\n fd-link\n class=\"fd-feed-list__link--more\"\n *ngIf=\"!isRichText && hasMore\"\n (click)=\"toggleTextView()\"\n [innerText]=\"\n isCollapsed\n ? moreLabel || ('coreFeedListItem.moreLabel' | fdTranslate)\n : lessLabel || ('coreFeedListItem.lessLabel' | fdTranslate)\n \"\n ></a>\n</ng-template>\n\n<ng-template #headerTmpl>\n <div class=\"fd-feed-list__wrapper\">\n <div class=\"fd-feed-list__wrapper fd-feed-list__wrapper--header\">\n <ng-container *ngTemplateOutlet=\"avatarContent\"></ng-container>\n <div>\n <ng-container *ngTemplateOutlet=\"author\"></ng-container>\n <ng-container *ngTemplateOutlet=\"footerContent\"></ng-container>\n </div>\n </div>\n <ng-container *ngTemplateOutlet=\"actionContent\"></ng-container>\n </div>\n</ng-template>\n", styles: [".fd-feed-list__name a{max-width:75%;display:inline-block;overflow:hidden;text-overflow:ellipsis;vertical-align:top;white-space:nowrap}.fd-feed-list__thumb{display:flex;align-items:center;justify-content:center;max-width:3rem;flex:0 0 3rem;height:3rem;overflow:hidden}.fd-feed-list__thumb img{width:100%;height:100%;object-fit:contain}.fd-feed-list__link--more{cursor:pointer;text-transform:initial}.fd-feed-list__link--more:hover{text-decoration:underline}\n"] }]
106
+ args: [{ selector: 'fd-feed-list-item', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-container *ngIf=\"mobile; then headerTmpl; else avatarContent\"></ng-container>\n<div class=\"fd-feed-list__content\">\n <ng-container *ngIf=\"!mobile\">\n <ng-container *ngTemplateOutlet=\"actionContent\"></ng-container>\n </ng-container>\n <p class=\"fd-feed-list__text\">\n <ng-container *ngIf=\"!isRichText\">\n <ng-container *ngTemplateOutlet=\"feedContent; context: { $implicit: author }\"></ng-container>\n </ng-container>\n <ng-container *ngIf=\"isRichText\">\n <ng-container *ngTemplateOutlet=\"author\"></ng-container>\n <fd-formatted-text [htmlText]=\"text\"></fd-formatted-text>\n </ng-container>\n </p>\n <ng-container *ngIf=\"!mobile\">\n <ng-container *ngTemplateOutlet=\"footerContent\"></ng-container>\n </ng-container>\n</div>\n\n<ng-template #avatarContent>\n <ng-content select=\"fd-feed-list-avatar\"></ng-content>\n</ng-template>\n<ng-template #actionContent>\n <ng-content select=\"fd-feed-list-action\"></ng-content>\n</ng-template>\n<ng-template #footerContent>\n <ng-content select=\"fd-feed-list-footer\"></ng-content>\n</ng-template>\n\n<ng-template #author>\n <span class=\"fd-feed-list__name\">\n <ng-container *ngIf=\"authorLink; else authorTitleTemplate\">\n <a\n target=\"_blank\"\n fd-link\n [attr.title]=\"authorTitle\"\n [attr.href]=\"authorLink | safe : 'url'\"\n [emphasized]=\"true\"\n >\n <ng-container *ngTemplateOutlet=\"authorTitleTemplate\"></ng-container>\n </a> </ng-container\n >:\n </span>\n</ng-template>\n<ng-template #authorTitleTemplate>\n {{ authorTitle }}\n</ng-template>\n\n<ng-template #feedContent let-param>\n <ng-container *ngTemplateOutlet=\"param\"></ng-container>\n <span>\n {{ isCollapsed ? (text | truncate : maxChars) : text }}\n </span>\n <a\n fd-link\n class=\"fd-feed-list__link--more\"\n tabindex=\"0\"\n *ngIf=\"!isRichText && hasMore\"\n (click)=\"toggleTextView()\"\n [innerText]=\"\n isCollapsed\n ? moreLabel || ('coreFeedListItem.moreLabel' | fdTranslate)\n : lessLabel || ('coreFeedListItem.lessLabel' | fdTranslate)\n \"\n ></a>\n</ng-template>\n\n<ng-template #headerTmpl>\n <div class=\"fd-feed-list__wrapper\">\n <div class=\"fd-feed-list__wrapper fd-feed-list__wrapper--header\">\n <ng-container *ngTemplateOutlet=\"avatarContent\"></ng-container>\n <div>\n <ng-container *ngTemplateOutlet=\"author\"></ng-container>\n <ng-container *ngTemplateOutlet=\"footerContent\"></ng-container>\n </div>\n </div>\n <ng-container *ngTemplateOutlet=\"actionContent\"></ng-container>\n </div>\n</ng-template>\n", styles: [".fd-feed-list__name a{max-width:75%;display:inline-block;overflow:hidden;text-overflow:ellipsis;vertical-align:top;white-space:nowrap}.fd-feed-list__thumb{display:flex;align-items:center;justify-content:center;max-width:3rem;flex:0 0 3rem;height:3rem;overflow:hidden}.fd-feed-list__thumb img{width:100%;height:100%;object-fit:contain}.fd-feed-list__link--more{cursor:pointer;text-transform:initial}.fd-feed-list__link--more:hover{text-decoration:underline}\n"] }]
107
107
  }], ctorParameters: function () { return [{ type: i0.ElementRef }]; }, propDecorators: { class: [{
108
108
  type: Input
109
109
  }], authorTitle: [{
@@ -1 +1 @@
1
- {"version":3,"file":"fundamental-ngx-core-feed-list-item.mjs","sources":["../../../../libs/core/src/lib/feed-list-item/constants.ts","../../../../libs/core/src/lib/feed-list-item/components/item/feed-list-item.component.ts","../../../../libs/core/src/lib/feed-list-item/components/item/feed-list-item.component.html","../../../../libs/core/src/lib/feed-list-item/components/list/feed-list.component.ts","../../../../libs/core/src/lib/feed-list-item/components/list/feed-list.component.html","../../../../libs/core/src/lib/feed-list-item/components/feed-list-avatar/feed-list-avatar.component.ts","../../../../libs/core/src/lib/feed-list-item/components/feed-list-action/feed-list-action.component.ts","../../../../libs/core/src/lib/feed-list-item/components/feed-list-footer/feed-list-footer.component.ts","../../../../libs/core/src/lib/feed-list-item/directives/byline.directive.ts","../../../../libs/core/src/lib/feed-list-item/feed-list-item.module.ts","../../../../libs/core/src/lib/feed-list-item/fundamental-ngx-core-feed-list-item.ts"],"sourcesContent":["export const CSS_CLASS_NAME = {\n list: 'fd-feed-list',\n item: 'fd-feed-list__item'\n};\n","import { HostBinding } from '@angular/core';\nimport {\n Component,\n ViewEncapsulation,\n ChangeDetectionStrategy,\n Input,\n SimpleChanges,\n ElementRef,\n OnInit,\n OnChanges\n} from '@angular/core';\nimport { applyCssClass, CssClassBuilder } from '@fundamental-ngx/core/utils';\nimport { Nullable } from '@fundamental-ngx/core/shared';\n\nimport { CSS_CLASS_NAME } from '../../constants';\n\n@Component({\n selector: 'fd-feed-list-item',\n templateUrl: './feed-list-item.component.html',\n styleUrls: ['./feed-list-item.component.scss'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class FeedListItemComponent implements OnInit, OnChanges, CssClassBuilder {\n /** User's custom classes */\n @Input()\n class: string;\n\n /**\n * Author of feed\n */\n @Input()\n authorTitle: string;\n\n /**\n * Link to Author of feed\n */\n @Input()\n authorLink: Nullable<string>;\n\n /**\n * Feed text\n */\n @Input()\n text: string;\n\n /**\n * Max preview characters of Feed text. If you have more than max characters text, you can toggle preview/full text with more/less button.\n */\n @Input()\n maxChars: number;\n\n /**\n * Sets the `aria-label` attribute to the element.\n */\n @Input()\n ariaLabel = '';\n\n /**\n * aria-labelledby for element describing.\n */\n @Input()\n ariaLabelledby: string;\n\n /**\n * @deprecated use i18n capabilities instead\n * Text for more button\n */\n @Input()\n moreLabel: string;\n\n /**\n * @deprecated use i18n capabilities instead\n * Text for less button\n */\n @Input()\n lessLabel: string;\n\n /**\n * Apply rich feed text, please note - we use a formatted text component with this option, it has a list of controlled tags and attibutes.\n * This feature should be handled with care as it allows for countless custom layouts.\n */\n @Input()\n isRichText = false;\n\n /**\n * Apply mobile view\n */\n @Input()\n mobile = false;\n\n /** @hidden */\n maxCharsAtDefault = false;\n\n /**\n * Apply body class by default\n */\n @HostBinding('class.fd-feed-list__body')\n isFeedListItemBody = true;\n\n /**\n * Shows toggle state of feed text - more or less\n */\n isCollapsed = true;\n\n /**\n * Shows have you more line than max lines\n */\n hasMore = false;\n\n /** @hidden */\n constructor(private readonly _elementRef: ElementRef) {}\n\n /** @hidden */\n setHasMore(): void {\n if (this.text) {\n this.hasMore = this.text.length > this.maxChars;\n }\n }\n\n /** @hidden */\n setDefaultMaxChars(): void {\n this.maxChars = this.mobile ? 300 : 500;\n }\n\n /** @hidden */\n ngOnInit(): void {\n this.buildComponentCssClass();\n if (!this.maxChars) {\n this.setDefaultMaxChars();\n this.maxCharsAtDefault = true;\n }\n this.setHasMore();\n }\n\n /** @hidden */\n ngOnChanges(changes: SimpleChanges): void {\n if ('class' in changes || 'isRichText' in changes) {\n this.buildComponentCssClass();\n }\n this.maxCharsAtDefault && this.setDefaultMaxChars();\n this.setHasMore();\n }\n\n /** @hidden\n * CssClassBuilder interface implementation\n * function must return single string\n * function is responsible for order which css classes are applied\n */\n @applyCssClass\n buildComponentCssClass(): string[] {\n return [CSS_CLASS_NAME.item, this.class, this.isRichText ? '' : `${CSS_CLASS_NAME.item}--collapsible`];\n }\n\n /** @hidden */\n elementRef(): ElementRef<any> {\n return this._elementRef;\n }\n\n /** @hidden */\n toggleTextView(): void {\n this.isCollapsed = !this.isCollapsed;\n }\n}\n","<ng-container *ngIf=\"mobile; then headerTmpl; else avatarContent\"></ng-container>\n<div class=\"fd-feed-list__content\">\n <ng-container *ngIf=\"!mobile\">\n <ng-container *ngTemplateOutlet=\"actionContent\"></ng-container>\n </ng-container>\n <p class=\"fd-feed-list__text\">\n <ng-container *ngIf=\"!isRichText\">\n <ng-container *ngTemplateOutlet=\"feedContent; context: { $implicit: author }\"></ng-container>\n </ng-container>\n <ng-container *ngIf=\"isRichText\">\n <ng-container *ngTemplateOutlet=\"author\"></ng-container>\n <fd-formatted-text [htmlText]=\"text\"></fd-formatted-text>\n </ng-container>\n </p>\n <ng-container *ngIf=\"!mobile\">\n <ng-container *ngTemplateOutlet=\"footerContent\"></ng-container>\n </ng-container>\n</div>\n\n<ng-template #avatarContent>\n <ng-content select=\"fd-feed-list-avatar\"></ng-content>\n</ng-template>\n<ng-template #actionContent>\n <ng-content select=\"fd-feed-list-action\"></ng-content>\n</ng-template>\n<ng-template #footerContent>\n <ng-content select=\"fd-feed-list-footer\"></ng-content>\n</ng-template>\n\n<ng-template #author>\n <span class=\"fd-feed-list__name\">\n <ng-container *ngIf=\"authorLink; else authorTitleTemplate\">\n <a\n target=\"_blank\"\n fd-link\n [attr.title]=\"authorTitle\"\n [attr.href]=\"authorLink | safe: 'url'\"\n [emphasized]=\"true\"\n >\n <ng-container *ngTemplateOutlet=\"authorTitleTemplate\"></ng-container>\n </a> </ng-container\n >:\n </span>\n</ng-template>\n<ng-template #authorTitleTemplate>\n {{ authorTitle }}\n</ng-template>\n\n<ng-template #feedContent let-param>\n <ng-container *ngTemplateOutlet=\"param\"></ng-container>\n <span>\n {{ isCollapsed ? (text | truncate: maxChars) : text }}\n </span>\n <a\n fd-link\n class=\"fd-feed-list__link--more\"\n *ngIf=\"!isRichText && hasMore\"\n (click)=\"toggleTextView()\"\n [innerText]=\"\n isCollapsed\n ? moreLabel || ('coreFeedListItem.moreLabel' | fdTranslate)\n : lessLabel || ('coreFeedListItem.lessLabel' | fdTranslate)\n \"\n ></a>\n</ng-template>\n\n<ng-template #headerTmpl>\n <div class=\"fd-feed-list__wrapper\">\n <div class=\"fd-feed-list__wrapper fd-feed-list__wrapper--header\">\n <ng-container *ngTemplateOutlet=\"avatarContent\"></ng-container>\n <div>\n <ng-container *ngTemplateOutlet=\"author\"></ng-container>\n <ng-container *ngTemplateOutlet=\"footerContent\"></ng-container>\n </div>\n </div>\n <ng-container *ngTemplateOutlet=\"actionContent\"></ng-container>\n </div>\n</ng-template>\n","import {\n Component,\n ElementRef,\n Input,\n OnInit,\n OnDestroy,\n OnChanges,\n SimpleChanges,\n ViewEncapsulation,\n ChangeDetectionStrategy,\n ContentChildren,\n QueryList,\n AfterContentChecked\n} from '@angular/core';\nimport { Subscription } from 'rxjs';\nimport { applyCssClass } from '@fundamental-ngx/core/utils';\nimport { CssClassBuilder } from '@fundamental-ngx/core/utils';\n\nimport { CSS_CLASS_NAME } from '../../constants';\nimport { FeedListItemComponent } from '../item/feed-list-item.component';\n\n@Component({\n selector: 'fd-feed-list',\n templateUrl: './feed-list.component.html',\n styleUrls: ['./feed-list.component.scss'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class FeedListComponent implements OnInit, AfterContentChecked, OnDestroy, OnChanges, CssClassBuilder {\n /** User's custom classes */\n @Input()\n class: string;\n /**\n * Sets the `aria-label` attribute to the element.\n */\n @Input()\n ariaLabel = '';\n /**\n * aria-labelledby for element describing.\n */\n @Input()\n ariaLabelledby: string;\n /**\n * Apply mobile view\n */\n @Input()\n mobile = false;\n /**\n * Feed list items will be display in a group.\n */\n @Input()\n isGroup = true;\n /**\n * It removes border if items are displaying in a group.\n */\n @Input()\n borderLess = false;\n /**\n * Gets feed list items\n */\n @ContentChildren(FeedListItemComponent)\n feedItems: QueryList<FeedListItemComponent>;\n\n /** @hidden */\n private $feedItemChanges: Subscription;\n\n /** @hidden */\n constructor(private readonly _elementRef: ElementRef) {}\n\n /** @hidden */\n ngAfterContentChecked(): void {\n this._refreshItems();\n this._listenOnFeedItems();\n }\n /** @hidden */\n ngOnInit(): void {\n this.buildComponentCssClass();\n }\n /** @hidden */\n ngOnChanges(changes: SimpleChanges): void {\n if ('mobile' in changes || 'borderLess' in changes) {\n this.buildComponentCssClass();\n this._refreshItems();\n }\n }\n\n /** @hidden */\n ngOnDestroy(): void {\n if (this.$feedItemChanges) {\n this.$feedItemChanges.unsubscribe();\n }\n }\n\n /** @hidden\n * CssClassBuilder interface implementation\n * function must return single string\n * function is responsible for order which css classes are applied\n */\n @applyCssClass\n buildComponentCssClass(): string[] {\n return [\n CSS_CLASS_NAME.list,\n this.class,\n this.borderLess ? `${CSS_CLASS_NAME.list}--no-border` : '',\n this.isGroup ? `${CSS_CLASS_NAME.list}--group` : '',\n this.mobile ? `${CSS_CLASS_NAME.list}--s` : ''\n ];\n }\n\n /** @hidden */\n elementRef(): ElementRef<any> {\n return this._elementRef;\n }\n\n /** @hidden */\n private _listenOnFeedItems(): void {\n this.$feedItemChanges = this.feedItems.changes.subscribe(() => this._refreshItems());\n }\n\n /** @hidden */\n private _refreshItems(): void {\n (this.feedItems || []).forEach((feedItem) => {\n feedItem.mobile = this.mobile;\n if (feedItem.maxCharsAtDefault && this.mobile) {\n feedItem.setDefaultMaxChars();\n feedItem.setHasMore();\n }\n });\n }\n}\n","<ng-content select=\"fd-feed-list-item\"></ng-content>\n","import { Component } from '@angular/core';\n\n@Component({\n selector: 'fd-feed-list-avatar',\n template: '<ng-content></ng-content>',\n host: { class: 'fd-feed-list__thumb' }\n})\nexport class FeedListAvatarComponent {}\n","import { Component } from '@angular/core';\n\n@Component({\n selector: 'fd-feed-list-action',\n template: '<ng-content></ng-content>',\n host: { class: 'fd-feed-list__actions' }\n})\nexport class FeedListActionComponent {}\n","import { Component } from '@angular/core';\n\n@Component({\n selector: 'fd-feed-list-footer',\n template: '<ng-content></ng-content>',\n host: { class: 'fd-feed-list__footer' }\n})\nexport class FeedListFooterComponent {}\n","import { Directive, HostBinding } from '@angular/core';\n\n@Directive({\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: '[fd-item-footer-byline]'\n})\nexport class FeedListFooterBylineDirective {\n /** @hidden */\n @HostBinding('class.fd-feed-list__footer--byline')\n fdBylineClass = true;\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nimport { LinkModule } from '@fundamental-ngx/core/link';\nimport { FormattedTextModule } from '@fundamental-ngx/core/formatted-text';\nimport { FeedListItemComponent } from './components/item/feed-list-item.component';\nimport { FeedListComponent } from './components/list/feed-list.component';\nimport { FeedListAvatarComponent } from './components/feed-list-avatar/feed-list-avatar.component';\nimport { FeedListActionComponent } from './components/feed-list-action/feed-list-action.component';\nimport { FeedListFooterComponent } from './components/feed-list-footer/feed-list-footer.component';\nimport { FeedListFooterBylineDirective } from './directives/byline.directive';\nimport { PipeModule } from '@fundamental-ngx/core/utils';\nimport { I18nModule } from '@fundamental-ngx/i18n';\n\n@NgModule({\n declarations: [\n FeedListComponent,\n FeedListItemComponent,\n FeedListAvatarComponent,\n FeedListActionComponent,\n FeedListFooterComponent,\n FeedListFooterBylineDirective\n ],\n imports: [CommonModule, PipeModule, FormattedTextModule, LinkModule, I18nModule],\n exports: [\n FeedListComponent,\n FeedListItemComponent,\n FeedListAvatarComponent,\n FeedListActionComponent,\n FeedListFooterComponent,\n FeedListFooterBylineDirective\n ]\n})\nexport class FeedListItemModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"fundamental-ngx-core-feed-list-item.mjs","sources":["../../../../libs/core/src/lib/feed-list-item/constants.ts","../../../../libs/core/src/lib/feed-list-item/components/item/feed-list-item.component.ts","../../../../libs/core/src/lib/feed-list-item/components/item/feed-list-item.component.html","../../../../libs/core/src/lib/feed-list-item/components/list/feed-list.component.ts","../../../../libs/core/src/lib/feed-list-item/components/list/feed-list.component.html","../../../../libs/core/src/lib/feed-list-item/components/feed-list-avatar/feed-list-avatar.component.ts","../../../../libs/core/src/lib/feed-list-item/components/feed-list-action/feed-list-action.component.ts","../../../../libs/core/src/lib/feed-list-item/components/feed-list-footer/feed-list-footer.component.ts","../../../../libs/core/src/lib/feed-list-item/directives/byline.directive.ts","../../../../libs/core/src/lib/feed-list-item/feed-list-item.module.ts","../../../../libs/core/src/lib/feed-list-item/fundamental-ngx-core-feed-list-item.ts"],"sourcesContent":["export const CSS_CLASS_NAME = {\n list: 'fd-feed-list',\n item: 'fd-feed-list__item'\n};\n","import { HostBinding } from '@angular/core';\nimport {\n Component,\n ViewEncapsulation,\n ChangeDetectionStrategy,\n Input,\n SimpleChanges,\n ElementRef,\n OnInit,\n OnChanges\n} from '@angular/core';\nimport { applyCssClass, CssClassBuilder } from '@fundamental-ngx/core/utils';\nimport { Nullable } from '@fundamental-ngx/core/shared';\n\nimport { CSS_CLASS_NAME } from '../../constants';\n\n@Component({\n selector: 'fd-feed-list-item',\n templateUrl: './feed-list-item.component.html',\n styleUrls: ['./feed-list-item.component.scss'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class FeedListItemComponent implements OnInit, OnChanges, CssClassBuilder {\n /** User's custom classes */\n @Input()\n class: string;\n\n /**\n * Author of feed\n */\n @Input()\n authorTitle: string;\n\n /**\n * Link to Author of feed\n */\n @Input()\n authorLink: Nullable<string>;\n\n /**\n * Feed text\n */\n @Input()\n text: string;\n\n /**\n * Max preview characters of Feed text. If you have more than max characters text, you can toggle preview/full text with more/less button.\n */\n @Input()\n maxChars: number;\n\n /**\n * Sets the `aria-label` attribute to the element.\n */\n @Input()\n ariaLabel = '';\n\n /**\n * aria-labelledby for element describing.\n */\n @Input()\n ariaLabelledby: string;\n\n /**\n * @deprecated use i18n capabilities instead\n * Text for more button\n */\n @Input()\n moreLabel: string;\n\n /**\n * @deprecated use i18n capabilities instead\n * Text for less button\n */\n @Input()\n lessLabel: string;\n\n /**\n * Apply rich feed text, please note - we use a formatted text component with this option, it has a list of controlled tags and attibutes.\n * This feature should be handled with care as it allows for countless custom layouts.\n */\n @Input()\n isRichText = false;\n\n /**\n * Apply mobile view\n */\n @Input()\n mobile = false;\n\n /** @hidden */\n maxCharsAtDefault = false;\n\n /**\n * Apply body class by default\n */\n @HostBinding('class.fd-feed-list__body')\n isFeedListItemBody = true;\n\n /**\n * Shows toggle state of feed text - more or less\n */\n isCollapsed = true;\n\n /**\n * Shows have you more line than max lines\n */\n hasMore = false;\n\n /** @hidden */\n constructor(private readonly _elementRef: ElementRef) {}\n\n /** @hidden */\n setHasMore(): void {\n if (this.text) {\n this.hasMore = this.text.length > this.maxChars;\n }\n }\n\n /** @hidden */\n setDefaultMaxChars(): void {\n this.maxChars = this.mobile ? 300 : 500;\n }\n\n /** @hidden */\n ngOnInit(): void {\n this.buildComponentCssClass();\n if (!this.maxChars) {\n this.setDefaultMaxChars();\n this.maxCharsAtDefault = true;\n }\n this.setHasMore();\n }\n\n /** @hidden */\n ngOnChanges(changes: SimpleChanges): void {\n if ('class' in changes || 'isRichText' in changes) {\n this.buildComponentCssClass();\n }\n this.maxCharsAtDefault && this.setDefaultMaxChars();\n this.setHasMore();\n }\n\n /** @hidden\n * CssClassBuilder interface implementation\n * function must return single string\n * function is responsible for order which css classes are applied\n */\n @applyCssClass\n buildComponentCssClass(): string[] {\n return [CSS_CLASS_NAME.item, this.class, this.isRichText ? '' : `${CSS_CLASS_NAME.item}--collapsible`];\n }\n\n /** @hidden */\n elementRef(): ElementRef<any> {\n return this._elementRef;\n }\n\n /** @hidden */\n toggleTextView(): void {\n this.isCollapsed = !this.isCollapsed;\n }\n}\n","<ng-container *ngIf=\"mobile; then headerTmpl; else avatarContent\"></ng-container>\n<div class=\"fd-feed-list__content\">\n <ng-container *ngIf=\"!mobile\">\n <ng-container *ngTemplateOutlet=\"actionContent\"></ng-container>\n </ng-container>\n <p class=\"fd-feed-list__text\">\n <ng-container *ngIf=\"!isRichText\">\n <ng-container *ngTemplateOutlet=\"feedContent; context: { $implicit: author }\"></ng-container>\n </ng-container>\n <ng-container *ngIf=\"isRichText\">\n <ng-container *ngTemplateOutlet=\"author\"></ng-container>\n <fd-formatted-text [htmlText]=\"text\"></fd-formatted-text>\n </ng-container>\n </p>\n <ng-container *ngIf=\"!mobile\">\n <ng-container *ngTemplateOutlet=\"footerContent\"></ng-container>\n </ng-container>\n</div>\n\n<ng-template #avatarContent>\n <ng-content select=\"fd-feed-list-avatar\"></ng-content>\n</ng-template>\n<ng-template #actionContent>\n <ng-content select=\"fd-feed-list-action\"></ng-content>\n</ng-template>\n<ng-template #footerContent>\n <ng-content select=\"fd-feed-list-footer\"></ng-content>\n</ng-template>\n\n<ng-template #author>\n <span class=\"fd-feed-list__name\">\n <ng-container *ngIf=\"authorLink; else authorTitleTemplate\">\n <a\n target=\"_blank\"\n fd-link\n [attr.title]=\"authorTitle\"\n [attr.href]=\"authorLink | safe : 'url'\"\n [emphasized]=\"true\"\n >\n <ng-container *ngTemplateOutlet=\"authorTitleTemplate\"></ng-container>\n </a> </ng-container\n >:\n </span>\n</ng-template>\n<ng-template #authorTitleTemplate>\n {{ authorTitle }}\n</ng-template>\n\n<ng-template #feedContent let-param>\n <ng-container *ngTemplateOutlet=\"param\"></ng-container>\n <span>\n {{ isCollapsed ? (text | truncate : maxChars) : text }}\n </span>\n <a\n fd-link\n class=\"fd-feed-list__link--more\"\n tabindex=\"0\"\n *ngIf=\"!isRichText && hasMore\"\n (click)=\"toggleTextView()\"\n [innerText]=\"\n isCollapsed\n ? moreLabel || ('coreFeedListItem.moreLabel' | fdTranslate)\n : lessLabel || ('coreFeedListItem.lessLabel' | fdTranslate)\n \"\n ></a>\n</ng-template>\n\n<ng-template #headerTmpl>\n <div class=\"fd-feed-list__wrapper\">\n <div class=\"fd-feed-list__wrapper fd-feed-list__wrapper--header\">\n <ng-container *ngTemplateOutlet=\"avatarContent\"></ng-container>\n <div>\n <ng-container *ngTemplateOutlet=\"author\"></ng-container>\n <ng-container *ngTemplateOutlet=\"footerContent\"></ng-container>\n </div>\n </div>\n <ng-container *ngTemplateOutlet=\"actionContent\"></ng-container>\n </div>\n</ng-template>\n","import {\n Component,\n ElementRef,\n Input,\n OnInit,\n OnDestroy,\n OnChanges,\n SimpleChanges,\n ViewEncapsulation,\n ChangeDetectionStrategy,\n ContentChildren,\n QueryList,\n AfterContentChecked\n} from '@angular/core';\nimport { Subscription } from 'rxjs';\nimport { applyCssClass } from '@fundamental-ngx/core/utils';\nimport { CssClassBuilder } from '@fundamental-ngx/core/utils';\n\nimport { CSS_CLASS_NAME } from '../../constants';\nimport { FeedListItemComponent } from '../item/feed-list-item.component';\n\n@Component({\n selector: 'fd-feed-list',\n templateUrl: './feed-list.component.html',\n styleUrls: ['./feed-list.component.scss'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class FeedListComponent implements OnInit, AfterContentChecked, OnDestroy, OnChanges, CssClassBuilder {\n /** User's custom classes */\n @Input()\n class: string;\n /**\n * Sets the `aria-label` attribute to the element.\n */\n @Input()\n ariaLabel = '';\n /**\n * aria-labelledby for element describing.\n */\n @Input()\n ariaLabelledby: string;\n /**\n * Apply mobile view\n */\n @Input()\n mobile = false;\n /**\n * Feed list items will be display in a group.\n */\n @Input()\n isGroup = true;\n /**\n * It removes border if items are displaying in a group.\n */\n @Input()\n borderLess = false;\n /**\n * Gets feed list items\n */\n @ContentChildren(FeedListItemComponent)\n feedItems: QueryList<FeedListItemComponent>;\n\n /** @hidden */\n private $feedItemChanges: Subscription;\n\n /** @hidden */\n constructor(private readonly _elementRef: ElementRef) {}\n\n /** @hidden */\n ngAfterContentChecked(): void {\n this._refreshItems();\n this._listenOnFeedItems();\n }\n /** @hidden */\n ngOnInit(): void {\n this.buildComponentCssClass();\n }\n /** @hidden */\n ngOnChanges(changes: SimpleChanges): void {\n if ('mobile' in changes || 'borderLess' in changes) {\n this.buildComponentCssClass();\n this._refreshItems();\n }\n }\n\n /** @hidden */\n ngOnDestroy(): void {\n if (this.$feedItemChanges) {\n this.$feedItemChanges.unsubscribe();\n }\n }\n\n /** @hidden\n * CssClassBuilder interface implementation\n * function must return single string\n * function is responsible for order which css classes are applied\n */\n @applyCssClass\n buildComponentCssClass(): string[] {\n return [\n CSS_CLASS_NAME.list,\n this.class,\n this.borderLess ? `${CSS_CLASS_NAME.list}--no-border` : '',\n this.isGroup ? `${CSS_CLASS_NAME.list}--group` : '',\n this.mobile ? `${CSS_CLASS_NAME.list}--s` : ''\n ];\n }\n\n /** @hidden */\n elementRef(): ElementRef<any> {\n return this._elementRef;\n }\n\n /** @hidden */\n private _listenOnFeedItems(): void {\n this.$feedItemChanges = this.feedItems.changes.subscribe(() => this._refreshItems());\n }\n\n /** @hidden */\n private _refreshItems(): void {\n (this.feedItems || []).forEach((feedItem) => {\n feedItem.mobile = this.mobile;\n if (feedItem.maxCharsAtDefault && this.mobile) {\n feedItem.setDefaultMaxChars();\n feedItem.setHasMore();\n }\n });\n }\n}\n","<ng-content select=\"fd-feed-list-item\"></ng-content>\n","import { Component } from '@angular/core';\n\n@Component({\n selector: 'fd-feed-list-avatar',\n template: '<ng-content></ng-content>',\n host: { class: 'fd-feed-list__thumb' }\n})\nexport class FeedListAvatarComponent {}\n","import { Component } from '@angular/core';\n\n@Component({\n selector: 'fd-feed-list-action',\n template: '<ng-content></ng-content>',\n host: { class: 'fd-feed-list__actions' }\n})\nexport class FeedListActionComponent {}\n","import { Component } from '@angular/core';\n\n@Component({\n selector: 'fd-feed-list-footer',\n template: '<ng-content></ng-content>',\n host: { class: 'fd-feed-list__footer' }\n})\nexport class FeedListFooterComponent {}\n","import { Directive, HostBinding } from '@angular/core';\n\n@Directive({\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: '[fd-item-footer-byline]'\n})\nexport class FeedListFooterBylineDirective {\n /** @hidden */\n @HostBinding('class.fd-feed-list__footer--byline')\n fdBylineClass = true;\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nimport { LinkModule } from '@fundamental-ngx/core/link';\nimport { FormattedTextModule } from '@fundamental-ngx/core/formatted-text';\nimport { FeedListItemComponent } from './components/item/feed-list-item.component';\nimport { FeedListComponent } from './components/list/feed-list.component';\nimport { FeedListAvatarComponent } from './components/feed-list-avatar/feed-list-avatar.component';\nimport { FeedListActionComponent } from './components/feed-list-action/feed-list-action.component';\nimport { FeedListFooterComponent } from './components/feed-list-footer/feed-list-footer.component';\nimport { FeedListFooterBylineDirective } from './directives/byline.directive';\nimport { PipeModule } from '@fundamental-ngx/core/utils';\nimport { I18nModule } from '@fundamental-ngx/i18n';\n\n@NgModule({\n declarations: [\n FeedListComponent,\n FeedListItemComponent,\n FeedListAvatarComponent,\n FeedListActionComponent,\n FeedListFooterComponent,\n FeedListFooterBylineDirective\n ],\n imports: [CommonModule, PipeModule, FormattedTextModule, LinkModule, I18nModule],\n exports: [\n FeedListComponent,\n FeedListItemComponent,\n FeedListAvatarComponent,\n FeedListActionComponent,\n FeedListFooterComponent,\n FeedListFooterBylineDirective\n ]\n})\nexport class FeedListItemModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}
@@ -264,13 +264,13 @@ class TimelineNodeComponent {
264
264
  }
265
265
  }
266
266
  TimelineNodeComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.2", ngImport: i0, type: TimelineNodeComponent, deps: [{ token: i0.ElementRef }, { token: TimelinePositionControlService }], target: i0.ɵɵFactoryTarget.Component });
267
- TimelineNodeComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.2", type: TimelineNodeComponent, selector: "fd-timeline-node", inputs: { glyph: "glyph", ariaLabel: "ariaLabel" }, host: { properties: { "class.fd-timeline__node-wrapper--icon": "!!glyph" }, classAttribute: "fd-timeline__node-wrapper" }, viewQueries: [{ propertyName: "lineEl", first: true, predicate: ["lineEl"], descendants: true }], ngImport: i0, template: "<div class=\"fd-timeline__node-container\">\n <div class=\"fd-timeline__icon-wrapper\">\n <div class=\"fd-timeline__node\" [class.fd-timeline__node--icon]=\"!!glyph\">\n <fd-icon *ngIf=\"glyph\" [glyph]=\"glyph\"></fd-icon>\n </div>\n </div>\n <div #lineEl class=\"fd-timeline__connecting-line\"></div>\n</div>\n<div tabindex=\"0\" role=\"timelineitem\" [attr.aria-label]=\"ariaLabel\" class=\"fd-timeline__post\">\n <ng-content></ng-content>\n</div>\n", dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3.IconComponent, selector: "fd-icon", inputs: ["glyph", "font", "class", "ariaLabel"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
267
+ TimelineNodeComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.2", type: TimelineNodeComponent, selector: "fd-timeline-node", inputs: { glyph: "glyph", ariaLabel: "ariaLabel" }, host: { properties: { "class.fd-timeline__node-wrapper--icon": "!!glyph" }, classAttribute: "fd-timeline__node-wrapper" }, viewQueries: [{ propertyName: "lineEl", first: true, predicate: ["lineEl"], descendants: true }], ngImport: i0, template: "<div class=\"fd-timeline__node-container\">\n <div class=\"fd-timeline__icon-wrapper\">\n <div class=\"fd-timeline__node\" [class.fd-timeline__node--icon]=\"!!glyph\">\n <fd-icon *ngIf=\"glyph\" [glyph]=\"glyph\"></fd-icon>\n </div>\n </div>\n <div #lineEl class=\"fd-timeline__connecting-line\"></div>\n</div>\n<div role=\"timelineitem\" [attr.aria-label]=\"ariaLabel\" class=\"fd-timeline__post\">\n <ng-content></ng-content>\n</div>\n", dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3.IconComponent, selector: "fd-icon", inputs: ["glyph", "font", "class", "ariaLabel"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
268
268
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.2", ngImport: i0, type: TimelineNodeComponent, decorators: [{
269
269
  type: Component,
270
270
  args: [{ selector: 'fd-timeline-node', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, host: {
271
271
  class: 'fd-timeline__node-wrapper',
272
272
  '[class.fd-timeline__node-wrapper--icon]': '!!glyph'
273
- }, template: "<div class=\"fd-timeline__node-container\">\n <div class=\"fd-timeline__icon-wrapper\">\n <div class=\"fd-timeline__node\" [class.fd-timeline__node--icon]=\"!!glyph\">\n <fd-icon *ngIf=\"glyph\" [glyph]=\"glyph\"></fd-icon>\n </div>\n </div>\n <div #lineEl class=\"fd-timeline__connecting-line\"></div>\n</div>\n<div tabindex=\"0\" role=\"timelineitem\" [attr.aria-label]=\"ariaLabel\" class=\"fd-timeline__post\">\n <ng-content></ng-content>\n</div>\n" }]
273
+ }, template: "<div class=\"fd-timeline__node-container\">\n <div class=\"fd-timeline__icon-wrapper\">\n <div class=\"fd-timeline__node\" [class.fd-timeline__node--icon]=\"!!glyph\">\n <fd-icon *ngIf=\"glyph\" [glyph]=\"glyph\"></fd-icon>\n </div>\n </div>\n <div #lineEl class=\"fd-timeline__connecting-line\"></div>\n</div>\n<div role=\"timelineitem\" [attr.aria-label]=\"ariaLabel\" class=\"fd-timeline__post\">\n <ng-content></ng-content>\n</div>\n" }]
274
274
  }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: TimelinePositionControlService }]; }, propDecorators: { glyph: [{
275
275
  type: Input
276
276
  }], ariaLabel: [{