@textbus/browser
Version:
Textbus is a rich text editor and framework that is highly customizable and extensible to achieve rich wysiwyg effects.
51 lines (50 loc) • 1.38 kB
TypeScript
import { Observable } from '@tanbo/stream';
import { Injector } from '@tanbo/di';
import { Scheduler, Rect } from '@textbus/core';
export declare function getLayoutRectByRange(range: Range): Rect;
export interface CaretPosition {
left: number;
top: number;
height: number;
}
export interface CaretStyle {
height: string;
lineHeight: string;
fontSize: string;
}
export interface CaretLimit {
top: number;
bottom: number;
}
export interface Scroller {
onScroll: Observable<any>;
getLimit(): CaretLimit;
setOffset(offsetScrollTop: number): void;
}
export declare class Caret {
private scheduler;
private injector;
onPositionChange: Observable<CaretPosition | null>;
onStyleChange: Observable<CaretStyle>;
elementRef: HTMLElement;
private timer;
private caret;
private oldPosition;
private set display(value);
private get display();
private _display;
private flashing;
private subs;
private positionChangeEvent;
private styleChangeEvent;
private oldRange;
private isFixed;
private editorMask;
constructor(scheduler: Scheduler, injector: Injector);
refresh(isFixedCaret?: boolean): void;
show(range: Range, restart: boolean): void;
hide(): void;
destroy(): void;
correctScrollTop(scroller: Scroller): void;
private updateCursorPosition;
}