ngx-axis-appforge 0.0.50 → 0.0.51

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"file":"ngx-axis-appforge-axis-components-table-design.mjs","sources":["../../../axis-components/table/design/table-field-setting/table-field-setting.ts","../../../axis-components/table/design/table-field-setting/table-field-setting.html","../../../axis-components/table/design/table-fields-menu/table-fields-menu.ts","../../../axis-components/table/design/table-fields-menu/table-fields-menu.html","../../../axis-components/table/design/table-setting/table-setting.ts","../../../axis-components/table/design/table-setting/table-setting.html","../../../axis-components/table/design/config.ts","../../../axis-components/table/design/ngx-axis-appforge-axis-components-table-design.ts"],"sourcesContent":["import { ChangeDetectionStrategy, Component, computed, inject } from '@angular/core';\nimport { FormsModule, ReactiveFormsModule, UntypedFormGroup } from '@angular/forms';\nimport { NzAutocompleteModule } from 'ng-zorro-antd/auto-complete';\nimport { NzCollapseModule } from 'ng-zorro-antd/collapse';\nimport { NzFormModule } from 'ng-zorro-antd/form';\nimport { NzInputModule } from 'ng-zorro-antd/input';\nimport { NzInputNumberModule } from 'ng-zorro-antd/input-number';\nimport { NzRadioModule } from 'ng-zorro-antd/radio';\nimport { NzSelectModule } from 'ng-zorro-antd/select';\nimport { NzSwitchModule } from 'ng-zorro-antd/switch';\nimport { FormValidators, FunFieldValueBase, FunFieldOptions, FunField, AXIS_DESIGN_COMPONENT_REF_FOR_SETTING_TOKEN, ScopeInfo } from 'ngx-axis-appforge/core';\n\n@Component({\n selector: 'axis-design-table-field-setting',\n imports: [FormsModule, NzFormModule, ReactiveFormsModule, NzCollapseModule, NzInputModule, FunField, NzRadioModule, NzSelectModule, NzInputNumberModule, NzSwitchModule, NzAutocompleteModule],\n templateUrl: './table-field-setting.html',\n styleUrl: './table-field-setting.css',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class TableFieldSetting extends FunFieldValueBase {\n\n override fg: UntypedFormGroup = this.fb.group({\n inuse: [undefined, FormValidators.requiredFun],\n field: [\"unknown\", FormValidators.required],\n title: [undefined, FormValidators.requiredFun],\n export: [undefined, FormValidators.requiredFun],\n exportFlowChild: [undefined, FormValidators.requiredFun],\n exportFn: [],\n import: [undefined, FormValidators.requiredFun],\n importRequired: [undefined, FormValidators.requiredFun],\n importCellType: [undefined, FormValidators.requiredFun],\n importHelp: [],\n sortAble: [undefined, FormValidators.requiredFun],\n sortOrder: [],\n sortPriority: [],\n filterAble: [undefined, FormValidators.requiredFun],\n filterMultiple: [undefined, FormValidators.requiredFun],\n width: [],\n align: [undefined, FormValidators.requiredFun],\n freezeMode: [undefined, FormValidators.requiredFun],\n groupLevel: [],\n statisticAble: [false, FormValidators.required],\n statisticType: [\"sum\", FormValidators.required],\n statisticFn: [],\n titleGroup: [],\n });\n\n protected override funFields: FunFieldOptions = {\n inuse: {\n defaultValue: true\n },\n title: {\n defaultValue: \"未命名\"\n },\n export: {\n defaultValue: false\n },\n exportFlowChild: {\n defaultValue: true\n },\n import: {\n defaultValue: false\n },\n importRequired: {\n defaultValue: false\n },\n importCellType: {\n defaultValue: \"text\"\n },\n importHelp: {\n defaultValue: undefined\n },\n sortAble: {\n defaultValue: false\n },\n sortOrder: {\n defaultValue: null\n },\n sortPriority: {\n defaultValue: null\n },\n filterAble: {\n defaultValue: false\n },\n filterMultiple: {\n defaultValue: false\n },\n width: {\n defaultValue: null\n },\n align: {\n defaultValue: \"left\"\n },\n freezeMode: {\n defaultValue: \"none\"\n },\n titleGroup: {\n defaultValue: undefined\n },\n groupLevel: {\n defaultValue: null\n },\n };\n\n readonly elementRef = inject(AXIS_DESIGN_COMPONENT_REF_FOR_SETTING_TOKEN);\n\n statisticFnScopes = computed<ScopeInfo[]>(() => {\n const data = (this.elementRef.ref?.instance.options as any)?.data();\n return [{\n scopeId: this.elementRef.options.id + '.statistic.' + this.formValue().field,\n scopeName: \"统计\",\n ds: {\n result: null,\n index: 0,\n row: data?.[0] ?? {},\n value: data?.[0]?.[this.formValue().field] ?? null\n }\n }];\n });\n\n fields = computed(() => {\n const data = (this.elementRef.ref?.instance.options as any)?.data();\n return Object.keys(data?.[0] ?? {});\n });\n\n}\n","<form [formGroup]=\"fg\" nz-form>\n <nz-collapse [nzBordered]=\"false\">\n <nz-collapse-panel nzHeader=\"基本设置\" nzActive>\n <nz-form-item>\n <nz-form-label nzSpan=\"10\" nzRequired>\n 字段名\n </nz-form-label>\n <nz-form-control nzSpan=\"14\">\n <input nz-input formControlName=\"field\" [nzAutocomplete]=\"fieldAuto\" />\n </nz-form-control>\n </nz-form-item>\n <nz-autocomplete #fieldAuto nzBackfill>\n @for (f of fields(); track f) {\n <nz-auto-option [nzLabel]=\"f\" [nzValue]=\"f\">\n {{f}}\n </nz-auto-option>\n }\n </nz-autocomplete>\n <nz-form-item>\n <nz-form-label nzSpan=\"10\" nzRequired>\n 字段标题\n </nz-form-label>\n <nz-form-control nzSpan=\"14\">\n <axis-fun-field formControlName=\"title\">\n <input nz-input ngModel [ngModelOptions]=\"{standalone:true}\" />\n </axis-fun-field>\n </nz-form-control>\n </nz-form-item>\n <nz-form-item>\n <nz-form-label nzSpan=\"10\" nzRequired>\n 是否可用\n </nz-form-label>\n <nz-form-control nzSpan=\"14\">\n <axis-fun-field formControlName=\"inuse\">\n <nz-switch ngModel [ngModelOptions]=\"{standalone:true}\"></nz-switch>\n </axis-fun-field>\n </nz-form-control>\n </nz-form-item>\n </nz-collapse-panel>\n <nz-collapse-panel nzHeader=\"外观设置\">\n <nz-form-item>\n <nz-form-label nzSpan=\"10\">\n 宽度\n </nz-form-label>\n <nz-form-control nzSpan=\"14\">\n <axis-fun-field formControlName=\"width\">\n <nz-input-number ngModel [ngModelOptions]=\"{standalone:true}\" style=\"width: 100%;\" [nzMin]=\"0\">\n <span nzInputAddonAfter>px</span>\n </nz-input-number>\n </axis-fun-field>\n </nz-form-control>\n </nz-form-item>\n <nz-form-item>\n <nz-form-label nzSpan=\"10\" nzRequired>\n 对齐方式\n </nz-form-label>\n <nz-form-control nzSpan=\"14\">\n <axis-fun-field formControlName=\"align\">\n <nz-select ngModel [ngModelOptions]=\"{standalone:true}\">\n <nz-option nzValue=\"left\" nzLabel=\"左对齐\"></nz-option>\n <nz-option nzValue=\"center\" nzLabel=\"居中\"></nz-option>\n <nz-option nzValue=\"right\" nzLabel=\"右对齐\"></nz-option>\n </nz-select>\n </axis-fun-field>\n </nz-form-control>\n </nz-form-item>\n <nz-form-item>\n <nz-form-label nzSpan=\"10\" nzRequired>\n 固定方式\n </nz-form-label>\n <nz-form-control nzSpan=\"14\">\n <axis-fun-field formControlName=\"freezeMode\">\n <nz-select ngModel [ngModelOptions]=\"{standalone:true}\">\n <nz-option nzValue=\"none\" nzLabel=\"不固定\"></nz-option>\n <nz-option nzValue=\"left\" nzLabel=\"固定在左\"></nz-option>\n <nz-option nzValue=\"right\" nzLabel=\"固定在右\"></nz-option>\n </nz-select>\n </axis-fun-field>\n </nz-form-control>\n </nz-form-item>\n <nz-form-item>\n <nz-form-label nzSpan=\"10\" nzTooltipTitle=\"未实现\">\n 分组表头标题\n </nz-form-label>\n <nz-form-control nzSpan=\"14\">\n <axis-fun-field formControlName=\"titleGroup\">\n <input nz-input ngModel [ngModelOptions]=\"{standalone:true}\" />\n </axis-fun-field>\n </nz-form-control>\n </nz-form-item>\n <nz-form-item>\n <nz-form-label nzSpan=\"10\" nzTooltipTitle=\"未实现\">\n 分组级别\n </nz-form-label>\n <nz-form-control nzSpan=\"14\">\n <axis-fun-field formControlName=\"groupLevel\">\n <nz-input-number style=\"width: 100%;\" [nzMin]=\"1\" ngModel [ngModelOptions]=\"{standalone:true}\"\n [nzMin]=\"1\">\n </nz-input-number>\n </axis-fun-field>\n </nz-form-control>\n </nz-form-item>\n </nz-collapse-panel>\n <nz-collapse-panel nzHeader=\"排序过滤\">\n <nz-form-item>\n <nz-form-label nzSpan=\"10\" nzRequired>\n 是否排序\n </nz-form-label>\n <nz-form-control nzSpan=\"14\">\n <axis-fun-field formControlName=\"sortAble\">\n <nz-switch ngModel [ngModelOptions]=\"{standalone:true}\"></nz-switch>\n </axis-fun-field>\n </nz-form-control>\n </nz-form-item>\n @if (formValue().sortAble?.funMode || formValue()?.sortAble?.originValue) {\n <nz-form-item>\n <nz-form-label nzSpan=\"10\">\n 默认排序方式\n </nz-form-label>\n <nz-form-control nzSpan=\"14\">\n <axis-fun-field formControlName=\"sortOrder\">\n <nz-select ngModel [ngModelOptions]=\"{standalone:true}\" nzAllowClear>\n <nz-option nzValue=\"ascend\" nzLabel=\"升序\"></nz-option>\n <nz-option nzValue=\"descend\" nzLabel=\"降序\"></nz-option>\n </nz-select>\n </axis-fun-field>\n </nz-form-control>\n </nz-form-item>\n <nz-form-item>\n <nz-form-label nzSpan=\"10\">\n 排序优先级\n </nz-form-label>\n <nz-form-control nzSpan=\"14\">\n <axis-fun-field formControlName=\"sortPriority\">\n <nz-input-number style=\"width: 100%;\" ngModel\n [ngModelOptions]=\"{standalone:true}\"></nz-input-number>\n </axis-fun-field>\n </nz-form-control>\n </nz-form-item>\n }\n <nz-form-item>\n <nz-form-label nzSpan=\"10\" nzRequired>\n 是否过滤\n </nz-form-label>\n <nz-form-control nzSpan=\"14\">\n <axis-fun-field formControlName=\"filterAble\">\n <nz-switch ngModel [ngModelOptions]=\"{standalone:true}\"></nz-switch>\n </axis-fun-field>\n </nz-form-control>\n </nz-form-item>\n @if (formValue().filterAble?.funMode || formValue()?.filterAble?.originValue) {\n <nz-form-item>\n <nz-form-label nzSpan=\"10\" nzRequired>\n 多个过滤条件\n </nz-form-label>\n <nz-form-control nzSpan=\"14\">\n <axis-fun-field formControlName=\"filterMultiple\">\n <nz-switch ngModel [ngModelOptions]=\"{standalone:true}\"></nz-switch>\n </axis-fun-field>\n </nz-form-control>\n </nz-form-item>\n }\n </nz-collapse-panel>\n <nz-collapse-panel nzHeader=\"统计设置\">\n <nz-form-item>\n <nz-form-label nzSpan=\"10\" nzRequired>\n 是否统计\n </nz-form-label>\n <nz-form-control nzSpan=\"14\">\n <nz-switch formControlName=\"statisticAble\"></nz-switch>\n </nz-form-control>\n </nz-form-item>\n @if (formValue().statisticAble) {\n <nz-form-item>\n <nz-form-label nzSpan=\"10\" nzRequired>\n 统计方式\n </nz-form-label>\n <nz-form-control nzSpan=\"14\">\n <nz-select formControlName=\"statisticType\">\n <nz-option nzValue=\"sum\" nzLabel=\"合计\"></nz-option>\n <nz-option nzValue=\"average\" nzLabel=\"平均\"></nz-option>\n <nz-option nzValue=\"max\" nzLabel=\"最大值\"></nz-option>\n <nz-option nzValue=\"min\" nzLabel=\"最小值\"></nz-option>\n <nz-option nzValue=\"custom\" nzLabel=\"自定义\"></nz-option>\n </nz-select>\n </nz-form-control>\n </nz-form-item>\n @if (formValue().statisticType == \"custom\") {\n <nz-form-item>\n <nz-form-label nzSpan=\"10\">\n 统计函数\n </nz-form-label>\n <nz-form-control nzSpan=\"14\">\n <axis-fun-field formControlName=\"statisticFn\" [scopes]=\"statisticFnScopes()\" [onlyFun]=\"true\"\n [noListen]=\"true\">\n </axis-fun-field>\n </nz-form-control>\n </nz-form-item>\n }\n }\n </nz-collapse-panel>\n <nz-collapse-panel nzHeader=\"导出导入(未实现)\">\n <nz-form-item>\n <nz-form-label nzSpan=\"10\" nzRequired>\n 是否导出\n </nz-form-label>\n <nz-form-control nzSpan=\"14\">\n <axis-fun-field formControlName=\"export\">\n <nz-switch ngModel [ngModelOptions]=\"{standalone:true}\"></nz-switch>\n </axis-fun-field>\n </nz-form-control>\n </nz-form-item>\n @if (formValue().export?.funMode || formValue()?.export?.originValue) {\n <nz-form-item>\n <nz-form-label nzSpan=\"10\" nzRequired>\n 导出内容跟随\n </nz-form-label>\n <nz-form-control nzSpan=\"14\">\n <axis-fun-field formControlName=\"exportFlowChild\">\n <nz-switch ngModel [ngModelOptions]=\"{standalone:true}\"></nz-switch>\n </axis-fun-field>\n </nz-form-control>\n </nz-form-item>\n @if (formValue().exportFlowChild?.funMode || !formValue()?.exportFlowChild?.originValue) {\n <nz-form-item>\n <nz-form-label nzSpan=\"10\">\n 导出函数\n </nz-form-label>\n <nz-form-control nzSpan=\"14\">\n <axis-fun-field formControlName=\"exportFn\" [onlyFun]=\"true\" [noListen]=\"true\">\n </axis-fun-field>\n </nz-form-control>\n </nz-form-item>\n }\n }\n <nz-form-item>\n <nz-form-label nzSpan=\"10\" nzRequired>\n 是否导入\n </nz-form-label>\n <nz-form-control nzSpan=\"14\">\n <axis-fun-field formControlName=\"import\">\n <nz-switch ngModel [ngModelOptions]=\"{standalone:true}\"></nz-switch>\n </axis-fun-field>\n </nz-form-control>\n </nz-form-item>\n @if (formValue().import?.funMode || formValue()?.import?.originValue) {\n <nz-form-item>\n <nz-form-label nzSpan=\"10\" nzRequired>\n 必填标志\n </nz-form-label>\n <nz-form-control nzSpan=\"14\">\n <axis-fun-field formControlName=\"importRequired\">\n <nz-switch ngModel [ngModelOptions]=\"{standalone:true}\"></nz-switch>\n </axis-fun-field>\n </nz-form-control>\n </nz-form-item>\n <nz-form-item>\n <nz-form-label nzSpan=\"10\" nzRequired>\n 单元格类型\n </nz-form-label>\n <nz-form-control nzSpan=\"14\">\n <axis-fun-field formControlName=\"importCellType\">\n <nz-select ngModel [ngModelOptions]=\"{standalone:true}\" [nzAllowClear]=\"false\">\n <nz-option nzValue=\"text\" nzLabel=\"文本\"></nz-option>\n <nz-option nzValue=\"number\" nzLabel=\"数字\"></nz-option>\n </nz-select>\n </axis-fun-field>\n </nz-form-control>\n </nz-form-item>\n <nz-form-item>\n <nz-form-label nzSpan=\"10\">\n 导入帮助\n </nz-form-label>\n <nz-form-control nzSpan=\"14\">\n <axis-fun-field formControlName=\"importHelp\">\n <textarea nz-input ngModel [ngModelOptions]=\"{standalone:true}\"></textarea>\n </axis-fun-field>\n </nz-form-control>\n </nz-form-item>\n }\n </nz-collapse-panel>\n </nz-collapse>\n</form>","import { ChangeDetectionStrategy, Component } from '@angular/core';\nimport { NzDividerModule } from 'ng-zorro-antd/divider';\nimport { NzDropDownModule } from 'ng-zorro-antd/dropdown';\nimport { NzIconModule } from 'ng-zorro-antd/icon';\nimport { BaseMenu } from 'ngx-axis-appforge/core';\n\n@Component({\n selector: 'axis-design-table-fields-menu',\n imports: [NzDropDownModule, NzDividerModule, NzIconModule],\n templateUrl: './table-fields-menu.html',\n styleUrl: './table-fields-menu.css',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class TableFieldsMenu extends BaseMenu {\n\n addField() {\n const field = `unnamed#${this.optionsNodes.current.options.length + 1}`;\n this.optionsNodes.current.options.push({\n field: field,\n title: \"未命名\",\n inuse: true,\n });\n this.onChange?.({ nextNodeId: `${this.optionsNodes.parent?.id}.${field}`, historyDesc: \"添加表格字段\" });\n }\n}\n","<nz-dropdown-menu #menu=\"nzDropdownMenu\">\n <ul nz-menu>\n <li nz-menu-item (click)=\"addField()\">\n <i nz-icon nzType=\"plus\" nzTheme=\"outline\"></i>\n <nz-divider nzType=\"vertical\"></nz-divider>\n <span>添加字段</span>\n </li>\n </ul>\n</nz-dropdown-menu>","import { ChangeDetectionStrategy, Component, computed, ViewChild } from '@angular/core';\nimport { FormsModule, ReactiveFormsModule, UntypedFormGroup } from '@angular/forms';\nimport { NzFormModule } from 'ng-zorro-antd/form';\nimport { NzGridModule } from 'ng-zorro-antd/grid';\nimport { NzCollapseModule } from 'ng-zorro-antd/collapse';\nimport { InputTrigger, FunFieldValueBase, FunField, BaseDesignSetting, baseFbConfig, baseFunField, FunFieldOptions, FormValidators, DynamicDirective, ScopeInfo, EventDesc } from 'ngx-axis-appforge/core';\nimport { NzInputNumberModule } from 'ng-zorro-antd/input-number';\nimport { NzInputModule } from 'ng-zorro-antd/input';\nimport { NzSwitchModule } from 'ng-zorro-antd/switch';\nimport { NzSelectModule } from 'ng-zorro-antd/select';\nimport { NzRadioModule } from 'ng-zorro-antd/radio';\n\n@Component({\n selector: 'axis-design-table-setting',\n imports: [NzFormModule, FormsModule, ReactiveFormsModule, FunField, NzGridModule, NzCollapseModule, BaseDesignSetting, InputTrigger, NzInputNumberModule, NzInputModule, NzSwitchModule, NzSelectModule, DynamicDirective, NzRadioModule],\n templateUrl: './table-setting.html',\n styleUrl: './table-setting.css',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class TableSetting extends FunFieldValueBase {\n\n override fg: UntypedFormGroup = this.fb.group({\n ...baseFbConfig,\n keyField: [],\n showExpand: [undefined, FormValidators.requiredFun],\n expandMode: [\"custom\", FormValidators.required],\n treeChildrenFun: [],\n showTableTitleSet: [undefined, FormValidators.requiredFun],\n tableSetCacheKey: [],\n data: [],\n size: [undefined, FormValidators.requiredFun],\n showOrder: [undefined, FormValidators.requiredFun],\n heightExpanded: [undefined, FormValidators.requiredFun],\n showDataSize: [undefined, FormValidators.requiredFun],\n bordered: [undefined, FormValidators.requiredFun],\n outerBordered: [undefined, FormValidators.requiredFun],\n width: [],\n actionsFieldWidth: [],\n showCheckbox: [undefined, FormValidators.requiredFun],\n singleCheck: [undefined, FormValidators.requiredFun],\n checkboxLinkageForExpand: [false, FormValidators.required],\n disableCheckboxFn: [],\n showStatistic: [undefined, FormValidators.requiredFun],\n statisticTitle: [],\n showSubTotal: [undefined, FormValidators.requiredFun],\n subTotalTitle: [],\n subTotalGroupLevel: [undefined, FormValidators.requiredFun],\n showPagination: [true, FormValidators.required],\n virtualScroll: [false, FormValidators.required],\n virtualItemSize: [32, FormValidators.required],\n pageSize: [undefined, FormValidators.requiredFun],\n showSizeChanger: [undefined, FormValidators.requiredFun],\n pageSizeOptions: [\"10,20,50,100\", [FormValidators.required, FormValidators.pattern(/^\\d+(?:,\\d+)*$/)]],\n useBackEndPaging: [false, FormValidators.required],\n pageParamsDataSourceName: [\"pageParams\"],\n exportParamsDataSourceName: [\"exportParams\"],\n exportFileName: [],\n exportBookType: [undefined, FormValidators.requiredFun],\n importLimitLength: [],\n importStartLine: [undefined, FormValidators.requiredFun],\n importTemplateFileName: [],\n importExampleData: [],\n });\n\n protected override funFields: FunFieldOptions = {\n ...baseFunField,\n showExpand: {\n defaultValue: false\n },\n showTableTitleSet: {\n defaultValue: false\n },\n tableSetCacheKey: {\n defaultValue: undefined\n },\n data: {\n defaultValue: undefined,\n },\n size: {\n defaultValue: \"middle\"\n },\n showOrder: {\n defaultValue: true\n },\n heightExpanded: {\n defaultValue: false\n },\n showDataSize: {\n defaultValue: true\n },\n bordered: {\n defaultValue: false\n },\n outerBordered: {\n defaultValue: false\n },\n width: {\n defaultValue: null\n },\n actionsFieldWidth: {\n defaultValue: null\n },\n showCheckbox: {\n defaultValue: false\n },\n singleCheck: {\n defaultValue: false\n },\n showStatistic: {\n defaultValue: false\n },\n statisticTitle: {\n defaultValue: \"合计\"\n },\n showSubTotal: {\n defaultValue: false\n },\n subTotalTitle: {\n defaultValue: undefined\n },\n subTotalGroupLevel: {\n defaultValue: 1\n },\n pageSize: {\n defaultValue: 10\n },\n showSizeChanger: {\n defaultValue: true\n },\n exportFileName: {\n defaultValue: \"数据导出\"\n },\n exportBookType: {\n defaultValue: \"xlsx\"\n },\n importLimitLength: {\n defaultValue: null\n },\n importStartLine: {\n defaultValue: 2\n },\n importTemplateFileName: {\n defaultValue: \"数据导入模版\"\n },\n importExampleData: {\n defaultValue: []\n },\n };\n\n @ViewChild(\"dataFunField\", { static: true })\n dataFunField!: FunField;\n\n rowScopes = computed<ScopeInfo[]>(() => [{\n scopeId: this.formValue()?.id + '.row',\n scopeName: \"表格行\",\n ds: {\n row: this.dataFunField.computeResult()?.[0] ?? {}\n }\n }]);\n\n eventDesc = computed(() => {\n const res: EventDesc[] = [];\n if (this.formValue()?.showCheckbox?.originValue) {\n res.push({\n name: 'onSelectedChange',\n title: '行选择改变',\n ds: {\n selectedRows: \"示例数据\"\n }\n });\n }\n return res;\n });\n}\n","<form [formGroup]=\"fg\" nz-form>\n <nz-collapse [nzBordered]=\"false\">\n <nz-collapse-panel nzHeader=\"基本设置\" nzActive>\n <nz-form-item>\n <nz-form-label nzSpan=\"10\">\n 主键字段\n </nz-form-label>\n <nz-form-control nzSpan=\"14\">\n <input nz-input formControlName=\"keyField\" placeholder=\"数据的主键字段\" />\n </nz-form-control>\n </nz-form-item>\n <nz-form-item>\n <nz-form-label nzSpan=\"10\" nzRequired>\n 扩展行\n </nz-form-label>\n <nz-form-control nzSpan=\"14\">\n <axis-fun-field formControlName=\"showExpand\">\n <nz-switch ngModel [ngModelOptions]=\"{standalone:true}\"></nz-switch>\n </axis-fun-field>\n </nz-form-control>\n </nz-form-item>\n @if (formValue()?.showExpand.funMode || formValue()?.showExpand.originValue) {\n <nz-form-item>\n <nz-form-label nzSpan=\"10\" nzRequired>\n 扩展模式\n </nz-form-label>\n <nz-form-control nzSpan=\"14\">\n <nz-radio-group formControlName=\"expandMode\">\n <label nz-radio-button nzValue=\"custom\">自定义</label>\n <label nz-radio-button nzValue=\"tree\">树</label>\n </nz-radio-group>\n </nz-form-control>\n </nz-form-item>\n @if (formValue().expandMode == \"tree\") {\n <nz-form-item>\n <nz-form-label nzSpan=\"10\" nzTooltipTitle=\"默认取children字段,若不是请编写函数返回子节点\">\n 子节点函数\n </nz-form-label>\n <nz-form-control nzSpan=\"14\">\n <axis-fun-field formControlName=\"treeChildrenFun\" [onlyFun]=\"true\" [noListen]=\"true\"\n [scopes]=\"rowScopes()\">\n </axis-fun-field>\n </nz-form-control>\n </nz-form-item>\n }\n }\n <nz-form-item>\n <nz-form-label nzSpan=\"10\" nzRequired nzTooltipTitle=\"用户可以自定义列的显示、顺序和列宽(不支持动态宽度的列)\">\n 表头设置\n </nz-form-label>\n <nz-form-control nzSpan=\"14\">\n <axis-fun-field formControlName=\"showTableTitleSet\">\n <nz-switch ngModel [ngModelOptions]=\"{standalone:true}\"></nz-switch>\n </axis-fun-field>\n </nz-form-control>\n </nz-form-item>\n <nz-form-item>\n <nz-form-label nzSpan=\"10\" nzTooltipTitle=\"设置后才会缓存用户的表头设置\">\n 设置缓存Key\n </nz-form-label>\n <nz-form-control nzSpan=\"14\">\n <axis-fun-field formControlName=\"tableSetCacheKey\">\n <input nz-input placeholder=\"为空时不缓存\" ngModel [ngModelOptions]=\"{standalone:true}\" />\n </axis-fun-field>\n </nz-form-control>\n </nz-form-item>\n <nz-form-item>\n <nz-form-label nzSpan=\"10\" nzRequired>\n 表格数据\n </nz-form-label>\n <nz-form-control nzSpan=\"14\">\n <axis-fun-field formControlName=\"data\" #dataFunField>\n <ng-container [axisDynamic]=\"{component:'axis-components/input-json',inuse:true}\"\n [standalone]=\"true\" ngModel [ngModelOptions]=\"{standalone:true}\"></ng-container>\n </axis-fun-field>\n </nz-form-control>\n </nz-form-item>\n </nz-collapse-panel>\n <nz-collapse-panel nzHeader=\"外观设置\">\n <nz-form-item>\n <nz-form-label nzSpan=\"10\" nzRequired>\n 表格大小\n </nz-form-label>\n <nz-form-control nzSpan=\"14\">\n <axis-fun-field formControlName=\"size\">\n <nz-radio-group ngModel [ngModelOptions]=\"{standalone:true}\" nzSize=\"small\">\n <label nz-radio-button nzValue=\"small\">小</label>\n <label nz-radio-button nzValue=\"middle\">中</label>\n <label nz-radio-button nzValue=\"default\">大</label>\n </nz-radio-group>\n </axis-fun-field>\n </nz-form-control>\n </nz-form-item>\n <nz-form-item>\n <nz-form-label nzSpan=\"10\" nzRequired>\n 显示序号\n </nz-form-label>\n <nz-form-control nzSpan=\"14\">\n <axis-fun-field formControlName=\"showOrder\">\n <nz-switch ngModel [ngModelOptions]=\"{standalone:true}\"></nz-switch>\n </axis-fun-field>\n </nz-form-control>\n </nz-form-item>\n <nz-form-item>\n <nz-form-label nzSpan=\"10\" nzRequired nzTooltipTitle=\"开启后表格底部不会超出视窗底部\">\n 高度扩展\n </nz-form-label>\n <nz-form-control nzSpan=\"14\">\n <axis-fun-field formControlName=\"heightExpanded\">\n <nz-switch ngModel [ngModelOptions]=\"{standalone:true}\"></nz-switch>\n </axis-fun-field>\n </nz-form-control>\n </nz-form-item>\n <nz-form-item>\n <nz-form-label nzSpan=\"10\" nzRequired>\n 显示数据条数\n </nz-form-label>\n <nz-form-control nzSpan=\"14\">\n <axis-fun-field formControlName=\"showDataSize\">\n <nz-switch ngModel [ngModelOptions]=\"{standalone:true}\"></nz-switch>\n </axis-fun-field>\n </nz-form-control>\n </nz-form-item>\n <nz-form-item>\n <nz-form-label nzSpan=\"10\" nzRequired>\n 显示边框\n </nz-form-label>\n <nz-form-control nzSpan=\"14\">\n <axis-fun-field formControlName=\"bordered\">\n <nz-switch ngModel [ngModelOptions]=\"{standalone:true}\"></nz-switch>\n </axis-fun-field>\n </nz-form-control>\n </nz-form-item>\n <nz-form-item>\n <nz-form-label nzSpan=\"10\" nzRequired>\n 显示外边框\n </nz-form-label>\n <nz-form-control nzSpan=\"14\">\n <axis-fun-field formControlName=\"outerBordered\">\n <nz-switch ngModel [ngModelOptions]=\"{standalone:true}\"></nz-switch>\n </axis-fun-field>\n </nz-form-control>\n </nz-form-item>\n <nz-form-item>\n <nz-form-label nzSpan=\"10\" nzTooltipTitle=\"不设置时,自动计算滚动宽度,自动计算不合理时手动设置\">\n 表格滚动宽度\n </nz-form-label>\n <nz-form-control nzSpan=\"14\">\n <axis-fun-field formControlName=\"width\">\n <nz-input-number ngModel [ngModelOptions]=\"{standalone:true}\" style=\"width: 100%;\" [nzMin]=\"0\">\n <span nzInputAddonAfter>px</span>\n </nz-input-number>\n </axis-fun-field>\n </nz-form-control>\n </nz-form-item>\n <nz-form-item>\n <nz-form-label nzSpan=\"10\" nzTooltipTitle=\"不设置时,自动计算宽度,自动计算不合理时手动设置\">\n 操作列宽度\n </nz-form-label>\n <nz-form-control nzSpan=\"14\">\n <axis-fun-field formControlName=\"actionsFieldWidth\">\n <nz-input-number ngModel [ngModelOptions]=\"{standalone:true}\" style=\"width: 100%;\" [nzMin]=\"0\">\n <span nzInputAddonAfter>px</span>\n </nz-input-number>\n </axis-fun-field>\n </nz-form-control>\n </nz-form-item>\n </nz-collapse-panel>\n <nz-collapse-panel nzHeader=\"选择器设置\">\n <nz-form-item>\n <nz-form-label nzSpan=\"10\" nzRequired>\n 行选择器\n </nz-form-label>\n <nz-form-control nzSpan=\"14\">\n <axis-fun-field formControlName=\"showCheckbox\">\n <nz-switch ngModel [ngModelOptions]=\"{standalone:true}\"></nz-switch>\n </axis-fun-field>\n </nz-form-control>\n </nz-form-item>\n @if (formValue().showCheckbox?.funMode || formValue()?.showCheckbox?.originValue) {\n <nz-form-item>\n <nz-form-label nzSpan=\"10\" nzRequired>\n 单选\n </nz-form-label>\n <nz-form-control nzSpan=\"14\">\n <axis-fun-field formControlName=\"singleCheck\">\n <nz-switch ngModel [ngModelOptions]=\"{standalone:true}\"></nz-switch>\n </axis-fun-field>\n </nz-form-control>\n </nz-form-item>\n @if (formValue().singleCheck?.funMode || !formValue()?.singleCheck?.originValue) {\n <nz-form-item>\n <nz-form-label nzSpan=\"10\" nzRequired nzTooltipTitle=\"若当前表格在其他父表格的扩展行中,可联动父表格的勾选状态\">\n 联动勾选\n </nz-form-label>\n <nz-form-control nzSpan=\"14\">\n <nz-switch formControlName=\"checkboxLinkageForExpand\"></nz-switch>\n </nz-form-control>\n </nz-form-item>\n }\n <nz-form-item>\n <nz-form-label nzSpan=\"10\">\n 选择器禁用脚本\n </nz-form-label>\n <nz-form-control nzSpan=\"14\">\n <axis-fun-field formControlName=\"disableCheckboxFn\" [onlyFun]=\"true\" [noListen]=\"true\"\n [scopes]=\"rowScopes()\">\n </axis-fun-field>\n </nz-form-control>\n </nz-form-item>\n }\n </nz-collapse-panel>\n <nz-collapse-panel nzHeader=\"数据统计\">\n <nz-form-item>\n <nz-form-label nzSpan=\"10\" nzRequired>\n 启用统计\n </nz-form-label>\n <nz-form-control nzSpan=\"14\">\n <axis-fun-field formControlName=\"showStatistic\">\n <nz-switch ngModel [ngModelOptions]=\"{standalone:true}\"></nz-switch>\n </axis-fun-field>\n </nz-form-control>\n </nz-form-item>\n @if (formValue().showStatistic?.funMode || formValue()?.showStatistic?.originValue) {\n <nz-form-item>\n <nz-form-label nzSpan=\"10\">\n 统计标题\n </nz-form-label>\n <nz-form-control nzSpan=\"14\">\n <axis-fun-field formControlName=\"statisticTitle\">\n <input nz-input ngModel [ngModelOptions]=\"{standalone:true}\" />\n </axis-fun-field>\n </nz-form-control>\n </nz-form-item>\n }\n <!-- @if (!fg.value.useBackEndPaging) {\n <nz-form-item>\n <nz-form-label nzSpan=\"10\" nzRequired>\n 启用小计\n </nz-form-label>\n <nz-form-control nzSpan=\"14\">\n <axis-fun-field formControlName=\"showSubTotal\">\n <nz-switch ngModel [ngModelOptions]=\"{standalone:true}\"></nz-switch>\n </axis-fun-field>\n </nz-form-control>\n </nz-form-item>\n @if (formValue().showSubTotal?.funMode || formValue()?.showSubTotal?.originValue) {\n <nz-form-item>\n <nz-form-label nzSpan=\"10\">\n 小计标题\n </nz-form-label>\n <nz-form-control nzSpan=\"14\">\n <axis-fun-field formControlName=\"subTotalTitle\">\n <input nz-input ngModel [ngModelOptions]=\"{standalone:true}\" />\n </axis-fun-field>\n </nz-form-control>\n </nz-form-item>\n <nz-form-item>\n <nz-form-label nzSpan=\"10\" nzRequired>\n 小计分组级别\n </nz-form-label>\n <nz-form-control nzSpan=\"14\">\n <axis-fun-field formControlName=\"subTotalGroupLevel\">\n <nz-input-number style=\"width: 100%;\" ngModel [ngModelOptions]=\"{standalone:true}\" [nzMin]=\"1\">\n </nz-input-number>\n </axis-fun-field>\n </nz-form-control>\n </nz-form-item>\n }\n } -->\n </nz-collapse-panel>\n <nz-collapse-panel nzHeader=\"分页设置\">\n <nz-form-item>\n <nz-form-label nzSpan=\"10\" nzRequired>\n 是否分页\n </nz-form-label>\n <nz-form-control nzSpan=\"14\">\n <nz-switch formControlName=\"showPagination\"></nz-switch>\n </nz-form-control>\n </nz-form-item>\n @if (!formValue()?.showPagination) {\n <nz-form-item>\n <nz-form-label nzSpan=\"10\" nzRequired nzTooltipTitle=\"不分页时,用于加载大量的数据\">\n 虚拟滚动\n </nz-form-label>\n <nz-form-control nzSpan=\"14\">\n <nz-switch formControlName=\"virtualScroll\"></nz-switch>\n (未实现)\n </nz-form-control>\n </nz-form-item>\n @if (formValue()?.virtualScroll) {\n <nz-form-item>\n <nz-form-label nzSpan=\"10\" nzRequired nzTooltipTitle=\"每一行的高度\">\n 计算行高\n </nz-form-label>\n <nz-form-control nzSpan=\"14\">\n <nz-input-number formControlName=\"virtualItemSize\"></nz-input-number>\n </nz-form-control>\n </nz-form-item>\n }\n }@else {\n <nz-form-item>\n <nz-form-label nzSpan=\"10\" nzRequired>\n 默认行数\n </nz-form-label>\n <nz-form-control nzSpan=\"14\">\n <axis-fun-field formControlName=\"pageSize\">\n <nz-input-number style=\"width: 100%;\" ngModel [ngModelOptions]=\"{standalone:true}\" [nzMin]=\"1\">\n </nz-input-number>\n </axis-fun-field>\n </nz-form-control>\n </nz-form-item>\n <nz-form-item>\n <nz-form-label nzSpan=\"10\" nzRequired>\n 行数修改器\n </nz-form-label>\n <nz-form-control nzSpan=\"14\">\n <axis-fun-field formControlName=\"showSizeChanger\">\n <nz-switch ngModel [ngModelOptions]=\"{standalone:true}\"></nz-switch>\n </axis-fun-field>\n </nz-form-control>\n </nz-form-item>\n @if (formValue().showSizeChanger?.funMode || formValue()?.showSizeChanger?.originValue) {\n <nz-form-item>\n <nz-form-label nzSpan=\"10\" nzRequired nzTooltipTitle=\"用逗号分隔,例:10,20,50,100\">\n 页数可选值\n </nz-form-label>\n <nz-form-control nzSpan=\"14\">\n <input nz-input formControlName=\"pageSizeOptions\" placeholder=\"例:10,20,50,100\" />\n </nz-form-control>\n </nz-form-item>\n }\n @if (formValue().showCheckbox?.funMode || formValue()?.showCheckbox?.originValue) {\n <nz-form-item>\n <nz-form-label nzSpan=\"10\" nzRequired>\n 是否后端分页\n </nz-form-label>\n <nz-form-control nzSpan=\"14\">\n <nz-switch formControlName=\"useBackEndPaging\"></nz-switch>\n (未实现)\n </nz-form-control>\n </nz-form-item>\n @if (formValue()?.useBackEndPaging) {\n <nz-form-item>\n <nz-form-label nzSpan=\"10\">\n 分页参数数据源名称\n </nz-form-label>\n <nz-form-control nzSpan=\"14\">\n <input nz-input formControlName=\"pageParamsDataSourceName\" />\n </nz-form-control>\n </nz-form-item>\n <nz-form-item>\n <nz-form-label nzSpan=\"10\">\n 导出参数数据源名称\n </nz-form-label>\n <nz-form-control nzSpan=\"14\">\n <input nz-input formControlName=\"exportParamsDataSourceName\" />\n </nz-form-control>\n </nz-form-item>\n }\n }\n }\n </nz-collapse-panel>\n <nz-collapse-panel nzHeader=\"导入导出(未实现)\">\n <nz-form-item>\n <nz-form-label nzSpan=\"10\">\n 导出文件名\n </nz-form-label>\n <nz-form-control nzSpan=\"14\">\n <axis-fun-field formControlName=\"exportFileName\">\n <nz-input-group [nzSuffix]=\"'.'+formValue().exportBookType?.originValue\">\n <input nz-input ngModel [ngModelOptions]=\"{standalone:true}\" />\n </nz-input-group>\n </axis-fun-field>\n </nz-form-control>\n </nz-form-item>\n <nz-form-item>\n <nz-form-label nzSpan=\"10\" nzRequired>\n 文件类型\n </nz-form-label>\n <nz-form-control nzSpan=\"14\">\n <axis-fun-field [noListen]=\"true\" formControlName=\"exportBookType\">\n <nz-select ngModel [ngModelOptions]=\"{standalone:true}\">\n <nz-option nzValue=\"xlsx\" nzLabel=\"xlsx\"></nz-option>\n <nz-option nzValue=\"xls\" nzLabel=\"xls\"></nz-option>\n </nz-select>\n </axis-fun-field>\n </nz-form-control>\n </nz-form-item>\n <nz-form-item>\n <nz-form-label nzSpan=\"10\">\n 分批导入限制\n </nz-form-label>\n <nz-form-control nzSpan=\"14\">\n <axis-fun-field formControlName=\"importLimitLength\">\n <nz-input-number style=\"width: 100%;\" ngModel [ngModelOptions]=\"{standalone:true}\"\n nzPlaceHolder=\"默认不限\"></nz-input-number>\n </axis-fun-field>\n </nz-form-control>\n </nz-form-item>\n <nz-form-item>\n <nz-form-label nzSpan=\"10\" nzRequired>\n 导入起始行\n </nz-form-label>\n <nz-form-control nzSpan=\"14\">\n <axis-fun-field formControlName=\"importStartLine\">\n <nz-input-number style=\"width: 100%;\" ngModel\n [ngModelOptions]=\"{standalone:true}\"></nz-input-number>\n </axis-fun-field>\n </nz-form-control>\n </nz-form-item>\n <nz-form-item>\n <nz-form-label nzSpan=\"10\">\n 导入模版文件名\n </nz-form-label>\n <nz-form-control nzSpan=\"14\">\n <axis-fun-field formControlName=\"importTemplateFileName\">\n <nz-input-group nzSuffix=\".xlsx\">\n <input nz-input ngModel [ngModelOptions]=\"{standalone:true}\" />\n </nz-input-group>\n </axis-fun-field>\n </nz-form-control>\n </nz-form-item>\n <nz-form-item>\n <nz-form-label nzSpan=\"10\">\n 示例数据\n </nz-form-label>\n <nz-form-control nzSpan=\"14\">\n <axis-fun-field formControlName=\"importExampleData\">\n <ng-container ngModel [ngModelOptions]=\"{standalone:true}\"\n [axisDynamic]=\"{component:'axis-components/input-json',inuse:true}\"\n [standalone]=\"true\"></ng-container>\n </axis-fun-field>\n </nz-form-control>\n </nz-form-item>\n </nz-collapse-panel>\n <axis-base-design-setting [fg]=\"fg\"></axis-base-design-setting>\n <axis-input-trigger formControlName=\"triggeEvents\" [eventDesc]=\"eventDesc()\"></axis-input-trigger>\n </nz-collapse>\n</form>","import { TableFieldSetting } from \"./table-field-setting/table-field-setting\";\nimport { TableFieldsMenu } from \"./table-fields-menu/table-fields-menu\";\nimport { TableSetting } from \"./table-setting/table-setting\";\nimport { DesignConfig, NextInfo, DesignBuildResult, OptionsNode, DesignBindElementsResult, SimpleMenu } from 'ngx-axis-appforge/core';\n\nexport const Config: DesignConfig = {\n\n componentName: \"表格\",\n buildOptionsNodes(nextInfo: NextInfo): DesignBuildResult {\n const next: NextInfo[] = [];\n const fieldsChildren: OptionsNode[] = [];\n const fieldsNode = new OptionsNode({\n id: nextInfo.currentObject.id + \".fields\",\n parentId: nextInfo.currentObject.id,\n parentObj: nextInfo.currentObject,\n indexOfParentObj: \"fields\",\n scopeId: nextInfo.scopeId,\n rootOptions: nextInfo.currentObject.fields,\n contextMenu: TableFieldsMenu,\n name: `表格列[${nextInfo.currentObject.fields?.length ?? 0}]`,\n canDrop: true,\n dropType: \"axis-components/table/table-field\",\n dropObj: nextInfo.currentObject.fields,\n defaultDropIndex: nextInfo.currentObject.fields?.length ?? 0,\n childDirection: 'horizontal',\n icon: \"project\",\n children: fieldsChildren\n });\n nextInfo.currentObject.fields?.forEach((f: any, i: number) => {\n next.push({\n parentId: fieldsNode.id + \".\" + f.field,\n parentObject: f,\n indexOfParent: \"child\",\n scopeId: nextInfo.currentObject.id + \".row\"\n });\n fieldsChildren.push(new OptionsNode({\n id: fieldsNode.id + \".\" + f.field,\n updateId: (options) => fieldsNode.id + \".\" + options.field,\n scopeId: fieldsNode.scopeId,\n parentId: fieldsNode.id,\n parentObj: fieldsNode.options,\n indexOfParentObj: i,\n rootOptions: f,\n name: `字段[${f.field}]`,\n icon: \"profile\",\n canSetting: true,\n settingType: TableFieldSetting,\n contextMenu: SimpleMenu,\n canDrag: true,\n dragType: \"axis-components/table/table-field\",\n canDrop: true,\n dropType: \"component\",\n dropObj: f,\n defaultDropIndex: \"child\",\n children: []\n }));\n });\n const rowActionsNode = new OptionsNode({\n id: nextInfo.currentObject.id + \".rowActions\",\n parentId: nextInfo.currentObject.id,\n parentObj: nextInfo.currentObject,\n indexOfParentObj: \"rowActions\",\n scopeId: nextInfo.scopeId,\n rootOptions: nextInfo.currentObject.rowActions,\n name: `操作列[${nextInfo.currentObject.rowActions?.length ?? 0}]`,\n contextMenu: SimpleMenu,\n canDrop: true,\n dropType: \"component\",\n dropObj: nextInfo.currentObject.rowActions,\n defaultDropIndex: nextInfo.currentObject.rowActions?.length ?? 0,\n childDirection: 'horizontal',\n icon: \"control\",\n children: []\n });\n next.push({\n parentId: rowActionsNode.id,\n parentObject: rowActionsNode.options,\n scopeId: nextInfo.currentObject.id + \".row\"\n });\n const expandNode = new OptionsNode({\n id: nextInfo.currentObject.id + \".expandRow\",\n parentId: nextInfo.currentObject.id,\n parentObj: nextInfo.currentObject,\n indexOfParentObj: \"expandRow\",\n scopeId: nextInfo.scopeId,\n rootOptions: nextInfo.currentObject,\n name: \"扩展行\",\n contextMenu: SimpleMenu,\n canDrop: true,\n dropType: \"component\",\n dropObj: nextInfo.currentObject,\n defaultDropIndex: \"expandRow\",\n icon: \"control\",\n children: []\n });\n next.push({\n parentId: expandNode.id,\n parentObject: nextInfo.currentObject,\n indexOfParent: \"expandRow\",\n scopeId: nextInfo.currentObject.id + \".row\"\n });\n return {\n treeNode: new OptionsNode({\n parentId: nextInfo.parentId,\n scopeId: nextInfo.scopeId,\n name: \"表格\",\n canSetting: true,\n canDrag: true,\n dragType: \"component\",\n parentObj: nextInfo.parentObject,\n indexOfParentObj: nextInfo.indexOfParent,\n rootOptions: nextInfo.currentObject,\n settingType: TableSetting,\n contextMenu: SimpleMenu,\n icon: \"table\",\n children: [\n fieldsNode,\n rowActionsNode,\n expandNode\n ],\n }),\n next: next,\n newScopes: [\n {\n scopeId: nextInfo.currentObject.id + \".row\",\n parentScopeId: nextInfo.scopeId,\n scopeName: \"表格行\",\n ds: {\n row: nextInfo.currentObject.data?.[0] ?? \"示例数据\"\n }\n }\n ]\n };\n },\n bindElementsOptionsNode(element: HTMLElement, options: any): DesignBindElementsResult {\n const fieldsParent = element.querySelector(\"thead>.ant-table-row\") as HTMLElement | undefined;\n const res: DesignBindElementsResult = {\n [options.id]: { element },\n [`${options.id}.fields`]: { element: fieldsParent, dropElement: fieldsParent },\n };\n (options.fields as any[] | undefined)?.forEach((f) => {\n const fieldElement = fieldsParent?.querySelector(`th[data-field=\"${f.field}\"]`) as HTMLElement | undefined;\n const fieldChildElement = element?.querySelector(`td[data-field=\"${f.field}\"]`) as HTMLElement | undefined;\n res[`${options.id}.fields.${f.field}`] = { element: fieldElement, dropElement: fieldChildElement }\n });\n const rowActionsElement = fieldsParent?.querySelector(\"th[data-rowactions]\") as HTMLElement | undefined;\n const rowActionsChildElement = element.querySelector(\"td>div[data-rowactions]\") as HTMLElement | undefined;\n res[`${options.id}.rowActions`] = { element: rowActionsElement, dropElement: rowActionsChildElement };\n const expandRowElement = element.querySelector(\"tr[data-expandrow]\") as HTMLElement | undefined;\n res[`${options.id}.expandRow`] = { element: expandRowElement, dropElement: expandRowElement };\n return res;\n },\n};\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './config';\n"],"names":["i5","i1","i2","i4","i3","i7","i8","i9"],"mappings":"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"}
1
+ {"version":3,"file":"ngx-axis-appforge-axis-components-table-design.mjs","sources":["../../../axis-components/table/design/table-field-setting/table-field-setting.ts","../../../axis-components/table/design/table-field-setting/table-field-setting.html","../../../axis-components/table/design/table-fields-menu/table-fields-menu.ts","../../../axis-components/table/design/table-fields-menu/table-fields-menu.html","../../../axis-components/table/design/table-setting/table-setting.ts","../../../axis-components/table/design/table-setting/table-setting.html","../../../axis-components/table/design/config.ts","../../../axis-components/table/design/ngx-axis-appforge-axis-components-table-design.ts"],"sourcesContent":["import { ChangeDetectionStrategy, Component, computed, inject } from '@angular/core';\nimport { FormsModule, ReactiveFormsModule, UntypedFormGroup } from '@angular/forms';\nimport { NzAutocompleteModule } from 'ng-zorro-antd/auto-complete';\nimport { NzCollapseModule } from 'ng-zorro-antd/collapse';\nimport { NzFormModule } from 'ng-zorro-antd/form';\nimport { NzInputModule } from 'ng-zorro-antd/input';\nimport { NzInputNumberModule } from 'ng-zorro-antd/input-number';\nimport { NzRadioModule } from 'ng-zorro-antd/radio';\nimport { NzSelectModule } from 'ng-zorro-antd/select';\nimport { NzSwitchModule } from 'ng-zorro-antd/switch';\nimport { FormValidators, FunFieldValueBase, FunFieldOptions, FunField, AXIS_DESIGN_COMPONENT_REF_FOR_SETTING_TOKEN, ScopeInfo } from 'ngx-axis-appforge/core';\n\n@Component({\n selector: 'axis-design-table-field-setting',\n imports: [FormsModule, NzFormModule, ReactiveFormsModule, NzCollapseModule, NzInputModule, FunField, NzRadioModule, NzSelectModule, NzInputNumberModule, NzSwitchModule, NzAutocompleteModule],\n templateUrl: './table-field-setting.html',\n styleUrl: './table-field-setting.css',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class TableFieldSetting extends FunFieldValueBase {\n\n override fg: UntypedFormGroup = this.fb.group({\n inuse: [undefined, FormValidators.requiredFun],\n field: [\"unknown\", FormValidators.required],\n title: [undefined, FormValidators.requiredFun],\n export: [undefined, FormValidators.requiredFun],\n exportFlowChild: [undefined, FormValidators.requiredFun],\n exportFn: [],\n import: [undefined, FormValidators.requiredFun],\n importRequired: [undefined, FormValidators.requiredFun],\n importCellType: [undefined, FormValidators.requiredFun],\n importHelp: [],\n sortAble: [undefined, FormValidators.requiredFun],\n sortOrder: [],\n sortPriority: [],\n filterAble: [undefined, FormValidators.requiredFun],\n filterMultiple: [undefined, FormValidators.requiredFun],\n width: [],\n align: [undefined, FormValidators.requiredFun],\n freezeMode: [undefined, FormValidators.requiredFun],\n groupLevel: [],\n statisticAble: [false, FormValidators.required],\n statisticType: [\"sum\", FormValidators.required],\n statisticFn: [],\n titleGroup: [],\n });\n\n protected override funFields: FunFieldOptions = {\n inuse: {\n defaultValue: true\n },\n title: {\n defaultValue: \"未命名\"\n },\n export: {\n defaultValue: false\n },\n exportFlowChild: {\n defaultValue: true\n },\n import: {\n defaultValue: false\n },\n importRequired: {\n defaultValue: false\n },\n importCellType: {\n defaultValue: \"text\"\n },\n importHelp: {\n defaultValue: undefined\n },\n sortAble: {\n defaultValue: false\n },\n sortOrder: {\n defaultValue: null\n },\n sortPriority: {\n defaultValue: null\n },\n filterAble: {\n defaultValue: false\n },\n filterMultiple: {\n defaultValue: false\n },\n width: {\n defaultValue: null\n },\n align: {\n defaultValue: \"left\"\n },\n freezeMode: {\n defaultValue: \"none\"\n },\n titleGroup: {\n defaultValue: undefined\n },\n groupLevel: {\n defaultValue: null\n },\n };\n\n readonly elementRef = inject(AXIS_DESIGN_COMPONENT_REF_FOR_SETTING_TOKEN);\n\n readonly tableOptions = computed(() => {\n return this.elementRef.ref?.instance.options as any;\n });\n\n readonly tableRows = computed(() => {\n if (this.tableOptions()?.showPagination() && this.tableOptions()?.useBackEndPaging()) {\n return this.tableOptions().data()?.rows;\n } else {\n return this.tableOptions()?.data();\n }\n })\n\n readonly statisticFnScopes = computed<ScopeInfo[]>(() => {\n let data = this.tableRows();\n return [{\n scopeId: this.elementRef.options.id + '.statistic.' + this.formValue().field,\n scopeName: \"统计\",\n ds: {\n result: null,\n index: 0,\n row: data?.[0] ?? {},\n value: data?.[0]?.[this.formValue().field] ?? null\n }\n }];\n });\n\n readonly fields = computed(() => {\n let data = this.tableRows();\n return Object.keys(data?.[0] ?? {});\n });\n\n\n}\n","<form [formGroup]=\"fg\" nz-form>\n <nz-collapse [nzBordered]=\"false\">\n <nz-collapse-panel nzHeader=\"基本设置\" nzActive>\n <nz-form-item>\n <nz-form-label nzSpan=\"10\" nzRequired>\n 字段名\n </nz-form-label>\n <nz-form-control nzSpan=\"14\">\n <input nz-input formControlName=\"field\" [nzAutocomplete]=\"fieldAuto\" />\n </nz-form-control>\n </nz-form-item>\n <nz-autocomplete #fieldAuto nzBackfill>\n @for (f of fields(); track f) {\n <nz-auto-option [nzLabel]=\"f\" [nzValue]=\"f\">\n {{f}}\n </nz-auto-option>\n }\n </nz-autocomplete>\n <nz-form-item>\n <nz-form-label nzSpan=\"10\" nzRequired>\n 字段标题\n </nz-form-label>\n <nz-form-control nzSpan=\"14\">\n <axis-fun-field formControlName=\"title\">\n <input nz-input ngModel [ngModelOptions]=\"{standalone:true}\" />\n </axis-fun-field>\n </nz-form-control>\n </nz-form-item>\n <nz-form-item>\n <nz-form-label nzSpan=\"10\" nzRequired>\n 是否可用\n </nz-form-label>\n <nz-form-control nzSpan=\"14\">\n <axis-fun-field formControlName=\"inuse\">\n <nz-switch ngModel [ngModelOptions]=\"{standalone:true}\"></nz-switch>\n </axis-fun-field>\n </nz-form-control>\n </nz-form-item>\n </nz-collapse-panel>\n <nz-collapse-panel nzHeader=\"外观设置\">\n <nz-form-item>\n <nz-form-label nzSpan=\"10\">\n 宽度\n </nz-form-label>\n <nz-form-control nzSpan=\"14\">\n <axis-fun-field formControlName=\"width\">\n <nz-input-number ngModel [ngModelOptions]=\"{standalone:true}\" style=\"width: 100%;\" [nzMin]=\"0\">\n <span nzInputAddonAfter>px</span>\n </nz-input-number>\n </axis-fun-field>\n </nz-form-control>\n </nz-form-item>\n <nz-form-item>\n <nz-form-label nzSpan=\"10\" nzRequired>\n 对齐方式\n </nz-form-label>\n <nz-form-control nzSpan=\"14\">\n <axis-fun-field formControlName=\"align\">\n <nz-select ngModel [ngModelOptions]=\"{standalone:true}\">\n <nz-option nzValue=\"left\" nzLabel=\"左对齐\"></nz-option>\n <nz-option nzValue=\"center\" nzLabel=\"居中\"></nz-option>\n <nz-option nzValue=\"right\" nzLabel=\"右对齐\"></nz-option>\n </nz-select>\n </axis-fun-field>\n </nz-form-control>\n </nz-form-item>\n <nz-form-item>\n <nz-form-label nzSpan=\"10\" nzRequired>\n 固定方式\n </nz-form-label>\n <nz-form-control nzSpan=\"14\">\n <axis-fun-field formControlName=\"freezeMode\">\n <nz-select ngModel [ngModelOptions]=\"{standalone:true}\">\n <nz-option nzValue=\"none\" nzLabel=\"不固定\"></nz-option>\n <nz-option nzValue=\"left\" nzLabel=\"固定在左\"></nz-option>\n <nz-option nzValue=\"right\" nzLabel=\"固定在右\"></nz-option>\n </nz-select>\n </axis-fun-field>\n </nz-form-control>\n </nz-form-item>\n <nz-form-item>\n <nz-form-label nzSpan=\"10\" nzTooltipTitle=\"未实现\">\n 分组表头标题\n </nz-form-label>\n <nz-form-control nzSpan=\"14\">\n <axis-fun-field formControlName=\"titleGroup\">\n <input nz-input ngModel [ngModelOptions]=\"{standalone:true}\" />\n </axis-fun-field>\n </nz-form-control>\n </nz-form-item>\n <nz-form-item>\n <nz-form-label nzSpan=\"10\" nzTooltipTitle=\"未实现\">\n 分组级别\n </nz-form-label>\n <nz-form-control nzSpan=\"14\">\n <axis-fun-field formControlName=\"groupLevel\">\n <nz-input-number style=\"width: 100%;\" [nzMin]=\"1\" ngModel [ngModelOptions]=\"{standalone:true}\"\n [nzMin]=\"1\">\n </nz-input-number>\n </axis-fun-field>\n </nz-form-control>\n </nz-form-item>\n </nz-collapse-panel>\n <nz-collapse-panel nzHeader=\"排序过滤\">\n <nz-form-item>\n <nz-form-label nzSpan=\"10\" nzRequired>\n 是否排序\n </nz-form-label>\n <nz-form-control nzSpan=\"14\">\n <axis-fun-field formControlName=\"sortAble\">\n <nz-switch ngModel [ngModelOptions]=\"{standalone:true}\"></nz-switch>\n </axis-fun-field>\n </nz-form-control>\n </nz-form-item>\n @if (formValue().sortAble?.funMode || formValue()?.sortAble?.originValue) {\n <nz-form-item>\n <nz-form-label nzSpan=\"10\">\n 默认排序方式\n </nz-form-label>\n <nz-form-control nzSpan=\"14\">\n <axis-fun-field formControlName=\"sortOrder\">\n <nz-select ngModel [ngModelOptions]=\"{standalone:true}\" nzAllowClear>\n <nz-option nzValue=\"ascend\" nzLabel=\"升序\"></nz-option>\n <nz-option nzValue=\"descend\" nzLabel=\"降序\"></nz-option>\n </nz-select>\n </axis-fun-field>\n </nz-form-control>\n </nz-form-item>\n <nz-form-item>\n <nz-form-label nzSpan=\"10\">\n 排序优先级\n </nz-form-label>\n <nz-form-control nzSpan=\"14\">\n <axis-fun-field formControlName=\"sortPriority\">\n <nz-input-number style=\"width: 100%;\" ngModel\n [ngModelOptions]=\"{standalone:true}\"></nz-input-number>\n </axis-fun-field>\n </nz-form-control>\n </nz-form-item>\n }\n @if(!tableOptions().useBackEndPaging){\n <nz-form-item>\n <nz-form-label nzSpan=\"10\" nzRequired>\n 是否过滤\n </nz-form-label>\n <nz-form-control nzSpan=\"14\">\n <axis-fun-field formControlName=\"filterAble\">\n <nz-switch ngModel [ngModelOptions]=\"{standalone:true}\"></nz-switch>\n </axis-fun-field>\n </nz-form-control>\n </nz-form-item>\n @if (formValue().filterAble?.funMode || formValue()?.filterAble?.originValue) {\n <nz-form-item>\n <nz-form-label nzSpan=\"10\" nzRequired>\n 多个过滤条件\n </nz-form-label>\n <nz-form-control nzSpan=\"14\">\n <axis-fun-field formControlName=\"filterMultiple\">\n <nz-switch ngModel [ngModelOptions]=\"{standalone:true}\"></nz-switch>\n </axis-fun-field>\n </nz-form-control>\n </nz-form-item>\n }\n }\n </nz-collapse-panel>\n <nz-collapse-panel nzHeader=\"统计设置\">\n <nz-form-item>\n <nz-form-label nzSpan=\"10\" nzRequired>\n 是否统计\n </nz-form-label>\n <nz-form-control nzSpan=\"14\">\n <nz-switch formControlName=\"statisticAble\"></nz-switch>\n </nz-form-control>\n </nz-form-item>\n @if (formValue().statisticAble) {\n <nz-form-item>\n <nz-form-label nzSpan=\"10\" nzRequired>\n 统计方式\n </nz-form-label>\n <nz-form-control nzSpan=\"14\">\n <nz-select formControlName=\"statisticType\">\n <nz-option nzValue=\"sum\" nzLabel=\"合计\"></nz-option>\n <nz-option nzValue=\"average\" nzLabel=\"平均\"></nz-option>\n <nz-option nzValue=\"max\" nzLabel=\"最大值\"></nz-option>\n <nz-option nzValue=\"min\" nzLabel=\"最小值\"></nz-option>\n <nz-option nzValue=\"custom\" nzLabel=\"自定义\"></nz-option>\n </nz-select>\n </nz-form-control>\n </nz-form-item>\n @if (formValue().statisticType == \"custom\") {\n <nz-form-item>\n <nz-form-label nzSpan=\"10\">\n 统计函数\n </nz-form-label>\n <nz-form-control nzSpan=\"14\">\n <axis-fun-field formControlName=\"statisticFn\" [scopes]=\"statisticFnScopes()\" [onlyFun]=\"true\"\n [noListen]=\"true\">\n </axis-fun-field>\n </nz-form-control>\n </nz-form-item>\n }\n }\n </nz-collapse-panel>\n <nz-collapse-panel nzHeader=\"导出导入(未实现)\">\n <nz-form-item>\n <nz-form-label nzSpan=\"10\" nzRequired>\n 是否导出\n </nz-form-label>\n <nz-form-control nzSpan=\"14\">\n <axis-fun-field formControlName=\"export\">\n <nz-switch ngModel [ngModelOptions]=\"{standalone:true}\"></nz-switch>\n </axis-fun-field>\n </nz-form-control>\n </nz-form-item>\n @if (formValue().export?.funMode || formValue()?.export?.originValue) {\n <nz-form-item>\n <nz-form-label nzSpan=\"10\" nzRequired>\n 导出内容跟随\n </nz-form-label>\n <nz-form-control nzSpan=\"14\">\n <axis-fun-field formControlName=\"exportFlowChild\">\n <nz-switch ngModel [ngModelOptions]=\"{standalone:true}\"></nz-switch>\n </axis-fun-field>\n </nz-form-control>\n </nz-form-item>\n @if (formValue().exportFlowChild?.funMode || !formValue()?.exportFlowChild?.originValue) {\n <nz-form-item>\n <nz-form-label nzSpan=\"10\">\n 导出函数\n </nz-form-label>\n <nz-form-control nzSpan=\"14\">\n <axis-fun-field formControlName=\"exportFn\" [onlyFun]=\"true\" [noListen]=\"true\">\n </axis-fun-field>\n </nz-form-control>\n </nz-form-item>\n }\n }\n <nz-form-item>\n <nz-form-label nzSpan=\"10\" nzRequired>\n 是否导入\n </nz-form-label>\n <nz-form-control nzSpan=\"14\">\n <axis-fun-field formControlName=\"import\">\n <nz-switch ngModel [ngModelOptions]=\"{standalone:true}\"></nz-switch>\n </axis-fun-field>\n </nz-form-control>\n </nz-form-item>\n @if (formValue().import?.funMode || formValue()?.import?.originValue) {\n <nz-form-item>\n <nz-form-label nzSpan=\"10\" nzRequired>\n 必填标志\n </nz-form-label>\n <nz-form-control nzSpan=\"14\">\n <axis-fun-field formControlName=\"importRequired\">\n <nz-switch ngModel [ngModelOptions]=\"{standalone:true}\"></nz-switch>\n </axis-fun-field>\n </nz-form-control>\n </nz-form-item>\n <nz-form-item>\n <nz-form-label nzSpan=\"10\" nzRequired>\n 单元格类型\n </nz-form-label>\n <nz-form-control nzSpan=\"14\">\n <axis-fun-field formControlName=\"importCellType\">\n <nz-select ngModel [ngModelOptions]=\"{standalone:true}\" [nzAllowClear]=\"false\">\n <nz-option nzValue=\"text\" nzLabel=\"文本\"></nz-option>\n <nz-option nzValue=\"number\" nzLabel=\"数字\"></nz-option>\n </nz-select>\n </axis-fun-field>\n </nz-form-control>\n </nz-form-item>\n <nz-form-item>\n <nz-form-label nzSpan=\"10\">\n 导入帮助\n </nz-form-label>\n <nz-form-control nzSpan=\"14\">\n <axis-fun-field formControlName=\"importHelp\">\n <textarea nz-input ngModel [ngModelOptions]=\"{standalone:true}\"></textarea>\n </axis-fun-field>\n </nz-form-control>\n </nz-form-item>\n }\n </nz-collapse-panel>\n </nz-collapse>\n</form>","import { ChangeDetectionStrategy, Component } from '@angular/core';\nimport { NzDividerModule } from 'ng-zorro-antd/divider';\nimport { NzDropDownModule } from 'ng-zorro-antd/dropdown';\nimport { NzIconModule } from 'ng-zorro-antd/icon';\nimport { BaseMenu } from 'ngx-axis-appforge/core';\n\n@Component({\n selector: 'axis-design-table-fields-menu',\n imports: [NzDropDownModule, NzDividerModule, NzIconModule],\n templateUrl: './table-fields-menu.html',\n styleUrl: './table-fields-menu.css',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class TableFieldsMenu extends BaseMenu {\n\n addField() {\n const field = `unnamed#${this.optionsNodes.current.options.length + 1}`;\n this.optionsNodes.current.options.push({\n field: field,\n title: \"未命名\",\n inuse: true,\n });\n this.onChange?.({ nextNodeId: `${this.optionsNodes.parent?.id}.${field}`, historyDesc: \"添加表格字段\" });\n }\n}\n","<nz-dropdown-menu #menu=\"nzDropdownMenu\">\n <ul nz-menu>\n <li nz-menu-item (click)=\"addField()\">\n <i nz-icon nzType=\"plus\" nzTheme=\"outline\"></i>\n <nz-divider nzType=\"vertical\"></nz-divider>\n <span>添加字段</span>\n </li>\n </ul>\n</nz-dropdown-menu>","import { ChangeDetectionStrategy, Component, computed, ViewChild } from '@angular/core';\nimport { FormsModule, ReactiveFormsModule, UntypedFormGroup } from '@angular/forms';\nimport { NzFormModule } from 'ng-zorro-antd/form';\nimport { NzGridModule } from 'ng-zorro-antd/grid';\nimport { NzCollapseModule } from 'ng-zorro-antd/collapse';\nimport { InputTrigger, FunFieldValueBase, FunField, BaseDesignSetting, baseFbConfig, baseFunField, FunFieldOptions, FormValidators, DynamicDirective, ScopeInfo, EventDesc } from 'ngx-axis-appforge/core';\nimport { NzInputNumberModule } from 'ng-zorro-antd/input-number';\nimport { NzInputModule } from 'ng-zorro-antd/input';\nimport { NzSwitchModule } from 'ng-zorro-antd/switch';\nimport { NzSelectModule } from 'ng-zorro-antd/select';\nimport { NzRadioModule } from 'ng-zorro-antd/radio';\nimport { NzAutocompleteModule } from 'ng-zorro-antd/auto-complete';\n\n@Component({\n selector: 'axis-design-table-setting',\n imports: [NzFormModule, FormsModule, ReactiveFormsModule, FunField, NzGridModule, NzCollapseModule, BaseDesignSetting, InputTrigger, NzInputNumberModule, NzInputModule, NzSwitchModule, NzSelectModule, DynamicDirective, NzRadioModule, NzAutocompleteModule],\n templateUrl: './table-setting.html',\n styleUrl: './table-setting.css',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class TableSetting extends FunFieldValueBase {\n\n override fg: UntypedFormGroup = this.fb.group({\n ...baseFbConfig,\n keyField: [],\n showExpand: [undefined, FormValidators.requiredFun],\n expandMode: [\"custom\", FormValidators.required],\n treeChildrenFun: [],\n showTableTitleSet: [undefined, FormValidators.requiredFun],\n tableSetCacheKey: [],\n data: [],\n size: [undefined, FormValidators.requiredFun],\n showOrder: [undefined, FormValidators.requiredFun],\n heightExpanded: [undefined, FormValidators.requiredFun],\n showDataSize: [undefined, FormValidators.requiredFun],\n bordered: [undefined, FormValidators.requiredFun],\n outerBordered: [undefined, FormValidators.requiredFun],\n width: [],\n actionsFieldWidth: [],\n showCheckbox: [undefined, FormValidators.requiredFun],\n singleCheck: [undefined, FormValidators.requiredFun],\n checkboxLinkageForExpand: [false, FormValidators.required],\n disableCheckboxFn: [],\n showStatistic: [undefined, FormValidators.requiredFun],\n statisticTitle: [],\n showSubTotal: [undefined, FormValidators.requiredFun],\n subTotalTitle: [],\n subTotalGroupLevel: [undefined, FormValidators.requiredFun],\n showPagination: [true, FormValidators.required],\n virtualScroll: [false, FormValidators.required],\n virtualItemSize: [32, FormValidators.required],\n pageSize: [undefined, FormValidators.requiredFun],\n showSizeChanger: [undefined, FormValidators.requiredFun],\n pageSizeOptions: [\"10,20,50,100\", [FormValidators.required, FormValidators.pattern(/^\\d+(?:,\\d+)*$/)]],\n useBackEndPaging: [false, FormValidators.required],\n exportFileName: [],\n exportBookType: [undefined, FormValidators.requiredFun],\n importLimitLength: [],\n importStartLine: [undefined, FormValidators.requiredFun],\n importTemplateFileName: [],\n importExampleData: [],\n });\n\n protected override funFields: FunFieldOptions = {\n ...baseFunField,\n showExpand: {\n defaultValue: false\n },\n showTableTitleSet: {\n defaultValue: false\n },\n tableSetCacheKey: {\n defaultValue: undefined\n },\n data: {\n defaultValue: undefined,\n },\n size: {\n defaultValue: \"middle\"\n },\n showOrder: {\n defaultValue: true\n },\n heightExpanded: {\n defaultValue: false\n },\n showDataSize: {\n defaultValue: true\n },\n bordered: {\n defaultValue: false\n },\n outerBordered: {\n defaultValue: false\n },\n width: {\n defaultValue: null\n },\n actionsFieldWidth: {\n defaultValue: null\n },\n showCheckbox: {\n defaultValue: false\n },\n singleCheck: {\n defaultValue: false\n },\n showStatistic: {\n defaultValue: false\n },\n statisticTitle: {\n defaultValue: \"合计\"\n },\n showSubTotal: {\n defaultValue: false\n },\n subTotalTitle: {\n defaultValue: undefined\n },\n subTotalGroupLevel: {\n defaultValue: 1\n },\n pageSize: {\n defaultValue: 10\n },\n showSizeChanger: {\n defaultValue: true\n },\n exportFileName: {\n defaultValue: \"数据导出\"\n },\n exportBookType: {\n defaultValue: \"xlsx\"\n },\n importLimitLength: {\n defaultValue: null\n },\n importStartLine: {\n defaultValue: 2\n },\n importTemplateFileName: {\n defaultValue: \"数据导入模版\"\n },\n importExampleData: {\n defaultValue: []\n },\n };\n\n @ViewChild(\"dataFunField\", { static: true })\n dataFunField!: FunField;\n\n readonly useBackEndPaging = computed(() => this.formValue()?.showPagination && this.formValue()?.useBackEndPaging);\n\n readonly rowScopes = computed<ScopeInfo[]>(() => [{\n scopeId: this.formValue()?.id + '.row',\n scopeName: \"表格行\",\n ds: {\n row: (this.useBackEndPaging() ? this.dataFunField.computeResult()?.rows : this.dataFunField.computeResult())?.[0] ?? {}\n }\n }]);\n\n readonly eventDesc = computed(() => {\n const res: EventDesc[] = [];\n if (this.formValue()?.showCheckbox.funMode || this.formValue()?.showCheckbox.originValue) {\n res.push({\n name: 'onSelectedChange',\n title: '行选择改变',\n ds: {\n selectedRows: \"示例数据\"\n }\n });\n }\n if (this.formValue()?.showPagination && this.formValue()?.useBackEndPaging) {\n res.push({\n name: 'backendPageParamsChange',\n title: '后端分页参数改变',\n ds: {\n pageParams: {\n use_page: true,\n page_index: 1,\n page_size: 10\n }\n }\n });\n }\n return res;\n });\n\n readonly fields = computed(() => {\n return Object.keys((this.useBackEndPaging() ? this.dataFunField.computeResult()?.rows : this.dataFunField.computeResult())?.[0] ?? {});\n });\n}\n","<form [formGroup]=\"fg\" nz-form>\n <nz-collapse [nzBordered]=\"false\">\n <nz-collapse-panel nzHeader=\"基本设置\" nzActive>\n <nz-form-item>\n <nz-form-label nzSpan=\"10\">\n 主键字段\n </nz-form-label>\n <nz-form-control nzSpan=\"14\">\n <input nz-input formControlName=\"keyField\" placeholder=\"数据的主键字段\" [nzAutocomplete]=\"fieldAuto\" />\n </nz-form-control>\n </nz-form-item>\n <nz-autocomplete #fieldAuto nzBackfill>\n @for (f of fields(); track f) {\n <nz-auto-option [nzLabel]=\"f\" [nzValue]=\"f\">\n {{f}}\n </nz-auto-option>\n }\n </nz-autocomplete>\n <nz-form-item>\n <nz-form-label nzSpan=\"10\" nzRequired>\n 扩展行\n </nz-form-label>\n <nz-form-control nzSpan=\"14\">\n <axis-fun-field formControlName=\"showExpand\">\n <nz-switch ngModel [ngModelOptions]=\"{standalone:true}\"></nz-switch>\n </axis-fun-field>\n </nz-form-control>\n </nz-form-item>\n @if (formValue()?.showExpand.funMode || formValue()?.showExpand.originValue) {\n <nz-form-item>\n <nz-form-label nzSpan=\"10\" nzRequired>\n 扩展模式\n </nz-form-label>\n <nz-form-control nzSpan=\"14\">\n <nz-radio-group formControlName=\"expandMode\">\n <label nz-radio-button nzValue=\"custom\">自定义</label>\n <label nz-radio-button nzValue=\"tree\">树</label>\n </nz-radio-group>\n </nz-form-control>\n </nz-form-item>\n @if (formValue().expandMode == \"tree\") {\n <nz-form-item>\n <nz-form-label nzSpan=\"10\" nzTooltipTitle=\"默认取children字段,若不是请编写函数返回子节点\">\n 子节点函数\n </nz-form-label>\n <nz-form-control nzSpan=\"14\">\n <axis-fun-field formControlName=\"treeChildrenFun\" [onlyFun]=\"true\" [noListen]=\"true\"\n [scopes]=\"rowScopes()\">\n </axis-fun-field>\n </nz-form-control>\n </nz-form-item>\n }\n }\n <nz-form-item>\n <nz-form-label nzSpan=\"10\" nzRequired nzTooltipTitle=\"用户可以自定义列的显示、顺序和列宽(不支持动态宽度的列)\">\n 表头设置\n </nz-form-label>\n <nz-form-control nzSpan=\"14\">\n <axis-fun-field formControlName=\"showTableTitleSet\">\n <nz-switch ngModel [ngModelOptions]=\"{standalone:true}\"></nz-switch>\n </axis-fun-field>\n </nz-form-control>\n </nz-form-item>\n <nz-form-item>\n <nz-form-label nzSpan=\"10\" nzTooltipTitle=\"设置后才会缓存用户的表头设置\">\n 设置缓存Key\n </nz-form-label>\n <nz-form-control nzSpan=\"14\">\n <axis-fun-field formControlName=\"tableSetCacheKey\">\n <input nz-input placeholder=\"为空时不缓存\" ngModel [ngModelOptions]=\"{standalone:true}\" />\n </axis-fun-field>\n </nz-form-control>\n </nz-form-item>\n <nz-form-item>\n <nz-form-label nzSpan=\"10\" nzRequired>\n 表格数据\n </nz-form-label>\n <nz-form-control nzSpan=\"14\">\n <axis-fun-field formControlName=\"data\" #dataFunField>\n <ng-container [axisDynamic]=\"{component:'axis-components/input-json',inuse:true}\"\n [standalone]=\"true\" ngModel [ngModelOptions]=\"{standalone:true}\"></ng-container>\n </axis-fun-field>\n </nz-form-control>\n </nz-form-item>\n </nz-collapse-panel>\n <nz-collapse-panel nzHeader=\"外观设置\">\n <nz-form-item>\n <nz-form-label nzSpan=\"10\" nzRequired>\n 表格大小\n </nz-form-label>\n <nz-form-control nzSpan=\"14\">\n <axis-fun-field formControlName=\"size\">\n <nz-radio-group ngModel [ngModelOptions]=\"{standalone:true}\" nzSize=\"small\">\n <label nz-radio-button nzValue=\"small\">小</label>\n <label nz-radio-button nzValue=\"middle\">中</label>\n <label nz-radio-button nzValue=\"default\">大</label>\n </nz-radio-group>\n </axis-fun-field>\n </nz-form-control>\n </nz-form-item>\n <nz-form-item>\n <nz-form-label nzSpan=\"10\" nzRequired>\n 显示序号\n </nz-form-label>\n <nz-form-control nzSpan=\"14\">\n <axis-fun-field formControlName=\"showOrder\">\n <nz-switch ngModel [ngModelOptions]=\"{standalone:true}\"></nz-switch>\n </axis-fun-field>\n </nz-form-control>\n </nz-form-item>\n <nz-form-item>\n <nz-form-label nzSpan=\"10\" nzRequired nzTooltipTitle=\"开启后表格底部不会超出视窗底部\">\n 高度扩展\n </nz-form-label>\n <nz-form-control nzSpan=\"14\">\n <axis-fun-field formControlName=\"heightExpanded\">\n <nz-switch ngModel [ngModelOptions]=\"{standalone:true}\"></nz-switch>\n </axis-fun-field>\n </nz-form-control>\n </nz-form-item>\n <nz-form-item>\n <nz-form-label nzSpan=\"10\" nzRequired>\n 显示数据条数\n </nz-form-label>\n <nz-form-control nzSpan=\"14\">\n <axis-fun-field formControlName=\"showDataSize\">\n <nz-switch ngModel [ngModelOptions]=\"{standalone:true}\"></nz-switch>\n </axis-fun-field>\n </nz-form-control>\n </nz-form-item>\n <nz-form-item>\n <nz-form-label nzSpan=\"10\" nzRequired>\n 显示边框\n </nz-form-label>\n <nz-form-control nzSpan=\"14\">\n <axis-fun-field formControlName=\"bordered\">\n <nz-switch ngModel [ngModelOptions]=\"{standalone:true}\"></nz-switch>\n </axis-fun-field>\n </nz-form-control>\n </nz-form-item>\n <nz-form-item>\n <nz-form-label nzSpan=\"10\" nzRequired>\n 显示外边框\n </nz-form-label>\n <nz-form-control nzSpan=\"14\">\n <axis-fun-field formControlName=\"outerBordered\">\n <nz-switch ngModel [ngModelOptions]=\"{standalone:true}\"></nz-switch>\n </axis-fun-field>\n </nz-form-control>\n </nz-form-item>\n <nz-form-item>\n <nz-form-label nzSpan=\"10\" nzTooltipTitle=\"不设置时,自动计算滚动宽度,自动计算不合理时手动设置\">\n 表格滚动宽度\n </nz-form-label>\n <nz-form-control nzSpan=\"14\">\n <axis-fun-field formControlName=\"width\">\n <nz-input-number ngModel [ngModelOptions]=\"{standalone:true}\" style=\"width: 100%;\" [nzMin]=\"0\">\n <span nzInputAddonAfter>px</span>\n </nz-input-number>\n </axis-fun-field>\n </nz-form-control>\n </nz-form-item>\n <nz-form-item>\n <nz-form-label nzSpan=\"10\" nzTooltipTitle=\"不设置时,自动计算宽度,自动计算不合理时手动设置\">\n 操作列宽度\n </nz-form-label>\n <nz-form-control nzSpan=\"14\">\n <axis-fun-field formControlName=\"actionsFieldWidth\">\n <nz-input-number ngModel [ngModelOptions]=\"{standalone:true}\" style=\"width: 100%;\" [nzMin]=\"0\">\n <span nzInputAddonAfter>px</span>\n </nz-input-number>\n </axis-fun-field>\n </nz-form-control>\n </nz-form-item>\n </nz-collapse-panel>\n <nz-collapse-panel nzHeader=\"选择器设置\">\n <nz-form-item>\n <nz-form-label nzSpan=\"10\" nzRequired>\n 行选择器\n </nz-form-label>\n <nz-form-control nzSpan=\"14\">\n <axis-fun-field formControlName=\"showCheckbox\">\n <nz-switch ngModel [ngModelOptions]=\"{standalone:true}\"></nz-switch>\n </axis-fun-field>\n </nz-form-control>\n </nz-form-item>\n @if (formValue().showCheckbox?.funMode || formValue()?.showCheckbox?.originValue) {\n <nz-form-item>\n <nz-form-label nzSpan=\"10\" nzRequired>\n 单选\n </nz-form-label>\n <nz-form-control nzSpan=\"14\">\n <axis-fun-field formControlName=\"singleCheck\">\n <nz-switch ngModel [ngModelOptions]=\"{standalone:true}\"></nz-switch>\n </axis-fun-field>\n </nz-form-control>\n </nz-form-item>\n @if (formValue().singleCheck?.funMode || !formValue()?.singleCheck?.originValue) {\n <nz-form-item>\n <nz-form-label nzSpan=\"10\" nzRequired nzTooltipTitle=\"若当前表格在其他父表格的扩展行中,可联动父表格的勾选状态\">\n 联动勾选\n </nz-form-label>\n <nz-form-control nzSpan=\"14\">\n <nz-switch formControlName=\"checkboxLinkageForExpand\"></nz-switch>\n </nz-form-control>\n </nz-form-item>\n }\n <nz-form-item>\n <nz-form-label nzSpan=\"10\">\n 选择器禁用脚本\n </nz-form-label>\n <nz-form-control nzSpan=\"14\">\n <axis-fun-field formControlName=\"disableCheckboxFn\" [onlyFun]=\"true\" [noListen]=\"true\"\n [scopes]=\"rowScopes()\">\n </axis-fun-field>\n </nz-form-control>\n </nz-form-item>\n }\n </nz-collapse-panel>\n <nz-collapse-panel nzHeader=\"数据统计\">\n <nz-form-item>\n <nz-form-label nzSpan=\"10\" nzRequired>\n 启用统计\n </nz-form-label>\n <nz-form-control nzSpan=\"14\">\n <axis-fun-field formControlName=\"showStatistic\">\n <nz-switch ngModel [ngModelOptions]=\"{standalone:true}\"></nz-switch>\n </axis-fun-field>\n </nz-form-control>\n </nz-form-item>\n @if (formValue().showStatistic?.funMode || formValue()?.showStatistic?.originValue) {\n <nz-form-item>\n <nz-form-label nzSpan=\"10\">\n 统计标题\n </nz-form-label>\n <nz-form-control nzSpan=\"14\">\n <axis-fun-field formControlName=\"statisticTitle\">\n <input nz-input ngModel [ngModelOptions]=\"{standalone:true}\" />\n </axis-fun-field>\n </nz-form-control>\n </nz-form-item>\n }\n <!-- @if (!fg.value.useBackEndPaging) {\n <nz-form-item>\n <nz-form-label nzSpan=\"10\" nzRequired>\n 启用小计\n </nz-form-label>\n <nz-form-control nzSpan=\"14\">\n <axis-fun-field formControlName=\"showSubTotal\">\n <nz-switch ngModel [ngModelOptions]=\"{standalone:true}\"></nz-switch>\n </axis-fun-field>\n </nz-form-control>\n </nz-form-item>\n @if (formValue().showSubTotal?.funMode || formValue()?.showSubTotal?.originValue) {\n <nz-form-item>\n <nz-form-label nzSpan=\"10\">\n 小计标题\n </nz-form-label>\n <nz-form-control nzSpan=\"14\">\n <axis-fun-field formControlName=\"subTotalTitle\">\n <input nz-input ngModel [ngModelOptions]=\"{standalone:true}\" />\n </axis-fun-field>\n </nz-form-control>\n </nz-form-item>\n <nz-form-item>\n <nz-form-label nzSpan=\"10\" nzRequired>\n 小计分组级别\n </nz-form-label>\n <nz-form-control nzSpan=\"14\">\n <axis-fun-field formControlName=\"subTotalGroupLevel\">\n <nz-input-number style=\"width: 100%;\" ngModel [ngModelOptions]=\"{standalone:true}\" [nzMin]=\"1\">\n </nz-input-number>\n </axis-fun-field>\n </nz-form-control>\n </nz-form-item>\n }\n } -->\n </nz-collapse-panel>\n <nz-collapse-panel nzHeader=\"分页设置\">\n <nz-form-item>\n <nz-form-label nzSpan=\"10\" nzRequired>\n 是否分页\n </nz-form-label>\n <nz-form-control nzSpan=\"14\">\n <nz-switch formControlName=\"showPagination\"></nz-switch>\n </nz-form-control>\n </nz-form-item>\n @if (!formValue()?.showPagination) {\n <nz-form-item>\n <nz-form-label nzSpan=\"10\" nzRequired nzTooltipTitle=\"不分页时,用于加载大量的数据\">\n 虚拟滚动\n </nz-form-label>\n <nz-form-control nzSpan=\"14\">\n <nz-switch formControlName=\"virtualScroll\"></nz-switch>\n (未实现)\n </nz-form-control>\n </nz-form-item>\n @if (formValue()?.virtualScroll) {\n <nz-form-item>\n <nz-form-label nzSpan=\"10\" nzRequired nzTooltipTitle=\"每一行的高度\">\n 计算行高\n </nz-form-label>\n <nz-form-control nzSpan=\"14\">\n <nz-input-number formControlName=\"virtualItemSize\"></nz-input-number>\n </nz-form-control>\n </nz-form-item>\n }\n }@else {\n <nz-form-item>\n <nz-form-label nzSpan=\"10\" nzRequired>\n 默认行数\n </nz-form-label>\n <nz-form-control nzSpan=\"14\">\n <axis-fun-field formControlName=\"pageSize\">\n <nz-input-number style=\"width: 100%;\" ngModel [ngModelOptions]=\"{standalone:true}\" [nzMin]=\"1\">\n </nz-input-number>\n </axis-fun-field>\n </nz-form-control>\n </nz-form-item>\n <nz-form-item>\n <nz-form-label nzSpan=\"10\" nzRequired>\n 行数修改器\n </nz-form-label>\n <nz-form-control nzSpan=\"14\">\n <axis-fun-field formControlName=\"showSizeChanger\">\n <nz-switch ngModel [ngModelOptions]=\"{standalone:true}\"></nz-switch>\n </axis-fun-field>\n </nz-form-control>\n </nz-form-item>\n @if (formValue().showSizeChanger?.funMode || formValue()?.showSizeChanger?.originValue) {\n <nz-form-item>\n <nz-form-label nzSpan=\"10\" nzRequired nzTooltipTitle=\"用逗号分隔,例:10,20,50,100\">\n 页数可选值\n </nz-form-label>\n <nz-form-control nzSpan=\"14\">\n <input nz-input formControlName=\"pageSizeOptions\" placeholder=\"例:10,20,50,100\" />\n </nz-form-control>\n </nz-form-item>\n }\n <nz-form-item>\n <nz-form-label nzSpan=\"10\" nzRequired>\n 是否后端分页\n </nz-form-label>\n <nz-form-control nzSpan=\"14\">\n <nz-switch formControlName=\"useBackEndPaging\"></nz-switch>\n </nz-form-control>\n </nz-form-item>\n }\n </nz-collapse-panel>\n <nz-collapse-panel nzHeader=\"导入导出(未实现)\">\n <nz-form-item>\n <nz-form-label nzSpan=\"10\">\n 导出文件名\n </nz-form-label>\n <nz-form-control nzSpan=\"14\">\n <axis-fun-field formControlName=\"exportFileName\">\n <nz-input-group [nzSuffix]=\"'.'+formValue().exportBookType?.originValue\">\n <input nz-input ngModel [ngModelOptions]=\"{standalone:true}\" />\n </nz-input-group>\n </axis-fun-field>\n </nz-form-control>\n </nz-form-item>\n <nz-form-item>\n <nz-form-label nzSpan=\"10\" nzRequired>\n 文件类型\n </nz-form-label>\n <nz-form-control nzSpan=\"14\">\n <axis-fun-field [noListen]=\"true\" formControlName=\"exportBookType\">\n <nz-select ngModel [ngModelOptions]=\"{standalone:true}\">\n <nz-option nzValue=\"xlsx\" nzLabel=\"xlsx\"></nz-option>\n <nz-option nzValue=\"xls\" nzLabel=\"xls\"></nz-option>\n </nz-select>\n </axis-fun-field>\n </nz-form-control>\n </nz-form-item>\n <nz-form-item>\n <nz-form-label nzSpan=\"10\">\n 分批导入限制\n </nz-form-label>\n <nz-form-control nzSpan=\"14\">\n <axis-fun-field formControlName=\"importLimitLength\">\n <nz-input-number style=\"width: 100%;\" ngModel [ngModelOptions]=\"{standalone:true}\"\n nzPlaceHolder=\"默认不限\"></nz-input-number>\n </axis-fun-field>\n </nz-form-control>\n </nz-form-item>\n <nz-form-item>\n <nz-form-label nzSpan=\"10\" nzRequired>\n 导入起始行\n </nz-form-label>\n <nz-form-control nzSpan=\"14\">\n <axis-fun-field formControlName=\"importStartLine\">\n <nz-input-number style=\"width: 100%;\" ngModel\n [ngModelOptions]=\"{standalone:true}\"></nz-input-number>\n </axis-fun-field>\n </nz-form-control>\n </nz-form-item>\n <nz-form-item>\n <nz-form-label nzSpan=\"10\">\n 导入模版文件名\n </nz-form-label>\n <nz-form-control nzSpan=\"14\">\n <axis-fun-field formControlName=\"importTemplateFileName\">\n <nz-input-group nzSuffix=\".xlsx\">\n <input nz-input ngModel [ngModelOptions]=\"{standalone:true}\" />\n </nz-input-group>\n </axis-fun-field>\n </nz-form-control>\n </nz-form-item>\n <nz-form-item>\n <nz-form-label nzSpan=\"10\">\n 示例数据\n </nz-form-label>\n <nz-form-control nzSpan=\"14\">\n <axis-fun-field formControlName=\"importExampleData\">\n <ng-container ngModel [ngModelOptions]=\"{standalone:true}\"\n [axisDynamic]=\"{component:'axis-components/input-json',inuse:true}\"\n [standalone]=\"true\"></ng-container>\n </axis-fun-field>\n </nz-form-control>\n </nz-form-item>\n </nz-collapse-panel>\n <axis-base-design-setting [fg]=\"fg\"></axis-base-design-setting>\n <axis-input-trigger formControlName=\"triggeEvents\" [eventDesc]=\"eventDesc()\"></axis-input-trigger>\n </nz-collapse>\n</form>","import { TableFieldSetting } from \"./table-field-setting/table-field-setting\";\nimport { TableFieldsMenu } from \"./table-fields-menu/table-fields-menu\";\nimport { TableSetting } from \"./table-setting/table-setting\";\nimport { DesignConfig, NextInfo, DesignBuildResult, OptionsNode, DesignBindElementsResult, SimpleMenu } from 'ngx-axis-appforge/core';\n\nexport const Config: DesignConfig = {\n\n componentName: \"表格\",\n buildOptionsNodes(nextInfo: NextInfo): DesignBuildResult {\n const next: NextInfo[] = [];\n const fieldsChildren: OptionsNode[] = [];\n const fieldsNode = new OptionsNode({\n id: nextInfo.currentObject.id + \".fields\",\n parentId: nextInfo.currentObject.id,\n parentObj: nextInfo.currentObject,\n indexOfParentObj: \"fields\",\n scopeId: nextInfo.scopeId,\n rootOptions: nextInfo.currentObject.fields,\n contextMenu: TableFieldsMenu,\n name: `表格列[${nextInfo.currentObject.fields?.length ?? 0}]`,\n canDrop: true,\n dropType: \"axis-components/table/table-field\",\n dropObj: nextInfo.currentObject.fields,\n defaultDropIndex: nextInfo.currentObject.fields?.length ?? 0,\n childDirection: 'horizontal',\n icon: \"project\",\n children: fieldsChildren\n });\n nextInfo.currentObject.fields?.forEach((f: any, i: number) => {\n next.push({\n parentId: fieldsNode.id + \".\" + f.field,\n parentObject: f,\n indexOfParent: \"child\",\n scopeId: nextInfo.currentObject.id + \".row\"\n });\n fieldsChildren.push(new OptionsNode({\n id: fieldsNode.id + \".\" + f.field,\n updateId: (options) => fieldsNode.id + \".\" + options.field,\n scopeId: fieldsNode.scopeId,\n parentId: fieldsNode.id,\n parentObj: fieldsNode.options,\n indexOfParentObj: i,\n rootOptions: f,\n name: `字段[${f.field}]`,\n icon: \"profile\",\n canSetting: true,\n settingType: TableFieldSetting,\n contextMenu: SimpleMenu,\n canDrag: true,\n dragType: \"axis-components/table/table-field\",\n canDrop: true,\n dropType: \"component\",\n dropObj: f,\n defaultDropIndex: \"child\",\n children: []\n }));\n });\n const rowActionsNode = new OptionsNode({\n id: nextInfo.currentObject.id + \".rowActions\",\n parentId: nextInfo.currentObject.id,\n parentObj: nextInfo.currentObject,\n indexOfParentObj: \"rowActions\",\n scopeId: nextInfo.scopeId,\n rootOptions: nextInfo.currentObject.rowActions,\n name: `操作列[${nextInfo.currentObject.rowActions?.length ?? 0}]`,\n contextMenu: SimpleMenu,\n canDrop: true,\n dropType: \"component\",\n dropObj: nextInfo.currentObject.rowActions,\n defaultDropIndex: nextInfo.currentObject.rowActions?.length ?? 0,\n childDirection: 'horizontal',\n icon: \"control\",\n children: []\n });\n next.push({\n parentId: rowActionsNode.id,\n parentObject: rowActionsNode.options,\n scopeId: nextInfo.currentObject.id + \".row\"\n });\n const expandNode = new OptionsNode({\n id: nextInfo.currentObject.id + \".expandRow\",\n parentId: nextInfo.currentObject.id,\n parentObj: nextInfo.currentObject,\n indexOfParentObj: \"expandRow\",\n scopeId: nextInfo.scopeId,\n rootOptions: nextInfo.currentObject,\n name: \"扩展行\",\n contextMenu: SimpleMenu,\n canDrop: true,\n dropType: \"component\",\n dropObj: nextInfo.currentObject,\n defaultDropIndex: \"expandRow\",\n icon: \"control\",\n children: []\n });\n next.push({\n parentId: expandNode.id,\n parentObject: nextInfo.currentObject,\n indexOfParent: \"expandRow\",\n scopeId: nextInfo.currentObject.id + \".row\"\n });\n return {\n treeNode: new OptionsNode({\n parentId: nextInfo.parentId,\n scopeId: nextInfo.scopeId,\n name: \"表格\",\n canSetting: true,\n canDrag: true,\n dragType: \"component\",\n parentObj: nextInfo.parentObject,\n indexOfParentObj: nextInfo.indexOfParent,\n rootOptions: nextInfo.currentObject,\n settingType: TableSetting,\n contextMenu: SimpleMenu,\n icon: \"table\",\n children: [\n fieldsNode,\n rowActionsNode,\n expandNode\n ],\n }),\n next: next,\n newScopes: [\n {\n scopeId: nextInfo.currentObject.id + \".row\",\n parentScopeId: nextInfo.scopeId,\n scopeName: \"表格行\",\n ds: {\n row: nextInfo.currentObject.data?.[0] ?? \"示例数据\"\n }\n }\n ]\n };\n },\n bindElementsOptionsNode(element: HTMLElement, options: any): DesignBindElementsResult {\n const fieldsParent = element.querySelector(\"thead>.ant-table-row\") as HTMLElement | undefined;\n const res: DesignBindElementsResult = {\n [options.id]: { element },\n [`${options.id}.fields`]: { element: fieldsParent, dropElement: fieldsParent },\n };\n (options.fields as any[] | undefined)?.forEach((f) => {\n const fieldElement = fieldsParent?.querySelector(`th[data-field=\"${f.field}\"]`) as HTMLElement | undefined;\n const fieldChildElement = element?.querySelector(`td[data-field=\"${f.field}\"]`) as HTMLElement | undefined;\n res[`${options.id}.fields.${f.field}`] = { element: fieldElement, dropElement: fieldChildElement }\n });\n const rowActionsElement = fieldsParent?.querySelector(\"th[data-rowactions]\") as HTMLElement | undefined;\n const rowActionsChildElement = element.querySelector(\"td>div[data-rowactions]\") as HTMLElement | undefined;\n res[`${options.id}.rowActions`] = { element: rowActionsElement, dropElement: rowActionsChildElement };\n const expandRowElement = element.querySelector(\"tr[data-expandrow]\") as HTMLElement | undefined;\n res[`${options.id}.expandRow`] = { element: expandRowElement, dropElement: expandRowElement };\n return res;\n },\n};\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './config';\n"],"names":["i5","i1","i2","i4","i3","i7","i8","i10"],"mappings":"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"}
@@ -104,6 +104,15 @@ class TableService {
104
104
  this.refreshFieldControls();
105
105
  }
