import * as i0 from '@angular/core';
import { ChangeDetectionStrategy, Component, HostBinding, Input, ViewEncapsulation, ContentChildren, Directive, NgModule } from '@angular/core';
import { __decorate, __metadata } from 'tslib';
import { SafePipe, TruncatePipe, applyCssClass } from '@fundamental-ngx/cdk/utils';
import { NgTemplateOutlet } from '@angular/common';
import { FormattedTextComponent } from '@fundamental-ngx/core/formatted-text';
import { LinkComponent } from '@fundamental-ngx/core/link';
import { FdTranslatePipe } from '@fundamental-ngx/i18n';

class FeedListActionComponent {
    static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.0", ngImport: i0, type: FeedListActionComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
    static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.1.0", type: FeedListActionComponent, isStandalone: true, selector: "fd-feed-list-action", host: { classAttribute: "fd-feed-list__actions" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
}
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.0", ngImport: i0, type: FeedListActionComponent, decorators: [{
            type: Component,
            args: [{
                    selector: 'fd-feed-list-action',
                    template: '<ng-content></ng-content>',
                    host: { class: 'fd-feed-list__actions' },
                    changeDetection: ChangeDetectionStrategy.OnPush
                }]
        }] });

class FeedListAvatarComponent {
    static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.0", ngImport: i0, type: FeedListAvatarComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
    static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.1.0", type: FeedListAvatarComponent, isStandalone: true, selector: "fd-feed-list-avatar", host: { classAttribute: "fd-feed-list__thumb" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
}
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.0", ngImport: i0, type: FeedListAvatarComponent, decorators: [{
            type: Component,
            args: [{
                    selector: 'fd-feed-list-avatar',
                    template: '<ng-content></ng-content>',
                    host: { class: 'fd-feed-list__thumb' },
                    changeDetection: ChangeDetectionStrategy.OnPush
                }]
        }] });

class FeedListFooterComponent {
    static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.0", ngImport: i0, type: FeedListFooterComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
    static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.1.0", type: FeedListFooterComponent, isStandalone: true, selector: "fd-feed-list-footer", host: { classAttribute: "fd-feed-list__footer" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
}
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.0", ngImport: i0, type: FeedListFooterComponent, decorators: [{
            type: Component,
            args: [{
                    selector: 'fd-feed-list-footer',
                    template: '<ng-content></ng-content>',
                    host: { class: 'fd-feed-list__footer' },
                    changeDetection: ChangeDetectionStrategy.OnPush
                }]
        }] });

const CSS_CLASS_NAME = {
    list: 'fd-feed-list',
    item: 'fd-feed-list__item'
};

