rsuite 5.56.0 → 5.58.0

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 (272) hide show
  1. package/Accordion/styles/index.css +30 -0
  2. package/AutoComplete/styles/index.css +0 -137
  3. package/CHANGELOG.md +32 -0
  4. package/CascadeTree/package.json +7 -0
  5. package/CascadeTree/styles/index.css +273 -0
  6. package/CascadeTree/styles/index.less +77 -0
  7. package/CascadeTree/styles/search.less +45 -0
  8. package/Cascader/styles/index.css +187 -329
  9. package/Cascader/styles/index.less +1 -122
  10. package/CheckPicker/styles/index.css +0 -137
  11. package/CheckTree/styles/index.css +0 -137
  12. package/CheckTreePicker/styles/index.css +0 -137
  13. package/DatePicker/styles/index.css +0 -137
  14. package/DateRangePicker/styles/index.css +0 -137
  15. package/Dropdown/styles/index.css +35 -8
  16. package/Dropdown/styles/index.less +24 -13
  17. package/Heading/package.json +7 -0
  18. package/Heading/styles/index.css +42 -0
  19. package/Heading/styles/index.less +41 -0
  20. package/HeadingGroup/package.json +7 -0
  21. package/HeadingGroup/styles/index.css +5 -0
  22. package/HeadingGroup/styles/index.less +3 -0
  23. package/InputPicker/styles/index.css +29 -146
  24. package/InputPicker/styles/index.less +28 -12
  25. package/InputPicker/styles/mixin.less +7 -0
  26. package/MultiCascadeTree/package.json +7 -0
  27. package/MultiCascadeTree/styles/index.css +3564 -0
  28. package/MultiCascadeTree/styles/index.less +37 -0
  29. package/MultiCascader/styles/index.css +72 -206
  30. package/MultiCascader/styles/index.less +11 -31
  31. package/Nav/styles/index.css +35 -8
  32. package/Navbar/styles/index.css +35 -8
  33. package/Pagination/styles/index.css +0 -137
  34. package/Panel/styles/index.css +30 -0
  35. package/Panel/styles/index.less +1 -0
  36. package/Popover/styles/index.css +30 -0
  37. package/Popover/styles/index.less +3 -2
  38. package/SelectPicker/styles/index.css +0 -137
  39. package/Tabs/styles/index.css +35 -8
  40. package/TagInput/styles/index.css +132 -150
  41. package/TagPicker/styles/index.css +132 -150
  42. package/TagPicker/styles/index.less +57 -5
  43. package/TagPicker/styles/mixin.less +21 -0
  44. package/Text/package.json +7 -0
  45. package/Text/styles/index.css +192 -0
  46. package/Text/styles/index.less +117 -0
  47. package/cjs/@types/common.d.ts +12 -14
  48. package/cjs/CascadeTree/CascadeTree.d.ts +16 -0
  49. package/cjs/CascadeTree/CascadeTree.js +174 -0
  50. package/cjs/CascadeTree/SearchView.d.ts +17 -0
  51. package/cjs/CascadeTree/SearchView.js +106 -0
  52. package/cjs/CascadeTree/TreeView.d.ts +20 -0
  53. package/cjs/{Cascader → CascadeTree}/TreeView.js +42 -33
  54. package/cjs/CascadeTree/hooks/index.d.ts +3 -0
  55. package/cjs/CascadeTree/hooks/index.js +12 -0
  56. package/cjs/{Cascader/utils.d.ts → CascadeTree/hooks/usePaths.d.ts} +3 -25
  57. package/cjs/CascadeTree/hooks/usePaths.js +42 -0
  58. package/cjs/CascadeTree/hooks/useSearch.d.ts +17 -0
  59. package/cjs/CascadeTree/hooks/useSearch.js +59 -0
  60. package/cjs/CascadeTree/hooks/useSelect.d.ts +23 -0
  61. package/cjs/CascadeTree/hooks/useSelect.js +64 -0
  62. package/cjs/CascadeTree/index.d.ts +4 -0
  63. package/cjs/CascadeTree/index.js +9 -0
  64. package/cjs/CascadeTree/types.d.ts +66 -0
  65. package/cjs/CascadeTree/types.js +2 -0
  66. package/cjs/CascadeTree/utils.d.ts +32 -0
  67. package/cjs/CascadeTree/utils.js +66 -0
  68. package/cjs/Cascader/Cascader.d.ts +57 -26
  69. package/cjs/Cascader/Cascader.js +178 -249
  70. package/cjs/Cascader/useActive.d.ts +15 -0
  71. package/cjs/Cascader/useActive.js +43 -0
  72. package/cjs/CheckPicker/CheckPicker.js +2 -9
  73. package/cjs/CheckTreePicker/CheckTreePicker.js +2 -10
  74. package/cjs/DatePicker/DatePicker.js +5 -5
  75. package/cjs/DateRangePicker/DateRangePicker.js +3 -5
  76. package/cjs/Dropdown/DropdownItem.d.ts +10 -2
  77. package/cjs/Dropdown/DropdownItem.js +12 -3
  78. package/cjs/Heading/Heading.d.ts +16 -0
  79. package/cjs/Heading/Heading.js +44 -0
  80. package/cjs/Heading/index.d.ts +3 -0
  81. package/cjs/Heading/index.js +10 -0
  82. package/cjs/HeadingGroup/HeadingGroup.d.ts +8 -0
  83. package/cjs/HeadingGroup/HeadingGroup.js +17 -0
  84. package/cjs/HeadingGroup/index.d.ts +3 -0
  85. package/cjs/HeadingGroup/index.js +9 -0
  86. package/cjs/InlineEdit/InlineEdit.d.ts +1 -1
  87. package/cjs/InputPicker/InputPicker.js +7 -8
  88. package/cjs/Loader/Loader.js +5 -4
  89. package/cjs/MultiCascadeTree/MultiCascadeTree.d.ts +9 -0
  90. package/cjs/MultiCascadeTree/MultiCascadeTree.js +131 -0
  91. package/cjs/MultiCascadeTree/SearchView.d.ts +17 -0
  92. package/cjs/MultiCascadeTree/SearchView.js +117 -0
  93. package/cjs/MultiCascadeTree/TreeView.d.ts +22 -0
  94. package/cjs/{MultiCascader → MultiCascadeTree}/TreeView.js +20 -20
  95. package/cjs/MultiCascadeTree/hooks/index.d.ts +5 -0
  96. package/cjs/MultiCascadeTree/hooks/index.js +16 -0
  97. package/cjs/MultiCascadeTree/hooks/useCascadeValue.d.ts +18 -0
  98. package/cjs/MultiCascadeTree/hooks/useCascadeValue.js +202 -0
  99. package/cjs/MultiCascadeTree/hooks/useColumnData.d.ts +16 -0
  100. package/cjs/MultiCascadeTree/hooks/useColumnData.js +52 -0
  101. package/cjs/MultiCascadeTree/hooks/useFlattenData.d.ts +9 -0
  102. package/cjs/MultiCascadeTree/hooks/useFlattenData.js +33 -0
  103. package/cjs/MultiCascadeTree/hooks/useSearch.d.ts +17 -0
  104. package/cjs/MultiCascadeTree/hooks/useSearch.js +52 -0
  105. package/cjs/MultiCascadeTree/hooks/useSelect.d.ts +19 -0
  106. package/cjs/MultiCascadeTree/hooks/useSelect.js +83 -0
  107. package/cjs/MultiCascadeTree/index.d.ts +4 -0
  108. package/cjs/MultiCascadeTree/index.js +9 -0
  109. package/cjs/MultiCascadeTree/types.d.ts +26 -0
  110. package/cjs/MultiCascadeTree/types.js +2 -0
  111. package/cjs/MultiCascadeTree/utils.d.ts +37 -0
  112. package/cjs/MultiCascadeTree/utils.js +140 -0
  113. package/cjs/MultiCascader/MultiCascader.d.ts +57 -29
  114. package/cjs/MultiCascader/MultiCascader.js +173 -289
  115. package/cjs/Panel/Panel.js +3 -1
  116. package/cjs/Popover/Popover.js +3 -1
  117. package/cjs/SelectPicker/SelectPicker.js +3 -9
  118. package/cjs/Text/Text.d.ts +47 -0
  119. package/cjs/Text/Text.js +72 -0
  120. package/cjs/Text/index.d.ts +3 -0
  121. package/cjs/Text/index.js +10 -0
  122. package/cjs/Tree/Tree.d.ts +4 -4
  123. package/cjs/TreePicker/TreePicker.js +3 -10
  124. package/cjs/index.d.ts +27 -16
  125. package/cjs/index.js +30 -19
  126. package/cjs/internals/Overlay/OverlayTrigger.js +24 -17
  127. package/cjs/internals/Picker/PickerToggle.d.ts +4 -5
  128. package/cjs/internals/Picker/PickerToggleTrigger.d.ts +1 -1
  129. package/cjs/internals/Picker/PickerToggleTrigger.js +1 -1
  130. package/cjs/internals/Picker/hooks/useToggleKeyDownEvent.d.ts +0 -2
  131. package/cjs/internals/Picker/hooks/useToggleKeyDownEvent.js +0 -4
  132. package/cjs/toaster/ToastContainer.d.ts +9 -2
  133. package/cjs/toaster/index.d.ts +0 -1
  134. package/cjs/toaster/index.js +1 -3
  135. package/cjs/useToaster/index.d.ts +2 -0
  136. package/cjs/useToaster/index.js +9 -0
  137. package/cjs/{toaster → useToaster}/useToaster.d.ts +4 -4
  138. package/cjs/{toaster → useToaster}/useToaster.js +4 -4
  139. package/cjs/utils/index.d.ts +1 -0
  140. package/cjs/utils/index.js +5 -2
  141. package/dist/rsuite-no-reset-rtl.css +393 -219
  142. package/dist/rsuite-no-reset-rtl.min.css +1 -1
  143. package/dist/rsuite-no-reset-rtl.min.css.map +1 -1
  144. package/dist/rsuite-no-reset.css +393 -219
  145. package/dist/rsuite-no-reset.min.css +1 -1
  146. package/dist/rsuite-no-reset.min.css.map +1 -1
  147. package/dist/rsuite-rtl.css +393 -219
  148. package/dist/rsuite-rtl.min.css +1 -1
  149. package/dist/rsuite-rtl.min.css.map +1 -1
  150. package/dist/rsuite.css +393 -219
  151. package/dist/rsuite.js +321 -57
  152. package/dist/rsuite.js.map +1 -1
  153. package/dist/rsuite.min.css +1 -1
  154. package/dist/rsuite.min.css.map +1 -1
  155. package/dist/rsuite.min.js +1 -1
  156. package/dist/rsuite.min.js.map +1 -1
  157. package/esm/@types/common.d.ts +12 -14
  158. package/esm/CascadeTree/CascadeTree.d.ts +16 -0
  159. package/esm/CascadeTree/CascadeTree.js +167 -0
  160. package/esm/CascadeTree/SearchView.d.ts +17 -0
  161. package/esm/CascadeTree/SearchView.js +100 -0
  162. package/esm/CascadeTree/TreeView.d.ts +20 -0
  163. package/esm/{Cascader → CascadeTree}/TreeView.js +42 -33
  164. package/esm/CascadeTree/hooks/index.d.ts +3 -0
  165. package/esm/CascadeTree/hooks/index.js +4 -0
  166. package/esm/{Cascader/utils.d.ts → CascadeTree/hooks/usePaths.d.ts} +3 -25
  167. package/esm/CascadeTree/hooks/usePaths.js +36 -0
  168. package/esm/CascadeTree/hooks/useSearch.d.ts +17 -0
  169. package/esm/CascadeTree/hooks/useSearch.js +54 -0
  170. package/esm/CascadeTree/hooks/useSelect.d.ts +23 -0
  171. package/esm/CascadeTree/hooks/useSelect.js +59 -0
  172. package/esm/CascadeTree/index.d.ts +4 -0
  173. package/esm/CascadeTree/index.js +3 -0
  174. package/esm/CascadeTree/types.d.ts +66 -0
  175. package/esm/CascadeTree/types.js +1 -0
  176. package/esm/CascadeTree/utils.d.ts +32 -0
  177. package/esm/CascadeTree/utils.js +61 -0
  178. package/esm/Cascader/Cascader.d.ts +57 -26
  179. package/esm/Cascader/Cascader.js +165 -235
  180. package/esm/Cascader/useActive.d.ts +15 -0
  181. package/esm/Cascader/useActive.js +37 -0
  182. package/esm/CheckPicker/CheckPicker.js +2 -9
  183. package/esm/CheckTreePicker/CheckTreePicker.js +2 -10
  184. package/esm/DatePicker/DatePicker.js +6 -6
  185. package/esm/DateRangePicker/DateRangePicker.js +3 -5
  186. package/esm/Dropdown/DropdownItem.d.ts +10 -2
  187. package/esm/Dropdown/DropdownItem.js +12 -3
  188. package/esm/Heading/Heading.d.ts +16 -0
  189. package/esm/Heading/Heading.js +38 -0
  190. package/esm/Heading/index.d.ts +3 -0
  191. package/esm/Heading/index.js +4 -0
  192. package/esm/HeadingGroup/HeadingGroup.d.ts +8 -0
  193. package/esm/HeadingGroup/HeadingGroup.js +11 -0
  194. package/esm/HeadingGroup/index.d.ts +3 -0
  195. package/esm/HeadingGroup/index.js +3 -0
  196. package/esm/InlineEdit/InlineEdit.d.ts +1 -1
  197. package/esm/InputPicker/InputPicker.js +7 -8
  198. package/esm/Loader/Loader.js +6 -5
  199. package/esm/MultiCascadeTree/MultiCascadeTree.d.ts +9 -0
  200. package/esm/MultiCascadeTree/MultiCascadeTree.js +125 -0
  201. package/esm/MultiCascadeTree/SearchView.d.ts +17 -0
  202. package/esm/MultiCascadeTree/SearchView.js +111 -0
  203. package/esm/MultiCascadeTree/TreeView.d.ts +22 -0
  204. package/esm/{MultiCascader → MultiCascadeTree}/TreeView.js +20 -20
  205. package/esm/MultiCascadeTree/hooks/index.d.ts +5 -0
  206. package/esm/MultiCascadeTree/hooks/index.js +6 -0
  207. package/esm/MultiCascadeTree/hooks/useCascadeValue.d.ts +18 -0
  208. package/esm/MultiCascadeTree/hooks/useCascadeValue.js +197 -0
  209. package/esm/MultiCascadeTree/hooks/useColumnData.d.ts +16 -0
  210. package/esm/MultiCascadeTree/hooks/useColumnData.js +46 -0
  211. package/esm/MultiCascadeTree/hooks/useFlattenData.d.ts +9 -0
  212. package/esm/MultiCascadeTree/hooks/useFlattenData.js +28 -0
  213. package/esm/MultiCascadeTree/hooks/useSearch.d.ts +17 -0
  214. package/esm/MultiCascadeTree/hooks/useSearch.js +47 -0
  215. package/esm/MultiCascadeTree/hooks/useSelect.d.ts +19 -0
  216. package/esm/MultiCascadeTree/hooks/useSelect.js +77 -0
  217. package/esm/MultiCascadeTree/index.d.ts +4 -0
  218. package/esm/MultiCascadeTree/index.js +3 -0
  219. package/esm/MultiCascadeTree/types.d.ts +26 -0
  220. package/esm/MultiCascadeTree/types.js +1 -0
  221. package/esm/MultiCascadeTree/utils.d.ts +37 -0
  222. package/esm/MultiCascadeTree/utils.js +130 -0
  223. package/esm/MultiCascader/MultiCascader.d.ts +57 -29
  224. package/esm/MultiCascader/MultiCascader.js +166 -281
  225. package/esm/Panel/Panel.js +3 -1
  226. package/esm/Popover/Popover.js +3 -1
  227. package/esm/SelectPicker/SelectPicker.js +3 -9
  228. package/esm/Text/Text.d.ts +47 -0
  229. package/esm/Text/Text.js +66 -0
  230. package/esm/Text/index.d.ts +3 -0
  231. package/esm/Text/index.js +4 -0
  232. package/esm/Tree/Tree.d.ts +4 -4
  233. package/esm/TreePicker/TreePicker.js +3 -10
  234. package/esm/index.d.ts +27 -16
  235. package/esm/index.js +38 -15
  236. package/esm/internals/Overlay/OverlayTrigger.js +24 -17
  237. package/esm/internals/Picker/PickerToggle.d.ts +4 -5
  238. package/esm/internals/Picker/PickerToggleTrigger.d.ts +1 -1
  239. package/esm/internals/Picker/PickerToggleTrigger.js +1 -1
  240. package/esm/internals/Picker/hooks/useToggleKeyDownEvent.d.ts +0 -2
  241. package/esm/internals/Picker/hooks/useToggleKeyDownEvent.js +0 -4
  242. package/esm/toaster/ToastContainer.d.ts +9 -2
  243. package/esm/toaster/index.d.ts +0 -1
  244. package/esm/toaster/index.js +0 -1
  245. package/esm/useToaster/index.d.ts +2 -0
  246. package/esm/useToaster/index.js +3 -0
  247. package/esm/{toaster → useToaster}/useToaster.d.ts +4 -4
  248. package/esm/{toaster → useToaster}/useToaster.js +4 -4
  249. package/esm/utils/index.d.ts +1 -0
  250. package/esm/utils/index.js +2 -1
  251. package/internals/Picker/styles/index.less +0 -5
  252. package/internals/Picker/styles/mixin.less +0 -73
  253. package/package.json +1 -1
  254. package/styles/color-modes/light.less +7 -0
  255. package/styles/index.less +5 -0
  256. package/useToaster/package.json +7 -0
  257. package/useToaster/styles/index.css +239 -0
  258. package/useToaster/styles/index.less +1 -0
  259. package/cjs/Cascader/DropdownMenu.d.ts +0 -24
  260. package/cjs/Cascader/DropdownMenu.js +0 -175
  261. package/cjs/Cascader/TreeView.d.ts +0 -24
  262. package/cjs/Cascader/utils.js +0 -79
  263. package/cjs/MultiCascader/TreeView.d.ts +0 -25
  264. package/cjs/MultiCascader/utils.d.ts +0 -71
  265. package/cjs/MultiCascader/utils.js +0 -382
  266. package/esm/Cascader/DropdownMenu.d.ts +0 -24
  267. package/esm/Cascader/DropdownMenu.js +0 -168
  268. package/esm/Cascader/TreeView.d.ts +0 -24
  269. package/esm/Cascader/utils.js +0 -74
  270. package/esm/MultiCascader/TreeView.d.ts +0 -25
  271. package/esm/MultiCascader/utils.d.ts +0 -71
  272. package/esm/MultiCascader/utils.js +0 -369
