@carbon/charts 0.41.57 → 0.41.61

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.
Files changed (103) hide show
  1. package/CHANGELOG.md +37 -0
  2. package/axis-chart.js +2 -2
  3. package/axis-chart.js.map +1 -1
  4. package/build/demo/data/CHART_TYPES.d.ts +5 -0
  5. package/build/demo/data/bar.d.ts +55 -0
  6. package/build/demo/data/bullet.d.ts +30 -0
  7. package/build/demo/data/index.d.ts +1 -0
  8. package/build/src/charts/bullet.d.ts +6 -0
  9. package/build/src/charts/index.d.ts +1 -0
  10. package/build/src/components/essentials/legend.d.ts +1 -1
  11. package/build/src/components/graphs/bullet.d.ts +11 -0
  12. package/build/src/components/index.d.ts +1 -0
  13. package/build/src/configuration-non-customizable.d.ts +12 -5
  14. package/build/src/configuration.d.ts +2 -1
  15. package/build/src/interfaces/axis-scales.d.ts +7 -0
  16. package/build/src/interfaces/charts.d.ts +11 -0
  17. package/build/src/interfaces/components.d.ts +2 -1
  18. package/build/src/interfaces/enums.d.ts +2 -1
  19. package/bundle.js +1 -1
  20. package/chart.js +1 -1
  21. package/chart.js.map +1 -1
  22. package/charts/bullet.d.ts +6 -0
  23. package/charts/bullet.js +48 -0
  24. package/charts/bullet.js.map +1 -0
  25. package/charts/index.d.ts +1 -0
  26. package/charts/index.js +1 -0
  27. package/charts/index.js.map +1 -1
  28. package/components/axes/axis.js +2 -1
  29. package/components/axes/axis.js.map +1 -1
  30. package/components/axes/grid.js +2 -2
  31. package/components/axes/grid.js.map +1 -1
  32. package/components/essentials/legend.d.ts +1 -1
  33. package/components/essentials/legend.js +31 -22
  34. package/components/essentials/legend.js.map +1 -1
  35. package/components/essentials/tooltip-axis.js +27 -7
  36. package/components/essentials/tooltip-axis.js.map +1 -1
  37. package/components/graphs/bar-simple.js +11 -2
  38. package/components/graphs/bar-simple.js.map +1 -1
  39. package/components/graphs/bubble.js +7 -6
  40. package/components/graphs/bubble.js.map +1 -1
  41. package/components/graphs/bullet.d.ts +11 -0
  42. package/components/graphs/bullet.js +360 -0
  43. package/components/graphs/bullet.js.map +1 -0
  44. package/components/index.d.ts +1 -0
  45. package/components/index.js +1 -0
  46. package/components/index.js.map +1 -1
  47. package/configuration-non-customizable.d.ts +12 -5
  48. package/configuration-non-customizable.js +14 -6
  49. package/configuration-non-customizable.js.map +1 -1
  50. package/configuration.d.ts +2 -1
  51. package/configuration.js +17 -0
  52. package/configuration.js.map +1 -1
  53. package/demo/data/CHART_TYPES.d.ts +5 -0
  54. package/demo/data/CHART_TYPES.js +5 -0
  55. package/demo/data/CHART_TYPES.js.map +1 -1
  56. package/demo/data/bar.d.ts +55 -0
  57. package/demo/data/bar.js +71 -2
  58. package/demo/data/bar.js.map +1 -1
  59. package/demo/data/bullet.d.ts +30 -0
  60. package/demo/data/bullet.js +75 -0
  61. package/demo/data/bullet.js.map +1 -0
  62. package/demo/data/bundle.js +1 -1
  63. package/demo/data/index.d.ts +1 -0
  64. package/demo/data/index.js +33 -0
  65. package/demo/data/index.js.map +1 -1
  66. package/demo/styles.css +172 -0
  67. package/demo/styles.css.map +1 -1
  68. package/demo/styles.min.css +1 -1
  69. package/demo/styles.min.css.map +1 -1
  70. package/demo/tsconfig.tsbuildinfo +20 -6
  71. package/interfaces/axis-scales.d.ts +7 -0
  72. package/interfaces/axis-scales.js.map +1 -1
  73. package/interfaces/charts.d.ts +11 -0
  74. package/interfaces/charts.js.map +1 -1
  75. package/interfaces/components.d.ts +2 -1
  76. package/interfaces/components.js.map +1 -1
  77. package/interfaces/enums.d.ts +2 -1
  78. package/interfaces/enums.js +1 -0
  79. package/interfaces/enums.js.map +1 -1
  80. package/package.json +1 -1
  81. package/services/scales-cartesian.js +23 -5
  82. package/services/scales-cartesian.js.map +1 -1
  83. package/styles/color-palatte.scss +16 -0
  84. package/styles/colors.scss +62 -1
  85. package/styles/graphs/_bullet.scss +67 -0
  86. package/styles/graphs/index.scss +1 -0
  87. package/styles-g10.css +45 -0
  88. package/styles-g10.css.map +1 -1
  89. package/styles-g10.min.css +1 -1
  90. package/styles-g10.min.css.map +1 -1
  91. package/styles-g100.css +45 -0
  92. package/styles-g100.css.map +1 -1
  93. package/styles-g100.min.css +1 -1
  94. package/styles-g100.min.css.map +1 -1
  95. package/styles-g90.css +45 -0
  96. package/styles-g90.css.map +1 -1
  97. package/styles-g90.min.css +1 -1
  98. package/styles-g90.min.css.map +1 -1
  99. package/styles.css +45 -0
  100. package/styles.css.map +1 -1
  101. package/styles.min.css +1 -1
  102. package/styles.min.css.map +1 -1
  103. package/tsconfig.tsbuildinfo +73 -26
