UNPKG

ng2-bootstrap

Version:
66 lines (64 loc) 3.14 kB
import { Component, HostBinding, Inject, Input } from '@angular/core'; import { isBs3 } from '../utils/ng2-bootstrap-config'; import { AccordionComponent } from './accordion.component'; /* * ### Accordion heading Instead of using `heading` attribute on the `accordion-group`, you can use an `accordion-heading` attribute on `any` element inside of a group that will be used as group's header template. * */ export var AccordionPanelComponent = (function () { function AccordionPanelComponent(accordion) { this.accordion = accordion; } Object.defineProperty(AccordionPanelComponent.prototype, "isOpen", { // Questionable, maybe .panel-open should be on child div.panel element? /** Is accordion group open or closed */ get: function () { return this._isOpen; }, set: function (value) { this._isOpen = value; if (value) { this.accordion.closeOtherPanels(this); } }, enumerable: true, configurable: true }); Object.defineProperty(AccordionPanelComponent.prototype, "isBs3", { get: function () { return isBs3(); }, enumerable: true, configurable: true }); AccordionPanelComponent.prototype.ngOnInit = function () { this.panelClass = this.panelClass || 'panel-default'; this.accordion.addGroup(this); }; AccordionPanelComponent.prototype.ngOnDestroy = function () { this.accordion.removeGroup(this); }; AccordionPanelComponent.prototype.toggleOpen = function (event) { if (!this.isDisabled) { this.isOpen = !this.isOpen; } }; AccordionPanelComponent.decorators = [ { type: Component, args: [{ selector: 'accordion-group, accordion-panel', template: "\n<div class=\"panel card\" [ngClass]=\"panelClass\">\n <div class=\"panel-heading card-header\" role=\"tab\" (click)=\"toggleOpen($event)\">\n <div class=\"panel-title card-title\">\n <div role=\"button\" class=\"accordion-toggle\" [attr.aria-expanded]=\"isOpen\">\n <div *ngIf=\"heading\"[ngClass]=\"{'text-muted': isDisabled}\">{{heading}}</div>\n <ng-content select=\"[accordion-heading]\"></ng-content>\n </div>\n </div>\n </div>\n <div class=\"panel-collapse collapse\" role=\"tabpanel\" [collapse]=\"!isOpen\">\n <div class=\"panel-body card-block\">\n <ng-content></ng-content>\n </div>\n </div>\n</div>\n " },] }, ]; /** @nocollapse */ AccordionPanelComponent.ctorParameters = function () { return [ { type: AccordionComponent, decorators: [{ type: Inject, args: [AccordionComponent,] },] }, ]; }; AccordionPanelComponent.propDecorators = { 'heading': [{ type: Input },], 'panelClass': [{ type: Input },], 'isDisabled': [{ type: Input },], 'isOpen': [{ type: HostBinding, args: ['class.panel-open',] }, { type: Input },], }; return AccordionPanelComponent; }()); //# sourceMappingURL=accordion-group.component.js.map