ng-zorro-antd
Version:
An enterprise-class UI components based on Ant Design and Angular
1 lines • 21.8 kB
Source Map (JSON)
{"version":3,"file":"ng-zorro-antd-cdk-overflow.mjs","sources":["../../components/cdk/overflow/overflow-item.directive.ts","../../components/cdk/overflow/overflow-rest.directive.ts","../../components/cdk/overflow/overflow-suffix.directive.ts","../../components/cdk/overflow/overflow-container.component.ts","../../components/cdk/overflow/overflow.module.ts","../../components/cdk/overflow/public-api.ts","../../components/cdk/overflow/ng-zorro-antd-cdk-overflow.ts"],"sourcesContent":["/**\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://github.com/NG-ZORRO/ng-zorro-antd/blob/master/LICENSE\n */\n\nimport { ChangeDetectorRef, Directive, ElementRef } from '@angular/core';\nimport { distinctUntilChanged, map, startWith, tap } from 'rxjs/operators';\n\nimport { NzResizeObserver } from 'ng-zorro-antd/cdk/resize-observer';\n\n@Directive({\n selector: '[nzOverflowItem]',\n host: {\n '[style]': 'overflowStyle'\n }\n})\nexport class NzOverflowItemDirective {\n overflowStyle: { [key: string]: string | number | undefined } | undefined = undefined;\n itemWidth$ = this.nzResizeObserver.observe(this.elementRef.nativeElement).pipe(\n map(([item]) => (item.target as HTMLElement).offsetWidth),\n distinctUntilChanged(),\n startWith(undefined),\n tap(width => {\n this.itemWidth = width;\n })\n );\n itemWidth: number | undefined = undefined;\n constructor(\n private nzResizeObserver: NzResizeObserver,\n public elementRef: ElementRef,\n private cdr: ChangeDetectorRef\n ) {}\n\n setItemStyle(display: boolean, order: number): void {\n const mergedHidden = !display;\n this.overflowStyle = {\n opacity: mergedHidden ? 0 : 1,\n height: mergedHidden ? 0 : undefined,\n overflowY: mergedHidden ? 'hidden' : undefined,\n order: order,\n pointerEvents: mergedHidden ? 'none' : undefined,\n position: mergedHidden ? 'absolute' : undefined\n };\n this.cdr.detectChanges();\n }\n}\n","/**\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://github.com/NG-ZORRO/ng-zorro-antd/blob/master/LICENSE\n */\n\nimport { ChangeDetectorRef, Directive, ElementRef } from '@angular/core';\nimport { map, startWith, tap } from 'rxjs/operators';\n\nimport { NzResizeObserver } from 'ng-zorro-antd/cdk/resize-observer';\n\n@Directive({\n selector: '[nzOverflowRest]',\n host: {\n '[style]': 'restStyle'\n }\n})\nexport class NzOverflowRestDirective {\n restStyle: { [key: string]: string | number | undefined } | undefined = undefined;\n restWidth$ = this.nzResizeObserver.observe(this.elementRef.nativeElement).pipe(\n map(([item]) => (item.target as HTMLElement).offsetWidth),\n startWith(0),\n tap(width => (this.restWidth = width))\n );\n restWidth = 0;\n constructor(\n private nzResizeObserver: NzResizeObserver,\n private elementRef: ElementRef,\n private cdr: ChangeDetectorRef\n ) {}\n\n setRestStyle(display: boolean, order: number): void {\n const mergedHidden = !display;\n this.restStyle = {\n opacity: mergedHidden ? 0 : 1,\n height: mergedHidden ? 0 : undefined,\n overflowY: mergedHidden ? 'hidden' : undefined,\n order: order,\n pointerEvents: mergedHidden ? 'none' : undefined,\n position: mergedHidden ? 'absolute' : undefined\n };\n this.cdr.detectChanges();\n }\n}\n","/**\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://github.com/NG-ZORRO/ng-zorro-antd/blob/master/LICENSE\n */\n\nimport { ChangeDetectorRef, Directive, ElementRef } from '@angular/core';\nimport { map, tap } from 'rxjs/operators';\n\nimport { NzResizeObserver } from 'ng-zorro-antd/cdk/resize-observer';\n\n@Directive({\n selector: '[nzOverflowSuffix]',\n host: {\n '[style]': 'suffixStyle'\n }\n})\nexport class NzOverflowSuffixDirective {\n suffixStyle = {};\n suffixWidth$ = this.nzResizeObserver.observe(this.elementRef.nativeElement).pipe(\n map(([item]) => (item.target as HTMLElement).offsetWidth),\n tap(width => (this.suffixWidth = width))\n );\n suffixWidth = 0;\n constructor(\n private nzResizeObserver: NzResizeObserver,\n private elementRef: ElementRef,\n private cdr: ChangeDetectorRef\n ) {}\n\n setSuffixStyle(start: number | null, order: number): void {\n if (start !== null) {\n this.suffixStyle = {\n position: 'absolute',\n left: `${start}px`,\n top: 0,\n opacity: 1,\n order: order\n };\n } else {\n this.suffixStyle = {\n opacity: 1,\n order: order\n };\n }\n this.cdr.detectChanges();\n }\n}\n","/**\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://github.com/NG-ZORRO/ng-zorro-antd/blob/master/LICENSE\n */\n\nimport {\n Component,\n ChangeDetectionStrategy,\n ContentChildren,\n QueryList,\n ElementRef,\n OnInit,\n AfterContentInit,\n OnDestroy,\n ContentChild,\n ChangeDetectorRef\n} from '@angular/core';\nimport { BehaviorSubject, combineLatest, Observable, ReplaySubject, Subject } from 'rxjs';\nimport { filter, map, pairwise, startWith, switchMap, takeUntil, withLatestFrom } from 'rxjs/operators';\n\nimport { NzResizeObserver } from 'ng-zorro-antd/cdk/resize-observer';\n\nimport { NzOverflowItemDirective } from './overflow-item.directive';\nimport { NzOverflowRestDirective } from './overflow-rest.directive';\nimport { NzOverflowSuffixDirective } from './overflow-suffix.directive';\n\n@Component({\n selector: 'nz-overflow-container',\n template: ` <ng-content></ng-content>\n <ng-content select=\"[appOverflowRest]\"></ng-content>\n <ng-content select=\"[appOverflowSuffix]\"></ng-content>`,\n providers: [NzResizeObserver],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class NzOverflowContainerComponent implements OnInit, AfterContentInit, OnDestroy {\n contentInit$ = new Subject<void>();\n @ContentChildren(NzOverflowItemDirective)\n overflowItems: QueryList<NzOverflowItemDirective> | undefined = undefined;\n @ContentChild(NzOverflowSuffixDirective)\n overflowSuffix: NzOverflowSuffixDirective | undefined = undefined;\n @ContentChild(NzOverflowRestDirective) overflowRest: NzOverflowRestDirective | undefined = undefined;\n overflowItems$ = new ReplaySubject<QueryList<NzOverflowItemDirective>>(1);\n destroy$ = new Subject<void>();\n containerWidth$ = this.nzResizeObserver\n .observe(this.elementRef.nativeElement)\n .pipe(map(([item]) => item.target.clientWidth || 0));\n restWidth$ = new BehaviorSubject<number>(0);\n suffixWidth$ = new BehaviorSubject<number>(0);\n suffixFixedStart$ = new BehaviorSubject<number | null>(null);\n displayCount$ = new BehaviorSubject<number>(Number.MAX_SAFE_INTEGER);\n restReady$ = new BehaviorSubject<boolean>(false);\n maxRestWith$ = this.restWidth$.pipe(\n pairwise(),\n map(([prevRestWidth, restWidth]) => Math.max(prevRestWidth, restWidth))\n );\n omittedItems$ = combineLatest([this.overflowItems$, this.displayCount$]).pipe(\n withLatestFrom(this.contentInit$),\n map(([[overflowItems, displayCount]]) => overflowItems.toArray().slice(displayCount + 1))\n );\n displayRest$ = combineLatest([this.restReady$, this.omittedItems$]).pipe(\n map(([restReady, omittedItems]) => restReady && !!omittedItems.length)\n );\n\n updateDisplayCount(count: number, notReady?: boolean): void {\n this.displayCount$.next(count);\n if (this.overflowItems && !notReady) {\n this.restReady$.next(count < this.overflowItems.length - 1);\n }\n }\n\n constructor(\n private nzResizeObserver: NzResizeObserver,\n private elementRef: ElementRef,\n private cdr: ChangeDetectorRef\n ) {}\n\n ngOnInit(): void {\n const overflowItemsWidth$ = this.overflowItems$.pipe(\n switchMap(items => combineLatest(items.map(item => item.itemWidth$)))\n ) as Observable<number[]>;\n this.overflowItems$.pipe(takeUntil(this.destroy$)).subscribe(overflowItems => {\n if (!overflowItems.length) {\n this.displayCount$.next(0);\n this.suffixFixedStart$.next(null);\n }\n });\n combineLatest([overflowItemsWidth$, this.containerWidth$, this.maxRestWith$, this.restWidth$, this.suffixWidth$])\n .pipe(\n filter(([, containerWidth, maxRestWith]) => !!(containerWidth && maxRestWith)),\n takeUntil(this.destroy$)\n )\n .subscribe(([overflowItemsWidth, containerWidth, maxRestWith, restWidth, suffixWidth]) => {\n let totalWidth = suffixWidth;\n const len = overflowItemsWidth.length;\n const lastIndex = len - 1;\n for (let i = 0; i < len; i += 1) {\n const currentItemWidth = overflowItemsWidth[i];\n // Break since data not ready\n if (currentItemWidth === undefined) {\n this.updateDisplayCount(i - 1, true);\n break;\n } else {\n // Find best match\n totalWidth += currentItemWidth;\n\n if (\n // Only one means `totalWidth` is the final width\n (lastIndex === 0 && totalWidth <= containerWidth) ||\n // Last two width will be the final width\n (i === lastIndex - 1 &&\n overflowItemsWidth[lastIndex] !== undefined &&\n totalWidth + overflowItemsWidth[lastIndex]! <= containerWidth)\n ) {\n // Additional check if match the end\n this.updateDisplayCount(lastIndex);\n this.suffixFixedStart$.next(null);\n break;\n } else if (totalWidth + maxRestWith > containerWidth) {\n // Can not hold all the content to show rest\n this.updateDisplayCount(i - 1);\n this.suffixFixedStart$.next(totalWidth - currentItemWidth - suffixWidth + restWidth);\n break;\n }\n this.cdr.detectChanges();\n }\n }\n if (\n this.overflowSuffix &&\n overflowItemsWidth[0] !== undefined &&\n overflowItemsWidth[0] + suffixWidth > containerWidth\n ) {\n this.suffixFixedStart$.next(null);\n }\n\n this.cdr.detectChanges();\n });\n combineLatest([this.suffixFixedStart$, this.displayCount$])\n .pipe(takeUntil(this.destroy$))\n .subscribe(([suffixFixedStart, displayCount]) => {\n this.overflowSuffix?.setSuffixStyle(suffixFixedStart, displayCount);\n });\n combineLatest([this.displayCount$, this.overflowItems$])\n .pipe(takeUntil(this.destroy$))\n .subscribe(([displayCount, overflowItems]) =>\n overflowItems.forEach((item, index) => item.setItemStyle(index <= displayCount, index))\n );\n combineLatest([this.displayRest$, this.displayCount$])\n .pipe(takeUntil(this.destroy$))\n .subscribe(([displayRest, displayCount]) => {\n this.overflowRest?.setRestStyle(displayRest, displayRest ? displayCount : Number.MAX_SAFE_INTEGER);\n });\n }\n ngAfterContentInit(): void {\n this.overflowItems?.changes.pipe(startWith(this.overflowItems)).subscribe(this.overflowItems$);\n this.overflowSuffix?.suffixWidth$.pipe(takeUntil(this.destroy$)).subscribe(this.suffixWidth$);\n this.overflowRest?.restWidth$.pipe(takeUntil(this.destroy$)).subscribe(this.restWidth$);\n this.contentInit$.next();\n }\n ngOnDestroy(): void {\n this.destroy$.next();\n this.destroy$.complete();\n }\n}\n","/**\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://github.com/NG-ZORRO/ng-zorro-antd/blob/master/LICENSE\n */\n\nimport { NgModule } from '@angular/core';\n\nimport { NzResizeObserverModule } from 'ng-zorro-antd/cdk/resize-observer';\n\nimport { NzOverflowContainerComponent } from './overflow-container.component';\nimport { NzOverflowItemDirective } from './overflow-item.directive';\nimport { NzOverflowRestDirective } from './overflow-rest.directive';\nimport { NzOverflowSuffixDirective } from './overflow-suffix.directive';\n\n@NgModule({\n imports: [NzResizeObserverModule],\n declarations: [\n NzOverflowContainerComponent,\n NzOverflowItemDirective,\n NzOverflowRestDirective,\n NzOverflowSuffixDirective\n ],\n exports: [NzOverflowContainerComponent, NzOverflowItemDirective, NzOverflowRestDirective, NzOverflowSuffixDirective]\n})\nexport class NzOverflowModule {}\n","/**\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://github.com/NG-ZORRO/ng-zorro-antd/blob/master/LICENSE\n */\n\nexport { NzOverflowModule } from './overflow.module';\nexport { NzOverflowContainerComponent } from './overflow-container.component';\nexport { NzOverflowItemDirective } from './overflow-item.directive';\nexport { NzOverflowRestDirective } from './overflow-rest.directive';\nexport { NzOverflowSuffixDirective } from './overflow-suffix.directive';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}