@visactor/vtable 1.9.2-alpha.5 → 1.9.2-alpha.6

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 (85) hide show
  1. package/cjs/components/menu/dom/logic/MenuElement.js +1 -1
  2. package/cjs/components/menu/dom/logic/MenuElement.js.map +1 -1
  3. package/cjs/components/menu/dom/logic/MenuElementStyle.js +1 -1
  4. package/cjs/components/menu/dom/logic/MenuElementStyle.js.map +1 -1
  5. package/cjs/core/BaseTable.js +1 -1
  6. package/cjs/core/BaseTable.js.map +1 -1
  7. package/cjs/core/animation.js +3 -2
  8. package/cjs/core/animation.js.map +1 -1
  9. package/cjs/dataset/dataset-pivot-table.js +1 -2
  10. package/cjs/dataset/dataset.js +1 -0
  11. package/cjs/event/listener/table-group.js +3 -3
  12. package/cjs/event/listener/table-group.js.map +1 -1
  13. package/cjs/index.d.ts +3 -1
  14. package/cjs/index.js +20 -2
  15. package/cjs/index.js.map +1 -1
  16. package/cjs/layout/index.js +1 -2
  17. package/cjs/layout/layout-helper.js +2 -1
  18. package/cjs/plugins/carousel-animation.d.ts +29 -0
  19. package/cjs/plugins/carousel-animation.js +60 -0
  20. package/cjs/plugins/carousel-animation.js.map +1 -0
  21. package/cjs/plugins/invert-highlight.d.ts +19 -0
  22. package/cjs/plugins/invert-highlight.js +72 -0
  23. package/cjs/plugins/invert-highlight.js.map +1 -0
  24. package/cjs/scenegraph/graphic/group.js +2 -1
  25. package/cjs/scenegraph/graphic/group.js.map +1 -1
  26. package/cjs/scenegraph/group-creater/cell-helper.js +3 -2
  27. package/cjs/scenegraph/group-creater/cell-helper.js.map +1 -1
  28. package/cjs/scenegraph/layout/compute-row-height.js +1 -1
  29. package/cjs/scenegraph/layout/compute-row-height.js.map +1 -1
  30. package/cjs/scenegraph/scenegraph.js +1 -1
  31. package/cjs/scenegraph/utils/cell-border-stroke-width.js +4 -9
  32. package/cjs/scenegraph/utils/cell-border-stroke-width.js.map +1 -1
  33. package/cjs/tools/cell-range.d.ts +2 -0
  34. package/cjs/tools/cell-range.js +10 -0
  35. package/cjs/tools/cell-range.js.map +1 -0
  36. package/cjs/tools/style.d.ts +0 -2
  37. package/cjs/tools/style.js +4 -17
  38. package/cjs/tools/style.js.map +1 -1
  39. package/cjs/ts-types/base-table.d.ts +4 -2
  40. package/cjs/ts-types/base-table.js.map +1 -1
  41. package/cjs/vrender.js.map +1 -1
  42. package/dist/vtable.js +272 -122
  43. package/dist/vtable.min.js +2 -2
  44. package/es/components/menu/dom/logic/MenuElement.js +1 -1
  45. package/es/components/menu/dom/logic/MenuElement.js.map +1 -1
  46. package/es/components/menu/dom/logic/MenuElementStyle.js +1 -1
  47. package/es/components/menu/dom/logic/MenuElementStyle.js.map +1 -1
  48. package/es/core/BaseTable.js +1 -1
  49. package/es/core/BaseTable.js.map +1 -1
  50. package/es/core/animation.js +4 -3
  51. package/es/core/animation.js.map +1 -1
  52. package/es/dataset/dataset-pivot-table.js +1 -2
  53. package/es/dataset/dataset.js +2 -1
  54. package/es/event/listener/table-group.js +3 -3
  55. package/es/event/listener/table-group.js.map +1 -1
  56. package/es/index.d.ts +3 -1
  57. package/es/index.js +5 -1
  58. package/es/index.js.map +1 -1
  59. package/es/layout/index.js +1 -2
  60. package/es/layout/layout-helper.js +2 -1
  61. package/es/plugins/carousel-animation.d.ts +29 -0
  62. package/es/plugins/carousel-animation.js +52 -0
  63. package/es/plugins/carousel-animation.js.map +1 -0
  64. package/es/plugins/invert-highlight.d.ts +19 -0
  65. package/es/plugins/invert-highlight.js +69 -0
  66. package/es/plugins/invert-highlight.js.map +1 -0
  67. package/es/scenegraph/graphic/group.js +2 -1
  68. package/es/scenegraph/graphic/group.js.map +1 -1
  69. package/es/scenegraph/group-creater/cell-helper.js +4 -1
  70. package/es/scenegraph/group-creater/cell-helper.js.map +1 -1
  71. package/es/scenegraph/layout/compute-row-height.js +1 -1
  72. package/es/scenegraph/layout/compute-row-height.js.map +1 -1
  73. package/es/scenegraph/scenegraph.js +1 -1
  74. package/es/scenegraph/utils/cell-border-stroke-width.js +1 -3
  75. package/es/scenegraph/utils/cell-border-stroke-width.js.map +1 -1
  76. package/es/tools/cell-range.d.ts +2 -0
  77. package/es/tools/cell-range.js +4 -0
  78. package/es/tools/cell-range.js.map +1 -0
  79. package/es/tools/style.d.ts +0 -2
  80. package/es/tools/style.js +0 -10
  81. package/es/tools/style.js.map +1 -1
  82. package/es/ts-types/base-table.d.ts +4 -2
  83. package/es/ts-types/base-table.js.map +1 -1
  84. package/es/vrender.js.map +1 -1
  85. package/package.json +7 -7
package/dist/vtable.js CHANGED
@@ -4448,14 +4448,8 @@
4448
4448
  return needTestLetter && (index = testLetter(desc, index)), index;
4449
4449
  }
