bkui-vue 2.0.2-beta.3 → 2.0.2-beta.30
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/{style.css → cli.css} +1 -1
- package/dist/index.cjs.js +132 -132
- package/dist/index.esm.js +15752 -14466
- package/dist/index.umd.js +132 -132
- package/dist/style.variable.css +1 -1
- package/lib/cascader/cascader.d.ts +1 -0
- package/lib/cascader/index.d.ts +3 -0
- package/lib/cascader/index.js +97 -54
- package/lib/checkbox/index.js +1 -1
- package/lib/color-picker/index.js +20 -16
- package/lib/components.d.ts +1 -2
- package/lib/components.js +1 -2
- package/lib/date-picker/date-picker.css +220 -4
- package/lib/date-picker/date-picker.less +5 -5
- package/lib/date-picker/date-picker.variable.css +237 -21
- package/lib/date-picker/index.js +53 -58
- package/lib/date-picker/panel/time.d.ts +1 -1
- package/lib/date-picker/utils.d.ts +5 -17
- package/lib/directives/index.js +17 -13
- package/lib/form/form-item.d.ts +16 -0
- package/lib/form/index.d.ts +11 -0
- package/lib/form/index.js +26 -18
- package/lib/image/index.js +7 -10
- package/lib/index.d.ts +0 -1
- package/lib/index.js +1 -2
- package/lib/input/index.d.ts +39 -20
- package/lib/input/index.js +24 -21
- package/lib/input/input.d.ts +30 -16
- package/lib/message/index.js +1 -1
- package/lib/modal/index.js +2 -1
- package/lib/pop-confirm/index.d.ts +600 -2
- package/lib/pop-confirm/index.js +20 -8
- package/lib/pop-confirm/pop-confirm.d.ts +297 -1
- package/lib/pop-confirm/props.d.ts +146 -0
- package/lib/popover/index.js +7 -10
- package/lib/search-select/index.d.ts +3 -3
- package/lib/search-select/index.js +13 -20
- package/lib/search-select/search-select.d.ts +1 -1
- package/lib/select/index.d.ts +19 -0
- package/lib/select/index.js +15 -16
- package/lib/select/select.d.ts +10 -0
- package/lib/sideslider/index.js +3 -1
- package/lib/slider/index.js +2 -1
- package/lib/tab/index.js +7 -10
- package/lib/table/index.js +7 -15
- package/lib/tag-input/index.d.ts +3 -0
- package/lib/tag-input/index.js +35 -24
- package/lib/tag-input/tag-input.d.ts +1 -0
- package/lib/tree/index.d.ts +4 -0
- package/lib/tree/index.js +135 -55
- package/lib/tree/props.d.ts +1 -0
- package/lib/tree/tree.css +46 -0
- package/lib/tree/tree.d.ts +2 -0
- package/lib/tree/tree.less +57 -2
- package/lib/tree/tree.variable.css +46 -0
- package/lib/tree/use-node-action.d.ts +2 -2
- package/package.json +1 -1
- package/lib/plugin-popover/index.d.ts +0 -27
- package/lib/plugin-popover/index.js +0 -65
- package/lib/plugins/index.d.ts +0 -1
- package/lib/plugins/index.js +0 -64
package/lib/tree/index.js
CHANGED
@@ -12,6 +12,7 @@ import * as __WEBPACK_EXTERNAL_MODULE_lodash_isElement_e6b2a6ce__ from "lodash/i
|
|
12
12
|
import * as __WEBPACK_EXTERNAL_MODULE_bkui_vue_lib_checkbox_13b1cb4a__ from "../checkbox";
|
13
13
|
import "../checkbox/checkbox.less";
|
14
14
|
import * as __WEBPACK_EXTERNAL_MODULE_bkui_vue_lib_icon_a97c79c3__ from "../icon";
|
15
|
+
import * as __WEBPACK_EXTERNAL_MODULE_lodash_throttle_a7b7506a__ from "lodash/throttle";
|
15
16
|
/******/ // The require scope
|
16
17
|
/******/ var __webpack_require__ = {};
|
17
18
|
/******/
|
@@ -338,7 +339,12 @@ var treeProps = {
|
|
338
339
|
* 可选值:once 只在初始化是执行一次
|
339
340
|
* every 每次数据更新都执行
|
340
341
|
*/
|
341
|
-
deepAutoOpen: (0,external_vue_types_namespaceObject.toType)('columnType', {}).def(ColumnTypeEnum.ONCE)
|
342
|
+
deepAutoOpen: (0,external_vue_types_namespaceObject.toType)('columnType', {}).def(ColumnTypeEnum.ONCE),
|
343
|
+
/**
|
344
|
+
* 触发异步加载的时机
|
345
|
+
* 可选值:'expand', 'click', 'checked'
|
346
|
+
*/
|
347
|
+
trigger: shared_namespaceObject.PropTypes.arrayOf(shared_namespaceObject.PropTypes.oneOf(['expand', 'click', 'checked'])).def(null)
|
342
348
|
}),
|
343
349
|
/**
|
344
350
|
* 每个节点偏移左侧距离
|
@@ -835,10 +841,14 @@ const icon_namespaceObject = icon_x({ ["DownShape"]: () => __WEBPACK_EXTERNAL_MO
|
|
835
841
|
});
|
836
842
|
};
|
837
843
|
var getParentNodeData = function getParentNodeData(node) {
|
838
|
-
|
844
|
+
var target = node;
|
845
|
+
if (typeof target === 'string') {
|
846
|
+
target = getSourceNodeByUID(target);
|
847
|
+
}
|
848
|
+
if (isRootNode(target)) {
|
839
849
|
return _defineProperty({}, props.children, props.data);
|
840
850
|
}
|
841
|
-
return getParentNode(
|
851
|
+
return getParentNode(target);
|
842
852
|
};
|
843
853
|
/**
|
844
854
|
* 处理scoped slot 透传数据
|
@@ -1460,6 +1470,14 @@ var use_node_action_this = undefined;
|
|
1460
1470
|
deepUpdateChildNode(chid, attr, value);
|
1461
1471
|
});
|
1462
1472
|
};
|
1473
|
+
var isRemoteFnExec = function isRemoteFnExec(event) {
|
1474
|
+
var _props$async;
|
1475
|
+
if ((_props$async = props.async) !== null && _props$async !== void 0 && (_props$async = _props$async.trigger) !== null && _props$async !== void 0 && _props$async.length) {
|
1476
|
+
var _props$async2;
|
1477
|
+
return (_props$async2 = props.async) === null || _props$async2 === void 0 ? void 0 : _props$async2.trigger.includes(event);
|
1478
|
+
}
|
1479
|
+
return true;
|
1480
|
+
};
|
1463
1481
|
var handleNodeItemCheckboxChange = function handleNodeItemCheckboxChange(item, value, event) {
|
1464
1482
|
event === null || event === void 0 || event.preventDefault();
|
1465
1483
|
event === null || event === void 0 || event.stopImmediatePropagation();
|
@@ -1477,7 +1495,7 @@ var use_node_action_this = undefined;
|
|
1477
1495
|
}), flatData.data.filter(function (t) {
|
1478
1496
|
return isIndeterminate(t);
|
1479
1497
|
}));
|
1480
|
-
handleNodeContentClick(item, event);
|
1498
|
+
handleNodeContentClick(item, event, 'checked');
|
1481
1499
|
};
|
1482
1500
|
var isIndeterminate = function isIndeterminate(item) {
|
1483
1501
|
return isNodeChecked(item) && getNodeAttr(item, NODE_ATTRIBUTES.IS_INDETERMINATE);
|
@@ -1487,6 +1505,7 @@ var use_node_action_this = undefined;
|
|
1487
1505
|
return null;
|
1488
1506
|
}
|
1489
1507
|
return (0,external_vue_namespaceObject.createVNode)("span", {
|
1508
|
+
"class": "node-check-box",
|
1490
1509
|
"onClick": handleNodeCheckboxClick
|
1491
1510
|
}, [(0,external_vue_namespaceObject.createVNode)(checkbox_namespaceObject["default"], {
|
1492
1511
|
"indeterminate": isIndeterminate(item),
|
@@ -1586,25 +1605,27 @@ var use_node_action_this = undefined;
|
|
1586
1605
|
* 节点点击
|
1587
1606
|
* @param item
|
1588
1607
|
*/
|
1589
|
-
var handleTreeNodeClick = function handleTreeNodeClick(item, e) {
|
1608
|
+
var handleTreeNodeClick = function handleTreeNodeClick(item, e, event) {
|
1590
1609
|
var isOpen = isItemOpen(item);
|
1591
1610
|
if (isOpen) {
|
1592
1611
|
setNodeOpened(item, false, e, true);
|
1593
1612
|
return;
|
1594
1613
|
}
|
1595
|
-
|
1596
|
-
|
1597
|
-
|
1598
|
-
|
1599
|
-
|
1600
|
-
|
1601
|
-
|
1602
|
-
|
1603
|
-
|
1604
|
-
|
1605
|
-
|
1606
|
-
|
1607
|
-
|
1614
|
+
if (isRemoteFnExec(event)) {
|
1615
|
+
/** 如果是异步请求加载 */
|
1616
|
+
asyncNodeClick(item)["finally"](function () {
|
1617
|
+
if (getNodeAttr(item, NODE_ATTRIBUTES.IS_LOADING)) {
|
1618
|
+
registerNextLoop('setNodeOpenedAfterLoading', {
|
1619
|
+
type: 'once',
|
1620
|
+
fn: function fn() {
|
1621
|
+
return setNodeOpened(item, true, e, true);
|
1622
|
+
}
|
1623
|
+
});
|
1624
|
+
} else {
|
1625
|
+
setNodeOpened(item, true, e, true);
|
1626
|
+
}
|
1627
|
+
});
|
1628
|
+
}
|
1608
1629
|
};
|
1609
1630
|
/**
|
1610
1631
|
* 点击树形节点展开、收起图标处理事件
|
@@ -1615,7 +1636,7 @@ var use_node_action_this = undefined;
|
|
1615
1636
|
e.stopImmediatePropagation();
|
1616
1637
|
e.stopPropagation();
|
1617
1638
|
e.preventDefault();
|
1618
|
-
handleTreeNodeClick(node, e);
|
1639
|
+
handleTreeNodeClick(node, e, 'expand');
|
1619
1640
|
};
|
1620
1641
|
/**
|
1621
1642
|
* 设置节点选中状态
|
@@ -1629,6 +1650,7 @@ var use_node_action_this = undefined;
|
|
1629
1650
|
var selected = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;
|
1630
1651
|
var autoOpen = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;
|
1631
1652
|
var triggerEvent = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false;
|
1653
|
+
var event = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : '';
|
1632
1654
|
var nodeList = Array.isArray(nodes) ? nodes : [nodes];
|
1633
1655
|
if (!nodeList.length) {
|
1634
1656
|
return;
|
@@ -1673,12 +1695,14 @@ var use_node_action_this = undefined;
|
|
1673
1695
|
* 处理异步节点多层级展开选中
|
1674
1696
|
*/
|
1675
1697
|
if (getNodeAttr(resolvedItem, NODE_ATTRIBUTES.IS_ASYNC)) {
|
1676
|
-
|
1677
|
-
(
|
1678
|
-
|
1679
|
-
|
1698
|
+
if (isRemoteFnExec(event)) {
|
1699
|
+
asyncNodeClick(resolvedItem).then(function () {
|
1700
|
+
(0,external_vue_namespaceObject.nextTick)(function () {
|
1701
|
+
nodeList.shift();
|
1702
|
+
setSelect(nodeList, selected, autoOpen, triggerEvent, event);
|
1703
|
+
});
|
1680
1704
|
});
|
1681
|
-
}
|
1705
|
+
}
|
1682
1706
|
}
|
1683
1707
|
};
|
1684
1708
|
var resolveNodeAction = function resolveNodeAction(node) {
|
@@ -1699,19 +1723,19 @@ var use_node_action_this = undefined;
|
|
1699
1723
|
* 点击节点事件
|
1700
1724
|
* @param item
|
1701
1725
|
*/
|
1702
|
-
var handleNodeContentClick = function handleNodeContentClick(item, e) {
|
1726
|
+
var handleNodeContentClick = function handleNodeContentClick(item, e, event) {
|
1703
1727
|
var nodeActions = resolveNodeAction(item);
|
1704
1728
|
if (nodeActions.includes('selected')) {
|
1705
|
-
setSelect(item, true, true, true);
|
1729
|
+
setSelect(item, true, true, true, event);
|
1706
1730
|
}
|
1707
1731
|
if (nodeActions.includes('expand')) {
|
1708
1732
|
if (!isNodeOpened(item)) {
|
1709
|
-
handleTreeNodeClick(item, e);
|
1733
|
+
handleTreeNodeClick(item, e, event);
|
1710
1734
|
}
|
1711
1735
|
}
|
1712
1736
|
if (nodeActions.includes('collapse')) {
|
1713
1737
|
if (isNodeOpened(item)) {
|
1714
|
-
handleTreeNodeClick(item, e);
|
1738
|
+
handleTreeNodeClick(item, e, event);
|
1715
1739
|
}
|
1716
1740
|
}
|
1717
1741
|
if (nodeActions.includes('click')) {
|
@@ -1805,6 +1829,7 @@ var use_node_action_this = undefined;
|
|
1805
1829
|
var renderTreeNode = function renderTreeNode(item) {
|
1806
1830
|
var _ctx$slots$nodeAppend, _ctx$slots4;
|
1807
1831
|
var showTree = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;
|
1832
|
+
var child = getActionIcon(item);
|
1808
1833
|
return (0,external_vue_namespaceObject.createVNode)("div", {
|
1809
1834
|
"key": getNodeId(item),
|
1810
1835
|
"class": getNodeRowClass(item, flatData.schema),
|
@@ -1813,14 +1838,14 @@ var use_node_action_this = undefined;
|
|
1813
1838
|
"style": getNodeItemStyle(item, props, flatData, showTree),
|
1814
1839
|
"class": getNodeItemClass(item, flatData.schema, props, showTree),
|
1815
1840
|
"onClick": function onClick(e) {
|
1816
|
-
return handleNodeContentClick(item, e);
|
1841
|
+
return handleNodeContentClick(item, e, 'click');
|
1817
1842
|
}
|
1818
1843
|
}, [(0,external_vue_namespaceObject.createVNode)("div", {
|
1819
|
-
"class": [resolveClassName('node-action')],
|
1844
|
+
"class": [resolveClassName('node-action'), child ? '' : 'empty-child'],
|
1820
1845
|
"onClick": function onClick(e) {
|
1821
1846
|
return handleNodeActionClick(e, item);
|
1822
1847
|
}
|
1823
|
-
}, [
|
1848
|
+
}, [child]), (0,external_vue_namespaceObject.createVNode)("div", {
|
1824
1849
|
"class": resolveClassName('node-content')
|
1825
1850
|
}, [[getCheckboxRender(item), getNodePrefixIcon(item)], (0,external_vue_namespaceObject.createVNode)("span", {
|
1826
1851
|
"class": resolveClassName('node-text')
|
@@ -1839,6 +1864,10 @@ var use_node_action_this = undefined;
|
|
1839
1864
|
isIndeterminate: isIndeterminate
|
1840
1865
|
};
|
1841
1866
|
});
|
1867
|
+
;// CONCATENATED MODULE: external "lodash/throttle"
|
1868
|
+
var throttle_x = y => { var x = {}; __webpack_require__.d(x, y); return x; }
|
1869
|
+
var throttle_y = x => () => x
|
1870
|
+
const throttle_namespaceObject = throttle_x({ ["default"]: () => __WEBPACK_EXTERNAL_MODULE_lodash_throttle_a7b7506a__["default"] });
|
1842
1871
|
;// CONCATENATED MODULE: ../../packages/tree/src/use-node-drag.tsx
|
1843
1872
|
var use_node_drag_this = undefined;
|
1844
1873
|
/*
|
@@ -1870,6 +1899,7 @@ var use_node_drag_this = undefined;
|
|
1870
1899
|
|
1871
1900
|
|
1872
1901
|
|
1902
|
+
|
1873
1903
|
/* harmony default export */ const use_node_drag = (function (props, ctx, root, flatData) {
|
1874
1904
|
var _useNodeAttribute = use_node_attribute(flatData, props),
|
1875
1905
|
getSourceNodeByUID = _useNodeAttribute.getSourceNodeByUID,
|
@@ -1877,7 +1907,6 @@ var use_node_drag_this = undefined;
|
|
1877
1907
|
getNodeParentIdById = _useNodeAttribute.getNodeParentIdById,
|
1878
1908
|
extendNodeAttr = _useNodeAttribute.extendNodeAttr,
|
1879
1909
|
getNodeAttrById = _useNodeAttribute.getNodeAttrById,
|
1880
|
-
getNodePathById = _useNodeAttribute.getNodePathById,
|
1881
1910
|
isRootNode = _useNodeAttribute.isRootNode;
|
1882
1911
|
var _usePrefix = (0,config_provider_namespaceObject.usePrefix)(),
|
1883
1912
|
resolveClassName = _usePrefix.resolveClassName;
|
@@ -1888,6 +1917,8 @@ var use_node_drag_this = undefined;
|
|
1888
1917
|
return typeof props.disableDrop === 'function';
|
1889
1918
|
});
|
1890
1919
|
var dragNodeId = '';
|
1920
|
+
var draggedItem = null;
|
1921
|
+
var nodeRectMap = new WeakMap();
|
1891
1922
|
var getTargetTreeNode = function getTargetTreeNode(e) {
|
1892
1923
|
var target = e.target;
|
1893
1924
|
return target.closest('[data-tree-node]');
|
@@ -1911,10 +1942,45 @@ var use_node_drag_this = undefined;
|
|
1911
1942
|
targetNode.setAttribute('draggable', 'true');
|
1912
1943
|
targetNode.addEventListener('mouseup', handleTreeNodeMouseup);
|
1913
1944
|
};
|
1914
|
-
var
|
1945
|
+
var dropBefore = 'drop-before';
|
1946
|
+
var dropAfter = 'drop-after';
|
1947
|
+
var dropInner = 'drop-inner';
|
1948
|
+
var dragOverItem = null;
|
1949
|
+
var handleTreeNodeDragover = (0,throttle_namespaceObject["default"])(function (e) {
|
1915
1950
|
e.preventDefault();
|
1951
|
+
if (!draggedItem) return;
|
1916
1952
|
var targetNode = getTargetTreeNode(e);
|
1953
|
+
if (dragOverItem !== targetNode) {
|
1954
|
+
var _dragOverItem;
|
1955
|
+
(_dragOverItem = dragOverItem) === null || _dragOverItem === void 0 || _dragOverItem.classList.remove(dropBefore, dropAfter, dropInner);
|
1956
|
+
dragOverItem = targetNode;
|
1957
|
+
}
|
1917
1958
|
var data = extendNodeAttr(getNodeByTargetTreeNode(targetNode));
|
1959
|
+
if (!nodeRectMap.has(targetNode)) {
|
1960
|
+
nodeRectMap.set(targetNode, targetNode.getBoundingClientRect());
|
1961
|
+
}
|
1962
|
+
var clientY = e.clientY;
|
1963
|
+
var _nodeRectMap$get = nodeRectMap.get(targetNode),
|
1964
|
+
top = _nodeRectMap$get.top,
|
1965
|
+
height = _nodeRectMap$get.height;
|
1966
|
+
var threshold = height * 0.2;
|
1967
|
+
var offsetY = clientY - top;
|
1968
|
+
if (offsetY < threshold) {
|
1969
|
+
if (!targetNode.classList.contains(dropBefore)) {
|
1970
|
+
targetNode.classList.add(dropBefore);
|
1971
|
+
targetNode.classList.remove(dropAfter, dropInner);
|
1972
|
+
}
|
1973
|
+
} else if (offsetY > height - threshold) {
|
1974
|
+
if (!targetNode.classList.contains(dropAfter)) {
|
1975
|
+
targetNode.classList.add(dropAfter);
|
1976
|
+
targetNode.classList.remove(dropBefore, dropInner);
|
1977
|
+
}
|
1978
|
+
} else {
|
1979
|
+
if (!targetNode.classList.contains(dropInner)) {
|
1980
|
+
targetNode.classList.add(dropInner);
|
1981
|
+
targetNode.classList.remove(dropBefore, dropAfter);
|
1982
|
+
}
|
1983
|
+
}
|
1918
1984
|
ctx.emit(EVENTS.NODE_DRAG_OVER, e, targetNode, data);
|
1919
1985
|
if (isNeedCheckDroppable.value && props !== null && props !== void 0 && props.disableDrop(data)) {
|
1920
1986
|
e.dataTransfer.effectAllowed = 'move';
|
@@ -1929,7 +1995,7 @@ var use_node_drag_this = undefined;
|
|
1929
1995
|
var transferEffect = isNodeSortable(sourceNodeId, targetNodeId) ? 'move' : 'none';
|
1930
1996
|
e.dataTransfer.effectAllowed = transferEffect;
|
1931
1997
|
e.dataTransfer.dropEffect = transferEffect;
|
1932
|
-
};
|
1998
|
+
});
|
1933
1999
|
var handleTreeNodeDragStart = function handleTreeNodeDragStart(e) {
|
1934
2000
|
e.dataTransfer.effectAllowed = 'move';
|
1935
2001
|
e.dataTransfer.dropEffect = 'move';
|
@@ -1937,10 +2003,12 @@ var use_node_drag_this = undefined;
|
|
1937
2003
|
e.dataTransfer.setData('text/plain', '');
|
1938
2004
|
var nodeId = targetNode.getAttribute('data-tree-node');
|
1939
2005
|
dragNodeId = nodeId;
|
2006
|
+
draggedItem = targetNode;
|
1940
2007
|
e.dataTransfer.setData('node-id', nodeId);
|
1941
2008
|
ctx.emit(EVENTS.NODE_DRAG_START, e, targetNode);
|
1942
2009
|
};
|
1943
2010
|
var handleTreeNodeDrop = function handleTreeNodeDrop(e) {
|
2011
|
+
var _dragOverItem5;
|
1944
2012
|
/** firefox的drop事件必须调用preventDefault()和stopPropagation(), 否则会自动重定向 */
|
1945
2013
|
e.preventDefault();
|
1946
2014
|
e.stopPropagation();
|
@@ -1952,34 +2020,38 @@ var use_node_drag_this = undefined;
|
|
1952
2020
|
}
|
1953
2021
|
var sourceNodeId = dragNodeId; // e.dataTransfer.getData('node-id');
|
1954
2022
|
var targetNodeId = targetNode.getAttribute('data-tree-node');
|
1955
|
-
|
1956
|
-
|
2023
|
+
if (sourceNodeId !== targetNodeId) {
|
2024
|
+
var _dragOverItem2, _dragOverItem3, _dragOverItem4;
|
2025
|
+
if ((_dragOverItem2 = dragOverItem) !== null && _dragOverItem2 !== void 0 && _dragOverItem2.classList.contains(dropInner)) {
|
2026
|
+
Reflect.apply(dragAsChildNode, use_node_drag_this, [sourceNodeId, targetNodeId]);
|
2027
|
+
}
|
2028
|
+
if ((_dragOverItem3 = dragOverItem) !== null && _dragOverItem3 !== void 0 && _dragOverItem3.classList.contains(dropAfter) || (_dragOverItem4 = dragOverItem) !== null && _dragOverItem4 !== void 0 && _dragOverItem4.classList.contains(dropBefore)) {
|
2029
|
+
Reflect.apply(dragSortData, use_node_drag_this, [sourceNodeId, targetNodeId]);
|
2030
|
+
}
|
2031
|
+
ctx.emit(EVENTS.NODE_DROP, e, targetNode, data);
|
2032
|
+
}
|
2033
|
+
nodeRectMap = new WeakMap();
|
2034
|
+
(_dragOverItem5 = dragOverItem) === null || _dragOverItem5 === void 0 || _dragOverItem5.classList.remove(dropAfter, dropBefore, dropInner);
|
2035
|
+
dragOverItem = null;
|
1957
2036
|
};
|
1958
2037
|
var isNodeSortable = function isNodeSortable(sourceId, targetId) {
|
1959
|
-
|
1960
|
-
var targetPath = getNodePathById(targetId);
|
1961
|
-
// if (!sourcePath || targetPath) {
|
1962
|
-
// return false;
|
1963
|
-
// }
|
1964
|
-
var sourceParentNodeId = getNodeParentIdById(sourceId);
|
1965
|
-
var targetParentNode = getNodeParentIdById(targetId);
|
1966
|
-
if (sourceParentNodeId === targetParentNode) {
|
1967
|
-
return true;
|
1968
|
-
}
|
1969
|
-
return sourcePath.indexOf(targetPath) === -1 && targetPath.indexOf(sourcePath) === -1;
|
2038
|
+
return sourceId !== targetId;
|
1970
2039
|
};
|
1971
2040
|
var dragSortData = function dragSortData(sourceId, targetId) {
|
1972
|
-
|
2041
|
+
var _dragOverItem6;
|
2042
|
+
if (!props.dragSort || !isNodeSortable(sourceId, targetId)) {
|
1973
2043
|
return;
|
1974
2044
|
}
|
1975
|
-
var sourceNodeData =
|
1976
|
-
var targetNodeData = JSON.parse(JSON.stringify(getSourceNodeByUID(targetId)));
|
2045
|
+
var sourceNodeData = getSourceNodeByUID(sourceId);
|
1977
2046
|
var sourceNodeParent = getParentNodeData(sourceId);
|
1978
|
-
var targetNodeParent = getParentNodeData(targetId);
|
1979
2047
|
var sourceNodeIndex = getNodeAttrById(sourceId, NODE_ATTRIBUTES.INDEX);
|
2048
|
+
sourceNodeParent === null || sourceNodeParent === void 0 || sourceNodeParent[props.children].splice(sourceNodeIndex, 1);
|
1980
2049
|
var targetNodeIndex = getNodeAttrById(targetId, NODE_ATTRIBUTES.INDEX);
|
1981
|
-
|
1982
|
-
|
2050
|
+
if ((_dragOverItem6 = dragOverItem) !== null && _dragOverItem6 !== void 0 && _dragOverItem6.classList.contains(dropAfter)) {
|
2051
|
+
targetNodeIndex = targetNodeIndex + 1;
|
2052
|
+
}
|
2053
|
+
var targetNodeParent = getParentNodeData(targetId);
|
2054
|
+
targetNodeParent === null || targetNodeParent === void 0 || targetNodeParent[props.children].splice(targetNodeIndex, 0, sourceNodeData);
|
1983
2055
|
};
|
1984
2056
|
var dragAsChildNode = function dragAsChildNode(sourceNodeId, targetNodeId) {
|
1985
2057
|
var sourceNodeData = getSourceNodeByUID(sourceNodeId);
|
@@ -2005,10 +2077,11 @@ var use_node_drag_this = undefined;
|
|
2005
2077
|
e.preventDefault();
|
2006
2078
|
var targetNode = getTargetTreeNode(e);
|
2007
2079
|
targetNode.classList.remove("".concat(resolveClassName('tree-drop-active')), "".concat(resolveClassName('tree-drop-disabled')));
|
2080
|
+
targetNode.classList.remove(dropAfter, dropBefore, dropInner);
|
2008
2081
|
ctx.emit(EVENTS.NODE_DRAG_LEAVE, e, targetNode);
|
2009
2082
|
};
|
2010
2083
|
(0,external_vue_namespaceObject.onMounted)(function () {
|
2011
|
-
if (props.draggable && root.value) {
|
2084
|
+
if ((props.draggable || props.dragSort) && root.value) {
|
2012
2085
|
var rootTree = root.value.$el;
|
2013
2086
|
rootTree.addEventListener('mousedown', handleTreeNodeMousedown);
|
2014
2087
|
rootTree.addEventListener('dragstart', handleTreeNodeDragStart);
|
@@ -2018,7 +2091,7 @@ var use_node_drag_this = undefined;
|
|
2018
2091
|
}
|
2019
2092
|
});
|
2020
2093
|
(0,external_vue_namespaceObject.onUnmounted)(function () {
|
2021
|
-
if (props.draggable && root.value) {
|
2094
|
+
if ((props.draggable || props.dragSort) && root.value) {
|
2022
2095
|
var rootTree = root.value.$el;
|
2023
2096
|
rootTree.removeEventListener('mousedown', handleTreeNodeMousedown);
|
2024
2097
|
rootTree.removeEventListener('dragstart', handleTreeNodeDragStart);
|
@@ -2650,6 +2723,7 @@ var use_tree_init_this = undefined;
|
|
2650
2723
|
getNodePath = _useNodeAttribute.getNodePath,
|
2651
2724
|
getNodeId = _useNodeAttribute.getNodeId,
|
2652
2725
|
getNodeAttr = _useNodeAttribute.getNodeAttr,
|
2726
|
+
getNodeById = _useNodeAttribute.getNodeById,
|
2653
2727
|
getParentNode = _useNodeAttribute.getParentNode,
|
2654
2728
|
getIntersectionResponse = _useNodeAttribute.getIntersectionResponse;
|
2655
2729
|
var _useSearch = use_search(props),
|
@@ -2795,6 +2869,11 @@ var use_tree_init_this = undefined;
|
|
2795
2869
|
return;
|
2796
2870
|
}
|
2797
2871
|
};
|
2872
|
+
var setCheckedById = function setCheckedById(id) {
|
2873
|
+
var checked = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;
|
2874
|
+
var triggerEvent = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
|
2875
|
+
setChecked(getNodeById(id), checked, triggerEvent);
|
2876
|
+
};
|
2798
2877
|
ctx.expose({
|
2799
2878
|
handleTreeNodeClick: handleTreeNodeClick,
|
2800
2879
|
isNodeChecked: isNodeChecked,
|
@@ -2804,6 +2883,7 @@ var use_tree_init_this = undefined;
|
|
2804
2883
|
hasChildNode: hasChildNode,
|
2805
2884
|
setOpen: setOpen,
|
2806
2885
|
setChecked: setChecked,
|
2886
|
+
setCheckedById: setCheckedById,
|
2807
2887
|
setNodeAction: setNodeAction,
|
2808
2888
|
setNodeOpened: setOpen,
|
2809
2889
|
setSelect: setSelect,
|
package/lib/tree/props.d.ts
CHANGED
package/lib/tree/tree.css
CHANGED
@@ -257,13 +257,33 @@
|
|
257
257
|
}
|
258
258
|
.bk-tree {
|
259
259
|
font-size: 14px;
|
260
|
+
position: relative;
|
260
261
|
}
|
261
262
|
.bk-tree .bk-node-row {
|
262
263
|
padding-left: calc(var(--offset-left));
|
264
|
+
position: relative;
|
263
265
|
}
|
264
266
|
.bk-tree .bk-node-row.is-selected {
|
265
267
|
background-color: #ebf2ff;
|
266
268
|
}
|
269
|
+
.bk-tree .bk-node-row.drop-before::before {
|
270
|
+
content: '';
|
271
|
+
position: absolute;
|
272
|
+
top: 0;
|
273
|
+
left: 0;
|
274
|
+
right: 0;
|
275
|
+
height: 1px;
|
276
|
+
background-color: #2196F3;
|
277
|
+
}
|
278
|
+
.bk-tree .bk-node-row.drop-after::before {
|
279
|
+
content: '';
|
280
|
+
position: absolute;
|
281
|
+
bottom: 0;
|
282
|
+
left: 0;
|
283
|
+
right: 0;
|
284
|
+
height: 1px;
|
285
|
+
background-color: #2196F3;
|
286
|
+
}
|
267
287
|
.bk-tree-node {
|
268
288
|
position: relative;
|
269
289
|
display: flex;
|
@@ -276,6 +296,20 @@
|
|
276
296
|
.bk-tree-node:not(.is-root) {
|
277
297
|
margin-left: calc(var(--depth)*var(--indent));
|
278
298
|
}
|
299
|
+
.bk-tree-node:not(.is-root).level-line .bk-node-action.empty-child {
|
300
|
+
position: relative;
|
301
|
+
}
|
302
|
+
.bk-tree-node:not(.is-root).level-line .bk-node-action.empty-child::before {
|
303
|
+
position: absolute;
|
304
|
+
top: calc(50% + 1px);
|
305
|
+
left: 0;
|
306
|
+
right: 0;
|
307
|
+
z-index: 1;
|
308
|
+
height: 0;
|
309
|
+
pointer-events: none;
|
310
|
+
border-bottom: var(--level-line);
|
311
|
+
content: '';
|
312
|
+
}
|
279
313
|
.bk-tree-node:not(.is-root).level-line::before {
|
280
314
|
position: absolute;
|
281
315
|
top: calc(50% + 1px);
|
@@ -309,6 +343,7 @@
|
|
309
343
|
.bk-tree-node .bk-node-action {
|
310
344
|
margin-right: 6px;
|
311
345
|
color: #979ba5;
|
346
|
+
min-width: 14px;
|
312
347
|
}
|
313
348
|
.bk-tree-node .bk-tree-icon {
|
314
349
|
margin: 0 6px 0 4px;
|
@@ -319,6 +354,9 @@
|
|
319
354
|
align-items: center;
|
320
355
|
min-width: 0;
|
321
356
|
}
|
357
|
+
.bk-tree-node .bk-node-content .node-check-box {
|
358
|
+
display: inline-flex;
|
359
|
+
}
|
322
360
|
.bk-tree-node .bk-node-content .bk-checkbox {
|
323
361
|
margin: 0;
|
324
362
|
}
|
@@ -340,3 +378,11 @@
|
|
340
378
|
.bk-tree-drop-disabled .bk-tree-node {
|
341
379
|
cursor: no-drop;
|
342
380
|
}
|
381
|
+
.bk-tree .insert-line {
|
382
|
+
position: absolute;
|
383
|
+
height: 2px;
|
384
|
+
background: #2196F3;
|
385
|
+
display: none;
|
386
|
+
pointer-events: none;
|
387
|
+
z-index: 999;
|
388
|
+
}
|
package/lib/tree/tree.d.ts
CHANGED
@@ -49,6 +49,7 @@ declare const _default: import("vue").DefineComponent<{
|
|
49
49
|
}>>;
|
50
50
|
cache: boolean;
|
51
51
|
deepAutoOpen?: string;
|
52
|
+
trigger?: string[];
|
52
53
|
}>;
|
53
54
|
offsetLeft: import("vue-types").VueTypeValidableDef<number> & {
|
54
55
|
default: number;
|
@@ -186,6 +187,7 @@ declare const _default: import("vue").DefineComponent<{
|
|
186
187
|
}>>;
|
187
188
|
cache: boolean;
|
188
189
|
deepAutoOpen?: string;
|
190
|
+
trigger?: string[];
|
189
191
|
}>;
|
190
192
|
offsetLeft: import("vue-types").VueTypeValidableDef<number> & {
|
191
193
|
default: number;
|
package/lib/tree/tree.less
CHANGED
@@ -5,13 +5,38 @@
|
|
5
5
|
|
6
6
|
.@{bk-prefix}-tree {
|
7
7
|
font-size: 14px;
|
8
|
+
position: relative;
|
8
9
|
|
9
10
|
.@{bk-prefix}-node-row {
|
10
11
|
padding-left: calc(var(--offset-left));
|
12
|
+
position: relative;
|
11
13
|
|
12
14
|
&.is-selected {
|
13
15
|
background-color: #ebf2ff;
|
14
16
|
}
|
17
|
+
|
18
|
+
&.drop-before {
|
19
|
+
&::before {
|
20
|
+
content: '';
|
21
|
+
position: absolute;
|
22
|
+
top: 0;
|
23
|
+
left: 0;
|
24
|
+
right: 0;
|
25
|
+
height: 1px;
|
26
|
+
background-color: #2196F3;
|
27
|
+
}
|
28
|
+
}
|
29
|
+
&.drop-after {
|
30
|
+
&::before {
|
31
|
+
content: '';
|
32
|
+
position: absolute;
|
33
|
+
bottom: 0;
|
34
|
+
left: 0;
|
35
|
+
right: 0;
|
36
|
+
height: 1px;
|
37
|
+
background-color: #2196F3;
|
38
|
+
}
|
39
|
+
}
|
15
40
|
}
|
16
41
|
|
17
42
|
&-node {
|
@@ -27,6 +52,25 @@
|
|
27
52
|
margin-left: calc(var(--depth)*var(--indent));
|
28
53
|
|
29
54
|
&.level-line {
|
55
|
+
|
56
|
+
.@{bk-prefix}-node-action {
|
57
|
+
&.empty-child {
|
58
|
+
position: relative;
|
59
|
+
|
60
|
+
&::before {
|
61
|
+
position: absolute;
|
62
|
+
top: calc(50% + 1px);
|
63
|
+
left: 0;
|
64
|
+
right: 0;
|
65
|
+
z-index: 1;
|
66
|
+
height: 0;
|
67
|
+
pointer-events: none;
|
68
|
+
border-bottom: var(--level-line);
|
69
|
+
content: '';
|
70
|
+
}
|
71
|
+
}
|
72
|
+
}
|
73
|
+
|
30
74
|
&::before {
|
31
75
|
position: absolute;
|
32
76
|
top: calc(50% + 1px);
|
@@ -47,6 +91,7 @@
|
|
47
91
|
}
|
48
92
|
}
|
49
93
|
|
94
|
+
|
50
95
|
.node-virtual-line {
|
51
96
|
position: absolute;
|
52
97
|
top: -12px;
|
@@ -68,6 +113,7 @@
|
|
68
113
|
.@{bk-prefix}-node-action {
|
69
114
|
margin-right: 6px;
|
70
115
|
color: #979ba5;
|
116
|
+
min-width: 14px;
|
71
117
|
}
|
72
118
|
|
73
119
|
.@{bk-prefix}-tree-icon {
|
@@ -80,6 +126,10 @@
|
|
80
126
|
align-items: center;
|
81
127
|
min-width: 0;
|
82
128
|
|
129
|
+
.node-check-box {
|
130
|
+
display: inline-flex;
|
131
|
+
}
|
132
|
+
|
83
133
|
.@{bk-prefix}-checkbox {
|
84
134
|
margin: 0;
|
85
135
|
|
@@ -108,7 +158,12 @@
|
|
108
158
|
}
|
109
159
|
}
|
110
160
|
|
111
|
-
|
112
|
-
|
161
|
+
.insert-line {
|
162
|
+
position: absolute;
|
163
|
+
height: 2px;
|
164
|
+
background: #2196F3;
|
165
|
+
display: none;
|
166
|
+
pointer-events: none;
|
167
|
+
z-index: 999;
|
113
168
|
}
|
114
169
|
}
|