ng-zorro-antd
Version:
An enterprise-class UI components based on Ant Design and Angular
2 lines • 13.7 kB
JavaScript
!function(e,n){"object"==typeof exports&&"undefined"!=typeof module?n(exports,require("@angular/cdk/portal"),require("rxjs"),require("rxjs/operators"),require("@angular/cdk/overlay"),require("@angular/common"),require("@angular/forms"),require("ng-zorro-antd/button"),require("ng-zorro-antd/core"),require("ng-zorro-antd/icon"),require("ng-zorro-antd/menu"),require("@angular/core")):"function"==typeof define&&define.amd?define("ng-zorro-antd/dropdown",["exports","@angular/cdk/portal","rxjs","rxjs/operators","@angular/cdk/overlay","@angular/common","@angular/forms","ng-zorro-antd/button","ng-zorro-antd/core","ng-zorro-antd/icon","ng-zorro-antd/menu","@angular/core"],n):n((e["ng-zorro-antd"]=e["ng-zorro-antd"]||{},e["ng-zorro-antd"].dropdown={}),e.ng.cdk.portal,e.rxjs,e.rxjs.operators,e.ng.cdk.overlay,e.ng.common,e.ng.forms,e["ng-zorro-antd"].button,e["ng-zorro-antd"].core,e["ng-zorro-antd"].icon,e["ng-zorro-antd"].menu,e.ng.core)}(this,function(e,r,a,s,p,n,t,o,i,l,c,d){"use strict";var u=function(e,n){return(u=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,n){e.__proto__=n}||function(e,n){for(var t in n)n.hasOwnProperty(t)&&(e[t]=n[t])})(e,n)};function h(e,n){function t(){this.constructor=e}u(e,n),e.prototype=null===n?Object.create(n):(t.prototype=n.prototype,new t)}function y(e,n,t,o){var i,r=arguments.length,a=r<3?n:null===o?o=Object.getOwnPropertyDescriptor(n,t):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,n,t,o);else for(var s=e.length-1;0<=s;s--)(i=e[s])&&(a=(r<3?i(a):3<r?i(n,t,a):i(n,t))||a);return 3<r&&a&&Object.defineProperty(n,t,a),a}function v(e,n){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,n)}function g(e,n){var t="function"==typeof Symbol&&e[Symbol.iterator];if(!t)return e;var o,i,r=t.call(e),a=[];try{for(;(void 0===n||0<n--)&&!(o=r.next()).done;)a.push(o.value)}catch(s){i={error:s}}finally{try{o&&!o.done&&(t=r["return"])&&t.call(r)}finally{if(i)throw i.error}}return a}function m(){for(var e=[],n=0;n<arguments.length;n++)e=e.concat(g(arguments[n]));return e}var z,f=(h(b,z=i.NzMenuBaseService),b.decorators=[{type:d.Injectable}],b);function b(){var e=null!==z&&z.apply(this,arguments)||this;return e.isInDropDown=!0,e}var D=(w.prototype.init=function(e,n,t,o){var i=this;this.open=e,this.templateRef=n,this.control=o,t.pipe(s.takeUntil(this.destroy$)).subscribe(function(e){i.dropDownPosition="bottom"===e.connectionPair.overlayY?"top":"bottom",i.cdr.markForCheck()})},w.prototype.close=function(){this.open=!1,this.cdr.markForCheck()},w.prototype.afterAnimation=function(){this.open||this.control.dispose()},w.prototype.ngOnDestroy=function(){this.destroy$.next(),this.destroy$.complete()},w.decorators=[{type:d.Component,args:[{selector:"nz-dropdown-context",exportAs:"nzDropdownContext",animations:[i.slideMotion],preserveWhitespaces:!1,template:'<div *ngIf="open"\n class="ant-dropdown ant-dropdown-placement-bottomLeft"\n [@slideMotion]="dropDownPosition"\n (@slideMotion.done)="afterAnimation()">\n <ng-template [ngTemplateOutlet]="templateRef"></ng-template>\n</div>',encapsulation:d.ViewEncapsulation.None,changeDetection:d.ChangeDetectionStrategy.OnPush,providers:[f],styles:["\n nz-dropdown-context {\n display: block;\n }\n\n .ant-dropdown {\n top: 100%;\n left: 0;\n position: relative;\n width: 100%;\n margin-top: 4px;\n margin-bottom: 4px;\n }\n "]}]}],w.ctorParameters=function(){return[{type:d.ChangeDetectorRef}]},w);function w(e){this.cdr=e,this.open=!0,this.dropDownPosition="bottom",this.destroy$=new a.Subject}var C=(O.prototype.setDisabled=function(e){e?this.renderer.setAttribute(this.el,"disabled",""):this.renderer.removeAttribute(this.el,"disabled")},O.decorators=[{type:d.Directive,args:[{selector:"[nz-dropdown]",exportAs:"nzDropdown"}]}],O.ctorParameters=function(){return[{type:d.ElementRef},{type:d.Renderer2}]},O);function O(e,n){this.elementRef=e,this.renderer=n,this.el=this.elementRef.nativeElement,this.hover$=a.merge(a.fromEvent(this.el,"mouseenter").pipe(s.mapTo(!0)),a.fromEvent(this.el,"mouseleave").pipe(s.mapTo(!1))),this.$click=a.fromEvent(this.el,"click").pipe(s.tap(function(e){return e.stopPropagation()}),s.mapTo(!0)),n.addClass(e.nativeElement,"ant-dropdown-trigger")}function k(e){return e.get(f)}var S=(P.prototype.setVisibleStateWhen=function(e,n){void 0===n&&(n="all"),this.nzTrigger!==n&&"all"!==n||this.visible$.next(e)},P.prototype.onPositionChange=function(e){this.dropDownPosition=e.connectionPair.originY,this.cdr.markForCheck()},P.prototype.startSubscribe=function(e){var n=this,t=this.nzClickHide?this.nzMenuDropdownService.menuItemClick$.pipe(s.mapTo(!1)):a.EMPTY;a.combineLatest(a.merge(e,t),this.nzMenuDropdownService.menuOpen$).pipe(s.map(function(e){return e[0]||e[1]}),s.debounceTime(50),s.distinctUntilChanged(),s.takeUntil(this.destroy$)).subscribe(function(e){n.nzDisabled||n.nzVisible===e||(n.nzVisible=e,n.nzVisibleChange.emit(n.nzVisible),n.triggerWidth=n.nzDropDownDirective.elementRef.nativeElement.getBoundingClientRect().width,n.cdr.markForCheck())})},P.prototype.updateDisabledState=function(){this.nzDropDownDirective&&this.nzDropDownDirective.setDisabled(this.nzDisabled)},P.prototype.ngOnDestroy=function(){this.destroy$.next(),this.destroy$.complete()},P.prototype.ngAfterContentInit=function(){this.startSubscribe(a.merge(this.visible$,"hover"===this.nzTrigger?this.nzDropDownDirective.hover$:this.nzDropDownDirective.$click)),this.updateDisabledState()},P.prototype.ngOnChanges=function(e){e.nzVisible&&this.visible$.next(this.nzVisible),e.nzDisabled&&this.updateDisabledState(),e.nzPlacement&&(this.dropDownPosition=-1!==this.nzPlacement.indexOf("top")?"top":"bottom",this.positions=m([i.POSITION_MAP[this.nzPlacement]],this.positions))},P.decorators=[{type:d.Component,args:[{selector:"nz-dropdown",exportAs:"nzDropdown",preserveWhitespaces:!1,providers:[f,{provide:i.NzDropdownHigherOrderServiceToken,useFactory:k,deps:[[new d.Self,d.Injector]]}],animations:[i.slideMotion],encapsulation:d.ViewEncapsulation.None,changeDetection:d.ChangeDetectionStrategy.OnPush,template:'<ng-content select="[nz-dropdown]"></ng-content>\n<ng-template\n cdkConnectedOverlay\n nzConnectedOverlay\n [cdkConnectedOverlayHasBackdrop]="nzTrigger === \'click\'"\n [cdkConnectedOverlayPositions]="positions"\n [cdkConnectedOverlayOrigin]="nzDropDownDirective"\n [cdkConnectedOverlayMinWidth]="triggerWidth"\n [cdkConnectedOverlayOpen]="nzVisible"\n (backdropClick)="setVisibleStateWhen(false)"\n (detach)="setVisibleStateWhen(false)"\n (positionChange)="onPositionChange($event)">\n <div class="{{\'ant-dropdown ant-dropdown-placement-\'+nzPlacement}}"\n [ngClass]="nzOverlayClassName"\n [ngStyle]="nzOverlayStyle"\n [@slideMotion]="dropDownPosition"\n [nzNoAnimation]="noAnimation?.nzNoAnimation"\n [style.minWidth.px]="triggerWidth"\n (mouseenter)="setVisibleStateWhen(true,\'hover\')"\n (mouseleave)="setVisibleStateWhen(false,\'hover\')">\n <div [class.ant-table-filter-dropdown]="nzTableFilter">\n <ng-content select="[nz-menu]"></ng-content>\n <ng-content></ng-content>\n </div>\n </div>\n</ng-template>',styles:["\n .ant-dropdown {\n top: 100%;\n left: 0;\n position: relative;\n width: 100%;\n margin-top: 4px;\n margin-bottom: 4px;\n }\n "]}]}],P.ctorParameters=function(){return[{type:d.ChangeDetectorRef},{type:f},{type:i.NzNoAnimationDirective,decorators:[{type:d.Host},{type:d.Optional}]}]},P.propDecorators={nzDropDownDirective:[{type:d.ContentChild,args:[C]}],nzMenuDirective:[{type:d.ContentChild,args:[c.NzMenuDirective]}],cdkConnectedOverlay:[{type:d.ViewChild,args:[p.CdkConnectedOverlay]}],nzTrigger:[{type:d.Input}],nzOverlayClassName:[{type:d.Input}],nzOverlayStyle:[{type:d.Input}],nzPlacement:[{type:d.Input}],nzClickHide:[{type:d.Input}],nzDisabled:[{type:d.Input}],nzVisible:[{type:d.Input}],nzTableFilter:[{type:d.Input}],nzVisibleChange:[{type:d.Output}]},y([i.InputBoolean(),v("design:type",Object)],P.prototype,"nzClickHide",void 0),y([i.InputBoolean(),v("design:type",Object)],P.prototype,"nzDisabled",void 0),y([i.InputBoolean(),v("design:type",Object)],P.prototype,"nzVisible",void 0),y([i.InputBoolean(),v("design:type",Object)],P.prototype,"nzTableFilter",void 0),P);function P(e,n,t){this.cdr=e,this.nzMenuDropdownService=n,this.noAnimation=t,this.triggerWidth=0,this.dropDownPosition="bottom",this.positions=m(i.DEFAULT_DROPDOWN_POSITIONS),this.visible$=new a.Subject,this.destroy$=new a.Subject,this.nzTrigger="hover",this.nzOverlayClassName="",this.nzOverlayStyle={},this.nzPlacement="bottomLeft",this.nzClickHide=!0,this.nzDisabled=!1,this.nzVisible=!1,this.nzTableFilter=!1,this.nzVisibleChange=new d.EventEmitter}var N=(x.prototype.create=function(e,n){var t=this;e.preventDefault(),this.dispose(),this.overlayRef=this.overlay.create(new p.OverlayConfig({scrollStrategy:this.overlay.scrollStrategies.close(),panelClass:"nz-dropdown-panel",positionStrategy:this.overlay.position().flexibleConnectedTo({x:e.x,y:e.y}).withPositions([new p.ConnectionPositionPair({originX:"start",originY:"top"},{overlayX:"start",overlayY:"top"}),new p.ConnectionPositionPair({originX:"start",originY:"top"},{overlayX:"start",overlayY:"bottom"}),new p.ConnectionPositionPair({originX:"start",originY:"top"},{overlayX:"end",overlayY:"bottom"}),new p.ConnectionPositionPair({originX:"start",originY:"top"},{overlayX:"end",overlayY:"top"})])}));var o=this.overlayRef.getConfig().positionStrategy.positionChanges,i=this.overlayRef.attach(new r.ComponentPortal(D)).instance;return a.fromEvent(document,"click").pipe(s.filter(function(e){return!!t.overlayRef&&!t.overlayRef.overlayElement.contains(e.target)}),s.take(1)).subscribe(function(){return i.close()}),i.init(!0,n,o,this),i},x.prototype.dispose=function(){this.overlayRef&&(this.overlayRef.dispose(),this.overlayRef=null)},x.decorators=[{type:d.Injectable}],x.ctorParameters=function(){return[{type:p.Overlay}]},x);function x(e){this.overlay=e}var M,R=k,V=(h(T,M=S),T.prototype.ngAfterContentInit=function(){this.startSubscribe(this.visible$)},T.decorators=[{type:d.Component,args:[{selector:"nz-dropdown-button",exportAs:"nzDropdownButton",preserveWhitespaces:!1,animations:[i.slideMotion],encapsulation:d.ViewEncapsulation.None,changeDetection:d.ChangeDetectionStrategy.OnPush,providers:[f,{provide:i.NzDropdownHigherOrderServiceToken,useFactory:R,deps:[[new d.Self,d.Injector]]}],template:'<div class="ant-btn-group ant-dropdown-button" nz-dropdown>\n <button nz-button\n type="button"\n [disabled]="nzDisabled"\n [nzType]="nzType"\n [nzSize]="nzSize"\n (click)="nzClick.emit($event)">\n <span><ng-content></ng-content></span>\n </button>\n <button nz-button\n type="button"\n class="ant-dropdown-trigger"\n [nzType]="nzType"\n [nzSize]="nzSize"\n [disabled]="nzDisabled"\n (click)="setVisibleStateWhen(true,\'click\')"\n (mouseenter)="setVisibleStateWhen(true,\'hover\')"\n (mouseleave)="setVisibleStateWhen(false,\'hover\')">\n <i nz-icon type="ellipsis"></i>\n </button>\n</div>\n<ng-template\n cdkConnectedOverlay\n nzConnectedOverlay\n [cdkConnectedOverlayHasBackdrop]="nzTrigger === \'click\'"\n [cdkConnectedOverlayPositions]="positions"\n [cdkConnectedOverlayOrigin]="nzDropDownDirective"\n (backdropClick)="setVisibleStateWhen(false)"\n (detach)="setVisibleStateWhen(false)"\n [cdkConnectedOverlayMinWidth]="triggerWidth"\n (positionChange)="onPositionChange($event)"\n [cdkConnectedOverlayOpen]="nzVisible">\n <div class="{{\'ant-dropdown ant-dropdown-placement-\'+nzPlacement}}"\n [nzNoAnimation]="noAnimation?.nzNoAnimation"\n [@slideMotion]="dropDownPosition"\n (mouseenter)="setVisibleStateWhen(true,\'hover\')"\n (mouseleave)="setVisibleStateWhen(false,\'hover\')"\n [style.minWidth.px]="triggerWidth">\n <ng-content select="[nz-menu]"></ng-content>\n </div>\n</ng-template>',styles:["\n nz-dropdown-button {\n position: relative;\n display: inline-block;\n }\n\n .ant-dropdown {\n top: 100%;\n left: 0;\n position: relative;\n width: 100%;\n margin-top: 4px;\n margin-bottom: 4px;\n }\n "]}]}],T.ctorParameters=function(){return[{type:d.ChangeDetectorRef},{type:f},{type:i.NzNoAnimationDirective,decorators:[{type:d.Host},{type:d.Optional}]}]},T.propDecorators={nzSize:[{type:d.Input}],nzType:[{type:d.Input}],nzClick:[{type:d.Output}],nzDropDownDirective:[{type:d.ViewChild,args:[C]}]},T);function T(e,n,t){var o=M.call(this,e,n,t)||this;return o.noAnimation=t,o.nzSize="default",o.nzType="default",o.nzClick=new d.EventEmitter,o}var I=(W.decorators=[{type:d.Directive,args:[{selector:"a[nz-dropdown]"}]}],W.ctorParameters=function(){return[{type:d.ElementRef},{type:d.Renderer2}]},W);function W(e,n){this.elementRef=e,this.renderer=n,this.renderer.addClass(this.elementRef.nativeElement,"ant-dropdown-link")}var j=(A.decorators=[{type:d.NgModule,args:[{imports:[n.CommonModule,p.OverlayModule,t.FormsModule,o.NzButtonModule,c.NzMenuModule,l.NzIconModule,i.NzNoAnimationModule,i.NzOverlayModule],entryComponents:[D],declarations:[S,V,C,I,D],exports:[c.NzMenuModule,S,V,C,I],providers:[N]}]}],A);function A(){}e.NzDropdownContextComponent=D,e.menuServiceFactory=k,e.NzDropDownComponent=S,e.NzDropDownDirective=C,e.NzDropdownService=N,e.NzDropDownButtonComponent=V,e.NzDropDownModule=j,e.NzMenuDropdownService=f,e.NzDropDownADirective=I,Object.defineProperty(e,"__esModule",{value:!0})});
//# sourceMappingURL=ng-zorro-antd-dropdown.umd.min.js.map