|
|
@ -1,4 +1,4 @@ |
|
|
|
/*! time: 2021-6-9 7:40:16 PM */ |
|
|
|
/*! time: 2021-6-18 11:30:22 */ |
|
|
|
/******/ (function(modules) { // webpackBootstrap
|
|
|
|
/******/ (function(modules) { // webpackBootstrap
|
|
|
|
/******/ // The module cache
|
|
|
|
/******/ // The module cache
|
|
|
|
/******/ var installedModules = {}; |
|
|
|
/******/ var installedModules = {}; |
|
|
@ -9608,6 +9608,14 @@ module.exports = !__webpack_require__(908)(function () { |
|
|
|
this.purgeListeners(); |
|
|
|
this.purgeListeners(); |
|
|
|
}, |
|
|
|
}, |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
_empty: function () { |
|
|
|
|
|
|
|
BI.each(this._children, function (i, widget) { |
|
|
|
|
|
|
|
widget && widget._unMount && widget._unMount(); |
|
|
|
|
|
|
|
}); |
|
|
|
|
|
|
|
this._children = {}; |
|
|
|
|
|
|
|
this.element.empty(); |
|
|
|
|
|
|
|
}, |
|
|
|
|
|
|
|
|
|
|
|
isolate: function () { |
|
|
|
isolate: function () { |
|
|
|
if (this._parent) { |
|
|
|
if (this._parent) { |
|
|
|
this._parent.removeWidget(this); |
|
|
|
this._parent.removeWidget(this); |
|
|
@ -9616,11 +9624,7 @@ module.exports = !__webpack_require__(908)(function () { |
|
|
|
}, |
|
|
|
}, |
|
|
|
|
|
|
|
|
|
|
|
empty: function () { |
|
|
|
empty: function () { |
|
|
|
BI.each(this._children, function (i, widget) { |
|
|
|
this._empty(); |
|
|
|
widget && widget._unMount && widget._unMount(); |
|
|
|
|
|
|
|
}); |
|
|
|
|
|
|
|
this._children = {}; |
|
|
|
|
|
|
|
this.element.empty(); |
|
|
|
|
|
|
|
}, |
|
|
|
}, |
|
|
|
|
|
|
|
|
|
|
|
// 默认的reset方法就是干掉重来
|
|
|
|
// 默认的reset方法就是干掉重来
|
|
|
@ -9631,7 +9635,7 @@ module.exports = !__webpack_require__(908)(function () { |
|
|
|
} |
|
|
|
} |
|
|
|
// this._isMounted = false;
|
|
|
|
// this._isMounted = false;
|
|
|
|
// this.purgeListeners();
|
|
|
|
// this.purgeListeners();
|
|
|
|
this.empty(); |
|
|
|
this._empty(); |
|
|
|
this.element.unbind(); |
|
|
|
this.element.unbind(); |
|
|
|
this._initCurrent(); |
|
|
|
this._initCurrent(); |
|
|
|
this._init(); |
|
|
|
this._init(); |
|
|
@ -26683,6 +26687,7 @@ BI.shortcut("bi.single", BI.Single); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
var text = this._getShowText(); |
|
|
|
var text = this._getShowText(); |
|
|
|
|
|
|
|
// 只要不是undefined就可以显示text值,否则显示value
|
|
|
|
if (!BI.isUndefined(text)) { |
|
|
|
if (!BI.isUndefined(text)) { |
|
|
|
this.setText(text); |
|
|
|
this.setText(text); |
|
|
|
} else if (BI.isKey(o.value)) { |
|
|
|
} else if (BI.isKey(o.value)) { |
|
|
@ -26717,7 +26722,7 @@ BI.shortcut("bi.single", BI.Single); |
|
|
|
|
|
|
|
|
|
|
|
_doRedMark: function (keyword) { |
|
|
|
_doRedMark: function (keyword) { |
|
|
|
var o = this.options; |
|
|
|
var o = this.options; |
|
|
|
// render之后做的doredmark,这个时候虽然标红了,但是之后text mounted执行的时候并没有keyword
|
|
|
|
// render之后做的doRedMark,这个时候虽然标红了,但是之后text mounted执行的时候并没有keyword
|
|
|
|
o.keyword = keyword; |
|
|
|
o.keyword = keyword; |
|
|
|
this.text.element.__textKeywordMarked__(this._getShowText(), keyword, o.py); |
|
|
|
this.text.element.__textKeywordMarked__(this._getShowText(), keyword, o.py); |
|
|
|
}, |
|
|
|
}, |
|
|
@ -26755,8 +26760,7 @@ BI.shortcut("bi.single", BI.Single); |
|
|
|
|
|
|
|
|
|
|
|
setText: function (text) { |
|
|
|
setText: function (text) { |
|
|
|
BI.Text.superclass.setText.apply(this, arguments); |
|
|
|
BI.Text.superclass.setText.apply(this, arguments); |
|
|
|
// 为textContext赋值为undefined时在ie和edge下会真的显示undefined
|
|
|
|
this.options.text = text; |
|
|
|
this.options.text = BI.isNotNull(text) ? text : ""; |
|
|
|
|
|
|
|
this._doRedMark(this.options.keyword); |
|
|
|
this._doRedMark(this.options.keyword); |
|
|
|
} |
|
|
|
} |
|
|
|
}); |
|
|
|
}); |
|
|
@ -41094,15 +41098,17 @@ BI.AllCountPager = BI.inherit(BI.Widget, { |
|
|
|
self.prevText = _ref; |
|
|
|
self.prevText = _ref; |
|
|
|
} |
|
|
|
} |
|
|
|
}, { |
|
|
|
}, { |
|
|
|
type: "bi.label", |
|
|
|
el: { |
|
|
|
ref: function (_ref) { |
|
|
|
type: "bi.label", |
|
|
|
self.rowCount = _ref; |
|
|
|
ref: function (_ref) { |
|
|
|
|
|
|
|
self.rowCount = _ref; |
|
|
|
|
|
|
|
}, |
|
|
|
|
|
|
|
cls: "row-count", |
|
|
|
|
|
|
|
height: o.height, |
|
|
|
|
|
|
|
text: o.count, |
|
|
|
|
|
|
|
title: o.count |
|
|
|
}, |
|
|
|
}, |
|
|
|
cls: "row-count", |
|
|
|
|
|
|
|
height: o.height, |
|
|
|
|
|
|
|
hgap: 5, |
|
|
|
hgap: 5, |
|
|
|
text: o.count, |
|
|
|
|
|
|
|
title: o.count |
|
|
|
|
|
|
|
}, { |
|
|
|
}, { |
|
|
|
type: "bi.label", |
|
|
|
type: "bi.label", |
|
|
|
height: o.height, |
|
|
|
height: o.height, |
|
|
@ -57009,9 +57015,9 @@ BI.MultiSelectInsertSearcher = BI.inherit(BI.Widget, { |
|
|
|
var state = ""; |
|
|
|
var state = ""; |
|
|
|
BI.each(ob.assist, function (i, v) { |
|
|
|
BI.each(ob.assist, function (i, v) { |
|
|
|
if (i === 0) { |
|
|
|
if (i === 0) { |
|
|
|
state += "" + (o.valueFormatter(v + "") || v); |
|
|
|
state += "" + (v === null ? "" : (o.valueFormatter(v + "") || v)); |
|
|
|
} else { |
|
|
|
} else { |
|
|
|
state += "," + (o.valueFormatter(v + "") || v); |
|
|
|
state += "," + (v === null ? "" : (o.valueFormatter(v + "") || v)); |
|
|
|
} |
|
|
|
} |
|
|
|
}); |
|
|
|
}); |
|
|
|
this.editor.setState(state); |
|
|
|
this.editor.setState(state); |
|
|
@ -57025,9 +57031,9 @@ BI.MultiSelectInsertSearcher = BI.inherit(BI.Widget, { |
|
|
|
var state = ""; |
|
|
|
var state = ""; |
|
|
|
BI.each(ob.value, function (i, v) { |
|
|
|
BI.each(ob.value, function (i, v) { |
|
|
|
if (i === 0) { |
|
|
|
if (i === 0) { |
|
|
|
state += "" + (o.valueFormatter(v + "") || v); |
|
|
|
state += "" + (v === null ? "" : (o.valueFormatter(v + "") || v)); |
|
|
|
} else { |
|
|
|
} else { |
|
|
|
state += "," + (o.valueFormatter(v + "") || v); |
|
|
|
state += "," + (v === null ? "" : (o.valueFormatter(v + "") || v)); |
|
|
|
} |
|
|
|
} |
|
|
|
}); |
|
|
|
}); |
|
|
|
this.editor.setState(state); |
|
|
|
this.editor.setState(state); |
|
|
@ -57069,6 +57075,7 @@ BI.MultiSelectInsertSearcher.EVENT_FOCUS = "EVENT_FOCUS"; |
|
|
|
BI.MultiSelectInsertSearcher.EVENT_BLUR = "EVENT_BLUR"; |
|
|
|
BI.MultiSelectInsertSearcher.EVENT_BLUR = "EVENT_BLUR"; |
|
|
|
BI.shortcut("bi.multi_select_insert_searcher", BI.MultiSelectInsertSearcher); |
|
|
|
BI.shortcut("bi.multi_select_insert_searcher", BI.MultiSelectInsertSearcher); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/***/ }), |
|
|
|
/***/ }), |
|
|
|
/* 611 */ |
|
|
|
/* 611 */ |
|
|
|
/***/ (function(module, exports) { |
|
|
|
/***/ (function(module, exports) { |
|
|
@ -57208,9 +57215,9 @@ BI.MultiSelectSearcher = BI.inherit(BI.Widget, { |
|
|
|
var state = ""; |
|
|
|
var state = ""; |
|
|
|
BI.each(ob.assist, function (i, v) { |
|
|
|
BI.each(ob.assist, function (i, v) { |
|
|
|
if (i === 0) { |
|
|
|
if (i === 0) { |
|
|
|
state += "" + (o.valueFormatter(v + "") || v); |
|
|
|
state += "" + (v === null ? "" : (o.valueFormatter(v + "") || v)); |
|
|
|
} else { |
|
|
|
} else { |
|
|
|
state += "," + (o.valueFormatter(v + "") || v); |
|
|
|
state += "," + (v === null ? "" : (o.valueFormatter(v + "") || v)); |
|
|
|
} |
|
|
|
} |
|
|
|
}); |
|
|
|
}); |
|
|
|
this.editor.setState(state); |
|
|
|
this.editor.setState(state); |
|
|
@ -57224,9 +57231,9 @@ BI.MultiSelectSearcher = BI.inherit(BI.Widget, { |
|
|
|
var state = ""; |
|
|
|
var state = ""; |
|
|
|
BI.each(ob.value, function (i, v) { |
|
|
|
BI.each(ob.value, function (i, v) { |
|
|
|
if (i === 0) { |
|
|
|
if (i === 0) { |
|
|
|
state += "" + (o.valueFormatter(v + "") || v); |
|
|
|
state += "" + (v === null ? "" : (o.valueFormatter(v + "") || v)); |
|
|
|
} else { |
|
|
|
} else { |
|
|
|
state += "," + (o.valueFormatter(v + "") || v); |
|
|
|
state += "," + (v === null ? "" : (o.valueFormatter(v + "") || v)); |
|
|
|
} |
|
|
|
} |
|
|
|
}); |
|
|
|
}); |
|
|
|
this.editor.setState(state); |
|
|
|
this.editor.setState(state); |
|
|
@ -57236,7 +57243,7 @@ BI.MultiSelectSearcher = BI.inherit(BI.Widget, { |
|
|
|
} |
|
|
|
} |
|
|
|
}, |
|
|
|
}, |
|
|
|
|
|
|
|
|
|
|
|
getState: function() { |
|
|
|
getState: function () { |
|
|
|
return this.editor.getState(); |
|
|
|
return this.editor.getState(); |
|
|
|
}, |
|
|
|
}, |
|
|
|
|
|
|
|
|
|
|
@ -57268,6 +57275,7 @@ BI.MultiSelectSearcher.EVENT_FOCUS = "EVENT_FOCUS"; |
|
|
|
BI.MultiSelectSearcher.EVENT_BLUR = "EVENT_BLUR"; |
|
|
|
BI.MultiSelectSearcher.EVENT_BLUR = "EVENT_BLUR"; |
|
|
|
BI.shortcut("bi.multi_select_searcher", BI.MultiSelectSearcher); |
|
|
|
BI.shortcut("bi.multi_select_searcher", BI.MultiSelectSearcher); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/***/ }), |
|
|
|
/***/ }), |
|
|
|
/* 612 */ |
|
|
|
/* 612 */ |
|
|
|
/***/ (function(module, exports) { |
|
|
|
/***/ (function(module, exports) { |
|
|
@ -60452,7 +60460,7 @@ BI.MultiListTreeSearcher = BI.inherit(BI.Widget, { |
|
|
|
var text = ""; |
|
|
|
var text = ""; |
|
|
|
BI.each(ob.value, function (idx, path) { |
|
|
|
BI.each(ob.value, function (idx, path) { |
|
|
|
var childValue = BI.last(path); |
|
|
|
var childValue = BI.last(path); |
|
|
|
text += (o.valueFormatter(childValue + "") || childValue) + "; "; |
|
|
|
text += (path === "null" ? "" : (o.valueFormatter(childValue + "") || childValue) + "; "); |
|
|
|
count++; |
|
|
|
count++; |
|
|
|
}); |
|
|
|
}); |
|
|
|
|
|
|
|
|
|
|
@ -60464,7 +60472,7 @@ BI.MultiListTreeSearcher = BI.inherit(BI.Widget, { |
|
|
|
} |
|
|
|
} |
|
|
|
}, |
|
|
|
}, |
|
|
|
|
|
|
|
|
|
|
|
getState: function() { |
|
|
|
getState: function () { |
|
|
|
return this.editor.getState(); |
|
|
|
return this.editor.getState(); |
|
|
|
}, |
|
|
|
}, |
|
|
|
|
|
|
|
|
|
|
@ -60493,6 +60501,7 @@ BI.MultiListTreeSearcher.EVENT_STOP = "EVENT_STOP"; |
|
|
|
BI.MultiListTreeSearcher.EVENT_PAUSE = "EVENT_PAUSE"; |
|
|
|
BI.MultiListTreeSearcher.EVENT_PAUSE = "EVENT_PAUSE"; |
|
|
|
BI.shortcut("bi.multi_list_tree_searcher", BI.MultiListTreeSearcher); |
|
|
|
BI.shortcut("bi.multi_list_tree_searcher", BI.MultiListTreeSearcher); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/***/ }), |
|
|
|
/***/ }), |
|
|
|
/* 627 */ |
|
|
|
/* 627 */ |
|
|
|
/***/ (function(module, exports) { |
|
|
|
/***/ (function(module, exports) { |
|
|
@ -60515,7 +60524,7 @@ BI.MultiTreeSearcher = BI.inherit(BI.Widget, { |
|
|
|
popup: {}, |
|
|
|
popup: {}, |
|
|
|
|
|
|
|
|
|
|
|
adapter: null, |
|
|
|
adapter: null, |
|
|
|
masker: {}, |
|
|
|
masker: {} |
|
|
|
}); |
|
|
|
}); |
|
|
|
}, |
|
|
|
}, |
|
|
|
|
|
|
|
|
|
|
@ -60635,7 +60644,7 @@ BI.MultiTreeSearcher = BI.inherit(BI.Widget, { |
|
|
|
var names = BI.Func.getSortedResult(BI.keys(value)); |
|
|
|
var names = BI.Func.getSortedResult(BI.keys(value)); |
|
|
|
BI.each(names, function (idx, name) { |
|
|
|
BI.each(names, function (idx, name) { |
|
|
|
var childNodes = getChildrenNode(value[name]); |
|
|
|
var childNodes = getChildrenNode(value[name]); |
|
|
|
text += (o.valueFormatter(name + "") || name) + (childNodes === "" ? "" : (":" + childNodes)) + "; "; |
|
|
|
text += (name === "null" ? "" : (o.valueFormatter(name + "") || name)) + (childNodes === "" ? "" : (":" + childNodes)) + "; "; |
|
|
|
if (childNodes === "") { |
|
|
|
if (childNodes === "") { |
|
|
|
count++; |
|
|
|
count++; |
|
|
|
} |
|
|
|
} |
|
|
@ -60655,7 +60664,7 @@ BI.MultiTreeSearcher = BI.inherit(BI.Widget, { |
|
|
|
BI.each(names, function (idx, name) { |
|
|
|
BI.each(names, function (idx, name) { |
|
|
|
index++; |
|
|
|
index++; |
|
|
|
var childNodes = getChildrenNode(ob[name]); |
|
|
|
var childNodes = getChildrenNode(ob[name]); |
|
|
|
text += (o.valueFormatter(name + "") || name) + (childNodes === "" ? "" : (":" + childNodes)) + (index === size ? "" : ","); |
|
|
|
text += (name === "null" ? "(null)" : (o.valueFormatter(name + "") || name)) + (childNodes === "" ? "" : (":" + childNodes)) + (index === size ? "" : ","); |
|
|
|
if (childNodes === "") { |
|
|
|
if (childNodes === "") { |
|
|
|
count++; |
|
|
|
count++; |
|
|
|
} |
|
|
|
} |
|
|
@ -60664,7 +60673,7 @@ BI.MultiTreeSearcher = BI.inherit(BI.Widget, { |
|
|
|
} |
|
|
|
} |
|
|
|
}, |
|
|
|
}, |
|
|
|
|
|
|
|
|
|
|
|
getState: function() { |
|
|
|
getState: function () { |
|
|
|
return this.editor.getState(); |
|
|
|
return this.editor.getState(); |
|
|
|
}, |
|
|
|
}, |
|
|
|
|
|
|
|
|
|
|
@ -60694,6 +60703,7 @@ BI.MultiTreeSearcher.EVENT_STOP = "EVENT_STOP"; |
|
|
|
BI.MultiTreeSearcher.EVENT_PAUSE = "EVENT_PAUSE"; |
|
|
|
BI.MultiTreeSearcher.EVENT_PAUSE = "EVENT_PAUSE"; |
|
|
|
BI.shortcut("bi.multi_tree_searcher", BI.MultiTreeSearcher); |
|
|
|
BI.shortcut("bi.multi_tree_searcher", BI.MultiTreeSearcher); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/***/ }), |
|
|
|
/***/ }), |
|
|
|
/* 628 */ |
|
|
|
/* 628 */ |
|
|
|
/***/ (function(module, exports) { |
|
|
|
/***/ (function(module, exports) { |
|
|
@ -89277,17 +89287,20 @@ if (BI.jQuery) { |
|
|
|
* 3、text和py各自取tidx/pidx + keyword.length索引开始的子串作为新的text和py, 重复1, 直到text和py有一个为"" |
|
|
|
* 3、text和py各自取tidx/pidx + keyword.length索引开始的子串作为新的text和py, 重复1, 直到text和py有一个为"" |
|
|
|
*/ |
|
|
|
*/ |
|
|
|
__textKeywordMarked__: function (text, keyword, py) { |
|
|
|
__textKeywordMarked__: function (text, keyword, py) { |
|
|
|
|
|
|
|
if (BI.isNull(text)) { |
|
|
|
|
|
|
|
text = ""; |
|
|
|
|
|
|
|
} |
|
|
|
if (!BI.isKey(keyword) || (text + "").length > 100) { |
|
|
|
if (!BI.isKey(keyword) || (text + "").length > 100) { |
|
|
|
if (BI.isIE9Below()) { |
|
|
|
if (BI.isIE9Below()) { |
|
|
|
return this.html(BI.htmlEncode(text)); |
|
|
|
return this.html(BI.htmlEncode(text)); |
|
|
|
} |
|
|
|
} |
|
|
|
// textContent性能更好,并且原生防xss
|
|
|
|
// textContent性能更好,并且原生防xss
|
|
|
|
this[0].textContent = text; |
|
|
|
this[0].textContent = text; |
|
|
|
return this; |
|
|
|
return this; |
|
|
|
} |
|
|
|
} |
|
|
|
keyword = keyword + ""; |
|
|
|
keyword = keyword + ""; |
|
|
|
keyword = BI.toUpperCase(keyword); |
|
|
|
keyword = BI.toUpperCase(keyword); |
|
|
|
var textLeft = (text || "") + ""; |
|
|
|
var textLeft = text + ""; |
|
|
|
py = (py || BI.makeFirstPY(text, { |
|
|
|
py = (py || BI.makeFirstPY(text, { |
|
|
|
splitChar: "\u200b" |
|
|
|
splitChar: "\u200b" |
|
|
|
})) + ""; |
|
|
|
})) + ""; |
|
|
@ -91163,7 +91176,7 @@ BI.TreeView = BI.inherit(BI.Pane, { |
|
|
|
expandSpeed: "", |
|
|
|
expandSpeed: "", |
|
|
|
nameIsHTML: true, // 节点可以用html标签代替
|
|
|
|
nameIsHTML: true, // 节点可以用html标签代替
|
|
|
|
dblClickExpand: false, |
|
|
|
dblClickExpand: false, |
|
|
|
showLine: o.showLine, |
|
|
|
showLine: o.showLine |
|
|
|
}, |
|
|
|
}, |
|
|
|
callback: { |
|
|
|
callback: { |
|
|
|
beforeExpand: beforeExpand, |
|
|
|
beforeExpand: beforeExpand, |
|
|
@ -91306,7 +91319,7 @@ BI.TreeView = BI.inherit(BI.Pane, { |
|
|
|
|
|
|
|
|
|
|
|
_getNodeValue: function (node) { |
|
|
|
_getNodeValue: function (node) { |
|
|
|
// 去除标红
|
|
|
|
// 去除标红
|
|
|
|
return node.value == null ? BI.replaceAll(node.text.replace(/<[^>]+>/g, ""), " ", " ") : node.value; |
|
|
|
return BI.isUndefined(node.value) ? BI.replaceAll(node.text.replace(/<[^>]+>/g, ""), " ", " ") : node.value; |
|
|
|
}, |
|
|
|
}, |
|
|
|
|
|
|
|
|
|
|
|
// 获取半选框值
|
|
|
|
// 获取半选框值
|
|
|
@ -91402,14 +91415,22 @@ BI.TreeView = BI.inherit(BI.Pane, { |
|
|
|
var self = this, o = this.options; |
|
|
|
var self = this, o = this.options; |
|
|
|
var ns = BI.Tree.arrayFormat(nodes); |
|
|
|
var ns = BI.Tree.arrayFormat(nodes); |
|
|
|
BI.each(ns, function (i, n) { |
|
|
|
BI.each(ns, function (i, n) { |
|
|
|
n.title = n.title || n.text || n.value; |
|
|
|
|
|
|
|
n.isParent = n.isParent || n.parent; |
|
|
|
n.isParent = n.isParent || n.parent; |
|
|
|
n.value = BI.isUndefined(n.value) ? n.text : n.value; |
|
|
|
n.value = BI.isUndefined(n.value) ? n.text : n.value; |
|
|
|
|
|
|
|
n.text = BI.isUndefined(n.text) ? n.value : n.text; |
|
|
|
|
|
|
|
if (n.text === null) { |
|
|
|
|
|
|
|
n.text = "(null)"; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
if (BI.isNull(n.title)) { |
|
|
|
|
|
|
|
n.title = n.text; |
|
|
|
|
|
|
|
} |
|
|
|
// 处理标红
|
|
|
|
// 处理标红
|
|
|
|
if (BI.isKey(o.paras.keyword)) { |
|
|
|
if (BI.isNotNull(n.text)) { |
|
|
|
n.text = BI.$("<div>").__textKeywordMarked__(BI.Text.formatText(n.text + ""), o.paras.keyword, n.py).html(); |
|
|
|
if (BI.isKey(o.paras.keyword)) { |
|
|
|
} else { |
|
|
|
n.text = BI.$("<div>").__textKeywordMarked__(BI.Text.formatText(n.text + ""), o.paras.keyword, n.py).html(); |
|
|
|
n.text = BI.htmlEncode(BI.Text.formatText(n.text + "")); |
|
|
|
} else { |
|
|
|
|
|
|
|
n.text = BI.htmlEncode(BI.Text.formatText(n.text + "")); |
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
}); |
|
|
|
}); |
|
|
|
return nodes; |
|
|
|
return nodes; |
|
|
|