@carbon/charts 0.41.64 → 0.41.65
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +8 -3
- package/bundle.js +1 -1
- package/components/graphs/circle-pack.js +23 -14
- package/components/graphs/circle-pack.js.map +1 -1
- package/demo/data/bundle.js +1 -1
- package/demo/data/index.js +1 -0
- package/demo/data/index.js.map +1 -1
- package/demo/styles.css +48 -12
- package/demo/styles.css.map +1 -1
- package/demo/styles.min.css +1 -1
- package/demo/styles.min.css.map +1 -1
- package/demo/tsconfig.tsbuildinfo +1 -1
- package/package.json +1 -1
- package/styles/graphs/_circle-pack.scss +18 -3
- package/styles-g10.css +13 -3
- package/styles-g10.css.map +1 -1
- package/styles-g10.min.css +1 -1
- package/styles-g10.min.css.map +1 -1
- package/styles-g100.css +13 -3
- package/styles-g100.css.map +1 -1
- package/styles-g100.min.css +1 -1
- package/styles-g100.min.css.map +1 -1
- package/styles-g90.css +13 -3
- package/styles-g90.css.map +1 -1
- package/styles-g90.min.css +1 -1
- package/styles-g90.min.css.map +1 -1
- package/styles.css +13 -3
- package/styles.css.map +1 -1
- package/styles.min.css +1 -1
- package/styles.min.css.map +1 -1
- package/tsconfig.tsbuildinfo +1 -1
|
@@ -169,17 +169,18 @@ var CirclePack = /** @class */ (function (_super) {
|
|
|
169
169
|
events.addEventListener(Events.Legend.ITEM_MOUSEOUT, this.handleLegendMouseOut);
|
|
170
170
|
};
|
|
171
171
|
CirclePack.prototype.removeBackgroundListeners = function () {
|
|
172
|
-
var chartSvg = select(this.services.domUtils.
|
|
172
|
+
var chartSvg = select(this.services.domUtils.getMainSVG());
|
|
173
173
|
chartSvg.on('click', function () { return null; });
|
|
174
174
|
};
|
|
175
175
|
CirclePack.prototype.setBackgroundListeners = function () {
|
|
176
|
-
var chartSvg = select(this.services.domUtils.
|
|
176
|
+
var chartSvg = select(this.services.domUtils.getMainSVG());
|
|
177
177
|
var self = this;
|
|
178
178
|
var canvasSelection = this.parent.selectAll('circle.node');
|
|
179
179
|
var zoomSetting = Tools.getProperty(Configuration, 'canvasZoomSettings');
|
|
180
180
|
chartSvg.on('click', function () {
|
|
181
181
|
self.focal = null;
|
|
182
182
|
self.model.updateHierarchyLevel(2);
|
|
183
|
+
chartSvg.classed('zoomed-in', false);
|
|
183
184
|
self.services.canvasZoom.zoomOut(canvasSelection, zoomSetting);
|
|
184
185
|
});
|
|
185
186
|
};
|
|
@@ -195,9 +196,8 @@ var CirclePack = /** @class */ (function (_super) {
|
|
|
195
196
|
.on('mouseover', function (datum) {
|
|
196
197
|
var hoveredElement = select(this);
|
|
197
198
|
hoveredElement.classed('hovered', true);
|
|
198
|
-
var
|
|
199
|
-
|
|
200
|
-
.classList.contains('non-focal');
|
|
199
|
+
var hierarchyLevel = self.model.getHierarchyLevel();
|
|
200
|
+
var disabled = hierarchyLevel > 2 && !hoveredElement.classed('focal');
|
|
201
201
|
var canvasZoomEnabled = Tools.getProperty(self.model.getOptions(), 'canvasZoom', 'enabled');
|
|
202
202
|
var zoomable = false;
|
|
203
203
|
if (!disabled) {
|
|
@@ -225,7 +225,8 @@ var CirclePack = /** @class */ (function (_super) {
|
|
|
225
225
|
value = child.data.children.reduce(function (a, b) { return a + b.value; }, 0);
|
|
226
226
|
return {
|
|
227
227
|
label: child.data.name,
|
|
228
|
-
labelIcon: canvasZoomEnabled
|
|
228
|
+
labelIcon: canvasZoomEnabled &&
|
|
229
|
+
hierarchyLevel <= 2
|
|
229
230
|
? self.getZoomIcon()
|
|
230
231
|
: null,
|
|
231
232
|
value: value,
|
|
@@ -255,7 +256,9 @@ var CirclePack = /** @class */ (function (_super) {
|
|
|
255
256
|
{
|
|
256
257
|
color: fillColor,
|
|
257
258
|
label: datum.data.name,
|
|
258
|
-
labelIcon: zoomable &&
|
|
259
|
+
labelIcon: zoomable &&
|
|
260
|
+
canvasZoomEnabled &&
|
|
261
|
+
hierarchyLevel <= 2
|
|
259
262
|
? self.getZoomIcon()
|
|
260
263
|
: null,
|
|
261
264
|
value: parentValue,
|
|
@@ -296,15 +299,21 @@ var CirclePack = /** @class */ (function (_super) {
|
|
|
296
299
|
})
|
|
297
300
|
.on('click', function (datum) {
|
|
298
301
|
var hoveredElement = select(this);
|
|
299
|
-
var disabled = hoveredElement
|
|
300
|
-
|
|
301
|
-
|
|
302
|
+
var disabled = hoveredElement.classed('non-focal');
|
|
303
|
+
var zoomedIn = Tools.getProperty(self.getOptions(), 'canvasZoom', 'enabled') && self.model.getHierarchyLevel() > 2;
|
|
304
|
+
if (zoomedIn) {
|
|
305
|
+
var canvasSelection = self.parent.selectAll('circle.node');
|
|
306
|
+
var chartSvg = select(self.services.domUtils.getMainSVG());
|
|
307
|
+
chartSvg.classed('zoomed-in', false);
|
|
308
|
+
self.focal = null;
|
|
309
|
+
self.model.updateHierarchyLevel(2);
|
|
310
|
+
self.services.canvasZoom.zoomOut(canvasSelection, Configuration.canvasZoomSettings);
|
|
311
|
+
}
|
|
302
312
|
// zoom if chart has zoom enabled and if its a depth 2 circle that has children
|
|
303
|
-
if (
|
|
304
|
-
datum.depth === 2 &&
|
|
305
|
-
datum.children &&
|
|
306
|
-
!disabled) {
|
|
313
|
+
else if (datum.depth === 2 && datum.children && !disabled) {
|
|
307
314
|
var canvasSelection = self.parent.selectAll('circle.node');
|
|
315
|
+
var chartSvg = select(self.services.domUtils.getMainSVG());
|
|
316
|
+
chartSvg.classed('zoomed-in', true);
|
|
308
317
|
self.focal = datum;
|
|
309
318
|
self.model.updateHierarchyLevel(3);
|
|
310
319
|
self.services.canvasZoom.zoomIn(datum, canvasSelection, Configuration.canvasZoomSettings);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"circle-pack.js","sourceRoot":"","sources":["circle-pack.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA,mBAAmB;AACnB,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC1C,OAAO,KAAK,aAAa,MAAM,qBAAqB,CAAC;AAErD,aAAa;AACb,OAAO,EAAE,SAAS,IAAI,WAAW,EAAE,IAAI,IAAI,MAAM,EAAE,MAAM,cAAc,CAAC;AACxE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAE7C,OAAO,EAAE,mBAAmB,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAC;AACrE,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AAEtC;IAAgC,8BAAS;IAAzC;QAAA,qEA8aC;QA7aA,UAAI,GAAG,aAAa,CAAC;QAyLrB,yBAAmB,GAAG,UAAC,KAAkB;YAChC,IAAA,4CAAc,CAAkB;YAExC,KAAI,CAAC,MAAM;iBACT,SAAS,CAAC,aAAa,CAAC;iBACxB,UAAU,CACV,KAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,aAAa,CACtC,yBAAyB,CACzB,CACD;iBACA,IAAI,CAAC,SAAS,EAAE,UAAC,CAAC;gBAClB,OAAO,CAAC,CAAC,IAAI,CAAC,aAAa,KAAK,cAAc,CAAC,KAAK,EAAE,CAAC,MAAM,CAAC;oBAC7D,CAAC,CAAC,CAAC;oBACH,CAAC,CAAC,aAAa,CAAC,UAAU,CAAC,OAAO,CAAC,WAAW,CAAC;YACjD,CAAC,CAAC,CAAC;QACL,CAAC,CAAC;QAEF,0BAAoB,GAAG,UAAC,KAAkB;YACzC,KAAI,CAAC,MAAM;iBACT,SAAS,CAAC,aAAa,CAAC;iBACxB,UAAU,CACV,KAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,aAAa,CACtC,4BAA4B,CAC5B,CACD;iBACA,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC;QACtB,CAAC,CAAC;;IA0NH,CAAC;IA1aA,2BAAM,GAAN,UAAO,OAAc;QAArB,iBA6GC;QA7GM,wBAAA,EAAA,cAAc;QACpB,2BAA2B;QAC3B,IAAM,GAAG,GAAG,IAAI,CAAC,eAAe,CAAC,EAAE,eAAe,EAAE,IAAI,EAAE,CAAC,CAAC;QACtD,IAAA;;UAEJ,EAFM,gBAAK,EAAE,kBAEb,CAAC;QAEH,IAAI,KAAK,KAAK,CAAC,IAAI,MAAM,KAAK,CAAC,EAAE;YAChC,gDAAgD;YAChD,uDAAuD;YACvD,OAAO;SACP;QAED,mCAAmC;QACnC,IAAI,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,EAAE,CAAC;QAC9C,iDAAiD;QACjD,IAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;QAC9C,IAAM,cAAc,GAAG,IAAI,CAAC,KAAK,CAAC,iBAAiB,EAAE,CAAC;QACtD,IAAM,OAAO,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC;QAClC,IAAM,iBAAiB,GAAG,KAAK,CAAC,WAAW,CAC1C,OAAO,EACP,YAAY,EACZ,SAAS,CACT,CAAC;QAEF,0CAA0C;QAC1C,uEAAuE;QACvE,IAAI,UAAU,EAAE;YACf,uDAAuD;YACvD,WAAW,GAAG,KAAK,CAAC,WAAW,CAAC,WAAW,EAAE,CAAC,EAAE,UAAU,CAAC,CAAC;SAC5D;QAED,IAAM,IAAI,GAAG,WAAW,CAAC,EAAC,QAAQ,EAAE,WAAW,EAAC,CAAC;aAC/C,GAAG,CAAC,UAAC,CAAM,IAAK,OAAA,CAAC,CAAC,KAAK,EAAP,CAAO,CAAC;aACxB,IAAI,CAAC,UAAC,CAAC,EAAE,CAAC,IAAK,OAAA,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,EAAjB,CAAiB,CAAC,CAAC;QAEpC,IAAM,UAAU,GAAG,MAAM,EAAE;aACzB,IAAI,CAAC,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;aACrB,OAAO,CAAC,UAAC,CAAC;YACV,iDAAiD;YACjD,OAAO,CAAC,CAAC,KAAK,IAAI,CAAC;gBAClB,CAAC,CAAC,aAAa,CAAC,UAAU,CAAC,OAAO,CAAC,QAAQ,GAAG,CAAC;gBAC/C,CAAC,CAAC,aAAa,CAAC,UAAU,CAAC,OAAO,CAAC,SAAS,GAAG,CAAC,CAAC;QACnD,CAAC,CAAC,CAAC;QAEJ,IAAM,QAAQ,GAAG,UAAU,CAAC,IAAI,CAAC;aAC/B,WAAW,EAAE;aACb,MAAM,CAAC,CAAC,CAAC;aACT,MAAM,CAAC,UAAC,IAAI;YACZ,kCAAkC;YAClC,OAAO,IAAI,CAAC,KAAK,IAAI,cAAc,CAAC;QACrC,CAAC,CAAC,CAAC;QAEJ,oBAAoB;QACpB,IAAM,OAAO,GAAG,GAAG,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAE5D,OAAO,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;QAE3D,IAAM,eAAe,GAAG,OAAO;aAC7B,KAAK,EAAE;aACP,MAAM,CAAC,QAAQ,CAAC;aAChB,OAAO,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;QAExB,eAAe;aACb,KAAK,CAAC,OAAO,CAAC;aACd,IAAI,CAAC,OAAO,EAAE,UAAC,CAAC;YAChB,IAAM,aAAa,GAClB,iBAAiB,IAAI,cAAc,KAAK,CAAC;gBACxC,CAAC,CAAC,KAAI,CAAC,YAAY,CAAC,CAAC,CAAC;gBACtB,CAAC,CAAC,EAAE,CAAC;YACP,OAAO,KAAI,CAAC,KAAK,CAAC,iBAAiB,CAAC;gBACnC,cAAc,EAAE;oBACf,mBAAmB,CAAC,IAAI;oBACxB,mBAAmB,CAAC,MAAM;iBAC1B;gBACD,aAAa,EAAE,CAAC,CAAC,IAAI,CAAC,aAAa;gBACnC,iBAAiB,EAAE,CAAC,CAAC,QAAQ;oBAC5B,CAAC,CAAC,UAAQ,aAAe;oBACzB,CAAC,CAAC,oBAAkB,aAAe;aACpC,CAAC,CAAC;QACJ,CAAC,CAAC;aACD,IAAI,CAAC,IAAI,EAAE,UAAC,CAAC,IAAK,OAAA,CAAC,CAAC,CAAC,EAAH,CAAG,CAAC;aACtB,IAAI,CAAC,IAAI,EAAE,UAAC,CAAC,IAAK,OAAA,CAAC,CAAC,CAAC,EAAH,CAAG,CAAC;aACtB,UAAU,CACV,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,aAAa,CACtC,8BAA8B,EAC9B,OAAO,CACP,CACD;aACA,IAAI,CAAC,GAAG,EAAE,UAAC,CAAC,IAAK,OAAA,CAAC,CAAC,CAAC,EAAH,CAAG,CAAC;aACrB,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC;aAClB,IAAI,CAAC,cAAc,EAAE,aAAa,CAAC,UAAU,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;QAErE,IAAI,iBAAiB,KAAK,IAAI,IAAI,IAAI,CAAC,KAAK,EAAE;YAC7C,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,MAAM,CAC9B,IAAI,CAAC,KAAK,EACV,eAAe,EACf,aAAa,CAAC,kBAAkB,CAChC,CAAC;YACF,IAAI,CAAC,sBAAsB,EAAE,CAAC;SAC9B;QAED,IAAI,CAAC,UAAU,EAAE;YAChB,qDAAqD;YACrD,IAAI,CAAC,kBAAkB,EAAE,CAAC;SAC1B;QAED,wCAAwC;QACxC,IAAI,CAAC,iBAAiB,EAAE,CAAC;IAC1B,CAAC;IAED,mDAAmD;IACnD,wCAAmB,GAAnB,UAAoB,SAAS;QAC5B,IAAM,IAAI,GAAG,SAAS,CAAC,GAAG,CAAC,UAAC,CAAC,IAAK,OAAA,CAAC,CAAC,IAAI,EAAN,CAAM,CAAC,CAAC;QAE1C,IAAI,CAAC,MAAM;aACT,SAAS,CAAC,aAAa,CAAC;aACxB,MAAM,CACN,UAAC,CAAC,IAAK,OAAA,IAAI,CAAC,IAAI,CAAC,UAAC,KAAK,IAAK,OAAA,KAAK,KAAK,CAAC,CAAC,IAAI,EAAhB,CAAgB,CAAC,IAAI,CAAC,CAAC,KAAK,GAAG,CAAC,EAArD,CAAqD,CAC5D;aACA,OAAO,CAAC,eAAe,EAAE,KAAK,CAAC,CAAC;IACnC,CAAC;IAED,+CAA+C;IAC/C,sCAAiB,GAAjB,UAAkB,SAAS,EAAE,SAAU;QACtC,IAAM,IAAI,GAAG,SAAS,CAAC,GAAG,CAAC,UAAC,CAAC,IAAK,OAAA,CAAC,CAAC,IAAI,EAAN,CAAM,CAAC,CAAC;QAE1C,IAAI,CAAC,MAAM;aACT,SAAS,CAAC,aAAa,CAAC;aACxB,MAAM,CACN,UAAC,CAAC,IAAK,OAAA,IAAI,CAAC,IAAI,CAAC,UAAC,KAAK,IAAK,OAAA,KAAK,KAAK,CAAC,CAAC,IAAI,EAAhB,CAAgB,CAAC,IAAI,CAAC,CAAC,KAAK,GAAG,CAAC,EAArD,CAAqD,CAC5D;aACA,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,eAAe,EAAE,IAAI,CAAC,CAAC;IAC1D,CAAC;IAED,iCAAY,GAAZ,UAAa,IAAI;QAChB,IAAI,IAAI,CAAC,KAAK,CAAC,iBAAiB,EAAE,KAAK,CAAC,IAAI,IAAI,CAAC,KAAK,EAAE;YACvD,IACC,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,KAAK,CAAC,IAAI;gBAC7B,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAC,CAAC,IAAK,OAAA,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,EAApB,CAAoB,CAAC,EACpD;gBACD,OAAO,OAAO,CAAC;aACf;SACD;QACD,OAAO,WAAW,CAAC;IACpB,CAAC;IAED,uCAAkB,GAAlB;QACS,IAAA,6BAAM,CAAmB;QACjC,iDAAiD;QACjD,MAAM,CAAC,gBAAgB,CACtB,MAAM,CAAC,MAAM,CAAC,UAAU,EACxB,IAAI,CAAC,mBAAmB,CACxB,CAAC;QACF,gDAAgD;QAChD,MAAM,CAAC,gBAAgB,CACtB,MAAM,CAAC,MAAM,CAAC,aAAa,EAC3B,IAAI,CAAC,oBAAoB,CACzB,CAAC;IACH,CAAC;IAED,8CAAyB,GAAzB;QACC,IAAM,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,SAAS,EAAE,CAAC,CAAC;QAC5D,QAAQ,CAAC,EAAE,CAAC,OAAO,EAAE,cAAM,OAAA,IAAI,EAAJ,CAAI,CAAC,CAAC;IAClC,CAAC;IAED,2CAAsB,GAAtB;QACC,IAAM,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,SAAS,EAAE,CAAC,CAAC;QAC5D,IAAM,IAAI,GAAG,IAAI,CAAC;QAClB,IAAM,eAAe,GAAG,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC;QAC7D,IAAM,WAAW,GAAG,KAAK,CAAC,WAAW,CACpC,aAAa,EACb,oBAAoB,CACpB,CAAC;QAEF,QAAQ,CAAC,EAAE,CAAC,OAAO,EAAE;YACpB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;YAClB,IAAI,CAAC,KAAK,CAAC,oBAAoB,CAAC,CAAC,CAAC,CAAC;YACnC,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,OAAO,CAAC,eAAe,EAAE,WAAW,CAAC,CAAC;QAChE,CAAC,CAAC,CAAC;IACJ,CAAC;IA8BD,uDAAuD;IACvD,gCAAW,GAAX;QACC,OAAO,+ZAIA,CAAC;IACT,CAAC;IAED,iDAAiD;IACjD,sCAAiB,GAAjB;QACC,IAAM,IAAI,GAAG,IAAI,CAAC;QAClB,IAAI,CAAC,MAAM;aACT,SAAS,CAAC,aAAa,CAAC;aACxB,EAAE,CAAC,WAAW,EAAE,UAAU,KAAK;YAC/B,IAAM,cAAc,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;YACpC,cAAc,CAAC,OAAO,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;YAExC,IAAM,QAAQ,GAAG,cAAc;iBAC7B,IAAI,EAAE;iBACN,SAAS,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;YAElC,IAAM,iBAAiB,GAAG,KAAK,CAAC,WAAW,CAC1C,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE,EACvB,YAAY,EACZ,SAAS,CACT,CAAC;YAEF,IAAI,QAAQ,GAAG,KAAK,CAAC;YACrB,IAAI,CAAC,QAAQ,EAAE;gBACd,wCAAwC;gBACxC,IAAI,YAAY,GAAG,EAAE,CAAC;gBACtB,IAAI,UAAU,GAAG,EAAE,CAAC;gBACpB,IAAI,WAAW,GAAG,IAAI,CAAC;gBACvB,IAAI,KAAK,CAAC,QAAQ,EAAE;oBACnB,IAAI,KAAK,CAAC,KAAK,GAAG,CAAC,IAAI,iBAAiB,EAAE;wBACzC,QAAQ,GAAG,IAAI,CAAC;wBAChB,cAAc,CAAC,OAAO,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;qBAC1C;oBACD,YAAY,GAAG,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,UAAC,KAAK;wBACvC,IAAI,KAAK,KAAK,IAAI,EAAE;4BACnB,wDAAwD;4BACxD,IAAI,KAAK,SAAA,CAAC;4BACV,IAAI,OAAO,KAAK,CAAC,IAAI,CAAC,KAAK,KAAK,QAAQ,EAAE;gCACzC,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC;gCAEzB,OAAO;oCACN,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI;oCACtB,KAAK,EAAE,KAAK;iCACZ,CAAC;6BACF;iCAAM;gCACN,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CACjC,UAAC,CAAC,EAAE,CAAC,IAAK,OAAA,CAAC,GAAG,CAAC,CAAC,KAAK,EAAX,CAAW,EACrB,CAAC,CACD,CAAC;gCAEF,OAAO;oCACN,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI;oCACtB,SAAS,EAAE,iBAAiB;wCAC3B,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE;wCACpB,CAAC,CAAC,IAAI;oCACP,KAAK,EAAE,KAAK;iCACZ,CAAC;6BACF;yBACD;oBACF,CAAC,CAAC,CAAC;oBAEH,UAAU,GAAG;wBACZ;4BACC,KAAK,EAAE,OAAO;4BACd,KAAK,EAAE,KAAK,CAAC,KAAK;4BAClB,IAAI,EAAE,IAAI;yBACV;qBACD,CAAC;oBACF,kCAAkC;oBAClC,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;iBACvC;qBAAM;oBACN,oEAAoE;oBACpE,WAAW,GAAG,KAAK,CAAC,KAAK,CAAC;iBAC1B;gBAED,IAAI,SAAS,GAAG,gBAAgB,CAC/B,IAAI,EACJ,IAAI,CACJ,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC;gBAE3B,eAAe;gBACf,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,aAAa,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE;oBACvD,cAAc,gBAAA;oBACd,KAAK;wBACJ;4BACC,KAAK,EAAE,SAAS;4BAChB,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI;4BACtB,SAAS,EACR,QAAQ,IAAI,iBAAiB;gCAC5B,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE;gCACpB,CAAC,CAAC,IAAI;4BACR,KAAK,EAAE,WAAW;yBAClB;uBACE,YAAY,EACZ,UAAU,CACb;iBACD,CAAC,CAAC;aACH;YAED,uBAAuB;YACvB,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,aAAa,CACjC,MAAM,CAAC,UAAU,CAAC,gBAAgB,EAClC;gBACC,OAAO,EAAE,cAAc;gBACvB,KAAK,OAAA;aACL,CACD,CAAC;QACH,CAAC,CAAC;aACD,EAAE,CAAC,WAAW,EAAE,UAAU,KAAK;YAC/B,IAAM,cAAc,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;YAEpC,uBAAuB;YACvB,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,aAAa,CACjC,MAAM,CAAC,UAAU,CAAC,gBAAgB,EAClC;gBACC,OAAO,EAAE,cAAc;gBACvB,KAAK,OAAA;aACL,CACD,CAAC;YAEF,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,aAAa,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QACzD,CAAC,CAAC;aACD,EAAE,CAAC,UAAU,EAAE,UAAU,KAAK;YAC9B,IAAM,cAAc,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;YACpC,cAAc,CAAC,OAAO,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;YAEzC,IAAI,KAAK,CAAC,QAAQ,EAAE;gBACnB,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;aACzC;YAED,uBAAuB;YACvB,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,aAAa,CACjC,MAAM,CAAC,UAAU,CAAC,eAAe,EACjC;gBACC,OAAO,EAAE,cAAc;gBACvB,KAAK,OAAA;aACL,CACD,CAAC;YAEF,eAAe;YACf,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,aAAa,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE;gBACvD,cAAc,gBAAA;aACd,CAAC,CAAC;QACJ,CAAC,CAAC;aACD,EAAE,CAAC,OAAO,EAAE,UAAU,KAAK;YAC3B,IAAM,cAAc,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;YACpC,IAAM,QAAQ,GAAG,cAAc;iBAC7B,IAAI,EAAE;iBACN,SAAS,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;YAClC,+EAA+E;YAC/E,IACC,KAAK,CAAC,WAAW,CAChB,IAAI,CAAC,UAAU,EAAE,EACjB,YAAY,EACZ,SAAS,CACT,KAAK,IAAI;gBACV,KAAK,CAAC,KAAK,KAAK,CAAC;gBACjB,KAAK,CAAC,QAAQ;gBACd,CAAC,QAAQ,EACR;gBACD,IAAM,eAAe,GAAG,IAAI,CAAC,MAAM,CAAC,SAAS,CAC5C,aAAa,CACb,CAAC;gBAEF,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;gBACnB,IAAI,CAAC,KAAK,CAAC,oBAAoB,CAAC,CAAC,CAAC,CAAC;gBACnC,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,MAAM,CAC9B,KAAK,EACL,eAAe,EACf,aAAa,CAAC,kBAAkB,CAChC,CAAC;gBACF,qEAAqE;gBACrE,iFAAiF;gBACjF,qDAAqD;gBACrD,KAAK,CAAC,eAAe,EAAE,CAAC;aACxB;YAED,uBAAuB;YACvB,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,aAAa,CACjC,MAAM,CAAC,UAAU,CAAC,YAAY,EAC9B;gBACC,OAAO,EAAE,cAAc;gBACvB,KAAK,OAAA;aACL,CACD,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAED,4BAAO,GAAP;QACC,yBAAyB;QACzB,IAAI,CAAC,MAAM;aACT,SAAS,CAAC,aAAa,CAAC;aACxB,EAAE,CAAC,WAAW,EAAE,IAAI,CAAC;aACrB,EAAE,CAAC,WAAW,EAAE,IAAI,CAAC;aACrB,EAAE,CAAC,UAAU,EAAE,IAAI,CAAC;aACpB,EAAE,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;QAEpB,qCAAqC;QACrC,IAAM,cAAc,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC;QAC5C,cAAc,CAAC,mBAAmB,CACjC,MAAM,CAAC,MAAM,CAAC,UAAU,EACxB,IAAI,CAAC,mBAAmB,CACxB,CAAC;QACF,cAAc,CAAC,mBAAmB,CACjC,MAAM,CAAC,MAAM,CAAC,aAAa,EAC3B,IAAI,CAAC,oBAAoB,CACzB,CAAC;QAEF,IAAI,CAAC,yBAAyB,EAAE,CAAC;IAClC,CAAC;IACF,iBAAC;AAAD,CAAC,AA9aD,CAAgC,SAAS,GA8axC","sourcesContent":["// Internal Imports\nimport { Component } from '../component';\nimport { DOMUtils } from '../../services';\nimport * as Configuration from '../../configuration';\n\n// D3 Imports\nimport { hierarchy as d3Hierarchy, pack as D3Pack } from 'd3-hierarchy';\nimport { event, select } from 'd3-selection';\n\nimport { ColorClassNameTypes, Events } from '../../interfaces/enums';\nimport { Tools } from './../../tools';\n\nexport class CirclePack extends Component {\n\ttype = 'circle-pack';\n\tfocal;\n\n\trender(animate = true) {\n\t\t// svg and container widths\n\t\tconst svg = this.getContainerSVG({ withinChartClip: true });\n\t\tconst { width, height } = DOMUtils.getSVGElementSize(this.parent, {\n\t\t\tuseAttrs: true,\n\t\t});\n\n\t\tif (width === 0 || height === 0) {\n\t\t\t// on first render the svg is width and height 0\n\t\t\t// the circle packing layout functionality will not run\n\t\t\treturn;\n\t\t}\n\n\t\t// data and options (zoom/not zoom)\n\t\tlet displayData = this.model.getDisplayData();\n\t\t// check if there is just one parent for the data\n\t\tconst parentNode = this.model.hasParentNode();\n\t\tconst hierarchyLevel = this.model.getHierarchyLevel();\n\t\tconst options = this.getOptions();\n\t\tconst canvasZoomEnabled = Tools.getProperty(\n\t\t\toptions,\n\t\t\t'canvasZoom',\n\t\t\t'enabled'\n\t\t);\n\n\t\t// check if there is one root for the data\n\t\t// that root will be the only datagroup (colorscale will be monochrome)\n\t\tif (parentNode) {\n\t\t\t// remove want to remove the parent from being rendered\n\t\t\tdisplayData = Tools.getProperty(displayData, 0, 'children');\n\t\t}\n\n\t\tconst root = d3Hierarchy({children: displayData})\n\t\t\t.sum((d: any) => d.value)\n\t\t\t.sort((a, b) => b.value - a.value);\n\n\t\tconst packLayout = D3Pack()\n\t\t\t.size([width, height])\n\t\t\t.padding((d) => {\n\t\t\t\t// add 3 px to account for the stroke width 1.5px\n\t\t\t\treturn d.depth >= 1\n\t\t\t\t\t? Configuration.circlePack.padding.children + 3\n\t\t\t\t\t: Configuration.circlePack.padding.mainGroup + 3;\n\t\t\t});\n\n\t\tconst nodeData = packLayout(root)\n\t\t\t.descendants()\n\t\t\t.splice(1)\n\t\t\t.filter((node) => {\n\t\t\t\t// filter based on hierarchy level\n\t\t\t\treturn node.depth <= hierarchyLevel;\n\t\t\t});\n\n\t\t// enter the circles\n\t\tconst circles = svg.selectAll('circle.node').data(nodeData);\n\n\t\tcircles.exit().attr('width', 0).attr('height', 0).remove();\n\n\t\tconst enteringCircles = circles\n\t\t\t.enter()\n\t\t\t.append('circle')\n\t\t\t.classed('node', true);\n\n\t\tenteringCircles\n\t\t\t.merge(circles)\n\t\t\t.attr('class', (d) => {\n\t\t\t\tconst originalClass =\n\t\t\t\t\tcanvasZoomEnabled && hierarchyLevel === 3\n\t\t\t\t\t\t? this.getZoomClass(d)\n\t\t\t\t\t\t: '';\n\t\t\t\treturn this.model.getColorClassName({\n\t\t\t\t\tclassNameTypes: [\n\t\t\t\t\t\tColorClassNameTypes.FILL,\n\t\t\t\t\t\tColorClassNameTypes.STROKE,\n\t\t\t\t\t],\n\t\t\t\t\tdataGroupName: d.data.dataGroupName,\n\t\t\t\t\toriginalClassName: d.children\n\t\t\t\t\t\t? `node ${originalClass}`\n\t\t\t\t\t\t: `node node-leaf ${originalClass}`,\n\t\t\t\t});\n\t\t\t})\n\t\t\t.attr('cx', (d) => d.x)\n\t\t\t.attr('cy', (d) => d.y)\n\t\t\t.transition(\n\t\t\t\tthis.services.transitions.getTransition(\n\t\t\t\t\t'circlepack-leaf-update-enter',\n\t\t\t\t\tanimate\n\t\t\t\t)\n\t\t\t)\n\t\t\t.attr('r', (d) => d.r)\n\t\t\t.attr('opacity', 1)\n\t\t\t.attr('fill-opacity', Configuration.circlePack.circles.fillOpacity);\n\n\t\tif (canvasZoomEnabled === true && this.focal) {\n\t\t\tthis.services.canvasZoom.zoomIn(\n\t\t\t\tthis.focal,\n\t\t\t\tenteringCircles,\n\t\t\t\tConfiguration.canvasZoomSettings\n\t\t\t);\n\t\t\tthis.setBackgroundListeners();\n\t\t}\n\n\t\tif (!parentNode) {\n\t\t\t// add legend filtering if it isnt a monochrome chart\n\t\t\tthis.addLegendListeners();\n\t\t}\n\n\t\t// Add event listeners to elements drawn\n\t\tthis.addEventListeners();\n\t}\n\n\t// turn off the highlight class on children circles\n\tunhighlightChildren(childData) {\n\t\tconst data = childData.map((d) => d.data);\n\n\t\tthis.parent\n\t\t\t.selectAll('circle.node')\n\t\t\t.filter(\n\t\t\t\t(d) => data.some((datum) => datum === d.data) && d.depth > 1\n\t\t\t)\n\t\t\t.classed('hovered-child', false);\n\t}\n\n\t// highlight the children circles with a stroke\n\thighlightChildren(childData, classname?) {\n\t\tconst data = childData.map((d) => d.data);\n\n\t\tthis.parent\n\t\t\t.selectAll('circle.node')\n\t\t\t.filter(\n\t\t\t\t(d) => data.some((datum) => datum === d.data) && d.depth > 1\n\t\t\t)\n\t\t\t.classed(classname ? classname : 'hovered-child', true);\n\t}\n\n\tgetZoomClass(node) {\n\t\tif (this.model.getHierarchyLevel() === 3 && this.focal) {\n\t\t\tif (\n\t\t\t\tnode.data === this.focal.data ||\n\t\t\t\tthis.focal.children.some((d) => d.data === node.data)\n\t\t\t) {\n\t\t\t\treturn 'focal';\n\t\t\t}\n\t\t}\n\t\treturn 'non-focal';\n\t}\n\n\taddLegendListeners() {\n\t\tconst { events } = this.services;\n\t\t// Highlight correct circle on legend item hovers\n\t\tevents.addEventListener(\n\t\t\tEvents.Legend.ITEM_HOVER,\n\t\t\tthis.handleLegendOnHover\n\t\t);\n\t\t// Un-highlight circles on legend item mouseouts\n\t\tevents.addEventListener(\n\t\t\tEvents.Legend.ITEM_MOUSEOUT,\n\t\t\tthis.handleLegendMouseOut\n\t\t);\n\t}\n\n\tremoveBackgroundListeners() {\n\t\tconst chartSvg = select(this.services.domUtils.getHolder());\n\t\tchartSvg.on('click', () => null);\n\t}\n\n\tsetBackgroundListeners() {\n\t\tconst chartSvg = select(this.services.domUtils.getHolder());\n\t\tconst self = this;\n\t\tconst canvasSelection = this.parent.selectAll('circle.node');\n\t\tconst zoomSetting = Tools.getProperty(\n\t\t\tConfiguration,\n\t\t\t'canvasZoomSettings'\n\t\t);\n\n\t\tchartSvg.on('click', () => {\n\t\t\tself.focal = null;\n\t\t\tself.model.updateHierarchyLevel(2);\n\t\t\tself.services.canvasZoom.zoomOut(canvasSelection, zoomSetting);\n\t\t});\n\t}\n\n\thandleLegendOnHover = (event: CustomEvent) => {\n\t\tconst { hoveredElement } = event.detail;\n\n\t\tthis.parent\n\t\t\t.selectAll('circle.node')\n\t\t\t.transition(\n\t\t\t\tthis.services.transitions.getTransition(\n\t\t\t\t\t'legend-hover-circlepack'\n\t\t\t\t)\n\t\t\t)\n\t\t\t.attr('opacity', (d) => {\n\t\t\t\treturn d.data.dataGroupName === hoveredElement.datum()['name']\n\t\t\t\t\t? 1\n\t\t\t\t\t: Configuration.circlePack.circles.fillOpacity;\n\t\t\t});\n\t};\n\n\thandleLegendMouseOut = (event: CustomEvent) => {\n\t\tthis.parent\n\t\t\t.selectAll('circle.node')\n\t\t\t.transition(\n\t\t\t\tthis.services.transitions.getTransition(\n\t\t\t\t\t'legend-mouseout-circlepack'\n\t\t\t\t)\n\t\t\t)\n\t\t\t.attr('opacity', 1);\n\t};\n\n\t// Zoom icon to be appended to the label in the tooltip\n\tgetZoomIcon() {\n\t\treturn `\n\t\t<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 10 10\">\n\t\t\t<polygon points=\"5.93 3.71 4.45 3.71 4.45 2.23 3.71 2.23 3.71 3.71 2.23 3.71 2.23 4.45 3.71 4.45 3.71 5.93 4.45 5.93 4.45 4.45 5.93 4.45 5.93 3.71\"/>\n\t\t\t<path d=\"M7.2,6.67a4,4,0,0,0,1-2.59A4.08,4.08,0,1,0,4.07,8.15h0a4,4,0,0,0,2.59-1L9.48,10,10,9.48Zm-3.12.77A3.34,3.34,0,1,1,7.41,4.08,3.34,3.34,0,0,1,4.08,7.44Z\"/>\n\t\t</svg>`;\n\t}\n\n\t// add event listeners for tooltip on the circles\n\taddEventListeners() {\n\t\tconst self = this;\n\t\tthis.parent\n\t\t\t.selectAll('circle.node')\n\t\t\t.on('mouseover', function (datum) {\n\t\t\t\tconst hoveredElement = select(this);\n\t\t\t\thoveredElement.classed('hovered', true);\n\n\t\t\t\tconst disabled = hoveredElement\n\t\t\t\t\t.node()\n\t\t\t\t\t.classList.contains('non-focal');\n\n\t\t\t\tconst canvasZoomEnabled = Tools.getProperty(\n\t\t\t\t\tself.model.getOptions(),\n\t\t\t\t\t'canvasZoom',\n\t\t\t\t\t'enabled'\n\t\t\t\t);\n\n\t\t\t\tlet zoomable = false;\n\t\t\t\tif (!disabled) {\n\t\t\t\t\t// get the children data for the tooltip\n\t\t\t\t\tlet childrenData = [];\n\t\t\t\t\tlet totalValue = [];\n\t\t\t\t\tlet parentValue = null;\n\t\t\t\t\tif (datum.children) {\n\t\t\t\t\t\tif (datum.depth > 1 && canvasZoomEnabled) {\n\t\t\t\t\t\t\tzoomable = true;\n\t\t\t\t\t\t\thoveredElement.classed('clickable', true);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tchildrenData = datum.children.map((child) => {\n\t\t\t\t\t\t\tif (child !== null) {\n\t\t\t\t\t\t\t\t// sum up the children values if there are any 3rd level\n\t\t\t\t\t\t\t\tlet value;\n\t\t\t\t\t\t\t\tif (typeof child.data.value === 'number') {\n\t\t\t\t\t\t\t\t\tvalue = child.data.value;\n\n\t\t\t\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\t\t\t\tlabel: child.data.name,\n\t\t\t\t\t\t\t\t\t\tvalue: value,\n\t\t\t\t\t\t\t\t\t};\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\tvalue = child.data.children.reduce(\n\t\t\t\t\t\t\t\t\t\t(a, b) => a + b.value,\n\t\t\t\t\t\t\t\t\t\t0\n\t\t\t\t\t\t\t\t\t);\n\n\t\t\t\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\t\t\t\tlabel: child.data.name,\n\t\t\t\t\t\t\t\t\t\tlabelIcon: canvasZoomEnabled\n\t\t\t\t\t\t\t\t\t\t\t? self.getZoomIcon()\n\t\t\t\t\t\t\t\t\t\t\t: null,\n\t\t\t\t\t\t\t\t\t\tvalue: value,\n\t\t\t\t\t\t\t\t\t};\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t});\n\n\t\t\t\t\t\ttotalValue = [\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tlabel: 'Total',\n\t\t\t\t\t\t\t\tvalue: datum.value,\n\t\t\t\t\t\t\t\tbold: true,\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t];\n\t\t\t\t\t\t// children get a highlight stroke\n\t\t\t\t\t\tself.highlightChildren(datum.children);\n\t\t\t\t\t} else {\n\t\t\t\t\t\t// if there is no children we want to display the value for the data\n\t\t\t\t\t\tparentValue = datum.value;\n\t\t\t\t\t}\n\n\t\t\t\t\tlet fillColor = getComputedStyle(\n\t\t\t\t\t\tthis,\n\t\t\t\t\t\tnull\n\t\t\t\t\t).getPropertyValue('fill');\n\n\t\t\t\t\t// Show tooltip\n\t\t\t\t\tself.services.events.dispatchEvent(Events.Tooltip.SHOW, {\n\t\t\t\t\t\thoveredElement,\n\t\t\t\t\t\titems: [\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tcolor: fillColor,\n\t\t\t\t\t\t\t\tlabel: datum.data.name,\n\t\t\t\t\t\t\t\tlabelIcon:\n\t\t\t\t\t\t\t\t\tzoomable && canvasZoomEnabled\n\t\t\t\t\t\t\t\t\t\t? self.getZoomIcon()\n\t\t\t\t\t\t\t\t\t\t: null,\n\t\t\t\t\t\t\t\tvalue: parentValue,\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t...childrenData,\n\t\t\t\t\t\t\t...totalValue,\n\t\t\t\t\t\t],\n\t\t\t\t\t});\n\t\t\t\t}\n\n\t\t\t\t// Dispatch mouse event\n\t\t\t\tself.services.events.dispatchEvent(\n\t\t\t\t\tEvents.CirclePack.CIRCLE_MOUSEOVER,\n\t\t\t\t\t{\n\t\t\t\t\t\telement: hoveredElement,\n\t\t\t\t\t\tdatum,\n\t\t\t\t\t}\n\t\t\t\t);\n\t\t\t})\n\t\t\t.on('mousemove', function (datum) {\n\t\t\t\tconst hoveredElement = select(this);\n\n\t\t\t\t// Dispatch mouse event\n\t\t\t\tself.services.events.dispatchEvent(\n\t\t\t\t\tEvents.CirclePack.CIRCLE_MOUSEMOVE,\n\t\t\t\t\t{\n\t\t\t\t\t\telement: hoveredElement,\n\t\t\t\t\t\tdatum,\n\t\t\t\t\t}\n\t\t\t\t);\n\n\t\t\t\tself.services.events.dispatchEvent(Events.Tooltip.MOVE);\n\t\t\t})\n\t\t\t.on('mouseout', function (datum) {\n\t\t\t\tconst hoveredElement = select(this);\n\t\t\t\thoveredElement.classed('hovered', false);\n\n\t\t\t\tif (datum.children) {\n\t\t\t\t\tself.unhighlightChildren(datum.children);\n\t\t\t\t}\n\n\t\t\t\t// Dispatch mouse event\n\t\t\t\tself.services.events.dispatchEvent(\n\t\t\t\t\tEvents.CirclePack.CIRCLE_MOUSEOUT,\n\t\t\t\t\t{\n\t\t\t\t\t\telement: hoveredElement,\n\t\t\t\t\t\tdatum,\n\t\t\t\t\t}\n\t\t\t\t);\n\n\t\t\t\t// Hide tooltip\n\t\t\t\tself.services.events.dispatchEvent(Events.Tooltip.HIDE, {\n\t\t\t\t\thoveredElement,\n\t\t\t\t});\n\t\t\t})\n\t\t\t.on('click', function (datum) {\n\t\t\t\tconst hoveredElement = select(this);\n\t\t\t\tconst disabled = hoveredElement\n\t\t\t\t\t.node()\n\t\t\t\t\t.classList.contains('non-focal');\n\t\t\t\t// zoom if chart has zoom enabled and if its a depth 2 circle that has children\n\t\t\t\tif (\n\t\t\t\t\tTools.getProperty(\n\t\t\t\t\t\tself.getOptions(),\n\t\t\t\t\t\t'canvasZoom',\n\t\t\t\t\t\t'enabled'\n\t\t\t\t\t) === true &&\n\t\t\t\t\tdatum.depth === 2 &&\n\t\t\t\t\tdatum.children &&\n\t\t\t\t\t!disabled\n\t\t\t\t) {\n\t\t\t\t\tconst canvasSelection = self.parent.selectAll(\n\t\t\t\t\t\t'circle.node'\n\t\t\t\t\t);\n\n\t\t\t\t\tself.focal = datum;\n\t\t\t\t\tself.model.updateHierarchyLevel(3);\n\t\t\t\t\tself.services.canvasZoom.zoomIn(\n\t\t\t\t\t\tdatum,\n\t\t\t\t\t\tcanvasSelection,\n\t\t\t\t\t\tConfiguration.canvasZoomSettings\n\t\t\t\t\t);\n\t\t\t\t\t// don't want the click event to propagate to the background zoom out\n\t\t\t\t\t// does not clash with the tooltip/other events because it does need to close the\n\t\t\t\t\t// tooltip on the click event in order to zoom in/out\n\t\t\t\t\tevent.stopPropagation();\n\t\t\t\t}\n\n\t\t\t\t// Dispatch mouse event\n\t\t\t\tself.services.events.dispatchEvent(\n\t\t\t\t\tEvents.CirclePack.CIRCLE_CLICK,\n\t\t\t\t\t{\n\t\t\t\t\t\telement: hoveredElement,\n\t\t\t\t\t\tdatum,\n\t\t\t\t\t}\n\t\t\t\t);\n\t\t\t});\n\t}\n\n\tdestroy() {\n\t\t// Remove event listeners\n\t\tthis.parent\n\t\t\t.selectAll('circle.node')\n\t\t\t.on('mouseover', null)\n\t\t\t.on('mousemove', null)\n\t\t\t.on('mouseout', null)\n\t\t\t.on('click', null);\n\n\t\t// remove the listeners on the legend\n\t\tconst eventsFragment = this.services.events;\n\t\teventsFragment.removeEventListener(\n\t\t\tEvents.Legend.ITEM_HOVER,\n\t\t\tthis.handleLegendOnHover\n\t\t);\n\t\teventsFragment.removeEventListener(\n\t\t\tEvents.Legend.ITEM_MOUSEOUT,\n\t\t\tthis.handleLegendMouseOut\n\t\t);\n\n\t\tthis.removeBackgroundListeners();\n\t}\n}\n"]}
|
|
1
|
+
{"version":3,"file":"circle-pack.js","sourceRoot":"","sources":["circle-pack.ts"],"names":[],"mappings":"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","sourcesContent":["// Internal Imports\nimport { Component } from '../component';\nimport { DOMUtils } from '../../services';\nimport * as Configuration from '../../configuration';\n\n// D3 Imports\nimport { hierarchy as d3Hierarchy, pack as D3Pack } from 'd3-hierarchy';\nimport { event, select } from 'd3-selection';\n\nimport { ColorClassNameTypes, Events } from '../../interfaces/enums';\nimport { Tools } from './../../tools';\n\nexport class CirclePack extends Component {\n\ttype = 'circle-pack';\n\tfocal;\n\n\trender(animate = true) {\n\t\t// svg and container widths\n\t\tconst svg = this.getContainerSVG({ withinChartClip: true });\n\t\tconst { width, height } = DOMUtils.getSVGElementSize(this.parent, {\n\t\t\tuseAttrs: true,\n\t\t});\n\n\t\tif (width === 0 || height === 0) {\n\t\t\t// on first render the svg is width and height 0\n\t\t\t// the circle packing layout functionality will not run\n\t\t\treturn;\n\t\t}\n\n\t\t// data and options (zoom/not zoom)\n\t\tlet displayData = this.model.getDisplayData();\n\t\t// check if there is just one parent for the data\n\t\tconst parentNode = this.model.hasParentNode();\n\t\tconst hierarchyLevel = this.model.getHierarchyLevel();\n\t\tconst options = this.getOptions();\n\t\tconst canvasZoomEnabled = Tools.getProperty(\n\t\t\toptions,\n\t\t\t'canvasZoom',\n\t\t\t'enabled'\n\t\t);\n\n\t\t// check if there is one root for the data\n\t\t// that root will be the only datagroup (colorscale will be monochrome)\n\t\tif (parentNode) {\n\t\t\t// remove want to remove the parent from being rendered\n\t\t\tdisplayData = Tools.getProperty(displayData, 0, 'children');\n\t\t}\n\n\t\tconst root = d3Hierarchy({ children: displayData })\n\t\t\t.sum((d: any) => d.value)\n\t\t\t.sort((a, b) => b.value - a.value);\n\n\t\tconst packLayout = D3Pack()\n\t\t\t.size([width, height])\n\t\t\t.padding((d) => {\n\t\t\t\t// add 3 px to account for the stroke width 1.5px\n\t\t\t\treturn d.depth >= 1\n\t\t\t\t\t? Configuration.circlePack.padding.children + 3\n\t\t\t\t\t: Configuration.circlePack.padding.mainGroup + 3;\n\t\t\t});\n\n\t\tconst nodeData = packLayout(root)\n\t\t\t.descendants()\n\t\t\t.splice(1)\n\t\t\t.filter((node) => {\n\t\t\t\t// filter based on hierarchy level\n\t\t\t\treturn node.depth <= hierarchyLevel;\n\t\t\t});\n\n\t\t// enter the circles\n\t\tconst circles = svg.selectAll('circle.node').data(nodeData);\n\n\t\tcircles.exit().attr('width', 0).attr('height', 0).remove();\n\n\t\tconst enteringCircles = circles\n\t\t\t.enter()\n\t\t\t.append('circle')\n\t\t\t.classed('node', true);\n\n\t\tenteringCircles\n\t\t\t.merge(circles)\n\t\t\t.attr('class', (d) => {\n\t\t\t\tconst originalClass =\n\t\t\t\t\tcanvasZoomEnabled && hierarchyLevel === 3\n\t\t\t\t\t\t? this.getZoomClass(d)\n\t\t\t\t\t\t: '';\n\t\t\t\treturn this.model.getColorClassName({\n\t\t\t\t\tclassNameTypes: [\n\t\t\t\t\t\tColorClassNameTypes.FILL,\n\t\t\t\t\t\tColorClassNameTypes.STROKE,\n\t\t\t\t\t],\n\t\t\t\t\tdataGroupName: d.data.dataGroupName,\n\t\t\t\t\toriginalClassName: d.children\n\t\t\t\t\t\t? `node ${originalClass}`\n\t\t\t\t\t\t: `node node-leaf ${originalClass}`,\n\t\t\t\t});\n\t\t\t})\n\t\t\t.attr('cx', (d) => d.x)\n\t\t\t.attr('cy', (d) => d.y)\n\t\t\t.transition(\n\t\t\t\tthis.services.transitions.getTransition(\n\t\t\t\t\t'circlepack-leaf-update-enter',\n\t\t\t\t\tanimate\n\t\t\t\t)\n\t\t\t)\n\t\t\t.attr('r', (d) => d.r)\n\t\t\t.attr('opacity', 1)\n\t\t\t.attr('fill-opacity', Configuration.circlePack.circles.fillOpacity);\n\n\t\tif (canvasZoomEnabled === true && this.focal) {\n\t\t\tthis.services.canvasZoom.zoomIn(\n\t\t\t\tthis.focal,\n\t\t\t\tenteringCircles,\n\t\t\t\tConfiguration.canvasZoomSettings\n\t\t\t);\n\t\t\tthis.setBackgroundListeners();\n\t\t}\n\n\t\tif (!parentNode) {\n\t\t\t// add legend filtering if it isnt a monochrome chart\n\t\t\tthis.addLegendListeners();\n\t\t}\n\n\t\t// Add event listeners to elements drawn\n\t\tthis.addEventListeners();\n\t}\n\n\t// turn off the highlight class on children circles\n\tunhighlightChildren(childData) {\n\t\tconst data = childData.map((d) => d.data);\n\n\t\tthis.parent\n\t\t\t.selectAll('circle.node')\n\t\t\t.filter(\n\t\t\t\t(d) => data.some((datum) => datum === d.data) && d.depth > 1\n\t\t\t)\n\t\t\t.classed('hovered-child', false);\n\t}\n\n\t// highlight the children circles with a stroke\n\thighlightChildren(childData, classname?) {\n\t\tconst data = childData.map((d) => d.data);\n\n\t\tthis.parent\n\t\t\t.selectAll('circle.node')\n\t\t\t.filter(\n\t\t\t\t(d) => data.some((datum) => datum === d.data) && d.depth > 1\n\t\t\t)\n\t\t\t.classed(classname ? classname : 'hovered-child', true);\n\t}\n\n\tgetZoomClass(node) {\n\t\tif (this.model.getHierarchyLevel() === 3 && this.focal) {\n\t\t\tif (\n\t\t\t\tnode.data === this.focal.data ||\n\t\t\t\tthis.focal.children.some((d) => d.data === node.data)\n\t\t\t) {\n\t\t\t\treturn 'focal';\n\t\t\t}\n\t\t}\n\t\treturn 'non-focal';\n\t}\n\n\taddLegendListeners() {\n\t\tconst { events } = this.services;\n\t\t// Highlight correct circle on legend item hovers\n\t\tevents.addEventListener(\n\t\t\tEvents.Legend.ITEM_HOVER,\n\t\t\tthis.handleLegendOnHover\n\t\t);\n\t\t// Un-highlight circles on legend item mouseouts\n\t\tevents.addEventListener(\n\t\t\tEvents.Legend.ITEM_MOUSEOUT,\n\t\t\tthis.handleLegendMouseOut\n\t\t);\n\t}\n\n\tremoveBackgroundListeners() {\n\t\tconst chartSvg = select(this.services.domUtils.getMainSVG());\n\t\tchartSvg.on('click', () => null);\n\t}\n\n\tsetBackgroundListeners() {\n\t\tconst chartSvg = select(this.services.domUtils.getMainSVG());\n\t\tconst self = this;\n\t\tconst canvasSelection = this.parent.selectAll('circle.node');\n\t\tconst zoomSetting = Tools.getProperty(\n\t\t\tConfiguration,\n\t\t\t'canvasZoomSettings'\n\t\t);\n\n\t\tchartSvg.on('click', () => {\n\t\t\tself.focal = null;\n\t\t\tself.model.updateHierarchyLevel(2);\n\t\t\tchartSvg.classed('zoomed-in', false);\n\t\t\tself.services.canvasZoom.zoomOut(canvasSelection, zoomSetting);\n\t\t});\n\t}\n\n\thandleLegendOnHover = (event: CustomEvent) => {\n\t\tconst { hoveredElement } = event.detail;\n\n\t\tthis.parent\n\t\t\t.selectAll('circle.node')\n\t\t\t.transition(\n\t\t\t\tthis.services.transitions.getTransition(\n\t\t\t\t\t'legend-hover-circlepack'\n\t\t\t\t)\n\t\t\t)\n\t\t\t.attr('opacity', (d) => {\n\t\t\t\treturn d.data.dataGroupName === hoveredElement.datum()['name']\n\t\t\t\t\t? 1\n\t\t\t\t\t: Configuration.circlePack.circles.fillOpacity;\n\t\t\t});\n\t};\n\n\thandleLegendMouseOut = (event: CustomEvent) => {\n\t\tthis.parent\n\t\t\t.selectAll('circle.node')\n\t\t\t.transition(\n\t\t\t\tthis.services.transitions.getTransition(\n\t\t\t\t\t'legend-mouseout-circlepack'\n\t\t\t\t)\n\t\t\t)\n\t\t\t.attr('opacity', 1);\n\t};\n\n\t// Zoom icon to be appended to the label in the tooltip\n\tgetZoomIcon() {\n\t\treturn `\n\t\t<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 10 10\">\n\t\t\t<polygon points=\"5.93 3.71 4.45 3.71 4.45 2.23 3.71 2.23 3.71 3.71 2.23 3.71 2.23 4.45 3.71 4.45 3.71 5.93 4.45 5.93 4.45 4.45 5.93 4.45 5.93 3.71\"/>\n\t\t\t<path d=\"M7.2,6.67a4,4,0,0,0,1-2.59A4.08,4.08,0,1,0,4.07,8.15h0a4,4,0,0,0,2.59-1L9.48,10,10,9.48Zm-3.12.77A3.34,3.34,0,1,1,7.41,4.08,3.34,3.34,0,0,1,4.08,7.44Z\"/>\n\t\t</svg>`;\n\t}\n\n\t// add event listeners for tooltip on the circles\n\taddEventListeners() {\n\t\tconst self = this;\n\t\tthis.parent\n\t\t\t.selectAll('circle.node')\n\t\t\t.on('mouseover', function (datum) {\n\t\t\t\tconst hoveredElement = select(this);\n\t\t\t\thoveredElement.classed('hovered', true);\n\n\t\t\t\tconst hierarchyLevel = self.model.getHierarchyLevel();\n\t\t\t\tconst disabled =\n\t\t\t\t\thierarchyLevel > 2 && !hoveredElement.classed('focal');\n\t\t\t\tconst canvasZoomEnabled = Tools.getProperty(\n\t\t\t\t\tself.model.getOptions(),\n\t\t\t\t\t'canvasZoom',\n\t\t\t\t\t'enabled'\n\t\t\t\t);\n\n\t\t\t\tlet zoomable = false;\n\t\t\t\tif (!disabled) {\n\t\t\t\t\t// get the children data for the tooltip\n\t\t\t\t\tlet childrenData = [];\n\t\t\t\t\tlet totalValue = [];\n\t\t\t\t\tlet parentValue = null;\n\t\t\t\t\tif (datum.children) {\n\t\t\t\t\t\tif (datum.depth > 1 && canvasZoomEnabled) {\n\t\t\t\t\t\t\tzoomable = true;\n\t\t\t\t\t\t\thoveredElement.classed('clickable', true);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tchildrenData = datum.children.map((child) => {\n\t\t\t\t\t\t\tif (child !== null) {\n\t\t\t\t\t\t\t\t// sum up the children values if there are any 3rd level\n\t\t\t\t\t\t\t\tlet value;\n\t\t\t\t\t\t\t\tif (typeof child.data.value === 'number') {\n\t\t\t\t\t\t\t\t\tvalue = child.data.value;\n\n\t\t\t\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\t\t\t\tlabel: child.data.name,\n\t\t\t\t\t\t\t\t\t\tvalue: value,\n\t\t\t\t\t\t\t\t\t};\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\tvalue = child.data.children.reduce(\n\t\t\t\t\t\t\t\t\t\t(a, b) => a + b.value,\n\t\t\t\t\t\t\t\t\t\t0\n\t\t\t\t\t\t\t\t\t);\n\n\t\t\t\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\t\t\t\tlabel: child.data.name,\n\t\t\t\t\t\t\t\t\t\tlabelIcon:\n\t\t\t\t\t\t\t\t\t\t\tcanvasZoomEnabled &&\n\t\t\t\t\t\t\t\t\t\t\thierarchyLevel <= 2\n\t\t\t\t\t\t\t\t\t\t\t\t? self.getZoomIcon()\n\t\t\t\t\t\t\t\t\t\t\t\t: null,\n\t\t\t\t\t\t\t\t\t\tvalue: value,\n\t\t\t\t\t\t\t\t\t};\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t});\n\n\t\t\t\t\t\ttotalValue = [\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tlabel: 'Total',\n\t\t\t\t\t\t\t\tvalue: datum.value,\n\t\t\t\t\t\t\t\tbold: true,\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t];\n\t\t\t\t\t\t// children get a highlight stroke\n\t\t\t\t\t\tself.highlightChildren(datum.children);\n\t\t\t\t\t} else {\n\t\t\t\t\t\t// if there is no children we want to display the value for the data\n\t\t\t\t\t\tparentValue = datum.value;\n\t\t\t\t\t}\n\n\t\t\t\t\tlet fillColor = getComputedStyle(\n\t\t\t\t\t\tthis,\n\t\t\t\t\t\tnull\n\t\t\t\t\t).getPropertyValue('fill');\n\n\t\t\t\t\t// Show tooltip\n\t\t\t\t\tself.services.events.dispatchEvent(Events.Tooltip.SHOW, {\n\t\t\t\t\t\thoveredElement,\n\t\t\t\t\t\titems: [\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tcolor: fillColor,\n\t\t\t\t\t\t\t\tlabel: datum.data.name,\n\t\t\t\t\t\t\t\tlabelIcon:\n\t\t\t\t\t\t\t\t\tzoomable &&\n\t\t\t\t\t\t\t\t\tcanvasZoomEnabled &&\n\t\t\t\t\t\t\t\t\thierarchyLevel <= 2\n\t\t\t\t\t\t\t\t\t\t? self.getZoomIcon()\n\t\t\t\t\t\t\t\t\t\t: null,\n\t\t\t\t\t\t\t\tvalue: parentValue,\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t...childrenData,\n\t\t\t\t\t\t\t...totalValue,\n\t\t\t\t\t\t],\n\t\t\t\t\t});\n\t\t\t\t}\n\n\t\t\t\t// Dispatch mouse event\n\t\t\t\tself.services.events.dispatchEvent(\n\t\t\t\t\tEvents.CirclePack.CIRCLE_MOUSEOVER,\n\t\t\t\t\t{\n\t\t\t\t\t\telement: hoveredElement,\n\t\t\t\t\t\tdatum,\n\t\t\t\t\t}\n\t\t\t\t);\n\t\t\t})\n\t\t\t.on('mousemove', function (datum) {\n\t\t\t\tconst hoveredElement = select(this);\n\n\t\t\t\t// Dispatch mouse event\n\t\t\t\tself.services.events.dispatchEvent(\n\t\t\t\t\tEvents.CirclePack.CIRCLE_MOUSEMOVE,\n\t\t\t\t\t{\n\t\t\t\t\t\telement: hoveredElement,\n\t\t\t\t\t\tdatum,\n\t\t\t\t\t}\n\t\t\t\t);\n\n\t\t\t\tself.services.events.dispatchEvent(Events.Tooltip.MOVE);\n\t\t\t})\n\t\t\t.on('mouseout', function (datum) {\n\t\t\t\tconst hoveredElement = select(this);\n\t\t\t\thoveredElement.classed('hovered', false);\n\n\t\t\t\tif (datum.children) {\n\t\t\t\t\tself.unhighlightChildren(datum.children);\n\t\t\t\t}\n\n\t\t\t\t// Dispatch mouse event\n\t\t\t\tself.services.events.dispatchEvent(\n\t\t\t\t\tEvents.CirclePack.CIRCLE_MOUSEOUT,\n\t\t\t\t\t{\n\t\t\t\t\t\telement: hoveredElement,\n\t\t\t\t\t\tdatum,\n\t\t\t\t\t}\n\t\t\t\t);\n\n\t\t\t\t// Hide tooltip\n\t\t\t\tself.services.events.dispatchEvent(Events.Tooltip.HIDE, {\n\t\t\t\t\thoveredElement,\n\t\t\t\t});\n\t\t\t})\n\t\t\t.on('click', function (datum) {\n\t\t\t\tconst hoveredElement = select(this);\n\t\t\t\tconst disabled = hoveredElement.classed('non-focal');\n\n\t\t\t\tconst zoomedIn =\n\t\t\t\t\tTools.getProperty(\n\t\t\t\t\t\tself.getOptions(),\n\t\t\t\t\t\t'canvasZoom',\n\t\t\t\t\t\t'enabled'\n\t\t\t\t\t) && self.model.getHierarchyLevel() > 2;\n\n\t\t\t\tif (zoomedIn) {\n\t\t\t\t\tconst canvasSelection = self.parent.selectAll(\n\t\t\t\t\t\t'circle.node'\n\t\t\t\t\t);\n\t\t\t\t\tconst chartSvg = select(\n\t\t\t\t\t\tself.services.domUtils.getMainSVG()\n\t\t\t\t\t);\n\t\t\t\t\tchartSvg.classed('zoomed-in', false);\n\t\t\t\t\tself.focal = null;\n\t\t\t\t\tself.model.updateHierarchyLevel(2);\n\t\t\t\t\tself.services.canvasZoom.zoomOut(\n\t\t\t\t\t\tcanvasSelection,\n\t\t\t\t\t\tConfiguration.canvasZoomSettings\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t\t// zoom if chart has zoom enabled and if its a depth 2 circle that has children\n\t\t\t\telse if (datum.depth === 2 && datum.children && !disabled) {\n\t\t\t\t\tconst canvasSelection = self.parent.selectAll(\n\t\t\t\t\t\t'circle.node'\n\t\t\t\t\t);\n\t\t\t\t\tconst chartSvg = select(\n\t\t\t\t\t\tself.services.domUtils.getMainSVG()\n\t\t\t\t\t);\n\t\t\t\t\tchartSvg.classed('zoomed-in', true);\n\t\t\t\t\tself.focal = datum;\n\t\t\t\t\tself.model.updateHierarchyLevel(3);\n\t\t\t\t\tself.services.canvasZoom.zoomIn(\n\t\t\t\t\t\tdatum,\n\t\t\t\t\t\tcanvasSelection,\n\t\t\t\t\t\tConfiguration.canvasZoomSettings\n\t\t\t\t\t);\n\t\t\t\t\t// don't want the click event to propagate to the background zoom out\n\t\t\t\t\t// does not clash with the tooltip/other events because it does need to close the\n\t\t\t\t\t// tooltip on the click event in order to zoom in/out\n\t\t\t\t\tevent.stopPropagation();\n\t\t\t\t}\n\n\t\t\t\t// Dispatch mouse event\n\t\t\t\tself.services.events.dispatchEvent(\n\t\t\t\t\tEvents.CirclePack.CIRCLE_CLICK,\n\t\t\t\t\t{\n\t\t\t\t\t\telement: hoveredElement,\n\t\t\t\t\t\tdatum,\n\t\t\t\t\t}\n\t\t\t\t);\n\t\t\t});\n\t}\n\n\tdestroy() {\n\t\t// Remove event listeners\n\t\tthis.parent\n\t\t\t.selectAll('circle.node')\n\t\t\t.on('mouseover', null)\n\t\t\t.on('mousemove', null)\n\t\t\t.on('mouseout', null)\n\t\t\t.on('click', null);\n\n\t\t// remove the listeners on the legend\n\t\tconst eventsFragment = this.services.events;\n\t\teventsFragment.removeEventListener(\n\t\t\tEvents.Legend.ITEM_HOVER,\n\t\t\tthis.handleLegendOnHover\n\t\t);\n\t\teventsFragment.removeEventListener(\n\t\t\tEvents.Legend.ITEM_MOUSEOUT,\n\t\t\tthis.handleLegendMouseOut\n\t\t);\n\n\t\tthis.removeBackgroundListeners();\n\t}\n}\n"]}
|