materialize-angular
Version:
Material UI Angular library
120 lines • 11.2 kB
JavaScript
/**
* @fileoverview added by tsickle
* Generated from: app/completed-components/modal/modal.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, ViewChild } from '@angular/core';
import { config } from '../../config';
export class ModalComponent {
constructor() {
this.className = ModalComponent.defaultProps.className;
this.dismissOnBackdrop = ModalComponent.defaultProps.dismissOnBackdrop;
this.hasBackdrop = ModalComponent.defaultProps.hasBackdrop;
this.hasCloseButton = ModalComponent.defaultProps.hasCloseButton;
this.isOpen = ModalComponent.defaultProps.isOpen;
this.transitionDuration = ModalComponent.defaultProps.transitionDuration;
this.prefix = config.components.prefix;
this.onOpenEmitter = new EventEmitter();
this.onCloseEmitter = new EventEmitter();
this.open = this.open.bind(this);
this.close = this.close.bind(this);
this.closeByBackdrop = this.closeByBackdrop.bind(this);
}
/**
* @return {?}
*/
ngAfterViewInit() {
if (this.hasBackdrop && this.dismissOnBackdrop) {
this.backdropRef.nativeElement.addEventListener('click', this.closeByBackdrop);
}
}
/**
* @param {?} event
* @return {?}
*/
closeByBackdrop(event) {
const { target } = event;
const { nativeElement } = this.backdropRef;
if (target === nativeElement) {
this.close();
}
}
/**
* @return {?}
*/
open() {
this.modalRef.nativeElement.style.transitionDuration = `${this.transitionDuration}ms`;
this.isOpen = true;
this.onOpenEmitter.emit();
}
/**
* @return {?}
*/
close() {
this.modalRef.nativeElement.style.transitionDuration = `${this.transitionDuration / 2}ms`;
this.isOpen = false;
this.onCloseEmitter.emit();
}
}
ModalComponent.defaultProps = {
className: '',
dismissOnBackdrop: true,
hasBackdrop: true,
hasCloseButton: true,
isOpen: false,
transitionDuration: 400
};
ModalComponent.decorators = [
{ type: Component, args: [{
selector: `${config.components.prefix}-modal }`,
template: "<div [ngClass]=\"[prefix + '-modal', className]\" [class.active]=\"isOpen\" #modal>\n <div [ngClass]=\"prefix + '-modal-backdrop'\" #backdrop *ngIf=\"hasBackdrop\"></div>\n <div [ngClass]=\"prefix + '-modal-content'\">\n <materialize-icon [className]=\"prefix + '-modal-icon-close'\" *ngIf=\"hasCloseButton\" (onClick)=\"close()\">close</materialize-icon>\n\n <ng-content></ng-content>\n </div>\n</div>\n"
}] }
];
/** @nocollapse */
ModalComponent.ctorParameters = () => [];
ModalComponent.propDecorators = {
modalRef: [{ type: ViewChild, args: ['modal', { static: true },] }],
backdropRef: [{ type: ViewChild, args: ['backdrop', { static: false },] }],
onOpenEmitter: [{ type: Output, args: ['onOpen',] }],
onCloseEmitter: [{ type: Output, args: ['onClose',] }],
className: [{ type: Input }],
dismissOnBackdrop: [{ type: Input }],
hasBackdrop: [{ type: Input }],
hasCloseButton: [{ type: Input }],
isOpen: [{ type: Input }],
transitionDuration: [{ type: Input }]
};
if (false) {
/** @type {?} */
ModalComponent.defaultProps;
/** @type {?} */
ModalComponent.prototype.modalRef;
/** @type {?} */
ModalComponent.prototype.backdropRef;
/** @type {?} */
ModalComponent.prototype.onOpenEmitter;
/** @type {?} */
ModalComponent.prototype.onCloseEmitter;
/** @type {?} */
ModalComponent.prototype.className;
/** @type {?} */
ModalComponent.prototype.dismissOnBackdrop;
/** @type {?} */
ModalComponent.prototype.hasBackdrop;
/** @type {?} */
ModalComponent.prototype.hasCloseButton;
/** @type {?} */
ModalComponent.prototype.isOpen;
/** @type {?} */
ModalComponent.prototype.transitionDuration;
/** @type {?} */
ModalComponent.prototype.prefix;
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kYWwuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vbWF0ZXJpYWxpemUtYW5ndWxhci8iLCJzb3VyY2VzIjpbImFwcC9jb21wbGV0ZWQtY29tcG9uZW50cy9tb2RhbC9tb2RhbC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0FBUUEsT0FBTyxFQUVMLFNBQVMsRUFDVCxVQUFVLEVBQ1YsWUFBWSxFQUNaLEtBQUssRUFDTCxNQUFNLEVBQ04sU0FBUyxFQUNWLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFPdEMsTUFBTSxPQUFPLGNBQWM7SUF5QnpCO1FBVFMsY0FBUyxHQUFXLGNBQWMsQ0FBQyxZQUFZLENBQUMsU0FBUyxDQUFDO1FBQzFELHNCQUFpQixHQUFZLGNBQWMsQ0FBQyxZQUFZLENBQUMsaUJBQWlCLENBQUM7UUFDM0UsZ0JBQVcsR0FBWSxjQUFjLENBQUMsWUFBWSxDQUFDLFdBQVcsQ0FBQztRQUMvRCxtQkFBYyxHQUFZLGNBQWMsQ0FBQyxZQUFZLENBQUMsY0FBYyxDQUFDO1FBQ3JFLFdBQU0sR0FBWSxjQUFjLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQztRQUNyRCx1QkFBa0IsR0FBVyxjQUFjLENBQUMsWUFBWSxDQUFDLGtCQUFrQixDQUFDO1FBRTlFLFdBQU0sR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQztRQUd2QyxJQUFJLENBQUMsYUFBYSxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7UUFDeEMsSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBRXpDLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDakMsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNuQyxJQUFJLENBQUMsZUFBZSxHQUFHLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3pELENBQUM7Ozs7SUFFRCxlQUFlO1FBQ2IsSUFBSSxJQUFJLENBQUMsV0FBVyxJQUFJLElBQUksQ0FBQyxpQkFBaUIsRUFBRTtZQUM5QyxJQUFJLENBQUMsV0FBVyxDQUFDLGFBQWEsQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLGVBQWUsQ0FBQyxDQUFDO1NBQ2hGO0lBQ0gsQ0FBQzs7Ozs7SUFFRCxlQUFlLENBQUMsS0FBWTtjQUNwQixFQUFFLE1BQU0sRUFBRSxHQUFHLEtBQUs7Y0FDbEIsRUFBRSxhQUFhLEVBQUUsR0FBRyxJQUFJLENBQUMsV0FBVztRQUUxQyxJQUFJLE1BQU0sS0FBSyxhQUFhLEVBQUU7WUFDNUIsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO1NBQ2Q7SUFDSCxDQUFDOzs7O0lBRUQsSUFBSTtRQUNGLElBQUksQ0FBQyxRQUFRLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxrQkFBa0IsR0FBRyxHQUFJLElBQUksQ0FBQyxrQkFBbUIsSUFBSSxDQUFDO1FBRXhGLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDO1FBQ25CLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDNUIsQ0FBQzs7OztJQUVELEtBQUs7UUFDSCxJQUFJLENBQUMsUUFBUSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsa0JBQWtCLEdBQUcsR0FBSSxJQUFJLENBQUMsa0JBQWtCLEdBQUcsQ0FBRSxJQUFJLENBQUM7UUFFNUYsSUFBSSxDQUFDLE1BQU0sR0FBRyxLQUFLLENBQUM7UUFDcEIsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUM3QixDQUFDOztBQTVEZSwyQkFBWSxHQUFlO0lBQ3pDLFNBQVMsRUFBRSxFQUFFO0lBQ2IsaUJBQWlCLEVBQUUsSUFBSTtJQUN2QixXQUFXLEVBQUUsSUFBSTtJQUNqQixjQUFjLEVBQUUsSUFBSTtJQUNwQixNQUFNLEVBQUUsS0FBSztJQUNiLGtCQUFrQixFQUFFLEdBQUc7Q0FDeEIsQ0FBQzs7WUFaSCxTQUFTLFNBQUM7Z0JBQ1QsUUFBUSxFQUFFLEdBQUksTUFBTSxDQUFDLFVBQVUsQ0FBQyxNQUFPLFVBQVU7Z0JBQ2pELHlhQUFxQzthQUN0Qzs7Ozs7dUJBV0UsU0FBUyxTQUFDLE9BQU8sRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUU7MEJBQ25DLFNBQVMsU0FBQyxVQUFVLEVBQUUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFOzRCQUV2QyxNQUFNLFNBQUMsUUFBUTs2QkFDZixNQUFNLFNBQUMsU0FBUzt3QkFFaEIsS0FBSztnQ0FDTCxLQUFLOzBCQUNMLEtBQUs7NkJBQ0wsS0FBSztxQkFDTCxLQUFLO2lDQUNMLEtBQUs7Ozs7SUFwQk4sNEJBT0U7O0lBRUYsa0NBQTJEOztJQUMzRCxxQ0FBa0U7O0lBRWxFLHVDQUFvRDs7SUFDcEQsd0NBQXNEOztJQUV0RCxtQ0FBbUU7O0lBQ25FLDJDQUFvRjs7SUFDcEYscUNBQXdFOztJQUN4RSx3Q0FBOEU7O0lBQzlFLGdDQUE4RDs7SUFDOUQsNENBQXFGOztJQUVyRixnQ0FBeUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgV29ya3lsYWIuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmVcbiAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3dvcmt5bGFiL21hdGVyaWFsaXplLWFuZ3VsYXIvbWFzdGVyL0xJQ0VOU0VcbiAqL1xuXG5pbXBvcnQge1xuICBBZnRlclZpZXdJbml0LFxuICBDb21wb25lbnQsXG4gIEVsZW1lbnRSZWYsXG4gIEV2ZW50RW1pdHRlcixcbiAgSW5wdXQsXG4gIE91dHB1dCxcbiAgVmlld0NoaWxkXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgY29uZmlnIH0gZnJvbSAnLi4vLi4vY29uZmlnJztcbmltcG9ydCB7IE1vZGFsTW9kZWwgfSBmcm9tICcuL21vZGFsLm1vZGVsJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiBgJHsgY29uZmlnLmNvbXBvbmVudHMucHJlZml4IH0tbW9kYWwgfWAsXG4gIHRlbXBsYXRlVXJsOiAnLi9tb2RhbC5jb21wb25lbnQuaHRtbCdcbn0pXG5leHBvcnQgY2xhc3MgTW9kYWxDb21wb25lbnQgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0LCBNb2RhbE1vZGVsIHtcbiAgc3RhdGljIHJlYWRvbmx5IGRlZmF1bHRQcm9wczogTW9kYWxNb2RlbCA9IHtcbiAgICBjbGFzc05hbWU6ICcnLFxuICAgIGRpc21pc3NPbkJhY2tkcm9wOiB0cnVlLFxuICAgIGhhc0JhY2tkcm9wOiB0cnVlLFxuICAgIGhhc0Nsb3NlQnV0dG9uOiB0cnVlLFxuICAgIGlzT3BlbjogZmFsc2UsXG4gICAgdHJhbnNpdGlvbkR1cmF0aW9uOiA0MDBcbiAgfTtcblxuICBAVmlld0NoaWxkKCdtb2RhbCcsIHsgc3RhdGljOiB0cnVlIH0pIG1vZGFsUmVmOiBFbGVtZW50UmVmO1xuICBAVmlld0NoaWxkKCdiYWNrZHJvcCcsIHsgc3RhdGljOiBmYWxzZSB9KSBiYWNrZHJvcFJlZjogRWxlbWVudFJlZjtcblxuICBAT3V0cHV0KCdvbk9wZW4nKSBvbk9wZW5FbWl0dGVyOiBFdmVudEVtaXR0ZXI8dm9pZD47XG4gIEBPdXRwdXQoJ29uQ2xvc2UnKSBvbkNsb3NlRW1pdHRlcjogRXZlbnRFbWl0dGVyPHZvaWQ+O1xuXG4gIEBJbnB1dCgpIGNsYXNzTmFtZTogc3RyaW5nID0gTW9kYWxDb21wb25lbnQuZGVmYXVsdFByb3BzLmNsYXNzTmFtZTtcbiAgQElucHV0KCkgZGlzbWlzc09uQmFja2Ryb3A6IGJvb2xlYW4gPSBNb2RhbENvbXBvbmVudC5kZWZhdWx0UHJvcHMuZGlzbWlzc09uQmFja2Ryb3A7XG4gIEBJbnB1dCgpIGhhc0JhY2tkcm9wOiBib29sZWFuID0gTW9kYWxDb21wb25lbnQuZGVmYXVsdFByb3BzLmhhc0JhY2tkcm9wO1xuICBASW5wdXQoKSBoYXNDbG9zZUJ1dHRvbjogYm9vbGVhbiA9IE1vZGFsQ29tcG9uZW50LmRlZmF1bHRQcm9wcy5oYXNDbG9zZUJ1dHRvbjtcbiAgQElucHV0KCkgaXNPcGVuOiBib29sZWFuID0gTW9kYWxDb21wb25lbnQuZGVmYXVsdFByb3BzLmlzT3BlbjtcbiAgQElucHV0KCkgdHJhbnNpdGlvbkR1cmF0aW9uOiBudW1iZXIgPSBNb2RhbENvbXBvbmVudC5kZWZhdWx0UHJvcHMudHJhbnNpdGlvbkR1cmF0aW9uO1xuXG4gIHB1YmxpYyBwcmVmaXggPSBjb25maWcuY29tcG9uZW50cy5wcmVmaXg7XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgdGhpcy5vbk9wZW5FbWl0dGVyID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICAgIHRoaXMub25DbG9zZUVtaXR0ZXIgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgICB0aGlzLm9wZW4gPSB0aGlzLm9wZW4uYmluZCh0aGlzKTtcbiAgICB0aGlzLmNsb3NlID0gdGhpcy5jbG9zZS5iaW5kKHRoaXMpO1xuICAgIHRoaXMuY2xvc2VCeUJhY2tkcm9wID0gdGhpcy5jbG9zZUJ5QmFja2Ryb3AuYmluZCh0aGlzKTtcbiAgfVxuXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcbiAgICBpZiAodGhpcy5oYXNCYWNrZHJvcCAmJiB0aGlzLmRpc21pc3NPbkJhY2tkcm9wKSB7XG4gICAgICB0aGlzLmJhY2tkcm9wUmVmLm5hdGl2ZUVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCB0aGlzLmNsb3NlQnlCYWNrZHJvcCk7XG4gICAgfVxuICB9XG5cbiAgY2xvc2VCeUJhY2tkcm9wKGV2ZW50OiBFdmVudCkge1xuICAgIGNvbnN0IHsgdGFyZ2V0IH0gPSBldmVudDtcbiAgICBjb25zdCB7IG5hdGl2ZUVsZW1lbnQgfSA9IHRoaXMuYmFja2Ryb3BSZWY7XG5cbiAgICBpZiAodGFyZ2V0ID09PSBuYXRpdmVFbGVtZW50KSB7XG4gICAgICB0aGlzLmNsb3NlKCk7XG4gICAgfVxuICB9XG5cbiAgb3BlbigpIHtcbiAgICB0aGlzLm1vZGFsUmVmLm5hdGl2ZUVsZW1lbnQuc3R5bGUudHJhbnNpdGlvbkR1cmF0aW9uID0gYCR7IHRoaXMudHJhbnNpdGlvbkR1cmF0aW9uIH1tc2A7XG5cbiAgICB0aGlzLmlzT3BlbiA9IHRydWU7XG4gICAgdGhpcy5vbk9wZW5FbWl0dGVyLmVtaXQoKTtcbiAgfVxuXG4gIGNsb3NlKCkge1xuICAgIHRoaXMubW9kYWxSZWYubmF0aXZlRWxlbWVudC5zdHlsZS50cmFuc2l0aW9uRHVyYXRpb24gPSBgJHsgdGhpcy50cmFuc2l0aW9uRHVyYXRpb24gLyAyIH1tc2A7XG5cbiAgICB0aGlzLmlzT3BlbiA9IGZhbHNlO1xuICAgIHRoaXMub25DbG9zZUVtaXR0ZXIuZW1pdCgpO1xuICB9XG59XG4iXX0=