@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.
- package/CHANGELOG.md +61 -0
- package/README.md +5 -0
- package/bar-chart.js +6 -12
- package/bar-chart.js.map +1 -1
- package/base-chart.d.ts +6 -7
- package/base-chart.js +52 -120
- package/base-chart.js.map +1 -1
- package/components/index.d.ts +1 -0
- package/components/index.js +2 -0
- package/components/index.js.map +1 -0
- package/components/overlay.d.ts +9 -0
- package/components/overlay.js +28 -0
- package/components/overlay.js.map +1 -0
- package/components/tooltip.d.ts +13 -0
- package/components/tooltip.js +110 -0
- package/components/tooltip.js.map +1 -0
- package/configuration.d.ts +28 -7
- package/configuration.js +20 -16
- package/configuration.js.map +1 -1
- package/index.d.ts +3 -2
- package/index.js +4 -3
- package/index.js.map +1 -1
- package/index.umd.js +1 -1
- package/index.umd.js.map +1 -1
- package/package.json +9 -9
- package/pie-chart.d.ts +1 -1
- package/pie-chart.js +15 -39
- package/pie-chart.js.map +1 -1
- package/scatter-chart.d.ts +1 -0
- package/scatter-chart.js +20 -14
- package/scatter-chart.js.map +1 -1
- package/services/colorPalettes.d.ts +4 -0
- package/services/colorPalettes.js +30 -0
- package/services/colorPalettes.js.map +1 -0
- package/services/colors.d.ts +9 -0
- package/services/colors.js +11 -0
- package/services/colors.js.map +1 -0
- package/stacked-bar-chart.js +5 -12
- package/stacked-bar-chart.js.map +1 -1
- package/style.css +7 -5
- package/style.scss +5 -3
package/stacked-bar-chart.js
CHANGED
|
@@ -9,7 +9,7 @@ var __extends = (this && this.__extends) || (function () {
|
|
|
9
9
|
};
|
|
10
10
|
})();
|
|
11
11
|
// D3 Imports
|
|
12
|
-
import { select
|
|
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.
|
|
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.
|
|
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)
|
package/stacked-bar-chart.js.map
CHANGED
|
@@ -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:
|
|
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.
|
|
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.
|
|
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
|
-
|
|
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:
|
|
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.
|
|
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
|
-
|
|
260
|
+
min-width: 80px;
|
|
261
|
+
max-width: 70%;
|
|
260
262
|
word-wrap: break-word;
|
|
261
263
|
z-index: 1059;
|
|
262
264
|
|