ngx-materialize
Version:
An Angular wrap around Materialize library
50 lines (49 loc) • 3.6 kB
JavaScript
/**
* @fileoverview added by tsickle
* @suppress {checkTypes} checked by tsc
*/
import { Injectable, } from '@angular/core';
import { first } from 'rxjs/operators';
import { MzInjectionService } from '../../shared/injection/injection.service';
export class MzModalService {
/**
* @param {?} injectionService
*/
constructor(injectionService) {
this.injectionService = injectionService;
}
/**
* Open modal component.
* @param {?} componentClass
* @param {?=} options
* @return {?}
*/
open(componentClass, options = {}) {
const /** @type {?} */ componentRef = this.injectionService.appendComponent(componentClass, options);
componentRef.instance.modalComponent.close
.pipe(first())
.subscribe(() => {
componentRef.destroy();
});
return componentRef;
}
}
MzModalService.decorators = [
{ type: Injectable },
];
/** @nocollapse */
MzModalService.ctorParameters = () => [
{ type: MzInjectionService, },
];
function MzModalService_tsickle_Closure_declarations() {
/** @type {!Array<{type: !Function, args: (undefined|!Array<?>)}>} */
MzModalService.decorators;
/**
* @nocollapse
* @type {function(): !Array<(null|{type: ?, decorators: (undefined|!Array<{type: !Function, args: (undefined|!Array<?>)}>)})>}
*/
MzModalService.ctorParameters;
/** @type {?} */
MzModalService.prototype.injectionService;
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kYWwuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL25neC1tYXRlcmlhbGl6ZS8iLCJzb3VyY2VzIjpbInNyYy9tb2RhbC9zZXJ2aWNlcy9tb2RhbC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSxPQUFPLEVBRUwsVUFBVSxHQUVYLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUV2QyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSwwQ0FBMEMsQ0FBQztBQUk5RSxNQUFNOzs7O0lBRUosWUFDVTtRQUFBLHFCQUFnQixHQUFoQixnQkFBZ0I7S0FDckI7Ozs7Ozs7SUFLTCxJQUFJLENBQUMsY0FBaUMsRUFBRSxVQUFlLEVBQUU7UUFDdkQsdUJBQU0sWUFBWSxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxlQUFlLENBQUMsY0FBYyxFQUFFLE9BQU8sQ0FBQyxDQUFDO1FBQ3BGLFlBQVksQ0FBQyxRQUFRLENBQUMsY0FBYyxDQUFDLEtBQUs7YUFDdkMsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO2FBQ2IsU0FBUyxDQUFDLEdBQUcsRUFBRTtZQUNkLFlBQVksQ0FBQyxPQUFPLEVBQUUsQ0FBQztTQUN4QixDQUFDLENBQUM7UUFDTCxNQUFNLENBQUMsWUFBWSxDQUFDO0tBQ3JCOzs7WUFsQkYsVUFBVTs7OztZQUhGLGtCQUFrQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgQ29tcG9uZW50UmVmLFxyXG4gIEluamVjdGFibGUsXHJcbiAgVHlwZSxcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgZmlyc3QgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcblxyXG5pbXBvcnQgeyBNekluamVjdGlvblNlcnZpY2UgfSBmcm9tICcuLi8uLi9zaGFyZWQvaW5qZWN0aW9uL2luamVjdGlvbi5zZXJ2aWNlJztcclxuaW1wb3J0IHsgTXpCYXNlTW9kYWwgfSBmcm9tICcuLi9tb2RhbC1iYXNlL2luZGV4JztcclxuXHJcbkBJbmplY3RhYmxlKClcclxuZXhwb3J0IGNsYXNzIE16TW9kYWxTZXJ2aWNlIHtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIGluamVjdGlvblNlcnZpY2U6IE16SW5qZWN0aW9uU2VydmljZSxcclxuICApIHsgfVxyXG5cclxuICAvKipcclxuICAgKiBPcGVuIG1vZGFsIGNvbXBvbmVudC5cclxuICAgKi9cclxuICBvcGVuKGNvbXBvbmVudENsYXNzOiBUeXBlPE16QmFzZU1vZGFsPiwgb3B0aW9uczogYW55ID0ge30pOiBDb21wb25lbnRSZWY8TXpCYXNlTW9kYWw+IHtcclxuICAgIGNvbnN0IGNvbXBvbmVudFJlZiA9IHRoaXMuaW5qZWN0aW9uU2VydmljZS5hcHBlbmRDb21wb25lbnQoY29tcG9uZW50Q2xhc3MsIG9wdGlvbnMpO1xyXG4gICAgY29tcG9uZW50UmVmLmluc3RhbmNlLm1vZGFsQ29tcG9uZW50LmNsb3NlXHJcbiAgICAgIC5waXBlKGZpcnN0KCkpXHJcbiAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xyXG4gICAgICAgIGNvbXBvbmVudFJlZi5kZXN0cm95KCk7XHJcbiAgICAgIH0pO1xyXG4gICAgcmV0dXJuIGNvbXBvbmVudFJlZjtcclxuICB9XHJcbn1cclxuIl19