ngx-axis-appforge 0.0.82 → 0.0.83

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.
@@ -121,6 +121,7 @@ declare class Table extends Base<TableOptions> {
121
121
  x: string;
122
122
  y: string;
123
123
  }>;
124
+ readonly oriFields: _angular_core.Signal<TableFieldOptions[]>;
124
125
  readonly fields: _angular_core.Signal<TableFieldOptions[]>;
125
126
  readonly rowActions: _angular_core.Signal<any[]>;
126
127
  readonly actionsFieldWidth: _angular_core.Signal<number>;
@@ -134,6 +135,7 @@ declare class Table extends Base<TableOptions> {
134
135
  resizeHandleOffsetX(field: TableFieldOptions): number;
135
136
  tableSetter?: TableSetter;
136
137
  trackByKeyField: (i: number, data: any) => any;
138
+ private buildOriFields;
137
139
  private buildFields;
138
140
  private buildActionsFieldWidth;
139
141
  private refreshScoll;
@@ -122,7 +122,7 @@ class TableService {
122
122
  getRow;
123
123
  cacheFilterItem;
124
124
  groupAbleFields = computed(() => {
125
- const fields = this.fields().filter(f => f.groupAble());
125
+ const fields = this.displayFields().filter(f => f.groupAble());
126
126
  fields.sort((a, b) => (a.groupLevel() ?? 0) - (b.groupLevel() ?? 0));
127
127
  return fields;
128
128
  }, ...(ngDevMode ? [{ debugName: "groupAbleFields" }] : []));
@@ -196,9 +196,12 @@ class TableService {
196
196
  });
197
197
  data.sort((a, b) => {
198
198
  for (const f of sortFields) {
199
- const res = this.fieldsControlsMap()[f.field()]?.sortFn(a, b);
200
- if (res != 0) {
201
- return res * (f.sortOrder() == "descend" ? -1 : 1);
199
+ const sortFn = this.fieldsControlsMap()[f.field()]?.sortFn;
200
+ if (typeof sortFn == "function") {
201
+ const res = sortFn(a, b);
202
+ if (res != 0) {
203
+ return res * (f.sortOrder() == "descend" ? -1 : 1);
204
+ }
202
205
  }
203
206
  }
204
207
  return 0;
@@ -268,7 +271,7 @@ class TableService {
268
271
  if (!topGroupField) {
269
272
  return false;
270
273
  }
271
- const indexs = this.rowsGroupMap().get(topGroupField.field())?.get(row[topGroupField.field()]);
274
+ const indexs = this.rowsGroupMap().get(topGroupField.field())?.get(row[topGroupField.field()]?.toString());
272
275
  if (indexs) {
273
276
  return indexs[indexs.length - 1] == index;
274
277
  }
@@ -276,7 +279,7 @@ class TableService {
276
279
  }
277
280
  rowspan(f, index, pageIndex, pageSize, row) {
278
281
  if (f.groupAble()) {
279
- const value = this.groupAbleFields().slice(0, this.groupAbleFields().findIndex(f => f.field() == f.field()) + 1).map(f => row[f.field()]).join("@");
282
+ const value = this.groupAbleFields().slice(0, this.groupAbleFields().findIndex(_f => _f.field() == f.field()) + 1).map(_f => row[_f.field()]).join("@");
280
283
  const indexs = this.rowsGroupMap().get(f.field())?.get(value);
281
284
  if (indexs) {
282
285
  const i = indexs.indexOf(index + (pageIndex - 1) * pageSize);
@@ -1 +1 @@
1
- {"version":3,"file":"ngx-axis-appforge-axis-components-table-helper.mjs","sources":["../../../axis-components/table-helper/table-field-display.service.ts","../../../axis-components/table-helper/table.service.ts","../../../axis-components/table-helper/select.service.ts","../../../axis-components/table-helper/expand.service.ts","../../../axis-components/table-helper/statistic.service.ts","../../../axis-components/table-helper/ngx-axis-appforge-axis-components-table-helper.ts"],"sourcesContent":["import { DatePipe, DecimalPipe, PercentPipe } from \"@angular/common\";\nimport { Injectable, Optional } from \"@angular/core\";\nimport { BaseTableFieldOptions } from \"./base-table.options\";\nimport { ScopeDirective } from \"ngx-axis-appforge/core\";\n\n@Injectable()\nexport class TableFieldDisplayService {\n constructor(private datePipe: DatePipe, private decimalPipe: DecimalPipe, private percentPipe: PercentPipe, @Optional() private scope?: ScopeDirective) { }\n\n private readonly fieldDisplayCache = new Map<string, Map<string, string>>();\n\n clearCache(field?: string) {\n if (!field) {\n this.fieldDisplayCache.clear();\n } else {\n this.fieldDisplayCache.delete(field);\n }\n }\n\n getFieldDisplayText(field: BaseTableFieldOptions, row: any, loopRow?: any): any {\n if ([\"axis-components/text\", \"axis-components/badge\"].includes(field.child()?.component)) {\n if (!this.fieldDisplayCache.has(field.field())) {\n this.fieldDisplayCache.set(field.field(), new Map<string, string>());\n }\n if (!this.fieldDisplayCache.get(field.field())!.has(row[field.field()])) {\n const child = this.scope?.snapshotOptions(field.child(), { row, loopRow });\n let text: any;\n switch (child.component) {\n case \"axis-components/text\":\n switch (child.transfer) {\n case \"date\":\n if (child.data) {\n text = this.datePipe.transform(new Date(child.data), child.dateFormat);\n } else {\n text = '';\n }\n break;\n case \"number\":\n text = this.decimalPipe.transform(child.data, this.getDigitsInfo(child));\n break;\n case \"percent\":\n text = this.percentPipe.transform(child.data, this.getDigitsInfo(child));\n break;\n case \"deepObj\":\n text = this.getDeepObjectValue(child);\n break;\n default:\n text = child.data;\n break;\n }\n break;\n case \"axis-components/badge\":\n text = child.text;\n break;\n }\n this.fieldDisplayCache.get(field.field())!.set(row[field.field()], text);\n }\n return this.fieldDisplayCache.get(field.field())!.get(row[field.field()])!;\n }\n return row[field.field()];\n }\n\n private getDigitsInfo(options: any): string | undefined {\n return `${options.integerMinLength}.${options.decimalRange[0]}-${options.decimalRange[1]}`;\n }\n\n private getDeepObjectValue(options: any): any {\n if (options.objPath) {\n const patharr = (options.objPath as string).split(\".\").map(p => p.trim());\n let outValue = options.data;\n for (let p of patharr) {\n if (Array.isArray(outValue)) {\n outValue = outValue?.[+p];\n } else {\n outValue = outValue?.[p];\n }\n }\n return outValue;\n }\n return options.data;\n }\n}","import { computed, effect, Injectable, signal, Signal } from \"@angular/core\";\nimport { BaseTableFieldOptions, BaseTableOptions } from \"./base-table.options\";\nimport { NzTableFilterList } from \"ng-zorro-antd/table\";\nimport { TableFieldDisplayService } from \"./table-field-display.service\";\n\n@Injectable()\nexport class TableService<T extends BaseTableOptions, F extends BaseTableFieldOptions> {\n constructor(private fieldDisplayService: TableFieldDisplayService) {\n effect(() => {\n if (this.ready()) {\n this.refreshFieldControls();\n }\n });\n effect(() => {\n if (this.ready() && this.useBackEndPaging() && this.data()) {\n this.pageIndex.set(this.data().page_index + 1);\n if (this.data()?.query_total) {\n this.hasTotal = true;\n this.rowtotal.set(this.data().total);\n }\n this.addCursorMark();\n }\n });\n }\n\n private ready = signal(false);\n private data!: Signal<any>;\n private options!: T;\n private fields!: Signal<F[]>;\n private getRow?: (row: any) => any;\n private cacheFilterItem!: boolean;\n\n readonly groupAbleFields = computed(() => {\n const fields = this.fields().filter(f => f.groupAble());\n fields.sort((a, b) => (a.groupLevel() ?? 0) - (b.groupLevel() ?? 0));\n return fields;\n });\n readonly rowsGroupMap = computed(() => this.buildRowsGroupMap());\n readonly useBackEndPaging = computed(() => this.options.showPagination() && this.options.useBackEndPaging())\n readonly rows = computed<any[] | undefined>(() => this.useBackEndPaging() ? this.data()?.rows : this.data());\n readonly pageIndex = signal<number>(1);\n hasTotal = false;\n readonly rowtotal = signal<number>(0);\n readonly displayFields = computed<F[]>(() => {\n if (!this.ready()) {\n return [];\n }\n return this.fields().filter(f => f.inuse());\n });\n readonly fieldsControlsMap = signal<{\n [field: string]: {\n sortFn?: any;\n filterItems?: NzTableFilterList;\n filterFn?: any;\n } | undefined;\n }>({});\n readonly tableData = signal<any[]>([]);\n readonly fieldsFilterValueMap = new Map<string, any>();\n readonly filedsFilterItemsCache = new Map<string, Map<any, any>>();\n readonly leaderFieldWidth = computed(() => this.buildLeaderFieldWidth());\n readonly pageSizeOptions = computed(() => this.options.pageSizeOptions().split(\",\").map(size => +size));\n readonly pageCursorMarks = new Map<number, any>();\n pageCursorMarkIndexs: number[] = [];\n\n init(opts: { data: Signal<any>, options: T, fields: Signal<F[]>, getRow?: (row: any) => any, cacheFilterItem?: boolean }) {\n this.data = opts.data;\n this.options = opts.options;\n this.fields = opts.fields;\n this.getRow = opts.getRow;\n this.cacheFilterItem = opts.cacheFilterItem ?? true;\n this.ready.set(true);\n this.refreshTableData();\n }\n\n refreshTableData() {\n let data = [...(this.rows() ?? [])];\n if (!this.useBackEndPaging()) {\n if (this.fieldsFilterValueMap.size) {\n data = data.filter(row => {\n for (const [field, filterValue] of this.fieldsFilterValueMap.entries()) {\n if (Array.isArray(filterValue)) {\n if (!filterValue.includes(row[field])) {\n return false;\n }\n } else {\n if (row[field] != filterValue) {\n return false;\n }\n }\n }\n return true;\n });\n }\n }\n const sortFields = this.fields().filter(f => this.fieldSortAble(f) && f.sortOrder() != null);\n if (sortFields.length) {\n sortFields.sort((a, b) => {\n let ap = this.fieldSortPriority(a);\n let bp = this.fieldSortPriority(b);\n if (ap === bp) {\n return 0;\n }\n if (ap === false) {\n return 1;\n } else if (bp === false) {\n return -1;\n } else {\n return (bp as number) - (ap as number);\n }\n });\n data.sort((a, b) => {\n for (const f of sortFields) {\n const res = this.fieldsControlsMap()[f.field()]?.sortFn(a, b);\n if (res != 0) {\n return res * (f.sortOrder() == \"descend\" ? -1 : 1);\n }\n }\n return 0;\n });\n }\n this.tableData.set(data);\n }\n\n buildRowsGroupMap(): Map<string, Map<string, number[]>> {\n const rowsGroupMap = new Map<string, Map<string, number[]>>();\n if (!this.useBackEndPaging()) {\n if (this.groupAbleFields().length > 0) {\n for (let i = 0; i < this.tableData().length; i++) {\n let valuePerfix = \"\";\n const row = this.tableData()[i];\n for (const field of this.groupAbleFields()) {\n if (!rowsGroupMap.has(field.field())) {\n rowsGroupMap.set(field.field(), new Map<string, number[]>());\n }\n const groups = rowsGroupMap.get(field.field())!;\n const value = valuePerfix + row[field.field()];\n const newGroup = !groups.has(value)\n if (newGroup) {\n groups.set(value, [i]);\n } else {\n groups.get(value)!.push(i);\n }\n valuePerfix += value + \"@\";\n }\n }\n }\n }\n for (let group of rowsGroupMap.values()) {\n for (let [value, indexes] of group) {\n if (indexes.length == 1) {\n group.delete(value);\n }\n }\n }\n return rowsGroupMap;\n }\n\n fieldSortAble(f: BaseTableFieldOptions): boolean {\n return f.sortAble() || f.groupAble();\n }\n\n fieldSortDirections(f: BaseTableFieldOptions): Array<'ascend' | 'descend' | null> {\n return f.groupAble() ? ['ascend', 'descend'] : ['ascend', 'descend', null];\n }\n\n fieldSortPriority(f: BaseTableFieldOptions): number | boolean {\n if (f.groupAble()) {\n return (f.groupLevel() ?? 0);\n }\n if (f.sortAble()) {\n let p = 0;\n if (this.groupAbleFields().length) {\n p = this.groupAbleFields()[this.groupAbleFields().length - 1].groupLevel() ?? 0;\n p *= -1;\n }\n return (p - 1 + (f.sortPriority() ?? 0));\n }\n return false;\n }\n\n getGroupValue(row: any): any {\n return row[this.groupAbleFields()[0].field()]\n }\n\n isGroupEnd(index: number, row: any): boolean {\n const topGroupField = this.groupAbleFields()[0];\n if (!topGroupField) {\n return false;\n }\n const indexs = this.rowsGroupMap().get(topGroupField.field())?.get(row[topGroupField.field()]);\n if (indexs) {\n return indexs[indexs.length - 1] == index;\n }\n return false;\n }\n\n rowspan(f: BaseTableFieldOptions, index: number, pageIndex: number, pageSize: number, row: any): number {\n if (f.groupAble()) {\n const value = this.groupAbleFields().slice(0, this.groupAbleFields().findIndex(f => f.field() == f.field()) + 1).map(f => row[f.field()]).join(\"@\");\n const indexs = this.rowsGroupMap().get(f.field())?.get(value);\n if (indexs) {\n const i = indexs.indexOf(index + (pageIndex - 1) * pageSize);\n if (i != -1) {\n if (i == 0) {\n return indexs.length;\n } else if (index == 0) {\n return indexs.length - i;\n } else {\n return 0;\n }\n }\n }\n }\n return 1;\n }\n\n refreshFieldControls(f?: string) {\n if (!this.cacheFilterItem) {\n if (!f) {\n this.filedsFilterItemsCache.clear();\n } else {\n this.filedsFilterItemsCache.delete(f);\n }\n this.fieldDisplayService.clearCache(f);\n }\n const res: { [field: string]: { sortFn?: any, filterItems?: NzTableFilterList, filterFn?: any } } = {};\n for (const field of this.displayFields()) {\n if (f && field.field() != f) {\n continue;\n }\n res[field.field()] = {};\n if (!this.options.useBackEndPaging() && field.filterAble()) {\n if (!this.filedsFilterItemsCache.has(field.field())) {\n this.filedsFilterItemsCache.set(field.field(), new Map<any, any>());\n }\n const filterItemsCache = this.filedsFilterItemsCache.get(field.field())!;\n for (let row of this.rows() ?? []) {\n if (this.getRow) {\n row = this.getRow(row);\n }\n const value = row[field.field()];\n if (!filterItemsCache.has(value)) {\n filterItemsCache.set(value, { value, text: this.fieldDisplayService.getFieldDisplayText(field, row) })\n }\n }\n res[field.field()].filterItems = Array.from(filterItemsCache.values());\n res[field.field()].filterFn = (fd: any[] | any, row: any) => {\n if (this.getRow) {\n row = this.getRow(row);\n }\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 (this.fieldSortAble(field)) {\n if (this.useBackEndPaging()) {\n res[field.field()].sortFn = true;\n } else {\n if (this.rows()?.map(row => this.getRow ? this.getRow(row) : row).some((row: any) => row[field.field()] != undefined && typeof (row[field.field()]) == \"number\")) {\n res[field.field()].sortFn = (a: any, b: any) => {\n if (this.getRow) {\n a = this.getRow(a)\n b = this.getRow(b)\n }\n return a[field.field()] - b[field.field()];\n };\n } else {\n res[field.field()].sortFn = (a: any, b: any) => {\n if (this.getRow) {\n a = this.getRow(a)\n b = this.getRow(b)\n }\n return ((a[field.field()] || \"\") + \"\").localeCompare(b[field.field()])\n };\n }\n }\n }\n }\n if (f) {\n this.fieldsControlsMap.set({\n ...this.fieldsControlsMap(),\n ...res\n });\n } else {\n this.fieldsControlsMap.set(res)\n }\n }\n\n sortChange() {\n this.clearCursorMarks();\n this.refreshTableData();\n }\n\n filterChange(field: string, value: any) {\n for (const item of this.filedsFilterItemsCache.get(field)!.values()) {\n item.byDefault = value != null && (Array.isArray(value) ? value.includes(item.value) : item.value == value);\n }\n if (value == null || Array.isArray(value) && value.length == 0) {\n this.fieldsFilterValueMap.delete(field);\n } else {\n this.fieldsFilterValueMap.set(field, value);\n }\n this.refreshTableData();\n }\n\n private buildLeaderFieldWidth(): number {\n if (!this.ready()) {\n return 0;\n }\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 addCursorMark() {\n const { cursor_mark } = this.data();\n if (cursor_mark) {\n const { page_index } = cursor_mark;\n if (!this.pageCursorMarks.has(page_index)) {\n const i = this.pageCursorMarkIndexs.findIndex(i => i > page_index);\n if (i == -1) {\n this.pageCursorMarkIndexs.push(page_index);\n } else if (this.pageCursorMarkIndexs[i] > page_index) {\n this.pageCursorMarkIndexs.splice(i, 0, page_index);\n }\n }\n this.pageCursorMarks.set(page_index, cursor_mark);\n }\n }\n\n getNearestCursorMark(): any {\n if (this.pageCursorMarkIndexs.length == 0) {\n return null;\n }\n const pageIndex = this.pageIndex() - 1;\n const index = this.pageCursorMarkIndexs.findIndex(i => i >= pageIndex);\n let leftIndex, rightIndex: number | undefined;\n if (index == -1) {\n leftIndex = this.pageCursorMarkIndexs.length - 1;\n } else if (this.pageCursorMarkIndexs[index] == pageIndex) {\n leftIndex = index - 1;\n rightIndex = index + 1;\n } else {\n leftIndex = index - 1;\n rightIndex = index;\n }\n const left = leftIndex != undefined ? this.pageCursorMarkIndexs[leftIndex] : undefined;\n const right = rightIndex != undefined ? this.pageCursorMarkIndexs[rightIndex] : undefined;\n let nearstIndex;\n if (left != undefined && right != undefined) {\n nearstIndex = pageIndex - left <= right - pageIndex ? left : right;\n } else if (left != undefined) {\n nearstIndex = left;\n } else if (right != undefined) {\n nearstIndex = right;\n } else {\n return null;\n }\n return this.pageCursorMarks.get(nearstIndex);\n }\n\n clearCursorMarks() {\n this.pageCursorMarkIndexs = [];\n this.pageCursorMarks.clear();\n }\n\n get backEndPageParams(): any {\n return {\n use_page: true,\n page_index: this.pageIndex() - 1,\n page_size: this.options.pageSize(),\n query_total: !this.hasTotal,\n cursor_mark: this.getNearestCursorMark(),\n order_by: this.displayFields().filter(f => f.sortAble() && f.sortOrder() != null).map(f => ({\n column: f.field(),\n desc_order: f.sortOrder() == \"descend\"\n }))\n };\n }\n\n}","import { computed, effect, Injectable, InjectionToken, Optional, Signal, signal, untracked } from \"@angular/core\";\nimport { SelectableTableOptions } from \"./base-table.options\";\nimport { ScopeDirective } from \"ngx-axis-appforge/core\";\nimport { filter, map, Subject, Subscription } from \"rxjs\";\n\nexport const AXIS_TABLE_SELECT_TOKEN = new InjectionToken<SelectService>('axis.tableSelect');\n\nexport enum ChangeScene { userClick, linkage }\n\n@Injectable()\nexport class SelectService {\n\n constructor(@Optional() private scope?: ScopeDirective) {\n effect(() => {\n if (this.ready()) {\n this.refreshDisabledId();\n }\n })\n }\n\n readonly ready = signal(false);\n private options!: SelectableTableOptions;\n keyField!: string;\n private data !: Signal<any>;\n private readonly changeSubject = new Subject<ChangeScene>();\n private parent?: SelectService;\n private subSelectKeyFun?: (scope: ScopeDirective) => string;\n private registToParent = false;\n private getRow?: (row: any) => any;\n readonly headerChecked = signal<\"checked\" | \"indeterminate\" | \"none\">(\"none\");\n readonly setOfCheckedId = signal<Set<any>>(new Set());\n readonly setOfIndeterminateId = signal<Set<any>>(new Set());\n readonly setOfDisabledId = signal<Set<any>>(new Set());\n private subs: Subscription[] = [];\n private readonly subSelects = new Map<string, SelectService>();\n private get rows(): any[] | undefined {\n if (this.options.showPagination() && this.options.useBackEndPaging()) {\n return this.data()?.rows;\n } else {\n return this.data();\n }\n }\n\n init(opts: { options: SelectableTableOptions, keyField: string, data: Signal<any>, onSelectedChange: (checkedIds: Set<any>) => void, parent?: SelectService, scope?: ScopeDirective | null, subSelectKeyFun?: (scope: ScopeDirective) => string, registToParent?: boolean, getRow?: (row: any) => any }) {\n this.options = opts.options;\n this.keyField = opts.keyField;\n this.data = opts.data;\n this.close();\n const setOfCheckedId = new Set<any>();\n for(const item of this.options.checkedKeys()??[]){\n setOfCheckedId.add(item);\n }\n this.setOfCheckedId.set(setOfCheckedId);\n untracked(() => this.refreshCheckedStatus(ChangeScene.userClick));\n if (opts.onSelectedChange) {\n this.subs.push(this.changeSubject.subscribe(_ => {\n opts.onSelectedChange(this.setOfCheckedId());\n }));\n }\n this.parent = opts.parent;\n if (opts.scope) {\n this.scope = opts.scope;\n }\n this.subSelectKeyFun = opts.subSelectKeyFun;\n this.initCheckboxLinkageForExpand();\n this.getRow = opts.getRow;\n this.ready.set(true);\n this.registToParent = opts.registToParent ?? false;\n }\n\n findSubSelect(key: string): SelectService | undefined {\n return this.subSelects.get(key);\n }\n\n getSubSelectKey(scope: ScopeDirective): string {\n if (this.subSelectKeyFun) {\n return this.subSelectKeyFun(scope);\n }\n return this.scope!.snapshot(\"row\")[this.keyField];\n }\n\n private initCheckboxLinkageForExpand() {\n if (this.options.showCheckbox() && !this.options.singleCheck() && this.options.checkboxLinkageForExpand() && this.parent && this.scope) {\n const keyInParent = this.parent.getSubSelectKey(this.scope);\n untracked(() => {\n if (this.registToParent) {\n this.parent!.subSelects.set(keyInParent, this);\n }\n this.subs.push(this.parent!.changeSubject.pipe(filter(s => s != ChangeScene.linkage), map(_ => {\n if (this.parent!.setOfCheckedId().has(keyInParent)) {\n if (this.parent!.setOfIndeterminateId().has(keyInParent)) {\n return \"indeterminate\";\n } else {\n return \"checked\";\n }\n } else {\n return \"none\";\n }\n })).subscribe(header => {\n if (header != 'indeterminate' && this.headerChecked() != header) {\n this.onAllChecked(header == \"checked\", ChangeScene.linkage);\n }\n }));\n this.subs.push(this!.changeSubject.pipe(filter(s => s != ChangeScene.linkage), map(_ => this.headerChecked()))\n .subscribe(header => {\n const checked = header != \"none\";\n const indeterminate = header == \"indeterminate\";\n if (checked != this.parent!.setOfCheckedId().has(keyInParent) || indeterminate != this.parent!.setOfIndeterminateId().has(keyInParent)) {\n this.parent!.updateCheckedSet(keyInParent, checked, indeterminate);\n this.parent!.refreshCheckedStatus(ChangeScene.linkage);\n }\n }));\n });\n\n }\n }\n\n refreshDisabledId() {\n let res: Set<any>;\n if (this.options.disableCheckboxFn()) {\n const args = this.scope?.snapshotAll() ?? {};\n res = new Set(this.rows?.filter(row => this.scope?.runFnWithSnapshot(this.options.disableCheckboxFn()!, Object.assign({}, args, { row: this.getRow ? this.getRow(row) : row })))\n .map(row => row[this.keyField]));\n } else {\n res = new Set<any>();\n }\n this.setOfDisabledId.set(res);\n }\n\n onAllChecked(checked: boolean, scene = ChangeScene.userClick) {\n this.rows?.filter(row => !this.setOfDisabledId().has(row[this.keyField]))?.forEach(row => this.updateCheckedSet(row[this.keyField], checked, false));\n this.refreshCheckedStatus(scene);\n }\n\n toggleChecked(row: any, scene = ChangeScene.userClick) {\n if (this.options.showCheckbox() && !this.setOfDisabledId().has(row[this.keyField])) {\n this.onItemChecked(row, !this.setOfCheckedId().has(row[this.keyField]), scene);\n }\n }\n\n onItemChecked(row: any, checked: boolean, scene = ChangeScene.userClick): void {\n this.updateCheckedSet(row[this.keyField], checked);\n this.refreshCheckedStatus(scene);\n }\n\n onSetItemsChecked(rows: any[], scene = ChangeScene.userClick): void {\n this.setOfCheckedId().clear();\n this.setOfIndeterminateId().clear();\n rows.forEach(row => this.updateCheckedSet(row[this.keyField], true));\n this.refreshCheckedStatus(scene);\n }\n\n updateCheckedSet(key: string, checked: boolean, indeterminate = false): void {\n if (checked && this.options.singleCheck()) {\n this.setOfCheckedId().clear();\n }\n indeterminate = checked && indeterminate && !this.options.singleCheck();\n if (indeterminate && !this.setOfIndeterminateId().has(key)) {\n this.setOfIndeterminateId().add(key);\n } else if (!indeterminate && this.setOfIndeterminateId().has(key)) {\n this.setOfIndeterminateId().delete(key);\n }\n if (checked && !this.setOfCheckedId().has(key)) {\n this.setOfCheckedId().add(key);\n } else if (!checked && this.setOfCheckedId().has(key)) {\n this.setOfCheckedId().delete(key);\n }\n }\n\n refreshCheckedStatus(scene: ChangeScene): void {\n const listOfEnabledData = this.rows?.filter(row => !this.setOfDisabledId().has(row[this.keyField])) ?? [];\n const checked = listOfEnabledData.length > 0 && listOfEnabledData.every(row => this.setOfCheckedId().has(row[this.keyField]) && !this.setOfIndeterminateId().has(row[this.keyField]));\n if (checked) {\n this.headerChecked.set(\"checked\");\n } else {\n const indeterminate = listOfEnabledData.some(row => this.setOfCheckedId().has(row[this.keyField]) || this.setOfIndeterminateId().has(row[this.keyField])) && !checked;\n this.headerChecked.set(indeterminate ? \"indeterminate\" : \"none\");\n }\n this.setOfCheckedId.set(new Set([...this.setOfCheckedId()]));\n this.setOfIndeterminateId.set(new Set([...this.setOfIndeterminateId()]));\n this.changeSubject.next(scene);\n }\n\n getSelectedData(): any[] | undefined {\n return this.rows?.filter(row => this.setOfCheckedId().has(row[this.keyField]));\n }\n\n close() {\n for (const sub of this.subs) {\n sub.unsubscribe();\n }\n for (const sub of this.subSelects.values()) {\n sub.close();\n }\n this.subs = [];\n this.subSelects.clear();\n }\n}","import { computed, Injectable, Optional, Signal } from \"@angular/core\";\nimport { ExpandableTableOptions } from \"./base-table.options\";\nimport { ScopeDirective } from \"ngx-axis-appforge/core\";\n\n@Injectable()\nexport class ExpandService {\n\n constructor(@Optional() private scope?: ScopeDirective) { }\n\n private options!: ExpandableTableOptions;\n private keyField!: string;\n private data !: Signal<any[] | null>;\n readonly expandedSet = new Set();\n readonly nodeMap = computed(() => this.buildNodeMap());\n\n init(opts: { options: ExpandableTableOptions, keyField: string, data: Signal<any[] | null> }) {\n this.options = opts.options;\n this.keyField = opts.keyField;\n this.data = opts.data;\n }\n\n buildNodeMap(): Map<string, { level: number, node: any, children?: any[] }> {\n const nodeMap = new Map<string, any>();\n if (this.options.showExpand() && this.options.expandMode() == \"tree\") {\n this.data()?.forEach((row: any) => {\n this.buildNodeMapForRow(row, nodeMap);\n });\n }\n return nodeMap;\n }\n\n onExpandChange(key: any, checked: boolean): void {\n if (checked) {\n this.expandedSet.add(key);\n } else {\n this.expandedSet.delete(key);\n }\n }\n\n buildNodeMapForRow(row: any, nodeMap: Map<string, any>, parentLevel = 0) {\n const node: any = {\n level: parentLevel + 1,\n node: row,\n children: []\n };\n nodeMap.set(row[this.keyField], node)\n if (this.options.showExpand() && this.options.expandMode() == \"tree\") {\n let children: any[];\n if (this.options.treeChildrenFun()) {\n children = this.scope?.runFnWithSnapshot(this.options.treeChildrenFun(), { row })\n } else {\n children = row.children;\n }\n if (children?.length) {\n node.children = children;\n children.forEach(child => {\n this.buildNodeMapForRow(child, nodeMap, node.level);\n });\n }\n }\n }\n\n getListForExpanded(row: any): any[] {\n const key = row[this.keyField];\n let res = [row];\n if (this.options.showExpand() && this.options.expandMode() == \"tree\" && this.nodeMap().get(key)?.children?.length && this.expandedSet.has(key)) {\n res = res.concat(this.nodeMap().get(key)!.children)\n }\n return res;\n }\n}","import { computed, Injectable, Optional, signal, Signal } from \"@angular/core\";\nimport { BaseTableFieldOptions, BaseTableOptions, StatisticTableFieldOptions, StatisticTableOptions } from \"./base-table.options\";\nimport { ScopeDirective } from \"ngx-axis-appforge/core\";\nimport { TableService } from \"./table.service\";\n\n@Injectable()\nexport class StatisticService {\n\n constructor(@Optional() private scope?: ScopeDirective) { }\n\n private ready = signal(false);\n private options!: StatisticTableOptions;\n private data !: Signal<any>;\n private fields!: Signal<StatisticTableFieldOptions[]>;\n private getRow?: (row: any) => any;\n private tableSvc?: TableService<BaseTableOptions, BaseTableFieldOptions>;\n hasStatistic = false;\n\n readonly statisticMap = computed(() => this.buildStatisticMap());\n readonly statisticGroupMap = computed(() => this.buildStatisticGroupMap());\n\n init(opts: { options: StatisticTableOptions, data: Signal<any>, fields: Signal<StatisticTableFieldOptions[]>, getRow?: (row: any) => any, tableSvc?: TableService<BaseTableOptions, BaseTableFieldOptions> }) {\n this.options = opts.options;\n this.data = opts.data;\n this.fields = opts.fields;\n this.getRow = opts.getRow;\n this.tableSvc = opts.tableSvc;\n this.ready.set(true);\n }\n\n private buildStatisticMap(): { [field: string]: number | undefined } {\n if (!this.ready()) {\n return {};\n }\n let res: { [field: string]: number | undefined } = {};\n if (this.options.showStatistic() && this.data()) {\n if (this.options.showPagination() && this.options.useBackEndPaging()) {\n res = this.data().statistic_result;\n } else {\n res = this.statisticCompute(this.data() ?? []);\n }\n }\n return res;\n }\n\n private buildStatisticGroupMap(): { [groupValue: string]: { [field: string]: number | undefined } } {\n if (!this.ready() || !this.tableSvc) {\n return {};\n }\n let res: { [groupValue: string]: { [field: string]: number | undefined } } = {};\n const groupField = this.tableSvc.groupAbleFields()[0];\n if (this.options.showStatistic() && groupField) {\n if (this.options.showPagination() && this.options.useBackEndPaging()) {\n res = this.data().statistic_result;\n } else {\n this.tableSvc.tableData();\n const group = this.tableSvc.rowsGroupMap().get(groupField.field());\n if (group) {\n for (const [value, indexs] of group) {\n res[value] = this.statisticCompute(indexs.map(index => this.tableSvc?.tableData()[index]));\n }\n }\n }\n }\n return res;\n }\n\n statisticCompute(data: any[]): any {\n const res: any = {};\n for (const f of this.fields().filter(r => r.statisticAble())) {\n let num: number | undefined;\n for (let i = 0; i < data.length; i++) {\n let row = data[i];\n if (this.getRow) {\n row = this.getRow(row);\n }\n if (f.statisticType() == \"sum\" || f.statisticType() == \"average\") {\n num = (num ?? 0) + row[f.field()];\n } else if (f.statisticType() == \"max\") {\n num = Math.max(num ?? Number.MIN_SAFE_INTEGER, row[f.field()]);\n } else if (f.statisticType() == \"min\") {\n num = Math.min(num ?? Number.MAX_SAFE_INTEGER, row[f.field()]);\n } else if (f.statisticType() == \"custom\" && f.statisticFn()) {\n num = this.scope?.runFnWithSnapshot(f.statisticFn(), { result: num, index: i, row: row, value: row[f.field()] });\n }\n }\n if (f.statisticType() == \"average\" && data.length > 0) {\n num = (num ?? 0) / data.length;\n }\n if (f.statisticType() == \"sum\" && data.length == 0) {\n num = 0;\n }\n res[f.field()] = num;\n }\n return res;\n }\n\n get backEndPageParams(): any {\n const res: any = {\n query_statistic: !this.hasStatistic && this.options.showStatistic() && this.options.showPagination() && this.options.useBackEndPaging()\n };\n if (res.query_statistic) {\n res.statistic_options = {};\n for (const f of this.fields().filter(r => r.statisticAble() && r.statisticType() != \"custom\")) {\n res.statistic_options[f.field()] = f.statisticType();\n }\n }\n return res;\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i2","i1.TableFieldDisplayService","i1"],"mappings":";;;;;;MAMa,wBAAwB,CAAA;AACb,IAAA,QAAA;AAA4B,IAAA,WAAA;AAAkC,IAAA,WAAA;AAA8C,IAAA,KAAA;AAAhI,IAAA,WAAA,CAAoB,QAAkB,EAAU,WAAwB,EAAU,WAAwB,EAAsB,KAAsB,EAAA;QAAlI,IAAA,CAAA,QAAQ,GAAR,QAAQ;QAAoB,IAAA,CAAA,WAAW,GAAX,WAAW;QAAuB,IAAA,CAAA,WAAW,GAAX,WAAW;QAAmC,IAAA,CAAA,KAAK,GAAL,KAAK;IAAqB;AAEzI,IAAA,iBAAiB,GAAG,IAAI,GAAG,EAA+B;AAE3E,IAAA,UAAU,CAAC,KAAc,EAAA;QACrB,IAAI,CAAC,KAAK,EAAE;AACR,YAAA,IAAI,CAAC,iBAAiB,CAAC,KAAK,EAAE;QAClC;aAAO;AACH,YAAA,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,KAAK,CAAC;QACxC;IACJ;AAEA,IAAA,mBAAmB,CAAC,KAA4B,EAAE,GAAQ,EAAE,OAAa,EAAA;AACrE,QAAA,IAAI,CAAC,sBAAsB,EAAE,uBAAuB,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,KAAK,EAAE,EAAE,SAAS,CAAC,EAAE;AACtF,YAAA,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC,EAAE;AAC5C,gBAAA,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,EAAE,EAAE,IAAI,GAAG,EAAkB,CAAC;YACxE;YACA,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,EAAE,CAAE,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC,EAAE;AACrE,gBAAA,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,EAAE,eAAe,CAAC,KAAK,CAAC,KAAK,EAAE,EAAE,EAAE,GAAG,EAAE,OAAO,EAAE,CAAC;AAC1E,gBAAA,IAAI,IAAS;AACb,gBAAA,QAAQ,KAAK,CAAC,SAAS;AACnB,oBAAA,KAAK,sBAAsB;AACvB,wBAAA,QAAQ,KAAK,CAAC,QAAQ;AAClB,4BAAA,KAAK,MAAM;AACP,gCAAA,IAAI,KAAK,CAAC,IAAI,EAAE;AACZ,oCAAA,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,KAAK,CAAC,UAAU,CAAC;gCAC1E;qCAAO;oCACH,IAAI,GAAG,EAAE;gCACb;gCACA;AACJ,4BAAA,KAAK,QAAQ;AACT,gCAAA,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;gCACxE;AACJ,4BAAA,KAAK,SAAS;AACV,gCAAA,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;gCACxE;AACJ,4BAAA,KAAK,SAAS;AACV,gCAAA,IAAI,GAAG,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC;gCACrC;AACJ,4BAAA;AACI,gCAAA,IAAI,GAAG,KAAK,CAAC,IAAI;gCACjB;;wBAER;AACJ,oBAAA,KAAK,uBAAuB;AACxB,wBAAA,IAAI,GAAG,KAAK,CAAC,IAAI;wBACjB;;gBAER,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,EAAE,CAAE,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC,EAAE,IAAI,CAAC;YAC5E;YACA,OAAO,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,EAAE,CAAE,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC,CAAE;QAC9E;AACA,QAAA,OAAO,GAAG,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;IAC7B;AAEQ,IAAA,aAAa,CAAC,OAAY,EAAA;AAC9B,QAAA,OAAO,GAAG,OAAO,CAAC,gBAAgB,CAAA,CAAA,EAAI,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,CAAA,CAAA,EAAI,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE;IAC9F;AAEQ,IAAA,kBAAkB,CAAC,OAAY,EAAA;AACnC,QAAA,IAAI,OAAO,CAAC,OAAO,EAAE;YACjB,MAAM,OAAO,GAAI,OAAO,CAAC,OAAkB,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC;AACzE,YAAA,IAAI,QAAQ,GAAG,OAAO,CAAC,IAAI;AAC3B,YAAA,KAAK,IAAI,CAAC,IAAI,OAAO,EAAE;AACnB,gBAAA,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE;AACzB,oBAAA,QAAQ,GAAG,QAAQ,GAAG,CAAC,CAAC,CAAC;gBAC7B;qBAAO;AACH,oBAAA,QAAQ,GAAG,QAAQ,GAAG,CAAC,CAAC;gBAC5B;YACJ;AACA,YAAA,OAAO,QAAQ;QACnB;QACA,OAAO,OAAO,CAAC,IAAI;IACvB;wGA1ES,wBAAwB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,QAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,WAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,WAAA,EAAA,EAAA,EAAA,KAAA,EAAAA,IAAA,CAAA,cAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA;4GAAxB,wBAAwB,EAAA,CAAA;;4FAAxB,wBAAwB,EAAA,UAAA,EAAA,CAAA;kBADpC;;0BAEgH;;;MCDpG,YAAY,CAAA;AACD,IAAA,mBAAA;AAApB,IAAA,WAAA,CAAoB,mBAA6C,EAAA;QAA7C,IAAA,CAAA,mBAAmB,GAAnB,mBAAmB;QACnC,MAAM,CAAC,MAAK;AACR,YAAA,IAAI,IAAI,CAAC,KAAK,EAAE,EAAE;gBACd,IAAI,CAAC,oBAAoB,EAAE;YAC/B;AACJ,QAAA,CAAC,CAAC;QACF,MAAM,CAAC,MAAK;AACR,YAAA,IAAI,IAAI,CAAC,KAAK,EAAE,IAAI,IAAI,CAAC,gBAAgB,EAAE,IAAI,IAAI,CAAC,IAAI,EAAE,EAAE;AACxD,gBAAA,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,UAAU,GAAG,CAAC,CAAC;AAC9C,gBAAA,IAAI,IAAI,CAAC,IAAI,EAAE,EAAE,WAAW,EAAE;AAC1B,oBAAA,IAAI,CAAC,QAAQ,GAAG,IAAI;AACpB,oBAAA,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC;gBACxC;gBACA,IAAI,CAAC,aAAa,EAAE;YACxB;AACJ,QAAA,CAAC,CAAC;IACN;AAEQ,IAAA,KAAK,GAAG,MAAM,CAAC,KAAK,iDAAC;AACrB,IAAA,IAAI;AACJ,IAAA,OAAO;AACP,IAAA,MAAM;AACN,IAAA,MAAM;AACN,IAAA,eAAe;AAEd,IAAA,eAAe,GAAG,QAAQ,CAAC,MAAK;AACrC,QAAA,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,CAAC;AACvD,QAAA,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,UAAU,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC,CAAC;AACpE,QAAA,OAAO,MAAM;AACjB,IAAA,CAAC,2DAAC;IACO,YAAY,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,iBAAiB,EAAE,EAAA,IAAA,SAAA,GAAA,CAAA,EAAA,SAAA,EAAA,cAAA,EAAA,CAAA,GAAA,EAAA,CAAA,CAAC;IACvD,gBAAgB,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,cAAc,EAAE,IAAI,IAAI,CAAC,OAAO,CAAC,gBAAgB,EAAE,4DAAC;IACnG,IAAI,GAAG,QAAQ,CAAoB,MAAM,IAAI,CAAC,gBAAgB,EAAE,GAAG,IAAI,CAAC,IAAI,EAAE,EAAE,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE,EAAA,IAAA,SAAA,GAAA,CAAA,EAAA,SAAA,EAAA,MAAA,EAAA,CAAA,GAAA,EAAA,CAAA,CAAC;AACnG,IAAA,SAAS,GAAG,MAAM,CAAS,CAAC,qDAAC;IACtC,QAAQ,GAAG,KAAK;AACP,IAAA,QAAQ,GAAG,MAAM,CAAS,CAAC,oDAAC;AAC5B,IAAA,aAAa,GAAG,QAAQ,CAAM,MAAK;AACxC,QAAA,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,EAAE;AACf,YAAA,OAAO,EAAE;QACb;AACA,QAAA,OAAO,IAAI,CAAC,MAAM,EAAE,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,CAAC;AAC/C,IAAA,CAAC,yDAAC;AACO,IAAA,iBAAiB,GAAG,MAAM,CAMhC,EAAE,6DAAC;AACG,IAAA,SAAS,GAAG,MAAM,CAAQ,EAAE,qDAAC;AAC7B,IAAA,oBAAoB,GAAG,IAAI,GAAG,EAAe;AAC7C,IAAA,sBAAsB,GAAG,IAAI,GAAG,EAAyB;IACzD,gBAAgB,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,qBAAqB,EAAE,EAAA,IAAA,SAAA,GAAA,CAAA,EAAA,SAAA,EAAA,kBAAA,EAAA,CAAA,GAAA,EAAA,CAAA,CAAC;AAC/D,IAAA,eAAe,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,eAAe,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,EAAA,IAAA,SAAA,GAAA,CAAA,EAAA,SAAA,EAAA,iBAAA,EAAA,CAAA,GAAA,EAAA,CAAA,CAAC;AAC9F,IAAA,eAAe,GAAG,IAAI,GAAG,EAAe;IACjD,oBAAoB,GAAa,EAAE;AAEnC,IAAA,IAAI,CAAC,IAAmH,EAAA;AACpH,QAAA,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI;AACrB,QAAA,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO;AAC3B,QAAA,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM;AACzB,QAAA,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM;QACzB,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,eAAe,IAAI,IAAI;AACnD,QAAA,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC;QACpB,IAAI,CAAC,gBAAgB,EAAE;IAC3B;IAEA,gBAAgB,GAAA;AACZ,QAAA,IAAI,IAAI,GAAG,CAAC,IAAI,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;AACnC,QAAA,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE,EAAE;AAC1B,YAAA,IAAI,IAAI,CAAC,oBAAoB,CAAC,IAAI,EAAE;AAChC,gBAAA,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,IAAG;AACrB,oBAAA,KAAK,MAAM,CAAC,KAAK,EAAE,WAAW,CAAC,IAAI,IAAI,CAAC,oBAAoB,CAAC,OAAO,EAAE,EAAE;AACpE,wBAAA,IAAI,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE;4BAC5B,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE;AACnC,gCAAA,OAAO,KAAK;4BAChB;wBACJ;6BAAO;AACH,4BAAA,IAAI,GAAG,CAAC,KAAK,CAAC,IAAI,WAAW,EAAE;AAC3B,gCAAA,OAAO,KAAK;4BAChB;wBACJ;oBACJ;AACA,oBAAA,OAAO,IAAI;AACf,gBAAA,CAAC,CAAC;YACN;QACJ;QACA,MAAM,UAAU,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,MAAM,CAAC,CAAC,IAAI,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,IAAI,IAAI,CAAC;AAC5F,QAAA,IAAI,UAAU,CAAC,MAAM,EAAE;YACnB,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,KAAI;gBACrB,IAAI,EAAE,GAAG,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC;gBAClC,IAAI,EAAE,GAAG,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC;AAClC,gBAAA,IAAI,EAAE,KAAK,EAAE,EAAE;AACX,oBAAA,OAAO,CAAC;gBACZ;AACA,gBAAA,IAAI,EAAE,KAAK,KAAK,EAAE;AACd,oBAAA,OAAO,CAAC;gBACZ;AAAO,qBAAA,IAAI,EAAE,KAAK,KAAK,EAAE;oBACrB,OAAO,CAAC,CAAC;gBACb;qBAAO;oBACH,OAAQ,EAAa,GAAI,EAAa;gBAC1C;AACJ,YAAA,CAAC,CAAC;YACF,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,KAAI;AACf,gBAAA,KAAK,MAAM,CAAC,IAAI,UAAU,EAAE;AACxB,oBAAA,MAAM,GAAG,GAAG,IAAI,CAAC,iBAAiB,EAAE,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,EAAE,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC;AAC7D,oBAAA,IAAI,GAAG,IAAI,CAAC,EAAE;AACV,wBAAA,OAAO,GAAG,IAAI,CAAC,CAAC,SAAS,EAAE,IAAI,SAAS,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;oBACtD;gBACJ;AACA,gBAAA,OAAO,CAAC;AACZ,YAAA,CAAC,CAAC;QACN;AACA,QAAA,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC;IAC5B;IAEA,iBAAiB,GAAA;AACb,QAAA,MAAM,YAAY,GAAG,IAAI,GAAG,EAAiC;AAC7D,QAAA,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE,EAAE;YAC1B,IAAI,IAAI,CAAC,eAAe,EAAE,CAAC,MAAM,GAAG,CAAC,EAAE;AACnC,gBAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;oBAC9C,IAAI,WAAW,GAAG,EAAE;oBACpB,MAAM,GAAG,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC;oBAC/B,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,eAAe,EAAE,EAAE;wBACxC,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC,EAAE;AAClC,4BAAA,YAAY,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,EAAE,EAAE,IAAI,GAAG,EAAoB,CAAC;wBAChE;wBACA,MAAM,MAAM,GAAG,YAAY,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,EAAE,CAAE;wBAC/C,MAAM,KAAK,GAAG,WAAW,GAAG,GAAG,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;wBAC9C,MAAM,QAAQ,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC;wBACnC,IAAI,QAAQ,EAAE;4BACV,MAAM,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC;wBAC1B;6BAAO;4BACH,MAAM,CAAC,GAAG,CAAC,KAAK,CAAE,CAAC,IAAI,CAAC,CAAC,CAAC;wBAC9B;AACA,wBAAA,WAAW,IAAI,KAAK,GAAG,GAAG;oBAC9B;gBACJ;YACJ;QACJ;QACA,KAAK,IAAI,KAAK,IAAI,YAAY,CAAC,MAAM,EAAE,EAAE;YACrC,KAAK,IAAI,CAAC,KAAK,EAAE,OAAO,CAAC,IAAI,KAAK,EAAE;AAChC,gBAAA,IAAI,OAAO,CAAC,MAAM,IAAI,CAAC,EAAE;AACrB,oBAAA,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC;gBACvB;YACJ;QACJ;AACA,QAAA,OAAO,YAAY;IACvB;AAEA,IAAA,aAAa,CAAC,CAAwB,EAAA;QAClC,OAAO,CAAC,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC,SAAS,EAAE;IACxC;AAEA,IAAA,mBAAmB,CAAC,CAAwB,EAAA;QACxC,OAAO,CAAC,CAAC,SAAS,EAAE,GAAG,CAAC,QAAQ,EAAE,SAAS,CAAC,GAAG,CAAC,QAAQ,EAAE,SAAS,EAAE,IAAI,CAAC;IAC9E;AAEA,IAAA,iBAAiB,CAAC,CAAwB,EAAA;AACtC,QAAA,IAAI,CAAC,CAAC,SAAS,EAAE,EAAE;YACf,QAAQ,CAAC,CAAC,UAAU,EAAE,IAAI,CAAC;QAC/B;AACA,QAAA,IAAI,CAAC,CAAC,QAAQ,EAAE,EAAE;YACd,IAAI,CAAC,GAAG,CAAC;AACT,YAAA,IAAI,IAAI,CAAC,eAAe,EAAE,CAAC,MAAM,EAAE;gBAC/B,CAAC,GAAG,IAAI,CAAC,eAAe,EAAE,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,UAAU,EAAE,IAAI,CAAC;gBAC/E,CAAC,IAAI,CAAC,CAAC;YACX;AACA,YAAA,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,YAAY,EAAE,IAAI,CAAC,CAAC;QAC3C;AACA,QAAA,OAAO,KAAK;IAChB;AAEA,IAAA,aAAa,CAAC,GAAQ,EAAA;AAClB,QAAA,OAAO,GAAG,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC;IACjD;IAEA,UAAU,CAAC,KAAa,EAAE,GAAQ,EAAA;QAC9B,MAAM,aAAa,GAAG,IAAI,CAAC,eAAe,EAAE,CAAC,CAAC,CAAC;QAC/C,IAAI,CAAC,aAAa,EAAE;AAChB,YAAA,OAAO,KAAK;QAChB;QACA,MAAM,MAAM,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC,GAAG,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC,EAAE,GAAG,CAAC,GAAG,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC,CAAC;QAC9F,IAAI,MAAM,EAAE;YACR,OAAO,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,IAAI,KAAK;QAC7C;AACA,QAAA,OAAO,KAAK;IAChB;IAEA,OAAO,CAAC,CAAwB,EAAE,KAAa,EAAE,SAAiB,EAAE,QAAgB,EAAE,GAAQ,EAAA;AAC1F,QAAA,IAAI,CAAC,CAAC,SAAS,EAAE,EAAE;YACf,MAAM,KAAK,GAAG,IAAI,CAAC,eAAe,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,eAAe,EAAE,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,KAAK,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC;AACnJ,YAAA,MAAM,MAAM,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,EAAE,GAAG,CAAC,KAAK,CAAC;YAC7D,IAAI,MAAM,EAAE;AACR,gBAAA,MAAM,CAAC,GAAG,MAAM,CAAC,OAAO,CAAC,KAAK,GAAG,CAAC,SAAS,GAAG,CAAC,IAAI,QAAQ,CAAC;AAC5D,gBAAA,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE;AACT,oBAAA,IAAI,CAAC,IAAI,CAAC,EAAE;wBACR,OAAO,MAAM,CAAC,MAAM;oBACxB;AAAO,yBAAA,IAAI,KAAK,IAAI,CAAC,EAAE;AACnB,wBAAA,OAAO,MAAM,CAAC,MAAM,GAAG,CAAC;oBAC5B;yBAAO;AACH,wBAAA,OAAO,CAAC;oBACZ;gBACJ;YACJ;QACJ;AACA,QAAA,OAAO,CAAC;IACZ;AAEA,IAAA,oBAAoB,CAAC,CAAU,EAAA;AAC3B,QAAA,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE;YACvB,IAAI,CAAC,CAAC,EAAE;AACJ,gBAAA,IAAI,CAAC,sBAAsB,CAAC,KAAK,EAAE;YACvC;iBAAO;AACH,gBAAA,IAAI,CAAC,sBAAsB,CAAC,MAAM,CAAC,CAAC,CAAC;YACzC;AACA,YAAA,IAAI,CAAC,mBAAmB,CAAC,UAAU,CAAC,CAAC,CAAC;QAC1C;QACA,MAAM,GAAG,GAA2F,EAAE;QACtG,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,aAAa,EAAE,EAAE;YACtC,IAAI,CAAC,IAAI,KAAK,CAAC,KAAK,EAAE,IAAI,CAAC,EAAE;gBACzB;YACJ;YACA,GAAG,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC,GAAG,EAAE;AACvB,YAAA,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,gBAAgB,EAAE,IAAI,KAAK,CAAC,UAAU,EAAE,EAAE;AACxD,gBAAA,IAAI,CAAC,IAAI,CAAC,sBAAsB,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC,EAAE;AACjD,oBAAA,IAAI,CAAC,sBAAsB,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,EAAE,EAAE,IAAI,GAAG,EAAY,CAAC;gBACvE;AACA,gBAAA,MAAM,gBAAgB,GAAG,IAAI,CAAC,sBAAsB,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,EAAE,CAAE;gBACxE,KAAK,IAAI,GAAG,IAAI,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,EAAE;AAC/B,oBAAA,IAAI,IAAI,CAAC,MAAM,EAAE;AACb,wBAAA,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC;oBAC1B;oBACA,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;oBAChC,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE;wBAC9B,gBAAgB,CAAC,GAAG,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC,mBAAmB,CAAC,mBAAmB,CAAC,KAAK,EAAE,GAAG,CAAC,EAAE,CAAC;oBAC1G;gBACJ;AACA,gBAAA,GAAG,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC,WAAW,GAAG,KAAK,CAAC,IAAI,CAAC,gBAAgB,CAAC,MAAM,EAAE,CAAC;AACtE,gBAAA,GAAG,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC,QAAQ,GAAG,CAAC,EAAe,EAAE,GAAQ,KAAI;AACxD,oBAAA,IAAI,IAAI,CAAC,MAAM,EAAE;AACb,wBAAA,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC;oBAC1B;AACA,oBAAA,IAAI,EAAE,YAAY,KAAK,EAAE;AACrB,wBAAA,OAAO,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC;oBAC1C;yBAAO;wBACH,OAAO,EAAE,IAAI,GAAG,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;oBACnC;AACJ,gBAAA,CAAC;YACL;AACA,YAAA,IAAI,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,EAAE;AAC3B,gBAAA,IAAI,IAAI,CAAC,gBAAgB,EAAE,EAAE;oBACzB,GAAG,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC,MAAM,GAAG,IAAI;gBACpC;qBAAO;AACH,oBAAA,IAAI,IAAI,CAAC,IAAI,EAAE,EAAE,GAAG,CAAC,GAAG,IAAI,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,GAAQ,KAAK,GAAG,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC,IAAI,SAAS,IAAI,QAAQ,GAAG,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC,IAAI,QAAQ,CAAC,EAAE;AAC9J,wBAAA,GAAG,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC,MAAM,GAAG,CAAC,CAAM,EAAE,CAAM,KAAI;AAC3C,4BAAA,IAAI,IAAI,CAAC,MAAM,EAAE;AACb,gCAAA,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;AAClB,gCAAA,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;4BACtB;AACA,4BAAA,OAAO,CAAC,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;AAC9C,wBAAA,CAAC;oBACL;yBAAO;AACH,wBAAA,GAAG,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC,MAAM,GAAG,CAAC,CAAM,EAAE,CAAM,KAAI;AAC3C,4BAAA,IAAI,IAAI,CAAC,MAAM,EAAE;AACb,gCAAA,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;AAClB,gCAAA,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;4BACtB;4BACA,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,EAAE,aAAa,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC;AAC1E,wBAAA,CAAC;oBACL;gBACJ;YACJ;QACJ;QACA,IAAI,CAAC,EAAE;AACH,YAAA,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC;gBACvB,GAAG,IAAI,CAAC,iBAAiB,EAAE;AAC3B,gBAAA,GAAG;AACN,aAAA,CAAC;QACN;aAAO;AACH,YAAA,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,GAAG,CAAC;QACnC;IACJ;IAEA,UAAU,GAAA;QACN,IAAI,CAAC,gBAAgB,EAAE;QACvB,IAAI,CAAC,gBAAgB,EAAE;IAC3B;IAEA,YAAY,CAAC,KAAa,EAAE,KAAU,EAAA;AAClC,QAAA,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,sBAAsB,CAAC,GAAG,CAAC,KAAK,CAAE,CAAC,MAAM,EAAE,EAAE;AACjE,YAAA,IAAI,CAAC,SAAS,GAAG,KAAK,IAAI,IAAI,KAAK,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC;QAC/G;AACA,QAAA,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,MAAM,IAAI,CAAC,EAAE;AAC5D,YAAA,IAAI,CAAC,oBAAoB,CAAC,MAAM,CAAC,KAAK,CAAC;QAC3C;aAAO;YACH,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,KAAK,EAAE,KAAK,CAAC;QAC/C;QACA,IAAI,CAAC,gBAAgB,EAAE;IAC3B;IAEQ,qBAAqB,GAAA;AACzB,QAAA,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,EAAE;AACf,YAAA,OAAO,CAAC;QACZ;AACA,QAAA,QAAQ,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE;AACvB,YAAA,KAAK,OAAO;AACR,gBAAA,OAAO,EAAE;AACb,YAAA,KAAK,QAAQ;AACT,gBAAA,OAAO,EAAE;AACb,YAAA;AACI,gBAAA,OAAO,EAAE;;IAErB;IAEA,aAAa,GAAA;QACT,MAAM,EAAE,WAAW,EAAE,GAAG,IAAI,CAAC,IAAI,EAAE;QACnC,IAAI,WAAW,EAAE;AACb,YAAA,MAAM,EAAE,UAAU,EAAE,GAAG,WAAW;YAClC,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE;AACvC,gBAAA,MAAM,CAAC,GAAG,IAAI,CAAC,oBAAoB,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,GAAG,UAAU,CAAC;AAClE,gBAAA,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE;AACT,oBAAA,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,UAAU,CAAC;gBAC9C;qBAAO,IAAI,IAAI,CAAC,oBAAoB,CAAC,CAAC,CAAC,GAAG,UAAU,EAAE;oBAClD,IAAI,CAAC,oBAAoB,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,UAAU,CAAC;gBACtD;YACJ;YACA,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,UAAU,EAAE,WAAW,CAAC;QACrD;IACJ;IAEA,oBAAoB,GAAA;QAChB,IAAI,IAAI,CAAC,oBAAoB,CAAC,MAAM,IAAI,CAAC,EAAE;AACvC,YAAA,OAAO,IAAI;QACf;QACA,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,EAAE,GAAG,CAAC;AACtC,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,oBAAoB,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC;QACtE,IAAI,SAAS,EAAE,UAA8B;AAC7C,QAAA,IAAI,KAAK,IAAI,CAAC,CAAC,EAAE;YACb,SAAS,GAAG,IAAI,CAAC,oBAAoB,CAAC,MAAM,GAAG,CAAC;QACpD;aAAO,IAAI,IAAI,CAAC,oBAAoB,CAAC,KAAK,CAAC,IAAI,SAAS,EAAE;AACtD,YAAA,SAAS,GAAG,KAAK,GAAG,CAAC;AACrB,YAAA,UAAU,GAAG,KAAK,GAAG,CAAC;QAC1B;aAAO;AACH,YAAA,SAAS,GAAG,KAAK,GAAG,CAAC;YACrB,UAAU,GAAG,KAAK;QACtB;AACA,QAAA,MAAM,IAAI,GAAG,SAAS,IAAI,SAAS,GAAG,IAAI,CAAC,oBAAoB,CAAC,SAAS,CAAC,GAAG,SAAS;AACtF,QAAA,MAAM,KAAK,GAAG,UAAU,IAAI,SAAS,GAAG,IAAI,CAAC,oBAAoB,CAAC,UAAU,CAAC,GAAG,SAAS;AACzF,QAAA,IAAI,WAAW;QACf,IAAI,IAAI,IAAI,SAAS,IAAI,KAAK,IAAI,SAAS,EAAE;AACzC,YAAA,WAAW,GAAG,SAAS,GAAG,IAAI,IAAI,KAAK,GAAG,SAAS,GAAG,IAAI,GAAG,KAAK;QACtE;AAAO,aAAA,IAAI,IAAI,IAAI,SAAS,EAAE;YAC1B,WAAW,GAAG,IAAI;QACtB;AAAO,aAAA,IAAI,KAAK,IAAI,SAAS,EAAE;YAC3B,WAAW,GAAG,KAAK;QACvB;aAAO;AACH,YAAA,OAAO,IAAI;QACf;QACA,OAAO,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,WAAW,CAAC;IAChD;IAEA,gBAAgB,GAAA;AACZ,QAAA,IAAI,CAAC,oBAAoB,GAAG,EAAE;AAC9B,QAAA,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE;IAChC;AAEA,IAAA,IAAI,iBAAiB,GAAA;QACjB,OAAO;AACH,YAAA,QAAQ,EAAE,IAAI;AACd,YAAA,UAAU,EAAE,IAAI,CAAC,SAAS,EAAE,GAAG,CAAC;AAChC,YAAA,SAAS,EAAE,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE;AAClC,YAAA,WAAW,EAAE,CAAC,IAAI,CAAC,QAAQ;AAC3B,YAAA,WAAW,EAAE,IAAI,CAAC,oBAAoB,EAAE;AACxC,YAAA,QAAQ,EAAE,IAAI,CAAC,aAAa,EAAE,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC,SAAS,EAAE,IAAI,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK;AACxF,gBAAA,MAAM,EAAE,CAAC,CAAC,KAAK,EAAE;AACjB,gBAAA,UAAU,EAAE,CAAC,CAAC,SAAS,EAAE,IAAI;AAChC,aAAA,CAAC;SACL;IACL;wGA5XS,YAAY,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAC,wBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA;4GAAZ,YAAY,EAAA,CAAA;;4FAAZ,YAAY,EAAA,UAAA,EAAA,CAAA;kBADxB;;;MCAY,uBAAuB,GAAG,IAAI,cAAc,CAAgB,kBAAkB;IAE/E;AAAZ,CAAA,UAAY,WAAW,EAAA;AAAG,IAAA,WAAA,CAAA,WAAA,CAAA,WAAA,CAAA,GAAA,CAAA,CAAA,GAAA,WAAS;AAAE,IAAA,WAAA,CAAA,WAAA,CAAA,SAAA,CAAA,GAAA,CAAA,CAAA,GAAA,SAAO;AAAC,CAAC,EAAlC,WAAW,KAAX,WAAW,GAAA,EAAA,CAAA,CAAA;MAGV,aAAa,CAAA;AAEU,IAAA,KAAA;AAAhC,IAAA,WAAA,CAAgC,KAAsB,EAAA;QAAtB,IAAA,CAAA,KAAK,GAAL,KAAK;QACjC,MAAM,CAAC,MAAK;AACR,YAAA,IAAI,IAAI,CAAC,KAAK,EAAE,EAAE;gBACd,IAAI,CAAC,iBAAiB,EAAE;YAC5B;AACJ,QAAA,CAAC,CAAC;IACN;AAES,IAAA,KAAK,GAAG,MAAM,CAAC,KAAK,iDAAC;AACtB,IAAA,OAAO;AACf,IAAA,QAAQ;AACA,IAAA,IAAI;AACK,IAAA,aAAa,GAAG,IAAI,OAAO,EAAe;AACnD,IAAA,MAAM;AACN,IAAA,eAAe;IACf,cAAc,GAAG,KAAK;AACtB,IAAA,MAAM;AACL,IAAA,aAAa,GAAG,MAAM,CAAuC,MAAM,yDAAC;AACpE,IAAA,cAAc,GAAG,MAAM,CAAW,IAAI,GAAG,EAAE,0DAAC;AAC5C,IAAA,oBAAoB,GAAG,MAAM,CAAW,IAAI,GAAG,EAAE,gEAAC;AAClD,IAAA,eAAe,GAAG,MAAM,CAAW,IAAI,GAAG,EAAE,2DAAC;IAC9C,IAAI,GAAmB,EAAE;AAChB,IAAA,UAAU,GAAG,IAAI,GAAG,EAAyB;AAC9D,IAAA,IAAY,IAAI,GAAA;AACZ,QAAA,IAAI,IAAI,CAAC,OAAO,CAAC,cAAc,EAAE,IAAI,IAAI,CAAC,OAAO,CAAC,gBAAgB,EAAE,EAAE;AAClE,YAAA,OAAO,IAAI,CAAC,IAAI,EAAE,EAAE,IAAI;QAC5B;aAAO;AACH,YAAA,OAAO,IAAI,CAAC,IAAI,EAAE;QACtB;IACJ;AAEA,IAAA,IAAI,CAAC,IAAkS,EAAA;AACnS,QAAA,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO;AAC3B,QAAA,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ;AAC7B,QAAA,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI;QACrB,IAAI,CAAC,KAAK,EAAE;AACZ,QAAA,MAAM,cAAc,GAAG,IAAI,GAAG,EAAO;AACrC,QAAA,KAAI,MAAM,IAAI,IAAI,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,IAAE,EAAE,EAAC;AAC7C,YAAA,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC;QAC5B;AACA,QAAA,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,cAAc,CAAC;AACvC,QAAA,SAAS,CAAC,MAAM,IAAI,CAAC,oBAAoB,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;AACjE,QAAA,IAAI,IAAI,CAAC,gBAAgB,EAAE;AACvB,YAAA,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC,IAAG;gBAC5C,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC;YAChD,CAAC,CAAC,CAAC;QACP;AACA,QAAA,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM;AACzB,QAAA,IAAI,IAAI,CAAC,KAAK,EAAE;AACZ,YAAA,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK;QAC3B;AACA,QAAA,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,eAAe;QAC3C,IAAI,CAAC,4BAA4B,EAAE;AACnC,QAAA,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM;AACzB,QAAA,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC;QACpB,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,cAAc,IAAI,KAAK;IACtD;AAEA,IAAA,aAAa,CAAC,GAAW,EAAA;QACrB,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC;IACnC;AAEA,IAAA,eAAe,CAAC,KAAqB,EAAA;AACjC,QAAA,IAAI,IAAI,CAAC,eAAe,EAAE;AACtB,YAAA,OAAO,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC;QACtC;AACA,QAAA,OAAO,IAAI,CAAC,KAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC;IACrD;IAEQ,4BAA4B,GAAA;AAChC,QAAA,IAAI,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,IAAI,IAAI,CAAC,OAAO,CAAC,wBAAwB,EAAE,IAAI,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,KAAK,EAAE;AACpI,YAAA,MAAM,WAAW,GAAG,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC;YAC3D,SAAS,CAAC,MAAK;AACX,gBAAA,IAAI,IAAI,CAAC,cAAc,EAAE;oBACrB,IAAI,CAAC,MAAO,CAAC,UAAU,CAAC,GAAG,CAAC,WAAW,EAAE,IAAI,CAAC;gBAClD;AACA,gBAAA,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAO,CAAC,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,IAAI,WAAW,CAAC,OAAO,CAAC,EAAE,GAAG,CAAC,CAAC,IAAG;AAC1F,oBAAA,IAAI,IAAI,CAAC,MAAO,CAAC,cAAc,EAAE,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE;AAChD,wBAAA,IAAI,IAAI,CAAC,MAAO,CAAC,oBAAoB,EAAE,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE;AACtD,4BAAA,OAAO,eAAe;wBAC1B;6BAAO;AACH,4BAAA,OAAO,SAAS;wBACpB;oBACJ;yBAAO;AACH,wBAAA,OAAO,MAAM;oBACjB;AACJ,gBAAA,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,MAAM,IAAG;oBACnB,IAAI,MAAM,IAAI,eAAe,IAAI,IAAI,CAAC,aAAa,EAAE,IAAI,MAAM,EAAE;wBAC7D,IAAI,CAAC,YAAY,CAAC,MAAM,IAAI,SAAS,EAAE,WAAW,CAAC,OAAO,CAAC;oBAC/D;gBACJ,CAAC,CAAC,CAAC;AACH,gBAAA,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAK,CAAC,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,IAAI,WAAW,CAAC,OAAO,CAAC,EAAE,GAAG,CAAC,CAAC,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;qBACxG,SAAS,CAAC,MAAM,IAAG;AAChB,oBAAA,MAAM,OAAO,GAAG,MAAM,IAAI,MAAM;AAChC,oBAAA,MAAM,aAAa,GAAG,MAAM,IAAI,eAAe;AAC/C,oBAAA,IAAI,OAAO,IAAI,IAAI,CAAC,MAAO,CAAC,cAAc,EAAE,CAAC,GAAG,CAAC,WAAW,CAAC,IAAI,aAAa,IAAI,IAAI,CAAC,MAAO,CAAC,oBAAoB,EAAE,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE;wBACpI,IAAI,CAAC,MAAO,CAAC,gBAAgB,CAAC,WAAW,EAAE,OAAO,EAAE,aAAa,CAAC;wBAClE,IAAI,CAAC,MAAO,CAAC,oBAAoB,CAAC,WAAW,CAAC,OAAO,CAAC;oBAC1D;gBACJ,CAAC,CAAC,CAAC;AACX,YAAA,CAAC,CAAC;QAEN;IACJ;IAEA,iBAAiB,GAAA;AACb,QAAA,IAAI,GAAa;AACjB,QAAA,IAAI,IAAI,CAAC,OAAO,CAAC,iBAAiB,EAAE,EAAE;YAClC,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,EAAE,WAAW,EAAE,IAAI,EAAE;YAC5C,GAAG,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,GAAG,IAAI,IAAI,CAAC,KAAK,EAAE,iBAAiB,CAAC,IAAI,CAAC,OAAO,CAAC,iBAAiB,EAAG,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,IAAI,EAAE,EAAE,GAAG,EAAE,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,GAAG,EAAE,CAAC,CAAC;AAC1K,iBAAA,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;QACxC;aAAO;AACH,YAAA,GAAG,GAAG,IAAI,GAAG,EAAO;QACxB;AACA,QAAA,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,GAAG,CAAC;IACjC;AAEA,IAAA,YAAY,CAAC,OAAgB,EAAE,KAAK,GAAG,WAAW,CAAC,SAAS,EAAA;QACxD,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,GAAG,IAAI,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC;AACpJ,QAAA,IAAI,CAAC,oBAAoB,CAAC,KAAK,CAAC;IACpC;AAEA,IAAA,aAAa,CAAC,GAAQ,EAAE,KAAK,GAAG,WAAW,CAAC,SAAS,EAAA;QACjD,IAAI,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,EAAE;YAChF,IAAI,CAAC,aAAa,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,EAAE,KAAK,CAAC;QAClF;IACJ;IAEA,aAAa,CAAC,GAAQ,EAAE,OAAgB,EAAE,KAAK,GAAG,WAAW,CAAC,SAAS,EAAA;AACnE,QAAA,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC;AAClD,QAAA,IAAI,CAAC,oBAAoB,CAAC,KAAK,CAAC;IACpC;AAEA,IAAA,iBAAiB,CAAC,IAAW,EAAE,KAAK,GAAG,WAAW,CAAC,SAAS,EAAA;AACxD,QAAA,IAAI,CAAC,cAAc,EAAE,CAAC,KAAK,EAAE;AAC7B,QAAA,IAAI,CAAC,oBAAoB,EAAE,CAAC,KAAK,EAAE;QACnC,IAAI,CAAC,OAAO,CAAC,GAAG,IAAI,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,IAAI,CAAC,CAAC;AACpE,QAAA,IAAI,CAAC,oBAAoB,CAAC,KAAK,CAAC;IACpC;AAEA,IAAA,gBAAgB,CAAC,GAAW,EAAE,OAAgB,EAAE,aAAa,GAAG,KAAK,EAAA;QACjE,IAAI,OAAO,IAAI,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,EAAE;AACvC,YAAA,IAAI,CAAC,cAAc,EAAE,CAAC,KAAK,EAAE;QACjC;AACA,QAAA,aAAa,GAAG,OAAO,IAAI,aAAa,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE;AACvE,QAAA,IAAI,aAAa,IAAI,CAAC,IAAI,CAAC,oBAAoB,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE;YACxD,IAAI,CAAC,oBAAoB,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC;QACxC;AAAO,aAAA,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,oBAAoB,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE;YAC/D,IAAI,CAAC,oBAAoB,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC;QAC3C;AACA,QAAA,IAAI,OAAO,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE;YAC5C,IAAI,CAAC,cAAc,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC;QAClC;AAAO,aAAA,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE;YACnD,IAAI,CAAC,cAAc,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC;QACrC;IACJ;AAEA,IAAA,oBAAoB,CAAC,KAAkB,EAAA;AACnC,QAAA,MAAM,iBAAiB,GAAG,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,EAAE;QACzG,MAAM,OAAO,GAAG,iBAAiB,CAAC,MAAM,GAAG,CAAC,IAAI,iBAAiB,CAAC,KAAK,CAAC,GAAG,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,oBAAoB,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;QACrL,IAAI,OAAO,EAAE;AACT,YAAA,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,SAAS,CAAC;QACrC;aAAO;AACH,YAAA,MAAM,aAAa,GAAG,iBAAiB,CAAC,IAAI,CAAC,GAAG,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,IAAI,IAAI,CAAC,oBAAoB,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO;AACrK,YAAA,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,aAAa,GAAG,eAAe,GAAG,MAAM,CAAC;QACpE;AACA,QAAA,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC;AAC5D,QAAA,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,oBAAoB,EAAE,CAAC,CAAC,CAAC;AACxE,QAAA,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC;IAClC;IAEA,eAAe,GAAA;QACX,OAAO,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,GAAG,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;IAClF;IAEA,KAAK,GAAA;AACD,QAAA,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,IAAI,EAAE;YACzB,GAAG,CAAC,WAAW,EAAE;QACrB;QACA,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,EAAE;YACxC,GAAG,CAAC,KAAK,EAAE;QACf;AACA,QAAA,IAAI,CAAC,IAAI,GAAG,EAAE;AACd,QAAA,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE;IAC3B;wGA1LS,aAAa,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAC,IAAA,CAAA,cAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA;4GAAb,aAAa,EAAA,CAAA;;4FAAb,aAAa,EAAA,UAAA,EAAA,CAAA;kBADzB;;0BAGgB;;;MCPJ,aAAa,CAAA;AAEU,IAAA,KAAA;AAAhC,IAAA,WAAA,CAAgC,KAAsB,EAAA;QAAtB,IAAA,CAAA,KAAK,GAAL,KAAK;IAAqB;AAElD,IAAA,OAAO;AACP,IAAA,QAAQ;AACR,IAAA,IAAI;AACH,IAAA,WAAW,GAAG,IAAI,GAAG,EAAE;IACvB,OAAO,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,YAAY,EAAE,EAAA,IAAA,SAAA,GAAA,CAAA,EAAA,SAAA,EAAA,SAAA,EAAA,CAAA,GAAA,EAAA,CAAA,CAAC;AAEtD,IAAA,IAAI,CAAC,IAAuF,EAAA;AACxF,QAAA,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO;AAC3B,QAAA,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ;AAC7B,QAAA,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI;IACzB;IAEA,YAAY,GAAA;AACR,QAAA,MAAM,OAAO,GAAG,IAAI,GAAG,EAAe;AACtC,QAAA,IAAI,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,IAAI,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,IAAI,MAAM,EAAE;YAClE,IAAI,CAAC,IAAI,EAAE,EAAE,OAAO,CAAC,CAAC,GAAQ,KAAI;AAC9B,gBAAA,IAAI,CAAC,kBAAkB,CAAC,GAAG,EAAE,OAAO,CAAC;AACzC,YAAA,CAAC,CAAC;QACN;AACA,QAAA,OAAO,OAAO;IAClB;IAEA,cAAc,CAAC,GAAQ,EAAE,OAAgB,EAAA;QACrC,IAAI,OAAO,EAAE;AACT,YAAA,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC;QAC7B;aAAO;AACH,YAAA,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,GAAG,CAAC;QAChC;IACJ;AAEA,IAAA,kBAAkB,CAAC,GAAQ,EAAE,OAAyB,EAAE,WAAW,GAAG,CAAC,EAAA;AACnE,QAAA,MAAM,IAAI,GAAQ;YACd,KAAK,EAAE,WAAW,GAAG,CAAC;AACtB,YAAA,IAAI,EAAE,GAAG;AACT,YAAA,QAAQ,EAAE;SACb;AACD,QAAA,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,IAAI,CAAC;AACrC,QAAA,IAAI,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,IAAI,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,IAAI,MAAM,EAAE;AAClE,YAAA,IAAI,QAAe;AACnB,YAAA,IAAI,IAAI,CAAC,OAAO,CAAC,eAAe,EAAE,EAAE;AAChC,gBAAA,QAAQ,GAAG,IAAI,CAAC,KAAK,EAAE,iBAAiB,CAAC,IAAI,CAAC,OAAO,CAAC,eAAe,EAAE,EAAE,EAAE,GAAG,EAAE,CAAC;YACrF;iBAAO;AACH,gBAAA,QAAQ,GAAG,GAAG,CAAC,QAAQ;YAC3B;AACA,YAAA,IAAI,QAAQ,EAAE,MAAM,EAAE;AAClB,gBAAA,IAAI,CAAC,QAAQ,GAAG,QAAQ;AACxB,gBAAA,QAAQ,CAAC,OAAO,CAAC,KAAK,IAAG;oBACrB,IAAI,CAAC,kBAAkB,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC;AACvD,gBAAA,CAAC,CAAC;YACN;QACJ;IACJ;AAEA,IAAA,kBAAkB,CAAC,GAAQ,EAAA;QACvB,MAAM,GAAG,GAAG,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC;AAC9B,QAAA,IAAI,GAAG,GAAG,CAAC,GAAG,CAAC;AACf,QAAA,IAAI,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,IAAI,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,IAAI,MAAM,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,QAAQ,EAAE,MAAM,IAAI,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE;AAC5I,YAAA,GAAG,GAAG,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,GAAG,CAAC,GAAG,CAAE,CAAC,QAAQ,CAAC;QACvD;AACA,QAAA,OAAO,GAAG;IACd;wGAhES,aAAa,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAA,IAAA,CAAA,cAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA;4GAAb,aAAa,EAAA,CAAA;;4FAAb,aAAa,EAAA,UAAA,EAAA,CAAA;kBADzB;;0BAGgB;;;MCDJ,gBAAgB,CAAA;AAEO,IAAA,KAAA;AAAhC,IAAA,WAAA,CAAgC,KAAsB,EAAA;QAAtB,IAAA,CAAA,KAAK,GAAL,KAAK;IAAqB;AAElD,IAAA,KAAK,GAAG,MAAM,CAAC,KAAK,iDAAC;AACrB,IAAA,OAAO;AACP,IAAA,IAAI;AACJ,IAAA,MAAM;AACN,IAAA,MAAM;AACN,IAAA,QAAQ;IAChB,YAAY,GAAG,KAAK;IAEX,YAAY,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,iBAAiB,EAAE,EAAA,IAAA,SAAA,GAAA,CAAA,EAAA,SAAA,EAAA,cAAA,EAAA,CAAA,GAAA,EAAA,CAAA,CAAC;IACvD,iBAAiB,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,sBAAsB,EAAE,EAAA,IAAA,SAAA,GAAA,CAAA,EAAA,SAAA,EAAA,mBAAA,EAAA,CAAA,GAAA,EAAA,CAAA,CAAC;AAE1E,IAAA,IAAI,CAAC,IAAuM,EAAA;AACxM,QAAA,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO;AAC3B,QAAA,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI;AACrB,QAAA,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM;AACzB,QAAA,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM;AACzB,QAAA,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ;AAC7B,QAAA,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC;IACxB;IAEQ,iBAAiB,GAAA;AACrB,QAAA,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,EAAE;AACf,YAAA,OAAO,EAAE;QACb;QACA,IAAI,GAAG,GAA4C,EAAE;AACrD,QAAA,IAAI,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,IAAI,IAAI,CAAC,IAAI,EAAE,EAAE;AAC7C,YAAA,IAAI,IAAI,CAAC,OAAO,CAAC,cAAc,EAAE,IAAI,IAAI,CAAC,OAAO,CAAC,gBAAgB,EAAE,EAAE;AAClE,gBAAA,GAAG,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC,gBAAgB;YACtC;iBAAO;AACH,gBAAA,GAAG,GAAG,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC;YAClD;QACJ;AACA,QAAA,OAAO,GAAG;IACd;IAEQ,sBAAsB,GAAA;QAC1B,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;AACjC,YAAA,OAAO,EAAE;QACb;QACA,IAAI,GAAG,GAAsE,EAAE;QAC/E,MAAM,UAAU,GAAG,IAAI,CAAC,QAAQ,CAAC,eAAe,EAAE,CAAC,CAAC,CAAC;QACrD,IAAI,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,IAAI,UAAU,EAAE;AAC5C,YAAA,IAAI,IAAI,CAAC,OAAO,CAAC,cAAc,EAAE,IAAI,IAAI,CAAC,OAAO,CAAC,gBAAgB,EAAE,EAAE;AAClE,gBAAA,GAAG,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC,gBAAgB;YACtC;iBAAO;AACH,gBAAA,IAAI,CAAC,QAAQ,CAAC,SAAS,EAAE;AACzB,gBAAA,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,YAAY,EAAE,CAAC,GAAG,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;gBAClE,IAAI,KAAK,EAAE;oBACP,KAAK,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,IAAI,KAAK,EAAE;wBACjC,GAAG,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,IAAI,IAAI,CAAC,QAAQ,EAAE,SAAS,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;oBAC9F;gBACJ;YACJ;QACJ;AACA,QAAA,OAAO,GAAG;IACd;AAEA,IAAA,gBAAgB,CAAC,IAAW,EAAA;QACxB,MAAM,GAAG,GAAQ,EAAE;QACnB,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,aAAa,EAAE,CAAC,EAAE;AAC1D,YAAA,IAAI,GAAuB;AAC3B,YAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AAClC,gBAAA,IAAI,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC;AACjB,gBAAA,IAAI,IAAI,CAAC,MAAM,EAAE;AACb,oBAAA,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC;gBAC1B;AACA,gBAAA,IAAI,CAAC,CAAC,aAAa,EAAE,IAAI,KAAK,IAAI,CAAC,CAAC,aAAa,EAAE,IAAI,SAAS,EAAE;AAC9D,oBAAA,GAAG,GAAG,CAAC,GAAG,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC;gBACrC;AAAO,qBAAA,IAAI,CAAC,CAAC,aAAa,EAAE,IAAI,KAAK,EAAE;AACnC,oBAAA,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,MAAM,CAAC,gBAAgB,EAAE,GAAG,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC;gBAClE;AAAO,qBAAA,IAAI,CAAC,CAAC,aAAa,EAAE,IAAI,KAAK,EAAE;AACnC,oBAAA,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,MAAM,CAAC,gBAAgB,EAAE,GAAG,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC;gBAClE;AAAO,qBAAA,IAAI,CAAC,CAAC,aAAa,EAAE,IAAI,QAAQ,IAAI,CAAC,CAAC,WAAW,EAAE,EAAE;AACzD,oBAAA,GAAG,GAAG,IAAI,CAAC,KAAK,EAAE,iBAAiB,CAAC,CAAC,CAAC,WAAW,EAAE,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,EAAE,CAAC;gBACpH;YACJ;AACA,YAAA,IAAI,CAAC,CAAC,aAAa,EAAE,IAAI,SAAS,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE;gBACnD,GAAG,GAAG,CAAC,GAAG,IAAI,CAAC,IAAI,IAAI,CAAC,MAAM;YAClC;AACA,YAAA,IAAI,CAAC,CAAC,aAAa,EAAE,IAAI,KAAK,IAAI,IAAI,CAAC,MAAM,IAAI,CAAC,EAAE;gBAChD,GAAG,GAAG,CAAC;YACX;YACA,GAAG,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,GAAG,GAAG;QACxB;AACA,QAAA,OAAO,GAAG;IACd;AAEA,IAAA,IAAI,iBAAiB,GAAA;AACjB,QAAA,MAAM,GAAG,GAAQ;YACb,eAAe,EAAE,CAAC,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,IAAI,IAAI,CAAC,OAAO,CAAC,cAAc,EAAE,IAAI,IAAI,CAAC,OAAO,CAAC,gBAAgB;SACxI;AACD,QAAA,IAAI,GAAG,CAAC,eAAe,EAAE;AACrB,YAAA,GAAG,CAAC,iBAAiB,GAAG,EAAE;YAC1B,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,aAAa,EAAE,IAAI,CAAC,CAAC,aAAa,EAAE,IAAI,QAAQ,CAAC,EAAE;AAC3F,gBAAA,GAAG,CAAC,iBAAiB,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,GAAG,CAAC,CAAC,aAAa,EAAE;YACxD;QACJ;AACA,QAAA,OAAO,GAAG;IACd;wGAtGS,gBAAgB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAA,IAAA,CAAA,cAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA;4GAAhB,gBAAgB,EAAA,CAAA;;4FAAhB,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBAD5B;;0BAGgB;;;ACRjB;;AAEG;;;;"}
1
+ {"version":3,"file":"ngx-axis-appforge-axis-components-table-helper.mjs","sources":["../../../axis-components/table-helper/table-field-display.service.ts","../../../axis-components/table-helper/table.service.ts","../../../axis-components/table-helper/select.service.ts","../../../axis-components/table-helper/expand.service.ts","../../../axis-components/table-helper/statistic.service.ts","../../../axis-components/table-helper/ngx-axis-appforge-axis-components-table-helper.ts"],"sourcesContent":["import { DatePipe, DecimalPipe, PercentPipe } from \"@angular/common\";\nimport { Injectable, Optional } from \"@angular/core\";\nimport { BaseTableFieldOptions } from \"./base-table.options\";\nimport { ScopeDirective } from \"ngx-axis-appforge/core\";\n\n@Injectable()\nexport class TableFieldDisplayService {\n constructor(private datePipe: DatePipe, private decimalPipe: DecimalPipe, private percentPipe: PercentPipe, @Optional() private scope?: ScopeDirective) { }\n\n private readonly fieldDisplayCache = new Map<string, Map<string, string>>();\n\n clearCache(field?: string) {\n if (!field) {\n this.fieldDisplayCache.clear();\n } else {\n this.fieldDisplayCache.delete(field);\n }\n }\n\n getFieldDisplayText(field: BaseTableFieldOptions, row: any, loopRow?: any): any {\n if ([\"axis-components/text\", \"axis-components/badge\"].includes(field.child()?.component)) {\n if (!this.fieldDisplayCache.has(field.field())) {\n this.fieldDisplayCache.set(field.field(), new Map<string, string>());\n }\n if (!this.fieldDisplayCache.get(field.field())!.has(row[field.field()])) {\n const child = this.scope?.snapshotOptions(field.child(), { row, loopRow });\n let text: any;\n switch (child.component) {\n case \"axis-components/text\":\n switch (child.transfer) {\n case \"date\":\n if (child.data) {\n text = this.datePipe.transform(new Date(child.data), child.dateFormat);\n } else {\n text = '';\n }\n break;\n case \"number\":\n text = this.decimalPipe.transform(child.data, this.getDigitsInfo(child));\n break;\n case \"percent\":\n text = this.percentPipe.transform(child.data, this.getDigitsInfo(child));\n break;\n case \"deepObj\":\n text = this.getDeepObjectValue(child);\n break;\n default:\n text = child.data;\n break;\n }\n break;\n case \"axis-components/badge\":\n text = child.text;\n break;\n }\n this.fieldDisplayCache.get(field.field())!.set(row[field.field()], text);\n }\n return this.fieldDisplayCache.get(field.field())!.get(row[field.field()])!;\n }\n return row[field.field()];\n }\n\n private getDigitsInfo(options: any): string | undefined {\n return `${options.integerMinLength}.${options.decimalRange[0]}-${options.decimalRange[1]}`;\n }\n\n private getDeepObjectValue(options: any): any {\n if (options.objPath) {\n const patharr = (options.objPath as string).split(\".\").map(p => p.trim());\n let outValue = options.data;\n for (let p of patharr) {\n if (Array.isArray(outValue)) {\n outValue = outValue?.[+p];\n } else {\n outValue = outValue?.[p];\n }\n }\n return outValue;\n }\n return options.data;\n }\n}","import { computed, effect, Injectable, signal, Signal } from \"@angular/core\";\nimport { BaseTableFieldOptions, BaseTableOptions } from \"./base-table.options\";\nimport { NzTableFilterList } from \"ng-zorro-antd/table\";\nimport { TableFieldDisplayService } from \"./table-field-display.service\";\nimport { ConstantPool } from \"@angular/compiler\";\n\n@Injectable()\nexport class TableService<T extends BaseTableOptions, F extends BaseTableFieldOptions> {\n constructor(private fieldDisplayService: TableFieldDisplayService) {\n effect(() => {\n if (this.ready()) {\n this.refreshFieldControls();\n }\n });\n effect(() => {\n if (this.ready() && this.useBackEndPaging() && this.data()) {\n this.pageIndex.set(this.data().page_index + 1);\n if (this.data()?.query_total) {\n this.hasTotal = true;\n this.rowtotal.set(this.data().total);\n }\n this.addCursorMark();\n }\n });\n }\n\n private ready = signal(false);\n private data!: Signal<any>;\n private options!: T;\n private fields!: Signal<F[]>;\n private getRow?: (row: any) => any;\n private cacheFilterItem!: boolean;\n\n readonly groupAbleFields = computed(() => {\n const fields = this.displayFields().filter(f => f.groupAble());\n fields.sort((a, b) => (a.groupLevel() ?? 0) - (b.groupLevel() ?? 0));\n return fields;\n });\n readonly rowsGroupMap = computed(() => this.buildRowsGroupMap());\n readonly useBackEndPaging = computed(() => this.options.showPagination() && this.options.useBackEndPaging())\n readonly rows = computed<any[] | undefined>(() => this.useBackEndPaging() ? this.data()?.rows : this.data());\n readonly pageIndex = signal<number>(1);\n hasTotal = false;\n readonly rowtotal = signal<number>(0);\n readonly displayFields = computed<F[]>(() => {\n if (!this.ready()) {\n return [];\n }\n return this.fields().filter(f => f.inuse());\n });\n readonly fieldsControlsMap = signal<{\n [field: string]: {\n sortFn?: any;\n filterItems?: NzTableFilterList;\n filterFn?: any;\n } | undefined;\n }>({});\n readonly tableData = signal<any[]>([]);\n readonly fieldsFilterValueMap = new Map<string, any>();\n readonly filedsFilterItemsCache = new Map<string, Map<any, any>>();\n readonly leaderFieldWidth = computed(() => this.buildLeaderFieldWidth());\n readonly pageSizeOptions = computed(() => this.options.pageSizeOptions().split(\",\").map(size => +size));\n readonly pageCursorMarks = new Map<number, any>();\n pageCursorMarkIndexs: number[] = [];\n\n init(opts: { data: Signal<any>, options: T, fields: Signal<F[]>, getRow?: (row: any) => any, cacheFilterItem?: boolean }) {\n this.data = opts.data;\n this.options = opts.options;\n this.fields = opts.fields;\n this.getRow = opts.getRow;\n this.cacheFilterItem = opts.cacheFilterItem ?? true;\n this.ready.set(true);\n this.refreshTableData();\n }\n\n refreshTableData() {\n let data = [...(this.rows() ?? [])];\n if (!this.useBackEndPaging()) {\n if (this.fieldsFilterValueMap.size) {\n data = data.filter(row => {\n for (const [field, filterValue] of this.fieldsFilterValueMap.entries()) {\n if (Array.isArray(filterValue)) {\n if (!filterValue.includes(row[field])) {\n return false;\n }\n } else {\n if (row[field] != filterValue) {\n return false;\n }\n }\n }\n return true;\n });\n }\n }\n const sortFields = this.fields().filter(f => this.fieldSortAble(f) && f.sortOrder() != null);\n if (sortFields.length) {\n sortFields.sort((a, b) => {\n let ap = this.fieldSortPriority(a);\n let bp = this.fieldSortPriority(b);\n if (ap === bp) {\n return 0;\n }\n if (ap === false) {\n return 1;\n } else if (bp === false) {\n return -1;\n } else {\n return (bp as number) - (ap as number);\n }\n });\n data.sort((a, b) => {\n for (const f of sortFields) {\n const sortFn = this.fieldsControlsMap()[f.field()]?.sortFn;\n if (typeof sortFn == \"function\") {\n const res = sortFn(a, b);\n if (res != 0) {\n return res * (f.sortOrder() == \"descend\" ? -1 : 1);\n }\n }\n }\n return 0;\n });\n }\n this.tableData.set(data);\n }\n\n buildRowsGroupMap(): Map<string, Map<string, number[]>> {\n const rowsGroupMap = new Map<string, Map<string, number[]>>();\n if (!this.useBackEndPaging()) {\n if (this.groupAbleFields().length > 0) {\n for (let i = 0; i < this.tableData().length; i++) {\n let valuePerfix = \"\";\n const row = this.tableData()[i];\n for (const field of this.groupAbleFields()) {\n if (!rowsGroupMap.has(field.field())) {\n rowsGroupMap.set(field.field(), new Map<string, number[]>());\n }\n const groups = rowsGroupMap.get(field.field())!;\n const value = valuePerfix + row[field.field()];\n const newGroup = !groups.has(value)\n if (newGroup) {\n groups.set(value, [i]);\n } else {\n groups.get(value)!.push(i);\n }\n valuePerfix += value + \"@\";\n }\n }\n }\n }\n for (let group of rowsGroupMap.values()) {\n for (let [value, indexes] of group) {\n if (indexes.length == 1) {\n group.delete(value);\n }\n }\n }\n return rowsGroupMap;\n }\n\n fieldSortAble(f: BaseTableFieldOptions): boolean {\n return f.sortAble() || f.groupAble();\n }\n\n fieldSortDirections(f: BaseTableFieldOptions): Array<'ascend' | 'descend' | null> {\n return f.groupAble() ? ['ascend', 'descend'] : ['ascend', 'descend', null];\n }\n\n fieldSortPriority(f: BaseTableFieldOptions): number | boolean {\n if (f.groupAble()) {\n return (f.groupLevel() ?? 0);\n }\n if (f.sortAble()) {\n let p = 0;\n if (this.groupAbleFields().length) {\n p = this.groupAbleFields()[this.groupAbleFields().length - 1].groupLevel() ?? 0;\n p *= -1;\n }\n return (p - 1 + (f.sortPriority() ?? 0));\n }\n return false;\n }\n\n getGroupValue(row: any): any {\n return row[this.groupAbleFields()[0].field()]\n }\n\n isGroupEnd(index: number, row: any): boolean {\n const topGroupField = this.groupAbleFields()[0];\n if (!topGroupField) {\n return false;\n }\n const indexs = this.rowsGroupMap().get(topGroupField.field())?.get(row[topGroupField.field()]?.toString());\n if (indexs) {\n return indexs[indexs.length - 1] == index;\n }\n return false;\n }\n\n rowspan(f: BaseTableFieldOptions, index: number, pageIndex: number, pageSize: number, row: any): number {\n if (f.groupAble()) {\n const value = this.groupAbleFields().slice(0, this.groupAbleFields().findIndex(_f => _f.field() == f.field()) + 1).map(_f => row[_f.field()]).join(\"@\");\n const indexs = this.rowsGroupMap().get(f.field())?.get(value);\n if (indexs) {\n const i = indexs.indexOf(index + (pageIndex - 1) * pageSize);\n if (i != -1) {\n if (i == 0) {\n return indexs.length;\n } else if (index == 0) {\n return indexs.length - i;\n } else {\n return 0;\n }\n }\n }\n }\n return 1;\n }\n\n refreshFieldControls(f?: string) {\n if (!this.cacheFilterItem) {\n if (!f) {\n this.filedsFilterItemsCache.clear();\n } else {\n this.filedsFilterItemsCache.delete(f);\n }\n this.fieldDisplayService.clearCache(f);\n }\n const res: { [field: string]: { sortFn?: any, filterItems?: NzTableFilterList, filterFn?: any } } = {};\n for (const field of this.displayFields()) {\n if (f && field.field() != f) {\n continue;\n }\n res[field.field()] = {};\n if (!this.options.useBackEndPaging() && field.filterAble()) {\n if (!this.filedsFilterItemsCache.has(field.field())) {\n this.filedsFilterItemsCache.set(field.field(), new Map<any, any>());\n }\n const filterItemsCache = this.filedsFilterItemsCache.get(field.field())!;\n for (let row of this.rows() ?? []) {\n if (this.getRow) {\n row = this.getRow(row);\n }\n const value = row[field.field()];\n if (!filterItemsCache.has(value)) {\n filterItemsCache.set(value, { value, text: this.fieldDisplayService.getFieldDisplayText(field, row) })\n }\n }\n res[field.field()].filterItems = Array.from(filterItemsCache.values());\n res[field.field()].filterFn = (fd: any[] | any, row: any) => {\n if (this.getRow) {\n row = this.getRow(row);\n }\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 (this.fieldSortAble(field)) {\n if (this.useBackEndPaging()) {\n res[field.field()].sortFn = true;\n } else {\n if (this.rows()?.map(row => this.getRow ? this.getRow(row) : row).some((row: any) => row[field.field()] != undefined && typeof (row[field.field()]) == \"number\")) {\n res[field.field()].sortFn = (a: any, b: any) => {\n if (this.getRow) {\n a = this.getRow(a)\n b = this.getRow(b)\n }\n return a[field.field()] - b[field.field()];\n };\n } else {\n res[field.field()].sortFn = (a: any, b: any) => {\n if (this.getRow) {\n a = this.getRow(a)\n b = this.getRow(b)\n }\n return ((a[field.field()] || \"\") + \"\").localeCompare(b[field.field()])\n };\n }\n }\n }\n }\n if (f) {\n this.fieldsControlsMap.set({\n ...this.fieldsControlsMap(),\n ...res\n });\n } else {\n this.fieldsControlsMap.set(res)\n }\n }\n\n sortChange() {\n this.clearCursorMarks();\n this.refreshTableData();\n }\n\n filterChange(field: string, value: any) {\n for (const item of this.filedsFilterItemsCache.get(field)!.values()) {\n item.byDefault = value != null && (Array.isArray(value) ? value.includes(item.value) : item.value == value);\n }\n if (value == null || Array.isArray(value) && value.length == 0) {\n this.fieldsFilterValueMap.delete(field);\n } else {\n this.fieldsFilterValueMap.set(field, value);\n }\n this.refreshTableData();\n }\n\n private buildLeaderFieldWidth(): number {\n if (!this.ready()) {\n return 0;\n }\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 addCursorMark() {\n const { cursor_mark } = this.data();\n if (cursor_mark) {\n const { page_index } = cursor_mark;\n if (!this.pageCursorMarks.has(page_index)) {\n const i = this.pageCursorMarkIndexs.findIndex(i => i > page_index);\n if (i == -1) {\n this.pageCursorMarkIndexs.push(page_index);\n } else if (this.pageCursorMarkIndexs[i] > page_index) {\n this.pageCursorMarkIndexs.splice(i, 0, page_index);\n }\n }\n this.pageCursorMarks.set(page_index, cursor_mark);\n }\n }\n\n getNearestCursorMark(): any {\n if (this.pageCursorMarkIndexs.length == 0) {\n return null;\n }\n const pageIndex = this.pageIndex() - 1;\n const index = this.pageCursorMarkIndexs.findIndex(i => i >= pageIndex);\n let leftIndex, rightIndex: number | undefined;\n if (index == -1) {\n leftIndex = this.pageCursorMarkIndexs.length - 1;\n } else if (this.pageCursorMarkIndexs[index] == pageIndex) {\n leftIndex = index - 1;\n rightIndex = index + 1;\n } else {\n leftIndex = index - 1;\n rightIndex = index;\n }\n const left = leftIndex != undefined ? this.pageCursorMarkIndexs[leftIndex] : undefined;\n const right = rightIndex != undefined ? this.pageCursorMarkIndexs[rightIndex] : undefined;\n let nearstIndex;\n if (left != undefined && right != undefined) {\n nearstIndex = pageIndex - left <= right - pageIndex ? left : right;\n } else if (left != undefined) {\n nearstIndex = left;\n } else if (right != undefined) {\n nearstIndex = right;\n } else {\n return null;\n }\n return this.pageCursorMarks.get(nearstIndex);\n }\n\n clearCursorMarks() {\n this.pageCursorMarkIndexs = [];\n this.pageCursorMarks.clear();\n }\n\n get backEndPageParams(): any {\n return {\n use_page: true,\n page_index: this.pageIndex() - 1,\n page_size: this.options.pageSize(),\n query_total: !this.hasTotal,\n cursor_mark: this.getNearestCursorMark(),\n order_by: this.displayFields().filter(f => f.sortAble() && f.sortOrder() != null).map(f => ({\n column: f.field(),\n desc_order: f.sortOrder() == \"descend\"\n }))\n };\n }\n\n}","import { computed, effect, Injectable, InjectionToken, Optional, Signal, signal, untracked } from \"@angular/core\";\nimport { SelectableTableOptions } from \"./base-table.options\";\nimport { ScopeDirective } from \"ngx-axis-appforge/core\";\nimport { filter, map, Subject, Subscription } from \"rxjs\";\n\nexport const AXIS_TABLE_SELECT_TOKEN = new InjectionToken<SelectService>('axis.tableSelect');\n\nexport enum ChangeScene { userClick, linkage }\n\n@Injectable()\nexport class SelectService {\n\n constructor(@Optional() private scope?: ScopeDirective) {\n effect(() => {\n if (this.ready()) {\n this.refreshDisabledId();\n }\n })\n }\n\n readonly ready = signal(false);\n private options!: SelectableTableOptions;\n keyField!: string;\n private data !: Signal<any>;\n private readonly changeSubject = new Subject<ChangeScene>();\n private parent?: SelectService;\n private subSelectKeyFun?: (scope: ScopeDirective) => string;\n private registToParent = false;\n private getRow?: (row: any) => any;\n readonly headerChecked = signal<\"checked\" | \"indeterminate\" | \"none\">(\"none\");\n readonly setOfCheckedId = signal<Set<any>>(new Set());\n readonly setOfIndeterminateId = signal<Set<any>>(new Set());\n readonly setOfDisabledId = signal<Set<any>>(new Set());\n private subs: Subscription[] = [];\n private readonly subSelects = new Map<string, SelectService>();\n private get rows(): any[] | undefined {\n if (this.options.showPagination() && this.options.useBackEndPaging()) {\n return this.data()?.rows;\n } else {\n return this.data();\n }\n }\n\n init(opts: { options: SelectableTableOptions, keyField: string, data: Signal<any>, onSelectedChange: (checkedIds: Set<any>) => void, parent?: SelectService, scope?: ScopeDirective | null, subSelectKeyFun?: (scope: ScopeDirective) => string, registToParent?: boolean, getRow?: (row: any) => any }) {\n this.options = opts.options;\n this.keyField = opts.keyField;\n this.data = opts.data;\n this.close();\n const setOfCheckedId = new Set<any>();\n for(const item of this.options.checkedKeys()??[]){\n setOfCheckedId.add(item);\n }\n this.setOfCheckedId.set(setOfCheckedId);\n untracked(() => this.refreshCheckedStatus(ChangeScene.userClick));\n if (opts.onSelectedChange) {\n this.subs.push(this.changeSubject.subscribe(_ => {\n opts.onSelectedChange(this.setOfCheckedId());\n }));\n }\n this.parent = opts.parent;\n if (opts.scope) {\n this.scope = opts.scope;\n }\n this.subSelectKeyFun = opts.subSelectKeyFun;\n this.initCheckboxLinkageForExpand();\n this.getRow = opts.getRow;\n this.ready.set(true);\n this.registToParent = opts.registToParent ?? false;\n }\n\n findSubSelect(key: string): SelectService | undefined {\n return this.subSelects.get(key);\n }\n\n getSubSelectKey(scope: ScopeDirective): string {\n if (this.subSelectKeyFun) {\n return this.subSelectKeyFun(scope);\n }\n return this.scope!.snapshot(\"row\")[this.keyField];\n }\n\n private initCheckboxLinkageForExpand() {\n if (this.options.showCheckbox() && !this.options.singleCheck() && this.options.checkboxLinkageForExpand() && this.parent && this.scope) {\n const keyInParent = this.parent.getSubSelectKey(this.scope);\n untracked(() => {\n if (this.registToParent) {\n this.parent!.subSelects.set(keyInParent, this);\n }\n this.subs.push(this.parent!.changeSubject.pipe(filter(s => s != ChangeScene.linkage), map(_ => {\n if (this.parent!.setOfCheckedId().has(keyInParent)) {\n if (this.parent!.setOfIndeterminateId().has(keyInParent)) {\n return \"indeterminate\";\n } else {\n return \"checked\";\n }\n } else {\n return \"none\";\n }\n })).subscribe(header => {\n if (header != 'indeterminate' && this.headerChecked() != header) {\n this.onAllChecked(header == \"checked\", ChangeScene.linkage);\n }\n }));\n this.subs.push(this!.changeSubject.pipe(filter(s => s != ChangeScene.linkage), map(_ => this.headerChecked()))\n .subscribe(header => {\n const checked = header != \"none\";\n const indeterminate = header == \"indeterminate\";\n if (checked != this.parent!.setOfCheckedId().has(keyInParent) || indeterminate != this.parent!.setOfIndeterminateId().has(keyInParent)) {\n this.parent!.updateCheckedSet(keyInParent, checked, indeterminate);\n this.parent!.refreshCheckedStatus(ChangeScene.linkage);\n }\n }));\n });\n\n }\n }\n\n refreshDisabledId() {\n let res: Set<any>;\n if (this.options.disableCheckboxFn()) {\n const args = this.scope?.snapshotAll() ?? {};\n res = new Set(this.rows?.filter(row => this.scope?.runFnWithSnapshot(this.options.disableCheckboxFn()!, Object.assign({}, args, { row: this.getRow ? this.getRow(row) : row })))\n .map(row => row[this.keyField]));\n } else {\n res = new Set<any>();\n }\n this.setOfDisabledId.set(res);\n }\n\n onAllChecked(checked: boolean, scene = ChangeScene.userClick) {\n this.rows?.filter(row => !this.setOfDisabledId().has(row[this.keyField]))?.forEach(row => this.updateCheckedSet(row[this.keyField], checked, false));\n this.refreshCheckedStatus(scene);\n }\n\n toggleChecked(row: any, scene = ChangeScene.userClick) {\n if (this.options.showCheckbox() && !this.setOfDisabledId().has(row[this.keyField])) {\n this.onItemChecked(row, !this.setOfCheckedId().has(row[this.keyField]), scene);\n }\n }\n\n onItemChecked(row: any, checked: boolean, scene = ChangeScene.userClick): void {\n this.updateCheckedSet(row[this.keyField], checked);\n this.refreshCheckedStatus(scene);\n }\n\n onSetItemsChecked(rows: any[], scene = ChangeScene.userClick): void {\n this.setOfCheckedId().clear();\n this.setOfIndeterminateId().clear();\n rows.forEach(row => this.updateCheckedSet(row[this.keyField], true));\n this.refreshCheckedStatus(scene);\n }\n\n updateCheckedSet(key: string, checked: boolean, indeterminate = false): void {\n if (checked && this.options.singleCheck()) {\n this.setOfCheckedId().clear();\n }\n indeterminate = checked && indeterminate && !this.options.singleCheck();\n if (indeterminate && !this.setOfIndeterminateId().has(key)) {\n this.setOfIndeterminateId().add(key);\n } else if (!indeterminate && this.setOfIndeterminateId().has(key)) {\n this.setOfIndeterminateId().delete(key);\n }\n if (checked && !this.setOfCheckedId().has(key)) {\n this.setOfCheckedId().add(key);\n } else if (!checked && this.setOfCheckedId().has(key)) {\n this.setOfCheckedId().delete(key);\n }\n }\n\n refreshCheckedStatus(scene: ChangeScene): void {\n const listOfEnabledData = this.rows?.filter(row => !this.setOfDisabledId().has(row[this.keyField])) ?? [];\n const checked = listOfEnabledData.length > 0 && listOfEnabledData.every(row => this.setOfCheckedId().has(row[this.keyField]) && !this.setOfIndeterminateId().has(row[this.keyField]));\n if (checked) {\n this.headerChecked.set(\"checked\");\n } else {\n const indeterminate = listOfEnabledData.some(row => this.setOfCheckedId().has(row[this.keyField]) || this.setOfIndeterminateId().has(row[this.keyField])) && !checked;\n this.headerChecked.set(indeterminate ? \"indeterminate\" : \"none\");\n }\n this.setOfCheckedId.set(new Set([...this.setOfCheckedId()]));\n this.setOfIndeterminateId.set(new Set([...this.setOfIndeterminateId()]));\n this.changeSubject.next(scene);\n }\n\n getSelectedData(): any[] | undefined {\n return this.rows?.filter(row => this.setOfCheckedId().has(row[this.keyField]));\n }\n\n close() {\n for (const sub of this.subs) {\n sub.unsubscribe();\n }\n for (const sub of this.subSelects.values()) {\n sub.close();\n }\n this.subs = [];\n this.subSelects.clear();\n }\n}","import { computed, Injectable, Optional, Signal } from \"@angular/core\";\nimport { ExpandableTableOptions } from \"./base-table.options\";\nimport { ScopeDirective } from \"ngx-axis-appforge/core\";\n\n@Injectable()\nexport class ExpandService {\n\n constructor(@Optional() private scope?: ScopeDirective) { }\n\n private options!: ExpandableTableOptions;\n private keyField!: string;\n private data !: Signal<any[] | null>;\n readonly expandedSet = new Set();\n readonly nodeMap = computed(() => this.buildNodeMap());\n\n init(opts: { options: ExpandableTableOptions, keyField: string, data: Signal<any[] | null> }) {\n this.options = opts.options;\n this.keyField = opts.keyField;\n this.data = opts.data;\n }\n\n buildNodeMap(): Map<string, { level: number, node: any, children?: any[] }> {\n const nodeMap = new Map<string, any>();\n if (this.options.showExpand() && this.options.expandMode() == \"tree\") {\n this.data()?.forEach((row: any) => {\n this.buildNodeMapForRow(row, nodeMap);\n });\n }\n return nodeMap;\n }\n\n onExpandChange(key: any, checked: boolean): void {\n if (checked) {\n this.expandedSet.add(key);\n } else {\n this.expandedSet.delete(key);\n }\n }\n\n buildNodeMapForRow(row: any, nodeMap: Map<string, any>, parentLevel = 0) {\n const node: any = {\n level: parentLevel + 1,\n node: row,\n children: []\n };\n nodeMap.set(row[this.keyField], node)\n if (this.options.showExpand() && this.options.expandMode() == \"tree\") {\n let children: any[];\n if (this.options.treeChildrenFun()) {\n children = this.scope?.runFnWithSnapshot(this.options.treeChildrenFun(), { row })\n } else {\n children = row.children;\n }\n if (children?.length) {\n node.children = children;\n children.forEach(child => {\n this.buildNodeMapForRow(child, nodeMap, node.level);\n });\n }\n }\n }\n\n getListForExpanded(row: any): any[] {\n const key = row[this.keyField];\n let res = [row];\n if (this.options.showExpand() && this.options.expandMode() == \"tree\" && this.nodeMap().get(key)?.children?.length && this.expandedSet.has(key)) {\n res = res.concat(this.nodeMap().get(key)!.children)\n }\n return res;\n }\n}","import { computed, Injectable, Optional, signal, Signal } from \"@angular/core\";\nimport { BaseTableFieldOptions, BaseTableOptions, StatisticTableFieldOptions, StatisticTableOptions } from \"./base-table.options\";\nimport { ScopeDirective } from \"ngx-axis-appforge/core\";\nimport { TableService } from \"./table.service\";\n\n@Injectable()\nexport class StatisticService {\n\n constructor(@Optional() private scope?: ScopeDirective) { }\n\n private ready = signal(false);\n private options!: StatisticTableOptions;\n private data !: Signal<any>;\n private fields!: Signal<StatisticTableFieldOptions[]>;\n private getRow?: (row: any) => any;\n private tableSvc?: TableService<BaseTableOptions, BaseTableFieldOptions>;\n hasStatistic = false;\n\n readonly statisticMap = computed(() => this.buildStatisticMap());\n readonly statisticGroupMap = computed(() => this.buildStatisticGroupMap());\n\n init(opts: { options: StatisticTableOptions, data: Signal<any>, fields: Signal<StatisticTableFieldOptions[]>, getRow?: (row: any) => any, tableSvc?: TableService<BaseTableOptions, BaseTableFieldOptions> }) {\n this.options = opts.options;\n this.data = opts.data;\n this.fields = opts.fields;\n this.getRow = opts.getRow;\n this.tableSvc = opts.tableSvc;\n this.ready.set(true);\n }\n\n private buildStatisticMap(): { [field: string]: number | undefined } {\n if (!this.ready()) {\n return {};\n }\n let res: { [field: string]: number | undefined } = {};\n if (this.options.showStatistic() && this.data()) {\n if (this.options.showPagination() && this.options.useBackEndPaging()) {\n res = this.data().statistic_result;\n } else {\n res = this.statisticCompute(this.data() ?? []);\n }\n }\n return res;\n }\n\n private buildStatisticGroupMap(): { [groupValue: string]: { [field: string]: number | undefined } } {\n if (!this.ready() || !this.tableSvc) {\n return {};\n }\n let res: { [groupValue: string]: { [field: string]: number | undefined } } = {};\n const groupField = this.tableSvc.groupAbleFields()[0];\n if (this.options.showStatistic() && groupField) {\n if (this.options.showPagination() && this.options.useBackEndPaging()) {\n res = this.data().statistic_result;\n } else {\n this.tableSvc.tableData();\n const group = this.tableSvc.rowsGroupMap().get(groupField.field());\n if (group) {\n for (const [value, indexs] of group) {\n res[value] = this.statisticCompute(indexs.map(index => this.tableSvc?.tableData()[index]));\n }\n }\n }\n }\n return res;\n }\n\n statisticCompute(data: any[]): any {\n const res: any = {};\n for (const f of this.fields().filter(r => r.statisticAble())) {\n let num: number | undefined;\n for (let i = 0; i < data.length; i++) {\n let row = data[i];\n if (this.getRow) {\n row = this.getRow(row);\n }\n if (f.statisticType() == \"sum\" || f.statisticType() == \"average\") {\n num = (num ?? 0) + row[f.field()];\n } else if (f.statisticType() == \"max\") {\n num = Math.max(num ?? Number.MIN_SAFE_INTEGER, row[f.field()]);\n } else if (f.statisticType() == \"min\") {\n num = Math.min(num ?? Number.MAX_SAFE_INTEGER, row[f.field()]);\n } else if (f.statisticType() == \"custom\" && f.statisticFn()) {\n num = this.scope?.runFnWithSnapshot(f.statisticFn(), { result: num, index: i, row: row, value: row[f.field()] });\n }\n }\n if (f.statisticType() == \"average\" && data.length > 0) {\n num = (num ?? 0) / data.length;\n }\n if (f.statisticType() == \"sum\" && data.length == 0) {\n num = 0;\n }\n res[f.field()] = num;\n }\n return res;\n }\n\n get backEndPageParams(): any {\n const res: any = {\n query_statistic: !this.hasStatistic && this.options.showStatistic() && this.options.showPagination() && this.options.useBackEndPaging()\n };\n if (res.query_statistic) {\n res.statistic_options = {};\n for (const f of this.fields().filter(r => r.statisticAble() && r.statisticType() != \"custom\")) {\n res.statistic_options[f.field()] = f.statisticType();\n }\n }\n return res;\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i2","i1.TableFieldDisplayService","i1"],"mappings":"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"}
@@ -14,12 +14,12 @@ import * as i4 from 'ng-zorro-antd/modal';
14
14
  import { NzModalModule } from 'ng-zorro-antd/modal';
15
15
  import { moveItemInArray, transferArrayItem, CdkDrag, CdkDropList } from '@angular/cdk/drag-drop';
16
16
  import { debounceTime, Subject, tap, filter, take, of, map } from 'rxjs';
17
+ import { CommonModule, DatePipe, DecimalPipe, PercentPipe } from '@angular/common';
17
18
  import * as i3 from 'ng-zorro-antd/core/transition-patch';
18
19
  import * as i3$1 from 'ng-zorro-antd/resizable';
19
20
  import { NzResizableModule } from 'ng-zorro-antd/resizable';
20
21
  import * as i4$1 from 'ng-zorro-antd/flex';
21
22
  import { NzFlexModule } from 'ng-zorro-antd/flex';
22
- import { DatePipe, DecimalPipe, PercentPipe } from '@angular/common';
23
23
  import * as i1$1 from 'ngx-axis-appforge/axis-components/table-helper';
24
24
  import { AXIS_TABLE_SELECT_TOKEN, TableFieldDisplayService, TableService, SelectService, ExpandService, StatisticService } from 'ngx-axis-appforge/axis-components/table-helper';
25
25
  import { utils } from 'xlsx-js-style';
@@ -97,8 +97,8 @@ class TableFieldOptions {
97
97
 
98
98
  class TableSetter {
99
99
  constructor() {
100
- effect(() => this.buildFixAndNotFixColumn());
101
- effect(() => this.onChange.emit(this.fix()));
100
+ effect(() => this.buildFixAndNotFixColumn(), { debugName: "test" });
101
+ effect(() => this.onChange.emit([...this.fix()]));
102
102
  this.sub = this.saveCacheSubject.pipe(debounceTime(200)).subscribe(v => this.saveCache());
103
103
  }
104
104
  fields = input.required(...(ngDevMode ? [{ debugName: "fields" }] : []));
@@ -112,20 +112,21 @@ class TableSetter {
112
112
  sub;
113
113
  buildFixAndNotFixColumn() {
114
114
  this.loadCache();
115
+ const fields = this.fields();
115
116
  if (this.cache) {
116
117
  const fieldMap = new Map();
117
- for (const f of this.fields()) {
118
+ for (const f of fields) {
118
119
  fieldMap.set(f.field(), f);
119
120
  if (this.cache.widths.hasOwnProperty(f.field())) {
120
121
  f.width.set(this.cache.widths[f.field()]);
121
122
  }
122
123
  }
123
124
  this.fix.set(this.cache.fix.filter(f => fieldMap.has(f)).map(f => fieldMap.get(f))
124
- .concat(this.fields().filter(f => !this.cache.fix.includes(f.field()) && !this.cache.notFix.includes(f.field()))));
125
+ .concat(fields.filter(f => !this.cache.fix.includes(f.field()) && !this.cache.notFix.includes(f.field()))));
125
126
  this.notFix.set(this.cache.notFix.filter(f => fieldMap.has(f)).map(f => fieldMap.get(f)));
126
127
  }
127
128
  else {
128
- this.fix.set(this.fields());
129
+ this.fix.set([...fields]);
129
130
  }
130
131
  }
131
132
  loadCache() {
@@ -176,7 +177,7 @@ class TableSetter {
176
177
  this.saveCacheSubject.next();
177
178
  }
178
179
  resetDefault() {
179
- this.fix.set(this.fields());
180
+ this.fix.set([...this.fields()]);
180
181
  this.notFix.set([]);
181
182
  if (this.cacheKey()) {
182
183
  localStorage.removeItem(this.cacheKey());
@@ -187,11 +188,11 @@ class TableSetter {
187
188
  this.saveCacheSubject.unsubscribe();
188
189
  }
189
190
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: TableSetter, deps: [], target: i0.ɵɵFactoryTarget.Component });
190
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.15", type: TableSetter, isStandalone: true, selector: "axis-table-setter", inputs: { fields: { classPropertyName: "fields", publicName: "fields", isSignal: true, isRequired: true, transformFunction: null }, cacheKey: { classPropertyName: "cacheKey", publicName: "cacheKey", isSignal: true, isRequired: false, transformFunction: null }, modalVisible: { classPropertyName: "modalVisible", publicName: "modalVisible", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { onChange: "onChange", modalVisible: "modalVisibleChange" }, ngImport: i0, template: "<a nz-button nzType=\"link\" nzSize=\"small\" (click)=\"modalVisible.set(true)\" style=\"margin: 2px;\">\n <nz-icon nzType=\"setting\" nzTheme=\"outline\" />\n</a>\n<nz-modal [(nzVisible)]=\"modalVisible\" nzTitle=\"\u8868\u5934\u8BBE\u7F6E\" nzDraggable [nzOkText]=\"null\" nzCancelText=\"\u5173\u95ED\"\n (nzOnCancel)=\"modalVisible.set(false)\">\n <ng-container *nzModalContent>\n <div nz-row [nzGutter]=\"24\">\n <div nz-col class=\"gutter-row\" [nzSpan]=\"12\">\n <div class=\"container\">\n <p>\u5C55\u793A\u5B57\u6BB5<a nz-button nzType=\"link\" (click)=\"resetDefault()\">\u6062\u590D\u9ED8\u8BA4</a></p>\n <div cdkDropList #todoList=\"cdkDropList\" [cdkDropListData]=\"fix()\"\n [cdkDropListConnectedTo]=\"[doneList]\" class=\"list\" (cdkDropListDropped)=\"drop($event)\">\n @for (item of fix(); track item; let i = $index) {\n <div class=\"box\" cdkDrag>\n {{ item.title() }}\n <nz-icon nzType=\"minus-circle\" nzTheme=\"outline\" (click)=\"deleteCustom(i)\" />\n </div>\n }\n </div>\n </div>\n </div>\n <div nz-col class=\"gutter-row\" [nzSpan]=\"12\">\n <div class=\"container\">\n <p>\u9690\u85CF\u5B57\u6BB5</p>\n <div cdkDropList #doneList=\"cdkDropList\" [cdkDropListData]=\"notFix()\"\n [cdkDropListConnectedTo]=\"[todoList]\" class=\"list\" (cdkDropListDropped)=\"drop($event)\">\n @for (item of notFix(); track item; let i = $index) {\n <div class=\"box\" cdkDrag>\n {{ item.title() }}\n <nz-icon nzType=\"plus-circle\" nzTheme=\"outline\" (click)=\"addCustom(i)\" />\n </div>\n }\n </div>\n </div>\n </div>\n </div>\n </ng-container>\n</nz-modal>", styles: [".container{height:350px;display:flex;flex-direction:column}.list{min-height:60px;border-radius:4px;overflow-x:hidden;overflow-y:auto;display:block;border:1px dashed #ccc;flex:1 1 auto}.list>.box{cursor:move}.cdk-drag-preview{box-sizing:border-box;border-radius:4px;box-shadow:0 5px 5px -3px #0003,0 8px 10px 1px #00000024,0 3px 14px 2px #0000001f}.cdk-drag-placeholder{opacity:0}.cdk-drag-animating{transition:transform .25s cubic-bezier(0,0,.2,1)}.list.cdk-drop-list-dragging .box:not(.cdk-drag-placeholder){transition:transform .25s cubic-bezier(0,0,.2,1)}.box{display:flex;flex-direction:row;justify-content:space-between;align-items:center;box-sizing:border-box;margin:4px;padding:4px 8px;background-color:#0070cc26}.box span{cursor:pointer}\n"], dependencies: [{ kind: "ngmodule", type: NzIconModule }, { kind: "directive", type: i1.NzIconDirective, selector: "nz-icon,[nz-icon]", inputs: ["nzSpin", "nzRotate", "nzType", "nzTheme", "nzTwotoneColor", "nzIconfont"], exportAs: ["nzIcon"] }, { kind: "ngmodule", type: NzButtonModule }, { kind: "component", type: i2.NzButtonComponent, selector: "button[nz-button], a[nz-button]", inputs: ["nzBlock", "nzGhost", "nzSearch", "nzLoading", "nzDanger", "disabled", "tabIndex", "nzType", "nzShape", "nzSize"], exportAs: ["nzButton"] }, { kind: "directive", type: i3.ɵ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: NzModalModule }, { kind: "component", type: i4.NzModalComponent, selector: "nz-modal", inputs: ["nzMask", "nzMaskClosable", "nzCloseOnNavigation", "nzVisible", "nzClosable", "nzOkLoading", "nzOkDisabled", "nzCancelDisabled", "nzCancelLoading", "nzKeyboard", "nzNoAnimation", "nzCentered", "nzDraggable", "nzContent", "nzFooter", "nzZIndex", "nzWidth", "nzWrapClassName", "nzClassName", "nzStyle", "nzTitle", "nzCloseIcon", "nzMaskStyle", "nzBodyStyle", "nzOkText", "nzCancelText", "nzOkType", "nzOkDanger", "nzIconType", "nzModalType", "nzAutofocus", "nzOnOk", "nzOnCancel"], outputs: ["nzOnOk", "nzOnCancel", "nzAfterOpen", "nzAfterClose", "nzVisibleChange"], exportAs: ["nzModal"] }, { kind: "directive", type: i4.NzModalContentDirective, selector: "[nzModalContent]", exportAs: ["nzModalContent"] }, { kind: "ngmodule", type: NzGridModule }, { kind: "directive", type: i5.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: i5.NzRowDirective, selector: "[nz-row],nz-row,nz-form-item", inputs: ["nzAlign", "nzJustify", "nzGutter"], exportAs: ["nzRow"] }, { kind: "directive", type: CdkDrag, selector: "[cdkDrag]", inputs: ["cdkDragData", "cdkDragLockAxis", "cdkDragRootElement", "cdkDragBoundary", "cdkDragStartDelay", "cdkDragFreeDragPosition", "cdkDragDisabled", "cdkDragConstrainPosition", "cdkDragPreviewClass", "cdkDragPreviewContainer", "cdkDragScale"], outputs: ["cdkDragStarted", "cdkDragReleased", "cdkDragEnded", "cdkDragEntered", "cdkDragExited", "cdkDragDropped", "cdkDragMoved"], exportAs: ["cdkDrag"] }, { kind: "directive", type: CdkDropList, selector: "[cdkDropList], cdk-drop-list", inputs: ["cdkDropListConnectedTo", "cdkDropListData", "cdkDropListOrientation", "id", "cdkDropListLockAxis", "cdkDropListDisabled", "cdkDropListSortingDisabled", "cdkDropListEnterPredicate", "cdkDropListSortPredicate", "cdkDropListAutoScrollDisabled", "cdkDropListAutoScrollStep", "cdkDropListElementContainer", "cdkDropListHasAnchor"], outputs: ["cdkDropListDropped", "cdkDropListEntered", "cdkDropListExited", "cdkDropListSorted"], exportAs: ["cdkDropList"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
191
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.15", type: TableSetter, isStandalone: true, selector: "axis-table-setter", inputs: { fields: { classPropertyName: "fields", publicName: "fields", isSignal: true, isRequired: true, transformFunction: null }, cacheKey: { classPropertyName: "cacheKey", publicName: "cacheKey", isSignal: true, isRequired: false, transformFunction: null }, modalVisible: { classPropertyName: "modalVisible", publicName: "modalVisible", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { onChange: "onChange", modalVisible: "modalVisibleChange" }, ngImport: i0, template: "<a nz-button nzType=\"link\" nzSize=\"small\" (click)=\"modalVisible.set(true)\"\n style=\"margin: 2px;\">\n <nz-icon nzType=\"setting\" nzTheme=\"outline\" />\n</a>\n<nz-modal [(nzVisible)]=\"modalVisible\" nzTitle=\"\u8868\u5934\u8BBE\u7F6E\" nzDraggable [nzOkText]=\"null\" nzCancelText=\"\u5173\u95ED\"\n (nzOnCancel)=\"modalVisible.set(false)\">\n <ng-container *nzModalContent>\n <div nz-row [nzGutter]=\"24\">\n <div nz-col class=\"gutter-row\" [nzSpan]=\"12\">\n <div class=\"container\">\n <p>\u5C55\u793A\u5B57\u6BB5<a nz-button nzType=\"link\" (click)=\"resetDefault()\">\u6062\u590D\u9ED8\u8BA4</a></p>\n <div cdkDropList #todoList=\"cdkDropList\" [cdkDropListData]=\"fix()\"\n [cdkDropListConnectedTo]=\"[doneList]\" class=\"list\" (cdkDropListDropped)=\"drop($event)\">\n @for (item of fix(); track item.field(); let i = $index) {\n <div class=\"box\" cdkDrag>\n {{ item.title() }}\n <nz-icon nzType=\"minus-circle\" nzTheme=\"outline\" (click)=\"deleteCustom(i)\" />\n </div>\n }\n </div>\n </div>\n </div>\n <div nz-col class=\"gutter-row\" [nzSpan]=\"12\">\n <div class=\"container\">\n <p>\u9690\u85CF\u5B57\u6BB5</p>\n <div cdkDropList #doneList=\"cdkDropList\" [cdkDropListData]=\"notFix()\"\n [cdkDropListConnectedTo]=\"[todoList]\" class=\"list\" (cdkDropListDropped)=\"drop($event)\">\n @for (item of notFix(); track item.field(); let i = $index) {\n <div class=\"box\" cdkDrag>\n {{ item.title() }}\n <nz-icon nzType=\"plus-circle\" nzTheme=\"outline\" (click)=\"addCustom(i)\" />\n </div>\n }\n </div>\n </div>\n </div>\n </div>\n </ng-container>\n</nz-modal>", styles: [".container{height:350px;display:flex;flex-direction:column}.list{min-height:60px;border-radius:4px;overflow-x:hidden;overflow-y:auto;display:block;border:1px dashed #ccc;flex:1 1 auto}.list>.box{cursor:move}.cdk-drag-preview{box-sizing:border-box;border-radius:4px;box-shadow:0 5px 5px -3px #0003,0 8px 10px 1px #00000024,0 3px 14px 2px #0000001f}.cdk-drag-placeholder{opacity:0}.cdk-drag-animating{transition:transform .25s cubic-bezier(0,0,.2,1)}.list.cdk-drop-list-dragging .box:not(.cdk-drag-placeholder){transition:transform .25s cubic-bezier(0,0,.2,1)}.box{display:flex;flex-direction:row;justify-content:space-between;align-items:center;box-sizing:border-box;margin:4px;padding:4px 8px;background-color:#0070cc26}.box span{cursor:pointer}\n"], dependencies: [{ kind: "ngmodule", type: NzIconModule }, { kind: "directive", type: i1.NzIconDirective, selector: "nz-icon,[nz-icon]", inputs: ["nzSpin", "nzRotate", "nzType", "nzTheme", "nzTwotoneColor", "nzIconfont"], exportAs: ["nzIcon"] }, { kind: "ngmodule", type: NzButtonModule }, { kind: "component", type: i2.NzButtonComponent, selector: "button[nz-button], a[nz-button]", inputs: ["nzBlock", "nzGhost", "nzSearch", "nzLoading", "nzDanger", "disabled", "tabIndex", "nzType", "nzShape", "nzSize"], exportAs: ["nzButton"] }, { kind: "directive", type: i3.ɵ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: NzModalModule }, { kind: "component", type: i4.NzModalComponent, selector: "nz-modal", inputs: ["nzMask", "nzMaskClosable", "nzCloseOnNavigation", "nzVisible", "nzClosable", "nzOkLoading", "nzOkDisabled", "nzCancelDisabled", "nzCancelLoading", "nzKeyboard", "nzNoAnimation", "nzCentered", "nzDraggable", "nzContent", "nzFooter", "nzZIndex", "nzWidth", "nzWrapClassName", "nzClassName", "nzStyle", "nzTitle", "nzCloseIcon", "nzMaskStyle", "nzBodyStyle", "nzOkText", "nzCancelText", "nzOkType", "nzOkDanger", "nzIconType", "nzModalType", "nzAutofocus", "nzOnOk", "nzOnCancel"], outputs: ["nzOnOk", "nzOnCancel", "nzAfterOpen", "nzAfterClose", "nzVisibleChange"], exportAs: ["nzModal"] }, { kind: "directive", type: i4.NzModalContentDirective, selector: "[nzModalContent]", exportAs: ["nzModalContent"] }, { kind: "ngmodule", type: NzGridModule }, { kind: "directive", type: i5.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: i5.NzRowDirective, selector: "[nz-row],nz-row,nz-form-item", inputs: ["nzAlign", "nzJustify", "nzGutter"], exportAs: ["nzRow"] }, { kind: "directive", type: CdkDrag, selector: "[cdkDrag]", inputs: ["cdkDragData", "cdkDragLockAxis", "cdkDragRootElement", "cdkDragBoundary", "cdkDragStartDelay", "cdkDragFreeDragPosition", "cdkDragDisabled", "cdkDragConstrainPosition", "cdkDragPreviewClass", "cdkDragPreviewContainer", "cdkDragScale"], outputs: ["cdkDragStarted", "cdkDragReleased", "cdkDragEnded", "cdkDragEntered", "cdkDragExited", "cdkDragDropped", "cdkDragMoved"], exportAs: ["cdkDrag"] }, { kind: "directive", type: CdkDropList, selector: "[cdkDropList], cdk-drop-list", inputs: ["cdkDropListConnectedTo", "cdkDropListData", "cdkDropListOrientation", "id", "cdkDropListLockAxis", "cdkDropListDisabled", "cdkDropListSortingDisabled", "cdkDropListEnterPredicate", "cdkDropListSortPredicate", "cdkDropListAutoScrollDisabled", "cdkDropListAutoScrollStep", "cdkDropListElementContainer", "cdkDropListHasAnchor"], outputs: ["cdkDropListDropped", "cdkDropListEntered", "cdkDropListExited", "cdkDropListSorted"], exportAs: ["cdkDropList"] }, { kind: "ngmodule", type: CommonModule }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
191
192
  }
192
193
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: TableSetter, decorators: [{
193
194
  type: Component,
194
- args: [{ selector: 'axis-table-setter', imports: [NzIconModule, NzButtonModule, NzModalModule, NzGridModule, CdkDrag, CdkDropList], changeDetection: ChangeDetectionStrategy.OnPush, template: "<a nz-button nzType=\"link\" nzSize=\"small\" (click)=\"modalVisible.set(true)\" style=\"margin: 2px;\">\n <nz-icon nzType=\"setting\" nzTheme=\"outline\" />\n</a>\n<nz-modal [(nzVisible)]=\"modalVisible\" nzTitle=\"\u8868\u5934\u8BBE\u7F6E\" nzDraggable [nzOkText]=\"null\" nzCancelText=\"\u5173\u95ED\"\n (nzOnCancel)=\"modalVisible.set(false)\">\n <ng-container *nzModalContent>\n <div nz-row [nzGutter]=\"24\">\n <div nz-col class=\"gutter-row\" [nzSpan]=\"12\">\n <div class=\"container\">\n <p>\u5C55\u793A\u5B57\u6BB5<a nz-button nzType=\"link\" (click)=\"resetDefault()\">\u6062\u590D\u9ED8\u8BA4</a></p>\n <div cdkDropList #todoList=\"cdkDropList\" [cdkDropListData]=\"fix()\"\n [cdkDropListConnectedTo]=\"[doneList]\" class=\"list\" (cdkDropListDropped)=\"drop($event)\">\n @for (item of fix(); track item; let i = $index) {\n <div class=\"box\" cdkDrag>\n {{ item.title() }}\n <nz-icon nzType=\"minus-circle\" nzTheme=\"outline\" (click)=\"deleteCustom(i)\" />\n </div>\n }\n </div>\n </div>\n </div>\n <div nz-col class=\"gutter-row\" [nzSpan]=\"12\">\n <div class=\"container\">\n <p>\u9690\u85CF\u5B57\u6BB5</p>\n <div cdkDropList #doneList=\"cdkDropList\" [cdkDropListData]=\"notFix()\"\n [cdkDropListConnectedTo]=\"[todoList]\" class=\"list\" (cdkDropListDropped)=\"drop($event)\">\n @for (item of notFix(); track item; let i = $index) {\n <div class=\"box\" cdkDrag>\n {{ item.title() }}\n <nz-icon nzType=\"plus-circle\" nzTheme=\"outline\" (click)=\"addCustom(i)\" />\n </div>\n }\n </div>\n </div>\n </div>\n </div>\n </ng-container>\n</nz-modal>", styles: [".container{height:350px;display:flex;flex-direction:column}.list{min-height:60px;border-radius:4px;overflow-x:hidden;overflow-y:auto;display:block;border:1px dashed #ccc;flex:1 1 auto}.list>.box{cursor:move}.cdk-drag-preview{box-sizing:border-box;border-radius:4px;box-shadow:0 5px 5px -3px #0003,0 8px 10px 1px #00000024,0 3px 14px 2px #0000001f}.cdk-drag-placeholder{opacity:0}.cdk-drag-animating{transition:transform .25s cubic-bezier(0,0,.2,1)}.list.cdk-drop-list-dragging .box:not(.cdk-drag-placeholder){transition:transform .25s cubic-bezier(0,0,.2,1)}.box{display:flex;flex-direction:row;justify-content:space-between;align-items:center;box-sizing:border-box;margin:4px;padding:4px 8px;background-color:#0070cc26}.box span{cursor:pointer}\n"] }]
195
+ args: [{ selector: 'axis-table-setter', imports: [NzIconModule, NzButtonModule, NzModalModule, NzGridModule, CdkDrag, CdkDropList, CommonModule], changeDetection: ChangeDetectionStrategy.OnPush, template: "<a nz-button nzType=\"link\" nzSize=\"small\" (click)=\"modalVisible.set(true)\"\n style=\"margin: 2px;\">\n <nz-icon nzType=\"setting\" nzTheme=\"outline\" />\n</a>\n<nz-modal [(nzVisible)]=\"modalVisible\" nzTitle=\"\u8868\u5934\u8BBE\u7F6E\" nzDraggable [nzOkText]=\"null\" nzCancelText=\"\u5173\u95ED\"\n (nzOnCancel)=\"modalVisible.set(false)\">\n <ng-container *nzModalContent>\n <div nz-row [nzGutter]=\"24\">\n <div nz-col class=\"gutter-row\" [nzSpan]=\"12\">\n <div class=\"container\">\n <p>\u5C55\u793A\u5B57\u6BB5<a nz-button nzType=\"link\" (click)=\"resetDefault()\">\u6062\u590D\u9ED8\u8BA4</a></p>\n <div cdkDropList #todoList=\"cdkDropList\" [cdkDropListData]=\"fix()\"\n [cdkDropListConnectedTo]=\"[doneList]\" class=\"list\" (cdkDropListDropped)=\"drop($event)\">\n @for (item of fix(); track item.field(); let i = $index) {\n <div class=\"box\" cdkDrag>\n {{ item.title() }}\n <nz-icon nzType=\"minus-circle\" nzTheme=\"outline\" (click)=\"deleteCustom(i)\" />\n </div>\n }\n </div>\n </div>\n </div>\n <div nz-col class=\"gutter-row\" [nzSpan]=\"12\">\n <div class=\"container\">\n <p>\u9690\u85CF\u5B57\u6BB5</p>\n <div cdkDropList #doneList=\"cdkDropList\" [cdkDropListData]=\"notFix()\"\n [cdkDropListConnectedTo]=\"[todoList]\" class=\"list\" (cdkDropListDropped)=\"drop($event)\">\n @for (item of notFix(); track item.field(); let i = $index) {\n <div class=\"box\" cdkDrag>\n {{ item.title() }}\n <nz-icon nzType=\"plus-circle\" nzTheme=\"outline\" (click)=\"addCustom(i)\" />\n </div>\n }\n </div>\n </div>\n </div>\n </div>\n </ng-container>\n</nz-modal>", styles: [".container{height:350px;display:flex;flex-direction:column}.list{min-height:60px;border-radius:4px;overflow-x:hidden;overflow-y:auto;display:block;border:1px dashed #ccc;flex:1 1 auto}.list>.box{cursor:move}.cdk-drag-preview{box-sizing:border-box;border-radius:4px;box-shadow:0 5px 5px -3px #0003,0 8px 10px 1px #00000024,0 3px 14px 2px #0000001f}.cdk-drag-placeholder{opacity:0}.cdk-drag-animating{transition:transform .25s cubic-bezier(0,0,.2,1)}.list.cdk-drop-list-dragging .box:not(.cdk-drag-placeholder){transition:transform .25s cubic-bezier(0,0,.2,1)}.box{display:flex;flex-direction:row;justify-content:space-between;align-items:center;box-sizing:border-box;margin:4px;padding:4px 8px;background-color:#0070cc26}.box span{cursor:pointer}\n"] }]
195
196
  }], ctorParameters: () => [], propDecorators: { fields: [{ type: i0.Input, args: [{ isSignal: true, alias: "fields", required: true }] }], cacheKey: [{ type: i0.Input, args: [{ isSignal: true, alias: "cacheKey", required: false }] }], onChange: [{ type: i0.Output, args: ["onChange"] }], modalVisible: [{ type: i0.Input, args: [{ isSignal: true, alias: "modalVisible", required: false }] }, { type: i0.Output, args: ["modalVisibleChange"] }] } });
196
197
 
197
198
  class Table extends Base {
@@ -224,17 +225,17 @@ class Table extends Base {
224
225
  this.options.fields().forEach((f) => {
225
226
  if (f.loop) {
226
227
  for (const item of this.loopFieldMap().get(f.field)()) {
227
- loopFieldDataMap.set(this.fields()[i], item);
228
+ loopFieldDataMap.set(this.oriFields()[i], item);
228
229
  if (f.fieldFunForLoop) {
229
230
  f = copy(f);
230
231
  f.field = this.getScope()?.runFnWithSnapshot(f.fieldFunForLoop, { loopRow: item });
231
232
  }
232
- this.bindWithConfig(f, { options: this.fields()[i], tag: `bindField.${i}`, tempDataSource: { loopRow: item } });
233
+ this.bindWithConfig(f, { options: this.oriFields()[i], tag: `bindField.${i}`, tempDataSource: { loopRow: item } });
233
234
  i++;
234
235
  }
235
236
  }
236
237
  else {
237
- this.bindWithConfig(f, { options: this.fields()[i], tag: `bindField.${i}` });
238
+ this.bindWithConfig(f, { options: this.oriFields()[i], tag: `bindField.${i}` });
238
239
  i++;
239
240
  }
240
241
  });
@@ -275,6 +276,7 @@ class Table extends Base {
275
276
  options = new TableOptions();
276
277
  select;
277
278
  scroll = signal({ x: "", y: "" }, ...(ngDevMode ? [{ debugName: "scroll" }] : []));
279
+ oriFields = computed(() => this.buildOriFields(), ...(ngDevMode ? [{ debugName: "oriFields" }] : []));
278
280
  fields = computed(() => this.buildFields(), ...(ngDevMode ? [{ debugName: "fields" }] : []));
279
281
  rowActions = computed(() => this.actionsFieldWidth() > 0 ? this.options.rowActions() : [], ...(ngDevMode ? [{ debugName: "rowActions" }] : []));
280
282
  actionsFieldWidth = computed(() => this.buildActionsFieldWidth(), ...(ngDevMode ? [{ debugName: "actionsFieldWidth" }] : []));
@@ -315,7 +317,7 @@ class Table extends Base {
315
317
  trackByKeyField = (i, data) => {
316
318
  return data[this.options.keyField()];
317
319
  };
318
- buildFields() {
320
+ buildOriFields() {
319
321
  const fields = [];
320
322
  this.options.fields().forEach(f => {
321
323
  if (f.loop) {
@@ -329,6 +331,9 @@ class Table extends Base {
329
331
  });
330
332
  return fields;
331
333
  }
334
+ buildFields() {
335
+ return this.options.showTableTitleSet() ? this.fixFields() : this.oriFields();
336
+ }
332
337
  buildActionsFieldWidth() {
333
338
  if (this.options.actionsFieldWidth() == 0 || this.options.rowActions().length == 0) {
334
339
  return 0;
@@ -514,7 +519,7 @@ class Table extends Base {
514
519
  provide: AXIS_TABLE_SELECT_TOKEN,
515
520
  useExisting: SelectService,
516
521
  },
517
- ], viewQueries: [{ propertyName: "tableSetter", first: true, predicate: TableSetter, descendants: true }], usesInheritance: true, ngImport: i0, template: "@if (options.showTableTitleSet()) {\n<axis-table-setter [fields]=\"fields()\" [cacheKey]=\"options.tableSetCacheKey()\"\n (onChange)=\"fixFields.set($event)\"></axis-table-setter>\n}\n<nz-table #table [nzSize]=\"options.size()\" [nzData]=\"tableSvc.rows()??[]\" [nzLoading]=\"!options.data()\"\n [nzBordered]=\"options.bordered()\" [nzOuterBordered]=\"options.outerBordered()\"\n [nzShowPagination]=\"options.showPagination()\"\n [nzFrontPagination]=\"options.showPagination() && !options.useBackEndPaging()\" [nzTotal]=\"tableSvc.rowtotal()\"\n [(nzPageSize)]=\"options.pageSize\" [nzShowSizeChanger]=\"options.showSizeChanger()\"\n [nzPageSizeOptions]=\"tableSvc.pageSizeOptions()\" [nzShowTotal]=\"options.showDataSize()?totalRange:null\"\n [nzScroll]=\"scroll()\" (nzPageIndexChange)=\"onPageIndexChange()\" (nzPageSizeChange)=\"onPageSizeChange()\"\n [(nzPageIndex)]=\"tableSvc.pageIndex\" [nzVirtualItemSize]=\"options.virtualItemSize()\"\n [nzVirtualForTrackBy]=\"trackByKeyField\">\n <thead>\n <tr>\n @if (options.showCheckbox()) {\n @if (!options.checkboxLinkageForExpand() && !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 @if (options.showExpand()) {\n <th nzLeft nzAlign=\"center\" [nzWidth]=\"tableSvc.leaderFieldWidth()-15+'px'\"></th>\n }\n @if (options.showOrder()) {\n <th nzAlign=\"center\" [nzWidth]=\"tableSvc.leaderFieldWidth()+'px'\">\u5E8F\u53F7</th>\n }\n @for (f of tableSvc.displayFields(); track f.field();let i=$index) {\n <th [attr.data-field]=\"f.field()\" nz-resizable nzBounds=\"window\"\n [nzDisabled]=\"!options.showTableTitleSet() || !f.width()\"\n [nzWidth]=\"f.width() == null ?null:f.width()+'px'\" (nzResize)=\"tableSetter?.onResize(f,$event)\"\n [nzShowSort]=\"tableSvc.fieldSortAble(f)\" [nzSortDirections]=\"tableSvc.fieldSortDirections(f)\"\n [nzSortFn]=\"tableSvc.fieldsControlsMap()[f.field()]?.sortFn\" [(nzSortOrder)]=\"f.sortOrder\"\n [nzSortPriority]=\"tableSvc.fieldSortPriority(f)\"\n [nzShowFilter]=\"f.filterAble() && !options.useBackEndPaging()\" (nzSortOrderChange)=\"sortChange()\"\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 <span>\n {{f.title()}}\n @if(options.showTableTitleSet()){\n <nz-resize-handle [style.transform]=\"`translateX(${resizeHandleOffsetX(f)}px)`\" nzDirection=\"right\"\n (click)=\"$event.stopPropagation()\">\n <div class=\"resize-trigger\"></div>\n </nz-resize-handle>\n }\n </span>\n </th>\n }\n @if (rowActions().length)\n {\n <th nzRight nzAlign=\"center\" [nzWidth]=\"actionsFieldWidth()+'px'\" data-rowactions>\u64CD\u4F5C</th>\n }\n </tr>\n </thead>\n <tbody>\n @if (!options.showPagination() && options.virtualScroll()) {\n <ng-template nz-virtual-scroll let-data let-i=\"index\">\n </ng-template>\n }@else {\n @for (trow of table.data; track options.keyField()?trow[options.keyField()]:trow;let i=$index) {\n @for (data of expand.getListForExpanded(trow); track options.keyField()?data[options.keyField()]:data) {\n <tr (click)=\"rowClick(data)\" [axisScope]=\"options.id+'.row'\" scopeName=\"\u8868\u683C\u884C\"\n [dataSources]=\"[{name:'row',type:'local',data:data}]\">\n @if (options.showCheckbox()) {\n <td nzLeft [nzChecked]=\"select.setOfCheckedId().has(data[options.keyField()])\"\n [nzIndeterminate]=\"select.setOfIndeterminateId().has(data[options.keyField()])\"\n [nzDisabled]=\"select.setOfDisabledId().has(data[options.keyField()])\"\n (nzCheckedChange)=\"select.onItemChecked(data, $event)\" nzAlign=\"center\"></td>\n }\n @if (options.showExpand()) {\n @if(options.expandMode() == \"tree\" && !expand.nodeMap().get(data[options.keyField()])?.children?.length){\n <td nzLeft></td>\n }@else{\n <td nzLeft [nzExpand]=\"expand.expandedSet.has(data[options.keyField()])\"\n (nzExpandChange)=\"expand.onExpandChange(data[options.keyField()],$event)\"></td>\n }\n }\n @if (options.showOrder()) {\n <td nzAlign=\"center\">{{(table.nzPageIndex-1) * table.nzPageSize + i+1}}</td>\n }\n @for (f of tableSvc.displayFields(); track f.field()) {\n <td [attr.rowspan]=\"tableSvc.rowspan(f,i,table.nzPageIndex,table.nzPageSize,data)\"\n [nzLeft]=\"f.freezeMode()=='left'\" [attr.data-field]=\"f.field()\" [nzRight]=\"f.freezeMode()=='right'\"\n [nzAlign]=\"f.align()\">\n @if (f.child()) {\n @if(loopFieldDataMap().has(f)){\n <ng-container [axisScope]=\"options.id+'.fields.'+f.field()+'.row.loop'\" scopeName=\"\u5217\u5FAA\u73AF\"\n [dataSources]=\"[{name:'loopRow',type:'local',data:loopFieldDataMap().get(f)}]\">\n <ng-container [axisDynamic]=\"f.child()\"></ng-container>\n </ng-container>\n }@else{\n <ng-container [axisDynamic]=\"f.child()\"></ng-container>\n }\n }@else {\n {{data[f.field()]}}\n }\n </td>\n }\n @if (rowActions().length) {\n <td nzRight>\n <div nz-flex nzJustify=\"space-evenly\" data-rowactions>\n @for (a of rowActions(); track a.id) {\n <ng-container [axisDynamic]=\"a\"></ng-container>\n }\n </div>\n </td>\n }\n </tr>\n @if (options.showStatistic() && tableSvc.isGroupEnd(i+(table.nzPageIndex-1)*table.nzPageSize,data)) {\n <tr [axisScope]=\"options.id+'.row'\" scopeName=\"\u8868\u683C\u884C\"\n [dataSources]=\"[{name:'row',type:'local',data:statistic.statisticGroupMap()[tableSvc.getGroupValue(data)]}]\">\n @if (options.showCheckbox()) {\n <td nzLeft></td>\n }\n @if (options.showExpand()) {\n <td nzLeft></td>\n }\n @if(options.showOrder()){\n <td nzAlign=\"right\">\n {{options.statisticTitle()}}\n </td>\n }\n @for (f of tableSvc.displayFields(); track f.field();let i=$index) {\n <td [nzLeft]=\"f.freezeMode()=='left'\" [nzRight]=\"f.freezeMode()=='right'\" [nzAlign]=\"f.align()\">\n @if (f.statisticAble()) {\n @if (f.child()) {\n <ng-container [axisDynamic]=\"f.child()\"></ng-container>\n }@else {\n {{statistic.statisticGroupMap()[tableSvc.getGroupValue(data)]?.[f.field()]}}\n }\n }@else if(i==0 && !options.showOrder()){\n @if(tableSvc.groupAbleFields()[0] == f){\n {{data[f.field()]}}({{options.statisticTitle()}})\n }@else{\n {{options.statisticTitle()}}\n }\n }@else if (f.groupAble() && f == tableSvc.groupAbleFields()[0]) {\n {{data[f.field()]}}\n }\n </td>\n }\n @if (rowActions().length) {\n <td nzRight></td>\n }\n </tr>\n }\n }\n @if (options.showExpand() && options.expandMode() == \"custom\") {\n <tr [axisScope]=\"options.id+'.row'\" scopeName=\"\u8868\u683C\u884C\" [dataSources]=\"[{name:'row',type:'local',data:trow}]\"\n [nzExpand]=\"expand.expandedSet.has(trow[options.keyField()])\" data-expandrow>\n <ng-container [axisDynamic]=\"options.expandRow()\"></ng-container>\n </tr>\n }\n }\n }\n </tbody>\n @if (options.showStatistic()) {\n <tfoot nzSummary>\n <tr [axisScope]=\"options.id+'.row'\" scopeName=\"\u8868\u683C\u884C\"\n [dataSources]=\"[{name:'row',type:'local',data:statistic.statisticMap()}]\">\n @if (options.showCheckbox()) {\n <td nzLeft></td>\n }\n @if (options.showExpand()) {\n <td nzLeft></td>\n }\n @if(options.showOrder()){\n <td nzAlign=\"right\">\n <b>{{options.statisticTitle()}}</b>\n </td>\n }\n @for (f of tableSvc.displayFields(); track f.field();let i=$index) {\n <td [nzLeft]=\"f.freezeMode()=='left'\" [nzRight]=\"f.freezeMode()=='right'\" [nzAlign]=\"f.align()\">\n <b>\n @if (f.statisticAble()) {\n @if (f.child()) {\n <ng-container [axisDynamic]=\"f.child()\"></ng-container>\n }@else {\n {{statistic.statisticMap()[f.field()]}}\n }\n }@else if(i==0 && !options.showOrder()){\n {{options.statisticTitle()}}\n }\n </b>\n </td>\n }\n @if (rowActions().length) {\n <td nzRight></td>\n }\n </tr>\n </tfoot>\n }\n <ng-template #totalRange let-range=\"range\" let-total>\n \u5171{{ total }}\u6761\u6570\u636E\uFF0C\u7B2C{{ range[0] }}-{{ range[1] }}\u6761\n </ng-template>\n</nz-table>", styles: [":host{display:block;width:100%;overflow:hidden}:host ::ng-deep .ant-table-placeholder .ant-table-expanded-row-fixed{margin:-8px -10px}td[rowspan=\"0\"]{display:none}\n"], dependencies: [{ kind: "ngmodule", type: NzTableModule }, { kind: "component", type: i2$1.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$1.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$1.NzTableCellDirective, selector: "th:not(.nz-disable-th), td:not(.nz-disable-td)" }, { kind: "directive", type: i2$1.NzThMeasureDirective, selector: "th", inputs: ["nzWidth", "colspan", "colSpan", "rowspan", "rowSpan"] }, { kind: "component", type: i2$1.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$1.NzTheadComponent, selector: "thead:not(.ant-table-thead)", outputs: ["nzSortOrderChange"] }, { kind: "component", type: i2$1.NzTbodyComponent, selector: "tbody" }, { kind: "directive", type: i2$1.NzTrDirective, selector: "tr:not([nz-table-measure-row]):not([nzExpand]):not([nz-table-fixed-row])" }, { kind: "directive", type: i2$1.NzTableVirtualScrollDirective, selector: "[nz-virtual-scroll]", exportAs: ["nzVirtualScroll"] }, { kind: "directive", type: i2$1.NzCellFixedDirective, selector: "td[nzRight],th[nzRight],td[nzLeft],th[nzLeft]", inputs: ["nzRight", "nzLeft", "colspan", "colSpan"] }, { kind: "directive", type: i2$1.NzTrExpandDirective, selector: "tr[nzExpand]", inputs: ["nzExpand"] }, { kind: "component", type: i2$1.NzTfootSummaryComponent, selector: "tfoot[nzSummary]", inputs: ["nzFixed"] }, { kind: "directive", type: i2$1.NzCellAlignDirective, selector: "th[nzAlign],td[nzAlign]", inputs: ["nzAlign"] }, { kind: "component", type: i2$1.NzTableFixedRowComponent, selector: "tr[nz-table-fixed-row], tr[nzExpand]" }, { kind: "component", type: i2$1.NzThSelectionComponent, selector: "th[nzSelections],th[nzChecked],th[nzShowCheckbox],th[nzShowRowSelection]", inputs: ["nzSelections", "nzChecked", "nzDisabled", "nzIndeterminate", "nzLabel", "nzShowCheckbox", "nzShowRowSelection"], outputs: ["nzCheckedChange"] }, { kind: "directive", type: ScopeDirective, selector: "[axisScope]", inputs: ["axisScope", "scopeName", "isRoot", "dataSources"] }, { kind: "directive", type: DynamicDirective, selector: "[axisDynamic]", inputs: ["axisDynamic", "standalone", "isDesign", "forceRenderOnChange"], outputs: ["onRegisteValueAccess"], exportAs: ["axisDynamic"] }, { kind: "ngmodule", type: FormsModule }, { kind: "component", type: TableSetter, selector: "axis-table-setter", inputs: ["fields", "cacheKey", "modalVisible"], outputs: ["onChange", "modalVisibleChange"] }, { kind: "ngmodule", type: NzResizableModule }, { kind: "directive", type: i3$1.NzResizableDirective, selector: "[nz-resizable]", inputs: ["nzBounds", "nzMaxHeight", "nzMaxWidth", "nzMinHeight", "nzMinWidth", "nzGridColumnCount", "nzMaxColumn", "nzMinColumn", "nzLockAspectRatio", "nzPreview", "nzDisabled"], outputs: ["nzResize", "nzResizeEnd", "nzResizeStart"], exportAs: ["nzResizable"] }, { kind: "component", type: i3$1.NzResizeHandleComponent, selector: "nz-resize-handle, [nz-resize-handle]", inputs: ["nzDirection", "nzCursorType"], outputs: ["nzMouseDown"], exportAs: ["nzResizeHandle"] }, { kind: "ngmodule", type: NzFlexModule }, { kind: "directive", type: i4$1.NzFlexDirective, selector: "[nz-flex],nz-flex", inputs: ["nzVertical", "nzJustify", "nzAlign", "nzGap", "nzWrap", "nzFlex"], exportAs: ["nzFlex"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
522
+ ], viewQueries: [{ propertyName: "tableSetter", first: true, predicate: TableSetter, descendants: true }], usesInheritance: true, ngImport: i0, template: "@if (options.showTableTitleSet()) {\n<axis-table-setter [fields]=\"oriFields()\" [cacheKey]=\"options.tableSetCacheKey()\"\n (onChange)=\"fixFields.set($event)\"></axis-table-setter>\n}\n<nz-table #table [nzSize]=\"options.size()\" [nzData]=\"tableSvc.rows()??[]\" [nzLoading]=\"!options.data()\"\n [nzBordered]=\"options.bordered()\" [nzOuterBordered]=\"options.outerBordered()\"\n [nzShowPagination]=\"options.showPagination()\"\n [nzFrontPagination]=\"options.showPagination() && !options.useBackEndPaging()\" [nzTotal]=\"tableSvc.rowtotal()\"\n [(nzPageSize)]=\"options.pageSize\" [nzShowSizeChanger]=\"options.showSizeChanger()\"\n [nzPageSizeOptions]=\"tableSvc.pageSizeOptions()\" [nzShowTotal]=\"options.showDataSize()?totalRange:null\"\n [nzScroll]=\"scroll()\" (nzPageIndexChange)=\"onPageIndexChange()\" (nzPageSizeChange)=\"onPageSizeChange()\"\n [(nzPageIndex)]=\"tableSvc.pageIndex\" [nzVirtualItemSize]=\"options.virtualItemSize()\"\n [nzVirtualForTrackBy]=\"trackByKeyField\">\n <thead>\n <tr>\n @if (options.showCheckbox()) {\n @if (!options.checkboxLinkageForExpand() && !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 @if (options.showExpand()) {\n <th nzLeft nzAlign=\"center\" [nzWidth]=\"tableSvc.leaderFieldWidth()-15+'px'\"></th>\n }\n @if (options.showOrder()) {\n <th nzAlign=\"center\" [nzWidth]=\"tableSvc.leaderFieldWidth()+'px'\">\u5E8F\u53F7</th>\n }\n @for (f of tableSvc.displayFields(); track f.field();let i=$index) {\n <th [attr.data-field]=\"f.field()\" nz-resizable nzBounds=\"window\"\n [nzDisabled]=\"!options.showTableTitleSet() || !f.width()\"\n [nzWidth]=\"f.width() == null ?null:f.width()+'px'\" (nzResize)=\"tableSetter?.onResize(f,$event)\"\n [nzShowSort]=\"tableSvc.fieldSortAble(f)\" [nzSortDirections]=\"tableSvc.fieldSortDirections(f)\"\n [nzSortFn]=\"tableSvc.fieldsControlsMap()[f.field()]?.sortFn\" [(nzSortOrder)]=\"f.sortOrder\"\n [nzSortPriority]=\"tableSvc.fieldSortPriority(f)\"\n [nzShowFilter]=\"f.filterAble() && !options.useBackEndPaging()\" (nzSortOrderChange)=\"sortChange()\"\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 <span>\n {{f.title()}}\n @if(options.showTableTitleSet()){\n <nz-resize-handle [style.transform]=\"`translateX(${resizeHandleOffsetX(f)}px)`\" nzDirection=\"right\"\n (click)=\"$event.stopPropagation()\">\n <div class=\"resize-trigger\"></div>\n </nz-resize-handle>\n }\n </span>\n </th>\n }\n @if (rowActions().length)\n {\n <th nzRight nzAlign=\"center\" [nzWidth]=\"actionsFieldWidth()+'px'\" data-rowactions>\u64CD\u4F5C</th>\n }\n </tr>\n </thead>\n <tbody>\n @if (!options.showPagination() && options.virtualScroll()) {\n <ng-template nz-virtual-scroll let-data let-i=\"index\">\n </ng-template>\n }@else {\n @for (trow of table.data; track options.keyField()?trow[options.keyField()]:trow;let i=$index) {\n @for (data of expand.getListForExpanded(trow); track options.keyField()?data[options.keyField()]:data) {\n <tr (click)=\"rowClick(data)\" [axisScope]=\"options.id+'.row'\" scopeName=\"\u8868\u683C\u884C\"\n [dataSources]=\"[{name:'row',type:'local',data:data}]\"\n [class.checkedRow]=\"select.setOfCheckedId().has(data[options.keyField()])\">\n @if (options.showCheckbox()) {\n <td nzLeft [nzChecked]=\"select.setOfCheckedId().has(data[options.keyField()])\"\n [nzIndeterminate]=\"select.setOfIndeterminateId().has(data[options.keyField()])\"\n [nzDisabled]=\"select.setOfDisabledId().has(data[options.keyField()])\"\n (nzCheckedChange)=\"select.onItemChecked(data, $event)\" nzAlign=\"center\"></td>\n }\n @if (options.showExpand()) {\n @if(options.expandMode() == \"tree\" && !expand.nodeMap().get(data[options.keyField()])?.children?.length){\n <td nzLeft></td>\n }@else{\n <td nzLeft [nzExpand]=\"expand.expandedSet.has(data[options.keyField()])\"\n (nzExpandChange)=\"expand.onExpandChange(data[options.keyField()],$event)\"></td>\n }\n }\n @if (options.showOrder()) {\n <td nzAlign=\"center\">{{(table.nzPageIndex-1) * table.nzPageSize + i+1}}</td>\n }\n @for (f of tableSvc.displayFields(); track f.field()) {\n <td [attr.rowspan]=\"tableSvc.rowspan(f,i,table.nzPageIndex,table.nzPageSize,data)\"\n [nzLeft]=\"f.freezeMode()=='left'\" [attr.data-field]=\"f.field()\" [nzRight]=\"f.freezeMode()=='right'\"\n [nzAlign]=\"f.align()\">\n @if (f.child()) {\n @if(loopFieldDataMap().has(f)){\n <ng-container [axisScope]=\"options.id+'.fields.'+f.field()+'.row.loop'\" scopeName=\"\u5217\u5FAA\u73AF\"\n [dataSources]=\"[{name:'loopRow',type:'local',data:loopFieldDataMap().get(f)}]\">\n <ng-container [axisDynamic]=\"f.child()\"></ng-container>\n </ng-container>\n }@else{\n <ng-container [axisDynamic]=\"f.child()\"></ng-container>\n }\n }@else {\n {{data[f.field()]}}\n }\n </td>\n }\n @if (rowActions().length) {\n <td nzRight>\n <div nz-flex nzJustify=\"space-evenly\" data-rowactions>\n @for (a of rowActions(); track a.id) {\n <ng-container [axisDynamic]=\"a\"></ng-container>\n }\n </div>\n </td>\n }\n </tr>\n @if (options.showStatistic() && tableSvc.isGroupEnd(i+(table.nzPageIndex-1)*table.nzPageSize,data)) {\n <tr [axisScope]=\"options.id+'.row'\" scopeName=\"\u8868\u683C\u884C\"\n [dataSources]=\"[{name:'row',type:'local',data:statistic.statisticGroupMap()[tableSvc.getGroupValue(data)]}]\">\n @if (options.showCheckbox()) {\n <td nzLeft></td>\n }\n @if (options.showExpand()) {\n <td nzLeft></td>\n }\n @if(options.showOrder()){\n <td nzAlign=\"right\">\n {{options.statisticTitle()}}\n </td>\n }\n @for (f of tableSvc.displayFields(); track f.field();let i=$index) {\n <td [nzLeft]=\"f.freezeMode()=='left'\" [nzRight]=\"f.freezeMode()=='right'\" [nzAlign]=\"f.align()\">\n @if (f.statisticAble()) {\n @if (f.child()) {\n <ng-container [axisDynamic]=\"f.child()\"></ng-container>\n }@else {\n {{statistic.statisticGroupMap()[tableSvc.getGroupValue(data)]?.[f.field()]}}\n }\n }@else if(i==0 && !options.showOrder()){\n @if(tableSvc.groupAbleFields()[0] == f){\n {{data[f.field()]}}({{options.statisticTitle()}})\n }@else{\n {{options.statisticTitle()}}\n }\n }@else if (f.groupAble() && f == tableSvc.groupAbleFields()[0]) {\n {{data[f.field()]}}\n }\n </td>\n }\n @if (rowActions().length) {\n <td nzRight></td>\n }\n </tr>\n }\n }\n @if (options.showExpand() && options.expandMode() == \"custom\") {\n <tr [axisScope]=\"options.id+'.row'\" scopeName=\"\u8868\u683C\u884C\" [dataSources]=\"[{name:'row',type:'local',data:trow}]\"\n [nzExpand]=\"expand.expandedSet.has(trow[options.keyField()])\" data-expandrow>\n <ng-container [axisDynamic]=\"options.expandRow()\"></ng-container>\n </tr>\n }\n }\n }\n </tbody>\n @if (options.showStatistic()) {\n <tfoot nzSummary>\n <tr [axisScope]=\"options.id+'.row'\" scopeName=\"\u8868\u683C\u884C\"\n [dataSources]=\"[{name:'row',type:'local',data:statistic.statisticMap()}]\">\n @if (options.showCheckbox()) {\n <td nzLeft></td>\n }\n @if (options.showExpand()) {\n <td nzLeft></td>\n }\n @if(options.showOrder()){\n <td nzAlign=\"right\">\n <b>{{options.statisticTitle()}}</b>\n </td>\n }\n @for (f of tableSvc.displayFields(); track f.field();let i=$index) {\n <td [nzLeft]=\"f.freezeMode()=='left'\" [nzRight]=\"f.freezeMode()=='right'\" [nzAlign]=\"f.align()\">\n <b>\n @if (f.statisticAble()) {\n @if (f.child()) {\n <ng-container [axisDynamic]=\"f.child()\"></ng-container>\n }@else {\n {{statistic.statisticMap()[f.field()]}}\n }\n }@else if(i==0 && !options.showOrder()){\n {{options.statisticTitle()}}\n }\n </b>\n </td>\n }\n @if (rowActions().length) {\n <td nzRight></td>\n }\n </tr>\n </tfoot>\n }\n <ng-template #totalRange let-range=\"range\" let-total>\n \u5171{{ total }}\u6761\u6570\u636E\uFF0C\u7B2C{{ range[0] }}-{{ range[1] }}\u6761\n </ng-template>\n</nz-table>", styles: [":host{display:block;width:100%;overflow:hidden}:host ::ng-deep .ant-table-placeholder .ant-table-expanded-row-fixed{margin:-8px -10px}td[rowspan=\"0\"]{display:none}.checkedRow>td{background-color:var(--ant-primary-2)}.checkedRow:hover>td{background-color:var(--ant-primary-3)}\n"], dependencies: [{ kind: "ngmodule", type: NzTableModule }, { kind: "component", type: i2$1.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$1.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$1.NzTableCellDirective, selector: "th:not(.nz-disable-th), td:not(.nz-disable-td)" }, { kind: "directive", type: i2$1.NzThMeasureDirective, selector: "th", inputs: ["nzWidth", "colspan", "colSpan", "rowspan", "rowSpan"] }, { kind: "component", type: i2$1.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$1.NzTheadComponent, selector: "thead:not(.ant-table-thead)", outputs: ["nzSortOrderChange"] }, { kind: "component", type: i2$1.NzTbodyComponent, selector: "tbody" }, { kind: "directive", type: i2$1.NzTrDirective, selector: "tr:not([nz-table-measure-row]):not([nzExpand]):not([nz-table-fixed-row])" }, { kind: "directive", type: i2$1.NzTableVirtualScrollDirective, selector: "[nz-virtual-scroll]", exportAs: ["nzVirtualScroll"] }, { kind: "directive", type: i2$1.NzCellFixedDirective, selector: "td[nzRight],th[nzRight],td[nzLeft],th[nzLeft]", inputs: ["nzRight", "nzLeft", "colspan", "colSpan"] }, { kind: "directive", type: i2$1.NzTrExpandDirective, selector: "tr[nzExpand]", inputs: ["nzExpand"] }, { kind: "component", type: i2$1.NzTfootSummaryComponent, selector: "tfoot[nzSummary]", inputs: ["nzFixed"] }, { kind: "directive", type: i2$1.NzCellAlignDirective, selector: "th[nzAlign],td[nzAlign]", inputs: ["nzAlign"] }, { kind: "component", type: i2$1.NzTableFixedRowComponent, selector: "tr[nz-table-fixed-row], tr[nzExpand]" }, { kind: "component", type: i2$1.NzThSelectionComponent, selector: "th[nzSelections],th[nzChecked],th[nzShowCheckbox],th[nzShowRowSelection]", inputs: ["nzSelections", "nzChecked", "nzDisabled", "nzIndeterminate", "nzLabel", "nzShowCheckbox", "nzShowRowSelection"], outputs: ["nzCheckedChange"] }, { kind: "directive", type: ScopeDirective, selector: "[axisScope]", inputs: ["axisScope", "scopeName", "isRoot", "dataSources"] }, { kind: "directive", type: DynamicDirective, selector: "[axisDynamic]", inputs: ["axisDynamic", "standalone", "isDesign", "forceRenderOnChange"], outputs: ["onRegisteValueAccess"], exportAs: ["axisDynamic"] }, { kind: "ngmodule", type: FormsModule }, { kind: "component", type: TableSetter, selector: "axis-table-setter", inputs: ["fields", "cacheKey", "modalVisible"], outputs: ["onChange", "modalVisibleChange"] }, { kind: "ngmodule", type: NzResizableModule }, { kind: "directive", type: i3$1.NzResizableDirective, selector: "[nz-resizable]", inputs: ["nzBounds", "nzMaxHeight", "nzMaxWidth", "nzMinHeight", "nzMinWidth", "nzGridColumnCount", "nzMaxColumn", "nzMinColumn", "nzLockAspectRatio", "nzPreview", "nzDisabled"], outputs: ["nzResize", "nzResizeEnd", "nzResizeStart"], exportAs: ["nzResizable"] }, { kind: "component", type: i3$1.NzResizeHandleComponent, selector: "nz-resize-handle, [nz-resize-handle]", inputs: ["nzDirection", "nzCursorType"], outputs: ["nzMouseDown"], exportAs: ["nzResizeHandle"] }, { kind: "ngmodule", type: NzFlexModule }, { kind: "directive", type: i4$1.NzFlexDirective, selector: "[nz-flex],nz-flex", inputs: ["nzVertical", "nzJustify", "nzAlign", "nzGap", "nzWrap", "nzFlex"], exportAs: ["nzFlex"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
518
523
  }
519
524
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: Table, decorators: [{
520
525
  type: Component,
@@ -523,7 +528,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImpo
523
528
  provide: AXIS_TABLE_SELECT_TOKEN,
524
529
  useExisting: SelectService,
525
530
  },
526
- ], template: "@if (options.showTableTitleSet()) {\n<axis-table-setter [fields]=\"fields()\" [cacheKey]=\"options.tableSetCacheKey()\"\n (onChange)=\"fixFields.set($event)\"></axis-table-setter>\n}\n<nz-table #table [nzSize]=\"options.size()\" [nzData]=\"tableSvc.rows()??[]\" [nzLoading]=\"!options.data()\"\n [nzBordered]=\"options.bordered()\" [nzOuterBordered]=\"options.outerBordered()\"\n [nzShowPagination]=\"options.showPagination()\"\n [nzFrontPagination]=\"options.showPagination() && !options.useBackEndPaging()\" [nzTotal]=\"tableSvc.rowtotal()\"\n [(nzPageSize)]=\"options.pageSize\" [nzShowSizeChanger]=\"options.showSizeChanger()\"\n [nzPageSizeOptions]=\"tableSvc.pageSizeOptions()\" [nzShowTotal]=\"options.showDataSize()?totalRange:null\"\n [nzScroll]=\"scroll()\" (nzPageIndexChange)=\"onPageIndexChange()\" (nzPageSizeChange)=\"onPageSizeChange()\"\n [(nzPageIndex)]=\"tableSvc.pageIndex\" [nzVirtualItemSize]=\"options.virtualItemSize()\"\n [nzVirtualForTrackBy]=\"trackByKeyField\">\n <thead>\n <tr>\n @if (options.showCheckbox()) {\n @if (!options.checkboxLinkageForExpand() && !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 @if (options.showExpand()) {\n <th nzLeft nzAlign=\"center\" [nzWidth]=\"tableSvc.leaderFieldWidth()-15+'px'\"></th>\n }\n @if (options.showOrder()) {\n <th nzAlign=\"center\" [nzWidth]=\"tableSvc.leaderFieldWidth()+'px'\">\u5E8F\u53F7</th>\n }\n @for (f of tableSvc.displayFields(); track f.field();let i=$index) {\n <th [attr.data-field]=\"f.field()\" nz-resizable nzBounds=\"window\"\n [nzDisabled]=\"!options.showTableTitleSet() || !f.width()\"\n [nzWidth]=\"f.width() == null ?null:f.width()+'px'\" (nzResize)=\"tableSetter?.onResize(f,$event)\"\n [nzShowSort]=\"tableSvc.fieldSortAble(f)\" [nzSortDirections]=\"tableSvc.fieldSortDirections(f)\"\n [nzSortFn]=\"tableSvc.fieldsControlsMap()[f.field()]?.sortFn\" [(nzSortOrder)]=\"f.sortOrder\"\n [nzSortPriority]=\"tableSvc.fieldSortPriority(f)\"\n [nzShowFilter]=\"f.filterAble() && !options.useBackEndPaging()\" (nzSortOrderChange)=\"sortChange()\"\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 <span>\n {{f.title()}}\n @if(options.showTableTitleSet()){\n <nz-resize-handle [style.transform]=\"`translateX(${resizeHandleOffsetX(f)}px)`\" nzDirection=\"right\"\n (click)=\"$event.stopPropagation()\">\n <div class=\"resize-trigger\"></div>\n </nz-resize-handle>\n }\n </span>\n </th>\n }\n @if (rowActions().length)\n {\n <th nzRight nzAlign=\"center\" [nzWidth]=\"actionsFieldWidth()+'px'\" data-rowactions>\u64CD\u4F5C</th>\n }\n </tr>\n </thead>\n <tbody>\n @if (!options.showPagination() && options.virtualScroll()) {\n <ng-template nz-virtual-scroll let-data let-i=\"index\">\n </ng-template>\n }@else {\n @for (trow of table.data; track options.keyField()?trow[options.keyField()]:trow;let i=$index) {\n @for (data of expand.getListForExpanded(trow); track options.keyField()?data[options.keyField()]:data) {\n <tr (click)=\"rowClick(data)\" [axisScope]=\"options.id+'.row'\" scopeName=\"\u8868\u683C\u884C\"\n [dataSources]=\"[{name:'row',type:'local',data:data}]\">\n @if (options.showCheckbox()) {\n <td nzLeft [nzChecked]=\"select.setOfCheckedId().has(data[options.keyField()])\"\n [nzIndeterminate]=\"select.setOfIndeterminateId().has(data[options.keyField()])\"\n [nzDisabled]=\"select.setOfDisabledId().has(data[options.keyField()])\"\n (nzCheckedChange)=\"select.onItemChecked(data, $event)\" nzAlign=\"center\"></td>\n }\n @if (options.showExpand()) {\n @if(options.expandMode() == \"tree\" && !expand.nodeMap().get(data[options.keyField()])?.children?.length){\n <td nzLeft></td>\n }@else{\n <td nzLeft [nzExpand]=\"expand.expandedSet.has(data[options.keyField()])\"\n (nzExpandChange)=\"expand.onExpandChange(data[options.keyField()],$event)\"></td>\n }\n }\n @if (options.showOrder()) {\n <td nzAlign=\"center\">{{(table.nzPageIndex-1) * table.nzPageSize + i+1}}</td>\n }\n @for (f of tableSvc.displayFields(); track f.field()) {\n <td [attr.rowspan]=\"tableSvc.rowspan(f,i,table.nzPageIndex,table.nzPageSize,data)\"\n [nzLeft]=\"f.freezeMode()=='left'\" [attr.data-field]=\"f.field()\" [nzRight]=\"f.freezeMode()=='right'\"\n [nzAlign]=\"f.align()\">\n @if (f.child()) {\n @if(loopFieldDataMap().has(f)){\n <ng-container [axisScope]=\"options.id+'.fields.'+f.field()+'.row.loop'\" scopeName=\"\u5217\u5FAA\u73AF\"\n [dataSources]=\"[{name:'loopRow',type:'local',data:loopFieldDataMap().get(f)}]\">\n <ng-container [axisDynamic]=\"f.child()\"></ng-container>\n </ng-container>\n }@else{\n <ng-container [axisDynamic]=\"f.child()\"></ng-container>\n }\n }@else {\n {{data[f.field()]}}\n }\n </td>\n }\n @if (rowActions().length) {\n <td nzRight>\n <div nz-flex nzJustify=\"space-evenly\" data-rowactions>\n @for (a of rowActions(); track a.id) {\n <ng-container [axisDynamic]=\"a\"></ng-container>\n }\n </div>\n </td>\n }\n </tr>\n @if (options.showStatistic() && tableSvc.isGroupEnd(i+(table.nzPageIndex-1)*table.nzPageSize,data)) {\n <tr [axisScope]=\"options.id+'.row'\" scopeName=\"\u8868\u683C\u884C\"\n [dataSources]=\"[{name:'row',type:'local',data:statistic.statisticGroupMap()[tableSvc.getGroupValue(data)]}]\">\n @if (options.showCheckbox()) {\n <td nzLeft></td>\n }\n @if (options.showExpand()) {\n <td nzLeft></td>\n }\n @if(options.showOrder()){\n <td nzAlign=\"right\">\n {{options.statisticTitle()}}\n </td>\n }\n @for (f of tableSvc.displayFields(); track f.field();let i=$index) {\n <td [nzLeft]=\"f.freezeMode()=='left'\" [nzRight]=\"f.freezeMode()=='right'\" [nzAlign]=\"f.align()\">\n @if (f.statisticAble()) {\n @if (f.child()) {\n <ng-container [axisDynamic]=\"f.child()\"></ng-container>\n }@else {\n {{statistic.statisticGroupMap()[tableSvc.getGroupValue(data)]?.[f.field()]}}\n }\n }@else if(i==0 && !options.showOrder()){\n @if(tableSvc.groupAbleFields()[0] == f){\n {{data[f.field()]}}({{options.statisticTitle()}})\n }@else{\n {{options.statisticTitle()}}\n }\n }@else if (f.groupAble() && f == tableSvc.groupAbleFields()[0]) {\n {{data[f.field()]}}\n }\n </td>\n }\n @if (rowActions().length) {\n <td nzRight></td>\n }\n </tr>\n }\n }\n @if (options.showExpand() && options.expandMode() == \"custom\") {\n <tr [axisScope]=\"options.id+'.row'\" scopeName=\"\u8868\u683C\u884C\" [dataSources]=\"[{name:'row',type:'local',data:trow}]\"\n [nzExpand]=\"expand.expandedSet.has(trow[options.keyField()])\" data-expandrow>\n <ng-container [axisDynamic]=\"options.expandRow()\"></ng-container>\n </tr>\n }\n }\n }\n </tbody>\n @if (options.showStatistic()) {\n <tfoot nzSummary>\n <tr [axisScope]=\"options.id+'.row'\" scopeName=\"\u8868\u683C\u884C\"\n [dataSources]=\"[{name:'row',type:'local',data:statistic.statisticMap()}]\">\n @if (options.showCheckbox()) {\n <td nzLeft></td>\n }\n @if (options.showExpand()) {\n <td nzLeft></td>\n }\n @if(options.showOrder()){\n <td nzAlign=\"right\">\n <b>{{options.statisticTitle()}}</b>\n </td>\n }\n @for (f of tableSvc.displayFields(); track f.field();let i=$index) {\n <td [nzLeft]=\"f.freezeMode()=='left'\" [nzRight]=\"f.freezeMode()=='right'\" [nzAlign]=\"f.align()\">\n <b>\n @if (f.statisticAble()) {\n @if (f.child()) {\n <ng-container [axisDynamic]=\"f.child()\"></ng-container>\n }@else {\n {{statistic.statisticMap()[f.field()]}}\n }\n }@else if(i==0 && !options.showOrder()){\n {{options.statisticTitle()}}\n }\n </b>\n </td>\n }\n @if (rowActions().length) {\n <td nzRight></td>\n }\n </tr>\n </tfoot>\n }\n <ng-template #totalRange let-range=\"range\" let-total>\n \u5171{{ total }}\u6761\u6570\u636E\uFF0C\u7B2C{{ range[0] }}-{{ range[1] }}\u6761\n </ng-template>\n</nz-table>", styles: [":host{display:block;width:100%;overflow:hidden}:host ::ng-deep .ant-table-placeholder .ant-table-expanded-row-fixed{margin:-8px -10px}td[rowspan=\"0\"]{display:none}\n"] }]
531
+ ], template: "@if (options.showTableTitleSet()) {\n<axis-table-setter [fields]=\"oriFields()\" [cacheKey]=\"options.tableSetCacheKey()\"\n (onChange)=\"fixFields.set($event)\"></axis-table-setter>\n}\n<nz-table #table [nzSize]=\"options.size()\" [nzData]=\"tableSvc.rows()??[]\" [nzLoading]=\"!options.data()\"\n [nzBordered]=\"options.bordered()\" [nzOuterBordered]=\"options.outerBordered()\"\n [nzShowPagination]=\"options.showPagination()\"\n [nzFrontPagination]=\"options.showPagination() && !options.useBackEndPaging()\" [nzTotal]=\"tableSvc.rowtotal()\"\n [(nzPageSize)]=\"options.pageSize\" [nzShowSizeChanger]=\"options.showSizeChanger()\"\n [nzPageSizeOptions]=\"tableSvc.pageSizeOptions()\" [nzShowTotal]=\"options.showDataSize()?totalRange:null\"\n [nzScroll]=\"scroll()\" (nzPageIndexChange)=\"onPageIndexChange()\" (nzPageSizeChange)=\"onPageSizeChange()\"\n [(nzPageIndex)]=\"tableSvc.pageIndex\" [nzVirtualItemSize]=\"options.virtualItemSize()\"\n [nzVirtualForTrackBy]=\"trackByKeyField\">\n <thead>\n <tr>\n @if (options.showCheckbox()) {\n @if (!options.checkboxLinkageForExpand() && !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 @if (options.showExpand()) {\n <th nzLeft nzAlign=\"center\" [nzWidth]=\"tableSvc.leaderFieldWidth()-15+'px'\"></th>\n }\n @if (options.showOrder()) {\n <th nzAlign=\"center\" [nzWidth]=\"tableSvc.leaderFieldWidth()+'px'\">\u5E8F\u53F7</th>\n }\n @for (f of tableSvc.displayFields(); track f.field();let i=$index) {\n <th [attr.data-field]=\"f.field()\" nz-resizable nzBounds=\"window\"\n [nzDisabled]=\"!options.showTableTitleSet() || !f.width()\"\n [nzWidth]=\"f.width() == null ?null:f.width()+'px'\" (nzResize)=\"tableSetter?.onResize(f,$event)\"\n [nzShowSort]=\"tableSvc.fieldSortAble(f)\" [nzSortDirections]=\"tableSvc.fieldSortDirections(f)\"\n [nzSortFn]=\"tableSvc.fieldsControlsMap()[f.field()]?.sortFn\" [(nzSortOrder)]=\"f.sortOrder\"\n [nzSortPriority]=\"tableSvc.fieldSortPriority(f)\"\n [nzShowFilter]=\"f.filterAble() && !options.useBackEndPaging()\" (nzSortOrderChange)=\"sortChange()\"\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 <span>\n {{f.title()}}\n @if(options.showTableTitleSet()){\n <nz-resize-handle [style.transform]=\"`translateX(${resizeHandleOffsetX(f)}px)`\" nzDirection=\"right\"\n (click)=\"$event.stopPropagation()\">\n <div class=\"resize-trigger\"></div>\n </nz-resize-handle>\n }\n </span>\n </th>\n }\n @if (rowActions().length)\n {\n <th nzRight nzAlign=\"center\" [nzWidth]=\"actionsFieldWidth()+'px'\" data-rowactions>\u64CD\u4F5C</th>\n }\n </tr>\n </thead>\n <tbody>\n @if (!options.showPagination() && options.virtualScroll()) {\n <ng-template nz-virtual-scroll let-data let-i=\"index\">\n </ng-template>\n }@else {\n @for (trow of table.data; track options.keyField()?trow[options.keyField()]:trow;let i=$index) {\n @for (data of expand.getListForExpanded(trow); track options.keyField()?data[options.keyField()]:data) {\n <tr (click)=\"rowClick(data)\" [axisScope]=\"options.id+'.row'\" scopeName=\"\u8868\u683C\u884C\"\n [dataSources]=\"[{name:'row',type:'local',data:data}]\"\n [class.checkedRow]=\"select.setOfCheckedId().has(data[options.keyField()])\">\n @if (options.showCheckbox()) {\n <td nzLeft [nzChecked]=\"select.setOfCheckedId().has(data[options.keyField()])\"\n [nzIndeterminate]=\"select.setOfIndeterminateId().has(data[options.keyField()])\"\n [nzDisabled]=\"select.setOfDisabledId().has(data[options.keyField()])\"\n (nzCheckedChange)=\"select.onItemChecked(data, $event)\" nzAlign=\"center\"></td>\n }\n @if (options.showExpand()) {\n @if(options.expandMode() == \"tree\" && !expand.nodeMap().get(data[options.keyField()])?.children?.length){\n <td nzLeft></td>\n }@else{\n <td nzLeft [nzExpand]=\"expand.expandedSet.has(data[options.keyField()])\"\n (nzExpandChange)=\"expand.onExpandChange(data[options.keyField()],$event)\"></td>\n }\n }\n @if (options.showOrder()) {\n <td nzAlign=\"center\">{{(table.nzPageIndex-1) * table.nzPageSize + i+1}}</td>\n }\n @for (f of tableSvc.displayFields(); track f.field()) {\n <td [attr.rowspan]=\"tableSvc.rowspan(f,i,table.nzPageIndex,table.nzPageSize,data)\"\n [nzLeft]=\"f.freezeMode()=='left'\" [attr.data-field]=\"f.field()\" [nzRight]=\"f.freezeMode()=='right'\"\n [nzAlign]=\"f.align()\">\n @if (f.child()) {\n @if(loopFieldDataMap().has(f)){\n <ng-container [axisScope]=\"options.id+'.fields.'+f.field()+'.row.loop'\" scopeName=\"\u5217\u5FAA\u73AF\"\n [dataSources]=\"[{name:'loopRow',type:'local',data:loopFieldDataMap().get(f)}]\">\n <ng-container [axisDynamic]=\"f.child()\"></ng-container>\n </ng-container>\n }@else{\n <ng-container [axisDynamic]=\"f.child()\"></ng-container>\n }\n }@else {\n {{data[f.field()]}}\n }\n </td>\n }\n @if (rowActions().length) {\n <td nzRight>\n <div nz-flex nzJustify=\"space-evenly\" data-rowactions>\n @for (a of rowActions(); track a.id) {\n <ng-container [axisDynamic]=\"a\"></ng-container>\n }\n </div>\n </td>\n }\n </tr>\n @if (options.showStatistic() && tableSvc.isGroupEnd(i+(table.nzPageIndex-1)*table.nzPageSize,data)) {\n <tr [axisScope]=\"options.id+'.row'\" scopeName=\"\u8868\u683C\u884C\"\n [dataSources]=\"[{name:'row',type:'local',data:statistic.statisticGroupMap()[tableSvc.getGroupValue(data)]}]\">\n @if (options.showCheckbox()) {\n <td nzLeft></td>\n }\n @if (options.showExpand()) {\n <td nzLeft></td>\n }\n @if(options.showOrder()){\n <td nzAlign=\"right\">\n {{options.statisticTitle()}}\n </td>\n }\n @for (f of tableSvc.displayFields(); track f.field();let i=$index) {\n <td [nzLeft]=\"f.freezeMode()=='left'\" [nzRight]=\"f.freezeMode()=='right'\" [nzAlign]=\"f.align()\">\n @if (f.statisticAble()) {\n @if (f.child()) {\n <ng-container [axisDynamic]=\"f.child()\"></ng-container>\n }@else {\n {{statistic.statisticGroupMap()[tableSvc.getGroupValue(data)]?.[f.field()]}}\n }\n }@else if(i==0 && !options.showOrder()){\n @if(tableSvc.groupAbleFields()[0] == f){\n {{data[f.field()]}}({{options.statisticTitle()}})\n }@else{\n {{options.statisticTitle()}}\n }\n }@else if (f.groupAble() && f == tableSvc.groupAbleFields()[0]) {\n {{data[f.field()]}}\n }\n </td>\n }\n @if (rowActions().length) {\n <td nzRight></td>\n }\n </tr>\n }\n }\n @if (options.showExpand() && options.expandMode() == \"custom\") {\n <tr [axisScope]=\"options.id+'.row'\" scopeName=\"\u8868\u683C\u884C\" [dataSources]=\"[{name:'row',type:'local',data:trow}]\"\n [nzExpand]=\"expand.expandedSet.has(trow[options.keyField()])\" data-expandrow>\n <ng-container [axisDynamic]=\"options.expandRow()\"></ng-container>\n </tr>\n }\n }\n }\n </tbody>\n @if (options.showStatistic()) {\n <tfoot nzSummary>\n <tr [axisScope]=\"options.id+'.row'\" scopeName=\"\u8868\u683C\u884C\"\n [dataSources]=\"[{name:'row',type:'local',data:statistic.statisticMap()}]\">\n @if (options.showCheckbox()) {\n <td nzLeft></td>\n }\n @if (options.showExpand()) {\n <td nzLeft></td>\n }\n @if(options.showOrder()){\n <td nzAlign=\"right\">\n <b>{{options.statisticTitle()}}</b>\n </td>\n }\n @for (f of tableSvc.displayFields(); track f.field();let i=$index) {\n <td [nzLeft]=\"f.freezeMode()=='left'\" [nzRight]=\"f.freezeMode()=='right'\" [nzAlign]=\"f.align()\">\n <b>\n @if (f.statisticAble()) {\n @if (f.child()) {\n <ng-container [axisDynamic]=\"f.child()\"></ng-container>\n }@else {\n {{statistic.statisticMap()[f.field()]}}\n }\n }@else if(i==0 && !options.showOrder()){\n {{options.statisticTitle()}}\n }\n </b>\n </td>\n }\n @if (rowActions().length) {\n <td nzRight></td>\n }\n </tr>\n </tfoot>\n }\n <ng-template #totalRange let-range=\"range\" let-total>\n \u5171{{ total }}\u6761\u6570\u636E\uFF0C\u7B2C{{ range[0] }}-{{ range[1] }}\u6761\n </ng-template>\n</nz-table>", styles: [":host{display:block;width:100%;overflow:hidden}:host ::ng-deep .ant-table-placeholder .ant-table-expanded-row-fixed{margin:-8px -10px}td[rowspan=\"0\"]{display:none}.checkedRow>td{background-color:var(--ant-primary-2)}.checkedRow:hover>td{background-color:var(--ant-primary-3)}\n"] }]
527
532
  }], ctorParameters: () => [{ type: i1$1.TableFieldDisplayService }, { type: i1$1.TableService }, { type: i1$1.SelectService }, { type: i1$1.ExpandService }, { type: i1$1.StatisticService }, { type: i1$1.SelectService, decorators: [{
528
533
  type: SkipSelf
529
534
  }, {
@@ -1 +1 @@
1
- {"version":3,"file":"ngx-axis-appforge-axis-components-table.mjs","sources":["../../../axis-components/table/table.options.ts","../../../axis-components/table/table-setter/table-setter.ts","../../../axis-components/table/table-setter/table-setter.html","../../../axis-components/table/table.ts","../../../axis-components/table/table.html","../../../axis-components/table/ngx-axis-appforge-axis-components-table.ts"],"sourcesContent":["import { signal } from \"@angular/core\";\nimport { DataOptions, } from \"ngx-axis-appforge/core\";\nimport { BaseTableFieldOptions, BaseTableOptions, ExpandableTableOptions, SelectableTableOptions, StatisticTableFieldOptions, StatisticTableOptions } from 'ngx-axis-appforge/axis-components/table-helper'\n\nexport class TableOptions extends DataOptions implements BaseTableOptions, SelectableTableOptions, ExpandableTableOptions, StatisticTableOptions {\n readonly keyField = signal(\"\");\n readonly showExpand = signal(false);\n readonly expandMode = signal<\"custom\" | \"tree\">(\"custom\");\n readonly treeChildrenFun = signal(\"\");\n readonly showTableTitleSet = signal(false);\n readonly tableSetCacheKey = signal(\"\");\n readonly size = signal<'middle' | 'small' | 'default'>(\"middle\");\n readonly showOrder = signal(true);\n readonly heightExpanded = signal(false);\n readonly showDataSize = signal(true);\n readonly bordered = signal(false);\n readonly outerBordered = signal(false);\n readonly width = signal<number | undefined>(undefined);\n readonly actionsFieldWidth = signal<number | null>(null);\n readonly showCheckbox = signal(false);\n readonly checkeOnRowClick = signal(false);\n readonly singleCheck = signal(false);\n readonly checkboxLinkageForExpand = signal(false);\n readonly checkedKeys = signal(undefined);\n readonly disableCheckboxFn = signal<string | undefined>(undefined);\n readonly defaultSelectFirstRow = signal(false);\n readonly showStatistic = signal(false);\n readonly statisticTitle = signal(\"合计\");\n readonly showPagination = signal(true);\n readonly virtualScroll = signal(false);\n readonly virtualItemSize = signal(32);\n readonly pageSize = signal(10);\n readonly showSizeChanger = signal(true);\n readonly pageSizeOptions = signal(\"10,20,50,100\");\n readonly useBackEndPaging = signal(false);\n readonly customExportData = signal(false);\n readonly importLimitLength = signal<number | null>(null);\n readonly importStartLine = signal(2);\n readonly importTemplateFileName = signal(\"数据导入模版\");\n readonly importExampleData = signal<any>([]);\n readonly fields = signal<any[]>([]);\n readonly rowActions = signal<any[]>([]);\n readonly expandRow = signal<any>(undefined);\n}\n\nexport class TableFieldOptions implements BaseTableFieldOptions, StatisticTableFieldOptions {\n loop = false\n loopTarget: any[] | undefined = undefined;\n fieldFunForLoop: string | undefined = undefined;\n readonly inuse = signal(true);\n readonly field = signal(\"unknown\");\n readonly title = signal(\"未命名\");\n readonly export = signal(true);\n readonly exportFlowChild = signal(true);\n readonly exportFn = signal<string | undefined>(undefined);\n readonly import = signal(false);\n readonly importRequired = signal(false);\n readonly importCellType = signal<\"text\" | \"number\">(\"text\");\n readonly importHelp = signal<string | undefined>(undefined);\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 width = signal<number | null>(null);\n readonly align = signal<'left' | 'right' | 'center'>(\"left\");\n readonly freezeMode = signal<'none' | 'left' | 'right'>(\"none\");\n readonly groupAble = signal(false);\n readonly groupLevel = signal<number | null>(null);\n readonly statisticAble = signal(false);\n readonly statisticType = signal<\"sum\" | \"average\" | \"max\" | \"min\" | \"custom\">(\"sum\");\n readonly statisticFn = signal<string | undefined>(undefined);\n readonly titleGroup = signal<string | undefined>(undefined);\n readonly child = signal<any>(undefined);\n}","import { ChangeDetectionStrategy, Component, effect, input, model, OnDestroy, output, signal } from '@angular/core';\nimport { NzButtonModule } from 'ng-zorro-antd/button';\nimport { NzGridModule } from 'ng-zorro-antd/grid';\nimport { NzIconModule } from 'ng-zorro-antd/icon';\nimport { NzModalModule } from 'ng-zorro-antd/modal';\nimport { CdkDrag, CdkDragDrop, CdkDropList, moveItemInArray, transferArrayItem } from '@angular/cdk/drag-drop';\nimport { TableFieldOptions } from '../table.options';\nimport { NzResizeEvent } from 'ng-zorro-antd/resizable';\nimport { debounceTime, Subject, Subscription } from 'rxjs';\n\n\n@Component({\n selector: 'axis-table-setter',\n imports: [NzIconModule, NzButtonModule, NzModalModule, NzGridModule, CdkDrag, CdkDropList],\n templateUrl: './table-setter.html',\n styleUrl: './table-setter.css',\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class TableSetter implements OnDestroy {\n\n constructor() {\n effect(() => this.buildFixAndNotFixColumn());\n effect(() => this.onChange.emit(this.fix()));\n this.sub = this.saveCacheSubject.pipe(debounceTime(200)).subscribe(v => this.saveCache());\n }\n\n readonly fields = input.required<TableFieldOptions[]>();\n readonly cacheKey = input<string>();\n readonly onChange = output<TableFieldOptions[]>();\n\n readonly modalVisible = model(false);\n readonly fix = signal<TableFieldOptions[]>([]);\n readonly notFix = signal<TableFieldOptions[]>([]);\n\n saveCacheSubject = new Subject<void>();\n cache: { fix: string[], notFix: string[], widths: { [field: string]: number } } = { fix: [], notFix: [], widths: {} };\n sub?: Subscription;\n\n private buildFixAndNotFixColumn(): void {\n this.loadCache();\n if (this.cache) {\n const fieldMap = new Map<string, TableFieldOptions>();\n for (const f of this.fields()) {\n fieldMap.set(f.field(), f);\n if (this.cache.widths.hasOwnProperty(f.field())) {\n f.width.set(this.cache.widths[f.field()]);\n }\n }\n this.fix.set(this.cache.fix.filter(f => fieldMap.has(f)).map(f => fieldMap.get(f)!)\n .concat(this.fields().filter(f => !this.cache!.fix.includes(f.field()) && !this.cache!.notFix.includes(f.field()))));\n this.notFix.set(this.cache.notFix.filter(f => fieldMap.has(f)).map(f => fieldMap.get(f)!));\n } else {\n this.fix.set(this.fields());\n }\n }\n\n private loadCache() {\n if (this.cacheKey()) {\n const cacheStr = localStorage.getItem(this.cacheKey()!);\n if (cacheStr) {\n try {\n this.cache = JSON.parse(cacheStr);\n } catch (_) { }\n }\n }\n }\n\n private saveCache() {\n if (this.cacheKey()) {\n localStorage.setItem(this.cacheKey()!, JSON.stringify(this.cache));\n }\n }\n\n private updateFix(): void {\n this.fix.set([...this.fix()]);\n this.notFix.set([...this.notFix()]);\n if (this.cacheKey()) {\n this.cache.fix = this.fix().map(f => f.field());\n this.cache.notFix = this.notFix().map(f => f.field());\n this.saveCache();\n }\n }\n\n drop(event: CdkDragDrop<TableFieldOptions[], any, any>): void {\n if (event.previousContainer === event.container) {\n moveItemInArray(event.container.data, event.previousIndex, event.currentIndex);\n } else {\n transferArrayItem(event.previousContainer.data, event.container.data, event.previousIndex, event.currentIndex);\n }\n this.updateFix();\n }\n\n deleteCustom(index: number): void {\n transferArrayItem(this.fix(), this.notFix(), index, this.notFix().length);\n this.updateFix();\n }\n\n addCustom(index: number): void {\n transferArrayItem(this.notFix(), this.fix(), index, this.fix().length);\n this.updateFix();\n }\n\n onResize(field: TableFieldOptions, event: NzResizeEvent) {\n field.width.set(event.width ?? null);\n this.cache.widths[field.field()] = event.width!;\n this.saveCacheSubject.next();\n }\n\n resetDefault() {\n this.fix.set(this.fields());\n this.notFix.set([]);\n if (this.cacheKey()) {\n localStorage.removeItem(this.cacheKey()!);\n }\n }\n\n ngOnDestroy(): void {\n this.sub?.unsubscribe();\n this.saveCacheSubject.unsubscribe();\n }\n}","<a nz-button nzType=\"link\" nzSize=\"small\" (click)=\"modalVisible.set(true)\" style=\"margin: 2px;\">\n <nz-icon nzType=\"setting\" nzTheme=\"outline\" />\n</a>\n<nz-modal [(nzVisible)]=\"modalVisible\" nzTitle=\"表头设置\" nzDraggable [nzOkText]=\"null\" nzCancelText=\"关闭\"\n (nzOnCancel)=\"modalVisible.set(false)\">\n <ng-container *nzModalContent>\n <div nz-row [nzGutter]=\"24\">\n <div nz-col class=\"gutter-row\" [nzSpan]=\"12\">\n <div class=\"container\">\n <p>展示字段<a nz-button nzType=\"link\" (click)=\"resetDefault()\">恢复默认</a></p>\n <div cdkDropList #todoList=\"cdkDropList\" [cdkDropListData]=\"fix()\"\n [cdkDropListConnectedTo]=\"[doneList]\" class=\"list\" (cdkDropListDropped)=\"drop($event)\">\n @for (item of fix(); track item; let i = $index) {\n <div class=\"box\" cdkDrag>\n {{ item.title() }}\n <nz-icon nzType=\"minus-circle\" nzTheme=\"outline\" (click)=\"deleteCustom(i)\" />\n </div>\n }\n </div>\n </div>\n </div>\n <div nz-col class=\"gutter-row\" [nzSpan]=\"12\">\n <div class=\"container\">\n <p>隐藏字段</p>\n <div cdkDropList #doneList=\"cdkDropList\" [cdkDropListData]=\"notFix()\"\n [cdkDropListConnectedTo]=\"[todoList]\" class=\"list\" (cdkDropListDropped)=\"drop($event)\">\n @for (item of notFix(); track item; let i = $index) {\n <div class=\"box\" cdkDrag>\n {{ item.title() }}\n <nz-icon nzType=\"plus-circle\" nzTheme=\"outline\" (click)=\"addCustom(i)\" />\n </div>\n }\n </div>\n </div>\n </div>\n </div>\n </ng-container>\n</nz-modal>","import { ChangeDetectionStrategy, Component, computed, effect, Inject, Optional, signal, SkipSelf, ViewChild, WritableSignal } from '@angular/core';\nimport { TableFieldOptions, TableOptions } from './table.options';\nimport { Base, copy, DynamicDirective, EventHandlerOptions, ScopeDirective } from 'ngx-axis-appforge/core';\nimport { NzTableModule } from 'ng-zorro-antd/table';\nimport { FormsModule } from '@angular/forms';\nimport { TableSetter } from './table-setter/table-setter';\nimport { NzResizableModule } from 'ng-zorro-antd/resizable';\nimport { NzFlexModule } from 'ng-zorro-antd/flex';\nimport { DatePipe, DecimalPipe, PercentPipe } from '@angular/common';\nimport { TableFieldDisplayService, TableService, SelectService, ExpandService, StatisticService, AXIS_TABLE_SELECT_TOKEN } from 'ngx-axis-appforge/axis-components/table-helper'\nimport { debounceTime, filter, map, Observable, of, Subject, take, tap } from 'rxjs';\nimport { utils, WorkSheet } from 'xlsx-js-style';\n\n\n@Component({\n selector: 'axis-table',\n imports: [NzTableModule, ScopeDirective, DynamicDirective, FormsModule, TableSetter, NzResizableModule, NzFlexModule],\n templateUrl: './table.html',\n styleUrl: './table.css',\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [DatePipe, DecimalPipe, PercentPipe, TableFieldDisplayService, TableService, SelectService, ExpandService, StatisticService,\n {\n provide: AXIS_TABLE_SELECT_TOKEN,\n useExisting: SelectService,\n },\n ]\n})\nexport class Table extends Base<TableOptions> {\n\n constructor(public tableFieldDisplayService: TableFieldDisplayService, public tableSvc: TableService<TableOptions, TableFieldOptions>, select: SelectService, public expand: ExpandService, public statistic: StatisticService, @SkipSelf() @Optional() @Inject(AXIS_TABLE_SELECT_TOKEN) parentSelect?: SelectService) {\n super();\n effect(() => {\n this.tableSvc.init({ data: this.options.data, options: this.options, fields: this.fields });\n if (this.options.showCheckbox() && !this.options.singleCheck() && this.options.checkboxLinkageForExpand() && parentSelect && this.getScope()) {\n const key = this.getScope()?.snapshot(\"row\")[parentSelect.keyField];\n this.select = parentSelect!.findSubSelect(key) ?? select;\n } else {\n this.select = select;\n }\n this.select.init({ options: this.options, keyField: this.options.keyField(), data: this.options.data, onSelectedChange: () => this.onSelectedChange(), parent: parentSelect, scope: this.getScope(), registToParent: true })\n this.expand.init({ options: this.options, keyField: this.options.keyField(), data: this.options.data });\n this.statistic.init({ options: this.options, data: this.options.data, fields: this.fields, tableSvc: this.tableSvc });\n });\n effect(() => {\n let i = 0;\n const loopFieldDataMap = new Map<TableFieldOptions, any>();\n this.options.fields().forEach((f) => {\n if (f.loop) {\n for (const item of this.loopFieldMap().get(f.field)!()) {\n loopFieldDataMap.set(this.fields()[i], item);\n if (f.fieldFunForLoop) {\n f = copy(f);\n f.field = this.getScope()?.runFnWithSnapshot(f.fieldFunForLoop, { loopRow: item });\n }\n this.bindWithConfig(f, { options: this.fields()[i], tag: `bindField.${i}`, tempDataSource: { loopRow: item } });\n i++;\n }\n } else {\n this.bindWithConfig(f, { options: this.fields()[i], tag: `bindField.${i}` });\n i++;\n }\n });\n this.loopFieldDataMap.set(loopFieldDataMap);\n });\n effect(() => {\n clearInterval(this.timer);\n this.refreshScoll();\n if (this.options.heightExpanded()) {\n this.timer = setInterval(() => {\n this.refreshScoll();\n }, 500);\n }\n });\n effect(() => {\n if (this.tableSvc.useBackEndPaging()) {\n this.addSubscribe(this.backendPageParamsChange.pipe(tap(() => this.options.data.set(null)), debounceTime(50)).subscribe(_ => {\n this.triggeEvents(\"backendPageParamsChange\", { pageParams: Object.assign(this.tableSvc.backEndPageParams, this.statistic.backEndPageParams) }).subscribe();\n }));\n this.backendPageParamsChange.next();\n }\n });\n effect(() => {\n this.options.fields().filter(item => item.loop)\n .forEach(item => {\n const s = this.loopFieldMap().get(item.field)!;\n const io = this.getScope()?.dynamicField(item, \"loopTarget\", false);\n if (io?.init !== undefined) {\n s.set(io.init);\n }\n if (io?.obs) {\n this.addSubscribe(io.obs.pipe(filter(v => v !== undefined))\n .subscribe(s.set), `bindFieldLoop.${item.field}`);\n }\n });\n });\n }\n\n override options: TableOptions = new TableOptions();\n\n public select!: SelectService;\n readonly scroll = signal<{ x: string, y: string }>({ x: \"\", y: \"\" });\n readonly fields = computed(() => this.buildFields());\n readonly rowActions = computed(() => this.actionsFieldWidth() > 0 ? this.options.rowActions() : []);\n readonly actionsFieldWidth = computed(() => this.buildActionsFieldWidth());\n readonly fixFields = signal<TableFieldOptions[]>([]);\n readonly backendPageParamsChange = new Subject<void>();\n readonly customExportDataSubject = new Subject<any[]>();\n timer?: number;\n\n readonly loopFieldMap = computed(() => {\n const loopFieldMap = new Map<string, WritableSignal<any[]>>();\n this.options.fields().filter(item => item.loop)\n .forEach(item => {\n loopFieldMap.set(item.field, signal([]));\n });\n return loopFieldMap;\n });\n readonly loopFieldDataMap = signal<Map<TableFieldOptions, any>>(new Map());\n\n override callFunction<T>(name: String, args?: any): T | undefined {\n switch (name) {\n case \"exportExcel\":\n return this.exportExcel() as T;\n default:\n return undefined;\n }\n }\n\n resizeHandleOffsetX(field: TableFieldOptions): number {\n if (field.sortAble() && field.filterAble()) {\n return 42;\n } else if (field.sortAble()) {\n return 22;\n } else if (field.filterAble()) {\n return 28;\n }\n return 0;\n }\n\n @ViewChild(TableSetter)\n tableSetter?: TableSetter;\n\n trackByKeyField = (i: number, data: any): any => {\n return data[this.options.keyField()];\n }\n\n private buildFields(): TableFieldOptions[] {\n const fields: TableFieldOptions[] = [];\n this.options.fields().forEach(f => {\n if (f.loop) {\n for (const _ of this.loopFieldMap().get(f.field)!()) {\n fields.push(new TableFieldOptions());\n }\n } else {\n fields.push(new TableFieldOptions());\n }\n });\n return fields;\n }\n\n private buildActionsFieldWidth(): number {\n if (this.options.actionsFieldWidth() == 0 || this.options.rowActions().length == 0) {\n return 0;\n }\n return this.options.actionsFieldWidth() ?? this.options.rowActions().length * 45 + 16;\n }\n\n private refreshScoll() {\n let x = this.options.width() ?? 0;\n if (this.options.width() == undefined) {\n if (this.options.showCheckbox()) {\n x += this.tableSvc.leaderFieldWidth();\n }\n if (this.options.showExpand()) {\n x += this.tableSvc.leaderFieldWidth();\n }\n if (this.options.showOrder()) {\n x += this.tableSvc.leaderFieldWidth();\n }\n this.tableSvc.displayFields().forEach(f => {\n if (f.width()) {\n x += f.width()!;\n } else {\n x += 120;\n }\n });\n x += this.actionsFieldWidth();\n }\n let y = \"\";\n if (this.options.heightExpanded()) {\n const element = this.elementRef.nativeElement as HTMLElement;\n const table = element.querySelector(\"nz-table\");\n const head = element.querySelector(\"table[nz-table-content]>thead.ant-table-thead\");\n const headRect = head?.getBoundingClientRect();\n const innerTableRect = head?.parentElement?.parentElement?.parentElement?.getBoundingClientRect();\n const outterTableRect = table?.getBoundingClientRect();\n let tableBody;\n if (head?.parentElement?.parentElement?.nextElementSibling?.classList.contains(\"ant-table-body\")) {\n tableBody = head?.parentElement?.parentElement?.nextElementSibling?.firstElementChild;\n } else if (head?.nextElementSibling?.classList.contains(\"ant-table-tbody\")) {\n tableBody = head?.nextElementSibling;\n } else if (head?.nextElementSibling?.nextElementSibling?.classList.contains(\"ant-table-tbody\")) {\n tableBody = head?.nextElementSibling?.nextElementSibling;\n }\n if (headRect && tableBody) {\n // scroolY = 视口高度(window.innerHeight) - 表头底部位置(headRect.bottom) - 表尾部高度(outterTableRect.bottom - innerTableRect.bottom)\n let scroolY = window.innerHeight - (headRect?.bottom ?? 0) - (outterTableRect?.bottom ?? 0) + (innerTableRect?.bottom ?? 0);\n if (scroolY < tableBody.clientHeight) {\n y = `${scroolY}px`;\n }\n }\n }\n this.scroll.set({ x: x + \"px\", y: y });\n }\n\n onPageIndexChange() {\n this.backendPageParamsChange.next();\n }\n\n onPageSizeChange() {\n this.tableSvc.clearCursorMarks();\n this.backendPageParamsChange.next();\n }\n\n sortChange() {\n this.backendPageParamsChange.next();\n this.tableSvc.sortChange();\n }\n\n onSelectedChange() {\n if (this.hasEventHandler(\"onSelectedChange\")) {\n this.triggeEvents(\"onSelectedChange\", { selectedRows: this.select.getSelectedData() }).subscribe();\n }\n }\n\n rowClick(row: any) {\n if (this.options.showCheckbox() && this.options.checkeOnRowClick()) {\n this.select.toggleChecked(row);\n }\n }\n\n exportExcel(): Observable<WorkSheet> {\n const fields = this.fields().filter(f => f.export());\n const fieldMap = new Map<String, TableFieldOptions>();\n for (const f of fields) {\n fieldMap.set(f.field(), f);\n }\n let dataObs: Observable<any[]>;\n if (this.options.customExportData()) {\n dataObs = this.customExportDataSubject.pipe(take(1));\n this.triggeEvents(\"loadCustomExportData\").subscribe();\n } else if (this.options.useBackEndPaging()) {\n dataObs = of(copy(this.options.data().rows, true) as any[]);\n } else {\n dataObs = of(copy(this.tableSvc.tableData(), true) as any[]);\n }\n return dataObs.pipe(map(data => {\n const insertDatas: { index: number, row: any }[] = [];\n for (let i = 0; i < data.length; i++) {\n const row = data[i];\n if (this.tableSvc.isGroupEnd(i, row)) {\n const insertRow: any = this.statistic.statisticGroupMap()[this.tableSvc.getGroupValue(row)];\n const groupField = this.tableSvc.groupAbleFields()[0]!;\n if (groupField.field() == fields[0].field()) {\n insertRow[groupField.field()] = `${row[groupField.field()]}(${this.options.statisticTitle()})`;\n } else {\n insertRow[fields[0].field()] = this.options.statisticTitle();\n insertRow[groupField.field()] = row[groupField.field()];\n }\n insertDatas.unshift({ index: i + 1, row: insertRow });\n }\n for (const field of fields) {\n let loopRow;\n if (this.loopFieldDataMap().has(field)) {\n loopRow = this.loopFieldDataMap().get(field);\n }\n if (field.exportFlowChild()) {\n row[field.field()] = this.tableFieldDisplayService.getFieldDisplayText(field, row, loopRow);\n } else if (field.exportFn()) {\n row[field.field()] = this.getScope()?.runFnWithSnapshot(field.exportFn(), { row, loopRow });\n }\n }\n for (const f of Object.keys(row)) {\n if (!fieldMap.has(f)) {\n delete row[f];\n }\n }\n }\n for (const r of insertDatas) {\n data.splice(r.index, 0, r.row);\n }\n const headerRow: any = {};\n for (const field of fields) {\n headerRow[field.field()] = field.title();\n }\n data.unshift(headerRow);\n if (this.options.showStatistic()) {\n const statisticRow: any = { ...this.statistic.statisticMap() };\n if (fields.length && !fields[0].statisticAble()) {\n statisticRow[fields[0].field()] = this.options.statisticTitle();\n }\n data.push(statisticRow);\n }\n const ws = utils.json_to_sheet(data, { header: fields.map(f => f.field()), skipHeader: true });\n const merges: any[] = [];\n for (const [field, group] of this.tableSvc.rowsGroupMap()) {\n const c = fields.findIndex(f => f.field() == field);\n for (const indexs of group.values()) {\n let offset = 0;\n for (let i = insertDatas.length - 1; i >= 0; i--) {\n if (indexs[indexs.length - 1] < insertDatas[i].index) {\n break;\n }\n offset++;\n }\n merges.push({ s: { c, r: indexs[0] + 1 + offset }, e: { c, r: indexs[indexs.length - 1] + 1 + offset } });\n }\n }\n ws['!merges'] = merges;\n return ws;\n }));\n }\n\n override onEvents(e: EventHandlerOptions<any>): Observable<boolean> | undefined {\n const obs = super.onEvents?.(e);\n if (obs) {\n return;\n }\n switch (e.name) {\n case \"setCustomExportData\":\n this.customExportDataSubject.next(e.data.data);\n return of(true);\n }\n return undefined;\n }\n\n override ngOnDestroy(): void {\n super.ngOnDestroy();\n this.select.close();\n clearInterval(this.timer);\n }\n}\n","@if (options.showTableTitleSet()) {\n<axis-table-setter [fields]=\"fields()\" [cacheKey]=\"options.tableSetCacheKey()\"\n (onChange)=\"fixFields.set($event)\"></axis-table-setter>\n}\n<nz-table #table [nzSize]=\"options.size()\" [nzData]=\"tableSvc.rows()??[]\" [nzLoading]=\"!options.data()\"\n [nzBordered]=\"options.bordered()\" [nzOuterBordered]=\"options.outerBordered()\"\n [nzShowPagination]=\"options.showPagination()\"\n [nzFrontPagination]=\"options.showPagination() && !options.useBackEndPaging()\" [nzTotal]=\"tableSvc.rowtotal()\"\n [(nzPageSize)]=\"options.pageSize\" [nzShowSizeChanger]=\"options.showSizeChanger()\"\n [nzPageSizeOptions]=\"tableSvc.pageSizeOptions()\" [nzShowTotal]=\"options.showDataSize()?totalRange:null\"\n [nzScroll]=\"scroll()\" (nzPageIndexChange)=\"onPageIndexChange()\" (nzPageSizeChange)=\"onPageSizeChange()\"\n [(nzPageIndex)]=\"tableSvc.pageIndex\" [nzVirtualItemSize]=\"options.virtualItemSize()\"\n [nzVirtualForTrackBy]=\"trackByKeyField\">\n <thead>\n <tr>\n @if (options.showCheckbox()) {\n @if (!options.checkboxLinkageForExpand() && !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 @if (options.showExpand()) {\n <th nzLeft nzAlign=\"center\" [nzWidth]=\"tableSvc.leaderFieldWidth()-15+'px'\"></th>\n }\n @if (options.showOrder()) {\n <th nzAlign=\"center\" [nzWidth]=\"tableSvc.leaderFieldWidth()+'px'\">序号</th>\n }\n @for (f of tableSvc.displayFields(); track f.field();let i=$index) {\n <th [attr.data-field]=\"f.field()\" nz-resizable nzBounds=\"window\"\n [nzDisabled]=\"!options.showTableTitleSet() || !f.width()\"\n [nzWidth]=\"f.width() == null ?null:f.width()+'px'\" (nzResize)=\"tableSetter?.onResize(f,$event)\"\n [nzShowSort]=\"tableSvc.fieldSortAble(f)\" [nzSortDirections]=\"tableSvc.fieldSortDirections(f)\"\n [nzSortFn]=\"tableSvc.fieldsControlsMap()[f.field()]?.sortFn\" [(nzSortOrder)]=\"f.sortOrder\"\n [nzSortPriority]=\"tableSvc.fieldSortPriority(f)\"\n [nzShowFilter]=\"f.filterAble() && !options.useBackEndPaging()\" (nzSortOrderChange)=\"sortChange()\"\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 <span>\n {{f.title()}}\n @if(options.showTableTitleSet()){\n <nz-resize-handle [style.transform]=\"`translateX(${resizeHandleOffsetX(f)}px)`\" nzDirection=\"right\"\n (click)=\"$event.stopPropagation()\">\n <div class=\"resize-trigger\"></div>\n </nz-resize-handle>\n }\n </span>\n </th>\n }\n @if (rowActions().length)\n {\n <th nzRight nzAlign=\"center\" [nzWidth]=\"actionsFieldWidth()+'px'\" data-rowactions>操作</th>\n }\n </tr>\n </thead>\n <tbody>\n @if (!options.showPagination() && options.virtualScroll()) {\n <ng-template nz-virtual-scroll let-data let-i=\"index\">\n </ng-template>\n }@else {\n @for (trow of table.data; track options.keyField()?trow[options.keyField()]:trow;let i=$index) {\n @for (data of expand.getListForExpanded(trow); track options.keyField()?data[options.keyField()]:data) {\n <tr (click)=\"rowClick(data)\" [axisScope]=\"options.id+'.row'\" scopeName=\"表格行\"\n [dataSources]=\"[{name:'row',type:'local',data:data}]\">\n @if (options.showCheckbox()) {\n <td nzLeft [nzChecked]=\"select.setOfCheckedId().has(data[options.keyField()])\"\n [nzIndeterminate]=\"select.setOfIndeterminateId().has(data[options.keyField()])\"\n [nzDisabled]=\"select.setOfDisabledId().has(data[options.keyField()])\"\n (nzCheckedChange)=\"select.onItemChecked(data, $event)\" nzAlign=\"center\"></td>\n }\n @if (options.showExpand()) {\n @if(options.expandMode() == \"tree\" && !expand.nodeMap().get(data[options.keyField()])?.children?.length){\n <td nzLeft></td>\n }@else{\n <td nzLeft [nzExpand]=\"expand.expandedSet.has(data[options.keyField()])\"\n (nzExpandChange)=\"expand.onExpandChange(data[options.keyField()],$event)\"></td>\n }\n }\n @if (options.showOrder()) {\n <td nzAlign=\"center\">{{(table.nzPageIndex-1) * table.nzPageSize + i+1}}</td>\n }\n @for (f of tableSvc.displayFields(); track f.field()) {\n <td [attr.rowspan]=\"tableSvc.rowspan(f,i,table.nzPageIndex,table.nzPageSize,data)\"\n [nzLeft]=\"f.freezeMode()=='left'\" [attr.data-field]=\"f.field()\" [nzRight]=\"f.freezeMode()=='right'\"\n [nzAlign]=\"f.align()\">\n @if (f.child()) {\n @if(loopFieldDataMap().has(f)){\n <ng-container [axisScope]=\"options.id+'.fields.'+f.field()+'.row.loop'\" scopeName=\"列循环\"\n [dataSources]=\"[{name:'loopRow',type:'local',data:loopFieldDataMap().get(f)}]\">\n <ng-container [axisDynamic]=\"f.child()\"></ng-container>\n </ng-container>\n }@else{\n <ng-container [axisDynamic]=\"f.child()\"></ng-container>\n }\n }@else {\n {{data[f.field()]}}\n }\n </td>\n }\n @if (rowActions().length) {\n <td nzRight>\n <div nz-flex nzJustify=\"space-evenly\" data-rowactions>\n @for (a of rowActions(); track a.id) {\n <ng-container [axisDynamic]=\"a\"></ng-container>\n }\n </div>\n </td>\n }\n </tr>\n @if (options.showStatistic() && tableSvc.isGroupEnd(i+(table.nzPageIndex-1)*table.nzPageSize,data)) {\n <tr [axisScope]=\"options.id+'.row'\" scopeName=\"表格行\"\n [dataSources]=\"[{name:'row',type:'local',data:statistic.statisticGroupMap()[tableSvc.getGroupValue(data)]}]\">\n @if (options.showCheckbox()) {\n <td nzLeft></td>\n }\n @if (options.showExpand()) {\n <td nzLeft></td>\n }\n @if(options.showOrder()){\n <td nzAlign=\"right\">\n {{options.statisticTitle()}}\n </td>\n }\n @for (f of tableSvc.displayFields(); track f.field();let i=$index) {\n <td [nzLeft]=\"f.freezeMode()=='left'\" [nzRight]=\"f.freezeMode()=='right'\" [nzAlign]=\"f.align()\">\n @if (f.statisticAble()) {\n @if (f.child()) {\n <ng-container [axisDynamic]=\"f.child()\"></ng-container>\n }@else {\n {{statistic.statisticGroupMap()[tableSvc.getGroupValue(data)]?.[f.field()]}}\n }\n }@else if(i==0 && !options.showOrder()){\n @if(tableSvc.groupAbleFields()[0] == f){\n {{data[f.field()]}}({{options.statisticTitle()}})\n }@else{\n {{options.statisticTitle()}}\n }\n }@else if (f.groupAble() && f == tableSvc.groupAbleFields()[0]) {\n {{data[f.field()]}}\n }\n </td>\n }\n @if (rowActions().length) {\n <td nzRight></td>\n }\n </tr>\n }\n }\n @if (options.showExpand() && options.expandMode() == \"custom\") {\n <tr [axisScope]=\"options.id+'.row'\" scopeName=\"表格行\" [dataSources]=\"[{name:'row',type:'local',data:trow}]\"\n [nzExpand]=\"expand.expandedSet.has(trow[options.keyField()])\" data-expandrow>\n <ng-container [axisDynamic]=\"options.expandRow()\"></ng-container>\n </tr>\n }\n }\n }\n </tbody>\n @if (options.showStatistic()) {\n <tfoot nzSummary>\n <tr [axisScope]=\"options.id+'.row'\" scopeName=\"表格行\"\n [dataSources]=\"[{name:'row',type:'local',data:statistic.statisticMap()}]\">\n @if (options.showCheckbox()) {\n <td nzLeft></td>\n }\n @if (options.showExpand()) {\n <td nzLeft></td>\n }\n @if(options.showOrder()){\n <td nzAlign=\"right\">\n <b>{{options.statisticTitle()}}</b>\n </td>\n }\n @for (f of tableSvc.displayFields(); track f.field();let i=$index) {\n <td [nzLeft]=\"f.freezeMode()=='left'\" [nzRight]=\"f.freezeMode()=='right'\" [nzAlign]=\"f.align()\">\n <b>\n @if (f.statisticAble()) {\n @if (f.child()) {\n <ng-container [axisDynamic]=\"f.child()\"></ng-container>\n }@else {\n {{statistic.statisticMap()[f.field()]}}\n }\n }@else if(i==0 && !options.showOrder()){\n {{options.statisticTitle()}}\n }\n </b>\n </td>\n }\n @if (rowActions().length) {\n <td nzRight></td>\n }\n </tr>\n </tfoot>\n }\n <ng-template #totalRange let-range=\"range\" let-total>\n 共{{ total }}条数据,第{{ range[0] }}-{{ range[1] }}条\n </ng-template>\n</nz-table>","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './table';\n"],"names":["i4"],"mappings":"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"}
1
+ {"version":3,"file":"ngx-axis-appforge-axis-components-table.mjs","sources":["../../../axis-components/table/table.options.ts","../../../axis-components/table/table-setter/table-setter.ts","../../../axis-components/table/table-setter/table-setter.html","../../../axis-components/table/table.ts","../../../axis-components/table/table.html","../../../axis-components/table/ngx-axis-appforge-axis-components-table.ts"],"sourcesContent":["import { signal } from \"@angular/core\";\nimport { DataOptions, } from \"ngx-axis-appforge/core\";\nimport { BaseTableFieldOptions, BaseTableOptions, ExpandableTableOptions, SelectableTableOptions, StatisticTableFieldOptions, StatisticTableOptions } from 'ngx-axis-appforge/axis-components/table-helper'\n\nexport class TableOptions extends DataOptions implements BaseTableOptions, SelectableTableOptions, ExpandableTableOptions, StatisticTableOptions {\n readonly keyField = signal(\"\");\n readonly showExpand = signal(false);\n readonly expandMode = signal<\"custom\" | \"tree\">(\"custom\");\n readonly treeChildrenFun = signal(\"\");\n readonly showTableTitleSet = signal(false);\n readonly tableSetCacheKey = signal(\"\");\n readonly size = signal<'middle' | 'small' | 'default'>(\"middle\");\n readonly showOrder = signal(true);\n readonly heightExpanded = signal(false);\n readonly showDataSize = signal(true);\n readonly bordered = signal(false);\n readonly outerBordered = signal(false);\n readonly width = signal<number | undefined>(undefined);\n readonly actionsFieldWidth = signal<number | null>(null);\n readonly showCheckbox = signal(false);\n readonly checkeOnRowClick = signal(false);\n readonly singleCheck = signal(false);\n readonly checkboxLinkageForExpand = signal(false);\n readonly checkedKeys = signal(undefined);\n readonly disableCheckboxFn = signal<string | undefined>(undefined);\n readonly defaultSelectFirstRow = signal(false);\n readonly showStatistic = signal(false);\n readonly statisticTitle = signal(\"合计\");\n readonly showPagination = signal(true);\n readonly virtualScroll = signal(false);\n readonly virtualItemSize = signal(32);\n readonly pageSize = signal(10);\n readonly showSizeChanger = signal(true);\n readonly pageSizeOptions = signal(\"10,20,50,100\");\n readonly useBackEndPaging = signal(false);\n readonly customExportData = signal(false);\n readonly importLimitLength = signal<number | null>(null);\n readonly importStartLine = signal(2);\n readonly importTemplateFileName = signal(\"数据导入模版\");\n readonly importExampleData = signal<any>([]);\n readonly fields = signal<any[]>([]);\n readonly rowActions = signal<any[]>([]);\n readonly expandRow = signal<any>(undefined);\n}\n\nexport class TableFieldOptions implements BaseTableFieldOptions, StatisticTableFieldOptions {\n loop = false\n loopTarget: any[] | undefined = undefined;\n fieldFunForLoop: string | undefined = undefined;\n readonly inuse = signal(true);\n readonly field = signal(\"unknown\");\n readonly title = signal(\"未命名\");\n readonly export = signal(true);\n readonly exportFlowChild = signal(true);\n readonly exportFn = signal<string | undefined>(undefined);\n readonly import = signal(false);\n readonly importRequired = signal(false);\n readonly importCellType = signal<\"text\" | \"number\">(\"text\");\n readonly importHelp = signal<string | undefined>(undefined);\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 width = signal<number | null>(null);\n readonly align = signal<'left' | 'right' | 'center'>(\"left\");\n readonly freezeMode = signal<'none' | 'left' | 'right'>(\"none\");\n readonly groupAble = signal(false);\n readonly groupLevel = signal<number | null>(null);\n readonly statisticAble = signal(false);\n readonly statisticType = signal<\"sum\" | \"average\" | \"max\" | \"min\" | \"custom\">(\"sum\");\n readonly statisticFn = signal<string | undefined>(undefined);\n readonly titleGroup = signal<string | undefined>(undefined);\n readonly child = signal<any>(undefined);\n}","import { ChangeDetectionStrategy, Component, effect, input, model, OnDestroy, output, signal } from '@angular/core';\nimport { NzButtonModule } from 'ng-zorro-antd/button';\nimport { NzGridModule } from 'ng-zorro-antd/grid';\nimport { NzIconModule } from 'ng-zorro-antd/icon';\nimport { NzModalModule } from 'ng-zorro-antd/modal';\nimport { CdkDrag, CdkDragDrop, CdkDropList, moveItemInArray, transferArrayItem } from '@angular/cdk/drag-drop';\nimport { TableFieldOptions } from '../table.options';\nimport { NzResizeEvent } from 'ng-zorro-antd/resizable';\nimport { debounceTime, Subject, Subscription } from 'rxjs';\nimport { CommonModule } from '@angular/common';\n\n\n@Component({\n selector: 'axis-table-setter',\n imports: [NzIconModule, NzButtonModule, NzModalModule, NzGridModule, CdkDrag, CdkDropList, CommonModule],\n templateUrl: './table-setter.html',\n styleUrl: './table-setter.css',\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class TableSetter implements OnDestroy {\n\n constructor() {\n effect(() => this.buildFixAndNotFixColumn(), { debugName: \"test\" });\n effect(() => this.onChange.emit([...this.fix()]));\n this.sub = this.saveCacheSubject.pipe(debounceTime(200)).subscribe(v => this.saveCache());\n }\n\n readonly fields = input.required<TableFieldOptions[]>();\n readonly cacheKey = input<string>();\n readonly onChange = output<TableFieldOptions[]>();\n\n readonly modalVisible = model(false);\n readonly fix = signal<TableFieldOptions[]>([]);\n readonly notFix = signal<TableFieldOptions[]>([]);\n\n saveCacheSubject = new Subject<void>();\n cache: { fix: string[], notFix: string[], widths: { [field: string]: number } } = { fix: [], notFix: [], widths: {} };\n sub?: Subscription;\n\n private buildFixAndNotFixColumn(): void {\n this.loadCache();\n const fields = this.fields();\n if (this.cache) {\n const fieldMap = new Map<string, TableFieldOptions>();\n for (const f of fields) {\n fieldMap.set(f.field(), f);\n if (this.cache.widths.hasOwnProperty(f.field())) {\n f.width.set(this.cache.widths[f.field()]);\n }\n }\n this.fix.set(this.cache.fix.filter(f => fieldMap.has(f)).map(f => fieldMap.get(f)!)\n .concat(fields.filter(f => !this.cache!.fix.includes(f.field()) && !this.cache!.notFix.includes(f.field()))));\n this.notFix.set(this.cache.notFix.filter(f => fieldMap.has(f)).map(f => fieldMap.get(f)!));\n } else {\n this.fix.set([...fields]);\n }\n }\n\n private loadCache() {\n if (this.cacheKey()) {\n const cacheStr = localStorage.getItem(this.cacheKey()!);\n if (cacheStr) {\n try {\n this.cache = JSON.parse(cacheStr);\n } catch (_) { }\n }\n }\n }\n\n private saveCache() {\n if (this.cacheKey()) {\n localStorage.setItem(this.cacheKey()!, JSON.stringify(this.cache));\n }\n }\n\n private updateFix(): void {\n this.fix.set([...this.fix()]);\n this.notFix.set([...this.notFix()]);\n if (this.cacheKey()) {\n this.cache.fix = this.fix().map(f => f.field());\n this.cache.notFix = this.notFix().map(f => f.field());\n this.saveCache();\n }\n }\n\n drop(event: CdkDragDrop<TableFieldOptions[], any, any>): void {\n if (event.previousContainer === event.container) {\n moveItemInArray(event.container.data, event.previousIndex, event.currentIndex);\n } else {\n transferArrayItem(event.previousContainer.data, event.container.data, event.previousIndex, event.currentIndex);\n }\n this.updateFix();\n }\n\n deleteCustom(index: number): void {\n transferArrayItem(this.fix(), this.notFix(), index, this.notFix().length);\n this.updateFix();\n }\n\n addCustom(index: number): void {\n transferArrayItem(this.notFix(), this.fix(), index, this.fix().length);\n this.updateFix();\n }\n\n onResize(field: TableFieldOptions, event: NzResizeEvent) {\n field.width.set(event.width ?? null);\n this.cache.widths[field.field()] = event.width!;\n this.saveCacheSubject.next();\n }\n\n resetDefault() {\n this.fix.set([...this.fields()]);\n this.notFix.set([]);\n if (this.cacheKey()) {\n localStorage.removeItem(this.cacheKey()!);\n }\n }\n\n ngOnDestroy(): void {\n this.sub?.unsubscribe();\n this.saveCacheSubject.unsubscribe();\n }\n}","<a nz-button nzType=\"link\" nzSize=\"small\" (click)=\"modalVisible.set(true)\"\n style=\"margin: 2px;\">\n <nz-icon nzType=\"setting\" nzTheme=\"outline\" />\n</a>\n<nz-modal [(nzVisible)]=\"modalVisible\" nzTitle=\"表头设置\" nzDraggable [nzOkText]=\"null\" nzCancelText=\"关闭\"\n (nzOnCancel)=\"modalVisible.set(false)\">\n <ng-container *nzModalContent>\n <div nz-row [nzGutter]=\"24\">\n <div nz-col class=\"gutter-row\" [nzSpan]=\"12\">\n <div class=\"container\">\n <p>展示字段<a nz-button nzType=\"link\" (click)=\"resetDefault()\">恢复默认</a></p>\n <div cdkDropList #todoList=\"cdkDropList\" [cdkDropListData]=\"fix()\"\n [cdkDropListConnectedTo]=\"[doneList]\" class=\"list\" (cdkDropListDropped)=\"drop($event)\">\n @for (item of fix(); track item.field(); let i = $index) {\n <div class=\"box\" cdkDrag>\n {{ item.title() }}\n <nz-icon nzType=\"minus-circle\" nzTheme=\"outline\" (click)=\"deleteCustom(i)\" />\n </div>\n }\n </div>\n </div>\n </div>\n <div nz-col class=\"gutter-row\" [nzSpan]=\"12\">\n <div class=\"container\">\n <p>隐藏字段</p>\n <div cdkDropList #doneList=\"cdkDropList\" [cdkDropListData]=\"notFix()\"\n [cdkDropListConnectedTo]=\"[todoList]\" class=\"list\" (cdkDropListDropped)=\"drop($event)\">\n @for (item of notFix(); track item.field(); let i = $index) {\n <div class=\"box\" cdkDrag>\n {{ item.title() }}\n <nz-icon nzType=\"plus-circle\" nzTheme=\"outline\" (click)=\"addCustom(i)\" />\n </div>\n }\n </div>\n </div>\n </div>\n </div>\n </ng-container>\n</nz-modal>","import { ChangeDetectionStrategy, Component, computed, effect, Inject, Optional, signal, SkipSelf, ViewChild, WritableSignal } from '@angular/core';\nimport { TableFieldOptions, TableOptions } from './table.options';\nimport { Base, copy, DynamicDirective, EventHandlerOptions, ScopeDirective } from 'ngx-axis-appforge/core';\nimport { NzTableModule } from 'ng-zorro-antd/table';\nimport { FormsModule } from '@angular/forms';\nimport { TableSetter } from './table-setter/table-setter';\nimport { NzResizableModule } from 'ng-zorro-antd/resizable';\nimport { NzFlexModule } from 'ng-zorro-antd/flex';\nimport { DatePipe, DecimalPipe, PercentPipe } from '@angular/common';\nimport { TableFieldDisplayService, TableService, SelectService, ExpandService, StatisticService, AXIS_TABLE_SELECT_TOKEN } from 'ngx-axis-appforge/axis-components/table-helper'\nimport { debounceTime, filter, map, Observable, of, Subject, take, tap } from 'rxjs';\nimport { utils, WorkSheet } from 'xlsx-js-style';\n\n\n@Component({\n selector: 'axis-table',\n imports: [NzTableModule, ScopeDirective, DynamicDirective, FormsModule, TableSetter, NzResizableModule, NzFlexModule],\n templateUrl: './table.html',\n styleUrl: './table.css',\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [DatePipe, DecimalPipe, PercentPipe, TableFieldDisplayService, TableService, SelectService, ExpandService, StatisticService,\n {\n provide: AXIS_TABLE_SELECT_TOKEN,\n useExisting: SelectService,\n },\n ]\n})\nexport class Table extends Base<TableOptions> {\n\n constructor(public tableFieldDisplayService: TableFieldDisplayService, public tableSvc: TableService<TableOptions, TableFieldOptions>, select: SelectService, public expand: ExpandService, public statistic: StatisticService, @SkipSelf() @Optional() @Inject(AXIS_TABLE_SELECT_TOKEN) parentSelect?: SelectService) {\n super();\n effect(() => {\n this.tableSvc.init({ data: this.options.data, options: this.options, fields: this.fields });\n if (this.options.showCheckbox() && !this.options.singleCheck() && this.options.checkboxLinkageForExpand() && parentSelect && this.getScope()) {\n const key = this.getScope()?.snapshot(\"row\")[parentSelect.keyField];\n this.select = parentSelect!.findSubSelect(key) ?? select;\n } else {\n this.select = select;\n }\n this.select.init({ options: this.options, keyField: this.options.keyField(), data: this.options.data, onSelectedChange: () => this.onSelectedChange(), parent: parentSelect, scope: this.getScope(), registToParent: true })\n this.expand.init({ options: this.options, keyField: this.options.keyField(), data: this.options.data });\n this.statistic.init({ options: this.options, data: this.options.data, fields: this.fields, tableSvc: this.tableSvc });\n });\n effect(() => {\n let i = 0;\n const loopFieldDataMap = new Map<TableFieldOptions, any>();\n this.options.fields().forEach((f) => {\n if (f.loop) {\n for (const item of this.loopFieldMap().get(f.field)!()) {\n loopFieldDataMap.set(this.oriFields()[i], item);\n if (f.fieldFunForLoop) {\n f = copy(f);\n f.field = this.getScope()?.runFnWithSnapshot(f.fieldFunForLoop, { loopRow: item });\n }\n this.bindWithConfig(f, { options: this.oriFields()[i], tag: `bindField.${i}`, tempDataSource: { loopRow: item } });\n i++;\n }\n } else {\n this.bindWithConfig(f, { options: this.oriFields()[i], tag: `bindField.${i}` });\n i++;\n }\n });\n this.loopFieldDataMap.set(loopFieldDataMap);\n });\n effect(() => {\n clearInterval(this.timer);\n this.refreshScoll();\n if (this.options.heightExpanded()) {\n this.timer = setInterval(() => {\n this.refreshScoll();\n }, 500);\n }\n });\n effect(() => {\n if (this.tableSvc.useBackEndPaging()) {\n this.addSubscribe(this.backendPageParamsChange.pipe(tap(() => this.options.data.set(null)), debounceTime(50)).subscribe(_ => {\n this.triggeEvents(\"backendPageParamsChange\", { pageParams: Object.assign(this.tableSvc.backEndPageParams, this.statistic.backEndPageParams) }).subscribe();\n }));\n this.backendPageParamsChange.next();\n }\n });\n effect(() => {\n this.options.fields().filter(item => item.loop)\n .forEach(item => {\n const s = this.loopFieldMap().get(item.field)!;\n const io = this.getScope()?.dynamicField(item, \"loopTarget\", false);\n if (io?.init !== undefined) {\n s.set(io.init);\n }\n if (io?.obs) {\n this.addSubscribe(io.obs.pipe(filter(v => v !== undefined))\n .subscribe(s.set), `bindFieldLoop.${item.field}`);\n }\n });\n });\n }\n\n override options: TableOptions = new TableOptions();\n\n public select!: SelectService;\n readonly scroll = signal<{ x: string, y: string }>({ x: \"\", y: \"\" });\n readonly oriFields = computed(() => this.buildOriFields());\n readonly fields = computed(() => this.buildFields());\n readonly rowActions = computed(() => this.actionsFieldWidth() > 0 ? this.options.rowActions() : []);\n readonly actionsFieldWidth = computed(() => this.buildActionsFieldWidth());\n readonly fixFields = signal<TableFieldOptions[]>([]);\n readonly backendPageParamsChange = new Subject<void>();\n readonly customExportDataSubject = new Subject<any[]>();\n timer?: number;\n\n readonly loopFieldMap = computed(() => {\n const loopFieldMap = new Map<string, WritableSignal<any[]>>();\n this.options.fields().filter(item => item.loop)\n .forEach(item => {\n loopFieldMap.set(item.field, signal([]));\n });\n return loopFieldMap;\n });\n readonly loopFieldDataMap = signal<Map<TableFieldOptions, any>>(new Map());\n\n override callFunction<T>(name: String, args?: any): T | undefined {\n switch (name) {\n case \"exportExcel\":\n return this.exportExcel() as T;\n default:\n return undefined;\n }\n }\n\n resizeHandleOffsetX(field: TableFieldOptions): number {\n if (field.sortAble() && field.filterAble()) {\n return 42;\n } else if (field.sortAble()) {\n return 22;\n } else if (field.filterAble()) {\n return 28;\n }\n return 0;\n }\n\n @ViewChild(TableSetter)\n tableSetter?: TableSetter;\n\n trackByKeyField = (i: number, data: any): any => {\n return data[this.options.keyField()];\n }\n\n private buildOriFields(): TableFieldOptions[] {\n const fields: TableFieldOptions[] = [];\n this.options.fields().forEach(f => {\n if (f.loop) {\n for (const _ of this.loopFieldMap().get(f.field)!()) {\n fields.push(new TableFieldOptions());\n }\n } else {\n fields.push(new TableFieldOptions());\n }\n });\n return fields;\n }\n\n private buildFields(): TableFieldOptions[] {\n return this.options.showTableTitleSet() ? this.fixFields() : this.oriFields();\n }\n\n private buildActionsFieldWidth(): number {\n if (this.options.actionsFieldWidth() == 0 || this.options.rowActions().length == 0) {\n return 0;\n }\n return this.options.actionsFieldWidth() ?? this.options.rowActions().length * 45 + 16;\n }\n\n private refreshScoll() {\n let x = this.options.width() ?? 0;\n if (this.options.width() == undefined) {\n if (this.options.showCheckbox()) {\n x += this.tableSvc.leaderFieldWidth();\n }\n if (this.options.showExpand()) {\n x += this.tableSvc.leaderFieldWidth();\n }\n if (this.options.showOrder()) {\n x += this.tableSvc.leaderFieldWidth();\n }\n this.tableSvc.displayFields().forEach(f => {\n if (f.width()) {\n x += f.width()!;\n } else {\n x += 120;\n }\n });\n x += this.actionsFieldWidth();\n }\n let y = \"\";\n if (this.options.heightExpanded()) {\n const element = this.elementRef.nativeElement as HTMLElement;\n const table = element.querySelector(\"nz-table\");\n const head = element.querySelector(\"table[nz-table-content]>thead.ant-table-thead\");\n const headRect = head?.getBoundingClientRect();\n const innerTableRect = head?.parentElement?.parentElement?.parentElement?.getBoundingClientRect();\n const outterTableRect = table?.getBoundingClientRect();\n let tableBody;\n if (head?.parentElement?.parentElement?.nextElementSibling?.classList.contains(\"ant-table-body\")) {\n tableBody = head?.parentElement?.parentElement?.nextElementSibling?.firstElementChild;\n } else if (head?.nextElementSibling?.classList.contains(\"ant-table-tbody\")) {\n tableBody = head?.nextElementSibling;\n } else if (head?.nextElementSibling?.nextElementSibling?.classList.contains(\"ant-table-tbody\")) {\n tableBody = head?.nextElementSibling?.nextElementSibling;\n }\n if (headRect && tableBody) {\n // scroolY = 视口高度(window.innerHeight) - 表头底部位置(headRect.bottom) - 表尾部高度(outterTableRect.bottom - innerTableRect.bottom)\n let scroolY = window.innerHeight - (headRect?.bottom ?? 0) - (outterTableRect?.bottom ?? 0) + (innerTableRect?.bottom ?? 0);\n if (scroolY < tableBody.clientHeight) {\n y = `${scroolY}px`;\n }\n }\n }\n this.scroll.set({ x: x + \"px\", y: y });\n }\n\n onPageIndexChange() {\n this.backendPageParamsChange.next();\n }\n\n onPageSizeChange() {\n this.tableSvc.clearCursorMarks();\n this.backendPageParamsChange.next();\n }\n\n sortChange() {\n this.backendPageParamsChange.next();\n this.tableSvc.sortChange();\n }\n\n onSelectedChange() {\n if (this.hasEventHandler(\"onSelectedChange\")) {\n this.triggeEvents(\"onSelectedChange\", { selectedRows: this.select.getSelectedData() }).subscribe();\n }\n }\n\n rowClick(row: any) {\n if (this.options.showCheckbox() && this.options.checkeOnRowClick()) {\n this.select.toggleChecked(row);\n }\n }\n\n exportExcel(): Observable<WorkSheet> {\n const fields = this.fields().filter(f => f.export());\n const fieldMap = new Map<String, TableFieldOptions>();\n for (const f of fields) {\n fieldMap.set(f.field(), f);\n }\n let dataObs: Observable<any[]>;\n if (this.options.customExportData()) {\n dataObs = this.customExportDataSubject.pipe(take(1));\n this.triggeEvents(\"loadCustomExportData\").subscribe();\n } else if (this.options.useBackEndPaging()) {\n dataObs = of(copy(this.options.data().rows, true) as any[]);\n } else {\n dataObs = of(copy(this.tableSvc.tableData(), true) as any[]);\n }\n return dataObs.pipe(map(data => {\n const insertDatas: { index: number, row: any }[] = [];\n for (let i = 0; i < data.length; i++) {\n const row = data[i];\n if (this.tableSvc.isGroupEnd(i, row)) {\n const insertRow: any = this.statistic.statisticGroupMap()[this.tableSvc.getGroupValue(row)];\n const groupField = this.tableSvc.groupAbleFields()[0]!;\n if (groupField.field() == fields[0].field()) {\n insertRow[groupField.field()] = `${row[groupField.field()]}(${this.options.statisticTitle()})`;\n } else {\n insertRow[fields[0].field()] = this.options.statisticTitle();\n insertRow[groupField.field()] = row[groupField.field()];\n }\n insertDatas.unshift({ index: i + 1, row: insertRow });\n }\n for (const field of fields) {\n let loopRow;\n if (this.loopFieldDataMap().has(field)) {\n loopRow = this.loopFieldDataMap().get(field);\n }\n if (field.exportFlowChild()) {\n row[field.field()] = this.tableFieldDisplayService.getFieldDisplayText(field, row, loopRow);\n } else if (field.exportFn()) {\n row[field.field()] = this.getScope()?.runFnWithSnapshot(field.exportFn(), { row, loopRow });\n }\n }\n for (const f of Object.keys(row)) {\n if (!fieldMap.has(f)) {\n delete row[f];\n }\n }\n }\n for (const r of insertDatas) {\n data.splice(r.index, 0, r.row);\n }\n const headerRow: any = {};\n for (const field of fields) {\n headerRow[field.field()] = field.title();\n }\n data.unshift(headerRow);\n if (this.options.showStatistic()) {\n const statisticRow: any = { ...this.statistic.statisticMap() };\n if (fields.length && !fields[0].statisticAble()) {\n statisticRow[fields[0].field()] = this.options.statisticTitle();\n }\n data.push(statisticRow);\n }\n const ws = utils.json_to_sheet(data, { header: fields.map(f => f.field()), skipHeader: true });\n const merges: any[] = [];\n for (const [field, group] of this.tableSvc.rowsGroupMap()) {\n const c = fields.findIndex(f => f.field() == field);\n for (const indexs of group.values()) {\n let offset = 0;\n for (let i = insertDatas.length - 1; i >= 0; i--) {\n if (indexs[indexs.length - 1] < insertDatas[i].index) {\n break;\n }\n offset++;\n }\n merges.push({ s: { c, r: indexs[0] + 1 + offset }, e: { c, r: indexs[indexs.length - 1] + 1 + offset } });\n }\n }\n ws['!merges'] = merges;\n return ws;\n }));\n }\n\n override onEvents(e: EventHandlerOptions<any>): Observable<boolean> | undefined {\n const obs = super.onEvents?.(e);\n if (obs) {\n return;\n }\n switch (e.name) {\n case \"setCustomExportData\":\n this.customExportDataSubject.next(e.data.data);\n return of(true);\n }\n return undefined;\n }\n\n override ngOnDestroy(): void {\n super.ngOnDestroy();\n this.select.close();\n clearInterval(this.timer);\n }\n}\n","@if (options.showTableTitleSet()) {\n<axis-table-setter [fields]=\"oriFields()\" [cacheKey]=\"options.tableSetCacheKey()\"\n (onChange)=\"fixFields.set($event)\"></axis-table-setter>\n}\n<nz-table #table [nzSize]=\"options.size()\" [nzData]=\"tableSvc.rows()??[]\" [nzLoading]=\"!options.data()\"\n [nzBordered]=\"options.bordered()\" [nzOuterBordered]=\"options.outerBordered()\"\n [nzShowPagination]=\"options.showPagination()\"\n [nzFrontPagination]=\"options.showPagination() && !options.useBackEndPaging()\" [nzTotal]=\"tableSvc.rowtotal()\"\n [(nzPageSize)]=\"options.pageSize\" [nzShowSizeChanger]=\"options.showSizeChanger()\"\n [nzPageSizeOptions]=\"tableSvc.pageSizeOptions()\" [nzShowTotal]=\"options.showDataSize()?totalRange:null\"\n [nzScroll]=\"scroll()\" (nzPageIndexChange)=\"onPageIndexChange()\" (nzPageSizeChange)=\"onPageSizeChange()\"\n [(nzPageIndex)]=\"tableSvc.pageIndex\" [nzVirtualItemSize]=\"options.virtualItemSize()\"\n [nzVirtualForTrackBy]=\"trackByKeyField\">\n <thead>\n <tr>\n @if (options.showCheckbox()) {\n @if (!options.checkboxLinkageForExpand() && !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 @if (options.showExpand()) {\n <th nzLeft nzAlign=\"center\" [nzWidth]=\"tableSvc.leaderFieldWidth()-15+'px'\"></th>\n }\n @if (options.showOrder()) {\n <th nzAlign=\"center\" [nzWidth]=\"tableSvc.leaderFieldWidth()+'px'\">序号</th>\n }\n @for (f of tableSvc.displayFields(); track f.field();let i=$index) {\n <th [attr.data-field]=\"f.field()\" nz-resizable nzBounds=\"window\"\n [nzDisabled]=\"!options.showTableTitleSet() || !f.width()\"\n [nzWidth]=\"f.width() == null ?null:f.width()+'px'\" (nzResize)=\"tableSetter?.onResize(f,$event)\"\n [nzShowSort]=\"tableSvc.fieldSortAble(f)\" [nzSortDirections]=\"tableSvc.fieldSortDirections(f)\"\n [nzSortFn]=\"tableSvc.fieldsControlsMap()[f.field()]?.sortFn\" [(nzSortOrder)]=\"f.sortOrder\"\n [nzSortPriority]=\"tableSvc.fieldSortPriority(f)\"\n [nzShowFilter]=\"f.filterAble() && !options.useBackEndPaging()\" (nzSortOrderChange)=\"sortChange()\"\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 <span>\n {{f.title()}}\n @if(options.showTableTitleSet()){\n <nz-resize-handle [style.transform]=\"`translateX(${resizeHandleOffsetX(f)}px)`\" nzDirection=\"right\"\n (click)=\"$event.stopPropagation()\">\n <div class=\"resize-trigger\"></div>\n </nz-resize-handle>\n }\n </span>\n </th>\n }\n @if (rowActions().length)\n {\n <th nzRight nzAlign=\"center\" [nzWidth]=\"actionsFieldWidth()+'px'\" data-rowactions>操作</th>\n }\n </tr>\n </thead>\n <tbody>\n @if (!options.showPagination() && options.virtualScroll()) {\n <ng-template nz-virtual-scroll let-data let-i=\"index\">\n </ng-template>\n }@else {\n @for (trow of table.data; track options.keyField()?trow[options.keyField()]:trow;let i=$index) {\n @for (data of expand.getListForExpanded(trow); track options.keyField()?data[options.keyField()]:data) {\n <tr (click)=\"rowClick(data)\" [axisScope]=\"options.id+'.row'\" scopeName=\"表格行\"\n [dataSources]=\"[{name:'row',type:'local',data:data}]\"\n [class.checkedRow]=\"select.setOfCheckedId().has(data[options.keyField()])\">\n @if (options.showCheckbox()) {\n <td nzLeft [nzChecked]=\"select.setOfCheckedId().has(data[options.keyField()])\"\n [nzIndeterminate]=\"select.setOfIndeterminateId().has(data[options.keyField()])\"\n [nzDisabled]=\"select.setOfDisabledId().has(data[options.keyField()])\"\n (nzCheckedChange)=\"select.onItemChecked(data, $event)\" nzAlign=\"center\"></td>\n }\n @if (options.showExpand()) {\n @if(options.expandMode() == \"tree\" && !expand.nodeMap().get(data[options.keyField()])?.children?.length){\n <td nzLeft></td>\n }@else{\n <td nzLeft [nzExpand]=\"expand.expandedSet.has(data[options.keyField()])\"\n (nzExpandChange)=\"expand.onExpandChange(data[options.keyField()],$event)\"></td>\n }\n }\n @if (options.showOrder()) {\n <td nzAlign=\"center\">{{(table.nzPageIndex-1) * table.nzPageSize + i+1}}</td>\n }\n @for (f of tableSvc.displayFields(); track f.field()) {\n <td [attr.rowspan]=\"tableSvc.rowspan(f,i,table.nzPageIndex,table.nzPageSize,data)\"\n [nzLeft]=\"f.freezeMode()=='left'\" [attr.data-field]=\"f.field()\" [nzRight]=\"f.freezeMode()=='right'\"\n [nzAlign]=\"f.align()\">\n @if (f.child()) {\n @if(loopFieldDataMap().has(f)){\n <ng-container [axisScope]=\"options.id+'.fields.'+f.field()+'.row.loop'\" scopeName=\"列循环\"\n [dataSources]=\"[{name:'loopRow',type:'local',data:loopFieldDataMap().get(f)}]\">\n <ng-container [axisDynamic]=\"f.child()\"></ng-container>\n </ng-container>\n }@else{\n <ng-container [axisDynamic]=\"f.child()\"></ng-container>\n }\n }@else {\n {{data[f.field()]}}\n }\n </td>\n }\n @if (rowActions().length) {\n <td nzRight>\n <div nz-flex nzJustify=\"space-evenly\" data-rowactions>\n @for (a of rowActions(); track a.id) {\n <ng-container [axisDynamic]=\"a\"></ng-container>\n }\n </div>\n </td>\n }\n </tr>\n @if (options.showStatistic() && tableSvc.isGroupEnd(i+(table.nzPageIndex-1)*table.nzPageSize,data)) {\n <tr [axisScope]=\"options.id+'.row'\" scopeName=\"表格行\"\n [dataSources]=\"[{name:'row',type:'local',data:statistic.statisticGroupMap()[tableSvc.getGroupValue(data)]}]\">\n @if (options.showCheckbox()) {\n <td nzLeft></td>\n }\n @if (options.showExpand()) {\n <td nzLeft></td>\n }\n @if(options.showOrder()){\n <td nzAlign=\"right\">\n {{options.statisticTitle()}}\n </td>\n }\n @for (f of tableSvc.displayFields(); track f.field();let i=$index) {\n <td [nzLeft]=\"f.freezeMode()=='left'\" [nzRight]=\"f.freezeMode()=='right'\" [nzAlign]=\"f.align()\">\n @if (f.statisticAble()) {\n @if (f.child()) {\n <ng-container [axisDynamic]=\"f.child()\"></ng-container>\n }@else {\n {{statistic.statisticGroupMap()[tableSvc.getGroupValue(data)]?.[f.field()]}}\n }\n }@else if(i==0 && !options.showOrder()){\n @if(tableSvc.groupAbleFields()[0] == f){\n {{data[f.field()]}}({{options.statisticTitle()}})\n }@else{\n {{options.statisticTitle()}}\n }\n }@else if (f.groupAble() && f == tableSvc.groupAbleFields()[0]) {\n {{data[f.field()]}}\n }\n </td>\n }\n @if (rowActions().length) {\n <td nzRight></td>\n }\n </tr>\n }\n }\n @if (options.showExpand() && options.expandMode() == \"custom\") {\n <tr [axisScope]=\"options.id+'.row'\" scopeName=\"表格行\" [dataSources]=\"[{name:'row',type:'local',data:trow}]\"\n [nzExpand]=\"expand.expandedSet.has(trow[options.keyField()])\" data-expandrow>\n <ng-container [axisDynamic]=\"options.expandRow()\"></ng-container>\n </tr>\n }\n }\n }\n </tbody>\n @if (options.showStatistic()) {\n <tfoot nzSummary>\n <tr [axisScope]=\"options.id+'.row'\" scopeName=\"表格行\"\n [dataSources]=\"[{name:'row',type:'local',data:statistic.statisticMap()}]\">\n @if (options.showCheckbox()) {\n <td nzLeft></td>\n }\n @if (options.showExpand()) {\n <td nzLeft></td>\n }\n @if(options.showOrder()){\n <td nzAlign=\"right\">\n <b>{{options.statisticTitle()}}</b>\n </td>\n }\n @for (f of tableSvc.displayFields(); track f.field();let i=$index) {\n <td [nzLeft]=\"f.freezeMode()=='left'\" [nzRight]=\"f.freezeMode()=='right'\" [nzAlign]=\"f.align()\">\n <b>\n @if (f.statisticAble()) {\n @if (f.child()) {\n <ng-container [axisDynamic]=\"f.child()\"></ng-container>\n }@else {\n {{statistic.statisticMap()[f.field()]}}\n }\n }@else if(i==0 && !options.showOrder()){\n {{options.statisticTitle()}}\n }\n </b>\n </td>\n }\n @if (rowActions().length) {\n <td nzRight></td>\n }\n </tr>\n </tfoot>\n }\n <ng-template #totalRange let-range=\"range\" let-total>\n 共{{ total }}条数据,第{{ range[0] }}-{{ range[1] }}条\n </ng-template>\n</nz-table>","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './table';\n"],"names":["i4"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ngx-axis-appforge",
3
- "version": "0.0.82",
3
+ "version": "0.0.83",
4
4
  "author": "ZengCheng <zengc694623467@gmail.com>",
5
5
  "license": "MIT",
6
6
  "dependencies": {