ngx-axis-appforge 0.0.41 → 0.0.42

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.
@@ -1,25 +1,27 @@
1
1
  import * as i0 from '@angular/core';
2
- import { signal, computed, effect, inject, model, ChangeDetectionStrategy, Component } from '@angular/core';
3
- import { ValueAccessOptions, ValueAccess, updateAndValidAll, buildValidators, ScopeDirective, DynamicDirective } from 'ngx-axis-appforge/core';
4
- import * as i1 from 'ng-zorro-antd/table';
2
+ import { signal, effect, inject, computed, model, ChangeDetectionStrategy, Component } from '@angular/core';
3
+ import * as i1 from 'ngx-axis-appforge/core';
4
+ import { ValueAccessOptions, ValueAccess, updateAndValidAll, buildValidators, ScopeDirective, DynamicDirective, TableFieldDisplayService, TableService, SelectService } from 'ngx-axis-appforge/core';
5
+ import * as i2 from 'ng-zorro-antd/table';
5
6
  import { NzTableModule } from 'ng-zorro-antd/table';
6
- import * as i2 from '@angular/forms';
7
+ import * as i3 from '@angular/forms';
7
8
  import { FormBuilder, ReactiveFormsModule } from '@angular/forms';
8
- import * as i4 from 'ng-zorro-antd/form';
9
+ import * as i5 from 'ng-zorro-antd/form';
9
10
  import { NzFormModule } from 'ng-zorro-antd/form';
10
- import * as i5 from 'ng-zorro-antd/resizable';
11
+ import * as i6 from 'ng-zorro-antd/resizable';
11
12
  import { NzResizableModule } from 'ng-zorro-antd/resizable';
12
- import * as i6 from 'ng-zorro-antd/button';
13
+ import * as i7 from 'ng-zorro-antd/button';
13
14
  import { NzButtonModule } from 'ng-zorro-antd/button';
14
- import * as i8 from 'ng-zorro-antd/popconfirm';
15
+ import * as i9 from 'ng-zorro-antd/popconfirm';
15
16
  import { NzPopconfirmModule } from 'ng-zorro-antd/popconfirm';
16
- import { debounceTime } from 'rxjs';
17
- import * as i9 from 'ng-zorro-antd/icon';
17
+ import { merge, map, debounceTime } from 'rxjs';
18
+ import * as i10 from 'ng-zorro-antd/icon';
18
19
  import { NzIconModule } from 'ng-zorro-antd/icon';
19
- import * as i10 from 'ng-zorro-antd/empty';
20
+ import * as i11 from 'ng-zorro-antd/empty';
20
21
  import { NzEmptyModule } from 'ng-zorro-antd/empty';
21
- import * as i3 from 'ng-zorro-antd/grid';
22
- import * as i7 from 'ng-zorro-antd/core/transition-patch';
22
+ import { DatePipe, DecimalPipe, PercentPipe } from '@angular/common';
23
+ import * as i4 from 'ng-zorro-antd/grid';
24
+ import * as i8 from 'ng-zorro-antd/core/transition-patch';
23
25
 
