@visactor/vtable 0.13.4-alpha.2 → 0.13.4-alpha.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/cjs/PivotChart.d.ts +3 -0
- package/cjs/PivotChart.js +44 -40
- package/cjs/PivotChart.js.map +1 -1
- package/cjs/components/legend/continue-legend/continue-legend.js +1 -0
- package/cjs/components/legend/continue-legend/continue-legend.js.map +1 -1
- package/cjs/components/legend/discrete-legend/discrete-legend.js +1 -0
- package/cjs/components/legend/discrete-legend/discrete-legend.js.map +1 -1
- package/cjs/components/menu/dom/logic/MenuElementStyle.js +1 -1
- package/cjs/components/menu/dom/logic/MenuElementStyle.js.map +1 -1
- package/cjs/components/title/title.js +7 -6
- package/cjs/components/title/title.js.map +1 -1
- package/cjs/components/tooltip/logic/BubbleTooltipElementStyle.js +1 -1
- package/cjs/components/tooltip/logic/BubbleTooltipElementStyle.js.map +1 -1
- package/cjs/core/BaseTable.d.ts +14 -0
- package/cjs/core/BaseTable.js +29 -3
- package/cjs/core/BaseTable.js.map +1 -1
- package/cjs/core/style.js +1 -1
- package/cjs/core/style.js.map +1 -1
- package/cjs/dataset/dataset.d.ts +0 -1
- package/cjs/dataset/dataset.js +3 -43
- package/cjs/dataset/dataset.js.map +1 -1
- package/cjs/event/event.d.ts +1 -1
- package/cjs/event/event.js +5 -4
- package/cjs/event/event.js.map +1 -1
- package/cjs/event/listener/table-group.js +9 -6
- package/cjs/event/listener/table-group.js.map +1 -1
- package/cjs/event/listener/touch.js +1 -1
- package/cjs/event/listener/touch.js.map +1 -1
- package/cjs/event/media-click.js +2 -1
- package/cjs/event/scroll.js +1 -1
- package/cjs/event/scroll.js.map +1 -1
- package/cjs/event/sparkline-event.js +1 -2
- package/cjs/index.d.ts +1 -1
- package/cjs/index.js +1 -1
- package/cjs/index.js.map +1 -1
- package/cjs/layout/chart-helper/get-axis-config.js +72 -38
- package/cjs/layout/chart-helper/get-axis-config.js.map +1 -1
- package/cjs/layout/chart-helper/get-axis-domain.js +1 -1
- package/cjs/layout/chart-helper/get-axis-domain.js.map +1 -1
- package/cjs/layout/chart-helper/get-chart-spec.js +34 -18
- package/cjs/layout/chart-helper/get-chart-spec.js.map +1 -1
- package/cjs/layout/chart-helper/zero-align.js.map +1 -0
- package/cjs/scenegraph/group-creater/cell-type/chart-cell.js +2 -2
- package/cjs/scenegraph/group-creater/cell-type/chart-cell.js.map +1 -1
- package/cjs/scenegraph/group-creater/init-scenegraph.js +3 -3
- package/cjs/scenegraph/group-creater/init-scenegraph.js.map +1 -1
- package/cjs/scenegraph/scenegraph.d.ts +5 -4
- package/cjs/scenegraph/scenegraph.js +4 -2
- package/cjs/scenegraph/scenegraph.js.map +1 -1
- package/cjs/scenegraph/select/create-select-border.d.ts +2 -2
- package/cjs/scenegraph/select/create-select-border.js +6 -15
- package/cjs/scenegraph/select/create-select-border.js.map +1 -1
- package/cjs/scenegraph/select/delete-select-border.js.map +1 -1
- package/cjs/scenegraph/select/update-select-border.js +84 -31
- package/cjs/scenegraph/select/update-select-border.js.map +1 -1
- package/cjs/tools/LimitPromiseQueue.js +1 -1
- package/cjs/tools/NumberMap.js +1 -1
- package/cjs/tools/Rect.js +1 -1
- package/cjs/ts-types/base-table.d.ts +16 -0
- package/cjs/ts-types/base-table.js +1 -1
- package/cjs/ts-types/base-table.js.map +1 -1
- package/cjs/ts-types/common.js +1 -1
- package/cjs/ts-types/customElement.js +1 -1
- package/cjs/ts-types/table-engine.d.ts +2 -1
- package/cjs/ts-types/table-engine.js.map +1 -1
- package/dist/vtable.js +725 -485
- package/dist/vtable.min.js +2 -2
- package/es/PivotChart.d.ts +3 -0
- package/es/PivotChart.js +44 -40
- package/es/PivotChart.js.map +1 -1
- package/es/components/legend/continue-legend/continue-legend.js +1 -0
- package/es/components/legend/continue-legend/continue-legend.js.map +1 -1
- package/es/components/legend/discrete-legend/discrete-legend.js +1 -0
- package/es/components/legend/discrete-legend/discrete-legend.js.map +1 -1
- package/es/components/menu/dom/logic/MenuElementStyle.js +1 -1
- package/es/components/menu/dom/logic/MenuElementStyle.js.map +1 -1
- package/es/components/title/title.js +6 -6
- package/es/components/title/title.js.map +1 -1
- package/es/components/tooltip/logic/BubbleTooltipElementStyle.js +1 -1
- package/es/components/tooltip/logic/BubbleTooltipElementStyle.js.map +1 -1
- package/es/core/BaseTable.d.ts +14 -0
- package/es/core/BaseTable.js +37 -12
- package/es/core/BaseTable.js.map +1 -1
- package/es/core/style.js +1 -1
- package/es/core/style.js.map +1 -1
- package/es/dataset/dataset.d.ts +0 -1
- package/es/dataset/dataset.js +2 -46
- package/es/dataset/dataset.js.map +1 -1
- package/es/event/event.d.ts +1 -1
- package/es/event/event.js +5 -4
- package/es/event/event.js.map +1 -1
- package/es/event/listener/table-group.js +9 -6
- package/es/event/listener/table-group.js.map +1 -1
- package/es/event/listener/touch.js +1 -1
- package/es/event/listener/touch.js.map +1 -1
- package/es/event/media-click.js +2 -1
- package/es/event/scroll.js +1 -1
- package/es/event/scroll.js.map +1 -1
- package/es/event/sparkline-event.js +1 -2
- package/es/index.d.ts +1 -1
- package/es/index.js +1 -1
- package/es/index.js.map +1 -1
- package/es/layout/chart-helper/get-axis-config.js +73 -36
- package/es/layout/chart-helper/get-axis-config.js.map +1 -1
- package/es/layout/chart-helper/get-axis-domain.js +1 -1
- package/es/layout/chart-helper/get-axis-domain.js.map +1 -1
- package/es/layout/chart-helper/get-chart-spec.js +34 -13
- package/es/layout/chart-helper/get-chart-spec.js.map +1 -1
- package/es/layout/chart-helper/zero-align.js.map +1 -0
- package/es/scenegraph/group-creater/cell-type/chart-cell.js +2 -2
- package/es/scenegraph/group-creater/cell-type/chart-cell.js.map +1 -1
- package/es/scenegraph/group-creater/init-scenegraph.js +3 -3
- package/es/scenegraph/group-creater/init-scenegraph.js.map +1 -1
- package/es/scenegraph/scenegraph.d.ts +5 -4
- package/es/scenegraph/scenegraph.js +3 -2
- package/es/scenegraph/scenegraph.js.map +1 -1
- package/es/scenegraph/select/create-select-border.d.ts +2 -2
- package/es/scenegraph/select/create-select-border.js +6 -15
- package/es/scenegraph/select/create-select-border.js.map +1 -1
- package/es/scenegraph/select/delete-select-border.js.map +1 -1
- package/es/scenegraph/select/update-select-border.js +84 -31
- package/es/scenegraph/select/update-select-border.js.map +1 -1
- package/es/tools/LimitPromiseQueue.js +1 -1
- package/es/tools/NumberMap.js +1 -1
- package/es/tools/Rect.js +1 -1
- package/es/ts-types/base-table.d.ts +16 -0
- package/es/ts-types/base-table.js +1 -1
- package/es/ts-types/base-table.js.map +1 -1
- package/es/ts-types/common.js +1 -1
- package/es/ts-types/customElement.js +1 -1
- package/es/ts-types/table-engine.d.ts +2 -1
- package/es/ts-types/table-engine.js.map +1 -1
- package/package.json +4 -4
- package/cjs/dataset/util/zero-align.js.map +0 -1
- package/es/dataset/util/zero-align.js.map +0 -1
- /package/cjs/{dataset/util → layout/chart-helper}/zero-align.d.ts +0 -0
- /package/cjs/{dataset/util → layout/chart-helper}/zero-align.js +0 -0
- /package/es/{dataset/util → layout/chart-helper}/zero-align.d.ts +0 -0
- /package/es/{dataset/util → layout/chart-helper}/zero-align.js +0 -0
package/dist/vtable.js
CHANGED
|
@@ -2747,7 +2747,7 @@
|
|
|
2747
2747
|
max-height: none;
|
|
2748
2748
|
}
|
|
2749
2749
|
`;
|
|
2750
|
-
document.
|
|
2750
|
+
document.head.appendChild(styleElement);
|
|
2751
2751
|
}
|
|
2752
2752
|
|
|
2753
2753
|
function getScrollBarSize(scrollStyle) {
|
|
@@ -22428,7 +22428,7 @@
|
|
|
22428
22428
|
return 0;
|
|
22429
22429
|
}
|
|
22430
22430
|
getStaticCanvasCount() {
|
|
22431
|
-
return
|
|
22431
|
+
return 999;
|
|
22432
22432
|
}
|
|
22433
22433
|
loadJson(url) {
|
|
22434
22434
|
const jsonPromise = fetch(url).then(data => data.json());
|
|
@@ -30587,7 +30587,7 @@
|
|
|
30587
30587
|
subtextWidth = this._subTitle ? null === (_1 = this._subTitle) || void 0 === _1 ? void 0 : _1.AABBBounds.width() : 0;
|
|
30588
30588
|
let titleWidth = Math.max(maintextWidth, subtextWidth),
|
|
30589
30589
|
titleHeight = maintextHeight + (null !== (_2 = null == subtextStyle ? void 0 : subtextStyle.height) && void 0 !== _2 ? _2 : subtextHeight);
|
|
30590
|
-
if (isValid$6(width) && (titleWidth = width, null === (_3 = this._mainTitle) || void 0 === _3 || _3.setAttribute("maxLineWidth", width), null === (_4 = this._subTitle) || void 0 === _4 || _4.setAttribute("maxLineWidth", width)), isValid$6(height) && (titleHeight = height), isValid$6(minWidth) && titleWidth < minWidth && (titleWidth = minWidth), isValid$6(maxWidth) && (null === (_5 = this._mainTitle) || void 0 === _5 || _5.setAttribute("maxLineWidth", maxWidth), null === (_6 = this._subTitle) || void 0 === _6 || _6.setAttribute("maxLineWidth", maxWidth), null === (_7 = this._mainTitle) || void 0 === _7 || _7.setAttribute("maxWidth", maxWidth), null === (_8 = this._subTitle) || void 0 === _8 || _8.setAttribute("maxWidth", maxWidth), titleWidth > maxWidth && (titleWidth = maxWidth)), isValid$6(minHeight) && titleHeight < minHeight && (titleHeight = minHeight), isValid$6(maxHeight) && (null === (_9 = this._mainTitle) || void 0 === _9 || _9.setAttribute("maxHeight", maxHeight), null === (_10 = this._subTitle) || void 0 === _10 || _10.setAttribute("maxHeight", maxHeight - maintextHeight), titleHeight > maxHeight && (titleHeight = maxHeight)), group.attribute.width = titleWidth
|
|
30590
|
+
if (isValid$6(width) && (titleWidth = width, null === (_3 = this._mainTitle) || void 0 === _3 || _3.setAttribute("maxLineWidth", width), null === (_4 = this._subTitle) || void 0 === _4 || _4.setAttribute("maxLineWidth", width)), isValid$6(height) && (titleHeight = height), isValid$6(minWidth) && titleWidth < minWidth && (titleWidth = minWidth), isValid$6(maxWidth) && (null === (_5 = this._mainTitle) || void 0 === _5 || _5.setAttribute("maxLineWidth", maxWidth), null === (_6 = this._subTitle) || void 0 === _6 || _6.setAttribute("maxLineWidth", maxWidth), null === (_7 = this._mainTitle) || void 0 === _7 || _7.setAttribute("maxWidth", maxWidth), null === (_8 = this._subTitle) || void 0 === _8 || _8.setAttribute("maxWidth", maxWidth), titleWidth > maxWidth && (titleWidth = maxWidth)), isValid$6(minHeight) && titleHeight < minHeight && (titleHeight = minHeight), isValid$6(maxHeight) && (null === (_9 = this._mainTitle) || void 0 === _9 || _9.setAttribute("maxHeight", maxHeight), null === (_10 = this._subTitle) || void 0 === _10 || _10.setAttribute("maxHeight", maxHeight - maintextHeight), titleHeight > maxHeight && (titleHeight = maxHeight)), group.attribute.width = titleWidth, group.attribute.height = titleHeight, group.attribute.boundsPadding = parsedPadding, isValid$6(align) || isValid$6(null == textStyle ? void 0 : textStyle.align)) {
|
|
30591
30591
|
const mainTitleAlign = (null == textStyle ? void 0 : textStyle.align) ? null == textStyle ? void 0 : textStyle.align : align,
|
|
30592
30592
|
mainTitleWidth = null !== (_11 = null == textStyle ? void 0 : textStyle.width) && void 0 !== _11 ? _11 : maintextWidth;
|
|
30593
30593
|
"left" === mainTitleAlign ? (null === (_12 = this._mainTitle) || void 0 === _12 || _12.setAttribute("x", 0), null === (_13 = this._mainTitle) || void 0 === _13 || _13.setAttribute("textAlign", "left")) : "center" === mainTitleAlign ? (null === (_14 = this._mainTitle) || void 0 === _14 || _14.setAttribute("x", mainTitleWidth / 2), null === (_15 = this._mainTitle) || void 0 === _15 || _15.setAttribute("textAlign", "center")) : "right" === mainTitleAlign && (null === (_16 = this._mainTitle) || void 0 === _16 || _16.setAttribute("x", mainTitleWidth), null === (_17 = this._mainTitle) || void 0 === _17 || _17.setAttribute("textAlign", "right"));
|
|
@@ -40419,7 +40419,7 @@
|
|
|
40419
40419
|
scale = new LinearScale();
|
|
40420
40420
|
}
|
|
40421
40421
|
scale.domain([min, max], !!axisOption?.nice);
|
|
40422
|
-
if (axisOption?.nice
|
|
40422
|
+
if (axisOption?.nice) {
|
|
40423
40423
|
let tickCount = axisOption.tick?.forceTickCount ?? axisOption.tick?.tickCount ?? 10;
|
|
40424
40424
|
if (isFunction$1(tickCount)) {
|
|
40425
40425
|
tickCount = tickCount({
|
|
@@ -40455,33 +40455,231 @@
|
|
|
40455
40455
|
};
|
|
40456
40456
|
}
|
|
40457
40457
|
|
|
40458
|
+
function isValidAlignDomain(domain) {
|
|
40459
|
+
return domain.length === 2 && isValidNumber$1(domain[0]) && isValidNumber$1(domain[1]) && domain[1] >= domain[0];
|
|
40460
|
+
}
|
|
40461
|
+
function getScaleInfo(domain) {
|
|
40462
|
+
const total = domain[1] - domain[0];
|
|
40463
|
+
const includeZero = domain[1] * domain[0] < 0;
|
|
40464
|
+
let negative = domain[0] <= 0 ? 0 - domain[0] : 0;
|
|
40465
|
+
let positive = domain[1] > 0 ? domain[1] - 0 : 0;
|
|
40466
|
+
if (total === 0) {
|
|
40467
|
+
if (domain[0] < 0) {
|
|
40468
|
+
negative = 1;
|
|
40469
|
+
positive = 0;
|
|
40470
|
+
}
|
|
40471
|
+
else if (domain[0] > 0) {
|
|
40472
|
+
negative = 0;
|
|
40473
|
+
positive = 1;
|
|
40474
|
+
}
|
|
40475
|
+
}
|
|
40476
|
+
else {
|
|
40477
|
+
negative = negative / total;
|
|
40478
|
+
positive = positive / total;
|
|
40479
|
+
}
|
|
40480
|
+
return {
|
|
40481
|
+
total,
|
|
40482
|
+
negative,
|
|
40483
|
+
positive,
|
|
40484
|
+
includeZero,
|
|
40485
|
+
domain,
|
|
40486
|
+
extendable_min: true,
|
|
40487
|
+
extendable_max: true
|
|
40488
|
+
};
|
|
40489
|
+
}
|
|
40490
|
+
function inDifferentCrossZero(info1, info2) {
|
|
40491
|
+
const { positive: positive1, negative: negative1, extendable_min: s1Extendable_min, extendable_max: s1Extendable_max, domain: domain1 } = info1;
|
|
40492
|
+
const { positive: positive2, negative: negative2, extendable_min: s2Extendable_min, extendable_max: s2Extendable_max, domain: domain2 } = info2;
|
|
40493
|
+
if (positive2 > 0) {
|
|
40494
|
+
if (!s2Extendable_min) {
|
|
40495
|
+
return false;
|
|
40496
|
+
}
|
|
40497
|
+
let comp = negative1 / positive1;
|
|
40498
|
+
if (s1Extendable_max) {
|
|
40499
|
+
comp = negative1 / Math.max(positive1, positive2);
|
|
40500
|
+
domain1[1] = -domain1[0] / comp;
|
|
40501
|
+
}
|
|
40502
|
+
domain2[0] = -domain2[1] * comp;
|
|
40503
|
+
}
|
|
40504
|
+
else if (negative2 > 0) {
|
|
40505
|
+
if (!s2Extendable_max) {
|
|
40506
|
+
return false;
|
|
40507
|
+
}
|
|
40508
|
+
let comp = positive1 / negative1;
|
|
40509
|
+
if (s1Extendable_min) {
|
|
40510
|
+
comp = positive1 / Math.max(negative1, negative1);
|
|
40511
|
+
domain1[0] = -domain1[1] / comp;
|
|
40512
|
+
}
|
|
40513
|
+
domain2[1] = -domain2[0] * comp;
|
|
40514
|
+
}
|
|
40515
|
+
return true;
|
|
40516
|
+
}
|
|
40517
|
+
function inOnlyZeroDomain(info1, info2) {
|
|
40518
|
+
const { extendable_min: s1Extendable_min, extendable_max: s1Extendable_max, domain: domain1 } = info1;
|
|
40519
|
+
const { positive: positive2, negative: negative2, domain: domain2 } = info2;
|
|
40520
|
+
if (positive2 === 0 && negative2 === 0) {
|
|
40521
|
+
return false;
|
|
40522
|
+
}
|
|
40523
|
+
if (positive2 > 0 && !s1Extendable_max) {
|
|
40524
|
+
return false;
|
|
40525
|
+
}
|
|
40526
|
+
if (negative2 > 0 && !s1Extendable_min) {
|
|
40527
|
+
return false;
|
|
40528
|
+
}
|
|
40529
|
+
domain1[0] = domain2[0];
|
|
40530
|
+
domain1[1] = domain2[1];
|
|
40531
|
+
return true;
|
|
40532
|
+
}
|
|
40533
|
+
function inAllCrossZero(info1, info2) {
|
|
40534
|
+
const { positive: positive1, negative: negative1, extendable_max: s1Extendable_max, domain: domain1 } = info1;
|
|
40535
|
+
const { positive: positive2, negative: negative2, extendable_min: s2Extendable_min, domain: domain2 } = info2;
|
|
40536
|
+
if (s1Extendable_max && s2Extendable_min) {
|
|
40537
|
+
const comp = Math.max(negative1, negative2) / Math.max(positive1, positive2);
|
|
40538
|
+
domain1[1] = -domain1[0] / comp;
|
|
40539
|
+
domain2[0] = -domain2[1] * comp;
|
|
40540
|
+
}
|
|
40541
|
+
else if (s2Extendable_min) {
|
|
40542
|
+
const comp = negative1 / positive1;
|
|
40543
|
+
domain2[0] = -domain2[1] * comp;
|
|
40544
|
+
}
|
|
40545
|
+
else if (s1Extendable_max) {
|
|
40546
|
+
const comp = negative2 / positive2;
|
|
40547
|
+
domain1[1] = -domain1[0] / comp;
|
|
40548
|
+
}
|
|
40549
|
+
else {
|
|
40550
|
+
return false;
|
|
40551
|
+
}
|
|
40552
|
+
return true;
|
|
40553
|
+
}
|
|
40554
|
+
function inNoCrossDifferentSide(info1, info2) {
|
|
40555
|
+
const { extendable_min: s1Extendable_min, domain: domain1 } = info1;
|
|
40556
|
+
const { extendable_max: s2Extendable_max, domain: domain2 } = info2;
|
|
40557
|
+
if (!s1Extendable_min || !s2Extendable_max) {
|
|
40558
|
+
return false;
|
|
40559
|
+
}
|
|
40560
|
+
domain1[0] = -domain1[1];
|
|
40561
|
+
domain2[1] = -domain2[0];
|
|
40562
|
+
return true;
|
|
40563
|
+
}
|
|
40564
|
+
function getNewRangeToAlign(range1, range2) {
|
|
40565
|
+
const domain1 = [range1.min, range1.max];
|
|
40566
|
+
const domain2 = [range2.min, range2.max];
|
|
40567
|
+
if (!isValidAlignDomain(domain1) || !isValidAlignDomain(domain2)) {
|
|
40568
|
+
return undefined;
|
|
40569
|
+
}
|
|
40570
|
+
const info1 = getScaleInfo(domain1);
|
|
40571
|
+
const info2 = getScaleInfo(domain2);
|
|
40572
|
+
const { positive: positive1, negative: negative1, extendable_min: s1Extendable_min, extendable_max: s1Extendable_max, includeZero: includeZero1 } = info1;
|
|
40573
|
+
const { positive: positive2, negative: negative2, extendable_min: s2Extendable_min, extendable_max: s2Extendable_max, includeZero: includeZero2 } = info2;
|
|
40574
|
+
if (positive1 === 0 && negative1 === 0) {
|
|
40575
|
+
if (!inOnlyZeroDomain(info1, info2)) {
|
|
40576
|
+
return undefined;
|
|
40577
|
+
}
|
|
40578
|
+
}
|
|
40579
|
+
else if (positive2 === 0 && negative2 === 0) {
|
|
40580
|
+
if (!inOnlyZeroDomain(info2, info1)) {
|
|
40581
|
+
return undefined;
|
|
40582
|
+
}
|
|
40583
|
+
}
|
|
40584
|
+
else if (!includeZero1 && !includeZero2) {
|
|
40585
|
+
if (negative1 === 0 && positive2 === 0) {
|
|
40586
|
+
if (!inNoCrossDifferentSide(info1, info2)) {
|
|
40587
|
+
return undefined;
|
|
40588
|
+
}
|
|
40589
|
+
}
|
|
40590
|
+
else if (negative2 === 0 && positive1 === 0) {
|
|
40591
|
+
if (!inNoCrossDifferentSide(info2, info1)) {
|
|
40592
|
+
return undefined;
|
|
40593
|
+
}
|
|
40594
|
+
}
|
|
40595
|
+
if (negative1 === 0 && negative2 === 0) {
|
|
40596
|
+
if (domain1[0] === 0 && domain2[0] > 0) {
|
|
40597
|
+
if (!s2Extendable_min) {
|
|
40598
|
+
return undefined;
|
|
40599
|
+
}
|
|
40600
|
+
domain2[0] = 0;
|
|
40601
|
+
}
|
|
40602
|
+
else if (domain2[0] === 0 && domain1[0] > 0) {
|
|
40603
|
+
if (!s1Extendable_min) {
|
|
40604
|
+
return undefined;
|
|
40605
|
+
}
|
|
40606
|
+
domain1[0] = 0;
|
|
40607
|
+
}
|
|
40608
|
+
else {
|
|
40609
|
+
return undefined;
|
|
40610
|
+
}
|
|
40611
|
+
}
|
|
40612
|
+
if (positive1 === 0 && positive2 === 0) {
|
|
40613
|
+
if (domain1[1] === 0 && domain2[1] > 0) {
|
|
40614
|
+
if (!s2Extendable_max) {
|
|
40615
|
+
return undefined;
|
|
40616
|
+
}
|
|
40617
|
+
domain2[1] = 0;
|
|
40618
|
+
}
|
|
40619
|
+
else if (domain2[1] === 0 && domain1[1] > 0) {
|
|
40620
|
+
if (!s1Extendable_max) {
|
|
40621
|
+
return undefined;
|
|
40622
|
+
}
|
|
40623
|
+
domain1[1] = 0;
|
|
40624
|
+
}
|
|
40625
|
+
else {
|
|
40626
|
+
return undefined;
|
|
40627
|
+
}
|
|
40628
|
+
}
|
|
40629
|
+
}
|
|
40630
|
+
else if (includeZero1 && !includeZero2) {
|
|
40631
|
+
if (!inDifferentCrossZero(info1, info2)) {
|
|
40632
|
+
return undefined;
|
|
40633
|
+
}
|
|
40634
|
+
}
|
|
40635
|
+
else if (includeZero2 && !includeZero1) {
|
|
40636
|
+
if (!inDifferentCrossZero(info2, info1)) {
|
|
40637
|
+
return undefined;
|
|
40638
|
+
}
|
|
40639
|
+
}
|
|
40640
|
+
else {
|
|
40641
|
+
if (negative1 === negative2) {
|
|
40642
|
+
return undefined;
|
|
40643
|
+
}
|
|
40644
|
+
else if (negative1 > negative2) {
|
|
40645
|
+
if (!inAllCrossZero(info1, info2)) {
|
|
40646
|
+
return undefined;
|
|
40647
|
+
}
|
|
40648
|
+
}
|
|
40649
|
+
else {
|
|
40650
|
+
if (!inAllCrossZero(info2, info1)) {
|
|
40651
|
+
return undefined;
|
|
40652
|
+
}
|
|
40653
|
+
}
|
|
40654
|
+
}
|
|
40655
|
+
return { range1: domain1, range2: domain2 };
|
|
40656
|
+
}
|
|
40657
|
+
|
|
40458
40658
|
function getAxisConfigInPivotChart(col, row, layout) {
|
|
40459
40659
|
if (!layout._table.isPivotChart()) {
|
|
40460
40660
|
return undefined;
|
|
40461
40661
|
}
|
|
40462
|
-
const table = layout._table;
|
|
40463
40662
|
if (layout.indicatorsAsCol) {
|
|
40464
40663
|
if (layout.hasTwoIndicatorAxes &&
|
|
40465
40664
|
row === layout.columnHeaderLevelCount - 1 &&
|
|
40466
40665
|
col >= layout.rowHeaderLevelCount &&
|
|
40467
40666
|
col < layout.colCount - layout.rightFrozenColCount) {
|
|
40468
|
-
const
|
|
40469
|
-
if (
|
|
40470
|
-
return;
|
|
40471
|
-
}
|
|
40472
|
-
const indicatorKeys = layout.getIndicatorKeyInChartSpec(col, layout.columnHeaderLevelCount - 1);
|
|
40473
|
-
const colPath = layout.getColKeysPath(col, row);
|
|
40474
|
-
const range = getAxisRange(layout.dataset.collectedValues, indicatorKeys, isZeroAlign, colPath, seriesIndice ?? 1);
|
|
40475
|
-
if (!range) {
|
|
40667
|
+
const axisRange = getRange$1('top', col, row + 1, col, layout.columnHeaderLevelCount - 1, col, row, 1, layout);
|
|
40668
|
+
if (!axisRange) {
|
|
40476
40669
|
return;
|
|
40477
40670
|
}
|
|
40478
|
-
|
|
40479
|
-
|
|
40480
|
-
|
|
40671
|
+
const { range, ticks, axisOption, isZeroAlign } = axisRange;
|
|
40672
|
+
if (isZeroAlign) {
|
|
40673
|
+
const subAxisRange = getRange$1('bottom', col, row + 1, col, layout.columnHeaderLevelCount - 1, col, row, 0, layout);
|
|
40674
|
+
if (subAxisRange) {
|
|
40675
|
+
const { range: subRange } = subAxisRange;
|
|
40676
|
+
const align = getNewRangeToAlign(range, subRange);
|
|
40677
|
+
if (align) {
|
|
40678
|
+
range.min = align.range1[0];
|
|
40679
|
+
range.max = align.range1[1];
|
|
40680
|
+
}
|
|
40681
|
+
}
|
|
40481
40682
|
}
|
|
40482
|
-
const { range: niceRange, ticks } = getAxisDomainRangeAndLabels(range.min, range.max, axisOption, isZeroAlign, table.getColWidth(col));
|
|
40483
|
-
range.min = !isNaN(niceRange[0]) ? niceRange[0] : 0;
|
|
40484
|
-
range.max = !isNaN(niceRange[1]) ? niceRange[1] : 1;
|
|
40485
40683
|
if (isNumber$6(axisOption?.min)) {
|
|
40486
40684
|
range.min = axisOption.min;
|
|
40487
40685
|
if (range.min > 0) {
|
|
@@ -40508,16 +40706,7 @@
|
|
|
40508
40706
|
else if (row === layout.rowCount - layout.bottomFrozenRowCount &&
|
|
40509
40707
|
col >= layout.rowHeaderLevelCount &&
|
|
40510
40708
|
col < layout.colCount - layout.rightFrozenColCount) {
|
|
40511
|
-
const { axisOption, isPercent, isZeroAlign, seriesIndice } = getAxisOption(col, row - 1, 'bottom', layout);
|
|
40512
|
-
if (axisOption?.visible === false) {
|
|
40513
|
-
return;
|
|
40514
|
-
}
|
|
40515
40709
|
const indicatorKeys = layout.getIndicatorKeyInChartSpec(col, row);
|
|
40516
|
-
const colPath = layout.getColKeysPath(col, row);
|
|
40517
|
-
const range = getAxisRange(layout.dataset.collectedValues, indicatorKeys, isZeroAlign, colPath, seriesIndice ?? 0);
|
|
40518
|
-
if (!range) {
|
|
40519
|
-
return;
|
|
40520
|
-
}
|
|
40521
40710
|
let indicatorInfo = null;
|
|
40522
40711
|
indicatorKeys?.forEach(key => {
|
|
40523
40712
|
const info = layout.getIndicatorInfo(key);
|
|
@@ -40525,13 +40714,22 @@
|
|
|
40525
40714
|
indicatorInfo = info;
|
|
40526
40715
|
}
|
|
40527
40716
|
});
|
|
40528
|
-
|
|
40529
|
-
|
|
40530
|
-
|
|
40717
|
+
const axisRange = getRange$1('bottom', col, row - 1, col, row, col, row, 0, layout);
|
|
40718
|
+
if (!axisRange) {
|
|
40719
|
+
return;
|
|
40720
|
+
}
|
|
40721
|
+
const { range, ticks, axisOption, isZeroAlign } = axisRange;
|
|
40722
|
+
if (isZeroAlign) {
|
|
40723
|
+
const subAxisRange = getRange$1('top', col, row - 1, col, row, col, row, 1, layout);
|
|
40724
|
+
if (subAxisRange) {
|
|
40725
|
+
const { range: subRange } = subAxisRange;
|
|
40726
|
+
const align = getNewRangeToAlign(range, subRange);
|
|
40727
|
+
if (align) {
|
|
40728
|
+
range.min = align.range1[0];
|
|
40729
|
+
range.max = align.range1[1];
|
|
40730
|
+
}
|
|
40731
|
+
}
|
|
40531
40732
|
}
|
|
40532
|
-
const { range: niceRange, ticks } = getAxisDomainRangeAndLabels(range.min, range.max, axisOption, isZeroAlign, table.getColWidth(col));
|
|
40533
|
-
range.min = !isNaN(niceRange[0]) ? niceRange[0] : 0;
|
|
40534
|
-
range.max = !isNaN(niceRange[1]) ? niceRange[1] : 1;
|
|
40535
40733
|
if (isNumber$6(axisOption?.min)) {
|
|
40536
40734
|
range.min = axisOption.min;
|
|
40537
40735
|
if (range.min > 0) {
|
|
@@ -40588,16 +40786,7 @@
|
|
|
40588
40786
|
if (col === layout.rowHeaderLevelCount - 1 &&
|
|
40589
40787
|
row >= layout.columnHeaderLevelCount &&
|
|
40590
40788
|
row < layout.rowCount - layout.bottomFrozenRowCount) {
|
|
40591
|
-
const { axisOption, isPercent, isZeroAlign, seriesIndice } = getAxisOption(col + 1, row, 'left', layout);
|
|
40592
|
-
if (axisOption?.visible === false) {
|
|
40593
|
-
return;
|
|
40594
|
-
}
|
|
40595
40789
|
const indicatorKeys = layout.getIndicatorKeyInChartSpec(col, row);
|
|
40596
|
-
const rowPath = layout.getRowKeysPath(col, row);
|
|
40597
|
-
const range = getAxisRange(layout.dataset.collectedValues, indicatorKeys, isZeroAlign, rowPath, seriesIndice ?? 0);
|
|
40598
|
-
if (!range) {
|
|
40599
|
-
return;
|
|
40600
|
-
}
|
|
40601
40790
|
let indicatorInfo = null;
|
|
40602
40791
|
indicatorKeys?.forEach(key => {
|
|
40603
40792
|
const info = layout.getIndicatorInfo(key);
|
|
@@ -40605,13 +40794,22 @@
|
|
|
40605
40794
|
indicatorInfo = info;
|
|
40606
40795
|
}
|
|
40607
40796
|
});
|
|
40608
|
-
|
|
40609
|
-
|
|
40610
|
-
|
|
40797
|
+
const axisRange = getRange$1('left', col + 1, row, col, row, col, row, 0, layout);
|
|
40798
|
+
if (!axisRange) {
|
|
40799
|
+
return;
|
|
40800
|
+
}
|
|
40801
|
+
const { range, ticks, axisOption, isZeroAlign } = axisRange;
|
|
40802
|
+
if (isZeroAlign) {
|
|
40803
|
+
const subAxisRange = getRange$1('right', col + 1, row, col, row, col, row, 1, layout);
|
|
40804
|
+
if (subAxisRange) {
|
|
40805
|
+
const { range: subRange } = subAxisRange;
|
|
40806
|
+
const align = getNewRangeToAlign(range, subRange);
|
|
40807
|
+
if (align) {
|
|
40808
|
+
range.min = align.range1[0];
|
|
40809
|
+
range.max = align.range1[1];
|
|
40810
|
+
}
|
|
40811
|
+
}
|
|
40611
40812
|
}
|
|
40612
|
-
const { range: niceRange, ticks } = getAxisDomainRangeAndLabels(range.min, range.max, axisOption, isZeroAlign, table.getRowHeight(row));
|
|
40613
|
-
range.min = !isNaN(niceRange[0]) ? niceRange[0] : 0;
|
|
40614
|
-
range.max = !isNaN(niceRange[1]) ? niceRange[1] : 1;
|
|
40615
40813
|
if (isNumber$6(axisOption?.min)) {
|
|
40616
40814
|
range.min = axisOption.min;
|
|
40617
40815
|
if (range.min > 0) {
|
|
@@ -40643,23 +40841,22 @@
|
|
|
40643
40841
|
else if (col === layout.colCount - layout.rightFrozenColCount &&
|
|
40644
40842
|
row >= layout.columnHeaderLevelCount &&
|
|
40645
40843
|
row < layout.rowCount - layout.bottomFrozenRowCount) {
|
|
40646
|
-
const
|
|
40647
|
-
if (
|
|
40648
|
-
return;
|
|
40649
|
-
}
|
|
40650
|
-
const indicatorKeys = layout.getIndicatorKeyInChartSpec(layout.rowHeaderLevelCount - 1, row);
|
|
40651
|
-
const rowPath = layout.getRowKeysPath(col, row);
|
|
40652
|
-
const range = getAxisRange(layout.dataset.collectedValues, indicatorKeys, isZeroAlign, rowPath, seriesIndice ?? 1);
|
|
40653
|
-
if (!range) {
|
|
40844
|
+
const axisRange = getRange$1('right', col - 1, row, layout.rowHeaderLevelCount - 1, row, col, row, 1, layout);
|
|
40845
|
+
if (!axisRange) {
|
|
40654
40846
|
return;
|
|
40655
40847
|
}
|
|
40656
|
-
|
|
40657
|
-
|
|
40658
|
-
|
|
40848
|
+
const { range, ticks, axisOption, isZeroAlign } = axisRange;
|
|
40849
|
+
if (isZeroAlign) {
|
|
40850
|
+
const subAxisRange = getRange$1('left', col - 1, row, layout.rowHeaderLevelCount - 1, row, col, row, 0, layout);
|
|
40851
|
+
if (subAxisRange) {
|
|
40852
|
+
const { range: subRange } = subAxisRange;
|
|
40853
|
+
const align = getNewRangeToAlign(range, subRange);
|
|
40854
|
+
if (align) {
|
|
40855
|
+
range.min = align.range1[0];
|
|
40856
|
+
range.max = align.range1[1];
|
|
40857
|
+
}
|
|
40858
|
+
}
|
|
40659
40859
|
}
|
|
40660
|
-
const { range: niceRange, ticks } = getAxisDomainRangeAndLabels(range.min, range.max, axisOption, isZeroAlign, table.getRowHeight(row));
|
|
40661
|
-
range.min = !isNaN(niceRange[0]) ? niceRange[0] : 0;
|
|
40662
|
-
range.max = !isNaN(niceRange[1]) ? niceRange[1] : 1;
|
|
40663
40860
|
if (isNumber$6(axisOption?.min)) {
|
|
40664
40861
|
range.min = axisOption.min;
|
|
40665
40862
|
if (range.min > 0) {
|
|
@@ -40800,9 +40997,7 @@
|
|
|
40800
40997
|
if (!defaultKey) {
|
|
40801
40998
|
return null;
|
|
40802
40999
|
}
|
|
40803
|
-
const data = collectedValues[defaultKey
|
|
40804
|
-
? collectedValues[defaultKey + (isZeroAlign ? '_align' : '')]
|
|
40805
|
-
: collectedValues[defaultKey];
|
|
41000
|
+
const data = collectedValues[defaultKey];
|
|
40806
41001
|
const range = merge$1({}, data?.[colPath ?? ''] ?? { min: 0, max: 1 });
|
|
40807
41002
|
if (range.positiveMax && range.positiveMax > range.max) {
|
|
40808
41003
|
range.max = range.positiveMax;
|
|
@@ -40820,6 +41015,49 @@
|
|
|
40820
41015
|
}
|
|
40821
41016
|
return range;
|
|
40822
41017
|
}
|
|
41018
|
+
function getRange$1(position, colForAxisOption, rowForAxisOption, colForIndicatorKey, rowForIndicatorKey, col, row, defaultSeriesIndice, layout) {
|
|
41019
|
+
const { axisOption, isPercent, isZeroAlign, seriesIndice } = getAxisOption(colForAxisOption, rowForAxisOption, position, layout);
|
|
41020
|
+
if (axisOption?.visible === false) {
|
|
41021
|
+
return undefined;
|
|
41022
|
+
}
|
|
41023
|
+
const indicatorKeys = layout.getIndicatorKeyInChartSpec(colForIndicatorKey, rowForIndicatorKey);
|
|
41024
|
+
let path;
|
|
41025
|
+
if (position === 'top' || position === 'bottom') {
|
|
41026
|
+
path = layout.getColKeysPath(col, row);
|
|
41027
|
+
}
|
|
41028
|
+
else {
|
|
41029
|
+
path = layout.getRowKeysPath(col, row);
|
|
41030
|
+
}
|
|
41031
|
+
const range = getAxisRange(layout.dataset.collectedValues, indicatorKeys, isZeroAlign, path, seriesIndice ?? defaultSeriesIndice);
|
|
41032
|
+
if (!range) {
|
|
41033
|
+
return undefined;
|
|
41034
|
+
}
|
|
41035
|
+
if (isPercent) {
|
|
41036
|
+
range.min = range.min < 0 ? -1 : 0;
|
|
41037
|
+
range.max = range.max > 0 ? 1 : 0;
|
|
41038
|
+
}
|
|
41039
|
+
const { range: niceRange, ticks } = getAxisDomainRangeAndLabels(range.min, range.max, axisOption, isZeroAlign, layout._table.getColWidth(col));
|
|
41040
|
+
range.min = !isNaN(niceRange[0]) ? niceRange[0] : 0;
|
|
41041
|
+
range.max = !isNaN(niceRange[1]) ? niceRange[1] : 1;
|
|
41042
|
+
if (isNumber$6(axisOption?.min)) {
|
|
41043
|
+
range.min = axisOption.min;
|
|
41044
|
+
if (range.min > 0) {
|
|
41045
|
+
axisOption.zero = false;
|
|
41046
|
+
}
|
|
41047
|
+
}
|
|
41048
|
+
if (isNumber$6(axisOption?.max)) {
|
|
41049
|
+
range.max = axisOption.max;
|
|
41050
|
+
if (range.max < 0) {
|
|
41051
|
+
axisOption.zero = false;
|
|
41052
|
+
}
|
|
41053
|
+
}
|
|
41054
|
+
return {
|
|
41055
|
+
axisOption,
|
|
41056
|
+
isZeroAlign,
|
|
41057
|
+
range,
|
|
41058
|
+
ticks
|
|
41059
|
+
};
|
|
41060
|
+
}
|
|
40823
41061
|
|
|
40824
41062
|
function computeAxisComponentWidth(config, table) {
|
|
40825
41063
|
const attribute = merge$1({}, commonAxis, config);
|
|
@@ -44045,7 +44283,7 @@
|
|
|
44045
44283
|
stroke: false,
|
|
44046
44284
|
x: padding[3],
|
|
44047
44285
|
y: padding[0],
|
|
44048
|
-
canvas: table.canvas,
|
|
44286
|
+
canvas: table.canvas ?? table.scenegraph.stage.window.getContext().canvas,
|
|
44049
44287
|
mode: table.options.mode,
|
|
44050
44288
|
modeParams: table.options.modeParams,
|
|
44051
44289
|
spec: chartSpec,
|
|
@@ -45925,67 +46163,139 @@
|
|
|
45925
46163
|
}
|
|
45926
46164
|
function updateComponent(selectComp, key, scene) {
|
|
45927
46165
|
const [startColStr, startRowStr, endColStr, endRowStr] = key.split('-');
|
|
45928
|
-
|
|
45929
|
-
|
|
45930
|
-
|
|
45931
|
-
|
|
45932
|
-
let
|
|
45933
|
-
|
|
45934
|
-
|
|
45935
|
-
|
|
45936
|
-
if (
|
|
45937
|
-
|
|
46166
|
+
let startCol = parseInt(startColStr, 10);
|
|
46167
|
+
let startRow = parseInt(startRowStr, 10);
|
|
46168
|
+
let endCol = parseInt(endColStr, 10);
|
|
46169
|
+
let endRow = parseInt(endRowStr, 10);
|
|
46170
|
+
let visibleCellRange;
|
|
46171
|
+
switch (selectComp.role) {
|
|
46172
|
+
case 'rowHeader':
|
|
46173
|
+
visibleCellRange = scene.table.getBodyVisibleRowRange();
|
|
46174
|
+
if (visibleCellRange) {
|
|
46175
|
+
startRow = Math.max(startRow, visibleCellRange.rowStart);
|
|
46176
|
+
endRow = Math.min(endRow, visibleCellRange.rowEnd);
|
|
45938
46177
|
}
|
|
45939
|
-
|
|
45940
|
-
|
|
45941
|
-
|
|
45942
|
-
|
|
46178
|
+
break;
|
|
46179
|
+
case 'columnHeader':
|
|
46180
|
+
visibleCellRange = scene.table.getBodyVisibleCellRange();
|
|
46181
|
+
if (visibleCellRange) {
|
|
46182
|
+
startCol = Math.max(startCol, visibleCellRange.colStart);
|
|
46183
|
+
endCol = Math.min(endCol, visibleCellRange.colEnd);
|
|
45943
46184
|
}
|
|
45944
|
-
|
|
45945
|
-
|
|
46185
|
+
break;
|
|
46186
|
+
case 'cornerHeader':
|
|
46187
|
+
break;
|
|
46188
|
+
case 'bottomFrozen':
|
|
46189
|
+
visibleCellRange = scene.table.getBodyVisibleCellRange();
|
|
46190
|
+
if (visibleCellRange) {
|
|
46191
|
+
startCol = Math.max(startCol, visibleCellRange.colStart);
|
|
46192
|
+
endCol = Math.min(endCol, visibleCellRange.colEnd);
|
|
45946
46193
|
}
|
|
45947
|
-
|
|
45948
|
-
|
|
45949
|
-
|
|
45950
|
-
|
|
45951
|
-
|
|
45952
|
-
|
|
45953
|
-
|
|
45954
|
-
|
|
45955
|
-
|
|
45956
|
-
|
|
45957
|
-
|
|
45958
|
-
|
|
45959
|
-
|
|
45960
|
-
|
|
45961
|
-
|
|
46194
|
+
break;
|
|
46195
|
+
case 'rightFrozen':
|
|
46196
|
+
visibleCellRange = scene.table.getBodyVisibleCellRange();
|
|
46197
|
+
if (visibleCellRange) {
|
|
46198
|
+
startRow = Math.max(startRow, visibleCellRange.rowStart);
|
|
46199
|
+
endRow = Math.min(endRow, visibleCellRange.rowEnd);
|
|
46200
|
+
}
|
|
46201
|
+
break;
|
|
46202
|
+
case 'rightTopCorner':
|
|
46203
|
+
break;
|
|
46204
|
+
case 'leftBottomCorner':
|
|
46205
|
+
break;
|
|
46206
|
+
case 'rightBottomCorner':
|
|
46207
|
+
break;
|
|
46208
|
+
default:
|
|
46209
|
+
visibleCellRange = scene.table.getBodyVisibleCellRange();
|
|
46210
|
+
if (visibleCellRange) {
|
|
46211
|
+
startRow = Math.max(startRow, visibleCellRange.rowStart);
|
|
46212
|
+
endRow = Math.min(endRow, visibleCellRange.rowEnd);
|
|
46213
|
+
startCol = Math.max(startCol, visibleCellRange.colStart);
|
|
46214
|
+
endCol = Math.min(endCol, visibleCellRange.colEnd);
|
|
46215
|
+
}
|
|
46216
|
+
break;
|
|
45962
46217
|
}
|
|
46218
|
+
const cellRange = scene.table.getCellRange(startCol, startRow);
|
|
46219
|
+
const colsWidth = scene.table.getColsWidth(cellRange.start.col, endCol);
|
|
46220
|
+
const rowsHeight = scene.table.getRowsHeight(cellRange.start.row, endRow);
|
|
46221
|
+
const firstCellBound = scene.highPerformanceGetCell(startCol, startRow).globalAABBBounds;
|
|
46222
|
+
selectComp.rect.setAttributes({
|
|
46223
|
+
x: firstCellBound.x1 - scene.tableGroup.attribute.x,
|
|
46224
|
+
y: firstCellBound.y1 - scene.tableGroup.attribute.y,
|
|
46225
|
+
width: colsWidth,
|
|
46226
|
+
height: rowsHeight,
|
|
46227
|
+
visible: true
|
|
46228
|
+
});
|
|
45963
46229
|
const isNearRowHeader = startCol === scene.table.frozenColCount;
|
|
46230
|
+
const isNearRightRowHeader = endCol === scene.table.colCount - scene.table.rightFrozenColCount - 1;
|
|
45964
46231
|
const isNearColHeader = startRow === scene.table.frozenRowCount;
|
|
46232
|
+
const isNearBottomColHeader = endRow === scene.table.rowCount - scene.table.bottomFrozenRowCount - 1;
|
|
45965
46233
|
if ((isNearRowHeader && selectComp.rect.attribute.stroke[3]) ||
|
|
45966
|
-
(
|
|
45967
|
-
|
|
45968
|
-
|
|
45969
|
-
|
|
45970
|
-
|
|
45971
|
-
|
|
46234
|
+
(isNearRightRowHeader && selectComp.rect.attribute.stroke[1]) ||
|
|
46235
|
+
(isNearColHeader && selectComp.rect.attribute.stroke[0]) ||
|
|
46236
|
+
(isNearBottomColHeader && selectComp.rect.attribute.stroke[2])) {
|
|
46237
|
+
if (isNearRowHeader && selectComp.rect.attribute.stroke[3]) {
|
|
46238
|
+
scene.tableGroup.insertAfter(selectComp.rect, selectComp.role === 'columnHeader'
|
|
46239
|
+
? scene.cornerHeaderGroup
|
|
46240
|
+
: selectComp.role === 'bottomFrozen'
|
|
46241
|
+
? scene.leftBottomCornerGroup
|
|
46242
|
+
: scene.rowHeaderGroup);
|
|
46243
|
+
}
|
|
46244
|
+
if (isNearBottomColHeader && selectComp.rect.attribute.stroke[2]) {
|
|
46245
|
+
scene.tableGroup.insertAfter(selectComp.rect, selectComp.role === 'rowHeader'
|
|
46246
|
+
? scene.leftBottomCornerGroup
|
|
46247
|
+
: selectComp.role === 'rightFrozen'
|
|
46248
|
+
? scene.rightBottomCornerGroup
|
|
46249
|
+
: scene.bottomFrozenGroup);
|
|
46250
|
+
}
|
|
46251
|
+
if (isNearColHeader && selectComp.rect.attribute.stroke[0]) {
|
|
46252
|
+
scene.tableGroup.insertAfter(selectComp.rect, selectComp.role === 'rowHeader'
|
|
46253
|
+
? scene.cornerHeaderGroup
|
|
46254
|
+
: selectComp.role === 'rightFrozen'
|
|
46255
|
+
? scene.rightTopCornerGroup
|
|
46256
|
+
: scene.colHeaderGroup);
|
|
46257
|
+
}
|
|
46258
|
+
if (isNearRightRowHeader && selectComp.rect.attribute.stroke[1]) {
|
|
46259
|
+
scene.tableGroup.insertAfter(selectComp.rect, selectComp.role === 'columnHeader'
|
|
46260
|
+
? scene.rightTopCornerGroup
|
|
46261
|
+
: selectComp.role === 'bottomFrozen'
|
|
46262
|
+
? scene.rightBottomCornerGroup
|
|
46263
|
+
: scene.rightFrozenGroup);
|
|
45972
46264
|
}
|
|
45973
46265
|
if (selectComp.rect.attribute.x < scene.rowHeaderGroup.attribute.width &&
|
|
45974
46266
|
scene.table.scrollLeft > 0 &&
|
|
45975
|
-
(selectComp.role === 'body' || selectComp.role === 'columnHeader')) {
|
|
46267
|
+
(selectComp.role === 'body' || selectComp.role === 'columnHeader' || selectComp.role === 'bottomFrozen')) {
|
|
45976
46268
|
selectComp.rect.setAttributes({
|
|
45977
46269
|
x: selectComp.rect.attribute.x + (scene.rowHeaderGroup.attribute.width - selectComp.rect.attribute.x),
|
|
45978
46270
|
width: selectComp.rect.attribute.width - (scene.rowHeaderGroup.attribute.width - selectComp.rect.attribute.x)
|
|
45979
46271
|
});
|
|
45980
46272
|
}
|
|
46273
|
+
if (scene.rightFrozenGroup.attribute.width > 0 &&
|
|
46274
|
+
scene.rightFrozenGroup.attribute.height > 0 &&
|
|
46275
|
+
selectComp.rect.attribute.x + selectComp.rect.attribute.width > scene.rightFrozenGroup.attribute.x &&
|
|
46276
|
+
(selectComp.role === 'body' || selectComp.role === 'columnHeader' || selectComp.role === 'bottomFrozen')) {
|
|
46277
|
+
selectComp.rect.setAttributes({
|
|
46278
|
+
x: selectComp.rect.attribute.x,
|
|
46279
|
+
width: scene.rightFrozenGroup.attribute.x - selectComp.rect.attribute.x
|
|
46280
|
+
});
|
|
46281
|
+
}
|
|
45981
46282
|
if (selectComp.rect.attribute.y < scene.colHeaderGroup.attribute.height &&
|
|
45982
46283
|
scene.table.scrollTop > 0 &&
|
|
45983
|
-
(selectComp.role === 'body' || selectComp.role === 'rowHeader')) {
|
|
46284
|
+
(selectComp.role === 'body' || selectComp.role === 'rowHeader' || selectComp.role === 'rightFrozen')) {
|
|
45984
46285
|
selectComp.rect.setAttributes({
|
|
45985
46286
|
y: selectComp.rect.attribute.y + (scene.colHeaderGroup.attribute.height - selectComp.rect.attribute.y),
|
|
45986
46287
|
height: selectComp.rect.attribute.height - (scene.colHeaderGroup.attribute.height - selectComp.rect.attribute.y)
|
|
45987
46288
|
});
|
|
45988
46289
|
}
|
|
46290
|
+
if (scene.bottomFrozenGroup.attribute.width > 0 &&
|
|
46291
|
+
scene.bottomFrozenGroup.attribute.height > 0 &&
|
|
46292
|
+
selectComp.rect.attribute.y + selectComp.rect.attribute.height > scene.bottomFrozenGroup.attribute.y &&
|
|
46293
|
+
(selectComp.role === 'body' || selectComp.role === 'rowHeader' || selectComp.role === 'rightFrozen')) {
|
|
46294
|
+
selectComp.rect.setAttributes({
|
|
46295
|
+
y: selectComp.rect.attribute.y,
|
|
46296
|
+
height: scene.bottomFrozenGroup.attribute.y - selectComp.rect.attribute.y
|
|
46297
|
+
});
|
|
46298
|
+
}
|
|
45989
46299
|
}
|
|
45990
46300
|
else {
|
|
45991
46301
|
scene.tableGroup.insertAfter(selectComp.rect, selectComp.role === 'body'
|
|
@@ -45994,7 +46304,17 @@
|
|
|
45994
46304
|
? scene.colHeaderGroup
|
|
45995
46305
|
: selectComp.role === 'rowHeader'
|
|
45996
46306
|
? scene.rowHeaderGroup
|
|
45997
|
-
:
|
|
46307
|
+
: selectComp.role === 'cornerHeader'
|
|
46308
|
+
? scene.cornerHeaderGroup
|
|
46309
|
+
: selectComp.role === 'rightTopCorner'
|
|
46310
|
+
? scene.rightTopCornerGroup
|
|
46311
|
+
: selectComp.role === 'rightFrozen'
|
|
46312
|
+
? scene.rightFrozenGroup
|
|
46313
|
+
: selectComp.role === 'leftBottomCorner'
|
|
46314
|
+
? scene.leftBottomCornerGroup
|
|
46315
|
+
: selectComp.role === 'bottomFrozen'
|
|
46316
|
+
? scene.bottomFrozenGroup
|
|
46317
|
+
: scene.rightBottomCornerGroup);
|
|
45998
46318
|
}
|
|
45999
46319
|
}
|
|
46000
46320
|
function updateCellSelectBorder(scene, newStartCol, newStartRow, newEndCol, newEndRow) {
|
|
@@ -46066,19 +46386,51 @@
|
|
|
46066
46386
|
});
|
|
46067
46387
|
scene.selectingRangeComponents = new Map();
|
|
46068
46388
|
let needRowHeader = false;
|
|
46389
|
+
let needRightRowHeader = false;
|
|
46069
46390
|
let needColumnHeader = false;
|
|
46391
|
+
let needBottomColumnHeader = false;
|
|
46070
46392
|
let needBody = false;
|
|
46071
46393
|
let needCornerHeader = false;
|
|
46394
|
+
let needRightTopCornerHeader = false;
|
|
46395
|
+
let needRightBottomCornerHeader = false;
|
|
46396
|
+
let needLeftBottomCornerHeader = false;
|
|
46072
46397
|
if (startCol <= scene.table.frozenColCount - 1 && startRow <= scene.table.frozenRowCount - 1) {
|
|
46073
46398
|
needCornerHeader = true;
|
|
46074
46399
|
}
|
|
46075
|
-
if (
|
|
46400
|
+
if (endCol >= scene.table.colCount - scene.table.rightFrozenColCount && startRow <= scene.table.frozenRowCount - 1) {
|
|
46401
|
+
needRightTopCornerHeader = true;
|
|
46402
|
+
}
|
|
46403
|
+
if (startCol <= scene.table.frozenColCount - 1 && endRow >= scene.table.rowCount - scene.table.bottomFrozenRowCount) {
|
|
46404
|
+
needLeftBottomCornerHeader = true;
|
|
46405
|
+
}
|
|
46406
|
+
if (endCol >= scene.table.colCount - scene.table.rightFrozenColCount &&
|
|
46407
|
+
endRow >= scene.table.rowCount - scene.table.bottomFrozenRowCount) {
|
|
46408
|
+
needRightBottomCornerHeader = true;
|
|
46409
|
+
}
|
|
46410
|
+
if (startCol <= scene.table.frozenColCount - 1 &&
|
|
46411
|
+
endRow >= scene.table.frozenRowCount &&
|
|
46412
|
+
startRow <= scene.table.rowCount - scene.table.bottomFrozenRowCount - 1) {
|
|
46076
46413
|
needRowHeader = true;
|
|
46077
46414
|
}
|
|
46078
|
-
if (
|
|
46415
|
+
if (endCol >= scene.table.colCount - scene.table.rightFrozenColCount &&
|
|
46416
|
+
endRow >= scene.table.frozenRowCount &&
|
|
46417
|
+
startRow <= scene.table.rowCount - scene.table.bottomFrozenRowCount - 1) {
|
|
46418
|
+
needRightRowHeader = true;
|
|
46419
|
+
}
|
|
46420
|
+
if (startRow <= scene.table.frozenRowCount - 1 &&
|
|
46421
|
+
endCol >= scene.table.frozenColCount &&
|
|
46422
|
+
startCol <= scene.table.colCount - scene.table.rightFrozenColCount - 1) {
|
|
46079
46423
|
needColumnHeader = true;
|
|
46080
46424
|
}
|
|
46081
|
-
if (
|
|
46425
|
+
if (endRow >= scene.table.rowCount - scene.table.bottomFrozenRowCount &&
|
|
46426
|
+
endCol >= scene.table.frozenColCount &&
|
|
46427
|
+
startCol <= scene.table.colCount - scene.table.rightFrozenColCount - 1) {
|
|
46428
|
+
needBottomColumnHeader = true;
|
|
46429
|
+
}
|
|
46430
|
+
if (startCol <= scene.table.colCount - scene.table.rightFrozenColCount - 1 &&
|
|
46431
|
+
endCol >= scene.table.frozenColCount &&
|
|
46432
|
+
startRow <= scene.table.rowCount - scene.table.bottomFrozenRowCount - 1 &&
|
|
46433
|
+
endRow >= scene.table.frozenRowCount) {
|
|
46082
46434
|
needBody = true;
|
|
46083
46435
|
}
|
|
46084
46436
|
if (needCornerHeader) {
|
|
@@ -46087,23 +46439,59 @@
|
|
|
46087
46439
|
const strokeArray = [true, !needColumnHeader, !needRowHeader, true];
|
|
46088
46440
|
scene.createCellSelectBorder(startCol, startRow, cornerEndCol, cornerEndRow, 'cornerHeader', `${startCol}${startRow}${endCol}${endRow}`, strokeArray);
|
|
46089
46441
|
}
|
|
46442
|
+
if (needRightTopCornerHeader) {
|
|
46443
|
+
const cornerStartCol = Math.max(startCol, scene.table.colCount - scene.table.rightFrozenColCount);
|
|
46444
|
+
const cornerEndRow = Math.min(endRow, scene.table.frozenRowCount - 1);
|
|
46445
|
+
const strokeArray = [true, true, !needRightRowHeader, !needColumnHeader];
|
|
46446
|
+
scene.createCellSelectBorder(cornerStartCol, startRow, endCol, cornerEndRow, 'rightTopCorner', `${startCol}${startRow}${endCol}${endRow}`, strokeArray);
|
|
46447
|
+
}
|
|
46448
|
+
if (needLeftBottomCornerHeader) {
|
|
46449
|
+
const cornerEndCol = Math.min(endCol, scene.table.frozenColCount - 1);
|
|
46450
|
+
const cornerStartRow = Math.max(startRow, scene.table.rowCount - scene.table.bottomFrozenRowCount);
|
|
46451
|
+
const strokeArray = [!needRowHeader, !needBottomColumnHeader, true, true];
|
|
46452
|
+
scene.createCellSelectBorder(startCol, cornerStartRow, cornerEndCol, endRow, 'leftBottomCorner', `${startCol}${startRow}${endCol}${endRow}`, strokeArray);
|
|
46453
|
+
}
|
|
46454
|
+
if (needRightBottomCornerHeader) {
|
|
46455
|
+
const cornerStartCol = Math.max(startCol, scene.table.colCount - scene.table.rightFrozenColCount);
|
|
46456
|
+
const cornerStartRow = Math.max(startRow, scene.table.rowCount - scene.table.bottomFrozenRowCount);
|
|
46457
|
+
const strokeArray = [!needRightRowHeader, true, true, !needBottomColumnHeader];
|
|
46458
|
+
scene.createCellSelectBorder(cornerStartCol, cornerStartRow, endCol, endRow, 'rightBottomCorner', `${startCol}${startRow}${endCol}${endRow}`, strokeArray);
|
|
46459
|
+
}
|
|
46090
46460
|
if (needColumnHeader) {
|
|
46091
46461
|
const columnHeaderStartCol = Math.max(startCol, scene.table.frozenColCount);
|
|
46462
|
+
const columnHeaderEndCol = Math.min(endCol, scene.table.colCount - scene.table.rightFrozenColCount - 1);
|
|
46092
46463
|
const columnHeaderEndRow = Math.min(endRow, scene.table.frozenRowCount - 1);
|
|
46093
|
-
const strokeArray = [true,
|
|
46094
|
-
scene.createCellSelectBorder(columnHeaderStartCol, startRow,
|
|
46464
|
+
const strokeArray = [true, !needRightTopCornerHeader, !needBody, !needCornerHeader];
|
|
46465
|
+
scene.createCellSelectBorder(columnHeaderStartCol, startRow, columnHeaderEndCol, columnHeaderEndRow, 'columnHeader', `${startCol}${startRow}${endCol}${endRow}`, strokeArray);
|
|
46466
|
+
}
|
|
46467
|
+
if (needBottomColumnHeader) {
|
|
46468
|
+
const columnHeaderStartCol = Math.max(startCol, scene.table.frozenColCount);
|
|
46469
|
+
const columnHeaderEndCol = Math.min(endCol, scene.table.colCount - scene.table.rightFrozenColCount - 1);
|
|
46470
|
+
const columnHeaderStartRow = Math.max(startRow, scene.table.rowCount - scene.table.bottomFrozenRowCount);
|
|
46471
|
+
const strokeArray = [!needBody, !needRightBottomCornerHeader, true, !needLeftBottomCornerHeader];
|
|
46472
|
+
scene.createCellSelectBorder(columnHeaderStartCol, columnHeaderStartRow, columnHeaderEndCol, endRow, 'bottomFrozen', `${startCol}${startRow}${endCol}${endRow}`, strokeArray);
|
|
46095
46473
|
}
|
|
46096
46474
|
if (needRowHeader) {
|
|
46097
46475
|
const columnHeaderStartRow = Math.max(startRow, scene.table.frozenRowCount);
|
|
46476
|
+
const columnHeaderEndRow = Math.min(endRow, scene.table.rowCount - scene.table.bottomFrozenRowCount - 1);
|
|
46098
46477
|
const columnHeaderEndCol = Math.min(endCol, scene.table.frozenColCount - 1);
|
|
46099
|
-
const strokeArray = [!needCornerHeader, !needBody,
|
|
46100
|
-
scene.createCellSelectBorder(startCol, columnHeaderStartRow, columnHeaderEndCol,
|
|
46478
|
+
const strokeArray = [!needCornerHeader, !needBody, !needLeftBottomCornerHeader, true];
|
|
46479
|
+
scene.createCellSelectBorder(startCol, columnHeaderStartRow, columnHeaderEndCol, columnHeaderEndRow, 'rowHeader', `${startCol}${startRow}${endCol}${endRow}`, strokeArray);
|
|
46480
|
+
}
|
|
46481
|
+
if (needRightRowHeader) {
|
|
46482
|
+
const columnHeaderStartRow = Math.max(startRow, scene.table.frozenRowCount);
|
|
46483
|
+
const columnHeaderEndRow = Math.min(endRow, scene.table.rowCount - scene.table.bottomFrozenRowCount - 1);
|
|
46484
|
+
const columnHeaderStartCol = Math.max(startCol, scene.table.colCount - scene.table.rightFrozenColCount);
|
|
46485
|
+
const strokeArray = [!needRightTopCornerHeader, true, !needRightBottomCornerHeader, !needBody];
|
|
46486
|
+
scene.createCellSelectBorder(columnHeaderStartCol, columnHeaderStartRow, endCol, columnHeaderEndRow, 'rightFrozen', `${startCol}${startRow}${endCol}${endRow}`, strokeArray);
|
|
46101
46487
|
}
|
|
46102
46488
|
if (needBody) {
|
|
46103
46489
|
const columnHeaderStartCol = Math.max(startCol, scene.table.frozenColCount);
|
|
46104
46490
|
const columnHeaderStartRow = Math.max(startRow, scene.table.frozenRowCount);
|
|
46105
|
-
const
|
|
46106
|
-
|
|
46491
|
+
const columnHeaderEndCol = Math.min(endCol, scene.table.colCount - scene.table.rightFrozenColCount - 1);
|
|
46492
|
+
const columnHeaderEndRow = Math.min(endRow, scene.table.rowCount - scene.table.bottomFrozenRowCount - 1);
|
|
46493
|
+
const strokeArray = [!needColumnHeader, !needRightRowHeader, !needBottomColumnHeader, !needRowHeader];
|
|
46494
|
+
scene.createCellSelectBorder(columnHeaderStartCol, columnHeaderStartRow, columnHeaderEndCol, columnHeaderEndRow, 'body', `${startCol}${startRow}${endCol}${endRow}`, strokeArray);
|
|
46107
46495
|
}
|
|
46108
46496
|
}
|
|
46109
46497
|
|
|
@@ -46112,23 +46500,7 @@
|
|
|
46112
46500
|
const startRow = Math.min(start_Row, end_Row);
|
|
46113
46501
|
const endCol = Math.max(start_Col, end_Col);
|
|
46114
46502
|
const endRow = Math.max(start_Row, end_Row);
|
|
46115
|
-
|
|
46116
|
-
for (let i = startCol; i <= endCol; i++) {
|
|
46117
|
-
for (let j = startRow; j <= endRow; j++) {
|
|
46118
|
-
const cellGroup = scene.highPerformanceGetCell(i, j);
|
|
46119
|
-
if (cellGroup.role === 'shadow-cell') {
|
|
46120
|
-
continue;
|
|
46121
|
-
}
|
|
46122
|
-
cellGroup.AABBBounds.width();
|
|
46123
|
-
const bounds = cellGroup.globalAABBBounds;
|
|
46124
|
-
if (!cellsBounds) {
|
|
46125
|
-
cellsBounds = bounds;
|
|
46126
|
-
}
|
|
46127
|
-
else {
|
|
46128
|
-
cellsBounds.union(bounds);
|
|
46129
|
-
}
|
|
46130
|
-
}
|
|
46131
|
-
}
|
|
46503
|
+
const firstCellBound = scene.highPerformanceGetCell(startCol, startRow).globalAABBBounds;
|
|
46132
46504
|
const theme = scene.table.theme;
|
|
46133
46505
|
const bodyClickBorderColor = theme.selectionStyle?.cellBorderColor;
|
|
46134
46506
|
const bodyClickLineWidth = theme.selectionStyle?.cellBorderLineWidth;
|
|
@@ -46142,10 +46514,10 @@
|
|
|
46142
46514
|
}
|
|
46143
46515
|
return false;
|
|
46144
46516
|
}),
|
|
46145
|
-
x:
|
|
46146
|
-
y:
|
|
46147
|
-
width:
|
|
46148
|
-
height:
|
|
46517
|
+
x: firstCellBound.x1 - scene.tableGroup.attribute.x,
|
|
46518
|
+
y: firstCellBound.y1 - scene.tableGroup.attribute.y,
|
|
46519
|
+
width: 0,
|
|
46520
|
+
height: 0,
|
|
46149
46521
|
visible: true
|
|
46150
46522
|
});
|
|
46151
46523
|
scene.lastSelectId = selectId;
|
|
@@ -46159,7 +46531,17 @@
|
|
|
46159
46531
|
? scene.colHeaderGroup
|
|
46160
46532
|
: selectRangeType === 'rowHeader'
|
|
46161
46533
|
? scene.rowHeaderGroup
|
|
46162
|
-
:
|
|
46534
|
+
: selectRangeType === 'cornerHeader'
|
|
46535
|
+
? scene.cornerHeaderGroup
|
|
46536
|
+
: selectRangeType === 'rightTopCorner'
|
|
46537
|
+
? scene.rightTopCornerGroup
|
|
46538
|
+
: selectRangeType === 'rightFrozen'
|
|
46539
|
+
? scene.rightFrozenGroup
|
|
46540
|
+
: selectRangeType === 'leftBottomCorner'
|
|
46541
|
+
? scene.leftBottomCornerGroup
|
|
46542
|
+
: selectRangeType === 'bottomFrozen'
|
|
46543
|
+
? scene.bottomFrozenGroup
|
|
46544
|
+
: scene.rightBottomCornerGroup);
|
|
46163
46545
|
}
|
|
46164
46546
|
|
|
46165
46547
|
function moveSelectingRangeComponentsToSelectedRangeComponents(scene) {
|
|
@@ -46931,10 +47313,10 @@
|
|
|
46931
47313
|
createCornerCell(rightBottomCornerGroup, scene.table.theme.cornerRightBottomCellStyle || scene.table.theme.cornerHeaderStyle);
|
|
46932
47314
|
}
|
|
46933
47315
|
scene.tableGroup.addChild(bodyGroup);
|
|
46934
|
-
scene.tableGroup.addChild(rightFrozenGroup);
|
|
46935
|
-
scene.tableGroup.addChild(bottomFrozenGroup);
|
|
46936
47316
|
scene.tableGroup.addChild(rowHeaderGroup);
|
|
47317
|
+
scene.tableGroup.addChild(bottomFrozenGroup);
|
|
46937
47318
|
scene.tableGroup.addChild(colHeaderGroup);
|
|
47319
|
+
scene.tableGroup.addChild(rightFrozenGroup);
|
|
46938
47320
|
scene.tableGroup.addChild(rightBottomCornerGroup);
|
|
46939
47321
|
scene.tableGroup.addChild(rightTopCornerGroup);
|
|
46940
47322
|
scene.tableGroup.addChild(leftBottomCornerGroup);
|
|
@@ -47361,7 +47743,7 @@
|
|
|
47361
47743
|
if (this.table.rightFrozenColCount > 0 &&
|
|
47362
47744
|
col >= this.table.colCount - this.table.rightFrozenColCount &&
|
|
47363
47745
|
row < this.table.frozenRowCount) {
|
|
47364
|
-
cell = this.
|
|
47746
|
+
cell = this.rightTopCornerGroup.getColGroup(col)?.getRowGroup(row);
|
|
47365
47747
|
}
|
|
47366
47748
|
else if (this.table.bottomFrozenRowCount > 0 &&
|
|
47367
47749
|
row >= this.table.rowCount - this.table.bottomFrozenRowCount &&
|
|
@@ -47456,7 +47838,9 @@
|
|
|
47456
47838
|
this.stage.renderNextFrame();
|
|
47457
47839
|
}
|
|
47458
47840
|
resetAllSelectComponent() {
|
|
47459
|
-
|
|
47841
|
+
if (this.table.stateManeger.select?.ranges?.length > 0) {
|
|
47842
|
+
updateAllSelectComponent(this);
|
|
47843
|
+
}
|
|
47460
47844
|
}
|
|
47461
47845
|
hideHoverIcon(col, row) {
|
|
47462
47846
|
if (col === -1 || row === -1) {
|
|
@@ -50175,7 +50559,7 @@
|
|
|
50175
50559
|
eventManeger.dealColumnMover(eventArgsSet);
|
|
50176
50560
|
}
|
|
50177
50561
|
else {
|
|
50178
|
-
eventManeger.dealTableSelect(eventArgsSet);
|
|
50562
|
+
eventManeger.dealTableSelect(eventArgsSet, true);
|
|
50179
50563
|
}
|
|
50180
50564
|
return;
|
|
50181
50565
|
}
|
|
@@ -50288,7 +50672,7 @@
|
|
|
50288
50672
|
}
|
|
50289
50673
|
});
|
|
50290
50674
|
table.scenegraph.tableGroup.addEventListener('pointerleave', (e) => {
|
|
50291
|
-
if (!stateManeger.isResizeCol()) {
|
|
50675
|
+
if (!stateManeger.isResizeCol() && !stateManeger.isMoveCol() && !stateManeger.isSelecting()) {
|
|
50292
50676
|
stateManeger.updateInteractionState(InteractionState.default);
|
|
50293
50677
|
stateManeger.updateCursor();
|
|
50294
50678
|
}
|
|
@@ -50325,10 +50709,15 @@
|
|
|
50325
50709
|
}
|
|
50326
50710
|
}
|
|
50327
50711
|
else if (stateManeger.isSelecting()) {
|
|
50328
|
-
table.stateManeger.endSelectCells();
|
|
50329
50712
|
if (table.stateManeger.select?.ranges?.length) {
|
|
50330
50713
|
const lastCol = table.stateManeger.select.ranges[table.stateManeger.select.ranges.length - 1].end.col;
|
|
50331
50714
|
const lastRow = table.stateManeger.select.ranges[table.stateManeger.select.ranges.length - 1].end.row;
|
|
50715
|
+
table.stateManeger.select.selecting = false;
|
|
50716
|
+
table.fireListeners(TABLE_EVENT_TYPE.SELECTED_CELL, {
|
|
50717
|
+
ranges: table.stateManeger.select.ranges,
|
|
50718
|
+
col: lastCol,
|
|
50719
|
+
row: lastRow
|
|
50720
|
+
});
|
|
50332
50721
|
if (table.hasListeners(TABLE_EVENT_TYPE.DRAG_SELECT_END)) {
|
|
50333
50722
|
const cellsEvent = {
|
|
50334
50723
|
event: e.nativeEvent,
|
|
@@ -50558,7 +50947,8 @@
|
|
|
50558
50947
|
const target = e.target;
|
|
50559
50948
|
if (target &&
|
|
50560
50949
|
!target.isDescendantsOf(table.scenegraph.tableGroup) &&
|
|
50561
|
-
target !== table.scenegraph.tableGroup
|
|
50950
|
+
target !== table.scenegraph.tableGroup &&
|
|
50951
|
+
target !== table.scenegraph.stage) {
|
|
50562
50952
|
stateManeger.updateInteractionState(InteractionState.default);
|
|
50563
50953
|
eventManeger.dealTableHover();
|
|
50564
50954
|
eventManeger.dealTableSelect();
|
|
@@ -50743,7 +51133,8 @@
|
|
|
50743
51133
|
}
|
|
50744
51134
|
state.resetInteractionState();
|
|
50745
51135
|
if (event.cancelable &&
|
|
50746
|
-
(
|
|
51136
|
+
(state.table.internalProps.overscrollBehavior === 'none' ||
|
|
51137
|
+
(Math.abs(deltaY) >= Math.abs(deltaX) && deltaY !== 0 && isVerticalScrollable(deltaY, state)) ||
|
|
50747
51138
|
(Math.abs(deltaY) <= Math.abs(deltaX) && deltaX !== 0 && isHorizontalScrollable(deltaX, state)))) {
|
|
50748
51139
|
event.preventDefault();
|
|
50749
51140
|
}
|
|
@@ -50873,7 +51264,8 @@
|
|
|
50873
51264
|
eventManeger.touchMovePoints[eventManeger.touchMovePoints.length - 2].y;
|
|
50874
51265
|
handleWhell({ deltaX, deltaY }, stateManeger);
|
|
50875
51266
|
if (e.cancelable &&
|
|
50876
|
-
(
|
|
51267
|
+
(table.internalProps.overscrollBehavior === 'none' ||
|
|
51268
|
+
(Math.abs(deltaY) >= Math.abs(deltaX) && deltaY !== 0 && isVerticalScrollable(deltaY, stateManeger)) ||
|
|
50877
51269
|
(Math.abs(deltaY) <= Math.abs(deltaX) && deltaX !== 0 && isHorizontalScrollable(deltaX, stateManeger)))) {
|
|
50878
51270
|
e.preventDefault();
|
|
50879
51271
|
}
|
|
@@ -51168,7 +51560,7 @@
|
|
|
51168
51560
|
}
|
|
51169
51561
|
dealMenuHover(eventArgsSet) {
|
|
51170
51562
|
}
|
|
51171
|
-
dealTableSelect(eventArgsSet) {
|
|
51563
|
+
dealTableSelect(eventArgsSet, isSelectMoving) {
|
|
51172
51564
|
if (!eventArgsSet) {
|
|
51173
51565
|
this.table.stateManeger.updateSelectPos(-1, -1);
|
|
51174
51566
|
return false;
|
|
@@ -51179,10 +51571,17 @@
|
|
|
51179
51571
|
return false;
|
|
51180
51572
|
}
|
|
51181
51573
|
const define = this.table.getBodyColumnDefine(eventArgs.col, eventArgs.row);
|
|
51182
|
-
if (this.table.isHeader(eventArgs.col, eventArgs.row) &&
|
|
51574
|
+
if (this.table.isHeader(eventArgs.col, eventArgs.row) &&
|
|
51575
|
+
(define?.disableHeaderSelect || this.table.stateManeger.select?.disableHeader)) {
|
|
51576
|
+
if (!isSelectMoving) {
|
|
51577
|
+
this.table.stateManeger.updateSelectPos(-1, -1);
|
|
51578
|
+
}
|
|
51183
51579
|
return false;
|
|
51184
51580
|
}
|
|
51185
51581
|
else if (!this.table.isHeader(eventArgs.col, eventArgs.row) && define?.disableSelect) {
|
|
51582
|
+
if (!isSelectMoving) {
|
|
51583
|
+
this.table.stateManeger.updateSelectPos(-1, -1);
|
|
51584
|
+
}
|
|
51186
51585
|
return false;
|
|
51187
51586
|
}
|
|
51188
51587
|
if (this.table.isPivotChart() &&
|
|
@@ -51673,7 +52072,7 @@
|
|
|
51673
52072
|
margin-right: 15px;
|
|
51674
52073
|
}
|
|
51675
52074
|
`;
|
|
51676
|
-
document.
|
|
52075
|
+
document.head.appendChild(styleElement);
|
|
51677
52076
|
}
|
|
51678
52077
|
|
|
51679
52078
|
importStyle$1();
|
|
@@ -52603,7 +53002,7 @@
|
|
|
52603
53002
|
border: 1px solid #E6E8ED;
|
|
52604
53003
|
}
|
|
52605
53004
|
`;
|
|
52606
|
-
document.
|
|
53005
|
+
document.head.appendChild(styleElement);
|
|
52607
53006
|
}
|
|
52608
53007
|
|
|
52609
53008
|
importStyle();
|
|
@@ -53640,6 +54039,9 @@
|
|
|
53640
54039
|
adjustTableSize(attrs) {
|
|
53641
54040
|
let width = isFinite(this.legendComponent.AABBBounds.width()) ? this.legendComponent.AABBBounds.width() : 0;
|
|
53642
54041
|
let height = isFinite(this.legendComponent.AABBBounds.height()) ? this.legendComponent.AABBBounds.height() : 0;
|
|
54042
|
+
if (width <= 0 || height <= 0) {
|
|
54043
|
+
return;
|
|
54044
|
+
}
|
|
53643
54045
|
const rectWidth = this.table.tableNoFrameWidth;
|
|
53644
54046
|
const rectHeight = this.table.tableNoFrameHeight;
|
|
53645
54047
|
const padding = getQuadProps(attrs.padding ?? this.option.padding ?? 10);
|
|
@@ -53947,6 +54349,9 @@
|
|
|
53947
54349
|
adjustTableSize(attrs) {
|
|
53948
54350
|
let width = isFinite(this.legendComponent.AABBBounds.width()) ? this.legendComponent.AABBBounds.width() : 0;
|
|
53949
54351
|
let height = isFinite(this.legendComponent.AABBBounds.height()) ? this.legendComponent.AABBBounds.height() : 0;
|
|
54352
|
+
if (width <= 0 || height <= 0) {
|
|
54353
|
+
return;
|
|
54354
|
+
}
|
|
53950
54355
|
const rectWidth = this.table.tableNoFrameWidth;
|
|
53951
54356
|
const rectHeight = this.table.tableNoFrameHeight;
|
|
53952
54357
|
const padding = getQuadProps(attrs.padding ?? this.option.padding ?? 10);
|
|
@@ -54096,7 +54501,7 @@
|
|
|
54096
54501
|
return TABLE_EVENT_TYPE;
|
|
54097
54502
|
}
|
|
54098
54503
|
options;
|
|
54099
|
-
version = "0.13.4-alpha.
|
|
54504
|
+
version = "0.13.4-alpha.4";
|
|
54100
54505
|
pagination;
|
|
54101
54506
|
id = `VTable${Date.now()}`;
|
|
54102
54507
|
headerStyleCache;
|
|
@@ -54108,7 +54513,7 @@
|
|
|
54108
54513
|
if (!container && options.mode !== 'node') {
|
|
54109
54514
|
throw new Error("vtable's container is undefined");
|
|
54110
54515
|
}
|
|
54111
|
-
const { frozenColCount = 0, defaultRowHeight = 40, defaultHeaderRowHeight, defaultColWidth = 80, defaultHeaderColWidth, widthMode = 'standard', heightMode = 'standard', autoFillWidth = false, autoFillHeight = false, keyboardOptions, columnResizeMode, dragHeaderMode, showFrozenIcon, allowFrozenColCount, padding, hover, menu, select: click, customRender, pixelRatio = defaultPixelRatio, renderChartAsync, renderChartAsyncBatchCount, mode, modeParams, canvasWidth, canvasHeight } = options;
|
|
54516
|
+
const { frozenColCount = 0, defaultRowHeight = 40, defaultHeaderRowHeight, defaultColWidth = 80, defaultHeaderColWidth, widthMode = 'standard', heightMode = 'standard', autoFillWidth = false, autoFillHeight = false, keyboardOptions, columnResizeMode, dragHeaderMode, showFrozenIcon, allowFrozenColCount, padding, hover, menu, select: click, customRender, pixelRatio = defaultPixelRatio, renderChartAsync, renderChartAsyncBatchCount, mode, modeParams, canvasWidth, canvasHeight, overscrollBehavior } = options;
|
|
54112
54517
|
this.container = container;
|
|
54113
54518
|
this.options = options;
|
|
54114
54519
|
this.options.container = container;
|
|
@@ -54160,6 +54565,7 @@
|
|
|
54160
54565
|
internalProps.dragHeaderMode = dragHeaderMode;
|
|
54161
54566
|
internalProps.renderChartAsync = renderChartAsync;
|
|
54162
54567
|
setBatchRenderChartCount(renderChartAsyncBatchCount);
|
|
54568
|
+
internalProps.overscrollBehavior = overscrollBehavior ?? 'auto';
|
|
54163
54569
|
internalProps._rowHeightsMap = new NumberMap();
|
|
54164
54570
|
internalProps._rowRangeHeightsMap = new Map();
|
|
54165
54571
|
internalProps._colRangeWidthsMap = new Map();
|
|
@@ -54974,6 +55380,51 @@
|
|
|
54974
55380
|
}
|
|
54975
55381
|
return count;
|
|
54976
55382
|
}
|
|
55383
|
+
getBodyVisibleCellRange() {
|
|
55384
|
+
const { scrollTop, scrollLeft } = this;
|
|
55385
|
+
const frozenRowsHeight = this.getFrozenRowsHeight();
|
|
55386
|
+
const frozenColsWidth = this.getFrozenColsWidth();
|
|
55387
|
+
const bottomFrozenRowsHeight = this.getBottomFrozenRowsHeight();
|
|
55388
|
+
const rightFrozenColsWidth = this.getRightFrozenColsWidth();
|
|
55389
|
+
const { row: rowStart } = this.getRowAt(scrollTop + frozenRowsHeight + 1);
|
|
55390
|
+
const { col: colStart } = this.getColAt(scrollLeft + frozenColsWidth + 1);
|
|
55391
|
+
const rowEnd = this.getAllRowsHeight() > this.tableNoFrameHeight
|
|
55392
|
+
? this.getRowAt(scrollTop + this.tableNoFrameHeight - 1 - bottomFrozenRowsHeight).row
|
|
55393
|
+
: this.rowCount - 1;
|
|
55394
|
+
const colEnd = this.getAllColsWidth() > this.tableNoFrameWidth
|
|
55395
|
+
? this.getColAt(scrollLeft + this.tableNoFrameWidth - 1 - rightFrozenColsWidth).col
|
|
55396
|
+
: this.colCount - 1;
|
|
55397
|
+
if (colEnd < 0 || rowEnd < 0) {
|
|
55398
|
+
return null;
|
|
55399
|
+
}
|
|
55400
|
+
return { rowStart, colStart, rowEnd, colEnd };
|
|
55401
|
+
}
|
|
55402
|
+
getBodyVisibleRowRange() {
|
|
55403
|
+
const { scrollTop } = this;
|
|
55404
|
+
const frozenRowsHeight = this.getFrozenRowsHeight();
|
|
55405
|
+
const bottomFrozenRowsHeight = this.getBottomFrozenRowsHeight();
|
|
55406
|
+
const { row: rowStart } = this.getRowAt(scrollTop + frozenRowsHeight + 1);
|
|
55407
|
+
const rowEnd = this.getAllRowsHeight() > this.tableNoFrameHeight
|
|
55408
|
+
? this.getRowAt(scrollTop + this.tableNoFrameHeight - 1 - bottomFrozenRowsHeight).row
|
|
55409
|
+
: this.rowCount - 1;
|
|
55410
|
+
if (rowEnd < 0) {
|
|
55411
|
+
return null;
|
|
55412
|
+
}
|
|
55413
|
+
return { rowStart, rowEnd };
|
|
55414
|
+
}
|
|
55415
|
+
getBodyVisibleColRange() {
|
|
55416
|
+
const { scrollLeft } = this;
|
|
55417
|
+
const frozenColsWidth = this.getFrozenColsWidth();
|
|
55418
|
+
const rightFrozenColsWidth = this.getRightFrozenColsWidth();
|
|
55419
|
+
const { col: colStart } = this.getColAt(scrollLeft + frozenColsWidth + 1);
|
|
55420
|
+
const colEnd = this.getAllColsWidth() > this.tableNoFrameWidth
|
|
55421
|
+
? this.getColAt(scrollLeft + this.tableNoFrameWidth - 1 - rightFrozenColsWidth).col
|
|
55422
|
+
: this.colCount - 1;
|
|
55423
|
+
if (colEnd < 0) {
|
|
55424
|
+
return null;
|
|
55425
|
+
}
|
|
55426
|
+
return { colStart, colEnd };
|
|
55427
|
+
}
|
|
54977
55428
|
get visibleColCount() {
|
|
54978
55429
|
const { frozenColCount } = this;
|
|
54979
55430
|
const visibleRect = this.getVisibleRect();
|
|
@@ -55058,7 +55509,7 @@
|
|
|
55058
55509
|
}
|
|
55059
55510
|
updateOption(options) {
|
|
55060
55511
|
this.options = options;
|
|
55061
|
-
const { frozenColCount = 0, defaultRowHeight = 40, defaultHeaderRowHeight, defaultColWidth = 80, defaultHeaderColWidth = 80, keyboardOptions, columnResizeMode, dragHeaderMode, showFrozenIcon, allowFrozenColCount, padding, hover, menu, select: click, pixelRatio, widthMode, heightMode, autoFillWidth, autoFillHeight, customRender, renderChartAsync, renderChartAsyncBatchCount } = options;
|
|
55512
|
+
const { frozenColCount = 0, defaultRowHeight = 40, defaultHeaderRowHeight, defaultColWidth = 80, defaultHeaderColWidth = 80, keyboardOptions, columnResizeMode, dragHeaderMode, showFrozenIcon, allowFrozenColCount, padding, hover, menu, select: click, pixelRatio, widthMode, heightMode, autoFillWidth, autoFillHeight, customRender, renderChartAsync, renderChartAsyncBatchCount, overscrollBehavior } = options;
|
|
55062
55513
|
if (pixelRatio && pixelRatio !== this.internalProps.pixelRatio) {
|
|
55063
55514
|
this.internalProps.pixelRatio = pixelRatio;
|
|
55064
55515
|
}
|
|
@@ -55099,6 +55550,7 @@
|
|
|
55099
55550
|
internalProps.dragHeaderMode = dragHeaderMode;
|
|
55100
55551
|
internalProps.renderChartAsync = renderChartAsync;
|
|
55101
55552
|
setBatchRenderChartCount(renderChartAsyncBatchCount);
|
|
55553
|
+
internalProps.overscrollBehavior = overscrollBehavior ?? 'auto';
|
|
55102
55554
|
internalProps.cellTextOverflows = {};
|
|
55103
55555
|
internalProps._rowHeightsMap = new NumberMap();
|
|
55104
55556
|
internalProps._rowRangeHeightsMap = new Map();
|
|
@@ -56184,6 +56636,7 @@
|
|
|
56184
56636
|
if (this.options.mode !== 'node') {
|
|
56185
56637
|
return;
|
|
56186
56638
|
}
|
|
56639
|
+
this.render();
|
|
56187
56640
|
const stage = this.scenegraph.stage;
|
|
56188
56641
|
if (stage) {
|
|
56189
56642
|
const contentWidth = this.tableX + this.getAllColsWidth();
|
|
@@ -56367,25 +56820,21 @@
|
|
|
56367
56820
|
}
|
|
56368
56821
|
function getChartAxes(col, row, layout) {
|
|
56369
56822
|
const axes = [];
|
|
56370
|
-
const table = layout._table;
|
|
56371
56823
|
if (layout.indicatorsAsCol) {
|
|
56372
56824
|
const indicatorKeys = layout.getIndicatorKeyInChartSpec(col, row);
|
|
56373
56825
|
const colPath = layout.getColKeysPath(col, row);
|
|
56374
56826
|
indicatorKeys.forEach((key, index) => {
|
|
56375
|
-
const {
|
|
56376
|
-
|
|
56377
|
-
|
|
56378
|
-
|
|
56379
|
-
|
|
56380
|
-
|
|
56381
|
-
|
|
56382
|
-
|
|
56383
|
-
|
|
56384
|
-
|
|
56385
|
-
|
|
56386
|
-
const { range: axisRange } = getAxisDomainRangeAndLabels(range.min, range.max, axisOption, isZeroAlign, table.getColWidth(col));
|
|
56387
|
-
range.min = axisRange[0];
|
|
56388
|
-
range.max = axisRange[1];
|
|
56827
|
+
const { range, isZeroAlign, axisOption } = getRange(col, row, index, index === 0 ? 'bottom' : 'top', indicatorKeys, colPath, layout);
|
|
56828
|
+
if (isZeroAlign) {
|
|
56829
|
+
const subAxisRange = getRange(col, row, indicatorKeys.length - 1 - index, index === 0 ? 'top' : 'bottom', indicatorKeys, colPath, layout);
|
|
56830
|
+
if (subAxisRange) {
|
|
56831
|
+
const { range: subRange } = subAxisRange;
|
|
56832
|
+
const align = getNewRangeToAlign(range, subRange);
|
|
56833
|
+
if (align) {
|
|
56834
|
+
range.min = align.range1[0];
|
|
56835
|
+
range.max = align.range1[1];
|
|
56836
|
+
}
|
|
56837
|
+
}
|
|
56389
56838
|
}
|
|
56390
56839
|
if (isNumber$6(axisOption?.min)) {
|
|
56391
56840
|
range.min = axisOption.min;
|
|
@@ -56433,20 +56882,17 @@
|
|
|
56433
56882
|
const indicatorKeys = layout.getIndicatorKeyInChartSpec(col, row);
|
|
56434
56883
|
const rowPath = layout.getRowKeysPath(col, row);
|
|
56435
56884
|
indicatorKeys.forEach((key, index) => {
|
|
56436
|
-
const {
|
|
56437
|
-
|
|
56438
|
-
|
|
56439
|
-
|
|
56440
|
-
|
|
56441
|
-
|
|
56442
|
-
|
|
56443
|
-
|
|
56444
|
-
|
|
56445
|
-
|
|
56446
|
-
|
|
56447
|
-
const { range: axisRange } = getAxisDomainRangeAndLabels(range.min, range.max, axisOption, isZeroAlign, table.getRowHeight(row));
|
|
56448
|
-
range.min = axisRange[0];
|
|
56449
|
-
range.max = axisRange[1];
|
|
56885
|
+
const { range, isZeroAlign, axisOption } = getRange(col, row, index, index === 0 ? 'left' : 'right', indicatorKeys, rowPath, layout);
|
|
56886
|
+
if (isZeroAlign) {
|
|
56887
|
+
const subAxisRange = getRange(col, row, indicatorKeys.length - 1 - index, index === 0 ? 'right' : 'left', indicatorKeys, rowPath, layout);
|
|
56888
|
+
if (subAxisRange) {
|
|
56889
|
+
const { range: subRange } = subAxisRange;
|
|
56890
|
+
const align = getNewRangeToAlign(range, subRange);
|
|
56891
|
+
if (align) {
|
|
56892
|
+
range.min = align.range1[0];
|
|
56893
|
+
range.max = align.range1[1];
|
|
56894
|
+
}
|
|
56895
|
+
}
|
|
56450
56896
|
}
|
|
56451
56897
|
if (isNumber$6(axisOption?.min)) {
|
|
56452
56898
|
range.min = axisOption.min;
|
|
@@ -56517,6 +56963,34 @@
|
|
|
56517
56963
|
}
|
|
56518
56964
|
return chartSpec.data.id;
|
|
56519
56965
|
}
|
|
56966
|
+
function getRange(col, row, index, position, indicatorKeys, path, layout) {
|
|
56967
|
+
const { axisOption, isPercent, isZeroAlign, seriesIndice } = getAxisOption(col, row, position, layout);
|
|
56968
|
+
const range = getAxisRange(layout.dataset.collectedValues, indicatorKeys, isZeroAlign, path, seriesIndice ?? index);
|
|
56969
|
+
if (isPercent) {
|
|
56970
|
+
range.min = range.min < 0 ? -1 : 0;
|
|
56971
|
+
range.max = range.max > 0 ? 1 : 0;
|
|
56972
|
+
}
|
|
56973
|
+
if (axisOption?.zero || range.min === range.max) {
|
|
56974
|
+
range.min = Math.min(range.min, 0);
|
|
56975
|
+
range.max = Math.max(range.max, 0);
|
|
56976
|
+
}
|
|
56977
|
+
if (axisOption?.nice) {
|
|
56978
|
+
const { range: axisRange } = getAxisDomainRangeAndLabels(range.min, range.max, axisOption, isZeroAlign, layout._table.getColWidth(col));
|
|
56979
|
+
range.min = axisRange[0];
|
|
56980
|
+
range.max = axisRange[1];
|
|
56981
|
+
}
|
|
56982
|
+
if (isNumber$6(axisOption?.min)) {
|
|
56983
|
+
range.min = axisOption.min;
|
|
56984
|
+
}
|
|
56985
|
+
if (isNumber$6(axisOption?.max)) {
|
|
56986
|
+
range.max = axisOption.max;
|
|
56987
|
+
}
|
|
56988
|
+
return {
|
|
56989
|
+
range,
|
|
56990
|
+
isZeroAlign,
|
|
56991
|
+
axisOption
|
|
56992
|
+
};
|
|
56993
|
+
}
|
|
56520
56994
|
|
|
56521
56995
|
let seqId = 0;
|
|
56522
56996
|
class SimpleHeaderLayoutMap {
|
|
@@ -57246,7 +57720,9 @@
|
|
|
57246
57720
|
constructor(titleOption, table) {
|
|
57247
57721
|
this.table = table;
|
|
57248
57722
|
this._titleOption = titleOption;
|
|
57249
|
-
|
|
57723
|
+
if (titleOption.visible !== false) {
|
|
57724
|
+
this._titleComponent = this._createOrUpdateTitleComponent(this._getTitleAttrs());
|
|
57725
|
+
}
|
|
57250
57726
|
}
|
|
57251
57727
|
_createOrUpdateTitleComponent(attrs) {
|
|
57252
57728
|
if (this._titleComponent) {
|
|
@@ -57297,8 +57773,8 @@
|
|
|
57297
57773
|
this._adjustTableSize(this._titleComponent.attribute);
|
|
57298
57774
|
}
|
|
57299
57775
|
_adjustTableSize(attrs) {
|
|
57300
|
-
const width = isFinite(this._titleComponent
|
|
57301
|
-
const height = isFinite(this._titleComponent
|
|
57776
|
+
const width = isFinite(this._titleComponent?.AABBBounds.width()) ? this._titleComponent.AABBBounds.width() : 0;
|
|
57777
|
+
const height = isFinite(this._titleComponent?.AABBBounds.height()) ? this._titleComponent.AABBBounds.height() : 0;
|
|
57302
57778
|
if (this._titleOption.orient === 'left') {
|
|
57303
57779
|
this.table.tableNoFrameWidth = this.table.tableNoFrameWidth - Math.ceil(width);
|
|
57304
57780
|
this.table.tableX += Math.ceil(width);
|
|
@@ -57331,7 +57807,8 @@
|
|
|
57331
57807
|
this.isReleased = true;
|
|
57332
57808
|
}
|
|
57333
57809
|
_getTitleAttrs() {
|
|
57334
|
-
const
|
|
57810
|
+
const defaultPadding = this._titleOption.text || this._titleOption.subtext ? 10 : 0;
|
|
57811
|
+
const padding = getQuadProps(this._titleOption.padding ?? defaultPadding);
|
|
57335
57812
|
const realWidth = this._titleOption.width ??
|
|
57336
57813
|
Math.min(this.table.tableNoFrameWidth, this.table.getDrawRange().width) - padding[1] - padding[3];
|
|
57337
57814
|
const realHeight = this._titleOption.height ??
|
|
@@ -60576,206 +61053,6 @@
|
|
|
60576
61053
|
};
|
|
60577
61054
|
}
|
|
60578
61055
|
|
|
60579
|
-
function isValidAlignDomain(domain) {
|
|
60580
|
-
return domain.length === 2 && isValidNumber$1(domain[0]) && isValidNumber$1(domain[1]) && domain[1] >= domain[0];
|
|
60581
|
-
}
|
|
60582
|
-
function getScaleInfo(domain) {
|
|
60583
|
-
const total = domain[1] - domain[0];
|
|
60584
|
-
const includeZero = domain[1] * domain[0] < 0;
|
|
60585
|
-
let negative = domain[0] <= 0 ? 0 - domain[0] : 0;
|
|
60586
|
-
let positive = domain[1] > 0 ? domain[1] - 0 : 0;
|
|
60587
|
-
if (total === 0) {
|
|
60588
|
-
if (domain[0] < 0) {
|
|
60589
|
-
negative = 1;
|
|
60590
|
-
positive = 0;
|
|
60591
|
-
}
|
|
60592
|
-
else if (domain[0] > 0) {
|
|
60593
|
-
negative = 0;
|
|
60594
|
-
positive = 1;
|
|
60595
|
-
}
|
|
60596
|
-
}
|
|
60597
|
-
else {
|
|
60598
|
-
negative = negative / total;
|
|
60599
|
-
positive = positive / total;
|
|
60600
|
-
}
|
|
60601
|
-
return {
|
|
60602
|
-
total,
|
|
60603
|
-
negative,
|
|
60604
|
-
positive,
|
|
60605
|
-
includeZero,
|
|
60606
|
-
domain,
|
|
60607
|
-
extendable_min: true,
|
|
60608
|
-
extendable_max: true
|
|
60609
|
-
};
|
|
60610
|
-
}
|
|
60611
|
-
function inDifferentCrossZero(info1, info2) {
|
|
60612
|
-
const { positive: positive1, negative: negative1, extendable_min: s1Extendable_min, extendable_max: s1Extendable_max, domain: domain1 } = info1;
|
|
60613
|
-
const { positive: positive2, negative: negative2, extendable_min: s2Extendable_min, extendable_max: s2Extendable_max, domain: domain2 } = info2;
|
|
60614
|
-
if (positive2 > 0) {
|
|
60615
|
-
if (!s2Extendable_min) {
|
|
60616
|
-
return false;
|
|
60617
|
-
}
|
|
60618
|
-
let comp = negative1 / positive1;
|
|
60619
|
-
if (s1Extendable_max) {
|
|
60620
|
-
comp = negative1 / Math.max(positive1, positive2);
|
|
60621
|
-
domain1[1] = -domain1[0] / comp;
|
|
60622
|
-
}
|
|
60623
|
-
domain2[0] = -domain2[1] * comp;
|
|
60624
|
-
}
|
|
60625
|
-
else if (negative2 > 0) {
|
|
60626
|
-
if (!s2Extendable_max) {
|
|
60627
|
-
return false;
|
|
60628
|
-
}
|
|
60629
|
-
let comp = positive1 / negative1;
|
|
60630
|
-
if (s1Extendable_min) {
|
|
60631
|
-
comp = positive1 / Math.max(negative1, negative1);
|
|
60632
|
-
domain1[0] = -domain1[1] / comp;
|
|
60633
|
-
}
|
|
60634
|
-
domain2[1] = -domain2[0] * comp;
|
|
60635
|
-
}
|
|
60636
|
-
return true;
|
|
60637
|
-
}
|
|
60638
|
-
function inOnlyZeroDomain(info1, info2) {
|
|
60639
|
-
const { extendable_min: s1Extendable_min, extendable_max: s1Extendable_max, domain: domain1 } = info1;
|
|
60640
|
-
const { positive: positive2, negative: negative2, domain: domain2 } = info2;
|
|
60641
|
-
if (positive2 === 0 && negative2 === 0) {
|
|
60642
|
-
return false;
|
|
60643
|
-
}
|
|
60644
|
-
if (positive2 > 0 && !s1Extendable_max) {
|
|
60645
|
-
return false;
|
|
60646
|
-
}
|
|
60647
|
-
if (negative2 > 0 && !s1Extendable_min) {
|
|
60648
|
-
return false;
|
|
60649
|
-
}
|
|
60650
|
-
domain1[0] = domain2[0];
|
|
60651
|
-
domain1[1] = domain2[1];
|
|
60652
|
-
return true;
|
|
60653
|
-
}
|
|
60654
|
-
function inAllCrossZero(info1, info2) {
|
|
60655
|
-
const { positive: positive1, negative: negative1, extendable_max: s1Extendable_max, domain: domain1 } = info1;
|
|
60656
|
-
const { positive: positive2, negative: negative2, extendable_min: s2Extendable_min, domain: domain2 } = info2;
|
|
60657
|
-
if (s1Extendable_max && s2Extendable_min) {
|
|
60658
|
-
const comp = Math.max(negative1, negative2) / Math.max(positive1, positive2);
|
|
60659
|
-
domain1[1] = -domain1[0] / comp;
|
|
60660
|
-
domain2[0] = -domain2[1] * comp;
|
|
60661
|
-
}
|
|
60662
|
-
else if (s2Extendable_min) {
|
|
60663
|
-
const comp = negative1 / positive1;
|
|
60664
|
-
domain2[0] = -domain2[1] * comp;
|
|
60665
|
-
}
|
|
60666
|
-
else if (s1Extendable_max) {
|
|
60667
|
-
const comp = negative2 / positive2;
|
|
60668
|
-
domain1[1] = -domain1[0] / comp;
|
|
60669
|
-
}
|
|
60670
|
-
else {
|
|
60671
|
-
return false;
|
|
60672
|
-
}
|
|
60673
|
-
return true;
|
|
60674
|
-
}
|
|
60675
|
-
function inNoCrossDifferentSide(info1, info2) {
|
|
60676
|
-
const { extendable_min: s1Extendable_min, domain: domain1 } = info1;
|
|
60677
|
-
const { extendable_max: s2Extendable_max, domain: domain2 } = info2;
|
|
60678
|
-
if (!s1Extendable_min || !s2Extendable_max) {
|
|
60679
|
-
return false;
|
|
60680
|
-
}
|
|
60681
|
-
domain1[0] = -domain1[1];
|
|
60682
|
-
domain2[1] = -domain2[0];
|
|
60683
|
-
return true;
|
|
60684
|
-
}
|
|
60685
|
-
function getNewRangeToAlign(range1, range2) {
|
|
60686
|
-
const domain1 = [range1.min, range1.max];
|
|
60687
|
-
const domain2 = [range2.min, range2.max];
|
|
60688
|
-
if (!isValidAlignDomain(domain1) || !isValidAlignDomain(domain2)) {
|
|
60689
|
-
return undefined;
|
|
60690
|
-
}
|
|
60691
|
-
const info1 = getScaleInfo(domain1);
|
|
60692
|
-
const info2 = getScaleInfo(domain2);
|
|
60693
|
-
const { positive: positive1, negative: negative1, extendable_min: s1Extendable_min, extendable_max: s1Extendable_max, includeZero: includeZero1 } = info1;
|
|
60694
|
-
const { positive: positive2, negative: negative2, extendable_min: s2Extendable_min, extendable_max: s2Extendable_max, includeZero: includeZero2 } = info2;
|
|
60695
|
-
if (positive1 === 0 && negative1 === 0) {
|
|
60696
|
-
if (!inOnlyZeroDomain(info1, info2)) {
|
|
60697
|
-
return undefined;
|
|
60698
|
-
}
|
|
60699
|
-
}
|
|
60700
|
-
else if (positive2 === 0 && negative2 === 0) {
|
|
60701
|
-
if (!inOnlyZeroDomain(info2, info1)) {
|
|
60702
|
-
return undefined;
|
|
60703
|
-
}
|
|
60704
|
-
}
|
|
60705
|
-
else if (!includeZero1 && !includeZero2) {
|
|
60706
|
-
if (negative1 === 0 && positive2 === 0) {
|
|
60707
|
-
if (!inNoCrossDifferentSide(info1, info2)) {
|
|
60708
|
-
return undefined;
|
|
60709
|
-
}
|
|
60710
|
-
}
|
|
60711
|
-
else if (negative2 === 0 && positive1 === 0) {
|
|
60712
|
-
if (!inNoCrossDifferentSide(info2, info1)) {
|
|
60713
|
-
return undefined;
|
|
60714
|
-
}
|
|
60715
|
-
}
|
|
60716
|
-
if (negative1 === 0 && negative2 === 0) {
|
|
60717
|
-
if (domain1[0] === 0 && domain2[0] > 0) {
|
|
60718
|
-
if (!s2Extendable_min) {
|
|
60719
|
-
return undefined;
|
|
60720
|
-
}
|
|
60721
|
-
domain2[0] = 0;
|
|
60722
|
-
}
|
|
60723
|
-
else if (domain2[0] === 0 && domain1[0] > 0) {
|
|
60724
|
-
if (!s1Extendable_min) {
|
|
60725
|
-
return undefined;
|
|
60726
|
-
}
|
|
60727
|
-
domain1[0] = 0;
|
|
60728
|
-
}
|
|
60729
|
-
else {
|
|
60730
|
-
return undefined;
|
|
60731
|
-
}
|
|
60732
|
-
}
|
|
60733
|
-
if (positive1 === 0 && positive2 === 0) {
|
|
60734
|
-
if (domain1[1] === 0 && domain2[1] > 0) {
|
|
60735
|
-
if (!s2Extendable_max) {
|
|
60736
|
-
return undefined;
|
|
60737
|
-
}
|
|
60738
|
-
domain2[1] = 0;
|
|
60739
|
-
}
|
|
60740
|
-
else if (domain2[1] === 0 && domain1[1] > 0) {
|
|
60741
|
-
if (!s1Extendable_max) {
|
|
60742
|
-
return undefined;
|
|
60743
|
-
}
|
|
60744
|
-
domain1[1] = 0;
|
|
60745
|
-
}
|
|
60746
|
-
else {
|
|
60747
|
-
return undefined;
|
|
60748
|
-
}
|
|
60749
|
-
}
|
|
60750
|
-
}
|
|
60751
|
-
else if (includeZero1 && !includeZero2) {
|
|
60752
|
-
if (!inDifferentCrossZero(info1, info2)) {
|
|
60753
|
-
return undefined;
|
|
60754
|
-
}
|
|
60755
|
-
}
|
|
60756
|
-
else if (includeZero2 && !includeZero1) {
|
|
60757
|
-
if (!inDifferentCrossZero(info2, info1)) {
|
|
60758
|
-
return undefined;
|
|
60759
|
-
}
|
|
60760
|
-
}
|
|
60761
|
-
else {
|
|
60762
|
-
if (negative1 === negative2) {
|
|
60763
|
-
return undefined;
|
|
60764
|
-
}
|
|
60765
|
-
else if (negative1 > negative2) {
|
|
60766
|
-
if (!inAllCrossZero(info1, info2)) {
|
|
60767
|
-
return undefined;
|
|
60768
|
-
}
|
|
60769
|
-
}
|
|
60770
|
-
else {
|
|
60771
|
-
if (!inAllCrossZero(info2, info1)) {
|
|
60772
|
-
return undefined;
|
|
60773
|
-
}
|
|
60774
|
-
}
|
|
60775
|
-
}
|
|
60776
|
-
return { range1: domain1, range2: domain2 };
|
|
60777
|
-
}
|
|
60778
|
-
|
|
60779
61056
|
class Dataset {
|
|
60780
61057
|
dataConfig;
|
|
60781
61058
|
records;
|
|
@@ -60889,7 +61166,6 @@
|
|
|
60889
61166
|
}
|
|
60890
61167
|
typeof window !== 'undefined' ? window.performance.now() : 0;
|
|
60891
61168
|
if (this.dataConfig?.isPivotChart) {
|
|
60892
|
-
this.dealWithZeroAlign();
|
|
60893
61169
|
this.cacheDeminsionCollectedValues();
|
|
60894
61170
|
}
|
|
60895
61171
|
}
|
|
@@ -61222,7 +61498,6 @@
|
|
|
61222
61498
|
this.processCollectedValuesWithSumBy();
|
|
61223
61499
|
this.processCollectedValuesWithSortBy();
|
|
61224
61500
|
if (this.dataConfig?.isPivotChart) {
|
|
61225
|
-
this.dealWithZeroAlign();
|
|
61226
61501
|
this.cacheDeminsionCollectedValues();
|
|
61227
61502
|
}
|
|
61228
61503
|
}
|
|
@@ -61687,44 +61962,6 @@
|
|
|
61687
61962
|
tree.forEach((treeNode) => getPath(treeNode, []));
|
|
61688
61963
|
return result;
|
|
61689
61964
|
}
|
|
61690
|
-
dealWithZeroAlign() {
|
|
61691
|
-
const indicatorsToAlign = [];
|
|
61692
|
-
for (let i = 0; i < this.aggregationRules.length; i++) {
|
|
61693
|
-
const rule = this.aggregationRules[i];
|
|
61694
|
-
if (isArray$5(rule.field) && rule.field.length === 2) {
|
|
61695
|
-
indicatorsToAlign.push(rule.field);
|
|
61696
|
-
}
|
|
61697
|
-
}
|
|
61698
|
-
indicatorsToAlign.forEach(indicatorToAlign => {
|
|
61699
|
-
const indicator1 = indicatorToAlign[0];
|
|
61700
|
-
const indicator2 = indicatorToAlign[1];
|
|
61701
|
-
const collectedValue1 = this.collectedValues[indicator1];
|
|
61702
|
-
const collectedValue2 = this.collectedValues[indicator2];
|
|
61703
|
-
this.collectedValues[indicator1 + '_align'] = {};
|
|
61704
|
-
this.collectedValues[indicator2 + '_align'] = {};
|
|
61705
|
-
const toAlignCollectedValue = collectedValue1 || collectedValue2;
|
|
61706
|
-
for (const key in toAlignCollectedValue) {
|
|
61707
|
-
const range1 = collectedValue1?.[key] ?? { min: 0, max: 1 };
|
|
61708
|
-
const range2 = collectedValue2?.[key] ?? { min: 0, max: 1 };
|
|
61709
|
-
const newRanges = getNewRangeToAlign(range1, range2);
|
|
61710
|
-
if (!newRanges) {
|
|
61711
|
-
this.collectedValues[indicator1 + '_align'][key] = {
|
|
61712
|
-
min: range1.min,
|
|
61713
|
-
max: range1.max
|
|
61714
|
-
};
|
|
61715
|
-
this.collectedValues[indicator2 + '_align'][key] = {
|
|
61716
|
-
min: range2.min,
|
|
61717
|
-
max: range2.max
|
|
61718
|
-
};
|
|
61719
|
-
}
|
|
61720
|
-
else {
|
|
61721
|
-
const { range1: newRange1, range2: newRange2 } = newRanges;
|
|
61722
|
-
this.collectedValues[indicator1 + '_align'][key] = { min: newRange1[0], max: newRange1[1] };
|
|
61723
|
-
this.collectedValues[indicator2 + '_align'][key] = { min: newRange2[0], max: newRange2[1] };
|
|
61724
|
-
}
|
|
61725
|
-
}
|
|
61726
|
-
});
|
|
61727
|
-
}
|
|
61728
61965
|
cacheDeminsionCollectedValues() {
|
|
61729
61966
|
for (const key in this.collectValuesBy) {
|
|
61730
61967
|
if (this.collectValuesBy[key].type === 'xField' || this.collectValuesBy[key].type === 'yField') {
|
|
@@ -63042,67 +63279,70 @@
|
|
|
63042
63279
|
}
|
|
63043
63280
|
getChartInstance(cellHeaderPaths) {
|
|
63044
63281
|
const cellAddr = this.getCellAddressByHeaderPaths(cellHeaderPaths);
|
|
63045
|
-
|
|
63046
|
-
|
|
63047
|
-
|
|
63048
|
-
|
|
63049
|
-
|
|
63050
|
-
|
|
63051
|
-
|
|
63052
|
-
|
|
63053
|
-
|
|
63054
|
-
|
|
63055
|
-
|
|
63056
|
-
|
|
63057
|
-
|
|
63058
|
-
|
|
63059
|
-
|
|
63060
|
-
|
|
63061
|
-
|
|
63062
|
-
|
|
63063
|
-
|
|
63064
|
-
|
|
63282
|
+
if (cellAddr) {
|
|
63283
|
+
const cellPosition = this.getCellRelativeRect(cellAddr.col, cellAddr.row);
|
|
63284
|
+
const cellGroup = this.scenegraph.getCell(cellAddr.col, cellAddr.row);
|
|
63285
|
+
let chartInstance;
|
|
63286
|
+
const chartNode = cellGroup?.getChildren()?.[0];
|
|
63287
|
+
if (chartNode.attribute.chartInstance) {
|
|
63288
|
+
chartInstance = chartNode.attribute.chartInstance;
|
|
63289
|
+
const { dataId, data, axes, spec } = chartNode.attribute;
|
|
63290
|
+
const viewBox = chartNode.getViewBox();
|
|
63291
|
+
axes.forEach((axis, index) => {
|
|
63292
|
+
if (axis.type === 'linear') {
|
|
63293
|
+
const chartAxis = chartInstance._chart._components[index];
|
|
63294
|
+
chartAxis._domain = {
|
|
63295
|
+
min: axis.range?.min ?? 0,
|
|
63296
|
+
max: axis.range?.max ?? 0
|
|
63297
|
+
};
|
|
63298
|
+
}
|
|
63299
|
+
else if (axis.type === 'band') {
|
|
63300
|
+
const chartAxis = chartInstance._chart._components[index];
|
|
63301
|
+
chartAxis._spec.domain = axis.domain.slice(0);
|
|
63302
|
+
chartAxis.updateScaleDomain();
|
|
63303
|
+
}
|
|
63304
|
+
});
|
|
63305
|
+
chartInstance.updateViewBox({
|
|
63306
|
+
x1: viewBox.x1 - chartNode.getRootNode().table.scrollLeft,
|
|
63307
|
+
x2: viewBox.x2 - chartNode.getRootNode().table.scrollLeft,
|
|
63308
|
+
y1: viewBox.y1 - chartNode.getRootNode().table.scrollTop,
|
|
63309
|
+
y2: viewBox.y2 - chartNode.getRootNode().table.scrollTop
|
|
63310
|
+
}, false, false);
|
|
63311
|
+
if (typeof dataId === 'string') {
|
|
63312
|
+
chartInstance.updateDataSync(dataId, data ?? []);
|
|
63065
63313
|
}
|
|
63066
|
-
|
|
63067
|
-
|
|
63068
|
-
|
|
63069
|
-
|
|
63070
|
-
|
|
63071
|
-
|
|
63072
|
-
|
|
63073
|
-
|
|
63074
|
-
|
|
63075
|
-
|
|
63076
|
-
|
|
63077
|
-
|
|
63078
|
-
|
|
63079
|
-
|
|
63080
|
-
|
|
63081
|
-
|
|
63082
|
-
|
|
63083
|
-
|
|
63084
|
-
|
|
63085
|
-
|
|
63086
|
-
|
|
63087
|
-
: data ?? [],
|
|
63088
|
-
fields: series?.data?.fields
|
|
63089
|
-
});
|
|
63090
|
-
if (!chartInstance.updateFullDataSync) {
|
|
63091
|
-
chartInstance.updateDataSync(dataIdStr, dataIdAndField
|
|
63092
|
-
? data?.filter((item) => {
|
|
63093
|
-
return item.hasOwnProperty(dataIdAndField);
|
|
63094
|
-
}) ?? []
|
|
63095
|
-
: data ?? []);
|
|
63314
|
+
else {
|
|
63315
|
+
const dataBatch = [];
|
|
63316
|
+
for (const dataIdStr in dataId) {
|
|
63317
|
+
const dataIdAndField = dataId[dataIdStr];
|
|
63318
|
+
const series = spec.series.find((item) => item?.data?.id === dataIdStr);
|
|
63319
|
+
dataBatch.push({
|
|
63320
|
+
id: dataIdStr,
|
|
63321
|
+
values: dataIdAndField
|
|
63322
|
+
? data?.filter((item) => {
|
|
63323
|
+
return item.hasOwnProperty(dataIdAndField);
|
|
63324
|
+
}) ?? []
|
|
63325
|
+
: data ?? [],
|
|
63326
|
+
fields: series?.data?.fields
|
|
63327
|
+
});
|
|
63328
|
+
if (!chartInstance.updateFullDataSync) {
|
|
63329
|
+
chartInstance.updateDataSync(dataIdStr, dataIdAndField
|
|
63330
|
+
? data?.filter((item) => {
|
|
63331
|
+
return item.hasOwnProperty(dataIdAndField);
|
|
63332
|
+
}) ?? []
|
|
63333
|
+
: data ?? []);
|
|
63334
|
+
}
|
|
63096
63335
|
}
|
|
63336
|
+
chartInstance.updateFullDataSync?.(dataBatch);
|
|
63097
63337
|
}
|
|
63098
|
-
|
|
63338
|
+
this.render();
|
|
63099
63339
|
}
|
|
63100
|
-
|
|
63340
|
+
return {
|
|
63341
|
+
chartInstance,
|
|
63342
|
+
bounds: cellPosition.bounds
|
|
63343
|
+
};
|
|
63101
63344
|
}
|
|
63102
|
-
return {
|
|
63103
|
-
chartInstance,
|
|
63104
|
-
bounds: cellPosition.bounds
|
|
63105
|
-
};
|
|
63345
|
+
return {};
|
|
63106
63346
|
}
|
|
63107
63347
|
_getDimensionSortArray() {
|
|
63108
63348
|
if (this.options?.axes?.length) {
|
|
@@ -63982,7 +64222,7 @@
|
|
|
63982
64222
|
return new Tag(params ? params.attribute : {});
|
|
63983
64223
|
}
|
|
63984
64224
|
|
|
63985
|
-
const version = "0.13.4-alpha.
|
|
64225
|
+
const version = "0.13.4-alpha.4";
|
|
63986
64226
|
function getIcons() {
|
|
63987
64227
|
return get$1();
|
|
63988
64228
|
}
|