@opendata-ai/openchart-vanilla 8.2.0 → 8.2.2
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/dist/{chunk-XOZ6AM7C.js → chunk-2CEKMIJH.js} +33 -10
- package/dist/chunk-2CEKMIJH.js.map +1 -0
- package/dist/{chunk-RC5PGDQX.js → chunk-BKN4R3J6.js} +202 -856
- package/dist/chunk-BKN4R3J6.js.map +1 -0
- package/dist/{chunk-BGJT3GTB.js → chunk-ZKASH7AX.js} +2 -2
- package/dist/index.js +262 -885
- package/dist/index.js.map +1 -1
- package/dist/simulation-worker.js +8 -6
- package/dist/static.js +2 -2
- package/dist/story/index.js +2 -2
- package/dist/styles.css +1 -1
- package/dist/styles.css.map +1 -1
- package/package.json +3 -3
- package/dist/chunk-RC5PGDQX.js.map +0 -1
- package/dist/chunk-XOZ6AM7C.js.map +0 -1
- /package/dist/{chunk-BGJT3GTB.js.map → chunk-ZKASH7AX.js.map} +0 -0
|
@@ -15,7 +15,7 @@ import {
|
|
|
15
15
|
renderSingleMark,
|
|
16
16
|
resolveMarkFill,
|
|
17
17
|
stampAnimationVars
|
|
18
|
-
} from "./chunk-
|
|
18
|
+
} from "./chunk-2CEKMIJH.js";
|
|
19
19
|
import {
|
|
20
20
|
SVG_NS,
|
|
21
21
|
createSVGElement,
|
|
@@ -26,6 +26,7 @@ import {
|
|
|
26
26
|
var DEBOUNCE_MS = 16;
|
|
27
27
|
function observeResize(container, callback) {
|
|
28
28
|
let timeoutId = null;
|
|
29
|
+
let lastDelivered = null;
|
|
29
30
|
const observer = new ResizeObserver((entries) => {
|
|
30
31
|
if (timeoutId !== null) {
|
|
31
32
|
clearTimeout(timeoutId);
|
|
@@ -33,6 +34,10 @@ function observeResize(container, callback) {
|
|
|
33
34
|
timeoutId = setTimeout(() => {
|
|
34
35
|
for (const entry of entries) {
|
|
35
36
|
const { width, height } = entry.contentRect;
|
|
37
|
+
if (lastDelivered && lastDelivered.width === width && lastDelivered.height === height) {
|
|
38
|
+
continue;
|
|
39
|
+
}
|
|
40
|
+
lastDelivered = { width, height };
|
|
36
41
|
callback(width, height);
|
|
37
42
|
}
|
|
38
43
|
timeoutId = null;
|
|
@@ -959,490 +964,12 @@ import { buildAreaPath as buildAreaPath2, buildLinePath as buildLinePath2, EXIT_
|
|
|
959
964
|
// src/transition/apply.ts
|
|
960
965
|
import { buildArcPath } from "@opendata-ai/openchart-engine";
|
|
961
966
|
|
|
962
|
-
// ../../node_modules/.bun/d3-color@3.1.0/node_modules/d3-color/src/define.js
|
|
963
|
-
function define_default(constructor, factory, prototype) {
|
|
964
|
-
constructor.prototype = factory.prototype = prototype;
|
|
965
|
-
prototype.constructor = constructor;
|
|
966
|
-
}
|
|
967
|
-
function extend(parent, definition) {
|
|
968
|
-
var prototype = Object.create(parent.prototype);
|
|
969
|
-
for (var key in definition) prototype[key] = definition[key];
|
|
970
|
-
return prototype;
|
|
971
|
-
}
|
|
972
|
-
|
|
973
|
-
// ../../node_modules/.bun/d3-color@3.1.0/node_modules/d3-color/src/color.js
|
|
974
|
-
function Color() {
|
|
975
|
-
}
|
|
976
|
-
var darker = 0.7;
|
|
977
|
-
var brighter = 1 / darker;
|
|
978
|
-
var reI = "\\s*([+-]?\\d+)\\s*";
|
|
979
|
-
var reN = "\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)\\s*";
|
|
980
|
-
var reP = "\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)%\\s*";
|
|
981
|
-
var reHex = /^#([0-9a-f]{3,8})$/;
|
|
982
|
-
var reRgbInteger = new RegExp(`^rgb\\(${reI},${reI},${reI}\\)$`);
|
|
983
|
-
var reRgbPercent = new RegExp(`^rgb\\(${reP},${reP},${reP}\\)$`);
|
|
984
|
-
var reRgbaInteger = new RegExp(`^rgba\\(${reI},${reI},${reI},${reN}\\)$`);
|
|
985
|
-
var reRgbaPercent = new RegExp(`^rgba\\(${reP},${reP},${reP},${reN}\\)$`);
|
|
986
|
-
var reHslPercent = new RegExp(`^hsl\\(${reN},${reP},${reP}\\)$`);
|
|
987
|
-
var reHslaPercent = new RegExp(`^hsla\\(${reN},${reP},${reP},${reN}\\)$`);
|
|
988
|
-
var named = {
|
|
989
|
-
aliceblue: 15792383,
|
|
990
|
-
antiquewhite: 16444375,
|
|
991
|
-
aqua: 65535,
|
|
992
|
-
aquamarine: 8388564,
|
|
993
|
-
azure: 15794175,
|
|
994
|
-
beige: 16119260,
|
|
995
|
-
bisque: 16770244,
|
|
996
|
-
black: 0,
|
|
997
|
-
blanchedalmond: 16772045,
|
|
998
|
-
blue: 255,
|
|
999
|
-
blueviolet: 9055202,
|
|
1000
|
-
brown: 10824234,
|
|
1001
|
-
burlywood: 14596231,
|
|
1002
|
-
cadetblue: 6266528,
|
|
1003
|
-
chartreuse: 8388352,
|
|
1004
|
-
chocolate: 13789470,
|
|
1005
|
-
coral: 16744272,
|
|
1006
|
-
cornflowerblue: 6591981,
|
|
1007
|
-
cornsilk: 16775388,
|
|
1008
|
-
crimson: 14423100,
|
|
1009
|
-
cyan: 65535,
|
|
1010
|
-
darkblue: 139,
|
|
1011
|
-
darkcyan: 35723,
|
|
1012
|
-
darkgoldenrod: 12092939,
|
|
1013
|
-
darkgray: 11119017,
|
|
1014
|
-
darkgreen: 25600,
|
|
1015
|
-
darkgrey: 11119017,
|
|
1016
|
-
darkkhaki: 12433259,
|
|
1017
|
-
darkmagenta: 9109643,
|
|
1018
|
-
darkolivegreen: 5597999,
|
|
1019
|
-
darkorange: 16747520,
|
|
1020
|
-
darkorchid: 10040012,
|
|
1021
|
-
darkred: 9109504,
|
|
1022
|
-
darksalmon: 15308410,
|
|
1023
|
-
darkseagreen: 9419919,
|
|
1024
|
-
darkslateblue: 4734347,
|
|
1025
|
-
darkslategray: 3100495,
|
|
1026
|
-
darkslategrey: 3100495,
|
|
1027
|
-
darkturquoise: 52945,
|
|
1028
|
-
darkviolet: 9699539,
|
|
1029
|
-
deeppink: 16716947,
|
|
1030
|
-
deepskyblue: 49151,
|
|
1031
|
-
dimgray: 6908265,
|
|
1032
|
-
dimgrey: 6908265,
|
|
1033
|
-
dodgerblue: 2003199,
|
|
1034
|
-
firebrick: 11674146,
|
|
1035
|
-
floralwhite: 16775920,
|
|
1036
|
-
forestgreen: 2263842,
|
|
1037
|
-
fuchsia: 16711935,
|
|
1038
|
-
gainsboro: 14474460,
|
|
1039
|
-
ghostwhite: 16316671,
|
|
1040
|
-
gold: 16766720,
|
|
1041
|
-
goldenrod: 14329120,
|
|
1042
|
-
gray: 8421504,
|
|
1043
|
-
green: 32768,
|
|
1044
|
-
greenyellow: 11403055,
|
|
1045
|
-
grey: 8421504,
|
|
1046
|
-
honeydew: 15794160,
|
|
1047
|
-
hotpink: 16738740,
|
|
1048
|
-
indianred: 13458524,
|
|
1049
|
-
indigo: 4915330,
|
|
1050
|
-
ivory: 16777200,
|
|
1051
|
-
khaki: 15787660,
|
|
1052
|
-
lavender: 15132410,
|
|
1053
|
-
lavenderblush: 16773365,
|
|
1054
|
-
lawngreen: 8190976,
|
|
1055
|
-
lemonchiffon: 16775885,
|
|
1056
|
-
lightblue: 11393254,
|
|
1057
|
-
lightcoral: 15761536,
|
|
1058
|
-
lightcyan: 14745599,
|
|
1059
|
-
lightgoldenrodyellow: 16448210,
|
|
1060
|
-
lightgray: 13882323,
|
|
1061
|
-
lightgreen: 9498256,
|
|
1062
|
-
lightgrey: 13882323,
|
|
1063
|
-
lightpink: 16758465,
|
|
1064
|
-
lightsalmon: 16752762,
|
|
1065
|
-
lightseagreen: 2142890,
|
|
1066
|
-
lightskyblue: 8900346,
|
|
1067
|
-
lightslategray: 7833753,
|
|
1068
|
-
lightslategrey: 7833753,
|
|
1069
|
-
lightsteelblue: 11584734,
|
|
1070
|
-
lightyellow: 16777184,
|
|
1071
|
-
lime: 65280,
|
|
1072
|
-
limegreen: 3329330,
|
|
1073
|
-
linen: 16445670,
|
|
1074
|
-
magenta: 16711935,
|
|
1075
|
-
maroon: 8388608,
|
|
1076
|
-
mediumaquamarine: 6737322,
|
|
1077
|
-
mediumblue: 205,
|
|
1078
|
-
mediumorchid: 12211667,
|
|
1079
|
-
mediumpurple: 9662683,
|
|
1080
|
-
mediumseagreen: 3978097,
|
|
1081
|
-
mediumslateblue: 8087790,
|
|
1082
|
-
mediumspringgreen: 64154,
|
|
1083
|
-
mediumturquoise: 4772300,
|
|
1084
|
-
mediumvioletred: 13047173,
|
|
1085
|
-
midnightblue: 1644912,
|
|
1086
|
-
mintcream: 16121850,
|
|
1087
|
-
mistyrose: 16770273,
|
|
1088
|
-
moccasin: 16770229,
|
|
1089
|
-
navajowhite: 16768685,
|
|
1090
|
-
navy: 128,
|
|
1091
|
-
oldlace: 16643558,
|
|
1092
|
-
olive: 8421376,
|
|
1093
|
-
olivedrab: 7048739,
|
|
1094
|
-
orange: 16753920,
|
|
1095
|
-
orangered: 16729344,
|
|
1096
|
-
orchid: 14315734,
|
|
1097
|
-
palegoldenrod: 15657130,
|
|
1098
|
-
palegreen: 10025880,
|
|
1099
|
-
paleturquoise: 11529966,
|
|
1100
|
-
palevioletred: 14381203,
|
|
1101
|
-
papayawhip: 16773077,
|
|
1102
|
-
peachpuff: 16767673,
|
|
1103
|
-
peru: 13468991,
|
|
1104
|
-
pink: 16761035,
|
|
1105
|
-
plum: 14524637,
|
|
1106
|
-
powderblue: 11591910,
|
|
1107
|
-
purple: 8388736,
|
|
1108
|
-
rebeccapurple: 6697881,
|
|
1109
|
-
red: 16711680,
|
|
1110
|
-
rosybrown: 12357519,
|
|
1111
|
-
royalblue: 4286945,
|
|
1112
|
-
saddlebrown: 9127187,
|
|
1113
|
-
salmon: 16416882,
|
|
1114
|
-
sandybrown: 16032864,
|
|
1115
|
-
seagreen: 3050327,
|
|
1116
|
-
seashell: 16774638,
|
|
1117
|
-
sienna: 10506797,
|
|
1118
|
-
silver: 12632256,
|
|
1119
|
-
skyblue: 8900331,
|
|
1120
|
-
slateblue: 6970061,
|
|
1121
|
-
slategray: 7372944,
|
|
1122
|
-
slategrey: 7372944,
|
|
1123
|
-
snow: 16775930,
|
|
1124
|
-
springgreen: 65407,
|
|
1125
|
-
steelblue: 4620980,
|
|
1126
|
-
tan: 13808780,
|
|
1127
|
-
teal: 32896,
|
|
1128
|
-
thistle: 14204888,
|
|
1129
|
-
tomato: 16737095,
|
|
1130
|
-
turquoise: 4251856,
|
|
1131
|
-
violet: 15631086,
|
|
1132
|
-
wheat: 16113331,
|
|
1133
|
-
white: 16777215,
|
|
1134
|
-
whitesmoke: 16119285,
|
|
1135
|
-
yellow: 16776960,
|
|
1136
|
-
yellowgreen: 10145074
|
|
1137
|
-
};
|
|
1138
|
-
define_default(Color, color, {
|
|
1139
|
-
copy(channels) {
|
|
1140
|
-
return Object.assign(new this.constructor(), this, channels);
|
|
1141
|
-
},
|
|
1142
|
-
displayable() {
|
|
1143
|
-
return this.rgb().displayable();
|
|
1144
|
-
},
|
|
1145
|
-
hex: color_formatHex,
|
|
1146
|
-
// Deprecated! Use color.formatHex.
|
|
1147
|
-
formatHex: color_formatHex,
|
|
1148
|
-
formatHex8: color_formatHex8,
|
|
1149
|
-
formatHsl: color_formatHsl,
|
|
1150
|
-
formatRgb: color_formatRgb,
|
|
1151
|
-
toString: color_formatRgb
|
|
1152
|
-
});
|
|
1153
|
-
function color_formatHex() {
|
|
1154
|
-
return this.rgb().formatHex();
|
|
1155
|
-
}
|
|
1156
|
-
function color_formatHex8() {
|
|
1157
|
-
return this.rgb().formatHex8();
|
|
1158
|
-
}
|
|
1159
|
-
function color_formatHsl() {
|
|
1160
|
-
return hslConvert(this).formatHsl();
|
|
1161
|
-
}
|
|
1162
|
-
function color_formatRgb() {
|
|
1163
|
-
return this.rgb().formatRgb();
|
|
1164
|
-
}
|
|
1165
|
-
function color(format) {
|
|
1166
|
-
var m, l;
|
|
1167
|
-
format = (format + "").trim().toLowerCase();
|
|
1168
|
-
return (m = reHex.exec(format)) ? (l = m[1].length, m = parseInt(m[1], 16), l === 6 ? rgbn(m) : l === 3 ? new Rgb(m >> 8 & 15 | m >> 4 & 240, m >> 4 & 15 | m & 240, (m & 15) << 4 | m & 15, 1) : l === 8 ? rgba(m >> 24 & 255, m >> 16 & 255, m >> 8 & 255, (m & 255) / 255) : l === 4 ? rgba(m >> 12 & 15 | m >> 8 & 240, m >> 8 & 15 | m >> 4 & 240, m >> 4 & 15 | m & 240, ((m & 15) << 4 | m & 15) / 255) : null) : (m = reRgbInteger.exec(format)) ? new Rgb(m[1], m[2], m[3], 1) : (m = reRgbPercent.exec(format)) ? new Rgb(m[1] * 255 / 100, m[2] * 255 / 100, m[3] * 255 / 100, 1) : (m = reRgbaInteger.exec(format)) ? rgba(m[1], m[2], m[3], m[4]) : (m = reRgbaPercent.exec(format)) ? rgba(m[1] * 255 / 100, m[2] * 255 / 100, m[3] * 255 / 100, m[4]) : (m = reHslPercent.exec(format)) ? hsla(m[1], m[2] / 100, m[3] / 100, 1) : (m = reHslaPercent.exec(format)) ? hsla(m[1], m[2] / 100, m[3] / 100, m[4]) : named.hasOwnProperty(format) ? rgbn(named[format]) : format === "transparent" ? new Rgb(NaN, NaN, NaN, 0) : null;
|
|
1169
|
-
}
|
|
1170
|
-
function rgbn(n) {
|
|
1171
|
-
return new Rgb(n >> 16 & 255, n >> 8 & 255, n & 255, 1);
|
|
1172
|
-
}
|
|
1173
|
-
function rgba(r, g, b, a) {
|
|
1174
|
-
if (a <= 0) r = g = b = NaN;
|
|
1175
|
-
return new Rgb(r, g, b, a);
|
|
1176
|
-
}
|
|
1177
|
-
function rgbConvert(o) {
|
|
1178
|
-
if (!(o instanceof Color)) o = color(o);
|
|
1179
|
-
if (!o) return new Rgb();
|
|
1180
|
-
o = o.rgb();
|
|
1181
|
-
return new Rgb(o.r, o.g, o.b, o.opacity);
|
|
1182
|
-
}
|
|
1183
|
-
function rgb(r, g, b, opacity) {
|
|
1184
|
-
return arguments.length === 1 ? rgbConvert(r) : new Rgb(r, g, b, opacity == null ? 1 : opacity);
|
|
1185
|
-
}
|
|
1186
|
-
function Rgb(r, g, b, opacity) {
|
|
1187
|
-
this.r = +r;
|
|
1188
|
-
this.g = +g;
|
|
1189
|
-
this.b = +b;
|
|
1190
|
-
this.opacity = +opacity;
|
|
1191
|
-
}
|
|
1192
|
-
define_default(Rgb, rgb, extend(Color, {
|
|
1193
|
-
brighter(k) {
|
|
1194
|
-
k = k == null ? brighter : Math.pow(brighter, k);
|
|
1195
|
-
return new Rgb(this.r * k, this.g * k, this.b * k, this.opacity);
|
|
1196
|
-
},
|
|
1197
|
-
darker(k) {
|
|
1198
|
-
k = k == null ? darker : Math.pow(darker, k);
|
|
1199
|
-
return new Rgb(this.r * k, this.g * k, this.b * k, this.opacity);
|
|
1200
|
-
},
|
|
1201
|
-
rgb() {
|
|
1202
|
-
return this;
|
|
1203
|
-
},
|
|
1204
|
-
clamp() {
|
|
1205
|
-
return new Rgb(clampi(this.r), clampi(this.g), clampi(this.b), clampa(this.opacity));
|
|
1206
|
-
},
|
|
1207
|
-
displayable() {
|
|
1208
|
-
return -0.5 <= this.r && this.r < 255.5 && (-0.5 <= this.g && this.g < 255.5) && (-0.5 <= this.b && this.b < 255.5) && (0 <= this.opacity && this.opacity <= 1);
|
|
1209
|
-
},
|
|
1210
|
-
hex: rgb_formatHex,
|
|
1211
|
-
// Deprecated! Use color.formatHex.
|
|
1212
|
-
formatHex: rgb_formatHex,
|
|
1213
|
-
formatHex8: rgb_formatHex8,
|
|
1214
|
-
formatRgb: rgb_formatRgb,
|
|
1215
|
-
toString: rgb_formatRgb
|
|
1216
|
-
}));
|
|
1217
|
-
function rgb_formatHex() {
|
|
1218
|
-
return `#${hex(this.r)}${hex(this.g)}${hex(this.b)}`;
|
|
1219
|
-
}
|
|
1220
|
-
function rgb_formatHex8() {
|
|
1221
|
-
return `#${hex(this.r)}${hex(this.g)}${hex(this.b)}${hex((isNaN(this.opacity) ? 1 : this.opacity) * 255)}`;
|
|
1222
|
-
}
|
|
1223
|
-
function rgb_formatRgb() {
|
|
1224
|
-
const a = clampa(this.opacity);
|
|
1225
|
-
return `${a === 1 ? "rgb(" : "rgba("}${clampi(this.r)}, ${clampi(this.g)}, ${clampi(this.b)}${a === 1 ? ")" : `, ${a})`}`;
|
|
1226
|
-
}
|
|
1227
|
-
function clampa(opacity) {
|
|
1228
|
-
return isNaN(opacity) ? 1 : Math.max(0, Math.min(1, opacity));
|
|
1229
|
-
}
|
|
1230
|
-
function clampi(value) {
|
|
1231
|
-
return Math.max(0, Math.min(255, Math.round(value) || 0));
|
|
1232
|
-
}
|
|
1233
|
-
function hex(value) {
|
|
1234
|
-
value = clampi(value);
|
|
1235
|
-
return (value < 16 ? "0" : "") + value.toString(16);
|
|
1236
|
-
}
|
|
1237
|
-
function hsla(h, s, l, a) {
|
|
1238
|
-
if (a <= 0) h = s = l = NaN;
|
|
1239
|
-
else if (l <= 0 || l >= 1) h = s = NaN;
|
|
1240
|
-
else if (s <= 0) h = NaN;
|
|
1241
|
-
return new Hsl(h, s, l, a);
|
|
1242
|
-
}
|
|
1243
|
-
function hslConvert(o) {
|
|
1244
|
-
if (o instanceof Hsl) return new Hsl(o.h, o.s, o.l, o.opacity);
|
|
1245
|
-
if (!(o instanceof Color)) o = color(o);
|
|
1246
|
-
if (!o) return new Hsl();
|
|
1247
|
-
if (o instanceof Hsl) return o;
|
|
1248
|
-
o = o.rgb();
|
|
1249
|
-
var r = o.r / 255, g = o.g / 255, b = o.b / 255, min = Math.min(r, g, b), max = Math.max(r, g, b), h = NaN, s = max - min, l = (max + min) / 2;
|
|
1250
|
-
if (s) {
|
|
1251
|
-
if (r === max) h = (g - b) / s + (g < b) * 6;
|
|
1252
|
-
else if (g === max) h = (b - r) / s + 2;
|
|
1253
|
-
else h = (r - g) / s + 4;
|
|
1254
|
-
s /= l < 0.5 ? max + min : 2 - max - min;
|
|
1255
|
-
h *= 60;
|
|
1256
|
-
} else {
|
|
1257
|
-
s = l > 0 && l < 1 ? 0 : h;
|
|
1258
|
-
}
|
|
1259
|
-
return new Hsl(h, s, l, o.opacity);
|
|
1260
|
-
}
|
|
1261
|
-
function hsl(h, s, l, opacity) {
|
|
1262
|
-
return arguments.length === 1 ? hslConvert(h) : new Hsl(h, s, l, opacity == null ? 1 : opacity);
|
|
1263
|
-
}
|
|
1264
|
-
function Hsl(h, s, l, opacity) {
|
|
1265
|
-
this.h = +h;
|
|
1266
|
-
this.s = +s;
|
|
1267
|
-
this.l = +l;
|
|
1268
|
-
this.opacity = +opacity;
|
|
1269
|
-
}
|
|
1270
|
-
define_default(Hsl, hsl, extend(Color, {
|
|
1271
|
-
brighter(k) {
|
|
1272
|
-
k = k == null ? brighter : Math.pow(brighter, k);
|
|
1273
|
-
return new Hsl(this.h, this.s, this.l * k, this.opacity);
|
|
1274
|
-
},
|
|
1275
|
-
darker(k) {
|
|
1276
|
-
k = k == null ? darker : Math.pow(darker, k);
|
|
1277
|
-
return new Hsl(this.h, this.s, this.l * k, this.opacity);
|
|
1278
|
-
},
|
|
1279
|
-
rgb() {
|
|
1280
|
-
var h = this.h % 360 + (this.h < 0) * 360, s = isNaN(h) || isNaN(this.s) ? 0 : this.s, l = this.l, m2 = l + (l < 0.5 ? l : 1 - l) * s, m1 = 2 * l - m2;
|
|
1281
|
-
return new Rgb(
|
|
1282
|
-
hsl2rgb(h >= 240 ? h - 240 : h + 120, m1, m2),
|
|
1283
|
-
hsl2rgb(h, m1, m2),
|
|
1284
|
-
hsl2rgb(h < 120 ? h + 240 : h - 120, m1, m2),
|
|
1285
|
-
this.opacity
|
|
1286
|
-
);
|
|
1287
|
-
},
|
|
1288
|
-
clamp() {
|
|
1289
|
-
return new Hsl(clamph(this.h), clampt(this.s), clampt(this.l), clampa(this.opacity));
|
|
1290
|
-
},
|
|
1291
|
-
displayable() {
|
|
1292
|
-
return (0 <= this.s && this.s <= 1 || isNaN(this.s)) && (0 <= this.l && this.l <= 1) && (0 <= this.opacity && this.opacity <= 1);
|
|
1293
|
-
},
|
|
1294
|
-
formatHsl() {
|
|
1295
|
-
const a = clampa(this.opacity);
|
|
1296
|
-
return `${a === 1 ? "hsl(" : "hsla("}${clamph(this.h)}, ${clampt(this.s) * 100}%, ${clampt(this.l) * 100}%${a === 1 ? ")" : `, ${a})`}`;
|
|
1297
|
-
}
|
|
1298
|
-
}));
|
|
1299
|
-
function clamph(value) {
|
|
1300
|
-
value = (value || 0) % 360;
|
|
1301
|
-
return value < 0 ? value + 360 : value;
|
|
1302
|
-
}
|
|
1303
|
-
function clampt(value) {
|
|
1304
|
-
return Math.max(0, Math.min(1, value || 0));
|
|
1305
|
-
}
|
|
1306
|
-
function hsl2rgb(h, m1, m2) {
|
|
1307
|
-
return (h < 60 ? m1 + (m2 - m1) * h / 60 : h < 180 ? m2 : h < 240 ? m1 + (m2 - m1) * (240 - h) / 60 : m1) * 255;
|
|
1308
|
-
}
|
|
1309
|
-
|
|
1310
|
-
// ../../node_modules/.bun/d3-interpolate@3.0.1/node_modules/d3-interpolate/src/basis.js
|
|
1311
|
-
function basis(t1, v0, v1, v2, v3) {
|
|
1312
|
-
var t2 = t1 * t1, t3 = t2 * t1;
|
|
1313
|
-
return ((1 - 3 * t1 + 3 * t2 - t3) * v0 + (4 - 6 * t2 + 3 * t3) * v1 + (1 + 3 * t1 + 3 * t2 - 3 * t3) * v2 + t3 * v3) / 6;
|
|
1314
|
-
}
|
|
1315
|
-
function basis_default(values) {
|
|
1316
|
-
var n = values.length - 1;
|
|
1317
|
-
return function(t) {
|
|
1318
|
-
var i = t <= 0 ? t = 0 : t >= 1 ? (t = 1, n - 1) : Math.floor(t * n), v1 = values[i], v2 = values[i + 1], v0 = i > 0 ? values[i - 1] : 2 * v1 - v2, v3 = i < n - 1 ? values[i + 2] : 2 * v2 - v1;
|
|
1319
|
-
return basis((t - i / n) * n, v0, v1, v2, v3);
|
|
1320
|
-
};
|
|
1321
|
-
}
|
|
1322
|
-
|
|
1323
|
-
// ../../node_modules/.bun/d3-interpolate@3.0.1/node_modules/d3-interpolate/src/basisClosed.js
|
|
1324
|
-
function basisClosed_default(values) {
|
|
1325
|
-
var n = values.length;
|
|
1326
|
-
return function(t) {
|
|
1327
|
-
var i = Math.floor(((t %= 1) < 0 ? ++t : t) * n), v0 = values[(i + n - 1) % n], v1 = values[i % n], v2 = values[(i + 1) % n], v3 = values[(i + 2) % n];
|
|
1328
|
-
return basis((t - i / n) * n, v0, v1, v2, v3);
|
|
1329
|
-
};
|
|
1330
|
-
}
|
|
1331
|
-
|
|
1332
|
-
// ../../node_modules/.bun/d3-interpolate@3.0.1/node_modules/d3-interpolate/src/constant.js
|
|
1333
|
-
var constant_default = (x) => () => x;
|
|
1334
|
-
|
|
1335
|
-
// ../../node_modules/.bun/d3-interpolate@3.0.1/node_modules/d3-interpolate/src/color.js
|
|
1336
|
-
function linear2(a, d) {
|
|
1337
|
-
return function(t) {
|
|
1338
|
-
return a + t * d;
|
|
1339
|
-
};
|
|
1340
|
-
}
|
|
1341
|
-
function exponential(a, b, y) {
|
|
1342
|
-
return a = Math.pow(a, y), b = Math.pow(b, y) - a, y = 1 / y, function(t) {
|
|
1343
|
-
return Math.pow(a + t * b, y);
|
|
1344
|
-
};
|
|
1345
|
-
}
|
|
1346
|
-
function gamma(y) {
|
|
1347
|
-
return (y = +y) === 1 ? nogamma : function(a, b) {
|
|
1348
|
-
return b - a ? exponential(a, b, y) : constant_default(isNaN(a) ? b : a);
|
|
1349
|
-
};
|
|
1350
|
-
}
|
|
1351
|
-
function nogamma(a, b) {
|
|
1352
|
-
var d = b - a;
|
|
1353
|
-
return d ? linear2(a, d) : constant_default(isNaN(a) ? b : a);
|
|
1354
|
-
}
|
|
1355
|
-
|
|
1356
|
-
// ../../node_modules/.bun/d3-interpolate@3.0.1/node_modules/d3-interpolate/src/rgb.js
|
|
1357
|
-
var rgb_default = (function rgbGamma(y) {
|
|
1358
|
-
var color2 = gamma(y);
|
|
1359
|
-
function rgb2(start, end) {
|
|
1360
|
-
var r = color2((start = rgb(start)).r, (end = rgb(end)).r), g = color2(start.g, end.g), b = color2(start.b, end.b), opacity = nogamma(start.opacity, end.opacity);
|
|
1361
|
-
return function(t) {
|
|
1362
|
-
start.r = r(t);
|
|
1363
|
-
start.g = g(t);
|
|
1364
|
-
start.b = b(t);
|
|
1365
|
-
start.opacity = opacity(t);
|
|
1366
|
-
return start + "";
|
|
1367
|
-
};
|
|
1368
|
-
}
|
|
1369
|
-
rgb2.gamma = rgbGamma;
|
|
1370
|
-
return rgb2;
|
|
1371
|
-
})(1);
|
|
1372
|
-
function rgbSpline(spline) {
|
|
1373
|
-
return function(colors) {
|
|
1374
|
-
var n = colors.length, r = new Array(n), g = new Array(n), b = new Array(n), i, color2;
|
|
1375
|
-
for (i = 0; i < n; ++i) {
|
|
1376
|
-
color2 = rgb(colors[i]);
|
|
1377
|
-
r[i] = color2.r || 0;
|
|
1378
|
-
g[i] = color2.g || 0;
|
|
1379
|
-
b[i] = color2.b || 0;
|
|
1380
|
-
}
|
|
1381
|
-
r = spline(r);
|
|
1382
|
-
g = spline(g);
|
|
1383
|
-
b = spline(b);
|
|
1384
|
-
color2.opacity = 1;
|
|
1385
|
-
return function(t) {
|
|
1386
|
-
color2.r = r(t);
|
|
1387
|
-
color2.g = g(t);
|
|
1388
|
-
color2.b = b(t);
|
|
1389
|
-
return color2 + "";
|
|
1390
|
-
};
|
|
1391
|
-
};
|
|
1392
|
-
}
|
|
1393
|
-
var rgbBasis = rgbSpline(basis_default);
|
|
1394
|
-
var rgbBasisClosed = rgbSpline(basisClosed_default);
|
|
1395
|
-
|
|
1396
|
-
// ../../node_modules/.bun/d3-interpolate@3.0.1/node_modules/d3-interpolate/src/zoom.js
|
|
1397
|
-
var epsilon2 = 1e-12;
|
|
1398
|
-
function cosh(x) {
|
|
1399
|
-
return ((x = Math.exp(x)) + 1 / x) / 2;
|
|
1400
|
-
}
|
|
1401
|
-
function sinh(x) {
|
|
1402
|
-
return ((x = Math.exp(x)) - 1 / x) / 2;
|
|
1403
|
-
}
|
|
1404
|
-
function tanh(x) {
|
|
1405
|
-
return ((x = Math.exp(2 * x)) - 1) / (x + 1);
|
|
1406
|
-
}
|
|
1407
|
-
var zoom_default = (function zoomRho(rho, rho2, rho4) {
|
|
1408
|
-
function zoom(p0, p1) {
|
|
1409
|
-
var ux0 = p0[0], uy0 = p0[1], w0 = p0[2], ux1 = p1[0], uy1 = p1[1], w1 = p1[2], dx = ux1 - ux0, dy = uy1 - uy0, d2 = dx * dx + dy * dy, i, S;
|
|
1410
|
-
if (d2 < epsilon2) {
|
|
1411
|
-
S = Math.log(w1 / w0) / rho;
|
|
1412
|
-
i = function(t) {
|
|
1413
|
-
return [
|
|
1414
|
-
ux0 + t * dx,
|
|
1415
|
-
uy0 + t * dy,
|
|
1416
|
-
w0 * Math.exp(rho * t * S)
|
|
1417
|
-
];
|
|
1418
|
-
};
|
|
1419
|
-
} else {
|
|
1420
|
-
var d1 = Math.sqrt(d2), b0 = (w1 * w1 - w0 * w0 + rho4 * d2) / (2 * w0 * rho2 * d1), b1 = (w1 * w1 - w0 * w0 - rho4 * d2) / (2 * w1 * rho2 * d1), r0 = Math.log(Math.sqrt(b0 * b0 + 1) - b0), r1 = Math.log(Math.sqrt(b1 * b1 + 1) - b1);
|
|
1421
|
-
S = (r1 - r0) / rho;
|
|
1422
|
-
i = function(t) {
|
|
1423
|
-
var s = t * S, coshr0 = cosh(r0), u = w0 / (rho2 * d1) * (coshr0 * tanh(rho * s + r0) - sinh(r0));
|
|
1424
|
-
return [
|
|
1425
|
-
ux0 + u * dx,
|
|
1426
|
-
uy0 + u * dy,
|
|
1427
|
-
w0 * coshr0 / cosh(rho * s + r0)
|
|
1428
|
-
];
|
|
1429
|
-
};
|
|
1430
|
-
}
|
|
1431
|
-
i.duration = S * 1e3 * rho / Math.SQRT2;
|
|
1432
|
-
return i;
|
|
1433
|
-
}
|
|
1434
|
-
zoom.rho = function(_) {
|
|
1435
|
-
var _1 = Math.max(1e-3, +_), _2 = _1 * _1, _4 = _2 * _2;
|
|
1436
|
-
return zoomRho(_1, _2, _4);
|
|
1437
|
-
};
|
|
1438
|
-
return zoom;
|
|
1439
|
-
})(Math.SQRT2, 2, 4);
|
|
1440
|
-
|
|
1441
967
|
// src/transition/canvas-tweens.ts
|
|
1442
968
|
import { serializeKeyValue as serializeKeyValue2 } from "@opendata-ai/openchart-engine";
|
|
1443
969
|
|
|
1444
970
|
// src/transition/chrome-tweens.ts
|
|
1445
971
|
import { serializeKeyValue } from "@opendata-ai/openchart-engine";
|
|
972
|
+
import { interpolateRgb } from "d3-interpolate";
|
|
1446
973
|
function markShapeElement(el, attr) {
|
|
1447
974
|
if (el.tagName === "circle" || el.tagName === "rect" || el.tagName === "path") return el;
|
|
1448
975
|
if (attr === "stroke") {
|
|
@@ -1476,7 +1003,8 @@ function buildColorTweens(prevLayout, nextLayout, dom, tweens) {
|
|
|
1476
1003
|
el: markShapeElement(group, attr),
|
|
1477
1004
|
attr,
|
|
1478
1005
|
from,
|
|
1479
|
-
to
|
|
1006
|
+
to,
|
|
1007
|
+
interpolator: interpolateRgb(from, to)
|
|
1480
1008
|
});
|
|
1481
1009
|
}
|
|
1482
1010
|
}
|
|
@@ -1524,9 +1052,13 @@ function buildAxisTweens(svg, prevLayout, nextLayout, tweens, ghosts) {
|
|
|
1524
1052
|
}
|
|
1525
1053
|
function computeGridlineDeltas(prevAxis, nextAxis) {
|
|
1526
1054
|
const byValue = (axis) => {
|
|
1055
|
+
const glByPosition = /* @__PURE__ */ new Map();
|
|
1056
|
+
for (const g of axis.gridlines) {
|
|
1057
|
+
if (!glByPosition.has(g.position)) glByPosition.set(g.position, g);
|
|
1058
|
+
}
|
|
1527
1059
|
const map = /* @__PURE__ */ new Map();
|
|
1528
1060
|
for (const tick of axis.ticks) {
|
|
1529
|
-
const matching =
|
|
1061
|
+
const matching = glByPosition.get(tick.position);
|
|
1530
1062
|
if (matching) map.set(serializeKeyValue(tick.value), matching.position);
|
|
1531
1063
|
}
|
|
1532
1064
|
return map;
|
|
@@ -1581,9 +1113,14 @@ function buildSingleAxisTweens(svg, prevAxis, nextAxis, orientation, layout, twe
|
|
|
1581
1113
|
});
|
|
1582
1114
|
}
|
|
1583
1115
|
}
|
|
1116
|
+
const prevTickByKey = /* @__PURE__ */ new Map();
|
|
1117
|
+
for (const t of prevAxis.ticks) {
|
|
1118
|
+
const k = serializeKeyValue(t.value);
|
|
1119
|
+
if (!prevTickByKey.has(k)) prevTickByKey.set(k, t);
|
|
1120
|
+
}
|
|
1584
1121
|
for (const [key, prevPos] of prevTickMap) {
|
|
1585
1122
|
if (nextTickMap.has(key)) continue;
|
|
1586
|
-
const prevTick =
|
|
1123
|
+
const prevTick = prevTickByKey.get(key);
|
|
1587
1124
|
if (!prevTick) continue;
|
|
1588
1125
|
const ghost = document.createElementNS("http://www.w3.org/2000/svg", "text");
|
|
1589
1126
|
ghost.setAttribute("class", "oc-axis-tick oc-ghost");
|
|
@@ -1893,13 +1430,25 @@ import { buildAreaPath, buildLinePath } from "@opendata-ai/openchart-engine";
|
|
|
1893
1430
|
function geomFromMark(m) {
|
|
1894
1431
|
return { x: m.x, y: m.y, width: m.width, height: m.height };
|
|
1895
1432
|
}
|
|
1896
|
-
function
|
|
1897
|
-
|
|
1433
|
+
function resolveRectShapeElement(el) {
|
|
1434
|
+
return el.querySelector("rect, path");
|
|
1435
|
+
}
|
|
1436
|
+
function applyGeomToElement(el, geom, mark, cachedShapeEl, scratch) {
|
|
1437
|
+
const shapeEl = cachedShapeEl !== void 0 ? cachedShapeEl : resolveRectShapeElement(el);
|
|
1898
1438
|
if (!shapeEl) return;
|
|
1899
1439
|
const sides = mark.cornerRadiusSides;
|
|
1900
1440
|
const partialCorners = !!sides && (!sides.tl || !sides.tr || !sides.br || !sides.bl) && !!mark.cornerRadius;
|
|
1901
1441
|
if (partialCorners && shapeEl.tagName === "path") {
|
|
1902
|
-
|
|
1442
|
+
let tempMark;
|
|
1443
|
+
if (scratch) {
|
|
1444
|
+
scratch.x = geom.x;
|
|
1445
|
+
scratch.y = geom.y;
|
|
1446
|
+
scratch.width = geom.width;
|
|
1447
|
+
scratch.height = geom.height;
|
|
1448
|
+
tempMark = scratch;
|
|
1449
|
+
} else {
|
|
1450
|
+
tempMark = { ...mark, ...geom };
|
|
1451
|
+
}
|
|
1903
1452
|
shapeEl.setAttribute("d", rectPathWithCorners(tempMark, sides));
|
|
1904
1453
|
} else {
|
|
1905
1454
|
shapeEl.setAttribute("x", String(geom.x));
|
|
@@ -2097,26 +1646,38 @@ function findRemovalPosition(key, merged, mergedIndex, prevByKey, nextByKey, pre
|
|
|
2097
1646
|
}
|
|
2098
1647
|
return prevPt;
|
|
2099
1648
|
}
|
|
2100
|
-
function interpolatePoints(fromPts, toPts, t) {
|
|
1649
|
+
function interpolatePoints(fromPts, toPts, t, out) {
|
|
2101
1650
|
const len = Math.min(fromPts.length, toPts.length);
|
|
2102
|
-
const result = new Array(len);
|
|
1651
|
+
const result = out ?? new Array(len);
|
|
2103
1652
|
for (let i = 0; i < len; i++) {
|
|
2104
|
-
|
|
1653
|
+
const from = fromPts[i];
|
|
1654
|
+
const to = toPts[i];
|
|
1655
|
+
const existing = result[i];
|
|
1656
|
+
if (existing) {
|
|
1657
|
+
existing.x = from.x + (to.x - from.x) * t;
|
|
1658
|
+
existing.y = from.y + (to.y - from.y) * t;
|
|
1659
|
+
} else {
|
|
1660
|
+
result[i] = lerpPoint(from, to, t);
|
|
1661
|
+
}
|
|
2105
1662
|
}
|
|
1663
|
+
if (result.length !== len) result.length = len;
|
|
2106
1664
|
return result;
|
|
2107
1665
|
}
|
|
2108
|
-
function applyLinePath(el, points, interpolate) {
|
|
2109
|
-
const pathEl = el.querySelector("path");
|
|
1666
|
+
function applyLinePath(el, points, interpolate, cachedPathEl) {
|
|
1667
|
+
const pathEl = cachedPathEl !== void 0 ? cachedPathEl : el.querySelector("path");
|
|
2110
1668
|
if (!pathEl) return;
|
|
2111
1669
|
pathEl.setAttribute("d", buildLinePath(points, interpolate));
|
|
2112
1670
|
}
|
|
2113
|
-
function applyAreaPaths(el, topPoints, bottomPoints, interpolate, hasStroke) {
|
|
2114
|
-
const
|
|
2115
|
-
if (
|
|
2116
|
-
|
|
1671
|
+
function applyAreaPaths(el, topPoints, bottomPoints, interpolate, hasStroke, cachedFillPathEl, cachedTopPathEl) {
|
|
1672
|
+
const fillPathEl = cachedFillPathEl !== void 0 ? cachedFillPathEl : el.querySelectorAll("path")[0] ?? null;
|
|
1673
|
+
if (fillPathEl) {
|
|
1674
|
+
fillPathEl.setAttribute("d", buildAreaPath(topPoints, bottomPoints, interpolate));
|
|
2117
1675
|
}
|
|
2118
|
-
if (hasStroke
|
|
2119
|
-
|
|
1676
|
+
if (hasStroke) {
|
|
1677
|
+
const topPathEl = cachedTopPathEl !== void 0 ? cachedTopPathEl : el.querySelectorAll("path")[1] ?? null;
|
|
1678
|
+
if (topPathEl) {
|
|
1679
|
+
topPathEl.setAttribute("d", buildLinePath(topPoints, interpolate));
|
|
1680
|
+
}
|
|
2120
1681
|
}
|
|
2121
1682
|
}
|
|
2122
1683
|
function applyFinalLinePath(el, mark) {
|
|
@@ -2161,6 +1722,9 @@ function getKeyForTween(tw) {
|
|
|
2161
1722
|
function resolveLineElement(el) {
|
|
2162
1723
|
return el.tagName === "line" ? el : el.querySelector("line") ?? el;
|
|
2163
1724
|
}
|
|
1725
|
+
function resolveTweenLineElement(tw) {
|
|
1726
|
+
return tw.lineEl ?? resolveLineElement(tw.el);
|
|
1727
|
+
}
|
|
2164
1728
|
function applyTweenState(tw, elapsed, update, exit, enterDelay, enterDuration) {
|
|
2165
1729
|
if (tw.tweenType === "canvasPoints") {
|
|
2166
1730
|
applyCanvasPointsState(tw, elapsed, update, exit, enterDelay, enterDuration);
|
|
@@ -2186,18 +1750,26 @@ function applyTweenState(tw, elapsed, update, exit, enterDelay, enterDuration) {
|
|
|
2186
1750
|
switch (tw.tweenType) {
|
|
2187
1751
|
case "rect": {
|
|
2188
1752
|
const geom = lerpGeom(tw.from, tw.to, eased);
|
|
2189
|
-
applyGeomToElement(tw.el, geom, tw.mark);
|
|
1753
|
+
applyGeomToElement(tw.el, geom, tw.mark, tw.shapeEl, tw.cornerScratch);
|
|
2190
1754
|
break;
|
|
2191
1755
|
}
|
|
2192
1756
|
case "line": {
|
|
2193
|
-
|
|
2194
|
-
applyLinePath(tw.el,
|
|
1757
|
+
tw.ptsBuffer = interpolatePoints(tw.fromPts, tw.toPts, eased, tw.ptsBuffer);
|
|
1758
|
+
applyLinePath(tw.el, tw.ptsBuffer, tw.interpolate, tw.pathEl);
|
|
2195
1759
|
break;
|
|
2196
1760
|
}
|
|
2197
1761
|
case "area": {
|
|
2198
|
-
|
|
2199
|
-
|
|
2200
|
-
applyAreaPaths(
|
|
1762
|
+
tw.topBuffer = interpolatePoints(tw.fromTop, tw.toTop, eased, tw.topBuffer);
|
|
1763
|
+
tw.bottomBuffer = interpolatePoints(tw.fromBottom, tw.toBottom, eased, tw.bottomBuffer);
|
|
1764
|
+
applyAreaPaths(
|
|
1765
|
+
tw.el,
|
|
1766
|
+
tw.topBuffer,
|
|
1767
|
+
tw.bottomBuffer,
|
|
1768
|
+
tw.interpolate,
|
|
1769
|
+
tw.hasStroke,
|
|
1770
|
+
tw.fillPathEl,
|
|
1771
|
+
tw.topPathEl
|
|
1772
|
+
);
|
|
2201
1773
|
break;
|
|
2202
1774
|
}
|
|
2203
1775
|
case "arc": {
|
|
@@ -2217,7 +1789,7 @@ function applyTweenState(tw, elapsed, update, exit, enterDelay, enterDuration) {
|
|
|
2217
1789
|
}
|
|
2218
1790
|
case "rule":
|
|
2219
1791
|
case "tick": {
|
|
2220
|
-
const lineEl =
|
|
1792
|
+
const lineEl = resolveTweenLineElement(tw);
|
|
2221
1793
|
lineEl.setAttribute("x1", String(tw.fromX1 + (tw.toX1 - tw.fromX1) * eased));
|
|
2222
1794
|
lineEl.setAttribute("y1", String(tw.fromY1 + (tw.toY1 - tw.fromY1) * eased));
|
|
2223
1795
|
lineEl.setAttribute("x2", String(tw.fromX2 + (tw.toX2 - tw.fromX2) * eased));
|
|
@@ -2255,7 +1827,7 @@ function applyTweenState(tw, elapsed, update, exit, enterDelay, enterDuration) {
|
|
|
2255
1827
|
break;
|
|
2256
1828
|
}
|
|
2257
1829
|
case "color": {
|
|
2258
|
-
tw.el.setAttribute(tw.attr,
|
|
1830
|
+
tw.el.setAttribute(tw.attr, tw.interpolator(eased));
|
|
2259
1831
|
break;
|
|
2260
1832
|
}
|
|
2261
1833
|
case "annotation": {
|
|
@@ -2283,13 +1855,21 @@ function snapTweenToFinal(tw) {
|
|
|
2283
1855
|
}
|
|
2284
1856
|
switch (tw.tweenType) {
|
|
2285
1857
|
case "rect":
|
|
2286
|
-
applyGeomToElement(tw.el, tw.to, tw.mark);
|
|
1858
|
+
applyGeomToElement(tw.el, tw.to, tw.mark, tw.shapeEl, tw.cornerScratch);
|
|
2287
1859
|
break;
|
|
2288
1860
|
case "line":
|
|
2289
|
-
applyLinePath(tw.el, tw.toPts, tw.interpolate);
|
|
1861
|
+
applyLinePath(tw.el, tw.toPts, tw.interpolate, tw.pathEl);
|
|
2290
1862
|
break;
|
|
2291
1863
|
case "area":
|
|
2292
|
-
applyAreaPaths(
|
|
1864
|
+
applyAreaPaths(
|
|
1865
|
+
tw.el,
|
|
1866
|
+
tw.toTop,
|
|
1867
|
+
tw.toBottom,
|
|
1868
|
+
tw.interpolate,
|
|
1869
|
+
tw.hasStroke,
|
|
1870
|
+
tw.fillPathEl,
|
|
1871
|
+
tw.topPathEl
|
|
1872
|
+
);
|
|
2293
1873
|
break;
|
|
2294
1874
|
case "arc": {
|
|
2295
1875
|
const pathEl = tw.el.tagName === "path" ? tw.el : tw.el.querySelector("path");
|
|
@@ -2306,7 +1886,7 @@ function snapTweenToFinal(tw) {
|
|
|
2306
1886
|
break;
|
|
2307
1887
|
case "rule":
|
|
2308
1888
|
case "tick": {
|
|
2309
|
-
const lineEl =
|
|
1889
|
+
const lineEl = resolveTweenLineElement(tw);
|
|
2310
1890
|
lineEl.setAttribute("x1", String(tw.toX1));
|
|
2311
1891
|
lineEl.setAttribute("y1", String(tw.toY1));
|
|
2312
1892
|
lineEl.setAttribute("x2", String(tw.toX2));
|
|
@@ -2378,6 +1958,21 @@ function buildMarkDomIndex(marksContainer) {
|
|
|
2378
1958
|
}
|
|
2379
1959
|
|
|
2380
1960
|
// src/transition/svg-tweens.ts
|
|
1961
|
+
function buildCornerScratch(mark) {
|
|
1962
|
+
const sides = mark.cornerRadiusSides;
|
|
1963
|
+
const partialCorners = !!sides && (!sides.tl || !sides.tr || !sides.br || !sides.bl) && !!mark.cornerRadius;
|
|
1964
|
+
return partialCorners ? { ...mark } : void 0;
|
|
1965
|
+
}
|
|
1966
|
+
function resolveLinePathEl(el) {
|
|
1967
|
+
return el.querySelector("path");
|
|
1968
|
+
}
|
|
1969
|
+
function resolveAreaPathEls(el) {
|
|
1970
|
+
const paths = el.querySelectorAll("path");
|
|
1971
|
+
return {
|
|
1972
|
+
fillPathEl: paths[0] ?? null,
|
|
1973
|
+
topPathEl: paths[1] ?? null
|
|
1974
|
+
};
|
|
1975
|
+
}
|
|
2381
1976
|
function resolveGhostGradientFill(mark, ghostGradientMap) {
|
|
2382
1977
|
if (!mark.fill || typeof mark.fill === "string" || ghostGradientMap.size === 0) return mark;
|
|
2383
1978
|
const resolved = resolveMarkFill(mark.fill, ghostGradientMap);
|
|
@@ -2410,7 +2005,9 @@ function buildRectTweens(prevLayout, nextLayout, marksContainer, dom, tweens, gh
|
|
|
2410
2005
|
el,
|
|
2411
2006
|
from: fromGeom,
|
|
2412
2007
|
to: geomFromMark(next),
|
|
2413
|
-
mark: next
|
|
2008
|
+
mark: next,
|
|
2009
|
+
shapeEl: resolveRectShapeElement(el),
|
|
2010
|
+
cornerScratch: buildCornerScratch(next)
|
|
2414
2011
|
});
|
|
2415
2012
|
}
|
|
2416
2013
|
for (const [key, next] of nextByKey) {
|
|
@@ -2429,7 +2026,9 @@ function buildRectTweens(prevLayout, nextLayout, marksContainer, dom, tweens, gh
|
|
|
2429
2026
|
el,
|
|
2430
2027
|
from: fromGeom,
|
|
2431
2028
|
to: geomFromMark(next),
|
|
2432
|
-
mark: next
|
|
2029
|
+
mark: next,
|
|
2030
|
+
shapeEl: resolveRectShapeElement(el),
|
|
2031
|
+
cornerScratch: buildCornerScratch(next)
|
|
2433
2032
|
});
|
|
2434
2033
|
}
|
|
2435
2034
|
for (const [key, prev] of prevByKey) {
|
|
@@ -2456,6 +2055,8 @@ function buildRectTweens(prevLayout, nextLayout, marksContainer, dom, tweens, gh
|
|
|
2456
2055
|
from: geomFromMark(prev),
|
|
2457
2056
|
to: toGeom,
|
|
2458
2057
|
mark: prev,
|
|
2058
|
+
shapeEl: resolveRectShapeElement(ghost),
|
|
2059
|
+
cornerScratch: buildCornerScratch(prev),
|
|
2459
2060
|
ghost,
|
|
2460
2061
|
fromOpacity: 1,
|
|
2461
2062
|
toOpacity: 0
|
|
@@ -2500,7 +2101,8 @@ function buildLineTweens(prevLayout, nextLayout, marksContainer, dom, tweens, gh
|
|
|
2500
2101
|
interpolate: next.interpolate,
|
|
2501
2102
|
ghost,
|
|
2502
2103
|
fromOpacity: 1,
|
|
2503
|
-
toOpacity: 0
|
|
2104
|
+
toOpacity: 0,
|
|
2105
|
+
pathEl: ghostPath
|
|
2504
2106
|
});
|
|
2505
2107
|
tweens.push({
|
|
2506
2108
|
tweenType: "line",
|
|
@@ -2511,7 +2113,8 @@ function buildLineTweens(prevLayout, nextLayout, marksContainer, dom, tweens, gh
|
|
|
2511
2113
|
finalPoints: next.points,
|
|
2512
2114
|
interpolate: next.interpolate,
|
|
2513
2115
|
fromOpacity: 0,
|
|
2514
|
-
toOpacity: 1
|
|
2116
|
+
toOpacity: 1,
|
|
2117
|
+
pathEl: resolveLinePathEl(el)
|
|
2515
2118
|
});
|
|
2516
2119
|
continue;
|
|
2517
2120
|
}
|
|
@@ -2538,7 +2141,8 @@ function buildLineTweens(prevLayout, nextLayout, marksContainer, dom, tweens, gh
|
|
|
2538
2141
|
interpolate: prev.interpolate,
|
|
2539
2142
|
ghost,
|
|
2540
2143
|
fromOpacity: 1,
|
|
2541
|
-
toOpacity: 0
|
|
2144
|
+
toOpacity: 0,
|
|
2145
|
+
pathEl: resolveLinePathEl(ghost)
|
|
2542
2146
|
});
|
|
2543
2147
|
}
|
|
2544
2148
|
tweens.push({
|
|
@@ -2550,7 +2154,8 @@ function buildLineTweens(prevLayout, nextLayout, marksContainer, dom, tweens, gh
|
|
|
2550
2154
|
finalPoints: next.points,
|
|
2551
2155
|
interpolate: next.interpolate,
|
|
2552
2156
|
fromOpacity: 0,
|
|
2553
|
-
toOpacity: 1
|
|
2157
|
+
toOpacity: 1,
|
|
2158
|
+
pathEl: resolveLinePathEl(el)
|
|
2554
2159
|
});
|
|
2555
2160
|
} else {
|
|
2556
2161
|
const [fromPts, toPts] = normalizePointArrays(prev.points, next.points, prevPKs, nextPKs);
|
|
@@ -2561,7 +2166,8 @@ function buildLineTweens(prevLayout, nextLayout, marksContainer, dom, tweens, gh
|
|
|
2561
2166
|
fromPts,
|
|
2562
2167
|
toPts,
|
|
2563
2168
|
finalPoints: next.points,
|
|
2564
|
-
interpolate: next.interpolate
|
|
2169
|
+
interpolate: next.interpolate,
|
|
2170
|
+
pathEl: resolveLinePathEl(el)
|
|
2565
2171
|
});
|
|
2566
2172
|
}
|
|
2567
2173
|
}
|
|
@@ -2578,7 +2184,8 @@ function buildLineTweens(prevLayout, nextLayout, marksContainer, dom, tweens, gh
|
|
|
2578
2184
|
finalPoints: next.points,
|
|
2579
2185
|
interpolate: next.interpolate,
|
|
2580
2186
|
fromOpacity: 0,
|
|
2581
|
-
toOpacity: 1
|
|
2187
|
+
toOpacity: 1,
|
|
2188
|
+
pathEl: resolveLinePathEl(el)
|
|
2582
2189
|
});
|
|
2583
2190
|
}
|
|
2584
2191
|
for (const [key, prev] of prevByKey) {
|
|
@@ -2600,6 +2207,7 @@ function buildLineTweens(prevLayout, nextLayout, marksContainer, dom, tweens, gh
|
|
|
2600
2207
|
finalPoints: prev.points,
|
|
2601
2208
|
interpolate: prev.interpolate,
|
|
2602
2209
|
ghost,
|
|
2210
|
+
pathEl: resolveLinePathEl(ghost),
|
|
2603
2211
|
fromOpacity: 1,
|
|
2604
2212
|
toOpacity: 0
|
|
2605
2213
|
});
|
|
@@ -2647,8 +2255,11 @@ function buildAreaTweens(prevLayout, nextLayout, marksContainer, dom, tweens, gh
|
|
|
2647
2255
|
hasStroke: !!next.stroke && !!next.topPath,
|
|
2648
2256
|
ghost,
|
|
2649
2257
|
fromOpacity: 1,
|
|
2650
|
-
toOpacity: 0
|
|
2258
|
+
toOpacity: 0,
|
|
2259
|
+
fillPathEl: ghostPaths[0] ?? null,
|
|
2260
|
+
topPathEl: ghostPaths[1] ?? null
|
|
2651
2261
|
});
|
|
2262
|
+
const enterPaths = resolveAreaPathEls(el);
|
|
2652
2263
|
tweens.push({
|
|
2653
2264
|
tweenType: "area",
|
|
2654
2265
|
kind: "enter",
|
|
@@ -2662,7 +2273,9 @@ function buildAreaTweens(prevLayout, nextLayout, marksContainer, dom, tweens, gh
|
|
|
2662
2273
|
interpolate: next.interpolate,
|
|
2663
2274
|
hasStroke: !!next.stroke && !!next.topPath,
|
|
2664
2275
|
fromOpacity: 0,
|
|
2665
|
-
toOpacity: 1
|
|
2276
|
+
toOpacity: 1,
|
|
2277
|
+
fillPathEl: enterPaths.fillPathEl,
|
|
2278
|
+
topPathEl: enterPaths.topPathEl
|
|
2666
2279
|
});
|
|
2667
2280
|
continue;
|
|
2668
2281
|
}
|
|
@@ -2693,7 +2306,8 @@ function buildAreaTweens(prevLayout, nextLayout, marksContainer, dom, tweens, gh
|
|
|
2693
2306
|
hasStroke: !!prev.stroke && !!prev.topPath,
|
|
2694
2307
|
ghost,
|
|
2695
2308
|
fromOpacity: 1,
|
|
2696
|
-
toOpacity: 0
|
|
2309
|
+
toOpacity: 0,
|
|
2310
|
+
...resolveAreaPathEls(ghost)
|
|
2697
2311
|
});
|
|
2698
2312
|
}
|
|
2699
2313
|
tweens.push({
|
|
@@ -2709,7 +2323,8 @@ function buildAreaTweens(prevLayout, nextLayout, marksContainer, dom, tweens, gh
|
|
|
2709
2323
|
interpolate: next.interpolate,
|
|
2710
2324
|
hasStroke: !!next.stroke && !!next.topPath,
|
|
2711
2325
|
fromOpacity: 0,
|
|
2712
|
-
toOpacity: 1
|
|
2326
|
+
toOpacity: 1,
|
|
2327
|
+
...resolveAreaPathEls(el)
|
|
2713
2328
|
});
|
|
2714
2329
|
} else {
|
|
2715
2330
|
const [fromTop, toTop] = normalizePointArrays(
|
|
@@ -2735,7 +2350,8 @@ function buildAreaTweens(prevLayout, nextLayout, marksContainer, dom, tweens, gh
|
|
|
2735
2350
|
finalTopPoints: next.topPoints,
|
|
2736
2351
|
finalBottomPoints: next.bottomPoints,
|
|
2737
2352
|
interpolate: next.interpolate,
|
|
2738
|
-
hasStroke: !!next.stroke && !!next.topPath
|
|
2353
|
+
hasStroke: !!next.stroke && !!next.topPath,
|
|
2354
|
+
...resolveAreaPathEls(el)
|
|
2739
2355
|
});
|
|
2740
2356
|
}
|
|
2741
2357
|
}
|
|
@@ -2756,7 +2372,8 @@ function buildAreaTweens(prevLayout, nextLayout, marksContainer, dom, tweens, gh
|
|
|
2756
2372
|
interpolate: next.interpolate,
|
|
2757
2373
|
hasStroke: !!next.stroke && !!next.topPath,
|
|
2758
2374
|
fromOpacity: 0,
|
|
2759
|
-
toOpacity: 1
|
|
2375
|
+
toOpacity: 1,
|
|
2376
|
+
...resolveAreaPathEls(el)
|
|
2760
2377
|
});
|
|
2761
2378
|
}
|
|
2762
2379
|
for (const [key, prev] of prevByKey) {
|
|
@@ -2784,7 +2401,8 @@ function buildAreaTweens(prevLayout, nextLayout, marksContainer, dom, tweens, gh
|
|
|
2784
2401
|
hasStroke: !!prev.stroke && !!prev.topPath,
|
|
2785
2402
|
ghost,
|
|
2786
2403
|
fromOpacity: 1,
|
|
2787
|
-
toOpacity: 0
|
|
2404
|
+
toOpacity: 0,
|
|
2405
|
+
...resolveAreaPathEls(ghost)
|
|
2788
2406
|
});
|
|
2789
2407
|
}
|
|
2790
2408
|
}
|
|
@@ -3004,7 +2622,8 @@ function buildRuleTweens(prevLayout, nextLayout, marksContainer, dom, tweens, gh
|
|
|
3004
2622
|
toX1: next.x1,
|
|
3005
2623
|
toY1: next.y1,
|
|
3006
2624
|
toX2: next.x2,
|
|
3007
|
-
toY2: next.y2
|
|
2625
|
+
toY2: next.y2,
|
|
2626
|
+
lineEl: resolveLineElement(el)
|
|
3008
2627
|
});
|
|
3009
2628
|
}
|
|
3010
2629
|
for (const [key, next] of nextByKey) {
|
|
@@ -3024,7 +2643,8 @@ function buildRuleTweens(prevLayout, nextLayout, marksContainer, dom, tweens, gh
|
|
|
3024
2643
|
toX2: next.x2,
|
|
3025
2644
|
toY2: next.y2,
|
|
3026
2645
|
fromOpacity: 0,
|
|
3027
|
-
toOpacity: 1
|
|
2646
|
+
toOpacity: 1,
|
|
2647
|
+
lineEl: resolveLineElement(el)
|
|
3028
2648
|
});
|
|
3029
2649
|
}
|
|
3030
2650
|
for (const [key, prev] of prevByKey) {
|
|
@@ -3051,7 +2671,8 @@ function buildRuleTweens(prevLayout, nextLayout, marksContainer, dom, tweens, gh
|
|
|
3051
2671
|
toY2: prev.y2,
|
|
3052
2672
|
ghost,
|
|
3053
2673
|
fromOpacity: 1,
|
|
3054
|
-
toOpacity: 0
|
|
2674
|
+
toOpacity: 0,
|
|
2675
|
+
lineEl: resolveLineElement(ghost)
|
|
3055
2676
|
});
|
|
3056
2677
|
}
|
|
3057
2678
|
}
|
|
@@ -3095,7 +2716,8 @@ function buildTickTweens(prevLayout, nextLayout, marksContainer, dom, tweens, gh
|
|
|
3095
2716
|
toX1: nEnd.x1,
|
|
3096
2717
|
toY1: nEnd.y1,
|
|
3097
2718
|
toX2: nEnd.x2,
|
|
3098
|
-
toY2: nEnd.y2
|
|
2719
|
+
toY2: nEnd.y2,
|
|
2720
|
+
lineEl: resolveLineElement(el)
|
|
3099
2721
|
});
|
|
3100
2722
|
}
|
|
3101
2723
|
for (const [key, next] of nextByKey) {
|
|
@@ -3116,7 +2738,8 @@ function buildTickTweens(prevLayout, nextLayout, marksContainer, dom, tweens, gh
|
|
|
3116
2738
|
toX2: nEnd.x2,
|
|
3117
2739
|
toY2: nEnd.y2,
|
|
3118
2740
|
fromOpacity: 0,
|
|
3119
|
-
toOpacity: 1
|
|
2741
|
+
toOpacity: 1,
|
|
2742
|
+
lineEl: resolveLineElement(el)
|
|
3120
2743
|
});
|
|
3121
2744
|
}
|
|
3122
2745
|
for (const [key, prev] of prevByKey) {
|
|
@@ -3144,7 +2767,8 @@ function buildTickTweens(prevLayout, nextLayout, marksContainer, dom, tweens, gh
|
|
|
3144
2767
|
toY2: pEnd.y2,
|
|
3145
2768
|
ghost,
|
|
3146
2769
|
fromOpacity: 1,
|
|
3147
|
-
toOpacity: 0
|
|
2770
|
+
toOpacity: 0,
|
|
2771
|
+
lineEl: resolveLineElement(ghost)
|
|
3148
2772
|
});
|
|
3149
2773
|
}
|
|
3150
2774
|
}
|
|
@@ -3577,7 +3201,7 @@ function createYouDrawIt(options) {
|
|
|
3577
3201
|
let svgEl = null;
|
|
3578
3202
|
const guessByX = /* @__PURE__ */ new Map();
|
|
3579
3203
|
let cleanupPointerEvents = null;
|
|
3580
|
-
function buildHatchPattern(id,
|
|
3204
|
+
function buildHatchPattern(id, color) {
|
|
3581
3205
|
const pattern = document.createElementNS(SVG_NS, "pattern");
|
|
3582
3206
|
pattern.setAttribute("id", id);
|
|
3583
3207
|
pattern.setAttribute("patternUnits", "userSpaceOnUse");
|
|
@@ -3585,7 +3209,7 @@ function createYouDrawIt(options) {
|
|
|
3585
3209
|
pattern.setAttribute("height", "8");
|
|
3586
3210
|
pattern.setAttribute("patternTransform", "rotate(45)");
|
|
3587
3211
|
const line = document.createElementNS(SVG_NS, "line");
|
|
3588
|
-
setAttrs(line, { x1: 0, y1: 0, x2: 0, y2: 8, stroke:
|
|
3212
|
+
setAttrs(line, { x1: 0, y1: 0, x2: 0, y2: 8, stroke: color, "stroke-width": 1 });
|
|
3589
3213
|
line.setAttribute("stroke-opacity", "0.5");
|
|
3590
3214
|
pattern.appendChild(line);
|
|
3591
3215
|
return pattern;
|
|
@@ -4066,12 +3690,12 @@ function collectSeriesGroups(layout) {
|
|
|
4066
3690
|
const key = mark.seriesKey ?? "__default__";
|
|
4067
3691
|
const existingType = markTypeByKey.get(key);
|
|
4068
3692
|
if (existingType === "line" && mark.type === "area") continue;
|
|
4069
|
-
const
|
|
3693
|
+
const color = mark.type === "line" ? mark.stroke : getRepresentativeColor(mark.fill);
|
|
4070
3694
|
const pointsByX = /* @__PURE__ */ new Map();
|
|
4071
3695
|
for (const dp of mark.dataPoints) {
|
|
4072
3696
|
pointsByX.set(snapKey(dp.x), { ...dp });
|
|
4073
3697
|
}
|
|
4074
|
-
byKey.set(key, { seriesKey: key, color
|
|
3698
|
+
byKey.set(key, { seriesKey: key, color, pointsByX });
|
|
4075
3699
|
markTypeByKey.set(key, mark.type);
|
|
4076
3700
|
}
|
|
4077
3701
|
}
|
|
@@ -4109,7 +3733,9 @@ function buildSliceTooltip(hits) {
|
|
|
4109
3733
|
const tip = point.tooltip;
|
|
4110
3734
|
if (!tip) continue;
|
|
4111
3735
|
if (isMulti) {
|
|
4112
|
-
const yField = tip.fields.find(
|
|
3736
|
+
const yField = tip.fields.find(
|
|
3737
|
+
(f) => !f.color && f.label !== title && f.value !== title && f.value !== group.seriesKey
|
|
3738
|
+
) ?? tip.fields[tip.fields.length - 1] ?? null;
|
|
4113
3739
|
if (!yField) continue;
|
|
4114
3740
|
fields.push({
|
|
4115
3741
|
label: group.seriesKey,
|
|
@@ -5006,6 +4632,21 @@ function wireLegendInteraction(svg, _layout, toggleSeries, onLegendToggle, onEdi
|
|
|
5006
4632
|
|
|
5007
4633
|
// src/interactions/selection.ts
|
|
5008
4634
|
import { elementRef as elementRef2 } from "@opendata-ai/openchart-core";
|
|
4635
|
+
|
|
4636
|
+
// src/dom-helpers.ts
|
|
4637
|
+
function applySrOnlyStyles(el) {
|
|
4638
|
+
el.style.position = "absolute";
|
|
4639
|
+
el.style.width = "1px";
|
|
4640
|
+
el.style.height = "1px";
|
|
4641
|
+
el.style.padding = "0";
|
|
4642
|
+
el.style.margin = "-1px";
|
|
4643
|
+
el.style.overflow = "clip";
|
|
4644
|
+
el.style.clipPath = "inset(50%)";
|
|
4645
|
+
el.style.whiteSpace = "nowrap";
|
|
4646
|
+
el.style.borderWidth = "0";
|
|
4647
|
+
}
|
|
4648
|
+
|
|
4649
|
+
// src/interactions/selection.ts
|
|
5009
4650
|
function findElementByRef(svg, ref) {
|
|
5010
4651
|
switch (ref.type) {
|
|
5011
4652
|
case "annotation": {
|
|
@@ -5164,17 +4805,10 @@ function renderSelectionOverlay(svg, ref, layout) {
|
|
|
5164
4805
|
function createScreenReaderTable(layout, container) {
|
|
5165
4806
|
const data = layout.a11y.dataTableFallback;
|
|
5166
4807
|
if (!data || data.length === 0) return null;
|
|
4808
|
+
const wrapper = document.createElement("div");
|
|
4809
|
+
wrapper.className = "oc-sr-only";
|
|
4810
|
+
applySrOnlyStyles(wrapper);
|
|
5167
4811
|
const table = document.createElement("table");
|
|
5168
|
-
table.className = "oc-sr-only";
|
|
5169
|
-
table.style.position = "absolute";
|
|
5170
|
-
table.style.width = "1px";
|
|
5171
|
-
table.style.height = "1px";
|
|
5172
|
-
table.style.padding = "0";
|
|
5173
|
-
table.style.margin = "-1px";
|
|
5174
|
-
table.style.overflow = "hidden";
|
|
5175
|
-
table.style.clipPath = "inset(50%)";
|
|
5176
|
-
table.style.whiteSpace = "nowrap";
|
|
5177
|
-
table.style.borderWidth = "0";
|
|
5178
4812
|
table.setAttribute("role", "table");
|
|
5179
4813
|
table.setAttribute("aria-label", `Data table: ${layout.a11y.altText}`);
|
|
5180
4814
|
const totalRows = layout.a11y.totalRows;
|
|
@@ -5210,8 +4844,9 @@ function createScreenReaderTable(layout, container) {
|
|
|
5210
4844
|
}
|
|
5211
4845
|
table.appendChild(tbody);
|
|
5212
4846
|
}
|
|
5213
|
-
|
|
5214
|
-
|
|
4847
|
+
wrapper.appendChild(table);
|
|
4848
|
+
container.appendChild(wrapper);
|
|
4849
|
+
return wrapper;
|
|
5215
4850
|
}
|
|
5216
4851
|
|
|
5217
4852
|
// src/interactions/tooltip-events.ts
|
|
@@ -5511,302 +5146,8 @@ var AnimationScheduler = class {
|
|
|
5511
5146
|
}
|
|
5512
5147
|
};
|
|
5513
5148
|
|
|
5514
|
-
// ../../node_modules/.bun/d3-quadtree@3.0.1/node_modules/d3-quadtree/src/add.js
|
|
5515
|
-
function add_default(d) {
|
|
5516
|
-
const x = +this._x.call(null, d), y = +this._y.call(null, d);
|
|
5517
|
-
return add(this.cover(x, y), x, y, d);
|
|
5518
|
-
}
|
|
5519
|
-
function add(tree, x, y, d) {
|
|
5520
|
-
if (isNaN(x) || isNaN(y)) return tree;
|
|
5521
|
-
var parent, node = tree._root, leaf = { data: d }, x0 = tree._x0, y0 = tree._y0, x1 = tree._x1, y1 = tree._y1, xm, ym, xp, yp, right, bottom, i, j;
|
|
5522
|
-
if (!node) return tree._root = leaf, tree;
|
|
5523
|
-
while (node.length) {
|
|
5524
|
-
if (right = x >= (xm = (x0 + x1) / 2)) x0 = xm;
|
|
5525
|
-
else x1 = xm;
|
|
5526
|
-
if (bottom = y >= (ym = (y0 + y1) / 2)) y0 = ym;
|
|
5527
|
-
else y1 = ym;
|
|
5528
|
-
if (parent = node, !(node = node[i = bottom << 1 | right])) return parent[i] = leaf, tree;
|
|
5529
|
-
}
|
|
5530
|
-
xp = +tree._x.call(null, node.data);
|
|
5531
|
-
yp = +tree._y.call(null, node.data);
|
|
5532
|
-
if (x === xp && y === yp) return leaf.next = node, parent ? parent[i] = leaf : tree._root = leaf, tree;
|
|
5533
|
-
do {
|
|
5534
|
-
parent = parent ? parent[i] = new Array(4) : tree._root = new Array(4);
|
|
5535
|
-
if (right = x >= (xm = (x0 + x1) / 2)) x0 = xm;
|
|
5536
|
-
else x1 = xm;
|
|
5537
|
-
if (bottom = y >= (ym = (y0 + y1) / 2)) y0 = ym;
|
|
5538
|
-
else y1 = ym;
|
|
5539
|
-
} while ((i = bottom << 1 | right) === (j = (yp >= ym) << 1 | xp >= xm));
|
|
5540
|
-
return parent[j] = node, parent[i] = leaf, tree;
|
|
5541
|
-
}
|
|
5542
|
-
function addAll(data) {
|
|
5543
|
-
var d, i, n = data.length, x, y, xz = new Array(n), yz = new Array(n), x0 = Infinity, y0 = Infinity, x1 = -Infinity, y1 = -Infinity;
|
|
5544
|
-
for (i = 0; i < n; ++i) {
|
|
5545
|
-
if (isNaN(x = +this._x.call(null, d = data[i])) || isNaN(y = +this._y.call(null, d))) continue;
|
|
5546
|
-
xz[i] = x;
|
|
5547
|
-
yz[i] = y;
|
|
5548
|
-
if (x < x0) x0 = x;
|
|
5549
|
-
if (x > x1) x1 = x;
|
|
5550
|
-
if (y < y0) y0 = y;
|
|
5551
|
-
if (y > y1) y1 = y;
|
|
5552
|
-
}
|
|
5553
|
-
if (x0 > x1 || y0 > y1) return this;
|
|
5554
|
-
this.cover(x0, y0).cover(x1, y1);
|
|
5555
|
-
for (i = 0; i < n; ++i) {
|
|
5556
|
-
add(this, xz[i], yz[i], data[i]);
|
|
5557
|
-
}
|
|
5558
|
-
return this;
|
|
5559
|
-
}
|
|
5560
|
-
|
|
5561
|
-
// ../../node_modules/.bun/d3-quadtree@3.0.1/node_modules/d3-quadtree/src/cover.js
|
|
5562
|
-
function cover_default(x, y) {
|
|
5563
|
-
if (isNaN(x = +x) || isNaN(y = +y)) return this;
|
|
5564
|
-
var x0 = this._x0, y0 = this._y0, x1 = this._x1, y1 = this._y1;
|
|
5565
|
-
if (isNaN(x0)) {
|
|
5566
|
-
x1 = (x0 = Math.floor(x)) + 1;
|
|
5567
|
-
y1 = (y0 = Math.floor(y)) + 1;
|
|
5568
|
-
} else {
|
|
5569
|
-
var z = x1 - x0 || 1, node = this._root, parent, i;
|
|
5570
|
-
while (x0 > x || x >= x1 || y0 > y || y >= y1) {
|
|
5571
|
-
i = (y < y0) << 1 | x < x0;
|
|
5572
|
-
parent = new Array(4), parent[i] = node, node = parent, z *= 2;
|
|
5573
|
-
switch (i) {
|
|
5574
|
-
case 0:
|
|
5575
|
-
x1 = x0 + z, y1 = y0 + z;
|
|
5576
|
-
break;
|
|
5577
|
-
case 1:
|
|
5578
|
-
x0 = x1 - z, y1 = y0 + z;
|
|
5579
|
-
break;
|
|
5580
|
-
case 2:
|
|
5581
|
-
x1 = x0 + z, y0 = y1 - z;
|
|
5582
|
-
break;
|
|
5583
|
-
case 3:
|
|
5584
|
-
x0 = x1 - z, y0 = y1 - z;
|
|
5585
|
-
break;
|
|
5586
|
-
}
|
|
5587
|
-
}
|
|
5588
|
-
if (this._root && this._root.length) this._root = node;
|
|
5589
|
-
}
|
|
5590
|
-
this._x0 = x0;
|
|
5591
|
-
this._y0 = y0;
|
|
5592
|
-
this._x1 = x1;
|
|
5593
|
-
this._y1 = y1;
|
|
5594
|
-
return this;
|
|
5595
|
-
}
|
|
5596
|
-
|
|
5597
|
-
// ../../node_modules/.bun/d3-quadtree@3.0.1/node_modules/d3-quadtree/src/data.js
|
|
5598
|
-
function data_default() {
|
|
5599
|
-
var data = [];
|
|
5600
|
-
this.visit(function(node) {
|
|
5601
|
-
if (!node.length) do
|
|
5602
|
-
data.push(node.data);
|
|
5603
|
-
while (node = node.next);
|
|
5604
|
-
});
|
|
5605
|
-
return data;
|
|
5606
|
-
}
|
|
5607
|
-
|
|
5608
|
-
// ../../node_modules/.bun/d3-quadtree@3.0.1/node_modules/d3-quadtree/src/extent.js
|
|
5609
|
-
function extent_default(_) {
|
|
5610
|
-
return arguments.length ? this.cover(+_[0][0], +_[0][1]).cover(+_[1][0], +_[1][1]) : isNaN(this._x0) ? void 0 : [[this._x0, this._y0], [this._x1, this._y1]];
|
|
5611
|
-
}
|
|
5612
|
-
|
|
5613
|
-
// ../../node_modules/.bun/d3-quadtree@3.0.1/node_modules/d3-quadtree/src/quad.js
|
|
5614
|
-
function quad_default(node, x0, y0, x1, y1) {
|
|
5615
|
-
this.node = node;
|
|
5616
|
-
this.x0 = x0;
|
|
5617
|
-
this.y0 = y0;
|
|
5618
|
-
this.x1 = x1;
|
|
5619
|
-
this.y1 = y1;
|
|
5620
|
-
}
|
|
5621
|
-
|
|
5622
|
-
// ../../node_modules/.bun/d3-quadtree@3.0.1/node_modules/d3-quadtree/src/find.js
|
|
5623
|
-
function find_default(x, y, radius) {
|
|
5624
|
-
var data, x0 = this._x0, y0 = this._y0, x1, y1, x2, y2, x3 = this._x1, y3 = this._y1, quads = [], node = this._root, q, i;
|
|
5625
|
-
if (node) quads.push(new quad_default(node, x0, y0, x3, y3));
|
|
5626
|
-
if (radius == null) radius = Infinity;
|
|
5627
|
-
else {
|
|
5628
|
-
x0 = x - radius, y0 = y - radius;
|
|
5629
|
-
x3 = x + radius, y3 = y + radius;
|
|
5630
|
-
radius *= radius;
|
|
5631
|
-
}
|
|
5632
|
-
while (q = quads.pop()) {
|
|
5633
|
-
if (!(node = q.node) || (x1 = q.x0) > x3 || (y1 = q.y0) > y3 || (x2 = q.x1) < x0 || (y2 = q.y1) < y0) continue;
|
|
5634
|
-
if (node.length) {
|
|
5635
|
-
var xm = (x1 + x2) / 2, ym = (y1 + y2) / 2;
|
|
5636
|
-
quads.push(
|
|
5637
|
-
new quad_default(node[3], xm, ym, x2, y2),
|
|
5638
|
-
new quad_default(node[2], x1, ym, xm, y2),
|
|
5639
|
-
new quad_default(node[1], xm, y1, x2, ym),
|
|
5640
|
-
new quad_default(node[0], x1, y1, xm, ym)
|
|
5641
|
-
);
|
|
5642
|
-
if (i = (y >= ym) << 1 | x >= xm) {
|
|
5643
|
-
q = quads[quads.length - 1];
|
|
5644
|
-
quads[quads.length - 1] = quads[quads.length - 1 - i];
|
|
5645
|
-
quads[quads.length - 1 - i] = q;
|
|
5646
|
-
}
|
|
5647
|
-
} else {
|
|
5648
|
-
var dx = x - +this._x.call(null, node.data), dy = y - +this._y.call(null, node.data), d2 = dx * dx + dy * dy;
|
|
5649
|
-
if (d2 < radius) {
|
|
5650
|
-
var d = Math.sqrt(radius = d2);
|
|
5651
|
-
x0 = x - d, y0 = y - d;
|
|
5652
|
-
x3 = x + d, y3 = y + d;
|
|
5653
|
-
data = node.data;
|
|
5654
|
-
}
|
|
5655
|
-
}
|
|
5656
|
-
}
|
|
5657
|
-
return data;
|
|
5658
|
-
}
|
|
5659
|
-
|
|
5660
|
-
// ../../node_modules/.bun/d3-quadtree@3.0.1/node_modules/d3-quadtree/src/remove.js
|
|
5661
|
-
function remove_default(d) {
|
|
5662
|
-
if (isNaN(x = +this._x.call(null, d)) || isNaN(y = +this._y.call(null, d))) return this;
|
|
5663
|
-
var parent, node = this._root, retainer, previous, next, x0 = this._x0, y0 = this._y0, x1 = this._x1, y1 = this._y1, x, y, xm, ym, right, bottom, i, j;
|
|
5664
|
-
if (!node) return this;
|
|
5665
|
-
if (node.length) while (true) {
|
|
5666
|
-
if (right = x >= (xm = (x0 + x1) / 2)) x0 = xm;
|
|
5667
|
-
else x1 = xm;
|
|
5668
|
-
if (bottom = y >= (ym = (y0 + y1) / 2)) y0 = ym;
|
|
5669
|
-
else y1 = ym;
|
|
5670
|
-
if (!(parent = node, node = node[i = bottom << 1 | right])) return this;
|
|
5671
|
-
if (!node.length) break;
|
|
5672
|
-
if (parent[i + 1 & 3] || parent[i + 2 & 3] || parent[i + 3 & 3]) retainer = parent, j = i;
|
|
5673
|
-
}
|
|
5674
|
-
while (node.data !== d) if (!(previous = node, node = node.next)) return this;
|
|
5675
|
-
if (next = node.next) delete node.next;
|
|
5676
|
-
if (previous) return next ? previous.next = next : delete previous.next, this;
|
|
5677
|
-
if (!parent) return this._root = next, this;
|
|
5678
|
-
next ? parent[i] = next : delete parent[i];
|
|
5679
|
-
if ((node = parent[0] || parent[1] || parent[2] || parent[3]) && node === (parent[3] || parent[2] || parent[1] || parent[0]) && !node.length) {
|
|
5680
|
-
if (retainer) retainer[j] = node;
|
|
5681
|
-
else this._root = node;
|
|
5682
|
-
}
|
|
5683
|
-
return this;
|
|
5684
|
-
}
|
|
5685
|
-
function removeAll(data) {
|
|
5686
|
-
for (var i = 0, n = data.length; i < n; ++i) this.remove(data[i]);
|
|
5687
|
-
return this;
|
|
5688
|
-
}
|
|
5689
|
-
|
|
5690
|
-
// ../../node_modules/.bun/d3-quadtree@3.0.1/node_modules/d3-quadtree/src/root.js
|
|
5691
|
-
function root_default() {
|
|
5692
|
-
return this._root;
|
|
5693
|
-
}
|
|
5694
|
-
|
|
5695
|
-
// ../../node_modules/.bun/d3-quadtree@3.0.1/node_modules/d3-quadtree/src/size.js
|
|
5696
|
-
function size_default() {
|
|
5697
|
-
var size = 0;
|
|
5698
|
-
this.visit(function(node) {
|
|
5699
|
-
if (!node.length) do
|
|
5700
|
-
++size;
|
|
5701
|
-
while (node = node.next);
|
|
5702
|
-
});
|
|
5703
|
-
return size;
|
|
5704
|
-
}
|
|
5705
|
-
|
|
5706
|
-
// ../../node_modules/.bun/d3-quadtree@3.0.1/node_modules/d3-quadtree/src/visit.js
|
|
5707
|
-
function visit_default(callback) {
|
|
5708
|
-
var quads = [], q, node = this._root, child, x0, y0, x1, y1;
|
|
5709
|
-
if (node) quads.push(new quad_default(node, this._x0, this._y0, this._x1, this._y1));
|
|
5710
|
-
while (q = quads.pop()) {
|
|
5711
|
-
if (!callback(node = q.node, x0 = q.x0, y0 = q.y0, x1 = q.x1, y1 = q.y1) && node.length) {
|
|
5712
|
-
var xm = (x0 + x1) / 2, ym = (y0 + y1) / 2;
|
|
5713
|
-
if (child = node[3]) quads.push(new quad_default(child, xm, ym, x1, y1));
|
|
5714
|
-
if (child = node[2]) quads.push(new quad_default(child, x0, ym, xm, y1));
|
|
5715
|
-
if (child = node[1]) quads.push(new quad_default(child, xm, y0, x1, ym));
|
|
5716
|
-
if (child = node[0]) quads.push(new quad_default(child, x0, y0, xm, ym));
|
|
5717
|
-
}
|
|
5718
|
-
}
|
|
5719
|
-
return this;
|
|
5720
|
-
}
|
|
5721
|
-
|
|
5722
|
-
// ../../node_modules/.bun/d3-quadtree@3.0.1/node_modules/d3-quadtree/src/visitAfter.js
|
|
5723
|
-
function visitAfter_default(callback) {
|
|
5724
|
-
var quads = [], next = [], q;
|
|
5725
|
-
if (this._root) quads.push(new quad_default(this._root, this._x0, this._y0, this._x1, this._y1));
|
|
5726
|
-
while (q = quads.pop()) {
|
|
5727
|
-
var node = q.node;
|
|
5728
|
-
if (node.length) {
|
|
5729
|
-
var child, x0 = q.x0, y0 = q.y0, x1 = q.x1, y1 = q.y1, xm = (x0 + x1) / 2, ym = (y0 + y1) / 2;
|
|
5730
|
-
if (child = node[0]) quads.push(new quad_default(child, x0, y0, xm, ym));
|
|
5731
|
-
if (child = node[1]) quads.push(new quad_default(child, xm, y0, x1, ym));
|
|
5732
|
-
if (child = node[2]) quads.push(new quad_default(child, x0, ym, xm, y1));
|
|
5733
|
-
if (child = node[3]) quads.push(new quad_default(child, xm, ym, x1, y1));
|
|
5734
|
-
}
|
|
5735
|
-
next.push(q);
|
|
5736
|
-
}
|
|
5737
|
-
while (q = next.pop()) {
|
|
5738
|
-
callback(q.node, q.x0, q.y0, q.x1, q.y1);
|
|
5739
|
-
}
|
|
5740
|
-
return this;
|
|
5741
|
-
}
|
|
5742
|
-
|
|
5743
|
-
// ../../node_modules/.bun/d3-quadtree@3.0.1/node_modules/d3-quadtree/src/x.js
|
|
5744
|
-
function defaultX(d) {
|
|
5745
|
-
return d[0];
|
|
5746
|
-
}
|
|
5747
|
-
function x_default(_) {
|
|
5748
|
-
return arguments.length ? (this._x = _, this) : this._x;
|
|
5749
|
-
}
|
|
5750
|
-
|
|
5751
|
-
// ../../node_modules/.bun/d3-quadtree@3.0.1/node_modules/d3-quadtree/src/y.js
|
|
5752
|
-
function defaultY(d) {
|
|
5753
|
-
return d[1];
|
|
5754
|
-
}
|
|
5755
|
-
function y_default(_) {
|
|
5756
|
-
return arguments.length ? (this._y = _, this) : this._y;
|
|
5757
|
-
}
|
|
5758
|
-
|
|
5759
|
-
// ../../node_modules/.bun/d3-quadtree@3.0.1/node_modules/d3-quadtree/src/quadtree.js
|
|
5760
|
-
function quadtree(nodes, x, y) {
|
|
5761
|
-
var tree = new Quadtree(x == null ? defaultX : x, y == null ? defaultY : y, NaN, NaN, NaN, NaN);
|
|
5762
|
-
return nodes == null ? tree : tree.addAll(nodes);
|
|
5763
|
-
}
|
|
5764
|
-
function Quadtree(x, y, x0, y0, x1, y1) {
|
|
5765
|
-
this._x = x;
|
|
5766
|
-
this._y = y;
|
|
5767
|
-
this._x0 = x0;
|
|
5768
|
-
this._y0 = y0;
|
|
5769
|
-
this._x1 = x1;
|
|
5770
|
-
this._y1 = y1;
|
|
5771
|
-
this._root = void 0;
|
|
5772
|
-
}
|
|
5773
|
-
function leaf_copy(leaf) {
|
|
5774
|
-
var copy = { data: leaf.data }, next = copy;
|
|
5775
|
-
while (leaf = leaf.next) next = next.next = { data: leaf.data };
|
|
5776
|
-
return copy;
|
|
5777
|
-
}
|
|
5778
|
-
var treeProto = quadtree.prototype = Quadtree.prototype;
|
|
5779
|
-
treeProto.copy = function() {
|
|
5780
|
-
var copy = new Quadtree(this._x, this._y, this._x0, this._y0, this._x1, this._y1), node = this._root, nodes, child;
|
|
5781
|
-
if (!node) return copy;
|
|
5782
|
-
if (!node.length) return copy._root = leaf_copy(node), copy;
|
|
5783
|
-
nodes = [{ source: node, target: copy._root = new Array(4) }];
|
|
5784
|
-
while (node = nodes.pop()) {
|
|
5785
|
-
for (var i = 0; i < 4; ++i) {
|
|
5786
|
-
if (child = node.source[i]) {
|
|
5787
|
-
if (child.length) nodes.push({ source: child, target: node.target[i] = new Array(4) });
|
|
5788
|
-
else node.target[i] = leaf_copy(child);
|
|
5789
|
-
}
|
|
5790
|
-
}
|
|
5791
|
-
}
|
|
5792
|
-
return copy;
|
|
5793
|
-
};
|
|
5794
|
-
treeProto.add = add_default;
|
|
5795
|
-
treeProto.addAll = addAll;
|
|
5796
|
-
treeProto.cover = cover_default;
|
|
5797
|
-
treeProto.data = data_default;
|
|
5798
|
-
treeProto.extent = extent_default;
|
|
5799
|
-
treeProto.find = find_default;
|
|
5800
|
-
treeProto.remove = remove_default;
|
|
5801
|
-
treeProto.removeAll = removeAll;
|
|
5802
|
-
treeProto.root = root_default;
|
|
5803
|
-
treeProto.size = size_default;
|
|
5804
|
-
treeProto.visit = visit_default;
|
|
5805
|
-
treeProto.visitAfter = visitAfter_default;
|
|
5806
|
-
treeProto.x = x_default;
|
|
5807
|
-
treeProto.y = y_default;
|
|
5808
|
-
|
|
5809
5149
|
// src/spatial-index.ts
|
|
5150
|
+
import { quadtree } from "d3-quadtree";
|
|
5810
5151
|
var SpatialIndex = class {
|
|
5811
5152
|
tree = null;
|
|
5812
5153
|
nodes = [];
|
|
@@ -6457,7 +5798,7 @@ function createChart(container, spec, options) {
|
|
|
6457
5798
|
let cleanupEditDrags = null;
|
|
6458
5799
|
let cleanupSelection = null;
|
|
6459
5800
|
let cleanupKeyboardEdit = null;
|
|
6460
|
-
let
|
|
5801
|
+
let srTableWrapper = null;
|
|
6461
5802
|
let destroyed = false;
|
|
6462
5803
|
let isDragging = false;
|
|
6463
5804
|
let pendingRender = false;
|
|
@@ -6917,9 +6258,9 @@ function createChart(container, spec, options) {
|
|
|
6917
6258
|
if (tooltipManager) {
|
|
6918
6259
|
tooltipManager.destroy();
|
|
6919
6260
|
}
|
|
6920
|
-
if (
|
|
6921
|
-
|
|
6922
|
-
|
|
6261
|
+
if (srTableWrapper?.parentNode) {
|
|
6262
|
+
srTableWrapper.parentNode.removeChild(srTableWrapper);
|
|
6263
|
+
srTableWrapper = null;
|
|
6923
6264
|
}
|
|
6924
6265
|
currentLayout = compile();
|
|
6925
6266
|
lastRenderedWidth = currentLayout.dimensions.width;
|
|
@@ -7042,7 +6383,7 @@ function createChart(container, spec, options) {
|
|
|
7042
6383
|
}
|
|
7043
6384
|
}
|
|
7044
6385
|
if (!currentLayout.a11y.hidden) {
|
|
7045
|
-
|
|
6386
|
+
srTableWrapper = createScreenReaderTable(currentLayout, container);
|
|
7046
6387
|
}
|
|
7047
6388
|
if (currentLayout.seriesSearch) {
|
|
7048
6389
|
if (!seriesSearch) {
|
|
@@ -7322,9 +6663,9 @@ function createChart(container, spec, options) {
|
|
|
7322
6663
|
svgElement.parentNode.removeChild(svgElement);
|
|
7323
6664
|
svgElement = null;
|
|
7324
6665
|
}
|
|
7325
|
-
if (
|
|
7326
|
-
|
|
7327
|
-
|
|
6666
|
+
if (srTableWrapper?.parentNode) {
|
|
6667
|
+
srTableWrapper.parentNode.removeChild(srTableWrapper);
|
|
6668
|
+
srTableWrapper = null;
|
|
7328
6669
|
}
|
|
7329
6670
|
container.classList.remove("oc-dark");
|
|
7330
6671
|
container.classList.remove("oc-root");
|
|
@@ -7890,6 +7231,7 @@ function renderMapSVG(layout, opts) {
|
|
|
7890
7231
|
}
|
|
7891
7232
|
|
|
7892
7233
|
// src/map-transition.ts
|
|
7234
|
+
import { interpolateRgb as interpolateRgb2 } from "d3-interpolate";
|
|
7893
7235
|
function numAttr(el, name) {
|
|
7894
7236
|
const raw = el.getAttribute(name);
|
|
7895
7237
|
if (raw === null) return void 0;
|
|
@@ -7947,7 +7289,7 @@ function runMapFillTransition(svg, prev, opts) {
|
|
|
7947
7289
|
const to = p.getAttribute("fill");
|
|
7948
7290
|
const from = key ? snapshot.fills.get(key) : void 0;
|
|
7949
7291
|
if (from && to && from !== to) {
|
|
7950
|
-
tweens.push({ kind: "fill", el: p, to, interp:
|
|
7292
|
+
tweens.push({ kind: "fill", el: p, to, interp: interpolateRgb2(from, to) });
|
|
7951
7293
|
p.setAttribute("fill", from);
|
|
7952
7294
|
}
|
|
7953
7295
|
}
|
|
@@ -7962,7 +7304,7 @@ function runMapFillTransition(svg, prev, opts) {
|
|
|
7962
7304
|
kind: "fill",
|
|
7963
7305
|
el: p,
|
|
7964
7306
|
to: toFill,
|
|
7965
|
-
interp:
|
|
7307
|
+
interp: interpolateRgb2(before.fill, toFill)
|
|
7966
7308
|
});
|
|
7967
7309
|
p.setAttribute("fill", before.fill);
|
|
7968
7310
|
}
|
|
@@ -8073,12 +7415,17 @@ function createGeoMap(container, spec, options) {
|
|
|
8073
7415
|
}
|
|
8074
7416
|
function wireTooltipAndInteraction(svg, layout) {
|
|
8075
7417
|
const cleanups = [];
|
|
7418
|
+
const featuresById = /* @__PURE__ */ new Map();
|
|
7419
|
+
for (const f of layout.features) {
|
|
7420
|
+
const key = String(f.id);
|
|
7421
|
+
if (!featuresById.has(key)) featuresById.set(key, f);
|
|
7422
|
+
}
|
|
8076
7423
|
const featureElements = svg.querySelectorAll(".oc-map-feature");
|
|
8077
7424
|
for (const el of featureElements) {
|
|
8078
7425
|
const featureId = el.getAttribute("data-feature-id");
|
|
8079
7426
|
if (!featureId) continue;
|
|
8080
7427
|
const content = layout.tooltipDescriptors.get(featureId);
|
|
8081
|
-
const feature =
|
|
7428
|
+
const feature = featuresById.get(featureId);
|
|
8082
7429
|
const handleMouseEnter = (e) => {
|
|
8083
7430
|
const mouseEvent = e;
|
|
8084
7431
|
el.style.setProperty("cursor", "pointer");
|
|
@@ -8524,8 +7871,8 @@ export {
|
|
|
8524
7871
|
createTooltipManager,
|
|
8525
7872
|
VECTOR_EXPORT_MAX_POINTS,
|
|
8526
7873
|
materializeCanvasModeSVG,
|
|
7874
|
+
applySrOnlyStyles,
|
|
8527
7875
|
AnimationScheduler,
|
|
8528
|
-
quadtree,
|
|
8529
7876
|
SpatialIndex,
|
|
8530
7877
|
clamp01,
|
|
8531
7878
|
lerp,
|
|
@@ -8533,7 +7880,6 @@ export {
|
|
|
8533
7880
|
prefersReducedMotion,
|
|
8534
7881
|
createTween,
|
|
8535
7882
|
createTextEditOverlay,
|
|
8536
|
-
zoom_default,
|
|
8537
7883
|
DEFAULT_UPDATE_MAX_MARKS,
|
|
8538
7884
|
CANVAS_DEFAULT_UPDATE_MAX_MARKS,
|
|
8539
7885
|
canTransitionSpecShape,
|
|
@@ -8552,4 +7898,4 @@ export {
|
|
|
8552
7898
|
scrubCamera,
|
|
8553
7899
|
createGeoMap
|
|
8554
7900
|
};
|
|
8555
|
-
//# sourceMappingURL=chunk-
|
|
7901
|
+
//# sourceMappingURL=chunk-BKN4R3J6.js.map
|