tntd 3.0.10 → 3.0.11-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 (337) hide show
  1. package/es/array-input/index.js +10 -3
  2. package/es/array-input/index.js.map +1 -1
  3. package/es/index.js +2 -1
  4. package/es/index.js.map +1 -1
  5. package/es/locale/en_US.js +16 -0
  6. package/es/locale/en_US.js.map +1 -1
  7. package/es/locale/zh_CN.js +16 -0
  8. package/es/locale/zh_CN.js.map +1 -1
  9. package/es/prev-locale.js +32 -2
  10. package/es/prev-locale.js.map +1 -1
  11. package/es/query-list-scene/QueryForm.js +6 -3
  12. package/es/query-list-scene/QueryForm.js.map +1 -1
  13. package/es/query-list-scene/index.less +4 -0
  14. package/es/table/index.js +2 -2
  15. package/es/table/index.js.map +1 -1
  16. package/es/table/resizableTable/index.js +87 -0
  17. package/es/table/resizableTable/index.js.map +1 -0
  18. package/es/table/resizableTable/index.less +36 -0
  19. package/es/table/table-hoc.js +26 -0
  20. package/es/table/table-hoc.js.map +1 -0
  21. package/es/tabs/tabs.less +23 -0
  22. package/es/title/index.less +4 -1
  23. package/es/tntd-reference/AHref/index.js +39 -0
  24. package/es/tntd-reference/AHref/index.js.map +1 -0
  25. package/es/tntd-reference/ReferenceBatchCheck/index.js +153 -0
  26. package/es/tntd-reference/ReferenceBatchCheck/index.js.map +1 -0
  27. package/es/tntd-reference/ReferenceBatchCheck/index.less +21 -0
  28. package/es/tntd-reference/ReferenceBatchDrawer/index.js +102 -0
  29. package/es/tntd-reference/ReferenceBatchDrawer/index.js.map +1 -0
  30. package/es/tntd-reference/ReferenceBatchDrawer/index.less +0 -0
  31. package/es/tntd-reference/ReferenceCheck/index.js +117 -0
  32. package/es/tntd-reference/ReferenceCheck/index.js.map +1 -0
  33. package/es/tntd-reference/ReferenceCheck/index.less +10 -0
  34. package/es/tntd-reference/ReferenceDrawer/index.js +69 -0
  35. package/es/tntd-reference/ReferenceDrawer/index.js.map +1 -0
  36. package/es/tntd-reference/ReferenceDrawer/index.less +0 -0
  37. package/es/tntd-reference/ReferenceInfo/index.js +150 -0
  38. package/es/tntd-reference/ReferenceInfo/index.js.map +1 -0
  39. package/es/tntd-reference/ReferenceInfo/index.less +31 -0
  40. package/es/tntd-reference/index.js +13 -0
  41. package/es/tntd-reference/index.js.map +1 -0
  42. package/es/tntd-virtual-tree/index.js +14 -3
  43. package/es/tntd-virtual-tree/index.js.map +1 -1
  44. package/es/tntd-virtual-tree/index.less +2 -42
  45. package/es/tntd-virtual-tree-select/index.js +95 -21
  46. package/es/tntd-virtual-tree-select/index.js.map +1 -1
  47. package/es/tntd-virtual-tree-select/utils.js +20 -124
  48. package/es/tntd-virtual-tree-select/utils.js.map +1 -1
  49. package/lib/_util/context.js +1 -1
  50. package/lib/_util/defaultRenderEmpty.js +1 -1
  51. package/lib/_util/hooks/useFlexGapSupport.js +4 -4
  52. package/lib/_util/hooks/useForceUpdate.js +4 -4
  53. package/lib/_util/responsiveObserve.js +1 -1
  54. package/lib/_util/styleChecker.js +1 -1
  55. package/lib/actions/index.js +1 -1
  56. package/lib/alert/alert.js +2 -2
  57. package/lib/alert/index.js +1 -1
  58. package/lib/array-input/index.d.ts.map +1 -1
  59. package/lib/array-input/index.js +22 -13
  60. package/lib/array-input/index.js.map +1 -1
  61. package/lib/button/button.js +2 -2
  62. package/lib/cascader/cascader.js +1 -1
  63. package/lib/check-card/group.js +8 -8
  64. package/lib/check-card/index.js +6 -6
  65. package/lib/checkbox/checkbox.js +1 -1
  66. package/lib/color-picker/ColorPicker.js +6 -6
  67. package/lib/color-picker/index.js +1 -1
  68. package/lib/columns/index.js +1 -1
  69. package/lib/config-provider/config-provider.js +1 -1
  70. package/lib/date-picker/DatePicker.js +1 -1
  71. package/lib/descriptions/descriptions.js +5 -5
  72. package/lib/development-login/LoginModal.js +6 -6
  73. package/lib/development-login/index.js +4 -4
  74. package/lib/drawer/drawer.js +2 -2
  75. package/lib/ellipsis/Svg/CopySVG.js +1 -1
  76. package/lib/ellipsis/Svg/TickSVG.js +1 -1
  77. package/lib/ellipsis/index.js +5 -5
  78. package/lib/empty/empty.js +2 -2
  79. package/lib/empty/empty.stories.js +2 -2
  80. package/lib/exception/exception.js +1 -1
  81. package/lib/form/form.js +2 -2
  82. package/lib/grid-v4/col.js +2 -2
  83. package/lib/grid-v4/hooks/useBreakpoint.js +1 -1
  84. package/lib/grid-v4/index.js +1 -1
  85. package/lib/grid-v4/row.js +6 -6
  86. package/lib/handle/index.js +1 -1
  87. package/lib/handle-icon/index.js +11 -11
  88. package/lib/icon/IconFont.js +1 -1
  89. package/lib/icon/components/Icon.js +9 -9
  90. package/lib/icon/components/index.js +1 -1
  91. package/lib/icon/components/utils.js +3 -3
  92. package/lib/icon/index.js +7 -7
  93. package/lib/icon/twoTonePrimaryColor.js +1 -1
  94. package/lib/icon/utils.js +1 -1
  95. package/lib/img/Contain.js +1 -1
  96. package/lib/img/Cover.js +5 -5
  97. package/lib/img/index.js +5 -5
  98. package/lib/index.d.ts +2 -1
  99. package/lib/index.d.ts.map +1 -1
  100. package/lib/index.js +10 -3
  101. package/lib/index.js.map +1 -1
  102. package/lib/input/input.js +2 -2
  103. package/lib/input-number/inputNumber.js +1 -1
  104. package/lib/label/index.js +2 -2
  105. package/lib/loading-button/index.js +5 -5
  106. package/lib/locale/default.d.ts +16 -0
  107. package/lib/locale/default.d.ts.map +1 -1
  108. package/lib/locale/default.js +1 -1
  109. package/lib/locale/en_US.d.ts +16 -0
  110. package/lib/locale/en_US.d.ts.map +1 -1
  111. package/lib/locale/en_US.js +17 -1
  112. package/lib/locale/en_US.js.map +1 -1
  113. package/lib/locale/zh_CN.d.ts +16 -0
  114. package/lib/locale/zh_CN.d.ts.map +1 -1
  115. package/lib/locale/zh_CN.js +17 -1
  116. package/lib/locale/zh_CN.js.map +1 -1
  117. package/lib/modal/modal.js +1 -1
  118. package/lib/notification/assets/index.js +1 -1
  119. package/lib/notification/index.js +1 -1
  120. package/lib/notification/notification.js +1 -1
  121. package/lib/page/Box.js +1 -1
  122. package/lib/page/index.js +7 -7
  123. package/lib/page-container/index.js +1 -1
  124. package/lib/page-loading/index.js +1 -1
  125. package/lib/popconfirm/popconfirm.js +1 -1
  126. package/lib/popover/popover.js +1 -1
  127. package/lib/prev-locale.d.ts +42 -0
  128. package/lib/prev-locale.d.ts.map +1 -1
  129. package/lib/prev-locale.js +32 -2
  130. package/lib/prev-locale.js.map +1 -1
  131. package/lib/preview-text/index.js +7 -7
  132. package/lib/progress/progress.js +2 -2
  133. package/lib/query-form/Field/Checkbox.js +1 -1
  134. package/lib/query-form/Field/Select.js +6 -6
  135. package/lib/query-form/Field/SelectInput.js +6 -6
  136. package/lib/query-form/Field/fieldsMap.js +1 -1
  137. package/lib/query-form/Field/index.js +10 -10
  138. package/lib/query-form/createActions.js +1 -1
  139. package/lib/query-form/index.js +10 -10
  140. package/lib/query-form/useForm.js +1 -1
  141. package/lib/query-form-v3/Field/Checkbox.js +1 -1
  142. package/lib/query-form-v3/Field/Composition/FieldPopover.js +5 -5
  143. package/lib/query-form-v3/Field/Composition/Select.js +6 -6
  144. package/lib/query-form-v3/Field/Composition/index.js +9 -9
  145. package/lib/query-form-v3/Field/Composition/utils.js +1 -1
  146. package/lib/query-form-v3/Field/Select.js +6 -6
  147. package/lib/query-form-v3/Field/SelectInput.js +6 -6
  148. package/lib/query-form-v3/Field/fieldsMap.js +1 -1
  149. package/lib/query-form-v3/Field/index.js +10 -10
  150. package/lib/query-form-v3/createActions.js +1 -1
  151. package/lib/query-form-v3/index.js +6 -6
  152. package/lib/query-form-v3/useForm.js +1 -1
  153. package/lib/query-list-scene/List.js +13 -13
  154. package/lib/query-list-scene/QueryForm.d.ts +2 -2
  155. package/lib/query-list-scene/QueryForm.d.ts.map +1 -1
  156. package/lib/query-list-scene/QueryForm.js +19 -17
  157. package/lib/query-list-scene/QueryForm.js.map +1 -1
  158. package/lib/query-list-scene/QueryListScene.js +10 -10
  159. package/lib/query-list-scene/Title.js +1 -1
  160. package/lib/query-list-scene/Toolbar.js +2 -2
  161. package/lib/query-list-scene/createActions.js +1 -1
  162. package/lib/query-list-scene/index.js +1 -1
  163. package/lib/query-list-scene/index.less +4 -0
  164. package/lib/query-list-scene/useActions.js +1 -1
  165. package/lib/radio/radio.js +1 -1
  166. package/lib/render-empty/render-empty.js +1 -1
  167. package/lib/segmented/index.d.ts +1 -1
  168. package/lib/segmented/index.js +2 -2
  169. package/lib/select/select.js +2 -2
  170. package/lib/spin/spin.js +1 -1
  171. package/lib/steps/steps.js +2 -2
  172. package/lib/svg-components/index.js +1 -1
  173. package/lib/table/hooks/use-column-setting.js +4 -4
  174. package/lib/table/hooks/use-expand-fixed.js +6 -6
  175. package/lib/table/index.d.ts +2 -2
  176. package/lib/table/index.d.ts.map +1 -1
  177. package/lib/table/index.js +7 -7
  178. package/lib/table/index.js.map +1 -1
  179. package/lib/table/resizableTable/index.d.ts +12 -0
  180. package/lib/table/resizableTable/index.d.ts.map +1 -0
  181. package/lib/table/resizableTable/index.js +110 -0
  182. package/lib/table/resizableTable/index.js.map +1 -0
  183. package/lib/table/resizableTable/index.less +36 -0
  184. package/lib/table/table-hoc.d.ts +7 -0
  185. package/lib/table/table-hoc.d.ts.map +1 -0
  186. package/lib/table/table-hoc.js +34 -0
  187. package/lib/table/table-hoc.js.map +1 -0
  188. package/lib/table/table.js +9 -9
  189. package/lib/table/table.stories.d.ts +1 -1
  190. package/lib/table/table.stories.js +2 -2
  191. package/lib/table/total-shower.js +1 -1
  192. package/lib/table/utils.js +1 -1
  193. package/lib/table-container/index.js +1 -1
  194. package/lib/tabs/tabs.js +2 -2
  195. package/lib/tabs/tabs.less +23 -0
  196. package/lib/tabs-container/index.js +1 -1
  197. package/lib/tag/tag.js +2 -2
  198. package/lib/time-picker/TimePicker.js +1 -1
  199. package/lib/time-picker/index.js +1 -1
  200. package/lib/title/index.js +1 -1
  201. package/lib/title/index.less +4 -1
  202. package/lib/tntd-action/Action.js +9 -9
  203. package/lib/tntd-action/index.js +8 -8
  204. package/lib/tntd-cascader/AntdCascader/component/context.js +1 -1
  205. package/lib/tntd-cascader/AntdCascader/component/defaultRenderEmpty.js +1 -1
  206. package/lib/tntd-cascader/AntdCascader/component/getIcons.js +1 -1
  207. package/lib/tntd-cascader/AntdCascader/component/useCompactItemContext.js +2 -2
  208. package/lib/tntd-cascader/AntdCascader/config/utils.js +2 -2
  209. package/lib/tntd-cascader/AntdCascader/index.js +7 -7
  210. package/lib/tntd-cascader/index.js +1 -1
  211. package/lib/tntd-cascader/rc-cascader/Cascader.js +8 -8
  212. package/lib/tntd-cascader/rc-cascader/OptionList/Checkbox.js +2 -2
  213. package/lib/tntd-cascader/rc-cascader/OptionList/Column.js +7 -7
  214. package/lib/tntd-cascader/rc-cascader/OptionList/index.js +9 -9
  215. package/lib/tntd-cascader/rc-cascader/OptionList/useActive.js +5 -5
  216. package/lib/tntd-cascader/rc-cascader/OptionList/useKeyboard.js +8 -8
  217. package/lib/tntd-cascader/rc-cascader/hooks/useDisplayValues.js +5 -5
  218. package/lib/tntd-cascader/rc-cascader/hooks/useSearchConfig.js +1 -1
  219. package/lib/tntd-cascader/rc-cascader/hooks/useSearchOptions.js +6 -6
  220. package/lib/tntd-cascader/rc-cascader/index.js +1 -1
  221. package/lib/tntd-cascader/rc-cascader/utils/warningPropsUtil.js +4 -4
  222. package/lib/tntd-form/ErrorList.js +7 -7
  223. package/lib/tntd-form/Form.js +6 -6
  224. package/lib/tntd-form/FormItem/ItemHolder.js +6 -6
  225. package/lib/tntd-form/FormItem/index.js +8 -8
  226. package/lib/tntd-form/FormItemInput.js +1 -1
  227. package/lib/tntd-form/FormItemLabel.js +2 -2
  228. package/lib/tntd-form/FormList.js +1 -1
  229. package/lib/tntd-form/context.js +1 -1
  230. package/lib/tntd-form/hooks/useDebounce.js +4 -4
  231. package/lib/tntd-form/hooks/useForm.js +5 -5
  232. package/lib/tntd-form/hooks/useFormItemStatus.js +1 -1
  233. package/lib/tntd-form/hooks/useFrameState.js +5 -5
  234. package/lib/tntd-form/index.js +1 -1
  235. package/lib/tntd-icon/index.js +1 -1
  236. package/lib/tntd-layout/AppList.js +6 -6
  237. package/lib/tntd-layout/Application.js +6 -6
  238. package/lib/tntd-layout/Avatar.js +2 -2
  239. package/lib/tntd-layout/CompatibleLanguage.js +6 -6
  240. package/lib/tntd-layout/EnterpriseLayout/Avatar.js +2 -2
  241. package/lib/tntd-layout/EnterpriseLayout/Language.js +6 -6
  242. package/lib/tntd-layout/EnterpriseLayout/Theme.js +6 -6
  243. package/lib/tntd-layout/EnterpriseLayout/index.js +1 -1
  244. package/lib/tntd-layout/GlobalNavigation/NavigationPopup.js +6 -6
  245. package/lib/tntd-layout/GlobalNavigation/index.js +9 -9
  246. package/lib/tntd-layout/Header.js +2 -2
  247. package/lib/tntd-layout/HeaderActions.js +2 -2
  248. package/lib/tntd-layout/HeaderNavs.js +6 -6
  249. package/lib/tntd-layout/HeaderTabs.js +7 -7
  250. package/lib/tntd-layout/Iconfont.js +1 -1
  251. package/lib/tntd-layout/Language.js +6 -6
  252. package/lib/tntd-layout/Layout.js +6 -6
  253. package/lib/tntd-layout/Logo.js +2 -2
  254. package/lib/tntd-layout/OrgAppList.js +6 -6
  255. package/lib/tntd-layout/SideMenu.js +6 -6
  256. package/lib/tntd-layout/Theme.js +6 -6
  257. package/lib/tntd-layout/createActions.js +1 -1
  258. package/lib/tntd-layout/images/index.js +1 -1
  259. package/lib/tntd-layout/index.js +1 -1
  260. package/lib/tntd-layout/paaslayout/CompactSideMenu.js +6 -6
  261. package/lib/tntd-layout/paaslayout/Header.js +2 -2
  262. package/lib/tntd-layout/paaslayout/Logo.js +2 -2
  263. package/lib/tntd-layout/paaslayout/SideMenu.js +6 -6
  264. package/lib/tntd-layout/paaslayout/index.js +6 -6
  265. package/lib/tntd-layout/storage.js +1 -1
  266. package/lib/tntd-modal/index.js +6 -6
  267. package/lib/tntd-rc-select/_util/PurePanel.js +5 -5
  268. package/lib/tntd-rc-select/_util/context.js +1 -1
  269. package/lib/tntd-rc-select/_util/defaultRenderEmpty.js +1 -1
  270. package/lib/tntd-rc-select/_util/getIcons.js +1 -1
  271. package/lib/tntd-rc-select/_util/useCompactItemContext.js +2 -2
  272. package/lib/tntd-rc-select/index.js +2 -2
  273. package/lib/tntd-reference/AHref/index.d.ts +4 -0
  274. package/lib/tntd-reference/AHref/index.d.ts.map +1 -0
  275. package/lib/tntd-reference/AHref/index.js +44 -0
  276. package/lib/tntd-reference/AHref/index.js.map +1 -0
  277. package/lib/tntd-reference/ReferenceBatchCheck/index.d.ts +3 -0
  278. package/lib/tntd-reference/ReferenceBatchCheck/index.d.ts.map +1 -0
  279. package/lib/tntd-reference/ReferenceBatchCheck/index.js +165 -0
  280. package/lib/tntd-reference/ReferenceBatchCheck/index.js.map +1 -0
  281. package/lib/tntd-reference/ReferenceBatchCheck/index.less +21 -0
  282. package/lib/tntd-reference/ReferenceBatchDrawer/index.d.ts +4 -0
  283. package/lib/tntd-reference/ReferenceBatchDrawer/index.d.ts.map +1 -0
  284. package/lib/tntd-reference/ReferenceBatchDrawer/index.js +126 -0
  285. package/lib/tntd-reference/ReferenceBatchDrawer/index.js.map +1 -0
  286. package/lib/tntd-reference/ReferenceBatchDrawer/index.less +0 -0
  287. package/lib/tntd-reference/ReferenceCheck/index.d.ts +3 -0
  288. package/lib/tntd-reference/ReferenceCheck/index.d.ts.map +1 -0
  289. package/lib/tntd-reference/ReferenceCheck/index.js +126 -0
  290. package/lib/tntd-reference/ReferenceCheck/index.js.map +1 -0
  291. package/lib/tntd-reference/ReferenceCheck/index.less +10 -0
  292. package/lib/tntd-reference/ReferenceDrawer/index.d.ts +4 -0
  293. package/lib/tntd-reference/ReferenceDrawer/index.d.ts.map +1 -0
  294. package/lib/tntd-reference/ReferenceDrawer/index.js +93 -0
  295. package/lib/tntd-reference/ReferenceDrawer/index.js.map +1 -0
  296. package/lib/tntd-reference/ReferenceDrawer/index.less +0 -0
  297. package/lib/tntd-reference/ReferenceInfo/index.d.ts +4 -0
  298. package/lib/tntd-reference/ReferenceInfo/index.d.ts.map +1 -0
  299. package/lib/tntd-reference/ReferenceInfo/index.js +164 -0
  300. package/lib/tntd-reference/ReferenceInfo/index.js.map +1 -0
  301. package/lib/tntd-reference/ReferenceInfo/index.less +31 -0
  302. package/lib/tntd-reference/index.d.ts +15 -0
  303. package/lib/tntd-reference/index.d.ts.map +1 -0
  304. package/lib/tntd-reference/index.js +20 -0
  305. package/lib/tntd-reference/index.js.map +1 -0
  306. package/lib/tntd-second-page/index.js +1 -1
  307. package/lib/tntd-select/DropDownWrap.js +8 -8
  308. package/lib/tntd-select/index.js +10 -9
  309. package/lib/tntd-virtual-tree/index.d.ts +3 -1
  310. package/lib/tntd-virtual-tree/index.d.ts.map +1 -1
  311. package/lib/tntd-virtual-tree/index.js +23 -12
  312. package/lib/tntd-virtual-tree/index.js.map +1 -1
  313. package/lib/tntd-virtual-tree/index.less +2 -42
  314. package/lib/tntd-virtual-tree/utils.js +28 -28
  315. package/lib/tntd-virtual-tree-select/index.d.ts +12 -4
  316. package/lib/tntd-virtual-tree-select/index.d.ts.map +1 -1
  317. package/lib/tntd-virtual-tree-select/index.js +99 -20
  318. package/lib/tntd-virtual-tree-select/index.js.map +1 -1
  319. package/lib/tntd-virtual-tree-select/utils.d.ts +2 -9
  320. package/lib/tntd-virtual-tree-select/utils.d.ts.map +1 -1
  321. package/lib/tntd-virtual-tree-select/utils.js +28 -147
  322. package/lib/tntd-virtual-tree-select/utils.js.map +1 -1
  323. package/lib/tooltip/tooltip.js +1 -1
  324. package/lib/upload/index.js +1 -1
  325. package/lib/utils/checkAuth.js +4 -4
  326. package/lib/utils/index.js +9 -9
  327. package/lib/utils/lang.js +3 -3
  328. package/lib/water-mark/index.js +5 -5
  329. package/package.json +4 -2
  330. package/es/tntd-virtual-tree-select/VirtualTree.js +0 -125
  331. package/es/tntd-virtual-tree-select/VirtualTree.js.map +0 -1
  332. package/es/tntd-virtual-tree-select/tree.less +0 -29
  333. package/lib/tntd-virtual-tree-select/VirtualTree.d.ts +0 -13
  334. package/lib/tntd-virtual-tree-select/VirtualTree.d.ts.map +0 -1
  335. package/lib/tntd-virtual-tree-select/VirtualTree.js +0 -155
  336. package/lib/tntd-virtual-tree-select/VirtualTree.js.map +0 -1
  337. package/lib/tntd-virtual-tree-select/tree.less +0 -29
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "tntd",
3
- "version": "3.0.10",
3
+ "version": "3.0.11-beta.1",
4
4
  "license": "MIT",
