devexpress-richedit
Version:
DevExpress Rich Text Editor is an advanced word-processing tool designed for working with rich text documents.
78 lines (77 loc) • 3.75 kB
TypeScript
import { IMeasurer } from '../../../measurer/measurer';
import { IModelManager } from '../../../model-manager';
import { FontInfoCache } from '../../../model/caches/hashed-caches/font-info-cache';
import { SubDocument, SubDocumentPosition } from '../../../model/sub-document';
import { MaskedCharacterPropertiesBundle } from '../../../rich-utils/properties-bundle';
import { Size } from '@devexpress/utils/lib/geometry/size';
import { FixedInterval } from '@devexpress/utils/lib/intervals/fixed';
import { RunInfo, ImportedParagraphListInfo } from './containers/runs';
import { TableInfo } from './containers/tables';
import { HtmlTagImporterBase } from './importers/base';
import { LoadFontInfo } from './load-font-info';
import { HtmlImporterMaskedCharacterProperties } from './utils/character-properties-utils';
import { ParagraphListPropertiesUtils } from './utils/paragraph-list-properties-utils';
import { FormatImagesImporter } from '../../utils/images-import';
export type TypeOfTagImporterConstructor = new (importer: HtmlImporter) => HtmlTagImporterBase;
export declare class LevelInfo {
element: HTMLElement;
childElements: HTMLElement[];
tagImporter: HtmlTagImporterBase;
allowInsertRuns: boolean;
constructor(element: HTMLElement, childElements: HTMLElement[], allowInsertRuns: boolean);
initTagImporter(importer: HtmlImporter): this;
static getElementTag(elem: HTMLElement | ChildNode): string;
}
export declare class HtmlImportData {
runsInfo: RunInfo[];
tablesInfo: TableInfo[];
constructor(runsInfo: RunInfo[], tablesInfo: TableInfo[]);
}
export declare class HtmlImporter {
currPosition: number;
htmlImporterMaskedCharacterProperties: HtmlImporterMaskedCharacterProperties;
paragraphListPropertiesUtils: ParagraphListPropertiesUtils;
private importedRunsInfo;
importedTablesInfo: TableInfo[];
loadFontInfos: LoadFontInfo[];
tempFontInfoCache: FontInfoCache;
get currElement(): HTMLElement;
get currElementChildren(): HTMLElement[];
levelInfo: LevelInfo[];
get prevLevelInfo(): LevelInfo;
get currLevelInfo(): LevelInfo;
get currListItemLevelInfo(): LevelInfo | null;
fieldsId: number;
prevRunIsParagraph: boolean;
listIndex: number;
listInfos: ImportedParagraphListInfo[];
get currListInfo(): ImportedParagraphListInfo;
importStarted: boolean;
modelManager: IModelManager;
private subDocPosition;
get subDocument(): SubDocument;
charPropsBundle: MaskedCharacterPropertiesBundle;
measurer: IMeasurer;
tagImporters: Record<string, TypeOfTagImporterConstructor>;
private static importers;
private formatImagesImporter?;
constructor(modelManager: IModelManager, measurer: IMeasurer, subDocPosition: SubDocumentPosition, initElements: HTMLElement[], charPropsBundle: MaskedCharacterPropertiesBundle, formatImagesImporter?: FormatImagesImporter);
import(): FixedInterval;
private convertChildElements;
private getSortedTables;
private convertElement;
private putDownParentPropertiesToChild;
private getStyles;
addRun(run: RunInfo, forceAdd?: boolean): void;
addParagraphRun(element: HTMLElement, listInfo?: ImportedParagraphListInfo, isTableCellTag?: boolean): void;
addCurrLevelParagraphRunIfNeeded(): void;
removeAllTrailingLineBreaks(): void;
getLastImportedRun(): RunInfo;
columnSize(): Size;
private registerImageRuns;
private findIndexImportedInlinePictureRunInfo;
static convertHtml(html: string): string;
private static extractBodyContent;
private static MapMissTablePropertiesByTagNames;
private static MapShorthandProperty;
}