@teamix/pro 1.2.7 → 1.2.11

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 (121) hide show
  1. package/dist/pro.css +1 -1
  2. package/dist/pro.js +756 -368
  3. package/dist/pro.min.css +1 -1
  4. package/dist/pro.min.js +1 -1
  5. package/es/actions/base.d.ts +16 -6
  6. package/es/actions/base.js +66 -12
  7. package/es/actions/confirm.d.ts +1 -1
  8. package/es/actions/danger-confirm.d.ts +1 -1
  9. package/es/actions/dialog-component.d.ts +1 -1
  10. package/es/actions/dialog-form.d.ts +1 -1
  11. package/es/actions/dialog-form.js +4 -4
  12. package/es/actions/dialog-info.d.ts +1 -1
  13. package/es/actions/dialog-table.d.ts +1 -1
  14. package/es/actions/dialog.d.ts +6 -2
  15. package/es/actions/dialog.js +19 -24
  16. package/es/actions/drawer-form.d.ts +1 -1
  17. package/es/actions/drawer-info.d.ts +1 -1
  18. package/es/actions/drawer-table.d.ts +1 -1
  19. package/es/actions/drawer.d.ts +1 -1
  20. package/es/actions/error.d.ts +1 -1
  21. package/es/actions/index.js +25 -21
  22. package/es/actions/index.scss +14 -7
  23. package/es/actions/link.d.ts +2 -2
  24. package/es/actions/link.js +2 -2
  25. package/es/actions/notice.d.ts +1 -1
  26. package/es/actions/request.d.ts +1 -1
  27. package/es/actions/request.js +2 -2
  28. package/es/card/index.d.ts +21 -3
  29. package/es/card/index.js +29 -12
  30. package/es/card/index.scss +71 -2
  31. package/es/card/selectable.d.ts +13 -0
  32. package/es/card/selectable.js +45 -0
  33. package/es/card/tab.d.ts +6 -0
  34. package/es/card/tab.js +27 -0
  35. package/es/form/Filter/index.js +5 -5
  36. package/es/form/ProForm/index.js +3 -23
  37. package/es/form/ProForm/index.scss +9 -0
  38. package/es/form/SchemaForm/index.js +7 -6
  39. package/es/index.d.ts +1 -1
  40. package/es/index.js +7 -4
  41. package/es/info/components/tableInfo/index.js +10 -6
  42. package/es/nocode/configurators/Card.js +31 -8
  43. package/es/page-header/index.d.ts +20 -11
  44. package/es/page-header/index.js +23 -47
  45. package/es/page-header/index.scss +0 -11
  46. package/es/sidebar/components/sidebar-container/index.d.ts +5 -0
  47. package/es/sidebar/components/sidebar-container/index.js +77 -0
  48. package/es/sidebar/components/sidebar-container/index.scss +18 -0
  49. package/es/sidebar/components/tree/index.d.ts +4 -0
  50. package/es/sidebar/components/tree/index.js +162 -0
  51. package/es/sidebar/index.d.ts +5 -0
  52. package/es/sidebar/index.js +70 -0
  53. package/es/sidebar/index.scss +3 -0
  54. package/es/sidebar/typing.d.ts +64 -0
  55. package/es/sidebar/typing.js +1 -0
  56. package/es/table/components/Filter/index.js +3 -3
  57. package/es/table/index.js +12 -3
  58. package/es/table/index.scss +1 -0
  59. package/es/table/typing.d.ts +2 -0
  60. package/es/utils/components/tags/index.d.ts +11 -0
  61. package/es/utils/components/tags/index.js +50 -0
  62. package/es/utils/components/tags/index.scss +12 -0
  63. package/lib/actions/base.d.ts +16 -6
  64. package/lib/actions/base.js +67 -12
  65. package/lib/actions/confirm.d.ts +1 -1
  66. package/lib/actions/danger-confirm.d.ts +1 -1
  67. package/lib/actions/dialog-component.d.ts +1 -1
  68. package/lib/actions/dialog-form.d.ts +1 -1
  69. package/lib/actions/dialog-form.js +3 -3
  70. package/lib/actions/dialog-info.d.ts +1 -1
  71. package/lib/actions/dialog-table.d.ts +1 -1
  72. package/lib/actions/dialog.d.ts +6 -2
  73. package/lib/actions/dialog.js +18 -23
  74. package/lib/actions/drawer-form.d.ts +1 -1
  75. package/lib/actions/drawer-info.d.ts +1 -1
  76. package/lib/actions/drawer-table.d.ts +1 -1
  77. package/lib/actions/drawer.d.ts +1 -1
  78. package/lib/actions/error.d.ts +1 -1
  79. package/lib/actions/index.js +25 -21
  80. package/lib/actions/index.scss +14 -7
  81. package/lib/actions/link.d.ts +2 -2
  82. package/lib/actions/link.js +2 -2
  83. package/lib/actions/notice.d.ts +1 -1
  84. package/lib/actions/request.d.ts +1 -1
  85. package/lib/actions/request.js +2 -2
  86. package/lib/card/index.d.ts +21 -3
  87. package/lib/card/index.js +35 -14
  88. package/lib/card/index.scss +71 -2
  89. package/lib/card/selectable.d.ts +13 -0
  90. package/lib/card/selectable.js +60 -0
  91. package/lib/card/tab.d.ts +6 -0
  92. package/lib/card/tab.js +39 -0
  93. package/lib/form/Filter/index.js +5 -6
  94. package/lib/form/ProForm/index.js +3 -23
  95. package/lib/form/ProForm/index.scss +9 -0
  96. package/lib/form/SchemaForm/index.js +7 -6
  97. package/lib/index.d.ts +1 -1
  98. package/lib/index.js +3 -1
  99. package/lib/info/components/tableInfo/index.js +10 -6
  100. package/lib/nocode/configurators/Card.js +31 -8
  101. package/lib/page-header/index.d.ts +20 -11
  102. package/lib/page-header/index.js +22 -45
  103. package/lib/page-header/index.scss +0 -11
  104. package/lib/sidebar/components/sidebar-container/index.d.ts +5 -0
  105. package/lib/sidebar/components/sidebar-container/index.js +93 -0
  106. package/lib/sidebar/components/sidebar-container/index.scss +18 -0
  107. package/lib/sidebar/components/tree/index.d.ts +4 -0
  108. package/lib/sidebar/components/tree/index.js +179 -0
  109. package/lib/sidebar/index.d.ts +5 -0
  110. package/lib/sidebar/index.js +91 -0
  111. package/lib/sidebar/index.scss +3 -0
  112. package/lib/sidebar/typing.d.ts +64 -0
  113. package/lib/sidebar/typing.js +5 -0
  114. package/lib/table/components/Filter/index.js +2 -2
  115. package/lib/table/index.js +12 -3
  116. package/lib/table/index.scss +1 -0
  117. package/lib/table/typing.d.ts +2 -0
  118. package/lib/utils/components/tags/index.d.ts +11 -0
  119. package/lib/utils/components/tags/index.js +66 -0
  120. package/lib/utils/components/tags/index.scss +12 -0
  121. package/package.json +1 -1
