fineui是帆软报表和BI产品线所使用的前端框架。
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.
 
 
 

58 lines
1.4 KiB

BI.Fragment = function () {
};
BI.h = function (type, props, children) {
if (children != null) {
if (!BI.isArray(children)) {
children = [children];
}
} else {
children = [];
}
if (arguments.length > 3) {
for (var i = 3; i < arguments.length; i++) {
if (BI.isArray(arguments[i])) {
children = children.concat(arguments[i]);
} else {
children.push(arguments[i]);
}
}
}
if (type === BI.Fragment) {
return children;
}
if (BI.isFunction(type)) {
type = type.xtype || type;
}
if (type === "el") {
return BI.extend({
el: children[0]
}, props);
}
if (type === "left") {
return BI.extend({
left: children
}, props);
}
if (type === "right") {
return BI.extend({
right: children
}, props);
}
if (children.length === 1) {
if (BI.isKey(children[0])) {
return BI.extend({
type: type
}, { text: children[0] }, props);
}
if (BI.isFunction(children[0])) {
return BI.extend({
type: type
}, { items: children[0] }, props);
}
}
return BI.extend({
type: type
}, children.length > 0 ? { items: children } : {}, props);
};