{"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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"}