@@ -1,7 +1,6 @@
1
1
  var _excluded = ["text", "children"],
2
- _excluded2 = ["text", "children", "closable"],
3
- _excluded3 = ["color", "title", "num", "className"],
4
- _excluded4 = ["title", "description", "icon", "iconColor", "iconBackgroundType", "iconBackgroundColor", "goback", "operation", "extra", "image", "loading", "breadcrumb", "tags", "data", "info", "children", "className", "style"];
2
+ _excluded2 = ["color", "title", "num", "className"],
3
+ _excluded3 = ["title", "description", "icon", "iconColor", "iconBackgroundType", "iconBackgroundColor", "goback", "operation", "extra", "image", "loading", "breadcrumb", "tags", "data", "info", "children", "className", "style"];
5
4
 
6
5
  function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
7
6
 
@@ -17,8 +16,9 @@ import React from 'react';
17
16
  import { useHistory } from 'react-router-dom';
18
17
  import classnames from 'classnames';
19
18
  import TeamixIcon from '@teamix/icon';
20
- import { Breadcrumb, Tag } from '@alicloudfe/components';
21
- import { baseClass } from '@teamix/utils';
19
+ import { Breadcrumb } from '@alicloudfe/components';
20
+ import { baseClass, goToLink } from '@teamix/utils';
21
+ import { renderTags } from '../utils/components/tags';
22
22
  import { ProActionGroup } from '../actions';
23
23
  import { ProSkeletonRaw } from '../skeleton';
24
24
  import ProInfo from '../info';
@@ -64,40 +64,6 @@ var renderActionGroup = function renderActionGroup(group, defaultProps) {
64
64
  return group;
65
65
  };
66
66
 
67
- var renderTags = function renderTags(tags) {
68
- if (!tags) {
69
- return null;
70
- }
71
-
72
- return /*#__PURE__*/React.createElement(Tag.Group, {
73
- className: cls('tags')
74
- }, tags.map(function (tag, i) {
75
- // @ts-ignore
76
- var text = tag.text,
77
- children = tag.children,
78
- closable = tag.closable,
79
- others = _objectWithoutProperties(tag, _excluded2);
80
-
81
- if (closable) {
82
- return /*#__PURE__*/React.createElement(Tag.Closeable, _objectSpread({
83
- key: i,
84
- size: "large",
85
- style: {
86
- marginBottom: 0
87
- }
88
- }, others), text || children);
89
- }
90
-
91
- return /*#__PURE__*/React.createElement(Tag, _objectSpread({
92
- key: i,
93
- size: "large",
94
- style: {
95
- marginBottom: 0
96
- }
97
- }, others), text || children);
98
- }));
99
- };
100
-
101
67
  var isPresetColor = function isPresetColor(color) {
102
68
  if (!color) {
103
69
  return false;
@@ -135,7 +101,7 @@ var renderData = function renderData(data) {
135
101
  title = item.title,
136
102
  num = item.num,
137
103
  customClassName = item.className,
138
- others = _objectWithoutProperties(item, _excluded3);
104
+ others = _objectWithoutProperties(item, _excluded2);
139
105
 
140
106
  var _getColorAndStyle = getColorAndStyle(color),
141
107
  className = _getColorAndStyle.className,
@@ -183,7 +149,7 @@ var ProPageHeader = function ProPageHeader(props) {
183
149
  children = props.children,
184
150
  className = props.className,
185
151
  style = props.style,
186
- others = _objectWithoutProperties(props, _excluded4);
152
+ others = _objectWithoutProperties(props, _excluded3);
187
153
 
188
154
  var history = useHistory();
189
155
  var backgroundImage = image ? "url('".concat(image, "')") : undefined;
@@ -201,12 +167,22 @@ var ProPageHeader = function ProPageHeader(props) {
201
167
  iconClass = _getColorAndStyle2.className,
202
168
  iconStyle = _getColorAndStyle2.style;
203
169
 
204
- var onBack = function onBack() {
170
+ var onBack = function onBack(e) {
171
+ if (!goback) {
172
+ return;
173
+ }
174
+
175
+ if (typeof goback === 'function') {
176
+ goback(e);
177
+ return;
178
+ }
179
+
205
180
  if (goback === true) {
206
181
  history.go(-1);
207
- } else if (typeof goback === 'string') {
208
- history.push && history.push(goback);
182
+ return;
209
183
  }
184
+
185
+ goToLink(goback, history);
210
186
  };
211
187
 
212
188
  return /*#__PURE__*/React.createElement(React.Fragment, null, goback && /*#__PURE__*/React.createElement(TeamixIcon, {
@@ -214,14 +190,14 @@ var ProPageHeader = function ProPageHeader(props) {
214
190
  onClick: onBack,
215
191
  type: "return-line",
216
192
  size: "large"
217
- }), icon && /*#__PURE__*/React.createElement(TeamixIcon, {
193
+ }), icon && (typeof icon === 'string' ? /*#__PURE__*/React.createElement(TeamixIcon, {
218
194
  className: classnames(iconClass, cls('title-icon')),
219
195
  style: iconStyle,
220
196
  type: icon,
221
197
  size: "large"
222
- }), /*#__PURE__*/React.createElement("span", {
198
+ }) : /*#__PURE__*/React.createElement(React.Fragment, null, icon)), /*#__PURE__*/React.createElement("span", {
223
199
  className: cls('title-name')
224
- }, title), renderTags(tags));
200
+ }, title), renderTags(tags, 'large'));
225
201
  };
226
202
 
227
203
  return /*#__PURE__*/React.createElement("header", _objectSpread({
@@ -124,17 +124,6 @@ $prefix: 'teamix-pro-page-header';
124
124
  cursor: pointer;
125
125
  }
126
126
 
127
- .#{$prefix}-tags {
128
- display: inline-flex;
129
- align-items: center;
130
-
131
- & > div {
132
- &:last-child {
133
- margin-right: 0;
134
- }
135
- }
136
- }
137
-
138
127
  .#{$prefix}-color {
139
128
  &-blue {
140
129
  color: var(--color-notice-5);
@@ -0,0 +1,5 @@
1
+ import React from 'react';
2
+ import { ProSidebarContainerProps } from '../../typing';
3
+ import './index.scss';
4
+ declare const ProSidebarContainer: React.FC<ProSidebarContainerProps>;
5
+ export default ProSidebarContainer;
@@ -0,0 +1,77 @@
1
+ var _excluded = ["children", "searchPlaceholder", "showSearch", "searchProps", "customSearch", "searchOnChange", "message", "messageProps", "customMessage"];
2
+
3
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
4
+
5
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
6
+
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
+
9
+ 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; }
10
+
11
+ 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; }
12
+
13
+ import { Message } from '@alicloudfe/components';
14
+ import { ProCard } from '../../../card';
15
+ import ProField from '@teamix/pro-field';
16
+ import { baseClass } from '@teamix/utils';
17
+ import React from 'react';
18
+ import './index.scss';
19
+ var cls = baseClass('teamix-pro-sidebar-container');
20
+
21
+ var ProSidebarContainer = function ProSidebarContainer(props) {
22
+ var children = props.children,
23
+ searchPlaceholder = props.searchPlaceholder,
24
+ _props$showSearch = props.showSearch,
25
+ showSearch = _props$showSearch === void 0 ? true : _props$showSearch,
26
+ _props$searchProps = props.searchProps,
27
+ searchProps = _props$searchProps === void 0 ? {} : _props$searchProps,
28
+ customSearch = props.customSearch,
29
+ searchOnChange = props.searchOnChange,
30
+ message = props.message,
31
+ _props$messageProps = props.messageProps,
32
+ messageProps = _props$messageProps === void 0 ? {} : _props$messageProps,
33
+ customMessage = props.customMessage,
34
+ others = _objectWithoutProperties(props, _excluded); // 渲染搜索区域
35
+
36
+
37
+ var renderSearch = function renderSearch() {
38
+ if (customSearch || showSearch) {
39
+ return /*#__PURE__*/React.createElement("div", {
40
+ className: cls('search')
41
+ }, !!customSearch && customSearch, showSearch && /*#__PURE__*/React.createElement(ProField, _objectSpread({
42
+ mode: "edit",
43
+ type: "text",
44
+ placeholder: searchPlaceholder,
45
+ innerBeforeIcon: "search-line",
46
+ onChange: searchOnChange
47
+ }, searchProps)));
48
+ }
49
+
50
+ return null;
51
+ }; // 渲染通知区域
52
+
53
+
54
+ var renderNotice = function renderNotice() {
55
+ if (message || customMessage) {
56
+ return /*#__PURE__*/React.createElement("div", {
57
+ className: cls('notice')
58
+ }, message && /*#__PURE__*/React.createElement(Message, _objectSpread({
59
+ type: "notice",
60
+ closeable: true
61
+ }, messageProps), message), !!customMessage && customMessage);
62
+ }
63
+
64
+ return null;
65
+ };
66
+
67
+ return /*#__PURE__*/React.createElement("div", {
68
+ className: cls()
69
+ }, /*#__PURE__*/React.createElement(ProCard, _objectSpread({
70
+ bordered: false,
71
+ compacted: true
72
+ }, others), renderSearch(), renderNotice(), /*#__PURE__*/React.createElement("div", {
73
+ className: cls('context')
74
+ }, children)));
75
+ };
76
+
77
+ export default ProSidebarContainer;
@@ -0,0 +1,18 @@
1
+ .teamix-pro-sidebar-container {
2
+ min-width: 180px;
3
+
4
+ &-search {
5
+ margin-bottom: 8px;
6
+ }
7
+
8
+ &-search-has-message {
9
+ margin-bottom: 4px;
10
+ }
11
+
12
+ &-notice {
13
+ margin-bottom: 4px;
14
+ }
15
+
16
+ &-context {
17
+ }
18
+ }
@@ -0,0 +1,4 @@
1
+ import React from 'react';
2
+ import { ProSidebarTreeProps } from '../../typing';
3
+ declare const ProSidebarTree: React.FC<ProSidebarTreeProps>;
4
+ export default ProSidebarTree;
@@ -0,0 +1,162 @@
1
+ var _excluded = ["dataSource", "searchKey", "onSelect"];
2
+
3
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
4
+
5
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
6
+
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
+
9
+ function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }
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."); }
12
+
13
+ function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); }
14
+
15
+ function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }
16
+
17
+ function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
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."); }
20
+
21
+ 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
+
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; }
24
+
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; }
26
+
27
+ function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
28
+
29
+ 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
+
31
+ 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
+
33
+ import { Tree } from '@alicloudfe/components';
34
+ import { baseClass, treeToList } from '@teamix/utils';
35
+ import React, { isValidElement, useEffect, useState } from 'react';
36
+ var cls = baseClass('teamix-pro-sidebar-tree');
37
+
38
+ var ProSidebarTree = function ProSidebarTree(props) {
39
+ var dataSourceProp = props.dataSource,
40
+ searchKey = props.searchKey,
41
+ onSelect = props.onSelect,
42
+ others = _objectWithoutProperties(props, _excluded); // 自动展开父节点。过滤时用
43
+
44
+
45
+ var _useState = useState(false),
46
+ _useState2 = _slicedToArray(_useState, 2),
47
+ autoExpandParent = _useState2[0],
48
+ setAutoExpandParent = _useState2[1];
49
+
50
+ var _useState3 = useState(),
51
+ _useState4 = _slicedToArray(_useState3, 2),
52
+ matchedKeys = _useState4[0],
53
+ setMatchedKeys = _useState4[1];
54
+
55
+ var _useState5 = useState(),
56
+ _useState6 = _slicedToArray(_useState5, 2),
57
+ expandedKeys = _useState6[0],
58
+ setExpandedKeys = _useState6[1];
59
+
60
+ var _useState7 = useState(dataSourceProp !== null && dataSourceProp !== void 0 ? dataSourceProp : []),
61
+ _useState8 = _slicedToArray(_useState7, 2),
62
+ dataSource = _useState8[0],
63
+ setDataSource = _useState8[1];
64
+
65
+ useEffect(function () {
66
+ getAllExpend();
67
+ }, []);
68
+ useEffect(function () {
69
+ filterDataSource(searchKey !== null && searchKey !== void 0 ? searchKey : '');
70
+ }, [searchKey]); // 获取全部展开节点key
71
+
72
+ var getAllExpend = function getAllExpend() {
73
+ var allKeys = treeToList(dataSource).map(function (item) {
74
+ return item.value;
75
+ });
76
+ setExpandedKeys(allKeys);
77
+ }; // 过滤
78
+
79
+
80
+ var filterDataSource = function filterDataSource(value) {
81
+ if (!value) {
82
+ setExpandedKeys([]);
83
+ getAllExpend();
84
+ }
85
+
86
+ value = value.trim();
87
+ var matchedKeys = [];
88
+
89
+ if (!value) {
90
+ matchedKeys = [];
91
+ return;
92
+ }
93
+
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
+ }
99
+
100
+ if (item.children && item.children.length) {
101
+ loop(item.children);
102
+ }
103
+ });
104
+ };
105
+
106
+ loop(dataSource);
107
+ setExpandedKeys(_toConsumableArray(matchedKeys));
108
+ setAutoExpandParent(true);
109
+ setMatchedKeys(matchedKeys);
110
+ };
111
+
112
+ var filterTreeNode = function filterTreeNode(node) {
113
+ return matchedKeys && matchedKeys.indexOf(node.props.eventKey) > -1;
114
+ }; // 节点展开回调
115
+
116
+
117
+ var handleExpand = function handleExpand(key) {
118
+ setExpandedKeys(key);
119
+ setAutoExpandParent(false);
120
+ }; // 渲染树节点
121
+
122
+
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
131
+
132
+
133
+ var renderTreeNodeItem = function renderTreeNodeItem(data) {
134
+ var node = /*#__PURE__*/React.createElement(React.Fragment, null, data.label);
135
+
136
+ if (data.tag) {
137
+ if ( /*#__PURE__*/isValidElement(data.tag)) {
138
+ node = /*#__PURE__*/React.createElement(React.Fragment, null, node, data.tag);
139
+ }
140
+ }
141
+
142
+ return node;
143
+ };
144
+
145
+ return /*#__PURE__*/React.createElement("div", {
146
+ className: cls()
147
+ }, /*#__PURE__*/React.createElement(Tree, _objectSpread({
148
+ defaultExpandAll: true,
149
+ isLabelBlock: true,
150
+ isNodeBlock: {
151
+ defaultPaddingLeft: 8,
152
+ indent: 16
153
+ },
154
+ filterTreeNode: filterTreeNode,
155
+ expandedKeys: expandedKeys,
156
+ onExpand: handleExpand,
157
+ autoExpandParent: autoExpandParent,
158
+ onSelect: onSelect
159
+ }, others), renderTreeNode(dataSource)));
160
+ };
161
+
162
+ export default ProSidebarTree;
@@ -0,0 +1,5 @@
1
+ import React from 'react';
2
+ import './index.scss';
3
+ import { ProSidebarProps } from './typing';
4
+ declare const ProSidebar: React.FC<ProSidebarProps>;
5
+ export default ProSidebar;
@@ -0,0 +1,70 @@
1
+ var _excluded = ["dataSource", "className", "style", "searchOnChange", "showSearch", "onSelect", "treeProps", "cardProps"];
2
+
3
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
4
+
5
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
6
+
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
+
9
+ function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
10
+
11
+ 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."); }
12
+
13
+ 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); }
14
+
15
+ 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; }
16
+
17
+ 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; }
18
+
19
+ function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
20
+
21
+ 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; }
22
+
23
+ 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; }
24
+
25
+ import React, { useState } from 'react';
26
+ import './index.scss';
27
+ import { baseClass } from '@teamix/utils';
28
+ import ProSidebarContainer from './components/sidebar-container';
29
+ import ProSidebarTree from './components/tree';
30
+ var cls = baseClass('teamix-pro-sidebar');
31
+
32
+ var ProSidebar = function ProSidebar(props) {
33
+ var dataSource = props.dataSource,
34
+ className = props.className,
35
+ style = props.style,
36
+ _searchOnChange = props.searchOnChange,
37
+ _props$showSearch = props.showSearch,
38
+ showSearch = _props$showSearch === void 0 ? true : _props$showSearch,
39
+ onSelect = props.onSelect,
40
+ treeProps = props.treeProps,
41
+ cardProps = props.cardProps,
42
+ others = _objectWithoutProperties(props, _excluded); // 搜索的关键词
43
+
44
+
45
+ var _useState = useState(),
46
+ _useState2 = _slicedToArray(_useState, 2),
47
+ searchKey = _useState2[0],
48
+ setSearchKey = _useState2[1];
49
+
50
+ return /*#__PURE__*/React.createElement("div", {
51
+ className: cls(_defineProperty({
52
+ '': true
53
+ }, className, true)),
54
+ style: style
55
+ }, /*#__PURE__*/React.createElement(ProSidebarContainer, _objectSpread(_objectSpread({
56
+ searchOnChange: function searchOnChange(value) {
57
+ if (showSearch) {
58
+ _searchOnChange === null || _searchOnChange === void 0 ? void 0 : _searchOnChange(value);
59
+ setSearchKey(value);
60
+ }
61
+ },
62
+ showSearch: showSearch
63
+ }, others), cardProps), /*#__PURE__*/React.createElement(ProSidebarTree, _objectSpread({
64
+ dataSource: dataSource,
65
+ searchKey: searchKey,
66
+ onSelect: onSelect
67
+ }, treeProps))));
68
+ };
69
+
70
+ export default ProSidebar;
@@ -0,0 +1,3 @@
1
+ .teamix-pro-sidebar {
2
+ color: var(--color-brand1-6);
3
+ }
@@ -0,0 +1,64 @@
1
+ /// <reference types="react" />
2
+ import { MessageProps } from '@alifd/next/types/message';
3
+ import { TreeProps } from '@alifd/next/types/tree';
4
+ import { ProCardProps, ProFieldProps } from '..';
5
+ /** ProSidebar 定义 */
6
+ export declare type ProSidebarProps = {
7
+ /** 数据源 */
8
+ dataSource?: ProSidebarDataSource;
9
+ /** 节点点击回调 */
10
+ onSelect?: TreeProps['onSelect'];
11
+ /** 树配置 */
12
+ treeProps?: TreeProps;
13
+ /** 卡片配置 */
14
+ cardProps?: ProCardProps;
15
+ } & Omit<React.HTMLAttributes<HTMLElement>, 'onSelect'> & Omit<ProSidebarContainerProps, 'onSelect'>;
16
+ /** 数据源定义 */
17
+ export declare type ProSidebarDataSource = ProSidebarDataSourceItem[];
18
+ export declare type ProSidebarDataSourceItem = {
19
+ /** 展示值 */
20
+ label?: React.ReactNode;
21
+ /** 绑定值 */
22
+ value?: any;
23
+ /** icon */
24
+ icon?: React.ReactNode;
25
+ /** 标签 */
26
+ tag?: React.ReactNode;
27
+ /** 右侧操作、状态区 */
28
+ extra?: React.ReactNode;
29
+ /** 子项 */
30
+ children?: ProSidebarDataSourceItem[];
31
+ };
32
+ /** tag 定义 */
33
+ export declare type ProSidebarDataSourceTag = {
34
+ /** 显示值 */
35
+ value: string;
36
+ };
37
+ /** sidebar 容器定义 */
38
+ export declare type ProSidebarContainerProps = {
39
+ children?: React.ReactNode;
40
+ /** 搜索输入提示 */
41
+ searchPlaceholder?: string;
42
+ /** 搜索输入其他参数 ProField 参数 */
43
+ searchProps?: ProFieldProps;
44
+ /** 是否展示搜索框 */
45
+ showSearch?: boolean;
46
+ /** 自定义搜索 */
47
+ customSearch?: React.ReactNode;
48
+ /** 搜索框变化的回调函数 */
49
+ searchOnChange?: (value: any) => void;
50
+ /** 通知提示消息区域 */
51
+ message?: React.ReactNode;
52
+ /** 自定义消息通知区域 */
53
+ customMessage?: React.ReactNode;
54
+ /** 消息通知区域的其他参数 */
55
+ messageProps?: MessageProps;
56
+ } & ProCardProps;
57
+ /** ProSidebarTree 内容定义 */
58
+ export declare type ProSidebarTreeProps = {
59
+ dataSource?: ProSidebarDataSource;
60
+ /** 搜索过滤关键词 */
61
+ searchKey?: string;
62
+ /** 节点点击回调 */
63
+ onChange?: ProSidebarProps['onChange'];
64
+ } & TreeProps;
@@ -0,0 +1 @@
1
+ export {};
@@ -27,7 +27,7 @@ function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
27
27
  import React, { useEffect, useMemo, useState } from 'react';
28
28
  import TeamixIcon from '@teamix/icon';
29
29
  import { Button, Dropdown, Menu } from '@alicloudfe/components';
30
- import { baseClass } from '@teamix/utils';
30
+ import { baseClass, getMessage } from '@teamix/utils';
31
31
  import './index.scss';
32
32
  var CheckboxItem = Menu.CheckboxItem;
33
33
  var cls = baseClass('teamix-pro-table-toolbar-filter');
@@ -217,7 +217,7 @@ var Filter = function Filter(props) {
217
217
  (_actionRef$current7 = actionRef.current) === null || _actionRef$current7 === void 0 ? void 0 : (_actionRef$current7$r = _actionRef$current7.resetPage) === null || _actionRef$current7$r === void 0 ? void 0 : _actionRef$current7$r.call(_actionRef$current7);
218
218
  setVisible(false);
219
219
  }
220
- }, "\u786E\u5B9A"), /*#__PURE__*/React.createElement(Button, {
220
+ }, getMessage('ok')), /*#__PURE__*/React.createElement(Button, {
221
221
  type: "normal",
222
222
  size: "small",
223
223
  className: cls({
@@ -234,7 +234,7 @@ var Filter = function Filter(props) {
234
234
  })));
235
235
  (_actionRef$current10 = actionRef.current) === null || _actionRef$current10 === void 0 ? void 0 : (_actionRef$current10$ = _actionRef$current10.filterDataSource) === null || _actionRef$current10$ === void 0 ? void 0 : _actionRef$current10$.call(_actionRef$current10, column.dataIndex); // setVisible(!visible);
236
236
  }
