{"version":3,"file":"fundamental-ngx-platform-panel.mjs","sources":["../../../../libs/platform/panel/panel-actions.component.ts","../../../../libs/platform/panel/panel-content/panel-content.component.ts","../../../../libs/platform/panel/panel.config.ts","../../../../libs/platform/panel/panel.component.ts","../../../../libs/platform/panel/panel.component.html","../../../../libs/platform/panel/panel.module.ts","../../../../libs/platform/panel/fundamental-ngx-platform-panel.ts"],"sourcesContent":["import { ChangeDetectionStrategy, Component, ViewEncapsulation } from '@angular/core';\n\n@Component({\n    selector: 'fdp-panel-actions',\n    template: '<ng-content></ng-content>',\n    styles: [\n        `\n            fdp-panel-actions > * {\n                margin-left: 0.5rem;\n            }\n\n            [dir='rtl'] fdp-panel-actions > * {\n                margin-left: 0;\n                margin-right: 0.5rem;\n            }\n        `\n    ],\n    encapsulation: ViewEncapsulation.None,\n    changeDetection: ChangeDetectionStrategy.OnPush,\n    standalone: true\n})\nexport class PanelActionsComponent {}\n","import { ChangeDetectionStrategy, Component, HostBinding, Input } from '@angular/core';\n\nlet platformPanelContentUniqueId = 0;\n\n@Component({\n    selector: 'fdp-panel-content',\n    template: `<ng-content></ng-content>`,\n    styleUrl: './panel-content.component.scss',\n    changeDetection: ChangeDetectionStrategy.OnPush,\n    standalone: true\n})\nexport class PanelContentComponent {\n    /**\n     * @harmful Potentially bad approach to hardcode css related properties\n     * Custom height of the content container.\n     */\n    @Input()\n    contentHeight: string;\n\n    /** Id of the host element. */\n    @Input()\n    @HostBinding('attr.id')\n    id: string = 'fdp-panel-content-' + platformPanelContentUniqueId++;\n}\n","import { Injectable, inject } from '@angular/core';\n\nimport { ContentDensity } from '@fundamental-ngx/cdk/utils';\nimport { PlatformConfig } from '@fundamental-ngx/platform/shared';\n\n/**\n * Default options for platform panel\n */\n@Injectable({ providedIn: 'root' })\nexport class PanelConfig {\n    /**\n     * ARIA label for button when the Panel is collapsed\n     */\n    expandLabel = 'Expand Panel';\n\n    /**\n     * ARIA label for button when the Panel is expanded\n     */\n    collapseLabel = 'Collapse Panel';\n\n    /**\n     * Content Density of element. 'cozy' | 'compact'\n     */\n    contentDensity?: ContentDensity;\n\n    /** @hidden */\n    constructor() {\n        const platformConfig = inject(PlatformConfig, { optional: true });\n        this.contentDensity = platformConfig?.contentDensity;\n    }\n\n    /**\n     * Create Provider factory function\n     */\n    static createProviderFactory(obj: Partial<PanelConfig>): () => PanelConfig {\n        const useFactory = (): PanelConfig => Object.assign(new PanelConfig(), obj);\n        return useFactory;\n    }\n}\n","import {\n    ChangeDetectionStrategy,\n    Component,\n    ContentChild,\n    EventEmitter,\n    Input,\n    OnChanges,\n    OnInit,\n    Output,\n    SimpleChanges,\n    ViewChild\n} from '@angular/core';\n\nimport { BaseComponent } from '@fundamental-ngx/platform/shared';\n\nimport { Nullable } from '@fundamental-ngx/cdk/utils';\nimport {\n    ContentDensityDirective,\n    ContentDensityObserver,\n    contentDensityObserverProviders,\n    defaultContentDensityObserverConfigs\n} from '@fundamental-ngx/core/content-density';\nimport {\n    PanelComponent as CorePanelComponent,\n    PanelContentDirective,\n    PanelTitleDirective\n} from '@fundamental-ngx/core/panel';\nimport { PanelContentComponent } from './panel-content/panel-content.component';\nimport { PanelConfig } from './panel.config';\n\n/** Panel change event instance */\nexport class PanelExpandChangeEvent {\n    /**\n     * Panel expand change event\n     * @param source Panel component\n     * @param payload Panel expand state\n     */\n    constructor(\n        public source: PanelComponent,\n        public payload: boolean\n    ) {}\n}\n\nlet platformPanelTitleUniqueId = 0;\n\n/**\n * Fundamental Panel component\n *\n * ```html\n * <fdp-panel title=\"Panel Header\">\n *     <fdp-panel-content>\n *        Panel Content\n *     </fdp-panel-content>\n * </fdp-panel>\n * ```\n *\n * */\n@Component({\n    selector: 'fdp-panel',\n    templateUrl: './panel.component.html',\n    changeDetection: ChangeDetectionStrategy.OnPush,\n    providers: [\n        contentDensityObserverProviders({\n            defaultContentDensity: {\n                useFactory: (panelConfig: PanelConfig) =>\n                    panelConfig.contentDensity || defaultContentDensityObserverConfigs.defaultContentDensity,\n                deps: [PanelConfig]\n            }\n        })\n    ],\n    imports: [CorePanelComponent, ContentDensityDirective, PanelTitleDirective, PanelContentDirective]\n})\nexport class PanelComponent extends BaseComponent implements OnInit, OnChanges {\n    /**\n     * sets Panel title.\n     */\n    @Input()\n    title: string;\n\n    /**\n     * Whether the Panel Content is expanded\n     */\n    @Input()\n    expanded = true;\n\n    /**\n     * Whether the Panel is expandable\n     */\n    @Input()\n    expandable = true;\n\n    /**\n     * ARIA label for button when the Panel is collapsed\n     */\n    @Input()\n    expandLabel: string;\n\n    /**\n     * ARIA label for button when the Panel is expanded\n     */\n    @Input()\n    collapseLabel: string;\n\n    /** Output event triggered when the Expand button is clicked */\n    @Output()\n    panelExpandChange: EventEmitter<PanelExpandChangeEvent> = new EventEmitter<PanelExpandChangeEvent>();\n\n    /** @hidden */\n    @ContentChild(PanelContentComponent)\n    _panelContentComponent: Nullable<PanelContentComponent>;\n\n    /** @hidden */\n    @ViewChild(PanelTitleDirective)\n    _panelTitleDirective: Nullable<PanelTitleDirective>;\n\n    /**\n     * @hidden\n     * Button label based on the current state\n     */\n    _expandAriaLabel: string;\n\n    /** @hidden id of the title element */\n    _titleId: string = 'fdp-panel-title-' + platformPanelTitleUniqueId++;\n\n    /** @hidden */\n    constructor(\n        protected _panelConfig: PanelConfig,\n        readonly contentDensityObserver: ContentDensityObserver\n    ) {\n        super();\n        this.expandLabel = this._panelConfig.expandLabel;\n        this.collapseLabel = this._panelConfig.collapseLabel;\n    }\n\n    /** @hidden */\n    ngOnInit(): void {\n        this._calculateExpandAriaLabel();\n    }\n\n    /** @hidden */\n    ngOnChanges(changes: SimpleChanges): void {\n        if (changes.expanded) {\n            this._calculateExpandAriaLabel();\n        }\n    }\n\n    /** Handles expanded/collapsed event */\n    onExpandedChange(expanded: boolean): void {\n        this.expanded = expanded;\n        const event = new PanelExpandChangeEvent(this, expanded);\n        this.panelExpandChange.emit(event);\n        this._calculateExpandAriaLabel();\n    }\n\n    /**\n     * @hidden\n     * Calculate expandAriaLabel based on panel state\n     */\n    private _calculateExpandAriaLabel(): void {\n        this._expandAriaLabel = this.expanded ? this.collapseLabel : this.expandLabel;\n    }\n}\n","<fd-panel\n    [fdContentDensity]=\"contentDensityObserver.value\"\n    [expanded]=\"expanded\"\n    [fixed]=\"!expandable\"\n    [expandAriaLabel]=\"_expandAriaLabel\"\n    [expandAriaLabelledBy]=\"_titleId\"\n    [attr.aria-disabled]=\"disabled\"\n    (expandedChange)=\"onExpandedChange($event)\"\n>\n    <h5 [id]=\"_titleId\" fd-panel-title>{{ title }}</h5>\n\n    <ng-content select=\"fdp-panel-actions\"></ng-content>\n\n    <div\n        fd-panel-content\n        [id]=\"_panelContentComponent?.id\"\n        [height]=\"_panelContentComponent?.contentHeight || null\"\n        [ariaLabelledBy]=\"_panelTitleDirective?.id() || null\"\n    >\n        <ng-content select=\"fdp-panel-content\"></ng-content>\n    </div>\n</fd-panel>\n","import { NgModule } from '@angular/core';\n\nimport { ContentDensityModule } from '@fundamental-ngx/core/content-density';\n\nimport { PanelActionsComponent } from './panel-actions.component';\nimport { PanelContentComponent } from './panel-content/panel-content.component';\nimport { PanelComponent } from './panel.component';\n\nconst components = [PanelComponent, PanelContentComponent, PanelActionsComponent, ContentDensityModule];\n\n/**\n * @deprecated\n * Use direct imports of components and directives.\n */\n@NgModule({\n    imports: [...components],\n    exports: [...components]\n})\nexport class PlatformPanelModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1.PanelConfig","CorePanelComponent"],"mappings":"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"}