@carbon/charts 0.30.21 → 0.30.25

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 (215) hide show
  1. package/CHANGELOG.md +337 -1035
  2. package/README.md +3 -0
  3. package/axis-chart.js +8 -14
  4. package/axis-chart.js.map +1 -1
  5. package/build/demo/{data/create-codesandbox.d.ts → create-codesandbox.d.ts} +16 -13
  6. package/build/demo/data/bar.d.ts +175 -1
  7. package/build/demo/data/bubble.d.ts +41 -0
  8. package/build/demo/data/donut.d.ts +23 -0
  9. package/build/demo/data/line.d.ts +70 -0
  10. package/build/demo/data/pie.d.ts +13 -0
  11. package/build/demo/data/scatter.d.ts +31 -0
  12. package/build/demo/data/step.d.ts +4 -0
  13. package/build/demo/data/time-series-axis.d.ts +55 -3
  14. package/build/src/components/axes/grid.d.ts +3 -3
  15. package/build/src/components/axes/two-dimensional-axes.d.ts +3 -0
  16. package/build/src/components/essentials/threshold.d.ts +17 -0
  17. package/build/src/components/graphs/bar.d.ts +1 -1
  18. package/build/src/components/graphs/scatter.d.ts +1 -0
  19. package/build/src/components/graphs/skeleton.d.ts +22 -0
  20. package/build/src/components/index.d.ts +2 -0
  21. package/build/src/interfaces/axis-scales.d.ts +22 -11
  22. package/build/src/interfaces/charts.d.ts +5 -0
  23. package/build/src/interfaces/components.d.ts +21 -0
  24. package/build/src/interfaces/enums.d.ts +9 -0
  25. package/build/src/interfaces/events.d.ts +7 -0
  26. package/build/src/model.d.ts +1 -0
  27. package/build/src/services/scales-cartesian.d.ts +9 -1
  28. package/build/stories/tutorials/event-listeners.d.ts +1 -0
  29. package/build/stories/tutorials/index.d.ts +2 -1
  30. package/bundle.js +1 -1
  31. package/chart.js +15 -24
  32. package/chart.js.map +1 -1
  33. package/charts/bar-grouped.js +6 -2
  34. package/charts/bar-grouped.js.map +1 -1
  35. package/charts/bar-simple.js +6 -2
  36. package/charts/bar-simple.js.map +1 -1
  37. package/charts/bar-stacked.js +6 -2
  38. package/charts/bar-stacked.js.map +1 -1
  39. package/charts/bubble.js +6 -2
  40. package/charts/bubble.js.map +1 -1
  41. package/charts/donut.js +6 -2
  42. package/charts/donut.js.map +1 -1
  43. package/charts/line.js +6 -2
  44. package/charts/line.js.map +1 -1
  45. package/charts/pie.js +6 -2
  46. package/charts/pie.js.map +1 -1
  47. package/charts/radar.js +1 -3
  48. package/charts/radar.js.map +1 -1
  49. package/charts/scatter.js +6 -2
  50. package/charts/scatter.js.map +1 -1
  51. package/components/axes/axis.js +93 -43
  52. package/components/axes/axis.js.map +1 -1
  53. package/components/axes/grid.d.ts +3 -3
  54. package/components/axes/grid.js +46 -23
  55. package/components/axes/grid.js.map +1 -1
  56. package/components/axes/ruler.js +7 -5
  57. package/components/axes/ruler.js.map +1 -1
  58. package/components/axes/two-dimensional-axes.d.ts +3 -0
  59. package/components/axes/two-dimensional-axes.js +35 -2
  60. package/components/axes/two-dimensional-axes.js.map +1 -1
  61. package/components/axes/zero-line.js +16 -1
  62. package/components/axes/zero-line.js.map +1 -1
  63. package/components/component.js +2 -4
  64. package/components/component.js.map +1 -1
  65. package/components/essentials/legend.js +46 -23
  66. package/components/essentials/legend.js.map +1 -1
  67. package/components/essentials/threshold.d.ts +17 -0
  68. package/components/essentials/threshold.js +171 -0
  69. package/components/essentials/threshold.js.map +1 -0
  70. package/components/essentials/title.js +6 -4
  71. package/components/essentials/title.js.map +1 -1
  72. package/components/essentials/tooltip-bar.js +39 -20
  73. package/components/essentials/tooltip-bar.js.map +1 -1
  74. package/components/essentials/tooltip-pie.js +4 -3
  75. package/components/essentials/tooltip-pie.js.map +1 -1
  76. package/components/essentials/tooltip-radar.js +6 -3
  77. package/components/essentials/tooltip-radar.js.map +1 -1
  78. package/components/essentials/tooltip-scatter.js +3 -1
  79. package/components/essentials/tooltip-scatter.js.map +1 -1
  80. package/components/essentials/tooltip.js +35 -15
  81. package/components/essentials/tooltip.js.map +1 -1
  82. package/components/graphs/bar-grouped.js +48 -20
  83. package/components/graphs/bar-grouped.js.map +1 -1
  84. package/components/graphs/bar-simple.js +39 -19
  85. package/components/graphs/bar-simple.js.map +1 -1
  86. package/components/graphs/bar-stacked.js +50 -28
  87. package/components/graphs/bar-stacked.js.map +1 -1
  88. package/components/graphs/bar.d.ts +1 -1
  89. package/components/graphs/bar.js +1 -1
  90. package/components/graphs/bar.js.map +1 -1
  91. package/components/graphs/bubble.js +22 -8
  92. package/components/graphs/bubble.js.map +1 -1
  93. package/components/graphs/donut.js +17 -3
  94. package/components/graphs/donut.js.map +1 -1
  95. package/components/graphs/line.js +14 -7
  96. package/components/graphs/line.js.map +1 -1
  97. package/components/graphs/pie.js +80 -44
  98. package/components/graphs/pie.js.map +1 -1
  99. package/components/graphs/radar.js +271 -140
  100. package/components/graphs/radar.js.map +1 -1
  101. package/components/graphs/scatter.d.ts +1 -0
  102. package/components/graphs/scatter.js +80 -19
  103. package/components/graphs/scatter.js.map +1 -1
  104. package/components/graphs/skeleton.d.ts +22 -0
  105. package/components/graphs/skeleton.js +256 -0
  106. package/components/graphs/skeleton.js.map +1 -0
  107. package/components/index.d.ts +2 -0
  108. package/components/index.js +2 -0
  109. package/components/index.js.map +1 -1
  110. package/components/layout/layout.js +38 -26
  111. package/components/layout/layout.js.map +1 -1
  112. package/components/layout/spacer.js +2 -1
  113. package/components/layout/spacer.js.map +1 -1
  114. package/configuration.js +17 -14
  115. package/configuration.js.map +1 -1
  116. package/demo/{data/create-codesandbox.d.ts → create-codesandbox.d.ts} +16 -13
  117. package/demo/{data/create-codesandbox.js → create-codesandbox.js} +24 -21
  118. package/demo/create-codesandbox.js.map +1 -0
  119. package/demo/data/bar.d.ts +175 -1
  120. package/demo/data/bar.js +189 -3
  121. package/demo/data/bar.js.map +1 -1
  122. package/demo/data/bubble.d.ts +41 -0
  123. package/demo/data/bubble.js +48 -3
  124. package/demo/data/bubble.js.map +1 -1
  125. package/demo/data/bundle.js +1 -1
  126. package/demo/data/donut.d.ts +23 -0
  127. package/demo/data/donut.js +25 -0
  128. package/demo/data/donut.js.map +1 -1
  129. package/demo/data/index.js +189 -7
  130. package/demo/data/index.js.map +1 -1
  131. package/demo/data/line.d.ts +70 -0
  132. package/demo/data/line.js +71 -0
  133. package/demo/data/line.js.map +1 -1
  134. package/demo/data/pie.d.ts +13 -0
  135. package/demo/data/pie.js +15 -0
  136. package/demo/data/pie.js.map +1 -1
  137. package/demo/data/radar.js.map +1 -1
  138. package/demo/data/scatter.d.ts +31 -0
  139. package/demo/data/scatter.js +33 -0
  140. package/demo/data/scatter.js.map +1 -1
  141. package/demo/data/step.d.ts +4 -0
  142. package/demo/data/step.js +15 -0
  143. package/demo/data/step.js.map +1 -1
  144. package/demo/data/time-series-axis.d.ts +55 -3
  145. package/demo/data/time-series-axis.js +62 -6
  146. package/demo/data/time-series-axis.js.map +1 -1
  147. package/demo/styles.css +342 -18
  148. package/demo/styles.css.map +1 -1
  149. package/demo/styles.min.css +1 -1
  150. package/demo/styles.min.css.map +1 -1
  151. package/demo/tsconfig.tsbuildinfo +232 -229
  152. package/index.js.map +1 -1
  153. package/interfaces/axis-scales.d.ts +22 -11
  154. package/interfaces/axis-scales.js.map +1 -1
  155. package/interfaces/charts.d.ts +5 -0
  156. package/interfaces/charts.js.map +1 -1
  157. package/interfaces/components.d.ts +21 -0
  158. package/interfaces/components.js.map +1 -1
  159. package/interfaces/enums.d.ts +9 -0
  160. package/interfaces/enums.js +10 -0
  161. package/interfaces/enums.js.map +1 -1
  162. package/interfaces/events.d.ts +7 -0
  163. package/interfaces/events.js +8 -0
  164. package/interfaces/events.js.map +1 -1
  165. package/model.d.ts +1 -0
  166. package/model.js +30 -16
  167. package/model.js.map +1 -1
  168. package/package.json +4 -2
  169. package/polyfills.js +7 -2
  170. package/polyfills.js.map +1 -1
  171. package/services/angle-utils.js +34 -9
  172. package/services/angle-utils.js.map +1 -1
  173. package/services/colors.js.map +1 -1
  174. package/services/curves.js +4 -2
  175. package/services/curves.js.map +1 -1
  176. package/services/essentials/dom-utils.js +4 -3
  177. package/services/essentials/dom-utils.js.map +1 -1
  178. package/services/essentials/transitions.js +3 -4
  179. package/services/essentials/transitions.js.map +1 -1
  180. package/services/scales-cartesian.d.ts +9 -1
  181. package/services/scales-cartesian.js +96 -23
  182. package/services/scales-cartesian.js.map +1 -1
  183. package/services/time-series.js +36 -19
  184. package/services/time-series.js.map +1 -1
  185. package/styles/components/_axis.scss +4 -0
  186. package/styles/components/_layout.scss +0 -1
  187. package/styles/components/_ruler.scss +5 -2
  188. package/styles/components/_skeleton.scss +56 -0
  189. package/styles/components/_threshold.scss +49 -0
  190. package/styles/components/_tooltip.scss +6 -5
  191. package/styles/components/index.scss +2 -0
  192. package/styles/graphs/_bubble.scss +1 -1
  193. package/styles/graphs/_radar.scss +4 -2
  194. package/styles/graphs/_scatter.scss +5 -1
  195. package/styles/mixins.scss +2 -2
  196. package/styles-g10.css +87 -4
  197. package/styles-g10.css.map +1 -1
  198. package/styles-g10.min.css +1 -1
  199. package/styles-g10.min.css.map +1 -1
  200. package/styles-g100.css +87 -4
  201. package/styles-g100.css.map +1 -1
  202. package/styles-g100.min.css +1 -1
  203. package/styles-g100.min.css.map +1 -1
  204. package/styles-g90.css +87 -4
  205. package/styles-g90.css.map +1 -1
  206. package/styles-g90.min.css +1 -1
  207. package/styles-g90.min.css.map +1 -1
  208. package/styles.css +87 -4
  209. package/styles.css.map +1 -1
  210. package/styles.min.css +1 -1
  211. package/styles.min.css.map +1 -1
  212. package/tools.js +25 -7
  213. package/tools.js.map +1 -1
  214. package/tsconfig.tsbuildinfo +169 -106
  215. package/demo/data/create-codesandbox.js.map +0 -1
