{"version":3,"file":"taiga-ui-kit-components-accordion.mjs","sources":["../../../projects/kit/components/accordion/accordion-item-content.directive.ts","../../../projects/kit/components/accordion/accordion-item-eager-content.directive.ts","../../../projects/kit/components/accordion/accordion-item.component.ts","../../../projects/kit/components/accordion/accordion-item.template.html","../../../projects/kit/components/accordion/accordion.directive.ts","../../../projects/kit/components/accordion/accordion.ts","../../../projects/kit/components/accordion/taiga-ui-kit-components-accordion.ts"],"sourcesContent":["import {Directive} from '@angular/core';\nimport {PolymorpheusTemplate} from '@taiga-ui/polymorpheus';\n\n@Directive({\n    standalone: true,\n    selector: 'ng-template[tuiAccordionItemContent]',\n})\nexport class TuiAccordionItemContent extends PolymorpheusTemplate<\n    Record<string, unknown>\n> {}\n","import {Directive} from '@angular/core';\n\n@Directive({\n    standalone: true,\n    selector: '[tuiAccordionItemContent]:not(ng-template)',\n})\nexport class TuiAccordionItemEagerContent {}\n","import {NgIf} from '@angular/common';\nimport {\n    ChangeDetectionStrategy,\n    ChangeDetectorRef,\n    Component,\n    ContentChild,\n    EventEmitter,\n    inject,\n    Input,\n    Output,\n} from '@angular/core';\nimport {TuiExpand} from '@taiga-ui/core/components/expand';\nimport {TuiIcon} from '@taiga-ui/core/components/icon';\nimport type {TuiSizeS} from '@taiga-ui/core/types';\nimport {TuiChevron} from '@taiga-ui/kit/directives';\nimport {PolymorpheusOutlet} from '@taiga-ui/polymorpheus';\n\nimport {TuiAccordionItemContent} from './accordion-item-content.directive';\nimport {TuiAccordionItemEagerContent} from './accordion-item-eager-content.directive';\n\n@Component({\n    standalone: true,\n    selector: 'tui-accordion-item',\n    imports: [NgIf, PolymorpheusOutlet, TuiChevron, TuiExpand, TuiIcon],\n    templateUrl: './accordion-item.template.html',\n    styleUrls: ['./accordion-item.style.less'],\n    changeDetection: ChangeDetectionStrategy.OnPush,\n    host: {\n        '[class._no-padding]': 'noPadding',\n        '[class._has-arrow]': 'showArrow',\n        '[attr.data-borders]': 'borders',\n        '[attr.data-size]': 'size',\n        '[class._disabled]': 'disabled',\n    },\n})\nexport class TuiAccordionItem {\n    private readonly cdr = inject(ChangeDetectorRef);\n\n    @ContentChild(TuiAccordionItemEagerContent)\n    protected readonly eagerContent?: TuiAccordionItemEagerContent;\n\n    @ContentChild(TuiAccordionItemContent)\n    protected readonly lazyContent?: TuiAccordionItemContent;\n\n    @Input()\n    public noPadding = false;\n\n    @Input()\n    public showArrow = true;\n\n    @Input()\n    public borders: 'all' | 'top-bottom' | null = 'all';\n\n    @Input()\n    public size: TuiSizeS = 'm';\n\n    @Input()\n    public disabled = false;\n\n    @Input()\n    public disableHover = false;\n\n    @Input()\n    public open = false;\n\n    @Input()\n    public async = false;\n\n    @Output()\n    public readonly openChange = new EventEmitter<boolean>();\n\n    public close(): void {\n        this.updateOpen(false);\n        this.cdr.markForCheck();\n    }\n\n    protected onRowToggle(): void {\n        if (!this.disabled) {\n            this.updateOpen(!this.open);\n        }\n    }\n\n    protected onItemKeyDownEsc(event: Event): void {\n        if (!this.open) {\n            return;\n        }\n\n        event.stopPropagation();\n        this.updateOpen(false);\n    }\n\n    private updateOpen(open: boolean): void {\n        if (this.open === open) {\n            return;\n        }\n\n        this.open = open;\n        this.openChange.emit(open);\n    }\n}\n","<div\n    automation-id=\"tui-accordion__item-wrapper\"\n    class=\"t-wrapper\"\n>\n    <button\n        automation-id=\"tui-accordion__item-header\"\n        type=\"button\"\n        class=\"t-header\"\n        [class.t-header_hoverable]=\"!disableHover\"\n        [class.t-header_open]=\"open\"\n        [disabled]=\"disabled\"\n        (click)=\"onRowToggle()\"\n        (keydown.esc)=\"onItemKeyDownEsc($event)\"\n    >\n        <span\n            automation-id=\"tui-accordion__item-title\"\n            class=\"t-title\"\n        >\n            <ng-content />\n        </span>\n        <ng-container *ngIf=\"showArrow\">\n            <tui-icon\n                class=\"t-icon\"\n                [tuiChevron]=\"open\"\n            />\n        </ng-container>\n    </button>\n    <tui-expand\n        [async]=\"async\"\n        [expanded]=\"open\"\n    >\n        <ng-template tuiExpandContent>\n            <div\n                *ngIf=\"lazyContent\"\n                automation-id=\"tui-accordion__item-content\"\n                class=\"t-content\"\n            >\n                <ng-container *polymorpheusOutlet=\"lazyContent as text\">\n                    {{ text }}\n                </ng-container>\n            </div>\n        </ng-template>\n        <div\n            *ngIf=\"eagerContent\"\n            class=\"t-content\"\n        >\n            <ng-content select=\"[tuiAccordionItemContent]:not(ng-template)\" />\n        </div>\n    </tui-expand>\n</div>\n","import type {AfterContentInit, QueryList} from '@angular/core';\nimport {ContentChildren, DestroyRef, Directive, inject, Input} from '@angular/core';\nimport {takeUntilDestroyed} from '@angular/core/rxjs-interop';\nimport {EMPTY_QUERY} from '@taiga-ui/cdk/constants';\nimport {tuiQueryListChanges} from '@taiga-ui/cdk/observables';\nimport {tuiIsPresent} from '@taiga-ui/cdk/utils/miscellaneous';\nimport {TuiGroup} from '@taiga-ui/core/directives/group';\nimport {filter, identity, map, merge, pairwise, switchMap} from 'rxjs';\n\nimport {TuiAccordionItem} from './accordion-item.component';\n\n@Directive({\n    standalone: true,\n    selector: 'tui-accordion',\n    hostDirectives: [\n        {\n            directive: TuiGroup,\n            inputs: ['rounded'],\n        },\n    ],\n})\nexport class TuiAccordionDirective implements AfterContentInit {\n    private readonly destroyRef = inject(DestroyRef);\n\n    @ContentChildren(TuiAccordionItem)\n    protected readonly accordionItems: QueryList<TuiAccordionItem> = EMPTY_QUERY;\n\n    @Input()\n    public closeOthers = true;\n\n    constructor() {\n        // Not using DI options to avoid changed defaults spilling to content\n        const group = inject(TuiGroup);\n\n        group.orientation = 'vertical';\n        group.collapsed = true;\n    }\n\n    public ngAfterContentInit(): void {\n        const {accordionItems} = this;\n        const rows$ = tuiQueryListChanges(accordionItems);\n        const newOpenRow$ = rows$.pipe(\n            pairwise(),\n            map(([previous, current]) =>\n                current.find((item) => !previous.includes(item) && item.open),\n            ),\n            filter(tuiIsPresent),\n        );\n        const rowsOpen$ = merge(\n            rows$.pipe(\n                switchMap((rows) =>\n                    merge(\n                        ...rows.map((row) =>\n                            row.openChange.pipe(\n                                filter(identity),\n                                map(() => row),\n                            ),\n                        ),\n                    ),\n                ),\n            ),\n            newOpenRow$,\n        ).pipe(\n            filter(() => this.closeOthers),\n            takeUntilDestroyed(this.destroyRef),\n        );\n\n        rowsOpen$.subscribe((currentRow) => {\n            accordionItems.forEach((row) => {\n                if (currentRow !== row) {\n                    row.close();\n                }\n            });\n        });\n    }\n}\n","import {TuiAccordionDirective} from './accordion.directive';\nimport {TuiAccordionItem} from './accordion-item.component';\nimport {TuiAccordionItemContent} from './accordion-item-content.directive';\nimport {TuiAccordionItemEagerContent} from './accordion-item-eager-content.directive';\n\nexport const TuiAccordion = [\n    TuiAccordionItem,\n    TuiAccordionDirective,\n    TuiAccordionItemContent,\n    TuiAccordionItemEagerContent,\n] as const;\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1"],"mappings":"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"}