modern-text
Version:
Measure and render text in a way that describes the DOM.
90 lines (87 loc) • 2.85 kB
text/typescript
import { PropertyAccessor, NormalizedTextContent } from 'modern-idoc';
import { c as Text } from '../shared/modern-text.DzKfafj6.mjs';
import 'modern-font';
import 'modern-path2d';
interface IndexCharacter {
paragraphIndex: number;
fragmentIndex: number;
charIndex: number;
color: string;
left: number;
top: number;
width: number;
height: number;
content: string;
isFirst?: boolean;
isLast?: boolean;
isLastSelected?: boolean;
isCrlf?: boolean;
}
declare class TextEditor extends HTMLElement implements PropertyAccessor {
left: number;
top: number;
rotate: number;
selection: number[];
protected _selectionMinMax: {
min: number;
max: number;
};
protected _chars: IndexCharacter[];
protected _selectedChars: IndexCharacter[];
protected _cursorPosition?: {
left: number;
top: number;
width: number;
height: number;
color: string;
};
protected _showCursor: boolean;
protected _prevSelection: number[];
protected _composition: boolean;
get composition(): boolean;
protected static _defined: boolean;
static register(): void;
protected _text: Text;
get text(): Text;
set text(newText: Text);
protected _oldText: string;
protected _container: HTMLDivElement;
protected _selection: HTMLDivElement;
protected _textarea: HTMLTextAreaElement;
protected _cursor: HTMLElement;
constructor();
connectedCallback(): void;
moveToDom(target: HTMLElement): void;
set(text: Text): void;
onUpdateProperty(key: string, _newValue: unknown, _oldValue: unknown): void;
protected _updateChars(): void;
protected _updateSelectedChars(): void;
protected _updateCursorPosition(): void;
getPlaintext(): string;
protected _getNewContent(content: NormalizedTextContent, newString?: string, oldString?: string): NormalizedTextContent;
protected _setTextInput(newText: string): void;
protected _onInput(): void;
protected _timer?: any;
protected _onKeydown(e: KeyboardEvent): void;
protected _onFocus(): void;
protected _onBlur(): void;
protected _findNearest(options: {
x: number;
y: number;
xWeight?: number;
yWeight?: number;
}): number;
protected _updateSelectionByDom(): void;
protected _updateDomSelection(): void;
protected _update(): void;
protected _bindEventListeners(): void;
pointerDown(e?: MouseEvent | PointerEvent): boolean;
selectAll(): void;
attributeChangedCallback(name: string, _oldValue: any, newValue: any): void;
protected _emit(type: string, detail?: any): boolean;
protected _renderSelectRange(): void;
protected _renderCursor(): void;
reset(): void;
}
export { TextEditor };
export type { IndexCharacter };