class FeedListItemComponent {
    /** @hidden */
    constructor(elementRef) {
        this.elementRef = elementRef;
        /**
         * Sets the `aria-label` attribute to the element.
         */
        this.ariaLabel = '';
        /**
         * Apply rich feed text, please note - we use a formatted text component with this option, it has a list of controlled tags and attibutes.
         * This feature should be handled with care as it allows for countless custom layouts.
         */
        this.isRichText = false;
        /**
         * Apply mobile view
         */
        this.mobile = false;
        /**
         * Apply body class by default
         */
        this.isFeedListItemBody = true;
        /** @hidden */
        this.maxCharsAtDefault = false;
        /**
         * Shows toggle state of feed text - more or less
         */
        this.isCollapsed = true;
        /**
         * Shows have you more line than max lines
         */
        this.hasMore = false;
    }
    /** @hidden
     * CssClassBuilder interface implementation
     * function must return single string
     * function is responsible for order which css classes are applied
     */
    buildComponentCssClass() {
        return [CSS_CLASS_NAME.item, this.class, this.isRichText ? '' : `${CSS_CLASS_NAME.item}--collapsible`];
    }
    /** @hidden */
    setHasMore() {
        if (this.text) {
            this.hasMore = this.text.length > this.maxChars;
        }
    }
    /** @hidden */
    setDefaultMaxChars() {
        this.maxChars = this.mobile ? 300 : 500;
    }
    /** @hidden */
    ngOnInit() {
        this.buildComponentCssClass();
        if (!this.maxChars) {
            this.setDefaultMaxChars();
            this.maxCharsAtDefault = true;
        }
        this.setHasMore();
    }
    /** @hidden */
    ngOnChanges(changes) {
        if ('class' in changes || 'isRichText' in changes) {
            this.buildComponentCssClass();
        }
        this.maxCharsAtDefault && this.setDefaultMaxChars();
        this.setHasMore();
    }
    /** @hidden */
    toggleTextView() {
        this.isCollapsed = !this.isCollapsed;
    }
    static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.0", ngImport: i0, type: FeedListItemComponent, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component }); }
    static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.1.0", type: FeedListItemComponent, isStandalone: true, selector: "fd-feed-list-item", inputs: { class: "class", authorTitle: "authorTitle", authorLink: "authorLink", text: "text", maxChars: "maxChars", ariaLabel: "ariaLabel", ariaLabelledby: "ariaLabelledby", isRichText: "isRichText", mobile: "mobile" }, host: { properties: { "class.fd-feed-list__body": "this.isFeedListItemBody" } }, usesOnChanges: true, ngImport: i0, template: "@if (mobile) {\n    <div class=\"fd-feed-list__wrapper\">\n        <div class=\"fd-feed-list__wrapper fd-feed-list__wrapper--header\">\n            <ng-template [ngTemplateOutlet]=\"avatarContent\"></ng-template>\n            <div>\n                <ng-template [ngTemplateOutlet]=\"author\"></ng-template>\n                <ng-template [ngTemplateOutlet]=\"footerContent\"></ng-template>\n            </div>\n        </div>\n        <ng-template [ngTemplateOutlet]=\"actionContent\"></ng-template>\n    </div>\n} @else {\n    <ng-content select=\"fd-feed-list-avatar\"></ng-content>\n}\n<div class=\"fd-feed-list__content\">\n    @if (!mobile) {\n        <ng-template [ngTemplateOutlet]=\"actionContent\"></ng-template>\n    }\n    <p class=\"fd-feed-list__text\">\n        @if (!isRichText) {\n            <ng-template\n                [ngTemplateOutlet]=\"feedContent\"\n                [ngTemplateOutletContext]=\"{ $implicit: author }\"\n            ></ng-template>\n        } @else {\n            <ng-template [ngTemplateOutlet]=\"author\"></ng-template>\n            <fd-formatted-text [htmlText]=\"text\"></fd-formatted-text>\n        }\n    </p>\n    @if (!mobile) {\n        <ng-template [ngTemplateOutlet]=\"footerContent\"></ng-template>\n    }\n</div>\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<ng-template #author>\n    <span class=\"fd-feed-list__name\">\n        @if (authorLink) {\n            <a\n                target=\"_blank\"\n                fd-link\n                [attr.title]=\"authorTitle\"\n                [attr.href]=\"authorLink | safe: 'url'\"\n                [emphasized]=\"true\"\n            >\n                <ng-template [ngTemplateOutlet]=\"authorTitleTemplate\"></ng-template>\n            </a>\n        } @else {\n            {{ authorTitle }}\n        }\n        :\n    </span>\n</ng-template>\n<ng-template #authorTitleTemplate>\n    {{ authorTitle }}\n</ng-template>\n<ng-template #feedContent let-param>\n    <ng-template [ngTemplateOutlet]=\"param\"></ng-template>\n    <span>\n        {{ isCollapsed ? (text | truncate: maxChars) : text }}\n    </span>\n    @if (!isRichText && hasMore) {\n        <a fd-link class=\"fd-feed-list__link--more\" tabindex=\"0\" (click)=\"toggleTextView()\">{{\n            (isCollapsed\n                ? ('coreFeedListItem.moreLabel' | fdTranslate: { count: (text ? text.length : 0) - maxChars })\n                : ('coreFeedListItem.lessLabel' | fdTranslate))()\n        }}</a>\n    }\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: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: FormattedTextComponent, selector: "fd-formatted-text", inputs: ["htmlText", "convertedLinksDefaultTarget", "height", "width"], exportAs: ["fd-formatted-text"] }, { kind: "component", type: LinkComponent, selector: "[fdLink], [fd-link]", inputs: ["emphasized", "disabled", "inverted", "subtle", "undecorated", "touchTarget"] }, { kind: "pipe", type: SafePipe, name: "safe" }, { kind: "pipe", type: TruncatePipe, name: "truncate" }, { kind: "pipe", type: FdTranslatePipe, name: "fdTranslate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
}
__decorate([
    applyCssClass,
    __metadata("design:type", Function),
    __metadata("design:paramtypes", []),
    __metadata("design:returntype", Array)
], FeedListItemComponent.prototype, "buildComponentCssClass", null);
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.0", ngImport: i0, type: FeedListItemComponent, decorators: [{
            type: Component,
            args: [{ selector: 'fd-feed-list-item', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, imports: [NgTemplateOutlet, FormattedTextComponent, LinkComponent, SafePipe, TruncatePipe, FdTranslatePipe], template: "@if (mobile) {\n    <div class=\"fd-feed-list__wrapper\">\n        <div class=\"fd-feed-list__wrapper fd-feed-list__wrapper--header\">\n            <ng-template [ngTemplateOutlet]=\"avatarContent\"></ng-template>\n            <div>\n                <ng-template [ngTemplateOutlet]=\"author\"></ng-template>\n                <ng-template [ngTemplateOutlet]=\"footerContent\"></ng-template>\n            </div>\n        </div>\n        <ng-template [ngTemplateOutlet]=\"actionContent\"></ng-template>\n    </div>\n} @else {\n    <ng-content select=\"fd-feed-list-avatar\"></ng-content>\n}\n<div class=\"fd-feed-list__content\">\n    @if (!mobile) {\n        <ng-template [ngTemplateOutlet]=\"actionContent\"></ng-template>\n    }\n    <p class=\"fd-feed-list__text\">\n        @if (!isRichText) {\n            <ng-template\n                [ngTemplateOutlet]=\"feedContent\"\n                [ngTemplateOutletContext]=\"{ $implicit: author }\"\n            ></ng-template>\n        } @else {\n            <ng-template [ngTemplateOutlet]=\"author\"></ng-template>\n            <fd-formatted-text [htmlText]=\"text\"></fd-formatted-text>\n        }\n    </p>\n    @if (!mobile) {\n        <ng-template [ngTemplateOutlet]=\"footerContent\"></ng-template>\n    }\n</div>\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<ng-template #author>\n    <span class=\"fd-feed-list__name\">\n        @if (authorLink) {\n            <a\n                target=\"_blank\"\n                fd-link\n                [attr.title]=\"authorTitle\"\n                [attr.href]=\"authorLink | safe: 'url'\"\n                [emphasized]=\"true\"\n            >\n                <ng-template [ngTemplateOutlet]=\"authorTitleTemplate\"></ng-template>\n            </a>\n        } @else {\n            {{ authorTitle }}\n        }\n        :\n    </span>\n</ng-template>\n<ng-template #authorTitleTemplate>\n    {{ authorTitle }}\n</ng-template>\n<ng-template #feedContent let-param>\n    <ng-template [ngTemplateOutlet]=\"param\"></ng-template>\n    <span>\n        {{ isCollapsed ? (text | truncate: maxChars) : text }}\n    </span>\n    @if (!isRichText && hasMore) {\n        <a fd-link class=\"fd-feed-list__link--more\" tabindex=\"0\" (click)=\"toggleTextView()\">{{\n            (isCollapsed\n                ? ('coreFeedListItem.moreLabel' | fdTranslate: { count: (text ? text.length : 0) - maxChars })\n                : ('coreFeedListItem.lessLabel' | fdTranslate))()\n        }}</a>\n    }\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"] }]
        }], ctorParameters: () => [{ type: i0.ElementRef }], propDecorators: { class: [{
                type: Input
            }], authorTitle: [{
                type: Input
            }], authorLink: [{
                type: Input
            }], text: [{
                type: Input
            }], maxChars: [{
                type: Input
            }], ariaLabel: [{
                type: Input
            }], ariaLabelledby: [{
                type: Input
            }], isRichText: [{
                type: Input
            }], mobile: [{
                type: Input
            }], isFeedListItemBody: [{
                type: HostBinding,
                args: ['class.fd-feed-list__body']
            }], buildComponentCssClass: [] } });

