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,131 @@
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 _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
8
+ var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutPropertiesLoose"));
9
+ var _react = _interopRequireDefault(require("react"));
10
+ var _TreeView = _interopRequireDefault(require("./TreeView"));
11
+ var _hooks = require("./hooks");
12
+ var _utils = require("../utils");
13
+ var _SearchView = _interopRequireDefault(require("./SearchView"));
14
+ var emptyArray = [];
15
+
16
+ /**
17
+ * The `MultiCascadeTree` component is used to select multiple values from cascading options.
18
+ * @see https://rsuitejs.com/components/multi-cascade-tree/
19
+ */
20
+ var MultiCascadeTree = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
21
+ var _props$as = props.as,
22
+ Component = _props$as === void 0 ? 'div' : _props$as,
23
+ _props$data = props.data,
24
+ data = _props$data === void 0 ? emptyArray : _props$data,
25
+ defaultValue = props.defaultValue,
26
+ className = props.className,
27
+ _props$classPrefix = props.classPrefix,
28
+ classPrefix = _props$classPrefix === void 0 ? 'cascade-tree' : _props$classPrefix,
29
+ valueProp = props.value,
30
+ _props$valueKey = props.valueKey,
31
+ valueKey = _props$valueKey === void 0 ? 'value' : _props$valueKey,
32
+ _props$labelKey = props.labelKey,
33
+ labelKey = _props$labelKey === void 0 ? 'label' : _props$labelKey,
34
+ _props$childrenKey = props.childrenKey,
35
+ childrenKey = _props$childrenKey === void 0 ? 'children' : _props$childrenKey,
36
+ _props$disabledItemVa = props.disabledItemValues,
37
+ disabledItemValues = _props$disabledItemVa === void 0 ? emptyArray : _props$disabledItemVa,
38
+ _props$cascade = props.cascade,
39
+ cascade = _props$cascade === void 0 ? true : _props$cascade,
40
+ columnWidth = props.columnWidth,
41
+ columnHeight = props.columnHeight,
42
+ searchable = props.searchable,
43
+ _props$uncheckableIte = props.uncheckableItemValues,
44
+ uncheckableItemValues = _props$uncheckableIte === void 0 ? emptyArray : _props$uncheckableIte,
45
+ getChildren = props.getChildren,
46
+ renderColumn = props.renderColumn,
47
+ renderTreeNode = props.renderTreeNode,
48
+ onSelect = props.onSelect,
49
+ onCheck = props.onCheck,
50
+ onChange = props.onChange,
51
+ onSearch = props.onSearch,
52
+ rest = (0, _objectWithoutPropertiesLoose2.default)(props, ["as", "data", "defaultValue", "className", "classPrefix", "value", "valueKey", "labelKey", "childrenKey", "disabledItemValues", "cascade", "columnWidth", "columnHeight", "searchable", "uncheckableItemValues", "getChildren", "renderColumn", "renderTreeNode", "onSelect", "onCheck", "onChange", "onSearch"]);
53
+ var itemKeys = {
54
+ childrenKey: childrenKey,
55
+ labelKey: labelKey,
56
+ valueKey: valueKey
57
+ };
58
+ var _useSelect = (0, _hooks.useSelect)({
59
+ data: data,
60
+ childrenKey: childrenKey,
61
+ labelKey: labelKey,
62
+ valueKey: valueKey,
63
+ onSelect: onSelect,
64
+ getChildren: getChildren
65
+ }),
66
+ selectedPaths = _useSelect.selectedPaths,
67
+ flattenData = _useSelect.flattenData,
68
+ columnData = _useSelect.columnData,
69
+ handleSelect = _useSelect.handleSelect;
70
+ var _useControlled = (0, _utils.useControlled)(valueProp, defaultValue),
71
+ controlledValue = _useControlled[0];
72
+ var cascadeValueProps = (0, _extends2.default)({}, itemKeys, {
73
+ uncheckableItemValues: uncheckableItemValues,
74
+ cascade: cascade,
75
+ value: controlledValue,
76
+ onCheck: onCheck,
77
+ onChange: onChange
78
+ });
79
+ var _useCascadeValue = (0, _hooks.useCascadeValue)(cascadeValueProps, flattenData),
80
+ value = _useCascadeValue.value,
81
+ handleCheck = _useCascadeValue.handleCheck;
82
+ var _useSearch = (0, _hooks.useSearch)({
83
+ labelKey: labelKey,
84
+ valueKey: valueKey,
85
+ childrenKey: childrenKey,
86
+ flattenedData: flattenData,
87
+ uncheckableItemValues: uncheckableItemValues,
88
+ onSearch: onSearch
89
+ }),
90
+ items = _useSearch.items,
91
+ searchKeyword = _useSearch.searchKeyword,
92
+ handleSearch = _useSearch.handleSearch;
93
+ var _useClassNames = (0, _utils.useClassNames)(classPrefix),
94
+ withClassPrefix = _useClassNames.withClassPrefix,
95
+ merge = _useClassNames.merge;
96
+ var classes = merge(className, withClassPrefix('multi'));
97
+ return /*#__PURE__*/_react.default.createElement(Component, (0, _extends2.default)({
98
+ ref: ref,
99
+ className: classes
100
+ }, rest), searchable && /*#__PURE__*/_react.default.createElement(_SearchView.default, {
101
+ data: items,
102
+ value: value,
103
+ searchKeyword: searchKeyword,
104
+ valueKey: valueKey,
105
+ labelKey: labelKey,
106
+ childrenKey: childrenKey,
107
+ disabledItemValues: disabledItemValues,
108
+ onCheck: handleCheck,
109
+ onSearch: handleSearch
110
+ }), !searchKeyword && /*#__PURE__*/_react.default.createElement(_TreeView.default, {
111
+ cascade: cascade,
112
+ columnWidth: columnWidth,
113
+ columnHeight: columnHeight,
114
+ uncheckableItemValues: uncheckableItemValues,
115
+ disabledItemValues: disabledItemValues,
116
+ valueKey: valueKey,
117
+ labelKey: labelKey,
118
+ childrenKey: childrenKey,
119
+ classPrefix: classPrefix,
120
+ cascadeData: columnData,
121
+ cascadePaths: selectedPaths,
122
+ value: value,
123
+ onSelect: handleSelect,
124
+ onCheck: handleCheck,
125
+ renderColumn: renderColumn,
126
+ renderTreeNode: renderTreeNode
127
+ }));
128
+ });
129
+ MultiCascadeTree.displayName = 'MultiCascadeTree';
130
+ var _default = MultiCascadeTree;
131
+ exports.default = _default;
@@ -0,0 +1,17 @@
1
+ import React from 'react';
2
+ import { ItemDataType, WithAsProps } from '../@types/common';
3
+ interface SearchViewProps<T> extends WithAsProps {
4
+ searchKeyword: string;
5
+ labelKey: string;
6
+ valueKey: string;
7
+ childrenKey: string;
8
+ value: T[];
9
+ data: ItemDataType<T>[];
10
+ disabledItemValues: any[];
11
+ cascade?: boolean;
12
+ onSearch: (value: string, event: React.ChangeEvent<HTMLInputElement>) => void;
13
+ onCheck: (item: ItemDataType<T>, event: React.SyntheticEvent, checked: boolean) => void;
14
+ inputRef?: React.RefObject<HTMLInputElement>;
15
+ }
16
+ declare function SearchView<T>(props: SearchViewProps<T>): JSX.Element;
17
+ export default SearchView;
@@ -0,0 +1,117 @@
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 _SearchBox = _interopRequireDefault(require("../internals/SearchBox"));
13
+ var _Checkbox = _interopRequireDefault(require("../Checkbox"));
14
+ var _utils2 = require("./utils");
15
+ var _utils3 = require("../CascadeTree/utils");
16
+ function SearchView(props) {
17
+ var _props$as = props.as,
18
+ Component = _props$as === void 0 ? 'div' : _props$as,
19
+ _props$classPrefix = props.classPrefix,
20
+ classPrefix = _props$classPrefix === void 0 ? 'cascade-search-view' : _props$classPrefix,
21
+ className = props.className,
22
+ searchKeyword = props.searchKeyword,
23
+ childrenKey = props.childrenKey,
24
+ labelKey = props.labelKey,
25
+ valueKey = props.valueKey,
26
+ value = props.value,
27
+ data = props.data,
28
+ disabledItemValues = props.disabledItemValues,
29
+ inputRef = props.inputRef,
30
+ cascade = props.cascade,
31
+ onSearch = props.onSearch,
32
+ onCheck = props.onCheck,
33
+ rest = (0, _objectWithoutPropertiesLoose2.default)(props, ["as", "classPrefix", "className", "searchKeyword", "childrenKey", "labelKey", "valueKey", "value", "data", "disabledItemValues", "inputRef", "cascade", "onSearch", "onCheck"]);
34
+ var _useClassNames = (0, _utils.useClassNames)(classPrefix),
35
+ merge = _useClassNames.merge,
36
+ prefix = _useClassNames.prefix,
37
+ withClassPrefix = _useClassNames.withClassPrefix,
38
+ rootPrefix = _useClassNames.rootPrefix;
39
+ var classes = merge(className, withClassPrefix());
40
+ var _useCustom = (0, _utils.useCustom)('Picker'),
41
+ locale = _useCustom.locale;
42
+ var renderSearchRow = function renderSearchRow(item, key) {
43
+ var _extends2;
44
+ var nodes = (0, _treeUtils.getNodeParents)(item);
45
+ var label = (0, _utils3.highlightLabel)({
46
+ item: item,
47
+ labelKey: labelKey,
48
+ searchKeyword: searchKeyword,
49
+ render: function render(patch, index) {
50
+ return /*#__PURE__*/_react.default.createElement("span", {
51
+ key: index,
52
+ className: prefix('match')
53
+ }, patch);
54
+ }
55
+ });
56
+ nodes.push((0, _extends3.default)({}, item, (_extends2 = {}, _extends2[labelKey] = label, _extends2)));
57
+ var active = value.some(function (value) {
58
+ if (cascade) {
59
+ return nodes.some(function (node) {
60
+ return node[valueKey] === value;
61
+ });
62
+ }
63
+ return item[valueKey] === value;
64
+ });
65
+ var disabled = disabledItemValues.some(function (value) {
66
+ return nodes.some(function (node) {
67
+ return node[valueKey] === value;
68
+ });
69
+ });
70
+ var rowClasses = prefix('row', {
71
+ 'row-disabled': disabled
72
+ });
73
+ var indeterminate = cascade && !active && (0, _utils2.isSomeChildChecked)(item, value, {
74
+ valueKey: valueKey,
75
+ childrenKey: childrenKey
76
+ });
77
+ var handleChange = function handleChange(_value, checked, event) {
78
+ onCheck === null || onCheck === void 0 ? void 0 : onCheck(item, event, checked);
79
+ };
80
+ return /*#__PURE__*/_react.default.createElement("div", {
81
+ role: "treeitem",
82
+ "aria-disabled": disabled,
83
+ key: key,
84
+ className: rowClasses,
85
+ "data-key": item[valueKey]
86
+ }, /*#__PURE__*/_react.default.createElement(_Checkbox.default, {
87
+ disabled: disabled,
88
+ checked: active,
89
+ value: item[valueKey],
90
+ indeterminate: indeterminate,
91
+ onChange: handleChange
92
+ }, /*#__PURE__*/_react.default.createElement("span", {
93
+ className: prefix('col-group')
94
+ }, nodes.map(function (node, index) {
95
+ return /*#__PURE__*/_react.default.createElement("span", {
96
+ key: "col-" + index,
97
+ className: prefix('col')
98
+ }, node[labelKey]);
99
+ }))));
100
+ };
101
+ return /*#__PURE__*/_react.default.createElement(Component, (0, _extends3.default)({
102
+ className: classes
103
+ }, rest), /*#__PURE__*/_react.default.createElement(_SearchBox.default, {
104
+ placeholder: locale === null || locale === void 0 ? void 0 : locale.searchPlaceholder,
105
+ onChange: onSearch,
106
+ value: searchKeyword,
107
+ inputRef: inputRef
108
+ }), searchKeyword !== '' && /*#__PURE__*/_react.default.createElement("div", {
109
+ className: prefix('panel'),
110
+ "data-layer": 0,
111
+ role: "tree"
112
+ }, data.length ? data.map(renderSearchRow) : /*#__PURE__*/_react.default.createElement("div", {
113
+ className: merge(prefix('none'), rootPrefix('picker-none'))
114
+ }, locale.noResultsText)));
115
+ }
116
+ var _default = SearchView;
117
+ exports.default = _default;
@@ -0,0 +1,22 @@
1
+ import React from 'react';
2
+ import { ItemDataType, WithAsProps, RsRefForwardingComponent } from '../@types/common';
3
+ import type { CascadeColumn } from '../CascadeTree/types';
4
+ export interface TreeViewProps<T = any> extends WithAsProps {
5
+ disabledItemValues?: T[];
6
+ value: T[];
7
+ childrenKey: string;
8
+ valueKey: string;
9
+ labelKey: string;
10
+ columnWidth?: number;
11
+ columnHeight?: number | string;
12
+ cascade?: boolean;
13
+ cascadeData: (readonly ItemDataType<T>[])[];
14
+ cascadePaths?: ItemDataType<T>[];
15
+ uncheckableItemValues: T[];
16
+ renderTreeNode?: (node: React.ReactNode, item: ItemDataType<T>) => React.ReactNode;
17
+ renderColumn?: (childNodes: React.ReactNode, column: CascadeColumn<T>) => React.ReactNode;
18
+ onCheck?: (node: ItemDataType<T>, event: React.SyntheticEvent, checked: boolean) => void;
19
+ onSelect?: (node: ItemDataType<T>, cascadePaths: ItemDataType<T>[], event: React.SyntheticEvent) => void;
20
+ }
21
+ declare const TreeView: RsRefForwardingComponent<'div', TreeViewProps>;
22
+ export default TreeView;
@@ -14,15 +14,11 @@ var _utils = require("../utils");
14
14
  var _Picker = require("../internals/Picker");
