@kdcloudjs/table 1.2.0 → 1.2.1-canary.2

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.
@@ -1,6 +1,6 @@
1
1
  /*!
2
2
  *
3
- * @kdcloudjs/table v1.1.6
3
+ * @kdcloudjs/table v1.2.1-canary.1
4
4
  *
5
5
  * Copyright 2020-present, Kingdee, Inc.
6
6
  * All rights reserved.
@@ -1,6 +1,6 @@
1
1
  /*!
2
2
  *
3
- * @kdcloudjs/table v1.1.6
3
+ * @kdcloudjs/table v1.2.1-canary.1
4
4
  *
5
5
  * Copyright 2020-present, Kingdee, Inc.
6
6
  * All rights reserved.
@@ -2253,7 +2253,8 @@ function getScrollParent(elem) {
2253
2253
 
2254
2254
 
2255
2255
  function getRichVisibleRectsStream(target, structureMayChange$, virtualDebugLabel) {
2256
- return structureMayChange$.pipe(rxjs_operators__WEBPACK_IMPORTED_MODULE_13__["startWith"]('init'), rxjs_operators__WEBPACK_IMPORTED_MODULE_13__["map"](function () {
2256
+ return structureMayChange$.pipe(rxjs_operators__WEBPACK_IMPORTED_MODULE_13__["mapTo"](target), rxjs_operators__WEBPACK_IMPORTED_MODULE_13__["distinctUntilChanged"](_utils__WEBPACK_IMPORTED_MODULE_14__["shallowEqual"]), // 当target没有发生变化时,无需重新查找
2257
+ rxjs_operators__WEBPACK_IMPORTED_MODULE_13__["startWith"]('init'), rxjs_operators__WEBPACK_IMPORTED_MODULE_13__["map"](function () {
2257
2258
  // target 的第一个滚动父元素,我们认为这就是虚拟滚动发生的地方
2258
2259
  // 即虚拟滚动不考虑「更上层元素发生滚动」的情况
2259
2260
  // 直接从父元素开始查找,防止自身设置overflow属性导致是同一个元素
@@ -7110,8 +7111,7 @@ function keepWithinBounds(popupParent, ePopup, x, y) {
7110
7111
  }
7111
7112
 
7112
7113
  if (y) {
7113
- var minHeight = Math.min(ePopupRect.height, 180);
7114
- var maxY = parentHeight - minHeight;
7114
+ var maxY = parentHeight - ePopupRect.height;
7115
7115
  y = Math.min(Math.max(y, 0), Math.abs(maxY)); // 目前位置,最大支持的位置
7116
7116
  }
7117
7117
 
@@ -8175,6 +8175,9 @@ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { va
8175
8175
 
8176
8176
 
8177
8177
 
8178
+ var fullRowsSetKey = 'fullRowsSetKey';
8179
+ var allEnableKeys = 'allEnableKeys';
8180
+ var selectValueSetKey = 'selectValueSetKey';
8178
8181
  function multiSelect() {
8179
8182
  var opts = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
8180
8183
  return function multiSelectStep(pipeline) {
@@ -8205,10 +8208,9 @@ function multiSelect() {
8205
8208
  action: action
8206
8209
  });
8207
8210
  };
8208
-
8209
- var dataSource = pipeline.getDataSource();
8210
8211
  /** dataSource 中包含的所有 keys */
8211
8212
 
8213
+
8212
8214
  var fullKeySet = new Set();
8213
8215
  /** 所有有效的 keys(disable 状态为 false) */
8214
8216
 