@@ -0,0 +1,106 @@
1
+ 'use client';
2
+ "use strict";
3
+
4
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
5
+ exports.__esModule = true;
6
+ exports.default = void 0;
7
+ var _extends3 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
8
+ var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutPropertiesLoose"));
9
+ var _react = _interopRequireDefault(require("react"));
10
+ var _utils = require("../utils");
11
+ var _treeUtils = require("../utils/treeUtils");
12
+ var _utils2 = require("./utils");
13
+ var _SearchBox = _interopRequireDefault(require("../internals/SearchBox"));
14
+ function SearchView(props) {
15
+ var _props$as = props.as,
16
+ Component = _props$as === void 0 ? 'div' : _props$as,
17
+ _props$classPrefix = props.classPrefix,
18
+ classPrefix = _props$classPrefix === void 0 ? 'cascade-search-view' : _props$classPrefix,
19
+ className = props.className,
20
+ searchKeyword = props.searchKeyword,
21
+ labelKey = props.labelKey,
22
+ valueKey = props.valueKey,
23
+ parentMap = props.parentMap,
24
+ data = props.data,
25
+ focusItemValue = props.focusItemValue,
26
+ disabledItemValues = props.disabledItemValues,
27
+ inputRef = props.inputRef,
28
+ renderSearchItem = props.renderSearchItem,
29
+ onSearch = props.onSearch,
30
+ onSelect = props.onSelect,
31
+ rest = (0, _objectWithoutPropertiesLoose2.default)(props, ["as", "classPrefix", "className", "searchKeyword", "labelKey", "valueKey", "parentMap", "data", "focusItemValue", "disabledItemValues", "inputRef", "renderSearchItem", "onSearch", "onSelect"]);
32
+ var _useClassNames = (0, _utils.useClassNames)(classPrefix),
33
+ merge = _useClassNames.merge,
34
+ prefix = _useClassNames.prefix,
35
+ withClassPrefix = _useClassNames.withClassPrefix,
36
+ rootPrefix = _useClassNames.rootPrefix;
37
+ var classes = merge(className, withClassPrefix());
38
+ var _useCustom = (0, _utils.useCustom)('Picker'),
39
+ locale = _useCustom.locale;
40
+ var renderSearchRow = function renderSearchRow(item, key) {
41
+ var items = (0, _treeUtils.getPathTowardsItem)(item, function (item) {
42
+ return parentMap.get(item);
43
+ });
44
+ var formattedNodes = items.map(function (itemData) {
45
+ var _extends2;
46
+ var label = (0, _utils2.highlightLabel)({
47
+ item: itemData,
48
+ labelKey: labelKey,
49
+ searchKeyword: searchKeyword,
50
+ render: function render(patch, index) {
51
+ return /*#__PURE__*/_react.default.createElement("span", {
52
+ key: index,
53
+ className: prefix('match')
54
+ }, patch);
55
+ }
56
+ });
57
+ return (0, _extends3.default)({}, itemData, (_extends2 = {}, _extends2[labelKey] = label, _extends2));
58
+ });
59
+ var disabled = disabledItemValues.some(function (value) {
60
+ return formattedNodes.some(function (itemData) {
61
+ return itemData[valueKey] === value;
62
+ });
63
+ });
64
+ var itemClasses = prefix('row', {
65
+ 'row-disabled': disabled,
66
+ 'row-focus': item[valueKey] === focusItemValue
67
+ });
68
+ var label = formattedNodes.map(function (itemData, index) {
69
+ return /*#__PURE__*/_react.default.createElement("span", {
70
+ key: "col-" + index,
71
+ className: prefix('col')
72
+ }, itemData[labelKey]);
73
+ });
74
+ var handleCheck = function handleCheck(event) {
75
+ if (!disabled) {
76
+ onSelect(item, items, event);
77
+ }
78
+ };
79
+ return /*#__PURE__*/_react.default.createElement("div", {
80
+ role: "treeitem",
81
+ "aria-disabled": disabled,
82
+ "aria-label": item[labelKey],
83
+ key: key,
84
+ "data-key": item[valueKey],
85
+ className: itemClasses,
86
+ tabIndex: -1,
87
+ onClick: handleCheck
88
+ }, renderSearchItem ? renderSearchItem(label, items) : label);
89
+ };
90
+ return /*#__PURE__*/_react.default.createElement(Component, (0, _extends3.default)({
91
+ className: classes
92
+ }, rest), /*#__PURE__*/_react.default.createElement(_SearchBox.default, {
93
+ placeholder: locale === null || locale === void 0 ? void 0 : locale.searchPlaceholder,
94
+ onChange: onSearch,
95
+ value: searchKeyword,
96
+ inputRef: inputRef
97
+ }), searchKeyword !== '' && /*#__PURE__*/_react.default.createElement("div", {
98
+ className: prefix('panel'),
99
+ "data-layer": 0,
100
+ role: "tree"
101
+ }, data.length ? data.map(renderSearchRow) : /*#__PURE__*/_react.default.createElement("div", {
102
+ className: merge(prefix('none'), rootPrefix('picker-none'))
103
+ }, locale.noResultsText)));
104
+ }
105
+ var _default = SearchView;
106
+ exports.default = _default;
@@ -0,0 +1,20 @@
1
+ import React from 'react';
2
+ import { ItemDataType, WithAsProps, RsRefForwardingComponent, DataProps, ToArray } from '../@types/common';
3
+ import { SelectNode, CascadeColumn } from './types';
4
+ declare type SetLike<T = unknown> = {
5
+ has(value: T): boolean;
6
+ };
7
+ export interface TreeViewProps<T = any> extends WithAsProps, Omit<DataProps<ItemDataType<T>>, 'data'> {
8
+ data?: (readonly ItemDataType<T>[])[];
9
+ disabledItemValues?: ToArray<NonNullable<T>>;
10
+ activeItemValue?: T | null;
11
+ loadingItemsSet?: SetLike<ItemDataType<T>>;
12
+ cascadePaths?: ItemDataType<T>[];
13
+ columnWidth?: number;
14
+ columnHeight?: number | string;
15
+ renderTreeNode?: (node: React.ReactNode, itemData: ItemDataType<T>) => React.ReactNode;
16
+ renderColumn?: (childNodes: React.ReactNode, column: CascadeColumn<T>) => React.ReactNode;
17
+ onSelect?: (node: SelectNode<T>, event: React.MouseEvent) => void;
18
+ }
19
+ declare const TreeView: RsRefForwardingComponent<'div', TreeViewProps>;
20
+ export default TreeView;
@@ -22,30 +22,31 @@ var TreeView = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
22
22
  var _props$as = props.as,
