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 38.9 kB
{"version":3,"file":"primeng-accordion.mjs","sources":["../../src/accordion/style/accordionstyle.ts","../../src/accordion/accordion.ts","../../src/accordion/primeng-accordion.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\nimport { style } from '@primeuix/styles/accordion';\nimport { BaseStyle } from 'primeng/base';\n\nconst theme = /*css*/ `\n ${style}\n\n /*For PrimeNG*/\n .p-accordionpanel:not(.p-accordionpanel-active) > .p-accordioncontent,\n .p-accordioncontent-content.ng-animating {\n overflow: hidden;\n }\n\n .p-accordionheader-toggle-icon.icon-start {\n order: -1;\n }\n\n .p-accordionheader:has(.p-accordionheader-toggle-icon.icon-start) {\n justify-content: flex-start;\n gap: dt('accordion.header.padding');\n }\n\n .p-accordioncontent.ng-animating {\n overflow: hidden;\n }\n`;\n\nconst classes = {\n root: 'p-accordion p-component',\n panel: ({ instance }) => [\n 'p-accordionpanel',\n {\n 'p-accordionpanel-active': instance.active(),\n 'p-disabled': instance.disabled()\n }\n ],\n header: 'p-accordionheader',\n toggleicon: 'p-accordionheader-toggle-icon',\n contentContainer: 'p-accordioncontent',\n content: 'p-accordioncontent-content'\n};\n\n@Injectable()\nexport class AccordionStyle extends BaseStyle {\n name = 'accordion';\n\n theme = theme;\n\n classes = classes;\n}\n\n/**\n *\n * Accordion groups a collection of contents in tabs.\n *\n * [Live Demo](https://www.primeng.org/accordion/)\n *\n * @module accordionstyle\n *\n */\nexport enum AccordionClasses {\n /**\n * Class name of the root element\n */\n root = 'p-accordion',\n /**\n * Class name of the content wrapper\n */\n contentwrapper = 'p-accordioncontent',\n /**\n * Class name of the content\n */\n content = 'p-accordioncontent-content',\n /**\n * Class name of the header\n */\n header = 'p-accordionheader',\n /**\n * Class name of the toggle icon\n */\n toggleicon = 'p-accordionheader-toggle-icon',\n /**\n * Class name of the panel\n */\n panel = 'p-accordionpanel'\n}\n\nexport interface AccordionStyle extends BaseStyle {}\n","import { animate, state, style, transition, trigger } from '@angular/animations';\nimport { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, computed, ContentChild, EventEmitter, forwardRef, HostListener, inject, Input, input, InputSignalWithTransform, model, NgModule, Output, signal, TemplateRef, ViewEncapsulation } from '@angular/core';\nimport { findSingle, focus, getAttribute, uuid } from '@primeuix/utils';\nimport { BlockableUI, SharedModule } from 'primeng/api';\nimport { BaseComponent } from 'primeng/basecomponent';\nimport { ChevronDownIcon, ChevronUpIcon } from 'primeng/icons';\nimport { Ripple } from 'primeng/ripple';\nimport { transformToBoolean } from 'primeng/utils';\nimport { AccordionStyle } from './style/accordionstyle';\n\n/**\n * Custom tab open event.\n * @see {@link onOpen}\n * @group Interface\n */\nexport interface AccordionTabOpenEvent {\n /**\n * Browser event.\n */\n originalEvent: Event;\n /**\n * Opened tab index.\n */\n index: number;\n}\n\n/**\n * Custom tab close event.\n * @see {@link onClose}\n * @extends {AccordionTabOpenEvent}\n * @group Interface\n */\nexport interface AccordionTabCloseEvent extends AccordionTabOpenEvent {}\n\n/**\n * Toggle icon template context.\n * @group Interface\n */\nexport interface AccordionToggleIconTemplateContext {\n /**\n * Represents the active status of the panel.\n */\n active: boolean;\n}\n\n/**\n * AccordionPanel is a helper component for Accordion component.\n * @group Components\n */\n@Component({\n selector: 'p-accordion-panel, p-accordionpanel',\n imports: [CommonModule],\n standalone: true,\n template: `<ng-content />`,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n '[class]': 'cx(\"panel\")',\n '[attr.data-pc-name]': '\"accordionpanel\"',\n '[attr.data-p-disabled]': 'disabled()',\n '[attr.data-p-active]': 'active()'\n },\n providers: [AccordionStyle]\n})\nexport class AccordionPanel extends BaseComponent {\n pcAccordion = inject(forwardRef(() => Accordion));\n /**\n * Value of the active tab.\n * @defaultValue undefined\n * @group Props\n */\n value = model<undefined | null | string | number | string[] | number[]>(undefined);\n /**\n * Disables the tab when enabled.\n * @defaultValue false\n * @group Props\n */\n disabled: InputSignalWithTransform<any, boolean> = input(false, { transform: (v: any) => transformToBoolean(v) });\n\n active = computed(() => (this.pcAccordion.multiple() ? this.valueEquals(this.pcAccordion.value(), this.value()) : this.pcAccordion.value() === this.value()));\n\n valueEquals(currentValue: any, value: any): boolean {\n if (Array.isArray(currentValue)) {\n return currentValue.includes(value);\n }\n return currentValue === value;\n }\n\n _componentStyle = inject(AccordionStyle);\n}\n/**\n * AccordionHeader is a helper component for Accordion component.\n * @group Components\n */\n@Component({\n selector: 'p-accordion-header, p-accordionheader',\n imports: [CommonModule, ChevronDownIcon, ChevronUpIcon],\n standalone: true,\n template: `\n <ng-content />\n @if (toggleicon) {\n <ng-template *ngTemplateOutlet=\"toggleicon; context: { active: active() }\"></ng-template>\n } @else {\n <ng-container *ngIf=\"active()\">\n <span *ngIf=\"pcAccordion.collapseIcon\" [class]=\"pcAccordion.collapseIcon\" [ngClass]=\"pcAccordion.iconClass\" [attr.aria-hidden]=\"true\"></span>\n <svg data-p-icon=\"chevron-up\" *ngIf=\"!pcAccordion.collapseIcon\" [class]=\"pcAccordion.iconClass\" [attr.aria-hidden]=\"true\" />\n </ng-container>\n <ng-container *ngIf=\"!active()\">\n <span *ngIf=\"pcAccordion.expandIcon\" [class]=\"pcAccordion.expandIcon\" [ngClass]=\"pcAccordion.iconClass\" [attr.aria-hidden]=\"true\"></span>\n <svg data-p-icon=\"chevron-down\" *ngIf=\"!pcAccordion.expandIcon\" [class]=\"pcAccordion.iconClass\" [attr.aria-hidden]=\"true\" />\n </ng-container>\n }\n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n '[class]': \"cx('header')\",\n '[attr.id]': 'id()',\n '[attr.aria-expanded]': 'active()',\n '[attr.aria-controls]': 'ariaControls()',\n '[attr.aria-disabled]': 'disabled()',\n '[attr.role]': '\"button\"',\n '[attr.tabindex]': 'disabled()?\"-1\":\"0\"',\n '[attr.data-p-active]': 'active()',\n '[attr.data-p-disabled]': 'disabled()',\n '[attr.data-pc-name]': '\"accordionheader\"',\n '[style.user-select]': '\"none\"'\n },\n hostDirectives: [Ripple],\n providers: [AccordionStyle]\n})\nexport class AccordionHeader extends BaseComponent {\n pcAccordion = inject(forwardRef(() => Accordion));\n\n pcAccordionPanel = inject(forwardRef(() => AccordionPanel));\n\n id = computed(() => `${this.pcAccordion.id()}_accordionheader_${this.pcAccordionPanel.value()}`);\n\n active = computed(() => this.pcAccordionPanel.active());\n\n disabled = computed(() => this.pcAccordionPanel.disabled());\n\n ariaControls = computed(() => `${this.pcAccordion.id()}_accordioncontent_${this.pcAccordionPanel.value()}`);\n /**\n * Toggle icon template.\n * @type {TemplateRef<AccordionToggleIconTemplateContext>} context - Context of the template\n * @example\n * ```html\n * <ng-template #toggleicon let-active=\"active\"> </ng-template>\n * ```\n * @see {@link AccordionToggleIconTemplateContext}\n * @group Templates\n */\n @ContentChild('toggleicon') toggleicon: TemplateRef<AccordionToggleIconTemplateContext> | undefined;\n\n @HostListener('click', ['$event']) onClick(event?: MouseEvent | KeyboardEvent) {\n const wasActive = this.active();\n\n this.changeActiveValue();\n\n const isActive = this.active();\n const index = this.pcAccordionPanel.value();\n\n if (!wasActive && isActive) {\n this.pcAccordion.onOpen.emit({ originalEvent: event, index });\n } else if (wasActive && !isActive) {\n this.pcAccordion.onClose.emit({ originalEvent: event, index });\n }\n }\n\n @HostListener('focus', ['$event']) onFocus() {\n this.pcAccordion.selectOnFocus() && this.changeActiveValue();\n }\n\n @HostListener('keydown', ['$event']) onKeydown(event: KeyboardEvent) {\n switch (event.code) {\n case 'ArrowDown':\n this.arrowDownKey(event);\n break;\n case 'ArrowUp':\n this.arrowUpKey(event);\n break;\n case 'Home':\n this.onHomeKey(event);\n break;\n case 'End':\n this.onEndKey(event);\n break;\n case 'Enter':\n case 'Space':\n case 'NumpadEnter':\n this.onEnterKey(event);\n break;\n default:\n break;\n }\n }\n\n _componentStyle = inject(AccordionStyle);\n\n changeActiveValue() {\n this.pcAccordion.updateValue(this.pcAccordionPanel.value());\n }\n\n private findPanel(headerElement) {\n return headerElement?.closest('[data-pc-name=\"accordionpanel\"]');\n }\n\n private findHeader(panelElement) {\n return findSingle(panelElement, '[data-pc-name=\"accordionheader\"]');\n }\n\n private findNextPanel(panelElement, selfCheck = false) {\n const element = selfCheck ? panelElement : panelElement.nextElementSibling;\n\n return element ? (getAttribute(element, 'data-p-disabled') ? this.findNextPanel(element) : this.findHeader(element)) : null;\n }\n\n private findPrevPanel(panelElement, selfCheck = false) {\n const element = selfCheck ? panelElement : panelElement.previousElementSibling;\n\n return element ? (getAttribute(element, 'data-p-disabled') ? this.findPrevPanel(element) : this.findHeader(element)) : null;\n }\n\n private findFirstPanel() {\n return this.findNextPanel(this.pcAccordion.el.nativeElement.firstElementChild, true);\n }\n\n private findLastPanel() {\n return this.findPrevPanel(this.pcAccordion.el.nativeElement.lastElementChild, true);\n }\n\n private changeFocusedPanel(event, element) {\n focus(element);\n }\n\n private arrowDownKey(event: KeyboardEvent) {\n const nextPanel = this.findNextPanel(this.findPanel(event.currentTarget));\n nextPanel ? this.changeFocusedPanel(event, nextPanel) : this.onHomeKey(event);\n event.preventDefault();\n }\n\n private arrowUpKey(event: KeyboardEvent) {\n const prevPanel = this.findPrevPanel(this.findPanel(event.currentTarget));\n\n prevPanel ? this.changeFocusedPanel(event, prevPanel) : this.onEndKey(event);\n event.preventDefault();\n }\n\n private onHomeKey(event: KeyboardEvent) {\n const firstPanel = this.findFirstPanel();\n\n this.changeFocusedPanel(event, firstPanel);\n event.preventDefault();\n }\n\n private onEndKey(event: KeyboardEvent) {\n const lastPanel = this.findLastPanel();\n\n this.changeFocusedPanel(event, lastPanel);\n event.preventDefault();\n }\n\n private onEnterKey(event: KeyboardEvent) {\n this.changeActiveValue();\n event.preventDefault();\n }\n}\n\n@Component({\n selector: 'p-accordion-content, p-accordioncontent',\n imports: [CommonModule],\n standalone: true,\n template: `<div [class]=\"cx('content')\" [@content]=\"active() ? { value: 'visible', params: { transitionParams: pcAccordion.transitionOptions } } : { value: 'hidden', params: { transitionParams: pcAccordion.transitionOptions } }\">\n <ng-content />\n </div>`,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n '[class]': 'cx(\"contentContainer\")',\n '[attr.id]': 'id()',\n '[attr.role]': '\"region\"',\n '[attr.data-pc-name]': '\"accordioncontent\"',\n '[attr.data-p-active]': 'active()',\n '[attr.aria-labelledby]': 'ariaLabelledby()'\n },\n animations: [\n trigger('content', [\n state(\n 'hidden',\n style({\n height: '0',\n // To prevent memory leak, Angular issue. https://github.com/primefaces/primeng/issues/18546\n paddingBlock: '0',\n borderBlockWidth: '0',\n //\n visibility: 'hidden'\n })\n ),\n state(\n 'visible',\n style({\n height: '*'\n })\n ),\n transition('visible <=> hidden', [animate('{{transitionParams}}')]),\n transition('void => *', animate(0))\n ])\n ],\n providers: [AccordionStyle]\n})\nexport class AccordionContent extends BaseComponent {\n pcAccordion = inject(forwardRef(() => Accordion));\n\n pcAccordionPanel = inject(forwardRef(() => AccordionPanel));\n\n active = computed(() => this.pcAccordionPanel.active());\n\n ariaLabelledby = computed(() => `${this.pcAccordion.id()}_accordionheader_${this.pcAccordionPanel.value()}`);\n\n id = computed(() => `${this.pcAccordion.id()}_accordioncontent_${this.pcAccordionPanel.value()}`);\n\n _componentStyle = inject(AccordionStyle);\n}\n\n/**\n * Accordion groups a collection of contents in tabs.\n * @group Components\n */\n@Component({\n selector: 'p-accordion',\n standalone: true,\n imports: [CommonModule, SharedModule],\n template: ` <ng-content /> `,\n host: {\n '[class]': \"cn(cx('root'), styleClass)\"\n },\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [AccordionStyle]\n})\nexport class Accordion extends BaseComponent implements BlockableUI {\n /**\n * Value of the active tab.\n * @defaultValue undefined\n * @group Props\n */\n value = model<undefined | null | string | number | string[] | number[]>(undefined);\n /**\n * When enabled, multiple tabs can be activated at the same time.\n * @defaultValue false\n * @group Props\n */\n multiple = input(false, { transform: (v: any) => transformToBoolean(v) });\n /**\n * Class of the element.\n * @deprecated since v20.0.0, use `class` instead.\n * @group Props\n */\n @Input() styleClass: string | undefined;\n /**\n * Icon of a collapsed tab.\n * @group Props\n */\n @Input() expandIcon: string | undefined;\n /**\n * Icon of an expanded tab.\n * @group Props\n */\n @Input() collapseIcon: string | undefined;\n /**\n * When enabled, the focused tab is activated.\n * @defaultValue false\n * @group Props\n */\n selectOnFocus = input(false, { transform: (v: any) => transformToBoolean(v) });\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 /**\n * Callback to invoke when an active tab is collapsed by clicking on the header.\n * @param {AccordionTabCloseEvent} event - Custom tab close event.\n * @group Emits\n */\n @Output() onClose: EventEmitter<AccordionTabCloseEvent> = new EventEmitter();\n /**\n * Callback to invoke when a tab gets expanded.\n * @param {AccordionTabOpenEvent} event - Custom tab open event.\n * @group Emits\n */\n @Output() onOpen: EventEmitter<AccordionTabOpenEvent> = new EventEmitter();\n\n id = signal(uuid('pn_id_'));\n\n _componentStyle = inject(AccordionStyle);\n\n @HostListener('keydown', ['$event'])\n onKeydown(event) {\n switch (event.code) {\n case 'ArrowDown':\n this.onTabArrowDownKey(event);\n break;\n\n case 'ArrowUp':\n this.onTabArrowUpKey(event);\n break;\n\n case 'Home':\n if (!event.shiftKey) {\n this.onTabHomeKey(event);\n }\n break;\n\n case 'End':\n if (!event.shiftKey) {\n this.onTabEndKey(event);\n }\n break;\n }\n }\n\n onTabArrowDownKey(event) {\n const nextHeaderAction = this.findNextHeaderAction(event.target.parentElement);\n nextHeaderAction ? this.changeFocusedTab(nextHeaderAction) : this.onTabHomeKey(event);\n\n event.preventDefault();\n }\n\n onTabArrowUpKey(event) {\n const prevHeaderAction = this.findPrevHeaderAction(event.target.parentElement);\n prevHeaderAction ? this.changeFocusedTab(prevHeaderAction) : this.onTabEndKey(event);\n\n event.preventDefault();\n }\n\n onTabHomeKey(event) {\n const firstHeaderAction = this.findFirstHeaderAction();\n this.changeFocusedTab(firstHeaderAction);\n event.preventDefault();\n }\n\n changeFocusedTab(element) {\n if (element) {\n focus(element);\n }\n }\n\n findNextHeaderAction(tabElement, selfCheck = false) {\n const nextTabElement = selfCheck ? tabElement : tabElement.nextElementSibling;\n const headerElement = findSingle(nextTabElement, '[data-pc-section=\"accordionheader\"]');\n\n return headerElement ? (getAttribute(headerElement, 'data-p-disabled') ? this.findNextHeaderAction(headerElement.parentElement) : findSingle(headerElement.parentElement, '[data-pc-section=\"accordionheader\"]')) : null;\n }\n\n findPrevHeaderAction(tabElement, selfCheck = false) {\n const prevTabElement = selfCheck ? tabElement : tabElement.previousElementSibling;\n const headerElement = findSingle(prevTabElement, '[data-pc-section=\"accordionheader\"]');\n\n return headerElement ? (getAttribute(headerElement, 'data-p-disabled') ? this.findPrevHeaderAction(headerElement.parentElement) : findSingle(headerElement.parentElement, '[data-pc-section=\"accordionheader\"]')) : null;\n }\n\n findFirstHeaderAction() {\n const firstEl = this.el.nativeElement.firstElementChild;\n return this.findNextHeaderAction(firstEl, true);\n }\n\n findLastHeaderAction() {\n const lastEl = this.el.nativeElement.lastElementChild;\n return this.findPrevHeaderAction(lastEl, true);\n }\n\n onTabEndKey(event) {\n const lastHeaderAction = this.findLastHeaderAction();\n this.changeFocusedTab(lastHeaderAction);\n event.preventDefault();\n }\n\n getBlockableElement(): HTMLElement {\n return this.el.nativeElement.children[0];\n }\n\n updateValue(value: string | number) {\n const currentValue = this.value();\n if (this.multiple()) {\n const newValue = Array.isArray(currentValue) ? [...currentValue] : [];\n const index = newValue.indexOf(value);\n\n if (index !== -1) {\n newValue.splice(index, 1);\n } else {\n newValue.push(value);\n }\n\n this.value.set(newValue as typeof this.value extends (...args: any) => infer R ? R : never);\n } else {\n if (currentValue === value) {\n this.value.set(undefined);\n } else {\n this.value.set(value);\n }\n }\n }\n}\n\n@NgModule({\n imports: [Accordion, SharedModule, AccordionPanel, AccordionHeader, AccordionContent],\n exports: [Accordion, SharedModule, AccordionPanel, AccordionHeader, AccordionContent]\n})\nexport class AccordionModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["style"],"mappings":"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"}