237
- }, "\u91CD\u7F6E")))));
237
+ }, getMessage('reset'))))));
238
238
  };
239
239
 
240
240
  export default Filter;
package/es/table/index.js CHANGED
@@ -1,4 +1,4 @@
1
- var _excluded = ["header", "className", "tableClassName", "mainAction", "extra", "dataFilter", "toolBar", "columns", "useRowSelection", "rowSelection", "onChangeRowSelection", "getRowSelection", "primaryKey", "footerAction", "url", "pageKey", "pageSizeKey", "method", "params", "formatSort", "formatParams", "formatResult", "requestWhenMount", "showPagination", "pageSizeList", "showSkeleton", "skeletonSize", "actionRef", "dataSource", "filterDebounce", "footerSuction", "autoRefresh", "customRequest"];
1
+ var _excluded = ["header", "className", "tableClassName", "mainAction", "extra", "dataFilter", "toolBar", "columns", "useRowSelection", "rowSelection", "onChangeRowSelection", "getRowSelection", "primaryKey", "footerAction", "footer", "url", "pageKey", "pageSizeKey", "method", "params", "formatSort", "formatParams", "formatResult", "requestWhenMount", "showPagination", "pageSizeList", "showSkeleton", "skeletonSize", "actionRef", "dataSource", "filterDebounce", "footerSuction", "autoRefresh", "customRequest"];
2
2
 
3
3
  function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
4
4
 
@@ -97,6 +97,7 @@ var ProTable = function ProTable(props) {
97
97
  getRowSelection = props.getRowSelection,
98
98
  primaryKey = props.primaryKey,
99
99
  footerAction = props.footerAction,
100
+ footer = props.footer,
100
101
  url = props.url,
101
102
  pageKey = props.pageKey,
102
103
  pageSizeKey = props.pageSizeKey,
@@ -722,7 +723,7 @@ var ProTable = function ProTable(props) {
722
723
  }
723
724
  }
724
725
 
725
- if (showPagination || footerAction) {
726
+ if (showPagination) {
726
727
  return /*#__PURE__*/React.createElement("div", {
727
728
  className: cls('footer', {
728
729
  'footer-has-rowSelection': rowSelection
@@ -751,6 +752,14 @@ var ProTable = function ProTable(props) {
751
752
  return onChangePaginationSize(number);
752
753
  }
753
754
  }, props.paginationProps))));
755
+ } else if (!showPagination) {
756
+ return /*#__PURE__*/React.createElement("div", {
757
+ className: cls('footer', {
758
+ 'footer-has-rowSelection': rowSelection
759
+ })
760
+ }, renderRowSelection(), /*#__PURE__*/React.createElement("div", {
761
+ className: cls('footer-right-wrapper')
762
+ }, showSkeleton ? /*#__PURE__*/React.createElement(Skeleton.Footer.Pagination, null) : footer));
754
763
  }
