@carbon/charts 0.11.11 → 0.12.1

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.
@@ -9,7 +9,7 @@ var __extends = (this && this.__extends) || (function () {
9
9
  };
10
10
  })();
11
11
  // D3 Imports
12
- import { select, mouse } from "d3-selection";
12
+ import { select } from "d3-selection";
13
13
  import { stack } from "d3-shape";
14
14
  import { max } from "d3-array";
15
15
  import * as Configuration from "./configuration";
@@ -99,7 +99,7 @@ var StackedBarChart = /** @class */ (function (_super) {
99
99
  .attr("stroke-width", Configuration.bars.default.strokeWidth)
100
100
  .attr("stroke-opacity", function (d) { return _this.options.accessibility ? 1 : 0; });
101
101
  // Hide the overlay
102
- this.updateOverlay().hide();
102
+ this.chartOverlay.hide();
103
103
  // Dispatch the load event
104
104
  this.dispatchEvent("load");
105
105
  };
@@ -151,7 +151,7 @@ var StackedBarChart = /** @class */ (function (_super) {
151
151
  // Add slice hover actions, and clear any slice borders present
152
152
  this.addDataPointEventListener();
153
153
  // Hide the overlay
154
- this.updateOverlay().hide();
154
+ this.chartOverlay.hide();
155
155
  // Dispatch the update event
156
156
  this.dispatchEvent("update");
157
157
  };
@@ -196,9 +196,7 @@ var StackedBarChart = /** @class */ (function (_super) {
196
196
  var self = this;
197
197
  var accessibility = this.options.accessibility;
198
198
  this.svg.selectAll("rect")
199
- .on("click", function (d) {
200
- self.dispatchEvent("bar-onClick", d);
201
- })
199
+ .on("click", function (d) { return self.dispatchEvent("bar-onClick", d); })
202
200
  .on("mouseover", function (d) {
203
201
  select(this)
204
202
  .attr("stroke-width", Configuration.bars.mouseover.strokeWidth)
@@ -207,12 +205,7 @@ var StackedBarChart = /** @class */ (function (_super) {
207
205
  self.showTooltip(d, this);
208
206
  self.reduceOpacity(this);
209
207
  })
210
- .on("mousemove", function (d) {
211
- var tooltipRef = select(self.holder).select("div.chart-tooltip");
212
- var relativeMousePosition = mouse(self.holder);
213
- tooltipRef.style("left", relativeMousePosition[0] + Configuration.tooltip.magicLeft2 + "px")
214
- .style("top", relativeMousePosition[1] + "px");
215
- })
208
+ .on("mousemove", function (d) { return self.tooltip.positionTooltip(); })
216
209
  .on("mouseout", function (d) {
217
210
  var _a = Configuration.bars.mouseout, strokeWidth = _a.strokeWidth, strokeWidthAccessible = _a.strokeWidthAccessible;
218
211
  select(this)
@@ -1 +1 @@
1
- {"version":3,"file":"stacked-bar-chart.js","sourceRoot":"","sources":["src/stacked-bar-chart.ts"],"names":[],"mappings":"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","sourcesContent":["// D3 Imports\nimport { select, mouse } from \"d3-selection\";\nimport { stack } from \"d3-shape\";\nimport { max } from \"d3-array\";\n\nimport * as Configuration from \"./configuration\";\nimport { ChartConfig, StackedBarChartOptions, ChartType } from \"./configuration\";\nimport { BaseAxisChart } from \"./base-axis-chart\";\n\n// Add datasetLabel to each piece of data\n// To be used to get the fill color\nconst addLabelsAndValueToData = (d) => {\n\tObject.keys(d).map(key => {\n\t\tif (typeof d[key] === \"object\") {\n\t\t\td[key][\"datasetLabel\"] = d.key;\n\t\t\td[key][\"label\"] = d[key].data[\"label\"];\n\t\t\td[key][\"value\"] = d[key].data[d.key];\n\t\t}\n\t});\n\n\treturn d;\n};\n\n// TODO - Cleanup & add some comments\nexport class StackedBarChart extends BaseAxisChart {\n\tconstructor(holder: Element, configs: ChartConfig<StackedBarChartOptions>) {\n\t\tsuper(holder, configs);\n\n\t\tthis.options.type = ChartType.BAR;\n\t}\n\n\tgetYMax() {\n\t\tconst { datasets, labels } = this.displayData;\n\t\tconst { scales } = this.options;\n\t\tlet yMax;\n\n\t\tif (datasets.length === 1) {\n\t\t\tyMax = max(datasets[0].data);\n\t\t} else {\n\t\t\tyMax = max(labels.map((label, i) => {\n\t\t\t\tconst correspondingValues = datasets.map(dataset => dataset.data[i]);\n\t\t\t\tconst totalValue = correspondingValues.reduce((a, b) => a + b, 0);\n\n\t\t\t\treturn totalValue;\n\t\t\t}));\n\t\t}\n\n\t\tif (scales.y.yMaxAdjuster) {\n\t\t\tyMax = scales.y.yMaxAdjuster(yMax);\n\t\t}\n\n\t\treturn yMax;\n\t}\n\n\tgetStackData() {\n\t\t// Create the stack datalist\n\t\tconst stackDataArray = this.displayData.labels.map((label, i) => {\n\t\t\tconst correspondingData = {};\n\n\t\t\tthis.displayData.datasets.forEach(dataset => {\n\t\t\t\tcorrespondingData[dataset.label] = dataset.data[i];\n\t\t\t});\n\n\t\t\tcorrespondingData[\"label\"] = label;\n\n\t\t\treturn correspondingData;\n\t\t});\n\n\t\treturn stackDataArray;\n\t}\n\n\t// currently unused, but required to match the BarChart class\n\tgetBarX(d): number { return 0; }\n\n\tdraw() {\n\t\tthis.innerWrap.style(\"width\", \"100%\")\n\t\t\t.style(\"height\", \"100%\");\n\n\t\tconst { bar: margins } = Configuration.charts.margin;\n\t\tthis.innerWrap\n\t\t\t.attr(\"transform\", `translate(${margins.left}, ${margins.top})`);\n\n\t\tconst stackDataArray = this.getStackData();\n\t\tconst stackKeys = this.displayData.datasets.map(dataset => dataset.label);\n\t\tthis.innerWrap.append(\"g\")\n\t\t\t.classed(\"bars-wrapper\", true)\n\t\t\t.selectAll(\"g\")\n\t\t\t.data(stack().keys(stackKeys)(stackDataArray))\n\t\t\t.enter()\n\t\t\t\t.append(\"g\")\n\t\t\t\t.classed(\"bars\", true)\n\t\t\t\t.selectAll(\"rect\")\n\t\t\t\t.data(d => addLabelsAndValueToData(d))\n\t\t\t\t.enter()\n\t\t\t\t\t.append(\"rect\")\n\t\t\t\t\t.classed(\"bar\", true)\n\t\t\t\t\t.attr(\"x\", d => this.x(d.data.label))\n\t\t\t\t\t.attr(\"y\", d => this.y(d[1]))\n\t\t\t\t\t.attr(\"height\", d => this.y(d[0]) - this.y(d[1]))\n\t\t\t\t\t.attr(\"width\", d => this.x.bandwidth())\n\t\t\t\t\t.attr(\"fill\", d => this.getFillColor(d.datasetLabel, d.data.label, d.data.value))\n\t\t\t\t\t.attr(\"stroke\", d => this.options.accessibility ? this.getStrokeColor(d.datasetLabel, d.label, d.value) : null)\n\t\t\t\t\t.attr(\"stroke-width\", Configuration.bars.default.strokeWidth)\n\t\t\t\t\t.attr(\"stroke-opacity\", d => this.options.accessibility ? 1 : 0);\n\n\t\t// Hide the overlay\n\t\tthis.updateOverlay().hide();\n\n\t\t// Dispatch the load event\n\t\tthis.dispatchEvent(\"load\");\n\t}\n\n\tinterpolateValues(newData: any) {\n\t\tconst stackDataArray = this.getStackData();\n\t\tconst stackKeys = this.displayData.datasets.map(dataset => dataset.label);\n\n\t\tthis.innerWrap.selectAll(\".removed\")\n\t\t\t.remove();\n\n\t\tconst g = this.innerWrap.selectAll(\"g.bars-wrapper\")\n\t\t\t.selectAll(\"g\")\n\t\t\t.data(stack().keys(stackKeys)(stackDataArray));\n\n\t\tconst rect = g.selectAll(\"rect.bar\")\n\t\t\t.data(d => addLabelsAndValueToData(d));\n\n\t\tthis.updateElements(true, g.selectAll(\"rect.bar\"), g);\n\n\t\tconst addRect = selection => {\n\t\t\tselection.enter()\n\t\t\t\t.append(\"rect\")\n\t\t\t\t.classed(\"bar\", true)\n\t\t\t\t.attr(\"x\", d => this.x(d.data.label))\n\t\t\t\t.attr(\"y\", d => this.y(d[1]))\n\t\t\t\t.attr(\"height\", d => this.y(d[0]) - this.y(d[1]))\n\t\t\t\t.attr(\"width\", d => this.x.bandwidth())\n\t\t\t\t.attr(\"fill\", d => this.getFillColor(d.datasetLabel, d.data.label, d.data.value))\n\t\t\t\t.style(\"opacity\", 0)\n\t\t\t\t.transition(this.getFillTransition())\n\t\t\t\t.style(\"opacity\", 1)\n\t\t\t\t.attr(\"stroke\", d => this.options.accessibility ? this.getStrokeColor(d.datasetLabel, d.label, d.value) : null)\n\t\t\t\t.attr(\"stroke-width\", Configuration.bars.default.strokeWidth)\n\t\t\t\t.attr(\"stroke-opacity\", d => this.options.accessibility ? 1 : 0);\n\t\t};\n\n\t\tconst rectsToAdd = g.enter()\n\t\t\t.append(\"g\")\n\t\t\t.classed(\"bars\", true)\n\t\t\t.selectAll(\"rect\")\n\t\t\t.data(d => addLabelsAndValueToData(d));\n\n\t\taddRect(rectsToAdd);\n\t\taddRect(rect);\n\n\t\tg.exit()\n\t\t\t.classed(\"removed\", true) // mark this element with \"removed\" class so it isn't reused\n\t\t\t.transition(this.getDefaultTransition())\n\t\t\t.style(\"opacity\", 0)\n\t\t\t.remove();\n\n\t\trect.exit()\n\t\t\t.classed(\"removed\", true) // mark this element with \"removed\" class so it isn't reused\n\t\t\t.transition(this.getDefaultTransition())\n\t\t\t.style(\"opacity\", 0)\n\t\t\t.remove();\n\n\t\t// Add slice hover actions, and clear any slice borders present\n\t\tthis.addDataPointEventListener();\n\n\t\t// Hide the overlay\n\t\tthis.updateOverlay().hide();\n\n\t\t// Dispatch the update event\n\t\tthis.dispatchEvent(\"update\");\n\t}\n\n\tresizeChart() {\n\t\tconst actualChartSize: any = this.getChartSize(this.container);\n\t\tconst dimensionToUseForScale = Math.min(actualChartSize.width, actualChartSize.height);\n\n\t\t// Resize the SVG\n\t\tselect(this.holder).select(\"svg\")\n\t\t\t.attr(\"width\", `${dimensionToUseForScale}px`)\n\t\t\t.attr(\"height\", `${dimensionToUseForScale}px`);\n\n\t\tthis.updateXandYGrid(true);\n\t\t// Scale out the domains\n\t\tthis.setXScale();\n\t\tthis.setYScale();\n\n\t\t// Set the x & y axis as well as their labels\n\t\tthis.setXAxis(true);\n\t\tthis.setYAxis(true);\n\n\t\t// Apply new data to the bars\n\t\tconst g = this.innerWrap.selectAll(\"g.bars g\");\n\t\tthis.updateElements(false, null, g);\n\n\t\tsuper.resizeChart();\n\t}\n\n\tupdateElements(animate: boolean, rect?: any, g?: any) {\n\t\tif (!rect) {\n\t\t\trect = this.innerWrap.selectAll(\"rect.bar\");\n\t\t}\n\n\t\t// Update existing bars\n\t\trect\n\t\t\t.transition(animate ? this.getFillTransition() : this.getInstantTransition())\n\t\t\t.style(\"opacity\", 1)\n\t\t\t.attr(\"x\", d => this.x(d.data.label))\n\t\t\t.attr(\"y\", d => this.y(d[1]))\n\t\t\t.attr(\"height\", d => this.y(d[0]) - this.y(d[1]))\n\t\t\t.attr(\"width\", d => this.x.bandwidth())\n\t\t\t.attr(\"fill\", d => this.getFillColor(d.datasetLabel, d.data.label, d.data.value))\n\t\t\t.attr(\"stroke\", d => this.options.accessibility ? this.getStrokeColor(d.datasetLabel, d.label, d.value) : null)\n\t\t\t.attr(\"stroke-width\", Configuration.bars.default.strokeWidth)\n\t\t\t.attr(\"stroke-opacity\", d => this.options.accessibility ? 1 : 0);\n\t}\n\n\taddDataPointEventListener() {\n\t\tconst self = this;\n\t\tconst { accessibility } = this.options;\n\n\t\tthis.svg.selectAll(\"rect\")\n\t\t\t.on(\"click\", function(d) {\n\t\t\t\tself.dispatchEvent(\"bar-onClick\", d);\n\t\t\t})\n\t\t\t.on(\"mouseover\", function(d) {\n\t\t\t\tselect(this)\n\t\t\t\t\t.attr(\"stroke-width\", Configuration.bars.mouseover.strokeWidth)\n\t\t\t\t\t.attr(\"stroke\", self.getStrokeColor(d.datasetLabel, d.label, d.value))\n\t\t\t\t\t.attr(\"stroke-opacity\", Configuration.bars.mouseover.strokeOpacity);\n\n\t\t\t\tself.showTooltip(d, this);\n\t\t\t\tself.reduceOpacity(this);\n\t\t\t})\n\t\t\t.on(\"mousemove\", function(d) {\n\t\t\t\tconst tooltipRef = select(self.holder).select(\"div.chart-tooltip\");\n\n\t\t\t\tconst relativeMousePosition = mouse(self.holder as HTMLElement);\n\t\t\t\ttooltipRef.style(\"left\", relativeMousePosition[0] + Configuration.tooltip.magicLeft2 + \"px\")\n\t\t\t\t\t.style(\"top\", relativeMousePosition[1] + \"px\");\n\t\t\t})\n\t\t\t.on(\"mouseout\", function(d) {\n\t\t\t\tconst { strokeWidth, strokeWidthAccessible } = Configuration.bars.mouseout;\n\t\t\t\tselect(this)\n\t\t\t\t\t.attr(\"stroke-width\", accessibility ? strokeWidthAccessible : strokeWidth)\n\t\t\t\t\t.attr(\"stroke\", accessibility ? self.getStrokeColor(d.datasetLabel, d.label, d.value) : \"none\")\n\t\t\t\t\t.attr(\"stroke-opacity\", Configuration.bars.mouseout.strokeOpacity);\n\n\t\t\t\tself.hideTooltip();\n\t\t\t});\n\t}\n}\n"]}
1
+ {"version":3,"file":"stacked-bar-chart.js","sourceRoot":"","sources":["src/stacked-bar-chart.ts"],"names":[],"mappings":"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","sourcesContent":["// D3 Imports\nimport { select, mouse } from \"d3-selection\";\nimport { stack } from \"d3-shape\";\nimport { max } from \"d3-array\";\n\nimport * as Configuration from \"./configuration\";\nimport { ChartConfig, StackedBarChartOptions, ChartType } from \"./configuration\";\nimport { BaseAxisChart } from \"./base-axis-chart\";\n\n// Add datasetLabel to each piece of data\n// To be used to get the fill color\nconst addLabelsAndValueToData = (d) => {\n\tObject.keys(d).map(key => {\n\t\tif (typeof d[key] === \"object\") {\n\t\t\td[key][\"datasetLabel\"] = d.key;\n\t\t\td[key][\"label\"] = d[key].data[\"label\"];\n\t\t\td[key][\"value\"] = d[key].data[d.key];\n\t\t}\n\t});\n\n\treturn d;\n};\n\n// TODO - Cleanup & add some comments\nexport class StackedBarChart extends BaseAxisChart {\n\tconstructor(holder: Element, configs: ChartConfig<StackedBarChartOptions>) {\n\t\tsuper(holder, configs);\n\n\t\tthis.options.type = ChartType.BAR;\n\t}\n\n\tgetYMax() {\n\t\tconst { datasets, labels } = this.displayData;\n\t\tconst { scales } = this.options;\n\t\tlet yMax;\n\n\t\tif (datasets.length === 1) {\n\t\t\tyMax = max(datasets[0].data);\n\t\t} else {\n\t\t\tyMax = max(labels.map((label, i) => {\n\t\t\t\tconst correspondingValues = datasets.map(dataset => dataset.data[i]);\n\t\t\t\tconst totalValue = correspondingValues.reduce((a, b) => a + b, 0);\n\n\t\t\t\treturn totalValue;\n\t\t\t}));\n\t\t}\n\n\t\tif (scales.y.yMaxAdjuster) {\n\t\t\tyMax = scales.y.yMaxAdjuster(yMax);\n\t\t}\n\n\t\treturn yMax;\n\t}\n\n\tgetStackData() {\n\t\t// Create the stack datalist\n\t\tconst stackDataArray = this.displayData.labels.map((label, i) => {\n\t\t\tconst correspondingData = {};\n\n\t\t\tthis.displayData.datasets.forEach(dataset => {\n\t\t\t\tcorrespondingData[dataset.label] = dataset.data[i];\n\t\t\t});\n\n\t\t\tcorrespondingData[\"label\"] = label;\n\n\t\t\treturn correspondingData;\n\t\t});\n\n\t\treturn stackDataArray;\n\t}\n\n\t// currently unused, but required to match the BarChart class\n\tgetBarX(d): number { return 0; }\n\n\tdraw() {\n\t\tthis.innerWrap.style(\"width\", \"100%\")\n\t\t\t.style(\"height\", \"100%\");\n\n\t\tconst { bar: margins } = Configuration.charts.margin;\n\t\tthis.innerWrap\n\t\t\t.attr(\"transform\", `translate(${margins.left}, ${margins.top})`);\n\n\t\tconst stackDataArray = this.getStackData();\n\t\tconst stackKeys = this.displayData.datasets.map(dataset => dataset.label);\n\t\tthis.innerWrap.append(\"g\")\n\t\t\t.classed(\"bars-wrapper\", true)\n\t\t\t.selectAll(\"g\")\n\t\t\t.data(stack().keys(stackKeys)(stackDataArray))\n\t\t\t.enter()\n\t\t\t\t.append(\"g\")\n\t\t\t\t.classed(\"bars\", true)\n\t\t\t\t.selectAll(\"rect\")\n\t\t\t\t.data(d => addLabelsAndValueToData(d))\n\t\t\t\t.enter()\n\t\t\t\t\t.append(\"rect\")\n\t\t\t\t\t.classed(\"bar\", true)\n\t\t\t\t\t.attr(\"x\", d => this.x(d.data.label))\n\t\t\t\t\t.attr(\"y\", d => this.y(d[1]))\n\t\t\t\t\t.attr(\"height\", d => this.y(d[0]) - this.y(d[1]))\n\t\t\t\t\t.attr(\"width\", d => this.x.bandwidth())\n\t\t\t\t\t.attr(\"fill\", d => this.getFillColor(d.datasetLabel, d.data.label, d.data.value))\n\t\t\t\t\t.attr(\"stroke\", d => this.options.accessibility ? this.getStrokeColor(d.datasetLabel, d.label, d.value) : null)\n\t\t\t\t\t.attr(\"stroke-width\", Configuration.bars.default.strokeWidth)\n\t\t\t\t\t.attr(\"stroke-opacity\", d => this.options.accessibility ? 1 : 0);\n\n\t\t// Hide the overlay\n\t\tthis.chartOverlay.hide();\n\n\t\t// Dispatch the load event\n\t\tthis.dispatchEvent(\"load\");\n\t}\n\n\tinterpolateValues(newData: any) {\n\t\tconst stackDataArray = this.getStackData();\n\t\tconst stackKeys = this.displayData.datasets.map(dataset => dataset.label);\n\n\t\tthis.innerWrap.selectAll(\".removed\")\n\t\t\t.remove();\n\n\t\tconst g = this.innerWrap.selectAll(\"g.bars-wrapper\")\n\t\t\t.selectAll(\"g\")\n\t\t\t.data(stack().keys(stackKeys)(stackDataArray));\n\n\t\tconst rect = g.selectAll(\"rect.bar\")\n\t\t\t.data(d => addLabelsAndValueToData(d));\n\n\t\tthis.updateElements(true, g.selectAll(\"rect.bar\"), g);\n\n\t\tconst addRect = selection => {\n\t\t\tselection.enter()\n\t\t\t\t.append(\"rect\")\n\t\t\t\t.classed(\"bar\", true)\n\t\t\t\t.attr(\"x\", d => this.x(d.data.label))\n\t\t\t\t.attr(\"y\", d => this.y(d[1]))\n\t\t\t\t.attr(\"height\", d => this.y(d[0]) - this.y(d[1]))\n\t\t\t\t.attr(\"width\", d => this.x.bandwidth())\n\t\t\t\t.attr(\"fill\", d => this.getFillColor(d.datasetLabel, d.data.label, d.data.value))\n\t\t\t\t.style(\"opacity\", 0)\n\t\t\t\t.transition(this.getFillTransition())\n\t\t\t\t.style(\"opacity\", 1)\n\t\t\t\t.attr(\"stroke\", d => this.options.accessibility ? this.getStrokeColor(d.datasetLabel, d.label, d.value) : null)\n\t\t\t\t.attr(\"stroke-width\", Configuration.bars.default.strokeWidth)\n\t\t\t\t.attr(\"stroke-opacity\", d => this.options.accessibility ? 1 : 0);\n\t\t};\n\n\t\tconst rectsToAdd = g.enter()\n\t\t\t.append(\"g\")\n\t\t\t.classed(\"bars\", true)\n\t\t\t.selectAll(\"rect\")\n\t\t\t.data(d => addLabelsAndValueToData(d));\n\n\t\taddRect(rectsToAdd);\n\t\taddRect(rect);\n\n\t\tg.exit()\n\t\t\t.classed(\"removed\", true) // mark this element with \"removed\" class so it isn't reused\n\t\t\t.transition(this.getDefaultTransition())\n\t\t\t.style(\"opacity\", 0)\n\t\t\t.remove();\n\n\t\trect.exit()\n\t\t\t.classed(\"removed\", true) // mark this element with \"removed\" class so it isn't reused\n\t\t\t.transition(this.getDefaultTransition())\n\t\t\t.style(\"opacity\", 0)\n\t\t\t.remove();\n\n\t\t// Add slice hover actions, and clear any slice borders present\n\t\tthis.addDataPointEventListener();\n\n\t\t// Hide the overlay\n\t\tthis.chartOverlay.hide();\n\n\t\t// Dispatch the update event\n\t\tthis.dispatchEvent(\"update\");\n\t}\n\n\tresizeChart() {\n\t\tconst actualChartSize: any = this.getChartSize(this.container);\n\t\tconst dimensionToUseForScale = Math.min(actualChartSize.width, actualChartSize.height);\n\n\t\t// Resize the SVG\n\t\tselect(this.holder).select(\"svg\")\n\t\t\t.attr(\"width\", `${dimensionToUseForScale}px`)\n\t\t\t.attr(\"height\", `${dimensionToUseForScale}px`);\n\n\t\tthis.updateXandYGrid(true);\n\t\t// Scale out the domains\n\t\tthis.setXScale();\n\t\tthis.setYScale();\n\n\t\t// Set the x & y axis as well as their labels\n\t\tthis.setXAxis(true);\n\t\tthis.setYAxis(true);\n\n\t\t// Apply new data to the bars\n\t\tconst g = this.innerWrap.selectAll(\"g.bars g\");\n\t\tthis.updateElements(false, null, g);\n\n\t\tsuper.resizeChart();\n\t}\n\n\tupdateElements(animate: boolean, rect?: any, g?: any) {\n\t\tif (!rect) {\n\t\t\trect = this.innerWrap.selectAll(\"rect.bar\");\n\t\t}\n\n\t\t// Update existing bars\n\t\trect\n\t\t\t.transition(animate ? this.getFillTransition() : this.getInstantTransition())\n\t\t\t.style(\"opacity\", 1)\n\t\t\t.attr(\"x\", d => this.x(d.data.label))\n\t\t\t.attr(\"y\", d => this.y(d[1]))\n\t\t\t.attr(\"height\", d => this.y(d[0]) - this.y(d[1]))\n\t\t\t.attr(\"width\", d => this.x.bandwidth())\n\t\t\t.attr(\"fill\", d => this.getFillColor(d.datasetLabel, d.data.label, d.data.value))\n\t\t\t.attr(\"stroke\", d => this.options.accessibility ? this.getStrokeColor(d.datasetLabel, d.label, d.value) : null)\n\t\t\t.attr(\"stroke-width\", Configuration.bars.default.strokeWidth)\n\t\t\t.attr(\"stroke-opacity\", d => this.options.accessibility ? 1 : 0);\n\t}\n\n\taddDataPointEventListener() {\n\t\tconst self = this;\n\t\tconst { accessibility } = this.options;\n\n\t\tthis.svg.selectAll(\"rect\")\n\t\t\t.on(\"click\", d => self.dispatchEvent(\"bar-onClick\", d))\n\t\t\t.on(\"mouseover\", function(d) {\n\t\t\t\tselect(this)\n\t\t\t\t\t.attr(\"stroke-width\", Configuration.bars.mouseover.strokeWidth)\n\t\t\t\t\t.attr(\"stroke\", self.getStrokeColor(d.datasetLabel, d.label, d.value))\n\t\t\t\t\t.attr(\"stroke-opacity\", Configuration.bars.mouseover.strokeOpacity);\n\n\t\t\t\tself.showTooltip(d, this);\n\t\t\t\tself.reduceOpacity(this);\n\t\t\t})\n\t\t\t.on(\"mousemove\", d => self.tooltip.positionTooltip())\n\t\t\t.on(\"mouseout\", function(d) {\n\t\t\t\tconst { strokeWidth, strokeWidthAccessible } = Configuration.bars.mouseout;\n\t\t\t\tselect(this)\n\t\t\t\t\t.attr(\"stroke-width\", accessibility ? strokeWidthAccessible : strokeWidth)\n\t\t\t\t\t.attr(\"stroke\", accessibility ? self.getStrokeColor(d.datasetLabel, d.label, d.value) : \"none\")\n\t\t\t\t\t.attr(\"stroke-opacity\", Configuration.bars.mouseout.strokeOpacity);\n\n\t\t\t\tself.hideTooltip();\n\t\t\t});\n\t}\n}\n"]}
package/style.css CHANGED
@@ -20,11 +20,12 @@ div.chart-holder {
20
20
  stroke: #eceeef; }
21
21
  .chart-wrapper svg.chart-svg path.line {
22
22
  fill: none;
23
- stroke-width: 2; }
23
+ stroke-width: 2;
24
+ mix-blend-mode: multiply; }
24
25
  .chart-wrapper svg.chart-svg path.line:hover {
25
26
  cursor: default; }
26
27
  .chart-wrapper svg.chart-svg circle.dot {
27
- stroke-width: 2; }
28
+ stroke-width: 1.5; }
28
29
  .chart-wrapper text {
29
30
  font-size: 12px;
30
31
  fill: #595859;
@@ -142,12 +143,12 @@ div.chart-overlay {
142
143
  top: 50%;
143
144
  left: 50%;
144
145
  transform: translate(-50%, -50%); }
145
- div.chart-overlay div.loading-overlay-content {
146
+ div.chart-overlay div.ccharts-overlay-content {
146
147
  position: absolute;
147
148
  top: 50%;
148
149
  left: 50%;
149
150
  transform: translate(-50%, -50%); }
150
- div.chart-overlay div.loading-overlay-content div.bx--loading {
151
+ div.chart-overlay div.ccharts-overlay-content div.bx--loading {
151
152
  margin: auto; }
152
153
 
153
154
  .tooltip {
@@ -162,7 +163,8 @@ div.chart-overlay {
162
163
  position: absolute;
163
164
  padding: 10px;
164
165
  border-radius: 3px;
165
- max-width: 200px;
166
+ min-width: 80px;
167
+ max-width: 70%;
166
168
  word-wrap: break-word;
167
169
  z-index: 1059; }
168
170
  .tooltip p {
package/style.scss CHANGED
@@ -47,6 +47,7 @@ div.chart-holder {
47
47
  &.line {
48
48
  fill: none;
49
49
  stroke-width: 2;
50
+ mix-blend-mode: multiply;
50
51
 
51
52
  &:hover {
52
53
  cursor: default;
@@ -56,7 +57,7 @@ div.chart-holder {
56
57
 
57
58
  circle {
58
59
  &.dot {
59
- stroke-width: 2;
60
+ stroke-width: 1.5;
60
61
  }
61
62
  }
62
63
  }
@@ -232,7 +233,7 @@ div.chart-overlay {
232
233
  transform: translate(-50%, -50%);
233
234
  }
234
235
 
235
- div.loading-overlay-content {
236
+ div.ccharts-overlay-content {
236
237
  position: absolute;
237
238
  top: 50%;
238
239
  left: 50%;
@@ -256,7 +257,8 @@ div.chart-overlay {
256
257
  position: absolute;
257
258
  padding: 10px;
258
259
  border-radius: 3px;
259
- max-width: 200px;
260
+ min-width: 80px;
261
+ max-width: 70%;
260
262
  word-wrap: break-word;
261
263
  z-index: 1059;
262
264