23
23
  Component = _props$as === void 0 ? 'div' : _props$as,
24
24
  activeItemValue = props.activeItemValue,
25
- classPrefix = props.classPrefix,
25
+ _props$classPrefix = props.classPrefix,
26
+ classPrefix = _props$classPrefix === void 0 ? 'tree' : _props$classPrefix,
26
27
  className = props.className,
27
28
  _props$childrenKey = props.childrenKey,
28
29
  childrenKey = _props$childrenKey === void 0 ? 'children' : _props$childrenKey,
29
30
  _props$disabledItemVa = props.disabledItemValues,
30
31
  disabledItemValues = _props$disabledItemVa === void 0 ? emptyArray : _props$disabledItemVa,
31
- _props$menuWidth = props.menuWidth,
32
- menuWidth = _props$menuWidth === void 0 ? 120 : _props$menuWidth,
33
- _props$menuHeight = props.menuHeight,
34
- menuHeight = _props$menuHeight === void 0 ? 200 : _props$menuHeight,
32
+ _props$columnWidth = props.columnWidth,
33
+ columnWidth = _props$columnWidth === void 0 ? 140 : _props$columnWidth,
34
+ _props$columnHeight = props.columnHeight,
35
+ columnHeight = _props$columnHeight === void 0 ? 200 : _props$columnHeight,
35
36
  _props$valueKey = props.valueKey,
