UNPKG

@textbus/browser

Version:

Textbus is a rich text editor and framework that is highly customizable and extensible to achieve rich wysiwyg effects.

53 lines (52 loc) 1.82 kB
import { Observable } from '@tanbo/stream'; import { Injector } from '@tanbo/di'; import { NativeSelectionBridge, NativeSelectionConnector, Renderer, SelectionPosition, AbstractSelection, RootComponentRef, Controller } from '@textbus/core'; import { Caret } from './caret'; import { Input } from './input'; /** * Textbus PC 端选区桥接实现 */ export declare class SelectionBridge implements NativeSelectionBridge { private injector; caret: Caret; private controller; private rootComponentRef; private input; private renderer; onSelectionChange: Observable<Range | null>; nativeSelection: Selection; private selectionMaskElement; private selectionChangeEvent; private subs; private sub; private connector; private ignoreSelectionChange; private changeFromUser; private docContainer; private maskContainer; constructor(injector: Injector, caret: Caret, controller: Controller, rootComponentRef: RootComponentRef, input: Input, renderer: Renderer); connect(connector: NativeSelectionConnector): void; disConnect(): void; getRect(location: SelectionPosition): import("@textbus/core").Rect | null; restore(abstractSelection: AbstractSelection | null, formLocal: boolean): void; destroy(): void; getPositionByRange(abstractSelection: AbstractSelection): { focus: { node: Node; offset: number; } | null; anchor: { node: Node; offset: number; } | null; }; private findSelectedNodeAndOffset; private findFocusNativeTextNode; private deepFindNativeNodeByOffset; private unListen; private listen; private syncSelection; private getCorrectedPosition; private findFocusNode; private findFocusNodeByParent; }