import { TAB, ENTER, SPACE, DOWN_ARROW, UP_ARROW, RIGHT_ARROW, LEFT_ARROW } from '@angular/cdk/keycodes';
import * as i1 from '@angular/cdk/scrolling';
import * as i0 from '@angular/core';
import { EventEmitter, inject, Output, Input, ChangeDetectionStrategy, ViewEncapsulation, Component, Directive, InjectionToken, input, booleanAttribute, model, output, signal, contentChild, NgModule } from '@angular/core';
import { Subscription } from 'rxjs';
import { RtlService, KeyUtil, DndItemDirective, DndListDirective } from '@fundamental-ngx/cdk/utils';
import { AvatarComponent } from '@fundamental-ngx/core/avatar';
import { FD_DEFAULT_ICON_FONT_FAMILY, IconComponent } from '@fundamental-ngx/core/icon';
import { NgTemplateOutlet } from '@angular/common';
import { ButtonComponent } from '@fundamental-ngx/core/button';
import { ContentDensityMode, ContentDensityDirective } from '@fundamental-ngx/core/content-density';
import { PopoverComponent, PopoverControlComponent, PopoverBodyComponent } from '@fundamental-ngx/core/popover';
import { FdTranslatePipe } from '@fundamental-ngx/i18n';

const containerWidthPxSmallMode = 588;
const containerWidthPx = 776;
class ProductSwitchBodyComponent {
    /** @hidden */
    constructor(_viewportRuler, _cdr) {
        this._viewportRuler = _viewportRuler;
        this._cdr = _cdr;
        /** Defines if drag and drop functionality should be included in product switch*/
        this.dragAndDropEnabled = true;
        /** Defines if the product switcher should be displayed in list mode, no matter what is the size of window */
        this.forceListMode = false;
        /** Event thrown on products array change */
        this.productsChange = new EventEmitter();
        /** Event emitted on product click */
        this.itemClicked = new EventEmitter();
        /** @hidden */
        this.FD_DEFAULT_ICON_FONT_FAMILY = FD_DEFAULT_ICON_FONT_FAMILY;
        /** @hidden */
        this._subscriptions = new Subscription();
        /** @hidden */
        this._rtlService = inject(RtlService, { optional: true });
    }
    /** @hidden */
    ngOnInit() {
        this._subscriptions.add(this._viewportRuler.change().subscribe((event) => {
            const { innerWidth } = event.target;
            this._checkSize(innerWidth);
        }));
        const { width } = this._viewportRuler.getViewportSize();
        this._checkSize(width);
    }
    /** @hidden */
    ngOnDestroy() {
        this._subscriptions.unsubscribe();
    }
    /** @hidden */
    _itemClick(item, event) {
        this.products.forEach((product) => (product.selected = product === item));
        this.itemClicked.emit();
        if (item.callback) {
            item.callback(event);
        }
    }
    /** Method called on products change */
    _productSwitchItemsChangeHandle(dropEvent) {
        this.productsChange.emit(dropEvent.items);
        this.products = dropEvent.items;
    }
    /** @hidden */
    _keyDownHandle(event) {
        const target = event.target;
        if (!KeyUtil.isKeyCode(event, TAB)) {
            event.preventDefault();
        }
        if (KeyUtil.isKeyCode(event, [ENTER, SPACE])) {
            target.click();
        }
        else if (!this._isListMode()) {
            const i = Array.from(target.parentElement?.children ?? []).indexOf(target);
            this._handleNoListKeydown(event, target, i);
        }
        else if (this._isListMode() && KeyUtil.isKeyCode(event, [DOWN_ARROW, UP_ARROW])) {
            this._handleListArrowUpDown(event, target);
        }
    }
    /** @hidden */
    _isSmallMode() {
        return this.products?.length < 7;
    }
    /** @hidden */
    _isListMode() {
        return this._listMode || this.forceListMode;
    }
    /** @hidden */
    _checkSize(width) {
        if (this._isSmallMode()) {
            this._listMode = width < containerWidthPxSmallMode;
        }
        else {
            this._listMode = width < containerWidthPx;
        }
        this._cdr.markForCheck();
    }
    /** @hidden */
    _handleNoListKeydown(event, target, i) {
        const previousElementSibling = target.previousElementSibling;
        const nextElementSibling = target.nextElementSibling;
        if (i === this.products.length - 1 &&
            (KeyUtil.isKeyCode(event, RIGHT_ARROW) || (KeyUtil.isKeyCode(event, LEFT_ARROW) && this._rtlService?.rtl()))) {
            while (target.previousElementSibling) {
                target = target.previousElementSibling;
            }
            target.focus();
        }
        if (KeyUtil.isKeyCode(event, LEFT_ARROW)) {
            this._rtlService?.rtl() ? nextElementSibling?.focus() : previousElementSibling?.focus();
        }
        else if (KeyUtil.isKeyCode(event, RIGHT_ARROW)) {
            this._rtlService?.rtl() ? previousElementSibling?.focus() : nextElementSibling?.focus();
        }
        else if (KeyUtil.isKeyCode(event, [DOWN_ARROW, UP_ARROW])) {
            if (this.products.length >= 7) {
                this._handleNoListMoreThanSeven(event, target, i);
            }
            else if (this.products.length < 7) {
                this._handleNoListLessThanSeven(event, target, i);
            }
        }
    }
    /** @hidden */
    _handleNoListMoreThanSeven(event, target, i) {
        const nextIndexByColumn = 4;
        const children = target.parentElement?.children;
        if (!children) {
            return;
        }
        if (KeyUtil.isKeyCode(event, DOWN_ARROW)) {
            children[i + nextIndexByColumn]?.focus();
        }
        if (KeyUtil.isKeyCode(event, UP_ARROW)) {
            children[i - nextIndexByColumn]?.focus();
        }
    }
    /** @hidden */
    _handleNoListLessThanSeven(event, target, i) {
        const nextIndexByColumn = 3;
        const children = target.parentElement?.children;
        if (!children) {
            return;
        }
        if (KeyUtil.isKeyCode(event, DOWN_ARROW)) {
            children[i + nextIndexByColumn]?.focus();
        }
        if (KeyUtil.isKeyCode(event, UP_ARROW)) {
            children[i - nextIndexByColumn]?.focus();
        }
    }
    /** @hidden */
    _handleListArrowUpDown(event, target) {
        const targetIndex = Array.from(target.parentElement?.children ?? []).indexOf(target);
        const previousElementSibling = targetIndex === 0
            ? target.parentElement?.children[this.products.length - 1]
            : target.previousElementSibling;
        const nextElementSibling = targetIndex === this.products.length - 1
            ? target.parentElement?.children[0]
            : target.nextElementSibling;
        if (this._isListMode() && KeyUtil.isKeyCode(event, DOWN_ARROW) && nextElementSibling) {
            nextElementSibling.focus();
        }
        else if (this._isListMode() && KeyUtil.isKeyCode(event, UP_ARROW) && previousElementSibling) {
            previousElementSibling.focus();
        }
    }
    static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.0", ngImport: i0, type: ProductSwitchBodyComponent, deps: [{ token: i1.ViewportRuler }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
    static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.1.0", type: ProductSwitchBodyComponent, isStandalone: true, selector: "fd-product-switch-body", inputs: { dragAndDropEnabled: "dragAndDropEnabled", products: "products", forceListMode: "forceListMode" }, outputs: { productsChange: "productsChange", itemClicked: "itemClicked" }, ngImport: i0, template: "<div\n    class=\"fd-product-switch__body\"\n    [class.fd-product-switch__body--col-3]=\"_isSmallMode() && !_isListMode()\"\n    [class.fd-product-switch__body--mobile]=\"_isListMode()\"\n>\n    <ul\n        fd-dnd-list\n        class=\"fd-product-switch__list\"\n        [items]=\"products\"\n        [gridMode]=\"!_isListMode()\"\n        (itemDropped)=\"_productSwitchItemsChangeHandle($event)\"\n    >\n        @for (product of products; track product) {\n            <li\n                fd-dnd-item\n                tabindex=\"0\"\n                class=\"fd-product-switch__item\"\n                [class.selected]=\"product.selected\"\n                (keydown)=\"_keyDownHandle($event)\"\n                (click)=\"_itemClick(product, $event)\"\n                [draggable]=\"!product.disabledDragAndDrop && dragAndDropEnabled\"\n                [stickInPlace]=\"!!product.stickToPosition\"\n            >\n                @if (product.avatar) {\n                    <fd-avatar\n                        size=\"s\"\n                        [glyph]=\"product.avatar.glyph ?? null\"\n                        [label]=\"product.avatar.label ?? null\"\n                        [circle]=\"!!product.avatar.circle\"\n                        [image]=\"product.avatar.image ?? null\"\n                        [contain]=\"!!product.avatar.contain\"\n                        [transparent]=\"!!product.avatar.transparent\"\n                        [placeholder]=\"!!product.avatar.placeholder\"\n                        [tile]=\"!!product.avatar.tile\"\n                        [colorAccent]=\"product.avatar.colorAccent\"\n                        [colorIndication]=\"product.avatar.colorIndication\"\n                        [border]=\"!!product.avatar.border\"\n                        [alterIcon]=\"product.avatar.alterIcon ?? null\"\n                        [backupImage]=\"product.avatar.backupImage ?? null\"\n                        [ariaLabel]=\"product.avatar.ariaLabel ?? null\"\n                    >\n                    </fd-avatar>\n                } @else {\n                    <fd-icon\n                        [font]=\"product.font || FD_DEFAULT_ICON_FONT_FAMILY\"\n                        role=\"presentation\"\n                        class=\"fd-product-switch__icon\"\n                        [glyph]=\"product.icon\"\n                    ></fd-icon>\n                }\n\n                <div class=\"fd-product-switch__text\">\n                    <div class=\"fd-product-switch__title\">{{ product.title }}</div>\n                    @if (product.subtitle) {\n                        <div class=\"fd-product-switch__subtitle\">{{ product.subtitle }}</div>\n                    }\n                </div>\n            </li>\n        }\n    </ul>\n</div>\n", styles: [".drag-placeholder{opacity:.3;position:absolute}.fd-product-switch{--fdProduct_Switch_Item_Border_Color:transparent;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-product-switch:after,.fd-product-switch:before{-webkit-box-sizing:inherit;box-sizing:inherit;font-size:inherit}.fd-product-switch__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;-ms-flex-direction:row;flex-direction:row;-ms-flex-wrap:wrap;flex-wrap:wrap;gap:.5rem;width:46.5rem}.fd-product-switch__list:after,.fd-product-switch__list:before{-webkit-box-sizing:inherit;box-sizing:inherit;font-size:inherit}.fd-product-switch__item{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:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;gap:.5rem;-webkit-box-align:center;-ms-flex-align:center;align-items:center;height:7rem;max-width:11.25rem;text-align:center;-webkit-box-flex:1;background-color:var(--sapList_Background);border:.125rem solid var(--fdProduct_Switch_Item_Border_Color);border-radius:var(--sapElement_BorderCornerRadius);-webkit-box-shadow:var(--fdProductSwitch_Shadow);box-shadow:var(--fdProductSwitch_Shadow);-ms-flex:1 0 25%;flex:1 0 25%;padding-block:.5rem;padding-inline:.5rem}.fd-product-switch__item:after,.fd-product-switch__item:before{-webkit-box-sizing:inherit;box-sizing:inherit;font-size:inherit}.fd-product-switch__item .fd-product-switch__title:not(:last-child){overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.fd-product-switch__item .fd-product-switch__title:after,.fd-product-switch__item .fd-product-switch__title:before{background-color:var(--sapList_Background)}.fd-product-switch__item.is-hover,.fd-product-switch__item:hover{background-color:var(--sapList_Hover_Background);cursor:pointer}.fd-product-switch__item.is-hover .fd-product-switch__title:after,.fd-product-switch__item.is-hover .fd-product-switch__title:before,.fd-product-switch__item:hover .fd-product-switch__title:after,.fd-product-switch__item:hover .fd-product-switch__title:before{background-color:var(--sapList_Hover_Background)}.fd-product-switch__item.is-active,.fd-product-switch__item:active{--fdProduct_Switch_Item_Border_Color:var(--sapList_Active_Background);background-color:var(--sapList_Active_Background)}.fd-product-switch__item.is-active.is-focus,.fd-product-switch__item.is-active:focus,.fd-product-switch__item:active.is-focus,.fd-product-switch__item:active:focus{outline:var(--sapContent_FocusColor) var(--sapContent_FocusStyle) var(--sapContent_FocusWidth);outline-color:var(--sapContent_ContrastFocusColor);outline-offset:-.1875rem}.fd-product-switch__item.is-active .fd-product-switch__icon [class*=sap-icon],.fd-product-switch__item.is-active .fd-product-switch__icon[class*=sap-icon],.fd-product-switch__item.is-active .fd-product-switch__subtitle,.fd-product-switch__item.is-active .fd-product-switch__title,.fd-product-switch__item:active .fd-product-switch__icon [class*=sap-icon],.fd-product-switch__item:active .fd-product-switch__icon[class*=sap-icon],.fd-product-switch__item:active .fd-product-switch__subtitle,.fd-product-switch__item:active .fd-product-switch__title{color:var(--sapList_Active_TextColor)}.fd-product-switch__item.is-active .fd-product-switch__title:after,.fd-product-switch__item.is-active .fd-product-switch__title:before,.fd-product-switch__item.is-active.is-hover .fd-product-switch__title:after,.fd-product-switch__item.is-active.is-hover .fd-product-switch__title:before,.fd-product-switch__item.is-active:hover .fd-product-switch__title:after,.fd-product-switch__item.is-active:hover .fd-product-switch__title:before,.fd-product-switch__item:active .fd-product-switch__title:after,.fd-product-switch__item:active .fd-product-switch__title:before,.fd-product-switch__item:active.is-hover .fd-product-switch__title:after,.fd-product-switch__item:active.is-hover .fd-product-switch__title:before,.fd-product-switch__item:active:hover .fd-product-switch__title:after,.fd-product-switch__item:active:hover .fd-product-switch__title:before{background-color:var(--sapList_Active_Background)}.fd-product-switch__item.selected{--fdProduct_Switch_Item_Border_Color:var(--sapList_SelectionBorderColor)}.fd-product-switch__item.selected,.fd-product-switch__item.selected .fd-product-switch__title:after,.fd-product-switch__item.selected .fd-product-switch__title:before{background-color:var(--sapList_SelectionBackgroundColor)}.fd-product-switch__item.selected.is-hover,.fd-product-switch__item.selected.is-hover .fd-product-switch__title:after,.fd-product-switch__item.selected.is-hover .fd-product-switch__title:before,.fd-product-switch__item.selected:hover,.fd-product-switch__item.selected:hover .fd-product-switch__title:after,.fd-product-switch__item.selected:hover .fd-product-switch__title:before{background-color:var(--sapList_Hover_SelectionBackground)}.fd-product-switch__item.selected.is-active,.fd-product-switch__item.selected.is-active .fd-product-switch__title:after,.fd-product-switch__item.selected.is-active .fd-product-switch__title:before,.fd-product-switch__item.selected:active,.fd-product-switch__item.selected:active .fd-product-switch__title:after,.fd-product-switch__item.selected:active .fd-product-switch__title:before{background-color:var(--sapList_Active_Background)}.fd-product-switch__item.is-focus,.fd-product-switch__item:focus{outline:var(--sapContent_FocusColor) var(--sapContent_FocusStyle) var(--sapContent_FocusWidth);outline-offset:-.1875rem}.fd-product-switch__item.dragged{-webkit-box-shadow:var(--sapContent_Shadow2);box-shadow:var(--sapContent_Shadow2);cursor:-webkit-grabbing;cursor:grabbing}.fd-product-switch__item.dragged,.fd-product-switch__item.dragged:active,.fd-product-switch__item.dragged:hover{background-color:var(--sapList_Background)}.fd-product-switch__item.dragged:active .fd-product-switch__icon [class*=sap-icon],.fd-product-switch__item.dragged:active .fd-product-switch__icon[class*=sap-icon],.fd-product-switch__item.dragged:hover .fd-product-switch__icon [class*=sap-icon],.fd-product-switch__item.dragged:hover .fd-product-switch__icon[class*=sap-icon]{color:var(--sapContent_IconColor)}.fd-product-switch__item.dragged:active .fd-product-switch__title,.fd-product-switch__item.dragged:hover .fd-product-switch__title{color:var(--sapGroup_TitleTextColor)}.fd-product-switch__item.dragged:active .fd-product-switch__subtitle,.fd-product-switch__item.dragged:hover .fd-product-switch__subtitle{color:var(--sapContent_LabelColor)}.fd-product-switch__item.dragged.selected{border:none;-webkit-box-shadow:var(--sapContent_Shadow2);box-shadow:var(--sapContent_Shadow2)}.fd-product-switch__item.dragged.is-hover,.fd-product-switch__item.dragged:hover{outline:none}.fd-product-switch__icon [class*=sap-icon],.fd-product-switch__icon[class*=sap-icon]{background:inherit;border-radius:inherit;color:inherit;color:var(--sapContent_IconColor);display:-webkit-box;display:-ms-flexbox;display:flex;font-size:inherit;font-size:1.5rem;line-height:1;min-height:3rem;min-width:3rem;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.fd-product-switch__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;max-height:2.5rem;overflow:hidden;padding-block:0;padding-inline:0;text-shadow:var(--fdProductSwitch_Text_Shadow);width:100%}.fd-product-switch__text:after,.fd-product-switch__text:before{-webkit-box-sizing:inherit;box-sizing:inherit;font-size:inherit}.fd-product-switch__title{border:0;-webkit-box-sizing:border-box;box-sizing:border-box;color:var(--sapTextColor);color:var(--sapGroup_TitleTextColor);font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-size:var(--sapFontHeader6Size);font-weight:400;forced-color-adjust:none;line-height:normal;line-height:1.25rem;margin-block:0;margin-inline:0;max-height:2.5rem;padding-block:0;padding-inline:0;white-space:normal;z-index:1}.fd-product-switch__title:after,.fd-product-switch__title:before{-webkit-box-sizing:inherit;box-sizing:inherit;font-size:inherit}.fd-product-switch__title.is-last-child,.fd-product-switch__title:last-child{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;text-overflow:ellipsis;white-space:normal}.fd-product-switch__title:before{left:9.4rem;width:1rem;z-index:2}.fd-product-switch__title:after{left:9.4rem;width:1rem;z-index:3}.fd-product-switch__subtitle{border:0;-webkit-box-sizing:border-box;box-sizing:border-box;color:var(--sapTextColor);color:var(--sapContent_LabelColor);font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-size:var(--sapFontSmallSize);font-weight:400;forced-color-adjust:none;line-height:normal;line-height:1.25rem;margin-block:0;margin-inline:0;overflow:hidden;padding-block:0;padding-inline:0;text-overflow:ellipsis;white-space:nowrap}.fd-product-switch__subtitle:after,.fd-product-switch__subtitle:before{-webkit-box-sizing:inherit;box-sizing:inherit;font-size:inherit}.fd-product-switch__body{background-color:var(--sapList_Background);border:0;border-radius:var(--sapElement_BorderCornerRadius);-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;max-height:calc(100vh - 76px);overflow-y:auto;padding-block:0;padding-block:1.5rem;padding-inline:0;padding-inline:1rem;scrollbar-color:var(--fdScrollbar_Thumb_Color) var(--fdScrollbar_Track_Color);width:-webkit-fit-content;width:-moz-fit-content;width:fit-content}.fd-product-switch__body:after,.fd-product-switch__body:before{-webkit-box-sizing:inherit;box-sizing:inherit;font-size:inherit}.fd-product-switch__body.is-focus,.fd-product-switch__body:focus{outline:none;z-index:5}.fd-product-switch__body::-webkit-scrollbar{height:var(--fdScrollbar_Dimension);width:var(--fdScrollbar_Dimension)}.fd-product-switch__body::-webkit-scrollbar-corner,.fd-product-switch__body::-webkit-scrollbar-track{background-color:var(--fdScrollbar_Track_Color)}.fd-product-switch__body::-webkit-scrollbar-thumb{background-color:transparent;border:var(--fdScrollbar_Thumb_Offset) solid transparent;border-radius:calc(var(--fdScrollbar_Thumb_Border_Radius) - var(--fdScrollbar_Thumb_Offset));-webkit-box-shadow:inset 0 0 0 var(--fdScrollbar_Dimension) var(--fdScrollbar_Thumb_Color);box-shadow:inset 0 0 0 var(--fdScrollbar_Dimension) var(--fdScrollbar_Thumb_Color)}.fd-product-switch__body::-webkit-scrollbar-thumb:active,.fd-product-switch__body::-webkit-scrollbar-thumb:hover{-webkit-box-shadow:inset 0 0 0 var(--fdScrollbar_Dimension) var(--fdScrollbar_Thumb_Hover_Color);box-shadow:inset 0 0 0 var(--fdScrollbar_Dimension) var(--fdScrollbar_Thumb_Hover_Color)}.fd-product-switch__body--col-3 .fd-product-switch__list{width:34.75rem}.fd-product-switch__body--mobile{border-radius:0;max-width:100vw;overflow-x:hidden;padding-block:0;padding-inline:0;width:100%}.fd-product-switch__body--mobile .fd-product-switch__list{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;gap:0;width:100%}.fd-product-switch__body--mobile .fd-product-switch__item{-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;border:none;border-radius:0;-ms-flex-direction:row;flex-direction:row;gap:.75rem;max-height:5rem;max-width:100%;padding-block:1rem;padding-inline:1rem;text-align:left;-webkit-box-flex:1;border-bottom:.0625rem solid var(--sapList_GroupHeaderBorderColor);-ms-flex:auto;flex:auto}.fd-product-switch__body--mobile .fd-product-switch__item:after,.fd-product-switch__body--mobile .fd-product-switch__item:before{-webkit-box-sizing:inherit;box-sizing:inherit;font-size:inherit}.fd-product-switch__body--mobile .fd-product-switch__item .fd-product-switch__title:after,.fd-product-switch__body--mobile .fd-product-switch__item .fd-product-switch__title:before{background-color:var(--sapTile_Background)}.fd-product-switch__body--mobile .fd-product-switch__item.is-hover .fd-product-switch__title:after,.fd-product-switch__body--mobile .fd-product-switch__item.is-hover .fd-product-switch__title:before,.fd-product-switch__body--mobile .fd-product-switch__item:hover .fd-product-switch__title:after,.fd-product-switch__body--mobile .fd-product-switch__item:hover .fd-product-switch__title:before{background-color:var(--sapList_Hover_Background)}.fd-product-switch__body--mobile .fd-product-switch__item.is-active .fd-product-switch__title:after,.fd-product-switch__body--mobile .fd-product-switch__item.is-active .fd-product-switch__title:before,.fd-product-switch__body--mobile .fd-product-switch__item:active .fd-product-switch__title:after,.fd-product-switch__body--mobile .fd-product-switch__item:active .fd-product-switch__title:before{background-color:var(--sapList_SelectionBorderColor)}.fd-product-switch__body--mobile .fd-product-switch__item.is-active.is-focus,.fd-product-switch__body--mobile .fd-product-switch__item.is-active:focus,.fd-product-switch__body--mobile .fd-product-switch__item:active.is-focus,.fd-product-switch__body--mobile .fd-product-switch__item:active:focus{outline:var(--sapContent_FocusColor) var(--sapContent_FocusStyle) var(--sapContent_FocusWidth);outline-color:var(--sapContent_ContrastFocusColor);outline-offset:-.1875rem}.fd-product-switch__body--mobile .fd-product-switch__item.selected{border-bottom-color:var(--sapList_SelectionBorderColor);-webkit-box-shadow:none;box-shadow:none}.fd-product-switch__body--mobile .fd-product-switch__item.selected .fd-product-switch__title:after,.fd-product-switch__body--mobile .fd-product-switch__item.selected .fd-product-switch__title:before{background-color:var(--sapList_SelectionBorderColor)}.fd-product-switch__body--mobile .fd-product-switch__item.selected.is-hover .fd-product-switch__title:after,.fd-product-switch__body--mobile .fd-product-switch__item.selected.is-hover .fd-product-switch__title:before,.fd-product-switch__body--mobile .fd-product-switch__item.selected:hover .fd-product-switch__title:after,.fd-product-switch__body--mobile .fd-product-switch__item.selected:hover .fd-product-switch__title:before{background-color:var(--sapList_Hover_SelectionBackground)}.fd-product-switch__body--mobile .fd-product-switch__item.selected.is-active .fd-product-switch__title:after,.fd-product-switch__body--mobile .fd-product-switch__item.selected.is-active .fd-product-switch__title:before,.fd-product-switch__body--mobile .fd-product-switch__item.selected.is-active.is-hover .fd-product-switch__title:after,.fd-product-switch__body--mobile .fd-product-switch__item.selected.is-active.is-hover .fd-product-switch__title:before,.fd-product-switch__body--mobile .fd-product-switch__item.selected.is-active:hover .fd-product-switch__title:after,.fd-product-switch__body--mobile .fd-product-switch__item.selected.is-active:hover .fd-product-switch__title:before,.fd-product-switch__body--mobile .fd-product-switch__item.selected:active .fd-product-switch__title:after,.fd-product-switch__body--mobile .fd-product-switch__item.selected:active .fd-product-switch__title:before,.fd-product-switch__body--mobile .fd-product-switch__item.selected:active.is-hover .fd-product-switch__title:after,.fd-product-switch__body--mobile .fd-product-switch__item.selected:active.is-hover .fd-product-switch__title:before,.fd-product-switch__body--mobile .fd-product-switch__item.selected:active:hover .fd-product-switch__title:after,.fd-product-switch__body--mobile .fd-product-switch__item.selected:active:hover .fd-product-switch__title:before{background-color:var(--sapList_Active_Background)}.fd-product-switch__body--mobile .fd-product-switch__item.is-focus,.fd-product-switch__body--mobile .fd-product-switch__item:focus{outline:var(--sapContent_FocusColor) var(--sapContent_FocusStyle) var(--sapContent_FocusWidth);outline-offset:-.1875rem}.fd-product-switch__body--mobile .fd-product-switch__item .fd-product-switch__title:after,.fd-product-switch__body--mobile .fd-product-switch__item .fd-product-switch__title:before{left:21.7rem;width:1rem;z-index:2}.fd-product-switch__body--mobile .fd-product-switch__text{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;-webkit-box-pack:justify;-ms-flex-pack:justify;height:100%;justify-content:space-between}.fd-product-switch__body--mobile[dir=rtl] .fd-product-switch__text,[dir=rtl] .fd-product-switch__body--mobile .fd-product-switch__text{-webkit-box-align:start;-ms-flex-align:start;align-items:flex-start}.fd-product-switch__body--mobile[dir=rtl] .fd-product-switch__text .fd-product-switch__title:not(:last-child),[dir=rtl] .fd-product-switch__body--mobile .fd-product-switch__text .fd-product-switch__title:not(:last-child){overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.fd-product-switch__body--mobile[dir=rtl] .fd-product-switch__text .fd-product-switch__title:not(:last-child):after,[dir=rtl] .fd-product-switch__body--mobile .fd-product-switch__text .fd-product-switch__title:not(:last-child):after{display:none}.fd-product-switch__body--mobile[dir=rtl] .fd-product-switch__text .fd-product-switch__title:not(:last-child):before,[dir=rtl] .fd-product-switch__body--mobile .fd-product-switch__text .fd-product-switch__title:not(:last-child):before{display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex}.fd-product-switch__body--mobile[dir=rtl] .fd-product-switch__item .fd-product-switch__title:before,[dir=rtl] .fd-product-switch__body--mobile .fd-product-switch__item .fd-product-switch__title:before{right:21.8rem;width:2rem}.fd-product-switch__body--mobile[dir=rtl] .fd-product-switch__item .fd-product-switch__subtitle,[dir=rtl] .fd-product-switch__body--mobile .fd-product-switch__item .fd-product-switch__subtitle{line-height:1.25rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.fd-product-switch__body--mobile[dir=rtl] .fd-product-switch__item .fd-product-switch__subtitle:before,[dir=rtl] .fd-product-switch__body--mobile .fd-product-switch__item .fd-product-switch__subtitle:before{right:21.8rem;text-align:right;width:2rem;z-index:2}.fd-product-switch__body--mobile[dir=rtl] .fd-product-switch__item .fd-product-switch__subtitle:after,[dir=rtl] .fd-product-switch__body--mobile .fd-product-switch__item .fd-product-switch__subtitle:after{display:none;z-index:3}.fd-product-switch__body--mobile[dir=rtl] .fd-product-switch__item.is-active .fd-product-switch__subtitle,.fd-product-switch__body--mobile[dir=rtl] .fd-product-switch__item:active .fd-product-switch__subtitle,[dir=rtl] .fd-product-switch__body--mobile .fd-product-switch__item.is-active .fd-product-switch__subtitle,[dir=rtl] .fd-product-switch__body--mobile .fd-product-switch__item:active .fd-product-switch__subtitle{color:var(--sapList_Active_TextColor)}.fd-product-switch__list{position:relative}.fd-product-switch__item.cdk-drag-dragging{outline:none;cursor:grabbing;box-shadow:0 0 0 .0625rem #00000026,0 .625rem 1.875rem #0000004d}.fd-product-switch__body--mobile .fd-product-switch__item.cdk-drag-dragging{outline:none;box-shadow:0 0 0 .0625rem #00000026,0 .625rem 1.875rem #0000004d}.fd-dnd-item{position:relative}.fd-dnd-item.fd-dnd-on-drag{background-color:#fff;background-color:var(--sapList_Background, #fff);z-index:15}.fd-dnd-item.fd-dnd-on-drag.fd-product-switch__item .fd-product-switch__title:before,.fd-dnd-item.fd-dnd-on-drag.fd-product-switch__item .fd-product-switch__title:after{background-color:#fff;background-color:var(--sapList_Background, #fff)}.fd-dnd-item.fd-dnd-on-drag.fd-product-switch__item .fd-product-switch__icon{color:#0854a0;color:var(--sapContent_IconColor, #0854a0)}.fd-dnd-item.fd-dnd-on-drag.fd-product-switch__item .fd-product-switch__title{color:#32363a;color:var(--sapGroup_TitleTextColor, #32363a)}.fd-dnd-item.fd-dnd-on-drag.fd-product-switch__item .fd-product-switch__subtitle{color:#6a6d70;color:var(--sapContent_LabelColor, #6a6d70)}.fd-dnd-item.fd-dnd-on-drag.fd-product-switch__item:active,.fd-dnd-item.fd-dnd-on-drag.selected{background-color:#fff;background-color:var(--sapList_Background, #fff)}[dir=rtl] .fd-product-switch__body--mobile .fd-product-switch__title,[dir=rtl] .fd-product-switch__body--mobile .fd-product-switch__subtitle{text-align:right}.fd-product-switch__item{--fdProduct_Switch_Item_Border_Color: transparent;gap:.5rem}.fd-product-switch__icon [class*=sap-icon],.fd-product-switch__icon[class*=sap-icon]{margin-block-end:0}.fd-product-switch__body.fd-product-switch__body--mobile .fd-product-switch__item{gap:.75rem}.fd-product-switch__body.fd-product-switch__body--mobile .fd-product-switch__icon [class*=sap-icon],.fd-product-switch__body.fd-product-switch__body--mobile .fd-product-switch__icon[class*=sap-icon]{margin-inline:0}\n/*! Bundled license information:\n\nfundamental-styles/dist/product-switch.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", ".cdk-drag-dragging{z-index:15;background-color:#fff;background-color:var(--sapList_Background, #fff);opacity:.8;transition:box-shadow .2s cubic-bezier(0,0,.2,1);box-shadow:0 3px 1px -2px #0003,0 2px 2px #00000024,0 1px 5px #0000001f}.fd-replace-indicator{position:absolute;width:100%;height:100%;top:0;left:0;pointer-events:none;border-width:.125rem;border-style:solid;background-color:transparent;border-color:#0854a0;border-color:var(--sapContent_DragAndDropActiveColor)}.fd-replace-indicator:before{content:\"\";display:block;position:absolute;width:100%;height:100%;top:0;left:0;background-color:#0854a0;background-color:var(--sapContent_DragAndDropActiveColor, #0854a0);opacity:.5}.cdk-drag{cursor:grab}.cdk-drag.cdk-drag-dragging{cursor:grabbing}.cdk-drag-dragging{outline:none;cursor:grabbing;box-shadow:0 0 0 .0625rem #00000026,0 .625rem 1.875rem #0000004d}.cdk-drag-disabled{cursor:default}.fd-dnd-placeholder{top:0;left:0;position:absolute;opacity:.3;z-index:-1}.fd-dnd-item{position:relative;cursor:grab}.fd-dnd-item.fd-dnd-on-drag{background-color:#fff;background-color:var(--sapList_Background, #fff);z-index:15;cursor:grabbing}.drop-area__line{z-index:9999;position:absolute;background:#0854a0;background:var(--sapContent_DragAndDropActiveColor, #0854a0)}.drop-area__line--vertical{top:0;height:calc(100% - .5rem);width:2px}.drop-area__line--vertical.after{right:.2rem}.drop-area__line--vertical.before{left:-.3rem}.drop-area__line--vertical:before{background-color:#fff;background-color:var(--sapList_Background, #fff);content:\"\";position:absolute;left:-.2rem;top:-.5rem;border-radius:50%;width:.5rem;height:.5rem;border-width:.125rem;border-style:solid;border-color:#0854a0;border-color:var(--sapContent_DragAndDropActiveColor, #0854a0)}.drop-area__line--horizontal{left:0;width:100%;height:2px}.drop-area__line--horizontal.before{top:0}.drop-area__line--horizontal.after{bottom:0}.drop-area__line--horizontal:before{background-color:#fff;background-color:var(--sapList_Background, #fff);content:\"\";position:absolute;left:0;top:-.2rem;border-radius:50%;width:.5rem;height:.5rem;border-width:.125rem;border-style:solid;border-color:#0854a0;border-color:var(--sapContent_DragAndDropActiveColor, #0854a0)}.fd-dnd-list{position:relative}\n"], dependencies: [{ kind: "directive", type: DndItemDirective, selector: "[fdkDndItem], [fd-dnd-item]", inputs: ["fdkDndItem", "applyDragItemClass", "containerSelector", "stickInPlace", "draggable", "classWhenElementDragged"], outputs: ["moved", "released", "started"] }, { kind: "directive", type: DndListDirective, selector: "[fdkDndList], [fd-dnd-list]", inputs: ["gridMode", "dropMode", "threshold", "items", "draggable", "dropPredicate", "dragoverPredicate"], outputs: ["dropPredicateCalculating", "itemsChange", "itemDropped", "dropCancelled"] }, { kind: "component", type: IconComponent, selector: "fd-icon", inputs: ["glyph", "font", "color", "background", "size", "class", "ariaLabel", "ariaHidden"], outputs: ["ariaHiddenChange"] }, { kind: "component", type: AvatarComponent, selector: "fd-avatar", inputs: ["id", "ariaLabel", "ariaLabelledby", "label", "size", "font", "glyph", "zoomGlyph", "circle", "interactive", "transparent", "contain", "placeholder", "tile", "border", "colorAccent", "colorIndication", "random", "clickable", "valueState", "image", "alterIcon", "backupImage"], outputs: ["avatarClicked", "zoomGlyphClicked"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
}
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.0", ngImport: i0, type: ProductSwitchBodyComponent, decorators: [{
            type: Component,
            args: [{ selector: 'fd-product-switch-body', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, imports: [DndItemDirective, DndListDirective, IconComponent, AvatarComponent], template: "<div\n    class=\"fd-product-switch__body\"\n    [class.fd-product-switch__body--col-3]=\"_isSmallMode() && !_isListMode()\"\n    [class.fd-product-switch__body--mobile]=\"_isListMode()\"\n>\n    <ul\n        fd-dnd-list\n        class=\"fd-product-switch__list\"\n        [items]=\"products\"\n        [gridMode]=\"!_isListMode()\"\n        (itemDropped)=\"_productSwitchItemsChangeHandle($event)\"\n    >\n        @for (product of products; track product) {\n            <li\n                fd-dnd-item\n                tabindex=\"0\"\n                class=\"fd-product-switch__item\"\n                [class.selected]=\"product.selected\"\n                (keydown)=\"_keyDownHandle($event)\"\n                (click)=\"_itemClick(product, $event)\"\n                [draggable]=\"!product.disabledDragAndDrop && dragAndDropEnabled\"\n                [stickInPlace]=\"!!product.stickToPosition\"\n            >\n                @if (product.avatar) {\n                    <fd-avatar\n                        size=\"s\"\n                        [glyph]=\"product.avatar.glyph ?? null\"\n                        [label]=\"product.avatar.label ?? null\"\n                        [circle]=\"!!product.avatar.circle\"\n                        [image]=\"product.avatar.image ?? null\"\n                        [contain]=\"!!product.avatar.contain\"\n                        [transparent]=\"!!product.avatar.transparent\"\n                        [placeholder]=\"!!product.avatar.placeholder\"\n                        [tile]=\"!!product.avatar.tile\"\n                        [colorAccent]=\"product.avatar.colorAccent\"\n                        [colorIndication]=\"product.avatar.colorIndication\"\n                        [border]=\"!!product.avatar.border\"\n                        [alterIcon]=\"product.avatar.alterIcon ?? null\"\n                        [backupImage]=\"product.avatar.backupImage ?? null\"\n                        [ariaLabel]=\"product.avatar.ariaLabel ?? null\"\n                    >\n                    </fd-avatar>\n                } @else {\n                    <fd-icon\n                        [font]=\"product.font || FD_DEFAULT_ICON_FONT_FAMILY\"\n                        role=\"presentation\"\n                        class=\"fd-product-switch__icon\"\n                        [glyph]=\"product.icon\"\n                    ></fd-icon>\n                }\n\n                <div class=\"fd-product-switch__text\">\n                    <div class=\"fd-product-switch__title\">{{ product.title }}</div>\n                    @if (product.subtitle) {\n                        <div class=\"fd-product-switch__subtitle\">{{ product.subtitle }}</div>\n                    }\n                </div>\n            </li>\n        }\n    </ul>\n</div>\n", styles: [".drag-placeholder{opacity:.3;position:absolute}.fd-product-switch{--fdProduct_Switch_Item_Border_Color:transparent;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-product-switch:after,.fd-product-switch:before{-webkit-box-sizing:inherit;box-sizing:inherit;font-size:inherit}.fd-product-switch__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;-ms-flex-direction:row;flex-direction:row;-ms-flex-wrap:wrap;flex-wrap:wrap;gap:.5rem;width:46.5rem}.fd-product-switch__list:after,.fd-product-switch__list:before{-webkit-box-sizing:inherit;box-sizing:inherit;font-size:inherit}.fd-product-switch__item{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:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;gap:.5rem;-webkit-box-align:center;-ms-flex-align:center;align-items:center;height:7rem;max-width:11.25rem;text-align:center;-webkit-box-flex:1;background-color:var(--sapList_Background);border:.125rem solid var(--fdProduct_Switch_Item_Border_Color);border-radius:var(--sapElement_BorderCornerRadius);-webkit-box-shadow:var(--fdProductSwitch_Shadow);box-shadow:var(--fdProductSwitch_Shadow);-ms-flex:1 0 25%;flex:1 0 25%;padding-block:.5rem;padding-inline:.5rem}.fd-product-switch__item:after,.fd-product-switch__item:before{-webkit-box-sizing:inherit;box-sizing:inherit;font-size:inherit}.fd-product-switch__item .fd-product-switch__title:not(:last-child){overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.fd-product-switch__item .fd-product-switch__title:after,.fd-product-switch__item .fd-product-switch__title:before{background-color:var(--sapList_Background)}.fd-product-switch__item.is-hover,.fd-product-switch__item:hover{background-color:var(--sapList_Hover_Background);cursor:pointer}.fd-product-switch__item.is-hover .fd-product-switch__title:after,.fd-product-switch__item.is-hover .fd-product-switch__title:before,.fd-product-switch__item:hover .fd-product-switch__title:after,.fd-product-switch__item:hover .fd-product-switch__title:before{background-color:var(--sapList_Hover_Background)}.fd-product-switch__item.is-active,.fd-product-switch__item:active{--fdProduct_Switch_Item_Border_Color:var(--sapList_Active_Background);background-color:var(--sapList_Active_Background)}.fd-product-switch__item.is-active.is-focus,.fd-product-switch__item.is-active:focus,.fd-product-switch__item:active.is-focus,.fd-product-switch__item:active:focus{outline:var(--sapContent_FocusColor) var(--sapContent_FocusStyle) var(--sapContent_FocusWidth);outline-color:var(--sapContent_ContrastFocusColor);outline-offset:-.1875rem}.fd-product-switch__item.is-active .fd-product-switch__icon [class*=sap-icon],.fd-product-switch__item.is-active .fd-product-switch__icon[class*=sap-icon],.fd-product-switch__item.is-active .fd-product-switch__subtitle,.fd-product-switch__item.is-active .fd-product-switch__title,.fd-product-switch__item:active .fd-product-switch__icon [class*=sap-icon],.fd-product-switch__item:active .fd-product-switch__icon[class*=sap-icon],.fd-product-switch__item:active .fd-product-switch__subtitle,.fd-product-switch__item:active .fd-product-switch__title{color:var(--sapList_Active_TextColor)}.fd-product-switch__item.is-active .fd-product-switch__title:after,.fd-product-switch__item.is-active .fd-product-switch__title:before,.fd-product-switch__item.is-active.is-hover .fd-product-switch__title:after,.fd-product-switch__item.is-active.is-hover .fd-product-switch__title:before,.fd-product-switch__item.is-active:hover .fd-product-switch__title:after,.fd-product-switch__item.is-active:hover .fd-product-switch__title:before,.fd-product-switch__item:active .fd-product-switch__title:after,.fd-product-switch__item:active .fd-product-switch__title:before,.fd-product-switch__item:active.is-hover .fd-product-switch__title:after,.fd-product-switch__item:active.is-hover .fd-product-switch__title:before,.fd-product-switch__item:active:hover .fd-product-switch__title:after,.fd-product-switch__item:active:hover .fd-product-switch__title:before{background-color:var(--sapList_Active_Background)}.fd-product-switch__item.selected{--fdProduct_Switch_Item_Border_Color:var(--sapList_SelectionBorderColor)}.fd-product-switch__item.selected,.fd-product-switch__item.selected .fd-product-switch__title:after,.fd-product-switch__item.selected .fd-product-switch__title:before{background-color:var(--sapList_SelectionBackgroundColor)}.fd-product-switch__item.selected.is-hover,.fd-product-switch__item.selected.is-hover .fd-product-switch__title:after,.fd-product-switch__item.selected.is-hover .fd-product-switch__title:before,.fd-product-switch__item.selected:hover,.fd-product-switch__item.selected:hover .fd-product-switch__title:after,.fd-product-switch__item.selected:hover .fd-product-switch__title:before{background-color:var(--sapList_Hover_SelectionBackground)}.fd-product-switch__item.selected.is-active,.fd-product-switch__item.selected.is-active .fd-product-switch__title:after,.fd-product-switch__item.selected.is-active .fd-product-switch__title:before,.fd-product-switch__item.selected:active,.fd-product-switch__item.selected:active .fd-product-switch__title:after,.fd-product-switch__item.selected:active .fd-product-switch__title:before{background-color:var(--sapList_Active_Background)}.fd-product-switch__item.is-focus,.fd-product-switch__item:focus{outline:var(--sapContent_FocusColor) var(--sapContent_FocusStyle) var(--sapContent_FocusWidth);outline-offset:-.1875rem}.fd-product-switch__item.dragged{-webkit-box-shadow:var(--sapContent_Shadow2);box-shadow:var(--sapContent_Shadow2);cursor:-webkit-grabbing;cursor:grabbing}.fd-product-switch__item.dragged,.fd-product-switch__item.dragged:active,.fd-product-switch__item.dragged:hover{background-color:var(--sapList_Background)}.fd-product-switch__item.dragged:active .fd-product-switch__icon [class*=sap-icon],.fd-product-switch__item.dragged:active .fd-product-switch__icon[class*=sap-icon],.fd-product-switch__item.dragged:hover .fd-product-switch__icon [class*=sap-icon],.fd-product-switch__item.dragged:hover .fd-product-switch__icon[class*=sap-icon]{color:var(--sapContent_IconColor)}.fd-product-switch__item.dragged:active .fd-product-switch__title,.fd-product-switch__item.dragged:hover .fd-product-switch__title{color:var(--sapGroup_TitleTextColor)}.fd-product-switch__item.dragged:active .fd-product-switch__subtitle,.fd-product-switch__item.dragged:hover .fd-product-switch__subtitle{color:var(--sapContent_LabelColor)}.fd-product-switch__item.dragged.selected{border:none;-webkit-box-shadow:var(--sapContent_Shadow2);box-shadow:var(--sapContent_Shadow2)}.fd-product-switch__item.dragged.is-hover,.fd-product-switch__item.dragged:hover{outline:none}.fd-product-switch__icon [class*=sap-icon],.fd-product-switch__icon[class*=sap-icon]{background:inherit;border-radius:inherit;color:inherit;color:var(--sapContent_IconColor);display:-webkit-box;display:-ms-flexbox;display:flex;font-size:inherit;font-size:1.5rem;line-height:1;min-height:3rem;min-width:3rem;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.fd-product-switch__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;max-height:2.5rem;overflow:hidden;padding-block:0;padding-inline:0;text-shadow:var(--fdProductSwitch_Text_Shadow);width:100%}.fd-product-switch__text:after,.fd-product-switch__text:before{-webkit-box-sizing:inherit;box-sizing:inherit;font-size:inherit}.fd-product-switch__title{border:0;-webkit-box-sizing:border-box;box-sizing:border-box;color:var(--sapTextColor);color:var(--sapGroup_TitleTextColor);font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-size:var(--sapFontHeader6Size);font-weight:400;forced-color-adjust:none;line-height:normal;line-height:1.25rem;margin-block:0;margin-inline:0;max-height:2.5rem;padding-block:0;padding-inline:0;white-space:normal;z-index:1}.fd-product-switch__title:after,.fd-product-switch__title:before{-webkit-box-sizing:inherit;box-sizing:inherit;font-size:inherit}.fd-product-switch__title.is-last-child,.fd-product-switch__title:last-child{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;text-overflow:ellipsis;white-space:normal}.fd-product-switch__title:before{left:9.4rem;width:1rem;z-index:2}.fd-product-switch__title:after{left:9.4rem;width:1rem;z-index:3}.fd-product-switch__subtitle{border:0;-webkit-box-sizing:border-box;box-sizing:border-box;color:var(--sapTextColor);color:var(--sapContent_LabelColor);font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-size:var(--sapFontSmallSize);font-weight:400;forced-color-adjust:none;line-height:normal;line-height:1.25rem;margin-block:0;margin-inline:0;overflow:hidden;padding-block:0;padding-inline:0;text-overflow:ellipsis;white-space:nowrap}.fd-product-switch__subtitle:after,.fd-product-switch__subtitle:before{-webkit-box-sizing:inherit;box-sizing:inherit;font-size:inherit}.fd-product-switch__body{background-color:var(--sapList_Background);border:0;border-radius:var(--sapElement_BorderCornerRadius);-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;max-height:calc(100vh - 76px);overflow-y:auto;padding-block:0;padding-block:1.5rem;padding-inline:0;padding-inline:1rem;scrollbar-color:var(--fdScrollbar_Thumb_Color) var(--fdScrollbar_Track_Color);width:-webkit-fit-content;width:-moz-fit-content;width:fit-content}.fd-product-switch__body:after,.fd-product-switch__body:before{-webkit-box-sizing:inherit;box-sizing:inherit;font-size:inherit}.fd-product-switch__body.is-focus,.fd-product-switch__body:focus{outline:none;z-index:5}.fd-product-switch__body::-webkit-scrollbar{height:var(--fdScrollbar_Dimension);width:var(--fdScrollbar_Dimension)}.fd-product-switch__body::-webkit-scrollbar-corner,.fd-product-switch__body::-webkit-scrollbar-track{background-color:var(--fdScrollbar_Track_Color)}.fd-product-switch__body::-webkit-scrollbar-thumb{background-color:transparent;border:var(--fdScrollbar_Thumb_Offset) solid transparent;border-radius:calc(var(--fdScrollbar_Thumb_Border_Radius) - var(--fdScrollbar_Thumb_Offset));-webkit-box-shadow:inset 0 0 0 var(--fdScrollbar_Dimension) var(--fdScrollbar_Thumb_Color);box-shadow:inset 0 0 0 var(--fdScrollbar_Dimension) var(--fdScrollbar_Thumb_Color)}.fd-product-switch__body::-webkit-scrollbar-thumb:active,.fd-product-switch__body::-webkit-scrollbar-thumb:hover{-webkit-box-shadow:inset 0 0 0 var(--fdScrollbar_Dimension) var(--fdScrollbar_Thumb_Hover_Color);box-shadow:inset 0 0 0 var(--fdScrollbar_Dimension) var(--fdScrollbar_Thumb_Hover_Color)}.fd-product-switch__body--col-3 .fd-product-switch__list{width:34.75rem}.fd-product-switch__body--mobile{border-radius:0;max-width:100vw;overflow-x:hidden;padding-block:0;padding-inline:0;width:100%}.fd-product-switch__body--mobile .fd-product-switch__list{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;gap:0;width:100%}.fd-product-switch__body--mobile .fd-product-switch__item{-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;border:none;border-radius:0;-ms-flex-direction:row;flex-direction:row;gap:.75rem;max-height:5rem;max-width:100%;padding-block:1rem;padding-inline:1rem;text-align:left;-webkit-box-flex:1;border-bottom:.0625rem solid var(--sapList_GroupHeaderBorderColor);-ms-flex:auto;flex:auto}.fd-product-switch__body--mobile .fd-product-switch__item:after,.fd-product-switch__body--mobile .fd-product-switch__item:before{-webkit-box-sizing:inherit;box-sizing:inherit;font-size:inherit}.fd-product-switch__body--mobile .fd-product-switch__item .fd-product-switch__title:after,.fd-product-switch__body--mobile .fd-product-switch__item .fd-product-switch__title:before{background-color:var(--sapTile_Background)}.fd-product-switch__body--mobile .fd-product-switch__item.is-hover .fd-product-switch__title:after,.fd-product-switch__body--mobile .fd-product-switch__item.is-hover .fd-product-switch__title:before,.fd-product-switch__body--mobile .fd-product-switch__item:hover .fd-product-switch__title:after,.fd-product-switch__body--mobile .fd-product-switch__item:hover .fd-product-switch__title:before{background-color:var(--sapList_Hover_Background)}.fd-product-switch__body--mobile .fd-product-switch__item.is-active .fd-product-switch__title:after,.fd-product-switch__body--mobile .fd-product-switch__item.is-active .fd-product-switch__title:before,.fd-product-switch__body--mobile .fd-product-switch__item:active .fd-product-switch__title:after,.fd-product-switch__body--mobile .fd-product-switch__item:active .fd-product-switch__title:before{background-color:var(--sapList_SelectionBorderColor)}.fd-product-switch__body--mobile .fd-product-switch__item.is-active.is-focus,.fd-product-switch__body--mobile .fd-product-switch__item.is-active:focus,.fd-product-switch__body--mobile .fd-product-switch__item:active.is-focus,.fd-product-switch__body--mobile .fd-product-switch__item:active:focus{outline:var(--sapContent_FocusColor) var(--sapContent_FocusStyle) var(--sapContent_FocusWidth);outline-color:var(--sapContent_ContrastFocusColor);outline-offset:-.1875rem}.fd-product-switch__body--mobile .fd-product-switch__item.selected{border-bottom-color:var(--sapList_SelectionBorderColor);-webkit-box-shadow:none;box-shadow:none}.fd-product-switch__body--mobile .fd-product-switch__item.selected .fd-product-switch__title:after,.fd-product-switch__body--mobile .fd-product-switch__item.selected .fd-product-switch__title:before{background-color:var(--sapList_SelectionBorderColor)}.fd-product-switch__body--mobile .fd-product-switch__item.selected.is-hover .fd-product-switch__title:after,.fd-product-switch__body--mobile .fd-product-switch__item.selected.is-hover .fd-product-switch__title:before,.fd-product-switch__body--mobile .fd-product-switch__item.selected:hover .fd-product-switch__title:after,.fd-product-switch__body--mobile .fd-product-switch__item.selected:hover .fd-product-switch__title:before{background-color:var(--sapList_Hover_SelectionBackground)}.fd-product-switch__body--mobile .fd-product-switch__item.selected.is-active .fd-product-switch__title:after,.fd-product-switch__body--mobile .fd-product-switch__item.selected.is-active .fd-product-switch__title:before,.fd-product-switch__body--mobile .fd-product-switch__item.selected.is-active.is-hover .fd-product-switch__title:after,.fd-product-switch__body--mobile .fd-product-switch__item.selected.is-active.is-hover .fd-product-switch__title:before,.fd-product-switch__body--mobile .fd-product-switch__item.selected.is-active:hover .fd-product-switch__title:after,.fd-product-switch__body--mobile .fd-product-switch__item.selected.is-active:hover .fd-product-switch__title:before,.fd-product-switch__body--mobile .fd-product-switch__item.selected:active .fd-product-switch__title:after,.fd-product-switch__body--mobile .fd-product-switch__item.selected:active .fd-product-switch__title:before,.fd-product-switch__body--mobile .fd-product-switch__item.selected:active.is-hover .fd-product-switch__title:after,.fd-product-switch__body--mobile .fd-product-switch__item.selected:active.is-hover .fd-product-switch__title:before,.fd-product-switch__body--mobile .fd-product-switch__item.selected:active:hover .fd-product-switch__title:after,.fd-product-switch__body--mobile .fd-product-switch__item.selected:active:hover .fd-product-switch__title:before{background-color:var(--sapList_Active_Background)}.fd-product-switch__body--mobile .fd-product-switch__item.is-focus,.fd-product-switch__body--mobile .fd-product-switch__item:focus{outline:var(--sapContent_FocusColor) var(--sapContent_FocusStyle) var(--sapContent_FocusWidth);outline-offset:-.1875rem}.fd-product-switch__body--mobile .fd-product-switch__item .fd-product-switch__title:after,.fd-product-switch__body--mobile .fd-product-switch__item .fd-product-switch__title:before{left:21.7rem;width:1rem;z-index:2}.fd-product-switch__body--mobile .fd-product-switch__text{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;-webkit-box-pack:justify;-ms-flex-pack:justify;height:100%;justify-content:space-between}.fd-product-switch__body--mobile[dir=rtl] .fd-product-switch__text,[dir=rtl] .fd-product-switch__body--mobile .fd-product-switch__text{-webkit-box-align:start;-ms-flex-align:start;align-items:flex-start}.fd-product-switch__body--mobile[dir=rtl] .fd-product-switch__text .fd-product-switch__title:not(:last-child),[dir=rtl] .fd-product-switch__body--mobile .fd-product-switch__text .fd-product-switch__title:not(:last-child){overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.fd-product-switch__body--mobile[dir=rtl] .fd-product-switch__text .fd-product-switch__title:not(:last-child):after,[dir=rtl] .fd-product-switch__body--mobile .fd-product-switch__text .fd-product-switch__title:not(:last-child):after{display:none}.fd-product-switch__body--mobile[dir=rtl] .fd-product-switch__text .fd-product-switch__title:not(:last-child):before,[dir=rtl] .fd-product-switch__body--mobile .fd-product-switch__text .fd-product-switch__title:not(:last-child):before{display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex}.fd-product-switch__body--mobile[dir=rtl] .fd-product-switch__item .fd-product-switch__title:before,[dir=rtl] .fd-product-switch__body--mobile .fd-product-switch__item .fd-product-switch__title:before{right:21.8rem;width:2rem}.fd-product-switch__body--mobile[dir=rtl] .fd-product-switch__item .fd-product-switch__subtitle,[dir=rtl] .fd-product-switch__body--mobile .fd-product-switch__item .fd-product-switch__subtitle{line-height:1.25rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.fd-product-switch__body--mobile[dir=rtl] .fd-product-switch__item .fd-product-switch__subtitle:before,[dir=rtl] .fd-product-switch__body--mobile .fd-product-switch__item .fd-product-switch__subtitle:before{right:21.8rem;text-align:right;width:2rem;z-index:2}.fd-product-switch__body--mobile[dir=rtl] .fd-product-switch__item .fd-product-switch__subtitle:after,[dir=rtl] .fd-product-switch__body--mobile .fd-product-switch__item .fd-product-switch__subtitle:after{display:none;z-index:3}.fd-product-switch__body--mobile[dir=rtl] .fd-product-switch__item.is-active .fd-product-switch__subtitle,.fd-product-switch__body--mobile[dir=rtl] .fd-product-switch__item:active .fd-product-switch__subtitle,[dir=rtl] .fd-product-switch__body--mobile .fd-product-switch__item.is-active .fd-product-switch__subtitle,[dir=rtl] .fd-product-switch__body--mobile .fd-product-switch__item:active .fd-product-switch__subtitle{color:var(--sapList_Active_TextColor)}.fd-product-switch__list{position:relative}.fd-product-switch__item.cdk-drag-dragging{outline:none;cursor:grabbing;box-shadow:0 0 0 .0625rem #00000026,0 .625rem 1.875rem #0000004d}.fd-product-switch__body--mobile .fd-product-switch__item.cdk-drag-dragging{outline:none;box-shadow:0 0 0 .0625rem #00000026,0 .625rem 1.875rem #0000004d}.fd-dnd-item{position:relative}.fd-dnd-item.fd-dnd-on-drag{background-color:#fff;background-color:var(--sapList_Background, #fff);z-index:15}.fd-dnd-item.fd-dnd-on-drag.fd-product-switch__item .fd-product-switch__title:before,.fd-dnd-item.fd-dnd-on-drag.fd-product-switch__item .fd-product-switch__title:after{background-color:#fff;background-color:var(--sapList_Background, #fff)}.fd-dnd-item.fd-dnd-on-drag.fd-product-switch__item .fd-product-switch__icon{color:#0854a0;color:var(--sapContent_IconColor, #0854a0)}.fd-dnd-item.fd-dnd-on-drag.fd-product-switch__item .fd-product-switch__title{color:#32363a;color:var(--sapGroup_TitleTextColor, #32363a)}.fd-dnd-item.fd-dnd-on-drag.fd-product-switch__item .fd-product-switch__subtitle{color:#6a6d70;color:var(--sapContent_LabelColor, #6a6d70)}.fd-dnd-item.fd-dnd-on-drag.fd-product-switch__item:active,.fd-dnd-item.fd-dnd-on-drag.selected{background-color:#fff;background-color:var(--sapList_Background, #fff)}[dir=rtl] .fd-product-switch__body--mobile .fd-product-switch__title,[dir=rtl] .fd-product-switch__body--mobile .fd-product-switch__subtitle{text-align:right}.fd-product-switch__item{--fdProduct_Switch_Item_Border_Color: transparent;gap:.5rem}.fd-product-switch__icon [class*=sap-icon],.fd-product-switch__icon[class*=sap-icon]{margin-block-end:0}.fd-product-switch__body.fd-product-switch__body--mobile .fd-product-switch__item{gap:.75rem}.fd-product-switch__body.fd-product-switch__body--mobile .fd-product-switch__icon [class*=sap-icon],.fd-product-switch__body.fd-product-switch__body--mobile .fd-product-switch__icon[class*=sap-icon]{margin-inline:0}\n/*! Bundled license information:\n\nfundamental-styles/dist/product-switch.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", ".cdk-drag-dragging{z-index:15;background-color:#fff;background-color:var(--sapList_Background, #fff);opacity:.8;transition:box-shadow .2s cubic-bezier(0,0,.2,1);box-shadow:0 3px 1px -2px #0003,0 2px 2px #00000024,0 1px 5px #0000001f}.fd-replace-indicator{position:absolute;width:100%;height:100%;top:0;left:0;pointer-events:none;border-width:.125rem;border-style:solid;background-color:transparent;border-color:#0854a0;border-color:var(--sapContent_DragAndDropActiveColor)}.fd-replace-indicator:before{content:\"\";display:block;position:absolute;width:100%;height:100%;top:0;left:0;background-color:#0854a0;background-color:var(--sapContent_DragAndDropActiveColor, #0854a0);opacity:.5}.cdk-drag{cursor:grab}.cdk-drag.cdk-drag-dragging{cursor:grabbing}.cdk-drag-dragging{outline:none;cursor:grabbing;box-shadow:0 0 0 .0625rem #00000026,0 .625rem 1.875rem #0000004d}.cdk-drag-disabled{cursor:default}.fd-dnd-placeholder{top:0;left:0;position:absolute;opacity:.3;z-index:-1}.fd-dnd-item{position:relative;cursor:grab}.fd-dnd-item.fd-dnd-on-drag{background-color:#fff;background-color:var(--sapList_Background, #fff);z-index:15;cursor:grabbing}.drop-area__line{z-index:9999;position:absolute;background:#0854a0;background:var(--sapContent_DragAndDropActiveColor, #0854a0)}.drop-area__line--vertical{top:0;height:calc(100% - .5rem);width:2px}.drop-area__line--vertical.after{right:.2rem}.drop-area__line--vertical.before{left:-.3rem}.drop-area__line--vertical:before{background-color:#fff;background-color:var(--sapList_Background, #fff);content:\"\";position:absolute;left:-.2rem;top:-.5rem;border-radius:50%;width:.5rem;height:.5rem;border-width:.125rem;border-style:solid;border-color:#0854a0;border-color:var(--sapContent_DragAndDropActiveColor, #0854a0)}.drop-area__line--horizontal{left:0;width:100%;height:2px}.drop-area__line--horizontal.before{top:0}.drop-area__line--horizontal.after{bottom:0}.drop-area__line--horizontal:before{background-color:#fff;background-color:var(--sapList_Background, #fff);content:\"\";position:absolute;left:0;top:-.2rem;border-radius:50%;width:.5rem;height:.5rem;border-width:.125rem;border-style:solid;border-color:#0854a0;border-color:var(--sapContent_DragAndDropActiveColor, #0854a0)}.fd-dnd-list{position:relative}\n"] }]
        }], ctorParameters: () => [{ type: i1.ViewportRuler }, { type: i0.ChangeDetectorRef }], propDecorators: { dragAndDropEnabled: [{
                type: Input
            }], products: [{
                type: Input
            }], forceListMode: [{
                type: Input
            }], productsChange: [{
                type: Output
            }], itemClicked: [{
                type: Output
            }] } });

