@aloudata/aloudata-design 2.7.2 → 2.7.3

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 (31) hide show
  1. package/dist/Icon/components/SortAscendingOrderColor.d.ts +11 -0
  2. package/dist/Icon/components/SortAscendingOrderColor.js +36 -0
  3. package/dist/Icon/components/SortColor.d.ts +11 -0
  4. package/dist/Icon/components/SortColor.js +33 -0
  5. package/dist/Icon/components/SortDescendingOrderColor.d.ts +11 -0
  6. package/dist/Icon/components/SortDescendingOrderColor.js +36 -0
  7. package/dist/Icon/index.d.ts +3 -0
  8. package/dist/Icon/index.js +3 -0
  9. package/dist/Icon/svg/Sort-Ascending-order-Color.svg +4 -0
  10. package/dist/Icon/svg/Sort-Color.svg +4 -0
  11. package/dist/Icon/svg/Sort-Descending-order-Color.svg +4 -0
  12. package/dist/Select/index.js +4 -2
  13. package/dist/Table/components/ExpandCell.d.ts +2 -1
  14. package/dist/Table/components/ExpandCell.js +26 -10
  15. package/dist/Table/components/Footer/index.d.ts +13 -0
  16. package/dist/Table/components/Footer/index.js +77 -0
  17. package/dist/Table/components/Header.d.ts +1 -1
  18. package/dist/Table/components/Header.js +50 -4
  19. package/dist/Table/helper.d.ts +4 -1
  20. package/dist/Table/helper.js +4 -2
  21. package/dist/Table/hooks/useExpandable.d.ts +1 -0
  22. package/dist/Table/hooks/useExpandable.js +4 -4
  23. package/dist/Table/hooks/useRowSelection.d.ts +17 -0
  24. package/dist/Table/hooks/useRowSelection.js +164 -0
  25. package/dist/Table/index.js +33 -18
  26. package/dist/Table/style/index.less +77 -8
  27. package/dist/Table/types.d.ts +21 -0
  28. package/dist/ald.min.css +1 -1
  29. package/package.json +1 -1
  30. package/dist/Table/components/Pagination/index.d.ts +0 -10
  31. package/dist/Table/components/Pagination/index.js +0 -28
