vxe-table 3.12.10-beta.8 → 3.12.10

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 (178) hide show
  1. package/es/index.css +1 -1
  2. package/es/index.min.css +1 -1
  3. package/es/locale/lang/ar-EG.js +2 -1
  4. package/es/locale/lang/de-DE.js +2 -1
  5. package/es/locale/lang/en-US.js +4 -3
  6. package/es/locale/lang/es-ES.js +2 -1
  7. package/es/locale/lang/fr-FR.js +2 -1
  8. package/es/locale/lang/hu-HU.js +2 -1
  9. package/es/locale/lang/hy-AM.js +2 -1
  10. package/es/locale/lang/it-IT.js +2 -1
  11. package/es/locale/lang/ja-JP.js +2 -1
  12. package/es/locale/lang/ko-KR.js +2 -1
  13. package/es/locale/lang/nb-NO.js +2 -1
  14. package/es/locale/lang/pt-BR.js +2 -1
  15. package/es/locale/lang/ru-RU.js +4 -3
  16. package/es/locale/lang/th-TH.js +2 -1
  17. package/es/locale/lang/ug-CN.js +2 -1
  18. package/es/locale/lang/uk-UA.js +518 -517
  19. package/es/locale/lang/vi-VN.js +2 -1
  20. package/es/locale/lang/zh-CHT.js +2 -1
  21. package/es/locale/lang/zh-CN.js +2 -1
  22. package/es/style.css +1 -1
  23. package/es/style.min.css +1 -1
  24. package/es/table/module/edit/mixin.js +7 -7
  25. package/es/table/module/export/mixin.js +105 -69
  26. package/es/table/module/keyboard/mixin.js +68 -25
  27. package/es/table/module/menu/mixin.js +3 -1
  28. package/es/table/src/body.js +135 -83
  29. package/es/table/src/cell.js +43 -57
  30. package/es/table/src/column.js +43 -8
  31. package/es/table/src/columnInfo.js +3 -0
  32. package/es/table/src/footer.js +50 -9
  33. package/es/table/src/header.js +70 -168
  34. package/es/table/src/methods.js +985 -502
  35. package/es/table/src/props.js +14 -4
  36. package/es/table/src/table.js +114 -33
  37. package/es/table/src/util.js +73 -57
  38. package/es/table/style.css +253 -189
  39. package/es/table/style.min.css +1 -1
  40. package/es/ui/index.js +26 -10
  41. package/es/ui/src/log.js +1 -1
  42. package/es/vxe-table/style.css +253 -189
  43. package/es/vxe-table/style.min.css +1 -1
  44. package/lib/index.css +1 -1
  45. package/lib/index.min.css +1 -1
  46. package/lib/index.umd.js +1782 -1056
  47. package/lib/index.umd.min.js +1 -1
  48. package/lib/locale/lang/ar-EG.js +2 -1
  49. package/lib/locale/lang/ar-EG.min.js +1 -1
  50. package/lib/locale/lang/de-DE.js +2 -1
  51. package/lib/locale/lang/de-DE.min.js +1 -1
  52. package/lib/locale/lang/en-US.js +4 -3
  53. package/lib/locale/lang/en-US.min.js +1 -1
  54. package/lib/locale/lang/en-US.umd.js +4 -3
  55. package/lib/locale/lang/es-ES.js +2 -1
  56. package/lib/locale/lang/es-ES.min.js +1 -1
  57. package/lib/locale/lang/es-ES.umd.js +2 -1
  58. package/lib/locale/lang/fr-FR.js +2 -1
  59. package/lib/locale/lang/fr-FR.min.js +1 -1
  60. package/lib/locale/lang/hu-HU.js +2 -1
  61. package/lib/locale/lang/hu-HU.min.js +1 -1
  62. package/lib/locale/lang/hu-HU.umd.js +2 -1
  63. package/lib/locale/lang/hy-AM.js +2 -1
  64. package/lib/locale/lang/hy-AM.min.js +1 -1
  65. package/lib/locale/lang/it-IT.js +2 -1
  66. package/lib/locale/lang/it-IT.min.js +1 -1
  67. package/lib/locale/lang/ja-JP.js +2 -1
  68. package/lib/locale/lang/ja-JP.min.js +1 -1
  69. package/lib/locale/lang/ja-JP.umd.js +2 -1
  70. package/lib/locale/lang/ko-KR.js +2 -1
  71. package/lib/locale/lang/ko-KR.min.js +1 -1
  72. package/lib/locale/lang/ko-KR.umd.js +2 -1
  73. package/lib/locale/lang/nb-NO.js +2 -1
  74. package/lib/locale/lang/nb-NO.min.js +1 -1
  75. package/lib/locale/lang/pt-BR.js +2 -1
  76. package/lib/locale/lang/pt-BR.min.js +1 -1
  77. package/lib/locale/lang/pt-BR.umd.js +2 -1
  78. package/lib/locale/lang/ru-RU.js +4 -3
  79. package/lib/locale/lang/ru-RU.min.js +1 -1
  80. package/lib/locale/lang/ru-RU.umd.js +4 -3
  81. package/lib/locale/lang/th-TH.js +2 -1
  82. package/lib/locale/lang/th-TH.min.js +1 -1
  83. package/lib/locale/lang/ug-CN.js +2 -1
  84. package/lib/locale/lang/ug-CN.min.js +1 -1
  85. package/lib/locale/lang/uk-UA.js +518 -517
  86. package/lib/locale/lang/uk-UA.min.js +1 -1
  87. package/lib/locale/lang/uk-UA.umd.js +518 -517
  88. package/lib/locale/lang/vi-VN.js +2 -1
  89. package/lib/locale/lang/vi-VN.min.js +1 -1
  90. package/lib/locale/lang/zh-CHT.js +2 -1
  91. package/lib/locale/lang/zh-CHT.min.js +1 -1
  92. package/lib/locale/lang/zh-CHT.umd.js +2 -1
  93. package/lib/locale/lang/zh-CN.js +2 -1
  94. package/lib/locale/lang/zh-CN.min.js +1 -1
  95. package/lib/locale/lang/zh-CN.umd.js +2 -1
  96. package/lib/style.css +1 -1
  97. package/lib/style.min.css +1 -1
  98. package/lib/table/module/edit/mixin.js +7 -2
  99. package/lib/table/module/edit/mixin.min.js +1 -1
  100. package/lib/table/module/export/mixin.js +105 -64
  101. package/lib/table/module/export/mixin.min.js +1 -1
  102. package/lib/table/module/keyboard/mixin.js +73 -27
  103. package/lib/table/module/keyboard/mixin.min.js +1 -1
  104. package/lib/table/module/menu/mixin.js +3 -1
  105. package/lib/table/src/body.js +132 -79
  106. package/lib/table/src/body.min.js +1 -1
  107. package/lib/table/src/cell.js +32 -42
  108. package/lib/table/src/cell.min.js +1 -1
  109. package/lib/table/src/column.js +12 -0
  110. package/lib/table/src/column.min.js +1 -1
  111. package/lib/table/src/columnInfo.js +3 -0
  112. package/lib/table/src/columnInfo.min.js +1 -1
  113. package/lib/table/src/footer.js +46 -7
  114. package/lib/table/src/footer.min.js +1 -1
  115. package/lib/table/src/header.js +52 -175
  116. package/lib/table/src/header.min.js +1 -1
  117. package/lib/table/src/methods.js +1096 -560
  118. package/lib/table/src/methods.min.js +1 -1
  119. package/lib/table/src/props.js +14 -4
  120. package/lib/table/src/props.min.js +1 -1
  121. package/lib/table/src/table.js +113 -36
  122. package/lib/table/src/table.min.js +1 -1
  123. package/lib/table/src/util.js +87 -70
  124. package/lib/table/src/util.min.js +1 -1
  125. package/lib/table/style/style.css +253 -189
  126. package/lib/table/style/style.min.css +1 -1
  127. package/lib/ui/index.js +26 -10
  128. package/lib/ui/index.min.js +1 -1
  129. package/lib/ui/src/log.js +1 -1
  130. package/lib/ui/src/log.min.js +1 -1
  131. package/lib/vxe-table/style/style.css +253 -189
  132. package/lib/vxe-table/style/style.min.css +1 -1
  133. package/package.json +2 -2
  134. package/packages/locale/lang/ar-EG.ts +2 -1
  135. package/packages/locale/lang/de-DE.ts +2 -1
  136. package/packages/locale/lang/en-US.ts +4 -3
  137. package/packages/locale/lang/es-ES.ts +2 -1
  138. package/packages/locale/lang/fr-FR.ts +2 -1
  139. package/packages/locale/lang/hu-HU.ts +2 -1
  140. package/packages/locale/lang/hy-AM.ts +2 -1
  141. package/packages/locale/lang/it-IT.ts +2 -1
  142. package/packages/locale/lang/ja-JP.ts +2 -1
  143. package/packages/locale/lang/ko-KR.ts +2 -1
  144. package/packages/locale/lang/nb-NO.ts +2 -1
  145. package/packages/locale/lang/pt-BR.ts +2 -1
  146. package/packages/locale/lang/ru-RU.ts +4 -3
  147. package/packages/locale/lang/th-TH.ts +2 -1
  148. package/packages/locale/lang/ug-CN.ts +2 -1
  149. package/packages/locale/lang/uk-UA.ts +518 -517
  150. package/packages/locale/lang/vi-VN.ts +2 -1
  151. package/packages/locale/lang/zh-CHT.ts +2 -1
  152. package/packages/locale/lang/zh-CN.ts +2 -1
  153. package/packages/table/module/edit/mixin.ts +7 -7
  154. package/packages/table/module/export/mixin.ts +138 -80
  155. package/packages/table/module/keyboard/mixin.ts +65 -24
  156. package/packages/table/module/menu/mixin.ts +4 -1
  157. package/packages/table/src/body.ts +148 -86
  158. package/packages/table/src/cell.ts +45 -67
  159. package/packages/table/src/column.ts +48 -10
  160. package/packages/table/src/columnInfo.ts +3 -0
  161. package/packages/table/src/footer.ts +53 -10
  162. package/packages/table/src/header.ts +70 -169
  163. package/packages/table/src/methods.ts +1031 -515
  164. package/packages/table/src/props.ts +16 -6
  165. package/packages/table/src/table.ts +124 -33
  166. package/packages/table/src/util.ts +82 -62
  167. package/packages/ui/index.ts +25 -9
  168. package/styles/components/table.scss +319 -271
  169. package/styles/theme/base.scss +4 -6
  170. package/styles/theme/dark.scss +1 -0
  171. package/styles/theme/light.scss +1 -0
  172. package/styles/variable.scss +1 -0
  173. /package/es/{iconfont.1736840896964.ttf → iconfont.1738985837413.ttf} +0 -0
  174. /package/es/{iconfont.1736840896964.woff → iconfont.1738985837413.woff} +0 -0
  175. /package/es/{iconfont.1736840896964.woff2 → iconfont.1738985837413.woff2} +0 -0
  176. /package/lib/{iconfont.1736840896964.ttf → iconfont.1738985837413.ttf} +0 -0
  177. /package/lib/{iconfont.1736840896964.woff → iconfont.1738985837413.woff} +0 -0
  178. /package/lib/{iconfont.1736840896964.woff2 → iconfont.1738985837413.woff2} +0 -0
