@teamix/pro 1.3.4 → 1.3.7

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 (105) hide show
  1. package/dist/pro.css +1 -1
  2. package/dist/pro.js +57871 -57067
  3. package/dist/pro.min.css +1 -1
  4. package/dist/pro.min.js +1 -1
  5. package/es/actions/dialog-form.d.ts +2 -0
  6. package/es/actions/dialog-form.js +5 -2
  7. package/es/actions/index.d.ts +5 -1
  8. package/es/actions/index.js +30 -9
  9. package/es/card/index.d.ts +1 -1
  10. package/es/card/index.js +9 -1
  11. package/es/card/index.scss +4 -0
  12. package/es/form/Filter/useSpecialProps.js +2 -2
  13. package/es/form/ProForm/index.js +5 -3
  14. package/es/form/ProForm/index.scss +16 -8
  15. package/es/form/SchemaForm/reactions.js +2 -2
  16. package/es/form/docs/ActionResponse.d.ts +7 -0
  17. package/es/form/docs/ActionResponse.js +11 -0
  18. package/es/form/docs/ActionResponse.less +25 -0
  19. package/es/form/index.d.ts +1 -1
  20. package/es/form/typing.d.ts +1 -0
  21. package/es/index.d.ts +4 -2
  22. package/es/index.js +5 -5
  23. package/es/info/components/ProInfoItem/index.js +1 -1
  24. package/es/info/components/ProInfoItem/index.scss +0 -1
  25. package/es/info/components/baseInfo/index.scss +0 -3
  26. package/es/sidebar/components/sidebar-container/index.js +114 -9
  27. package/es/sidebar/components/sidebar-container/index.scss +53 -5
  28. package/es/sidebar/components/tree/index.d.ts +2 -0
  29. package/es/sidebar/components/tree/index.js +222 -76
  30. package/es/sidebar/components/tree/index.scss +10 -0
  31. package/es/sidebar/components/tree-node/components/HoverTooltip/index.d.ts +15 -0
  32. package/es/sidebar/components/tree-node/components/HoverTooltip/index.js +62 -0
  33. package/es/sidebar/components/tree-node/components/HoverTooltip/index.scss +7 -0
  34. package/es/sidebar/components/tree-node/components/IconAction/index.d.ts +12 -0
  35. package/es/sidebar/components/tree-node/components/IconAction/index.js +105 -0
  36. package/es/sidebar/components/tree-node/components/IconAction/index.scss +7 -0
  37. package/es/sidebar/components/tree-node/components/IconSwitch/index.d.ts +23 -0
  38. package/es/sidebar/components/tree-node/components/IconSwitch/index.js +73 -0
  39. package/es/sidebar/components/tree-node/components/IconSwitch/index.scss +7 -0
  40. package/es/sidebar/components/tree-node/index.d.ts +7 -0
  41. package/es/sidebar/components/tree-node/index.js +225 -0
  42. package/es/sidebar/components/tree-node/index.scss +58 -0
  43. package/es/sidebar/index.d.ts +2 -0
  44. package/es/sidebar/index.js +147 -12
  45. package/es/sidebar/index.scss +24 -1
  46. package/es/sidebar/typing.d.ts +83 -13
  47. package/es/sidebar/utils/action-ref.d.ts +3 -0
  48. package/es/sidebar/utils/action-ref.js +15 -0
  49. package/es/sidebar/utils/index.d.ts +71 -0
  50. package/es/sidebar/utils/index.js +228 -0
  51. package/es/table/components/Pagination/index.js +4 -4
  52. package/es/table/components/ToolBar/FilterColumnIcon.js +5 -1
  53. package/es/table/index.js +9 -4
  54. package/es/table/typing.d.ts +3 -1
  55. package/lib/actions/dialog-form.d.ts +2 -0
  56. package/lib/actions/dialog-form.js +5 -2
  57. package/lib/actions/index.d.ts +5 -1
  58. package/lib/actions/index.js +29 -7
  59. package/lib/card/index.d.ts +1 -1
  60. package/lib/card/index.js +10 -1
  61. package/lib/card/index.scss +4 -0
  62. package/lib/form/Filter/useSpecialProps.js +1 -1
  63. package/lib/form/ProForm/index.js +5 -3
  64. package/lib/form/ProForm/index.scss +16 -8
  65. package/lib/form/SchemaForm/reactions.js +1 -1
  66. package/lib/form/docs/ActionResponse.d.ts +7 -0
  67. package/lib/form/docs/ActionResponse.js +24 -0
  68. package/lib/form/docs/ActionResponse.less +25 -0
  69. package/lib/form/index.d.ts +1 -1
  70. package/lib/form/typing.d.ts +1 -0
  71. package/lib/index.d.ts +4 -2
  72. package/lib/index.js +22 -2
  73. package/lib/info/components/ProInfoItem/index.js +1 -1
  74. package/lib/info/components/ProInfoItem/index.scss +0 -1
  75. package/lib/info/components/baseInfo/index.scss +0 -3
  76. package/lib/sidebar/components/sidebar-container/index.js +120 -8
  77. package/lib/sidebar/components/sidebar-container/index.scss +53 -5
  78. package/lib/sidebar/components/tree/index.d.ts +2 -0
  79. package/lib/sidebar/components/tree/index.js +230 -76
  80. package/lib/sidebar/components/tree/index.scss +10 -0
  81. package/lib/sidebar/components/tree-node/components/HoverTooltip/index.d.ts +15 -0
  82. package/lib/sidebar/components/tree-node/components/HoverTooltip/index.js +80 -0
  83. package/lib/sidebar/components/tree-node/components/HoverTooltip/index.scss +7 -0
  84. package/lib/sidebar/components/tree-node/components/IconAction/index.d.ts +12 -0
  85. package/lib/sidebar/components/tree-node/components/IconAction/index.js +127 -0
  86. package/lib/sidebar/components/tree-node/components/IconAction/index.scss +7 -0
  87. package/lib/sidebar/components/tree-node/components/IconSwitch/index.d.ts +23 -0
  88. package/lib/sidebar/components/tree-node/components/IconSwitch/index.js +94 -0
  89. package/lib/sidebar/components/tree-node/components/IconSwitch/index.scss +7 -0
  90. package/lib/sidebar/components/tree-node/index.d.ts +7 -0
  91. package/lib/sidebar/components/tree-node/index.js +252 -0
  92. package/lib/sidebar/components/tree-node/index.scss +58 -0
  93. package/lib/sidebar/index.d.ts +2 -0
  94. package/lib/sidebar/index.js +173 -10
  95. package/lib/sidebar/index.scss +24 -1
  96. package/lib/sidebar/typing.d.ts +83 -13
  97. package/lib/sidebar/utils/action-ref.d.ts +3 -0
  98. package/lib/sidebar/utils/action-ref.js +22 -0
  99. package/lib/sidebar/utils/index.d.ts +71 -0
  100. package/lib/sidebar/utils/index.js +247 -0
  101. package/lib/table/components/Pagination/index.js +3 -3
  102. package/lib/table/components/ToolBar/FilterColumnIcon.js +5 -1
  103. package/lib/table/index.js +8 -3
  104. package/lib/table/typing.d.ts +3 -1
  105. package/package.json +18 -4
