ng-devui
Version:
DevUI components based on Angular
1 lines • 33.3 kB
Source Map (JSON)
{"version":3,"file":"ng-devui-drawer.mjs","sources":["../../devui/drawer/drawer.component.ts","../../devui/drawer/drawer.component.html","../../devui/drawer/drawer.service.ts","../../devui/drawer/drawer.moudule.ts","../../devui/drawer/ng-devui-drawer.ts"],"sourcesContent":["import { AnimationEvent } from '@angular/animations';\r\nimport { DOCUMENT } from '@angular/common';\r\nimport {\r\n ChangeDetectorRef,\r\n Component,\r\n Directive,\r\n ElementRef,\r\n HostListener,\r\n Inject,\r\n Input,\r\n OnDestroy,\r\n OnInit,\r\n Renderer2,\r\n TemplateRef,\r\n ViewChild,\r\n ViewContainerRef,\r\n} from '@angular/core';\r\nimport { ResizeDirective } from 'ng-devui/splitter';\r\nimport { backdropFadeInOut, flyInOut } from 'ng-devui/utils';\r\nimport { isNumber, parseInt, trim } from 'lodash-es';\r\nimport { Observable, Subject, Subscription, fromEvent } from 'rxjs';\r\nimport { debounceTime, distinctUntilChanged, filter, map, switchMap, takeUntil, tap } from 'rxjs/operators';\r\n\r\n@Directive({\r\n selector: '[dDrawerContentHost]',\r\n})\r\nexport class DrawerContentDirective {\r\n constructor(public viewContainerRef: ViewContainerRef) {}\r\n}\r\n\r\n@Component({\r\n selector: 'd-drawer',\r\n templateUrl: './drawer.component.html',\r\n styleUrls: ['./drawer.component.scss'],\r\n animations: [backdropFadeInOut, flyInOut],\r\n preserveWhitespaces: false,\r\n})\r\nexport class DrawerComponent implements OnInit, OnDestroy {\r\n animateState = 'void';\r\n @Input() id: string;\r\n @Input() width = '300px';\r\n @Input() zIndex: number;\r\n @Input() isCover = true;\r\n /**\r\n * @deprecated\r\n */\r\n @Input() fullScreen = false;\r\n @Input() showAnimation = true;\r\n @ViewChild(DrawerContentDirective, { static: true }) drawerContentHost: DrawerContentDirective;\r\n @Input() backdropCloseable: boolean;\r\n @Input() escKeyCloseable: boolean;\r\n @Input() beforeHidden: () => boolean | Promise<boolean> | Observable<boolean>;\r\n @Input() clickDoms: any = [];\r\n // Will overwrite by drawer service\r\n @Input() afterOpened: Function;\r\n @Input() position: 'right' | 'left' = 'right';\r\n @Input() bodyScrollable = true; // drawer打开body是否可滚动\r\n @Input() resizable = false;\r\n @ViewChild('drawerContainer', { static: true }) drawerContainer: ElementRef;\r\n @ViewChild('resizeBar', { read: ResizeDirective }) resizeCmp: ResizeDirective;\r\n _width: string;\r\n // 全屏时用来记录之前的宽度,因为没遮罩的情况下width不能是百分比\r\n oldWidth: string;\r\n _isCover: boolean;\r\n subscription: Subscription;\r\n isFullScreen: boolean;\r\n\r\n animationDone = new Subject<AnimationEvent>();\r\n animationDoneSub: Subscription;\r\n resizeSub: Subscription;\r\n windowResizeSub: Subscription;\r\n documentOverFlow: boolean;\r\n scrollTop: number;\r\n scrollLeft: number;\r\n document: Document;\r\n\r\n contentTemplate: TemplateRef<any>;\r\n _right: string;\r\n _curWidth;\r\n\r\n constructor(\r\n private elementRef: ElementRef,\r\n private renderer: Renderer2,\r\n @Inject(DOCUMENT) private doc: any,\r\n private cdr: ChangeDetectorRef\r\n ) {\r\n this.document = this.doc;\r\n }\r\n\r\n ngOnInit() {\r\n this.setWidth(this.width);\r\n this._isCover = this.isCover === undefined ? true : this.isCover;\r\n\r\n // some browsers(ie11 & edge) fire the animation done event twice\r\n this.animationDoneSub = this.animationDone\r\n .pipe(\r\n distinctUntilChanged((x, y) => {\r\n return x.fromState === y.fromState && x.toState === y.toState;\r\n })\r\n )\r\n .subscribe((event) => {\r\n this.onAnimationEnd(event);\r\n });\r\n }\r\n setWidth(width: string) {\r\n if (typeof window === 'undefined') {\r\n return;\r\n }\r\n if (width.indexOf('%') >= 0) {\r\n const widthStr = trim(width, '%');\r\n const widthNum = parseInt(widthStr, 10);\r\n this._width = isNumber(widthNum) ? (widthNum * window.innerWidth) / 100 + 'px' : '0px';\r\n if (!this.windowResizeSub) {\r\n this.windowResizeSub = fromEvent(window, 'resize')\r\n .pipe(debounceTime(100))\r\n .subscribe(() => {\r\n if (!this.isFullScreen) {\r\n this.setWidth(this.width);\r\n }\r\n });\r\n }\r\n } else {\r\n this._width = width;\r\n }\r\n this._right = parseInt(this._width) > window.innerWidth ? -(parseInt(this._width) - (window.innerWidth - 100)) + 'px' : '0px';\r\n this.oldWidth = this._width;\r\n }\r\n\r\n ngOnDestroy() {\r\n if (this.animationDoneSub) {\r\n this.animationDoneSub.unsubscribe();\r\n }\r\n if (this.resizeSub) {\r\n this.resizeSub.unsubscribe();\r\n }\r\n\r\n if (this.windowResizeSub) {\r\n this.windowResizeSub.unsubscribe();\r\n }\r\n }\r\n\r\n @HostListener('document:keydown.escape', ['$event']) keydownHandler(event: KeyboardEvent) {\r\n event.stopPropagation();\r\n if (this.escKeyCloseable && !this.isHaveDialogOrUpload()) {\r\n this.hide();\r\n }\r\n }\r\n\r\n onAnimationEnd(event) {\r\n if (this.animateState === 'void') {\r\n this.onHidden();\r\n }\r\n if (this.animateState === 'in' && this.afterOpened) {\r\n this.afterOpened();\r\n }\r\n }\r\n\r\n // Will overwrite by drawer service\r\n onHidden() {}\r\n\r\n show() {\r\n if (this.document.documentElement.scrollHeight > this.document.documentElement.clientHeight) {\r\n this.documentOverFlow = true;\r\n this.scrollTop = this.document.documentElement.scrollTop || this.document.body.scrollTop;\r\n this.scrollLeft = this.document.documentElement.scrollLeft || this.document.body.scrollLeft;\r\n this.renderer.addClass(this.document.body, 'devui-body-scrollblock');\r\n this.renderer.setStyle(this.document.body, 'top', `-${this.scrollTop}px`);\r\n this.renderer.setStyle(this.document.body, 'left', `-${this.scrollLeft}px`);\r\n }\r\n if (!this.bodyScrollable && this.documentOverFlow) {\r\n this.renderer.addClass(this.document.body, 'devui-body-overflow-hidden');\r\n }\r\n this.animateState = 'in';\r\n const activeElement = this.document.activeElement;\r\n if (activeElement && typeof (activeElement as any).blur === 'function') {\r\n (activeElement as any).blur();\r\n }\r\n setTimeout(() => {\r\n this.handleResizeWidth();\r\n }, 0);\r\n this.isCover = this.isCover === undefined ? true : this.isCover;\r\n if (!this.backdropCloseable || this.isCover) {\r\n return;\r\n }\r\n const documentClick = fromEvent<KeyboardEvent>(document, 'click');\r\n setTimeout(() => {\r\n this.subscription = documentClick.subscribe((event: Event) => {\r\n if (this.clickDoms && this.clickDoms.length > 0) {\r\n this.clickDoms.forEach((dom) => {\r\n if (dom !== null && dom.contains(event.target)) {\r\n this.hide();\r\n return;\r\n }\r\n });\r\n } else {\r\n const target: any = event.target;\r\n // 一定要document.contains(event.target),因为event.target可能已经不在document里了,这个时候就不能进hide了\r\n if (\r\n this.animateState === 'in' &&\r\n !this.elementRef.nativeElement.contains(target) &&\r\n this.document.body.contains(target) &&\r\n !this.isHaveDialogOrUpload()\r\n ) {\r\n this.hide();\r\n }\r\n }\r\n });\r\n });\r\n }\r\n\r\n hide() {\r\n this.canHideModel().then((canHide) => {\r\n if (!canHide) {\r\n return;\r\n }\r\n this.hideOperation();\r\n });\r\n }\r\n\r\n hideDirectly() {\r\n this.hideOperation();\r\n }\r\n\r\n private hideOperation() {\r\n if (this.documentOverFlow) {\r\n this.renderer.removeStyle(this.document.body, 'top');\r\n this.renderer.removeStyle(this.document.body, 'left');\r\n this.renderer.removeClass(this.document.body, 'devui-body-scrollblock');\r\n this.renderer.removeClass(this.document.body, 'devui-body-overflow-hidden');\r\n this.document.documentElement.scrollTop = this.scrollTop;\r\n this.document.body.scrollTop = this.scrollTop;\r\n this.document.documentElement.scrollLeft = this.scrollLeft;\r\n this.document.body.scrollLeft = this.scrollLeft;\r\n }\r\n this.animateState = 'void';\r\n if (this.subscription) {\r\n this.subscription.unsubscribe();\r\n this.subscription = undefined;\r\n }\r\n }\r\n\r\n // Will overwrite by drawer service\r\n destroy() {}\r\n\r\n isHaveDialogOrUpload() {\r\n const dialog: any = this.document.getElementsByClassName('modal-dialog');\r\n const upload: any = this.document.getElementById('d-upload-temp');\r\n return (dialog && dialog.length > 0) || upload;\r\n }\r\n\r\n canHideModel() {\r\n let hiddenResult = Promise.resolve(true);\r\n\r\n if (this.beforeHidden) {\r\n const result: any = this.beforeHidden();\r\n if (typeof result !== 'undefined') {\r\n if (result.then) {\r\n hiddenResult = result;\r\n } else if (result.subscribe) {\r\n hiddenResult = (result as Observable<boolean>).toPromise();\r\n } else {\r\n hiddenResult = Promise.resolve(result);\r\n }\r\n }\r\n }\r\n\r\n return hiddenResult;\r\n }\r\n\r\n private _setFullScreen(fullScreen?: boolean) {\r\n if (typeof window === 'undefined') {\r\n return;\r\n }\r\n const drawerContainerEle = this.drawerContainer.nativeElement;\r\n if (this._width === this.oldWidth) {\r\n if (fullScreen === true || fullScreen === undefined) {\r\n this.isFullScreen = true;\r\n this._width = this._isCover ? '100%' : window.innerWidth + 'px';\r\n this.renderer.setStyle(\r\n drawerContainerEle,\r\n 'transition',\r\n this.showAnimation ? `width .3s cubic-bezier(0.5, 0.05, 0.5, 0.95)` : 'none'\r\n );\r\n if (!this._isCover) {\r\n const resizeEv = fromEvent(window, 'resize');\r\n const result = resizeEv.pipe(debounceTime(100));\r\n this.resizeSub = result.subscribe((ev) => {\r\n this._width = window.innerWidth + 'px';\r\n });\r\n }\r\n }\r\n } else {\r\n if (!fullScreen) {\r\n this.isFullScreen = false;\r\n this._width = this.oldWidth;\r\n if (this.resizeSub) {\r\n this.resizeSub.unsubscribe();\r\n }\r\n }\r\n }\r\n }\r\n\r\n public toggleFullScreen() {\r\n this._setFullScreen();\r\n }\r\n\r\n public setFullScreen(fullScreen: boolean) {\r\n this._setFullScreen(fullScreen);\r\n }\r\n\r\n private stopPropagation = ({ originalEvent: event }) => {\r\n event.stopPropagation();\r\n if (event.cancelable) {\r\n event.preventDefault();\r\n }\r\n };\r\n\r\n private moveStream = (resize) => (mouseDown) =>\r\n resize.dragEvent.pipe(\r\n takeUntil(resize.releaseEvent),\r\n map(({ pageX, pageY }) => ({\r\n originalX: mouseDown.pageX,\r\n originalY: mouseDown.pageY,\r\n pageX,\r\n pageY,\r\n }))\r\n );\r\n\r\n public handleResizeWidth() {\r\n if (this.resizable) {\r\n this.resizeCmp.pressEvent\r\n .pipe(\r\n tap(this.stopPropagation),\r\n filter(() => {\r\n this._curWidth = this._width;\r\n return this.resizable;\r\n }),\r\n switchMap(this.moveStream(this.resizeCmp))\r\n )\r\n .subscribe(({ pageX, originalX }) => {\r\n this.showAnimation = false;\r\n let tmpWidth;\r\n if (this.position === 'left') {\r\n tmpWidth = parseInt(this._curWidth, 10) + pageX - originalX + 'px';\r\n } else {\r\n tmpWidth = parseInt(this._curWidth, 10) + originalX - pageX + 'px';\r\n }\r\n this.setWidth(tmpWidth);\r\n\r\n this.cdr.detectChanges();\r\n });\r\n\r\n this.resizeCmp.releaseEvent.subscribe(() => {\r\n this.showAnimation = true;\r\n });\r\n }\r\n }\r\n}\r\n","<div\n class=\"drawer\"\n [attr.id]=\"id\"\n [ngStyle]=\"{ 'z-index': zIndex }\"\n [ngClass]=\"{ 'display-width': _isCover && animateState === 'in' }\"\n [style.left]=\"position === 'left' ? 0 : null\"\n [style.right]=\"position === 'right' ? 0 : null\"\n>\n <div\n class=\"overlay-wrapper\"\n [ngClass]=\"{ 'display-width': _isCover && animateState === 'in' }\"\n [style.left]=\"position === 'left' ? 0 : null\"\n [style.right]=\"position === 'right' ? 0 : null\"\n >\n <div\n class=\"overlay-backdrop\"\n [ngClass]=\"{ 'display-width': _isCover && animateState === 'in' }\"\n [@backdropAnimation]=\"animateState\"\n [@.disabled]=\"!showAnimation\"\n (click)=\"backdropCloseable && hide()\"\n ></div>\n <div\n #drawerContainer\n class=\"drawer-nav\"\n [ngStyle]=\"{ width: _width }\"\n [@flyInOut]=\"position + '-' + animateState\"\n (@flyInOut.done)=\"animationDone.next($event)\"\n [@.disabled]=\"!showAnimation\"\n [style.left]=\"position === 'left' ? 0 : null\"\n [style.right]=\"position === 'right' ? _right : null\"\n >\n <div class=\"drawer-content\" cdkScrollable>\n <ng-template dDrawerContentHost></ng-template>\n </div>\n <div *ngIf=\"contentTemplate\" class=\"drawer-content\" cdkScrollable>\n <ng-template [ngTemplateOutlet]=\"contentTemplate\"></ng-template>\n </div>\n <div\n #resizeBar\n dResize\n class=\"devui-drawer-resize-bar\"\n [ngClass]=\"{\n 'devui-drawer-can-hover': resizable,\n 'devui-drawer-resize-bar-left': position === 'left',\n 'devui-drawer-resize-bar-right': position === 'right'\n }\"\n ></div>\n </div>\n </div>\n</div>\n","import { ComponentFactoryResolver, Injectable } from '@angular/core';\nimport { OverlayContainerRef } from 'ng-devui/overlay-container';\nimport { assign, isUndefined } from 'lodash-es';\nimport { DrawerComponent } from './drawer.component';\nimport { IDrawerOpenResult, IDrawerOptions } from './drawer.types';\n\n@Injectable()\nexport class DrawerService {\n constructor(\n private overlayContainerRef: OverlayContainerRef,\n private componentFactoryResolver: ComponentFactoryResolver\n ) { }\n\n open({\n drawerContentComponent,\n injector,\n componentFactoryResolver,\n id,\n zIndex,\n width,\n fullScreen, // @deprecated\n data,\n isCover,\n clickDoms,\n onClose,\n afterOpened,\n backdropCloseable,\n escKeyCloseable,\n beforeHidden,\n destroyOnHide = true,\n position = 'right',\n bodyScrollable = true,\n showAnimation = true,\n contentTemplate,\n resizable = false\n }: IDrawerOptions): IDrawerOpenResult {\n const componentFactoryResolver_ = componentFactoryResolver || this.componentFactoryResolver;\n const drawerRef = this.overlayContainerRef.createComponent(\n componentFactoryResolver_.resolveComponentFactory(DrawerComponent),\n injector\n );\n assign(drawerRef.instance, {\n id,\n width,\n zIndex,\n isCover,\n clickDoms,\n fullScreen,\n beforeHidden,\n afterOpened,\n escKeyCloseable,\n position,\n backdropCloseable: isUndefined(backdropCloseable) ? true : backdropCloseable,\n bodyScrollable,\n showAnimation,\n contentTemplate,\n resizable\n });\n\n let drawerContentRef;\n if (drawerContentComponent) {\n drawerContentRef = drawerRef.instance.drawerContentHost.viewContainerRef.createComponent(\n componentFactoryResolver_.resolveComponentFactory(drawerContentComponent),\n 0,\n injector\n );\n assign(drawerContentRef.instance, data);\n }\n\n drawerRef.instance.onHidden = () => {\n if (onClose) {\n onClose();\n }\n if (destroyOnHide) {\n setTimeout(() => {\n drawerRef.hostView.destroy();\n });\n }\n };\n\n drawerRef.instance.destroy = () => {\n if (!destroyOnHide && drawerRef.instance.animateState === 'void') {\n drawerRef.hostView.destroy();\n }\n };\n\n drawerRef.instance.show();\n return {\n drawerInstance: drawerRef.instance,\n drawerContentInstance: drawerContentRef ? drawerContentRef.instance : null\n };\n }\n}\n","import { ScrollingModule } from '@angular/cdk/scrolling';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { OverlayContainerModule } from 'ng-devui/overlay-container';\nimport { PortalModule } from 'ng-devui/portal';\nimport { SplitterModule } from 'ng-devui/splitter';\nimport { DrawerComponent, DrawerContentDirective } from './drawer.component';\nimport { DrawerService } from './drawer.service';\n\n@NgModule({\n imports: [\n CommonModule,\n ScrollingModule,\n SplitterModule,\n PortalModule,\n OverlayContainerModule\n ],\n exports: [DrawerComponent],\n declarations: [\n DrawerComponent,\n DrawerContentDirective\n ],\n providers: [DrawerService],\n\n})\nexport class DrawerModule {\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1"],"mappings":"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"}