@@ -0,0 +1,360 @@
1
+ var __extends = (this && this.__extends) || (function () {
2
+ var extendStatics = function (d, b) {
3
+ extendStatics = Object.setPrototypeOf ||
4
+ ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
5
+ function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
6
+ return extendStatics(d, b);
7
+ };
8
+ return function (d, b) {
9
+ extendStatics(d, b);
10
+ function __() { this.constructor = d; }
11
+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
12
+ };
13
+ })();
14
+ // Internal Imports
15
+ import { Component } from '../component';
16
+ import { Events, Roles, ColorClassNameTypes } from '../../interfaces';
17
+ import { Tools } from '../../tools';
18
+ import { DOMUtils } from '../../services';
19
+ // D3 Imports
20
+ import { select } from 'd3-selection';
21
+ var Bullet = /** @class */ (function (_super) {
22
+ __extends(Bullet, _super);
23
+ function Bullet() {
24
+ var _this = _super !== null && _super.apply(this, arguments) || this;
25
+ _this.type = 'bullet';
26
+ _this.handleLegendOnHover = function (event) {
27
+ var hoveredElement = event.detail.hoveredElement;
28
+ var groupMapsTo = _this.getOptions().data.groupMapsTo;
29
+ _this.parent
30
+ .selectAll('path.bar')
31
+ .transition(_this.services.transitions.getTransition('legend-hover-simple-bar'))
32
+ .attr('opacity', function (d) {
33
+ return d[groupMapsTo] !== hoveredElement.datum()['name'] ? 0.3 : 1;
34
+ });
35
+ };
36
+ _this.handleLegendMouseOut = function (event) {
37
+ _this.parent
38
+ .selectAll('path.bar')
39
+ .transition(_this.services.transitions.getTransition('legend-mouseout-simple-bar'))
40
+ .attr('opacity', 1);
41
+ };
42
+ return _this;
43
+ }
44
+ Bullet.prototype.init = function () {
45
+ var eventsFragment = this.services.events;
46
+ // Highlight correct circle on legend item hovers
47
+ eventsFragment.addEventListener(Events.Legend.ITEM_HOVER, this.handleLegendOnHover);
48
+ // Un-highlight circles on legend item mouseouts
49
+ eventsFragment.addEventListener(Events.Legend.ITEM_MOUSEOUT, this.handleLegendMouseOut);
50
+ };
51
+ Bullet.prototype.render = function (animate) {
52
+ var _this = this;
53
+ var options = this.getOptions();
54
+ var groupMapsTo = options.data.groupMapsTo;
55
+ // Grab container SVG
56
+ var svg = this.getContainerSVG({ withinChartClip: true });
57
+ var data = this.model.getDisplayData(this.configs.groups);
58
+ var rangeScale = this.services.cartesianScales.getRangeScale();
59
+ var rangeIdentifier = this.services.cartesianScales.getRangeIdentifier();
60
+ var _a = rangeScale.range(), rangeScaleStart = _a[0], rangeScaleEnd = _a[1];
61
+ var _b = rangeScale.domain(), rangeScaleDomainMin = _b[0], rangeScaleDomainMax = _b[1];
62
+ var renderRangeBoxes = function () {
63
+ var rangeBoxData = [];
64
+ data.forEach(function (datum) {
65
+ if (datum.ranges) {
66
+ datum.ranges.forEach(function (range, i) {
67
+ if (range !== null &&
68
+ range !== undefined &&
69
+ range < rangeScaleDomainMax) {
70
+ rangeBoxData.push({
71
+ datum: datum,
72
+ value: range,
73
+ order: i + 1,
74
+ });
75
+ }
76
+ });
77
+ }
78
+ else {
79
+ rangeBoxData.push({
80
+ datum: datum,
81
+ order: 1,
82
+ });
83
+ }
84
+ });
85
+ // Update data on all lines
86
+ var rangeBoxes = DOMUtils.appendOrSelect(svg, 'g.range-boxes')
87
+ .selectAll('path.range-box')
88
+ .data(rangeBoxData, function (datum) { return datum[groupMapsTo] + "-" + datum.order; });
89
+ // Remove lines that are no longer needed
90
+ rangeBoxes.exit().attr('opacity', 0).remove();
91
+ // Add the paths that need to be introduced
92
+ var rangeBoxesEnter = rangeBoxes
93
+ .enter()
94
+ .append('path')
95
+ .attr('opacity', 0);
96
+ rangeBoxesEnter
97
+ .merge(rangeBoxes)
98
+ .attr('class', function (d) { return "range-box order-" + d.order; })
99
+ .transition(_this.services.transitions.getTransition('bullet-range-box-update-enter', animate))
100
+ .attr('d', function (d, i) {
101
+ /*
102
+ * Orientation support for horizontal/vertical bar charts
103
+ * Determine coordinates needed for a vertical set of paths
104
+ * to draw the bars needed, and pass those coordinates down to
105
+ * generateSVGPathString() to decide whether it needs to flip them
106
+ */
107
+ var lineHeight = 16;
108
+ var x0, x1, y0, y1;
109
+ if (d.order === 1) {
110
+ x0 =
111
+ _this.services.cartesianScales.getDomainValue(d.datum, i) -
112
+ lineHeight / 2;
113
+ x1 = x0 + lineHeight;
114
+ y0 = rangeScaleEnd - 2;
115
+ y1 = rangeScaleStart + 1;
116
+ }
117
+ else {
118
+ x0 =
119
+ _this.services.cartesianScales.getDomainValue(d.datum, i) -
120
+ lineHeight / 2;
121
+ x1 = x0 + lineHeight;
122
+ y0 = _this.services.cartesianScales.getRangeValue(d.value, i);
123
+ y1 = rangeScaleEnd;
124
+ }
125
+ return Tools.generateSVGPathString({ x0: x0, x1: x1, y0: y0, y1: y1 }, _this.services.cartesianScales.getOrientation());
126
+ })
127
+ .attr('opacity', 1);
128
+ };
129
+ var renderBars = function () {
130
+ // Update data on all bars
131
+ var bars = DOMUtils.appendOrSelect(svg, 'g.bars')
132
+ .selectAll('path.bar')
133
+ .data(data, function (datum) { return datum[groupMapsTo]; });
134
+ // Remove bars that are no longer needed
135
+ bars.exit().attr('opacity', 0).remove();
136
+ // Add the paths that need to be introduced
137
+ var barsEnter = bars.enter().append('path').attr('opacity', 0);
138
+ barsEnter
139
+ .merge(bars)
140
+ .classed('bar', true)
141
+ .transition(_this.services.transitions.getTransition('bullet-bar-update-enter', animate))
142
+ .attr('class', function (d) {
143
+ return _this.model.getColorClassName({
144
+ classNameTypes: [ColorClassNameTypes.FILL],
145
+ dataGroupName: d[groupMapsTo],
146
+ originalClassName: 'bar',
147
+ });
148
+ })
149
+ .style('fill', function (d) { return _this.model.getFillColor(d[groupMapsTo]); })
150
+ .attr('d', function (d, i) {
151
+ /*
152
+ * Orientation support for horizontal/vertical bar charts
153
+ * Determine coordinates needed for a vertical set of paths
154
+ * to draw the bars needed, and pass those coordinates down to
155
+ * generateSVGPathString() to decide whether it needs to flip them
156
+ */
157
+ var barWidth = 8;
158
+ var x0 = _this.services.cartesianScales.getDomainValue(d, i) -
159
+ barWidth / 2;
160
+ var x1 = x0 + barWidth;
161
+ var y0 = _this.services.cartesianScales.getRangeValue(0) + 1;
162
+ var y1 = _this.services.cartesianScales.getRangeValue(d, i);
163
+ return Tools.generateSVGPathString({ x0: x0, x1: x1, y0: y0, y1: y1 }, _this.services.cartesianScales.getOrientation());
164
+ })
165
+ .attr('opacity', 1)
166
+ // a11y
167
+ .attr('role', Roles.GRAPHICS_SYMBOL)
168
+ .attr('aria-roledescription', 'bar')
169
+ .attr('aria-label', function (d) { return d.value; });
170
+ };
171
+ var renderTargetLines = function () {
172
+ // Update data on all lines
173
+ var lines = DOMUtils.appendOrSelect(svg, 'g.markers')
174
+ .selectAll('path.marker')
175
+ .data(data.filter(function (d) { return Tools.getProperty(d, 'marker') !== null; }), function (datum) { return datum[groupMapsTo]; });
176
+ // Remove lines that are no longer needed
177
+ lines.exit().attr('opacity', 0).remove();
178
+ // Add the paths that need to be introduced
179
+ var linesEnter = lines.enter().append('path').attr('opacity', 0);
180
+ linesEnter
181
+ .merge(lines)
182
+ .classed('marker', true)
183
+ .transition(_this.services.transitions.getTransition('bullet-marker-update-enter', animate))
184
+ .attr('d', function (d, i) {
185
+ /*
186
+ * Orientation support for horizontal/vertical bar charts
187
+ * Determine coordinates needed for a vertical set of paths
188
+ * to draw the bars needed, and pass those coordinates down to
189
+ * generateSVGPathString() to decide whether it needs to flip them
190
+ */
191
+ var lineHeight = 24;
192
+ var x0 = _this.services.cartesianScales.getDomainValue(d, i) -
193
+ lineHeight / 2;
194
+ var x1 = x0 + lineHeight;
195
+ var y0 = _this.services.cartesianScales.getRangeValue(d.marker, i);
196
+ var y1 = y0;
197
+ return Tools.generateSVGPathString({ x0: x0, x1: x1, y0: y0, y1: y1 }, _this.services.cartesianScales.getOrientation());
198
+ })
199
+ .attr('opacity', 1);
200
+ };
201
+ var renderTargetQuartiles = function () {
202
+ var quartilesData = [];
203
+ data.filter(function (d) { return Tools.getProperty(d, 'marker') !== null; }).forEach(function (d) {
204
+ var value = d.marker;
205
+ var barValue = d[rangeIdentifier];
206
+ quartilesData = quartilesData.concat([
207
+ { datum: d, value: value * 0.25, barValue: barValue },
208
+ { datum: d, value: value * 0.5, barValue: barValue },
209
+ { datum: d, value: value * 0.75, barValue: barValue },
210
+ ]);
211
+ });
212
+ // Update data on all lines
213
+ var lines = DOMUtils.appendOrSelect(svg, 'g.quartiles')
214
+ .selectAll('path.quartile')
215
+ .data(quartilesData, function (datum) { return datum[groupMapsTo]; });
216
+ // Remove lines that are no longer needed
217
+ lines.exit().attr('opacity', 0).remove();
218
+ // Add the paths that need to be introduced
219
+ var linesEnter = lines.enter().append('path').attr('opacity', 0);
220
+ linesEnter
221
+ .merge(lines)
222
+ .attr('class', function (d) {
223
+ return "quartile " + (d.value <= d.barValue ? 'over-bar' : '');
224
+ })
225
+ .transition(_this.services.transitions.getTransition('bullet-quartile-update-enter', animate))
226
+ .attr('d', function (_a, i) {
227
+ var d = _a.datum, value = _a.value;
228
+ /*
229
+ * Orientation support for horizontal/vertical bar charts
230
+ * Determine coordinates needed for a vertical set of paths
231
+ * to draw the bars needed, and pass those coordinates down to
232
+ * generateSVGPathString() to decide whether it needs to flip them
233
+ */
234
+ var lineHeight = 4;
235
+ // if it lines up with a performance area border
236
+ // make the line taller
237
+ if (d.ranges && d.ranges.indexOf(value) !== -1) {
238
+ lineHeight = 8;
239
+ }
240
+ var x0 = _this.services.cartesianScales.getDomainValue(d, i) -
241
+ lineHeight / 2;
242
+ var x1 = x0 + lineHeight;
243
+ var y0 = _this.services.cartesianScales.getRangeValue(value, i);
244
+ var y1 = y0;
245
+ return Tools.generateSVGPathString({ x0: x0, x1: x1, y0: y0, y1: y1 }, _this.services.cartesianScales.getOrientation());
246
+ })
247
+ .attr('opacity', 1);
248
+ };
249
+ renderRangeBoxes();
250
+ renderBars();
251
+ renderTargetLines();
252
+ renderTargetQuartiles();
253
+ // Add event listeners to elements drawn
254
+ this.addEventListeners();
255
+ };
256
+ Bullet.prototype.getMatchingRangeIndexForDatapoint = function (datum) {
257
+ var matchingRangeIndex;
258
+ for (var i = datum.ranges.length - 1; i > 0; i--) {
259
+ var range = datum.ranges[i];
260
+ if (datum.value >= range) {
261
+ matchingRangeIndex = i;
262
+ return matchingRangeIndex;
263
+ }
264
+ }
265
+ return 0;
266
+ };
267
+ Bullet.prototype.addEventListeners = function () {
268
+ var self = this;
269
+ var options = this.getOptions();
270
+ var groupMapsTo = options.data.groupMapsTo;
271
+ var rangeIdentifier = this.services.cartesianScales.getRangeIdentifier();
272
+ this.parent
273
+ .selectAll('path.bar')
274
+ .on('mouseover', function (datum) {
275
+ var hoveredElement = select(this);
276
+ hoveredElement.classed('hovered', true);
277
+ hoveredElement.transition(self.services.transitions.getTransition('graph_element_mouseover_fill_update'));
278
+ // Dispatch mouse event
279
+ self.services.events.dispatchEvent(Events.Bar.BAR_MOUSEOVER, {
280
+ element: hoveredElement,
281
+ datum: datum,
282
+ });
283
+ var performanceAreaTitles = Tools.getProperty(options, 'bullet', 'performanceAreaTitles');
284
+ var matchingRangeIndex = self.getMatchingRangeIndexForDatapoint(datum);
285
+ self.services.events.dispatchEvent(Events.Tooltip.SHOW, {
286
+ hoveredElement: hoveredElement,
287
+ items: [
288
+ {
289
+ label: options.tooltip.groupLabel || 'Group',
290
+ value: datum[groupMapsTo],
291
+ class: self.model.getColorClassName({
292
+ classNameTypes: [ColorClassNameTypes.TOOLTIP],
293
+ dataGroupName: datum[groupMapsTo],
294
+ }),
295
+ },
296
+ {
297
+ label: 'Value',
298
+ value: datum[rangeIdentifier],
299
+ },
300
+ {
301
+ label: 'Target',
302
+ value: datum.marker,
303
+ },
304
+ {
305
+ label: 'Percentage',
306
+ value: Math.floor((datum[rangeIdentifier] / datum.marker) * 100) + "%",
307
+ },
308
+ {
309
+ label: 'Performance',
310
+ value: performanceAreaTitles[matchingRangeIndex],
311
+ },
312
+ ],
313
+ });
314
+ })
315
+ .on('mousemove', function (datum) {
316
+ // Dispatch mouse event
317
+ self.services.events.dispatchEvent(Events.Bar.BAR_MOUSEMOVE, {
318
+ element: select(this),
319
+ datum: datum,
320
+ });
321
+ self.services.events.dispatchEvent(Events.Tooltip.MOVE);
322
+ })
323
+ .on('click', function (datum) {
324
+ // Dispatch mouse event
325
+ self.services.events.dispatchEvent(Events.Bar.BAR_CLICK, {
326
+ element: select(this),
327
+ datum: datum,
328
+ });
329
+ })
330
+ .on('mouseout', function (datum) {
331
+ var hoveredElement = select(this);
332
+ hoveredElement.classed('hovered', false);
333
+ hoveredElement.transition(self.services.transitions.getTransition('graph_element_mouseout_fill_update'));
334
+ // Dispatch mouse event
335
+ self.services.events.dispatchEvent(Events.Bar.BAR_MOUSEOUT, {
336
+ element: hoveredElement,
337
+ datum: datum,
338
+ });
339
+ // Hide tooltip
340
+ self.services.events.dispatchEvent(Events.Tooltip.HIDE, {
341
+ hoveredElement: hoveredElement,
342
+ });
343
+ });
344
+ };
345
+ Bullet.prototype.destroy = function () {
346
+ // Remove event listeners
347
+ this.parent
348
+ .selectAll('path.bar')
349
+ .on('mouseover', null)
350
+ .on('mousemove', null)
351
+ .on('mouseout', null);
352
+ // Remove legend listeners
353
+ var eventsFragment = this.services.events;
354
+ eventsFragment.removeEventListener(Events.Legend.ITEM_HOVER, this.handleLegendOnHover);
355
+ eventsFragment.removeEventListener(Events.Legend.ITEM_MOUSEOUT, this.handleLegendMouseOut);
356
+ };
357
+ return Bullet;
358
+ }(Component));
359
+ export { Bullet };
360
+ //# sourceMappingURL=../../../src/components/graphs/bullet.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bullet.js","sourceRoot":"","sources":["bullet.ts"],"names":[],"mappings":"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","sourcesContent":["// Internal Imports\nimport { Component } from '../component';\nimport { Events, Roles, ColorClassNameTypes } from '../../interfaces';\nimport { Tools } from '../../tools';\nimport { DOMUtils } from '../../services';\n\n// D3 Imports\nimport { select } from 'd3-selection';\n\nexport class Bullet extends Component {\n\ttype = 'bullet';\n\n\tinit() {\n\t\tconst eventsFragment = this.services.events;\n\n\t\t// Highlight correct circle on legend item hovers\n\t\teventsFragment.addEventListener(\n\t\t\tEvents.Legend.ITEM_HOVER,\n\t\t\tthis.handleLegendOnHover\n\t\t);\n\n\t\t// Un-highlight circles on legend item mouseouts\n\t\teventsFragment.addEventListener(\n\t\t\tEvents.Legend.ITEM_MOUSEOUT,\n\t\t\tthis.handleLegendMouseOut\n\t\t);\n\t}\n\n\trender(animate: boolean) {\n\t\tconst options = this.getOptions();\n\t\tconst { groupMapsTo } = options.data;\n\n\t\t// Grab container SVG\n\t\tconst svg = this.getContainerSVG({ withinChartClip: true });\n\n\t\tconst data = this.model.getDisplayData(this.configs.groups);\n\n\t\tconst rangeScale = this.services.cartesianScales.getRangeScale();\n\t\tconst rangeIdentifier = this.services.cartesianScales.getRangeIdentifier();\n\t\tconst [rangeScaleStart, rangeScaleEnd] = rangeScale.range();\n\t\tconst [rangeScaleDomainMin, rangeScaleDomainMax] = rangeScale.domain();\n\n\t\tconst renderRangeBoxes = () => {\n\t\t\tconst rangeBoxData = [];\n\t\t\tdata.forEach((datum) => {\n\t\t\t\tif (datum.ranges) {\n\t\t\t\t\tdatum.ranges.forEach((range, i) => {\n\t\t\t\t\t\tif (\n\t\t\t\t\t\t\trange !== null &&\n\t\t\t\t\t\t\trange !== undefined &&\n\t\t\t\t\t\t\trange < rangeScaleDomainMax\n\t\t\t\t\t\t) {\n\t\t\t\t\t\t\trangeBoxData.push({\n\t\t\t\t\t\t\t\tdatum,\n\t\t\t\t\t\t\t\tvalue: range,\n\t\t\t\t\t\t\t\torder: i + 1,\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t} else {\n\t\t\t\t\trangeBoxData.push({\n\t\t\t\t\t\tdatum,\n\t\t\t\t\t\torder: 1,\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t});\n\n\t\t\t// Update data on all lines\n\t\t\tconst rangeBoxes = DOMUtils.appendOrSelect(svg, 'g.range-boxes')\n\t\t\t\t.selectAll('path.range-box')\n\t\t\t\t.data(\n\t\t\t\t\trangeBoxData,\n\t\t\t\t\t(datum) => `${datum[groupMapsTo]}-${datum.order}`\n\t\t\t\t);\n\n\t\t\t// Remove lines that are no longer needed\n\t\t\trangeBoxes.exit().attr('opacity', 0).remove();\n\n\t\t\t// Add the paths that need to be introduced\n\t\t\tconst rangeBoxesEnter = rangeBoxes\n\t\t\t\t.enter()\n\t\t\t\t.append('path')\n\t\t\t\t.attr('opacity', 0);\n\n\t\t\trangeBoxesEnter\n\t\t\t\t.merge(rangeBoxes)\n\t\t\t\t.attr('class', (d) => `range-box order-${d.order}`)\n\t\t\t\t.transition(\n\t\t\t\t\tthis.services.transitions.getTransition(\n\t\t\t\t\t\t'bullet-range-box-update-enter',\n\t\t\t\t\t\tanimate\n\t\t\t\t\t)\n\t\t\t\t)\n\t\t\t\t.attr('d', (d, i) => {\n\t\t\t\t\t/*\n\t\t\t\t\t * Orientation support for horizontal/vertical bar charts\n\t\t\t\t\t * Determine coordinates needed for a vertical set of paths\n\t\t\t\t\t * to draw the bars needed, and pass those coordinates down to\n\t\t\t\t\t * generateSVGPathString() to decide whether it needs to flip them\n\t\t\t\t\t */\n\t\t\t\t\tconst lineHeight = 16;\n\n\t\t\t\t\tlet x0, x1, y0, y1;\n\t\t\t\t\tif (d.order === 1) {\n\t\t\t\t\t\tx0 =\n\t\t\t\t\t\t\tthis.services.cartesianScales.getDomainValue(\n\t\t\t\t\t\t\t\td.datum,\n\t\t\t\t\t\t\t\ti\n\t\t\t\t\t\t\t) -\n\t\t\t\t\t\t\tlineHeight / 2;\n\t\t\t\t\t\tx1 = x0 + lineHeight;\n\t\t\t\t\t\ty0 = rangeScaleEnd - 2;\n\t\t\t\t\t\ty1 = rangeScaleStart + 1;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tx0 =\n\t\t\t\t\t\t\tthis.services.cartesianScales.getDomainValue(\n\t\t\t\t\t\t\t\td.datum,\n\t\t\t\t\t\t\t\ti\n\t\t\t\t\t\t\t) -\n\t\t\t\t\t\t\tlineHeight / 2;\n\t\t\t\t\t\tx1 = x0 + lineHeight;\n\t\t\t\t\t\ty0 = this.services.cartesianScales.getRangeValue(\n\t\t\t\t\t\t\td.value,\n\t\t\t\t\t\t\ti\n\t\t\t\t\t\t);\n\t\t\t\t\t\ty1 = rangeScaleEnd;\n\t\t\t\t\t}\n\n\t\t\t\t\treturn Tools.generateSVGPathString(\n\t\t\t\t\t\t{ x0, x1, y0, y1 },\n\t\t\t\t\t\tthis.services.cartesianScales.getOrientation()\n\t\t\t\t\t);\n\t\t\t\t})\n\t\t\t\t.attr('opacity', 1);\n\t\t};\n\n\t\tconst renderBars = () => {\n\t\t\t// Update data on all bars\n\t\t\tconst bars = DOMUtils.appendOrSelect(svg, 'g.bars')\n\t\t\t\t.selectAll('path.bar')\n\t\t\t\t.data(data, (datum) => datum[groupMapsTo]);\n\n\t\t\t// Remove bars that are no longer needed\n\t\t\tbars.exit().attr('opacity', 0).remove();\n\n\t\t\t// Add the paths that need to be introduced\n\t\t\tconst barsEnter = bars.enter().append('path').attr('opacity', 0);\n\n\t\t\tbarsEnter\n\t\t\t\t.merge(bars)\n\t\t\t\t.classed('bar', true)\n\t\t\t\t.transition(\n\t\t\t\t\tthis.services.transitions.getTransition(\n\t\t\t\t\t\t'bullet-bar-update-enter',\n\t\t\t\t\t\tanimate\n\t\t\t\t\t)\n\t\t\t\t)\n\t\t\t\t.attr('class', (d) =>\n\t\t\t\t\tthis.model.getColorClassName({\n\t\t\t\t\t\tclassNameTypes: [ColorClassNameTypes.FILL],\n\t\t\t\t\t\tdataGroupName: d[groupMapsTo],\n\t\t\t\t\t\toriginalClassName: 'bar',\n\t\t\t\t\t})\n\t\t\t\t)\n\t\t\t\t.style('fill', (d) => this.model.getFillColor(d[groupMapsTo]))\n\t\t\t\t.attr('d', (d, i) => {\n\t\t\t\t\t/*\n\t\t\t\t\t * Orientation support for horizontal/vertical bar charts\n\t\t\t\t\t * Determine coordinates needed for a vertical set of paths\n\t\t\t\t\t * to draw the bars needed, and pass those coordinates down to\n\t\t\t\t\t * generateSVGPathString() to decide whether it needs to flip them\n\t\t\t\t\t */\n\t\t\t\t\tconst barWidth = 8;\n\t\t\t\t\tconst x0 =\n\t\t\t\t\t\tthis.services.cartesianScales.getDomainValue(d, i) -\n\t\t\t\t\t\tbarWidth / 2;\n\t\t\t\t\tconst x1 = x0 + barWidth;\n\t\t\t\t\tconst y0 =\n\t\t\t\t\t\tthis.services.cartesianScales.getRangeValue(0) + 1;\n\t\t\t\t\tconst y1 = this.services.cartesianScales.getRangeValue(\n\t\t\t\t\t\td,\n\t\t\t\t\t\ti\n\t\t\t\t\t);\n\n\t\t\t\t\treturn Tools.generateSVGPathString(\n\t\t\t\t\t\t{ x0, x1, y0, y1 },\n\t\t\t\t\t\tthis.services.cartesianScales.getOrientation()\n\t\t\t\t\t);\n\t\t\t\t})\n\t\t\t\t.attr('opacity', 1)\n\t\t\t\t// a11y\n\t\t\t\t.attr('role', Roles.GRAPHICS_SYMBOL)\n\t\t\t\t.attr('aria-roledescription', 'bar')\n\t\t\t\t.attr('aria-label', (d) => d.value);\n\t\t};\n\n\t\tconst renderTargetLines = () => {\n\t\t\t// Update data on all lines\n\t\t\tconst lines = DOMUtils.appendOrSelect(svg, 'g.markers')\n\t\t\t\t.selectAll('path.marker')\n\t\t\t\t.data(\n\t\t\t\t\tdata.filter((d) => Tools.getProperty(d, 'marker') !== null),\n\t\t\t\t\t(datum) => datum[groupMapsTo]\n\t\t\t\t);\n\n\t\t\t// Remove lines that are no longer needed\n\t\t\tlines.exit().attr('opacity', 0).remove();\n\n\t\t\t// Add the paths that need to be introduced\n\t\t\tconst linesEnter = lines.enter().append('path').attr('opacity', 0);\n\n\t\t\tlinesEnter\n\t\t\t\t.merge(lines)\n\t\t\t\t.classed('marker', true)\n\t\t\t\t.transition(\n\t\t\t\t\tthis.services.transitions.getTransition(\n\t\t\t\t\t\t'bullet-marker-update-enter',\n\t\t\t\t\t\tanimate\n\t\t\t\t\t)\n\t\t\t\t)\n\t\t\t\t.attr('d', (d, i) => {\n\t\t\t\t\t/*\n\t\t\t\t\t * Orientation support for horizontal/vertical bar charts\n\t\t\t\t\t * Determine coordinates needed for a vertical set of paths\n\t\t\t\t\t * to draw the bars needed, and pass those coordinates down to\n\t\t\t\t\t * generateSVGPathString() to decide whether it needs to flip them\n\t\t\t\t\t */\n\t\t\t\t\tconst lineHeight = 24;\n\t\t\t\t\tconst x0 =\n\t\t\t\t\t\tthis.services.cartesianScales.getDomainValue(d, i) -\n\t\t\t\t\t\tlineHeight / 2;\n\t\t\t\t\tconst x1 = x0 + lineHeight;\n\t\t\t\t\tconst y0 = this.services.cartesianScales.getRangeValue(\n\t\t\t\t\t\td.marker,\n\t\t\t\t\t\ti\n\t\t\t\t\t);\n\t\t\t\t\tconst y1 = y0;\n\n\t\t\t\t\treturn Tools.generateSVGPathString(\n\t\t\t\t\t\t{ x0, x1, y0, y1 },\n\t\t\t\t\t\tthis.services.cartesianScales.getOrientation()\n\t\t\t\t\t);\n\t\t\t\t})\n\t\t\t\t.attr('opacity', 1);\n\t\t};\n\n\t\tconst renderTargetQuartiles = () => {\n\t\t\tlet quartilesData = [];\n\t\t\tdata.filter((d) => Tools.getProperty(d, 'marker') !== null).forEach(\n\t\t\t\t(d) => {\n\t\t\t\t\tconst value = d.marker;\n\t\t\t\t\tconst barValue = d[rangeIdentifier];\n\n\t\t\t\t\tquartilesData = quartilesData.concat([\n\t\t\t\t\t\t{ datum: d, value: value * 0.25, barValue },\n\t\t\t\t\t\t{ datum: d, value: value * 0.5, barValue },\n\t\t\t\t\t\t{ datum: d, value: value * 0.75, barValue },\n\t\t\t\t\t]);\n\t\t\t\t}\n\t\t\t);\n\n\t\t\t// Update data on all lines\n\t\t\tconst lines = DOMUtils.appendOrSelect(svg, 'g.quartiles')\n\t\t\t\t.selectAll('path.quartile')\n\t\t\t\t.data(quartilesData, (datum) => datum[groupMapsTo]);\n\n\t\t\t// Remove lines that are no longer needed\n\t\t\tlines.exit().attr('opacity', 0).remove();\n\n\t\t\t// Add the paths that need to be introduced\n\t\t\tconst linesEnter = lines.enter().append('path').attr('opacity', 0);\n\n\t\t\tlinesEnter\n\t\t\t\t.merge(lines)\n\t\t\t\t.attr('class', (d) => {\n\t\t\t\t\treturn `quartile ${\n\t\t\t\t\t\td.value <= d.barValue ? 'over-bar' : ''\n\t\t\t\t\t}`;\n\t\t\t\t})\n\t\t\t\t.transition(\n\t\t\t\t\tthis.services.transitions.getTransition(\n\t\t\t\t\t\t'bullet-quartile-update-enter',\n\t\t\t\t\t\tanimate\n\t\t\t\t\t)\n\t\t\t\t)\n\t\t\t\t.attr('d', ({ datum: d, value }, i) => {\n\t\t\t\t\t/*\n\t\t\t\t\t * Orientation support for horizontal/vertical bar charts\n\t\t\t\t\t * Determine coordinates needed for a vertical set of paths\n\t\t\t\t\t * to draw the bars needed, and pass those coordinates down to\n\t\t\t\t\t * generateSVGPathString() to decide whether it needs to flip them\n\t\t\t\t\t */\n\t\t\t\t\tlet lineHeight = 4;\n\t\t\t\t\t// if it lines up with a performance area border\n\t\t\t\t\t// make the line taller\n\t\t\t\t\tif (d.ranges && d.ranges.indexOf(value) !== -1) {\n\t\t\t\t\t\tlineHeight = 8;\n\t\t\t\t\t}\n\n\t\t\t\t\tconst x0 =\n\t\t\t\t\t\tthis.services.cartesianScales.getDomainValue(d, i) -\n\t\t\t\t\t\tlineHeight / 2;\n\t\t\t\t\tconst x1 = x0 + lineHeight;\n\t\t\t\t\tconst y0 = this.services.cartesianScales.getRangeValue(\n\t\t\t\t\t\tvalue,\n\t\t\t\t\t\ti\n\t\t\t\t\t);\n\t\t\t\t\tconst y1 = y0;\n\n\t\t\t\t\treturn Tools.generateSVGPathString(\n\t\t\t\t\t\t{ x0, x1, y0, y1 },\n\t\t\t\t\t\tthis.services.cartesianScales.getOrientation()\n\t\t\t\t\t);\n\t\t\t\t})\n\t\t\t\t.attr('opacity', 1);\n\t\t};\n\n\t\trenderRangeBoxes();\n\t\trenderBars();\n\t\trenderTargetLines();\n\t\trenderTargetQuartiles();\n\n\t\t// Add event listeners to elements drawn\n\t\tthis.addEventListeners();\n\t}\n\n\thandleLegendOnHover = (event: CustomEvent) => {\n\t\tconst { hoveredElement } = event.detail;\n\t\tconst { groupMapsTo } = this.getOptions().data;\n\n\t\tthis.parent\n\t\t\t.selectAll('path.bar')\n\t\t\t.transition(\n\t\t\t\tthis.services.transitions.getTransition(\n\t\t\t\t\t'legend-hover-simple-bar'\n\t\t\t\t)\n\t\t\t)\n\t\t\t.attr('opacity', (d) =>\n\t\t\t\td[groupMapsTo] !== hoveredElement.datum()['name'] ? 0.3 : 1\n\t\t\t);\n\t};\n\n\thandleLegendMouseOut = (event: CustomEvent) => {\n\t\tthis.parent\n\t\t\t.selectAll('path.bar')\n\t\t\t.transition(\n\t\t\t\tthis.services.transitions.getTransition(\n\t\t\t\t\t'legend-mouseout-simple-bar'\n\t\t\t\t)\n\t\t\t)\n\t\t\t.attr('opacity', 1);\n\t};\n\n\tgetMatchingRangeIndexForDatapoint(datum) {\n\t\tlet matchingRangeIndex;\n\t\tfor (let i = datum.ranges.length - 1; i > 0; i--) {\n\t\t\tconst range = datum.ranges[i];\n\t\t\tif (datum.value >= range) {\n\t\t\t\tmatchingRangeIndex = i;\n\n\t\t\t\treturn matchingRangeIndex;\n\t\t\t}\n\t\t}\n\n\t\treturn 0;\n\t}\n\n\taddEventListeners() {\n\t\tconst self = this;\n\n\t\tconst options = this.getOptions();\n\t\tconst { groupMapsTo } = options.data;\n\n\t\tconst rangeIdentifier = this.services.cartesianScales.getRangeIdentifier();\n\n\t\tthis.parent\n\t\t\t.selectAll('path.bar')\n\t\t\t.on('mouseover', function (datum) {\n\t\t\t\tconst hoveredElement = select(this);\n\t\t\t\thoveredElement.classed('hovered', true);\n\t\t\t\thoveredElement.transition(\n\t\t\t\t\tself.services.transitions.getTransition(\n\t\t\t\t\t\t'graph_element_mouseover_fill_update'\n\t\t\t\t\t)\n\t\t\t\t);\n\n\t\t\t\t// Dispatch mouse event\n\t\t\t\tself.services.events.dispatchEvent(Events.Bar.BAR_MOUSEOVER, {\n\t\t\t\t\telement: hoveredElement,\n\t\t\t\t\tdatum,\n\t\t\t\t});\n\n\t\t\t\tconst performanceAreaTitles = Tools.getProperty(\n\t\t\t\t\toptions,\n\t\t\t\t\t'bullet',\n\t\t\t\t\t'performanceAreaTitles'\n\t\t\t\t);\n\t\t\t\tconst matchingRangeIndex = self.getMatchingRangeIndexForDatapoint(\n\t\t\t\t\tdatum\n\t\t\t\t);\n\n\t\t\t\tself.services.events.dispatchEvent(Events.Tooltip.SHOW, {\n\t\t\t\t\thoveredElement,\n\t\t\t\t\titems: [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tlabel: options.tooltip.groupLabel || 'Group',\n\t\t\t\t\t\t\tvalue: 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\t\t{\n\t\t\t\t\t\t\tlabel: 'Value',\n\t\t\t\t\t\t\tvalue: datum[rangeIdentifier],\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tlabel: 'Target',\n\t\t\t\t\t\t\tvalue: datum.marker,\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tlabel: 'Percentage',\n\t\t\t\t\t\t\tvalue: `${Math.floor(\n\t\t\t\t\t\t\t\t(datum[rangeIdentifier] / datum.marker) * 100\n\t\t\t\t\t\t\t)}%`,\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tlabel: 'Performance',\n\t\t\t\t\t\t\tvalue: performanceAreaTitles[matchingRangeIndex],\n\t\t\t\t\t\t},\n\t\t\t\t\t],\n\t\t\t\t});\n\t\t\t})\n\t\t\t.on('mousemove', function (datum) {\n\t\t\t\t// Dispatch mouse event\n\t\t\t\tself.services.events.dispatchEvent(Events.Bar.BAR_MOUSEMOVE, {\n\t\t\t\t\telement: select(this),\n\t\t\t\t\tdatum,\n\t\t\t\t});\n\n\t\t\t\tself.services.events.dispatchEvent(Events.Tooltip.MOVE);\n\t\t\t})\n\t\t\t.on('click', function (datum) {\n\t\t\t\t// Dispatch mouse event\n\t\t\t\tself.services.events.dispatchEvent(Events.Bar.BAR_CLICK, {\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 (datum) {\n\t\t\t\tconst hoveredElement = select(this);\n\t\t\t\thoveredElement.classed('hovered', false);\n\n\t\t\t\thoveredElement.transition(\n\t\t\t\t\tself.services.transitions.getTransition(\n\t\t\t\t\t\t'graph_element_mouseout_fill_update'\n\t\t\t\t\t)\n\t\t\t\t);\n\n\t\t\t\t// Dispatch mouse event\n\t\t\t\tself.services.events.dispatchEvent(Events.Bar.BAR_MOUSEOUT, {\n\t\t\t\t\telement: hoveredElement,\n\t\t\t\t\tdatum,\n\t\t\t\t});\n\n\t\t\t\t// Hide tooltip\n\t\t\t\tself.services.events.dispatchEvent(Events.Tooltip.HIDE, {\n\t\t\t\t\thoveredElement,\n\t\t\t\t});\n\t\t\t});\n\t}\n\n\tdestroy() {\n\t\t// Remove event listeners\n\t\tthis.parent\n\t\t\t.selectAll('path.bar')\n\t\t\t.on('mouseover', null)\n\t\t\t.on('mousemove', null)\n\t\t\t.on('mouseout', null);\n\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"]}
@@ -12,6 +12,7 @@ export * from './graphs/bar-grouped';
12
12
  export * from './graphs/bar-stacked';