@@ -0,0 +1,11 @@
1
+ import type { SVGProps } from 'react';
2
+ import * as React from 'react';
3
+ interface SVGRProps {
4
+ size?: number | string;
5
+ title?: string;
6
+ titleId?: string;
7
+ desc?: string;
8
+ descId?: string;
9
+ }
10
+ declare const Memo: React.MemoExoticComponent<React.ForwardRefExoticComponent<Omit<SVGProps<SVGSVGElement> & SVGRProps, "ref"> & React.RefAttributes<SVGSVGElement>>>;
11
+ export default Memo;
@@ -0,0 +1,36 @@
1
+ var _excluded = ["title", "titleId", "desc", "descId"];
2
+ function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
3
+ 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; }
4
+ 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; }
5
+ import * as React from 'react';
6
+ import { forwardRef, memo } from 'react';
7
+ var SortAscendingOrderColor = function SortAscendingOrderColor(_ref, ref) {
8
+ var title = _ref.title,
9
+ titleId = _ref.titleId,
10
+ desc = _ref.desc,
11
+ descId = _ref.descId,
12
+ props = _objectWithoutProperties(_ref, _excluded);
13
+ return /*#__PURE__*/React.createElement("svg", _extends({
14
+ xmlns: "http://www.w3.org/2000/svg",
15
+ width: props.width || props.size || 16,
16
+ height: props.height || props.size || 16,
17
+ fill: "none",
18
+ viewBox: "0 0 24 24",
19
+ ref: ref,
20
+ "aria-labelledby": titleId,
21
+ "aria-describedby": descId
22
+ }, props), desc ? /*#__PURE__*/React.createElement("desc", {
23
+ id: descId
24
+ }, desc) : null, title ? /*#__PURE__*/React.createElement("title", {
25
+ id: titleId
26
+ }, title) : null, /*#__PURE__*/React.createElement("path", {
27
+ fill: "#2986F4",
28
+ d: "M15.293 10a.713.713 0 0 0 .64-.38.624.624 0 0 0-.097-.701l-3.293-3.682A.73.73 0 0 0 12 5a.73.73 0 0 0-.543.237L8.163 8.92a.624.624 0 0 0-.097.701c.116.232.366.38.64.38h6.585Z"
29
+ }), /*#__PURE__*/React.createElement("path", {
30
+ fill: "#6B7280",
31
+ d: "M15.293 14c.274 0 .524.148.64.38a.624.624 0 0 1-.097.701l-3.293 3.682A.73.73 0 0 1 12 19a.73.73 0 0 1-.543-.237L8.163 15.08a.624.624 0 0 1-.097-.701.713.713 0 0 1 .64-.38h6.585Z"
32
+ }));
33
+ };
34
+ var ForwardRef = /*#__PURE__*/forwardRef(SortAscendingOrderColor);
35
+ var Memo = /*#__PURE__*/memo(ForwardRef);
36
+ export default Memo;
@@ -0,0 +1,11 @@
1
+ import type { SVGProps } from 'react';
2
+ import * as React from 'react';
3
+ interface SVGRProps {
4
+ size?: number | string;
5
+ title?: string;
6
+ titleId?: string;
7
+ desc?: string;
8
+ descId?: string;
9
+ }
10
+ declare const Memo: React.MemoExoticComponent<React.ForwardRefExoticComponent<Omit<SVGProps<SVGSVGElement> & SVGRProps, "ref"> & React.RefAttributes<SVGSVGElement>>>;
11
+ export default Memo;
@@ -0,0 +1,33 @@
1
+ var _excluded = ["title", "titleId", "desc", "descId"];
2
+ function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
3
+ 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; }
4
+ 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; }
5
+ import * as React from 'react';
6
+ import { forwardRef, memo } from 'react';
7
+ var SortColor = function SortColor(_ref, ref) {
8
+ var title = _ref.title,
9
+ titleId = _ref.titleId,
10
+ desc = _ref.desc,
11
+ descId = _ref.descId,
12
+ props = _objectWithoutProperties(_ref, _excluded);
13
+ return /*#__PURE__*/React.createElement("svg", _extends({
14
+ xmlns: "http://www.w3.org/2000/svg",
15
+ width: props.width || props.size || 16,
16
+ height: props.height || props.size || 16,
17
+ fill: "none",
18
+ viewBox: "0 0 24 24",
19
+ ref: ref,
20
+ "aria-labelledby": titleId,
21
+ "aria-describedby": descId
22
+ }, props), desc ? /*#__PURE__*/React.createElement("desc", {
23
+ id: descId
24
+ }, desc) : null, title ? /*#__PURE__*/React.createElement("title", {
25
+ id: titleId
26
+ }, title) : null, /*#__PURE__*/React.createElement("path", {
27
+ fill: "#6B7280",
28
+ d: "M15.293 10a.713.713 0 0 0 .64-.38.624.624 0 0 0-.097-.701l-3.293-3.682A.73.73 0 0 0 12 5a.73.73 0 0 0-.543.237L8.163 8.92a.624.624 0 0 0-.097.701c.116.232.366.38.64.38h6.585ZM15.293 14c.274 0 .524.148.64.38a.624.624 0 0 1-.097.701l-3.293 3.682A.73.73 0 0 1 12 19a.73.73 0 0 1-.543-.237L8.163 15.08a.624.624 0 0 1-.097-.701.713.713 0 0 1 .64-.38h6.585Z"
29
+ }));
30
+ };
31
+ var ForwardRef = /*#__PURE__*/forwardRef(SortColor);
32
+ var Memo = /*#__PURE__*/memo(ForwardRef);
33
+ export default Memo;
@@ -0,0 +1,11 @@
1
+ import type { SVGProps } from 'react';
2
+ import * as React from 'react';
3
+ interface SVGRProps {
4
+ size?: number | string;
5
+ title?: string;
6
+ titleId?: string;
7
+ desc?: string;
8
+ descId?: string;
9
+ }
10
+ declare const Memo: React.MemoExoticComponent<React.ForwardRefExoticComponent<Omit<SVGProps<SVGSVGElement> & SVGRProps, "ref"> & React.RefAttributes<SVGSVGElement>>>;
11
+ export default Memo;
@@ -0,0 +1,36 @@
1
+ var _excluded = ["title", "titleId", "desc", "descId"];
2
+ function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
3
+ 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; }
4
+ 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; }
5
+ import * as React from 'react';
6
+ import { forwardRef, memo } from 'react';
7
+ var SortDescendingOrderColor = function SortDescendingOrderColor(_ref, ref) {
8
+ var title = _ref.title,
9
+ titleId = _ref.titleId,
10
+ desc = _ref.desc,
11
+ descId = _ref.descId,
12
+ props = _objectWithoutProperties(_ref, _excluded);
13
+ return /*#__PURE__*/React.createElement("svg", _extends({
14
+ xmlns: "http://www.w3.org/2000/svg",
15
+ width: props.width || props.size || 16,
16
+ height: props.height || props.size || 16,
17
+ fill: "none",
18
+ viewBox: "0 0 24 24",
19
+ ref: ref,
20
+ "aria-labelledby": titleId,
21
+ "aria-describedby": descId
22
+ }, props), desc ? /*#__PURE__*/React.createElement("desc", {
23
+ id: descId
24
+ }, desc) : null, title ? /*#__PURE__*/React.createElement("title", {
25
+ id: titleId
26
+ }, title) : null, /*#__PURE__*/React.createElement("path", {
27
+ fill: "#6B7280",
28
+ d: "M15.293 10a.713.713 0 0 0 .64-.38.624.624 0 0 0-.097-.701l-3.293-3.682A.73.73 0 0 0 12 5a.73.73 0 0 0-.543.237L8.163 8.92a.624.624 0 0 0-.097.701c.116.232.366.38.64.38h6.585Z"
29
+ }), /*#__PURE__*/React.createElement("path", {
30
+ fill: "#2986F4",
31
+ d: "M15.293 14c.274 0 .524.148.64.38a.624.624 0 0 1-.097.701l-3.293 3.682A.73.73 0 0 1 12 19a.73.73 0 0 1-.543-.237L8.163 15.08a.624.624 0 0 1-.097-.701.713.713 0 0 1 .64-.38h6.585Z"
32
+ }));
33
+ };
34
+ var ForwardRef = /*#__PURE__*/forwardRef(SortDescendingOrderColor);
35
+ var Memo = /*#__PURE__*/memo(ForwardRef);
36
+ export default Memo;
@@ -37,6 +37,9 @@ export { default as LoadingDuotone } from './components/LoadingDuotone';
37
37
  export { default as LoadingLine } from './components/LoadingLine';
