@vtx/components 3.1.117 → 3.1.119
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.
|
@@ -38,7 +38,9 @@ function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
|
|
|
38
38
|
function VtxCard(props) {
|
|
39
39
|
var title = props.title,
|
|
40
40
|
_props$expand = props.expand,
|
|
41
|
-
expand = _props$expand === void 0 ? true : _props$expand
|
|
41
|
+
expand = _props$expand === void 0 ? true : _props$expand,
|
|
42
|
+
extra = props.extra,
|
|
43
|
+
onExpandChange = props.onExpandChange;
|
|
42
44
|
|
|
43
45
|
var _useState = (0, _react.useState)(expand),
|
|
44
46
|
_useState2 = _slicedToArray(_useState, 2),
|
|
@@ -53,10 +55,20 @@ function VtxCard(props) {
|
|
|
53
55
|
};
|
|
54
56
|
}
|
|
55
57
|
|
|
58
|
+
(0, _react.useEffect)(function () {
|
|
59
|
+
onExpandChange && onExpandChange(visible);
|
|
60
|
+
}, [visible]);
|
|
56
61
|
return /*#__PURE__*/_react["default"].createElement(_card["default"], {
|
|
57
62
|
title: title,
|
|
58
63
|
className: "vtx-form-card",
|
|
59
|
-
extra: /*#__PURE__*/_react["default"].createElement(
|
|
64
|
+
extra: extra ? /*#__PURE__*/_react["default"].createElement("span", {
|
|
65
|
+
className: "vtx-form-card-custom-icon",
|
|
66
|
+
onClick: function onClick() {
|
|
67
|
+
return setVisible(function (pre) {
|
|
68
|
+
return !pre;
|
|
69
|
+
});
|
|
70
|
+
}
|
|
71
|
+
}, extra) : /*#__PURE__*/_react["default"].createElement(_RightOutlined["default"], {
|
|
60
72
|
className: "vtx-form-card-expand-icon",
|
|
61
73
|
style: style,
|
|
62
74
|
onClick: function onClick() {
|
|
@@ -75,7 +87,9 @@ function VtxCard(props) {
|
|
|
75
87
|
VtxCard.propTypes = {
|
|
76
88
|
expand: _propTypes["default"].bool,
|
|
77
89
|
title: _propTypes["default"].oneOfType([_propTypes["default"].string, _propTypes["default"].node]),
|
|
78
|
-
children: _propTypes["default"].node
|
|
90
|
+
children: _propTypes["default"].node,
|
|
91
|
+
extra: _propTypes["default"].node,
|
|
92
|
+
onExpandChange: _propTypes["default"].func
|
|
79
93
|
};
|
|
80
94
|
var _default = VtxCard;
|
|
81
95
|
exports["default"] = _default;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Card.js","names":["VtxCard","props","title","expand","useState","visible","setVisible","style","transform","pre","classnames","children","propTypes","PropTypes","bool","oneOfType","string","node"],"sources":["vtx-form-layout/Card.jsx"],"sourcesContent":["import React, { useState } from 'react';\nimport PropTypes from 'prop-types';\nimport classnames from 'classnames';\nimport Card from 'antd/lib/card';\nimport RightOutlined from '@ant-design/icons/RightOutlined';\n\nfunction VtxCard(props) {\n const { title, expand = true } = props;\n const [visible, setVisible] = useState(expand);\n let style = {};\n if (visible) {\n style = { transform: 'rotate(90deg)' };\n }\n return (\n <Card\n title={title}\n className=\"vtx-form-card\"\n extra={\n <RightOutlined\n className=\"vtx-form-card-expand-icon\"\n style={style}\n onClick={() => setVisible(pre => !pre)}\n />\n }\n >\n <div\n className={classnames('vtx-form-card-content', {\n 'vtx-form-card-content-hide': !visible,\n })}\n >\n {props.children}\n </div>\n </Card>\n );\n}\n\nVtxCard.propTypes = {\n expand: PropTypes.bool,\n title: PropTypes.oneOfType([PropTypes.string, PropTypes.node]),\n children: PropTypes.node,\n};\n\nexport default VtxCard;\n"],"mappings":";;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;;;;;;;;;;;;;;;;;;;AAEA,SAASA,OAAT,CAAiBC,KAAjB,EAAwB;EACpB,IAAQC,KAAR,
|
|
1
|
+
{"version":3,"file":"Card.js","names":["VtxCard","props","title","expand","extra","onExpandChange","useState","visible","setVisible","style","transform","useEffect","pre","classnames","children","propTypes","PropTypes","bool","oneOfType","string","node","func"],"sources":["vtx-form-layout/Card.jsx"],"sourcesContent":["import React, { useEffect, useState } from 'react';\nimport PropTypes from 'prop-types';\nimport classnames from 'classnames';\nimport Card from 'antd/lib/card';\nimport RightOutlined from '@ant-design/icons/RightOutlined';\n\nfunction VtxCard(props) {\n const { title, expand = true, extra, onExpandChange } = props;\n const [visible, setVisible] = useState(expand);\n let style = {};\n if (visible) {\n style = { transform: 'rotate(90deg)' };\n }\n\n useEffect(()=>{\n onExpandChange && onExpandChange(visible);\n }, [visible])\n return (\n <Card\n title={title}\n className=\"vtx-form-card\"\n extra={\n extra?\n <span className='vtx-form-card-custom-icon' onClick={() => setVisible(pre => !pre)}>{extra}</span>\n :\n <RightOutlined\n className=\"vtx-form-card-expand-icon\"\n style={style}\n onClick={() => setVisible(pre => !pre)}\n />\n }\n >\n <div\n className={classnames('vtx-form-card-content', {\n 'vtx-form-card-content-hide': !visible,\n })}\n >\n {props.children}\n </div>\n </Card>\n );\n}\n\nVtxCard.propTypes = {\n expand: PropTypes.bool,\n title: PropTypes.oneOfType([PropTypes.string, PropTypes.node]),\n children: PropTypes.node,\n extra: PropTypes.node,\n onExpandChange: PropTypes.func,\n};\n\nexport default VtxCard;\n"],"mappings":";;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;;;;;;;;;;;;;;;;;;;AAEA,SAASA,OAAT,CAAiBC,KAAjB,EAAwB;EACpB,IAAQC,KAAR,GAAwDD,KAAxD,CAAQC,KAAR;EAAA,oBAAwDD,KAAxD,CAAeE,MAAf;EAAA,IAAeA,MAAf,8BAAwB,IAAxB;EAAA,IAA8BC,KAA9B,GAAwDH,KAAxD,CAA8BG,KAA9B;EAAA,IAAqCC,cAArC,GAAwDJ,KAAxD,CAAqCI,cAArC;;EACA,gBAA8B,IAAAC,eAAA,EAASH,MAAT,CAA9B;EAAA;EAAA,IAAOI,OAAP;EAAA,IAAgBC,UAAhB;;EACA,IAAIC,KAAK,GAAG,EAAZ;;EACA,IAAIF,OAAJ,EAAa;IACTE,KAAK,GAAG;MAAEC,SAAS,EAAE;IAAb,CAAR;EACH;;EAED,IAAAC,gBAAA,EAAU,YAAI;IACVN,cAAc,IAAIA,cAAc,CAACE,OAAD,CAAhC;EACH,CAFD,EAEG,CAACA,OAAD,CAFH;EAGA,oBACI,gCAAC,gBAAD;IACI,KAAK,EAAEL,KADX;IAEI,SAAS,EAAC,eAFd;IAGI,KAAK,EACDE,KAAK,gBACD;MAAM,SAAS,EAAC,2BAAhB;MAA4C,OAAO,EAAE;QAAA,OAAMI,UAAU,CAAC,UAAAI,GAAG;UAAA,OAAI,CAACA,GAAL;QAAA,CAAJ,CAAhB;MAAA;IAArD,GAAqFR,KAArF,CADC,gBAGL,gCAAC,yBAAD;MACI,SAAS,EAAC,2BADd;MAEI,KAAK,EAAEK,KAFX;MAGI,OAAO,EAAE;QAAA,OAAMD,UAAU,CAAC,UAAAI,GAAG;UAAA,OAAI,CAACA,GAAL;QAAA,CAAJ,CAAhB;MAAA;IAHb;EAPR,gBAcI;IACI,SAAS,EAAE,IAAAC,sBAAA,EAAW,uBAAX,EAAoC;MAC3C,8BAA8B,CAACN;IADY,CAApC;EADf,GAKKN,KAAK,CAACa,QALX,CAdJ,CADJ;AAwBH;;AAEDd,OAAO,CAACe,SAAR,GAAoB;EAChBZ,MAAM,EAAEa,qBAAA,CAAUC,IADF;EAEhBf,KAAK,EAAEc,qBAAA,CAAUE,SAAV,CAAoB,CAACF,qBAAA,CAAUG,MAAX,EAAmBH,qBAAA,CAAUI,IAA7B,CAApB,CAFS;EAGhBN,QAAQ,EAAEE,qBAAA,CAAUI,IAHJ;EAIhBhB,KAAK,EAAEY,qBAAA,CAAUI,IAJD;EAKhBf,cAAc,EAAEW,qBAAA,CAAUK;AALV,CAApB;eAQerB,O"}
|
|
@@ -114,6 +114,10 @@
|
|
|
114
114
|
color: rgba(0, 0, 0, 0.75);
|
|
115
115
|
transition: transform 0.24s, -webkit-transform 0.24s;
|
|
116
116
|
}
|
|
117
|
+
.vtx-form-layout .vtx-form-card-custom-icon {
|
|
118
|
+
transition: transform 0.24s, -webkit-transform 0.24s;
|
|
119
|
+
cursor: pointer;
|
|
120
|
+
}
|
|
117
121
|
.vtx-form-layout .vtx-form-card .ant-card-body {
|
|
118
122
|
padding: 0;
|
|
119
123
|
}
|
package/lib/vtx-tree/index.js
CHANGED
|
@@ -17,6 +17,8 @@ var _icons = require("@ant-design/icons");
|
|
|
17
17
|
|
|
18
18
|
var _utils = require("./utils");
|
|
19
19
|
|
|
20
|
+
var _ahooks = require("ahooks");
|
|
21
|
+
|
|
20
22
|
var _excluded = ["prefixCls", "showSearch", "treeData", "searchPlaceholder", "renderMenuList", "fieldNames"];
|
|
21
23
|
|
|
22
24
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
|
|
@@ -77,7 +79,7 @@ var getParentKey = function getParentKey(key, tree) {
|
|
|
77
79
|
return parentKey;
|
|
78
80
|
};
|
|
79
81
|
|
|
80
|
-
var VtxTree = function VtxTree(_ref) {
|
|
82
|
+
var VtxTree = function VtxTree(_ref, ref) {
|
|
81
83
|
var _ref$prefixCls = _ref.prefixCls,
|
|
82
84
|
prefixCls = _ref$prefixCls === void 0 ? 'vtx-tree' : _ref$prefixCls,
|
|
83
85
|
_ref$showSearch = _ref.showSearch,
|
|
@@ -165,10 +167,9 @@ var VtxTree = function VtxTree(_ref) {
|
|
|
165
167
|
}
|
|
166
168
|
};
|
|
167
169
|
|
|
168
|
-
var
|
|
170
|
+
var onSearch = (0, _ahooks.useMemoizedFn)(function (value) {
|
|
169
171
|
var _props$onExpand2;
|
|
170
172
|
|
|
171
|
-
var value = e.target.value;
|
|
172
173
|
var newExpandedKeys = dataList.map(function (item) {
|
|
173
174
|
if (item.title.indexOf(value) > -1) {
|
|
174
175
|
return getParentKey(item.key, treeData);
|
|
@@ -185,8 +186,12 @@ var VtxTree = function VtxTree(_ref) {
|
|
|
185
186
|
if (!('expandedKeys' in props)) {
|
|
186
187
|
setExpandedKeys(newExpandedKeys);
|
|
187
188
|
}
|
|
188
|
-
};
|
|
189
|
-
|
|
189
|
+
});
|
|
190
|
+
(0, _react.useImperativeHandle)(ref, function () {
|
|
191
|
+
return {
|
|
192
|
+
onSearch: onSearch
|
|
193
|
+
};
|
|
194
|
+
});
|
|
190
195
|
(0, _react.useEffect)(function () {
|
|
191
196
|
var resizeObserver = new ResizeObserver(function () {
|
|
192
197
|
setHeight(treeRef.current.offsetHeight);
|
|
@@ -288,7 +293,9 @@ var VtxTree = function VtxTree(_ref) {
|
|
|
288
293
|
marginBottom: 8
|
|
289
294
|
},
|
|
290
295
|
placeholder: searchPlaceholder,
|
|
291
|
-
onChange: onChange
|
|
296
|
+
onChange: function onChange(e) {
|
|
297
|
+
return onSearch(e.target.value);
|
|
298
|
+
}
|
|
292
299
|
}), /*#__PURE__*/_react["default"].createElement("div", {
|
|
293
300
|
className: prefixCls,
|
|
294
301
|
ref: treeRef
|
|
@@ -352,6 +359,8 @@ VtxTree.propTypes = {
|
|
|
352
359
|
renderMenuList: _propTypes["default"].func,
|
|
353
360
|
fieldNames: _propTypes["default"].array
|
|
354
361
|
};
|
|
355
|
-
|
|
362
|
+
|
|
363
|
+
var _default = /*#__PURE__*/(0, _react.forwardRef)(VtxTree);
|
|
364
|
+
|
|
356
365
|
exports["default"] = _default;
|
|
357
366
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["getParentKey","key","tree","parentKey","i","length","node","children","some","item","VtxTree","prefixCls","showSearch","treeData","searchPlaceholder","renderMenuList","fieldNames","props","treeRef","useRef","useState","height","setHeight","searchValue","setSearchValue","expandedKeys","setExpandedKeys","autoExpandParent","setAutoExpandParent","selectedKeys","defaultSelectedKeys","setSelectedKeys","lastSelectedKey","React","cachedSelectedKeys","dataList","useMemo","titleKey","title","generateList","data","push","useEffect","onExpand","newExpandedKeys","info","onChange","e","value","target","map","indexOf","filter","self","resizeObserver","ResizeObserver","current","offsetHeight","observe","box","disconnect","onSelect","keys","event","multiple","nativeEvent","newEvent","selected","ctrlPick","ctrlKey","metaKey","shiftPick","shiftKey","newSelectedKeys","selectedNodes","convertDirectoryKeysToNodes","Array","from","Set","calcRangeKeys","startKey","endKey","newTreeData","loop","strTitle","index","beforeStr","substring","afterStr","slice","marginBottom","showLeafIcon","nodeData","menuList","visible","label","stopPropagation","onClick","icon","propTypes","PropTypes","bool","string","array","func"],"sources":["vtx-tree/index.jsx"],"sourcesContent":["import React, { useEffect, useMemo, useRef, useState } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { Input, Tooltip, Tree } from 'antd';\r\nimport { DownOutlined } from '@ant-design/icons';\r\nimport { calcRangeKeys, convertDirectoryKeysToNodes } from './utils';\r\n\r\nconst getParentKey = (key, tree) => {\r\n let parentKey;\r\n for (let i = 0; i < tree.length; i++) {\r\n const node = tree[i];\r\n if (node.children) {\r\n if (node.children.some(item => item.key === key)) {\r\n parentKey = node.key;\r\n } else if (getParentKey(key, node.children)) {\r\n parentKey = getParentKey(key, node.children);\r\n }\r\n }\r\n }\r\n return parentKey;\r\n};\r\n\r\nconst VtxTree = ({\r\n prefixCls = 'vtx-tree',\r\n showSearch = true,\r\n treeData = [],\r\n searchPlaceholder = '请输入要查询的关键字',\r\n renderMenuList,\r\n fieldNames,\r\n ...props\r\n}) => {\r\n const treeRef = useRef();\r\n const [height, setHeight] = useState(0);\r\n const [searchValue, setSearchValue] = useState('');\r\n const [expandedKeys, setExpandedKeys] = useState([]);\r\n const [autoExpandParent, setAutoExpandParent] = useState(props.autoExpandParent || false);\r\n const [selectedKeys, setSelectedKeys] = useState(\r\n props.selectedKeys || props.defaultSelectedKeys || [],\r\n );\r\n\r\n const lastSelectedKey = React.useRef();\r\n\r\n const cachedSelectedKeys = React.useRef();\r\n\r\n const dataList = useMemo(() => {\r\n let dataList = [];\r\n const titleKey = fieldNames?.title || 'title';\r\n const generateList = data => {\r\n for (let i = 0; i < data.length; i++) {\r\n const node = data[i];\r\n const { key } = node;\r\n dataList.push({ key, title: node[titleKey] });\r\n if (node.children) {\r\n generateList(node.children);\r\n }\r\n }\r\n };\r\n generateList(treeData);\r\n return dataList;\r\n }, [treeData]);\r\n\r\n useEffect(() => {\r\n if ('selectedKeys' in props) {\r\n setSelectedKeys(props.selectedKeys);\r\n }\r\n }, [props.selectedKeys]);\r\n\r\n useEffect(() => {\r\n if ('expandedKeys' in props) {\r\n setExpandedKeys(props.expandedKeys);\r\n }\r\n }, [props.expandedKeys]);\r\n\r\n const onExpand = (newExpandedKeys, info) => {\r\n setAutoExpandParent(false);\r\n props.onExpand?.(newExpandedKeys, info);\r\n if (!('expandedKeys' in props)) {\r\n setExpandedKeys(newExpandedKeys);\r\n }\r\n };\r\n\r\n const onChange = e => {\r\n const { value } = e.target;\r\n const newExpandedKeys = dataList\r\n .map(item => {\r\n if (item.title.indexOf(value) > -1) {\r\n return getParentKey(item.key, treeData);\r\n }\r\n return null;\r\n })\r\n .filter((item, i, self) => item && self.indexOf(item) === i);\r\n setSearchValue(value);\r\n setAutoExpandParent(true);\r\n props.onExpand?.(newExpandedKeys);\r\n if (!('expandedKeys' in props)) {\r\n setExpandedKeys(newExpandedKeys);\r\n }\r\n };\r\n\r\n useEffect(() => {\r\n const resizeObserver = new ResizeObserver(() => {\r\n setHeight(treeRef.current.offsetHeight);\r\n });\r\n if (treeRef.current) {\r\n resizeObserver.observe(treeRef.current, {\r\n box: 'border-box',\r\n });\r\n }\r\n setHeight(treeRef.current.offsetHeight);\r\n return () => {\r\n resizeObserver.disconnect();\r\n }\r\n }, []);\r\n\r\n const onSelect = (keys, event) => {\r\n const { multiple } = props;\r\n const { node, nativeEvent } = event;\r\n const { key = '' } = node;\r\n // const newState: DirectoryTreeState = {};\r\n\r\n // We need wrap this event since some value is not same\r\n const newEvent = {\r\n ...event,\r\n selected: true, // Directory selected always true\r\n };\r\n\r\n // Windows / Mac single pick\r\n const ctrlPick = nativeEvent?.ctrlKey || nativeEvent?.metaKey;\r\n const shiftPick = nativeEvent?.shiftKey;\r\n\r\n // Generate new selected keys\r\n let newSelectedKeys;\r\n if (multiple && ctrlPick) {\r\n // Control click\r\n newSelectedKeys = keys;\r\n lastSelectedKey.current = key;\r\n cachedSelectedKeys.current = newSelectedKeys;\r\n newEvent.selectedNodes = convertDirectoryKeysToNodes(treeData, newSelectedKeys);\r\n } else if (multiple && shiftPick) {\r\n // Shift click\r\n newSelectedKeys = Array.from(\r\n new Set([\r\n ...(cachedSelectedKeys.current || []),\r\n ...calcRangeKeys({\r\n treeData,\r\n expandedKeys,\r\n startKey: key,\r\n endKey: lastSelectedKey.current,\r\n }),\r\n ]),\r\n );\r\n newEvent.selectedNodes = convertDirectoryKeysToNodes(treeData, newSelectedKeys);\r\n } else {\r\n // Single click\r\n newSelectedKeys = [key];\r\n lastSelectedKey.current = key;\r\n cachedSelectedKeys.current = newSelectedKeys;\r\n newEvent.selectedNodes = convertDirectoryKeysToNodes(treeData, newSelectedKeys);\r\n }\r\n\r\n props.onSelect?.(newSelectedKeys, newEvent);\r\n if (!('selectedKeys' in props)) {\r\n setSelectedKeys(newSelectedKeys);\r\n }\r\n };\r\n\r\n const newTreeData = useMemo(() => {\r\n const loop = data =>\r\n data.map(item => {\r\n const titleKey = fieldNames?.title || 'title';\r\n const strTitle = item[titleKey];\r\n const index = strTitle.indexOf(searchValue);\r\n const beforeStr = strTitle.substring(0, index);\r\n const afterStr = strTitle.slice(index + searchValue.length);\r\n const title =\r\n index > -1 ? (\r\n <span>\r\n {beforeStr}\r\n <span className={`${prefixCls}-search-value`}>{searchValue}</span>\r\n {afterStr}\r\n </span>\r\n ) : (\r\n <span>{strTitle}</span>\r\n );\r\n if (item.children) {\r\n return {\r\n ...item,\r\n [titleKey]: title,\r\n key: item.key,\r\n children: loop(item.children),\r\n };\r\n }\r\n\r\n return {\r\n ...item,\r\n [titleKey]: title,\r\n key: item.key,\r\n };\r\n });\r\n return loop(treeData);\r\n }, [treeData, searchValue]);\r\n return (\r\n <div className={`${prefixCls}-wraaper`}>\r\n {showSearch && (\r\n <Input\r\n style={{ marginBottom: 8 }}\r\n placeholder={searchPlaceholder}\r\n onChange={onChange}\r\n />\r\n )}\r\n <div className={prefixCls} ref={treeRef}>\r\n <Tree\r\n {...props}\r\n height={height}\r\n switcherIcon={<DownOutlined />}\r\n showLine={{ showLeafIcon: false }}\r\n blockNode\r\n treeData={newTreeData}\r\n onExpand={onExpand}\r\n expandedKeys={expandedKeys}\r\n autoExpandParent={autoExpandParent}\r\n selectedKeys={selectedKeys}\r\n onSelect={onSelect}\r\n expandAction=\"click\"\r\n titleRender={nodeData => {\r\n const titleKey = fieldNames?.title || 'title';\r\n const title = nodeData[titleKey];\r\n\r\n if (renderMenuList) {\r\n const menuList = renderMenuList(nodeData);\r\n return (\r\n <div className={`${prefixCls}-menu-wrap`}>\r\n <span>{title}</span>\r\n <div className={`${prefixCls}-menu-list`}>\r\n {menuList\r\n .filter(item => item.visible)\r\n .map(item => (\r\n <Tooltip key={item.label} title={item.label}>\r\n <span\r\n className={`${prefixCls}-menu-item-icon`}\r\n onClick={e => {\r\n e.stopPropagation();\r\n item.onClick && item.onClick(nodeData);\r\n }}\r\n >\r\n {item.icon}\r\n </span>\r\n </Tooltip>\r\n ))}\r\n </div>\r\n </div>\r\n );\r\n }\r\n return title;\r\n }}\r\n />\r\n </div>\r\n </div>\r\n );\r\n};\r\n\r\nVtxTree.propTypes = {\r\n showSearch: PropTypes.bool,\r\n prefixCls: PropTypes.string,\r\n treeData: PropTypes.array,\r\n selectedKeys: PropTypes.array,\r\n defaultSelectedKeys: PropTypes.array,\r\n expandedKeys: PropTypes.bool,\r\n onExpand: PropTypes.func,\r\n multiple: PropTypes.bool,\r\n autoExpandParent: PropTypes.bool,\r\n onSelect: PropTypes.func,\r\n searchPlaceholder: PropTypes.string,\r\n renderMenuList: PropTypes.func,\r\n fieldNames: PropTypes.array,\r\n};\r\n\r\nexport default VtxTree;\r\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","names":["getParentKey","key","tree","parentKey","i","length","node","children","some","item","VtxTree","ref","prefixCls","showSearch","treeData","searchPlaceholder","renderMenuList","fieldNames","props","treeRef","useRef","useState","height","setHeight","searchValue","setSearchValue","expandedKeys","setExpandedKeys","autoExpandParent","setAutoExpandParent","selectedKeys","defaultSelectedKeys","setSelectedKeys","lastSelectedKey","React","cachedSelectedKeys","dataList","useMemo","titleKey","title","generateList","data","push","useEffect","onExpand","newExpandedKeys","info","onSearch","useMemoizedFn","value","map","indexOf","filter","self","useImperativeHandle","resizeObserver","ResizeObserver","current","offsetHeight","observe","box","disconnect","onSelect","keys","event","multiple","nativeEvent","newEvent","selected","ctrlPick","ctrlKey","metaKey","shiftPick","shiftKey","newSelectedKeys","selectedNodes","convertDirectoryKeysToNodes","Array","from","Set","calcRangeKeys","startKey","endKey","newTreeData","loop","strTitle","index","beforeStr","substring","afterStr","slice","marginBottom","e","target","showLeafIcon","nodeData","menuList","visible","label","stopPropagation","onClick","icon","propTypes","PropTypes","bool","string","array","func","forwardRef"],"sources":["vtx-tree/index.jsx"],"sourcesContent":["import React, { forwardRef, useEffect, useImperativeHandle, useMemo, useRef, useState } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { Input, Tooltip, Tree } from 'antd';\r\nimport { DownOutlined } from '@ant-design/icons';\r\nimport { calcRangeKeys, convertDirectoryKeysToNodes } from './utils';\r\nimport { useMemoizedFn } from 'ahooks';\r\n\r\nconst getParentKey = (key, tree) => {\r\n let parentKey;\r\n for (let i = 0; i < tree.length; i++) {\r\n const node = tree[i];\r\n if (node.children) {\r\n if (node.children.some(item => item.key === key)) {\r\n parentKey = node.key;\r\n } else if (getParentKey(key, node.children)) {\r\n parentKey = getParentKey(key, node.children);\r\n }\r\n }\r\n }\r\n return parentKey;\r\n};\r\n\r\nconst VtxTree = ({\r\n prefixCls = 'vtx-tree',\r\n showSearch = true,\r\n treeData = [],\r\n searchPlaceholder = '请输入要查询的关键字',\r\n renderMenuList,\r\n fieldNames,\r\n ...props\r\n}, ref) => {\r\n const treeRef = useRef();\r\n const [height, setHeight] = useState(0);\r\n const [searchValue, setSearchValue] = useState('');\r\n const [expandedKeys, setExpandedKeys] = useState([]);\r\n const [autoExpandParent, setAutoExpandParent] = useState(props.autoExpandParent || false);\r\n const [selectedKeys, setSelectedKeys] = useState(\r\n props.selectedKeys || props.defaultSelectedKeys || [],\r\n );\r\n\r\n const lastSelectedKey = React.useRef();\r\n\r\n const cachedSelectedKeys = React.useRef();\r\n\r\n const dataList = useMemo(() => {\r\n let dataList = [];\r\n const titleKey = fieldNames?.title || 'title';\r\n const generateList = data => {\r\n for (let i = 0; i < data.length; i++) {\r\n const node = data[i];\r\n const { key } = node;\r\n dataList.push({ key, title: node[titleKey] });\r\n if (node.children) {\r\n generateList(node.children);\r\n }\r\n }\r\n };\r\n generateList(treeData);\r\n return dataList;\r\n }, [treeData]);\r\n\r\n useEffect(() => {\r\n if ('selectedKeys' in props) {\r\n setSelectedKeys(props.selectedKeys);\r\n }\r\n }, [props.selectedKeys]);\r\n\r\n useEffect(() => {\r\n if ('expandedKeys' in props) {\r\n setExpandedKeys(props.expandedKeys);\r\n }\r\n }, [props.expandedKeys]);\r\n\r\n const onExpand = (newExpandedKeys, info) => {\r\n setAutoExpandParent(false);\r\n props.onExpand?.(newExpandedKeys, info);\r\n if (!('expandedKeys' in props)) {\r\n setExpandedKeys(newExpandedKeys);\r\n }\r\n };\r\n\r\n const onSearch = useMemoizedFn(value => {\r\n const newExpandedKeys = dataList\r\n .map(item => {\r\n if (item.title.indexOf(value) > -1) {\r\n return getParentKey(item.key, treeData);\r\n }\r\n return null;\r\n })\r\n .filter((item, i, self) => item && self.indexOf(item) === i);\r\n setSearchValue(value);\r\n setAutoExpandParent(true);\r\n props.onExpand?.(newExpandedKeys);\r\n if (!('expandedKeys' in props)) {\r\n setExpandedKeys(newExpandedKeys);\r\n }\r\n });\r\n\r\n useImperativeHandle(ref, () => ({\r\n onSearch,\r\n }));\r\n\r\n useEffect(() => {\r\n const resizeObserver = new ResizeObserver(() => {\r\n setHeight(treeRef.current.offsetHeight);\r\n });\r\n if (treeRef.current) {\r\n resizeObserver.observe(treeRef.current, {\r\n box: 'border-box',\r\n });\r\n }\r\n setHeight(treeRef.current.offsetHeight);\r\n return () => {\r\n resizeObserver.disconnect();\r\n }\r\n }, []);\r\n\r\n const onSelect = (keys, event) => {\r\n const { multiple } = props;\r\n const { node, nativeEvent } = event;\r\n const { key = '' } = node;\r\n // const newState: DirectoryTreeState = {};\r\n\r\n // We need wrap this event since some value is not same\r\n const newEvent = {\r\n ...event,\r\n selected: true, // Directory selected always true\r\n };\r\n\r\n // Windows / Mac single pick\r\n const ctrlPick = nativeEvent?.ctrlKey || nativeEvent?.metaKey;\r\n const shiftPick = nativeEvent?.shiftKey;\r\n\r\n // Generate new selected keys\r\n let newSelectedKeys;\r\n if (multiple && ctrlPick) {\r\n // Control click\r\n newSelectedKeys = keys;\r\n lastSelectedKey.current = key;\r\n cachedSelectedKeys.current = newSelectedKeys;\r\n newEvent.selectedNodes = convertDirectoryKeysToNodes(treeData, newSelectedKeys);\r\n } else if (multiple && shiftPick) {\r\n // Shift click\r\n newSelectedKeys = Array.from(\r\n new Set([\r\n ...(cachedSelectedKeys.current || []),\r\n ...calcRangeKeys({\r\n treeData,\r\n expandedKeys,\r\n startKey: key,\r\n endKey: lastSelectedKey.current,\r\n }),\r\n ]),\r\n );\r\n newEvent.selectedNodes = convertDirectoryKeysToNodes(treeData, newSelectedKeys);\r\n } else {\r\n // Single click\r\n newSelectedKeys = [key];\r\n lastSelectedKey.current = key;\r\n cachedSelectedKeys.current = newSelectedKeys;\r\n newEvent.selectedNodes = convertDirectoryKeysToNodes(treeData, newSelectedKeys);\r\n }\r\n\r\n props.onSelect?.(newSelectedKeys, newEvent);\r\n if (!('selectedKeys' in props)) {\r\n setSelectedKeys(newSelectedKeys);\r\n }\r\n };\r\n\r\n const newTreeData = useMemo(() => {\r\n const loop = data =>\r\n data.map(item => {\r\n const titleKey = fieldNames?.title || 'title';\r\n const strTitle = item[titleKey];\r\n const index = strTitle.indexOf(searchValue);\r\n const beforeStr = strTitle.substring(0, index);\r\n const afterStr = strTitle.slice(index + searchValue.length);\r\n const title =\r\n index > -1 ? (\r\n <span>\r\n {beforeStr}\r\n <span className={`${prefixCls}-search-value`}>{searchValue}</span>\r\n {afterStr}\r\n </span>\r\n ) : (\r\n <span>{strTitle}</span>\r\n );\r\n if (item.children) {\r\n return {\r\n ...item,\r\n [titleKey]: title,\r\n key: item.key,\r\n children: loop(item.children),\r\n };\r\n }\r\n\r\n return {\r\n ...item,\r\n [titleKey]: title,\r\n key: item.key,\r\n };\r\n });\r\n return loop(treeData);\r\n }, [treeData, searchValue]);\r\n return (\r\n <div className={`${prefixCls}-wraaper`}>\r\n {showSearch && (\r\n <Input\r\n style={{ marginBottom: 8 }}\r\n placeholder={searchPlaceholder}\r\n onChange={(e) => onSearch(e.target.value)}\r\n />\r\n )}\r\n <div className={prefixCls} ref={treeRef}>\r\n <Tree\r\n {...props}\r\n height={height}\r\n switcherIcon={<DownOutlined />}\r\n showLine={{ showLeafIcon: false }}\r\n blockNode\r\n treeData={newTreeData}\r\n onExpand={onExpand}\r\n expandedKeys={expandedKeys}\r\n autoExpandParent={autoExpandParent}\r\n selectedKeys={selectedKeys}\r\n onSelect={onSelect}\r\n expandAction=\"click\"\r\n titleRender={nodeData => {\r\n const titleKey = fieldNames?.title || 'title';\r\n const title = nodeData[titleKey];\r\n\r\n if (renderMenuList) {\r\n const menuList = renderMenuList(nodeData);\r\n return (\r\n <div className={`${prefixCls}-menu-wrap`}>\r\n <span>{title}</span>\r\n <div className={`${prefixCls}-menu-list`}>\r\n {menuList\r\n .filter(item => item.visible)\r\n .map(item => (\r\n <Tooltip key={item.label} title={item.label}>\r\n <span\r\n className={`${prefixCls}-menu-item-icon`}\r\n onClick={e => {\r\n e.stopPropagation();\r\n item.onClick && item.onClick(nodeData);\r\n }}\r\n >\r\n {item.icon}\r\n </span>\r\n </Tooltip>\r\n ))}\r\n </div>\r\n </div>\r\n );\r\n }\r\n return title;\r\n }}\r\n />\r\n </div>\r\n </div>\r\n );\r\n};\r\n\r\nVtxTree.propTypes = {\r\n showSearch: PropTypes.bool,\r\n prefixCls: PropTypes.string,\r\n treeData: PropTypes.array,\r\n selectedKeys: PropTypes.array,\r\n defaultSelectedKeys: PropTypes.array,\r\n expandedKeys: PropTypes.bool,\r\n onExpand: PropTypes.func,\r\n multiple: PropTypes.bool,\r\n autoExpandParent: PropTypes.bool,\r\n onSelect: PropTypes.func,\r\n searchPlaceholder: PropTypes.string,\r\n renderMenuList: PropTypes.func,\r\n fieldNames: PropTypes.array,\r\n};\r\n\r\nexport default forwardRef(VtxTree);\r\n"],"mappings":"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"}
|