@@ -1,18 +1,66 @@
1
1
  .teamix-pro-sidebar-container {
2
2
  min-width: 180px;
3
+ .teamix-pro-card.compacted >.next-card-header{
4
+ padding: 16px 0px;
5
+ margin: 0;
6
+
7
+ }
8
+
9
+ .next-card .next-card-header-extra{
10
+ margin-top: 2px;
11
+ }
3
12
 
4
13
  &-search {
5
- margin-bottom: 8px;
14
+ margin-bottom: var(--s-2);
6
15
  }
7
16
 
8
17
  &-search-has-message {
9
- margin-bottom: 4px;
18
+ margin-bottom: var(--s-1);
10
19
  }
11
20
 
12
21
  &-notice {
13
- margin-bottom: 4px;
22
+ margin-bottom: var(--s-1);
23
+ }
24
+
25
+ &-fold {
26
+ margin-bottom: var(--s-1);
27
+ }
28
+
29
+
30
+ &.teamix-pro-sidebar-container &-context{
31
+ overflow-y: hidden;
32
+
33
+ &:hover{
34
+ overflow-y: auto;
35
+ }
14
36
  }
15
37
 
16
- &-context {
38
+
39
+ &-not-is-tree{
40
+
41
+ .teamix-pro-card.compacted >.next-card-header{
42
+ padding: 16px 8px;
43
+ margin: 0;
44
+ }
45
+ .teamix-pro-sidebar-container-context{
46
+ padding: 0;
47
+ }
48
+
49
+ .teamix-pro-sidebar-container-search{
50
+ padding: 0 8px;
51
+ }
52
+
53
+ .teamix-pro-sidebar-container-search-has-message{
54
+ padding: 0 8px;
55
+ }
56
+
57
+ .teamix-pro-sidebar-container-notice{
58
+ padding: 0 8px;
59
+ }
60
+
61
+ .teamix-pro-sidebar-container-fold{
62
+ padding: 0 8px;
63
+ }
64
+
17
65
  }
18
- }
66
+ }
@@ -1,4 +1,6 @@
1
1
  import React from 'react';
