@aloudata/aloudata-design 0.3.1 → 0.3.4
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/README.md +15 -5
- package/es/Breadcrumb/index.d.ts +1 -0
- package/es/Button/index.js +3 -2
- package/es/Button/style/index.less +135 -126
- package/es/Button/style/variables.less +53 -53
- package/es/Card/index.d.ts +3 -0
- package/es/Card/index.js +3 -0
- package/es/Card/style/index.d.ts +2 -0
- package/es/Card/style/index.js +2 -0
- package/es/Card/style/index.less +1 -0
- package/es/Checkbox/index.d.ts +1 -0
- package/es/ConfigProvider/defaultRenderEmpty.d.ts +4 -0
- package/es/ConfigProvider/defaultRenderEmpty.js +37 -0
- package/es/ConfigProvider/sizeContext.d.ts +9 -0
- package/es/ConfigProvider/sizeContext.js +12 -0
- package/es/Dropdown/Button.js +4 -3
- package/es/Empty/image/Authority.d.ts +1 -0
- package/es/Empty/image/Dataspace.d.ts +1 -0
- package/es/Empty/image/Search.d.ts +1 -0
- package/es/Empty/image/Simple.d.ts +1 -0
- package/es/Empty/image/Worksheet.d.ts +1 -0
- package/es/Empty/image/empty.d.ts +1 -0
- package/es/Icon/icons/CheckLine.d.ts +13 -0
- package/es/Icon/icons/CheckLine.js +73 -0
- package/es/Icon/icons.json +410 -0
- package/es/Input/components/Group/index.d.ts +3 -1
- package/es/Input/components/Group/index.js +6 -12
- package/es/Input/components/Input/index.d.ts +3 -2
- package/es/Input/components/Input/index.js +11 -23
- package/es/Input/components/Password/index.js +11 -16
- package/es/Input/components/TextArea/index.d.ts +8 -1
- package/es/Input/components/TextArea/index.js +8 -1
- package/es/Input/style/index.less +180 -102
- package/es/InputNumber/index.d.ts +1 -0
- package/es/InputNumber/style/index.less +69 -69
- package/es/Menu/Divider.d.ts +1 -0
- package/es/Modal/index.js +20 -16
- package/es/Modal/locale.d.ts +7 -0
- package/es/Modal/locale.js +20 -0
- package/es/Modal/style/index.less +48 -45
- package/es/Navigator/components/Header/index.d.ts +1 -0
- package/es/Navigator/components/Menu/index.d.ts +1 -0
- package/es/Navigator/components/MenuItem/index.d.ts +1 -1
- package/es/Navigator/index.d.ts +1 -1
- package/es/PageHeader/index.d.ts +3 -0
- package/es/PageHeader/index.js +3 -0
- package/es/PageHeader/style/index.d.ts +2 -0
- package/es/PageHeader/style/index.js +2 -0
- package/es/PageHeader/style/index.less +1 -0
- package/es/Popover/index.d.ts +1 -0
- package/es/Radio/components/Group/index.d.ts +6 -0
- package/es/Radio/components/Group/index.js +72 -0
- package/es/Radio/components/Radio/index.d.ts +3 -0
- package/es/Radio/components/Radio/index.js +95 -0
- package/es/Radio/index.d.ts +9 -2
- package/es/Radio/index.js +5 -3
- package/es/Radio/interface/radio.d.ts +24 -0
- package/es/Radio/interface/radio.js +1 -0
- package/es/Radio/interface/radioGroup.d.ts +42 -0
- package/es/Radio/interface/radioGroup.js +1 -0
- package/es/Radio/style/index.less +348 -0
- package/es/Select/index.js +1 -1
- package/es/Select/rc-select/OptionList.js +4 -4
- package/es/Select/rc-select/Selector/MultipleSelector.js +11 -1
- package/es/Select/rc-select/hooks/useOptions.d.ts +1 -1
- package/es/Select/style/index.less +70 -45
- package/es/Select/style/variables.less +45 -45
- package/es/Select/utils/iconUtil.d.ts +2 -2
- package/es/Select/utils/iconUtil.js +9 -5
- package/es/Steps/components/ProcessIcon/index.d.ts +6 -0
- package/es/Steps/components/ProcessIcon/index.js +8 -0
- package/es/Steps/components/Step/index.d.ts +20 -0
- package/es/Steps/components/Step/index.js +45 -0
- package/es/Steps/index.d.ts +36 -2
- package/es/Steps/index.js +30 -1
- package/es/Steps/matchMedia.mock.d.ts +1 -0
- package/es/Steps/matchMedia.mock.js +17 -0
- package/es/Steps/style/index.less +251 -0
- package/es/Switch/index.d.ts +46 -2
- package/es/Switch/index.js +71 -1
- package/es/Switch/style/index.less +129 -0
- package/es/Table/Table.d.ts +2 -1
- package/es/Table/Table.js +223 -330
- package/es/Table/components/Empty/index.d.ts +3 -0
- package/es/Table/components/Empty/index.js +17 -0
- package/es/Table/components/Loading/index.d.ts +3 -0
- package/es/Table/components/Loading/index.js +19 -0
- package/es/Table/components/TableBodyRowList/index.d.ts +13 -0
- package/es/Table/components/TableBodyRowList/index.js +89 -0
- package/es/Table/components/TableHead/index.d.ts +23 -0
- package/es/Table/components/TableHead/index.js +262 -0
- package/es/Table/constant.d.ts +1 -0
- package/es/Table/constant.js +1 -0
- package/es/Table/hooks/useFrame.d.ts +7 -0
- package/es/Table/hooks/useFrame.js +90 -0
- package/es/Table/hooks/useTableColumn.d.ts +28 -0
- package/es/Table/hooks/useTableColumn.js +53 -0
- package/es/Table/interface.d.ts +3 -2
- package/es/Table/style/index.less +33 -30
- package/es/Table/utils.d.ts +15 -0
- package/es/Table/utils.js +131 -0
- package/es/Tabs/index.js +7 -9
- package/es/Tabs/style/index.less +57 -25
- package/es/_utils/hooks/useId.d.ts +4 -0
- package/es/_utils/hooks/useId.js +23 -0
- package/es/index.d.ts +9 -5
- package/es/index.js +3 -1
- package/es/locale/default.d.ts +2 -0
- package/es/locale/default.js +2 -0
- package/es/locale/en_US.d.ts +3 -0
- package/es/locale/en_US.js +132 -0
- package/es/locale/zh_CN.d.ts +3 -2
- package/es/locale/zh_CN.js +131 -2
- package/es/locale-provider/LocaleReceiver.d.ts +4 -0
- package/es/locale-provider/LocaleReceiver.js +3 -0
- package/es/locale-provider/context.d.ts +7 -0
- package/es/locale-provider/context.js +3 -0
- package/es/locale-provider/default.d.ts +2 -0
- package/es/locale-provider/default.js +2 -0
- package/es/locale-provider/en_US.d.ts +2 -0
- package/es/locale-provider/en_US.js +2 -0
- package/es/locale-provider/index.d.ts +65 -0
- package/es/locale-provider/index.js +102 -0
- package/es/locale-provider/style/index.d.ts +1 -0
- package/es/locale-provider/style/index.js +1 -0
- package/es/locale-provider/style/index.less +2 -0
- package/es/locale-provider/zh_CN.d.ts +2 -0
- package/es/locale-provider/zh_CN.js +2 -0
- package/es/style/index.d.ts +0 -1
- package/es/style/index.js +0 -1
- package/es/style/index.less +2 -2
- package/es/style/themes/default/index.less +30 -30
- package/lib/Breadcrumb/index.d.ts +1 -0
- package/lib/Button/index.js +5 -3
- package/lib/Button/style/index.less +135 -126
- package/lib/Button/style/variables.less +53 -53
- package/lib/Card/index.d.ts +3 -0
- package/lib/Card/index.js +15 -0
- package/lib/Card/style/index.d.ts +2 -0
- package/lib/Card/style/index.js +5 -0
- package/lib/Card/style/index.less +1 -0
- package/lib/Checkbox/index.d.ts +1 -0
- package/lib/ConfigProvider/defaultRenderEmpty.d.ts +4 -0
- package/lib/ConfigProvider/defaultRenderEmpty.js +55 -0
- package/lib/ConfigProvider/sizeContext.d.ts +9 -0
- package/lib/ConfigProvider/sizeContext.js +30 -0
- package/lib/Dropdown/Button.js +8 -6
- package/lib/Empty/image/Authority.d.ts +1 -0
- package/lib/Empty/image/Dataspace.d.ts +1 -0
- package/lib/Empty/image/Search.d.ts +1 -0
- package/lib/Empty/image/Simple.d.ts +1 -0
- package/lib/Empty/image/Worksheet.d.ts +1 -0
- package/lib/Empty/image/empty.d.ts +1 -0
- package/lib/Icon/icons/CheckLine.d.ts +13 -0
- package/lib/Icon/icons/CheckLine.js +90 -0
- package/lib/Icon/icons.json +410 -0
- package/lib/Input/components/Group/index.d.ts +3 -1
- package/lib/Input/components/Group/index.js +7 -12
- package/lib/Input/components/Input/index.d.ts +3 -2
- package/lib/Input/components/Input/index.js +13 -23
- package/lib/Input/components/Password/index.js +13 -17
- package/lib/Input/components/TextArea/index.d.ts +8 -1
- package/lib/Input/components/TextArea/index.js +10 -1
- package/lib/Input/style/index.less +180 -102
- package/lib/InputNumber/index.d.ts +1 -0
- package/lib/InputNumber/style/index.less +69 -69
- package/lib/Menu/Divider.d.ts +1 -0
- package/lib/Modal/index.js +25 -18
- package/lib/Modal/locale.d.ts +7 -0
- package/lib/Modal/locale.js +31 -0
- package/lib/Modal/style/index.less +48 -45
- package/lib/Navigator/components/Header/index.d.ts +1 -0
- package/lib/Navigator/components/Menu/index.d.ts +1 -0
- package/lib/Navigator/components/MenuItem/index.d.ts +1 -1
- package/lib/Navigator/index.d.ts +1 -1
- package/lib/PageHeader/index.d.ts +3 -0
- package/lib/PageHeader/index.js +15 -0
- package/lib/PageHeader/style/index.d.ts +2 -0
- package/lib/PageHeader/style/index.js +5 -0
- package/lib/PageHeader/style/index.less +1 -0
- package/lib/Popover/index.d.ts +1 -0
- package/lib/Radio/components/Group/index.d.ts +6 -0
- package/lib/Radio/components/Group/index.js +93 -0
- package/lib/Radio/components/Radio/index.d.ts +3 -0
- package/lib/Radio/components/Radio/index.js +115 -0
- package/lib/Radio/index.d.ts +9 -2
- package/lib/Radio/index.js +5 -3
- package/lib/Radio/interface/radio.d.ts +24 -0
- package/lib/Radio/interface/radio.js +5 -0
- package/lib/Radio/interface/radioGroup.d.ts +42 -0
- package/lib/Radio/interface/radioGroup.js +5 -0
- package/lib/Radio/style/index.less +348 -0
- package/lib/Select/index.js +1 -1
- package/lib/Select/rc-select/OptionList.js +8 -7
- package/lib/Select/rc-select/Selector/MultipleSelector.js +11 -1
- package/lib/Select/rc-select/hooks/useOptions.d.ts +1 -1
- package/lib/Select/style/index.less +70 -45
- package/lib/Select/style/variables.less +45 -45
- package/lib/Select/utils/iconUtil.d.ts +2 -2
- package/lib/Select/utils/iconUtil.js +13 -7
- package/lib/Steps/components/ProcessIcon/index.d.ts +6 -0
- package/lib/Steps/components/ProcessIcon/index.js +19 -0
- package/lib/Steps/components/Step/index.d.ts +20 -0
- package/lib/Steps/components/Step/index.js +61 -0
- package/lib/Steps/index.d.ts +36 -2
- package/lib/Steps/index.js +34 -1
- package/lib/Steps/matchMedia.mock.d.ts +1 -0
- package/lib/Steps/matchMedia.mock.js +17 -0
- package/lib/Steps/style/index.less +251 -0
- package/lib/Switch/index.d.ts +46 -2
- package/lib/Switch/index.js +78 -1
- package/lib/Switch/style/index.less +129 -0
- package/lib/Table/Table.d.ts +2 -1
- package/lib/Table/Table.js +228 -332
- package/lib/Table/components/Empty/index.d.ts +3 -0
- package/lib/Table/components/Empty/index.js +30 -0
- package/lib/Table/components/Loading/index.d.ts +3 -0
- package/lib/Table/components/Loading/index.js +33 -0
- package/lib/Table/components/TableBodyRowList/index.d.ts +13 -0
- package/lib/Table/components/TableBodyRowList/index.js +108 -0
- package/lib/Table/components/TableHead/index.d.ts +23 -0
- package/lib/Table/components/TableHead/index.js +286 -0
- package/lib/Table/constant.d.ts +1 -0
- package/lib/Table/constant.js +1 -0
- package/lib/Table/hooks/useFrame.d.ts +7 -0
- package/lib/Table/hooks/useFrame.js +98 -0
- package/lib/Table/hooks/useTableColumn.d.ts +28 -0
- package/lib/Table/hooks/useTableColumn.js +66 -0
- package/lib/Table/interface.d.ts +3 -2
- package/lib/Table/style/index.less +33 -30
- package/lib/Table/utils.d.ts +15 -0
- package/lib/Table/utils.js +147 -0
- package/lib/Tabs/index.js +9 -11
- package/lib/Tabs/style/index.less +57 -25
- package/lib/_utils/hooks/useId.d.ts +4 -0
- package/lib/_utils/hooks/useId.js +36 -0
- package/lib/index.d.ts +9 -5
- package/lib/index.js +16 -0
- package/lib/locale/default.d.ts +2 -0
- package/lib/locale/default.js +13 -0
- package/lib/locale/en_US.d.ts +3 -0
- package/lib/locale/en_US.js +146 -0
- package/lib/locale/zh_CN.d.ts +3 -2
- package/lib/locale/zh_CN.js +134 -2
- package/lib/locale-provider/LocaleReceiver.d.ts +4 -0
- package/lib/locale-provider/LocaleReceiver.js +23 -0
- package/lib/locale-provider/context.d.ts +7 -0
- package/lib/locale-provider/context.js +12 -0
- package/lib/locale-provider/default.d.ts +2 -0
- package/lib/locale-provider/default.js +13 -0
- package/lib/locale-provider/en_US.d.ts +2 -0
- package/lib/locale-provider/en_US.js +13 -0
- package/lib/locale-provider/index.d.ts +65 -0
- package/lib/locale-provider/index.js +116 -0
- package/lib/locale-provider/style/index.d.ts +1 -0
- package/lib/locale-provider/style/index.js +3 -0
- package/lib/locale-provider/style/index.less +2 -0
- package/lib/locale-provider/zh_CN.d.ts +2 -0
- package/lib/locale-provider/zh_CN.js +13 -0
- package/lib/style/index.d.ts +0 -1
- package/lib/style/index.js +0 -2
- package/lib/style/index.less +2 -2
- package/lib/style/themes/default/index.less +30 -30
- package/package.json +11 -8
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import classnames from 'classnames';
|
|
3
|
+
import usePrefixCls from '../../../_utils/hooks/usePrefixCls';
|
|
4
|
+
import Empty from '../../../Empty';
|
|
5
|
+
|
|
6
|
+
function LoadingNode() {
|
|
7
|
+
var prefixCls = usePrefixCls('', 'ald-table');
|
|
8
|
+
return /*#__PURE__*/React.createElement("div", {
|
|
9
|
+
className: classnames("".concat(prefixCls, "-empty-icon"))
|
|
10
|
+
}, /*#__PURE__*/React.createElement(Empty, {
|
|
11
|
+
title: "No Data",
|
|
12
|
+
size: "large",
|
|
13
|
+
image: Empty.PRESENTED_IMAGE_SIMPLE
|
|
14
|
+
}));
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
export default LoadingNode;
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import "@aloudata/icons-react/styles/index.less";
|
|
2
|
+
import _LoadingLine from "@aloudata/icons-react/es/icons/LoadingLine";
|
|
3
|
+
import React from 'react';
|
|
4
|
+
import classnames from 'classnames';
|
|
5
|
+
import usePrefixCls from '../../../_utils/hooks/usePrefixCls';
|
|
6
|
+
|
|
7
|
+
function LoadingNode() {
|
|
8
|
+
var prefixCls = usePrefixCls('', 'ald-table');
|
|
9
|
+
return /*#__PURE__*/React.createElement("div", {
|
|
10
|
+
className: classnames("".concat(prefixCls, "-loading"))
|
|
11
|
+
}, /*#__PURE__*/React.createElement(_LoadingLine, {
|
|
12
|
+
size: 16,
|
|
13
|
+
fill: "currentColor",
|
|
14
|
+
spin: true,
|
|
15
|
+
className: classnames("".concat(prefixCls, "-loading-icon"))
|
|
16
|
+
}), "Loading");
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
export default LoadingNode;
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { MutableRefObject } from 'react';
|
|
2
|
+
import { Row } from 'react-table';
|
|
3
|
+
interface ITableBodyRowListProps<T extends object> {
|
|
4
|
+
data: T[];
|
|
5
|
+
rows: Row<T>[];
|
|
6
|
+
prepareRow: (row: Row<T>) => void;
|
|
7
|
+
columnsTotalWidthRef: MutableRefObject<number>;
|
|
8
|
+
rowClassName?: string;
|
|
9
|
+
ellipsis?: boolean;
|
|
10
|
+
onRowSelected?: (row: T) => void;
|
|
11
|
+
}
|
|
12
|
+
declare function TableBodyRowList<T extends object>(props: ITableBodyRowListProps<T>): JSX.Element;
|
|
13
|
+
export default TableBodyRowList;
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
var _excluded = ["style"];
|
|
2
|
+
|
|
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
|
+
|
|
5
|
+
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; }
|
|
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
|
+
function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
|
|
14
|
+
|
|
15
|
+
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."); }
|
|
16
|
+
|
|
17
|
+
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); }
|
|
18
|
+
|
|
19
|
+
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; }
|
|
20
|
+
|
|
21
|
+
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; }
|
|
22
|
+
|
|
23
|
+
function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
|
|
24
|
+
|
|
25
|
+
import React, { useCallback, useState } from 'react';
|
|
26
|
+
import usePrefixCls from '../../../_utils/hooks/usePrefixCls';
|
|
27
|
+
import classnames from 'classnames';
|
|
28
|
+
import { getValidWidthByNumber } from '../../utils';
|
|
29
|
+
|
|
30
|
+
function TableBodyRowList(props) {
|
|
31
|
+
var _props$ellipsis = props.ellipsis,
|
|
32
|
+
ellipsis = _props$ellipsis === void 0 ? true : _props$ellipsis,
|
|
33
|
+
data = props.data,
|
|
34
|
+
rows = props.rows,
|
|
35
|
+
prepareRow = props.prepareRow,
|
|
36
|
+
columnsTotalWidthRef = props.columnsTotalWidthRef,
|
|
37
|
+
_props$rowClassName = props.rowClassName,
|
|
38
|
+
rowClassName = _props$rowClassName === void 0 ? '' : _props$rowClassName,
|
|
39
|
+
onRowSelected = props.onRowSelected;
|
|
40
|
+
|
|
41
|
+
var _useState = useState(null),
|
|
42
|
+
_useState2 = _slicedToArray(_useState, 2),
|
|
43
|
+
selectedRowId = _useState2[0],
|
|
44
|
+
setSelectedRowId = _useState2[1];
|
|
45
|
+
|
|
46
|
+
var prefixCls = usePrefixCls('', 'ald-table');
|
|
47
|
+
var onRowClick = useCallback(function (row) {
|
|
48
|
+
if (!onRowSelected) {
|
|
49
|
+
return;
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
setSelectedRowId(row.id);
|
|
53
|
+
onRowSelected(row.original);
|
|
54
|
+
}, [onRowSelected, setSelectedRowId]);
|
|
55
|
+
return /*#__PURE__*/React.createElement(React.Fragment, null, data.map(function (item, index) {
|
|
56
|
+
var _classnames;
|
|
57
|
+
|
|
58
|
+
var row = rows[index];
|
|
59
|
+
prepareRow(row);
|
|
60
|
+
|
|
61
|
+
var _row$getRowProps = row.getRowProps(),
|
|
62
|
+
rowStyle = _row$getRowProps.style,
|
|
63
|
+
rowProps = _objectWithoutProperties(_row$getRowProps, _excluded);
|
|
64
|
+
|
|
65
|
+
return /*#__PURE__*/React.createElement("div", Object.assign({}, rowProps, {
|
|
66
|
+
style: _objectSpread(_objectSpread({}, rowStyle), {}, {
|
|
67
|
+
width: columnsTotalWidthRef.current
|
|
68
|
+
}),
|
|
69
|
+
className: classnames("".concat(prefixCls, "-row"), (_classnames = {}, _defineProperty(_classnames, "".concat(prefixCls, "-row-selected"), row.id === selectedRowId), _defineProperty(_classnames, rowClassName, rowClassName), _defineProperty(_classnames, "".concat(prefixCls, "-row-ellipsis"), ellipsis), _classnames)),
|
|
70
|
+
onClick: function onClick() {
|
|
71
|
+
return onRowClick(row);
|
|
72
|
+
},
|
|
73
|
+
key: row.id
|
|
74
|
+
}), row.cells.map(function (cell) {
|
|
75
|
+
var _cell$getCellProps$st, _cell$getCellProps$st2;
|
|
76
|
+
|
|
77
|
+
var currentRenderWidth = Number((_cell$getCellProps$st = cell.getCellProps().style) === null || _cell$getCellProps$st === void 0 ? void 0 : (_cell$getCellProps$st2 = _cell$getCellProps$st.width) === null || _cell$getCellProps$st2 === void 0 ? void 0 : _cell$getCellProps$st2.toString().replace('px', '')); // 表格内置计算的宽度 'px'
|
|
78
|
+
|
|
79
|
+
return /*#__PURE__*/React.createElement("div", Object.assign({}, cell.getCellProps(), {
|
|
80
|
+
className: classnames("".concat(prefixCls, "-cell")),
|
|
81
|
+
style: {
|
|
82
|
+
width: getValidWidthByNumber(currentRenderWidth)
|
|
83
|
+
}
|
|
84
|
+
}), /*#__PURE__*/React.createElement(React.Fragment, null, cell.render('Cell')));
|
|
85
|
+
}));
|
|
86
|
+
}));
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
export default TableBodyRowList;
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { MutableRefObject } from 'react';
|
|
2
|
+
import { HeaderGroup, SortingRule } from 'react-table';
|
|
3
|
+
import { ISort, TSortOrder } from '../../interface';
|
|
4
|
+
import { IWidthDetail } from '../../utils';
|
|
5
|
+
interface ITableWithoutHeightProps<T extends object = {}> {
|
|
6
|
+
headerGroups: HeaderGroup<T>[];
|
|
7
|
+
tableContentWidth: number;
|
|
8
|
+
canResizeColumn?: boolean;
|
|
9
|
+
defaultSort?: ISort<T>;
|
|
10
|
+
sortable?: boolean;
|
|
11
|
+
columns?: {
|
|
12
|
+
sortOrder?: TSortOrder;
|
|
13
|
+
accessor: string;
|
|
14
|
+
sorter?: boolean | 'string' | 'number' | 'basic' | 'datetime' | 'alphanumeric';
|
|
15
|
+
}[];
|
|
16
|
+
sortDirections?: Array<'ascend' | 'descend'>;
|
|
17
|
+
setSortBy: (sortBy: SortingRule<T>[]) => void;
|
|
18
|
+
onChange?: (sort: ISort<T>) => void;
|
|
19
|
+
columnsWidthMapRef: MutableRefObject<Map<string, IWidthDetail> | undefined>;
|
|
20
|
+
columnsTotalWidthRef: MutableRefObject<number>;
|
|
21
|
+
}
|
|
22
|
+
declare function TableHead<T extends object = {}>(props: ITableWithoutHeightProps<T>): JSX.Element;
|
|
23
|
+
export default TableHead;
|
|
@@ -0,0 +1,262 @@
|
|
|
1
|
+
import "@aloudata/icons-react/styles/index.less";
|
|
2
|
+
import _SortAscendingLine from "@aloudata/icons-react/es/icons/SortAscendingLine";
|
|
3
|
+
import "@aloudata/icons-react/styles/index.less";
|
|
4
|
+
import _SortDescendingLine from "@aloudata/icons-react/es/icons/SortDescendingLine";
|
|
5
|
+
var _excluded = ["style"];
|
|
6
|
+
|
|
7
|
+
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; }
|
|
8
|
+
|
|
9
|
+
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; }
|
|
10
|
+
|
|
11
|
+
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; }
|
|
12
|
+
|
|
13
|
+
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; }
|
|
14
|
+
|
|
15
|
+
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; }
|
|
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
|
+
import React, { useState } from 'react';
|
|
30
|
+
import usePrefixCls from '../../../_utils/hooks/usePrefixCls';
|
|
31
|
+
import classnames from 'classnames';
|
|
32
|
+
import _ from 'lodash';
|
|
33
|
+
import { getValidWidthByNumber } from '../../utils';
|
|
34
|
+
import message from '../../../message';
|
|
35
|
+
var ARRAY_FIRST_INDEX = 0;
|
|
36
|
+
|
|
37
|
+
function TableHead(props) {
|
|
38
|
+
var headerGroups = props.headerGroups,
|
|
39
|
+
tableContentWidth = props.tableContentWidth,
|
|
40
|
+
canResizeColumn = props.canResizeColumn,
|
|
41
|
+
defaultSort = props.defaultSort,
|
|
42
|
+
_props$sortable = props.sortable,
|
|
43
|
+
sortable = _props$sortable === void 0 ? false : _props$sortable,
|
|
44
|
+
_props$columns = props.columns,
|
|
45
|
+
columns = _props$columns === void 0 ? [{
|
|
46
|
+
accessor: '',
|
|
47
|
+
sortOrder: 'descend'
|
|
48
|
+
}] : _props$columns,
|
|
49
|
+
allSortDirections = props.sortDirections,
|
|
50
|
+
setSortBy = props.setSortBy,
|
|
51
|
+
_props$onChange = props.onChange,
|
|
52
|
+
onChange = _props$onChange === void 0 ? function () {} : _props$onChange,
|
|
53
|
+
columnsWidthMapRef = props.columnsWidthMapRef,
|
|
54
|
+
columnsTotalWidthRef = props.columnsTotalWidthRef;
|
|
55
|
+
var prefixCls = usePrefixCls('', 'ald-table'); // 第一列的情况 默认或者恢复是需要用到
|
|
56
|
+
|
|
57
|
+
var defaultSortObject = {
|
|
58
|
+
id: columns[ARRAY_FIRST_INDEX].accessor,
|
|
59
|
+
desc: !!(columns[ARRAY_FIRST_INDEX].sortOrder && columns[ARRAY_FIRST_INDEX].sortOrder === 'descend')
|
|
60
|
+
}; // 如果支持排序
|
|
61
|
+
// 1. 有默认排序 则按照默认排序
|
|
62
|
+
// 2. 如果没有默认排序,再判断第一列是否符合排序条件,若满足 => 则按第一列排序
|
|
63
|
+
|
|
64
|
+
var getInitialSortDirection = function getInitialSortDirection() {
|
|
65
|
+
if (defaultSort && defaultSort.id) {
|
|
66
|
+
return defaultSort;
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
if (!defaultSortObject.id) {
|
|
70
|
+
message.error('开启了排序,但是没有给予默认排序列,并且第一列不支持排序');
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
return defaultSortObject;
|
|
74
|
+
};
|
|
75
|
+
|
|
76
|
+
var _useState = useState(getInitialSortDirection()),
|
|
77
|
+
_useState2 = _slicedToArray(_useState, 2),
|
|
78
|
+
sortDirection = _useState2[0],
|
|
79
|
+
setSortDirection = _useState2[1]; // 排序的方向 倒叙{ id: 'xx', desc: true }、正序{ id: 'xx', desc: false }、无序 { id: '', desc: undefined }
|
|
80
|
+
// 获取排序方向以及排序的id
|
|
81
|
+
|
|
82
|
+
|
|
83
|
+
var getSortBy = function getSortBy(id) {
|
|
84
|
+
var sortDirections = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : ['ascend', 'descend'];
|
|
85
|
+
var // 如果传了sortDirections,则使用传入的,否则使用默认的
|
|
86
|
+
sortOrder = arguments.length > 2 ? arguments[2] : undefined;
|
|
87
|
+
var res = {
|
|
88
|
+
id: id,
|
|
89
|
+
desc: undefined
|
|
90
|
+
};
|
|
91
|
+
var isSameCol = sortDirection.id === id;
|
|
92
|
+
var descMap = new Map([['ascend', false], ['descend', true]]);
|
|
93
|
+
var directions = allSortDirections || sortDirections; // 如果不是同一列 则返回默认排序 或者排序顺序的第一个
|
|
94
|
+
|
|
95
|
+
if (!isSameCol) {
|
|
96
|
+
if (sortOrder === 'ascend' || sortOrder === 'descend') {
|
|
97
|
+
res.desc = descMap.get(sortOrder);
|
|
98
|
+
} else {
|
|
99
|
+
res.desc = sortOrder || descMap.get(directions[ARRAY_FIRST_INDEX]);
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
return res;
|
|
103
|
+
} // 如果是同一列
|
|
104
|
+
// 如果列给了默认的sortOrder则不在变化
|
|
105
|
+
|
|
106
|
+
|
|
107
|
+
if (sortOrder === 'ascend' || sortOrder === 'descend') {
|
|
108
|
+
res.desc = descMap.get(sortOrder);
|
|
109
|
+
return res;
|
|
110
|
+
} // 在所有方向上 往后取一个
|
|
111
|
+
|
|
112
|
+
|
|
113
|
+
var lastSortDirection = sortDirection.desc ? 'descend' : 'ascend';
|
|
114
|
+
|
|
115
|
+
var index = _.findIndex(directions, function (item) {
|
|
116
|
+
return item === lastSortDirection;
|
|
117
|
+
});
|
|
118
|
+
|
|
119
|
+
var nextIndex = index + 1;
|
|
120
|
+
res.desc = descMap.get(directions[nextIndex]); // 如果没有排序方向,则返回默认排序对象
|
|
121
|
+
|
|
122
|
+
if (res.desc === undefined) {
|
|
123
|
+
res.id = '';
|
|
124
|
+
}
|
|
125
|
+
|
|
126
|
+
return res;
|
|
127
|
+
};
|
|
128
|
+
|
|
129
|
+
var getHeaderProps = function getHeaderProps(column) {
|
|
130
|
+
// @ts-ignore
|
|
131
|
+
var id = column.id,
|
|
132
|
+
canSort = column.canSort,
|
|
133
|
+
sorter = column.sorter,
|
|
134
|
+
sortOrder = column.sortOrder,
|
|
135
|
+
sortDirections = column.sortDirections;
|
|
136
|
+
var toggleProps = column.getSortByToggleProps(); // 仅在Table设置sortable时,所有列的canSort为true,此时为前端排序
|
|
137
|
+
|
|
138
|
+
if (canSort) {
|
|
139
|
+
// client sort
|
|
140
|
+
return _objectSpread(_objectSpread({}, column.getHeaderProps(_objectSpread({}, toggleProps))), {}, {
|
|
141
|
+
onClick: function onClick(e) {
|
|
142
|
+
e.stopPropagation();
|
|
143
|
+
|
|
144
|
+
if (typeof toggleProps.onClick === 'function') {
|
|
145
|
+
var sortBy = getSortBy(id, sortDirections, sortOrder);
|
|
146
|
+
setSortBy(sortBy.desc === undefined ? [defaultSortObject] : [sortBy]); // 客户端排序时 需要重新设置排序
|
|
147
|
+
|
|
148
|
+
setSortDirection(sortBy);
|
|
149
|
+
onChange(sortBy);
|
|
150
|
+
}
|
|
151
|
+
}
|
|
152
|
+
});
|
|
153
|
+
} // 当列设置sorter属性时,则为服务端排序
|
|
154
|
+
|
|
155
|
+
|
|
156
|
+
if (sorter) {
|
|
157
|
+
// server sort
|
|
158
|
+
return _objectSpread(_objectSpread({}, column.getHeaderProps({
|
|
159
|
+
style: {
|
|
160
|
+
cursor: 'pointer'
|
|
161
|
+
}
|
|
162
|
+
})), {}, {
|
|
163
|
+
onClick: function onClick(e) {
|
|
164
|
+
e.stopPropagation();
|
|
165
|
+
var sortBy = getSortBy(id, sortDirections, sortOrder);
|
|
166
|
+
setSortDirection(sortBy);
|
|
167
|
+
onChange(sortBy);
|
|
168
|
+
}
|
|
169
|
+
});
|
|
170
|
+
}
|
|
171
|
+
|
|
172
|
+
return column.getHeaderProps();
|
|
173
|
+
};
|
|
174
|
+
|
|
175
|
+
var SortIcons = function SortIcons(_ref) {
|
|
176
|
+
var id = _ref.id;
|
|
177
|
+
var currentSortId = sortDirection.id,
|
|
178
|
+
desc = sortDirection.desc;
|
|
179
|
+
|
|
180
|
+
if (id !== currentSortId || !sortable) {
|
|
181
|
+
return null;
|
|
182
|
+
}
|
|
183
|
+
|
|
184
|
+
return desc ? /*#__PURE__*/React.createElement(_SortDescendingLine, {
|
|
185
|
+
className: "".concat(prefixCls, "-sortIcon"),
|
|
186
|
+
fill: "currentColor",
|
|
187
|
+
size: 12
|
|
188
|
+
}) : /*#__PURE__*/React.createElement(_SortAscendingLine, {
|
|
189
|
+
className: "".concat(prefixCls, "-sortIcon"),
|
|
190
|
+
fill: "currentColor",
|
|
191
|
+
size: 12
|
|
192
|
+
});
|
|
193
|
+
}; // 在页面拖拽完成之后 更新表格整体宽度以及每个列对应的列宽map
|
|
194
|
+
|
|
195
|
+
|
|
196
|
+
var adjustColumnsMapAfterDrag = function adjustColumnsMapAfterDrag(key, width) {
|
|
197
|
+
var _columnsWidthMapRef$c, _columnsWidthMapRef$c2;
|
|
198
|
+
|
|
199
|
+
var newMap = _.cloneDeep(columnsWidthMapRef.current);
|
|
200
|
+
|
|
201
|
+
var originWidth = (_columnsWidthMapRef$c = columnsWidthMapRef.current) === null || _columnsWidthMapRef$c === void 0 ? void 0 : (_columnsWidthMapRef$c2 = _columnsWidthMapRef$c.get(key)) === null || _columnsWidthMapRef$c2 === void 0 ? void 0 : _columnsWidthMapRef$c2.width;
|
|
202
|
+
var newWidth = getValidWidthByNumber(width);
|
|
203
|
+
newMap.set(key, {
|
|
204
|
+
isSpecific: true,
|
|
205
|
+
width: newWidth
|
|
206
|
+
});
|
|
207
|
+
columnsWidthMapRef.current = newMap;
|
|
208
|
+
columnsTotalWidthRef.current = columnsTotalWidthRef.current - originWidth + newWidth;
|
|
209
|
+
};
|
|
210
|
+
|
|
211
|
+
var handleStyleAndReturn = function handleStyleAndReturn(column, index) {
|
|
212
|
+
var _columnsWidthMapRef$c3, _getHeaderProps$style, _getHeaderProps$style2;
|
|
213
|
+
|
|
214
|
+
var key = index.toString();
|
|
215
|
+
var lastColumnsMapWidth = (_columnsWidthMapRef$c3 = columnsWidthMapRef.current.get(key)) === null || _columnsWidthMapRef$c3 === void 0 ? void 0 : _columnsWidthMapRef$c3.width; // 在拖动之前记录宽度map
|
|
216
|
+
|
|
217
|
+
var currentRenderWidth = Number((_getHeaderProps$style = getHeaderProps(column).style) === null || _getHeaderProps$style === void 0 ? void 0 : (_getHeaderProps$style2 = _getHeaderProps$style.width) === null || _getHeaderProps$style2 === void 0 ? void 0 : _getHeaderProps$style2.toString().replace('px', '')); // 表格内置计算的宽度 'px'
|
|
218
|
+
|
|
219
|
+
if (currentRenderWidth !== lastColumnsMapWidth) {
|
|
220
|
+
adjustColumnsMapAfterDrag(key, currentRenderWidth);
|
|
221
|
+
}
|
|
222
|
+
|
|
223
|
+
return _objectSpread(_objectSpread({}, getHeaderProps(column).style), {}, {
|
|
224
|
+
width: getValidWidthByNumber(currentRenderWidth)
|
|
225
|
+
});
|
|
226
|
+
};
|
|
227
|
+
|
|
228
|
+
return /*#__PURE__*/React.createElement("div", {
|
|
229
|
+
className: "".concat(prefixCls, "-thead"),
|
|
230
|
+
style: {
|
|
231
|
+
width: tableContentWidth
|
|
232
|
+
}
|
|
233
|
+
}, headerGroups.map(function (headerGroup) {
|
|
234
|
+
var _headerGroup$getHeade = headerGroup.getHeaderGroupProps(),
|
|
235
|
+
style = _headerGroup$getHeade.style,
|
|
236
|
+
headerGroupProps = _objectWithoutProperties(_headerGroup$getHeade, _excluded);
|
|
237
|
+
|
|
238
|
+
return /*#__PURE__*/React.createElement("div", Object.assign({}, headerGroupProps, {
|
|
239
|
+
className: "".concat(prefixCls, "-row")
|
|
240
|
+
}), headerGroup.headers.map(function (column, index) {
|
|
241
|
+
var barProps = canResizeColumn ? column.getResizerProps() : {};
|
|
242
|
+
var headCellStyle = handleStyleAndReturn(column, index);
|
|
243
|
+
return /*#__PURE__*/React.createElement("div", {
|
|
244
|
+
className: classnames(_defineProperty({}, "".concat(prefixCls, "-cell-sorting"), column.id === sortDirection.id), "".concat(prefixCls, "-cell")),
|
|
245
|
+
style: headCellStyle,
|
|
246
|
+
key: column.id
|
|
247
|
+
}, /*#__PURE__*/React.createElement("div", Object.assign({
|
|
248
|
+
className: "".concat(prefixCls, "-cell-content")
|
|
249
|
+
}, getHeaderProps(column), {
|
|
250
|
+
style: {
|
|
251
|
+
width: '100%'
|
|
252
|
+
}
|
|
253
|
+
}), /*#__PURE__*/React.createElement(React.Fragment, null, column.render('Header'), /*#__PURE__*/React.createElement(SortIcons, {
|
|
254
|
+
id: column.id
|
|
255
|
+
}))), /*#__PURE__*/React.createElement("div", Object.assign({}, barProps, {
|
|
256
|
+
className: classnames(_defineProperty({}, "".concat(prefixCls, "-dragBar"), canResizeColumn), "".concat(prefixCls, "-bar"))
|
|
257
|
+
})));
|
|
258
|
+
}));
|
|
259
|
+
}));
|
|
260
|
+
}
|
|
261
|
+
|
|
262
|
+
export default TableHead;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
export declare type Updater<State> = (prev: State) => State;
|
|
2
|
+
/**
|
|
3
|
+
* Execute code before next frame but async
|
|
4
|
+
*/
|
|
5
|
+
export declare function useLayoutState<State>(defaultState: State): [State, (updater: Updater<State>) => void];
|
|
6
|
+
/** Lock frame, when frame pass reset the lock. */
|
|
7
|
+
export declare function useTimeoutLock<State>(defaultState?: State): [(state: State) => void, () => State];
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
|
|
2
|
+
|
|
3
|
+
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."); }
|
|
4
|
+
|
|
5
|
+
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); }
|
|
6
|
+
|
|
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
|
+
|
|
9
|
+
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; }
|
|
10
|
+
|
|
11
|
+
function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
|
|
12
|
+
|
|
13
|
+
// @ts-nocheck
|
|
14
|
+
import { useRef, useState, useEffect } from 'react';
|
|
15
|
+
/**
|
|
16
|
+
* Execute code before next frame but async
|
|
17
|
+
*/
|
|
18
|
+
|
|
19
|
+
export function useLayoutState(defaultState) {
|
|
20
|
+
var stateRef = useRef(defaultState);
|
|
21
|
+
|
|
22
|
+
var _useState = useState({}),
|
|
23
|
+
_useState2 = _slicedToArray(_useState, 2),
|
|
24
|
+
forceUpdate = _useState2[1];
|
|
25
|
+
|
|
26
|
+
var lastPromiseRef = useRef(null);
|
|
27
|
+
var updateBatchRef = useRef([]);
|
|
28
|
+
|
|
29
|
+
function setFrameState(updater) {
|
|
30
|
+
updateBatchRef.current.push(updater);
|
|
31
|
+
var promise = Promise.resolve(); // @ts-ignore;
|
|
32
|
+
|
|
33
|
+
lastPromiseRef.current = promise;
|
|
34
|
+
promise.then(function () {
|
|
35
|
+
if (lastPromiseRef.current === promise) {
|
|
36
|
+
var prevBatch = updateBatchRef.current;
|
|
37
|
+
var prevState = stateRef.current;
|
|
38
|
+
updateBatchRef.current = [];
|
|
39
|
+
prevBatch.forEach(function (batchUpdater) {
|
|
40
|
+
stateRef.current = batchUpdater(stateRef.current);
|
|
41
|
+
}); // @ts-ignore;
|
|
42
|
+
|
|
43
|
+
lastPromiseRef.current = null;
|
|
44
|
+
|
|
45
|
+
if (prevState !== stateRef.current) {
|
|
46
|
+
forceUpdate({});
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
});
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
useEffect(function () {
|
|
53
|
+
return function () {
|
|
54
|
+
// @ts-ignore;
|
|
55
|
+
lastPromiseRef.current = null;
|
|
56
|
+
};
|
|
57
|
+
}, []);
|
|
58
|
+
return [stateRef.current, setFrameState];
|
|
59
|
+
}
|
|
60
|
+
/** Lock frame, when frame pass reset the lock. */
|
|
61
|
+
|
|
62
|
+
export function useTimeoutLock(defaultState) {
|
|
63
|
+
var frameRef = useRef(defaultState || null);
|
|
64
|
+
var timeoutRef = useRef();
|
|
65
|
+
var TIMEOUT_DELAY = 50;
|
|
66
|
+
|
|
67
|
+
function cleanUp() {
|
|
68
|
+
window.clearTimeout(timeoutRef.current);
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
function setState(newState) {
|
|
72
|
+
// @ts-ignore;
|
|
73
|
+
frameRef.current = newState;
|
|
74
|
+
cleanUp();
|
|
75
|
+
timeoutRef.current = window.setTimeout(function () {
|
|
76
|
+
// @ts-ignore;
|
|
77
|
+
frameRef.current = null;
|
|
78
|
+
timeoutRef.current = undefined;
|
|
79
|
+
}, TIMEOUT_DELAY);
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
function getState() {
|
|
83
|
+
return frameRef.current;
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
useEffect(function () {
|
|
87
|
+
return cleanUp;
|
|
88
|
+
}, []);
|
|
89
|
+
return [setState, getState];
|
|
90
|
+
}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { IColumn } from '../interface';
|
|
3
|
+
import { IWidthDetail } from '../utils';
|
|
4
|
+
import { Cell } from 'react-table';
|
|
5
|
+
import 'react-table/node_modules/@types/react';
|
|
6
|
+
interface IUseTableColumnProps<T> {
|
|
7
|
+
columnsWidthMapRef: React.MutableRefObject<Map<string, IWidthDetail> | undefined>;
|
|
8
|
+
columnsTotalWidthRef: React.MutableRefObject<number>;
|
|
9
|
+
columnsRef: React.MutableRefObject<IColumn<T>[]>;
|
|
10
|
+
tableClientWidth: number;
|
|
11
|
+
sortable?: boolean;
|
|
12
|
+
}
|
|
13
|
+
declare function useTableColumn<T extends object = {}>(props: IUseTableColumnProps<T>): {
|
|
14
|
+
width: number | undefined;
|
|
15
|
+
Header: string | (() => null);
|
|
16
|
+
disableSortBy: boolean;
|
|
17
|
+
accessor: string;
|
|
18
|
+
Cell: ({ row, value }: Cell) => any;
|
|
19
|
+
title: string | null;
|
|
20
|
+
dataIndex: string;
|
|
21
|
+
render?: ((value: any, row: T, index: number) => React.ReactNode) | undefined;
|
|
22
|
+
minWidth?: number | undefined;
|
|
23
|
+
sorter?: boolean | "string" | "number" | "basic" | "datetime" | "alphanumeric" | undefined;
|
|
24
|
+
sortOrder?: false | "ascend" | "descend" | undefined;
|
|
25
|
+
sortDirections?: ("ascend" | "descend")[] | undefined;
|
|
26
|
+
selected?: boolean | undefined;
|
|
27
|
+
}[];
|
|
28
|
+
export default useTableColumn;
|
|
@@ -0,0 +1,53 @@
|
|
|
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
|
+
import { useMemo } from 'react';
|
|
8
|
+
import { getColumnsWidthMap } from '../utils';
|
|
9
|
+
import message from '../../message';
|
|
10
|
+
import 'react-table/node_modules/@types/react';
|
|
11
|
+
|
|
12
|
+
function useTableColumn(props) {
|
|
13
|
+
var columnsWidthMapRef = props.columnsWidthMapRef,
|
|
14
|
+
columnsTotalWidthRef = props.columnsTotalWidthRef,
|
|
15
|
+
columnsRef = props.columnsRef,
|
|
16
|
+
tableClientWidth = props.tableClientWidth,
|
|
17
|
+
sortable = props.sortable; // 转换外部传入的columns
|
|
18
|
+
|
|
19
|
+
var newColumns = useMemo(function () {
|
|
20
|
+
var _getColumnsWidthMap = getColumnsWidthMap(columnsRef.current, tableClientWidth, columnsWidthMapRef.current),
|
|
21
|
+
columnsWidthMap = _getColumnsWidthMap.columnsWidthMap,
|
|
22
|
+
totalColumnWidth = _getColumnsWidthMap.totalColumnWidth;
|
|
23
|
+
|
|
24
|
+
columnsWidthMapRef.current = columnsWidthMap;
|
|
25
|
+
columnsTotalWidthRef.current = totalColumnWidth;
|
|
26
|
+
return columnsRef.current.map(function (column, index) {
|
|
27
|
+
var _columnsWidthMapRef$c, _columnsWidthMapRef$c2;
|
|
28
|
+
|
|
29
|
+
var key = index.toString(); // 不设置dataIndex同时进行排序 则报错
|
|
30
|
+
|
|
31
|
+
if (!column.dataIndex === undefined && sortable) {
|
|
32
|
+
message.error('不支持未设置dataIndex时进行排序设置');
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
return _objectSpread(_objectSpread({}, column), {}, {
|
|
36
|
+
width: (_columnsWidthMapRef$c = columnsWidthMapRef.current) === null || _columnsWidthMapRef$c === void 0 ? void 0 : (_columnsWidthMapRef$c2 = _columnsWidthMapRef$c.get(key)) === null || _columnsWidthMapRef$c2 === void 0 ? void 0 : _columnsWidthMapRef$c2.width,
|
|
37
|
+
Header: column.title ? column.title : function () {
|
|
38
|
+
return null;
|
|
39
|
+
},
|
|
40
|
+
disableSortBy: !sortable || typeof column.sorter === 'boolean',
|
|
41
|
+
accessor: column.dataIndex,
|
|
42
|
+
Cell: function Cell(_ref) {
|
|
43
|
+
var row = _ref.row,
|
|
44
|
+
value = _ref.value;
|
|
45
|
+
return typeof column.render === 'function' ? column.render(value, row.original, row.index) : value;
|
|
46
|
+
}
|
|
47
|
+
});
|
|
48
|
+
});
|
|
49
|
+
}, [columnsRef, columnsTotalWidthRef, columnsWidthMapRef, sortable, tableClientWidth]);
|
|
50
|
+
return newColumns;
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
export default useTableColumn;
|
package/es/Table/interface.d.ts
CHANGED
|
@@ -9,7 +9,7 @@ export interface IColumn<RecordType> {
|
|
|
9
9
|
title: string | null;
|
|
10
10
|
dataIndex: string;
|
|
11
11
|
render?: (value: any, row: RecordType, index: number) => React.ReactNode;
|
|
12
|
-
width?: number;
|
|
12
|
+
width?: number | string;
|
|
13
13
|
minWidth?: number;
|
|
14
14
|
sorter?: boolean | 'string' | 'number' | 'basic' | 'datetime' | 'alphanumeric';
|
|
15
15
|
sortOrder?: TSortOrder;
|
|
@@ -20,7 +20,7 @@ export interface ITableProps<RecordType> {
|
|
|
20
20
|
columns: IColumn<RecordType>[];
|
|
21
21
|
data: RecordType[];
|
|
22
22
|
onRowSelected?: (row: RecordType) => void;
|
|
23
|
-
loadMore?: () =>
|
|
23
|
+
loadMore?: () => Promise<void>;
|
|
24
24
|
hasNextPage?: boolean;
|
|
25
25
|
loading?: boolean;
|
|
26
26
|
sortable?: boolean;
|
|
@@ -29,6 +29,7 @@ export interface ITableProps<RecordType> {
|
|
|
29
29
|
sortDirections?: Array<'ascend' | 'descend'>;
|
|
30
30
|
resizeColumn?: boolean;
|
|
31
31
|
showHeader?: boolean;
|
|
32
|
+
height?: string | number;
|
|
32
33
|
innerScroll?: boolean;
|
|
33
34
|
ref?: React.RefObject<unknown>;
|
|
34
35
|
scrollThreshold?: string | number;
|