pangu
Version:
Paranoid text spacing for good readability, to automatically insert whitespace between CJK (Chinese, Japanese, Korean) and half-width characters (alphabetical letters, numerical digits and symbols).
38 lines (37 loc) • 1.38 kB
TypeScript
import { Pangu } from '../shared/index.js';
import { TaskScheduler } from './task-scheduler.js';
import { VisibilityDetector } from './visibility-detector.js';
export interface AutoSpacingPageConfig {
pageDelayMs?: number;
nodeDelayMs?: number;
nodeMaxWaitMs?: number;
}
export declare class BrowserPangu extends Pangu {
private static readonly maxSyncTextNodes;
private isAutoSpacingPageExecuted;
private autoSpacingPageObserver;
private readonly lastWrittenData;
readonly taskScheduler: TaskScheduler;
readonly visibilityDetector: VisibilityDetector;
autoSpacingPage({ pageDelayMs, nodeDelayMs, nodeMaxWaitMs }?: AutoSpacingPageConfig): void;
spacingPage(): void;
spacingNode(contextNode: Node): void;
stopAutoSpacingPage(): void;
isElementVisuallyHidden(element: Element): boolean;
private isSpaceLikeSibling;
private isGridOrFlexContainer;
private spacingTextNodes;
private applyTextRunSpacing;
private spacingNodeSync;
private hasSpacedTextInSubtree;
private insertPanguElement;
private findPreviousElementLastChar;
private scanBetweenTextRuns;
private isHiddenBoundaryBefore;
private isHiddenBoundaryAfter;
private schedule;
private waitForVideosToLoad;
private setupAutoSpacingPageObserver;
}
export declare const pangu: BrowserPangu;
export default pangu;