13
13
  export * from './graphs/boxplot';
14
14
  export * from './graphs/bubble';
15
+ export * from './graphs/bullet';
15
16
  export * from './graphs/line';
16
17
  export * from './graphs/lollipop';
17
18
  export * from './graphs/scatter';
@@ -14,6 +14,7 @@ export * from './graphs/bar-grouped';
14
14
  export * from './graphs/bar-stacked';
15
15
  export * from './graphs/boxplot';
16
16
  export * from './graphs/bubble';
17
+ export * from './graphs/bullet';
17
18
  export * from './graphs/line';
18
19
  export * from './graphs/lollipop';
19
20
  export * from './graphs/scatter';
@@ -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,wBAAwB,CAAC;AACvC,cAAc,oBAAoB,CAAC;AACnC,cAAc,0BAA0B,CAAC;AACzC,cAAc,sBAAsB,CAAC;AACrC,cAAc,2BAA2B,CAAC;AAE1C,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,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,kBAAkB,CAAC;AACjC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,oBAAoB,CAAC;AAEnC,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,sBAAsB,CAAC;AACrC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,kBAAkB,CAAC;AACjC,cAAc,iBAAiB,CAAC","sourcesContent":["export * from './component';\n\n// ESSENTIALS\nexport * from './essentials/legend';\nexport * from './essentials/threshold';\nexport * from './essentials/title';\nexport * from './essentials/title-meter';\nexport * from './essentials/tooltip';\nexport * from './essentials/tooltip-axis';\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/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/treemap';\nexport * from './graphs/radar';\nexport * from './graphs/wordcloud';\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-stacked';\nexport * from './axes/toolbar';\nexport * from './axes/zero-line';\nexport * from './axes/zoom-bar';\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAE5B,aAAa;AACb,cAAc,qBAAqB,CAAC;AACpC,cAAc,wBAAwB,CAAC;AACvC,cAAc,oBAAoB,CAAC;AACnC,cAAc,0BAA0B,CAAC;AACzC,cAAc,sBAAsB,CAAC;AACrC,cAAc,2BAA2B,CAAC;AAE1C,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,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,kBAAkB,CAAC;AACjC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,oBAAoB,CAAC;AAEnC,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,sBAAsB,CAAC;AACrC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,kBAAkB,CAAC;AACjC,cAAc,iBAAiB,CAAC","sourcesContent":["export * from './component';\n\n// ESSENTIALS\nexport * from './essentials/legend';\nexport * from './essentials/threshold';\nexport * from './essentials/title';\nexport * from './essentials/title-meter';\nexport * from './essentials/tooltip';\nexport * from './essentials/tooltip-axis';\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/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/treemap';\nexport * from './graphs/radar';\nexport * from './graphs/wordcloud';\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-stacked';\nexport * from './axes/toolbar';\nexport * from './axes/zero-line';\nexport * from './axes/zoom-bar';\n"]}
@@ -22,6 +22,10 @@ export declare const axis: {
22
22
  verticalSpaceRatio: number;
23
23
  horizontalSpaceRatio: number;
24
24
  };