5
5
  "scripts": {
6
6
  "start": "heft start --storybook",
@@ -43,7 +43,9 @@
43
43
  "scroll-into-view-if-needed": "^2.2.25",
44
44
  "@tntd/icons": "^1.0.10",
45
45
  "@ant-design/colors": "^3.1.0",
46
- "rc-resize-observer": "~1.4.0"
46
+ "rc-resize-observer": "~1.4.0",
47
+ "react-resizable": "~3.0.4",
48
+ "@types/react-resizable": "~3.0.8"
47
49
  },
48
50
  "devDependencies": {
49
51
  "@react-types/shared": "^3.10.1",
@@ -1,125 +0,0 @@
1
- /*
2
- * @Descripttion: 最简单的tree下拉框,增加了虚拟滚动
3
- * @Author: 郑泳健
4
- * @Date: 2024-07-31 14:46:55
5
- * @LastEditors: 郑泳健
6
- * @LastEditTime: 2024-08-05 15:58:47
7
- */
8
- import React, { useState, useMemo, useEffect } from 'react';
9
- import List from 'rc-virtual-list';
10
- import Icon from '../icon';
11
- import Ellipsis from '../ellipsis';
12
- import Empty from '../empty';
13
- import Input from '../input';
14
- import { flatTreeData, getFullExpandedKeys, addTreeNodeKeys } from './utils';
15
- import './tree.less';
16
- const VirtualTree = ({
17
- value,
18
- onChange,
19
- treeDefaultExpandAll,
20
- fieldNames,
21
- treeExpandedKeys,
22
- showSearch,
23
- treeData,
24
- renderItem
25
- }) => {
26
- const ref = React.useRef(null);
27
- // 展开的节点列表
28
- const [expandedKeys, setExpandedKeys] = useState([]);
29
- const [choosedValue, setChoosedValue] = useState([]);
30
- const [filterKey, setFilterKey] = useState(undefined);
31
- useEffect(() => {
32
- if (!['', null, undefined].includes(value)) {
33
- setChoosedValue(value);
34
- } else {
35
- setChoosedValue(undefined);
36
- }
37
- }, [value]);
38
- /** 给每个节点增加属性keys,值为其下面所有节点的集合 */
39
- const treeDataWithKeys = useMemo(() => {
40
- return addTreeNodeKeys(treeData, fieldNames);
41
- }, [treeData, fieldNames]);
42
- const mergeTreeDefaultExpandAll = useMemo(() => {
43
- if (Array.isArray(treeExpandedKeys) && treeExpandedKeys.length) {
44
- return false;
45
- }
46
- return treeDefaultExpandAll;
47
- }, [treeDefaultExpandAll, treeExpandedKeys]);
48
- /** 获取到所有展开的节点,因为treeDataWithKeys可能传入的是最后一级 */
49
- useEffect(() => {
50
- let transTreeExpandedKeys = Array.isArray(treeExpandedKeys) ? treeExpandedKeys : [];
51
- if (value) {
52
- transTreeExpandedKeys = [...treeExpandedKeys, value];
53
- }
54
- const _expandedKeys = getFullExpandedKeys(treeDataWithKeys, transTreeExpandedKeys, mergeTreeDefaultExpandAll);
55
- setExpandedKeys(_expandedKeys);
56
- }, [treeDataWithKeys, treeExpandedKeys, mergeTreeDefaultExpandAll, value]);
57
- /** 最终渲染的数据 */
58
- const renderData = useMemo(() => {
59
- return flatTreeData(treeDataWithKeys, filterKey, expandedKeys);
60
- }, [treeDataWithKeys, filterKey, expandedKeys]);
61
- /** 切换展开/收起 */
62
- const handleToggle = item => {
63
- const {
64
- value
65
- } = item || {};
66
- const bool = Array.isArray(expandedKeys) ? expandedKeys.includes(value) : false;
67
- if (bool) {
68
- const list = Array.isArray(expandedKeys) ? expandedKeys.filter(i => i !== value) : [];
69
- setExpandedKeys(list);
70
- } else {
71
- setExpandedKeys([...expandedKeys, value]);
72
- }
73
- };
74
- const defaultRenderItem = (item, expandedKeys) => {
75
- return React.createElement(Ellipsis, {
76
- title: item.title,
77
- widthLimit: '100%'
78
- });
79
- };
80
- const handleChange = _value => {
81
- setChoosedValue(_value);
82
- onChange === null || onChange === void 0 ? void 0 : onChange(_value);
83
- };
84
- const handleInput = e => {
85
- const _filterValue = e.target.value;
86
- setFilterKey(_filterValue);
87
- };
88
- return React.createElement("div", {
89
- className: 'tntd-tree-select'
90
- }, showSearch && Array.isArray(treeData) && !!treeData.length ? React.createElement(Input, {
91
- onChange: handleInput,
92
- allowClear: true
93
- }) : '', !Array.isArray(renderData) || !renderData.length ? React.createElement(Empty, {
94
- size: 'small'
95
- }) : React.createElement(List, {
96
- ref: ref,
97
- height: 300,
98
- itemHeight: 44,
99
- data: renderData
100
- }, item => {
101
- const {
102
- level,
103
- children
104
- } = item;
105
- const bool = expandedKeys.includes(item.value);
106
- return React.createElement("div", {
107
- className: "tntd-tree-select-item",
108
- style: {
109
- paddingLeft: level * 18
110
- }
111
- }, React.createElement("div", {
112
- style: {
113
- width: 18,
114
- paddingLeft: 3
115
- }
116
- }, Array.isArray(children) && !!children.length ? React.createElement(Icon, {
117
- type: bool ? 'caret-down' : 'caret-right',
118
- onClick: () => handleToggle(item)
119
- }) : React.createElement(Icon, null)), React.createElement("div", {
120
- className: `tntd-tree-select-item-title ${choosedValue === item.value ? 'tntd-tree-select-item-title_active' : ''}`,
121
- onClick: () => handleChange(item.value)
122
- }, renderItem ? renderItem(item, expandedKeys) : defaultRenderItem(item, expandedKeys)));
123
- }));
124
- };
125
- export default VirtualTree;
@@ -1 +0,0 @@
1
- {"version":3,"file":"VirtualTree.js","sourceRoot":"","sources":["../../src/tntd-virtual-tree-select/VirtualTree.jsx"],"names":[],"mappings":"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","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"]}
@@ -1,29 +0,0 @@
1
- .tntd-tree-select{
2
- padding: 0;
3
- white-space: nowrap;
4
- .tntd-tree-select-item{
5
- display: flex;
6
- border-radius: var(--border-radius-sm);
7
- color: #17233d;
8
- text-decoration: none;
9
- cursor: pointer;
10
- line-height: 30px;
11
- font-size: 14px;
12
-
13
- .anticon-caret-down,.anticon-caret-right {
14
- vertical-align: middle;
15
- font-size: 12px;
16
- }
17
-
18
- .tntd-tree-select-item-title{
19
- padding: 3px 5px;
20
- flex: 1;
21
- overflow: hidden;
22
-
23
- &_active{
24
- background-color: var(--blue-2);
25
- }
26
- }
27
- }
28
- }
29
-
@@ -1,13 +0,0 @@
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
@@ -1 +0,0 @@
1
- {"version":3,"file":"VirtualTree.d.ts","sourceRoot":"","sources":["../../src/tntd-virtual-tree-select/VirtualTree.jsx"],"names":[],"mappings":";AAgBA;;;;;;;;;sBA2GC"}
@@ -1,155 +0,0 @@
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;
@@ -1 +0,0 @@
1
- {"version":3,"file":"VirtualTree.js","sourceRoot":"","sources":["../../src/tntd-virtual-tree-select/VirtualTree.jsx"],"names":[],"mappings":"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","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"]}
@@ -1,29 +0,0 @@
1
- .tntd-tree-select{
2
- padding: 0;
3
- white-space: nowrap;
4
- .tntd-tree-select-item{
5
- display: flex;
6
- border-radius: var(--border-radius-sm);
7
- color: #17233d;
8
- text-decoration: none;
9
- cursor: pointer;
10
- line-height: 30px;
11
- font-size: 14px;
12
-
13
- .anticon-caret-down,.anticon-caret-right {
14
- vertical-align: middle;
15
- font-size: 12px;
16
- }
17
-
18
- .tntd-tree-select-item-title{
19
- padding: 3px 5px;
20
- flex: 1;
21
- overflow: hidden;
22
-
23
- &_active{
24
- background-color: var(--blue-2);
25
- }
26
- }
27
- }
28
- }
29
-