@carbon/charts 1.7.5 → 1.8.0
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 +26 -0
- package/build/demo/data/CHART_TYPES.d.ts +5 -0
- package/build/demo/data/choropleth.d.ts +738 -0
- package/build/demo/data/index.d.ts +1 -0
- package/build/demo/data/topojson-110.d.ts +360 -0
- package/build/src/charts/choropleth.d.ts +10 -0
- package/build/src/charts/index.d.ts +1 -0
- package/build/src/components/essentials/color-scale-legend.d.ts +3 -0
- package/build/src/components/essentials/geo-projection.d.ts +16 -0
- package/build/src/components/graphs/choropleth.d.ts +6 -0
- package/build/src/components/index.d.ts +2 -0
- package/build/src/configuration.d.ts +3 -1
- package/build/src/interfaces/charts.d.ts +28 -1
- package/build/src/interfaces/enums.d.ts +12 -0
- package/build/src/interfaces/events.d.ts +9 -0
- package/build/src/model/choropleth.d.ts +29 -0
- package/build/src/model/heatmap.d.ts +0 -5
- package/build/src/services/color-scale-utils.d.ts +10 -0
- package/build/src/services/index.d.ts +1 -0
- package/build/src/services/scales-cartesian.d.ts +1 -1
- package/bundle.js +2 -2
- package/charts/choropleth.d.ts +10 -0
- package/charts/choropleth.js +141 -0
- package/charts/choropleth.js.map +1 -0
- package/charts/heatmap.js +5 -1
- package/charts/heatmap.js.map +1 -1
- package/charts/index.d.ts +1 -0
- package/charts/index.js +1 -0
- package/charts/index.js.map +1 -1
- package/components/axes/chart-clip.js +7 -5
- package/components/axes/chart-clip.js.map +1 -1
- package/components/axes/grid-brush.js +12 -9
- package/components/axes/grid-brush.js.map +1 -1
- package/components/essentials/color-scale-legend.d.ts +3 -0
- package/components/essentials/color-scale-legend.js +18 -11
- package/components/essentials/color-scale-legend.js.map +1 -1
- package/components/essentials/geo-projection.d.ts +16 -0
- package/components/essentials/geo-projection.js +160 -0
- package/components/essentials/geo-projection.js.map +1 -0
- package/components/essentials/title-meter.js +1 -1
- package/components/essentials/title-meter.js.map +1 -1
- package/components/graphs/choropleth.d.ts +6 -0
- package/components/graphs/choropleth.js +106 -0
- package/components/graphs/choropleth.js.map +1 -0
- package/components/graphs/radar.js +1 -1
- package/components/graphs/radar.js.map +1 -1
- package/components/index.d.ts +2 -0
- package/components/index.js +2 -0
- package/components/index.js.map +1 -1
- package/configuration.d.ts +3 -1
- package/configuration.js +18 -1
- package/configuration.js.map +1 -1
- package/demo/create-codesandbox.js +20 -2
- package/demo/create-codesandbox.js.map +1 -1
- package/demo/data/CHART_TYPES.d.ts +5 -0
- package/demo/data/CHART_TYPES.js +5 -0
- package/demo/data/CHART_TYPES.js.map +1 -1
- package/demo/data/bundle.js +1 -1
- package/demo/data/choropleth.d.ts +738 -0
- package/demo/data/choropleth.js +1684 -0
- package/demo/data/choropleth.js.map +1 -0
- package/demo/data/index.d.ts +1 -0
- package/demo/data/index.js +45 -5
- package/demo/data/index.js.map +1 -1
- package/demo/data/topojson-110.d.ts +360 -0
- package/demo/data/topojson-110.js +40724 -0
- package/demo/data/topojson-110.js.map +1 -0
- package/demo/styles.css +410 -185
- 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 +25 -6
- package/demo/utils.js +29 -1
- package/demo/utils.js.map +1 -1
- package/interfaces/charts.d.ts +28 -1
- package/interfaces/charts.js.map +1 -1
- package/interfaces/enums.d.ts +12 -0
- package/interfaces/enums.js +16 -0
- package/interfaces/enums.js.map +1 -1
- package/interfaces/events.d.ts +9 -0
- package/interfaces/events.js +10 -0
- package/interfaces/events.js.map +1 -1
- package/model/choropleth.d.ts +29 -0
- package/model/choropleth.js +105 -0
- package/model/choropleth.js.map +1 -0
- package/model/heatmap.d.ts +0 -5
- package/model/heatmap.js +3 -64
- package/model/heatmap.js.map +1 -1
- package/package.json +4 -3
- package/services/color-scale-utils.d.ts +2 -0
- package/services/color-scale-utils.js +64 -0
- package/services/color-scale-utils.js.map +1 -0
- package/services/index.d.ts +1 -0
- package/services/index.js +1 -0
- package/services/index.js.map +1 -1
- package/styles/color-palatte.scss +96 -0
- package/styles/colors.scss +23 -8
- package/styles/graphs/_choropleth.scss +18 -0
- package/styles/graphs/index.scss +1 -0
- package/styles.css +156 -144
- package/styles.css.map +1 -1
- package/styles.min.css +1 -1
- package/styles.min.css.map +1 -1
- package/tsconfig.tsbuildinfo +419 -47
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"radar.js","sourceRoot":"","sources":["radar.ts"],"names":[],"mappings":"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","sourcesContent":["// Internal Imports\nimport { Component } from '../component';\nimport { DOMUtils } from '../../services';\nimport {\n\tEvents,\n\tRoles,\n\tColorClassNameTypes,\n\tRenderTypes,\n\tAlignments,\n} from '../../interfaces';\nimport * as Tools from '../../tools';\nimport {\n\tPoint,\n\tAngle,\n\tradialLabelPlacement,\n\tradToDeg,\n\tpolarToCartesianCoords,\n\tdistanceBetweenPointOnCircAndVerticalDiameter,\n} from '../../services/angle-utils';\nimport * as Configuration from '../../configuration';\n\n// D3 Imports\nimport { select } from 'd3-selection';\nimport { scaleBand, scaleLinear } from 'd3-scale';\nimport { max, min, extent } from 'd3-array';\nimport { lineRadial, curveLinearClosed } from 'd3-shape';\n\nexport class Radar extends Component {\n\ttype = 'radar';\n\trenderType = RenderTypes.SVG;\n\n\tsvg: SVGElement;\n\tgroupMapsTo: string;\n\tuniqueKeys: string[];\n\tuniqueGroups: string[];\n\tfullDataNormalized: any;\n\tgroupedDataNormalized: any;\n\n\tinit() {\n\t\tconst { events } = this.services;\n\t\t// Highlight correct line 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 lines 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\t\tconst { width, height } = DOMUtils.getSVGElementSize(svg, {\n\t\t\tuseAttrs: true,\n\t\t});\n\n\t\tconst data = this.model.getData();\n\t\tconst groupedData = this.model.getGroupedData();\n\n\t\tconst options = this.getOptions();\n\n\t\tconst groupMapsTo = Tools.getProperty(options, 'data', 'groupMapsTo');\n\t\tconst valueMapsTo = Tools.getProperty(\n\t\t\toptions,\n\t\t\t'radar',\n\t\t\t'axes',\n\t\t\t'value'\n\t\t);\n\n\t\tconst { angle, value } = Tools.getProperty(options, 'radar', 'axes');\n\n\t\tconst {\n\t\t\txLabelPadding,\n\t\t\tyLabelPadding,\n\t\t\tyTicksNumber,\n\t\t\tminRange,\n\t\t\txAxisRectHeight,\n\t\t} = Configuration.radar;\n\n\t\tthis.uniqueKeys = Array.from(new Set(data.map((d) => d[angle])));\n\t\tthis.uniqueGroups = Array.from(\n\t\t\tnew Set(data.map((d) => d[groupMapsTo]))\n\t\t);\n\t\tthis.fullDataNormalized = this.normalizeFlatData(data);\n\t\tthis.groupedDataNormalized = this.normalizeGroupedData(groupedData);\n\n\t\tconst labelHeight = this.getLabelDimensions(this.uniqueKeys[0]).height;\n\t\tconst margin = 2 * (labelHeight + yLabelPadding);\n\t\tconst size = Math.min(width, height);\n\t\tconst diameter = size - margin;\n\t\tconst radius = diameter / 2;\n\n\t\tif (radius <= 0) {\n\t\t\treturn;\n\t\t}\n\n\t\t// given a key, return the corresponding angle in radiants\n\t\t// rotated by -PI/2 because we want angle 0° at -y (12 o’clock)\n\t\tconst xScale = scaleBand<string>()\n\t\t\t.domain(this.fullDataNormalized.map((d) => d[angle]))\n\t\t\t.range(\n\t\t\t\t[0, 2 * Math.PI].map((a) => a - Math.PI / 2) as [Angle, Angle]\n\t\t\t);\n\n\t\tconst centerPointMinValue = min(\n\t\t\tthis.fullDataNormalized.map((d) => d[value]) as number[]\n\t\t);\n\t\tconst yScale = scaleLinear()\n\t\t\t.domain([\n\t\t\t\tcenterPointMinValue >= 0 ? 0 : centerPointMinValue,\n\t\t\t\tmax(this.fullDataNormalized.map((d) => d[value]) as number[]),\n\t\t\t])\n\t\t\t.range([minRange, radius])\n\t\t\t.nice(yTicksNumber);\n\t\tconst yTicks = yScale.ticks(yTicksNumber);\n\n\t\tconst colorScale = (group: string): string =>\n\t\t\tthis.model.getFillColor(group);\n\n\t\t// constructs a new radial line generator\n\t\t// the angle accessor returns the angle in radians with 0° at -y (12 o’clock)\n\t\t// so map back the angle\n\t\tconst radialLineGenerator = lineRadial<any>()\n\t\t\t.angle((d) => xScale(d[angle]) + Math.PI / 2)\n\t\t\t.radius((d) => yScale(d[value]))\n\t\t\t.curve(curveLinearClosed);\n\n\t\t// compute the space that each x label needs\n\t\tconst horizSpaceNeededByEachXLabel = this.uniqueKeys.map((key) => {\n\t\t\tconst tickWidth = this.getLabelDimensions(key).width;\n\t\t\t// compute the distance between the point that the label rapresents and the vertical diameter\n\t\t\tconst distanceFromDiameter = distanceBetweenPointOnCircAndVerticalDiameter(\n\t\t\t\txScale(key),\n\t\t\t\tradius\n\t\t\t);\n\t\t\t// the space each label occupies is the sum of these two values\n\t\t\treturn tickWidth + distanceFromDiameter;\n\t\t});\n\t\tconst leftPadding = max(horizSpaceNeededByEachXLabel);\n\n\t\t// center coordinates\n\t\tconst c: Point = {\n\t\t\tx: leftPadding + xLabelPadding,\n\t\t\ty: height / 2,\n\t\t};\n\n\t\t/////////////////////////////\n\t\t// Drawing the radar\n\t\t/////////////////////////////\n\n\t\t// y axes\n\t\tconst yAxes = DOMUtils.appendOrSelect(svg, 'g.y-axes').attr(\n\t\t\t'role',\n\t\t\tRoles.GROUP\n\t\t);\n\t\tconst yAxisUpdate = yAxes\n\t\t\t.selectAll('path')\n\t\t\t.data(yTicks, (tick) => tick);\n\t\t// for each tick, create array of data corresponding to the points composing the shape\n\t\tconst shapeData = (tick: number) =>\n\t\t\tthis.uniqueKeys.map((key) => ({ [angle]: key, [value]: tick }));\n\t\tyAxisUpdate.join(\n\t\t\t(enter) =>\n\t\t\t\tenter\n\t\t\t\t\t.append('path')\n\t\t\t\t\t.attr('opacity', 0)\n\t\t\t\t\t.attr('transform', `translate(${c.x}, ${c.y})`)\n\t\t\t\t\t.attr('fill', 'none')\n\t\t\t\t\t.call((selection) =>\n\t\t\t\t\t\tselection\n\t\t\t\t\t\t\t.transition()\n\t\t\t\t\t\t\t.call((t) =>\n\t\t\t\t\t\t\t\tthis.services.transitions.setupTransition({\n\t\t\t\t\t\t\t\t\ttransition: t,\n\t\t\t\t\t\t\t\t\tname: 'radar_y_axes_enter',\n\t\t\t\t\t\t\t\t\tanimate,\n\t\t\t\t\t\t\t\t})\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t.attr('opacity', 1)\n\t\t\t\t\t\t\t.attr('d', (tick) =>\n\t\t\t\t\t\t\t\tradialLineGenerator(shapeData(tick))\n\t\t\t\t\t\t\t)\n\t\t\t\t\t),\n\t\t\t(update) =>\n\t\t\t\tupdate.call((selection) =>\n\t\t\t\t\tselection\n\t\t\t\t\t\t.transition()\n\t\t\t\t\t\t.call((t) =>\n\t\t\t\t\t\t\tthis.services.transitions.setupTransition({\n\t\t\t\t\t\t\t\ttransition: t,\n\t\t\t\t\t\t\t\tname: 'radar_y_axes_update',\n\t\t\t\t\t\t\t\tanimate,\n\t\t\t\t\t\t\t})\n\t\t\t\t\t\t)\n\t\t\t\t\t\t.attr('opacity', 1)\n\t\t\t\t\t\t.attr('transform', `translate(${c.x}, ${c.y})`)\n\t\t\t\t\t\t.attr('d', (tick) =>\n\t\t\t\t\t\t\tradialLineGenerator(shapeData(tick))\n\t\t\t\t\t\t)\n\t\t\t\t),\n\t\t\t(exit) =>\n\t\t\t\texit.call((selection) =>\n\t\t\t\t\tselection\n\t\t\t\t\t\t.transition()\n\t\t\t\t\t\t.call((t) =>\n\t\t\t\t\t\t\tthis.services.transitions.setupTransition({\n\t\t\t\t\t\t\t\ttransition: t,\n\t\t\t\t\t\t\t\tname: 'radar_y_axes_exit',\n\t\t\t\t\t\t\t\tanimate,\n\t\t\t\t\t\t\t})\n\t\t\t\t\t\t)\n\t\t\t\t\t\t.attr('d', (tick) =>\n\t\t\t\t\t\t\tradialLineGenerator(shapeData(tick))\n\t\t\t\t\t\t)\n\t\t\t\t\t\t.attr('opacity', 0)\n\t\t\t\t\t\t.remove()\n\t\t\t\t)\n\t\t);\n\n\t\t// x axes\n\t\tconst xAxes = DOMUtils.appendOrSelect(svg, 'g.x-axes').attr(\n\t\t\t'role',\n\t\t\tRoles.GROUP\n\t\t);\n\t\tconst xAxisUpdate = xAxes\n\t\t\t.selectAll('line')\n\t\t\t.data(this.uniqueKeys, (key) => key);\n\t\txAxisUpdate.join(\n\t\t\t(enter) =>\n\t\t\t\tenter\n\t\t\t\t\t.append('line')\n\t\t\t\t\t.attr('opacity', 0)\n\t\t\t\t\t.attr('class', (key) => `x-axis-${Tools.kebabCase(key)}`) // replace spaces with -\n\t\t\t\t\t.attr('stroke-dasharray', '0')\n\t\t\t\t\t.attr(\n\t\t\t\t\t\t'x1',\n\t\t\t\t\t\t(key) => polarToCartesianCoords(xScale(key), 0, c).x\n\t\t\t\t\t)\n\t\t\t\t\t.attr(\n\t\t\t\t\t\t'y1',\n\t\t\t\t\t\t(key) => polarToCartesianCoords(xScale(key), 0, c).y\n\t\t\t\t\t)\n\t\t\t\t\t.attr(\n\t\t\t\t\t\t'x2',\n\t\t\t\t\t\t(key) => polarToCartesianCoords(xScale(key), 0, c).x\n\t\t\t\t\t)\n\t\t\t\t\t.attr(\n\t\t\t\t\t\t'y2',\n\t\t\t\t\t\t(key) => polarToCartesianCoords(xScale(key), 0, c).y\n\t\t\t\t\t)\n\t\t\t\t\t.call((selection) =>\n\t\t\t\t\t\tselection\n\t\t\t\t\t\t\t.transition()\n\t\t\t\t\t\t\t.call((t) =>\n\t\t\t\t\t\t\t\tthis.services.transitions.setupTransition({\n\t\t\t\t\t\t\t\t\ttransition: t,\n\t\t\t\t\t\t\t\t\tname: 'radar_x_axes_enter',\n\t\t\t\t\t\t\t\t\tanimate,\n\t\t\t\t\t\t\t\t})\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t.attr('opacity', 1)\n\t\t\t\t\t\t\t.attr(\n\t\t\t\t\t\t\t\t'x1',\n\t\t\t\t\t\t\t\t(key) =>\n\t\t\t\t\t\t\t\t\tpolarToCartesianCoords(\n\t\t\t\t\t\t\t\t\t\txScale(key),\n\t\t\t\t\t\t\t\t\t\tyScale.range()[0],\n\t\t\t\t\t\t\t\t\t\tc\n\t\t\t\t\t\t\t\t\t).x\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t.attr(\n\t\t\t\t\t\t\t\t'y1',\n\t\t\t\t\t\t\t\t(key) =>\n\t\t\t\t\t\t\t\t\tpolarToCartesianCoords(\n\t\t\t\t\t\t\t\t\t\txScale(key),\n\t\t\t\t\t\t\t\t\t\tyScale.range()[0],\n\t\t\t\t\t\t\t\t\t\tc\n\t\t\t\t\t\t\t\t\t).y\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t.attr(\n\t\t\t\t\t\t\t\t'x2',\n\t\t\t\t\t\t\t\t(key) =>\n\t\t\t\t\t\t\t\t\tpolarToCartesianCoords(\n\t\t\t\t\t\t\t\t\t\txScale(key),\n\t\t\t\t\t\t\t\t\t\tyScale.range()[1],\n\t\t\t\t\t\t\t\t\t\tc\n\t\t\t\t\t\t\t\t\t).x\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t.attr(\n\t\t\t\t\t\t\t\t'y2',\n\t\t\t\t\t\t\t\t(key) =>\n\t\t\t\t\t\t\t\t\tpolarToCartesianCoords(\n\t\t\t\t\t\t\t\t\t\txScale(key),\n\t\t\t\t\t\t\t\t\t\tyScale.range()[1],\n\t\t\t\t\t\t\t\t\t\tc\n\t\t\t\t\t\t\t\t\t).y\n\t\t\t\t\t\t\t)\n\t\t\t\t\t),\n\t\t\t(update) =>\n\t\t\t\tupdate.call((selection) =>\n\t\t\t\t\tselection\n\t\t\t\t\t\t.transition()\n\t\t\t\t\t\t.call((t) =>\n\t\t\t\t\t\t\tthis.services.transitions.setupTransition({\n\t\t\t\t\t\t\t\ttransition: t,\n\t\t\t\t\t\t\t\tname: 'radar_x_axes_update',\n\t\t\t\t\t\t\t\tanimate,\n\t\t\t\t\t\t\t})\n\t\t\t\t\t\t)\n\t\t\t\t\t\t.attr('opacity', 1)\n\t\t\t\t\t\t.attr(\n\t\t\t\t\t\t\t'x1',\n\t\t\t\t\t\t\t(key) =>\n\t\t\t\t\t\t\t\tpolarToCartesianCoords(\n\t\t\t\t\t\t\t\t\txScale(key),\n\t\t\t\t\t\t\t\t\tyScale.range()[0],\n\t\t\t\t\t\t\t\t\tc\n\t\t\t\t\t\t\t\t).x\n\t\t\t\t\t\t)\n\t\t\t\t\t\t.attr(\n\t\t\t\t\t\t\t'y1',\n\t\t\t\t\t\t\t(key) =>\n\t\t\t\t\t\t\t\tpolarToCartesianCoords(\n\t\t\t\t\t\t\t\t\txScale(key),\n\t\t\t\t\t\t\t\t\tyScale.range()[0],\n\t\t\t\t\t\t\t\t\tc\n\t\t\t\t\t\t\t\t).y\n\t\t\t\t\t\t)\n\t\t\t\t\t\t.attr(\n\t\t\t\t\t\t\t'x2',\n\t\t\t\t\t\t\t(key) =>\n\t\t\t\t\t\t\t\tpolarToCartesianCoords(\n\t\t\t\t\t\t\t\t\txScale(key),\n\t\t\t\t\t\t\t\t\tyScale.range()[1],\n\t\t\t\t\t\t\t\t\tc\n\t\t\t\t\t\t\t\t).x\n\t\t\t\t\t\t)\n\t\t\t\t\t\t.attr(\n\t\t\t\t\t\t\t'y2',\n\t\t\t\t\t\t\t(key) =>\n\t\t\t\t\t\t\t\tpolarToCartesianCoords(\n\t\t\t\t\t\t\t\t\txScale(key),\n\t\t\t\t\t\t\t\t\tyScale.range()[1],\n\t\t\t\t\t\t\t\t\tc\n\t\t\t\t\t\t\t\t).y\n\t\t\t\t\t\t)\n\t\t\t\t),\n\t\t\t(exit) =>\n\t\t\t\texit.call((selection) =>\n\t\t\t\t\tselection\n\t\t\t\t\t\t.transition()\n\t\t\t\t\t\t.call((t) =>\n\t\t\t\t\t\t\tthis.services.transitions.setupTransition({\n\t\t\t\t\t\t\t\ttransition: t,\n\t\t\t\t\t\t\t\tname: 'radar_x_axes_exit',\n\t\t\t\t\t\t\t\tanimate,\n\t\t\t\t\t\t\t})\n\t\t\t\t\t\t)\n\t\t\t\t\t\t.attr('opacity', 0)\n\t\t\t\t\t\t.remove()\n\t\t\t\t)\n\t\t);\n\n\t\t// x labels\n\t\tconst xLabels = DOMUtils.appendOrSelect(svg, 'g.x-labels').attr(\n\t\t\t'role',\n\t\t\tRoles.GROUP\n\t\t);\n\t\tconst xLabelUpdate = xLabels.selectAll('text').data(this.uniqueKeys);\n\t\txLabelUpdate.join(\n\t\t\t(enter) =>\n\t\t\t\tenter\n\t\t\t\t\t.append('text')\n\t\t\t\t\t.text((key) => key)\n\t\t\t\t\t.attr('opacity', 0)\n\t\t\t\t\t.attr(\n\t\t\t\t\t\t'x',\n\t\t\t\t\t\t(key) =>\n\t\t\t\t\t\t\tpolarToCartesianCoords(\n\t\t\t\t\t\t\t\txScale(key),\n\t\t\t\t\t\t\t\tyScale.range()[1] + xLabelPadding,\n\t\t\t\t\t\t\t\tc\n\t\t\t\t\t\t\t).x\n\t\t\t\t\t)\n\t\t\t\t\t.attr(\n\t\t\t\t\t\t'y',\n\t\t\t\t\t\t(key) =>\n\t\t\t\t\t\t\tpolarToCartesianCoords(\n\t\t\t\t\t\t\t\txScale(key),\n\t\t\t\t\t\t\t\tyScale.range()[1] + xLabelPadding,\n\t\t\t\t\t\t\t\tc\n\t\t\t\t\t\t\t).y\n\t\t\t\t\t)\n\t\t\t\t\t.style(\n\t\t\t\t\t\t'text-anchor',\n\t\t\t\t\t\t(key) => radialLabelPlacement(xScale(key)).textAnchor\n\t\t\t\t\t)\n\t\t\t\t\t.style(\n\t\t\t\t\t\t'dominant-baseline',\n\t\t\t\t\t\t(key) =>\n\t\t\t\t\t\t\tradialLabelPlacement(xScale(key)).dominantBaseline\n\t\t\t\t\t)\n\t\t\t\t\t.call((selection) =>\n\t\t\t\t\t\tselection\n\t\t\t\t\t\t\t.transition()\n\t\t\t\t\t\t\t.call((t) =>\n\t\t\t\t\t\t\t\tthis.services.transitions.setupTransition({\n\t\t\t\t\t\t\t\t\ttransition: t,\n\t\t\t\t\t\t\t\t\tname: 'radar_x_labels_enter',\n\t\t\t\t\t\t\t\t\tanimate,\n\t\t\t\t\t\t\t\t})\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t.attr('opacity', 1)\n\t\t\t\t\t),\n\t\t\t(update) =>\n\t\t\t\tupdate.call((selection) =>\n\t\t\t\t\tselection\n\t\t\t\t\t\t.transition()\n\t\t\t\t\t\t.call((t) =>\n\t\t\t\t\t\t\tthis.services.transitions.setupTransition({\n\t\t\t\t\t\t\t\ttransition: t,\n\t\t\t\t\t\t\t\tname: 'radar_x_labels_update',\n\t\t\t\t\t\t\t\tanimate,\n\t\t\t\t\t\t\t})\n\t\t\t\t\t\t)\n\t\t\t\t\t\t.attr('opacity', 1)\n\t\t\t\t\t\t.attr(\n\t\t\t\t\t\t\t'x',\n\t\t\t\t\t\t\t(key) =>\n\t\t\t\t\t\t\t\tpolarToCartesianCoords(\n\t\t\t\t\t\t\t\t\txScale(key),\n\t\t\t\t\t\t\t\t\tyScale.range()[1] + xLabelPadding,\n\t\t\t\t\t\t\t\t\tc\n\t\t\t\t\t\t\t\t).x\n\t\t\t\t\t\t)\n\t\t\t\t\t\t.attr(\n\t\t\t\t\t\t\t'y',\n\t\t\t\t\t\t\t(key) =>\n\t\t\t\t\t\t\t\tpolarToCartesianCoords(\n\t\t\t\t\t\t\t\t\txScale(key),\n\t\t\t\t\t\t\t\t\tyScale.range()[1] + xLabelPadding,\n\t\t\t\t\t\t\t\t\tc\n\t\t\t\t\t\t\t\t).y\n\t\t\t\t\t\t)\n\t\t\t\t\t\t.end()\n\t\t\t\t\t\t.finally(() => {\n\t\t\t\t\t\t\t// Align chart horizontally after x-axies has finished rendering\n\t\t\t\t\t\t\tconst alignment = Tools.getProperty(\n\t\t\t\t\t\t\t\toptions,\n\t\t\t\t\t\t\t\t'radar',\n\t\t\t\t\t\t\t\t'alignment'\n\t\t\t\t\t\t\t);\n\n\t\t\t\t\t\t\tconst alignmentXOffset = this.getAlignmentXOffset(\n\t\t\t\t\t\t\t\talignment,\n\t\t\t\t\t\t\t\tsvg,\n\t\t\t\t\t\t\t\tthis.getParent()\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\tsvg.attr('x', alignmentXOffset);\n\t\t\t\t\t\t})\n\t\t\t\t),\n\t\t\t(exit) =>\n\t\t\t\texit.call((selection) =>\n\t\t\t\t\tselection\n\t\t\t\t\t\t.transition()\n\t\t\t\t\t\t.call((t) =>\n\t\t\t\t\t\t\tthis.services.transitions.setupTransition({\n\t\t\t\t\t\t\t\ttransition: t,\n\t\t\t\t\t\t\t\tname: 'radar_x_labels_exit',\n\t\t\t\t\t\t\t\tanimate,\n\t\t\t\t\t\t\t})\n\t\t\t\t\t\t)\n\t\t\t\t\t\t.attr('opacity', 0)\n\t\t\t\t\t\t.remove()\n\t\t\t\t)\n\t\t);\n\n\t\t// blobs\n\t\tconst blobs = DOMUtils.appendOrSelect(svg, 'g.blobs').attr(\n\t\t\t'role',\n\t\t\tRoles.GROUP\n\t\t);\n\t\tconst blobUpdate = blobs\n\t\t\t.selectAll('path')\n\t\t\t.data(this.groupedDataNormalized, (group) => group.name);\n\n\t\tblobUpdate.join(\n\t\t\t(enter) =>\n\t\t\t\tenter\n\t\t\t\t\t.append('path')\n\t\t\t\t\t.attr('class', (group) =>\n\t\t\t\t\t\tthis.model.getColorClassName({\n\t\t\t\t\t\t\tclassNameTypes: [\n\t\t\t\t\t\t\t\tColorClassNameTypes.FILL,\n\t\t\t\t\t\t\t\tColorClassNameTypes.STROKE,\n\t\t\t\t\t\t\t],\n\t\t\t\t\t\t\tdataGroupName: group.name,\n\t\t\t\t\t\t\toriginalClassName: 'blob',\n\t\t\t\t\t\t})\n\t\t\t\t\t)\n\t\t\t\t\t.attr('role', Roles.GRAPHICS_SYMBOL)\n\t\t\t\t\t.attr('aria-label', (d) => d['name'])\n\t\t\t\t\t.attr('opacity', 0)\n\t\t\t\t\t.attr(\n\t\t\t\t\t\t'transform',\n\t\t\t\t\t\tanimate\n\t\t\t\t\t\t\t? () =>\n\t\t\t\t\t\t\t\t\t`translate(${c.x}, ${c.y}) scale(${\n\t\t\t\t\t\t\t\t\t\t1 + Math.random() * 0.35\n\t\t\t\t\t\t\t\t\t})`\n\t\t\t\t\t\t\t: `translate(${c.x}, ${c.y})`\n\t\t\t\t\t)\n\t\t\t\t\t.style('fill', (group) => colorScale(group.name))\n\t\t\t\t\t.style('fill-opacity', Configuration.radar.opacity.selected)\n\t\t\t\t\t.style('stroke', (group) => colorScale(group.name))\n\n\t\t\t\t\t.call((selection) => {\n\t\t\t\t\t\tconst selectionUpdate = selection\n\t\t\t\t\t\t\t.transition()\n\t\t\t\t\t\t\t.call((t) =>\n\t\t\t\t\t\t\t\tthis.services.transitions.setupTransition({\n\t\t\t\t\t\t\t\t\ttransition: t,\n\t\t\t\t\t\t\t\t\tname: 'radar_blobs_enter',\n\t\t\t\t\t\t\t\t\tanimate,\n\t\t\t\t\t\t\t\t})\n\t\t\t\t\t\t\t);\n\n\t\t\t\t\t\tif (animate) {\n\t\t\t\t\t\t\tselectionUpdate\n\t\t\t\t\t\t\t\t.delay(() => Math.random() * 30)\n\t\t\t\t\t\t\t\t.attr('transform', `translate(${c.x}, ${c.y})`);\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tselectionUpdate\n\t\t\t\t\t\t\t.attr('opacity', 1)\n\t\t\t\t\t\t\t.attr('d', (group) =>\n\t\t\t\t\t\t\t\tradialLineGenerator(group.data)\n\t\t\t\t\t\t\t);\n\t\t\t\t\t}),\n\t\t\t(update) => {\n\t\t\t\tupdate\n\t\t\t\t\t.attr('class', (group) =>\n\t\t\t\t\t\tthis.model.getColorClassName({\n\t\t\t\t\t\t\tclassNameTypes: [\n\t\t\t\t\t\t\t\tColorClassNameTypes.FILL,\n\t\t\t\t\t\t\t\tColorClassNameTypes.STROKE,\n\t\t\t\t\t\t\t],\n\t\t\t\t\t\t\tdataGroupName: group.name,\n\t\t\t\t\t\t\toriginalClassName: 'blob',\n\t\t\t\t\t\t})\n\t\t\t\t\t)\n\t\t\t\t\t.style('fill', (group) => colorScale(group.name))\n\t\t\t\t\t.style('stroke', (group) => colorScale(group.name));\n\t\t\t\tupdate.call((selection) =>\n\t\t\t\t\tselection\n\t\t\t\t\t\t.transition()\n\t\t\t\t\t\t.call((t) =>\n\t\t\t\t\t\t\tthis.services.transitions.setupTransition({\n\t\t\t\t\t\t\t\ttransition: t,\n\t\t\t\t\t\t\t\tname: 'radar_blobs_update',\n\t\t\t\t\t\t\t\tanimate,\n\t\t\t\t\t\t\t})\n\t\t\t\t\t\t)\n\t\t\t\t\t\t.attr('opacity', 1)\n\t\t\t\t\t\t.attr('transform', `translate(${c.x}, ${c.y})`)\n\t\t\t\t\t\t.attr('d', (group) => radialLineGenerator(group.data))\n\t\t\t\t);\n\t\t\t},\n\t\t\t(exit) =>\n\t\t\t\texit.call((selection) => {\n\t\t\t\t\tconst selectionUpdate = selection.transition().call((t) =>\n\t\t\t\t\t\tthis.services.transitions.setupTransition({\n\t\t\t\t\t\t\ttransition: t,\n\t\t\t\t\t\t\tname: 'radar_blobs_exit',\n\t\t\t\t\t\t\tanimate,\n\t\t\t\t\t\t})\n\t\t\t\t\t);\n\n\t\t\t\t\tif (animate) {\n\t\t\t\t\t\tselectionUpdate\n\t\t\t\t\t\t\t.delay(() => Math.random() * 30)\n\t\t\t\t\t\t\t.attr(\n\t\t\t\t\t\t\t\t'transform',\n\t\t\t\t\t\t\t\t() =>\n\t\t\t\t\t\t\t\t\t`translate(${c.x}, ${c.y}) scale(${\n\t\t\t\t\t\t\t\t\t\t1 + Math.random() * 0.35\n\t\t\t\t\t\t\t\t\t})`\n\t\t\t\t\t\t\t);\n\t\t\t\t\t}\n\n\t\t\t\t\tselectionUpdate.attr('opacity', 0).remove();\n\t\t\t\t})\n\t\t);\n\n\t\t// data dots\n\t\tconst dots = DOMUtils.appendOrSelect(svg, 'g.dots').attr(\n\t\t\t'role',\n\t\t\tRoles.GROUP\n\t\t);\n\n\t\tconst dotsUpdate = dots\n\t\t\t.selectAll('circle')\n\t\t\t// Filter out dots with no value so they are not rendered\n\t\t\t.data(\n\t\t\t\tthis.fullDataNormalized.filter(\n\t\t\t\t\t(d) => Tools.getProperty(d, value) !== null\n\t\t\t\t)\n\t\t\t);\n\n\t\tdotsUpdate\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('circle')\n\t\t\t\t\t\t.attr('role', Roles.GRAPHICS_SYMBOL)\n\t\t\t\t\t\t.attr('aria-label', (d) => d[valueMapsTo]),\n\t\t\t\t(update) => update,\n\t\t\t\t(exit) => exit.remove()\n\t\t\t)\n\t\t\t.attr('class', (d) =>\n\t\t\t\tthis.model.getColorClassName({\n\t\t\t\t\tclassNameTypes: [ColorClassNameTypes.FILL],\n\t\t\t\t\tdataGroupName: d[groupMapsTo],\n\t\t\t\t\toriginalClassName: Tools.kebabCase(d[angle]),\n\t\t\t\t})\n\t\t\t)\n\t\t\t.attr(\n\t\t\t\t'cx',\n\t\t\t\t(d) =>\n\t\t\t\t\tpolarToCartesianCoords(\n\t\t\t\t\t\txScale(d[angle]),\n\t\t\t\t\t\tyScale(d[value]),\n\t\t\t\t\t\tc\n\t\t\t\t\t).x\n\t\t\t)\n\t\t\t.attr(\n\t\t\t\t'cy',\n\t\t\t\t(d) =>\n\t\t\t\t\tpolarToCartesianCoords(\n\t\t\t\t\t\txScale(d[angle]),\n\t\t\t\t\t\tyScale(d[value]),\n\t\t\t\t\t\tc\n\t\t\t\t\t).y\n\t\t\t)\n\t\t\t.attr('r', 0)\n\t\t\t.attr('opacity', 0)\n\t\t\t.style('fill', (d) => colorScale(d[groupMapsTo]));\n\n\t\t// rectangles\n\t\tconst xAxesRect = DOMUtils.appendOrSelect(svg, 'g.x-axes-rect').attr(\n\t\t\t'role',\n\t\t\tRoles.GROUP\n\t\t);\n\t\tconst xAxisRectUpdate = xAxesRect\n\t\t\t.selectAll('rect')\n\t\t\t.data(this.uniqueKeys);\n\t\txAxisRectUpdate\n\t\t\t.join(\n\t\t\t\t(enter) => enter.append('rect'),\n\t\t\t\t(update) => update,\n\t\t\t\t(exit) => exit.remove()\n\t\t\t)\n\t\t\t.attr('x', c.x)\n\t\t\t.attr('y', c.y - xAxisRectHeight / 2)\n\t\t\t.attr('width', yScale.range()[1])\n\t\t\t.attr('height', xAxisRectHeight)\n\t\t\t.style('fill', 'red')\n\t\t\t.style('fill-opacity', 0)\n\t\t\t.attr(\n\t\t\t\t'transform',\n\t\t\t\t(key) => `rotate(${radToDeg(xScale(key))}, ${c.x}, ${c.y})`\n\t\t\t);\n\n\t\t// y labels (show only the min and the max labels)\n\t\tconst yLabels = DOMUtils.appendOrSelect(svg, 'g.y-labels').attr(\n\t\t\t'role',\n\t\t\tRoles.GROUP\n\t\t);\n\t\tconst yLabelUpdate = yLabels.selectAll('text').data(extent(yTicks));\n\t\tyLabelUpdate.join(\n\t\t\t(enter) =>\n\t\t\t\tenter\n\t\t\t\t\t.append('text')\n\t\t\t\t\t.attr('opacity', 0)\n\t\t\t\t\t.text((tick) => tick)\n\t\t\t\t\t.attr(\n\t\t\t\t\t\t'x',\n\t\t\t\t\t\t(tick) =>\n\t\t\t\t\t\t\tpolarToCartesianCoords(\n\t\t\t\t\t\t\t\t-Math.PI / 2,\n\t\t\t\t\t\t\t\tyScale(tick),\n\t\t\t\t\t\t\t\tc\n\t\t\t\t\t\t\t).x + yLabelPadding\n\t\t\t\t\t)\n\t\t\t\t\t.attr(\n\t\t\t\t\t\t'y',\n\t\t\t\t\t\t(tick) =>\n\t\t\t\t\t\t\tpolarToCartesianCoords(\n\t\t\t\t\t\t\t\t-Math.PI / 2,\n\t\t\t\t\t\t\t\tyScale(tick),\n\t\t\t\t\t\t\t\tc\n\t\t\t\t\t\t\t).y\n\t\t\t\t\t)\n\t\t\t\t\t.style('text-anchor', 'start')\n\t\t\t\t\t.style('dominant-baseline', 'middle')\n\t\t\t\t\t.call((selection) =>\n\t\t\t\t\t\tselection\n\t\t\t\t\t\t\t.transition()\n\t\t\t\t\t\t\t.call((t) =>\n\t\t\t\t\t\t\t\tthis.services.transitions.setupTransition({\n\t\t\t\t\t\t\t\t\ttransition: t,\n\t\t\t\t\t\t\t\t\tname: 'radar_y_labels_enter',\n\t\t\t\t\t\t\t\t\tanimate,\n\t\t\t\t\t\t\t\t})\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t.attr('opacity', 1)\n\t\t\t\t\t),\n\t\t\t(update) =>\n\t\t\t\tupdate.call((selection) =>\n\t\t\t\t\tselection\n\t\t\t\t\t\t.transition()\n\t\t\t\t\t\t.call((t) =>\n\t\t\t\t\t\t\tthis.services.transitions.setupTransition({\n\t\t\t\t\t\t\t\ttransition: t,\n\t\t\t\t\t\t\t\tname: 'radar_y_labels_update',\n\t\t\t\t\t\t\t\tanimate,\n\t\t\t\t\t\t\t})\n\t\t\t\t\t\t)\n\t\t\t\t\t\t.text((tick) => tick)\n\t\t\t\t\t\t.attr('opacity', 1)\n\t\t\t\t\t\t.attr(\n\t\t\t\t\t\t\t'x',\n\t\t\t\t\t\t\t(tick) =>\n\t\t\t\t\t\t\t\tpolarToCartesianCoords(\n\t\t\t\t\t\t\t\t\t-Math.PI / 2,\n\t\t\t\t\t\t\t\t\tyScale(tick),\n\t\t\t\t\t\t\t\t\tc\n\t\t\t\t\t\t\t\t).x + yLabelPadding\n\t\t\t\t\t\t)\n\t\t\t\t\t\t.attr(\n\t\t\t\t\t\t\t'y',\n\t\t\t\t\t\t\t(tick) =>\n\t\t\t\t\t\t\t\tpolarToCartesianCoords(\n\t\t\t\t\t\t\t\t\t-Math.PI / 2,\n\t\t\t\t\t\t\t\t\tyScale(tick),\n\t\t\t\t\t\t\t\t\tc\n\t\t\t\t\t\t\t\t).y\n\t\t\t\t\t\t)\n\t\t\t\t),\n\t\t\t(exit) =>\n\t\t\t\texit.call((selection) =>\n\t\t\t\t\tselection\n\t\t\t\t\t\t.transition()\n\t\t\t\t\t\t.call((t) =>\n\t\t\t\t\t\t\tthis.services.transitions.setupTransition({\n\t\t\t\t\t\t\t\ttransition: t,\n\t\t\t\t\t\t\t\tname: 'radar_y_labels_exit',\n\t\t\t\t\t\t\t\tanimate,\n\t\t\t\t\t\t\t})\n\t\t\t\t\t\t)\n\t\t\t\t\t\t.attr('opacity', 0)\n\t\t\t\t\t\t.remove()\n\t\t\t\t)\n\t\t);\n\n\t\t// Add event listeners\n\t\tthis.addEventListeners();\n\t}\n\n\tgetAlignmentXOffset(alignment, svg, parent) {\n\t\tconst svgDimensions = DOMUtils.getSVGElementSize(svg, {\n\t\t\tuseBBox: true,\n\t\t});\n\t\tconst { width } = DOMUtils.getSVGElementSize(parent, {\n\t\t\tuseAttrs: true,\n\t\t});\n\n\t\tlet alignmentOffset = 0;\n\t\tif (alignment === Alignments.CENTER) {\n\t\t\talignmentOffset = Math.floor((width - svgDimensions.width) / 2);\n\t\t} else if (alignment === Alignments.RIGHT) {\n\t\t\talignmentOffset = width - svgDimensions.width;\n\t\t}\n\n\t\treturn alignmentOffset;\n\t}\n\n\t// append temporarily the label to get the exact space that it occupies\n\tgetLabelDimensions = (label: string) => {\n\t\tconst tmpTick = DOMUtils.appendOrSelect(\n\t\t\tthis.getComponentContainer(),\n\t\t\t`g.tmp-tick`\n\t\t);\n\t\tconst tmpTickText = DOMUtils.appendOrSelect(tmpTick, `text`).text(\n\t\t\tlabel\n\t\t);\n\t\tconst { width, height } = DOMUtils.getSVGElementSize(\n\t\t\ttmpTickText.node(),\n\t\t\t{ useBBox: true }\n\t\t);\n\t\ttmpTick.remove();\n\t\treturn { width, height };\n\t};\n\n\t// Given a flat array of objects, if there are missing data on key,\n\t// creates corresponding data with value = null\n\tnormalizeFlatData = (dataset: any) => {\n\t\tconst options = this.getOptions();\n\t\tconst { angle, value } = Tools.getProperty(options, 'radar', 'axes');\n\t\tconst groupMapsTo = Tools.getProperty(options, 'data', 'groupMapsTo');\n\t\tconst completeBlankData = Tools.flatMapDeep(\n\t\t\tthis.uniqueKeys.map((key) => {\n\t\t\t\treturn this.uniqueGroups.map((group) => ({\n\t\t\t\t\t[angle]: key,\n\t\t\t\t\t[groupMapsTo]: group,\n\t\t\t\t\t[value]: null,\n\t\t\t\t}));\n\t\t\t})\n\t\t);\n\t\treturn Tools.merge(completeBlankData, dataset);\n\t};\n\n\t// Given a a grouped array of objects, if there are missing data on key,\n\t// creates corresponding data with value = null\n\tnormalizeGroupedData = (dataset: any) => {\n\t\tconst options = this.getOptions();\n\t\tconst { angle, value } = Tools.getProperty(options, 'radar', 'axes');\n\t\tconst groupMapsTo = Tools.getProperty(options, 'data', 'groupMapsTo');\n\t\treturn dataset.map(({ name, data }) => {\n\t\t\tconst completeBlankData = this.uniqueKeys.map((k) => ({\n\t\t\t\t[groupMapsTo]: name,\n\t\t\t\t[angle]: k,\n\t\t\t\t[value]: null,\n\t\t\t}));\n\t\t\treturn { name, data: Tools.merge(completeBlankData, data) };\n\t\t});\n\t};\n\n\thandleLegendOnHover = (event: CustomEvent) => {\n\t\tconst { hoveredElement } = event.detail;\n\t\tthis.parent\n\t\t\t.selectAll('g.blobs path')\n\t\t\t.transition('legend-hover-blob')\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-blob',\n\t\t\t\t})\n\t\t\t)\n\t\t\t.style('fill-opacity', (group) => {\n\t\t\t\tif (group.name !== hoveredElement.datum().name) {\n\t\t\t\t\treturn Configuration.radar.opacity.unselected;\n\t\t\t\t}\n\t\t\t\treturn Configuration.radar.opacity.selected;\n\t\t\t})\n\t\t\t.style('stroke-opacity', (group) => {\n\t\t\t\tif (group.name !== hoveredElement.datum().name) {\n\t\t\t\t\treturn Configuration.radar.opacity.unselected;\n\t\t\t\t}\n\t\t\t\treturn 1;\n\t\t\t});\n\t};\n\n\thandleLegendMouseOut = (event: CustomEvent) => {\n\t\tthis.parent\n\t\t\t.selectAll('g.blobs path')\n\t\t\t.transition('legend-mouseout-blob')\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-blob',\n\t\t\t\t})\n\t\t\t)\n\t\t\t.style('fill-opacity', Configuration.radar.opacity.selected)\n\t\t\t.style('stroke-opacity', 1);\n\t};\n\n\tdestroy() {\n\t\t// Remove event listeners\n\t\tthis.parent\n\t\t\t.selectAll('.x-axes-rect > rect')\n\t\t\t.on('mouseover', null)\n\t\t\t.on('mousemove', null)\n\t\t\t.on('mouseout', null);\n\t\t// Remove legend listeners\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\t}\n\n\taddEventListeners() {\n\t\tconst self = this;\n\t\tconst {\n\t\t\taxes: { angle },\n\t\t} = Tools.getProperty(this.getOptions(), 'radar');\n\n\t\t// events on x axes rects\n\t\tthis.parent\n\t\t\t.selectAll('.x-axes-rect > rect')\n\t\t\t.on('mouseover', 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.Radar.X_AXIS_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\n\t\t\t\tconst axisLine = self.parent.select(\n\t\t\t\t\t`.x-axes .x-axis-${Tools.kebabCase(datum)}`\n\t\t\t\t);\n\t\t\t\tconst dots = self.parent.selectAll(\n\t\t\t\t\t`.dots circle.${Tools.kebabCase(datum)}`\n\t\t\t\t);\n\n\t\t\t\tconst activeDataGroupNames = self.model.getActiveDataGroupNames();\n\n\t\t\t\tconst options = self.getOptions();\n\t\t\t\tconst { groupMapsTo } = options.data;\n\t\t\t\tconst valueMapsTo = Tools.getProperty(\n\t\t\t\t\toptions,\n\t\t\t\t\t'radar',\n\t\t\t\t\t'axes',\n\t\t\t\t\t'value'\n\t\t\t\t);\n\n\t\t\t\t// Change style\n\t\t\t\taxisLine\n\t\t\t\t\t.classed('hovered', true)\n\t\t\t\t\t.attr('stroke-dasharray', '4 4');\n\t\t\t\tdots.classed('hovered', true)\n\t\t\t\t\t.attr('opacity', (d) =>\n\t\t\t\t\t\tactiveDataGroupNames.indexOf(d[groupMapsTo]) !== -1\n\t\t\t\t\t\t\t? 1\n\t\t\t\t\t\t\t: 0\n\t\t\t\t\t)\n\t\t\t\t\t.attr('r', Configuration.radar.dotsRadius);\n\n\t\t\t\t// get the items that should be highlighted\n\t\t\t\tconst itemsToHighlight = self.fullDataNormalized.filter(\n\t\t\t\t\t(d) =>\n\t\t\t\t\t\td[angle] === datum &&\n\t\t\t\t\t\tactiveDataGroupNames.indexOf(d[groupMapsTo]) !== -1\n\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: itemsToHighlight\n\t\t\t\t\t\t.filter(\n\t\t\t\t\t\t\t(datum) => typeof datum[valueMapsTo] === 'number'\n\t\t\t\t\t\t)\n\t\t\t\t\t\t.map((datum) => ({\n\t\t\t\t\t\t\tlabel: datum[groupMapsTo],\n\t\t\t\t\t\t\tvalue: datum[valueMapsTo],\n\t\t\t\t\t\t\tcolor: self.model.getFillColor(datum[groupMapsTo]),\n\t\t\t\t\t\t\tclass: self.model.getColorClassName({\n\t\t\t\t\t\t\t\tclassNameTypes: [ColorClassNameTypes.TOOLTIP],\n\t\t\t\t\t\t\t\tdataGroupName: datum[groupMapsTo],\n\t\t\t\t\t\t\t}),\n\t\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.Radar.X_AXIS_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.Radar.X_AXIS_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\tconst axisLine = self.parent.select(\n\t\t\t\t\t`.x-axes .x-axis-${Tools.kebabCase(datum)}`\n\t\t\t\t);\n\t\t\t\tconst dots = self.parent.selectAll(\n\t\t\t\t\t`.dots circle.${Tools.kebabCase(datum)}`\n\t\t\t\t);\n\n\t\t\t\t// Change style\n\t\t\t\taxisLine\n\t\t\t\t\t.classed('hovered', false)\n\t\t\t\t\t.attr('stroke-dasharray', '0');\n\n\t\t\t\tdots.classed('hovered', false).attr('opacity', 0).attr('r', 0);\n\n\t\t\t\t// Dispatch mouse event\n\t\t\t\tself.services.events.dispatchEvent(\n\t\t\t\t\tEvents.Radar.X_AXIS_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});\n\t}\n}\n"]}
|
|
1
|
+
{"version":3,"file":"radar.js","sourceRoot":"","sources":["radar.ts"],"names":[],"mappings":"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","sourcesContent":["// Internal Imports\nimport { Component } from '../component';\nimport { DOMUtils } from '../../services';\nimport {\n\tEvents,\n\tRoles,\n\tColorClassNameTypes,\n\tRenderTypes,\n\tAlignments,\n} from '../../interfaces';\nimport * as Tools from '../../tools';\nimport {\n\tPoint,\n\tAngle,\n\tradialLabelPlacement,\n\tradToDeg,\n\tpolarToCartesianCoords,\n\tdistanceBetweenPointOnCircAndVerticalDiameter,\n} from '../../services/angle-utils';\nimport * as Configuration from '../../configuration';\n\n// D3 Imports\nimport { select } from 'd3-selection';\nimport { scaleBand, scaleLinear } from 'd3-scale';\nimport { max, min, extent } from 'd3-array';\nimport { lineRadial, curveLinearClosed } from 'd3-shape';\n\nexport class Radar extends Component {\n\ttype = 'radar';\n\trenderType = RenderTypes.SVG;\n\n\tsvg: SVGElement;\n\tgroupMapsTo: string;\n\tuniqueKeys: string[];\n\tuniqueGroups: string[];\n\tfullDataNormalized: any;\n\tgroupedDataNormalized: any;\n\n\tinit() {\n\t\tconst { events } = this.services;\n\t\t// Highlight correct line 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 lines 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\t\tconst { width, height } = DOMUtils.getSVGElementSize(svg, {\n\t\t\tuseAttrs: true,\n\t\t});\n\n\t\tconst data = this.model.getData();\n\t\tconst groupedData = this.model.getGroupedData();\n\n\t\tconst options = this.getOptions();\n\n\t\tconst groupMapsTo = Tools.getProperty(options, 'data', 'groupMapsTo');\n\t\tconst valueMapsTo = Tools.getProperty(\n\t\t\toptions,\n\t\t\t'radar',\n\t\t\t'axes',\n\t\t\t'value'\n\t\t);\n\n\t\tconst { angle, value } = Tools.getProperty(options, 'radar', 'axes');\n\n\t\tconst {\n\t\t\txLabelPadding,\n\t\t\tyLabelPadding,\n\t\t\tyTicksNumber,\n\t\t\tminRange,\n\t\t\txAxisRectHeight,\n\t\t} = Configuration.radar;\n\n\t\tthis.uniqueKeys = Array.from(new Set(data.map((d) => d[angle])));\n\t\tthis.uniqueGroups = Array.from(\n\t\t\tnew Set(data.map((d) => d[groupMapsTo]))\n\t\t);\n\t\tthis.fullDataNormalized = this.normalizeFlatData(data);\n\t\tthis.groupedDataNormalized = this.normalizeGroupedData(groupedData);\n\n\t\tconst labelHeight = this.getLabelDimensions(this.uniqueKeys[0]).height;\n\t\tconst margin = 2 * (labelHeight + yLabelPadding);\n\t\tconst size = Math.min(width, height);\n\t\tconst diameter = size - margin;\n\t\tconst radius = diameter / 2;\n\n\t\tif (radius <= 0) {\n\t\t\treturn;\n\t\t}\n\n\t\t// given a key, return the corresponding angle in radiants\n\t\t// rotated by -PI/2 because we want angle 0° at -y (12 o’clock)\n\t\tconst xScale = scaleBand<string>()\n\t\t\t.domain(this.fullDataNormalized.map((d) => d[angle]))\n\t\t\t.range(\n\t\t\t\t[0, 2 * Math.PI].map((a) => a - Math.PI / 2) as [Angle, Angle]\n\t\t\t);\n\n\t\tconst centerPointMinValue = min(\n\t\t\tthis.fullDataNormalized.map((d) => d[value]) as number[]\n\t\t);\n\t\tconst yScale = scaleLinear()\n\t\t\t.domain([\n\t\t\t\tcenterPointMinValue >= 0 ? 0 : centerPointMinValue,\n\t\t\t\tmax(this.fullDataNormalized.map((d) => d[value]) as number[]),\n\t\t\t])\n\t\t\t.range([minRange, radius])\n\t\t\t.nice(yTicksNumber);\n\t\tconst yTicks = yScale.ticks(yTicksNumber);\n\n\t\tconst colorScale = (group: string): string =>\n\t\t\tthis.model.getFillColor(group);\n\n\t\t// constructs a new radial line generator\n\t\t// the angle accessor returns the angle in radians with 0° at -y (12 o’clock)\n\t\t// so map back the angle\n\t\tconst radialLineGenerator = lineRadial<any>()\n\t\t\t.angle((d) => xScale(d[angle]) + Math.PI / 2)\n\t\t\t.radius((d) => yScale(d[value]))\n\t\t\t.curve(curveLinearClosed);\n\n\t\t// compute the space that each x label needs\n\t\tconst horizSpaceNeededByEachXLabel = this.uniqueKeys.map((key) => {\n\t\t\tconst tickWidth = this.getLabelDimensions(key).width;\n\t\t\t// compute the distance between the point that the label rapresents and the vertical diameter\n\t\t\tconst distanceFromDiameter = distanceBetweenPointOnCircAndVerticalDiameter(\n\t\t\t\txScale(key),\n\t\t\t\tradius\n\t\t\t);\n\t\t\t// the space each label occupies is the sum of these two values\n\t\t\treturn tickWidth + distanceFromDiameter;\n\t\t});\n\t\tconst leftPadding = max(horizSpaceNeededByEachXLabel);\n\n\t\t// center coordinates\n\t\tconst c: Point = {\n\t\t\tx: leftPadding + xLabelPadding,\n\t\t\ty: height / 2,\n\t\t};\n\n\t\t/////////////////////////////\n\t\t// Drawing the radar\n\t\t/////////////////////////////\n\n\t\t// y axes\n\t\tconst yAxes = DOMUtils.appendOrSelect(svg, 'g.y-axes').attr(\n\t\t\t'role',\n\t\t\tRoles.GROUP\n\t\t);\n\t\tconst yAxisUpdate = yAxes\n\t\t\t.selectAll('path')\n\t\t\t.data(yTicks, (tick) => tick);\n\t\t// for each tick, create array of data corresponding to the points composing the shape\n\t\tconst shapeData = (tick: number) =>\n\t\t\tthis.uniqueKeys.map((key) => ({ [angle]: key, [value]: tick }));\n\t\tyAxisUpdate.join(\n\t\t\t(enter) =>\n\t\t\t\tenter\n\t\t\t\t\t.append('path')\n\t\t\t\t\t.attr('opacity', 0)\n\t\t\t\t\t.attr('transform', `translate(${c.x}, ${c.y})`)\n\t\t\t\t\t.attr('fill', 'none')\n\t\t\t\t\t.call((selection) =>\n\t\t\t\t\t\tselection\n\t\t\t\t\t\t\t.transition() // BUG: unresolved from Issue 1555 - https://github.com/carbon-design-system/carbon-charts/issues/1555\n\t\t\t\t\t\t\t.call((t) =>\n\t\t\t\t\t\t\t\tthis.services.transitions.setupTransition({\n\t\t\t\t\t\t\t\t\ttransition: t,\n\t\t\t\t\t\t\t\t\tname: 'radar_y_axes_enter',\n\t\t\t\t\t\t\t\t\tanimate,\n\t\t\t\t\t\t\t\t})\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t.attr('opacity', 1)\n\t\t\t\t\t\t\t.attr('d', (tick) =>\n\t\t\t\t\t\t\t\tradialLineGenerator(shapeData(tick))\n\t\t\t\t\t\t\t)\n\t\t\t\t\t),\n\t\t\t(update) =>\n\t\t\t\tupdate.call((selection) =>\n\t\t\t\t\tselection\n\t\t\t\t\t\t.transition()\n\t\t\t\t\t\t.call((t) =>\n\t\t\t\t\t\t\tthis.services.transitions.setupTransition({\n\t\t\t\t\t\t\t\ttransition: t,\n\t\t\t\t\t\t\t\tname: 'radar_y_axes_update',\n\t\t\t\t\t\t\t\tanimate,\n\t\t\t\t\t\t\t})\n\t\t\t\t\t\t)\n\t\t\t\t\t\t.attr('opacity', 1)\n\t\t\t\t\t\t.attr('transform', `translate(${c.x}, ${c.y})`)\n\t\t\t\t\t\t.attr('d', (tick) =>\n\t\t\t\t\t\t\tradialLineGenerator(shapeData(tick))\n\t\t\t\t\t\t)\n\t\t\t\t),\n\t\t\t(exit) =>\n\t\t\t\texit.call((selection) =>\n\t\t\t\t\tselection\n\t\t\t\t\t\t.transition()\n\t\t\t\t\t\t.call((t) =>\n\t\t\t\t\t\t\tthis.services.transitions.setupTransition({\n\t\t\t\t\t\t\t\ttransition: t,\n\t\t\t\t\t\t\t\tname: 'radar_y_axes_exit',\n\t\t\t\t\t\t\t\tanimate,\n\t\t\t\t\t\t\t})\n\t\t\t\t\t\t)\n\t\t\t\t\t\t.attr('d', (tick) =>\n\t\t\t\t\t\t\tradialLineGenerator(shapeData(tick))\n\t\t\t\t\t\t)\n\t\t\t\t\t\t.attr('opacity', 0)\n\t\t\t\t\t\t.remove()\n\t\t\t\t)\n\t\t);\n\n\t\t// x axes\n\t\tconst xAxes = DOMUtils.appendOrSelect(svg, 'g.x-axes').attr(\n\t\t\t'role',\n\t\t\tRoles.GROUP\n\t\t);\n\t\tconst xAxisUpdate = xAxes\n\t\t\t.selectAll('line')\n\t\t\t.data(this.uniqueKeys, (key) => key);\n\t\txAxisUpdate.join(\n\t\t\t(enter) =>\n\t\t\t\tenter\n\t\t\t\t\t.append('line')\n\t\t\t\t\t.attr('opacity', 0)\n\t\t\t\t\t.attr('class', (key) => `x-axis-${Tools.kebabCase(key)}`) // replace spaces with -\n\t\t\t\t\t.attr('stroke-dasharray', '0')\n\t\t\t\t\t.attr(\n\t\t\t\t\t\t'x1',\n\t\t\t\t\t\t(key) => polarToCartesianCoords(xScale(key), 0, c).x\n\t\t\t\t\t)\n\t\t\t\t\t.attr(\n\t\t\t\t\t\t'y1',\n\t\t\t\t\t\t(key) => polarToCartesianCoords(xScale(key), 0, c).y\n\t\t\t\t\t)\n\t\t\t\t\t.attr(\n\t\t\t\t\t\t'x2',\n\t\t\t\t\t\t(key) => polarToCartesianCoords(xScale(key), 0, c).x\n\t\t\t\t\t)\n\t\t\t\t\t.attr(\n\t\t\t\t\t\t'y2',\n\t\t\t\t\t\t(key) => polarToCartesianCoords(xScale(key), 0, c).y\n\t\t\t\t\t)\n\t\t\t\t\t.call((selection) =>\n\t\t\t\t\t\tselection\n\t\t\t\t\t\t\t.transition()\n\t\t\t\t\t\t\t.call((t) =>\n\t\t\t\t\t\t\t\tthis.services.transitions.setupTransition({\n\t\t\t\t\t\t\t\t\ttransition: t,\n\t\t\t\t\t\t\t\t\tname: 'radar_x_axes_enter',\n\t\t\t\t\t\t\t\t\tanimate,\n\t\t\t\t\t\t\t\t})\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t.attr('opacity', 1)\n\t\t\t\t\t\t\t.attr(\n\t\t\t\t\t\t\t\t'x1',\n\t\t\t\t\t\t\t\t(key) =>\n\t\t\t\t\t\t\t\t\tpolarToCartesianCoords(\n\t\t\t\t\t\t\t\t\t\txScale(key),\n\t\t\t\t\t\t\t\t\t\tyScale.range()[0],\n\t\t\t\t\t\t\t\t\t\tc\n\t\t\t\t\t\t\t\t\t).x\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t.attr(\n\t\t\t\t\t\t\t\t'y1',\n\t\t\t\t\t\t\t\t(key) =>\n\t\t\t\t\t\t\t\t\tpolarToCartesianCoords(\n\t\t\t\t\t\t\t\t\t\txScale(key),\n\t\t\t\t\t\t\t\t\t\tyScale.range()[0],\n\t\t\t\t\t\t\t\t\t\tc\n\t\t\t\t\t\t\t\t\t).y\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t.attr(\n\t\t\t\t\t\t\t\t'x2',\n\t\t\t\t\t\t\t\t(key) =>\n\t\t\t\t\t\t\t\t\tpolarToCartesianCoords(\n\t\t\t\t\t\t\t\t\t\txScale(key),\n\t\t\t\t\t\t\t\t\t\tyScale.range()[1],\n\t\t\t\t\t\t\t\t\t\tc\n\t\t\t\t\t\t\t\t\t).x\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t.attr(\n\t\t\t\t\t\t\t\t'y2',\n\t\t\t\t\t\t\t\t(key) =>\n\t\t\t\t\t\t\t\t\tpolarToCartesianCoords(\n\t\t\t\t\t\t\t\t\t\txScale(key),\n\t\t\t\t\t\t\t\t\t\tyScale.range()[1],\n\t\t\t\t\t\t\t\t\t\tc\n\t\t\t\t\t\t\t\t\t).y\n\t\t\t\t\t\t\t)\n\t\t\t\t\t),\n\t\t\t(update) =>\n\t\t\t\tupdate.call((selection) =>\n\t\t\t\t\tselection\n\t\t\t\t\t\t.transition()\n\t\t\t\t\t\t.call((t) =>\n\t\t\t\t\t\t\tthis.services.transitions.setupTransition({\n\t\t\t\t\t\t\t\ttransition: t,\n\t\t\t\t\t\t\t\tname: 'radar_x_axes_update',\n\t\t\t\t\t\t\t\tanimate,\n\t\t\t\t\t\t\t})\n\t\t\t\t\t\t)\n\t\t\t\t\t\t.attr('opacity', 1)\n\t\t\t\t\t\t.attr(\n\t\t\t\t\t\t\t'x1',\n\t\t\t\t\t\t\t(key) =>\n\t\t\t\t\t\t\t\tpolarToCartesianCoords(\n\t\t\t\t\t\t\t\t\txScale(key),\n\t\t\t\t\t\t\t\t\tyScale.range()[0],\n\t\t\t\t\t\t\t\t\tc\n\t\t\t\t\t\t\t\t).x\n\t\t\t\t\t\t)\n\t\t\t\t\t\t.attr(\n\t\t\t\t\t\t\t'y1',\n\t\t\t\t\t\t\t(key) =>\n\t\t\t\t\t\t\t\tpolarToCartesianCoords(\n\t\t\t\t\t\t\t\t\txScale(key),\n\t\t\t\t\t\t\t\t\tyScale.range()[0],\n\t\t\t\t\t\t\t\t\tc\n\t\t\t\t\t\t\t\t).y\n\t\t\t\t\t\t)\n\t\t\t\t\t\t.attr(\n\t\t\t\t\t\t\t'x2',\n\t\t\t\t\t\t\t(key) =>\n\t\t\t\t\t\t\t\tpolarToCartesianCoords(\n\t\t\t\t\t\t\t\t\txScale(key),\n\t\t\t\t\t\t\t\t\tyScale.range()[1],\n\t\t\t\t\t\t\t\t\tc\n\t\t\t\t\t\t\t\t).x\n\t\t\t\t\t\t)\n\t\t\t\t\t\t.attr(\n\t\t\t\t\t\t\t'y2',\n\t\t\t\t\t\t\t(key) =>\n\t\t\t\t\t\t\t\tpolarToCartesianCoords(\n\t\t\t\t\t\t\t\t\txScale(key),\n\t\t\t\t\t\t\t\t\tyScale.range()[1],\n\t\t\t\t\t\t\t\t\tc\n\t\t\t\t\t\t\t\t).y\n\t\t\t\t\t\t)\n\t\t\t\t),\n\t\t\t(exit) =>\n\t\t\t\texit.call((selection) =>\n\t\t\t\t\tselection\n\t\t\t\t\t\t.transition()\n\t\t\t\t\t\t.call((t) =>\n\t\t\t\t\t\t\tthis.services.transitions.setupTransition({\n\t\t\t\t\t\t\t\ttransition: t,\n\t\t\t\t\t\t\t\tname: 'radar_x_axes_exit',\n\t\t\t\t\t\t\t\tanimate,\n\t\t\t\t\t\t\t})\n\t\t\t\t\t\t)\n\t\t\t\t\t\t.attr('opacity', 0)\n\t\t\t\t\t\t.remove()\n\t\t\t\t)\n\t\t);\n\n\t\t// x labels\n\t\tconst xLabels = DOMUtils.appendOrSelect(svg, 'g.x-labels').attr(\n\t\t\t'role',\n\t\t\tRoles.GROUP\n\t\t);\n\t\tconst xLabelUpdate = xLabels.selectAll('text').data(this.uniqueKeys);\n\t\txLabelUpdate.join(\n\t\t\t(enter) =>\n\t\t\t\tenter\n\t\t\t\t\t.append('text')\n\t\t\t\t\t.text((key) => key)\n\t\t\t\t\t.attr('opacity', 0)\n\t\t\t\t\t.attr(\n\t\t\t\t\t\t'x',\n\t\t\t\t\t\t(key) =>\n\t\t\t\t\t\t\tpolarToCartesianCoords(\n\t\t\t\t\t\t\t\txScale(key),\n\t\t\t\t\t\t\t\tyScale.range()[1] + xLabelPadding,\n\t\t\t\t\t\t\t\tc\n\t\t\t\t\t\t\t).x\n\t\t\t\t\t)\n\t\t\t\t\t.attr(\n\t\t\t\t\t\t'y',\n\t\t\t\t\t\t(key) =>\n\t\t\t\t\t\t\tpolarToCartesianCoords(\n\t\t\t\t\t\t\t\txScale(key),\n\t\t\t\t\t\t\t\tyScale.range()[1] + xLabelPadding,\n\t\t\t\t\t\t\t\tc\n\t\t\t\t\t\t\t).y\n\t\t\t\t\t)\n\t\t\t\t\t.style(\n\t\t\t\t\t\t'text-anchor',\n\t\t\t\t\t\t(key) => radialLabelPlacement(xScale(key)).textAnchor\n\t\t\t\t\t)\n\t\t\t\t\t.style(\n\t\t\t\t\t\t'dominant-baseline',\n\t\t\t\t\t\t(key) =>\n\t\t\t\t\t\t\tradialLabelPlacement(xScale(key)).dominantBaseline\n\t\t\t\t\t)\n\t\t\t\t\t.call((selection) =>\n\t\t\t\t\t\tselection\n\t\t\t\t\t\t\t.transition()\n\t\t\t\t\t\t\t.call((t) =>\n\t\t\t\t\t\t\t\tthis.services.transitions.setupTransition({\n\t\t\t\t\t\t\t\t\ttransition: t,\n\t\t\t\t\t\t\t\t\tname: 'radar_x_labels_enter',\n\t\t\t\t\t\t\t\t\tanimate,\n\t\t\t\t\t\t\t\t})\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t.attr('opacity', 1)\n\t\t\t\t\t),\n\t\t\t(update) =>\n\t\t\t\tupdate.call((selection) =>\n\t\t\t\t\tselection\n\t\t\t\t\t\t.transition()\n\t\t\t\t\t\t.call((t) =>\n\t\t\t\t\t\t\tthis.services.transitions.setupTransition({\n\t\t\t\t\t\t\t\ttransition: t,\n\t\t\t\t\t\t\t\tname: 'radar_x_labels_update',\n\t\t\t\t\t\t\t\tanimate,\n\t\t\t\t\t\t\t})\n\t\t\t\t\t\t)\n\t\t\t\t\t\t.attr('opacity', 1)\n\t\t\t\t\t\t.attr(\n\t\t\t\t\t\t\t'x',\n\t\t\t\t\t\t\t(key) =>\n\t\t\t\t\t\t\t\tpolarToCartesianCoords(\n\t\t\t\t\t\t\t\t\txScale(key),\n\t\t\t\t\t\t\t\t\tyScale.range()[1] + xLabelPadding,\n\t\t\t\t\t\t\t\t\tc\n\t\t\t\t\t\t\t\t).x\n\t\t\t\t\t\t)\n\t\t\t\t\t\t.attr(\n\t\t\t\t\t\t\t'y',\n\t\t\t\t\t\t\t(key) =>\n\t\t\t\t\t\t\t\tpolarToCartesianCoords(\n\t\t\t\t\t\t\t\t\txScale(key),\n\t\t\t\t\t\t\t\t\tyScale.range()[1] + xLabelPadding,\n\t\t\t\t\t\t\t\t\tc\n\t\t\t\t\t\t\t\t).y\n\t\t\t\t\t\t)\n\t\t\t\t\t\t.end()\n\t\t\t\t\t\t.finally(() => {\n\t\t\t\t\t\t\t// Align chart horizontally after x-axies has finished rendering\n\t\t\t\t\t\t\tconst alignment = Tools.getProperty(\n\t\t\t\t\t\t\t\toptions,\n\t\t\t\t\t\t\t\t'radar',\n\t\t\t\t\t\t\t\t'alignment'\n\t\t\t\t\t\t\t);\n\n\t\t\t\t\t\t\tconst alignmentXOffset = this.getAlignmentXOffset(\n\t\t\t\t\t\t\t\talignment,\n\t\t\t\t\t\t\t\tsvg,\n\t\t\t\t\t\t\t\tthis.getParent()\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\tsvg.attr('x', alignmentXOffset);\n\t\t\t\t\t\t})\n\t\t\t\t),\n\t\t\t(exit) =>\n\t\t\t\texit.call((selection) =>\n\t\t\t\t\tselection\n\t\t\t\t\t\t.transition()\n\t\t\t\t\t\t.call((t) =>\n\t\t\t\t\t\t\tthis.services.transitions.setupTransition({\n\t\t\t\t\t\t\t\ttransition: t,\n\t\t\t\t\t\t\t\tname: 'radar_x_labels_exit',\n\t\t\t\t\t\t\t\tanimate,\n\t\t\t\t\t\t\t})\n\t\t\t\t\t\t)\n\t\t\t\t\t\t.attr('opacity', 0)\n\t\t\t\t\t\t.remove()\n\t\t\t\t)\n\t\t);\n\n\t\t// blobs\n\t\tconst blobs = DOMUtils.appendOrSelect(svg, 'g.blobs').attr(\n\t\t\t'role',\n\t\t\tRoles.GROUP\n\t\t);\n\t\tconst blobUpdate = blobs\n\t\t\t.selectAll('path')\n\t\t\t.data(this.groupedDataNormalized, (group) => group.name);\n\n\t\tblobUpdate.join(\n\t\t\t(enter) =>\n\t\t\t\tenter\n\t\t\t\t\t.append('path')\n\t\t\t\t\t.attr('class', (group) =>\n\t\t\t\t\t\tthis.model.getColorClassName({\n\t\t\t\t\t\t\tclassNameTypes: [\n\t\t\t\t\t\t\t\tColorClassNameTypes.FILL,\n\t\t\t\t\t\t\t\tColorClassNameTypes.STROKE,\n\t\t\t\t\t\t\t],\n\t\t\t\t\t\t\tdataGroupName: group.name,\n\t\t\t\t\t\t\toriginalClassName: 'blob',\n\t\t\t\t\t\t})\n\t\t\t\t\t)\n\t\t\t\t\t.attr('role', Roles.GRAPHICS_SYMBOL)\n\t\t\t\t\t.attr('aria-label', (d) => d['name'])\n\t\t\t\t\t.attr('opacity', 0)\n\t\t\t\t\t.attr(\n\t\t\t\t\t\t'transform',\n\t\t\t\t\t\tanimate\n\t\t\t\t\t\t\t? () =>\n\t\t\t\t\t\t\t\t\t`translate(${c.x}, ${c.y}) scale(${\n\t\t\t\t\t\t\t\t\t\t1 + Math.random() * 0.35\n\t\t\t\t\t\t\t\t\t})`\n\t\t\t\t\t\t\t: `translate(${c.x}, ${c.y})`\n\t\t\t\t\t)\n\t\t\t\t\t.style('fill', (group) => colorScale(group.name))\n\t\t\t\t\t.style('fill-opacity', Configuration.radar.opacity.selected)\n\t\t\t\t\t.style('stroke', (group) => colorScale(group.name))\n\n\t\t\t\t\t.call((selection) => {\n\t\t\t\t\t\tconst selectionUpdate = selection\n\t\t\t\t\t\t\t.transition()\n\t\t\t\t\t\t\t.call((t) =>\n\t\t\t\t\t\t\t\tthis.services.transitions.setupTransition({\n\t\t\t\t\t\t\t\t\ttransition: t,\n\t\t\t\t\t\t\t\t\tname: 'radar_blobs_enter',\n\t\t\t\t\t\t\t\t\tanimate,\n\t\t\t\t\t\t\t\t})\n\t\t\t\t\t\t\t);\n\n\t\t\t\t\t\tif (animate) {\n\t\t\t\t\t\t\tselectionUpdate\n\t\t\t\t\t\t\t\t.delay(() => Math.random() * 30)\n\t\t\t\t\t\t\t\t.attr('transform', `translate(${c.x}, ${c.y})`);\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tselectionUpdate\n\t\t\t\t\t\t\t.attr('opacity', 1)\n\t\t\t\t\t\t\t.attr('d', (group) =>\n\t\t\t\t\t\t\t\tradialLineGenerator(group.data)\n\t\t\t\t\t\t\t);\n\t\t\t\t\t}),\n\t\t\t(update) => {\n\t\t\t\tupdate\n\t\t\t\t\t.attr('class', (group) =>\n\t\t\t\t\t\tthis.model.getColorClassName({\n\t\t\t\t\t\t\tclassNameTypes: [\n\t\t\t\t\t\t\t\tColorClassNameTypes.FILL,\n\t\t\t\t\t\t\t\tColorClassNameTypes.STROKE,\n\t\t\t\t\t\t\t],\n\t\t\t\t\t\t\tdataGroupName: group.name,\n\t\t\t\t\t\t\toriginalClassName: 'blob',\n\t\t\t\t\t\t})\n\t\t\t\t\t)\n\t\t\t\t\t.style('fill', (group) => colorScale(group.name))\n\t\t\t\t\t.style('stroke', (group) => colorScale(group.name));\n\t\t\t\tupdate.call((selection) =>\n\t\t\t\t\tselection\n\t\t\t\t\t\t.transition()\n\t\t\t\t\t\t.call((t) =>\n\t\t\t\t\t\t\tthis.services.transitions.setupTransition({\n\t\t\t\t\t\t\t\ttransition: t,\n\t\t\t\t\t\t\t\tname: 'radar_blobs_update',\n\t\t\t\t\t\t\t\tanimate,\n\t\t\t\t\t\t\t})\n\t\t\t\t\t\t)\n\t\t\t\t\t\t.attr('opacity', 1)\n\t\t\t\t\t\t.attr('transform', `translate(${c.x}, ${c.y})`)\n\t\t\t\t\t\t.attr('d', (group) => radialLineGenerator(group.data))\n\t\t\t\t);\n\t\t\t},\n\t\t\t(exit) =>\n\t\t\t\texit.call((selection) => {\n\t\t\t\t\tconst selectionUpdate = selection.transition().call((t) =>\n\t\t\t\t\t\tthis.services.transitions.setupTransition({\n\t\t\t\t\t\t\ttransition: t,\n\t\t\t\t\t\t\tname: 'radar_blobs_exit',\n\t\t\t\t\t\t\tanimate,\n\t\t\t\t\t\t})\n\t\t\t\t\t);\n\n\t\t\t\t\tif (animate) {\n\t\t\t\t\t\tselectionUpdate\n\t\t\t\t\t\t\t.delay(() => Math.random() * 30)\n\t\t\t\t\t\t\t.attr(\n\t\t\t\t\t\t\t\t'transform',\n\t\t\t\t\t\t\t\t() =>\n\t\t\t\t\t\t\t\t\t`translate(${c.x}, ${c.y}) scale(${\n\t\t\t\t\t\t\t\t\t\t1 + Math.random() * 0.35\n\t\t\t\t\t\t\t\t\t})`\n\t\t\t\t\t\t\t);\n\t\t\t\t\t}\n\n\t\t\t\t\tselectionUpdate.attr('opacity', 0).remove();\n\t\t\t\t})\n\t\t);\n\n\t\t// data dots\n\t\tconst dots = DOMUtils.appendOrSelect(svg, 'g.dots').attr(\n\t\t\t'role',\n\t\t\tRoles.GROUP\n\t\t);\n\n\t\tconst dotsUpdate = dots\n\t\t\t.selectAll('circle')\n\t\t\t// Filter out dots with no value so they are not rendered\n\t\t\t.data(\n\t\t\t\tthis.fullDataNormalized.filter(\n\t\t\t\t\t(d) => Tools.getProperty(d, value) !== null\n\t\t\t\t)\n\t\t\t);\n\n\t\tdotsUpdate\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('circle')\n\t\t\t\t\t\t.attr('role', Roles.GRAPHICS_SYMBOL)\n\t\t\t\t\t\t.attr('aria-label', (d) => d[valueMapsTo]),\n\t\t\t\t(update) => update,\n\t\t\t\t(exit) => exit.remove()\n\t\t\t)\n\t\t\t.attr('class', (d) =>\n\t\t\t\tthis.model.getColorClassName({\n\t\t\t\t\tclassNameTypes: [ColorClassNameTypes.FILL],\n\t\t\t\t\tdataGroupName: d[groupMapsTo],\n\t\t\t\t\toriginalClassName: Tools.kebabCase(d[angle]),\n\t\t\t\t})\n\t\t\t)\n\t\t\t.attr(\n\t\t\t\t'cx',\n\t\t\t\t(d) =>\n\t\t\t\t\tpolarToCartesianCoords(\n\t\t\t\t\t\txScale(d[angle]),\n\t\t\t\t\t\tyScale(d[value]),\n\t\t\t\t\t\tc\n\t\t\t\t\t).x\n\t\t\t)\n\t\t\t.attr(\n\t\t\t\t'cy',\n\t\t\t\t(d) =>\n\t\t\t\t\tpolarToCartesianCoords(\n\t\t\t\t\t\txScale(d[angle]),\n\t\t\t\t\t\tyScale(d[value]),\n\t\t\t\t\t\tc\n\t\t\t\t\t).y\n\t\t\t)\n\t\t\t.attr('r', 0)\n\t\t\t.attr('opacity', 0)\n\t\t\t.style('fill', (d) => colorScale(d[groupMapsTo]));\n\n\t\t// rectangles\n\t\tconst xAxesRect = DOMUtils.appendOrSelect(svg, 'g.x-axes-rect').attr(\n\t\t\t'role',\n\t\t\tRoles.GROUP\n\t\t);\n\t\tconst xAxisRectUpdate = xAxesRect\n\t\t\t.selectAll('rect')\n\t\t\t.data(this.uniqueKeys);\n\t\txAxisRectUpdate\n\t\t\t.join(\n\t\t\t\t(enter) => enter.append('rect'),\n\t\t\t\t(update) => update,\n\t\t\t\t(exit) => exit.remove()\n\t\t\t)\n\t\t\t.attr('x', c.x)\n\t\t\t.attr('y', c.y - xAxisRectHeight / 2)\n\t\t\t.attr('width', yScale.range()[1])\n\t\t\t.attr('height', xAxisRectHeight)\n\t\t\t.style('fill', 'red')\n\t\t\t.style('fill-opacity', 0)\n\t\t\t.attr(\n\t\t\t\t'transform',\n\t\t\t\t(key) => `rotate(${radToDeg(xScale(key))}, ${c.x}, ${c.y})`\n\t\t\t);\n\n\t\t// y labels (show only the min and the max labels)\n\t\tconst yLabels = DOMUtils.appendOrSelect(svg, 'g.y-labels').attr(\n\t\t\t'role',\n\t\t\tRoles.GROUP\n\t\t);\n\t\tconst yLabelUpdate = yLabels.selectAll('text').data(extent(yTicks));\n\t\tyLabelUpdate.join(\n\t\t\t(enter) =>\n\t\t\t\tenter\n\t\t\t\t\t.append('text')\n\t\t\t\t\t.attr('opacity', 0)\n\t\t\t\t\t.text((tick) => tick)\n\t\t\t\t\t.attr(\n\t\t\t\t\t\t'x',\n\t\t\t\t\t\t(tick) =>\n\t\t\t\t\t\t\tpolarToCartesianCoords(\n\t\t\t\t\t\t\t\t-Math.PI / 2,\n\t\t\t\t\t\t\t\tyScale(tick),\n\t\t\t\t\t\t\t\tc\n\t\t\t\t\t\t\t).x + yLabelPadding\n\t\t\t\t\t)\n\t\t\t\t\t.attr(\n\t\t\t\t\t\t'y',\n\t\t\t\t\t\t(tick) =>\n\t\t\t\t\t\t\tpolarToCartesianCoords(\n\t\t\t\t\t\t\t\t-Math.PI / 2,\n\t\t\t\t\t\t\t\tyScale(tick),\n\t\t\t\t\t\t\t\tc\n\t\t\t\t\t\t\t).y\n\t\t\t\t\t)\n\t\t\t\t\t.style('text-anchor', 'start')\n\t\t\t\t\t.style('dominant-baseline', 'middle')\n\t\t\t\t\t.call((selection) =>\n\t\t\t\t\t\tselection\n\t\t\t\t\t\t\t.transition()\n\t\t\t\t\t\t\t.call((t) =>\n\t\t\t\t\t\t\t\tthis.services.transitions.setupTransition({\n\t\t\t\t\t\t\t\t\ttransition: t,\n\t\t\t\t\t\t\t\t\tname: 'radar_y_labels_enter',\n\t\t\t\t\t\t\t\t\tanimate,\n\t\t\t\t\t\t\t\t})\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t.attr('opacity', 1)\n\t\t\t\t\t),\n\t\t\t(update) =>\n\t\t\t\tupdate.call((selection) =>\n\t\t\t\t\tselection\n\t\t\t\t\t\t.transition()\n\t\t\t\t\t\t.call((t) =>\n\t\t\t\t\t\t\tthis.services.transitions.setupTransition({\n\t\t\t\t\t\t\t\ttransition: t,\n\t\t\t\t\t\t\t\tname: 'radar_y_labels_update',\n\t\t\t\t\t\t\t\tanimate,\n\t\t\t\t\t\t\t})\n\t\t\t\t\t\t)\n\t\t\t\t\t\t.text((tick) => tick)\n\t\t\t\t\t\t.attr('opacity', 1)\n\t\t\t\t\t\t.attr(\n\t\t\t\t\t\t\t'x',\n\t\t\t\t\t\t\t(tick) =>\n\t\t\t\t\t\t\t\tpolarToCartesianCoords(\n\t\t\t\t\t\t\t\t\t-Math.PI / 2,\n\t\t\t\t\t\t\t\t\tyScale(tick),\n\t\t\t\t\t\t\t\t\tc\n\t\t\t\t\t\t\t\t).x + yLabelPadding\n\t\t\t\t\t\t)\n\t\t\t\t\t\t.attr(\n\t\t\t\t\t\t\t'y',\n\t\t\t\t\t\t\t(tick) =>\n\t\t\t\t\t\t\t\tpolarToCartesianCoords(\n\t\t\t\t\t\t\t\t\t-Math.PI / 2,\n\t\t\t\t\t\t\t\t\tyScale(tick),\n\t\t\t\t\t\t\t\t\tc\n\t\t\t\t\t\t\t\t).y\n\t\t\t\t\t\t)\n\t\t\t\t),\n\t\t\t(exit) =>\n\t\t\t\texit.call((selection) =>\n\t\t\t\t\tselection\n\t\t\t\t\t\t.transition()\n\t\t\t\t\t\t.call((t) =>\n\t\t\t\t\t\t\tthis.services.transitions.setupTransition({\n\t\t\t\t\t\t\t\ttransition: t,\n\t\t\t\t\t\t\t\tname: 'radar_y_labels_exit',\n\t\t\t\t\t\t\t\tanimate,\n\t\t\t\t\t\t\t})\n\t\t\t\t\t\t)\n\t\t\t\t\t\t.attr('opacity', 0)\n\t\t\t\t\t\t.remove()\n\t\t\t\t)\n\t\t);\n\n\t\t// Add event listeners\n\t\tthis.addEventListeners();\n\t}\n\n\tgetAlignmentXOffset(alignment, svg, parent) {\n\t\tconst svgDimensions = DOMUtils.getSVGElementSize(svg, {\n\t\t\tuseBBox: true,\n\t\t});\n\t\tconst { width } = DOMUtils.getSVGElementSize(parent, {\n\t\t\tuseAttrs: true,\n\t\t});\n\n\t\tlet alignmentOffset = 0;\n\t\tif (alignment === Alignments.CENTER) {\n\t\t\talignmentOffset = Math.floor((width - svgDimensions.width) / 2);\n\t\t} else if (alignment === Alignments.RIGHT) {\n\t\t\talignmentOffset = width - svgDimensions.width;\n\t\t}\n\n\t\treturn alignmentOffset;\n\t}\n\n\t// append temporarily the label to get the exact space that it occupies\n\tgetLabelDimensions = (label: string) => {\n\t\tconst tmpTick = DOMUtils.appendOrSelect(\n\t\t\tthis.getComponentContainer(),\n\t\t\t`g.tmp-tick`\n\t\t);\n\t\tconst tmpTickText = DOMUtils.appendOrSelect(tmpTick, `text`).text(\n\t\t\tlabel\n\t\t);\n\t\tconst { width, height } = DOMUtils.getSVGElementSize(\n\t\t\ttmpTickText.node(),\n\t\t\t{ useBBox: true }\n\t\t);\n\t\ttmpTick.remove();\n\t\treturn { width, height };\n\t};\n\n\t// Given a flat array of objects, if there are missing data on key,\n\t// creates corresponding data with value = null\n\tnormalizeFlatData = (dataset: any) => {\n\t\tconst options = this.getOptions();\n\t\tconst { angle, value } = Tools.getProperty(options, 'radar', 'axes');\n\t\tconst groupMapsTo = Tools.getProperty(options, 'data', 'groupMapsTo');\n\t\tconst completeBlankData = Tools.flatMapDeep(\n\t\t\tthis.uniqueKeys.map((key) => {\n\t\t\t\treturn this.uniqueGroups.map((group) => ({\n\t\t\t\t\t[angle]: key,\n\t\t\t\t\t[groupMapsTo]: group,\n\t\t\t\t\t[value]: null,\n\t\t\t\t}));\n\t\t\t})\n\t\t);\n\t\treturn Tools.merge(completeBlankData, dataset);\n\t};\n\n\t// Given a a grouped array of objects, if there are missing data on key,\n\t// creates corresponding data with value = null\n\tnormalizeGroupedData = (dataset: any) => {\n\t\tconst options = this.getOptions();\n\t\tconst { angle, value } = Tools.getProperty(options, 'radar', 'axes');\n\t\tconst groupMapsTo = Tools.getProperty(options, 'data', 'groupMapsTo');\n\t\treturn dataset.map(({ name, data }) => {\n\t\t\tconst completeBlankData = this.uniqueKeys.map((k) => ({\n\t\t\t\t[groupMapsTo]: name,\n\t\t\t\t[angle]: k,\n\t\t\t\t[value]: null,\n\t\t\t}));\n\t\t\treturn { name, data: Tools.merge(completeBlankData, data) };\n\t\t});\n\t};\n\n\thandleLegendOnHover = (event: CustomEvent) => {\n\t\tconst { hoveredElement } = event.detail;\n\t\tthis.parent\n\t\t\t.selectAll('g.blobs path')\n\t\t\t.transition('legend-hover-blob')\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-blob',\n\t\t\t\t})\n\t\t\t)\n\t\t\t.style('fill-opacity', (group) => {\n\t\t\t\tif (group.name !== hoveredElement.datum().name) {\n\t\t\t\t\treturn Configuration.radar.opacity.unselected;\n\t\t\t\t}\n\t\t\t\treturn Configuration.radar.opacity.selected;\n\t\t\t})\n\t\t\t.style('stroke-opacity', (group) => {\n\t\t\t\tif (group.name !== hoveredElement.datum().name) {\n\t\t\t\t\treturn Configuration.radar.opacity.unselected;\n\t\t\t\t}\n\t\t\t\treturn 1;\n\t\t\t});\n\t};\n\n\thandleLegendMouseOut = (event: CustomEvent) => {\n\t\tthis.parent\n\t\t\t.selectAll('g.blobs path')\n\t\t\t.transition('legend-mouseout-blob')\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-blob',\n\t\t\t\t})\n\t\t\t)\n\t\t\t.style('fill-opacity', Configuration.radar.opacity.selected)\n\t\t\t.style('stroke-opacity', 1);\n\t};\n\n\tdestroy() {\n\t\t// Remove event listeners\n\t\tthis.parent\n\t\t\t.selectAll('.x-axes-rect > rect')\n\t\t\t.on('mouseover', null)\n\t\t\t.on('mousemove', null)\n\t\t\t.on('mouseout', null);\n\t\t// Remove legend listeners\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\t}\n\n\taddEventListeners() {\n\t\tconst self = this;\n\t\tconst {\n\t\t\taxes: { angle },\n\t\t} = Tools.getProperty(this.getOptions(), 'radar');\n\n\t\t// events on x axes rects\n\t\tthis.parent\n\t\t\t.selectAll('.x-axes-rect > rect')\n\t\t\t.on('mouseover', 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.Radar.X_AXIS_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\n\t\t\t\tconst axisLine = self.parent.select(\n\t\t\t\t\t`.x-axes .x-axis-${Tools.kebabCase(datum)}`\n\t\t\t\t);\n\t\t\t\tconst dots = self.parent.selectAll(\n\t\t\t\t\t`.dots circle.${Tools.kebabCase(datum)}`\n\t\t\t\t);\n\n\t\t\t\tconst activeDataGroupNames = self.model.getActiveDataGroupNames();\n\n\t\t\t\tconst options = self.getOptions();\n\t\t\t\tconst { groupMapsTo } = options.data;\n\t\t\t\tconst valueMapsTo = Tools.getProperty(\n\t\t\t\t\toptions,\n\t\t\t\t\t'radar',\n\t\t\t\t\t'axes',\n\t\t\t\t\t'value'\n\t\t\t\t);\n\n\t\t\t\t// Change style\n\t\t\t\taxisLine\n\t\t\t\t\t.classed('hovered', true)\n\t\t\t\t\t.attr('stroke-dasharray', '4 4');\n\t\t\t\tdots.classed('hovered', true)\n\t\t\t\t\t.attr('opacity', (d) =>\n\t\t\t\t\t\tactiveDataGroupNames.indexOf(d[groupMapsTo]) !== -1\n\t\t\t\t\t\t\t? 1\n\t\t\t\t\t\t\t: 0\n\t\t\t\t\t)\n\t\t\t\t\t.attr('r', Configuration.radar.dotsRadius);\n\n\t\t\t\t// get the items that should be highlighted\n\t\t\t\tconst itemsToHighlight = self.fullDataNormalized.filter(\n\t\t\t\t\t(d) =>\n\t\t\t\t\t\td[angle] === datum &&\n\t\t\t\t\t\tactiveDataGroupNames.indexOf(d[groupMapsTo]) !== -1\n\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: itemsToHighlight\n\t\t\t\t\t\t.filter(\n\t\t\t\t\t\t\t(datum) => typeof datum[valueMapsTo] === 'number'\n\t\t\t\t\t\t)\n\t\t\t\t\t\t.map((datum) => ({\n\t\t\t\t\t\t\tlabel: datum[groupMapsTo],\n\t\t\t\t\t\t\tvalue: datum[valueMapsTo],\n\t\t\t\t\t\t\tcolor: self.model.getFillColor(datum[groupMapsTo]),\n\t\t\t\t\t\t\tclass: self.model.getColorClassName({\n\t\t\t\t\t\t\t\tclassNameTypes: [ColorClassNameTypes.TOOLTIP],\n\t\t\t\t\t\t\t\tdataGroupName: datum[groupMapsTo],\n\t\t\t\t\t\t\t}),\n\t\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.Radar.X_AXIS_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.Radar.X_AXIS_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\tconst axisLine = self.parent.select(\n\t\t\t\t\t`.x-axes .x-axis-${Tools.kebabCase(datum)}`\n\t\t\t\t);\n\t\t\t\tconst dots = self.parent.selectAll(\n\t\t\t\t\t`.dots circle.${Tools.kebabCase(datum)}`\n\t\t\t\t);\n\n\t\t\t\t// Change style\n\t\t\t\taxisLine\n\t\t\t\t\t.classed('hovered', false)\n\t\t\t\t\t.attr('stroke-dasharray', '0');\n\n\t\t\t\tdots.classed('hovered', false).attr('opacity', 0).attr('r', 0);\n\n\t\t\t\t// Dispatch mouse event\n\t\t\t\tself.services.events.dispatchEvent(\n\t\t\t\t\tEvents.Radar.X_AXIS_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});\n\t}\n}\n"]}
|
package/components/index.d.ts
CHANGED
|
@@ -9,6 +9,7 @@ export * from './essentials/tooltip';
|
|
|
9
9
|
export * from './essentials/tooltip-axis';
|
|
10
10
|
export * from './essentials/canvas-chart-clip';
|
|
11
11
|
export * from './essentials/highlights';
|
|
12
|
+
export * from './essentials/geo-projection';
|
|
12
13
|
export * from './graphs/area';
|
|
13
14
|
export * from './graphs/area-stacked';
|
|
14
15
|
export * from './graphs/bar-simple';
|
|
@@ -34,6 +35,7 @@ export * from './graphs/circle-pack';
|
|
|
34
35
|
export * from './graphs/wordcloud';
|
|
35
36
|
export * from './graphs/alluvial';
|
|
36
37
|
export * from './graphs/heatmap';
|
|
38
|
+
export * from './graphs/choropleth';
|
|
37
39
|
export * from './layout/spacer';
|
|
38
40
|
export * from './layout/layout';
|
|
39
41
|
export * from './axes/two-dimensional-axes';
|
package/components/index.js
CHANGED
|
@@ -10,6 +10,7 @@ export * from './essentials/tooltip';
|
|
|
10
10
|
export * from './essentials/tooltip-axis';
|
|
11
11
|
export * from './essentials/canvas-chart-clip';
|
|
12
12
|
export * from './essentials/highlights';
|
|
13
|
+
export * from './essentials/geo-projection';
|
|
13
14
|
// GRAPHS
|
|
14
15
|
export * from './graphs/area';
|
|
15
16
|
export * from './graphs/area-stacked';
|
|
@@ -36,6 +37,7 @@ export * from './graphs/circle-pack';
|
|
|
36
37
|
export * from './graphs/wordcloud';
|
|
37
38
|
export * from './graphs/alluvial';
|
|
38
39
|
export * from './graphs/heatmap';
|
|
40
|
+
export * from './graphs/choropleth';
|
|
39
41
|
// Layout
|
|
40
42
|
export * from './layout/spacer';
|
|
41
43
|
export * from './layout/layout';
|
package/components/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAE5B,aAAa;AACb,cAAc,qBAAqB,CAAC;AACpC,cAAc,iCAAiC,CAAC;AAChD,cAAc,oBAAoB,CAAC;AACnC,cAAc,wBAAwB,CAAC;AACvC,cAAc,oBAAoB,CAAC;AACnC,cAAc,0BAA0B,CAAC;AACzC,cAAc,sBAAsB,CAAC;AACrC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,yBAAyB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAE5B,aAAa;AACb,cAAc,qBAAqB,CAAC;AACpC,cAAc,iCAAiC,CAAC;AAChD,cAAc,oBAAoB,CAAC;AACnC,cAAc,wBAAwB,CAAC;AACvC,cAAc,oBAAoB,CAAC;AACnC,cAAc,0BAA0B,CAAC;AACzC,cAAc,sBAAsB,CAAC;AACrC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,yBAAyB,CAAC;AACxC,cAAc,6BAA6B,CAAC;AAE5C,SAAS;AACT,cAAc,eAAe,CAAC;AAC9B,cAAc,uBAAuB,CAAC;AACtC,cAAc,qBAAqB,CAAC;AACpC,cAAc,sBAAsB,CAAC;AACrC,cAAc,sBAAsB,CAAC;AACrC,cAAc,kBAAkB,CAAC;AACjC,cAAc,iBAAiB,CAAC;AAChC,cAAc,iBAAiB,CAAC;AAChC,cAAc,oBAAoB,CAAC;AACnC,cAAc,eAAe,CAAC;AAC9B,cAAc,mBAAmB,CAAC;AAClC,cAAc,kBAAkB,CAAC;AACjC,cAAc,0BAA0B,CAAC;AACzC,cAAc,cAAc,CAAC;AAC7B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,mBAAmB,CAAC;AAClC,cAAc,yBAAyB,CAAC;AACxC,cAAc,eAAe,CAAC;AAC9B,cAAc,kBAAkB,CAAC;AACjC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,sBAAsB,CAAC;AACrC,cAAc,oBAAoB,CAAC;AACnC,cAAc,mBAAmB,CAAC;AAClC,cAAc,kBAAkB,CAAC;AACjC,cAAc,qBAAqB,CAAC;AAEpC,SAAS;AACT,cAAc,iBAAiB,CAAC;AAChC,cAAc,iBAAiB,CAAC;AAEhC,OAAO;AACP,cAAc,6BAA6B,CAAC;AAC5C,cAAc,aAAa,CAAC;AAC5B,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC;AAClC,cAAc,aAAa,CAAC;AAC5B,cAAc,cAAc,CAAC;AAC7B,cAAc,qBAAqB,CAAC;AACpC,cAAc,sBAAsB,CAAC;AACrC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,kBAAkB,CAAC;AACjC,cAAc,iBAAiB,CAAC;AAEhC,WAAW;AACX,cAAc,uBAAuB,CAAC;AACtC,cAAc,8BAA8B,CAAC","sourcesContent":["export * from './component';\n\n// ESSENTIALS\nexport * from './essentials/legend';\nexport * from './essentials/color-scale-legend';\nexport * from './essentials/modal';\nexport * from './essentials/threshold';\nexport * from './essentials/title';\nexport * from './essentials/title-meter';\nexport * from './essentials/tooltip';\nexport * from './essentials/tooltip-axis';\nexport * from './essentials/canvas-chart-clip';\nexport * from './essentials/highlights';\nexport * from './essentials/geo-projection';\n\n// GRAPHS\nexport * from './graphs/area';\nexport * from './graphs/area-stacked';\nexport * from './graphs/bar-simple';\nexport * from './graphs/bar-grouped';\nexport * from './graphs/bar-stacked';\nexport * from './graphs/boxplot';\nexport * from './graphs/bubble';\nexport * from './graphs/bullet';\nexport * from './graphs/histogram';\nexport * from './graphs/line';\nexport * from './graphs/lollipop';\nexport * from './graphs/scatter';\nexport * from './graphs/scatter-stacked';\nexport * from './graphs/pie';\nexport * from './graphs/gauge';\nexport * from './graphs/donut';\nexport * from './graphs/skeleton';\nexport * from './graphs/skeleton-lines';\nexport * from './graphs/tree';\nexport * from './graphs/treemap';\nexport * from './graphs/radar';\nexport * from './graphs/circle-pack';\nexport * from './graphs/wordcloud';\nexport * from './graphs/alluvial';\nexport * from './graphs/heatmap';\nexport * from './graphs/choropleth';\n\n// Layout\nexport * from './layout/spacer';\nexport * from './layout/layout';\n\n// MISC\nexport * from './axes/two-dimensional-axes';\nexport * from './axes/axis';\nexport * from './axes/grid-brush';\nexport * from './axes/chart-clip';\nexport * from './axes/grid';\nexport * from './axes/ruler';\nexport * from './axes/ruler-binned';\nexport * from './axes/ruler-stacked';\nexport * from './axes/toolbar';\nexport * from './axes/zero-line';\nexport * from './axes/zoom-bar';\n\n// Diagrams\nexport * from './diagrams/buildPaths';\nexport * from './diagrams/markerDefinitions';\n"]}
|
package/configuration.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { BaseChartOptions, AxisChartOptions, ScatterChartOptions, LollipopChartOptions, LineChartOptions, BarChartOptions, StackedBarChartOptions, BoxplotChartOptions, AreaChartOptions, PieChartOptions, GaugeChartOptions, DonutChartOptions, BubbleChartOptions, BulletChartOptions, HistogramChartOptions, RadarChartOptions, ComboChartOptions, TreeChartOptions, TreemapChartOptions, CirclePackChartOptions, WorldCloudChartOptions, AlluvialChartOptions, GridOptions, RulerOptions, TimeScaleOptions, TooltipOptions, MeterChartOptions, ProportionalMeterChartOptions, HeatmapChartOptions } from './interfaces';
|
|
1
|
+
import { BaseChartOptions, AxisChartOptions, ScatterChartOptions, LollipopChartOptions, LineChartOptions, BarChartOptions, StackedBarChartOptions, BoxplotChartOptions, AreaChartOptions, PieChartOptions, GaugeChartOptions, DonutChartOptions, BubbleChartOptions, BulletChartOptions, HistogramChartOptions, RadarChartOptions, ComboChartOptions, TreeChartOptions, TreemapChartOptions, CirclePackChartOptions, WorldCloudChartOptions, AlluvialChartOptions, ThematicChartOptions, ChoroplethChartOptions, GridOptions, RulerOptions, TimeScaleOptions, TooltipOptions, MeterChartOptions, ProportionalMeterChartOptions, HeatmapChartOptions } from './interfaces';
|
|
2
2
|
/**
|
|
3
3
|
* Grid options
|
|
4
4
|
*/
|
|
@@ -15,6 +15,7 @@ export declare const timeScale: TimeScaleOptions;
|
|
|
15
15
|
export declare const options: {
|
|
16
16
|
chart: BaseChartOptions;
|
|
17
17
|
axisChart: AxisChartOptions;
|
|
18
|
+
thematicChart: ThematicChartOptions;
|
|
18
19
|
simpleBarChart: BarChartOptions;
|
|
19
20
|
groupedBarChart: BarChartOptions;
|
|
20
21
|
stackedBarChart: StackedBarChartOptions;
|
|
@@ -40,5 +41,6 @@ export declare const options: {
|
|
|
40
41
|
wordCloudChart: WorldCloudChartOptions;
|
|
41
42
|
alluvialChart: AlluvialChartOptions;
|
|
42
43
|
heatmapChart: HeatmapChartOptions;
|
|
44
|
+
choroplethChart: ChoroplethChartOptions;
|
|
43
45
|
};
|
|
44
46
|
export * from './configuration-non-customizable';
|
package/configuration.js
CHANGED
|
@@ -8,7 +8,7 @@ var __spreadArrays = (this && this.__spreadArrays) || function () {
|
|
|
8
8
|
import * as Tools from './tools';
|
|
9
9
|
import {
|
|
10
10
|
// ENUMS
|
|
11
|
-
Alignments, GaugeTypes, LegendPositions, TruncationTypes, ToolbarControlTypes, ZoomBarTypes, LegendItemType, TreeTypes, DividerStatus, ChartTheme, } from './interfaces';
|
|
11
|
+
Alignments, GaugeTypes, LegendPositions, TruncationTypes, ToolbarControlTypes, ZoomBarTypes, LegendItemType, TreeTypes, DividerStatus, ChartTheme, Projection, } from './interfaces';
|
|
12
12
|
import enUSLocaleObject from 'date-fns/locale/en-US/index';
|
|
13
13
|
import { circlePack } from './configuration-non-customizable';
|
|
14
14
|
/*
|
|
@@ -169,6 +169,14 @@ var chart = {
|
|
|
169
169
|
]),
|
|
170
170
|
},
|
|
171
171
|
};
|
|
172
|
+
/**
|
|
173
|
+
* Options common to any thematic chart
|
|
174
|
+
*/
|
|
175
|
+
var thematicChart = Tools.merge({}, chart, {
|
|
176
|
+
thematic: {
|
|
177
|
+
projection: Projection.geoNaturalEarth1,
|
|
178
|
+
},
|
|
179
|
+
});
|
|
172
180
|
/**
|
|
173
181
|
* Options common to any chart with an axis
|
|
174
182
|
*/
|
|
@@ -502,9 +510,17 @@ var heatmapChart = Tools.merge({}, chart, {
|
|
|
502
510
|
},
|
|
503
511
|
},
|
|
504
512
|
});
|
|
513
|
+
var choroplethChart = Tools.merge({}, thematicChart, {
|
|
514
|
+
choropleth: {
|
|
515
|
+
colorLegend: {
|
|
516
|
+
type: 'linear',
|
|
517
|
+
},
|
|
518
|
+
},
|
|
519
|
+
});
|
|
505
520
|
export var options = {
|
|
506
521
|
chart: chart,
|
|
507
522
|
axisChart: axisChart,
|
|
523
|
+
thematicChart: thematicChart,
|
|
508
524
|
simpleBarChart: simpleBarChart,
|
|
509
525
|
groupedBarChart: groupedBarChart,
|
|
510
526
|
stackedBarChart: stackedBarChart,
|
|
@@ -530,6 +546,7 @@ export var options = {
|
|
|
530
546
|
wordCloudChart: wordCloudChart,
|
|
531
547
|
alluvialChart: alluvialChart,
|
|
532
548
|
heatmapChart: heatmapChart,
|
|
549
|
+
choroplethChart: choroplethChart,
|
|
533
550
|
};
|
|
534
551
|
export * from './configuration-non-customizable';
|
|
535
552
|
//# sourceMappingURL=../src/configuration.js.map
|
package/configuration.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"configuration.js","sourceRoot":"","sources":["configuration.ts"],"names":[],"mappings":"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","sourcesContent":["import * as Tools from './tools';\nimport {\n\tBaseChartOptions,\n\tAxisChartOptions,\n\tScatterChartOptions,\n\tLollipopChartOptions,\n\tLineChartOptions,\n\tBarChartOptions,\n\tStackedBarChartOptions,\n\tBoxplotChartOptions,\n\tAreaChartOptions,\n\tPieChartOptions,\n\tGaugeChartOptions,\n\tDonutChartOptions,\n\tBubbleChartOptions,\n\tBulletChartOptions,\n\tHistogramChartOptions,\n\tRadarChartOptions,\n\tComboChartOptions,\n\tTreeChartOptions,\n\tTreemapChartOptions,\n\tCirclePackChartOptions,\n\tWorldCloudChartOptions,\n\tAlluvialChartOptions,\n\t// Components\n\tAxisOptions,\n\tGridOptions,\n\tRulerOptions,\n\tAxesOptions,\n\tTimeScaleOptions,\n\tTooltipOptions,\n\tWordCloudChartTooltipOptions,\n\tLegendOptions,\n\tStackedBarOptions,\n\tMeterChartOptions,\n\tProportionalMeterChartOptions,\n\tToolbarOptions,\n\tZoomBarsOptions,\n\t// ENUMS\n\tAlignments,\n\tGaugeTypes,\n\tLegendPositions,\n\tTruncationTypes,\n\tToolbarControlTypes,\n\tZoomBarTypes,\n\tLegendItemType,\n\tTreeTypes,\n\tHeatmapChartOptions,\n\tDividerStatus,\n\tChartTheme,\n} from './interfaces';\nimport enUSLocaleObject from 'date-fns/locale/en-US/index';\nimport { circlePack } from './configuration-non-customizable';\n\n/*\n *****************************\n * User configurable options *\n *****************************\n */\n\n/**\n * Default truncation configuration\n */\nconst standardTruncationOptions = {\n\ttype: TruncationTypes.END_LINE,\n\tthreshold: 16,\n\tnumCharacter: 14,\n};\n\n/**\n * Legend options\n */\nconst legend: LegendOptions = {\n\tenabled: true,\n\tposition: LegendPositions.BOTTOM,\n\tclickable: true,\n\ttruncation: standardTruncationOptions,\n\talignment: Alignments.LEFT,\n\torder: null,\n\tadditionalItems: [],\n};\n\n/**\n * Grid options\n */\nexport const grid: GridOptions = {\n\tx: {\n\t\t// set enable to false will not draw grid and stroke of grid backdrop\n\t\tenabled: true,\n\t\tnumberOfTicks: 15,\n\t\talignWithAxisTicks: false,\n\t},\n\ty: {\n\t\t// set enable to false will not draw grid and stroke of grid backdrop\n\t\tenabled: true,\n\t\tnumberOfTicks: 5,\n\t\talignWithAxisTicks: false,\n\t},\n};\n\n/**\n * Ruler options\n */\nexport const ruler: RulerOptions = {\n\t// enable or disable ruler\n\tenabled: true,\n};\n\n/**\n * Tooltip options\n */\nexport const baseTooltip: TooltipOptions = {\n\tenabled: true,\n\tshowTotal: true,\n\ttruncation: standardTruncationOptions,\n\tgroupLabel: 'Group',\n};\n\n// These options will be managed by Tools.mergeDefaultChartOptions\n// by removing the ones the user is not providing,\n// and by TwoDimensionalAxes.\nconst axes: AxesOptions<AxisOptions> = {\n\ttop: {\n\t\tvisible: true,\n\t\tincludeZero: true,\n\t\ttruncation: standardTruncationOptions,\n\t},\n\tbottom: {\n\t\tvisible: true,\n\t\tincludeZero: true,\n\t\ttruncation: standardTruncationOptions,\n\t},\n\tleft: {\n\t\tvisible: true,\n\t\tincludeZero: true,\n\t\ttruncation: standardTruncationOptions,\n\t},\n\tright: {\n\t\tvisible: true,\n\t\tincludeZero: true,\n\t\ttruncation: standardTruncationOptions,\n\t},\n};\n\nexport const timeScale: TimeScaleOptions = {\n\taddSpaceOnEdges: 1,\n\tshowDayName: false,\n\tlocaleObject: enUSLocaleObject,\n\ttimeIntervalFormats: {\n\t\t'15seconds': { primary: 'MMM d, pp', secondary: 'pp' },\n\t\tminute: { primary: 'MMM d, p', secondary: 'p' },\n\t\t'30minutes': { primary: 'MMM d, p', secondary: 'p' },\n\t\thourly: { primary: 'MMM d, hh a', secondary: 'hh a' },\n\t\tdaily: { primary: 'MMM d', secondary: 'd' },\n\t\tweekly: { primary: 'eee, MMM d', secondary: 'eee' },\n\t\tmonthly: { primary: 'MMM yyyy', secondary: 'MMM' },\n\t\tquarterly: { primary: \"QQQ ''yy\", secondary: 'QQQ' },\n\t\tyearly: { primary: 'yyyy', secondary: 'yyyy' },\n\t},\n};\n\nconst isFullScreenEnabled =\n\ttypeof document !== 'undefined' &&\n\t(document['fullscreenEnabled'] ||\n\t\tdocument['webkitFullscreenEnabled'] ||\n\t\tdocument['mozFullScreenEnabled'] ||\n\t\tdocument['msFullscreenEnabled']);\n\n/**\n * Base chart options common to any chart\n */\nconst chart: BaseChartOptions = {\n\twidth: null,\n\theight: null,\n\tresizable: true,\n\ttheme: ChartTheme.WHITE,\n\ttooltip: baseTooltip,\n\tlegend,\n\tstyle: {\n\t\tprefix: 'cc',\n\t},\n\tdata: {\n\t\tgroupMapsTo: 'group',\n\t\tloading: false,\n\t\tselectedGroups: [],\n\t},\n\tcolor: {\n\t\tscale: null,\n\t\tpairing: {\n\t\t\tnumberOfVariants: null,\n\t\t\toption: 1,\n\t\t},\n\t\tgradient: {\n\t\t\tenabled: false,\n\t\t},\n\t},\n\ttoolbar: {\n\t\tenabled: true,\n\t\tnumberOfIcons: 3,\n\t\tcontrols: [\n\t\t\t{\n\t\t\t\ttype: ToolbarControlTypes.SHOW_AS_DATATABLE,\n\t\t\t},\n\t\t\t...(isFullScreenEnabled\n\t\t\t\t? [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\ttype: ToolbarControlTypes.MAKE_FULLSCREEN,\n\t\t\t\t\t\t},\n\t\t\t\t ]\n\t\t\t\t: []),\n\t\t\t{\n\t\t\t\ttype: ToolbarControlTypes.EXPORT_CSV,\n\t\t\t},\n\t\t\t{\n\t\t\t\ttype: ToolbarControlTypes.EXPORT_PNG,\n\t\t\t},\n\t\t\t{\n\t\t\t\ttype: ToolbarControlTypes.EXPORT_JPG,\n\t\t\t},\n\t\t],\n\t} as ToolbarOptions,\n};\n\n/**\n * Options common to any chart with an axis\n */\nconst axisChart: AxisChartOptions = Tools.merge({}, chart, {\n\taxes,\n\ttimeScale,\n\tgrid,\n\truler,\n\tzoomBar: {\n\t\tzoomRatio: 0.4,\n\t\tminZoomRatio: 0.01,\n\t\ttop: {\n\t\t\tenabled: false,\n\t\t\ttype: ZoomBarTypes.GRAPH_VIEW,\n\t\t},\n\t} as ZoomBarsOptions,\n} as AxisChartOptions);\n\n/**\n * options specific to simple bar charts\n */\nconst baseBarChart: BarChartOptions = Tools.merge({}, axisChart, {\n\tbars: {\n\t\tmaxWidth: 16,\n\t\tspacingFactor: 0.25,\n\t},\n\ttimeScale: Tools.merge(timeScale, {\n\t\taddSpaceOnEdges: 1,\n\t} as TimeScaleOptions),\n} as BarChartOptions);\n\n/**\n * options specific to simple bar charts\n */\nconst simpleBarChart: BarChartOptions = Tools.merge(\n\t{},\n\tbaseBarChart,\n\t{} as BarChartOptions\n);\n\n/**\n * options specific to simple bar charts\n */\nconst groupedBarChart: BarChartOptions = Tools.merge(\n\t{},\n\tbaseBarChart,\n\t{} as BarChartOptions\n);\n\n/**\n * options specific to stacked bar charts\n */\nconst stackedBarChart: StackedBarChartOptions = Tools.merge({}, baseBarChart, {\n\tbars: Tools.merge({}, baseBarChart.bars, {\n\t\tdividerSize: 1.5,\n\t} as StackedBarOptions),\n} as BarChartOptions);\n\n/**\n * options specific to boxplot charts\n */\nconst boxplotChart: BoxplotChartOptions = Tools.merge(\n\t{},\n\tbaseBarChart,\n\t{} as BarChartOptions\n);\n\n/**\n * options specific to scatter charts\n */\nconst scatterChart: ScatterChartOptions = Tools.merge({}, axisChart, {\n\tpoints: {\n\t\t// default point radius to 4\n\t\tradius: 4,\n\t\tfillOpacity: 0.3,\n\t\tfilled: true,\n\t\tenabled: true,\n\t},\n} as ScatterChartOptions);\n\n/**\n * options specific to lollipop charts\n */\nconst lollipopChart: LollipopChartOptions = scatterChart as LollipopChartOptions;\n\n/**\n * options specific to line charts\n */\nconst lineChart: LineChartOptions = Tools.merge({}, scatterChart, {\n\tpoints: {\n\t\t// default point radius to 3\n\t\tradius: 3,\n\t\tfilled: false,\n\t\tenabled: true,\n\t},\n} as LineChartOptions);\n\n/**\n * options specific to area charts\n */\nconst areaChart: AreaChartOptions = Tools.merge({}, lineChart, {\n\ttimeScale: Tools.merge(timeScale, {\n\t\taddSpaceOnEdges: 0,\n\t} as TimeScaleOptions),\n} as LineChartOptions);\n\n/**\n * options specific to stacked area charts\n */\nconst stackedAreaChart = areaChart;\n\n/**\n * options specific to bubble charts\n */\nconst bubbleChart: BubbleChartOptions = Tools.merge({}, axisChart, {\n\tbubble: {\n\t\tradiusMapsTo: 'radius',\n\t\tradiusLabel: 'Radius',\n\t\tradiusRange: (chartSize, data) => {\n\t\t\tconst smallerChartDimension = Math.min(\n\t\t\t\tchartSize.width,\n\t\t\t\tchartSize.height\n\t\t\t);\n\t\t\treturn [\n\t\t\t\t(smallerChartDimension * 3) / 400,\n\t\t\t\t(smallerChartDimension * 25) / 400,\n\t\t\t];\n\t\t},\n\t\tfillOpacity: 0.2,\n\t\tenabled: true,\n\t},\n\tpoints: {\n\t\tfilled: true,\n\t},\n\tlegend: {\n\t\tadditionalItems: [\n\t\t\t{\n\t\t\t\ttype: LegendItemType.RADIUS,\n\t\t\t\tname: 'Radius',\n\t\t\t},\n\t\t],\n\t},\n} as BubbleChartOptions);\n\n/**\n * options specific to bullet charts\n */\nconst bulletChart: BulletChartOptions = Tools.merge({}, axisChart, {\n\tbullet: {\n\t\tperformanceAreaTitles: ['Poor', 'Satisfactory', 'Great'],\n\t},\n\tgrid: {\n\t\tx: {\n\t\t\tenabled: false,\n\t\t},\n\t\ty: {\n\t\t\tenabled: false,\n\t\t},\n\t},\n\tlegend: {\n\t\tadditionalItems: [\n\t\t\t{\n\t\t\t\ttype: LegendItemType.AREA,\n\t\t\t\tname: 'Poor area',\n\t\t\t},\n\t\t\t{\n\t\t\t\ttype: LegendItemType.AREA,\n\t\t\t\tname: 'Satisfactory area',\n\t\t\t},\n\t\t\t{\n\t\t\t\ttype: LegendItemType.AREA,\n\t\t\t\tname: 'Great area',\n\t\t\t},\n\t\t\t{\n\t\t\t\ttype: LegendItemType.QUARTILE,\n\t\t\t\tname: 'Quartiles',\n\t\t\t},\n\t\t],\n\t},\n} as BulletChartOptions);\n\n/**\n * options specific to stacked bar charts\n */\nconst histogramChart: HistogramChartOptions = Tools.merge({}, baseBarChart, {\n\tbars: {\n\t\tdividerSize: 1.5,\n\t} as StackedBarOptions,\n\ttimeScale: Tools.merge(timeScale, {\n\t\taddSpaceOnEdges: 0,\n\t} as TimeScaleOptions),\n} as BarChartOptions);\n\n/*\n * options specific to word cloud charts\n */\nconst wordCloudChart: WorldCloudChartOptions = Tools.merge({}, chart, {\n\ttooltip: Tools.merge({}, baseTooltip, {\n\t\twordLabel: 'Word',\n\t\tvalueLabel: 'Value',\n\t}) as WordCloudChartTooltipOptions,\n\twordCloud: {\n\t\tfontSizeMapsTo: 'value',\n\t\tfontSizeRange: (chartSize, data) => {\n\t\t\tconst smallerChartDimension = Math.min(\n\t\t\t\tchartSize.width,\n\t\t\t\tchartSize.height\n\t\t\t);\n\t\t\treturn [\n\t\t\t\t(smallerChartDimension * 20) / 400,\n\t\t\t\t(smallerChartDimension * 75) / 400,\n\t\t\t];\n\t\t},\n\t\twordMapsTo: 'word',\n\t},\n} as WorldCloudChartOptions);\n\n/**\n * options specific to pie charts\n */\nconst pieChart: PieChartOptions = Tools.merge({}, chart, {\n\tpie: {\n\t\tlabels: {\n\t\t\tformatter: null,\n\t\t\tenabled: true,\n\t\t},\n\t\talignment: Alignments.LEFT,\n\t\tsortFunction: null,\n\t\tvalueMapsTo: 'value',\n\t},\n} as PieChartOptions);\n\n/**\n * options specific to gauge charts\n */\nconst gaugeChart: GaugeChartOptions = Tools.merge({}, chart, {\n\tlegend: {\n\t\tenabled: false,\n\t},\n\tgauge: {\n\t\ttype: GaugeTypes.SEMI,\n\t\tarcWidth: 16,\n\t\tdeltaArrow: {\n\t\t\tsize: (radius) => radius / 8,\n\t\t\tenabled: true,\n\t\t},\n\t\tshowPercentageSymbol: true,\n\t\tstatus: null,\n\t\tnumberSpacing: 10,\n\t\tdeltaFontSize: (radius) => radius / 8,\n\t\tvalueFontSize: (radius) => radius / 2.5,\n\t\tnumberFormatter: (number) =>\n\t\t\tnumber.toFixed(2) % 1 !== 0\n\t\t\t\t? number.toFixed(2).toLocaleString()\n\t\t\t\t: number.toFixed().toLocaleString(),\n\t\talignment: Alignments.LEFT,\n\t},\n} as GaugeChartOptions);\n\n/**\n * options specific to donut charts\n */\nconst donutChart: DonutChartOptions = Tools.merge({}, pieChart, {\n\tdonut: {\n\t\tcenter: {\n\t\t\tnumberFontSize: (radius) =>\n\t\t\t\tMath.min((radius / 100) * 24, 24) + 'px',\n\t\t\ttitleFontSize: (radius) => Math.min((radius / 100) * 15, 15) + 'px',\n\t\t\ttitleYPosition: (radius) => Math.min((radius / 80) * 20, 20),\n\t\t\tnumberFormatter: (number) => Math.floor(number).toLocaleString(),\n\t\t},\n\t\talignment: Alignments.LEFT,\n\t},\n} as DonutChartOptions);\n\nconst meterChart: MeterChartOptions = Tools.merge({}, chart, {\n\tlegend: {\n\t\tenabled: false,\n\t\tclickable: false,\n\t},\n\tmeter: {\n\t\tshowLabels: true,\n\t\tproportional: null,\n\t\tstatusBar: {\n\t\t\tpercentageIndicator: {\n\t\t\t\tenabled: true,\n\t\t\t},\n\t\t},\n\t},\n} as MeterChartOptions);\n\nconst proportionalMeterChart: ProportionalMeterChartOptions = Tools.merge(\n\t{},\n\tmeterChart,\n\t{\n\t\tlegend: {\n\t\t\tenabled: true,\n\t\t},\n\t} as MeterChartOptions\n);\n\n/**\n * options specific to radar charts\n */\nconst radarChart: RadarChartOptions = Tools.merge({}, chart, {\n\tradar: {\n\t\taxes: {\n\t\t\tangle: 'key',\n\t\t\tvalue: 'value',\n\t\t},\n\t\talignment: Alignments.LEFT,\n\t},\n\ttooltip: {\n\t\tgridline: {\n\t\t\tenabled: true,\n\t\t},\n\t\tvalueFormatter: (value) =>\n\t\t\tvalue !== null && value !== undefined ? value : 'N/A',\n\t},\n} as RadarChartOptions);\n\n/**\n * options specific to combo charts\n */\nconst comboChart: ComboChartOptions = Tools.merge({}, baseBarChart, {\n\tcomboChartTypes: [],\n} as ComboChartOptions);\n\n/*\n * options specific to tree charts\n */\nconst treeChart: TreeChartOptions = Tools.merge(\n\t{\n\t\ttree: {\n\t\t\ttype: TreeTypes.TREE,\n\t\t},\n\t},\n\tchart,\n\t{} as TreeChartOptions\n);\n\n/*\n * options specific to treemap charts\n */\nconst treemapChart: TreemapChartOptions = Tools.merge({}, chart, {\n\tdata: Tools.merge(chart.data, {\n\t\tgroupMapsTo: 'name',\n\t}),\n} as TreemapChartOptions);\n\n/*\n * options specific to circle pack charts\n */\nconst circlePackChart: CirclePackChartOptions = Tools.merge(\n\t{},\n\tchart,\n\tcirclePack,\n\t{\n\t\tdata: Tools.merge(chart.data, {\n\t\t\tgroupMapsTo: 'name',\n\t\t}),\n\t} as CirclePackChartOptions\n);\n\nconst alluvialChart: AlluvialChartOptions = Tools.merge({}, chart, {\n\talluvial: {\n\t\tdata: Tools.merge(chart.data, {\n\t\t\tgroupMapsTo: 'source',\n\t\t}),\n\t\tnodeAlignment: Alignments.CENTER,\n\t\tnodePadding: 24,\n\t\tmonochrome: false,\n\t\tnodes: [],\n\t},\n} as AlluvialChartOptions);\n\nconst heatmapChart: HeatmapChartOptions = Tools.merge({}, chart, {\n\taxes,\n\theatmap: {\n\t\tdivider: {\n\t\t\tstate: DividerStatus.AUTO,\n\t\t},\n\t\tcolorLegend: {\n\t\t\ttype: 'linear',\n\t\t},\n\t},\n} as HeatmapChartOptions);\n\nexport const options = {\n\tchart,\n\taxisChart,\n\tsimpleBarChart,\n\tgroupedBarChart,\n\tstackedBarChart,\n\tboxplotChart,\n\tbubbleChart,\n\tbulletChart,\n\thistogramChart,\n\tlineChart,\n\tareaChart,\n\tstackedAreaChart,\n\tscatterChart,\n\tlollipopChart,\n\tpieChart,\n\tdonutChart,\n\tmeterChart,\n\tproportionalMeterChart,\n\tradarChart,\n\tgaugeChart,\n\tcomboChart,\n\ttreeChart,\n\ttreemapChart,\n\tcirclePackChart,\n\twordCloudChart,\n\talluvialChart,\n\theatmapChart,\n};\n\nexport * from './configuration-non-customizable';\n"]}
|
|
1
|
+
{"version":3,"file":"configuration.js","sourceRoot":"","sources":["configuration.ts"],"names":[],"mappings":"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","sourcesContent":["import * as Tools from './tools';\nimport {\n\tBaseChartOptions,\n\tAxisChartOptions,\n\tScatterChartOptions,\n\tLollipopChartOptions,\n\tLineChartOptions,\n\tBarChartOptions,\n\tStackedBarChartOptions,\n\tBoxplotChartOptions,\n\tAreaChartOptions,\n\tPieChartOptions,\n\tGaugeChartOptions,\n\tDonutChartOptions,\n\tBubbleChartOptions,\n\tBulletChartOptions,\n\tHistogramChartOptions,\n\tRadarChartOptions,\n\tComboChartOptions,\n\tTreeChartOptions,\n\tTreemapChartOptions,\n\tCirclePackChartOptions,\n\tWorldCloudChartOptions,\n\tAlluvialChartOptions,\n\tThematicChartOptions,\n\tChoroplethChartOptions,\n\t// Components\n\tAxisOptions,\n\tGridOptions,\n\tRulerOptions,\n\tAxesOptions,\n\tTimeScaleOptions,\n\tTooltipOptions,\n\tWordCloudChartTooltipOptions,\n\tLegendOptions,\n\tStackedBarOptions,\n\tMeterChartOptions,\n\tProportionalMeterChartOptions,\n\tToolbarOptions,\n\tZoomBarsOptions,\n\t// ENUMS\n\tAlignments,\n\tGaugeTypes,\n\tLegendPositions,\n\tTruncationTypes,\n\tToolbarControlTypes,\n\tZoomBarTypes,\n\tLegendItemType,\n\tTreeTypes,\n\tHeatmapChartOptions,\n\tDividerStatus,\n\tChartTheme,\n\tProjection,\n} from './interfaces';\nimport enUSLocaleObject from 'date-fns/locale/en-US/index';\nimport { circlePack } from './configuration-non-customizable';\n\n/*\n *****************************\n * User configurable options *\n *****************************\n */\n\n/**\n * Default truncation configuration\n */\nconst standardTruncationOptions = {\n\ttype: TruncationTypes.END_LINE,\n\tthreshold: 16,\n\tnumCharacter: 14,\n};\n\n/**\n * Legend options\n */\nconst legend: LegendOptions = {\n\tenabled: true,\n\tposition: LegendPositions.BOTTOM,\n\tclickable: true,\n\ttruncation: standardTruncationOptions,\n\talignment: Alignments.LEFT,\n\torder: null,\n\tadditionalItems: [],\n};\n\n/**\n * Grid options\n */\nexport const grid: GridOptions = {\n\tx: {\n\t\t// set enable to false will not draw grid and stroke of grid backdrop\n\t\tenabled: true,\n\t\tnumberOfTicks: 15,\n\t\talignWithAxisTicks: false,\n\t},\n\ty: {\n\t\t// set enable to false will not draw grid and stroke of grid backdrop\n\t\tenabled: true,\n\t\tnumberOfTicks: 5,\n\t\talignWithAxisTicks: false,\n\t},\n};\n\n/**\n * Ruler options\n */\nexport const ruler: RulerOptions = {\n\t// enable or disable ruler\n\tenabled: true,\n};\n\n/**\n * Tooltip options\n */\nexport const baseTooltip: TooltipOptions = {\n\tenabled: true,\n\tshowTotal: true,\n\ttruncation: standardTruncationOptions,\n\tgroupLabel: 'Group',\n};\n\n// These options will be managed by Tools.mergeDefaultChartOptions\n// by removing the ones the user is not providing,\n// and by TwoDimensionalAxes.\nconst axes: AxesOptions<AxisOptions> = {\n\ttop: {\n\t\tvisible: true,\n\t\tincludeZero: true,\n\t\ttruncation: standardTruncationOptions,\n\t},\n\tbottom: {\n\t\tvisible: true,\n\t\tincludeZero: true,\n\t\ttruncation: standardTruncationOptions,\n\t},\n\tleft: {\n\t\tvisible: true,\n\t\tincludeZero: true,\n\t\ttruncation: standardTruncationOptions,\n\t},\n\tright: {\n\t\tvisible: true,\n\t\tincludeZero: true,\n\t\ttruncation: standardTruncationOptions,\n\t},\n};\n\nexport const timeScale: TimeScaleOptions = {\n\taddSpaceOnEdges: 1,\n\tshowDayName: false,\n\tlocaleObject: enUSLocaleObject,\n\ttimeIntervalFormats: {\n\t\t'15seconds': { primary: 'MMM d, pp', secondary: 'pp' },\n\t\tminute: { primary: 'MMM d, p', secondary: 'p' },\n\t\t'30minutes': { primary: 'MMM d, p', secondary: 'p' },\n\t\thourly: { primary: 'MMM d, hh a', secondary: 'hh a' },\n\t\tdaily: { primary: 'MMM d', secondary: 'd' },\n\t\tweekly: { primary: 'eee, MMM d', secondary: 'eee' },\n\t\tmonthly: { primary: 'MMM yyyy', secondary: 'MMM' },\n\t\tquarterly: { primary: \"QQQ ''yy\", secondary: 'QQQ' },\n\t\tyearly: { primary: 'yyyy', secondary: 'yyyy' },\n\t},\n};\n\nconst isFullScreenEnabled =\n\ttypeof document !== 'undefined' &&\n\t(document['fullscreenEnabled'] ||\n\t\tdocument['webkitFullscreenEnabled'] ||\n\t\tdocument['mozFullScreenEnabled'] ||\n\t\tdocument['msFullscreenEnabled']);\n\n/**\n * Base chart options common to any chart\n */\nconst chart: BaseChartOptions = {\n\twidth: null,\n\theight: null,\n\tresizable: true,\n\ttheme: ChartTheme.WHITE,\n\ttooltip: baseTooltip,\n\tlegend,\n\tstyle: {\n\t\tprefix: 'cc',\n\t},\n\tdata: {\n\t\tgroupMapsTo: 'group',\n\t\tloading: false,\n\t\tselectedGroups: [],\n\t},\n\tcolor: {\n\t\tscale: null,\n\t\tpairing: {\n\t\t\tnumberOfVariants: null,\n\t\t\toption: 1,\n\t\t},\n\t\tgradient: {\n\t\t\tenabled: false,\n\t\t},\n\t},\n\ttoolbar: {\n\t\tenabled: true,\n\t\tnumberOfIcons: 3,\n\t\tcontrols: [\n\t\t\t{\n\t\t\t\ttype: ToolbarControlTypes.SHOW_AS_DATATABLE,\n\t\t\t},\n\t\t\t...(isFullScreenEnabled\n\t\t\t\t? [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\ttype: ToolbarControlTypes.MAKE_FULLSCREEN,\n\t\t\t\t\t\t},\n\t\t\t\t ]\n\t\t\t\t: []),\n\t\t\t{\n\t\t\t\ttype: ToolbarControlTypes.EXPORT_CSV,\n\t\t\t},\n\t\t\t{\n\t\t\t\ttype: ToolbarControlTypes.EXPORT_PNG,\n\t\t\t},\n\t\t\t{\n\t\t\t\ttype: ToolbarControlTypes.EXPORT_JPG,\n\t\t\t},\n\t\t],\n\t} as ToolbarOptions,\n};\n\n/**\n * Options common to any thematic chart\n */\nconst thematicChart: ThematicChartOptions = Tools.merge({}, chart, {\n\tthematic: {\n\t\tprojection: Projection.geoNaturalEarth1,\n\t},\n});\n\n/**\n * Options common to any chart with an axis\n */\nconst axisChart: AxisChartOptions = Tools.merge({}, chart, {\n\taxes,\n\ttimeScale,\n\tgrid,\n\truler,\n\tzoomBar: {\n\t\tzoomRatio: 0.4,\n\t\tminZoomRatio: 0.01,\n\t\ttop: {\n\t\t\tenabled: false,\n\t\t\ttype: ZoomBarTypes.GRAPH_VIEW,\n\t\t},\n\t} as ZoomBarsOptions,\n} as AxisChartOptions);\n\n/**\n * options specific to simple bar charts\n */\nconst baseBarChart: BarChartOptions = Tools.merge({}, axisChart, {\n\tbars: {\n\t\tmaxWidth: 16,\n\t\tspacingFactor: 0.25,\n\t},\n\ttimeScale: Tools.merge(timeScale, {\n\t\taddSpaceOnEdges: 1,\n\t} as TimeScaleOptions),\n} as BarChartOptions);\n\n/**\n * options specific to simple bar charts\n */\nconst simpleBarChart: BarChartOptions = Tools.merge(\n\t{},\n\tbaseBarChart,\n\t{} as BarChartOptions\n);\n\n/**\n * options specific to simple bar charts\n */\nconst groupedBarChart: BarChartOptions = Tools.merge(\n\t{},\n\tbaseBarChart,\n\t{} as BarChartOptions\n);\n\n/**\n * options specific to stacked bar charts\n */\nconst stackedBarChart: StackedBarChartOptions = Tools.merge({}, baseBarChart, {\n\tbars: Tools.merge({}, baseBarChart.bars, {\n\t\tdividerSize: 1.5,\n\t} as StackedBarOptions),\n} as BarChartOptions);\n\n/**\n * options specific to boxplot charts\n */\nconst boxplotChart: BoxplotChartOptions = Tools.merge(\n\t{},\n\tbaseBarChart,\n\t{} as BarChartOptions\n);\n\n/**\n * options specific to scatter charts\n */\nconst scatterChart: ScatterChartOptions = Tools.merge({}, axisChart, {\n\tpoints: {\n\t\t// default point radius to 4\n\t\tradius: 4,\n\t\tfillOpacity: 0.3,\n\t\tfilled: true,\n\t\tenabled: true,\n\t},\n} as ScatterChartOptions);\n\n/**\n * options specific to lollipop charts\n */\nconst lollipopChart: LollipopChartOptions = scatterChart as LollipopChartOptions;\n\n/**\n * options specific to line charts\n */\nconst lineChart: LineChartOptions = Tools.merge({}, scatterChart, {\n\tpoints: {\n\t\t// default point radius to 3\n\t\tradius: 3,\n\t\tfilled: false,\n\t\tenabled: true,\n\t},\n} as LineChartOptions);\n\n/**\n * options specific to area charts\n */\nconst areaChart: AreaChartOptions = Tools.merge({}, lineChart, {\n\ttimeScale: Tools.merge(timeScale, {\n\t\taddSpaceOnEdges: 0,\n\t} as TimeScaleOptions),\n} as LineChartOptions);\n\n/**\n * options specific to stacked area charts\n */\nconst stackedAreaChart = areaChart;\n\n/**\n * options specific to bubble charts\n */\nconst bubbleChart: BubbleChartOptions = Tools.merge({}, axisChart, {\n\tbubble: {\n\t\tradiusMapsTo: 'radius',\n\t\tradiusLabel: 'Radius',\n\t\tradiusRange: (chartSize, data) => {\n\t\t\tconst smallerChartDimension = Math.min(\n\t\t\t\tchartSize.width,\n\t\t\t\tchartSize.height\n\t\t\t);\n\t\t\treturn [\n\t\t\t\t(smallerChartDimension * 3) / 400,\n\t\t\t\t(smallerChartDimension * 25) / 400,\n\t\t\t];\n\t\t},\n\t\tfillOpacity: 0.2,\n\t\tenabled: true,\n\t},\n\tpoints: {\n\t\tfilled: true,\n\t},\n\tlegend: {\n\t\tadditionalItems: [\n\t\t\t{\n\t\t\t\ttype: LegendItemType.RADIUS,\n\t\t\t\tname: 'Radius',\n\t\t\t},\n\t\t],\n\t},\n} as BubbleChartOptions);\n\n/**\n * options specific to bullet charts\n */\nconst bulletChart: BulletChartOptions = Tools.merge({}, axisChart, {\n\tbullet: {\n\t\tperformanceAreaTitles: ['Poor', 'Satisfactory', 'Great'],\n\t},\n\tgrid: {\n\t\tx: {\n\t\t\tenabled: false,\n\t\t},\n\t\ty: {\n\t\t\tenabled: false,\n\t\t},\n\t},\n\tlegend: {\n\t\tadditionalItems: [\n\t\t\t{\n\t\t\t\ttype: LegendItemType.AREA,\n\t\t\t\tname: 'Poor area',\n\t\t\t},\n\t\t\t{\n\t\t\t\ttype: LegendItemType.AREA,\n\t\t\t\tname: 'Satisfactory area',\n\t\t\t},\n\t\t\t{\n\t\t\t\ttype: LegendItemType.AREA,\n\t\t\t\tname: 'Great area',\n\t\t\t},\n\t\t\t{\n\t\t\t\ttype: LegendItemType.QUARTILE,\n\t\t\t\tname: 'Quartiles',\n\t\t\t},\n\t\t],\n\t},\n} as BulletChartOptions);\n\n/**\n * options specific to stacked bar charts\n */\nconst histogramChart: HistogramChartOptions = Tools.merge({}, baseBarChart, {\n\tbars: {\n\t\tdividerSize: 1.5,\n\t} as StackedBarOptions,\n\ttimeScale: Tools.merge(timeScale, {\n\t\taddSpaceOnEdges: 0,\n\t} as TimeScaleOptions),\n} as BarChartOptions);\n\n/*\n * options specific to word cloud charts\n */\nconst wordCloudChart: WorldCloudChartOptions = Tools.merge({}, chart, {\n\ttooltip: Tools.merge({}, baseTooltip, {\n\t\twordLabel: 'Word',\n\t\tvalueLabel: 'Value',\n\t}) as WordCloudChartTooltipOptions,\n\twordCloud: {\n\t\tfontSizeMapsTo: 'value',\n\t\tfontSizeRange: (chartSize, data) => {\n\t\t\tconst smallerChartDimension = Math.min(\n\t\t\t\tchartSize.width,\n\t\t\t\tchartSize.height\n\t\t\t);\n\t\t\treturn [\n\t\t\t\t(smallerChartDimension * 20) / 400,\n\t\t\t\t(smallerChartDimension * 75) / 400,\n\t\t\t];\n\t\t},\n\t\twordMapsTo: 'word',\n\t},\n} as WorldCloudChartOptions);\n\n/**\n * options specific to pie charts\n */\nconst pieChart: PieChartOptions = Tools.merge({}, chart, {\n\tpie: {\n\t\tlabels: {\n\t\t\tformatter: null,\n\t\t\tenabled: true,\n\t\t},\n\t\talignment: Alignments.LEFT,\n\t\tsortFunction: null,\n\t\tvalueMapsTo: 'value',\n\t},\n} as PieChartOptions);\n\n/**\n * options specific to gauge charts\n */\nconst gaugeChart: GaugeChartOptions = Tools.merge({}, chart, {\n\tlegend: {\n\t\tenabled: false,\n\t},\n\tgauge: {\n\t\ttype: GaugeTypes.SEMI,\n\t\tarcWidth: 16,\n\t\tdeltaArrow: {\n\t\t\tsize: (radius) => radius / 8,\n\t\t\tenabled: true,\n\t\t},\n\t\tshowPercentageSymbol: true,\n\t\tstatus: null,\n\t\tnumberSpacing: 10,\n\t\tdeltaFontSize: (radius) => radius / 8,\n\t\tvalueFontSize: (radius) => radius / 2.5,\n\t\tnumberFormatter: (number) =>\n\t\t\tnumber.toFixed(2) % 1 !== 0\n\t\t\t\t? number.toFixed(2).toLocaleString()\n\t\t\t\t: number.toFixed().toLocaleString(),\n\t\talignment: Alignments.LEFT,\n\t},\n} as GaugeChartOptions);\n\n/**\n * options specific to donut charts\n */\nconst donutChart: DonutChartOptions = Tools.merge({}, pieChart, {\n\tdonut: {\n\t\tcenter: {\n\t\t\tnumberFontSize: (radius) =>\n\t\t\t\tMath.min((radius / 100) * 24, 24) + 'px',\n\t\t\ttitleFontSize: (radius) => Math.min((radius / 100) * 15, 15) + 'px',\n\t\t\ttitleYPosition: (radius) => Math.min((radius / 80) * 20, 20),\n\t\t\tnumberFormatter: (number) => Math.floor(number).toLocaleString(),\n\t\t},\n\t\talignment: Alignments.LEFT,\n\t},\n} as DonutChartOptions);\n\nconst meterChart: MeterChartOptions = Tools.merge({}, chart, {\n\tlegend: {\n\t\tenabled: false,\n\t\tclickable: false,\n\t},\n\tmeter: {\n\t\tshowLabels: true,\n\t\tproportional: null,\n\t\tstatusBar: {\n\t\t\tpercentageIndicator: {\n\t\t\t\tenabled: true,\n\t\t\t},\n\t\t},\n\t},\n} as MeterChartOptions);\n\nconst proportionalMeterChart: ProportionalMeterChartOptions = Tools.merge(\n\t{},\n\tmeterChart,\n\t{\n\t\tlegend: {\n\t\t\tenabled: true,\n\t\t},\n\t} as MeterChartOptions\n);\n\n/**\n * options specific to radar charts\n */\nconst radarChart: RadarChartOptions = Tools.merge({}, chart, {\n\tradar: {\n\t\taxes: {\n\t\t\tangle: 'key',\n\t\t\tvalue: 'value',\n\t\t},\n\t\talignment: Alignments.LEFT,\n\t},\n\ttooltip: {\n\t\tgridline: {\n\t\t\tenabled: true,\n\t\t},\n\t\tvalueFormatter: (value) =>\n\t\t\tvalue !== null && value !== undefined ? value : 'N/A',\n\t},\n} as RadarChartOptions);\n\n/**\n * options specific to combo charts\n */\nconst comboChart: ComboChartOptions = Tools.merge({}, baseBarChart, {\n\tcomboChartTypes: [],\n} as ComboChartOptions);\n\n/*\n * options specific to tree charts\n */\nconst treeChart: TreeChartOptions = Tools.merge(\n\t{\n\t\ttree: {\n\t\t\ttype: TreeTypes.TREE,\n\t\t},\n\t},\n\tchart,\n\t{} as TreeChartOptions\n);\n\n/*\n * options specific to treemap charts\n */\nconst treemapChart: TreemapChartOptions = Tools.merge({}, chart, {\n\tdata: Tools.merge(chart.data, {\n\t\tgroupMapsTo: 'name',\n\t}),\n} as TreemapChartOptions);\n\n/*\n * options specific to circle pack charts\n */\nconst circlePackChart: CirclePackChartOptions = Tools.merge(\n\t{},\n\tchart,\n\tcirclePack,\n\t{\n\t\tdata: Tools.merge(chart.data, {\n\t\t\tgroupMapsTo: 'name',\n\t\t}),\n\t} as CirclePackChartOptions\n);\n\nconst alluvialChart: AlluvialChartOptions = Tools.merge({}, chart, {\n\talluvial: {\n\t\tdata: Tools.merge(chart.data, {\n\t\t\tgroupMapsTo: 'source',\n\t\t}),\n\t\tnodeAlignment: Alignments.CENTER,\n\t\tnodePadding: 24,\n\t\tmonochrome: false,\n\t\tnodes: [],\n\t},\n} as AlluvialChartOptions);\n\nconst heatmapChart: HeatmapChartOptions = Tools.merge({}, chart, {\n\taxes,\n\theatmap: {\n\t\tdivider: {\n\t\t\tstate: DividerStatus.AUTO,\n\t\t},\n\t\tcolorLegend: {\n\t\t\ttype: 'linear',\n\t\t},\n\t},\n} as HeatmapChartOptions);\n\nconst choroplethChart: ChoroplethChartOptions = Tools.merge({}, thematicChart, {\n\tchoropleth: {\n\t\tcolorLegend: {\n\t\t\ttype: 'linear',\n\t\t},\n\t},\n} as ChoroplethChartOptions);\n\nexport const options = {\n\tchart,\n\taxisChart,\n\tthematicChart,\n\tsimpleBarChart,\n\tgroupedBarChart,\n\tstackedBarChart,\n\tboxplotChart,\n\tbubbleChart,\n\tbulletChart,\n\thistogramChart,\n\tlineChart,\n\tareaChart,\n\tstackedAreaChart,\n\tscatterChart,\n\tlollipopChart,\n\tpieChart,\n\tdonutChart,\n\tmeterChart,\n\tproportionalMeterChart,\n\tradarChart,\n\tgaugeChart,\n\tcomboChart,\n\ttreeChart,\n\ttreemapChart,\n\tcirclePackChart,\n\twordCloudChart,\n\talluvialChart,\n\theatmapChart,\n\tchoroplethChart,\n};\n\nexport * from './configuration-non-customizable';\n"]}
|
|
@@ -1,3 +1,14 @@
|
|
|
1
|
+
var __assign = (this && this.__assign) || function () {
|
|
2
|
+
__assign = Object.assign || function(t) {
|
|
3
|
+
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
4
|
+
s = arguments[i];
|
|
5
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
|
6
|
+
t[p] = s[p];
|
|
7
|
+
}
|
|
8
|
+
return t;
|
|
9
|
+
};
|
|
10
|
+
return __assign.apply(this, arguments);
|
|
11
|
+
};
|
|
1
12
|
import { getParameters } from 'codesandbox/lib/api/define';
|
|
2
13
|
var packageJSON = require('@carbon/charts/package.json');
|
|
3
14
|
var libraryVersion = packageJSON.version;
|
|
@@ -11,10 +22,17 @@ export var createChartSandbox = function (chartTemplate) {
|
|
|
11
22
|
};
|
|
12
23
|
export var createVanillaChartApp = function (demo) {
|
|
13
24
|
var chartData = JSON.stringify(demo.data, null, '\t');
|
|
14
|
-
var
|
|
25
|
+
var isGeoDemo = demo.options.geoData;
|
|
26
|
+
var _demoOptions = __assign({}, demo.options);
|
|
27
|
+
if (isGeoDemo) {
|
|
28
|
+
delete _demoOptions.geoData;
|
|
29
|
+
}
|
|
30
|
+
var chartOptions = JSON.stringify(_demoOptions, null, isGeoDemo ? '\t\t\t' : '\t');
|
|
15
31
|
var chartComponent = demo.chartType.vanilla;
|
|
16
32
|
var indexHtml = "<html>\n\t<head>\n\t\t<title>Parcel Sandbox</title>\n\t\t<meta charset=\"UTF-8\" />\n\t\t<link\n\t\t\trel=\"preconnect\"\n\t\t\tcrossorigin=\"anonymous\"\n\t\t\thref=\"https://fonts.gstatic.com\"\n\t\t/>\n\n\t\t<link\n\t\t\thref=\"https://fonts.googleapis.com/css?family=IBM+Plex+Sans+Condensed:300,400|IBM+Plex+Sans:400,600&display=swap\"\n\t\t\trel=\"stylesheet\"\n\t\t\tcrossorigin=\"anonymous\"\n\t\t/>\n\t</head>\n\t<body>\n\t\t<div id=\"app\" style=\"width: 100%; height: 100%;\"></div>\n\n\t\t<script src=\"src/index.js\"></script>\n\t</body>\n</html>";
|
|
17
|
-
var indexJs = carbonStylesImport + "\n\nimport \"@carbon/charts/styles.css\";\nimport { " + chartComponent + " } from \"@carbon/charts\";\n\
|
|
33
|
+
var indexJs = carbonStylesImport + "\n\nimport \"@carbon/charts/styles.css\";\nimport { " + chartComponent + " } from \"@carbon/charts\";\n\n" + (isGeoDemo ? 'import * as d3 from "d3";' : '') + "\n\nconst data = " + chartData + ";\n\n" + (isGeoDemo
|
|
34
|
+
? "\n/* this data is only used for demo purposes, and is not an accurate representation of the world map */\nd3.json(\n \"https://raw.githubusercontent.com/Akshat55/carbon-charts/c565fc9ed1364465b641e7e3f2149f0631f0fd0b/packages/core/demo/data/topojson-110-data.json\",\n function (error, topoData) {\n\t\tif (error) throw error;\n\n\t\tconst options = {\n\t\t\t\"geoData\": topoData," + chartOptions.slice(1, -1) + "};\n\n\t\t// Grab chart holder HTML element and initialize the chart\n\t\tconst chartHolder = document.getElementById(\"app\");\n\t\tnew " + chartComponent + "(chartHolder, {\n\t\t\tdata,\n\t\t\toptions\n\t\t});\n }\n);\n"
|
|
35
|
+
: "\nconst options = " + chartOptions + ";\n\n// Grab chart holder HTML element and initialize the chart\nconst chartHolder = document.getElementById(\"app\");\nnew " + chartComponent + "(chartHolder, {\n\tdata,\n\toptions\n});") + "\n\n";
|
|
18
36
|
var packageJson = {
|
|
19
37
|
scripts: {
|
|
20
38
|
start: 'parcel index.html --open',
|