import { parseDOM } from 'htmlparser2';
import HTMLModelRegistry from '../../model/HTMLModelRegistry';
import { defaultStylesConfig } from '../../styles/defaults';
import { TStyles } from '../../styles/TStyles';
import { TStylesMerger } from '../../styles/TStylesMerger';
import { TNodeImpl, TNodeInit } from '../../tree/tree-types';
import { translateNode } from '../translate';
import { DataFlowParams } from '../types';
export const defaultModelRegistry = new HTMLModelRegistry();
export const defaultStylesMerger = new TStylesMerger(
defaultStylesConfig,
defaultModelRegistry
);
export const defaultInit: TNodeInit = {
elementModel: null,
domNode: null,
context: {
stylesMerger: defaultStylesMerger,
removeLineBreaksAroundEastAsianDiscardSet: false
},
parent: null
};
export const defaultDataFlowParams: DataFlowParams = {
stylesMerger: defaultStylesMerger,
modelRegistry: defaultModelRegistry,
baseStyles: TStyles.empty(),
removeLineBreaksAroundEastAsianDiscardSet: false
};
export function translateTreeTest(
source: string,
params?: Partial
): TNodeImpl {
const documentTree = parseDOM(source);
const stylesMerger = params?.modelRegistry
? new TStylesMerger(
{ ...defaultStylesConfig, enableUserAgentStyles: true },
params.modelRegistry
)
: defaultStylesMerger;
return translateNode({
node: documentTree[0],
params: { ...defaultDataFlowParams, ...params, stylesMerger },
parent: null
}) as TNodeImpl;
}