{"version":3,"file":"primeng-panel.mjs","sources":["../../src/panel/style/panelstyle.ts","../../src/panel/panel.ts","../../src/panel/public_api.ts","../../src/panel/primeng-panel.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\nimport { style } from '@primeuix/styles/panel';\nimport { BaseStyle } from 'primeng/base';\n\nconst classes = {\n    root: ({ instance }) => {\n        return [\n            'p-panel p-component',\n            {\n                'p-panel-toggleable': instance.toggleable()\n            }\n        ];\n    },\n    header: 'p-panel-header',\n    title: 'p-panel-title',\n    headerActions: ({ instance }) => {\n        const iconPos = instance.iconPos();\n        return [\n            'p-panel-header-actions',\n            {\n                'p-panel-icons-start': iconPos === 'start',\n                'p-panel-icons-end': iconPos === 'end',\n                'p-panel-icons-center': iconPos === 'center'\n            }\n        ];\n    },\n    pcToggleButton: 'p-panel-toggle-button',\n    contentContainer: 'p-panel-content-container',\n    contentWrapper: 'p-panel-content-wrapper',\n    content: 'p-panel-content',\n    footer: 'p-panel-footer'\n};\n@Injectable()\nexport class PanelStyle extends BaseStyle {\n    name = 'panel';\n\n    style = style;\n\n    classes = classes;\n}\n\n/**\n *\n * Panel is a container with the optional content toggle feature.\n *\n * [Live Demo](https://www.primeng.org/panel/)\n *\n * @module panelstyle\n *\n */\nexport enum PanelClasses {\n    /**\n     * Class name of the root element\n     */\n    root = 'p-panel',\n    /**\n     * Class name of the header element\n     */\n    header = 'p-panel-header',\n    /**\n     * Class name of the title element\n     */\n    title = 'p-panel-title',\n    /**\n     * Class name of the header actions element\n     */\n    headerActions = 'p-panel-header-actions',\n    /**\n     * Class name of the toggle button element\n     */\n    pcToggleButton = 'p-panel-toggle-button',\n    /**\n     * Class name of the content container element\n     */\n    contentContainer = 'p-panel-content-container',\n    /**\n     * Class name of the content wrapper element\n     */\n    contentWrapper = 'p-panel-content-wrapper',\n    /**\n     * Class name of the content element\n     */\n    content = 'p-panel-content',\n    /**\n     * Class name of the footer element\n     */\n    footer = 'p-panel-footer'\n}\n","import { NgTemplateOutlet } from '@angular/common';\nimport { booleanAttribute, ChangeDetectionStrategy, Component, computed, contentChild, ElementRef, inject, InjectionToken, input, model, NgModule, output, TemplateRef, viewChild, ViewEncapsulation } from '@angular/core';\nimport { MotionEvent, MotionOptions } from '@primeuix/motion';\nimport { uuid } from '@primeuix/utils';\nimport { BlockableUI, Footer, SharedModule } from 'primeng/api';\nimport { BaseComponent, PARENT_INSTANCE } from 'primeng/basecomponent';\nimport { Bind, BindModule } from 'primeng/bind';\nimport { ButtonDirective } from 'primeng/button';\nimport { Minus as MinusIcon } from '@primeicons/angular/minus';\nimport { Plus as PlusIcon } from '@primeicons/angular/plus';\nimport { MotionModule } from 'primeng/motion';\nimport type { PanelAfterToggleEvent, PanelBeforeToggleEvent, PanelHeaderIconsTemplateContext, PanelIconPos, PanelPassThrough, PanelToggler } from 'primeng/types/panel';\nimport type { ButtonDirectiveOptions } from 'primeng/types/button';\nimport { PanelStyle } from './style/panelstyle';\n\nconst PANEL_INSTANCE = new InjectionToken<Panel>('PANEL_INSTANCE');\n\n/**\n * Panel is a container with the optional content toggle feature.\n * @group Components\n */\n@Component({\n    selector: 'p-panel',\n    standalone: true,\n    imports: [NgTemplateOutlet, PlusIcon, MinusIcon, ButtonDirective, SharedModule, BindModule, MotionModule],\n    template: `\n        @if (showHeader()) {\n            <div [pBind]=\"ptm('header')\" [class]=\"cx('header')\" (click)=\"onHeaderClick($event)\" [attr.id]=\"titlebarId()\" [attr.data-p]=\"dataP()\">\n                @if (header()) {\n                    <span [pBind]=\"ptm('title')\" [class]=\"cx('title')\" [attr.id]=\"headerId()\">{{ header() }}</span>\n                }\n                <ng-content select=\"p-header\"></ng-content>\n                <ng-container *ngTemplateOutlet=\"headerTemplate()\"></ng-container>\n                <div [pBind]=\"ptm('headerActions')\" [class]=\"cx('headerActions')\">\n                    <ng-container *ngTemplateOutlet=\"iconTemplate()\"></ng-container>\n                    @if (toggleable()) {\n                        <button\n                            type=\"button\"\n                            iconOnly\n                            [pButton]=\"toggleButtonProps()\"\n                            severity=\"secondary\"\n                            [text]=\"true\"\n                            [rounded]=\"true\"\n                            role=\"button\"\n                            [class]=\"cx('pcToggleButton')\"\n                            [attr.id]=\"headerId()\"\n                            [attr.aria-label]=\"buttonAriaLabel()\"\n                            [attr.aria-controls]=\"contentId()\"\n                            [attr.aria-expanded]=\"!collapsed()\"\n                            [pButtonPT]=\"ptm('pcToggleButton')\"\n                            [pButtonUnstyled]=\"unstyled()\"\n                            (click)=\"onIconClick($event)\"\n                            (keydown)=\"onKeyDown($event)\"\n                        >\n                            @if (showDefaultIcon()) {\n                                @if (!collapsed()) {\n                                    <svg data-p-icon=\"minus\" [pBind]=\"ptm('pcToggleButton.icon')\" />\n                                } @else {\n                                    <svg data-p-icon=\"plus\" [pBind]=\"ptm('pcToggleButton.icon')\" />\n                                }\n                            }\n                            <ng-container *ngTemplateOutlet=\"headerIconsTemplate(); context: headerIconsContext()\"></ng-container>\n                        </button>\n                    }\n                </div>\n            </div>\n        }\n        <div\n            [pBind]=\"ptm('contentContainer')\"\n            [pMotion]=\"isContentVisible()\"\n            pMotionName=\"p-collapsible\"\n            [pMotionOptions]=\"computedMotionOptions()\"\n            [class]=\"cx('contentContainer')\"\n            [id]=\"contentId()\"\n            role=\"region\"\n            [attr.aria-labelledby]=\"headerId()\"\n            [attr.aria-hidden]=\"collapsed()\"\n            [attr.tabindex]=\"contentTabindex()\"\n            (pMotionOnAfterEnter)=\"onToggleDone($event)\"\n        >\n            <div [pBind]=\"ptm('contentWrapper')\" [class]=\"cx('contentWrapper')\">\n                <div [pBind]=\"ptm('content')\" [class]=\"cx('content')\" #contentWrapper>\n                    <ng-content></ng-content>\n                    <ng-container *ngTemplateOutlet=\"contentTemplate()\"></ng-container>\n                </div>\n                @if (hasFooter()) {\n                    <div [pBind]=\"ptm('footer')\" [class]=\"cx('footer')\">\n                        <ng-content select=\"p-footer\"></ng-content>\n                        <ng-container *ngTemplateOutlet=\"footerTemplate()\"></ng-container>\n                    </div>\n                }\n            </div>\n        </div>\n    `,\n    changeDetection: ChangeDetectionStrategy.OnPush,\n    encapsulation: ViewEncapsulation.None,\n    providers: [PanelStyle, { provide: PANEL_INSTANCE, useExisting: Panel }, { provide: PARENT_INSTANCE, useExisting: Panel }],\n    host: {\n        '[id]': 'id()',\n        '[class]': \"cx('root')\",\n        '[attr.data-p]': 'dataP()'\n    },\n    hostDirectives: [Bind]\n})\nexport class Panel extends BaseComponent<PanelPassThrough> implements BlockableUI {\n    componentName = 'Panel';\n\n    $pcPanel: Panel | undefined = inject(PANEL_INSTANCE, { optional: true, skipSelf: true }) ?? undefined;\n\n    _componentStyle = inject(PanelStyle);\n\n    bindDirectiveInstance = inject(Bind, { self: true });\n\n    /**\n     * Id of the component.\n     */\n    id = input<string>(uuid('pn_id_'));\n\n    /**\n     * Defines if content of panel can be expanded and collapsed.\n     * @group Props\n     */\n    toggleable = input(false, { transform: booleanAttribute });\n\n    /**\n     * Header text of the panel.\n     * @group Props\n     */\n    header = input<string>();\n\n    /**\n     * Defines the initial state of panel content, supports one or two-way binding as well.\n     * @group Props\n     */\n    collapsed = model(false);\n\n    /**\n     * Position of the icons.\n     * @group Props\n     */\n    iconPos = input<PanelIconPos>('end');\n\n    /**\n     * Specifies if header of panel cannot be displayed.\n     * @group Props\n     */\n    showHeader = input(true, { transform: booleanAttribute });\n\n    /**\n     * Specifies the toggler element to toggle the panel content.\n     * @group Props\n     */\n    toggler = input<PanelToggler>('icon');\n\n    /**\n     * Configuration object forwarded to the toggle button.\n     * @group Props\n     */\n    toggleButtonProps = input<ButtonDirectiveOptions>();\n\n    /**\n     * The motion options.\n     * @group Props\n     */\n    motionOptions = input<MotionOptions | undefined>();\n\n    /**\n     * Callback to invoke before panel toggle.\n     * @param {PanelBeforeToggleEvent} event - Custom panel toggle event\n     * @group Emits\n     */\n    onBeforeToggle = output<PanelBeforeToggleEvent>();\n\n    /**\n     * Callback to invoke after panel toggle.\n     * @param {PanelAfterToggleEvent} event - Custom panel toggle event\n     * @group Emits\n     */\n    onAfterToggle = output<PanelAfterToggleEvent>();\n\n    footerFacet = contentChild(Footer, { descendants: false });\n\n    /**\n     * Defines template option for header.\n     * @example\n     * ```html\n     * <ng-template #header> </ng-template>\n     * ```\n     * @group Templates\n     */\n    headerTemplate = contentChild<TemplateRef<void>>('header', { descendants: false });\n\n    /**\n     * Defines template option for icon.\n     * @example\n     * ```html\n     * <ng-template #icons> </ng-template>\n     * ```\n     * @group Templates\n     */\n    iconTemplate = contentChild<TemplateRef<void>>('icons', { descendants: false });\n\n    /**\n     * Defines template option for content.\n     * @example\n     * ```html\n     * <ng-template #content> </ng-template>\n     * ```\n     * @group Templates\n     */\n    contentTemplate = contentChild<TemplateRef<void>>('content', { descendants: false });\n\n    /**\n     * Defines template option for footer.\n     * @example\n     * ```html\n     * <ng-template #footer> </ng-template>\n     * ```\n     * @group Templates\n     */\n    footerTemplate = contentChild<TemplateRef<void>>('footer', { descendants: false });\n\n    /**\n     * Defines template option for headerIcon.\n     * @param {PanelHeaderIconsTemplateContext} context - context of the template.\n     * @example\n     * ```html\n     * <ng-template #headericons let-collapsed> </ng-template>\n     * ```\n     * @see {@link PanelHeaderIconsTemplateContext}\n     * @group Templates\n     */\n    headerIconsTemplate = contentChild<TemplateRef<PanelHeaderIconsTemplateContext>>('headericons', { descendants: false });\n\n    contentWrapperViewChild = viewChild<ElementRef>('contentWrapper');\n\n    titlebarId = computed(() => this.id() + '-titlebar');\n\n    headerId = computed(() => this.id() + '_header');\n\n    contentId = computed(() => this.id() + '_content');\n\n    buttonAriaLabel = computed(() => this.header());\n\n    dataP = computed(() => this.cn({ toggleable: this.toggleable() }));\n\n    hasFooter = computed(() => !!(this.footerFacet() || this.footerTemplate()));\n\n    showDefaultIcon = computed(() => !this.headerIconsTemplate());\n\n    contentTabindex = computed(() => (this.collapsed() ? '-1' : undefined));\n\n    headerIconsContext = computed<PanelHeaderIconsTemplateContext>(() => ({ $implicit: this.collapsed() }));\n\n    isContentVisible = computed(() => !this.toggleable() || (this.toggleable() && !this.collapsed()));\n\n    computedMotionOptions = computed<MotionOptions>(() => {\n        return {\n            ...this.ptm('motion'),\n            ...this.motionOptions()\n        };\n    });\n\n    onAfterViewChecked(): void {\n        this.bindDirectiveInstance.setAttrs(this.ptms(['host', 'root']));\n    }\n\n    onHeaderClick(event: MouseEvent) {\n        if (this.toggler() === 'header') {\n            this.toggle(event);\n        }\n    }\n\n    onIconClick(event: MouseEvent) {\n        if (this.toggler() === 'icon') {\n            this.toggle(event);\n        }\n    }\n\n    toggle(event: MouseEvent) {\n        this.onBeforeToggle.emit({ originalEvent: event, collapsed: this.collapsed() });\n\n        if (this.collapsed()) this.expand();\n        else this.collapse();\n\n        event.preventDefault();\n    }\n\n    expand() {\n        this.collapsed.set(false);\n        this.updateTabIndex();\n    }\n\n    collapse() {\n        this.collapsed.set(true);\n        this.updateTabIndex();\n    }\n\n    getBlockableElement(): HTMLElement {\n        return this.el.nativeElement;\n    }\n\n    updateTabIndex() {\n        const contentWrapper = this.contentWrapperViewChild();\n        if (contentWrapper) {\n            const focusableElements = contentWrapper.nativeElement.querySelectorAll('input, button, select, a, textarea, [tabindex]');\n            focusableElements.forEach((element: HTMLElement) => {\n                if (this.collapsed()) {\n                    element.setAttribute('tabindex', '-1');\n                } else {\n                    element.removeAttribute('tabindex');\n                }\n            });\n        }\n    }\n\n    onKeyDown(event: KeyboardEvent) {\n        if (event.code === 'Enter' || event.code === 'Space') {\n            this.toggle(event as any);\n            event.preventDefault();\n        }\n    }\n\n    onToggleDone(event: MotionEvent) {\n        this.onAfterToggle.emit({ originalEvent: event as any, collapsed: this.collapsed() });\n    }\n}\n\n@NgModule({\n    imports: [Panel, SharedModule, BindModule],\n    exports: [Panel, SharedModule, BindModule]\n})\nexport class PanelModule {}\n","// Backwards compatibility\nexport * from 'primeng/types/panel';\nexport * from './panel';\nexport * from './style/panelstyle';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["PlusIcon","MinusIcon"],"mappings":"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"}