ngx-axis-appforge 0.0.39 → 0.0.41

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.
Files changed (26) hide show
  1. package/axis-components/select/index.d.ts +8 -3
  2. package/axis-components/timer/design/index.d.ts +5 -0
  3. package/axis-components/timer/index.d.ts +22 -0
  4. package/axis-components/transfer/design/index.d.ts +5 -0
  5. package/axis-components/transfer/index.d.ts +114 -0
  6. package/axis-components-covers/timer.svg +1 -0
  7. package/axis-components-covers/transfer.svg +86 -0
  8. package/fesm2022/ngx-axis-appforge-axis-components-checkbox.mjs +2 -2
  9. package/fesm2022/ngx-axis-appforge-axis-components-checkbox.mjs.map +1 -1
  10. package/fesm2022/ngx-axis-appforge-axis-components-select-design.mjs +2 -2
  11. package/fesm2022/ngx-axis-appforge-axis-components-select-design.mjs.map +1 -1
  12. package/fesm2022/ngx-axis-appforge-axis-components-select.mjs +76 -73
  13. package/fesm2022/ngx-axis-appforge-axis-components-select.mjs.map +1 -1
  14. package/fesm2022/ngx-axis-appforge-axis-components-timer-design.mjs +69 -0
  15. package/fesm2022/ngx-axis-appforge-axis-components-timer-design.mjs.map +1 -0
  16. package/fesm2022/ngx-axis-appforge-axis-components-timer.mjs +59 -0
  17. package/fesm2022/ngx-axis-appforge-axis-components-timer.mjs.map +1 -0
  18. package/fesm2022/ngx-axis-appforge-axis-components-transfer-design.mjs +360 -0
  19. package/fesm2022/ngx-axis-appforge-axis-components-transfer-design.mjs.map +1 -0
  20. package/fesm2022/ngx-axis-appforge-axis-components-transfer.mjs +304 -0
  21. package/fesm2022/ngx-axis-appforge-axis-components-transfer.mjs.map +1 -0
  22. package/fesm2022/ngx-axis-appforge-axis-components-tree-selector.mjs +2 -2
  23. package/fesm2022/ngx-axis-appforge-axis-components-tree-selector.mjs.map +1 -1
  24. package/fesm2022/ngx-axis-appforge-axis-components.mjs +47 -0
  25. package/fesm2022/ngx-axis-appforge-axis-components.mjs.map +1 -1
  26. package/package.json +97 -81
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ngx-axis-appforge-axis-components-transfer-design.mjs","sources":["../../../axis-components/transfer/design/setting/setting.ts","../../../axis-components/transfer/design/setting/setting.html","../../../axis-components/transfer/design/transfer-table-fields-menu/transfer-table-fields-menu.ts","../../../axis-components/transfer/design/transfer-table-fields-menu/transfer-table-fields-menu.html","../../../axis-components/transfer/design/transfer-table-field-setting/transfer-table-field-setting.ts","../../../axis-components/transfer/design/transfer-table-field-setting/transfer-table-field-setting.html","../../../axis-components/transfer/design/config.ts","../../../axis-components/transfer/design/ngx-axis-appforge-axis-components-transfer-design.ts"],"sourcesContent":["import { ChangeDetectionStrategy, Component, computed, ViewChild } 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 { BaseDesignSetting, baseFbConfig, baseFunField, DynamicDirective, FormValidators, FunField, FunFieldOptions, FunFieldValueBase, InputTrigger, ValueDesignSetting, valueFbConfig, valueFunField } from 'ngx-axis-appforge/core';\n\n@Component({\n selector: 'axis-design-single-selector-setting',\n imports: [FormsModule, NzCollapseModule, ReactiveFormsModule, NzFormModule, BaseDesignSetting, ValueDesignSetting, NzAutocompleteModule, NzInputModule, NzSelectModule, FunField, DynamicDirective, NzSwitchModule, InputTrigger, NzInputNumberModule, NzRadioModule, NzSelectModule],\n templateUrl: './setting.html',\n styleUrl: './setting.css',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class Setting extends FunFieldValueBase {\n\n override fg: UntypedFormGroup = this.fb.group({\n ...baseFbConfig,\n ...valueFbConfig,\n labelField: [\"title\", FormValidators.required],\n valueField: [\"key\", FormValidators.required],\n disabledField: [\"disabled\", FormValidators.required],\n fullValue: [false, FormValidators.required],\n allowInvalidValue: [false, FormValidators.required],\n data: [],\n type: ['normal', FormValidators.required],\n modalTitle: [],\n titles: [],\n operations: [],\n itemUnits: [],\n selectAll: [undefined, FormValidators.requiredFun],\n showSearch: [undefined, FormValidators.requiredFun],\n searchPlaceholder: [],\n notFoundContent: [],\n oneWay: [undefined, FormValidators.requiredFun],\n allowClear: [undefined, FormValidators.requiredFun],\n placeholder: [],\n variant: [undefined, FormValidators.requiredFun],\n size: [undefined, FormValidators.requiredFun],\n maxTagCount: [],\n tableSize: [undefined, FormValidators.requiredFun],\n showOrder: [undefined, FormValidators.requiredFun],\n showDataSize: [undefined, FormValidators.requiredFun],\n bordered: [undefined, FormValidators.requiredFun],\n outerBordered: [undefined, FormValidators.requiredFun],\n tableWidth: [],\n showPagination: [true, 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 });\n\n protected override funFields: FunFieldOptions = {\n ...baseFunField,\n ...valueFunField,\n data: {\n defaultValue: undefined\n },\n modalTitle: {\n defaultValue: '请选择'\n },\n titles: {\n defaultValue: '待选,已选'\n },\n operations: {\n defaultValue: ''\n },\n itemUnits: {\n defaultValue: '项'\n },\n selectAll: {\n defaultValue: true\n },\n showSearch: {\n defaultValue: false\n },\n searchPlaceholder: {\n defaultValue: '请输入搜索内容'\n },\n notFoundContent: {\n defaultValue: '列表为空'\n },\n oneWay: {\n defaultValue: false\n },\n allowClear: {\n defaultValue: true\n },\n placeholder: {\n defaultValue: \"\"\n },\n variant: {\n defaultValue: \"outlined\"\n },\n size: {\n defaultValue: \"default\"\n },\n maxTagCount: {\n defaultValue: undefined\n },\n tableSize: {\n defaultValue: \"middle\"\n },\n showOrder: {\n defaultValue: true\n },\n showDataSize: {\n defaultValue: true\n },\n bordered: {\n defaultValue: false\n },\n outerBordered: {\n defaultValue: false\n },\n tableWidth: {\n defaultValue: null\n },\n pageSize: {\n defaultValue: 10\n },\n showSizeChanger: {\n defaultValue: true\n },\n };\n\n @ViewChild(\"data\", { static: true })\n dataFunField!: FunField;\n\n fields = computed(() => {\n if (this.dataFunField.computeResult()?.length) {\n return Object.keys(this.dataFunField.computeResult()[0]);\n }\n return [];\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=\"8\" nzRequired>\n 值字段\n </nz-form-label>\n <nz-form-control nzSpan=\"16\">\n <input nz-input formControlName=\"valueField\" [nzAutocomplete]=\"fieldAuto\" />\n </nz-form-control>\n </nz-form-item>\n <nz-form-item>\n <nz-form-label nzSpan=\"8\" nzRequired>\n 名称字段\n </nz-form-label>\n <nz-form-control nzSpan=\"16\">\n <input nz-input formControlName=\"labelField\" [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=\"8\" nzRequired>\n 完整对象值\n </nz-form-label>\n <nz-form-control nzSpan=\"16\">\n <nz-switch formControlName=\"fullValue\"></nz-switch>\n </nz-form-control>\n </nz-form-item>\n <nz-form-item>\n <nz-form-label nzSpan=\"8\" nzRequired>\n 允许无效值\n </nz-form-label>\n <nz-form-control nzSpan=\"16\">\n <nz-switch formControlName=\"allowInvalidValue\"></nz-switch>\n </nz-form-control>\n </nz-form-item>\n <nz-form-item>\n <nz-form-label nzSpan=\"8\" nzRequired>\n 选项数据\n </nz-form-label>\n <nz-form-control nzSpan=\"16\">\n <axis-fun-field #data formControlName=\"data\">\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=\"8\" nzRequired>\n 类型\n </nz-form-label>\n <nz-form-control nzSpan=\"16\">\n <nz-select formControlName=\"type\">\n <nz-option nzValue=\"normal\" nzLabel=\"普通\"></nz-option>\n <nz-option nzValue=\"table\" nzLabel=\"表格\"></nz-option>\n </nz-select>\n </nz-form-control>\n </nz-form-item>\n @if (formValue()?.type != \"table\") {\n <nz-form-item>\n <nz-form-label nzSpan=\"8\" nzRequired>\n 单向模式\n </nz-form-label>\n <nz-form-control nzSpan=\"16\">\n <axis-fun-field formControlName=\"oneWay\">\n <nz-switch ngModel [ngModelOptions]=\"{standalone:true}\"></nz-switch>\n </axis-fun-field>\n </nz-form-control>\n </nz-form-item>\n }\n <nz-form-item>\n <nz-form-label nzSpan=\"8\">\n 弹窗标题\n </nz-form-label>\n <nz-form-control nzSpan=\"16\">\n <axis-fun-field formControlName=\"modalTitle\">\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=\"8\" nzTooltipTitle=\"可通过逗号分隔设置左右两侧的标题\">\n 穿梭框标题\n </nz-form-label>\n <nz-form-control nzSpan=\"16\">\n <axis-fun-field formControlName=\"titles\">\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=\"8\" nzTooltipTitle=\"可通过逗号分隔设置两个方向的操作标题\">\n 操作标题\n </nz-form-label>\n <nz-form-control nzSpan=\"16\">\n <axis-fun-field formControlName=\"operations\">\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=\"8\" nzTooltipTitle=\"可通过逗号分隔设置单数和复数的显示单位\">\n 显示单位\n </nz-form-label>\n <nz-form-control nzSpan=\"16\">\n <axis-fun-field formControlName=\"itemUnits\">\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=\"8\" nzRequired>\n 全选\n </nz-form-label>\n <nz-form-control nzSpan=\"16\">\n <axis-fun-field formControlName=\"selectAll\">\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=\"8\">\n 空列表占位符\n </nz-form-label>\n <nz-form-control nzSpan=\"16\">\n <axis-fun-field formControlName=\"notFoundContent\">\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=\"8\" nzRequired>\n 搜索\n </nz-form-label>\n <nz-form-control nzSpan=\"16\">\n <axis-fun-field formControlName=\"showSearch\">\n <nz-switch ngModel [ngModelOptions]=\"{standalone:true}\"></nz-switch>\n </axis-fun-field>\n </nz-form-control>\n </nz-form-item>\n @if(formValue()?.showSearch.funMode || formValue()?.showSearch.originValue){\n <nz-form-item>\n <nz-form-label nzSpan=\"8\">\n 搜索占位符\n </nz-form-label>\n <nz-form-control nzSpan=\"16\">\n <axis-fun-field formControlName=\"searchPlaceholder\">\n <input nz-input ngModel [ngModelOptions]=\"{standalone:true}\" />\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=\"8\" nzRequired>\n 形态变体\n </nz-form-label>\n <nz-form-control nzSpan=\"16\">\n <axis-fun-field formControlName=\"variant\">\n <nz-select ngModel [ngModelOptions]=\"{standalone:true}\">\n <nz-option nzValue=\"outlined\" nzLabel=\"外边框\"></nz-option>\n <nz-option nzValue=\"borderless\" nzLabel=\"无边框\"></nz-option>\n <nz-option nzValue=\"filled\" nzLabel=\"填充\"></nz-option>\n <nz-option nzValue=\"underlined\" 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=\"8\" nzRequired>\n 大小\n </nz-form-label>\n <nz-form-control nzSpan=\"16\">\n <axis-fun-field formControlName=\"size\">\n <nz-radio-group ngModel [ngModelOptions]=\"{standalone:true}\" nzSize=\"small\">\n <label nz-radio-button nzValue=\"large\">大</label>\n <label nz-radio-button nzValue=\"default\">中</label>\n <label nz-radio-button nzValue=\"small\">小</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=\"8\" nzRequired>\n 允许清空\n </nz-form-label>\n <nz-form-control nzSpan=\"16\">\n <axis-fun-field formControlName=\"allowClear\">\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=\"8\">\n 占位符\n </nz-form-label>\n <nz-form-control nzSpan=\"16\">\n <axis-fun-field formControlName=\"placeholder\">\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=\"8\">\n 可见标签数\n </nz-form-label>\n <nz-form-control nzSpan=\"16\">\n <axis-fun-field formControlName=\"maxTagCount\">\n <nz-input-number style=\"width: 100%;\" [nzMin]=\"1\" ngModel\n [ngModelOptions]=\"{standalone:true}\"></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=\"tableSize\">\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>\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=\"tableWidth\">\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 <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>\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 }\n </nz-collapse-panel>\n <axis-value-design-setting [fg]=\"fg\"></axis-value-design-setting>\n <axis-base-design-setting [fg]=\"fg\"></axis-base-design-setting>\n <axis-input-trigger formControlName=\"triggeEvents\" [internalTriggers]=\"['valueChange']\"></axis-input-trigger>\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-transfer-table-fields-menu',\n imports: [NzDropDownModule, NzDividerModule, NzIconModule],\n templateUrl: './transfer-table-fields-menu.html',\n styleUrl: './transfer-table-fields-menu.css',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class TransferTableFieldsMenu 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, 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@Component({\n selector: 'axis-design-transfer-table-field-setting',\n imports: [FormsModule, NzFormModule, ReactiveFormsModule, NzCollapseModule, NzInputModule, FunField, NzRadioModule, NzSelectModule, NzInputNumberModule, NzSwitchModule, NzAutocompleteModule],\n templateUrl: './transfer-table-field-setting.html',\n styleUrl: './transfer-table-field-setting.css',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class TransferTableFieldSetting 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 sortAble: [undefined, FormValidators.requiredFun],\n sortOrder: [],\n sortPriority: [],\n filterAble: [undefined, FormValidators.requiredFun],\n filterMultiple: [undefined, FormValidators.requiredFun],\n filterDisplayFn: [],\n width: [],\n align: [undefined, FormValidators.requiredFun],\n freezeMode: [undefined, FormValidators.requiredFun],\n });\n\n protected override funFields: FunFieldOptions = {\n inuse: {\n defaultValue: true\n },\n title: {\n defaultValue: \"未命名\"\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 };\n\n readonly elementRef = inject(AXIS_DESIGN_COMPONENT_REF_FOR_SETTING_TOKEN);\n\n filterFnScopes = computed<ScopeInfo[]>(() => {\n const data = (this.elementRef.ref?.instance.options as any)?.data();\n return [{\n scopeId: this.elementRef.options.id + '.filter.' + this.formValue().field,\n scopeName: \"过滤项\",\n ds: {\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-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 <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=\"filterDisplayFn\" [scopes]=\"filterFnScopes()\" [onlyFun]=\"true\"\n [noListen]=\"true\">\n </axis-fun-field>\n </nz-form-control>\n </nz-form-item>\n }\n </nz-collapse-panel>\n </nz-collapse>\n</form>","import { NextInfo, DesignBuildResult, DesignBindElementsResult, DesignConfig, OptionsNode, SimpleMenu } from \"ngx-axis-appforge/core\";\nimport { Setting } from \"./setting/setting\";\nimport { TransferTableFieldsMenu } from \"./transfer-table-fields-menu/transfer-table-fields-menu\";\nimport { TransferTableFieldSetting } from \"./transfer-table-field-setting/transfer-table-field-setting\";\n\nexport const Config: DesignConfig = {\n\n componentName: \"穿梭框\",\n buildOptionsNodes(nextInfo: NextInfo): DesignBuildResult {\n const next: NextInfo[] = [];\n const headerNode = new OptionsNode({\n id: nextInfo.currentObject.id + \".header\",\n parentId: nextInfo.currentObject.id,\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: \"header\",\n icon: \"control\",\n children: []\n });\n next.push({\n parentId: headerNode.id,\n parentObject: nextInfo.currentObject,\n indexOfParent: \"header\",\n scopeId: nextInfo.scopeId\n });\n const fieldsChildren: OptionsNode[] = [];\n const fieldsNode = new OptionsNode({\n id: nextInfo.currentObject.id + \".fields\",\n parentId: nextInfo.currentObject.id,\n scopeId: nextInfo.scopeId,\n rootOptions: nextInfo.currentObject.fields,\n contextMenu: TransferTableFieldsMenu,\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: TransferTableFieldSetting,\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 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: Setting,\n contextMenu: SimpleMenu,\n icon: \"interaction\",\n children: [\n headerNode,\n fieldsNode,\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 return {\n [options.id]: { element },\n }\n },\n};\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './config';\n"],"names":["i1","i2","i4","i3","i5","i7","i9"],"mappings":"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"}
@@ -0,0 +1,304 @@
1
+ import * as i0 from '@angular/core';
2
+ import { signal, effect, untracked, computed, model, ChangeDetectionStrategy, Component } from '@angular/core';
3
+ import { ValueAccessOptions, ValueAccess, DynamicDirective, ScopeDirective } from 'ngx-axis-appforge/core';
4
+ import * as i1 from '@angular/forms';
5
+ import { FormsModule } from '@angular/forms';
6
+ import * as i2 from 'ng-zorro-antd/transfer';
7
+ import { NzTransferModule } from 'ng-zorro-antd/transfer';
8
+ import * as i3 from 'ng-zorro-antd/table';
9
+ import { NzTableModule } from 'ng-zorro-antd/table';
10
+ import * as i4 from 'ng-zorro-antd/select';
11
+ import { NzSelectModule } from 'ng-zorro-antd/select';
12
+ import * as i5 from 'ng-zorro-antd/modal';
13
+ import { NzModalModule } from 'ng-zorro-antd/modal';
14
+
15
+ class TransferOptions extends ValueAccessOptions {
16
+ labelField = signal("title", ...(ngDevMode ? [{ debugName: "labelField" }] : []));
17
+ valueField = signal("key", ...(ngDevMode ? [{ debugName: "valueField" }] : []));
18
+ disabledField = signal("disabled", ...(ngDevMode ? [{ debugName: "disabledField" }] : []));
19
+ fullValue = signal(false, ...(ngDevMode ? [{ debugName: "fullValue" }] : []));
20
+ allowInvalidValue = signal(false, ...(ngDevMode ? [{ debugName: "allowInvalidValue" }] : []));
21
+ data = signal(undefined, ...(ngDevMode ? [{ debugName: "data" }] : []));
22
+ type = signal('normal', ...(ngDevMode ? [{ debugName: "type" }] : []));
23
+ oneWay = signal(false, ...(ngDevMode ? [{ debugName: "oneWay" }] : []));
24
+ modalTitle = signal('请选择', ...(ngDevMode ? [{ debugName: "modalTitle" }] : []));
25
+ titles = signal('待选,已选', ...(ngDevMode ? [{ debugName: "titles" }] : []));
26
+ operations = signal('', ...(ngDevMode ? [{ debugName: "operations" }] : []));
27
+ itemUnits = signal('项', ...(ngDevMode ? [{ debugName: "itemUnits" }] : []));
28
+ selectAll = signal(true, ...(ngDevMode ? [{ debugName: "selectAll" }] : []));
29
+ notFoundContent = signal('列表为空', ...(ngDevMode ? [{ debugName: "notFoundContent" }] : []));
30
+ showSearch = signal(false, ...(ngDevMode ? [{ debugName: "showSearch" }] : []));
31
+ searchPlaceholder = signal('请输入搜索内容', ...(ngDevMode ? [{ debugName: "searchPlaceholder" }] : []));
32
+ variant = signal('outlined', ...(ngDevMode ? [{ debugName: "variant" }] : []));
33
+ size = signal('default', ...(ngDevMode ? [{ debugName: "size" }] : []));
34
+ allowClear = signal(true, ...(ngDevMode ? [{ debugName: "allowClear" }] : []));
35
+ maxTagCount = signal(Infinity, ...(ngDevMode ? [{ debugName: "maxTagCount" }] : []));
36
+ placeholder = signal("", ...(ngDevMode ? [{ debugName: "placeholder" }] : []));
37
+ tableSize = signal("middle", ...(ngDevMode ? [{ debugName: "tableSize" }] : []));
38
+ showOrder = signal(true, ...(ngDevMode ? [{ debugName: "showOrder" }] : []));
39
+ showDataSize = signal(true, ...(ngDevMode ? [{ debugName: "showDataSize" }] : []));
40
+ bordered = signal(false, ...(ngDevMode ? [{ debugName: "bordered" }] : []));
41
+ outerBordered = signal(false, ...(ngDevMode ? [{ debugName: "outerBordered" }] : []));
42
+ tableWidth = signal(undefined, ...(ngDevMode ? [{ debugName: "tableWidth" }] : []));
43
+ showPagination = signal(true, ...(ngDevMode ? [{ debugName: "showPagination" }] : []));
44
+ pageSize = signal(10, ...(ngDevMode ? [{ debugName: "pageSize" }] : []));
45
+ showSizeChanger = signal(true, ...(ngDevMode ? [{ debugName: "showSizeChanger" }] : []));
46
+ pageSizeOptions = signal("10,20,50,100", ...(ngDevMode ? [{ debugName: "pageSizeOptions" }] : []));
47
+ header = signal(undefined, ...(ngDevMode ? [{ debugName: "header" }] : []));
48
+ fields = signal([], ...(ngDevMode ? [{ debugName: "fields" }] : []));
49
+ }
50
+ class TransferTableFieldOptions {
51
+ inuse = signal(true, ...(ngDevMode ? [{ debugName: "inuse" }] : []));
52
+ field = signal("unknown", ...(ngDevMode ? [{ debugName: "field" }] : []));
53
+ title = signal("未命名", ...(ngDevMode ? [{ debugName: "title" }] : []));
54
+ sortAble = signal(false, ...(ngDevMode ? [{ debugName: "sortAble" }] : []));
55
+ sortOrder = signal(null, ...(ngDevMode ? [{ debugName: "sortOrder" }] : []));
56
+ sortPriority = signal(null, ...(ngDevMode ? [{ debugName: "sortPriority" }] : []));
57
+ filterAble = signal(false, ...(ngDevMode ? [{ debugName: "filterAble" }] : []));
58
+ filterMultiple = signal(false, ...(ngDevMode ? [{ debugName: "filterMultiple" }] : []));
59
+ filterDisplayFn = signal("", ...(ngDevMode ? [{ debugName: "filterDisplayFn" }] : []));
60
+ width = signal(null, ...(ngDevMode ? [{ debugName: "width" }] : []));
61
+ align = signal("left", ...(ngDevMode ? [{ debugName: "align" }] : []));
62
+ freezeMode = signal("none", ...(ngDevMode ? [{ debugName: "freezeMode" }] : []));
63
+ child = signal(undefined, ...(ngDevMode ? [{ debugName: "child" }] : []));
64
+ }
65
+
66
+ class Transfer extends ValueAccess {
67
+ constructor() {
68
+ super();
69
+ effect(() => {
70
+ if (this.options.type() == "table") {
71
+ this.fields().forEach((f, i) => {
72
+ this.bindWithConfig(this.options.fields()[i], { options: f, tag: `bindField.${i}` });
73
+ });
74
+ }
75
+ });
76
+ effect(() => {
77
+ if (!this.options.allowInvalidValue() && this.selectValue().some(r => !this.validValue().has(r))) {
78
+ untracked(() => {
79
+ const next = this.selectValue().filter(r => this.validValue().has(r));
80
+ if (this.options.fullValue()) {
81
+ this.setInitValue(next.map(r => this.dataMap.get(r)));
82
+ }
83
+ else {
84
+ this.setInitValue(next);
85
+ }
86
+ });
87
+ }
88
+ });
89
+ }
90
+ options = new TransferOptions();
91
+ dataMap = new Map();
92
+ validValue = computed(() => this.buildValidValue(), ...(ngDevMode ? [{ debugName: "validValue" }] : []));
93
+ data = computed(() => this.buildData(), ...(ngDevMode ? [{ debugName: "data" }] : []));
94
+ transferData = computed(() => this.buildTransferData(), ...(ngDevMode ? [{ debugName: "transferData" }] : []));
95
+ selectOptions = computed(() => this.selectValue().map(r => this.dataMap.get(r)).map(d => ({ label: d[this.options.labelField()], value: d[this.options.valueField()] })), ...(ngDevMode ? [{ debugName: "selectOptions" }] : []));
96
+ selectValue = model([], ...(ngDevMode ? [{ debugName: "selectValue" }] : []));
97
+ transferValue = model(null, ...(ngDevMode ? [{ debugName: "transferValue" }] : []));
98
+ displayValue = computed(() => this.selectValue().map(r => this.dataMap.get(r)[this.options.labelField()]).join(";"), ...(ngDevMode ? [{ debugName: "displayValue" }] : []));
99
+ modalVisible = model(false, ...(ngDevMode ? [{ debugName: "modalVisible" }] : []));
100
+ titles = computed(() => {
101
+ const arr = this.options.titles().split(",");
102
+ return [arr[0], arr[1] ?? arr[0]];
103
+ }, ...(ngDevMode ? [{ debugName: "titles" }] : []));
104
+ operations = computed(() => {
105
+ const arr = this.options.operations().split(",");
106
+ return [arr[0], arr[1] ?? arr[0]];
107
+ }, ...(ngDevMode ? [{ debugName: "operations" }] : []));
108
+ itemUnit = computed(() => {
109
+ const arr = this.options.itemUnits().split(",");
110
+ return arr[0];
111
+ }, ...(ngDevMode ? [{ debugName: "itemUnit" }] : []));
112
+ itemsUnit = computed(() => {
113
+ const arr = this.options.itemUnits().split(",");
114
+ return arr[1] ?? arr[0];
115
+ }, ...(ngDevMode ? [{ debugName: "itemsUnit" }] : []));
116
+ fields = computed(() => this.buildFields(), ...(ngDevMode ? [{ debugName: "fields" }] : []));
117
+ displayFields = computed(() => this.buildDisplayFields(), ...(ngDevMode ? [{ debugName: "displayFields" }] : []));
118
+ scroll = computed(() => this.buildScroll(), ...(ngDevMode ? [{ debugName: "scroll" }] : []));
119
+ pageSizeOptions = computed(() => this.options.pageSizeOptions().split(",").map(size => +size), ...(ngDevMode ? [{ debugName: "pageSizeOptions" }] : []));
120
+ leaderFieldWidth = computed(() => this.buildLeaderFieldWidth(), ...(ngDevMode ? [{ debugName: "leaderFieldWidth" }] : []));
121
+ fieldsControlsMap = computed(() => this.buildFieldControls(), ...(ngDevMode ? [{ debugName: "fieldsControlsMap" }] : []));
122
+ filedsFilterItemsCache = new Map();
123
+ writeValue(value) {
124
+ super.writeValue(value);
125
+ this.valueToTransferValue();
126
+ }
127
+ setInitValue(value) {
128
+ super.setInitValue(value);
129
+ this.valueToTransferValue();
130
+ }
131
+ buildValidValue() {
132
+ const validValue = new Set();
133
+ const data = this.options.data();
134
+ if (Array.isArray(data)) {
135
+ for (const item of data) {
136
+ this.dataMap.set(item[this.options.valueField()], item);
137
+ validValue.add(item[this.options.valueField()]);
138
+ }
139
+ }
140
+ return validValue;
141
+ }
142
+ buildData() {
143
+ let data = [];
144
+ for (const item of this.validValue()) {
145
+ data.push(this.dataMap.get(item));
146
+ }
147
+ if (this.options.allowInvalidValue()) {
148
+ this.selectValue().filter(r => !this.validValue().has(r)).forEach(r => {
149
+ if (!this.dataMap.has(r)) {
150
+ this.dataMap.set(r, {
151
+ [this.options.labelField()]: r,
152
+ [this.options.valueField()]: r
153
+ });
154
+ }
155
+ data.push(this.dataMap.get(r));
156
+ });
157
+ }
158
+ return data;
159
+ }
160
+ buildTransferData() {
161
+ if (this.modalVisible()) {
162
+ return this.data().map(r => ({
163
+ title: r[this.options.labelField()],
164
+ key: r[this.options.valueField()],
165
+ disabled: r[this.options.disabledField()],
166
+ direction: (this.transferValue() ?? this.selectValue()).includes(r[this.options.valueField()]) ? "right" : "left",
167
+ origin: r
168
+ }));
169
+ }
170
+ else {
171
+ return [];
172
+ }
173
+ }
174
+ valueToTransferValue() {
175
+ if (this.value() != undefined) {
176
+ if (this.options.fullValue()) {
177
+ this.selectValue.set(this.value().map((r) => r[this.options.valueField()]));
178
+ }
179
+ else {
180
+ this.selectValue.set(this.value());
181
+ }
182
+ return;
183
+ }
184
+ this.selectValue.set(this.value());
185
+ }
186
+ onSelectChange(value) {
187
+ if (this.options.fullValue()) {
188
+ this.value.set(value.map((r) => this.dataMap.get(r)));
189
+ }
190
+ else {
191
+ this.value.set(value);
192
+ }
193
+ this.onChange?.(this.value());
194
+ }
195
+ openModal() {
196
+ this.modalVisible.set(true);
197
+ this.transferValue.set(this.selectValue());
198
+ }
199
+ onTransferChange(items) {
200
+ this.transferValue.set(items.map(i => i['key']));
201
+ }
202
+ onModalOk() {
203
+ this.selectValue.set(this.transferValue() ?? []);
204
+ this.onSelectChange(this.selectValue());
205
+ this.modalVisible.set(false);
206
+ }
207
+ onModalCancel() {
208
+ this.transferValue.set(null);
209
+ this.modalVisible.set(false);
210
+ }
211
+ buildFields() {
212
+ return this.options.fields().map(opt => new TransferTableFieldOptions());
213
+ }
214
+ buildDisplayFields() {
215
+ return this.fields().filter(f => f.inuse());
216
+ }
217
+ buildLeaderFieldWidth() {
218
+ switch (this.options.tableSize()) {
219
+ case "small":
220
+ return 45;
221
+ case "middle":
222
+ return 50;
223
+ default:
224
+ return 65;
225
+ }
226
+ }
227
+ buildScroll() {
228
+ let x = this.options.tableWidth() ?? 0;
229
+ if (this.options.tableWidth() == undefined) {
230
+ if (this.options.showOrder()) {
231
+ x += this.leaderFieldWidth();
232
+ }
233
+ this.displayFields().forEach(f => {
234
+ if (f.width()) {
235
+ x += f.width();
236
+ }
237
+ else {
238
+ x += 120;
239
+ }
240
+ });
241
+ }
242
+ return { x: x + "px", y: "" };
243
+ }
244
+ filterChange(field, value) {
245
+ for (const item of this.filedsFilterItemsCache.get(field).values()) {
246
+ item.byDefault = value != null && (Array.isArray(value) ? value.includes(item.value) : item.value == value);
247
+ }
248
+ }
249
+ buildFieldControls() {
250
+ const res = {};
251
+ for (const field of this.displayFields()) {
252
+ res[field.field()] = {};
253
+ if (field.filterAble()) {
254
+ if (!this.filedsFilterItemsCache.has(field.field())) {
255
+ this.filedsFilterItemsCache.set(field.field(), new Map());
256
+ }
257
+ const filterItemsCache = this.filedsFilterItemsCache.get(field.field());
258
+ for (const row of this.data() ?? []) {
259
+ const value = row[field.field()];
260
+ if (!filterItemsCache.has(value)) {
261
+ let text = value + "";
262
+ if (field.filterDisplayFn()) {
263
+ text = this.getScope()?.runFnWithSnapshot(field.filterDisplayFn(), { value: value, row: row });
264
+ }
265
+ filterItemsCache.set(value, { value, text });
266
+ }
267
+ }
268
+ res[field.field()].filterItems = Array.from(filterItemsCache.values());
269
+ res[field.field()].filterFn = (fd, row) => {
270
+ if (fd instanceof Array) {
271
+ return fd.includes(row[field.field()]);
272
+ }
273
+ else {
274
+ return fd == row[field.field()];
275
+ }
276
+ };
277
+ }
278
+ if (field.sortAble()) {
279
+ if (this.options.data()?.some((r) => r[field.field()] != undefined && typeof (r[field.field()]) == "number")) {
280
+ res[field.field()].sortFn = (a, b) => a[field.field()] - b[field.field()];
281
+ }
282
+ else {
283
+ res[field.field()].sortFn = (a, b) => {
284
+ return ((a[field.field()] || "") + "").localeCompare(b[field.field()]);
285
+ };
286
+ }
287
+ }
288
+ }
289
+ return res;
290
+ }
291
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.6", ngImport: i0, type: Transfer, deps: [], target: i0.ɵɵFactoryTarget.Component });
292
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.1.6", type: Transfer, isStandalone: true, selector: "axis-transfer", inputs: { selectValue: { classPropertyName: "selectValue", publicName: "selectValue", isSignal: true, isRequired: false, transformFunction: null }, transferValue: { classPropertyName: "transferValue", publicName: "transferValue", isSignal: true, isRequired: false, transformFunction: null }, modalVisible: { classPropertyName: "modalVisible", publicName: "modalVisible", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { selectValue: "selectValueChange", transferValue: "transferValueChange", modalVisible: "modalVisibleChange" }, usesInheritance: true, ngImport: i0, template: "@if (options.readonly()) {\n{{displayValue()}}\n}@else {\n<nz-select nzMode=\"multiple\" [nzOptions]=\"selectOptions()\" [nzDisabled]=\"options.disabled()\"\n [nzVariant]=\"options.variant()\" [nzSize]=\"options.size()\" [nzAllowClear]=\"options.allowClear()\"\n [nzMaxTagCount]=\"options.maxTagCount()\" [nzPlaceHolder]=\"options.placeholder()\" [nzDropdownStyle]=\"{display:'none'}\"\n (click)=\"openModal()\" [(ngModel)]=\"selectValue\" (ngModelChange)=\"onSelectChange($event)\"></nz-select>\n<nz-modal [(nzVisible)]=\"modalVisible\" [nzTitle]=\"options.modalTitle()\" nzWidth=\"fit-content\" nzDraggable\n (nzOnOk)=\"onModalOk()\" (nzOnCancel)=\"onModalCancel()\">\n <div *nzModalContent>\n <ng-container [axisDynamic]=\"options.header()\"></ng-container>\n <nz-transfer #transfer [nzDataSource]=\"transferData()\" [nzDisabled]=\"options.disabled()\" [nzTitles]=\"titles()\"\n [nzOperations]=\"operations()\" [nzItemUnit]=\"itemUnit()\" [nzItemsUnit]=\"itemsUnit()\"\n [nzShowSelectAll]=\"options.selectAll() && options.type() != 'table'\" [nzShowSearch]=\"options.showSearch()\"\n [nzSearchPlaceholder]=\"options.searchPlaceholder()\" [nzNotFoundContent]=\"options.notFoundContent()\"\n [nzOneWay]=\"options.oneWay() && options.type() != 'table'\"\n [nzRenderList]=\"options.type()=='table'? [tableList, tableList]:null\"\n (nzChange)=\"onTransferChange(transfer.rightDataSource)\">\n <ng-template #tableList let-items let-direction=\"direction\" let-stat=\"stat\" let-disabled=\"disabled\"\n let-onItemSelectAll=\"onItemSelectAll\" let-onItemSelect=\"onItemSelect\">\n <nz-table #table [nzSize]=\"options.tableSize()\" [nzData]=\"items\" [nzLoading]=\"!options.data()\"\n [nzBordered]=\"options.bordered()\" [nzOuterBordered]=\"options.outerBordered()\"\n [nzShowPagination]=\"options.showPagination()\" [nzPageSize]=\"options.pageSize()\"\n [nzShowSizeChanger]=\"options.showSizeChanger()\" [nzPageSizeOptions]=\"pageSizeOptions()\"\n [nzShowTotal]=\"options.showDataSize()?totalRange:null\" [nzScroll]=\"scroll()\">\n <thead>\n <tr>\n @if(options.selectAll()){\n <th [nzDisabled]=\"disabled\" [nzChecked]=\"stat.checkAll\" [nzIndeterminate]=\"stat.checkHalf\"\n [nzWidth]=\"leaderFieldWidth()-10+'px'\" (nzCheckedChange)=\"onItemSelectAll($event)\"></th>\n }@else{\n <th [nzWidth]=\"leaderFieldWidth()-10+'px'\"></th>\n }\n @if (options.showOrder()) {\n <th nzAlign=\"center\" [nzWidth]=\"leaderFieldWidth()+'px'\">\u5E8F\u53F7</th>\n }\n @for (f of displayFields(); track f.field()) {\n <th [attr.data-field]=\"f.field()\" [nzWidth]=\"f.width() == null ?null:f.width()+'px'\"\n [nzShowSort]=\"f.sortAble()\" [nzSortFn]=\"fieldsControlsMap()[f.field()]?.sortFn\"\n [nzSortOrder]=\"f.sortOrder()\" [nzSortPriority]=\"f.sortPriority()??false\"\n [nzShowFilter]=\"f.filterAble()\"\n [nzFilters]=\"fieldsControlsMap()[f.field()]?.filterItems ?? []\"\n [nzFilterFn]=\"fieldsControlsMap()[f.field()]?.filterFn\"\n (nzFilterChange)=\"filterChange(f.field(),$event)\"\n [nzFilterMultiple]=\"f.filterMultiple()\" [nzAlign]=\"f.align()\"\n [nzLeft]=\"f.freezeMode()=='left'\" [nzRight]=\"f.freezeMode()=='right'\">\n <span>\n {{f.title()}}\n </span>\n </th>\n }\n </tr>\n </thead>\n <tbody>\n @for (data of table.data; track data;let i=$index) {\n <tr [axisScope]=\"options.id+'.row'\" scopeName=\"\u8868\u683C\u884C\"\n [dataSources]=\"[{name:'row',type:'local',data:data}]\" (click)=\"onItemSelect(data)\">\n <td [nzChecked]=\"!!data.checked\" [nzDisabled]=\"disabled || data.disabled\"\n (nzCheckedChange)=\"onItemSelect(data)\"></td>\n @if (options.showOrder()) {\n <td nzAlign=\"center\">{{(table.nzPageIndex-1) * table.nzPageSize + i+1}}</td>\n }\n @for (f of displayFields(); track f.field()) {\n <td [nzLeft]=\"f.freezeMode()=='left'\" [attr.data-field]=\"f.field()\"\n [nzRight]=\"f.freezeMode()=='right'\" [nzAlign]=\"f.align()\">\n @if (f.child()) {\n <ng-container [axisDynamic]=\"f.child()\"></ng-container>\n }@else {\n {{data[f.field()]}}\n }\n </td>\n }\n </tr>\n }\n </tbody>\n </nz-table>\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 </ng-template>\n </nz-transfer>\n </div>\n</nz-modal>\n}", styles: [":host{display:block;width:100%}nz-select{width:100%}nz-transfer{width:100%;justify-content:center}\n"], dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: NzTransferModule }, { kind: "component", type: i2.NzTransferComponent, selector: "nz-transfer", inputs: ["nzDisabled", "nzDataSource", "nzTitles", "nzOperations", "nzListStyle", "nzShowSelectAll", "nzItemUnit", "nzItemsUnit", "nzCanMove", "nzRenderList", "nzRender", "nzFooter", "nzShowSearch", "nzFilterOption", "nzSearchPlaceholder", "nzNotFoundContent", "nzTargetKeys", "nzSelectedKeys", "nzStatus", "nzOneWay"], outputs: ["nzChange", "nzSearchChange", "nzSelectChange"], exportAs: ["nzTransfer"] }, { kind: "directive", type: DynamicDirective, selector: "[axisDynamic]", inputs: ["axisDynamic", "standalone", "isDesign"], outputs: ["onRegisteValueAccess"], exportAs: ["axisDynamic"] }, { kind: "ngmodule", type: NzTableModule }, { kind: "component", type: i3.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: i3.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: i3.NzTableCellDirective, selector: "th:not(.nz-disable-th), td:not(.nz-disable-td)" }, { kind: "directive", type: i3.NzThMeasureDirective, selector: "th", inputs: ["nzWidth", "colspan", "colSpan", "rowspan", "rowSpan"] }, { kind: "component", type: i3.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: i3.NzTheadComponent, selector: "thead:not(.ant-table-thead)", outputs: ["nzSortOrderChange"] }, { kind: "component", type: i3.NzTbodyComponent, selector: "tbody" }, { kind: "directive", type: i3.NzTrDirective, selector: "tr:not([nz-table-measure-row]):not([nzExpand]):not([nz-table-fixed-row])" }, { kind: "directive", type: i3.NzCellFixedDirective, selector: "td[nzRight],th[nzRight],td[nzLeft],th[nzLeft]", inputs: ["nzRight", "nzLeft", "colspan", "colSpan"] }, { kind: "directive", type: i3.NzCellAlignDirective, selector: "th[nzAlign],td[nzAlign]", inputs: ["nzAlign"] }, { kind: "component", type: i3.NzThSelectionComponent, selector: "th[nzSelections],th[nzChecked],th[nzShowCheckbox],th[nzShowRowSelection]", inputs: ["nzSelections", "nzChecked", "nzDisabled", "nzIndeterminate", "nzLabel", "nzShowCheckbox", "nzShowRowSelection"], outputs: ["nzCheckedChange"] }, { kind: "ngmodule", type: NzSelectModule }, { kind: "component", type: i4.NzSelectComponent, selector: "nz-select", inputs: ["nzId", "nzSize", "nzStatus", "nzVariant", "nzOptionHeightPx", "nzOptionOverflowSize", "nzDropdownClassName", "nzDropdownMatchSelectWidth", "nzDropdownStyle", "nzNotFoundContent", "nzPlaceHolder", "nzPlacement", "nzMaxTagCount", "nzDropdownRender", "nzCustomTemplate", "nzSuffixIcon", "nzClearIcon", "nzRemoveIcon", "nzMenuItemSelectedIcon", "nzTokenSeparators", "nzMaxTagPlaceholder", "nzMaxMultipleCount", "nzMode", "nzFilterOption", "compareWith", "nzAllowClear", "nzBorderless", "nzShowSearch", "nzLoading", "nzAutoFocus", "nzAutoClearSearchValue", "nzServerSearch", "nzDisabled", "nzOpen", "nzSelectOnTab", "nzBackdrop", "nzOptions", "nzShowArrow"], outputs: ["nzOnSearch", "nzScrollToBottom", "nzOpenChange", "nzBlur", "nzFocus", "nzOnClear"], exportAs: ["nzSelect"] }, { kind: "ngmodule", type: NzModalModule }, { kind: "component", type: i5.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: i5.NzModalContentDirective, selector: "[nzModalContent]", exportAs: ["nzModalContent"] }, { kind: "directive", type: ScopeDirective, selector: "[axisScope]", inputs: ["axisScope", "scopeName", "isRoot", "dataSources"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
293
+ }
294
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.6", ngImport: i0, type: Transfer, decorators: [{
295
+ type: Component,
296
+ args: [{ selector: 'axis-transfer', imports: [FormsModule, NzTransferModule, DynamicDirective, NzTableModule, NzSelectModule, NzModalModule, ScopeDirective], changeDetection: ChangeDetectionStrategy.OnPush, template: "@if (options.readonly()) {\n{{displayValue()}}\n}@else {\n<nz-select nzMode=\"multiple\" [nzOptions]=\"selectOptions()\" [nzDisabled]=\"options.disabled()\"\n [nzVariant]=\"options.variant()\" [nzSize]=\"options.size()\" [nzAllowClear]=\"options.allowClear()\"\n [nzMaxTagCount]=\"options.maxTagCount()\" [nzPlaceHolder]=\"options.placeholder()\" [nzDropdownStyle]=\"{display:'none'}\"\n (click)=\"openModal()\" [(ngModel)]=\"selectValue\" (ngModelChange)=\"onSelectChange($event)\"></nz-select>\n<nz-modal [(nzVisible)]=\"modalVisible\" [nzTitle]=\"options.modalTitle()\" nzWidth=\"fit-content\" nzDraggable\n (nzOnOk)=\"onModalOk()\" (nzOnCancel)=\"onModalCancel()\">\n <div *nzModalContent>\n <ng-container [axisDynamic]=\"options.header()\"></ng-container>\n <nz-transfer #transfer [nzDataSource]=\"transferData()\" [nzDisabled]=\"options.disabled()\" [nzTitles]=\"titles()\"\n [nzOperations]=\"operations()\" [nzItemUnit]=\"itemUnit()\" [nzItemsUnit]=\"itemsUnit()\"\n [nzShowSelectAll]=\"options.selectAll() && options.type() != 'table'\" [nzShowSearch]=\"options.showSearch()\"\n [nzSearchPlaceholder]=\"options.searchPlaceholder()\" [nzNotFoundContent]=\"options.notFoundContent()\"\n [nzOneWay]=\"options.oneWay() && options.type() != 'table'\"\n [nzRenderList]=\"options.type()=='table'? [tableList, tableList]:null\"\n (nzChange)=\"onTransferChange(transfer.rightDataSource)\">\n <ng-template #tableList let-items let-direction=\"direction\" let-stat=\"stat\" let-disabled=\"disabled\"\n let-onItemSelectAll=\"onItemSelectAll\" let-onItemSelect=\"onItemSelect\">\n <nz-table #table [nzSize]=\"options.tableSize()\" [nzData]=\"items\" [nzLoading]=\"!options.data()\"\n [nzBordered]=\"options.bordered()\" [nzOuterBordered]=\"options.outerBordered()\"\n [nzShowPagination]=\"options.showPagination()\" [nzPageSize]=\"options.pageSize()\"\n [nzShowSizeChanger]=\"options.showSizeChanger()\" [nzPageSizeOptions]=\"pageSizeOptions()\"\n [nzShowTotal]=\"options.showDataSize()?totalRange:null\" [nzScroll]=\"scroll()\">\n <thead>\n <tr>\n @if(options.selectAll()){\n <th [nzDisabled]=\"disabled\" [nzChecked]=\"stat.checkAll\" [nzIndeterminate]=\"stat.checkHalf\"\n [nzWidth]=\"leaderFieldWidth()-10+'px'\" (nzCheckedChange)=\"onItemSelectAll($event)\"></th>\n }@else{\n <th [nzWidth]=\"leaderFieldWidth()-10+'px'\"></th>\n }\n @if (options.showOrder()) {\n <th nzAlign=\"center\" [nzWidth]=\"leaderFieldWidth()+'px'\">\u5E8F\u53F7</th>\n }\n @for (f of displayFields(); track f.field()) {\n <th [attr.data-field]=\"f.field()\" [nzWidth]=\"f.width() == null ?null:f.width()+'px'\"\n [nzShowSort]=\"f.sortAble()\" [nzSortFn]=\"fieldsControlsMap()[f.field()]?.sortFn\"\n [nzSortOrder]=\"f.sortOrder()\" [nzSortPriority]=\"f.sortPriority()??false\"\n [nzShowFilter]=\"f.filterAble()\"\n [nzFilters]=\"fieldsControlsMap()[f.field()]?.filterItems ?? []\"\n [nzFilterFn]=\"fieldsControlsMap()[f.field()]?.filterFn\"\n (nzFilterChange)=\"filterChange(f.field(),$event)\"\n [nzFilterMultiple]=\"f.filterMultiple()\" [nzAlign]=\"f.align()\"\n [nzLeft]=\"f.freezeMode()=='left'\" [nzRight]=\"f.freezeMode()=='right'\">\n <span>\n {{f.title()}}\n </span>\n </th>\n }\n </tr>\n </thead>\n <tbody>\n @for (data of table.data; track data;let i=$index) {\n <tr [axisScope]=\"options.id+'.row'\" scopeName=\"\u8868\u683C\u884C\"\n [dataSources]=\"[{name:'row',type:'local',data:data}]\" (click)=\"onItemSelect(data)\">\n <td [nzChecked]=\"!!data.checked\" [nzDisabled]=\"disabled || data.disabled\"\n (nzCheckedChange)=\"onItemSelect(data)\"></td>\n @if (options.showOrder()) {\n <td nzAlign=\"center\">{{(table.nzPageIndex-1) * table.nzPageSize + i+1}}</td>\n }\n @for (f of displayFields(); track f.field()) {\n <td [nzLeft]=\"f.freezeMode()=='left'\" [attr.data-field]=\"f.field()\"\n [nzRight]=\"f.freezeMode()=='right'\" [nzAlign]=\"f.align()\">\n @if (f.child()) {\n <ng-container [axisDynamic]=\"f.child()\"></ng-container>\n }@else {\n {{data[f.field()]}}\n }\n </td>\n }\n </tr>\n }\n </tbody>\n </nz-table>\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 </ng-template>\n </nz-transfer>\n </div>\n</nz-modal>\n}", styles: [":host{display:block;width:100%}nz-select{width:100%}nz-transfer{width:100%;justify-content:center}\n"] }]
297
+ }], ctorParameters: () => [] });
298
+
299
+ /**
300
+ * Generated bundle index. Do not edit.
301
+ */
302
+
303
+ export { Transfer };
304
+ //# sourceMappingURL=ngx-axis-appforge-axis-components-transfer.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ngx-axis-appforge-axis-components-transfer.mjs","sources":["../../../axis-components/transfer/transfer.options.ts","../../../axis-components/transfer/transfer.ts","../../../axis-components/transfer/transfer.html","../../../axis-components/transfer/ngx-axis-appforge-axis-components-transfer.ts"],"sourcesContent":["import { signal, WritableSignal } from \"@angular/core\";\nimport { ValueAccessOptions } from \"ngx-axis-appforge/core\";\n\nexport class TransferOptions extends ValueAccessOptions {\n\n readonly labelField = signal(\"title\");\n readonly valueField = signal(\"key\");\n readonly disabledField = signal(\"disabled\");\n readonly fullValue = signal(false);\n readonly allowInvalidValue = signal(false);\n readonly data = signal<any>(undefined);\n\n readonly type = signal<'normal' | 'table'>('normal');\n readonly oneWay = signal(false);\n readonly modalTitle = signal('请选择');\n readonly titles = signal('待选,已选');\n readonly operations = signal('');\n readonly itemUnits = signal<string>('项');\n readonly selectAll = signal(true);\n readonly notFoundContent = signal('列表为空');\n readonly showSearch = signal(false);\n readonly searchPlaceholder = signal('请输入搜索内容');\n\n readonly variant = signal<'outlined' | 'borderless' | 'filled' | 'underlined'>('outlined');\n readonly size = signal<'large' | 'small' | 'default'>('default');\n readonly allowClear = signal(true);\n readonly maxTagCount = signal(Infinity);\n readonly placeholder = signal(\"\");\n\n readonly tableSize = signal<'middle' | 'small' | 'default'>(\"middle\");\n readonly showOrder = signal(true);\n readonly showDataSize = signal(true);\n readonly bordered = signal(false);\n readonly outerBordered = signal(false);\n readonly tableWidth = signal<number | undefined>(undefined);\n readonly showPagination = signal(true);\n readonly pageSize = signal(10);\n readonly showSizeChanger = signal(true);\n readonly pageSizeOptions = signal(\"10,20,50,100\");\n\n readonly header = signal<any>(undefined);\n readonly fields = signal<any[]>([]);\n\n}\n\nexport class TransferTableFieldOptions {\n readonly inuse = signal(true);\n readonly field = signal(\"unknown\");\n readonly title = signal(\"未命名\");\n readonly sortAble = signal(false);\n readonly sortOrder = signal<\"descend\" | \"ascend\" | null>(null);\n readonly sortPriority = signal<number | null>(null);\n readonly filterAble = signal(false);\n readonly filterMultiple = signal(false);\n readonly filterDisplayFn = signal(\"\");\n readonly width = signal<number | null>(null);\n readonly align = signal<'left' | 'right' | 'center'>(\"left\");\n readonly freezeMode = signal<'none' | 'left' | 'right'>(\"none\");\n readonly child = signal<any>(undefined);\n}","import { ChangeDetectionStrategy, Component, computed, effect, model, untracked } from '@angular/core';\nimport { DynamicDirective, ScopeDirective, ValueAccess } from 'ngx-axis-appforge/core';\nimport { FormsModule } from '@angular/forms';\nimport { TransferOptions, TransferTableFieldOptions } from './transfer.options';\nimport { NzTransferModule, TransferItem } from 'ng-zorro-antd/transfer';\nimport { NzTableFilterList, NzTableModule } from 'ng-zorro-antd/table';\nimport { NzSelectModule } from 'ng-zorro-antd/select';\nimport { NzModalModule } from 'ng-zorro-antd/modal';\n\n@Component({\n selector: 'axis-transfer',\n imports: [FormsModule, NzTransferModule, DynamicDirective, NzTableModule, NzSelectModule, NzModalModule, ScopeDirective],\n templateUrl: './transfer.html',\n styleUrl: './transfer.css',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class Transfer extends ValueAccess<TransferOptions> {\n\n constructor() {\n super();\n effect(() => {\n if (this.options.type() == \"table\") {\n this.fields().forEach((f, i) => {\n this.bindWithConfig(this.options.fields()[i], { options: f, tag: `bindField.${i}` });\n });\n }\n });\n effect(() => {\n if (!this.options.allowInvalidValue() && this.selectValue().some(r => !this.validValue().has(r))) {\n untracked(() => {\n const next = this.selectValue().filter(r => this.validValue().has(r));\n if (this.options.fullValue()) {\n this.setInitValue(next.map(r => this.dataMap.get(r)));\n } else {\n this.setInitValue(next);\n }\n });\n }\n });\n }\n\n override options: TransferOptions = new TransferOptions();\n private dataMap = new Map();\n private readonly validValue = computed(() => this.buildValidValue());\n readonly data = computed(() => this.buildData());\n readonly transferData = computed(() => this.buildTransferData());\n readonly selectOptions = computed(() => this.selectValue().map(r => this.dataMap.get(r)).map(d => ({ label: d[this.options.labelField()], value: d[this.options.valueField()] })))\n\n readonly selectValue = model<any[]>([]);\n readonly transferValue = model<any[] | null>(null);\n readonly displayValue = computed(() => this.selectValue().map(r => this.dataMap.get(r)[this.options.labelField()]).join(\";\"));\n\n readonly modalVisible = model(false);\n readonly titles = computed(() => {\n const arr = this.options.titles().split(\",\");\n return [arr[0], arr[1] ?? arr[0]];\n });\n readonly operations = computed(() => {\n const arr = this.options.operations().split(\",\");\n return [arr[0], arr[1] ?? arr[0]];\n });\n readonly itemUnit = computed(() => {\n const arr = this.options.itemUnits().split(\",\");\n return arr[0];\n });\n readonly itemsUnit = computed(() => {\n const arr = this.options.itemUnits().split(\",\");\n return arr[1] ?? arr[0];\n });\n\n readonly fields = computed(() => this.buildFields());\n readonly displayFields = computed(() => this.buildDisplayFields());\n readonly scroll = computed(() => this.buildScroll());\n readonly pageSizeOptions = computed(() => this.options.pageSizeOptions().split(\",\").map(size => +size));\n readonly leaderFieldWidth = computed(() => this.buildLeaderFieldWidth());\n readonly fieldsControlsMap = computed(() => this.buildFieldControls());\n readonly filedsFilterItemsCache = new Map<string, Map<any, any>>();\n\n override writeValue(value: any): void {\n super.writeValue(value);\n this.valueToTransferValue();\n }\n\n override setInitValue(value: any): void {\n super.setInitValue(value);\n this.valueToTransferValue();\n }\n\n private buildValidValue(): Set<any> {\n const validValue = new Set();\n const data = this.options.data();\n if (Array.isArray(data)) {\n for (const item of data) {\n this.dataMap.set(item[this.options.valueField()], item);\n validValue.add(item[this.options.valueField()]);\n }\n }\n return validValue;\n }\n\n private buildData(): any[] {\n let data: any[] = [];\n for (const item of this.validValue()) {\n data.push(this.dataMap.get(item));\n }\n if (this.options.allowInvalidValue()) {\n this.selectValue()!.filter(r => !this.validValue().has(r)).forEach(r => {\n if (!this.dataMap.has(r)) {\n this.dataMap.set(r, {\n [this.options.labelField()]: r,\n [this.options.valueField()]: r\n });\n }\n data.push(this.dataMap.get(r));\n });\n }\n return data;\n }\n\n private buildTransferData(): TransferItem[] {\n if (this.modalVisible()) {\n return this.data().map(r => ({\n title: r[this.options.labelField()],\n key: r[this.options.valueField()],\n disabled: r[this.options.disabledField()],\n direction: (this.transferValue() ?? this.selectValue()).includes(r[this.options.valueField()]) ? \"right\" : \"left\",\n origin: r\n }));\n } else {\n return [];\n }\n }\n\n private valueToTransferValue() {\n if (this.value() != undefined) {\n if (this.options.fullValue()) {\n this.selectValue.set(this.value().map((r: any) => r[this.options.valueField()]));\n } else {\n this.selectValue.set(this.value());\n }\n return;\n }\n this.selectValue.set(this.value());\n }\n\n onSelectChange(value: any) {\n if (this.options.fullValue()) {\n this.value.set(value.map((r: any) => this.dataMap.get(r)));\n } else {\n this.value.set(value);\n }\n this.onChange?.(this.value());\n }\n\n openModal() {\n this.modalVisible.set(true);\n this.transferValue.set(this.selectValue());\n }\n\n onTransferChange(items: TransferItem[]) {\n this.transferValue.set(items.map(i => i['key']));\n }\n\n onModalOk() {\n this.selectValue.set(this.transferValue() ?? []);\n this.onSelectChange(this.selectValue());\n this.modalVisible.set(false);\n }\n\n onModalCancel() {\n this.transferValue.set(null);\n this.modalVisible.set(false);\n }\n\n private buildFields(): TransferTableFieldOptions[] {\n return this.options.fields().map(opt => new TransferTableFieldOptions());\n }\n\n private buildDisplayFields(): TransferTableFieldOptions[] {\n return this.fields().filter(f => f.inuse());\n }\n\n private buildLeaderFieldWidth(): number {\n switch (this.options.tableSize()) {\n case \"small\":\n return 45;\n case \"middle\":\n return 50;\n default:\n return 65;\n }\n }\n\n private buildScroll() {\n let x = this.options.tableWidth() ?? 0;\n if (this.options.tableWidth() == undefined) {\n if (this.options.showOrder()) {\n x += this.leaderFieldWidth();\n }\n this.displayFields().forEach(f => {\n if (f.width()) {\n x += f.width()!;\n } else {\n x += 120;\n }\n });\n }\n return { x: x + \"px\", y: \"\" }\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 }\n\n private buildFieldControls(): { [field: string]: { sortFn?: any, filterItems?: NzTableFilterList, filterFn?: any } | undefined } {\n const res: { [field: string]: { sortFn?: any, filterItems?: NzTableFilterList, filterFn?: any } } = {};\n for (const field of this.displayFields()) {\n res[field.field()] = {};\n if (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 (const row of this.data() ?? []) {\n const value = row[field.field()];\n if (!filterItemsCache.has(value)) {\n let text = value + \"\";\n if (field.filterDisplayFn()) {\n text = this.getScope()?.runFnWithSnapshot(field.filterDisplayFn(), { value: value, row: row });\n }\n filterItemsCache.set(value, { value, text })\n }\n }\n res[field.field()].filterItems = Array.from(filterItemsCache.values());\n res[field.field()].filterFn = (fd: any[] | any, row: any) => {\n if (fd instanceof Array) {\n return fd.includes(row[field.field()]);\n } else {\n return fd == row[field.field()];\n }\n };\n }\n if (field.sortAble()) {\n if (this.options.data()?.some((r: any) => r[field.field()] != undefined && typeof (r[field.field()]) == \"number\")) {\n res[field.field()].sortFn = (a: any, b: any) => a[field.field()] - b[field.field()];\n } else {\n res[field.field()].sortFn = (a: any, b: any) => {\n return ((a[field.field()] || \"\") + \"\").localeCompare(b[field.field()])\n };\n }\n }\n }\n return res;\n }\n\n}\n","@if (options.readonly()) {\n{{displayValue()}}\n}@else {\n<nz-select nzMode=\"multiple\" [nzOptions]=\"selectOptions()\" [nzDisabled]=\"options.disabled()\"\n [nzVariant]=\"options.variant()\" [nzSize]=\"options.size()\" [nzAllowClear]=\"options.allowClear()\"\n [nzMaxTagCount]=\"options.maxTagCount()\" [nzPlaceHolder]=\"options.placeholder()\" [nzDropdownStyle]=\"{display:'none'}\"\n (click)=\"openModal()\" [(ngModel)]=\"selectValue\" (ngModelChange)=\"onSelectChange($event)\"></nz-select>\n<nz-modal [(nzVisible)]=\"modalVisible\" [nzTitle]=\"options.modalTitle()\" nzWidth=\"fit-content\" nzDraggable\n (nzOnOk)=\"onModalOk()\" (nzOnCancel)=\"onModalCancel()\">\n <div *nzModalContent>\n <ng-container [axisDynamic]=\"options.header()\"></ng-container>\n <nz-transfer #transfer [nzDataSource]=\"transferData()\" [nzDisabled]=\"options.disabled()\" [nzTitles]=\"titles()\"\n [nzOperations]=\"operations()\" [nzItemUnit]=\"itemUnit()\" [nzItemsUnit]=\"itemsUnit()\"\n [nzShowSelectAll]=\"options.selectAll() && options.type() != 'table'\" [nzShowSearch]=\"options.showSearch()\"\n [nzSearchPlaceholder]=\"options.searchPlaceholder()\" [nzNotFoundContent]=\"options.notFoundContent()\"\n [nzOneWay]=\"options.oneWay() && options.type() != 'table'\"\n [nzRenderList]=\"options.type()=='table'? [tableList, tableList]:null\"\n (nzChange)=\"onTransferChange(transfer.rightDataSource)\">\n <ng-template #tableList let-items let-direction=\"direction\" let-stat=\"stat\" let-disabled=\"disabled\"\n let-onItemSelectAll=\"onItemSelectAll\" let-onItemSelect=\"onItemSelect\">\n <nz-table #table [nzSize]=\"options.tableSize()\" [nzData]=\"items\" [nzLoading]=\"!options.data()\"\n [nzBordered]=\"options.bordered()\" [nzOuterBordered]=\"options.outerBordered()\"\n [nzShowPagination]=\"options.showPagination()\" [nzPageSize]=\"options.pageSize()\"\n [nzShowSizeChanger]=\"options.showSizeChanger()\" [nzPageSizeOptions]=\"pageSizeOptions()\"\n [nzShowTotal]=\"options.showDataSize()?totalRange:null\" [nzScroll]=\"scroll()\">\n <thead>\n <tr>\n @if(options.selectAll()){\n <th [nzDisabled]=\"disabled\" [nzChecked]=\"stat.checkAll\" [nzIndeterminate]=\"stat.checkHalf\"\n [nzWidth]=\"leaderFieldWidth()-10+'px'\" (nzCheckedChange)=\"onItemSelectAll($event)\"></th>\n }@else{\n <th [nzWidth]=\"leaderFieldWidth()-10+'px'\"></th>\n }\n @if (options.showOrder()) {\n <th nzAlign=\"center\" [nzWidth]=\"leaderFieldWidth()+'px'\">序号</th>\n }\n @for (f of displayFields(); track f.field()) {\n <th [attr.data-field]=\"f.field()\" [nzWidth]=\"f.width() == null ?null:f.width()+'px'\"\n [nzShowSort]=\"f.sortAble()\" [nzSortFn]=\"fieldsControlsMap()[f.field()]?.sortFn\"\n [nzSortOrder]=\"f.sortOrder()\" [nzSortPriority]=\"f.sortPriority()??false\"\n [nzShowFilter]=\"f.filterAble()\"\n [nzFilters]=\"fieldsControlsMap()[f.field()]?.filterItems ?? []\"\n [nzFilterFn]=\"fieldsControlsMap()[f.field()]?.filterFn\"\n (nzFilterChange)=\"filterChange(f.field(),$event)\"\n [nzFilterMultiple]=\"f.filterMultiple()\" [nzAlign]=\"f.align()\"\n [nzLeft]=\"f.freezeMode()=='left'\" [nzRight]=\"f.freezeMode()=='right'\">\n <span>\n {{f.title()}}\n </span>\n </th>\n }\n </tr>\n </thead>\n <tbody>\n @for (data of table.data; track data;let i=$index) {\n <tr [axisScope]=\"options.id+'.row'\" scopeName=\"表格行\"\n [dataSources]=\"[{name:'row',type:'local',data:data}]\" (click)=\"onItemSelect(data)\">\n <td [nzChecked]=\"!!data.checked\" [nzDisabled]=\"disabled || data.disabled\"\n (nzCheckedChange)=\"onItemSelect(data)\"></td>\n @if (options.showOrder()) {\n <td nzAlign=\"center\">{{(table.nzPageIndex-1) * table.nzPageSize + i+1}}</td>\n }\n @for (f of displayFields(); track f.field()) {\n <td [nzLeft]=\"f.freezeMode()=='left'\" [attr.data-field]=\"f.field()\"\n [nzRight]=\"f.freezeMode()=='right'\" [nzAlign]=\"f.align()\">\n @if (f.child()) {\n <ng-container [axisDynamic]=\"f.child()\"></ng-container>\n }@else {\n {{data[f.field()]}}\n }\n </td>\n }\n </tr>\n }\n </tbody>\n </nz-table>\n <ng-template #totalRange let-range=\"range\" let-total>\n 共{{ total }}条数据,第{{ range[0] }}-{{ range[1] }}条\n </ng-template>\n </ng-template>\n </nz-transfer>\n </div>\n</nz-modal>\n}","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './transfer';\n"],"names":[],"mappings":"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"}