2
2
  import { ProSidebarTreeProps } from '../../typing';
3
+ import './index.scss';
4
+ import '../tree-node/index.scss';
3
5
  declare const ProSidebarTree: React.FC<ProSidebarTreeProps>;
4
6
  export default ProSidebarTree;
@@ -1,4 +1,4 @@
1
- var _excluded = ["dataSource", "searchKey", "onSelect"];
1
+ var _excluded = ["dataSource", "selectedKeys", "checkedKeys", "defaultExpandedKeys", "defaultExpandAll", "expandedKeys", "onSelect", "onCheck", "isNodeBlock", "searchKey", "actionRef", "onBeforeRenderNodeEvent", "beforeRenderNode", "className", "expandAll", "onDataSourceChange", "expandLevel"];
2
2
 
3
3
  function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
4
4
 
@@ -6,40 +6,87 @@ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { va
6
6
 
7
7
  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
8
8
 
9
- function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }
9
+ function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
10
10
 
11
- function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
11
+ function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
12
12
 
13
- function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); }
13
+ function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
14
14
 
15
- function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }
15
+ function _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; }
16
16
 
17
- function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
17
+ function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
18
18
 
19
- function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
19
+ function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }
20
+
21
+ function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
20
22
 
21
23
  function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
22
24
 
23
- function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
25
+ function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); }
24
26
 
25
- function _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; }
27
+ function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }
26
28
 
27
- function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
29
+ function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
28
30
 
29
31
  function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }
30
32
 
31
33
  function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
32
34
 
33
35
  import { Tree } from '@alicloudfe/components';
34
- import { baseClass, treeToList } from '@teamix/utils';
35
- import React, { isValidElement, useEffect, useState } from 'react';
36
+ import { baseClass } from '@teamix/utils';
37
+ import React, { useEffect, useMemo, useState } from 'react';
38
+ import { renderTreeNode, renderTreeNodeDependenceValue } from '../tree-node';
39
+ import debounce from 'lodash.debounce';
40
+ import './index.scss';
41
+ import '../tree-node/index.scss';
42
+ import { findNodeWithPath, getAllNodeKey, getTreeLevelKey, loop } from '../../utils';
43
+ import { useUpdateEffect } from '@teamix/hooks';
44
+ import { useActionType } from '../../utils/action-ref';
45
+ import cloneDeep from 'lodash.clonedeep';
36
46
  var cls = baseClass('teamix-pro-sidebar-tree');