36
37
  valueKey = _props$valueKey === void 0 ? 'value' : _props$valueKey,
37
- _props$cascadeData = props.cascadeData,
38
- cascadeData = _props$cascadeData === void 0 ? emptyArray : _props$cascadeData,
38
+ _props$data = props.data,
39
+ data = _props$data === void 0 ? emptyArray : _props$data,
39
40
  _props$cascadePaths = props.cascadePaths,
40
41
  cascadePaths = _props$cascadePaths === void 0 ? emptyArray : _props$cascadePaths,
41
42
  loadingItemsSet = props.loadingItemsSet,
42
43
  _props$labelKey = props.labelKey,
43
44
  labelKey = _props$labelKey === void 0 ? 'label' : _props$labelKey,
44
45
  style = props.style,
45
- renderMenu = props.renderMenu,
46
- renderMenuItem = props.renderMenuItem,
46
+ renderColumn = props.renderColumn,
47
+ renderTreeNode = props.renderTreeNode,
47
48
  onSelect = props.onSelect,
48
- rest = (0, _objectWithoutPropertiesLoose2.default)(props, ["as", "activeItemValue", "classPrefix", "className", "childrenKey", "disabledItemValues", "menuWidth", "menuHeight", "valueKey", "cascadeData", "cascadePaths", "loadingItemsSet", "labelKey", "style", "renderMenu", "renderMenuItem", "onSelect"]);
49
+ rest = (0, _objectWithoutPropertiesLoose2.default)(props, ["as", "activeItemValue", "classPrefix", "className", "childrenKey", "disabledItemValues", "columnWidth", "columnHeight", "valueKey", "data", "cascadePaths", "loadingItemsSet", "labelKey", "style", "renderColumn", "renderTreeNode", "onSelect"]);
49
50
  var _useClassNames = (0, _utils.useClassNames)(classPrefix),