@@ -11,6 +11,7 @@ exports.colToVisible = colToVisible;
11
11
  exports.convertHeaderColumnToRows = void 0;
12
12
  exports.createColumn = createColumn;
13
13
  exports.destroyColumn = destroyColumn;
14
+ exports.getCellHeight = getCellHeight;
14
15
  exports.getCellValue = getCellValue;
15
16
  exports.getColReMinWidth = getColReMinWidth;
16
17
  exports.getOffsetSize = getOffsetSize;
@@ -144,9 +145,15 @@ function getElementMarginWidth(elem) {
144
145
  }
145
146
  return 0;
146
147
  }
148
+ function getCellHeight(height) {
149
+ if (height === 'unset') {
150
+ return 0;
151
+ }
152
+ return height || 0;
153
+ }
147
154
  function handleFieldOrColumn(_vm, fieldOrColumn) {
148
155
  if (fieldOrColumn) {
149
- return _xeUtils.default.isString(fieldOrColumn) ? _vm.getColumnByField(fieldOrColumn) : fieldOrColumn;
156
+ return _xeUtils.default.isString(fieldOrColumn) || _xeUtils.default.isNumber(fieldOrColumn) ? _vm.getColumnByField(`${fieldOrColumn}`) : fieldOrColumn;
150
157
  }
151
158
  return null;
152
159
  }