4450
4450
  function testLetter(string, index) {
4451
- let negativeWrongMatch = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : !1;
4452
4451
  let i = index;
4453
- for (; regLetter.test(string[i - 1]) && regLetter.test(string[i]) || regPunctuation.test(string[i]);) if (i--, i <= 0) return negativeWrongMatch ? testLetter2(string, index) : index;
4454
- return i;
4455
- }
4456
- function testLetter2(string, index) {
4457
- let i = index;
4458
- for (; regLetter.test(string[i - 1]) && regLetter.test(string[i]) || regPunctuation.test(string[i]);) if (i++, i >= string.length) return i;
4452
+ for (; regLetter.test(string[i - 1]) && regLetter.test(string[i]) || regPunctuation.test(string[i]);) if (i--, i <= 0) return index;
4459
4453
  return i;
4460
4454
  }
4461
4455
  function measureTextCanvas(text, character) {
@@ -4553,7 +4547,7 @@
4553
4547
  width: length
4554
4548
  };
4555
4549
  }
4556
- clipText(text, options, width, wordBreak, keepAllBreak) {
4550
+ clipText(text, options, width, wordBreak) {
4557
4551
  if (0 === text.length) return {
4558
4552
  str: "",
4559
4553
  width: 0
@@ -4569,8 +4563,8 @@
4569
4563
  };
4570
4564
  const data = this._clipText(text, options, width, 0, text.length - 1, "end", !1);
4571
4565
  if (wordBreak && data.str !== text) {
4572
- let index = testLetter(text, data.str.length, keepAllBreak);
4573
- index !== data.str.length && (index > data.str.length && (data.wordBreaked = index, index = data.str.length), data.str = text.substring(0, index), data.width = this.measureTextWidth(data.str, options));
4566
+ const index = testLetter(text, data.str.length);
4567
+ index !== data.str.length && (data.str = text.substring(0, index), data.width = this.measureTextWidth(data.str, options));
4574
4568
  }
4575
4569
  return data;
4576
4570
  }
@@ -8650,7 +8644,7 @@
8650
8644
  const path = "function" == typeof graphic.pathProxy ? graphic.pathProxy(graphic.attribute) : graphic.pathProxy;
8651
8645
  return renderCommandList(path.commandList, context, x, y), context.setShadowBlendStyle && context.setShadowBlendStyle(graphic, graphic.attribute, themeAttributes), doStroke && (strokeCb ? strokeCb(context, graphic.attribute, themeAttributes) : sVisible && (context.setStrokeStyle(graphic, graphic.attribute, x - originX, y - originY, themeAttributes), context.stroke())), doFill && (fillCb ? fillCb(context, graphic.attribute, themeAttributes) : fVisible && (context.setCommonStyle(graphic, graphic.attribute, x - originX, y - originY, themeAttributes), context.fill())), !0;
8652
8646
  }
