ng-zorro-antd
Version:
An enterprise-class UI components based on Ant Design and Angular
1 lines • 19 kB
Source Map (JSON)
{"version":3,"file":"ng-zorro-antd-descriptions.mjs","sources":["../../components/descriptions/descriptions-item.component.ts","../../components/descriptions/descriptions.component.ts","../../components/descriptions/descriptions.module.ts","../../components/descriptions/public-api.ts","../../components/descriptions/ng-zorro-antd-descriptions.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 {\n ChangeDetectionStrategy,\n Component,\n Input,\n OnChanges,\n OnDestroy,\n TemplateRef,\n ViewChild,\n ViewEncapsulation\n} from '@angular/core';\nimport { Subject } from 'rxjs';\n\nimport { NumberInput } from 'ng-zorro-antd/core/types';\nimport { InputNumber } from 'ng-zorro-antd/core/util';\n\n@Component({\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n selector: 'nz-descriptions-item',\n template: `\n <ng-template>\n <ng-content></ng-content>\n </ng-template>\n `,\n exportAs: 'nzDescriptionsItem',\n preserveWhitespaces: false\n})\nexport class NzDescriptionsItemComponent implements OnChanges, OnDestroy {\n static ngAcceptInputType_nzSpan: NumberInput;\n\n @ViewChild(TemplateRef, { static: true }) content!: TemplateRef<void>;\n\n @Input() @InputNumber() nzSpan = 1;\n @Input() nzTitle: string | TemplateRef<void> = '';\n\n readonly inputChange$ = new Subject<void>();\n\n ngOnChanges(): void {\n this.inputChange$.next();\n }\n\n ngOnDestroy(): void {\n this.inputChange$.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 { Direction, Directionality } from '@angular/cdk/bidi';\nimport {\n AfterContentInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ContentChildren,\n Input,\n OnChanges,\n OnDestroy,\n OnInit,\n Optional,\n QueryList,\n SimpleChanges,\n TemplateRef,\n ViewEncapsulation\n} from '@angular/core';\nimport { merge, Subject } from 'rxjs';\nimport { auditTime, startWith, switchMap, takeUntil, tap } from 'rxjs/operators';\n\nimport { NzConfigKey, NzConfigService, WithConfig } from 'ng-zorro-antd/core/config';\nimport { warn } from 'ng-zorro-antd/core/logger';\nimport { gridResponsiveMap, NzBreakpointEnum, NzBreakpointService } from 'ng-zorro-antd/core/services';\nimport { BooleanInput } from 'ng-zorro-antd/core/types';\nimport { InputBoolean } from 'ng-zorro-antd/core/util';\n\nimport { NzDescriptionsItemComponent } from './descriptions-item.component';\nimport { NzDescriptionsItemRenderProps, NzDescriptionsLayout, NzDescriptionsSize } from './typings';\n\nconst NZ_CONFIG_MODULE_NAME: NzConfigKey = 'descriptions';\nconst defaultColumnMap: { [key in NzBreakpointEnum]: number } = {\n xxl: 3,\n xl: 3,\n lg: 3,\n md: 3,\n sm: 2,\n xs: 1\n};\n\n@Component({\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n selector: 'nz-descriptions',\n exportAs: 'nzDescriptions',\n preserveWhitespaces: false,\n template: `\n <div *ngIf=\"nzTitle || nzExtra\" class=\"ant-descriptions-header\">\n <div *ngIf=\"nzTitle\" class=\"ant-descriptions-title\">\n <ng-container *nzStringTemplateOutlet=\"nzTitle\">{{ nzTitle }}</ng-container>\n </div>\n <div *ngIf=\"nzExtra\" class=\"ant-descriptions-extra\">\n <ng-container *nzStringTemplateOutlet=\"nzExtra\">{{ nzExtra }}</ng-container>\n </div>\n </div>\n <div class=\"ant-descriptions-view\">\n <table>\n <tbody>\n <ng-container *ngIf=\"nzLayout === 'horizontal'\">\n <tr class=\"ant-descriptions-row\" *ngFor=\"let row of itemMatrix; let i = index\">\n <ng-container *ngFor=\"let item of row; let isLast = last\">\n <!-- Horizontal & NOT Bordered -->\n <ng-container *ngIf=\"!nzBordered\">\n <td class=\"ant-descriptions-item\" [colSpan]=\"item.span\">\n <div class=\"ant-descriptions-item-container\">\n <span class=\"ant-descriptions-item-label\" [class.ant-descriptions-item-no-colon]=\"!nzColon\">\n <ng-container *nzStringTemplateOutlet=\"item.title\">\n {{ item.title }}\n </ng-container>\n </span>\n <span class=\"ant-descriptions-item-content\">\n <ng-template [ngTemplateOutlet]=\"item.content\"></ng-template>\n </span>\n </div>\n </td>\n </ng-container>\n <!-- Horizontal & Bordered -->\n <ng-container *ngIf=\"nzBordered\">\n <td class=\"ant-descriptions-item-label\" *nzStringTemplateOutlet=\"item.title\">\n <ng-container *nzStringTemplateOutlet=\"item.title\">\n {{ item.title }}\n </ng-container>\n </td>\n <td class=\"ant-descriptions-item-content\" [colSpan]=\"item.span * 2 - 1\">\n <ng-template [ngTemplateOutlet]=\"item.content\"></ng-template>\n </td>\n </ng-container>\n </ng-container>\n </tr>\n </ng-container>\n\n <ng-container *ngIf=\"nzLayout === 'vertical'\">\n <!-- Vertical & NOT Bordered -->\n <ng-container *ngIf=\"!nzBordered\">\n <ng-container *ngFor=\"let row of itemMatrix; let i = index\">\n <tr class=\"ant-descriptions-row\">\n <ng-container *ngFor=\"let item of row; let isLast = last\">\n <td class=\"ant-descriptions-item\" [colSpan]=\"item.span\">\n <div class=\"ant-descriptions-item-container\">\n <span class=\"ant-descriptions-item-label\" [class.ant-descriptions-item-no-colon]=\"!nzColon\">\n <ng-container *nzStringTemplateOutlet=\"item.title\">\n {{ item.title }}\n </ng-container>\n </span>\n </div>\n </td>\n </ng-container>\n </tr>\n <tr class=\"ant-descriptions-row\">\n <ng-container *ngFor=\"let item of row; let isLast = last\">\n <td class=\"ant-descriptions-item\" [colSpan]=\"item.span\">\n <div class=\"ant-descriptions-item-container\">\n <span class=\"ant-descriptions-item-content\">\n <ng-template [ngTemplateOutlet]=\"item.content\"></ng-template>\n </span>\n </div>\n </td>\n </ng-container>\n </tr>\n </ng-container>\n </ng-container>\n <!-- Vertical & Bordered -->\n <ng-container *ngIf=\"nzBordered\">\n <ng-container *ngFor=\"let row of itemMatrix; let i = index\">\n <tr class=\"ant-descriptions-row\">\n <ng-container *ngFor=\"let item of row; let isLast = last\">\n <td class=\"ant-descriptions-item-label\" [colSpan]=\"item.span\">\n <ng-container *nzStringTemplateOutlet=\"item.title\">\n {{ item.title }}\n </ng-container>\n </td>\n </ng-container>\n </tr>\n <tr class=\"ant-descriptions-row\">\n <ng-container *ngFor=\"let item of row; let isLast = last\">\n <td class=\"ant-descriptions-item-content\" [colSpan]=\"item.span\">\n <ng-template [ngTemplateOutlet]=\"item.content\"></ng-template>\n </td>\n </ng-container>\n </tr>\n </ng-container>\n </ng-container>\n </ng-container>\n </tbody>\n </table>\n </div>\n `,\n host: {\n class: 'ant-descriptions',\n '[class.ant-descriptions-bordered]': 'nzBordered',\n '[class.ant-descriptions-middle]': 'nzSize === \"middle\"',\n '[class.ant-descriptions-small]': 'nzSize === \"small\"',\n '[class.ant-descriptions-rtl]': 'dir === \"rtl\"'\n }\n})\nexport class NzDescriptionsComponent implements OnChanges, OnDestroy, AfterContentInit, OnInit {\n readonly _nzModuleName: NzConfigKey = NZ_CONFIG_MODULE_NAME;\n static ngAcceptInputType_nzBordered: BooleanInput;\n static ngAcceptInputType_nzColon: BooleanInput;\n\n @ContentChildren(NzDescriptionsItemComponent) items!: QueryList<NzDescriptionsItemComponent>;\n\n @Input() @InputBoolean() @WithConfig() nzBordered: boolean = false;\n @Input() nzLayout: NzDescriptionsLayout = 'horizontal';\n @Input() @WithConfig() nzColumn: number | { [key in NzBreakpointEnum]: number } = defaultColumnMap;\n @Input() @WithConfig() nzSize: NzDescriptionsSize = 'default';\n @Input() nzTitle: string | TemplateRef<void> = '';\n @Input() nzExtra?: string | TemplateRef<void>;\n @Input() @WithConfig() @InputBoolean() nzColon: boolean = true;\n\n itemMatrix: NzDescriptionsItemRenderProps[][] = [];\n realColumn = 3;\n dir: Direction = 'ltr';\n\n private breakpoint: NzBreakpointEnum = NzBreakpointEnum.md;\n private destroy$ = new Subject<void>();\n\n constructor(\n public nzConfigService: NzConfigService,\n private cdr: ChangeDetectorRef,\n private breakpointService: NzBreakpointService,\n @Optional() private directionality: Directionality\n ) {}\n ngOnInit(): void {\n this.dir = this.directionality.value;\n this.directionality.change?.pipe(takeUntil(this.destroy$)).subscribe((direction: Direction) => {\n this.dir = direction;\n });\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes.nzColumn) {\n this.prepareMatrix();\n }\n }\n\n ngAfterContentInit(): void {\n const contentChange$ = this.items.changes.pipe(startWith(this.items), takeUntil(this.destroy$));\n\n merge(\n contentChange$,\n contentChange$.pipe(switchMap(() => merge(...this.items.map(i => i.inputChange$)).pipe(auditTime(16)))),\n this.breakpointService.subscribe(gridResponsiveMap).pipe(tap(bp => (this.breakpoint = bp)))\n )\n .pipe(takeUntil(this.destroy$))\n .subscribe(() => {\n this.prepareMatrix();\n this.cdr.markForCheck();\n });\n }\n\n ngOnDestroy(): void {\n this.destroy$.next();\n this.destroy$.complete();\n }\n\n /**\n * Prepare the render matrix according to description items' spans.\n */\n private prepareMatrix(): void {\n if (!this.items) {\n return;\n }\n\n let currentRow: NzDescriptionsItemRenderProps[] = [];\n let width = 0;\n\n const column = (this.realColumn = this.getColumn());\n const items = this.items.toArray();\n const length = items.length;\n const matrix: NzDescriptionsItemRenderProps[][] = [];\n const flushRow = (): void => {\n matrix.push(currentRow);\n currentRow = [];\n width = 0;\n };\n\n for (let i = 0; i < length; i++) {\n const item = items[i];\n const { nzTitle: title, content, nzSpan: span } = item;\n\n width += span;\n\n // If the last item make the row's length exceeds `nzColumn`, the last\n // item should take all the space left. This logic is implemented in the template.\n // Warn user about that.\n if (width >= column) {\n if (width > column) {\n warn(`\"nzColumn\" is ${column} but we have row length ${width}`);\n }\n currentRow.push({ title, content, span: column - (width - span) });\n flushRow();\n } else if (i === length - 1) {\n currentRow.push({ title, content, span: column - (width - span) });\n flushRow();\n } else {\n currentRow.push({ title, content, span });\n }\n }\n\n this.itemMatrix = matrix;\n }\n\n private getColumn(): number {\n if (typeof this.nzColumn !== 'number') {\n return this.nzColumn[this.breakpoint];\n }\n\n return this.nzColumn;\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 { BidiModule } from '@angular/cdk/bidi';\nimport { PlatformModule } from '@angular/cdk/platform';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\n\nimport { NzOutletModule } from 'ng-zorro-antd/core/outlet';\n\nimport { NzDescriptionsItemComponent } from './descriptions-item.component';\nimport { NzDescriptionsComponent } from './descriptions.component';\n\n@NgModule({\n imports: [BidiModule, CommonModule, NzOutletModule, PlatformModule],\n declarations: [NzDescriptionsComponent, NzDescriptionsItemComponent],\n exports: [NzDescriptionsComponent, NzDescriptionsItemComponent]\n})\nexport class NzDescriptionsModule {}\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 { NzDescriptionsModule } from './descriptions.module';\nexport { NzDescriptionsComponent } from './descriptions.component';\nexport { NzDescriptionsItemComponent } from './descriptions-item.component';\n\nexport * from './typings';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}