25
+ ratio: {
26
+ reference: string;
27
+ compareTo: string;
28
+ };
25
29
  paddingRatio: number;
26
30
  };
27
31
  export declare const boxplot: {
@@ -63,25 +67,29 @@ export declare const legend: {
63
67
  cy: number;
64
68
  r: number;
65
69
  }[];
66
- color: string;
70
+ fill: any;
71
+ stroke: string;
67
72
  };
68
73
  line: {
69
74
  yPosition: number;
70
75
  width: number;
71
76
  strokeWidth: number;
72
- color: string;
77
+ fill: any;
78
+ stroke: string;
73
79
  };
74
80
  area: {
75
81
  width: number;
76
82
  height: number;
77
- color: string;
83
+ fill: string;
84
+ stroke: any;
78
85
  };
79
86
  size: {
80
87
  iconData: {
81
88
  width: number;
82
89
  height: number;
83
90
  }[];
84
- color: string;
91
+ fill: any;
92
+ stroke: string;
85
93
  };
86
94
  quartile: {
87
95
  iconData: {
@@ -89,7 +97,6 @@ export declare const legend: {
89
97
  y: number;
90
98
  width: number;
91
99
  height: number;
92
- color: string;
93
100
  }[];
94
101
  };
95
102
  };
@@ -23,6 +23,10 @@ export var axis = {
23
23
  verticalSpaceRatio: 2.5,
24
24
  horizontalSpaceRatio: 3.5,
25
25
  },
