@carbon/charts 0.54.11 → 0.54.12

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.
@@ -18,7 +18,6 @@ import { Events, ColorClassNameTypes, RenderTypes } from '../../interfaces';
18
18
  import { Tools } from '../../tools';
19
19
  // D3 Imports
20
20
  import { hierarchy as d3Hierarchy, treemap as d3Treemap } from 'd3-hierarchy';
21
- import { sum } from 'd3-array';
22
21
  import { hsl, color } from 'd3-color';
23
22
  import { select } from 'd3-selection';
24
23
  // Carbon colors
@@ -114,9 +113,6 @@ var Treemap = /** @class */ (function (_super) {
114
113
  })
115
114
  .sum(function (d) { return d.value; })
116
115
  .sort(function (a, b) { return b.value - a.value; });
117
- var total = sum(allData, function (d) {
118
- return sum(d.children, function (child) { return child.value; });
119
- });
120
116
  var root = d3Treemap()
121
117
  .size([width, height])
122
118
  .paddingInner(1)
@@ -1 +1 @@
1
- {"version":3,"file":"treemap.js","sourceRoot":"","sources":["treemap.ts"],"names":[],"mappings":"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","sourcesContent":["// Internal Imports\nimport { Component } from '../component';\nimport { DOMUtils } from '../../services';\nimport { Events, ColorClassNameTypes, RenderTypes } from '../../interfaces';\nimport { Tools } from '../../tools';\n\n// D3 Imports\nimport { hierarchy as d3Hierarchy, treemap as d3Treemap } from 'd3-hierarchy';\nimport { sum } from 'd3-array';\nimport { hsl, color } from 'd3-color';\nimport { select } from 'd3-selection';\n\n// Carbon colors\nimport { colors } from '@carbon/colors';\n\nconst findColorShade = (hex) => {\n\tif (!hex) {\n\t\treturn null;\n\t}\n\n\tfor (let colorName of Object.keys(colors)) {\n\t\tconst colorShades = colors[colorName];\n\n\t\tfor (let colorShadeLevel of Object.keys(colorShades)) {\n\t\t\tconst colorShade = colorShades[colorShadeLevel];\n\n\t\t\tif (colorShade === hex) {\n\t\t\t\treturn colorShadeLevel;\n\t\t\t}\n\t\t}\n\t}\n\n\treturn null;\n};\n\nconst textFillColor = function () {\n\tconst correspondingLeaf = select(this.parentNode).select(\n\t\t'rect.leaf'\n\t) as any;\n\tconst correspondingLeafFill = getComputedStyle(\n\t\tcorrespondingLeaf.node(),\n\t\tnull\n\t).getPropertyValue('fill');\n\tconst cl = color(correspondingLeafFill) as any;\n\n\tlet colorShade;\n\tif (cl) {\n\t\tcolorShade = findColorShade(cl ? cl.hex() : null);\n\t}\n\n\tif (colorShade === null || colorShade === undefined) {\n\t\tconst lightness = hsl(cl).l;\n\t\tcolorShade = Math.abs(lightness * 100 - 100);\n\t}\n\n\treturn colorShade > 50 ? 'white' : 'black';\n};\n\nlet uidCounter = 0;\nexport class Treemap extends Component {\n\ttype = 'treemap';\n\trenderType = RenderTypes.SVG;\n\n\tinit() {\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\trender(animate = true) {\n\t\tconst svg = this.getComponentContainer();\n\n\t\tconst allData = this.model.getData();\n\t\tconst displayData = this.model.getDisplayData();\n\t\tconst options = this.model.getOptions();\n\n\t\tconst windowLocation = Tools.getProperty(window, 'location');\n\n\t\tconst { width, height } = DOMUtils.getSVGElementSize(svg, {\n\t\t\tuseAttrs: true,\n\t\t});\n\n\t\tconst hierarchy = d3Hierarchy({\n\t\t\tname: options.title || 'Treemap',\n\t\t\tchildren: displayData,\n\t\t})\n\t\t\t.sum((d: any) => d.value)\n\t\t\t.sort((a, b) => b.value - a.value);\n\n\t\tconst total = sum(allData, (d: any) =>\n\t\t\tsum(d.children, (child: any) => child.value)\n\t\t);\n\n\t\tconst root = d3Treemap()\n\t\t\t.size([width, height])\n\t\t\t.paddingInner(1)\n\t\t\t.paddingOuter(0)\n\t\t\t.round(true)(hierarchy);\n\t\tconst { transitions } = this.services;\n\n\t\tconst leafGroups = svg\n\t\t\t.selectAll(\"g[data-name='leaf']\")\n\t\t\t.data(root.leaves(), (leaf) => leaf.data.name);\n\n\t\t// Remove leaf groups that need to be removed\n\t\tleafGroups.exit().attr('opacity', 0).remove();\n\n\t\t// Add the leaf groups that need to be introduced\n\t\tconst enteringLeafGroups = leafGroups\n\t\t\t.enter()\n\t\t\t.append('g')\n\t\t\t.attr('data-name', 'leaf')\n\t\t\t.attr('data-uid', () => uidCounter++);\n\n\t\tconst allLeafGroups = enteringLeafGroups.merge(leafGroups);\n\n\t\tallLeafGroups\n\t\t\t.attr('data-name', 'leaf')\n\t\t\t.transition()\n\t\t\t.call((t) =>\n\t\t\t\tthis.services.transitions.setupTransition({\n\t\t\t\t\ttransition: t,\n\t\t\t\t\tname: 'treemap-group-update',\n\t\t\t\t\tanimate,\n\t\t\t\t})\n\t\t\t)\n\t\t\t.attr('transform', (d) => `translate(${d.x0},${d.y0})`);\n\n\t\tconst rects = allLeafGroups.selectAll('rect.leaf').data((d) => [d]);\n\n\t\trects.exit().attr('width', 0).attr('height', 0).remove();\n\n\t\tconst enteringRects = rects\n\t\t\t.enter()\n\t\t\t.append('rect')\n\t\t\t.classed('leaf', true);\n\n\t\tenteringRects\n\t\t\t.merge(rects)\n\t\t\t.attr('width', 0)\n\t\t\t.attr('height', 0)\n\t\t\t.attr('id', function () {\n\t\t\t\tconst uid = select(this.parentNode).attr('data-uid');\n\t\t\t\treturn `${options.style.prefix}-leaf-${uid}`;\n\t\t\t})\n\t\t\t.attr('class', (d) => {\n\t\t\t\twhile (d.depth > 1) d = d.parent;\n\n\t\t\t\treturn this.model.getColorClassName({\n\t\t\t\t\tclassNameTypes: [ColorClassNameTypes.FILL],\n\t\t\t\t\tdataGroupName: d.data.name,\n\t\t\t\t\toriginalClassName: 'leaf',\n\t\t\t\t});\n\t\t\t})\n\t\t\t.transition()\n\t\t\t.call((t) =>\n\t\t\t\tthis.services.transitions.setupTransition({\n\t\t\t\t\ttransition: t,\n\t\t\t\t\tname: 'treemap-leaf-update-enter',\n\t\t\t\t\tanimate,\n\t\t\t\t})\n\t\t\t)\n\t\t\t.attr('width', (d) => d.x1 - d.x0)\n\t\t\t.attr('height', (d) => d.y1 - d.y0)\n\t\t\t.style('fill', (d) => {\n\t\t\t\twhile (d.depth > 1) d = d.parent;\n\t\t\t\treturn this.model.getFillColor(d.data.name);\n\t\t\t});\n\n\t\t// Update all clip paths\n\t\tallLeafGroups\n\t\t\t.selectAll('clipPath')\n\t\t\t.data(\n\t\t\t\t(d) => {\n\t\t\t\t\tif (d.data.showLabel !== true) {\n\t\t\t\t\t\treturn [];\n\t\t\t\t\t}\n\n\t\t\t\t\treturn [1];\n\t\t\t\t},\n\t\t\t\t(d) => d\n\t\t\t)\n\t\t\t.join(\n\t\t\t\t(enter) => {\n\t\t\t\t\tenter\n\t\t\t\t\t\t.append('clipPath')\n\t\t\t\t\t\t.attr('id', function () {\n\t\t\t\t\t\t\tconst uid = select(this.parentNode).attr(\n\t\t\t\t\t\t\t\t'data-uid'\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\treturn `${options.style.prefix}-clip-${uid}`;\n\t\t\t\t\t\t})\n\t\t\t\t\t\t.append('use')\n\t\t\t\t\t\t.attr('xlink:href', function () {\n\t\t\t\t\t\t\tconst uid = select(this.parentNode.parentNode).attr(\n\t\t\t\t\t\t\t\t'data-uid'\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\tconst leafID = `${options.style.prefix}-leaf-${uid}`;\n\n\t\t\t\t\t\t\treturn new URL(`#${leafID}`, windowLocation) + '';\n\t\t\t\t\t\t});\n\t\t\t\t},\n\t\t\t\t(update) => null,\n\t\t\t\t(exit) => exit.remove()\n\t\t\t);\n\n\t\t// Update all titles\n\t\tallLeafGroups\n\t\t\t.selectAll('text')\n\t\t\t.data(\n\t\t\t\t(d) => {\n\t\t\t\t\tif (d.data.showLabel !== true) {\n\t\t\t\t\t\treturn [];\n\t\t\t\t\t}\n\n\t\t\t\t\tlet parent = d;\n\t\t\t\t\twhile (parent.depth > 1) parent = parent.parent;\n\t\t\t\t\tconst color = hsl(\n\t\t\t\t\t\tthis.model.getFillColor(parent.data.name)\n\t\t\t\t\t);\n\t\t\t\t\treturn [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\ttext: d.data.name,\n\t\t\t\t\t\t\tcolor: color.l < 0.5 ? 'white' : 'black',\n\t\t\t\t\t\t},\n\t\t\t\t\t];\n\t\t\t\t},\n\t\t\t\t(d) => d\n\t\t\t)\n\t\t\t.join(\n\t\t\t\t(enter) => {\n\t\t\t\t\tconst addedText = enter\n\t\t\t\t\t\t.append('text')\n\t\t\t\t\t\t.text((d) => d.text)\n\t\t\t\t\t\t.style('fill', textFillColor)\n\t\t\t\t\t\t.attr('x', 7)\n\t\t\t\t\t\t.attr('y', 18);\n\n\t\t\t\t\tif (windowLocation) {\n\t\t\t\t\t\taddedText.attr('clip-path', function () {\n\t\t\t\t\t\t\tconst uid = select(this.parentNode).attr(\n\t\t\t\t\t\t\t\t'data-uid'\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\tconst clipPathID = `${options.style.prefix}-clip-${uid}`;\n\n\t\t\t\t\t\t\treturn `url(${\n\t\t\t\t\t\t\t\tnew URL(`#${clipPathID}`, windowLocation) + ''\n\t\t\t\t\t\t\t})`;\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\t(update) =>\n\t\t\t\t\tupdate.text((d) => d.text).style('fill', textFillColor),\n\t\t\t\t(exit) => exit.remove()\n\t\t\t);\n\n\t\t// Add event listeners to elements drawn\n\t\tthis.addEventListeners();\n\t}\n\n\taddEventListeners() {\n\t\tconst self = this;\n\t\tthis.parent\n\t\t\t.selectAll('rect.leaf')\n\t\t\t.on('mouseover', function (event, datum) {\n\t\t\t\tconst hoveredElement = select(this);\n\t\t\t\tlet fillColor = getComputedStyle(this, null).getPropertyValue(\n\t\t\t\t\t'fill'\n\t\t\t\t);\n\n\t\t\t\tlet parent = datum;\n\t\t\t\twhile (parent.depth > 1) parent = parent.parent;\n\n\t\t\t\thoveredElement\n\t\t\t\t\t.transition('graph_element_mouseover_fill_update')\n\t\t\t\t\t.call((t) =>\n\t\t\t\t\t\tself.services.transitions.setupTransition({\n\t\t\t\t\t\t\ttransition: t,\n\t\t\t\t\t\t\tname: 'graph_element_mouseover_fill_update',\n\t\t\t\t\t\t})\n\t\t\t\t\t)\n\t\t\t\t\t.style('fill', (d: any) => {\n\t\t\t\t\t\tconst customColor = self.model.getFillColor(\n\t\t\t\t\t\t\td.parent.data.name\n\t\t\t\t\t\t);\n\t\t\t\t\t\tif (customColor) {\n\t\t\t\t\t\t\tfillColor = customColor;\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn color(fillColor).darker(0.7).toString();\n\t\t\t\t\t});\n\n\t\t\t\t// Show tooltip\n\t\t\t\tself.services.events.dispatchEvent(Events.Tooltip.SHOW, {\n\t\t\t\t\tevent,\n\t\t\t\t\thoveredElement,\n\t\t\t\t\titems: [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tcolor: fillColor,\n\t\t\t\t\t\t\tlabel: parent.data.name,\n\t\t\t\t\t\t\tbold: true,\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tlabel: datum.data.name,\n\t\t\t\t\t\t\tvalue: datum.data.value,\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.Treemap.LEAF_MOUSEOVER,\n\t\t\t\t\t{\n\t\t\t\t\t\tevent,\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 (event, 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.Treemap.LEAF_MOUSEMOVE,\n\t\t\t\t\t{\n\t\t\t\t\t\tevent,\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\t\tevent,\n\t\t\t\t});\n\t\t\t})\n\t\t\t.on('click', function (event, datum) {\n\t\t\t\t// Dispatch mouse event\n\t\t\t\tself.services.events.dispatchEvent(Events.Treemap.LEAF_CLICK, {\n\t\t\t\t\tevent,\n\t\t\t\t\telement: select(this),\n\t\t\t\t\tdatum,\n\t\t\t\t});\n\t\t\t})\n\t\t\t.on('mouseout', function (event, datum) {\n\t\t\t\tconst hoveredElement = select(this);\n\t\t\t\thoveredElement.classed('hovered', false);\n\n\t\t\t\tlet parent = datum;\n\t\t\t\twhile (parent.depth > 1) parent = parent.parent;\n\n\t\t\t\thoveredElement\n\t\t\t\t\t.transition()\n\t\t\t\t\t.call((t) =>\n\t\t\t\t\t\tself.services.transitions.setupTransition({\n\t\t\t\t\t\t\ttransition: t,\n\t\t\t\t\t\t\tname: 'graph_element_mouseout_fill_update',\n\t\t\t\t\t\t})\n\t\t\t\t\t)\n\t\t\t\t\t.style('fill', (d: any) =>\n\t\t\t\t\t\tself.model.getFillColor(d.parent.data.name)\n\t\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.Treemap.LEAF_MOUSEOUT,\n\t\t\t\t\t{\n\t\t\t\t\t\tevent,\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}\n\n\thandleLegendOnHover = (event: CustomEvent) => {\n\t\tconst { hoveredElement } = event.detail;\n\n\t\tthis.parent\n\t\t\t.selectAll(\"g[data-name='leaf']\")\n\t\t\t.transition('legend-hover-treemap')\n\t\t\t.call((t) =>\n\t\t\t\tthis.services.transitions.setupTransition({\n\t\t\t\t\ttransition: t,\n\t\t\t\t\tname: 'legend-hover-treemap',\n\t\t\t\t})\n\t\t\t)\n\t\t\t.attr('opacity', (d) =>\n\t\t\t\td.parent.data.name === hoveredElement.datum()['name'] ? 1 : 0.3\n\t\t\t);\n\t};\n\n\thandleLegendMouseOut = (event: CustomEvent) => {\n\t\tthis.parent\n\t\t\t.selectAll(\"g[data-name='leaf']\")\n\t\t\t.transition('legend-mouseout-treemap')\n\t\t\t.call((t) =>\n\t\t\t\tthis.services.transitions.setupTransition({\n\t\t\t\t\ttransition: t,\n\t\t\t\t\tname: 'legend-mouseout-treemap',\n\t\t\t\t})\n\t\t\t)\n\t\t\t.attr('opacity', 1);\n\t};\n}\n"]}
1
+ {"version":3,"file":"treemap.js","sourceRoot":"","sources":["treemap.ts"],"names":[],"mappings":";;;;;;;;;;;;;AAAA,mBAAmB;AACnB,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC1C,OAAO,EAAE,MAAM,EAAE,mBAAmB,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC5E,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAEpC,aAAa;AACb,OAAO,EAAE,SAAS,IAAI,WAAW,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,cAAc,CAAC;AAE9E,OAAO,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,UAAU,CAAC;AACtC,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAEtC,gBAAgB;AAChB,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AAExC,IAAM,cAAc,GAAG,UAAC,GAAG;IAC1B,IAAI,CAAC,GAAG,EAAE;QACT,OAAO,IAAI,CAAC;KACZ;IAED,KAAsB,UAAmB,EAAnB,KAAA,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,EAAnB,cAAmB,EAAnB,IAAmB,EAAE;QAAtC,IAAI,SAAS,SAAA;QACjB,IAAM,WAAW,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC;QAEtC,KAA4B,UAAwB,EAAxB,KAAA,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,EAAxB,cAAwB,EAAxB,IAAwB,EAAE;YAAjD,IAAI,eAAe,SAAA;YACvB,IAAM,UAAU,GAAG,WAAW,CAAC,eAAe,CAAC,CAAC;YAEhD,IAAI,UAAU,KAAK,GAAG,EAAE;gBACvB,OAAO,eAAe,CAAC;aACvB;SACD;KACD;IAED,OAAO,IAAI,CAAC;AACb,CAAC,CAAC;AAEF,IAAM,aAAa,GAAG;IACrB,IAAM,iBAAiB,GAAG,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,MAAM,CACvD,WAAW,CACJ,CAAC;IACT,IAAM,qBAAqB,GAAG,gBAAgB,CAC7C,iBAAiB,CAAC,IAAI,EAAE,EACxB,IAAI,CACJ,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC;IAC3B,IAAM,EAAE,GAAG,KAAK,CAAC,qBAAqB,CAAQ,CAAC;IAE/C,IAAI,UAAU,CAAC;IACf,IAAI,EAAE,EAAE;QACP,UAAU,GAAG,cAAc,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;KAClD;IAED,IAAI,UAAU,KAAK,IAAI,IAAI,UAAU,KAAK,SAAS,EAAE;QACpD,IAAM,SAAS,GAAG,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QAC5B,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,SAAS,GAAG,GAAG,GAAG,GAAG,CAAC,CAAC;KAC7C;IAED,OAAO,UAAU,GAAG,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC;AAC5C,CAAC,CAAC;AAEF,IAAI,UAAU,GAAG,CAAC,CAAC;AACnB;IAA6B,2BAAS;IAAtC;QAAA,qEAiWC;QAhWA,UAAI,GAAG,SAAS,CAAC;QACjB,gBAAU,GAAG,WAAW,CAAC,GAAG,CAAC;QAkU7B,yBAAmB,GAAG,UAAC,KAAkB;YAChC,IAAA,4CAAc,CAAkB;YAExC,KAAI,CAAC,MAAM;iBACT,SAAS,CAAC,qBAAqB,CAAC;iBAChC,UAAU,CAAC,sBAAsB,CAAC;iBAClC,IAAI,CAAC,UAAC,CAAC;gBACP,OAAA,KAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,eAAe,CAAC;oBACzC,UAAU,EAAE,CAAC;oBACb,IAAI,EAAE,sBAAsB;iBAC5B,CAAC;YAHF,CAGE,CACF;iBACA,IAAI,CAAC,SAAS,EAAE,UAAC,CAAC;gBAClB,OAAA,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,KAAK,cAAc,CAAC,KAAK,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG;YAA/D,CAA+D,CAC/D,CAAC;QACJ,CAAC,CAAC;QAEF,0BAAoB,GAAG,UAAC,KAAkB;YACzC,KAAI,CAAC,MAAM;iBACT,SAAS,CAAC,qBAAqB,CAAC;iBAChC,UAAU,CAAC,yBAAyB,CAAC;iBACrC,IAAI,CAAC,UAAC,CAAC;gBACP,OAAA,KAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,eAAe,CAAC;oBACzC,UAAU,EAAE,CAAC;oBACb,IAAI,EAAE,yBAAyB;iBAC/B,CAAC;YAHF,CAGE,CACF;iBACA,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC;QACtB,CAAC,CAAC;;IACH,CAAC;IA7VA,sBAAI,GAAJ;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,wBAAM,GAAN,UAAO,OAAc;QAArB,iBAyLC;QAzLM,wBAAA,EAAA,cAAc;QACpB,IAAM,GAAG,GAAG,IAAI,CAAC,qBAAqB,EAAE,CAAC;QAEzC,IAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC;QACrC,IAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,EAAE,CAAC;QAChD,IAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE,CAAC;QAExC,IAAM,cAAc,GAAG,KAAK,CAAC,WAAW,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;QAEvD,IAAA;;UAEJ,EAFM,gBAAK,EAAE,kBAEb,CAAC;QAEH,IAAM,SAAS,GAAG,WAAW,CAAC;YAC7B,IAAI,EAAE,OAAO,CAAC,KAAK,IAAI,SAAS;YAChC,QAAQ,EAAE,WAAW;SACrB,CAAC;aACA,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,IAAI,GAAG,SAAS,EAAE;aACtB,IAAI,CAAC,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;aACrB,YAAY,CAAC,CAAC,CAAC;aACf,YAAY,CAAC,CAAC,CAAC;aACf,KAAK,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,CAAC;QACjB,IAAA,uCAAW,CAAmB;QAEtC,IAAM,UAAU,GAAG,GAAG;aACpB,SAAS,CAAC,qBAAqB,CAAC;aAChC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,UAAC,IAAI,IAAK,OAAA,IAAI,CAAC,IAAI,CAAC,IAAI,EAAd,CAAc,CAAC,CAAC;QAEhD,6CAA6C;QAC7C,UAAU,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;QAE9C,iDAAiD;QACjD,IAAM,kBAAkB,GAAG,UAAU;aACnC,KAAK,EAAE;aACP,MAAM,CAAC,GAAG,CAAC;aACX,IAAI,CAAC,WAAW,EAAE,MAAM,CAAC;aACzB,IAAI,CAAC,UAAU,EAAE,cAAM,OAAA,UAAU,EAAE,EAAZ,CAAY,CAAC,CAAC;QAEvC,IAAM,aAAa,GAAG,kBAAkB,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;QAE3D,aAAa;aACX,IAAI,CAAC,WAAW,EAAE,MAAM,CAAC;aACzB,UAAU,EAAE;aACZ,IAAI,CAAC,UAAC,CAAC;YACP,OAAA,KAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,eAAe,CAAC;gBACzC,UAAU,EAAE,CAAC;gBACb,IAAI,EAAE,sBAAsB;gBAC5B,OAAO,SAAA;aACP,CAAC;QAJF,CAIE,CACF;aACA,IAAI,CAAC,WAAW,EAAE,UAAC,CAAC,IAAK,OAAA,eAAa,CAAC,CAAC,EAAE,SAAI,CAAC,CAAC,EAAE,MAAG,EAA5B,CAA4B,CAAC,CAAC;QAEzD,IAAM,KAAK,GAAG,aAAa,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,UAAC,CAAC,IAAK,OAAA,CAAC,CAAC,CAAC,EAAH,CAAG,CAAC,CAAC;QAEpE,KAAK,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;QAEzD,IAAM,aAAa,GAAG,KAAK;aACzB,KAAK,EAAE;aACP,MAAM,CAAC,MAAM,CAAC;aACd,OAAO,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;QAExB,aAAa;aACX,KAAK,CAAC,KAAK,CAAC;aACZ,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;aAChB,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;aACjB,IAAI,CAAC,IAAI,EAAE;YACX,IAAM,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;YACrD,OAAU,OAAO,CAAC,KAAK,CAAC,MAAM,cAAS,GAAK,CAAC;QAC9C,CAAC,CAAC;aACD,IAAI,CAAC,OAAO,EAAE,UAAC,CAAC;YAChB,OAAO,CAAC,CAAC,KAAK,GAAG,CAAC;gBAAE,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC;YAEjC,OAAO,KAAI,CAAC,KAAK,CAAC,iBAAiB,CAAC;gBACnC,cAAc,EAAE,CAAC,mBAAmB,CAAC,IAAI,CAAC;gBAC1C,aAAa,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI;gBAC1B,iBAAiB,EAAE,MAAM;aACzB,CAAC,CAAC;QACJ,CAAC,CAAC;aACD,UAAU,EAAE;aACZ,IAAI,CAAC,UAAC,CAAC;YACP,OAAA,KAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,eAAe,CAAC;gBACzC,UAAU,EAAE,CAAC;gBACb,IAAI,EAAE,2BAA2B;gBACjC,OAAO,SAAA;aACP,CAAC;QAJF,CAIE,CACF;aACA,IAAI,CAAC,OAAO,EAAE,UAAC,CAAC,IAAK,OAAA,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE,EAAX,CAAW,CAAC;aACjC,IAAI,CAAC,QAAQ,EAAE,UAAC,CAAC,IAAK,OAAA,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE,EAAX,CAAW,CAAC;aAClC,KAAK,CAAC,MAAM,EAAE,UAAC,CAAC;YAChB,OAAO,CAAC,CAAC,KAAK,GAAG,CAAC;gBAAE,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC;YACjC,OAAO,KAAI,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC7C,CAAC,CAAC,CAAC;QAEJ,wBAAwB;QACxB,aAAa;aACX,SAAS,CAAC,UAAU,CAAC;aACrB,IAAI,CACJ,UAAC,CAAC;YACD,IAAI,CAAC,CAAC,IAAI,CAAC,SAAS,KAAK,IAAI,EAAE;gBAC9B,OAAO,EAAE,CAAC;aACV;YAED,OAAO,CAAC,CAAC,CAAC,CAAC;QACZ,CAAC,EACD,UAAC,CAAC,IAAK,OAAA,CAAC,EAAD,CAAC,CACR;aACA,IAAI,CACJ,UAAC,KAAK;YACL,KAAK;iBACH,MAAM,CAAC,UAAU,CAAC;iBAClB,IAAI,CAAC,IAAI,EAAE;gBACX,IAAM,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,IAAI,CACvC,UAAU,CACV,CAAC;gBACF,OAAU,OAAO,CAAC,KAAK,CAAC,MAAM,cAAS,GAAK,CAAC;YAC9C,CAAC,CAAC;iBACD,MAAM,CAAC,KAAK,CAAC;iBACb,IAAI,CAAC,YAAY,EAAE;gBACnB,IAAM,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,IAAI,CAClD,UAAU,CACV,CAAC;gBACF,IAAM,MAAM,GAAM,OAAO,CAAC,KAAK,CAAC,MAAM,cAAS,GAAK,CAAC;gBAErD,OAAO,IAAI,GAAG,CAAC,MAAI,MAAQ,EAAE,cAAc,CAAC,GAAG,EAAE,CAAC;YACnD,CAAC,CAAC,CAAC;QACL,CAAC,EACD,UAAC,MAAM,IAAK,OAAA,IAAI,EAAJ,CAAI,EAChB,UAAC,IAAI,IAAK,OAAA,IAAI,CAAC,MAAM,EAAE,EAAb,CAAa,CACvB,CAAC;QAEH,oBAAoB;QACpB,aAAa;aACX,SAAS,CAAC,MAAM,CAAC;aACjB,IAAI,CACJ,UAAC,CAAC;YACD,IAAI,CAAC,CAAC,IAAI,CAAC,SAAS,KAAK,IAAI,EAAE;gBAC9B,OAAO,EAAE,CAAC;aACV;YAED,IAAI,MAAM,GAAG,CAAC,CAAC;YACf,OAAO,MAAM,CAAC,KAAK,GAAG,CAAC;gBAAE,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;YAChD,IAAM,KAAK,GAAG,GAAG,CAChB,KAAI,CAAC,KAAK,CAAC,YAAY,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CACzC,CAAC;YACF,OAAO;gBACN;oBACC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI;oBACjB,KAAK,EAAE,KAAK,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO;iBACxC;aACD,CAAC;QACH,CAAC,EACD,UAAC,CAAC,IAAK,OAAA,CAAC,EAAD,CAAC,CACR;aACA,IAAI,CACJ,UAAC,KAAK;YACL,IAAM,SAAS,GAAG,KAAK;iBACrB,MAAM,CAAC,MAAM,CAAC;iBACd,IAAI,CAAC,UAAC,CAAC,IAAK,OAAA,CAAC,CAAC,IAAI,EAAN,CAAM,CAAC;iBACnB,KAAK,CAAC,MAAM,EAAE,aAAa,CAAC;iBAC5B,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;iBACZ,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;YAEhB,IAAI,cAAc,EAAE;gBACnB,SAAS,CAAC,IAAI,CAAC,WAAW,EAAE;oBAC3B,IAAM,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,IAAI,CACvC,UAAU,CACV,CAAC;oBACF,IAAM,UAAU,GAAM,OAAO,CAAC,KAAK,CAAC,MAAM,cAAS,GAAK,CAAC;oBAEzD,OAAO,UACN,IAAI,GAAG,CAAC,MAAI,UAAY,EAAE,cAAc,CAAC,GAAG,EAAE,OAC5C,CAAC;gBACL,CAAC,CAAC,CAAC;aACH;QACF,CAAC,EACD,UAAC,MAAM;YACN,OAAA,MAAM,CAAC,IAAI,CAAC,UAAC,CAAC,IAAK,OAAA,CAAC,CAAC,IAAI,EAAN,CAAM,CAAC,CAAC,KAAK,CAAC,MAAM,EAAE,aAAa,CAAC;QAAvD,CAAuD,EACxD,UAAC,IAAI,IAAK,OAAA,IAAI,CAAC,MAAM,EAAE,EAAb,CAAa,CACvB,CAAC;QAEH,wCAAwC;QACxC,IAAI,CAAC,iBAAiB,EAAE,CAAC;IAC1B,CAAC;IAED,mCAAiB,GAAjB;QACC,IAAM,IAAI,GAAG,IAAI,CAAC;QAClB,IAAI,CAAC,MAAM;aACT,SAAS,CAAC,WAAW,CAAC;aACtB,EAAE,CAAC,WAAW,EAAE,UAAU,KAAK,EAAE,KAAK;YACtC,IAAM,cAAc,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;YACpC,IAAI,SAAS,GAAG,gBAAgB,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,gBAAgB,CAC5D,MAAM,CACN,CAAC;YAEF,IAAI,MAAM,GAAG,KAAK,CAAC;YACnB,OAAO,MAAM,CAAC,KAAK,GAAG,CAAC;gBAAE,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;YAEhD,cAAc;iBACZ,UAAU,CAAC,qCAAqC,CAAC;iBACjD,IAAI,CAAC,UAAC,CAAC;gBACP,OAAA,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,eAAe,CAAC;oBACzC,UAAU,EAAE,CAAC;oBACb,IAAI,EAAE,qCAAqC;iBAC3C,CAAC;YAHF,CAGE,CACF;iBACA,KAAK,CAAC,MAAM,EAAE,UAAC,CAAM;gBACrB,IAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAC1C,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAClB,CAAC;gBACF,IAAI,WAAW,EAAE;oBAChB,SAAS,GAAG,WAAW,CAAC;iBACxB;gBACD,OAAO,KAAK,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,CAAC;YAChD,CAAC,CAAC,CAAC;YAEJ,eAAe;YACf,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,aAAa,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE;gBACvD,KAAK,OAAA;gBACL,cAAc,gBAAA;gBACd,KAAK,EAAE;oBACN;wBACC,KAAK,EAAE,SAAS;wBAChB,KAAK,EAAE,MAAM,CAAC,IAAI,CAAC,IAAI;wBACvB,IAAI,EAAE,IAAI;qBACV;oBACD;wBACC,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI;wBACtB,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC,KAAK;qBACvB;iBACD;aACD,CAAC,CAAC;YAEH,uBAAuB;YACvB,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,aAAa,CACjC,MAAM,CAAC,OAAO,CAAC,cAAc,EAC7B;gBACC,KAAK,OAAA;gBACL,OAAO,EAAE,cAAc;gBACvB,KAAK,OAAA;aACL,CACD,CAAC;QACH,CAAC,CAAC;aACD,EAAE,CAAC,WAAW,EAAE,UAAU,KAAK,EAAE,KAAK;YACtC,IAAM,cAAc,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;YAEpC,uBAAuB;YACvB,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,aAAa,CACjC,MAAM,CAAC,OAAO,CAAC,cAAc,EAC7B;gBACC,KAAK,OAAA;gBACL,OAAO,EAAE,cAAc;gBACvB,KAAK,OAAA;aACL,CACD,CAAC;YAEF,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,aAAa,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE;gBACvD,KAAK,OAAA;aACL,CAAC,CAAC;QACJ,CAAC,CAAC;aACD,EAAE,CAAC,OAAO,EAAE,UAAU,KAAK,EAAE,KAAK;YAClC,uBAAuB;YACvB,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,aAAa,CAAC,MAAM,CAAC,OAAO,CAAC,UAAU,EAAE;gBAC7D,KAAK,OAAA;gBACL,OAAO,EAAE,MAAM,CAAC,IAAI,CAAC;gBACrB,KAAK,OAAA;aACL,CAAC,CAAC;QACJ,CAAC,CAAC;aACD,EAAE,CAAC,UAAU,EAAE,UAAU,KAAK,EAAE,KAAK;YACrC,IAAM,cAAc,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;YACpC,cAAc,CAAC,OAAO,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;YAEzC,IAAI,MAAM,GAAG,KAAK,CAAC;YACnB,OAAO,MAAM,CAAC,KAAK,GAAG,CAAC;gBAAE,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;YAEhD,cAAc;iBACZ,UAAU,EAAE;iBACZ,IAAI,CAAC,UAAC,CAAC;gBACP,OAAA,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,eAAe,CAAC;oBACzC,UAAU,EAAE,CAAC;oBACb,IAAI,EAAE,oCAAoC;iBAC1C,CAAC;YAHF,CAGE,CACF;iBACA,KAAK,CAAC,MAAM,EAAE,UAAC,CAAM;gBACrB,OAAA,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC;YAA3C,CAA2C,CAC3C,CAAC;YAEH,uBAAuB;YACvB,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,aAAa,CACjC,MAAM,CAAC,OAAO,CAAC,aAAa,EAC5B;gBACC,KAAK,OAAA;gBACL,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,CAAC;IACL,CAAC;IA+BF,cAAC;AAAD,CAAC,AAjWD,CAA6B,SAAS,GAiWrC","sourcesContent":["// Internal Imports\nimport { Component } from '../component';\nimport { DOMUtils } from '../../services';\nimport { Events, ColorClassNameTypes, RenderTypes } from '../../interfaces';\nimport { Tools } from '../../tools';\n\n// D3 Imports\nimport { hierarchy as d3Hierarchy, treemap as d3Treemap } from 'd3-hierarchy';\nimport { sum } from 'd3-array';\nimport { hsl, color } from 'd3-color';\nimport { select } from 'd3-selection';\n\n// Carbon colors\nimport { colors } from '@carbon/colors';\n\nconst findColorShade = (hex) => {\n\tif (!hex) {\n\t\treturn null;\n\t}\n\n\tfor (let colorName of Object.keys(colors)) {\n\t\tconst colorShades = colors[colorName];\n\n\t\tfor (let colorShadeLevel of Object.keys(colorShades)) {\n\t\t\tconst colorShade = colorShades[colorShadeLevel];\n\n\t\t\tif (colorShade === hex) {\n\t\t\t\treturn colorShadeLevel;\n\t\t\t}\n\t\t}\n\t}\n\n\treturn null;\n};\n\nconst textFillColor = function () {\n\tconst correspondingLeaf = select(this.parentNode).select(\n\t\t'rect.leaf'\n\t) as any;\n\tconst correspondingLeafFill = getComputedStyle(\n\t\tcorrespondingLeaf.node(),\n\t\tnull\n\t).getPropertyValue('fill');\n\tconst cl = color(correspondingLeafFill) as any;\n\n\tlet colorShade;\n\tif (cl) {\n\t\tcolorShade = findColorShade(cl ? cl.hex() : null);\n\t}\n\n\tif (colorShade === null || colorShade === undefined) {\n\t\tconst lightness = hsl(cl).l;\n\t\tcolorShade = Math.abs(lightness * 100 - 100);\n\t}\n\n\treturn colorShade > 50 ? 'white' : 'black';\n};\n\nlet uidCounter = 0;\nexport class Treemap extends Component {\n\ttype = 'treemap';\n\trenderType = RenderTypes.SVG;\n\n\tinit() {\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\trender(animate = true) {\n\t\tconst svg = this.getComponentContainer();\n\n\t\tconst allData = this.model.getData();\n\t\tconst displayData = this.model.getDisplayData();\n\t\tconst options = this.model.getOptions();\n\n\t\tconst windowLocation = Tools.getProperty(window, 'location');\n\n\t\tconst { width, height } = DOMUtils.getSVGElementSize(svg, {\n\t\t\tuseAttrs: true,\n\t\t});\n\n\t\tconst hierarchy = d3Hierarchy({\n\t\t\tname: options.title || 'Treemap',\n\t\t\tchildren: displayData,\n\t\t})\n\t\t\t.sum((d: any) => d.value)\n\t\t\t.sort((a, b) => b.value - a.value);\n\n\t\tconst root = d3Treemap()\n\t\t\t.size([width, height])\n\t\t\t.paddingInner(1)\n\t\t\t.paddingOuter(0)\n\t\t\t.round(true)(hierarchy);\n\t\tconst { transitions } = this.services;\n\n\t\tconst leafGroups = svg\n\t\t\t.selectAll(\"g[data-name='leaf']\")\n\t\t\t.data(root.leaves(), (leaf) => leaf.data.name);\n\n\t\t// Remove leaf groups that need to be removed\n\t\tleafGroups.exit().attr('opacity', 0).remove();\n\n\t\t// Add the leaf groups that need to be introduced\n\t\tconst enteringLeafGroups = leafGroups\n\t\t\t.enter()\n\t\t\t.append('g')\n\t\t\t.attr('data-name', 'leaf')\n\t\t\t.attr('data-uid', () => uidCounter++);\n\n\t\tconst allLeafGroups = enteringLeafGroups.merge(leafGroups);\n\n\t\tallLeafGroups\n\t\t\t.attr('data-name', 'leaf')\n\t\t\t.transition()\n\t\t\t.call((t) =>\n\t\t\t\tthis.services.transitions.setupTransition({\n\t\t\t\t\ttransition: t,\n\t\t\t\t\tname: 'treemap-group-update',\n\t\t\t\t\tanimate,\n\t\t\t\t})\n\t\t\t)\n\t\t\t.attr('transform', (d) => `translate(${d.x0},${d.y0})`);\n\n\t\tconst rects = allLeafGroups.selectAll('rect.leaf').data((d) => [d]);\n\n\t\trects.exit().attr('width', 0).attr('height', 0).remove();\n\n\t\tconst enteringRects = rects\n\t\t\t.enter()\n\t\t\t.append('rect')\n\t\t\t.classed('leaf', true);\n\n\t\tenteringRects\n\t\t\t.merge(rects)\n\t\t\t.attr('width', 0)\n\t\t\t.attr('height', 0)\n\t\t\t.attr('id', function () {\n\t\t\t\tconst uid = select(this.parentNode).attr('data-uid');\n\t\t\t\treturn `${options.style.prefix}-leaf-${uid}`;\n\t\t\t})\n\t\t\t.attr('class', (d) => {\n\t\t\t\twhile (d.depth > 1) d = d.parent;\n\n\t\t\t\treturn this.model.getColorClassName({\n\t\t\t\t\tclassNameTypes: [ColorClassNameTypes.FILL],\n\t\t\t\t\tdataGroupName: d.data.name,\n\t\t\t\t\toriginalClassName: 'leaf',\n\t\t\t\t});\n\t\t\t})\n\t\t\t.transition()\n\t\t\t.call((t) =>\n\t\t\t\tthis.services.transitions.setupTransition({\n\t\t\t\t\ttransition: t,\n\t\t\t\t\tname: 'treemap-leaf-update-enter',\n\t\t\t\t\tanimate,\n\t\t\t\t})\n\t\t\t)\n\t\t\t.attr('width', (d) => d.x1 - d.x0)\n\t\t\t.attr('height', (d) => d.y1 - d.y0)\n\t\t\t.style('fill', (d) => {\n\t\t\t\twhile (d.depth > 1) d = d.parent;\n\t\t\t\treturn this.model.getFillColor(d.data.name);\n\t\t\t});\n\n\t\t// Update all clip paths\n\t\tallLeafGroups\n\t\t\t.selectAll('clipPath')\n\t\t\t.data(\n\t\t\t\t(d) => {\n\t\t\t\t\tif (d.data.showLabel !== true) {\n\t\t\t\t\t\treturn [];\n\t\t\t\t\t}\n\n\t\t\t\t\treturn [1];\n\t\t\t\t},\n\t\t\t\t(d) => d\n\t\t\t)\n\t\t\t.join(\n\t\t\t\t(enter) => {\n\t\t\t\t\tenter\n\t\t\t\t\t\t.append('clipPath')\n\t\t\t\t\t\t.attr('id', function () {\n\t\t\t\t\t\t\tconst uid = select(this.parentNode).attr(\n\t\t\t\t\t\t\t\t'data-uid'\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\treturn `${options.style.prefix}-clip-${uid}`;\n\t\t\t\t\t\t})\n\t\t\t\t\t\t.append('use')\n\t\t\t\t\t\t.attr('xlink:href', function () {\n\t\t\t\t\t\t\tconst uid = select(this.parentNode.parentNode).attr(\n\t\t\t\t\t\t\t\t'data-uid'\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\tconst leafID = `${options.style.prefix}-leaf-${uid}`;\n\n\t\t\t\t\t\t\treturn new URL(`#${leafID}`, windowLocation) + '';\n\t\t\t\t\t\t});\n\t\t\t\t},\n\t\t\t\t(update) => null,\n\t\t\t\t(exit) => exit.remove()\n\t\t\t);\n\n\t\t// Update all titles\n\t\tallLeafGroups\n\t\t\t.selectAll('text')\n\t\t\t.data(\n\t\t\t\t(d) => {\n\t\t\t\t\tif (d.data.showLabel !== true) {\n\t\t\t\t\t\treturn [];\n\t\t\t\t\t}\n\n\t\t\t\t\tlet parent = d;\n\t\t\t\t\twhile (parent.depth > 1) parent = parent.parent;\n\t\t\t\t\tconst color = hsl(\n\t\t\t\t\t\tthis.model.getFillColor(parent.data.name)\n\t\t\t\t\t);\n\t\t\t\t\treturn [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\ttext: d.data.name,\n\t\t\t\t\t\t\tcolor: color.l < 0.5 ? 'white' : 'black',\n\t\t\t\t\t\t},\n\t\t\t\t\t];\n\t\t\t\t},\n\t\t\t\t(d) => d\n\t\t\t)\n\t\t\t.join(\n\t\t\t\t(enter) => {\n\t\t\t\t\tconst addedText = enter\n\t\t\t\t\t\t.append('text')\n\t\t\t\t\t\t.text((d) => d.text)\n\t\t\t\t\t\t.style('fill', textFillColor)\n\t\t\t\t\t\t.attr('x', 7)\n\t\t\t\t\t\t.attr('y', 18);\n\n\t\t\t\t\tif (windowLocation) {\n\t\t\t\t\t\taddedText.attr('clip-path', function () {\n\t\t\t\t\t\t\tconst uid = select(this.parentNode).attr(\n\t\t\t\t\t\t\t\t'data-uid'\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\tconst clipPathID = `${options.style.prefix}-clip-${uid}`;\n\n\t\t\t\t\t\t\treturn `url(${\n\t\t\t\t\t\t\t\tnew URL(`#${clipPathID}`, windowLocation) + ''\n\t\t\t\t\t\t\t})`;\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\t(update) =>\n\t\t\t\t\tupdate.text((d) => d.text).style('fill', textFillColor),\n\t\t\t\t(exit) => exit.remove()\n\t\t\t);\n\n\t\t// Add event listeners to elements drawn\n\t\tthis.addEventListeners();\n\t}\n\n\taddEventListeners() {\n\t\tconst self = this;\n\t\tthis.parent\n\t\t\t.selectAll('rect.leaf')\n\t\t\t.on('mouseover', function (event, datum) {\n\t\t\t\tconst hoveredElement = select(this);\n\t\t\t\tlet fillColor = getComputedStyle(this, null).getPropertyValue(\n\t\t\t\t\t'fill'\n\t\t\t\t);\n\n\t\t\t\tlet parent = datum;\n\t\t\t\twhile (parent.depth > 1) parent = parent.parent;\n\n\t\t\t\thoveredElement\n\t\t\t\t\t.transition('graph_element_mouseover_fill_update')\n\t\t\t\t\t.call((t) =>\n\t\t\t\t\t\tself.services.transitions.setupTransition({\n\t\t\t\t\t\t\ttransition: t,\n\t\t\t\t\t\t\tname: 'graph_element_mouseover_fill_update',\n\t\t\t\t\t\t})\n\t\t\t\t\t)\n\t\t\t\t\t.style('fill', (d: any) => {\n\t\t\t\t\t\tconst customColor = self.model.getFillColor(\n\t\t\t\t\t\t\td.parent.data.name\n\t\t\t\t\t\t);\n\t\t\t\t\t\tif (customColor) {\n\t\t\t\t\t\t\tfillColor = customColor;\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn color(fillColor).darker(0.7).toString();\n\t\t\t\t\t});\n\n\t\t\t\t// Show tooltip\n\t\t\t\tself.services.events.dispatchEvent(Events.Tooltip.SHOW, {\n\t\t\t\t\tevent,\n\t\t\t\t\thoveredElement,\n\t\t\t\t\titems: [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tcolor: fillColor,\n\t\t\t\t\t\t\tlabel: parent.data.name,\n\t\t\t\t\t\t\tbold: true,\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tlabel: datum.data.name,\n\t\t\t\t\t\t\tvalue: datum.data.value,\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.Treemap.LEAF_MOUSEOVER,\n\t\t\t\t\t{\n\t\t\t\t\t\tevent,\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 (event, 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.Treemap.LEAF_MOUSEMOVE,\n\t\t\t\t\t{\n\t\t\t\t\t\tevent,\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\t\tevent,\n\t\t\t\t});\n\t\t\t})\n\t\t\t.on('click', function (event, datum) {\n\t\t\t\t// Dispatch mouse event\n\t\t\t\tself.services.events.dispatchEvent(Events.Treemap.LEAF_CLICK, {\n\t\t\t\t\tevent,\n\t\t\t\t\telement: select(this),\n\t\t\t\t\tdatum,\n\t\t\t\t});\n\t\t\t})\n\t\t\t.on('mouseout', function (event, datum) {\n\t\t\t\tconst hoveredElement = select(this);\n\t\t\t\thoveredElement.classed('hovered', false);\n\n\t\t\t\tlet parent = datum;\n\t\t\t\twhile (parent.depth > 1) parent = parent.parent;\n\n\t\t\t\thoveredElement\n\t\t\t\t\t.transition()\n\t\t\t\t\t.call((t) =>\n\t\t\t\t\t\tself.services.transitions.setupTransition({\n\t\t\t\t\t\t\ttransition: t,\n\t\t\t\t\t\t\tname: 'graph_element_mouseout_fill_update',\n\t\t\t\t\t\t})\n\t\t\t\t\t)\n\t\t\t\t\t.style('fill', (d: any) =>\n\t\t\t\t\t\tself.model.getFillColor(d.parent.data.name)\n\t\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.Treemap.LEAF_MOUSEOUT,\n\t\t\t\t\t{\n\t\t\t\t\t\tevent,\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}\n\n\thandleLegendOnHover = (event: CustomEvent) => {\n\t\tconst { hoveredElement } = event.detail;\n\n\t\tthis.parent\n\t\t\t.selectAll(\"g[data-name='leaf']\")\n\t\t\t.transition('legend-hover-treemap')\n\t\t\t.call((t) =>\n\t\t\t\tthis.services.transitions.setupTransition({\n\t\t\t\t\ttransition: t,\n\t\t\t\t\tname: 'legend-hover-treemap',\n\t\t\t\t})\n\t\t\t)\n\t\t\t.attr('opacity', (d) =>\n\t\t\t\td.parent.data.name === hoveredElement.datum()['name'] ? 1 : 0.3\n\t\t\t);\n\t};\n\n\thandleLegendMouseOut = (event: CustomEvent) => {\n\t\tthis.parent\n\t\t\t.selectAll(\"g[data-name='leaf']\")\n\t\t\t.transition('legend-mouseout-treemap')\n\t\t\t.call((t) =>\n\t\t\t\tthis.services.transitions.setupTransition({\n\t\t\t\t\ttransition: t,\n\t\t\t\t\tname: 'legend-mouseout-treemap',\n\t\t\t\t})\n\t\t\t)\n\t\t\t.attr('opacity', 1);\n\t};\n}\n"]}
package/model/treemap.js CHANGED
@@ -13,6 +13,7 @@ var __extends = (this && this.__extends) || (function () {
13
13
  })();