class FeedListComponent {
    /** @hidden */
    constructor(elementRef) {
        this.elementRef = elementRef;
        /**
         * Sets the `aria-label` attribute to the element.
         */
        this.ariaLabel = '';
        /**
         * Apply mobile view
         */
        this.mobile = false;
        /**
         * Feed list items will be display in a group.
         */
        this.isGroup = true;
        /**
         * It removes border if items are displaying in a group.
         */
        this.borderLess = false;
    }
    /** @hidden
     * CssClassBuilder interface implementation
     * function must return single string
     * function is responsible for order which css classes are applied
     */
    buildComponentCssClass() {
        return [
            CSS_CLASS_NAME.list,
            this.class,
            this.borderLess ? `${CSS_CLASS_NAME.list}--no-border` : '',
            this.isGroup ? `${CSS_CLASS_NAME.list}--group` : '',
            this.mobile ? `${CSS_CLASS_NAME.list}--s` : ''
        ];
    }
    /** @hidden */
    ngAfterContentChecked() {
        this._refreshItems();
        this._listenOnFeedItems();
    }
    /** @hidden */
    ngOnInit() {
        this.buildComponentCssClass();
    }
    /** @hidden */
    ngOnChanges(changes) {
        if ('mobile' in changes || 'borderLess' in changes) {
            this.buildComponentCssClass();
            this._refreshItems();
        }
    }
    /** @hidden */
    ngOnDestroy() {
        if (this.$feedItemChanges) {
            this.$feedItemChanges.unsubscribe();
        }
    }
    /** @hidden */
    _listenOnFeedItems() {
        this.$feedItemChanges = this.feedItems.changes.subscribe(() => this._refreshItems());
    }
    /** @hidden */
    _refreshItems() {
        (this.feedItems || []).forEach((feedItem) => {
            feedItem.mobile = this.mobile;
            if (feedItem.maxCharsAtDefault && this.mobile) {
                feedItem.setDefaultMaxChars();
                feedItem.setHasMore();
            }
        });
    }
    static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.0", ngImport: i0, type: FeedListComponent, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component }); }
    static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.1.0", type: FeedListComponent, isStandalone: true, selector: "fd-feed-list", inputs: { class: "class", ariaLabel: "ariaLabel", ariaLabelledby: "ariaLabelledby", mobile: "mobile", isGroup: "isGroup", borderLess: "borderLess" }, queries: [{ propertyName: "feedItems", predicate: FeedListItemComponent }], usesOnChanges: true, ngImport: i0, template: "<ng-content select=\"fd-feed-list-item\"></ng-content>\n", styles: ["@charset \"UTF-8\";.fd-feed-list{border:0;-webkit-box-sizing:border-box;box-sizing:border-box;color:var(--sapTextColor);display:-webkit-box;display:-ms-flexbox;display:flex;font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;line-height:normal;margin-block:0;margin-inline:0;padding-block:0;padding-inline:0;-webkit-box-orient:horizontal;-webkit-box-direction:normal;background-color:var(--fdFeed_List_Item_Background);-ms-flex-direction:row;flex-direction:row;max-width:40rem}.fd-feed-list:after,.fd-feed-list:before{-webkit-box-sizing:inherit;box-sizing:inherit;font-size:inherit}.fd-feed-list .fd-feed-list__thumb{border:0;-webkit-box-sizing:border-box;box-sizing:border-box;color:var(--sapTextColor);display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;line-height:normal;margin-block:0;margin-inline:0;margin-inline:0 .75rem;padding-block:0;padding-inline:0}.fd-feed-list .fd-feed-list__thumb:after,.fd-feed-list .fd-feed-list__thumb:before{-webkit-box-sizing:inherit;box-sizing:inherit;font-size:inherit}.fd-feed-list__body{border:0;-webkit-box-sizing:border-box;box-sizing:border-box;color:var(--sapTextColor);display:-webkit-box;display:-ms-flexbox;display:flex;font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;line-height:normal;margin-block:0;margin-inline:0;padding-block:0;padding-block:1rem;padding-inline:0;padding-inline:1rem}.fd-feed-list__body:after,.fd-feed-list__body:before{-webkit-box-sizing:inherit;box-sizing:inherit;font-size:inherit}.fd-feed-list__body+.fd-feed-list__body{border-top:var(--fdFeed_List_Item_Border_Top)}.fd-feed-list__body+.fd-feed-list__body:last-child{border-bottom:var(--fdFeed_List_Item_Border_Bottom)}.fd-feed-list--no-border .fd-feed-list__body{border-top:none;padding-block:1rem .75rem;padding-inline:1rem}.fd-feed-list--no-border .fd-feed-list__body+.fd-feed-list__body{padding-block:.75rem .75rem}.fd-feed-list--no-border .fd-feed-list__body:last-child{-webkit-padding-after:1rem;border-bottom:none;padding-block-end:1rem}.fd-feed-list__link--more{cursor:pointer;text-transform:capitalize}.fd-feed-list__actions{border:0;-webkit-box-sizing:border-box;box-sizing:border-box;color:var(--sapTextColor);float:right;font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;line-height:normal;margin-block:0;margin-block:.5rem;margin-inline:0;margin-inline:.5rem;padding-block:0;padding-inline:0;position:relative;right:-1rem;top:-1rem}.fd-feed-list__actions:after,.fd-feed-list__actions:before{-webkit-box-sizing:inherit;box-sizing:inherit;font-size:inherit}.fd-feed-list__actions[dir=rtl],[dir=rtl] .fd-feed-list__actions{float:left;left:-1rem;right:auto}.fd-feed-list--group{-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column}.fd-feed-list--link{cursor:pointer}.fd-feed-list--link.is-focus,.fd-feed-list--link:focus{outline:var(--sapContent_FocusColor) var(--sapContent_FocusStyle) var(--sapContent_FocusWidth);outline-offset:-.1875rem}.fd-feed-list__name{border:0;-webkit-box-sizing:border-box;box-sizing:border-box;color:var(--sapTextColor);font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;font-weight:700;forced-color-adjust:none;line-height:normal;margin-block:0;margin-inline:0;padding-block:0;padding-inline:0}.fd-feed-list__name:after,.fd-feed-list__name:before{-webkit-box-sizing:inherit;box-sizing:inherit;font-size:inherit}.fd-feed-list__text{border:0;-webkit-box-sizing:border-box;box-sizing:border-box;color:var(--sapTextColor);font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;line-height:normal;margin-block:0;margin-inline:0;padding-block:0;padding-inline:0}.fd-feed-list__text:after,.fd-feed-list__text:before{-webkit-box-sizing:inherit;box-sizing:inherit;font-size:inherit}.fd-feed-list__footer{border:0;-webkit-box-sizing:border-box;box-sizing:border-box;color:var(--sapTextColor);display:-webkit-box;display:-ms-flexbox;display:flex;font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;line-height:normal;margin-block:0;margin-inline:0;padding-block:0;padding-inline:0;-webkit-padding-before:.375rem;font-size:var(--sapFontSmallSize);padding-block-start:.375rem}.fd-feed-list__footer:after,.fd-feed-list__footer:before{-webkit-box-sizing:inherit;box-sizing:inherit;font-size:inherit}.fd-feed-list__footer--byline{color:var(--sapContent_LabelColor)}.fd-feed-list__footer--byline:not(:last-child):after{content:\"\\2022\";padding-block:0;padding-inline:.25rem}.fd-feed-list--s .fd-feed-list__wrapper{border:0;-webkit-box-sizing:border-box;box-sizing:border-box;color:var(--sapTextColor);display:-webkit-box;display:-ms-flexbox;display:flex;font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;line-height:normal;margin-block:0;margin-inline:0;padding-block:0;padding-inline:0;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between}.fd-feed-list--s .fd-feed-list__wrapper:after,.fd-feed-list--s .fd-feed-list__wrapper:before{-webkit-box-sizing:inherit;box-sizing:inherit;font-size:inherit}.fd-feed-list--s .fd-feed-list__wrapper--header{display:-webkit-box;display:-ms-flexbox;display:flex}.fd-feed-list--s .fd-feed-list__body{display:block}.fd-feed-list--s .fd-feed-list__text{-webkit-padding-before:.625rem;padding-block-start:.625rem}.fd-feed-list--s .fd-feed-list__actions{border:0;-webkit-box-sizing:border-box;box-sizing:border-box;color:var(--sapTextColor);font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;line-height:normal;margin-block:0;margin-inline:0;padding-block:0;padding-inline:0;right:0;top:0;-webkit-padding-after:.25rem;padding-block-end:.25rem;-webkit-padding-start:.75rem;padding-inline-start:.75rem}.fd-feed-list--s .fd-feed-list__actions:after,.fd-feed-list--s .fd-feed-list__actions:before{-webkit-box-sizing:inherit;box-sizing:inherit;font-size:inherit}.fd-feed-list--s .fd-feed-list__actions[dir=rtl],[dir=rtl] .fd-feed-list--s .fd-feed-list__actions{left:0;right:auto}\n/*! Bundled license information:\n\nfundamental-styles/dist/feed-list.css:\n  (*!\n   * Fundamental Library Styles v0.41.7\n   * Copyright (c) 2026 SAP SE or an SAP affiliate company.\n   * Licensed under Apache License 2.0 (https://github.com/SAP/fundamental-styles/blob/main/LICENSE)\n   *)\n*/\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
}
__decorate([
    applyCssClass,
    __metadata("design:type", Function),
    __metadata("design:paramtypes", []),
    __metadata("design:returntype", Array)
], FeedListComponent.prototype, "buildComponentCssClass", null);
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.0", ngImport: i0, type: FeedListComponent, decorators: [{
            type: Component,
            args: [{ selector: 'fd-feed-list', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, template: "<ng-content select=\"fd-feed-list-item\"></ng-content>\n", styles: ["@charset \"UTF-8\";.fd-feed-list{border:0;-webkit-box-sizing:border-box;box-sizing:border-box;color:var(--sapTextColor);display:-webkit-box;display:-ms-flexbox;display:flex;font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;line-height:normal;margin-block:0;margin-inline:0;padding-block:0;padding-inline:0;-webkit-box-orient:horizontal;-webkit-box-direction:normal;background-color:var(--fdFeed_List_Item_Background);-ms-flex-direction:row;flex-direction:row;max-width:40rem}.fd-feed-list:after,.fd-feed-list:before{-webkit-box-sizing:inherit;box-sizing:inherit;font-size:inherit}.fd-feed-list .fd-feed-list__thumb{border:0;-webkit-box-sizing:border-box;box-sizing:border-box;color:var(--sapTextColor);display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;line-height:normal;margin-block:0;margin-inline:0;margin-inline:0 .75rem;padding-block:0;padding-inline:0}.fd-feed-list .fd-feed-list__thumb:after,.fd-feed-list .fd-feed-list__thumb:before{-webkit-box-sizing:inherit;box-sizing:inherit;font-size:inherit}.fd-feed-list__body{border:0;-webkit-box-sizing:border-box;box-sizing:border-box;color:var(--sapTextColor);display:-webkit-box;display:-ms-flexbox;display:flex;font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;line-height:normal;margin-block:0;margin-inline:0;padding-block:0;padding-block:1rem;padding-inline:0;padding-inline:1rem}.fd-feed-list__body:after,.fd-feed-list__body:before{-webkit-box-sizing:inherit;box-sizing:inherit;font-size:inherit}.fd-feed-list__body+.fd-feed-list__body{border-top:var(--fdFeed_List_Item_Border_Top)}.fd-feed-list__body+.fd-feed-list__body:last-child{border-bottom:var(--fdFeed_List_Item_Border_Bottom)}.fd-feed-list--no-border .fd-feed-list__body{border-top:none;padding-block:1rem .75rem;padding-inline:1rem}.fd-feed-list--no-border .fd-feed-list__body+.fd-feed-list__body{padding-block:.75rem .75rem}.fd-feed-list--no-border .fd-feed-list__body:last-child{-webkit-padding-after:1rem;border-bottom:none;padding-block-end:1rem}.fd-feed-list__link--more{cursor:pointer;text-transform:capitalize}.fd-feed-list__actions{border:0;-webkit-box-sizing:border-box;box-sizing:border-box;color:var(--sapTextColor);float:right;font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;line-height:normal;margin-block:0;margin-block:.5rem;margin-inline:0;margin-inline:.5rem;padding-block:0;padding-inline:0;position:relative;right:-1rem;top:-1rem}.fd-feed-list__actions:after,.fd-feed-list__actions:before{-webkit-box-sizing:inherit;box-sizing:inherit;font-size:inherit}.fd-feed-list__actions[dir=rtl],[dir=rtl] .fd-feed-list__actions{float:left;left:-1rem;right:auto}.fd-feed-list--group{-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column}.fd-feed-list--link{cursor:pointer}.fd-feed-list--link.is-focus,.fd-feed-list--link:focus{outline:var(--sapContent_FocusColor) var(--sapContent_FocusStyle) var(--sapContent_FocusWidth);outline-offset:-.1875rem}.fd-feed-list__name{border:0;-webkit-box-sizing:border-box;box-sizing:border-box;color:var(--sapTextColor);font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;font-weight:700;forced-color-adjust:none;line-height:normal;margin-block:0;margin-inline:0;padding-block:0;padding-inline:0}.fd-feed-list__name:after,.fd-feed-list__name:before{-webkit-box-sizing:inherit;box-sizing:inherit;font-size:inherit}.fd-feed-list__text{border:0;-webkit-box-sizing:border-box;box-sizing:border-box;color:var(--sapTextColor);font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;line-height:normal;margin-block:0;margin-inline:0;padding-block:0;padding-inline:0}.fd-feed-list__text:after,.fd-feed-list__text:before{-webkit-box-sizing:inherit;box-sizing:inherit;font-size:inherit}.fd-feed-list__footer{border:0;-webkit-box-sizing:border-box;box-sizing:border-box;color:var(--sapTextColor);display:-webkit-box;display:-ms-flexbox;display:flex;font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;line-height:normal;margin-block:0;margin-inline:0;padding-block:0;padding-inline:0;-webkit-padding-before:.375rem;font-size:var(--sapFontSmallSize);padding-block-start:.375rem}.fd-feed-list__footer:after,.fd-feed-list__footer:before{-webkit-box-sizing:inherit;box-sizing:inherit;font-size:inherit}.fd-feed-list__footer--byline{color:var(--sapContent_LabelColor)}.fd-feed-list__footer--byline:not(:last-child):after{content:\"\\2022\";padding-block:0;padding-inline:.25rem}.fd-feed-list--s .fd-feed-list__wrapper{border:0;-webkit-box-sizing:border-box;box-sizing:border-box;color:var(--sapTextColor);display:-webkit-box;display:-ms-flexbox;display:flex;font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;line-height:normal;margin-block:0;margin-inline:0;padding-block:0;padding-inline:0;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between}.fd-feed-list--s .fd-feed-list__wrapper:after,.fd-feed-list--s .fd-feed-list__wrapper:before{-webkit-box-sizing:inherit;box-sizing:inherit;font-size:inherit}.fd-feed-list--s .fd-feed-list__wrapper--header{display:-webkit-box;display:-ms-flexbox;display:flex}.fd-feed-list--s .fd-feed-list__body{display:block}.fd-feed-list--s .fd-feed-list__text{-webkit-padding-before:.625rem;padding-block-start:.625rem}.fd-feed-list--s .fd-feed-list__actions{border:0;-webkit-box-sizing:border-box;box-sizing:border-box;color:var(--sapTextColor);font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;line-height:normal;margin-block:0;margin-inline:0;padding-block:0;padding-inline:0;right:0;top:0;-webkit-padding-after:.25rem;padding-block-end:.25rem;-webkit-padding-start:.75rem;padding-inline-start:.75rem}.fd-feed-list--s .fd-feed-list__actions:after,.fd-feed-list--s .fd-feed-list__actions:before{-webkit-box-sizing:inherit;box-sizing:inherit;font-size:inherit}.fd-feed-list--s .fd-feed-list__actions[dir=rtl],[dir=rtl] .fd-feed-list--s .fd-feed-list__actions{left:0;right:auto}\n/*! Bundled license information:\n\nfundamental-styles/dist/feed-list.css:\n  (*!\n   * Fundamental Library Styles v0.41.7\n   * Copyright (c) 2026 SAP SE or an SAP affiliate company.\n   * Licensed under Apache License 2.0 (https://github.com/SAP/fundamental-styles/blob/main/LICENSE)\n   *)\n*/\n"] }]
        }], ctorParameters: () => [{ type: i0.ElementRef }], propDecorators: { class: [{
                type: Input
            }], ariaLabel: [{
                type: Input
            }], ariaLabelledby: [{
                type: Input
            }], mobile: [{
                type: Input
            }], isGroup: [{
                type: Input
            }], borderLess: [{
                type: Input
            }], feedItems: [{
                type: ContentChildren,
                args: [FeedListItemComponent]
            }], buildComponentCssClass: [] } });