@@ -231,6 +238,7 @@ function getColReMinWidth(params) {
231
238
  column,
232
239
  cell
233
240
  } = params;
241
+ const internalData = $table;
234
242
  const {
235
243
  showHeaderOverflow: allColumnHeaderOverflow,
236
244
  resizableOpts
@@ -245,6 +253,9 @@ function getColReMinWidth(params) {
245
253
  return Math.max(1, _xeUtils.default.toNumber(customMinWidth));
246
254
  }
247
255
  }
256
+ const {
257
+ elemStore
258
+ } = internalData;
248
259
  const {
249
260
  showHeaderOverflow,
250
261
  minWidth: colMinWidth
@@ -271,13 +282,10 @@ function getColReMinWidth(params) {
271
282
  }
272
283
  // 如果设置最小宽
273
284
  if (colMinWidth) {
274
- const {
275
- refTableBody
276
- } = $table.$refs;
277
- const bodyElem = refTableBody ? refTableBody.$el : null;
278
- if (bodyElem) {
285
+ const bodyScrollElem = getRefElem(elemStore['main-body-scroll']);
286
+ if (bodyScrollElem) {
279
287
  if ((0, _dom.isScale)(colMinWidth)) {
280
- const bodyWidth = bodyElem.clientWidth - 1;
288
+ const bodyWidth = bodyScrollElem.clientWidth - 1;
281
289
  const meanWidth = bodyWidth / 100;
282
290
  return Math.max(mWidth, Math.floor(_xeUtils.default.toInteger(colMinWidth) * meanWidth));
283
291
  } else if ((0, _dom.isPx)(colMinWidth)) {
@@ -323,14 +331,39 @@ function getOffsetSize($xeTable) {
323
331
  }
324
332
  function calcTreeLine(params, prevRow) {
325
333
  const {
326
- $table
334
+ $table,
335
+ row
327
336
  } = params;
337
+ const tableProps = $table;
328
338
  const tableReactData = $table;
339
+ const tableInternalData = $table;
340
+ const {
341
+ showOverflow
342
+ } = tableProps;
343
+ const {
344
+ scrollYLoad
345
+ } = tableReactData;
346
+ const {
347
+ fullAllDataRowIdData
348
+ } = tableInternalData;
349
+ const rowOpts = $table.computeRowOpts;
350
+ const cellOpts = $table.computeCellOpts;
351
+ const defaultRowHeight = $table.computeDefaultRowHeight;
352
+ const rowid = getRowid($table, row);
353
+ const rowRest = fullAllDataRowIdData[rowid];
354
+ const currCellHeight = rowRest.resizeHeight || cellOpts.height || rowOpts.height || defaultRowHeight;
329
355
  let expandSize = 1;
330
356
  if (prevRow) {
331
357
  expandSize = countTreeExpand(prevRow, params);
332
358
  }
333
- return tableReactData.rowHeight * expandSize - (prevRow ? 1 : 12 - getOffsetSize($table));
359
+ let cellHeight = currCellHeight;
360
+ const vnHeight = rowRest.height;
361
+ if (scrollYLoad) {
362
+ if (!showOverflow) {
363
+ cellHeight = vnHeight || currCellHeight;
364
+ }
365
+ }
366
+ return cellHeight * expandSize - (prevRow ? 1 : 12 - getOffsetSize($table));
334
367
  }
335
368
  function mergeBodyMethod(mergeList, _rowIndex, _columnIndex) {
336
369
  for (let mIndex = 0; mIndex < mergeList.length; mIndex++) {
@@ -405,43 +438,32 @@ function createColumn($xeTable, options, renderOptions) {
405
438
  return isColumnInfo(options) ? options : new _columnInfo.ColumnInfo($xeTable, options, renderOptions);
406
439
  }
407
440
  function rowToVisible($xeTable, row) {
441
+ const tableProps = $xeTable;
408
442
  const reactData = $xeTable;
409
443
  const internalData = $xeTable;
410
- const tableProps = $xeTable;
411
444
  const {
412
445
  showOverflow
413
446
  } = tableProps;
414
- const refTableBody = $xeTable.$refs.refTableBody;
415
447
  const {
416
- columnStore,
417
448
  scrollYLoad
418
449
  } = reactData;
419
450
  const {
451
+ elemStore,
420
452
  afterFullData,
421
- scrollYStore,
422
- fullAllDataRowIdData
453
+ fullAllDataRowIdData,
454
+ isResizeCellHeight
423
455
  } = internalData;
424
- const {
425
- rowHeight
426
- } = scrollYStore;
427
- const {
428
- leftList,
429
- rightList
430
- } = columnStore;
431
- const bodyElem = refTableBody ? refTableBody.$el : null;
456
+ const rowOpts = $xeTable.computeRowOpts;
457
+ const cellOpts = $xeTable.computeCellOpts;
458
+ const defaultRowHeight = $xeTable.computeDefaultRowHeight;
459
+ const leftFixedWidth = $xeTable.computeLeftFixedWidth;
460
+ const rightFixedWidth = $xeTable.computeRightFixedWidth;
461
+ const bodyScrollElem = getRefElem(elemStore['main-body-scroll']);
432
462
  const rowid = getRowid($xeTable, row);
433
- let offsetFixedLeft = 0;
434
- leftList.forEach(item => {
435
- offsetFixedLeft += item.renderWidth;
436
- });
437
- let offsetFixedRight = 0;
438
- rightList.forEach(item => {
439
- offsetFixedRight += item.renderWidth;
440
- });
441
- if (bodyElem) {
442
- const bodyHeight = bodyElem.clientHeight;
443
- const bodyScrollTop = bodyElem.scrollTop;
444
- const trElem = bodyElem.querySelector(`[rowid="${rowid}"]`);
463
+ if (bodyScrollElem) {
464
+ const bodyHeight = bodyScrollElem.clientHeight;
465
+ const bodyScrollTop = bodyScrollElem.scrollTop;
466
+ const trElem = bodyScrollElem.querySelector(`[rowid="${rowid}"]`);
445
467
  if (trElem) {
446
468
  const trOffsetParent = trElem.offsetParent;
447
469
  const trOffsetTop = trElem.offsetTop + (trOffsetParent ? trOffsetParent.offsetTop : 0);
@@ -455,12 +477,13 @@ function rowToVisible($xeTable, row) {
455
477
  } else {
456
478
  // 如果是虚拟渲染滚动
457
479
  if (scrollYLoad) {
458
- if (showOverflow) {
459
- return $xeTable.scrollTo(null, ($xeTable.findRowIndexOf(afterFullData, row) - 1) * rowHeight);
480
+ const isCustomCellHeight = isResizeCellHeight || cellOpts.height || rowOpts.height;
481
+ if (!isCustomCellHeight && showOverflow) {
482
+ return $xeTable.scrollTo(null, ($xeTable.findRowIndexOf(afterFullData, row) - 1) * defaultRowHeight);
460
483
  }
461
484
  let scrollTop = 0;
462
485
  const rowRest = fullAllDataRowIdData[rowid];
463
- const rHeight = rowRest ? rowRest.height || rowHeight : rowHeight;
486
+ const rHeight = rowRest ? rowRest.resizeHeight || cellOpts.height || rowOpts.height || defaultRowHeight : defaultRowHeight;
464
487
  for (let i = 0; i < afterFullData.length; i++) {
465
488
  const currRow = afterFullData[i];
466
489
  const currRowid = getRowid($xeTable, currRow);
@@ -468,60 +491,53 @@ function rowToVisible($xeTable, row) {
468
491
  break;
469
492
  }
470
493
  const rowRest = fullAllDataRowIdData[currRowid];
471
- scrollTop += rowRest ? rowRest.height || rowHeight : rowHeight;
494
+ scrollTop += rowRest ? rowRest.resizeHeight || cellOpts.height || rowOpts.height || defaultRowHeight : defaultRowHeight;
472
495
  }
473
496
  if (scrollTop < bodyScrollTop) {
474
- return $xeTable.scrollTo(null, scrollTop - offsetFixedLeft - 1);
497
+ return $xeTable.scrollTo(null, scrollTop - leftFixedWidth - 1);
475
498
  }
476
- return $xeTable.scrollTo(null, scrollTop + rHeight - (bodyHeight - offsetFixedRight - 1));
499
+ return $xeTable.scrollTo(null, scrollTop + rHeight - (bodyHeight - rightFixedWidth - 1));
477
500
  }
478
501
  }
479
502
  }
480
503
  return Promise.resolve();
481
504
  }
482
505
  function colToVisible($xeTable, column, row) {
506
+ const reactData = $xeTable;
507
+ const internalData = $xeTable;
483
508
  const {
484
- columnStore,
485
- scrollXLoad,
486
- visibleColumn
487
- } = $xeTable;
488
- const refTableBody = $xeTable.$refs.refTableBody;
509
+ scrollXLoad
510
+ } = reactData;
489
511
  const {
490
- leftList,
491
- rightList
492
- } = columnStore;
493
- const bodyElem = refTableBody ? refTableBody.$el : null;
512
+ elemStore,
513
+ visibleColumn
514
+ } = internalData;
515
+ const leftFixedWidth = $xeTable.computeLeftFixedWidth;
516
+ const rightFixedWidth = $xeTable.computeRightFixedWidth;
517
+ const bodyScrollElem = getRefElem(elemStore['main-body-scroll']);
494
518
  if (column.fixed) {
495
519
  return Promise.resolve();
496
520
  }
497
- let offsetFixedLeft = 0;
498
- leftList.forEach(item => {
499
- offsetFixedLeft += item.renderWidth;
500
- });
501
- let offsetFixedRight = 0;
502
- rightList.forEach(item => {
503
- offsetFixedRight += item.renderWidth;
504
- });
505
- if (bodyElem) {
506
- const bodyWidth = bodyElem.clientWidth;
507
- const bodyScrollLeft = bodyElem.scrollLeft;
521
+ if (bodyScrollElem) {
522
+ const bodyWidth = bodyScrollElem.clientWidth;
523
+ const bodyScrollLeft = bodyScrollElem.scrollLeft;
508
524
  let tdElem = null;
509
525
  if (row) {
510
526
  const rowid = getRowid($xeTable, row);
511
- tdElem = bodyElem.querySelector(`[rowid="${rowid}"] .${column.id}`);
527
+ tdElem = bodyScrollElem.querySelector(`[rowid="${rowid}"] .${column.id}`);
512
528
  }
513
529
  if (!tdElem) {
514
- tdElem = bodyElem.querySelector(`.${column.id}`);
530
+ tdElem = bodyScrollElem.querySelector(`.${column.id}`);
515
531
  }
516
532
  if (tdElem) {
517
533
  const tdOffsetParent = tdElem.offsetParent;
518
534
  const tdOffsetLeft = tdElem.offsetLeft + (tdOffsetParent ? tdOffsetParent.offsetLeft : 0);
519
535
  const cellWidth = tdElem.clientWidth;
520
536
  // 检测是否在可视区中
521
- if (tdOffsetLeft < bodyScrollLeft + offsetFixedLeft) {
522
- return $xeTable.scrollTo(tdOffsetLeft - offsetFixedLeft - 1);
523
- } else if (tdOffsetLeft + cellWidth - bodyScrollLeft > bodyWidth - offsetFixedRight) {
524
- return $xeTable.scrollTo(tdOffsetLeft + cellWidth - (bodyWidth - offsetFixedRight - 1));
537
+ if (tdOffsetLeft < bodyScrollLeft + leftFixedWidth) {
538
+ return $xeTable.scrollTo(tdOffsetLeft - leftFixedWidth - 1);
539
+ } else if (tdOffsetLeft + cellWidth - bodyScrollLeft > bodyWidth - rightFixedWidth) {
540
+ return $xeTable.scrollTo(tdOffsetLeft + cellWidth - (bodyWidth - rightFixedWidth - 1));
525
541
  }
526
542
  } else {
527
543
  // 检测是否在虚拟渲染可视区中
@@ -529,15 +545,16 @@ function colToVisible($xeTable, column, row) {
529
545
  let scrollLeft = 0;
530
546
  const cellWidth = column.renderWidth;
531
547
  for (let i = 0; i < visibleColumn.length; i++) {
532
- if (visibleColumn[i] === column) {
548
+ const currCol = visibleColumn[i];
549
+ if (currCol === column || currCol.id === column.id) {
533
550
  break;
534
551
  }
535
- scrollLeft += visibleColumn[i].renderWidth;
552
+ scrollLeft += currCol.renderWidth;
536
553
  }
537
554
  if (scrollLeft < bodyScrollLeft) {
538
- return $xeTable.scrollTo(scrollLeft - offsetFixedLeft - 1);
555
+ return $xeTable.scrollTo(scrollLeft - leftFixedWidth - 1);
539
556
  }
540
- return $xeTable.scrollTo(scrollLeft + cellWidth - (bodyWidth - offsetFixedRight - 1));
557
+ return $xeTable.scrollTo(scrollLeft + cellWidth - (bodyWidth - rightFixedWidth - 1));
541
558
  }
542
559
  }
543
560
  }
@@ -1 +1 @@
1
- Object.defineProperty(exports,"__esModule",{value:!0}),exports.assembleColumn=assembleColumn,exports.calcTreeLine=calcTreeLine,exports.clearTableAllStatus=clearTableAllStatus,exports.clearTableDefaultStatus=clearTableDefaultStatus,exports.colToVisible=colToVisible,exports.convertHeaderColumnToRows=void 0,exports.createColumn=createColumn,exports.destroyColumn=destroyColumn,exports.getCellValue=getCellValue,exports.getColReMinWidth=getColReMinWidth,exports.getOffsetSize=getOffsetSize,exports.getRefElem=getRefElem,exports.getRootColumn=getRootColumn,exports.getRowUniqueId=getRowUniqueId,exports.getRowid=getRowid,exports.getRowkey=getRowkey,exports.handleFieldOrColumn=handleFieldOrColumn,exports.isColumnInfo=isColumnInfo,exports.mergeBodyMethod=mergeBodyMethod,exports.restoreScrollLocation=restoreScrollLocation,exports.rowToVisible=rowToVisible,exports.setCellValue=setCellValue,exports.toFilters=toFilters,exports.toTreePathSeq=toTreePathSeq;var _xeUtils=_interopRequireDefault(require("xe-utils")),_columnInfo=require("./columnInfo"),_dom=require("../../ui/src/dom"),_log=require("../../ui/src/log");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}let getAllConvertColumns=(e,l)=>{let t=[];return e.forEach(e=>{e.parentId=l?l.id:null,e.visible&&(e.children&&e.children.length&&e.children.some(e=>e.visible)?(t.push(e),t.push(...getAllConvertColumns(e.children,e))):t.push(e))}),t},convertHeaderColumnToRows=e=>{let l=1,r=(t,e)=>{if(e&&(t.level=e.level+1,l<t.level)&&(l=t.level),t.children&&t.children.length&&t.children.some(e=>e.visible)){let l=0;t.children.forEach(e=>{e.visible&&(r(e,t),l+=e.colSpan)}),t.colSpan=l}else t.colSpan=1},t=(e.forEach(e=>{e.level=1,r(e)}),[]);for(let e=0;e<l;e++)t.push([]);return getAllConvertColumns(e).forEach(e=>{e.children&&e.children.length&&e.children.some(e=>e.visible)?e.rowSpan=1:e.rowSpan=l-e.level+1,t[e.level-1].push(e)}),t};function restoreScrollLocation(e,l,t){let r=e;return e.clearScroll().then(()=>{if(l||t)return r.lastScrollLeft=0,r.lastScrollTop=0,r.intoRunScroll=!1,r.inVirtualScroll=!1,r.inWheelScroll=!1,r.inHeaderScroll=!1,r.inBodyScroll=!1,r.inFooterScroll=!1,r.scrollRenderType="",e.scrollTo(l,t)})}function toTreePathSeq(e){return e.map((e,l)=>l%2==0?Number(e)+1:".").join("")}function getRowUniqueId(){return _xeUtils.default.uniqueId("row_")}function getRowkey(e){return e.rowOpts.keyField||e.rowId||"_X_ROW_KEY"}function getRowid(e,l){l=_xeUtils.default.get(l,getRowkey(e));return _xeUtils.default.eqNull(l)?"":encodeURIComponent(l)}function getPaddingLeftRightSize(e){return e?(e=getComputedStyle(e),_xeUtils.default.toNumber(e.paddingLeft)+_xeUtils.default.toNumber(e.paddingRight)):0}function getElementMarginWidth(e){var l,t;return e?(t=getComputedStyle(e),l=_xeUtils.default.toNumber(t.marginLeft),t=_xeUtils.default.toNumber(t.marginRight),e.offsetWidth+l+t):0}function handleFieldOrColumn(e,l){return l?_xeUtils.default.isString(l)?e.getColumnByField(l):l:null}function assembleColumn(e){var{$el:e,$xetable:l,$xecolumn:t,columnConfig:r}=e,o=t?t.columnConfig:null;o?("development"===process.env.NODE_ENV&&("vxe-table-column"===t.$options._componentTag?(0,_log.errLog)("vxe.error.groupTag",[`<vxe-table-colgroup title=${t.title} ...>`,`<vxe-table-column title=${t.title} ...>`]):"vxe-column"===t.$options._componentTag&&(0,_log.warnLog)("vxe.error.groupTag",[`<vxe-colgroup title=${t.title} ...>`,`<vxe-column title=${t.title} ...>`])),o.children||(o.children=[]),o.children.splice(_xeUtils.default.arrayIndexOf(t.$el.children,e),0,r)):l.staticColumns.splice(_xeUtils.default.arrayIndexOf(l.$refs.hideColumn.children,e),0,r)}function destroyColumn(e){let{$xetable:l,columnConfig:t}=e;e=_xeUtils.default.findTree(l.staticColumns,e=>e===t);e&&e.items.splice(e.index,1)}function getRootColumn(e,l){var t=e.fullColumnIdData;if(!l)return null;let r=l.parentId;for(;t[r];){let e=t[r].column;if(!(r=e.parentId))return e}return l}function queryCellElement(e,l){return e.querySelector(".vxe-cell"+l)}function toFilters(e){return e&&_xeUtils.default.isArray(e)?e.map(({label:e,value:l,data:t,resetValue:r,checked:o})=>({label:e,value:l,data:t,resetValue:r,checked:!!o,_checked:!!o})):e}function getColReMinWidth(e){var{$table:l,column:t,cell:r}=e,{showHeaderOverflow:o,resizableOpts:n}=l,n=n.minWidth;if(n){e=_xeUtils.default.isFunction(n)?n(e):n;if("auto"!==e)return Math.max(1,_xeUtils.default.toNumber(e))}var i,u,a,c,{showHeaderOverflow:n,minWidth:e}=t,t=_xeUtils.default.isUndefined(n)||_xeUtils.default.isNull(n)?o:n,o="title"===t||(!0===t||"tooltip"===t)||"ellipsis"===t;let s=_xeUtils.default.floor(1.6*(_xeUtils.default.toNumber(getComputedStyle(r).fontSize)||14))+(getPaddingLeftRightSize(r)+getPaddingLeftRightSize(queryCellElement(r,"")));if(o&&(n=getPaddingLeftRightSize(queryCellElement(r,">.vxe-cell--drag-handle")),t=getPaddingLeftRightSize(queryCellElement(r,">.vxe-cell--checkbox")),o=getElementMarginWidth(queryCellElement(r,">.vxe-cell--required-icon")),i=getElementMarginWidth(queryCellElement(r,">.vxe-cell--edit-icon")),u=getElementMarginWidth(queryCellElement(r,">.vxe-cell-title-prefix-icon")),a=getElementMarginWidth(queryCellElement(r,">.vxe-cell-title-suffix-icon")),c=getElementMarginWidth(queryCellElement(r,">.vxe-cell--sort")),r=getElementMarginWidth(queryCellElement(r,">.vxe-cell--filter")),s+=n+t+o+i+u+a+r+c),e){n=l.$refs.refTableBody,t=n?n.$el:null;if(t){if((0,_dom.isScale)(e))return o=(t.clientWidth-1)/100,Math.max(s,Math.floor(_xeUtils.default.toInteger(e)*o));if((0,_dom.isPx)(e))return Math.max(s,_xeUtils.default.toInteger(e))}}return s}exports.convertHeaderColumnToRows=convertHeaderColumnToRows;let lineOffsetSizes={mini:3,small:2,medium:1};function countTreeExpand(e,l){let t=1;if(e){var r=l.$table,o=r.computeTreeOpts,{transform:n,mapChildrenField:i}=o,o=o.children||o.childrenField,u=e[n?i:o];if(u&&r.isTreeExpandByRow(e))for(let e=0;e<u.length;e++)t+=countTreeExpand(u[e],l)}return t}function getOffsetSize(e){e=e.computeSize;return e&&lineOffsetSizes[e]||0}function calcTreeLine(e,l){var t=e.$table,r=t;let o=1;return l&&(o=countTreeExpand(l,e)),r.rowHeight*o-(l?1:12-getOffsetSize(t))}function mergeBodyMethod(l,t,r){for(let e=0;e<l.length;e++){var{row:o,col:n,rowspan:i,colspan:u}=l[e];if(-1<n&&-1<o&&i&&u){if(o===t&&n===r)return{rowspan:i,colspan:u};if(o<=t&&t<o+i&&n<=r&&r<n+u)return{rowspan:0,colspan:0}}}}function getCellValue(e,l){return _xeUtils.default.get(e,l.field)}function setCellValue(e,l,t){return _xeUtils.default.set(e,l.field,t)}function getRefElem(e){return e?e.$el||e:null}function clearTableDefaultStatus(e){return e.initStatus=!1,e.clearSort(),e.clearCurrentRow(),e.clearCurrentColumn(),e.clearRadioRow(),e.clearRadioReserve(),e.clearCheckboxRow(),e.clearCheckboxReserve(),e.clearRowExpand(),e.clearTreeExpand(),e.clearTreeExpandReserve(),e.clearEdit&&e.clearEdit(),e.clearSelected&&(e.keyboardConfig||e.mouseConfig)&&e.clearSelected(),e.clearCellAreas&&e.mouseConfig&&(e.clearCellAreas(),e.clearCopyCellArea()),e.clearScroll()}function clearTableAllStatus(e){return e.clearFilter&&e.clearFilter(),clearTableDefaultStatus(e)}function isColumnInfo(e){return e instanceof _columnInfo.ColumnInfo}function createColumn(e,l,t){return isColumnInfo(l)?l:new _columnInfo.ColumnInfo(e,l,t)}function rowToVisible(t,r){var e=t.showOverflow,o=t.$refs.refTableBody,{columnStore:n,scrollYLoad:l}=t,{afterFullData:i,scrollYStore:u,fullAllDataRowIdData:a}=t,c=u.rowHeight,{leftList:u,rightList:n}=n,o=o?o.$el:null,s=getRowid(t,r);let f=0,d=(u.forEach(e=>{f+=e.renderWidth}),0);if(n.forEach(e=>{d+=e.renderWidth}),o){u=o.clientHeight,n=o.scrollTop,o=o.querySelector(`[rowid="${s}"]`);if(o){var m=o.offsetParent,m=o.offsetTop+(m?m.offsetTop:0),o=o.clientHeight;if(m<n||n+u<m)return t.scrollTo(null,m);if(u+n<=m+o)return t.scrollTo(null,n+o)}else if(l){if(e)return t.scrollTo(null,(t.findRowIndexOf(i,r)-1)*c);let l=0;m=a[s],o=m&&m.height||c;for(let e=0;e<i.length;e++){var g=i[e],h=getRowid(t,g);if(g===r||h===s)break;g=a[h];l+=g&&g.height||c}return l<n?t.scrollTo(null,l-f-1):t.scrollTo(null,l+o-(u-d-1))}}return Promise.resolve()}function colToVisible(o,n,l){var{columnStore:i,scrollXLoad:u,visibleColumn:a}=o,c=o.$refs.refTableBody,{leftList:i,rightList:s}=i,c=c?c.$el:null;if(!n.fixed){let t=0,r=(i.forEach(e=>{t+=e.renderWidth}),0);if(s.forEach(e=>{r+=e.renderWidth}),c){i=c.clientWidth,s=c.scrollLeft;let e=null;if(l&&(l=getRowid(o,l),e=c.querySelector(`[rowid="${l}"] .`+n.id)),e=e||c.querySelector("."+n.id)){l=e.offsetParent,c=e.offsetLeft+(l?l.offsetLeft:0),l=e.clientWidth;if(c<s+t)return o.scrollTo(c-t-1);if(c+l-s>i-r)return o.scrollTo(c+l-(i-r-1))}else if(u){let l=0;c=n.renderWidth;for(let e=0;e<a.length&&a[e]!==n;e++)l+=a[e].renderWidth;return l<s?o.scrollTo(l-t-1):o.scrollTo(l+c-(i-r-1))}}}return Promise.resolve()}
1
+ Object.defineProperty(exports,"__esModule",{value:!0}),exports.assembleColumn=assembleColumn,exports.calcTreeLine=calcTreeLine,exports.clearTableAllStatus=clearTableAllStatus,exports.clearTableDefaultStatus=clearTableDefaultStatus,exports.colToVisible=colToVisible,exports.convertHeaderColumnToRows=void 0,exports.createColumn=createColumn,exports.destroyColumn=destroyColumn,exports.getCellHeight=getCellHeight,exports.getCellValue=getCellValue,exports.getColReMinWidth=getColReMinWidth,exports.getOffsetSize=getOffsetSize,exports.getRefElem=getRefElem,exports.getRootColumn=getRootColumn,exports.getRowUniqueId=getRowUniqueId,exports.getRowid=getRowid,exports.getRowkey=getRowkey,exports.handleFieldOrColumn=handleFieldOrColumn,exports.isColumnInfo=isColumnInfo,exports.mergeBodyMethod=mergeBodyMethod,exports.restoreScrollLocation=restoreScrollLocation,exports.rowToVisible=rowToVisible,exports.setCellValue=setCellValue,exports.toFilters=toFilters,exports.toTreePathSeq=toTreePathSeq;var _xeUtils=_interopRequireDefault(require("xe-utils")),_columnInfo=require("./columnInfo"),_dom=require("../../ui/src/dom"),_log=require("../../ui/src/log");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}let getAllConvertColumns=(e,l)=>{let t=[];return e.forEach(e=>{e.parentId=l?l.id:null,e.visible&&(e.children&&e.children.length&&e.children.some(e=>e.visible)?(t.push(e),t.push(...getAllConvertColumns(e.children,e))):t.push(e))}),t},convertHeaderColumnToRows=e=>{let l=1,r=(t,e)=>{if(e&&(t.level=e.level+1,l<t.level)&&(l=t.level),t.children&&t.children.length&&t.children.some(e=>e.visible)){let l=0;t.children.forEach(e=>{e.visible&&(r(e,t),l+=e.colSpan)}),t.colSpan=l}else t.colSpan=1},t=(e.forEach(e=>{e.level=1,r(e)}),[]);for(let e=0;e<l;e++)t.push([]);return getAllConvertColumns(e).forEach(e=>{e.children&&e.children.length&&e.children.some(e=>e.visible)?e.rowSpan=1:e.rowSpan=l-e.level+1,t[e.level-1].push(e)}),t};function restoreScrollLocation(e,l,t){let r=e;return e.clearScroll().then(()=>{if(l||t)return r.lastScrollLeft=0,r.lastScrollTop=0,r.intoRunScroll=!1,r.inVirtualScroll=!1,r.inWheelScroll=!1,r.inHeaderScroll=!1,r.inBodyScroll=!1,r.inFooterScroll=!1,r.scrollRenderType="",e.scrollTo(l,t)})}function toTreePathSeq(e){return e.map((e,l)=>l%2==0?Number(e)+1:".").join("")}function getRowUniqueId(){return _xeUtils.default.uniqueId("row_")}function getRowkey(e){return e.rowOpts.keyField||e.rowId||"_X_ROW_KEY"}function getRowid(e,l){l=_xeUtils.default.get(l,getRowkey(e));return _xeUtils.default.eqNull(l)?"":encodeURIComponent(l)}function getPaddingLeftRightSize(e){return e?(e=getComputedStyle(e),_xeUtils.default.toNumber(e.paddingLeft)+_xeUtils.default.toNumber(e.paddingRight)):0}function getElementMarginWidth(e){var l,t;return e?(t=getComputedStyle(e),l=_xeUtils.default.toNumber(t.marginLeft),t=_xeUtils.default.toNumber(t.marginRight),e.offsetWidth+l+t):0}function getCellHeight(e){return"unset"!==e&&e||0}function handleFieldOrColumn(e,l){return l?_xeUtils.default.isString(l)||_xeUtils.default.isNumber(l)?e.getColumnByField(""+l):l:null}function assembleColumn(e){var{$el:e,$xetable:l,$xecolumn:t,columnConfig:r}=e,o=t?t.columnConfig:null;o?("development"===process.env.NODE_ENV&&("vxe-table-column"===t.$options._componentTag?(0,_log.errLog)("vxe.error.groupTag",[`<vxe-table-colgroup title=${t.title} ...>`,`<vxe-table-column title=${t.title} ...>`]):"vxe-column"===t.$options._componentTag&&(0,_log.warnLog)("vxe.error.groupTag",[`<vxe-colgroup title=${t.title} ...>`,`<vxe-column title=${t.title} ...>`])),o.children||(o.children=[]),o.children.splice(_xeUtils.default.arrayIndexOf(t.$el.children,e),0,r)):l.staticColumns.splice(_xeUtils.default.arrayIndexOf(l.$refs.hideColumn.children,e),0,r)}function destroyColumn(e){let{$xetable:l,columnConfig:t}=e;e=_xeUtils.default.findTree(l.staticColumns,e=>e===t);e&&e.items.splice(e.index,1)}function getRootColumn(e,l){var t=e.fullColumnIdData;if(!l)return null;let r=l.parentId;for(;t[r];){let e=t[r].column;if(!(r=e.parentId))return e}return l}function queryCellElement(e,l){return e.querySelector(".vxe-cell"+l)}function toFilters(e){return e&&_xeUtils.default.isArray(e)?e.map(({label:e,value:l,data:t,resetValue:r,checked:o})=>({label:e,value:l,data:t,resetValue:r,checked:!!o,_checked:!!o})):e}function getColReMinWidth(e){var{$table:l,column:t,cell:r}=e,o=l,{showHeaderOverflow:l,resizableOpts:i}=l,i=i.minWidth;if(i){e=_xeUtils.default.isFunction(i)?i(e):i;if("auto"!==e)return Math.max(1,_xeUtils.default.toNumber(e))}var n,u,a,s,i=o.elemStore,{showHeaderOverflow:e,minWidth:o}=t,t=_xeUtils.default.isUndefined(e)||_xeUtils.default.isNull(e)?l:e,l="title"===t||(!0===t||"tooltip"===t)||"ellipsis"===t;let c=_xeUtils.default.floor(1.6*(_xeUtils.default.toNumber(getComputedStyle(r).fontSize)||14))+(getPaddingLeftRightSize(r)+getPaddingLeftRightSize(queryCellElement(r,"")));if(l&&(e=getPaddingLeftRightSize(queryCellElement(r,">.vxe-cell--drag-handle")),t=getPaddingLeftRightSize(queryCellElement(r,">.vxe-cell--checkbox")),l=getElementMarginWidth(queryCellElement(r,">.vxe-cell--required-icon")),n=getElementMarginWidth(queryCellElement(r,">.vxe-cell--edit-icon")),u=getElementMarginWidth(queryCellElement(r,">.vxe-cell-title-prefix-icon")),a=getElementMarginWidth(queryCellElement(r,">.vxe-cell-title-suffix-icon")),s=getElementMarginWidth(queryCellElement(r,">.vxe-cell--sort")),r=getElementMarginWidth(queryCellElement(r,">.vxe-cell--filter")),c+=e+t+l+n+u+a+r+s),o){e=getRefElem(i["main-body-scroll"]);if(e){if((0,_dom.isScale)(o))return t=(e.clientWidth-1)/100,Math.max(c,Math.floor(_xeUtils.default.toInteger(o)*t));if((0,_dom.isPx)(o))return Math.max(c,_xeUtils.default.toInteger(o))}}return c}exports.convertHeaderColumnToRows=convertHeaderColumnToRows;let lineOffsetSizes={mini:3,small:2,medium:1};function countTreeExpand(e,l){let t=1;if(e){var r=l.$table,o=r.computeTreeOpts,{transform:i,mapChildrenField:n}=o,o=o.children||o.childrenField,u=e[i?n:o];if(u&&r.isTreeExpandByRow(e))for(let e=0;e<u.length;e++)t+=countTreeExpand(u[e],l)}return t}function getOffsetSize(e){e=e.computeSize;return e&&lineOffsetSizes[e]||0}function calcTreeLine(e,l){var{$table:t,row:r}=e,o=t.showOverflow,i=t.scrollYLoad,n=t.fullAllDataRowIdData,u=t.computeRowOpts,a=t.computeCellOpts,s=t.computeDefaultRowHeight,n=n[getRowid(t,r)],r=n.resizeHeight||a.height||u.height||s;let c=1,d=(l&&(c=countTreeExpand(l,e)),r);return(d=i&&!o?n.height||r:d)*c-(l?1:12-getOffsetSize(t))}function mergeBodyMethod(l,t,r){for(let e=0;e<l.length;e++){var{row:o,col:i,rowspan:n,colspan:u}=l[e];if(-1<i&&-1<o&&n&&u){if(o===t&&i===r)return{rowspan:n,colspan:u};if(o<=t&&t<o+n&&i<=r&&r<i+u)return{rowspan:0,colspan:0}}}}function getCellValue(e,l){return _xeUtils.default.get(e,l.field)}function setCellValue(e,l,t){return _xeUtils.default.set(e,l.field,t)}function getRefElem(e){return e?e.$el||e:null}function clearTableDefaultStatus(e){return e.initStatus=!1,e.clearSort(),e.clearCurrentRow(),e.clearCurrentColumn(),e.clearRadioRow(),e.clearRadioReserve(),e.clearCheckboxRow(),e.clearCheckboxReserve(),e.clearRowExpand(),e.clearTreeExpand(),e.clearTreeExpandReserve(),e.clearEdit&&e.clearEdit(),e.clearSelected&&(e.keyboardConfig||e.mouseConfig)&&e.clearSelected(),e.clearCellAreas&&e.mouseConfig&&(e.clearCellAreas(),e.clearCopyCellArea()),e.clearScroll()}function clearTableAllStatus(e){return e.clearFilter&&e.clearFilter(),clearTableDefaultStatus(e)}function isColumnInfo(e){return e instanceof _columnInfo.ColumnInfo}function createColumn(e,l,t){return isColumnInfo(l)?l:new _columnInfo.ColumnInfo(e,l,t)}function rowToVisible(t,r){var e=t.showOverflow,l=t.scrollYLoad,{elemStore:o,afterFullData:i,fullAllDataRowIdData:n,isResizeCellHeight:u}=t,a=t.computeRowOpts,s=t.computeCellOpts,c=t.computeDefaultRowHeight,d=t.computeLeftFixedWidth,f=t.computeRightFixedWidth,o=getRefElem(o["main-body-scroll"]),m=getRowid(t,r);if(o){var g=o.clientHeight,h=o.scrollTop,o=o.querySelector(`[rowid="${m}"]`);if(o){var p=o.offsetParent,p=o.offsetTop+(p?p.offsetTop:0),o=o.clientHeight;if(p<h||h+g<p)return t.scrollTo(null,p);if(g+h<=p+o)return t.scrollTo(null,h+o)}else if(l){if(!(u||s.height||a.height)&&e)return t.scrollTo(null,(t.findRowIndexOf(i,r)-1)*c);let l=0;p=n[m],o=p&&(p.resizeHeight||s.height||a.height)||c;for(let e=0;e<i.length;e++){var x=i[e],C=getRowid(t,x);if(x===r||C===m)break;x=n[C];l+=x&&(x.resizeHeight||s.height||a.height)||c}return l<h?t.scrollTo(null,l-d-1):t.scrollTo(null,l+o-(g-f-1))}}return Promise.resolve()}function colToVisible(t,r,l){var o=t.scrollXLoad,{elemStore:i,visibleColumn:n}=t,u=t.computeLeftFixedWidth,a=t.computeRightFixedWidth,i=getRefElem(i["main-body-scroll"]);if(!r.fixed&&i){var s=i.clientWidth,c=i.scrollLeft;let e=null;if(l&&(l=getRowid(t,l),e=i.querySelector(`[rowid="${l}"] .`+r.id)),e=e||i.querySelector("."+r.id)){l=e.offsetParent,i=e.offsetLeft+(l?l.offsetLeft:0),l=e.clientWidth;if(i<c+u)return t.scrollTo(i-u-1);if(s-a<i+l-c)return t.scrollTo(i+l-(s-a-1))}else if(o){let l=0;i=r.renderWidth;for(let e=0;e<n.length;e++){var d=n[e];if(d===r||d.id===r.id)break;l+=d.renderWidth}return l<c?t.scrollTo(l-u-1):t.scrollTo(l+i-(s-a-1))}}return Promise.resolve()}