@aloudata/aloudata-design 1.3.1 → 1.4.1

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 (67) hide show
  1. package/dist/Avatar/component/Avatar/index.d.ts +3 -3
  2. package/dist/Avatar/component/Avatar/index.js +2 -2
  3. package/dist/Avatar/index.js +1 -1
  4. package/dist/Checkbox/index.d.ts +3 -3
  5. package/dist/Checkbox/index.js +1 -1
  6. package/dist/DataPreviewTable/components/Body/Error.d.ts +9 -0
  7. package/dist/DataPreviewTable/components/Body/Error.js +17 -0
  8. package/dist/DataPreviewTable/components/Body/SkeletonBody.d.ts +12 -0
  9. package/dist/DataPreviewTable/components/Body/SkeletonBody.js +63 -0
  10. package/dist/DataPreviewTable/components/Body/index.d.ts +12 -0
  11. package/dist/DataPreviewTable/components/Body/index.js +52 -0
  12. package/dist/DataPreviewTable/components/DragBar/index.d.ts +8 -0
  13. package/dist/DataPreviewTable/components/DragBar/index.js +93 -0
  14. package/dist/DataPreviewTable/components/Header/index.d.ts +10 -0
  15. package/dist/DataPreviewTable/components/Header/index.js +68 -0
  16. package/dist/DataPreviewTable/constant.d.ts +6 -0
  17. package/dist/DataPreviewTable/constant.js +7 -0
  18. package/dist/DataPreviewTable/hooks/useDirection.d.ts +28 -0
  19. package/dist/DataPreviewTable/hooks/useDirection.js +281 -0
  20. package/dist/DataPreviewTable/index.d.ts +4 -0
  21. package/dist/DataPreviewTable/index.js +105 -0
  22. package/dist/DataPreviewTable/interface.d.ts +26 -0
  23. package/dist/DataPreviewTable/interface.js +1 -0
  24. package/dist/DataPreviewTable/style/index.d.ts +2 -0
  25. package/dist/DataPreviewTable/style/index.js +2 -0
  26. package/dist/DataPreviewTable/style/index.less +138 -0
  27. package/dist/DataPreviewTable/utils/findRange.d.ts +13 -0
  28. package/dist/DataPreviewTable/utils/findRange.js +86 -0
  29. package/dist/DoubleCircleIcon/index.d.ts +1 -1
  30. package/dist/Dropdown/index.js +1 -1
  31. package/dist/Form/index.d.ts +27 -7
  32. package/dist/Form/index.js +46 -7
  33. package/dist/Input/components/Input/index.d.ts +3 -2
  34. package/dist/Input/components/Input/index.js +6 -4
  35. package/dist/Menu/SubMenu.d.ts +1 -1
  36. package/dist/Menu/SubMenu.js +1 -1
  37. package/dist/Progress/index.d.ts +13 -3
  38. package/dist/Progress/index.js +88 -3
  39. package/dist/Progress/style/index.less +56 -0
  40. package/dist/Radio/components/Group/index.d.ts +1 -1
  41. package/dist/ScrollArea/index.d.ts +11 -0
  42. package/dist/ScrollArea/index.js +49 -0
  43. package/dist/ScrollArea/style/index.d.ts +2 -0
  44. package/dist/ScrollArea/style/index.js +2 -0
  45. package/dist/ScrollArea/style/index.less +48 -0
  46. package/dist/Select/components/MultipleOption.d.ts +1 -1
  47. package/dist/Select/components/SingleOption.d.ts +1 -1
  48. package/dist/Select/index.d.ts +1 -0
  49. package/dist/Select/index.js +64 -26
  50. package/dist/Skeleton/index.d.ts +2 -2
  51. package/dist/Skeleton/index.js +1 -1
  52. package/dist/Space/index.d.ts +2 -2
  53. package/dist/Space/index.js +1 -1
  54. package/dist/Switch/index.d.ts +2 -2
  55. package/dist/Switch/index.js +1 -1
  56. package/dist/Tree/index.d.ts +5 -5
  57. package/dist/Upload/index.d.ts +2 -2
  58. package/dist/index.d.ts +3 -1
  59. package/dist/index.js +2 -0
  60. package/dist/locale/en_US.js +3 -3
  61. package/dist/locale/zh_CN.js +3 -3
  62. package/dist/locale-provider/LocaleReceiver.d.ts +2 -2
  63. package/dist/locale-provider/LocaleReceiver.js +1 -1
  64. package/dist/locale-provider/index.d.ts +7 -7
  65. package/dist/locale-provider/index.js +2 -2
  66. package/dist/notification/index.d.ts +1 -1
  67. package/package.json +2 -1
