import { AntTreeNodeExpandedEvent } from 'antd/lib/tree/Tree'; import React from 'react'; import { Dictionary } from '../../base'; import { ConfigStore } from '../../config'; import { ViewsStateMachine } from '../../react'; import { ReactAddon } from '../../react/base'; import { RouteMenuItem } from '../antd/routeMenu'; import './appEditor.less'; /** 配置信息 */ export interface EditorTreeConfigInfo { /** 配置名称 */ name: string; /** app.json读取路径的属性名 */ dir?: string; /** 使用的控件 */ useControl?: any; /** 根节点配置 */ rootNodeConfig?: CommonTreeNodeConfig; /** 对象类别 */ objectCategories?: string[]; /** 元素类型 */ elementType?: string; /** * 扩展属性 */ [key: string]: any; } /** 编辑主窗体上下文 */ export declare const EditorMainFormContext: React.Context; /** 编辑主窗体状态 */ interface EditorMainFormState { /** 主应用文件名 */ appFileName?: string; /** 当前页面状态机 */ viewsStateMachine?: ViewsStateMachine; } export declare class AppEditor extends ReactAddon { title?: string; settingMenu?: RouteMenuItem[]; /** * 配置存储 */ configStore?: ConfigStore; /** 客户端主应用文件名 */ clientAppFileName?: string; /** 服务端主应用文件名 */ serverAppFileName?: string; /** 配置信息列表 */ configInfoList?: EditorTreeConfigInfo[]; onRender?: (() => JSX.Element) | undefined; } export declare const AppEditorControl: any; /** 通用配置树节点设置 */ export interface CommonTreeNodeConfig { /** 键值,需唯一 */ key: string; /** 标题,显示用 */ title: string; /** 图标 */ icon?: string; /** 节点路径 */ path?: string; /** 是否目录 */ isDir?: boolean; /** 该节点相应的操作,不设置则使用默认 */ operate?: { /** 是否可以选中,不使用默认名字则输入字符串 */ select?: boolean | string; /** 是否可以新增子文件,不使用默认名字则输入字符串 */ newNode?: boolean | string; /** 是否可以新增子目录,不使用默认名字则输入字符串 */ newDir?: boolean | string; /** 是否可以删除,不使用默认名字则输入字符串 */ delete?: boolean | string; /** 是否可以改名,不使用默认名字则输入字符串 */ rename?: boolean | string; }; /** 下级节点 */ childNodes?: Dictionary; /** 额外的对象 */ extraObj?: any; /** 模板路径属性 */ templatePath?: string; } export declare class CommonConfigTree extends ReactAddon { /** 根节点配置 */ rootNodeConfig?: CommonTreeNodeConfig; /** 树节点配置 */ treeNodeConfig?: Dictionary; /** 创建节点 */ createNode?: (type: 'dir' | 'node', node: CommonTreeNodeConfig) => void; /** 删除节点 */ deleteNode?: (type: 'dir' | 'node', node: CommonTreeNodeConfig) => void; /** 重命名节点 */ renameNode?: (node: CommonTreeNodeConfig) => void; /** 选中节点 */ clickNode?: (node: CommonTreeNodeConfig) => void; /** (受控)展开指定的树节点 */ expandedKeys?: string[]; /** 展开/收起节点时触发 */ onExpand?: (expandedKeys: string[], info: AntTreeNodeExpandedEvent) => void | PromiseLike; onRender?: (() => JSX.Element) | undefined; } export declare const CommonConfigTreeControl: any; /** * 获取模板树节点配置 * @param configStore 配置存储 * @param templatesPath 模板路径 */ export declare function getTemplateTreeConfig(configStore: ConfigStore, templatesPath: string): Promise>; /** 编辑控件属性 */ export interface EditControlProps { /** 需要编辑的对象 */ editObj: any; /** 保存对象事件 */ fireChangeEvent: () => void; /** 配置存储 */ configStore: ConfigStore; /** 模板路径 */ templatesPath?: string; /** * 对象类别 */ objectCategories?: string[]; /** * 元素类型 */ elementType?: string; } /** * 分割路径 * @param needSplitPath 需要分割的路径 */ export declare function splitPath(needSplitPath: string): string[]; export declare class FileTree extends ReactAddon { /** 配置信息 */ config?: EditorTreeConfigInfo; onRender?: (() => JSX.Element) | undefined; } export declare const FileTreeControl: any; export declare class PAOAppEditor extends ReactAddon { templateDir?: string; pageDir?: string; controlDir?: string; serverDir?: string; skinDir?: string; layoutDir?: string; onRender?: (() => JSX.Element) | undefined; } export declare const PAOAppEditorControl: any; export {};