UNPKG

ng-zorro-antd

Version:

An enterprise-class UI components based on Ant Design and Angular

9 lines 13 kB
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("@angular/common"),require("@angular/core"),require("@angular/cdk/a11y"),require("@angular/cdk/overlay"),require("@angular/cdk/portal"),require("rxjs"),require("ng-zorro-antd/core"),require("rxjs/operators"),require("ng-zorro-antd/icon")):"function"==typeof define&&define.amd?define("ng-zorro-antd/drawer",["exports","@angular/common","@angular/core","@angular/cdk/a11y","@angular/cdk/overlay","@angular/cdk/portal","rxjs","ng-zorro-antd/core","rxjs/operators","ng-zorro-antd/icon"],t):t((e["ng-zorro-antd"]=e["ng-zorro-antd"]||{},e["ng-zorro-antd"].drawer={}),e.ng.common,e.ng.core,e.ng.cdk.a11y,e.ng.cdk.overlay,e.ng.cdk.portal,e.rxjs,e["ng-zorro-antd"].core,e.rxjs.operators,e["ng-zorro-antd"].icon)}(this,function(e,t,c,n,r,o,p,i,a,s){"use strict";var u=function(e,t){return(u=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)};function f(e,t,n,r){var o,i=arguments.length,a=i<3?t:null===r?r=Object.getOwnPropertyDescriptor(t,n):r;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,n,r);else for(var s=e.length-1;0<=s;s--)(o=e[s])&&(a=(i<3?o(a):3<i?o(t,n,a):o(t,n))||a);return 3<i&&a&&Object.defineProperty(t,n,a),a}function y(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)} /** * @license * Copyright Alibaba.com All Rights Reserved. * * Use of this source code is governed by an MIT-style license that can be * found in the LICENSE file at https://github.com/NG-ZORRO/ng-zorro-antd/blob/master/LICENSE */var d=function(){},l=function(l){function e(e,t,n,r,o,i,a){var s=l.call(this)||this;return s.document=e,s.renderer=t,s.overlay=n,s.injector=r,s.changeDetectorRef=o,s.focusTrapFactory=i,s.viewContainerRef=a,s.nzClosable=!0,s.nzMaskClosable=!0,s.nzMask=!0,s.nzNoAnimation=!1,s.nzPlacement="right",s.nzMaskStyle={},s.nzBodyStyle={},s.nzWidth=256,s.nzHeight=256,s.nzZIndex=1e3,s.nzOffsetX=0,s.nzOffsetY=0,s.nzOnViewInit=new c.EventEmitter,s.nzOnClose=new c.EventEmitter,s.isOpen=!1,s.templateContext={$implicit:undefined,drawerRef:s},s.nzAfterOpen=new p.Subject,s.nzAfterClose=new p.Subject,s}return function(e,t){function n(){this.constructor=e}u(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)}(e,l),Object.defineProperty(e.prototype,"nzVisible",{get:function(){return this.isOpen},set:function(e){this.isOpen=e},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"offsetTransform",{get:function(){if(!this.isOpen||this.nzOffsetX+this.nzOffsetY===0)return null;switch(this.nzPlacement){case"left":return"translateX("+this.nzOffsetX+"px)";case"right":return"translateX(-"+this.nzOffsetX+"px)";case"top":return"translateY("+this.nzOffsetY+"px)";case"bottom":return"translateY(-"+this.nzOffsetY+"px)"}},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"transform",{get:function(){if(this.isOpen)return null;switch(this.nzPlacement){case"left":return"translateX(-100%)";case"right":return"translateX(100%)";case"top":return"translateY(-100%)";case"bottom":return"translateY(100%)"}},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"width",{get:function(){return this.isLeftOrRight?i.toCssPixel(this.nzWidth):null},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"height",{get:function(){return this.isLeftOrRight?null:i.toCssPixel(this.nzHeight)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"isLeftOrRight",{get:function(){return"left"===this.nzPlacement||"right"===this.nzPlacement},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"afterOpen",{get:function(){return this.nzAfterOpen.asObservable()},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"afterClose",{get:function(){return this.nzAfterClose.asObservable()},enumerable:!0,configurable:!0}),e.prototype.isTemplateRef=function(e){return e instanceof c.TemplateRef},e.prototype.ngOnInit=function(){this.attachOverlay(),this.updateOverlayStyle(),this.updateBodyOverflow(),this.templateContext={$implicit:this.nzContentParams,drawerRef:this},this.changeDetectorRef.detectChanges()},e.prototype.ngAfterViewInit=function(){var e=this;this.attachBodyContent(),setTimeout(function(){e.nzOnViewInit.emit()})},e.prototype.ngOnChanges=function(e){var t=this;if(e.hasOwnProperty("nzVisible")){var n=e.nzVisible.currentValue;this.updateOverlayStyle(),n?(this.updateBodyOverflow(),this.savePreviouslyFocusedElement(),this.trapFocus()):setTimeout(function(){t.updateBodyOverflow(),t.restoreFocus()},this.getAnimationDuration())}},e.prototype.ngOnDestroy=function(){this.disposeOverlay()},e.prototype.getAnimationDuration=function(){return this.nzNoAnimation?0:300},e.prototype.close=function(e){var t=this;this.isOpen=!1,this.updateOverlayStyle(),this.changeDetectorRef.detectChanges(),setTimeout(function(){t.updateBodyOverflow(),t.restoreFocus(),t.nzAfterClose.next(e),t.nzAfterClose.complete()},this.getAnimationDuration())},e.prototype.open=function(){var e=this;this.isOpen=!0,this.updateOverlayStyle(),this.updateBodyOverflow(),this.savePreviouslyFocusedElement(),this.trapFocus(),this.changeDetectorRef.detectChanges(),setTimeout(function(){e.nzAfterOpen.next()},this.getAnimationDuration())},e.prototype.closeClick=function(){this.nzOnClose.emit()},e.prototype.maskClick=function(){this.nzMaskClosable&&this.nzMask&&this.nzOnClose.emit()},e.prototype.attachBodyContent=function(){if(this.bodyPortalOutlet.dispose(),this.nzContent instanceof c.Type){var e=new o.PortalInjector(this.injector,new WeakMap([[d,this]])),t=new o.ComponentPortal(this.nzContent,null,e),n=this.bodyPortalOutlet.attachComponentPortal(t);Object.assign(n.instance,this.nzContentParams),n.changeDetectorRef.detectChanges()}},e.prototype.attachOverlay=function(){this.overlayRef||(this.portal=new o.TemplatePortal(this.drawerTemplate,this.viewContainerRef),this.overlayRef=this.overlay.create(this.getOverlayConfig())),this.overlayRef&&!this.overlayRef.hasAttached()&&this.overlayRef.attach(this.portal)},e.prototype.disposeOverlay=function(){this.overlayRef&&this.overlayRef.dispose(),this.overlayRef=null},e.prototype.getOverlayConfig=function(){return new r.OverlayConfig({positionStrategy:this.overlay.position().global(),scrollStrategy:this.overlay.scrollStrategies.block()})},e.prototype.updateOverlayStyle=function(){this.overlayRef&&this.overlayRef.overlayElement&&this.renderer.setStyle(this.overlayRef.overlayElement,"pointer-events",this.isOpen?"auto":"none")},e.prototype.updateBodyOverflow=function(){this.overlayRef&&(this.isOpen?this.overlayRef.getConfig().scrollStrategy.enable():this.overlayRef.getConfig().scrollStrategy.disable())},e.prototype.savePreviouslyFocusedElement=function(){this.document&&!this.previouslyFocusedElement&&(this.previouslyFocusedElement=this.document.activeElement,this.previouslyFocusedElement&&"function"==typeof this.previouslyFocusedElement.blur&&this.previouslyFocusedElement.blur())},e.prototype.trapFocus=function(){!this.focusTrap&&this.overlayRef&&this.overlayRef.overlayElement&&(this.focusTrap=this.focusTrapFactory.create(this.overlayRef.overlayElement),this.focusTrap.focusInitialElement())},e.prototype.restoreFocus=function(){this.previouslyFocusedElement&&"function"==typeof this.previouslyFocusedElement.focus&&this.previouslyFocusedElement.focus(),this.focusTrap&&this.focusTrap.destroy()},e.decorators=[{type:c.Component,args:[{selector:"nz-drawer",exportAs:"nzDrawer",template:'<ng-template #drawerTemplate>\n <div\n class="ant-drawer"\n [nzNoAnimation]="nzNoAnimation"\n [class.ant-drawer-open]="isOpen"\n [class.ant-drawer-top]="nzPlacement === \'top\'"\n [class.ant-drawer-bottom]="nzPlacement === \'bottom\'"\n [class.ant-drawer-right]="nzPlacement === \'right\'"\n [class.ant-drawer-left]="nzPlacement === \'left\'"\n [style.transform]="offsetTransform"\n [style.zIndex]="nzZIndex">\n <div class="ant-drawer-mask" (click)="maskClick()" *ngIf="nzMask" [ngStyle]="nzMaskStyle"></div>\n <div class="ant-drawer-content-wrapper {{ nzWrapClassName }}"\n [style.width]="width"\n [style.height]="height"\n [style.transform]="transform">\n <div class="ant-drawer-content">\n <div class="ant-drawer-wrapper-body"\n [style.overflow]="isLeftOrRight ? \'auto\' : null"\n [style.height]="isLeftOrRight ? \'100%\' : null">\n <div *ngIf="nzTitle" class="ant-drawer-header">\n <div class="ant-drawer-title">\n <ng-container *nzStringTemplateOutlet="nzTitle"><div [innerHTML]="nzTitle"></div></ng-container>\n </div>\n </div>\n <button *ngIf="nzClosable" (click)="closeClick()" aria-label="Close" class="ant-drawer-close">\n <span class="ant-drawer-close-x"><i nz-icon type="close"></i></span>\n </button>\n <div class="ant-drawer-body" [ngStyle]="nzBodyStyle">\n <ng-template cdkPortalOutlet></ng-template>\n <ng-container *ngIf="isTemplateRef(nzContent)">\n <ng-container *ngTemplateOutlet="nzContent; context: templateContext"></ng-container>\n </ng-container>\n <ng-content *ngIf="!nzContent"></ng-content>\n </div>\n </div>\n </div>\n </div>\n </div>\n</ng-template>',preserveWhitespaces:!1,changeDetection:c.ChangeDetectionStrategy.OnPush}]}],e.ctorParameters=function(){return[{type:undefined,decorators:[{type:c.Optional},{type:c.Inject,args:[t.DOCUMENT]}]},{type:c.Renderer2},{type:r.Overlay},{type:c.Injector},{type:c.ChangeDetectorRef},{type:n.FocusTrapFactory},{type:c.ViewContainerRef}]},e.propDecorators={nzContent:[{type:c.Input}],nzClosable:[{type:c.Input}],nzMaskClosable:[{type:c.Input}],nzMask:[{type:c.Input}],nzNoAnimation:[{type:c.Input}],nzTitle:[{type:c.Input}],nzPlacement:[{type:c.Input}],nzMaskStyle:[{type:c.Input}],nzBodyStyle:[{type:c.Input}],nzWrapClassName:[{type:c.Input}],nzWidth:[{type:c.Input}],nzHeight:[{type:c.Input}],nzZIndex:[{type:c.Input}],nzOffsetX:[{type:c.Input}],nzOffsetY:[{type:c.Input}],nzVisible:[{type:c.Input}],nzOnViewInit:[{type:c.Output}],nzOnClose:[{type:c.Output}],drawerTemplate:[{type:c.ViewChild,args:["drawerTemplate"]}],contentTemplate:[{type:c.ViewChild,args:["contentTemplate"]}],bodyPortalOutlet:[{type:c.ViewChild,args:[o.CdkPortalOutlet]}]},f([i.InputBoolean(),y("design:type",Object)],e.prototype,"nzClosable",void 0),f([i.InputBoolean(),y("design:type",Object)],e.prototype,"nzMaskClosable",void 0),f([i.InputBoolean(),y("design:type",Object)],e.prototype,"nzMask",void 0),f([i.InputBoolean(),y("design:type",Object)],e.prototype,"nzNoAnimation",void 0),e}(d),h=function(){function e(e,t){var n=this;this.overlay=e,this.options=t,this.unsubscribe$=new p.Subject;var r=this.options,o=r.nzOnCancel,i=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var o=0;for(r=Object.getOwnPropertySymbols(e);o<r.length;o++)t.indexOf(r[o])<0&&(n[r[o]]=e[r[o]])}return n}(r,["nzOnCancel"]);this.createDrawer(),this.updateOptions(i),this.drawerRef.instance.savePreviouslyFocusedElement(),this.drawerRef.instance.nzOnViewInit.pipe(a.takeUntil(this.unsubscribe$)).subscribe(function(){n.drawerRef.instance.open()}),this.drawerRef.instance.nzOnClose.subscribe(function(){o?o().then(function(e){!1!==e&&n.drawerRef.instance.close()}):n.drawerRef.instance.close()}),this.drawerRef.instance.afterClose.pipe(a.takeUntil(this.unsubscribe$)).subscribe(function(){n.overlayRef.dispose(),n.drawerRef=null,n.unsubscribe$.next(),n.unsubscribe$.complete()})}return e.prototype.getInstance=function(){return this.drawerRef&&this.drawerRef.instance},e.prototype.createDrawer=function(){this.overlayRef=this.overlay.create(),this.drawerRef=this.overlayRef.attach(new o.ComponentPortal(l))},e.prototype.updateOptions=function(e){Object.assign(this.drawerRef.instance,e)},e}(),g=function(){function e(e){this.overlay=e}return e.prototype.create=function(e){return new h(this.overlay,e).getInstance()},e.decorators=[{type:c.Injectable,args:[{providedIn:"root"}]}],e.ctorParameters=function(){return[{type:r.Overlay}]},e.ngInjectableDef=c.defineInjectable({factory:function(){return new e(c.inject(r.Overlay))},token:e,providedIn:"root"}),e}(),v=function(){function e(){}return e.decorators=[{type:c.NgModule,args:[{imports:[t.CommonModule,r.OverlayModule,o.PortalModule,s.NzIconModule,i.NzAddOnModule,i.NzNoAnimationModule],exports:[l],declarations:[l],entryComponents:[l],providers:[g]}]}],e}();e.DRAWER_ANIMATE_DURATION=300,e.NzDrawerComponent=l,e.NzDrawerModule=v,e.DrawerBuilderForService=h,e.NzDrawerService=g,e.NzDrawerRef=d,Object.defineProperty(e,"__esModule",{value:!0})}); //# sourceMappingURL=ng-zorro-antd-drawer.umd.min.js.map