15
15
  var _utils2 = require("./utils");
16
16
  var emptyArray = [];
17
-
18
- /**
19
- * TODO: reuse Menu from Cascader for consistent behavior
20
- */
21
17
  var TreeView = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
22
18
  var _props$as = props.as,
23
19
  Component = _props$as === void 0 ? 'div' : _props$as,
24
20
  _props$classPrefix = props.classPrefix,
25
- classPrefix = _props$classPrefix === void 0 ? 'menu' : _props$classPrefix,
21
+ classPrefix = _props$classPrefix === void 0 ? 'tree' : _props$classPrefix,
26
22
  className = props.className,
27
23
  cascade = props.cascade,
28
24
  _props$cascadeData = props.cascadeData,
@@ -33,10 +29,10 @@ var TreeView = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
33
29
  childrenKey = _props$childrenKey === void 0 ? 'children' : _props$childrenKey,
34
30
  _props$disabledItemVa = props.disabledItemValues,
35
31
  disabledItemValues = _props$disabledItemVa === void 0 ? emptyArray : _props$disabledItemVa,
36
- _props$menuWidth = props.menuWidth,
37
- menuWidth = _props$menuWidth === void 0 ? 156 : _props$menuWidth,
38
- _props$menuHeight = props.menuHeight,
39
- menuHeight = _props$menuHeight === void 0 ? 200 : _props$menuHeight,
32
+ _props$columnWidth = props.columnWidth,
33
+ columnWidth = _props$columnWidth === void 0 ? 156 : _props$columnWidth,
34
+ _props$columnHeight = props.columnHeight,
35
+ columnHeight = _props$columnHeight === void 0 ? 200 : _props$columnHeight,
40
36
  _props$uncheckableIte = props.uncheckableItemValues,
