forked from fanruan/fineui
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
324 lines
5.8 KiB
324 lines
5.8 KiB
5 years ago
|
import { _OB } from "./ob";
|
||
|
export interface _WidgetStatic {
|
||
|
/**
|
||
|
* 注册渲染引擎
|
||
|
* @param engine 引擎
|
||
|
*/
|
||
|
registerRenderEngine(engine: RenderEngine): void;
|
||
|
}
|
||
|
export interface _Widget extends _OB {
|
||
|
/**
|
||
|
* 出现loading的锁
|
||
|
*/
|
||
|
__asking: boolean;
|
||
|
/**
|
||
|
* 同步锁
|
||
|
*/
|
||
|
__async: boolean;
|
||
|
/**
|
||
|
* widget类标识符
|
||
|
*/
|
||
|
widgetName: string | null;
|
||
|
/**
|
||
|
* 是否为根节点
|
||
|
*/
|
||
|
_isRoot: boolean;
|
||
|
/**
|
||
|
* 父节点
|
||
|
*/
|
||
|
_parent: _Widget | null;
|
||
|
/**
|
||
|
* 真实dom的类jQuery对象
|
||
|
*/
|
||
|
element: any;
|
||
|
/**
|
||
|
* 子元素
|
||
|
*/
|
||
|
_children: {
|
||
|
[key: string]: _Widget;
|
||
|
};
|
||
|
/**
|
||
|
* 是否已挂载
|
||
|
*/
|
||
|
_isMounted: boolean;
|
||
|
/**
|
||
|
* 手动设置enable
|
||
|
*/
|
||
|
_manualSetEnable: boolean;
|
||
|
/**
|
||
|
* 手动设置valid
|
||
|
*/
|
||
|
_manualSetValid: boolean;
|
||
|
/**
|
||
|
* 渲染引擎
|
||
|
*/
|
||
|
_renderEngine: RenderEngine;
|
||
|
_store(): void;
|
||
|
/**
|
||
|
* 初始化前
|
||
|
*/
|
||
|
beforeInit?(cb: Function): void;
|
||
|
/**
|
||
|
* 创建前
|
||
|
*/
|
||
|
beforeCreate?(): void;
|
||
|
/**
|
||
|
* 创建
|
||
|
*/
|
||
|
created?(): void;
|
||
|
/**
|
||
|
* 渲染
|
||
|
*/
|
||
|
render?(): any;
|
||
|
/**
|
||
|
* 挂载前
|
||
|
*/
|
||
|
beforeMount?(): void;
|
||
|
/**
|
||
|
* 挂载
|
||
|
*/
|
||
|
mounted?(): void;
|
||
|
/**
|
||
|
* 更新前
|
||
|
*/
|
||
|
shouldUpdate?(): void;
|
||
|
/**
|
||
|
* 更新
|
||
|
*/
|
||
|
update?(...args: any[]): void;
|
||
|
/**
|
||
|
* 销毁前
|
||
|
*/
|
||
|
beforeDestroy?(): void;
|
||
|
/**
|
||
|
* 销毁
|
||
|
*/
|
||
|
destroyed?(): void;
|
||
|
/**
|
||
|
* 初始化render函数
|
||
|
*/
|
||
|
_initRender: () => void;
|
||
|
/**
|
||
|
* 内部主render函数
|
||
|
*/
|
||
|
_render: () => void;
|
||
|
/**
|
||
|
* 初始化根节点
|
||
|
*/
|
||
|
_initRoot: () => void;
|
||
|
/**
|
||
|
* 初始化元素宽度
|
||
|
*/
|
||
|
_initElementWidth: () => void;
|
||
|
/**
|
||
|
* 初始化元素高度
|
||
|
*/
|
||
|
_initElementHeight: () => void;
|
||
|
/**
|
||
|
* 初始化元素可见
|
||
|
*/
|
||
|
_initVisual: () => void;
|
||
|
/**
|
||
|
* 初始化元素可用不可用
|
||
|
*/
|
||
|
_initEffects: () => void;
|
||
|
/**
|
||
|
* 设置mounted锁
|
||
|
*/
|
||
|
_initState: () => void;
|
||
|
/**
|
||
|
* 生成真实dom
|
||
|
*/
|
||
|
_initElement: () => void;
|
||
|
/**
|
||
|
* 设置父节点
|
||
|
*/
|
||
|
_setParent: () => void;
|
||
|
/**
|
||
|
* @param force 是否强制挂载子节点
|
||
|
* @param deep 子节点是否也是按照当前force处理
|
||
|
* @param lifeHook 生命周期钩子触不触发,默认触发
|
||
|
* @param predicate 递归每个widget的回调
|
||
|
*/
|
||
|
_mount(force?: boolean, deep?: boolean, lifeHook?: boolean, predicate?: Function): boolean;
|
||
|
/**
|
||
|
* 挂载子节点
|
||
|
*/
|
||
|
_mountChildren?(): void;
|
||
|
/**
|
||
|
* 是否已挂载
|
||
|
*/
|
||
|
isMounted(): boolean;
|
||
|
/**
|
||
|
* 设置宽度
|
||
|
*/
|
||
|
setWidth(w: number): void;
|
||
|
/**
|
||
|
* 设置高度
|
||
|
*/
|
||
|
setHeight(h: number): void;
|
||
|
/**
|
||
|
* 设置可用
|
||
|
*/
|
||
|
_setEnable(enable: boolean): void;
|
||
|
/**
|
||
|
* 设置合法
|
||
|
*/
|
||
|
_setValid(valid: boolean): void;
|
||
|
/**
|
||
|
* 设置可见
|
||
|
*/
|
||
|
_setVisible(visible: boolean): void;
|
||
|
/**
|
||
|
* 设置是否可用
|
||
|
*/
|
||
|
setEnable(enable: boolean): void;
|
||
|
/**
|
||
|
* 设置是否可见
|
||
|
*/
|
||
|
setVisible(visible: boolean): void;
|
||
|
/**
|
||
|
* 设置是否合法
|
||
|
*/
|
||
|
setValid(valid: boolean): void;
|
||
|
/**
|
||
|
* 设置反馈效果
|
||
|
* @param args arguments参数
|
||
|
*/
|
||
|
doBehavior(...args: any[]): void;
|
||
|
/**
|
||
|
* 获取宽度
|
||
|
*/
|
||
|
getWidth(): number;
|
||
|
/**
|
||
|
* 获取高度
|
||
|
*/
|
||
|
getHeight(): number;
|
||
|
/**
|
||
|
* 是否合法
|
||
|
*/
|
||
|
isValid(): boolean;
|
||
|
/**
|
||
|
* 新增子元素
|
||
|
*/
|
||
|
addWidget(_name: any, _widget: _Widget): _Widget;
|
||
|
/**
|
||
|
* 根据wigetname获取子元素实例
|
||
|
*/
|
||
|
getWidgetByName(_name: string): _Widget | undefined;
|
||
|
/**
|
||
|
* 移除子元素
|
||
|
* @param nameOrWidget widgetName或widget实例
|
||
|
*/
|
||
|
removeWidget(nameOrWidget: string | _Widget): void;
|
||
|
/**
|
||
|
* 是否有某个子元素
|
||
|
*/
|
||
|
hasWidget(name: string): boolean;
|
||
|
/**
|
||
|
* 获取widgetName
|
||
|
*/
|
||
|
getName(): string;
|
||
|
/**
|
||
|
* 设置tag
|
||
|
* @param tag html tag
|
||
|
*/
|
||
|
setTag(tag: string): void;
|
||
|
/**
|
||
|
* 获取tag
|
||
|
*/
|
||
|
getTag(): string;
|
||
|
/**
|
||
|
* 设置属性
|
||
|
* @param key 键
|
||
|
* @param value 值
|
||
|
*/
|
||
|
attr(key: string | {
|
||
|
[key: string]: any;
|
||
|
}, value?: any): any;
|
||
|
/**
|
||
|
* 获取text
|
||
|
*/
|
||
|
getText(): string;
|
||
|
/**
|
||
|
* 设置text
|
||
|
*/
|
||
|
setText(text: string): void;
|
||
|
/**
|
||
|
* 获取值
|
||
|
*/
|
||
|
getValue(): any;
|
||
|
/**
|
||
|
* 设置值
|
||
|
*/
|
||
|
setValue(...args: any[]): void;
|
||
|
/**
|
||
|
* 获取是否enable
|
||
|
*/
|
||
|
isEnabled(): boolean;
|
||
|
/**
|
||
|
* 是否可见
|
||
|
*/
|
||
|
isVisible(): boolean;
|
||
|
/**
|
||
|
* disable元素
|
||
|
*/
|
||
|
disable(): void;
|
||
|
/**
|
||
|
* enable元素
|
||
|
*/
|
||
|
enable(): void;
|
||
|
/**
|
||
|
* 是widget合法
|
||
|
*/
|
||
|
valid(): void;
|
||
|
/**
|
||
|
* 使元素不合法
|
||
|
*/
|
||
|
invalid(): void;
|
||
|
/**
|
||
|
* 使不可见
|
||
|
*/
|
||
|
invisible(..._args: any[]): void;
|
||
|
/**
|
||
|
* 可见
|
||
|
*/
|
||
|
visible(..._args: any[]): void;
|
||
|
/**
|
||
|
* 清除子元素
|
||
|
*/
|
||
|
__d(): void;
|
||
|
/**
|
||
|
* 取消挂载
|
||
|
*/
|
||
|
_unMount(): void;
|
||
|
/**
|
||
|
* hang元素
|
||
|
*/
|
||
|
isolate(): void;
|
||
|
/**
|
||
|
* 请除元素
|
||
|
*/
|
||
|
empty(): void;
|
||
|
/**
|
||
|
* 内部destory方法
|
||
|
*/
|
||
|
_destroy(): void;
|
||
|
/**
|
||
|
* destory元素
|
||
|
*/
|
||
|
destroy(): void;
|
||
|
}
|
||
|
interface RenderEngine {
|
||
|
/**
|
||
|
* 创建元素方法,返回的类jQuery对象
|
||
|
* @param widget widget对象
|
||
|
*/
|
||
|
createElement: (widget: any) => any;
|
||
|
/**
|
||
|
* 创建DocumentFragment对象
|
||
|
*/
|
||
|
createFragment: () => DocumentFragment;
|
||
|
}
|
||
|
export {};
|