UNPKG

ng-zorro-antd

Version:

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

2 lines 26.7 kB
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("@angular/core"),require("ng-zorro-antd/core"),require("rxjs"),require("rxjs/operators"),require("@angular/cdk/keycodes"),require("@angular/cdk/overlay"),require("@angular/cdk/platform"),require("@angular/cdk/portal"),require("ng-zorro-antd/button"),require("@angular/common"),require("@angular/forms"),require("ng-zorro-antd/icon"),require("ng-zorro-antd/menu")):"function"==typeof define&&define.amd?define("ng-zorro-antd/dropdown",["exports","@angular/core","ng-zorro-antd/core","rxjs","rxjs/operators","@angular/cdk/keycodes","@angular/cdk/overlay","@angular/cdk/platform","@angular/cdk/portal","ng-zorro-antd/button","@angular/common","@angular/forms","ng-zorro-antd/icon","ng-zorro-antd/menu"],t):t(((e=e||self)["ng-zorro-antd"]=e["ng-zorro-antd"]||{},e["ng-zorro-antd"].dropdown={}),e.ng.core,e["ng-zorro-antd"].core,e.rxjs,e.rxjs.operators,e.ng.cdk.keycodes,e.ng.cdk.overlay,e.ng.cdk.platform,e.ng.cdk.portal,e["ng-zorro-antd"].button,e.ng.common,e.ng.forms,e["ng-zorro-antd"].icon,e["ng-zorro-antd"].menu)}(this,function(e,t,n,o,i,r,s,a,p,l,c,d,u,h){"use strict";var y=function(e,t){return(y=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 g(e,t){function n(){this.constructor=e}y(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)}function v(e,t,n,o){var i,r=arguments.length,s=r<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,n):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)s=Reflect.decorate(e,t,n,o);else for(var a=e.length-1;a>=0;a--)(i=e[a])&&(s=(r<3?i(s):r>3?i(t,n,s):i(t,n))||s);return r>3&&s&&Object.defineProperty(t,n,s),s}function f(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)}function z(e,t){var n="function"==typeof Symbol&&e[Symbol.iterator];if(!n)return e;var o,i,r=n.call(e),s=[];try{for(;(void 0===t||t-- >0)&&!(o=r.next()).done;)s.push(o.value)}catch(e){i={error:e}}finally{try{o&&!o.done&&(n=r.return)&&n.call(r)}finally{if(i)throw i.error}}return s}function b(){for(var e=[],t=0;t<arguments.length;t++)e=e.concat(z(arguments[t]));return e}var m=function(e){function n(){var t=null!==e&&e.apply(this,arguments)||this;return t.isInDropDown=!0,t}return g(n,e),n.decorators=[{type:t.Injectable}],n}(n.NzMenuBaseService);var w=function(){function e(e){this.cdr=e,this.open=!0,this.dropDownPosition="bottom",this.destroy$=new o.Subject}return e.prototype.init=function(e,t,n,o){var r=this;this.open=e,this.templateRef=t,this.control=o,n.pipe(i.takeUntil(this.destroy$)).subscribe(function(e){r.dropDownPosition="bottom"===e.connectionPair.overlayY?"top":"bottom",r.cdr.markForCheck()})},e.prototype.close=function(){this.open=!1,this.cdr.markForCheck()},e.prototype.afterAnimation=function(){this.open||this.control.dispose()},e.prototype.ngOnDestroy=function(){this.destroy$.next(),this.destroy$.complete()},e.decorators=[{type:t.Component,args:[{selector:"nz-dropdown-context",exportAs:"nzDropdownContext",animations:[n.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:t.ViewEncapsulation.None,changeDetection:t.ChangeDetectionStrategy.OnPush,providers:[m],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 "]}]}],e.ctorParameters=function(){return[{type:t.ChangeDetectorRef}]},e}();function D(e){return e.get(m)}var C=function(){function e(e,t,n,i,r,s){this.cdr=e,this.elementRef=t,this.renderer=n,this.viewContainerRef=i,this.nzMenuDropdownService=r,this.noAnimation=s,this.open=!1,this.triggerWidth=0,this.dropDownPosition="bottom",this.visible$=new o.Subject,this.nzTrigger="hover",this.nzPlacement="bottomLeft",this.nzOverlayClassName="",this.nzOverlayStyle={},this.nzTableFilter=!1}return e.prototype.setVisibleStateWhen=function(e,t){void 0===t&&(t="all"),this.nzTrigger!==t&&"all"!==t||this.visible$.next(e)},e.prototype.setValue=function(e,t){this[e]=t,this.cdr.markForCheck()},e.prototype.ngAfterContentInit=function(){this.renderer.removeChild(this.renderer.parentNode(this.elementRef.nativeElement),this.elementRef.nativeElement)},e.decorators=[{type:t.Component,args:[{selector:"nz-dropdown-menu",template:'<ng-template>\n <div *ngIf="open" class="{{\'ant-dropdown nz-dropdown ant-dropdown-placement-\'+nzPlacement}}"\n [ngClass]="nzOverlayClassName"\n [ngStyle]="nzOverlayStyle"\n [@slideMotion]="dropDownPosition"\n [@.disabled]="noAnimation?.nzNoAnimation"\n [nzNoAnimation]="noAnimation?.nzNoAnimation"\n (mouseenter)="setVisibleStateWhen(true,\'hover\')"\n (mouseleave)="setVisibleStateWhen(false,\'hover\')">\n <div [class.ant-table-filter-dropdown]="nzTableFilter">\n <ng-content></ng-content>\n </div>\n </div>\n</ng-template>',exportAs:"nzDropdownMenu",animations:[n.slideMotion],providers:[m,{provide:n.NzDropdownHigherOrderServiceToken,useFactory:D,deps:[[new t.Self,t.Injector]]}],preserveWhitespaces:!1,encapsulation:t.ViewEncapsulation.None,changeDetection:t.ChangeDetectionStrategy.OnPush,styles:["\n :root .ant-dropdown.nz-dropdown {\n top: 0;\n left: 0;\n position: relative;\n width: 100%;\n margin-top: 4px;\n margin-bottom: 4px;\n }\n "]}]}],e.ctorParameters=function(){return[{type:t.ChangeDetectorRef},{type:t.ElementRef},{type:t.Renderer2},{type:t.ViewContainerRef},{type:m},{type:n.NzNoAnimationDirective,decorators:[{type:t.Host},{type:t.Optional}]}]},e.propDecorators={templateRef:[{type:t.ViewChild,args:[t.TemplateRef,{static:!0}]}]},e}();var S=function(){function e(e,r,s,a,p,l,c){this.elementRef=e,this.renderer=r,this.overlay=s,this.platform=a,this.nzButtonComponent=p,this.nzButtonGroupComponent=l,this.viewContainerRef=c,this.overlayRef=null,this.destroy$=new o.Subject,this.triggerWidth=0,this.el=this.elementRef.nativeElement,this.dropdownOpen=!1,this.positions=b(n.DEFAULT_DROPDOWN_POSITIONS),this.positionSubscription=o.Subscription.EMPTY,this.overlaySubscription=o.Subscription.EMPTY,this.hover$=o.merge(o.fromEvent(this.el,"mouseenter").pipe(i.mapTo(!0)),o.fromEvent(this.el,"mouseleave").pipe(i.mapTo(!1))),this.$click=o.fromEvent(this.el,"click").pipe(i.tap(function(e){return e.stopPropagation()}),i.mapTo(!0)),this.nzTrigger="hover",this.nzBackdrop=!0,this.nzClickHide=!0,this.nzDisabled=!1,this.nzVisible=!1,this.nzTableFilter=!1,this.nzOverlayClassName="",this.nzOverlayStyle={},this.nzPlacement="bottomLeft",this.nzVisibleChange=new t.EventEmitter,r.addClass(e.nativeElement,"ant-dropdown-trigger"),this.nzButtonComponent&&(this.nzButtonComponent.isInDropdown=!0),this.nzButtonGroupComponent&&(this.nzButtonGroupComponent.isInDropdown=!0)}return e.prototype.setDisabled=function(e){e?(this.renderer.setAttribute(this.el,"disabled",""),this.nzVisible&&(this.nzVisible=!1,this.nzVisibleChange.emit(this.nzVisible),this.updateOverlayByVisible())):this.renderer.removeAttribute(this.el,"disabled")},e.prototype.getOverlayConfig=function(){return new s.OverlayConfig({positionStrategy:this.overlay.position().flexibleConnectedTo(this.el).withLockedPosition(),minWidth:this.triggerWidth,hasBackdrop:"click"===this.nzTrigger,backdropClass:this.nzBackdrop?void 0:"nz-overlay-transparent-backdrop",scrollStrategy:this.overlay.scrollStrategies.reposition()})},e.prototype.createOverlay=function(){if(this.overlayRef){var e=this.overlayRef.getConfig();return this.updateOverlayConfig(e),this.overlayRef}var t=this.getOverlayConfig();return this.overlayRef=this.overlay.create(t),this.subscribeOverlayEvent(this.overlayRef),this.subscribeToPositions(t.positionStrategy),this.overlayRef},e.prototype.updateOverlayConfig=function(e){return e.minWidth=this.triggerWidth,e.hasBackdrop="click"===this.nzTrigger,e},e.prototype.dispose=function(){this.overlayRef&&(this.overlayRef.dispose(),this.overlayRef=null,this.positionSubscription.unsubscribe(),this.overlaySubscription.unsubscribe())},e.prototype.subscribeToPositions=function(e){var t=this;this.positionSubscription.unsubscribe(),this.positionSubscription=e.positionChanges.pipe(i.takeUntil(this.destroy$)).subscribe(function(e){t.nzDropdownMenu.setValue("dropDownPosition",e.connectionPair.originY)})},e.prototype.subscribeOverlayEvent=function(e){var t=this;this.overlaySubscription.unsubscribe(),this.overlaySubscription=o.merge(e.backdropClick(),e.detachments(),e.keydownEvents().pipe(i.filter(function(e){return e.keyCode===r.ESCAPE&&!r.hasModifierKey(e)}))).pipe(i.takeUntil(this.destroy$)).subscribe(function(){t.nzDropdownMenu.setVisibleStateWhen(!1)})},e.prototype.getPortal=function(){return this.portal&&this.portal.templateRef===this.nzDropdownMenu.templateRef||(this.portal=new p.TemplatePortal(this.nzDropdownMenu.templateRef,this.viewContainerRef)),this.portal},e.prototype.openMenu=function(){if(!this.dropdownOpen){var e=this.createOverlay(),t=e.getConfig();this.nzDropdownMenu.setValue("open",!0),this.setPosition(t.positionStrategy),e.attach(this.getPortal()),this.dropdownOpen=!0}},e.prototype.closeMenu=function(){this.overlayRef&&(this.overlayRef.detach(),this.dropdownOpen=!1,this.nzDropdownMenu.setValue("open",!1))},e.prototype.setPosition=function(e){this.positionStrategy=e,e.withPositions(b(this.positions))},e.prototype.updatePositionStrategy=function(e){this.positionStrategy&&this.positionStrategy.withPositions(e)},e.prototype.setTriggerWidth=function(){if(this.platform.isBrowser){var e=this.nzMatchWidthElement?this.nzMatchWidthElement.nativeElement:this.el;this.triggerWidth=e.getBoundingClientRect().width}},e.prototype.initActionSubscribe=function(){var e=this,t="hover"===this.nzTrigger?this.hover$:this.$click,n=this.nzDropdownMenu.visible$,r=this.nzClickHide?this.nzDropdownMenu.nzMenuDropdownService.menuItemClick$.pipe(i.mapTo(!1)):o.EMPTY,s=o.merge(n,t,r),a=this.nzDropdownMenu.nzMenuDropdownService.menuOpen$;o.combineLatest([s,a]).pipe(i.map(function(e){var t=z(e,2),n=t[0],o=t[1];return n||o}),i.debounceTime(50),i.distinctUntilChanged(),i.takeUntil(this.destroy$)).subscribe(function(t){e.nzDisabled||e.nzVisible===t||(e.nzVisible=t,e.updateOverlayByVisible(),e.nzVisibleChange.emit(e.nzVisible),e.setTriggerWidth(),e.nzDropdownMenu.setValue("triggerWidth",e.triggerWidth))})},e.prototype.updateOverlayByVisible=function(){this.nzVisible?this.openMenu():this.closeMenu()},e.prototype.updateDisabledState=function(){this.setDisabled(this.nzDisabled)},e.prototype.regeneratePosition=function(e,t){return b([n.POSITION_MAP[e]],t)},e.prototype.ngAfterViewInit=function(){this.nzDropdownMenu&&(this.setTriggerWidth(),this.initActionSubscribe(),this.updateDisabledState())},e.prototype.ngOnDestroy=function(){this.destroy$.next(),this.destroy$.complete(),this.dispose()},e.prototype.ngOnChanges=function(e){var t=e.nzVisible,n=e.nzTrigger,o=e.nzPlacement,i=e.nzDisabled,r=e.nzOverlayClassName,s=e.nzOverlayStyle,a=e.nzTableFilter;this.nzDropdownMenu&&(t&&(this.updateOverlayByVisible(),this.nzDropdownMenu.visible$.next(this.nzVisible)),n&&this.nzDropdownMenu.setValue("nzTrigger",this.nzTrigger),a&&this.nzDropdownMenu.setValue("nzTableFilter",this.nzTableFilter),r&&this.nzDropdownMenu.setValue("nzOverlayClassName",this.nzOverlayClassName),s&&this.nzDropdownMenu.setValue("nzOverlayStyle",this.nzOverlayStyle),o&&(this.nzDropdownMenu.setValue("nzPlacement",this.nzPlacement),this.nzDropdownMenu.setValue("dropDownPosition",-1!==this.nzDropdownMenu.nzPlacement.indexOf("top")?"top":"bottom"),this.positions=this.regeneratePosition(this.nzPlacement,this.positions),this.updatePositionStrategy(this.positions))),i&&this.updateDisabledState()},e.decorators=[{type:t.Directive,args:[{selector:"[nz-dropdown]",exportAs:"nzDropdown"}]}],e.ctorParameters=function(){return[{type:t.ElementRef},{type:t.Renderer2},{type:s.Overlay},{type:a.Platform},{type:l.NzButtonComponent,decorators:[{type:t.Optional},{type:t.Host}]},{type:l.NzButtonGroupComponent,decorators:[{type:t.Optional}]},{type:t.ViewContainerRef}]},e.propDecorators={nzDropdownMenu:[{type:t.Input}],nzTrigger:[{type:t.Input}],nzMatchWidthElement:[{type:t.Input}],nzBackdrop:[{type:t.Input}],nzClickHide:[{type:t.Input}],nzDisabled:[{type:t.Input}],nzVisible:[{type:t.Input}],nzTableFilter:[{type:t.Input}],nzOverlayClassName:[{type:t.Input}],nzOverlayStyle:[{type:t.Input}],nzPlacement:[{type:t.Input}],nzVisibleChange:[{type:t.Output}]},v([n.InputBoolean(),f("design:type",Object)],e.prototype,"nzBackdrop",void 0),v([n.InputBoolean(),f("design:type",Object)],e.prototype,"nzClickHide",void 0),v([n.InputBoolean(),f("design:type",Object)],e.prototype,"nzDisabled",void 0),v([n.InputBoolean(),f("design:type",Object)],e.prototype,"nzVisible",void 0),v([n.InputBoolean(),f("design:type",Object)],e.prototype,"nzTableFilter",void 0),e}();function O(e){return e.get(m)}var P=function(){function e(e,i,r){this.cdr=e,this.nzMenuDropdownService=i,this.noAnimation=r,this.triggerWidth=0,this.dropDownPosition="bottom",this.positions=b(n.DEFAULT_DROPDOWN_POSITIONS),this.visible$=new o.Subject,this.destroy$=new o.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 t.EventEmitter,n.warnDeprecation("'nz-dropdown' Component is going to be removed in 9.0.0. Please use 'nz-dropdown-menu' instead. Read https://ng.ant.design/components/dropdown/en")}return e.prototype.setVisibleStateWhen=function(e,t){void 0===t&&(t="all"),this.nzTrigger!==t&&"all"!==t||this.visible$.next(e)},e.prototype.onPositionChange=function(e){this.dropDownPosition=e.connectionPair.originY,this.cdr.markForCheck()},e.prototype.startSubscribe=function(e){var t=this,n=this.nzClickHide?this.nzMenuDropdownService.menuItemClick$.pipe(i.mapTo(!1)):o.EMPTY;o.combineLatest([o.merge(e,n),this.nzMenuDropdownService.menuOpen$]).pipe(i.map(function(e){return e[0]||e[1]}),i.debounceTime(50),i.distinctUntilChanged(),i.takeUntil(this.destroy$)).subscribe(function(e){t.nzDisabled||t.nzVisible===e||(t.nzVisible=e,t.nzVisibleChange.emit(t.nzVisible),t.triggerWidth=t.nzDropDownDirective.elementRef.nativeElement.getBoundingClientRect().width,t.cdr.markForCheck())})},e.prototype.updateDisabledState=function(){this.nzDropDownDirective&&this.nzDropDownDirective.setDisabled(this.nzDisabled)},e.prototype.ngOnDestroy=function(){this.destroy$.next(),this.destroy$.complete()},e.prototype.ngAfterContentInit=function(){this.startSubscribe(o.merge(this.visible$,"hover"===this.nzTrigger?this.nzDropDownDirective.hover$:this.nzDropDownDirective.$click)),this.updateDisabledState()},e.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=b([n.POSITION_MAP[this.nzPlacement]],this.positions))},e.decorators=[{type:t.Component,args:[{selector:"nz-dropdown",exportAs:"nzDropdown",preserveWhitespaces:!1,providers:[m,{provide:n.NzDropdownHigherOrderServiceToken,useFactory:O,deps:[[new t.Self,t.Injector]]}],animations:[n.slideMotion],encapsulation:t.ViewEncapsulation.None,changeDetection:t.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 [@.disabled]="noAnimation?.nzNoAnimation"\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 :root .ant-dropdown {\n top: 100%;\n left: 0;\n position: relative;\n width: 100%;\n margin-top: 4px;\n margin-bottom: 4px;\n }\n "]}]}],e.ctorParameters=function(){return[{type:t.ChangeDetectorRef},{type:m},{type:n.NzNoAnimationDirective,decorators:[{type:t.Host},{type:t.Optional}]}]},e.propDecorators={nzDropDownDirective:[{type:t.ContentChild,args:[S,{static:!1}]}],nzTrigger:[{type:t.Input}],nzOverlayClassName:[{type:t.Input}],nzOverlayStyle:[{type:t.Input}],nzPlacement:[{type:t.Input}],nzClickHide:[{type:t.Input}],nzDisabled:[{type:t.Input}],nzVisible:[{type:t.Input}],nzTableFilter:[{type:t.Input}],nzVisibleChange:[{type:t.Output}]},v([n.InputBoolean(),f("design:type",Object)],e.prototype,"nzClickHide",void 0),v([n.InputBoolean(),f("design:type",Object)],e.prototype,"nzDisabled",void 0),v([n.InputBoolean(),f("design:type",Object)],e.prototype,"nzVisible",void 0),v([n.InputBoolean(),f("design:type",Object)],e.prototype,"nzTableFilter",void 0),e}();var k=function(){function e(){}return e.decorators=[{type:t.NgModule}],e}(),M=function(){function e(e){this.overlay=e,n.warnDeprecation("'NzDropdownService' is going to be removed in 9.0.0. Please use 'NzContextMenuService' instead. Read https://ng.ant.design/components/dropdown/en")}return e.prototype.create=function(e,t){var n=this;e.preventDefault(),this.dispose(),this.overlayRef=this.overlay.create(new s.OverlayConfig({scrollStrategy:this.overlay.scrollStrategies.close(),panelClass:"nz-dropdown-panel",positionStrategy:this.overlay.position().flexibleConnectedTo({x:e.x,y:e.y}).withPositions([new s.ConnectionPositionPair({originX:"start",originY:"top"},{overlayX:"start",overlayY:"top"}),new s.ConnectionPositionPair({originX:"start",originY:"top"},{overlayX:"start",overlayY:"bottom"}),new s.ConnectionPositionPair({originX:"start",originY:"top"},{overlayX:"end",overlayY:"bottom"}),new s.ConnectionPositionPair({originX:"start",originY:"top"},{overlayX:"end",overlayY:"top"})])}));var r=this.overlayRef.getConfig().positionStrategy.positionChanges,a=this.overlayRef.attach(new p.ComponentPortal(w)).instance;return o.fromEvent(document,"click").pipe(i.filter(function(e){return!!n.overlayRef&&!n.overlayRef.overlayElement.contains(e.target)}),i.take(1)).subscribe(function(){return a.close()}),a.init(!0,t,r,this),a},e.prototype.dispose=function(){this.overlayRef&&(this.overlayRef.dispose(),this.overlayRef=null)},e.decorators=[{type:t.Injectable,args:[{providedIn:k}]}],e.ctorParameters=function(){return[{type:s.Overlay}]},e.ngInjectableDef=t.ɵɵdefineInjectable({factory:function(){return new e(t.ɵɵinject(s.Overlay))},token:e,providedIn:k}),e}();var T=O,R=function(e){function o(o,i,r){var s=e.call(this,o,i,r)||this;return s.noAnimation=r,s.nzSize="default",s.nzType="default",s.nzIcon="ellipsis",s.nzClick=new t.EventEmitter,n.warnDeprecation("'nz-dropdown-button' Component is going to be removed in 9.0.0. Please use 'nz-dropdown-menu' instead. Read https://ng.ant.design/components/dropdown/en"),s}return g(o,e),o.prototype.ngAfterContentInit=function(){this.startSubscribe(this.visible$)},o.decorators=[{type:t.Component,args:[{selector:"nz-dropdown-button",exportAs:"nzDropdownButton",preserveWhitespaces:!1,animations:[n.slideMotion],encapsulation:t.ViewEncapsulation.None,changeDetection:t.ChangeDetectionStrategy.OnPush,providers:[m,{provide:n.NzDropdownHigherOrderServiceToken,useFactory:T,deps:[[new t.Self,t.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 <ng-container *nzStringTemplateOutlet="nzIcon"><i nz-icon [nzType]="nzIcon"></i></ng-container>\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 [@.disabled]="noAnimation?.nzNoAnimation"\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 :root .ant-dropdown {\n top: 100%;\n left: 0;\n position: relative;\n width: 100%;\n margin-top: 4px;\n margin-bottom: 4px;\n }\n "]}]}],o.ctorParameters=function(){return[{type:t.ChangeDetectorRef},{type:m},{type:n.NzNoAnimationDirective,decorators:[{type:t.Host},{type:t.Optional}]}]},o.propDecorators={nzSize:[{type:t.Input}],nzType:[{type:t.Input}],nzIcon:[{type:t.Input}],nzClick:[{type:t.Output}],nzDropDownDirective:[{type:t.ViewChild,args:[S,{static:!0}]}]},o}(P);var V=function(){function e(){}return e.decorators=[{type:t.NgModule}],e}(),I=function(){function e(e,t){this.elementRef=e,this.renderer=t,this.renderer.addClass(this.elementRef.nativeElement,"ant-dropdown-link")}return e.decorators=[{type:t.Directive,args:[{selector:"a[nz-dropdown]",exportAs:"nzDropdown"}]}],e.ctorParameters=function(){return[{type:t.ElementRef},{type:t.Renderer2}]},e}();var N=function(){function e(){}return e.decorators=[{type:t.NgModule,args:[{imports:[c.CommonModule,s.OverlayModule,d.FormsModule,l.NzButtonModule,h.NzMenuModule,u.NzIconModule,a.PlatformModule,n.NzNoAnimationModule,n.NzOverlayModule,k,V,n.NzAddOnModule],entryComponents:[w,C],declarations:[P,R,S,I,w,C],exports:[h.NzMenuModule,P,R,S,I,C]}]}],e}(),x=function(){function e(e){this.overlay=e,this.clickOutsideSubscription=o.Subscription.EMPTY,this.clickMenuSubscription=o.Subscription.EMPTY,this.positionSubscription=o.Subscription.EMPTY}return e.prototype.create=function(e,t){e.preventDefault();var n=this.createOverlay(e);n.hasAttached()&&this.close(),this.attachTemplatePortal(n,t),this.handleClickOutside()},e.prototype.close=function(){this.overlayRef&&(this.overlayRef.detach(),this.setOpenState(!1),this.clickOutsideSubscription.unsubscribe(),this.clickMenuSubscription.unsubscribe(),this.positionSubscription.unsubscribe())},e.prototype.handleClickOutside=function(){var e=this;this.clickOutsideSubscription.unsubscribe(),this.clickOutsideSubscription=o.fromEvent(document,"click").pipe(i.filter(function(t){return!!e.overlayRef&&!e.overlayRef.overlayElement.contains(t.target)}),i.filter(function(e){return 2!==e.button}),i.take(1)).subscribe(function(){e.close()})},e.prototype.attachTemplatePortal=function(e,t){var n=this;this.nzDropdownMenuComponent=t,t.setValue("nzTrigger","click"),this.clickMenuSubscription.unsubscribe(),this.clickMenuSubscription=t.nzMenuDropdownService.menuItemClick$.subscribe(function(){n.close()}),e.attach(new p.TemplatePortal(t.templateRef,t.viewContainerRef)),this.setOpenState(!0)},e.prototype.setOpenState=function(e){this.nzDropdownMenuComponent.setValue("open",e)},e.prototype.getOverlayConfig=function(e){return new s.OverlayConfig({panelClass:"nz-dropdown-panel",positionStrategy:this.generatePositionStrategy(e),scrollStrategy:this.overlay.scrollStrategies.close()})},e.prototype.generatePositionStrategy=function(e){return this.overlay.position().flexibleConnectedTo({x:e.x,y:e.y}).withPositions([new s.ConnectionPositionPair({originX:"start",originY:"top"},{overlayX:"start",overlayY:"top"}),new s.ConnectionPositionPair({originX:"start",originY:"top"},{overlayX:"start",overlayY:"bottom"}),new s.ConnectionPositionPair({originX:"start",originY:"top"},{overlayX:"end",overlayY:"bottom"}),new s.ConnectionPositionPair({originX:"start",originY:"top"},{overlayX:"end",overlayY:"top"})])},e.prototype.subscribeToPositions=function(e){var t=this;this.positionSubscription.unsubscribe(),this.positionSubscription=e.positionChanges.subscribe(function(e){t.nzDropdownMenuComponent.setValue("dropDownPosition","bottom"===e.connectionPair.overlayY?"top":"bottom")})},e.prototype.createOverlay=function(e){var t=this.getOverlayConfig(e);return this.overlayRef?this.updatePosition(this.overlayRef,e):this.overlayRef=this.overlay.create(t),this.subscribeToPositions(t.positionStrategy),this.overlayRef},e.prototype.updatePosition=function(e,t){e.updatePositionStrategy(this.generatePositionStrategy(t))},e.decorators=[{type:t.Injectable,args:[{providedIn:V}]}],e.ctorParameters=function(){return[{type:s.Overlay}]},e.ngInjectableDef=t.ɵɵdefineInjectable({factory:function(){return new e(t.ɵɵinject(s.Overlay))},token:e,providedIn:V}),e}();e.NzContextMenuService=x,e.NzContextMenuServiceModule=V,e.NzDropDownADirective=I,e.NzDropDownButtonComponent=R,e.NzDropDownComponent=P,e.NzDropDownDirective=S,e.NzDropDownModule=N,e.NzDropdownContextComponent=w,e.NzDropdownMenuComponent=C,e.NzDropdownService=M,e.NzDropdownServiceModule=k,e.NzMenuDropdownService=m,e.dropdownMenuServiceFactory=D,e.menuServiceFactory=O,Object.defineProperty(e,"__esModule",{value:!0})}); //# sourceMappingURL=ng-zorro-antd-dropdown.umd.min.js.map