rsuite 5.56.0 → 5.57.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 (179) hide show
  1. package/CHANGELOG.md +16 -0
  2. package/CascadeTree/package.json +7 -0
  3. package/CascadeTree/styles/index.css +273 -0
  4. package/CascadeTree/styles/index.less +77 -0
  5. package/CascadeTree/styles/search.less +45 -0
  6. package/Cascader/styles/index.css +187 -192
  7. package/Cascader/styles/index.less +1 -122
  8. package/MultiCascadeTree/package.json +7 -0
  9. package/MultiCascadeTree/styles/index.css +3701 -0
  10. package/MultiCascadeTree/styles/index.less +37 -0
  11. package/MultiCascader/styles/index.css +72 -69
  12. package/MultiCascader/styles/index.less +11 -31
  13. package/cjs/@types/common.d.ts +12 -14
  14. package/cjs/CascadeTree/CascadeTree.d.ts +16 -0
  15. package/cjs/CascadeTree/CascadeTree.js +174 -0
  16. package/cjs/CascadeTree/SearchView.d.ts +17 -0
  17. package/cjs/CascadeTree/SearchView.js +106 -0
  18. package/cjs/CascadeTree/TreeView.d.ts +20 -0
  19. package/cjs/{Cascader → CascadeTree}/TreeView.js +42 -33
  20. package/cjs/CascadeTree/hooks/index.d.ts +3 -0
  21. package/cjs/CascadeTree/hooks/index.js +12 -0
  22. package/cjs/{Cascader/utils.d.ts → CascadeTree/hooks/usePaths.d.ts} +3 -25
  23. package/cjs/CascadeTree/hooks/usePaths.js +42 -0
  24. package/cjs/CascadeTree/hooks/useSearch.d.ts +17 -0
  25. package/cjs/CascadeTree/hooks/useSearch.js +59 -0
  26. package/cjs/CascadeTree/hooks/useSelect.d.ts +23 -0
  27. package/cjs/CascadeTree/hooks/useSelect.js +64 -0
  28. package/cjs/CascadeTree/index.d.ts +4 -0
  29. package/cjs/CascadeTree/index.js +9 -0
  30. package/cjs/CascadeTree/types.d.ts +66 -0
  31. package/cjs/CascadeTree/types.js +2 -0
  32. package/cjs/CascadeTree/utils.d.ts +32 -0
  33. package/cjs/CascadeTree/utils.js +66 -0
  34. package/cjs/Cascader/Cascader.d.ts +57 -26
  35. package/cjs/Cascader/Cascader.js +180 -247
  36. package/cjs/Cascader/useActive.d.ts +15 -0
  37. package/cjs/Cascader/useActive.js +43 -0
  38. package/cjs/InlineEdit/InlineEdit.d.ts +1 -1
  39. package/cjs/Loader/Loader.js +5 -4
  40. package/cjs/MultiCascadeTree/MultiCascadeTree.d.ts +9 -0
  41. package/cjs/MultiCascadeTree/MultiCascadeTree.js +131 -0
  42. package/cjs/MultiCascadeTree/SearchView.d.ts +17 -0
  43. package/cjs/MultiCascadeTree/SearchView.js +117 -0
  44. package/cjs/MultiCascadeTree/TreeView.d.ts +22 -0
  45. package/cjs/{MultiCascader → MultiCascadeTree}/TreeView.js +20 -20
  46. package/cjs/MultiCascadeTree/hooks/index.d.ts +5 -0
  47. package/cjs/MultiCascadeTree/hooks/index.js +16 -0
  48. package/cjs/MultiCascadeTree/hooks/useCascadeValue.d.ts +18 -0
  49. package/cjs/MultiCascadeTree/hooks/useCascadeValue.js +202 -0
  50. package/cjs/MultiCascadeTree/hooks/useColumnData.d.ts +16 -0
  51. package/cjs/MultiCascadeTree/hooks/useColumnData.js +52 -0
  52. package/cjs/MultiCascadeTree/hooks/useFlattenData.d.ts +9 -0
  53. package/cjs/MultiCascadeTree/hooks/useFlattenData.js +33 -0
  54. package/cjs/MultiCascadeTree/hooks/useSearch.d.ts +17 -0
  55. package/cjs/MultiCascadeTree/hooks/useSearch.js +52 -0
  56. package/cjs/MultiCascadeTree/hooks/useSelect.d.ts +19 -0
  57. package/cjs/MultiCascadeTree/hooks/useSelect.js +83 -0
  58. package/cjs/MultiCascadeTree/index.d.ts +4 -0
  59. package/cjs/MultiCascadeTree/index.js +9 -0
  60. package/cjs/MultiCascadeTree/types.d.ts +26 -0
  61. package/cjs/MultiCascadeTree/types.js +2 -0
  62. package/cjs/MultiCascadeTree/utils.d.ts +37 -0
  63. package/cjs/MultiCascadeTree/utils.js +140 -0
  64. package/cjs/MultiCascader/MultiCascader.d.ts +57 -29
  65. package/cjs/MultiCascader/MultiCascader.js +175 -287
  66. package/cjs/Tree/Tree.d.ts +4 -4
  67. package/cjs/index.d.ts +6 -1
  68. package/cjs/index.js +8 -3
  69. package/cjs/internals/Picker/PickerToggle.d.ts +4 -5
  70. package/cjs/toaster/ToastContainer.d.ts +9 -2
  71. package/cjs/toaster/index.d.ts +0 -1
  72. package/cjs/toaster/index.js +1 -3
  73. package/cjs/useToaster/index.d.ts +2 -0
  74. package/cjs/useToaster/index.js +9 -0
  75. package/cjs/{toaster → useToaster}/useToaster.d.ts +4 -4
  76. package/cjs/{toaster → useToaster}/useToaster.js +4 -4
  77. package/cjs/utils/index.d.ts +1 -0
  78. package/cjs/utils/index.js +5 -2
  79. package/dist/rsuite-no-reset-rtl.css +64 -61
  80. package/dist/rsuite-no-reset-rtl.min.css +1 -1
  81. package/dist/rsuite-no-reset-rtl.min.css.map +1 -1
  82. package/dist/rsuite-no-reset.css +64 -61
  83. package/dist/rsuite-no-reset.min.css +1 -1
  84. package/dist/rsuite-no-reset.min.css.map +1 -1
  85. package/dist/rsuite-rtl.css +64 -61
  86. package/dist/rsuite-rtl.min.css +1 -1
  87. package/dist/rsuite-rtl.min.css.map +1 -1
  88. package/dist/rsuite.css +64 -61
  89. package/dist/rsuite.js +242 -44
  90. package/dist/rsuite.js.map +1 -1
  91. package/dist/rsuite.min.css +1 -1
  92. package/dist/rsuite.min.css.map +1 -1
  93. package/dist/rsuite.min.js +1 -1
  94. package/dist/rsuite.min.js.map +1 -1
  95. package/esm/@types/common.d.ts +12 -14
  96. package/esm/CascadeTree/CascadeTree.d.ts +16 -0
  97. package/esm/CascadeTree/CascadeTree.js +167 -0
  98. package/esm/CascadeTree/SearchView.d.ts +17 -0
  99. package/esm/CascadeTree/SearchView.js +100 -0
  100. package/esm/CascadeTree/TreeView.d.ts +20 -0
  101. package/esm/{Cascader → CascadeTree}/TreeView.js +42 -33
  102. package/esm/CascadeTree/hooks/index.d.ts +3 -0
  103. package/esm/CascadeTree/hooks/index.js +4 -0
  104. package/esm/{Cascader/utils.d.ts → CascadeTree/hooks/usePaths.d.ts} +3 -25
  105. package/esm/CascadeTree/hooks/usePaths.js +36 -0
  106. package/esm/CascadeTree/hooks/useSearch.d.ts +17 -0
  107. package/esm/CascadeTree/hooks/useSearch.js +54 -0
  108. package/esm/CascadeTree/hooks/useSelect.d.ts +23 -0
  109. package/esm/CascadeTree/hooks/useSelect.js +59 -0
  110. package/esm/CascadeTree/index.d.ts +4 -0
  111. package/esm/CascadeTree/index.js +3 -0
  112. package/esm/CascadeTree/types.d.ts +66 -0
  113. package/esm/CascadeTree/types.js +1 -0
  114. package/esm/CascadeTree/utils.d.ts +32 -0
  115. package/esm/CascadeTree/utils.js +61 -0
  116. package/esm/Cascader/Cascader.d.ts +57 -26
  117. package/esm/Cascader/Cascader.js +167 -233
  118. package/esm/Cascader/useActive.d.ts +15 -0
  119. package/esm/Cascader/useActive.js +37 -0
  120. package/esm/InlineEdit/InlineEdit.d.ts +1 -1
  121. package/esm/Loader/Loader.js +6 -5
  122. package/esm/MultiCascadeTree/MultiCascadeTree.d.ts +9 -0
  123. package/esm/MultiCascadeTree/MultiCascadeTree.js +125 -0
  124. package/esm/MultiCascadeTree/SearchView.d.ts +17 -0
  125. package/esm/MultiCascadeTree/SearchView.js +111 -0
  126. package/esm/MultiCascadeTree/TreeView.d.ts +22 -0
  127. package/esm/{MultiCascader → MultiCascadeTree}/TreeView.js +20 -20
  128. package/esm/MultiCascadeTree/hooks/index.d.ts +5 -0
  129. package/esm/MultiCascadeTree/hooks/index.js +6 -0
  130. package/esm/MultiCascadeTree/hooks/useCascadeValue.d.ts +18 -0
  131. package/esm/MultiCascadeTree/hooks/useCascadeValue.js +197 -0
  132. package/esm/MultiCascadeTree/hooks/useColumnData.d.ts +16 -0
  133. package/esm/MultiCascadeTree/hooks/useColumnData.js +46 -0
  134. package/esm/MultiCascadeTree/hooks/useFlattenData.d.ts +9 -0
  135. package/esm/MultiCascadeTree/hooks/useFlattenData.js +28 -0
  136. package/esm/MultiCascadeTree/hooks/useSearch.d.ts +17 -0
  137. package/esm/MultiCascadeTree/hooks/useSearch.js +47 -0
  138. package/esm/MultiCascadeTree/hooks/useSelect.d.ts +19 -0
  139. package/esm/MultiCascadeTree/hooks/useSelect.js +77 -0
  140. package/esm/MultiCascadeTree/index.d.ts +4 -0
  141. package/esm/MultiCascadeTree/index.js +3 -0
  142. package/esm/MultiCascadeTree/types.d.ts +26 -0
  143. package/esm/MultiCascadeTree/types.js +1 -0
  144. package/esm/MultiCascadeTree/utils.d.ts +37 -0
  145. package/esm/MultiCascadeTree/utils.js +130 -0
  146. package/esm/MultiCascader/MultiCascader.d.ts +57 -29
  147. package/esm/MultiCascader/MultiCascader.js +168 -279
  148. package/esm/Tree/Tree.d.ts +4 -4
  149. package/esm/index.d.ts +6 -1
  150. package/esm/index.js +5 -1
  151. package/esm/internals/Picker/PickerToggle.d.ts +4 -5
  152. package/esm/toaster/ToastContainer.d.ts +9 -2
  153. package/esm/toaster/index.d.ts +0 -1
  154. package/esm/toaster/index.js +0 -1
  155. package/esm/useToaster/index.d.ts +2 -0
  156. package/esm/useToaster/index.js +3 -0
  157. package/esm/{toaster → useToaster}/useToaster.d.ts +4 -4
  158. package/esm/{toaster → useToaster}/useToaster.js +4 -4
  159. package/esm/utils/index.d.ts +1 -0
  160. package/esm/utils/index.js +2 -1
  161. package/package.json +1 -1
  162. package/styles/index.less +2 -0
  163. package/useToaster/package.json +7 -0
  164. package/useToaster/styles/index.css +239 -0
  165. package/useToaster/styles/index.less +1 -0
  166. package/cjs/Cascader/DropdownMenu.d.ts +0 -24
  167. package/cjs/Cascader/DropdownMenu.js +0 -175
  168. package/cjs/Cascader/TreeView.d.ts +0 -24
  169. package/cjs/Cascader/utils.js +0 -79
  170. package/cjs/MultiCascader/TreeView.d.ts +0 -25
  171. package/cjs/MultiCascader/utils.d.ts +0 -71
  172. package/cjs/MultiCascader/utils.js +0 -382
  173. package/esm/Cascader/DropdownMenu.d.ts +0 -24
  174. package/esm/Cascader/DropdownMenu.js +0 -168
  175. package/esm/Cascader/TreeView.d.ts +0 -24
  176. package/esm/Cascader/utils.js +0 -74
  177. package/esm/MultiCascader/TreeView.d.ts +0 -25
  178. package/esm/MultiCascader/utils.d.ts +0 -71
  179. package/esm/MultiCascader/utils.js +0 -369
