bkui-vue 2.1.0-dev-beta.10 → 2.1.0-dev-beta.11
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.cjs.js +62 -62
- package/dist/index.esm.js +13182 -13087
- package/dist/index.umd.js +59 -59
- package/dist/style.css +1 -1
- package/dist/style.variable.css +1 -1
- package/lib/cascader/index.js +11 -5
- package/lib/index.js +1 -1
- package/lib/input/index.d.ts +36 -15
- package/lib/input/index.js +80 -95
- package/lib/input/input.d.ts +34 -10
- package/lib/tree/constant.d.ts +6 -0
- package/lib/tree/index.d.ts +39 -9
- package/lib/tree/index.js +560 -484
- package/lib/tree/props.d.ts +57 -1
- package/lib/tree/tree.css +31 -0
- package/lib/tree/tree.d.ts +22 -7
- package/lib/tree/tree.less +38 -6
- package/lib/tree/tree.variable.css +31 -0
- package/lib/tree/use-intersection-observer.d.ts +1 -1
- package/lib/tree/use-node-action.d.ts +2 -2
- package/lib/tree/use-node-async.d.ts +13 -3
- package/lib/tree/use-node-attribute.d.ts +68 -40
- package/lib/tree/use-node-drag.d.ts +16 -3
- package/lib/tree/use-tree-init.d.ts +14 -1
- package/lib/tree/util.d.ts +30 -1
- package/package.json +1 -1
package/lib/tree/index.js
CHANGED
|
@@ -17461,7 +17461,7 @@ function toPropertyKey(t) {
|
|
|
17461
17461
|
|
|
17462
17462
|
;// CONCATENATED MODULE: ../../node_modules/@babel/runtime/helpers/esm/defineProperty.js
|
|
17463
17463
|
|
|
17464
|
-
function
|
|
17464
|
+
function defineProperty_defineProperty(e, r, t) {
|
|
17465
17465
|
return (r = toPropertyKey(r)) in e ? Object.defineProperty(e, r, {
|
|
17466
17466
|
value: t,
|
|
17467
17467
|
enumerable: !0,
|
|
@@ -17500,9 +17500,12 @@ var _TreeEmitEventsType;
|
|
|
17500
17500
|
*/
|
|
17501
17501
|
var EVENTS;
|
|
17502
17502
|
(function (EVENTS) {
|
|
17503
|
+
EVENTS["NODE_ASYNC_LOAD"] = "nodeAsyncLoad";
|
|
17504
|
+
EVENTS["NODE_ASYNC_LOAD_ERROR"] = "nodeAsyncLoadError";
|
|
17503
17505
|
EVENTS["NODE_CHECKED"] = "nodeChecked";
|
|
17504
17506
|
EVENTS["NODE_CLICK"] = "nodeClick";
|
|
17505
17507
|
EVENTS["NODE_COLLAPSE"] = "nodeCollapse";
|
|
17508
|
+
EVENTS["NODE_DATA_CHANGE"] = "nodeDataChange";
|
|
17506
17509
|
EVENTS["NODE_DRAG_LEAVE"] = "nodeDragLeave";
|
|
17507
17510
|
EVENTS["NODE_DRAG_OVER"] = "nodeDragOver";
|
|
17508
17511
|
EVENTS["NODE_DRAG_SORT"] = "nodeDragSort";
|
|
@@ -17515,7 +17518,7 @@ var EVENTS;
|
|
|
17515
17518
|
var EMPTY = function EMPTY() {
|
|
17516
17519
|
return true;
|
|
17517
17520
|
};
|
|
17518
|
-
var TreeEmitEventsType = (_TreeEmitEventsType = {},
|
|
17521
|
+
var TreeEmitEventsType = (_TreeEmitEventsType = {}, defineProperty_defineProperty(defineProperty_defineProperty(defineProperty_defineProperty(defineProperty_defineProperty(defineProperty_defineProperty(defineProperty_defineProperty(defineProperty_defineProperty(defineProperty_defineProperty(defineProperty_defineProperty(defineProperty_defineProperty(_TreeEmitEventsType, EVENTS.NODE_ASYNC_LOAD, EMPTY), EVENTS.NODE_ASYNC_LOAD_ERROR, EMPTY), EVENTS.NODE_CLICK, EMPTY), EVENTS.NODE_COLLAPSE, EMPTY), EVENTS.NODE_EXPAND, EMPTY), EVENTS.NODE_CHECKED, EMPTY), EVENTS.NODE_DATA_CHANGE, EMPTY), EVENTS.NODE_DRAG_START, EMPTY), EVENTS.NODE_DRAG_OVER, EMPTY), EVENTS.NODE_DRAG_LEAVE, EMPTY), defineProperty_defineProperty(defineProperty_defineProperty(defineProperty_defineProperty(defineProperty_defineProperty(_TreeEmitEventsType, EVENTS.NODE_DRAG_SORT, EMPTY), EVENTS.NODE_DROP, EMPTY), EVENTS.NODE_ENTER_VIEW, EMPTY), EVENTS.NODE_SELECTED, EMPTY));
|
|
17519
17522
|
/**
|
|
17520
17523
|
* 节点扩展属性
|
|
17521
17524
|
*/
|
|
@@ -17542,7 +17545,7 @@ var NODE_ATTRIBUTES;
|
|
|
17542
17545
|
NODE_ATTRIBUTES["TREE_NODE_ATTR"] = "__attr__";
|
|
17543
17546
|
NODE_ATTRIBUTES["UUID"] = "__uuid";
|
|
17544
17547
|
})(NODE_ATTRIBUTES || (NODE_ATTRIBUTES = {}));
|
|
17545
|
-
var NODE_SOURCE_ATTRS =
|
|
17548
|
+
var NODE_SOURCE_ATTRS = defineProperty_defineProperty(defineProperty_defineProperty(defineProperty_defineProperty(defineProperty_defineProperty(defineProperty_defineProperty(defineProperty_defineProperty(defineProperty_defineProperty(defineProperty_defineProperty({}, NODE_ATTRIBUTES.IS_OPEN, 'isOpen'), NODE_ATTRIBUTES.IS_SELECTED, 'selected'), NODE_ATTRIBUTES.IS_MATCH, 'isMatch'), NODE_ATTRIBUTES.HAS_CHILD, 'hasChild'), NODE_ATTRIBUTES.IS_CHECKED, 'checked'), NODE_ATTRIBUTES.IS_ASYNC, 'async'), NODE_ATTRIBUTES.IS_LOADING, 'loading'), NODE_ATTRIBUTES.IS_ROOT, 'isRoot');
|
|
17546
17549
|
/**
|
|
17547
17550
|
* 节点点击可执行行为配置
|
|
17548
17551
|
*/
|
|
@@ -17623,6 +17626,10 @@ var treeProps = {
|
|
|
17623
17626
|
* 默认 true
|
|
17624
17627
|
*/
|
|
17625
17628
|
prefixIcon: shared_namespaceObject.PropTypes.oneOfType([shared_namespaceObject.PropTypes.func.def(function () {}), shared_namespaceObject.PropTypes.bool.def(false)]).def(true),
|
|
17629
|
+
/**
|
|
17630
|
+
* 当树数据需要由外部接管更新时的统一回调
|
|
17631
|
+
*/
|
|
17632
|
+
onDataChange: Function,
|
|
17626
17633
|
/**
|
|
17627
17634
|
* 异步加载节点数据配置
|
|
17628
17635
|
* @param callback 请求数据回调函数,函数返回 Promise
|
|
@@ -17777,6 +17784,10 @@ var treeProps = {
|
|
|
17777
17784
|
* 在显示复选框的情况下,是否严格的遵循父子互相关联的做法
|
|
17778
17785
|
*/
|
|
17779
17786
|
checkStrictly: shared_namespaceObject.PropTypes.bool.def(true),
|
|
17787
|
+
/**
|
|
17788
|
+
* 是否开启父子勾选级联;未传时沿用 checkStrictly 历史语义
|
|
17789
|
+
*/
|
|
17790
|
+
cascade: shared_namespaceObject.PropTypes.bool.def(undefined),
|
|
17780
17791
|
/**
|
|
17781
17792
|
* 是否开启监听Tree节点进入Tree容器可视区域
|
|
17782
17793
|
*/
|
|
@@ -18026,16 +18037,10 @@ const icon_namespaceObject = icon_x({ ["DownShape"]: () => __WEBPACK_EXTERNAL_MO
|
|
|
18026
18037
|
var getSchemaVal = function getSchemaVal(node) {
|
|
18027
18038
|
return flatData.schema.get(node);
|
|
18028
18039
|
};
|
|
18029
|
-
|
|
18030
|
-
* 获取节点属性
|
|
18031
|
-
* @param node 当前节点
|
|
18032
|
-
* @param attr 节点属性
|
|
18033
|
-
* @returns
|
|
18034
|
-
*/
|
|
18035
|
-
var getNodeAttr = function getNodeAttr(node, attr) {
|
|
18040
|
+
function getNodeAttr(node, attr) {
|
|
18036
18041
|
var _getSchemaVal;
|
|
18037
|
-
return (_getSchemaVal = getSchemaVal(node)) === null || _getSchemaVal === void 0 ? void 0 : _getSchemaVal[attr];
|
|
18038
|
-
}
|
|
18042
|
+
return node ? (_getSchemaVal = getSchemaVal(node)) === null || _getSchemaVal === void 0 ? void 0 : _getSchemaVal[attr] : undefined;
|
|
18043
|
+
}
|
|
18039
18044
|
/**
|
|
18040
18045
|
* 设置节点属性
|
|
18041
18046
|
* @param node 指定节点
|
|
@@ -18048,11 +18053,12 @@ const icon_namespaceObject = icon_x({ ["DownShape"]: () => __WEBPACK_EXTERNAL_MO
|
|
|
18048
18053
|
console.warn('node is not in schema, please check', id, node);
|
|
18049
18054
|
return;
|
|
18050
18055
|
}
|
|
18051
|
-
flatData.schema.set(node, Object.assign({}, getSchemaVal(node),
|
|
18056
|
+
flatData.schema.set(node, Object.assign({}, getSchemaVal(node), defineProperty_defineProperty({}, attr, val)));
|
|
18052
18057
|
};
|
|
18053
18058
|
var getNodeById = function getNodeById(id) {
|
|
18054
|
-
|
|
18055
|
-
|
|
18059
|
+
var _flatData$nodeMap$get, _flatData$nodeMap;
|
|
18060
|
+
return (_flatData$nodeMap$get = (_flatData$nodeMap = flatData.nodeMap) === null || _flatData$nodeMap === void 0 ? void 0 : _flatData$nodeMap.get("".concat(id))) !== null && _flatData$nodeMap$get !== void 0 ? _flatData$nodeMap$get : flatData.data.find(function (item) {
|
|
18061
|
+
return "".concat(getNodeId(item)) === "".concat(id);
|
|
18056
18062
|
});
|
|
18057
18063
|
};
|
|
18058
18064
|
var setNodeAttrById = function setNodeAttrById(id, attr, val) {
|
|
@@ -18071,33 +18077,31 @@ const icon_namespaceObject = icon_x({ ["DownShape"]: () => __WEBPACK_EXTERNAL_MO
|
|
|
18071
18077
|
return getNodeAttr(node, NODE_ATTRIBUTES.UUID);
|
|
18072
18078
|
};
|
|
18073
18079
|
var isNodeOpened = function isNodeOpened(node) {
|
|
18074
|
-
return getNodeAttr(node, NODE_ATTRIBUTES.IS_OPEN);
|
|
18080
|
+
return !!getNodeAttr(node, NODE_ATTRIBUTES.IS_OPEN);
|
|
18075
18081
|
};
|
|
18076
18082
|
var hasChildNode = function hasChildNode(node) {
|
|
18077
|
-
return getNodeAttr(node, NODE_ATTRIBUTES.HAS_CHILD);
|
|
18083
|
+
return !!getNodeAttr(node, NODE_ATTRIBUTES.HAS_CHILD);
|
|
18078
18084
|
};
|
|
18079
18085
|
var isNodeMatched = function isNodeMatched(node) {
|
|
18080
|
-
return getNodeAttr(node, NODE_ATTRIBUTES.IS_MATCH);
|
|
18086
|
+
return !!getNodeAttr(node, NODE_ATTRIBUTES.IS_MATCH);
|
|
18081
18087
|
};
|
|
18082
18088
|
var isNodeChecked = function isNodeChecked(node) {
|
|
18083
|
-
return getNodeAttr(node, NODE_ATTRIBUTES.IS_CHECKED);
|
|
18089
|
+
return !!getNodeAttr(node, NODE_ATTRIBUTES.IS_CHECKED);
|
|
18084
18090
|
};
|
|
18085
18091
|
var getNodeParentId = function getNodeParentId(node) {
|
|
18086
18092
|
return getNodeAttr(getNodeAttr(node, NODE_ATTRIBUTES.PARENT), NODE_ATTRIBUTES.UUID);
|
|
18087
18093
|
};
|
|
18088
18094
|
var isNodeLoading = function isNodeLoading(node) {
|
|
18089
|
-
return getNodeAttr(node, NODE_ATTRIBUTES.IS_LOADING);
|
|
18095
|
+
return !!getNodeAttr(node, NODE_ATTRIBUTES.IS_LOADING);
|
|
18090
18096
|
};
|
|
18091
18097
|
var getParentNode = function getParentNode(node) {
|
|
18092
18098
|
return getNodeAttr(node, NODE_ATTRIBUTES.PARENT);
|
|
18093
18099
|
};
|
|
18094
18100
|
var isMatchedNode = function isMatchedNode(node) {
|
|
18095
|
-
return getNodeAttr(node, NODE_ATTRIBUTES.IS_MATCH);
|
|
18101
|
+
return !!getNodeAttr(node, NODE_ATTRIBUTES.IS_MATCH);
|
|
18096
18102
|
};
|
|
18097
18103
|
var getNodeAttrById = function getNodeAttrById(id, attr) {
|
|
18098
|
-
var target =
|
|
18099
|
-
return getNodeId(item) === id;
|
|
18100
|
-
});
|
|
18104
|
+
var target = getNodeById(id);
|
|
18101
18105
|
return getNodeAttr(target, attr);
|
|
18102
18106
|
};
|
|
18103
18107
|
/**
|
|
@@ -18118,20 +18122,16 @@ const icon_namespaceObject = icon_x({ ["DownShape"]: () => __WEBPACK_EXTERNAL_MO
|
|
|
18118
18122
|
};
|
|
18119
18123
|
var isRootNode = function isRootNode(node) {
|
|
18120
18124
|
if (typeof node === 'string') {
|
|
18121
|
-
return getNodeAttrById(node, NODE_ATTRIBUTES.IS_ROOT);
|
|
18125
|
+
return !!getNodeAttrById(node, NODE_ATTRIBUTES.IS_ROOT);
|
|
18122
18126
|
}
|
|
18123
|
-
return getNodeAttr(node, NODE_ATTRIBUTES.IS_ROOT);
|
|
18127
|
+
return !!getNodeAttr(node, NODE_ATTRIBUTES.IS_ROOT);
|
|
18124
18128
|
};
|
|
18125
18129
|
var getNodeParentIdById = function getNodeParentIdById(id) {
|
|
18126
|
-
var target =
|
|
18127
|
-
return getNodeId(item) === id;
|
|
18128
|
-
});
|
|
18130
|
+
var target = getNodeById(id);
|
|
18129
18131
|
return getNodeParentId(target);
|
|
18130
18132
|
};
|
|
18131
18133
|
var getNodePathById = function getNodePathById(id) {
|
|
18132
|
-
var target =
|
|
18133
|
-
return getNodeId(item) === id;
|
|
18134
|
-
});
|
|
18134
|
+
var target = getNodeById(id);
|
|
18135
18135
|
return getNodePath(target);
|
|
18136
18136
|
};
|
|
18137
18137
|
var setTreeNodeLoading = function setTreeNodeLoading(node, value) {
|
|
@@ -18179,19 +18179,18 @@ const icon_namespaceObject = icon_x({ ["DownShape"]: () => __WEBPACK_EXTERNAL_MO
|
|
|
18179
18179
|
return Array.isArray(pre) ? pre[index] : pre[props.children][index];
|
|
18180
18180
|
}, props.data);
|
|
18181
18181
|
if (uid) {
|
|
18182
|
-
Object.assign(target,
|
|
18182
|
+
Object.assign(target, defineProperty_defineProperty({}, NODE_ATTRIBUTES.UUID, uid));
|
|
18183
18183
|
}
|
|
18184
18184
|
return target;
|
|
18185
18185
|
};
|
|
18186
18186
|
var getChildNodes = function getChildNodes(node) {
|
|
18187
|
-
|
|
18187
|
+
var _flatData$childMap$ge, _flatData$childMap;
|
|
18188
|
+
return (_flatData$childMap$ge = (_flatData$childMap = flatData.childMap) === null || _flatData$childMap === void 0 ? void 0 : _flatData$childMap.get(node)) !== null && _flatData$childMap$ge !== void 0 ? _flatData$childMap$ge : flatData.data.filter(function (item) {
|
|
18188
18189
|
return getParentNode(item) === node;
|
|
18189
18190
|
});
|
|
18190
18191
|
};
|
|
18191
18192
|
var getSourceNodeByUID = function getSourceNodeByUID(uid) {
|
|
18192
|
-
return
|
|
18193
|
-
return getNodeId(item) === uid;
|
|
18194
|
-
});
|
|
18193
|
+
return getNodeById(uid);
|
|
18195
18194
|
};
|
|
18196
18195
|
var getParentNodeData = function getParentNodeData(node) {
|
|
18197
18196
|
var target = node;
|
|
@@ -18199,7 +18198,7 @@ const icon_namespaceObject = icon_x({ ["DownShape"]: () => __WEBPACK_EXTERNAL_MO
|
|
|
18199
18198
|
target = getSourceNodeByUID(target);
|
|
18200
18199
|
}
|
|
18201
18200
|
if (isRootNode(target)) {
|
|
18202
|
-
return
|
|
18201
|
+
return defineProperty_defineProperty({}, props.children, props.data);
|
|
18203
18202
|
}
|
|
18204
18203
|
return getParentNode(target);
|
|
18205
18204
|
};
|
|
@@ -18209,10 +18208,10 @@ const icon_namespaceObject = icon_x({ ["DownShape"]: () => __WEBPACK_EXTERNAL_MO
|
|
|
18209
18208
|
* @returns
|
|
18210
18209
|
*/
|
|
18211
18210
|
var resolveScopedSlotParam = function resolveScopedSlotParam(item) {
|
|
18212
|
-
return
|
|
18211
|
+
return defineProperty_defineProperty(defineProperty_defineProperty(defineProperty_defineProperty(defineProperty_defineProperty(defineProperty_defineProperty(defineProperty_defineProperty(defineProperty_defineProperty(defineProperty_defineProperty(defineProperty_defineProperty(defineProperty_defineProperty({}, NODE_SOURCE_ATTRS[NODE_ATTRIBUTES.IS_LOADING], getNodeAttr(item, NODE_ATTRIBUTES.IS_LOADING)), NODE_SOURCE_ATTRS[NODE_ATTRIBUTES.HAS_CHILD], hasChildNode(item)), NODE_SOURCE_ATTRS[NODE_ATTRIBUTES.IS_MATCH], isNodeMatched(item)), NODE_SOURCE_ATTRS[NODE_ATTRIBUTES.IS_CHECKED], isNodeChecked(item)), NODE_SOURCE_ATTRS[NODE_ATTRIBUTES.IS_OPEN], isNodeOpened(item)), NODE_SOURCE_ATTRS[NODE_ATTRIBUTES.IS_ROOT], isRootNode(item)), "fullPath", getNodeAttr(item, NODE_ATTRIBUTES.PATH)), "uuid", getNodeId(item)), "parent", getNodeAttr(item, NODE_ATTRIBUTES.PARENT)), "parentId", getNodeId(getNodeAttr(item, NODE_ATTRIBUTES.PARENT)));
|
|
18213
18212
|
};
|
|
18214
18213
|
var extendNodeAttr = function extendNodeAttr(item) {
|
|
18215
|
-
return Object.assign({}, item,
|
|
18214
|
+
return Object.assign({}, item, defineProperty_defineProperty({}, NODE_ATTRIBUTES.TREE_NODE_ATTR, resolveScopedSlotParam(item)));
|
|
18216
18215
|
};
|
|
18217
18216
|
var extendNodeScopedData = function extendNodeScopedData(item) {
|
|
18218
18217
|
return {
|
|
@@ -18226,7 +18225,6 @@ const icon_namespaceObject = icon_x({ ["DownShape"]: () => __WEBPACK_EXTERNAL_MO
|
|
|
18226
18225
|
* @returns
|
|
18227
18226
|
*/
|
|
18228
18227
|
var getIntersectionResponse = function getIntersectionResponse(target) {
|
|
18229
|
-
var _parent$props$childre;
|
|
18230
18228
|
if (!target) {
|
|
18231
18229
|
return null;
|
|
18232
18230
|
}
|
|
@@ -18237,7 +18235,8 @@ const icon_namespaceObject = icon_x({ ["DownShape"]: () => __WEBPACK_EXTERNAL_MO
|
|
|
18237
18235
|
var level = getNodeAttr(node, NODE_ATTRIBUTES.DEPTH);
|
|
18238
18236
|
var isRoot = getNodeAttr(node, NODE_ATTRIBUTES.IS_ROOT);
|
|
18239
18237
|
var parent = getNodeAttr(node, NODE_ATTRIBUTES.PARENT);
|
|
18240
|
-
var
|
|
18238
|
+
var children = parent === null || parent === void 0 ? void 0 : parent[props.children];
|
|
18239
|
+
var index = isRoot ? getNodeAttr(node, NODE_ATTRIBUTES.INDEX) : children === null || children === void 0 ? void 0 : children.findIndex(function (child) {
|
|
18241
18240
|
return child === node;
|
|
18242
18241
|
});
|
|
18243
18242
|
return {
|
|
@@ -18250,7 +18249,8 @@ const icon_namespaceObject = icon_x({ ["DownShape"]: () => __WEBPACK_EXTERNAL_MO
|
|
|
18250
18249
|
};
|
|
18251
18250
|
};
|
|
18252
18251
|
var getRootNodeList = function getRootNodeList() {
|
|
18253
|
-
|
|
18252
|
+
var _flatData$rootNodes;
|
|
18253
|
+
return (_flatData$rootNodes = flatData.rootNodes) !== null && _flatData$rootNodes !== void 0 ? _flatData$rootNodes : flatData.data.filter(function (item) {
|
|
18254
18254
|
return isRootNode(item);
|
|
18255
18255
|
});
|
|
18256
18256
|
};
|
|
@@ -18320,9 +18320,13 @@ function _toConsumableArray(r) {
|
|
|
18320
18320
|
|
|
18321
18321
|
|
|
18322
18322
|
|
|
18323
|
+
|
|
18323
18324
|
var _this = undefined;
|
|
18325
|
+
function _createForOfIteratorHelper(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = util_unsupportedIterableToArray(r)) || e && r && "number" == typeof r.length) { t && (r = t); var _n = 0, F = function F() {}; return { s: F, n: function n() { return _n >= r.length ? { done: !0 } : { done: !1, value: r[_n++] }; }, e: function e(r) { throw r; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var o, a = !0, u = !1; return { s: function s() { t = t.call(r); }, n: function n() { var r = t.next(); return a = r.done, r; }, e: function e(r) { u = !0, o = r; }, f: function f() { try { a || null == t["return"] || t["return"](); } finally { if (u) throw o; } } }; }
|
|
18326
|
+
function util_unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return util_arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? util_arrayLikeToArray(r, a) : void 0; } }
|
|
18327
|
+
function util_arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
|
|
18324
18328
|
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
18325
|
-
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) {
|
|
18329
|
+
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { defineProperty_defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
18326
18330
|
/*
|
|
18327
18331
|
* Tencent is pleased to support the open source community by making
|
|
18328
18332
|
* 蓝鲸智云PaaS平台社区版 (BlueKing PaaS Community Edition) available.
|
|
@@ -18462,7 +18466,7 @@ var getNodeItemClass = function getNodeItemClass(item, schema, props) {
|
|
|
18462
18466
|
__is_open = _ref.__is_open;
|
|
18463
18467
|
var _usePrefix = (0,config_provider_namespaceObject.usePrefix)(),
|
|
18464
18468
|
resolveClassName = _usePrefix.resolveClassName;
|
|
18465
|
-
return
|
|
18469
|
+
return defineProperty_defineProperty(defineProperty_defineProperty(defineProperty_defineProperty(defineProperty_defineProperty({
|
|
18466
18470
|
'is-root': __is_root
|
|
18467
18471
|
}, "".concat(resolveClassName('tree-node')), true), 'is-open', __is_open), 'is-virtual-render', props.virtualRender), 'level-line', props.levelLine && showTree);
|
|
18468
18472
|
};
|
|
@@ -18475,11 +18479,13 @@ var getNodeRowClass = function getNodeRowClass(item, schema) {
|
|
|
18475
18479
|
// eslint-disable-next-line @typescript-eslint/naming-convention
|
|
18476
18480
|
var _ref3 = schema.get(item) || {},
|
|
18477
18481
|
__is_checked = _ref3.__is_checked,
|
|
18482
|
+
__is_indeterminate = _ref3.__is_indeterminate,
|
|
18478
18483
|
__is_selected = _ref3.__is_selected;
|
|
18479
18484
|
var _usePrefix2 = (0,config_provider_namespaceObject.usePrefix)(),
|
|
18480
18485
|
resolveClassName = _usePrefix2.resolveClassName;
|
|
18481
|
-
return
|
|
18486
|
+
return defineProperty_defineProperty({
|
|
18482
18487
|
'is-checked': __is_checked,
|
|
18488
|
+
'is-indeterminate': __is_indeterminate,
|
|
18483
18489
|
'is-selected': __is_selected,
|
|
18484
18490
|
'node-folder': item.is_folder,
|
|
18485
18491
|
'node-leaf': item.is_leaf
|
|
@@ -18496,6 +18502,211 @@ var getNodeRowClass = function getNodeRowClass(item, schema) {
|
|
|
18496
18502
|
var updateTreeNode = function updateTreeNode(path, treeData, childKey, nodekey, nodeValue) {
|
|
18497
18503
|
assignTreeNode(path, treeData, childKey, _defineProperty({}, nodekey, nodeValue));
|
|
18498
18504
|
};
|
|
18505
|
+
var _cloneTreeNode = function cloneTreeNode(node) {
|
|
18506
|
+
if (Array.isArray(node)) {
|
|
18507
|
+
return node.map(function (item) {
|
|
18508
|
+
return _cloneTreeNode(item);
|
|
18509
|
+
});
|
|
18510
|
+
}
|
|
18511
|
+
if (node && _typeof(node) === 'object') {
|
|
18512
|
+
return Object.keys(node).reduce(function (acc, key) {
|
|
18513
|
+
var value = node[key];
|
|
18514
|
+
acc[key] = Array.isArray(value) ? value.slice() : value;
|
|
18515
|
+
return acc;
|
|
18516
|
+
}, {});
|
|
18517
|
+
}
|
|
18518
|
+
return node;
|
|
18519
|
+
};
|
|
18520
|
+
var _cloneTreeData = function cloneTreeData() {
|
|
18521
|
+
var treeData = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
|
|
18522
|
+
var childKey = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'children';
|
|
18523
|
+
return (treeData || []).map(function (node) {
|
|
18524
|
+
var clonedNode = _cloneTreeNode(node);
|
|
18525
|
+
if (Array.isArray(node === null || node === void 0 ? void 0 : node[childKey])) {
|
|
18526
|
+
clonedNode[childKey] = _cloneTreeData(node[childKey], childKey);
|
|
18527
|
+
}
|
|
18528
|
+
return clonedNode;
|
|
18529
|
+
});
|
|
18530
|
+
};
|
|
18531
|
+
|
|
18532
|
+
var isSameNodeId = function isSameNodeId(left, right) {
|
|
18533
|
+
if (left === right) {
|
|
18534
|
+
return true;
|
|
18535
|
+
}
|
|
18536
|
+
if (left === undefined || left === null || right === undefined || right === null) {
|
|
18537
|
+
return false;
|
|
18538
|
+
}
|
|
18539
|
+
return "".concat(left) === "".concat(right);
|
|
18540
|
+
};
|
|
18541
|
+
var _findNodeById = function findNodeById() {
|
|
18542
|
+
var treeData = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
|
|
18543
|
+
var nodeId = arguments.length > 1 ? arguments[1] : undefined;
|
|
18544
|
+
var nodeKey = arguments.length > 2 ? arguments[2] : undefined;
|
|
18545
|
+
var childKey = arguments.length > 3 ? arguments[3] : undefined;
|
|
18546
|
+
var _iterator = _createForOfIteratorHelper(treeData),
|
|
18547
|
+
_step;
|
|
18548
|
+
try {
|
|
18549
|
+
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
|
18550
|
+
var node = _step.value;
|
|
18551
|
+
if (isSameNodeId(node === null || node === void 0 ? void 0 : node[nodeKey], nodeId)) {
|
|
18552
|
+
return node;
|
|
18553
|
+
}
|
|
18554
|
+
var children = node === null || node === void 0 ? void 0 : node[childKey];
|
|
18555
|
+
if (Array.isArray(children) && children.length) {
|
|
18556
|
+
var target = _findNodeById(children, nodeId, nodeKey, childKey);
|
|
18557
|
+
if (target) {
|
|
18558
|
+
return target;
|
|
18559
|
+
}
|
|
18560
|
+
}
|
|
18561
|
+
}
|
|
18562
|
+
} catch (err) {
|
|
18563
|
+
_iterator.e(err);
|
|
18564
|
+
} finally {
|
|
18565
|
+
_iterator.f();
|
|
18566
|
+
}
|
|
18567
|
+
return null;
|
|
18568
|
+
};
|
|
18569
|
+
|
|
18570
|
+
var mutateTreeById = function mutateTreeById() {
|
|
18571
|
+
var treeData = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
|
|
18572
|
+
var nodeId = arguments.length > 1 ? arguments[1] : undefined;
|
|
18573
|
+
var nodeKey = arguments.length > 2 ? arguments[2] : undefined;
|
|
18574
|
+
var childKey = arguments.length > 3 ? arguments[3] : undefined;
|
|
18575
|
+
var updater = arguments.length > 4 ? arguments[4] : undefined;
|
|
18576
|
+
var target = _findNodeById(treeData, nodeId, nodeKey, childKey);
|
|
18577
|
+
if (target) {
|
|
18578
|
+
updater(target);
|
|
18579
|
+
}
|
|
18580
|
+
return treeData;
|
|
18581
|
+
};
|
|
18582
|
+
var removeTreeNodeById = function removeTreeNodeById() {
|
|
18583
|
+
var treeData = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
|
|
18584
|
+
var nodeId = arguments.length > 1 ? arguments[1] : undefined;
|
|
18585
|
+
var nodeKey = arguments.length > 2 ? arguments[2] : undefined;
|
|
18586
|
+
var childKey = arguments.length > 3 ? arguments[3] : undefined;
|
|
18587
|
+
var _loop = function loop(list, parentNode) {
|
|
18588
|
+
for (var index = 0; index < list.length; index++) {
|
|
18589
|
+
var current = list[index];
|
|
18590
|
+
if (isSameNodeId(current === null || current === void 0 ? void 0 : current[nodeKey], nodeId)) {
|
|
18591
|
+
var _list$splice = list.splice(index, 1),
|
|
18592
|
+
_list$splice2 = _slicedToArray(_list$splice, 1),
|
|
18593
|
+
node = _list$splice2[0];
|
|
18594
|
+
return {
|
|
18595
|
+
node: node,
|
|
18596
|
+
parentNode: parentNode,
|
|
18597
|
+
index: index
|
|
18598
|
+
};
|
|
18599
|
+
}
|
|
18600
|
+
var children = current === null || current === void 0 ? void 0 : current[childKey];
|
|
18601
|
+
if (Array.isArray(children) && children.length) {
|
|
18602
|
+
var _result = _loop(children, current);
|
|
18603
|
+
if (_result.node) {
|
|
18604
|
+
return _result;
|
|
18605
|
+
}
|
|
18606
|
+
}
|
|
18607
|
+
}
|
|
18608
|
+
return {
|
|
18609
|
+
node: null,
|
|
18610
|
+
parentNode: null,
|
|
18611
|
+
index: -1
|
|
18612
|
+
};
|
|
18613
|
+
};
|
|
18614
|
+
var result = _loop(treeData, null);
|
|
18615
|
+
return _objectSpread(_objectSpread({}, result), {}, {
|
|
18616
|
+
data: treeData
|
|
18617
|
+
});
|
|
18618
|
+
};
|
|
18619
|
+
var insertTreeNodeById = function insertTreeNodeById() {
|
|
18620
|
+
var treeData = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
|
|
18621
|
+
var node = arguments.length > 1 ? arguments[1] : undefined;
|
|
18622
|
+
var targetNodeId = arguments.length > 2 ? arguments[2] : undefined;
|
|
18623
|
+
var nodeKey = arguments.length > 3 ? arguments[3] : undefined;
|
|
18624
|
+
var childKey = arguments.length > 4 ? arguments[4] : undefined;
|
|
18625
|
+
var options = arguments.length > 5 ? arguments[5] : undefined;
|
|
18626
|
+
var dropType = options.dropType,
|
|
18627
|
+
_options$willInsertAf = options.willInsertAfter,
|
|
18628
|
+
willInsertAfter = _options$willInsertAf === void 0 ? true : _options$willInsertAf;
|
|
18629
|
+
if (dropType === 'child') {
|
|
18630
|
+
var targetNode = _findNodeById(treeData, targetNodeId, nodeKey, childKey);
|
|
18631
|
+
if (!targetNode) {
|
|
18632
|
+
return {
|
|
18633
|
+
data: treeData,
|
|
18634
|
+
parentNode: null,
|
|
18635
|
+
targetNode: null,
|
|
18636
|
+
index: -1
|
|
18637
|
+
};
|
|
18638
|
+
}
|
|
18639
|
+
if (!Array.isArray(targetNode[childKey])) {
|
|
18640
|
+
targetNode[childKey] = [];
|
|
18641
|
+
}
|
|
18642
|
+
var targetChildren = targetNode[childKey];
|
|
18643
|
+
targetChildren.push(node);
|
|
18644
|
+
return {
|
|
18645
|
+
data: treeData,
|
|
18646
|
+
parentNode: targetNode,
|
|
18647
|
+
targetNode: targetNode,
|
|
18648
|
+
index: targetChildren.length - 1
|
|
18649
|
+
};
|
|
18650
|
+
}
|
|
18651
|
+
var _loop2 = function loop(list, parentNode) {
|
|
18652
|
+
for (var index = 0; index < list.length; index++) {
|
|
18653
|
+
var current = list[index];
|
|
18654
|
+
if (isSameNodeId(current === null || current === void 0 ? void 0 : current[nodeKey], targetNodeId)) {
|
|
18655
|
+
var insertIndex = willInsertAfter ? index + 1 : index;
|
|
18656
|
+
list.splice(insertIndex, 0, node);
|
|
18657
|
+
return {
|
|
18658
|
+
parentNode: parentNode,
|
|
18659
|
+
targetNode: current,
|
|
18660
|
+
index: insertIndex
|
|
18661
|
+
};
|
|
18662
|
+
}
|
|
18663
|
+
var children = current === null || current === void 0 ? void 0 : current[childKey];
|
|
18664
|
+
if (Array.isArray(children) && children.length) {
|
|
18665
|
+
var _result2 = _loop2(children, current);
|
|
18666
|
+
if (_result2.targetNode) {
|
|
18667
|
+
return _result2;
|
|
18668
|
+
}
|
|
18669
|
+
}
|
|
18670
|
+
}
|
|
18671
|
+
return {
|
|
18672
|
+
parentNode: null,
|
|
18673
|
+
targetNode: null,
|
|
18674
|
+
index: -1
|
|
18675
|
+
};
|
|
18676
|
+
};
|
|
18677
|
+
var result = _loop2(treeData, null);
|
|
18678
|
+
return _objectSpread({
|
|
18679
|
+
data: treeData
|
|
18680
|
+
}, result);
|
|
18681
|
+
};
|
|
18682
|
+
var moveTreeNodeById = function moveTreeNodeById() {
|
|
18683
|
+
var treeData = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
|
|
18684
|
+
var nodeId = arguments.length > 1 ? arguments[1] : undefined;
|
|
18685
|
+
var targetNodeId = arguments.length > 2 ? arguments[2] : undefined;
|
|
18686
|
+
var nodeKey = arguments.length > 3 ? arguments[3] : undefined;
|
|
18687
|
+
var childKey = arguments.length > 4 ? arguments[4] : undefined;
|
|
18688
|
+
var options = arguments.length > 5 ? arguments[5] : undefined;
|
|
18689
|
+
var nextTreeData = _cloneTreeData(treeData, childKey);
|
|
18690
|
+
var removeResult = removeTreeNodeById(nextTreeData, nodeId, nodeKey, childKey);
|
|
18691
|
+
if (!removeResult.node) {
|
|
18692
|
+
return null;
|
|
18693
|
+
}
|
|
18694
|
+
var insertResult = insertTreeNodeById(nextTreeData, removeResult.node, targetNodeId, nodeKey, childKey, options);
|
|
18695
|
+
if (!insertResult.targetNode) {
|
|
18696
|
+
return null;
|
|
18697
|
+
}
|
|
18698
|
+
return {
|
|
18699
|
+
trigger: 'drag',
|
|
18700
|
+
data: nextTreeData,
|
|
18701
|
+
node: removeResult.node,
|
|
18702
|
+
targetNode: insertResult.targetNode,
|
|
18703
|
+
parentNode: insertResult.parentNode,
|
|
18704
|
+
oldParentNode: removeResult.parentNode,
|
|
18705
|
+
dropType: options.dropType,
|
|
18706
|
+
sourceIndex: removeResult.index,
|
|
18707
|
+
targetIndex: insertResult.index
|
|
18708
|
+
};
|
|
18709
|
+
};
|
|
18499
18710
|
/**
|
|
18500
18711
|
* 根据路径更新指定节点Child-Data
|
|
18501
18712
|
* @param path 节点路径
|
|
@@ -18527,7 +18738,7 @@ var _resolvePropIsMatched = function resolvePropIsMatched(node, prop, id) {
|
|
|
18527
18738
|
});
|
|
18528
18739
|
}
|
|
18529
18740
|
if (typeof prop === 'string' || typeof prop === 'number') {
|
|
18530
|
-
return prop
|
|
18741
|
+
return isSameNodeId(prop, id);
|
|
18531
18742
|
}
|
|
18532
18743
|
return node === prop;
|
|
18533
18744
|
};
|
|
@@ -18538,8 +18749,15 @@ var showCheckbox = function showCheckbox(props, node) {
|
|
|
18538
18749
|
}
|
|
18539
18750
|
return props.showCheckbox;
|
|
18540
18751
|
};
|
|
18752
|
+
var isCascadeEnabled = function isCascadeEnabled(props) {
|
|
18753
|
+
if (typeof props.cascade === 'boolean') {
|
|
18754
|
+
return props.cascade;
|
|
18755
|
+
}
|
|
18756
|
+
return !!props.checkStrictly;
|
|
18757
|
+
};
|
|
18541
18758
|
;// CONCATENATED MODULE: ../../packages/tree/src/use-node-async.tsx
|
|
18542
18759
|
|
|
18760
|
+
|
|
18543
18761
|
/*
|
|
18544
18762
|
* Tencent is pleased to support the open source community by making
|
|
18545
18763
|
* 蓝鲸智云PaaS平台社区版 (BlueKing PaaS Community Edition) available.
|
|
@@ -18547,44 +18765,60 @@ var showCheckbox = function showCheckbox(props, node) {
|
|
|
18547
18765
|
* Copyright (C) 2025 Tencent. All rights reserved.
|
|
18548
18766
|
*
|
|
18549
18767
|
* 蓝鲸智云PaaS平台社区版 (BlueKing PaaS Community Edition) is licensed under the MIT License.
|
|
18550
|
-
*
|
|
18551
|
-
* License for 蓝鲸智云PaaS平台社区版 (BlueKing PaaS Community Edition):
|
|
18552
|
-
*
|
|
18553
|
-
* ---------------------------------------------------
|
|
18554
|
-
* Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated
|
|
18555
|
-
* documentation files (the "Software"), to deal in the Software without restriction, including without limitation
|
|
18556
|
-
* the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and
|
|
18557
|
-
* to permit persons to whom the Software is furnished to do so, subject to the following conditions:
|
|
18558
|
-
*
|
|
18559
|
-
* The above copyright notice and this permission notice shall be included in all copies or substantial portions of
|
|
18560
|
-
* the Software.
|
|
18561
|
-
*
|
|
18562
|
-
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO
|
|
18563
|
-
* THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18564
|
-
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF
|
|
18565
|
-
* CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
|
|
18566
|
-
* IN THE SOFTWARE.
|
|
18567
18768
|
*/
|
|
18568
18769
|
|
|
18569
18770
|
|
|
18570
18771
|
|
|
18571
|
-
/* harmony default export */ const use_node_async = (function (props, flatData) {
|
|
18772
|
+
/* harmony default export */ const use_node_async = (function (props, flatData, ctx) {
|
|
18773
|
+
var options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};
|
|
18572
18774
|
var _useNodeAttribute = use_node_attribute(flatData, props),
|
|
18573
18775
|
setNodeAttr = _useNodeAttribute.setNodeAttr,
|
|
18776
|
+
getNodeId = _useNodeAttribute.getNodeId,
|
|
18574
18777
|
getNodePath = _useNodeAttribute.getNodePath,
|
|
18575
18778
|
getNodeAttr = _useNodeAttribute.getNodeAttr,
|
|
18576
18779
|
resolveScopedSlotParam = _useNodeAttribute.resolveScopedSlotParam,
|
|
18577
18780
|
setTreeNodeLoading = _useNodeAttribute.setTreeNodeLoading;
|
|
18578
|
-
|
|
18579
|
-
|
|
18580
|
-
|
|
18581
|
-
|
|
18582
|
-
|
|
18583
|
-
|
|
18781
|
+
var requestVersionMap = new Map();
|
|
18782
|
+
var emitTreeDataChange = function emitTreeDataChange(payload) {
|
|
18783
|
+
var _options$onTreeDataCh;
|
|
18784
|
+
(_options$onTreeDataCh = options.onTreeDataChange) === null || _options$onTreeDataCh === void 0 || _options$onTreeDataCh.call(options, payload);
|
|
18785
|
+
ctx === null || ctx === void 0 || ctx.emit(EVENTS.NODE_ASYNC_LOAD, payload);
|
|
18786
|
+
};
|
|
18787
|
+
var setNodeRemoteLoad = function setNodeRemoteLoad(resp, item, requestVersion) {
|
|
18584
18788
|
if (_typeof(resp) === 'object' && resp !== null) {
|
|
18789
|
+
var _options$getTreeData, _options$getTreeData2;
|
|
18790
|
+
var nodeId = "".concat(getNodeId(item));
|
|
18791
|
+
if (requestVersion !== undefined && requestVersionMap.get(nodeId) !== requestVersion) {
|
|
18792
|
+
return Promise.resolve(resp);
|
|
18793
|
+
}
|
|
18585
18794
|
setNodeAttr(item, NODE_ATTRIBUTES.IS_OPEN, true);
|
|
18586
18795
|
var nodeValue = Array.isArray(resp) ? resp : [resp];
|
|
18587
|
-
|
|
18796
|
+
if (!options.onTreeDataChange) {
|
|
18797
|
+
mutateTreeById(props.data, nodeId, props.nodeKey || NODE_ATTRIBUTES.UUID, props.children, function (targetNode) {
|
|
18798
|
+
targetNode[props.children] = nodeValue;
|
|
18799
|
+
});
|
|
18800
|
+
if (!props.nodeKey && getNodePath(item)) {
|
|
18801
|
+
// nodeKey 缺失时保留旧版按 path 写入的兜底行为。
|
|
18802
|
+
var paths = "".concat(getNodePath(item)).split('-');
|
|
18803
|
+
var targetNode = paths.reduce(function (pre, nodeIndex) {
|
|
18804
|
+
var index = Number(nodeIndex);
|
|
18805
|
+
return Array.isArray(pre) ? pre[index] : pre[props.children][index];
|
|
18806
|
+
}, props.data);
|
|
18807
|
+
Object.assign(targetNode, defineProperty_defineProperty({}, props.children, nodeValue));
|
|
18808
|
+
}
|
|
18809
|
+
return Promise.resolve(resp);
|
|
18810
|
+
}
|
|
18811
|
+
var nextTreeData = _cloneTreeData((_options$getTreeData = (_options$getTreeData2 = options.getTreeData) === null || _options$getTreeData2 === void 0 ? void 0 : _options$getTreeData2.call(options)) !== null && _options$getTreeData !== void 0 ? _options$getTreeData : props.data, props.children);
|
|
18812
|
+
mutateTreeById(nextTreeData, nodeId, props.nodeKey || NODE_ATTRIBUTES.UUID, props.children, function (targetNode) {
|
|
18813
|
+
targetNode[NODE_SOURCE_ATTRS[NODE_ATTRIBUTES.IS_OPEN]] = true;
|
|
18814
|
+
targetNode[props.children] = nodeValue;
|
|
18815
|
+
});
|
|
18816
|
+
emitTreeDataChange({
|
|
18817
|
+
trigger: 'async',
|
|
18818
|
+
data: nextTreeData,
|
|
18819
|
+
node: item,
|
|
18820
|
+
parentNode: item
|
|
18821
|
+
});
|
|
18588
18822
|
return Promise.resolve(resp);
|
|
18589
18823
|
}
|
|
18590
18824
|
return Promise.resolve(resp);
|
|
@@ -18595,29 +18829,39 @@ var showCheckbox = function showCheckbox(props, node) {
|
|
|
18595
18829
|
callback = _ref$callback === void 0 ? null : _ref$callback,
|
|
18596
18830
|
_ref$cache = _ref.cache,
|
|
18597
18831
|
cache = _ref$cache === void 0 ? true : _ref$cache;
|
|
18598
|
-
/** 如果是异步请求加载 */
|
|
18599
18832
|
if (typeof callback === 'function' && getNodeAttr(item, NODE_ATTRIBUTES.IS_ASYNC)) {
|
|
18600
|
-
|
|
18833
|
+
var nodeId = "".concat(getNodeId(item));
|
|
18834
|
+
var requestVersion = (requestVersionMap.get(nodeId) || 0) + 1;
|
|
18835
|
+
requestVersionMap.set(nodeId, requestVersion);
|
|
18601
18836
|
setNodeAttr(item, NODE_ATTRIBUTES.IS_ASYNC_INIT, true);
|
|
18602
18837
|
if (!getNodeAttr(item, NODE_ATTRIBUTES.IS_CACHED)) {
|
|
18603
18838
|
setNodeAttr(item, NODE_ATTRIBUTES.IS_CACHED, cache);
|
|
18604
18839
|
var dataAttr = resolveScopedSlotParam(item);
|
|
18605
18840
|
var callbackResult = callback(item, function (resp) {
|
|
18606
|
-
return setNodeRemoteLoad(resp, item);
|
|
18841
|
+
return setNodeRemoteLoad(resp, item, requestVersion);
|
|
18607
18842
|
}, dataAttr);
|
|
18608
18843
|
if (_typeof(callbackResult) === 'object' && callbackResult !== null) {
|
|
18609
18844
|
setTreeNodeLoading(item, true);
|
|
18610
18845
|
if (callbackResult instanceof Promise) {
|
|
18611
18846
|
return Promise.resolve(callbackResult.then(function (resp) {
|
|
18612
|
-
return setNodeRemoteLoad(resp, item);
|
|
18613
|
-
})["catch"](function (
|
|
18614
|
-
|
|
18847
|
+
return setNodeRemoteLoad(resp, item, requestVersion);
|
|
18848
|
+
})["catch"](function (error) {
|
|
18849
|
+
if (requestVersionMap.get(nodeId) === requestVersion) {
|
|
18850
|
+
ctx === null || ctx === void 0 || ctx.emit(EVENTS.NODE_ASYNC_LOAD_ERROR, {
|
|
18851
|
+
node: item,
|
|
18852
|
+
error: error,
|
|
18853
|
+
requestVersion: requestVersion
|
|
18854
|
+
});
|
|
18855
|
+
}
|
|
18856
|
+
return false;
|
|
18615
18857
|
})["finally"](function () {
|
|
18616
|
-
|
|
18617
|
-
|
|
18858
|
+
if (requestVersionMap.get(nodeId) === requestVersion) {
|
|
18859
|
+
setTreeNodeLoading(item, false);
|
|
18860
|
+
setNodeAttr(item, NODE_ATTRIBUTES.IS_CACHED, true);
|
|
18861
|
+
}
|
|
18618
18862
|
}));
|
|
18619
18863
|
}
|
|
18620
|
-
setNodeRemoteLoad(callbackResult, item);
|
|
18864
|
+
setNodeRemoteLoad(callbackResult, item, requestVersion);
|
|
18621
18865
|
setTreeNodeLoading(item, false);
|
|
18622
18866
|
return Promise.resolve(true);
|
|
18623
18867
|
}
|
|
@@ -18627,7 +18871,6 @@ var showCheckbox = function showCheckbox(props, node) {
|
|
|
18627
18871
|
return Promise.resolve(true);
|
|
18628
18872
|
};
|
|
18629
18873
|
var _deepAutoOpen = function deepAutoOpen() {
|
|
18630
|
-
/** 过滤节点为异步加载 & 默认为展开 & 没有初始化过的节点 */
|
|
18631
18874
|
var autoOpenNodes = flatData.data.filter(function (item) {
|
|
18632
18875
|
return getNodeAttr(item, NODE_ATTRIBUTES.IS_ASYNC) && item[NODE_SOURCE_ATTRS[NODE_ATTRIBUTES.IS_OPEN]] && !getNodeAttr(item, NODE_ATTRIBUTES.IS_ASYNC_INIT);
|
|
18633
18876
|
});
|
|
@@ -18708,7 +18951,7 @@ var use_node_action_this = undefined;
|
|
|
18708
18951
|
var _usePrefix = (0,config_provider_namespaceObject.usePrefix)(),
|
|
18709
18952
|
resolveClassName = _usePrefix.resolveClassName;
|
|
18710
18953
|
var registerNextLoop = initOption.registerNextLoop;
|
|
18711
|
-
var _useNodeAsync = use_node_async(props, flatData),
|
|
18954
|
+
var _useNodeAsync = use_node_async(props, flatData, ctx, initOption),
|
|
18712
18955
|
asyncNodeClick = _useNodeAsync.asyncNodeClick,
|
|
18713
18956
|
deepAutoOpen = _useNodeAsync.deepAutoOpen;
|
|
18714
18957
|
/**
|
|
@@ -18810,17 +19053,18 @@ var use_node_action_this = undefined;
|
|
|
18810
19053
|
};
|
|
18811
19054
|
var _updateParentChecked = function updateParentChecked(item, isChecked) {
|
|
18812
19055
|
var parent = getParentNode(item);
|
|
18813
|
-
if (parent) {
|
|
18814
|
-
|
|
18815
|
-
|
|
18816
|
-
|
|
18817
|
-
|
|
18818
|
-
|
|
18819
|
-
|
|
18820
|
-
|
|
18821
|
-
|
|
18822
|
-
|
|
18823
|
-
|
|
19056
|
+
if (!parent) {
|
|
19057
|
+
return;
|
|
19058
|
+
}
|
|
19059
|
+
var isNeedChecked = isChecked ? isChecked : (getChildNodes(parent) || []).some(function (node) {
|
|
19060
|
+
return isNodeChecked(node);
|
|
19061
|
+
});
|
|
19062
|
+
setNodeAttr(parent, NODE_ATTRIBUTES.IS_CHECKED, isNeedChecked);
|
|
19063
|
+
setNodeAttr(parent, NODE_ATTRIBUTES.IS_INDETERMINATE, (getChildNodes(parent) || []).some(function (node) {
|
|
19064
|
+
return !isNodeChecked(node) || isIndeterminate(node);
|
|
19065
|
+
}));
|
|
19066
|
+
if (!isRootNode(parent)) {
|
|
19067
|
+
_updateParentChecked(parent, isChecked);
|
|
18824
19068
|
}
|
|
18825
19069
|
};
|
|
18826
19070
|
var _deepUpdateChildNode = function deepUpdateChildNode(node, attr, value) {
|
|
@@ -18954,6 +19198,9 @@ var use_node_action_this = undefined;
|
|
|
18954
19198
|
});
|
|
18955
19199
|
if (!isRootNode(resolvedItem)) {
|
|
18956
19200
|
var parent = getParentNode(resolvedItem);
|
|
19201
|
+
if (!parent) {
|
|
19202
|
+
return;
|
|
19203
|
+
}
|
|
18957
19204
|
attrNames.forEach(function (name, index) {
|
|
18958
19205
|
var parentVal = getNodeAttr(parent, name);
|
|
18959
19206
|
if (parentVal !== value) {
|
|
@@ -19029,9 +19276,10 @@ var use_node_action_this = undefined;
|
|
|
19029
19276
|
var resolvedItem = resolveNodeItem(nodeList[0]);
|
|
19030
19277
|
if (typeof resolvedItem === 'string' || typeof resolvedItem === 'number' || _typeof(resolvedItem) === 'symbol') {
|
|
19031
19278
|
var _flatData$data$find;
|
|
19279
|
+
var nodeId = resolvedItem;
|
|
19032
19280
|
resolvedItem = (_flatData$data$find = flatData.data.find(function (item) {
|
|
19033
|
-
return getNodeId(item) ===
|
|
19034
|
-
})) !== null && _flatData$data$find !== void 0 ? _flatData$data$find :
|
|
19281
|
+
return getNodeId(item) === nodeId;
|
|
19282
|
+
})) !== null && _flatData$data$find !== void 0 ? _flatData$data$find : defineProperty_defineProperty({}, NODE_ATTRIBUTES.IS_NULL, true);
|
|
19035
19283
|
}
|
|
19036
19284
|
if (resolvedItem[NODE_ATTRIBUTES.IS_NULL]) {
|
|
19037
19285
|
return;
|
|
@@ -22624,37 +22872,20 @@ Sortable.mount(Remove, Revert);
|
|
|
22624
22872
|
* Copyright (C) 2025 Tencent. All rights reserved.
|
|
22625
22873
|
*
|
|
22626
22874
|
* 蓝鲸智云PaaS平台社区版 (BlueKing PaaS Community Edition) is licensed under the MIT License.
|
|
22627
|
-
*
|
|
22628
|
-
* License for 蓝鲸智云PaaS平台社区版 (BlueKing PaaS Community Edition):
|
|
22629
|
-
*
|
|
22630
|
-
* ---------------------------------------------------
|
|
22631
|
-
* Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated
|
|
22632
|
-
* documentation files (the "Software"), to deal in the Software without restriction, including without limitation the
|
|
22633
|
-
* rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to
|
|
22634
|
-
* permit persons to whom the Software is furnished to do so, subject to the following conditions:
|
|
22635
|
-
*
|
|
22636
|
-
* The above copyright notice and this permission notice shall be included in all copies or substantial portions of
|
|
22637
|
-
* the Software.
|
|
22638
|
-
*
|
|
22639
|
-
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO
|
|
22640
|
-
* THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
22641
|
-
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF
|
|
22642
|
-
* CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
|
|
22643
|
-
* IN THE SOFTWARE.
|
|
22644
22875
|
*/
|
|
22645
22876
|
|
|
22646
22877
|
|
|
22647
22878
|
|
|
22648
22879
|
|
|
22649
22880
|
|
|
22881
|
+
|
|
22650
22882
|
/* harmony default export */ const use_node_drag = (function (props, ctx, root, flatData) {
|
|
22883
|
+
var options = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : {};
|
|
22651
22884
|
var _useNodeAttribute = use_node_attribute(flatData, props),
|
|
22652
22885
|
getSourceNodeByUID = _useNodeAttribute.getSourceNodeByUID,
|
|
22653
22886
|
getParentNode = _useNodeAttribute.getParentNode,
|
|
22654
22887
|
extendNodeAttr = _useNodeAttribute.extendNodeAttr,
|
|
22655
|
-
|
|
22656
|
-
getNodeAttr = _useNodeAttribute.getNodeAttr,
|
|
22657
|
-
getRootNodeList = _useNodeAttribute.getRootNodeList;
|
|
22888
|
+
getNodeId = _useNodeAttribute.getNodeId;
|
|
22658
22889
|
var _usePrefix = (0,config_provider_namespaceObject.usePrefix)(),
|
|
22659
22890
|
resolveClassName = _usePrefix.resolveClassName;
|
|
22660
22891
|
var isNeedCheckDraggable = (0,external_vue_namespaceObject.computed)(function () {
|
|
@@ -22666,20 +22897,12 @@ Sortable.mount(Remove, Revert);
|
|
|
22666
22897
|
var dragThreshold = props.dragThreshold || 0.2;
|
|
22667
22898
|
var sortableInstance = null;
|
|
22668
22899
|
var dragNodeId = '';
|
|
22669
|
-
/** 当前拖拽的放置类型,在 onMove 中实时计算,onEnd 中消费 */
|
|
22670
22900
|
var currentDropType = 'move';
|
|
22671
|
-
/** 当前拖拽目标节点 ID,在 onMove 中实时计算,onEnd 中消费 */
|
|
22672
22901
|
var currentRelatedId = '';
|
|
22673
|
-
|
|
22902
|
+
var currentRelatedEl = null;
|
|
22674
22903
|
var currentWillInsertAfter = true;
|
|
22675
|
-
var isDragging = (0,external_vue_namespaceObject.ref)(false);
|
|
22676
|
-
/**
|
|
22677
|
-
* 放置指示器 DOM 元素(动态创建的线条/高亮)
|
|
22678
|
-
*/
|
|
22679
22904
|
var indicatorEl = null;
|
|
22680
|
-
|
|
22681
|
-
* 创建放置指示器元素
|
|
22682
|
-
*/
|
|
22905
|
+
var isDragging = (0,external_vue_namespaceObject.ref)(false);
|
|
22683
22906
|
var createIndicator = function createIndicator() {
|
|
22684
22907
|
if (indicatorEl) return indicatorEl;
|
|
22685
22908
|
indicatorEl = document.createElement('div');
|
|
@@ -22687,25 +22910,20 @@ Sortable.mount(Remove, Revert);
|
|
|
22687
22910
|
document.body.appendChild(indicatorEl);
|
|
22688
22911
|
return indicatorEl;
|
|
22689
22912
|
};
|
|
22690
|
-
/**
|
|
22691
|
-
* 移除放置指示器元素
|
|
22692
|
-
*/
|
|
22693
22913
|
var removeIndicator = function removeIndicator() {
|
|
22914
|
+
var _indicatorEl;
|
|
22915
|
+
(_indicatorEl = indicatorEl) === null || _indicatorEl === void 0 || _indicatorEl.remove();
|
|
22916
|
+
indicatorEl = null;
|
|
22917
|
+
};
|
|
22918
|
+
var hideIndicator = function hideIndicator() {
|
|
22694
22919
|
if (indicatorEl) {
|
|
22695
|
-
indicatorEl.
|
|
22696
|
-
indicatorEl = null;
|
|
22920
|
+
indicatorEl.style.display = 'none';
|
|
22697
22921
|
}
|
|
22698
22922
|
};
|
|
22699
|
-
/**
|
|
22700
|
-
* 更新指示器位置和样式
|
|
22701
|
-
* - sort/move: 显示水平线(两端圆点),指示插入位置
|
|
22702
|
-
* - child: 显示在目标节点内部的高亮边框,指示嵌入为子节点
|
|
22703
|
-
*/
|
|
22704
22923
|
var updateIndicator = function updateIndicator(targetEl, dropType, willInsertAfter) {
|
|
22705
22924
|
var indicator = createIndicator();
|
|
22706
22925
|
var rect = targetEl.getBoundingClientRect();
|
|
22707
22926
|
if (dropType === 'child') {
|
|
22708
|
-
// 作为子节点:显示在目标节点内部的高亮边框
|
|
22709
22927
|
indicator.className = "".concat(resolveClassName('tree-drop-indicator'), " ").concat(resolveClassName('tree-drop-inner'));
|
|
22710
22928
|
Object.assign(indicator.style, {
|
|
22711
22929
|
display: '',
|
|
@@ -22717,290 +22935,101 @@ Sortable.mount(Remove, Revert);
|
|
|
22717
22935
|
pointerEvents: 'none',
|
|
22718
22936
|
zIndex: '9999'
|
|
22719
22937
|
});
|
|
22720
|
-
|
|
22721
|
-
// 作为同级(sort/move):显示水平线 + 两端圆点
|
|
22722
|
-
var lineTop = willInsertAfter ? rect.bottom : rect.top;
|
|
22723
|
-
indicator.className = "".concat(resolveClassName('tree-drop-indicator'), " ").concat(resolveClassName('tree-drop-line'));
|
|
22724
|
-
Object.assign(indicator.style, {
|
|
22725
|
-
display: '',
|
|
22726
|
-
position: 'fixed',
|
|
22727
|
-
left: "".concat(rect.left, "px"),
|
|
22728
|
-
top: "".concat(lineTop - 1, "px"),
|
|
22729
|
-
width: "".concat(rect.width, "px"),
|
|
22730
|
-
height: '2px',
|
|
22731
|
-
pointerEvents: 'none',
|
|
22732
|
-
zIndex: '9999'
|
|
22733
|
-
});
|
|
22734
|
-
}
|
|
22735
|
-
};
|
|
22736
|
-
/**
|
|
22737
|
-
* 隐藏指示器
|
|
22738
|
-
*/
|
|
22739
|
-
var hideIndicator = function hideIndicator() {
|
|
22740
|
-
if (indicatorEl) {
|
|
22741
|
-
indicatorEl.style.display = 'none';
|
|
22938
|
+
return;
|
|
22742
22939
|
}
|
|
22743
|
-
|
|
22744
|
-
|
|
22745
|
-
|
|
22746
|
-
|
|
22747
|
-
|
|
22748
|
-
|
|
22749
|
-
|
|
22750
|
-
|
|
22751
|
-
|
|
22752
|
-
|
|
22753
|
-
|
|
22754
|
-
};
|
|
22755
|
-
/**
|
|
22756
|
-
* 恢复所有节点的展开状态
|
|
22757
|
-
*/
|
|
22758
|
-
var restoreAllOpenStates = function restoreAllOpenStates(openStates) {
|
|
22759
|
-
openStates.forEach(function (isOpen, node) {
|
|
22760
|
-
if (flatData.schema.has(node)) {
|
|
22761
|
-
setNodeAttr(node, NODE_ATTRIBUTES.IS_OPEN, isOpen);
|
|
22762
|
-
}
|
|
22940
|
+
var lineTop = willInsertAfter ? rect.bottom : rect.top;
|
|
22941
|
+
indicator.className = "".concat(resolveClassName('tree-drop-indicator'), " ").concat(resolveClassName('tree-drop-line'));
|
|
22942
|
+
Object.assign(indicator.style, {
|
|
22943
|
+
display: '',
|
|
22944
|
+
position: 'fixed',
|
|
22945
|
+
left: "".concat(rect.left, "px"),
|
|
22946
|
+
top: "".concat(lineTop - 1, "px"),
|
|
22947
|
+
width: "".concat(rect.width, "px"),
|
|
22948
|
+
height: '2px',
|
|
22949
|
+
pointerEvents: 'none',
|
|
22950
|
+
zIndex: '9999'
|
|
22763
22951
|
});
|
|
22764
22952
|
};
|
|
22765
|
-
/**
|
|
22766
|
-
* 从父节点的 children 数组中移除指定节点
|
|
22767
|
-
*/
|
|
22768
|
-
var removeFromParentChildren = function removeFromParentChildren(node, parent) {
|
|
22769
|
-
if (!parent) {
|
|
22770
|
-
var index = props.data.indexOf(node);
|
|
22771
|
-
if (index > -1) {
|
|
22772
|
-
props.data.splice(index, 1);
|
|
22773
|
-
}
|
|
22774
|
-
} else {
|
|
22775
|
-
var children = parent[props.children];
|
|
22776
|
-
if (children) {
|
|
22777
|
-
var _index = children.indexOf(node);
|
|
22778
|
-
if (_index > -1) {
|
|
22779
|
-
children.splice(_index, 1);
|
|
22780
|
-
}
|
|
22781
|
-
}
|
|
22782
|
-
}
|
|
22783
|
-
};
|
|
22784
|
-
/**
|
|
22785
|
-
* 更新节点的 HAS_CHILD 属性
|
|
22786
|
-
*/
|
|
22787
|
-
var updateHasChildAttr = function updateHasChildAttr(node) {
|
|
22788
|
-
if (!node) return;
|
|
22789
|
-
var children = node[props.children];
|
|
22790
|
-
var hasChildren = children && children.length > 0;
|
|
22791
|
-
setNodeAttr(node, NODE_ATTRIBUTES.HAS_CHILD, hasChildren);
|
|
22792
|
-
};
|
|
22793
|
-
/**
|
|
22794
|
-
* 根据 onMove 中的鼠标位置计算放置类型
|
|
22795
|
-
*
|
|
22796
|
-
* 两种模式:
|
|
22797
|
-
* 1. dragSort 模式(仅排序,不支持改变层级):
|
|
22798
|
-
* - 上方/下方区域 → sort(同级排序)
|
|
22799
|
-
* - 中间区域 → sort(同级排序,不支持 child)
|
|
22800
|
-
*
|
|
22801
|
-
* 2. draggable 模式(支持排序和改变层级):
|
|
22802
|
-
* - 上方/下方区域 → move(作为同级节点)
|
|
22803
|
-
* - 中间区域 → child(作为子节点)
|
|
22804
|
-
*/
|
|
22805
22953
|
var calcDropType = function calcDropType(clientY, targetEl) {
|
|
22806
|
-
var rect = targetEl.getBoundingClientRect();
|
|
22807
|
-
var offsetY = clientY - rect.top;
|
|
22808
|
-
var threshold = rect.height * dragThreshold;
|
|
22809
22954
|
if (props.dragSort) {
|
|
22810
|
-
// dragSort 模式:仅支持同级排序,不支持改变层级
|
|
22811
22955
|
return 'sort';
|
|
22812
22956
|
}
|
|
22813
|
-
|
|
22814
|
-
|
|
22815
|
-
|
|
22816
|
-
|
|
22957
|
+
var rect = targetEl.getBoundingClientRect();
|
|
22958
|
+
var offsetY = clientY - rect.top;
|
|
22959
|
+
var threshold = rect.height * dragThreshold;
|
|
22960
|
+
if (offsetY < threshold || offsetY > rect.height - threshold) {
|
|
22817
22961
|
return 'move';
|
|
22818
22962
|
}
|
|
22819
22963
|
return 'child';
|
|
22820
22964
|
};
|
|
22821
|
-
/**
|
|
22822
|
-
* 将源数据树结构重新展开为 flatData(BFS 顺序)
|
|
22823
|
-
* 这是唯一需要的 flatData 更新方式:修改 children 后重新展平
|
|
22824
|
-
*/
|
|
22825
|
-
var rebuildFlatData = function rebuildFlatData() {
|
|
22826
|
-
var newFlatData = [];
|
|
22827
|
-
var _traverse = function traverse(nodes) {
|
|
22828
|
-
nodes.forEach(function (node) {
|
|
22829
|
-
newFlatData.push(node);
|
|
22830
|
-
var children = node[props.children];
|
|
22831
|
-
if (children && children.length > 0) {
|
|
22832
|
-
_traverse(children);
|
|
22833
|
-
}
|
|
22834
|
-
});
|
|
22835
|
-
};
|
|
22836
|
-
_traverse(props.data);
|
|
22837
|
-
flatData.data = newFlatData;
|
|
22838
|
-
};
|
|
22839
|
-
/**
|
|
22840
|
-
* 重新计算所有节点属性(深度、路径、索引等)
|
|
22841
|
-
*/
|
|
22842
|
-
var recalculateNodeAttributes = function recalculateNodeAttributes() {
|
|
22843
|
-
var orderIndex = 0;
|
|
22844
|
-
var _setNodeAttribute = function setNodeAttribute(nodeList, level, parentPath, parent) {
|
|
22845
|
-
for (var i = 0; i < nodeList.length; i++) {
|
|
22846
|
-
var node = nodeList[i];
|
|
22847
|
-
var path = parentPath !== '' ? "".concat(parentPath, "-").concat(i) : "".concat(i);
|
|
22848
|
-
setNodeAttr(node, NODE_ATTRIBUTES.INDEX, orderIndex);
|
|
22849
|
-
setNodeAttr(node, NODE_ATTRIBUTES.ORDER, orderIndex);
|
|
22850
|
-
setNodeAttr(node, NODE_ATTRIBUTES.DEPTH, level);
|
|
22851
|
-
setNodeAttr(node, NODE_ATTRIBUTES.PATH, path);
|
|
22852
|
-
setNodeAttr(node, NODE_ATTRIBUTES.IS_ROOT, level === 0);
|
|
22853
|
-
setNodeAttr(node, NODE_ATTRIBUTES.PARENT, parent);
|
|
22854
|
-
if (!parent) {
|
|
22855
|
-
// 根节点:检查是否有子节点
|
|
22856
|
-
var _children = node[props.children];
|
|
22857
|
-
setNodeAttr(node, NODE_ATTRIBUTES.HAS_CHILD, !!(_children && _children.length > 0));
|
|
22858
|
-
}
|
|
22859
|
-
orderIndex += 1;
|
|
22860
|
-
var children = node[props.children];
|
|
22861
|
-
if (children && children.length > 0) {
|
|
22862
|
-
_setNodeAttribute(children, level + 1, path, node);
|
|
22863
|
-
}
|
|
22864
|
-
}
|
|
22865
|
-
};
|
|
22866
|
-
var rootNodeList = getRootNodeList();
|
|
22867
|
-
_setNodeAttribute(rootNodeList, 0, '', null);
|
|
22868
|
-
};
|
|
22869
|
-
/**
|
|
22870
|
-
* 拖拽排序:同级节点间排序(dragSort 模式)
|
|
22871
|
-
* 直接操作 children 数组:移除源节点 -> 插入到目标节点前/后
|
|
22872
|
-
*/
|
|
22873
|
-
var dragSortData = function dragSortData(sourceNodeData, targetNodeData, willInsertAfter, savedOpenStates) {
|
|
22874
|
-
var sourceParent = getParentNode(sourceNodeData);
|
|
22875
|
-
var targetParent = getParentNode(targetNodeData);
|
|
22876
|
-
// 只允许同父节点下排序
|
|
22877
|
-
if (props.dragSortMode === 'next' && sourceParent !== targetParent) return;
|
|
22878
|
-
// 1. 从原位置移除
|
|
22879
|
-
removeFromParentChildren(sourceNodeData, sourceParent);
|
|
22880
|
-
// 2. 获取目标所在的 children 数组
|
|
22881
|
-
var targetChildren;
|
|
22882
|
-
if (!targetParent) {
|
|
22883
|
-
targetChildren = props.data;
|
|
22884
|
-
} else {
|
|
22885
|
-
targetChildren = targetParent[props.children];
|
|
22886
|
-
if (!targetChildren) {
|
|
22887
|
-
targetParent[props.children] = [];
|
|
22888
|
-
targetChildren = targetParent[props.children];
|
|
22889
|
-
}
|
|
22890
|
-
}
|
|
22891
|
-
// 3. 在目标节点前/后插入源节点
|
|
22892
|
-
var targetIndexInParent = targetChildren.indexOf(targetNodeData);
|
|
22893
|
-
var insertIndex = willInsertAfter ? targetIndexInParent + 1 : targetIndexInParent;
|
|
22894
|
-
targetChildren.splice(insertIndex, 0, sourceNodeData);
|
|
22895
|
-
// 4. 重新构建 flatData 并计算属性
|
|
22896
|
-
rebuildFlatData();
|
|
22897
|
-
recalculateNodeAttributes();
|
|
22898
|
-
// 5. 更新源父节点的 HAS_CHILD
|
|
22899
|
-
updateHasChildAttr(sourceParent);
|
|
22900
|
-
// 6. 恢复展开状态
|
|
22901
|
-
restoreAllOpenStates(savedOpenStates);
|
|
22902
|
-
ctx.emit(EVENTS.NODE_DRAG_SORT, {
|
|
22903
|
-
sourceNode: sourceNodeData,
|
|
22904
|
-
targetNode: targetNodeData
|
|
22905
|
-
});
|
|
22906
|
-
};
|
|
22907
|
-
/**
|
|
22908
|
-
* 将源节点作为目标节点的子节点
|
|
22909
|
-
* 直接操作 children 数组:移除源节点 -> push 到目标节点 children
|
|
22910
|
-
*/
|
|
22911
|
-
var dragAsChildNode = function dragAsChildNode(sourceNodeData, targetNodeData, savedOpenStates) {
|
|
22912
|
-
var sourceParent = getParentNode(sourceNodeData);
|
|
22913
|
-
// 1. 从原位置移除
|
|
22914
|
-
removeFromParentChildren(sourceNodeData, sourceParent);
|
|
22915
|
-
// 2. 初始化目标节点的 children 并 push
|
|
22916
|
-
if (!targetNodeData[props.children]) {
|
|
22917
|
-
targetNodeData[props.children] = [];
|
|
22918
|
-
}
|
|
22919
|
-
targetNodeData[props.children].push(sourceNodeData);
|
|
22920
|
-
// 3. 重新构建 flatData 并计算属性
|
|
22921
|
-
rebuildFlatData();
|
|
22922
|
-
recalculateNodeAttributes();
|
|
22923
|
-
// 4. 更新属性
|
|
22924
|
-
updateHasChildAttr(sourceParent);
|
|
22925
|
-
setNodeAttr(targetNodeData, NODE_ATTRIBUTES.HAS_CHILD, true);
|
|
22926
|
-
// 5. 恢复展开状态
|
|
22927
|
-
restoreAllOpenStates(savedOpenStates);
|
|
22928
|
-
ctx.emit(EVENTS.NODE_DROP, sourceNodeData, targetNodeData, 'child');
|
|
22929
|
-
};
|
|
22930
|
-
/**
|
|
22931
|
-
* 将源节点作为目标节点的同级节点插入(可跨级)
|
|
22932
|
-
* 直接操作 children 数组:移除源节点 -> 在目标节点前/后插入
|
|
22933
|
-
*/
|
|
22934
|
-
var dragAsSiblingNode = function dragAsSiblingNode(sourceNodeData, targetNodeData, willInsertAfter, savedOpenStates) {
|
|
22935
|
-
var sourceParent = getParentNode(sourceNodeData);
|
|
22936
|
-
var targetParent = getParentNode(targetNodeData);
|
|
22937
|
-
// 1. 从原位置移除
|
|
22938
|
-
removeFromParentChildren(sourceNodeData, sourceParent);
|
|
22939
|
-
// 2. 获取目标所在的 children 数组
|
|
22940
|
-
var targetChildren;
|
|
22941
|
-
if (!targetParent) {
|
|
22942
|
-
targetChildren = props.data;
|
|
22943
|
-
} else {
|
|
22944
|
-
targetChildren = targetParent[props.children];
|
|
22945
|
-
if (!targetChildren) {
|
|
22946
|
-
targetParent[props.children] = [];
|
|
22947
|
-
targetChildren = targetParent[props.children];
|
|
22948
|
-
}
|
|
22949
|
-
}
|
|
22950
|
-
// 3. 在目标节点前/后插入源节点
|
|
22951
|
-
var targetIndexInParent = targetChildren.indexOf(targetNodeData);
|
|
22952
|
-
var insertIndex = willInsertAfter ? targetIndexInParent + 1 : targetIndexInParent;
|
|
22953
|
-
targetChildren.splice(insertIndex, 0, sourceNodeData);
|
|
22954
|
-
// 4. 重新构建 flatData 并计算属性
|
|
22955
|
-
rebuildFlatData();
|
|
22956
|
-
recalculateNodeAttributes();
|
|
22957
|
-
// 5. 更新属性
|
|
22958
|
-
updateHasChildAttr(sourceParent);
|
|
22959
|
-
updateHasChildAttr(targetParent);
|
|
22960
|
-
// 6. 恢复展开状态
|
|
22961
|
-
restoreAllOpenStates(savedOpenStates);
|
|
22962
|
-
ctx.emit(EVENTS.NODE_DROP, sourceNodeData, targetNodeData, 'move');
|
|
22963
|
-
};
|
|
22964
|
-
/**
|
|
22965
|
-
* 检查是否禁止拖拽
|
|
22966
|
-
*/
|
|
22967
22965
|
var isDragDisabled = function isDragDisabled(nodeId) {
|
|
22968
22966
|
var _props$disableDrag;
|
|
22969
22967
|
var nodeData = getSourceNodeByUID(nodeId);
|
|
22970
22968
|
if (!nodeData) return true;
|
|
22971
22969
|
if (isNeedCheckDraggable.value && (_props$disableDrag = props.disableDrag) !== null && _props$disableDrag !== void 0 && _props$disableDrag.call(props, nodeData)) return true;
|
|
22972
|
-
|
|
22970
|
+
return nodeData.draggable === false;
|
|
22971
|
+
};
|
|
22972
|
+
var isDescendantTarget = function isDescendantTarget(draggedData, relatedData) {
|
|
22973
|
+
var parent = getParentNode(relatedData);
|
|
22974
|
+
while (parent) {
|
|
22975
|
+
if (parent === draggedData) return true;
|
|
22976
|
+
parent = getParentNode(parent);
|
|
22977
|
+
}
|
|
22973
22978
|
return false;
|
|
22974
22979
|
};
|
|
22975
|
-
/**
|
|
22976
|
-
* 检查是否禁止放置
|
|
22977
|
-
*/
|
|
22978
22980
|
var isDropDisabled = function isDropDisabled(draggedId, relatedId, dropType) {
|
|
22979
22981
|
var _props$disableDrop;
|
|
22980
22982
|
var draggedData = getSourceNodeByUID(draggedId);
|
|
22981
22983
|
var relatedData = extendNodeAttr(getSourceNodeByUID(relatedId));
|
|
22982
|
-
if (
|
|
22983
|
-
return
|
|
22984
|
+
if (!draggedData || !relatedData) return true;
|
|
22985
|
+
return !!(isNeedCheckDroppable.value && (_props$disableDrop = props.disableDrop) !== null && _props$disableDrop !== void 0 && _props$disableDrop.call(props, draggedData, dropType, relatedData));
|
|
22984
22986
|
};
|
|
22985
|
-
/**
|
|
22986
|
-
* 恢复 sortablejs 的 DOM 操作
|
|
22987
|
-
* 因为我们由数据驱动 Vue 更新,需要先恢复 sortablejs 已做的 DOM 移动
|
|
22988
|
-
*/
|
|
22989
22987
|
var restoreSortableDOM = function restoreSortableDOM(evt) {
|
|
22990
22988
|
var item = evt.item,
|
|
22991
22989
|
from = evt.from,
|
|
22990
|
+
to = evt.to,
|
|
22992
22991
|
oldIndex = evt.oldIndex,
|
|
22993
22992
|
newIndex = evt.newIndex;
|
|
22994
|
-
if (oldIndex === undefined ||
|
|
22995
|
-
|
|
22993
|
+
if (oldIndex === undefined || !from) return;
|
|
22994
|
+
var sameContainer = from === to;
|
|
22995
|
+
if (sameContainer && oldIndex === newIndex) return;
|
|
22996
|
+
if (!sameContainer && to && item.parentNode === to) {
|
|
22997
|
+
to.removeChild(item);
|
|
22998
|
+
}
|
|
22999
|
+
if (sameContainer && newIndex !== undefined && newIndex < oldIndex) {
|
|
22996
23000
|
from.insertBefore(item, from.children[oldIndex + 1] || null);
|
|
22997
23001
|
} else {
|
|
22998
23002
|
from.insertBefore(item, from.children[oldIndex] || null);
|
|
22999
23003
|
}
|
|
23000
23004
|
};
|
|
23001
|
-
|
|
23002
|
-
|
|
23003
|
-
|
|
23005
|
+
var emitTreeDataChange = function emitTreeDataChange(payload) {
|
|
23006
|
+
var _options$onTreeDataCh;
|
|
23007
|
+
if (!payload) return null;
|
|
23008
|
+
(_options$onTreeDataCh = options.onTreeDataChange) === null || _options$onTreeDataCh === void 0 || _options$onTreeDataCh.call(options, payload);
|
|
23009
|
+
return payload;
|
|
23010
|
+
};
|
|
23011
|
+
var moveNode = function moveNode(sourceNodeData, targetNodeData, dropType) {
|
|
23012
|
+
var _options$getTreeData, _options$getTreeData2;
|
|
23013
|
+
var willInsertAfter = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : true;
|
|
23014
|
+
return emitTreeDataChange(moveTreeNodeById((_options$getTreeData = (_options$getTreeData2 = options.getTreeData) === null || _options$getTreeData2 === void 0 ? void 0 : _options$getTreeData2.call(options)) !== null && _options$getTreeData !== void 0 ? _options$getTreeData : props.data, "".concat(getNodeId(sourceNodeData)), "".concat(getNodeId(targetNodeData)), props.nodeKey || NODE_ATTRIBUTES.UUID, props.children, {
|
|
23015
|
+
dropType: dropType,
|
|
23016
|
+
willInsertAfter: willInsertAfter
|
|
23017
|
+
}));
|
|
23018
|
+
};
|
|
23019
|
+
var cleanup = function cleanup() {
|
|
23020
|
+
dragNodeId = '';
|
|
23021
|
+
currentDropType = 'move';
|
|
23022
|
+
currentRelatedId = '';
|
|
23023
|
+
currentRelatedEl = null;
|
|
23024
|
+
currentWillInsertAfter = true;
|
|
23025
|
+
isDragging.value = false;
|
|
23026
|
+
removeIndicator();
|
|
23027
|
+
};
|
|
23028
|
+
var destroySortable = function destroySortable() {
|
|
23029
|
+
var _sortableInstance;
|
|
23030
|
+
(_sortableInstance = sortableInstance) === null || _sortableInstance === void 0 || _sortableInstance.destroy();
|
|
23031
|
+
sortableInstance = null;
|
|
23032
|
+
};
|
|
23004
23033
|
var initSortable = function initSortable() {
|
|
23005
23034
|
if (!root.value) return;
|
|
23006
23035
|
var container = root.value.$el;
|
|
@@ -23015,125 +23044,121 @@ Sortable.mount(Remove, Revert);
|
|
|
23015
23044
|
filter: ".".concat(resolveClassName('tree-drag-disabled')),
|
|
23016
23045
|
onStart: function onStart(evt) {
|
|
23017
23046
|
var nodeId = evt.item.getAttribute('data-tree-node');
|
|
23018
|
-
if (!nodeId || isDragDisabled(nodeId))
|
|
23047
|
+
if (!nodeId || isDragDisabled(nodeId)) {
|
|
23048
|
+
return;
|
|
23049
|
+
}
|
|
23019
23050
|
dragNodeId = nodeId;
|
|
23020
|
-
isDragging.value = true;
|
|
23021
23051
|
currentDropType = props.dragSort ? 'sort' : 'move';
|
|
23022
23052
|
currentRelatedId = '';
|
|
23053
|
+
currentRelatedEl = null;
|
|
23023
23054
|
currentWillInsertAfter = true;
|
|
23024
|
-
|
|
23055
|
+
isDragging.value = true;
|
|
23056
|
+
ctx.emit(EVENTS.NODE_DRAG_START, extendNodeAttr(getSourceNodeByUID(nodeId)), evt);
|
|
23057
|
+
},
|
|
23058
|
+
onMove: function onMove(evt, originalEvent) {
|
|
23059
|
+
var _evt$willInsertAfter;
|
|
23060
|
+
var relatedEl = evt.related;
|
|
23061
|
+
var draggedEl = evt.dragged;
|
|
23062
|
+
var relatedId = relatedEl === null || relatedEl === void 0 ? void 0 : relatedEl.getAttribute('data-tree-node');
|
|
23063
|
+
var draggedId = draggedEl === null || draggedEl === void 0 ? void 0 : draggedEl.getAttribute('data-tree-node');
|
|
23064
|
+
if (!relatedId || !draggedId) return -1;
|
|
23065
|
+
var draggedData = getSourceNodeByUID(draggedId);
|
|
23066
|
+
var relatedData = getSourceNodeByUID(relatedId);
|
|
23067
|
+
if (!draggedData || !relatedData || draggedId === relatedId || isDescendantTarget(draggedData, relatedData)) {
|
|
23068
|
+
return -1;
|
|
23069
|
+
}
|
|
23070
|
+
var dropType = calcDropType(originalEvent.clientY, relatedEl);
|
|
23071
|
+
if (dropType === 'sort' && props.dragSortMode === 'next' && getParentNode(draggedData) !== getParentNode(relatedData)) {
|
|
23072
|
+
return -1;
|
|
23073
|
+
}
|
|
23074
|
+
if (isDropDisabled(draggedId, relatedId, dropType)) return -1;
|
|
23075
|
+
currentDropType = dropType;
|
|
23076
|
+
currentRelatedId = relatedId;
|
|
23077
|
+
currentRelatedEl = relatedEl;
|
|
23078
|
+
currentWillInsertAfter = (_evt$willInsertAfter = evt.willInsertAfter) !== null && _evt$willInsertAfter !== void 0 ? _evt$willInsertAfter : true;
|
|
23079
|
+
updateIndicator(relatedEl, dropType, currentWillInsertAfter);
|
|
23080
|
+
ctx.emit(EVENTS.NODE_DRAG_OVER, extendNodeAttr(relatedData), originalEvent, relatedEl);
|
|
23081
|
+
return true;
|
|
23025
23082
|
},
|
|
23026
23083
|
onEnd: function onEnd(evt) {
|
|
23027
|
-
// 恢复 sortablejs 的 DOM 移动,由数据驱动 Vue 更新
|
|
23028
23084
|
restoreSortableDOM(evt);
|
|
23029
|
-
// 隐藏指示器
|
|
23030
23085
|
hideIndicator();
|
|
23031
|
-
|
|
23032
|
-
var
|
|
23033
|
-
|
|
23086
|
+
var sourceNodeData = getSourceNodeByUID(dragNodeId);
|
|
23087
|
+
var targetNodeData = getSourceNodeByUID(currentRelatedId);
|
|
23088
|
+
var targetEl = currentRelatedEl;
|
|
23089
|
+
if (!sourceNodeData || !targetNodeData || !targetEl || dragNodeId === currentRelatedId) {
|
|
23034
23090
|
cleanup();
|
|
23035
23091
|
return;
|
|
23036
23092
|
}
|
|
23037
|
-
|
|
23038
|
-
var targetNodeData = getSourceNodeByUID(targetNodeId);
|
|
23039
|
-
if (!sourceNodeData || !targetNodeData) {
|
|
23093
|
+
if (isDropDisabled(dragNodeId, currentRelatedId, currentDropType)) {
|
|
23040
23094
|
cleanup();
|
|
23041
23095
|
return;
|
|
23042
23096
|
}
|
|
23043
|
-
|
|
23097
|
+
var payload = moveNode(sourceNodeData, targetNodeData, currentDropType, currentWillInsertAfter);
|
|
23098
|
+
if (!payload) {
|
|
23044
23099
|
cleanup();
|
|
23045
23100
|
return;
|
|
23046
23101
|
}
|
|
23047
|
-
|
|
23048
|
-
|
|
23049
|
-
|
|
23050
|
-
|
|
23051
|
-
|
|
23052
|
-
|
|
23053
|
-
|
|
23054
|
-
|
|
23055
|
-
|
|
23056
|
-
|
|
23102
|
+
if (currentDropType === 'sort') {
|
|
23103
|
+
var dragSortPayload = {
|
|
23104
|
+
sourceNode: sourceNodeData,
|
|
23105
|
+
targetNode: targetNodeData,
|
|
23106
|
+
sourceIndex: payload.sourceIndex,
|
|
23107
|
+
targetIndex: payload.targetIndex,
|
|
23108
|
+
data: payload.data,
|
|
23109
|
+
parentNode: payload.parentNode,
|
|
23110
|
+
oldParentNode: payload.oldParentNode,
|
|
23111
|
+
dropType: payload.dropType
|
|
23112
|
+
};
|
|
23113
|
+
ctx.emit(EVENTS.NODE_DRAG_SORT, dragSortPayload);
|
|
23057
23114
|
}
|
|
23058
|
-
var
|
|
23059
|
-
|
|
23115
|
+
var dropPayload = {
|
|
23116
|
+
event: evt,
|
|
23117
|
+
element: targetEl,
|
|
23118
|
+
targetNode: extendNodeAttr(targetNodeData),
|
|
23119
|
+
sourceNode: sourceNodeData,
|
|
23120
|
+
data: payload.data,
|
|
23121
|
+
parentNode: payload.parentNode,
|
|
23122
|
+
oldParentNode: payload.oldParentNode,
|
|
23123
|
+
dropType: payload.dropType,
|
|
23124
|
+
sourceIndex: payload.sourceIndex,
|
|
23125
|
+
targetIndex: payload.targetIndex
|
|
23126
|
+
};
|
|
23127
|
+
ctx.emit(EVENTS.NODE_DROP, dropPayload);
|
|
23060
23128
|
cleanup();
|
|
23061
23129
|
},
|
|
23062
|
-
|
|
23063
|
-
var _evt$
|
|
23064
|
-
var
|
|
23065
|
-
var
|
|
23066
|
-
|
|
23067
|
-
|
|
23068
|
-
if (!relatedId || !draggedId) return -1;
|
|
23069
|
-
// 不能拖到自己的子节点中
|
|
23070
|
-
var draggedData = getSourceNodeByUID(draggedId);
|
|
23071
|
-
if (draggedData) {
|
|
23072
|
-
var relatedData = getSourceNodeByUID(relatedId);
|
|
23073
|
-
var parent = getParentNode(relatedData);
|
|
23074
|
-
while (parent) {
|
|
23075
|
-
if (parent === draggedData) return -1;
|
|
23076
|
-
parent = getParentNode(parent);
|
|
23077
|
-
}
|
|
23078
|
-
}
|
|
23079
|
-
// 使用 originalEvent 坐标实时计算放置类型
|
|
23080
|
-
var clientY = originalEvent.clientY;
|
|
23081
|
-
var dropType = calcDropType(clientY, relatedEl);
|
|
23082
|
-
// dragSort 模式下:如果源节点和目标节点不同父且 dragSortMode === 'next',禁止放置
|
|
23083
|
-
if (dropType === 'sort' && props.dragSortMode === 'next') {
|
|
23084
|
-
var sourceParent = getParentNode(getSourceNodeByUID(draggedId));
|
|
23085
|
-
var targetParent = getParentNode(getSourceNodeByUID(relatedId));
|
|
23086
|
-
if (sourceParent !== targetParent) return -1;
|
|
23130
|
+
onUnchoose: function onUnchoose(evt) {
|
|
23131
|
+
var _evt$item;
|
|
23132
|
+
var nodeId = ((_evt$item = evt.item) === null || _evt$item === void 0 ? void 0 : _evt$item.getAttribute('data-tree-node')) || dragNodeId;
|
|
23133
|
+
var nodeData = nodeId ? getSourceNodeByUID(nodeId) : null;
|
|
23134
|
+
if (nodeData) {
|
|
23135
|
+
ctx.emit(EVENTS.NODE_DRAG_LEAVE, extendNodeAttr(nodeData), evt);
|
|
23087
23136
|
}
|
|
23088
|
-
// 检查是否禁止放置
|
|
23089
|
-
if (isDropDisabled(draggedId, relatedId, dropType)) return -1;
|
|
23090
|
-
// 记录当前放置信息,供 onEnd 消费
|
|
23091
|
-
// evt.willInsertAfter 是 sortablejs 提供的原生属性,
|
|
23092
|
-
// 表示拖拽元素将被插入到目标元素之后(true)还是之前(false)
|
|
23093
|
-
currentDropType = dropType;
|
|
23094
|
-
currentRelatedId = relatedId;
|
|
23095
|
-
currentWillInsertAfter = (_evt$willInsertAfter = evt.willInsertAfter) !== null && _evt$willInsertAfter !== void 0 ? _evt$willInsertAfter : true;
|
|
23096
|
-
// 使用 overlay 指示器显示放置位置
|
|
23097
|
-
updateIndicator(relatedEl, dropType, currentWillInsertAfter);
|
|
23098
|
-
ctx.emit(EVENTS.NODE_DRAG_OVER, originalEvent, relatedEl, extendNodeAttr(getSourceNodeByUID(relatedId)));
|
|
23099
|
-
return true;
|
|
23100
23137
|
}
|
|
23101
23138
|
});
|
|
23102
23139
|
};
|
|
23103
|
-
|
|
23104
|
-
|
|
23105
|
-
|
|
23106
|
-
|
|
23107
|
-
|
|
23108
|
-
|
|
23109
|
-
sortableInstance = null;
|
|
23110
|
-
}
|
|
23111
|
-
};
|
|
23112
|
-
/**
|
|
23113
|
-
* 清理拖拽状态
|
|
23114
|
-
* 拖拽结束后移除节点的选中状态,避免拖拽完毕节点保持选中
|
|
23115
|
-
*/
|
|
23116
|
-
var cleanup = function cleanup() {
|
|
23117
|
-
if (dragNodeId) {
|
|
23118
|
-
var dragNode = getSourceNodeByUID(dragNodeId);
|
|
23119
|
-
if (dragNode) {
|
|
23120
|
-
setNodeAttr(dragNode, NODE_ATTRIBUTES.IS_SELECTED, false);
|
|
23121
|
-
}
|
|
23140
|
+
var syncSortable = function syncSortable() {
|
|
23141
|
+
if (props.draggable || props.dragSort) {
|
|
23142
|
+
initSortable();
|
|
23143
|
+
} else {
|
|
23144
|
+
destroySortable();
|
|
23145
|
+
removeIndicator();
|
|
23122
23146
|
}
|
|
23123
|
-
dragNodeId = '';
|
|
23124
|
-
currentDropType = 'move';
|
|
23125
|
-
currentRelatedId = '';
|
|
23126
|
-
currentWillInsertAfter = true;
|
|
23127
|
-
isDragging.value = false;
|
|
23128
|
-
removeIndicator();
|
|
23129
23147
|
};
|
|
23130
23148
|
(0,external_vue_namespaceObject.onMounted)(function () {
|
|
23131
|
-
if (
|
|
23149
|
+
if (props.draggable || props.dragSort) {
|
|
23132
23150
|
(0,external_vue_namespaceObject.nextTick)(function () {
|
|
23133
|
-
initSortable();
|
|
23151
|
+
return initSortable();
|
|
23134
23152
|
});
|
|
23135
23153
|
}
|
|
23136
23154
|
});
|
|
23155
|
+
(0,external_vue_namespaceObject.watch)(function () {
|
|
23156
|
+
return [props.draggable, props.dragSort];
|
|
23157
|
+
}, function () {
|
|
23158
|
+
return (0,external_vue_namespaceObject.nextTick)(function () {
|
|
23159
|
+
return syncSortable();
|
|
23160
|
+
});
|
|
23161
|
+
});
|
|
23137
23162
|
(0,external_vue_namespaceObject.onUnmounted)(function () {
|
|
23138
23163
|
destroySortable();
|
|
23139
23164
|
removeIndicator();
|
|
@@ -23380,6 +23405,9 @@ var use_tree_init_this = undefined;
|
|
|
23380
23405
|
var outputData = [];
|
|
23381
23406
|
var order = 0;
|
|
23382
23407
|
var treeSchema = new WeakMap();
|
|
23408
|
+
var nodeMap = new Map();
|
|
23409
|
+
var childMap = new WeakMap();
|
|
23410
|
+
var rootNodes = [];
|
|
23383
23411
|
/**
|
|
23384
23412
|
* 递归更新节点属性
|
|
23385
23413
|
* @param node 当前节点
|
|
@@ -23399,7 +23427,7 @@ var use_tree_init_this = undefined;
|
|
|
23399
23427
|
if (target[attrName] === attrValue) {
|
|
23400
23428
|
return;
|
|
23401
23429
|
}
|
|
23402
|
-
Object.assign(target,
|
|
23430
|
+
Object.assign(target, defineProperty_defineProperty({}, attrName, attrValue));
|
|
23403
23431
|
loopUpdateNodeAttr(target[NODE_ATTRIBUTES.PARENT], attrName, attrValue, callFn);
|
|
23404
23432
|
}
|
|
23405
23433
|
}
|
|
@@ -23417,7 +23445,7 @@ var use_tree_init_this = undefined;
|
|
|
23417
23445
|
* 如果传入数据没有设置相关属性值
|
|
23418
23446
|
* 这里会自动生成
|
|
23419
23447
|
*/
|
|
23420
|
-
var cachedDefaultVal =
|
|
23448
|
+
var cachedDefaultVal = defineProperty_defineProperty(defineProperty_defineProperty(defineProperty_defineProperty(defineProperty_defineProperty(defineProperty_defineProperty(defineProperty_defineProperty(defineProperty_defineProperty({}, NODE_ATTRIBUTES.IS_OPEN, function () {
|
|
23421
23449
|
return !!props.expandAll;
|
|
23422
23450
|
}), NODE_ATTRIBUTES.IS_CHECKED, function () {
|
|
23423
23451
|
return false;
|
|
@@ -23522,6 +23550,12 @@ var use_tree_init_this = undefined;
|
|
|
23522
23550
|
var currentPath = path !== null ? "".concat(path, "-").concat(i) : "".concat(i);
|
|
23523
23551
|
var uuid = "".concat(getUid(item));
|
|
23524
23552
|
var hasChildren = !!(item[children] || []).length;
|
|
23553
|
+
if (!props.nodeKey) {
|
|
23554
|
+
item[NODE_ATTRIBUTES.UUID] = uuid;
|
|
23555
|
+
}
|
|
23556
|
+
if (nodeMap.has(uuid)) {
|
|
23557
|
+
console.warn("[bk-tree] duplicate node key \"".concat(uuid, "\" found, please check nodeKey."));
|
|
23558
|
+
}
|
|
23525
23559
|
/**
|
|
23526
23560
|
* 当前节点设置是否为展开状态
|
|
23527
23561
|
*/
|
|
@@ -23540,12 +23574,20 @@ var use_tree_init_this = undefined;
|
|
|
23540
23574
|
*/
|
|
23541
23575
|
isOpened = isNodeOpend(uuid, item, parent);
|
|
23542
23576
|
}
|
|
23543
|
-
var attributes = (_attributes = {},
|
|
23577
|
+
var attributes = (_attributes = {}, defineProperty_defineProperty(defineProperty_defineProperty(defineProperty_defineProperty(defineProperty_defineProperty(defineProperty_defineProperty(defineProperty_defineProperty(defineProperty_defineProperty(defineProperty_defineProperty(defineProperty_defineProperty(defineProperty_defineProperty(_attributes, NODE_ATTRIBUTES.DEPTH, depth), NODE_ATTRIBUTES.INDEX, order), NODE_ATTRIBUTES.UUID, uuid), NODE_ATTRIBUTES.PARENT, parent), NODE_ATTRIBUTES.HAS_CHILD, hasChildren), NODE_ATTRIBUTES.PATH, currentPath), NODE_ATTRIBUTES.IS_ROOT, parent === null), NODE_ATTRIBUTES.ORDER, order), NODE_ATTRIBUTES.IS_SELECTED, isCachedTreeNodeSelected(uuid, item)), NODE_ATTRIBUTES.IS_MATCH, getCachedTreeNodeAttr(uuid, item, NODE_ATTRIBUTES.IS_MATCH)), defineProperty_defineProperty(defineProperty_defineProperty(defineProperty_defineProperty(defineProperty_defineProperty(defineProperty_defineProperty(defineProperty_defineProperty(_attributes, NODE_ATTRIBUTES.IS_OPEN, isOpened), NODE_ATTRIBUTES.IS_CHECKED, undefined), NODE_ATTRIBUTES.IS_CACHED, getCachedTreeNodeAttr(uuid, item, NODE_ATTRIBUTES.IS_CACHED)), NODE_ATTRIBUTES.IS_ASYNC, getCachedTreeNodeAttr(uuid, item, NODE_ATTRIBUTES.IS_ASYNC)), NODE_ATTRIBUTES.IS_LOADING, getCachedTreeNodeAttr(uuid, item, NODE_ATTRIBUTES.IS_LOADING)), NODE_ATTRIBUTES.IS_INDETERMINATE, false));
|
|
23544
23578
|
attributes[NODE_ATTRIBUTES.IS_CHECKED] = isCheckedNode(item, uuid, attributes);
|
|
23545
23579
|
if (attributes[NODE_ATTRIBUTES.IS_CHECKED]) {
|
|
23546
23580
|
checkedList.push(item);
|
|
23547
23581
|
}
|
|
23548
23582
|
treeSchema.set(item, attributes);
|
|
23583
|
+
nodeMap.set(uuid, item);
|
|
23584
|
+
if (parent === null) {
|
|
23585
|
+
rootNodes.push(item);
|
|
23586
|
+
} else {
|
|
23587
|
+
var siblings = childMap.get(parent) || [];
|
|
23588
|
+
siblings.push(item);
|
|
23589
|
+
childMap.set(parent, siblings);
|
|
23590
|
+
}
|
|
23549
23591
|
outputData.push(item);
|
|
23550
23592
|
order += 1;
|
|
23551
23593
|
if (Object.prototype.hasOwnProperty.call(item, children)) {
|
|
@@ -23561,7 +23603,7 @@ var use_tree_init_this = undefined;
|
|
|
23561
23603
|
loopUpdateNodeAttr(value, NODE_ATTRIBUTES.IS_CHECKED, true, loopUpdateCheckedEvent);
|
|
23562
23604
|
});
|
|
23563
23605
|
}
|
|
23564
|
-
return [outputData, treeSchema];
|
|
23606
|
+
return [outputData, treeSchema, nodeMap, childMap, rootNodes];
|
|
23565
23607
|
};
|
|
23566
23608
|
var formatData = getFlatdata();
|
|
23567
23609
|
var nextLoopEvents = new Map();
|
|
@@ -23574,6 +23616,9 @@ var use_tree_init_this = undefined;
|
|
|
23574
23616
|
var flatData = (0,external_vue_namespaceObject.reactive)({
|
|
23575
23617
|
data: formatData[0],
|
|
23576
23618
|
schema: formatData[1],
|
|
23619
|
+
nodeMap: formatData[2],
|
|
23620
|
+
childMap: formatData[3],
|
|
23621
|
+
rootNodes: formatData[4],
|
|
23577
23622
|
levelLineSchema: {}
|
|
23578
23623
|
});
|
|
23579
23624
|
var _useNodeAsync = use_node_async(props, flatData),
|
|
@@ -23644,13 +23689,20 @@ var use_tree_init_this = undefined;
|
|
|
23644
23689
|
/**
|
|
23645
23690
|
* 监听组件配置Data改变
|
|
23646
23691
|
*/
|
|
23692
|
+
var rebuildData = function rebuildData(treeData) {
|
|
23693
|
+
var cachedSchema = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : flatData.schema;
|
|
23694
|
+
var formatData = getFlatdata(treeData, cachedSchema);
|
|
23695
|
+
flatData.data = formatData[0];
|
|
23696
|
+
flatData.schema = formatData[1];
|
|
23697
|
+
flatData.nodeMap = formatData[2];
|
|
23698
|
+
flatData.childMap = formatData[3];
|
|
23699
|
+
flatData.rootNodes = formatData[4];
|
|
23700
|
+
};
|
|
23647
23701
|
(0,external_vue_namespaceObject.watch)(function () {
|
|
23648
23702
|
return [props.data];
|
|
23649
23703
|
}, function (newData) {
|
|
23650
23704
|
var _props$async, _props$async2;
|
|
23651
|
-
|
|
23652
|
-
flatData.data = formatData[0];
|
|
23653
|
-
flatData.schema = formatData[1];
|
|
23705
|
+
rebuildData(newData[0], flatData.schema);
|
|
23654
23706
|
if ((_props$async = props.async) !== null && _props$async !== void 0 && _props$async.callback && ((_props$async2 = props.async) === null || _props$async2 === void 0 ? void 0 : _props$async2.deepAutoOpen) === 'every') {
|
|
23655
23707
|
deepAutoOpen();
|
|
23656
23708
|
}
|
|
@@ -23698,6 +23750,7 @@ var use_tree_init_this = undefined;
|
|
|
23698
23750
|
deepAutoOpen: deepAutoOpen,
|
|
23699
23751
|
afterDataUpdate: afterDataUpdate,
|
|
23700
23752
|
registerNextLoop: registerNextLoop,
|
|
23753
|
+
rebuildData: rebuildData,
|
|
23701
23754
|
onSelected: onSelected
|
|
23702
23755
|
};
|
|
23703
23756
|
});
|
|
@@ -23751,9 +23804,11 @@ var use_tree_init_this = undefined;
|
|
|
23751
23804
|
emits: TreeEmitEventsType,
|
|
23752
23805
|
setup: function setup(props, ctx) {
|
|
23753
23806
|
var root = (0,external_vue_namespaceObject.ref)();
|
|
23807
|
+
var treeDataRef = (0,external_vue_namespaceObject.ref)(props.data);
|
|
23754
23808
|
var _useTreeInit = use_tree_init(props),
|
|
23755
23809
|
flatData = _useTreeInit.flatData,
|
|
23756
23810
|
onSelected = _useTreeInit.onSelected,
|
|
23811
|
+
rebuildData = _useTreeInit.rebuildData,
|
|
23757
23812
|
registerNextLoop = _useTreeInit.registerNextLoop;
|
|
23758
23813
|
var _useNodeAttribute = use_node_attribute(flatData, props),
|
|
23759
23814
|
checkNodeIsOpen = _useNodeAttribute.checkNodeIsOpen,
|
|
@@ -23809,7 +23864,18 @@ var use_tree_init_this = undefined;
|
|
|
23809
23864
|
var _useIntersectionObser = use_intersection_observer(props),
|
|
23810
23865
|
getLastVisibleElement = _useIntersectionObser.getLastVisibleElement,
|
|
23811
23866
|
intersectionObserver = _useIntersectionObser.intersectionObserver;
|
|
23867
|
+
var onTreeDataChange = function onTreeDataChange(payload) {
|
|
23868
|
+
var _payload$data, _props$onDataChange;
|
|
23869
|
+
treeDataRef.value = (_payload$data = payload.data) !== null && _payload$data !== void 0 ? _payload$data : [];
|
|
23870
|
+
rebuildData(treeDataRef.value);
|
|
23871
|
+
ctx.emit(EVENTS.NODE_DATA_CHANGE, payload);
|
|
23872
|
+
(_props$onDataChange = props.onDataChange) === null || _props$onDataChange === void 0 || _props$onDataChange.call(props, payload);
|
|
23873
|
+
};
|
|
23812
23874
|
var _useNodeAction = use_node_action(props, ctx, flatData, renderData, {
|
|
23875
|
+
getTreeData: function getTreeData() {
|
|
23876
|
+
return treeDataRef.value;
|
|
23877
|
+
},
|
|
23878
|
+
onTreeDataChange: onTreeDataChange,
|
|
23813
23879
|
registerNextLoop: registerNextLoop
|
|
23814
23880
|
}),
|
|
23815
23881
|
renderTreeNode = _useNodeAction.renderTreeNode,
|
|
@@ -23896,6 +23962,11 @@ var use_tree_init_this = undefined;
|
|
|
23896
23962
|
onSelected(function (newData) {
|
|
23897
23963
|
setSelect(newData, true, props.autoOpenParentNode, true);
|
|
23898
23964
|
});
|
|
23965
|
+
(0,external_vue_namespaceObject.watch)(function () {
|
|
23966
|
+
return props.data;
|
|
23967
|
+
}, function (value) {
|
|
23968
|
+
treeDataRef.value = value;
|
|
23969
|
+
});
|
|
23899
23970
|
/**
|
|
23900
23971
|
* 根据最新的schema生成最新的Tree结构数据
|
|
23901
23972
|
* @returns
|
|
@@ -24020,7 +24091,12 @@ var use_tree_init_this = undefined;
|
|
|
24020
24091
|
});
|
|
24021
24092
|
var _useEmpty = use_empty(props),
|
|
24022
24093
|
renderEmpty = _useEmpty.renderEmpty;
|
|
24023
|
-
use_node_drag(props, ctx, root, flatData
|
|
24094
|
+
use_node_drag(props, ctx, root, flatData, {
|
|
24095
|
+
getTreeData: function getTreeData() {
|
|
24096
|
+
return treeDataRef.value;
|
|
24097
|
+
},
|
|
24098
|
+
onTreeDataChange: onTreeDataChange
|
|
24099
|
+
});
|
|
24024
24100
|
var renderTreeContent = function renderTreeContent(scopedData) {
|
|
24025
24101
|
var _ctx$slots$empty, _ctx$slots$empty2, _ctx$slots;
|
|
24026
24102
|
if (scopedData.length) {
|