narraleaf-react
Version:
A React visual novel player framework
100 lines (99 loc) • 3.27 kB
TypeScript
export declare enum CommonPositionType {
Left = "left",
Center = "center",
Right = "right"
}
export declare const CommonPositions: { [key in CommonPositionType]: `${number}%`; };
export interface IPosition {
toCSS(): D2Position;
}
export type Coord2DPosition = {
x: number | `${"-" | ""}${number}%`;
y: number | `${"-" | ""}${number}%`;
} & Partial<OffsetPosition>;
export type AlignPosition = {
xalign: number;
yalign: number;
} & Partial<OffsetPosition>;
export type OffsetPosition = {
xoffset: number;
yoffset: number;
};
export type RawPosition = CommonPositionType | (Partial<Coord2DPosition> & {
xalign?: never;
yalign?: never;
}) | (Partial<AlignPosition> & {
x?: never;
y?: never;
});
type Unknown = typeof PositionUtils.Unknown;
type UnknownAble<T> = T | Unknown;
export declare class CommonPosition implements IPosition {
static Positions: typeof CommonPositionType;
static isCommonPositionType(arg: any): arg is CommonPosition;
readonly position: CommonPositionType;
/**
* Create a new CommonPosition instance
* @example
* ```ts
* new CommonPosition(CommonPosition.Positions.Center);
* new CommonPosition("center");
* ```
*/
constructor(position: CommonPositionType);
toCSS(): D2Position;
}
export declare class Coord2D implements IPosition {
static isCoord2DPosition(arg: any): arg is Coord2D;
static fromCommonPosition(position: CommonPosition): Coord2D;
static fromAlignPosition(position: Partial<AlignPosition>): Coord2D;
static merge(a: Coord2D, b: Coord2D): Coord2D;
readonly x: UnknownAble<Coord2DPosition["x"]>;
readonly y: UnknownAble<Coord2DPosition["y"]>;
readonly xoffset: UnknownAble<number>;
readonly yoffset: UnknownAble<number>;
/**
* Create a new Coord2D instance
* @example
* ```ts
* new Coord2D("50%", "50%");
* new Coord2D({x: 1280, y: "50%"});
* new Coord2D({x: 1280, y: "-50%", xoffset: 10, yoffset: 20});
* ```
*/
constructor(arg0: {
x?: UnknownAble<Coord2DPosition["x"]>;
y?: UnknownAble<Coord2DPosition["y"]>;
xoffset?: UnknownAble<number>;
yoffset?: UnknownAble<number>;
});
constructor(x: UnknownAble<Coord2DPosition["x"]>, y: UnknownAble<Coord2DPosition["y"]>);
check(): void;
toCSS(): D2Position<Coord2DPosition["x"], Coord2DPosition["y"]>;
}
export declare class Align implements IPosition {
static isAlignPosition(arg: any): arg is AlignPosition;
readonly xalign: UnknownAble<number>;
readonly yalign: UnknownAble<number>;
readonly xoffset: UnknownAble<number>;
readonly yoffset: UnknownAble<number>;
/**
* Create a new Align instance
* @example
* ```ts
* new Align(0.5, 0.5);
* new Align({xalign: 0.25, yalign: 0.5});
* new Align({xalign: 0.25, yalign: 0.5, xoffset: 10, yoffset: 20});
* ```
*/
constructor(xalign?: UnknownAble<number>, yalign?: UnknownAble<number>);
constructor(arg0: {
xalign?: UnknownAble<number>;
yalign?: UnknownAble<number>;
xoffset?: UnknownAble<number>;
yoffset?: UnknownAble<number>;
});
check(): void;
toCSS(): D2Position;
}
export {};