ng-zorro-antd-extension 19.0.1 → 20.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/acl/index.d.ts +52 -5
- package/blank-field/index.d.ts +27 -5
- package/checkbox/index.d.ts +40 -3
- package/configurable-query/index.d.ts +243 -3
- package/core/config/index.d.ts +52 -3
- package/dynamic-form/index.d.ts +112 -3
- package/editable/index.d.ts +29 -5
- package/fesm2022/ng-zorro-antd-extension-acl.mjs +11 -11
- package/fesm2022/ng-zorro-antd-extension-acl.mjs.map +1 -1
- package/fesm2022/ng-zorro-antd-extension-blank-field.mjs +8 -8
- package/fesm2022/ng-zorro-antd-extension-blank-field.mjs.map +1 -1
- package/fesm2022/ng-zorro-antd-extension-checkbox.mjs +11 -12
- package/fesm2022/ng-zorro-antd-extension-checkbox.mjs.map +1 -1
- package/fesm2022/ng-zorro-antd-extension-configurable-query.mjs +84 -79
- package/fesm2022/ng-zorro-antd-extension-configurable-query.mjs.map +1 -1
- package/fesm2022/ng-zorro-antd-extension-core-config.mjs +4 -4
- package/fesm2022/ng-zorro-antd-extension-core-config.mjs.map +1 -1
- package/fesm2022/ng-zorro-antd-extension-dynamic-form.mjs +81 -81
- package/fesm2022/ng-zorro-antd-extension-dynamic-form.mjs.map +1 -1
- package/fesm2022/ng-zorro-antd-extension-editable.mjs +35 -35
- package/fesm2022/ng-zorro-antd-extension-editable.mjs.map +1 -1
- package/fesm2022/ng-zorro-antd-extension-jigsaw.mjs +8 -8
- package/fesm2022/ng-zorro-antd-extension-jigsaw.mjs.map +1 -1
- package/fesm2022/ng-zorro-antd-extension-pipes.mjs +25 -25
- package/fesm2022/ng-zorro-antd-extension-pipes.mjs.map +1 -1
- package/fesm2022/ng-zorro-antd-extension-print.mjs +55 -52
- package/fesm2022/ng-zorro-antd-extension-print.mjs.map +1 -1
- package/fesm2022/ng-zorro-antd-extension-simple-table.mjs +153 -137
- package/fesm2022/ng-zorro-antd-extension-simple-table.mjs.map +1 -1
- package/fesm2022/ng-zorro-antd-extension-table-adaptor.mjs +11 -11
- package/fesm2022/ng-zorro-antd-extension-table-adaptor.mjs.map +1 -1
- package/fesm2022/ng-zorro-antd-extension-table-form.mjs +20 -20
- package/fesm2022/ng-zorro-antd-extension-table-form.mjs.map +1 -1
- package/fesm2022/ng-zorro-antd-extension-table-select.mjs +22 -22
- package/fesm2022/ng-zorro-antd-extension-table-select.mjs.map +1 -1
- package/fesm2022/ng-zorro-antd-extension-timer-button.mjs +8 -8
- package/fesm2022/ng-zorro-antd-extension-timer-button.mjs.map +1 -1
- package/fesm2022/ng-zorro-antd-extension-trim.mjs +8 -8
- package/fesm2022/ng-zorro-antd-extension-trim.mjs.map +1 -1
- package/fesm2022/ng-zorro-antd-extension-util.mjs.map +1 -1
- package/fesm2022/ng-zorro-antd-extension-wang-editor.mjs +11 -11
- package/fesm2022/ng-zorro-antd-extension-wang-editor.mjs.map +1 -1
- package/i18n/index.d.ts +29 -5
- package/index.d.ts +2 -5
- package/jigsaw/index.d.ts +50 -5
- package/package.json +12 -12
- package/pipes/index.d.ts +68 -5
- package/print/index.d.ts +111 -3
- package/simple-table/index.d.ts +85 -3
- package/table-adaptor/index.d.ts +66 -5
- package/table-form/index.d.ts +247 -3
- package/table-select/index.d.ts +107 -3
- package/timer-button/index.d.ts +29 -5
- package/trim/index.d.ts +48 -5
- package/types/index.d.ts +8 -3
- package/util/index.d.ts +60 -3
- package/wang-editor/index.d.ts +70 -5
- package/acl/nzx-acl.directive.d.ts +0 -25
- package/acl/nzx-acl.module.d.ts +0 -9
- package/acl/nzx-acl.service.d.ts +0 -19
- package/acl/public-api.d.ts +0 -7
- package/blank-field/blank-field.component.d.ts +0 -19
- package/blank-field/blank-field.module.d.ts +0 -7
- package/blank-field/public-api.d.ts +0 -6
- package/checkbox/checkbox-group.component.d.ts +0 -33
- package/checkbox/checkbox.module.d.ts +0 -7
- package/checkbox/public-api.d.ts +0 -6
- package/configurable-query/configurable-query-item/configurable-query-item.component.d.ts +0 -18
- package/configurable-query/configurable-query.component.d.ts +0 -111
- package/configurable-query/configurable-query.module.d.ts +0 -12
- package/configurable-query/control.directive.d.ts +0 -9
- package/configurable-query/controls/abstract.control.d.ts +0 -13
- package/configurable-query/controls/date-picker.control.d.ts +0 -6
- package/configurable-query/controls/input.control.d.ts +0 -6
- package/configurable-query/controls/range-picker.control.d.ts +0 -6
- package/configurable-query/controls/select.control.d.ts +0 -6
- package/configurable-query/controls/template.control.d.ts +0 -6
- package/configurable-query/public-api.d.ts +0 -6
- package/configurable-query/query-config.service.d.ts +0 -21
- package/configurable-query/type.d.ts +0 -89
- package/core/config/config.d.ts +0 -30
- package/core/config/config.service.d.ts +0 -20
- package/core/config/public-api.d.ts +0 -2
- package/dynamic-form/config/dynamic-form-config.d.ts +0 -18
- package/dynamic-form/controls/abstract.control.d.ts +0 -11
- package/dynamic-form/controls/date-picker.control.d.ts +0 -6
- package/dynamic-form/controls/input.control.d.ts +0 -6
- package/dynamic-form/controls/range-picker.control.d.ts +0 -6
- package/dynamic-form/controls/select.control.d.ts +0 -6
- package/dynamic-form/controls/template.control.d.ts +0 -6
- package/dynamic-form/dynamic-form-item/dynamic-form-item.component.d.ts +0 -12
- package/dynamic-form/dynamic-form.component.d.ts +0 -5
- package/dynamic-form/dynamic-form.module.d.ts +0 -17
- package/dynamic-form/public-api.d.ts +0 -7
- package/dynamic-form/wrapper/control/abstract-control-wrapper.d.ts +0 -12
- package/dynamic-form/wrapper/control/built-in-control-wrapper.d.ts +0 -7
- package/dynamic-form/wrapper/item/abstract-item-wrapper.d.ts +0 -14
- package/dynamic-form/wrapper/item/built-in-item-wrapper.d.ts +0 -6
- package/dynamic-form/wrapper/label/abstract-label-wrapper.d.ts +0 -5
- package/dynamic-form/wrapper/label/built-in-label-wrapper.d.ts +0 -6
- package/editable/editable.component.d.ts +0 -20
- package/editable/editable.module.d.ts +0 -7
- package/editable/public-api.d.ts +0 -2
- package/i18n/languages/en_US.d.ts +0 -10
- package/i18n/languages/zh_CN.d.ts +0 -10
- package/i18n/nz-i18n.interface.d.ts +0 -6
- package/i18n/public-api.d.ts +0 -3
- package/jigsaw/jigsaw.component.d.ts +0 -41
- package/jigsaw/jigsaw.module.d.ts +0 -7
- package/jigsaw/public-api.d.ts +0 -6
- package/pipes/map.pipe.d.ts +0 -9
- package/pipes/pipes.module.d.ts +0 -13
- package/pipes/public-api.d.ts +0 -12
- package/pipes/safe-html.pipe.d.ts +0 -9
- package/pipes/safe-null.pipe.d.ts +0 -11
- package/pipes/safe-resource-url.pipe.d.ts +0 -8
- package/pipes/safe-script.pipe.d.ts +0 -8
- package/pipes/safe-style.pipe.d.ts +0 -8
- package/pipes/safe-url.pipe.d.ts +0 -13
- package/print/nzx-print-content.directive.d.ts +0 -10
- package/print/nzx-print-v.component.d.ts +0 -47
- package/print/nzx-print.component.d.ts +0 -34
- package/print/nzx-print.directive.d.ts +0 -17
- package/print/nzx-print.module.d.ts +0 -10
- package/print/public-api.d.ts +0 -9
- package/public-api.d.ts +0 -2
- package/simple-table/directive/expand.directive.d.ts +0 -8
- package/simple-table/directive/td.directive.d.ts +0 -9
- package/simple-table/directive/th.directive.d.ts +0 -9
- package/simple-table/public-api.d.ts +0 -9
- package/simple-table/simple-table.component.d.ts +0 -57
- package/simple-table/simple-table.module.d.ts +0 -10
- package/table-adaptor/page-table-basic.d.ts +0 -14
- package/table-adaptor/public-api.d.ts +0 -7
- package/table-adaptor/table-adaptor.directive.d.ts +0 -43
- package/table-adaptor/table-adaptor.module.d.ts +0 -7
- package/table-form/directive/table-expand.directive.d.ts +0 -9
- package/table-form/directive/table-td.directive.d.ts +0 -9
- package/table-form/directive/table-th.directive.d.ts +0 -10
- package/table-form/public-api.d.ts +0 -10
- package/table-form/table-form.component.d.ts +0 -122
- package/table-form/table-form.module.d.ts +0 -10
- package/table-form/type.d.ts +0 -94
- package/table-select/abstract-table-select.d.ts +0 -51
- package/table-select/key.directive.d.ts +0 -8
- package/table-select/nzx-table-select.module.d.ts +0 -9
- package/table-select/page-table-select/page-table-select.component.d.ts +0 -22
- package/table-select/public-api.d.ts +0 -10
- package/table-select/table-select/table-select.component.d.ts +0 -13
- package/table-select/type.d.ts +0 -14
- package/timer-button/public-api.d.ts +0 -6
- package/timer-button/timer-button.directive.d.ts +0 -20
- package/timer-button/timer-button.module.d.ts +0 -7
- package/trim/public-api.d.ts +0 -6
- package/trim/trim.directive.d.ts +0 -39
- package/trim/trim.module.d.ts +0 -7
- package/types/common.d.ts +0 -8
- package/types/public-api.d.ts +0 -5
- package/util/lib/cloneDeep.d.ts +0 -2
- package/util/lib/fileUtil.d.ts +0 -16
- package/util/lib/getElementByTag.d.ts +0 -8
- package/util/lib/isArray.d.ts +0 -2
- package/util/lib/isDate.d.ts +0 -1
- package/util/lib/isEmpty.d.ts +0 -2
- package/util/lib/isNumber.d.ts +0 -1
- package/util/lib/isObject.d.ts +0 -1
- package/util/lib/isString.d.ts +0 -1
- package/util/lib/toNumber.d.ts +0 -1
- package/util/lib/toString.d.ts +0 -1
- package/util/lib/trimObject.d.ts +0 -2
- package/util/lib/updateControlStatus.d.ts +0 -9
- package/util/public-api.d.ts +0 -17
- package/wang-editor/public-api.d.ts +0 -8
- package/wang-editor/type.d.ts +0 -3
- package/wang-editor/wang-editor.component.d.ts +0 -41
- package/wang-editor/wang-editor.module.d.ts +0 -8
- package/wang-editor/wang-toolbar.component.d.ts +0 -19
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
|
-
import {
|
|
2
|
+
import { Input, Directive, EventEmitter, forwardRef, ContentChild, ContentChildren, Output, Component, NgModule } from '@angular/core';
|
|
3
3
|
import * as i1 from '@angular/forms';
|
|
4
|
-
import { NG_VALUE_ACCESSOR, NG_VALIDATORS
|
|
4
|
+
import { ReactiveFormsModule, NG_VALUE_ACCESSOR, NG_VALIDATORS } from '@angular/forms';
|
|
5
5
|
import * as i5 from 'ng-zorro-antd/table';
|
|
6
6
|
import { NzTableModule } from 'ng-zorro-antd/table';
|
|
7
7
|
import { Subject, distinctUntilChanged, takeUntil } from 'rxjs';
|
|
@@ -26,10 +26,10 @@ class NzxTableFormExpandDirective {
|
|
|
26
26
|
constructor(templateRef) {
|
|
27
27
|
this.templateRef = templateRef;
|
|
28
28
|
}
|
|
29
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
30
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "
|
|
29
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.1", ngImport: i0, type: NzxTableFormExpandDirective, deps: [{ token: i0.TemplateRef }], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
30
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.1", type: NzxTableFormExpandDirective, isStandalone: true, selector: "[nzxTableFormExpand]", inputs: { controlName: "controlName" }, ngImport: i0 }); }
|
|
31
31
|
}
|
|
32
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
32
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.1", ngImport: i0, type: NzxTableFormExpandDirective, decorators: [{
|
|
33
33
|
type: Directive,
|
|
34
34
|
args: [{
|
|
35
35
|
selector: '[nzxTableFormExpand]',
|
|
@@ -42,10 +42,10 @@ class NzxTableFormTdDirective {
|
|
|
42
42
|
constructor(templateRef) {
|
|
43
43
|
this.templateRef = templateRef;
|
|
44
44
|
}
|
|
45
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
46
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "
|
|
45
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.1", ngImport: i0, type: NzxTableFormTdDirective, deps: [{ token: i0.TemplateRef }], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
46
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.1", type: NzxTableFormTdDirective, isStandalone: true, selector: "[nzxTableFormTd]", inputs: { controlName: "controlName" }, ngImport: i0 }); }
|
|
47
47
|
}
|
|
48
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
48
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.1", ngImport: i0, type: NzxTableFormTdDirective, decorators: [{
|
|
49
49
|
type: Directive,
|
|
50
50
|
args: [{
|
|
51
51
|
selector: '[nzxTableFormTd]',
|
|
@@ -58,10 +58,10 @@ class NzxTableFormThDirective {
|
|
|
58
58
|
constructor(templateRef) {
|
|
59
59
|
this.templateRef = templateRef;
|
|
60
60
|
}
|
|
61
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
62
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "
|
|
61
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.1", ngImport: i0, type: NzxTableFormThDirective, deps: [{ token: i0.TemplateRef }], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
62
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.1", type: NzxTableFormThDirective, isStandalone: true, selector: "[nzxTableFormTh]", inputs: { controlName: "controlName", width: "width" }, ngImport: i0 }); }
|
|
63
63
|
}
|
|
64
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
64
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.1", ngImport: i0, type: NzxTableFormThDirective, decorators: [{
|
|
65
65
|
type: Directive,
|
|
66
66
|
args: [{
|
|
67
67
|
selector: '[nzxTableFormTh]',
|
|
@@ -359,17 +359,17 @@ class NzxTableFormComponent {
|
|
|
359
359
|
format: item?.format,
|
|
360
360
|
}));
|
|
361
361
|
}
|
|
362
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
363
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "
|
|
362
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.1", ngImport: i0, type: NzxTableFormComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i1.FormBuilder }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
363
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.1", type: NzxTableFormComponent, isStandalone: true, selector: "nzx-table-form", inputs: { tableLayout: "tableLayout", tableAlign: "tableAlign", enableExpand: "enableExpand", nzxBordered: "nzxBordered", nzxSize: "nzxSize", enableLimit: "enableLimit", maxLimit: "maxLimit", minLimit: "minLimit", nzxFooter: "nzxFooter", nzxFrontPagination: "nzxFrontPagination", errorTemplate: "errorTemplate", enableNo: "enableNo", serialNumberWidth: "serialNumberWidth", serialNumberTemplate: "serialNumberTemplate", tableValidatorFn: "tableValidatorFn", tableFormConfig: "tableFormConfig" }, outputs: { limitMessage: "limitMessage" }, providers: [
|
|
364
364
|
{
|
|
365
365
|
provide: NG_VALUE_ACCESSOR,
|
|
366
366
|
useExisting: forwardRef(() => NzxTableFormComponent),
|
|
367
367
|
multi: true,
|
|
368
368
|
},
|
|
369
369
|
{ provide: NG_VALIDATORS, useExisting: NzxTableFormComponent, multi: true },
|
|
370
|
-
], queries: [{ propertyName: "tableExpandDirective", first: true, predicate: NzxTableFormExpandDirective, descendants: true }, { propertyName: "tableTdDirectiveList", predicate: NzxTableFormTdDirective }, { propertyName: "tableThDirectiveList", predicate: NzxTableFormThDirective }], exportAs: ["NzxTableForm"], ngImport: i0, template: "<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 <!-- \u5E8F\u53F7\u5217\u6807\u9898 -->\n <th *ngIf=\"enableNo\" [nzAlign]=\"tableAlign\" [nzWidth]=\"serialNumberWidth\">\n <span *ngIf=\"!serialNumberTemplate\"> \u5E8F\u53F7 </span>\n <ng-container *ngIf=\"serialNumberTemplate\">\n <ng-container *ngTemplateOutlet=\"serialNumberTemplate\"></ng-container>\n </ng-container>\n </th>\n <!-- \u8868\u5355\u5217form 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 <!-- \u81EA\u5B9A\u4E49\u5C55\u793A\u5217header -->\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 <!-- \u5E8F\u53F7\u5217 -->\n <td *ngIf=\"enableNo\" [nzAlign]=\"tableAlign\">\n {{ i + 1 }}\n </td>\n <!-- \u8868\u5355\u5217\u5C06\u653E\u8FDBform -->\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 || '\u8BF7\u8F93\u5165'\"\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 || '\u8BF7\u8F93\u5165'\"\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 || '\u8F93\u5165\u6570\u5B57'\"\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 || '\u8BF7\u9009\u62E9'\"\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 <!-- \u81EA\u5B9A\u4E49\u5C55\u793A\u5217 -->\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", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i2.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.MaxLengthValidator, selector: "[maxlength][formControlName],[maxlength][formControl],[maxlength][ngModel]", inputs: ["maxlength"] }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: i1.FormArrayName, selector: "[formArrayName]", inputs: ["formArrayName"] }, { kind: "ngmodule", type: NzFormModule }, { kind: "directive", type: i3.NzColDirective, selector: "[nz-col],nz-col,nz-form-control,nz-form-label", inputs: ["nzFlex", "nzSpan", "nzOrder", "nzOffset", "nzPush", "nzPull", "nzXs", "nzSm", "nzMd", "nzLg", "nzXl", "nzXXl"], exportAs: ["nzCol"] }, { kind: "directive", type: i3.NzRowDirective, selector: "[nz-row],nz-row,nz-form-item", inputs: ["nzAlign", "nzJustify", "nzGutter"], exportAs: ["nzRow"] }, { kind: "component", type: i4.NzFormItemComponent, selector: "nz-form-item", exportAs: ["nzFormItem"] }, { kind: "component", type: i4.NzFormControlComponent, selector: "nz-form-control", inputs: ["nzSuccessTip", "nzWarningTip", "nzErrorTip", "nzValidatingTip", "nzExtra", "nzAutoTips", "nzDisableAutoTips", "nzHasFeedback", "nzValidateStatus"], exportAs: ["nzFormControl"] }, { kind: "ngmodule", type: NzTableModule }, { kind: "component", type: i5.NzTableComponent, selector: "nz-table", inputs: ["nzTableLayout", "nzShowTotal", "nzItemRender", "nzTitle", "nzFooter", "nzNoResult", "nzPageSizeOptions", "nzVirtualItemSize", "nzVirtualMaxBufferPx", "nzVirtualMinBufferPx", "nzVirtualForTrackBy", "nzLoadingDelay", "nzPageIndex", "nzPageSize", "nzTotal", "nzWidthConfig", "nzData", "nzCustomColumn", "nzPaginationPosition", "nzScroll", "noDataVirtualHeight", "nzPaginationType", "nzFrontPagination", "nzTemplateMode", "nzShowPagination", "nzLoading", "nzOuterBordered", "nzLoadingIndicator", "nzBordered", "nzSize", "nzShowSizeChanger", "nzHideOnSinglePage", "nzShowQuickJumper", "nzSimple"], outputs: ["nzPageSizeChange", "nzPageIndexChange", "nzQueryParams", "nzCurrentPageDataChange", "nzCustomColumnChange"], exportAs: ["nzTable"] }, { kind: "directive", type: i5.NzTableCellDirective, selector: "th:not(.nz-disable-th):not([mat-cell]), td:not(.nz-disable-td):not([mat-cell])" }, { kind: "directive", type: i5.NzThMeasureDirective, selector: "th", inputs: ["nzWidth", "colspan", "colSpan", "rowspan", "rowSpan"] }, { kind: "component", type: i5.NzTheadComponent, selector: "thead:not(.ant-table-thead)", outputs: ["nzSortOrderChange"] }, { kind: "component", type: i5.NzTbodyComponent, selector: "tbody" }, { kind: "directive", type: i5.NzTrDirective, selector: "tr:not([mat-row]):not([mat-header-row]):not([nz-table-measure-row]):not([nzExpand]):not([nz-table-fixed-row])" }, { kind: "directive", type: i5.NzTrExpandDirective, selector: "tr[nzExpand]", inputs: ["nzExpand"] }, { kind: "directive", type: i5.NzCellAlignDirective, selector: "th[nzAlign],td[nzAlign]", inputs: ["nzAlign"] }, { kind: "component", type: i5.NzTableFixedRowComponent, selector: "tr[nz-table-fixed-row], tr[nzExpand]" }, { kind: "ngmodule", type: NzRadioModule }, { kind: "component", type: i6.NzRadioComponent, selector: "[nz-radio],[nz-radio-button]", inputs: ["nzValue", "nzDisabled", "nzAutoFocus", "nz-radio-button"], exportAs: ["nzRadio"] }, { kind: "component", type: i6.NzRadioGroupComponent, selector: "nz-radio-group", inputs: ["nzDisabled", "nzButtonStyle", "nzSize", "nzName"], exportAs: ["nzRadioGroup"] }, { kind: "ngmodule", type: NzInputModule }, { kind: "directive", type: i7.NzInputDirective, selector: "input[nz-input],textarea[nz-input]", inputs: ["nzBorderless", "nzSize", "nzStepperless", "nzStatus", "disabled"], exportAs: ["nzInput"] }, { kind: "directive", type: i7.NzAutosizeDirective, selector: "textarea[nzAutosize]", inputs: ["nzAutosize"], exportAs: ["nzAutosize"] }, { kind: "ngmodule", type: NzSelectModule }, { kind: "component", type: i8.NzOptionComponent, selector: "nz-option", inputs: ["nzTitle", "nzLabel", "nzValue", "nzKey", "nzDisabled", "nzHide", "nzCustomContent"], exportAs: ["nzOption"] }, { kind: "component", type: i8.NzSelectComponent, selector: "nz-select", inputs: ["nzId", "nzSize", "nzStatus", "nzOptionHeightPx", "nzOptionOverflowSize", "nzDropdownClassName", "nzDropdownMatchSelectWidth", "nzDropdownStyle", "nzNotFoundContent", "nzPlaceHolder", "nzPlacement", "nzMaxTagCount", "nzDropdownRender", "nzCustomTemplate", "nzSuffixIcon", "nzClearIcon", "nzRemoveIcon", "nzMenuItemSelectedIcon", "nzTokenSeparators", "nzMaxTagPlaceholder", "nzMaxMultipleCount", "nzMode", "nzFilterOption", "compareWith", "nzAllowClear", "nzBorderless", "nzShowSearch", "nzLoading", "nzAutoFocus", "nzAutoClearSearchValue", "nzServerSearch", "nzDisabled", "nzOpen", "nzSelectOnTab", "nzBackdrop", "nzOptions", "nzShowArrow"], outputs: ["nzOnSearch", "nzScrollToBottom", "nzOpenChange", "nzBlur", "nzFocus"], exportAs: ["nzSelect"] }, { kind: "ngmodule", type: NzDatePickerModule }, { kind: "component", type: i9.NzDatePickerComponent, selector: "nz-date-picker,nz-week-picker,nz-month-picker,nz-quarter-picker,nz-year-picker,nz-range-picker", inputs: ["nzAllowClear", "nzAutoFocus", "nzDisabled", "nzBorderless", "nzInputReadOnly", "nzInline", "nzOpen", "nzDisabledDate", "nzLocale", "nzPlaceHolder", "nzPopupStyle", "nzDropdownClassName", "nzSize", "nzStatus", "nzFormat", "nzDateRender", "nzDisabledTime", "nzRenderExtraFooter", "nzShowToday", "nzMode", "nzShowNow", "nzRanges", "nzDefaultPickerValue", "nzSeparator", "nzSuffixIcon", "nzBackdrop", "nzId", "nzPlacement", "nzShowWeekNumber", "nzShowTime"], outputs: ["nzOnPanelChange", "nzOnCalendarChange", "nzOnOk", "nzOnOpenChange"], exportAs: ["nzDatePicker"] }, { kind: "ngmodule", type: NzInputNumberLegacyModule }, { kind: "component", type: i10.NzInputNumberLegacyComponent, selector: "nz-input-number", inputs: ["nzSize", "nzMin", "nzMax", "nzParser", "nzPrecision", "nzPrecisionMode", "nzPlaceHolder", "nzStatus", "nzStep", "nzInputMode", "nzId", "nzDisabled", "nzReadOnly", "nzAutoFocus", "nzBorderless", "nzFormatter"], outputs: ["nzBlur", "nzFocus"], exportAs: ["nzInputNumber"] }] }); }
|
|
370
|
+
], queries: [{ propertyName: "tableExpandDirective", first: true, predicate: NzxTableFormExpandDirective, descendants: true }, { propertyName: "tableTdDirectiveList", predicate: NzxTableFormTdDirective }, { propertyName: "tableThDirectiveList", predicate: NzxTableFormThDirective }], exportAs: ["NzxTableForm"], ngImport: i0, template: "<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 <!-- \u5E8F\u53F7\u5217\u6807\u9898 -->\n @if (enableNo) {\n <th [nzAlign]=\"tableAlign\" [nzWidth]=\"serialNumberWidth\">\n @if (!serialNumberTemplate) {\n <span> \u5E8F\u53F7 </span>\n }\n @if (serialNumberTemplate) {\n <ng-container *ngTemplateOutlet=\"serialNumberTemplate\"></ng-container>\n }\n </th>\n }\n <!-- \u8868\u5355\u5217form header -->\n @for (item of headerConfig; track item; let index = $index) {\n @if (item.isShow) {\n @if (!item.templateRef) {\n <th\n [nzAlign]=\"tableAlign\"\n [nzWidth]=\"item.width!\"\n >\n @if (item.showRequiredTip) {\n <label [ngStyle]=\"{ color: 'red' }\">\n *\n </label>\n }\n {{ item.header }}\n </th>\n }\n @if (item.templateRef) {\n <th\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 }\n }\n }\n <!-- \u81EA\u5B9A\u4E49\u5C55\u793A\u5217header -->\n @for (item of thTemplateOfNullInForm; track item; let i = $index) {\n <th\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 }\n </tr>\n </thead>\n\n <tbody formArrayName=\"formArray\">\n @for (fg of basicTable.data; track fg; let i = $index) {\n <tr>\n <!-- \u5E8F\u53F7\u5217 -->\n @if (enableNo) {\n <td [nzAlign]=\"tableAlign\">\n {{ i + 1 }}\n </td>\n }\n <!-- \u8868\u5355\u5217\u5C06\u653E\u8FDBform -->\n <ng-container [formGroup]=\"fg\">\n @for (item of tdConfig; track item) {\n @if (item.isShow) {\n @if (!item.templateRef) {\n <td [nzAlign]=\"tableAlign\">\n <nz-form-item [ngStyle]=\"{ 'margin-bottom': 0 }\">\n <nz-form-control [nzErrorTip]=\"item.errorTip\">\n @if (\n item.type === 'input' &&\n item.controlMode !== 'readonly' &&\n !!item.controlName\n ) {\n <input\n nz-input\n [placeholder]=\"item.placeholder || '\u8BF7\u8F93\u5165'\"\n [formControlName]=\"item.controlName\"\n [maxlength]=\"item.maxLength!\"\n />\n }\n @if (\n item.type === 'textarea' &&\n item.controlMode !== 'readonly' &&\n !!item.controlName\n ) {\n <textarea\n nz-input\n [nzAutosize]=\"{ minRows: 3 }\"\n [placeholder]=\"item.placeholder || '\u8BF7\u8F93\u5165'\"\n [formControlName]=\"item.controlName\"\n [maxlength]=\"item.maxLength!\"\n ></textarea>\n }\n @if (\n item.type === 'number' &&\n item.controlMode !== 'readonly' &&\n !!item.controlName\n ) {\n <nz-input-number\n [ngStyle]=\"{ width: 'auto' }\"\n [formControlName]=\"item.controlName\"\n [nzMin]=\"1\"\n [nzStep]=\"1\"\n [nzMax]=\"item.max!\"\n [nzPlaceHolder]=\"item.placeholder || '\u8F93\u5165\u6570\u5B57'\"\n >\n </nz-input-number>\n }\n @if (\n item.type === 'date' &&\n item.controlMode !== 'readonly' &&\n !!item.controlName\n ) {\n <nz-date-picker\n [formControlName]=\"item.controlName\"\n >\n </nz-date-picker>\n }\n @if (\n item.type === 'select' &&\n item.controlMode !== 'readonly' &&\n !!item.controlName\n ) {\n <nz-select\n nzShowSearch=\"true\"\n [nzAllowClear]=\"item.allowClear\"\n [formControlName]=\"item.controlName\"\n [nzPlaceHolder]=\"item.placeholder || '\u8BF7\u9009\u62E9'\"\n >\n @for (option of item.options; track option) {\n <nz-option\n [nzValue]=\"option.value\"\n [nzLabel]=\"option.label\"\n >\n </nz-option>\n }\n </nz-select>\n }\n @if (\n item.type === 'radio' &&\n item.controlMode !== 'readonly' &&\n !!item.controlName\n ) {\n <nz-radio-group\n [formControlName]=\"item.controlName\"\n >\n @for (option of item.options; track option) {\n <label\n nz-radio\n [nzValue]=\"option.value\"\n >\n {{ option.label }}\n </label>\n }\n </nz-radio-group>\n }\n @if (item.controlMode === 'readonly') {\n <span>\n @if (item.format) {\n {{ item.format(fg.get(item.controlName)?.value) }}\n }\n @if (!item.format) {\n {{ fg.get(item.controlName)?.value }}\n }\n </span>\n }\n </nz-form-control>\n </nz-form-item>\n </td>\n }\n }\n @if (item.templateRef) {\n @if (item.isShow) {\n <td [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 }\n }\n }\n </ng-container>\n <!-- \u81EA\u5B9A\u4E49\u5C55\u793A\u5217 -->\n @for (item of tdTemplateOfNullInForm; track item) {\n <td [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 }\n </tr>\n @if (enableExpand) {\n <tr [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 }\n }\n\n @if (form.get('formArray')?.errors) {\n <tr [nzExpand]=\"true\">\n <ng-container\n [ngTemplateOutlet]=\"errorTemplate!\"\n [ngTemplateOutletContext]=\"{ $implicit: form.get('formArray') }\"\n >\n </ng-container>\n </tr>\n }\n </tbody>\n</nz-table>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i2.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.MaxLengthValidator, selector: "[maxlength][formControlName],[maxlength][formControl],[maxlength][ngModel]", inputs: ["maxlength"] }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: i1.FormArrayName, selector: "[formArrayName]", inputs: ["formArrayName"] }, { kind: "ngmodule", type: NzFormModule }, { kind: "directive", type: i3.NzColDirective, selector: "[nz-col],nz-col,nz-form-control,nz-form-label", inputs: ["nzFlex", "nzSpan", "nzOrder", "nzOffset", "nzPush", "nzPull", "nzXs", "nzSm", "nzMd", "nzLg", "nzXl", "nzXXl"], exportAs: ["nzCol"] }, { kind: "directive", type: i3.NzRowDirective, selector: "[nz-row],nz-row,nz-form-item", inputs: ["nzAlign", "nzJustify", "nzGutter"], exportAs: ["nzRow"] }, { kind: "component", type: i4.NzFormItemComponent, selector: "nz-form-item", exportAs: ["nzFormItem"] }, { kind: "component", type: i4.NzFormControlComponent, selector: "nz-form-control", inputs: ["nzSuccessTip", "nzWarningTip", "nzErrorTip", "nzValidatingTip", "nzExtra", "nzAutoTips", "nzDisableAutoTips", "nzHasFeedback", "nzValidateStatus"], exportAs: ["nzFormControl"] }, { kind: "ngmodule", type: NzTableModule }, { kind: "component", type: i5.NzTableComponent, selector: "nz-table", inputs: ["nzTableLayout", "nzShowTotal", "nzItemRender", "nzTitle", "nzFooter", "nzNoResult", "nzPageSizeOptions", "nzVirtualItemSize", "nzVirtualMaxBufferPx", "nzVirtualMinBufferPx", "nzVirtualForTrackBy", "nzLoadingDelay", "nzPageIndex", "nzPageSize", "nzTotal", "nzWidthConfig", "nzData", "nzCustomColumn", "nzPaginationPosition", "nzScroll", "noDataVirtualHeight", "nzPaginationType", "nzFrontPagination", "nzTemplateMode", "nzShowPagination", "nzLoading", "nzOuterBordered", "nzLoadingIndicator", "nzBordered", "nzSize", "nzShowSizeChanger", "nzHideOnSinglePage", "nzShowQuickJumper", "nzSimple"], outputs: ["nzPageSizeChange", "nzPageIndexChange", "nzQueryParams", "nzCurrentPageDataChange", "nzCustomColumnChange"], exportAs: ["nzTable"] }, { kind: "directive", type: i5.NzTableCellDirective, selector: "th:not(.nz-disable-th), td:not(.nz-disable-td)" }, { kind: "directive", type: i5.NzThMeasureDirective, selector: "th", inputs: ["nzWidth", "colspan", "colSpan", "rowspan", "rowSpan"] }, { kind: "component", type: i5.NzTheadComponent, selector: "thead:not(.ant-table-thead)", outputs: ["nzSortOrderChange"] }, { kind: "component", type: i5.NzTbodyComponent, selector: "tbody" }, { kind: "directive", type: i5.NzTrDirective, selector: "tr:not([nz-table-measure-row]):not([nzExpand]):not([nz-table-fixed-row])" }, { kind: "directive", type: i5.NzTrExpandDirective, selector: "tr[nzExpand]", inputs: ["nzExpand"] }, { kind: "directive", type: i5.NzCellAlignDirective, selector: "th[nzAlign],td[nzAlign]", inputs: ["nzAlign"] }, { kind: "component", type: i5.NzTableFixedRowComponent, selector: "tr[nz-table-fixed-row], tr[nzExpand]" }, { kind: "ngmodule", type: NzRadioModule }, { kind: "component", type: i6.NzRadioComponent, selector: "[nz-radio],[nz-radio-button]", inputs: ["nzValue", "nzDisabled", "nzAutoFocus", "nz-radio-button"], exportAs: ["nzRadio"] }, { kind: "component", type: i6.NzRadioGroupComponent, selector: "nz-radio-group", inputs: ["nzDisabled", "nzButtonStyle", "nzSize", "nzName"], exportAs: ["nzRadioGroup"] }, { kind: "ngmodule", type: NzInputModule }, { kind: "directive", type: i7.NzInputDirective, selector: "input[nz-input],textarea[nz-input]", inputs: ["nzBorderless", "nzVariant", "nzSize", "nzStepperless", "nzStatus", "disabled"], exportAs: ["nzInput"] }, { kind: "directive", type: i7.NzAutosizeDirective, selector: "textarea[nzAutosize]", inputs: ["nzAutosize"], exportAs: ["nzAutosize"] }, { kind: "ngmodule", type: NzSelectModule }, { kind: "component", type: i8.NzOptionComponent, selector: "nz-option", inputs: ["nzTitle", "nzLabel", "nzValue", "nzKey", "nzDisabled", "nzHide", "nzCustomContent"], exportAs: ["nzOption"] }, { kind: "component", type: i8.NzSelectComponent, selector: "nz-select", inputs: ["nzId", "nzSize", "nzStatus", "nzVariant", "nzOptionHeightPx", "nzOptionOverflowSize", "nzDropdownClassName", "nzDropdownMatchSelectWidth", "nzDropdownStyle", "nzNotFoundContent", "nzPlaceHolder", "nzPlacement", "nzMaxTagCount", "nzDropdownRender", "nzCustomTemplate", "nzPrefix", "nzSuffixIcon", "nzClearIcon", "nzRemoveIcon", "nzMenuItemSelectedIcon", "nzTokenSeparators", "nzMaxTagPlaceholder", "nzMaxMultipleCount", "nzMode", "nzFilterOption", "compareWith", "nzAllowClear", "nzBorderless", "nzShowSearch", "nzLoading", "nzAutoFocus", "nzAutoClearSearchValue", "nzServerSearch", "nzDisabled", "nzOpen", "nzSelectOnTab", "nzBackdrop", "nzOptions", "nzShowArrow"], outputs: ["nzOnSearch", "nzScrollToBottom", "nzOpenChange", "nzBlur", "nzFocus", "nzOnClear"], exportAs: ["nzSelect"] }, { kind: "ngmodule", type: NzDatePickerModule }, { kind: "component", type: i9.NzDatePickerComponent, selector: "nz-date-picker,nz-week-picker,nz-month-picker,nz-quarter-picker,nz-year-picker,nz-range-picker", inputs: ["nzAllowClear", "nzAutoFocus", "nzDisabled", "nzBorderless", "nzInputReadOnly", "nzInline", "nzOpen", "nzDisabledDate", "nzLocale", "nzPlaceHolder", "nzPopupStyle", "nzDropdownClassName", "nzSize", "nzStatus", "nzFormat", "nzVariant", "nzDateRender", "nzDisabledTime", "nzRenderExtraFooter", "nzShowToday", "nzMode", "nzShowNow", "nzRanges", "nzDefaultPickerValue", "nzSeparator", "nzSuffixIcon", "nzBackdrop", "nzId", "nzPlacement", "nzShowWeekNumber", "nzShowTime"], outputs: ["nzOnPanelChange", "nzOnCalendarChange", "nzOnOk", "nzOnOpenChange"], exportAs: ["nzDatePicker"] }, { kind: "ngmodule", type: NzInputNumberLegacyModule }, { kind: "component", type: i10.NzInputNumberLegacyComponent, selector: "nz-input-number", inputs: ["nzSize", "nzMin", "nzMax", "nzParser", "nzPrecision", "nzPrecisionMode", "nzPlaceHolder", "nzStatus", "nzStep", "nzInputMode", "nzId", "nzDisabled", "nzReadOnly", "nzAutoFocus", "nzBorderless", "nzFormatter"], outputs: ["nzBlur", "nzFocus"], exportAs: ["nzInputNumber"] }] }); }
|
|
371
371
|
}
|
|
372
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
372
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.1", ngImport: i0, type: NzxTableFormComponent, decorators: [{
|
|
373
373
|
type: Component,
|
|
374
374
|
args: [{ selector: 'nzx-table-form', exportAs: 'NzxTableForm', providers: [
|
|
375
375
|
{
|
|
@@ -388,7 +388,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.2", ngImpor
|
|
|
388
388
|
NzSelectModule,
|
|
389
389
|
NzDatePickerModule,
|
|
390
390
|
NzInputNumberLegacyModule,
|
|
391
|
-
], template: "<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 <!-- \u5E8F\u53F7\u5217\u6807\u9898 -->\n
|
|
391
|
+
], template: "<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 <!-- \u5E8F\u53F7\u5217\u6807\u9898 -->\n @if (enableNo) {\n <th [nzAlign]=\"tableAlign\" [nzWidth]=\"serialNumberWidth\">\n @if (!serialNumberTemplate) {\n <span> \u5E8F\u53F7 </span>\n }\n @if (serialNumberTemplate) {\n <ng-container *ngTemplateOutlet=\"serialNumberTemplate\"></ng-container>\n }\n </th>\n }\n <!-- \u8868\u5355\u5217form header -->\n @for (item of headerConfig; track item; let index = $index) {\n @if (item.isShow) {\n @if (!item.templateRef) {\n <th\n [nzAlign]=\"tableAlign\"\n [nzWidth]=\"item.width!\"\n >\n @if (item.showRequiredTip) {\n <label [ngStyle]=\"{ color: 'red' }\">\n *\n </label>\n }\n {{ item.header }}\n </th>\n }\n @if (item.templateRef) {\n <th\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 }\n }\n }\n <!-- \u81EA\u5B9A\u4E49\u5C55\u793A\u5217header -->\n @for (item of thTemplateOfNullInForm; track item; let i = $index) {\n <th\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 }\n </tr>\n </thead>\n\n <tbody formArrayName=\"formArray\">\n @for (fg of basicTable.data; track fg; let i = $index) {\n <tr>\n <!-- \u5E8F\u53F7\u5217 -->\n @if (enableNo) {\n <td [nzAlign]=\"tableAlign\">\n {{ i + 1 }}\n </td>\n }\n <!-- \u8868\u5355\u5217\u5C06\u653E\u8FDBform -->\n <ng-container [formGroup]=\"fg\">\n @for (item of tdConfig; track item) {\n @if (item.isShow) {\n @if (!item.templateRef) {\n <td [nzAlign]=\"tableAlign\">\n <nz-form-item [ngStyle]=\"{ 'margin-bottom': 0 }\">\n <nz-form-control [nzErrorTip]=\"item.errorTip\">\n @if (\n item.type === 'input' &&\n item.controlMode !== 'readonly' &&\n !!item.controlName\n ) {\n <input\n nz-input\n [placeholder]=\"item.placeholder || '\u8BF7\u8F93\u5165'\"\n [formControlName]=\"item.controlName\"\n [maxlength]=\"item.maxLength!\"\n />\n }\n @if (\n item.type === 'textarea' &&\n item.controlMode !== 'readonly' &&\n !!item.controlName\n ) {\n <textarea\n nz-input\n [nzAutosize]=\"{ minRows: 3 }\"\n [placeholder]=\"item.placeholder || '\u8BF7\u8F93\u5165'\"\n [formControlName]=\"item.controlName\"\n [maxlength]=\"item.maxLength!\"\n ></textarea>\n }\n @if (\n item.type === 'number' &&\n item.controlMode !== 'readonly' &&\n !!item.controlName\n ) {\n <nz-input-number\n [ngStyle]=\"{ width: 'auto' }\"\n [formControlName]=\"item.controlName\"\n [nzMin]=\"1\"\n [nzStep]=\"1\"\n [nzMax]=\"item.max!\"\n [nzPlaceHolder]=\"item.placeholder || '\u8F93\u5165\u6570\u5B57'\"\n >\n </nz-input-number>\n }\n @if (\n item.type === 'date' &&\n item.controlMode !== 'readonly' &&\n !!item.controlName\n ) {\n <nz-date-picker\n [formControlName]=\"item.controlName\"\n >\n </nz-date-picker>\n }\n @if (\n item.type === 'select' &&\n item.controlMode !== 'readonly' &&\n !!item.controlName\n ) {\n <nz-select\n nzShowSearch=\"true\"\n [nzAllowClear]=\"item.allowClear\"\n [formControlName]=\"item.controlName\"\n [nzPlaceHolder]=\"item.placeholder || '\u8BF7\u9009\u62E9'\"\n >\n @for (option of item.options; track option) {\n <nz-option\n [nzValue]=\"option.value\"\n [nzLabel]=\"option.label\"\n >\n </nz-option>\n }\n </nz-select>\n }\n @if (\n item.type === 'radio' &&\n item.controlMode !== 'readonly' &&\n !!item.controlName\n ) {\n <nz-radio-group\n [formControlName]=\"item.controlName\"\n >\n @for (option of item.options; track option) {\n <label\n nz-radio\n [nzValue]=\"option.value\"\n >\n {{ option.label }}\n </label>\n }\n </nz-radio-group>\n }\n @if (item.controlMode === 'readonly') {\n <span>\n @if (item.format) {\n {{ item.format(fg.get(item.controlName)?.value) }}\n }\n @if (!item.format) {\n {{ fg.get(item.controlName)?.value }}\n }\n </span>\n }\n </nz-form-control>\n </nz-form-item>\n </td>\n }\n }\n @if (item.templateRef) {\n @if (item.isShow) {\n <td [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 }\n }\n }\n </ng-container>\n <!-- \u81EA\u5B9A\u4E49\u5C55\u793A\u5217 -->\n @for (item of tdTemplateOfNullInForm; track item) {\n <td [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 }\n </tr>\n @if (enableExpand) {\n <tr [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 }\n }\n\n @if (form.get('formArray')?.errors) {\n <tr [nzExpand]=\"true\">\n <ng-container\n [ngTemplateOutlet]=\"errorTemplate!\"\n [ngTemplateOutletContext]=\"{ $implicit: form.get('formArray') }\"\n >\n </ng-container>\n </tr>\n }\n </tbody>\n</nz-table>\n" }]
|
|
392
392
|
}], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i1.FormBuilder }], propDecorators: { tableLayout: [{
|
|
393
393
|
type: Input
|
|
394
394
|
}], tableAlign: [{
|
|
@@ -435,17 +435,17 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.2", ngImpor
|
|
|
435
435
|
}] } });
|
|
436
436
|
|
|
437
437
|
class NzxTableFormModule {
|
|
438
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
439
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "
|
|
438
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.1", ngImport: i0, type: NzxTableFormModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
439
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.3.1", ngImport: i0, type: NzxTableFormModule, imports: [NzxTableFormComponent,
|
|
440
440
|
NzxTableFormTdDirective,
|
|
441
441
|
NzxTableFormThDirective,
|
|
442
442
|
NzxTableFormExpandDirective], exports: [NzxTableFormComponent,
|
|
443
443
|
NzxTableFormTdDirective,
|
|
444
444
|
NzxTableFormThDirective,
|
|
445
445
|
NzxTableFormExpandDirective] }); }
|
|
446
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "
|
|
446
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.3.1", ngImport: i0, type: NzxTableFormModule, imports: [NzxTableFormComponent] }); }
|
|
447
447
|
}
|
|
448
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
448
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.1", ngImport: i0, type: NzxTableFormModule, decorators: [{
|
|
449
449
|
type: NgModule,
|
|
450
450
|
args: [{
|
|
451
451
|
imports: [
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"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/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 ReactiveFormsModule,\n ValidationErrors,\n Validator,\n ValidatorFn,\n} from '@angular/forms';\n\nimport { NzTableLayout, NzTableModule, NzTableSize } from 'ng-zorro-antd/table';\nimport { distinctUntilChanged, Subject, takeUntil } from 'rxjs';\n\nimport { updateControlStatus } from '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';\nimport { CommonModule } from '@angular/common';\nimport { NzFormModule } from 'ng-zorro-antd/form';\nimport { NzInputModule } from 'ng-zorro-antd/input';\nimport { NzInputNumberLegacyModule } from 'ng-zorro-antd/input-number-legacy';\nimport { NzSelectModule } from 'ng-zorro-antd/select';\nimport { NzDatePickerModule } from 'ng-zorro-antd/date-picker';\nimport { NzRadioModule } from 'ng-zorro-antd/radio';\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 imports: [\n CommonModule,\n ReactiveFormsModule,\n\n NzFormModule,\n NzTableModule,\n NzRadioModule,\n NzInputModule,\n NzSelectModule,\n NzDatePickerModule,\n NzInputNumberLegacyModule,\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 { NgModule } from '@angular/core';\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 imports: [\n NzxTableFormComponent,\n NzxTableFormTdDirective,\n NzxTableFormThDirective,\n NzxTableFormExpandDirective,\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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"}
|
|
1
|
+
{"version":3,"file":"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/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 ReactiveFormsModule,\n ValidationErrors,\n Validator,\n ValidatorFn,\n} from '@angular/forms';\n\nimport { NzTableLayout, NzTableModule, NzTableSize } from 'ng-zorro-antd/table';\nimport { distinctUntilChanged, Subject, takeUntil } from 'rxjs';\n\nimport { updateControlStatus } from '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';\nimport { CommonModule } from '@angular/common';\nimport { NzFormModule } from 'ng-zorro-antd/form';\nimport { NzInputModule } from 'ng-zorro-antd/input';\nimport { NzInputNumberLegacyModule } from 'ng-zorro-antd/input-number-legacy';\nimport { NzSelectModule } from 'ng-zorro-antd/select';\nimport { NzDatePickerModule } from 'ng-zorro-antd/date-picker';\nimport { NzRadioModule } from 'ng-zorro-antd/radio';\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 imports: [\n CommonModule,\n ReactiveFormsModule,\n\n NzFormModule,\n NzTableModule,\n NzRadioModule,\n NzInputModule,\n NzSelectModule,\n NzDatePickerModule,\n NzInputNumberLegacyModule,\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 @if (enableNo) {\n <th [nzAlign]=\"tableAlign\" [nzWidth]=\"serialNumberWidth\">\n @if (!serialNumberTemplate) {\n <span> 序号 </span>\n }\n @if (serialNumberTemplate) {\n <ng-container *ngTemplateOutlet=\"serialNumberTemplate\"></ng-container>\n }\n </th>\n }\n <!-- 表单列form header -->\n @for (item of headerConfig; track item; let index = $index) {\n @if (item.isShow) {\n @if (!item.templateRef) {\n <th\n [nzAlign]=\"tableAlign\"\n [nzWidth]=\"item.width!\"\n >\n @if (item.showRequiredTip) {\n <label [ngStyle]=\"{ color: 'red' }\">\n *\n </label>\n }\n {{ item.header }}\n </th>\n }\n @if (item.templateRef) {\n <th\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 }\n }\n }\n <!-- 自定义展示列header -->\n @for (item of thTemplateOfNullInForm; track item; let i = $index) {\n <th\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 }\n </tr>\n </thead>\n\n <tbody formArrayName=\"formArray\">\n @for (fg of basicTable.data; track fg; let i = $index) {\n <tr>\n <!-- 序号列 -->\n @if (enableNo) {\n <td [nzAlign]=\"tableAlign\">\n {{ i + 1 }}\n </td>\n }\n <!-- 表单列将放进form -->\n <ng-container [formGroup]=\"fg\">\n @for (item of tdConfig; track item) {\n @if (item.isShow) {\n @if (!item.templateRef) {\n <td [nzAlign]=\"tableAlign\">\n <nz-form-item [ngStyle]=\"{ 'margin-bottom': 0 }\">\n <nz-form-control [nzErrorTip]=\"item.errorTip\">\n @if (\n item.type === 'input' &&\n item.controlMode !== 'readonly' &&\n !!item.controlName\n ) {\n <input\n nz-input\n [placeholder]=\"item.placeholder || '请输入'\"\n [formControlName]=\"item.controlName\"\n [maxlength]=\"item.maxLength!\"\n />\n }\n @if (\n item.type === 'textarea' &&\n item.controlMode !== 'readonly' &&\n !!item.controlName\n ) {\n <textarea\n nz-input\n [nzAutosize]=\"{ minRows: 3 }\"\n [placeholder]=\"item.placeholder || '请输入'\"\n [formControlName]=\"item.controlName\"\n [maxlength]=\"item.maxLength!\"\n ></textarea>\n }\n @if (\n item.type === 'number' &&\n item.controlMode !== 'readonly' &&\n !!item.controlName\n ) {\n <nz-input-number\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 @if (\n item.type === 'date' &&\n item.controlMode !== 'readonly' &&\n !!item.controlName\n ) {\n <nz-date-picker\n [formControlName]=\"item.controlName\"\n >\n </nz-date-picker>\n }\n @if (\n item.type === 'select' &&\n item.controlMode !== 'readonly' &&\n !!item.controlName\n ) {\n <nz-select\n nzShowSearch=\"true\"\n [nzAllowClear]=\"item.allowClear\"\n [formControlName]=\"item.controlName\"\n [nzPlaceHolder]=\"item.placeholder || '请选择'\"\n >\n @for (option of item.options; track option) {\n <nz-option\n [nzValue]=\"option.value\"\n [nzLabel]=\"option.label\"\n >\n </nz-option>\n }\n </nz-select>\n }\n @if (\n item.type === 'radio' &&\n item.controlMode !== 'readonly' &&\n !!item.controlName\n ) {\n <nz-radio-group\n [formControlName]=\"item.controlName\"\n >\n @for (option of item.options; track option) {\n <label\n nz-radio\n [nzValue]=\"option.value\"\n >\n {{ option.label }}\n </label>\n }\n </nz-radio-group>\n }\n @if (item.controlMode === 'readonly') {\n <span>\n @if (item.format) {\n {{ item.format(fg.get(item.controlName)?.value) }}\n }\n @if (!item.format) {\n {{ fg.get(item.controlName)?.value }}\n }\n </span>\n }\n </nz-form-control>\n </nz-form-item>\n </td>\n }\n }\n @if (item.templateRef) {\n @if (item.isShow) {\n <td [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 }\n }\n }\n </ng-container>\n <!-- 自定义展示列 -->\n @for (item of tdTemplateOfNullInForm; track item) {\n <td [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 }\n </tr>\n @if (enableExpand) {\n <tr [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 }\n }\n\n @if (form.get('formArray')?.errors) {\n <tr [nzExpand]=\"true\">\n <ng-container\n [ngTemplateOutlet]=\"errorTemplate!\"\n [ngTemplateOutletContext]=\"{ $implicit: form.get('formArray') }\"\n >\n </ng-container>\n </tr>\n }\n </tbody>\n</nz-table>\n","import { NgModule } from '@angular/core';\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 imports: [\n NzxTableFormComponent,\n NzxTableFormTdDirective,\n NzxTableFormThDirective,\n NzxTableFormExpandDirective,\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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"}
|