41
37
  uncheckableItemValues = _props$uncheckableIte === void 0 ? emptyArray : _props$uncheckableIte,
42
38
  value = props.value,
@@ -45,11 +41,11 @@ var TreeView = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
45
41
  _props$labelKey = props.labelKey,
46
42
  labelKey = _props$labelKey === void 0 ? 'label' : _props$labelKey,
47
43
  style = props.style,
48
- renderMenuItem = props.renderMenuItem,
49
- renderMenu = props.renderMenu,
44
+ renderTreeNode = props.renderTreeNode,
45
+ renderColumn = props.renderColumn,
50
46
  _onCheck = props.onCheck,
51
47
  onSelect = props.onSelect,
52
- rest = (0, _objectWithoutPropertiesLoose2.default)(props, ["as", "classPrefix", "className", "cascade", "cascadeData", "cascadePaths", "childrenKey", "disabledItemValues", "menuWidth", "menuHeight", "uncheckableItemValues", "value", "valueKey", "labelKey", "style", "renderMenuItem", "renderMenu", "onCheck", "onSelect"]);
48
+ rest = (0, _objectWithoutPropertiesLoose2.default)(props, ["as", "classPrefix", "className", "cascade", "cascadeData", "cascadePaths", "childrenKey", "disabledItemValues", "columnWidth", "columnHeight", "uncheckableItemValues", "value", "valueKey", "labelKey", "style", "renderTreeNode", "renderColumn", "onCheck", "onSelect"]);
53
49
  var _useClassNames = (0, _utils.useClassNames)(classPrefix),