38
38
  export { default as MoreVerticalLine } from './components/MoreVerticalLine';
39
39
  export { default as SearchLine } from './components/SearchLine';
40
+ export { default as SortAscendingOrderColor } from './components/SortAscendingOrderColor';
41
+ export { default as SortColor } from './components/SortColor';
42
+ export { default as SortDescendingOrderColor } from './components/SortDescendingOrderColor';
40
43
  export { default as TimesLightLine } from './components/TimesLightLine';
41
44
  export { default as TriangleLightLine } from './components/TriangleLightLine';
42
45
  export { default as User } from './components/User';
@@ -37,6 +37,9 @@ export { default as LoadingDuotone } from "./components/LoadingDuotone";
37
37
  export { default as LoadingLine } from "./components/LoadingLine";
38
38
  export { default as MoreVerticalLine } from "./components/MoreVerticalLine";
39
39
  export { default as SearchLine } from "./components/SearchLine";
40
+ export { default as SortAscendingOrderColor } from "./components/SortAscendingOrderColor";
41
+ export { default as SortColor } from "./components/SortColor";
42
+ export { default as SortDescendingOrderColor } from "./components/SortDescendingOrderColor";
40
43
  export { default as TimesLightLine } from "./components/TimesLightLine";
41
44
  export { default as TriangleLightLine } from "./components/TriangleLightLine";
42
45
  export { default as User } from "./components/User";
