UNPKG

angular2-collapsible

Version:

Angular collapsible component styled with Materialize CSS.

170 lines 13.6 kB
/** * @fileoverview added by tsickle * Generated from: lib/collapsible-body/collapsible-body.component.ts * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc */ import * as tslib_1 from "tslib"; import { Component, Input, ElementRef, HostBinding, Output, EventEmitter } from '@angular/core'; import { CollapsibleService } from '../services/collapsible.service'; import { CollapsibleEventService } from '../services/collapsible-event.service'; import { CollapsibleAnimationsService } from '../services/collapsible-animations.service'; var CollapsibleBodyComponent = /** @class */ (function () { function CollapsibleBodyComponent(el, collapsibleService, eventService) { this.el = el; this.collapsibleService = collapsibleService; this.eventService = eventService; this.toggleState = new EventEmitter(); } /** * @return {?} */ CollapsibleBodyComponent.prototype.ngOnInit = /** * @return {?} */ function () { var _this = this; this.eventService.toggleCollapsibleItem$.subscribe((/** * @return {?} */ function () { _this.toggleCollapsibleItem(); })); }; /** * @return {?} */ CollapsibleBodyComponent.prototype.hasContent = /** * @return {?} */ function () { var e_1, _a; try { for (var _b = tslib_1.__values(this.el.nativeElement.childNodes), _c = _b.next(); !_c.done; _c = _b.next()) { var child = _c.value; if (((/** @type {?} */ (child))).tagName != null) { return true; } } } catch (e_1_1) { e_1 = { error: e_1_1 }; } finally { try { if (_c && !_c.done && (_a = _b.return)) _a.call(_b); } finally { if (e_1) throw e_1.error; } } return false; }; /** * @return {?} */ CollapsibleBodyComponent.prototype.toggleCollapsibleItem = /** * @return {?} */ function () { // toggle body's state only if it has any childs if (this.hasContent()) { if (this.collapsibleService.getType() === 'accordion') { /** @type {?} */ var tempExpanded = this.expanded; this.collapsibleService.collapseAll(); this.expanded = tempExpanded; } this.expanded = !this.expanded; this.expandedState = this.expanded.toString(); // emit 'toggleState' event this.toggleState.emit(this.expanded); } }; /** * @param {?} changes * @return {?} */ CollapsibleBodyComponent.prototype.ngOnChanges = /** * @param {?} changes * @return {?} */ function (changes) { var e_2, _a; if (this.hasContent()) { try { for (var _b = tslib_1.__values(Object.keys(changes)), _c = _b.next(); !_c.done; _c = _b.next()) { var key = _c.value; if (key === 'expanded' && changes.expanded.currentValue != null) { // this.expanded = changes.expanded.currentValue; this.expandedState = this.expanded.toString(); } } } catch (e_2_1) { e_2 = { error: e_2_1 }; } finally { try { if (_c && !_c.done && (_a = _b.return)) _a.call(_b); } finally { if (e_2) throw e_2.error; } } } }; // Makes sure we don't have a memory leak by destroying the // Subscription when our component is destroyed // Makes sure we don't have a memory leak by destroying the // Subscription when our component is destroyed /** * @return {?} */ CollapsibleBodyComponent.prototype.ngOnDestroy = // Makes sure we don't have a memory leak by destroying the // Subscription when our component is destroyed /** * @return {?} */ function () { this.eventService.unsubscribe(); }; CollapsibleBodyComponent.decorators = [ { type: Component, args: [{ selector: 'collapsible-body', template: "<ng-content></ng-content>", animations: CollapsibleAnimationsService.collapsibleBodyAnimations('collapsibleBodyState'), styles: ["\n :host {\n display: block;\n border-bottom: 1px solid #ddd;\n box-sizing: border-box;\n padding: 2rem;\n }\n\n .side-nav :host {\n padding: 0;\n }\n\n .side-nav :host,\n .side-nav.fixed :host {\n border: 0;\n background-color: #fff;\n }\n "] }] } ]; /** @nocollapse */ CollapsibleBodyComponent.ctorParameters = function () { return [ { type: ElementRef }, { type: CollapsibleService }, { type: CollapsibleEventService } ]; }; CollapsibleBodyComponent.propDecorators = { expandedState: [{ type: HostBinding, args: ['@collapsibleBodyState',] }], expanded: [{ type: Input }], toggleState: [{ type: Output }] }; return CollapsibleBodyComponent; }()); export { CollapsibleBodyComponent }; if (false) { /** @type {?} */ CollapsibleBodyComponent.prototype.expandedState; /** @type {?} */ CollapsibleBodyComponent.prototype.expanded; /** @type {?} */ CollapsibleBodyComponent.prototype.toggleState; /** * @type {?} * @private */ CollapsibleBodyComponent.prototype.el; /** * @type {?} * @private */ CollapsibleBodyComponent.prototype.collapsibleService; /** * @type {?} * @private */ CollapsibleBodyComponent.prototype.eventService; } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sbGFwc2libGUtYm9keS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9hbmd1bGFyMi1jb2xsYXBzaWJsZS8iLCJzb3VyY2VzIjpbImxpYi9jb2xsYXBzaWJsZS1ib2R5L2NvbGxhcHNpYmxlLWJvZHkuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLE9BQU8sRUFDSCxTQUFTLEVBRVQsS0FBSyxFQUFFLFVBQVUsRUFBRSxXQUFXLEVBQzlCLE1BQU0sRUFBRSxZQUFZLEVBQ3ZCLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ3JFLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBQ2hGLE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxNQUFNLDRDQUE0QyxDQUFDO0FBRTFGO0lBK0JJLGtDQUNZLEVBQWMsRUFDZCxrQkFBc0MsRUFDdEMsWUFBcUM7UUFGckMsT0FBRSxHQUFGLEVBQUUsQ0FBWTtRQUNkLHVCQUFrQixHQUFsQixrQkFBa0IsQ0FBb0I7UUFDdEMsaUJBQVksR0FBWixZQUFZLENBQXlCO1FBTHZDLGdCQUFXLEdBQUcsSUFBSSxZQUFZLEVBQVcsQ0FBQztJQUtDLENBQUM7Ozs7SUFFdEQsMkNBQVE7OztJQUFSO1FBQUEsaUJBSUM7UUFIRyxJQUFJLENBQUMsWUFBWSxDQUFDLHNCQUFzQixDQUFDLFNBQVM7OztRQUFDO1lBQy9DLEtBQUksQ0FBQyxxQkFBcUIsRUFBRSxDQUFDO1FBQ2pDLENBQUMsRUFBQyxDQUFDO0lBQ1AsQ0FBQzs7OztJQUVELDZDQUFVOzs7SUFBVjs7O1lBQ0ksS0FBb0IsSUFBQSxLQUFBLGlCQUFBLElBQUksQ0FBQyxFQUFFLENBQUMsYUFBYSxDQUFDLFVBQVUsQ0FBQSxnQkFBQSw0QkFBRTtnQkFBakQsSUFBTSxLQUFLLFdBQUE7Z0JBQ1osSUFBSSxDQUFDLG1CQUFTLEtBQUssRUFBQSxDQUFDLENBQUMsT0FBTyxJQUFJLElBQUksRUFBRTtvQkFDbEMsT0FBTyxJQUFJLENBQUM7aUJBQ2Y7YUFDSjs7Ozs7Ozs7O1FBQ0QsT0FBTyxLQUFLLENBQUM7SUFDakIsQ0FBQzs7OztJQUVELHdEQUFxQjs7O0lBQXJCO1FBQ0ksZ0RBQWdEO1FBQ2hELElBQUksSUFBSSxDQUFDLFVBQVUsRUFBRSxFQUFFO1lBQ25CLElBQUksSUFBSSxDQUFDLGtCQUFrQixDQUFDLE9BQU8sRUFBRSxLQUFLLFdBQVcsRUFBRTs7b0JBQzdDLFlBQVksR0FBRyxJQUFJLENBQUMsUUFBUTtnQkFDbEMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLFdBQVcsRUFBRSxDQUFDO2dCQUN0QyxJQUFJLENBQUMsUUFBUSxHQUFHLFlBQVksQ0FBQzthQUNoQztZQUNELElBQUksQ0FBQyxRQUFRLEdBQUcsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDO1lBQy9CLElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUU5QywyQkFBMkI7WUFDM0IsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1NBQ3hDO0lBQ0wsQ0FBQzs7Ozs7SUFFRCw4Q0FBVzs7OztJQUFYLFVBQVksT0FBc0I7O1FBQzlCLElBQUksSUFBSSxDQUFDLFVBQVUsRUFBRSxFQUFFOztnQkFDbkIsS0FBa0IsSUFBQSxLQUFBLGlCQUFBLE1BQU0sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUEsZ0JBQUEsNEJBQUU7b0JBQW5DLElBQU0sR0FBRyxXQUFBO29CQUNWLElBQUksR0FBRyxLQUFLLFVBQVU7d0JBQ2xCLE9BQU8sQ0FBQyxRQUFRLENBQUMsWUFBWSxJQUFJLElBQUksRUFBRTt3QkFDdkMsaURBQWlEO3dCQUNqRCxJQUFJLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxFQUFFLENBQUM7cUJBQ2pEO2lCQUNKOzs7Ozs7Ozs7U0FDSjtJQUNMLENBQUM7SUFFRCwyREFBMkQ7SUFDM0QsK0NBQStDOzs7Ozs7SUFDL0MsOENBQVc7Ozs7OztJQUFYO1FBQ0ksSUFBSSxDQUFDLFlBQVksQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUNwQyxDQUFDOztnQkFuRkosU0FBUyxTQUFDO29CQUNQLFFBQVEsRUFBRSxrQkFBa0I7b0JBQzVCLFFBQVEsRUFBRSwyQkFBMkI7b0JBbUJyQyxVQUFVLEVBQUUsNEJBQTRCLENBQUMseUJBQXlCLENBQUMsc0JBQXNCLENBQUM7NkJBbEJqRixvWEFpQlI7aUJBRUo7Ozs7Z0JBOUJVLFVBQVU7Z0JBSVosa0JBQWtCO2dCQUNsQix1QkFBdUI7OztnQ0EyQjNCLFdBQVcsU0FBQyx1QkFBdUI7MkJBR25DLEtBQUs7OEJBRUwsTUFBTTs7SUF3RFgsK0JBQUM7Q0FBQSxBQXJGRCxJQXFGQztTQTlEWSx3QkFBd0I7OztJQUNqQyxpREFDc0I7O0lBRXRCLDRDQUEyQjs7SUFFM0IsK0NBQW9EOzs7OztJQUdoRCxzQ0FBc0I7Ozs7O0lBQ3RCLHNEQUE4Qzs7Ozs7SUFDOUMsZ0RBQTZDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICAgIENvbXBvbmVudCxcclxuICAgIE9uSW5pdCwgT25EZXN0cm95LCBPbkNoYW5nZXMsIFNpbXBsZUNoYW5nZXMsXHJcbiAgICBJbnB1dCwgRWxlbWVudFJlZiwgSG9zdEJpbmRpbmcsXHJcbiAgICBPdXRwdXQsIEV2ZW50RW1pdHRlclxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5cclxuaW1wb3J0IHsgQ29sbGFwc2libGVTZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZXMvY29sbGFwc2libGUuc2VydmljZSc7XHJcbmltcG9ydCB7IENvbGxhcHNpYmxlRXZlbnRTZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZXMvY29sbGFwc2libGUtZXZlbnQuc2VydmljZSc7XHJcbmltcG9ydCB7IENvbGxhcHNpYmxlQW5pbWF0aW9uc1NlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlcy9jb2xsYXBzaWJsZS1hbmltYXRpb25zLnNlcnZpY2UnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgICBzZWxlY3RvcjogJ2NvbGxhcHNpYmxlLWJvZHknLFxyXG4gICAgdGVtcGxhdGU6IGA8bmctY29udGVudD48L25nLWNvbnRlbnQ+YCxcclxuICAgIHN0eWxlczogW2BcclxuICAgICAgICA6aG9zdCB7XHJcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2RkZDtcclxuICAgICAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcclxuICAgICAgICAgICAgcGFkZGluZzogMnJlbTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC5zaWRlLW5hdiA6aG9zdCB7XHJcbiAgICAgICAgICAgIHBhZGRpbmc6IDA7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAuc2lkZS1uYXYgOmhvc3QsXHJcbiAgICAgICAgLnNpZGUtbmF2LmZpeGVkIDpob3N0IHtcclxuICAgICAgICAgICAgYm9yZGVyOiAwO1xyXG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xyXG4gICAgICAgIH1cclxuICAgIGBdLFxyXG4gICAgYW5pbWF0aW9uczogQ29sbGFwc2libGVBbmltYXRpb25zU2VydmljZS5jb2xsYXBzaWJsZUJvZHlBbmltYXRpb25zKCdjb2xsYXBzaWJsZUJvZHlTdGF0ZScpXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBDb2xsYXBzaWJsZUJvZHlDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uQ2hhbmdlcywgT25EZXN0cm95IHtcclxuICAgIEBIb3N0QmluZGluZygnQGNvbGxhcHNpYmxlQm9keVN0YXRlJylcclxuICAgIGV4cGFuZGVkU3RhdGU6IHN0cmluZztcclxuXHJcbiAgICBASW5wdXQoKSBleHBhbmRlZDogYm9vbGVhbjtcclxuXHJcbiAgICBAT3V0cHV0KCkgdG9nZ2xlU3RhdGUgPSBuZXcgRXZlbnRFbWl0dGVyPGJvb2xlYW4+KCk7XHJcblxyXG4gICAgY29uc3RydWN0b3IoXHJcbiAgICAgICAgcHJpdmF0ZSBlbDogRWxlbWVudFJlZixcclxuICAgICAgICBwcml2YXRlIGNvbGxhcHNpYmxlU2VydmljZTogQ29sbGFwc2libGVTZXJ2aWNlLFxyXG4gICAgICAgIHByaXZhdGUgZXZlbnRTZXJ2aWNlOiBDb2xsYXBzaWJsZUV2ZW50U2VydmljZSkgeyB9XHJcblxyXG4gICAgbmdPbkluaXQoKSB7XHJcbiAgICAgICAgdGhpcy5ldmVudFNlcnZpY2UudG9nZ2xlQ29sbGFwc2libGVJdGVtJC5zdWJzY3JpYmUoKCkgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLnRvZ2dsZUNvbGxhcHNpYmxlSXRlbSgpO1xyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIGhhc0NvbnRlbnQoKTogYm9vbGVhbiB7XHJcbiAgICAgICAgZm9yIChjb25zdCBjaGlsZCBvZiB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQuY2hpbGROb2Rlcykge1xyXG4gICAgICAgICAgICBpZiAoKDxFbGVtZW50PmNoaWxkKS50YWdOYW1lICE9IG51bGwpIHtcclxuICAgICAgICAgICAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgIH1cclxuXHJcbiAgICB0b2dnbGVDb2xsYXBzaWJsZUl0ZW0oKSB7XHJcbiAgICAgICAgLy8gdG9nZ2xlIGJvZHkncyBzdGF0ZSBvbmx5IGlmIGl0IGhhcyBhbnkgY2hpbGRzXHJcbiAgICAgICAgaWYgKHRoaXMuaGFzQ29udGVudCgpKSB7XHJcbiAgICAgICAgICAgIGlmICh0aGlzLmNvbGxhcHNpYmxlU2VydmljZS5nZXRUeXBlKCkgPT09ICdhY2NvcmRpb24nKSB7XHJcbiAgICAgICAgICAgICAgICBjb25zdCB0ZW1wRXhwYW5kZWQgPSB0aGlzLmV4cGFuZGVkO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5jb2xsYXBzaWJsZVNlcnZpY2UuY29sbGFwc2VBbGwoKTtcclxuICAgICAgICAgICAgICAgIHRoaXMuZXhwYW5kZWQgPSB0ZW1wRXhwYW5kZWQ7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgdGhpcy5leHBhbmRlZCA9ICF0aGlzLmV4cGFuZGVkO1xyXG4gICAgICAgICAgICB0aGlzLmV4cGFuZGVkU3RhdGUgPSB0aGlzLmV4cGFuZGVkLnRvU3RyaW5nKCk7XHJcblxyXG4gICAgICAgICAgICAvLyBlbWl0ICd0b2dnbGVTdGF0ZScgZXZlbnRcclxuICAgICAgICAgICAgdGhpcy50b2dnbGVTdGF0ZS5lbWl0KHRoaXMuZXhwYW5kZWQpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKSB7XHJcbiAgICAgICAgaWYgKHRoaXMuaGFzQ29udGVudCgpKSB7XHJcbiAgICAgICAgICAgIGZvciAoY29uc3Qga2V5IG9mIE9iamVjdC5rZXlzKGNoYW5nZXMpKSB7XHJcbiAgICAgICAgICAgICAgICBpZiAoa2V5ID09PSAnZXhwYW5kZWQnICYmXHJcbiAgICAgICAgICAgICAgICAgICAgY2hhbmdlcy5leHBhbmRlZC5jdXJyZW50VmFsdWUgIT0gbnVsbCkge1xyXG4gICAgICAgICAgICAgICAgICAgIC8vIHRoaXMuZXhwYW5kZWQgPSBjaGFuZ2VzLmV4cGFuZGVkLmN1cnJlbnRWYWx1ZTtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmV4cGFuZGVkU3RhdGUgPSB0aGlzLmV4cGFuZGVkLnRvU3RyaW5nKCk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLy8gTWFrZXMgc3VyZSB3ZSBkb24ndCBoYXZlIGEgbWVtb3J5IGxlYWsgYnkgZGVzdHJveWluZyB0aGVcclxuICAgIC8vIFN1YnNjcmlwdGlvbiB3aGVuIG91ciBjb21wb25lbnQgaXMgZGVzdHJveWVkXHJcbiAgICBuZ09uRGVzdHJveSgpIHtcclxuICAgICAgICB0aGlzLmV2ZW50U2VydmljZS51bnN1YnNjcmliZSgpO1xyXG4gICAgfVxyXG5cclxufVxyXG4iXX0=