54
50
  merge = _useClassNames.merge,
55
51
  prefix = _useClassNames.prefix;
@@ -127,19 +123,19 @@ var TreeView = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
127
123
  },
128
124
  checkable: !uncheckable,
129
125
  labelClickable: false
130
- }, renderMenuItem ? renderMenuItem(label, node) : label, children ? /*#__PURE__*/_react.default.createElement(Icon, {
126
+ }, renderTreeNode ? renderTreeNode(label, node) : label, children ? /*#__PURE__*/_react.default.createElement(Icon, {
131
127
  className: prefix('caret'),
132
128
  spin: node.loading
133
129
  }) : null);
134
130
  };
135
131
  var columnStyles = {
136
- height: menuHeight,
137
- width: menuWidth
132
+ height: columnHeight,
133
+ width: columnWidth
138
134
  };
139
135
  var cascadeNodes = cascadeData.map(function (children, layer) {
140
136
  var uncheckableCount = 0;
141
137
  var onlyKey = layer + "_" + children.length;
142
- var menu = /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, children.map(function (item, index) {
138
+ var childNodes = /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, children.map(function (item, index) {
143
139
  var uncheckable = uncheckableItemValues.some(function (uncheckableValue) {
144
140
  return (0, _utils.shallowEqual)(uncheckableValue, item[valueKey]);
145
141
  });
@@ -156,7 +152,7 @@ var TreeView = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
156
152
  size: children.length
157
153
  });
158
154
  }));
159
- var parentNode = cascadePaths[layer - 1];
155
+ var parentItem = cascadePaths[layer - 1];
160
156
  var columnClasses = prefix('column', {
161
157
  'column-uncheckable': uncheckableCount === children.length
162
158
  });
@@ -166,14 +162,18 @@ var TreeView = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
166
162
  className: columnClasses,
167
163
  "data-layer": layer,
168
164
  style: columnStyles
169
- }, renderMenu ? renderMenu(children, menu, parentNode, layer) : menu);
165
+ }, renderColumn ? renderColumn(childNodes, {
166
+ items: children,
167
+ parentItem: parentItem,
168
+ layer: layer
169
+ }) : childNodes);
170
170
  });
