UNPKG

materialize-angular

Version:
152 lines 13.2 kB
/** * @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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJhd2VyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL21hdGVyaWFsaXplLWFuZ3VsYXIvIiwic291cmNlcyI6WyJhcHAvY29tcGxldGVkLWNvbXBvbmVudHMvZHJhd2VyL2RyYXdlci5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0FBUUEsT0FBTyxFQUVMLFNBQVMsRUFDVCxVQUFVLEVBQ1YsWUFBWSxFQUNaLEtBQUssRUFDTCxNQUFNLEVBQ04sU0FBUyxFQUNULFNBQVMsRUFDVixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsWUFBWSxFQUFlLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0UsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGNBQWMsQ0FBQztBQU10QyxNQUFNLE9BQU8sZUFBZTs7OztJQTJCMUIsWUFBb0IsUUFBbUI7UUFBbkIsYUFBUSxHQUFSLFFBQVEsQ0FBVztRQVY5QixjQUFTLEdBQVcsZUFBZSxDQUFDLFlBQVksQ0FBQyxTQUFTLENBQUM7UUFDM0Qsb0JBQWUsR0FBWSxlQUFlLENBQUMsWUFBWSxDQUFDLGVBQWUsQ0FBQztRQUN4RSxnQkFBVyxHQUFZLGVBQWUsQ0FBQyxZQUFZLENBQUMsV0FBVyxDQUFDO1FBQ2hFLFdBQU0sR0FBWSxlQUFlLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQztRQUN0RCxhQUFRLEdBQXFCLGVBQWUsQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDO1FBQ25FLHVCQUFrQixHQUFXLGVBQWUsQ0FBQyxZQUFZLENBQUMsa0JBQWtCLENBQUM7UUFDN0UsU0FBSSxHQUFpQixlQUFlLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQztRQUV6RCxXQUFNLEdBQUcsTUFBTSxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUM7UUFHdkMsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNu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LHlDQUFzRDs7SUFFdEQsb0NBQW9FOztJQUNwRSwwQ0FBaUY7O0lBQ2pGLHNDQUF5RTs7SUFDekUsaUNBQStEOztJQUMvRCxtQ0FBNEU7O0lBQzVFLDZDQUFzRjs7SUFDdEYsK0JBQWdFOztJQUVoRSxpQ0FBeUM7Ozs7O0lBRTdCLG1DQUEyQiIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCBXb3JreWxhYi4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZVxuICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL3Jhdy5naXRodWJ1c2VyY29udGVudC5jb20vd29ya3lsYWIvbWF0ZXJpYWxpemUtYW5ndWxhci9tYXN0ZXIvTElDRU5TRVxuICovXG5cbmltcG9ydCB7XG4gIEFmdGVyVmlld0luaXQsXG4gIENvbXBvbmVudCxcbiAgRWxlbWVudFJlZixcbiAgRXZlbnRFbWl0dGVyLFxuICBJbnB1dCxcbiAgT3V0cHV0LFxuICBSZW5kZXJlcjIsXG4gIFZpZXdDaGlsZFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IERSQVdFUl9QT1NJVElPTlMsIERSQVdFUl9UWVBFUywgRHJhd2VyTW9kZWwgfSBmcm9tICcuL2RyYXdlci5tb2RlbCc7XG5pbXBvcnQgeyBjb25maWcgfSBmcm9tICcuLi8uLi9jb25maWcnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6IGAkeyBjb25maWcuY29tcG9uZW50cy5wcmVmaXggfS1kcmF3ZXIgfWAsXG4gIHRlbXBsYXRlVXJsOiAnLi9kcmF3ZXIuY29tcG9uZW50Lmh0bWwnXG59KVxuZXhwb3J0IGNsYXNzIERyYXdlckNvbXBvbmVudCBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQge1xuICBzdGF0aWMgcmVhZG9ubHkgZGVmYXVsdFByb3BzOiBEcmF3ZXJNb2RlbCA9IHtcbiAgICBjbGFzc05hbWU6ICcnLFxuICAgIGNsb3NlT25CYWNrZHJvcDogdHJ1ZSxcbiAgICBoYXNCYWNrZHJvcDogdHJ1ZSxcbiAgICBpc09wZW46IGZhbHNlLFxuICAgIHBvc2l0aW9uOiBEUkFXRVJfUE9TSVRJT05TLkxFRlQsXG4gICAgdHJhbnNpdGlvbkR1cmF0aW9uOiAyNTAsXG4gICAgdHlwZTogRFJBV0VSX1RZUEVTLk9WRVJcbiAgfTtcblxuICBAVmlld0NoaWxkKCdiYWNrZHJvcCcsIHsgc3RhdGljOiB0cnVlIH0pIGJhY2tkcm9wUmVmOiBFbGVtZW50UmVmO1xuICBAVmlld0NoaWxkKCdkcmF3ZXInLCB7IHN0YXRpYzogdHJ1ZSB9KSBkcmF3ZXJSZWY6IEVsZW1lbnRSZWY7XG5cbiAgQE91dHB1dCgnb25PcGVuJykgb25PcGVuRW1pdHRlcjogRXZlbnRFbWl0dGVyPHZvaWQ+O1xuICBAT3V0cHV0KCdvbkNsb3NlJykgb25DbG9zZUVtaXR0ZXI6IEV2ZW50RW1pdHRlcjx2b2lkPjtcblxuICBASW5wdXQoKSBjbGFzc05hbWU6IHN0cmluZyA9IERyYXdlckNvbXBvbmVudC5kZWZhdWx0UHJvcHMuY2xhc3NOYW1lO1xuICBASW5wdXQoKSBjbG9zZU9uQmFja2Ryb3A6IGJvb2xlYW4gPSBEcmF3ZXJDb21wb25lbnQuZGVmYXVsdFByb3BzLmNsb3NlT25CYWNrZHJvcDtcbiAgQElucHV0KCkgaGFzQmFja2Ryb3A6IGJvb2xlYW4gPSBEcmF3ZXJDb21wb25lbnQuZGVmYXVsdFByb3BzLmhhc0JhY2tkcm9wO1xuICBASW5wdXQoKSBpc09wZW46IGJvb2xlYW4gPSBEcmF3ZXJDb21wb25lbnQuZGVmYXVsdFByb3BzLmlzT3BlbjtcbiAgQElucHV0KCkgcG9zaXRpb246IERSQVdFUl9QT1NJVElPTlMgPSBEcmF3ZXJDb21wb25lbnQuZGVmYXVsdFByb3BzLnBvc2l0aW9uO1xuICBASW5wdXQoKSB0cmFuc2l0aW9uRHVyYXRpb246IG51bWJlciA9IERyYXdlckNvbXBvbmVudC5kZWZhdWx0UHJvcHMudHJhbnNpdGlvbkR1cmF0aW9uO1xuICBASW5wdXQoKSB0eXBlOiBEUkFXRVJfVFlQRVMgPSBEcmF3ZXJDb21wb25lbnQuZGVmYXVsdFByb3BzLnR5cGU7XG5cbiAgcHVibGljIHByZWZpeCA9IGNvbmZpZy5jb21wb25lbnRzLnByZWZpeDtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlbmRlcmVyOiBSZW5kZXJlcjIpIHtcbiAgICB0aGlzLmNsb3NlID0gdGhpcy5jbG9zZS5iaW5kKHRoaXMpO1xuICAgIHRoaXMuY2xvc2VCeUJhY2tkcm9wID0gdGhpcy5jbG9zZUJ5QmFja2Ryb3AuYmluZCh0aGlzKTtcbiAgICB0aGlzLm9wZW4gPSB0aGlzLm9wZW4uYmluZCh0aGlzKTtcblxuICAgIHRoaXMub25PcGVuRW1pdHRlciA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcbiAgICB0aGlzLm9uQ2xvc2VFbWl0dGVyID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuICB9XG5cbiAgbmdBZnRlclZpZXdJbml0KCkge1xuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZSh0aGlzLmRyYXdlclJlZi5uYXRpdmVFbGVtZW50LCAndHJhbnNpdGlvbkR1cmF0aW9uJywgYCR7IHRoaXMudHJhbnNpdGlvbkR1cmF0aW9uIH1tc2ApO1xuXG4gICAgICBpZiAodGhpcy5jbG9zZU9uQmFja2Ryb3ApIHtcbiAgICAgICAgdGhpcy5iYWNrZHJvcFJlZi5uYXRpdmVFbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgdGhpcy5jbG9zZUJ5QmFja2Ryb3ApO1xuICAgICAgfVxuICAgIH0sIDApO1xuICB9XG5cbiAgb3BlbigpIHtcbiAgICBpZiAodGhpcy50eXBlICE9PSBEUkFXRVJfVFlQRVMuU1RBVElDKSB7XG4gICAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHRoaXMuYmFja2Ryb3BSZWYubmF0aXZlRWxlbWVudCwgJ2Rpc3BsYXknLCAnYmxvY2snKTtcblxuICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgIHRoaXMuaXNPcGVuID0gdHJ1ZTtcbiAgICAgIH0sIDApO1xuICAgIH1cbiAgfVxuXG4gIGNsb3NlQnlCYWNrZHJvcChldmVudDogRXZlbnQpIHtcbiAgICBpZiAoZXZlbnQudGFyZ2V0ID09PSB0aGlzLmJhY2tkcm9wUmVmLm5hdGl2ZUVsZW1lbnQpIHtcbiAgICAgIHRoaXMuY2xvc2UoKTtcbiAgICB9XG4gIH1cblxuICBjbG9zZSgpIHtcbiAgICB0aGlzLmlzT3BlbiA9IGZhbHNlO1xuXG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHRoaXMuYmFja2Ryb3BSZWYubmF0aXZlRWxlbWVudCwgJ2Rpc3BsYXknLCAnbm9uZScpO1xuXG4gICAgICB0aGlzLm9uQ2xvc2VFbWl0dGVyLmVtaXQoKTtcbiAgICB9LCB0aGlzLnRyYW5zaXRpb25EdXJhdGlvbik7XG4gIH1cbn1cbiJdfQ==