UNPKG

@yuntijs/ui

Version:

☁️ Yunti UI - an open-source UI component library for building Cloud Native web apps

54 lines (53 loc) 2.73 kB
import type { FormItemProps, TableColumnProps } from 'antd'; import type { FormListProps as AntFormListProps } from 'antd/es/form'; import React from 'react'; import { CollapseGroupProps } from '../../CollapseGroup'; import { FormCollapseListOperation } from './hooks'; import { FieldPath } from './utils'; interface FormCollapseListColumnItem extends Omit<FormItemProps, 'dependencies' | 'rules' | 'tooltip' | 'labelAlign' | 'labelCol' | 'colon' | 'children'> { render?: (fieldName: number, index: number, operation: FormCollapseListOperation, /** 当前 item 的 path */ fieldPath: FieldPath) => React.ReactNode; rules?: FormItemProps['rules'] | ((parentFieldPath: FieldPath, index: number) => FormItemProps['rules']); dependencies?: FormItemProps['dependencies'] | ((parentFieldPath: FieldPath, index: number) => FormItemProps['dependencies']); } export interface FormListOperationAddParams { defaultValue?: any; insertIndex?: number; } export interface FormCollapseListColumn extends FormCollapseListColumnItem, Pick<TableColumnProps<any>, 'align' | 'ellipsis' | 'fixed' | 'responsive' | 'shouldCellUpdate' | 'width'> { } export interface FormCollapseListProps extends Omit<AntFormListProps, 'name' | 'children'>, Pick<CollapseGroupProps, 'className' | 'collapsible' | 'extra' | 'expandIcon' | 'icon' | 'title' | 'variant' | 'defaultActive' | 'style'> { /** 字段名 */ name?: FormItemProps['name']; /** 表单列为空时展示的空内容 */ empty?: React.ReactNode; /** 表单列配置 */ columns?: FormCollapseListColumn[]; /** 新增表单项的参数 */ addParams?: FormListOperationAddParams | (() => FormListOperationAddParams); /** 是否禁用 */ disabled?: boolean; /** 只读模式 */ readOnly?: boolean; /** 默认添加一个 field */ addOneFieldDefault?: boolean; /** 当只有一个 field 时禁用移除 */ disableRemoveWhenOneField?: boolean; /** 限制最大 fields 数量 */ maxFileds?: number; /** 删除时调用,返回 false 时取消删除 */ onRemove?: (values: any) => boolean | void | Promise<boolean | void>; /** 是否启用表单项删除按钮,默认为启用 */ fieldRemoveButton?: boolean; /** [树形数据] 初始时,是否展开所有行 */ defaultExpandAllRows?: boolean; /** [树形数据] 每层缩进的宽度,以 px 为单位, 默认为 16 */ indentSize?: number; /** [树形数据] 指定树形结构的列名,默认为 children */ childrenColumnName?: string; /** 表格行是否开启 hover 交互, 默认为启用 */ rowHoverable?: boolean; } export declare const FormCollapseList: React.FC<FormCollapseListProps>; export {};