ng-devui
Version:
DevUI components based on Angular
65 lines • 9.58 kB
JavaScript
import { ComponentFactoryResolver, Injectable } from '@angular/core';
import { OverlayContainerRef } from 'ng-devui/overlay-container';
import { assign, isUndefined } from 'lodash-es';
import { DrawerComponent } from './drawer.component';
import * as i0 from "@angular/core";
import * as i1 from "ng-devui/overlay-container";
export class DrawerService {
constructor(overlayContainerRef, componentFactoryResolver) {
this.overlayContainerRef = overlayContainerRef;
this.componentFactoryResolver = componentFactoryResolver;
}
open({ drawerContentComponent, injector, componentFactoryResolver, id, zIndex, width, fullScreen, // @deprecated
data, isCover, clickDoms, onClose, afterOpened, backdropCloseable, escKeyCloseable, beforeHidden, destroyOnHide = true, position = 'right', bodyScrollable = true, showAnimation = true, contentTemplate, resizable = false }) {
const componentFactoryResolver_ = componentFactoryResolver || this.componentFactoryResolver;
const drawerRef = this.overlayContainerRef.createComponent(componentFactoryResolver_.resolveComponentFactory(DrawerComponent), injector);
assign(drawerRef.instance, {
id,
width,
zIndex,
isCover,
clickDoms,
fullScreen,
beforeHidden,
afterOpened,
escKeyCloseable,
position,
backdropCloseable: isUndefined(backdropCloseable) ? true : backdropCloseable,
bodyScrollable,
showAnimation,
contentTemplate,
resizable
});
let drawerContentRef;
if (drawerContentComponent) {
drawerContentRef = drawerRef.instance.drawerContentHost.viewContainerRef.createComponent(componentFactoryResolver_.resolveComponentFactory(drawerContentComponent), 0, injector);
assign(drawerContentRef.instance, data);
}
drawerRef.instance.onHidden = () => {
if (onClose) {
onClose();
}
if (destroyOnHide) {
setTimeout(() => {
drawerRef.hostView.destroy();
});
}
};
drawerRef.instance.destroy = () => {
if (!destroyOnHide && drawerRef.instance.animateState === 'void') {
drawerRef.hostView.destroy();
}
};
drawerRef.instance.show();
return {
drawerInstance: drawerRef.instance,
drawerContentInstance: drawerContentRef ? drawerContentRef.instance : null
};
}
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DrawerService, deps: [{ token: i1.OverlayContainerRef }, { token: i0.ComponentFactoryResolver }], target: i0.ɵɵFactoryTarget.Injectable }); }
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DrawerService }); }
}
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DrawerService, decorators: [{
type: Injectable
}], ctorParameters: () => [{ type: i1.OverlayContainerRef }, { type: i0.ComponentFactoryResolver }] });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJhd2VyLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9kZXZ1aS9kcmF3ZXIvZHJhd2VyLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHdCQUF3QixFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNyRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUNqRSxPQUFPLEVBQUUsTUFBTSxFQUFFLFdBQVcsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUNoRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7OztBQUlyRCxNQUFNLE9BQU8sYUFBYTtJQUN4QixZQUNVLG1CQUF3QyxFQUN4Qyx3QkFBa0Q7UUFEbEQsd0JBQW1CLEdBQW5CLG1CQUFtQixDQUFxQjtRQUN4Qyw2QkFBd0IsR0FBeEIsd0JBQXdCLENBQTBCO0lBQ3hELENBQUM7SUFFTCxJQUFJLENBQUMsRUFDSCxzQkFBc0IsRUFDdEIsUUFBUSxFQUNSLHdCQUF3QixFQUN4QixFQUFFLEVBQ0YsTUFBTSxFQUNOLEtBQUssRUFDTCxVQUFVLEVBQUUsY0FBYztJQUMxQixJQUFJLEVBQ0osT0FBTyxFQUNQLFNBQVMsRUFDVCxPQUFPLEVBQ1AsV0FBVyxFQUNYLGlCQUFpQixFQUNqQixlQUFlLEVBQ2YsWUFBWSxFQUNaLGFBQWEsR0FBRyxJQUFJLEVBQ3BCLFFBQVEsR0FBRyxPQUFPLEVBQ2xCLGNBQWMsR0FBRyxJQUFJLEVBQ3JCLGFBQWEsR0FBRyxJQUFJLEVBQ3BCLGVBQWUsRUFDZixTQUFTLEdBQUcsS0FBSyxFQUNGO1FBQ2YsTUFBTSx5QkFBeUIsR0FBRyx3QkFBd0IsSUFBSSxJQUFJLENBQUMsd0JBQXdCLENBQUM7UUFDNUYsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLG1CQUFtQixDQUFDLGVBQWUsQ0FDeEQseUJBQXlCLENBQUMsdUJBQXVCLENBQUMsZUFBZSxDQUFDLEVBQ2xFLFFBQVEsQ0FDVCxDQUFDO1FBQ0YsTUFBTSxDQUFDLFNBQVMsQ0FBQyxRQUFRLEVBQUU7WUFDekIsRUFBRTtZQUNGLEtBQUs7WUFDTCxNQUFNO1lBQ04sT0FBTztZQUNQLFNBQVM7WUFDVCxVQUFVO1lBQ1YsWUFBWTtZQUNaLFdBQVc7WUFDWCxlQUFlO1lBQ2YsUUFBUTtZQUNSLGlCQUFpQixFQUFFLFdBQVcsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLGlCQUFpQjtZQUM1RSxjQUFjO1lBQ2QsYUFBYTtZQUNiLGVBQWU7WUFDZixTQUFTO1NBQ1YsQ0FBQyxDQUFDO1FBRUgsSUFBSSxnQkFBZ0IsQ0FBQztRQUNyQixJQUFJLHNCQUFzQixFQUFFLENBQUM7WUFDM0IsZ0JBQWdCLEdBQUcsU0FBUyxDQUFDLFFBQVEsQ0FBQyxpQkFBaUIsQ0FBQyxnQkFBZ0IsQ0FBQyxlQUFlLENBQ3RGLHlCQUF5QixDQUFDLHVCQUF1QixDQUFDLHNCQUFzQixDQUFDLEVBQ3pFLENBQUMsRUFDRCxRQUFRLENBQ1QsQ0FBQztZQUNGLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDMUMsQ0FBQztRQUVELFNBQVMsQ0FBQyxRQUFRLENBQUMsUUFBUSxHQUFHLEdBQUcsRUFBRTtZQUNqQyxJQUFJLE9BQU8sRUFBRSxDQUFDO2dCQUNaLE9BQU8sRUFBRSxDQUFDO1lBQ1osQ0FBQztZQUNELElBQUksYUFBYSxFQUFFLENBQUM7Z0JBQ2xCLFVBQVUsQ0FBQyxHQUFHLEVBQUU7b0JBQ2QsU0FBUyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsQ0FBQztnQkFDL0IsQ0FBQyxDQUFDLENBQUM7WUFDTCxDQUFDO1FBQ0gsQ0FBQyxDQUFDO1FBRUYsU0FBUyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEdBQUcsR0FBRyxFQUFFO1lBQ2hDLElBQUksQ0FBQyxhQUFhLElBQUksU0FBUyxDQUFDLFFBQVEsQ0FBQyxZQUFZLEtBQUssTUFBTSxFQUFFLENBQUM7Z0JBQ2pFLFNBQVMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDL0IsQ0FBQztRQUNILENBQUMsQ0FBQztRQUVGLFNBQVMsQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDMUIsT0FBTztZQUNMLGNBQWMsRUFBRSxTQUFTLENBQUMsUUFBUTtZQUNsQyxxQkFBcUIsRUFBRSxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsZ0JBQWdCLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxJQUFJO1NBQzNFLENBQUM7SUFDSixDQUFDOytHQXBGVSxhQUFhO21IQUFiLGFBQWE7OzRGQUFiLGFBQWE7a0JBRHpCLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnRGYWN0b3J5UmVzb2x2ZXIsIEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE92ZXJsYXlDb250YWluZXJSZWYgfSBmcm9tICduZy1kZXZ1aS9vdmVybGF5LWNvbnRhaW5lcic7XG5pbXBvcnQgeyBhc3NpZ24sIGlzVW5kZWZpbmVkIH0gZnJvbSAnbG9kYXNoLWVzJztcbmltcG9ydCB7IERyYXdlckNvbXBvbmVudCB9IGZyb20gJy4vZHJhd2VyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBJRHJhd2VyT3BlblJlc3VsdCwgSURyYXdlck9wdGlvbnMgfSBmcm9tICcuL2RyYXdlci50eXBlcyc7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBEcmF3ZXJTZXJ2aWNlIHtcbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBvdmVybGF5Q29udGFpbmVyUmVmOiBPdmVybGF5Q29udGFpbmVyUmVmLFxuICAgIHByaXZhdGUgY29tcG9uZW50RmFjdG9yeVJlc29sdmVyOiBDb21wb25lbnRGYWN0b3J5UmVzb2x2ZXJcbiAgKSB7IH1cblxuICBvcGVuKHtcbiAgICBkcmF3ZXJDb250ZW50Q29tcG9uZW50LFxuICAgIGluamVjdG9yLFxuICAgIGNvbXBvbmVudEZhY3RvcnlSZXNvbHZlcixcbiAgICBpZCxcbiAgICB6SW5kZXgsXG4gICAgd2lkdGgsXG4gICAgZnVsbFNjcmVlbiwgLy8gQGRlcHJlY2F0ZWRcbiAgICBkYXRhLFxuICAgIGlzQ292ZXIsXG4gICAgY2xpY2tEb21zLFxuICAgIG9uQ2xvc2UsXG4gICAgYWZ0ZXJPcGVuZWQsXG4gICAgYmFja2Ryb3BDbG9zZWFibGUsXG4gICAgZXNjS2V5Q2xvc2VhYmxlLFxuICAgIGJlZm9yZUhpZGRlbixcbiAgICBkZXN0cm95T25IaWRlID0gdHJ1ZSxcbiAgICBwb3NpdGlvbiA9ICdyaWdodCcsXG4gICAgYm9keVNjcm9sbGFibGUgPSB0cnVlLFxuICAgIHNob3dBbmltYXRpb24gPSB0cnVlLFxuICAgIGNvbnRlbnRUZW1wbGF0ZSxcbiAgICByZXNpemFibGUgPSBmYWxzZVxuICB9OiBJRHJhd2VyT3B0aW9ucyk6IElEcmF3ZXJPcGVuUmVzdWx0IHtcbiAgICBjb25zdCBjb21wb25lbnRGYWN0b3J5UmVzb2x2ZXJfID0gY29tcG9uZW50RmFjdG9yeVJlc29sdmVyIHx8IHRoaXMuY29tcG9uZW50RmFjdG9yeVJlc29sdmVyO1xuICAgIGNvbnN0IGRyYXdlclJlZiA9IHRoaXMub3ZlcmxheUNvbnRhaW5lclJlZi5jcmVhdGVDb21wb25lbnQoXG4gICAgICBjb21wb25lbnRGYWN0b3J5UmVzb2x2ZXJfLnJlc29sdmVDb21wb25lbnRGYWN0b3J5KERyYXdlckNvbXBvbmVudCksXG4gICAgICBpbmplY3RvclxuICAgICk7XG4gICAgYXNzaWduKGRyYXdlclJlZi5pbnN0YW5jZSwge1xuICAgICAgaWQsXG4gICAgICB3aWR0aCxcbiAgICAgIHpJbmRleCxcbiAgICAgIGlzQ292ZXIsXG4gICAgICBjbGlja0RvbXMsXG4gICAgICBmdWxsU2NyZWVuLFxuICAgICAgYmVmb3JlSGlkZGVuLFxuICAgICAgYWZ0ZXJPcGVuZWQsXG4gICAgICBlc2NLZXlDbG9zZWFibGUsXG4gICAgICBwb3NpdGlvbixcbiAgICAgIGJhY2tkcm9wQ2xvc2VhYmxlOiBpc1VuZGVmaW5lZChiYWNrZHJvcENsb3NlYWJsZSkgPyB0cnVlIDogYmFja2Ryb3BDbG9zZWFibGUsXG4gICAgICBib2R5U2Nyb2xsYWJsZSxcbiAgICAgIHNob3dBbmltYXRpb24sXG4gICAgICBjb250ZW50VGVtcGxhdGUsXG4gICAgICByZXNpemFibGVcbiAgICB9KTtcblxuICAgIGxldCBkcmF3ZXJDb250ZW50UmVmO1xuICAgIGlmIChkcmF3ZXJDb250ZW50Q29tcG9uZW50KSB7XG4gICAgICBkcmF3ZXJDb250ZW50UmVmID0gZHJhd2VyUmVmLmluc3RhbmNlLmRyYXdlckNvbnRlbnRIb3N0LnZpZXdDb250YWluZXJSZWYuY3JlYXRlQ29tcG9uZW50KFxuICAgICAgICBjb21wb25lbnRGYWN0b3J5UmVzb2x2ZXJfLnJlc29sdmVDb21wb25lbnRGYWN0b3J5KGRyYXdlckNvbnRlbnRDb21wb25lbnQpLFxuICAgICAgICAwLFxuICAgICAgICBpbmplY3RvclxuICAgICAgKTtcbiAgICAgIGFzc2lnbihkcmF3ZXJDb250ZW50UmVmLmluc3RhbmNlLCBkYXRhKTtcbiAgICB9XG5cbiAgICBkcmF3ZXJSZWYuaW5zdGFuY2Uub25IaWRkZW4gPSAoKSA9PiB7XG4gICAgICBpZiAob25DbG9zZSkge1xuICAgICAgICBvbkNsb3NlKCk7XG4gICAgICB9XG4gICAgICBpZiAoZGVzdHJveU9uSGlkZSkge1xuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICBkcmF3ZXJSZWYuaG9zdFZpZXcuZGVzdHJveSgpO1xuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9O1xuXG4gICAgZHJhd2VyUmVmLmluc3RhbmNlLmRlc3Ryb3kgPSAoKSA9PiB7XG4gICAgICBpZiAoIWRlc3Ryb3lPbkhpZGUgJiYgZHJhd2VyUmVmLmluc3RhbmNlLmFuaW1hdGVTdGF0ZSA9PT0gJ3ZvaWQnKSB7XG4gICAgICAgIGRyYXdlclJlZi5ob3N0Vmlldy5kZXN0cm95KCk7XG4gICAgICB9XG4gICAgfTtcblxuICAgIGRyYXdlclJlZi5pbnN0YW5jZS5zaG93KCk7XG4gICAgcmV0dXJuIHtcbiAgICAgIGRyYXdlckluc3RhbmNlOiBkcmF3ZXJSZWYuaW5zdGFuY2UsXG4gICAgICBkcmF3ZXJDb250ZW50SW5zdGFuY2U6IGRyYXdlckNvbnRlbnRSZWYgPyBkcmF3ZXJDb250ZW50UmVmLmluc3RhbmNlIDogbnVsbFxuICAgIH07XG4gIH1cbn1cbiJdfQ==