@@ -0,0 +1,17 @@
1
+ import { Component } from "../component";
2
+ import { ChartModel } from "../../model";
3
+ import Position from "@carbon/utils-position";
4
+ export declare class Threshold extends Component {
5
+ type: string;
6
+ threshold: any;
7
+ thresholdClass: string;
8
+ thresholdIdentifierClass: string;
9
+ label: any;
10
+ positionService: Position;
11
+ constructor(model: ChartModel, services: any, configs: any);
12
+ render(animate?: boolean): void;
13
+ getFormattedValue(): any;
14
+ appendThresholdLabel(): void;
15
+ setThresholdLabelPosition(): void;
16
+ addEventListeners(): void;
17
+ }
@@ -1,4 +1,4 @@
1
1
  import { Component } from "../component";
2
2
  export declare class Bar extends Component {
3
- protected getBarWidth(): number;
3
+ protected getBarWidth(allDataLabels?: string[]): number;
4
4
  }
@@ -4,6 +4,7 @@ export declare class Scatter extends Component {
4
4
  type: string;
5
5
  init(): void;
6
6
  render(animate: boolean): void;
7
+ isDatapointThresholdAnomaly(datum: any, index: number): boolean;
7
8
  styleCircles(selection: Selection<any, any, any, any>, animate: boolean): void;
8
9
  handleLegendOnHover: (event: CustomEvent<any>) => void;
9
10
  handleLegendMouseOut: (event: CustomEvent<any>) => void;
@@ -0,0 +1,22 @@
1
+ import { Component } from "../component";
2
+ export declare class Skeleton extends Component {
3
+ type: string;
4
+ xScale: any;
5
+ yScale: any;
6
+ backdrop: any;
7
+ render(): void;
8
+ renderSkeleton(showShimmerEffect: boolean): void;
9
+ renderGridSkeleton(showShimmerEffect: boolean): void;
10
+ renderVertOrHorizSkeleton(showShimmerEffect: boolean): void;
11
+ renderPieSkeleton(showShimmerEffect: boolean): void;
12
+ renderDonutSkeleton(showShimmerEffect: boolean): void;
13
+ setScales(): void;
14
+ drawBackdrop(showShimmerEffect: boolean): void;
15
+ drawXGrid(showShimmerEffect: boolean): void;
16
+ drawYGrid(showShimmerEffect: boolean): void;
17
+ drawRing(outerRadius: number, innerRadius: number, shimmer?: boolean): void;
18
+ computeOuterRadius(): any;
19
+ computeInnerRadius(): number;
20
+ setShimmerEffect(gradientId: string): void;
21
+ removeSkeleton(): void;
22
+ }
@@ -1,5 +1,6 @@
1
1
  export * from "./component";
2
2
  export * from "./essentials/legend";
3
+ export * from "./essentials/threshold";
3
4
  export * from "./essentials/title";
4
5
  export * from "./essentials/tooltip";
5
6
  export * from "./essentials/tooltip-bar";
@@ -14,6 +15,7 @@ export * from "./graphs/line";
14
15
  export * from "./graphs/scatter";
15
16
  export * from "./graphs/pie";
16
17
  export * from "./graphs/donut";
18
+ export * from "./graphs/skeleton";
17
19
  export * from "./layout/spacer";
18
20
  export * from "./layout/layout";
19
21
  export * from "./axes/two-dimensional-axes";
@@ -1,6 +1,7 @@
1
1
  import { ScaleTypes } from "./enums";
2
2
  import { AxisDomain } from "d3";
3
3
  import { Locale } from "date-fns";
4
+ import { ThresholdOptions } from "./components";
4
5
  /**
5
6
  * options to configure a scale. not all options are used by all scales
6
7
  */
@@ -18,10 +19,10 @@ export interface AxisOptions {
18
19
  */
19
20
  domain?: AxisDomain[];
20
21
  /**
21
- * Whether the Axis should be forced to include 0 as a starting point
22
- * (or ending point, in case of all negative axis).
23
- * Default: true
24
- */
22
+ * Whether the Axis should be forced to include 0 as a starting point
23
+ * (or ending point, in case of all negative axis).
24
+ * Default: true
25
+ */
25
26
  includeZero?: boolean;
26
27
  /**
27
28
  * identifies what key within the data the axis values would map to
@@ -31,6 +32,16 @@ export interface AxisOptions {
31
32
  * optional title for the scales
32
33
  */
33
34
  title?: string;
35
+ /**
36
+ * thresholds
37
+ * Example:
38
+ * [
39
+ * {value: 10000},
40
+ * {value: 40020, valueFormatter: (x) => x},
41
+ * {value: 55000, label: "Custom label", fillColor: "#03a9f4"},
42
+ * ]
43
+ */
44
+ thresholds?: ThresholdOptions[];
34
45
  /**
35
46
  * tick configuration
36
47
  */
@@ -88,14 +99,14 @@ export interface TickFormats {
88
99
  }
89
100
  export interface TimeIntervalFormats {
90
101
  "15seconds"?: TickFormats;
91
- "minute"?: TickFormats;
102
+ minute?: TickFormats;
92
103
  "30minutes"?: TickFormats;
93
- "hourly"?: TickFormats;
94
- "daily"?: TickFormats;
95
- "weekly"?: TickFormats;
96
- "monthly"?: TickFormats;
97
- "quarterly"?: TickFormats;
98
- "yearly"?: TickFormats;
104
+ hourly?: TickFormats;
105
+ daily?: TickFormats;
106
+ weekly?: TickFormats;
107
+ monthly?: TickFormats;
108
+ quarterly?: TickFormats;
109
+ yearly?: TickFormats;
99
110
  }
100
111
  /**
101
112
  * customize the axes components
@@ -57,6 +57,10 @@ export interface BaseChartOptions {
57
57
  * identifier for data groups
58
58
  */
59
59
  groupMapsTo?: string;
60
+ /**
61
+ * used to simulate data loading
62
+ */
63
+ loading?: Boolean;
60
64
  };
61
65
  /**
62
66
  * options related to color scales
@@ -171,6 +175,7 @@ export interface PieChartOptions extends BaseChartOptions {
171
175
  export interface DonutChartOptions extends PieChartOptions {
172
176
  donut?: {
173
177
  center?: {
178
+ label?: string;
174
179
  numberFontSize?: Function;
175
180
  titleFontSize?: Function;
176
181
  titleYPosition?: Function;
@@ -86,6 +86,27 @@ export interface TooltipOptions {
86
86
  width?: number;
87
87
  };
88
88
  }
89
+ /**
90
+ * Threshold options
91
+ */
92
+ export interface ThresholdOptions {
93
+ /**
94
+ * threshold value
95
+ */
96
+ value: number | Date;
97
+ /**
98
+ * a function to format the threshold values
99
+ */
100
+ valueFormatter?: Function;
101
+ /**
102
+ * hex threshold line color
103
+ */
104
+ fillColor: string;
105
+ /**
106
+ * threshold label
107
+ */
108
+ label: string;
109
+ }
89
110
  /**
90
111
  * extends tooltip options to provide support for multiple gridline tooltips
91
112
  */
@@ -93,6 +93,15 @@ export declare enum CalloutDirections {
93
93
  LEFT = "left",
94
94
  RIGHT = "right"
95
95
  }
96
+ /**
97
+ * enum of all possible skeleton/empty state types
98
+ */
99
+ export declare enum Skeletons {
100
+ GRID = "grid",
101
+ VERT_OR_HORIZ = "vertOrHoriz",
102
+ PIE = "pie",
103
+ DONUT = "donut"
104
+ }
96
105
  /**
97
106
  * enum of all possible attributes used to aling text horizontally
98
107
  */
@@ -72,6 +72,13 @@ export declare enum Tooltip {
72
72
  SHOW = "show-tooltip",
73
73
  HIDE = "hide-tooltip"
74
74
  }
75
+ /**
76
+ * enum of all threshold events
77
+ */
78
+ export declare enum Threshold {
79
+ SHOW = "show-threshold",
80
+ HIDE = "hide-threshold"
81
+ }
75
82
  /**
76
83
  * enum of all legend related events
77
84
  */
@@ -17,6 +17,7 @@ export declare class ChartModel {
17
17
  constructor(services: any);
18
18
  getDisplayData(): any;
19
19
  getData(): any;
20
+ isDataEmpty(): boolean;
20
21
  /**
21
22
  *
22
23
  * @param newData The new raw data to be set
@@ -1,5 +1,5 @@
1
1
  import { Service } from "./service";
2
- import { AxisPositions, CartesianOrientations } from "../interfaces";
2
+ import { AxisPositions, CartesianOrientations, ThresholdOptions } from "../interfaces";
3
3
  export declare class CartesianScales extends Service {
4
4
  protected scaleTypes: {
5
5
  top: any;
@@ -46,4 +46,12 @@ export declare class CartesianScales extends Service {
46
46
  };
47
47
  protected getScaleDomain(axisPosition: AxisPositions): any;
48
48
  protected createScale(axisPosition: AxisPositions): any;
49
+ getHighestDomainThreshold(): null | {
50
+ threshold: ThresholdOptions;
51
+ scaleValue: number;
52
+ };
53
+ getHighestRangeThreshold(): null | {
54
+ threshold: ThresholdOptions;
55
+ scaleValue: number;
56
+ };
49
57
  }
@@ -0,0 +1 @@
1
+ export declare const eventListenersTutorial: string;
@@ -1,5 +1,6 @@
1
- export * from "./tabular-data-format";
2
1
  export * from "./getting-started/angular";
3
2
  export * from "./getting-started/react";
4
3
  export * from "./getting-started/vue";
5
4
  export * from "./getting-started/vanilla";
5
+ export * from "./tabular-data-format";
6
+ export * from "./event-listeners";