{"version":3,"file":"igniteui-angular-expansion-panel.mjs","sources":["../../../projects/igniteui-angular/expansion-panel/src/expansion-panel/expansion-panel.common.ts","../../../projects/igniteui-angular/expansion-panel/src/expansion-panel/expansion-panel-body.component.ts","../../../projects/igniteui-angular/expansion-panel/src/expansion-panel/expansion-panel.directives.ts","../../../projects/igniteui-angular/expansion-panel/src/expansion-panel/expansion-panel-header.component.ts","../../../projects/igniteui-angular/expansion-panel/src/expansion-panel/expansion-panel-header.component.html","../../../projects/igniteui-angular/expansion-panel/src/expansion-panel/toggle-animation-component.ts","../../../projects/igniteui-angular/expansion-panel/src/expansion-panel/expansion-panel.component.ts","../../../projects/igniteui-angular/expansion-panel/src/expansion-panel/expansion-panel.component.html","../../../projects/igniteui-angular/expansion-panel/src/expansion-panel/public_api.ts","../../../projects/igniteui-angular/expansion-panel/src/expansion-panel/expansion-panel.module.ts","../../../projects/igniteui-angular/expansion-panel/src/igniteui-angular-expansion-panel.ts"],"sourcesContent":["import { Directive, ElementRef, EventEmitter, inject, InjectionToken } from '@angular/core';\nimport { AnimationReferenceMetadata } from '@angular/animations';\nimport { CancelableEventArgs, IBaseEventArgs } from 'igniteui-angular/core';\n\nexport interface IgxExpansionPanelBase {\n    id: string;\n    cssClass: string;\n    /** @hidden @internal */\n    headerId: string;\n    collapsed: boolean;\n    animationSettings: { openAnimation: AnimationReferenceMetadata; closeAnimation: AnimationReferenceMetadata };\n    contentCollapsed: EventEmitter<any>;\n    contentCollapsing: EventEmitter<any>;\n    contentExpanded: EventEmitter<any>;\n    contentExpanding: EventEmitter<any>;\n    collapse(evt?: Event);\n    expand(evt?: Event);\n    toggle(evt?: Event);\n}\n\n/** @hidden */\nexport const IGX_EXPANSION_PANEL_COMPONENT = /*@__PURE__*/new InjectionToken<IgxExpansionPanelBase>('IgxExpansionPanelToken');\n\nexport interface IExpansionPanelEventArgs extends IBaseEventArgs {\n    event: Event;\n}\n\nexport interface IExpansionPanelCancelableEventArgs  extends IExpansionPanelEventArgs, CancelableEventArgs {}\n\n@Directive()\nexport abstract class HeaderContentBaseDirective {\n    protected element = inject(ElementRef);\n\n    /**\n     * Returns the `textContent` of an element\n     *\n     * ```html\n     * <igx-expansion-panel-title>\n     *  Tooltip content\n     * </igx-expansion-panel-title>\n     * ```\n     *\n     *  or the `title` content\n     *\n     * ```html\n     * <igx-expansion-panel-title [title]=\"'Tooltip content'\">\n     * </igx-expansion-panel-title>\n     * ```\n     *\n     * If both are provided, returns the `title` content.\n     *\n     * @param element\n     * @returns tooltip content for an element\n     */\n    public getTooltipContent = (element: ElementRef): string => {\n        if (element.nativeElement.title) {\n            return element.nativeElement.title;\n        }\n        if (element.nativeElement.textContent) {\n            return element.nativeElement.textContent.trim();\n        }\n\n        return null;\n    };\n}\n","import { Component, HostBinding, ElementRef, Input, ChangeDetectorRef, inject } from '@angular/core';\nimport { IgxExpansionPanelBase, IGX_EXPANSION_PANEL_COMPONENT } from './expansion-panel.common';\n\n@Component({\n    selector: 'igx-expansion-panel-body',\n    template: `<ng-content></ng-content>`,\n    standalone: true\n})\nexport class IgxExpansionPanelBodyComponent {\n    public panel = inject<IgxExpansionPanelBase>(IGX_EXPANSION_PANEL_COMPONENT);\n    public element = inject(ElementRef);\n    public cdr = inject(ChangeDetectorRef);\n\n    /**\n     * @hidden\n     */\n    @HostBinding('class.igx-expansion-panel__body')\n    public cssClass = `igx-expansion-panel__body`;\n\n    /**\n     * Gets/sets the `role` attribute of the panel body\n     * Default is 'region';\n     * Get\n     * ```typescript\n     *  const currentRole = this.panel.body.role;\n     * ```\n     * Set\n     * ```typescript\n     *  this.panel.body.role = 'content';\n     * ```\n     * ```html\n     *  <igx-expansion-panel-body [role]=\"'custom'\"></igx-expansion-panel-body>\n     * ```\n     */\n    @Input()\n    @HostBinding('attr.role')\n    public role = 'region';\n\n    private _labelledBy = '';\n    private _label = '';\n\n    /**\n     * Gets the `aria-label` attribute of the panel body\n     * Defaults to the panel id with '-region' in the end;\n     * Get\n     * ```typescript\n     *  const currentLabel = this.panel.body.label;\n     * ```\n     */\n    @Input()\n    @HostBinding('attr.aria-label')\n    public get label(): string {\n        return this._label || this.panel.id + '-region';\n    }\n    /**\n     * Sets the `aria-label` attribute of the panel body\n     * ```typescript\n     *  this.panel.body.label = 'my-custom-label';\n     * ```\n     * ```html\n     *  <igx-expansion-panel-body [label]=\"'my-custom-label'\"></igx-expansion-panel-body>\n     * ```\n     */\n    public set label(val: string) {\n        this._label = val;\n    }\n\n    /**\n     * Gets the `aria-labelledby` attribute of the panel body\n     * Defaults to the panel header id;\n     * Get\n     * ```typescript\n     *  const currentLabel = this.panel.body.labelledBy;\n     * ```\n     */\n    @Input()\n    @HostBinding('attr.aria-labelledby')\n    public get labelledBy(): string {\n        return this._labelledBy;\n    }\n    /**\n     * Sets the `aria-labelledby` attribute of the panel body\n     * ```typescript\n     *  this.panel.body.labelledBy = 'my-custom-id';\n     * ```\n     * ```html\n     *  <igx-expansion-panel-body [labelledBy]=\"'my-custom-id'\"></igx-expansion-panel-body>\n     * ```\n     */\n    public set labelledBy(val: string) {\n        this._labelledBy = val;\n    }\n}\n","/* eslint-disable @angular-eslint/directive-selector */\nimport { Directive, HostBinding } from '@angular/core';\nimport { HeaderContentBaseDirective } from './expansion-panel.common';\n\n/** @hidden @internal */\n@Directive({\n    selector: 'igx-expansion-panel-title',\n    standalone: true\n})\nexport class IgxExpansionPanelTitleDirective extends HeaderContentBaseDirective {\n    @HostBinding('class.igx-expansion-panel__header-title')\n    public cssClass = `igx-expansion-panel__header-title`;\n\n    @HostBinding('attr.title')\n    private get title(): string {\n        return this.getTooltipContent(this.element);\n    }\n}\n\n/** @hidden @internal */\n@Directive({\n    selector: 'igx-expansion-panel-description',\n    standalone: true\n})\nexport class IgxExpansionPanelDescriptionDirective extends HeaderContentBaseDirective {\n    @HostBinding('class.igx-expansion-panel__header-description')\n    public cssClass = `igx-expansion-panel__header-description`;\n\n    @HostBinding('attr.title')\n    private get title(): string {\n        return this.getTooltipContent(this.element);\n    }\n}\n\n/** @hidden @internal */\n@Directive({\n    selector: 'igx-expansion-panel-icon',\n    standalone: true\n})\nexport class IgxExpansionPanelIconDirective { }\n","import { Component, ChangeDetectorRef, ElementRef, HostBinding, HostListener, Input, EventEmitter, Output, ContentChild, ViewChild, booleanAttribute, inject } from '@angular/core';\nimport { IgxExpansionPanelIconDirective } from './expansion-panel.directives';\nimport { IGX_EXPANSION_PANEL_COMPONENT, IgxExpansionPanelBase, IExpansionPanelCancelableEventArgs } from './expansion-panel.common';\nimport { IgxIconComponent } from 'igniteui-angular/icon';\n\n/**\n * @hidden\n */\nexport const ExpansionPanelHeaderIconPosition = {\n    LEFT: 'left',\n    NONE: 'none',\n    RIGHT: 'right'\n} as const;\nexport type ExpansionPanelHeaderIconPosition = (typeof ExpansionPanelHeaderIconPosition)[keyof typeof ExpansionPanelHeaderIconPosition];\n\n\n@Component({\n    selector: 'igx-expansion-panel-header',\n    templateUrl: 'expansion-panel-header.component.html',\n    imports: [IgxIconComponent]\n})\nexport class IgxExpansionPanelHeaderComponent {\n    public panel = inject<IgxExpansionPanelBase>(IGX_EXPANSION_PANEL_COMPONENT, { host: true });\n    public cdr = inject(ChangeDetectorRef);\n    public elementRef = inject(ElementRef);\n\n    /**\n     * Returns a reference to the `igx-expansion-panel-icon` element;\n     * If `iconPosition` is `NONE` - return null;\n     */\n    public get iconRef(): ElementRef {\n        const renderedTemplate = this.customIconRef ?? this.defaultIconRef;\n        return this.iconPosition !== ExpansionPanelHeaderIconPosition.NONE ? renderedTemplate : null;\n    }\n\n    /**\n     * @hidden\n     */\n    @ContentChild(IgxExpansionPanelIconDirective)\n    public set iconTemplate(val: boolean) {\n        this._iconTemplate = val;\n    }\n\n    /**\n     * @hidden\n     */\n    public get iconTemplate(): boolean {\n        return this._iconTemplate;\n    }\n\n    /**\n     * Gets/sets the `aria-level` attribute of the header\n     * Get\n     * ```typescript\n     *  const currentAriaLevel = this.panel.header.lv;\n     * ```\n     * Set\n     * ```typescript\n     *  this.panel.header.lv = '5';\n     * ```\n     * ```html\n     *  <igx-expansion-panel-header [lv]=\"myCustomLevel\"></igx-expansion-panel-header>\n     * ```\n     */\n    @HostBinding('attr.aria-level')\n    @Input()\n    public lv = '3';\n\n    /**\n     * Gets/sets the `role` attribute of the header\n     * Get\n     * ```typescript\n     *  const currentRole = this.panel.header.role;\n     * ```\n     * Set\n     * ```typescript\n     *  this.panel.header.role = '5';\n     * ```\n     * ```html\n     *  <igx-expansion-panel-header [role]=\"'custom'\"></igx-expansion-panel-header>\n     * ```\n     */\n    @HostBinding('attr.role')\n    @Input()\n    public role = 'heading';\n\n    /**\n     * @hidden\n     */\n    public get controls(): string {\n        return this.panel.id;\n    }\n\n    /**\n     * @hidden @internal\n     */\n    public get innerElement() {\n        return this.elementRef.nativeElement.children[0];\n    }\n\n    /**\n     * Gets/sets the position of the expansion-panel-header expand/collapse icon\n     * Accepts `left`, `right` or `none`\n     * ```typescript\n     *  const currentIconPosition = this.panel.header.iconPosition;\n     * ```\n     * Set\n     * ```typescript\n     *  this.panel.header.iconPosition = 'left';\n     * ```\n     * ```html\n     *  <igx-expansion-panel-header [iconPosition]=\"'right'\"></igx-expansion-panel-header>\n     * ```\n     */\n    @Input()\n    public iconPosition: ExpansionPanelHeaderIconPosition = ExpansionPanelHeaderIconPosition.LEFT;\n\n    /**\n     * Emitted whenever a user interacts with the header host\n     * ```typescript\n     *  handleInteraction(event: IExpansionPanelCancelableEventArgs) {\n     *  ...\n     * }\n     * ```\n     * ```html\n     *  <igx-expansion-panel-header (interaction)=\"handleInteraction($event)\">\n     *      ...\n     *  </igx-expansion-panel-header>\n     * ```\n     */\n    @Output()\n    public interaction = new EventEmitter<IExpansionPanelCancelableEventArgs>();\n\n    /**\n     * @hidden\n     */\n    @HostBinding('class.igx-expansion-panel__header')\n    public cssClass = 'igx-expansion-panel__header';\n\n    /**\n     * @hidden\n     */\n    @HostBinding('class.igx-expansion-panel__header--expanded')\n    public get isExpanded() {\n        return !this.panel.collapsed;\n    }\n\n    /**\n     * Gets/sets the whether the header is disabled\n     * When disabled, the header will not handle user events and will stop their propagation\n     *\n     * ```typescript\n     *  const isDisabled = this.panel.header.disabled;\n     * ```\n     * Set\n     * ```typescript\n     *  this.panel.header.disabled = true;\n     * ```\n     * ```html\n     *  <igx-expansion-panel-header [disabled]=\"true\">\n     *     ...\n     *  </igx-expansion-panel-header>\n     * ```\n     */\n    @Input({ transform: booleanAttribute })\n    @HostBinding('class.igx-expansion-panel--disabled')\n    public get disabled(): boolean {\n        return this._disabled;\n    }\n\n    public set disabled(val: boolean) {\n        this._disabled = val;\n        if (val) {\n            // V.S. June 11th, 2021: #9696 TabIndex should be removed when panel is disabled\n            delete this.tabIndex;\n        } else {\n            this.tabIndex = 0;\n        }\n    }\n\n    /** @hidden @internal */\n    @ContentChild(IgxExpansionPanelIconDirective, { read: ElementRef })\n    private customIconRef: ElementRef;\n\n    /** @hidden @internal */\n    @ViewChild(IgxIconComponent, { read: ElementRef })\n    private defaultIconRef: ElementRef;\n\n    /**\n     * Sets/gets the `id` of the expansion panel header.\n     * ```typescript\n     * let panelHeaderId =  this.panel.header.id;\n     * ```\n     *\n     * @memberof IgxExpansionPanelComponent\n     */\n    public id = '';\n\n    /** @hidden @internal */\n    public tabIndex = 0;\n\n    // properties section\n    private _iconTemplate = false;\n    private _disabled = false;\n\n    constructor() {\n        this.id = `${this.panel.id}-header`;\n    }\n\n    /**\n     * @hidden\n     */\n    @HostListener('keydown.Enter', ['$event'])\n    @HostListener('keydown.Space', ['$event'])\n    @HostListener('keydown.Spacebar', ['$event'])\n    @HostListener('click', ['$event'])\n    public onAction(evt?: Event) {\n        if (this.disabled) {\n            evt.stopPropagation();\n            return;\n        }\n        const eventArgs: IExpansionPanelCancelableEventArgs = { event: evt, owner: this.panel, cancel: false };\n        this.interaction.emit(eventArgs);\n        if (eventArgs.cancel === true) {\n            return;\n        }\n        this.panel.toggle(evt);\n        evt.preventDefault();\n    }\n\n    /** @hidden @internal */\n    @HostListener('keydown.alt.arrowdown', ['$event'])\n    public openPanel(event: KeyboardEvent) {\n        if (event.altKey) {\n            const eventArgs: IExpansionPanelCancelableEventArgs = { event, owner: this.panel, cancel: false };\n            this.interaction.emit(eventArgs);\n            if (eventArgs.cancel === true) {\n                return;\n            }\n            this.panel.expand(event);\n        }\n    }\n\n    /** @hidden @internal */\n    @HostListener('keydown.alt.arrowup', ['$event'])\n    public closePanel(event: KeyboardEvent) {\n        if (event.altKey) {\n            const eventArgs: IExpansionPanelCancelableEventArgs = { event, owner: this.panel, cancel: false };\n            this.interaction.emit(eventArgs);\n            if (eventArgs.cancel === true) {\n                return;\n            }\n            this.panel.collapse(event);\n        }\n    }\n\n    /**\n     * @hidden\n     */\n    public get iconPositionClass(): string {\n        switch (this.iconPosition) {\n            case (ExpansionPanelHeaderIconPosition.LEFT):\n                return `igx-expansion-panel__header-icon--start`;\n            case (ExpansionPanelHeaderIconPosition.RIGHT):\n                return `igx-expansion-panel__header-icon--end`;\n            case (ExpansionPanelHeaderIconPosition.NONE):\n                return `igx-expansion-panel__header-icon--none`;\n            default:\n                return '';\n        }\n    }\n}\n","<div class=\"igx-expansion-panel__header-inner\" [attr.tabindex]=\"tabIndex\" role=\"button\" [attr.id]=\"id\"\n[attr.aria-disabled]=\"disabled\" [attr.aria-expanded]=\"isExpanded\" [attr.aria-controls]=\"controls\">\n    <div class=\"igx-expansion-panel__title-wrapper\">\n        <ng-content select=\"igx-expansion-panel-title\"></ng-content>\n        <ng-content select=\"igx-expansion-panel-description\"></ng-content>\n    </div>\n    <ng-content></ng-content>\n    <div [class]=\"iconPositionClass\">\n        @if (iconTemplate) {\n            <ng-content select=\"igx-expansion-panel-icon\"></ng-content>\n        }\n        @if (!iconTemplate) {\n            <igx-icon\n                family=\"default\"\n                [name]=\"panel.collapsed ? 'expand' : 'collapse'\">\n            </igx-icon>\n        }\n    </div>\n</div>\n","import { AnimationReferenceMetadata } from '@angular/animations';\nimport { Directive, ElementRef, EventEmitter, inject, OnDestroy } from '@angular/core';\nimport { noop, Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\n\nimport { IgxAngularAnimationService } from 'igniteui-angular/core';\nimport { AnimationPlayer, AnimationService } from 'igniteui-angular/core';\nimport { growVerIn, growVerOut } from 'igniteui-angular/animations';\n\n/**@hidden @internal */\nexport interface ToggleAnimationSettings {\n    openAnimation: AnimationReferenceMetadata;\n    closeAnimation: AnimationReferenceMetadata;\n}\n\nexport interface ToggleAnimationOwner {\n    animationSettings: ToggleAnimationSettings;\n    openAnimationStart: EventEmitter<void>;\n    openAnimationDone: EventEmitter<void>;\n    closeAnimationStart: EventEmitter<void>;\n    closeAnimationDone: EventEmitter<void>;\n    openAnimationPlayer: AnimationPlayer;\n    closeAnimationPlayer: AnimationPlayer;\n    playOpenAnimation(element: ElementRef, onDone: () => void): void;\n    playCloseAnimation(element: ElementRef, onDone: () => void): void;\n}\n\n/** @hidden @internal */\nexport enum ANIMATION_TYPE {\n    OPEN = 'open',\n    CLOSE = 'close',\n}\n\n/**@hidden @internal */\n@Directive()\nexport abstract class ToggleAnimationPlayer implements ToggleAnimationOwner, OnDestroy {\n    protected animationService = inject<AnimationService>(IgxAngularAnimationService);\n\n    /** @hidden @internal */\n    public openAnimationDone: EventEmitter<void> = new EventEmitter();\n    /** @hidden @internal */\n    public closeAnimationDone: EventEmitter<void> = new EventEmitter();\n    /** @hidden @internal */\n    public openAnimationStart: EventEmitter<void> = new EventEmitter();\n    /** @hidden @internal */\n    public closeAnimationStart: EventEmitter<void> = new EventEmitter();\n\n    public get animationSettings(): ToggleAnimationSettings {\n        return this._animationSettings;\n    }\n    public set animationSettings(value: ToggleAnimationSettings) {\n        this._animationSettings = value;\n    }\n\n    /** @hidden @internal */\n    public openAnimationPlayer: AnimationPlayer = null;\n\n    /** @hidden @internal */\n    public closeAnimationPlayer: AnimationPlayer = null;\n\n    protected destroy$: Subject<void> = new Subject();\n    protected players: Map<string, AnimationPlayer> = new Map();\n    protected _animationSettings: ToggleAnimationSettings = {\n        openAnimation: growVerIn,\n        closeAnimation: growVerOut\n    };\n\n    private closeInterrupted = false;\n    private openInterrupted = false;\n\n    private _defaultClosedCallback = noop;\n    private _defaultOpenedCallback = noop;\n    private onClosedCallback: () => any = this._defaultClosedCallback;\n    private onOpenedCallback: () => any = this._defaultOpenedCallback;\n\n    /** @hidden @internal */\n    public playOpenAnimation(targetElement: ElementRef, onDone?: () => void): void {\n        this.startPlayer(ANIMATION_TYPE.OPEN, targetElement, onDone || this._defaultOpenedCallback);\n    }\n\n    /** @hidden @internal */\n    public playCloseAnimation(targetElement: ElementRef, onDone?: () => void): void {\n        this.startPlayer(ANIMATION_TYPE.CLOSE, targetElement, onDone || this._defaultClosedCallback);\n    }\n\n    /** @hidden @internal */\n    public ngOnDestroy() {\n        this.destroy$.next();\n        this.destroy$.complete();\n    }\n\n    private startPlayer(type: ANIMATION_TYPE, targetElement: ElementRef, callback: () => void): void {\n        if (!targetElement) { // if no element is passed, there is nothing to animate\n            return;\n        }\n        let target = this.getPlayer(type);\n        if (!target) {\n            target = this.initializePlayer(type, targetElement, callback);\n        }\n        // V.S. Jun 28th, 2021 #9783: player will NOT be initialized w/ null settings\n        // events will already be emitted\n        if (!target || target.hasStarted()) {\n            return;\n        }\n        const targetEmitter = type === ANIMATION_TYPE.OPEN ? this.openAnimationStart : this.closeAnimationStart;\n        targetEmitter.emit();\n        if (target) {\n            target.play();\n        }\n    }\n\n    private initializePlayer(type: ANIMATION_TYPE, targetElement: ElementRef, callback: () => void): AnimationPlayer {\n        const oppositeType = type === ANIMATION_TYPE.OPEN ? ANIMATION_TYPE.CLOSE : ANIMATION_TYPE.OPEN;\n        // V.S. Jun 28th, 2021 #9783: Treat falsy animation settings as disabled animations\n        const targetAnimationSettings = this.animationSettings || { closeAnimation: null, openAnimation: null };\n        const animationSettings = type === ANIMATION_TYPE.OPEN ?\n            targetAnimationSettings.openAnimation : targetAnimationSettings.closeAnimation;\n        // V.S. Jun 28th, 2021 #9783: When no animation in target direction, emit start and done events and return\n        if (!animationSettings) {\n            this.setCallback(type, callback);\n            const targetEmitter = type === ANIMATION_TYPE.OPEN ? this.openAnimationStart : this.closeAnimationStart;\n            targetEmitter.emit();\n            this.onDoneHandler(type);\n            return;\n        }\n        const opposite = this.getPlayer(oppositeType);\n        let oppositePosition = 1;\n        if (opposite) {\n            oppositePosition = opposite.position;\n            this.cleanUpPlayer(oppositeType);\n        }\n        if (type === ANIMATION_TYPE.OPEN) {\n            this.openAnimationPlayer = this.animationService.buildAnimation(animationSettings, targetElement.nativeElement);\n        } else if (type === ANIMATION_TYPE.CLOSE) {\n            this.closeAnimationPlayer = this.animationService.buildAnimation(animationSettings, targetElement.nativeElement);\n        }\n        const target = this.getPlayer(type);\n        target.init();\n        this.getPlayer(type).position = 1 - oppositePosition;\n        this.setCallback(type, callback);\n        target.animationEnd.pipe(takeUntil(this.destroy$)).subscribe(() => {\n            this.onDoneHandler(type);\n        });\n        return target;\n    }\n\n    private onDoneHandler(type) {\n        const targetEmitter = type === ANIMATION_TYPE.OPEN ? this.openAnimationDone : this.closeAnimationDone;\n        const targetCallback = type === ANIMATION_TYPE.OPEN ? this.onOpenedCallback : this.onClosedCallback;\n        targetCallback();\n        if (!(type === ANIMATION_TYPE.OPEN ? this.openInterrupted : this.closeInterrupted)) {\n            targetEmitter.emit();\n        }\n        this.cleanUpPlayer(type);\n    }\n\n    private setCallback(type: ANIMATION_TYPE, callback: () => void) {\n        if (type === ANIMATION_TYPE.OPEN) {\n            this.onOpenedCallback = callback;\n            this.openInterrupted = false;\n        } else if (type === ANIMATION_TYPE.CLOSE) {\n            this.onClosedCallback = callback;\n            this.closeInterrupted = false;\n        }\n    }\n\n    private cleanUpPlayer(target: ANIMATION_TYPE) {\n        switch (target) {\n            case ANIMATION_TYPE.CLOSE:\n                if (this.closeAnimationPlayer != null) {\n                    this.closeAnimationPlayer.reset();\n                    this.closeAnimationPlayer.destroy();\n                    this.closeAnimationPlayer = null;\n                }\n                this.closeInterrupted = true;\n                this.onClosedCallback = this._defaultClosedCallback;\n                break;\n            case ANIMATION_TYPE.OPEN:\n                if (this.openAnimationPlayer != null) {\n                    this.openAnimationPlayer.reset();\n                    this.openAnimationPlayer.destroy();\n                    this.openAnimationPlayer = null;\n                }\n                this.openInterrupted = true;\n                this.onOpenedCallback = this._defaultOpenedCallback;\n                break;\n            default:\n                break;\n        }\n    }\n\n    private getPlayer(type: ANIMATION_TYPE): AnimationPlayer {\n        switch (type) {\n            case ANIMATION_TYPE.OPEN:\n                return this.openAnimationPlayer;\n            case ANIMATION_TYPE.CLOSE:\n                return this.closeAnimationPlayer;\n            default:\n                return null;\n        }\n    }\n}\n","import {\n    AfterContentInit,\n    ChangeDetectorRef,\n    Component,\n    ContentChild,\n    ElementRef,\n    EventEmitter,\n    HostBinding,\n    inject,\n    Input,\n    Output,\n    booleanAttribute\n} from '@angular/core';\nimport { IgxExpansionPanelBodyComponent } from './expansion-panel-body.component';\nimport { IgxExpansionPanelHeaderComponent } from './expansion-panel-header.component';\nimport {\n    IExpansionPanelCancelableEventArgs,\n    IExpansionPanelEventArgs,\n    IgxExpansionPanelBase,\n    IGX_EXPANSION_PANEL_COMPONENT\n} from './expansion-panel.common';\nimport { ToggleAnimationPlayer, ToggleAnimationSettings } from './toggle-animation-component';\n\nlet NEXT_ID = 0;\n\n@Component({\n    selector: 'igx-expansion-panel',\n    templateUrl: 'expansion-panel.component.html',\n    providers: [{ provide: IGX_EXPANSION_PANEL_COMPONENT, useExisting: IgxExpansionPanelComponent }],\n    imports: []\n})\nexport class IgxExpansionPanelComponent extends ToggleAnimationPlayer implements IgxExpansionPanelBase, AfterContentInit {\n    private cdr = inject(ChangeDetectorRef);\n    private elementRef = inject(ElementRef);\n\n    /**\n     * Sets/gets the animation settings of the expansion panel component\n     * Open and Close animation should be passed\n     *\n     * Get\n     * ```typescript\n     *  const currentAnimations = this.panel.animationSettings;\n     * ```\n     * Set\n     * ```typescript\n     *  import { slideInLeft, slideOutRight } from 'igniteui-angular';\n     *  ...\n     *  this.panel.animationsSettings = {\n     *      openAnimation: slideInLeft,\n     *      closeAnimation: slideOutRight\n     * };\n     * ```\n     * or via template\n     * ```typescript\n     *  import { slideInLeft, slideOutRight } from 'igniteui-angular';\n     *  ...\n     *  myCustomAnimationObject = {\n     *      openAnimation: slideInLeft,\n     *      closeAnimation: slideOutRight\n     * };\n     * ```html\n     *  <igx-expansion-panel [animationSettings]='myCustomAnimationObject'>\n     *  ...\n     *  </igx-expansion-panel>\n     * ```\n     */\n    @Input()\n    public override get animationSettings(): ToggleAnimationSettings {\n        return this._animationSettings;\n    }\n    public override set animationSettings(value: ToggleAnimationSettings) {\n        this._animationSettings = value;\n    }\n\n    /**\n     * Sets/gets the `id` of the expansion panel component.\n     * If not set, `id` will have value `\"igx-expansion-panel-0\"`;\n     * ```html\n     * <igx-expansion-panel id = \"my-first-expansion-panel\"></igx-expansion-panel>\n     * ```\n     * ```typescript\n     * let panelId =  this.panel.id;\n     * ```\n     *\n     * @memberof IgxExpansionPanelComponent\n     */\n    @HostBinding('attr.id')\n    @Input()\n    public id = `igx-expansion-panel-${NEXT_ID++}`;\n\n    /**\n     * @hidden\n     */\n    @HostBinding('class.igx-expansion-panel')\n    public cssClass = 'igx-expansion-panel';\n\n    /**\n     * @hidden\n     */\n    @HostBinding('class.igx-expansion-panel--expanded')\n    protected opened = false;\n\n    /**\n     * @hidden @internal\n     */\n    @HostBinding('attr.aria-expanded')\n    public get panelExpanded() {\n        return !this.collapsed;\n    }\n\n    /**\n     * Gets/sets whether the component is collapsed (its content is hidden)\n     * Get\n     * ```typescript\n     *  const myPanelState: boolean = this.panel.collapsed;\n     * ```\n     * Set\n     * ```html\n     *  this.panel.collapsed = true;\n     * ```\n     *\n     * Two-way data binding:\n     * ```html\n     * <igx-expansion-panel [(collapsed)]=\"model.isCollapsed\"></igx-expansion-panel>\n     * ```\n     */\n    @Input({ transform: booleanAttribute })\n    public collapsed = true;\n\n    /**\n     * @hidden\n     */\n    @Output()\n    public collapsedChange = new EventEmitter<boolean>();\n\n    /**\n     * Emitted when the expansion panel starts collapsing\n     * ```typescript\n     *  handleCollapsing(event: IExpansionPanelCancelableEventArgs)\n     * ```\n     * ```html\n     *  <igx-expansion-panel (contentCollapsing)=\"handleCollapsing($event)\">\n     *      ...\n     *  </igx-expansion-panel>\n     * ```\n     */\n    @Output()\n    public contentCollapsing = new EventEmitter<IExpansionPanelCancelableEventArgs>();\n\n    /**\n     * Emitted when the expansion panel finishes collapsing\n     * ```typescript\n     *  handleCollapsed(event: IExpansionPanelEventArgs)\n     * ```\n     * ```html\n     *  <igx-expansion-panel (contentCollapsed)=\"handleCollapsed($event)\">\n     *      ...\n     *  </igx-expansion-panel>\n     * ```\n     */\n    @Output()\n    public contentCollapsed = new EventEmitter<IExpansionPanelEventArgs>();\n\n    /**\n     * Emitted when the expansion panel starts expanding\n     * ```typescript\n     *  handleExpanding(event: IExpansionPanelCancelableEventArgs)\n     * ```\n     * ```html\n     *  <igx-expansion-panel (contentExpanding)=\"handleExpanding($event)\">\n     *      ...\n     *  </igx-expansion-panel>\n     * ```\n     */\n    @Output()\n    public contentExpanding = new EventEmitter<IExpansionPanelCancelableEventArgs>();\n\n    /**\n     * Emitted when the expansion panel finishes expanding\n     * ```typescript\n     *  handleExpanded(event: IExpansionPanelEventArgs)\n     * ```\n     * ```html\n     *  <igx-expansion-panel (contentExpanded)=\"handleExpanded($event)\">\n     *      ...\n     *  </igx-expansion-panel>\n     * ```\n     */\n    @Output()\n    public contentExpanded = new EventEmitter<IExpansionPanelEventArgs>();\n\n    /**\n     * @hidden\n     */\n    public get headerId() {\n        return this.header ? `${this.id}-header` : '';\n    }\n\n    /**\n     * @hidden @internal\n     */\n    public get nativeElement() {\n        return this.elementRef.nativeElement;\n    }\n\n    /**\n     * @hidden\n     */\n    @ContentChild(IgxExpansionPanelBodyComponent, { read: IgxExpansionPanelBodyComponent })\n    public body: IgxExpansionPanelBodyComponent;\n\n    /**\n     * @hidden\n     */\n    @ContentChild(IgxExpansionPanelHeaderComponent, { read: IgxExpansionPanelHeaderComponent })\n    public header: IgxExpansionPanelHeaderComponent;\n\n    /** @hidden */\n    public ngAfterContentInit(): void {\n        if (this.body && this.header) {\n            // schedule at end of turn:\n            Promise.resolve().then(() => {\n                this.body.labelledBy = this.body.labelledBy || this.headerId;\n                this.body.label = this.body.label || this.id + '-region';\n            });\n        }\n    }\n\n    /**\n     * Collapses the panel\n     *\n     * ```html\n     *  <igx-expansion-panel #myPanel>\n     *      ...\n     *  </igx-expansion-panel>\n     *  <button type=\"button\" igxButton (click)=\"myPanel.collapse($event)\">Collpase Panel</button>\n     * ```\n     */\n    public collapse(evt?: Event) {\n        // If expansion panel is already collapsed or is collapsing, do nothing\n        if (this.collapsed || this.closeAnimationPlayer) {\n            return;\n        }\n        const args = { event: evt, panel: this, owner: this, cancel: false };\n        this.contentCollapsing.emit(args);\n        if (args.cancel === true) {\n            return;\n        }\n        this.opened = false;\n        this.playCloseAnimation(\n            this.body?.element,\n            () => {\n                this.contentCollapsed.emit({ event: evt, owner: this });\n                this.collapsed = true;\n                this.collapsedChange.emit(true);\n                this.cdr.markForCheck();\n            }\n        );\n    }\n\n    /**\n     * Expands the panel\n     *\n     * ```html\n     *  <igx-expansion-panel #myPanel>\n     *      ...\n     *  </igx-expansion-panel>\n     *  <button type=\"button\" igxButton (click)=\"myPanel.expand($event)\">Expand Panel</button>\n     * ```\n     */\n    public expand(evt?: Event) {\n        if (!this.collapsed && !this.closeAnimationPlayer) { // Check if the panel is currently collapsing or already expanded\n            return;\n        }\n        const args = { event: evt, panel: this, owner: this, cancel: false };\n        this.contentExpanding.emit(args);\n        if (args.cancel === true) {\n            return;\n        }\n        this.collapsed = false;\n        this.opened = true;\n        this.collapsedChange.emit(false);\n        this.cdr.detectChanges();\n        this.playOpenAnimation(\n            this.body?.element,\n            () => {\n                this.contentExpanded.emit({ event: evt, owner: this });\n            }\n        );\n    }\n\n    /**\n     * Toggles the panel\n     *\n     * ```html\n     *  <igx-expansion-panel #myPanel>\n     *      ...\n     *  </igx-expansion-panel>\n     *  <button type=\"button\" igxButton (click)=\"myPanel.toggle($event)\">Expand Panel</button>\n     * ```\n     */\n    public toggle(evt?: Event) {\n        if (this.collapsed) {\n            this.open(evt);\n        } else {\n            this.close(evt);\n        }\n    }\n\n    public open(evt?: Event) {\n        this.expand(evt);\n    }\n\n    public close(evt?: Event) {\n        this.collapse(evt);\n    }\n}\n","<ng-content select=\"igx-expansion-panel-header\"></ng-content>\n@if (!collapsed) {\n    <ng-content select=\"igx-expansion-panel-body\"></ng-content>\n}\n","import { IgxExpansionPanelBodyComponent } from './expansion-panel-body.component';\nimport { IgxExpansionPanelHeaderComponent } from './expansion-panel-header.component';\nimport { IgxExpansionPanelComponent } from './expansion-panel.component';\nimport { IgxExpansionPanelDescriptionDirective, IgxExpansionPanelIconDirective, IgxExpansionPanelTitleDirective } from './expansion-panel.directives';\n\nexport { IExpansionPanelEventArgs, IExpansionPanelCancelableEventArgs, IgxExpansionPanelBase } from './expansion-panel.common';\nexport { IgxExpansionPanelHeaderComponent } from './expansion-panel-header.component';\nexport { IgxExpansionPanelBodyComponent } from './expansion-panel-body.component';\nexport { IgxExpansionPanelComponent } from './expansion-panel.component';\nexport {\n    IgxExpansionPanelDescriptionDirective,\n    IgxExpansionPanelIconDirective,\n    IgxExpansionPanelTitleDirective\n} from './expansion-panel.directives';\nexport { ExpansionPanelHeaderIconPosition } from './expansion-panel-header.component';\nexport { ToggleAnimationSettings, ToggleAnimationPlayer } from './toggle-animation-component';\n\n/* NOTE: Expansion panel directives collection for ease-of-use import in standalone components scenario */\nexport const IGX_EXPANSION_PANEL_DIRECTIVES = [\n    IgxExpansionPanelComponent,\n    IgxExpansionPanelHeaderComponent,\n    IgxExpansionPanelBodyComponent,\n    IgxExpansionPanelDescriptionDirective,\n    IgxExpansionPanelTitleDirective,\n    IgxExpansionPanelIconDirective\n] as const;\n","import { NgModule } from '@angular/core';\nimport { IGX_EXPANSION_PANEL_DIRECTIVES } from './public_api';\n\n/**\n * @hidden\n * IMPORTANT: The following is NgModule exported for backwards-compatibility before standalone components\n */\n@NgModule({\n    imports: [\n        ...IGX_EXPANSION_PANEL_DIRECTIVES\n    ],\n    exports: [\n        ...IGX_EXPANSION_PANEL_DIRECTIVES\n    ]\n})\nexport class IgxExpansionPanelModule { }\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["i1.IgxExpansionPanelComponent","i2.IgxExpansionPanelHeaderComponent","i3.IgxExpansionPanelBodyComponent","i4.IgxExpansionPanelDescriptionDirective","i4.IgxExpansionPanelTitleDirective","i4.IgxExpansionPanelIconDirective"],"mappings":"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"}