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