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
@@ -1,79 +0,0 @@
1
- 'use client';
2
- "use strict";
3
-
4
- exports.__esModule = true;
5
- exports.getColumnsAndPaths = getColumnsAndPaths;
6
- exports.usePaths = usePaths;
7
- var _react = require("react");
8
- var _treeUtils = require("../utils/treeUtils");
9
- /**
10
- * Calculate columns to be displayed:
11
- *
12
- * - Every ancestor level of activeItem should be displayed
13
- * - The level that activeItem is at should be displayed
14
- * - If activeItem is a parent node, its child level should be displayed
15
- *
16
- * @param items
17
- * @param value
18
- * @param options
19
- * @returns
20
- */
21
- function getColumnsAndPaths(items, pathTarget, options) {
22
- var getParent = options.getParent,
23
- getChildren = options.getChildren;
24
- if (!pathTarget) {
25
- return {
26
- columns: [items],
27
- path: []
28
- };
29
- }
30
- var columns = [];
31
- var path = [pathTarget];
32
- var children = getChildren(pathTarget);
33
- if (children && children.length > 0) {
34
- columns.unshift(children);
35
- }
36
- for (var parent = getParent(pathTarget); !!parent; parent = getParent(parent)) {
37
- var _getChildren;
38
- columns.unshift((_getChildren = getChildren(parent)) !== null && _getChildren !== void 0 ? _getChildren : []);
39
- path.unshift(parent);
40
- }
41
- columns.unshift(items);
42
- return {
43
- columns: columns,
44
- path: path
45
- };
46
- }
47
- /**
48
- * Caculate following 3 things
49
- *
50
- * - The columns of items to be displayed
51
- * - The path towards the current focused item
52
- * - The path towards the current selected item (referred to by Cascader's value)
53
- *
54
- * @param params
55
- * @returns
56
- */
57
- function usePaths(_ref) {
58
- var data = _ref.data,
59
- activeItem = _ref.activeItem,
60
- selectedItem = _ref.selectedItem,
61
- getParent = _ref.getParent,
62
- getChildren = _ref.getChildren;
63
- var pathTowardsSelectedItem = (0, _react.useMemo)(function () {
64
- return (0, _treeUtils.getPathTowardsItem)(selectedItem, getParent);
65
- }, [getParent, selectedItem]);
66
- var _useMemo = (0, _react.useMemo)(function () {
67
- return getColumnsAndPaths(data, activeItem, {
68
- getParent: getParent,
69
- getChildren: getChildren
70
- });
71
- }, [data, activeItem, getParent, getChildren]),
72
- columnsToDisplay = _useMemo.columns,
73
- pathTowardsActiveItem = _useMemo.path;
74
- return {
75
- columnsToDisplay: columnsToDisplay,
76
- pathTowardsSelectedItem: pathTowardsSelectedItem,
77
- pathTowardsActiveItem: pathTowardsActiveItem
78
- };
79
- }
@@ -1,25 +0,0 @@
1
- import React from 'react';
2
- import { ItemDataType, WithAsProps, RsRefForwardingComponent } from '../@types/common';
3
- import { ValueType } from './MultiCascader';
4
- export interface TreeViewProps extends WithAsProps {
5
- disabledItemValues: ValueType;
6
- value: ValueType;
7
- childrenKey: string;
8
- valueKey: string;
9
- labelKey: string;
10
- menuWidth?: number;
11
- menuHeight?: number | string;
12
- cascade?: boolean;
13
- cascadeData: (readonly ItemDataType[])[];
14
- cascadePaths?: ItemDataType[];
15
- uncheckableItemValues: ValueType;
16
- renderMenuItem?: (itemLabel: React.MouseEventHandler, item: ItemDataType) => React.ReactNode;
17
- renderMenu?: (children: readonly ItemDataType[], menu: React.ReactNode, parentNode?: ItemDataType, layer?: number) => React.ReactNode;
18
- onCheck?: (node: ItemDataType, event: React.SyntheticEvent, checked: boolean) => void;
19
- onSelect?: (node: ItemDataType, cascadePaths: ItemDataType[], event: React.SyntheticEvent) => void;
20
- }
21
- /**
22
- * TODO: reuse Menu from Cascader for consistent behavior
23
- */
24
- declare const TreeView: RsRefForwardingComponent<'div', TreeViewProps>;
25
- export default TreeView;
@@ -1,71 +0,0 @@
1
- /// <reference types="react" />
2
- import { MultiCascaderProps, ValueType } from './MultiCascader';
3
- import { ItemDataType } from '../@types/common';
4
- export interface ItemType extends ItemDataType {
5
- parent?: ItemType;
6
- }
7
- interface ItemKeys {
8
- valueKey: string;
9
- labelKey: string;
10
- childrenKey: string;
11
- }
12
- declare type MayHasParent<T extends Record<string, unknown>> = T & {
13
- parent?: MayHasParent<T>;
14
- };
15
- /**
16
- * Get all parents of a node
17
- * @param node
18
- */
19
- export declare const getParents: <T extends Record<string, unknown>>(node: MayHasParent<T>) => MayHasParent<T>[];
20
- /**
21
- * Check if any child nodes are selected.
22
- * @param node
23
- * @param value
24
- * @param itemKeys
25
- */
26
- export declare const isSomeChildChecked: <T extends Record<string, unknown>>(node: T, value: ValueType, itemKeys: Omit<ItemKeys, 'labelKey'>) => any;
27
- /**
28
- * Check if the parent is selected.
29
- * @param node
30
- * @param value
31
- * @param itemKeys
32
- */
33
- export declare const isSomeParentChecked: <T extends Record<string, unknown>>(node: MayHasParent<T>, value: ValueType, itemKeys: Pick<ItemKeys, 'valueKey'>) => any;
34
- export declare const getOtherItemValuesByUnselectChild: <T>(itemNode: ItemType, value: any, itemKeys: Omit<ItemKeys, 'labelKey'>) => T[];
35
- /**
36
- * Remove the values of all children.
37
- */
38
- export declare const removeAllChildrenValue: <T>(value: T[], item: ItemType, itemKeys: Omit<ItemKeys, 'labelKey'>) => T[] | undefined;
39
- /**
40
- * A hook to flatten tree structure data
41
- * @param data
42
- */
43
- export declare function useFlattenData<T>(data: T[], itemKeys: ItemKeys): {
44
- addFlattenData: (children: T[], parent: T) => void;
45
- flattenData: T[];
46
- };
47
- /**
48
- * A hook for column data
49
- * @param flattenData
50
- */
51
- export declare function useColumnData<T extends MayHasParent<Record<string, unknown>>>(flattenData: T[]): {
52
- columnData: (readonly T[])[];
53
- addColumn: (column: T[], index: number) => void;
54
- removeColumnByIndex: (index: number) => void;
55
- setColumnData: import("react").Dispatch<import("react").SetStateAction<(readonly T[])[]>>;
56
- enforceUpdateColumnData: (nextData: T[]) => void;
57
- };
58
- /**
59
- * A hook that converts the value into a cascading value
60
- * @param props
61
- * @param flattenData
62
- */
63
- export declare function useCascadeValue<T>(props: Partial<MultiCascaderProps<T[]>> & ItemKeys, flattenData: ItemType[]): {
64
- value: T[];
65
- setValue: import("react").Dispatch<import("react").SetStateAction<T[]>>;
66
- splitValue: (item: ItemType, checked: boolean, value: T[]) => {
67
- value: T[];
68
- removedValue: T[];
69
- };
70
- };
71
- export {};
@@ -1,382 +0,0 @@
1
- 'use client';
2
- "use strict";
3
-
4
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
5
- exports.__esModule = true;
6
- exports.useFlattenData = useFlattenData;
7
- exports.useColumnData = useColumnData;
8
- exports.useCascadeValue = useCascadeValue;
9
- exports.removeAllChildrenValue = exports.getOtherItemValuesByUnselectChild = exports.isSomeParentChecked = exports.isSomeChildChecked = exports.getParents = void 0;
10
- var _react = require("react");
11
- var _uniq = _interopRequireDefault(require("lodash/uniq"));
12
- var _remove = _interopRequireDefault(require("lodash/remove"));
13
- var _slice = _interopRequireDefault(require("lodash/slice"));
14
- var _treeUtils = require("../utils/treeUtils");
15
- var _attachParent = require("../utils/attachParent");
16
- /**
17
- * Get all parents of a node
18
- * @param node
19
- */
20
- var getParents = function getParents(node) {
21
- var parents = [];
22
- if (!node.parent) {
23
- return parents;
24
- }
25
- parents.push(node.parent);
26
- parents = parents.concat(getParents(node.parent));
27
- return parents;
28
- };
29
-
30
- /**
31
- * Check if any child nodes are selected.
32
- * @param node
33
- * @param value
34
- * @param itemKeys
35
- */
36
- exports.getParents = getParents;
37
- var isSomeChildChecked = function isSomeChildChecked(node, value, itemKeys) {
38
- var childrenKey = itemKeys.childrenKey,
39
- valueKey = itemKeys.valueKey;
40
- if (!node[childrenKey] || !value) {
41
- return false;
42
- }
43
- return node[childrenKey].some(function (child) {
44
- var _child$childrenKey;
45
- if (value.some(function (n) {
46
- return n === child[valueKey];
47
- })) {
48
- return true;
49
- }
50
- if ((_child$childrenKey = child[childrenKey]) !== null && _child$childrenKey !== void 0 && _child$childrenKey.length) {
51
- return isSomeChildChecked(child, value, itemKeys);
52
- }
53
- return false;
54
- });
55
- };
56
-
57
- /**
58
- * Check if the parent is selected.
59
- * @param node
60
- * @param value
61
- * @param itemKeys
62
- */
63
- exports.isSomeChildChecked = isSomeChildChecked;
64
- var isSomeParentChecked = function isSomeParentChecked(node, value, itemKeys) {
65
- var valueKey = itemKeys.valueKey;
66
- if (!value) {
67
- return false;
68
- }
69
- if (value.some(function (n) {
70
- return n === node[valueKey];
71
- })) {
72
- return true;
73
- }
74
- if (node.parent) {
75
- return isSomeParentChecked(node.parent, value, itemKeys);
76
- }
77
- return false;
78
- };
79
- exports.isSomeParentChecked = isSomeParentChecked;
80
- var getOtherItemValuesByUnselectChild = function getOtherItemValuesByUnselectChild(itemNode, value, itemKeys) {
81
- var valueKey = itemKeys.valueKey,
82
- childrenKey = itemKeys.childrenKey;
83
- var parentValues = [];
84
- var itemValues = [];
85
-
86
- // Find the parent node of the current node by value
87
- function findParent(item) {
88
- parentValues.push(item[valueKey]);
89
- if (value.some(function (v) {
90
- return v === item[valueKey];
91
- })) {
92
- return item;
93
- }
94
- if (item.parent) {
95
- var p = findParent(item.parent);
96
- if (p) {
97
- return p;
98
- }
99
- }
100
- return null;
101
- }
102
-
103
- // Get child nodes through parent node
104
- function pushChildValue(item) {
105
- if (!item[childrenKey]) {
106
- return;
107
- }
108
- item[childrenKey].forEach(function (n) {
109
- // Determine whether it is a direct parent
110
- if (parentValues.some(function (v) {
111
- return v === n[valueKey];
112
- }) && n[childrenKey]) {
113
- pushChildValue(n);
114
- } else if (n[valueKey] !== itemNode[valueKey]) {
115
- itemValues.push(n[valueKey]);
116
- }
117
- });
118
- }
119
- var parent = findParent(itemNode);
120
- if (!parent) {
121
- return [];
122
- }
123
- pushChildValue(parent);
124
- return itemValues;
125
- };
126
-
127
- /**
128
- * Remove the values of all children.
129
- */
130
- exports.getOtherItemValuesByUnselectChild = getOtherItemValuesByUnselectChild;
131
- var removeAllChildrenValue = function removeAllChildrenValue(value, item, itemKeys) {
132
- var valueKey = itemKeys.valueKey,
133
- childrenKey = itemKeys.childrenKey;
134
- var removedValue = [];
135
- if (!item[childrenKey]) {
136
- return;
137
- }
138
- item[childrenKey].forEach(function (n) {
139
- removedValue = removedValue.concat((0, _remove.default)(value, function (v) {
140
- return v === n[valueKey];
141
- }));
142
- if (n[childrenKey]) {
143
- removeAllChildrenValue(value, n, itemKeys);
144
- }
145
- });
146
- return removedValue;
147
- };
148
-
149
- /**
150
- * A hook to flatten tree structure data
151
- * @param data
152
- */
153
- exports.removeAllChildrenValue = removeAllChildrenValue;
154
- function useFlattenData(data, itemKeys) {
155
- var childrenKey = itemKeys.childrenKey;
156
- var _useState = (0, _react.useState)((0, _treeUtils.UNSAFE_flattenTree)(data, itemKeys.childrenKey)),
157
- flattenData = _useState[0],
158
- setFlattenData = _useState[1];
159
- var addFlattenData = (0, _react.useCallback)(function (children, parent) {
160
- var nodes = children.map(function (child) {
161
- return (0, _attachParent.attachParent)(child, parent);
162
- });
163
- parent[childrenKey] = nodes;
164
- setFlattenData([].concat(flattenData, nodes));
165
- }, [childrenKey, flattenData]);
166
- (0, _react.useEffect)(function () {
167
- setFlattenData((0, _treeUtils.UNSAFE_flattenTree)(data, itemKeys.childrenKey));
168
- }, [data, itemKeys.childrenKey]);
169
- return {
170
- addFlattenData: addFlattenData,
171
- flattenData: flattenData
172
- };
173
- }
174
-
175
- /**
176
- * A hook for column data
177
- * @param flattenData
178
- */
179
- function useColumnData(flattenData) {
180
- // The columns displayed in the cascading panel.
181
- var _useState2 = (0, _react.useState)([flattenData.filter(function (item) {
182
- return !item.parent;
183
- })]),
184
- columnData = _useState2[0],
185
- setColumnData = _useState2[1];
186
- /**
187
- * Add a list of options to the cascading panel. Used for lazy loading options.
188
- * @param column
189
- * @param index The index of the current column.
190
- */
191
- function addColumn(column, index) {
192
- setColumnData([].concat((0, _slice.default)(columnData, 0, index), [column]));
193
- }
194
-
195
- /**
196
- * Remove subsequent columns of the specified column
197
- * @param index
198
- */
199
- function removeColumnByIndex(index) {
200
- setColumnData([].concat((0, _slice.default)(columnData, 0, index)));
201
- }
202
- function enforceUpdateColumnData(nextData) {
203
- var nextFlattenData = (0, _treeUtils.UNSAFE_flattenTree)(nextData);
204
- setColumnData([nextFlattenData.filter(function (item) {
205
- return !item.parent;
206
- })]);
207
- }
208
- return {
209
- columnData: columnData,
210
- addColumn: addColumn,
211
- removeColumnByIndex: removeColumnByIndex,
212
- setColumnData: setColumnData,
213
- enforceUpdateColumnData: enforceUpdateColumnData
214
- };
215
- }
216
-
217
- /**
218
- * A hook that converts the value into a cascading value
219
- * @param props
220
- * @param flattenData
221
- */
222
- function useCascadeValue(props, flattenData) {
223
- var valueKey = props.valueKey,
224
- childrenKey = props.childrenKey,
225
- uncheckableItemValues = props.uncheckableItemValues,
226
- cascade = props.cascade,
227
- valueProp = props.value;
228
- /**
229
- * Get the values of all children
230
- */
231
- var getChildrenValue = (0, _react.useCallback)(function (item) {
232
- var values = [];
233
- if (!item[childrenKey]) {
234
- return values;
235
- }
236
- item[childrenKey].forEach(function (n) {
237
- if (uncheckableItemValues && !uncheckableItemValues.some(function (v) {
238
- return v === n[valueKey];
239
- })) {
240
- values.push(n[valueKey]);
241
- }
242
- values = values.concat(getChildrenValue(n));
243
- });
244
- return values;
245
- }, [childrenKey, uncheckableItemValues, valueKey]);
246
- var splitValue = (0, _react.useCallback)(function (item, checked, value) {
247
- var itemValue = item[valueKey];
248
- var childrenValue = getChildrenValue(item);
249
- var parents = getParents(item);
250
- var nextValue = [].concat(value);
251
- var removedValue = [];
252
- if (checked) {
253
- nextValue.push(itemValue);
254
-
255
- // Delete all values under the current node
256
- removedValue = removedValue.concat(removeAllChildrenValue(nextValue, item, {
257
- valueKey: valueKey,
258
- childrenKey: childrenKey
259
- }) || []);
260
-
261
- // Traverse all ancestor nodes of the current node
262
- // Then determine whether all the child nodes of these nodes are selected, and then they themselves must be selected
263
- var _loop = function _loop(i) {
264
- // Whether the parent node can be selected
265
- var isCheckableParent = !(uncheckableItemValues !== null && uncheckableItemValues !== void 0 && uncheckableItemValues.some(function (v) {
266
- return v === parents[i][valueKey];
267
- }));
268
- if (isCheckableParent) {
269
- var isCheckAll = parents[i][childrenKey]
270
- // Filter out options that are marked as not selectable
271
- .filter(function (n) {
272
- return !(uncheckableItemValues !== null && uncheckableItemValues !== void 0 && uncheckableItemValues.some(function (v) {
273
- return v === n[valueKey];
274
- }));
275
- })
276
- // Check if all nodes are selected
277
- .every(function (n) {
278
- return nextValue.some(function (v) {
279
- return v === n[valueKey];
280
- });
281
- });
282
- if (isCheckAll) {
283
- // Add parent node value
284
- nextValue.push(parents[i][valueKey]);
285
-
286
- // Delete all values under the parent node
287
- removedValue = removedValue.concat(removeAllChildrenValue(nextValue, parents[i], {
288
- valueKey: valueKey,
289
- childrenKey: childrenKey
290
- }) || []);
291
- }
292
- }
293
- };
294
- for (var i = 0; i < parents.length; i++) {
295
- _loop(i);
296
- }
297
- } else {
298
- var tempValue = childrenValue.concat(parents.map(function (item) {
299
- return item[valueKey];
300
- }));
301
- nextValue = nextValue.concat(getOtherItemValuesByUnselectChild(item, nextValue, {
302
- valueKey: valueKey,
303
- childrenKey: childrenKey
304
- }));
305
-
306
- // Delete related child and parent nodes
307
- removedValue = (0, _remove.default)(nextValue, function (v) {
308
- // Delete yourself
309
- if (v === itemValue) {
310
- return true;
311
- }
312
- return tempValue.some(function (n) {
313
- return n === v;
314
- });
315
- });
316
- }
317
- var uniqValue = (0, _uniq.default)(nextValue);
318
- var uniqRemovedValue = (0, _uniq.default)(removedValue);
319
- return {
320
- value: uniqValue,
321
- removedValue: uniqRemovedValue
322
- };
323
- }, [valueKey, childrenKey, uncheckableItemValues, getChildrenValue]);
324
- var transformValue = (0, _react.useCallback)(function (value) {
325
- if (value === void 0) {
326
- value = [];
327
- }
328
- if (!cascade) {
329
- return value;
330
- }
331
- var tempRemovedValue = [];
332
- var nextValue = [];
333
- var _loop2 = function _loop2(i) {
334
- // If the value in the current value is already in the deleted list, it will not be processed
335
- if (tempRemovedValue.some(function (v) {
336
- return v === value[i];
337
- })) {
338
- return "continue";
339
- }
340
- var item = flattenData.find(function (v) {
341
- return v[valueKey] === value[i];
342
- });
343
- if (!item) {
344
- return "continue";
345
- }
346
- var sv = splitValue(item, true, value);
347
- tempRemovedValue = (0, _uniq.default)(tempRemovedValue.concat(sv.removedValue));
348
-
349
- // Get all relevant values
350
- nextValue = (0, _uniq.default)(nextValue.concat(sv.value));
351
- };
352
- for (var i = 0; i < value.length; i++) {
353
- var _ret = _loop2(i);
354
- if (_ret === "continue") continue;
355
- }
356
-
357
- // Finally traverse all nextValue, and delete if its parent node is also nextValue
358
- return nextValue.filter(function (v) {
359
- var item = flattenData.find(function (n) {
360
- return n[valueKey] === v;
361
- });
362
- if (item !== null && item !== void 0 && item.parent && nextValue.some(function (v) {
363
- return v === item.parent && item.parent[valueKey];
364
- })) {
365
- return false;
366
- }
367
- return true;
368
- });
369
- }, [cascade, flattenData, splitValue, valueKey]);
370
- var _useState3 = (0, _react.useState)(transformValue(valueProp) || []),
371
- value = _useState3[0],
372
- setValue = _useState3[1];
373
- (0, _react.useEffect)(function () {
374
- // Update value when valueProp is updated.
375
- setValue(transformValue(valueProp) || []);
376
- }, [transformValue, valueProp]);
377
- return {
378
- value: value,
379
- setValue: setValue,
380
- splitValue: splitValue
381
- };
382
- }
@@ -1,24 +0,0 @@
1
- import React from 'react';
2
- import { ItemDataType, WithAsProps, RsRefForwardingComponent } from '../@types/common';
3
- import { ValueType } from './Cascader';
4
- declare type SetLike<T = unknown> = {
5
- has(value: T): boolean;
6
- };
7
- export interface TreeViewProps extends Omit<WithAsProps, 'classPrefix'> {
8
- classPrefix: string;
9
- disabledItemValues: ValueType[];
10
- activeItemValue?: ValueType | null;
11
- childrenKey: string;
12
- cascadeData: (readonly ItemDataType[])[];
13
- loadingItemsSet?: SetLike<ItemDataType>;
14
- cascadePaths: ItemDataType[];
15
- valueKey: string;
16
- labelKey: string;
17
- menuWidth?: number;
18
- menuHeight?: number | string;
19
- renderMenuItem?: (itemLabel: React.ReactNode, item: ItemDataType) => React.ReactNode;
20
- renderMenu?: (items: readonly ItemDataType[], menu: React.ReactNode, parentNode?: ItemDataType, layer?: number) => React.ReactNode;
21
- onSelect?: (node: ItemDataType, cascadePaths: ItemDataType[], isLeafNode: boolean, event: React.MouseEvent) => void;
22
- }
23
- declare const TreeView: RsRefForwardingComponent<'div', TreeViewProps>;
24
- export default TreeView;