ng-zorro-antd
Version:
An enterprise-class UI components based on Ant Design and Angular
45 lines • 6.52 kB
JavaScript
/**
* 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
*/
import { Directive } from '@angular/core';
import { distinctUntilChanged, map, startWith, tap } from 'rxjs/operators';
import * as i0 from "@angular/core";
import * as i1 from "ng-zorro-antd/cdk/resize-observer";
export class NzOverflowItemDirective {
constructor(nzResizeObserver, elementRef, cdr) {
this.nzResizeObserver = nzResizeObserver;
this.elementRef = elementRef;
this.cdr = cdr;
this.overflowStyle = undefined;
this.itemWidth$ = this.nzResizeObserver.observe(this.elementRef.nativeElement).pipe(map(([item]) => item.target.offsetWidth), distinctUntilChanged(), startWith(undefined), tap(width => {
this.itemWidth = width;
}));
this.itemWidth = undefined;
}
setItemStyle(display, order) {
const mergedHidden = !display;
this.overflowStyle = {
opacity: mergedHidden ? 0 : 1,
height: mergedHidden ? 0 : undefined,
overflowY: mergedHidden ? 'hidden' : undefined,
order: order,
pointerEvents: mergedHidden ? 'none' : undefined,
position: mergedHidden ? 'absolute' : undefined
};
this.cdr.detectChanges();
}
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.2", ngImport: i0, type: NzOverflowItemDirective, deps: [{ token: i1.NzResizeObserver }, { token: i0.ElementRef }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Directive }); }
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.1.2", type: NzOverflowItemDirective, isStandalone: true, selector: "[nzOverflowItem]", host: { properties: { "style": "overflowStyle" } }, ngImport: i0 }); }
}
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.2", ngImport: i0, type: NzOverflowItemDirective, decorators: [{
type: Directive,
args: [{
selector: '[nzOverflowItem]',
host: {
'[style]': 'overflowStyle'
},
standalone: true
}]
}], ctorParameters: () => [{ type: i1.NzResizeObserver }, { type: i0.ElementRef }, { type: i0.ChangeDetectorRef }] });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3ZlcmZsb3ctaXRlbS5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9jb21wb25lbnRzL2Nkay9vdmVyZmxvdy9vdmVyZmxvdy1pdGVtLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7O0dBR0c7QUFFSCxPQUFPLEVBQXFCLFNBQVMsRUFBYyxNQUFNLGVBQWUsQ0FBQztBQUN6RSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsR0FBRyxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7O0FBVzNFLE1BQU0sT0FBTyx1QkFBdUI7SUFXbEMsWUFDVSxnQkFBa0MsRUFDbkMsVUFBc0IsRUFDckIsR0FBc0I7UUFGdEIscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtRQUNuQyxlQUFVLEdBQVYsVUFBVSxDQUFZO1FBQ3JCLFFBQUcsR0FBSCxHQUFHLENBQW1CO1FBYmhDLGtCQUFhLEdBQStELFNBQVMsQ0FBQztRQUN0RixlQUFVLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsQ0FBQyxDQUFDLElBQUksQ0FDNUUsR0FBRyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBRSxFQUFFLENBQUUsSUFBSSxDQUFDLE1BQXNCLENBQUMsV0FBVyxDQUFDLEVBQ3pELG9CQUFvQixFQUFFLEVBQ3RCLFNBQVMsQ0FBQyxTQUFTLENBQUMsRUFDcEIsR0FBRyxDQUFDLEtBQUssQ0FBQyxFQUFFO1lBQ1YsSUFBSSxDQUFDLFNBQVMsR0FBRyxLQUFLLENBQUM7UUFDekIsQ0FBQyxDQUFDLENBQ0gsQ0FBQztRQUNGLGNBQVMsR0FBdUIsU0FBUyxDQUFDO0lBS3ZDLENBQUM7SUFFSixZQUFZLENBQUMsT0FBZ0IsRUFBRSxLQUFhO1FBQzFDLE1BQU0sWUFBWSxHQUFHLENBQUMsT0FBTyxDQUFDO1FBQzlCLElBQUksQ0FBQyxhQUFhLEdBQUc7WUFDbkIsT0FBTyxFQUFFLFlBQVksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQzdCLE1BQU0sRUFBRSxZQUFZLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUztZQUNwQyxTQUFTLEVBQUUsWUFBWSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLFNBQVM7WUFDOUMsS0FBSyxFQUFFLEtBQUs7WUFDWixhQUFhLEVBQUUsWUFBWSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLFNBQVM7WUFDaEQsUUFBUSxFQUFFLFlBQVksQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxTQUFTO1NBQ2hELENBQUM7UUFDRixJQUFJLENBQUMsR0FBRyxDQUFDLGFBQWEsRUFBRSxDQUFDO0lBQzNCLENBQUM7OEdBNUJVLHVCQUF1QjtrR0FBdkIsdUJBQXVCOzsyRkFBdkIsdUJBQXVCO2tCQVBuQyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxrQkFBa0I7b0JBQzVCLElBQUksRUFBRTt3QkFDSixTQUFTLEVBQUUsZUFBZTtxQkFDM0I7b0JBQ0QsVUFBVSxFQUFFLElBQUk7aUJBQ2pCIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZVxuICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2dpdGh1Yi5jb20vTkctWk9SUk8vbmctem9ycm8tYW50ZC9ibG9iL21hc3Rlci9MSUNFTlNFXG4gKi9cblxuaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0b3JSZWYsIERpcmVjdGl2ZSwgRWxlbWVudFJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgZGlzdGluY3RVbnRpbENoYW5nZWQsIG1hcCwgc3RhcnRXaXRoLCB0YXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmltcG9ydCB7IE56UmVzaXplT2JzZXJ2ZXIgfSBmcm9tICduZy16b3Jyby1hbnRkL2Nkay9yZXNpemUtb2JzZXJ2ZXInO1xuXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6ICdbbnpPdmVyZmxvd0l0ZW1dJyxcbiAgaG9zdDoge1xuICAgICdbc3R5bGVdJzogJ292ZXJmbG93U3R5bGUnXG4gIH0sXG4gIHN0YW5kYWxvbmU6IHRydWVcbn0pXG5leHBvcnQgY2xhc3MgTnpPdmVyZmxvd0l0ZW1EaXJlY3RpdmUge1xuICBvdmVyZmxvd1N0eWxlOiB7IFtrZXk6IHN0cmluZ106IHN0cmluZyB8IG51bWJlciB8IHVuZGVmaW5lZCB9IHwgdW5kZWZpbmVkID0gdW5kZWZpbmVkO1xuICBpdGVtV2lkdGgkID0gdGhpcy5uelJlc2l6ZU9ic2VydmVyLm9ic2VydmUodGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQpLnBpcGUoXG4gICAgbWFwKChbaXRlbV0pID0+IChpdGVtLnRhcmdldCBhcyBIVE1MRWxlbWVudCkub2Zmc2V0V2lkdGgpLFxuICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCksXG4gICAgc3RhcnRXaXRoKHVuZGVmaW5lZCksXG4gICAgdGFwKHdpZHRoID0+IHtcbiAgICAgIHRoaXMuaXRlbVdpZHRoID0gd2lkdGg7XG4gICAgfSlcbiAgKTtcbiAgaXRlbVdpZHRoOiBudW1iZXIgfCB1bmRlZmluZWQgPSB1bmRlZmluZWQ7XG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgbnpSZXNpemVPYnNlcnZlcjogTnpSZXNpemVPYnNlcnZlcixcbiAgICBwdWJsaWMgZWxlbWVudFJlZjogRWxlbWVudFJlZixcbiAgICBwcml2YXRlIGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWZcbiAgKSB7fVxuXG4gIHNldEl0ZW1TdHlsZShkaXNwbGF5OiBib29sZWFuLCBvcmRlcjogbnVtYmVyKTogdm9pZCB7XG4gICAgY29uc3QgbWVyZ2VkSGlkZGVuID0gIWRpc3BsYXk7XG4gICAgdGhpcy5vdmVyZmxvd1N0eWxlID0ge1xuICAgICAgb3BhY2l0eTogbWVyZ2VkSGlkZGVuID8gMCA6IDEsXG4gICAgICBoZWlnaHQ6IG1lcmdlZEhpZGRlbiA/IDAgOiB1bmRlZmluZWQsXG4gICAgICBvdmVyZmxvd1k6IG1lcmdlZEhpZGRlbiA/ICdoaWRkZW4nIDogdW5kZWZpbmVkLFxuICAgICAgb3JkZXI6IG9yZGVyLFxuICAgICAgcG9pbnRlckV2ZW50czogbWVyZ2VkSGlkZGVuID8gJ25vbmUnIDogdW5kZWZpbmVkLFxuICAgICAgcG9zaXRpb246IG1lcmdlZEhpZGRlbiA/ICdhYnNvbHV0ZScgOiB1bmRlZmluZWRcbiAgICB9O1xuICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgfVxufVxuIl19