@teamix/pro 1.3.2 → 1.3.5
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.
- package/dist/pro.css +1 -1
- package/dist/pro.js +13959 -2353
- package/dist/pro.min.css +1 -1
- package/dist/pro.min.js +1 -1
- package/dist/pro.min.js.LICENSE.txt +9 -0
- package/es/actions/dialog-form.js +8 -5
- package/es/actions/dialog.js +2 -4
- package/es/form/Components/LightFilter/index.d.ts +1 -0
- package/es/form/Components/LightFilter/index.js +9 -6
- package/es/form/Filter/LightFilter.js +13 -3
- package/es/form/Filter/SimpleFilter.js +1 -1
- package/es/form/Filter/index.js +44 -10
- package/es/form/ProForm/useFormDisplayValues.js +2 -2
- package/es/form/SchemaForm/adapterDecorator.js +1 -1
- package/es/form/SchemaForm/adapterType.js +2 -5
- package/es/form/SchemaForm/index.js +27 -12
- package/es/form/SchemaForm/initializeDataSource.d.ts +1 -0
- package/es/form/SchemaForm/initializeDataSource.js +7 -1
- package/es/form/SchemaForm/initializeSelectTable.d.ts +3 -0
- package/es/form/SchemaForm/initializeSelectTable.js +38 -0
- package/es/form/SchemaForm/reactions.d.ts +1 -1
- package/es/form/SchemaForm/reactions.js +20 -16
- package/es/form/docs/ActionResponse.d.ts +7 -0
- package/es/form/docs/ActionResponse.js +11 -0
- package/es/form/docs/ActionResponse.less +25 -0
- package/es/form/index.d.ts +1 -0
- package/es/form/typing.d.ts +6 -1
- package/es/form/utils.js +13 -4
- package/es/index.d.ts +4 -2
- package/es/index.js +5 -5
- package/es/info/components/ProInfoItem/index.js +6 -2
- package/es/info/components/ProInfoItem/index.scss +3 -0
- package/es/info/components/baseInfo/index.js +2 -1
- package/es/info/typing.d.ts +2 -0
- package/es/info/utils/index.d.ts +8 -0
- package/es/info/utils/index.js +28 -1
- package/es/page-header/index.d.ts +3 -1
- package/es/page-header/index.js +12 -3
- package/es/sidebar/components/sidebar-container/index.js +114 -9
- package/es/sidebar/components/sidebar-container/index.scss +53 -5
- package/es/sidebar/components/tree/index.d.ts +2 -0
- package/es/sidebar/components/tree/index.js +222 -76
- package/es/sidebar/components/tree/index.scss +10 -0
- package/es/sidebar/components/tree-node/componnets/HoverTooltip/index.d.ts +15 -0
- package/es/sidebar/components/tree-node/componnets/HoverTooltip/index.js +62 -0
- package/es/sidebar/components/tree-node/componnets/HoverTooltip/index.scss +7 -0
- package/es/sidebar/components/tree-node/componnets/IconAction/index.d.ts +12 -0
- package/es/sidebar/components/tree-node/componnets/IconAction/index.js +105 -0
- package/es/sidebar/components/tree-node/componnets/IconAction/index.scss +7 -0
- package/es/sidebar/components/tree-node/componnets/IconSwitch/index.d.ts +23 -0
- package/es/sidebar/components/tree-node/componnets/IconSwitch/index.js +73 -0
- package/es/sidebar/components/tree-node/componnets/IconSwitch/index.scss +7 -0
- package/es/sidebar/components/tree-node/index.d.ts +7 -0
- package/es/sidebar/components/tree-node/index.js +225 -0
- package/es/sidebar/components/tree-node/index.scss +58 -0
- package/es/sidebar/index.d.ts +2 -0
- package/es/sidebar/index.js +147 -12
- package/es/sidebar/index.scss +24 -1
- package/es/sidebar/typing.d.ts +83 -13
- package/es/sidebar/utils/action-ref.d.ts +3 -0
- package/es/sidebar/utils/action-ref.js +15 -0
- package/es/sidebar/utils/index.d.ts +71 -0
- package/es/sidebar/utils/index.js +228 -0
- package/es/table/components/ToolBar/index.scss +1 -1
- package/es/table/index.scss +10 -0
- package/lib/actions/dialog-form.js +8 -5
- package/lib/actions/dialog.js +1 -3
- package/lib/form/Components/LightFilter/index.d.ts +1 -0
- package/lib/form/Components/LightFilter/index.js +9 -6
- package/lib/form/Filter/LightFilter.js +13 -3
- package/lib/form/Filter/SimpleFilter.js +1 -1
- package/lib/form/Filter/index.js +44 -10
- package/lib/form/ProForm/useFormDisplayValues.js +1 -1
- package/lib/form/SchemaForm/adapterDecorator.js +1 -1
- package/lib/form/SchemaForm/adapterType.js +2 -5
- package/lib/form/SchemaForm/index.js +28 -11
- package/lib/form/SchemaForm/initializeDataSource.d.ts +1 -0
- package/lib/form/SchemaForm/initializeDataSource.js +7 -1
- package/lib/form/SchemaForm/initializeSelectTable.d.ts +3 -0
- package/lib/form/SchemaForm/initializeSelectTable.js +45 -0
- package/lib/form/SchemaForm/reactions.d.ts +1 -1
- package/lib/form/SchemaForm/reactions.js +20 -16
- package/lib/form/docs/ActionResponse.d.ts +7 -0
- package/lib/form/docs/ActionResponse.js +24 -0
- package/lib/form/docs/ActionResponse.less +25 -0
- package/lib/form/index.d.ts +1 -0
- package/lib/form/typing.d.ts +6 -1
- package/lib/form/utils.js +13 -4
- package/lib/index.d.ts +4 -2
- package/lib/index.js +22 -2
- package/lib/info/components/ProInfoItem/index.js +6 -2
- package/lib/info/components/ProInfoItem/index.scss +3 -0
- package/lib/info/components/baseInfo/index.js +1 -0
- package/lib/info/typing.d.ts +2 -0
- package/lib/info/utils/index.d.ts +8 -0
- package/lib/info/utils/index.js +32 -1
- package/lib/page-header/index.d.ts +3 -1
- package/lib/page-header/index.js +11 -2
- package/lib/sidebar/components/sidebar-container/index.js +120 -8
- package/lib/sidebar/components/sidebar-container/index.scss +53 -5
- package/lib/sidebar/components/tree/index.d.ts +2 -0
- package/lib/sidebar/components/tree/index.js +230 -76
- package/lib/sidebar/components/tree/index.scss +10 -0
- package/lib/sidebar/components/tree-node/componnets/HoverTooltip/index.d.ts +15 -0
- package/lib/sidebar/components/tree-node/componnets/HoverTooltip/index.js +80 -0
- package/lib/sidebar/components/tree-node/componnets/HoverTooltip/index.scss +7 -0
- package/lib/sidebar/components/tree-node/componnets/IconAction/index.d.ts +12 -0
- package/lib/sidebar/components/tree-node/componnets/IconAction/index.js +127 -0
- package/lib/sidebar/components/tree-node/componnets/IconAction/index.scss +7 -0
- package/lib/sidebar/components/tree-node/componnets/IconSwitch/index.d.ts +23 -0
- package/lib/sidebar/components/tree-node/componnets/IconSwitch/index.js +94 -0
- package/lib/sidebar/components/tree-node/componnets/IconSwitch/index.scss +7 -0
- package/lib/sidebar/components/tree-node/index.d.ts +7 -0
- package/lib/sidebar/components/tree-node/index.js +252 -0
- package/lib/sidebar/components/tree-node/index.scss +58 -0
- package/lib/sidebar/index.d.ts +2 -0
- package/lib/sidebar/index.js +173 -10
- package/lib/sidebar/index.scss +24 -1
- package/lib/sidebar/typing.d.ts +83 -13
- package/lib/sidebar/utils/action-ref.d.ts +3 -0
- package/lib/sidebar/utils/action-ref.js +22 -0
- package/lib/sidebar/utils/index.d.ts +71 -0
- package/lib/sidebar/utils/index.js +247 -0
- package/lib/table/components/ToolBar/index.scss +1 -1
- package/lib/table/index.scss +10 -0
- package/package.json +4 -4
@@ -1,4 +1,4 @@
|
|
1
|
-
var _excluded = ["dataSource", "
|
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
|
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
|
11
|
+
function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
|
12
12
|
|
13
|
-
function
|
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
|
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
|
17
|
+
function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
|
18
18
|
|
19
|
-
function
|
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
|
25
|
+
function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); }
|
24
26
|
|
25
|
-
function
|
27
|
+
function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }
|
26
28
|
|
27
|
-
function
|
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
|
35
|
-
import 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';
|
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
|
-
|
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
|
-
|
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
|
-
|
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
|
-
|
70
|
-
}, [
|
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
|
-
|
73
|
-
|
74
|
-
|
169
|
+
dataSource.forEach(function (item) {
|
170
|
+
if (item.children && item.children.length > 0) {
|
171
|
+
flag = true;
|
172
|
+
}
|
75
173
|
});
|
76
|
-
|
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
|
-
|
81
|
-
|
82
|
-
|
83
|
-
|
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
|
-
|
90
|
-
|
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
|
-
|
95
|
-
return
|
96
|
-
|
97
|
-
matchedKeys.push(item.value);
|
98
|
-
}
|
206
|
+
if (isNodeBlock && _typeof(isNodeBlock) === 'object') {
|
207
|
+
return isNodeBlock;
|
208
|
+
}
|
99
209
|
|
100
|
-
|
101
|
-
|
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
|
-
|
107
|
-
|
108
|
-
|
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
|
118
|
-
|
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
|
-
|
124
|
-
|
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
|
134
|
-
var
|
263
|
+
var onSelectChange = function onSelectChange(value, extra) {
|
264
|
+
var _extra$event, _extra$event$target, _extra$event$target$c;
|
135
265
|
|
136
|
-
if (
|
137
|
-
|
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
|
-
|
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
|
-
|
151
|
-
|
152
|
-
|
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:
|
159
|
-
|
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,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 '../../../../../../../utils/src';
|
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,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;
|
@@ -0,0 +1,105 @@
|
|
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 TeamixIcon from '@teamix/icon';
|
20
|
+
import { useAction } from '../../../../..';
|
21
|
+
import { baseClass } from '@teamix/utils';
|
22
|
+
import React, { useState } from 'react';
|
23
|
+
import ProHoverTooltip from '../HoverTooltip';
|
24
|
+
import './index.scss';
|
25
|
+
var cls = baseClass('teamix-pro-sidebar-icon-action');
|
26
|
+
|
27
|
+
var ProIconAction = function ProIconAction(props) {
|
28
|
+
var _popupProps$wrapperCl;
|
29
|
+
|
30
|
+
var trigger = props.trigger,
|
31
|
+
action = props.action,
|
32
|
+
visibleProp = props.visible,
|
33
|
+
tooltip = props.tooltip,
|
34
|
+
icon = props.icon;
|
35
|
+
|
36
|
+
var _useState = useState(false),
|
37
|
+
_useState2 = _slicedToArray(_useState, 2),
|
38
|
+
visible = _useState2[0],
|
39
|
+
setVisible = _useState2[1];
|
40
|
+
|
41
|
+
var popupProps = action === null || action === void 0 ? void 0 : action.popupProps;
|
42
|
+
var wrapperClassName = (_popupProps$wrapperCl = popupProps === null || popupProps === void 0 ? void 0 : popupProps.wrapperClassName) !== null && _popupProps$wrapperCl !== void 0 ? _popupProps$wrapperCl : '';
|
43
|
+
|
44
|
+
var _beforeOpen = popupProps === null || popupProps === void 0 ? void 0 : popupProps.beforeOpen;
|
45
|
+
|
46
|
+
var _beforeClose = popupProps === null || popupProps === void 0 ? void 0 : popupProps.beforeClose; // 获取浮层类单独特殊配置
|
47
|
+
|
48
|
+
|
49
|
+
var getPopProps = function getPopProps() {
|
50
|
+
if (!action.type || action.type.includes('pop-confirm')) {
|
51
|
+
return {
|
52
|
+
popupProps: _objectSpread(_objectSpread({}, popupProps), {}, {
|
53
|
+
wrapperClassName: "".concat(cls('overlay'), " ").concat(wrapperClassName, "}"),
|
54
|
+
beforeOpen: function beforeOpen() {
|
55
|
+
setVisible(true);
|
56
|
+
|
57
|
+
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
|
58
|
+
args[_key] = arguments[_key];
|
59
|
+
}
|
60
|
+
|
61
|
+
_beforeOpen === null || _beforeOpen === void 0 ? void 0 : _beforeOpen.apply(void 0, args);
|
62
|
+
},
|
63
|
+
beforeClose: function beforeClose() {
|
64
|
+
setVisible(false);
|
65
|
+
|
66
|
+
for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {
|
67
|
+
args[_key2] = arguments[_key2];
|
68
|
+
}
|
69
|
+
|
70
|
+
_beforeClose === null || _beforeClose === void 0 ? void 0 : _beforeClose.apply(void 0, args);
|
71
|
+
}
|
72
|
+
})
|
73
|
+
};
|
74
|
+
}
|
75
|
+
|
76
|
+
return {};
|
77
|
+
};
|
78
|
+
|
79
|
+
var processAction = useAction(_objectSpread(_objectSpread({
|
80
|
+
align: 'bl',
|
81
|
+
offset: [-10, 0],
|
82
|
+
preventDefault: true,
|
83
|
+
stopPropagation: true
|
84
|
+
}, action), getPopProps()));
|
85
|
+
|
86
|
+
var getTrigger = function getTrigger() {
|
87
|
+
if (icon && typeof icon === 'string') {
|
88
|
+
return /*#__PURE__*/React.createElement(TeamixIcon, _objectSpread({
|
89
|
+
className: cls(),
|
90
|
+
size: "small",
|
91
|
+
type: icon
|
92
|
+
}, processAction));
|
93
|
+
}
|
94
|
+
|
95
|
+
return /*#__PURE__*/React.createElement("span", _objectSpread({}, processAction), icon !== null && icon !== void 0 ? icon : trigger);
|
96
|
+
};
|
97
|
+
|
98
|
+
return /*#__PURE__*/React.createElement(ProHoverTooltip, {
|
99
|
+
trigger: getTrigger(),
|
100
|
+
visible: visible || visibleProp,
|
101
|
+
tooltip: tooltip
|
102
|
+
});
|
103
|
+
};
|
104
|
+
|
105
|
+
export default ProIconAction;
|
@@ -0,0 +1,23 @@
|
|
1
|
+
import { TooltipProps } from '@alicloudfe/components/types/balloon';
|
2
|
+
import React from 'react';
|
3
|
+
import './index.scss';
|
4
|
+
export declare type ProIconSwitch = {
|
5
|
+
/** 默认状态 */
|
6
|
+
visible?: boolean;
|
7
|
+
/** tooltip 显示隐藏 */
|
8
|
+
tooltipVisible?: boolean;
|
9
|
+
/** 未激活状态下的icon */
|
10
|
+
icon?: React.ReactNode;
|
11
|
+
/** 激活状态下的 icon */
|
12
|
+
activeIcon?: React.ReactNode;
|
13
|
+
/** tooltip */
|
14
|
+
tooltip?: React.ReactNode;
|
15
|
+
/** cancelTooltip */
|
16
|
+
cancelTooltip?: React.ReactNode;
|
17
|
+
/** tooltip 配置 */
|
18
|
+
tooltipProps?: TooltipProps;
|
19
|
+
/** 状态改变的回调 */
|
20
|
+
onChange?: (state: boolean) => void;
|
21
|
+
};
|
22
|
+
declare const ProIconSwitch: React.FC<ProIconSwitch>;
|
23
|
+
export default ProIconSwitch;
|