@antv/f6-ui
Version:
UI system for @antv/f6
58 lines (49 loc) • 1.61 kB
JavaScript
import htmlParse from './om/dom';
import cssParse from './om/css';
import styleParse from './om/style';
import { createUINode } from './ui-node';
import { registerUINode } from './ui-node';
import { registerAttr } from './parser/attr-parser';
import UIBaseNode from './ui-node/base';
function createUI(htmlString, cssString, group) {
var tree = create(htmlString, cssString, true);
tree.manualMount(group);
return tree;
}
function createSegmentNode(htmlString, cssString, group) {
var tree = create(htmlString, cssString, false);
if (group) tree.manualMount(group);
return tree;
}
function create(htmlString, cssString, isNeedRoot) {
if (isNeedRoot === void 0) {
isNeedRoot = false;
}
var dom = htmlParse(htmlString, isNeedRoot);
var cssTree = cssParse(cssString);
var styleTree = styleParse(dom, cssTree);
var tree = createUINode(styleTree.dom.tagName, styleTree); // 创建ui节点
var stack = [[styleTree, tree]];
while (stack.length) {
var _a = stack.pop(),
node = _a[0],
parent_1 = _a[1];
for (var _i = 0, _b = node.originChildren; _i < _b.length; _i++) {
var child = _b[_i];
var uiNode = createUINode(child.dom.tagName, child);
parent_1.children.push(uiNode);
uiNode.setParent(parent_1);
stack.push([child, uiNode]);
}
}
return tree;
}
var f6ui = {
UIBaseNode: UIBaseNode,
createUI: createUI,
registerUINode: registerUINode,
registerAttr: registerAttr,
createSegmentNode: createSegmentNode
};
export default f6ui;
export { UIBaseNode, createUI, registerUINode, registerAttr, createSegmentNode };