{"version":3,"file":"winkong-ng-zorro-antd-extension-table-form.mjs","sources":["../../../components/table-form/directive/table-expand.directive.ts","../../../components/table-form/directive/table-td.directive.ts","../../../components/table-form/directive/table-th.directive.ts","../../../components/table-form/table-form.component.ts","../../../components/table-form/table-form.component.html","../../../components/table-form/table-form.module.ts","../../../components/table-form/public-api.ts","../../../components/table-form/winkong-ng-zorro-antd-extension-table-form.ts"],"sourcesContent":["import { Directive, Input, TemplateRef } from '@angular/core';\r\n\r\n@Directive({\r\n  selector: '[nzxTableFormExpand]',\r\n})\r\nexport class NzxTableFormExpandDirective {\r\n  @Input() controlName!: string;\r\n\r\n  constructor(public templateRef: TemplateRef<any>) {}\r\n}\r\n","import { Directive, Input, TemplateRef } from '@angular/core';\r\n\r\n@Directive({\r\n  selector: '[nzxTableFormTd]',\r\n})\r\nexport class NzxTableFormTdDirective {\r\n  @Input() controlName!: string;\r\n\r\n  constructor(public templateRef: TemplateRef<any>) {}\r\n}\r\n","import { Directive, Input, TemplateRef } from '@angular/core';\r\n\r\n@Directive({\r\n  selector: '[nzxTableFormTh]',\r\n})\r\nexport class NzxTableFormThDirective {\r\n  @Input() controlName!: string;\r\n  @Input() width?: string;\r\n\r\n  constructor(public templateRef: TemplateRef<any>) {}\r\n}\r\n","import {\n  AfterContentInit,\n  ChangeDetectorRef,\n  Component,\n  ContentChild,\n  ContentChildren,\n  EventEmitter,\n  forwardRef,\n  Input,\n  OnDestroy,\n  OnInit,\n  Output,\n  QueryList,\n  TemplateRef,\n} from '@angular/core';\n\nimport {\n  AbstractControl,\n  ControlValueAccessor,\n  FormArray,\n  FormBuilder,\n  FormGroup,\n  NG_VALIDATORS,\n  NG_VALUE_ACCESSOR,\n  ValidationErrors,\n  Validator,\n  ValidatorFn,\n} from '@angular/forms';\n\nimport { NzTableLayout, NzTableSize } from '@winkong/ng-zorro-antd/table';\nimport { distinctUntilChanged, Subject, takeUntil } from 'rxjs';\n\nimport { updateControlStatus } from '@winkong/ng-zorro-antd-extension/util';\nimport { NzxTableFormExpandDirective } from './directive/table-expand.directive';\nimport { NzxTableFormTdDirective } from './directive/table-td.directive';\nimport { NzxTableFormThDirective } from './directive/table-th.directive';\n\nimport {\n  NzxLimitMessage,\n  NzxTableFormConfig,\n  NzxTableFormHeaderConfig,\n  NzxTableFormTdConfig,\n} from './type';\n\n@Component({\n  selector: 'nzx-table-form',\n  templateUrl: './table-form.component.html',\n  styleUrls: ['./table-form.component.less'],\n  exportAs: 'NzxTableForm',\n  providers: [\n    {\n      provide: NG_VALUE_ACCESSOR,\n      useExisting: forwardRef(() => NzxTableFormComponent),\n      multi: true,\n    },\n    { provide: NG_VALIDATORS, useExisting: NzxTableFormComponent, multi: true },\n  ],\n})\nexport class NzxTableFormComponent\n  implements\n    OnInit,\n    ControlValueAccessor,\n    AfterContentInit,\n    Validator,\n    OnDestroy\n{\n  @Input() tableLayout: NzTableLayout = 'fixed';\n  @Input() tableAlign: 'left' | 'right' | 'center' | null = 'center';\n  /** table 启用扩展行 */\n  @Input() enableExpand = false;\n  /** table border */\n  @Input() nzxBordered: boolean = false;\n  /** table size */\n  @Input() nzxSize: NzTableSize = 'default';\n  /** 启用数量限制 */\n  @Input() enableLimit = false;\n  /** 最大数量 */\n  @Input() maxLimit: number = 0;\n  /** 最少数量 */\n  @Input() minLimit: number = 0;\n  /** 自定义footer */\n  @Input() nzxFooter?: string | TemplateRef<void>;\n  /**是否在前端对数据进行分页，如果在服务器分页数据或者需要在前端显示全部数据时传入 false */\n  @Input() nzxFrontPagination = true;\n\n  /**\n   * 校验整个table的错误提示自定义模板\n   */\n  @Input() errorTemplate?: TemplateRef<any>;\n  /** 启用序号 */\n  @Input() enableNo = false;\n\n  /** 序号宽度 */\n  @Input() serialNumberWidth: string = '60px';\n  /** 序号自定义模板 */\n  @Input() serialNumberTemplate?: TemplateRef<void>;\n  /**\n   * 校验table的函数\n   */\n  @Input() tableValidatorFn: ValidatorFn = (\n    control: AbstractControl\n  ): ValidationErrors | null => null;\n\n  /** table config */\n  @Input() tableFormConfig: NzxTableFormConfig[] = [];\n\n  /** 数量限制回调 */\n  @Output() limitMessage = new EventEmitter<NzxLimitMessage>();\n\n  headerConfig!: Array<NzxTableFormHeaderConfig>;\n  tdConfig!: Array<NzxTableFormTdConfig>;\n\n  thTemplateOfNullInForm: {\n    templateRef: TemplateRef<unknown>;\n    width?: string;\n  }[] = [];\n  tdTemplateOfNullInForm: { templateRef: TemplateRef<unknown> }[] = [];\n  /** 整个table-form */\n  form!: FormGroup;\n  isDisabled = false;\n\n  /** formGroup下的formArray,formArray中是多行formGroup*/\n  get tableFormArray(): FormArray<FormGroup> {\n    return this.form.get('formArray') as FormArray<FormGroup>;\n  }\n\n  /** table formGroups集合 */\n  get formGroupList() {\n    return this.tableFormArray.controls.concat([]);\n  }\n\n  get invalid() {\n    return this.form.invalid;\n  }\n\n  /** 一行的form配置 */\n  private controlsConfig!: { [key: string]: any };\n\n  private destroyed$: Subject<void> = new Subject<void>();\n\n  @ContentChildren(NzxTableFormTdDirective)\n  private tableTdDirectiveList!: QueryList<NzxTableFormTdDirective>;\n\n  @ContentChildren(NzxTableFormThDirective)\n  private tableThDirectiveList!: QueryList<NzxTableFormThDirective>;\n\n  @ContentChild(NzxTableFormExpandDirective)\n  tableExpandDirective!: NzxTableFormExpandDirective;\n\n  constructor(private cd: ChangeDetectorRef, private fb: FormBuilder) {}\n\n  ngOnDestroy(): void {\n    this.destroyed$.complete();\n    this.destroyed$.unsubscribe();\n  }\n\n  ngOnInit(): void {\n    this.form = this.fb.group({\n      formArray: this.fb.array([], [this.tableValidatorFn]),\n    });\n\n    this.controlsConfig = this.parseFormConfig(this.tableFormConfig);\n    this.headerConfig = this.parseHeader(this.tableFormConfig);\n    this.tdConfig = this.parseTd(this.tableFormConfig);\n\n    this.form.valueChanges\n      .pipe(distinctUntilChanged(), takeUntil(this.destroyed$))\n      .subscribe((res) => {\n        this.propagateChange(res.formArray);\n        this.cd.markForCheck();\n      });\n  }\n\n  ngAfterContentInit(): void {\n    this.matchTemplate(this.tableThDirectiveList, this.tableTdDirectiveList);\n  }\n\n  /**\n   * 若table为空或者有一行数据校验不通过，则整个组件校验不通过\n   */\n  validate(control: AbstractControl): ValidationErrors | null {\n    const arr = (this.tableFormArray.controls as FormGroup[]) || [];\n    if (arr.some((row) => row.status === 'INVALID')) {\n      return { tableRequiredError: true };\n    }\n    return null;\n  }\n\n  /**\n   * 根据controlName设置config值\n   */\n  setConfig(controlName: string, config: Partial<NzxTableFormConfig>): void {\n    const index = this.tableFormConfig.findIndex(\n      (item) => item.controlName === controlName\n    );\n    if (index > -1) {\n      this.tableFormConfig[index] = {\n        ...this.tableFormConfig[index],\n        ...config,\n      };\n    }\n    this.updateTableConfig();\n  }\n\n  /**\n   * 重置table表单为空\n   */\n  clearTable(): void {\n    this.tableFormArray.clear();\n    this.cd.markForCheck();\n  }\n\n  /**\n   * 添加table一行\n   */\n  addRow(rowValue?: any): void {\n    if (this.form.valid) {\n      if (this.enableLimit && this.tableFormArray.length < this.maxLimit) {\n        const controlsConfigTemp = Object.assign({}, this.controlsConfig);\n        if (this.enableExpand) {\n          controlsConfigTemp['expand'] = [false];\n        }\n        const form = this.fb.group(controlsConfigTemp);\n        if (rowValue) {\n          form.patchValue(rowValue);\n        }\n\n        this.tableFormArray.push(form);\n      } else if (this.enableLimit) {\n        this.limitMessage.emit({\n          type: 'max',\n          limit: this.maxLimit,\n          msg: `最多${this.maxLimit}条`,\n        });\n      } else {\n        const controlsConfigTemp = Object.assign({}, this.controlsConfig);\n        if (this.enableExpand) {\n          controlsConfigTemp['expand'] = [false];\n        }\n        const form = this.fb.group(controlsConfigTemp);\n        if (rowValue) {\n          form.patchValue(rowValue);\n        }\n\n        this.tableFormArray.push(form);\n      }\n    } else {\n      updateControlStatus(this.tableFormArray);\n    }\n    this.cd.markForCheck();\n  }\n\n  /**\n   * 删除table一行\n   */\n  deleteRow(i: number): void {\n    if (this.enableLimit) {\n      if (this.tableFormArray.length > this.minLimit) {\n        this.tableFormArray.removeAt(i);\n      } else {\n        this.limitMessage.emit({\n          type: 'min',\n          limit: this.maxLimit,\n          msg: `至少${this.minLimit}条`,\n        });\n      }\n    } else {\n      this.tableFormArray.removeAt(i);\n    }\n  }\n\n  writeValue(obj: any): void {\n    this.tableFormArray.clear();\n    if (obj && obj.length > 0) {\n      if (this.tdConfig.length > 0) {\n        obj.forEach((item: any, i: number) => {\n          const controlsConfigTemp = Object.assign({}, this.controlsConfig);\n          if (this.enableExpand) {\n            controlsConfigTemp['expand'] = [false];\n          }\n          this.tableFormArray.push(this.fb.group(controlsConfigTemp));\n          this.tableFormArray.controls[i].patchValue(item);\n        });\n      }\n    }\n    this.cd.markForCheck();\n  }\n\n  registerOnChange(fn: any): void {\n    this.propagateChange = fn;\n  }\n\n  registerOnTouched(fn: any): void {}\n\n  setDisabledState?(isDisabled: boolean): void {\n    this.isDisabled = isDisabled;\n    if (isDisabled) {\n      setTimeout(() => {\n        this.tableFormArray.controls.forEach((i) => i.disable());\n      }, 0);\n    } else {\n      setTimeout(() => {\n        this.tableFormArray.controls.forEach((i) => i.enable());\n      }, 0);\n    }\n  }\n  /**\n   * 更新table config配置项\n   * 在更新config时候需要调用重新渲染table\n   */\n  private updateTableConfig(): void {\n    this.controlsConfig = this.parseFormConfig(this.tableFormConfig);\n    this.headerConfig = this.parseHeader(this.tableFormConfig);\n    this.tdConfig = this.parseTd(this.tableFormConfig);\n    this.matchTemplate(this.tableThDirectiveList, this.tableTdDirectiveList);\n  }\n\n  private propagateChange = (_: any) => {};\n\n  /**\n   * 匹配投影模板template放到config中\n   */\n  private matchTemplate(\n    thList: QueryList<NzxTableFormThDirective>,\n    tdList: QueryList<NzxTableFormTdDirective>\n  ): void {\n    this.headerConfig = this.headerConfig.map((item) => {\n      const ThDirective = thList.find(\n        (th) => th.controlName === item.controlName\n      );\n      return {\n        ...item,\n        templateRef: ThDirective?.templateRef,\n        width: ThDirective?.width,\n      };\n    });\n\n    this.tdConfig = this.tdConfig.map((item) => {\n      const TdDirective = tdList.find(\n        (td) => td.controlName === item.controlName\n      );\n      return {\n        ...item,\n        templateRef: TdDirective?.templateRef,\n      };\n    });\n\n    this.thTemplateOfNullInForm = thList\n      .filter((item) => !item.controlName)\n      .map((item) => ({\n        templateRef: item.templateRef,\n        width: item?.width,\n      }));\n\n    this.tdTemplateOfNullInForm = tdList\n      .filter((item) => !item.controlName)\n      .map((item) => ({\n        templateRef: item.templateRef,\n      }));\n  }\n\n  /**\n   * 解析配置生成controls\n   */\n  private parseFormConfig(customFormConfig: NzxTableFormConfig[]): {\n    [key: string]: any;\n  } {\n    const controls: { [key: string]: any } = {};\n    customFormConfig.forEach((item) => {\n      if (item.controlName) {\n        let defaultValue: any = null;\n        if (item.defaultValue === false) {\n          defaultValue = false;\n        }\n        defaultValue = item.defaultValue;\n        controls[item.controlName] = [defaultValue, item.validation];\n      }\n    });\n    return controls;\n  }\n\n  /**\n   * 解析配置生成header\n   *\n   */\n  private parseHeader(\n    customFormConfig: NzxTableFormConfig[]\n  ): Array<NzxTableFormHeaderConfig> {\n    return customFormConfig.map((item) => ({\n      header: item.header,\n      width: item?.width,\n      controlName: item?.controlName,\n      isShow: item.isShow ?? true,\n      templateRef: void 0,\n      showRequiredTip: item?.showRequiredTip,\n    }));\n  }\n\n  /**\n   * 解析配置生成Content\n   */\n  private parseTd(\n    customFormConfig: NzxTableFormConfig[]\n  ): Array<NzxTableFormTdConfig> {\n    return customFormConfig.map((item) => ({\n      controlName: item?.controlName,\n      isShow: item.isShow ?? true,\n      templateRef: void 0,\n      showRequiredTip: item?.showRequiredTip,\n      defaultValue: item?.defaultValue,\n      type: item.type,\n      validation: item.validation,\n      errorTip: item?.errorTip,\n      options: item?.options,\n      controlMode: item?.controlMode ?? 'edit',\n      placeholder: item?.placeholder,\n      allowClear: item?.allowClear,\n      maxLength: item?.maxLength,\n      max: item?.max,\n      format: item?.format,\n    }));\n  }\n}\n","<nz-table\n  #basicTable\n  [formGroup]=\"form\"\n  [nzData]=\"formGroupList\"\n  [nzTableLayout]=\"tableLayout\"\n  [nzFooter]=\"nzxFooter!\"\n  [nzBordered]=\"nzxBordered\"\n  [nzSize]=\"nzxSize\"\n  [nzFrontPagination]=\"nzxFrontPagination\"\n  nzHideOnSinglePage\n>\n  <thead>\n    <ng-content></ng-content>\n    <tr>\n      <!-- 序号列标题 -->\n      <th *ngIf=\"enableNo\" [nzAlign]=\"tableAlign\" [nzWidth]=\"serialNumberWidth\">\n        <span *ngIf=\"!serialNumberTemplate\"> 序号 </span>\n        <ng-container *ngIf=\"serialNumberTemplate\">\n          <ng-container *ngTemplateOutlet=\"serialNumberTemplate\"></ng-container>\n        </ng-container>\n      </th>\n      <!-- 表单列form header -->\n      <ng-container *ngFor=\"let item of headerConfig; let index = index\">\n        <ng-container *ngIf=\"item.isShow\">\n          <th\n            *ngIf=\"!item.templateRef\"\n            [nzAlign]=\"tableAlign\"\n            [nzWidth]=\"item.width!\"\n          >\n            <label *ngIf=\"item.showRequiredTip\" [ngStyle]=\"{ color: 'red' }\">\n              *\n            </label>\n            {{ item.header }}\n          </th>\n          <th\n            *ngIf=\"item.templateRef\"\n            [nzAlign]=\"tableAlign\"\n            [nzWidth]=\"item.width!\"\n          >\n            <ng-container\n              [ngTemplateOutlet]=\"item.templateRef\"\n              [ngTemplateOutletContext]=\"{ $implicit: item, index }\"\n            >\n            </ng-container>\n          </th>\n        </ng-container>\n      </ng-container>\n      <!-- 自定义展示列header -->\n      <th\n        *ngFor=\"let item of thTemplateOfNullInForm; let i = index\"\n        [nzAlign]=\"tableAlign\"\n        [nzWidth]=\"item.width!\"\n      >\n        <ng-container\n          *ngTemplateOutlet=\"\n            item.templateRef;\n            context: { $implicit: form, index: i, disabled: isDisabled }\n          \"\n        >\n        </ng-container>\n      </th>\n    </tr>\n  </thead>\n\n  <tbody formArrayName=\"formArray\">\n    <ng-container *ngFor=\"let fg of basicTable.data; let i = index\">\n      <tr>\n        <!-- 序号列 -->\n        <td *ngIf=\"enableNo\" [nzAlign]=\"tableAlign\">\n          {{ i + 1 }}\n        </td>\n        <!-- 表单列将放进form -->\n        <ng-container [formGroup]=\"fg\">\n          <ng-container *ngFor=\"let item of tdConfig\">\n            <ng-container *ngIf=\"item.isShow\">\n              <td *ngIf=\"!item.templateRef\" [nzAlign]=\"tableAlign\">\n                <nz-form-item [ngStyle]=\"{ 'margin-bottom': 0 }\">\n                  <nz-form-control [nzErrorTip]=\"item.errorTip\">\n                    <input\n                      *ngIf=\"\n                        item.type === 'input' &&\n                        item.controlMode !== 'readonly' &&\n                        !!item.controlName\n                      \"\n                      nz-input\n                      [placeholder]=\"item.placeholder || '请输入'\"\n                      [formControlName]=\"item.controlName\"\n                      [maxlength]=\"item.maxLength!\"\n                    />\n\n                    <textarea\n                      *ngIf=\"\n                        item.type === 'textarea' &&\n                        item.controlMode !== 'readonly' &&\n                        !!item.controlName\n                      \"\n                      nz-input\n                      [nzAutosize]=\"{ minRows: 3 }\"\n                      [placeholder]=\"item.placeholder || '请输入'\"\n                      [formControlName]=\"item.controlName\"\n                      [maxlength]=\"item.maxLength!\"\n                    ></textarea>\n\n                    <nz-input-number\n                      *ngIf=\"\n                        item.type === 'number' &&\n                        item.controlMode !== 'readonly' &&\n                        !!item.controlName\n                      \"\n                      [ngStyle]=\"{ width: 'auto' }\"\n                      [formControlName]=\"item.controlName\"\n                      [nzMin]=\"1\"\n                      [nzStep]=\"1\"\n                      [nzMax]=\"item.max!\"\n                      [nzPlaceHolder]=\"item.placeholder || '输入数字'\"\n                    >\n                    </nz-input-number>\n\n                    <nz-date-picker\n                      *ngIf=\"\n                        item.type === 'date' &&\n                        item.controlMode !== 'readonly' &&\n                        !!item.controlName\n                      \"\n                      [formControlName]=\"item.controlName\"\n                    >\n                    </nz-date-picker>\n\n                    <nz-select\n                      *ngIf=\"\n                        item.type === 'select' &&\n                        item.controlMode !== 'readonly' &&\n                        !!item.controlName\n                      \"\n                      nzShowSearch=\"true\"\n                      [nzAllowClear]=\"item.allowClear\"\n                      [formControlName]=\"item.controlName\"\n                      [nzPlaceHolder]=\"item.placeholder || '请选择'\"\n                    >\n                      <nz-option\n                        [nzValue]=\"option.value\"\n                        [nzLabel]=\"option.label\"\n                        *ngFor=\"let option of item.options\"\n                      >\n                      </nz-option>\n                    </nz-select>\n\n                    <nz-radio-group\n                      *ngIf=\"\n                        item.type === 'radio' &&\n                        item.controlMode !== 'readonly' &&\n                        !!item.controlName\n                      \"\n                      [formControlName]=\"item.controlName\"\n                    >\n                      <label\n                        *ngFor=\"let option of item.options\"\n                        nz-radio\n                        [nzValue]=\"option.value\"\n                      >\n                        {{ option.label }}\n                      </label>\n                    </nz-radio-group>\n\n                    <span *ngIf=\"item.controlMode === 'readonly'\">\n                      <ng-container *ngIf=\"item.format\">\n                        {{ item.format(fg.get(item.controlName)?.value) }}\n                      </ng-container>\n                      <ng-container *ngIf=\"!item.format\">\n                        {{ fg.get(item.controlName)?.value }}\n                      </ng-container>\n                    </span>\n                  </nz-form-control>\n                </nz-form-item>\n              </td>\n            </ng-container>\n\n            <ng-container *ngIf=\"item.templateRef\">\n              <td *ngIf=\"item.isShow\" [nzAlign]=\"tableAlign\">\n                <ng-container\n                  [ngTemplateOutlet]=\"item.templateRef\"\n                  [ngTemplateOutletContext]=\"{\n                    $implicit: fg,\n                    config: item,\n                    formControl: fg.get(item.controlName),\n                    errorTip: item.errorTip,\n                    index: i,\n                    disabled: isDisabled\n                  }\"\n                >\n                </ng-container>\n              </td>\n            </ng-container>\n          </ng-container>\n        </ng-container>\n        <!-- 自定义展示列 -->\n        <td *ngFor=\"let item of tdTemplateOfNullInForm\" [nzAlign]=\"tableAlign\">\n          <ng-container\n            [ngTemplateOutlet]=\"item.templateRef\"\n            [ngTemplateOutletContext]=\"{\n              $implicit: fg,\n              index: i,\n              disabled: isDisabled\n            }\"\n          ></ng-container>\n        </td>\n      </tr>\n      <tr *ngIf=\"enableExpand\" [nzExpand]=\"fg.value.expand\">\n        <ng-container\n          [ngTemplateOutlet]=\"tableExpandDirective?.templateRef!\"\n          [ngTemplateOutletContext]=\"{\n            $implicit: fg,\n            index: i,\n            disabled: isDisabled\n          }\"\n        >\n        </ng-container>\n      </tr>\n    </ng-container>\n\n    <tr *ngIf=\"form.get('formArray')?.errors\" [nzExpand]=\"true\">\n      <ng-container\n        [ngTemplateOutlet]=\"errorTemplate!\"\n        [ngTemplateOutletContext]=\"{ $implicit: form.get('formArray') }\"\n      >\n      </ng-container>\n    </tr>\n  </tbody>\n</nz-table>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { ReactiveFormsModule } from '@angular/forms';\n\nimport { NzDatePickerModule } from '@winkong/ng-zorro-antd/date-picker';\nimport { NzFormModule } from '@winkong/ng-zorro-antd/form';\nimport { NzInputModule } from '@winkong/ng-zorro-antd/input';\nimport { NzInputNumberModule } from '@winkong/ng-zorro-antd/input-number';\nimport { NzRadioModule } from '@winkong/ng-zorro-antd/radio';\nimport { NzSelectModule } from '@winkong/ng-zorro-antd/select';\nimport { NzTableModule } from '@winkong/ng-zorro-antd/table';\n\nimport { NzxTableFormExpandDirective } from './directive/table-expand.directive';\nimport { NzxTableFormTdDirective } from './directive/table-td.directive';\nimport { NzxTableFormThDirective } from './directive/table-th.directive';\nimport { NzxTableFormComponent } from './table-form.component';\n\n@NgModule({\n  declarations: [\n    NzxTableFormComponent,\n    NzxTableFormTdDirective,\n    NzxTableFormThDirective,\n    NzxTableFormExpandDirective,\n  ],\n  imports: [\n    CommonModule,\n    ReactiveFormsModule,\n\n    NzFormModule,\n    NzTableModule,\n    NzRadioModule,\n    NzInputModule,\n    NzSelectModule,\n    NzDatePickerModule,\n    NzInputNumberModule,\n  ],\n  exports: [\n    NzxTableFormComponent,\n    NzxTableFormTdDirective,\n    NzxTableFormThDirective,\n    NzxTableFormExpandDirective,\n  ],\n})\nexport class NzxTableFormModule {}\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 * from './directive/table-expand.directive';\nexport * from './directive/table-td.directive';\nexport * from './directive/table-th.directive';\nexport * from './table-form.component';\nexport * from './type';\nexport * from './table-form.module';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}