UNPKG

@period-year-norway/ngx-bootstrap

Version:
1 lines 11.6 kB
{"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":";;;;;;;;AAEA;;AAEG;MAIU,eAAe,CAAA;AAH5B,IAAA,WAAA,GAAA;;QAKE,IAAW,CAAA,WAAA,GAAG,KAAK;;QAEnB,IAAU,CAAA,UAAA,GAAG,KAAK;AACnB;8GALY,eAAe,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAAf,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,eAAe,cAFd,MAAM,EAAA,CAAA,CAAA;;2FAEP,eAAe,EAAA,UAAA,EAAA,CAAA;kBAH3B,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE;AACb,iBAAA;;;ACHD;MAYa,kBAAkB,CAAA;AAQ7B,IAAA,WAAA,CAAY,MAAuB,EAAA;;QAN1B,IAAU,CAAA,UAAA,GAAG,KAAK;;QAElB,IAAW,CAAA,WAAA,GAAG,KAAK;QAElB,IAAM,CAAA,MAAA,GAA8B,EAAE;AAG9C,QAAA,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC;;AAG7B,IAAA,gBAAgB,CAAC,SAAkC,EAAA;AACjD,QAAA,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE;YACrB;;QAGF,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,KAA8B,KAAI;AACrD,YAAA,IAAI,KAAK,KAAK,SAAS,EAAE;AACvB,gBAAA,KAAK,CAAC,MAAM,GAAG,KAAK;;AAExB,SAAC,CAAC;;AAGJ,IAAA,QAAQ,CAAC,KAA8B,EAAA;AACrC,QAAA,KAAK,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU;AAClC,QAAA,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC;;AAGzB,IAAA,WAAW,CAAC,KAA8B,EAAA;QACxC,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC;AACxC,QAAA,IAAI,KAAK,KAAK,CAAC,CAAC,EAAE;YAChB,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC;;;8GAhCrB,kBAAkB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAA,eAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAlB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,kBAAkB,kTATnB,CAA2B,yBAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,CAAA;;2FAS1B,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAX9B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,WAAW;AACrB,oBAAA,QAAQ,EAAE,CAA2B,yBAAA,CAAA;AACrC,oBAAA,IAAI,EAAE;AACJ,wBAAA,6BAA6B,EAAE,aAAa;AAC5C,wBAAA,IAAI,EAAE,SAAS;AACf,wBAAA,KAAK,EAAE,aAAa;AACpB,wBAAA,KAAK,EAAE;AACR,qBAAA;AACD,oBAAA,UAAU,EAAE;AACb,iBAAA;iFAGU,UAAU,EAAA,CAAA;sBAAlB;gBAEQ,WAAW,EAAA,CAAA;sBAAnB;;;AChBH;;;;;AAKG;MAWU,uBAAuB,CAAA;;;AAkBlC,IAAA,IAEI,MAAM,GAAA;QACR,OAAO,IAAI,CAAC,OAAO;;IAGrB,IAAI,MAAM,CAAC,KAAc,EAAA;AACvB,QAAA,IAAI,KAAK,KAAK,IAAI,CAAC,MAAM,EAAE;YACzB,IAAI,KAAK,EAAE;AACT,gBAAA,IAAI,CAAC,SAAS,CAAC,gBAAgB,CAAC,IAAI,CAAC;;AAEvC,YAAA,IAAI,CAAC,OAAO,GAAG,KAAK;YACpB,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,MAAK;AAC9B,gBAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC;AAC/B,aAAC,CAAC;;;AAIN,IAAA,IAAI,KAAK,GAAA;QACP,OAAO,KAAK,EAAE;;AAMhB,IAAA,WAAA,CAAwC,SAA6B,EAAA;;QAzCrE,IAAU,CAAA,UAAA,GAAG,KAAK;AAGlB;;;;AAIG;QACM,IAAU,CAAA,UAAA,GAAG,eAAe;;QAE5B,IAAU,CAAA,UAAA,GAAG,KAAK;;AAEjB,QAAA,IAAA,CAAA,YAAY,GAA0B,IAAI,YAAY,EAAE;QA0BxD,IAAO,CAAA,OAAA,GAAG,KAAK;AAIvB,QAAA,IAAI,CAAC,SAAS,GAAG,SAAS;;IAG5B,QAAQ,GAAA;AACN,QAAA,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC;;IAG/B,WAAW,GAAA;AACT,QAAA,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,IAAI,CAAC;;IAGlC,UAAU,GAAA;AACR,QAAA,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE;AACpB,YAAA,IAAI,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,MAAM;;;AAzDnB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,uBAAuB,kBA2Cd,kBAAkB,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AA3C3B,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,uBAAuB,sWCpBpC,i3BAsBA,EAAA,MAAA,EAAA,CAAA,wIAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,YAAA,EAAA,UAAA,CAAA,EAAA,OAAA,EAAA,CAAA,WAAA,EAAA,WAAA,EAAA,UAAA,EAAA,SAAA,CAAA,EAAA,QAAA,EAAA,CAAA,aAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;2FDFa,uBAAuB,EAAA,UAAA,EAAA,CAAA;kBAVnC,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,kCAAkC,EAEtC,IAAA,EAAA;AACJ,wBAAA,KAAK,EAAE,OAAO;AACd,wBAAA,KAAK,EAAE;AACR,qBAAA,EAAA,UAAA,EAEW,KAAK,EAAA,QAAA,EAAA,i3BAAA,EAAA,MAAA,EAAA,CAAA,wIAAA,CAAA,EAAA;;0BA6CJ,MAAM;2BAAC,kBAAkB;yCAvC7B,OAAO,EAAA,CAAA;sBAAf;gBAMQ,UAAU,EAAA,CAAA;sBAAlB;gBAEQ,UAAU,EAAA,CAAA;sBAAlB;gBAES,YAAY,EAAA,CAAA;sBAArB;gBAMG,MAAM,EAAA,CAAA;sBAFT,WAAW;uBAAC,kBAAkB;;sBAC9B;;;ME3BU,eAAe,CAAA;AAC1B,IAAA,OAAO,OAAO,GAAA;QACZ,OAAO,EAAE,QAAQ,EAAE,eAAe,EAAE,SAAS,EAAE,EAAE,EAAE;;8GAF1C,eAAe,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;+GAAf,eAAe,EAAA,YAAA,EAAA,CAHX,kBAAkB,EAAE,uBAAuB,CAAA,EAAA,OAAA,EAAA,CADhD,YAAY,EAAE,cAAc,CAAA,EAAA,OAAA,EAAA,CAE5B,kBAAkB,EAAE,uBAAuB,CAAA,EAAA,CAAA,CAAA;+GAE1C,eAAe,EAAA,OAAA,EAAA,CAJhB,YAAY,EAAE,cAAc,CAAA,EAAA,CAAA,CAAA;;2FAI3B,eAAe,EAAA,UAAA,EAAA,CAAA;kBAL3B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,OAAO,EAAE,CAAC,YAAY,EAAE,cAAc,CAAC;AACvC,oBAAA,YAAY,EAAE,CAAC,kBAAkB,EAAE,uBAAuB,CAAC;AAC3D,oBAAA,OAAO,EAAE,CAAC,kBAAkB,EAAE,uBAAuB;AACtD,iBAAA;;;ACXD;;AAEG;;;;"}