8653
- function intersect(x0, y0, x1, y1, x2, y2, x3, y3) {
8647
+ function intersect$2(x0, y0, x1, y1, x2, y2, x3, y3) {
8654
8648
  const x10 = x1 - x0,
8655
8649
  y10 = y1 - y0,
8656
8650
  x32 = x3 - x2,
@@ -8719,7 +8713,7 @@
8719
8713
  yire = innerRadius * sin(innerEndAngle);
8720
8714
  let xore, yore, xirs, yirs;
8721
8715
  if ((maxInnerCornerRadius > epsilon || maxOuterCornerRadius > epsilon) && (xore = outerRadius * cos(outerEndAngle), yore = outerRadius * sin(outerEndAngle), xirs = innerRadius * cos(innerStartAngle), yirs = innerRadius * sin(innerStartAngle), deltaAngle < pi)) {
8722
- const oc = intersect(xors, yors, xirs, yirs, xore, yore, xire, yire);
8716
+ const oc = intersect$2(xors, yors, xirs, yirs, xore, yore, xire, yire);
8723
8717
  if (oc) {
8724
8718
  const ax = xors - oc[0],
8725
8719
  ay = yors - oc[1],
@@ -9284,7 +9278,7 @@
9284
9278
  validCheck(attribute, theme, aabbBounds, graphic) {
9285
9279
  if (!graphic) return !0;
9286
9280
  if (null != attribute.forceBoundsHeight || null != attribute.forceBoundsWidth) return !0;
9287
- if (graphic.shadowRoot || graphic.isContainer) return !0;
9281
+ if (graphic.shadowRoot) return !0;
9288
9282
  const {
9289
9283
  visible = theme.visible
9290
9284
  } = attribute;
@@ -12553,22 +12547,20 @@
12553
12547
  });
12554
12548
  break;
12555
12549
  }
12556
- const clip = layoutObj.textMeasure.clipText(str, layoutObj.textOptions, maxLineWidth, "break-all" !== wordBreak, "keep-all" === wordBreak);
12557
- if ("" !== str && "" === clip.str || clip.wordBreaked) {
12550
+ const clip = layoutObj.textMeasure.clipText(str, layoutObj.textOptions, maxLineWidth, "break-word" === wordBreak);
12551
+ if ("" !== str && "" === clip.str) {
12558
12552
  if (ellipsis) {
12559
12553
  const clipEllipsis = layoutObj.textMeasure.clipTextWithSuffix(str, layoutObj.textOptions, maxLineWidth, ellipsis, !1, suffixPosition);
12560
12554
  clip.str = null !== (_c = clipEllipsis.str) && void 0 !== _c ? _c : "", clip.width = null !== (_d = clipEllipsis.width) && void 0 !== _d ? _d : 0;
12561
12555
  } else clip.str = "", clip.width = 0;
12562
12556
  needCut = !1;
12563
12557
  }
12564
- linesLayout.push({
12558
+ if (linesLayout.push({
12565
12559
  str: clip.str,
12566
12560
  width: clip.width
12567
- });
12568
- let cutLength = clip.str.length;
12569
- if (!clip.wordBreaked || "" !== str && "" === clip.str || (needCut = !0, cutLength = clip.wordBreaked), clip.str.length === str.length) ;else if (needCut) {
12570
- let newStr = str.substring(cutLength);
12571
- "keep-all" === wordBreak && (newStr = newStr.replace(/^\s+/g, "")), lines.splice(i + 1, 0, newStr);
12561
+ }), clip.str.length === str.length) ;else if (needCut) {
12562
+ const newStr = str.substring(clip.str.length);
12563
+ lines.splice(i + 1, 0, newStr);
12572
12564
  }
12573
12565
  }
12574
12566
  let maxWidth = 0;
@@ -21038,15 +21030,6 @@
21038
21030
  labelPoint = getVerticalCoord(point, getCircleVerticalVector(labelOffset, point, center, inside));
21039
21031
  return getCircleLabelPosition(labelPoint, getCircleVerticalVector(labelOffset || 1, labelPoint, center, inside));
21040
21032
  }
21041
- function textIntersect(textA, textB, sep) {
21042
- let a = textA.OBBBounds,
21043
- b = textB.OBBBounds;
21044
- return a && b && !a.empty() && !b.empty() ? a.intersects(b) : (a = textA.AABBBounds, b = textB.AABBBounds, sep > Math.max(b.x1 - a.x2, a.x1 - b.x2, b.y1 - a.y2, a.y1 - b.y2));
21045
- }
21046
- function hasOverlap(items, pad) {
21047
- for (let b, i = 1, n = items.length, a = items[0]; i < n; a = b, ++i) if (b = items[i], textIntersect(a, b, pad)) return !0;
21048
- return !1;
21049
- }
21050
21033
 
21051
21034
  const dispatchHoverState = (e, container, lastHover) => {
21052
21035
  const target = e.target;
@@ -21371,9 +21354,17 @@
21371
21354
  },
21372
21355
  greedy: function (items, sep) {
21373
21356
  let a;
21374
- return items.filter((b, i) => i && textIntersect(a, b, sep) ? b.setAttribute("opacity", 0) : (a = b, 1));
21357
+ return items.filter((b, i) => i && intersect$1(a, b, sep) ? b.setAttribute("opacity", 0) : (a = b, 1));
21375
21358
  }
21376
21359
  };
21360
+ function intersect$1(textA, textB, sep) {
21361
+ let a = textA.OBBBounds,
21362
+ b = textB.OBBBounds;
21363
+ return a && b && !a.empty() && !b.empty() ? a.intersects(b) : (a = textA.AABBBounds, b = textB.AABBBounds, sep > Math.max(b.x1 - a.x2, a.x1 - b.x2, b.y1 - a.y2, a.y1 - b.y2));
21364
+ }
21365
+ function hasOverlap$1(items, pad) {
21366
+ for (let b, i = 1, n = items.length, a = items[0]; i < n; a = b, ++i) if (intersect$1(a, b = items[i], pad)) return !0;
21367
+ }
21377
21368
  function hasBounds(item) {
21378
21369
  let bounds;
21379
21370
  return bounds = item.OBBBounds.empty() ? item.AABBBounds : item.OBBBounds, bounds.width() > 1 && bounds.height() > 1;
@@ -21381,20 +21372,6 @@
21381
21372
  function reset(items) {
21382
21373
  return items.forEach(item => item.setAttribute("opacity", 1)), items;
21383
21374
  }
21384
- function forceItemVisible$1(sourceItem, items, check, comparator) {
21385
- let inverse = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : !1;
21386
- if (check && !sourceItem.attribute.opacity) {
21387
- const remainLength = items.length;
21388
- if (remainLength > 1) {
21389
- sourceItem.setAttribute("opacity", 1);
21390
- for (let i = 0; i < remainLength; i++) {
21391
- const item = inverse ? items[remainLength - 1 - i] : items[i];
21392
- if (!comparator(item)) break;
21393
- item.setAttribute("opacity", 0);
21394
- }
21395
- }
21396
- }
21397
- }
21398
21375
  function autoHide(labels, config) {
21399
21376
  if (isEmpty$1(labels)) return;
21400
21377
  const source = labels.filter(hasBounds);
@@ -21406,19 +21383,20 @@
21406
21383
  separation: sep = 0
21407
21384
  } = config,
21408
21385
  reduce = isFunction$3(method) ? method : methods$1[method] || methods$1.parity;
21409
- if (items.length >= 3 && hasOverlap(items, sep)) {
21386
+ if (items.length >= 3 && hasOverlap$1(items, sep)) {
21410
21387
  do {
21411
21388
  items = reduce(items, sep);
21412
- } while (items.length >= 3 && hasOverlap(items, sep));
21413
- const shouldCheck = function (length, visibility) {
21414
- let checkLength = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : !0;
21415
- return checkLength && length < 3 || visibility;
21416
- },
21417
- checkFirst = shouldCheck(items.length, config.firstVisible, !1);
21418
- let checkLast = shouldCheck(items.length, config.lastVisible);
21419
- const firstSourceItem = source[0],
21420
- lastSourceItem = last$1(source);
21421
- textIntersect(firstSourceItem, lastSourceItem, sep) && checkFirst && checkLast && (lastSourceItem.setAttribute("opacity", 0), checkLast = !1), forceItemVisible$1(firstSourceItem, items, checkFirst, item => textIntersect(item, firstSourceItem, sep)), forceItemVisible$1(lastSourceItem, items, checkLast, item => textIntersect(item, lastSourceItem, sep) || !(!checkFirst || item === firstSourceItem) && textIntersect(item, firstSourceItem, sep), !0);
21389
+ } while (items.length >= 3 && hasOverlap$1(items, sep));
21390
+ if (items.length < 3 || config.lastVisible) {
21391
+ const lastSourceItem = last$1(source);
21392
+ if (!lastSourceItem.attribute.opacity) {
21393
+ const remainLength = items.length;
21394
+ if (remainLength > 1) {
21395
+ lastSourceItem.setAttribute("opacity", 1);
21396
+ for (let i = remainLength - 1; i >= 0 && intersect$1(items[i], lastSourceItem, sep); i--) items[i].setAttribute("opacity", 0);
21397
+ }
21398
+ }
21399
+ }
21422
21400
  }
21423
21401
  source.forEach(item => {
21424
21402
  item.setAttribute("visible", !!item.attribute.opacity);
@@ -22025,7 +22003,6 @@
22025
22003
  autoHideMethod: autoHideMethod,
22026
22004
  autoHideSeparation: autoHideSeparation,
22027
22005
  lastVisible: lastVisible,
22028
- firstVisible: firstVisible,
22029
22006
  autoWrap: autoWrap$1,
22030
22007
  overflowLimitLength: overflowLimitLength
22031
22008
  } = label;
@@ -22059,8 +22036,7 @@
22059
22036
  orient: orient,
22060
22037
  method: autoHideMethod,
22061
22038
  separation: autoHideSeparation,
22062
- lastVisible: lastVisible,
22063
- firstVisible: firstVisible
22039
+ lastVisible: lastVisible
22064
22040
  });
22065
22041
  }