@@ -8217,7 +8219,7 @@ function multiSelect() {
8217
8219
  var isAllChecked = set.size !== 0; // 当前不存在选中则默认为false
8218
8220
 
8219
8221
  var isAnyChecked = false;
8220
- var flatDataSource = Object(_utils__WEBPACK_IMPORTED_MODULE_17__["collectNodes"])(dataSource);
8222
+ var flatDataSource = Object(_utils__WEBPACK_IMPORTED_MODULE_17__["collectNodes"])(pipeline.getDataSource());
8221
8223
  flatDataSource.forEach(function (row, rowIndex) {
8222
8224
  var rowKey = _internals__WEBPACK_IMPORTED_MODULE_15__["internals"].safeGetRowKey(primaryKey, row, rowIndex);
8223
8225
  fullKeySet.add(rowKey); // 在 allKeys 中排除被禁用的 key
@@ -8245,6 +8247,8 @@ function multiSelect() {
8245
8247
  checked: isAllChecked,
8246
8248
  indeterminate: !isAllChecked && isAnyChecked,
8247
8249
  onChange: function onChange(_) {
8250
+ var allKeys = pipeline.getFeatureOptions(allEnableKeys);
8251
+
8248
8252
  if (isAllChecked) {
8249
8253
  _onChange(_utils_others__WEBPACK_IMPORTED_MODULE_16__["arrayUtils"].diff(value, allKeys), '', allKeys, 'uncheck-all');
8250
8254
  } else {
@@ -8265,9 +8269,11 @@ function multiSelect() {
8265
8269
  var rowKey = _internals__WEBPACK_IMPORTED_MODULE_15__["internals"].safeGetRowKey(primaryKey, row, rowIndex);
8266
8270
  var checkboxCellProps = {};
8267
8271
  var preCellProps = (_opts$checkboxColumn = opts.checkboxColumn) === null || _opts$checkboxColumn === void 0 ? void 0 : (_opts$checkboxColumn$ = _opts$checkboxColumn.getCellProps) === null || _opts$checkboxColumn$ === void 0 ? void 0 : _opts$checkboxColumn$.call(_opts$checkboxColumn, value, row, rowIndex);
8272
+ var fullRowsSet = pipeline.getFeatureOptions(fullRowsSetKey) || new Set();
8273
+ var selectValueSet = pipeline.getFeatureOptions(selectValueSetKey) || new Set();
8268
8274
 
8269
- if (fullKeySet.has(rowKey) && clickArea === 'cell') {
8270
- var prevChecked = set.has(rowKey);
8275
+ if (fullRowsSet.has(rowKey) && clickArea === 'cell') {
8276
+ var prevChecked = selectValueSet.has(rowKey);
8271
8277
  var disabled = isDisabled(row, rowIndex);
8272
8278
  checkboxCellProps = {
8273
8279
  style: {
@@ -8291,7 +8297,8 @@ function multiSelect() {
8291
8297
  }
8292
8298
 
8293
8299
  var key = _internals__WEBPACK_IMPORTED_MODULE_15__["internals"].safeGetRowKey(primaryKey, row, rowIndex);
8294
- var checked = set.has(key);
8300
+ var selectValueSet = pipeline.getFeatureOptions(selectValueSetKey) || new Set();
8301
+ var checked = selectValueSet.has(key);
8295
8302
  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_14___default.a.createElement(Checkbox, {
8296
8303
  checked: checked,
8297
8304
  disabled: isDisabled(row, rowIndex),
@@ -8330,8 +8337,9 @@ function multiSelect() {
8330
8337
 
8331
8338
  pipeline.appendRowPropsGetter(function (row, rowIndex) {
8332
8339
  var rowKey = _internals__WEBPACK_IMPORTED_MODULE_15__["internals"].safeGetRowKey(primaryKey, row, rowIndex);
8340
+ var fullRowsSet = pipeline.getFeatureOptions(fullRowsSetKey) || new Set();
8333
8341
 
8334
- if (!fullKeySet.has(rowKey)) {
8342
+ if (!fullRowsSet.has(rowKey)) {
8335
8343
  // rowKey 不在 fullKeySet 中说明这一行是在 multiSelect 之后才生成的,multiSelect 不对之后生成的行进行处理
8336
8344
  return;
8337
8345
  }
@@ -8339,7 +8347,8 @@ function multiSelect() {
8339
8347
  var style = {};
8340
8348
  var className;
8341
8349
  var onClick;
8342
- var checked = set.has(rowKey);
8350
+ var selectValueSet = pipeline.getFeatureOptions(selectValueSetKey) || new Set();
8351
+ var checked = selectValueSet.has(rowKey);
8343
8352
 
8344
8353
  if (opts.highlightRowWhenSelected && checked) {
8345
8354
  className = 'highlight';
@@ -8366,22 +8375,32 @@ function multiSelect() {
8366
8375
  style: style,
8367
8376
  onClick: onClick
8368
8377
  };
8369
- });
8378
+ }); // 只保留一份到pipeline, 避免行数据过多时内容被握住
8379
+
8380
+ pipeline.setFeatureOptions(fullRowsSetKey, fullKeySet);
8381
+ pipeline.setFeatureOptions(allEnableKeys, allKeys);
8382
+ pipeline.setFeatureOptions(selectValueSetKey, set);
8383
+ fullKeySet = null;
8384
+ allKeys = null;
8385
+ set = null;
8370
8386
  return pipeline;
8371
8387
 
8372
8388
  function onCheckboxChange(prevChecked, key, batch) {
8373
8389
  var batchKeys = [key];
8374
8390
 
8375
8391
  if (batch && lastKey) {
8376
- var lastIdx = allKeys.indexOf(lastKey);
8377
- var cntIdx = allKeys.indexOf(key);
8392
+ var _allKeys = pipeline.getFeatureOptions(allEnableKeys);
8393
+
8394
+ var lastIdx = _allKeys.indexOf(lastKey);
8395
+
8396
+ var cntIdx = _allKeys.indexOf(key);
8378
8397
 
8379
8398
  var _ref5 = lastIdx < cntIdx ? [lastIdx, cntIdx] : [cntIdx, lastIdx],
8380
8399
  _ref6 = _babel_runtime_helpers_slicedToArray__WEBPACK_IMPORTED_MODULE_5___default()(_ref5, 2),
8381
8400
  start = _ref6[0],
8382
8401
  end = _ref6[1];
8383
8402
 
8384
- batchKeys = allKeys.slice(start, end + 1);
8403
+ batchKeys = _allKeys.slice(start, end + 1);
8385
8404
  }
8386
8405
 
8387
8406
  if (prevChecked) {
@@ -10860,7 +10879,7 @@ function treeMode() {
10860
10879
  return pipeline.getFeatureOptions('lastTreeMode');
10861
10880
  }
10862
10881
 
10863
- pipeline.setFeatureOptions('lastOpenKeys', pipeline.getStateAtKey(stateKey) || openKeys);
10882
+ pipeline.setFeatureOptions('lastOpenKeys', pipeline.getStateAtKey(stateKey));
10864
10883
  var result = [];
10865
10884
  dfs(input, 0);
10866
10885