tntd 3.0.7 → 3.0.9-beta.1

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.
Files changed (189) hide show
  1. package/es/array-input/index.js +96 -9
  2. package/es/array-input/index.js.map +1 -1
  3. package/es/array-input/index.less +5 -0
  4. package/es/form/style/index.less +6 -0
  5. package/es/index.js +2 -0
  6. package/es/index.js.map +1 -1
  7. package/es/input/input.js +12 -8
  8. package/es/input/input.js.map +1 -1
  9. package/es/input-number/inputNumber.js +8 -3
  10. package/es/input-number/inputNumber.js.map +1 -1
  11. package/es/modal/index.less +1 -4
  12. package/es/modal/modal.less +18 -0
  13. package/es/prev-locale.js +10 -2
  14. package/es/prev-locale.js.map +1 -1
  15. package/es/query-form-v3/Field/Checkbox.js +23 -0
  16. package/es/query-form-v3/Field/Checkbox.js.map +1 -0
  17. package/es/query-form-v3/Field/Composition/FieldPopover.js +328 -0
  18. package/es/query-form-v3/Field/Composition/FieldPopover.js.map +1 -0
  19. package/es/query-form-v3/Field/Composition/FieldPopover.less +35 -0
  20. package/es/query-form-v3/Field/Composition/Select.js +107 -0
  21. package/es/query-form-v3/Field/Composition/Select.js.map +1 -0
  22. package/es/query-form-v3/Field/Composition/index.js +210 -0
  23. package/es/query-form-v3/Field/Composition/index.js.map +1 -0
  24. package/es/query-form-v3/Field/Composition/index.less +114 -0
  25. package/es/query-form-v3/Field/Composition/utils.js +132 -0
  26. package/es/query-form-v3/Field/Composition/utils.js.map +1 -0
  27. package/es/query-form-v3/Field/Select.js +59 -0
  28. package/es/query-form-v3/Field/Select.js.map +1 -0
  29. package/es/query-form-v3/Field/SelectInput.js +87 -0
  30. package/es/query-form-v3/Field/SelectInput.js.map +1 -0
  31. package/es/query-form-v3/Field/fieldsMap.js +28 -0
  32. package/es/query-form-v3/Field/fieldsMap.js.map +1 -0
  33. package/es/query-form-v3/Field/index.js +117 -0
  34. package/es/query-form-v3/Field/index.js.map +1 -0
  35. package/es/query-form-v3/createActions.js +47 -0
  36. package/es/query-form-v3/createActions.js.map +1 -0
  37. package/es/query-form-v3/index.js +172 -0
  38. package/es/query-form-v3/index.js.map +1 -0
  39. package/es/query-form-v3/index.less +90 -0
  40. package/es/query-form-v3/useForm.js +6 -0
  41. package/es/query-form-v3/useForm.js.map +1 -0
  42. package/es/query-list-scene/QueryForm.js +3 -1
  43. package/es/query-list-scene/QueryForm.js.map +1 -1
  44. package/es/query-list-scene/index.less +6 -0
  45. package/es/select/select.js +3 -1
  46. package/es/select/select.js.map +1 -1
  47. package/es/select/style/index.less +1 -1
  48. package/es/svg-components/illustration-offline.js +120 -84
  49. package/es/svg-components/illustration-offline.js.map +1 -1
  50. package/es/title/index.less +1 -1
  51. package/es/tntd-cascader/rc-cascader/Cascader.js +5 -1
  52. package/es/tntd-cascader/rc-cascader/Cascader.js.map +1 -1
  53. package/es/tntd-rc-select/index.js +4 -1
  54. package/es/tntd-rc-select/index.js.map +1 -1
  55. package/es/tntd-rc-select/style/index.less +4 -0
  56. package/es/tntd-select/index.js +3 -1
  57. package/es/tntd-select/index.js.map +1 -1
  58. package/es/tntd-virtual-tree/index.js +209 -0
  59. package/es/tntd-virtual-tree/index.js.map +1 -0
  60. package/es/tntd-virtual-tree/index.less +86 -0
  61. package/es/tntd-virtual-tree/utils.js +237 -0
  62. package/es/tntd-virtual-tree/utils.js.map +1 -0
  63. package/es/tntd-virtual-tree-select/VirtualTree.js +125 -0
  64. package/es/tntd-virtual-tree-select/VirtualTree.js.map +1 -0
  65. package/es/tntd-virtual-tree-select/index.js +65 -0
  66. package/es/tntd-virtual-tree-select/index.js.map +1 -0
  67. package/es/tntd-virtual-tree-select/index.less +3 -0
  68. package/es/tntd-virtual-tree-select/tree.less +29 -0
  69. package/es/tntd-virtual-tree-select/utils.js +135 -0
  70. package/es/tntd-virtual-tree-select/utils.js.map +1 -0
  71. package/lib/array-input/index.d.ts.map +1 -1
  72. package/lib/array-input/index.js +107 -13
  73. package/lib/array-input/index.js.map +1 -1
  74. package/lib/array-input/index.less +5 -0
  75. package/lib/form/style/index.less +6 -0
  76. package/lib/index.d.ts +2 -0
  77. package/lib/index.d.ts.map +1 -1
  78. package/lib/index.js +14 -0
  79. package/lib/index.js.map +1 -1
  80. package/lib/input/input.d.ts.map +1 -1
  81. package/lib/input/input.js +14 -6
  82. package/lib/input/input.js.map +1 -1
  83. package/lib/input-number/inputNumber.d.ts.map +1 -1
  84. package/lib/input-number/inputNumber.js +8 -2
  85. package/lib/input-number/inputNumber.js.map +1 -1
  86. package/lib/modal/index.less +1 -4
  87. package/lib/modal/modal.less +18 -0
  88. package/lib/prev-locale.d.ts +6 -0
  89. package/lib/prev-locale.d.ts.map +1 -1
  90. package/lib/prev-locale.js +10 -2
  91. package/lib/prev-locale.js.map +1 -1
  92. package/lib/query-form-v3/Field/Checkbox.d.ts +8 -0
  93. package/lib/query-form-v3/Field/Checkbox.d.ts.map +1 -0
  94. package/lib/query-form-v3/Field/Checkbox.js +28 -0
  95. package/lib/query-form-v3/Field/Checkbox.js.map +1 -0
  96. package/lib/query-form-v3/Field/Composition/FieldPopover.d.ts +19 -0
  97. package/lib/query-form-v3/Field/Composition/FieldPopover.d.ts.map +1 -0
  98. package/lib/query-form-v3/Field/Composition/FieldPopover.js +368 -0
  99. package/lib/query-form-v3/Field/Composition/FieldPopover.js.map +1 -0
  100. package/lib/query-form-v3/Field/Composition/FieldPopover.less +35 -0
  101. package/lib/query-form-v3/Field/Composition/Select.d.ts +4 -0
  102. package/lib/query-form-v3/Field/Composition/Select.d.ts.map +1 -0
  103. package/lib/query-form-v3/Field/Composition/Select.js +131 -0
  104. package/lib/query-form-v3/Field/Composition/Select.js.map +1 -0
  105. package/lib/query-form-v3/Field/Composition/index.d.ts +10 -0
  106. package/lib/query-form-v3/Field/Composition/index.d.ts.map +1 -0
  107. package/lib/query-form-v3/Field/Composition/index.js +257 -0
  108. package/lib/query-form-v3/Field/Composition/index.js.map +1 -0
  109. package/lib/query-form-v3/Field/Composition/index.less +114 -0
  110. package/lib/query-form-v3/Field/Composition/utils.d.ts +22 -0
  111. package/lib/query-form-v3/Field/Composition/utils.d.ts.map +1 -0
  112. package/lib/query-form-v3/Field/Composition/utils.js +147 -0
  113. package/lib/query-form-v3/Field/Composition/utils.js.map +1 -0
  114. package/lib/query-form-v3/Field/Select.d.ts +4 -0
  115. package/lib/query-form-v3/Field/Select.d.ts.map +1 -0
  116. package/lib/query-form-v3/Field/Select.js +80 -0
  117. package/lib/query-form-v3/Field/Select.js.map +1 -0
  118. package/lib/query-form-v3/Field/SelectInput.d.ts +4 -0
  119. package/lib/query-form-v3/Field/SelectInput.d.ts.map +1 -0
  120. package/lib/query-form-v3/Field/SelectInput.js +100 -0
  121. package/lib/query-form-v3/Field/SelectInput.js.map +1 -0
  122. package/lib/query-form-v3/Field/fieldsMap.d.ts +27 -0
  123. package/lib/query-form-v3/Field/fieldsMap.d.ts.map +1 -0
  124. package/lib/query-form-v3/Field/fieldsMap.js +35 -0
  125. package/lib/query-form-v3/Field/fieldsMap.js.map +1 -0
  126. package/lib/query-form-v3/Field/index.d.ts +14 -0
  127. package/lib/query-form-v3/Field/index.d.ts.map +1 -0
  128. package/lib/query-form-v3/Field/index.js +147 -0
  129. package/lib/query-form-v3/Field/index.js.map +1 -0
  130. package/lib/query-form-v3/createActions.d.ts +14 -0
  131. package/lib/query-form-v3/createActions.d.ts.map +1 -0
  132. package/lib/query-form-v3/createActions.js +54 -0
  133. package/lib/query-form-v3/createActions.js.map +1 -0
  134. package/lib/query-form-v3/index.d.ts +27 -0
  135. package/lib/query-form-v3/index.d.ts.map +1 -0
  136. package/lib/query-form-v3/index.js +206 -0
  137. package/lib/query-form-v3/index.js.map +1 -0
  138. package/lib/query-form-v3/index.less +90 -0
  139. package/lib/query-form-v3/useForm.d.ts +13 -0
  140. package/lib/query-form-v3/useForm.d.ts.map +1 -0
  141. package/lib/query-form-v3/useForm.js +13 -0
  142. package/lib/query-form-v3/useForm.js.map +1 -0
  143. package/lib/query-list-scene/QueryForm.d.ts +1 -1
  144. package/lib/query-list-scene/QueryForm.d.ts.map +1 -1
  145. package/lib/query-list-scene/QueryForm.js +5 -3
  146. package/lib/query-list-scene/QueryForm.js.map +1 -1
  147. package/lib/query-list-scene/index.less +6 -0
  148. package/lib/select/select.d.ts.map +1 -1
  149. package/lib/select/select.js +4 -1
  150. package/lib/select/select.js.map +1 -1
  151. package/lib/select/style/index.less +1 -1
  152. package/lib/svg-components/illustration-offline.d.ts.map +1 -1
  153. package/lib/svg-components/illustration-offline.js +120 -84
  154. package/lib/svg-components/illustration-offline.js.map +1 -1
  155. package/lib/title/index.less +1 -1
  156. package/lib/tntd-cascader/rc-cascader/Cascader.d.ts.map +1 -1
  157. package/lib/tntd-cascader/rc-cascader/Cascader.js +5 -1
  158. package/lib/tntd-cascader/rc-cascader/Cascader.js.map +1 -1
  159. package/lib/tntd-rc-select/index.d.ts.map +1 -1
  160. package/lib/tntd-rc-select/index.js +4 -1
  161. package/lib/tntd-rc-select/index.js.map +1 -1
  162. package/lib/tntd-rc-select/style/index.less +4 -0
  163. package/lib/tntd-select/index.d.ts.map +1 -1
  164. package/lib/tntd-select/index.js +4 -1
  165. package/lib/tntd-select/index.js.map +1 -1
  166. package/lib/tntd-virtual-tree/index.d.ts +18 -0
  167. package/lib/tntd-virtual-tree/index.d.ts.map +1 -0
  168. package/lib/tntd-virtual-tree/index.js +242 -0
  169. package/lib/tntd-virtual-tree/index.js.map +1 -0
  170. package/lib/tntd-virtual-tree/index.less +86 -0
  171. package/lib/tntd-virtual-tree/utils.d.ts +15 -0
  172. package/lib/tntd-virtual-tree/utils.d.ts.map +1 -0
  173. package/lib/tntd-virtual-tree/utils.js +289 -0
  174. package/lib/tntd-virtual-tree/utils.js.map +1 -0
  175. package/lib/tntd-virtual-tree-select/VirtualTree.d.ts +13 -0
  176. package/lib/tntd-virtual-tree-select/VirtualTree.d.ts.map +1 -0
  177. package/lib/tntd-virtual-tree-select/VirtualTree.js +155 -0
  178. package/lib/tntd-virtual-tree-select/VirtualTree.js.map +1 -0
  179. package/lib/tntd-virtual-tree-select/index.d.ts +17 -0
  180. package/lib/tntd-virtual-tree-select/index.d.ts.map +1 -0
  181. package/lib/tntd-virtual-tree-select/index.js +76 -0
  182. package/lib/tntd-virtual-tree-select/index.js.map +1 -0
  183. package/lib/tntd-virtual-tree-select/index.less +3 -0
  184. package/lib/tntd-virtual-tree-select/tree.less +29 -0
  185. package/lib/tntd-virtual-tree-select/utils.d.ts +10 -0
  186. package/lib/tntd-virtual-tree-select/utils.d.ts.map +1 -0
  187. package/lib/tntd-virtual-tree-select/utils.js +167 -0
  188. package/lib/tntd-virtual-tree-select/utils.js.map +1 -0
  189. package/package.json +7 -2