22066
22042
  }
@@ -22130,6 +22106,13 @@
22130
22106
  nextBounds = new AABBBounds$1(nextLabel).expand(gap / 2);
22131
22107
  return prevBounds.intersects(nextBounds);
22132
22108
  };
22109
+ function intersect(a, b, sep) {
22110
+ return sep > Math.max(b.x1 - a.x2, a.x1 - b.x2, b.y1 - a.y2, a.y1 - b.y2);
22111
+ }
22112
+ function hasOverlap(items, pad) {
22113
+ for (let b, i = 1, n = items.length, a = items[0]; i < n; a = b, ++i) if (b = items[i], intersect(a.AABBBounds, b.AABBBounds, pad)) return !0;
22114
+ return !1;
22115
+ }
22133
22116
  const MIN_TICK_GAP = 12;
22134
22117
  const calculateFlushPos = (basePosition, size, rangePosition, otherEnd) => rangePosition < basePosition ? Math.max(basePosition - size / 2, rangePosition) : rangePosition > basePosition ? Math.min(basePosition - size / 2, rangePosition - size) : rangePosition < otherEnd ? rangePosition : rangePosition - size;
22135
22118
  const getCartesianLabelBounds = (scale, domain, op) => {
@@ -22663,20 +22646,6 @@
22663
22646
  } else scaleTicks = getTicks(count);
22664
22647
  return scaleTicks;
22665
22648
  }
22666
- function forceItemVisible(sourceItem, items, check, comparator) {
22667
- let inverse = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : !1;
22668
- if (check && !items.includes(sourceItem)) {
22669
- let remainLength = items.length;
22670
- if (remainLength > 1) {
22671
- inverse ? items.push(sourceItem) : items.unshift(sourceItem);
22672
- for (let i = 0; i < remainLength; i++) {
22673
- const index = inverse ? remainLength - 1 - i : i;
22674
- if (!comparator(items[index])) break;
22675
- items.splice(index, 1), i--, remainLength--;
22676
- }
22677
- }
22678
- }
22679
- }
22680
22649
  const continuousTicks = (scale, op) => {
22681
22650
  var _a, _b;
22682
22651
  if (!isContinuous(scale.type)) return convertDomainToTickData(scale.domain());
@@ -22716,8 +22685,7 @@
22716
22685
  customTicks: customTicks
22717
22686
  }));
22718
22687
  }
22719
- const domain = scale.domain();
22720
- if (op.labelFirstVisible && domain[0] !== scaleTicks[0] && !scaleTicks.includes(domain[0]) && scaleTicks.unshift(domain[0]), op.labelLastVisible && domain[domain.length - 1] !== scaleTicks[scaleTicks.length - 1] && !scaleTicks.includes(domain[domain.length - 1]) && scaleTicks.push(domain[domain.length - 1]), op.sampling && scaleTicks.length > 1 && ("cartesian" === op.coordinateType || "polar" === op.coordinateType && "radius" === op.axisOrientType)) {
22688
+ if (op.sampling && ("cartesian" === op.coordinateType || "polar" === op.coordinateType && "radius" === op.axisOrientType)) {
22721
22689
  const {
22722
22690
  labelGap = 4,
22723
22691
  labelFlush: labelFlush
@@ -22726,14 +22694,8 @@
22726
22694
  AABBBounds: bounds,
22727
22695
  value: scaleTicks[i]
22728
22696
  }));
22729
- const source = [...items],
22730
- firstSourceItem = source[0],
22731
- lastSourceItem = last$1(source),
22732
- samplingMethod = breakData && breakData() ? methods.greedy : methods.parity;
22697
+ const samplingMethod = breakData && breakData() ? methods.greedy : methods.parity;
22733
22698
  for (; items.length >= 3 && hasOverlap(items, labelGap);) items = samplingMethod(items, labelGap);
22734
- const checkFirst = op.labelFirstVisible;
22735
- let checkLast = op.labelLastVisible;
22736
- textIntersect(firstSourceItem, lastSourceItem, labelGap) && items.includes(lastSourceItem) && items.length > 1 && checkFirst && checkLast && (items.splice(items.indexOf(lastSourceItem), 1), checkLast = !1), forceItemVisible(firstSourceItem, items, checkFirst, item => textIntersect(item, firstSourceItem, labelGap)), forceItemVisible(lastSourceItem, items, checkLast, item => textIntersect(item, lastSourceItem, labelGap) || !(!checkFirst || item === firstSourceItem) && textIntersect(item, firstSourceItem, labelGap), !0);
22737
22699
  const ticks = items.map(item => item.value);
22738
22700
  ticks.length < 3 && labelFlush && (ticks.length > 1 && ticks.pop(), last$1(ticks) !== last$1(scaleTicks) && ticks.push(last$1(scaleTicks))), scaleTicks = ticks;
22739
22701
  }
@@ -22745,7 +22707,7 @@
22745
22707
  },
22746
22708
  greedy: function (items, sep) {
22747
22709
  let a;
22748
- return items.filter((b, i) => (!i || !textIntersect(a, b, sep)) && (a = b, !0));
22710
+ return items.filter((b, i) => (!i || !intersect(a.AABBBounds, b.AABBBounds, sep)) && (a = b, !0));
22749
22711
  }
