ds-web-all 1.0.1-beta.21 → 1.0.1-beta.22
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/lib/components/compose-manage/index.less +2 -2
- package/lib/components/compose-manage/vvv.js +444 -0
- package/lib/components/compose-tree/hooks/use-compose-tree.js +4 -2
- package/lib/components/compose-tree/index.js +4 -2
- package/lib/components/splitter/Splitter.js +20 -15
- package/lib/components/splitter/splitter.less +27 -5
- package/lib/components/splitter/useSize.js +2 -7
- package/lib/components/table/index.js +119 -14
- package/package.json +2 -2
|
@@ -0,0 +1,444 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.VList = VList;
|
|
7
|
+
exports.scrollTo = scrollTo;
|
|
8
|
+
var _react = _interopRequireWildcard(require("react"));
|
|
9
|
+
var _lodashEs = require("lodash-es");
|
|
10
|
+
require("./style.css");
|
|
11
|
+
var _excluded = ["children"],
|
|
12
|
+
_excluded2 = ["children", "style"],
|
|
13
|
+
_excluded3 = ["children"],
|
|
14
|
+
_excluded4 = ["style", "children"],
|
|
15
|
+
_excluded5 = ["width"];
|
|
16
|
+
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
|
|
17
|
+
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
|
|
18
|
+
function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
|
|
19
|
+
function _slicedToArray(r, e) { return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest(); }
|
|
20
|
+
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."); }
|
|
21
|
+
function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }
|
|
22
|
+
function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
|
|
23
|
+
function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t.return && (u = t.return(), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
|
|
24
|
+
function _arrayWithHoles(r) { if (Array.isArray(r)) return r; }
|
|
25
|
+
function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
|
|
26
|
+
function _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var s = Object.getOwnPropertySymbols(e); for (r = 0; r < s.length; r++) o = s[r], t.includes(o) || {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }
|
|
27
|
+
function _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (e.includes(n)) continue; t[n] = r[n]; } return t; }
|
|
28
|
+
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
29
|
+
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
30
|
+
function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
|
|
31
|
+
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; }
|
|
32
|
+
function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); } /* eslint-disable arrow-body-style */
|
|
33
|
+
// ==============全局常量 ================== //
|
|
34
|
+
var DEFAULT_VID = 'vtable';
|
|
35
|
+
var vidMap = new Map();
|
|
36
|
+
var debounceListRender;
|
|
37
|
+
|
|
38
|
+
// ===============reducer ============== //
|
|
39
|
+
var initialState = {
|
|
40
|
+
// 行高度
|
|
41
|
+
rowHeight: 0,
|
|
42
|
+
// 当前的scrollTop
|
|
43
|
+
curScrollTop: 0,
|
|
44
|
+
// 总行数
|
|
45
|
+
totalLen: 0
|
|
46
|
+
};
|
|
47
|
+
function reducer(state, action) {
|
|
48
|
+
var curScrollTop = action.curScrollTop,
|
|
49
|
+
rowHeight = action.rowHeight,
|
|
50
|
+
totalLen = action.totalLen,
|
|
51
|
+
ifScrollTopClear = action.ifScrollTopClear;
|
|
52
|
+
var stateScrollTop = state.curScrollTop;
|
|
53
|
+
switch (action.type) {
|
|
54
|
+
// 改变trs 即 改变渲染的列表trs
|
|
55
|
+
case 'changeTrs':
|
|
56
|
+
return _objectSpread(_objectSpread({}, state), {}, {
|
|
57
|
+
curScrollTop: curScrollTop
|
|
58
|
+
});
|
|
59
|
+
// 初始化每行的高度, 表格总高度, 渲染的条数
|
|
60
|
+
case 'initHeight':
|
|
61
|
+
return _objectSpread(_objectSpread({}, state), {}, {
|
|
62
|
+
rowHeight: rowHeight
|
|
63
|
+
});
|
|
64
|
+
// 更改totalLen
|
|
65
|
+
case 'changeTotalLen':
|
|
66
|
+
if (totalLen === 0) {
|
|
67
|
+
stateScrollTop = 0;
|
|
68
|
+
}
|
|
69
|
+
return _objectSpread(_objectSpread({}, state), {}, {
|
|
70
|
+
totalLen: totalLen,
|
|
71
|
+
curScrollTop: stateScrollTop
|
|
72
|
+
});
|
|
73
|
+
case 'reset':
|
|
74
|
+
return _objectSpread(_objectSpread({}, state), {}, {
|
|
75
|
+
curScrollTop: ifScrollTopClear ? 0 : state.curScrollTop
|
|
76
|
+
});
|
|
77
|
+
default:
|
|
78
|
+
throw new Error();
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
// ===============context ============== //
|
|
83
|
+
var ScrollContext = /*#__PURE__*/(0, _react.createContext)({
|
|
84
|
+
dispatch: undefined,
|
|
85
|
+
renderLen: 1,
|
|
86
|
+
start: 0,
|
|
87
|
+
offsetStart: 0,
|
|
88
|
+
// =============
|
|
89
|
+
rowHeight: initialState.rowHeight,
|
|
90
|
+
totalLen: 0,
|
|
91
|
+
vid: DEFAULT_VID
|
|
92
|
+
});
|
|
93
|
+
|
|
94
|
+
// =============组件 =================== //
|
|
95
|
+
|
|
96
|
+
function VCell(props) {
|
|
97
|
+
var children = props.children,
|
|
98
|
+
restProps = _objectWithoutProperties(props, _excluded);
|
|
99
|
+
return /*#__PURE__*/_react.default.createElement("td", restProps, /*#__PURE__*/_react.default.createElement("div", null, children));
|
|
100
|
+
}
|
|
101
|
+
function VRow(props, ref) {
|
|
102
|
+
var _useContext = (0, _react.useContext)(ScrollContext),
|
|
103
|
+
dispatch = _useContext.dispatch,
|
|
104
|
+
rowHeight = _useContext.rowHeight,
|
|
105
|
+
totalLen = _useContext.totalLen,
|
|
106
|
+
vid = _useContext.vid;
|
|
107
|
+
var children = props.children,
|
|
108
|
+
style = props.style,
|
|
109
|
+
restProps = _objectWithoutProperties(props, _excluded2);
|
|
110
|
+
var trRef = (0, _react.useRef)(null);
|
|
111
|
+
(0, _react.useEffect)(function () {
|
|
112
|
+
var initHeight = function initHeight(tempRef) {
|
|
113
|
+
var _tempRef$current;
|
|
114
|
+
if ((tempRef === null || tempRef === void 0 ? void 0 : (_tempRef$current = tempRef.current) === null || _tempRef$current === void 0 ? void 0 : _tempRef$current.offsetHeight) && !rowHeight && totalLen) {
|
|
115
|
+
var _tempRef$current$offs, _tempRef$current2;
|
|
116
|
+
var tempRowHeight = (_tempRef$current$offs = tempRef === null || tempRef === void 0 ? void 0 : (_tempRef$current2 = tempRef.current) === null || _tempRef$current2 === void 0 ? void 0 : _tempRef$current2.offsetHeight) !== null && _tempRef$current$offs !== void 0 ? _tempRef$current$offs : 0;
|
|
117
|
+
vidMap.set(vid, _objectSpread(_objectSpread({}, vidMap.get(vid)), {}, {
|
|
118
|
+
rowItemHeight: tempRowHeight
|
|
119
|
+
}));
|
|
120
|
+
dispatch({
|
|
121
|
+
type: 'initHeight',
|
|
122
|
+
rowHeight: tempRowHeight
|
|
123
|
+
});
|
|
124
|
+
}
|
|
125
|
+
};
|
|
126
|
+
initHeight(Object.prototype.hasOwnProperty.call(ref, 'current') ? ref : trRef);
|
|
127
|
+
}, [trRef, dispatch, rowHeight, totalLen, ref, vid]);
|
|
128
|
+
return /*#__PURE__*/_react.default.createElement("tr", _extends({}, restProps, {
|
|
129
|
+
ref: Object.prototype.hasOwnProperty.call(ref, 'current') ? ref : trRef,
|
|
130
|
+
style: _objectSpread(_objectSpread({}, style), {}, {
|
|
131
|
+
height: rowHeight || 'auto',
|
|
132
|
+
boxSizing: 'border-box'
|
|
133
|
+
})
|
|
134
|
+
}), children);
|
|
135
|
+
}
|
|
136
|
+
function VWrapper(props) {
|
|
137
|
+
var children = props.children,
|
|
138
|
+
restProps = _objectWithoutProperties(props, _excluded3);
|
|
139
|
+
var _useContext2 = (0, _react.useContext)(ScrollContext),
|
|
140
|
+
renderLen = _useContext2.renderLen,
|
|
141
|
+
start = _useContext2.start,
|
|
142
|
+
dispatch = _useContext2.dispatch,
|
|
143
|
+
vid = _useContext2.vid,
|
|
144
|
+
totalLen = _useContext2.totalLen;
|
|
145
|
+
var contents = (0, _react.useMemo)(function () {
|
|
146
|
+
return children[1];
|
|
147
|
+
}, [children]);
|
|
148
|
+
var contentsLen = (0, _react.useMemo)(function () {
|
|
149
|
+
var _contents$length;
|
|
150
|
+
return (_contents$length = contents === null || contents === void 0 ? void 0 : contents.length) !== null && _contents$length !== void 0 ? _contents$length : 0;
|
|
151
|
+
}, [contents]);
|
|
152
|
+
(0, _react.useEffect)(function () {
|
|
153
|
+
if (totalLen !== contentsLen) {
|
|
154
|
+
dispatch({
|
|
155
|
+
type: 'changeTotalLen',
|
|
156
|
+
totalLen: contentsLen !== null && contentsLen !== void 0 ? contentsLen : 0
|
|
157
|
+
});
|
|
158
|
+
}
|
|
159
|
+
}, [contentsLen, dispatch, vid, totalLen]);
|
|
160
|
+
var tempNode = null;
|
|
161
|
+
if (Array.isArray(contents) && contents.length) {
|
|
162
|
+
tempNode = [children[0], contents.slice(start, start + (renderLen !== null && renderLen !== void 0 ? renderLen : 1)).map(function (item) {
|
|
163
|
+
if (Array.isArray(item)) {
|
|
164
|
+
// 兼容antd v4.3.5 --- rc-table 7.8.1及以下
|
|
165
|
+
return item[0];
|
|
166
|
+
}
|
|
167
|
+
// 处理antd ^v4.4.0 --- rc-table ^7.8.2
|
|
168
|
+
return item;
|
|
169
|
+
})];
|
|
170
|
+
} else {
|
|
171
|
+
tempNode = children;
|
|
172
|
+
}
|
|
173
|
+
return /*#__PURE__*/_react.default.createElement("tbody", restProps, tempNode);
|
|
174
|
+
}
|
|
175
|
+
function VTable(props, otherParams) {
|
|
176
|
+
var _children$1$props$dat, _children$, _children$$props, _children$$props$data, _vidMap$get2;
|
|
177
|
+
var style = props.style,
|
|
178
|
+
children = props.children,
|
|
179
|
+
rest = _objectWithoutProperties(props, _excluded4);
|
|
180
|
+
var width = style.width,
|
|
181
|
+
rest_style = _objectWithoutProperties(style, _excluded5);
|
|
182
|
+
var _ref = otherParams !== null && otherParams !== void 0 ? otherParams : {},
|
|
183
|
+
vid = _ref.vid,
|
|
184
|
+
scrollY = _ref.scrollY,
|
|
185
|
+
reachEnd = _ref.reachEnd,
|
|
186
|
+
onScroll = _ref.onScroll,
|
|
187
|
+
resetScrollTopWhenDataChange = _ref.resetScrollTopWhenDataChange;
|
|
188
|
+
var _useReducer = (0, _react.useReducer)(reducer, initialState),
|
|
189
|
+
_useReducer2 = _slicedToArray(_useReducer, 2),
|
|
190
|
+
state = _useReducer2[0],
|
|
191
|
+
dispatch = _useReducer2[1];
|
|
192
|
+
var wrap_tableRef = (0, _react.useRef)(null);
|
|
193
|
+
var tableRef = (0, _react.useRef)(null);
|
|
194
|
+
|
|
195
|
+
// 数据的总条数
|
|
196
|
+
var _useState = (0, _react.useState)((_children$1$props$dat = (_children$ = children[1]) === null || _children$ === void 0 ? void 0 : (_children$$props = _children$.props) === null || _children$$props === void 0 ? void 0 : (_children$$props$data = _children$$props.data) === null || _children$$props$data === void 0 ? void 0 : _children$$props$data.length) !== null && _children$1$props$dat !== void 0 ? _children$1$props$dat : 0),
|
|
197
|
+
_useState2 = _slicedToArray(_useState, 2),
|
|
198
|
+
totalLen = _useState2[0],
|
|
199
|
+
setTotalLen = _useState2[1];
|
|
200
|
+
(0, _react.useEffect)(function () {
|
|
201
|
+
setTotalLen(state.totalLen);
|
|
202
|
+
}, [state.totalLen]);
|
|
203
|
+
|
|
204
|
+
// 组件卸载的清除操作
|
|
205
|
+
(0, _react.useEffect)(function () {
|
|
206
|
+
return function () {
|
|
207
|
+
vidMap.delete(vid);
|
|
208
|
+
};
|
|
209
|
+
}, [vid]);
|
|
210
|
+
|
|
211
|
+
// table总高度
|
|
212
|
+
var tableHeight = (0, _react.useMemo)(function () {
|
|
213
|
+
var temp = 'auto';
|
|
214
|
+
if (state.rowHeight && totalLen) {
|
|
215
|
+
temp = state.rowHeight * totalLen;
|
|
216
|
+
}
|
|
217
|
+
return temp;
|
|
218
|
+
}, [state.rowHeight, totalLen]);
|
|
219
|
+
|
|
220
|
+
// table的scrollY值
|
|
221
|
+
var _useState3 = (0, _react.useState)(0),
|
|
222
|
+
_useState4 = _slicedToArray(_useState3, 2),
|
|
223
|
+
tableScrollY = _useState4[0],
|
|
224
|
+
setTableScrollY = _useState4[1];
|
|
225
|
+
|
|
226
|
+
// tableScrollY 随scrollY / tableHeight 进行变更
|
|
227
|
+
(0, _react.useEffect)(function () {
|
|
228
|
+
var temp = 0;
|
|
229
|
+
if (typeof scrollY === 'string') {
|
|
230
|
+
var _offsetHeight, _wrap_tableRef$curren, _wrap_tableRef$curren2;
|
|
231
|
+
temp = (_offsetHeight = (_wrap_tableRef$curren = wrap_tableRef.current) === null || _wrap_tableRef$curren === void 0 ? void 0 : (_wrap_tableRef$curren2 = _wrap_tableRef$curren.parentNode) === null || _wrap_tableRef$curren2 === void 0 ? void 0 : _wrap_tableRef$curren2.offsetHeight) !== null && _offsetHeight !== void 0 ? _offsetHeight : 0;
|
|
232
|
+
} else {
|
|
233
|
+
temp = scrollY;
|
|
234
|
+
}
|
|
235
|
+
|
|
236
|
+
// if (isNumber(tableHeight) && tableHeight < temp) {
|
|
237
|
+
// temp = tableHeight;
|
|
238
|
+
// }
|
|
239
|
+
|
|
240
|
+
// 处理tableScrollY <= 0的情况
|
|
241
|
+
if (temp <= 0) {
|
|
242
|
+
temp = 0;
|
|
243
|
+
}
|
|
244
|
+
setTableScrollY(temp);
|
|
245
|
+
}, [scrollY, tableHeight]);
|
|
246
|
+
|
|
247
|
+
// 渲染的条数
|
|
248
|
+
var renderLen = (0, _react.useMemo)(function () {
|
|
249
|
+
var temp = 1;
|
|
250
|
+
if (state.rowHeight && totalLen && tableScrollY) {
|
|
251
|
+
if (tableScrollY <= 0) {
|
|
252
|
+
temp = 0;
|
|
253
|
+
} else {
|
|
254
|
+
var tempRenderLen = (tableScrollY / state.rowHeight | 0) + 1 + 2;
|
|
255
|
+
// console.log('tempRenderLen', tempRenderLen)
|
|
256
|
+
// temp = tempRenderLen > totalLen ? totalLen : tempRenderLen;
|
|
257
|
+
temp = tempRenderLen;
|
|
258
|
+
}
|
|
259
|
+
}
|
|
260
|
+
return temp;
|
|
261
|
+
}, [state.rowHeight, totalLen, tableScrollY]);
|
|
262
|
+
|
|
263
|
+
// 渲染中的第一条
|
|
264
|
+
var start = state.rowHeight ? state.curScrollTop / state.rowHeight | 0 : 0;
|
|
265
|
+
|
|
266
|
+
// 偏移量
|
|
267
|
+
var offsetStart = state.rowHeight ? state.curScrollTop % state.rowHeight : 0;
|
|
268
|
+
|
|
269
|
+
// 用来优化向上滚动出现的空白
|
|
270
|
+
if (state.curScrollTop && state.rowHeight && state.curScrollTop > state.rowHeight) {
|
|
271
|
+
start -= 1;
|
|
272
|
+
offsetStart += state.rowHeight;
|
|
273
|
+
} else {
|
|
274
|
+
start = 0;
|
|
275
|
+
}
|
|
276
|
+
|
|
277
|
+
// 数据变更 操作scrollTop
|
|
278
|
+
(0, _react.useEffect)(function () {
|
|
279
|
+
var _wrap_tableRef$curren3;
|
|
280
|
+
var scrollNode = (_wrap_tableRef$curren3 = wrap_tableRef.current) === null || _wrap_tableRef$curren3 === void 0 ? void 0 : _wrap_tableRef$curren3.parentNode;
|
|
281
|
+
if (resetScrollTopWhenDataChange) {
|
|
282
|
+
// 重置scrollTop
|
|
283
|
+
if (scrollNode) {
|
|
284
|
+
scrollNode.scrollTop = 0;
|
|
285
|
+
}
|
|
286
|
+
dispatch({
|
|
287
|
+
type: 'reset',
|
|
288
|
+
ifScrollTopClear: true
|
|
289
|
+
});
|
|
290
|
+
} else {
|
|
291
|
+
// 不重置scrollTop 不清空curScrollTop
|
|
292
|
+
dispatch({
|
|
293
|
+
type: 'reset',
|
|
294
|
+
ifScrollTopClear: false
|
|
295
|
+
});
|
|
296
|
+
}
|
|
297
|
+
if (vidMap.has(vid)) {
|
|
298
|
+
vidMap.set(vid, _objectSpread(_objectSpread({}, vidMap.get(vid)), {}, {
|
|
299
|
+
scrollNode: scrollNode
|
|
300
|
+
}));
|
|
301
|
+
}
|
|
302
|
+
}, [totalLen, resetScrollTopWhenDataChange, vid, children]);
|
|
303
|
+
(0, _react.useEffect)(function () {
|
|
304
|
+
var _wrap_tableRef$curren4;
|
|
305
|
+
var throttleScroll = (0, _lodashEs.throttle)(function (e) {
|
|
306
|
+
var _vidMap$get, _e$target$scrollTop, _e$target, _e$target$scrollHeigh, _e$target2, _e$target$clientHeigh, _e$target3;
|
|
307
|
+
var historyScrollHeight = (_vidMap$get = vidMap.get(vid)) === null || _vidMap$get === void 0 ? void 0 : _vidMap$get.scrollHeight;
|
|
308
|
+
var scrollTop = (_e$target$scrollTop = e === null || e === void 0 ? void 0 : (_e$target = e.target) === null || _e$target === void 0 ? void 0 : _e$target.scrollTop) !== null && _e$target$scrollTop !== void 0 ? _e$target$scrollTop : 0;
|
|
309
|
+
var scrollHeight = (_e$target$scrollHeigh = e === null || e === void 0 ? void 0 : (_e$target2 = e.target) === null || _e$target2 === void 0 ? void 0 : _e$target2.scrollHeight) !== null && _e$target$scrollHeigh !== void 0 ? _e$target$scrollHeigh : 0;
|
|
310
|
+
var clientHeight = (_e$target$clientHeigh = e === null || e === void 0 ? void 0 : (_e$target3 = e.target) === null || _e$target3 === void 0 ? void 0 : _e$target3.clientHeight) !== null && _e$target$clientHeigh !== void 0 ? _e$target$clientHeigh : 0;
|
|
311
|
+
|
|
312
|
+
// 到底了 没有滚动条就不会触发reachEnd. 建议设置scrolly高度少点或者数据量多点.
|
|
313
|
+
if (scrollTop === scrollHeight) {
|
|
314
|
+
// reachEnd && reachEnd()
|
|
315
|
+
} else if (scrollTop + clientHeight >= scrollHeight && historyScrollHeight !== scrollHeight) {
|
|
316
|
+
// 相同的tableData情况下, 上次reachEnd执行后, scrollHeight不变, 则不会再次请求reachEnd
|
|
317
|
+
vidMap.set(vid, _objectSpread(_objectSpread({}, vidMap.get(vid)), {}, {
|
|
318
|
+
scrollHeight: scrollHeight
|
|
319
|
+
}));
|
|
320
|
+
// 有滚动条的情况
|
|
321
|
+
// eslint-disable-next-line no-unused-expressions
|
|
322
|
+
reachEnd && reachEnd();
|
|
323
|
+
}
|
|
324
|
+
|
|
325
|
+
// eslint-disable-next-line no-unused-expressions
|
|
326
|
+
onScroll && onScroll();
|
|
327
|
+
|
|
328
|
+
// 若renderLen大于totalLen, 置空curScrollTop. => table paddingTop会置空.
|
|
329
|
+
dispatch({
|
|
330
|
+
type: 'changeTrs',
|
|
331
|
+
curScrollTop: renderLen <= totalLen ? scrollTop : 0,
|
|
332
|
+
vid: vid
|
|
333
|
+
});
|
|
334
|
+
}, 60);
|
|
335
|
+
var ref = wrap_tableRef === null || wrap_tableRef === void 0 ? void 0 : (_wrap_tableRef$curren4 = wrap_tableRef.current) === null || _wrap_tableRef$curren4 === void 0 ? void 0 : _wrap_tableRef$curren4.parentNode;
|
|
336
|
+
if (ref) {
|
|
337
|
+
ref.addEventListener('scroll', throttleScroll);
|
|
338
|
+
}
|
|
339
|
+
return function () {
|
|
340
|
+
ref.removeEventListener('scroll', throttleScroll);
|
|
341
|
+
};
|
|
342
|
+
}, [onScroll, reachEnd, renderLen, totalLen, vid]);
|
|
343
|
+
debounceListRender(start, renderLen);
|
|
344
|
+
return /*#__PURE__*/_react.default.createElement("div", {
|
|
345
|
+
className: "virtuallist",
|
|
346
|
+
ref: wrap_tableRef,
|
|
347
|
+
style: {
|
|
348
|
+
width: '100%',
|
|
349
|
+
position: 'relative',
|
|
350
|
+
height: tableHeight,
|
|
351
|
+
boxSizing: 'border-box',
|
|
352
|
+
paddingTop: state.curScrollTop
|
|
353
|
+
}
|
|
354
|
+
}, /*#__PURE__*/_react.default.createElement(ScrollContext.Provider, {
|
|
355
|
+
value: {
|
|
356
|
+
dispatch: dispatch,
|
|
357
|
+
rowHeight: vidMap === null || vidMap === void 0 ? void 0 : (_vidMap$get2 = vidMap.get(vid)) === null || _vidMap$get2 === void 0 ? void 0 : _vidMap$get2.rowItemHeight,
|
|
358
|
+
start: start,
|
|
359
|
+
offsetStart: offsetStart,
|
|
360
|
+
renderLen: renderLen,
|
|
361
|
+
totalLen: totalLen,
|
|
362
|
+
vid: vid
|
|
363
|
+
}
|
|
364
|
+
}, /*#__PURE__*/_react.default.createElement("table", _extends({}, rest, {
|
|
365
|
+
ref: tableRef,
|
|
366
|
+
style: _objectSpread(_objectSpread({}, rest_style), {}, {
|
|
367
|
+
width: width,
|
|
368
|
+
position: 'relative',
|
|
369
|
+
transform: "translateY(-".concat(offsetStart, "px)")
|
|
370
|
+
})
|
|
371
|
+
}), children)));
|
|
372
|
+
}
|
|
373
|
+
|
|
374
|
+
// ================导出===================
|
|
375
|
+
function VList(props) {
|
|
376
|
+
var _props$vid = props.vid,
|
|
377
|
+
vid = _props$vid === void 0 ? DEFAULT_VID : _props$vid,
|
|
378
|
+
height = props.height,
|
|
379
|
+
onReachEnd = props.onReachEnd,
|
|
380
|
+
onScroll = props.onScroll,
|
|
381
|
+
onListRender = props.onListRender,
|
|
382
|
+
debounceListRenderMS = props.debounceListRenderMS,
|
|
383
|
+
_props$resetTopWhenDa = props.resetTopWhenDataChange,
|
|
384
|
+
resetTopWhenDataChange = _props$resetTopWhenDa === void 0 ? true : _props$resetTopWhenDa;
|
|
385
|
+
var resetScrollTopWhenDataChange = onReachEnd ? false : resetTopWhenDataChange;
|
|
386
|
+
if (!vidMap.has(vid)) {
|
|
387
|
+
vidMap.set(vid, {
|
|
388
|
+
_id: vid
|
|
389
|
+
});
|
|
390
|
+
}
|
|
391
|
+
debounceListRender = onListRender ? (0, _lodashEs.debounce)(function (_start, _renderLen) {
|
|
392
|
+
onListRender({
|
|
393
|
+
start: _start,
|
|
394
|
+
renderLen: _renderLen
|
|
395
|
+
});
|
|
396
|
+
}, debounceListRenderMS !== null && debounceListRenderMS !== void 0 ? debounceListRenderMS : 300) : function () {};
|
|
397
|
+
return {
|
|
398
|
+
table: function table(p) {
|
|
399
|
+
return VTable(p, {
|
|
400
|
+
vid: vid,
|
|
401
|
+
scrollY: height,
|
|
402
|
+
reachEnd: onReachEnd,
|
|
403
|
+
onScroll: onScroll,
|
|
404
|
+
onListRender: onListRender,
|
|
405
|
+
resetScrollTopWhenDataChange: resetScrollTopWhenDataChange
|
|
406
|
+
});
|
|
407
|
+
},
|
|
408
|
+
body: {
|
|
409
|
+
wrapper: VWrapper,
|
|
410
|
+
row: VRow,
|
|
411
|
+
cell: VCell
|
|
412
|
+
}
|
|
413
|
+
};
|
|
414
|
+
}
|
|
415
|
+
function scrollTo(option) {
|
|
416
|
+
var row = option.row,
|
|
417
|
+
y = option.y,
|
|
418
|
+
_option$vid = option.vid,
|
|
419
|
+
vid = _option$vid === void 0 ? DEFAULT_VID : _option$vid;
|
|
420
|
+
try {
|
|
421
|
+
var _vidMap$get3 = vidMap.get(vid),
|
|
422
|
+
scrollNode = _vidMap$get3.scrollNode,
|
|
423
|
+
rowItemHeight = _vidMap$get3.rowItemHeight;
|
|
424
|
+
if (row) {
|
|
425
|
+
if (row - 1 > 0) {
|
|
426
|
+
scrollNode.scrollTop = (row - 1) * (rowItemHeight !== null && rowItemHeight !== void 0 ? rowItemHeight : 0);
|
|
427
|
+
} else {
|
|
428
|
+
scrollNode.scrollTop = 0;
|
|
429
|
+
}
|
|
430
|
+
} else {
|
|
431
|
+
scrollNode.scrollTop = y !== null && y !== void 0 ? y : 0;
|
|
432
|
+
}
|
|
433
|
+
return {
|
|
434
|
+
vid: vid,
|
|
435
|
+
rowItemHeight: rowItemHeight
|
|
436
|
+
};
|
|
437
|
+
} catch (e) {
|
|
438
|
+
console.error('dont call scrollTo before init table');
|
|
439
|
+
return {
|
|
440
|
+
vid: vid,
|
|
441
|
+
rowItemHeight: -1
|
|
442
|
+
};
|
|
443
|
+
}
|
|
444
|
+
}
|
|
@@ -78,7 +78,8 @@ var _default = exports.default = function _default(_ref2) {
|
|
|
78
78
|
} : _ref2$requestDataForm,
|
|
79
79
|
_ref2$moduleRoute = _ref2.moduleRoute,
|
|
80
80
|
moduleRoute = _ref2$moduleRoute === void 0 ? '\\*' : _ref2$moduleRoute,
|
|
81
|
-
dataSourceFormatter = _ref2.dataSourceFormatter
|
|
81
|
+
dataSourceFormatter = _ref2.dataSourceFormatter,
|
|
82
|
+
extraTransparentParams = _ref2.extraTransparentParams;
|
|
82
83
|
var match = (0, _reactRouterDom.useRouteMatch)();
|
|
83
84
|
var history = (0, _reactRouterDom.useHistory)();
|
|
84
85
|
var _useUnmounted = (0, _useUnmounted3.default)(),
|
|
@@ -634,7 +635,8 @@ var _default = exports.default = function _default(_ref2) {
|
|
|
634
635
|
generateUrlByTreePaths: generateUrlByTreePaths,
|
|
635
636
|
isInTree: true,
|
|
636
637
|
firstLoaded: firstLoaded,
|
|
637
|
-
updateDataSource: updateDataSource
|
|
638
|
+
updateDataSource: updateDataSource,
|
|
639
|
+
extraTransparentParams: extraTransparentParams
|
|
638
640
|
};
|
|
639
641
|
};
|
|
640
642
|
var ComposeTreeContext = exports.ComposeTreeContext = /*#__PURE__*/_react.default.createContext(null);
|
|
@@ -31,7 +31,7 @@ var _blank = require("../blank");
|
|
|
31
31
|
var _useComposeTree = _interopRequireWildcard(require("./hooks/use-compose-tree"));
|
|
32
32
|
require("./index.less");
|
|
33
33
|
var _excluded = ["onSelect", "onUserSelect", "routerConfig", "treeColWidth", "request", "renderSearchExtra", "groupTypeList", "typeKey", "renderTree"],
|
|
34
|
-
_excluded2 = ["request", "extendModuleMap", "firstLoadAll", "expandAllTree", "typeKey", "groupTypeList", "requestDataFormatter", "moduleRoute", "dataSourceFormatter"];
|
|
34
|
+
_excluded2 = ["request", "extendModuleMap", "firstLoadAll", "expandAllTree", "typeKey", "groupTypeList", "requestDataFormatter", "moduleRoute", "dataSourceFormatter", "extraTransparentParams"];
|
|
35
35
|
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
36
36
|
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
|
|
37
37
|
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
|
|
@@ -163,6 +163,7 @@ var _default = exports.default = /*#__PURE__*/(0, _react.forwardRef)(function (_
|
|
|
163
163
|
requestDataFormatter = _ref3.requestDataFormatter,
|
|
164
164
|
moduleRoute = _ref3.moduleRoute,
|
|
165
165
|
dataSourceFormatter = _ref3.dataSourceFormatter,
|
|
166
|
+
extraTransparentParams = _ref3.extraTransparentParams,
|
|
166
167
|
others = _objectWithoutProperties(_ref3, _excluded2);
|
|
167
168
|
var composeTreeContext = (0, _useComposeTree.default)({
|
|
168
169
|
request: {
|
|
@@ -175,7 +176,8 @@ var _default = exports.default = /*#__PURE__*/(0, _react.forwardRef)(function (_
|
|
|
175
176
|
groupTypeList: groupTypeList,
|
|
176
177
|
requestDataFormatter: requestDataFormatter,
|
|
177
178
|
moduleRoute: moduleRoute,
|
|
178
|
-
dataSourceFormatter: dataSourceFormatter
|
|
179
|
+
dataSourceFormatter: dataSourceFormatter,
|
|
180
|
+
extraTransparentParams: extraTransparentParams
|
|
179
181
|
});
|
|
180
182
|
(0, _react.useImperativeHandle)(ref, function () {
|
|
181
183
|
return {
|
|
@@ -41,6 +41,8 @@ var Splitter = function Splitter(_ref) {
|
|
|
41
41
|
_ref$disabledHideBar = _ref.disabledHideBar,
|
|
42
42
|
disabledHideBar = _ref$disabledHideBar === void 0 ? true : _ref$disabledHideBar,
|
|
43
43
|
className = _ref.className,
|
|
44
|
+
_ref$sizes = _ref.sizes,
|
|
45
|
+
sizes = _ref$sizes === void 0 ? [] : _ref$sizes,
|
|
44
46
|
style = _ref.style;
|
|
45
47
|
var splitterRef = (0, _react.useRef)(null);
|
|
46
48
|
var _useRefState = (0, _useRefState3.default)([]),
|
|
@@ -50,19 +52,22 @@ var Splitter = function Splitter(_ref) {
|
|
|
50
52
|
cacheSizesRef = _useRefState2[2];
|
|
51
53
|
var panels = (0, _react.useMemo)(function () {
|
|
52
54
|
return (Array.isArray(children) ? children : [children]).filter(_react.isValidElement).map(function (node, i) {
|
|
53
|
-
var _props$size;
|
|
54
55
|
var _ref2 = node,
|
|
55
56
|
props = _ref2.props;
|
|
56
|
-
return _objectSpread(
|
|
57
|
-
|
|
58
|
-
|
|
57
|
+
return _objectSpread({}, props);
|
|
58
|
+
});
|
|
59
|
+
}, [children]);
|
|
60
|
+
var propSizes = (0, _react.useMemo)(function () {
|
|
61
|
+
return panels.map(function (el, i) {
|
|
62
|
+
var _cacheSizes$i;
|
|
63
|
+
return (_cacheSizes$i = cacheSizes[i]) !== null && _cacheSizes$i !== void 0 ? _cacheSizes$i : sizes[i];
|
|
59
64
|
});
|
|
60
|
-
}, [cacheSizes,
|
|
65
|
+
}, [cacheSizes, sizes, panels]);
|
|
61
66
|
var _useState = (0, _react.useState)(0),
|
|
62
67
|
_useState2 = _slicedToArray(_useState, 2),
|
|
63
68
|
containerSize = _useState2[0],
|
|
64
69
|
setContainerSize = _useState2[1];
|
|
65
|
-
var _useSizes = (0, _useSize.default)(panels, containerSize),
|
|
70
|
+
var _useSizes = (0, _useSize.default)(panels, propSizes, containerSize),
|
|
66
71
|
panelSizes = _useSizes.panelSizes;
|
|
67
72
|
(0, _react.useEffect)(function () {
|
|
68
73
|
var observer = new ResizeObserver(function (entries) {
|
|
@@ -82,7 +87,8 @@ var Splitter = function Splitter(_ref) {
|
|
|
82
87
|
var moveBar = (0, _react.useRef)({
|
|
83
88
|
oldSizePrev: 0,
|
|
84
89
|
oldSizeNext: 0,
|
|
85
|
-
index: -1
|
|
90
|
+
index: -1,
|
|
91
|
+
sizes: []
|
|
86
92
|
});
|
|
87
93
|
var _useMouseMove = (0, _useMouseMove2.default)({
|
|
88
94
|
start: function start(e, i) {
|
|
@@ -90,7 +96,8 @@ var Splitter = function Splitter(_ref) {
|
|
|
90
96
|
moveBar.current = {
|
|
91
97
|
index: i,
|
|
92
98
|
oldSizePrev: panelSizes[i - 1],
|
|
93
|
-
oldSizeNext: panelSizes[i]
|
|
99
|
+
oldSizeNext: panelSizes[i],
|
|
100
|
+
sizes: _toConsumableArray(panelSizes)
|
|
94
101
|
};
|
|
95
102
|
return true;
|
|
96
103
|
},
|
|
@@ -108,16 +115,14 @@ var Splitter = function Splitter(_ref) {
|
|
|
108
115
|
end: function end(_ref4) {
|
|
109
116
|
var changeX = _ref4.changeX,
|
|
110
117
|
changeY = _ref4.changeY;
|
|
111
|
-
console.log(changeX, changeY);
|
|
112
118
|
if (moveBar.current.index === -1) return;
|
|
113
119
|
var changePt = layout === 'horizontal' ? changeX : changeY;
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
120
|
+
var old = _toConsumableArray(cacheSizesRef.current);
|
|
121
|
+
old[moveBar.current.index - 1] = Math.max(0, Math.min(moveBar.current.oldSizePrev + moveBar.current.oldSizeNext, moveBar.current.oldSizePrev + changePt));
|
|
122
|
+
old[moveBar.current.index] = Math.max(0, Math.min(moveBar.current.oldSizePrev + moveBar.current.oldSizeNext, moveBar.current.oldSizeNext - changePt));
|
|
123
|
+
onResize === null || onResize === void 0 ? void 0 : onResize(old);
|
|
124
|
+
setCacheSizes([]);
|
|
119
125
|
moveBar.current.index = -1;
|
|
120
|
-
onResize === null || onResize === void 0 ? void 0 : onResize(cacheSizesRef.current);
|
|
121
126
|
}
|
|
122
127
|
}),
|
|
123
128
|
_onMouseDown = _useMouseMove.onMouseDown,
|
|
@@ -10,7 +10,19 @@
|
|
|
10
10
|
flex: 0 0 0;
|
|
11
11
|
.ss-splitter-bar-dragger {
|
|
12
12
|
position: relative;
|
|
13
|
-
|
|
13
|
+
&::before {
|
|
14
|
+
display: block;
|
|
15
|
+
content: '';
|
|
16
|
+
width: 100%;
|
|
17
|
+
height: 100%;
|
|
18
|
+
background-color: #f0f0f0;
|
|
19
|
+
}
|
|
20
|
+
&:hover {
|
|
21
|
+
background-color: var(--ant-primary-2, #e6f7ff);
|
|
22
|
+
&::before {
|
|
23
|
+
background-color: transparent;
|
|
24
|
+
}
|
|
25
|
+
}
|
|
14
26
|
}
|
|
15
27
|
}
|
|
16
28
|
.ss-splitter-panel {
|
|
@@ -23,9 +35,14 @@
|
|
|
23
35
|
.ss-splitter-bar-dragger {
|
|
24
36
|
cursor: row-resize;
|
|
25
37
|
width: 100%;
|
|
26
|
-
height:
|
|
27
|
-
top: -
|
|
38
|
+
height: 6px;
|
|
39
|
+
top: -3px;
|
|
40
|
+
box-sizing: border-box;
|
|
41
|
+
padding: 2px 0;
|
|
28
42
|
left: 0;
|
|
43
|
+
&::before {
|
|
44
|
+
height: 2px;
|
|
45
|
+
}
|
|
29
46
|
}
|
|
30
47
|
}
|
|
31
48
|
.ss-splitter-panel {
|
|
@@ -39,9 +56,14 @@
|
|
|
39
56
|
.ss-splitter-bar-dragger {
|
|
40
57
|
cursor: col-resize;
|
|
41
58
|
height: 100%;
|
|
42
|
-
width:
|
|
43
|
-
left: -
|
|
59
|
+
width: 6px;
|
|
60
|
+
left: -3px;
|
|
61
|
+
box-sizing: border-box;
|
|
62
|
+
padding: 0 2px;
|
|
44
63
|
top: 0;
|
|
64
|
+
&::before {
|
|
65
|
+
width: 2px;
|
|
66
|
+
}
|
|
45
67
|
}
|
|
46
68
|
}
|
|
47
69
|
.ss-splitter-panel {
|
|
@@ -11,13 +11,8 @@ function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r)
|
|
|
11
11
|
function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
|
|
12
12
|
function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t.return && (u = t.return(), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
|
|
13
13
|
function _arrayWithHoles(r) { if (Array.isArray(r)) return r; } /* eslint-disable no-plusplus */
|
|
14
|
-
var useSizes = function useSizes(panelPropList) {
|
|
15
|
-
var containerSize = arguments.length >
|
|
16
|
-
var propSizes = (0, _react.useMemo)(function () {
|
|
17
|
-
return panelPropList.map(function (el) {
|
|
18
|
-
return el.size;
|
|
19
|
-
});
|
|
20
|
-
}, [panelPropList]);
|
|
14
|
+
var useSizes = function useSizes(panelPropList, propSizes) {
|
|
15
|
+
var containerSize = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 0;
|
|
21
16
|
var _useState = (0, _react.useState)(function () {
|
|
22
17
|
return panelPropList.map(function (el) {
|
|
23
18
|
return el.defaultSize;
|
|
@@ -30,16 +30,23 @@ var _tooltip = _interopRequireDefault(require("antd/es/tooltip"));
|
|
|
30
30
|
var _react = _interopRequireWildcard(require("react"));
|
|
31
31
|
var _icons = require("@ant-design/icons");
|
|
32
32
|
var _classnames = _interopRequireDefault(require("classnames"));
|
|
33
|
-
var _virtuallistAntd = require("virtuallist-antd");
|
|
34
33
|
var _loading = _interopRequireDefault(require("../loading"));
|
|
35
34
|
var _comsMap = _interopRequireWildcard(require("./coms-map"));
|
|
36
35
|
var _interface = require("./interface");
|
|
37
36
|
require("./index.less");
|
|
38
37
|
var _excluded = ["columns", "dataSource", "cellClassName", "comsMap", "checkable", "selectedRowKeys", "onSelectAll", "onSelect", "primaryKey", "onPageChange", "onEmit", "scroll", "size", "virtuallistParams", "fixFirstColumn"],
|
|
39
|
-
_excluded2 = ["name", "label", "width", "uiType", "className", "props", "cell", "render", "help", "fixed", "children"]
|
|
38
|
+
_excluded2 = ["name", "label", "width", "uiType", "className", "props", "cell", "render", "help", "fixed", "children"],
|
|
39
|
+
_excluded3 = ["children"],
|
|
40
|
+
_excluded4 = ["children"];
|
|
40
41
|
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
|
|
41
42
|
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
|
|
42
43
|
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
44
|
+
function _slicedToArray(r, e) { return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest(); }
|
|
45
|
+
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."); }
|
|
46
|
+
function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }
|
|
47
|
+
function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
|
|
48
|
+
function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t.return && (u = t.return(), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
|
|
49
|
+
function _arrayWithHoles(r) { if (Array.isArray(r)) return r; }
|
|
43
50
|
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
44
51
|
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
45
52
|
function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
|
|
@@ -218,21 +225,119 @@ function CFTable(_ref2) {
|
|
|
218
225
|
};
|
|
219
226
|
}
|
|
220
227
|
}, [columns]);
|
|
221
|
-
var VcComponent = (0, _react.useMemo)(function () {
|
|
222
|
-
if (virtuallistParams) {
|
|
223
|
-
return (0, _virtuallistAntd.VList)({
|
|
224
|
-
height: virtuallistParams === null || virtuallistParams === void 0 ? void 0 : virtuallistParams.height,
|
|
225
|
-
resetTopWhenDataChange: false
|
|
226
|
-
});
|
|
227
|
-
}
|
|
228
|
-
}, [virtuallistParams === null || virtuallistParams === void 0 ? void 0 : virtuallistParams.height]);
|
|
229
228
|
var finalScroll = _objectSpread(_objectSpread({}, _scroll), scroll || {});
|
|
229
|
+
var scrollTopRef = (0, _react.useRef)(0);
|
|
230
|
+
var VirtualTableContext = /*#__PURE__*/(0, _react.createContext)({
|
|
231
|
+
childrenLen: 0,
|
|
232
|
+
scrollTop: 0,
|
|
233
|
+
startRowIndex: 0,
|
|
234
|
+
startOffset: 0,
|
|
235
|
+
endRowIndex: 0,
|
|
236
|
+
dispatch: function dispatch(params) {}
|
|
237
|
+
});
|
|
238
|
+
var VcComponent = (0, _react.useMemo)(function () {
|
|
239
|
+
return {
|
|
240
|
+
table: function table(_ref4) {
|
|
241
|
+
var tableChildren = _ref4.children,
|
|
242
|
+
restProps = _objectWithoutProperties(_ref4, _excluded3);
|
|
243
|
+
var _useState = (0, _react.useState)(0),
|
|
244
|
+
_useState2 = _slicedToArray(_useState, 2),
|
|
245
|
+
childrenLen = _useState2[0],
|
|
246
|
+
setChildrenLen = _useState2[1];
|
|
247
|
+
var _useState3 = (0, _react.useState)(scrollTopRef.current),
|
|
248
|
+
_useState4 = _slicedToArray(_useState3, 2),
|
|
249
|
+
scrollTop = _useState4[0],
|
|
250
|
+
setScrollTop = _useState4[1];
|
|
251
|
+
var scrollChildRef = (0, _react.useRef)(null);
|
|
252
|
+
var _useMemo = (0, _react.useMemo)(function () {
|
|
253
|
+
var _virtuallistParams$he;
|
|
254
|
+
var rowHeight = (_virtuallistParams$he = virtuallistParams === null || virtuallistParams === void 0 ? void 0 : virtuallistParams.height) !== null && _virtuallistParams$he !== void 0 ? _virtuallistParams$he : 40;
|
|
255
|
+
var startRowIndex = Math.floor(scrollTop / rowHeight);
|
|
256
|
+
var startOffset = scrollTop - startRowIndex * rowHeight;
|
|
257
|
+
var endRowIndex = Math.ceil((scrollTop + finalScroll.y) / rowHeight);
|
|
258
|
+
return [startRowIndex, startOffset, endRowIndex];
|
|
259
|
+
}, [scrollTop, virtuallistParams === null || virtuallistParams === void 0 ? void 0 : virtuallistParams.height, finalScroll.y]),
|
|
260
|
+
_useMemo2 = _slicedToArray(_useMemo, 3),
|
|
261
|
+
startRowIndex = _useMemo2[0],
|
|
262
|
+
startOffset = _useMemo2[1],
|
|
263
|
+
endRowIndex = _useMemo2[2];
|
|
264
|
+
var dispatch = function dispatch(_ref5) {
|
|
265
|
+
var type = _ref5.type,
|
|
266
|
+
payload = _ref5.payload;
|
|
267
|
+
switch (type) {
|
|
268
|
+
case 'childrenLen':
|
|
269
|
+
setChildrenLen(payload);
|
|
270
|
+
break;
|
|
271
|
+
case 'scrollTop':
|
|
272
|
+
setScrollTop(payload);
|
|
273
|
+
break;
|
|
274
|
+
}
|
|
275
|
+
};
|
|
276
|
+
var onVirtualScroll = function onVirtualScroll(e) {
|
|
277
|
+
scrollTopRef.current = e.target.scrollTop;
|
|
278
|
+
setScrollTop(e.target.scrollTop);
|
|
279
|
+
};
|
|
280
|
+
(0, _react.useEffect)(function () {
|
|
281
|
+
var _scrollChildRef$curre;
|
|
282
|
+
var scrollEle = (_scrollChildRef$curre = scrollChildRef.current) === null || _scrollChildRef$curre === void 0 ? void 0 : _scrollChildRef$curre.parentNode;
|
|
283
|
+
if (scrollEle) {
|
|
284
|
+
scrollEle.scrollTop = scrollTopRef.current;
|
|
285
|
+
scrollEle.addEventListener('scroll', onVirtualScroll);
|
|
286
|
+
}
|
|
287
|
+
return function () {
|
|
288
|
+
if (scrollEle) {
|
|
289
|
+
scrollEle.removeEventListener('scroll', onVirtualScroll);
|
|
290
|
+
}
|
|
291
|
+
};
|
|
292
|
+
}, []);
|
|
293
|
+
return /*#__PURE__*/_react.default.createElement(VirtualTableContext.Provider, {
|
|
294
|
+
value: {
|
|
295
|
+
childrenLen: childrenLen,
|
|
296
|
+
scrollTop: scrollTop,
|
|
297
|
+
startRowIndex: startRowIndex,
|
|
298
|
+
startOffset: startOffset,
|
|
299
|
+
endRowIndex: endRowIndex,
|
|
300
|
+
dispatch: dispatch
|
|
301
|
+
}
|
|
302
|
+
}, /*#__PURE__*/_react.default.createElement("div", {
|
|
303
|
+
ref: scrollChildRef,
|
|
304
|
+
style: {
|
|
305
|
+
boxSizing: 'border-box',
|
|
306
|
+
height: ((virtuallistParams === null || virtuallistParams === void 0 ? void 0 : virtuallistParams.height) || 40) * childrenLen,
|
|
307
|
+
paddingTop: scrollTop
|
|
308
|
+
}
|
|
309
|
+
}, /*#__PURE__*/_react.default.createElement("table", _extends({}, restProps, {
|
|
310
|
+
style: _objectSpread(_objectSpread({}, restProps.style || {}), {}, {
|
|
311
|
+
minWidth: '100%',
|
|
312
|
+
tableLayout: 'fixed',
|
|
313
|
+
width: finalScroll.x,
|
|
314
|
+
transform: "translateY(-".concat(startOffset, "px)")
|
|
315
|
+
})
|
|
316
|
+
}), tableChildren)));
|
|
317
|
+
},
|
|
318
|
+
body: {
|
|
319
|
+
wrapper: function wrapper(_ref6) {
|
|
320
|
+
var wrapperChildren = _ref6.children,
|
|
321
|
+
restProps = _objectWithoutProperties(_ref6, _excluded4);
|
|
322
|
+
var _useContext = (0, _react.useContext)(VirtualTableContext),
|
|
323
|
+
dispatch = _useContext.dispatch,
|
|
324
|
+
startRowIndex = _useContext.startRowIndex,
|
|
325
|
+
endRowIndex = _useContext.endRowIndex;
|
|
326
|
+
(0, _react.useEffect)(function () {
|
|
327
|
+
var _wrapperChildren$1$le, _wrapperChildren$;
|
|
328
|
+
dispatch({
|
|
329
|
+
type: 'childrenLen',
|
|
330
|
+
payload: (_wrapperChildren$1$le = wrapperChildren === null || wrapperChildren === void 0 ? void 0 : (_wrapperChildren$ = wrapperChildren[1]) === null || _wrapperChildren$ === void 0 ? void 0 : _wrapperChildren$.length) !== null && _wrapperChildren$1$le !== void 0 ? _wrapperChildren$1$le : 0
|
|
331
|
+
});
|
|
332
|
+
}, [wrapperChildren]);
|
|
333
|
+
return /*#__PURE__*/_react.default.createElement("tbody", restProps, wrapperChildren[0], wrapperChildren[1].slice(startRowIndex, endRowIndex));
|
|
334
|
+
}
|
|
335
|
+
}
|
|
336
|
+
};
|
|
337
|
+
}, []);
|
|
230
338
|
return /*#__PURE__*/_react.default.createElement(_table.default, _extends({
|
|
231
339
|
components: virtuallistParams ? VcComponent : undefined,
|
|
232
|
-
scroll:
|
|
233
|
-
x: finalScroll === null || finalScroll === void 0 ? void 0 : finalScroll.x,
|
|
234
|
-
y: virtuallistParams.height
|
|
235
|
-
} : finalScroll,
|
|
340
|
+
scroll: finalScroll,
|
|
236
341
|
dataSource: dataSource,
|
|
237
342
|
loadingComponent: renderLoading,
|
|
238
343
|
rowKey: primaryKey,
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"private": false,
|
|
3
3
|
"name": "ds-web-all",
|
|
4
|
-
"version": "1.0.1-beta.
|
|
4
|
+
"version": "1.0.1-beta.22",
|
|
5
5
|
"scripts": {
|
|
6
6
|
"start": "cross-env BUILD_ENV=dev && dumi dev",
|
|
7
7
|
"docs:build": "cross-env BUILD_ENV=production && dumi build",
|
|
@@ -67,7 +67,6 @@
|
|
|
67
67
|
"runes": "^0.4.3",
|
|
68
68
|
"store2": "^2.13.2",
|
|
69
69
|
"typescript": "^4.2.3",
|
|
70
|
-
"virtuallist-antd": "^0.8.0-beta.1",
|
|
71
70
|
"wangeditor": "^4.7.15"
|
|
72
71
|
},
|
|
73
72
|
"devDependencies": {
|
|
@@ -77,6 +76,7 @@
|
|
|
77
76
|
"@types/qs": "^6.9.7",
|
|
78
77
|
"@types/react-redux": "^7.1.9",
|
|
79
78
|
"@types/react-router-dom": "^5.1.5",
|
|
79
|
+
"@types/react-window": "^1.8.8",
|
|
80
80
|
"@types/recompose": "^0.30.7",
|
|
81
81
|
"@umijs/plugin-locale": "^0.14.2",
|
|
82
82
|
"@umijs/test": "^3.0.5",
|