import React from 'react';
import XBaseObject, { XBaseObjectProps } from "./XBaseObject";
import XHtml2canvas from "../toolkit/XHtml2canvas";
import XBaseTest from "./XBaseTest";
/**
* 应用启动组件属性
*/
export interface XBaseAppProps extends XBaseObjectProps {
/**
* 应用菜单列表
*/
menus?: any[];
/**
* 获取应用路由
*/
getRoutes?: (app: XBaseApp) => any[];
/**
* antd主题文件
* 例如:
* token: {
* "colorPrimary": "#1677FF",
* "colorInfo": "#1677FF",
* "fontSize": 13,
* },
*/
theme?: any;
}
/**
* 应用启动组件,提供路由管理和全局数据管理
* @name 应用启动组件
* @groupName 应用
*/
export default class XBaseApp
extends XBaseObject {
static defaultProps: {
parent: string;
pureRender: boolean;
dataSourceUrl: string;
filterData: {};
mustHasFilter: boolean;
};
static ConfigProvider: any;
static theme: any;
MenuData: any[];
MenuAllRoutes: any[];
MenuRoutes: any[];
page: any;
apps: {};
componentMap: {};
rootElement: HTMLElement;
autoTest: XBaseTest<{}, {}>;
/**
* 下载设计元模型
* MenuData: 菜单数据,不为空对象时,则直接下载
*/
static DownloadDomainModel: typeof DownloadDomainModel;
static XHtml2canvas: typeof XHtml2canvas;
static PromptConfirm: typeof PromptConfirm;
constructor(props: XBaseAppProps);
loadGlobalConfig(): Promise;
/**
* 重新设置菜单
* @param menuData 菜单列表
*/
RefreshMenu(menuData: any): void;
GetMenuRoutes(): any[];
ReSetUserMenus(): void;
SetUserMenus(userMenus: []): void;
/**
* 加载javascript应用
* @param src js路径
* @param rootPath 异步加载库根目录
*/
LoadScript: (src: string, rootPath: string) => Promise;
/**
* 加载APP插件
* @param menuPath 菜单path
* @param requireName 编译时模块名称
* @param jsPath app.js网络地址
* @param version app.js版本号
* @param rootPath app.js相对路径
* @param formatMenu 格式化菜单
* @param callback 加载app插件回调
* @constructor
*/
LoadApp(menuPath: any, requireName: string, jsPath: string, version: string, rootPath: string, formatMenu: (app: {}) => {}, callback: (firstLoad: boolean, app: {}) => void): Promise;
/**
* 格式化处理memnus
* @param menus 菜单列表
* @param parent 父对象
* @param parentPath 父path
* @constructor
*/
FormatMenus(menus?: any[], parent?: any, parentPath?: string): any[];
formatOperations(_operations: any, parentName?: string, operations?: {}, allList?: any[], validate?: boolean): {};
private renderRoute;
componentDidMount(): void;
render(): React.JSX.Element;
}
declare function DownloadDomainModel(MenuData?: any[], systemName?: string, sleepTime?: number, packageName?: any, returnFile?: boolean): Promise;
declare function PromptConfirm({ onRef, when, msg }: {
onRef: any;
when: any;
msg: any;
}): React.JSX.Element;
export {};