forked from fanruan/fineui
Browse Source
Merge in VISUAL/fineui from ~GUY/fineui:master to master * commit '49c0953a7420dd58e83e646d85b6a7e66e78a9cd': 去掉对于非div、input、a等元素的处理 widget也支持埋点 widget也支持埋点es6
guy
3 years ago
8 changed files with 100 additions and 123 deletions
@ -1,98 +0,0 @@
|
||||
(function () { |
||||
var kv = {}; |
||||
BI.shortcut = BI.component = BI.shortcut || function (xtype, cls) { |
||||
if (kv[xtype] != null) { |
||||
_global.console && console.error("组件: [" + xtype + "] 已经注册过了"); |
||||
} |
||||
if (cls) { |
||||
cls["xtype"] = xtype; |
||||
} |
||||
kv[xtype] = cls; |
||||
}; |
||||
|
||||
// 根据配置属性生成widget
|
||||
var createWidget = function (config, context, lazy) { |
||||
var cls = kv[config.type]; |
||||
|
||||
if (!cls) { |
||||
throw new Error("组件: [" + config.type + "] 未定义"); |
||||
} |
||||
var pushed = false; |
||||
var widget = new cls(); |
||||
widget._context = BI.Widget.context || context; |
||||
if (!BI.Widget.context && context) { |
||||
pushed = true; |
||||
BI.Widget.pushContext(context); |
||||
} |
||||
widget._initProps(config); |
||||
widget._initRoot(); |
||||
widget._constructed(); |
||||
// if (!lazy || config.element || config.root) {
|
||||
widget._lazyConstructor(); |
||||
// }
|
||||
pushed && BI.Widget.popContext(); |
||||
return widget; |
||||
}; |
||||
|
||||
BI.createWidget = BI.createWidget || function (item, options, context, lazy) { |
||||
item || (item = {}); |
||||
if (BI.isWidget(options)) { |
||||
context = options; |
||||
options = {}; |
||||
} else { |
||||
options || (options = {}); |
||||
} |
||||
|
||||
var el, w; |
||||
if (item.type || options.type) { |
||||
el = BI.extend({}, options, item); |
||||
} else if (item.el && (item.el.type || options.type)) { |
||||
el = BI.extend({}, options, item.el); |
||||
} |
||||
|
||||
if (el) { |
||||
BI.runConfigFunction(el.type); |
||||
} |
||||
|
||||
// 先把准备环境准备好
|
||||
BI.init(); |
||||
|
||||
if (BI.isEmpty(item) && BI.isEmpty(options)) { |
||||
return BI.createWidget({ |
||||
type: "bi.layout" |
||||
}); |
||||
} |
||||
if (BI.isWidget(item)) { |
||||
return item; |
||||
} |
||||
if (el) { |
||||
w = BI.Plugin.getWidget(el.type, el); |
||||
if (w.type === el.type) { |
||||
if (BI.Plugin.hasObject(el.type)) { |
||||
w.listeners = (w.listeners || []).concat([{ |
||||
eventName: BI.Events.MOUNT, |
||||
action: function () { |
||||
BI.Plugin.getObject(el.type, this); |
||||
} |
||||
}]); |
||||
} |
||||
return createWidget(w, context, lazy); |
||||
} |
||||
return BI.createWidget(w, options, context, lazy); |
||||
} |
||||
if (BI.isWidget(item.el)) { |
||||
return item.el; |
||||
} |
||||
throw new Error("组件:无法根据item创建组件", item); |
||||
}; |
||||
|
||||
BI._lazyCreateWidget = BI._lazyCreateWidget || function (item, options, context) { |
||||
return BI.createWidget(item, options, context, true); |
||||
}; |
||||
|
||||
BI.createElement = BI.createElement || function () { |
||||
var widget = BI.createWidget.apply(this, arguments); |
||||
return widget.element; |
||||
}; |
||||
|
||||
})(); |
Loading…
Reference in new issue