/** * @file 长文本公式输入框 */ import React from 'react'; import { FormControlProps } from 'amis-core'; import { FormulaPlugin } from './textarea-formula/plugin'; import { CustomFormulaPickerProps } from './textarea-formula/FormulaPicker'; import type { VariableItem, CodeMirror } from 'amis-ui'; export interface TplFormulaControlProps extends FormControlProps { /** * 用于提示的变量集合,默认为空 */ variables?: Array | Function; /** * 配合 variables 使用 * 当 props.variables 存在时, 是否再从 amis数据域中取变量集合,默认 false; */ requiredDataPropsVariables?: boolean; /** * 变量展现模式,可选值:'tabs' | 'tree' */ variableMode?: 'tree' | 'tabs'; /** * 自定义fx面板 */ customFormulaPicker?: React.FC; /** * 是否可清除 */ clearable?: boolean; /** * 弹窗顶部标题,默认为 "表达式" */ header: string; /** * 简化成员操作 */ simplifyMemberOprs?: boolean; /** * 支付支持快捷变量 */ quickVariables?: boolean; /** * 额外的快捷变量 */ quickVars?: Array; } interface TplFormulaControlState { value: string; variables: Array; quickVariables: Array; formulaPickerOpen: boolean; formulaPickerValue: string; expressionBrace?: Array; tooltipStyle: { [key: string]: string; }; loading: boolean; menuIsOpened: boolean; quickVariablesIsOpened: boolean; } export declare class TplFormulaControl extends React.Component { static defaultProps: Partial; wrapRef: React.RefObject; tooltipRef: React.RefObject; buttonTarget: HTMLElement; editorPlugin: FormulaPlugin; unReaction: any; appLocale: string; appCorpusData: any; constructor(props: TplFormulaControlProps); componentDidMount(): Promise; componentWillUnmount(): void; menuRef(ref: HTMLDivElement): void; onExpressionMouseEnter(e: MouseEvent, expression: string, brace?: Array): void; hiddenToolTip(): void; handleKeyDown(e: any): void; closeFormulaPicker(): void; handleConfirm(value: any): void; handleOnChange(value: any): void; checkOpenFormulaPicker(value: string): Promise; handleClear(): void; /** * 公式编辑器打开完成一些异步任务的加载 */ beforeFormulaEditorOpen(): Promise; handleFormulaClick(e: React.MouseEvent, type?: string): Promise; editorFactory(dom: HTMLElement, cm: any): any; handleEditorMounted(cm: any, editor: any): void; editorAutoMark(): void; closeMenuOuter(): void; closeQuickVariablesOuter(): void; renderMenuOuter(): React.JSX.Element; renderQuickVariablesOuter(): React.JSX.Element; handleQuickVariableSelect(item: VariableItem): void; renderButton(): React.JSX.Element; render(): React.JSX.Element; } export default class TplFormulaControlRenderer extends TplFormulaControl { } export {};