UNPKG

8.25 kBSource Map (JSON)View Raw
1{"version":3,"file":"ngx-bootstrap-accordion.umd.js","sources":["../../../../src/accordion/accordion.config.ts","../../../../src/accordion/accordion.component.ts","../../../../src/accordion/accordion-group.component.ts","../../../../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 { 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 template: `<ng-content></ng-content>`,\n // eslint-disable-next-line @angular-eslint/no-host-metadata-property\n host: {\n '[attr.aria-multiselectable]': 'closeOthers',\n role: 'tablist',\n class: 'panel-group',\n style: 'display: block'\n }\n})\nexport class AccordionComponent {\n /** turn on/off animation */\n @Input() isAnimated = false;\n /** if `true` expanding one item will close all others */\n @Input() closeOthers = false;\n\n protected groups: AccordionPanelComponent[] = [];\n\n constructor(config: AccordionConfig) {\n Object.assign(this, config);\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 Component, HostBinding, Inject, Input, OnDestroy, OnInit, Output, EventEmitter\n} from '@angular/core';\nimport { isBs3 } from 'ngx-bootstrap/utils';\nimport { AccordionComponent } from './accordion.component';\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 templateUrl: './accordion-group.component.html',\n // eslint-disable-next-line @angular-eslint/no-host-metadata-property\n host: {\n class: 'panel',\n style: 'display: block'\n },\n styleUrls: ['./accordion.scss']\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 @Input() heading!: 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 @Input() panelClass = 'panel-default';\n /** if <code>true</code> — disables accordion group */\n @Input() isDisabled = false;\n /** Emits when the opened state changes */\n @Output() isOpenChange: EventEmitter<boolean> = new EventEmitter();\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 @Input()\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 get isBs3(): boolean {\n return isBs3();\n }\n\n protected _isOpen = false;\n protected accordion: AccordionComponent;\n\n constructor(@Inject(AccordionComponent) accordion: AccordionComponent) {\n this.accordion = accordion;\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","import { CommonModule } from '@angular/common';\nimport { NgModule, ModuleWithProviders } from '@angular/core';\n\nimport { AccordionComponent } from './accordion.component';\nimport { AccordionPanelComponent } from './accordion-group.component';\nimport { CollapseModule } from 'ngx-bootstrap/collapse';\n\n@NgModule({\n imports: [CommonModule, CollapseModule],\n declarations: [AccordionComponent, AccordionPanelComponent],\n exports: [AccordionComponent, AccordionPanelComponent]\n})\nexport class AccordionModule {\n static forRoot(): ModuleWithProviders<AccordionModule> {\n return { ngModule: AccordionModule, providers: [] };\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["Injectable","Component","Input","EventEmitter","isBs3","Inject","Output","HostBinding","NgModule","CommonModule","CollapseModule"],"mappings":"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"}
\No newline at end of file