2020-01-03 14:44:51 +08:00
|
|
|
import { Color, GradientColor } from "../util/color";
|
|
|
|
import { Modeling, Model } from "../util/types";
|
|
|
|
import { BridgeContext } from "../runtime/global";
|
|
|
|
import { LayoutConfig } from '../util/layoutconfig';
|
|
|
|
import { IAnimation } from "./animation";
|
2020-04-09 20:01:22 +08:00
|
|
|
import { FlexConfig } from "../util/flexbox";
|
2020-01-03 14:44:51 +08:00
|
|
|
export declare function Property(target: Object, propKey: string): void;
|
2020-01-03 16:35:04 +08:00
|
|
|
export declare type NativeViewModel = {
|
|
|
|
id: string;
|
|
|
|
type: string;
|
|
|
|
props: {
|
|
|
|
[index: string]: Model;
|
|
|
|
};
|
|
|
|
};
|
2020-04-16 19:21:24 +08:00
|
|
|
export declare abstract class View implements Modeling {
|
2020-01-03 14:44:51 +08:00
|
|
|
width: number;
|
|
|
|
height: number;
|
|
|
|
x: number;
|
|
|
|
y: number;
|
|
|
|
backgroundColor?: Color | GradientColor;
|
|
|
|
corners?: number | {
|
|
|
|
leftTop?: number;
|
|
|
|
rightTop?: number;
|
|
|
|
leftBottom?: number;
|
|
|
|
rightBottom?: number;
|
|
|
|
};
|
|
|
|
border?: {
|
|
|
|
width: number;
|
|
|
|
color: Color;
|
|
|
|
};
|
|
|
|
shadow?: {
|
|
|
|
color: Color;
|
|
|
|
opacity: number;
|
|
|
|
radius: number;
|
|
|
|
offsetX: number;
|
|
|
|
offsetY: number;
|
|
|
|
};
|
2020-04-16 19:21:24 +08:00
|
|
|
/**
|
|
|
|
* float [0,..1]
|
|
|
|
*/
|
2020-01-03 14:44:51 +08:00
|
|
|
alpha?: number;
|
|
|
|
hidden?: boolean;
|
|
|
|
viewId: string;
|
|
|
|
padding?: {
|
|
|
|
left?: number;
|
|
|
|
right?: number;
|
|
|
|
top?: number;
|
|
|
|
bottom?: number;
|
|
|
|
};
|
|
|
|
layoutConfig?: LayoutConfig;
|
|
|
|
onClick?: Function;
|
|
|
|
superview?: Superview;
|
|
|
|
callbacks: Map<String, Function>;
|
|
|
|
private callback2Id;
|
|
|
|
private id2Callback;
|
|
|
|
constructor();
|
|
|
|
/** Anchor start*/
|
2020-01-17 14:55:39 +08:00
|
|
|
get left(): number;
|
|
|
|
set left(v: number);
|
|
|
|
get right(): number;
|
|
|
|
set right(v: number);
|
|
|
|
get top(): number;
|
|
|
|
set top(v: number);
|
|
|
|
get bottom(): number;
|
|
|
|
set bottom(v: number);
|
|
|
|
get centerX(): number;
|
|
|
|
get centerY(): number;
|
|
|
|
set centerX(v: number);
|
|
|
|
set centerY(v: number);
|
2020-01-03 14:44:51 +08:00
|
|
|
/** Anchor end*/
|
|
|
|
private __dirty_props__;
|
2020-01-17 14:55:39 +08:00
|
|
|
get dirtyProps(): {
|
2020-01-03 14:44:51 +08:00
|
|
|
[index: string]: Model;
|
|
|
|
};
|
2020-01-03 16:35:04 +08:00
|
|
|
nativeViewModel: NativeViewModel;
|
2020-01-03 14:44:51 +08:00
|
|
|
onPropertyChanged(propKey: string, oldV: Model, newV: Model): void;
|
|
|
|
clean(): void;
|
|
|
|
isDirty(): boolean;
|
|
|
|
responseCallback(id: string, ...args: any): any;
|
2020-01-03 16:35:04 +08:00
|
|
|
toModel(): NativeViewModel;
|
2020-01-03 14:44:51 +08:00
|
|
|
let(block: (it: this) => void): void;
|
|
|
|
also(block: (it: this) => void): this;
|
2020-04-16 19:21:24 +08:00
|
|
|
apply(config: Partial<this>): this;
|
2020-01-03 14:44:51 +08:00
|
|
|
in(group: Group): this;
|
2020-01-17 16:51:17 +08:00
|
|
|
nativeChannel(context: BridgeContext, name: string): (args?: any) => Promise<any>;
|
2020-01-03 14:44:51 +08:00
|
|
|
getWidth(context: BridgeContext): Promise<number>;
|
|
|
|
getHeight(context: BridgeContext): Promise<number>;
|
2020-03-03 14:43:49 +08:00
|
|
|
getX(context: BridgeContext): Promise<number>;
|
|
|
|
getY(context: BridgeContext): Promise<number>;
|
2020-01-03 14:44:51 +08:00
|
|
|
getLocationOnScreen(context: BridgeContext): Promise<{
|
|
|
|
x: number;
|
|
|
|
y: number;
|
|
|
|
}>;
|
|
|
|
/**++++++++++transform++++++++++*/
|
|
|
|
translationX?: number;
|
|
|
|
translationY?: number;
|
2020-04-16 19:21:24 +08:00
|
|
|
/**
|
|
|
|
* float [0,..1]
|
|
|
|
*/
|
2020-01-03 14:44:51 +08:00
|
|
|
scaleX?: number;
|
|
|
|
scaleY?: number;
|
|
|
|
pivotX?: number;
|
|
|
|
pivotY?: number;
|
2020-04-16 19:21:24 +08:00
|
|
|
/**
|
|
|
|
* rotation*PI
|
2020-06-02 20:43:27 +08:00
|
|
|
* In Z
|
2020-04-16 19:21:24 +08:00
|
|
|
*/
|
2020-01-03 14:44:51 +08:00
|
|
|
rotation?: number;
|
2020-06-02 20:43:27 +08:00
|
|
|
/**
|
|
|
|
* rotation*PI
|
|
|
|
* In X
|
|
|
|
*/
|
|
|
|
rotationX?: number;
|
|
|
|
/**
|
|
|
|
* rotation*PI
|
|
|
|
* In Y
|
|
|
|
*/
|
|
|
|
rotationY?: number;
|
2020-06-03 14:53:32 +08:00
|
|
|
/**
|
|
|
|
* Determines the distance between the z=0 plane and the user in order to give a 3D-positioned element some perspective.
|
|
|
|
* Default is 200
|
|
|
|
*/
|
|
|
|
perspective?: number;
|
2020-01-03 14:44:51 +08:00
|
|
|
/**----------transform----------*/
|
2020-04-16 19:21:24 +08:00
|
|
|
/**
|
|
|
|
* Only affected when its superview or itself is FlexLayout.
|
|
|
|
*/
|
2020-04-09 20:01:22 +08:00
|
|
|
flexConfig?: FlexConfig;
|
2020-01-03 14:44:51 +08:00
|
|
|
doAnimation(context: BridgeContext, animation: IAnimation): Promise<void>;
|
|
|
|
}
|
|
|
|
export declare abstract class Superview extends View {
|
|
|
|
subviewById(id: string): View | undefined;
|
|
|
|
abstract allSubviews(): Iterable<View>;
|
|
|
|
isDirty(): boolean;
|
|
|
|
clean(): void;
|
2020-01-03 16:35:04 +08:00
|
|
|
toModel(): NativeViewModel;
|
2020-01-03 14:44:51 +08:00
|
|
|
}
|
|
|
|
export declare abstract class Group extends Superview {
|
|
|
|
readonly children: View[];
|
|
|
|
allSubviews(): View[];
|
|
|
|
addChild(view: View): void;
|
2020-05-15 17:58:25 +08:00
|
|
|
removeChild(view: View): void;
|
|
|
|
removeAllChildren(): void;
|
2020-01-03 14:44:51 +08:00
|
|
|
}
|