materialize-angular
Version:
Material UI Angular library
152 lines • 13.2 kB
JavaScript
/**
* @fileoverview added by tsickle
* Generated from: app/completed-components/drawer/drawer.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 { DRAWER_POSITIONS, DRAWER_TYPES } from './drawer.model';
import { config } from '../../config';
export class DrawerComponent {
/**
* @param {?} renderer
*/
constructor(renderer) {
this.renderer = renderer;
this.className = DrawerComponent.defaultProps.className;
this.closeOnBackdrop = DrawerComponent.defaultProps.closeOnBackdrop;
this.hasBackdrop = DrawerComponent.defaultProps.hasBackdrop;
this.isOpen = DrawerComponent.defaultProps.isOpen;
this.position = DrawerComponent.defaultProps.position;
this.transitionDuration = DrawerComponent.defaultProps.transitionDuration;
this.type = DrawerComponent.defaultProps.type;
this.prefix = config.components.prefix;
this.close = this.close.bind(this);
this.closeByBackdrop = this.closeByBackdrop.bind(this);
this.open = this.open.bind(this);
this.onOpenEmitter = new EventEmitter();
this.onCloseEmitter = new EventEmitter();
}
/**
* @return {?}
*/
ngAfterViewInit() {
setTimeout((/**
* @return {?}
*/
() => {
this.renderer.setStyle(this.drawerRef.nativeElement, 'transitionDuration', `${this.transitionDuration}ms`);
if (this.closeOnBackdrop) {
this.backdropRef.nativeElement.addEventListener('click', this.closeByBackdrop);
}
}), 0);
}
/**
* @return {?}
*/
open() {
if (this.type !== DRAWER_TYPES.STATIC) {
this.renderer.setStyle(this.backdropRef.nativeElement, 'display', 'block');
setTimeout((/**
* @return {?}
*/
() => {
this.isOpen = true;
}), 0);
}
}
/**
* @param {?} event
* @return {?}
*/
closeByBackdrop(event) {
if (event.target === this.backdropRef.nativeElement) {
this.close();
}
}
/**
* @return {?}
*/
close() {
this.isOpen = false;
setTimeout((/**
* @return {?}
*/
() => {
this.renderer.setStyle(this.backdropRef.nativeElement, 'display', 'none');
this.onCloseEmitter.emit();
}), this.transitionDuration);
}
}
DrawerComponent.defaultProps = {
className: '',
closeOnBackdrop: true,
hasBackdrop: true,
isOpen: false,
position: DRAWER_POSITIONS.LEFT,
transitionDuration: 250,
type: DRAWER_TYPES.OVER
};
DrawerComponent.decorators = [
{ type: Component, args: [{
selector: `${config.components.prefix}-drawer }`,
template: "<div #drawer\n [ngClass]=\"[prefix + '-drawer', className, type, position]\"\n [class.open]=\"isOpen\"\n [class.backdrop]=\"hasBackdrop\"\n>\n <div [ngClass]=\"prefix + '-drawer-backdrop'\" #backdrop></div>\n\n <div [ngClass]=\"prefix + '-drawer-content'\">\n <ng-content select=\"materialize-drawer-content\"></ng-content>\n </div>\n\n <div [ngClass]=\"prefix + '-drawer-container'\">\n <ng-content select=\"materialize-drawer-container\"></ng-content>\n </div>\n</div>\n"
}] }
];
/** @nocollapse */
DrawerComponent.ctorParameters = () => [
{ type: Renderer2 }
];
DrawerComponent.propDecorators = {
backdropRef: [{ type: ViewChild, args: ['backdrop', { static: true },] }],
drawerRef: [{ type: ViewChild, args: ['drawer', { static: true },] }],
onOpenEmitter: [{ type: Output, args: ['onOpen',] }],
onCloseEmitter: [{ type: Output, args: ['onClose',] }],
className: [{ type: Input }],
closeOnBackdrop: [{ type: Input }],
hasBackdrop: [{ type: Input }],
isOpen: [{ type: Input }],
position: [{ type: Input }],
transitionDuration: [{ type: Input }],
type: [{ type: Input }]
};
if (false) {
/** @type {?} */
DrawerComponent.defaultProps;
/** @type {?} */
DrawerComponent.prototype.backdropRef;
/** @type {?} */
DrawerComponent.prototype.drawerRef;
/** @type {?} */
DrawerComponent.prototype.onOpenEmitter;
/** @type {?} */
DrawerComponent.prototype.onCloseEmitter;
/** @type {?} */
DrawerComponent.prototype.className;
/** @type {?} */
DrawerComponent.prototype.closeOnBackdrop;
/** @type {?} */
DrawerComponent.prototype.hasBackdrop;
/** @type {?} */
DrawerComponent.prototype.isOpen;
/** @type {?} */
DrawerComponent.prototype.position;
/** @type {?} */
DrawerComponent.prototype.transitionDuration;
/** @type {?} */
DrawerComponent.prototype.type;
/** @type {?} */
DrawerComponent.prototype.prefix;
/**
* @type {?}
* @private
*/
DrawerComponent.prototype.renderer;
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJhd2VyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL21hdGVyaWFsaXplLWFuZ3VsYXIvIiwic291cmNlcyI6WyJhcHAvY29tcGxldGVkLWNvbXBvbmVudHMvZHJhd2VyL2RyYXdlci5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0FBUUEsT0FBTyxFQUVMLFNBQVMsRUFDVCxVQUFVLEVBQ1YsWUFBWSxFQUNaLEtBQUssRUFDTCxNQUFNLEVBQ04sU0FBUyxFQUNULFNBQVMsRUFDVixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsWUFBWSxFQUFlLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0UsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGNBQWMsQ0FBQztBQU10QyxNQUFNLE9BQU8sZUFBZTs7OztJQTJCMUIsWUFBb0IsUUFBbUI7UUFBbkIsYUFBUSxHQUFSLFFBQVEsQ0FBVztRQVY5QixjQUFTLEdBQVcsZUFBZSxDQUFDLFlBQVksQ0FBQyxTQUFTLENBQUM7UUFDM0Qsb0JBQWUsR0FBWSxlQUFlLENBQUMsWUFBWSxDQUFDLGVBQWUsQ0FBQztRQUN4RSxnQkFBVyxHQUFZLGVBQWUsQ0FBQyxZQUFZLENBQUMsV0FBVyxDQUFDO1FBQ2hFLFdBQU0sR0FBWSxlQUFlLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQztRQUN0RCxhQUFRLEdBQXFCLGVBQWUsQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDO1FBQ25FLHVCQUFrQixHQUFXLGVBQWUsQ0FBQyxZQUFZLENBQUMsa0JBQWtCLENBQUM7UUFDN0UsU0FBSSxHQUFpQixlQUFlLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQztRQUV6RCxXQUFNLEdBQUcsTUFBTSxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUM7UUFHdkMsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNuQyxJQUFJLENBQUMsZUFBZSxHQUFHLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3ZELElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFFakMsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLFlBQVksRUFBUSxDQUFDO1FBQzlDLElBQUksQ0FBQyxjQUFjLEdBQUcsSUFBSSxZQUFZLEVBQVEsQ0FBQztJQUNqRCxDQUFDOzs7O0lBRUQsZUFBZTtRQUNiLFVBQVU7OztRQUFDLEdBQUcsRUFBRTtZQUNkLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsYUFBYSxFQUFFLG9CQUFvQixFQUFFLEdBQUksSUFBSSxDQUFDLGtCQUFtQixJQUFJLENBQUMsQ0FBQztZQUU3RyxJQUFJLElBQUksQ0FBQyxlQUFlLEVBQUU7Z0JBQ3hCLElBQUksQ0FBQyxXQUFXLENBQUMsYUFBYSxDQUFDLGdCQUFnQixDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsZUFBZSxDQUFDLENBQUM7YUFDaEY7UUFDSCxDQUFDLEdBQUUsQ0FBQyxDQUFDLENBQUM7SUFDUixDQUFDOzs7O0lBRUQsSUFBSTtRQUNGLElBQUksSUFBSSxDQUFDLElBQUksS0FBSyxZQUFZLENBQUMsTUFBTSxFQUFFO1lBQ3JDLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsYUFBYSxFQUFFLFNBQVMsRUFBRSxPQUFPLENBQUMsQ0FBQztZQUUzRSxVQUFVOzs7WUFBQyxHQUFHLEVBQUU7Z0JBQ2QsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUM7WUFDckIsQ0FBQyxHQUFFLENBQUMsQ0FBQyxDQUFDO1NBQ1A7SUFDSCxDQUFDOzs7OztJQUVELGVBQWUsQ0FBQyxLQUFZO1FBQzFCLElBQUksS0FBSyxDQUFDLE1BQU0sS0FBSyxJQUFJLENBQUMsV0FBVyxDQUFDLGFBQWEsRUFBRTtZQUNuRCxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7U0FDZDtJQUNILENBQUM7Ozs7SUFFRCxLQUFLO1FBQ0gsSUFBSSxDQUFDLE1BQU0sR0FBRyxLQUFLLENBQUM7UUFFcEIsVUFBVTs7O1FBQUMsR0FBRyxFQUFFO1lBQ2QsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxhQUFhLEVBQUUsU0FBUyxFQUFFLE1BQU0sQ0FBQyxDQUFDO1lBRTFFLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDN0IsQ0FBQyxHQUFFLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO0lBQzlCLENBQUM7O0FBckVlLDRCQUFZLEdBQWdCO0lBQzFDLFNBQVMsRUFBRSxFQUFFO0lBQ2IsZUFBZSxFQUFFLElBQUk7SUFDckIsV0FBVyxFQUFFLElBQUk7SUFDakIsTUFBTSxFQUFFLEtBQUs7SUFDYixRQUFRLEVBQUUsZ0JBQWdCLENBQUMsSUFBSTtJQUMvQixrQkFBa0IsRUFBRSxHQUFHO0lBQ3ZCLElBQUksRUFBRSxZQUFZLENBQUMsSUFBSTtDQUN4QixDQUFDOztZQWJILFNBQVMsU0FBQztnQkFDVCxRQUFRLEVBQUUsR0FBSSxNQUFNLENBQUMsVUFBVSxDQUFDLE1BQU8sV0FBVztnQkFDbEQsa2ZBQXNDO2FBQ3ZDOzs7O1lBVEMsU0FBUzs7OzBCQXFCUixTQUFTLFNBQUMsVUFBVSxFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRTt3QkFDdEMsU0FBUyxTQUFDLFFBQVEsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUU7NEJBRXBDLE1BQU0sU0FBQyxRQUFROzZCQUNmLE1BQU0sU0FBQyxTQUFTO3dCQUVoQixLQUFLOzhCQUNMLEtBQUs7MEJBQ0wsS0FBSztxQkFDTCxLQUFLO3VCQUNMLEtBQUs7aUNBQ0wsS0FBSzttQkFDTCxLQUFLOzs7O0lBdEJOLDZCQVFFOztJQUVGLHNDQUFpRTs7SUFDakUsb0NBQTZEOztJQUU3RCx3Q0FBb0Q7O0lBQ3BELHlDQUFzRDs7SUFFdEQsb0NBQW9FOztJQUNwRSwwQ0FBaUY7O0lBQ2pGLHNDQUF5RTs7SUFDekUsaUNBQStEOztJQUMvRCxtQ0FBNEU7O0lBQzVFLDZDQUFzRjs7SUFDdEYsK0JBQWdFOztJQUVoRSxpQ0FBeUM7Ozs7O0lBRTdCLG1DQUEyQiIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCBXb3JreWxhYi4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZVxuICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL3Jhdy5naXRodWJ1c2VyY29udGVudC5jb20vd29ya3lsYWIvbWF0ZXJpYWxpemUtYW5ndWxhci9tYXN0ZXIvTElDRU5TRVxuICovXG5cbmltcG9ydCB7XG4gIEFmdGVyVmlld0luaXQsXG4gIENvbXBvbmVudCxcbiAgRWxlbWVudFJlZixcbiAgRXZlbnRFbWl0dGVyLFxuICBJbnB1dCxcbiAgT3V0cHV0LFxuICBSZW5kZXJlcjIsXG4gIFZpZXdDaGlsZFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IERSQVdFUl9QT1NJVElPTlMsIERSQVdFUl9UWVBFUywgRHJhd2VyTW9kZWwgfSBmcm9tICcuL2RyYXdlci5tb2RlbCc7XG5pbXBvcnQgeyBjb25maWcgfSBmcm9tICcuLi8uLi9jb25maWcnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6IGAkeyBjb25maWcuY29tcG9uZW50cy5wcmVmaXggfS1kcmF3ZXIgfWAsXG4gIHRlbXBsYXRlVXJsOiAnLi9kcmF3ZXIuY29tcG9uZW50Lmh0bWwnXG59KVxuZXhwb3J0IGNsYXNzIERyYXdlckNvbXBvbmVudCBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQge1xuICBzdGF0aWMgcmVhZG9ubHkgZGVmYXVsdFByb3BzOiBEcmF3ZXJNb2RlbCA9IHtcbiAgICBjbGFzc05hbWU6ICcnLFxuICAgIGNsb3NlT25CYWNrZHJvcDogdHJ1ZSxcbiAgICBoYXNCYWNrZHJvcDogdHJ1ZSxcbiAgICBpc09wZW46IGZhbHNlLFxuICAgIHBvc2l0aW9uOiBEUkFXRVJfUE9TSVRJT05TLkxFRlQsXG4gICAgdHJhbnNpdGlvbkR1cmF0aW9uOiAyNTAsXG4gICAgdHlwZTogRFJBV0VSX1RZUEVTLk9WRVJcbiAgfTtcblxuICBAVmlld0NoaWxkKCdiYWNrZHJvcCcsIHsgc3RhdGljOiB0cnVlIH0pIGJhY2tkcm9wUmVmOiBFbGVtZW50UmVmO1xuICBAVmlld0NoaWxkKCdkcmF3ZXInLCB7IHN0YXRpYzogdHJ1ZSB9KSBkcmF3ZXJSZWY6IEVsZW1lbnRSZWY7XG5cbiAgQE91dHB1dCgnb25PcGVuJykgb25PcGVuRW1pdHRlcjogRXZlbnRFbWl0dGVyPHZvaWQ+O1xuICBAT3V0cHV0KCdvbkNsb3NlJykgb25DbG9zZUVtaXR0ZXI6IEV2ZW50RW1pdHRlcjx2b2lkPjtcblxuICBASW5wdXQoKSBjbGFzc05hbWU6IHN0cmluZyA9IERyYXdlckNvbXBvbmVudC5kZWZhdWx0UHJvcHMuY2xhc3NOYW1lO1xuICBASW5wdXQoKSBjbG9zZU9uQmFja2Ryb3A6IGJvb2xlYW4gPSBEcmF3ZXJDb21wb25lbnQuZGVmYXVsdFByb3BzLmNsb3NlT25CYWNrZHJvcDtcbiAgQElucHV0KCkgaGFzQmFja2Ryb3A6IGJvb2xlYW4gPSBEcmF3ZXJDb21wb25lbnQuZGVmYXVsdFByb3BzLmhhc0JhY2tkcm9wO1xuICBASW5wdXQoKSBpc09wZW46IGJvb2xlYW4gPSBEcmF3ZXJDb21wb25lbnQuZGVmYXVsdFByb3BzLmlzT3BlbjtcbiAgQElucHV0KCkgcG9zaXRpb246IERSQVdFUl9QT1NJVElPTlMgPSBEcmF3ZXJDb21wb25lbnQuZGVmYXVsdFByb3BzLnBvc2l0aW9uO1xuICBASW5wdXQoKSB0cmFuc2l0aW9uRHVyYXRpb246IG51bWJlciA9IERyYXdlckNvbXBvbmVudC5kZWZhdWx0UHJvcHMudHJhbnNpdGlvbkR1cmF0aW9uO1xuICBASW5wdXQoKSB0eXBlOiBEUkFXRVJfVFlQRVMgPSBEcmF3ZXJDb21wb25lbnQuZGVmYXVsdFByb3BzLnR5cGU7XG5cbiAgcHVibGljIHByZWZpeCA9IGNvbmZpZy5jb21wb25lbnRzLnByZWZpeDtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlbmRlcmVyOiBSZW5kZXJlcjIpIHtcbiAgICB0aGlzLmNsb3NlID0gdGhpcy5jbG9zZS5iaW5kKHRoaXMpO1xuICAgIHRoaXMuY2xvc2VCeUJhY2tkcm9wID0gdGhpcy5jbG9zZUJ5QmFja2Ryb3AuYmluZCh0aGlzKTtcbiAgICB0aGlzLm9wZW4gPSB0aGlzLm9wZW4uYmluZCh0aGlzKTtcblxuICAgIHRoaXMub25PcGVuRW1pdHRlciA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcbiAgICB0aGlzLm9uQ2xvc2VFbWl0dGVyID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuICB9XG5cbiAgbmdBZnRlclZpZXdJbml0KCkge1xuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZSh0aGlzLmRyYXdlclJlZi5uYXRpdmVFbGVtZW50LCAndHJhbnNpdGlvbkR1cmF0aW9uJywgYCR7IHRoaXMudHJhbnNpdGlvbkR1cmF0aW9uIH1tc2ApO1xuXG4gICAgICBpZiAodGhpcy5jbG9zZU9uQmFja2Ryb3ApIHtcbiAgICAgICAgdGhpcy5iYWNrZHJvcFJlZi5uYXRpdmVFbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgdGhpcy5jbG9zZUJ5QmFja2Ryb3ApO1xuICAgICAgfVxuICAgIH0sIDApO1xuICB9XG5cbiAgb3BlbigpIHtcbiAgICBpZiAodGhpcy50eXBlICE9PSBEUkFXRVJfVFlQRVMuU1RBVElDKSB7XG4gICAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHRoaXMuYmFja2Ryb3BSZWYubmF0aXZlRWxlbWVudCwgJ2Rpc3BsYXknLCAnYmxvY2snKTtcblxuICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgIHRoaXMuaXNPcGVuID0gdHJ1ZTtcbiAgICAgIH0sIDApO1xuICAgIH1cbiAgfVxuXG4gIGNsb3NlQnlCYWNrZHJvcChldmVudDogRXZlbnQpIHtcbiAgICBpZiAoZXZlbnQudGFyZ2V0ID09PSB0aGlzLmJhY2tkcm9wUmVmLm5hdGl2ZUVsZW1lbnQpIHtcbiAgICAgIHRoaXMuY2xvc2UoKTtcbiAgICB9XG4gIH1cblxuICBjbG9zZSgpIHtcbiAgICB0aGlzLmlzT3BlbiA9IGZhbHNlO1xuXG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHRoaXMuYmFja2Ryb3BSZWYubmF0aXZlRWxlbWVudCwgJ2Rpc3BsYXknLCAnbm9uZScpO1xuXG4gICAgICB0aGlzLm9uQ2xvc2VFbWl0dGVyLmVtaXQoKTtcbiAgICB9LCB0aGlzLnRyYW5zaXRpb25EdXJhdGlvbik7XG4gIH1cbn1cbiJdfQ==