106
106
  });
107
+ effect(() => {
108
+ if (this.ready() && this.useBackEndPaging() && this.data()) {
109
+ this.pageIndex.set(this.data().page_index + 1);
110
+ if (this.data()?.query_total) {
111
+ this.rowtotal.set(this.data().total);
112
+ }
113
+ this.addCursorMark();
114
+ }
115
+ });
107
116
  }
108
117
  ready = signal(false, ...(ngDevMode ? [{ debugName: "ready" }] : []));
109
118
  data;
@@ -111,6 +120,10 @@ class TableService {
111
120
  fields;
112
121
  getRow;
113
122
  cacheFilterItem;
123
+ useBackEndPaging = computed(() => this.options.showPagination() && this.options.useBackEndPaging(), ...(ngDevMode ? [{ debugName: "useBackEndPaging" }] : []));
124
+ rows = computed(() => this.useBackEndPaging() ? this.data()?.rows : this.data(), ...(ngDevMode ? [{ debugName: "rows" }] : []));
125
+ pageIndex = signal(1, ...(ngDevMode ? [{ debugName: "pageIndex" }] : []));
126
+ rowtotal = signal(0, ...(ngDevMode ? [{ debugName: "rowtotal" }] : []));
114
127
  displayFields = computed(() => {
115
128
  if (!this.ready()) {
116
129
  return [];
@@ -121,6 +134,8 @@ class TableService {
121
134
  filedsFilterItemsCache = new Map();
122
135
  leaderFieldWidth = computed(() => this.buildLeaderFieldWidth(), ...(ngDevMode ? [{ debugName: "leaderFieldWidth" }] : []));
123
136
  pageSizeOptions = computed(() => this.options.pageSizeOptions().split(",").map(size => +size), ...(ngDevMode ? [{ debugName: "pageSizeOptions" }] : []));
137
+ pageCursorMarks = new Map();
138
+ pageCursorMarkIndexs = [];
124
139
  init(opts) {
125
140
  this.data = opts.data;
126
141
  this.options = opts.options;
@@ -145,12 +160,12 @@ class TableService {
145
160
  continue;
146
161
  }
147
162
  res[field.field()] = {};
148
- if (field.filterAble()) {
163
+ if (!this.options.useBackEndPaging() && field.filterAble()) {
149
164
  if (!this.filedsFilterItemsCache.has(field.field())) {
150
165
  this.filedsFilterItemsCache.set(field.field(), new Map());
151
166
  }
152
167
  const filterItemsCache = this.filedsFilterItemsCache.get(field.field());
153
- for (let row of this.data() ?? []) {
168
+ for (let row of this.rows() ?? []) {
154
169
  if (this.getRow) {
155
170
  row = this.getRow(row);
156
171
  }
@@ -173,23 +188,28 @@ class TableService {
173
188
  };
174
189
  }
175
190
  if (field.sortAble()) {
176
- if (this.data()?.map(row => this.getRow ? this.getRow(row) : row).some((row) => row[field.field()] != undefined && typeof (row[field.field()]) == "number")) {
177
- res[field.field()].sortFn = (a, b) => {
178
- if (this.getRow) {
179
- a = this.getRow(a);
180
- b = this.getRow(b);
181
- }
182
- return a[field.field()] - b[field.field()];
183
- };
191
+ if (this.useBackEndPaging()) {
192
+ res[field.field()].sortFn = true;
184
193
  }
185
194
  else {
186
- res[field.field()].sortFn = (a, b) => {
187
- if (this.getRow) {
188
- a = this.getRow(a);
189
- b = this.getRow(b);
190
- }
191
- return ((a[field.field()] || "") + "").localeCompare(b[field.field()]);
192
- };
195
+ if (this.rows()?.map(row => this.getRow ? this.getRow(row) : row).some((row) => row[field.field()] != undefined && typeof (row[field.field()]) == "number")) {
196
+ res[field.field()].sortFn = (a, b) => {
197
+ if (this.getRow) {
198
+ a = this.getRow(a);
199
+ b = this.getRow(b);
200
+ }
201
+ return a[field.field()] - b[field.field()];
202
+ };
203
+ }
204
+ else {
205
+ res[field.field()].sortFn = (a, b) => {
206
+ if (this.getRow) {
207
+ a = this.getRow(a);
208
+ b = this.getRow(b);
209
+ }
210
+ return ((a[field.field()] || "") + "").localeCompare(b[field.field()]);
211
+ };
212
+ }
193
213
  }
194
214
  }
195
215
  }
@@ -221,6 +241,73 @@ class TableService {
221
241
  return 65;
222
242
  }
223
243
  }
244
+ addCursorMark() {
245
+ const { cursor_mark } = this.data();
246
+ if (cursor_mark) {
247
+ const { page_index } = cursor_mark;
248
+ if (!this.pageCursorMarks.has(page_index)) {
249
+ const i = this.pageCursorMarkIndexs.findIndex(i => i > page_index);
250
+ if (i == -1) {
251
+ this.pageCursorMarkIndexs.push(page_index);
252
+ }
253
+ else if (this.pageCursorMarkIndexs[i] > page_index) {
254
+ this.pageCursorMarkIndexs.splice(i, 0, page_index);
255
+ }
256
+ }
257
+ this.pageCursorMarks.set(page_index, cursor_mark);
258
+ }
259
+ }
260
+ getNearestCursorMark() {
261
+ if (this.pageCursorMarkIndexs.length == 0) {
262
+ return null;
263
+ }
264
+ const pageIndex = this.pageIndex() - 1;
265
+ const index = this.pageCursorMarkIndexs.findIndex(i => i >= pageIndex);
266
+ let leftIndex, rightIndex;
267
+ if (index == -1) {
268
+ leftIndex = this.pageCursorMarkIndexs.length - 1;
269
+ }
270
+ else if (this.pageCursorMarkIndexs[index] == pageIndex) {
271
+ leftIndex = index - 1;
272
+ rightIndex = index + 1;
273
+ }
274
+ else {
275
+ leftIndex = index - 1;
276
+ rightIndex = index;
277
+ }
278
+ const left = leftIndex != undefined ? this.pageCursorMarkIndexs[leftIndex] : undefined;
279
+ const right = rightIndex != undefined ? this.pageCursorMarkIndexs[rightIndex] : undefined;
280
+ let nearstIndex;
281
+ if (left != undefined && right != undefined) {
282
+ nearstIndex = pageIndex - left <= right - pageIndex ? left : right;
283
+ }
284
+ else if (left != undefined) {
285
+ nearstIndex = left;
286
+ }
287
+ else if (right != undefined) {
288
+ nearstIndex = right;
289
+ }
290
+ else {
291
+ return null;
292
+ }
293
+ return this.pageCursorMarks.get(nearstIndex);
294
+ }
295
+ clearCursorMarks() {
296
+ this.pageCursorMarkIndexs = [];
297
+ this.pageCursorMarks.clear();
298
+ }
299
+ get backEndPageParams() {
300
+ return {
301
+ use_page: true,
302
+ page_index: this.pageIndex() - 1,
303
+ page_size: this.options.pageSize(),
304
+ cursor_mark: this.getNearestCursorMark(),
305
+ order_by: this.displayFields().filter(f => f.sortAble() && f.sortOrder() != null).map(f => ({
306
+ column: f.field(),
307
+ desc_order: f.sortOrder() == "descend"
308
+ }))
309
+ };
310
+ }
224
311
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.4", ngImport: i0, type: TableService, deps: [{ token: TableFieldDisplayService }], target: i0.ɵɵFactoryTarget.Injectable });
225
312
  static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.4", ngImport: i0, type: TableService });
226
313
  }