14
14
  // Internal Imports
15
15
  import { ChartModel } from './model';
16
+ import { Tools } from '../tools';
16
17
  /**
17
18
  * The treemap chart model layer
18
19
  */
@@ -25,9 +26,15 @@ var TreemapChartModel = /** @class */ (function (_super) {
25
26
  var displayData = this.getDisplayData();
26
27
  var result = [['Child', 'Group', 'Value']];
27
28
  displayData.forEach(function (datum) {
28
- datum.children.forEach(function (child) {
29
- result.push([child.name, datum.name, child.value]);
30
- });
29
+ if (Array.isArray(datum.children)) {
30
+ datum.children.forEach(function (child) {
31
+ result.push([child.name, datum.name, child.value]);
32
+ });
33
+ }
34
+ else if (Tools.getProperty(datum.name) !== null &&
35
+ Tools.getProperty(datum.value)) {
36
+ result.push(["–", datum.name, datum.value]);
37
+ }
31
38
  });
32
39
  return result;
33
40
  };
@@ -1 +1 @@
1
- {"version":3,"file":"treemap.js","sourceRoot":"","sources":["treemap.ts"],"names":[],"mappings":";;;;;;;;;;;;;AAAA,mBAAmB;AACnB,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAErC;;GAEG;AACH;IAAuC,qCAAU;IAChD,2BAAY,QAAa;eACxB,kBAAM,QAAQ,CAAC;IAChB,CAAC;IAED,+CAAmB,GAAnB;QACC,IAAM,WAAW,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC;QAE1C,IAAM,MAAM,GAAG,CAAC,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC;QAE7C,WAAW,CAAC,OAAO,CAAC,UAAC,KAAK;YACzB,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,UAAC,KAAK;gBAC5B,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;YACpD,CAAC,CAAC,CAAC;QACJ,CAAC,CAAC,CAAC;QAEH,OAAO,MAAM,CAAC;IACf,CAAC;IACF,wBAAC;AAAD,CAAC,AAlBD,CAAuC,UAAU,GAkBhD","sourcesContent":["// Internal Imports\nimport { ChartModel } from './model';\n\n/**\n * The treemap chart model layer\n */\nexport class TreemapChartModel extends ChartModel {\n\tconstructor(services: any) {\n\t\tsuper(services);\n\t}\n\n\tgetTabularDataArray() {\n\t\tconst displayData = this.getDisplayData();\n\n\t\tconst result = [['Child', 'Group', 'Value']];\n\n\t\tdisplayData.forEach((datum) => {\n\t\t\tdatum.children.forEach((child) => {\n\t\t\t\tresult.push([child.name, datum.name, child.value]);\n\t\t\t});\n\t\t});\n\n\t\treturn result;\n\t}\n}\n"]}
1
+ {"version":3,"file":"treemap.js","sourceRoot":"","sources":["treemap.ts"],"names":[],"mappings":";;;;;;;;;;;;;AAAA,mBAAmB;AACnB,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAAE,KAAK,EAAE,MAAM,UAAU,CAAC;AAEjC;;GAEG;AACH;IAAuC,qCAAU;IAC/C,2BAAY,QAAa;eACvB,kBAAM,QAAQ,CAAC;IACjB,CAAC;IAED,+CAAmB,GAAnB;QACE,IAAM,WAAW,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC;QAE1C,IAAM,MAAM,GAAG,CAAC,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC;QAE7C,WAAW,CAAC,OAAO,CAAC,UAAC,KAAK;YACxB,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE;gBACjC,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,UAAC,KAAK;oBAC3B,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;gBACrD,CAAC,CAAC,CAAC;aACJ;iBAAM,IACL,KAAK,CAAC,WAAW,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,IAAI;gBACtC,KAAK,CAAC,WAAW,CAAC,KAAK,CAAC,KAAK,CAAC,EAC9B;gBACA,MAAM,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;aAC7C;QACH,CAAC,CAAC,CAAC;QAEH,OAAO,MAAM,CAAC;IAChB,CAAC;IACH,wBAAC;AAAD,CAAC,AAzBD,CAAuC,UAAU,GAyBhD","sourcesContent":["// Internal Imports\nimport { ChartModel } from './model';\nimport { Tools } from '../tools';\n\n/**\n * The treemap chart model layer\n */\nexport class TreemapChartModel extends ChartModel {\n constructor(services: any) {\n super(services);\n }\n\n getTabularDataArray() {\n const displayData = this.getDisplayData();\n\n const result = [['Child', 'Group', 'Value']];\n\n displayData.forEach((datum) => {\n if (Array.isArray(datum.children)) {\n datum.children.forEach((child) => {\n result.push([child.name, datum.name, child.value]);\n });\n } else if (\n Tools.getProperty(datum.name) !== null &&\n Tools.getProperty(datum.value)\n ) {\n result.push([\"–\", datum.name, datum.value]);\n }\n });\n\n return result;\n }\n}\n"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@carbon/charts",
3
- "version": "0.54.11",
3
+ "version": "0.54.12",
4
4
  "description": "Carbon charting components",
5
5
  "main": "./bundle.js",
6
6
  "module": "./index.js",
@@ -414,7 +414,7 @@
414
414
  "signature": "7d859d70e1bbacb22d526f82e3370b5d6d1d748a934fc2b21121cb3eeb3a4d30"
415
415
  },
416
416
  "../src/components/graphs/treemap.ts": {
417
- "version": "51e987c62f36c80d143c2d0ec5716e0817fb0db8d1eeb72f845a561229c1c1df",
417
+ "version": "b554642680a8f637a94a5da73357a4e0d66dbb3956f0fcd6474d94e5d1994993",
418
418
  "signature": "a9b0d32f1fa317d79f856036abed65ce6367b88d367ef743886ac6bd76f7adc7"
419
419
  },
420
420
  "../src/services/angle-utils.ts": {
@@ -630,7 +630,7 @@
630
630
  "signature": "d4d8680637e717cadcd75d616929c3e90d1d5c6c37794df11d787b4a0d22c99a"
631
631
  },
632
632
  "../src/model/treemap.ts": {
633
- "version": "b3a62a4f5466c12826ae06f7d84aabfb8abcff01ec14667c147f5e4b3fc986d7",
633
+ "version": "5f5374892d8a026e412b8b82986d95b413d28c5c08442a5d659bf672ab26cf51",
634
634
  "signature": "fabc2a1487abea447bde3930e1d4b1bd6d7295b3e26f4e5a36572044ad4f9224"
635
635
  },
636
636
  "../src/charts/treemap.ts": {
@@ -2581,6 +2581,7 @@
2581
2581
  ],
2582
2582
  "../src/model/treemap.ts": [
2583
2583
  "../src/model/model.ts",
2584
+ "../src/tools.ts",
2584
2585
  "../../../node_modules/date-fns/typings.d.ts",
2585
2586
  "../node_modules/@types/node/fs.d.ts",
2586
2587
  "../node_modules/@types/node/ts3.2/fs.d.ts",