755
764
  };
756
765
 
@@ -764,7 +773,7 @@ var ProTable = function ProTable(props) {
764
773
 
765
774
  }),
766
775
  ref: tableRef
767
- }, renderTable(), footerSuctionState && footerSuction && /*#__PURE__*/React.createElement(ProPageContainer.FixedFooter, null, renderFooter()), !(footerSuctionState && footerSuction) && renderFooter()));
776
+ }, renderTable(), footerSuctionState && footerSuction && !fullscreenState && /*#__PURE__*/React.createElement(ProPageContainer.FixedFooter, null, renderFooter()), !(footerSuctionState && footerSuction) && !fullscreenState && renderFooter(), fullscreenState && renderFooter()));
768
777
  };
769
778
 
770
779
  export default ProTable;
@@ -13,6 +13,7 @@ $fullscreenPadding: 24px;
13
13
  --checkbox-semi-select-icon-content: '\ead5';
14
14
  &-footer {
15
15
  padding: 8px 0;
16
+ width: 100%;
16
17
  }
17
18
  &-footer-fixed {
18
19
  position: fixed;
@@ -100,6 +100,8 @@ export declare type ProTableProps = {
100
100
  getRowSelection?: (rowSelection: rowSelectionType) => void;
101
101
  /** 表格底部(左侧)配置 */
102
102
  footerAction?: ProActionGroupProps | React.ReactNode;
103
+ /** 表格底部(右层)配置 */
104
+ footer?: React.ReactNode;
103
105
  /** 筛选区自动搜索的防抖时间(毫秒) */
104
106
  filterDebounce?: number;
105
107
  /** ProTable action 的引用,便于手动触发一些方法 */