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