import type { CSSProperties } from 'react'; import React from 'react'; import type { ActionObject, ListenerAction, ScopedComponentType } from 'jamis-core'; import Sortable from 'sortablejs'; import type { ComboCondition, ComboProps, ComboSubControl, FormProps } from '../types'; interface ComboState { /** 重复的索引项, 在要校验整个项的场景下有空 */ duplicateIndex: number; } export default class ComboControl extends React.Component { static defaultProps: Partial; static propsList: (keyof ComboProps)[]; subForms: Array>; subFormDefaultValues: Array<{ index: number; values: any; setted: boolean; }>; keys: Array; dragTip?: HTMLElement; sortable?: Sortable; defaultValue?: any; toDispose: Array; id: string; constructor(props: ComboProps); componentDidUpdate(prevProps: ComboProps): void; componentWillUnmount(): void; doAction(action: ListenerAction, args: any): void; addItemValue: (itemValue: any) => void; getValueAsArray: (props?: Readonly) => any[]; addItemWith: (condition: ComboCondition) => void; addItem: () => Promise; deleteItem: (key: number) => Promise; handleChange: (values: any, diff: any, { index }: { index: number; }) => void; handleRadioChange: (ctx: any, { index, name, trueValue, falseValue }: any) => false | undefined; handleSingleFormChange: (values: Record) => void; handleSubFormValid: (valid: boolean, { index }: any) => void; handleFormInit: (values: any, { index }: any) => void; handleSingleFormInit(values: any): void; handleAction(e: React.UIEvent | undefined, action: ActionObject, ...rest: any[]): any; validate(): Promise; flush: () => Promise; dragTipRef(ref: any): void; initDragging(): void; destroyDragging(): void; refsMap: { [propName: number]: any; }; makeFormRef: any; formRef(ref: any, index?: number): void; memoizedFormatValue: any; formatValue(value: any, index?: number): any; pickCondition(value: any): ComboCondition | null; handleComboTypeChange(index: number, selection: any): void; handleTabSelect: (key: number) => Promise; setNull(e: React.MouseEvent): void; renderPlaceholder(): JSX.Element; renderTabsMode(): JSX.Element; renderDelBtn(value: any, index: number): JSX.Element | null; renderAddBtn(): JSX.Element | null; renderMultiValue: ({ index, style }: { index: number; style?: CSSProperties; }) => JSX.Element | null; renderMultipe(): JSX.Element; renderSingle(): JSX.Element; renderItems(finnalControls: ComboSubControl[], data: object, index?: number): JSX.Element; render(): JSX.Element | null; } export declare class ComboControlRenderer extends ComboControl { setData(value: any, replace?: boolean, index?: number | string, condition?: any): Promise; } export declare class KVControlRenderer extends ComboControl { } export declare class KVSControlRenderer extends ComboControl { } export {};