22750
22712
  };
22751
22713
 
@@ -23507,8 +23469,8 @@
23507
23469
  this._autoEllipsis(autoEllipsisStrategy, layoutWidth, labelShape, valueShape), valueAttr.alignRight ? valueShape.setAttributes({
23508
23470
  textAlign: "right",
23509
23471
  x: this._itemWidthByUser - shapeSize / 2 - parsedPadding[1] - parsedPadding[3] - focusSpace - valueSpace
23510
- }) : valueShape.setAttribute("x", labelSpace + (labelShape.AABBBounds.empty() ? 0 : labelShape.AABBBounds.x2));
23511
- } else valueShape.setAttribute("x", labelSpace + (labelShape.AABBBounds.empty() ? 0 : labelShape.AABBBounds.x2));
23472
+ }) : valueShape.setAttribute("x", valueSpace + (labelShape.AABBBounds.empty() ? 0 : labelShape.AABBBounds.x2));
23473
+ } else valueShape.setAttribute("x", valueSpace + (labelShape.AABBBounds.empty() ? 0 : labelShape.AABBBounds.x2));
23512
23474
  focusStartX = valueSpace + (valueShape.AABBBounds.empty() ? 0 : valueShape.AABBBounds.x2), innerGroup.add(valueShape);
23513
23475
  } else this._itemWidthByUser ? (labelShape.setAttribute("maxLineWidth", this._itemWidthByUser - parsedPadding[1] - parsedPadding[3] - shapeSize - shapeSpace - focusSpace), focusStartX = labelSpace + (labelShape.AABBBounds.empty() ? 0 : labelShape.AABBBounds.x2)) : focusStartX = labelSpace + (labelShape.AABBBounds.empty() ? 0 : labelShape.AABBBounds.x2);
23514
23476
  focusShape && (focusShape.setAttribute("x", focusStartX), innerGroup.add(focusShape));
@@ -23574,8 +23536,9 @@
23574
23536
  disableTriggerEvent: disableTriggerEvent
23575
23537
  }));
23576
23538
  }
23577
- _updatePositionOfPager(renderStartY, compWidth, compHeight) {
23539
+ _updatePositionOfPager(contentWidth, contentHeight, renderStartY, compWidth, compHeight) {
23578
23540
  const {
23541
+ maxHeight: maxHeight,
23579
23542
  pager: pager
23580
23543
  } = this.attribute,
23581
23544
  {
@@ -23586,14 +23549,14 @@
23586
23549
  if (this._pagerComponent.setTotal(totalPage), isHorizontal) {
23587
23550
  let y;
23588
23551
  y = "start" === position ? renderStartY : "end" === position ? renderStartY + compHeight - this._pagerComponent.AABBBounds.height() / 2 : renderStartY + compHeight / 2 - this._pagerComponent.AABBBounds.height() / 2, this._pagerComponent.setAttributes({
23589
- x: compWidth - this._pagerComponent.AABBBounds.width(),
23552
+ x: contentWidth,
23590
23553
  y: y
23591
23554
  });
23592
23555
  } else {
23593
23556
  let x;
23594
23557
  x = "start" === position ? 0 : "end" === position ? compWidth - this._pagerComponent.AABBBounds.width() : (compWidth - this._pagerComponent.AABBBounds.width()) / 2, this._pagerComponent.setAttributes({
23595
23558
  x: x,
23596
- y: compHeight - this._pagerComponent.AABBBounds.height()
23559
+ y: maxHeight - this._pagerComponent.AABBBounds.height()
23597
23560
  });
23598
23561
  }
23599
23562
  }
@@ -23622,10 +23585,11 @@
23622
23585
  const {
23623
23586
  value: value
23624
23587
  } = e.detail;
23625
- let newPage;
23626
- return 0 === value[0] ? newPage = 1 : 1 === value[1] ? newPage = this._itemContext.totalPage : (newPage = value[0] * this._itemContext.totalPage, pager.scrollByPosition ? newPage += 1 : newPage = Math.floor(newPage) + 1), newPage;
23588
+ let newPage = value[0] * this._itemContext.totalPage;
23589
+ return pager.scrollByPosition ? newPage += 1 : newPage = Math.floor(newPage) + 1, newPage;
23627
23590
  } : e => e.detail.current,
23628
23591
  onScroll = e => {
23592
+ e.preventDefault();
23629
23593
  const scrollComponent = this._pagerComponent,
23630
23594
  preScrollRange = scrollComponent.getScrollRange(),
23631
23595
  {
@@ -23654,7 +23618,7 @@
23654
23618
  if (this._itemContext.isScrollbar) {
23655
23619
  if (this._pagerComponent.addEventListener("scrollDrag", onPaging), this._pagerComponent.addEventListener("scrollUp", onPaging), this.attribute.pager.roamScroll) {
23656
23620
  const THROTTLE_TIME = 50;
23657
- this.addEventListener("wheel", e => e.nativeEvent.preventDefault()), this.addEventListener("wheel", throttle$1(onScroll, THROTTLE_TIME));
23621
+ this.addEventListener("wheel", throttle$1(onScroll, THROTTLE_TIME));
23658
23622
  }
23659
23623
  } else this._pagerComponent.addEventListener("toPrev", onPaging), this._pagerComponent.addEventListener("toNext", onPaging);
23660
23624
  }
@@ -23702,7 +23666,7 @@
23702
23666
  }), startX += spaceCol + width;
23703
23667
  }), this._itemContext.startX = startX, this._itemContext.startY = startY, this._itemContext.pages = pages;
23704
23668
  const total = Math.ceil(pages / maxRow);
