UNPKG

7.8 kBSource Map (JSON)View Raw
1{"version":3,"sources":["../../../../src/accordion/accordion.config.ts","../../../../src/accordion/accordion.component.ts","../../../../src/accordion/accordion-group.component.ts","../../../../src/accordion/accordion.module.ts"],"names":["this","closeOthers","isAnimated","Injectable","args","providedIn","AccordionComponent","config","groups","Object","assign","prototype","closeOtherPanels","openGroup","forEach","group","isOpen","addGroup","push","removeGroup","index","indexOf","splice","Component","selector","template","host","role","class","style","AccordionConfig","Input","AccordionPanelComponent","accordion","panelClass","isDisabled","isOpenChange","EventEmitter","_isOpen","defineProperty","value","_this","Promise","resolve","then","emit","isBs3","ngOnInit","ngOnDestroy","toggleOpen","decorators","type","Inject","Output","HostBinding","AccordionModule","forRoot","ngModule","providers","NgModule","imports","CommonModule","CollapseModule","declarations","exports"],"mappings":"qkBAKA,WAKEA,KAAAC,aAAc,EAEdD,KAAAE,YAAa,kHAPdC,EAAAA,WAAUC,KAAA,CAAC,CACVC,WAAY,4BCkBZ,SAAAC,EAAYC,GANHP,KAAAE,YAAa,EAEbF,KAAAC,aAAc,EAEbD,KAAAQ,OAAoC,GAG5CC,OAAOC,OAAOV,KAAMO,UAGtBD,EAAAK,UAAAC,iBAAA,SAAiBC,GACVb,KAAKC,aAIVD,KAAKQ,OAAOM,SAAQ,SAACC,GACfA,IAAUF,IACZE,EAAMC,QAAS,OAKrBV,EAAAK,UAAAM,SAAA,SAASF,GACPA,EAAMb,WAAaF,KAAKE,WACxBF,KAAKQ,OAAOU,KAAKH,IAGnBT,EAAAK,UAAAQ,YAAA,SAAYJ,GACV,IAAMK,EAAQpB,KAAKQ,OAAOa,QAAQN,IACnB,IAAXK,GACFpB,KAAKQ,OAAOc,OAAOF,EAAO,6BA3C/BG,EAAAA,UAASnB,KAAA,CAAC,CACToB,SAAU,YACVC,SAAU,4BAEVC,KAAM,CACJ,8BAA+B,cAC/BC,KAAM,UACNC,MAAO,cACPC,MAAO,+DAXFC,yCAgBNC,EAAAA,2BAEAA,EAAAA,0BC8CD,SAAAC,EAAwCC,GA1CxCjC,KAAAE,YAAa,EAQJF,KAAAkC,WAAa,gBAEblC,KAAAmC,YAAa,EAEZnC,KAAAoC,aAAsC,IAAIC,EAAAA,aA2B1CrC,KAAAsC,SAAU,EAIlBtC,KAAKiC,UAAYA,SA3BnBxB,OAAA8B,eAEIP,EAAArB,UAAA,SAAM,KAFV,WAGE,OAAOX,KAAKsC,aAGd,SAAWE,GAAX,IAAAC,EAAAzC,KACMwC,IAAUxC,KAAKgB,SACbwB,GACFxC,KAAKiC,UAAUrB,iBAAiBZ,MAElCA,KAAKsC,QAAUE,EACfE,QAAQC,QAAQ,MACfC,MAAK,WACJH,EAAKL,aAAaS,KAAKL,wCAK7B/B,OAAA8B,eAAIP,EAAArB,UAAA,QAAK,KAAT,WACE,OAAOmC,EAAAA,yCAUTd,EAAArB,UAAAoC,SAAA,WACE/C,KAAKiC,UAAUhB,SAASjB,OAG1BgC,EAAArB,UAAAqC,YAAA,WACEhD,KAAKiC,UAAUd,YAAYnB,OAG7BgC,EAAArB,UAAAsC,WAAA,WACOjD,KAAKmC,aACRnC,KAAKgB,QAAUhB,KAAKgB,kCApEzBO,EAAAA,UAASnB,KAAA,CAAC,CACToB,SAAU,mCACVC,SAAA,oyBAEAC,KAAM,CACJE,MAAO,QACPC,MAAO,+MAdFvB,EAAkB4C,WAAA,CAAA,CAAAC,KA8DZC,EAAAA,OAAMhD,KAAA,CAACE,yCAxCnByB,EAAAA,0BAMAA,EAAAA,0BAEAA,EAAAA,4BAEAsB,EAAAA,uBAIAC,EAAAA,YAAWlD,KAAA,CAAC,qBAAkB,CAAA+C,KAC9BpB,EAAAA,0BC7BH,SAAAwB,YACSA,EAAAC,QAAP,WACE,MAAO,CAAEC,SAAUF,EAAiBG,UAAW,8BAPlDC,EAAAA,SAAQvD,KAAA,CAAC,CACRwD,QAAS,CAACC,EAAAA,aAAcC,EAAAA,gBACxBC,aAAc,CAACzD,EAAoB0B,GACnCgC,QAAS,CAAC1D,EAAoB0B","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"]}
\No newline at end of file