2022-08-11 13:36:18 +08:00
|
|
|
|
declare module "doric" {
|
2023-03-09 10:55:32 +08:00
|
|
|
|
// Generated by dts-bundle-generator v6.13.0
|
2022-08-11 13:36:18 +08:00
|
|
|
|
|
|
|
|
|
export interface Modeling {
|
|
|
|
|
toModel(): Model;
|
|
|
|
|
}
|
|
|
|
|
export function obj2Model(obj: Model, convertor: (v: Function) => string): Model;
|
|
|
|
|
export type _M = string | number | boolean | Modeling | {
|
|
|
|
|
[index: string]: Model;
|
|
|
|
|
} | undefined;
|
|
|
|
|
export type Model = _M | Array<_M>;
|
|
|
|
|
export type Binder<T> = (v: T) => void;
|
|
|
|
|
export class Mutable<T> {
|
|
|
|
|
private val;
|
|
|
|
|
private binders;
|
|
|
|
|
get: () => T;
|
|
|
|
|
set: (v: T) => void;
|
|
|
|
|
private constructor();
|
|
|
|
|
bind(binder: Binder<T>): void;
|
|
|
|
|
static of<E>(v: E): Mutable<E>;
|
|
|
|
|
}
|
|
|
|
|
export type ClassType<T> = new (...args: any) => T;
|
|
|
|
|
/**
|
|
|
|
|
* Store color as format AARRGGBB or RRGGBB
|
|
|
|
|
*/
|
|
|
|
|
export class Color implements Modeling {
|
|
|
|
|
static BLACK: Color;
|
|
|
|
|
static DKGRAY: Color;
|
|
|
|
|
static GRAY: Color;
|
|
|
|
|
static LTGRAY: Color;
|
|
|
|
|
static WHITE: Color;
|
|
|
|
|
static RED: Color;
|
|
|
|
|
static GREEN: Color;
|
|
|
|
|
static BLUE: Color;
|
|
|
|
|
static YELLOW: Color;
|
|
|
|
|
static CYAN: Color;
|
|
|
|
|
static MAGENTA: Color;
|
|
|
|
|
static TRANSPARENT: Color;
|
|
|
|
|
_value: number;
|
|
|
|
|
constructor(v: number);
|
|
|
|
|
static parse(str: string): Color;
|
|
|
|
|
static safeParse(str: string, defVal?: Color): Color;
|
|
|
|
|
alpha(v: number): Color;
|
|
|
|
|
toModel(): number;
|
|
|
|
|
}
|
|
|
|
|
export enum GradientOrientation {
|
|
|
|
|
/** draw the gradient from the top to the bottom */
|
|
|
|
|
TOP_BOTTOM = 0,
|
|
|
|
|
/** draw the gradient from the top-right to the bottom-left */
|
|
|
|
|
TR_BL = 1,
|
|
|
|
|
/** draw the gradient from the right to the left */
|
|
|
|
|
RIGHT_LEFT = 2,
|
|
|
|
|
/** draw the gradient from the bottom-right to the top-left */
|
|
|
|
|
BR_TL = 3,
|
|
|
|
|
/** draw the gradient from the bottom to the top */
|
|
|
|
|
BOTTOM_TOP = 4,
|
|
|
|
|
/** draw the gradient from the bottom-left to the top-right */
|
|
|
|
|
BL_TR = 5,
|
|
|
|
|
/** draw the gradient from the left to the right */
|
|
|
|
|
LEFT_RIGHT = 6,
|
|
|
|
|
/** draw the gradient from the top-left to the bottom-right */
|
|
|
|
|
TL_BR = 7
|
|
|
|
|
}
|
|
|
|
|
export interface GradientColor {
|
|
|
|
|
start?: Color;
|
|
|
|
|
end?: Color;
|
|
|
|
|
colors?: Array<Color>;
|
|
|
|
|
locations?: Array<Number>;
|
|
|
|
|
orientation: GradientOrientation;
|
|
|
|
|
}
|
|
|
|
|
export const LEFT: number;
|
|
|
|
|
export const RIGHT: number;
|
|
|
|
|
export const TOP: number;
|
|
|
|
|
export const BOTTOM: number;
|
|
|
|
|
export const CENTER_X: number;
|
|
|
|
|
export const CENTER_Y: number;
|
|
|
|
|
export const CENTER: number;
|
|
|
|
|
export class Gravity implements Modeling {
|
|
|
|
|
val: number;
|
|
|
|
|
left(): Gravity;
|
|
|
|
|
right(): Gravity;
|
|
|
|
|
top(): Gravity;
|
|
|
|
|
bottom(): Gravity;
|
|
|
|
|
center(): Gravity;
|
|
|
|
|
centerX(): Gravity;
|
|
|
|
|
centerY(): Gravity;
|
|
|
|
|
toModel(): number;
|
|
|
|
|
private static origin;
|
|
|
|
|
static Center: Gravity;
|
|
|
|
|
static CenterX: Gravity;
|
|
|
|
|
static CenterY: Gravity;
|
|
|
|
|
static Left: Gravity;
|
|
|
|
|
static Right: Gravity;
|
|
|
|
|
static Top: Gravity;
|
|
|
|
|
static Bottom: Gravity;
|
|
|
|
|
}
|
|
|
|
|
export function gravity(): Gravity;
|
|
|
|
|
export enum LayoutSpec {
|
|
|
|
|
/**
|
|
|
|
|
* Depends on what's been set on width or height.
|
|
|
|
|
*/
|
|
|
|
|
JUST = 0,
|
|
|
|
|
/**
|
|
|
|
|
* Depends on it's content.
|
|
|
|
|
*/
|
|
|
|
|
FIT = 1,
|
|
|
|
|
/**
|
|
|
|
|
* Extend as much as parent let it take.
|
|
|
|
|
*/
|
|
|
|
|
MOST = 2
|
|
|
|
|
}
|
|
|
|
|
export interface LayoutConfig {
|
|
|
|
|
widthSpec?: LayoutSpec;
|
|
|
|
|
heightSpec?: LayoutSpec;
|
|
|
|
|
margin?: {
|
|
|
|
|
left?: number;
|
|
|
|
|
right?: number;
|
|
|
|
|
top?: number;
|
|
|
|
|
bottom?: number;
|
|
|
|
|
};
|
|
|
|
|
alignment?: Gravity;
|
|
|
|
|
weight?: number;
|
|
|
|
|
maxWidth?: number;
|
|
|
|
|
maxHeight?: number;
|
|
|
|
|
minWidth?: number;
|
|
|
|
|
minHeight?: number;
|
|
|
|
|
}
|
|
|
|
|
export class LayoutConfigImpl implements LayoutConfig, Modeling {
|
|
|
|
|
widthSpec?: LayoutSpec;
|
|
|
|
|
heightSpec?: LayoutSpec;
|
|
|
|
|
margin?: {
|
|
|
|
|
left?: number;
|
|
|
|
|
right?: number;
|
|
|
|
|
top?: number;
|
|
|
|
|
bottom?: number;
|
|
|
|
|
};
|
|
|
|
|
alignment?: Gravity;
|
|
|
|
|
weight?: number;
|
|
|
|
|
maxWidth?: number;
|
|
|
|
|
maxHeight?: number;
|
|
|
|
|
minWidth?: number;
|
|
|
|
|
minHeight?: number;
|
|
|
|
|
fit(): this;
|
|
|
|
|
fitWidth(): this;
|
|
|
|
|
fitHeight(): this;
|
|
|
|
|
most(): this;
|
|
|
|
|
mostWidth(): this;
|
|
|
|
|
mostHeight(): this;
|
|
|
|
|
just(): this;
|
|
|
|
|
justWidth(): this;
|
|
|
|
|
justHeight(): this;
|
|
|
|
|
configWidth(w: LayoutSpec): this;
|
|
|
|
|
configHeight(h: LayoutSpec): this;
|
|
|
|
|
configMargin(m: {
|
|
|
|
|
left?: number;
|
|
|
|
|
right?: number;
|
|
|
|
|
top?: number;
|
|
|
|
|
bottom?: number;
|
|
|
|
|
}): this;
|
|
|
|
|
configAlignment(a: Gravity): this;
|
|
|
|
|
configWeight(w: number): this;
|
|
|
|
|
configMaxWidth(v: number): this;
|
|
|
|
|
configMaxHeight(v: number): this;
|
|
|
|
|
configMinWidth(v: number): this;
|
|
|
|
|
configMinHeight(v: number): this;
|
|
|
|
|
toModel(): {
|
|
|
|
|
widthSpec: LayoutSpec | undefined;
|
|
|
|
|
heightSpec: LayoutSpec | undefined;
|
|
|
|
|
margin: {
|
|
|
|
|
left?: number | undefined;
|
|
|
|
|
right?: number | undefined;
|
|
|
|
|
top?: number | undefined;
|
|
|
|
|
bottom?: number | undefined;
|
|
|
|
|
} | undefined;
|
|
|
|
|
alignment: number | undefined;
|
|
|
|
|
weight: number | undefined;
|
|
|
|
|
minWidth: number | undefined;
|
|
|
|
|
maxWidth: number | undefined;
|
|
|
|
|
minHeight: number | undefined;
|
|
|
|
|
maxHeight: number | undefined;
|
|
|
|
|
};
|
|
|
|
|
}
|
|
|
|
|
export function layoutConfig(): LayoutConfigImpl;
|
|
|
|
|
export type AnimatedKey = "translationX" | "translationY" | "scaleX" | "scaleY" | "rotation" | "pivotX" | "pivotY" | "rotationX" | "rotationY" | "backgroundColor" | "alpha";
|
|
|
|
|
export enum RepeatMode {
|
|
|
|
|
RESTART = 1,
|
|
|
|
|
REVERSE = 2
|
|
|
|
|
}
|
|
|
|
|
export interface IAnimation extends Modeling {
|
|
|
|
|
duration: number;
|
|
|
|
|
delay?: number;
|
|
|
|
|
id: string;
|
|
|
|
|
}
|
|
|
|
|
export interface Changeable {
|
|
|
|
|
fromValue: number;
|
|
|
|
|
toValue: number;
|
|
|
|
|
key: AnimatedKey;
|
|
|
|
|
repeatCount?: number;
|
|
|
|
|
repeatMode?: RepeatMode;
|
|
|
|
|
keyFrames?: {
|
|
|
|
|
percent: number;
|
|
|
|
|
value: number;
|
|
|
|
|
}[];
|
|
|
|
|
}
|
|
|
|
|
export enum FillMode {
|
|
|
|
|
/**
|
|
|
|
|
* The receiver is removed from the presentation when the animation is completed.
|
|
|
|
|
*/
|
|
|
|
|
Removed = 0,
|
|
|
|
|
/**
|
|
|
|
|
* The receiver remains visible in its final state when the animation is completed.
|
|
|
|
|
*/
|
|
|
|
|
Forward = 1,
|
|
|
|
|
/**
|
|
|
|
|
* The receiver clamps values before zero to zero when the animation is completed.
|
|
|
|
|
*/
|
|
|
|
|
Backward = 2,
|
|
|
|
|
/**
|
|
|
|
|
* The receiver clamps values at both ends of the object’s time space
|
|
|
|
|
*/
|
|
|
|
|
Both = 3
|
|
|
|
|
}
|
|
|
|
|
export enum TimingFunction {
|
|
|
|
|
/**
|
|
|
|
|
* The system default timing function. Use this function to ensure that the timing of your animations matches that of most system animations.
|
|
|
|
|
*/
|
|
|
|
|
Default = 0,
|
|
|
|
|
/**
|
|
|
|
|
* Linear pacing, which causes an animation to occur evenly over its duration.
|
|
|
|
|
*/
|
|
|
|
|
Linear = 1,
|
|
|
|
|
/**
|
|
|
|
|
* Ease-in pacing, which causes an animation to begin slowly and then speed up as it progresses.
|
|
|
|
|
*/
|
|
|
|
|
EaseIn = 2,
|
|
|
|
|
/**
|
|
|
|
|
* Ease-out pacing, which causes an animation to begin quickly and then slow as it progresses.
|
|
|
|
|
*/
|
|
|
|
|
EaseOut = 3,
|
|
|
|
|
/**
|
|
|
|
|
* Ease-in-ease-out pacing, which causes an animation to begin slowly, accelerate through the middle of its duration, and then slow again before completing.
|
|
|
|
|
*/
|
|
|
|
|
EaseInEaseOut = 4
|
|
|
|
|
} abstract class Animation implements IAnimation {
|
|
|
|
|
changeables: Map<AnimatedKey, Changeable>;
|
|
|
|
|
duration: number;
|
|
|
|
|
repeatCount?: number;
|
|
|
|
|
repeatMode?: RepeatMode;
|
|
|
|
|
delay?: number;
|
|
|
|
|
fillMode: FillMode;
|
|
|
|
|
timingFunction?: TimingFunction;
|
|
|
|
|
id: string;
|
|
|
|
|
toModel(): {
|
|
|
|
|
type: string;
|
|
|
|
|
delay: number | undefined;
|
|
|
|
|
duration: number;
|
|
|
|
|
changeables: {
|
|
|
|
|
key: AnimatedKey;
|
|
|
|
|
fromValue: number;
|
|
|
|
|
toValue: number;
|
|
|
|
|
keyFrames: {
|
|
|
|
|
percent: number;
|
|
|
|
|
value: number;
|
|
|
|
|
}[] | undefined;
|
|
|
|
|
}[];
|
|
|
|
|
repeatCount: number | undefined;
|
|
|
|
|
repeatMode: RepeatMode | undefined;
|
|
|
|
|
fillMode: FillMode;
|
|
|
|
|
timingFunction: TimingFunction | undefined;
|
|
|
|
|
id: string;
|
|
|
|
|
};
|
|
|
|
|
}
|
|
|
|
|
export class ScaleAnimation extends Animation {
|
|
|
|
|
private scaleXChangeable;
|
|
|
|
|
private scaleYChangeable;
|
|
|
|
|
constructor();
|
|
|
|
|
set xKeyFrames(keyFrames: {
|
|
|
|
|
percent: number;
|
|
|
|
|
value: number;
|
|
|
|
|
}[]);
|
|
|
|
|
set yKeyFrames(keyFrames: {
|
|
|
|
|
percent: number;
|
|
|
|
|
value: number;
|
|
|
|
|
}[]);
|
|
|
|
|
set fromScaleX(v: number);
|
|
|
|
|
get fromScaleX(): number;
|
|
|
|
|
set toScaleX(v: number);
|
|
|
|
|
get toScaleX(): number;
|
|
|
|
|
set fromScaleY(v: number);
|
|
|
|
|
get fromScaleY(): number;
|
|
|
|
|
set toScaleY(v: number);
|
|
|
|
|
get toScaleY(): number;
|
|
|
|
|
}
|
|
|
|
|
export class TranslationAnimation extends Animation {
|
|
|
|
|
private translationXChangeable;
|
|
|
|
|
private translationYChangeable;
|
|
|
|
|
constructor();
|
|
|
|
|
set xKeyFrames(keyFrames: {
|
|
|
|
|
percent: number;
|
|
|
|
|
value: number;
|
|
|
|
|
}[]);
|
|
|
|
|
set yKeyFrames(keyFrames: {
|
|
|
|
|
percent: number;
|
|
|
|
|
value: number;
|
|
|
|
|
}[]);
|
|
|
|
|
set fromTranslationX(v: number);
|
|
|
|
|
get fromTranslationX(): number;
|
|
|
|
|
set toTranslationX(v: number);
|
|
|
|
|
get toTranslationX(): number;
|
|
|
|
|
set fromTranslationY(v: number);
|
|
|
|
|
get fromTranslationY(): number;
|
|
|
|
|
set toTranslationY(v: number);
|
|
|
|
|
get toTranslationY(): number;
|
|
|
|
|
}
|
|
|
|
|
/**
|
|
|
|
|
* Rotation range is [0..2]
|
|
|
|
|
*/
|
|
|
|
|
export class RotationAnimation extends Animation {
|
|
|
|
|
private rotationChaneable;
|
|
|
|
|
constructor();
|
|
|
|
|
set fromRotation(v: number);
|
|
|
|
|
get fromRotation(): number;
|
|
|
|
|
set toRotation(v: number);
|
|
|
|
|
get toRotation(): number;
|
|
|
|
|
set keyFrames(keyFrames: {
|
|
|
|
|
percent: number;
|
|
|
|
|
value: number;
|
|
|
|
|
}[]);
|
|
|
|
|
}
|
|
|
|
|
/**
|
|
|
|
|
* Rotation range is [0..2]
|
|
|
|
|
*/
|
|
|
|
|
export class RotationXAnimation extends Animation {
|
|
|
|
|
private rotationChaneable;
|
|
|
|
|
constructor();
|
|
|
|
|
set fromRotation(v: number);
|
|
|
|
|
get fromRotation(): number;
|
|
|
|
|
set toRotation(v: number);
|
|
|
|
|
get toRotation(): number;
|
|
|
|
|
set keyFrames(keyFrames: {
|
|
|
|
|
percent: number;
|
|
|
|
|
value: number;
|
|
|
|
|
}[]);
|
|
|
|
|
}
|
|
|
|
|
/**
|
|
|
|
|
* Rotation range is [0..2]
|
|
|
|
|
*/
|
|
|
|
|
export class RotationYAnimation extends Animation {
|
|
|
|
|
private rotationChaneable;
|
|
|
|
|
constructor();
|
|
|
|
|
set fromRotation(v: number);
|
|
|
|
|
get fromRotation(): number;
|
|
|
|
|
set toRotation(v: number);
|
|
|
|
|
get toRotation(): number;
|
|
|
|
|
set keyFrames(keyFrames: {
|
|
|
|
|
percent: number;
|
|
|
|
|
value: number;
|
|
|
|
|
}[]);
|
|
|
|
|
}
|
|
|
|
|
export class BackgroundColorAnimation extends Animation {
|
|
|
|
|
private backgroundColorChangeable;
|
|
|
|
|
constructor();
|
|
|
|
|
set fromColor(color: Color);
|
|
|
|
|
get fromColor(): Color;
|
|
|
|
|
set toColor(v: Color);
|
|
|
|
|
get toColor(): Color;
|
|
|
|
|
set keyFrames(keyFrames: {
|
|
|
|
|
percent: number;
|
|
|
|
|
value: Color;
|
|
|
|
|
}[]);
|
|
|
|
|
}
|
|
|
|
|
/**
|
|
|
|
|
* Alpha range is [0..1]
|
|
|
|
|
*/
|
|
|
|
|
export class AlphaAnimation extends Animation {
|
|
|
|
|
private opacityChangeable;
|
|
|
|
|
constructor();
|
|
|
|
|
set from(v: number);
|
|
|
|
|
get from(): number;
|
|
|
|
|
set to(v: number);
|
|
|
|
|
get to(): number;
|
|
|
|
|
set keyFrames(keyFrames: {
|
|
|
|
|
percent: number;
|
|
|
|
|
value: number;
|
|
|
|
|
}[]);
|
|
|
|
|
}
|
|
|
|
|
export class AnimationSet implements IAnimation {
|
|
|
|
|
private animations;
|
|
|
|
|
private _duration;
|
|
|
|
|
delay?: number;
|
|
|
|
|
id: string;
|
|
|
|
|
addAnimation(anim: IAnimation): void;
|
|
|
|
|
get duration(): number;
|
|
|
|
|
set duration(v: number);
|
|
|
|
|
toModel(): {
|
|
|
|
|
animations: Model;
|
|
|
|
|
delay: number | undefined;
|
|
|
|
|
id: string;
|
|
|
|
|
};
|
|
|
|
|
} enum ValueType {
|
|
|
|
|
Undefined = 0,
|
|
|
|
|
Point = 1,
|
|
|
|
|
Percent = 2,
|
|
|
|
|
Auto = 3
|
|
|
|
|
}
|
|
|
|
|
export class FlexTypedValue implements Modeling {
|
|
|
|
|
type: ValueType;
|
|
|
|
|
value: number;
|
|
|
|
|
constructor(type: ValueType);
|
|
|
|
|
static Auto: FlexTypedValue;
|
|
|
|
|
static percent(v: number): FlexTypedValue;
|
|
|
|
|
static point(v: number): FlexTypedValue;
|
|
|
|
|
toModel(): {
|
|
|
|
|
type: ValueType;
|
|
|
|
|
value: number;
|
|
|
|
|
};
|
|
|
|
|
}
|
|
|
|
|
export enum FlexDirection {
|
|
|
|
|
COLUMN = 0,
|
|
|
|
|
COLUMN_REVERSE = 1,
|
|
|
|
|
ROW = 2,
|
|
|
|
|
ROW_REVERSE = 3
|
|
|
|
|
}
|
|
|
|
|
export enum Align {
|
|
|
|
|
AUTO = 0,
|
|
|
|
|
FLEX_START = 1,
|
|
|
|
|
CENTER = 2,
|
|
|
|
|
FLEX_END = 3,
|
|
|
|
|
STRETCH = 4,
|
|
|
|
|
BASELINE = 5,
|
|
|
|
|
SPACE_BETWEEN = 6,
|
|
|
|
|
SPACE_AROUND = 7
|
|
|
|
|
}
|
|
|
|
|
export enum Justify {
|
|
|
|
|
FLEX_START = 0,
|
|
|
|
|
CENTER = 1,
|
|
|
|
|
FLEX_END = 2,
|
|
|
|
|
SPACE_BETWEEN = 3,
|
|
|
|
|
SPACE_AROUND = 4,
|
|
|
|
|
SPACE_EVENLY = 5
|
|
|
|
|
}
|
|
|
|
|
export enum Direction {
|
|
|
|
|
INHERIT = 0,
|
|
|
|
|
LTR = 1,
|
|
|
|
|
RTL = 2
|
|
|
|
|
}
|
|
|
|
|
export enum PositionType {
|
|
|
|
|
RELATIVE = 0,
|
|
|
|
|
ABSOLUTE = 1
|
|
|
|
|
}
|
|
|
|
|
export enum Wrap {
|
|
|
|
|
NO_WRAP = 0,
|
|
|
|
|
WRAP = 1,
|
|
|
|
|
WRAP_REVERSE = 2
|
|
|
|
|
}
|
|
|
|
|
export enum OverFlow {
|
|
|
|
|
VISIBLE = 0,
|
|
|
|
|
HIDDEN = 1,
|
|
|
|
|
SCROLL = 2
|
|
|
|
|
}
|
|
|
|
|
export enum Display {
|
|
|
|
|
FLEX = 0,
|
|
|
|
|
NONE = 1
|
|
|
|
|
}
|
|
|
|
|
export type FlexValue = FlexTypedValue | number;
|
|
|
|
|
export interface FlexConfig {
|
|
|
|
|
direction?: Direction;
|
|
|
|
|
flexDirection?: FlexDirection;
|
|
|
|
|
justifyContent?: Justify;
|
|
|
|
|
alignContent?: Align;
|
|
|
|
|
alignItems?: Align;
|
|
|
|
|
alignSelf?: Align;
|
|
|
|
|
positionType?: PositionType;
|
|
|
|
|
flexWrap?: Wrap;
|
|
|
|
|
overFlow?: OverFlow;
|
|
|
|
|
display?: Display;
|
|
|
|
|
flex?: number;
|
|
|
|
|
flexGrow?: number;
|
|
|
|
|
flexShrink?: number;
|
|
|
|
|
flexBasis?: FlexValue;
|
|
|
|
|
marginLeft?: FlexValue;
|
|
|
|
|
marginRight?: FlexValue;
|
|
|
|
|
marginTop?: FlexValue;
|
|
|
|
|
marginBottom?: FlexValue;
|
|
|
|
|
marginStart?: FlexValue;
|
|
|
|
|
marginEnd?: FlexValue;
|
|
|
|
|
marginHorizontal?: FlexValue;
|
|
|
|
|
marginVertical?: FlexValue;
|
|
|
|
|
margin?: FlexValue;
|
|
|
|
|
paddingLeft?: FlexValue;
|
|
|
|
|
paddingRight?: FlexValue;
|
|
|
|
|
paddingTop?: FlexValue;
|
|
|
|
|
paddingBottom?: FlexValue;
|
|
|
|
|
paddingStart?: FlexValue;
|
|
|
|
|
paddingEnd?: FlexValue;
|
|
|
|
|
paddingHorizontal?: FlexValue;
|
|
|
|
|
paddingVertical?: FlexValue;
|
|
|
|
|
padding?: FlexValue;
|
|
|
|
|
borderLeftWidth?: number;
|
|
|
|
|
borderRightWidth?: number;
|
|
|
|
|
borderTopWidth?: number;
|
|
|
|
|
borderBottomWidth?: number;
|
|
|
|
|
borderStartWidth?: number;
|
|
|
|
|
borderEndWidth?: number;
|
|
|
|
|
borderWidth?: number;
|
|
|
|
|
left?: FlexValue;
|
|
|
|
|
right?: FlexValue;
|
|
|
|
|
top?: FlexValue;
|
|
|
|
|
bottom?: FlexValue;
|
|
|
|
|
start?: FlexValue;
|
|
|
|
|
end?: FlexValue;
|
|
|
|
|
width?: FlexValue;
|
|
|
|
|
height?: FlexValue;
|
|
|
|
|
minWidth?: FlexValue;
|
|
|
|
|
minHeight?: FlexValue;
|
|
|
|
|
maxWidth?: FlexValue;
|
|
|
|
|
maxHeight?: FlexValue;
|
|
|
|
|
aspectRatio?: number;
|
|
|
|
|
}
|
|
|
|
|
export function Property(target: Object, propKey: string): void;
|
|
|
|
|
export function InconsistProperty(target: Object, propKey: string): void;
|
|
|
|
|
export function ViewComponent(constructor: ClassType<any>): void;
|
|
|
|
|
export type NativeViewModel = {
|
|
|
|
|
id: string;
|
|
|
|
|
type: string;
|
|
|
|
|
props: {
|
|
|
|
|
[index: string]: Model;
|
|
|
|
|
};
|
|
|
|
|
};
|
|
|
|
|
export type RefType<T> = T extends Ref<infer R> ? R : never;
|
|
|
|
|
export class Ref<T extends View> {
|
|
|
|
|
private view?;
|
|
|
|
|
set current(v: T);
|
|
|
|
|
get current(): T;
|
|
|
|
|
apply(config: Partial<RefType<this>>): void;
|
|
|
|
|
}
|
|
|
|
|
export function createRef<T extends View>(): Ref<T>;
|
|
|
|
|
export abstract class View implements Modeling {
|
|
|
|
|
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;
|
|
|
|
|
};
|
|
|
|
|
/**
|
|
|
|
|
* float [0,..1]
|
|
|
|
|
*/
|
|
|
|
|
alpha?: number;
|
|
|
|
|
hidden?: boolean;
|
|
|
|
|
viewId: string;
|
|
|
|
|
tag?: string;
|
|
|
|
|
layoutConfig?: LayoutConfig;
|
|
|
|
|
onClick?: Function;
|
|
|
|
|
superview?: Superview;
|
|
|
|
|
callbacks: Map<String, Function>;
|
|
|
|
|
callback2Id(f: Function): string;
|
|
|
|
|
private id2Callback;
|
|
|
|
|
findViewByTag(tag: string): View | undefined;
|
|
|
|
|
constructor();
|
|
|
|
|
/** Anchor start*/
|
|
|
|
|
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);
|
|
|
|
|
/** Anchor end*/
|
|
|
|
|
private __dirty_props__;
|
|
|
|
|
get dirtyProps(): {
|
|
|
|
|
[index: string]: Model;
|
|
|
|
|
};
|
|
|
|
|
nativeViewModel: NativeViewModel;
|
|
|
|
|
viewType(): any;
|
|
|
|
|
onPropertyChanged(propKey: string, oldV: Model, newV: Model): void;
|
|
|
|
|
clean(): void;
|
|
|
|
|
isDirty(): boolean;
|
|
|
|
|
responseCallback(id: string, ...args: any): any;
|
|
|
|
|
toModel(): NativeViewModel;
|
|
|
|
|
let(block: (it: this) => void): void;
|
|
|
|
|
also(block: (it: this) => void): this;
|
|
|
|
|
apply(config: Partial<this>): this;
|
|
|
|
|
in(group: Group): this;
|
|
|
|
|
nativeChannel(context: BridgeContext, name: string): (args?: any) => Promise<any>;
|
|
|
|
|
getWidth(context: BridgeContext): Promise<number>;
|
|
|
|
|
getHeight(context: BridgeContext): Promise<number>;
|
|
|
|
|
getX(context: BridgeContext): Promise<number>;
|
|
|
|
|
getY(context: BridgeContext): Promise<number>;
|
|
|
|
|
getLocationOnScreen(context: BridgeContext): Promise<{
|
|
|
|
|
x: number;
|
|
|
|
|
y: number;
|
|
|
|
|
}>;
|
|
|
|
|
/**++++++++++transform++++++++++*/
|
|
|
|
|
translationX?: number;
|
|
|
|
|
translationY?: number;
|
|
|
|
|
/**
|
|
|
|
|
* float [0,..1]
|
|
|
|
|
*/
|
|
|
|
|
scaleX?: number;
|
|
|
|
|
scaleY?: number;
|
|
|
|
|
pivotX?: number;
|
|
|
|
|
pivotY?: number;
|
|
|
|
|
/**
|
|
|
|
|
* rotation*PI
|
|
|
|
|
* In Z
|
|
|
|
|
*/
|
|
|
|
|
rotation?: number;
|
|
|
|
|
/**
|
|
|
|
|
* rotation*PI
|
|
|
|
|
* In X
|
|
|
|
|
*/
|
|
|
|
|
rotationX?: number;
|
|
|
|
|
/**
|
|
|
|
|
* rotation*PI
|
|
|
|
|
* In Y
|
|
|
|
|
*/
|
|
|
|
|
rotationY?: number;
|
|
|
|
|
/**
|
|
|
|
|
* 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;
|
|
|
|
|
/**----------transform----------*/
|
|
|
|
|
/**
|
|
|
|
|
* Only affected when its superview or itself is FlexLayout.
|
|
|
|
|
*/
|
|
|
|
|
flexConfig?: FlexConfig;
|
|
|
|
|
set props(props: Partial<this>);
|
|
|
|
|
set parent(v: Group);
|
2022-09-17 03:51:08 +08:00
|
|
|
|
private _ref?;
|
2022-08-11 13:36:18 +08:00
|
|
|
|
set ref(ref: Ref<this>);
|
|
|
|
|
doAnimation(context: BridgeContext, animation: IAnimation): Promise<void>;
|
|
|
|
|
clearAnimation(context: BridgeContext, animation: IAnimation): Promise<void>;
|
|
|
|
|
cancelAnimation(context: BridgeContext, animation: IAnimation): Promise<void>;
|
|
|
|
|
static isViewClass(): boolean;
|
|
|
|
|
}
|
|
|
|
|
export abstract class Superview extends View {
|
|
|
|
|
subviewById(id: string): View | undefined;
|
|
|
|
|
findViewByTag(tag: string): View | undefined;
|
|
|
|
|
private findViewTraversal;
|
|
|
|
|
abstract allSubviews(): Iterable<View>;
|
|
|
|
|
isDirty(): boolean;
|
|
|
|
|
clean(): void;
|
|
|
|
|
toModel(): NativeViewModel;
|
|
|
|
|
}
|
|
|
|
|
export type ViewArray = View[];
|
|
|
|
|
export type ViewFragment = View | ViewArray | undefined | null;
|
|
|
|
|
export abstract class Group extends Superview implements JSX.ElementChildrenAttribute {
|
2022-08-25 10:42:56 +08:00
|
|
|
|
padding?: {
|
|
|
|
|
left?: number;
|
|
|
|
|
right?: number;
|
|
|
|
|
top?: number;
|
|
|
|
|
bottom?: number;
|
|
|
|
|
};
|
2022-08-11 13:36:18 +08:00
|
|
|
|
readonly children: View[];
|
|
|
|
|
allSubviews(): View[];
|
|
|
|
|
addChild(view: View): void;
|
|
|
|
|
removeChild(view: View): void;
|
|
|
|
|
removeAllChildren(): void;
|
|
|
|
|
private addInnerElement;
|
|
|
|
|
set innerElement(e: View | ViewFragment | ViewFragment[] | undefined | null);
|
|
|
|
|
}
|
|
|
|
|
export class Stack extends Group {
|
|
|
|
|
}
|
|
|
|
|
export class Root extends Stack {
|
|
|
|
|
} class LinearLayout extends Group {
|
|
|
|
|
space?: number;
|
|
|
|
|
gravity?: Gravity;
|
|
|
|
|
}
|
|
|
|
|
export class VLayout extends LinearLayout {
|
|
|
|
|
}
|
|
|
|
|
export class HLayout extends LinearLayout {
|
|
|
|
|
}
|
|
|
|
|
export function stack(views: View[], config?: Partial<Stack>): Stack;
|
|
|
|
|
export function hlayout(views: View[], config?: Partial<HLayout>): HLayout;
|
|
|
|
|
export function vlayout(views: View[], config?: Partial<VLayout>): VLayout;
|
|
|
|
|
export class FlexLayout extends Group {
|
|
|
|
|
}
|
|
|
|
|
export function flexlayout(views: View[], config?: Partial<FlexLayout>): FlexLayout;
|
|
|
|
|
export function NativeCall(target: Panel, propertyKey: string, descriptor: PropertyDescriptor): PropertyDescriptor;
|
|
|
|
|
export abstract class Panel {
|
|
|
|
|
private destroyed;
|
|
|
|
|
context: BridgeContext;
|
|
|
|
|
onCreate(): void;
|
|
|
|
|
onDestroy(): void;
|
|
|
|
|
onShow(): void;
|
|
|
|
|
onHidden(): void;
|
|
|
|
|
onEnvChanged(): void;
|
|
|
|
|
/**
|
|
|
|
|
* Build view of the current Panel
|
|
|
|
|
* This could be called any times at any time when necessary.
|
|
|
|
|
* @param rootView root view of this panel
|
|
|
|
|
*/
|
|
|
|
|
abstract build(rootView: Group): void;
|
|
|
|
|
private __data__?;
|
|
|
|
|
private __root__;
|
|
|
|
|
private headviews;
|
|
|
|
|
private onRenderFinishedCallback;
|
|
|
|
|
private __rendering__;
|
|
|
|
|
addHeadView(type: string, v: View): void;
|
|
|
|
|
allHeadViews(): IterableIterator<Map<string, View>>;
|
|
|
|
|
removeHeadView(type: string, v: View | string): void;
|
|
|
|
|
clearHeadViews(type: string): void;
|
|
|
|
|
getRootView(): Root;
|
|
|
|
|
getInitData(): object | undefined;
|
|
|
|
|
private __init__;
|
|
|
|
|
private __onCreate__;
|
|
|
|
|
private __onDestroy__;
|
|
|
|
|
private __onShow__;
|
|
|
|
|
private __onHidden__;
|
|
|
|
|
private __build__;
|
|
|
|
|
private __onEnvChanged__;
|
|
|
|
|
private __response__;
|
|
|
|
|
private retrospectView;
|
|
|
|
|
private snapshotEnabled;
|
|
|
|
|
private renderSnapshots;
|
|
|
|
|
private __renderSnapshotDepth__;
|
|
|
|
|
private __restoreRenderSnapshot__;
|
|
|
|
|
private __enableSnapshot__;
|
|
|
|
|
private nativeRender;
|
|
|
|
|
private hookBeforeNativeCall;
|
|
|
|
|
private hookAfterNativeCall;
|
2023-02-15 16:31:28 +08:00
|
|
|
|
private __fetchEffectiveData__;
|
2022-08-11 13:36:18 +08:00
|
|
|
|
onRenderFinished(): void;
|
|
|
|
|
addOnRenderFinishedCallback(cb: () => void): void;
|
|
|
|
|
}
|
|
|
|
|
export type BridgeContext = {
|
|
|
|
|
/**
|
|
|
|
|
* The identify of current context
|
|
|
|
|
*/
|
|
|
|
|
id: string;
|
|
|
|
|
/**
|
|
|
|
|
* In this case,It's current panel
|
|
|
|
|
*/
|
|
|
|
|
entity: any;
|
|
|
|
|
/**
|
|
|
|
|
* call native plugin
|
|
|
|
|
* @param namespace
|
|
|
|
|
* @param method
|
|
|
|
|
* @param args
|
|
|
|
|
*/
|
|
|
|
|
callNative(namespace: string, method: string, args?: any): Promise<any>;
|
|
|
|
|
/**
|
|
|
|
|
* Transform function to functionId as string
|
|
|
|
|
* @param func
|
|
|
|
|
*/
|
|
|
|
|
function2Id(func: Function): string;
|
|
|
|
|
/**
|
|
|
|
|
* Remove transformed functions
|
|
|
|
|
* @param funcId
|
|
|
|
|
*/
|
|
|
|
|
removeFuncById(funcId: string): void;
|
|
|
|
|
}; global {
|
|
|
|
|
const context: BridgeContext;
|
|
|
|
|
const Environment: {
|
|
|
|
|
platform: "Android" | "iOS" | "Qt" | "web";
|
|
|
|
|
platformVersion: string;
|
|
|
|
|
appName: string;
|
|
|
|
|
appVersion: string;
|
|
|
|
|
libVersion: string;
|
|
|
|
|
screenWidth: number;
|
|
|
|
|
screenHeight: number;
|
|
|
|
|
screenScale: number;
|
|
|
|
|
statusBarHeight: number;
|
|
|
|
|
hasNotch: boolean;
|
|
|
|
|
/**
|
|
|
|
|
* ex:Apple or Google
|
|
|
|
|
*/
|
|
|
|
|
deviceBrand: string;
|
|
|
|
|
/**
|
|
|
|
|
* ex: iPhone12,5 or pixel 3
|
|
|
|
|
*/
|
|
|
|
|
deviceModel: string;
|
|
|
|
|
/**
|
|
|
|
|
* The language code for current locale
|
|
|
|
|
*/
|
|
|
|
|
localeLanguage: string;
|
|
|
|
|
/**
|
|
|
|
|
* The country/region code for current locale
|
|
|
|
|
*/
|
|
|
|
|
localeCountry: string;
|
|
|
|
|
[index: string]: number | string | boolean | object | undefined;
|
|
|
|
|
};
|
|
|
|
|
function Entry(constructor: ClassType<Panel>): void;
|
|
|
|
|
function Entry(exports: ClassType<Panel>[]): (constructor: ClassType<Panel>) => void;
|
|
|
|
|
}
|
|
|
|
|
export abstract class Resource implements Modeling {
|
|
|
|
|
type: string;
|
|
|
|
|
identifier: string;
|
|
|
|
|
resId: string;
|
|
|
|
|
constructor(type: string, identifier: string);
|
|
|
|
|
toModel(): {
|
|
|
|
|
resId: string;
|
|
|
|
|
type: string;
|
|
|
|
|
identifier: string;
|
|
|
|
|
};
|
|
|
|
|
}
|
|
|
|
|
export class LocalResource extends Resource {
|
|
|
|
|
constructor(path: string);
|
|
|
|
|
}
|
|
|
|
|
export class RemoteResource extends Resource {
|
|
|
|
|
constructor(url: string);
|
|
|
|
|
}
|
|
|
|
|
export class Base64Resource extends Resource {
|
|
|
|
|
constructor(content: string);
|
|
|
|
|
}
|
|
|
|
|
/**
|
|
|
|
|
* Resources belong to assets dir.
|
|
|
|
|
*/
|
|
|
|
|
export class AssetsResource extends Resource {
|
|
|
|
|
constructor(content: string);
|
|
|
|
|
}
|
|
|
|
|
export class AndroidResource extends Resource {
|
|
|
|
|
}
|
|
|
|
|
export class iOSResource extends Resource {
|
|
|
|
|
}
|
|
|
|
|
/**
|
|
|
|
|
* This is for android platform
|
|
|
|
|
*/
|
|
|
|
|
export class DrawableResource extends AndroidResource {
|
|
|
|
|
constructor(name: string);
|
|
|
|
|
}
|
|
|
|
|
export class RawResource extends AndroidResource {
|
|
|
|
|
constructor(name: string);
|
|
|
|
|
}
|
|
|
|
|
export class AndroidAssetsResource extends AndroidResource {
|
|
|
|
|
constructor(path: string);
|
|
|
|
|
}
|
|
|
|
|
/**
|
|
|
|
|
* This is for iOS platform
|
|
|
|
|
*/
|
|
|
|
|
export class MainBundleResource extends iOSResource {
|
|
|
|
|
constructor(fileName: string);
|
|
|
|
|
}
|
|
|
|
|
export class BundleResource extends iOSResource {
|
|
|
|
|
constructor(bundleName: string, fileName: string);
|
|
|
|
|
}
|
|
|
|
|
export class ArrayBufferResource extends Resource {
|
|
|
|
|
data: ArrayBuffer;
|
|
|
|
|
constructor(data: ArrayBuffer);
|
|
|
|
|
toModel(): {
|
|
|
|
|
resId: string;
|
|
|
|
|
type: string;
|
|
|
|
|
identifier: string;
|
|
|
|
|
};
|
|
|
|
|
}
|
|
|
|
|
export enum TruncateAt {
|
|
|
|
|
End = 0,
|
|
|
|
|
Middle = 1,
|
|
|
|
|
Start = 2,
|
|
|
|
|
Clip = 3
|
|
|
|
|
}
|
|
|
|
|
export class Text extends View implements JSX.ElementChildrenAttribute {
|
|
|
|
|
text?: string;
|
|
|
|
|
textColor?: Color | GradientColor;
|
|
|
|
|
textSize?: number;
|
|
|
|
|
maxLines?: number;
|
|
|
|
|
textAlignment?: Gravity;
|
|
|
|
|
fontStyle?: "normal" | "bold" | "italic" | "bold_italic";
|
|
|
|
|
font?: string | Resource;
|
|
|
|
|
maxWidth?: number;
|
|
|
|
|
maxHeight?: number;
|
|
|
|
|
lineSpacing?: number;
|
|
|
|
|
strikethrough?: boolean;
|
|
|
|
|
underline?: boolean;
|
|
|
|
|
htmlText?: string;
|
|
|
|
|
truncateAt?: TruncateAt;
|
2022-08-25 10:42:56 +08:00
|
|
|
|
padding?: {
|
|
|
|
|
left?: number;
|
|
|
|
|
right?: number;
|
|
|
|
|
top?: number;
|
|
|
|
|
bottom?: number;
|
|
|
|
|
};
|
2022-08-11 13:36:18 +08:00
|
|
|
|
set innerElement(e: string);
|
|
|
|
|
}
|
|
|
|
|
export function text(config: Partial<Text>): Text;
|
|
|
|
|
export enum ScaleType {
|
|
|
|
|
ScaleToFill = 0,
|
|
|
|
|
ScaleAspectFit = 1,
|
|
|
|
|
ScaleAspectFill = 2,
|
|
|
|
|
Tile = 3
|
|
|
|
|
}
|
|
|
|
|
export class Image extends View {
|
|
|
|
|
/**
|
|
|
|
|
* Set pixels for image directly
|
|
|
|
|
*/
|
|
|
|
|
imagePixels?: {
|
|
|
|
|
width: number;
|
|
|
|
|
height: number;
|
|
|
|
|
pixels: ArrayBuffer;
|
|
|
|
|
};
|
|
|
|
|
/**
|
|
|
|
|
* This could be loaded by customized resource loader
|
|
|
|
|
*/
|
|
|
|
|
image?: Resource;
|
|
|
|
|
imageUrl?: string;
|
|
|
|
|
/**
|
|
|
|
|
* Read image from local file system.
|
|
|
|
|
*/
|
|
|
|
|
imageFilePath?: string;
|
|
|
|
|
/**
|
|
|
|
|
* Read image from local path
|
|
|
|
|
* For android,it based on assets dir.
|
|
|
|
|
* For iOS,it based on main bundle dir.
|
|
|
|
|
*/
|
|
|
|
|
imagePath?: string;
|
|
|
|
|
/**
|
|
|
|
|
* Read image from resource
|
|
|
|
|
* For android,it will try to read from drawable.
|
|
|
|
|
* For iOS,it will try to read from Image.Assets.
|
|
|
|
|
*/
|
|
|
|
|
imageRes?: string;
|
|
|
|
|
imageBase64?: string;
|
|
|
|
|
scaleType?: ScaleType;
|
|
|
|
|
isBlur?: boolean;
|
|
|
|
|
/**
|
|
|
|
|
* Display while image is loading
|
|
|
|
|
* Local file name
|
|
|
|
|
*/
|
|
|
|
|
placeHolderImage?: string;
|
|
|
|
|
placeHolderImageBase64?: string;
|
|
|
|
|
/**
|
|
|
|
|
* Display while image is loading
|
|
|
|
|
* Color
|
|
|
|
|
* This priority is lower than placeHolderImage
|
|
|
|
|
*/
|
|
|
|
|
placeHolderColor?: Color;
|
|
|
|
|
/**
|
|
|
|
|
* Display while image is failed to load
|
|
|
|
|
* It can be file name in local path
|
|
|
|
|
*/
|
|
|
|
|
errorImage?: string;
|
|
|
|
|
errorImageBase64?: string;
|
|
|
|
|
/**
|
|
|
|
|
* Display while image is failed to load
|
|
|
|
|
* Color
|
|
|
|
|
* This priority is lower than errorImage
|
|
|
|
|
*/
|
|
|
|
|
errorColor?: Color;
|
|
|
|
|
loadCallback?: (image: {
|
|
|
|
|
width: number;
|
|
|
|
|
height: number;
|
|
|
|
|
animated: boolean;
|
|
|
|
|
} | undefined) => void;
|
|
|
|
|
/**
|
|
|
|
|
* Default is Environment.screenScale.
|
|
|
|
|
*/
|
|
|
|
|
imageScale?: number;
|
|
|
|
|
/**
|
|
|
|
|
* Unit in pixel
|
|
|
|
|
*/
|
|
|
|
|
stretchInset?: {
|
|
|
|
|
left: number;
|
|
|
|
|
top: number;
|
|
|
|
|
right: number;
|
|
|
|
|
bottom: number;
|
|
|
|
|
};
|
|
|
|
|
/**
|
|
|
|
|
* Called if loaded image is animated and played end.
|
|
|
|
|
*/
|
|
|
|
|
onAnimationEnd?: () => void;
|
|
|
|
|
isAnimating(context: BridgeContext): Promise<boolean>;
|
|
|
|
|
startAnimating(context: BridgeContext): Promise<any>;
|
|
|
|
|
stopAnimating(context: BridgeContext): Promise<any>;
|
|
|
|
|
getImageInfo(context: BridgeContext): Promise<{
|
|
|
|
|
width: number;
|
|
|
|
|
height: number;
|
|
|
|
|
mimeType: string;
|
|
|
|
|
}>;
|
|
|
|
|
getImagePixels(context: BridgeContext): Promise<ArrayBuffer>;
|
|
|
|
|
setImagePixels(context: BridgeContext, image: {
|
|
|
|
|
width: number;
|
|
|
|
|
height: number;
|
|
|
|
|
pixels: ArrayBuffer;
|
|
|
|
|
}): Promise<void>;
|
|
|
|
|
}
|
|
|
|
|
export function image(config: Partial<Image>): Image;
|
|
|
|
|
export class ListItem extends Stack {
|
|
|
|
|
/**
|
|
|
|
|
* Set to reuse native view
|
|
|
|
|
*/
|
|
|
|
|
identifier?: string;
|
|
|
|
|
actions?: {
|
|
|
|
|
title: string;
|
|
|
|
|
backgroundColor?: Color;
|
|
|
|
|
callback: () => void;
|
|
|
|
|
}[];
|
|
|
|
|
}
|
|
|
|
|
export class List extends Superview {
|
|
|
|
|
private cachedViews;
|
|
|
|
|
allSubviews(): ListItem[];
|
|
|
|
|
itemCount: number;
|
|
|
|
|
renderItem: (index: number) => ListItem;
|
|
|
|
|
batchCount: number;
|
|
|
|
|
onLoadMore?: () => void;
|
|
|
|
|
loadMore?: boolean;
|
|
|
|
|
loadMoreView?: ListItem;
|
|
|
|
|
onScroll?: (offset: {
|
|
|
|
|
x: number;
|
|
|
|
|
y: number;
|
|
|
|
|
}) => void;
|
|
|
|
|
onScrollEnd?: (offset: {
|
|
|
|
|
x: number;
|
|
|
|
|
y: number;
|
|
|
|
|
}) => void;
|
|
|
|
|
scrolledPosition?: number;
|
|
|
|
|
scrollable?: boolean;
|
|
|
|
|
/**
|
|
|
|
|
* Take effect only on iOS
|
|
|
|
|
*/
|
|
|
|
|
bounces?: boolean;
|
2023-03-13 19:17:56 +08:00
|
|
|
|
/**
|
|
|
|
|
* Take effect only on iOS
|
|
|
|
|
*/
|
|
|
|
|
scrollsToTop?: boolean;
|
2022-08-11 13:36:18 +08:00
|
|
|
|
canDrag?: boolean;
|
2022-08-26 14:16:12 +08:00
|
|
|
|
/**
|
|
|
|
|
* @param from
|
|
|
|
|
* @returns Returns the item of index which can dragged or not.
|
|
|
|
|
*/
|
|
|
|
|
itemCanDrag?: (from: number) => boolean;
|
|
|
|
|
/**
|
|
|
|
|
* @param from
|
|
|
|
|
* @returns Returns an array of index which can not be swap during dragging.
|
|
|
|
|
*/
|
|
|
|
|
beforeDragging?: (from: number) => (Array<number> | void);
|
2022-08-11 13:36:18 +08:00
|
|
|
|
onDragging?: (from: number, to: number) => void;
|
|
|
|
|
onDragged?: (from: number, to: number) => void;
|
2023-03-09 10:55:32 +08:00
|
|
|
|
preloadItemCount?: number;
|
2022-08-11 13:36:18 +08:00
|
|
|
|
scrollToItem(context: BridgeContext, index: number, config?: {
|
|
|
|
|
animated?: boolean;
|
|
|
|
|
}): Promise<any>;
|
|
|
|
|
/**
|
|
|
|
|
* @param context
|
|
|
|
|
* @returns Returns array of visible view's index.
|
|
|
|
|
*/
|
|
|
|
|
findVisibleItems(context: BridgeContext): Promise<number[]>;
|
|
|
|
|
/**
|
|
|
|
|
* @param context
|
|
|
|
|
* @returns Returns array of completely visible view's index.
|
|
|
|
|
*/
|
|
|
|
|
findCompletelyVisibleItems(context: BridgeContext): Promise<number[]>;
|
2022-08-16 17:57:51 +08:00
|
|
|
|
/**
|
|
|
|
|
* Reload all list items.
|
|
|
|
|
* @param context
|
|
|
|
|
* @returns
|
|
|
|
|
*/
|
2022-08-16 17:44:03 +08:00
|
|
|
|
reload(context: BridgeContext): Promise<void>;
|
2022-08-16 17:57:51 +08:00
|
|
|
|
reset(): void;
|
2022-08-11 13:36:18 +08:00
|
|
|
|
private getItem;
|
|
|
|
|
private renderBunchedItems;
|
|
|
|
|
toModel(): NativeViewModel;
|
|
|
|
|
}
|
|
|
|
|
export function list(config: Partial<List>): List;
|
|
|
|
|
export function listItem(item: View | View[], config?: Partial<ListItem>): ListItem;
|
|
|
|
|
export class SlideItem extends Stack {
|
|
|
|
|
/**
|
|
|
|
|
* Set to reuse native view
|
|
|
|
|
*/
|
|
|
|
|
identifier?: string;
|
|
|
|
|
}
|
|
|
|
|
export class Slider extends Superview {
|
|
|
|
|
private cachedViews;
|
|
|
|
|
allSubviews(): IterableIterator<SlideItem>;
|
|
|
|
|
itemCount: number;
|
|
|
|
|
renderPage: (index: number) => SlideItem;
|
|
|
|
|
batchCount: number;
|
|
|
|
|
onPageSlided?: (index: number) => void;
|
|
|
|
|
loop?: boolean;
|
|
|
|
|
scrollable?: boolean;
|
|
|
|
|
/**
|
|
|
|
|
* Take effect only on iOS
|
|
|
|
|
*/
|
|
|
|
|
bounces?: boolean;
|
2023-03-13 19:17:56 +08:00
|
|
|
|
/**
|
|
|
|
|
* Take effect only on iOS
|
|
|
|
|
*/
|
|
|
|
|
scrollsToTop?: boolean;
|
2022-08-11 13:36:18 +08:00
|
|
|
|
/**
|
|
|
|
|
* Set the effect when sliding
|
|
|
|
|
* ZoomOut is currently supported
|
|
|
|
|
*/
|
|
|
|
|
slideStyle?: "zoomOut" | {
|
|
|
|
|
type: "zoomOut";
|
|
|
|
|
minScale: number;
|
|
|
|
|
maxScale: number;
|
|
|
|
|
};
|
2022-08-16 17:57:51 +08:00
|
|
|
|
/**
|
|
|
|
|
* Reload all list items.
|
|
|
|
|
* @param context
|
|
|
|
|
* @returns
|
|
|
|
|
*/
|
|
|
|
|
reload(context: BridgeContext): Promise<void>;
|
|
|
|
|
reset(): void;
|
2022-08-11 13:36:18 +08:00
|
|
|
|
private getItem;
|
|
|
|
|
private renderBunchedItems;
|
|
|
|
|
slidePage(context: BridgeContext, page: number, smooth?: boolean): Promise<any>;
|
|
|
|
|
getSlidedPage(context: BridgeContext): Promise<number>;
|
|
|
|
|
}
|
|
|
|
|
export function slider(config: Partial<Slider>): Slider;
|
|
|
|
|
export function slideItem(item: View | View[], config?: Partial<SlideItem>): SlideItem;
|
|
|
|
|
export function scroller(content: View, config?: Partial<Scroller>): Scroller;
|
|
|
|
|
export class Scroller extends Superview implements JSX.ElementChildrenAttribute {
|
|
|
|
|
content: View;
|
|
|
|
|
contentOffset?: {
|
|
|
|
|
x: number;
|
|
|
|
|
y: number;
|
|
|
|
|
};
|
|
|
|
|
onScroll?: (offset: {
|
|
|
|
|
x: number;
|
|
|
|
|
y: number;
|
|
|
|
|
}) => void;
|
|
|
|
|
onScrollEnd?: (offset: {
|
|
|
|
|
x: number;
|
|
|
|
|
y: number;
|
|
|
|
|
}) => void;
|
|
|
|
|
scrollable?: boolean;
|
|
|
|
|
/**
|
|
|
|
|
* Take effect only on iOS
|
|
|
|
|
*/
|
|
|
|
|
bounces?: boolean;
|
2023-03-13 19:17:56 +08:00
|
|
|
|
/**
|
|
|
|
|
* Take effect only on iOS
|
|
|
|
|
*/
|
|
|
|
|
scrollsToTop?: boolean;
|
2022-08-11 13:36:18 +08:00
|
|
|
|
allSubviews(): View[];
|
|
|
|
|
toModel(): NativeViewModel;
|
|
|
|
|
scrollTo(context: BridgeContext, offset: {
|
|
|
|
|
x: number;
|
|
|
|
|
y: number;
|
|
|
|
|
}, animated?: boolean): Promise<any>;
|
|
|
|
|
scrollBy(context: BridgeContext, offset: {
|
|
|
|
|
x: number;
|
|
|
|
|
y: number;
|
|
|
|
|
}, animated?: boolean): Promise<any>;
|
|
|
|
|
set innerElement(e: View);
|
|
|
|
|
}
|
|
|
|
|
export class Refreshable extends Superview implements JSX.ElementChildrenAttribute {
|
|
|
|
|
content: View;
|
|
|
|
|
header?: View;
|
|
|
|
|
onRefresh?: () => void;
|
|
|
|
|
allSubviews(): View[];
|
|
|
|
|
setRefreshable(context: BridgeContext, refreshable: boolean): Promise<any>;
|
|
|
|
|
setRefreshing(context: BridgeContext, refreshing: boolean): Promise<any>;
|
|
|
|
|
isRefreshable(context: BridgeContext): Promise<boolean>;
|
|
|
|
|
isRefreshing(context: BridgeContext): Promise<boolean>;
|
|
|
|
|
toModel(): NativeViewModel;
|
|
|
|
|
set innerElement(e: View | [
|
|
|
|
|
View,
|
|
|
|
|
View
|
|
|
|
|
]);
|
|
|
|
|
}
|
|
|
|
|
export function refreshable(config: Partial<Refreshable>): Refreshable;
|
|
|
|
|
export interface IPullable {
|
|
|
|
|
startAnimation(): void;
|
|
|
|
|
stopAnimation(): void;
|
|
|
|
|
setPullingDistance(distance: number): void;
|
|
|
|
|
}
|
|
|
|
|
export function pullable(v: View, config: IPullable): View;
|
|
|
|
|
export class FlowLayoutItem extends Stack {
|
|
|
|
|
/**
|
|
|
|
|
* Set to reuse native view
|
|
|
|
|
*/
|
|
|
|
|
identifier?: string;
|
|
|
|
|
/**
|
|
|
|
|
* When set to true, the item will layout using all span area.
|
|
|
|
|
* LoadMoreView is default to true.
|
|
|
|
|
*/
|
|
|
|
|
fullSpan?: boolean;
|
|
|
|
|
}
|
|
|
|
|
export class FlowLayout extends Superview {
|
|
|
|
|
private cachedViews;
|
|
|
|
|
allSubviews(): FlowLayoutItem[];
|
|
|
|
|
columnCount: number;
|
|
|
|
|
columnSpace?: number;
|
|
|
|
|
rowSpace?: number;
|
|
|
|
|
itemCount: number;
|
|
|
|
|
renderItem: (index: number) => FlowLayoutItem;
|
|
|
|
|
batchCount: number;
|
|
|
|
|
onLoadMore?: () => void;
|
|
|
|
|
loadMore?: boolean;
|
|
|
|
|
loadMoreView?: FlowLayoutItem;
|
|
|
|
|
onScroll?: (offset: {
|
|
|
|
|
x: number;
|
|
|
|
|
y: number;
|
|
|
|
|
}) => void;
|
|
|
|
|
onScrollEnd?: (offset: {
|
|
|
|
|
x: number;
|
|
|
|
|
y: number;
|
|
|
|
|
}) => void;
|
|
|
|
|
scrollable?: boolean;
|
|
|
|
|
/**
|
|
|
|
|
* Take effect only on iOS
|
|
|
|
|
*/
|
|
|
|
|
bounces?: boolean;
|
2023-03-13 19:17:56 +08:00
|
|
|
|
/**
|
|
|
|
|
* Take effect only on iOS
|
|
|
|
|
*/
|
|
|
|
|
scrollsToTop?: boolean;
|
2022-08-25 10:52:01 +08:00
|
|
|
|
canDrag?: boolean;
|
2022-08-26 14:16:12 +08:00
|
|
|
|
/**
|
|
|
|
|
* @param from
|
|
|
|
|
* @returns Returns the item of index which can dragged or not.
|
|
|
|
|
*/
|
|
|
|
|
itemCanDrag?: (from: number) => boolean;
|
|
|
|
|
/**
|
|
|
|
|
* @param from
|
|
|
|
|
* @returns Returns an array of index which can not be swap during dragging.
|
|
|
|
|
*/
|
|
|
|
|
beforeDragging?: (from: number) => (Array<number> | void);
|
2022-08-25 10:52:01 +08:00
|
|
|
|
onDragging?: (from: number, to: number) => void;
|
|
|
|
|
onDragged?: (from: number, to: number) => void;
|
2022-08-11 13:36:18 +08:00
|
|
|
|
/**
|
|
|
|
|
* @param context
|
|
|
|
|
* @returns Returns array of visible view's index.
|
|
|
|
|
*/
|
|
|
|
|
findVisibleItems(context: BridgeContext): Promise<number[]>;
|
|
|
|
|
/**
|
|
|
|
|
* @param context
|
|
|
|
|
* @returns Returns array of completely visible view's index.
|
|
|
|
|
*/
|
|
|
|
|
findCompletelyVisibleItems(context: BridgeContext): Promise<number[]>;
|
2022-08-16 17:57:51 +08:00
|
|
|
|
/**
|
|
|
|
|
* Reload all list items.
|
|
|
|
|
* @param context
|
|
|
|
|
* @returns
|
|
|
|
|
*/
|
|
|
|
|
reload(context: BridgeContext): Promise<void>;
|
2022-08-11 13:36:18 +08:00
|
|
|
|
reset(): void;
|
|
|
|
|
private getItem;
|
|
|
|
|
private renderBunchedItems;
|
|
|
|
|
toModel(): NativeViewModel;
|
|
|
|
|
}
|
|
|
|
|
export function flowlayout(config: Partial<FlowLayout>): FlowLayout;
|
|
|
|
|
export function flowItem(item: View | View[], config?: Partial<FlowLayoutItem>): FlowLayoutItem;
|
|
|
|
|
export enum ReturnKeyType {
|
|
|
|
|
Default = 0,
|
|
|
|
|
Done = 1,
|
|
|
|
|
Search = 2,
|
|
|
|
|
Next = 3,
|
|
|
|
|
Go = 4,
|
|
|
|
|
Send = 5
|
|
|
|
|
}
|
|
|
|
|
export class Input extends View {
|
|
|
|
|
text?: string;
|
|
|
|
|
textColor?: Color;
|
|
|
|
|
textSize?: number;
|
|
|
|
|
font?: string;
|
|
|
|
|
hintText?: string;
|
|
|
|
|
hintFont?: string;
|
|
|
|
|
inputType?: InputType;
|
|
|
|
|
hintTextColor?: Color;
|
|
|
|
|
multiline?: boolean;
|
|
|
|
|
textAlignment?: Gravity;
|
2023-01-12 11:09:22 +08:00
|
|
|
|
fontStyle?: "normal" | "bold" | "italic" | "bold_italic";
|
2022-12-15 19:04:02 +08:00
|
|
|
|
onTextChange?: (text?: string) => void;
|
2022-08-11 13:36:18 +08:00
|
|
|
|
onFocusChange?: (focused: boolean) => void;
|
|
|
|
|
maxLength?: number;
|
|
|
|
|
password?: boolean;
|
|
|
|
|
editable?: boolean;
|
|
|
|
|
returnKeyType?: ReturnKeyType;
|
2022-12-15 19:04:02 +08:00
|
|
|
|
onSubmitEditing?: (text?: string) => void;
|
2022-08-11 13:36:18 +08:00
|
|
|
|
enableHorizontalScrollBar?: boolean;
|
|
|
|
|
enableVerticalScrollBar?: boolean;
|
|
|
|
|
/**
|
|
|
|
|
* Called before text is changed
|
|
|
|
|
* @param editing: text already in box
|
|
|
|
|
* @param replacement: text which will replace part of editing
|
|
|
|
|
* @param start: the start index of replacing part
|
|
|
|
|
* @param length: the length of replacing part
|
|
|
|
|
*
|
|
|
|
|
* @returns: true means the replacement will take effect, otherwise does not
|
|
|
|
|
*/
|
|
|
|
|
beforeTextChange?: (change: {
|
2022-12-13 17:32:20 +08:00
|
|
|
|
editing?: string;
|
2022-08-11 13:36:18 +08:00
|
|
|
|
start: number;
|
|
|
|
|
length: number;
|
2022-12-13 17:32:20 +08:00
|
|
|
|
replacement?: string;
|
2022-08-11 13:36:18 +08:00
|
|
|
|
}) => boolean;
|
2022-08-25 10:42:56 +08:00
|
|
|
|
padding?: {
|
|
|
|
|
left?: number;
|
|
|
|
|
right?: number;
|
|
|
|
|
top?: number;
|
|
|
|
|
bottom?: number;
|
|
|
|
|
};
|
2022-08-11 13:36:18 +08:00
|
|
|
|
getText(context: BridgeContext): Promise<string>;
|
|
|
|
|
setSelection(context: BridgeContext, start: number, end?: number): Promise<any>;
|
|
|
|
|
getSelection(context: BridgeContext): Promise<{
|
|
|
|
|
start: number;
|
|
|
|
|
end: number;
|
|
|
|
|
}>;
|
|
|
|
|
requestFocus(context: BridgeContext): Promise<any>;
|
|
|
|
|
releaseFocus(context: BridgeContext): Promise<any>;
|
|
|
|
|
}
|
|
|
|
|
export enum InputType {
|
|
|
|
|
Default = 0,
|
|
|
|
|
Number = 1,
|
|
|
|
|
Decimal = 2,
|
|
|
|
|
Alphabet = 3,
|
|
|
|
|
Phone = 4
|
|
|
|
|
}
|
|
|
|
|
export function input(config: Partial<Input>): Input;
|
|
|
|
|
export class NestedSlider extends Group {
|
|
|
|
|
onPageSlided?: (index: number) => void;
|
|
|
|
|
scrollable?: boolean;
|
|
|
|
|
/**
|
|
|
|
|
* Take effect only on iOS
|
|
|
|
|
*/
|
|
|
|
|
bounces?: boolean;
|
2023-03-13 19:17:56 +08:00
|
|
|
|
/**
|
|
|
|
|
* Take effect only on iOS
|
|
|
|
|
*/
|
|
|
|
|
scrollsToTop?: boolean;
|
2022-08-11 13:36:18 +08:00
|
|
|
|
addSlideItem(view: View): void;
|
|
|
|
|
slidePage(context: BridgeContext, page: number, smooth?: boolean): Promise<any>;
|
|
|
|
|
getSlidedPage(context: BridgeContext): Promise<number>;
|
|
|
|
|
}
|
|
|
|
|
/**
|
|
|
|
|
* @deprecated The class should not be used, please use GestureContainer class instead
|
|
|
|
|
*/
|
|
|
|
|
export class Draggable extends Stack {
|
|
|
|
|
onDrag?: (x: number, y: number) => void;
|
|
|
|
|
}
|
|
|
|
|
/**
|
|
|
|
|
* @deprecated The function should not be used, please use gestureContainer function instead
|
|
|
|
|
*/
|
|
|
|
|
export function draggable(views: View | View[], config?: Partial<Draggable>): Draggable;
|
|
|
|
|
export class Switch extends View {
|
|
|
|
|
/**
|
|
|
|
|
* True is on ,false is off,defalut is off.
|
|
|
|
|
*/
|
|
|
|
|
state?: boolean;
|
|
|
|
|
/**
|
|
|
|
|
* Switch change callback
|
|
|
|
|
*/
|
|
|
|
|
onSwitch?: (state: boolean) => void;
|
|
|
|
|
offTintColor?: Color;
|
|
|
|
|
onTintColor?: Color;
|
|
|
|
|
thumbTintColor?: Color;
|
|
|
|
|
}
|
|
|
|
|
export function switchView(config: Partial<Switch>): Switch;
|
|
|
|
|
export enum SwipeOrientation {
|
|
|
|
|
LEFT = 0,
|
|
|
|
|
RIGHT = 1,
|
|
|
|
|
TOP = 2,
|
|
|
|
|
BOTTOM = 3
|
|
|
|
|
}
|
|
|
|
|
export class GestureContainer extends Stack {
|
|
|
|
|
onSingleTap?: () => void;
|
|
|
|
|
onDoubleTap?: () => void;
|
|
|
|
|
onLongPress?: () => void;
|
|
|
|
|
/**
|
|
|
|
|
* Called when the fingers in pinching on screen
|
|
|
|
|
* @param scale: the numeric value of scale on pinch
|
|
|
|
|
*/
|
|
|
|
|
onPinch?: (scale: number) => void;
|
|
|
|
|
/**
|
|
|
|
|
* Called when the fingers are scrolling or paning
|
|
|
|
|
* @param dx: the value of the change on the x-axis
|
|
|
|
|
* @param dy: the value of the change on the y-axis
|
|
|
|
|
*/
|
|
|
|
|
onPan?: (dx: number, dy: number) => void;
|
|
|
|
|
/**
|
|
|
|
|
* Called when the fingers are scrolling or paning
|
|
|
|
|
* @param dAngle: the value of the angle change from last rotate in radian
|
|
|
|
|
*/
|
|
|
|
|
onRotate?: (dAngle: number) => void;
|
|
|
|
|
/**
|
|
|
|
|
* Called when the fingers has swiped on screen
|
|
|
|
|
* @param orientation: the orientation of this swipe
|
|
|
|
|
*/
|
|
|
|
|
onSwipe?: (orientation: SwipeOrientation) => void;
|
|
|
|
|
/**
|
|
|
|
|
* Called when the finger touch down on the screen
|
|
|
|
|
* @param x: the value of event occurs on the x-axis
|
|
|
|
|
* @param y: the value of event occurs on the y-axis
|
|
|
|
|
*/
|
|
|
|
|
onTouchDown?: (event: {
|
|
|
|
|
x: number;
|
|
|
|
|
y: number;
|
|
|
|
|
}) => void;
|
|
|
|
|
/**
|
|
|
|
|
* Called when the finger moving on the screen
|
|
|
|
|
* @param x: the value of event occurs on the x-axis
|
|
|
|
|
* @param y: the value of event occurs on the y-axis
|
|
|
|
|
*/
|
|
|
|
|
onTouchMove?: (event: {
|
|
|
|
|
x: number;
|
|
|
|
|
y: number;
|
|
|
|
|
}) => void;
|
|
|
|
|
/**
|
|
|
|
|
* Called when the finger touch up off from the screen
|
|
|
|
|
* @param x: the value of event occurs on the x-axis
|
|
|
|
|
* @param y: the value of event occurs on the y-axis
|
|
|
|
|
*/
|
|
|
|
|
onTouchUp?: (event: {
|
|
|
|
|
x: number;
|
|
|
|
|
y: number;
|
|
|
|
|
}) => void;
|
|
|
|
|
/**
|
|
|
|
|
* Called when the finger leave from screen
|
|
|
|
|
* @param x: the value of event occurs on the x-axis
|
|
|
|
|
* @param y: the value of event occurs on the y-axis
|
|
|
|
|
*/
|
|
|
|
|
onTouchCancel?: (event: {
|
|
|
|
|
x: number;
|
|
|
|
|
y: number;
|
|
|
|
|
}) => void;
|
|
|
|
|
}
|
|
|
|
|
export function gestureContainer(views: View | View[], config?: Partial<GestureContainer>): GestureContainer;
|
|
|
|
|
export class BlurEffect extends Stack {
|
|
|
|
|
/**
|
|
|
|
|
* Specify the effective rectangle.
|
|
|
|
|
* If not set, the default is the entire area.
|
|
|
|
|
*/
|
|
|
|
|
effectiveRect?: {
|
|
|
|
|
x: number;
|
|
|
|
|
y: number;
|
|
|
|
|
width: number;
|
|
|
|
|
height: number;
|
|
|
|
|
};
|
|
|
|
|
/**
|
|
|
|
|
* Specify the radius of blur effect.
|
|
|
|
|
* If not set, the default value is 15.
|
|
|
|
|
* Suggested value is from 1 to 25.
|
|
|
|
|
*/
|
|
|
|
|
radius?: number;
|
|
|
|
|
}
|
|
|
|
|
export class AeroEffect extends Stack {
|
|
|
|
|
/**
|
|
|
|
|
* Specify the effective rectangle.
|
|
|
|
|
* If not set, the default is the entire area.
|
|
|
|
|
*/
|
|
|
|
|
effectiveRect?: {
|
|
|
|
|
x: number;
|
|
|
|
|
y: number;
|
|
|
|
|
width: number;
|
|
|
|
|
height: number;
|
|
|
|
|
};
|
|
|
|
|
/**
|
|
|
|
|
* Specify the area of the view is lighter or darker than the underlying view.
|
|
|
|
|
* If not set, the default is light.
|
|
|
|
|
*/
|
|
|
|
|
style?: "light" | "dark" | "extraLight";
|
|
|
|
|
}
|
|
|
|
|
export function blurEffect(views: View | View[], config?: Partial<BlurEffect>): BlurEffect;
|
|
|
|
|
export function aeroEffect(views: View | View[], config?: Partial<AeroEffect>): AeroEffect;
|
2022-08-23 11:20:36 +08:00
|
|
|
|
export class HorizontalListItem extends Stack {
|
|
|
|
|
/**
|
|
|
|
|
* Set to reuse native view
|
|
|
|
|
*/
|
|
|
|
|
identifier?: string;
|
|
|
|
|
}
|
|
|
|
|
export class HorizontalList extends Superview {
|
|
|
|
|
private cachedViews;
|
|
|
|
|
allSubviews(): HorizontalListItem[];
|
|
|
|
|
itemCount: number;
|
|
|
|
|
renderItem: (index: number) => HorizontalListItem;
|
|
|
|
|
batchCount: number;
|
|
|
|
|
onLoadMore?: () => void;
|
|
|
|
|
loadMore?: boolean;
|
|
|
|
|
loadMoreView?: HorizontalListItem;
|
|
|
|
|
onScroll?: (offset: {
|
|
|
|
|
x: number;
|
|
|
|
|
y: number;
|
|
|
|
|
}) => void;
|
|
|
|
|
onScrollEnd?: (offset: {
|
|
|
|
|
x: number;
|
|
|
|
|
y: number;
|
|
|
|
|
}) => void;
|
|
|
|
|
scrolledPosition?: number;
|
|
|
|
|
scrollable?: boolean;
|
|
|
|
|
/**
|
|
|
|
|
* Take effect only on iOS
|
|
|
|
|
*/
|
|
|
|
|
bounces?: boolean;
|
2023-03-13 19:17:56 +08:00
|
|
|
|
/**
|
|
|
|
|
* Take effect only on iOS
|
|
|
|
|
*/
|
|
|
|
|
scrollsToTop?: boolean;
|
2022-08-23 11:20:36 +08:00
|
|
|
|
canDrag?: boolean;
|
2022-08-26 14:16:12 +08:00
|
|
|
|
/**
|
|
|
|
|
* @param from
|
|
|
|
|
* @returns Returns the item of index which can dragged or not.
|
|
|
|
|
*/
|
|
|
|
|
itemCanDrag?: (from: number) => boolean;
|
|
|
|
|
/**
|
|
|
|
|
* @param from
|
|
|
|
|
* @returns Returns an array of index which can not be swap during dragging.
|
|
|
|
|
*/
|
|
|
|
|
beforeDragging?: (from: number) => (Array<number> | void);
|
2022-08-23 11:20:36 +08:00
|
|
|
|
onDragging?: (from: number, to: number) => void;
|
|
|
|
|
onDragged?: (from: number, to: number) => void;
|
|
|
|
|
scrollToItem(context: BridgeContext, index: number, config?: {
|
|
|
|
|
animated?: boolean;
|
|
|
|
|
}): Promise<any>;
|
|
|
|
|
/**
|
|
|
|
|
* @param context
|
|
|
|
|
* @returns Returns array of visible view's index.
|
|
|
|
|
*/
|
|
|
|
|
findVisibleItems(context: BridgeContext): Promise<number[]>;
|
|
|
|
|
/**
|
|
|
|
|
* @param context
|
|
|
|
|
* @returns Returns array of completely visible view's index.
|
|
|
|
|
*/
|
|
|
|
|
findCompletelyVisibleItems(context: BridgeContext): Promise<number[]>;
|
|
|
|
|
/**
|
|
|
|
|
* Reload all list items.
|
|
|
|
|
* @param context
|
|
|
|
|
* @returns
|
|
|
|
|
*/
|
|
|
|
|
reload(context: BridgeContext): Promise<void>;
|
|
|
|
|
reset(): void;
|
|
|
|
|
private getItem;
|
|
|
|
|
private renderBunchedItems;
|
|
|
|
|
toModel(): NativeViewModel;
|
|
|
|
|
}
|
|
|
|
|
export function horizontalList(config: Partial<HorizontalList>): HorizontalList;
|
|
|
|
|
export function horizontalListItem(item: View | View[], config?: Partial<HorizontalListItem>): HorizontalListItem;
|
2022-08-11 13:36:18 +08:00
|
|
|
|
export function modal(context: BridgeContext): {
|
|
|
|
|
toast: (msg: string, gravity?: Gravity) => void;
|
|
|
|
|
alert: (arg: string | {
|
|
|
|
|
title: string;
|
|
|
|
|
msg: string;
|
|
|
|
|
okLabel?: string;
|
|
|
|
|
}) => Promise<any>;
|
|
|
|
|
confirm: (arg: string | {
|
|
|
|
|
title: string;
|
|
|
|
|
msg: string;
|
|
|
|
|
okLabel?: string;
|
|
|
|
|
cancelLabel?: string;
|
|
|
|
|
}) => Promise<any>;
|
|
|
|
|
prompt: (arg: {
|
|
|
|
|
title?: string;
|
|
|
|
|
msg?: string;
|
|
|
|
|
okLabel?: string;
|
|
|
|
|
cancelLabel?: string;
|
|
|
|
|
text?: string;
|
|
|
|
|
defaultText?: string;
|
|
|
|
|
}) => Promise<string>;
|
|
|
|
|
};
|
|
|
|
|
export function navbar(context: BridgeContext): {
|
|
|
|
|
isHidden: () => Promise<boolean>;
|
|
|
|
|
setHidden: (hidden: boolean) => Promise<any>;
|
|
|
|
|
setTitle: (title: string) => Promise<any>;
|
|
|
|
|
setBgColor: (color: Color) => Promise<any>;
|
|
|
|
|
setLeft: (view: View) => Promise<any>;
|
|
|
|
|
setRight: (view: View) => Promise<any>;
|
|
|
|
|
setCenter: (view: View) => Promise<any>;
|
|
|
|
|
};
|
|
|
|
|
export function internalScheme(context: BridgeContext, panelClass: ClassType<Panel>): string;
|
|
|
|
|
export function navigator(context: BridgeContext): {
|
|
|
|
|
push: (source: string | ClassType<Panel>, config?: {
|
|
|
|
|
alias?: string;
|
|
|
|
|
animated?: boolean;
|
|
|
|
|
extra?: object;
|
|
|
|
|
singlePage?: boolean;
|
|
|
|
|
}) => Promise<any>;
|
|
|
|
|
pop: (animated?: boolean) => Promise<any>;
|
|
|
|
|
popSelf: (animated?: boolean) => Promise<any>;
|
|
|
|
|
popToRoot: (animated?: boolean) => Promise<any>;
|
|
|
|
|
openUrl: (url: string) => Promise<any>;
|
|
|
|
|
};
|
|
|
|
|
export interface IRequest {
|
|
|
|
|
url?: string;
|
|
|
|
|
method?: "get" | "post" | "put" | "delete";
|
|
|
|
|
headers?: {
|
|
|
|
|
[index: string]: string;
|
|
|
|
|
};
|
|
|
|
|
params?: {
|
|
|
|
|
[index: string]: string;
|
|
|
|
|
};
|
|
|
|
|
data?: object | string;
|
|
|
|
|
timeout?: number;
|
|
|
|
|
}
|
|
|
|
|
export interface IResponse {
|
|
|
|
|
data: string;
|
|
|
|
|
status: number;
|
|
|
|
|
headers?: {
|
|
|
|
|
[index: string]: string;
|
|
|
|
|
};
|
|
|
|
|
}
|
|
|
|
|
export function network(context: BridgeContext): {
|
|
|
|
|
request: (config: IRequest) => Promise<IResponse>;
|
|
|
|
|
get: (url: string, config?: IRequest) => Promise<IResponse>;
|
|
|
|
|
post: (url: string, data?: object | string, config?: IRequest) => Promise<IResponse>;
|
|
|
|
|
put: (url: string, data?: object | string, config?: IRequest) => Promise<IResponse>;
|
|
|
|
|
delete: (url: string, data?: object | string, config?: IRequest) => Promise<IResponse>;
|
|
|
|
|
};
|
|
|
|
|
export function storage(context: BridgeContext): {
|
|
|
|
|
setItem: (key: string, value: string, zone?: string) => Promise<any>;
|
|
|
|
|
getItem: (key: string, zone?: string) => Promise<string>;
|
|
|
|
|
remove: (key: string, zone?: string) => Promise<any>;
|
|
|
|
|
clear: (zone: string) => Promise<any>;
|
|
|
|
|
};
|
|
|
|
|
export function popover(context: BridgeContext): {
|
|
|
|
|
show: (view: View) => Promise<any>;
|
|
|
|
|
dismiss: (view?: View | undefined) => Promise<any>;
|
|
|
|
|
};
|
|
|
|
|
/**
|
|
|
|
|
* Only supports x,y,width,height,corner(just for four corners),rotation,bgColor,
|
|
|
|
|
* @param panel @see Panel
|
|
|
|
|
*/
|
|
|
|
|
export function animate(context: BridgeContext): (args: {
|
|
|
|
|
animations: () => void;
|
|
|
|
|
duration: number;
|
|
|
|
|
}) => Promise<unknown>;
|
|
|
|
|
export function notification(context: BridgeContext): {
|
|
|
|
|
publish: (args: {
|
|
|
|
|
biz?: string;
|
|
|
|
|
name: string;
|
|
|
|
|
data?: object;
|
|
|
|
|
androidSystem?: boolean;
|
|
|
|
|
permission?: string;
|
|
|
|
|
}) => Promise<any>;
|
|
|
|
|
subscribe: (args: {
|
|
|
|
|
biz?: string | undefined;
|
|
|
|
|
name: string;
|
|
|
|
|
callback: (data?: any) => void;
|
|
|
|
|
androidSystem?: boolean | undefined;
|
|
|
|
|
permission?: string | undefined;
|
|
|
|
|
}) => Promise<string>;
|
|
|
|
|
unsubscribe: (subscribeId: string) => Promise<any>;
|
|
|
|
|
};
|
|
|
|
|
export enum StatusBarMode {
|
|
|
|
|
LIGHT = 0,
|
|
|
|
|
DARK = 1
|
|
|
|
|
}
|
|
|
|
|
export function statusbar(context: BridgeContext): {
|
|
|
|
|
setHidden: (hidden: boolean) => Promise<any>;
|
|
|
|
|
setMode: (mode: StatusBarMode) => Promise<any>;
|
|
|
|
|
setColor: (color: Color) => Promise<any>;
|
|
|
|
|
};
|
|
|
|
|
export function coordinator(context: BridgeContext): {
|
|
|
|
|
verticalScrolling: (argument: {
|
|
|
|
|
scrollable: Scroller | List | FlowLayout;
|
|
|
|
|
scrollRange: {
|
|
|
|
|
start: number;
|
|
|
|
|
end: number;
|
|
|
|
|
};
|
|
|
|
|
target: View | "NavBar";
|
|
|
|
|
changing: {
|
|
|
|
|
name: "backgroundColor" | "width" | "height" | "x" | "y" | "alpha";
|
|
|
|
|
start: number | Color;
|
|
|
|
|
end: number | Color;
|
|
|
|
|
};
|
|
|
|
|
}) => void;
|
2023-03-13 22:09:57 +08:00
|
|
|
|
observeScrollingInterval: (argument: {
|
|
|
|
|
scrollable: Scroller | List | FlowLayout;
|
|
|
|
|
observingInterval: number[];
|
|
|
|
|
inclusive?: "Left" | "Right" | undefined;
|
|
|
|
|
onScrolledInterval: (n: number) => void;
|
|
|
|
|
}) => void;
|
2022-08-11 13:36:18 +08:00
|
|
|
|
};
|
|
|
|
|
export function notch(context: BridgeContext): {
|
|
|
|
|
inset: () => Promise<{
|
|
|
|
|
top: number;
|
|
|
|
|
left: number;
|
|
|
|
|
bottom: number;
|
|
|
|
|
right: number;
|
|
|
|
|
}>;
|
|
|
|
|
};
|
|
|
|
|
export function keyboard(context: BridgeContext): {
|
|
|
|
|
subscribe: (callback: (data: {
|
|
|
|
|
oldBottomMargin: number;
|
|
|
|
|
oldHeight: number;
|
|
|
|
|
bottomMargin: number;
|
|
|
|
|
height: number;
|
|
|
|
|
}) => void) => Promise<string>;
|
|
|
|
|
unsubscribe: (subscribeId: string) => Promise<any>;
|
|
|
|
|
};
|
|
|
|
|
export function resourceLoader(context: BridgeContext): {
|
|
|
|
|
load: (resource: Resource) => Promise<ArrayBuffer>;
|
|
|
|
|
};
|
|
|
|
|
export function imageDecoder(context: BridgeContext): {
|
|
|
|
|
getImageInfo: (resource: Resource) => Promise<{
|
|
|
|
|
width: number;
|
|
|
|
|
height: number;
|
|
|
|
|
mimeType: string;
|
|
|
|
|
}>;
|
|
|
|
|
decodeToPixels: (resource: Resource) => Promise<ArrayBuffer>;
|
|
|
|
|
};
|
|
|
|
|
export function log(...args: any): void;
|
|
|
|
|
export function loge(...message: any): void;
|
|
|
|
|
export function logw(...message: any): void;
|
|
|
|
|
export function uniqueId(prefix: string): string;
|
|
|
|
|
export namespace jsx {
|
|
|
|
|
function createElement<T extends View>(constructor: ClassType<T>, config: Partial<T> | null, ...children: any[]): any;
|
|
|
|
|
class Fragment extends Group {
|
|
|
|
|
}
|
|
|
|
|
} global {
|
|
|
|
|
namespace JSX {
|
|
|
|
|
interface Element extends View {
|
|
|
|
|
}
|
|
|
|
|
interface ElementClass extends View {
|
|
|
|
|
}
|
|
|
|
|
interface ElementAttributesProperty {
|
|
|
|
|
props: {};
|
|
|
|
|
}
|
|
|
|
|
interface ElementChildrenAttribute {
|
|
|
|
|
innerElement: any;
|
|
|
|
|
}
|
|
|
|
|
interface IntrinsicElements {
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
export function take<T>(target: T): (block: (p: T) => void) => void;
|
|
|
|
|
export function takeNonNull<T, R>(target?: T): (block: (p: T) => R) => R | undefined;
|
|
|
|
|
export function takeNull<T, R>(target?: T): (block: () => R) => R | undefined;
|
|
|
|
|
export function takeLet<T, R>(target: T): (block: (p: T) => R | undefined) => R | undefined;
|
|
|
|
|
export function takeAlso<T>(target: T): (block: (p: T) => void) => T;
|
|
|
|
|
export function takeIf<T>(target: T): (predicate: (t: T) => boolean) => T | undefined;
|
|
|
|
|
export function takeUnless<T>(target: T): (predicate: (t: T) => boolean) => T | undefined;
|
|
|
|
|
export function repeat(action: (count: number) => void): (times: number) => void;
|
|
|
|
|
export type Observer<T> = (v: T) => void;
|
|
|
|
|
export type Updater<T> = (v: T) => T;
|
|
|
|
|
export interface IObservable<T> {
|
|
|
|
|
addObserver(observer: Observer<T | undefined>): void;
|
|
|
|
|
removeObserver(observer: Observer<T | undefined>): void;
|
|
|
|
|
update(updater: Updater<T | undefined>): void;
|
|
|
|
|
}
|
|
|
|
|
export class Observable<M> implements IObservable<M> {
|
|
|
|
|
private provider;
|
|
|
|
|
private clz;
|
|
|
|
|
private observers;
|
|
|
|
|
constructor(provider: IProvider, clz: {
|
|
|
|
|
new (...args: any[]): M;
|
|
|
|
|
});
|
|
|
|
|
addObserver(observer: Observer<M | undefined>): void;
|
|
|
|
|
removeObserver(observer: Observer<M | undefined>): void;
|
|
|
|
|
update(updater: Updater<M | undefined>): void;
|
|
|
|
|
}
|
|
|
|
|
export interface IProvider {
|
|
|
|
|
provide(obj: Object): void;
|
|
|
|
|
acquire<T>(clz: {
|
|
|
|
|
new (...args: any[]): T;
|
|
|
|
|
}): T | undefined;
|
|
|
|
|
remove<T>(clz: {
|
|
|
|
|
new (...args: any[]): T;
|
|
|
|
|
}): void;
|
|
|
|
|
clear(): void;
|
|
|
|
|
observe<T>(clz: {
|
|
|
|
|
new (...args: any[]): T;
|
|
|
|
|
}): Observable<T>;
|
|
|
|
|
}
|
|
|
|
|
export class Provider implements IProvider {
|
|
|
|
|
private provision;
|
|
|
|
|
private observableMap;
|
|
|
|
|
provide(obj: Object): void;
|
|
|
|
|
acquire<T>(clz: {
|
|
|
|
|
new (...args: any[]): T;
|
|
|
|
|
}): T | undefined;
|
|
|
|
|
remove<T>(clz: new (...args: any[]) => T): void;
|
|
|
|
|
clear(): void;
|
|
|
|
|
observe<T>(clz: new (...args: any[]) => T): Observable<T>;
|
|
|
|
|
}
|
|
|
|
|
export abstract class ViewHolder {
|
|
|
|
|
abstract build(root: Group): void;
|
|
|
|
|
}
|
|
|
|
|
export type Setter<M> = (state: M) => void;
|
|
|
|
|
export abstract class ViewModel<M extends Object, V extends ViewHolder> {
|
|
|
|
|
context: BridgeContext;
|
|
|
|
|
private state;
|
|
|
|
|
private viewHolder;
|
|
|
|
|
constructor(obj: M, v: V);
|
|
|
|
|
getState(): M;
|
|
|
|
|
getViewHolder(): V;
|
|
|
|
|
updateState(setter: Setter<M>): void;
|
|
|
|
|
attach(view: Group): void;
|
|
|
|
|
abstract onAttached(state: M, vh: V): void;
|
|
|
|
|
abstract onBind(state: M, vh: V): void;
|
|
|
|
|
}
|
|
|
|
|
export abstract class VMPanel<M extends Object, V extends ViewHolder> extends Panel {
|
|
|
|
|
private vm?;
|
|
|
|
|
private vh?;
|
|
|
|
|
abstract getViewModelClass(): ClassType<ViewModel<M, V>>;
|
|
|
|
|
abstract getState(): M;
|
|
|
|
|
abstract getViewHolderClass(): ClassType<V>;
|
|
|
|
|
getViewModel(): ViewModel<M, V> | undefined;
|
|
|
|
|
build(root: Group): void;
|
|
|
|
|
}
|
|
|
|
|
export abstract class Module extends Panel {
|
|
|
|
|
superPanel?: ModularPanel;
|
|
|
|
|
__provider?: Provider;
|
|
|
|
|
get provider(): Provider | undefined;
|
|
|
|
|
set provider(provider: Provider | undefined);
|
|
|
|
|
private unmounted;
|
|
|
|
|
mount(): void;
|
|
|
|
|
unmount(): void;
|
|
|
|
|
get mounted(): boolean;
|
|
|
|
|
/**
|
|
|
|
|
* Dispatch message to other modules.
|
|
|
|
|
* @param message which is sent out
|
|
|
|
|
*/
|
|
|
|
|
dispatchMessage(message: any): void;
|
|
|
|
|
/**
|
|
|
|
|
* Dispatched messages can be received by override this method.
|
|
|
|
|
* @param message recevied message
|
|
|
|
|
*/
|
|
|
|
|
onMessage(message: any): void;
|
|
|
|
|
/**
|
|
|
|
|
* Called when this module is mounted
|
|
|
|
|
*/
|
|
|
|
|
onMounted(): void;
|
|
|
|
|
/**
|
|
|
|
|
* Called when this module is unmounted
|
|
|
|
|
*/
|
|
|
|
|
onUnmounted(): void;
|
|
|
|
|
}
|
|
|
|
|
export abstract class VMModule<M extends Object, V extends ViewHolder> extends Module {
|
|
|
|
|
private vm?;
|
|
|
|
|
private vh?;
|
|
|
|
|
abstract getViewModelClass(): ClassType<ViewModel<M, V>>;
|
|
|
|
|
abstract getState(): M;
|
|
|
|
|
abstract getViewHolderClass(): ClassType<V>;
|
|
|
|
|
getViewModel(): ViewModel<M, V> | undefined;
|
|
|
|
|
build(root: Group): void;
|
|
|
|
|
}
|
|
|
|
|
export abstract class ModularPanel extends Module {
|
|
|
|
|
private modules;
|
|
|
|
|
private scheduledRebuild?;
|
|
|
|
|
constructor();
|
|
|
|
|
/**
|
|
|
|
|
* @returns Class list of current submodules
|
|
|
|
|
*/
|
|
|
|
|
abstract setupModules(): ClassType<Panel>[];
|
|
|
|
|
/**
|
|
|
|
|
* @param root Current module's rootview
|
|
|
|
|
* @returns provided for submodules as their rootview
|
|
|
|
|
*/
|
|
|
|
|
abstract setupShelf(root: Group): Group;
|
|
|
|
|
dispatchMessage(message: any): void;
|
|
|
|
|
get mountedModules(): Panel[];
|
|
|
|
|
onMessage(message: any): void;
|
|
|
|
|
onStructureChanged(module: Module, mounted: boolean): void;
|
|
|
|
|
build(root: Group): void;
|
|
|
|
|
onCreate(): void;
|
|
|
|
|
onDestroy(): void;
|
|
|
|
|
onShow(): void;
|
|
|
|
|
onHidden(): void;
|
|
|
|
|
onRenderFinished(): void;
|
|
|
|
|
} global {
|
|
|
|
|
namespace Reflect {
|
|
|
|
|
function decorate(decorators: ClassDecorator[], target: Function): Function;
|
|
|
|
|
function decorate(decorators: (PropertyDecorator | MethodDecorator)[], target: Object, propertyKey: string | symbol, attributes?: PropertyDescriptor): PropertyDescriptor;
|
|
|
|
|
function metadata(metadataKey: any, metadataValue: any): {
|
|
|
|
|
(target: Function): void;
|
|
|
|
|
(target: Object, propertyKey: string | symbol): void;
|
|
|
|
|
};
|
|
|
|
|
function defineMetadata(metadataKey: any, metadataValue: any, target: Object): void;
|
|
|
|
|
function defineMetadata(metadataKey: any, metadataValue: any, target: Object, propertyKey: string | symbol): void;
|
|
|
|
|
function hasMetadata(metadataKey: any, target: Object): boolean;
|
|
|
|
|
function hasMetadata(metadataKey: any, target: Object, propertyKey: string | symbol): boolean;
|
|
|
|
|
function hasOwnMetadata(metadataKey: any, target: Object): boolean;
|
|
|
|
|
function hasOwnMetadata(metadataKey: any, target: Object, propertyKey: string | symbol): boolean;
|
|
|
|
|
function getMetadata(metadataKey: any, target: Object): any;
|
|
|
|
|
function getMetadata(metadataKey: any, target: Object, propertyKey: string | symbol): any;
|
|
|
|
|
function getOwnMetadata(metadataKey: any, target: Object): any;
|
|
|
|
|
function getOwnMetadata(metadataKey: any, target: Object, propertyKey: string | symbol): any;
|
|
|
|
|
function getMetadataKeys(target: Object): any[];
|
|
|
|
|
function getMetadataKeys(target: Object, propertyKey: string | symbol): any[];
|
|
|
|
|
function getOwnMetadataKeys(target: Object): any[];
|
|
|
|
|
function getOwnMetadataKeys(target: Object, propertyKey: string | symbol): any[];
|
|
|
|
|
function deleteMetadata(metadataKey: any, target: Object): boolean;
|
|
|
|
|
function deleteMetadata(metadataKey: any, target: Object, propertyKey: string | symbol): boolean;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
export {};
|
|
|
|
|
|
2020-01-03 15:28:33 +08:00
|
|
|
|
}
|
2020-04-20 19:18:44 +08:00
|
|
|
|
declare module '*.png' {
|
|
|
|
|
const value: any;
|
|
|
|
|
export default value;
|
2022-08-11 13:36:18 +08:00
|
|
|
|
}
|
|
|
|
|
|