@carbon/charts 1.6.7 → 1.6.8

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.
@@ -211,70 +211,78 @@ var Gauge = /** @class */ (function (_super) {
211
211
  var svg = this.getComponentContainer();
212
212
  var options = this.getOptions();
213
213
  var delta = this.getDelta();
214
- // Sizing and positions relative to the radius
215
- var radius = this.computeRadius();
216
- var deltaFontSize = delta
217
- ? Tools.getProperty(options, 'gauge', 'deltaFontSize')
218
- : function () { return 0; };
219
- // use numberFormatter here only if there is a delta supplied
220
- var numberFormatter = delta
221
- ? Tools.getProperty(options, 'gauge', 'numberFormatter')
222
- : function () { return null; };
223
- var arrowSize = Tools.getProperty(options, 'gauge', 'deltaArrow', 'size');
224
- var numberSpacing = Tools.getProperty(options, 'gauge', 'numberSpacing');
225
- var showPercentageSymbol = Tools.getProperty(options, 'gauge', 'showPercentageSymbol');
226
- var numbersGroup = DOMUtils.appendOrSelect(svg, 'g.gauge-numbers');
227
- // Add the smaller number of the delta
228
- var deltaGroup = DOMUtils.appendOrSelect(numbersGroup, 'g.gauge-delta').attr('transform', "translate(0, " + (deltaFontSize(radius) + numberSpacing) + ")");
229
- var deltaNumber = DOMUtils.appendOrSelect(deltaGroup, 'text.gauge-delta-number');
230
- var gaugeSymbol = showPercentageSymbol ? '%' : '';
231
- deltaNumber.data(delta === null ? [] : [delta]);
232
- deltaNumber
233
- .enter()
234
- .append('text')
235
- .classed('gauge-delta-number', true)
236
- .merge(deltaNumber)
237
- .attr('text-anchor', 'middle')
238
- .style('font-size', deltaFontSize(radius) + "px")
239
- .text(function (d) { return "" + numberFormatter(d) + gaugeSymbol; });
240
- // Add the caret for the delta number
241
- var deltaNumberWidth = DOMUtils.getSVGElementSize(DOMUtils.appendOrSelect(svg, '.gauge-delta-number'), { useBBox: true }).width;
242
- // check if delta arrow is disabled
243
- var arrowEnabled = Tools.getProperty(options, 'gauge', 'deltaArrow', 'enabled');
244
- var deltaArrow = deltaGroup
245
- .selectAll('svg.gauge-delta-arrow')
246
- .data(delta !== null && arrowEnabled ? [delta] : []);
247
- deltaArrow
248
- .enter()
249
- .append('svg')
250
- .merge(deltaArrow)
251
- .attr('class', 'gauge-delta-arrow')
252
- .attr('x', -arrowSize(radius) - deltaNumberWidth / 2)
253
- .attr('y', -arrowSize(radius) / 2 - deltaFontSize(radius) * 0.35)
254
- .attr('width', arrowSize(radius))
255
- .attr('height', arrowSize(radius))
256
- .attr('viewBox', '0 0 16 16')
257
- /*
258
- * using .each() here to ensure that the below function runs
259
- * after svg.gauge-delta-arrow has been mounted onto the DOM
260
- */
261
- .each(function () {
262
- var deltaArrowSelection = select(this);
263
- // Needed to correctly size SVG in Firefox
264
- DOMUtils.appendOrSelect(deltaArrowSelection, 'rect.gauge-delta-arrow-backdrop')
265
- .attr('width', '16')
266
- .attr('height', '16')
267
- .attr('fill', 'none');
268
- // Draw the arrow with status
269
- var status = Tools.getProperty(options, 'gauge', 'status');
270
- DOMUtils.appendOrSelect(deltaArrowSelection, 'polygon.gauge-delta-arrow')
271
- .attr('class', status !== null
272
- ? "gauge-delta-arrow status--" + status
273
- : '')
274
- .attr('points', self.getArrow(delta));
275
- });
276
- deltaArrow.exit().remove();
277
- deltaNumber.exit().remove();
214
+ if (!delta) {
215
+ var deltaGroup = svg.select('g.gauge-delta');
216
+ if (!deltaGroup.empty()) {
217
+ deltaGroup.remove();
218
+ }
219
+ }
220
+ else {
221
+ // Sizing and positions relative to the radius
222
+ var radius = this.computeRadius();
223
+ var deltaFontSize = delta
224
+ ? Tools.getProperty(options, 'gauge', 'deltaFontSize')
225
+ : function () { return 0; };
226
+ // use numberFormatter here only if there is a delta supplied
227
+ var numberFormatter_1 = delta
228
+ ? Tools.getProperty(options, 'gauge', 'numberFormatter')
229
+ : function () { return null; };
230
+ var arrowSize = Tools.getProperty(options, 'gauge', 'deltaArrow', 'size');
231
+ var numberSpacing = Tools.getProperty(options, 'gauge', 'numberSpacing');
232
+ var showPercentageSymbol = Tools.getProperty(options, 'gauge', 'showPercentageSymbol');
233
+ var numbersGroup = DOMUtils.appendOrSelect(svg, 'g.gauge-numbers');
234
+ // Add the smaller number of the delta
235
+ var deltaGroup = DOMUtils.appendOrSelect(numbersGroup, 'g.gauge-delta').attr('transform', "translate(0, " + (deltaFontSize(radius) + numberSpacing) + ")");
236
+ var deltaNumber = DOMUtils.appendOrSelect(deltaGroup, 'text.gauge-delta-number');
237
+ var gaugeSymbol_1 = showPercentageSymbol ? '%' : '';
238
+ deltaNumber.data(delta === null ? [] : [delta]);
239
+ deltaNumber
240
+ .enter()
241
+ .append('text')
242
+ .classed('gauge-delta-number', true)
243
+ .merge(deltaNumber)
244
+ .attr('text-anchor', 'middle')
245
+ .style('font-size', deltaFontSize(radius) + "px")
246
+ .text(function (d) { return "" + numberFormatter_1(d) + gaugeSymbol_1; });
247
+ // Add the caret for the delta number
248
+ var deltaNumberWidth = DOMUtils.getSVGElementSize(DOMUtils.appendOrSelect(svg, '.gauge-delta-number'), { useBBox: true }).width;
249
+ // check if delta arrow is disabled
250
+ var arrowEnabled = Tools.getProperty(options, 'gauge', 'deltaArrow', 'enabled');
251
+ var deltaArrow = deltaGroup
252
+ .selectAll('svg.gauge-delta-arrow')
253
+ .data(delta !== null && arrowEnabled ? [delta] : []);
254
+ deltaArrow
255
+ .enter()
256
+ .append('svg')
257
+ .merge(deltaArrow)
258
+ .attr('class', 'gauge-delta-arrow')
259
+ .attr('x', -arrowSize(radius) - deltaNumberWidth / 2)
260
+ .attr('y', -arrowSize(radius) / 2 - deltaFontSize(radius) * 0.35)
261
+ .attr('width', arrowSize(radius))
262
+ .attr('height', arrowSize(radius))
263
+ .attr('viewBox', '0 0 16 16')
264
+ /*
265
+ * using .each() here to ensure that the below function runs
266
+ * after svg.gauge-delta-arrow has been mounted onto the DOM
267
+ */
268
+ .each(function () {
269
+ var deltaArrowSelection = select(this);
270
+ // Needed to correctly size SVG in Firefox
271
+ DOMUtils.appendOrSelect(deltaArrowSelection, 'rect.gauge-delta-arrow-backdrop')
272
+ .attr('width', '16')
273
+ .attr('height', '16')
274
+ .attr('fill', 'none');
275
+ // Draw the arrow with status
276
+ var status = Tools.getProperty(options, 'gauge', 'status');
277
+ DOMUtils.appendOrSelect(deltaArrowSelection, 'polygon.gauge-delta-arrow')
278
+ .attr('class', status !== null
279
+ ? "gauge-delta-arrow status--" + status
280
+ : '')
281
+ .attr('points', self.getArrow(delta));
282
+ });
283
+ deltaArrow.exit().remove();
284
+ deltaNumber.exit().remove();
285
+ }
278
286
  };
279
287
  Gauge.prototype.getInnerRadius = function () {
280
288
  // Compute the outer radius needed
@@ -1 +1 @@
1
- {"version":3,"file":"gauge.js","sourceRoot":"","sources":["gauge.ts"],"names":[],"mappings":"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","sourcesContent":["// Internal Imports\nimport { Component } from '../component';\nimport { DOMUtils } from '../../services';\nimport {\n\tRoles,\n\tEvents,\n\tGaugeTypes,\n\tArrowDirections,\n\tColorClassNameTypes,\n\tAlignments,\n\tRenderTypes,\n} from '../../interfaces';\nimport { Tools } from '../../tools';\n\n// D3 Imports\nimport { select } from 'd3-selection';\nimport { arc } from 'd3-shape';\n\n// arrow paths for delta\nconst ARROW_UP_PATH_STRING = '4,10 8,6 12,10';\nconst ARROW_DOWN_PATH_STRING = '12,6 8,10 4,6';\n\nexport class Gauge extends Component {\n\ttype = 'gauge';\n\trenderType = RenderTypes.SVG;\n\n\t// We need to store our arcs so that addEventListeners() can access them\n\tarc: any;\n\tbackgroundArc: any;\n\n\tgetValue(): number {\n\t\tconst data = this.model.getData();\n\t\tconst value = data.find((d) => d.group === 'value')?.value ?? null;\n\t\treturn value;\n\t}\n\n\tgetValueRatio(): number {\n\t\tconst value = Tools.clamp(this.getValue(), 0, 100);\n\t\treturn value / 100;\n\t}\n\n\tgetDelta(): number {\n\t\tconst data = this.model.getData();\n\t\tconst delta = data.find((d) => d.group === 'delta')?.value ?? null;\n\t\treturn delta;\n\t}\n\n\tgetArcRatio(): number {\n\t\tconst options = this.getOptions();\n\t\tconst type = Tools.getProperty(options, 'gauge', 'type');\n\t\tconst arcRatio = type === GaugeTypes.FULL ? 1 : 0.5;\n\t\treturn arcRatio;\n\t}\n\n\tgetArcSize(): number {\n\t\treturn this.getArcRatio() * Math.PI * 2;\n\t}\n\n\tgetStartAngle(): number {\n\t\tconst arcSize = this.getArcSize();\n\t\tif (arcSize === 2 * Math.PI) {\n\t\t\treturn 0;\n\t\t}\n\t\treturn -arcSize / 2;\n\t}\n\n\t// use provided arrow direction or default to using the delta\n\tgetArrow(delta): string {\n\t\tconst options = this.getOptions();\n\t\tconst arrowDirection = Tools.getProperty(\n\t\t\toptions,\n\t\t\t'gauge',\n\t\t\t'deltaArrow',\n\t\t\t'direction'\n\t\t);\n\n\t\tswitch (arrowDirection) {\n\t\t\tcase ArrowDirections.UP:\n\t\t\t\treturn ARROW_UP_PATH_STRING;\n\t\t\tcase ArrowDirections.DOWN:\n\t\t\t\treturn ARROW_DOWN_PATH_STRING;\n\t\t\tdefault:\n\t\t\t\treturn delta > 0\n\t\t\t\t\t? ARROW_UP_PATH_STRING\n\t\t\t\t\t: ARROW_DOWN_PATH_STRING;\n\t\t}\n\t}\n\n\trender(animate = true) {\n\t\tconst svg = this.getComponentContainer()\n\t\t\t.attr('width', '100%')\n\t\t\t.attr('height', '100%');\n\t\tconst options = this.getOptions();\n\n\t\tconst value = this.getValue();\n\t\tconst valueRatio = this.getValueRatio();\n\t\tconst arcSize = this.getArcSize();\n\n\t\t// angles for drawing the gauge\n\t\tconst startAngle = this.getStartAngle();\n\t\tconst rotationAngle = valueRatio * arcSize;\n\t\tconst currentAngle = startAngle + rotationAngle;\n\t\tconst endAngle = startAngle + arcSize;\n\n\t\t// Compute the outer radius needed\n\t\tconst radius = this.computeRadius();\n\t\tconst innerRadius = this.getInnerRadius();\n\n\t\t// draw the container and arc\n\t\tthis.backgroundArc = arc()\n\t\t\t.innerRadius(innerRadius)\n\t\t\t.outerRadius(radius)\n\t\t\t.startAngle(currentAngle)\n\t\t\t.endAngle(endAngle);\n\n\t\tthis.arc = arc()\n\t\t\t.innerRadius(innerRadius)\n\t\t\t.outerRadius(radius)\n\t\t\t.startAngle(startAngle)\n\t\t\t.endAngle(currentAngle);\n\n\t\t// draw the container\n\t\tDOMUtils.appendOrSelect(svg, 'path.arc-background').attr(\n\t\t\t'd',\n\t\t\tthis.backgroundArc\n\t\t);\n\n\t\t// Add data arc\n\t\tconst arcValue = svg.selectAll('path.arc-foreground').data([value]);\n\t\tconst arcEnter = arcValue.enter().append('path');\n\n\t\tarcEnter\n\t\t\t.merge(arcValue)\n\t\t\t.attr(\n\t\t\t\t'class',\n\t\t\t\tthis.model.getColorClassName({\n\t\t\t\t\tclassNameTypes: [ColorClassNameTypes.FILL],\n\t\t\t\t\tdataGroupName: 'value',\n\t\t\t\t\toriginalClassName: 'arc-foreground',\n\t\t\t\t})\n\t\t\t)\n\t\t\t.style('fill', (d) =>\n\t\t\t\tTools.getProperty(this.getOptions(), 'color', 'scale', 'value')\n\t\t\t)\n\t\t\t.attr('d', this.arc)\n\t\t\t// a11y\n\t\t\t.attr('role', Roles.GRAPHICS_SYMBOL)\n\t\t\t.attr('aria-roledescription', 'value')\n\t\t\t.attr('aria-label', (d) => d);\n\n\t\t// draw the value and delta to the center\n\t\tthis.drawValueNumber();\n\t\tthis.drawDelta();\n\n\t\tarcValue.exit().remove();\n\n\t\tconst alignment = Tools.getProperty(options, 'gauge', 'alignment');\n\n\t\tconst { width } = DOMUtils.getSVGElementSize(this.getParent(), {\n\t\t\tuseAttrs: true,\n\t\t});\n\n\t\t// Position gauge\n\t\tlet gaugeTranslateX = radius;\n\t\tif (alignment === Alignments.CENTER) {\n\t\t\tgaugeTranslateX = width / 2;\n\t\t} else if (alignment === Alignments.RIGHT) {\n\t\t\tgaugeTranslateX = width - radius;\n\t\t}\n\t\tsvg.attr('x', gaugeTranslateX).attr('y', radius);\n\n\t\t// Add event listeners\n\t\tthis.addEventListeners();\n\t}\n\n\t/**\n\t * draws the value number associated with the Gauge component in the center\n\t */\n\tdrawValueNumber() {\n\t\tconst svg = this.getComponentContainer();\n\t\tconst options = this.getOptions();\n\n\t\tconst arcType = Tools.getProperty(options, 'gauge', 'type');\n\t\tconst value = this.getValue();\n\t\tconst delta = this.getDelta();\n\n\t\t// Sizing and positions relative to the radius\n\t\tconst radius = this.computeRadius();\n\n\t\tconst valueFontSize = Tools.getProperty(\n\t\t\toptions,\n\t\t\t'gauge',\n\t\t\t'valueFontSize'\n\t\t);\n\t\t// if there is a delta, use the size to center the numbers, otherwise center the valueNumber\n\t\tconst deltaFontSize = Tools.getProperty(\n\t\t\toptions,\n\t\t\t'gauge',\n\t\t\t'deltaFontSize'\n\t\t);\n\n\t\tconst numberSpacing = Tools.getProperty(\n\t\t\toptions,\n\t\t\t'gauge',\n\t\t\t'numberSpacing'\n\t\t);\n\n\t\tconst showPercentageSymbol = Tools.getProperty(\n\t\t\toptions,\n\t\t\t'gauge',\n\t\t\t'showPercentageSymbol'\n\t\t);\n\n\t\t// circular gauge without delta should have valueNumber centered\n\t\tlet numbersYPosition = 0;\n\t\tif (arcType === GaugeTypes.FULL && !delta) {\n\t\t\tnumbersYPosition = deltaFontSize(radius);\n\t\t} else if (arcType === GaugeTypes.SEMI && delta) {\n\t\t\t// semi circular gauge we want the numbers aligned to the chart container\n\t\t\tnumbersYPosition = -(deltaFontSize(radius) + numberSpacing);\n\t\t}\n\n\t\t// Add the numbers at the center\n\t\tconst numbersGroup = DOMUtils.appendOrSelect(\n\t\t\tsvg,\n\t\t\t'g.gauge-numbers'\n\t\t).attr('transform', `translate(0, ${numbersYPosition})`);\n\n\t\tconst fontSize = valueFontSize(radius);\n\t\t// Add the big number\n\t\tconst valueNumberGroup = DOMUtils.appendOrSelect(\n\t\t\tnumbersGroup,\n\t\t\t'g.gauge-value-number'\n\t\t);\n\n\t\tconst numberFormatter = Tools.getProperty(\n\t\t\toptions,\n\t\t\t'gauge',\n\t\t\t'numberFormatter'\n\t\t);\n\t\tconst valueNumber = valueNumberGroup\n\t\t\t.selectAll('text.gauge-value-number')\n\t\t\t.data([value]);\n\n\t\tvalueNumber\n\t\t\t.enter()\n\t\t\t.append('text')\n\t\t\t.attr('class', 'gauge-value-number')\n\t\t\t.merge(valueNumber)\n\t\t\t.style('font-size', `${fontSize}px`)\n\t\t\t.attr('text-anchor', 'middle')\n\t\t\t.text((d) => numberFormatter(d));\n\n\t\t// add the percentage symbol beside the valueNumber\n\t\tconst {\n\t\t\twidth: valueNumberWidth,\n\t\t} = DOMUtils.getSVGElementSize(\n\t\t\tDOMUtils.appendOrSelect(svg, 'text.gauge-value-number'),\n\t\t\t{ useBBox: true }\n\t\t);\n\n\t\tconst symbolFontSize = fontSize / 2;\n\t\tconst gaugeSymbol = showPercentageSymbol ? '%' : '';\n\t\tconst symbol = DOMUtils.appendOrSelect(\n\t\t\tvalueNumberGroup,\n\t\t\t'text.gauge-value-symbol'\n\t\t)\n\t\t\t.style('font-size', `${symbolFontSize}px`)\n\t\t\t.attr('x', valueNumberWidth / 2)\n\t\t\t.text(gaugeSymbol);\n\n\t\tconst {\n\t\t\twidth: symbolWidth,\n\t\t\theight: symbolHeight,\n\t\t} = DOMUtils.getSVGElementSize(symbol, { useBBox: true });\n\n\t\t// adjust the symbol to superscript using the bbox instead of the font-size cause\n\t\t// we want to align the actual character to the value number\n\t\tsymbol.attr('y', `-${symbolHeight / 2}px`);\n\n\t\t// move the value group depending on the symbol's drawn size\n\t\tvalueNumberGroup.attr('transform', `translate(-${symbolWidth / 2}, 0)`); // Optical centering for the presence of the smaller % symbol\n\t}\n\n\t/**\n\t * adds the delta number for the gauge\n\t */\n\tdrawDelta() {\n\t\tconst self = this;\n\t\tconst svg = this.getComponentContainer();\n\t\tconst options = this.getOptions();\n\t\tconst delta = this.getDelta();\n\n\t\t// Sizing and positions relative to the radius\n\t\tconst radius = this.computeRadius();\n\t\tconst deltaFontSize = delta\n\t\t\t? Tools.getProperty(options, 'gauge', 'deltaFontSize')\n\t\t\t: () => 0;\n\n\t\t// use numberFormatter here only if there is a delta supplied\n\t\tconst numberFormatter = delta\n\t\t\t? Tools.getProperty(options, 'gauge', 'numberFormatter')\n\t\t\t: () => null;\n\n\t\tconst arrowSize = Tools.getProperty(\n\t\t\toptions,\n\t\t\t'gauge',\n\t\t\t'deltaArrow',\n\t\t\t'size'\n\t\t);\n\t\tconst numberSpacing = Tools.getProperty(\n\t\t\toptions,\n\t\t\t'gauge',\n\t\t\t'numberSpacing'\n\t\t);\n\n\t\tconst showPercentageSymbol = Tools.getProperty(\n\t\t\toptions,\n\t\t\t'gauge',\n\t\t\t'showPercentageSymbol'\n\t\t);\n\n\t\tconst numbersGroup = DOMUtils.appendOrSelect(svg, 'g.gauge-numbers');\n\n\t\t// Add the smaller number of the delta\n\t\tconst deltaGroup = DOMUtils.appendOrSelect(\n\t\t\tnumbersGroup,\n\t\t\t'g.gauge-delta'\n\t\t).attr(\n\t\t\t'transform',\n\t\t\t`translate(0, ${deltaFontSize(radius) + numberSpacing})`\n\t\t);\n\n\t\tconst deltaNumber = DOMUtils.appendOrSelect(\n\t\t\tdeltaGroup,\n\t\t\t'text.gauge-delta-number'\n\t\t);\n\t\tconst gaugeSymbol = showPercentageSymbol ? '%' : '';\n\n\t\tdeltaNumber.data(delta === null ? [] : [delta]);\n\n\t\tdeltaNumber\n\t\t\t.enter()\n\t\t\t.append('text')\n\t\t\t.classed('gauge-delta-number', true)\n\t\t\t.merge(deltaNumber)\n\t\t\t.attr('text-anchor', 'middle')\n\t\t\t.style('font-size', `${deltaFontSize(radius)}px`)\n\t\t\t.text((d) => `${numberFormatter(d)}${gaugeSymbol}`);\n\n\t\t// Add the caret for the delta number\n\t\tconst {\n\t\t\twidth: deltaNumberWidth,\n\t\t} = DOMUtils.getSVGElementSize(\n\t\t\tDOMUtils.appendOrSelect(svg, '.gauge-delta-number'),\n\t\t\t{ useBBox: true }\n\t\t);\n\n\t\t// check if delta arrow is disabled\n\t\tconst arrowEnabled = Tools.getProperty(\n\t\t\toptions,\n\t\t\t'gauge',\n\t\t\t'deltaArrow',\n\t\t\t'enabled'\n\t\t);\n\n\t\tconst deltaArrow = deltaGroup\n\t\t\t.selectAll('svg.gauge-delta-arrow')\n\t\t\t.data(delta !== null && arrowEnabled ? [delta] : []);\n\n\t\tdeltaArrow\n\t\t\t.enter()\n\t\t\t.append('svg')\n\t\t\t.merge(deltaArrow)\n\t\t\t.attr('class', 'gauge-delta-arrow')\n\t\t\t.attr('x', -arrowSize(radius) - deltaNumberWidth / 2)\n\t\t\t.attr('y', -arrowSize(radius) / 2 - deltaFontSize(radius) * 0.35)\n\t\t\t.attr('width', arrowSize(radius))\n\t\t\t.attr('height', arrowSize(radius))\n\t\t\t.attr('viewBox', '0 0 16 16')\n\t\t\t/*\n\t\t\t * using .each() here to ensure that the below function runs\n\t\t\t * after svg.gauge-delta-arrow has been mounted onto the DOM\n\t\t\t */\n\t\t\t.each(function () {\n\t\t\t\tconst deltaArrowSelection = select(this);\n\n\t\t\t\t// Needed to correctly size SVG in Firefox\n\t\t\t\tDOMUtils.appendOrSelect(\n\t\t\t\t\tdeltaArrowSelection,\n\t\t\t\t\t'rect.gauge-delta-arrow-backdrop'\n\t\t\t\t)\n\t\t\t\t\t.attr('width', '16')\n\t\t\t\t\t.attr('height', '16')\n\t\t\t\t\t.attr('fill', 'none');\n\n\t\t\t\t// Draw the arrow with status\n\t\t\t\tconst status = Tools.getProperty(options, 'gauge', 'status');\n\t\t\t\tDOMUtils.appendOrSelect(\n\t\t\t\t\tdeltaArrowSelection,\n\t\t\t\t\t'polygon.gauge-delta-arrow'\n\t\t\t\t)\n\t\t\t\t\t.attr(\n\t\t\t\t\t\t'class',\n\t\t\t\t\t\tstatus !== null\n\t\t\t\t\t\t\t? `gauge-delta-arrow status--${status}`\n\t\t\t\t\t\t\t: ''\n\t\t\t\t\t)\n\t\t\t\t\t.attr('points', self.getArrow(delta));\n\t\t\t});\n\n\t\tdeltaArrow.exit().remove();\n\t\tdeltaNumber.exit().remove();\n\t}\n\n\tgetInnerRadius() {\n\t\t// Compute the outer radius needed\n\t\tconst radius = this.computeRadius();\n\t\tconst arcWidth = Tools.getProperty(\n\t\t\tthis.getOptions(),\n\t\t\t'gauge',\n\t\t\t'arcWidth'\n\t\t);\n\t\treturn radius - arcWidth;\n\t}\n\n\taddEventListeners() {\n\t\tconst self = this;\n\t\tthis.parent\n\t\t\t.selectAll('path.arc-foreground')\n\t\t\t.on('mouseover', function (event, datum) {\n\t\t\t\t// Dispatch mouse event\n\t\t\t\tself.services.events.dispatchEvent(Events.Gauge.ARC_MOUSEOVER, {\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('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(Events.Gauge.ARC_MOUSEMOVE, {\n\t\t\t\t\tevent,\n\t\t\t\t\telement: hoveredElement,\n\t\t\t\t\tdatum,\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.Gauge.ARC_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\n\t\t\t\t// Dispatch mouse event\n\t\t\t\tself.services.events.dispatchEvent(Events.Gauge.ARC_MOUSEOUT, {\n\t\t\t\t\tevent,\n\t\t\t\t\telement: hoveredElement,\n\t\t\t\t\tdatum,\n\t\t\t\t});\n\t\t\t});\n\t}\n\n\t// Helper functions\n\tprotected computeRadius() {\n\t\tconst options = this.getOptions();\n\t\tconst arcType = Tools.getProperty(options, 'gauge', 'type');\n\n\t\tconst { width, height } = DOMUtils.getSVGElementSize(this.parent, {\n\t\t\tuseAttrs: true,\n\t\t});\n\t\tconst radius =\n\t\t\tarcType === GaugeTypes.SEMI\n\t\t\t\t? Math.min(width / 2, height)\n\t\t\t\t: Math.min(width / 2, height / 2);\n\n\t\treturn radius;\n\t}\n}\n"]}
1
+ {"version":3,"file":"gauge.js","sourceRoot":"","sources":["gauge.ts"],"names":[],"mappings":"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","sourcesContent":["// Internal Imports\nimport { Component } from '../component';\nimport { DOMUtils } from '../../services';\nimport {\n\tRoles,\n\tEvents,\n\tGaugeTypes,\n\tArrowDirections,\n\tColorClassNameTypes,\n\tAlignments,\n\tRenderTypes,\n} from '../../interfaces';\nimport { Tools } from '../../tools';\n\n// D3 Imports\nimport { select } from 'd3-selection';\nimport { arc } from 'd3-shape';\n\n// arrow paths for delta\nconst ARROW_UP_PATH_STRING = '4,10 8,6 12,10';\nconst ARROW_DOWN_PATH_STRING = '12,6 8,10 4,6';\n\nexport class Gauge extends Component {\n\ttype = 'gauge';\n\trenderType = RenderTypes.SVG;\n\n\t// We need to store our arcs so that addEventListeners() can access them\n\tarc: any;\n\tbackgroundArc: any;\n\n\tgetValue(): number {\n\t\tconst data = this.model.getData();\n\t\tconst value = data.find((d) => d.group === 'value')?.value ?? null;\n\t\treturn value;\n\t}\n\n\tgetValueRatio(): number {\n\t\tconst value = Tools.clamp(this.getValue(), 0, 100);\n\t\treturn value / 100;\n\t}\n\n\tgetDelta(): number {\n\t\tconst data = this.model.getData();\n\t\tconst delta = data.find((d) => d.group === 'delta')?.value ?? null;\n\t\treturn delta;\n\t}\n\n\tgetArcRatio(): number {\n\t\tconst options = this.getOptions();\n\t\tconst type = Tools.getProperty(options, 'gauge', 'type');\n\t\tconst arcRatio = type === GaugeTypes.FULL ? 1 : 0.5;\n\t\treturn arcRatio;\n\t}\n\n\tgetArcSize(): number {\n\t\treturn this.getArcRatio() * Math.PI * 2;\n\t}\n\n\tgetStartAngle(): number {\n\t\tconst arcSize = this.getArcSize();\n\t\tif (arcSize === 2 * Math.PI) {\n\t\t\treturn 0;\n\t\t}\n\t\treturn -arcSize / 2;\n\t}\n\n\t// use provided arrow direction or default to using the delta\n\tgetArrow(delta): string {\n\t\tconst options = this.getOptions();\n\t\tconst arrowDirection = Tools.getProperty(\n\t\t\toptions,\n\t\t\t'gauge',\n\t\t\t'deltaArrow',\n\t\t\t'direction'\n\t\t);\n\n\t\tswitch (arrowDirection) {\n\t\t\tcase ArrowDirections.UP:\n\t\t\t\treturn ARROW_UP_PATH_STRING;\n\t\t\tcase ArrowDirections.DOWN:\n\t\t\t\treturn ARROW_DOWN_PATH_STRING;\n\t\t\tdefault:\n\t\t\t\treturn delta > 0\n\t\t\t\t\t? ARROW_UP_PATH_STRING\n\t\t\t\t\t: ARROW_DOWN_PATH_STRING;\n\t\t}\n\t}\n\n\trender(animate = true) {\n\t\tconst svg = this.getComponentContainer()\n\t\t\t.attr('width', '100%')\n\t\t\t.attr('height', '100%');\n\t\tconst options = this.getOptions();\n\n\t\tconst value = this.getValue();\n\t\tconst valueRatio = this.getValueRatio();\n\t\tconst arcSize = this.getArcSize();\n\n\t\t// angles for drawing the gauge\n\t\tconst startAngle = this.getStartAngle();\n\t\tconst rotationAngle = valueRatio * arcSize;\n\t\tconst currentAngle = startAngle + rotationAngle;\n\t\tconst endAngle = startAngle + arcSize;\n\n\t\t// Compute the outer radius needed\n\t\tconst radius = this.computeRadius();\n\t\tconst innerRadius = this.getInnerRadius();\n\n\t\t// draw the container and arc\n\t\tthis.backgroundArc = arc()\n\t\t\t.innerRadius(innerRadius)\n\t\t\t.outerRadius(radius)\n\t\t\t.startAngle(currentAngle)\n\t\t\t.endAngle(endAngle);\n\n\t\tthis.arc = arc()\n\t\t\t.innerRadius(innerRadius)\n\t\t\t.outerRadius(radius)\n\t\t\t.startAngle(startAngle)\n\t\t\t.endAngle(currentAngle);\n\n\t\t// draw the container\n\t\tDOMUtils.appendOrSelect(svg, 'path.arc-background').attr(\n\t\t\t'd',\n\t\t\tthis.backgroundArc\n\t\t);\n\n\t\t// Add data arc\n\t\tconst arcValue = svg.selectAll('path.arc-foreground').data([value]);\n\t\tconst arcEnter = arcValue.enter().append('path');\n\n\t\tarcEnter\n\t\t\t.merge(arcValue)\n\t\t\t.attr(\n\t\t\t\t'class',\n\t\t\t\tthis.model.getColorClassName({\n\t\t\t\t\tclassNameTypes: [ColorClassNameTypes.FILL],\n\t\t\t\t\tdataGroupName: 'value',\n\t\t\t\t\toriginalClassName: 'arc-foreground',\n\t\t\t\t})\n\t\t\t)\n\t\t\t.style('fill', (d) =>\n\t\t\t\tTools.getProperty(this.getOptions(), 'color', 'scale', 'value')\n\t\t\t)\n\t\t\t.attr('d', this.arc)\n\t\t\t// a11y\n\t\t\t.attr('role', Roles.GRAPHICS_SYMBOL)\n\t\t\t.attr('aria-roledescription', 'value')\n\t\t\t.attr('aria-label', (d) => d);\n\n\t\t// draw the value and delta to the center\n\t\tthis.drawValueNumber();\n\t\tthis.drawDelta();\n\n\t\tarcValue.exit().remove();\n\n\t\tconst alignment = Tools.getProperty(options, 'gauge', 'alignment');\n\n\t\tconst { width } = DOMUtils.getSVGElementSize(this.getParent(), {\n\t\t\tuseAttrs: true,\n\t\t});\n\n\t\t// Position gauge\n\t\tlet gaugeTranslateX = radius;\n\t\tif (alignment === Alignments.CENTER) {\n\t\t\tgaugeTranslateX = width / 2;\n\t\t} else if (alignment === Alignments.RIGHT) {\n\t\t\tgaugeTranslateX = width - radius;\n\t\t}\n\t\tsvg.attr('x', gaugeTranslateX).attr('y', radius);\n\n\t\t// Add event listeners\n\t\tthis.addEventListeners();\n\t}\n\n\t/**\n\t * draws the value number associated with the Gauge component in the center\n\t */\n\tdrawValueNumber() {\n\t\tconst svg = this.getComponentContainer();\n\t\tconst options = this.getOptions();\n\n\t\tconst arcType = Tools.getProperty(options, 'gauge', 'type');\n\t\tconst value = this.getValue();\n\t\tconst delta = this.getDelta();\n\n\t\t// Sizing and positions relative to the radius\n\t\tconst radius = this.computeRadius();\n\n\t\tconst valueFontSize = Tools.getProperty(\n\t\t\toptions,\n\t\t\t'gauge',\n\t\t\t'valueFontSize'\n\t\t);\n\t\t// if there is a delta, use the size to center the numbers, otherwise center the valueNumber\n\t\tconst deltaFontSize = Tools.getProperty(\n\t\t\toptions,\n\t\t\t'gauge',\n\t\t\t'deltaFontSize'\n\t\t);\n\n\t\tconst numberSpacing = Tools.getProperty(\n\t\t\toptions,\n\t\t\t'gauge',\n\t\t\t'numberSpacing'\n\t\t);\n\n\t\tconst showPercentageSymbol = Tools.getProperty(\n\t\t\toptions,\n\t\t\t'gauge',\n\t\t\t'showPercentageSymbol'\n\t\t);\n\n\t\t// circular gauge without delta should have valueNumber centered\n\t\tlet numbersYPosition = 0;\n\t\tif (arcType === GaugeTypes.FULL && !delta) {\n\t\t\tnumbersYPosition = deltaFontSize(radius);\n\t\t} else if (arcType === GaugeTypes.SEMI && delta) {\n\t\t\t// semi circular gauge we want the numbers aligned to the chart container\n\t\t\tnumbersYPosition = -(deltaFontSize(radius) + numberSpacing);\n\t\t}\n\n\t\t// Add the numbers at the center\n\t\tconst numbersGroup = DOMUtils.appendOrSelect(\n\t\t\tsvg,\n\t\t\t'g.gauge-numbers'\n\t\t).attr('transform', `translate(0, ${numbersYPosition})`);\n\n\t\tconst fontSize = valueFontSize(radius);\n\t\t// Add the big number\n\t\tconst valueNumberGroup = DOMUtils.appendOrSelect(\n\t\t\tnumbersGroup,\n\t\t\t'g.gauge-value-number'\n\t\t);\n\n\t\tconst numberFormatter = Tools.getProperty(\n\t\t\toptions,\n\t\t\t'gauge',\n\t\t\t'numberFormatter'\n\t\t);\n\t\tconst valueNumber = valueNumberGroup\n\t\t\t.selectAll('text.gauge-value-number')\n\t\t\t.data([value]);\n\n\t\tvalueNumber\n\t\t\t.enter()\n\t\t\t.append('text')\n\t\t\t.attr('class', 'gauge-value-number')\n\t\t\t.merge(valueNumber)\n\t\t\t.style('font-size', `${fontSize}px`)\n\t\t\t.attr('text-anchor', 'middle')\n\t\t\t.text((d) => numberFormatter(d));\n\n\t\t// add the percentage symbol beside the valueNumber\n\t\tconst {\n\t\t\twidth: valueNumberWidth,\n\t\t} = DOMUtils.getSVGElementSize(\n\t\t\tDOMUtils.appendOrSelect(svg, 'text.gauge-value-number'),\n\t\t\t{ useBBox: true }\n\t\t);\n\n\t\tconst symbolFontSize = fontSize / 2;\n\t\tconst gaugeSymbol = showPercentageSymbol ? '%' : '';\n\t\tconst symbol = DOMUtils.appendOrSelect(\n\t\t\tvalueNumberGroup,\n\t\t\t'text.gauge-value-symbol'\n\t\t)\n\t\t\t.style('font-size', `${symbolFontSize}px`)\n\t\t\t.attr('x', valueNumberWidth / 2)\n\t\t\t.text(gaugeSymbol);\n\n\t\tconst {\n\t\t\twidth: symbolWidth,\n\t\t\theight: symbolHeight,\n\t\t} = DOMUtils.getSVGElementSize(symbol, { useBBox: true });\n\n\t\t// adjust the symbol to superscript using the bbox instead of the font-size cause\n\t\t// we want to align the actual character to the value number\n\t\tsymbol.attr('y', `-${symbolHeight / 2}px`);\n\n\t\t// move the value group depending on the symbol's drawn size\n\t\tvalueNumberGroup.attr('transform', `translate(-${symbolWidth / 2}, 0)`); // Optical centering for the presence of the smaller % symbol\n\t}\n\n\t/**\n\t * adds the delta number for the gauge\n\t */\n\tdrawDelta() {\n\t\tconst self = this;\n\t\tconst svg = this.getComponentContainer();\n\t\tconst options = this.getOptions();\n\t\tconst delta = this.getDelta();\n\n\t\tif (!delta) {\n\t\t\tconst deltaGroup = svg.select('g.gauge-delta');\n\n\t\t\tif (!deltaGroup.empty()) {\n\t\t\t\tdeltaGroup.remove();\n\t\t\t}\n\t\t} else {\n\t\t\t// Sizing and positions relative to the radius\n\t\t\tconst radius = this.computeRadius();\n\t\t\tconst deltaFontSize = delta\n\t\t\t\t? Tools.getProperty(options, 'gauge', 'deltaFontSize')\n\t\t\t\t: () => 0;\n\n\t\t\t// use numberFormatter here only if there is a delta supplied\n\t\t\tconst numberFormatter = delta\n\t\t\t\t? Tools.getProperty(options, 'gauge', 'numberFormatter')\n\t\t\t\t: () => null;\n\n\t\t\tconst arrowSize = Tools.getProperty(\n\t\t\t\toptions,\n\t\t\t\t'gauge',\n\t\t\t\t'deltaArrow',\n\t\t\t\t'size'\n\t\t\t);\n\t\t\tconst numberSpacing = Tools.getProperty(\n\t\t\t\toptions,\n\t\t\t\t'gauge',\n\t\t\t\t'numberSpacing'\n\t\t\t);\n\n\t\t\tconst showPercentageSymbol = Tools.getProperty(\n\t\t\t\toptions,\n\t\t\t\t'gauge',\n\t\t\t\t'showPercentageSymbol'\n\t\t\t);\n\n\t\t\tconst numbersGroup = DOMUtils.appendOrSelect(\n\t\t\t\tsvg,\n\t\t\t\t'g.gauge-numbers'\n\t\t\t);\n\n\t\t\t// Add the smaller number of the delta\n\t\t\tconst deltaGroup = DOMUtils.appendOrSelect(\n\t\t\t\tnumbersGroup,\n\t\t\t\t'g.gauge-delta'\n\t\t\t).attr(\n\t\t\t\t'transform',\n\t\t\t\t`translate(0, ${deltaFontSize(radius) + numberSpacing})`\n\t\t\t);\n\n\t\t\tconst deltaNumber = DOMUtils.appendOrSelect(\n\t\t\t\tdeltaGroup,\n\t\t\t\t'text.gauge-delta-number'\n\t\t\t);\n\t\t\tconst gaugeSymbol = showPercentageSymbol ? '%' : '';\n\n\t\t\tdeltaNumber.data(delta === null ? [] : [delta]);\n\n\t\t\tdeltaNumber\n\t\t\t\t.enter()\n\t\t\t\t.append('text')\n\t\t\t\t.classed('gauge-delta-number', true)\n\t\t\t\t.merge(deltaNumber)\n\t\t\t\t.attr('text-anchor', 'middle')\n\t\t\t\t.style('font-size', `${deltaFontSize(radius)}px`)\n\t\t\t\t.text((d) => `${numberFormatter(d)}${gaugeSymbol}`);\n\n\t\t\t// Add the caret for the delta number\n\t\t\tconst {\n\t\t\t\twidth: deltaNumberWidth,\n\t\t\t} = DOMUtils.getSVGElementSize(\n\t\t\t\tDOMUtils.appendOrSelect(svg, '.gauge-delta-number'),\n\t\t\t\t{ useBBox: true }\n\t\t\t);\n\n\t\t\t// check if delta arrow is disabled\n\t\t\tconst arrowEnabled = Tools.getProperty(\n\t\t\t\toptions,\n\t\t\t\t'gauge',\n\t\t\t\t'deltaArrow',\n\t\t\t\t'enabled'\n\t\t\t);\n\n\t\t\tconst deltaArrow = deltaGroup\n\t\t\t\t.selectAll('svg.gauge-delta-arrow')\n\t\t\t\t.data(delta !== null && arrowEnabled ? [delta] : []);\n\n\t\t\tdeltaArrow\n\t\t\t\t.enter()\n\t\t\t\t.append('svg')\n\t\t\t\t.merge(deltaArrow)\n\t\t\t\t.attr('class', 'gauge-delta-arrow')\n\t\t\t\t.attr('x', -arrowSize(radius) - deltaNumberWidth / 2)\n\t\t\t\t.attr(\n\t\t\t\t\t'y',\n\t\t\t\t\t-arrowSize(radius) / 2 - deltaFontSize(radius) * 0.35\n\t\t\t\t)\n\t\t\t\t.attr('width', arrowSize(radius))\n\t\t\t\t.attr('height', arrowSize(radius))\n\t\t\t\t.attr('viewBox', '0 0 16 16')\n\t\t\t\t/*\n\t\t\t\t * using .each() here to ensure that the below function runs\n\t\t\t\t * after svg.gauge-delta-arrow has been mounted onto the DOM\n\t\t\t\t */\n\t\t\t\t.each(function () {\n\t\t\t\t\tconst deltaArrowSelection = select(this);\n\n\t\t\t\t\t// Needed to correctly size SVG in Firefox\n\t\t\t\t\tDOMUtils.appendOrSelect(\n\t\t\t\t\t\tdeltaArrowSelection,\n\t\t\t\t\t\t'rect.gauge-delta-arrow-backdrop'\n\t\t\t\t\t)\n\t\t\t\t\t\t.attr('width', '16')\n\t\t\t\t\t\t.attr('height', '16')\n\t\t\t\t\t\t.attr('fill', 'none');\n\n\t\t\t\t\t// Draw the arrow with status\n\t\t\t\t\tconst status = Tools.getProperty(\n\t\t\t\t\t\toptions,\n\t\t\t\t\t\t'gauge',\n\t\t\t\t\t\t'status'\n\t\t\t\t\t);\n\t\t\t\t\tDOMUtils.appendOrSelect(\n\t\t\t\t\t\tdeltaArrowSelection,\n\t\t\t\t\t\t'polygon.gauge-delta-arrow'\n\t\t\t\t\t)\n\t\t\t\t\t\t.attr(\n\t\t\t\t\t\t\t'class',\n\t\t\t\t\t\t\tstatus !== null\n\t\t\t\t\t\t\t\t? `gauge-delta-arrow status--${status}`\n\t\t\t\t\t\t\t\t: ''\n\t\t\t\t\t\t)\n\t\t\t\t\t\t.attr('points', self.getArrow(delta));\n\t\t\t\t});\n\n\t\t\tdeltaArrow.exit().remove();\n\t\t\tdeltaNumber.exit().remove();\n\t\t}\n\t}\n\n\tgetInnerRadius() {\n\t\t// Compute the outer radius needed\n\t\tconst radius = this.computeRadius();\n\t\tconst arcWidth = Tools.getProperty(\n\t\t\tthis.getOptions(),\n\t\t\t'gauge',\n\t\t\t'arcWidth'\n\t\t);\n\t\treturn radius - arcWidth;\n\t}\n\n\taddEventListeners() {\n\t\tconst self = this;\n\t\tthis.parent\n\t\t\t.selectAll('path.arc-foreground')\n\t\t\t.on('mouseover', function (event, datum) {\n\t\t\t\t// Dispatch mouse event\n\t\t\t\tself.services.events.dispatchEvent(Events.Gauge.ARC_MOUSEOVER, {\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('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(Events.Gauge.ARC_MOUSEMOVE, {\n\t\t\t\t\tevent,\n\t\t\t\t\telement: hoveredElement,\n\t\t\t\t\tdatum,\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.Gauge.ARC_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\n\t\t\t\t// Dispatch mouse event\n\t\t\t\tself.services.events.dispatchEvent(Events.Gauge.ARC_MOUSEOUT, {\n\t\t\t\t\tevent,\n\t\t\t\t\telement: hoveredElement,\n\t\t\t\t\tdatum,\n\t\t\t\t});\n\t\t\t});\n\t}\n\n\t// Helper functions\n\tprotected computeRadius() {\n\t\tconst options = this.getOptions();\n\t\tconst arcType = Tools.getProperty(options, 'gauge', 'type');\n\n\t\tconst { width, height } = DOMUtils.getSVGElementSize(this.parent, {\n\t\t\tuseAttrs: true,\n\t\t});\n\t\tconst radius =\n\t\t\tarcType === GaugeTypes.SEMI\n\t\t\t\t? Math.min(width / 2, height)\n\t\t\t\t: Math.min(width / 2, height / 2);\n\n\t\treturn radius;\n\t}\n}\n"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@carbon/charts",
3
- "version": "1.6.7",
3
+ "version": "1.6.8",
4
4
  "description": "Carbon charting components",
5
5
  "main": "./bundle.js",
6
6
  "module": "./index.js",
@@ -394,7 +394,7 @@
394
394
  "signature": "bbe92ad369cbe909fd41204c6ad2f6da337a686f1a14de3cbeff7ed11b09f4ea"
395
395
  },
396
396
  "../src/components/graphs/gauge.ts": {
397
- "version": "ae52a77640e3b957e5ca3e51648846b0b0dee3bd3553e430e410b099dd7bda9d",
397
+ "version": "b99a5142abf5b250309807130b3159cf2083efa6126a91b5c603d1c30dea7232",
398
398
  "signature": "a3122d5f8c1d5ca843520898576a1cbf1734162e70add5f87ce1cb05db145b04"
399
399
  },
400
400
  "../src/components/graphs/donut.ts": {