UNPKG

ngx-bootstrap

Version:
1 lines 12.5 kB
{"version":3,"file":"ngx-bootstrap-accordion.mjs","sources":["../../../../src/accordion/accordion.config.ts","../../../../src/accordion/accordion.component.ts","../../../../src/accordion/accordion-group.component.ts","../../../../src/accordion/accordion-group.component.html","../../../../src/accordion/accordion.module.ts","../../../../src/accordion/ngx-bootstrap-accordion.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\n\n/**\n * Configuration service, provides default values for the AccordionComponent.\n */\n@Injectable({\n providedIn: 'root'\n})\nexport class AccordionConfig {\n /** Whether the other panels should be closed when a panel is opened */\n closeOthers = false;\n /** turn on/off animation */\n isAnimated = false;\n}\n","import { ChangeDetectionStrategy, Component, input } from '@angular/core';\nimport { AccordionPanelComponent } from './accordion-group.component';\nimport { AccordionConfig } from './accordion.config';\n\n/** Displays collapsible content panels for presenting information in a limited amount of space. */\n@Component({\n selector: 'accordion',\n changeDetection: ChangeDetectionStrategy.Eager,\n template: `<ng-content></ng-content>`,\n host: {\n '[attr.aria-multiselectable]': 'closeOthers()',\n role: 'tablist',\n class: 'panel-group',\n style: 'display: block'\n },\n standalone: true\n})\nexport class AccordionComponent {\n /** turn on/off animation */\n isAnimated = input<boolean>(this._config.isAnimated);\n /** if `true` expanding one item will close all others */\n closeOthers = input<boolean>(this._config.closeOthers);\n\n protected groups: AccordionPanelComponent[] = [];\n\n constructor(private _config: AccordionConfig) {\n }\n\n closeOtherPanels(openGroup: AccordionPanelComponent): void {\n if (!this.closeOthers()) {\n return;\n }\n\n this.groups.forEach((group: AccordionPanelComponent) => {\n if (group !== openGroup) {\n group.isOpen = false;\n }\n });\n }\n\n addGroup(group: AccordionPanelComponent): void {\n group.isAnimated = this.isAnimated();\n this.groups.push(group);\n }\n\n removeGroup(group: AccordionPanelComponent): void {\n const index = this.groups.indexOf(group);\n if (index !== -1) {\n this.groups.splice(index, 1);\n }\n }\n}\n","import {\n ChangeDetectionStrategy, Component, HostBinding, Inject, OnDestroy, OnInit, output, input, effect\n} from '@angular/core';\nimport { AccordionComponent } from './accordion.component';\nimport { CollapseModule } from 'ngx-bootstrap/collapse';\nimport { NgClass } from '@angular/common';\n\n/**\n * ### Accordion heading\n * Instead of using `heading` attribute on the `accordion-group`, you can use\n * an `accordion-heading` attribute on `any` element inside of a group that\n * will be used as group's header template.\n */\n@Component({\n selector: 'accordion-group, accordion-panel',\n changeDetection: ChangeDetectionStrategy.Eager,\n templateUrl: './accordion-group.component.html',\n host: {\n class: 'panel',\n style: 'display: block'\n },\n styleUrls: ['./accordion.scss'],\n standalone: true,\n imports: [NgClass, CollapseModule]\n})\nexport class AccordionPanelComponent implements OnInit, OnDestroy {\n /** turn on/off animation */\n isAnimated = false;\n /** Clickable text in accordion's group header, check `accordion heading` below for using html in header */\n heading = input<string>('');\n /** Provides an ability to use Bootstrap's contextual panel classes\n * (`panel-primary`, `panel-success`, `panel-info`, etc...).\n * List of all available classes [available here]\n * (https://getbootstrap.com/docs/3.3/components/#panels-alternatives)\n */\n panelClass = input<string>('panel-default');\n /** if <code>true</code> — disables accordion group */\n isDisabled = input<boolean>(false);\n /** Input to set initial open state */\n // eslint-disable-next-line @angular-eslint/no-input-rename\n isOpenInput = input<boolean>(false, { alias: 'isOpen' });\n /** Emits when the opened state changes */\n isOpenChange = output<boolean>();\n\n // Questionable, maybe .panel-open should be on child div.panel element?\n /** Is accordion group open or closed. This property supports two-way binding */\n @HostBinding('class.panel-open')\n get isOpen(): boolean {\n return this._isOpen;\n }\n\n set isOpen(value: boolean) {\n if (value !== this._isOpen) {\n if (value) {\n this.accordion.closeOtherPanels(this);\n }\n this._isOpen = value;\n Promise.resolve(null)\n .then(() => {\n this.isOpenChange.emit(value);\n });\n }\n }\n\n protected _isOpen = false;\n protected accordion: AccordionComponent;\n\n constructor(@Inject(AccordionComponent) accordion: AccordionComponent) {\n this.accordion = accordion;\n\n // Watch for isOpen input changes\n effect(() => {\n const isOpenValue = this.isOpenInput();\n if (isOpenValue !== this._isOpen) {\n this.isOpen = isOpenValue;\n }\n });\n }\n\n ngOnInit(): void {\n this.accordion.addGroup(this);\n }\n\n ngOnDestroy(): void {\n this.accordion.removeGroup(this);\n }\n\n toggleOpen(): void {\n if (!this.isDisabled()) {\n this.isOpen = !this.isOpen;\n }\n }\n}\n","<div class=\"panel card\" [ngClass]=\"panelClass()\">\n <div\n class=\"panel-heading card-header\"\n role=\"tab\"\n (click)=\"toggleOpen()\"\n [ngClass]=\"isDisabled() ? 'panel-disabled' : 'panel-enabled'\"\n >\n <div class=\"panel-title\">\n <div role=\"button\" class=\"accordion-toggle\" [attr.aria-expanded]=\"isOpen\">\n @if (heading()) {\n <button class=\"btn btn-link\" [ngClass]=\"{ 'text-muted': isDisabled() }\" type=\"button\">\n {{ heading() }}\n </button>\n }\n <ng-content select=\"[accordion-heading]\"></ng-content>\n </div>\n </div>\n </div>\n <div class=\"panel-collapse collapse\" role=\"tabpanel\" [collapse]=\"!isOpen\" [isAnimated]=\"isAnimated\">\n <div class=\"panel-body card-block card-body\">\n <ng-content></ng-content>\n </div>\n </div>\n</div>\n","import { NgModule } from '@angular/core';\n\nimport { AccordionComponent } from './accordion.component';\nimport { AccordionPanelComponent } from './accordion-group.component';\n\n@NgModule({\n imports: [AccordionComponent, AccordionPanelComponent],\n exports: [AccordionComponent, AccordionPanelComponent]\n})\nexport class AccordionModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1.AccordionConfig"],"mappings":"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"}