@dcl/react-ecs
Version:
Decentraland ECS
43 lines (42 loc) • 2.08 kB
TypeScript
import { YGUnit } from '@dcl/ecs';
import { Position, PositionUnit, PositionShorthand, BorderRadius, UiTransformProps } from './types';
import { Color4 } from '@dcl/ecs/dist/components/generated/pb/decentraland/common/colors.gen';
type PropName = 'position' | 'margin' | 'padding' | 'borderWidth';
type PropKey = `${PropName}${Capitalize<keyof Position>}`;
type PropKeyUnit = `${PropName}${Capitalize<keyof Position>}Unit`;
type PositionParsed = {
[key in PropKey]?: number;
} & {
[key in PropKeyUnit]?: YGUnit;
};
type BorderProp = `border${Capitalize<keyof BorderRadius>}Radius`;
type BorderPropUnit = `${BorderProp}Unit`;
type BorderProps = {
[key in BorderProp]?: number;
} & {
[key in BorderPropUnit]?: YGUnit;
};
export declare function parseBorderRadius(radius: Partial<BorderRadius> | PositionUnit): BorderProps | undefined;
type BorderKey = Record<keyof Position, number>;
type BorderWidthProp = `border${Capitalize<keyof BorderKey>}Width`;
type BorderWidthPropUnit = `${BorderWidthProp}Unit`;
type BorderWidthProps = {
[key in BorderWidthProp]?: number;
} & {
[key in BorderWidthPropUnit]?: YGUnit;
};
export declare function parseBorderWidth(borderWidth: Partial<Position> | PositionUnit): BorderWidthProps | undefined;
type BorderColor = Record<keyof Position, Color4>;
type BorderColorKey = `border${Capitalize<keyof BorderColor>}Color`;
export declare function parseBorderColor(borderColor: UiTransformProps['borderColor']): Record<BorderColorKey, Color4> | undefined;
export declare function parsePosition<T extends PropName>(position: PositionShorthand | Partial<Position> | undefined, prop: T): Partial<PositionParsed>;
type HeightWidth = 'height' | 'width';
type SizePropName = HeightWidth | `max${Capitalize<HeightWidth>}` | `min${Capitalize<HeightWidth>}`;
type SizePropKeyUnit = `${SizePropName}Unit`;
type SizeReturnType = {
[key in SizePropName]: number;
} & {
[key in SizePropKeyUnit]: YGUnit;
};
export declare function parseSize(val: PositionUnit | 'auto' | undefined, key: SizePropName): Partial<SizeReturnType>;
export {};