You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
74 lines
2.2 KiB
74 lines
2.2 KiB
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;
|
|
|