37
47
 
38
48
  var ProSidebarTree = function ProSidebarTree(props) {
49
+ var _ref;
50
+
39
51
  var dataSourceProp = props.dataSource,
40
- searchKey = props.searchKey,
52
+ selectedKeysProp = props.selectedKeys,
53
+ checkedKeysProp = props.checkedKeys,
54
+ defaultExpandedKeys = props.defaultExpandedKeys,
55
+ defaultExpandAll = props.defaultExpandAll,
56
+ expandedKeysProp = props.expandedKeys,
41
57
  onSelect = props.onSelect,
42
- others = _objectWithoutProperties(props, _excluded); // 自动展开父节点。过滤时用
58
+ onCheck = props.onCheck,
59
+ isNodeBlock = props.isNodeBlock,
60
+ searchKey = props.searchKey,
61
+ actionRef = props.actionRef,
62
+ onBeforeRenderNodeEvent = props.onBeforeRenderNodeEvent,
63
+ beforeRenderNode = props.beforeRenderNode,
64
+ _props$className = props.className,
65
+ className = _props$className === void 0 ? '' : _props$className,
66
+ expandAll = props.expandAll,
67
+ onDataSourceChange = props.onDataSourceChange,
68
+ _props$expandLevel = props.expandLevel,
69
+ expandLevel = _props$expandLevel === void 0 ? 1 : _props$expandLevel,
70
+ others = _objectWithoutProperties(props, _excluded); // 使用 beforeRenderNode 处理 dataSource
71
+
72
+
73
+ var processDataSource = function processDataSource(dataSource) {
74
+ var newDataSource = cloneDeep(dataSource);
75
+
76
+ if (beforeRenderNode) {
77
+ loop(newDataSource, function (item, level) {
78
+ var _beforeRenderNode;
79
+
80
+ var newItem = (_beforeRenderNode = beforeRenderNode === null || beforeRenderNode === void 0 ? void 0 : beforeRenderNode(item, level, dataSource)) !== null && _beforeRenderNode !== void 0 ? _beforeRenderNode : {};
81
+ var allItemKeys = Array.from(new Set([].concat(_toConsumableArray(Object.keys(item)), _toConsumableArray(Object.keys(newItem)))));
82
+ allItemKeys.forEach(function (key) {
83
+ item[key] = newItem[key];
84
+ });
85
+ });
86
+ }
87
+
88
+ return newDataSource;
89
+ }; // 自动展开父节点。过滤时用
43
90
 
44
91
 
45
92
  var _useState = useState(false),
@@ -52,111 +99,210 @@ var ProSidebarTree = function ProSidebarTree(props) {
52
99
  matchedKeys = _useState4[0],
53
100
  setMatchedKeys = _useState4[1];
54
101
 
55
- var _useState5 = useState(),
102
+ var _useState5 = useState((_ref = expandedKeysProp !== null && expandedKeysProp !== void 0 ? expandedKeysProp : defaultExpandedKeys) !== null && _ref !== void 0 ? _ref : []),
56
103
  _useState6 = _slicedToArray(_useState5, 2),
57
104
  expandedKeys = _useState6[0],
58
105
  setExpandedKeys = _useState6[1];
59
106
 
60
- var _useState7 = useState(dataSourceProp !== null && dataSourceProp !== void 0 ? dataSourceProp : []),
107
+ var _useState7 = useState(processDataSource(dataSourceProp !== null && dataSourceProp !== void 0 ? dataSourceProp : [])),
61
108
  _useState8 = _slicedToArray(_useState7, 2),
62
109
  dataSource = _useState8[0],
63
110
  setDataSource = _useState8[1];
64
111
 
112
+ var _useState9 = useState(selectedKeysProp),
113
+ _useState10 = _slicedToArray(_useState9, 2),
114
+ selectedKeys = _useState10[0],
115
+ setSelectedKeys = _useState10[1];
116
+
117
+ var _useState11 = useState(checkedKeysProp),
118
+ _useState12 = _slicedToArray(_useState11, 2),
119
+ checkedKeys = _useState12[0],
120
+ setCheckedKeys = _useState12[1];
121
+
65
122
  useEffect(function () {
66
- getAllExpend();
67
- }, []);
123
+ setDefaultExpandedKeys();
124
+ }, []); // 更新外部传入的 dataSource
125
+
126
+ useUpdateEffect(function () {
127
+ setDataSource(processDataSource(dataSourceProp !== null && dataSourceProp !== void 0 ? dataSourceProp : []));
128
+ }, [dataSourceProp]); // 监听展开全部事件
129
+
130
+ useUpdateEffect(function () {
131
+ if (expandAll) {
132
+ setExpandedKeys(getAllNodeKey(dataSource));
133
+ } else {
134
+ setExpandedKeys([]);
135
+ }
136
+ }, [expandAll]); // 监听展开层级事件
137
+
138
+ useUpdateEffect(function () {
139
+ var keys = getTreeLevelKey(dataSource, expandLevel - 1);
140
+ setExpandedKeys(keys);
141
+ }, [expandLevel]); // 监听 DataSource 变化事件
142
+
68
143
  useEffect(function () {
69
- filterDataSource(searchKey !== null && searchKey !== void 0 ? searchKey : '');
70
- }, [searchKey]); // 获取全部展开节点key
144
+ onDataSourceChange === null || onDataSourceChange === void 0 ? void 0 : onDataSourceChange(dataSource);
145
+ }, [dataSource]); // 绑定actionRef
146
+
147
+ useActionType(actionRef, {
148
+ setTreeNode: function setTreeNode(treeNode) {
149
+ var newDataSource = cloneDeep(dataSource); // TODO 此处可做性能优化
150
+
151
+ loop(newDataSource, function (item) {
152
+ if (item.value === treeNode.value) {
153
+ Object.entries(treeNode).forEach(function (_ref2) {
154
+ var _ref3 = _slicedToArray(_ref2, 2),
155
+ key = _ref3[0],
156
+ value = _ref3[1];
157
+
158
+ item[key] = value;
159
+ });
160
+ }
161
+ });
162
+ setDataSource(newDataSource);
163
+ }
164
+ }); // dataSource 是否为一层结构
165
+
166
+ var hasChildren = useMemo(function () {
167
+ var flag = false; // TODO 此处可做性能优化
71
168
 
72
- var getAllExpend = function getAllExpend() {
73
- var allKeys = treeToList(dataSource).map(function (item) {
74
- return item.value;
169
+ dataSource.forEach(function (item) {
170
+ if (item.children && item.children.length > 0) {
171
+ flag = true;
172
+ }
75
173
  });
76
- setExpandedKeys(allKeys);
77
- }; // 过滤
174
+ return flag;
175
+ }, [dataSource]); // 组件第一次加载时不执行过滤
176
+
177
+ useUpdateEffect(function () {
178
+ filterDataSource(searchKey !== null && searchKey !== void 0 ? searchKey : '');
179
+ }, [searchKey]); // expandedKeys 更新
78
180
 
181
+ useUpdateEffect(function () {
182
+ var _ref4;
79
183
 
80
- var filterDataSource = function filterDataSource(value) {
81
- if (!value) {
82
- setExpandedKeys([]);
83
- getAllExpend();
184
+ setExpandedKeys((_ref4 = expandedKeysProp !== null && expandedKeysProp !== void 0 ? expandedKeysProp : defaultExpandedKeys) !== null && _ref4 !== void 0 ? _ref4 : []);
185
+ }, [expandedKeysProp, defaultExpandedKeys]); // 设置默认节点展开
186
+
187
+ var setDefaultExpandedKeys = function setDefaultExpandedKeys() {
188
+ if (defaultExpandAll) {
189
+ setExpandedKeys(getAllNodeKey(dataSource));
190
+ } else {
191
+ var _ref5;
192
+
193
+ setExpandedKeys((_ref5 = expandedKeysProp !== null && expandedKeysProp !== void 0 ? expandedKeysProp : defaultExpandedKeys) !== null && _ref5 !== void 0 ? _ref5 : []);
84
194
  }
195
+ }; // 是否占满节点
85
196
 
86
- value = value.trim();
87
- var matchedKeys = [];
88
197
 
89
- if (!value) {
90
- matchedKeys = [];
91
- return;
198
+ var getIsNodeBlock = function getIsNodeBlock() {
199
+ if (isNodeBlock && typeof isNodeBlock === 'boolean') {
200
+ return {
201
+ defaultPaddingLeft: 8,
202
+ indent: 16
203
+ };
92
204
  }
93
205
 
94
- var loop = function loop(data) {
95
- return data.forEach(function (item) {
96
- if (item.label.indexOf(value) > -1) {
97
- matchedKeys.push(item.value);
98
- }
206
+ if (isNodeBlock && _typeof(isNodeBlock) === 'object') {
207
+ return isNodeBlock;
208
+ }
99
209
 
100
- if (item.children && item.children.length) {
101
- loop(item.children);
102
- }
103
- });
104
- };
210
+ return false;
211
+ }; // 过滤
212
+
213
+
214
+ var filterDataSource = debounce(function (value) {
215
+ var searchDataSource = processDataSource(dataSourceProp !== null && dataSourceProp !== void 0 ? dataSourceProp : []);
216
+ var expandedKeys = [];
217
+
218
+ if (!value) {
219
+ // TODO 过滤清空数据之后状态会丢失
220
+ setDataSource(searchDataSource); // 数据过滤清空时展开状态继承用户传入的默认状态
105
221
 
106
- loop(dataSource);
107
- setExpandedKeys(_toConsumableArray(matchedKeys));
108
- setAutoExpandParent(true);
222
+ setDefaultExpandedKeys();
223
+ return;
224
+ }
225
+
226
+ loop(searchDataSource, function (item) {
227
+ hasSearchValue(value, item) && expandedKeys.push(String(item['value']));
228
+ }, {
229
+ children: 'children'
230
+ });
231
+ setExpandedKeys([].concat(expandedKeys));
109
232
  setMatchedKeys(matchedKeys);
110
- };
233
+ handleExpand(expandedKeys);
234
+ var filterDataSource = findNodeWithPath(searchDataSource, function (node) {
235
+ var _node$label;
236
+
237
+ return ((_node$label = node === null || node === void 0 ? void 0 : node.label) !== null && _node$label !== void 0 ? _node$label : '').includes(value);
238
+ });
239
+ setDataSource(filterDataSource);
240
+ }, 100);
111
241
 
112
242
  var filterTreeNode = function filterTreeNode(node) {
113
243
  return matchedKeys && matchedKeys.indexOf(node.props.eventKey) > -1;
114
- }; // 节点展开回调
244
+ };
245
+ /** 节点是否包含搜索项 */
115
246
 
116
247
 
117
- var handleExpand = function handleExpand(key) {
118
- setExpandedKeys(key);
119
- setAutoExpandParent(false);
120
- }; // 渲染树节点
248
+ var hasSearchValue = function hasSearchValue(key, item) {
249
+ var _item$label;
121
250
 
251
+ if (((_item$label = item === null || item === void 0 ? void 0 : item.label) !== null && _item$label !== void 0 ? _item$label : '').includes(key)) {
252
+ return true;
253
+ } else if (Array.isArray(item['children'])) {
254
+ return item['children'].some(function (child) {
255
+ return hasSearchValue(key, child);
256
+ });
257
+ }
122
258
 
123
- var renderTreeNode = function renderTreeNode(data) {
124
- return data.map(function (item) {
125
- return /*#__PURE__*/React.createElement(Tree.Node, {
126
- key: item.value,
127
- label: renderTreeNodeItem(item)
128
- }, item.children && item.children.length > 0 && renderTreeNode(item.children));
129
- });
130
- }; // 渲染单个树节点 label
259
+ return false;
260
+ }; // 树节点点击回调
131
261
 
132
262
 
133
- var renderTreeNodeItem = function renderTreeNodeItem(data) {
134
- var node = /*#__PURE__*/React.createElement(React.Fragment, null, data.label);
263
+ var onSelectChange = function onSelectChange(value, extra) {
264
+ var _extra$event, _extra$event$target, _extra$event$target$c;
135
265
 
136
- if (data.tag) {
137
- if ( /*#__PURE__*/isValidElement(data.tag)) {
138
- node = /*#__PURE__*/React.createElement(React.Fragment, null, node, data.tag);
139
- }
266
+ if (extra === null || extra === void 0 ? void 0 : (_extra$event = extra.event) === null || _extra$event === void 0 ? void 0 : (_extra$event$target = _extra$event.target) === null || _extra$event$target === void 0 ? void 0 : (_extra$event$target$c = _extra$event$target.closest) === null || _extra$event$target$c === void 0 ? void 0 : _extra$event$target$c.call(_extra$event$target, '.teamix-pro-sidebar-delete-overlay')) {
267
+ return;
140
268
  }
141
269
 
142
- return node;
270
+ setSelectedKeys(value);
271
+ onSelect === null || onSelect === void 0 ? void 0 : onSelect(value, extra);
272
+ }; // 树节点选中回调
273
+
274
+
275
+ var onCheckChange = function onCheckChange(value, extra) {
276
+ setCheckedKeys(value);
277
+ onCheck === null || onCheck === void 0 ? void 0 : onCheck(value, extra);
278
+ }; // 节点展开回调
279
+
280
+
281
+ var handleExpand = function handleExpand(key) {
282
+ setExpandedKeys(key);
283
+ setAutoExpandParent(false);
143
284
  };
144
285
 
145
286
  return /*#__PURE__*/React.createElement("div", {
146
- className: cls()
287
+ className: cls({
288
+ '': true,
289
+ 'is-list': !hasChildren
290
+ })
147
291
  }, /*#__PURE__*/React.createElement(Tree, _objectSpread({
148
- defaultExpandAll: true,
149
292
  isLabelBlock: true,
150
- isNodeBlock: {
151
- defaultPaddingLeft: 8,
152
- indent: 16
153
- },
293
+ checkedKeys: checkedKeys,
294
+ selectedKeys: selectedKeys,
295
+ isNodeBlock: getIsNodeBlock(),
154
296
  filterTreeNode: filterTreeNode,
155
297
  expandedKeys: expandedKeys,
156
298
  onExpand: handleExpand,
157
299
  autoExpandParent: autoExpandParent,
158
- onSelect: onSelect
159
- }, others), renderTreeNode(dataSource)));
300
+ onSelect: onSelectChange,
301
+ onCheck: onCheckChange,
302
+ className: "".concat(cls({
303
+ checkable: others.checkable
304
+ }), " ").concat(className)
305
+ }, others), !onBeforeRenderNodeEvent && renderTreeNode(dataSource), onBeforeRenderNodeEvent && renderTreeNodeDependenceValue(dataSource, onBeforeRenderNodeEvent, checkedKeys, selectedKeys)));
160
306
  };