@@ -0,0 +1,281 @@
1
+ function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e2) { throw _e2; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e3) { didErr = true; err = _e3; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }
2
+
3
+ function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
4
+
5
+ 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."); }
6
+
7
+ 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); }
8
+
9
+ 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; }
10
+
11
+ 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; }
12
+
13
+ function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
14
+
15
+ import { useCallback, useEffect, useMemo, useRef, useState } from 'react';
16
+ import { CELL_HEIGHT, DEFAULT_COLUMN_WIDTH, PRE_RENDER_RANGE } from "../constant";
17
+ import { findFirstIndex } from "../utils/findRange";
18
+ export var EScrollHorizontalDirection;
19
+
20
+ (function (EScrollHorizontalDirection) {
21
+ EScrollHorizontalDirection["SCROLL_TO_LEFT"] = "toLeft";
22
+ EScrollHorizontalDirection["SCROLL_TO_RIGHT"] = "toRight";
23
+ })(EScrollHorizontalDirection || (EScrollHorizontalDirection = {}));
24
+
25
+ export var EScrollVerticalDirection;
26
+
27
+ (function (EScrollVerticalDirection) {
28
+ EScrollVerticalDirection["SCROLL_TO_TOP"] = "toTop";
29
+ EScrollVerticalDirection["SCROLL_TO_BOTTOM"] = "toBottom";
30
+ })(EScrollVerticalDirection || (EScrollVerticalDirection = {}));
31
+
32
+ export default function useDirection(columns, wrapRef) {
33
+ var prevScrollData = useRef({
34
+ scrollTop: 0,
35
+ scrollLeft: 0,
36
+ direction: {
37
+ vertical: EScrollVerticalDirection.SCROLL_TO_BOTTOM,
38
+ horizontal: EScrollHorizontalDirection.SCROLL_TO_RIGHT,
39
+ current: 'init'
40
+ }
41
+ });
42
+
43
+ var _useState = useState([]),
44
+ _useState2 = _slicedToArray(_useState, 2),
45
+ columnsWidth = _useState2[0],
46
+ setColumnsWidth = _useState2[1];
47
+
48
+ var _useState3 = useState([0, 0]),
49
+ _useState4 = _slicedToArray(_useState3, 2),
50
+ columnRange = _useState4[0],
51
+ setColumnRange = _useState4[1];
52
+
53
+ var _useState5 = useState([0, 0]),
54
+ _useState6 = _slicedToArray(_useState5, 2),
55
+ rowRange = _useState6[0],
56
+ setRowRange = _useState6[1];
57
+
58
+ var getScrollDirection = useCallback(function (currentScrollTop, currentScrollLeft) {
59
+ var _prevScrollData$curre = prevScrollData.current,
60
+ preScrollTop = _prevScrollData$curre.scrollTop,
61
+ preScrollLeft = _prevScrollData$curre.scrollLeft;
62
+
63
+ if (currentScrollLeft > preScrollLeft) {
64
+ var direction = {
65
+ vertical: EScrollVerticalDirection.SCROLL_TO_BOTTOM,
66
+ horizontal: EScrollHorizontalDirection.SCROLL_TO_RIGHT,
67
+ current: EScrollHorizontalDirection.SCROLL_TO_RIGHT
68
+ };
69
+ prevScrollData.current = {
70
+ scrollTop: currentScrollTop,
71
+ scrollLeft: currentScrollLeft,
72
+ direction: direction
73
+ };
74
+ return direction;
75
+ } else if (currentScrollLeft < preScrollLeft) {
76
+ var _direction = {
77
+ vertical: EScrollVerticalDirection.SCROLL_TO_BOTTOM,
78
+ horizontal: EScrollHorizontalDirection.SCROLL_TO_LEFT,
79
+ current: EScrollHorizontalDirection.SCROLL_TO_LEFT
80
+ };
81
+ prevScrollData.current = {
82
+ scrollTop: currentScrollTop,
83
+ scrollLeft: currentScrollLeft,
84
+ direction: _direction
85
+ };
86
+ return _direction;
87
+ } else if (currentScrollTop > preScrollTop) {
88
+ var _direction2 = {
89
+ vertical: EScrollVerticalDirection.SCROLL_TO_BOTTOM,
90
+ horizontal: EScrollHorizontalDirection.SCROLL_TO_RIGHT,
91
+ current: EScrollVerticalDirection.SCROLL_TO_BOTTOM
92
+ };
93
+ prevScrollData.current = {
94
+ scrollTop: currentScrollTop,
95
+ scrollLeft: currentScrollLeft,
96
+ direction: _direction2
97
+ };
98
+ return _direction2;
99
+ } else if (currentScrollTop < preScrollTop) {
100
+ var _direction3 = {
101
+ vertical: EScrollVerticalDirection.SCROLL_TO_TOP,
102
+ horizontal: EScrollHorizontalDirection.SCROLL_TO_RIGHT,
103
+ current: EScrollVerticalDirection.SCROLL_TO_TOP
104
+ };
105
+ prevScrollData.current = {
106
+ scrollTop: currentScrollTop,
107
+ scrollLeft: currentScrollLeft,
108
+ direction: _direction3
109
+ };
110
+ return _direction3;
111
+ } else {
112
+ return prevScrollData.current.direction;
113
+ }
114
+ }, []);
115
+ var columnsOffsets = useMemo(function () {
116
+ var offset = 0;
117
+ return columnsWidth.map(function (width) {
118
+ var currentOffset = offset;
119
+ offset += width;
120
+ return currentOffset;
121
+ });
122
+ }, [columnsWidth]);
123
+ var setRange = useCallback(function (scrollTop, scrollLeft) {
124
+ var direction = getScrollDirection(scrollTop, scrollLeft);
125
+ var current = direction.current;
126
+
127
+ if (current === EScrollHorizontalDirection.SCROLL_TO_LEFT) {
128
+ var _wrapRef$current;
129
+
130
+ // 往左滚动
131
+ var wrapWidth = ((_wrapRef$current = wrapRef.current) === null || _wrapRef$current === void 0 ? void 0 : _wrapRef$current.clientWidth) || 0;
132
+ setColumnRange(function (prev) {
133
+ var _prev = _slicedToArray(prev, 2),
134
+ start = _prev[0],
135
+ end = _prev[1];
136
+
137
+ var firstIndex = findFirstIndex(columnsOffsets, scrollLeft - PRE_RENDER_RANGE);
138
+ var lastIndex = findFirstIndex(columnsOffsets, scrollLeft + wrapWidth);
139
+
140
+ if (firstIndex === start && lastIndex === end) {
141
+ return prev;
142
+ }
143
+
144
+ return [firstIndex, lastIndex + 1];
145
+ });
146
+ }
147
+
148
+ if (current === EScrollHorizontalDirection.SCROLL_TO_RIGHT || current === 'init') {
149
+ var _wrapRef$current2;
150
+
151
+ // 往右滚动
152
+ var _wrapWidth = ((_wrapRef$current2 = wrapRef.current) === null || _wrapRef$current2 === void 0 ? void 0 : _wrapRef$current2.clientWidth) || 0;
153
+
154
+ setColumnRange(function (prev) {
155
+ var _prev2 = _slicedToArray(prev, 2),
156
+ start = _prev2[0],
157
+ end = _prev2[1];
158
+
159
+ var firstIndex = findFirstIndex(columnsOffsets, scrollLeft);
160
+ var lastIndex = findFirstIndex(columnsOffsets, scrollLeft + PRE_RENDER_RANGE + _wrapWidth);
161
+
162
+ if (firstIndex === start && lastIndex === end) {
163
+ return prev;
164
+ }
165
+
166
+ return [firstIndex, lastIndex + 1];
167
+ });
168
+ }
169
+
170
+ if (current === EScrollVerticalDirection.SCROLL_TO_TOP) {
171
+ var _wrapRef$current3;
172
+
173
+ // 往上滚动
174
+ var wrapHeight = ((_wrapRef$current3 = wrapRef.current) === null || _wrapRef$current3 === void 0 ? void 0 : _wrapRef$current3.clientHeight) || 0;
175
+ var firstIndex = Math.floor((scrollTop - PRE_RENDER_RANGE) / CELL_HEIGHT);
176
+
177
+ if (firstIndex < 0) {
178
+ firstIndex = 0;
179
+ }
180
+
181
+ var lastIndex = Math.ceil((scrollTop + wrapHeight) / CELL_HEIGHT) + 1;
182
+ setRowRange(function (prev) {
183
+ var _prev3 = _slicedToArray(prev, 2),
184
+ start = _prev3[0],
185
+ end = _prev3[1];
186
+
187
+ if (firstIndex === start && lastIndex === end) {
188
+ return prev;
189
+ }
190
+
191
+ return [firstIndex, lastIndex + 1];
192
+ });
193
+ }
194
+
195
+ if (current === EScrollVerticalDirection.SCROLL_TO_BOTTOM || current === 'init') {
196
+ var _wrapRef$current4;
197
+
198
+ // 往下滚动
199
+ var _wrapHeight = ((_wrapRef$current4 = wrapRef.current) === null || _wrapRef$current4 === void 0 ? void 0 : _wrapRef$current4.clientHeight) || 0;
200
+
201
+ var _firstIndex = Math.floor(scrollTop / CELL_HEIGHT);
202
+
203
+ var _lastIndex = Math.ceil((scrollTop + _wrapHeight + PRE_RENDER_RANGE) / CELL_HEIGHT) + 1;
204
+
205
+ setRowRange(function (prev) {
206
+ var _prev4 = _slicedToArray(prev, 2),
207
+ start = _prev4[0],
208
+ end = _prev4[1];
209
+
210
+ if (_firstIndex === start && _lastIndex === end) {
211
+ return prev;
212
+ }
213
+
214
+ return [_firstIndex, _lastIndex + 1];
215
+ });
216
+ }
217
+ }, [columnsOffsets, getScrollDirection, wrapRef]);
218
+ var columnLayout = useMemo(function () {
219
+ var columnLayout = {};
220
+ var left = 0;
221
+ columns.forEach(function (column, index) {
222
+ var columnWidth = columnsWidth[index] || column.defaultWidth || DEFAULT_COLUMN_WIDTH;
223
+ columnLayout[column.id] = {
224
+ width: columnWidth,
225
+ left: left
226
+ };
227
+ left += columnWidth;
228
+ });
229
+ return columnLayout;
230
+ }, [columns, columnsWidth]);
231
+ useEffect(function () {
232
+ if (columnsWidth.length === 0 && columns.length > 0) {
233
+ var widths = columns.map(function (_ref) {
234
+ var defaultWidth = _ref.defaultWidth;
235
+ return defaultWidth || 100;
236
+ });
237
+ setColumnsWidth(widths);
238
+ }
239
+ }, [columns, columnsWidth]);
240
+ useEffect(function () {
241
+ var _wrapRef$current5, _wrapRef$current6;
242
+
243
+ setRange(((_wrapRef$current5 = wrapRef.current) === null || _wrapRef$current5 === void 0 ? void 0 : _wrapRef$current5.scrollTop) || 0, ((_wrapRef$current6 = wrapRef.current) === null || _wrapRef$current6 === void 0 ? void 0 : _wrapRef$current6.scrollLeft) || 0); // eslint-disable-next-line react-hooks/exhaustive-deps
244
+ }, [columnLayout, wrapRef]);
245
+ useEffect(function () {
246
+ var wrap = wrapRef.current;
247
+ var resizeObserver = new ResizeObserver(function (entries) {
248
+ var _iterator = _createForOfIteratorHelper(entries),
249
+ _step;
250
+
251
+ try {
252
+ for (_iterator.s(); !(_step = _iterator.n()).done;) {
253
+ var entry = _step.value;
254
+
255
+ if (entry.contentRect) {
256
+ setRange((wrap === null || wrap === void 0 ? void 0 : wrap.scrollTop) || 0, (wrap === null || wrap === void 0 ? void 0 : wrap.scrollLeft) || 0);
257
+ } else if (entry.contentBoxSize) {
258
+ setRange((wrap === null || wrap === void 0 ? void 0 : wrap.scrollTop) || 0, (wrap === null || wrap === void 0 ? void 0 : wrap.scrollLeft) || 0);
259
+ }
260
+ }
261
+ } catch (err) {
262
+ _iterator.e(err);
263
+ } finally {
264
+ _iterator.f();
265
+ }
266
+ });
267
+ resizeObserver.observe(wrap);
268
+ return function () {
269
+ resizeObserver.unobserve(wrap);
270
+ resizeObserver.disconnect();
271
+ };
272
+ }, [wrapRef, setRange]);
273
+ return {
274
+ setRange: setRange,
275
+ columnRange: columnRange,
276
+ rowRange: rowRange,
277
+ setColumnsWidth: setColumnsWidth,
278
+ columnLayout: columnLayout,
279
+ columnsWidth: columnsWidth
280
+ };
281
+ }
@@ -0,0 +1,4 @@
1
+ import React from 'react';
2
+ import { ITableProps } from './interface';
3
+ declare const _default: React.MemoExoticComponent<React.ForwardRefExoticComponent<ITableProps & React.RefAttributes<HTMLDivElement>>>;
4
+ export default _default;
@@ -0,0 +1,105 @@
1
+ import classNames from 'classnames';
2
+ import React, { forwardRef, memo, useEffect, useMemo, useRef } from 'react';
3
+ import Progress from "../Progress";
4
+ import ScrollArea from "../ScrollArea";
5
+ import Body from "./components/Body";
6
+ import Error from "./components/Body/Error";
7
+ import SkeletonBody from "./components/Body/SkeletonBody";
8
+ import Header from "./components/Header";
9
+ import { CELL_HEIGHT, HEADER_HEIGHT } from "./constant";
10
+ import useDirection from "./hooks/useDirection";
11
+
12
+ function DataPreviewTable(props, ref) {
13
+ var _wrapRef$current2;
14
+
15
+ var _props$columns = props.columns,
16
+ columns = _props$columns === void 0 ? [] : _props$columns,
17
+ _props$datasource = props.datasource,
18
+ datasource = _props$datasource === void 0 ? [] : _props$datasource,
19
+ width = props.width,
20
+ height = props.height,
21
+ loading = props.loading,
22
+ dataStatus = props.dataStatus,
23
+ _props$errorMsg = props.errorMsg,
24
+ errorMsg = _props$errorMsg === void 0 ? '加载失败' : _props$errorMsg;
25
+ var contentHeight = useMemo(function () {
26
+ return datasource.length * CELL_HEIGHT + HEADER_HEIGHT;
27
+ }, [datasource]);
28
+ var wrapRef = useRef(null);
29
+
30
+ var _useDirection = useDirection(columns, wrapRef),
31
+ columnRange = _useDirection.columnRange,
32
+ rowRange = _useDirection.rowRange,
33
+ columnsWidth = _useDirection.columnsWidth,
34
+ setRange = _useDirection.setRange,
35
+ columnLayout = _useDirection.columnLayout,
36
+ setColumnsWidth = _useDirection.setColumnsWidth;
37
+
38
+ var contentWidth = useMemo(function () {
39
+ return columnsWidth.reduce(function (sum, width) {
40
+ return sum + width;
41
+ }, 0);
42
+ }, [columnsWidth]);
43
+ useEffect(function () {
44
+ if (ref) {
45
+ if (typeof ref === 'function') {
46
+ ref(wrapRef.current);
47
+ }
48
+ }
49
+ }, [ref]);
50
+ var skeletonRows = useMemo(function () {
51
+ var _wrapRef$current;
52
+
53
+ var rows = Math.ceil((((_wrapRef$current = wrapRef.current) === null || _wrapRef$current === void 0 ? void 0 : _wrapRef$current.clientHeight) || 0 - HEADER_HEIGHT) / CELL_HEIGHT);
54
+ return rows - 1 < 0 ? 0 : rows - 1; // eslint-disable-next-line react-hooks/exhaustive-deps
55
+ }, [wrapRef.current]);
56
+ return /*#__PURE__*/React.createElement(ScrollArea, {
57
+ ref: wrapRef,
58
+ style: {
59
+ width: width,
60
+ height: height,
61
+ willChange: 'transform'
62
+ },
63
+ onViewportScroll: function onViewportScroll(e) {
64
+ var _ref = e.target,
65
+ scrollTop = _ref.scrollTop,
66
+ scrollLeft = _ref.scrollLeft;
67
+ setRange(scrollTop, scrollLeft);
68
+ },
69
+ className: classNames(props.className, 'ald-data-preview-table', {
70
+ 'ald-data-preview-table-show-skeleton': dataStatus === 'pending'
71
+ })
72
+ }, /*#__PURE__*/React.createElement(Progress, {
73
+ className: "ald-data-preview-progress",
74
+ loading: !!loading
75
+ }), /*#__PURE__*/React.createElement("div", {
76
+ style: {
77
+ height: dataStatus === 'pending' ? skeletonRows * CELL_HEIGHT + HEADER_HEIGHT : contentHeight,
78
+ width: contentWidth,
79
+ position: 'relative'
80
+ }
81
+ }, /*#__PURE__*/React.createElement(Header, {
82
+ columns: columns,
83
+ columnLayout: columnLayout,
84
+ setWidth: setColumnsWidth,
85
+ columnRange: columnRange
86
+ }), dataStatus === 'pending' && /*#__PURE__*/React.createElement(SkeletonBody, {
87
+ columns: columns,
88
+ columnRange: columnRange,
89
+ columnLayout: columnLayout,
90
+ rowRange: rowRange,
91
+ rows: skeletonRows
92
+ }), dataStatus === 'success' && /*#__PURE__*/React.createElement(Body, {
93
+ columns: columns,
94
+ columnRange: columnRange,
95
+ columnLayout: columnLayout,
96
+ datasource: datasource,
97
+ rowRange: rowRange
98
+ }), dataStatus === 'error' && /*#__PURE__*/React.createElement(Error, {
99
+ errorMsg: errorMsg,
100
+ wrapWidth: ((_wrapRef$current2 = wrapRef.current) === null || _wrapRef$current2 === void 0 ? void 0 : _wrapRef$current2.clientWidth) || 0,
101
+ contentWidth: contentWidth
102
+ })));
103
+ }
104
+
105
+ export default /*#__PURE__*/memo( /*#__PURE__*/forwardRef(DataPreviewTable));
@@ -0,0 +1,26 @@
1
+ import { CSSProperties } from 'react';
2
+ export interface ITableProps {
3
+ columns?: PreviewColumn[];
4
+ datasource?: TValue[][];
5
+ width?: CSSProperties['width'];
6
+ height?: CSSProperties['height'];
7
+ dataStatus?: 'pending' | 'success' | 'error';
8
+ loading?: boolean;
9
+ errorMsg?: string;
10
+ className?: string;
11
+ }
12
+ export interface PreviewColumn {
13
+ icon?: React.ReactNode;
14
+ name: string;
15
+ id: string;
16
+ defaultWidth?: number;
17
+ renderHeader?: (column: Omit<PreviewColumn, 'render'>) => React.ReactElement;
18
+ align?: 'left' | 'center' | 'right';
19
+ }
20
+ export declare type TValue = string | null | number | boolean;
21
+ export interface IColumnLayout {
22
+ [key: string]: {
23
+ width: number;
24
+ left: number;
25
+ };
26
+ }
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,2 @@
1
+ import '../../style';
2
+ import './index.less';
@@ -0,0 +1,2 @@
1
+ import "../../style";
2
+ import "./index.less";
@@ -0,0 +1,138 @@
1
+ @import '../../style/index.less';
2
+ @import '../../ScrollArea/style/index.less';
3
+ @import '../../Progress/style/index.less';
4
+ @import '../../Skeleton/style/index.less';
5
+
6
+ .ald-data-preview-table {
7
+ border: 1px solid #d5d5d5;
8
+ font-size: 12px;
9
+ position: relative;
10
+
11
+ * {
12
+ box-sizing: border-box;
13
+ }
14
+ }
15
+
16
+ .ald-data-preview-header {
17
+ height: 28px;
18
+ z-index: 2;
19
+ background-color: #e9e9e9;
20
+ width: 100%;
21
+ }
22
+
23
+ .ald-data-preview-header-cell {
24
+ height: 100%;
25
+ position: relative;
26
+ border: 1px solid #d5d5d5;
27
+ border-left: none;
28
+ border-top: none;
29
+ display: flex;
30
+ align-items: center;
31
+ box-sizing: border-box;
32
+ color: #171717;
33
+ font-weight: 500;
34
+
35
+ .ald-data-preview-header-default {
36
+ padding: 4px 13px 3px 14px;
37
+ height: 100%;
38
+ width: 100%;
39
+ line-height: 20px;
40
+
41
+ .ald-data-preview-header-left {
42
+ width: 20px;
43
+ height: 20px;
44
+ display: flex;
45
+ align-items: center;
46
+ justify-content: center;
47
+ font-size: 16px;
48
+ position: absolute;
49
+ left: 0;
50
+ z-index: 1;
51
+ color: #575757;
52
+ // background:rgb(0 0 0 / 0%)
53
+ }
54
+
55
+ .ald-data-preview-header-name {
56
+ text-align: center;
57
+ overflow: hidden;
58
+ text-overflow: ellipsis;
59
+ white-space: nowrap;
60
+ }
61
+
62
+ .ald-data-preview-header-right {
63
+ width: 20px;
64
+ height: 20px;
65
+ display: flex;
66
+ align-items: center;
67
+ justify-content: center;
68
+ font-size: 16px;
69
+ position: absolute;
70
+ right: 0;
71
+ z-index: 1;
72
+ }
73
+ }
74
+ }
75
+
76
+ .ald-data-preview-body-cell {
77
+ white-space: nowrap;
78
+ overflow: hidden;
79
+ border: 1px solid #e8e8e8;
80
+ border-left: none;
81
+ border-top: none;
82
+ padding-left: 4px;
83
+ padding-top: 2px;
84
+ padding-bottom: 1px;
85
+ line-height: 16px;
86
+ box-sizing: border-box;
87
+ font-style: normal;
88
+ font-weight: 400;
89
+ text-align: left;
90
+ }
91
+
92
+ .ald-data-preview-body-skeleton-cell {
93
+ display: flex;
94
+ align-items: center;
95
+ justify-content: center;
96
+ border: 1px solid #e8e8e8;
97
+ border-left: none;
98
+ border-top: none;
99
+ padding: 2px 3px 1px 4px;
100
+
101
+ .ant-skeleton-title {
102
+ margin: 0;
103
+ }
104
+ }
105
+
106
+ .ald-data-preview-header-drag-bar {
107
+ height: 100%;
108
+ width: 3px;
109
+ position: absolute;
110
+ right: 0;
111
+ top: 0;
112
+ z-index: 2;
113
+
114
+ &:hover {
115
+ cursor: col-resize;
116
+ background-color: @B60;
117
+ }
118
+
119
+ &.ald-data-preview-header-drag-bar-active {
120
+ background-color: @B60;
121
+ }
122
+ }
123
+
124
+ .ald-data-preview-progress {
125
+ position: absolute;
126
+ top: 0;
127
+ left: 0;
128
+ z-index: 3;
129
+ }
130
+
131
+ .ald-data-preview-table-error {
132
+ display: flex;
133
+ align-items: center;
134
+ justify-content: center;
135
+ font-size: 16px;
136
+ padding: 30px;
137
+ position: fixed;
138
+ }
@@ -0,0 +1,13 @@
1
+ /**
2
+ * @param arr 有序数组
3
+ * @param targetNumber 当前数字
4
+ * @returns 数组中第一个大于等于目标数字的index,最大为arr.length-1 如果数组为空,返回-1
5
+ */
6
+ export declare function findLastIndex(arr: number[], targetNumber: number): number;
7
+ /**
8
+ *
9
+ * @param arr 有序数组
10
+ * @param targetNumber 当前数字
11
+ * @returns 返回数组中第一个小于等于目标数字的index,用于查找起始位置 ,最小为0 如果数组为空返回-1
12
+ */
13
+ export declare function findFirstIndex(arr: number[], targetNumber: number): number;
@@ -0,0 +1,86 @@
1
+ import { UNDEFINED_INDEX } from "../constant";
2
+ var FIRST_INDEX = 0;
3
+ var BINARY_NUMBER = 2;
4
+ /**
5
+ * @param arr 有序数组
6
+ * @param targetNumber 当前数字
7
+ * @returns 数组中第一个大于等于目标数字的index,最大为arr.length-1 如果数组为空,返回-1
8
+ */
9
+
10
+ export function findLastIndex(arr, targetNumber) {
11
+ if (arr.length === 0) {
12
+ return UNDEFINED_INDEX;
13
+ }
14
+
15
+ var last = arr[arr.length - 1];
16
+
17
+ if (targetNumber >= last) {
18
+ return arr.length - 1;
19
+ }
20
+
21
+ var first = arr[FIRST_INDEX];
22
+
23
+ if (targetNumber <= first) {
24
+ return FIRST_INDEX;
25
+ }
26
+
27
+ var left = 0,
28
+ right = arr.length - 1;
29
+
30
+ while (left <= right) {
31
+ var midIndex = Math.floor((left + right) / BINARY_NUMBER);
32
+ var mid = arr[midIndex];
33
+
34
+ if (mid < targetNumber) {
35
+ left = midIndex + 1;
36
+ } else if (mid === targetNumber) {
37
+ return midIndex;
38
+ } else {
39
+ right = midIndex - 1;
40
+ }
41
+ }
42
+
43
+ return left;
44
+ }
45
+ /**
46
+ *
47
+ * @param arr 有序数组
48
+ * @param targetNumber 当前数字
49
+ * @returns 返回数组中第一个小于等于目标数字的index,用于查找起始位置 ,最小为0 如果数组为空返回-1
50
+ */
51
+
52
+ export function findFirstIndex(arr, targetNumber) {
53
+ if (arr.length === 0) {
54
+ return UNDEFINED_INDEX;
55
+ }
56
+
57
+ var last = arr[arr.length - 1];
58
+
59
+ if (targetNumber >= last) {
60
+ return arr.length - 1;
61
+ }
62
+
63
+ var first = arr[FIRST_INDEX];
64
+
65
+ if (targetNumber <= first) {
66
+ return FIRST_INDEX;
67
+ }
68
+
69
+ var left = 0,
70
+ right = arr.length - 1;
71
+
72
+ while (left <= right) {
73
+ var midIndex = Math.floor((left + right) / BINARY_NUMBER);
74
+ var mid = arr[midIndex];
75
+
76
+ if (mid > targetNumber) {
77
+ right = midIndex - 1;
78
+ } else if (mid === targetNumber) {
79
+ return midIndex;
80
+ } else {
81
+ left = midIndex + 1;
82
+ }
83
+ }
84
+
85
+ return right;
86
+ }
@@ -5,6 +5,6 @@ declare const DoubleCircleIcon: (props: {
5
5
  size?: number | undefined;
6
6
  innerColor?: string | undefined;
7
7
  children: React.ReactNode;
8
- type?: "error" | "warning" | "success" | "info" | undefined;
8
+ type?: "error" | "success" | "warning" | "info" | undefined;
9
9
  }) => JSX.Element;
10
10
  export default DoubleCircleIcon;
@@ -13,7 +13,7 @@ function _objectWithoutProperties(source, excluded) { if (source == null) return
13
13
  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; }
14
14
 
15
15
  import { Dropdown as AntdDropdown } from 'antd';
16
- import getPlacements from 'antd/es/_util/placements';
16
+ import getPlacements from 'antd/lib/_util/placements';
17
17
  import classNames from 'classnames';
18
18
  import React, { useMemo } from 'react';
19
19
  import { addPopupOffset } from "../Menu";