@carbon/charts 0.41.20 → 0.41.24
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +28 -46
- package/axis-chart.d.ts +4 -4
- package/axis-chart.js +46 -46
- package/axis-chart.js.map +1 -1
- package/build/demo/create-codesandbox.d.ts +42 -42
- package/build/demo/data/bar.d.ts +2 -2
- package/build/demo/data/index.d.ts +13 -13
- package/build/demo/data/line.d.ts +4 -4
- package/build/demo/data/meter.d.ts +1 -1
- package/build/src/axis-chart.d.ts +4 -4
- package/build/src/chart.d.ts +3 -3
- package/build/src/charts/area-stacked.d.ts +2 -2
- package/build/src/charts/area.d.ts +2 -2
- package/build/src/charts/bar-grouped.d.ts +2 -2
- package/build/src/charts/bar-simple.d.ts +2 -2
- package/build/src/charts/bar-stacked.d.ts +2 -2
- package/build/src/charts/bubble.d.ts +2 -2
- package/build/src/charts/combo.d.ts +2 -2
- package/build/src/charts/donut.d.ts +2 -2
- package/build/src/charts/gauge.d.ts +3 -3
- package/build/src/charts/index.d.ts +16 -16
- package/build/src/charts/line.d.ts +2 -2
- package/build/src/charts/lollipop.d.ts +2 -2
- package/build/src/charts/meter.d.ts +3 -3
- package/build/src/charts/pie.d.ts +3 -3
- package/build/src/charts/radar.d.ts +2 -2
- package/build/src/charts/scatter.d.ts +2 -2
- package/build/src/charts/treemap.d.ts +2 -2
- package/build/src/components/axes/axis.d.ts +3 -3
- package/build/src/components/axes/chart-clip.d.ts +2 -2
- package/build/src/components/axes/grid-brush.d.ts +1 -1
- package/build/src/components/axes/grid.d.ts +1 -1
- package/build/src/components/axes/ruler-stacked.d.ts +1 -1
- package/build/src/components/axes/ruler.d.ts +2 -2
- package/build/src/components/axes/toolbar.d.ts +2 -2
- package/build/src/components/axes/two-dimensional-axes.d.ts +2 -2
- package/build/src/components/axes/zero-line.d.ts +1 -1
- package/build/src/components/axes/zoom-bar.d.ts +2 -2
- package/build/src/components/component.d.ts +1 -1
- package/build/src/components/essentials/legend.d.ts +1 -1
- package/build/src/components/essentials/threshold.d.ts +3 -3
- package/build/src/components/essentials/title-meter.d.ts +1 -1
- package/build/src/components/essentials/title.d.ts +1 -1
- package/build/src/components/essentials/tooltip-axis.d.ts +1 -1
- package/build/src/components/essentials/tooltip.d.ts +3 -3
- package/build/src/components/graphs/area-stacked.d.ts +1 -1
- package/build/src/components/graphs/area.d.ts +1 -1
- package/build/src/components/graphs/bar-grouped.d.ts +2 -2
- package/build/src/components/graphs/bar-simple.d.ts +1 -1
- package/build/src/components/graphs/bar-stacked.d.ts +1 -1
- package/build/src/components/graphs/bar.d.ts +1 -1
- package/build/src/components/graphs/bubble.d.ts +2 -2
- package/build/src/components/graphs/donut.d.ts +1 -1
- package/build/src/components/graphs/gauge.d.ts +1 -1
- package/build/src/components/graphs/line.d.ts +1 -1
- package/build/src/components/graphs/lollipop.d.ts +1 -1
- package/build/src/components/graphs/meter.d.ts +1 -1
- package/build/src/components/graphs/pie.d.ts +1 -1
- package/build/src/components/graphs/radar.d.ts +1 -1
- package/build/src/components/graphs/scatter-stacked.d.ts +1 -1
- package/build/src/components/graphs/scatter.d.ts +2 -2
- package/build/src/components/graphs/skeleton-lines.d.ts +1 -1
- package/build/src/components/graphs/skeleton.d.ts +1 -1
- package/build/src/components/graphs/treemap.d.ts +1 -1
- package/build/src/components/index.d.ts +36 -36
- package/build/src/components/layout/layout.d.ts +3 -3
- package/build/src/components/layout/spacer.d.ts +1 -1
- package/build/src/configuration-non-customizable.d.ts +7 -7
- package/build/src/configuration.d.ts +2 -2
- package/build/src/interfaces/axis-scales.d.ts +7 -7
- package/build/src/interfaces/charts.d.ts +11 -4
- package/build/src/interfaces/components.d.ts +3 -3
- package/build/src/interfaces/enums.d.ts +1 -1
- package/build/src/interfaces/index.d.ts +7 -7
- package/build/src/interfaces/layout.d.ts +1 -1
- package/build/src/interfaces/model.d.ts +1 -1
- package/build/src/model-cartesian-charts.d.ts +1 -1
- package/build/src/model-gauge.d.ts +1 -1
- package/build/src/model-meter.d.ts +1 -1
- package/build/src/model-pie.d.ts +1 -1
- package/build/src/model.d.ts +1 -9
- package/build/src/services/angle-utils.d.ts +1 -1
- package/build/src/services/curves.d.ts +2 -2
- package/build/src/services/essentials/dom-utils.d.ts +2 -2
- package/build/src/services/essentials/events.d.ts +1 -1
- package/build/src/services/essentials/gradient-utils.d.ts +1 -1
- package/build/src/services/essentials/transitions.d.ts +2 -2
- package/build/src/services/index.d.ts +7 -7
- package/build/src/services/scales-cartesian.d.ts +2 -2
- package/build/src/services/service.d.ts +1 -1
- package/build/src/services/time-series.d.ts +1 -1
- package/build/src/services/zoom.d.ts +2 -2
- package/build/src/tools.d.ts +2 -2
- package/build/stories/all.stories.d.ts +1 -1
- package/build/stories/tutorials/index.d.ts +11 -11
- package/build/stories/tutorials.stories.d.ts +1 -1
- package/bundle.js +1 -1
- package/chart.d.ts +3 -3
- package/chart.js +35 -35
- package/chart.js.map +1 -1
- package/charts/area-stacked.d.ts +2 -2
- package/charts/area-stacked.js +8 -8
- package/charts/area-stacked.js.map +1 -1
- package/charts/area.d.ts +2 -2
- package/charts/area.js +8 -8
- package/charts/area.js.map +1 -1
- package/charts/bar-grouped.d.ts +2 -2
- package/charts/bar-grouped.js +7 -7
- package/charts/bar-grouped.js.map +1 -1
- package/charts/bar-simple.d.ts +2 -2
- package/charts/bar-simple.js +7 -7
- package/charts/bar-simple.js.map +1 -1
- package/charts/bar-stacked.d.ts +2 -2
- package/charts/bar-stacked.js +7 -7
- package/charts/bar-stacked.js.map +1 -1
- package/charts/bubble.d.ts +2 -2
- package/charts/bubble.js +7 -7
- package/charts/bubble.js.map +1 -1
- package/charts/combo.d.ts +2 -2
- package/charts/combo.js +12 -12
- package/charts/combo.js.map +1 -1
- package/charts/donut.d.ts +2 -2
- package/charts/donut.js +7 -7
- package/charts/donut.js.map +1 -1
- package/charts/gauge.d.ts +3 -3
- package/charts/gauge.js +5 -5
- package/charts/gauge.js.map +1 -1
- package/charts/index.d.ts +16 -16
- package/charts/index.js +16 -16
- package/charts/index.js.map +1 -1
- package/charts/line.d.ts +2 -2
- package/charts/line.js +5 -5
- package/charts/line.js.map +1 -1
- package/charts/lollipop.d.ts +2 -2
- package/charts/lollipop.js +7 -7
- package/charts/lollipop.js.map +1 -1
- package/charts/meter.d.ts +3 -3
- package/charts/meter.js +18 -18
- package/charts/meter.js.map +1 -1
- package/charts/pie.d.ts +3 -3
- package/charts/pie.js +8 -8
- package/charts/pie.js.map +1 -1
- package/charts/radar.d.ts +2 -2
- package/charts/radar.js +5 -5
- package/charts/radar.js.map +1 -1
- package/charts/scatter.d.ts +2 -2
- package/charts/scatter.js +7 -7
- package/charts/scatter.js.map +1 -1
- package/charts/treemap.d.ts +2 -2
- package/charts/treemap.js +4 -4
- package/charts/treemap.js.map +1 -1
- package/components/axes/axis.d.ts +3 -3
- package/components/axes/axis.js +98 -98
- package/components/axes/axis.js.map +1 -1
- package/components/axes/chart-clip.d.ts +2 -2
- package/components/axes/chart-clip.js +9 -9
- package/components/axes/chart-clip.js.map +1 -1
- package/components/axes/grid-brush.d.ts +1 -1
- package/components/axes/grid-brush.js +32 -32
- package/components/axes/grid-brush.js.map +1 -1
- package/components/axes/grid.d.ts +1 -1
- package/components/axes/grid.js +34 -34
- package/components/axes/grid.js.map +1 -1
- package/components/axes/ruler-stacked.d.ts +1 -1
- package/components/axes/ruler-stacked.js +5 -5
- package/components/axes/ruler-stacked.js.map +1 -1
- package/components/axes/ruler.d.ts +2 -2
- package/components/axes/ruler.js +36 -36
- package/components/axes/ruler.js.map +1 -1
- package/components/axes/toolbar.d.ts +2 -2
- package/components/axes/toolbar.js +85 -85
- package/components/axes/toolbar.js.map +1 -1
- package/components/axes/two-dimensional-axes.d.ts +2 -2
- package/components/axes/two-dimensional-axes.js +13 -13
- package/components/axes/two-dimensional-axes.js.map +1 -1
- package/components/axes/zero-line.d.ts +1 -1
- package/components/axes/zero-line.js +12 -12
- package/components/axes/zero-line.js.map +1 -1
- package/components/axes/zoom-bar.d.ts +2 -2
- package/components/axes/zoom-bar.js +114 -114
- package/components/axes/zoom-bar.js.map +1 -1
- package/components/component.d.ts +1 -1
- package/components/component.js +13 -13
- package/components/component.js.map +1 -1
- package/components/essentials/legend.d.ts +1 -1
- package/components/essentials/legend.js +95 -92
- package/components/essentials/legend.js.map +1 -1
- package/components/essentials/threshold.d.ts +3 -3
- package/components/essentials/threshold.js +39 -39
- package/components/essentials/threshold.js.map +1 -1
- package/components/essentials/title-meter.d.ts +1 -1
- package/components/essentials/title-meter.js +42 -42
- package/components/essentials/title-meter.js.map +1 -1
- package/components/essentials/title.d.ts +1 -1
- package/components/essentials/title.js +19 -19
- package/components/essentials/title.js.map +1 -1
- package/components/essentials/tooltip-axis.d.ts +1 -1
- package/components/essentials/tooltip-axis.js +23 -23
- package/components/essentials/tooltip-axis.js.map +1 -1
- package/components/essentials/tooltip.d.ts +3 -3
- package/components/essentials/tooltip.js +31 -31
- package/components/essentials/tooltip.js.map +1 -1
- package/components/graphs/area-stacked.d.ts +1 -1
- package/components/graphs/area-stacked.js +28 -29
- package/components/graphs/area-stacked.js.map +1 -1
- package/components/graphs/area.d.ts +1 -1
- package/components/graphs/area.js +62 -57
- package/components/graphs/area.js.map +1 -1
- package/components/graphs/bar-grouped.d.ts +2 -2
- package/components/graphs/bar-grouped.js +56 -56
- package/components/graphs/bar-grouped.js.map +1 -1
- package/components/graphs/bar-simple.d.ts +1 -1
- package/components/graphs/bar-simple.js +45 -45
- package/components/graphs/bar-simple.js.map +1 -1
- package/components/graphs/bar-stacked.d.ts +1 -1
- package/components/graphs/bar-stacked.js +50 -51
- package/components/graphs/bar-stacked.js.map +1 -1
- package/components/graphs/bar.d.ts +1 -1
- package/components/graphs/bar.js +4 -4
- package/components/graphs/bar.js.map +1 -1
- package/components/graphs/bubble.d.ts +2 -2
- package/components/graphs/bubble.js +19 -19
- package/components/graphs/bubble.js.map +1 -1
- package/components/graphs/donut.d.ts +1 -1
- package/components/graphs/donut.js +20 -20
- package/components/graphs/donut.js.map +1 -1
- package/components/graphs/gauge.d.ts +1 -1
- package/components/graphs/gauge.js +89 -87
- package/components/graphs/gauge.js.map +1 -1
- package/components/graphs/line.d.ts +1 -1
- package/components/graphs/line.js +33 -33
- package/components/graphs/line.js.map +1 -1
- package/components/graphs/lollipop.d.ts +1 -1
- package/components/graphs/lollipop.js +32 -32
- package/components/graphs/lollipop.js.map +1 -1
- package/components/graphs/meter.d.ts +1 -1
- package/components/graphs/meter.js +39 -39
- package/components/graphs/meter.js.map +1 -1
- package/components/graphs/pie.d.ts +1 -1
- package/components/graphs/pie.js +102 -100
- package/components/graphs/pie.js.map +1 -1
- package/components/graphs/radar.d.ts +1 -1
- package/components/graphs/radar.js +180 -180
- package/components/graphs/radar.js.map +1 -1
- package/components/graphs/scatter-stacked.d.ts +1 -1
- package/components/graphs/scatter-stacked.js +22 -22
- package/components/graphs/scatter-stacked.js.map +1 -1
- package/components/graphs/scatter.d.ts +2 -2
- package/components/graphs/scatter.js +67 -66
- package/components/graphs/scatter.js.map +1 -1
- package/components/graphs/skeleton-lines.d.ts +1 -1
- package/components/graphs/skeleton-lines.js +27 -27
- package/components/graphs/skeleton-lines.js.map +1 -1
- package/components/graphs/skeleton.d.ts +1 -1
- package/components/graphs/skeleton.js +85 -85
- package/components/graphs/skeleton.js.map +1 -1
- package/components/graphs/treemap.d.ts +1 -1
- package/components/graphs/treemap.js +82 -82
- package/components/graphs/treemap.js.map +1 -1
- package/components/index.d.ts +36 -36
- package/components/index.js +36 -36
- package/components/index.js.map +1 -1
- package/components/layout/layout.d.ts +3 -3
- package/components/layout/layout.js +28 -28
- package/components/layout/layout.js.map +1 -1
- package/components/layout/spacer.d.ts +1 -1
- package/components/layout/spacer.js +10 -10
- package/components/layout/spacer.js.map +1 -1
- package/configuration-non-customizable.d.ts +7 -7
- package/configuration-non-customizable.js +37 -37
- package/configuration-non-customizable.js.map +1 -1
- package/configuration.d.ts +2 -2
- package/configuration.js +81 -78
- package/configuration.js.map +1 -1
- package/demo/create-codesandbox.d.ts +42 -42
- package/demo/create-codesandbox.js +100 -100
- package/demo/create-codesandbox.js.map +1 -1
- package/demo/data/area.js +220 -190
- package/demo/data/area.js.map +1 -1
- package/demo/data/bar.d.ts +2 -2
- package/demo/data/bar.js +302 -302
- package/demo/data/bar.js.map +1 -1
- package/demo/data/bubble.js +108 -108
- package/demo/data/bubble.js.map +1 -1
- package/demo/data/combo.js +323 -323
- package/demo/data/combo.js.map +1 -1
- package/demo/data/donut.js +19 -19
- package/demo/data/donut.js.map +1 -1
- package/demo/data/gauge.js +20 -20
- package/demo/data/gauge.js.map +1 -1
- package/demo/data/high-scale.js +3 -3
- package/demo/data/high-scale.js.map +1 -1
- package/demo/data/index.d.ts +13 -13
- package/demo/data/index.js +299 -299
- package/demo/data/index.js.map +1 -1
- package/demo/data/line.d.ts +4 -4
- package/demo/data/line.js +332 -332
- package/demo/data/line.js.map +1 -1
- package/demo/data/lollipop.js +19 -19
- package/demo/data/lollipop.js.map +1 -1
- package/demo/data/meter.d.ts +1 -1
- package/demo/data/meter.js +22 -22
- package/demo/data/meter.js.map +1 -1
- package/demo/data/pie.js +17 -17
- package/demo/data/pie.js.map +1 -1
- package/demo/data/radar.js +84 -84
- package/demo/data/radar.js.map +1 -1
- package/demo/data/scatter.js +125 -125
- package/demo/data/scatter.js.map +1 -1
- package/demo/data/step.js +11 -11
- package/demo/data/step.js.map +1 -1
- package/demo/data/time-series-axis.js +164 -164
- package/demo/data/time-series-axis.js.map +1 -1
- package/demo/data/toolbar.js +15 -15
- package/demo/data/toolbar.js.map +1 -1
- package/demo/data/treemap.js +63 -63
- package/demo/data/treemap.js.map +1 -1
- package/demo/data/zoom-bar.js +65 -65
- package/demo/data/zoom-bar.js.map +1 -1
- package/demo/styles.css +1 -1
- package/demo/styles.min.css +1 -1
- package/demo/tsconfig.tsbuildinfo +45 -45
- package/index.d.ts +3 -3
- package/index.js +3 -3
- package/index.js.map +1 -1
- package/interfaces/a11y.js.map +1 -1
- package/interfaces/axis-scales.d.ts +7 -7
- package/interfaces/axis-scales.js.map +1 -1
- package/interfaces/charts.d.ts +11 -4
- package/interfaces/charts.js.map +1 -1
- package/interfaces/components.d.ts +3 -3
- package/interfaces/components.js.map +1 -1
- package/interfaces/enums.d.ts +1 -1
- package/interfaces/enums.js +1 -1
- package/interfaces/enums.js.map +1 -1
- package/interfaces/events.js.map +1 -1
- package/interfaces/index.d.ts +7 -7
- package/interfaces/index.js +2 -2
- package/interfaces/index.js.map +1 -1
- package/interfaces/layout.d.ts +1 -1
- package/interfaces/layout.js.map +1 -1
- package/interfaces/model.d.ts +1 -1
- package/interfaces/model.js.map +1 -1
- package/model-cartesian-charts.d.ts +1 -1
- package/model-cartesian-charts.js +7 -7
- package/model-cartesian-charts.js.map +1 -1
- package/model-gauge.d.ts +1 -1
- package/model-gauge.js +2 -2
- package/model-gauge.js.map +1 -1
- package/model-meter.d.ts +1 -1
- package/model-meter.js +7 -7
- package/model-meter.js.map +1 -1
- package/model-pie.d.ts +1 -1
- package/model-pie.js +1 -1
- package/model-pie.js.map +1 -1
- package/model.d.ts +1 -9
- package/model.js +31 -42
- package/model.js.map +1 -1
- package/package.json +2 -3
- package/polyfills.js +9 -9
- package/polyfills.js.map +1 -1
- package/services/angle-utils.d.ts +1 -1
- package/services/angle-utils.js +9 -9
- package/services/angle-utils.js.map +1 -1
- package/services/curves.d.ts +2 -2
- package/services/curves.js +6 -6
- package/services/curves.js.map +1 -1
- package/services/essentials/dom-utils.d.ts +2 -2
- package/services/essentials/dom-utils.js +37 -37
- package/services/essentials/dom-utils.js.map +1 -1
- package/services/essentials/events.d.ts +1 -1
- package/services/essentials/events.js +3 -3
- package/services/essentials/events.js.map +1 -1
- package/services/essentials/gradient-utils.d.ts +1 -1
- package/services/essentials/gradient-utils.js +25 -25
- package/services/essentials/gradient-utils.js.map +1 -1
- package/services/essentials/transitions.d.ts +2 -2
- package/services/essentials/transitions.js +8 -8
- package/services/essentials/transitions.js.map +1 -1
- package/services/index.d.ts +7 -7
- package/services/index.js +7 -7
- package/services/index.js.map +1 -1
- package/services/scales-cartesian.d.ts +2 -2
- package/services/scales-cartesian.js +57 -60
- package/services/scales-cartesian.js.map +1 -1
- package/services/service.d.ts +1 -1
- package/services/service.js.map +1 -1
- package/services/time-series.d.ts +1 -1
- package/services/time-series.js +27 -27
- package/services/time-series.js.map +1 -1
- package/services/zoom.d.ts +2 -2
- package/services/zoom.js +20 -20
- package/services/zoom.js.map +1 -1
- package/styles/_type.scss +7 -7
- package/styles/color-palatte.scss +218 -218
- package/styles/colors.scss +3 -3
- package/styles/components/_axis.scss +5 -5
- package/styles/components/_ruler.scss +2 -2
- package/styles/components/_threshold.scss +1 -1
- package/styles/components/_title.scss +3 -3
- package/styles/components/_toolbar.scss +1 -1
- package/styles/components/_tooltip.scss +6 -6
- package/styles/components/index.scss +16 -16
- package/styles/graphs/_bubble.scss +1 -1
- package/styles/graphs/_radar.scss +2 -2
- package/styles/graphs/_scatter.scss +1 -1
- package/styles/graphs/_treemap.scss +1 -1
- package/styles/graphs/index.scss +9 -9
- package/styles/styles-g10.scss +2 -2
- package/styles/styles-g100.scss +2 -2
- package/styles/styles-g90.scss +2 -2
- package/styles/styles-white.scss +2 -2
- package/styles/styles.scss +10 -10
- package/tools.d.ts +2 -2
- package/tools.js +26 -26
- package/tools.js.map +1 -1
- package/tsconfig.tsbuildinfo +173 -173
|
@@ -1,16 +1,16 @@
|
|
|
1
|
-
@import
|
|
2
|
-
@import
|
|
3
|
-
@import
|
|
4
|
-
@import
|
|
5
|
-
@import
|
|
6
|
-
@import
|
|
7
|
-
@import
|
|
8
|
-
@import
|
|
9
|
-
@import
|
|
10
|
-
@import
|
|
11
|
-
@import
|
|
12
|
-
@import
|
|
13
|
-
@import
|
|
14
|
-
@import
|
|
15
|
-
@import
|
|
16
|
-
@import
|
|
1
|
+
@import './axis';
|
|
2
|
+
@import './callouts';
|
|
3
|
+
@import './grid-brush';
|
|
4
|
+
@import './grid';
|
|
5
|
+
@import './ruler';
|
|
6
|
+
@import './skeleton';
|
|
7
|
+
@import './skeleton-lines';
|
|
8
|
+
@import './zero-line';
|
|
9
|
+
@import './layout';
|
|
10
|
+
@import './legend';
|
|
11
|
+
@import './title';
|
|
12
|
+
@import './meter-title';
|
|
13
|
+
@import './toolbar';
|
|
14
|
+
@import './tooltip';
|
|
15
|
+
@import './threshold';
|
|
16
|
+
@import './zoom-bar';
|
|
@@ -10,11 +10,11 @@
|
|
|
10
10
|
}
|
|
11
11
|
|
|
12
12
|
.x-axes line.hovered {
|
|
13
|
-
@if $ui-background == map-get($carbon--theme--g90,
|
|
13
|
+
@if $ui-background == map-get($carbon--theme--g90, 'ui-background') {
|
|
14
14
|
stroke: $carbon--white-0;
|
|
15
15
|
} @else if
|
|
16
16
|
$ui-background ==
|
|
17
|
-
map-get($carbon--theme--g100,
|
|
17
|
+
map-get($carbon--theme--g100, 'ui-background')
|
|
18
18
|
{
|
|
19
19
|
stroke: $carbon--white-0;
|
|
20
20
|
} @else {
|
package/styles/graphs/index.scss
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
@import
|
|
2
|
-
@import
|
|
3
|
-
@import
|
|
4
|
-
@import
|
|
5
|
-
@import
|
|
6
|
-
@import
|
|
7
|
-
@import
|
|
8
|
-
@import
|
|
9
|
-
@import
|
|
1
|
+
@import './area';
|
|
2
|
+
@import './bubble';
|
|
3
|
+
@import './line';
|
|
4
|
+
@import './scatter';
|
|
5
|
+
@import './meter';
|
|
6
|
+
@import './scatter-stacked';
|
|
7
|
+
@import './radar';
|
|
8
|
+
@import './treemap';
|
|
9
|
+
@import './gauge';
|
package/styles/styles-g10.scss
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
@import
|
|
1
|
+
@import './vendor/carbon-components/scss/globals/scss/vendor/@carbon/elements/scss/themes/mixins';
|
|
2
2
|
@include carbon--theme($carbon--theme--g10) {
|
|
3
3
|
$carbon--theme: $carbon--theme--g10;
|
|
4
|
-
@import
|
|
4
|
+
@import './styles';
|
|
5
5
|
}
|
package/styles/styles-g100.scss
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
@import
|
|
1
|
+
@import './vendor/carbon-components/scss/globals/scss/vendor/@carbon/elements/scss/themes/mixins';
|
|
2
2
|
@include carbon--theme($carbon--theme--g100) {
|
|
3
3
|
$carbon--theme: $carbon--theme--g100;
|
|
4
|
-
@import
|
|
4
|
+
@import './styles';
|
|
5
5
|
}
|
package/styles/styles-g90.scss
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
@import
|
|
1
|
+
@import './vendor/carbon-components/scss/globals/scss/vendor/@carbon/elements/scss/themes/mixins';
|
|
2
2
|
@include carbon--theme($carbon--theme--g90) {
|
|
3
3
|
$carbon--theme: $carbon--theme--g90;
|
|
4
|
-
@import
|
|
4
|
+
@import './styles';
|
|
5
5
|
}
|
package/styles/styles-white.scss
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
@import
|
|
1
|
+
@import './vendor/carbon-components/scss/globals/scss/vendor/@carbon/elements/scss/themes/mixins';
|
|
2
2
|
@include carbon--theme($carbon--theme--white) {
|
|
3
3
|
$carbon--theme: $carbon--theme--white;
|
|
4
|
-
@import
|
|
4
|
+
@import './styles';
|
|
5
5
|
}
|
package/styles/styles.scss
CHANGED
|
@@ -1,26 +1,26 @@
|
|
|
1
|
-
$charts-prefix:
|
|
1
|
+
$charts-prefix: 'cc';
|
|
2
2
|
|
|
3
3
|
// Custom dataviz palette colors
|
|
4
4
|
$carbon-dataviz-alert: #b28600;
|
|
5
5
|
$carbon-dataviz-yellow-10: #fcf4d6;
|
|
6
6
|
|
|
7
7
|
// Carbon imports
|
|
8
|
-
@import
|
|
9
|
-
@import
|
|
8
|
+
@import './vendor/@carbon/colors/scss/colors';
|
|
9
|
+
@import './vendor/@carbon/type/scss/prefix';
|
|
10
10
|
|
|
11
|
-
@if variable-exists($name:
|
|
11
|
+
@if variable-exists($name: 'carbon--theme') == false {
|
|
12
12
|
@warn "$carbon--theme not found, or is undefined. \
|
|
13
13
|
Either import the Carbon SCSS and set a theme or, if you're using Charts without Carbon, \
|
|
14
14
|
import one of the styles-[theme name here].scss files";
|
|
15
15
|
}
|
|
16
16
|
|
|
17
17
|
// Internal
|
|
18
|
-
@import
|
|
19
|
-
@import
|
|
20
|
-
@import
|
|
21
|
-
@import
|
|
22
|
-
@import
|
|
23
|
-
@import
|
|
18
|
+
@import './mixins.scss';
|
|
19
|
+
@import './colors.scss';
|
|
20
|
+
@import './components/index.scss';
|
|
21
|
+
@import './graphs/index.scss';
|
|
22
|
+
@import './type';
|
|
23
|
+
@import './chart-holder';
|
|
24
24
|
|
|
25
25
|
svg.#{$prefix}--#{$charts-prefix}--chart-svg {
|
|
26
26
|
overflow: visible;
|
package/tools.d.ts
CHANGED
package/tools.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
// Internal imports
|
|
2
|
-
import { CartesianOrientations, ScaleTypes, TruncationTypes } from
|
|
3
|
-
import { debounce as lodashDebounce, merge as lodashMerge, cloneDeep as lodashCloneDeep, uniq as lodashUnique, clamp as lodashClamp, flatten as lodashFlatten, camelCase as lodashCamelCase, isEmpty as lodashIsEmpty, isEqual as lodashIsEqual, flatMapDeep as lodashFlatMapDeep, kebabCase as lodashKebabCase, fromPairs as lodashFromPairs, some as lodashSome } from
|
|
4
|
-
import { mouse } from
|
|
2
|
+
import { CartesianOrientations, ScaleTypes, TruncationTypes, } from './interfaces';
|
|
3
|
+
import { debounce as lodashDebounce, merge as lodashMerge, cloneDeep as lodashCloneDeep, uniq as lodashUnique, clamp as lodashClamp, flatten as lodashFlatten, camelCase as lodashCamelCase, isEmpty as lodashIsEmpty, isEqual as lodashIsEqual, flatMapDeep as lodashFlatMapDeep, kebabCase as lodashKebabCase, fromPairs as lodashFromPairs, some as lodashSome, } from 'lodash-es';
|
|
4
|
+
import { mouse } from 'd3-selection';
|
|
5
5
|
// Functions
|
|
6
6
|
export var Tools;
|
|
7
7
|
(function (Tools) {
|
|
@@ -55,21 +55,21 @@ export var Tools;
|
|
|
55
55
|
for (var axisName in defaultOptions.axes) {
|
|
56
56
|
if (providedAxesNames.includes(axisName)) {
|
|
57
57
|
var providedAxisOptions = providedOptions.axes[axisName];
|
|
58
|
-
if (providedAxisOptions[
|
|
59
|
-
providedAxisOptions[
|
|
60
|
-
console.warn(
|
|
58
|
+
if (providedAxisOptions['primary'] ||
|
|
59
|
+
providedAxisOptions['secondary']) {
|
|
60
|
+
console.warn('`primary` & `secondary` are no longer needed for axis configurations. Read more here https://carbon-design-system.github.io/carbon-charts/?path=/story/tutorials--tabular-data-format');
|
|
61
61
|
}
|
|
62
|
-
var identifier = providedAxisOptions[
|
|
62
|
+
var identifier = providedAxisOptions['mapsTo'];
|
|
63
63
|
if (identifier === undefined || identifier === null) {
|
|
64
|
-
var scaleType = providedAxisOptions[
|
|
64
|
+
var scaleType = providedAxisOptions['scaleType'];
|
|
65
65
|
if (scaleType === undefined || scaleType === null) {
|
|
66
|
-
providedAxisOptions[
|
|
66
|
+
providedAxisOptions['mapsTo'] = 'value';
|
|
67
67
|
}
|
|
68
68
|
else if (scaleType === ScaleTypes.TIME) {
|
|
69
|
-
providedAxisOptions[
|
|
69
|
+
providedAxisOptions['mapsTo'] = 'date';
|
|
70
70
|
}
|
|
71
71
|
else if (scaleType === ScaleTypes.LABELS) {
|
|
72
|
-
providedAxisOptions[
|
|
72
|
+
providedAxisOptions['mapsTo'] = 'key';
|
|
73
73
|
}
|
|
74
74
|
}
|
|
75
75
|
}
|
|
@@ -92,8 +92,8 @@ export var Tools;
|
|
|
92
92
|
*/
|
|
93
93
|
function getDimensions(el) {
|
|
94
94
|
return {
|
|
95
|
-
width: parseFloat(el.style.width.replace(
|
|
96
|
-
height: parseFloat(el.style.height.replace(
|
|
95
|
+
width: parseFloat(el.style.width.replace('px', '') || el.offsetWidth),
|
|
96
|
+
height: parseFloat(el.style.height.replace('px', '') || el.offsetHeight),
|
|
97
97
|
};
|
|
98
98
|
}
|
|
99
99
|
Tools.getDimensions = getDimensions;
|
|
@@ -110,7 +110,7 @@ export var Tools;
|
|
|
110
110
|
// regex to ONLY get values for translate (instead of all rotate, translate, skew, etc)
|
|
111
111
|
var translateRegex = /translate\([0-9]+\.?[0-9]*,[0-9]+\.?[0-9]*\)/;
|
|
112
112
|
var transformStr = elementRef
|
|
113
|
-
.getAttribute(
|
|
113
|
+
.getAttribute('transform')
|
|
114
114
|
.match(translateRegex);
|
|
115
115
|
if (!transformStr) {
|
|
116
116
|
return null;
|
|
@@ -118,12 +118,12 @@ export var Tools;
|
|
|
118
118
|
// check for the match
|
|
119
119
|
if (transformStr[0]) {
|
|
120
120
|
var transforms = transformStr[0]
|
|
121
|
-
.replace(/translate\(/,
|
|
122
|
-
.replace(/\)/,
|
|
123
|
-
.split(
|
|
121
|
+
.replace(/translate\(/, '')
|
|
122
|
+
.replace(/\)/, '')
|
|
123
|
+
.split(',');
|
|
124
124
|
return {
|
|
125
125
|
tx: transforms[0],
|
|
126
|
-
ty: transforms[1]
|
|
126
|
+
ty: transforms[1],
|
|
127
127
|
};
|
|
128
128
|
}
|
|
129
129
|
return null;
|
|
@@ -142,10 +142,10 @@ export var Tools;
|
|
|
142
142
|
function getTranformOffsets(string) {
|
|
143
143
|
var regExp = /\(([^)]+)\)/;
|
|
144
144
|
var match = regExp.exec(string)[1];
|
|
145
|
-
var xyString = match.split(
|
|
145
|
+
var xyString = match.split(',');
|
|
146
146
|
return {
|
|
147
147
|
x: parseFloat(xyString[0]),
|
|
148
|
-
y: parseFloat(xyString[1])
|
|
148
|
+
y: parseFloat(xyString[1]),
|
|
149
149
|
};
|
|
150
150
|
}
|
|
151
151
|
Tools.getTranformOffsets = getTranformOffsets;
|
|
@@ -161,7 +161,7 @@ export var Tools;
|
|
|
161
161
|
if (stringValue.match(/[a-z]/i)) {
|
|
162
162
|
return stringValue;
|
|
163
163
|
}
|
|
164
|
-
return stringValue +
|
|
164
|
+
return stringValue + 'px';
|
|
165
165
|
}
|
|
166
166
|
Tools.formatWidthHeightValues = formatWidthHeightValues;
|
|
167
167
|
/**
|
|
@@ -205,14 +205,14 @@ export var Tools;
|
|
|
205
205
|
}
|
|
206
206
|
if (truncationType === TruncationTypes.MID_LINE) {
|
|
207
207
|
return (fullText.substr(0, numCharacter / 2) +
|
|
208
|
-
|
|
208
|
+
'...' +
|
|
209
209
|
fullText.substr(-numCharacter / 2));
|
|
210
210
|
}
|
|
211
211
|
else if (truncationType === TruncationTypes.FRONT_LINE) {
|
|
212
|
-
return
|
|
212
|
+
return '...' + fullText.substr(-numCharacter);
|
|
213
213
|
}
|
|
214
214
|
else if (truncationType === TruncationTypes.END_LINE) {
|
|
215
|
-
return fullText.substr(0, numCharacter) +
|
|
215
|
+
return fullText.substr(0, numCharacter) + '...';
|
|
216
216
|
}
|
|
217
217
|
}
|
|
218
218
|
Tools.truncateLabel = truncateLabel;
|
|
@@ -231,7 +231,7 @@ export var Tools;
|
|
|
231
231
|
function arrayDifferences(oldArray, newArray) {
|
|
232
232
|
var difference = {
|
|
233
233
|
missing: [],
|
|
234
|
-
added: []
|
|
234
|
+
added: [],
|
|
235
235
|
};
|
|
236
236
|
oldArray.forEach(function (element) {
|
|
237
237
|
if (newArray.indexOf(element) === -1) {
|
|
@@ -318,7 +318,7 @@ export var Tools;
|
|
|
318
318
|
y0: verticalCoordinates.x0,
|
|
319
319
|
y1: verticalCoordinates.x1,
|
|
320
320
|
x0: verticalCoordinates.y0,
|
|
321
|
-
x1: verticalCoordinates.y1
|
|
321
|
+
x1: verticalCoordinates.y1,
|
|
322
322
|
};
|
|
323
323
|
}
|
|
324
324
|
return verticalCoordinates;
|
package/tools.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tools.js","sourceRoot":"","sources":["tools.ts"],"names":[],"mappings":"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","sourcesContent":["// Internal imports\nimport {\n\tAxisChartOptions,\n\tCartesianOrientations,\n\tScaleTypes,\n\tTruncationTypes\n} from \"./interfaces\";\n\nimport {\n\tdebounce as lodashDebounce,\n\tmerge as lodashMerge,\n\tcloneDeep as lodashCloneDeep,\n\tuniq as lodashUnique,\n\tclamp as lodashClamp,\n\tflatten as lodashFlatten,\n\tcamelCase as lodashCamelCase,\n\tisEmpty as lodashIsEmpty,\n\tisEqual as lodashIsEqual,\n\tflatMapDeep as lodashFlatMapDeep,\n\tkebabCase as lodashKebabCase,\n\tfromPairs as lodashFromPairs,\n\tsome as lodashSome,\n\t// the imports below are needed because of typescript bug (error TS4029)\n\tCancelable,\n\tDebounceSettings\n} from \"lodash-es\";\n\nimport { mouse } from \"d3-selection\";\nimport { Numeric } from \"d3\";\n\n// Functions\nexport namespace Tools {\n\t// Export these functions from lodash\n\texport const debounce = lodashDebounce;\n\texport const clone = lodashCloneDeep;\n\texport const merge = lodashMerge;\n\texport const removeArrayDuplicates = lodashUnique;\n\texport const clamp = lodashClamp;\n\texport const flatten = lodashFlatten;\n\texport const camelCase = lodashCamelCase;\n\texport const isEmpty = lodashIsEmpty;\n\texport const isEqual = lodashIsEqual;\n\texport const flatMapDeep = lodashFlatMapDeep;\n\texport const kebabCase = lodashKebabCase;\n\texport const fromPairs = lodashFromPairs;\n\texport const some = lodashSome;\n\n\texport function debounceWithD3MousePosition(fn, delay, element) {\n\t\tvar timer = null;\n\t\treturn function () {\n\t\t\tconst context = this;\n\t\t\tconst args = arguments;\n\n\t\t\t//we get the D3 event here\n\t\t\tcontext.mousePosition = mouse(element);\n\n\t\t\tclearTimeout(timer);\n\n\t\t\ttimer = setTimeout(function () {\n\t\t\t\t// and use the reference here\n\t\t\t\tfn.apply(context, args);\n\t\t\t}, delay);\n\t\t};\n\t}\n\n\t/**\n\t * Returns default chart options merged with provided options,\n\t * with special cases for axes.\n\t * Axes object will not merge the not provided axes.\n\t *\n\t * @export\n\t * @param {AxisChartOptions} defaultOptions Configuration.options[chartType]\n\t * @param {AxisChartOptions} providedOptions user provided options\n\t * @returns merged options\n\t */\n\texport function mergeDefaultChartOptions(\n\t\tdefaultOptions: any,\n\t\tprovidedOptions: any\n\t) {\n\t\tdefaultOptions = Tools.clone(defaultOptions);\n\t\tconst providedAxesNames = Object.keys(providedOptions.axes || {});\n\n\t\tif (providedAxesNames.length === 0) {\n\t\t\tdelete defaultOptions.axes;\n\t\t}\n\n\t\t// Update deprecated options to work with the tabular data format\n\t\t// Similar to the functionality in model.transformToTabularData()\n\t\tfor (const axisName in defaultOptions.axes) {\n\t\t\tif (providedAxesNames.includes(axisName)) {\n\t\t\t\tconst providedAxisOptions = providedOptions.axes[axisName];\n\n\t\t\t\tif (\n\t\t\t\t\tprovidedAxisOptions[\"primary\"] ||\n\t\t\t\t\tprovidedAxisOptions[\"secondary\"]\n\t\t\t\t) {\n\t\t\t\t\tconsole.warn(\n\t\t\t\t\t\t\"`primary` & `secondary` are no longer needed for axis configurations. Read more here https://carbon-design-system.github.io/carbon-charts/?path=/story/tutorials--tabular-data-format\"\n\t\t\t\t\t);\n\t\t\t\t}\n\n\t\t\t\tconst identifier = providedAxisOptions[\"mapsTo\"];\n\t\t\t\tif (identifier === undefined || identifier === null) {\n\t\t\t\t\tconst scaleType = providedAxisOptions[\"scaleType\"];\n\n\t\t\t\t\tif (scaleType === undefined || scaleType === null) {\n\t\t\t\t\t\tprovidedAxisOptions[\"mapsTo\"] = \"value\";\n\t\t\t\t\t} else if (scaleType === ScaleTypes.TIME) {\n\t\t\t\t\t\tprovidedAxisOptions[\"mapsTo\"] = \"date\";\n\t\t\t\t\t} else if (scaleType === ScaleTypes.LABELS) {\n\t\t\t\t\t\tprovidedAxisOptions[\"mapsTo\"] = \"key\";\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tdelete defaultOptions.axes[axisName];\n\t\t\t}\n\t\t}\n\n\t\treturn Tools.merge(defaultOptions, providedOptions);\n\t}\n\n\t/**************************************\n\t * DOM-related operations *\n\t *************************************/\n\n\t/**\n\t * Get width & height of an element\n\t *\n\t * @export\n\t * @param {any} el element to get dimensions from\n\t * @returns an object containing the width and height of el\n\t */\n\texport function getDimensions(el) {\n\t\treturn {\n\t\t\twidth: parseFloat(\n\t\t\t\tel.style.width.replace(\"px\", \"\") || el.offsetWidth\n\t\t\t),\n\t\t\theight: parseFloat(\n\t\t\t\tel.style.height.replace(\"px\", \"\") || el.offsetHeight\n\t\t\t)\n\t\t};\n\t}\n\n\t/**\n\t * Gets elements's x and y translations from transform attribute or returns null\n\t *\n\t * @param {HTMLElement} element\n\t * @returns an object containing the translated x and y values or null\n\t */\n\texport function getTranslationValues(elementRef: HTMLElement) {\n\t\tif (!elementRef) {\n\t\t\treturn;\n\t\t}\n\n\t\t// regex to ONLY get values for translate (instead of all rotate, translate, skew, etc)\n\t\tconst translateRegex = /translate\\([0-9]+\\.?[0-9]*,[0-9]+\\.?[0-9]*\\)/;\n\n\t\tconst transformStr = elementRef\n\t\t\t.getAttribute(\"transform\")\n\t\t\t.match(translateRegex);\n\t\tif (!transformStr) {\n\t\t\treturn null;\n\t\t}\n\n\t\t// check for the match\n\t\tif (transformStr[0]) {\n\t\t\tconst transforms = transformStr[0]\n\t\t\t\t.replace(/translate\\(/, \"\")\n\t\t\t\t.replace(/\\)/, \"\")\n\t\t\t\t.split(\",\");\n\n\t\t\treturn {\n\t\t\t\ttx: transforms[0],\n\t\t\t\tty: transforms[1]\n\t\t\t};\n\t\t}\n\t\treturn null;\n\t}\n\n\t/**************************************\n\t * Formatting & calculations *\n\t *************************************/\n\n\t/**\n\t * Gets x and y coordinates from HTML transform attribute\n\t *\n\t * @export\n\t * @param {any} string the transform attribute string ie. transform(x,y)\n\t * @returns Returns an object with x and y offsets of the transform\n\t */\n\texport function getTranformOffsets(string) {\n\t\tconst regExp = /\\(([^)]+)\\)/;\n\t\tconst match = regExp.exec(string)[1];\n\t\tconst xyString = match.split(\",\");\n\n\t\treturn {\n\t\t\tx: parseFloat(xyString[0]),\n\t\t\ty: parseFloat(xyString[1])\n\t\t};\n\t}\n\n\t/**\n\t * Returns string value for height/width using pixels if there isn't a specified unit of measure\n\t *\n\t * @param value string or number value to be checked for unit of measure\n\t */\n\texport function formatWidthHeightValues(value) {\n\t\tconst stringValue = value.toString();\n\n\t\t// If the value provided contains any letters\n\t\t// Return it the same way\n\t\tif (stringValue.match(/[a-z]/i)) {\n\t\t\treturn stringValue;\n\t\t}\n\n\t\treturn stringValue + \"px\";\n\t}\n\n\t/**\n\t * Capitalizes first letter of a string\n\t *\n\t * @export\n\t * @param {any} string the input string to perform first letter capitalization with\n\t * @returns The transformed string after first letter is capitalized\n\t */\n\texport function capitalizeFirstLetter(string) {\n\t\treturn string[0].toUpperCase() + string.slice(1);\n\t}\n\n\t/**\n\t * Get the percentage of a datapoint compared to the entire dataset.\n\t * @export\n\t * @param {any} item\n\t * @param {any} fullData\n\t * @returns The percentage in the form of a number (1 significant digit if necessary)\n\t */\n\texport function convertValueToPercentage(item, fullData) {\n\t\tconst percentage =\n\t\t\t(item / fullData.reduce((accum, val) => accum + val.value, 0)) *\n\t\t\t100;\n\t\t// if the value has any significant figures, keep 1\n\t\treturn percentage % 1 !== 0\n\t\t\t? parseFloat(percentage.toFixed(1))\n\t\t\t: percentage;\n\t}\n\n\t/**\n\t * Truncate the labels\n\t * @export\n\t * @param {any} fullText\n\t * @param {any} truncationType\n\t * @param {any} numCharacter\n\t * @returns Truncated text\n\t */\n\texport function truncateLabel(fullText, truncationType, numCharacter) {\n\t\tif (numCharacter > fullText.length) {\n\t\t\treturn fullText;\n\t\t}\n\t\tif (truncationType === TruncationTypes.MID_LINE) {\n\t\t\treturn (\n\t\t\t\tfullText.substr(0, numCharacter / 2) +\n\t\t\t\t\"...\" +\n\t\t\t\tfullText.substr(-numCharacter / 2)\n\t\t\t);\n\t\t} else if (truncationType === TruncationTypes.FRONT_LINE) {\n\t\t\treturn \"...\" + fullText.substr(-numCharacter);\n\t\t} else if (truncationType === TruncationTypes.END_LINE) {\n\t\t\treturn fullText.substr(0, numCharacter) + \"...\";\n\t\t}\n\t}\n\n\t/**************************************\n\t * Object/array related checks *\n\t *************************************/\n\n\t/**\n\t * Compares two arrays to return the difference between two arrays' items.\n\t *\n\t * @export\n\t * @param {any[]} oldArray the array to check for missing items\n\t * @param {any[]} newArray the array to check for newly added items\n\t * @returns An object containing items missing (existing in oldArray but not newArray)\n\t * and items added (existing in newArray but not in oldArray). Object is of the form { missing: [], added: [] }\n\t */\n\texport function arrayDifferences(oldArray: any[], newArray: any[]) {\n\t\tconst difference = {\n\t\t\tmissing: [],\n\t\t\tadded: []\n\t\t};\n\n\t\toldArray.forEach((element) => {\n\t\t\tif (newArray.indexOf(element) === -1) {\n\t\t\t\tdifference.missing.push(element);\n\t\t\t}\n\t\t});\n\n\t\tnewArray.forEach((element) => {\n\t\t\tif (oldArray.indexOf(element) === -1) {\n\t\t\t\tdifference.added.push(element);\n\t\t\t}\n\t\t});\n\n\t\treturn difference;\n\t}\n\n\t/**\n\t * Gets the duplicated keys from an array of data\n\t *\n\t * @export\n\t * @param {*} data - array of data\n\t * @returns A list of the duplicated keys in data\n\t */\n\texport function getDuplicateValues(arr: any) {\n\t\tconst values = [];\n\t\tconst duplicateValues = [];\n\n\t\tarr.forEach((value) => {\n\t\t\tif (\n\t\t\t\tvalues.indexOf(value) !== -1 &&\n\t\t\t\tduplicateValues.indexOf(value) === -1\n\t\t\t) {\n\t\t\t\tduplicateValues.push(value);\n\t\t\t}\n\n\t\t\tvalues.push(value);\n\t\t});\n\n\t\treturn duplicateValues;\n\t}\n\n\t// ================================================================================\n\t// D3 Extensions\n\t// ================================================================================\n\n\t/**\n\t * In D3, moves an element to the front of the canvas\n\t *\n\t * @export\n\t * @param {any} element input element to moved in front\n\t * @returns The function to be used by D3 to push element to the top of the canvas\n\t */\n\texport function moveToFront(element) {\n\t\treturn element.each(function () {\n\t\t\tthis.parentNode.appendChild(this);\n\t\t});\n\t}\n\n\t// ================================================================================\n\t// Style Helpers\n\t// ================================================================================\n\n\t/**\n\t * Gets a speicified property from within an object.\n\t *\n\t * @param object the object containing the property to retrieve\n\t * @param propPath nested properties used to extract the final property from within the object\n\t * (i.e \"style\", \"color\" would retrieve the color property from within an object that has \"color\" nested within \"style\")\n\t */\n\texport const getProperty = (object, ...propPath) => {\n\t\tlet position = object;\n\t\tif (position) {\n\t\t\tfor (const prop of propPath) {\n\t\t\t\tif (position[prop] !== null && position[prop] !== undefined) {\n\t\t\t\t\tposition = position[prop];\n\t\t\t\t} else {\n\t\t\t\t\treturn null;\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn position;\n\t\t}\n\n\t\treturn null;\n\t};\n\n\tinterface SVGPathCoordinates {\n\t\tx0: number;\n\t\tx1: number;\n\t\ty0: number;\n\t\ty1: number;\n\t}\n\n\texport const flipSVGCoordinatesBasedOnOrientation = (\n\t\tverticalCoordinates: SVGPathCoordinates,\n\t\torientation?: CartesianOrientations\n\t) => {\n\t\tif (orientation === CartesianOrientations.HORIZONTAL) {\n\t\t\treturn {\n\t\t\t\ty0: verticalCoordinates.x0,\n\t\t\t\ty1: verticalCoordinates.x1,\n\t\t\t\tx0: verticalCoordinates.y0,\n\t\t\t\tx1: verticalCoordinates.y1\n\t\t\t};\n\t\t}\n\n\t\treturn verticalCoordinates;\n\t};\n\n\texport const generateSVGPathString = (\n\t\tverticalCoordinates: SVGPathCoordinates,\n\t\torientation?: CartesianOrientations\n\t) => {\n\t\tconst { x0, x1, y0, y1 } = flipSVGCoordinatesBasedOnOrientation(\n\t\t\tverticalCoordinates,\n\t\t\torientation\n\t\t);\n\n\t\treturn `M${x0},${y0}L${x0},${y1}L${x1},${y1}L${x1},${y0}L${x0},${y0}`;\n\t};\n\n\texport function flipDomainAndRangeBasedOnOrientation<D, R>(\n\t\tdomain: D,\n\t\trange: R,\n\t\torientation?: CartesianOrientations\n\t): [D, R] | [R, D] {\n\t\treturn orientation === CartesianOrientations.VERTICAL\n\t\t\t? [domain, range]\n\t\t\t: [range, domain];\n\t}\n\n\texport const compareNumeric = (a: Numeric, b: Numeric) =>\n\t\tNumber(a) === Number(b);\n}\n"]}
|
|
1
|
+
{"version":3,"file":"tools.js","sourceRoot":"","sources":["tools.ts"],"names":[],"mappings":"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","sourcesContent":["// Internal imports\nimport {\n\tAxisChartOptions,\n\tCartesianOrientations,\n\tScaleTypes,\n\tTruncationTypes,\n} from './interfaces';\n\nimport {\n\tdebounce as lodashDebounce,\n\tmerge as lodashMerge,\n\tcloneDeep as lodashCloneDeep,\n\tuniq as lodashUnique,\n\tclamp as lodashClamp,\n\tflatten as lodashFlatten,\n\tcamelCase as lodashCamelCase,\n\tisEmpty as lodashIsEmpty,\n\tisEqual as lodashIsEqual,\n\tflatMapDeep as lodashFlatMapDeep,\n\tkebabCase as lodashKebabCase,\n\tfromPairs as lodashFromPairs,\n\tsome as lodashSome,\n\t// the imports below are needed because of typescript bug (error TS4029)\n\tCancelable,\n\tDebounceSettings,\n} from 'lodash-es';\n\nimport { mouse } from 'd3-selection';\nimport { Numeric } from 'd3';\n\n// Functions\nexport namespace Tools {\n\t// Export these functions from lodash\n\texport const debounce = lodashDebounce;\n\texport const clone = lodashCloneDeep;\n\texport const merge = lodashMerge;\n\texport const removeArrayDuplicates = lodashUnique;\n\texport const clamp = lodashClamp;\n\texport const flatten = lodashFlatten;\n\texport const camelCase = lodashCamelCase;\n\texport const isEmpty = lodashIsEmpty;\n\texport const isEqual = lodashIsEqual;\n\texport const flatMapDeep = lodashFlatMapDeep;\n\texport const kebabCase = lodashKebabCase;\n\texport const fromPairs = lodashFromPairs;\n\texport const some = lodashSome;\n\n\texport function debounceWithD3MousePosition(fn, delay, element) {\n\t\tvar timer = null;\n\t\treturn function () {\n\t\t\tconst context = this;\n\t\t\tconst args = arguments;\n\n\t\t\t//we get the D3 event here\n\t\t\tcontext.mousePosition = mouse(element);\n\n\t\t\tclearTimeout(timer);\n\n\t\t\ttimer = setTimeout(function () {\n\t\t\t\t// and use the reference here\n\t\t\t\tfn.apply(context, args);\n\t\t\t}, delay);\n\t\t};\n\t}\n\n\t/**\n\t * Returns default chart options merged with provided options,\n\t * with special cases for axes.\n\t * Axes object will not merge the not provided axes.\n\t *\n\t * @export\n\t * @param {AxisChartOptions} defaultOptions Configuration.options[chartType]\n\t * @param {AxisChartOptions} providedOptions user provided options\n\t * @returns merged options\n\t */\n\texport function mergeDefaultChartOptions(\n\t\tdefaultOptions: any,\n\t\tprovidedOptions: any\n\t) {\n\t\tdefaultOptions = Tools.clone(defaultOptions);\n\t\tconst providedAxesNames = Object.keys(providedOptions.axes || {});\n\n\t\tif (providedAxesNames.length === 0) {\n\t\t\tdelete defaultOptions.axes;\n\t\t}\n\n\t\t// Update deprecated options to work with the tabular data format\n\t\t// Similar to the functionality in model.transformToTabularData()\n\t\tfor (const axisName in defaultOptions.axes) {\n\t\t\tif (providedAxesNames.includes(axisName)) {\n\t\t\t\tconst providedAxisOptions = providedOptions.axes[axisName];\n\n\t\t\t\tif (\n\t\t\t\t\tprovidedAxisOptions['primary'] ||\n\t\t\t\t\tprovidedAxisOptions['secondary']\n\t\t\t\t) {\n\t\t\t\t\tconsole.warn(\n\t\t\t\t\t\t'`primary` & `secondary` are no longer needed for axis configurations. Read more here https://carbon-design-system.github.io/carbon-charts/?path=/story/tutorials--tabular-data-format'\n\t\t\t\t\t);\n\t\t\t\t}\n\n\t\t\t\tconst identifier = providedAxisOptions['mapsTo'];\n\t\t\t\tif (identifier === undefined || identifier === null) {\n\t\t\t\t\tconst scaleType = providedAxisOptions['scaleType'];\n\n\t\t\t\t\tif (scaleType === undefined || scaleType === null) {\n\t\t\t\t\t\tprovidedAxisOptions['mapsTo'] = 'value';\n\t\t\t\t\t} else if (scaleType === ScaleTypes.TIME) {\n\t\t\t\t\t\tprovidedAxisOptions['mapsTo'] = 'date';\n\t\t\t\t\t} else if (scaleType === ScaleTypes.LABELS) {\n\t\t\t\t\t\tprovidedAxisOptions['mapsTo'] = 'key';\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tdelete defaultOptions.axes[axisName];\n\t\t\t}\n\t\t}\n\n\t\treturn Tools.merge(defaultOptions, providedOptions);\n\t}\n\n\t/**************************************\n\t * DOM-related operations *\n\t *************************************/\n\n\t/**\n\t * Get width & height of an element\n\t *\n\t * @export\n\t * @param {any} el element to get dimensions from\n\t * @returns an object containing the width and height of el\n\t */\n\texport function getDimensions(el) {\n\t\treturn {\n\t\t\twidth: parseFloat(\n\t\t\t\tel.style.width.replace('px', '') || el.offsetWidth\n\t\t\t),\n\t\t\theight: parseFloat(\n\t\t\t\tel.style.height.replace('px', '') || el.offsetHeight\n\t\t\t),\n\t\t};\n\t}\n\n\t/**\n\t * Gets elements's x and y translations from transform attribute or returns null\n\t *\n\t * @param {HTMLElement} element\n\t * @returns an object containing the translated x and y values or null\n\t */\n\texport function getTranslationValues(elementRef: HTMLElement) {\n\t\tif (!elementRef) {\n\t\t\treturn;\n\t\t}\n\n\t\t// regex to ONLY get values for translate (instead of all rotate, translate, skew, etc)\n\t\tconst translateRegex = /translate\\([0-9]+\\.?[0-9]*,[0-9]+\\.?[0-9]*\\)/;\n\n\t\tconst transformStr = elementRef\n\t\t\t.getAttribute('transform')\n\t\t\t.match(translateRegex);\n\t\tif (!transformStr) {\n\t\t\treturn null;\n\t\t}\n\n\t\t// check for the match\n\t\tif (transformStr[0]) {\n\t\t\tconst transforms = transformStr[0]\n\t\t\t\t.replace(/translate\\(/, '')\n\t\t\t\t.replace(/\\)/, '')\n\t\t\t\t.split(',');\n\n\t\t\treturn {\n\t\t\t\ttx: transforms[0],\n\t\t\t\tty: transforms[1],\n\t\t\t};\n\t\t}\n\t\treturn null;\n\t}\n\n\t/**************************************\n\t * Formatting & calculations *\n\t *************************************/\n\n\t/**\n\t * Gets x and y coordinates from HTML transform attribute\n\t *\n\t * @export\n\t * @param {any} string the transform attribute string ie. transform(x,y)\n\t * @returns Returns an object with x and y offsets of the transform\n\t */\n\texport function getTranformOffsets(string) {\n\t\tconst regExp = /\\(([^)]+)\\)/;\n\t\tconst match = regExp.exec(string)[1];\n\t\tconst xyString = match.split(',');\n\n\t\treturn {\n\t\t\tx: parseFloat(xyString[0]),\n\t\t\ty: parseFloat(xyString[1]),\n\t\t};\n\t}\n\n\t/**\n\t * Returns string value for height/width using pixels if there isn't a specified unit of measure\n\t *\n\t * @param value string or number value to be checked for unit of measure\n\t */\n\texport function formatWidthHeightValues(value) {\n\t\tconst stringValue = value.toString();\n\n\t\t// If the value provided contains any letters\n\t\t// Return it the same way\n\t\tif (stringValue.match(/[a-z]/i)) {\n\t\t\treturn stringValue;\n\t\t}\n\n\t\treturn stringValue + 'px';\n\t}\n\n\t/**\n\t * Capitalizes first letter of a string\n\t *\n\t * @export\n\t * @param {any} string the input string to perform first letter capitalization with\n\t * @returns The transformed string after first letter is capitalized\n\t */\n\texport function capitalizeFirstLetter(string) {\n\t\treturn string[0].toUpperCase() + string.slice(1);\n\t}\n\n\t/**\n\t * Get the percentage of a datapoint compared to the entire dataset.\n\t * @export\n\t * @param {any} item\n\t * @param {any} fullData\n\t * @returns The percentage in the form of a number (1 significant digit if necessary)\n\t */\n\texport function convertValueToPercentage(item, fullData) {\n\t\tconst percentage =\n\t\t\t(item / fullData.reduce((accum, val) => accum + val.value, 0)) *\n\t\t\t100;\n\t\t// if the value has any significant figures, keep 1\n\t\treturn percentage % 1 !== 0\n\t\t\t? parseFloat(percentage.toFixed(1))\n\t\t\t: percentage;\n\t}\n\n\t/**\n\t * Truncate the labels\n\t * @export\n\t * @param {any} fullText\n\t * @param {any} truncationType\n\t * @param {any} numCharacter\n\t * @returns Truncated text\n\t */\n\texport function truncateLabel(fullText, truncationType, numCharacter) {\n\t\tif (numCharacter > fullText.length) {\n\t\t\treturn fullText;\n\t\t}\n\t\tif (truncationType === TruncationTypes.MID_LINE) {\n\t\t\treturn (\n\t\t\t\tfullText.substr(0, numCharacter / 2) +\n\t\t\t\t'...' +\n\t\t\t\tfullText.substr(-numCharacter / 2)\n\t\t\t);\n\t\t} else if (truncationType === TruncationTypes.FRONT_LINE) {\n\t\t\treturn '...' + fullText.substr(-numCharacter);\n\t\t} else if (truncationType === TruncationTypes.END_LINE) {\n\t\t\treturn fullText.substr(0, numCharacter) + '...';\n\t\t}\n\t}\n\n\t/**************************************\n\t * Object/array related checks *\n\t *************************************/\n\n\t/**\n\t * Compares two arrays to return the difference between two arrays' items.\n\t *\n\t * @export\n\t * @param {any[]} oldArray the array to check for missing items\n\t * @param {any[]} newArray the array to check for newly added items\n\t * @returns An object containing items missing (existing in oldArray but not newArray)\n\t * and items added (existing in newArray but not in oldArray). Object is of the form { missing: [], added: [] }\n\t */\n\texport function arrayDifferences(oldArray: any[], newArray: any[]) {\n\t\tconst difference = {\n\t\t\tmissing: [],\n\t\t\tadded: [],\n\t\t};\n\n\t\toldArray.forEach((element) => {\n\t\t\tif (newArray.indexOf(element) === -1) {\n\t\t\t\tdifference.missing.push(element);\n\t\t\t}\n\t\t});\n\n\t\tnewArray.forEach((element) => {\n\t\t\tif (oldArray.indexOf(element) === -1) {\n\t\t\t\tdifference.added.push(element);\n\t\t\t}\n\t\t});\n\n\t\treturn difference;\n\t}\n\n\t/**\n\t * Gets the duplicated keys from an array of data\n\t *\n\t * @export\n\t * @param {*} data - array of data\n\t * @returns A list of the duplicated keys in data\n\t */\n\texport function getDuplicateValues(arr: any) {\n\t\tconst values = [];\n\t\tconst duplicateValues = [];\n\n\t\tarr.forEach((value) => {\n\t\t\tif (\n\t\t\t\tvalues.indexOf(value) !== -1 &&\n\t\t\t\tduplicateValues.indexOf(value) === -1\n\t\t\t) {\n\t\t\t\tduplicateValues.push(value);\n\t\t\t}\n\n\t\t\tvalues.push(value);\n\t\t});\n\n\t\treturn duplicateValues;\n\t}\n\n\t// ================================================================================\n\t// D3 Extensions\n\t// ================================================================================\n\n\t/**\n\t * In D3, moves an element to the front of the canvas\n\t *\n\t * @export\n\t * @param {any} element input element to moved in front\n\t * @returns The function to be used by D3 to push element to the top of the canvas\n\t */\n\texport function moveToFront(element) {\n\t\treturn element.each(function () {\n\t\t\tthis.parentNode.appendChild(this);\n\t\t});\n\t}\n\n\t// ================================================================================\n\t// Style Helpers\n\t// ================================================================================\n\n\t/**\n\t * Gets a speicified property from within an object.\n\t *\n\t * @param object the object containing the property to retrieve\n\t * @param propPath nested properties used to extract the final property from within the object\n\t * (i.e \"style\", \"color\" would retrieve the color property from within an object that has \"color\" nested within \"style\")\n\t */\n\texport const getProperty = (object, ...propPath) => {\n\t\tlet position = object;\n\t\tif (position) {\n\t\t\tfor (const prop of propPath) {\n\t\t\t\tif (position[prop] !== null && position[prop] !== undefined) {\n\t\t\t\t\tposition = position[prop];\n\t\t\t\t} else {\n\t\t\t\t\treturn null;\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn position;\n\t\t}\n\n\t\treturn null;\n\t};\n\n\tinterface SVGPathCoordinates {\n\t\tx0: number;\n\t\tx1: number;\n\t\ty0: number;\n\t\ty1: number;\n\t}\n\n\texport const flipSVGCoordinatesBasedOnOrientation = (\n\t\tverticalCoordinates: SVGPathCoordinates,\n\t\torientation?: CartesianOrientations\n\t) => {\n\t\tif (orientation === CartesianOrientations.HORIZONTAL) {\n\t\t\treturn {\n\t\t\t\ty0: verticalCoordinates.x0,\n\t\t\t\ty1: verticalCoordinates.x1,\n\t\t\t\tx0: verticalCoordinates.y0,\n\t\t\t\tx1: verticalCoordinates.y1,\n\t\t\t};\n\t\t}\n\n\t\treturn verticalCoordinates;\n\t};\n\n\texport const generateSVGPathString = (\n\t\tverticalCoordinates: SVGPathCoordinates,\n\t\torientation?: CartesianOrientations\n\t) => {\n\t\tconst { x0, x1, y0, y1 } = flipSVGCoordinatesBasedOnOrientation(\n\t\t\tverticalCoordinates,\n\t\t\torientation\n\t\t);\n\n\t\treturn `M${x0},${y0}L${x0},${y1}L${x1},${y1}L${x1},${y0}L${x0},${y0}`;\n\t};\n\n\texport function flipDomainAndRangeBasedOnOrientation<D, R>(\n\t\tdomain: D,\n\t\trange: R,\n\t\torientation?: CartesianOrientations\n\t): [D, R] | [R, D] {\n\t\treturn orientation === CartesianOrientations.VERTICAL\n\t\t\t? [domain, range]\n\t\t\t: [range, domain];\n\t}\n\n\texport const compareNumeric = (a: Numeric, b: Numeric) =>\n\t\tNumber(a) === Number(b);\n}\n"]}
|