23705
- this._itemContext.totalPage = total, this._updatePositionOfPager(renderStartY, compWidth, compHeight);
23669
+ this._itemContext.totalPage = total, this._updatePositionOfPager(contentWidth, contentHeight, renderStartY, compWidth, compHeight);
23706
23670
  } else {
23707
23671
  if (compWidth = this._itemMaxWidth * maxCol + (maxCol - 1) * spaceCol, compHeight = maxHeight, contentWidth = compWidth, comp = this._createPager(compStyle), this._pagerComponent = comp, this._innerView.add(comp), contentHeight = maxHeight - comp.AABBBounds.height() - pagerSpace - renderStartY, contentHeight <= 0) return this._innerView.removeChild(comp), !1;
23708
23672
  itemsContainer.getChildren().forEach((item, index) => {
@@ -23715,7 +23679,7 @@
23715
23679
  }), startY += spaceRow + height;
23716
23680
  });
23717
23681
  const total = Math.ceil(pages / maxCol);
23718
- this._itemContext.totalPage = total, this._updatePositionOfPager(renderStartY, compWidth, compHeight);
23682
+ this._itemContext.totalPage = total, this._updatePositionOfPager(contentWidth, contentHeight, renderStartY, compWidth, compHeight);
23719
23683
  }
23720
23684
  defaultCurrent > 1 && (isHorizontal ? itemsContainer.setAttribute("y", -(defaultCurrent - 1) * (compHeight + spaceRow)) : itemsContainer.setAttribute("x", -(defaultCurrent - 1) * (compWidth + spaceCol)));
23721
23685
  const clipGroup = graphicCreator.group({
@@ -23838,9 +23802,6 @@
23838
23802
  config.state[key] && (isFunction$3(config.state[key]) ? newConfig.state[key] = config.state[key](item, isSelected, index, items) : newConfig.state[key] = config.state[key]);
23839
23803
  })), newConfig;
23840
23804
  }
23841
- release() {
23842
- super.release(), this.removeAllEventListeners();
23843
- }
23844
23805
  }
23845
23806
  DiscreteLegend.defaultAttributes = {
23846
23807
  layout: "horizontal",
@@ -27480,18 +27441,6 @@
27480
27441
  }
27481
27442
  return scrollStyle?.width ?? 7;
27482
27443
  }
27483
- function isValidStyle(style) {
27484
- if (!isValid$1(style)) {
27485
- return false;
27486
- }
27487
- if (isArray$1(style)) {
27488
- return style.some(s => isValid$1(s));
27489
- }
27490
- return true;
27491
- }
27492
- function isZeroStyle(style) {
27493
- return style === 0 || (isArray$1(style) && style.every(s => s === 0));
27494
- }
27495
27444
 
