forked from zicloud/bigscreen_admin
You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
75 lines
2.2 KiB
TypeScript
75 lines
2.2 KiB
TypeScript
import Emitter from './emitter.js';
|
|
import type { EmitterSource } from './emitter.js';
|
|
import type Cursor from '../blots/cursor.js';
|
|
import type Scroll from '../blots/scroll.js';
|
|
type NativeRange = AbstractRange;
|
|
interface NormalizedRange {
|
|
start: {
|
|
node: NativeRange['startContainer'];
|
|
offset: NativeRange['startOffset'];
|
|
};
|
|
end: {
|
|
node: NativeRange['endContainer'];
|
|
offset: NativeRange['endOffset'];
|
|
};
|
|
native: NativeRange;
|
|
}
|
|
export interface Bounds {
|
|
bottom: number;
|
|
height: number;
|
|
left: number;
|
|
right: number;
|
|
top: number;
|
|
width: number;
|
|
}
|
|
export declare class Range {
|
|
index: number;
|
|
length: number;
|
|
constructor(index: number, length?: number);
|
|
}
|
|
declare class Selection {
|
|
scroll: Scroll;
|
|
emitter: Emitter;
|
|
composing: boolean;
|
|
mouseDown: boolean;
|
|
root: HTMLElement;
|
|
cursor: Cursor;
|
|
savedRange: Range;
|
|
lastRange: Range | null;
|
|
lastNative: NormalizedRange | null;
|
|
constructor(scroll: Scroll, emitter: Emitter);
|
|
handleComposition(): void;
|
|
handleDragging(): void;
|
|
focus(): void;
|
|
format(format: string, value: unknown): void;
|
|
getBounds(index: number, length?: number): DOMRect | {
|
|
bottom: number;
|
|
height: number;
|
|
left: number;
|
|
right: number;
|
|
top: number;
|
|
width: number;
|
|
} | null;
|
|
getNativeRange(): NormalizedRange | null;
|
|
getRange(): [Range, NormalizedRange] | [null, null];
|
|
hasFocus(): boolean;
|
|
normalizedToRange(range: NormalizedRange): Range;
|
|
normalizeNative(nativeRange: NativeRange): {
|
|
start: {
|
|
node: Node;
|
|
offset: number;
|
|
};
|
|
end: {
|
|
node: Node;
|
|
offset: number;
|
|
};
|
|
native: AbstractRange;
|
|
} | null;
|
|
rangeToNative(range: Range): [Node | null, number, Node | null, number];
|
|
setNativeRange(startNode: Node | null, startOffset?: number, endNode?: Node | null, endOffset?: number | undefined, force?: boolean): void;
|
|
setRange(range: Range | null, force: boolean, source?: EmitterSource): void;
|
|
setRange(range: Range | null, source?: EmitterSource): void;
|
|
update(source?: EmitterSource): void;
|
|
}
|
|
export default Selection;
|