177 lines
4.8 KiB
Plaintext
177 lines
4.8 KiB
Plaintext
|
/**
|
||
|
* Copyright (c) Meta Platforms, Inc. and affiliates.
|
||
|
*
|
||
|
* This source code is licensed under the MIT license found in the
|
||
|
* LICENSE file in the root directory of this source tree.
|
||
|
*
|
||
|
* @format
|
||
|
*/
|
||
|
|
||
|
import type {
|
||
|
Align,
|
||
|
Direction,
|
||
|
Display,
|
||
|
Edge,
|
||
|
ExperimentalFeature,
|
||
|
FlexDirection,
|
||
|
Gutter,
|
||
|
Justify,
|
||
|
MeasureMode,
|
||
|
Overflow,
|
||
|
PositionType,
|
||
|
Unit,
|
||
|
Wrap,
|
||
|
} from './generated/YGEnums.js';
|
||
|
|
||
|
import type * as YGEnums from './generated/YGEnums.js';
|
||
|
|
||
|
type Layout = {
|
||
|
left: number;
|
||
|
right: number;
|
||
|
top: number;
|
||
|
bottom: number;
|
||
|
width: number;
|
||
|
height: number;
|
||
|
}
|
||
|
|
||
|
type Size = {
|
||
|
width: number;
|
||
|
height: number;
|
||
|
}
|
||
|
|
||
|
type Value = {
|
||
|
unit: Unit;
|
||
|
value: number;
|
||
|
}
|
||
|
|
||
|
export type Config = {
|
||
|
free(): void;
|
||
|
isExperimentalFeatureEnabled(feature: ExperimentalFeature): boolean,
|
||
|
setExperimentalFeatureEnabled(
|
||
|
feature: ExperimentalFeature,
|
||
|
enabled: boolean,
|
||
|
): void,
|
||
|
setPointScaleFactor(factor: number): void,
|
||
|
useLegacyStretchBehaviour(): boolean,
|
||
|
setUseLegacyStretchBehaviour(useLegacyStretchBehaviour: boolean): void,
|
||
|
useWebDefaults(): boolean,
|
||
|
setUseWebDefaults(useWebDefaults: boolean): void,
|
||
|
};
|
||
|
|
||
|
export type MeasureFunction = (
|
||
|
width: number,
|
||
|
widthMode: MeasureMode,
|
||
|
height: number,
|
||
|
heightMode: MeasureMode
|
||
|
) => Size;
|
||
|
|
||
|
export type Node = {
|
||
|
calculateLayout(
|
||
|
width?: number,
|
||
|
height?: number,
|
||
|
direction?: Direction,
|
||
|
): void,
|
||
|
copyStyle(node: Node): void,
|
||
|
free(): void,
|
||
|
freeRecursive(): void,
|
||
|
getAlignContent(): Align,
|
||
|
getAlignItems(): Align,
|
||
|
getAlignSelf(): Align,
|
||
|
getAspectRatio(): number,
|
||
|
getBorder(edge: Edge): number,
|
||
|
getChild(index: number): Node,
|
||
|
getChildCount(): number,
|
||
|
getComputedBorder(edge: Edge): number,
|
||
|
getComputedBottom(): number,
|
||
|
getComputedHeight(): number,
|
||
|
getComputedLayout(): Layout,
|
||
|
getComputedLeft(): number,
|
||
|
getComputedMargin(edge: Edge): number,
|
||
|
getComputedPadding(edge: Edge): number,
|
||
|
getComputedRight(): number,
|
||
|
getComputedTop(): number,
|
||
|
getComputedWidth(): number,
|
||
|
getDisplay(): Display,
|
||
|
getFlexBasis(): Value,
|
||
|
getFlexDirection(): FlexDirection,
|
||
|
getFlexGrow(): number,
|
||
|
getFlexShrink(): number,
|
||
|
getFlexWrap(): Wrap,
|
||
|
getHeight(): Value,
|
||
|
getJustifyContent(): Justify,
|
||
|
getGap(gutter: Gutter): Value,
|
||
|
getMargin(edge: Edge): Value,
|
||
|
getMaxHeight(): Value,
|
||
|
getMaxWidth(): Value,
|
||
|
getMinHeight(): Value,
|
||
|
getMinWidth(): Value,
|
||
|
getOverflow(): Overflow,
|
||
|
getPadding(edge: Edge): Value,
|
||
|
getParent(): Node | null,
|
||
|
getPosition(edge: Edge): Value,
|
||
|
getPositionType(): PositionType,
|
||
|
getWidth(): Value,
|
||
|
insertChild(child: Node, index: number): void,
|
||
|
isDirty(): boolean,
|
||
|
markDirty(): void,
|
||
|
removeChild(child: Node): void,
|
||
|
reset(): void,
|
||
|
setAlignContent(alignContent: Align): void,
|
||
|
setAlignItems(alignItems: Align): void,
|
||
|
setAlignSelf(alignSelf: Align): void,
|
||
|
setAspectRatio(aspectRatio: number): void,
|
||
|
setBorder(edge: Edge, borderWidth: number): void,
|
||
|
setDisplay(display: Display): void,
|
||
|
setFlex(flex: number): void,
|
||
|
setFlexBasis(flexBasis: number | string): void,
|
||
|
setFlexBasisPercent(flexBasis: number): void,
|
||
|
setFlexBasisAuto(): void,
|
||
|
setFlexDirection(flexDirection: FlexDirection): void,
|
||
|
setFlexGrow(flexGrow: number): void,
|
||
|
setFlexShrink(flexShrink: number): void,
|
||
|
setFlexWrap(flexWrap: Wrap): void,
|
||
|
setHeight(height: number | string): void,
|
||
|
setHeightAuto(): void,
|
||
|
setHeightPercent(height: number): void,
|
||
|
setJustifyContent(justifyContent: Justify): void,
|
||
|
setGap(gutter: Gutter, gapLength: number): Value,
|
||
|
setMargin(edge: Edge, margin: number | string): void,
|
||
|
setMarginAuto(edge: Edge): void,
|
||
|
setMarginPercent(edge: Edge, margin: number): void,
|
||
|
setMaxHeight(maxHeight: number | string): void,
|
||
|
setMaxHeightPercent(maxHeight: number): void,
|
||
|
setMaxWidth(maxWidth: number | string): void,
|
||
|
setMaxWidthPercent(maxWidth: number): void,
|
||
|
setMeasureFunc(measureFunc: MeasureFunction | null): void,
|
||
|
setMinHeight(minHeight: number | string): void,
|
||
|
setMinHeightPercent(minHeight: number): void,
|
||
|
setMinWidth(minWidth: number | string): void,
|
||
|
setMinWidthPercent(minWidth: number): void,
|
||
|
setOverflow(overflow: Overflow): void,
|
||
|
setPadding(edge: Edge, padding: number | string): void,
|
||
|
setPaddingPercent(edge: Edge, padding: number): void,
|
||
|
setPosition(edge: Edge, position: number | string): void,
|
||
|
setPositionPercent(edge: Edge, position: number): void,
|
||
|
setPositionType(positionType: PositionType): void,
|
||
|
setWidth(width: number | string): void,
|
||
|
setWidthAuto(): void,
|
||
|
setWidthPercent(width: number): void,
|
||
|
unsetMeasureFunc(): void,
|
||
|
};
|
||
|
|
||
|
export type Yoga = {
|
||
|
Config: {
|
||
|
create(): Config,
|
||
|
destroy(config: Config): any,
|
||
|
},
|
||
|
Node: {
|
||
|
create(): Node,
|
||
|
createDefault(): Node,
|
||
|
createWithConfig(config: Config): Node,
|
||
|
destroy(node: Node): any,
|
||
|
},
|
||
|
} & typeof YGEnums;
|
||
|
|
||
|
declare const wrapAsm: () => Yoga;
|
||
|
export default wrapAsm;
|