yoga-wasm
Version:
The Yoga layout engine, but in WebAssembly
294 lines (270 loc) • 8.92 kB
TypeScript
// Type definitions for yoga-layout 1.9
// Project: https://github.com/facebook/yoga#readme
// Definitions by: tnobody <https://github.com/tnobody>
// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped
// TypeScript Version: 2.1
export const ALIGN_AUTO: 0;
export const ALIGN_COUNT: 8;
export const ALIGN_FLEX_START: 1;
export const ALIGN_CENTER: 2;
export const ALIGN_FLEX_END: 3;
export const ALIGN_STRETCH: 4;
export const ALIGN_BASELINE: 5;
export const ALIGN_SPACE_BETWEEN: 6;
export const ALIGN_SPACE_AROUND: 7;
export const DIMENSION_COUNT: 2;
export const DIMENSION_WIDTH: 0;
export const DIMENSION_HEIGHT: 1;
export const DIRECTION_COUNT: 3;
export const DIRECTION_INHERIT: 0;
export const DIRECTION_LTR: 1;
export const DIRECTION_RTL: 2;
export const DISPLAY_COUNT: 2;
export const DISPLAY_FLEX: 0;
export const DISPLAY_NONE: 1;
export const EDGE_COUNT: 9;
export const EDGE_LEFT: 0;
export const EDGE_TOP: 1;
export const EDGE_RIGHT: 2;
export const EDGE_BOTTOM: 3;
export const EDGE_START: 4;
export const EDGE_END: 5;
export const EDGE_HORIZONTAL: 6;
export const EDGE_VERTICAL: 7;
export const EDGE_ALL: 8;
export const EXPERIMENTAL_FEATURE_COUNT: 1;
export const EXPERIMENTAL_FEATURE_WEB_FLEX_BASIS: 0;
export const FLEX_DIRECTION_COUNT: 4;
export const FLEX_DIRECTION_COLUMN: 0;
export const FLEX_DIRECTION_COLUMN_REVERSE: 1;
export const FLEX_DIRECTION_ROW: 2;
export const FLEX_DIRECTION_ROW_REVERSE: 3;
export const JUSTIFY_COUNT: 6;
export const JUSTIFY_FLEX_START: 0;
export const JUSTIFY_CENTER: 1;
export const JUSTIFY_FLEX_END: 2;
export const JUSTIFY_SPACE_BETWEEN: 3;
export const JUSTIFY_SPACE_AROUND: 4;
export const JUSTIFY_SPACE_EVENLY: 5;
export const LOG_LEVEL_COUNT: 6;
export const LOG_LEVEL_ERROR: 0;
export const LOG_LEVEL_WARN: 1;
export const LOG_LEVEL_INFO: 2;
export const LOG_LEVEL_DEBUG: 3;
export const LOG_LEVEL_VERBOSE: 4;
export const LOG_LEVEL_FATAL: 5;
export const MEASURE_MODE_COUNT: 3;
export const MEASURE_MODE_UNDEFINED: 0;
export const MEASURE_MODE_EXACTLY: 1;
export const MEASURE_MODE_AT_MOST: 2;
export const NODE_TYPE_COUNT: 2;
export const NODE_TYPE_DEFAULT: 0;
export const NODE_TYPE_TEXT: 1;
export const OVERFLOW_COUNT: 3;
export const OVERFLOW_VISIBLE: 0;
export const OVERFLOW_HIDDEN: 1;
export const OVERFLOW_SCROLL: 2;
export const POSITION_TYPE_COUNT: 2;
export const POSITION_TYPE_RELATIVE: 0;
export const POSITION_TYPE_ABSOLUTE: 1;
export const PRINT_OPTIONS_COUNT: 3;
export const PRINT_OPTIONS_LAYOUT: 1;
export const PRINT_OPTIONS_STYLE: 2;
export const PRINT_OPTIONS_CHILDREN: 4;
export const UNIT_COUNT: 4;
export const UNIT_UNDEFINED: 0;
export const UNIT_POINT: 1;
export const UNIT_PERCENT: 2;
export const UNIT_AUTO: 3;
export const WRAP_COUNT: 3;
export const WRAP_NO_WRAP: 0;
export const WRAP_WRAP: 1;
export const WRAP_WRAP_REVERSE: 2;
export type YogaJustifyContent =
| typeof JUSTIFY_CENTER
| typeof JUSTIFY_FLEX_END
| typeof JUSTIFY_FLEX_START
| typeof JUSTIFY_SPACE_AROUND
| typeof JUSTIFY_SPACE_BETWEEN
| typeof JUSTIFY_SPACE_EVENLY;
export type YogaAlign =
| typeof ALIGN_AUTO
| typeof ALIGN_BASELINE
| typeof ALIGN_CENTER
| typeof ALIGN_FLEX_END
| typeof ALIGN_FLEX_START
| typeof ALIGN_SPACE_AROUND
| typeof ALIGN_SPACE_BETWEEN
| typeof ALIGN_STRETCH;
export type YogaFlexDirection =
| typeof FLEX_DIRECTION_COLUMN
| typeof FLEX_DIRECTION_COLUMN_REVERSE
| typeof FLEX_DIRECTION_COUNT
| typeof FLEX_DIRECTION_ROW
| typeof FLEX_DIRECTION_ROW_REVERSE;
export type YogaDirection =
| typeof DIRECTION_INHERIT
| typeof DIRECTION_LTR
| typeof DIRECTION_RTL;
export type YogaFlexWrap =
| typeof WRAP_NO_WRAP
| typeof WRAP_WRAP
| typeof WRAP_WRAP_REVERSE;
export type YogaEdge =
| typeof EDGE_LEFT
| typeof EDGE_TOP
| typeof EDGE_RIGHT
| typeof EDGE_BOTTOM
| typeof EDGE_START
| typeof EDGE_END
| typeof EDGE_HORIZONTAL
| typeof EDGE_VERTICAL
| typeof EDGE_ALL;
export type YogaDisplay =
| typeof DISPLAY_FLEX
| typeof DISPLAY_NONE;
export type YogaUnit =
| typeof UNIT_AUTO
| typeof UNIT_PERCENT
| typeof UNIT_POINT
| typeof UNIT_UNDEFINED;
export type YogaOverflow =
| typeof OVERFLOW_HIDDEN
| typeof OVERFLOW_SCROLL
| typeof OVERFLOW_VISIBLE;
export type YogaPositionType =
| typeof POSITION_TYPE_ABSOLUTE
| typeof POSITION_TYPE_RELATIVE;
export type YogaExperimentalFeature = typeof EXPERIMENTAL_FEATURE_WEB_FLEX_BASIS;
export class Node {
private constructor();
static create(config?: Config): Node;
static createDefault(): Node;
static createWithConfig(config: Config): Node;
static destroy(node: Node): Node;
calculateLayout(
width?: number,
height?: number,
direction?: YogaDirection,
): void;
copyStyle(node: Node): void;
free(): void;
freeRecursive(): void;
getAlignContent(): YogaAlign;
getAlignItems(): YogaAlign;
getAlignSelf(): YogaAlign;
getAspectRatio(): number;
getBorder(edge: YogaEdge): number;
getChild(index: number): Node;
getChildCount(): number;
getComputedBorder(edge: YogaEdge): number;
getComputedBottom(): number;
getComputedHeight(): number;
getComputedLayout(): Layout;
getComputedLeft(): number;
getComputedMargin(edge: YogaEdge): number;
getComputedPadding(edge: YogaEdge): number;
getComputedRight(): number;
getComputedTop(): number;
getComputedWidth(): number;
getDisplay(): YogaDisplay;
getFlexBasis(): number;
getFlexDirection(): YogaFlexDirection;
getFlexGrow(): number;
getFlexShrink(): number;
getFlexWrap(): YogaFlexWrap;
getHeight(): Value;
getJustifyContent(): YogaJustifyContent;
getMargin(edge: YogaEdge): Value;
getMaxHeight(): Value;
getMaxWidth(): Value;
getMinHeight(): Value;
getMinWidth(): Value;
getOverflow(): YogaOverflow;
getPadding(edge: YogaEdge): Value;
getParent(): Node | null;
getPosition(edge: YogaEdge): Value;
getPositionType(): YogaPositionType;
getWidth(): Value;
insertChild(child: Node, index: number): void;
isDirty(): boolean;
markDirty(): void;
removeChild(child: Node): void;
reset(): void;
setAlignContent(alignContent: YogaAlign): void;
setAlignItems(alignItems: YogaAlign): void;
setAlignSelf(alignSelf: YogaAlign): void;
setAspectRatio(aspectRatio: number): void;
setBorder(edge: YogaEdge, borderWidth: number): void;
setDisplay(display: YogaDisplay): void;
setFlex(flex: number): void;
setFlexBasis(flexBasis: number | string): void;
setFlexBasisPercent(flexBasis: number): void;
setFlexDirection(flexDirection: YogaFlexDirection): void;
setFlexGrow(flexGrow: number): void;
setFlexShrink(flexShrink: number): void;
setFlexWrap(flexWrap: YogaFlexWrap): void;
setHeight(height: number | string): void;
setHeightAuto(): void;
setHeightPercent(height: number): void;
setJustifyContent(justifyContent: YogaJustifyContent): void;
setMargin(edge: YogaEdge, margin: number): void;
setMarginAuto(edge: YogaEdge): void;
setMarginPercent(edge: YogaEdge, margin: number): void;
setMaxHeight(maxHeight: number | string): void;
setMaxHeightPercent(maxHeight: number): void;
setMaxWidth(maxWidth: number | string): void;
setMaxWidthPercent(maxWidth: number): void;
setMeasureFunc(measureFunc: (() => any) | null): void;
setMinHeight(minHeight: number | string): void;
setMinHeightPercent(minHeight: number): void;
setMinWidth(minWidth: number | string): void;
setMinWidthPercent(minWidth: number): void;
setOverflow(overflow: YogaOverflow): void;
setPadding(edge: YogaEdge, padding: number | string): void;
setPaddingPercent(edge: YogaEdge, padding: number): void;
setPosition(edge: YogaEdge, position: number | string): void;
setPositionPercent(edge: YogaEdge, position: number): void;
setPositionType(positionType: YogaPositionType): void;
setWidth(width: number | string): void;
setWidthAuto(): void;
setWidthPercent(width: number): void;
unsetMeasureFun(): void;
}
export class Config {
private constructor();
static create(): Config;
static destroy(config: Config): any;
isExperimentalFeatureEnabled(feature: YogaExperimentalFeature): boolean;
setExperimentalFeatureEnabled(
feature: YogaExperimentalFeature,
enabled: boolean,
): void;
setPointScaleFactor(factor: number): void;
}
export class Layout {
readonly left: number;
readonly right: number;
readonly top: number;
readonly bottom: number;
readonly width: number;
readonly height: number;
constructor(
left: number,
right: number,
top: number,
bottom: number,
width: number,
height: number,
);
}
export class Size {
readonly width: number;
readonly height: number;
constructor(width: number, height: number);
}
export class Value {
readonly unit: YogaUnit | number;
readonly value: number;
constructor(unit: YogaUnit | number, value: number);
}