50
51
  merge = _useClassNames.merge,
51
52
  prefix = _useClassNames.prefix;
@@ -79,7 +80,7 @@ var TreeView = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
79
80
  }, [prefix]);
80
81
  var getCascadePaths = function getCascadePaths(layer, node) {
81
82
  var paths = [];
82
- for (var i = 0; i < cascadeData.length && i < layer; i += 1) {
83
+ for (var i = 0; i < data.length && i < layer; i += 1) {
83
84
  if (i < layer - 1 && cascadePaths) {
84
85
  paths.push(cascadePaths[i]);
85
86
  }
@@ -87,25 +88,29 @@ var TreeView = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
87
88
  paths.push(node);
88
89
  return paths;
89
90
  };
90
- var handleSelect = (0, _utils.useEventCallback)(function (layer, node, event) {
91
- var isLeafNode = (0, _isNil.default)(node[childrenKey]);
92
- var cascadePaths = getCascadePaths(layer + 1, node);
93
- onSelect === null || onSelect === void 0 ? void 0 : onSelect(node, cascadePaths, isLeafNode, event);
91
+ var handleSelect = (0, _utils.useEventCallback)(function (layer, itemData, event) {
92
+ var isLeafNode = (0, _isNil.default)(itemData[childrenKey]);
93
+ var cascadePaths = getCascadePaths(layer + 1, itemData);
94
+ onSelect === null || onSelect === void 0 ? void 0 : onSelect({
95
+ itemData: itemData,
96
+ cascadePaths: cascadePaths,
97
+ isLeafNode: isLeafNode
98
+ }, event);
94
99
  });
95
100
  var renderCascadeNode = function renderCascadeNode(nodeProps) {
96
101
  var _loadingItemsSet$has;
97
- var node = nodeProps.node,
102
+ var itemData = nodeProps.itemData,
98
103
  index = nodeProps.index,
99
104
  layer = nodeProps.layer,
100
105
  focus = nodeProps.focus,
101
106
  size = nodeProps.size;
102
- var children = node[childrenKey];
103
- var value = node[valueKey];
104
- var label = node[labelKey];
107
+ var children = itemData[childrenKey];
108
+ var value = itemData[valueKey];
109
+ var label = itemData[labelKey];
105
110
  var disabled = disabledItemValues.some(function (disabledValue) {
106
111
  return (0, _utils.shallowEqual)(disabledValue, value);
107
112
  });
108
- var loading = (_loadingItemsSet$has = loadingItemsSet === null || loadingItemsSet === void 0 ? void 0 : loadingItemsSet.has(node)) !== null && _loadingItemsSet$has !== void 0 ? _loadingItemsSet$has : false;
113
+ var loading = (_loadingItemsSet$has = loadingItemsSet === null || loadingItemsSet === void 0 ? void 0 : loadingItemsSet.has(itemData)) !== null && _loadingItemsSet$has !== void 0 ? _loadingItemsSet$has : false;
109
114
 
110
115
  // Use `value` in keys when If `value` is string or number
111
116
  var onlyKey = typeof value === 'number' || typeof value === 'string' ? value : index;
@@ -117,7 +122,7 @@ var TreeView = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
117
122
  "aria-setsize": size,
118
123
  "aria-posinset": index + 1,
119
124
  "aria-label": typeof label === 'string' ? label : undefined,
120
- classPrefix: "picker-cascader-menu-item",
125
+ classPrefix: "cascade-tree-item",
121
126
  key: layer + "-" + onlyKey,
122
127
  disabled: disabled,
123
128
  active: !(0, _isUndefined.default)(activeItemValue) && (0, _utils.shallowEqual)(activeItemValue, value),
@@ -125,21 +130,21 @@ var TreeView = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
125
130
  value: value,
126
131
  className: children ? prefix('has-children') : undefined,
127
132
  onSelect: function onSelect(_value, event) {
128
- return handleSelect(layer, node, event);
133
+ return handleSelect(layer, itemData, event);
129
134
  }
130
- }, renderMenuItem ? renderMenuItem(label, node) : label, children ? /*#__PURE__*/_react.default.createElement(Icon, {
135
+ }, renderTreeNode ? renderTreeNode(label, itemData) : label, children ? /*#__PURE__*/_react.default.createElement(Icon, {
131
136
  className: prefix('caret'),
132
137
  spin: loading,
133
138
  "data-testid": "spinner"
134
139
  }) : null);
135
140
  };
136
- var cascadeNodes = cascadeData.map(function (children, layer) {
141
+ var cascadeNodes = data.map(function (children, layer) {
137
142
  var onlyKey = layer + "_" + children.length;
138
- var parentNode = cascadePaths[layer - 1];
139
- var menu = /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, children.map(function (item, index) {
140
- var focus = cascadePaths[layer] && (0, _utils.shallowEqual)(cascadePaths[layer][valueKey], item[valueKey]);
143
+ var parentItem = cascadePaths[layer - 1];
144
+ var childNodes = /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, children.map(function (itemData, index) {
145
+ var focus = cascadePaths[layer] && (0, _utils.shallowEqual)(cascadePaths[layer][valueKey], itemData[valueKey]);
141
146
  return renderCascadeNode({
142
- node: item,
147
+ itemData: itemData,
143
148
  index: index,
144
149
  layer: layer,
145
150
  focus: focus,
@@ -153,17 +158,21 @@ var TreeView = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
153
158
  key: onlyKey,
154
159
  className: prefix('column'),
155
160
  style: {
156
- height: menuHeight,
157
- width: menuWidth
161
+ height: columnHeight,
162
+ width: columnWidth
158
163
  }
159
- }, renderMenu ? renderMenu(children, menu, parentNode, layer) : menu);
164
+ }, renderColumn ? renderColumn(childNodes, {
165
+ items: children,
166
+ parentItem: parentItem,
167
+ layer: layer
168
+ }) : childNodes);
160
169
  });
161
170
  var styles = (0, _extends2.default)({}, style, {
162
- width: cascadeData.length * menuWidth
171
+ width: data.length * columnWidth
163
172
  });
164
173
  return /*#__PURE__*/_react.default.createElement(Component, (0, _extends2.default)({
165
174
  role: "tree",
166
- id: id + "-" + popupType,
175
+ id: id ? id + "-" + popupType : undefined,
167
176
  "aria-labelledby": labelId
168
177
  }, rest, {
169
178
  ref: (0, _utils.mergeRefs)(rootRef, ref),
@@ -0,0 +1,3 @@
1
+ export { default as usePaths } from './usePaths';
2
+ export { default as useSelect } from './useSelect';
3
+ export { default as useSearch } from './useSearch';
@@ -0,0 +1,12 @@
1
+ 'use client';
2
+ "use strict";
3
+
4
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
5
+ exports.__esModule = true;
6
+ exports.useSearch = exports.useSelect = exports.usePaths = void 0;
7
+ var _usePaths = _interopRequireDefault(require("./usePaths"));
8
+ exports.usePaths = _usePaths.default;
9
+ var _useSelect = _interopRequireDefault(require("./useSelect"));
10
+ exports.useSelect = _useSelect.default;
11
+ var _useSearch = _interopRequireDefault(require("./useSearch"));
12
+ exports.useSearch = _useSearch.default;
@@ -1,23 +1,3 @@
1
- declare type GetColumnsAndPathsOptions<T> = {
2
- getParent: (item: T) => T | undefined;
3
- getChildren: (item: T) => readonly T[] | undefined;
4
- };
5
- /**
6
- * Calculate columns to be displayed:
7
- *
8
- * - Every ancestor level of activeItem should be displayed
9
- * - The level that activeItem is at should be displayed
10
- * - If activeItem is a parent node, its child level should be displayed
11
- *
12
- * @param items
13
- * @param value
14
- * @param options
15
- * @returns
16
- */
17
- export declare function getColumnsAndPaths<T extends Record<string, unknown>>(items: readonly T[], pathTarget: T | undefined, options: GetColumnsAndPathsOptions<T>): {
18
- columns: (readonly T[])[];
19
- path: T[];
20
- };
21
1
  declare type UsePathsParams<T> = {
22
2
  data: T[];
23
3
  /**
@@ -32,18 +12,16 @@ declare type UsePathsParams<T> = {
32
12
  getChildren: (item: T) => readonly T[] | undefined;
33
13
  };
34
14
  /**
35
- * Caculate following 3 things
15
+ * A Hook to get the selected path of Tree.
36
16
  *
37
17
  * - The columns of items to be displayed
38
18
  * - The path towards the current focused item
39
19
  * - The path towards the current selected item (referred to by Cascader's value)
40
20
  *
41
- * @param params
42
- * @returns
43
21
  */
44
22
  export declare function usePaths<T extends Record<string, unknown>>({ data, activeItem, selectedItem, getParent, getChildren }: UsePathsParams<T>): {
45
- columnsToDisplay: (readonly T[])[];
23
+ columns: (readonly T[])[];
46
24
  pathTowardsSelectedItem: T[];
47
25
  pathTowardsActiveItem: T[];
48
26
  };
49
- export {};
27
+ export default usePaths;
@@ -0,0 +1,42 @@
1
+ 'use client';
2
+ "use strict";
3
+
4
+ exports.__esModule = true;
5
+ exports.usePaths = usePaths;
6
+ exports.default = void 0;
7
+ var _react = require("react");
8
+ var _treeUtils = require("../../utils/treeUtils");
9
+ var _utils = require("../utils");
10
+ /**
11
+ * A Hook to get the selected path of Tree.
12
+ *
13
+ * - The columns of items to be displayed
14
+ * - The path towards the current focused item
15
+ * - The path towards the current selected item (referred to by Cascader's value)
16
+ *
17
+ */
18
+ function usePaths(_ref) {
19
+ var data = _ref.data,
20
+ activeItem = _ref.activeItem,
21
+ selectedItem = _ref.selectedItem,
22
+ getParent = _ref.getParent,
23
+ getChildren = _ref.getChildren;
24
+ var pathTowardsSelectedItem = (0, _react.useMemo)(function () {
25
+ return (0, _treeUtils.getPathTowardsItem)(selectedItem, getParent);
26
+ }, [getParent, selectedItem]);
27
+ var _useMemo = (0, _react.useMemo)(function () {
28
+ return (0, _utils.getColumnsAndPaths)(data, activeItem, {
29
+ getParent: getParent,
30
+ getChildren: getChildren
31
+ });
32
+ }, [data, activeItem, getParent, getChildren]),
33
+ columns = _useMemo.columns,
34
+ pathTowardsActiveItem = _useMemo.path;
35
+ return {
36
+ columns: columns,
37
+ pathTowardsSelectedItem: pathTowardsSelectedItem,
38
+ pathTowardsActiveItem: pathTowardsActiveItem
39
+ };
40
+ }
41
+ var _default = usePaths;
42
+ exports.default = _default;
@@ -0,0 +1,17 @@
1
+ /// <reference types="react" />
2
+ import { ItemDataType } from '../../@types/common';
3
+ interface SearchPanelProps<T> {
4
+ labelKey: string;
5
+ childrenKey: string;
6
+ parentMap: WeakMap<ItemDataType<T>, ItemDataType<T>>;
7
+ flattenedData: ItemDataType<T>[];
8
+ parentSelectable?: boolean;
9
+ onSearch: (value: string, items: ItemDataType<T>[], event: React.SyntheticEvent) => void;
10
+ }
11
+ declare function useSearch<T>(props: SearchPanelProps<T>): {
12
+ searchKeyword: string;
13
+ setSearchKeyword: import("react").Dispatch<import("react").SetStateAction<string>>;
14
+ items: ItemDataType<T>[];
15
+ handleSearch: (...args: any[]) => any;
16
+ };
17
+ export default useSearch;
@@ -0,0 +1,59 @@
1
+ 'use client';
2
+ "use strict";
3
+
4
+ exports.__esModule = true;
5
+ exports.default = void 0;
6
+ var _react = require("react");
7
+ var _utils = require("../../utils");
8
+ function useSearch(props) {
9
+ var _useState = (0, _react.useState)(''),
10
+ searchKeyword = _useState[0],
11
+ setSearchKeyword = _useState[1];
12
+ var labelKey = props.labelKey,
13
+ childrenKey = props.childrenKey,
14
+ parentMap = props.parentMap,
15
+ flattenedData = props.flattenedData,
16
+ parentSelectable = props.parentSelectable,
17
+ onSearch = props.onSearch;
18
+ var someKeyword = function someKeyword(item, keyword) {
19
+ if (item[labelKey].match(new RegExp((0, _utils.getSafeRegExpString)(keyword || searchKeyword), 'i'))) {
20
+ return true;
21
+ }
22
+ var parent = parentMap.get(item);
23
+ if (parent && someKeyword(parent)) {
24
+ return true;
25
+ }
26
+ return false;
27
+ };
28
+ var getSearchResult = function getSearchResult(keyword) {
29
+ var items = [];
30
+ var result = flattenedData.filter(function (item) {
31
+ if (!parentSelectable && item[childrenKey]) {
32
+ return false;
33
+ }
34
+ return someKeyword(item, keyword);
35
+ });
36
+ for (var i = 0; i < result.length; i++) {
37
+ items.push(result[i]);
38
+
39
+ // A maximum of 100 search results are returned.
40
+ if (i === 99) {
41
+ return items;
42
+ }
43
+ }
44
+ return items;
45
+ };
46
+ var handleSearch = (0, _utils.useEventCallback)(function (value, event) {
47
+ var items = getSearchResult(value);
48
+ setSearchKeyword(value);
49
+ onSearch === null || onSearch === void 0 ? void 0 : onSearch(value, items, event);
50
+ });
51
+ return {
52
+ searchKeyword: searchKeyword,
53
+ setSearchKeyword: setSearchKeyword,
54
+ items: getSearchResult(),
55
+ handleSearch: handleSearch
56
+ };
57
+ }
58
+ var _default = useSearch;
59
+ exports.default = _default;
@@ -0,0 +1,23 @@
1
+ /// <reference types="react" />
2
+ import { type ItemDataType } from '../../@types/common';
3
+ import { type SelectNode } from '../types';
4
+ export interface UseSelectProps<T> {
5
+ value?: T | null;
6
+ valueKey: string;
7
+ childrenKey: string;
8
+ selectedItem?: ItemDataType<T>;
9
+ childrenMap: any;
10
+ onSelect?: (node: SelectNode<T>, event: React.SyntheticEvent) => void;
11
+ onChange?: (value: T, event: React.SyntheticEvent) => void;
12
+ getChildren?: (node: ItemDataType<T>) => readonly ItemDataType<T>[] | Promise<readonly ItemDataType<T>[]>;
13
+ }
14
+ /**
15
+ * Hook for handling the state after the option is selected
16
+ */
17
+ declare const useSelect: <T>(props: UseSelectProps<T>) => {
18
+ loadingItemsSet: any;
19
+ activeItem: ItemDataType<T> | undefined;
20
+ setActiveItem: import("react").Dispatch<import("react").SetStateAction<ItemDataType<T> | undefined>>;
21
+ handleSelect: (...args: any[]) => any;
22
+ };
23
+ export default useSelect;
@@ -0,0 +1,64 @@
1
+ 'use client';
2
+ "use strict";
3
+
4
+ exports.__esModule = true;
5
+ exports.default = void 0;
6
+ var _react = require("react");
7
+ var _reactUseSet = require("react-use-set");
8
+ var _utils = require("../../utils");
9
+ /**
10
+ * Hook for handling the state after the option is selected
11
+ */
12
+ var useSelect = function useSelect(props) {
13
+ var value = props.value,
14
+ onSelect = props.onSelect,
15
+ getChildren = props.getChildren,
16
+ valueKey = props.valueKey,
17
+ onChange = props.onChange,
18
+ childrenKey = props.childrenKey,
19
+ selectedItem = props.selectedItem,
20
+ childrenMap = props.childrenMap; // The item that focus is on
21
+ var _useState = (0, _react.useState)(selectedItem),
22
+ activeItem = _useState[0],
23
+ setActiveItem = _useState[1];
24
+ var isMounted = (0, _utils.useIsMounted)();
25
+ var loadingItemsSet = (0, _reactUseSet.useSet)();
26
+ var handleSelect = (0, _utils.useEventCallback)(function (node, event) {
27
+ var _itemData$childrenKey;
28
+ var itemData = node.itemData,
29
+ isLeafNode = node.isLeafNode;
30
+ setActiveItem(itemData);
31
+
32
+ // Lazy load node's children
33
+ if (typeof getChildren === 'function' && ((_itemData$childrenKey = itemData[childrenKey]) === null || _itemData$childrenKey === void 0 ? void 0 : _itemData$childrenKey.length) === 0 && !childrenMap.has(itemData)) {
34
+ loadingItemsSet.add(itemData);
35
+ var children = getChildren(itemData);
36
+ if (children instanceof Promise) {
37
+ children.then(function (data) {
38
+ if (isMounted()) {
39
+ loadingItemsSet.delete(itemData);
40
+ childrenMap.set(itemData, data);
41
+ }
42
+ });
43
+ } else {
44
+ loadingItemsSet.delete(itemData);
45
+ childrenMap.set(itemData, children);
46
+ }
47
+ }
48
+ if (isLeafNode) {
49
+ var nextValue = itemData[valueKey];
50
+ if (!(0, _utils.shallowEqual)(value, nextValue)) {
51
+ onChange === null || onChange === void 0 ? void 0 : onChange(nextValue, event);
52
+ }
53
+ }
54
+ onSelect === null || onSelect === void 0 ? void 0 : onSelect(node, event);
55
+ });
56
+ return {
57
+ loadingItemsSet: loadingItemsSet,
58
+ activeItem: activeItem,
59
+ setActiveItem: setActiveItem,
60
+ handleSelect: handleSelect
61
+ };
62
+ };
63
+ var _default = useSelect;
64
+ exports.default = _default;
@@ -0,0 +1,4 @@
1
+ import CascadeTree from './CascadeTree';
2
+ export type { ItemDataType } from '../@types/common';
3
+ export type { CascadeTreeProps } from './types';
4
+ export default CascadeTree;
@@ -0,0 +1,9 @@
1
+ 'use client';
2
+ "use strict";
3
+
4
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
5
+ exports.__esModule = true;
6
+ exports.default = void 0;
7
+ var _CascadeTree = _interopRequireDefault(require("./CascadeTree"));
8
+ var _default = _CascadeTree.default;
9
+ exports.default = _default;
@@ -0,0 +1,66 @@
1
+ /// <reference types="react" />
2
+ import { ItemDataType, DataProps, WithAsProps, ToArray } from '../@types/common';
3
+ export interface SelectNode<T> {
4
+ itemData: ItemDataType<T>;
5
+ cascadePaths: ItemDataType<T>[];
6
+ isLeafNode: boolean;
7
+ }
8
+ export interface CascadeColumn<T> {
9
+ items: readonly ItemDataType<T>[];
10
+ parentItem?: ItemDataType<T>;
11
+ layer?: number;
12
+ }
13
+ export interface CascadeTreeProps<T, V = T> extends WithAsProps, DataProps<ItemDataType<T>> {
14
+ /**
15
+ * Initial value
16
+ */
17
+ defaultValue?: V;
18
+ /**
19
+ * Selected value
20
+ */
21
+ value?: V;
22
+ /**
23
+ * Sets the width of the menu
24
+ */
25
+ columnWidth?: number;
26
+ /**
27
+ * Sets the height of the menu
28
+ */
29
+ columnHeight?: number;
30
+ /**
31
+ * Disabled items
32
+ */
33
+ disabledItemValues?: ToArray<NonNullable<T>>;
34
+ /**
35
+ * Whether dispaly search input box
36
+ */
37
+ searchable?: boolean;
38
+ /**
39
+ * Custom render columns
40
+ */
41
+ renderColumn?: (childNodes: React.ReactNode, column: CascadeColumn<T>) => React.ReactNode;
42
+ /**
43
+ * Custom render tree node
44
+ */
45
+ renderTreeNode?: (node: React.ReactNode, itemData: ItemDataType<T>) => React.ReactNode;
46
+ /**
47
+ * Custom render search items
48
+ */
49
+ renderSearchItem?: (node: React.ReactNode, items: ItemDataType<T>[]) => React.ReactNode;
50
+ /**
51
+ * Called when the option is selected
52
+ */
53
+ onSelect?: (value: ItemDataType<T>, selectedPaths: ItemDataType<T>[], event: React.SyntheticEvent) => void;
54
+ /**
55
+ * Called after the value has been changed
56
+ */
57
+ onChange?: (value: V, event: React.SyntheticEvent) => void;
58
+ /**
59
+ * Called when searching
60
+ */
61
+ onSearch?: (value: string, event: React.SyntheticEvent) => void;
62
+ /**
63
+ * Asynchronously load the children of the tree node.
64
+ */
65
+ getChildren?: (childNodes: ItemDataType<T>) => ItemDataType<T>[] | Promise<ItemDataType<T>[]>;
66
+ }
@@ -0,0 +1,2 @@
1
+ 'use client';
2
+ "use strict";