27496
27445
  const judgeType$1 = (value) => {
27497
27446
  switch (Object.prototype.toString.call(value)) {
@@ -34195,6 +34144,9 @@
34195
34144
  this._AABBBounds.setValue(x, y, x + width, y + height);
34196
34145
  this.parent && this.parent.addChildUpdateBoundTag();
34197
34146
  this.clearUpdateBoundTag();
34147
+ if (this.shadowRoot) {
34148
+ this.shadowRoot.tryUpdateAABBBounds();
34149
+ }
34198
34150
  return this._AABBBounds;
34199
34151
  }
34200
34152
  else if (this.role === 'body' ||
@@ -34319,9 +34271,7 @@
34319
34271
 
34320
34272
  function getCellBorderStrokeWidth(col, row, cellTheme, table) {
34321
34273
  let strokeArrayWidth = cellTheme?.group?.strokeArrayWidth ?? undefined;
34322
- if (table.theme.cellInnerBorder ||
34323
- !isValidStyle(table.theme.frameStyle.borderLineWidth) ||
34324
- isZeroStyle(table.theme.frameStyle.borderLineWidth)) {
34274
+ if (table.theme.cellInnerBorder) {
34325
34275
  return strokeArrayWidth;
34326
34276
  }
34327
34277
  if (col === 0) {
@@ -35567,6 +35517,107 @@
35567
35517
  });
35568
35518
  }
35569
35519
 
35520
+ function isSameRange(range1, range2) {
35521
+ if (!range1 && !range2) {
35522
+ return true;
35523
+ }
35524
+ if (!range1 || !range2) {
35525
+ return false;
35526
+ }
35527
+ return (range1.start.col === range2.start.col &&
35528
+ range1.start.row === range2.start.row &&
35529
+ range1.end.col === range2.end.col &&
35530
+ range1.end.row === range2.end.row);
35531
+ }
35532
+
35533
+ class InvertHighlightPlugin {
35534
+ table;
35535
+ range;
35536
+ _fill;
35537
+ _opacity;
35538
+ constructor(table, options) {
35539
+ this.table = table;
35540
+ this._fill = options?.fill ?? '#000';
35541
+ this._opacity = options?.opacity ?? 0.5;
35542
+ }
35543
+ setInvertHighlightRange(range) {
35544
+ if (isSameRange(this.range, range)) {
35545
+ return;
35546
+ }
35547
+ this.range = range;
35548
+ if (!range) {
35549
+ this.deleteAllCellGroupShadow();
35550
+ }
35551
+ else {
35552
+ this.updateCellGroupShadow();
35553
+ }
35554
+ this.table.scenegraph.updateNextFrame();
35555
+ }
35556
+ deleteAllCellGroupShadow() {
35557
+ if (!this.table.isPivotTable()) {
35558
+ this.updateCellGroupShadowInContainer(this.table.scenegraph.rowHeaderGroup);
35559
+ this.updateCellGroupShadowInContainer(this.table.scenegraph.leftBottomCornerGroup);
35560
+ }
35561
+ this.updateCellGroupShadowInContainer(this.table.scenegraph.bodyGroup);
35562
+ this.updateCellGroupShadowInContainer(this.table.scenegraph.rightFrozenGroup);
35563
+ this.updateCellGroupShadowInContainer(this.table.scenegraph.bottomFrozenGroup);
35564
+ this.updateCellGroupShadowInContainer(this.table.scenegraph.rightBottomCornerGroup);
35565
+ }
35566
+ updateCellGroupShadow() {
35567
+ if (!this.table.isPivotTable()) {
35568
+ this.updateCellGroupShadowInContainer(this.table.scenegraph.rowHeaderGroup, this.range);
35569
+ this.updateCellGroupShadowInContainer(this.table.scenegraph.leftBottomCornerGroup, this.range);
35570
+ }
35571
+ this.updateCellGroupShadowInContainer(this.table.scenegraph.bodyGroup, this.range);
35572
+ this.updateCellGroupShadowInContainer(this.table.scenegraph.rightFrozenGroup, this.range);
35573
+ this.updateCellGroupShadowInContainer(this.table.scenegraph.bottomFrozenGroup), this.range;
35574
+ this.updateCellGroupShadowInContainer(this.table.scenegraph.rightBottomCornerGroup, this.range);
35575
+ }
35576
+ updateCellGroupShadowInContainer(container, range) {
35577
+ container.forEachChildrenSkipChild((column) => {
35578
+ if (column.role === 'column') {
35579
+ column.forEachChildrenSkipChild((cell) => {
35580
+ if (cell.role !== 'cell') {
35581
+ return;
35582
+ }
35583
+ cell.attachShadow(cell.shadowRoot);
35584
+ const shadowGroup = cell.shadowRoot;
35585
+ if (!range) {
35586
+ shadowGroup.removeAllChild();
35587
+ }
35588
+ else if (cellInRange(range, cell.col, cell.row)) {
35589
+ shadowGroup.removeAllChild();
35590
+ }
35591
+ else if (!shadowGroup.firstChild) {
35592
+ const shadowRect = createRect({
35593
+ x: 0,
35594
+ y: 0,
35595
+ width: cell.attribute.width,
35596
+ height: cell.attribute.height,
35597
+ fill: this._fill,
35598
+ opacity: this._opacity
35599
+ });
35600
+ shadowRect.name = 'shadow-rect';
35601
+ shadowGroup.appendChild(shadowRect);
35602
+ }
35603
+ });
35604
+ }
35605
+ });
35606
+ }
35607
+ }
35608
+ function onBeforeAttributeUpdateForInvertHighlight(val, attribute) {
35609
+ const graphic = this;
35610
+ if (graphic.shadowRoot && graphic.shadowRoot.childrenCount && (isValid$1(val.width) || isValid$1(val.height))) {
35611
+ const shadowRect = graphic.shadowRoot.findChildrenByName('shadow-rect')[0];
35612
+ if (shadowRect) {
35613
+ shadowRect.setAttributes({
35614
+ width: val.width ?? shadowRect.attribute.width,
35615
+ height: val.height ?? shadowRect.attribute.height
35616
+ });
35617
+ }
35618
+ }
35619
+ }
35620
+
35570
35621
  function createCell(type, value, define, table, col, row, colWidth, cellWidth, cellHeight, columnGroup, y, padding, textAlign, textBaseline, mayHaveIcon, cellTheme, range, customResult) {
35571
35622
  let isAsync = false;
35572
35623
  let cellGroup;
@@ -35685,6 +35736,7 @@
35685
35736
  const createRadioCellGroup = Factory.getFunction('createRadioCellGroup');
35686
35737
  cellGroup = createRadioCellGroup(null, columnGroup, 0, y, col, row, colWidth, cellWidth, cellHeight, padding, textAlign, textBaseline, table, cellTheme, define);
35687
35738
  }
35739
+ cellGroup.onBeforeAttributeUpdate = onBeforeAttributeUpdateForInvertHighlight;
35688
35740
  return cellGroup;
35689
35741
  }
35690
35742
  function updateCell$1(col, row, table, addNew, isShadow) {
@@ -36381,7 +36433,9 @@
36381
36433
  if (isAllRowsAuto || table.getDefaultRowHeight(row) === 'auto') {
36382
36434
  const height = computeRowHeight(row, startCol, endCol, table);
36383
36435
  newHeights[row] = Math.round(height);
36384
- table._setRowHeight(row, height);
36436
+ if (table.heightAdaptiveMode === 'only-body') {
36437
+ table._setRowHeight(row, height);
36438
+ }
36385
36439
  }
36386
36440
  }
36387
36441
  for (let row = table.rowCount - table.bottomFrozenRowCount; row <= rowEnd; row++) {
@@ -50754,8 +50808,7 @@
50754
50808
  });
