import * as _angular_core from '@angular/core'; import { TemplateRef, OnInit, OnChanges, OnDestroy, SimpleChanges } from '@angular/core'; import * as rxjs from 'rxjs'; import { Subject } from 'rxjs'; import * as _ng_nest_ui_core from '@ng-nest/ui/core'; import { XBoolean, XTemplate, XData, XParentIdentityProperty, XStyleMap, XQuery } from '@ng-nest/ui/core'; import { XTableColumn, XTableComponent, XTableHeadCheckbox } from '@ng-nest/ui/table'; import { CdkDragDrop, CdkDrag } from '@angular/cdk/drag-drop'; import { XI18nTransfer } from '@ng-nest/ui/i18n'; import { XTreeNode } from '@ng-nest/ui/tree'; /** * Transfer * @selector x-transfer * @decorator component */ declare const XTransferPrefix = "x-transfer"; declare const XTransferProperty_base: new () => { config: _ng_nest_ui_core.XTransferConfig | undefined; cdr: _angular_core.ChangeDetectorRef; invalid: _angular_core.Signal; invalidPattern: _angular_core.Signal; requiredIsEmpty: _angular_core.Signal; invalidMessage: _angular_core.Signal; value: _angular_core.WritableSignal; valueObservable: rxjs.Observable; validatorSignal: _angular_core.WritableSignal; disabledSignal: _angular_core.WritableSignal; requiredSignal: _angular_core.WritableSignal; patternSignal: _angular_core.WritableSignal; messageSignal: _angular_core.WritableSignal; requiredComputed: _angular_core.Signal; disabledComputed: _angular_core.Signal; validatorComputed: _angular_core.Signal; patternComputed: _angular_core.Signal; messageComputed: _angular_core.Signal; invalidInputValidator: _angular_core.WritableSignal; onChange: (value: any) => void; onTouched: () => void; writeValue(value: any): void; registerOnChange(fn: (value: any) => void): void; registerOnTouched(fn: () => void): void; setDisabledState(disabled: boolean): void; formControlValidator(): void; readonly validator: _angular_core.InputSignalWithTransform; readonly label: _angular_core.InputSignal; readonly labelWidth: _angular_core.InputSignalWithTransform; readonly labelAlign: _angular_core.InputSignal<_ng_nest_ui_core.XAlign>; readonly justify: _angular_core.InputSignal<_ng_nest_ui_core.XJustify>; readonly align: _angular_core.InputSignal<_ng_nest_ui_core.XAlign>; readonly direction: _angular_core.InputSignal<_ng_nest_ui_core.XDirection>; readonly size: _angular_core.InputSignal<_ng_nest_ui_core.XSize>; readonly placeholder: _angular_core.InputSignal; readonly disabled: _angular_core.InputSignalWithTransform; readonly required: _angular_core.InputSignalWithTransform; readonly readonly: _angular_core.InputSignalWithTransform; readonly valueTpl: _angular_core.InputSignal | undefined>; readonly valueTplContext: _angular_core.InputSignal; readonly before: _angular_core.InputSignal; readonly after: _angular_core.InputSignal; readonly pattern: _angular_core.InputSignal; readonly message: _angular_core.InputSignal; readonly active: _angular_core.ModelSignal; readonly pointer: _angular_core.InputSignalWithTransform; readonly inputValidator: _angular_core.InputSignal<((value: any) => boolean) | undefined>; }; /** * Transfer Property */ declare class XTransferProperty extends XTransferProperty_base { /** * @zh_CN 数据对象 * @en_US Data object */ readonly data: _angular_core.InputSignalWithTransform, XData>; /** * @zh_CN 选择的类型 * @en_US Type */ readonly type: _angular_core.InputSignal; /** * @zh_CN 标题 * @en_US Title * @default ['List', 'Selected'] */ readonly titles: _angular_core.InputSignal; /** * @zh_CN 穿梭框样式,使用方式与 ngStyle 相同 * @en_US shuttle box style, same as ngStyle */ readonly listStyle: _angular_core.InputSignal; /** * @zh_CN 隐藏全选复选框 * @en_US Hidden check all */ readonly hiddenCheckAll: _angular_core.InputSignal; /** * @zh_CN 是否能拖动, type * @en_US Can drag */ readonly drag: _angular_core.InputSignalWithTransform; /** * @zh_CN 是否显示搜索。type 为 'table',需要设置 tableHeadSearchTpl 和 tableQuery 来配合使用 * @en_US Whether to display search */ readonly search: _angular_core.InputSignalWithTransform; /** * @zh_CN 表格列头搜索自定义模板 * @en_US table head search custom template */ readonly tableHeadSearchTpl: _angular_core.InputSignal; /** * @zh_CN 行数据自定义模板 * @en_US Data customization template */ readonly nodeTpl: _angular_core.InputSignal | undefined>; /** * @zh_CN 标题自定义模板 * @en_US Title custom template */ readonly titleTpl: _angular_core.InputSignal | undefined>; /** * @zh_CN 底部自定义模版 * @en_US Bottom Custom Template */ readonly footerTpl: _angular_core.InputSignal[] | undefined>; /** * @zh_CN 表格列集合 * @en_US Table column set */ readonly tableColumns: _angular_core.InputSignal; /** * @zh_CN 表格页码 * @en_US Table page number */ readonly tableIndex: _angular_core.ModelSignal; /** * @zh_CN 表每页数据条数 * @en_US Number of data items per page */ readonly tableSize: _angular_core.ModelSignal; /** * @zh_CN 表格查询条件 * @en_US Number of data items per page */ readonly tableQuery: _angular_core.InputSignal; /** * @zh_CN 表格数据总条数 * @en_US Total number of table data */ readonly tableTotal: _angular_core.ModelSignal; /** * @zh_CN 反选操作 * @en_US Inverse select */ readonly inverse: _angular_core.InputSignalWithTransform; static ɵfac: _angular_core.ɵɵFactoryDeclaration; static ɵcmp: _angular_core.ɵɵComponentDeclaration; } /** * Transfer Node */ interface XTransferNode extends XParentIdentityProperty { /** * @zh_CN checkbox 是否选中 * @en_US whether checkbox is selected */ checked?: boolean; /** * @zh_CN 序号 * @en_US Serial number */ index?: number; /** * @zh_CN 自定义属性 * @en_US Custom property */ [property: string]: any; } /** * Transfer Source */ interface XTransferSource { /** * @zh_CN 标题 * @en_US Title */ title?: string; /** * @zh_CN 搜索的数据 * @en_US Searched data */ searchInput?: string; /** * @zh_CN 全选 * @en_US Select all */ checkedAll?: boolean; /** * @zh_CN 选中的数量 * @en_US Selected quantity */ checkedCount?: number; /** * @zh_CN 可选择的数据总数 * @en_US Total number of selectable data */ count?: number; /** * @zh_CN 不确定状态的样式 * @en_US Uncertain state style */ indeterminate?: boolean; /** * @zh_CN 列表数据 * @en_US List data */ list?: XTransferNode[]; /** * @zh_CN 搜索数据,用来还原 * @en_US Search data to restore */ searchList?: XTransferNode[]; /** * @zh_CN 按钮禁用 * @en_US Button disabled */ disabledButton?: boolean; /** * @zh_CN 隐藏全选复选框 * @en_US Hidden check all */ hiddenCheckAll?: boolean; /** * @zh_CN 列表样式 * @en_US List style */ listStyle?: XStyleMap; /** * @zh_CN 数据方向 * @en_US Data direction */ direction?: XTransferDirection; /** * @zh_CN 底部自定义模版 * @en_US Bottom Custom Template */ footerTpl?: TemplateRef; /** * @zh_CN 表格列头搜索自定义模板 * @en_US table head search custom template */ tableHeadSearchTpl?: XTemplate; } /** * @zh_CN 数据方向 * @en_US Transfer direction */ type XTransferDirection = 'left' | 'right'; /** * @zh_CN 数据类型 * @en_US Transfer type */ type XTransferType = 'list' | 'tree' | 'table'; /** * @zh_CN 穿梭框样式,使用方式与 ngStyle 相同 * @en_US shuttle box style, same as ngStyle */ type XTransferListStyle = XStyleMap | XStyleMap[]; declare class XTransferComponent extends XTransferProperty implements OnInit, OnChanges, OnDestroy { private i18n; leftTableCom: _angular_core.Signal; rightTableCom: _angular_core.Signal; nodes: _angular_core.WritableSignal; left: _angular_core.WritableSignal; right: _angular_core.WritableSignal; searchInput: _angular_core.WritableSignal; searchInputLeftChange: Subject; searchInputRightChange: Subject; searchDebounceTime: _angular_core.WritableSignal; locale: _angular_core.Signal; localTitle: _angular_core.Signal; private unSubject; treeActivatedId: _angular_core.WritableSignal; tableData: _angular_core.WritableSignal; tableCheckboxColumn: _angular_core.WritableSignal; isObjectArray: _angular_core.WritableSignal; writeValue(value: any[]): void; values: _angular_core.Signal; ngOnInit(): void; ngOnChanges(changes: SimpleChanges): void; ngOnDestroy(): void; onSearchInputChange(source: XTransferSource): void; setSearchInputChange(source: XTransferSource): void; checkedAllChange($event: boolean, source: XTransferSource): void; checkedChange($event: boolean, source: XTransferSource): void; move(from: XTransferSource, to: XTransferSource): void; private moveList; private moveTree; private moveTable; dropCdk(event: CdkDragDrop): void; predicate(item: CdkDrag): boolean; trackByNode(_index: number, item: XTransferNode): any; setListCount(type?: XTransferType, ...sources: XTransferSource[]): void; onTreeNodeClick(_node: XTreeNode): void; onTableCheckedRow(row: XTransferNode, source: XTransferSource): void; onTableCheckedAll(row: XTableHeadCheckbox, source: XTransferSource): void; onInverse(source: XTransferSource): void; private getTableCheckColumn; private setCheckedAll; private setCheckedCount; private setButtonDisabled; private setValue; private setSearchList; private setData; private setList; getTableData(): void; private setTitles; private setListStyle; private setTreeNodeDisabled; private setTableDataDisabled; private setHiddenCheckAll; private setFooterTpl; private setTableHeadSearchTpl; static ɵfac: _angular_core.ɵɵFactoryDeclaration; static ɵcmp: _angular_core.ɵɵComponentDeclaration; } declare class XTransferModule { static ɵfac: _angular_core.ɵɵFactoryDeclaration; static ɵmod: _angular_core.ɵɵNgModuleDeclaration; static ɵinj: _angular_core.ɵɵInjectorDeclaration; } export { XTransferComponent, XTransferModule, XTransferPrefix, XTransferProperty }; export type { XTransferDirection, XTransferListStyle, XTransferNode, XTransferSource, XTransferType };