class FeedListFooterBylineDirective {
    constructor() {
        /** @hidden */
        this.fdBylineClass = true;
    }
    static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.0", ngImport: i0, type: FeedListFooterBylineDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
    static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.1.0", type: FeedListFooterBylineDirective, isStandalone: true, selector: "[fd-item-footer-byline]", host: { properties: { "class.fd-feed-list__footer--byline": "this.fdBylineClass" } }, ngImport: i0 }); }
}
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.0", ngImport: i0, type: FeedListFooterBylineDirective, decorators: [{
            type: Directive,
            args: [{
                    // eslint-disable-next-line @angular-eslint/directive-selector
                    selector: '[fd-item-footer-byline]',
                    standalone: true
                }]
        }], propDecorators: { fdBylineClass: [{
                type: HostBinding,
                args: ['class.fd-feed-list__footer--byline']
            }] } });

const components = [
    FeedListComponent,
    FeedListItemComponent,
    FeedListAvatarComponent,
    FeedListActionComponent,
    FeedListFooterComponent,
    FeedListFooterBylineDirective
];
/**
 * @deprecated
 * Use direct imports of components and directives.
 */
class FeedListItemModule {
    static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.0", ngImport: i0, type: FeedListItemModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
    static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "21.1.0", ngImport: i0, type: FeedListItemModule, imports: [FeedListComponent,
            FeedListItemComponent,
            FeedListAvatarComponent,
            FeedListActionComponent,
            FeedListFooterComponent,
            FeedListFooterBylineDirective], exports: [FeedListComponent,
            FeedListItemComponent,
            FeedListAvatarComponent,
            FeedListActionComponent,
            FeedListFooterComponent,
            FeedListFooterBylineDirective] }); }
    static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "21.1.0", ngImport: i0, type: FeedListItemModule, imports: [FeedListItemComponent] }); }
}
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.0", ngImport: i0, type: FeedListItemModule, decorators: [{
            type: NgModule,
            args: [{
                    imports: [...components],
                    exports: [...components]
                }]
        }] });

/**
 * Generated bundle index. Do not edit.
 */

export { FeedListActionComponent, FeedListAvatarComponent, FeedListComponent, FeedListFooterBylineDirective, FeedListFooterComponent, FeedListItemComponent, FeedListItemModule };
//# sourceMappingURL=fundamental-ngx-core-feed-list-item.mjs.map