class ProductSwitchButtonDirective {
    /** @hidden */
    constructor(templateRef) {
        this.templateRef = templateRef;
    }
    static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.0", ngImport: i0, type: ProductSwitchButtonDirective, deps: [{ token: i0.TemplateRef }], target: i0.ɵɵFactoryTarget.Directive }); }
    static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.1.0", type: ProductSwitchButtonDirective, isStandalone: true, selector: "[fdProductSwitchButton]", ngImport: i0 }); }
}
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.0", ngImport: i0, type: ProductSwitchButtonDirective, decorators: [{
            type: Directive,
            args: [{
                    selector: '[fdProductSwitchButton]',
                    standalone: true
                }]
        }], ctorParameters: () => [{ type: i0.TemplateRef }] });

const FD_PRODUCT_SWITCH_COMPONENT = new InjectionToken('FdProductSwitchComponent');

class ProductSwitchComponent {
    constructor() {
        /** Placement of the product switch dropdown. */
        this.placement = input('bottom-end', ...(ngDevMode ? [{ debugName: "placement" }] : []));
        /** Whether the product switch is disabled. */
        this.disabled = input(false, { ...(ngDevMode ? { debugName: "disabled" } : {}), transform: booleanAttribute });
        /** Whether the product switch should close when the escape key is pressed. */
        this.closeOnEscapeKey = input(true, { ...(ngDevMode ? { debugName: "closeOnEscapeKey" } : {}), transform: booleanAttribute });
        /** Whether the product switch should close when a click is made outside its boundaries. */
        this.closeOnOutsideClick = input(true, { ...(ngDevMode ? { debugName: "closeOnOutsideClick" } : {}), transform: booleanAttribute });
        /** Whether the product switch dropdown should have an arrow. */
        this.noArrow = input(true, { ...(ngDevMode ? { debugName: "noArrow" } : {}), transform: booleanAttribute });
        /** Whether to wrap content with fd-scrollbar directive. */
        this.disableScrollbar = input(false, { ...(ngDevMode ? { debugName: "disableScrollbar" } : {}), transform: booleanAttribute });
        /** The trigger events that will open/close the product switch. */
        this.triggers = input(['click'], ...(ngDevMode ? [{ debugName: "triggers" }] : []));
        /** Whether the product switch should trap focus within its boundaries. */
        this.focusTrapped = input(false, { ...(ngDevMode ? { debugName: "focusTrapped" } : {}), transform: booleanAttribute });
        /** Whether the product switch should automatically move focus into the trapped region. */
        this.focusAutoCapture = input(false, { ...(ngDevMode ? { debugName: "focusAutoCapture" } : {}), transform: booleanAttribute });
        /** Two-way binding for product switch open state. */
        this.isOpen = model(false, ...(ngDevMode ? [{ debugName: "isOpen" }] : []));
        /** Event emitted right before the product switch is being opened. */
        this.beforeOpen = output();
        /** Event emitted when the product switch open state changes. */
        this.isOpenChange = output();
        /** @hidden */
        this.contentDensity = signal(ContentDensityMode.COZY, ...(ngDevMode ? [{ debugName: "contentDensity" }] : []));
        /** @hidden */
        this.customProductSwitchButton = contentChild(ProductSwitchButtonDirective, ...(ngDevMode ? [{ debugName: "customProductSwitchButton" }] : []));
    }
    static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.0", ngImport: i0, type: ProductSwitchComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
    static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.1.0", type: ProductSwitchComponent, isStandalone: true, selector: "fd-product-switch", inputs: { placement: { classPropertyName: "placement", publicName: "placement", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, closeOnEscapeKey: { classPropertyName: "closeOnEscapeKey", publicName: "closeOnEscapeKey", isSignal: true, isRequired: false, transformFunction: null }, closeOnOutsideClick: { classPropertyName: "closeOnOutsideClick", publicName: "closeOnOutsideClick", isSignal: true, isRequired: false, transformFunction: null }, noArrow: { classPropertyName: "noArrow", publicName: "noArrow", isSignal: true, isRequired: false, transformFunction: null }, disableScrollbar: { classPropertyName: "disableScrollbar", publicName: "disableScrollbar", isSignal: true, isRequired: false, transformFunction: null }, triggers: { classPropertyName: "triggers", publicName: "triggers", isSignal: true, isRequired: false, transformFunction: null }, focusTrapped: { classPropertyName: "focusTrapped", publicName: "focusTrapped", isSignal: true, isRequired: false, transformFunction: null }, focusAutoCapture: { classPropertyName: "focusAutoCapture", publicName: "focusAutoCapture", isSignal: true, isRequired: false, transformFunction: null }, isOpen: { classPropertyName: "isOpen", publicName: "isOpen", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { isOpen: "isOpenChange", beforeOpen: "beforeOpen", isOpenChange: "isOpenChange" }, host: { properties: { "class.fd-popover-custom--disabled": "disabled()" } }, providers: [
            {
                provide: FD_PRODUCT_SWITCH_COMPONENT,
                useExisting: ProductSwitchComponent
            }
        ], queries: [{ propertyName: "customProductSwitchButton", first: true, predicate: ProductSwitchButtonDirective, descendants: true, isSignal: true }], ngImport: i0, template: "<div class=\"fd-product-switch\">\n    <fd-popover\n        [placement]=\"placement()\"\n        [closeOnEscapeKey]=\"closeOnEscapeKey()\"\n        [closeOnOutsideClick]=\"closeOnOutsideClick()\"\n        [(isOpen)]=\"isOpen\"\n        [disabled]=\"disabled()\"\n        [triggers]=\"triggers()\"\n        [focusTrapped]=\"focusTrapped()\"\n        [focusAutoCapture]=\"focusAutoCapture()\"\n        [noArrow]=\"noArrow()\"\n        [disableScrollbar]=\"disableScrollbar()\"\n        (beforeOpen)=\"beforeOpen.emit()\"\n        (isOpenChange)=\"isOpenChange.emit($event)\"\n    >\n        <fd-popover-control>\n            @if (!customProductSwitchButton()) {\n                <button\n                    fd-button\n                    [attr.aria-label]=\"('coreProductSwitch.ariaLabel' | fdTranslate)()\"\n                    [attr.title]=\"('coreProductSwitch.ariaLabel' | fdTranslate)()\"\n                    class=\"fd-shellbar__button\"\n                    glyph=\"grid\"\n                    fdType=\"transparent\"\n                    [fdContentDensity]=\"contentDensity()\"\n                ></button>\n            } @else {\n                <ng-template [ngTemplateOutlet]=\"customProductSwitchButton()!.templateRef\"></ng-template>\n            }\n        </fd-popover-control>\n        <fd-popover-body>\n            <ng-content></ng-content>\n        </fd-popover-body>\n    </fd-popover>\n</div>\n", dependencies: [{ kind: "component", type: PopoverComponent, selector: "fd-popover", inputs: ["config", "title", "trigger", "id", "mobile", "mobileConfig", "preventSpaceKeyScroll", "placement", "maxWidth", "fillControlMode", "closeOnOutsideClick", "closeOnEscapeKey", "disabled", "triggers", "focusTrapped", "focusAutoCapture", "restoreFocusOnClose", "noArrow", "disableScrollbar", "appendTo", "placementContainer", "scrollStrategy", "cdkPositions", "applyOverlay", "additionalBodyClass", "additionalTriggerClass", "closeOnNavigation", "fixedPosition", "resizable", "bodyAriaLabel", "bodyRole", "bodyAriaLabelledBy", "isOpen"], outputs: ["triggerChange", "isOpenChange", "beforeOpen"] }, { kind: "component", type: PopoverControlComponent, selector: "fd-popover-control, [fdPopoverControl]" }, { kind: "component", type: ButtonComponent, selector: "button[fd-button], a[fd-button], span[fd-button]", inputs: ["id"], exportAs: ["fd-button"] }, { kind: "component", type: PopoverBodyComponent, selector: "fd-popover-body", inputs: ["minWidth", "maxWidth", "minHeight", "maxHeight"], outputs: ["onClose"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: ContentDensityDirective, selector: "[fdContentDensity]:not([fdCompact]):not([fdCondensed]):not([fdCozy]),                [fdCompact]:not([fdContentDensity]):not([fdCondensed]):not([fdCozy]),                [fdCondensed]:not([fdContentDensity]):not([fdCompact]):not([fdCozy]),                [fdCozy]:not([fdContentDensity]):not([fdCompact]):not([fdCondensed])", inputs: ["fdContentDensity", "fdCompact", "fdCondensed", "fdCozy"], exportAs: ["fdContentDensity"] }, { kind: "pipe", type: FdTranslatePipe, name: "fdTranslate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
}
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.0", ngImport: i0, type: ProductSwitchComponent, decorators: [{
            type: Component,
            args: [{ selector: 'fd-product-switch', changeDetection: ChangeDetectionStrategy.OnPush, providers: [
                        {
                            provide: FD_PRODUCT_SWITCH_COMPONENT,
                            useExisting: ProductSwitchComponent
                        }
                    ], imports: [
                        PopoverComponent,
                        PopoverControlComponent,
                        ButtonComponent,
                        PopoverBodyComponent,
                        FdTranslatePipe,
                        NgTemplateOutlet,
                        ContentDensityDirective
                    ], host: {
                        '[class.fd-popover-custom--disabled]': 'disabled()'
                    }, template: "<div class=\"fd-product-switch\">\n    <fd-popover\n        [placement]=\"placement()\"\n        [closeOnEscapeKey]=\"closeOnEscapeKey()\"\n        [closeOnOutsideClick]=\"closeOnOutsideClick()\"\n        [(isOpen)]=\"isOpen\"\n        [disabled]=\"disabled()\"\n        [triggers]=\"triggers()\"\n        [focusTrapped]=\"focusTrapped()\"\n        [focusAutoCapture]=\"focusAutoCapture()\"\n        [noArrow]=\"noArrow()\"\n        [disableScrollbar]=\"disableScrollbar()\"\n        (beforeOpen)=\"beforeOpen.emit()\"\n        (isOpenChange)=\"isOpenChange.emit($event)\"\n    >\n        <fd-popover-control>\n            @if (!customProductSwitchButton()) {\n                <button\n                    fd-button\n                    [attr.aria-label]=\"('coreProductSwitch.ariaLabel' | fdTranslate)()\"\n                    [attr.title]=\"('coreProductSwitch.ariaLabel' | fdTranslate)()\"\n                    class=\"fd-shellbar__button\"\n                    glyph=\"grid\"\n                    fdType=\"transparent\"\n                    [fdContentDensity]=\"contentDensity()\"\n                ></button>\n            } @else {\n                <ng-template [ngTemplateOutlet]=\"customProductSwitchButton()!.templateRef\"></ng-template>\n            }\n        </fd-popover-control>\n        <fd-popover-body>\n            <ng-content></ng-content>\n        </fd-popover-body>\n    </fd-popover>\n</div>\n" }]
        }], propDecorators: { placement: [{ type: i0.Input, args: [{ isSignal: true, alias: "placement", required: false }] }], disabled: [{ type: i0.Input, args: [{ isSignal: true, alias: "disabled", required: false }] }], closeOnEscapeKey: [{ type: i0.Input, args: [{ isSignal: true, alias: "closeOnEscapeKey", required: false }] }], closeOnOutsideClick: [{ type: i0.Input, args: [{ isSignal: true, alias: "closeOnOutsideClick", required: false }] }], noArrow: [{ type: i0.Input, args: [{ isSignal: true, alias: "noArrow", required: false }] }], disableScrollbar: [{ type: i0.Input, args: [{ isSignal: true, alias: "disableScrollbar", required: false }] }], triggers: [{ type: i0.Input, args: [{ isSignal: true, alias: "triggers", required: false }] }], focusTrapped: [{ type: i0.Input, args: [{ isSignal: true, alias: "focusTrapped", required: false }] }], focusAutoCapture: [{ type: i0.Input, args: [{ isSignal: true, alias: "focusAutoCapture", required: false }] }], isOpen: [{ type: i0.Input, args: [{ isSignal: true, alias: "isOpen", required: false }] }, { type: i0.Output, args: ["isOpenChange"] }], beforeOpen: [{ type: i0.Output, args: ["beforeOpen"] }], isOpenChange: [{ type: i0.Output, args: ["isOpenChange"] }], customProductSwitchButton: [{ type: i0.ContentChild, args: [i0.forwardRef(() => ProductSwitchButtonDirective), { isSignal: true }] }] } });

/**
 * @deprecated
 * Use direct imports of `ProductSwitchComponent`, `ProductSwitchBodyComponent`
 */
class ProductSwitchModule {
    static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.0", ngImport: i0, type: ProductSwitchModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
    static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "21.1.0", ngImport: i0, type: ProductSwitchModule, imports: [ProductSwitchComponent, ProductSwitchBodyComponent], exports: [ProductSwitchComponent, ProductSwitchBodyComponent] }); }
    static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "21.1.0", ngImport: i0, type: ProductSwitchModule, imports: [ProductSwitchComponent, ProductSwitchBodyComponent] }); }
}
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.0", ngImport: i0, type: ProductSwitchModule, decorators: [{
            type: NgModule,
            args: [{
                    imports: [ProductSwitchComponent, ProductSwitchBodyComponent],
                    exports: [ProductSwitchComponent, ProductSwitchBodyComponent]
                }]
        }] });

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

export { FD_PRODUCT_SWITCH_COMPONENT, ProductSwitchBodyComponent, ProductSwitchButtonDirective, ProductSwitchComponent, ProductSwitchModule };
//# sourceMappingURL=fundamental-ngx-core-product-switch.mjs.map