26
+ ratio: {
27
+ reference: 'value',
28
+ compareTo: 'marker',
29
+ },
26
30
  paddingRatio: 0.1,
27
31
  };
28
32
  export var boxplot = {
@@ -63,30 +67,34 @@ export var legend = {
63
67
  { cx: 7, cy: 7, r: 6.5 },
64
68
  { cx: 7, cy: 10, r: 3.5 },
65
69
  ],
66
- color: '#8c8c8c',
70
+ fill: null,
71
+ stroke: '#8c8c8c',
67
72
  },
68
73
  line: {
69
74
  yPosition: 6,
70
75
  width: 24,
71
76
  strokeWidth: 1.4,
72
- color: '#999999',
77
+ fill: null,
78
+ stroke: '#999999',
73
79
  },
74
80
  area: {
75
81
  width: 24,
76
82
  height: 13,
77
- color: '#c6c6c6',
83
+ fill: '#6f6f6f',
84
+ stroke: null,
78
85
  },
79
86
  size: {
80
87
  iconData: [
81
88
  { width: 23, height: 12 },
82
89
  { width: 13, height: 6 },
83
90
  ],
84
- color: '#8D8D8D',
91
+ fill: null,
92
+ stroke: '#8D8D8D',
85
93
  },
86
94
  quartile: {
87
95
  iconData: [
88
- { x: 0, y: 0, width: 24, height: 13, color: '#6929C4' },
89
- { x: 11, y: 4, width: 1, height: 4, color: '#FFFFFF' },
96
+ { x: 0, y: 0, width: 24, height: 13 },
97
+ { x: 11, y: 4, width: 1, height: 4 },
90
98
  ],
91
99
  },
