UNPKG

primeng

Version:

PrimeNG is an open source UI library for Angular featuring a rich set of 80+ components, a theme designer, various theme alternatives such as Material, Bootstrap, Tailwind, premium templates and professional support. In addition, it integrates with PrimeB

1 lines 27.3 kB
{"version":3,"file":"primeng-panel.mjs","sources":["../../src/panel/style/panelstyle.ts","../../src/panel/panel.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 theme = /*css*/ `\n ${style}\n\n /* For PrimeNG */\n .p-panel-collapsed > .p-panel-content-container,\n .p-panel-content-container.ng-animating {\n overflow: hidden;\n }\n`;\n\nconst classes = {\n root: ({ instance }) => [\n 'p-panel p-component',\n {\n 'p-panel-toggleable': instance.toggleable,\n 'p-panel-expanded': !instance.collapsed && instance.toggleable,\n 'p-panel-collapsed': instance.collapsed && instance.toggleable\n }\n ],\n icons: ({ instance }) => [\n 'p-panel-icons',\n {\n 'p-panel-icons-start': instance.iconPos === 'start',\n 'p-panel-icons-end': instance.iconPos === 'end',\n 'p-panel-icons-center': instance.iconPos === 'center'\n }\n ],\n header: 'p-panel-header',\n title: 'p-panel-title',\n headerActions: 'p-panel-header-actions',\n pcToggleButton: 'p-panel-toggle-button',\n contentContainer: 'p-panel-content-container',\n content: 'p-panel-content',\n footer: 'p-panel-footer'\n};\n@Injectable()\nexport class PanelStyle extends BaseStyle {\n name = 'panel';\n\n theme = theme;\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 element\n */\n content = 'p-panel-content',\n /**\n * Class name of the footer element\n */\n footer = 'p-panel-footer'\n}\n","import { animate, state, style, transition, trigger } from '@angular/animations';\nimport { CommonModule } from '@angular/common';\nimport { AfterContentInit, booleanAttribute, ChangeDetectionStrategy, Component, ContentChild, ContentChildren, ElementRef, EventEmitter, inject, Input, NgModule, Output, QueryList, TemplateRef, ViewChild, ViewEncapsulation } from '@angular/core';\nimport { uuid } from '@primeuix/utils';\nimport { BlockableUI, Footer, PrimeTemplate, SharedModule } from 'primeng/api';\nimport { BaseComponent } from 'primeng/basecomponent';\nimport { ButtonModule } from 'primeng/button';\nimport { MinusIcon, PlusIcon } from 'primeng/icons';\nimport { Nullable } from 'primeng/ts-helpers';\nimport { PanelStyle } from './style/panelstyle';\n\n/**\n * Custom panel toggle event, emits before panel toggle.\n * @see {@link onBeforeToggle}\n * @group Interface\n */\nexport interface PanelBeforeToggleEvent {\n /**\n * Browser event.\n */\n originalEvent: Event;\n /**\n * Collapsed state of the panel.\n */\n collapsed: boolean | undefined;\n}\n\n/**\n * Custom panel toggle event, emits after panel toggle.\n * @see {@link onAfterToggle}\n * @extends {PanelBeforeToggleEvent}\n * @group Interface\n */\nexport interface PanelAfterToggleEvent extends PanelBeforeToggleEvent {}\n\n/**\n * Toggle icon template context.\n * @param {boolean} $implicit - Collapsed state as a boolean, implicit value.\n * @group Interface\n */\nexport interface PanelHeaderIconsTemplateContext {\n /**\n * Collapsed state as a boolean, implicit value.\n */\n $implicit: boolean;\n}\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: [CommonModule, PlusIcon, MinusIcon, ButtonModule, SharedModule],\n template: `\n <div [class]=\"cx('header')\" *ngIf=\"showHeader\" (click)=\"onHeaderClick($event)\" [attr.id]=\"id + '-titlebar'\">\n <span [class]=\"cx('title')\" *ngIf=\"_header\" [attr.id]=\"id + '_header'\">{{ _header }}</span>\n <ng-content select=\"p-header\"></ng-content>\n <ng-container *ngTemplateOutlet=\"headerTemplate || _headerTemplate\"></ng-container>\n <div [class]=\"cx('icons')\">\n <ng-template *ngTemplateOutlet=\"iconTemplate || _iconTemplate\"></ng-template>\n <p-button\n *ngIf=\"toggleable\"\n [attr.id]=\"id + '_header'\"\n severity=\"secondary\"\n [text]=\"true\"\n [rounded]=\"true\"\n type=\"button\"\n role=\"button\"\n [styleClass]=\"cx('pcToggleButton')\"\n [attr.aria-label]=\"buttonAriaLabel\"\n [attr.aria-controls]=\"id + '_content'\"\n [attr.aria-expanded]=\"!collapsed\"\n (click)=\"onIconClick($event)\"\n (keydown)=\"onKeyDown($event)\"\n [buttonProps]=\"toggleButtonProps\"\n >\n <ng-template #icon>\n <ng-container *ngIf=\"!headerIconsTemplate && !_headerIconsTemplate && !toggleButtonProps?.icon\">\n <ng-container *ngIf=\"!collapsed\">\n <svg data-p-icon=\"minus\" />\n </ng-container>\n\n <ng-container *ngIf=\"collapsed\">\n <svg data-p-icon=\"plus\" />\n </ng-container>\n </ng-container>\n\n <ng-template *ngTemplateOutlet=\"headerIconsTemplate || _headerIconsTemplate; context: { $implicit: collapsed }\"></ng-template>\n </ng-template>\n </p-button>\n </div>\n </div>\n <div\n [class]=\"cx('contentContainer')\"\n [id]=\"id + '_content'\"\n role=\"region\"\n [attr.aria-labelledby]=\"id + '_header'\"\n [attr.aria-hidden]=\"collapsed\"\n [attr.tabindex]=\"collapsed ? '-1' : undefined\"\n [@panelContent]=\"\n collapsed\n ? {\n value: 'hidden',\n params: {\n transitionParams: animating ? transitionOptions : '0ms',\n height: '0',\n opacity: '0'\n }\n }\n : {\n value: 'visible',\n params: {\n transitionParams: animating ? transitionOptions : '0ms',\n height: '*',\n opacity: '1'\n }\n }\n \"\n (@panelContent.done)=\"onToggleDone($event)\"\n >\n <div [class]=\"cx('content')\" #contentWrapper>\n <ng-content></ng-content>\n <ng-container *ngTemplateOutlet=\"contentTemplate || _contentTemplate\"></ng-container>\n </div>\n\n <div [class]=\"cx('footer')\" *ngIf=\"footerFacet || footerTemplate || _footerTemplate\">\n <ng-content select=\"p-footer\"></ng-content>\n <ng-container *ngTemplateOutlet=\"footerTemplate || _footerTemplate\"></ng-container>\n </div>\n </div>\n `,\n animations: [\n trigger('panelContent', [\n state(\n 'hidden',\n style({\n height: '0'\n })\n ),\n state(\n 'void',\n style({\n height: '{{height}}'\n }),\n { params: { height: '0' } }\n ),\n state(\n 'visible',\n style({\n height: '*'\n })\n ),\n transition('visible <=> hidden', [animate('{{transitionParams}}')]),\n transition('void => hidden', animate('{{transitionParams}}')),\n transition('void => visible', animate('{{transitionParams}}'))\n ])\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n providers: [PanelStyle],\n host: {\n '[id]': 'id',\n 'data-pc-name': 'panel',\n '[class]': \"cn(cx('root'), styleClass)\"\n }\n})\nexport class Panel extends BaseComponent implements AfterContentInit, BlockableUI {\n /**\n * Defines if content of panel can be expanded and collapsed.\n * @group Props\n */\n @Input({ transform: booleanAttribute }) toggleable: boolean | undefined;\n /**\n * Header text of the panel.\n * @group Props\n */\n @Input('header') _header: string | undefined;\n /**\n * Defines the initial state of panel content, supports one or two-way binding as well.\n * @group Props\n */\n @Input({ transform: booleanAttribute }) collapsed: boolean | undefined;\n /**\n * Id of the component.\n */\n @Input() id: string | undefined = uuid('pn_id_');\n /**\n * Style class of the component.\n * @group Props\n * @deprecated since v20.0.0, use `class` instead.\n */\n @Input() styleClass: string | undefined;\n /**\n * Position of the icons.\n * @group Props\n */\n @Input() iconPos: 'start' | 'end' | 'center' = 'end';\n /**\n * Specifies if header of panel cannot be displayed.\n * @group Props\n */\n @Input({ transform: booleanAttribute }) showHeader: boolean = true;\n /**\n * Specifies the toggler element to toggle the panel content.\n * @group Props\n */\n @Input() toggler: 'icon' | 'header' = 'icon';\n /**\n * Transition options of the animation.\n * @group Props\n */\n @Input() transitionOptions: string = '400ms cubic-bezier(0.86, 0, 0.07, 1)';\n /**\n * Used to pass all properties of the ButtonProps to the Button component.\n * @group Props\n */\n @Input() toggleButtonProps: any;\n /**\n * Emitted when the collapsed changes.\n * @param {boolean} value - New Value.\n * @group Emits\n */\n @Output() collapsedChange: EventEmitter<boolean> = new EventEmitter<boolean>();\n /**\n * Callback to invoke before panel toggle.\n * @param {PanelBeforeToggleEvent} event - Custom panel toggle event\n * @group Emits\n */\n @Output() onBeforeToggle: EventEmitter<PanelBeforeToggleEvent> = new EventEmitter<PanelBeforeToggleEvent>();\n /**\n * Callback to invoke after panel toggle.\n * @param {PanelAfterToggleEvent} event - Custom panel toggle event\n * @group Emits\n */\n @Output() onAfterToggle: EventEmitter<PanelAfterToggleEvent> = new EventEmitter<PanelAfterToggleEvent>();\n\n @ContentChild(Footer) footerFacet: Nullable<TemplateRef<any>>;\n\n animating: Nullable<boolean>;\n /**\n * Defines template option for header.\n * @group Templates\n */\n @ContentChild('header', { descendants: false }) headerTemplate: TemplateRef<any> | undefined;\n /**\n * Defines template option for icon.\n * @example\n * ```html\n * <ng-template #icon> </ng-template>\n * ```\n * @group Templates\n */\n @ContentChild('icons', { descendants: false }) iconTemplate: TemplateRef<any> | undefined;\n\n /**\n * Defines template option for content.\n * @example\n * ```html\n * <ng-template #content> </ng-template>\n * ```\n * @group Templates\n */\n @ContentChild('content', { descendants: false }) contentTemplate: TemplateRef<any> | undefined;\n\n /**\n * Defines template option for footer.\n * @example\n * ```html\n * <ng-template #footer> </ng-template>\n * ```\n * @group Templates\n */\n @ContentChild('footer', { descendants: false }) footerTemplate: TemplateRef<any> | undefined;\n\n /**\n * Defines template option for headerIcon.\n * @type {TemplateRef<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 @ContentChild('headericons', { descendants: false }) headerIconsTemplate: TemplateRef<PanelHeaderIconsTemplateContext> | undefined;\n\n _headerTemplate: TemplateRef<any> | undefined;\n\n _iconTemplate: TemplateRef<any> | undefined;\n\n _contentTemplate: TemplateRef<any> | undefined;\n\n _footerTemplate: TemplateRef<any> | undefined;\n\n _headerIconsTemplate: TemplateRef<any> | undefined;\n\n @ViewChild('contentWrapper') contentWrapperViewChild: ElementRef;\n\n get buttonAriaLabel() {\n return this._header;\n }\n\n _componentStyle = inject(PanelStyle);\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 if (this.animating) {\n return false;\n }\n\n this.animating = true;\n this.onBeforeToggle.emit({ originalEvent: event, collapsed: this.collapsed });\n\n if (this.toggleable) {\n if (this.collapsed) this.expand();\n else this.collapse();\n }\n\n this.cd.markForCheck();\n event.preventDefault();\n }\n\n expand() {\n this.collapsed = false;\n this.collapsedChange.emit(this.collapsed);\n this.updateTabIndex();\n }\n\n collapse() {\n this.collapsed = true;\n this.collapsedChange.emit(this.collapsed);\n this.updateTabIndex();\n }\n\n getBlockableElement(): HTMLElement {\n return this.el.nativeElement;\n }\n\n updateTabIndex() {\n if (this.contentWrapperViewChild) {\n const focusableElements = this.contentWrapperViewChild.nativeElement.querySelectorAll('input, button, select, a, textarea, [tabindex]:not([tabindex=\"-1\"])');\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) {\n if (event.code === 'Enter' || event.code === 'Space') {\n this.toggle(event);\n event.preventDefault();\n }\n }\n\n onToggleDone(event: any) {\n this.animating = false;\n this.onAfterToggle.emit({ originalEvent: event, collapsed: this.collapsed });\n }\n\n @ContentChildren(PrimeTemplate) templates: QueryList<PrimeTemplate> | undefined;\n\n ngAfterContentInit() {\n (this.templates as QueryList<PrimeTemplate>).forEach((item) => {\n switch (item.getType()) {\n case 'header':\n this._headerTemplate = item.template;\n break;\n\n case 'content':\n this._contentTemplate = item.template;\n break;\n\n case 'footer':\n this._footerTemplate = item.template;\n break;\n\n case 'icons':\n this._iconTemplate = item.template;\n break;\n\n case 'headericons':\n this._headerIconsTemplate = item.template;\n break;\n\n default:\n this._contentTemplate = item.template;\n break;\n }\n });\n }\n}\n\n@NgModule({\n imports: [Panel, SharedModule],\n exports: [Panel, SharedModule]\n})\nexport class PanelModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["style"],"mappings":"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"}