UNPKG

@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
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; }