pangu
Version:
Opinionated paranoid text spacing: automatically inserts whitespace between CJK (Chinese, Japanese, Korean) and ANS (alphabetical letters, numerical digits and symbols)
53 lines • 1.84 kB
TypeScript
import { Pangu } from '../shared/index.js';
import { VisibilityDetector } from './dom/visibility-detector.js';
import { TaskScheduler } from './scheduling/task-scheduler.js';
export interface AutoSpacePageConfig {
pageDelayMs?: number;
nodeDelayMs?: number;
nodeMaxWaitMs?: number;
}
interface UnsettledTextNode {
readonly node: Text;
readonly unspaced: string;
}
export interface SettledTextNode extends UnsettledTextNode {
readonly settled: string;
}
export interface LateFix {
readonly node: Text;
readonly settled: string;
readonly data: string;
}
export declare class BrowserPangu extends Pangu {
private static readonly maxSyncTextNodes;
private autoSpacePageObserver;
private readonly lastWrittenData;
private readonly lateFixedTextNodes;
readonly taskScheduler: TaskScheduler;
readonly visibilityDetector: VisibilityDetector;
onTextNodesSettled: ((settledTextNodes: SettledTextNode[]) => void) | null;
autoSpacePage({ pageDelayMs, nodeDelayMs, nodeMaxWaitMs }?: AutoSpacePageConfig): void;
spacePage(): void;
spaceNode(node: Node): void;
stopAutoSpacePage(): void;
applyLateFixes(lateFixes: readonly LateFix[]): void;
private isSpaceLikeSibling;
private isGridOrFlexContainer;
private spaceTextNodes;
private holdsLateFix;
private emitTextNodesSettled;
private applyTextNodeSpacing;
private spaceNodeSync;
private withNeighborTextNodes;
private hasSpacedTextInSubtree;
private insertPanguElement;
private findPreviousElementLastChar;
private scanBetweenTextNodes;
private isHiddenBoundaryBefore;
private isHiddenBoundaryAfter;
private schedule;
private setupAutoSpacePageObserver;
}
export declare const pangu: BrowserPangu;
export default pangu;
//# sourceMappingURL=pangu.d.ts.map