161
307
 
162
308
  export default ProSidebarTree;
@@ -0,0 +1,10 @@
1
+ .teamix-pro-sidebar-tree {
2
+ &-is-list {
3
+ .next-tree-switcher {
4
+ display: none;
5
+ }
6
+ .next-tree-node-label-wrapper {
7
+ margin-left: 0;
8
+ }
9
+ }
10
+ }
@@ -0,0 +1,15 @@
1
+ import { TooltipProps } from '@alicloudfe/components/types/balloon';
2
+ import React from 'react';
3
+ import './index.scss';
4
+ export declare type ProHoverTooltipProps = {
5
+ /** 触发器 */
6
+ trigger?: React.ReactNode;
7
+ /** 显示隐藏 */
8
+ visible?: boolean;
9
+ /** tooltip */
10
+ tooltip?: React.ReactNode;
11
+ /** tooltip 配置 */
12
+ tooltipProps?: TooltipProps;
13
+ } & React.HTMLAttributes<HTMLElement>;
14
+ declare const ProHoverTooltip: React.FC<ProHoverTooltipProps>;
15
+ export default ProHoverTooltip;
@@ -0,0 +1,62 @@
1
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
2
+
3
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
4
+
5
+ function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
6
+
7
+ function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
8
+
9
+ function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
10
+
11
+ function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
12
+
13
+ function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
14
+
15
+ function _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; }
16
+
17
+ function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
18
+
19
+ import { Balloon } from '@alicloudfe/components';
20
+ import { baseClass } from '@teamix/utils';
21
+ import React, { useEffect, useState } from 'react';
22
+ import './index.scss';
23
+ var cls = baseClass('teamix-pro-hover-tooltip');
24
+
25
+ var ProHoverTooltip = function ProHoverTooltip(props) {
26
+ var trigger = props.trigger,
27
+ visibleProp = props.visible,
28
+ tooltip = props.tooltip,
29
+ _props$tooltipProps = props.tooltipProps,
30
+ tooltipProps = _props$tooltipProps === void 0 ? {} : _props$tooltipProps,
31
+ _props$className = props.className,
32
+ className = _props$className === void 0 ? '' : _props$className;
33
+
34
+ var _useState = useState(visibleProp !== null && visibleProp !== void 0 ? visibleProp : false),
35
+ _useState2 = _slicedToArray(_useState, 2),
36
+ visible = _useState2[0],
37
+ setVisible = _useState2[1];
38
+
39
+ useEffect(function () {
40
+ setVisible(visibleProp !== null && visibleProp !== void 0 ? visibleProp : false);
41
+ }, [visibleProp]); // 渲染触发器
42
+
43
+ var renderTrigger = function renderTrigger() {
44
+ if (tooltip) {
45
+ return /*#__PURE__*/React.createElement(Balloon.Tooltip, _objectSpread({
46
+ align: "t",
47
+ trigger: /*#__PURE__*/React.createElement("span", null, trigger)
48
+ }, tooltipProps), tooltip);
49
+ }
50
+
51
+ return trigger;
52
+ };
53
+
54
+ return /*#__PURE__*/React.createElement("span", {
55
+ className: "".concat(cls({
56
+ '': true,
57
+ hidden: !visible
58
+ }), " ").concat(className)
59
+ }, renderTrigger());
60
+ };
61
+
62
+ export default ProHoverTooltip;
@@ -0,0 +1,7 @@
1
+ .teamix-pro-hover-tooltip {
2
+ &-hidden {
3
+ opacity: 0;
4
+ display: inline-block;
5
+ }
6
+ transition: opacity 0.2s;
7
+ }
@@ -0,0 +1,12 @@
1
+ import { ProActionConfig } from '../../../../..';
2
+ import React from 'react';
3
+ import './index.scss';
4
+ export declare type ProIconActionProps = {
5
+ trigger: React.ReactNode;
6
+ icon: React.ReactNode;
7
+ action: ProActionConfig;
8
+ visible?: boolean;
9
+ tooltip?: React.ReactNode;
10
+ };
11
+ declare const ProIconAction: React.FC<ProIconActionProps>;
12
+ export default ProIconAction;