92
100
  };
@@ -1 +1 @@
1
- {"version":3,"file":"configuration-non-customizable.js","sourceRoot":"","sources":["configuration-non-customizable.ts"],"names":[],"mappings":"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","sourcesContent":["import { ZoomBarTypes } from './interfaces';\n\nexport const color = {\n\tpairingOptions: {\n\t\t'1-color': 4,\n\t\t'2-color': 5,\n\t\t'3-color': 5,\n\t\t'4-color': 3,\n\t\t'5-color': 2,\n\t\t'14-color': 1,\n\t},\n};\n\nexport const area = {\n\topacity: {\n\t\tunselected: 0,\n\t\tselected: 0.4,\n\t},\n};\n\nexport const axis = {\n\tticks: {\n\t\tnumber: 7,\n\t\trotateIfSmallerThan: 30,\n\t\tverticalSpaceRatio: 2.5,\n\t\thorizontalSpaceRatio: 3.5,\n\t},\n\tpaddingRatio: 0.1,\n};\n\nexport const boxplot = {\n\tcircle: {\n\t\tradius: 4,\n\t\topacity: {\n\t\t\thovered: 1,\n\t\t\tdefault: 0.3,\n\t\t},\n\t},\n\tbox: {\n\t\topacity: {\n\t\t\thovered: 0.5,\n\t\t\tdefault: 0.3,\n\t\t},\n\t},\n\tstrokeWidth: {\n\t\tdefault: 1,\n\t\tthicker: 2,\n\t},\n};\n\nexport const legend = {\n\titems: {\n\t\tstatus: {\n\t\t\tACTIVE: 1,\n\t\t\tDISABLED: 0,\n\t\t},\n\t\thorizontalSpace: 12,\n\t\tverticalSpace: 24,\n\t\ttextYOffset: 8,\n\t\tspaceAfter: 4,\n\t},\n\tcheckbox: {\n\t\tradius: 6.5,\n\t},\n\tradius: {\n\t\ticonData: [\n\t\t\t{ cx: 7, cy: 7, r: 6.5 },\n\t\t\t{ cx: 7, cy: 10, r: 3.5 },\n\t\t],\n\t\tcolor: '#8c8c8c',\n\t},\n\tline: {\n\t\tyPosition: 6,\n\t\twidth: 24,\n\t\tstrokeWidth: 1.4,\n\t\tcolor: '#999999',\n\t},\n\tarea: {\n\t\twidth: 24,\n\t\theight: 13,\n\t\tcolor: '#c6c6c6',\n\t},\n\tsize: {\n\t\ticonData: [\n\t\t\t{ width: 23, height: 12 },\n\t\t\t{ width: 13, height: 6 },\n\t\t],\n\t\tcolor: '#8D8D8D',\n\t},\n\tquartile: {\n\t\ticonData: [\n\t\t\t{ x: 0, y: 0, width: 24, height: 13, color: '#6929C4' },\n\t\t\t{ x: 11, y: 4, width: 1, height: 4, color: '#FFFFFF' },\n\t\t],\n\t},\n};\n\nexport const lines = {\n\topacity: {\n\t\tunselected: 0.3,\n\t\tselected: 1,\n\t},\n\tweight: {\n\t\tselected: 2,\n\t\tunselected: 1,\n\t},\n};\n\nexport const meter = {\n\tstatusBar: {\n\t\tpaddingRight: 5,\n\t},\n\tstatus: {\n\t\tindicatorSize: 16,\n\t\tpaddingLeft: 15,\n\t},\n};\n\nexport const pie = {\n\tradiusOffset: -15,\n\tinnerRadius: 2,\n\tpadAngle: 0.007,\n\thoverArc: {\n\t\touterRadiusOffset: 3,\n\t},\n\txOffset: 30,\n\tyOffset: 20,\n\tyOffsetCallout: 10,\n\tcallout: {\n\t\tminSliceDegree: 5,\n\t\toffsetX: 15,\n\t\toffsetY: 12,\n\t\thorizontalLineLength: 8,\n\t\ttextMargin: 2,\n\t},\n};\n\nexport const radar = {\n\topacity: {\n\t\tunselected: 0.1,\n\t\tselected: 0.3,\n\t},\n\txLabelPadding: 10,\n\tyLabelPadding: 8,\n\tyTicksNumber: 4,\n\tminRange: 10,\n\txAxisRectHeight: 50,\n\tdotsRadius: 5,\n};\n\nexport const spacers = {\n\tdefault: {\n\t\tsize: 24,\n\t},\n};\n\nexport const tooltips = {\n\thorizontalOffset: 10,\n};\n\n/**\n * Base transition configuration\n */\nexport const transitions = {\n\tdefault: {\n\t\tduration: 300,\n\t},\n\tpie_slice_mouseover: {\n\t\tduration: 100,\n\t},\n\tpie_chart_titles: {\n\t\tduration: 375,\n\t},\n\tgraph_element_mouseover_fill_update: {\n\t\tduration: 100,\n\t},\n\tgraph_element_mouseout_fill_update: {\n\t\tduration: 100,\n\t},\n};\n\nexport const toolbar = {\n\tbuttonSize: 32,\n\ticonSize: 20,\n\theight: 32,\n\tspacerHeight: 10,\n\ticonPadding: 6,\n};\n\nexport const zoomBar = {\n\theight: {\n\t\t[ZoomBarTypes.GRAPH_VIEW]: 32,\n\t\t[ZoomBarTypes.SLIDER_VIEW]: 10,\n\t},\n\tspacerHeight: 8,\n\thandleWidth: 5,\n\thandleBarWidth: 1,\n\thandleBarHeight: 12,\n};\n"]}
1
+ {"version":3,"file":"configuration-non-customizable.js","sourceRoot":"","sources":["configuration-non-customizable.ts"],"names":[],"mappings":"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","sourcesContent":["import { ZoomBarTypes } from './interfaces';\n\nexport const color = {\n\tpairingOptions: {\n\t\t'1-color': 4,\n\t\t'2-color': 5,\n\t\t'3-color': 5,\n\t\t'4-color': 3,\n\t\t'5-color': 2,\n\t\t'14-color': 1,\n\t},\n};\n\nexport const area = {\n\topacity: {\n\t\tunselected: 0,\n\t\tselected: 0.4,\n\t},\n};\n\nexport const axis = {\n\tticks: {\n\t\tnumber: 7,\n\t\trotateIfSmallerThan: 30,\n\t\tverticalSpaceRatio: 2.5,\n\t\thorizontalSpaceRatio: 3.5,\n\t},\n\tratio: {\n\t\treference: 'value',\n\t\tcompareTo: 'marker',\n\t},\n\tpaddingRatio: 0.1,\n};\n\nexport const boxplot = {\n\tcircle: {\n\t\tradius: 4,\n\t\topacity: {\n\t\t\thovered: 1,\n\t\t\tdefault: 0.3,\n\t\t},\n\t},\n\tbox: {\n\t\topacity: {\n\t\t\thovered: 0.5,\n\t\t\tdefault: 0.3,\n\t\t},\n\t},\n\tstrokeWidth: {\n\t\tdefault: 1,\n\t\tthicker: 2,\n\t},\n};\n\nexport const legend = {\n\titems: {\n\t\tstatus: {\n\t\t\tACTIVE: 1,\n\t\t\tDISABLED: 0,\n\t\t},\n\t\thorizontalSpace: 12,\n\t\tverticalSpace: 24,\n\t\ttextYOffset: 8,\n\t\tspaceAfter: 4,\n\t},\n\tcheckbox: {\n\t\tradius: 6.5,\n\t},\n\tradius: {\n\t\ticonData: [\n\t\t\t{ cx: 7, cy: 7, r: 6.5 },\n\t\t\t{ cx: 7, cy: 10, r: 3.5 },\n\t\t],\n\t\tfill: null,\n\t\tstroke: '#8c8c8c',\n\t},\n\tline: {\n\t\tyPosition: 6,\n\t\twidth: 24,\n\t\tstrokeWidth: 1.4,\n\t\tfill: null,\n\t\tstroke: '#999999',\n\t},\n\tarea: {\n\t\twidth: 24,\n\t\theight: 13,\n\t\tfill: '#6f6f6f',\n\t\tstroke: null,\n\t},\n\tsize: {\n\t\ticonData: [\n\t\t\t{ width: 23, height: 12 },\n\t\t\t{ width: 13, height: 6 },\n\t\t],\n\t\tfill: null,\n\t\tstroke: '#8D8D8D',\n\t},\n\tquartile: {\n\t\ticonData: [\n\t\t\t{ x: 0, y: 0, width: 24, height: 13 },\n\t\t\t{ x: 11, y: 4, width: 1, height: 4 },\n\t\t],\n\t},\n};\n\nexport const lines = {\n\topacity: {\n\t\tunselected: 0.3,\n\t\tselected: 1,\n\t},\n\tweight: {\n\t\tselected: 2,\n\t\tunselected: 1,\n\t},\n};\n\nexport const meter = {\n\tstatusBar: {\n\t\tpaddingRight: 5,\n\t},\n\tstatus: {\n\t\tindicatorSize: 16,\n\t\tpaddingLeft: 15,\n\t},\n};\n\nexport const pie = {\n\tradiusOffset: -15,\n\tinnerRadius: 2,\n\tpadAngle: 0.007,\n\thoverArc: {\n\t\touterRadiusOffset: 3,\n\t},\n\txOffset: 30,\n\tyOffset: 20,\n\tyOffsetCallout: 10,\n\tcallout: {\n\t\tminSliceDegree: 5,\n\t\toffsetX: 15,\n\t\toffsetY: 12,\n\t\thorizontalLineLength: 8,\n\t\ttextMargin: 2,\n\t},\n};\n\nexport const radar = {\n\topacity: {\n\t\tunselected: 0.1,\n\t\tselected: 0.3,\n\t},\n\txLabelPadding: 10,\n\tyLabelPadding: 8,\n\tyTicksNumber: 4,\n\tminRange: 10,\n\txAxisRectHeight: 50,\n\tdotsRadius: 5,\n};\n\nexport const spacers = {\n\tdefault: {\n\t\tsize: 24,\n\t},\n};\n\nexport const tooltips = {\n\thorizontalOffset: 10,\n};\n\n/**\n * Base transition configuration\n */\nexport const transitions = {\n\tdefault: {\n\t\tduration: 300,\n\t},\n\tpie_slice_mouseover: {\n\t\tduration: 100,\n\t},\n\tpie_chart_titles: {\n\t\tduration: 375,\n\t},\n\tgraph_element_mouseover_fill_update: {\n\t\tduration: 100,\n\t},\n\tgraph_element_mouseout_fill_update: {\n\t\tduration: 100,\n\t},\n};\n\nexport const toolbar = {\n\tbuttonSize: 32,\n\ticonSize: 20,\n\theight: 32,\n\tspacerHeight: 10,\n\ticonPadding: 6,\n};\n\nexport const zoomBar = {\n\theight: {\n\t\t[ZoomBarTypes.GRAPH_VIEW]: 32,\n\t\t[ZoomBarTypes.SLIDER_VIEW]: 10,\n\t},\n\tspacerHeight: 8,\n\thandleWidth: 5,\n\thandleBarWidth: 1,\n\thandleBarHeight: 12,\n};\n"]}
@@ -1,4 +1,4 @@
1
- import { BaseChartOptions, AxisChartOptions, ScatterChartOptions, LollipopChartOptions, LineChartOptions, BarChartOptions, StackedBarChartOptions, BoxplotChartOptions, AreaChartOptions, PieChartOptions, GaugeChartOptions, DonutChartOptions, BubbleChartOptions, RadarChartOptions, ComboChartOptions, TreemapChartOptions, WorldCloudChartOptions, GridOptions, RulerOptions, TimeScaleOptions, TooltipOptions, MeterChartOptions } from './interfaces';
1
+ import { BaseChartOptions, AxisChartOptions, ScatterChartOptions, LollipopChartOptions, LineChartOptions, BarChartOptions, StackedBarChartOptions, BoxplotChartOptions, AreaChartOptions, PieChartOptions, GaugeChartOptions, DonutChartOptions, BubbleChartOptions, BulletChartOptions, RadarChartOptions, ComboChartOptions, TreemapChartOptions, WorldCloudChartOptions, GridOptions, RulerOptions, TimeScaleOptions, TooltipOptions, MeterChartOptions } from './interfaces';
2
2
  /**
3
3
  * Grid options
4
4
  */
