import Iframe from '.'; import Page from '@mjcloud/page'; import ControlBase from '../base'; import { PageModeEnum, IControlConfig } from '@mjcloud/types'; import { ControlActionType } from '@mjcloud/instance/dist/base'; import { IEventArg } from '@mjcloud/utils/dist/events/eventListening'; import { PageInfo, PageAddress, IPageRefreshParams } from '@mjcloud/page/dist/typings'; import { IControlSetConfig, IDictionary, XmlParam } from '@mjcloud/types'; import { IState, IConfigStartLoadParams, IConfigLoadedParams, IInitialStateParams } from '@mjcloud/redux'; export declare type IframeEventType = 'ready' | 'back'; export interface IIframeReadyEventArg extends IEventArg { } export declare type IframeActionType = ControlActionType | 'replace' | 'push' | 'back' | 'startLoad' | 'loaded' | 'loadError'; declare type RefreshType = 'replace' | 'push'; export interface IHistoryData { pageKey: string; Template: typeof ControlBase; } export interface IIframeState extends IState { info: PageInfo; pageKey: string | undefined; Template: typeof ControlBase | undefined; isFetching?: boolean; errorMessage?: string; history: IHistoryData[]; /** * 空页面时显示的内容模式,默认为:0 */ emptyDisplayMode?: number; /** * 延迟加载页面,默认为:false */ delay?: boolean; } export interface IIframePageInfoConfig extends PageAddress { params?: XmlParam[]; } export interface IIframeConfig extends IControlSetConfig { /** * 空页面时显示的内容模式,默认为:0 */ emptyDisplayMode: number; /** * 延迟加载页面,默认为:false */ delay: boolean; pageInfo: Omit & { params?: XmlParam[]; }; } export interface IframeConfig extends Partial, IControlConfig { } export interface IframeConfigStartLoadParams extends IConfigStartLoadParams { } export interface IframeConfigLoadedParams extends IConfigLoadedParams { } export interface IframeInitialStateParams extends IInitialStateParams { params: IDictionary; } export interface IframeReplaceParams extends IPageRefreshParams { defaultappId: string; defaultPageMode: PageModeEnum; } export interface IframePushParams extends IPageRefreshParams { defaultappId: string; defaultPageMode: PageModeEnum; } export interface IframeBackParams { param: IDictionary; destroyTemplate: (pageKey: string) => void; } export interface IframeStartLoadParams { refreshType?: RefreshType; } export interface IframeLoadedParams { Template: typeof ControlBase; pageKey: string; refreshType?: RefreshType; getTemplate: (pageKey: string) => Page; destroyTemplate: (pageKey: string) => void; } export interface IframeLoadErrorParams { errorMessage: string; } export {};