@@ -1,168 +0,0 @@
1
- 'use client';
2
- import _extends from "@babel/runtime/helpers/esm/extends";
3
- import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
4
- import React, { useEffect, useRef } from 'react';
5
- import SpinnerIcon from '@rsuite/icons/legacy/Spinner';
6
- import isUndefined from 'lodash/isUndefined';
7
- import isNil from 'lodash/isNil';
8
- import { shallowEqual, useClassNames, mergeRefs, useCustom, useEventCallback } from '../utils';
9
- import { ListItem, useCombobox } from '../internals/Picker';
10
- import AngleLeftIcon from '@rsuite/icons/legacy/AngleLeft';
11
- import AngleRightIcon from '@rsuite/icons/legacy/AngleRight';
12
- import getPosition from 'dom-lib/getPosition';
13
- import scrollTop from 'dom-lib/scrollTop';
14
- var emptyArray = [];
15
- var TreeView = /*#__PURE__*/React.forwardRef(function (props, ref) {
16
- var _props$as = props.as,
17
- Component = _props$as === void 0 ? 'div' : _props$as,
18
- activeItemValue = props.activeItemValue,
19
- classPrefix = props.classPrefix,
20
- className = props.className,
21
- _props$childrenKey = props.childrenKey,
22
- childrenKey = _props$childrenKey === void 0 ? 'children' : _props$childrenKey,
23
- _props$disabledItemVa = props.disabledItemValues,
24
- disabledItemValues = _props$disabledItemVa === void 0 ? emptyArray : _props$disabledItemVa,
25
- _props$menuWidth = props.menuWidth,
26
- menuWidth = _props$menuWidth === void 0 ? 120 : _props$menuWidth,
27
- _props$menuHeight = props.menuHeight,
28
- menuHeight = _props$menuHeight === void 0 ? 200 : _props$menuHeight,
29
- _props$valueKey = props.valueKey,
30
- valueKey = _props$valueKey === void 0 ? 'value' : _props$valueKey,
31
- _props$cascadeData = props.cascadeData,
32
- cascadeData = _props$cascadeData === void 0 ? emptyArray : _props$cascadeData,
33
- _props$cascadePaths = props.cascadePaths,
34
- cascadePaths = _props$cascadePaths === void 0 ? emptyArray : _props$cascadePaths,
35
- loadingItemsSet = props.loadingItemsSet,
36
- _props$labelKey = props.labelKey,
37
- labelKey = _props$labelKey === void 0 ? 'label' : _props$labelKey,
38
- style = props.style,
39
- renderMenu = props.renderMenu,
40
- renderMenuItem = props.renderMenuItem,
41
- onSelect = props.onSelect,
42
- rest = _objectWithoutPropertiesLoose(props, ["as", "activeItemValue", "classPrefix", "className", "childrenKey", "disabledItemValues", "menuWidth", "menuHeight", "valueKey", "cascadeData", "cascadePaths", "loadingItemsSet", "labelKey", "style", "renderMenu", "renderMenuItem", "onSelect"]);
43
- var _useClassNames = useClassNames(classPrefix),
44
- merge = _useClassNames.merge,
45
- prefix = _useClassNames.prefix;
46
- var classes = merge(className, prefix('items'));
47
- var rootRef = useRef();
48
- var _useCustom = useCustom(),
49
- rtl = _useCustom.rtl;
50
- var _useCombobox = useCombobox(),
51
- id = _useCombobox.id,
52
- labelId = _useCombobox.labelId,
53
- popupType = _useCombobox.popupType;
54
- useEffect(function () {
55
- var _rootRef$current;
56
- var columns = ((_rootRef$current = rootRef.current) === null || _rootRef$current === void 0 ? void 0 : _rootRef$current.querySelectorAll('[data-type="column"]')) || [];
57
- columns.forEach(function (column) {
58
- if (!column) {
59
- return;
60
- }
61
- var activeItem = column.querySelector("." + prefix('item-focus'));
62
- if (!activeItem) {
63
- activeItem = column.querySelector("." + prefix('item-active'));
64
- }
65
- if (activeItem) {
66
- var position = getPosition(activeItem, column);
67
- // Let the active option scroll into view.
68
- if (position !== null && position !== void 0 && position.top) {
69
- scrollTop(column, position === null || position === void 0 ? void 0 : position.top);
70
- }
71
- }
72
- });
73
- }, [prefix]);
74
- var getCascadePaths = function getCascadePaths(layer, node) {
75
- var paths = [];
76
- for (var i = 0; i < cascadeData.length && i < layer; i += 1) {
77
- if (i < layer - 1 && cascadePaths) {
78
- paths.push(cascadePaths[i]);
79
- }
80
- }
81
- paths.push(node);
82
- return paths;
83
- };
84
- var handleSelect = useEventCallback(function (layer, node, event) {
85
- var isLeafNode = isNil(node[childrenKey]);
86
- var cascadePaths = getCascadePaths(layer + 1, node);
87
- onSelect === null || onSelect === void 0 ? void 0 : onSelect(node, cascadePaths, isLeafNode, event);
88
- });
89
- var renderCascadeNode = function renderCascadeNode(nodeProps) {
90
- var _loadingItemsSet$has;
91
- var node = nodeProps.node,
92
- index = nodeProps.index,
93
- layer = nodeProps.layer,
94
- focus = nodeProps.focus,
95
- size = nodeProps.size;
96
- var children = node[childrenKey];
97
- var value = node[valueKey];
98
- var label = node[labelKey];
99
- var disabled = disabledItemValues.some(function (disabledValue) {
100
- return shallowEqual(disabledValue, value);
101
- });
102
- var loading = (_loadingItemsSet$has = loadingItemsSet === null || loadingItemsSet === void 0 ? void 0 : loadingItemsSet.has(node)) !== null && _loadingItemsSet$has !== void 0 ? _loadingItemsSet$has : false;
103
-
104
- // Use `value` in keys when If `value` is string or number
105
- var onlyKey = typeof value === 'number' || typeof value === 'string' ? value : index;
106
- var Icon = loading ? SpinnerIcon : rtl ? AngleLeftIcon : AngleRightIcon;
107
- return /*#__PURE__*/React.createElement(ListItem, {
108
- as: 'li',
109
- role: "treeitem",
110
- "aria-level": layer + 1,
111
- "aria-setsize": size,
112
- "aria-posinset": index + 1,
113
- "aria-label": typeof label === 'string' ? label : undefined,
114
- classPrefix: "picker-cascader-menu-item",
115
- key: layer + "-" + onlyKey,
116
- disabled: disabled,
117
- active: !isUndefined(activeItemValue) && shallowEqual(activeItemValue, value),
118
- focus: focus,
119
- value: value,
120
- className: children ? prefix('has-children') : undefined,
121
- onSelect: function onSelect(_value, event) {
122
- return handleSelect(layer, node, event);
123
- }
124
- }, renderMenuItem ? renderMenuItem(label, node) : label, children ? /*#__PURE__*/React.createElement(Icon, {
125
- className: prefix('caret'),
126
- spin: loading
127
- }) : null);
128
- };
129
- var cascadeNodes = cascadeData.map(function (children, layer) {
130
- var onlyKey = layer + "_" + children.length;
131
- var parentNode = cascadePaths[layer - 1];
132
- var menu = /*#__PURE__*/React.createElement(React.Fragment, null, children.map(function (item, index) {
133
- var focus = cascadePaths[layer] && shallowEqual(cascadePaths[layer][valueKey], item[valueKey]);
134
- return renderCascadeNode({
135
- node: item,
136
- index: index,
137
- layer: layer,
138
- focus: focus,
139
- size: children.length
140
- });
141
- }));
142
- return /*#__PURE__*/React.createElement("ul", {
143
- role: "group",
144
- "data-layer": layer,
145
- "data-type": 'column',
146
- key: onlyKey,
147
- className: prefix('column'),
148
- style: {
149
- height: menuHeight,
150
- width: menuWidth
151
- }
152
- }, renderMenu ? renderMenu(children, menu, parentNode, layer) : menu);
153
- });
154
- var styles = _extends({}, style, {
155
- width: cascadeData.length * menuWidth
156
- });
157
- return /*#__PURE__*/React.createElement(Component, _extends({
158
- role: "tree",
159
- id: id + "-" + popupType,
160
- "aria-labelledby": labelId
161
- }, rest, {
162
- ref: mergeRefs(rootRef, ref),
163
- className: classes,
164
- style: styles
165
- }), cascadeNodes);
166
- });
167
- TreeView.displayName = 'TreeView';
168
- export default TreeView;
@@ -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;
@@ -1,74 +0,0 @@
1
- 'use client';
2
- import { useMemo } from 'react';
3
- import { getPathTowardsItem } from '../utils/treeUtils';
4
- /**
5
- * Calculate columns to be displayed:
6
- *
7
- * - Every ancestor level of activeItem should be displayed
8
- * - The level that activeItem is at should be displayed
9
- * - If activeItem is a parent node, its child level should be displayed
10
- *
11
- * @param items
12
- * @param value
13
- * @param options
14
- * @returns
15
- */
16
- export function getColumnsAndPaths(items, pathTarget, options) {
17
- var getParent = options.getParent,
18
- getChildren = options.getChildren;
19
- if (!pathTarget) {
20
- return {
21
- columns: [items],
22
- path: []
23
- };
24
- }
25
- var columns = [];
26
- var path = [pathTarget];
27
- var children = getChildren(pathTarget);
28
- if (children && children.length > 0) {
29
- columns.unshift(children);
30
- }
31
- for (var parent = getParent(pathTarget); !!parent; parent = getParent(parent)) {
32
- var _getChildren;
33
- columns.unshift((_getChildren = getChildren(parent)) !== null && _getChildren !== void 0 ? _getChildren : []);
34
- path.unshift(parent);
35
- }
36
- columns.unshift(items);
37
- return {
38
- columns: columns,
39
- path: path
40
- };
41
- }
42
- /**
43
- * Caculate following 3 things
44
- *
45
- * - The columns of items to be displayed
46
- * - The path towards the current focused item
47
- * - The path towards the current selected item (referred to by Cascader's value)
48
- *
49
- * @param params
50
- * @returns
51
- */
52
- export function usePaths(_ref) {
53
- var data = _ref.data,
54
- activeItem = _ref.activeItem,
55
- selectedItem = _ref.selectedItem,
56
- getParent = _ref.getParent,
57
- getChildren = _ref.getChildren;
58
- var pathTowardsSelectedItem = useMemo(function () {
59
- return getPathTowardsItem(selectedItem, getParent);
60
- }, [getParent, selectedItem]);
61
- var _useMemo = useMemo(function () {
62
- return getColumnsAndPaths(data, activeItem, {
63
- getParent: getParent,
64
- getChildren: getChildren
65
- });
66
- }, [data, activeItem, getParent, getChildren]),
67
- columnsToDisplay = _useMemo.columns,
68
- pathTowardsActiveItem = _useMemo.path;
69
- return {
70
- columnsToDisplay: columnsToDisplay,
71
- pathTowardsSelectedItem: pathTowardsSelectedItem,
72
- pathTowardsActiveItem: pathTowardsActiveItem
73
- };
74
- }
@@ -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 {};