@vizabi/bubblechart 0.0.4 → 0.0.11

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.
@@ -1,17 +1,37 @@
1
- // https://github.com/vizabi/bubblechart#readme v0.0.4 build 1680086164280 Copyright 2023 Gapminder Foundation and contributors
1
+ // https://github.com/vizabi/bubblechart#readme v0.0.11 build 1680128721323 Copyright 2023 Gapminder Foundation and contributors
2
2
  (function (global, factory) {
3
- typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory(require('VizabiSharedComponents'), require('d3'), require('mobx')) :
4
- typeof define === 'function' && define.amd ? define(['VizabiSharedComponents', 'd3', 'mobx'], factory) :
3
+ typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory(require('@vizabi/shared-components'), require('d3'), require('mobx')) :
4
+ typeof define === 'function' && define.amd ? define(['@vizabi/shared-components', 'd3', 'mobx'], factory) :
5
5
  (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.BubbleChart = factory(global.VizabiSharedComponents, global.d3, global.mobx));
6
- })(this, (function (VizabiSharedComponents, d3$1, mobx) { 'use strict';
6
+ })(this, (function (sharedComponents, d3, mobx) { 'use strict';
7
+
8
+ function _interopNamespace(e) {
9
+ if (e && e.__esModule) return e;
10
+ var n = Object.create(null);
11
+ if (e) {
12
+ Object.keys(e).forEach(function (k) {
13
+ if (k !== 'default') {
14
+ var d = Object.getOwnPropertyDescriptor(e, k);
15
+ Object.defineProperty(n, k, d.get ? d : {
16
+ enumerable: true,
17
+ get: function () { return e[k]; }
18
+ });
19
+ }
20
+ });
21
+ }
22
+ n["default"] = e;
23
+ return Object.freeze(n);
24
+ }
25
+
26
+ var d3__namespace = /*#__PURE__*/_interopNamespace(d3);
7
27
 
8
28
  class PanZoom {
9
29
 
10
30
  constructor(context) {
11
31
  this.context = context;
12
32
 
13
- this.dragRectangle = d3$1.drag();
14
- this.zoomer = d3$1.zoom();
33
+ this.dragRectangle = d3__namespace.drag();
34
+ this.zoomer = d3__namespace.zoom();
15
35
 
16
36
  // this.dragLock = false;
17
37
 
@@ -55,8 +75,8 @@
55
75
  }
56
76
 
57
77
  return {
58
- x: d3$1.pointer(event, this)[0],
59
- y: d3$1.pointer(event, this)[1]
78
+ x: d3__namespace.pointer(event, this)[0],
79
+ y: d3__namespace.pointer(event, this)[1]
60
80
  };
61
81
  };
62
82
  }
@@ -81,8 +101,8 @@
81
101
 
82
102
  // self.dragLock = true;
83
103
  this.origin = {
84
- x: d3$1.pointer(event, this)[0],
85
- y: d3$1.pointer(event, this)[1]
104
+ x: d3__namespace.pointer(event, this)[0],
105
+ y: d3__namespace.pointer(event, this)[1]
86
106
  };
87
107
  _this.DOM.zoomRect.classed("vzb-invisible", false);
88
108
  },
@@ -111,8 +131,8 @@
111
131
  .classed("vzb-invisible", true);
112
132
 
113
133
  this.target = {
114
- x: d3$1.pointer(event, this)[0],
115
- y: d3$1.pointer(event, this)[1]
134
+ x: d3__namespace.pointer(event, this)[0],
135
+ y: d3__namespace.pointer(event, this)[1]
116
136
  };
117
137
  if (Math.abs(this.origin.x - this.target.x) < 10 || Math.abs(this.origin.y - this.target.y) < 10) return;
118
138
 
@@ -125,7 +145,7 @@
125
145
  _this.ui.cursorMode === "plus";
126
146
 
127
147
  self._zoomOnRectangle(
128
- d3$1.select(this),
148
+ d3__namespace.select(this),
129
149
  this.origin.x,
130
150
  this.origin.y,
131
151
  this.target.x,
@@ -245,7 +265,7 @@
245
265
  }
246
266
 
247
267
  //limit zoom translate
248
- self.zoomSelection.property("__zoom", d3$1.zoomIdentity.translate(pan[0], pan[1]).scale(zoom));
268
+ self.zoomSelection.property("__zoom", d3__namespace.zoomIdentity.translate(pan[0], pan[1]).scale(zoom));
249
269
 
250
270
  const xPanOffset = _this.width * zoom * ratioX;
251
271
  const yPanOffset = _this.height * zoom * ratioY;
@@ -302,7 +322,7 @@
302
322
  }
303
323
 
304
324
  //zoomer.translate = pan;
305
- //self.zoomSelection.property("__zoom", d3_zoomIdentity.translate(pan[0], pan[1]).scale(zoom));
325
+ //self.zoomSelection.property("__zoom", d3.zoomIdentity.translate(pan[0], pan[1]).scale(zoom));
306
326
 
307
327
  /*
308
328
  * Clamp the xRange and yRange by the amount that the bounds
@@ -369,7 +389,7 @@
369
389
  }
370
390
 
371
391
  const formatter = function(n) {
372
- return VizabiSharedComponents.LegacyUtils.isDate(n) ? n : +n.toFixed(2);
392
+ return sharedComponents.LegacyUtils.isDate(n) ? n : +n.toFixed(2);
373
393
  };
374
394
 
375
395
  const zoomedXRange = xRangeBoundsBumped;
@@ -453,12 +473,12 @@
453
473
  if (!duration) duration = _this.duration;
454
474
 
455
475
  //d3 extent returns min and max of the input array as [min, max]
456
- const mmX = d3$1.extent(VizabiSharedComponents.LegacyUtils.values(_this.frame.x));
457
- const mmY = d3$1.extent(VizabiSharedComponents.LegacyUtils.values(_this.frame.y));
476
+ const mmX = d3__namespace.extent(sharedComponents.LegacyUtils.values(_this.frame.x));
477
+ const mmY = d3__namespace.extent(sharedComponents.LegacyUtils.values(_this.frame.y));
458
478
 
459
479
  //protection agains unreasonable min-max results -- abort function
460
480
  if (!mmX[0] && mmX[0] !== 0 || !mmX[1] && mmX[1] !== 0 || !mmY[0] && mmY[0] !== 0 || !mmY[1] && mmY[1] !== 0) {
461
- return VizabiSharedComponents.LegacyUtils.warn("panZoom.expandCanvas: X or Y min/max are broken. Aborting with no action");
481
+ return sharedComponents.LegacyUtils.warn("panZoom.expandCanvas: X or Y min/max are broken. Aborting with no action");
462
482
  }
463
483
  /*
464
484
  * Use a range bumped scale to correctly accommodate the range bump
@@ -553,7 +573,7 @@
553
573
  _zoomOnRectangle(element, zoomedX1, zoomedY1, zoomedX2, zoomedY2, compensateDragging, duration, dontFeedToState) {
554
574
  const _this = this.context;
555
575
  const zoomer = this.zoomer;
556
- const transform = d3$1.zoomTransform(this.zoomSelection.node());
576
+ const transform = d3__namespace.zoomTransform(this.zoomSelection.node());
557
577
 
558
578
  const x1 = zoomedX1;
559
579
  const y1 = zoomedY1;
@@ -588,7 +608,7 @@
588
608
  let zoom, ratioX, ratioY;
589
609
 
590
610
  if (x1 == x2 || y1 == y2 || xRangeBoundsBumped[0] == xRangeBoundsBumped[1] || yRangeBoundsBumped[0] == yRangeBoundsBumped[1]) {
591
- return VizabiSharedComponents.LegacyUtils.warn("_zoomOnRectangle(): can not proceed because this may result in infinity zooms");
611
+ return sharedComponents.LegacyUtils.warn("_zoomOnRectangle(): can not proceed because this may result in infinity zooms");
592
612
  }
593
613
 
594
614
  if (Math.abs(x1 - x2) > Math.abs(y1 - y2)) {
@@ -633,7 +653,7 @@
633
653
  zoomer.ratioX = ratioX || 1; //NaN defaults to 1
634
654
  zoomer.duration = duration ? duration : 0;
635
655
 
636
- this.zoomSelection.call(zoomer.transform, d3$1.zoomIdentity.translate(pan[0], pan[1]).scale(zoom));
656
+ this.zoomSelection.call(zoomer.transform, d3__namespace.zoomIdentity.translate(pan[0], pan[1]).scale(zoom));
637
657
  }
638
658
 
639
659
  /*
@@ -643,12 +663,12 @@
643
663
  * function dblclicked() and what it refers to
644
664
  */
645
665
  zoomByIncrement(event, direction, duration) {
646
- const transform = d3$1.zoomTransform(this.zoomSelection.node());
666
+ const transform = d3__namespace.zoomTransform(this.zoomSelection.node());
647
667
 
648
668
  let ratio = transform.k;
649
669
  const pan = [transform.x, transform.y];
650
670
 
651
- const mouse = d3$1.pointer(event, this.zoomSelection.node());
671
+ const mouse = d3__namespace.pointer(event, this.zoomSelection.node());
652
672
  let k = Math.log(ratio) / Math.LN2;
653
673
 
654
674
  //change factor direction based on the input. default is no direction supplied
@@ -672,7 +692,7 @@
672
692
  pan[1] += mouse[1] - locus[1];
673
693
 
674
694
  this.zoomer.duration = duration || 0;
675
- this.zoomSelection.call(this.zoomer.transform, d3$1.zoomIdentity.translate(pan[0], pan[1]).scale(ratio));
695
+ this.zoomSelection.call(this.zoomer.transform, d3__namespace.zoomIdentity.translate(pan[0], pan[1]).scale(ratio));
676
696
 
677
697
  }
678
698
 
@@ -682,7 +702,7 @@
682
702
  resetZoomState(element) {
683
703
  this.zoomer.ratioY = 1;
684
704
  this.zoomer.ratioX = 1;
685
- (element || this.zoomSelection).property("__zoom", d3$1.zoomIdentity);
705
+ (element || this.zoomSelection).property("__zoom", d3__namespace.zoomIdentity);
686
706
  }
687
707
 
688
708
  reset(element, duration) {
@@ -692,7 +712,7 @@
692
712
  this.zoomer.ratioY = 1;
693
713
  this.zoomer.ratioX = 1;
694
714
  this.zoomer.duration = duration || 0;
695
- (element || this.zoomSelection).call(this.zoomer.transform, d3$1.zoomIdentity);
715
+ (element || this.zoomSelection).call(this.zoomer.transform, d3__namespace.zoomIdentity);
696
716
  }
697
717
 
698
718
  rerun(element) {
@@ -724,13 +744,13 @@
724
744
 
725
745
  this.DOM.xAxisGroupsEl.classed("vzb-invisible", !showxAxisGroups);
726
746
  if (showxAxisGroups) {
727
- const axisGroupsData = VizabiSharedComponents.Utils.injectIndexes(uiSetting.xAxisGroups[this.MDL.x.data.concept]);
747
+ const axisGroupsData = sharedComponents.Utils.injectIndexes(uiSetting.xAxisGroups[this.MDL.x.data.concept]);
728
748
  let xAxisGroups = this.DOM.xAxisGroupsEl.selectAll(".vzb-bc-x-axis-group").data(axisGroupsData);
729
749
 
730
750
  xAxisGroups.exit().remove();
731
751
  xAxisGroups = xAxisGroups.enter().append("g").attr("class", "vzb-bc-x-axis-group")
732
752
  .each(function(){
733
- const view = d3$1.select(this);
753
+ const view = d3__namespace.select(this);
734
754
  view.append("text").attr("class", "vzb-bc-x-axis-group-line").text("◆").style("text-anchor","middle");
735
755
  view.append("text").attr("class", "vzb-bc-x-axis-group-text");
736
756
  })
@@ -741,7 +761,7 @@
741
761
 
742
762
  // first pass: calculate label text sizes and margins
743
763
  xAxisGroups.each(function(d, i){
744
- const view = d3$1.select(this);
764
+ const view = d3__namespace.select(this);
745
765
 
746
766
  const text = view.select("text.vzb-bc-x-axis-group-text")
747
767
  .text(_this.localise(d.label));
@@ -751,8 +771,8 @@
751
771
  calcs.textHeight = text.node().getBBox().height;
752
772
  calcs.textWidth = text.node().getBBox().width;
753
773
 
754
- calcs.boundaryMinX_px = _this.xScale(d.min || d.min === 0? d.min : d3$1.min(_this.xScale.domain())) || 0;
755
- calcs.boundaryMaxX_px = _this.xScale(d.max || d.max === 0? d.max : d3$1.max(_this.xScale.domain())) || 0;
774
+ calcs.boundaryMinX_px = _this.xScale(d.min || d.min === 0? d.min : d3__namespace.min(_this.xScale.domain())) || 0;
775
+ calcs.boundaryMaxX_px = _this.xScale(d.max || d.max === 0? d.max : d3__namespace.max(_this.xScale.domain())) || 0;
756
776
 
757
777
  calcs.centerX_px = (calcs.boundaryMinX_px + calcs.boundaryMaxX_px) / 2;
758
778
  calcs.marginX_px = (Math.abs(calcs.boundaryMinX_px - calcs.boundaryMaxX_px) - calcs.textWidth) / 2;
@@ -765,7 +785,7 @@
765
785
  // second pass: if at least one of labels doesn't fit, switch to compact mode and recalculate text sizes and margins
766
786
  if (useShorterLabels) {
767
787
  xAxisGroups.each(function(d, i){
768
- const view = d3$1.select(this);
788
+ const view = d3__namespace.select(this);
769
789
 
770
790
  const text = view.select("text.vzb-bc-x-axis-group-text")
771
791
  .text(_this.localise(d.label_short));
@@ -781,7 +801,7 @@
781
801
 
782
802
  // third pass: actually put labels in places
783
803
  xAxisGroups.each(function(d, i){
784
- const view = d3$1.select(this);
804
+ const view = d3__namespace.select(this);
785
805
 
786
806
  const isFirst = (i == 0);
787
807
  const isLast = (i == xAxisGroups_calcs.length - 1);
@@ -811,9 +831,9 @@
811
831
 
812
832
  xAxisGroups.select("text.vzb-bc-x-axis-group-text").on("mouseenter", function(event, d) {
813
833
  const calcs = xAxisGroups_calcs[d.i];
814
- const parentView = d3$1.select(this.parentNode);
834
+ const parentView = d3__namespace.select(this.parentNode);
815
835
 
816
- d3$1.select(this).attr("font-weight", "bold");
836
+ d3__namespace.select(this).attr("font-weight", "bold");
817
837
  parentView.append("rect").lower()
818
838
  .attr("x", calcs.boundaryMinX_px)
819
839
  .attr("width", calcs.boundaryMaxX_px - calcs.boundaryMinX_px)
@@ -833,9 +853,9 @@
833
853
  .attr("y2", _this.height);
834
854
 
835
855
  }).on("mouseleave", function() {
836
- const parentView = d3$1.select(this.parentNode);
856
+ const parentView = d3__namespace.select(this.parentNode);
837
857
 
838
- d3$1.select(this).attr("font-weight", null);
858
+ d3__namespace.select(this).attr("font-weight", null);
839
859
  parentView.selectAll("rect").remove();
840
860
  parentView.selectAll("line").remove();
841
861
  });
@@ -849,8 +869,8 @@
849
869
 
850
870
  this.DOM.lineEqualXY.classed("vzb-invisible", !showLineEqualXY);
851
871
  if (showLineEqualXY) {
852
- const min = d3$1.min(this.yScale.domain().concat(this.xScale.domain()));
853
- const max = d3$1.max(this.yScale.domain().concat(this.xScale.domain()));
872
+ const min = d3__namespace.min(this.yScale.domain().concat(this.xScale.domain()));
873
+ const max = d3__namespace.max(this.yScale.domain().concat(this.xScale.domain()));
854
874
 
855
875
  this.DOM.lineEqualXY
856
876
  .transition()
@@ -863,7 +883,7 @@
863
883
  }
864
884
  }
865
885
 
866
- const {ICON_QUESTION} = VizabiSharedComponents.Icons;
886
+ const {ICON_QUESTION} = sharedComponents.Icons;
867
887
  const COLOR_WHITEISH = "rgb(253, 253, 253)";
868
888
 
869
889
  const marginScaleH = (marginMin, ratio = 0) => height => marginMin + height * ratio;
@@ -881,7 +901,7 @@
881
901
  leftMarginRatio: 1,
882
902
  padding: 2,
883
903
  minRadiusPx: 0.5,
884
- maxRadiusPx: Math.max(0.5, MAX_RADIUS_EM * VizabiSharedComponents.LegacyUtils.hypotenuse(width, height)),
904
+ maxRadiusPx: Math.max(0.5, MAX_RADIUS_EM * sharedComponents.LegacyUtils.hypotenuse(width, height)),
885
905
  infoElHeight: 16,
886
906
  yAxisTitleBottomMargin: 6,
887
907
  xAxisTitleBottomMargin: 4
@@ -891,7 +911,7 @@
891
911
  leftMarginRatio: 1.6,
892
912
  padding: 2,
893
913
  minRadiusPx: 1,
894
- maxRadiusPx: Math.max(0.5, MAX_RADIUS_EM * VizabiSharedComponents.LegacyUtils.hypotenuse(width, height)),
914
+ maxRadiusPx: Math.max(0.5, MAX_RADIUS_EM * sharedComponents.LegacyUtils.hypotenuse(width, height)),
895
915
  infoElHeight: 20,
896
916
  yAxisTitleBottomMargin: 3,
897
917
  xAxisTitleBottomMargin: 4
@@ -901,7 +921,7 @@
901
921
  leftMarginRatio: 1.8,
902
922
  padding: 2,
903
923
  minRadiusPx: 1,
904
- maxRadiusPx: Math.max(0.5, MAX_RADIUS_EM * VizabiSharedComponents.LegacyUtils.hypotenuse(width, height)),
924
+ maxRadiusPx: Math.max(0.5, MAX_RADIUS_EM * sharedComponents.LegacyUtils.hypotenuse(width, height)),
905
925
  infoElHeight: 22,
906
926
  yAxisTitleBottomMargin: 3,//marginScaleH(4, 0.01)(height),
907
927
  xAxisTitleBottomMargin: marginScaleH(0, 0.01)(height),
@@ -919,18 +939,18 @@
919
939
  LARGE: {
920
940
  margin: { top: 30, bottom: marginScaleH(45, 0.03)(height), left: marginScaleW(35, 0.025)(width), right: 30 },
921
941
  yAxisTitleBottomMargin: 3,//marginScaleH(4, 0.01)(height),
922
- xAxisTitleBottomMargin: marginScaleH(-5, 0.01)(height),
942
+ xAxisTitleBottomMargin: marginScaleH(-10, 0.01)(height),
923
943
  infoElHeight: 32,
924
944
  hideSTitle: true
925
945
  }
926
946
  });
927
947
 
928
948
  // BUBBLE CHART COMPONENT
929
- class _VizabiBubbleChart extends VizabiSharedComponents.Chart {
949
+ class _VizabiBubbleChart extends sharedComponents.Chart {
930
950
 
931
951
  constructor(config) {
932
952
  config.subcomponents = [{
933
- type: VizabiSharedComponents.Labels,
953
+ type: sharedComponents.Labels,
934
954
  placeholder: ".vzb-bc-labels",
935
955
  options: {
936
956
  CSS_PREFIX: "vzb-bc",
@@ -940,7 +960,7 @@
940
960
  },
941
961
  name: "labels"
942
962
  },{
943
- type: VizabiSharedComponents.DateTimeBackground,
963
+ type: sharedComponents.DateTimeBackground,
944
964
  placeholder: ".vzb-bc-date"
945
965
  }];
946
966
 
@@ -1081,10 +1101,10 @@
1081
1101
  this.decorations = new BCDecorations(this);
1082
1102
  this._initInfoElements();
1083
1103
 
1084
- this.scrollableAncestor = VizabiSharedComponents.LegacyUtils.findScrollableAncestor(this.element);
1104
+ this.scrollableAncestor = sharedComponents.LegacyUtils.findScrollableAncestor(this.element);
1085
1105
 
1086
- this.xAxis = VizabiSharedComponents.axisSmart("bottom");
1087
- this.yAxis = VizabiSharedComponents.axisSmart("left");
1106
+ this.xAxis = sharedComponents.axisSmart("bottom");
1107
+ this.yAxis = sharedComponents.axisSmart("left");
1088
1108
 
1089
1109
  this.axisTitleComplimentStrings = {Y: "", X: "", S: "", C: ""};
1090
1110
 
@@ -1096,7 +1116,7 @@
1096
1116
 
1097
1117
  const _this = this;
1098
1118
  //keyboard listeners
1099
- d3$1.select("body")
1119
+ d3__namespace.select("body")
1100
1120
  .on("keydown", (event) => {
1101
1121
  if (_this.ui.cursorMode !== "arrow" && _this.ui.cursorMode !== "hand") return;
1102
1122
  if (event.metaKey || event.ctrlKey) _this.DOM.chartSvgAll.classed("vzb-zoomin", true);
@@ -1138,14 +1158,14 @@
1138
1158
  const dataNotesDialog = () => this.root.findChild({type: "DataNotes"});
1139
1159
  const timeSlider = () => this.root.findChild({type: "TimeSlider"});
1140
1160
 
1141
- VizabiSharedComponents.LegacyUtils.setIcon(this.DOM.yInfoEl, ICON_QUESTION)
1161
+ sharedComponents.LegacyUtils.setIcon(this.DOM.yInfoEl, ICON_QUESTION)
1142
1162
  .on("click", () => {
1143
1163
  dataNotesDialog().pin();
1144
1164
  })
1145
1165
  .on("mouseover", function() {
1146
1166
  if (timeSlider().ui.dragging) return;
1147
1167
  const rect = this.getBBox();
1148
- const coord = VizabiSharedComponents.LegacyUtils.makeAbsoluteContext(this, this.farthestViewportElement)(rect.x - 10, rect.y + rect.height + 10);
1168
+ const coord = sharedComponents.LegacyUtils.makeAbsoluteContext(this, this.farthestViewportElement)(rect.x - 10, rect.y + rect.height + 10);
1149
1169
  const toolRect = _this.root.element.node().getBoundingClientRect();
1150
1170
  const chartRect = _this.element.node().getBoundingClientRect();
1151
1171
  dataNotesDialog()
@@ -1158,14 +1178,14 @@
1158
1178
  dataNotesDialog().hide();
1159
1179
  });
1160
1180
 
1161
- VizabiSharedComponents.LegacyUtils.setIcon(this.DOM.xInfoEl, ICON_QUESTION)
1181
+ sharedComponents.LegacyUtils.setIcon(this.DOM.xInfoEl, ICON_QUESTION)
1162
1182
  .on("click", () => {
1163
1183
  dataNotesDialog().pin();
1164
1184
  })
1165
1185
  .on("mouseover", function() {
1166
1186
  if (timeSlider().ui.dragging) return;
1167
1187
  const rect = this.getBBox();
1168
- const coord = VizabiSharedComponents.LegacyUtils.makeAbsoluteContext(this, this.farthestViewportElement)(rect.x - 10, rect.y + rect.height + 10);
1188
+ const coord = sharedComponents.LegacyUtils.makeAbsoluteContext(this, this.farthestViewportElement)(rect.x - 10, rect.y + rect.height + 10);
1169
1189
  const toolRect = _this.root.element.node().getBoundingClientRect();
1170
1190
  const chartRect = _this.element.node().getBoundingClientRect();
1171
1191
  dataNotesDialog()
@@ -1249,7 +1269,7 @@
1249
1269
  .attr("patternContentUnits", "objectBoundingBox")
1250
1270
  .html(d => d[1][colorConcept])
1251
1271
  .each(function() {
1252
- const svg = d3$1.select(this).select("svg");
1272
+ const svg = d3__namespace.select(this).select("svg");
1253
1273
  if (svg.empty()) return;
1254
1274
 
1255
1275
  if (!svg.attr("viewBox"))
@@ -1314,7 +1334,7 @@
1314
1334
  .attr("id", d => `vzb-bc-bubble-${d[Symbol.for("key")]}-${this.id}`)
1315
1335
  .style("opacity", d => d[Symbol.for("opacity")] = this._getBubbleOpacity(d))
1316
1336
  .call(selection => {
1317
- if(!VizabiSharedComponents.LegacyUtils.isTouchDevice()){
1337
+ if(!sharedComponents.LegacyUtils.isTouchDevice()){
1318
1338
  selection
1319
1339
  .on("mouseover", (event, d) => {
1320
1340
  if (this.ui.cursorMode !== "arrow" && this.ui.cursorMode !== "hand") return;
@@ -1344,7 +1364,7 @@
1344
1364
  const isTrail = isTrailBubble(d);
1345
1365
  const isExtrapolated = d[Symbol.for("extrapolated")];
1346
1366
  const headTrail = isTrail && !dataNext[Symbol.for("trailHeadKey")];
1347
- const view = d3$1.select(this);
1367
+ const view = d3__namespace.select(this);
1348
1368
  const circle = view.select("circle");
1349
1369
  const diagonalLine = view.select(".vzb-diagonal-line");
1350
1370
 
@@ -1356,7 +1376,7 @@
1356
1376
  //d.hidden = (!valueS && valueS !== 0) || valueX == null || valueY == null;
1357
1377
 
1358
1378
  //view.classed("vzb-hidden", d.hidden);
1359
- d.r = VizabiSharedComponents.LegacyUtils.areaToRadius(_this.sScale(valueS || 0));
1379
+ d.r = sharedComponents.LegacyUtils.areaToRadius(_this.sScale(valueS || 0));
1360
1380
  const scaledX = _this.xScale(valueX);
1361
1381
  const scaledY = _this.yScale(valueY);
1362
1382
  const scaledC = _this.__getColor(d[Symbol.for(isTrail ? "trailHeadKey" : "key")], valueC);
@@ -1417,7 +1437,7 @@
1417
1437
  const headTrail = isTrail && !dataNext[Symbol.for("trailHeadKey")];
1418
1438
 
1419
1439
  const valueS = d.size;
1420
- d.r = VizabiSharedComponents.LegacyUtils.areaToRadius(_this.sScale(valueS || 0));
1440
+ d.r = sharedComponents.LegacyUtils.areaToRadius(_this.sScale(valueS || 0));
1421
1441
  if (isTrail && d["frame"] < trailRedrawDate) return;
1422
1442
 
1423
1443
  const valueX = d[_this._alias("x")];
@@ -1431,7 +1451,7 @@
1431
1451
  const scaledY = _this.yScale(valueY);
1432
1452
  const scaledC = _this.__getColor(d[Symbol.for(isTrail ? "trailHeadKey" : "key")], valueC);
1433
1453
 
1434
- const group = d3$1.select(this);
1454
+ const group = d3__namespace.select(this);
1435
1455
  if (!duration || !headTrail) {
1436
1456
  const circle = group.select("circle");
1437
1457
  if (duration && !isTrail) {
@@ -1505,11 +1525,11 @@
1505
1525
  const isTrail = isTrailBubble(d);
1506
1526
 
1507
1527
  const view = duration && !isTrail ?
1508
- d3$1.select(this).transition(transition)
1528
+ d3__namespace.select(this).transition(transition)
1509
1529
  .duration(duration*0.9)
1510
1530
  .style("opacity", 0)
1511
1531
  :
1512
- d3$1.select(this).interrupt();
1532
+ d3__namespace.select(this).interrupt();
1513
1533
 
1514
1534
  view
1515
1535
  .remove();
@@ -1546,12 +1566,12 @@
1546
1566
  const valueS = d.size;
1547
1567
  const valueC = d.color;
1548
1568
 
1549
- d.r = VizabiSharedComponents.LegacyUtils.areaToRadius(_this.sScale(valueS || 0));
1569
+ d.r = sharedComponents.LegacyUtils.areaToRadius(_this.sScale(valueS || 0));
1550
1570
  const scaledX = _this.xScale(valueX);
1551
1571
  const scaledY = _this.yScale(valueY);
1552
1572
  const scaledC = _this.__getColor(d[Symbol.for(isTrail ? "trailHeadKey" : "key")], valueC);
1553
1573
 
1554
- const group = d3$1.select(this);
1574
+ const group = d3__namespace.select(this);
1555
1575
 
1556
1576
  if (duration && headTrail) {
1557
1577
  group.style("opacity", 0)
@@ -1620,7 +1640,7 @@
1620
1640
 
1621
1641
  __getZoomed(type, zoomed, domain) {
1622
1642
  //const zoomed = values[`zoomed${type}`];
1623
- return d3[type.toLowerCase()](zoomed !== null ? zoomed : domain);
1643
+ return d3__namespace[type.toLowerCase()](zoomed !== null ? zoomed : domain);
1624
1644
  }
1625
1645
 
1626
1646
  __getZoomedMin(values, domain) {
@@ -1710,7 +1730,7 @@
1710
1730
  PROFILE_CONSTANTS_FOR_PROJECTOR(this.elementWidth, this.elementHeight)
1711
1731
  );
1712
1732
 
1713
- if (!this.elementHeight || !this.elementWidth) return VizabiSharedComponents.LegacyUtils.warn("Chart _updateProfile() abort: container is too little or has display:none");
1733
+ if (!this.elementHeight || !this.elementWidth) return sharedComponents.LegacyUtils.warn("Chart _updateProfile() abort: container is too little or has display:none");
1714
1734
  }
1715
1735
 
1716
1736
  _getDuration() {
@@ -1734,34 +1754,34 @@
1734
1754
 
1735
1755
  this.strings = {
1736
1756
  title: {
1737
- Y: VizabiSharedComponents.Utils.getConceptName(y, this.localise),
1738
- X: VizabiSharedComponents.Utils.getConceptName(x, this.localise),
1739
- S: VizabiSharedComponents.Utils.getConceptName(size, this.localise),
1740
- C: VizabiSharedComponents.Utils.getConceptName(color, this.localise)
1757
+ Y: sharedComponents.Utils.getConceptName(y, this.localise),
1758
+ X: sharedComponents.Utils.getConceptName(x, this.localise),
1759
+ S: sharedComponents.Utils.getConceptName(size, this.localise),
1760
+ C: sharedComponents.Utils.getConceptName(color, this.localise)
1741
1761
  },
1742
1762
  title_short: {
1743
- Y: VizabiSharedComponents.Utils.getConceptShortName(y, this.localise),
1744
- X: VizabiSharedComponents.Utils.getConceptShortName(x, this.localise),
1745
- S: VizabiSharedComponents.Utils.getConceptShortName(size, this.localise),
1746
- C: VizabiSharedComponents.Utils.getConceptShortName(color, this.localise)
1763
+ Y: sharedComponents.Utils.getConceptShortName(y, this.localise),
1764
+ X: sharedComponents.Utils.getConceptShortName(x, this.localise),
1765
+ S: sharedComponents.Utils.getConceptShortName(size, this.localise),
1766
+ C: sharedComponents.Utils.getConceptShortName(color, this.localise)
1747
1767
  },
1748
1768
  subtitle: {
1749
- Y: VizabiSharedComponents.Utils.getConceptNameMinusShortName(y, this.localise),
1750
- X: VizabiSharedComponents.Utils.getConceptNameMinusShortName(x, this.localise)
1769
+ Y: sharedComponents.Utils.getConceptNameMinusShortName(y, this.localise),
1770
+ X: sharedComponents.Utils.getConceptNameMinusShortName(x, this.localise)
1751
1771
  },
1752
1772
  unit: {
1753
- Y: VizabiSharedComponents.Utils.getConceptUnit(y),
1754
- X: VizabiSharedComponents.Utils.getConceptUnit(x),
1755
- S: VizabiSharedComponents.Utils.getConceptUnit(size),
1756
- C: VizabiSharedComponents.Utils.getConceptUnit(color)
1773
+ Y: sharedComponents.Utils.getConceptUnit(y),
1774
+ X: sharedComponents.Utils.getConceptUnit(x),
1775
+ S: sharedComponents.Utils.getConceptUnit(size),
1776
+ C: sharedComponents.Utils.getConceptUnit(color)
1757
1777
  }
1758
1778
  };
1759
1779
 
1760
1780
  Promise.all([
1761
- VizabiSharedComponents.Utils.getConceptNameCompliment(y),
1762
- VizabiSharedComponents.Utils.getConceptNameCompliment(x),
1763
- VizabiSharedComponents.Utils.getConceptNameCompliment(size),
1764
- VizabiSharedComponents.Utils.getConceptNameCompliment(color)
1781
+ sharedComponents.Utils.getConceptNameCompliment(y),
1782
+ sharedComponents.Utils.getConceptNameCompliment(x),
1783
+ sharedComponents.Utils.getConceptNameCompliment(size),
1784
+ sharedComponents.Utils.getConceptNameCompliment(color)
1765
1785
  ]).then(mobx.action(response => {
1766
1786
  [
1767
1787
  this.axisTitleComplimentStrings.Y,
@@ -1776,7 +1796,7 @@
1776
1796
  const treemenu = this.root.findChild({type: "TreeMenu"});
1777
1797
 
1778
1798
  this.DOM.yTitleEl
1779
- .classed("vzb-disabled", treemenu.state.ownReadiness !== VizabiSharedComponents.Utils.STATUS.READY)
1799
+ .classed("vzb-disabled", treemenu.state.ownReadiness !== sharedComponents.Utils.STATUS.READY)
1780
1800
  .on("click", () => {
1781
1801
  treemenu
1782
1802
  .encoding(this._alias("y"))
@@ -1787,7 +1807,7 @@
1787
1807
  });
1788
1808
 
1789
1809
  this.DOM.xTitleEl
1790
- .classed("vzb-disabled", treemenu.state.ownReadiness !== VizabiSharedComponents.Utils.STATUS.READY)
1810
+ .classed("vzb-disabled", treemenu.state.ownReadiness !== sharedComponents.Utils.STATUS.READY)
1791
1811
  .on("click", () => {
1792
1812
  treemenu
1793
1813
  .encoding(this._alias("x"))
@@ -2022,7 +2042,7 @@
2022
2042
 
2023
2043
  if (yInfoEl.select("svg").node()) {
2024
2044
  const titleBBox = yTitleEl.node().getBBox();
2025
- const t = VizabiSharedComponents.LegacyUtils.transform(yTitleEl.node());
2045
+ const t = sharedComponents.LegacyUtils.transform(yTitleEl.node());
2026
2046
  const hTranslate = isRTL ? (titleBBox.x + t.translateX - infoElHeight * 1.4) : (titleBBox.x + t.translateX + titleBBox.width + infoElHeight * 0.4);
2027
2047
  const vTranslate = isRTL ? (t.translateY + infoElHeight * 1.4 + titleBBox.width * 0.5) : (t.translateY - infoElHeight * 0.4 - titleBBox.width * 0.5);
2028
2048
  const conceptPropsY = y.data.conceptProps;
@@ -2039,7 +2059,7 @@
2039
2059
 
2040
2060
  if (xInfoEl.select("svg").node()) {
2041
2061
  const titleBBox = xTitleEl.node().getBBox();
2042
- const t = VizabiSharedComponents.LegacyUtils.transform(xTitleEl.node());
2062
+ const t = sharedComponents.LegacyUtils.transform(xTitleEl.node());
2043
2063
  const hTranslate = isRTL ? (titleBBox.x + t.translateX - infoElHeight * 1.4) : (titleBBox.x + t.translateX + titleBBox.width + infoElHeight * 0.4);
2044
2064
  const conceptPropsX = x.data.conceptProps;
2045
2065
 
@@ -2055,7 +2075,7 @@
2055
2075
  _rangeBump(arg, undo) {
2056
2076
  const bump = this.profileConstants.maxRadiusPx;
2057
2077
  undo = undo ? -1 : 1;
2058
- if (VizabiSharedComponents.LegacyUtils.isArray(arg) && arg.length > 1) {
2078
+ if (sharedComponents.LegacyUtils.isArray(arg) && arg.length > 1) {
2059
2079
  let z1 = arg[0];
2060
2080
  let z2 = arg[arg.length - 1];
2061
2081
 
@@ -2073,7 +2093,7 @@
2073
2093
  } else ;
2074
2094
  return [z1, z2];
2075
2095
  }
2076
- VizabiSharedComponents.LegacyUtils.warn("rangeBump error: input is not an array or empty");
2096
+ sharedComponents.LegacyUtils.warn("rangeBump error: input is not an array or empty");
2077
2097
  }
2078
2098
 
2079
2099
  _updateSTitle(titleS, titleC) {
@@ -2116,9 +2136,9 @@
2116
2136
  }
2117
2137
 
2118
2138
  _getTransition(duration) {
2119
- return duration ? d3$1.transition()
2139
+ return duration ? d3__namespace.transition()
2120
2140
  .duration(duration)
2121
- .ease(d3$1.easeLinear) : d3$1.transition();
2141
+ .ease(d3__namespace.easeLinear) : d3__namespace.transition();
2122
2142
  }
2123
2143
 
2124
2144
  _bubblesInteract() {
@@ -2166,11 +2186,11 @@
2166
2186
 
2167
2187
  const extent = this.MDL.size.scale.extent || [0, 1];
2168
2188
 
2169
- let minArea = VizabiSharedComponents.LegacyUtils.radiusToArea(Math.max(maxRadiusPx * extent[0], minRadiusPx));
2170
- let maxArea = VizabiSharedComponents.LegacyUtils.radiusToArea(Math.max(maxRadiusPx * extent[1], minRadiusPx));
2189
+ let minArea = sharedComponents.LegacyUtils.radiusToArea(Math.max(maxRadiusPx * extent[0], minRadiusPx));
2190
+ let maxArea = sharedComponents.LegacyUtils.radiusToArea(Math.max(maxRadiusPx * extent[1], minRadiusPx));
2171
2191
 
2172
2192
  let range = minArea === maxArea? [minArea, maxArea] :
2173
- d3$1.range(minArea, maxArea, (maxArea - minArea)/(this.sScale.domain().length - 1)).concat(maxArea);
2193
+ d3__namespace.range(minArea, maxArea, (maxArea - minArea)/(this.sScale.domain().length - 1)).concat(maxArea);
2174
2194
 
2175
2195
  this.sScale.range(range);
2176
2196
  }
@@ -2408,7 +2428,7 @@
2408
2428
  const _this = this;
2409
2429
  const selectedFilter = this.MDL.selected.data.filter;
2410
2430
 
2411
- if (VizabiSharedComponents.LegacyUtils.isTouchDevice()) {
2431
+ if (sharedComponents.LegacyUtils.isTouchDevice()) {
2412
2432
  _this.MDL.highlighted.data.filter.clear();
2413
2433
  _this._labels.showCloseCross(null, false);
2414
2434
  } else {
@@ -2479,7 +2499,7 @@
2479
2499
  cache.labelX0 = trailData[this._alias("x")];
2480
2500
  cache.labelY0 = trailData[this._alias("y")];
2481
2501
  cache.scaledC0 = trailData.color != null ? this.cScale(trailData.color) : COLOR_WHITEISH,
2482
- cache.scaledS0 = (trailData.size || trailData.size === 0) ? VizabiSharedComponents.LegacyUtils.areaToRadius(this.sScale(trailData.size)) : null;
2502
+ cache.scaledS0 = (trailData.size || trailData.size === 0) ? sharedComponents.LegacyUtils.areaToRadius(this.sScale(trailData.size)) : null;
2483
2503
  cache.valueS0 = trailData.size;
2484
2504
  trailData.hidden = hidden;
2485
2505
  this._labels.updateLabel(trailData, cache, cache.labelX0, cache.labelY0, trailData.size, trailData.color, labelText, trailData.size_label, duration, showhide);
@@ -2489,7 +2509,7 @@
2489
2509
  cache.labelX0 = x;
2490
2510
  cache.labelY0 = y;
2491
2511
  cache.scaledC0 = d.color != null ? this.cScale(d.color) : COLOR_WHITEISH,
2492
- cache.scaledS0 = (d.size || d.size === 0) ? VizabiSharedComponents.LegacyUtils.areaToRadius(this.sScale(d.size)) : null;
2512
+ cache.scaledS0 = (d.size || d.size === 0) ? sharedComponents.LegacyUtils.areaToRadius(this.sScale(d.size)) : null;
2493
2513
  cache.valueS0 = d.size;
2494
2514
  d.hidden = hidden;
2495
2515
  this._labels.updateLabel(d, cache, x, y, d.size, d.color, labelText, d.size_label, duration, showhide);
@@ -2520,7 +2540,7 @@
2520
2540
  cache.labelX0 = d[this._alias("x")];
2521
2541
  cache.labelY0 = d[this._alias("y")];
2522
2542
  cache.scaledC0 = d.color != null ? this.cScale(d.color) : COLOR_WHITEISH,
2523
- cache.scaledS0 = (d.size || d.size === 0) ? VizabiSharedComponents.LegacyUtils.areaToRadius(this.sScale(d.size)) : null;
2543
+ cache.scaledS0 = (d.size || d.size === 0) ? sharedComponents.LegacyUtils.areaToRadius(this.sScale(d.size)) : null;
2524
2544
  cache.valueS0 = d.size;
2525
2545
  cache.initTextBBox = null;
2526
2546
  cache.initFontSize = null;
@@ -2532,7 +2552,7 @@
2532
2552
  if (typeof d.label == "object")
2533
2553
  return Object.entries(d.label)
2534
2554
  .filter(entry => entry[0] != this.MDL.frame.data.concept)
2535
- .map(entry => VizabiSharedComponents.LegacyUtils.isNumber(entry[1]) ? (entry[0] + ": " + entry[1]) : entry[1])
2555
+ .map(entry => sharedComponents.LegacyUtils.isNumber(entry[1]) ? (entry[0] + ": " + entry[1]) : entry[1])
2536
2556
  .join(", ");
2537
2557
  if (d.label != null) return "" + d.label;
2538
2558
  return d[Symbol.for("key")];
@@ -2595,9 +2615,9 @@
2595
2615
  "cScale": mobx.computed
2596
2616
  });
2597
2617
 
2598
- VizabiSharedComponents.Chart.add("bubblechart", VizabiBubbleChart);
2618
+ sharedComponents.Chart.add("bubblechart", VizabiBubbleChart);
2599
2619
 
2600
- class BubbleChart extends VizabiSharedComponents.BaseComponent {
2620
+ class BubbleChart extends sharedComponents.BaseComponent {
2601
2621
 
2602
2622
  constructor(config){
2603
2623
 
@@ -2613,7 +2633,7 @@
2613
2633
  config.name = "bubblechart";
2614
2634
 
2615
2635
  config.subcomponents = [{
2616
- type: VizabiSharedComponents.Repeater,
2636
+ type: sharedComponents.Repeater,
2617
2637
  placeholder: ".vzb-repeater",
2618
2638
  model: marker,
2619
2639
  options: {
@@ -2622,48 +2642,48 @@
2622
2642
  },
2623
2643
  name: "chart",
2624
2644
  },{
2625
- type: VizabiSharedComponents.TimeSlider,
2645
+ type: sharedComponents.TimeSlider,
2626
2646
  placeholder: ".vzb-timeslider",
2627
2647
  model: marker,
2628
2648
  name: "time-slider"
2629
2649
  },{
2630
- type: VizabiSharedComponents.SteppedSlider,
2650
+ type: sharedComponents.SteppedSlider,
2631
2651
  placeholder: ".vzb-speedslider",
2632
2652
  model: marker,
2633
2653
  name: "speed-slider"
2634
2654
  },{
2635
- type: VizabiSharedComponents.TreeMenu,
2655
+ type: sharedComponents.TreeMenu,
2636
2656
  placeholder: ".vzb-treemenu",
2637
2657
  model: marker,
2638
2658
  name: "tree-menu"
2639
2659
  },{
2640
- type: VizabiSharedComponents.DataWarning,
2660
+ type: sharedComponents.DataWarning,
2641
2661
  placeholder: ".vzb-datawarning",
2642
2662
  options: {button: ".vzb-datawarning-button"},
2643
2663
  model: marker,
2644
2664
  name: "data-warning"
2645
2665
  },{
2646
- type: VizabiSharedComponents.DataNotes,
2666
+ type: sharedComponents.DataNotes,
2647
2667
  placeholder: ".vzb-datanotes",
2648
2668
  model: marker
2649
2669
  },{
2650
- type: VizabiSharedComponents.Dialogs,
2670
+ type: sharedComponents.Dialogs,
2651
2671
  placeholder: ".vzb-dialogs",
2652
2672
  model: marker,
2653
2673
  name: "dialogs"
2654
2674
  },{
2655
- type: VizabiSharedComponents.ButtonList,
2675
+ type: sharedComponents.ButtonList,
2656
2676
  placeholder: ".vzb-buttonlist",
2657
2677
  model: marker,
2658
2678
  name: "buttons"
2659
2679
  },{
2660
- type: VizabiSharedComponents.SpaceConfig,
2680
+ type: sharedComponents.SpaceConfig,
2661
2681
  placeholder: ".vzb-spaceconfig",
2662
2682
  options: {button: ".vzb-spaceconfig-button"},
2663
2683
  model: marker,
2664
2684
  name: "space-config"
2665
2685
  },{
2666
- type: VizabiSharedComponents.ErrorMessage,
2686
+ type: sharedComponents.ErrorMessage,
2667
2687
  placeholder: ".vzb-errormessage",
2668
2688
  model: marker,
2669
2689
  name: "error-message"
@@ -2687,9 +2707,9 @@
2687
2707
  `;
2688
2708
 
2689
2709
  config.services = {
2690
- Vizabi: new VizabiSharedComponents.CapitalVizabiService({Vizabi: config.Vizabi}),
2691
- locale: new VizabiSharedComponents.LocaleService(config.locale),
2692
- layout: new VizabiSharedComponents.LayoutService(config.layout)
2710
+ Vizabi: new sharedComponents.CapitalVizabiService({Vizabi: config.Vizabi}),
2711
+ locale: new sharedComponents.LocaleService(config.locale),
2712
+ layout: new sharedComponents.LayoutService(config.layout)
2693
2713
  };
2694
2714
 
2695
2715
  super(config);
@@ -2751,7 +2771,7 @@
2751
2771
  }
2752
2772
  });
2753
2773
 
2754
- BubbleChart.versionInfo = { version: "0.0.4", build: 1680086164280, package: {"homepage":"https://github.com/vizabi/bubblechart#readme","name":"@vizabi/bubblechart","description":"Vizabi bubble chart"}, sharedComponents: VizabiSharedComponents.versionInfo};
2774
+ BubbleChart.versionInfo = { version: "0.0.11", build: 1680128721323, package: {"homepage":"https://github.com/vizabi/bubblechart#readme","name":"@vizabi/bubblechart","description":"Vizabi bubble chart"}, sharedComponents: sharedComponents.versionInfo};
2755
2775
 
2756
2776
  return BubbleChart;
2757
2777