@@ -0,0 +1,4 @@
1
+ <svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <path d="M15.2925 10C15.567 10 15.8168 9.85199 15.9332 9.62029C16.0496 9.3886 16.0117 9.11505 15.836 8.91852L12.5435 5.23719C12.409 5.08689 12.2099 5 12 5C11.7901 5 11.591 5.08689 11.4565 5.23719L8.16404 8.91851C7.98826 9.11504 7.95036 9.3886 8.06679 9.62029C8.18322 9.85199 8.43297 10 8.7075 10L15.2925 10Z" fill="#2986F4"/>
3
+ <path d="M15.2925 14C15.567 14 15.8168 14.148 15.9332 14.3797C16.0496 14.6114 16.0117 14.885 15.836 15.0815L12.5435 18.7628C12.409 18.9131 12.2099 19 12 19C11.7901 19 11.591 18.9131 11.4565 18.7628L8.16404 15.0815C7.98826 14.885 7.95036 14.6114 8.06679 14.3797C8.18322 14.148 8.43296 14 8.70749 14H15.2925Z" fill="#6B7280"/>
4
+ </svg>
@@ -0,0 +1,4 @@
1
+ <svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <path d="M15.2925 10C15.567 10 15.8168 9.85199 15.9332 9.62029C16.0496 9.3886 16.0117 9.11505 15.836 8.91852L12.5435 5.23719C12.409 5.08689 12.2099 5 12 5C11.7901 5 11.591 5.08689 11.4565 5.23719L8.16404 8.91851C7.98826 9.11504 7.95036 9.3886 8.06679 9.62029C8.18322 9.85199 8.43297 10 8.7075 10L15.2925 10Z" fill="#6B7280"/>
3
+ <path d="M15.2925 14C15.567 14 15.8168 14.148 15.9332 14.3797C16.0496 14.6114 16.0117 14.885 15.836 15.0815L12.5435 18.7628C12.409 18.9131 12.2099 19 12 19C11.7901 19 11.591 18.9131 11.4565 18.7628L8.16404 15.0815C7.98826 14.885 7.95036 14.6114 8.06679 14.3797C8.18322 14.148 8.43296 14 8.70749 14H15.2925Z" fill="#6B7280"/>
4
+ </svg>
@@ -0,0 +1,4 @@
1
+ <svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <path d="M15.2925 10C15.567 10 15.8168 9.85199 15.9332 9.62029C16.0496 9.3886 16.0117 9.11505 15.836 8.91852L12.5435 5.23719C12.409 5.08689 12.2099 5 12 5C11.7901 5 11.591 5.08689 11.4565 5.23719L8.16404 8.91851C7.98826 9.11504 7.95036 9.3886 8.06679 9.62029C8.18322 9.85199 8.43297 10 8.7075 10L15.2925 10Z" fill="#6B7280"/>
3
+ <path d="M15.2925 14C15.567 14 15.8168 14.148 15.9332 14.3797C16.0496 14.6114 16.0117 14.885 15.836 15.0815L12.5435 18.7628C12.409 18.9131 12.2099 19 12 19C11.7901 19 11.591 18.9131 11.4565 18.7628L8.16404 15.0815C7.98826 14.885 7.95036 14.6114 8.06679 14.3797C8.18322 14.148 8.43296 14 8.70749 14H15.2925Z" fill="#2986F4"/>
4
+ </svg>
@@ -240,7 +240,8 @@ var Select = /*#__PURE__*/forwardRef(function (props, ref) {
240
240
  "data-id": "list",
241
241
  height: getListHeight(),
242
242
  itemHeight: listItemHeight,
243
- itemKey: "value"
243
+ itemKey: "value",
244
+ fullHeight: false
244
245
  }, function (option) {
245
246
  var isSelected = false;
246
247
  if (option.__IS_INNER_ALL_OPTION) {
@@ -281,7 +282,8 @@ var Select = /*#__PURE__*/forwardRef(function (props, ref) {
281
282
  "data-id": "list",
282
283
  height: getListHeight(),
283
284
  itemHeight: listItemHeight,
284
- itemKey: "value"
285
+ itemKey: "value",
286
+ fullHeight: false
285
287
  }, function (option) {
286
288
  var isSelected = selectedOptions.some(function (selectedOption) {
287
289
  return selectedOption.value === option.value;
@@ -1,11 +1,12 @@
1
1
  import React from 'react';
2
2
  import { IExpandableInfo } from '../hooks/useExpandable';
3
- import { TRowKey } from '../types';
3
+ import { ITableExpandable, TRowKey } from '../types';
4
4
  export default function ExpandCell<TDataItem extends object>(props: IProps<TDataItem>): React.JSX.Element;
5
5
  interface IProps<TDataItem extends object> {
6
6
  expandableInfo: IExpandableInfo<TDataItem>;
7
7
  data: TDataItem;
8
8
  children: React.ReactNode;
9
9
  rowKey?: TRowKey<TDataItem>;
10
+ expandable?: ITableExpandable<TDataItem> | boolean;
10
11
  }
11
12
  export {};
@@ -2,11 +2,13 @@ import _ from 'lodash';
2
2
  import React from 'react';
3
3
  import { ArrowDownLightLine, ArrowRightLightLine } from "../../Icon";
4
4
  import { getRowKey, prefixCls } from "../helper";
5
+ import { getExpandableConfig } from "../hooks/useExpandable";
5
6
  export default function ExpandCell(props) {
6
7
  var children = props.children,
7
8
  expandableInfo = props.expandableInfo,
8
9
  data = props.data,
9
- rowKey = props.rowKey;
10
+ rowKey = props.rowKey,
11
+ propsExpandable = props.expandable;
10
12
  if (!expandableInfo.isExpandable || !rowKey) {
11
13
  // 配置了折叠展开时,会在前面的流程中强制检查 rowKey 字段是否存在
12
14
  return /*#__PURE__*/React.createElement(React.Fragment, null, children);
@@ -22,7 +24,27 @@ export default function ExpandCell(props) {
22
24
  var level = expandItem.level,
23
25
  isExpanded = expandItem.isExpanded,
24
26
  isLeaf = expandItem.isLeaf;
25
- var expandBtn = isLeaf ? null : isExpanded ? /*#__PURE__*/React.createElement(ArrowDownLightLine, null) : /*#__PURE__*/React.createElement(ArrowRightLightLine, null);
27
+ var expandable = getExpandableConfig(propsExpandable);
28
+ var defaultExpandIconRender = function defaultExpandIconRender(params) {
29
+ var record = params.record,
30
+ onExpand = params.onExpand,
31
+ isExpandedIcon = params.isExpanded;
32
+ return /*#__PURE__*/React.createElement("span", {
33
+ className: prefixCls('expand-btn-inner'),
34
+ onClick: function onClick() {
35
+ if (isLeaf) {
36
+ return;
37
+ }
38
+ onExpand(record, !isExpanded);
39
+ }
40
+ }, isExpandedIcon ? /*#__PURE__*/React.createElement(ArrowDownLightLine, null) : /*#__PURE__*/React.createElement(ArrowRightLightLine, null));
41
+ };
42
+ var expandIcon = expandable.expandIcon || defaultExpandIconRender;
43
+ var iconNode = isLeaf ? null : expandIcon({
44
+ record: data,
45
+ onExpand: onExpand,
46
+ isExpanded: !!isExpanded
47
+ });
26
48
  return /*#__PURE__*/React.createElement("div", {
27
49
  className: prefixCls('expandable-td')
28
50
  }, /*#__PURE__*/React.createElement("div", {
@@ -33,14 +55,8 @@ export default function ExpandCell(props) {
33
55
  key: i
34
56
  });
35
57
  })), /*#__PURE__*/React.createElement("div", {
36
- className: prefixCls('expand-btn'),
37
- onClick: function onClick() {
38
- if (isLeaf) {
39
- return;
40
- }
41
- onExpand(data, !!isExpanded);
42
- }
43
- }, expandBtn), /*#__PURE__*/React.createElement("div", {
58
+ className: prefixCls('expand-btn')
59
+ }, iconNode), /*#__PURE__*/React.createElement("div", {
44
60
  className: prefixCls('expand-content')
45
61
  }, children));
46
62
  }
@@ -0,0 +1,13 @@
1
+ import React from 'react';
2
+ import { IPaginationProps } from '../../../Pagination/types';
3
+ import { IRowSelectionInfo } from '../../hooks/useRowSelection';
4
+ import { ITableProps } from '../../types';
5
+ export default function TableFooter<TDataItem extends object>(props: IProps<TDataItem>): React.JSX.Element | null;
6
+ interface IProps<TDataItem extends object> {
7
+ isShowPagination: boolean;
8
+ rowSelectionInfo: IRowSelectionInfo<TDataItem>;
9
+ pagination?: IPaginationProps;
10
+ scroll?: ITableProps<TDataItem>['scroll'];
11
+ scrollToFirstRow: () => void;
12
+ }
13
+ export {};
@@ -0,0 +1,77 @@
1
+ function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
2
+ function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }
3
+ 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."); }
4
+ 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); }
5
+ function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); }
6
+ function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }
7
+ 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; }
8
+ import React, { useCallback } from 'react';
9
+ import { Pagination } from "../../..";
10
+ import TextLink from "../../../TextLink";
11
+ import { prefixCls } from "../../helper";
12
+ export default function TableFooter(props) {
13
+ var pagination = props.pagination,
14
+ _props$scroll = props.scroll,
15
+ scroll = _props$scroll === void 0 ? {} : _props$scroll,
16
+ scrollToFirstRow = props.scrollToFirstRow,
17
+ isShowPagination = props.isShowPagination,
18
+ rowSelectionInfo = props.rowSelectionInfo;
19
+
20
+ // 选择行
21
+ var getCheckboxAllNode = rowSelectionInfo.getCheckboxAllNode,
22
+ selectedRowKeys = rowSelectionInfo.selectedRowKeys,
23
+ items = rowSelectionInfo.items,
24
+ isShowRowSelectionInFooter = rowSelectionInfo.isShowRowSelectionInFooter,
25
+ changeSelectedRowKeys = rowSelectionInfo.onChange;
26
+ var btnItems = [{
27
+ key: '$UN_SELECT_ALL$',
28
+ label: '取消选择',
29
+ onClick: function onClick(e) {
30
+ return rowSelectionInfo.unSelectAll(e);
31
+ }
32
+ }].concat(_toConsumableArray(items));
33
+ var rowSelectionNode = isShowRowSelectionInFooter && /*#__PURE__*/React.createElement("div", {
34
+ className: prefixCls('footer-row-selection')
35
+ }, /*#__PURE__*/React.createElement("div", {
36
+ className: prefixCls('footer-row-selection-btn')
37
+ }, getCheckboxAllNode === null || getCheckboxAllNode === void 0 ? void 0 : getCheckboxAllNode('全选')), /*#__PURE__*/React.createElement("div", {
38
+ className: prefixCls('footer-row-selection-selected')
39
+ }, "\u5DF2\u9009", ' ', /*#__PURE__*/React.createElement(TextLink, {
40
+ className: prefixCls('footer-row-selection-selected-num')
41
+ }, selectedRowKeys.length), ' ', "\u4E2A"), btnItems.map(function (btnItem) {
42
+ return /*#__PURE__*/React.createElement("div", {
43
+ key: btnItem.key,
44
+ className: prefixCls('footer-row-selection-item'),
45
+ onClick: function onClick(e) {
46
+ btnItem.onClick(e);
47
+ }
48
+ }, /*#__PURE__*/React.createElement(TextLink, null, btnItem.label));
49
+ }));
50
+
51
+ // 翻页器
52
+ var onChangePage = useCallback(function (page) {
53
+ var _ref = pagination || {},
54
+ _ref$onChange = _ref.onChange,
55
+ onChange = _ref$onChange === void 0 ? function () {} : _ref$onChange;
56
+ var _scroll$scrollToFirst = scroll.scrollToFirstRowOnChange,
57
+ scrollToFirstRowOnChange = _scroll$scrollToFirst === void 0 ? true : _scroll$scrollToFirst;
58
+ if (scrollToFirstRowOnChange) {
59
+ scrollToFirstRow();
60
+ }
61
+ onChange(page);
62
+ // 翻页后,清空已选行
63
+ changeSelectedRowKeys([]);
64
+ }, [scrollToFirstRow, scroll, pagination, changeSelectedRowKeys]);
65
+ var pager = isShowPagination && pagination && /*#__PURE__*/React.createElement("div", {
66
+ className: prefixCls('pager')
67
+ }, /*#__PURE__*/React.createElement(Pagination, _extends({
68
+ hideOnSinglePage: true
69
+ }, pagination, {
70
+ onChange: onChangePage
71
+ })));
72
+ var isShowRowSelection = rowSelectionInfo.isRowSelectionEnabled && selectedRowKeys.length > 0;
73
+ var isShowFooter = isShowPagination || isShowRowSelection;
74
+ return isShowFooter ? /*#__PURE__*/React.createElement("div", {
75
+ className: prefixCls('footer')
76
+ }, rowSelectionNode, pager) : null;
77
+ }
@@ -1,6 +1,6 @@
1
1
  import { Column } from '@tanstack/react-table';
