materialize-angular
Version:
Material UI Angular library
161 lines • 12.2 kB
JavaScript
/**
* @fileoverview added by tsickle
* Generated from: app/completed-components/collapsible/collapsible.component.ts
* @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
/**
* @license
* Copyright Workylab. All Rights Reserved.
*
* Use of this source code is governed by an MIT-style license that can be
* found in the LICENSE file at https://raw.githubusercontent.com/workylab/materialize-angular/master/LICENSE
*/
import { Component, ElementRef, EventEmitter, Input, Output, Renderer2, ViewChild } from '@angular/core';
import { config } from '../../config';
var CollapsibleComponent = /** @class */ (function () {
function CollapsibleComponent(renderer) {
this.renderer = renderer;
this.className = CollapsibleComponent.defaultProps.className;
this.disabled = CollapsibleComponent.defaultProps.disabled;
this.isOpen = CollapsibleComponent.defaultProps.isOpen;
this.showIndicator = CollapsibleComponent.defaultProps.showIndicator;
this.prefix = config.components.prefix;
this.onCloseEmitter = new EventEmitter();
this.onOpenEmitter = new EventEmitter();
this.onToggle = this.onToggle.bind(this);
this.update = this.update.bind(this);
window.addEventListener('resize', this.update);
}
/**
* @return {?}
*/
CollapsibleComponent.prototype.ngAfterContentInit = /**
* @return {?}
*/
function () {
var _this = this;
if (this.isOpen) {
setTimeout((/**
* @return {?}
*/
function () {
_this.update();
}), 300);
}
};
/**
* @return {?}
*/
CollapsibleComponent.prototype.ngOnChanges = /**
* @return {?}
*/
function () {
this.update();
};
/**
* @return {?}
*/
CollapsibleComponent.prototype.onToggle = /**
* @return {?}
*/
function () {
if (!this.disabled) {
if (this.isOpen) {
this.close();
this.onCloseEmitter.emit();
}
else {
this.open();
this.onOpenEmitter.emit();
}
}
};
/**
* @return {?}
*/
CollapsibleComponent.prototype.open = /**
* @return {?}
*/
function () {
this.isOpen = true;
this.update();
};
/**
* @return {?}
*/
CollapsibleComponent.prototype.close = /**
* @return {?}
*/
function () {
this.isOpen = false;
this.update();
};
/**
* @return {?}
*/
CollapsibleComponent.prototype.update = /**
* @return {?}
*/
function () {
/** @type {?} */
var contentContainer = this.containerRef.nativeElement;
/** @type {?} */
var maxHeight = this.isOpen
? contentContainer.scrollHeight
: 0;
this.renderer.setStyle(contentContainer, 'maxHeight', maxHeight + "px");
};
CollapsibleComponent.defaultProps = {
className: '',
disabled: false,
isOpen: false,
showIndicator: true
};
CollapsibleComponent.decorators = [
{ type: Component, args: [{
selector: config.components.prefix + "-collapsible }",
template: "<div\n [ngClass]=\"[prefix + '-collapsible', className]\"\n [class.disabled]=\"disabled\"\n [class.open]=\"isOpen\"\n>\n <div (click)=\"onToggle()\"\n [isRippleActive]=\"!disabled\"\n [ngClass]=\"[prefix + '-collapsible-title', className]\"\n\n materializeRipple\n >\n <ng-content select=\"materialize-collapsible-title\"></ng-content>\n\n <materialize-icon *ngIf=\"showIndicator\" [className]=\"prefix + '-collapsible-title-icon'\">\n expand_more\n </materialize-icon>\n </div>\n\n <div [ngClass]=\"[prefix + '-collapsible-content-container', className]\" #container>\n <div [ngClass]=\"prefix + '-collapsible-content'\">\n <ng-content select=\"materialize-collapsible-content\"></ng-content>\n </div>\n </div>\n</div>\n"
}] }
];
/** @nocollapse */
CollapsibleComponent.ctorParameters = function () { return [
{ type: Renderer2 }
]; };
CollapsibleComponent.propDecorators = {
onCloseEmitter: [{ type: Output, args: ['onClose',] }],
onOpenEmitter: [{ type: Output, args: ['onOpen',] }],
containerRef: [{ type: ViewChild, args: ['container', { static: true },] }],
className: [{ type: Input }],
disabled: [{ type: Input }],
isOpen: [{ type: Input }],
showIndicator: [{ type: Input }]
};
return CollapsibleComponent;
}());
export { CollapsibleComponent };
if (false) {
/** @type {?} */
CollapsibleComponent.defaultProps;
/** @type {?} */
CollapsibleComponent.prototype.onCloseEmitter;
/** @type {?} */
CollapsibleComponent.prototype.onOpenEmitter;
/** @type {?} */
CollapsibleComponent.prototype.containerRef;
/** @type {?} */
CollapsibleComponent.prototype.className;
/** @type {?} */
CollapsibleComponent.prototype.disabled;
/** @type {?} */
CollapsibleComponent.prototype.isOpen;
/** @type {?} */
CollapsibleComponent.prototype.showIndicator;
/** @type {?} */
CollapsibleComponent.prototype.prefix;
/**
* @type {?}
* @private
*/
CollapsibleComponent.prototype.renderer;
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sbGFwc2libGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vbWF0ZXJpYWxpemUtYW5ndWxhci8iLCJzb3VyY2VzIjpbImFwcC9jb21wbGV0ZWQtY29tcG9uZW50cy9jb2xsYXBzaWJsZS9jb2xsYXBzaWJsZS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0FBUUEsT0FBTyxFQUVMLFNBQVMsRUFDVCxVQUFVLEVBQ1YsWUFBWSxFQUNaLEtBQUssRUFFTCxNQUFNLEVBQ04sU0FBUyxFQUNULFNBQVMsRUFDVixNQUFNLGVBQWUsQ0FBQztBQUV2QixPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBRXRDO0lBd0JFLDhCQUFvQixRQUFtQjtRQUFuQixhQUFRLEdBQVIsUUFBUSxDQUFXO1FBUDlCLGNBQVMsR0FBVyxvQkFBb0IsQ0FBQyxZQUFZLENBQUMsU0FBUyxDQUFDO1FBQ2hFLGFBQVEsR0FBWSxvQkFBb0IsQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDO1FBQy9ELFdBQU0sR0FBWSxvQkFBb0IsQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDO1FBQzNELGtCQUFhLEdBQVksb0JBQW9CLENBQUMsWUFBWSxDQUFDLGFBQWEsQ0FBQztRQUUzRSxXQUFNLEdBQUcsTUFBTSxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUM7UUFHdkMsSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLFlBQVksRUFBVyxDQUFDO1FBQ2xELElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxZQUFZLEVBQVcsQ0FBQztRQUVqRCxJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3pDLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFFckMsTUFBTSxDQUFDLGdCQUFnQixDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDakQsQ0FBQzs7OztJQUVELGlEQUFrQjs7O0lBQWxCO1FBQUEsaUJBTUM7UUFMQyxJQUFJLElBQUksQ0FBQyxNQUFNLEVBQUU7WUFDZixVQUFVOzs7WUFBQztnQkFDVCxLQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDaEIsQ0FBQyxHQUFFLEdBQUcsQ0FBQyxDQUFDO1NBQ1Q7SUFDSCxDQUFDOzs7O0lBRUQsMENBQVc7OztJQUFYO1FBQ0UsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO0lBQ2hCLENBQUM7Ozs7SUFFRCx1Q0FBUTs7O0lBQVI7UUFDRSxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRTtZQUNsQixJQUFJLElBQUksQ0FBQyxNQUFNLEVBQUU7Z0JBQ2YsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO2dCQUNiLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxFQUFFLENBQUM7YUFDNUI7aUJBQU07Z0JBQ0wsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO2dCQUNaLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxFQUFFLENBQUM7YUFDM0I7U0FDRjtJQUNILENBQUM7Ozs7SUFFRCxtQ0FBSTs7O0lBQUo7UUFDRSxJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQztRQUNuQixJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7SUFDaEIsQ0FBQzs7OztJQUVELG9DQUFLOzs7SUFBTDtRQUNFLElBQUksQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDO1FBQ3BCLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztJQUNoQixDQUFDOzs7O0lBRUQscUNBQU07OztJQUFOOztZQUNRLGdCQUFnQixHQUFnQixJQUFJLENBQUMsWUFBWSxDQUFDLGFBQWE7O1lBQy9ELFNBQVMsR0FBRyxJQUFJLENBQUMsTUFBTTtZQUMzQixDQUFDLENBQUMsZ0JBQWdCLENBQUMsWUFBWTtZQUMvQixDQUFDLENBQUMsQ0FBQztRQUVMLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLGdCQUFnQixFQUFFLFdBQVcsRUFBTSxTQUFTLE9BQUssQ0FBQyxDQUFDO0lBQzVFLENBQUM7SUF0RWUsaUNBQVksR0FBcUI7UUFDL0MsU0FBUyxFQUFFLEVBQUU7UUFDYixRQUFRLEVBQUUsS0FBSztRQUNmLE1BQU0sRUFBRSxLQUFLO1FBQ2IsYUFBYSxFQUFFLElBQUk7S0FDcEIsQ0FBQzs7Z0JBVkgsU0FBUyxTQUFDO29CQUNULFFBQVEsRUFBTSxNQUFNLENBQUMsVUFBVSxDQUFDLE1BQU0sbUJBQWlCO29CQUN2RCx1d0JBQTJDO2lCQUM1Qzs7OztnQkFUQyxTQUFTOzs7aUNBa0JSLE1BQU0sU0FBQyxTQUFTO2dDQUNoQixNQUFNLFNBQUMsUUFBUTsrQkFFZixTQUFTLFNBQUMsV0FBVyxFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRTs0QkFFdkMsS0FBSzsyQkFDTCxLQUFLO3lCQUNMLEtBQUs7Z0NBQ0wsS0FBSzs7SUF3RFIsMkJBQUM7Q0FBQSxBQTVFRCxJQTRFQztTQXhFWSxvQkFBb0I7OztJQUMvQixrQ0FLRTs7SUFFRiw4Q0FBeUQ7O0lBQ3pELDZDQUF1RDs7SUFFdkQsNENBQW1FOztJQUVuRSx5Q0FBeUU7O0lBQ3pFLHdDQUF3RTs7SUFDeEUsc0NBQW9FOztJQUNwRSw2Q0FBa0Y7O0lBRWxGLHNDQUF5Qzs7Ozs7SUFFN0Isd0NBQTJCIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IFdvcmt5bGFiLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlXG4gKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vcmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbS93b3JreWxhYi9tYXRlcmlhbGl6ZS1hbmd1bGFyL21hc3Rlci9MSUNFTlNFXG4gKi9cblxuaW1wb3J0IHtcbiAgQWZ0ZXJDb250ZW50SW5pdCxcbiAgQ29tcG9uZW50LFxuICBFbGVtZW50UmVmLFxuICBFdmVudEVtaXR0ZXIsXG4gIElucHV0LFxuICBPbkNoYW5nZXMsXG4gIE91dHB1dCxcbiAgUmVuZGVyZXIyLFxuICBWaWV3Q2hpbGRcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb2xsYXBzaWJsZU1vZGVsIH0gZnJvbSAnLi9jb2xsYXBzaWJsZS5tb2RlbCc7XG5pbXBvcnQgeyBjb25maWcgfSBmcm9tICcuLi8uLi9jb25maWcnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6IGAkeyBjb25maWcuY29tcG9uZW50cy5wcmVmaXggfS1jb2xsYXBzaWJsZSB9YCxcbiAgdGVtcGxhdGVVcmw6ICcuL2NvbGxhcHNpYmxlLmNvbXBvbmVudC5odG1sJ1xufSlcbmV4cG9ydCBjbGFzcyBDb2xsYXBzaWJsZUNvbXBvbmVudCBpbXBsZW1lbnRzIENvbGxhcHNpYmxlTW9kZWwsIEFmdGVyQ29udGVudEluaXQsIE9uQ2hhbmdlcyB7XG4gIHN0YXRpYyByZWFkb25seSBkZWZhdWx0UHJvcHM6IENvbGxhcHNpYmxlTW9kZWwgPSB7XG4gICAgY2xhc3NOYW1lOiAnJyxcbiAgICBkaXNhYmxlZDogZmFsc2UsXG4gICAgaXNPcGVuOiBmYWxzZSxcbiAgICBzaG93SW5kaWNhdG9yOiB0cnVlXG4gIH07XG5cbiAgQE91dHB1dCgnb25DbG9zZScpIG9uQ2xvc2VFbWl0dGVyOiBFdmVudEVtaXR0ZXI8Ym9vbGVhbj47XG4gIEBPdXRwdXQoJ29uT3BlbicpIG9uT3BlbkVtaXR0ZXI6IEV2ZW50RW1pdHRlcjxib29sZWFuPjtcblxuICBAVmlld0NoaWxkKCdjb250YWluZXInLCB7IHN0YXRpYzogdHJ1ZSB9KSBjb250YWluZXJSZWY6IEVsZW1lbnRSZWY7XG5cbiAgQElucHV0KCkgY2xhc3NOYW1lOiBzdHJpbmcgPSBDb2xsYXBzaWJsZUNvbXBvbmVudC5kZWZhdWx0UHJvcHMuY2xhc3NOYW1lO1xuICBASW5wdXQoKSBkaXNhYmxlZDogYm9vbGVhbiA9IENvbGxhcHNpYmxlQ29tcG9uZW50LmRlZmF1bHRQcm9wcy5kaXNhYmxlZDtcbiAgQElucHV0KCkgaXNPcGVuOiBib29sZWFuID0gQ29sbGFwc2libGVDb21wb25lbnQuZGVmYXVsdFByb3BzLmlzT3BlbjtcbiAgQElucHV0KCkgc2hvd0luZGljYXRvcjogYm9vbGVhbiA9IENvbGxhcHNpYmxlQ29tcG9uZW50LmRlZmF1bHRQcm9wcy5zaG93SW5kaWNhdG9yO1xuXG4gIHB1YmxpYyBwcmVmaXggPSBjb25maWcuY29tcG9uZW50cy5wcmVmaXg7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSByZW5kZXJlcjogUmVuZGVyZXIyKSB7XG4gICAgdGhpcy5vbkNsb3NlRW1pdHRlciA9IG5ldyBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4oKTtcbiAgICB0aGlzLm9uT3BlbkVtaXR0ZXIgPSBuZXcgRXZlbnRFbWl0dGVyPGJvb2xlYW4+KCk7XG5cbiAgICB0aGlzLm9uVG9nZ2xlID0gdGhpcy5vblRvZ2dsZS5iaW5kKHRoaXMpO1xuICAgIHRoaXMudXBkYXRlID0gdGhpcy51cGRhdGUuYmluZCh0aGlzKTtcblxuICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdyZXNpemUnLCB0aGlzLnVwZGF0ZSk7XG4gIH1cblxuICBuZ0FmdGVyQ29udGVudEluaXQoKSB7XG4gICAgaWYgKHRoaXMuaXNPcGVuKSB7XG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgdGhpcy51cGRhdGUoKTtcbiAgICAgIH0sIDMwMCk7XG4gICAgfVxuICB9XG5cbiAgbmdPbkNoYW5nZXMoKSB7XG4gICAgdGhpcy51cGRhdGUoKTtcbiAgfVxuXG4gIG9uVG9nZ2xlKCkge1xuICAgIGlmICghdGhpcy5kaXNhYmxlZCkge1xuICAgICAgaWYgKHRoaXMuaXNPcGVuKSB7XG4gICAgICAgIHRoaXMuY2xvc2UoKTtcbiAgICAgICAgdGhpcy5vbkNsb3NlRW1pdHRlci5lbWl0KCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLm9wZW4oKTtcbiAgICAgICAgdGhpcy5vbk9wZW5FbWl0dGVyLmVtaXQoKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBvcGVuKCkge1xuICAgIHRoaXMuaXNPcGVuID0gdHJ1ZTtcbiAgICB0aGlzLnVwZGF0ZSgpO1xuICB9XG5cbiAgY2xvc2UoKSB7XG4gICAgdGhpcy5pc09wZW4gPSBmYWxzZTtcbiAgICB0aGlzLnVwZGF0ZSgpO1xuICB9XG5cbiAgdXBkYXRlKCkge1xuICAgIGNvbnN0IGNvbnRlbnRDb250YWluZXI6IEhUTUxFbGVtZW50ID0gdGhpcy5jb250YWluZXJSZWYubmF0aXZlRWxlbWVudDtcbiAgICBjb25zdCBtYXhIZWlnaHQgPSB0aGlzLmlzT3BlblxuICAgICAgPyBjb250ZW50Q29udGFpbmVyLnNjcm9sbEhlaWdodFxuICAgICAgOiAwO1xuXG4gICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZShjb250ZW50Q29udGFpbmVyLCAnbWF4SGVpZ2h0JywgYCR7IG1heEhlaWdodCB9cHhgKTtcbiAgfVxufVxuIl19