{"version":3,"file":"ui-vts-kit-ng-vts-descriptions.mjs","sources":["../../components/descriptions/descriptions-item.component.ts","../../components/descriptions/descriptions.component.ts","../../components/descriptions/descriptions.module.ts","../../components/descriptions/typings.ts","../../components/descriptions/public-api.ts","../../components/descriptions/ui-vts-kit-ng-vts-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 { NumberInput } from '@ui-vts-kit/ng-vts/core/types';\nimport { InputNumber } from '@ui-vts-kit/ng-vts/core/util';\n\nimport { Subject } from 'rxjs';\n\n@Component({\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  encapsulation: ViewEncapsulation.None,\n  selector: 'vts-descriptions-item',\n  template: `\n    <ng-template>\n      <ng-content></ng-content>\n    </ng-template>\n  `,\n  exportAs: 'vtsDescriptionsItem',\n  preserveWhitespaces: false\n})\nexport class VtsDescriptionsItemComponent implements OnChanges, OnDestroy {\n  static ngAcceptInputType_vtsSpan: NumberInput;\n\n  @ViewChild(TemplateRef, { static: true }) content!: TemplateRef<void>;\n\n  @Input() @InputNumber() vtsSpan = 1;\n  @Input() vtsTitle: 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 { VtsConfigKey, VtsConfigService, WithConfig } from '@ui-vts-kit/ng-vts/core/config';\nimport { warn } from '@ui-vts-kit/ng-vts/core/logger';\nimport {\n  gridResponsiveMap,\n  VtsBreakpointEnum,\n  VtsBreakpointService\n} from '@ui-vts-kit/ng-vts/core/services';\nimport { BooleanInput } from '@ui-vts-kit/ng-vts/core/types';\nimport { InputBoolean } from '@ui-vts-kit/ng-vts/core/util';\n\nimport { merge, Subject } from 'rxjs';\nimport { auditTime, startWith, switchMap, takeUntil, tap } from 'rxjs/operators';\nimport { VtsDescriptionsItemComponent } from './descriptions-item.component';\nimport {\n  VtsDescriptionsItemRenderProps,\n  VtsDescriptionsLayout,\n  VtsDescriptionsSize\n} from './typings';\n\nconst VTS_CONFIG_MODULE_NAME: VtsConfigKey = 'descriptions';\nconst defaultColumnMap: { [key in VtsBreakpointEnum]: number } = {\n  xl: 3,\n  lg: 3,\n  md: 3,\n  sm: 2,\n  xs: 1,\n  xxs: 1,\n  xxxs: 1\n};\n\n@Component({\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  encapsulation: ViewEncapsulation.None,\n  selector: 'vts-descriptions',\n  exportAs: 'vtsDescriptions',\n  preserveWhitespaces: false,\n  template: `\n    <div *ngIf=\"vtsTitle || vtsExtra\" class=\"vts-descriptions-header\">\n      <div *ngIf=\"vtsTitle\" class=\"vts-descriptions-title\">\n        <ng-container *vtsStringTemplateOutlet=\"vtsTitle\">\n          {{ vtsTitle }}\n        </ng-container>\n      </div>\n      <div *ngIf=\"vtsExtra\" class=\"vts-descriptions-extra\">\n        <ng-container *vtsStringTemplateOutlet=\"vtsExtra\">\n          {{ vtsExtra }}\n        </ng-container>\n      </div>\n    </div>\n    <div class=\"vts-descriptions-view\">\n      <table>\n        <tbody>\n          <ng-container *ngIf=\"vtsLayout === 'horizontal'\">\n            <tr class=\"vts-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=\"!vtsBordered\">\n                  <td class=\"vts-descriptions-item\" [colSpan]=\"item.span\">\n                    <div class=\"vts-descriptions-item-container\">\n                      <span\n                        class=\"vts-descriptions-item-label\"\n                        [class.vts-descriptions-item-no-colon]=\"!vtsColon\"\n                      >\n                        <ng-container *vtsStringTemplateOutlet=\"item.title\">\n                          {{ item.title }}\n                        </ng-container>\n                      </span>\n                      <span class=\"vts-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=\"vtsBordered\">\n                  <td class=\"vts-descriptions-item-label\" *vtsStringTemplateOutlet=\"item.title\">\n                    <ng-container *vtsStringTemplateOutlet=\"item.title\">\n                      {{ item.title }}\n                    </ng-container>\n                  </td>\n                  <td class=\"vts-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=\"vtsLayout === 'vertical'\">\n            <!-- Vertical & NOT Bordered -->\n            <ng-container *ngIf=\"!vtsBordered\">\n              <ng-container *ngFor=\"let row of itemMatrix; let i = index\">\n                <tr class=\"vts-descriptions-row\">\n                  <ng-container *ngFor=\"let item of row; let isLast = last\">\n                    <td class=\"vts-descriptions-item\" [colSpan]=\"item.span\">\n                      <div class=\"vts-descriptions-item-container\">\n                        <span\n                          class=\"vts-descriptions-item-label\"\n                          [class.vts-descriptions-item-no-colon]=\"!vtsColon\"\n                        >\n                          <ng-container *vtsStringTemplateOutlet=\"item.title\">\n                            {{ item.title }}\n                          </ng-container>\n                        </span>\n                      </div>\n                    </td>\n                  </ng-container>\n                </tr>\n                <tr class=\"vts-descriptions-row\">\n                  <ng-container *ngFor=\"let item of row; let isLast = last\">\n                    <td class=\"vts-descriptions-item\" [colSpan]=\"item.span\">\n                      <div class=\"vts-descriptions-item-container\">\n                        <span class=\"vts-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=\"vtsBordered\">\n              <ng-container *ngFor=\"let row of itemMatrix; let i = index\">\n                <tr class=\"vts-descriptions-row\">\n                  <ng-container *ngFor=\"let item of row; let isLast = last\">\n                    <td class=\"vts-descriptions-item-label\" [colSpan]=\"item.span\">\n                      <ng-container *vtsStringTemplateOutlet=\"item.title\">\n                        {{ item.title }}\n                      </ng-container>\n                    </td>\n                  </ng-container>\n                </tr>\n                <tr class=\"vts-descriptions-row\">\n                  <ng-container *ngFor=\"let item of row; let isLast = last\">\n                    <td class=\"vts-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: 'vts-descriptions',\n    '[class.vts-descriptions-bordered]': 'vtsBordered',\n    '[class.vts-descriptions-middle]': 'vtsSize === \"middle\"',\n    '[class.vts-descriptions-small]': 'vtsSize === \"small\"',\n    '[class.vts-descriptions-rtl]': 'dir === \"rtl\"'\n  }\n})\nexport class VtsDescriptionsComponent implements OnChanges, OnDestroy, AfterContentInit, OnInit {\n  readonly _vtsModuleName: VtsConfigKey = VTS_CONFIG_MODULE_NAME;\n  static ngAcceptInputType_vtsBordered: BooleanInput;\n  static ngAcceptInputType_vtsColon: BooleanInput;\n\n  @ContentChildren(VtsDescriptionsItemComponent)\n  items!: QueryList<VtsDescriptionsItemComponent>;\n\n  @Input() @InputBoolean() @WithConfig() vtsBordered: boolean = false;\n  @Input() vtsLayout: VtsDescriptionsLayout = 'horizontal';\n  @Input() @WithConfig() vtsColumn: number | { [key in VtsBreakpointEnum]: number } =\n    defaultColumnMap;\n  @Input() @WithConfig() vtsSize: VtsDescriptionsSize = 'default';\n  @Input() vtsTitle: string | TemplateRef<void> = '';\n  @Input() vtsExtra?: string | TemplateRef<void>;\n  @Input() @WithConfig() @InputBoolean() vtsColon: boolean = true;\n\n  itemMatrix: VtsDescriptionsItemRenderProps[][] = [];\n  realColumn = 3;\n  dir: Direction = 'ltr';\n\n  private breakpoint: VtsBreakpointEnum = VtsBreakpointEnum.md;\n  private destroy$ = new Subject<void>();\n\n  constructor(\n    public vtsConfigService: VtsConfigService,\n    private cdr: ChangeDetectorRef,\n    private breakpointService: VtsBreakpointService,\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.vtsColumn) {\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(\n        switchMap(() => merge(...this.items.map(i => i.inputChange$)).pipe(auditTime(16)))\n      ),\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: VtsDescriptionsItemRenderProps[] = [];\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: VtsDescriptionsItemRenderProps[][] = [];\n    const flushRow = () => {\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 { vtsTitle: title, content, vtsSpan: span } = item;\n\n      width += span;\n\n      // If the last item make the row's length exceeds `vtsColumn`, 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(`\"vtsColumn\" 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.vtsColumn !== 'number') {\n      return this.vtsColumn[this.breakpoint];\n    }\n\n    return this.vtsColumn;\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 */\nimport { BidiModule } from '@angular/cdk/bidi';\nimport { PlatformModule } from '@angular/cdk/platform';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { VtsOutletModule } from '@ui-vts-kit/ng-vts/core/outlet';\n\nimport { VtsDescriptionsItemComponent } from './descriptions-item.component';\nimport { VtsDescriptionsComponent } from './descriptions.component';\n\n@NgModule({\n  imports: [BidiModule, CommonModule, VtsOutletModule, PlatformModule],\n  declarations: [VtsDescriptionsComponent, VtsDescriptionsItemComponent],\n  exports: [VtsDescriptionsComponent, VtsDescriptionsItemComponent]\n})\nexport class VtsDescriptionsModule {}\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 { TemplateRef } from '@angular/core';\n\nexport type VtsDescriptionsSize = 'default' | 'middle' | 'small';\n\nexport type VtsDescriptionsLayout = 'horizontal' | 'vertical';\n\nexport interface VtsDescriptionsItemRenderProps {\n  title: string | TemplateRef<void>;\n  span: number;\n  content: TemplateRef<void>;\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\nexport { VtsDescriptionsModule } from './descriptions.module';\nexport { VtsDescriptionsComponent } from './descriptions.component';\nexport { VtsDescriptionsItemComponent } 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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"}