ngx-materialize
Version:
An Angular wrap around Materialize library
187 lines (186 loc) • 12.9 kB
JavaScript
/**
* @fileoverview added by tsickle
* @suppress {checkTypes} checked by tsc
*/
import { Component, Directive, ElementRef, EventEmitter, Input, Output, Renderer, ViewChild, } from '@angular/core';
import { HandlePropChanges } from '../shared/index';
export class MzModalComponent extends HandlePropChanges {
/**
* @param {?} renderer
*/
constructor(renderer) {
super();
this.renderer = renderer;
this.close = new EventEmitter();
}
/**
* @return {?}
*/
ngOnInit() {
this.initHandlers();
this.initElements();
this.handleProperties();
}
/**
* @return {?}
*/
ngAfterViewInit() {
this.initModal();
}
/**
* @return {?}
*/
initElements() {
this.modalElement = $(this.modalElementRef.nativeElement);
}
/**
* @return {?}
*/
initHandlers() {
this.handlers = {
options: () => this.handleOptions(),
};
}
/**
* @return {?}
*/
initModal() {
this.renderer.invokeElementMethod(this.modalElement, 'modal', [this.options]);
}
/**
* @return {?}
*/
handleProperties() {
super.executePropHandlers();
}
/**
* @return {?}
*/
handleOptions() {
// extend complete function to emit close event on callback return
const /** @type {?} */ originalCompleteFn = this.options && this.options.complete || (() => { });
this.options = Object.assign({}, this.options, {
complete: () => {
originalCompleteFn();
this.close.emit();
},
});
}
/**
* @return {?}
*/
openModal() {
this.renderer.invokeElementMethod(this.modalElement, 'modal', ['open']);
}
/**
* @return {?}
*/
closeModal() {
this.renderer.invokeElementMethod(this.modalElement, 'modal', ['close']);
}
}
MzModalComponent.decorators = [
{ type: Component, args: [{
selector: 'mz-modal',
template: `<div #modal
class="modal"
[class.modal-fixed-footer]="fixedFooter"
[class.bottom-sheet]="bottomSheet"
[class.modal-fullscreen]="fullscreen"
>
<div class="modal-content">
<ng-content select="mz-modal-header"></ng-content>
<div>
<ng-content select="mz-modal-content"></ng-content>
</div>
</div>
<div class="modal-footer">
<ng-content select="mz-modal-footer"></ng-content>
</div>
</div>
`,
styles: [`.modal:not(.bottom-sheet).modal-fullscreen{top:12px!important;margin:0 auto;width:calc(100% - 24px);height:calc(100% - 24px);max-height:none}.modal.bottom-sheet.modal-fullscreen{height:100%;max-height:none}/deep/ mz-modal-header h5,/deep/ mz-modal-header h6{margin-top:0}`],
},] },
];
/** @nocollapse */
MzModalComponent.ctorParameters = () => [
{ type: Renderer, },
];
MzModalComponent.propDecorators = {
"bottomSheet": [{ type: Input },],
"fixedFooter": [{ type: Input },],
"fullscreen": [{ type: Input },],
"options": [{ type: Input },],
"close": [{ type: Output },],
"modalElementRef": [{ type: ViewChild, args: ['modal',] },],
};
function MzModalComponent_tsickle_Closure_declarations() {
/** @type {!Array<{type: !Function, args: (undefined|!Array<?>)}>} */
MzModalComponent.decorators;
/**
* @nocollapse
* @type {function(): !Array<(null|{type: ?, decorators: (undefined|!Array<{type: !Function, args: (undefined|!Array<?>)}>)})>}
*/
MzModalComponent.ctorParameters;
/** @type {!Object<string,!Array<{type: !Function, args: (undefined|!Array<?>)}>>} */
MzModalComponent.propDecorators;
/** @type {?} */
MzModalComponent.prototype.bottomSheet;
/** @type {?} */
MzModalComponent.prototype.fixedFooter;
/** @type {?} */
MzModalComponent.prototype.fullscreen;
/** @type {?} */
MzModalComponent.prototype.options;
/** @type {?} */
MzModalComponent.prototype.close;
/** @type {?} */
MzModalComponent.prototype.modalElementRef;
/** @type {?} */
MzModalComponent.prototype.modalElement;
/** @type {?} */
MzModalComponent.prototype.renderer;
}
export class MzModalHeaderDirective {
}
MzModalHeaderDirective.decorators = [
{ type: Directive, args: [{ selector: 'mz-modal-header' },] },
];
function MzModalHeaderDirective_tsickle_Closure_declarations() {
/** @type {!Array<{type: !Function, args: (undefined|!Array<?>)}>} */
MzModalHeaderDirective.decorators;
/**
* @nocollapse
* @type {function(): !Array<(null|{type: ?, decorators: (undefined|!Array<{type: !Function, args: (undefined|!Array<?>)}>)})>}
*/
MzModalHeaderDirective.ctorParameters;
}
export class MzModalContentDirective {
}
MzModalContentDirective.decorators = [
{ type: Directive, args: [{ selector: 'mz-modal-content' },] },
];
function MzModalContentDirective_tsickle_Closure_declarations() {
/** @type {!Array<{type: !Function, args: (undefined|!Array<?>)}>} */
MzModalContentDirective.decorators;
/**
* @nocollapse
* @type {function(): !Array<(null|{type: ?, decorators: (undefined|!Array<{type: !Function, args: (undefined|!Array<?>)}>)})>}
*/
MzModalContentDirective.ctorParameters;
}
export class MzModalFooterDirective {
}
MzModalFooterDirective.decorators = [
{ type: Directive, args: [{ selector: 'mz-modal-footer' },] },
];
function MzModalFooterDirective_tsickle_Closure_declarations() {
/** @type {!Array<{type: !Function, args: (undefined|!Array<?>)}>} */
MzModalFooterDirective.decorators;
/**
* @nocollapse
* @type {function(): !Array<(null|{type: ?, decorators: (undefined|!Array<{type: !Function, args: (undefined|!Array<?>)}>)})>}
*/
MzModalFooterDirective.ctorParameters;
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kYWwuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vbmd4LW1hdGVyaWFsaXplLyIsInNvdXJjZXMiOlsic3JjL21vZGFsL21vZGFsLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsT0FBTyxFQUVMLFNBQVMsRUFDVCxTQUFTLEVBQ1QsVUFBVSxFQUNWLFlBQVksRUFDWixLQUFLLEVBRUwsTUFBTSxFQUNOLFFBQVEsRUFDUixTQUFTLEdBQ1YsTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUF1QnBELE1BQU0sdUJBQXdCLFNBQVEsaUJBQWlCOzs7O0lBVXJELFlBQW1CLFFBQWtCO1FBQ25DLEtBQUssRUFBRSxDQUFDO1FBRFMsYUFBUSxHQUFSLFFBQVEsQ0FBVTtxQkFMbkIsSUFBSSxZQUFZLEVBQVE7S0FPekM7Ozs7SUFFRCxRQUFRO1FBQ04sSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO1FBQ3BCLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUNwQixJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztLQUN6Qjs7OztJQUVELGVBQWU7UUFDYixJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7S0FDbEI7Ozs7SUFFRCxZQUFZO1FBQ1YsSUFBSSxDQUFDLFlBQVksR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxhQUFhLENBQUMsQ0FBQztLQUMzRDs7OztJQUVELFlBQVk7UUFDVixJQUFJLENBQUMsUUFBUSxHQUFHO1lBQ2IsT0FBTyxFQUFFLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxhQUFhLEVBQUU7U0FDckMsQ0FBQztLQUNIOzs7O0lBRUQsU0FBUztRQUNQLElBQUksQ0FBQyxRQUFRLENBQUMsbUJBQW1CLENBQUMsSUFBSSxDQUFDLFlBQVksRUFBRSxPQUFPLEVBQUUsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQztLQUMvRTs7OztJQUVELGdCQUFnQjtRQUNkLEtBQUssQ0FBQyxtQkFBbUIsRUFBRSxDQUFDO0tBQzdCOzs7O0lBRUQsYUFBYTs7UUFFWCx1QkFBTSxrQkFBa0IsR0FBRyxJQUFJLENBQUMsT0FBTyxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxJQUFJLENBQUMsR0FBRyxFQUFFLElBQUcsQ0FBQyxDQUFDO1FBQy9FLElBQUksQ0FBQyxPQUFPLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLEVBQUUsSUFBSSxDQUFDLE9BQU8sRUFBRTtZQUM3QyxRQUFRLEVBQUUsR0FBRyxFQUFFO2dCQUNiLGtCQUFrQixFQUFFLENBQUM7Z0JBQ3JCLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLENBQUM7YUFDbkI7U0FDRixDQUFDLENBQUM7S0FDSjs7OztJQUVELFNBQVM7UUFDUCxJQUFJLENBQUMsUUFBUSxDQUFDLG1CQUFtQixDQUFDLElBQUksQ0FBQyxZQUFZLEVBQUUsT0FBTyxFQUFFLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQztLQUN6RTs7OztJQUVELFVBQVU7UUFDUixJQUFJLENBQUMsUUFBUSxDQUFDLG1CQUFtQixDQUFDLElBQUksQ0FBQyxZQUFZLEVBQUUsT0FBTyxFQUFFLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQztLQUMxRTs7O1lBaEZGLFNBQVMsU0FBQztnQkFDVCxRQUFRLEVBQUUsVUFBVTtnQkFDcEIsUUFBUSxFQUFFOzs7Ozs7Ozs7Ozs7Ozs7O0NBZ0JYO2dCQUNDLE1BQU0sRUFBRSxDQUFDLGlSQUFpUixDQUFDO2FBQzVSOzs7O1lBMUJDLFFBQVE7Ozs0QkE0QlAsS0FBSzs0QkFDTCxLQUFLOzJCQUNMLEtBQUs7d0JBQ0wsS0FBSztzQkFDTCxNQUFNO2dDQUNOLFNBQVMsU0FBQyxPQUFPOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQTJEd0IsTUFBTTs7O1lBQWpELFNBQVMsU0FBQyxFQUFFLFFBQVEsRUFBRSxpQkFBaUIsRUFBRTs7Ozs7Ozs7Ozs7QUFDRyxNQUFNOzs7WUFBbEQsU0FBUyxTQUFDLEVBQUUsUUFBUSxFQUFFLGtCQUFrQixFQUFFOzs7Ozs7Ozs7OztBQUNDLE1BQU07OztZQUFqRCxTQUFTLFNBQUMsRUFBRSxRQUFRLEVBQUUsaUJBQWlCLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIEFmdGVyVmlld0luaXQsXHJcbiAgQ29tcG9uZW50LFxyXG4gIERpcmVjdGl2ZSxcclxuICBFbGVtZW50UmVmLFxyXG4gIEV2ZW50RW1pdHRlcixcclxuICBJbnB1dCxcclxuICBPbkluaXQsXHJcbiAgT3V0cHV0LFxyXG4gIFJlbmRlcmVyLFxyXG4gIFZpZXdDaGlsZCxcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuXHJcbmltcG9ydCB7IEhhbmRsZVByb3BDaGFuZ2VzIH0gZnJvbSAnLi4vc2hhcmVkL2luZGV4JztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnbXotbW9kYWwnLFxyXG4gIHRlbXBsYXRlOiBgPGRpdiAjbW9kYWxcclxuICBjbGFzcz1cIm1vZGFsXCJcclxuICBbY2xhc3MubW9kYWwtZml4ZWQtZm9vdGVyXT1cImZpeGVkRm9vdGVyXCJcclxuICBbY2xhc3MuYm90dG9tLXNoZWV0XT1cImJvdHRvbVNoZWV0XCJcclxuICBbY2xhc3MubW9kYWwtZnVsbHNjcmVlbl09XCJmdWxsc2NyZWVuXCJcclxuPlxyXG4gIDxkaXYgY2xhc3M9XCJtb2RhbC1jb250ZW50XCI+XHJcbiAgICA8bmctY29udGVudCBzZWxlY3Q9XCJtei1tb2RhbC1oZWFkZXJcIj48L25nLWNvbnRlbnQ+XHJcbiAgICA8ZGl2PlxyXG4gICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJtei1tb2RhbC1jb250ZW50XCI+PC9uZy1jb250ZW50PlxyXG4gICAgPC9kaXY+XHJcbiAgPC9kaXY+XHJcbiAgPGRpdiBjbGFzcz1cIm1vZGFsLWZvb3RlclwiPlxyXG4gICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwibXotbW9kYWwtZm9vdGVyXCI+PC9uZy1jb250ZW50PlxyXG4gIDwvZGl2PlxyXG48L2Rpdj5cclxuYCxcclxuICBzdHlsZXM6IFtgLm1vZGFsOm5vdCguYm90dG9tLXNoZWV0KS5tb2RhbC1mdWxsc2NyZWVue3RvcDoxMnB4IWltcG9ydGFudDttYXJnaW46MCBhdXRvO3dpZHRoOmNhbGMoMTAwJSAtIDI0cHgpO2hlaWdodDpjYWxjKDEwMCUgLSAyNHB4KTttYXgtaGVpZ2h0Om5vbmV9Lm1vZGFsLmJvdHRvbS1zaGVldC5tb2RhbC1mdWxsc2NyZWVue2hlaWdodDoxMDAlO21heC1oZWlnaHQ6bm9uZX0vZGVlcC8gbXotbW9kYWwtaGVhZGVyIGg1LC9kZWVwLyBtei1tb2RhbC1oZWFkZXIgaDZ7bWFyZ2luLXRvcDowfWBdLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgTXpNb2RhbENvbXBvbmVudCBleHRlbmRzIEhhbmRsZVByb3BDaGFuZ2VzIGltcGxlbWVudHMgT25Jbml0LCBBZnRlclZpZXdJbml0IHtcclxuICBASW5wdXQoKSBib3R0b21TaGVldDogYm9vbGVhbjtcclxuICBASW5wdXQoKSBmaXhlZEZvb3RlcjogYm9vbGVhbjtcclxuICBASW5wdXQoKSBmdWxsc2NyZWVuOiBib29sZWFuO1xyXG4gIEBJbnB1dCgpIG9wdGlvbnM6IE1hdGVyaWFsaXplLk1vZGFsT3B0aW9ucztcclxuICBAT3V0cHV0KCkgY2xvc2UgPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XHJcbiAgQFZpZXdDaGlsZCgnbW9kYWwnKSBtb2RhbEVsZW1lbnRSZWY6IEVsZW1lbnRSZWY7XHJcblxyXG4gIG1vZGFsRWxlbWVudDogSlF1ZXJ5O1xyXG5cclxuICBjb25zdHJ1Y3RvcihwdWJsaWMgcmVuZGVyZXI6IFJlbmRlcmVyKSB7XHJcbiAgICBzdXBlcigpO1xyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQoKSB7XHJcbiAgICB0aGlzLmluaXRIYW5kbGVycygpO1xyXG4gICAgdGhpcy5pbml0RWxlbWVudHMoKTtcclxuICAgIHRoaXMuaGFuZGxlUHJvcGVydGllcygpO1xyXG4gIH1cclxuXHJcbiAgbmdBZnRlclZpZXdJbml0KCkge1xyXG4gICAgdGhpcy5pbml0TW9kYWwoKTtcclxuICB9XHJcblxyXG4gIGluaXRFbGVtZW50cygpIHtcclxuICAgIHRoaXMubW9kYWxFbGVtZW50ID0gJCh0aGlzLm1vZGFsRWxlbWVudFJlZi5uYXRpdmVFbGVtZW50KTtcclxuICB9XHJcblxyXG4gIGluaXRIYW5kbGVycygpIHtcclxuICAgIHRoaXMuaGFuZGxlcnMgPSB7XHJcbiAgICAgICBvcHRpb25zOiAoKSA9PiB0aGlzLmhhbmRsZU9wdGlvbnMoKSxcclxuICAgIH07XHJcbiAgfVxyXG5cclxuICBpbml0TW9kYWwoKSB7XHJcbiAgICB0aGlzLnJlbmRlcmVyLmludm9rZUVsZW1lbnRNZXRob2QodGhpcy5tb2RhbEVsZW1lbnQsICdtb2RhbCcsIFt0aGlzLm9wdGlvbnNdKTtcclxuICB9XHJcblxyXG4gIGhhbmRsZVByb3BlcnRpZXMoKSB7XHJcbiAgICBzdXBlci5leGVjdXRlUHJvcEhhbmRsZXJzKCk7XHJcbiAgfVxyXG5cclxuICBoYW5kbGVPcHRpb25zKCkge1xyXG4gICAgLy8gZXh0ZW5kIGNvbXBsZXRlIGZ1bmN0aW9uIHRvIGVtaXQgY2xvc2UgZXZlbnQgb24gY2FsbGJhY2sgcmV0dXJuXHJcbiAgICBjb25zdCBvcmlnaW5hbENvbXBsZXRlRm4gPSB0aGlzLm9wdGlvbnMgJiYgdGhpcy5vcHRpb25zLmNvbXBsZXRlIHx8ICgoKSA9PiB7fSk7XHJcbiAgICB0aGlzLm9wdGlvbnMgPSBPYmplY3QuYXNzaWduKHt9LCB0aGlzLm9wdGlvbnMsIHtcclxuICAgICAgY29tcGxldGU6ICgpID0+IHtcclxuICAgICAgICBvcmlnaW5hbENvbXBsZXRlRm4oKTtcclxuICAgICAgICB0aGlzLmNsb3NlLmVtaXQoKTtcclxuICAgICAgfSxcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgb3Blbk1vZGFsKCkge1xyXG4gICAgdGhpcy5yZW5kZXJlci5pbnZva2VFbGVtZW50TWV0aG9kKHRoaXMubW9kYWxFbGVtZW50LCAnbW9kYWwnLCBbJ29wZW4nXSk7XHJcbiAgfVxyXG5cclxuICBjbG9zZU1vZGFsKCkge1xyXG4gICAgdGhpcy5yZW5kZXJlci5pbnZva2VFbGVtZW50TWV0aG9kKHRoaXMubW9kYWxFbGVtZW50LCAnbW9kYWwnLCBbJ2Nsb3NlJ10pO1xyXG4gIH1cclxufVxyXG5cclxuLy8gRGVjbGFyZSB0aGUgdGFncyB0byBhdm9pZCBlcnJvcjogJzxtei1tb2RhbC14PicgaXMgbm90IGEga25vd24gZWxlbWVudFxyXG4vLyBodHRwczovL2dpdGh1Yi5jb20vYW5ndWxhci9hbmd1bGFyL2lzc3Vlcy8xMTI1MVxyXG4vLyB0c2xpbnQ6ZGlzYWJsZTogZGlyZWN0aXZlLXNlbGVjdG9yXHJcbkBEaXJlY3RpdmUoeyBzZWxlY3RvcjogJ216LW1vZGFsLWhlYWRlcicgfSkgZXhwb3J0IGNsYXNzIE16TW9kYWxIZWFkZXJEaXJlY3RpdmUgeyB9XHJcbkBEaXJlY3RpdmUoeyBzZWxlY3RvcjogJ216LW1vZGFsLWNvbnRlbnQnIH0pIGV4cG9ydCBjbGFzcyBNek1vZGFsQ29udGVudERpcmVjdGl2ZSB7IH1cclxuQERpcmVjdGl2ZSh7IHNlbGVjdG9yOiAnbXotbW9kYWwtZm9vdGVyJyB9KSBleHBvcnQgY2xhc3MgTXpNb2RhbEZvb3RlckRpcmVjdGl2ZSB7IH1cclxuIl19