{"version":3,"file":"igniteui-angular-accordion.mjs","sources":["../../../projects/igniteui-angular/accordion/src/accordion/accordion.component.ts","../../../projects/igniteui-angular/accordion/src/accordion/accordion.component.html","../../../projects/igniteui-angular/accordion/src/accordion/public_api.ts","../../../projects/igniteui-angular/accordion/src/accordion/accordion.module.ts","../../../projects/igniteui-angular/accordion/src/igniteui-angular-accordion.ts"],"sourcesContent":["import { AfterContentInit, AfterViewInit, ChangeDetectorRef, Component, ContentChildren, EventEmitter, HostBinding, Input, OnDestroy, Output, QueryList, booleanAttribute, inject } from '@angular/core';\nimport { fromEvent, Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\nimport {\n    IExpansionPanelCancelableEventArgs,\n    IExpansionPanelEventArgs, IgxExpansionPanelBase\n} from 'igniteui-angular/expansion-panel';\nimport { IgxExpansionPanelComponent } from 'igniteui-angular/expansion-panel';\nimport { ToggleAnimationSettings } from 'igniteui-angular/expansion-panel';\n\n/** @hidden @internal */\nconst ACCORDION_NAVIGATION_KEYS = new Set('up down arrowup arrowdown home end'.split(' '));\n\nexport interface IAccordionEventArgs extends IExpansionPanelEventArgs {\n    owner: IgxAccordionComponent;\n    /** Provides a reference to the `IgxExpansionPanelComponent` which was expanded/collapsed. */\n    panel: IgxExpansionPanelBase;\n}\n\nexport interface IAccordionCancelableEventArgs extends IExpansionPanelCancelableEventArgs {\n    owner: IgxAccordionComponent;\n    /** Provides a reference to the `IgxExpansionPanelComponent` which is currently expanding/collapsing. */\n    panel: IgxExpansionPanelBase;\n    /** Enables canceling the expansion/collapse operation. */\n    cancel: boolean;\n}\n\nlet NEXT_ID = 0;\n\n/**\n * IgxAccordion is a container-based component that contains that can house multiple expansion panels.\n *\n * @igxModule IgxAccordionModule\n *\n * @igxKeywords accordion\n *\n * @igxGroup Layouts\n *\n * @remarks\n * The Ignite UI for Angular Accordion component enables the user to navigate among multiple collapsing panels\n * displayed in a single container.\n * The accordion offers keyboard navigation and API to control the underlying panels' expansion state.\n *\n * @example\n * ```html\n * <igx-accordion>\n *   <igx-expansion-panel *ngFor=\"let panel of panels\">\n *       ...\n *   </igx-expansion-panel>\n * </igx-accordion>\n * ```\n */\n@Component({\n    selector: 'igx-accordion',\n    templateUrl: 'accordion.component.html',\n    standalone: true\n})\nexport class IgxAccordionComponent implements AfterContentInit, AfterViewInit, OnDestroy {\n    private cdr = inject(ChangeDetectorRef);\n\n    /**\n     * Get/Set the `id` of the accordion component.\n     * Default value is `\"igx-accordion-0\"`;\n     * ```html\n     * <igx-accordion id=\"my-first-accordion\"></igx-accordion>\n     * ```\n     * ```typescript\n     * const accordionId = this.accordion.id;\n     * ```\n     */\n    @HostBinding('attr.id')\n    @Input()\n    public id = `igx-accordion-${NEXT_ID++}`;\n\n    /** @hidden @internal **/\n    @HostBinding('class.igx-accordion')\n    public cssClass = 'igx-accordion';\n\n    /** @hidden @internal **/\n    @HostBinding('style.display')\n    public displayStyle = 'block';\n\n    /**\n     * Get/Set the animation settings that panels should use when expanding/collpasing.\n     *\n     * ```html\n     * <igx-accordion [animationSettings]=\"customAnimationSettings\"></igx-accordion>\n     * ```\n     *\n     * ```typescript\n     * const customAnimationSettings: ToggleAnimationSettings = {\n     *      openAnimation: growVerIn,\n     *      closeAnimation: growVerOut\n     * };\n     *\n     * this.accordion.animationSettings = customAnimationSettings;\n     * ```\n     */\n    @Input()\n    public get animationSettings(): ToggleAnimationSettings {\n        return this._animationSettings;\n    }\n\n    public set animationSettings(value: ToggleAnimationSettings) {\n        this._animationSettings = value;\n        this.updatePanelsAnimation();\n    }\n\n    /**\n     * Get/Set how the accordion handles the expansion of the projected expansion panels.\n     * If set to `true`, only a single panel can be expanded at a time, collapsing all others\n     *\n     * ```html\n     * <igx-accordion [singleBranchExpand]=\"true\">\n     * ...\n     * </igx-accordion>\n     * ```\n     *\n     * ```typescript\n     * this.accordion.singleBranchExpand = false;\n     * ```\n     */\n    @Input({ transform: booleanAttribute })\n    public get singleBranchExpand(): boolean {\n        return this._singleBranchExpand;\n    }\n\n    public set singleBranchExpand(val: boolean) {\n        this._singleBranchExpand = val;\n        if (val) {\n            this.collapseAllExceptLast();\n        }\n    }\n\n    /**\n     * Emitted before a panel is expanded.\n     *\n     * @remarks\n     * This event is cancelable.\n     *\n     * ```html\n     * <igx-accordion (panelExpanding)=\"handlePanelExpanding($event)\">\n     * </igx-accordion>\n     * ```\n     *\n     *```typescript\n     * public handlePanelExpanding(event: IExpansionPanelCancelableEventArgs){\n     *  const expandedPanel: IgxExpansionPanelComponent = event.panel;\n     *  if (expandedPanel.disabled) {\n     *      event.cancel = true;\n     *  }\n     * }\n     *```\n     */\n    @Output()\n    public panelExpanding = new EventEmitter<IAccordionCancelableEventArgs>();\n\n    /**\n     * Emitted after a panel has been expanded.\n     *\n     * ```html\n     * <igx-accordion (panelExpanded)=\"handlePanelExpanded($event)\">\n     * </igx-accordion>\n     * ```\n     *\n     *```typescript\n     * public handlePanelExpanded(event: IExpansionPanelCancelableEventArgs) {\n     *  const expandedPanel: IgxExpansionPanelComponent = event.panel;\n     *  console.log(\"Panel is expanded: \", expandedPanel.id);\n     * }\n     *```\n     */\n    @Output()\n    public panelExpanded = new EventEmitter<IAccordionEventArgs>();\n\n    /**\n     * Emitted before a panel is collapsed.\n     *\n     * @remarks\n     * This event is cancelable.\n     *\n     * ```html\n     * <igx-accordion (panelCollapsing)=\"handlePanelCollapsing($event)\">\n     * </igx-accordion>\n     * ```\n     */\n    @Output()\n    public panelCollapsing = new EventEmitter<IAccordionCancelableEventArgs>();\n\n    /**\n     * Emitted after a panel has been collapsed.\n     *\n     * ```html\n     * <igx-accordion (panelCollapsed)=\"handlePanelCollapsed($event)\">\n     * </igx-accordion>\n     * ```\n     */\n    @Output()\n    public panelCollapsed = new EventEmitter<IAccordionEventArgs>();\n\n    /**\n     * Get all panels.\n     *\n     * ```typescript\n     * const panels: IgxExpansionPanelComponent[] = this.accordion.panels;\n     * ```\n     */\n    public get panels(): IgxExpansionPanelComponent[] {\n        return this._panels?.toArray();\n    }\n\n    @ContentChildren(IgxExpansionPanelComponent)\n    private _panels!: QueryList<IgxExpansionPanelComponent>;\n    private _animationSettings!: ToggleAnimationSettings;\n    private _expandedPanels!: Set<IgxExpansionPanelComponent>;\n    private _expandingPanels!: Set<IgxExpansionPanelComponent>;\n    private _destroy$ = new Subject<void>();\n    private _unsubChildren$ = new Subject<void>();\n    private _enabledPanels!: IgxExpansionPanelComponent[];\n    private _singleBranchExpand = false;\n\n    /** @hidden @internal **/\n    public ngAfterContentInit(): void {\n        this.updatePanelsAnimation();\n        if (this.singleBranchExpand) {\n            this.collapseAllExceptLast();\n        }\n    }\n\n    /** @hidden @internal **/\n    public ngAfterViewInit(): void {\n        this._expandedPanels = new Set<IgxExpansionPanelComponent>(this._panels.filter(panel => !panel.collapsed));\n        this._expandingPanels = new Set<IgxExpansionPanelComponent>();\n        this._panels.changes.pipe(takeUntil(this._destroy$)).subscribe(() => {\n            this.subToChanges();\n        });\n        this.subToChanges();\n    }\n\n    /** @hidden @internal */\n    public ngOnDestroy(): void {\n        this._unsubChildren$.next();\n        this._unsubChildren$.complete();\n        this._destroy$.next();\n        this._destroy$.complete();\n    }\n\n    /**\n     * Expands all collapsed expansion panels.\n     *\n     * ```typescript\n     * accordion.expandAll();\n     * ```\n     */\n    public expandAll(): void {\n        if (this.singleBranchExpand) {\n            for (let i = 0; i < this.panels.length - 1; i++) {\n                this.panels[i].collapse();\n            }\n            this._panels.last.expand();\n            return;\n        }\n\n        this.panels.forEach(panel => panel.expand());\n    }\n\n    /**\n     * Collapses all expanded expansion panels.\n     *\n     * ```typescript\n     * accordion.collapseAll();\n     * ```\n     */\n    public collapseAll(): void {\n        this.panels.forEach(panel => panel.collapse());\n    }\n\n    private collapseAllExceptLast(): void {\n        const lastExpanded = this.panels?.filter(p => !p.collapsed && !p.header.disabled).pop();\n        this.panels?.forEach((p: IgxExpansionPanelComponent) => {\n            if (p !== lastExpanded && !p.header.disabled) {\n                p.collapsed = true;\n            }\n        });\n        this.cdr.markForCheck();\n    }\n\n    private handleKeydown(event: KeyboardEvent, panel: IgxExpansionPanelComponent): void {\n        const key = event.key.toLowerCase();\n        if (!(ACCORDION_NAVIGATION_KEYS.has(key))) {\n            return;\n        }\n        // TO DO: if we ever want to improve the performance of the accordion,\n        // enabledPanels could be cached (by making a disabledChange emitter on the panel header)\n        this._enabledPanels = this._panels.filter(p => !p.header.disabled);\n        event.preventDefault();\n        this.handleNavigation(event, panel);\n    }\n\n    private handleNavigation(event: KeyboardEvent, panel: IgxExpansionPanelComponent): void {\n        switch (event.key.toLowerCase()) {\n            case 'home':\n                this._enabledPanels[0].header.innerElement.focus();\n                break;\n            case 'end':\n                this._enabledPanels[this._enabledPanels.length - 1].header.innerElement.focus();\n                break;\n            case 'arrowup':\n            case 'up':\n                this.handleUpDownArrow(true, event, panel);\n                break;\n            case 'arrowdown':\n            case 'down':\n                this.handleUpDownArrow(false, event, panel);\n                break;\n        }\n    }\n\n    private handleUpDownArrow(isUp: boolean, event: KeyboardEvent, panel: IgxExpansionPanelComponent): void {\n        if (!event.altKey) {\n            const focusedPanel = panel;\n            const next = this.getNextPanel(focusedPanel, isUp ? -1 : 1);\n            if (next === focusedPanel) {\n                return;\n            }\n            next.header.innerElement.focus();\n        }\n        if (event.altKey && event.shiftKey) {\n            if (isUp) {\n                this._enabledPanels.forEach(p => p.collapse());\n            } else {\n                if (this.singleBranchExpand) {\n                    for (let i = 0; i < this._enabledPanels.length - 1; i++) {\n                        this._enabledPanels[i].collapse();\n                    }\n                    this._enabledPanels[this._enabledPanels.length - 1].expand();\n                    return;\n                }\n                this._enabledPanels.forEach(p => p.expand());\n            }\n        }\n    }\n\n    private getNextPanel(panel: IgxExpansionPanelComponent, dir: 1 | -1 = 1): IgxExpansionPanelComponent {\n        const panelIndex = this._enabledPanels.indexOf(panel);\n        return this._enabledPanels[panelIndex + dir] || panel;\n    }\n\n    private subToChanges(): void {\n        this._unsubChildren$.next();\n        this._panels.forEach(panel => {\n            panel.contentExpanded.pipe(takeUntil(this._unsubChildren$)).subscribe((args: IExpansionPanelEventArgs) => {\n                this._expandedPanels.add(args.owner);\n                this._expandingPanels.delete(args.owner);\n                const evArgs: IAccordionEventArgs = { ...args, owner: this, panel: args.owner };\n                this.panelExpanded.emit(evArgs);\n            });\n            panel.contentExpanding.pipe(takeUntil(this._unsubChildren$)).subscribe((args: IExpansionPanelCancelableEventArgs) => {\n                if (args.cancel) {\n                    return;\n                }\n                const evArgs: IAccordionCancelableEventArgs = { ...args, owner: this, panel: args.owner };\n                this.panelExpanding.emit(evArgs);\n                if (evArgs.cancel) {\n                    args.cancel = true;\n                    return;\n                }\n                if (this.singleBranchExpand) {\n                    this._expandedPanels.forEach(p => {\n                        if (!p.header.disabled) {\n                            p.collapse();\n                        }\n                    });\n                    this._expandingPanels.forEach(p => {\n                        if (!p.header.disabled) {\n                            if (!p.animationSettings.closeAnimation) {\n                                p.openAnimationPlayer?.reset();\n                            }\n                            if (!p.animationSettings.openAnimation) {\n                                p.closeAnimationPlayer?.reset();\n                            }\n                            p.collapse();\n                        }\n                    });\n                    this._expandingPanels.add(args.owner);\n                }\n            });\n            panel.contentCollapsed.pipe(takeUntil(this._unsubChildren$)).subscribe((args: IExpansionPanelEventArgs) => {\n                this._expandedPanels.delete(args.owner);\n                this._expandingPanels.delete(args.owner);\n                const evArgs: IAccordionEventArgs = { ...args, owner: this, panel: args.owner };\n                this.panelCollapsed.emit(evArgs);\n            });\n            panel.contentCollapsing.pipe(takeUntil(this._unsubChildren$)).subscribe((args: IExpansionPanelCancelableEventArgs) => {\n                const evArgs: IAccordionCancelableEventArgs = { ...args, owner: this, panel: args.owner };\n                this.panelCollapsing.emit(evArgs);\n                if (evArgs.cancel) {\n                    args.cancel = true;\n                }\n            });\n            fromEvent(panel.header.innerElement, 'keydown')\n                .pipe(takeUntil(this._unsubChildren$))\n                .subscribe((e: KeyboardEvent) => {\n                    this.handleKeydown(e, panel);\n                });\n        });\n    }\n\n    private updatePanelsAnimation(): void {\n        if (this.animationSettings !== undefined) {\n            this.panels?.forEach(panel => panel.animationSettings = this.animationSettings);\n        }\n    }\n}\n","<ng-content select=\"igx-expansion-panel\"></ng-content>\n","import { IgxAccordionComponent } from './accordion.component';\n\nexport * from './accordion.component';\n\n/* Imports that cannot be resolved from IGX_EXPANSION_PANEL_DIRECTIVES spread\n    NOTE: Do not remove! Issue: https://github.com/IgniteUI/igniteui-angular/issues/13310\n*/\nimport {\n    IgxExpansionPanelComponent,\n    IgxExpansionPanelHeaderComponent,\n    IgxExpansionPanelBodyComponent,\n    IgxExpansionPanelDescriptionDirective,\n    IgxExpansionPanelTitleDirective,\n    IgxExpansionPanelIconDirective\n} from 'igniteui-angular/expansion-panel';\n\n/* Accordion directives collection for ease-of-use import in standalone components scenario */\nexport const IGX_ACCORDION_DIRECTIVES = [\n    IgxAccordionComponent,\n    IgxExpansionPanelComponent,\n    IgxExpansionPanelHeaderComponent,\n    IgxExpansionPanelBodyComponent,\n    IgxExpansionPanelDescriptionDirective,\n    IgxExpansionPanelTitleDirective,\n    IgxExpansionPanelIconDirective\n] as const;\n","import { NgModule } from '@angular/core';\nimport { IGX_ACCORDION_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_ACCORDION_DIRECTIVES\n    ],\n    exports: [\n        ...IGX_ACCORDION_DIRECTIVES\n    ]\n})\nexport class IgxAccordionModule {\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["i1.IgxAccordionComponent"],"mappings":"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"}