2
2
  import React from 'react';
3
- export default function Header<T>(props: IProps<T>): React.JSX.Element;
3
+ export default function Header<T extends object>(props: IProps<T>): React.JSX.Element;
4
4
  export interface IProps<T> {
5
5
  column: Column<T>;
6
6
  }
@@ -3,17 +3,63 @@ function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key i
3
3
  function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); }
4
4
  function _toPrimitive(input, hint) { if (_typeof(input) !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (_typeof(res) !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
5
5
  import classnames from 'classnames';
6
- import React from 'react';
6
+ import React, { useCallback } from 'react';
7
+ import SortAscIcon from "../../Icon/components/SortAscendingOrderColor";
8
+ import SortIcon from "../../Icon/components/SortColor";
9
+ import SortDescIcon from "../../Icon/components/SortDescendingOrderColor";
7
10
  import { prefixCls } from "../helper";
8
11
  export default function Header(props) {
12
+ var _classnames;
9
13
  var column = props.column;
10
14
  var _ref = column.columnDef.meta,
11
15
  title = _ref.title,
12
16
  dataIndex = _ref.dataIndex,
13
17
  align = _ref.align,
14
- ellipsis = _ref.ellipsis;
18
+ ellipsis = _ref.ellipsis,
19
+ sortOrder = _ref.sortOrder,
20
+ onSort = _ref.onSort;
21
+ var sortIcon = /*#__PURE__*/React.createElement(SortIcon, {
22
+ size: 20
23
+ });
24
+ if (sortOrder === 'ascend') {
25
+ sortIcon = /*#__PURE__*/React.createElement(SortAscIcon, {
26
+ size: 20
27
+ });
28
+ } else if (sortOrder === 'descend') {
29
+ sortIcon = /*#__PURE__*/React.createElement(SortDescIcon, {
30
+ size: 20
31
+ });
32
+ }
33
+ var onClickTh = useCallback(function (e) {
34
+ if (sortOrder === undefined || !dataIndex || typeof onSort !== 'function') {
35
+ return;
36
+ }
37
+ e.stopPropagation();
38
+ var newSortOrder;
39
+ if (sortOrder === 'ascend') {
40
+ newSortOrder = 'descend';
41
+ } else if (sortOrder === 'descend') {
42
+ newSortOrder = null;
43
+ } else {
44
+ newSortOrder = 'ascend';
45
+ }
46
+ onSort(dataIndex, newSortOrder);
47
+ }, [dataIndex, onSort, sortOrder]);
48
+ var content = title;
49
+ if (typeof content === 'string') {
50
+ if (sortOrder !== undefined) {
51
+ content = /*#__PURE__*/React.createElement("span", {
52
+ className: prefixCls('sort-th-inner')
53
+ }, /*#__PURE__*/React.createElement("span", {
54
+ className: prefixCls('sort-title')
55
+ }, title), /*#__PURE__*/React.createElement("span", {
56
+ className: prefixCls('sort-btn')
57
+ }, sortIcon));
58
+ }
59
+ }
15
60
  return typeof title === 'string' ? /*#__PURE__*/React.createElement("div", {
16
61
  key: dataIndex,
17
- className: classnames(prefixCls('th-default'), prefixCls("align-".concat(align)), _defineProperty({}, prefixCls('td-ellipsis-content'), ellipsis))
18
- }, title) : /*#__PURE__*/React.createElement(React.Fragment, null, title);
62
+ className: classnames(prefixCls('th-default'), prefixCls("align-".concat(align)), (_classnames = {}, _defineProperty(_classnames, prefixCls('td-ellipsis-content'), ellipsis), _defineProperty(_classnames, prefixCls('th-sortable'), sortOrder !== undefined), _classnames)),
63
+ onClick: onClickTh
64
+ }, content) : /*#__PURE__*/React.createElement(React.Fragment, null, title);
19
65
  }
@@ -1,9 +1,10 @@
1
1
  /// <reference types="react" />
2
2
  import { ITableColumn, ITableProps } from './types';
3
- export declare function getTableColumns<TDataItem extends object>({ columns, totalWidth, onError, }: {
3
+ export declare function getTableColumns<TDataItem extends object>({ columns, totalWidth, onError, onSort, }: {
4
4
  columns: ITableColumn<TDataItem>[];
5
5
  totalWidth: number;
6
6
  onError: ITableProps<TDataItem>['onError'];
7
+ onSort: ITableProps<TDataItem>['onSort'];
7
8
  }): {
8
9
  accessorKey: string;
9
10
  header: (props: import("./components/Header").IProps<TDataItem>) => import("react").JSX.Element;
@@ -13,6 +14,7 @@ export declare function getTableColumns<TDataItem extends object>({ columns, tot
13
14
  onError: ((errorInfo: import("./types").ITableCellErrorInfo) => void) | undefined;
14
15
  columnWidths: number[];
15
16
  index: number;
17
+ onSort: ((columnKey: string, order: "ascend" | "descend" | null) => void) | undefined;
16
18
  title: import("react").ReactNode;
17
19
  dataIndex?: string | undefined;
18
20
  width?: string | number | undefined;
@@ -21,6 +23,7 @@ export declare function getTableColumns<TDataItem extends object>({ columns, tot
21
23
  noPadding?: boolean | undefined;
22
24
  align?: "left" | "center" | "right" | undefined;
23
25
  fixed?: "left" | "right" | undefined;
26
+ sortOrder?: "ascend" | "descend" | null | undefined;
24
27
  };
25
28
  }[];
26
29
  /**
@@ -11,7 +11,8 @@ import Header from "./components/Header";
11
11
  export function getTableColumns(_ref) {
12
12
  var columns = _ref.columns,
13
13
  totalWidth = _ref.totalWidth,
14
- onError = _ref.onError;
14
+ onError = _ref.onError,
15
+ onSort = _ref.onSort;
15
16
  var columnWidths = getColumnWidths(columns, totalWidth);
16
17
  // 根据固定列的位置重排列顺序,将 left 的列放到最前面,right 的列放到最后面
17
18
  var leftColumns = [];
@@ -37,7 +38,8 @@ export function getTableColumns(_ref) {
37
38
  meta: _objectSpread(_objectSpread({}, col), {}, {
38
39
  onError: onError,
39
40
  columnWidths: columnWidths,
40
- index: index
41
+ index: index,
42
+ onSort: onSort
41
43
  })
42
44
  };
43
45
  });
@@ -1,5 +1,6 @@
1
1
  import { ITableProps } from '../types';
2
2
  export default function useExpandable<TDataItem extends object>(props: IProps<TDataItem>): IExpandableInfo<TDataItem>;
3
+ export declare function getExpandableConfig<TDataItem extends object>(expandable: ITableProps<TDataItem>['expandable']): import("../types").ITableExpandable<TDataItem>;
3
4
  export interface IExpandableInfo<TDataItem extends object> {
4
5
  expandItemMap: IExpandItemMap;
5
6
  onExpand: (record: TDataItem, isExpanded: boolean) => void;
@@ -57,13 +57,13 @@ export default function useExpandable(props) {
57
57
  if (!expandedRowKeys) {
58
58
  setExpandedKeys(function (prev) {
59
59
  if (isExpanded) {
60
+ // 展开
61
+ return [].concat(_toConsumableArray(prev), [key]);
62
+ } else {
60
63
  // 折叠
61
64
  return prev.filter(function (expandedKey) {
62
65
  return expandedKey !== key;
63
66
  });
64
- } else {
65
- // 展开
66
- return [].concat(_toConsumableArray(prev), [key]);
67
67
  }
68
68
  });
69
69
  }
@@ -121,7 +121,7 @@ function getListItemsByTree(currNode, expandedKeys, getKey, childrenColumnName)
121
121
  })) || [];
122
122
  return [curr].concat(_toConsumableArray(_.flatten(subItems)));
123
123
  }
124
- function getExpandableConfig(expandable) {
124
+ export function getExpandableConfig(expandable) {
125
125
  if (typeof expandable === 'boolean') {
126
126
  return {};
127
127
  }
@@ -0,0 +1,17 @@
1
+ import React from 'react';
2
+ import { ITableProps } from '../types';
3
+ export default function useRowSelection<TDataItem extends object>(props: ITableProps<TDataItem>): IRowSelectionInfo<TDataItem>;
4
+ export interface IRowSelectionInfo<TDataItem extends object> {
5
+ columns: ITableProps<TDataItem>['columns'];
6
+ isRowSelectionEnabled: boolean;
7
+ getCheckboxAllNode: ((children?: React.ReactNode) => React.ReactNode) | null;
8
+ selectedRowKeys: string[];
9
+ unSelectAll: (e: React.MouseEvent) => void;
10
+ isShowRowSelectionInFooter: boolean;
11
+ items: {
12
+ key: string;
13
+ label: string;
14
+ onClick: (e: React.MouseEvent) => void;
15
+ }[];
16
+ onChange: (selectedRowKeys: string[]) => void;
17
+ }