@kdcloudjs/table 1.2.0 → 1.2.1-canary.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.
@@ -1,6 +1,6 @@
1
1
  /*!
2
2
  *
3
- * @kdcloudjs/table v1.1.6
3
+ * @kdcloudjs/table v1.2.0-canary.18
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.0-canary.18
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属性导致是同一个元素
@@ -8175,6 +8176,9 @@ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { va
8175
8176
 
8176
8177
 
8177
8178
 
8179
+ var fullRowsSetKey = 'fullRowsSetKey';
8180
+ var allEnableKeys = 'allEnableKeys';
8181
+ var selectValueSetKey = 'selectValueSetKey';
8178
8182
  function multiSelect() {
8179
8183
  var opts = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
8180
8184
  return function multiSelectStep(pipeline) {
@@ -8205,10 +8209,9 @@ function multiSelect() {
8205
8209
  action: action
8206
8210
  });
8207
8211
  };
8208
-
8209
- var dataSource = pipeline.getDataSource();
8210
8212
  /** dataSource 中包含的所有 keys */
8211
8213
 
8214
+
8212
8215
  var fullKeySet = new Set();
8213
8216
  /** 所有有效的 keys(disable 状态为 false) */
8214
8217
 
@@ -8217,7 +8220,7 @@ function multiSelect() {
8217
8220
  var isAllChecked = set.size !== 0; // 当前不存在选中则默认为false
8218
8221
 
8219
8222
  var isAnyChecked = false;
8220
- var flatDataSource = Object(_utils__WEBPACK_IMPORTED_MODULE_17__["collectNodes"])(dataSource);
8223
+ var flatDataSource = Object(_utils__WEBPACK_IMPORTED_MODULE_17__["collectNodes"])(pipeline.getDataSource());
8221
8224
  flatDataSource.forEach(function (row, rowIndex) {
8222
8225
  var rowKey = _internals__WEBPACK_IMPORTED_MODULE_15__["internals"].safeGetRowKey(primaryKey, row, rowIndex);
8223
8226
  fullKeySet.add(rowKey); // 在 allKeys 中排除被禁用的 key
@@ -8245,6 +8248,8 @@ function multiSelect() {
8245
8248
  checked: isAllChecked,
8246
8249
  indeterminate: !isAllChecked && isAnyChecked,
8247
8250
  onChange: function onChange(_) {
8251
+ var allKeys = pipeline.getFeatureOptions(allEnableKeys);
8252
+
8248
8253
  if (isAllChecked) {
8249
8254
  _onChange(_utils_others__WEBPACK_IMPORTED_MODULE_16__["arrayUtils"].diff(value, allKeys), '', allKeys, 'uncheck-all');
8250
8255
  } else {
@@ -8265,9 +8270,11 @@ function multiSelect() {
8265
8270
  var rowKey = _internals__WEBPACK_IMPORTED_MODULE_15__["internals"].safeGetRowKey(primaryKey, row, rowIndex);
8266
8271
  var checkboxCellProps = {};
8267
8272
  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);
8273
+ var fullRowsSet = pipeline.getFeatureOptions(fullRowsSetKey) || new Set();
8274
+ var selectValueSet = pipeline.getFeatureOptions(selectValueSetKey) || new Set();
8268
8275
 
8269
- if (fullKeySet.has(rowKey) && clickArea === 'cell') {
8270
- var prevChecked = set.has(rowKey);
8276
+ if (fullRowsSet.has(rowKey) && clickArea === 'cell') {
8277
+ var prevChecked = selectValueSet.has(rowKey);
8271
8278
  var disabled = isDisabled(row, rowIndex);
8272
8279
  checkboxCellProps = {
8273
8280
  style: {
@@ -8291,7 +8298,8 @@ function multiSelect() {
8291
8298
  }
8292
8299
 
8293
8300
  var key = _internals__WEBPACK_IMPORTED_MODULE_15__["internals"].safeGetRowKey(primaryKey, row, rowIndex);
8294
- var checked = set.has(key);
8301
+ var selectValueSet = pipeline.getFeatureOptions(selectValueSetKey) || new Set();
8302
+ var checked = selectValueSet.has(key);
8295
8303
  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_14___default.a.createElement(Checkbox, {
8296
8304
  checked: checked,
8297
8305
  disabled: isDisabled(row, rowIndex),
@@ -8330,8 +8338,9 @@ function multiSelect() {
8330
8338
 
8331
8339
  pipeline.appendRowPropsGetter(function (row, rowIndex) {
8332
8340
  var rowKey = _internals__WEBPACK_IMPORTED_MODULE_15__["internals"].safeGetRowKey(primaryKey, row, rowIndex);
8341
+ var fullRowsSet = pipeline.getFeatureOptions(fullRowsSetKey) || new Set();
8333
8342
 
8334
- if (!fullKeySet.has(rowKey)) {
8343
+ if (!fullRowsSet.has(rowKey)) {
8335
8344
  // rowKey 不在 fullKeySet 中说明这一行是在 multiSelect 之后才生成的,multiSelect 不对之后生成的行进行处理
8336
8345
  return;
8337
8346
  }
@@ -8339,7 +8348,8 @@ function multiSelect() {
8339
8348
  var style = {};
8340
8349
  var className;
8341
8350
  var onClick;
8342
- var checked = set.has(rowKey);
8351
+ var selectValueSet = pipeline.getFeatureOptions(selectValueSetKey) || new Set();
8352
+ var checked = selectValueSet.has(rowKey);
8343
8353
 
8344
8354
  if (opts.highlightRowWhenSelected && checked) {
8345
8355
  className = 'highlight';
@@ -8366,22 +8376,32 @@ function multiSelect() {
8366
8376
  style: style,
8367
8377
  onClick: onClick
8368
8378
  };
8369
- });
8379
+ }); // 只保留一份到pipeline, 避免行数据过多时内容被握住
8380
+
8381
+ pipeline.setFeatureOptions(fullRowsSetKey, fullKeySet);
8382
+ pipeline.setFeatureOptions(allEnableKeys, allKeys);
8383
+ pipeline.setFeatureOptions(selectValueSetKey, set);
8384
+ fullKeySet = null;
8385
+ allKeys = null;
8386
+ set = null;
8370
8387
  return pipeline;
8371
8388
 
8372
8389
  function onCheckboxChange(prevChecked, key, batch) {
8373
8390
  var batchKeys = [key];
8374
8391
 
8375
8392
  if (batch && lastKey) {
8376
- var lastIdx = allKeys.indexOf(lastKey);
8377
- var cntIdx = allKeys.indexOf(key);
8393
+ var _allKeys = pipeline.getFeatureOptions(allEnableKeys);
8394
+
8395
+ var lastIdx = _allKeys.indexOf(lastKey);
8396
+
8397
+ var cntIdx = _allKeys.indexOf(key);
8378
8398
 
8379
8399
  var _ref5 = lastIdx < cntIdx ? [lastIdx, cntIdx] : [cntIdx, lastIdx],
8380
8400
  _ref6 = _babel_runtime_helpers_slicedToArray__WEBPACK_IMPORTED_MODULE_5___default()(_ref5, 2),
8381
8401
  start = _ref6[0],
8382
8402
  end = _ref6[1];
8383
8403
 
8384
- batchKeys = allKeys.slice(start, end + 1);
8404
+ batchKeys = _allKeys.slice(start, end + 1);
8385
8405
  }
8386
8406
 
8387
8407
  if (prevChecked) {
@@ -10860,7 +10880,7 @@ function treeMode() {
10860
10880
  return pipeline.getFeatureOptions('lastTreeMode');
10861
10881
  }
10862
10882
 
10863
- pipeline.setFeatureOptions('lastOpenKeys', pipeline.getStateAtKey(stateKey) || openKeys);
10883
+ pipeline.setFeatureOptions('lastOpenKeys', pipeline.getStateAtKey(stateKey));
10864
10884
  var result = [];
10865
10885
  dfs(input, 0);
10866
10886