/**
* @file FieldSetting.tsx
* @desc 脚手架中字段管理
*/
///
import React from 'react';
import { FormControlProps } from 'amis-core';
import type { IReactionDisposer } from 'mobx';
import type { InputTableColumnProps } from 'amis-ui';
import type { DSFeatureType, ScaffoldField } from '../builder/type';
interface FieldSettingProps extends FormControlProps {
/** 脚手架渲染类型 */
renderer?: string;
feat: DSFeatureType;
/** 支持的功能场景对应的字段集合,eg: listFields, bulkEditFields等 */
fieldKeys: string[];
config: {
showInputType?: boolean;
showDisplayType?: boolean;
};
onAutoGenerateFields: (params: {
api: any;
props: FieldSettingProps;
setState: (state: any) => void;
}) => Promise;
}
interface RowData extends ScaffoldField {
}
interface FieldSettingState {
loading: boolean;
fields: RowData[];
}
export declare class FieldSetting extends React.Component {
static defaultProps: {
config: {
showInputType: boolean;
showDisplayType: boolean;
};
};
static validator: (items: RowData[], isInternal?: boolean) => string | false;
reaction: IReactionDisposer;
dom: HTMLElement;
formRef: React.RefObject<{
submit: () => Promise>;
}>;
tableRef: React.RefObject;
scaffold: RowData;
columns: InputTableColumnProps[];
constructor(props: FieldSettingProps);
componentDidMount(): void;
componentDidUpdate(prevProps: Readonly, prevState: Readonly, snapshot?: any): void;
componentWillUnmount(): void;
isFirstStep(): boolean;
handleTableChange(items?: RowData[]): void;
handleSubmit(data: {
items: RowData[];
}): void;
handleGenerateFields(e: React.MouseEvent): Promise;
handleFieldsChange(fields: RowData[]): void;
debounceGenerateFields: import("lodash").DebouncedFunc<(e: React.MouseEvent) => Promise>;
renderFooter(): React.JSX.Element | null;
render(): React.JSX.Element;
}
export default class FieldSettingRenderer extends FieldSetting {
}
export {};