@visactor/vtable 0.25.2 → 0.25.3
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/ListTable.js +5 -5
- package/cjs/ListTable.js.map +1 -1
- package/cjs/PivotChart.js +3 -3
- package/cjs/PivotChart.js.map +1 -1
- package/cjs/PivotTable.js +3 -3
- package/cjs/PivotTable.js.map +1 -1
- package/cjs/components/axis/axis.js +2 -2
- package/cjs/components/axis/axis.js.map +1 -1
- package/cjs/core/BaseTable.js +1 -1
- package/cjs/core/BaseTable.js.map +1 -1
- 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-chart-spec.js +2 -2
- package/cjs/layout/chart-helper/get-chart-spec.js.map +1 -1
- package/cjs/vrender.js.map +1 -1
- package/cjs/vutil-extension-temp/algorithm/binary-search.d.ts +2 -0
- package/cjs/vutil-extension-temp/algorithm/binary-search.js +21 -0
- package/cjs/vutil-extension-temp/algorithm/binary-search.js.map +1 -0
- package/cjs/vutil-extension-temp/algorithm/index.d.ts +1 -0
- package/cjs/vutil-extension-temp/algorithm/index.js +21 -0
- package/cjs/vutil-extension-temp/algorithm/index.js.map +1 -0
- package/cjs/vutil-extension-temp/index.d.ts +4 -0
- package/cjs/vutil-extension-temp/index.js +22 -0
- package/cjs/vutil-extension-temp/index.js.map +1 -0
- package/cjs/vutil-extension-temp/spec/clone-deep.d.ts +1 -0
- package/cjs/vutil-extension-temp/spec/clone-deep.js +27 -0
- package/cjs/vutil-extension-temp/spec/clone-deep.js.map +1 -0
- package/cjs/vutil-extension-temp/spec/common.d.ts +3 -0
- package/cjs/vutil-extension-temp/spec/common.js +23 -0
- package/cjs/vutil-extension-temp/spec/common.js.map +1 -0
- package/cjs/vutil-extension-temp/spec/index.d.ts +3 -0
- package/cjs/vutil-extension-temp/spec/index.js +22 -0
- package/cjs/vutil-extension-temp/spec/index.js.map +1 -0
- package/cjs/vutil-extension-temp/spec/merge-spec.d.ts +5 -0
- package/cjs/vutil-extension-temp/spec/merge-spec.js +69 -0
- package/cjs/vutil-extension-temp/spec/merge-spec.js.map +1 -0
- package/cjs/vutil-extension-temp/transform/tick-data/config.d.ts +1 -0
- package/cjs/vutil-extension-temp/transform/tick-data/config.js +6 -0
- package/cjs/vutil-extension-temp/transform/tick-data/config.js.map +1 -0
- package/cjs/vutil-extension-temp/transform/tick-data/continuous.d.ts +3 -0
- package/cjs/vutil-extension-temp/transform/tick-data/continuous.js +57 -0
- package/cjs/vutil-extension-temp/transform/tick-data/continuous.js.map +1 -0
- package/cjs/vutil-extension-temp/transform/tick-data/discrete/linear.d.ts +6 -0
- package/cjs/vutil-extension-temp/transform/tick-data/discrete/linear.js +101 -0
- package/cjs/vutil-extension-temp/transform/tick-data/discrete/linear.js.map +1 -0
- package/cjs/vutil-extension-temp/transform/tick-data/discrete/polar-angle.d.ts +3 -0
- package/cjs/vutil-extension-temp/transform/tick-data/discrete/polar-angle.js +53 -0
- package/cjs/vutil-extension-temp/transform/tick-data/discrete/polar-angle.js.map +1 -0
- package/cjs/vutil-extension-temp/transform/tick-data/index.d.ts +6 -0
- package/cjs/vutil-extension-temp/transform/tick-data/index.js +41 -0
- package/cjs/vutil-extension-temp/transform/tick-data/index.js.map +1 -0
- package/cjs/vutil-extension-temp/transform/tick-data/interface.d.ts +38 -0
- package/cjs/vutil-extension-temp/transform/tick-data/interface.js +6 -0
- package/cjs/vutil-extension-temp/transform/tick-data/interface.js.map +1 -0
- package/cjs/vutil-extension-temp/transform/tick-data/util.d.ts +17 -0
- package/cjs/vutil-extension-temp/transform/tick-data/util.js +91 -0
- package/cjs/vutil-extension-temp/transform/tick-data/util.js.map +1 -0
- package/cjs/vutil-extension-temp/transform/tick-data/utils/polar-label-position.d.ts +8 -0
- package/cjs/vutil-extension-temp/transform/tick-data/utils/polar-label-position.js +20 -0
- package/cjs/vutil-extension-temp/transform/tick-data/utils/polar-label-position.js.map +1 -0
- package/cjs/vutil-extension-temp/utils/index.d.ts +3 -0
- package/cjs/vutil-extension-temp/utils/index.js +22 -0
- package/cjs/vutil-extension-temp/utils/index.js.map +1 -0
- package/cjs/vutil-extension-temp/utils/object.d.ts +3 -0
- package/cjs/vutil-extension-temp/utils/object.js +30 -0
- package/cjs/vutil-extension-temp/utils/object.js.map +1 -0
- package/cjs/vutil-extension-temp/utils/polar.d.ts +5 -0
- package/cjs/vutil-extension-temp/utils/polar.js +23 -0
- package/cjs/vutil-extension-temp/utils/polar.js.map +1 -0
- package/cjs/vutil-extension-temp/utils/text.d.ts +4 -0
- package/cjs/vutil-extension-temp/utils/text.js +17 -0
- package/cjs/vutil-extension-temp/utils/text.js.map +1 -0
- package/dist/vtable.js +513 -340
- package/dist/vtable.min.js +2 -2
- package/es/ListTable.js +1 -1
- package/es/ListTable.js.map +1 -1
- package/es/PivotChart.js +1 -1
- package/es/PivotChart.js.map +1 -1
- package/es/PivotTable.js +1 -1
- package/es/PivotTable.js.map +1 -1
- package/es/components/axis/axis.js +1 -1
- package/es/components/axis/axis.js.map +1 -1
- package/es/core/BaseTable.js +1 -1
- package/es/core/BaseTable.js.map +1 -1
- 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-chart-spec.js +1 -1
- package/es/layout/chart-helper/get-chart-spec.js.map +1 -1
- package/es/vrender.js.map +1 -1
- package/es/vutil-extension-temp/algorithm/binary-search.d.ts +2 -0
- package/es/vutil-extension-temp/algorithm/binary-search.js +11 -0
- package/es/vutil-extension-temp/algorithm/binary-search.js.map +1 -0
- package/es/vutil-extension-temp/algorithm/index.d.ts +1 -0
- package/es/vutil-extension-temp/algorithm/index.js +2 -0
- package/es/vutil-extension-temp/algorithm/index.js.map +1 -0
- package/es/vutil-extension-temp/index.d.ts +4 -0
- package/es/vutil-extension-temp/index.js +8 -0
- package/es/vutil-extension-temp/index.js.map +1 -0
- package/es/vutil-extension-temp/spec/clone-deep.d.ts +1 -0
- package/es/vutil-extension-temp/spec/clone-deep.js +20 -0
- package/es/vutil-extension-temp/spec/clone-deep.js.map +1 -0
- package/es/vutil-extension-temp/spec/common.d.ts +3 -0
- package/es/vutil-extension-temp/spec/common.js +15 -0
- package/es/vutil-extension-temp/spec/common.js.map +1 -0
- package/es/vutil-extension-temp/spec/index.d.ts +3 -0
- package/es/vutil-extension-temp/spec/index.js +6 -0
- package/es/vutil-extension-temp/spec/index.js.map +1 -0
- package/es/vutil-extension-temp/spec/merge-spec.d.ts +5 -0
- package/es/vutil-extension-temp/spec/merge-spec.js +57 -0
- package/es/vutil-extension-temp/spec/merge-spec.js.map +1 -0
- package/es/vutil-extension-temp/transform/tick-data/config.d.ts +1 -0
- package/es/vutil-extension-temp/transform/tick-data/config.js +2 -0
- package/es/vutil-extension-temp/transform/tick-data/config.js.map +1 -0
- package/es/vutil-extension-temp/transform/tick-data/continuous.d.ts +3 -0
- package/es/vutil-extension-temp/transform/tick-data/continuous.js +56 -0
- package/es/vutil-extension-temp/transform/tick-data/continuous.js.map +1 -0
- package/es/vutil-extension-temp/transform/tick-data/discrete/linear.d.ts +6 -0
- package/es/vutil-extension-temp/transform/tick-data/discrete/linear.js +92 -0
- package/es/vutil-extension-temp/transform/tick-data/discrete/linear.js.map +1 -0
- package/es/vutil-extension-temp/transform/tick-data/discrete/polar-angle.d.ts +3 -0
- package/es/vutil-extension-temp/transform/tick-data/discrete/polar-angle.js +45 -0
- package/es/vutil-extension-temp/transform/tick-data/discrete/polar-angle.js.map +1 -0
- package/es/vutil-extension-temp/transform/tick-data/index.d.ts +6 -0
- package/es/vutil-extension-temp/transform/tick-data/index.js +23 -0
- package/es/vutil-extension-temp/transform/tick-data/index.js.map +1 -0
- package/es/vutil-extension-temp/transform/tick-data/interface.d.ts +38 -0
- package/es/vutil-extension-temp/transform/tick-data/interface.js +2 -0
- package/es/vutil-extension-temp/transform/tick-data/interface.js.map +1 -0
- package/es/vutil-extension-temp/transform/tick-data/util.d.ts +17 -0
- package/es/vutil-extension-temp/transform/tick-data/util.js +78 -0
- package/es/vutil-extension-temp/transform/tick-data/util.js.map +1 -0
- package/es/vutil-extension-temp/transform/tick-data/utils/polar-label-position.d.ts +8 -0
- package/es/vutil-extension-temp/transform/tick-data/utils/polar-label-position.js +12 -0
- package/es/vutil-extension-temp/transform/tick-data/utils/polar-label-position.js.map +1 -0
- package/es/vutil-extension-temp/utils/index.d.ts +3 -0
- package/es/vutil-extension-temp/utils/index.js +6 -0
- package/es/vutil-extension-temp/utils/index.js.map +1 -0
- package/es/vutil-extension-temp/utils/object.d.ts +3 -0
- package/es/vutil-extension-temp/utils/object.js +15 -0
- package/es/vutil-extension-temp/utils/object.js.map +1 -0
- package/es/vutil-extension-temp/utils/polar.d.ts +5 -0
- package/es/vutil-extension-temp/utils/polar.js +16 -0
- package/es/vutil-extension-temp/utils/polar.js.map +1 -0
- package/es/vutil-extension-temp/utils/text.d.ts +4 -0
- package/es/vutil-extension-temp/utils/text.js +13 -0
- package/es/vutil-extension-temp/utils/text.js.map +1 -0
- package/package.json +4 -5
package/dist/vtable.js
CHANGED
|
@@ -32089,390 +32089,563 @@
|
|
|
32089
32089
|
|
|
32090
32090
|
const DEFAULT_CONTINUOUS_TICK_COUNT$1 = 5;
|
|
32091
32091
|
|
|
32092
|
-
const initTextMeasure$1 = (textSpec, option, useNaiveCanvas, defaultFontParams) =>
|
|
32093
|
-
|
|
32094
|
-
|
|
32095
|
-
|
|
32096
|
-
|
|
32097
|
-
|
|
32098
|
-
|
|
32099
|
-
|
|
32092
|
+
const initTextMeasure$1 = (textSpec, option, useNaiveCanvas, defaultFontParams) => {
|
|
32093
|
+
return new TextMeasure({
|
|
32094
|
+
defaultFontParams: {
|
|
32095
|
+
fontFamily: 'PingFang SC,Helvetica Neue,Microsoft Yahei,system-ui,-apple-system,segoe ui,Roboto,Helvetica,Arial,sans-serif,apple color emoji,segoe ui emoji,segoe ui symbol',
|
|
32096
|
+
fontSize: 14,
|
|
32097
|
+
...defaultFontParams
|
|
32098
|
+
},
|
|
32099
|
+
getTextBounds: useNaiveCanvas ? undefined : getTextBounds,
|
|
32100
|
+
specialCharSet: '-/: .,@%\'"~' + TextMeasure.ALPHABET_CHAR_SET + TextMeasure.ALPHABET_CHAR_SET.toUpperCase(),
|
|
32101
|
+
...(option ?? {})
|
|
32102
|
+
}, textSpec);
|
|
32103
|
+
};
|
|
32100
32104
|
|
|
32101
32105
|
function getLabelPosition(angle, center, radius, labelOffset, inside, text, style) {
|
|
32102
|
-
|
|
32103
|
-
|
|
32104
|
-
|
|
32105
|
-
|
|
32106
|
-
|
|
32107
|
-
|
|
32108
|
-
|
|
32109
|
-
|
|
32110
|
-
|
|
32111
|
-
|
|
32112
|
-
|
|
32113
|
-
|
|
32114
|
-
|
|
32115
|
-
|
|
32116
|
-
|
|
32117
|
-
|
|
32118
|
-
|
|
32119
|
-
|
|
32106
|
+
const point = polarToCartesian({ x: 0, y: 0 }, radius, angle);
|
|
32107
|
+
const labelPoint = getVerticalCoord(point, getCircleVerticalVector(labelOffset, point, center, inside));
|
|
32108
|
+
const vector = getCircleVerticalVector(labelOffset || 1, labelPoint, center, inside);
|
|
32109
|
+
return getCircleLabelPosition(labelPoint, vector, text, style);
|
|
32110
|
+
}
|
|
32111
|
+
|
|
32112
|
+
const convertDomainToTickData = (domain) => {
|
|
32113
|
+
const ticks = domain.map((t, index) => {
|
|
32114
|
+
return {
|
|
32115
|
+
index,
|
|
32116
|
+
value: t
|
|
32117
|
+
};
|
|
32118
|
+
});
|
|
32119
|
+
return ticks;
|
|
32120
|
+
};
|
|
32121
|
+
const labelOverlap = (prevLabel, nextLabel, gap = 0) => {
|
|
32122
|
+
const prevBounds = new AABBBounds(prevLabel).expand(gap / 2);
|
|
32123
|
+
const nextBounds = new AABBBounds(nextLabel).expand(gap / 2);
|
|
32124
|
+
return prevBounds.intersects(nextBounds);
|
|
32120
32125
|
};
|
|
32121
32126
|
function intersect(a, b, sep) {
|
|
32122
|
-
|
|
32127
|
+
return sep > Math.max(b.x1 - a.x2, a.x1 - b.x2, b.y1 - a.y2, a.y1 - b.y2);
|
|
32123
32128
|
}
|
|
32124
32129
|
function hasOverlap(items, pad) {
|
|
32125
|
-
|
|
32126
|
-
|
|
32130
|
+
for (let i = 1, n = items.length, a = items[0], b; i < n; a = b, ++i) {
|
|
32131
|
+
b = items[i];
|
|
32132
|
+
if (intersect(a.AABBBounds, b.AABBBounds, pad)) {
|
|
32133
|
+
return true;
|
|
32134
|
+
}
|
|
32135
|
+
}
|
|
32136
|
+
return false;
|
|
32127
32137
|
}
|
|
32138
|
+
const MIN_TICK_GAP = 12;
|
|
32128
32139
|
const getCartesianLabelBounds = (scale, domain, op) => {
|
|
32129
|
-
|
|
32130
|
-
|
|
32131
|
-
labelStyle
|
|
32132
|
-
|
|
32133
|
-
|
|
32134
|
-
|
|
32135
|
-
|
|
32136
|
-
|
|
32137
|
-
|
|
32138
|
-
|
|
32139
|
-
|
|
32140
|
-
|
|
32141
|
-
|
|
32142
|
-
|
|
32143
|
-
|
|
32144
|
-
|
|
32145
|
-
|
|
32146
|
-
|
|
32147
|
-
|
|
32148
|
-
|
|
32149
|
-
|
|
32150
|
-
|
|
32151
|
-
|
|
32152
|
-
|
|
32153
|
-
|
|
32154
|
-
|
|
32155
|
-
|
|
32156
|
-
|
|
32157
|
-
|
|
32158
|
-
|
|
32159
|
-
|
|
32160
|
-
|
|
32161
|
-
|
|
32162
|
-
|
|
32163
|
-
|
|
32140
|
+
const { labelStyle, axisOrientType, labelFlush, labelFormatter, startAngle = 0 } = op;
|
|
32141
|
+
let labelAngle = labelStyle.angle ?? 0;
|
|
32142
|
+
if (labelStyle.direction === 'vertical') {
|
|
32143
|
+
labelAngle += degreeToRadian(90);
|
|
32144
|
+
}
|
|
32145
|
+
const isHorizontal = ['bottom', 'top'].includes(axisOrientType);
|
|
32146
|
+
const isVertical = ['left', 'right'].includes(axisOrientType);
|
|
32147
|
+
let scaleX = 1;
|
|
32148
|
+
let scaleY = 0;
|
|
32149
|
+
if (isHorizontal) ;
|
|
32150
|
+
else if (isVertical) {
|
|
32151
|
+
scaleX = 0;
|
|
32152
|
+
scaleY = 1;
|
|
32153
|
+
}
|
|
32154
|
+
else if (startAngle) {
|
|
32155
|
+
scaleX = Math.cos(startAngle);
|
|
32156
|
+
scaleY = -Math.sin(startAngle);
|
|
32157
|
+
}
|
|
32158
|
+
const textMeasure = initTextMeasure$1(labelStyle);
|
|
32159
|
+
const labelBoundsList = domain.map((v, i) => {
|
|
32160
|
+
const str = labelFormatter ? labelFormatter(v) : `${v}`;
|
|
32161
|
+
const { width, height } = textMeasure.quickMeasure(str);
|
|
32162
|
+
const textWidth = Math.max(width, MIN_TICK_GAP);
|
|
32163
|
+
const textHeight = Math.max(height, MIN_TICK_GAP);
|
|
32164
|
+
const pos = scale.scale(v);
|
|
32165
|
+
const baseTextX = scaleX * pos;
|
|
32166
|
+
const baseTextY = scaleY * pos;
|
|
32167
|
+
let textX = baseTextX;
|
|
32168
|
+
let textY = baseTextY;
|
|
32169
|
+
let align;
|
|
32170
|
+
if (labelFlush && isHorizontal && i === 0) {
|
|
32171
|
+
align = 'left';
|
|
32172
|
+
}
|
|
32173
|
+
else if (labelFlush && isHorizontal && i === domain.length - 1) {
|
|
32174
|
+
align = 'right';
|
|
32175
|
+
}
|
|
32176
|
+
else {
|
|
32177
|
+
align = labelStyle.textAlign ?? 'center';
|
|
32178
|
+
}
|
|
32179
|
+
if (align === 'right') {
|
|
32180
|
+
textX -= textWidth;
|
|
32181
|
+
}
|
|
32182
|
+
else if (align === 'center') {
|
|
32183
|
+
textX -= textWidth / 2;
|
|
32184
|
+
}
|
|
32185
|
+
let baseline;
|
|
32186
|
+
if (labelFlush && isVertical && i === 0) {
|
|
32187
|
+
baseline = 'top';
|
|
32188
|
+
}
|
|
32189
|
+
else if (labelFlush && isVertical && i === domain.length - 1) {
|
|
32190
|
+
baseline = 'bottom';
|
|
32191
|
+
}
|
|
32192
|
+
else {
|
|
32193
|
+
baseline = labelStyle.textBaseline ?? 'middle';
|
|
32194
|
+
}
|
|
32195
|
+
if (baseline === 'bottom') {
|
|
32196
|
+
textY -= textHeight;
|
|
32197
|
+
}
|
|
32198
|
+
else if (baseline === 'middle') {
|
|
32199
|
+
textY -= textHeight / 2;
|
|
32200
|
+
}
|
|
32201
|
+
const bounds = new AABBBounds().set(textX, textY, textX + textWidth, textY + textHeight);
|
|
32202
|
+
if (labelAngle) {
|
|
32203
|
+
bounds.rotate(labelAngle, baseTextX, baseTextY);
|
|
32204
|
+
}
|
|
32205
|
+
return bounds;
|
|
32164
32206
|
});
|
|
32165
|
-
|
|
32207
|
+
return labelBoundsList;
|
|
32166
32208
|
};
|
|
32167
32209
|
const getPolarAngleLabelBounds = (scale, domain, op) => {
|
|
32168
|
-
|
|
32169
|
-
|
|
32170
|
-
|
|
32171
|
-
|
|
32172
|
-
|
|
32173
|
-
|
|
32174
|
-
|
|
32175
|
-
|
|
32176
|
-
|
|
32177
|
-
|
|
32178
|
-
|
|
32179
|
-
|
|
32180
|
-
|
|
32181
|
-
|
|
32182
|
-
|
|
32183
|
-
|
|
32184
|
-
|
|
32185
|
-
|
|
32186
|
-
|
|
32187
|
-
|
|
32188
|
-
|
|
32189
|
-
|
|
32190
|
-
|
|
32191
|
-
const orient_align = null !== (_a = labelStyle.textAlign) && void 0 !== _a ? _a : "center",
|
|
32192
|
-
orient_baseline = null !== (_b = labelStyle.textBaseline) && void 0 !== _b ? _b : "middle",
|
|
32193
|
-
{
|
|
32194
|
-
x: x,
|
|
32195
|
-
y: y
|
|
32196
|
-
} = getLabelPosition(angle, {
|
|
32197
|
-
x: 0,
|
|
32198
|
-
y: 0
|
|
32199
|
-
}, radius, labelOffset, inside, str, labelStyle);
|
|
32200
|
-
textX = x + ("right" === orient_align ? -textWidth : "center" === orient_align ? -textWidth / 2 : 0), textY = y + ("bottom" === orient_baseline ? -textHeight : "middle" === orient_baseline ? -textHeight / 2 : 0);
|
|
32201
|
-
return new AABBBounds().set(textX, textY, textX + textWidth, textY + textHeight).rotate(labelAngle, textX + textWidth / 2, textY + textHeight / 2);
|
|
32210
|
+
const { labelStyle, getRadius, labelOffset, labelFormatter, inside } = op;
|
|
32211
|
+
const radius = getRadius?.();
|
|
32212
|
+
const labelAngle = labelStyle.angle ?? 0;
|
|
32213
|
+
const textMeasure = initTextMeasure$1(labelStyle);
|
|
32214
|
+
const labelBoundsList = domain.map((v) => {
|
|
32215
|
+
const str = labelFormatter ? labelFormatter(v) : `${v}`;
|
|
32216
|
+
const { width, height } = textMeasure.quickMeasure(str);
|
|
32217
|
+
const textWidth = Math.max(width, MIN_TICK_GAP);
|
|
32218
|
+
const textHeight = Math.max(height, MIN_TICK_GAP);
|
|
32219
|
+
const angle = scale.scale(v);
|
|
32220
|
+
let textX = 0;
|
|
32221
|
+
let textY = 0;
|
|
32222
|
+
const orient = {
|
|
32223
|
+
align: labelStyle.textAlign ?? 'center',
|
|
32224
|
+
baseline: labelStyle.textBaseline ?? 'middle'
|
|
32225
|
+
};
|
|
32226
|
+
const { x, y } = getLabelPosition(angle, { x: 0, y: 0 }, radius, labelOffset, inside, str, labelStyle);
|
|
32227
|
+
textX = x + (orient.align === 'right' ? -textWidth : orient.align === 'center' ? -textWidth / 2 : 0);
|
|
32228
|
+
textY = y + (orient.baseline === 'bottom' ? -textHeight : orient.baseline === 'middle' ? -textHeight / 2 : 0);
|
|
32229
|
+
const bounds = new AABBBounds()
|
|
32230
|
+
.set(textX, textY, textX + textWidth, textY + textHeight)
|
|
32231
|
+
.rotate(labelAngle, textX + textWidth / 2, textY + textHeight / 2);
|
|
32232
|
+
return bounds;
|
|
32202
32233
|
});
|
|
32203
|
-
|
|
32234
|
+
return labelBoundsList;
|
|
32235
|
+
};
|
|
32236
|
+
const isAxisHorizontal = (axisOrientType) => {
|
|
32237
|
+
return ['bottom', 'top', 'z'].includes(axisOrientType);
|
|
32204
32238
|
};
|
|
32205
|
-
const isAxisHorizontal = axisOrientType => ["bottom", "top", "z"].includes(axisOrientType);
|
|
32206
32239
|
|
|
32207
32240
|
const continuousTicks = (scale, op) => {
|
|
32208
|
-
|
|
32209
|
-
|
|
32210
|
-
|
|
32211
|
-
|
|
32212
|
-
|
|
32213
|
-
|
|
32214
|
-
|
|
32215
|
-
|
|
32216
|
-
noDecimals =
|
|
32217
|
-
|
|
32218
|
-
|
|
32219
|
-
|
|
32220
|
-
|
|
32221
|
-
|
|
32222
|
-
|
|
32223
|
-
|
|
32224
|
-
|
|
32225
|
-
|
|
32226
|
-
|
|
32227
|
-
}
|
|
32228
|
-
|
|
32229
|
-
|
|
32230
|
-
|
|
32231
|
-
|
|
32232
|
-
|
|
32233
|
-
|
|
32234
|
-
|
|
32235
|
-
|
|
32236
|
-
|
|
32237
|
-
|
|
32238
|
-
|
|
32239
|
-
|
|
32240
|
-
|
|
32241
|
-
|
|
32242
|
-
|
|
32243
|
-
|
|
32244
|
-
|
|
32245
|
-
|
|
32246
|
-
|
|
32247
|
-
|
|
32248
|
-
|
|
32249
|
-
|
|
32250
|
-
|
|
32241
|
+
if (!isContinuous(scale.type)) {
|
|
32242
|
+
return convertDomainToTickData(scale.domain());
|
|
32243
|
+
}
|
|
32244
|
+
const range = scale.range();
|
|
32245
|
+
const rangeSize = Math.abs(range[range.length - 1] - range[0]);
|
|
32246
|
+
if (rangeSize < 2) {
|
|
32247
|
+
return convertDomainToTickData([scale.domain()[0]]);
|
|
32248
|
+
}
|
|
32249
|
+
const { tickCount, forceTickCount, tickStep, noDecimals = false, labelStyle } = op;
|
|
32250
|
+
let scaleTicks;
|
|
32251
|
+
if (isValid$3(tickStep)) {
|
|
32252
|
+
scaleTicks = scale.stepTicks(tickStep);
|
|
32253
|
+
}
|
|
32254
|
+
else if (isValid$3(forceTickCount)) {
|
|
32255
|
+
scaleTicks = scale.forceTicks(forceTickCount);
|
|
32256
|
+
}
|
|
32257
|
+
else if (op.tickMode === 'd3') {
|
|
32258
|
+
const count = isFunction$1(tickCount) ? tickCount({ axisLength: rangeSize, labelStyle }) : tickCount;
|
|
32259
|
+
scaleTicks = scale.d3Ticks(count ?? DEFAULT_CONTINUOUS_TICK_COUNT$1, { noDecimals });
|
|
32260
|
+
}
|
|
32261
|
+
else {
|
|
32262
|
+
const count = isFunction$1(tickCount) ? tickCount({ axisLength: rangeSize, labelStyle }) : tickCount;
|
|
32263
|
+
scaleTicks = scale.ticks(count ?? DEFAULT_CONTINUOUS_TICK_COUNT$1, { noDecimals });
|
|
32264
|
+
}
|
|
32265
|
+
if (op.sampling) {
|
|
32266
|
+
if (op.coordinateType === 'cartesian' || (op.coordinateType === 'polar' && op.axisOrientType === 'radius')) {
|
|
32267
|
+
const { labelGap = 4, labelFlush } = op;
|
|
32268
|
+
let items = getCartesianLabelBounds(scale, scaleTicks, op).map((bounds, i) => ({
|
|
32269
|
+
AABBBounds: bounds,
|
|
32270
|
+
value: scaleTicks[i]
|
|
32271
|
+
}));
|
|
32272
|
+
while (items.length >= 3 && hasOverlap(items, labelGap)) {
|
|
32273
|
+
items = methods.parity(items);
|
|
32274
|
+
}
|
|
32275
|
+
const ticks = items.map(item => item.value);
|
|
32276
|
+
if (ticks.length < 3 && labelFlush) {
|
|
32277
|
+
if (ticks.length > 1) {
|
|
32278
|
+
ticks.pop();
|
|
32279
|
+
}
|
|
32280
|
+
if (last(ticks) !== last(scaleTicks)) {
|
|
32281
|
+
ticks.push(last(scaleTicks));
|
|
32282
|
+
}
|
|
32283
|
+
}
|
|
32284
|
+
scaleTicks = ticks;
|
|
32285
|
+
}
|
|
32286
|
+
}
|
|
32287
|
+
return convertDomainToTickData(scaleTicks);
|
|
32251
32288
|
};
|
|
32252
32289
|
const methods = {
|
|
32253
|
-
|
|
32254
|
-
|
|
32255
|
-
|
|
32256
|
-
|
|
32257
|
-
|
|
32258
|
-
|
|
32259
|
-
|
|
32290
|
+
parity: function (items) {
|
|
32291
|
+
return items.filter((item, i) => i % 2 === 0);
|
|
32292
|
+
},
|
|
32293
|
+
greedy: function (items, sep) {
|
|
32294
|
+
let a;
|
|
32295
|
+
return items.filter((b, i) => {
|
|
32296
|
+
if (!i || !intersect(a.AABBBounds, b.AABBBounds, sep)) {
|
|
32297
|
+
a = b;
|
|
32298
|
+
return true;
|
|
32299
|
+
}
|
|
32300
|
+
return false;
|
|
32301
|
+
});
|
|
32302
|
+
}
|
|
32260
32303
|
};
|
|
32261
32304
|
|
|
32262
32305
|
const binaryFuzzySearchInNumberRange = (x1, x2, compareFn) => {
|
|
32263
|
-
|
|
32264
|
-
right = x2;
|
|
32265
|
-
|
|
32266
|
-
|
|
32267
|
-
|
|
32268
|
-
|
|
32269
|
-
|
|
32306
|
+
let left = x1;
|
|
32307
|
+
let right = x2;
|
|
32308
|
+
while (left < right) {
|
|
32309
|
+
const mid = Math.floor((left + right) / 2);
|
|
32310
|
+
if (compareFn(mid) >= 0) {
|
|
32311
|
+
right = mid;
|
|
32312
|
+
}
|
|
32313
|
+
else {
|
|
32314
|
+
left = mid + 1;
|
|
32315
|
+
}
|
|
32316
|
+
}
|
|
32317
|
+
return left;
|
|
32270
32318
|
};
|
|
32271
32319
|
|
|
32272
|
-
const getOneDimensionalLabelBounds = (scale, domain, op, isHorizontal) =>
|
|
32273
|
-
|
|
32274
|
-
|
|
32320
|
+
const getOneDimensionalLabelBounds = (scale, domain, op, isHorizontal) => {
|
|
32321
|
+
const labelBoundsList = getCartesianLabelBounds(scale, domain, op);
|
|
32322
|
+
return labelBoundsList.map(bounds => {
|
|
32323
|
+
if (isHorizontal) {
|
|
32324
|
+
return [bounds.x1, bounds.x2, bounds.width()];
|
|
32325
|
+
}
|
|
32326
|
+
return [bounds.y1, bounds.y2, bounds.height()];
|
|
32327
|
+
});
|
|
32328
|
+
};
|
|
32329
|
+
const boundsOverlap = (prevBounds, nextBounds, gap = 0) => {
|
|
32275
32330
|
return Math.max(prevBounds[0], nextBounds[0]) - gap / 2 <= Math.min(prevBounds[1], nextBounds[1]) + gap / 2;
|
|
32276
|
-
|
|
32277
|
-
const boundsDistance = (prevBounds, nextBounds) =>
|
|
32331
|
+
};
|
|
32332
|
+
const boundsDistance = (prevBounds, nextBounds) => {
|
|
32333
|
+
if (prevBounds[1] < nextBounds[0]) {
|
|
32334
|
+
return nextBounds[0] - prevBounds[1];
|
|
32335
|
+
}
|
|
32336
|
+
else if (nextBounds[1] < prevBounds[0]) {
|
|
32337
|
+
return prevBounds[0] - nextBounds[1];
|
|
32338
|
+
}
|
|
32339
|
+
return 0;
|
|
32340
|
+
};
|
|
32278
32341
|
const linearDiscreteTicks = (scale, op) => {
|
|
32279
|
-
|
|
32280
|
-
|
|
32281
|
-
|
|
32282
|
-
|
|
32283
|
-
|
|
32284
|
-
|
|
32285
|
-
|
|
32286
|
-
|
|
32287
|
-
|
|
32288
|
-
|
|
32289
|
-
|
|
32290
|
-
|
|
32291
|
-
|
|
32292
|
-
|
|
32293
|
-
|
|
32294
|
-
|
|
32295
|
-
|
|
32296
|
-
|
|
32297
|
-
|
|
32298
|
-
|
|
32299
|
-
}
|
|
32300
|
-
|
|
32301
|
-
|
|
32302
|
-
|
|
32303
|
-
|
|
32304
|
-
|
|
32305
|
-
|
|
32306
|
-
|
|
32307
|
-
|
|
32308
|
-
|
|
32309
|
-
|
|
32310
|
-
|
|
32311
|
-
|
|
32312
|
-
|
|
32313
|
-
|
|
32314
|
-
|
|
32315
|
-
|
|
32316
|
-
|
|
32317
|
-
|
|
32318
|
-
|
|
32319
|
-
|
|
32342
|
+
const domain = scale.domain();
|
|
32343
|
+
if (!domain.length) {
|
|
32344
|
+
return [];
|
|
32345
|
+
}
|
|
32346
|
+
const { tickCount, forceTickCount, tickStep, labelGap = 4, axisOrientType, labelStyle } = op;
|
|
32347
|
+
const isHorizontal = isAxisHorizontal(axisOrientType);
|
|
32348
|
+
const range = scale.range();
|
|
32349
|
+
const rangeSize = scale.calculateWholeRangeSize();
|
|
32350
|
+
if (rangeSize < 2) {
|
|
32351
|
+
if (op.labelLastVisible) {
|
|
32352
|
+
return convertDomainToTickData([domain[domain.length - 1]]);
|
|
32353
|
+
}
|
|
32354
|
+
return convertDomainToTickData([domain[0]]);
|
|
32355
|
+
}
|
|
32356
|
+
let scaleTicks;
|
|
32357
|
+
if (isValid$3(tickStep)) {
|
|
32358
|
+
scaleTicks = scale.stepTicks(tickStep);
|
|
32359
|
+
}
|
|
32360
|
+
else if (isValid$3(forceTickCount)) {
|
|
32361
|
+
scaleTicks = scale.forceTicks(forceTickCount);
|
|
32362
|
+
}
|
|
32363
|
+
else if (isValid$3(tickCount)) {
|
|
32364
|
+
const count = isFunction$1(tickCount) ? tickCount({ axisLength: rangeSize, labelStyle }) : tickCount;
|
|
32365
|
+
scaleTicks = scale.ticks(count);
|
|
32366
|
+
}
|
|
32367
|
+
else if (op.sampling) {
|
|
32368
|
+
const fontSize = (op.labelStyle.fontSize ?? 12) + 2;
|
|
32369
|
+
const rangeStart = minInArray(range);
|
|
32370
|
+
const rangeEnd = maxInArray(range);
|
|
32371
|
+
if (domain.length <= rangeSize / fontSize) {
|
|
32372
|
+
const incrementUnit = (rangeEnd - rangeStart) / domain.length;
|
|
32373
|
+
const labelBoundsList = getOneDimensionalLabelBounds(scale, domain, op, isHorizontal);
|
|
32374
|
+
const minBoundsLength = Math.min(...labelBoundsList.map(bounds => bounds[2]));
|
|
32375
|
+
const stepResult = getStep$1(domain, labelBoundsList, labelGap, op.labelLastVisible, Math.floor(minBoundsLength / incrementUnit), false);
|
|
32376
|
+
scaleTicks = scale.stepTicks(stepResult.step);
|
|
32377
|
+
if (op.labelLastVisible) {
|
|
32378
|
+
if (stepResult.delCount) {
|
|
32379
|
+
scaleTicks = scaleTicks.slice(0, scaleTicks.length - stepResult.delCount);
|
|
32380
|
+
}
|
|
32381
|
+
scaleTicks.push(domain[domain.length - 1]);
|
|
32382
|
+
}
|
|
32383
|
+
}
|
|
32384
|
+
else {
|
|
32385
|
+
const tempDomain = [domain[0], domain[Math.floor(domain.length / 2)], domain[domain.length - 1]];
|
|
32386
|
+
const tempList = getOneDimensionalLabelBounds(scale, tempDomain, op, isHorizontal);
|
|
32387
|
+
let maxBounds = null;
|
|
32388
|
+
tempList.forEach(current => {
|
|
32389
|
+
if (!maxBounds) {
|
|
32390
|
+
maxBounds = current;
|
|
32391
|
+
return;
|
|
32392
|
+
}
|
|
32393
|
+
if (maxBounds[2] < current[2]) {
|
|
32394
|
+
maxBounds = current;
|
|
32395
|
+
}
|
|
32396
|
+
});
|
|
32397
|
+
const step = rangeEnd - rangeStart - labelGap > 0
|
|
32398
|
+
? Math.ceil((domain.length * (labelGap + maxBounds[2])) / (rangeEnd - rangeStart - labelGap))
|
|
32399
|
+
: domain.length - 1;
|
|
32400
|
+
scaleTicks = scale.stepTicks(step);
|
|
32401
|
+
if (op.labelLastVisible &&
|
|
32402
|
+
(!scaleTicks.length || scaleTicks[scaleTicks.length - 1] !== domain[domain.length - 1])) {
|
|
32403
|
+
if (scaleTicks.length &&
|
|
32404
|
+
Math.abs(scale.scale(scaleTicks[scaleTicks.length - 1]) - scale.scale(domain[domain.length - 1])) <
|
|
32405
|
+
maxBounds[2]) {
|
|
32406
|
+
scaleTicks = scaleTicks.slice(0, -1);
|
|
32407
|
+
}
|
|
32408
|
+
scaleTicks.push(domain[domain.length - 1]);
|
|
32409
|
+
}
|
|
32410
|
+
}
|
|
32320
32411
|
}
|
|
32321
|
-
|
|
32322
|
-
|
|
32412
|
+
else {
|
|
32413
|
+
scaleTicks = scale.domain();
|
|
32414
|
+
}
|
|
32415
|
+
return convertDomainToTickData(scaleTicks);
|
|
32323
32416
|
};
|
|
32324
32417
|
const getStep$1 = (domain, labelBoundsList, labelGap, labelLastVisible, defaultStep, areAllBoundsSame) => {
|
|
32325
|
-
|
|
32326
|
-
resultStep = 0
|
|
32327
|
-
resultTickCount = -1
|
|
32328
|
-
minDiff = Number.MAX_VALUE;
|
|
32329
|
-
|
|
32330
|
-
|
|
32331
|
-
ptr = 0;
|
|
32332
|
-
do {
|
|
32333
|
-
ptr + step < domain.length && boundsOverlap(labelBoundsList[ptr], labelBoundsList[ptr + step], labelGap) && (success = !1), ptr += step;
|
|
32334
|
-
} while (success && ptr < domain.length);
|
|
32335
|
-
return success;
|
|
32336
|
-
},
|
|
32337
|
-
minValidStep = binaryFuzzySearchInNumberRange(defaultStep, domain.length, step => validateStep(step) ? 1 : -1);
|
|
32338
|
-
let step = minValidStep;
|
|
32339
|
-
do {
|
|
32340
|
-
if (step > minValidStep && !areAllBoundsSame && !validateStep(step)) step++;else {
|
|
32341
|
-
if (!labelLastVisible) {
|
|
32342
|
-
resultStep = step;
|
|
32343
|
-
break;
|
|
32344
|
-
}
|
|
32345
|
-
{
|
|
32346
|
-
const lastIndex = domain.length - 1;
|
|
32347
|
-
let ptr,
|
|
32348
|
-
delCount = 0;
|
|
32349
|
-
ptr = domain.length % step > 0 ? domain.length - domain.length % step + step : domain.length;
|
|
32418
|
+
let resultDelCount = 0;
|
|
32419
|
+
let resultStep = 0;
|
|
32420
|
+
let resultTickCount = -1;
|
|
32421
|
+
let minDiff = Number.MAX_VALUE;
|
|
32422
|
+
const validateStep = (step) => {
|
|
32423
|
+
let success = true;
|
|
32424
|
+
let ptr = 0;
|
|
32350
32425
|
do {
|
|
32351
|
-
|
|
32352
|
-
|
|
32353
|
-
|
|
32354
|
-
|
|
32355
|
-
|
|
32356
|
-
|
|
32426
|
+
if (ptr + step < domain.length && boundsOverlap(labelBoundsList[ptr], labelBoundsList[ptr + step], labelGap)) {
|
|
32427
|
+
success = false;
|
|
32428
|
+
}
|
|
32429
|
+
ptr += step;
|
|
32430
|
+
} while (success && ptr < domain.length);
|
|
32431
|
+
return success;
|
|
32432
|
+
};
|
|
32433
|
+
const minValidStep = binaryFuzzySearchInNumberRange(defaultStep, domain.length, step => validateStep(step) ? 1 : -1);
|
|
32434
|
+
let step = minValidStep;
|
|
32435
|
+
do {
|
|
32436
|
+
if (step > minValidStep && !areAllBoundsSame) {
|
|
32437
|
+
if (!validateStep(step)) {
|
|
32438
|
+
step++;
|
|
32439
|
+
continue;
|
|
32440
|
+
}
|
|
32357
32441
|
}
|
|
32358
|
-
{
|
|
32359
|
-
|
|
32360
|
-
|
|
32361
|
-
|
|
32362
|
-
|
|
32363
|
-
|
|
32364
|
-
|
|
32365
|
-
|
|
32366
|
-
|
|
32367
|
-
|
|
32442
|
+
if (labelLastVisible) {
|
|
32443
|
+
const lastIndex = domain.length - 1;
|
|
32444
|
+
let delCount = 0;
|
|
32445
|
+
let ptr;
|
|
32446
|
+
if (domain.length % step > 0) {
|
|
32447
|
+
ptr = domain.length - (domain.length % step) + step;
|
|
32448
|
+
}
|
|
32449
|
+
else {
|
|
32450
|
+
ptr = domain.length;
|
|
32451
|
+
}
|
|
32452
|
+
do {
|
|
32453
|
+
ptr -= step;
|
|
32454
|
+
if (ptr === lastIndex || boundsOverlap(labelBoundsList[ptr], labelBoundsList[lastIndex], labelGap)) {
|
|
32455
|
+
delCount++;
|
|
32456
|
+
}
|
|
32457
|
+
else {
|
|
32458
|
+
break;
|
|
32459
|
+
}
|
|
32460
|
+
} while (ptr > 0);
|
|
32461
|
+
if (ptr === lastIndex) {
|
|
32462
|
+
resultStep = step;
|
|
32463
|
+
resultDelCount = delCount;
|
|
32464
|
+
break;
|
|
32465
|
+
}
|
|
32466
|
+
else {
|
|
32467
|
+
const tickCount = Math.floor(domain.length / step) - delCount + 1;
|
|
32468
|
+
if (tickCount < resultTickCount) {
|
|
32469
|
+
break;
|
|
32470
|
+
}
|
|
32471
|
+
else {
|
|
32472
|
+
resultTickCount = tickCount;
|
|
32473
|
+
const distance1 = boundsDistance(labelBoundsList[ptr], labelBoundsList[lastIndex]);
|
|
32474
|
+
const distance2 = ptr - step >= 0 ? boundsDistance(labelBoundsList[ptr - step], labelBoundsList[ptr]) : distance1;
|
|
32475
|
+
const diff = Math.abs(distance1 - distance2);
|
|
32476
|
+
if (diff < minDiff) {
|
|
32477
|
+
minDiff = diff;
|
|
32478
|
+
resultStep = step;
|
|
32479
|
+
resultDelCount = delCount;
|
|
32480
|
+
}
|
|
32481
|
+
if (distance1 <= distance2) {
|
|
32482
|
+
break;
|
|
32483
|
+
}
|
|
32484
|
+
}
|
|
32485
|
+
}
|
|
32368
32486
|
}
|
|
32369
|
-
|
|
32370
|
-
|
|
32371
|
-
|
|
32372
|
-
|
|
32373
|
-
|
|
32374
|
-
step
|
|
32375
|
-
|
|
32376
|
-
|
|
32487
|
+
else {
|
|
32488
|
+
resultStep = step;
|
|
32489
|
+
break;
|
|
32490
|
+
}
|
|
32491
|
+
step++;
|
|
32492
|
+
} while (step <= domain.length);
|
|
32493
|
+
return {
|
|
32494
|
+
step: resultStep,
|
|
32495
|
+
delCount: resultDelCount
|
|
32496
|
+
};
|
|
32377
32497
|
};
|
|
32378
32498
|
|
|
32379
32499
|
const polarAngleAxisDiscreteTicks = (scale, op) => {
|
|
32380
|
-
|
|
32381
|
-
|
|
32382
|
-
|
|
32383
|
-
|
|
32384
|
-
|
|
32385
|
-
|
|
32386
|
-
|
|
32387
|
-
|
|
32388
|
-
}
|
|
32389
|
-
|
|
32390
|
-
|
|
32391
|
-
|
|
32392
|
-
|
|
32393
|
-
|
|
32394
|
-
|
|
32395
|
-
|
|
32396
|
-
|
|
32397
|
-
|
|
32398
|
-
|
|
32399
|
-
|
|
32400
|
-
|
|
32401
|
-
|
|
32402
|
-
|
|
32403
|
-
|
|
32404
|
-
|
|
32405
|
-
|
|
32406
|
-
|
|
32407
|
-
|
|
32408
|
-
|
|
32409
|
-
|
|
32410
|
-
|
|
32411
|
-
|
|
32412
|
-
|
|
32413
|
-
|
|
32500
|
+
const { tickCount, forceTickCount, tickStep, getRadius, labelOffset, labelGap = 0, labelStyle } = op;
|
|
32501
|
+
const radius = getRadius?.();
|
|
32502
|
+
if (!radius) {
|
|
32503
|
+
return convertDomainToTickData(scale.domain());
|
|
32504
|
+
}
|
|
32505
|
+
let scaleTicks;
|
|
32506
|
+
if (isValid$3(tickStep)) {
|
|
32507
|
+
scaleTicks = scale.stepTicks(tickStep);
|
|
32508
|
+
}
|
|
32509
|
+
else if (isValid$3(forceTickCount)) {
|
|
32510
|
+
scaleTicks = scale.forceTicks(forceTickCount);
|
|
32511
|
+
}
|
|
32512
|
+
else if (isValid$3(tickCount)) {
|
|
32513
|
+
const range = scale.range();
|
|
32514
|
+
const rangeSize = Math.abs(range[range.length - 1] - range[0]);
|
|
32515
|
+
const count = isFunction$1(tickCount) ? tickCount({ axisLength: rangeSize, labelStyle }) : tickCount;
|
|
32516
|
+
scaleTicks = scale.ticks(count);
|
|
32517
|
+
}
|
|
32518
|
+
else if (op.sampling) {
|
|
32519
|
+
const domain = scale.domain();
|
|
32520
|
+
const range = scale.range();
|
|
32521
|
+
const labelBoundsList = getPolarAngleLabelBounds(scale, domain, op);
|
|
32522
|
+
const rangeStart = minInArray(range);
|
|
32523
|
+
const rangeEnd = maxInArray(range);
|
|
32524
|
+
const axisLength = Math.abs(rangeEnd - rangeStart) * (radius + labelOffset);
|
|
32525
|
+
const incrementUnit = axisLength / domain.length;
|
|
32526
|
+
const { step, delCount } = getStep(domain, labelBoundsList, labelGap, Math.floor(labelBoundsList.reduce((min, curBounds) => {
|
|
32527
|
+
return Math.min(min, curBounds.width(), curBounds.height());
|
|
32528
|
+
}, Number.MAX_VALUE) / incrementUnit));
|
|
32529
|
+
scaleTicks = scale.stepTicks(step);
|
|
32530
|
+
scaleTicks = scaleTicks.slice(0, scaleTicks.length - delCount);
|
|
32531
|
+
}
|
|
32532
|
+
else {
|
|
32533
|
+
scaleTicks = scale.domain();
|
|
32534
|
+
}
|
|
32535
|
+
return convertDomainToTickData(scaleTicks);
|
|
32414
32536
|
};
|
|
32415
32537
|
const getStep = (domain, labelBoundsList, labelGap, defaultStep) => {
|
|
32416
|
-
|
|
32417
|
-
do {
|
|
32418
|
-
let success = !0;
|
|
32419
|
-
step++;
|
|
32420
|
-
let ptr = 0;
|
|
32538
|
+
let step = defaultStep;
|
|
32421
32539
|
do {
|
|
32422
|
-
|
|
32423
|
-
|
|
32424
|
-
|
|
32425
|
-
|
|
32426
|
-
|
|
32427
|
-
|
|
32428
|
-
|
|
32429
|
-
|
|
32430
|
-
|
|
32431
|
-
|
|
32432
|
-
|
|
32433
|
-
|
|
32434
|
-
|
|
32540
|
+
let success = true;
|
|
32541
|
+
step++;
|
|
32542
|
+
let ptr = 0;
|
|
32543
|
+
do {
|
|
32544
|
+
if (ptr + step < domain.length && labelOverlap(labelBoundsList[ptr], labelBoundsList[ptr + step], labelGap)) {
|
|
32545
|
+
success = false;
|
|
32546
|
+
}
|
|
32547
|
+
ptr += step;
|
|
32548
|
+
} while (success && ptr < domain.length);
|
|
32549
|
+
if (success) {
|
|
32550
|
+
break;
|
|
32551
|
+
}
|
|
32552
|
+
} while (step <= domain.length);
|
|
32553
|
+
let delCount = 0;
|
|
32554
|
+
if (domain.length > 2) {
|
|
32555
|
+
let ptr = domain.length - (domain.length % step);
|
|
32556
|
+
if (ptr >= domain.length) {
|
|
32557
|
+
ptr -= step;
|
|
32558
|
+
}
|
|
32559
|
+
while (ptr > 0 && labelOverlap(labelBoundsList[0], labelBoundsList[ptr])) {
|
|
32560
|
+
delCount++;
|
|
32561
|
+
ptr -= step;
|
|
32562
|
+
}
|
|
32563
|
+
}
|
|
32564
|
+
return {
|
|
32565
|
+
step,
|
|
32566
|
+
delCount
|
|
32567
|
+
};
|
|
32435
32568
|
};
|
|
32436
32569
|
|
|
32437
32570
|
const ticks = (scale, op) => {
|
|
32438
|
-
|
|
32439
|
-
|
|
32440
|
-
|
|
32441
|
-
if (
|
|
32442
|
-
|
|
32443
|
-
|
|
32571
|
+
if (isContinuous(scale.type)) {
|
|
32572
|
+
return continuousTicks(scale, op);
|
|
32573
|
+
}
|
|
32574
|
+
else if (isDiscrete(scale.type)) {
|
|
32575
|
+
if (op.coordinateType === 'cartesian') {
|
|
32576
|
+
return linearDiscreteTicks(scale, op);
|
|
32577
|
+
}
|
|
32578
|
+
else if (op.coordinateType === 'polar') {
|
|
32579
|
+
if (op.axisOrientType === 'angle') {
|
|
32580
|
+
return polarAngleAxisDiscreteTicks(scale, op);
|
|
32581
|
+
}
|
|
32582
|
+
}
|
|
32583
|
+
}
|
|
32584
|
+
return convertDomainToTickData(scale.domain());
|
|
32444
32585
|
};
|
|
32445
32586
|
|
|
32446
32587
|
function isDataView(obj) {
|
|
32447
|
-
|
|
32588
|
+
return obj instanceof DataView;
|
|
32448
32589
|
}
|
|
32449
32590
|
function isHTMLElement(obj) {
|
|
32450
|
-
|
|
32451
|
-
|
|
32452
|
-
|
|
32453
|
-
|
|
32454
|
-
|
|
32455
|
-
|
|
32456
|
-
|
|
32591
|
+
try {
|
|
32592
|
+
return obj instanceof Element;
|
|
32593
|
+
}
|
|
32594
|
+
catch {
|
|
32595
|
+
const htmlElementKeys = [
|
|
32596
|
+
'children',
|
|
32597
|
+
'innerHTML',
|
|
32598
|
+
'classList',
|
|
32599
|
+
'setAttribute',
|
|
32600
|
+
'tagName',
|
|
32601
|
+
'getBoundingClientRect'
|
|
32602
|
+
];
|
|
32603
|
+
const keys = Object.keys(obj);
|
|
32604
|
+
return htmlElementKeys.every(key => keys.includes(key));
|
|
32605
|
+
}
|
|
32457
32606
|
}
|
|
32458
32607
|
|
|
32459
|
-
function cloneDeepSpec(spec) {
|
|
32460
|
-
|
|
32461
|
-
|
|
32462
|
-
|
|
32463
|
-
|
|
32464
|
-
|
|
32465
|
-
|
|
32466
|
-
|
|
32467
|
-
|
|
32468
|
-
|
|
32469
|
-
|
|
32470
|
-
|
|
32471
|
-
|
|
32472
|
-
|
|
32473
|
-
|
|
32474
|
-
|
|
32475
|
-
|
|
32608
|
+
function cloneDeepSpec(spec, excludeKeys = ['data']) {
|
|
32609
|
+
const value = spec;
|
|
32610
|
+
let result;
|
|
32611
|
+
if (!isValid$3(value) || typeof value !== 'object') {
|
|
32612
|
+
return value;
|
|
32613
|
+
}
|
|
32614
|
+
if (isDataView(value) || isHTMLElement(value)) {
|
|
32615
|
+
return value;
|
|
32616
|
+
}
|
|
32617
|
+
const isArr = isArray$3(value);
|
|
32618
|
+
const length = value.length;
|
|
32619
|
+
if (isArr) {
|
|
32620
|
+
result = new Array(length);
|
|
32621
|
+
}
|
|
32622
|
+
else if (typeof value === 'object') {
|
|
32623
|
+
result = {};
|
|
32624
|
+
}
|
|
32625
|
+
else if (isBoolean$2(value) || isNumber$4(value) || isString$2(value)) {
|
|
32626
|
+
result = value;
|
|
32627
|
+
}
|
|
32628
|
+
else if (isDate$1(value)) {
|
|
32629
|
+
result = new Date(+value);
|
|
32630
|
+
}
|
|
32631
|
+
else {
|
|
32632
|
+
result = undefined;
|
|
32633
|
+
}
|
|
32634
|
+
const props = isArr ? undefined : Object.keys(Object(value));
|
|
32635
|
+
let index = -1;
|
|
32636
|
+
if (result) {
|
|
32637
|
+
while (++index < (props || value).length) {
|
|
32638
|
+
const key = props ? props[index] : index;
|
|
32639
|
+
const subValue = value[key];
|
|
32640
|
+
if (excludeKeys?.includes(key.toString())) {
|
|
32641
|
+
result[key] = subValue;
|
|
32642
|
+
}
|
|
32643
|
+
else {
|
|
32644
|
+
result[key] = cloneDeepSpec(subValue, excludeKeys);
|
|
32645
|
+
}
|
|
32646
|
+
}
|
|
32647
|
+
}
|
|
32648
|
+
return result;
|
|
32476
32649
|
}
|
|
32477
32650
|
|
|
32478
32651
|
const e10 = Math.sqrt(50);
|
|
@@ -58071,7 +58244,7 @@
|
|
|
58071
58244
|
return TABLE_EVENT_TYPE;
|
|
58072
58245
|
}
|
|
58073
58246
|
options;
|
|
58074
|
-
version = "0.25.
|
|
58247
|
+
version = "0.25.3";
|
|
58075
58248
|
pagination;
|
|
58076
58249
|
id = `VTable${Date.now()}`;
|
|
58077
58250
|
headerStyleCache;
|
|
@@ -70734,7 +70907,7 @@
|
|
|
70734
70907
|
}
|
|
70735
70908
|
|
|
70736
70909
|
registerForVrender();
|
|
70737
|
-
const version = "0.25.
|
|
70910
|
+
const version = "0.25.3";
|
|
70738
70911
|
function getIcons() {
|
|
70739
70912
|
return get$2();
|
|
70740
70913
|
}
|