@@ -0,0 +1,289 @@
1
+ "use strict";
2
+
3
+ function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.getNodeValuess = exports.getNodeStr = exports.getNodeParentChoosed = exports.getNodeAllChildrenValue = exports.getIndeterminate = exports.getFullExpandedKeys = exports.getFullCheckedKeys = exports.flatTreeData = exports.addTreeNodeAttrs = void 0;
8
+ function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, 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 normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it["return"] != null) it["return"](); } finally { if (didErr) throw err; } } }; }
9
+ function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
10
+ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; }
11
+ function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
12
+ function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }
13
+ function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
14
+ function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
15
+ function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); }
16
+ function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }
17
+ function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
18
+ var __rest = void 0 && (void 0).__rest || function (s, e) {
19
+ var t = {};
20
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];
21
+ if (s != null && typeof Object.getOwnPropertySymbols === "function") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
22
+ if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];
23
+ }
24
+ return t;
25
+ };
26
+ /**
27
+ * 初始化给树的每个节点增加属性字段(childrenValues, titleTotal, parentsValues, siblingsValue),childrenValues: 当前节点下的所有子节点的value和, titleTotal: 当前节点下的所有子节点的title和 parentsValues: 当前节点所有的父节点 siblingsValue: 当前节点所有上级节点的兄弟节点
28
+ * 用于判断后续展开/收起
29
+ * @param {*} treeData
30
+ */
31
+ var addTreeNodeAttrs = exports.addTreeNodeAttrs = function addTreeNodeAttrs(treeData) {
32
+ var fieldNames = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {
33
+ title: 'title',
34
+ value: 'value',
35
+ children: 'children',
36
+ disabled: 'disabled'
37
+ };
38
+ var parentsValues = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : [];
39
+ var siblingsValue = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};
40
+ if (Array.isArray(treeData) && !!treeData.length) {
41
+ return treeData.map(function (item) {
42
+ item.children = item[fieldNames['children']];
43
+ item.title = item[fieldNames['title']];
44
+ item.value = item[fieldNames['value']];
45
+ var children = item.children,
46
+ query = __rest(item, ["children"]);
47
+ if (Array.isArray(children) && !!children.length) {
48
+ query.children = addTreeNodeAttrs(children, fieldNames, [item.value].concat(_toConsumableArray(parentsValues)), Object.assign(Object.assign({}, siblingsValue), _defineProperty({}, item.value, children.map(function (i) {
49
+ return i[fieldNames['value']];
50
+ }))));
51
+ }
52
+ return Object.assign(Object.assign({}, query), {
53
+ title: query[fieldNames['title']],
54
+ value: query[fieldNames['value']],
55
+ disabled: query[fieldNames['disabled']],
56
+ childrenValues: getNodeValuess(query, false),
57
+ titleTotal: getNodeStr(query, fieldNames['title']),
58
+ parentsValues: parentsValues,
59
+ siblingsValue: siblingsValue
60
+ });
61
+ });
62
+ }
63
+ return [];
64
+ };
65
+ var getNodeStr = exports.getNodeStr = function getNodeStr(node, key) {
66
+ var result = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : [];
67
+ result.push(node[key]);
68
+ if (Array.isArray(node.children) && !!node.children.length) {
69
+ node.children.forEach(function (element) {
70
+ result = [].concat(_toConsumableArray(result), _toConsumableArray(getNodeStr(element, key)));
71
+ });
72
+ }
73
+ return result;
74
+ };
75
+ /**
76
+ * 获取每个节点下面所有子节点的value值
77
+ * @param {*} node
78
+ * @param {*} widthSelf 是否包含自己
79
+ * @param {*} result
80
+ * @returns []
81
+ */
82
+ var getNodeValuess = exports.getNodeValuess = function getNodeValuess(node) {
83
+ var widthSelf = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;
84
+ var result = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : [];
85
+ if (widthSelf) {
86
+ result.push(node.value);
87
+ }
88
+ if (Array.isArray(node.children) && !!node.children.length) {
89
+ node.children.forEach(function (element) {
90
+ result = [].concat(_toConsumableArray(result), _toConsumableArray(getNodeValuess(element)));
91
+ });
92
+ }
93
+ return result;
94
+ };
95
+ /**
96
+ * 扁平树
97
+ * @param {*} treeData
98
+ * @param {*} expandedKeys 展开的节点
99
+ * @param {*} treeDefaultExpandAll
100
+ * @param {*} level
101
+ * @param {*} result
102
+ * @returns
103
+ */
104
+ var flatTreeData = exports.flatTreeData = function flatTreeData(treeData) {
105
+ var filterKey = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';
106
+ var expandedKeys = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : [];
107
+ var treeDefaultExpandAll = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false;
108
+ var level = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : 0;
109
+ var result = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : [];
110
+ if (Array.isArray(treeData)) {
111
+ var _iterator = _createForOfIteratorHelper(treeData),
112
+ _step;
113
+ try {
114
+ for (_iterator.s(); !(_step = _iterator.n()).done;) {
115
+ var i = _step.value;
116
+ var value = i.value,
117
+ children = i.children,
118
+ childrenValues = i.childrenValues,
119
+ parentsValues = i.parentsValues,
120
+ titleTotal = i.titleTotal,
121
+ siblingsValue = i.siblingsValue,
122
+ title = i.title,
123
+ disabled = i.disabled,
124
+ rest = __rest(i, ["value", "children", "childrenValues", "parentsValues", "titleTotal", "siblingsValue", "title", "disabled"]);
125
+ // 判断是否命中过滤
126
+ var bingo = true;
127
+ var transFilterKey = !['', null, undefined].includes(filterKey);
128
+ if (transFilterKey) {
129
+ bingo = Array.isArray(titleTotal) ? titleTotal.some(function (i) {
130
+ return i.includes(filterKey);
131
+ }) : false;
132
+ }
133
+ if (bingo) {
134
+ result.push({
135
+ value: value,
136
+ children: children,
137
+ title: title,
138
+ level: level,
139
+ titleTotal: titleTotal,
140
+ childrenValues: childrenValues,
141
+ parentsValues: parentsValues,
142
+ siblingsValue: siblingsValue,
143
+ disabled: disabled
144
+ });
145
+ }
146
+ var selfIn = Array.isArray(expandedKeys) ? expandedKeys.includes(value) : false;
147
+ if ((treeDefaultExpandAll || selfIn || transFilterKey && bingo) && Array.isArray(children) && !!children.length) {
148
+ result = [].concat(_toConsumableArray(result), _toConsumableArray(flatTreeData(children, filterKey, expandedKeys, treeDefaultExpandAll, level + 1)));
149
+ }
150
+ }
151
+ } catch (err) {
152
+ _iterator.e(err);
153
+ } finally {
154
+ _iterator.f();
155
+ }
156
+ }
157
+ return result;
158
+ };
159
+ /**
160
+ * 获取所有展开的节点 (组件传入最后一层,需要将其上层全部加入到expandedKeys)
161
+ * @param {*} treeDataWithKeys
162
+ * @param {*} treeExpandedKeys
163
+ * @param {*} result
164
+ * @returns
165
+ */
166
+ var getFullExpandedKeys = exports.getFullExpandedKeys = function getFullExpandedKeys(treeDataWithKeys) {
167
+ var treeExpandedKeys = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];
168
+ var treeDefaultExpandAll = arguments.length > 2 ? arguments[2] : undefined;
169
+ var result = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : [];
170
+ if (!treeDefaultExpandAll && (!Array.isArray(treeDataWithKeys) || !treeDataWithKeys.length || !Array.isArray(treeExpandedKeys) || !treeExpandedKeys.length)) {
171
+ return [];
172
+ }
173
+ treeDataWithKeys.forEach(function (i) {
174
+ var childrenValues = i.childrenValues,
175
+ value = i.value,
176
+ children = i.children;
177
+ if (treeDefaultExpandAll || Array.isArray(childrenValues) && [].concat(_toConsumableArray(childrenValues), [value]).some(function (el) {
178
+ return treeExpandedKeys.includes(el);
179
+ })) {
180
+ result.push(value);
181
+ if (Array.isArray(children) && !!children.length) {
182
+ result = [].concat(_toConsumableArray(result), _toConsumableArray(getFullExpandedKeys(children, treeExpandedKeys, treeDefaultExpandAll)));
183
+ }
184
+ }
185
+ });
186
+ return result;
187
+ };
188
+ /**
189
+ * 获取所有选中的节点 (组件传入最后一层,需要将其上层和自身全部加入到expandedKeys)
190
+ * @param {*} treeDataWithKeys
191
+ * @param {*} transCheckedKeys
192
+ * @param {*} result
193
+ * @returns
194
+ */
195
+ var getFullCheckedKeys = exports.getFullCheckedKeys = function getFullCheckedKeys(treeDataWithKeys, transCheckedKeys) {
196
+ var result = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : [];
197
+ if (!Array.isArray(treeDataWithKeys) || !treeDataWithKeys.length || !Array.isArray(transCheckedKeys) || !transCheckedKeys.length) {
198
+ return [];
199
+ }
200
+ treeDataWithKeys.forEach(function (i) {
201
+ var childrenValues = i.childrenValues,
202
+ value = i.value,
203
+ children = i.children;
204
+ if (Array.isArray(childrenValues) && [].concat(_toConsumableArray(childrenValues), [value]).some(function (el) {
205
+ return transCheckedKeys.includes(el);
206
+ })) {
207
+ result.push(value);
208
+ if (Array.isArray(children) && !!children.length) {
209
+ result = [].concat(_toConsumableArray(result), _toConsumableArray(getFullCheckedKeys(children, transCheckedKeys)));
210
+ }
211
+ }
212
+ });
213
+ return result;
214
+ };
215
+ /**
216
+ * 获取当前节点下的所有子节点
217
+ * @param {*} node
218
+ * @param {*} result
219
+ * @returns
220
+ */
221
+ var getNodeAllChildrenValue = exports.getNodeAllChildrenValue = function getNodeAllChildrenValue(node) {
222
+ var isSelf = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;
223
+ var result = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : [];
224
+ var value = node.value,
225
+ children = node.children;
226
+ if (!['', null, undefined].includes(value) || !isSelf) {
227
+ result.push(value);
228
+ }
229
+ if (Array.isArray(children)) {
230
+ children.forEach(function (i) {
231
+ result = [].concat(_toConsumableArray(result), _toConsumableArray(getNodeAllChildrenValue(i, false)));
232
+ });
233
+ }
234
+ return result;
235
+ };
236
+ /**
237
+ * 判断当前节点是否半选
238
+ * @param {*} item
239
+ * @param {*} checkedList
240
+ */
241
+ var getIndeterminate = exports.getIndeterminate = function getIndeterminate(item, checkedList) {
242
+ // 如果没有子节点,判断当前节点是否被选中
243
+ if (!Array.isArray(item.children) || !item.children.length) {
244
+ return false;
245
+ }
246
+ if (!Array.isArray(checkedList) || !checkedList.length) {
247
+ return false;
248
+ }
249
+ // 如果有子节点,判断子节点是否都被选中
250
+ var list = getNodeAllChildrenValue(item);
251
+ var childrenCheckedList = list.filter(function (i) {
252
+ return checkedList.includes(i);
253
+ });
254
+ return childrenCheckedList.length > 0 && childrenCheckedList.length < list.length;
255
+ };
256
+ /**
257
+ * 获取当前节点的父亲节点是否需要被选中
258
+ * @param {*} parentsValues
259
+ * @param {*} siblingsValue
260
+ * @param {*} checkedList
261
+ * @returns
262
+ */
263
+ var getNodeParentChoosed = exports.getNodeParentChoosed = function getNodeParentChoosed(parentsValues, siblingsValue, checkedList) {
264
+ if (!Array.isArray(parentsValues) || !parentsValues.length || !Array.isArray(checkedList) || !checkedList.length) {
265
+ return [];
266
+ }
267
+ var result = [];
268
+ var _iterator2 = _createForOfIteratorHelper(parentsValues),
269
+ _step2;
270
+ try {
271
+ for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
272
+ var item = _step2.value;
273
+ var list = Array.isArray(siblingsValue[item]) ? siblingsValue[item] : [];
274
+ var bool = list.every(function (it) {
275
+ return checkedList.includes(it);
276
+ });
277
+ if (!bool) {
278
+ break;
279
+ }
280
+ checkedList.push(item);
281
+ result.push(item);
282
+ }
283
+ } catch (err) {
284
+ _iterator2.e(err);
285
+ } finally {
286
+ _iterator2.f();
287
+ }
288
+ return result;
289
+ };
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/tntd-virtual-tree/utils.js"],"names":[],"mappings":"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","sourcesContent":["/**\n * 初始化给树的每个节点增加属性字段(childrenValues, titleTotal, parentsValues, siblingsValue),childrenValues: 当前节点下的所有子节点的value和, titleTotal: 当前节点下的所有子节点的title和 parentsValues: 当前节点所有的父节点 siblingsValue: 当前节点所有上级节点的兄弟节点\n * 用于判断后续展开/收起\n * @param {*} treeData\n */\nexport const addTreeNodeAttrs = (\n treeData,\n fieldNames = { title: 'title', value: 'value', children: 'children', disabled: 'disabled' },\n parentsValues = [],\n siblingsValue = {}\n) => {\n if (Array.isArray(treeData) && !!treeData.length) {\n return treeData.map((item) => {\n item.children = item[fieldNames['children']];\n item.title = item[fieldNames['title']];\n item.value = item[fieldNames['value']];\n const { children, ...query } = item;\n if (Array.isArray(children) && !!children.length) {\n query.children = addTreeNodeAttrs(children, fieldNames, [item.value, ...parentsValues], {\n ...siblingsValue,\n [item.value]: children.map((i) => i[fieldNames['value']])\n });\n }\n return {\n ...query,\n title: query[fieldNames['title']],\n value: query[fieldNames['value']],\n disabled: query[fieldNames['disabled']],\n childrenValues: getNodeValuess(query, false),\n titleTotal: getNodeStr(query, fieldNames['title']),\n parentsValues,\n siblingsValue\n };\n });\n }\n\n return [];\n};\n\nexport const getNodeStr = (node, key, result = []) => {\n result.push(node[key]);\n\n if (Array.isArray(node.children) && !!node.children.length) {\n node.children.forEach((element) => {\n result = [...result, ...getNodeStr(element, key)];\n });\n }\n\n return result;\n};\n\n/**\n * 获取每个节点下面所有子节点的value值\n * @param {*} node\n * @param {*} widthSelf 是否包含自己\n * @param {*} result\n * @returns []\n */\nexport const getNodeValuess = (node, widthSelf = true, result = []) => {\n if (widthSelf) {\n result.push(node.value);\n }\n\n if (Array.isArray(node.children) && !!node.children.length) {\n node.children.forEach((element) => {\n result = [...result, ...getNodeValuess(element)];\n });\n }\n\n return result;\n};\n\n/**\n * 扁平树\n * @param {*} treeData\n * @param {*} expandedKeys 展开的节点\n * @param {*} treeDefaultExpandAll\n * @param {*} level\n * @param {*} result\n * @returns\n */\nexport const flatTreeData = (treeData, filterKey = '', expandedKeys = [], treeDefaultExpandAll = false, level = 0, result = []) => {\n if (Array.isArray(treeData)) {\n for (const i of treeData) {\n const { value, children, childrenValues, parentsValues, titleTotal, siblingsValue, title, disabled, ...rest } = i;\n\n // 判断是否命中过滤\n let bingo = true;\n const transFilterKey = !['', null, undefined].includes(filterKey);\n if (transFilterKey) {\n bingo = Array.isArray(titleTotal) ? titleTotal.some((i) => i.includes(filterKey)) : false;\n }\n\n if (bingo) {\n result.push({ value, children, title, level, titleTotal, childrenValues, parentsValues, siblingsValue, disabled });\n }\n\n const selfIn = Array.isArray(expandedKeys) ? expandedKeys.includes(value) : false;\n if ((treeDefaultExpandAll || selfIn || (transFilterKey && bingo)) && Array.isArray(children) && !!children.length) {\n result = [...result, ...flatTreeData(children, filterKey, expandedKeys, treeDefaultExpandAll, level + 1)];\n }\n }\n }\n return result;\n};\n\n/**\n * 获取所有展开的节点 (组件传入最后一层,需要将其上层全部加入到expandedKeys)\n * @param {*} treeDataWithKeys\n * @param {*} treeExpandedKeys\n * @param {*} result\n * @returns\n */\nexport const getFullExpandedKeys = (treeDataWithKeys, treeExpandedKeys = [], treeDefaultExpandAll, result = []) => {\n if (\n !treeDefaultExpandAll &&\n (!Array.isArray(treeDataWithKeys) || !treeDataWithKeys.length || !Array.isArray(treeExpandedKeys) || !treeExpandedKeys.length)\n ) {\n return [];\n }\n\n treeDataWithKeys.forEach((i) => {\n const { childrenValues, value, children } = i;\n\n if (treeDefaultExpandAll || (Array.isArray(childrenValues) && [...childrenValues, value].some((el) => treeExpandedKeys.includes(el)))) {\n result.push(value);\n\n if (Array.isArray(children) && !!children.length) {\n result = [...result, ...getFullExpandedKeys(children, treeExpandedKeys, treeDefaultExpandAll)];\n }\n }\n });\n\n return result;\n};\n\n/**\n * 获取所有选中的节点 (组件传入最后一层,需要将其上层和自身全部加入到expandedKeys)\n * @param {*} treeDataWithKeys\n * @param {*} transCheckedKeys\n * @param {*} result\n * @returns\n */\nexport const getFullCheckedKeys = (treeDataWithKeys, transCheckedKeys, result = []) => {\n if (!Array.isArray(treeDataWithKeys) || !treeDataWithKeys.length || !Array.isArray(transCheckedKeys) || !transCheckedKeys.length) {\n return [];\n }\n\n treeDataWithKeys.forEach((i) => {\n const { childrenValues, value, children } = i;\n\n if (Array.isArray(childrenValues) && [...childrenValues, value].some((el) => transCheckedKeys.includes(el))) {\n result.push(value);\n\n if (Array.isArray(children) && !!children.length) {\n result = [...result, ...getFullCheckedKeys(children, transCheckedKeys)];\n }\n }\n });\n\n return result;\n};\n\n/**\n * 获取当前节点下的所有子节点\n * @param {*} node\n * @param {*} result\n * @returns\n */\nexport const getNodeAllChildrenValue = (node, isSelf = true, result = []) => {\n const { value, children } = node;\n\n if (!['', null, undefined].includes(value) || !isSelf) {\n result.push(value);\n }\n\n if (Array.isArray(children)) {\n children.forEach((i) => {\n result = [...result, ...getNodeAllChildrenValue(i, false)];\n });\n }\n\n return result;\n};\n\n/**\n * 判断当前节点是否半选\n * @param {*} item\n * @param {*} checkedList\n */\nexport const getIndeterminate = (item, checkedList) => {\n // 如果没有子节点,判断当前节点是否被选中\n if (!Array.isArray(item.children) || !item.children.length) {\n return false;\n }\n\n if (!Array.isArray(checkedList) || !checkedList.length) {\n return false;\n }\n\n // 如果有子节点,判断子节点是否都被选中\n const list = getNodeAllChildrenValue(item);\n\n const childrenCheckedList = list.filter((i) => checkedList.includes(i));\n\n return childrenCheckedList.length > 0 && childrenCheckedList.length < list.length;\n};\n\n/**\n * 获取当前节点的父亲节点是否需要被选中\n * @param {*} parentsValues\n * @param {*} siblingsValue\n * @param {*} checkedList\n * @returns\n */\nexport const getNodeParentChoosed = (parentsValues, siblingsValue, checkedList) => {\n if (!Array.isArray(parentsValues) || !parentsValues.length || !Array.isArray(checkedList) || !checkedList.length) {\n return [];\n }\n let result = [];\n for (let item of parentsValues) {\n const list = Array.isArray(siblingsValue[item]) ? siblingsValue[item] : [];\n const bool = list.every((it) => checkedList.includes(it));\n if (!bool) {\n break;\n }\n checkedList.push(item);\n result.push(item);\n }\n\n return result;\n};\n"]}
@@ -0,0 +1,13 @@
1
+ export default VirtualTree;
2
+ declare function VirtualTree({ value, onChange, treeDefaultExpandAll, fieldNames, treeExpandedKeys, showSearch, treeData, renderItem }: {
3
+ value: any;
4
+ onChange: any;
5
+ treeDefaultExpandAll: any;
6
+ fieldNames: any;
7
+ treeExpandedKeys: any;
8
+ showSearch: any;
9
+ treeData: any;
10
+ renderItem: any;
11
+ }): React.JSX.Element;
12
+ import React from "react";
13
+ //# sourceMappingURL=VirtualTree.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"VirtualTree.d.ts","sourceRoot":"","sources":["../../src/tntd-virtual-tree-select/VirtualTree.jsx"],"names":[],"mappings":";AAgBA;;;;;;;;;sBA2GC"}
@@ -0,0 +1,155 @@
1
+ "use strict";
2
+
3
+ function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports["default"] = void 0;
8
+ var _react = _interopRequireWildcard(require("react"));
9
+ var _rcVirtualList = _interopRequireDefault(require("rc-virtual-list"));
10
+ var _icon = _interopRequireDefault(require("../icon"));
11
+ var _ellipsis = _interopRequireDefault(require("../ellipsis"));
12
+ var _empty = _interopRequireDefault(require("../empty"));
13
+ var _input = _interopRequireDefault(require("../input"));
14
+ var _utils = require("./utils");
15
+ require("./tree.less");
16
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
17
+ function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
18
+ function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { "default": e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n["default"] = e, t && t.set(e, n), n; }
19
+ function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }
20
+ function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
21
+ function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); }
22
+ function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }
23
+ function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
24
+ function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
25
+ function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
26
+ function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
27
+ function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t["return"] && (u = t["return"](), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
28
+ function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; } /*
29
+ * @Descripttion: 最简单的tree下拉框,增加了虚拟滚动
30
+ * @Author: 郑泳健
31
+ * @Date: 2024-07-31 14:46:55
32
+ * @LastEditors: 郑泳健
33
+ * @LastEditTime: 2024-08-05 15:58:47
34
+ */
35
+ var VirtualTree = function VirtualTree(_ref) {
36
+ var value = _ref.value,
37
+ onChange = _ref.onChange,
38
+ treeDefaultExpandAll = _ref.treeDefaultExpandAll,
39
+ fieldNames = _ref.fieldNames,
40
+ treeExpandedKeys = _ref.treeExpandedKeys,
41
+ showSearch = _ref.showSearch,
42
+ treeData = _ref.treeData,
43
+ renderItem = _ref.renderItem;
44
+ var ref = _react["default"].useRef(null);
45
+ // 展开的节点列表
46
+ var _useState = (0, _react.useState)([]),
47
+ _useState2 = _slicedToArray(_useState, 2),
48
+ expandedKeys = _useState2[0],
49
+ setExpandedKeys = _useState2[1];
50
+ var _useState3 = (0, _react.useState)([]),
51
+ _useState4 = _slicedToArray(_useState3, 2),
52
+ choosedValue = _useState4[0],
53
+ setChoosedValue = _useState4[1];
54
+ var _useState5 = (0, _react.useState)(undefined),
55
+ _useState6 = _slicedToArray(_useState5, 2),
56
+ filterKey = _useState6[0],
57
+ setFilterKey = _useState6[1];
58
+ (0, _react.useEffect)(function () {
59
+ if (!['', null, undefined].includes(value)) {
60
+ setChoosedValue(value);
61
+ } else {
62
+ setChoosedValue(undefined);
63
+ }
64
+ }, [value]);
65
+ /** 给每个节点增加属性keys,值为其下面所有节点的集合 */
66
+ var treeDataWithKeys = (0, _react.useMemo)(function () {
67
+ return (0, _utils.addTreeNodeKeys)(treeData, fieldNames);
68
+ }, [treeData, fieldNames]);
69
+ var mergeTreeDefaultExpandAll = (0, _react.useMemo)(function () {
70
+ if (Array.isArray(treeExpandedKeys) && treeExpandedKeys.length) {
71
+ return false;
72
+ }
73
+ return treeDefaultExpandAll;
74
+ }, [treeDefaultExpandAll, treeExpandedKeys]);
75
+ /** 获取到所有展开的节点,因为treeDataWithKeys可能传入的是最后一级 */
76
+ (0, _react.useEffect)(function () {
77
+ var transTreeExpandedKeys = Array.isArray(treeExpandedKeys) ? treeExpandedKeys : [];
78
+ if (value) {
79
+ transTreeExpandedKeys = [].concat(_toConsumableArray(treeExpandedKeys), [value]);
80
+ }
81
+ var _expandedKeys = (0, _utils.getFullExpandedKeys)(treeDataWithKeys, transTreeExpandedKeys, mergeTreeDefaultExpandAll);
82
+ setExpandedKeys(_expandedKeys);
83
+ }, [treeDataWithKeys, treeExpandedKeys, mergeTreeDefaultExpandAll, value]);
84
+ /** 最终渲染的数据 */
85
+ var renderData = (0, _react.useMemo)(function () {
86
+ return (0, _utils.flatTreeData)(treeDataWithKeys, filterKey, expandedKeys);
87
+ }, [treeDataWithKeys, filterKey, expandedKeys]);
88
+ /** 切换展开/收起 */
89
+ var handleToggle = function handleToggle(item) {
90
+ var _ref2 = item || {},
91
+ value = _ref2.value;
92
+ var bool = Array.isArray(expandedKeys) ? expandedKeys.includes(value) : false;
93
+ if (bool) {
94
+ var list = Array.isArray(expandedKeys) ? expandedKeys.filter(function (i) {
95
+ return i !== value;
96
+ }) : [];
97
+ setExpandedKeys(list);
98
+ } else {
99
+ setExpandedKeys([].concat(_toConsumableArray(expandedKeys), [value]));
100
+ }
101
+ };
102
+ var defaultRenderItem = function defaultRenderItem(item, expandedKeys) {
103
+ return _react["default"].createElement(_ellipsis["default"], {
104
+ title: item.title,
105
+ widthLimit: '100%'
106
+ });
107
+ };
108
+ var handleChange = function handleChange(_value) {
109
+ setChoosedValue(_value);
110
+ onChange === null || onChange === void 0 ? void 0 : onChange(_value);
111
+ };
112
+ var handleInput = function handleInput(e) {
113
+ var _filterValue = e.target.value;
114
+ setFilterKey(_filterValue);
115
+ };
116
+ return _react["default"].createElement("div", {
117
+ className: 'tntd-tree-select'
118
+ }, showSearch && Array.isArray(treeData) && !!treeData.length ? _react["default"].createElement(_input["default"], {
119
+ onChange: handleInput,
120
+ allowClear: true
121
+ }) : '', !Array.isArray(renderData) || !renderData.length ? _react["default"].createElement(_empty["default"], {
122
+ size: 'small'
123
+ }) : _react["default"].createElement(_rcVirtualList["default"], {
124
+ ref: ref,
125
+ height: 300,
126
+ itemHeight: 44,
127
+ data: renderData
128
+ }, function (item) {
129
+ var level = item.level,
130
+ children = item.children;
131
+ var bool = expandedKeys.includes(item.value);
132
+ return _react["default"].createElement("div", {
133
+ className: "tntd-tree-select-item",
134
+ style: {
135
+ paddingLeft: level * 18
136
+ }
137
+ }, _react["default"].createElement("div", {
138
+ style: {
139
+ width: 18,
140
+ paddingLeft: 3
141
+ }
142
+ }, Array.isArray(children) && !!children.length ? _react["default"].createElement(_icon["default"], {
143
+ type: bool ? 'caret-down' : 'caret-right',
144
+ onClick: function onClick() {
145
+ return handleToggle(item);
146
+ }
147
+ }) : _react["default"].createElement(_icon["default"], null)), _react["default"].createElement("div", {
148
+ className: "tntd-tree-select-item-title ".concat(choosedValue === item.value ? 'tntd-tree-select-item-title_active' : ''),
149
+ onClick: function onClick() {
150
+ return handleChange(item.value);
151
+ }
152
+ }, renderItem ? renderItem(item, expandedKeys) : defaultRenderItem(item, expandedKeys)));
153
+ }));
154
+ };
155
+ var _default = exports["default"] = VirtualTree;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"VirtualTree.js","sourceRoot":"","sources":["../../src/tntd-virtual-tree-select/VirtualTree.jsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;;;;;GAMG;AACH,+CAA4D;AAC5D,sEAAmC;AACnC,mDAA0B;AAC1B,2DAAmC;AACnC,qDAA6B;AAC7B,qDAA6B;AAC7B,mCAA6E;AAC7E,uBAAoB;AAEpB,MAAM,WAAW,GAAG,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,oBAAoB,EAAE,UAAU,EAAE,gBAAgB,EAAE,UAAU,EAAE,QAAQ,EAAE,UAAU,EAAE,EAAE,EAAE;IAChI,MAAM,GAAG,GAAG,eAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;IAC9B,UAAU;IACV,MAAM,CAAC,YAAY,EAAE,eAAe,CAAC,GAAG,IAAA,gBAAQ,EAAC,EAAE,CAAC,CAAA;IACpD,MAAM,CAAC,YAAY,EAAE,eAAe,CAAC,GAAG,IAAA,gBAAQ,EAAC,EAAE,CAAC,CAAA;IACpD,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,IAAA,gBAAQ,EAAC,SAAS,CAAC,CAAA;IAErD,IAAA,iBAAS,EAAC,GAAG,EAAE;QACb,IAAG,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,SAAS,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE;YACzC,eAAe,CAAC,KAAK,CAAC,CAAA;SACvB;aAAK;YACJ,eAAe,CAAC,SAAS,CAAC,CAAA;SAC3B;IACH,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAA;IAEX,iCAAiC;IACjC,MAAM,gBAAgB,GAAG,IAAA,eAAO,EAAC,GAAG,EAAE;QACpC,OAAO,IAAA,uBAAe,EAAC,QAAQ,EAAE,UAAU,CAAC,CAAA;IAC9C,CAAC,EAAE,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC,CAAA;IAE1B,MAAM,yBAAyB,GAAG,IAAA,eAAO,EAAC,GAAG,EAAE;QAC7C,IAAG,KAAK,CAAC,OAAO,CAAC,gBAAgB,CAAC,IAAI,gBAAgB,CAAC,MAAM,EAAE;YAC7D,OAAO,KAAK,CAAA;SACb;QAED,OAAO,oBAAoB,CAAA;IAC7B,CAAC,EAAE,CAAC,oBAAoB,EAAE,gBAAgB,CAAC,CAAC,CAAA;IAE5C,8CAA8C;IAC9C,IAAA,iBAAS,EAAC,GAAG,EAAE;QACb,IAAI,qBAAqB,GAAG,KAAK,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,EAAE,CAAA;QACnF,IAAG,KAAK,EAAE;YACR,qBAAqB,GAAG,CAAC,GAAG,gBAAgB,EAAE,KAAK,CAAC,CAAA;SACrD;QACD,MAAM,aAAa,GAAG,IAAA,2BAAmB,EAAC,gBAAgB,EAAE,qBAAqB,EAAE,yBAAyB,CAAC,CAAA;QAC7G,eAAe,CAAC,aAAa,CAAC,CAAA;IAChC,CAAC,EAAE,CAAC,gBAAgB,EAAE,gBAAgB,EAAE,yBAAyB,EAAE,KAAK,CAAC,CAAC,CAAA;IAE1E,cAAc;IACd,MAAM,UAAU,GAAG,IAAA,eAAO,EAAC,GAAG,EAAE;QAC9B,OAAO,IAAA,oBAAY,EAAC,gBAAgB,EAAE,SAAS,EAAE,YAAY,CAAC,CAAA;IAChE,CAAC,EAAE,CAAC,gBAAgB,EAAE,SAAS,EAAE,YAAY,CAAC,CAAC,CAAA;IAE/C,cAAc;IACd,MAAM,YAAY,GAAG,CAAC,IAAI,EAAE,EAAE;QAC5B,MAAM,EAAE,KAAK,EAAE,GAAG,IAAI,IAAI,EAAE,CAAA;QAC5B,MAAM,IAAI,GAAG,KAAK,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;QAChF,IAAG,IAAI,EAAE;YACP,MAAM,IAAI,GAAG,KAAK,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAA;YACrF,eAAe,CAAC,IAAI,CAAC,CAAA;SACtB;aAAK;YACJ,eAAe,CAAC,CAAC,GAAG,YAAY,EAAE,KAAK,CAAC,CAAC,CAAA;SAC1C;IACH,CAAC,CAAA;IAED,MAAM,iBAAiB,GAAG,CAAC,IAAI,EAAE,YAAY,EAAE,EAAE;QAC/C,OAAO,8BAAC,kBAAQ,IAAC,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,UAAU,EAAE,MAAM,GAAI,CAAA;IAC5D,CAAC,CAAA;IAED,MAAM,YAAY,GAAG,CAAC,MAAM,EAAE,EAAE;QAC9B,eAAe,CAAC,MAAM,CAAC,CAAA;QACvB,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAG,MAAM,CAAC,CAAA;IACpB,CAAC,CAAA;IAED,MAAM,WAAW,GAAG,CAAC,CAAC,EAAE,EAAE;QACxB,MAAM,YAAY,GAAG,CAAC,CAAC,MAAM,CAAC,KAAK,CAAA;QAEnC,YAAY,CAAC,YAAY,CAAC,CAAA;IAC5B,CAAC,CAAA;IAED,OAAO,CACL,uCAAK,SAAS,EAAC,kBAAkB;QAC9B,UAAU,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,8BAAC,eAAK,IAAC,QAAQ,EAAE,WAAW,EAAE,UAAU,SAAG,CAAC,CAAC,CAAC,EAAE;QAE5G,CAAC,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;YAClD,8BAAC,eAAK,IAAC,IAAI,EAAC,OAAO,GAAG,CAAC,CAAC;YACxB,8BAAC,yBAAI,IACH,GAAG,EAAE,GAAG,EACR,MAAM,EAAE,GAAG,EACX,UAAU,EAAE,EAAE,EACd,IAAI,EAAE,UAAU,IAGd,CAAC,IAAI,EAAE,EAAE;gBACP,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,GAAG,IAAI,CAAC;gBACjC,MAAM,IAAI,GAAG,YAAY,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;gBAC9C,OAAO,CACL,uCAAK,SAAS,EAAC,uBAAuB,EAClC,KAAK,EAAE,EAAE,WAAW,EAAE,KAAK,GAAG,EAAE,EAAE;oBAClC,uCAAK,KAAK,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,WAAW,EAAE,CAAC,EAAE,IACtC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,8BAAC,cAAI,IAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,aAAa,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,GAAI,CAAC,CAAC,CAAC,8BAAC,cAAI,OAAG,CAC7I;oBAEN,uCACE,SAAS,EAAE,+BAA+B,YAAY,KAAK,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,oCAAoC,CAAC,CAAC,CAAC,EAAG,EAAE,EACpH,OAAO,EAAE,GAAG,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,IAEtC,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC,CAAC,CAAC,iBAAiB,CAAC,IAAI,EAAE,YAAY,CAAC,CAChF,CACJ,CACP,CAAA;YACH,CAAC,CAEE,CAEL,CACP,CAAC;AACJ,CAAC,CAAC;AAEF,kBAAe,WAAW,CAAA","sourcesContent":["/*\n * @Descripttion: 最简单的tree下拉框,增加了虚拟滚动\n * @Author: 郑泳健\n * @Date: 2024-07-31 14:46:55\n * @LastEditors: 郑泳健\n * @LastEditTime: 2024-08-05 15:58:47\n */\nimport React, { useState, useMemo, useEffect } from 'react';\nimport List from 'rc-virtual-list';\nimport Icon from '../icon'\nimport Ellipsis from '../ellipsis';\nimport Empty from '../empty';\nimport Input from '../input';\nimport { flatTreeData, getFullExpandedKeys, addTreeNodeKeys } from './utils';\nimport './tree.less'\n\nconst VirtualTree = ({ value, onChange, treeDefaultExpandAll, fieldNames, treeExpandedKeys, showSearch, treeData, renderItem }) => {\n const ref = React.useRef(null)\n // 展开的节点列表\n const [expandedKeys, setExpandedKeys] = useState([])\n const [choosedValue, setChoosedValue] = useState([])\n const [filterKey, setFilterKey] = useState(undefined)\n\n useEffect(() => {\n if(!['', null, undefined].includes(value)) {\n setChoosedValue(value)\n }else {\n setChoosedValue(undefined)\n }\n }, [value])\n\n /** 给每个节点增加属性keys,值为其下面所有节点的集合 */\n const treeDataWithKeys = useMemo(() => {\n return addTreeNodeKeys(treeData, fieldNames)\n }, [treeData, fieldNames])\n\n const mergeTreeDefaultExpandAll = useMemo(() => {\n if(Array.isArray(treeExpandedKeys) && treeExpandedKeys.length) {\n return false\n }\n\n return treeDefaultExpandAll\n }, [treeDefaultExpandAll, treeExpandedKeys])\n\n /** 获取到所有展开的节点,因为treeDataWithKeys可能传入的是最后一级 */\n useEffect(() => {\n let transTreeExpandedKeys = Array.isArray(treeExpandedKeys) ? treeExpandedKeys : []\n if(value) {\n transTreeExpandedKeys = [...treeExpandedKeys, value]\n }\n const _expandedKeys = getFullExpandedKeys(treeDataWithKeys, transTreeExpandedKeys, mergeTreeDefaultExpandAll)\n setExpandedKeys(_expandedKeys)\n }, [treeDataWithKeys, treeExpandedKeys, mergeTreeDefaultExpandAll, value])\n\n /** 最终渲染的数据 */\n const renderData = useMemo(() => {\n return flatTreeData(treeDataWithKeys, filterKey, expandedKeys)\n }, [treeDataWithKeys, filterKey, expandedKeys])\n\n /** 切换展开/收起 */\n const handleToggle = (item) => {\n const { value } = item || {}\n const bool = Array.isArray(expandedKeys) ? expandedKeys.includes(value) : false;\n if(bool) {\n const list = Array.isArray(expandedKeys) ? expandedKeys.filter(i => i !== value) : []\n setExpandedKeys(list)\n }else {\n setExpandedKeys([...expandedKeys, value])\n }\n }\n\n const defaultRenderItem = (item, expandedKeys) => {\n return <Ellipsis title={item.title} widthLimit={'100%'} />\n }\n\n const handleChange = (_value) => {\n setChoosedValue(_value)\n onChange?.(_value)\n }\n\n const handleInput = (e) => {\n const _filterValue = e.target.value\n\n setFilterKey(_filterValue)\n }\n\n return (\n <div className='tntd-tree-select'>\n {showSearch && Array.isArray(treeData) && !!treeData.length ? <Input onChange={handleInput} allowClear /> : ''}\n {\n !Array.isArray(renderData) || !renderData.length ? \n <Empty size='small' /> :\n <List\n ref={ref}\n height={300}\n itemHeight={44}\n data={renderData}\n >\n {\n (item) => { \n const { level, children } = item;\n const bool = expandedKeys.includes(item.value)\n return (\n <div className=\"tntd-tree-select-item\"\n style={{ paddingLeft: level * 18 }}>\n <div style={{ width: 18, paddingLeft: 3 }}>\n {Array.isArray(children) && !!children.length ? <Icon type={bool ? 'caret-down' : 'caret-right'} onClick={() => handleToggle(item)} /> : <Icon />}\n </div>\n \n <div \n className={`tntd-tree-select-item-title ${choosedValue === item.value ? 'tntd-tree-select-item-title_active' : '' }`}\n onClick={() => handleChange(item.value)}\n >\n {renderItem ? renderItem(item, expandedKeys) : defaultRenderItem(item, expandedKeys)}\n </div>\n </div>\n )\n }\n }\n </List>\n }\n </div>\n );\n};\n\nexport default VirtualTree\n"]}
@@ -0,0 +1,17 @@
1
+ export default TntdVirtualTreeSelect;
2
+ declare function TntdVirtualTreeSelect({ value, onChange, renderItem, treeData, showSearch, treeDefaultExpandAll, treeExpandedKeys, fieldNames, dropdownMatchSelectWidth, dropdownStyle, treeCheckable, ...restProps }: {
3
+ [x: string]: any;
4
+ value: any;
5
+ onChange: any;
6
+ renderItem: any;
7
+ treeData: any;
8
+ showSearch: any;
9
+ treeDefaultExpandAll: any;
10
+ treeExpandedKeys: any;
11
+ fieldNames: any;
12
+ dropdownMatchSelectWidth: any;
13
+ dropdownStyle: any;
14
+ treeCheckable: any;
15
+ }): React.JSX.Element;
16
+ import React from "react";
17
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/tntd-virtual-tree-select/index.jsx"],"names":[],"mappings":";AAYA;;;;;;;;;;;;;sBA6BC"}
@@ -0,0 +1,76 @@
1
+ "use strict";
2
+
3
+ function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports["default"] = void 0;
8
+ var _react = _interopRequireWildcard(require("react"));
9
+ var _tntdRcSelect = _interopRequireDefault(require("../tntd-rc-select"));
10
+ var _tntdVirtualTree = _interopRequireDefault(require("../tntd-virtual-tree"));
11
+ require("./index.less");
12
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
13
+ function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
14
+ function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { "default": e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n["default"] = e, t && t.set(e, n), n; }
15
+ var __rest = void 0 && (void 0).__rest || function (s, e) {
16
+ var t = {};
17
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];
18
+ if (s != null && typeof Object.getOwnPropertySymbols === "function") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
19
+ if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];
20
+ }
21
+ return t;
22
+ };
23
+ /*
24
+ * @Descripttion: 用select包裹虚拟树
25
+ * @Author: 郑泳健
26
+ * @Date: 2024-08-05 10:50:17
27
+ * @LastEditors: 郑泳健
28
+ * @LastEditTime: 2024-08-06 09:56:18
29
+ */
30
+
31
+ var TntdVirtualTreeSelect = function TntdVirtualTreeSelect(_a) {
32
+ var value = _a.value,
33
+ onChange = _a.onChange,
34
+ renderItem = _a.renderItem,
35
+ treeData = _a.treeData,
36
+ showSearch = _a.showSearch,
37
+ treeDefaultExpandAll = _a.treeDefaultExpandAll,
38
+ treeExpandedKeys = _a.treeExpandedKeys,
39
+ fieldNames = _a.fieldNames,
40
+ dropdownMatchSelectWidth = _a.dropdownMatchSelectWidth,
41
+ dropdownStyle = _a.dropdownStyle,
42
+ treeCheckable = _a.treeCheckable,
43
+ restProps = __rest(_a, ["value", "onChange", "renderItem", "treeData", "showSearch", "treeDefaultExpandAll", "treeExpandedKeys", "fieldNames", "dropdownMatchSelectWidth", "dropdownStyle", "treeCheckable"]);
44
+ var mergeDropdownStyle = (0, _react.useMemo)(function () {
45
+ return Array.isArray(treeData) && treeData.length ? dropdownStyle : {};
46
+ }, [dropdownStyle, treeData]);
47
+ var mergeDropdownMatchSelectWidth = (0, _react.useMemo)(function () {
48
+ return Array.isArray(treeData) && treeData.length ? dropdownMatchSelectWidth : true;
49
+ }, [dropdownMatchSelectWidth, treeData]);
50
+ var handleRender = function handleRender(rest) {
51
+ return _react["default"].createElement("div", {
52
+ className: 'virtual-tree-options'
53
+ }, _react["default"].createElement(_tntdVirtualTree["default"], Object.assign({}, rest)));
54
+ };
55
+ return _react["default"].createElement(_tntdRcSelect["default"], Object.assign({}, restProps, {
56
+ dropdownMatchSelectWidth: mergeDropdownMatchSelectWidth,
57
+ dropdownStyle: Object.assign({
58
+ maxHeight: '100vh',
59
+ overflow: 'auto'
60
+ }, mergeDropdownStyle),
61
+ dropdownRender: function dropdownRender() {
62
+ return handleRender({
63
+ value: value,
64
+ onChange: onChange,
65
+ renderItem: renderItem,
66
+ treeData: treeData,
67
+ showSearch: showSearch,
68
+ treeDefaultExpandAll: treeDefaultExpandAll,
69
+ treeExpandedKeys: treeExpandedKeys,
70
+ fieldNames: fieldNames,
71
+ treeCheckable: treeCheckable
72
+ });
73
+ }
74
+ }));
75
+ };
76
+ var _default = exports["default"] = TntdVirtualTreeSelect;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/tntd-virtual-tree-select/index.jsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;;;;;GAMG;AACH,+CAAiD;AACjD,uEAAwC;AACxC,6EAAmD;AACnD,wBAAsB;AAEtB,MAAM,qBAAqB,GAAG,CAAC,EAG5B,EAAE,EAAE;QAHwB,EAC3B,KAAK,EAAE,QAAQ,EAAE,UAAU,EAAE,QAAQ,EAAE,UAAU,EAAE,oBAAoB,EAAE,gBAAgB,EACzF,UAAU,EAAE,wBAAwB,EAAE,aAAa,EAAE,aAAa,OACnE,EADwE,SAAS,cAFrD,qLAG5B,CADiF;IAGlF,MAAM,kBAAkB,GAAG,IAAA,eAAO,EAAC,GAAG,EAAE;QACtC,OAAO,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAE,aAAa,CAAC,CAAC,CAAC,EAAE,CAAA;IACzE,CAAC,EAAE,CAAC,aAAa,EAAE,QAAQ,CAAC,CAAC,CAAA;IAE7B,MAAM,6BAA6B,GAAG,IAAA,eAAO,EAAC,GAAG,EAAE;QACjD,OAAO,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAE,wBAAwB,CAAC,CAAC,CAAC,IAAI,CAAA;IACtF,CAAC,EAAE,CAAC,wBAAwB,EAAE,QAAQ,CAAC,CAAC,CAAA;IAExC,MAAM,YAAY,GAAG,CAAC,IAAI,EAAE,EAAE;QAC5B,OAAO,CACL,uCAAK,SAAS,EAAC,sBAAsB;YACnC,8BAAC,2BAAe,oBAAK,IAAI,EAAI,CACzB,CACP,CAAA;IACH,CAAC,CAAA;IAED,OAAO,CACL,8BAAC,wBAAQ,oBACH,SAAS,IACb,wBAAwB,EAAE,6BAA6B,EACvD,aAAa,kBAAI,SAAS,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,IAAK,kBAAkB,GAC5E,cAAc,EAAE,GAAG,EAAE,CAAC,YAAY,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,UAAU,EAAE,QAAQ,EAAE,UAAU,EAAE,oBAAoB,EAAE,gBAAgB,EAAE,UAAU,EAAE,aAAa,EAAE,CAAC,IAC5J,CACH,CAAC;AACJ,CAAC,CAAC;AAEF,kBAAe,qBAAqB,CAAA","sourcesContent":["/*\n * @Descripttion: 用select包裹虚拟树\n * @Author: 郑泳健\n * @Date: 2024-08-05 10:50:17\n * @LastEditors: 郑泳健\n * @LastEditTime: 2024-08-06 09:56:18\n */\nimport React, { useState, useMemo } from 'react';\nimport RcSelect from '../tntd-rc-select'\nimport TntdVirtualTree from '../tntd-virtual-tree';\nimport './index.less';\n\nconst TntdVirtualTreeSelect = ({ \n value, onChange, renderItem, treeData, showSearch, treeDefaultExpandAll, treeExpandedKeys, \n fieldNames, dropdownMatchSelectWidth, dropdownStyle, treeCheckable, ...restProps \n }) => {\n \n const mergeDropdownStyle = useMemo(() => {\n return Array.isArray(treeData) && treeData.length ? dropdownStyle : {}\n }, [dropdownStyle, treeData])\n\n const mergeDropdownMatchSelectWidth = useMemo(() => {\n return Array.isArray(treeData) && treeData.length ? dropdownMatchSelectWidth : true\n }, [dropdownMatchSelectWidth, treeData])\n\n const handleRender = (rest) => {\n return (\n <div className='virtual-tree-options'>\n <TntdVirtualTree {...rest} />\n </div>\n )\n }\n\n return (\n <RcSelect\n {...restProps}\n dropdownMatchSelectWidth={mergeDropdownMatchSelectWidth}\n dropdownStyle={{ maxHeight: '100vh', overflow: 'auto', ...mergeDropdownStyle }}\n dropdownRender={() => handleRender({ value, onChange, renderItem, treeData, showSearch, treeDefaultExpandAll, treeExpandedKeys, fieldNames, treeCheckable })}\n />\n );\n};\n\nexport default TntdVirtualTreeSelect\n"]}
@@ -0,0 +1,3 @@
1
+ .virtual-tree-options{
2
+ padding: 10px;
3
+ }