pace-chart-lib 1.0.50 → 1.0.51

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.
@@ -559,6 +559,27 @@ function keyof(value2) {
559
559
  function identity$8(x2) {
560
560
  return x2;
561
561
  }
562
+ function group(values, ...keys) {
563
+ return nest(values, identity$8, identity$8, keys);
564
+ }
565
+ function nest(values, map2, reduce, keys) {
566
+ return (function regroup(values2, i) {
567
+ if (i >= keys.length) return reduce(values2);
568
+ const groups = new InternMap();
569
+ const keyof2 = keys[i++];
570
+ let index2 = -1;
571
+ for (const value2 of values2) {
572
+ const key = keyof2(value2, ++index2, values2);
573
+ const group2 = groups.get(key);
574
+ if (group2) group2.push(value2);
575
+ else groups.set(key, [value2]);
576
+ }
577
+ for (const [key, values3] of groups) {
578
+ groups.set(key, regroup(values3, i));
579
+ }
580
+ return map2(groups);
581
+ })(values, 0);
582
+ }
562
583
  function compareDefined(compare = ascending$3) {
563
584
  if (compare === ascending$3) return ascendingDefined;
564
585
  if (typeof compare !== "function") throw new TypeError("compare is not a function");
@@ -1057,8 +1078,8 @@ function selector$2(selector2) {
1057
1078
  function selection_select$2(select2) {
1058
1079
  if (typeof select2 !== "function") select2 = selector$2(select2);
1059
1080
  for (var groups = this._groups, m = groups.length, subgroups = new Array(m), j = 0; j < m; ++j) {
1060
- for (var group = groups[j], n = group.length, subgroup = subgroups[j] = new Array(n), node, subnode, i = 0; i < n; ++i) {
1061
- if ((node = group[i]) && (subnode = select2.call(node, node.__data__, i, group))) {
1081
+ for (var group2 = groups[j], n = group2.length, subgroup = subgroups[j] = new Array(n), node, subnode, i = 0; i < n; ++i) {
1082
+ if ((node = group2[i]) && (subnode = select2.call(node, node.__data__, i, group2))) {
1062
1083
  if ("__data__" in node) subnode.__data__ = node.__data__;
1063
1084
  subgroup[i] = subnode;
1064
1085
  }
@@ -1086,9 +1107,9 @@ function selection_selectAll$2(select2) {
1086
1107
  if (typeof select2 === "function") select2 = arrayAll(select2);
1087
1108
  else select2 = selectorAll$2(select2);
1088
1109
  for (var groups = this._groups, m = groups.length, subgroups = [], parents = [], j = 0; j < m; ++j) {
1089
- for (var group = groups[j], n = group.length, node, i = 0; i < n; ++i) {
1090
- if (node = group[i]) {
1091
- subgroups.push(select2.call(node, node.__data__, i, group));
1110
+ for (var group2 = groups[j], n = group2.length, node, i = 0; i < n; ++i) {
1111
+ if (node = group2[i]) {
1112
+ subgroups.push(select2.call(node, node.__data__, i, group2));
1092
1113
  parents.push(node);
1093
1114
  }
1094
1115
  }
@@ -1132,8 +1153,8 @@ function selection_selectChildren(match) {
1132
1153
  function selection_filter$2(match) {
1133
1154
  if (typeof match !== "function") match = matcher$2(match);
1134
1155
  for (var groups = this._groups, m = groups.length, subgroups = new Array(m), j = 0; j < m; ++j) {
1135
- for (var group = groups[j], n = group.length, subgroup = subgroups[j] = [], node, i = 0; i < n; ++i) {
1136
- if ((node = group[i]) && match.call(node, node.__data__, i, group)) {
1156
+ for (var group2 = groups[j], n = group2.length, subgroup = subgroups[j] = [], node, i = 0; i < n; ++i) {
1157
+ if ((node = group2[i]) && match.call(node, node.__data__, i, group2)) {
1137
1158
  subgroup.push(node);
1138
1159
  }
1139
1160
  }
@@ -1173,10 +1194,10 @@ function constant$b(x2) {
1173
1194
  return x2;
1174
1195
  };
1175
1196
  }
1176
- function bindIndex$2(parent, group, enter, update, exit, data) {
1177
- var i = 0, node, groupLength = group.length, dataLength = data.length;
1197
+ function bindIndex$2(parent, group2, enter, update, exit, data) {
1198
+ var i = 0, node, groupLength = group2.length, dataLength = data.length;
1178
1199
  for (; i < dataLength; ++i) {
1179
- if (node = group[i]) {
1200
+ if (node = group2[i]) {
1180
1201
  node.__data__ = data[i];
1181
1202
  update[i] = node;
1182
1203
  } else {
@@ -1184,16 +1205,16 @@ function bindIndex$2(parent, group, enter, update, exit, data) {
1184
1205
  }
1185
1206
  }
1186
1207
  for (; i < groupLength; ++i) {
1187
- if (node = group[i]) {
1208
+ if (node = group2[i]) {
1188
1209
  exit[i] = node;
1189
1210
  }
1190
1211
  }
1191
1212
  }
1192
- function bindKey$2(parent, group, enter, update, exit, data, key) {
1193
- var i, node, nodeByKeyValue = /* @__PURE__ */ new Map(), groupLength = group.length, dataLength = data.length, keyValues = new Array(groupLength), keyValue;
1213
+ function bindKey$2(parent, group2, enter, update, exit, data, key) {
1214
+ var i, node, nodeByKeyValue = /* @__PURE__ */ new Map(), groupLength = group2.length, dataLength = data.length, keyValues = new Array(groupLength), keyValue;
1194
1215
  for (i = 0; i < groupLength; ++i) {
1195
- if (node = group[i]) {
1196
- keyValues[i] = keyValue = key.call(node, node.__data__, i, group) + "";
1216
+ if (node = group2[i]) {
1217
+ keyValues[i] = keyValue = key.call(node, node.__data__, i, group2) + "";
1197
1218
  if (nodeByKeyValue.has(keyValue)) {
1198
1219
  exit[i] = node;
1199
1220
  } else {
@@ -1212,7 +1233,7 @@ function bindKey$2(parent, group, enter, update, exit, data, key) {
1212
1233
  }
1213
1234
  }
1214
1235
  for (i = 0; i < groupLength; ++i) {
1215
- if ((node = group[i]) && nodeByKeyValue.get(keyValues[i]) === node) {
1236
+ if ((node = group2[i]) && nodeByKeyValue.get(keyValues[i]) === node) {
1216
1237
  exit[i] = node;
1217
1238
  }
1218
1239
  }
@@ -1225,8 +1246,8 @@ function selection_data$2(value2, key) {
1225
1246
  var bind = key ? bindKey$2 : bindIndex$2, parents = this._parents, groups = this._groups;
1226
1247
  if (typeof value2 !== "function") value2 = constant$b(value2);
1227
1248
  for (var m = groups.length, update = new Array(m), enter = new Array(m), exit = new Array(m), j = 0; j < m; ++j) {
1228
- var parent = parents[j], group = groups[j], groupLength = group.length, data = arraylike(value2.call(parent, parent && parent.__data__, j, parents)), dataLength = data.length, enterGroup = enter[j] = new Array(dataLength), updateGroup = update[j] = new Array(dataLength), exitGroup = exit[j] = new Array(groupLength);
1229
- bind(parent, group, enterGroup, updateGroup, exitGroup, data, key);
1249
+ var parent = parents[j], group2 = groups[j], groupLength = group2.length, data = arraylike(value2.call(parent, parent && parent.__data__, j, parents)), dataLength = data.length, enterGroup = enter[j] = new Array(dataLength), updateGroup = update[j] = new Array(dataLength), exitGroup = exit[j] = new Array(groupLength);
1250
+ bind(parent, group2, enterGroup, updateGroup, exitGroup, data, key);
1230
1251
  for (var i0 = 0, i1 = 0, previous, next; i0 < dataLength; ++i0) {
1231
1252
  if (previous = enterGroup[i0]) {
1232
1253
  if (i0 >= i1) i1 = i0 + 1;
@@ -1278,8 +1299,8 @@ function selection_merge$2(context) {
1278
1299
  }
1279
1300
  function selection_order$2() {
1280
1301
  for (var groups = this._groups, j = -1, m = groups.length; ++j < m; ) {
1281
- for (var group = groups[j], i = group.length - 1, next = group[i], node; --i >= 0; ) {
1282
- if (node = group[i]) {
1302
+ for (var group2 = groups[j], i = group2.length - 1, next = group2[i], node; --i >= 0; ) {
1303
+ if (node = group2[i]) {
1283
1304
  if (next && node.compareDocumentPosition(next) ^ 4) next.parentNode.insertBefore(node, next);
1284
1305
  next = node;
1285
1306
  }
@@ -1293,8 +1314,8 @@ function selection_sort$2(compare) {
1293
1314
  return a2 && b ? compare(a2.__data__, b.__data__) : !a2 - !b;
1294
1315
  }
1295
1316
  for (var groups = this._groups, m = groups.length, sortgroups = new Array(m), j = 0; j < m; ++j) {
1296
- for (var group = groups[j], n = group.length, sortgroup = sortgroups[j] = new Array(n), node, i = 0; i < n; ++i) {
1297
- if (node = group[i]) {
1317
+ for (var group2 = groups[j], n = group2.length, sortgroup = sortgroups[j] = new Array(n), node, i = 0; i < n; ++i) {
1318
+ if (node = group2[i]) {
1298
1319
  sortgroup[i] = node;
1299
1320
  }
1300
1321
  }
@@ -1316,8 +1337,8 @@ function selection_nodes$2() {
1316
1337
  }
1317
1338
  function selection_node$2() {
1318
1339
  for (var groups = this._groups, j = 0, m = groups.length; j < m; ++j) {
1319
- for (var group = groups[j], i = 0, n = group.length; i < n; ++i) {
1320
- var node = group[i];
1340
+ for (var group2 = groups[j], i = 0, n = group2.length; i < n; ++i) {
1341
+ var node = group2[i];
1321
1342
  if (node) return node;
1322
1343
  }
1323
1344
  }
@@ -1333,8 +1354,8 @@ function selection_empty$2() {
1333
1354
  }
1334
1355
  function selection_each$2(callback) {
1335
1356
  for (var groups = this._groups, j = 0, m = groups.length; j < m; ++j) {
1336
- for (var group = groups[j], i = 0, n = group.length, node; i < n; ++i) {
1337
- if (node = group[i]) callback.call(node, node.__data__, i, group);
1357
+ for (var group2 = groups[j], i = 0, n = group2.length, node; i < n; ++i) {
1358
+ if (node = group2[i]) callback.call(node, node.__data__, i, group2);
1338
1359
  }
1339
1360
  }
1340
1361
  return this;
@@ -1657,8 +1678,8 @@ function selection_dispatch$2(type, params) {
1657
1678
  }
1658
1679
  function* selection_iterator() {
1659
1680
  for (var groups = this._groups, j = 0, m = groups.length; j < m; ++j) {
1660
- for (var group = groups[j], i = 0, n = group.length, node; i < n; ++i) {
1661
- if (node = group[i]) yield node;
1681
+ for (var group2 = groups[j], i = 0, n = group2.length, node; i < n; ++i) {
1682
+ if (node = group2[i]) yield node;
1662
1683
  }
1663
1684
  }
1664
1685
  }
@@ -2751,7 +2772,7 @@ var STARTED$1 = 3;
2751
2772
  var RUNNING$1 = 4;
2752
2773
  var ENDING$1 = 5;
2753
2774
  var ENDED$1 = 6;
2754
- function schedule$1(node, name, id2, index2, group, timing) {
2775
+ function schedule$1(node, name, id2, index2, group2, timing) {
2755
2776
  var schedules = node.__transition;
2756
2777
  if (!schedules) node.__transition = {};
2757
2778
  else if (id2 in schedules) return;
@@ -2759,7 +2780,7 @@ function schedule$1(node, name, id2, index2, group, timing) {
2759
2780
  name,
2760
2781
  index: index2,
2761
2782
  // For context during callback.
2762
- group,
2783
+ group: group2,
2763
2784
  // For context during callback.
2764
2785
  on: emptyOn$1,
2765
2786
  tween: emptyTween$1,
@@ -3074,8 +3095,8 @@ function transition_easeVarying(value2) {
3074
3095
  function transition_filter$1(match) {
3075
3096
  if (typeof match !== "function") match = matcher$2(match);
3076
3097
  for (var groups = this._groups, m = groups.length, subgroups = new Array(m), j = 0; j < m; ++j) {
3077
- for (var group = groups[j], n = group.length, subgroup = subgroups[j] = [], node, i = 0; i < n; ++i) {
3078
- if ((node = group[i]) && match.call(node, node.__data__, i, group)) {
3098
+ for (var group2 = groups[j], n = group2.length, subgroup = subgroups[j] = [], node, i = 0; i < n; ++i) {
3099
+ if ((node = group2[i]) && match.call(node, node.__data__, i, group2)) {
3079
3100
  subgroup.push(node);
3080
3101
  }
3081
3102
  }
@@ -3129,8 +3150,8 @@ function transition_select$1(select2) {
3129
3150
  var name = this._name, id2 = this._id;
3130
3151
  if (typeof select2 !== "function") select2 = selector$2(select2);
3131
3152
  for (var groups = this._groups, m = groups.length, subgroups = new Array(m), j = 0; j < m; ++j) {
3132
- for (var group = groups[j], n = group.length, subgroup = subgroups[j] = new Array(n), node, subnode, i = 0; i < n; ++i) {
3133
- if ((node = group[i]) && (subnode = select2.call(node, node.__data__, i, group))) {
3153
+ for (var group2 = groups[j], n = group2.length, subgroup = subgroups[j] = new Array(n), node, subnode, i = 0; i < n; ++i) {
3154
+ if ((node = group2[i]) && (subnode = select2.call(node, node.__data__, i, group2))) {
3134
3155
  if ("__data__" in node) subnode.__data__ = node.__data__;
3135
3156
  subgroup[i] = subnode;
3136
3157
  schedule$1(subgroup[i], name, id2, i, subgroup, get$5(node, id2));
@@ -3143,9 +3164,9 @@ function transition_selectAll$1(select2) {
3143
3164
  var name = this._name, id2 = this._id;
3144
3165
  if (typeof select2 !== "function") select2 = selectorAll$2(select2);
3145
3166
  for (var groups = this._groups, m = groups.length, subgroups = [], parents = [], j = 0; j < m; ++j) {
3146
- for (var group = groups[j], n = group.length, node, i = 0; i < n; ++i) {
3147
- if (node = group[i]) {
3148
- for (var children2 = select2.call(node, node.__data__, i, group), child, inherit2 = get$5(node, id2), k2 = 0, l = children2.length; k2 < l; ++k2) {
3167
+ for (var group2 = groups[j], n = group2.length, node, i = 0; i < n; ++i) {
3168
+ if (node = group2[i]) {
3169
+ for (var children2 = select2.call(node, node.__data__, i, group2), child, inherit2 = get$5(node, id2), k2 = 0, l = children2.length; k2 < l; ++k2) {
3149
3170
  if (child = children2[k2]) {
3150
3171
  schedule$1(child, name, id2, k2, children2, inherit2);
3151
3172
  }
@@ -3261,10 +3282,10 @@ function transition_textTween$1(value2) {
3261
3282
  function transition_transition$1() {
3262
3283
  var name = this._name, id0 = this._id, id1 = newId$1();
3263
3284
  for (var groups = this._groups, m = groups.length, j = 0; j < m; ++j) {
3264
- for (var group = groups[j], n = group.length, node, i = 0; i < n; ++i) {
3265
- if (node = group[i]) {
3285
+ for (var group2 = groups[j], n = group2.length, node, i = 0; i < n; ++i) {
3286
+ if (node = group2[i]) {
3266
3287
  var inherit2 = get$5(node, id0);
3267
- schedule$1(node, name, id1, i, group, {
3288
+ schedule$1(node, name, id1, i, group2, {
3268
3289
  time: inherit2.time + inherit2.delay + inherit2.duration,
3269
3290
  delay: 0,
3270
3291
  duration: inherit2.duration,
@@ -3407,9 +3428,9 @@ function selection_transition$1(name) {
3407
3428
  id2 = newId$1(), (timing = defaultTiming$1).time = now$1(), name = name == null ? null : name + "";
3408
3429
  }
3409
3430
  for (var groups = this._groups, m = groups.length, j = 0; j < m; ++j) {
3410
- for (var group = groups[j], n = group.length, node, i = 0; i < n; ++i) {
3411
- if (node = group[i]) {
3412
- schedule$1(node, name, id2, i, group, timing || inherit$1(node, id2));
3431
+ for (var group2 = groups[j], n = group2.length, node, i = 0; i < n; ++i) {
3432
+ if (node = group2[i]) {
3433
+ schedule$1(node, name, id2, i, group2, timing || inherit$1(node, id2));
3413
3434
  }
3414
3435
  }
3415
3436
  }
@@ -3619,7 +3640,7 @@ function identity$5(x2) {
3619
3640
  }
3620
3641
  var map = Array.prototype.map, prefixes = ["y", "z", "a", "f", "p", "n", "µ", "m", "", "k", "M", "G", "T", "P", "E", "Z", "Y"];
3621
3642
  function formatLocale(locale2) {
3622
- var group = locale2.grouping === void 0 || locale2.thousands === void 0 ? identity$5 : formatGroup(map.call(locale2.grouping, Number), locale2.thousands + ""), currencyPrefix = locale2.currency === void 0 ? "" : locale2.currency[0] + "", currencySuffix = locale2.currency === void 0 ? "" : locale2.currency[1] + "", decimal = locale2.decimal === void 0 ? "." : locale2.decimal + "", numerals = locale2.numerals === void 0 ? identity$5 : formatNumerals(map.call(locale2.numerals, String)), percent = locale2.percent === void 0 ? "%" : locale2.percent + "", minus = locale2.minus === void 0 ? "−" : locale2.minus + "", nan = locale2.nan === void 0 ? "NaN" : locale2.nan + "";
3643
+ var group2 = locale2.grouping === void 0 || locale2.thousands === void 0 ? identity$5 : formatGroup(map.call(locale2.grouping, Number), locale2.thousands + ""), currencyPrefix = locale2.currency === void 0 ? "" : locale2.currency[0] + "", currencySuffix = locale2.currency === void 0 ? "" : locale2.currency[1] + "", decimal = locale2.decimal === void 0 ? "." : locale2.decimal + "", numerals = locale2.numerals === void 0 ? identity$5 : formatNumerals(map.call(locale2.numerals, String)), percent = locale2.percent === void 0 ? "%" : locale2.percent + "", minus = locale2.minus === void 0 ? "−" : locale2.minus + "", nan = locale2.nan === void 0 ? "NaN" : locale2.nan + "";
3623
3644
  function newFormat(specifier) {
3624
3645
  specifier = formatSpecifier(specifier);
3625
3646
  var fill = specifier.fill, align = specifier.align, sign2 = specifier.sign, symbol = specifier.symbol, zero2 = specifier.zero, width = specifier.width, comma = specifier.comma, precision = specifier.precision, trim = specifier.trim, type = specifier.type;
@@ -3653,9 +3674,9 @@ function formatLocale(locale2) {
3653
3674
  }
3654
3675
  }
3655
3676
  }
3656
- if (comma && !zero2) value2 = group(value2, Infinity);
3677
+ if (comma && !zero2) value2 = group2(value2, Infinity);
3657
3678
  var length = valuePrefix.length + value2.length + valueSuffix.length, padding = length < width ? new Array(width - length + 1).join(fill) : "";
3658
- if (comma && zero2) value2 = group(padding + value2, padding.length ? width - valueSuffix.length : Infinity), padding = "";
3679
+ if (comma && zero2) value2 = group2(padding + value2, padding.length ? width - valueSuffix.length : Infinity), padding = "";
3659
3680
  switch (align) {
3660
3681
  case "<":
3661
3682
  value2 = valuePrefix + value2 + valueSuffix + padding;
@@ -7331,8 +7352,8 @@ function selector$1(selector2) {
7331
7352
  function selection_select$1(select2) {
7332
7353
  if (typeof select2 !== "function") select2 = selector$1(select2);
7333
7354
  for (var groups = this._groups, m = groups.length, subgroups = new Array(m), j = 0; j < m; ++j) {
7334
- for (var group = groups[j], n = group.length, subgroup = subgroups[j] = new Array(n), node, subnode, i = 0; i < n; ++i) {
7335
- if ((node = group[i]) && (subnode = select2.call(node, node.__data__, i, group))) {
7355
+ for (var group2 = groups[j], n = group2.length, subgroup = subgroups[j] = new Array(n), node, subnode, i = 0; i < n; ++i) {
7356
+ if ((node = group2[i]) && (subnode = select2.call(node, node.__data__, i, group2))) {
7336
7357
  if ("__data__" in node) subnode.__data__ = node.__data__;
7337
7358
  subgroup[i] = subnode;
7338
7359
  }
@@ -7351,9 +7372,9 @@ function selectorAll$1(selector2) {
7351
7372
  function selection_selectAll$1(select2) {
7352
7373
  if (typeof select2 !== "function") select2 = selectorAll$1(select2);
7353
7374
  for (var groups = this._groups, m = groups.length, subgroups = [], parents = [], j = 0; j < m; ++j) {
7354
- for (var group = groups[j], n = group.length, node, i = 0; i < n; ++i) {
7355
- if (node = group[i]) {
7356
- subgroups.push(select2.call(node, node.__data__, i, group));
7375
+ for (var group2 = groups[j], n = group2.length, node, i = 0; i < n; ++i) {
7376
+ if (node = group2[i]) {
7377
+ subgroups.push(select2.call(node, node.__data__, i, group2));
7357
7378
  parents.push(node);
7358
7379
  }
7359
7380
  }
@@ -7368,8 +7389,8 @@ function matcher$1(selector2) {
7368
7389
  function selection_filter$1(match) {
7369
7390
  if (typeof match !== "function") match = matcher$1(match);
7370
7391
  for (var groups = this._groups, m = groups.length, subgroups = new Array(m), j = 0; j < m; ++j) {
7371
- for (var group = groups[j], n = group.length, subgroup = subgroups[j] = [], node, i = 0; i < n; ++i) {
7372
- if ((node = group[i]) && match.call(node, node.__data__, i, group)) {
7392
+ for (var group2 = groups[j], n = group2.length, subgroup = subgroups[j] = [], node, i = 0; i < n; ++i) {
7393
+ if ((node = group2[i]) && match.call(node, node.__data__, i, group2)) {
7373
7394
  subgroup.push(node);
7374
7395
  }
7375
7396
  }
@@ -7410,10 +7431,10 @@ function constant$5(x2) {
7410
7431
  };
7411
7432
  }
7412
7433
  var keyPrefix$1 = "$";
7413
- function bindIndex$1(parent, group, enter, update, exit, data) {
7414
- var i = 0, node, groupLength = group.length, dataLength = data.length;
7434
+ function bindIndex$1(parent, group2, enter, update, exit, data) {
7435
+ var i = 0, node, groupLength = group2.length, dataLength = data.length;
7415
7436
  for (; i < dataLength; ++i) {
7416
- if (node = group[i]) {
7437
+ if (node = group2[i]) {
7417
7438
  node.__data__ = data[i];
7418
7439
  update[i] = node;
7419
7440
  } else {
@@ -7421,16 +7442,16 @@ function bindIndex$1(parent, group, enter, update, exit, data) {
7421
7442
  }
7422
7443
  }
7423
7444
  for (; i < groupLength; ++i) {
7424
- if (node = group[i]) {
7445
+ if (node = group2[i]) {
7425
7446
  exit[i] = node;
7426
7447
  }
7427
7448
  }
7428
7449
  }
7429
- function bindKey$1(parent, group, enter, update, exit, data, key) {
7430
- var i, node, nodeByKeyValue = {}, groupLength = group.length, dataLength = data.length, keyValues = new Array(groupLength), keyValue;
7450
+ function bindKey$1(parent, group2, enter, update, exit, data, key) {
7451
+ var i, node, nodeByKeyValue = {}, groupLength = group2.length, dataLength = data.length, keyValues = new Array(groupLength), keyValue;
7431
7452
  for (i = 0; i < groupLength; ++i) {
7432
- if (node = group[i]) {
7433
- keyValues[i] = keyValue = keyPrefix$1 + key.call(node, node.__data__, i, group);
7453
+ if (node = group2[i]) {
7454
+ keyValues[i] = keyValue = keyPrefix$1 + key.call(node, node.__data__, i, group2);
7434
7455
  if (keyValue in nodeByKeyValue) {
7435
7456
  exit[i] = node;
7436
7457
  } else {
@@ -7449,7 +7470,7 @@ function bindKey$1(parent, group, enter, update, exit, data, key) {
7449
7470
  }
7450
7471
  }
7451
7472
  for (i = 0; i < groupLength; ++i) {
7452
- if ((node = group[i]) && nodeByKeyValue[keyValues[i]] === node) {
7473
+ if ((node = group2[i]) && nodeByKeyValue[keyValues[i]] === node) {
7453
7474
  exit[i] = node;
7454
7475
  }
7455
7476
  }
@@ -7465,8 +7486,8 @@ function selection_data$1(value2, key) {
7465
7486
  var bind = key ? bindKey$1 : bindIndex$1, parents = this._parents, groups = this._groups;
7466
7487
  if (typeof value2 !== "function") value2 = constant$5(value2);
7467
7488
  for (var m = groups.length, update = new Array(m), enter = new Array(m), exit = new Array(m), j = 0; j < m; ++j) {
7468
- var parent = parents[j], group = groups[j], groupLength = group.length, data = value2.call(parent, parent && parent.__data__, j, parents), dataLength = data.length, enterGroup = enter[j] = new Array(dataLength), updateGroup = update[j] = new Array(dataLength), exitGroup = exit[j] = new Array(groupLength);
7469
- bind(parent, group, enterGroup, updateGroup, exitGroup, data, key);
7489
+ var parent = parents[j], group2 = groups[j], groupLength = group2.length, data = value2.call(parent, parent && parent.__data__, j, parents), dataLength = data.length, enterGroup = enter[j] = new Array(dataLength), updateGroup = update[j] = new Array(dataLength), exitGroup = exit[j] = new Array(groupLength);
7490
+ bind(parent, group2, enterGroup, updateGroup, exitGroup, data, key);
7470
7491
  for (var i0 = 0, i1 = 0, previous, next; i0 < dataLength; ++i0) {
7471
7492
  if (previous = enterGroup[i0]) {
7472
7493
  if (i0 >= i1) i1 = i0 + 1;
@@ -7506,8 +7527,8 @@ function selection_merge$1(selection2) {
7506
7527
  }
7507
7528
  function selection_order$1() {
7508
7529
  for (var groups = this._groups, j = -1, m = groups.length; ++j < m; ) {
7509
- for (var group = groups[j], i = group.length - 1, next = group[i], node; --i >= 0; ) {
7510
- if (node = group[i]) {
7530
+ for (var group2 = groups[j], i = group2.length - 1, next = group2[i], node; --i >= 0; ) {
7531
+ if (node = group2[i]) {
7511
7532
  if (next && node.compareDocumentPosition(next) ^ 4) next.parentNode.insertBefore(node, next);
7512
7533
  next = node;
7513
7534
  }
@@ -7521,8 +7542,8 @@ function selection_sort$1(compare) {
7521
7542
  return a2 && b ? compare(a2.__data__, b.__data__) : !a2 - !b;
7522
7543
  }
7523
7544
  for (var groups = this._groups, m = groups.length, sortgroups = new Array(m), j = 0; j < m; ++j) {
7524
- for (var group = groups[j], n = group.length, sortgroup = sortgroups[j] = new Array(n), node, i = 0; i < n; ++i) {
7525
- if (node = group[i]) {
7545
+ for (var group2 = groups[j], n = group2.length, sortgroup = sortgroups[j] = new Array(n), node, i = 0; i < n; ++i) {
7546
+ if (node = group2[i]) {
7526
7547
  sortgroup[i] = node;
7527
7548
  }
7528
7549
  }
@@ -7548,8 +7569,8 @@ function selection_nodes$1() {
7548
7569
  }
7549
7570
  function selection_node$1() {
7550
7571
  for (var groups = this._groups, j = 0, m = groups.length; j < m; ++j) {
7551
- for (var group = groups[j], i = 0, n = group.length; i < n; ++i) {
7552
- var node = group[i];
7572
+ for (var group2 = groups[j], i = 0, n = group2.length; i < n; ++i) {
7573
+ var node = group2[i];
7553
7574
  if (node) return node;
7554
7575
  }
7555
7576
  }
@@ -7567,8 +7588,8 @@ function selection_empty$1() {
7567
7588
  }
7568
7589
  function selection_each$1(callback) {
7569
7590
  for (var groups = this._groups, j = 0, m = groups.length; j < m; ++j) {
7570
- for (var group = groups[j], i = 0, n = group.length, node; i < n; ++i) {
7571
- if (node = group[i]) callback.call(node, node.__data__, i, group);
7591
+ for (var group2 = groups[j], i = 0, n = group2.length, node; i < n; ++i) {
7592
+ if (node = group2[i]) callback.call(node, node.__data__, i, group2);
7572
7593
  }
7573
7594
  }
7574
7595
  return this;
@@ -7810,8 +7831,8 @@ if (typeof document !== "undefined") {
7810
7831
  filterEvents$1 = { mouseenter: "mouseover", mouseleave: "mouseout" };
7811
7832
  }
7812
7833
  }
7813
- function filterContextListener$1(listener, index2, group) {
7814
- listener = contextListener$1(listener, index2, group);
7834
+ function filterContextListener$1(listener, index2, group2) {
7835
+ listener = contextListener$1(listener, index2, group2);
7815
7836
  return function(event2) {
7816
7837
  var related = event2.relatedTarget;
7817
7838
  if (!related || related !== this && !(related.compareDocumentPosition(this) & 8)) {
@@ -7819,12 +7840,12 @@ function filterContextListener$1(listener, index2, group) {
7819
7840
  }
7820
7841
  };
7821
7842
  }
7822
- function contextListener$1(listener, index2, group) {
7843
+ function contextListener$1(listener, index2, group2) {
7823
7844
  return function(event1) {
7824
7845
  var event0 = event;
7825
7846
  event = event1;
7826
7847
  try {
7827
- listener.call(this, this.__data__, index2, group);
7848
+ listener.call(this, this.__data__, index2, group2);
7828
7849
  } finally {
7829
7850
  event = event0;
7830
7851
  }
@@ -7854,8 +7875,8 @@ function onRemove$1(typename) {
7854
7875
  }
7855
7876
  function onAdd$1(typename, value2, capture) {
7856
7877
  var wrap3 = filterEvents$1.hasOwnProperty(typename.type) ? filterContextListener$1 : contextListener$1;
7857
- return function(d, i, group) {
7858
- var on = this.__on, o, listener = wrap3(value2, i, group);
7878
+ return function(d, i, group2) {
7879
+ var on = this.__on, o, listener = wrap3(value2, i, group2);
7859
7880
  if (on) for (var j = 0, m = on.length; j < m; ++j) {
7860
7881
  if ((o = on[j]).type === typename.type && o.name === typename.name) {
7861
7882
  this.removeEventListener(o.type, o.listener, o.capture);
@@ -9471,8 +9492,8 @@ var circleHandles = function circleHandles2(_ref2) {
9471
9492
  return h;
9472
9493
  };
9473
9494
  var addHandles = function addHandles2(_ref5) {
9474
- var group = _ref5.group, handles = _ref5.handles, _ref5$r = _ref5.r, r = _ref5$r === void 0 ? 10 : _ref5$r;
9475
- var h = group.selectAll("circle.handle").data(handles);
9495
+ var group2 = _ref5.group, handles = _ref5.handles, _ref5$r = _ref5.r, r = _ref5$r === void 0 ? 10 : _ref5$r;
9496
+ var h = group2.selectAll("circle.handle").data(handles);
9476
9497
  h.enter().append("circle").attr("class", "handle").attr("fill", "grey").attr("fill-opacity", 0.1).attr("cursor", "move").attr("stroke-dasharray", 5).attr("stroke", "grey").call(drag().container(select$1("g.annotations").node()).on("start", function(d) {
9477
9498
  return d.start && d.start(d);
9478
9499
  }).on("drag", function(d) {
@@ -9480,7 +9501,7 @@ var addHandles = function addHandles2(_ref5) {
9480
9501
  }).on("end", function(d) {
9481
9502
  return d.end && d.end(d);
9482
9503
  }));
9483
- group.selectAll("circle.handle").attr("cx", function(d) {
9504
+ group2.selectAll("circle.handle").attr("cx", function(d) {
9484
9505
  return d.x;
9485
9506
  }).attr("cy", function(d) {
9486
9507
  return d.y;
@@ -10496,9 +10517,9 @@ var d3XYThreshold = customType(ThresholdMap, {
10496
10517
  subject: { type: "threshold" }
10497
10518
  });
10498
10519
  var newWithClass = function newWithClass2(a2, d, type, className, classID) {
10499
- var group = a2.selectAll(type + "." + (classID || className)).data(d);
10500
- group.enter().append(type).merge(group).attr("class", className);
10501
- group.exit().remove();
10520
+ var group2 = a2.selectAll(type + "." + (classID || className)).data(d);
10521
+ group2.enter().append(type).merge(group2).attr("class", className);
10522
+ group2.exit().remove();
10502
10523
  return a2;
10503
10524
  };
10504
10525
  var addHandlers = function addHandlers2(dispatcher, annotation2, _ref3) {
@@ -10571,9 +10592,9 @@ function annotation() {
10571
10592
  });
10572
10593
  var annotationG = selection2.selectAll("g").data([collection]);
10573
10594
  annotationG.enter().append("g").attr("class", "annotations");
10574
- var group = selection2.select("g.annotations");
10575
- newWithClass(group, collection.annotations, "g", "annotation");
10576
- var annotation4 = group.selectAll("g.annotation");
10595
+ var group2 = selection2.select("g.annotations");
10596
+ newWithClass(group2, collection.annotations, "g", "annotation");
10597
+ var annotation4 = group2.selectAll("g.annotation");
10577
10598
  annotation4.each(function(d) {
10578
10599
  var a2 = select$1(this);
10579
10600
  a2.attr("class", "annotation");
@@ -11577,7 +11598,7 @@ var chartTypes = /* @__PURE__ */ ((chartTypes2) => {
11577
11598
  chartTypes2["CombinationArea"] = "CombinationArea";
11578
11599
  chartTypes2["CombinationStackArea"] = "CombinationStackArea";
11579
11600
  chartTypes2["TornadoDefaultEntry"] = "defaultEntry";
11580
- chartTypes2["ClevelandDotPlot"] = "ClevelandDotPlot";
11601
+ chartTypes2["DotPlot"] = "DotPlot";
11581
11602
  return chartTypes2;
11582
11603
  })(chartTypes || {});
11583
11604
  const connecterCurve = {
@@ -13374,7 +13395,8 @@ function commonAnnotations(chartData, xScale, yScaleLeft, yScaleRight, margin, d
13374
13395
  } else {
13375
13396
  if (barChart) {
13376
13397
  const legendUniqueId = d.legendUniqueId.includes("~$~") ? d.legendUniqueId.split("~$~")[0] : d.legendUniqueId;
13377
- return isTornadoChart ? xScaleForLegends(d.y) + xScaleForLegends.bandwidth() / 2 : xScaleForLegends ? xScale(d.y) + xScaleForLegends(legendUniqueId) - (columnWidth - xScaleForLegends.bandwidth()) / 2 - 5 : xScale(d.y) - 5;
13398
+ const xScaleLegend = chartType !== chartTypes.DotPlot ? xScaleForLegends(legendUniqueId) : 0;
13399
+ return isTornadoChart ? xScaleForLegends(d.y) + xScaleForLegends.bandwidth() / 2 : xScaleForLegends ? xScale(d.y) + xScaleLegend - (columnWidth - xScaleForLegends.bandwidth()) / 2 - 5 : xScale(d.y) - 5;
13378
13400
  } else
13379
13401
  return dataLabelsPosition(
13380
13402
  d.y.measure,
@@ -16071,9 +16093,6 @@ function calculateMaxLegendWidth(list, formatOptions) {
16071
16093
  }
16072
16094
  function lineMarkers(lines, chartData, type, xScale, yScale, yScaleRight, tooltipHandle, formatOptions, chartJSON, secondaryCustomYaxisMaxValue, secondaryCustomYaxisMinValue, customYaxisMinValue, customYaxisMaxValue, isNormalizedChart) {
16073
16095
  try {
16074
- let Markershapes = function(Shape) {
16075
- return Shape == "Square" ? square : Shape == "Circle" ? circle : Shape == "Cross" ? cross : Shape == "Triangle" ? triangle : Shape == "Star" ? star : Shape == "Diamond" ? diamond : Shape == "Wye" ? wye : circle;
16076
- };
16077
16096
  let hideZeroValues = formatOptions.plotArea.hideZeroValues;
16078
16097
  formatOptions.plotArea.plotAreaHideLineAndMarkers === void 0 ? formatOptions.plotArea.plotAreaHideLineAndMarkers = true : null;
16079
16098
  chartData.forEach(
@@ -16091,8 +16110,8 @@ function lineMarkers(lines, chartData, type, xScale, yScale, yScaleRight, toolti
16091
16110
  let markerGroupsEnter = markerGroups.enter().append("g").attr("class", "parentGroup").attr("hoverId", (d) => (d.properties.alias || d.properties.name || "Legend").replace(/\s+/g, "-"));
16092
16111
  let mergedMarkerGroups = markerGroupsEnter.merge(markerGroups);
16093
16112
  mergedMarkerGroups.each(function(groupData) {
16094
- const group = select$2(this);
16095
- let markers = group.selectAll("path").data(groupData.data);
16113
+ const group2 = select$2(this);
16114
+ let markers = group2.selectAll("path").data(groupData.data);
16096
16115
  let markersEnter = markers.enter().append("path").attr("fill", (d) => d.markerColor);
16097
16116
  markersEnter.merge(markers).attr("d", (d) => {
16098
16117
  return Symbol$1().type(Markershapes(d.markerShape)).size(d.markerSize * 50)();
@@ -16167,6 +16186,9 @@ function lineMarkers(lines, chartData, type, xScale, yScale, yScaleRight, toolti
16167
16186
  logError$2(fileName$b, "lineMarkers", error);
16168
16187
  }
16169
16188
  }
16189
+ function Markershapes(Shape) {
16190
+ return Shape == "Square" ? square : Shape == "Circle" ? circle : Shape == "Cross" ? cross : Shape == "Triangle" ? triangle : Shape == "Star" ? star : Shape == "Diamond" ? diamond : Shape == "Wye" ? wye : circle;
16191
+ }
16170
16192
  const checkVisibleConditions = (chartData, d, type, hideZeroValues, yScaleRight, customYaxisMinValue, customYaxisMaxValue) => {
16171
16193
  try {
16172
16194
  if (chartData[0].properties.axis && chartData[0].properties.axis === "Secondary") {
@@ -16385,8 +16407,8 @@ function getAutoNumberWithFormat(value2) {
16385
16407
  }
16386
16408
  function showTooltipOnMouseMove(elements, chartFormatOptions, event2, prop) {
16387
16409
  try {
16388
- const markerColor = prop.color ?? prop?.markerColor ?? "blue";
16389
- const markerShape = prop?.markerShape.toLowerCase() ?? "circle";
16410
+ const markerColor = prop?.color ?? prop?.markerColor ?? "blue";
16411
+ const markerShape = prop?.markerShape?.toLowerCase() ?? "circle";
16390
16412
  const isLightTheme = chartFormatOptions.toolTip.toolTipTheme === "Light";
16391
16413
  const bgColor = isLightTheme ? "rgba(255, 255, 255)" : "#272729ff";
16392
16414
  const textColor = isLightTheme ? "black" : commonColors.white;
@@ -17102,12 +17124,12 @@ function modifySeriesDataForTornadoChart(seriesData, data, isAdvanceAnalyticsCha
17102
17124
  };
17103
17125
  const measureMap = /* @__PURE__ */ new Map();
17104
17126
  data?.LegendList?.forEach((legend) => {
17105
- measureMap.set(splitLengend(legend?.name), legend);
17127
+ measureMap.set(isAdvanceAnalyticsChart ? splitLengend(legend?.name) : legend.measureUniqueId, legend);
17106
17128
  });
17107
17129
  return seriesData.map((series) => {
17108
17130
  return {
17109
17131
  ...series,
17110
- properties: measureMap.get(isAdvanceAnalyticsChart ? splitLengend(series.legend) : series.properties.currentMeasure) ?? series.properties
17132
+ properties: measureMap.get(isAdvanceAnalyticsChart ? splitLengend(series.legend) : series.properties.measureUniqueId) ?? series.properties
17111
17133
  };
17112
17134
  }).filter((series) => series.data[0].value !== 0);
17113
17135
  } catch (_) {
@@ -22181,7 +22203,7 @@ const LineChart = ({
22181
22203
  (d2) => d2.properties.lineStyle !== "None" ? d2.properties.lineWidth : 0
22182
22204
  ).attr(
22183
22205
  "hoverId",
22184
- (d.properties.alias || lineGroups.properties.name || "Legend").replace(/\s+/g, "-")
22206
+ (d.properties.alias || d.properties.name || "Legend").replace(/\s+/g, "-")
22185
22207
  ).attr("d", (d2) => lineGenerator(d2.data));
22186
22208
  });
22187
22209
  lineGroups.exit().remove();
@@ -22219,7 +22241,7 @@ const LineChart = ({
22219
22241
  xAxis,
22220
22242
  dimensionHeightWidthArray,
22221
22243
  height,
22222
- innerWidth2 / xScale.length,
22244
+ innerWidth2 / filteredDimension.length,
22223
22245
  isDateType,
22224
22246
  innerWidth2,
22225
22247
  innerHeight2,
@@ -29135,8 +29157,16 @@ const Treemap = ({ data, formatOptions, chartId }) => {
29135
29157
  }
29136
29158
  chartData = chartData.map((d) => {
29137
29159
  let value2 = d.data.data[valueIndex].value;
29138
- d.data.properties["themeColor"] = colorScale(value2.toString());
29139
- return d;
29160
+ return {
29161
+ ...d,
29162
+ data: {
29163
+ ...d.data,
29164
+ properties: {
29165
+ ...d.data.properties,
29166
+ themeColor: colorScale(value2.toString())
29167
+ }
29168
+ }
29169
+ };
29140
29170
  });
29141
29171
  appendColorScale(
29142
29172
  startColor,
@@ -29970,6 +30000,11 @@ const PyramidChart = ({
29970
30000
  annotationsList = [];
29971
30001
  seriesData.forEach((d, i) => {
29972
30002
  try {
30003
+ const type = chartFormatOptions.annotation.annotationVisibility;
30004
+ const lastIndex = seriesData.length - 1;
30005
+ if (type === dataLabelPositionType.none || type === dataLabelPositionType.startOnly && i !== 0 || type === dataLabelPositionType.endOnly && i !== lastIndex || type === dataLabelPositionType.startAndEndBoth && i !== 0 && i !== lastIndex) {
30006
+ return;
30007
+ }
29973
30008
  let singleAnnotation = {
29974
30009
  note: {
29975
30010
  title: chartFormatOptions.plotArea.dataLabelName ? d.properties.alias : "",
@@ -30746,7 +30781,8 @@ const Speedometer = ({
30746
30781
  }
30747
30782
  }
30748
30783
  let valuefontStyle = chartFormatOptions.pointerValue.pointerValueFontStyle;
30749
- let comparedValue = chartAreaTagG.append("g").attr("class", "label").attr("transform", positionTransformString2);
30784
+ chartAreaTagG.selectAll(".pointerValueText").remove();
30785
+ let comparedValue = chartAreaTagG.append("g").attr("class", "pointerValueText").attr("transform", positionTransformString2);
30750
30786
  comparedValue.selectAll("text").data(["chartData.dataArray[1].maximumMeasure"]).enter().append("text").attr("dy", "24").attr("text-anchor", "middle").attr("font-size", chartFormatOptions.pointerValue.pointerValueFontSize).attr(
30751
30787
  "fill",
30752
30788
  chartFormatOptions.pointerValue.pointerValueColor !== commonColors.white ? chartFormatOptions.pointerValue.pointerValueColor : "none"
@@ -30890,6 +30926,31 @@ const RadialBarChart = ({
30890
30926
  logError("RadialBarChart.tsx", "loopOverChartData", error);
30891
30927
  }
30892
30928
  };
30929
+ const getModifiedDataForLabels = (data) => {
30930
+ try {
30931
+ const dataLabelType = chartFormatOptions.plotArea.dataLabelsOptions;
30932
+ switch (dataLabelType) {
30933
+ case dataLabelPositionType.automatic:
30934
+ return data.map((item, index2) => {
30935
+ return {
30936
+ ...item,
30937
+ index: index2
30938
+ };
30939
+ });
30940
+ case dataLabelPositionType.startOnly:
30941
+ return [{ ...data[0], index: 0 }];
30942
+ case dataLabelPositionType.endOnly:
30943
+ return [{ ...data[data.length - 1], index: data.length - 1 }];
30944
+ case dataLabelPositionType.startAndEndBoth:
30945
+ return [{ ...data[0], index: 0 }, { ...data[data.length - 1], index: data.length - 1 }];
30946
+ case dataLabelPositionType.none:
30947
+ return [];
30948
+ }
30949
+ } catch (error) {
30950
+ logError("RadialBarChart.tsx", "getModifiedDataForLabels", error);
30951
+ return data;
30952
+ }
30953
+ };
30893
30954
  const initRadialBarChart = () => {
30894
30955
  try {
30895
30956
  let arcTween = function(d, i) {
@@ -31045,7 +31106,8 @@ const RadialBarChart = ({
31045
31106
  (d, i) => chartFormatOptions.plotArea.arcTransition ? i * 200 : 0
31046
31107
  ).duration(chartFormatOptions.plotArea.arcTransition ? 500 : 0).attrTween("d", arcTween);
31047
31108
  if (chartFormatOptions.plotArea.dataLabels) {
31048
- svg2.selectAll(".arc-label-" + chartId).data(ChartData).enter().append("text").attr("class", "arc-label-" + chartId).attr("class", "parentGroup").attr("text-anchor", "start").attr("dy", (d, i) => (getOuterRadius(i) - getInnerRadius(i)) / 1.75).append("textPath").attr("xlink:href", (d, i) => `#arc-path-${i}-` + chartId).style("startOffset", "50%").attr("hoverId", (d) => d.legend.replaceAll(" ", "-")).text(
31109
+ const labelsData = getModifiedDataForLabels(ChartData);
31110
+ svg2.selectAll(".arc-label-" + chartId).data(labelsData).enter().append("text").attr("class", "arc-label-" + chartId).attr("class", "parentGroup").attr("text-anchor", "start").attr("dy", (d, i) => (getOuterRadius(d.index ?? i) - getInnerRadius(d.index ?? i)) / 1.75).append("textPath").attr("xlink:href", (d, i) => `#arc-path-${d.index ?? i}-` + chartId).style("startOffset", "50%").attr("hoverId", (d) => d.legend.replaceAll(" ", "-")).text(
31049
31111
  (d) => `  ${d.properties.alias}
31050
31112
   ${chartFormatOptions.plotArea.dataLabelValue ? getNumberWithFormatFunction(
31051
31113
  chartFormatOptions.plotArea.plotAreaDisplayUnits,
@@ -31522,28 +31584,27 @@ const WordCloud = ({
31522
31584
  initSvg(svgRef, width, height, chartFormatOptions);
31523
31585
  chartAreaTagG = initChartArea(svg, margins);
31524
31586
  drawChartTitle(svgRef, chartTitleHeight, width, chartFormatOptions);
31525
- calculateWordCloudData(seriesData);
31587
+ calculateWordCloudData();
31526
31588
  drawWordCloudChart();
31527
31589
  };
31528
- const calculateWordCloudData = (seriesData2) => {
31590
+ const calculateWordCloudData = () => {
31529
31591
  try {
31530
31592
  totalMeasureValue = 0;
31531
- seriesData2 = seriesData2.map((item) => {
31593
+ seriesData = seriesData.map((item) => {
31532
31594
  let value2 = item.data[0].value;
31533
31595
  totalMeasureValue += value2;
31596
+ if (chartFormatOptions.plotArea.hideZeroValues && value2 == 0) {
31597
+ return null;
31598
+ }
31534
31599
  if (value2 < min2) {
31535
31600
  min2 = value2;
31536
31601
  }
31537
31602
  if (value2 > max2) {
31538
31603
  max2 = value2;
31539
31604
  }
31540
- if (chartFormatOptions.plotArea.hideZeroValues && item[0].value != 0) {
31541
- return null;
31542
- } else {
31543
- return item;
31544
- }
31605
+ return item;
31545
31606
  });
31546
- seriesData2 = seriesData2.filter((item) => item !== null);
31607
+ seriesData = seriesData.filter((item) => item !== null);
31547
31608
  scale2 = linear$1().domain([min2, max2]).range([12, 70]);
31548
31609
  } catch (error) {
31549
31610
  logError$2(fileName$2, "calculateWordCloudData", error);
@@ -32598,8 +32659,8 @@ function selector(selector2) {
32598
32659
  function selection_select(select2) {
32599
32660
  if (typeof select2 !== "function") select2 = selector(select2);
32600
32661
  for (var groups = this._groups, m = groups.length, subgroups = new Array(m), j = 0; j < m; ++j) {
32601
- for (var group = groups[j], n = group.length, subgroup = subgroups[j] = new Array(n), node, subnode, i = 0; i < n; ++i) {
32602
- if ((node = group[i]) && (subnode = select2.call(node, node.__data__, i, group))) {
32662
+ for (var group2 = groups[j], n = group2.length, subgroup = subgroups[j] = new Array(n), node, subnode, i = 0; i < n; ++i) {
32663
+ if ((node = group2[i]) && (subnode = select2.call(node, node.__data__, i, group2))) {
32603
32664
  if ("__data__" in node) subnode.__data__ = node.__data__;
32604
32665
  subgroup[i] = subnode;
32605
32666
  }
@@ -32618,9 +32679,9 @@ function selectorAll(selector2) {
32618
32679
  function selection_selectAll(select2) {
32619
32680
  if (typeof select2 !== "function") select2 = selectorAll(select2);
32620
32681
  for (var groups = this._groups, m = groups.length, subgroups = [], parents = [], j = 0; j < m; ++j) {
32621
- for (var group = groups[j], n = group.length, node, i = 0; i < n; ++i) {
32622
- if (node = group[i]) {
32623
- subgroups.push(select2.call(node, node.__data__, i, group));
32682
+ for (var group2 = groups[j], n = group2.length, node, i = 0; i < n; ++i) {
32683
+ if (node = group2[i]) {
32684
+ subgroups.push(select2.call(node, node.__data__, i, group2));
32624
32685
  parents.push(node);
32625
32686
  }
32626
32687
  }
@@ -32635,8 +32696,8 @@ function matcher(selector2) {
32635
32696
  function selection_filter(match) {
32636
32697
  if (typeof match !== "function") match = matcher(match);
32637
32698
  for (var groups = this._groups, m = groups.length, subgroups = new Array(m), j = 0; j < m; ++j) {
32638
- for (var group = groups[j], n = group.length, subgroup = subgroups[j] = [], node, i = 0; i < n; ++i) {
32639
- if ((node = group[i]) && match.call(node, node.__data__, i, group)) {
32699
+ for (var group2 = groups[j], n = group2.length, subgroup = subgroups[j] = [], node, i = 0; i < n; ++i) {
32700
+ if ((node = group2[i]) && match.call(node, node.__data__, i, group2)) {
32640
32701
  subgroup.push(node);
32641
32702
  }
32642
32703
  }
@@ -32677,10 +32738,10 @@ function constant$2(x2) {
32677
32738
  };
32678
32739
  }
32679
32740
  var keyPrefix = "$";
32680
- function bindIndex(parent, group, enter, update, exit, data) {
32681
- var i = 0, node, groupLength = group.length, dataLength = data.length;
32741
+ function bindIndex(parent, group2, enter, update, exit, data) {
32742
+ var i = 0, node, groupLength = group2.length, dataLength = data.length;
32682
32743
  for (; i < dataLength; ++i) {
32683
- if (node = group[i]) {
32744
+ if (node = group2[i]) {
32684
32745
  node.__data__ = data[i];
32685
32746
  update[i] = node;
32686
32747
  } else {
@@ -32688,16 +32749,16 @@ function bindIndex(parent, group, enter, update, exit, data) {
32688
32749
  }
32689
32750
  }
32690
32751
  for (; i < groupLength; ++i) {
32691
- if (node = group[i]) {
32752
+ if (node = group2[i]) {
32692
32753
  exit[i] = node;
32693
32754
  }
32694
32755
  }
32695
32756
  }
32696
- function bindKey(parent, group, enter, update, exit, data, key) {
32697
- var i, node, nodeByKeyValue = {}, groupLength = group.length, dataLength = data.length, keyValues = new Array(groupLength), keyValue;
32757
+ function bindKey(parent, group2, enter, update, exit, data, key) {
32758
+ var i, node, nodeByKeyValue = {}, groupLength = group2.length, dataLength = data.length, keyValues = new Array(groupLength), keyValue;
32698
32759
  for (i = 0; i < groupLength; ++i) {
32699
- if (node = group[i]) {
32700
- keyValues[i] = keyValue = keyPrefix + key.call(node, node.__data__, i, group);
32760
+ if (node = group2[i]) {
32761
+ keyValues[i] = keyValue = keyPrefix + key.call(node, node.__data__, i, group2);
32701
32762
  if (keyValue in nodeByKeyValue) {
32702
32763
  exit[i] = node;
32703
32764
  } else {
@@ -32716,7 +32777,7 @@ function bindKey(parent, group, enter, update, exit, data, key) {
32716
32777
  }
32717
32778
  }
32718
32779
  for (i = 0; i < groupLength; ++i) {
32719
- if ((node = group[i]) && nodeByKeyValue[keyValues[i]] === node) {
32780
+ if ((node = group2[i]) && nodeByKeyValue[keyValues[i]] === node) {
32720
32781
  exit[i] = node;
32721
32782
  }
32722
32783
  }
@@ -32732,8 +32793,8 @@ function selection_data(value2, key) {
32732
32793
  var bind = key ? bindKey : bindIndex, parents = this._parents, groups = this._groups;
32733
32794
  if (typeof value2 !== "function") value2 = constant$2(value2);
32734
32795
  for (var m = groups.length, update = new Array(m), enter = new Array(m), exit = new Array(m), j = 0; j < m; ++j) {
32735
- var parent = parents[j], group = groups[j], groupLength = group.length, data = value2.call(parent, parent && parent.__data__, j, parents), dataLength = data.length, enterGroup = enter[j] = new Array(dataLength), updateGroup = update[j] = new Array(dataLength), exitGroup = exit[j] = new Array(groupLength);
32736
- bind(parent, group, enterGroup, updateGroup, exitGroup, data, key);
32796
+ var parent = parents[j], group2 = groups[j], groupLength = group2.length, data = value2.call(parent, parent && parent.__data__, j, parents), dataLength = data.length, enterGroup = enter[j] = new Array(dataLength), updateGroup = update[j] = new Array(dataLength), exitGroup = exit[j] = new Array(groupLength);
32797
+ bind(parent, group2, enterGroup, updateGroup, exitGroup, data, key);
32737
32798
  for (var i0 = 0, i1 = 0, previous, next; i0 < dataLength; ++i0) {
32738
32799
  if (previous = enterGroup[i0]) {
32739
32800
  if (i0 >= i1) i1 = i0 + 1;
@@ -32773,8 +32834,8 @@ function selection_merge(selection2) {
32773
32834
  }
32774
32835
  function selection_order() {
32775
32836
  for (var groups = this._groups, j = -1, m = groups.length; ++j < m; ) {
32776
- for (var group = groups[j], i = group.length - 1, next = group[i], node; --i >= 0; ) {
32777
- if (node = group[i]) {
32837
+ for (var group2 = groups[j], i = group2.length - 1, next = group2[i], node; --i >= 0; ) {
32838
+ if (node = group2[i]) {
32778
32839
  if (next && node.compareDocumentPosition(next) ^ 4) next.parentNode.insertBefore(node, next);
32779
32840
  next = node;
32780
32841
  }
@@ -32788,8 +32849,8 @@ function selection_sort(compare) {
32788
32849
  return a2 && b ? compare(a2.__data__, b.__data__) : !a2 - !b;
32789
32850
  }
32790
32851
  for (var groups = this._groups, m = groups.length, sortgroups = new Array(m), j = 0; j < m; ++j) {
32791
- for (var group = groups[j], n = group.length, sortgroup = sortgroups[j] = new Array(n), node, i = 0; i < n; ++i) {
32792
- if (node = group[i]) {
32852
+ for (var group2 = groups[j], n = group2.length, sortgroup = sortgroups[j] = new Array(n), node, i = 0; i < n; ++i) {
32853
+ if (node = group2[i]) {
32793
32854
  sortgroup[i] = node;
32794
32855
  }
32795
32856
  }
@@ -32815,8 +32876,8 @@ function selection_nodes() {
32815
32876
  }
32816
32877
  function selection_node() {
32817
32878
  for (var groups = this._groups, j = 0, m = groups.length; j < m; ++j) {
32818
- for (var group = groups[j], i = 0, n = group.length; i < n; ++i) {
32819
- var node = group[i];
32879
+ for (var group2 = groups[j], i = 0, n = group2.length; i < n; ++i) {
32880
+ var node = group2[i];
32820
32881
  if (node) return node;
32821
32882
  }
32822
32883
  }
@@ -32834,8 +32895,8 @@ function selection_empty() {
32834
32895
  }
32835
32896
  function selection_each(callback) {
32836
32897
  for (var groups = this._groups, j = 0, m = groups.length; j < m; ++j) {
32837
- for (var group = groups[j], i = 0, n = group.length, node; i < n; ++i) {
32838
- if (node = group[i]) callback.call(node, node.__data__, i, group);
32898
+ for (var group2 = groups[j], i = 0, n = group2.length, node; i < n; ++i) {
32899
+ if (node = group2[i]) callback.call(node, node.__data__, i, group2);
32839
32900
  }
32840
32901
  }
32841
32902
  return this;
@@ -33078,8 +33139,8 @@ if (typeof document !== "undefined") {
33078
33139
  filterEvents = { mouseenter: "mouseover", mouseleave: "mouseout" };
33079
33140
  }
33080
33141
  }
33081
- function filterContextListener(listener, index2, group) {
33082
- listener = contextListener(listener, index2, group);
33142
+ function filterContextListener(listener, index2, group2) {
33143
+ listener = contextListener(listener, index2, group2);
33083
33144
  return function(event2) {
33084
33145
  var related = event2.relatedTarget;
33085
33146
  if (!related || related !== this && !(related.compareDocumentPosition(this) & 8)) {
@@ -33087,10 +33148,10 @@ function filterContextListener(listener, index2, group) {
33087
33148
  }
33088
33149
  };
33089
33150
  }
33090
- function contextListener(listener, index2, group) {
33151
+ function contextListener(listener, index2, group2) {
33091
33152
  return function(event1) {
33092
33153
  try {
33093
- listener.call(this, this.__data__, index2, group);
33154
+ listener.call(this, this.__data__, index2, group2);
33094
33155
  } finally {
33095
33156
  }
33096
33157
  };
@@ -33119,8 +33180,8 @@ function onRemove(typename) {
33119
33180
  }
33120
33181
  function onAdd(typename, value2, capture) {
33121
33182
  var wrap3 = filterEvents.hasOwnProperty(typename.type) ? filterContextListener : contextListener;
33122
- return function(d, i, group) {
33123
- var on = this.__on, o, listener = wrap3(value2, i, group);
33183
+ return function(d, i, group2) {
33184
+ var on = this.__on, o, listener = wrap3(value2, i, group2);
33124
33185
  if (on) for (var j = 0, m = on.length; j < m; ++j) {
33125
33186
  if ((o = on[j]).type === typename.type && o.name === typename.name) {
33126
33187
  this.removeEventListener(o.type, o.listener, o.capture);
@@ -33397,7 +33458,7 @@ var STARTED = 3;
33397
33458
  var RUNNING = 4;
33398
33459
  var ENDING = 5;
33399
33460
  var ENDED = 6;
33400
- function schedule(node, name, id2, index2, group, timing) {
33461
+ function schedule(node, name, id2, index2, group2, timing) {
33401
33462
  var schedules = node.__transition;
33402
33463
  if (!schedules) node.__transition = {};
33403
33464
  else if (id2 in schedules) return;
@@ -33405,7 +33466,7 @@ function schedule(node, name, id2, index2, group, timing) {
33405
33466
  name,
33406
33467
  index: index2,
33407
33468
  // For context during callback.
33408
- group,
33469
+ group: group2,
33409
33470
  // For context during callback.
33410
33471
  on: emptyOn,
33411
33472
  tween: emptyTween,
@@ -34197,8 +34258,8 @@ function transition_ease(value2) {
34197
34258
  function transition_filter(match) {
34198
34259
  if (typeof match !== "function") match = matcher(match);
34199
34260
  for (var groups = this._groups, m = groups.length, subgroups = new Array(m), j = 0; j < m; ++j) {
34200
- for (var group = groups[j], n = group.length, subgroup = subgroups[j] = [], node, i = 0; i < n; ++i) {
34201
- if ((node = group[i]) && match.call(node, node.__data__, i, group)) {
34261
+ for (var group2 = groups[j], n = group2.length, subgroup = subgroups[j] = [], node, i = 0; i < n; ++i) {
34262
+ if ((node = group2[i]) && match.call(node, node.__data__, i, group2)) {
34202
34263
  subgroup.push(node);
34203
34264
  }
34204
34265
  }
@@ -34252,8 +34313,8 @@ function transition_select(select2) {
34252
34313
  var name = this._name, id2 = this._id;
34253
34314
  if (typeof select2 !== "function") select2 = selector(select2);
34254
34315
  for (var groups = this._groups, m = groups.length, subgroups = new Array(m), j = 0; j < m; ++j) {
34255
- for (var group = groups[j], n = group.length, subgroup = subgroups[j] = new Array(n), node, subnode, i = 0; i < n; ++i) {
34256
- if ((node = group[i]) && (subnode = select2.call(node, node.__data__, i, group))) {
34316
+ for (var group2 = groups[j], n = group2.length, subgroup = subgroups[j] = new Array(n), node, subnode, i = 0; i < n; ++i) {
34317
+ if ((node = group2[i]) && (subnode = select2.call(node, node.__data__, i, group2))) {
34257
34318
  if ("__data__" in node) subnode.__data__ = node.__data__;
34258
34319
  subgroup[i] = subnode;
34259
34320
  schedule(subgroup[i], name, id2, i, subgroup, get2(node, id2));
@@ -34266,9 +34327,9 @@ function transition_selectAll(select2) {
34266
34327
  var name = this._name, id2 = this._id;
34267
34328
  if (typeof select2 !== "function") select2 = selectorAll(select2);
34268
34329
  for (var groups = this._groups, m = groups.length, subgroups = [], parents = [], j = 0; j < m; ++j) {
34269
- for (var group = groups[j], n = group.length, node, i = 0; i < n; ++i) {
34270
- if (node = group[i]) {
34271
- for (var children2 = select2.call(node, node.__data__, i, group), child, inherit2 = get2(node, id2), k2 = 0, l = children2.length; k2 < l; ++k2) {
34330
+ for (var group2 = groups[j], n = group2.length, node, i = 0; i < n; ++i) {
34331
+ if (node = group2[i]) {
34332
+ for (var children2 = select2.call(node, node.__data__, i, group2), child, inherit2 = get2(node, id2), k2 = 0, l = children2.length; k2 < l; ++k2) {
34272
34333
  if (child = children2[k2]) {
34273
34334
  schedule(child, name, id2, k2, children2, inherit2);
34274
34335
  }
@@ -34384,10 +34445,10 @@ function transition_textTween(value2) {
34384
34445
  function transition_transition() {
34385
34446
  var name = this._name, id0 = this._id, id1 = newId();
34386
34447
  for (var groups = this._groups, m = groups.length, j = 0; j < m; ++j) {
34387
- for (var group = groups[j], n = group.length, node, i = 0; i < n; ++i) {
34388
- if (node = group[i]) {
34448
+ for (var group2 = groups[j], n = group2.length, node, i = 0; i < n; ++i) {
34449
+ if (node = group2[i]) {
34389
34450
  var inherit2 = get2(node, id0);
34390
- schedule(node, name, id1, i, group, {
34451
+ schedule(node, name, id1, i, group2, {
34391
34452
  time: inherit2.time + inherit2.delay + inherit2.duration,
34392
34453
  delay: 0,
34393
34454
  duration: inherit2.duration,
@@ -34482,9 +34543,9 @@ function selection_transition(name) {
34482
34543
  id2 = newId(), (timing = defaultTiming).time = now(), name = name == null ? null : name + "";
34483
34544
  }
34484
34545
  for (var groups = this._groups, m = groups.length, j = 0; j < m; ++j) {
34485
- for (var group = groups[j], n = group.length, node, i = 0; i < n; ++i) {
34486
- if (node = group[i]) {
34487
- schedule(node, name, id2, i, group, timing || inherit(node, id2));
34546
+ for (var group2 = groups[j], n = group2.length, node, i = 0; i < n; ++i) {
34547
+ if (node = group2[i]) {
34548
+ schedule(node, name, id2, i, group2, timing || inherit(node, id2));
34488
34549
  }
34489
34550
  }
34490
34551
  }
@@ -35704,7 +35765,7 @@ const SankeyChart = ({
35704
35765
  break;
35705
35766
  case TSankeyDataLabelPostion.right:
35706
35767
  xAndYCoordinate = [1, 5];
35707
- widthAndHeight = [maxNodeLabelWidth, innerHeight2];
35768
+ widthAndHeight = [innerWidth2 - maxNodeLabelWidth, innerHeight2];
35708
35769
  break;
35709
35770
  case TSankeyDataLabelPostion.left:
35710
35771
  xAndYCoordinate = [maxNodeLabelWidth, 5];
@@ -55211,7 +55272,8 @@ const WaterfallChart = ({
55211
55272
  dataTableHeight,
55212
55273
  innerWidth2,
55213
55274
  innerHeight2,
55214
- chartType
55275
+ chartType,
55276
+ chartId
55215
55277
  );
55216
55278
  initScale();
55217
55279
  initAxis();
@@ -55512,7 +55574,7 @@ const WaterfallChart = ({
55512
55574
  (d) => xScale(
55513
55575
  !isAdvancedWaterfall ? d.data.dimension || d.data.legend : d.data.xKey
55514
55576
  )
55515
- ).attr("y", (d) => d[1] ? yScaleLeft(d[1]) : 0).attr(
55577
+ ).attr("y", (d) => d[1] ? yScaleLeft(d[1]) : 0).attr("clip-path", `url(#${chartId}-clip)`).attr(
55516
55578
  "height",
55517
55579
  (d) => d[1] ? yScaleLeft(d[0]) - yScaleLeft(d[1]) : 0
55518
55580
  ).attr("width", xScale.bandwidth()).attr(
@@ -55913,26 +55975,8 @@ const TornadoChart = ({
55913
55975
  chartType
55914
55976
  );
55915
55977
  initScale();
55916
- initAxis();
55917
- initYaxisBar(
55918
- formatOptions,
55919
- gTag,
55920
- xLabel,
55921
- innerHeight2,
55922
- innerWidth2,
55923
- yAxisLeft,
55924
- yAxisRight,
55925
- xScale,
55926
- chartJSON.yMaxLeft,
55927
- chartJSON.dimensionList,
55928
- chartType,
55929
- isDateType,
55930
- width,
55931
- dimensionHeightWidthArray,
55932
- columnWidth,
55933
- yScaleLeft
55934
- );
55935
- horizontalScrollBar2(seriesData, height, svg, margin, innerWidth2);
55978
+ getXAxis();
55979
+ initXaxisBar(formatOptions, gTag, xLabel, innerHeight2, innerWidth2, xAxis);
55936
55980
  if (formatOptions.dataTableProperties && formatOptions.dataTableProperties.dataTable) {
55937
55981
  if (formatOptions.xAxisLabel.xAxisPosition != "1")
55938
55982
  formatOptions.xAxisLabel.xAxisLabelVisibility = false;
@@ -56014,6 +56058,21 @@ const TornadoChart = ({
56014
56058
  chartId,
56015
56059
  staticLegendShape.rectangle
56016
56060
  );
56061
+ horizontalScrollBar2(
56062
+ seriesData,
56063
+ height,
56064
+ width,
56065
+ svg,
56066
+ margin,
56067
+ innerWidth2,
56068
+ scrollbarVisible,
56069
+ visibleBars,
56070
+ chartJSON,
56071
+ scrollPosition,
56072
+ false,
56073
+ setAndUpdateChartData,
56074
+ barChart
56075
+ );
56017
56076
  };
56018
56077
  const mapSeriesDataWithLegendList = (seriesData2, legendList, isAdvanceAnalyticsChart2, formatOptions2) => {
56019
56078
  return seriesData2.map((series, index2) => {
@@ -56046,11 +56105,11 @@ const TornadoChart = ({
56046
56105
  const preProcessChartData = () => {
56047
56106
  let processedSeriesData;
56048
56107
  if (!isAdvanceAnalyticsChart) {
56049
- const firstMeasure = "0~$~" + seriesData[0]?.properties.currentMeasure;
56108
+ const firstMeasure = seriesData[0]?.properties?.measureUniqueId;
56050
56109
  let yMaxLeft = 0;
56051
56110
  let yMaxRight = -Infinity;
56052
56111
  processedSeriesData = seriesData.map((series, index2) => {
56053
- const isFirstMeasure = index2 + "~$~" + series.properties.currentMeasure === firstMeasure;
56112
+ const isFirstMeasure = series.properties.measureUniqueId === firstMeasure;
56054
56113
  const newData = series.data.map((point2) => {
56055
56114
  const newValue = isFirstMeasure ? -Math.abs(point2.value) : Math.abs(point2.value);
56056
56115
  return {
@@ -56086,10 +56145,8 @@ const TornadoChart = ({
56086
56145
  !isAdvanceAnalyticsChart ? processedSeriesData : seriesData
56087
56146
  )
56088
56147
  );
56089
- filteredDimension = !formatOptions.plotArea.fitChart ? chartJSON.dimensionList.slice(
56090
- scrollPosition,
56091
- scrollPosition + visibleBars
56092
- ) : chartJSON.dimensionList;
56148
+ seriesData = filteredData;
56149
+ filteredDimension = chartJSON.dimensionList;
56093
56150
  if (formatOptions.plotArea.hideZeroValues) {
56094
56151
  chartJSON.hideZeroValues = true;
56095
56152
  }
@@ -56117,16 +56174,23 @@ const TornadoChart = ({
56117
56174
  getXScale();
56118
56175
  };
56119
56176
  const getXScale = () => {
56120
- yScaleLeft = point$7().domain(chartJSON.dimensionList).range([innerHeight2, 0]).padding(0.5);
56177
+ yScaleLeft = point$7().domain(filteredDimension).range([innerHeight2, 0]).padding(0.5);
56121
56178
  };
56122
56179
  const initAxis = () => {
56123
- getXAxis();
56124
56180
  yAxisLeft = axisLeft(yScaleLeft).tickSize(
56125
- formatOptions.plotArea.gridLinesVisibility ? formatOptions.plotArea.gridLinesHorizontal ? -(innerWidth2 - xScaleForLegends(0)) : 0 : 0
56126
- ).tickSizeOuter(0).tickValues(responsiveXaxisLabel(chartJSON.dimensionList, innerHeight2));
56181
+ getHorizontalGridLinesTickSize(
56182
+ formatOptions,
56183
+ innerWidth2 - xScaleForLegends(0),
56184
+ 0
56185
+ )
56186
+ ).tickSizeOuter(0).tickValues(responsiveXaxisLabel(filteredDimension, innerHeight2));
56127
56187
  yAxisRight = axisRight(yScaleLeft).tickSize(
56128
- formatOptions.plotArea.gridLinesVisibility ? formatOptions.plotArea.gridLinesHorizontal ? -xScaleForLegends(0) : 0 : 0
56129
- ).tickSizeOuter(0).tickValues(responsiveXaxisLabel(chartJSON.dimensionList, innerWidth2));
56188
+ getHorizontalGridLinesTickSize(
56189
+ formatOptions,
56190
+ xScaleForLegends(0),
56191
+ 0
56192
+ )
56193
+ ).tickSizeOuter(0).tickValues(responsiveXaxisLabel(filteredDimension, innerWidth2));
56130
56194
  };
56131
56195
  const getXAxis = () => {
56132
56196
  xAxis = axisBottom(xScaleForLegends).tickFormat(
@@ -56222,74 +56286,152 @@ const TornadoChart = ({
56222
56286
  innerWidth2 = width - margin2.left - margin2.right;
56223
56287
  innerHeight2 = height - margin2.bottom - margin2.top;
56224
56288
  };
56225
- const horizontalScrollBar2 = (seriesData2, height2, svg2, margin2, innerWidth22) => {
56226
- if (!formatOptions.plotArea.fitChart) {
56227
- const scrollMax = seriesData2[0].data.length - visibleBars;
56228
- const scrollbarY = height2 - 20;
56229
- filteredDimension = chartJSON.dimensionList.slice(
56230
- scrollPosition,
56231
- scrollPosition + visibleBars
56232
- );
56233
- getXScale();
56234
- filteredData = JSON.parse(JSON.stringify(seriesData2));
56235
- filteredData.forEach(
56236
- (data2, i) => filteredData[i].data = data2.data.filter(
56237
- (d) => filteredDimension.includes(d.dimension)
56238
- )
56239
- );
56240
- getXAxis();
56241
- svg2.append("rect").attr("x", margin2.left).attr("y", scrollbarY).attr("width", innerWidth22).attr("height", 8).attr("fill", "#ddd").attr("rx", 4);
56242
- const handleWidth = innerWidth22 * visibleBars / chartJSON.dimensionList.length;
56243
- const handle = svg2.append("rect").attr("x", margin2.left).attr("y", scrollbarY).attr("width", handleWidth).attr("height", 8).attr("fill", "#999").attr("rx", 4).style("cursor", "ew-resize").call(
56289
+ const setAndUpdateChartData = (fDimension, fData, fVisibleBars) => {
56290
+ filteredData = fData;
56291
+ filteredDimension = fDimension;
56292
+ visibleBars = fVisibleBars;
56293
+ drawColumnChart();
56294
+ };
56295
+ function createDataForAnnotation(chartData) {
56296
+ const legendUniqueIdToLegendMap = /* @__PURE__ */ new Map();
56297
+ chartData.forEach((d) => {
56298
+ let obj = legendUniqueIdToLegendMap.get(d.properties.legendUniqueId);
56299
+ if (obj) {
56300
+ let array2 = obj.data ?? [];
56301
+ array2.push(d.data[0]);
56302
+ legendUniqueIdToLegendMap.set(d.properties.legendUniqueId, { ...obj, data: array2 });
56303
+ } else {
56304
+ obj = {
56305
+ ...d,
56306
+ data: [d.data[0]]
56307
+ };
56308
+ legendUniqueIdToLegendMap.set(d.properties.legendUniqueId, obj);
56309
+ }
56310
+ });
56311
+ return legendUniqueIdToLegendMap.size > 0 ? Array.from(legendUniqueIdToLegendMap.keys()).map((d) => legendUniqueIdToLegendMap.get(d)) : chartData;
56312
+ }
56313
+ function horizontalScrollBar2(seriesData2, height2, width2, svg2, margin2, innerWidth22, scrollbarVisible2, visibleBars2, chartJSON2, scrollPosition2, isStackedChart, setAndUpdateChartData2, isBarChart = false) {
56314
+ const updateFromScrollPosition = (pos, scrollMax, handleWidth, handle, mouseEvent) => {
56315
+ try {
56316
+ mouseEvent && (pos = scrollPosition2 + pos);
56317
+ if (!chartJSON2 || !Array.isArray(chartJSON2.dimensionList) || !Array.isArray(seriesData2))
56318
+ return;
56319
+ pos = pos == null ? 0 : Number(pos);
56320
+ scrollMax = scrollMax == null ? 0 : Number(scrollMax);
56321
+ handleWidth = handleWidth == null ? 0 : Number(handleWidth);
56322
+ scrollPosition2 = clamp(Math.round(pos), 0, Math.max(0, scrollMax));
56323
+ visibleBars2 = typeof visibleBars2 === "number" ? visibleBars2 : 0;
56324
+ const start2 = scrollPosition2;
56325
+ const end = start2 + visibleBars2;
56326
+ let filteredDimension2 = chartJSON2.dimensionList.slice(start2, end);
56327
+ const isDefaultEntry = filteredDimension2[0] == chartTypes.TornadoDefaultEntry;
56328
+ let filteredData2 = JSON.parse(JSON.stringify(seriesData2 || []));
56329
+ filteredData2 = filteredData2.filter((d) => isDefaultEntry ? true : filteredDimension2.includes(d.legend.split(" - ")[1]));
56330
+ const safeMarginLeft = margin2?.left ?? 0;
56331
+ const safeMarginTop = margin2?.top ?? 0;
56332
+ const safeInnerWidth = Number(innerWidth22) || 0;
56333
+ const safeInnerHeight = Number(innerHeight2) || 0;
56334
+ const safeHandleSize = Number(handleWidth) || 0;
56335
+ const denom = scrollMax === 0 ? 1 : scrollMax;
56336
+ if (isBarChart) {
56337
+ const y2 = safeMarginTop + (safeInnerHeight - safeHandleSize) * (scrollMax === 0 ? 0 : scrollPosition2) / denom;
56338
+ if (handle && typeof handle.attr === "function") {
56339
+ handle.attr("y", y2);
56340
+ }
56341
+ } else {
56342
+ const x2 = safeMarginLeft + (safeInnerWidth - safeHandleSize) * (scrollMax === 0 ? 0 : scrollPosition2) / denom;
56343
+ if (handle && typeof handle.attr === "function") {
56344
+ handle.attr("x", x2);
56345
+ }
56346
+ }
56347
+ setAndUpdateChartData2(filteredDimension2, filteredData2, visibleBars2);
56348
+ } catch (error) {
56349
+ if (typeof logError$2 === "function")
56350
+ logError$2("ColumnChart", "updateFromScrollPosition", error);
56351
+ }
56352
+ };
56353
+ if (scrollbarVisible2) {
56354
+ const innerHeight22 = height2 - margin2.top - margin2.bottom;
56355
+ const scrollMax = Math.max(0, dimensionList.length - visibleBars2);
56356
+ const scrollbarY = height2 - 8;
56357
+ svg2.append("rect").attr("id", "scrollbarTrack").attr("x", isBarChart ? width2 - 8 : margin2.left).attr("y", isBarChart ? margin2.top : scrollbarY).attr("width", isBarChart ? 8 : innerWidth22).attr("height", isBarChart ? innerHeight22 : 8).attr("fill", "#ccc");
56358
+ const handleWidth = (isBarChart ? innerHeight22 : innerWidth22) * visibleBars2 / chartJSON2.dimensionList.length;
56359
+ const handle = svg2.append("rect").attr(
56360
+ "x",
56361
+ isBarChart ? width2 - 8 : margin2.left
56362
+ ).attr("y", isBarChart ? margin2.top : scrollbarY).attr("width", isBarChart ? 8 : handleWidth).attr("height", isBarChart ? handleWidth : 8).attr("fill", "#999").style("cursor", isBarChart ? "ns-resize" : "ew-resize");
56363
+ handle.call(
56244
56364
  drag$1().on("drag", (event2) => {
56245
- let x2 = Math.min(
56246
- Math.max(event2.x, margin2.left),
56247
- margin2.left + innerWidth22 - handleWidth
56248
- );
56249
- handle.attr("x", x2);
56250
- scrollPosition = Math.round(
56251
- (x2 - margin2.left) / (innerWidth22 - handleWidth) * scrollMax
56252
- );
56253
- filteredDimension = chartJSON.dimensionList.slice(
56254
- scrollPosition,
56255
- scrollPosition + visibleBars
56256
- );
56257
- getXScale();
56258
- filteredData = JSON.parse(JSON.stringify(seriesData2));
56259
- filteredData.forEach(
56260
- (data2, i) => filteredData[i].data = data2.data.filter(
56261
- (d) => filteredDimension.includes(d.dimension)
56262
- )
56263
- );
56264
- getXAxis();
56265
- drawColumnChart();
56365
+ if (isBarChart) {
56366
+ const y2 = clamp(
56367
+ event2.y,
56368
+ margin2.top,
56369
+ margin2.top + innerHeight22 - handleWidth
56370
+ );
56371
+ const pos = (y2 - margin2.top) / (innerHeight22 - handleWidth) * (scrollMax || 1);
56372
+ updateFromScrollPosition(pos, scrollMax, handleWidth, handle, false);
56373
+ handle.attr("y", margin2.top + (innerHeight22 - handleWidth) * (scrollMax === 0 ? 0 : scrollPosition2) / (scrollMax === 0 ? 1 : scrollMax));
56374
+ } else {
56375
+ const x2 = clamp(
56376
+ event2.x,
56377
+ margin2.left,
56378
+ margin2.left + innerWidth22 - handleWidth
56379
+ );
56380
+ const pos = (x2 - margin2.left) / (innerWidth22 - handleWidth) * (scrollMax || 1);
56381
+ updateFromScrollPosition(pos, scrollMax, handleWidth, handle, false);
56382
+ handle.attr("x", margin2.left + (innerWidth22 - handleWidth) * (scrollMax === 0 ? 0 : scrollPosition2) / (scrollMax === 0 ? 1 : scrollMax));
56383
+ }
56266
56384
  })
56267
56385
  );
56268
56386
  svg2.on("wheel", (event2) => {
56269
56387
  event2.preventDefault();
56270
56388
  const scrollDelta = Math.abs(event2.deltaX) > Math.abs(event2.deltaY) ? event2.deltaX : event2.deltaY;
56271
- scrollPosition += scrollDelta > 0 ? 1 : -1;
56272
- scrollPosition = Math.max(0, Math.min(scrollPosition, scrollMax));
56273
- const x2 = margin2.left + (innerWidth22 - handleWidth) * scrollPosition / scrollMax;
56274
- handle.attr("x", x2);
56275
- getXScale();
56276
- filteredData = JSON.parse(JSON.stringify(seriesData2));
56277
- filteredData.forEach(
56278
- (data2, i) => filteredData[i].data = data2.data.filter(
56279
- (d) => filteredDimension.includes(d.dimension)
56280
- )
56281
- );
56282
- getXAxis();
56283
- drawColumnChart();
56389
+ const step2 = scrollDelta > 0 ? 1 : -1;
56390
+ updateFromScrollPosition(step2, scrollMax, handleWidth, handle, true);
56391
+ if (isBarChart) {
56392
+ const y2 = margin2.top + (innerHeight22 - handleWidth) * (scrollMax === 0 ? 0 : scrollPosition2) / (scrollMax === 0 ? 1 : scrollMax);
56393
+ handle.attr("y", y2);
56394
+ } else {
56395
+ const x2 = margin2.left + (innerWidth22 - handleWidth) * (scrollMax === 0 ? 0 : scrollPosition2) / (scrollMax === 0 ? 1 : scrollMax);
56396
+ handle.attr("x", x2);
56397
+ }
56284
56398
  });
56399
+ } else {
56400
+ svg2.on("wheel", null);
56285
56401
  }
56286
- drawColumnChart();
56287
- };
56402
+ updateFromScrollPosition(
56403
+ 0,
56404
+ 0,
56405
+ 0,
56406
+ null,
56407
+ true
56408
+ );
56409
+ }
56288
56410
  const drawColumnChart = () => {
56289
- initXaxisBar(formatOptions, gTag, xLabel, innerHeight2, innerWidth2, xAxis);
56411
+ getXScale();
56412
+ initAxis();
56413
+ initYaxisBar(
56414
+ formatOptions,
56415
+ gTag,
56416
+ xLabel,
56417
+ innerHeight2,
56418
+ innerWidth2,
56419
+ yAxisLeft,
56420
+ yAxisRight,
56421
+ xScale,
56422
+ chartJSON.yMaxLeft,
56423
+ filteredDimension,
56424
+ chartType,
56425
+ isDateType,
56426
+ width,
56427
+ dimensionHeightWidthArray,
56428
+ columnWidth,
56429
+ yScaleLeft
56430
+ );
56290
56431
  getChartType();
56432
+ const dataForAnnotation = createDataForAnnotation(filteredData);
56291
56433
  commonAnnotations(
56292
- filteredData,
56434
+ dataForAnnotation ?? [],
56293
56435
  yScaleLeft,
56294
56436
  xScale,
56295
56437
  null,
@@ -56329,7 +56471,7 @@ const TornadoChart = ({
56329
56471
  }
56330
56472
  ) });
56331
56473
  };
56332
- const ClevelandDotPlot = ({
56474
+ const DotPlot = ({
56333
56475
  isDateType,
56334
56476
  formatOptions,
56335
56477
  data,
@@ -56338,7 +56480,7 @@ const ClevelandDotPlot = ({
56338
56480
  }) => {
56339
56481
  const chartId = crypto.randomUUID();
56340
56482
  let columnWidth = 0;
56341
- const chartType = chartTypes.ClevelandDotPlot;
56483
+ const chartType = chartTypes.DotPlot;
56342
56484
  const svgRef = useRef();
56343
56485
  const seriesData = generalizedChartData(
56344
56486
  data.ChartData,
@@ -56395,16 +56537,16 @@ const ClevelandDotPlot = ({
56395
56537
  };
56396
56538
  useEffect(() => {
56397
56539
  try {
56398
- createStackHorizontalBarChart();
56540
+ createDotPlot();
56399
56541
  } catch (error) {
56400
56542
  logError$2(
56401
56543
  "StackStackHorizontalBarchart",
56402
- "createStackHorizontalBarChart",
56544
+ "createDotPlot",
56403
56545
  error
56404
56546
  );
56405
56547
  }
56406
56548
  }, [formatOptions]);
56407
- const createStackHorizontalBarChart = () => {
56549
+ const createDotPlot = () => {
56408
56550
  ({ formatOptions, svg, width, height } = firstFunctionBeforeRender$1(
56409
56551
  svgRef,
56410
56552
  formatOptions
@@ -56632,32 +56774,64 @@ const ClevelandDotPlot = ({
56632
56774
  };
56633
56775
  const getChartType = (lineData) => {
56634
56776
  lineData.forEach((lData) => {
56635
- lData.data.forEach((cData) => {
56636
- cData.hideZero = lData.properties.hideZeroValues;
56637
- cData.axis = lData.properties.axis;
56638
- cData["properties"] = lData.properties;
56777
+ lData.data.forEach((d) => {
56778
+ d.markerShape = lData.properties.markerShape || "Circle";
56779
+ d.markerSize = lData.properties.markerSize || 6;
56780
+ d.markerColor = lData.properties.markerColor || lData.properties.color;
56781
+ d.alias = lData.properties.alias;
56782
+ d.lineStyle = lData.properties.lineStyle;
56639
56783
  });
56640
56784
  });
56641
- lineData.forEach((data2, index2) => {
56785
+ const groupedData = group(
56786
+ lineData.flatMap(
56787
+ (l) => l.data.map((d) => ({
56788
+ ...d,
56789
+ color: l.properties.color
56790
+ }))
56791
+ ),
56792
+ (d) => d.dimension
56793
+ );
56794
+ const lineGroups = gTag.selectAll(".cleveland-line-group").data(Array.from(groupedData), ([d]) => d);
56795
+ const lineEnter = lineGroups.enter().append("g").attr("class", "cleveland-line-group");
56796
+ lineEnter.append("line").merge(lineGroups.select("line")).attr("y1", ([dim]) => yScale(dim)).attr("y2", ([dim]) => yScale(dim)).attr(
56797
+ "x1",
56798
+ ([, v]) => xScaleBottom(Math.min(v[0]?.value ?? 0, v[1]?.value ?? 0))
56799
+ ).attr(
56800
+ "x2",
56801
+ ([, v]) => xScaleBottom(Math.max(v[0]?.value ?? 0, v[1]?.value ?? 0))
56802
+ ).attr("stroke", "#c7c7c7").attr("stroke-width", 2).attr("stroke-dasharray", (d) => {
56803
+ switch (d[1][0].lineStyle) {
56804
+ case staticLineStyle.dotted:
56805
+ return `0,${d[1][0].lineStyle + 2}`;
56806
+ case staticLineStyle.dashed:
56807
+ return strokeDashValues;
56808
+ default:
56809
+ return "";
56810
+ }
56811
+ }).attr(
56812
+ "stroke-linecap",
56813
+ (d) => d[1][0].lineStyle === staticLineStyle.dotted ? strokeLineCap.round : ""
56814
+ );
56815
+ lineGroups.exit().remove();
56816
+ lineData.forEach((data2) => {
56642
56817
  let column = gTag.selectAll(".parentGroup").data([data2], (d) => d.properties.legendUniqueId);
56643
- column = column.enter().append("g").attr("class", `column parentGroup`).merge(column);
56644
- let columnGroups = column.selectAll(".column-group").data(data2.data, (d) => d.dimension);
56645
- let columnGroupsEnter = columnGroups.enter().append("g").attr("class", "column-group").attr(
56818
+ column = column.enter().append("g").attr("class", "parentGroup").attr(
56646
56819
  "hoverId",
56647
- (data2.properties.alias || data2.properties.name || "Legend").replace(
56648
- /\s+/g,
56649
- "-"
56650
- )
56651
- ).attr(
56652
- "transform",
56653
- (d) => `translate(0,${yScale(d.dimension)})`
56654
- );
56655
- columnGroupsEnter.merge(columnGroups).attr(
56656
- "transform",
56657
- (d) => `translate(0,${yScale(d.dimension)})`
56658
- );
56659
- columnGroupsEnter.append("line").attr("class", "cleveland-line").attr("x1", (d) => xScaleBottom(0)).attr("x2", (d) => xScaleBottom(d.value)).attr("y1", 0).attr("y2", 0).attr("stroke", "#c7c7c7").attr("stroke-width", 2);
56660
- columnGroupsEnter.append("circle").attr("class", "cleveland-dot").attr("cx", (d) => xScaleBottom(d.value)).attr("cy", 0).attr("r", 6).attr("fill", data2.properties.color).attr("opacity", 0.9).on("mousemove", (event2, d) => {
56820
+ (data2.properties.alias || data2.properties.name || "Legend").replace(/\s+/g, "-")
56821
+ ).merge(column);
56822
+ let columnGroups = column.selectAll(".column-group").data(data2.data, (d) => d.dimension);
56823
+ let columnGroupsEnter = columnGroups.enter().append("g").attr("class", "column-group");
56824
+ columnGroupsEnter.append("path").attr("class", "cleveland-dot").merge(columnGroups.select("path")).attr(
56825
+ "d",
56826
+ (d) => Symbol$1().type(Markershapes(d.markerShape)).size((d.markerSize || 6) * 70)()
56827
+ ).attr("transform", (d) => {
56828
+ const x2 = xScaleBottom(d.value);
56829
+ const y2 = yScale(d.dimension);
56830
+ return `translate(${x2},${y2})`;
56831
+ }).attr("fill", (d) => data2.properties.color).attr("opacity", 0.9).attr(
56832
+ "visibility",
56833
+ () => formatOptions.marker?.markerVisibility ? "visible" : "hidden"
56834
+ ).on("mousemove", (event2, d) => {
56661
56835
  showTooltipOnMouseMove(
56662
56836
  [
56663
56837
  {
@@ -56675,7 +56849,7 @@ const ClevelandDotPlot = ({
56675
56849
  },
56676
56850
  {
56677
56851
  key: "Legend",
56678
- value: d.legend
56852
+ value: d.alias
56679
56853
  }
56680
56854
  ],
56681
56855
  formatOptions,
@@ -56685,8 +56859,10 @@ const ClevelandDotPlot = ({
56685
56859
  let legend = (data2.properties.alias || data2.properties.name || "Legend").replace(/ /g, "-");
56686
56860
  selectAll(".parentGroup").classed("highlight", false).classed("unhighlight", true);
56687
56861
  selectAll('[hoverId="' + legend + '"]').classed("highlight", true).classed("unhighlight", false);
56862
+ select$2(event2.currentTarget.parentNode).selectAll(".halo").data([d]).join("circle").attr("class", "halo").attr("cx", xScaleBottom(d.value)).attr("cy", yScale(d.dimension)).attr("r", (d.markerSize || 6) * 3).attr("fill", d.markerColor).attr("opacity", 0.4);
56688
56863
  }).on("mouseout", () => {
56689
56864
  selectAll(".parentGroup").classed("highlight", false).classed("unhighlight", false);
56865
+ selectAll(".halo").remove();
56690
56866
  hideTooltipOnMouseOut();
56691
56867
  });
56692
56868
  columnGroups.exit().remove();
@@ -56701,9 +56877,9 @@ const ClevelandDotPlot = ({
56701
56877
  filteredData = fData;
56702
56878
  filteredDimension = fDimension;
56703
56879
  visibleBars = fVisibleBars;
56704
- drawLineChart();
56880
+ drawDotPlot();
56705
56881
  };
56706
- const drawLineChart = () => {
56882
+ const drawDotPlot = () => {
56707
56883
  getYScale();
56708
56884
  getYAxis();
56709
56885
  initYaxisBar(
@@ -56751,8 +56927,8 @@ const ClevelandDotPlot = ({
56751
56927
  onDataLabelCoordinatesChange,
56752
56928
  yScale,
56753
56929
  columnWidth,
56754
- false,
56755
56930
  isReportEditable,
56931
+ false,
56756
56932
  barChart
56757
56933
  );
56758
56934
  getConnectors();
@@ -56990,11 +57166,11 @@ const ClevelandDotPlot = ({
56990
57166
  export {
56991
57167
  AreaChart,
56992
57168
  BubbleChart,
56993
- ClevelandDotPlot,
56994
57169
  ColumnChart,
56995
57170
  ColumnHistogramChart,
56996
57171
  CustomColumnChart,
56997
57172
  DonutChart,
57173
+ DotPlot,
56998
57174
  HorizontalBarChart,
56999
57175
  HorizontalHistogramChart,
57000
57176
  LayeredColumnChart,