///
import PropTypes from 'prop-types';
import React, {
CSSProperties,
PureComponent,
Component,
ReactElement,
ReactText
} from 'react';
export interface PropChangeParam {
type: string,
value: any,
}
export interface Navs {
key: string,
text: string,
component: React.ReactElement
}
export interface ContainerProps {
defaultNav?: string;
navs: Navs[];
logo?: React.ReactNode;
/**
* nav 切换回调
* @param type 目标nav key
* @param content content html
*/
onNavChange(type: String, content: HTMLElement): void;
isFullContent: Boolean;
}
export interface NavProps {
prefixCls: String,
// 叶子节点 NavItem 点击事件,参数为当前 NavItem 的 key 以及 event 对象
onNavChange: Function,
className: String,
navs: Array,
// 采用黑色背景
dark: Boolean,
// 默认打开的菜单
defaultOpenKeys: String[] | Number[],
currentKey: String | Number
}
export interface SingleContainerProps {
defaultNav?: string;
navs: Navs[];
logo?: React.ReactNode | null;
position: 'left' | 'right';
onNavChange: Function;
navContent: React.ReactNode | React.ReactElement;
navProps: NavProps;
navKey: string | number;
children: React.ReactNode;
}
/**
* main container
*
* @export
* @class Container
* @extends {Component}
*/
export class Container extends Component {
static propTypes: {
defaultNav: PropTypes.Requireable;
navs: PropTypes.Requireable;
logo: PropTypes.Requireable;
onNavChange: PropTypes.Requireable;
isFullContent: PropTypes.Requireable;
};
private static defaultProps;
private onChange;
render(): JSX.Element;
}
/**
* single contaienr
*
* @class SingleContainer
* @extends {Component}
*/
export class SingleContainer extends Component {
static propTypes: {
defaultNav: PropTypes.Requireable;
navs: PropTypes.Requireable;
logo: PropTypes.Requireable;
position: PropTypes.Requireable;
onNavChange: PropTypes.Requireable;
/**
* nav 组件,可选为 `SingleNav and Nav`
* default is SingleNav
*/
navContent: PropTypes.Requireable;
navKey: PropTypes.Requireable;
navProps: PropTypes.Requireable;
children: PropTypes.Requireable;
};
private static defaultProps;
private onNavChange;
render(): JSX.Element;
}
export interface SubContainerProps {
className: string;
defaultNav?: string;
navs: Navs[];
derection?: 'h' | 'v';
/**
* nav 切换回调
* @param type 目标nav key
* @param content content html
*/
onNavChange(type: String, content: HTMLElement): void;
navProps?: NavProps;
useNav?: Boolean;
/**
* 使用 Nav 组件时,保持左侧固定
*/
fixed?: Boolean;
children: React.ReactNode;
}
export class SubContainer extends Component {
static propTypes: {
className: PropTypes.Requireable;
defaultNav: PropTypes.Requireable;
navs: PropTypes.Requireable;
derection: PropTypes.Requireable;
onNavChange: PropTypes.Requireable;
navProps: PropTypes.Requireable;
useNav: PropTypes.Requireable;
fixed: PropTypes.Requireable;
children: PropTypes.Requireable;
};
static defaultProps: {
navs: [],
// 默认为水平方向
derection: 'h'
};
private onChange;
render(): JSX.Element;
}
export interface DemoContentProps {
className?: String;
title?: String;
actions: React.ReactElement;
children: React.ReactElement;
descr: React.ReactNode;
doc: React.ReactNode;
}
export class DemoContent extends Component {
static propTypes: {
className:PropTypes.Requireable;
title: PropTypes.Requireable;
actions: PropTypes.Requireable;
children: PropTypes.Requireable;
descr: PropTypes.Requireable;
doc: PropTypes.Requireable;
};
static defaultProps: {};
private onPropsChange(param: PropChangeParam): void;
render(): JSX.Element;
}
export interface DemoCodeContentProps {
className?: String;
title?: String;
actions: React.ReactElement;
children: React.ReactElement;
descr: React.ReactNode;
doc: React.ReactNode;
useOption: Boolean;
}
export class DemoCodeContent extends Component {
static propTypes: {
className:PropTypes.Requireable;
title: PropTypes.Requireable;
/**
* actions 区域,如果设置为 null,则采用上下布局
*/
actions: PropTypes.Requireable;
children: PropTypes.Requireable;
descr: PropTypes.Requireable;
doc: PropTypes.Requireable;
useOption: PropTypes.Requireable;
};
static defaultProps: {};
private onPropsChange(param: PropChangeParam): void;
render(): JSX.Element;
}
export interface DemoActuatorProps {
className?: String;
title?: String;
actions: React.ReactElement;
children: React.ReactElement;
descr: React.ReactNode;
useOption: Boolean;
}
export class DemoActuator extends Component {
static propTypes: {
className:PropTypes.Requireable;
title: PropTypes.Requireable;
actions: PropTypes.Requireable;
children: PropTypes.Requireable;
descr: PropTypes.Requireable;
useOption: PropTypes.Requireable;
};
static defaultProps: {};
private onPropsChange(param: PropChangeParam): void;
render(): JSX.Element;
}
export interface ActionItemProps {
label?: string;
children?: React.ReactElement;
}
export function ActionItem(props: ActionItemProps): JSX.Element;
/**
* connect demo item
* @param {(Component | string)} WrappedCompoenet
* @returns {*}
*/
export function connectDemoItem(WrappedCompoenet: Component | string): any;
/**
* Nav 组件,支持二级和三级菜单导航
*/
export class Nav extends Component {
static propTypes: {
prefixCls: PropTypes.Requireable;
onNavChange: PropTypes.Requireable;
className: PropTypes.Requireable;
navs: PropTypes.Requireable;
dark: PropTypes.Requireable;
defaultOpenKeys: PropTypes.Requireable;
currentKey: PropTypes.Requireable;
};
static defaultProps: {
prefixCls: 'ray-nav-menu'
};
private onNavChange;
render(): JSX.Element;
}
/**
* Nav 组件,支持二级和三级菜单导航
* 箭头在左侧
*/
export class Nav2 extends Component {
static propTypes: {
prefixCls: PropTypes.Requireable;
onNavChange: PropTypes.Requireable;
className: PropTypes.Requireable;
navs: PropTypes.Requireable;
dark: PropTypes.Requireable;
defaultOpenKeys: PropTypes.Requireable;
currentKey: PropTypes.Requireable;
};
static defaultProps: {
prefixCls: 'ray-nav-menu'
};
private onNavChange;
render(): JSX.Element;
}
export interface SingleNavProps {
navs: Array