24
26
  class EditTableOptions extends ValueAccessOptions {
25
27
  disabledAppend = signal(false, ...(ngDevMode ? [{ debugName: "disabledAppend" }] : []));
@@ -38,6 +40,7 @@ class EditTableOptions extends ValueAccessOptions {
38
40
  singleCheck = signal(false, ...(ngDevMode ? [{ debugName: "singleCheck" }] : []));
39
41
  disableCheckboxFn = signal(undefined, ...(ngDevMode ? [{ debugName: "disableCheckboxFn" }] : []));
40
42
  defaultSelectFirstRow = signal(false, ...(ngDevMode ? [{ debugName: "defaultSelectFirstRow" }] : []));
43
+ checkboxLinkageForExpand = signal(false, ...(ngDevMode ? [{ debugName: "checkboxLinkageForExpand" }] : []));
41
44
  showTotal = signal(false, ...(ngDevMode ? [{ debugName: "showTotal" }] : []));
42
45
  totalTitle = signal("合计", ...(ngDevMode ? [{ debugName: "totalTitle" }] : []));
43
46
  showSubTotal = signal(false, ...(ngDevMode ? [{ debugName: "showSubTotal" }] : []));
@@ -66,88 +69,26 @@ class EditTableFieldOptions {
66
69
  child = signal(undefined, ...(ngDevMode ? [{ debugName: "child" }] : []));
67
70
  }
68
71
 
69
- class Select {
70
- options;
71
- rowData;
72
- scope;
73
- constructor(options, rowData, scope) {
74
- this.options = options;
75
- this.rowData = rowData;
76
- this.scope = scope;
77
- }
78
- headerChecked = signal("none", ...(ngDevMode ? [{ debugName: "headerChecked" }] : []));
79
- setOfCheckedId = new Set();
80
- setOfIndeterminateId = new Set();
81
- setOfDisabledId = computed(() => this.buildDisabledId(), ...(ngDevMode ? [{ debugName: "setOfDisabledId" }] : []));
82
- buildDisabledId() {
83
- if (this.options.disableCheckboxFn()) {
84
- const args = this.scope?.snapshotAll() ?? {};
85
- return new Set(this.rowData()?.filter(row => this.scope?.runFnWithSnapshot(this.options.disableCheckboxFn(), Object.assign({}, args, { row })))
86
- .map(row => row.key));
87
- }
88
- return new Set();
89
- }
90
- onAllChecked(checked) {
91
- this.rowData()?.filter(row => !this.setOfDisabledId().has(row.key))?.forEach(row => this.updateCheckedSet(row, checked));
92
- this.refreshCheckedStatus();
93
- this.refreshCheckedFormValue();
94
- }
95
- toggleChecked(row) {
96
- if (this.options.showCheckbox() && !this.setOfDisabledId().has(row.key)) {
97
- console.log("toggleChecked");
98
- this.onItemChecked(row, !this.setOfCheckedId.has(row.key));
99
- }
100
- }
101
- onItemChecked(row, checked) {
102
- this.updateCheckedSet(row, checked);
103
- this.refreshCheckedStatus();
104
- this.refreshCheckedFormValue();
105
- }
106
- updateCheckedSet(row, checked) {
107
- const key = row.key;
108
- if (checked && !this.setOfCheckedId.has(key)) {
109
- if (this.options.singleCheck()) {
110
- this.setOfCheckedId.clear();
111
- }
112
- this.setOfCheckedId.add(key);
113
- }
114
- else if (!checked && this.setOfCheckedId.has(key)) {
115
- this.setOfCheckedId.delete(key);
116
- }
117
- }
118
- refreshCheckedStatus() {
119
- const listOfEnabledData = this.rowData()?.filter(row => !this.setOfDisabledId().has(row.key)) ?? [];
120
- const checked = listOfEnabledData.length > 0 && listOfEnabledData.every(row => this.setOfCheckedId.has(row.key) && !this.setOfIndeterminateId.has(row.key));
121
- if (checked) {
122
- this.headerChecked.set("checked");
123
- }
124
- else {
125
- const indeterminate = listOfEnabledData.some(row => this.setOfCheckedId.has(row.key) || this.setOfIndeterminateId.has(row.key)) && !checked;
126
- this.headerChecked.set(indeterminate ? "indeterminate" : "none");
127
- }
128
- console.log("headerChecked", this.headerChecked());
129
- }
130
- refreshCheckedFormValue() {
131
- this.rowData().forEach(row => {
132
- const v = this.setOfCheckedId.has(row.key);
133
- if (!!row.control.value[this.options.checkedFormName()] != v) {
134
- row.control.patchValue({ [this.options.checkedFormName()]: v });
135
- }
136
- });
137
- }
138
- getSelectedData() {
139
- return this.rowData()?.filter(row => this.setOfCheckedId.has(row.key));
140
- }
141
- }
142
-
143
72
  class EditTable extends ValueAccess {
144
- constructor() {
73
+ tableSvc;
74
+ select;
75
+ constructor(tableSvc, select) {
145
76
  effect(() => {
146
77
  this.fields().forEach((f, i) => {
147
78
  this.bindWithConfig(this.options.fields()[i], { options: f, tag: `bindField.${i}` });
148
79
  });
149
80
  });
150
81
  super();
82
+ this.tableSvc = tableSvc;
83
+ this.select = select;
84
+ effect(() => {
85
+ this.tableSvc.init({ data: this.rowData, options: this.options, fields: this.fields, getRow: (row) => row.control.value, cacheFilterItem: false });
86
+ this.select.init({ options: this.options, keyField: "key", data: this.rowData, onSelectedChange: (ids) => this.onSelectedChange(ids) });
87
+ });
88
+ effect(() => {
89
+ this.addSubscribe(merge(...this.rowData().map(r => merge(...this.tableSvc.displayFields().filter(f => f.filterAble()).map(f => r.control.get(f.field()).valueChanges.pipe(map(() => f.field()), debounceTime(100))))))
90
+ .subscribe((f) => this.tableSvc.refreshFieldControls(f)));
91
+ });
151
92
  this.addSubscribe(this.fa.valueChanges.pipe(debounceTime(300)).subscribe(v => {
152
93
  this.formValueToValue();
153
94
  this.onChange?.(this.value());
@@ -162,12 +103,8 @@ class EditTable extends ValueAccess {
162
103
  return this.fg.get("values");
163
104
  }
164
105
  rowData = signal([], ...(ngDevMode ? [{ debugName: "rowData" }] : []));
165
- select = new Select(this.options, this.rowData, this.getScope());
166
- pageSizeOptions = computed(() => this.options.pageSizeOptions().split(",").map(size => +size), ...(ngDevMode ? [{ debugName: "pageSizeOptions" }] : []));
167
106
  scroll = computed(() => this.buildScoll(), ...(ngDevMode ? [{ debugName: "scroll" }] : []));
168
107
  fields = computed(() => this.buildFields(), ...(ngDevMode ? [{ debugName: "fields" }] : []));
169
- leaderFieldWidth = computed(() => this.buildLeaderFieldWidth(), ...(ngDevMode ? [{ debugName: "leaderFieldWidth" }] : []));
170
- fieldsControlsMap = computed(() => this.buildFieldControls(), ...(ngDevMode ? [{ debugName: "fieldsControlsMap" }] : []));
171
108
  setOfDisabledRemoveId = signal(new Set(), ...(ngDevMode ? [{ debugName: "setOfDisabledRemoveId" }] : []));
172
109
  disabledAppend = computed(() => this.options.readonly() || this.options.disabled() || this.options.disabledAppend() || (this.options.maxLength() != null && this.rowData().length >= this.options.maxLength()), ...(ngDevMode ? [{ debugName: "disabledAppend" }] : []));
173
110
  disabledRemove = computed(() => this.options.readonly() || this.options.disabled() || this.options.disabledRemove(), ...(ngDevMode ? [{ debugName: "disabledRemove" }] : []));
@@ -188,10 +125,10 @@ class EditTable extends ValueAccess {
188
125
  buildScoll() {
189
126
  let x = 0;
190
127
  if (this.options.showCheckbox()) {
191
- x += this.leaderFieldWidth();
128
+ x += this.tableSvc.leaderFieldWidth();
192
129
  }
193
130
  if (this.options.showOrder()) {
194
- x += this.leaderFieldWidth();
131
+ x += this.tableSvc.leaderFieldWidth();
195
132
  }
196
133
  this.fields().filter(f => f.inuse()).forEach(f => {
197
134
  if (f.width()) {
@@ -203,54 +140,6 @@ class EditTable extends ValueAccess {
203
140
  });
204
141
  return { x: x + "px", y: "" };
205
142
  }
206
- buildLeaderFieldWidth() {
207
- switch (this.options.size()) {
208
- case "small":
209
- return 45;
210
- case "middle":
211
- return 50;
212
- default:
213
- return 65;
214
- }
215
- }
216
- buildFieldControls() {
217
- const res = {};
218
- for (const field of this.fields().filter(f => f.inuse())) {
219
- res[field.field()] = {};
220
- if (field.filterAble()) {
221
- const valueMap = new Map();
222
- for (const row of this.rowData() ?? []) {
223
- valueMap.set(row.control.value[field.field()], row.control.value);
224
- }
225
- res[field.field()].filterItems = Array.from(valueMap.entries()).map(en => {
226
- let text = en[0];
227
- if (field.filterDisplayFn()) {
228
- text = this.getScope()?.runFnWithSnapshot(field.filterDisplayFn(), { value: en[0], row: en[1] });
229
- }
230
- return { text, value: en[0] };
231
- });
232
- res[field.field()].filterFn = (fd, row) => {
233
- if (fd instanceof Array) {
234
- return fd.includes(row[field.field()]);
235
- }
236
- else {
237
- return fd == row[field.field()];
238
- }
239
- };
240
- }
241
- if (field.sortAble()) {
242
- if (this.rowData()?.some((r) => r.control.value[field.field()] != undefined && typeof (r.control.value) == "number")) {
243
- res[field.field()].sortFn = (a, b) => a[field.field()] - b[field.field()];
244
- }
245
- else {
246
- res[field.field()].sortFn = (a, b) => {
247
- return ((a[field.field()] || "") + "").localeCompare(b[field.field()]);
248
- };
249
- }
250
- }
251
- }
252
- return res;
253
- }
254
143
  writeValue(value) {
255
144
  super.writeValue(value);
256
145
  this.valueToFormValue();
@@ -352,13 +241,21 @@ class EditTable extends ValueAccess {
352
241
  row.subs.forEach(s => s.unsubscribe());
353
242
  });
354
243
  }
355
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.6", ngImport: i0, type: EditTable, deps: [], target: i0.ɵɵFactoryTarget.Component });
356
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.1.6", type: EditTable, isStandalone: true, selector: "axis-edit-table", inputs: { pageIndex: { classPropertyName: "pageIndex", publicName: "pageIndex", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { pageIndex: "pageIndexChange" }, usesInheritance: true, ngImport: i0, template: "<form #form nz-form [formGroup]=\"fg\">\n <nz-table #table [nzSize]=\"options.size()\" [nzData]=\"rowData()\" [nzBordered]=\"options.bordered()\"\n [nzOuterBordered]=\"options.outerBordered()\" [nzShowPagination]=\"options.showPagination()\"\n [nzFrontPagination]=\"options.showPagination()\" [nzPageSize]=\"options.pageSize()\"\n [nzShowSizeChanger]=\"options.showSizeChanger()\" [nzPageSizeOptions]=\"pageSizeOptions()\"\n [nzShowTotal]=\"options.showDataSize()?totalRange:null\" [nzScroll]=\"scroll()\"\n [nzFooter]=\"!options.showPagination() && !disabledAppend() && rowData().length?footer:null\"\n [nzNoResult]=\"noResult\" [(nzPageIndex)]=\"pageIndex\">\n <thead>\n <tr>\n @if (options.showCheckbox()) {\n @if ( !options.singleCheck()) {\n <th nzLeft [nzChecked]=\"select.headerChecked()!='none'\"\n [nzIndeterminate]=\"select.headerChecked()=='indeterminate'\"\n (nzCheckedChange)=\"select.onAllChecked($event)\" nzAlign=\"center\"\n [nzWidth]=\"leaderFieldWidth()-10+'px'\">\n </th>\n }@else {\n <th nzLeft [nzWidth]=\"leaderFieldWidth()-10+'px'\"></th>\n }\n }\n <th nzWidth=\"0 !important\" nzLeft></th>\n @if (options.showOrder()) {\n <th nzAlign=\"center\" [nzWidth]=\"leaderFieldWidth()+'px'\">\u5E8F\u53F7</th>\n }\n @for (f of fields(); track f.field();let i=$index) {\n @if (f.inuse()) {\n <th [attr.data-index]=\"i\" nz-resizable nzBounds=\"window\" [nzDisabled]=\"!f.width()\"\n [nzWidth]=\"f.width() == null ?null:f.width()+'px'\" (nzResize)=\"f.width.set($event.width??null)\"\n [nzShowSort]=\"f.sortAble()\" [nzSortFn]=\"fieldsControlsMap()[f.field()]?.sortFn\"\n [nzSortOrder]=\"f.sortOrder()\" [nzSortPriority]=\"f.sortPriority()??false\"\n [nzShowFilter]=\"f.filterAble()\" [nzFilters]=\"fieldsControlsMap()[f.field()]?.filterItems ?? []\"\n [nzFilterFn]=\"fieldsControlsMap()[f.field()]?.filterFn\" [nzFilterMultiple]=\"f.filterMultiple()\"\n [nzAlign]=\"f.align()\" [nzLeft]=\"f.freezeMode()=='left'\" [nzRight]=\"f.freezeMode()=='right'\">\n <nz-form-label [nzNoColon]=\"true\" [nzRequired]=\"idRequired(f)\">\n {{f.title()}}\n </nz-form-label>\n </th>\n }\n }\n @if(!options.disabledRemove()){\n <th nzRight nzAlign=\"center\" nzWidth=\"80px\" data-rowactions>\u64CD\u4F5C</th>\n }\n </tr>\n </thead>\n <tbody formArrayName=\"values\">\n @for (data of table.data; track data.key;let i=$index) {\n <tr [formGroupName]=\"(table.nzPageIndex-1) * table.nzPageSize + i\" [axisScope]=\"options.id+'.row'\"\n scopeName=\"\u53EF\u7F16\u8F91\u8868\u683C\u884C\" [dataSources]=\"[{name:'row',type:'local',data:data.control.value}]\">\n @if (options.showCheckbox()) {\n <td nzLeft [nzChecked]=\"select.setOfCheckedId.has(data.key)\"\n [nzIndeterminate]=\"select.setOfIndeterminateId.has(data.key)\"\n [nzDisabled]=\"select.setOfDisabledId().has(data.key)\"\n (nzCheckedChange)=\"select.onItemChecked(data, $event)\" nzAlign=\"center\"></td>\n }\n <td class=\"row-status\" nzLeft [class]=\"data.status()\"></td>\n @if (options.showOrder()) {\n <td nzAlign=\"center\">{{(table.nzPageIndex-1) * table.nzPageSize + i+1}}</td>\n }\n @for (f of fields(); track f.field();let i=$index) {\n @if (f.inuse()) {\n <td [nzLeft]=\"f.freezeMode()=='left'\" [attr.data-index]=\"i\" [nzRight]=\"f.freezeMode()=='right'\"\n [nzAlign]=\"f.align()\">\n <nz-form-item style=\"margin-bottom: 0;\">\n <nz-form-control>\n <ng-container [axisDynamic]=\"f.child()\" [formControlName]=\"f.field()\"></ng-container>\n </nz-form-control>\n </nz-form-item>\n </td>\n }\n }\n @if(!options.disabledRemove()){\n <td nzRight>\n <button nz-button nzDanger nzType=\"link\" nz-popconfirm nzPopconfirmTitle=\"\u786E\u8BA4\u5220\u9664\uFF1F\"\n [nzCondition]=\"data.status()=='ignore'\" [disabled]=\"data.disabledRemove()\"\n (nzOnConfirm)=\"removeRow((table.nzPageIndex-1) * table.nzPageSize + i)\">\u5220\u9664</button>\n </td>\n }\n </tr>\n }\n </tbody>\n <ng-template #noResult>\n <nz-empty [nzNotFoundContent]=\"addbtn\"></nz-empty>\n <ng-template #addbtn>\n \u6682\u65E0\u6570\u636E@if (!disabledAppend()) {\uFF0C<a (click)=\"addRow()\">\u6DFB\u52A0</a>}\n </ng-template>\n </ng-template>\n <ng-template #totalRange let-range=\"range\" let-total>\n @if (!disabledAppend()) {\n <a style=\"position:absolute;left:24px\" (click)=\"addRow()\"><span nz-icon nzType=\"plus\"\n nzTheme=\"outline\"></span>\u6DFB\u52A0</a>\n }\n \u5171{{ total }}\u6761\u6570\u636E\uFF0C\u7B2C{{ range[0] }}-{{ range[1] }}\u6761\n </ng-template>\n <ng-template #footer>\n <a (click)=\"addRow()\"><span nz-icon nzType=\"plus\" nzTheme=\"outline\"></span>\u6DFB\u52A0</a>\n </ng-template>\n </nz-table>\n</form>", styles: [":host{display:block}.row-status{width:0;position:relative}.row-status:before{content:\"\";display:block;width:5px;height:17px;border-radius:5px;position:absolute;z-index:1;left:50%;top:50%;transform:translate(4px,-50%)}.invalid:before{background-color:#ff4d4f}.success:before{background-color:#7ed321}.ignore:before{background-color:#9b9b9b}:host ::ng-deep .ant-table-placeholder .ant-table-expanded-row-fixed{margin:-8px -10px}th nz-form-label ::ng-deep label{height:unset}\n"], dependencies: [{ kind: "ngmodule", type: NzTableModule }, { kind: "component", type: i1.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: "component", type: i1.NzThAddOnComponent, selector: "th[nzColumnKey], th[nzSortFn], th[nzSortOrder], th[nzFilters], th[nzShowSort], th[nzShowFilter], th[nzCustomFilter]", inputs: ["nzColumnKey", "nzFilterMultiple", "nzSortOrder", "nzSortPriority", "nzSortDirections", "nzFilters", "nzSortFn", "nzFilterFn", "nzShowSort", "nzShowFilter", "nzCustomFilter"], outputs: ["nzCheckedChange", "nzSortOrderChange", "nzFilterChange"] }, { kind: "directive", type: i1.NzTableCellDirective, selector: "th:not(.nz-disable-th), td:not(.nz-disable-td)" }, { kind: "directive", type: i1.NzThMeasureDirective, selector: "th", inputs: ["nzWidth", "colspan", "colSpan", "rowspan", "rowSpan"] }, { kind: "component", type: i1.NzTdAddOnComponent, selector: "td[nzChecked], td[nzDisabled], td[nzIndeterminate], td[nzIndentSize], td[nzExpand], td[nzShowExpand], td[nzShowCheckbox]", inputs: ["nzChecked", "nzDisabled", "nzIndeterminate", "nzLabel", "nzIndentSize", "nzShowExpand", "nzShowCheckbox", "nzExpand", "nzExpandIcon"], outputs: ["nzCheckedChange", "nzExpandChange"] }, { kind: "component", type: i1.NzTheadComponent, selector: "thead:not(.ant-table-thead)", outputs: ["nzSortOrderChange"] }, { kind: "component", type: i1.NzTbodyComponent, selector: "tbody" }, { kind: "directive", type: i1.NzTrDirective, selector: "tr:not([nz-table-measure-row]):not([nzExpand]):not([nz-table-fixed-row])" }, { kind: "directive", type: i1.NzCellFixedDirective, selector: "td[nzRight],th[nzRight],td[nzLeft],th[nzLeft]", inputs: ["nzRight", "nzLeft", "colspan", "colSpan"] }, { kind: "directive", type: i1.NzCellAlignDirective, selector: "th[nzAlign],td[nzAlign]", inputs: ["nzAlign"] }, { kind: "component", type: i1.NzThSelectionComponent, selector: "th[nzSelections],th[nzChecked],th[nzShowCheckbox],th[nzShowRowSelection]", inputs: ["nzSelections", "nzChecked", "nzDisabled", "nzIndeterminate", "nzLabel", "nzShowCheckbox", "nzShowRowSelection"], outputs: ["nzCheckedChange"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i2.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: i2.FormGroupName, selector: "[formGroupName]", inputs: ["formGroupName"] }, { kind: "directive", type: i2.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: "directive", type: i4.NzFormDirective, selector: "[nz-form]", inputs: ["nzLayout", "nzNoColon", "nzAutoTips", "nzDisableAutoTips", "nzTooltipIcon", "nzLabelAlign", "nzLabelWrap"], exportAs: ["nzForm"] }, { kind: "component", type: i4.NzFormItemComponent, selector: "nz-form-item", exportAs: ["nzFormItem"] }, { kind: "component", type: i4.NzFormLabelComponent, selector: "nz-form-label", inputs: ["nzFor", "nzRequired", "nzNoColon", "nzTooltipTitle", "nzTooltipIcon", "nzLabelAlign", "nzLabelWrap"], exportAs: ["nzFormLabel"] }, { kind: "component", type: i4.NzFormControlComponent, selector: "nz-form-control", inputs: ["nzSuccessTip", "nzWarningTip", "nzErrorTip", "nzValidatingTip", "nzExtra", "nzAutoTips", "nzDisableAutoTips", "nzHasFeedback", "nzValidateStatus"], exportAs: ["nzFormControl"] }, { kind: "ngmodule", type: NzResizableModule }, { kind: "directive", type: i5.NzResizableDirective, selector: "[nz-resizable]", inputs: ["nzBounds", "nzMaxHeight", "nzMaxWidth", "nzMinHeight", "nzMinWidth", "nzGridColumnCount", "nzMaxColumn", "nzMinColumn", "nzLockAspectRatio", "nzPreview", "nzDisabled"], outputs: ["nzResize", "nzResizeEnd", "nzResizeStart"], exportAs: ["nzResizable"] }, { kind: "directive", type: ScopeDirective, selector: "[axisScope]", inputs: ["axisScope", "scopeName", "isRoot", "dataSources"] }, { kind: "directive", type: DynamicDirective, selector: "[axisDynamic]", inputs: ["axisDynamic", "standalone", "isDesign"], outputs: ["onRegisteValueAccess"], exportAs: ["axisDynamic"] }, { kind: "ngmodule", type: NzButtonModule }, { kind: "component", type: i6.NzButtonComponent, selector: "button[nz-button], a[nz-button]", inputs: ["nzBlock", "nzGhost", "nzSearch", "nzLoading", "nzDanger", "disabled", "tabIndex", "nzType", "nzShape", "nzSize"], exportAs: ["nzButton"] }, { kind: "directive", type: i7.ɵNzTransitionPatchDirective, selector: "[nz-button], [nz-icon], nz-icon, [nz-menu-item], [nz-submenu], nz-select-top-control, nz-select-placeholder, nz-input-group", inputs: ["hidden"] }, { kind: "ngmodule", type: NzPopconfirmModule }, { kind: "directive", type: i8.NzPopconfirmDirective, selector: "[nz-popconfirm]", inputs: ["nzPopconfirmArrowPointAtCenter", "nzPopconfirmTitle", "nzPopconfirmTitleContext", "nz-popconfirm", "nzPopconfirmTrigger", "nzPopconfirmPlacement", "nzPopconfirmOrigin", "nzPopconfirmMouseEnterDelay", "nzPopconfirmMouseLeaveDelay", "nzPopconfirmOverlayClassName", "nzPopconfirmOverlayStyle", "nzPopconfirmVisible", "nzBeforeConfirm", "nzIcon", "nzCondition", "nzPopconfirmShowArrow", "nzPopconfirmBackdrop", "nzAutofocus", "nzOkText", "nzOkType", "nzCancelText", "nzOkButtonProps", "nzCancelButtonProps", "nzOkDisabled", "nzOkDanger"], outputs: ["nzPopconfirmVisibleChange", "nzOnCancel", "nzOnConfirm"], exportAs: ["nzPopconfirm"] }, { kind: "ngmodule", type: NzIconModule }, { kind: "directive", type: i9.NzIconDirective, selector: "nz-icon,[nz-icon]", inputs: ["nzSpin", "nzRotate", "nzType", "nzTheme", "nzTwotoneColor", "nzIconfont"], exportAs: ["nzIcon"] }, { kind: "ngmodule", type: NzEmptyModule }, { kind: "component", type: i10.NzEmptyComponent, selector: "nz-empty", inputs: ["nzNotFoundImage", "nzNotFoundContent", "nzNotFoundFooter"], exportAs: ["nzEmpty"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
244
+ onSelectedChange(checkedIds) {
245
+ this.rowData().forEach(row => {
246
+ const v = checkedIds.has(row.key);
247
+ if (!!row.control.value[this.options.checkedFormName()] != v) {
248
+ row.control.patchValue({ [this.options.checkedFormName()]: v });
249
+ }
250
+ });
251
+ }
252
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.6", ngImport: i0, type: EditTable, deps: [{ token: i1.TableService }, { token: i1.SelectService }], target: i0.ɵɵFactoryTarget.Component });
253
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.1.6", type: EditTable, isStandalone: true, selector: "axis-edit-table", inputs: { pageIndex: { classPropertyName: "pageIndex", publicName: "pageIndex", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { pageIndex: "pageIndexChange" }, providers: [DatePipe, DecimalPipe, PercentPipe, TableFieldDisplayService, TableService, SelectService], usesInheritance: true, ngImport: i0, template: "<form #form nz-form [formGroup]=\"fg\">\n <nz-table #table [nzSize]=\"options.size()\" [nzData]=\"rowData()\" [nzBordered]=\"options.bordered()\"\n [nzOuterBordered]=\"options.outerBordered()\" [nzShowPagination]=\"options.showPagination()\"\n [nzFrontPagination]=\"options.showPagination()\" [nzPageSize]=\"options.pageSize()\"\n [nzShowSizeChanger]=\"options.showSizeChanger()\" [nzPageSizeOptions]=\"tableSvc.pageSizeOptions()\"\n [nzShowTotal]=\"options.showDataSize()?totalRange:null\" [nzScroll]=\"scroll()\"\n [nzFooter]=\"!options.showPagination() && !disabledAppend() && rowData().length?footer:null\"\n [nzNoResult]=\"noResult\" [(nzPageIndex)]=\"pageIndex\">\n <thead>\n <tr>\n @if (options.showCheckbox()) {\n @if ( !options.singleCheck()) {\n <th nzLeft [nzChecked]=\"select.headerChecked()!='none'\"\n [nzIndeterminate]=\"select.headerChecked()=='indeterminate'\"\n (nzCheckedChange)=\"select.onAllChecked($event)\" nzAlign=\"center\"\n [nzWidth]=\"tableSvc.leaderFieldWidth()-10+'px'\">\n </th>\n }@else {\n <th nzLeft [nzWidth]=\"tableSvc.leaderFieldWidth()-10+'px'\"></th>\n }\n }\n <th nzWidth=\"0 !important\" nzLeft></th>\n @if (options.showOrder()) {\n <th nzAlign=\"center\" [nzWidth]=\"tableSvc.leaderFieldWidth()+'px'\">\u5E8F\u53F7</th>\n }\n @for (f of fields(); track f.field();let i=$index) {\n @if (f.inuse()) {\n <th [attr.data-index]=\"i\" nz-resizable nzBounds=\"window\" [nzDisabled]=\"!f.width()\"\n [nzWidth]=\"f.width() == null ?null:f.width()+'px'\" (nzResize)=\"f.width.set($event.width??null)\"\n [nzShowSort]=\"f.sortAble()\" [nzSortFn]=\"tableSvc.fieldsControlsMap()[f.field()]?.sortFn\"\n [nzSortOrder]=\"f.sortOrder()\" [nzSortPriority]=\"f.sortPriority()??false\"\n [nzShowFilter]=\"f.filterAble()\"\n [nzFilters]=\"tableSvc.fieldsControlsMap()[f.field()]?.filterItems ?? []\"\n [nzFilterFn]=\"tableSvc.fieldsControlsMap()[f.field()]?.filterFn\"\n (nzFilterChange)=\"tableSvc.filterChange(f.field(),$event)\" [nzFilterMultiple]=\"f.filterMultiple()\"\n [nzAlign]=\"f.align()\" [nzLeft]=\"f.freezeMode()=='left'\" [nzRight]=\"f.freezeMode()=='right'\">\n <nz-form-label [nzNoColon]=\"true\" [nzRequired]=\"idRequired(f)\">\n {{f.title()}}\n </nz-form-label>\n </th>\n }\n }\n @if(!options.disabledRemove()){\n <th nzRight nzAlign=\"center\" nzWidth=\"80px\" data-rowactions>\u64CD\u4F5C</th>\n }\n </tr>\n </thead>\n <tbody formArrayName=\"values\">\n @for (data of table.data; track data.key;let i=$index) {\n <tr [formGroupName]=\"(table.nzPageIndex-1) * table.nzPageSize + i\" [axisScope]=\"options.id+'.row'\"\n scopeName=\"\u53EF\u7F16\u8F91\u8868\u683C\u884C\" [dataSources]=\"[{name:'row',type:'local',data:data.control.value}]\">\n @if (options.showCheckbox()) {\n <td nzLeft [nzChecked]=\"select.setOfCheckedId.has(data.key)\"\n [nzIndeterminate]=\"select.setOfIndeterminateId.has(data.key)\"\n [nzDisabled]=\"select.setOfDisabledId().has(data.key)\"\n (nzCheckedChange)=\"select.onItemChecked(data, $event)\" nzAlign=\"center\"></td>\n }\n <td class=\"row-status\" nzLeft [class]=\"data.status()\"></td>\n @if (options.showOrder()) {\n <td nzAlign=\"center\">{{(table.nzPageIndex-1) * table.nzPageSize + i+1}}</td>\n }\n @for (f of fields(); track f.field();let i=$index) {\n @if (f.inuse()) {\n <td [nzLeft]=\"f.freezeMode()=='left'\" [attr.data-index]=\"i\" [nzRight]=\"f.freezeMode()=='right'\"\n [nzAlign]=\"f.align()\">\n <nz-form-item style=\"margin-bottom: 0;\">\n <nz-form-control>\n <ng-container [axisDynamic]=\"f.child()\" [formControlName]=\"f.field()\"></ng-container>\n </nz-form-control>\n </nz-form-item>\n </td>\n }\n }\n @if(!options.disabledRemove()){\n <td nzRight>\n <button nz-button nzDanger nzType=\"link\" nz-popconfirm nzPopconfirmTitle=\"\u786E\u8BA4\u5220\u9664\uFF1F\"\n [nzCondition]=\"data.status()=='ignore'\" [disabled]=\"data.disabledRemove()\"\n (nzOnConfirm)=\"removeRow((table.nzPageIndex-1) * table.nzPageSize + i)\">\u5220\u9664</button>\n </td>\n }\n </tr>\n }\n </tbody>\n <ng-template #noResult>\n <nz-empty [nzNotFoundContent]=\"addbtn\"></nz-empty>\n <ng-template #addbtn>\n \u6682\u65E0\u6570\u636E@if (!disabledAppend()) {\uFF0C<a (click)=\"addRow()\">\u6DFB\u52A0</a>}\n </ng-template>\n </ng-template>\n <ng-template #totalRange let-range=\"range\" let-total>\n @if (!disabledAppend()) {\n <a style=\"position:absolute;left:24px\" (click)=\"addRow()\"><span nz-icon nzType=\"plus\"\n nzTheme=\"outline\"></span>\u6DFB\u52A0</a>\n }\n \u5171{{ total }}\u6761\u6570\u636E\uFF0C\u7B2C{{ range[0] }}-{{ range[1] }}\u6761\n </ng-template>\n <ng-template #footer>\n <a (click)=\"addRow()\"><span nz-icon nzType=\"plus\" nzTheme=\"outline\"></span>\u6DFB\u52A0</a>\n </ng-template>\n </nz-table>\n</form>", styles: [":host{display:block}.row-status{width:0;position:relative}.row-status:before{content:\"\";display:block;width:5px;height:17px;border-radius:5px;position:absolute;z-index:1;left:50%;top:50%;transform:translate(4px,-50%)}.invalid:before{background-color:#ff4d4f}.success:before{background-color:#7ed321}.ignore:before{background-color:#9b9b9b}:host ::ng-deep .ant-table-placeholder .ant-table-expanded-row-fixed{margin:-8px -10px}th nz-form-label ::ng-deep label{height:unset}\n"], dependencies: [{ kind: "ngmodule", type: NzTableModule }, { kind: "component", type: i2.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: "component", type: i2.NzThAddOnComponent, selector: "th[nzColumnKey], th[nzSortFn], th[nzSortOrder], th[nzFilters], th[nzShowSort], th[nzShowFilter], th[nzCustomFilter]", inputs: ["nzColumnKey", "nzFilterMultiple", "nzSortOrder", "nzSortPriority", "nzSortDirections", "nzFilters", "nzSortFn", "nzFilterFn", "nzShowSort", "nzShowFilter", "nzCustomFilter"], outputs: ["nzCheckedChange", "nzSortOrderChange", "nzFilterChange"] }, { kind: "directive", type: i2.NzTableCellDirective, selector: "th:not(.nz-disable-th), td:not(.nz-disable-td)" }, { kind: "directive", type: i2.NzThMeasureDirective, selector: "th", inputs: ["nzWidth", "colspan", "colSpan", "rowspan", "rowSpan"] }, { kind: "component", type: i2.NzTdAddOnComponent, selector: "td[nzChecked], td[nzDisabled], td[nzIndeterminate], td[nzIndentSize], td[nzExpand], td[nzShowExpand], td[nzShowCheckbox]", inputs: ["nzChecked", "nzDisabled", "nzIndeterminate", "nzLabel", "nzIndentSize", "nzShowExpand", "nzShowCheckbox", "nzExpand", "nzExpandIcon"], outputs: ["nzCheckedChange", "nzExpandChange"] }, { kind: "component", type: i2.NzTheadComponent, selector: "thead:not(.ant-table-thead)", outputs: ["nzSortOrderChange"] }, { kind: "component", type: i2.NzTbodyComponent, selector: "tbody" }, { kind: "directive", type: i2.NzTrDirective, selector: "tr:not([nz-table-measure-row]):not([nzExpand]):not([nz-table-fixed-row])" }, { kind: "directive", type: i2.NzCellFixedDirective, selector: "td[nzRight],th[nzRight],td[nzLeft],th[nzLeft]", inputs: ["nzRight", "nzLeft", "colspan", "colSpan"] }, { kind: "directive", type: i2.NzCellAlignDirective, selector: "th[nzAlign],td[nzAlign]", inputs: ["nzAlign"] }, { kind: "component", type: i2.NzThSelectionComponent, selector: "th[nzSelections],th[nzChecked],th[nzShowCheckbox],th[nzShowRowSelection]", inputs: ["nzSelections", "nzChecked", "nzDisabled", "nzIndeterminate", "nzLabel", "nzShowCheckbox", "nzShowRowSelection"], outputs: ["nzCheckedChange"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i3.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i3.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i3.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: i3.FormGroupName, selector: "[formGroupName]", inputs: ["formGroupName"] }, { kind: "directive", type: i3.FormArrayName, selector: "[formArrayName]", inputs: ["formArrayName"] }, { kind: "ngmodule", type: NzFormModule }, { kind: "directive", type: i4.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: i4.NzRowDirective, selector: "[nz-row],nz-row,nz-form-item", inputs: ["nzAlign", "nzJustify", "nzGutter"], exportAs: ["nzRow"] }, { kind: "directive", type: i5.NzFormDirective, selector: "[nz-form]", inputs: ["nzLayout", "nzNoColon", "nzAutoTips", "nzDisableAutoTips", "nzTooltipIcon", "nzLabelAlign", "nzLabelWrap"], exportAs: ["nzForm"] }, { kind: "component", type: i5.NzFormItemComponent, selector: "nz-form-item", exportAs: ["nzFormItem"] }, { kind: "component", type: i5.NzFormLabelComponent, selector: "nz-form-label", inputs: ["nzFor", "nzRequired", "nzNoColon", "nzTooltipTitle", "nzTooltipIcon", "nzLabelAlign", "nzLabelWrap"], exportAs: ["nzFormLabel"] }, { kind: "component", type: i5.NzFormControlComponent, selector: "nz-form-control", inputs: ["nzSuccessTip", "nzWarningTip", "nzErrorTip", "nzValidatingTip", "nzExtra", "nzAutoTips", "nzDisableAutoTips", "nzHasFeedback", "nzValidateStatus"], exportAs: ["nzFormControl"] }, { kind: "ngmodule", type: NzResizableModule }, { kind: "directive", type: i6.NzResizableDirective, selector: "[nz-resizable]", inputs: ["nzBounds", "nzMaxHeight", "nzMaxWidth", "nzMinHeight", "nzMinWidth", "nzGridColumnCount", "nzMaxColumn", "nzMinColumn", "nzLockAspectRatio", "nzPreview", "nzDisabled"], outputs: ["nzResize", "nzResizeEnd", "nzResizeStart"], exportAs: ["nzResizable"] }, { kind: "directive", type: ScopeDirective, selector: "[axisScope]", inputs: ["axisScope", "scopeName", "isRoot", "dataSources"] }, { kind: "directive", type: DynamicDirective, selector: "[axisDynamic]", inputs: ["axisDynamic", "standalone", "isDesign"], outputs: ["onRegisteValueAccess"], exportAs: ["axisDynamic"] }, { kind: "ngmodule", type: NzButtonModule }, { kind: "component", type: i7.NzButtonComponent, selector: "button[nz-button], a[nz-button]", inputs: ["nzBlock", "nzGhost", "nzSearch", "nzLoading", "nzDanger", "disabled", "tabIndex", "nzType", "nzShape", "nzSize"], exportAs: ["nzButton"] }, { kind: "directive", type: i8.ɵNzTransitionPatchDirective, selector: "[nz-button], [nz-icon], nz-icon, [nz-menu-item], [nz-submenu], nz-select-top-control, nz-select-placeholder, nz-input-group", inputs: ["hidden"] }, { kind: "ngmodule", type: NzPopconfirmModule }, { kind: "directive", type: i9.NzPopconfirmDirective, selector: "[nz-popconfirm]", inputs: ["nzPopconfirmArrowPointAtCenter", "nzPopconfirmTitle", "nzPopconfirmTitleContext", "nz-popconfirm", "nzPopconfirmTrigger", "nzPopconfirmPlacement", "nzPopconfirmOrigin", "nzPopconfirmMouseEnterDelay", "nzPopconfirmMouseLeaveDelay", "nzPopconfirmOverlayClassName", "nzPopconfirmOverlayStyle", "nzPopconfirmVisible", "nzBeforeConfirm", "nzIcon", "nzCondition", "nzPopconfirmShowArrow", "nzPopconfirmBackdrop", "nzAutofocus", "nzOkText", "nzOkType", "nzCancelText", "nzOkButtonProps", "nzCancelButtonProps", "nzOkDisabled", "nzOkDanger"], outputs: ["nzPopconfirmVisibleChange", "nzOnCancel", "nzOnConfirm"], exportAs: ["nzPopconfirm"] }, { kind: "ngmodule", type: NzIconModule }, { kind: "directive", type: i10.NzIconDirective, selector: "nz-icon,[nz-icon]", inputs: ["nzSpin", "nzRotate", "nzType", "nzTheme", "nzTwotoneColor", "nzIconfont"], exportAs: ["nzIcon"] }, { kind: "ngmodule", type: NzEmptyModule }, { kind: "component", type: i11.NzEmptyComponent, selector: "nz-empty", inputs: ["nzNotFoundImage", "nzNotFoundContent", "nzNotFoundFooter"], exportAs: ["nzEmpty"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
357
254
  }
358
255
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.6", ngImport: i0, type: EditTable, decorators: [{
359
256
  type: Component,
360
- args: [{ selector: 'axis-edit-table', imports: [NzTableModule, ReactiveFormsModule, NzFormModule, NzResizableModule, ScopeDirective, DynamicDirective, NzButtonModule, NzPopconfirmModule, NzIconModule, NzEmptyModule], changeDetection: ChangeDetectionStrategy.OnPush, template: "<form #form nz-form [formGroup]=\"fg\">\n <nz-table #table [nzSize]=\"options.size()\" [nzData]=\"rowData()\" [nzBordered]=\"options.bordered()\"\n [nzOuterBordered]=\"options.outerBordered()\" [nzShowPagination]=\"options.showPagination()\"\n [nzFrontPagination]=\"options.showPagination()\" [nzPageSize]=\"options.pageSize()\"\n [nzShowSizeChanger]=\"options.showSizeChanger()\" [nzPageSizeOptions]=\"pageSizeOptions()\"\n [nzShowTotal]=\"options.showDataSize()?totalRange:null\" [nzScroll]=\"scroll()\"\n [nzFooter]=\"!options.showPagination() && !disabledAppend() && rowData().length?footer:null\"\n [nzNoResult]=\"noResult\" [(nzPageIndex)]=\"pageIndex\">\n <thead>\n <tr>\n @if (options.showCheckbox()) {\n @if ( !options.singleCheck()) {\n <th nzLeft [nzChecked]=\"select.headerChecked()!='none'\"\n [nzIndeterminate]=\"select.headerChecked()=='indeterminate'\"\n (nzCheckedChange)=\"select.onAllChecked($event)\" nzAlign=\"center\"\n [nzWidth]=\"leaderFieldWidth()-10+'px'\">\n </th>\n }@else {\n <th nzLeft [nzWidth]=\"leaderFieldWidth()-10+'px'\"></th>\n }\n }\n <th nzWidth=\"0 !important\" nzLeft></th>\n @if (options.showOrder()) {\n <th nzAlign=\"center\" [nzWidth]=\"leaderFieldWidth()+'px'\">\u5E8F\u53F7</th>\n }\n @for (f of fields(); track f.field();let i=$index) {\n @if (f.inuse()) {\n <th [attr.data-index]=\"i\" nz-resizable nzBounds=\"window\" [nzDisabled]=\"!f.width()\"\n [nzWidth]=\"f.width() == null ?null:f.width()+'px'\" (nzResize)=\"f.width.set($event.width??null)\"\n [nzShowSort]=\"f.sortAble()\" [nzSortFn]=\"fieldsControlsMap()[f.field()]?.sortFn\"\n [nzSortOrder]=\"f.sortOrder()\" [nzSortPriority]=\"f.sortPriority()??false\"\n [nzShowFilter]=\"f.filterAble()\" [nzFilters]=\"fieldsControlsMap()[f.field()]?.filterItems ?? []\"\n [nzFilterFn]=\"fieldsControlsMap()[f.field()]?.filterFn\" [nzFilterMultiple]=\"f.filterMultiple()\"\n [nzAlign]=\"f.align()\" [nzLeft]=\"f.freezeMode()=='left'\" [nzRight]=\"f.freezeMode()=='right'\">\n <nz-form-label [nzNoColon]=\"true\" [nzRequired]=\"idRequired(f)\">\n {{f.title()}}\n </nz-form-label>\n </th>\n }\n }\n @if(!options.disabledRemove()){\n <th nzRight nzAlign=\"center\" nzWidth=\"80px\" data-rowactions>\u64CD\u4F5C</th>\n }\n </tr>\n </thead>\n <tbody formArrayName=\"values\">\n @for (data of table.data; track data.key;let i=$index) {\n <tr [formGroupName]=\"(table.nzPageIndex-1) * table.nzPageSize + i\" [axisScope]=\"options.id+'.row'\"\n scopeName=\"\u53EF\u7F16\u8F91\u8868\u683C\u884C\" [dataSources]=\"[{name:'row',type:'local',data:data.control.value}]\">\n @if (options.showCheckbox()) {\n <td nzLeft [nzChecked]=\"select.setOfCheckedId.has(data.key)\"\n [nzIndeterminate]=\"select.setOfIndeterminateId.has(data.key)\"\n [nzDisabled]=\"select.setOfDisabledId().has(data.key)\"\n (nzCheckedChange)=\"select.onItemChecked(data, $event)\" nzAlign=\"center\"></td>\n }\n <td class=\"row-status\" nzLeft [class]=\"data.status()\"></td>\n @if (options.showOrder()) {\n <td nzAlign=\"center\">{{(table.nzPageIndex-1) * table.nzPageSize + i+1}}</td>\n }\n @for (f of fields(); track f.field();let i=$index) {\n @if (f.inuse()) {\n <td [nzLeft]=\"f.freezeMode()=='left'\" [attr.data-index]=\"i\" [nzRight]=\"f.freezeMode()=='right'\"\n [nzAlign]=\"f.align()\">\n <nz-form-item style=\"margin-bottom: 0;\">\n <nz-form-control>\n <ng-container [axisDynamic]=\"f.child()\" [formControlName]=\"f.field()\"></ng-container>\n </nz-form-control>\n </nz-form-item>\n </td>\n }\n }\n @if(!options.disabledRemove()){\n <td nzRight>\n <button nz-button nzDanger nzType=\"link\" nz-popconfirm nzPopconfirmTitle=\"\u786E\u8BA4\u5220\u9664\uFF1F\"\n [nzCondition]=\"data.status()=='ignore'\" [disabled]=\"data.disabledRemove()\"\n (nzOnConfirm)=\"removeRow((table.nzPageIndex-1) * table.nzPageSize + i)\">\u5220\u9664</button>\n </td>\n }\n </tr>\n }\n </tbody>\n <ng-template #noResult>\n <nz-empty [nzNotFoundContent]=\"addbtn\"></nz-empty>\n <ng-template #addbtn>\n \u6682\u65E0\u6570\u636E@if (!disabledAppend()) {\uFF0C<a (click)=\"addRow()\">\u6DFB\u52A0</a>}\n </ng-template>\n </ng-template>\n <ng-template #totalRange let-range=\"range\" let-total>\n @if (!disabledAppend()) {\n <a style=\"position:absolute;left:24px\" (click)=\"addRow()\"><span nz-icon nzType=\"plus\"\n nzTheme=\"outline\"></span>\u6DFB\u52A0</a>\n }\n \u5171{{ total }}\u6761\u6570\u636E\uFF0C\u7B2C{{ range[0] }}-{{ range[1] }}\u6761\n </ng-template>\n <ng-template #footer>\n <a (click)=\"addRow()\"><span nz-icon nzType=\"plus\" nzTheme=\"outline\"></span>\u6DFB\u52A0</a>\n </ng-template>\n </nz-table>\n</form>", styles: [":host{display:block}.row-status{width:0;position:relative}.row-status:before{content:\"\";display:block;width:5px;height:17px;border-radius:5px;position:absolute;z-index:1;left:50%;top:50%;transform:translate(4px,-50%)}.invalid:before{background-color:#ff4d4f}.success:before{background-color:#7ed321}.ignore:before{background-color:#9b9b9b}:host ::ng-deep .ant-table-placeholder .ant-table-expanded-row-fixed{margin:-8px -10px}th nz-form-label ::ng-deep label{height:unset}\n"] }]
361
- }], ctorParameters: () => [] });
257
+ args: [{ selector: 'axis-edit-table', imports: [NzTableModule, ReactiveFormsModule, NzFormModule, NzResizableModule, ScopeDirective, DynamicDirective, NzButtonModule, NzPopconfirmModule, NzIconModule, NzEmptyModule], changeDetection: ChangeDetectionStrategy.OnPush, providers: [DatePipe, DecimalPipe, PercentPipe, TableFieldDisplayService, TableService, SelectService], template: "<form #form nz-form [formGroup]=\"fg\">\n <nz-table #table [nzSize]=\"options.size()\" [nzData]=\"rowData()\" [nzBordered]=\"options.bordered()\"\n [nzOuterBordered]=\"options.outerBordered()\" [nzShowPagination]=\"options.showPagination()\"\n [nzFrontPagination]=\"options.showPagination()\" [nzPageSize]=\"options.pageSize()\"\n [nzShowSizeChanger]=\"options.showSizeChanger()\" [nzPageSizeOptions]=\"tableSvc.pageSizeOptions()\"\n [nzShowTotal]=\"options.showDataSize()?totalRange:null\" [nzScroll]=\"scroll()\"\n [nzFooter]=\"!options.showPagination() && !disabledAppend() && rowData().length?footer:null\"\n [nzNoResult]=\"noResult\" [(nzPageIndex)]=\"pageIndex\">\n <thead>\n <tr>\n @if (options.showCheckbox()) {\n @if ( !options.singleCheck()) {\n <th nzLeft [nzChecked]=\"select.headerChecked()!='none'\"\n [nzIndeterminate]=\"select.headerChecked()=='indeterminate'\"\n (nzCheckedChange)=\"select.onAllChecked($event)\" nzAlign=\"center\"\n [nzWidth]=\"tableSvc.leaderFieldWidth()-10+'px'\">\n </th>\n }@else {\n <th nzLeft [nzWidth]=\"tableSvc.leaderFieldWidth()-10+'px'\"></th>\n }\n }\n <th nzWidth=\"0 !important\" nzLeft></th>\n @if (options.showOrder()) {\n <th nzAlign=\"center\" [nzWidth]=\"tableSvc.leaderFieldWidth()+'px'\">\u5E8F\u53F7</th>\n }\n @for (f of fields(); track f.field();let i=$index) {\n @if (f.inuse()) {\n <th [attr.data-index]=\"i\" nz-resizable nzBounds=\"window\" [nzDisabled]=\"!f.width()\"\n [nzWidth]=\"f.width() == null ?null:f.width()+'px'\" (nzResize)=\"f.width.set($event.width??null)\"\n [nzShowSort]=\"f.sortAble()\" [nzSortFn]=\"tableSvc.fieldsControlsMap()[f.field()]?.sortFn\"\n [nzSortOrder]=\"f.sortOrder()\" [nzSortPriority]=\"f.sortPriority()??false\"\n [nzShowFilter]=\"f.filterAble()\"\n [nzFilters]=\"tableSvc.fieldsControlsMap()[f.field()]?.filterItems ?? []\"\n [nzFilterFn]=\"tableSvc.fieldsControlsMap()[f.field()]?.filterFn\"\n (nzFilterChange)=\"tableSvc.filterChange(f.field(),$event)\" [nzFilterMultiple]=\"f.filterMultiple()\"\n [nzAlign]=\"f.align()\" [nzLeft]=\"f.freezeMode()=='left'\" [nzRight]=\"f.freezeMode()=='right'\">\n <nz-form-label [nzNoColon]=\"true\" [nzRequired]=\"idRequired(f)\">\n {{f.title()}}\n </nz-form-label>\n </th>\n }\n }\n @if(!options.disabledRemove()){\n <th nzRight nzAlign=\"center\" nzWidth=\"80px\" data-rowactions>\u64CD\u4F5C</th>\n }\n </tr>\n </thead>\n <tbody formArrayName=\"values\">\n @for (data of table.data; track data.key;let i=$index) {\n <tr [formGroupName]=\"(table.nzPageIndex-1) * table.nzPageSize + i\" [axisScope]=\"options.id+'.row'\"\n scopeName=\"\u53EF\u7F16\u8F91\u8868\u683C\u884C\" [dataSources]=\"[{name:'row',type:'local',data:data.control.value}]\">\n @if (options.showCheckbox()) {\n <td nzLeft [nzChecked]=\"select.setOfCheckedId.has(data.key)\"\n [nzIndeterminate]=\"select.setOfIndeterminateId.has(data.key)\"\n [nzDisabled]=\"select.setOfDisabledId().has(data.key)\"\n (nzCheckedChange)=\"select.onItemChecked(data, $event)\" nzAlign=\"center\"></td>\n }\n <td class=\"row-status\" nzLeft [class]=\"data.status()\"></td>\n @if (options.showOrder()) {\n <td nzAlign=\"center\">{{(table.nzPageIndex-1) * table.nzPageSize + i+1}}</td>\n }\n @for (f of fields(); track f.field();let i=$index) {\n @if (f.inuse()) {\n <td [nzLeft]=\"f.freezeMode()=='left'\" [attr.data-index]=\"i\" [nzRight]=\"f.freezeMode()=='right'\"\n [nzAlign]=\"f.align()\">\n <nz-form-item style=\"margin-bottom: 0;\">\n <nz-form-control>\n <ng-container [axisDynamic]=\"f.child()\" [formControlName]=\"f.field()\"></ng-container>\n </nz-form-control>\n </nz-form-item>\n </td>\n }\n }\n @if(!options.disabledRemove()){\n <td nzRight>\n <button nz-button nzDanger nzType=\"link\" nz-popconfirm nzPopconfirmTitle=\"\u786E\u8BA4\u5220\u9664\uFF1F\"\n [nzCondition]=\"data.status()=='ignore'\" [disabled]=\"data.disabledRemove()\"\n (nzOnConfirm)=\"removeRow((table.nzPageIndex-1) * table.nzPageSize + i)\">\u5220\u9664</button>\n </td>\n }\n </tr>\n }\n </tbody>\n <ng-template #noResult>\n <nz-empty [nzNotFoundContent]=\"addbtn\"></nz-empty>\n <ng-template #addbtn>\n \u6682\u65E0\u6570\u636E@if (!disabledAppend()) {\uFF0C<a (click)=\"addRow()\">\u6DFB\u52A0</a>}\n </ng-template>\n </ng-template>\n <ng-template #totalRange let-range=\"range\" let-total>\n @if (!disabledAppend()) {\n <a style=\"position:absolute;left:24px\" (click)=\"addRow()\"><span nz-icon nzType=\"plus\"\n nzTheme=\"outline\"></span>\u6DFB\u52A0</a>\n }\n \u5171{{ total }}\u6761\u6570\u636E\uFF0C\u7B2C{{ range[0] }}-{{ range[1] }}\u6761\n </ng-template>\n <ng-template #footer>\n <a (click)=\"addRow()\"><span nz-icon nzType=\"plus\" nzTheme=\"outline\"></span>\u6DFB\u52A0</a>\n </ng-template>\n </nz-table>\n</form>", styles: [":host{display:block}.row-status{width:0;position:relative}.row-status:before{content:\"\";display:block;width:5px;height:17px;border-radius:5px;position:absolute;z-index:1;left:50%;top:50%;transform:translate(4px,-50%)}.invalid:before{background-color:#ff4d4f}.success:before{background-color:#7ed321}.ignore:before{background-color:#9b9b9b}:host ::ng-deep .ant-table-placeholder .ant-table-expanded-row-fixed{margin:-8px -10px}th nz-form-label ::ng-deep label{height:unset}\n"] }]
258
+ }], ctorParameters: () => [{ type: i1.TableService }, { type: i1.SelectService }] });
362
259
 
363
260
  /**
364
261
  * Generated bundle index. Do not edit.
@@ -1 +1 @@
1
- {"version":3,"file":"ngx-axis-appforge-axis-components-edit-table.mjs","sources":["../../../axis-components/edit-table/edit-table.options.ts","../../../axis-components/edit-table/select.ts","../../../axis-components/edit-table/edit-table.ts","../../../axis-components/edit-table/edit-table.html","../../../axis-components/edit-table/ngx-axis-appforge-axis-components-edit-table.ts"],"sourcesContent":["import { signal } from \"@angular/core\";\nimport { ValueAccessOptions } from \"ngx-axis-appforge/core\";\n\nexport class EditTableOptions extends ValueAccessOptions {\n readonly disabledAppend = signal(false);\n readonly disabledRemove = signal(false);\n readonly disabledRemoveFn = signal(\"\");\n readonly maxLength = signal<number | null>(null);\n readonly addInitData = signal<any>(undefined);\n readonly size = signal<'middle' | 'small' | 'default'>(\"middle\");\n readonly showOrder = signal(true);\n readonly showDataSize = signal(true);\n readonly bordered = signal(false);\n readonly outerBordered = signal(false);\n readonly width = signal<string | undefined>(undefined);\n readonly showCheckbox = signal(false);\n readonly checkedFormName = signal<string>(\"checked\");\n readonly singleCheck = signal(false);\n readonly disableCheckboxFn = signal<string | undefined>(undefined);\n readonly defaultSelectFirstRow = signal(false);\n readonly showTotal = signal(false);\n readonly totalTitle = signal(\"合计\");\n readonly showSubTotal = signal(false);\n readonly showPagination = signal(true);\n readonly pageSize = signal(10);\n readonly showSizeChanger = signal(true);\n readonly pageSizeOptions = signal(\"10,20,50,100\");\n readonly fields = signal<any[]>([]);\n}\n\nexport class EditTableFieldOptions {\n readonly inuse = signal(true);\n readonly field = signal(\"unknown\");\n readonly title = signal(\"未命名\");\n readonly sortAble = signal(false);\n readonly sortOrder = signal<\"descend\" | \"ascend\" | null>(null);\n readonly sortPriority = signal<number | null>(null);\n readonly filterAble = signal(false);\n readonly filterMultiple = signal(false);\n readonly filterDisplayFn = signal(\"\");\n readonly width = signal<number | null>(null);\n readonly align = signal<'left' | 'right' | 'center'>(\"left\");\n readonly freezeMode = signal<'none' | 'left' | 'right'>(\"none\");\n readonly totalAble = signal(false);\n readonly totalFn = signal<string | undefined>(undefined);\n readonly validators = signal<any[]>([]);\n readonly child = signal<any>(undefined);\n}","import { computed, Signal, signal } from \"@angular/core\";\nimport { fn, ScopeDirective } from 'ngx-axis-appforge/core';\nimport { EditTableOptions } from \"./edit-table.options\";\nimport { EditTableRowData } from \"./edit-table\";\n\nexport class Select {\n\n constructor(private options: EditTableOptions, private rowData: Signal<EditTableRowData[]>, private scope: ScopeDirective | null) { }\n\n readonly headerChecked = signal<\"checked\" | \"indeterminate\" | \"none\">(\"none\");\n setOfCheckedId = new Set();\n setOfIndeterminateId = new Set();\n setOfDisabledId = computed(() => this.buildDisabledId());\n\n private buildDisabledId(): Set<string> {\n if (this.options.disableCheckboxFn()) {\n const args = this.scope?.snapshotAll() ?? {};\n return new Set(this.rowData()?.filter(row => this.scope?.runFnWithSnapshot(this.options.disableCheckboxFn()!, Object.assign({}, args, { row })))\n .map(row => row.key));\n }\n return new Set<string>();\n }\n\n onAllChecked(checked: boolean) {\n this.rowData()?.filter(row => !this.setOfDisabledId().has(row.key))?.forEach(row => this.updateCheckedSet(row, checked));\n this.refreshCheckedStatus();\n this.refreshCheckedFormValue();\n }\n\n toggleChecked(row: EditTableRowData) {\n if (this.options.showCheckbox() && !this.setOfDisabledId().has(row.key)) {\n console.log(\"toggleChecked\");\n this.onItemChecked(row, !this.setOfCheckedId.has(row.key));\n }\n }\n\n onItemChecked(row: EditTableRowData, checked: boolean): void {\n this.updateCheckedSet(row, checked);\n this.refreshCheckedStatus();\n this.refreshCheckedFormValue();\n }\n\n updateCheckedSet(row: EditTableRowData, checked: boolean): void {\n const key = row.key;\n if (checked && !this.setOfCheckedId.has(key)) {\n if (this.options.singleCheck()) {\n this.setOfCheckedId.clear();\n }\n this.setOfCheckedId.add(key);\n } else if (!checked && this.setOfCheckedId.has(key)) {\n this.setOfCheckedId.delete(key);\n }\n }\n\n refreshCheckedStatus(): void {\n const listOfEnabledData = this.rowData()?.filter(row => !this.setOfDisabledId().has(row.key)) ?? [];\n const checked = listOfEnabledData.length > 0 && listOfEnabledData.every(row => this.setOfCheckedId.has(row.key) && !this.setOfIndeterminateId.has(row.key));\n if (checked) {\n this.headerChecked.set(\"checked\");\n } else {\n const indeterminate = listOfEnabledData.some(row => this.setOfCheckedId.has(row.key) || this.setOfIndeterminateId.has(row.key)) && !checked;\n this.headerChecked.set(indeterminate ? \"indeterminate\" : \"none\");\n }\n console.log(\"headerChecked\", this.headerChecked())\n }\n\n refreshCheckedFormValue() {\n this.rowData().forEach(row => {\n const v = this.setOfCheckedId.has(row.key);\n if (!!row.control.value[this.options.checkedFormName()] != v) {\n row.control.patchValue({ [this.options.checkedFormName()]: v });\n }\n });\n }\n\n getSelectedData(): EditTableRowData[] | undefined {\n return this.rowData()?.filter(row => this.setOfCheckedId.has(row.key));\n }\n}","import { ChangeDetectionStrategy, Component, computed, effect, inject, model, OnDestroy, OnInit, signal, WritableSignal } from '@angular/core';\nimport { buildValidators, DynamicDirective, fn, ScopeDirective, updateAndValidAll, ValueAccess } from 'ngx-axis-appforge/core';\nimport { EditTableFieldOptions, EditTableOptions } from './edit-table.options';\nimport { NzTableFilterList, NzTableModule } from 'ng-zorro-antd/table';\nimport { AbstractControl, FormArray, FormBuilder, ReactiveFormsModule, UntypedFormGroup } from '@angular/forms';\nimport { NzFormModule } from 'ng-zorro-antd/form';\nimport { Select } from './select';\nimport { NzResizableModule } from 'ng-zorro-antd/resizable';\nimport { NzButtonModule } from 'ng-zorro-antd/button';\nimport { NzPopconfirmModule } from 'ng-zorro-antd/popconfirm';\nimport { debounceTime, Subscription } from 'rxjs';\nimport { NzIconModule } from 'ng-zorro-antd/icon';\nimport { NzEmptyModule } from 'ng-zorro-antd/empty';\n\n@Component({\n selector: 'axis-edit-table',\n templateUrl: './edit-table.html',\n imports: [NzTableModule, ReactiveFormsModule, NzFormModule, NzResizableModule, ScopeDirective, DynamicDirective, NzButtonModule, NzPopconfirmModule, NzIconModule, NzEmptyModule],\n styleUrl: './edit-table.css',\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class EditTable extends ValueAccess<EditTableOptions> implements OnInit, OnDestroy {\n\n constructor() {\n effect(() => {\n this.fields().forEach((f, i) => {\n this.bindWithConfig(this.options.fields()[i], { options: f, tag: `bindField.${i}` });\n });\n });\n super();\n this.addSubscribe(this.fa.valueChanges.pipe(debounceTime(300)).subscribe(v => {\n this.formValueToValue();\n this.onChange?.(this.value());\n }));\n }\n\n override options: EditTableOptions = new EditTableOptions();\n private readonly fb = inject(FormBuilder);\n readonly fg: UntypedFormGroup = this.fb.group({\n values: this.fb.array([])\n });\n get fa(): FormArray<AbstractControl> {\n return this.fg.get(\"values\") as FormArray<AbstractControl>;\n }\n readonly rowData = signal<EditTableRowData[]>([]);\n readonly select = new Select(this.options, this.rowData, this.getScope());\n readonly pageSizeOptions = computed(() => this.options.pageSizeOptions().split(\",\").map(size => +size));\n readonly scroll = computed(() => this.buildScoll());\n readonly fields = computed(() => this.buildFields());\n readonly leaderFieldWidth = computed(() => this.buildLeaderFieldWidth());\n readonly fieldsControlsMap = computed(() => this.buildFieldControls());\n readonly setOfDisabledRemoveId = signal(new Set<string>());\n readonly disabledAppend = computed(() => this.options.readonly() || this.options.disabled() || this.options.disabledAppend() || (this.options.maxLength() != null && this.rowData().length >= this.options.maxLength()!));\n readonly disabledRemove = computed(() => this.options.readonly() || this.options.disabled() || this.options.disabledRemove());\n readonly pageIndex = model<number>(1);\n\n ngOnInit(): void {\n this.registeValueAccess?.({\n validFn: (control: AbstractControl) => {\n return updateAndValidAll(this.fg, { markAsDirty: control.dirty })\n }\n });\n }\n\n idRequired(field: EditTableFieldOptions): boolean {\n return field.validators()?.filter(v => !v.disabled).some(v => v.type == \"required\");\n }\n\n private buildFields(): EditTableFieldOptions[] {\n return this.options.fields().map(f => new EditTableFieldOptions());\n }\n\n private buildScoll() {\n let x = 0;\n if (this.options.showCheckbox()) {\n x += this.leaderFieldWidth();\n }\n if (this.options.showOrder()) {\n x += this.leaderFieldWidth();\n }\n this.fields().filter(f => f.inuse()).forEach(f => {\n if (f.width()) {\n x += f.width()!;\n } else {\n x += 120;\n }\n });\n return { x: x + \"px\", y: \"\" };\n }\n\n private buildLeaderFieldWidth(): number {\n switch (this.options.size()) {\n case \"small\":\n return 45;\n case \"middle\":\n return 50;\n default:\n return 65;\n }\n }\n\n private buildFieldControls(): { [field: string]: { sortFn?: any, filterItems?: NzTableFilterList, filterFn?: any } | undefined } {\n const res: { [field: string]: { sortFn?: any, filterItems?: NzTableFilterList, filterFn?: any } } = {};\n for (const field of this.fields().filter(f => f.inuse())) {\n res[field.field()] = {};\n if (field.filterAble()) {\n const valueMap = new Map<any, any>();\n for (const row of this.rowData() ?? []) {\n valueMap.set(row.control.value[field.field()], row.control.value);\n }\n res[field.field()].filterItems = Array.from(valueMap.entries()).map(en => {\n let text = en[0];\n if (field.filterDisplayFn()) {\n text = this.getScope()?.runFnWithSnapshot(field.filterDisplayFn(), { value: en[0], row: en[1] });\n }\n return { text, value: en[0] };\n });\n res[field.field()].filterFn = (fd: any[] | any, row: any) => {\n if (fd instanceof Array) {\n return fd.includes(row[field.field()]);\n } else {\n return fd == row[field.field()];\n }\n };\n }\n if (field.sortAble()) {\n if (this.rowData()?.some((r) => r.control.value[field.field()] != undefined && typeof (r.control.value) == \"number\")) {\n res[field.field()].sortFn = (a: any, b: any) => a[field.field()] - b[field.field()];\n } else {\n res[field.field()].sortFn = (a: any, b: any) => {\n return ((a[field.field()] || \"\") + \"\").localeCompare(b[field.field()])\n };\n }\n }\n }\n return res;\n }\n\n override writeValue(value: any): void {\n super.writeValue(value);\n this.valueToFormValue();\n }\n\n override setInitValue(value: any): void {\n super.setInitValue(value);\n this.valueToFormValue();\n }\n\n valueToFormValue() {\n this.fa.clear({ emitEvent: false });\n const rowData: EditTableRowData[] = [];\n if (Array.isArray(this.value())) {\n for (const v of this.value()) {\n const row = this.buildRow();\n rowData.push(row);\n this.fa.push(row.control, { emitEvent: false });\n }\n this.fa.patchValue(this.value(), { emitEvent: false });\n for (const row of rowData) {\n this.refreshStatus(row);\n }\n }\n this.rowData.set(rowData);\n }\n\n formValueToValue() {\n this.value.set(this.rowData().filter(row => row.status() != \"ignore\").map((row) => row.control.value));\n }\n\n buildRow(): EditTableRowData {\n const group: any = {};\n if (this.options.showCheckbox() && this.options.checkedFormName()) {\n group[this.options.checkedFormName()] = [false];\n }\n this.fields().filter(r => r.field()).forEach(f => {\n group[f.field()] = [undefined];\n if (f.validators()) {\n const validators = buildValidators(f.validators());\n group[f.field()][1] = validators[0];\n }\n });\n const status = signal<'ignore' | 'invalid' | 'success'>(\"ignore\");\n const disabledRemove = signal(false);\n const control = this.fb.group(group);\n const rowData = {\n key: Math.random().toString().replace(/^\\d\\./, \"\"),\n status,\n control,\n subs: [\n control.valueChanges.pipe(debounceTime(300)).subscribe(v => {\n this.refreshStatus(rowData);\n })\n ],\n disabledRemove\n };\n return rowData;\n }\n\n addRow() {\n const row = this.buildRow();\n this.fa.push(row.control, { emitEvent: false });\n this.rowData().push(row);\n this.rowData.set([...this.rowData()]);\n if (this.options.addInitData()) {\n row.control.patchValue(this.options.addInitData());\n this.refreshStatus(row);\n }\n if (this.options.showPagination()) {\n this.pageIndex.set(Math.ceil(this.rowData().length / (this.options.pageSize() || 10)));\n }\n }\n\n removeRow(index: number) {\n this.fa.removeAt(index);\n this.rowData().splice(index, 1);\n this.rowData.set([...this.rowData()]);\n }\n\n refreshStatus(row: EditTableRowData) {\n const ignore = Object.entries(row.control.value).filter(en => !this.options.showCheckbox() || en[0] != this.options.checkedFormName() || en[1]).every(en => {\n if (en[1] == null) {\n return true;\n }\n if (en[1] instanceof Array) {\n return !en[1].length;\n }\n if (typeof (en[1]) == \"number\") {\n return false;\n }\n return !en[1];\n });\n if (!ignore) {\n row.status.set(row.control.invalid ? 'invalid' : 'success');\n row.disabledRemove.set(this.getScope()?.runFnWithSnapshot(this.options.disabledRemoveFn(), { row: row.control.value }));\n } else {\n row.status.set('ignore');\n row.disabledRemove.set(false);\n }\n }\n\n override ngOnDestroy(): void {\n super.ngOnDestroy();\n this.rowData().forEach(row => {\n row.subs.forEach(s => s.unsubscribe());\n });\n }\n\n}\n\n\nexport interface EditTableRowData {\n key: string;\n status: WritableSignal<'ignore' | 'invalid' | 'success'>;\n control: AbstractControl;\n subs: Subscription[];\n disabledRemove: WritableSignal<boolean>\n}","<form #form nz-form [formGroup]=\"fg\">\n <nz-table #table [nzSize]=\"options.size()\" [nzData]=\"rowData()\" [nzBordered]=\"options.bordered()\"\n [nzOuterBordered]=\"options.outerBordered()\" [nzShowPagination]=\"options.showPagination()\"\n [nzFrontPagination]=\"options.showPagination()\" [nzPageSize]=\"options.pageSize()\"\n [nzShowSizeChanger]=\"options.showSizeChanger()\" [nzPageSizeOptions]=\"pageSizeOptions()\"\n [nzShowTotal]=\"options.showDataSize()?totalRange:null\" [nzScroll]=\"scroll()\"\n [nzFooter]=\"!options.showPagination() && !disabledAppend() && rowData().length?footer:null\"\n [nzNoResult]=\"noResult\" [(nzPageIndex)]=\"pageIndex\">\n <thead>\n <tr>\n @if (options.showCheckbox()) {\n @if ( !options.singleCheck()) {\n <th nzLeft [nzChecked]=\"select.headerChecked()!='none'\"\n [nzIndeterminate]=\"select.headerChecked()=='indeterminate'\"\n (nzCheckedChange)=\"select.onAllChecked($event)\" nzAlign=\"center\"\n [nzWidth]=\"leaderFieldWidth()-10+'px'\">\n </th>\n }@else {\n <th nzLeft [nzWidth]=\"leaderFieldWidth()-10+'px'\"></th>\n }\n }\n <th nzWidth=\"0 !important\" nzLeft></th>\n @if (options.showOrder()) {\n <th nzAlign=\"center\" [nzWidth]=\"leaderFieldWidth()+'px'\">序号</th>\n }\n @for (f of fields(); track f.field();let i=$index) {\n @if (f.inuse()) {\n <th [attr.data-index]=\"i\" nz-resizable nzBounds=\"window\" [nzDisabled]=\"!f.width()\"\n [nzWidth]=\"f.width() == null ?null:f.width()+'px'\" (nzResize)=\"f.width.set($event.width??null)\"\n [nzShowSort]=\"f.sortAble()\" [nzSortFn]=\"fieldsControlsMap()[f.field()]?.sortFn\"\n [nzSortOrder]=\"f.sortOrder()\" [nzSortPriority]=\"f.sortPriority()??false\"\n [nzShowFilter]=\"f.filterAble()\" [nzFilters]=\"fieldsControlsMap()[f.field()]?.filterItems ?? []\"\n [nzFilterFn]=\"fieldsControlsMap()[f.field()]?.filterFn\" [nzFilterMultiple]=\"f.filterMultiple()\"\n [nzAlign]=\"f.align()\" [nzLeft]=\"f.freezeMode()=='left'\" [nzRight]=\"f.freezeMode()=='right'\">\n <nz-form-label [nzNoColon]=\"true\" [nzRequired]=\"idRequired(f)\">\n {{f.title()}}\n </nz-form-label>\n </th>\n }\n }\n @if(!options.disabledRemove()){\n <th nzRight nzAlign=\"center\" nzWidth=\"80px\" data-rowactions>操作</th>\n }\n </tr>\n </thead>\n <tbody formArrayName=\"values\">\n @for (data of table.data; track data.key;let i=$index) {\n <tr [formGroupName]=\"(table.nzPageIndex-1) * table.nzPageSize + i\" [axisScope]=\"options.id+'.row'\"\n scopeName=\"可编辑表格行\" [dataSources]=\"[{name:'row',type:'local',data:data.control.value}]\">\n @if (options.showCheckbox()) {\n <td nzLeft [nzChecked]=\"select.setOfCheckedId.has(data.key)\"\n [nzIndeterminate]=\"select.setOfIndeterminateId.has(data.key)\"\n [nzDisabled]=\"select.setOfDisabledId().has(data.key)\"\n (nzCheckedChange)=\"select.onItemChecked(data, $event)\" nzAlign=\"center\"></td>\n }\n <td class=\"row-status\" nzLeft [class]=\"data.status()\"></td>\n @if (options.showOrder()) {\n <td nzAlign=\"center\">{{(table.nzPageIndex-1) * table.nzPageSize + i+1}}</td>\n }\n @for (f of fields(); track f.field();let i=$index) {\n @if (f.inuse()) {\n <td [nzLeft]=\"f.freezeMode()=='left'\" [attr.data-index]=\"i\" [nzRight]=\"f.freezeMode()=='right'\"\n [nzAlign]=\"f.align()\">\n <nz-form-item style=\"margin-bottom: 0;\">\n <nz-form-control>\n <ng-container [axisDynamic]=\"f.child()\" [formControlName]=\"f.field()\"></ng-container>\n </nz-form-control>\n </nz-form-item>\n </td>\n }\n }\n @if(!options.disabledRemove()){\n <td nzRight>\n <button nz-button nzDanger nzType=\"link\" nz-popconfirm nzPopconfirmTitle=\"确认删除?\"\n [nzCondition]=\"data.status()=='ignore'\" [disabled]=\"data.disabledRemove()\"\n (nzOnConfirm)=\"removeRow((table.nzPageIndex-1) * table.nzPageSize + i)\">删除</button>\n </td>\n }\n </tr>\n }\n </tbody>\n <ng-template #noResult>\n <nz-empty [nzNotFoundContent]=\"addbtn\"></nz-empty>\n <ng-template #addbtn>\n 暂无数据@if (!disabledAppend()) {,<a (click)=\"addRow()\">添加</a>}\n </ng-template>\n </ng-template>\n <ng-template #totalRange let-range=\"range\" let-total>\n @if (!disabledAppend()) {\n <a style=\"position:absolute;left:24px\" (click)=\"addRow()\"><span nz-icon nzType=\"plus\"\n nzTheme=\"outline\"></span>添加</a>\n }\n 共{{ total }}条数据,第{{ range[0] }}-{{ range[1] }}条\n </ng-template>\n <ng-template #footer>\n <a (click)=\"addRow()\"><span nz-icon nzType=\"plus\" nzTheme=\"outline\"></span>添加</a>\n </ng-template>\n </nz-table>\n</form>","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './edit-table';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ngx-axis-appforge-axis-components-edit-table.mjs","sources":["../../../axis-components/edit-table/edit-table.options.ts","../../../axis-components/edit-table/edit-table.ts","../../../axis-components/edit-table/edit-table.html","../../../axis-components/edit-table/ngx-axis-appforge-axis-components-edit-table.ts"],"sourcesContent":["import { signal, WritableSignal } from \"@angular/core\";\nimport { BaseTableFieldOptions, BaseTableOptions, SelectableTableOptions, ValueAccessOptions } from \"ngx-axis-appforge/core\";\n\nexport class EditTableOptions extends ValueAccessOptions implements BaseTableOptions, SelectableTableOptions {\n readonly disabledAppend = signal(false);\n readonly disabledRemove = signal(false);\n readonly disabledRemoveFn = signal(\"\");\n readonly maxLength = signal<number | null>(null);\n readonly addInitData = signal<any>(undefined);\n readonly size = signal<'middle' | 'small' | 'default'>(\"middle\");\n readonly showOrder = signal(true);\n readonly showDataSize = signal(true);\n readonly bordered = signal(false);\n readonly outerBordered = signal(false);\n readonly width = signal<number | undefined>(undefined);\n readonly showCheckbox = signal(false);\n readonly checkedFormName = signal<string>(\"checked\");\n readonly singleCheck = signal(false);\n readonly disableCheckboxFn = signal<string | undefined>(undefined);\n readonly defaultSelectFirstRow = signal(false);\n readonly checkboxLinkageForExpand = signal(false);\n readonly showTotal = signal(false);\n readonly totalTitle = signal(\"合计\");\n readonly showSubTotal = signal(false);\n readonly showPagination = signal(true);\n readonly pageSize = signal(10);\n readonly showSizeChanger = signal(true);\n readonly pageSizeOptions = signal(\"10,20,50,100\");\n readonly fields = signal<any[]>([]);\n}\n\nexport class EditTableFieldOptions implements BaseTableFieldOptions {\n readonly inuse = signal(true);\n readonly field = signal(\"unknown\");\n readonly title = signal(\"未命名\");\n readonly sortAble = signal(false);\n readonly sortOrder = signal<\"descend\" | \"ascend\" | null>(null);\n readonly sortPriority = signal<number | null>(null);\n readonly filterAble = signal(false);\n readonly filterMultiple = signal(false);\n readonly filterDisplayFn = signal(\"\");\n readonly width = signal<number | null>(null);\n readonly align = signal<'left' | 'right' | 'center'>(\"left\");\n readonly freezeMode = signal<'none' | 'left' | 'right'>(\"none\");\n readonly totalAble = signal(false);\n readonly totalFn = signal<string | undefined>(undefined);\n readonly validators = signal<any[]>([]);\n readonly child = signal<any>(undefined);\n}","import { ChangeDetectionStrategy, Component, computed, effect, inject, model, OnDestroy, OnInit, signal, WritableSignal } from '@angular/core';\nimport { buildValidators, DynamicDirective, ScopeDirective, SelectService, TableFieldDisplayService, TableService, updateAndValidAll, ValueAccess } from 'ngx-axis-appforge/core';\nimport { EditTableFieldOptions, EditTableOptions } from './edit-table.options';\nimport { NzTableModule } from 'ng-zorro-antd/table';\nimport { AbstractControl, FormArray, FormBuilder, ReactiveFormsModule, UntypedFormGroup } from '@angular/forms';\nimport { NzFormModule } from 'ng-zorro-antd/form';\nimport { NzResizableModule } from 'ng-zorro-antd/resizable';\nimport { NzButtonModule } from 'ng-zorro-antd/button';\nimport { NzPopconfirmModule } from 'ng-zorro-antd/popconfirm';\nimport { debounceTime, distinctUntilChanged, filter, map, merge, Subscription } from 'rxjs';\nimport { NzIconModule } from 'ng-zorro-antd/icon';\nimport { NzEmptyModule } from 'ng-zorro-antd/empty';\nimport { DatePipe, DecimalPipe, PercentPipe } from '@angular/common';\n\n@Component({\n selector: 'axis-edit-table',\n templateUrl: './edit-table.html',\n imports: [NzTableModule, ReactiveFormsModule, NzFormModule, NzResizableModule, ScopeDirective, DynamicDirective, NzButtonModule, NzPopconfirmModule, NzIconModule, NzEmptyModule],\n styleUrl: './edit-table.css',\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [DatePipe, DecimalPipe, PercentPipe, TableFieldDisplayService, TableService, SelectService]\n})\nexport class EditTable extends ValueAccess<EditTableOptions> implements OnInit, OnDestroy {\n\n constructor(public tableSvc: TableService<EditTableOptions, EditTableFieldOptions>, public select: SelectService) {\n effect(() => {\n this.fields().forEach((f, i) => {\n this.bindWithConfig(this.options.fields()[i], { options: f, tag: `bindField.${i}` });\n });\n });\n super();\n effect(() => {\n this.tableSvc.init({ data: this.rowData, options: this.options, fields: this.fields, getRow: (row) => row.control.value, cacheFilterItem: false });\n this.select.init({ options: this.options, keyField: \"key\", data: this.rowData, onSelectedChange: (ids) => this.onSelectedChange(ids) })\n });\n effect(() => {\n this.addSubscribe(merge(...this.rowData().map(r => merge(...this.tableSvc.displayFields().filter(f => f.filterAble()).map(f => r.control.get(f.field())!.valueChanges.pipe(map(() => f.field()), debounceTime(100))))))\n .subscribe((f) => this.tableSvc.refreshFieldControls(f)));\n });\n this.addSubscribe(this.fa.valueChanges.pipe(debounceTime(300)).subscribe(v => {\n this.formValueToValue();\n this.onChange?.(this.value());\n }));\n }\n\n override options: EditTableOptions = new EditTableOptions();\n private readonly fb = inject(FormBuilder);\n readonly fg: UntypedFormGroup = this.fb.group({\n values: this.fb.array([])\n });\n get fa(): FormArray<AbstractControl> {\n return this.fg.get(\"values\") as FormArray<AbstractControl>;\n }\n readonly rowData = signal<EditTableRowData[]>([]);\n readonly scroll = computed(() => this.buildScoll());\n readonly fields = computed(() => this.buildFields());\n readonly setOfDisabledRemoveId = signal(new Set<string>());\n readonly disabledAppend = computed(() => this.options.readonly() || this.options.disabled() || this.options.disabledAppend() || (this.options.maxLength() != null && this.rowData().length >= this.options.maxLength()!));\n readonly disabledRemove = computed(() => this.options.readonly() || this.options.disabled() || this.options.disabledRemove());\n readonly pageIndex = model<number>(1);\n\n ngOnInit(): void {\n this.registeValueAccess?.({\n validFn: (control: AbstractControl) => {\n return updateAndValidAll(this.fg, { markAsDirty: control.dirty })\n }\n });\n }\n\n idRequired(field: EditTableFieldOptions): boolean {\n return field.validators()?.filter(v => !v.disabled).some(v => v.type == \"required\");\n }\n\n private buildFields(): EditTableFieldOptions[] {\n return this.options.fields().map(f => new EditTableFieldOptions());\n }\n\n private buildScoll() {\n let x = 0;\n if (this.options.showCheckbox()) {\n x += this.tableSvc.leaderFieldWidth();\n }\n if (this.options.showOrder()) {\n x += this.tableSvc.leaderFieldWidth();\n }\n this.fields().filter(f => f.inuse()).forEach(f => {\n if (f.width()) {\n x += f.width()!;\n } else {\n x += 120;\n }\n });\n return { x: x + \"px\", y: \"\" };\n }\n\n override writeValue(value: any): void {\n super.writeValue(value);\n this.valueToFormValue();\n }\n\n override setInitValue(value: any): void {\n super.setInitValue(value);\n this.valueToFormValue();\n }\n\n valueToFormValue() {\n this.fa.clear({ emitEvent: false });\n const rowData: EditTableRowData[] = [];\n if (Array.isArray(this.value())) {\n for (const v of this.value()) {\n const row = this.buildRow();\n rowData.push(row);\n this.fa.push(row.control, { emitEvent: false });\n }\n this.fa.patchValue(this.value(), { emitEvent: false });\n for (const row of rowData) {\n this.refreshStatus(row);\n }\n }\n this.rowData.set(rowData);\n }\n\n formValueToValue() {\n this.value.set(this.rowData().filter(row => row.status() != \"ignore\").map((row) => row.control.value));\n }\n\n buildRow(): EditTableRowData {\n const group: any = {};\n if (this.options.showCheckbox() && this.options.checkedFormName()) {\n group[this.options.checkedFormName()] = [false];\n }\n this.fields().filter(r => r.field()).forEach(f => {\n group[f.field()] = [undefined];\n if (f.validators()) {\n const validators = buildValidators(f.validators());\n group[f.field()][1] = validators[0];\n }\n });\n const status = signal<'ignore' | 'invalid' | 'success'>(\"ignore\");\n const disabledRemove = signal(false);\n const control = this.fb.group(group);\n const rowData = {\n key: Math.random().toString().replace(/^\\d\\./, \"\"),\n status,\n control,\n subs: [\n control.valueChanges.pipe(debounceTime(300)).subscribe(v => {\n this.refreshStatus(rowData);\n })\n ],\n disabledRemove\n };\n return rowData;\n }\n\n addRow() {\n const row = this.buildRow();\n this.fa.push(row.control, { emitEvent: false });\n this.rowData().push(row);\n this.rowData.set([...this.rowData()]);\n if (this.options.addInitData()) {\n row.control.patchValue(this.options.addInitData());\n this.refreshStatus(row);\n }\n if (this.options.showPagination()) {\n this.pageIndex.set(Math.ceil(this.rowData().length / (this.options.pageSize() || 10)));\n }\n }\n\n removeRow(index: number) {\n this.fa.removeAt(index);\n this.rowData().splice(index, 1);\n this.rowData.set([...this.rowData()]);\n }\n\n refreshStatus(row: EditTableRowData) {\n const ignore = Object.entries(row.control.value).filter(en => !this.options.showCheckbox() || en[0] != this.options.checkedFormName() || en[1]).every(en => {\n if (en[1] == null) {\n return true;\n }\n if (en[1] instanceof Array) {\n return !en[1].length;\n }\n if (typeof (en[1]) == \"number\") {\n return false;\n }\n return !en[1];\n });\n if (!ignore) {\n row.status.set(row.control.invalid ? 'invalid' : 'success');\n row.disabledRemove.set(this.getScope()?.runFnWithSnapshot(this.options.disabledRemoveFn(), { row: row.control.value }));\n } else {\n row.status.set('ignore');\n row.disabledRemove.set(false);\n }\n }\n\n override ngOnDestroy(): void {\n super.ngOnDestroy();\n this.rowData().forEach(row => {\n row.subs.forEach(s => s.unsubscribe());\n });\n }\n\n onSelectedChange(checkedIds: Set<any>) {\n this.rowData().forEach(row => {\n const v = checkedIds.has(row.key);\n if (!!row.control.value[this.options.checkedFormName()] != v) {\n row.control.patchValue({ [this.options.checkedFormName()]: v });\n }\n });\n }\n\n}\n\n\nexport interface EditTableRowData {\n key: string;\n status: WritableSignal<'ignore' | 'invalid' | 'success'>;\n control: AbstractControl;\n subs: Subscription[];\n disabledRemove: WritableSignal<boolean>\n}","<form #form nz-form [formGroup]=\"fg\">\n <nz-table #table [nzSize]=\"options.size()\" [nzData]=\"rowData()\" [nzBordered]=\"options.bordered()\"\n [nzOuterBordered]=\"options.outerBordered()\" [nzShowPagination]=\"options.showPagination()\"\n [nzFrontPagination]=\"options.showPagination()\" [nzPageSize]=\"options.pageSize()\"\n [nzShowSizeChanger]=\"options.showSizeChanger()\" [nzPageSizeOptions]=\"tableSvc.pageSizeOptions()\"\n [nzShowTotal]=\"options.showDataSize()?totalRange:null\" [nzScroll]=\"scroll()\"\n [nzFooter]=\"!options.showPagination() && !disabledAppend() && rowData().length?footer:null\"\n [nzNoResult]=\"noResult\" [(nzPageIndex)]=\"pageIndex\">\n <thead>\n <tr>\n @if (options.showCheckbox()) {\n @if ( !options.singleCheck()) {\n <th nzLeft [nzChecked]=\"select.headerChecked()!='none'\"\n [nzIndeterminate]=\"select.headerChecked()=='indeterminate'\"\n (nzCheckedChange)=\"select.onAllChecked($event)\" nzAlign=\"center\"\n [nzWidth]=\"tableSvc.leaderFieldWidth()-10+'px'\">\n </th>\n }@else {\n <th nzLeft [nzWidth]=\"tableSvc.leaderFieldWidth()-10+'px'\"></th>\n }\n }\n <th nzWidth=\"0 !important\" nzLeft></th>\n @if (options.showOrder()) {\n <th nzAlign=\"center\" [nzWidth]=\"tableSvc.leaderFieldWidth()+'px'\">序号</th>\n }\n @for (f of fields(); track f.field();let i=$index) {\n @if (f.inuse()) {\n <th [attr.data-index]=\"i\" nz-resizable nzBounds=\"window\" [nzDisabled]=\"!f.width()\"\n [nzWidth]=\"f.width() == null ?null:f.width()+'px'\" (nzResize)=\"f.width.set($event.width??null)\"\n [nzShowSort]=\"f.sortAble()\" [nzSortFn]=\"tableSvc.fieldsControlsMap()[f.field()]?.sortFn\"\n [nzSortOrder]=\"f.sortOrder()\" [nzSortPriority]=\"f.sortPriority()??false\"\n [nzShowFilter]=\"f.filterAble()\"\n [nzFilters]=\"tableSvc.fieldsControlsMap()[f.field()]?.filterItems ?? []\"\n [nzFilterFn]=\"tableSvc.fieldsControlsMap()[f.field()]?.filterFn\"\n (nzFilterChange)=\"tableSvc.filterChange(f.field(),$event)\" [nzFilterMultiple]=\"f.filterMultiple()\"\n [nzAlign]=\"f.align()\" [nzLeft]=\"f.freezeMode()=='left'\" [nzRight]=\"f.freezeMode()=='right'\">\n <nz-form-label [nzNoColon]=\"true\" [nzRequired]=\"idRequired(f)\">\n {{f.title()}}\n </nz-form-label>\n </th>\n }\n }\n @if(!options.disabledRemove()){\n <th nzRight nzAlign=\"center\" nzWidth=\"80px\" data-rowactions>操作</th>\n }\n </tr>\n </thead>\n <tbody formArrayName=\"values\">\n @for (data of table.data; track data.key;let i=$index) {\n <tr [formGroupName]=\"(table.nzPageIndex-1) * table.nzPageSize + i\" [axisScope]=\"options.id+'.row'\"\n scopeName=\"可编辑表格行\" [dataSources]=\"[{name:'row',type:'local',data:data.control.value}]\">\n @if (options.showCheckbox()) {\n <td nzLeft [nzChecked]=\"select.setOfCheckedId.has(data.key)\"\n [nzIndeterminate]=\"select.setOfIndeterminateId.has(data.key)\"\n [nzDisabled]=\"select.setOfDisabledId().has(data.key)\"\n (nzCheckedChange)=\"select.onItemChecked(data, $event)\" nzAlign=\"center\"></td>\n }\n <td class=\"row-status\" nzLeft [class]=\"data.status()\"></td>\n @if (options.showOrder()) {\n <td nzAlign=\"center\">{{(table.nzPageIndex-1) * table.nzPageSize + i+1}}</td>\n }\n @for (f of fields(); track f.field();let i=$index) {\n @if (f.inuse()) {\n <td [nzLeft]=\"f.freezeMode()=='left'\" [attr.data-index]=\"i\" [nzRight]=\"f.freezeMode()=='right'\"\n [nzAlign]=\"f.align()\">\n <nz-form-item style=\"margin-bottom: 0;\">\n <nz-form-control>\n <ng-container [axisDynamic]=\"f.child()\" [formControlName]=\"f.field()\"></ng-container>\n </nz-form-control>\n </nz-form-item>\n </td>\n }\n }\n @if(!options.disabledRemove()){\n <td nzRight>\n <button nz-button nzDanger nzType=\"link\" nz-popconfirm nzPopconfirmTitle=\"确认删除?\"\n [nzCondition]=\"data.status()=='ignore'\" [disabled]=\"data.disabledRemove()\"\n (nzOnConfirm)=\"removeRow((table.nzPageIndex-1) * table.nzPageSize + i)\">删除</button>\n </td>\n }\n </tr>\n }\n </tbody>\n <ng-template #noResult>\n <nz-empty [nzNotFoundContent]=\"addbtn\"></nz-empty>\n <ng-template #addbtn>\n 暂无数据@if (!disabledAppend()) {,<a (click)=\"addRow()\">添加</a>}\n </ng-template>\n </ng-template>\n <ng-template #totalRange let-range=\"range\" let-total>\n @if (!disabledAppend()) {\n <a style=\"position:absolute;left:24px\" (click)=\"addRow()\"><span nz-icon nzType=\"plus\"\n nzTheme=\"outline\"></span>添加</a>\n }\n 共{{ total }}条数据,第{{ range[0] }}-{{ range[1] }}条\n </ng-template>\n <ng-template #footer>\n <a (click)=\"addRow()\"><span nz-icon nzType=\"plus\" nzTheme=\"outline\"></span>添加</a>\n </ng-template>\n </nz-table>\n</form>","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './edit-table';\n"],"names":[],"mappings":"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"}
@@ -120,6 +120,10 @@ class Select extends ValueAccess {
120
120
  if (this.value() != undefined) {
121
121
  if (this.options.mode() == "default") {
122
122
  if (this.options.fullValue()) {
123
+ const key = this.value()[this.options.valueField()];
124
+ if (!this.dataMap.has(key)) {
125
+ this.dataMap.set(key, this.value());
126
+ }
123
127
  this.selectValue.set(this.value()[this.options.valueField()]);
124
128
  }
125
129
  else {
@@ -130,6 +134,11 @@ class Select extends ValueAccess {
130
134
  else if (Array.isArray(this.value())) {
131
135
  if (this.options.fullValue()) {
132
136
  this.selectValue.set(this.value().map((r) => r[this.options.valueField()]));
137
+ for (const v of this.value()) {
138
+ if (!this.dataMap.has(v[this.options.valueField()])) {
139
+ this.dataMap.set(v[this.options.valueField()], v);
140
+ }
141
+ }
133
142
  }
134
143
  else {
135
144
  this.selectValue.set(this.value());