@duoduo-oba/ng-devui
Version:
DevUI components based on Angular
95 lines • 9.2 kB
JavaScript
/**
* @fileoverview added by tsickle
* Generated from: drawer.service.ts
* @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
import { ComponentFactoryResolver, Injectable } from '@angular/core';
import { assign, isUndefined } from 'lodash-es';
import { OverlayContainerRef } from '@duoduo-oba/ng-devui/overlay-container';
import { DrawerComponent } from './drawer.component';
export class DrawerService {
/**
* @param {?} overlayContainerRef
* @param {?} componentFactoryResolver
*/
constructor(overlayContainerRef, componentFactoryResolver) {
this.overlayContainerRef = overlayContainerRef;
this.componentFactoryResolver = componentFactoryResolver;
}
/**
* @param {?} __0
* @return {?}
*/
open({ drawerContentComponent, injector, componentFactoryResolver, id, width, fullScreen, data, isCover, clickDoms, onClose, afterOpened, backdropCloseable, escKeyCloseable, beforeHidden, destroyOnHide = true, position = 'right', bodyScrollable }) {
/** @type {?} */
const componentFactoryResolver_ = componentFactoryResolver || this.componentFactoryResolver;
/** @type {?} */
const drawerRef = this.overlayContainerRef.createComponent(componentFactoryResolver_.resolveComponentFactory(DrawerComponent), injector);
assign(drawerRef.instance, {
id,
width,
isCover,
clickDoms,
fullScreen,
beforeHidden,
afterOpened,
escKeyCloseable,
position,
backdropCloseable: isUndefined(backdropCloseable) ? true : backdropCloseable,
bodyScrollable
});
/** @type {?} */
const drawerContentRef = drawerRef.instance.drawerContentHost.viewContainerRef.createComponent(componentFactoryResolver_.resolveComponentFactory(drawerContentComponent), 0, injector);
assign(drawerContentRef.instance, data);
drawerRef.instance.onHidden = (/**
* @return {?}
*/
() => {
if (onClose) {
onClose();
}
if (destroyOnHide) {
setTimeout((/**
* @return {?}
*/
() => {
drawerRef.hostView.destroy();
}));
}
});
drawerRef.instance.destroy = (/**
* @return {?}
*/
() => {
if (!destroyOnHide && drawerRef.instance.animateState === 'void') {
drawerRef.hostView.destroy();
}
});
drawerRef.instance.show();
return {
drawerInstance: drawerRef.instance,
drawerContentInstance: drawerContentRef.instance
};
}
}
DrawerService.decorators = [
{ type: Injectable }
];
/** @nocollapse */
DrawerService.ctorParameters = () => [
{ type: OverlayContainerRef },
{ type: ComponentFactoryResolver }
];
if (false) {
/**
* @type {?}
* @private
*/
DrawerService.prototype.overlayContainerRef;
/**
* @type {?}
* @private
*/
DrawerService.prototype.componentFactoryResolver;
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJhd2VyLnNlcnZpY2UuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9uZy1kZXZ1aS9kcmF3ZXIvIiwic291cmNlcyI6WyJkcmF3ZXIuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDckUsT0FBTyxFQUFFLE1BQU0sRUFBRSxXQUFXLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDaEQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDakUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBSXJELE1BQU0sT0FBTyxhQUFhOzs7OztJQUN4QixZQUNVLG1CQUF3QyxFQUN4Qyx3QkFBa0Q7UUFEbEQsd0JBQW1CLEdBQW5CLG1CQUFtQixDQUFxQjtRQUN4Qyw2QkFBd0IsR0FBeEIsd0JBQXdCLENBQTBCO0lBQ3pELENBQUM7Ozs7O0lBRUosSUFBSSxDQUFDLEVBQ0gsc0JBQXNCLEVBQ3RCLFFBQVEsRUFDUix3QkFBd0IsRUFDeEIsRUFBRSxFQUNGLEtBQUssRUFDTCxVQUFVLEVBQ1YsSUFBSSxFQUNKLE9BQU8sRUFDUCxTQUFTLEVBQ1QsT0FBTyxFQUNQLFdBQVcsRUFDWCxpQkFBaUIsRUFDakIsZUFBZSxFQUNmLFlBQVksRUFDWixhQUFhLEdBQUcsSUFBSSxFQUNwQixRQUFRLEdBQUcsT0FBTyxFQUNsQixjQUFjLEVBQ0M7O2NBQ1QseUJBQXlCLEdBQUcsd0JBQXdCLElBQUksSUFBSSxDQUFDLHdCQUF3Qjs7Y0FDckYsU0FBUyxHQUFHLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxlQUFlLENBQ3hELHlCQUF5QixDQUFDLHVCQUF1QixDQUFDLGVBQWUsQ0FBQyxFQUNsRSxRQUFRLENBQ1Q7UUFDRCxNQUFNLENBQUMsU0FBUyxDQUFDLFFBQVEsRUFBRTtZQUN6QixFQUFFO1lBQ0YsS0FBSztZQUNMLE9BQU87WUFDUCxTQUFTO1lBQ1QsVUFBVTtZQUNWLFlBQVk7WUFDWixXQUFXO1lBQ1gsZUFBZTtZQUNmLFFBQVE7WUFDUixpQkFBaUIsRUFBRSxXQUFXLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxpQkFBaUI7WUFDNUUsY0FBYztTQUNmLENBQUMsQ0FBQzs7Y0FFRyxnQkFBZ0IsR0FBRyxTQUFTLENBQUMsUUFBUSxDQUFDLGlCQUFpQixDQUFDLGdCQUFnQixDQUFDLGVBQWUsQ0FDNUYseUJBQXlCLENBQUMsdUJBQXVCLENBQUMsc0JBQXNCLENBQUMsRUFDekUsQ0FBQyxFQUNELFFBQVEsQ0FDVDtRQUNELE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFFeEMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxRQUFROzs7UUFBRyxHQUFHLEVBQUU7WUFDakMsSUFBSSxPQUFPLEVBQUU7Z0JBQ1gsT0FBTyxFQUFFLENBQUM7YUFDWDtZQUNELElBQUksYUFBYSxFQUFFO2dCQUNqQixVQUFVOzs7Z0JBQUMsR0FBRyxFQUFFO29CQUNkLFNBQVMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLENBQUM7Z0JBQy9CLENBQUMsRUFBQyxDQUFDO2FBQ0o7UUFDSCxDQUFDLENBQUEsQ0FBQztRQUVGLFNBQVMsQ0FBQyxRQUFRLENBQUMsT0FBTzs7O1FBQUcsR0FBRyxFQUFFO1lBQ2hDLElBQUksQ0FBQyxhQUFhLElBQUksU0FBUyxDQUFDLFFBQVEsQ0FBQyxZQUFZLEtBQUssTUFBTSxFQUFFO2dCQUNoRSxTQUFTLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxDQUFDO2FBQzlCO1FBQ0gsQ0FBQyxDQUFBLENBQUM7UUFFRixTQUFTLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxDQUFDO1FBQzFCLE9BQU87WUFDTCxjQUFjLEVBQUUsU0FBUyxDQUFDLFFBQVE7WUFDbEMscUJBQXFCLEVBQUUsZ0JBQWdCLENBQUMsUUFBUTtTQUNqRCxDQUFDO0lBQ0osQ0FBQzs7O1lBMUVGLFVBQVU7Ozs7WUFKRixtQkFBbUI7WUFGbkIsd0JBQXdCOzs7Ozs7O0lBUzdCLDRDQUFnRDs7Ozs7SUFDaEQsaURBQTBEIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50RmFjdG9yeVJlc29sdmVyLCBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IGFzc2lnbiwgaXNVbmRlZmluZWQgfSBmcm9tICdsb2Rhc2gtZXMnO1xyXG5pbXBvcnQgeyBPdmVybGF5Q29udGFpbmVyUmVmIH0gZnJvbSAnbmctZGV2dWkvb3ZlcmxheS1jb250YWluZXInO1xyXG5pbXBvcnQgeyBEcmF3ZXJDb21wb25lbnQgfSBmcm9tICcuL2RyYXdlci5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBJRHJhd2VyT3BlblJlc3VsdCwgSURyYXdlck9wdGlvbnMgfSBmcm9tICcuL2RyYXdlci50eXBlcyc7XHJcblxyXG5ASW5qZWN0YWJsZSgpXHJcbmV4cG9ydCBjbGFzcyBEcmF3ZXJTZXJ2aWNlIHtcclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgb3ZlcmxheUNvbnRhaW5lclJlZjogT3ZlcmxheUNvbnRhaW5lclJlZixcclxuICAgIHByaXZhdGUgY29tcG9uZW50RmFjdG9yeVJlc29sdmVyOiBDb21wb25lbnRGYWN0b3J5UmVzb2x2ZXJcclxuICApIHt9XHJcblxyXG4gIG9wZW4oe1xyXG4gICAgZHJhd2VyQ29udGVudENvbXBvbmVudCxcclxuICAgIGluamVjdG9yLFxyXG4gICAgY29tcG9uZW50RmFjdG9yeVJlc29sdmVyLFxyXG4gICAgaWQsXHJcbiAgICB3aWR0aCxcclxuICAgIGZ1bGxTY3JlZW4sXHJcbiAgICBkYXRhLFxyXG4gICAgaXNDb3ZlcixcclxuICAgIGNsaWNrRG9tcyxcclxuICAgIG9uQ2xvc2UsXHJcbiAgICBhZnRlck9wZW5lZCxcclxuICAgIGJhY2tkcm9wQ2xvc2VhYmxlLFxyXG4gICAgZXNjS2V5Q2xvc2VhYmxlLFxyXG4gICAgYmVmb3JlSGlkZGVuLFxyXG4gICAgZGVzdHJveU9uSGlkZSA9IHRydWUsXHJcbiAgICBwb3NpdGlvbiA9ICdyaWdodCcsXHJcbiAgICBib2R5U2Nyb2xsYWJsZVxyXG4gIH06IElEcmF3ZXJPcHRpb25zKTogSURyYXdlck9wZW5SZXN1bHQge1xyXG4gICAgY29uc3QgY29tcG9uZW50RmFjdG9yeVJlc29sdmVyXyA9IGNvbXBvbmVudEZhY3RvcnlSZXNvbHZlciB8fCB0aGlzLmNvbXBvbmVudEZhY3RvcnlSZXNvbHZlcjtcclxuICAgIGNvbnN0IGRyYXdlclJlZiA9IHRoaXMub3ZlcmxheUNvbnRhaW5lclJlZi5jcmVhdGVDb21wb25lbnQoXHJcbiAgICAgIGNvbXBvbmVudEZhY3RvcnlSZXNvbHZlcl8ucmVzb2x2ZUNvbXBvbmVudEZhY3RvcnkoRHJhd2VyQ29tcG9uZW50KSxcclxuICAgICAgaW5qZWN0b3JcclxuICAgICk7XHJcbiAgICBhc3NpZ24oZHJhd2VyUmVmLmluc3RhbmNlLCB7XHJcbiAgICAgIGlkLFxyXG4gICAgICB3aWR0aCxcclxuICAgICAgaXNDb3ZlcixcclxuICAgICAgY2xpY2tEb21zLFxyXG4gICAgICBmdWxsU2NyZWVuLFxyXG4gICAgICBiZWZvcmVIaWRkZW4sXHJcbiAgICAgIGFmdGVyT3BlbmVkLFxyXG4gICAgICBlc2NLZXlDbG9zZWFibGUsXHJcbiAgICAgIHBvc2l0aW9uLFxyXG4gICAgICBiYWNrZHJvcENsb3NlYWJsZTogaXNVbmRlZmluZWQoYmFja2Ryb3BDbG9zZWFibGUpID8gdHJ1ZSA6IGJhY2tkcm9wQ2xvc2VhYmxlLFxyXG4gICAgICBib2R5U2Nyb2xsYWJsZVxyXG4gICAgfSk7XHJcblxyXG4gICAgY29uc3QgZHJhd2VyQ29udGVudFJlZiA9IGRyYXdlclJlZi5pbnN0YW5jZS5kcmF3ZXJDb250ZW50SG9zdC52aWV3Q29udGFpbmVyUmVmLmNyZWF0ZUNvbXBvbmVudChcclxuICAgICAgY29tcG9uZW50RmFjdG9yeVJlc29sdmVyXy5yZXNvbHZlQ29tcG9uZW50RmFjdG9yeShkcmF3ZXJDb250ZW50Q29tcG9uZW50KSxcclxuICAgICAgMCxcclxuICAgICAgaW5qZWN0b3JcclxuICAgICk7XHJcbiAgICBhc3NpZ24oZHJhd2VyQ29udGVudFJlZi5pbnN0YW5jZSwgZGF0YSk7XHJcblxyXG4gICAgZHJhd2VyUmVmLmluc3RhbmNlLm9uSGlkZGVuID0gKCkgPT4ge1xyXG4gICAgICBpZiAob25DbG9zZSkge1xyXG4gICAgICAgIG9uQ2xvc2UoKTtcclxuICAgICAgfVxyXG4gICAgICBpZiAoZGVzdHJveU9uSGlkZSkge1xyXG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgICAgZHJhd2VyUmVmLmhvc3RWaWV3LmRlc3Ryb3koKTtcclxuICAgICAgICB9KTtcclxuICAgICAgfVxyXG4gICAgfTtcclxuXHJcbiAgICBkcmF3ZXJSZWYuaW5zdGFuY2UuZGVzdHJveSA9ICgpID0+IHtcclxuICAgICAgaWYgKCFkZXN0cm95T25IaWRlICYmIGRyYXdlclJlZi5pbnN0YW5jZS5hbmltYXRlU3RhdGUgPT09ICd2b2lkJykge1xyXG4gICAgICAgIGRyYXdlclJlZi5ob3N0Vmlldy5kZXN0cm95KCk7XHJcbiAgICAgIH1cclxuICAgIH07XHJcblxyXG4gICAgZHJhd2VyUmVmLmluc3RhbmNlLnNob3coKTtcclxuICAgIHJldHVybiB7XHJcbiAgICAgIGRyYXdlckluc3RhbmNlOiBkcmF3ZXJSZWYuaW5zdGFuY2UsXHJcbiAgICAgIGRyYXdlckNvbnRlbnRJbnN0YW5jZTogZHJhd2VyQ29udGVudFJlZi5pbnN0YW5jZVxyXG4gICAgfTtcclxuICB9XHJcbn1cclxuIl19