nehan
Version:
Html layout engine for paged-media written in Typescript
161 lines (160 loc) • 6.84 kB
TypeScript
import { BoxEnv, LogicalBorder, ILogicalNodeEvaluator, ILogicalNodeEffector, LogicalCursorPos, LogicalBaseLineMetrics, LogicalBoxEdge, LogicalSize, PhysicalSize, ICharacter, ILogicalNodePos } from './public-api';
export interface ILogicalNode {
parent?: ILogicalNode;
dom?: HTMLElement;
env: BoxEnv;
size: LogicalSize;
measure: number;
extent: number;
progress: number;
text: string;
boxPos: ILogicalNodePos;
acceptEvaluator: (visitor: ILogicalNodeEvaluator, ...args: any[]) => HTMLElement | Node;
acceptEffector: (visitor: ILogicalNodeEffector, ...args: any[]) => void;
}
export interface ILogicalFloatableNode extends ILogicalNode {
layoutPos: LogicalCursorPos;
}
export declare class LogicalTextNode implements ILogicalNode {
env: BoxEnv;
boxPos: ILogicalNodePos;
size: LogicalSize;
text: string;
skipBr: boolean;
children: ICharacter[];
progress: number;
dom: HTMLElement | undefined;
constructor(env: BoxEnv, boxPos: ILogicalNodePos, size: LogicalSize, text: string, skipBr: boolean, children: ICharacter[], progress?: number, dom?: HTMLElement | undefined);
get measure(): number;
get extent(): number;
acceptEvaluator(visitor: ILogicalNodeEvaluator): HTMLElement;
acceptEffector(visitor: ILogicalNodeEffector): void;
}
export declare class LogicalLineNode implements ILogicalNode {
env: BoxEnv;
boxPos: ILogicalNodePos;
linePos: LogicalCursorPos;
size: LogicalSize;
autoSize: LogicalSize;
text: string;
children: ILogicalNode[];
baseline: LogicalBaseLineMetrics;
progress: number;
dom: HTMLElement | undefined;
constructor(env: BoxEnv, boxPos: ILogicalNodePos, linePos: LogicalCursorPos, size: LogicalSize, autoSize: LogicalSize, text: string, children: ILogicalNode[], baseline: LogicalBaseLineMetrics, progress?: number, dom?: HTMLElement | undefined);
get measure(): number;
get extent(): number;
acceptEvaluator(visitor: ILogicalNodeEvaluator): HTMLElement;
acceptEffector(visitor: ILogicalNodeEffector): void;
}
export declare class LogicalRubyNode implements ILogicalNode {
env: BoxEnv;
boxPos: ILogicalNodePos;
size: LogicalSize;
text: string;
rb: LogicalInlineNode;
rt: LogicalInlineNode;
progress: number;
dom: HTMLElement | undefined;
constructor(env: BoxEnv, boxPos: ILogicalNodePos, size: LogicalSize, text: string, rb: LogicalInlineNode, rt: LogicalInlineNode, progress?: number, dom?: HTMLElement | undefined);
get measure(): number;
get extent(): number;
get lineExtent(): number;
acceptEvaluator(visitor: ILogicalNodeEvaluator): HTMLElement;
acceptEffector(visitor: ILogicalNodeEffector): void;
}
export declare class LogicalInlineNode implements ILogicalNode {
env: BoxEnv;
boxPos: ILogicalNodePos;
size: LogicalSize;
text: string;
edge: LogicalBoxEdge;
children: ILogicalNode[];
progress: number;
dom: HTMLElement | undefined;
constructor(env: BoxEnv, boxPos: ILogicalNodePos, size: LogicalSize, text: string, edge: LogicalBoxEdge, children: ILogicalNode[], progress?: number, dom?: HTMLElement | undefined);
get measure(): number;
get extent(): number;
acceptEvaluator(visitor: ILogicalNodeEvaluator): HTMLElement;
acceptEffector(visitor: ILogicalNodeEffector): void;
}
export declare class LogicalBlockNode implements ILogicalFloatableNode {
env: BoxEnv;
boxPos: ILogicalNodePos;
layoutPos: LogicalCursorPos;
size: LogicalSize;
autoSize: LogicalSize;
text: string;
border: LogicalBorder;
children: ILogicalNode[];
progress: number;
dom: HTMLElement | undefined;
constructor(env: BoxEnv, boxPos: ILogicalNodePos, layoutPos: LogicalCursorPos, size: LogicalSize, autoSize: LogicalSize, text: string, border: LogicalBorder, children: ILogicalNode[], progress: number, dom?: HTMLElement | undefined);
get measure(): number;
get extent(): number;
acceptEvaluator(visitor: ILogicalNodeEvaluator): HTMLElement;
acceptEffector(visitor: ILogicalNodeEffector): void;
}
export declare class LogicalInlineBlockNode implements ILogicalFloatableNode {
env: BoxEnv;
boxPos: ILogicalNodePos;
layoutPos: LogicalCursorPos;
size: LogicalSize;
autoSize: LogicalSize;
text: string;
edge: LogicalBoxEdge;
children: ILogicalNode[];
progress: number;
dom: HTMLElement | undefined;
constructor(env: BoxEnv, boxPos: ILogicalNodePos, layoutPos: LogicalCursorPos, size: LogicalSize, autoSize: LogicalSize, text: string, edge: LogicalBoxEdge, children: ILogicalNode[], progress?: number, dom?: HTMLElement | undefined);
get measure(): number;
get extent(): number;
acceptEvaluator(visitor: ILogicalNodeEvaluator): HTMLElement;
acceptEffector(visitor: ILogicalNodeEffector): void;
}
export declare class LogicalTableCellsNode implements ILogicalNode {
env: BoxEnv;
boxPos: ILogicalNodePos;
size: LogicalSize;
rowPos: LogicalCursorPos;
text: string;
children: ILogicalNode[];
progress: number;
dom: HTMLElement | undefined;
constructor(env: BoxEnv, boxPos: ILogicalNodePos, size: LogicalSize, rowPos: LogicalCursorPos, text: string, children: ILogicalNode[], progress?: number, dom?: HTMLElement | undefined);
get measure(): number;
get extent(): number;
acceptEvaluator(visitor: ILogicalNodeEvaluator): HTMLElement;
acceptEffector(visitor: ILogicalNodeEffector): void;
}
export declare class LogicalBlockReNode implements ILogicalFloatableNode {
env: BoxEnv;
boxPos: ILogicalNodePos;
size: LogicalSize;
physicalSize: PhysicalSize;
edge: LogicalBoxEdge;
layoutPos: LogicalCursorPos;
text: string;
progress: number;
dom: HTMLElement | undefined;
constructor(env: BoxEnv, boxPos: ILogicalNodePos, size: LogicalSize, physicalSize: PhysicalSize, edge: LogicalBoxEdge, layoutPos: LogicalCursorPos, text: string, progress?: number, dom?: HTMLElement | undefined);
get measure(): number;
get extent(): number;
acceptEvaluator(visitor: ILogicalNodeEvaluator): HTMLElement;
acceptEffector(visitor: ILogicalNodeEffector): void;
}
export declare class LogicalInlineReNode implements ILogicalNode {
env: BoxEnv;
boxPos: ILogicalNodePos;
size: LogicalSize;
physicalSize: PhysicalSize;
edge: LogicalBoxEdge;
text: string;
progress: number;
dom: HTMLElement | undefined;
constructor(env: BoxEnv, boxPos: ILogicalNodePos, size: LogicalSize, physicalSize: PhysicalSize, edge: LogicalBoxEdge, text: string, progress?: number, dom?: HTMLElement | undefined);
get measure(): number;
get extent(): number;
acceptEvaluator(visitor: ILogicalNodeEvaluator): HTMLElement;
acceptEffector(visitor: ILogicalNodeEffector): void;
}