171
171
  var styles = (0, _extends2.default)({}, style, {
172
- width: cascadeData.length * menuWidth
172
+ width: cascadeData.length * columnWidth
173
173
  });
174
174
  return /*#__PURE__*/_react.default.createElement(Component, (0, _extends2.default)({
175
175
  role: "tree",
176
- id: id + "-" + popupType,
176
+ id: id ? id + "-" + popupType : undefined,
177
177
  "aria-labelledby": labelId,
178
178
  "aria-multiselectable": multiple
179
179
  }, rest, {
@@ -0,0 +1,5 @@
1
+ export { default as useFlattenData } from './useFlattenData';
2
+ export { default as useSelect } from './useSelect';
3
+ export { default as useColumnData } from './useColumnData';
4
+ export { default as useCascadeValue } from './useCascadeValue';
5
+ export { default as useSearch } from './useSearch';
@@ -0,0 +1,16 @@
1
+ 'use client';
2
+ "use strict";
3
+
4
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
5
+ exports.__esModule = true;
6
+ exports.useSearch = exports.useCascadeValue = exports.useColumnData = exports.useSelect = exports.useFlattenData = void 0;
7
+ var _useFlattenData = _interopRequireDefault(require("./useFlattenData"));
8
+ exports.useFlattenData = _useFlattenData.default;
9
+ var _useSelect = _interopRequireDefault(require("./useSelect"));
10
+ exports.useSelect = _useSelect.default;
11
+ var _useColumnData = _interopRequireDefault(require("./useColumnData"));
12
+ exports.useColumnData = _useColumnData.default;
13
+ var _useCascadeValue = _interopRequireDefault(require("./useCascadeValue"));
14
+ exports.useCascadeValue = _useCascadeValue.default;
15
+ var _useSearch = _interopRequireDefault(require("./useSearch"));
16
+ exports.useSearch = _useSearch.default;
@@ -0,0 +1,18 @@
1
+ /// <reference types="react" />
2
+ import { MultiCascadeTreeProps, ItemKeys } from '../types';
3
+ import { type ItemType } from '../utils';
4
+ /**
5
+ * A hook that converts the value into a cascading value
6
+ * @param props
7
+ * @param flattenData
8
+ */
9
+ declare function useCascadeValue<T>(props: Partial<MultiCascadeTreeProps<T>> & ItemKeys, flattenData: ItemType<T>[]): {
10
+ value: T[];
11
+ setValue: import("react").Dispatch<import("react").SetStateAction<T[]>>;
12
+ splitValue: (item: ItemType<T>, checked: boolean, value: T[]) => {
13
+ value: T[];
14
+ removedValue: T[];
15
+ };
16
+ handleCheck: (...args: any[]) => any;
17
+ };
18
+ export default useCascadeValue;
@@ -0,0 +1,202 @@
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 _react = require("react");
8
+ var _uniq = _interopRequireDefault(require("lodash/uniq"));
9
+ var _remove = _interopRequireDefault(require("lodash/remove"));
10
+ var _utils = require("../../utils");
11
+ var _utils2 = require("../utils");
12
+ /**
13
+ * A hook that converts the value into a cascading value
14
+ * @param props
15
+ * @param flattenData
16
+ */
17
+ function useCascadeValue(props, flattenData) {
18
+ var valueKey = props.valueKey,
19
+ childrenKey = props.childrenKey,
20
+ uncheckableItemValues = props.uncheckableItemValues,
21
+ cascade = props.cascade,
22
+ valueProp = props.value,
23
+ onChange = props.onChange,
24
+ onCheck = props.onCheck;
25
+ /**
26
+ * Get the values of all children
27
+ */
28
+ var getChildrenValue = (0, _react.useCallback)(function (item) {
29
+ var values = [];
30
+ if (!item[childrenKey]) {
31
+ return values;
32
+ }
33
+ item[childrenKey].forEach(function (n) {
34
+ if (uncheckableItemValues && !uncheckableItemValues.some(function (v) {
35
+ return v === n[valueKey];
36
+ })) {
37
+ values.push(n[valueKey]);
38
+ }
39
+ values = values.concat(getChildrenValue(n));
40
+ });
41
+ return values;
42
+ }, [childrenKey, uncheckableItemValues, valueKey]);
43
+ var splitValue = (0, _react.useCallback)(function (item, checked, value) {
44
+ var itemValue = item[valueKey];
45
+ var childrenValue = getChildrenValue(item);
46
+ var parents = (0, _utils2.getParents)(item);
47
+ var nextValue = [].concat(value);
48
+ var removedValue = [];
49
+ if (checked) {
50
+ nextValue.push(itemValue);
51
+
52
+ // Delete all values under the current node
53
+ removedValue = removedValue.concat((0, _utils2.removeAllChildrenValue)(nextValue, item, {
54
+ valueKey: valueKey,
55
+ childrenKey: childrenKey
56
+ }) || []);
57
+
58
+ // Traverse all ancestor nodes of the current node
59
+ // Then determine whether all the child nodes of these nodes are selected, and then they themselves must be selected
60
+ var _loop = function _loop(i) {
61
+ // Whether the parent node can be selected
62
+ var isCheckableParent = !(uncheckableItemValues !== null && uncheckableItemValues !== void 0 && uncheckableItemValues.some(function (v) {
63
+ return v === parents[i][valueKey];
64
+ }));
65
+ if (isCheckableParent) {
66
+ var isCheckAll = parents[i][childrenKey]
67
+ // Filter out options that are marked as not selectable
68
+ .filter(function (n) {
69
+ return !(uncheckableItemValues !== null && uncheckableItemValues !== void 0 && uncheckableItemValues.some(function (v) {
70
+ return v === n[valueKey];
71
+ }));
72
+ })
73
+ // Check if all nodes are selected
74
+ .every(function (n) {
75
+ return nextValue.some(function (v) {
76
+ return v === n[valueKey];
77
+ });
78
+ });
79
+ if (isCheckAll) {
80
+ // Add parent node value
81
+ nextValue.push(parents[i][valueKey]);
82
+
83
+ // Delete all values under the parent node
84
+ removedValue = removedValue.concat((0, _utils2.removeAllChildrenValue)(nextValue, parents[i], {
85
+ valueKey: valueKey,
86
+ childrenKey: childrenKey
87
+ }) || []);
88
+ }
89
+ }
90
+ };
91
+ for (var i = 0; i < parents.length; i++) {
92
+ _loop(i);
93
+ }
94
+ } else {
95
+ var tempValue = childrenValue.concat(parents.map(function (item) {
96
+ return item[valueKey];
97
+ }));
98
+ nextValue = nextValue.concat((0, _utils2.getOtherItemValuesByUnselectChild)(item, nextValue, {
99
+ valueKey: valueKey,
100
+ childrenKey: childrenKey
101
+ }));
102
+
103
+ // Delete related child and parent nodes
104
+ removedValue = (0, _remove.default)(nextValue, function (v) {
105
+ // Delete yourself
106
+ if (v === itemValue) {
107
+ return true;
108
+ }
109
+ return tempValue.some(function (n) {
110
+ return n === v;
111
+ });
112
+ });
113
+ }
114
+ var uniqValue = (0, _uniq.default)(nextValue);
115
+ var uniqRemovedValue = (0, _uniq.default)(removedValue);
116
+ return {
117
+ value: uniqValue,
118
+ removedValue: uniqRemovedValue
119
+ };
120
+ }, [valueKey, childrenKey, uncheckableItemValues, getChildrenValue]);
121
+ var transformValue = (0, _react.useCallback)(function (value) {
122
+ if (value === void 0) {
123
+ value = [];
124
+ }
125
+ if (!cascade) {
126
+ return value;
127
+ }
128
+ var tempRemovedValue = [];
129
+ var nextValue = [];
130
+ var _loop2 = function _loop2(i) {
131
+ // If the value in the current value is already in the deleted list, it will not be processed
132
+ if (tempRemovedValue.some(function (v) {
133
+ return v === value[i];
134
+ })) {
135
+ return "continue";
136
+ }
137
+ var item = flattenData.find(function (v) {
138
+ return v[valueKey] === value[i];
139
+ });
140
+ if (!item) {
141
+ return "continue";
142
+ }
143
+ var sv = splitValue(item, true, value);
144
+ tempRemovedValue = (0, _uniq.default)(tempRemovedValue.concat(sv.removedValue));
145
+
146
+ // Get all relevant values
147
+ nextValue = (0, _uniq.default)(nextValue.concat(sv.value));
148
+ };
149
+ for (var i = 0; i < value.length; i++) {
150
+ var _ret = _loop2(i);
151
+ if (_ret === "continue") continue;
152
+ }
153
+
154
+ // Finally traverse all nextValue, and delete if its parent node is also nextValue
155
+ return nextValue.filter(function (v) {
156
+ var item = flattenData.find(function (n) {
157
+ return n[valueKey] === v;
158
+ });
159
+ if (item !== null && item !== void 0 && item.parent && nextValue.some(function (v) {
160
+ var _item$parent;
161
+ return v === ((_item$parent = item.parent) === null || _item$parent === void 0 ? void 0 : _item$parent[valueKey]);
162
+ })) {
163
+ return false;
164
+ }
165
+ return true;
166
+ });
167
+ }, [cascade, flattenData, splitValue, valueKey]);
168
+ var _useState = (0, _react.useState)(transformValue(valueProp) || []),
169
+ value = _useState[0],
170
+ setValue = _useState[1];
171
+ (0, _react.useEffect)(function () {
172
+ // Update value when valueProp is updated.
173
+ setValue(transformValue(valueProp) || []);
174
+ }, [transformValue, valueProp]);
175
+ var handleCheck = (0, _utils.useEventCallback)(function (node, event, checked) {
176
+ var nodeValue = node[valueKey];
177
+ var nextValue = [];
178
+ if (cascade) {
179
+ nextValue = splitValue(node, checked, value).value;
180
+ } else {
181
+ nextValue = [].concat(value);
182
+ if (checked) {
183
+ nextValue.push(nodeValue);
184
+ } else {
185
+ nextValue = nextValue.filter(function (n) {
186
+ return n !== nodeValue;
187
+ });
188
+ }
189
+ }
190
+ setValue(nextValue);
191
+ onChange === null || onChange === void 0 ? void 0 : onChange(nextValue, event);
192
+ onCheck === null || onCheck === void 0 ? void 0 : onCheck(nextValue, node, checked, event);
193
+ });
194
+ return {
195
+ value: value,
196
+ setValue: setValue,
197
+ splitValue: splitValue,
198
+ handleCheck: handleCheck
199
+ };
200
+ }
201
+ var _default = useCascadeValue;
202
+ exports.default = _default;
@@ -0,0 +1,16 @@
1
+ /// <reference types="react" />
2
+ declare type MayHasParent<T extends Record<string, unknown>> = T & {
3
+ parent?: MayHasParent<T>;
4
+ };
5
+ /**
6
+ * A hook for column data
7
+ * @param flattenData
8
+ */
9
+ declare function useColumnData<T extends MayHasParent<Record<string, unknown>>>(flattenData: T[]): {
10
+ columnData: (readonly T[])[];
11
+ addColumn: (column: T[], index: number) => void;
12
+ removeColumnByIndex: (index: number) => void;
13
+ setColumnData: import("react").Dispatch<import("react").SetStateAction<(readonly T[])[]>>;
14
+ enforceUpdateColumnData: (nextData: T[]) => void;
15
+ };
16
+ export default useColumnData;