@@ -20,6 +20,7 @@ export declare const options: {
20
20
  stackedBarChart: StackedBarChartOptions;
21
21
  boxplotChart: BoxplotChartOptions;
22
22
  bubbleChart: BubbleChartOptions;
23
+ bulletChart: BulletChartOptions;
23
24
  lineChart: LineChartOptions;
24
25
  areaChart: AreaChartOptions;
25
26
  stackedAreaChart: AreaChartOptions;
package/configuration.js CHANGED
@@ -252,6 +252,22 @@ var bubbleChart = Tools.merge({}, axisChart, {
252
252
  },
253
253
  });
254
254
  /**
255
+ * options specific to bullet charts
256
+ */
257
+ var bulletChart = Tools.merge({}, axisChart, {
258
+ bullet: {
259
+ performanceAreaTitles: ['Poor', 'Satisfactory', 'Great'],
260
+ },
261
+ grid: {
262
+ x: {
263
+ enabled: false,
264
+ },
265
+ y: {
266
+ enabled: false,
267
+ },
268
+ },
269
+ });
270
+ /*
255
271
  * options specific to word cloud charts
256
272
  */
257
273
  var wordCloudChart = Tools.merge({}, chart, {
@@ -381,6 +397,7 @@ export var options = {
381
397
  stackedBarChart: stackedBarChart,
382
398
  boxplotChart: boxplotChart,
383
399
  bubbleChart: bubbleChart,
400
+ bulletChart: bulletChart,
384
401
  lineChart: lineChart,
385
402
  areaChart: areaChart,
386
403
  stackedAreaChart: stackedAreaChart,