50755
50809
  table.scenegraph.stage.addEventListener('pointerdown', (e) => {
50756
50810
  const eventArgsSet = getCellEventArgsSet(e);
50757
- if (!eventArgsSet.eventArgs?.target ||
50758
- eventArgsSet.eventArgs?.target !== stateManager.residentHoverIcon?.icon) {
50811
+ if (eventArgsSet.eventArgs?.target !== stateManager.residentHoverIcon?.icon) {
50759
50812
  stateManager.hideMenu();
50760
50813
  }
50761
50814
  const isCompleteEdit = table.editorManager?.completeEdit(e.nativeEvent);
@@ -52752,8 +52805,6 @@
52752
52805
  cursor: default;
52753
52806
  width: max-content;
52754
52807
  box-shadow: 0px 8px 16px rgba(27, 31, 35, 0.12);
52755
- max-height: 100%;
52756
- overflow-y: auto;
52757
52808
  }
52758
52809
  .vtable__menu-element--hidden {
52759
52810
  opacity: 0;
@@ -53182,8 +53233,8 @@
53182
53233
  rootElement.style.left = `0px`;
53183
53234
  const maxWidth = containerWidth * 0.8;
53184
53235
  rootElement.style.maxWidth = `${maxWidth}px`;
53185
- const rootElementWidth = rootElement.offsetWidth;
53186
- const rootElementHeight = rootElement.offsetHeight;
53236
+ const rootElementWidth = rootElement.clientWidth;
53237
+ const rootElementHeight = rootElement.clientHeight;
53187
53238
  let rootElementLeft;
53188
53239
  let rootElementTop;
53189
53240
  if (position) {
@@ -56513,11 +56564,10 @@
56513
56564
  };
56514
56565
  const duration = !isBoolean$2(animationOption) ? animationOption?.duration ?? 3000 : animationOption ? 3000 : 0;
56515
56566
  const easing = !isBoolean$2(animationOption) ? animationOption?.easing ?? 'linear' : animationOption ? 'linear' : '';
56516
- const animation = new Animate().bind(this.tempGraphic).play(new Animateaaa(from, to, duration, easing, {
56567
+ new Animate(Generator.GenAutoIncrementId(), this.timeline).bind(this.tempGraphic).play(new Animateaaa(from, to, duration, easing, {
56517
56568
  graphic: this.tempGraphic,
56518
56569
  table: this.table
56519
56570
  }));
56520
- this.timeline.addAnimate(animation);
56521
56571
  this.ticker.start();
56522
56572
  }
56523
56573
  clear() {
@@ -56560,7 +56610,7 @@
56560
56610
  return TABLE_EVENT_TYPE;
56561
56611
  }
56562
56612
  options;
56563
- version = "1.9.2-alpha.5";
56613
+ version = "1.9.2-alpha.6";
56564
56614
  pagination;
56565
56615
  id = `VTable${Date.now()}`;
56566
56616
  headerStyleCache;
@@ -76749,8 +76799,106 @@
76749
76799
  return new Radio(params ? params.attribute : {});
76750
76800
  }
76751
76801
 
76802
+ class CarouselAnimationPlugin {
76803
+ table;
76804
+ rowCount;
76805
+ colCount;
76806
+ animationDuration;
76807
+ animationDelay;
76808
+ animationEasing;
76809
+ replaceScrollAction;
76810
+ playing;
76811
+ row;
76812
+ col;
76813
+ constructor(table, options) {
76814
+ this.table = table;
76815
+ this.rowCount = options?.rowCount ?? undefined;
76816
+ this.colCount = options?.colCount ?? undefined;
76817
+ this.animationDuration = options?.animationDuration ?? 500;
76818
+ this.animationDelay = options?.animationDelay ?? 1000;
76819
+ this.animationEasing = options?.animationEasing ?? 'linear';
76820
+ this.replaceScrollAction = options?.replaceScrollAction ?? false;
76821
+ this.playing = false;
76822
+ this.row = table.frozenRowCount;
76823
+ this.col = table.frozenColCount;
76824
+ this.init();
76825
+ }
76826
+ init() {
76827
+ if (this.replaceScrollAction) {
76828
+ this.table.disableScroll();
76829
+ this.table.scenegraph.stage.addEventListener('wheel', this.onScrollEnd.bind(this));
76830
+ }
76831
+ }
76832
+ onScrollEnd(e) {
76833
+ if (this.rowCount) {
76834
+ if (e.deltaY > 0) {
76835
+ this.row += this.rowCount;
76836
+ this.row = Math.min(this.row, this.table.rowCount - this.table.frozenRowCount);
76837
+ }
76838
+ else if (e.deltaY < 0) {
76839
+ this.row -= this.rowCount;
76840
+ this.row = Math.max(this.row, this.table.frozenRowCount);
76841
+ }
76842
+ this.table.scrollToRow(this.row, { duration: this.animationDuration, easing: this.animationEasing });
76843
+ }
76844
+ else if (this.colCount) {
76845
+ if (e.deltaX > 0) {
76846
+ this.col += this.colCount;
76847
+ this.col = Math.min(this.col, this.table.colCount - this.table.frozenColCount);
76848
+ }
76849
+ else if (e.deltaX < 0) {
76850
+ this.col -= this.colCount;
76851
+ this.col = Math.max(this.col, this.table.frozenColCount);
76852
+ }
76853
+ this.table.scrollToCol(this.col, { duration: this.animationDuration, easing: this.animationEasing });
76854
+ }
76855
+ }
76856
+ play() {
76857
+ this.playing = true;
76858
+ if (this.rowCount) {
76859
+ this.updateRow();
76860
+ }
76861
+ else if (this.colCount) {
76862
+ this.updateCol();
76863
+ }
76864
+ }
76865
+ pause() {
76866
+ this.playing = false;
76867
+ }
76868
+ updateRow() {
76869
+ if (!this.playing) {
76870
+ return;
76871
+ }
76872
+ if (this.table.scenegraph.proxy.screenTopRow !== this.row) {
76873
+ this.row = this.table.frozenRowCount;
76874
+ }
76875
+ else {
76876
+ this.row += this.rowCount;
76877
+ }
76878
+ this.table.scrollToRow(this.row, { duration: this.animationDuration, easing: this.animationEasing });
76879
+ setTimeout(() => {
76880
+ this.updateRow();
76881
+ }, this.animationDuration + this.animationDelay);
76882
+ }
76883
+ updateCol() {
76884
+ if (!this.playing) {
76885
+ return;
76886
+ }
76887
+ if (this.table.scenegraph.proxy.screenLeftCol !== this.col) {
76888
+ this.col = this.table.frozenColCount;
76889
+ }
76890
+ else {
76891
+ this.col += this.colCount;
76892
+ }
76893
+ this.table.scrollToCol(this.col, { duration: this.animationDuration, easing: this.animationEasing });
76894
+ setTimeout(() => {
76895
+ this.updateCol();
76896
+ }, this.animationDuration + 50);
76897
+ }
76898
+ }
76899
+
76752
76900
  registerForVrender();
76753
- const version = "1.9.2-alpha.5";
76901
+ const version = "1.9.2-alpha.6";
76754
76902
  function getIcons() {
76755
76903
  return get$2();
76756
76904
  }
@@ -76758,8 +76906,10 @@
76758
76906
  clearAll();
76759
76907
  }
76760
76908
 
76909
+ exports.CarouselAnimationPlugin = CarouselAnimationPlugin;
76761
76910
  exports.CustomLayout = index;
76762
76911
  exports.DataStatistics = DataStatistics;
76912
+ exports.InvertHighlightPlugin = InvertHighlightPlugin;
76763
76913
  exports.ListTable = ListTableAll;
76764
76914
  exports.ListTableSimple = ListTableSimple;
76765
76915
  exports.PIVOT_CHART_EVENT_TYPE = PIVOT_CHART_EVENT_TYPE;