@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
package/polyfills.js
CHANGED
|
@@ -1,26 +1,26 @@
|
|
|
1
|
-
if (typeof window !==
|
|
1
|
+
if (typeof window !== 'undefined') {
|
|
2
2
|
(function () {
|
|
3
|
-
if (typeof window[
|
|
3
|
+
if (typeof window['CustomEvent'] === 'function') {
|
|
4
4
|
return false;
|
|
5
5
|
}
|
|
6
6
|
function CustomEvent(event, params) {
|
|
7
7
|
params = params || {
|
|
8
8
|
bubbles: false,
|
|
9
9
|
cancelable: false,
|
|
10
|
-
detail: undefined
|
|
10
|
+
detail: undefined,
|
|
11
11
|
};
|
|
12
|
-
var evt = document.createEvent(
|
|
12
|
+
var evt = document.createEvent('CustomEvent');
|
|
13
13
|
evt.initCustomEvent(event, params.bubbles, params.cancelable, params.detail);
|
|
14
14
|
return evt;
|
|
15
15
|
}
|
|
16
|
-
CustomEvent.prototype = window[
|
|
17
|
-
window[
|
|
16
|
+
CustomEvent.prototype = window['Event'].prototype;
|
|
17
|
+
window['CustomEvent'] = CustomEvent;
|
|
18
18
|
})();
|
|
19
19
|
// Avoid multiple instances of babel-polyfill
|
|
20
20
|
function idempotentBabelPolyfill() {
|
|
21
|
-
if ((typeof global !==
|
|
22
|
-
!window[
|
|
23
|
-
return require(
|
|
21
|
+
if ((typeof global !== 'undefined' && !global['_babelPolyfill']) ||
|
|
22
|
+
!window['_babelPolyfill']) {
|
|
23
|
+
return require('babel-polyfill');
|
|
24
24
|
}
|
|
25
25
|
return null;
|
|
26
26
|
}
|
package/polyfills.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"polyfills.js","sourceRoot":"","sources":["polyfills.ts"],"names":[],"mappings":"AAAA,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE;IAClC,CAAC;QACA,IAAI,OAAO,MAAM,CAAC,aAAa,CAAC,KAAK,UAAU,EAAE;YAChD,OAAO,KAAK,CAAC;SACb;QAED,SAAS,WAAW,CAAC,KAAK,EAAE,MAAM;YACjC,MAAM,GAAG,MAAM,IAAI;gBAClB,OAAO,EAAE,KAAK;gBACd,UAAU,EAAE,KAAK;gBACjB,MAAM,EAAE,SAAS;aACjB,CAAC;YACF,IAAM,GAAG,GAAG,QAAQ,CAAC,WAAW,CAAC,aAAa,CAAC,CAAC;YAChD,GAAG,CAAC,eAAe,CAClB,KAAK,EACL,MAAM,CAAC,OAAO,EACd,MAAM,CAAC,UAAU,EACjB,MAAM,CAAC,MAAM,CACb,CAAC;YACF,OAAO,GAAG,CAAC;QACZ,CAAC;QAED,WAAW,CAAC,SAAS,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC;QAClD,MAAM,CAAC,aAAa,CAAC,GAAG,WAAkB,CAAC;IAC5C,CAAC,CAAC,EAAE,CAAC;IAEL,6CAA6C;IAC7C,SAAS,uBAAuB;QAC/B,IACC,CAAC,OAAO,MAAM,KAAK,WAAW,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC;YAC5D,CAAC,MAAM,CAAC,gBAAgB,CAAC,EACxB;YACD,OAAO,OAAO,CAAC,gBAAgB,CAAC,CAAC;SACjC;QAED,OAAO,IAAI,CAAC;IACb,CAAC;IAED,uBAAuB,EAAE,CAAC;CAC1B","sourcesContent":["if (typeof window !==
|
|
1
|
+
{"version":3,"file":"polyfills.js","sourceRoot":"","sources":["polyfills.ts"],"names":[],"mappings":"AAAA,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE;IAClC,CAAC;QACA,IAAI,OAAO,MAAM,CAAC,aAAa,CAAC,KAAK,UAAU,EAAE;YAChD,OAAO,KAAK,CAAC;SACb;QAED,SAAS,WAAW,CAAC,KAAK,EAAE,MAAM;YACjC,MAAM,GAAG,MAAM,IAAI;gBAClB,OAAO,EAAE,KAAK;gBACd,UAAU,EAAE,KAAK;gBACjB,MAAM,EAAE,SAAS;aACjB,CAAC;YACF,IAAM,GAAG,GAAG,QAAQ,CAAC,WAAW,CAAC,aAAa,CAAC,CAAC;YAChD,GAAG,CAAC,eAAe,CAClB,KAAK,EACL,MAAM,CAAC,OAAO,EACd,MAAM,CAAC,UAAU,EACjB,MAAM,CAAC,MAAM,CACb,CAAC;YACF,OAAO,GAAG,CAAC;QACZ,CAAC;QAED,WAAW,CAAC,SAAS,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC;QAClD,MAAM,CAAC,aAAa,CAAC,GAAG,WAAkB,CAAC;IAC5C,CAAC,CAAC,EAAE,CAAC;IAEL,6CAA6C;IAC7C,SAAS,uBAAuB;QAC/B,IACC,CAAC,OAAO,MAAM,KAAK,WAAW,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC;YAC5D,CAAC,MAAM,CAAC,gBAAgB,CAAC,EACxB;YACD,OAAO,OAAO,CAAC,gBAAgB,CAAC,CAAC;SACjC;QAED,OAAO,IAAI,CAAC;IACb,CAAC;IAED,uBAAuB,EAAE,CAAC;CAC1B","sourcesContent":["if (typeof window !== 'undefined') {\n\t(function () {\n\t\tif (typeof window['CustomEvent'] === 'function') {\n\t\t\treturn false;\n\t\t}\n\n\t\tfunction CustomEvent(event, params) {\n\t\t\tparams = params || {\n\t\t\t\tbubbles: false,\n\t\t\t\tcancelable: false,\n\t\t\t\tdetail: undefined,\n\t\t\t};\n\t\t\tconst evt = document.createEvent('CustomEvent');\n\t\t\tevt.initCustomEvent(\n\t\t\t\tevent,\n\t\t\t\tparams.bubbles,\n\t\t\t\tparams.cancelable,\n\t\t\t\tparams.detail\n\t\t\t);\n\t\t\treturn evt;\n\t\t}\n\n\t\tCustomEvent.prototype = window['Event'].prototype;\n\t\twindow['CustomEvent'] = CustomEvent as any;\n\t})();\n\n\t// Avoid multiple instances of babel-polyfill\n\tfunction idempotentBabelPolyfill() {\n\t\tif (\n\t\t\t(typeof global !== 'undefined' && !global['_babelPolyfill']) ||\n\t\t\t!window['_babelPolyfill']\n\t\t) {\n\t\t\treturn require('babel-polyfill');\n\t\t}\n\n\t\treturn null;\n\t}\n\n\tidempotentBabelPolyfill();\n}\n"]}
|
package/services/angle-utils.js
CHANGED
|
@@ -1,53 +1,53 @@
|
|
|
1
|
-
import { TextAnchor, DominantBaseline } from
|
|
1
|
+
import { TextAnchor, DominantBaseline } from '../interfaces/enums';
|
|
2
2
|
export function radialLabelPlacement(angleRadians) {
|
|
3
3
|
var angle = mod(radToDeg(angleRadians), 360);
|
|
4
4
|
if (isInRange(angle, [0, 10]) || isInRange(angle, [350, 0])) {
|
|
5
5
|
return {
|
|
6
6
|
textAnchor: TextAnchor.START,
|
|
7
|
-
dominantBaseline: DominantBaseline.MIDDLE
|
|
7
|
+
dominantBaseline: DominantBaseline.MIDDLE,
|
|
8
8
|
};
|
|
9
9
|
}
|
|
10
10
|
else if (isInRange(angle, [10, 80])) {
|
|
11
11
|
return {
|
|
12
12
|
textAnchor: TextAnchor.START,
|
|
13
|
-
dominantBaseline: DominantBaseline.HANGING
|
|
13
|
+
dominantBaseline: DominantBaseline.HANGING,
|
|
14
14
|
};
|
|
15
15
|
}
|
|
16
16
|
else if (isInRange(angle, [80, 100])) {
|
|
17
17
|
return {
|
|
18
18
|
textAnchor: TextAnchor.MIDDLE,
|
|
19
|
-
dominantBaseline: DominantBaseline.HANGING
|
|
19
|
+
dominantBaseline: DominantBaseline.HANGING,
|
|
20
20
|
};
|
|
21
21
|
}
|
|
22
22
|
else if (isInRange(angle, [100, 170])) {
|
|
23
23
|
return {
|
|
24
24
|
textAnchor: TextAnchor.END,
|
|
25
|
-
dominantBaseline: DominantBaseline.HANGING
|
|
25
|
+
dominantBaseline: DominantBaseline.HANGING,
|
|
26
26
|
};
|
|
27
27
|
}
|
|
28
28
|
else if (isInRange(angle, [170, 190])) {
|
|
29
29
|
return {
|
|
30
30
|
textAnchor: TextAnchor.END,
|
|
31
|
-
dominantBaseline: DominantBaseline.MIDDLE
|
|
31
|
+
dominantBaseline: DominantBaseline.MIDDLE,
|
|
32
32
|
};
|
|
33
33
|
}
|
|
34
34
|
else if (isInRange(angle, [190, 260])) {
|
|
35
35
|
return {
|
|
36
36
|
textAnchor: TextAnchor.END,
|
|
37
|
-
dominantBaseline: DominantBaseline.BASELINE
|
|
37
|
+
dominantBaseline: DominantBaseline.BASELINE,
|
|
38
38
|
};
|
|
39
39
|
}
|
|
40
40
|
else if (isInRange(angle, [260, 280])) {
|
|
41
41
|
return {
|
|
42
42
|
textAnchor: TextAnchor.MIDDLE,
|
|
43
|
-
dominantBaseline: DominantBaseline.BASELINE
|
|
43
|
+
dominantBaseline: DominantBaseline.BASELINE,
|
|
44
44
|
};
|
|
45
45
|
}
|
|
46
46
|
else {
|
|
47
47
|
// 280 - 350
|
|
48
48
|
return {
|
|
49
49
|
textAnchor: TextAnchor.START,
|
|
50
|
-
dominantBaseline: DominantBaseline.BASELINE
|
|
50
|
+
dominantBaseline: DominantBaseline.BASELINE,
|
|
51
51
|
};
|
|
52
52
|
}
|
|
53
53
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"angle-utils.js","sourceRoot":"","sources":["angle-utils.ts"],"names":[],"mappings":"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","sourcesContent":["import { TextAnchor, DominantBaseline } from
|
|
1
|
+
{"version":3,"file":"angle-utils.js","sourceRoot":"","sources":["angle-utils.ts"],"names":[],"mappings":"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","sourcesContent":["import { TextAnchor, DominantBaseline } from '../interfaces/enums';\n\nexport interface Point {\n\tx: number;\n\ty: number;\n}\n\nexport type Angle = number;\n\ninterface LabelAlignment {\n\ttextAnchor: TextAnchor;\n\tdominantBaseline: DominantBaseline;\n}\n\nexport function radialLabelPlacement(angleRadians: Angle): LabelAlignment {\n\tconst angle = mod(radToDeg(angleRadians), 360);\n\n\tif (isInRange(angle, [0, 10]) || isInRange(angle, [350, 0])) {\n\t\treturn {\n\t\t\ttextAnchor: TextAnchor.START,\n\t\t\tdominantBaseline: DominantBaseline.MIDDLE,\n\t\t};\n\t} else if (isInRange(angle, [10, 80])) {\n\t\treturn {\n\t\t\ttextAnchor: TextAnchor.START,\n\t\t\tdominantBaseline: DominantBaseline.HANGING,\n\t\t};\n\t} else if (isInRange(angle, [80, 100])) {\n\t\treturn {\n\t\t\ttextAnchor: TextAnchor.MIDDLE,\n\t\t\tdominantBaseline: DominantBaseline.HANGING,\n\t\t};\n\t} else if (isInRange(angle, [100, 170])) {\n\t\treturn {\n\t\t\ttextAnchor: TextAnchor.END,\n\t\t\tdominantBaseline: DominantBaseline.HANGING,\n\t\t};\n\t} else if (isInRange(angle, [170, 190])) {\n\t\treturn {\n\t\t\ttextAnchor: TextAnchor.END,\n\t\t\tdominantBaseline: DominantBaseline.MIDDLE,\n\t\t};\n\t} else if (isInRange(angle, [190, 260])) {\n\t\treturn {\n\t\t\ttextAnchor: TextAnchor.END,\n\t\t\tdominantBaseline: DominantBaseline.BASELINE,\n\t\t};\n\t} else if (isInRange(angle, [260, 280])) {\n\t\treturn {\n\t\t\ttextAnchor: TextAnchor.MIDDLE,\n\t\t\tdominantBaseline: DominantBaseline.BASELINE,\n\t\t};\n\t} else {\n\t\t// 280 - 350\n\t\treturn {\n\t\t\ttextAnchor: TextAnchor.START,\n\t\t\tdominantBaseline: DominantBaseline.BASELINE,\n\t\t};\n\t}\n}\n\nfunction mod(n: number, m: number) {\n\treturn ((n % m) + m) % m;\n}\n\nfunction isInRange(x: number, [min, max]: [number, number]) {\n\treturn x >= min && x <= max;\n}\n\nexport function radToDeg(rad: Angle): Angle {\n\treturn rad * (180 / Math.PI);\n}\n\nexport function degToRad(deg: Angle): Angle {\n\treturn deg * (Math.PI / 180);\n}\n\nexport function polarToCartesianCoords(\n\ta: Angle,\n\tr: number,\n\tt: Point = { x: 0, y: 0 }\n): Point {\n\tconst x = r * Math.cos(a) + t.x;\n\tconst y = r * Math.sin(a) + t.y;\n\treturn { x, y };\n}\n\n// Return the distance between a point (described with polar coordinates)\n// on a circumference and the vertical diameter.\n// If the point is on the left if the diameter, its distance is positive,\n// if it is on the right of the diameter, its distance is negative.\nexport function distanceBetweenPointOnCircAndVerticalDiameter(\n\ta: Angle,\n\tr: number\n) {\n\treturn r * Math.sin(a - Math.PI / 2);\n}\n"]}
|
package/services/curves.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { CurveBundleFactory, CurveCardinalFactory, CurveCatmullRomFactory } from
|
|
2
|
-
import { Service } from
|
|
1
|
+
import { CurveBundleFactory, CurveCardinalFactory, CurveCatmullRomFactory } from 'd3-shape';
|
|
2
|
+
import { Service } from './service';
|
|
3
3
|
export declare class Curves extends Service {
|
|
4
4
|
curveTypes: {
|
|
5
5
|
curveLinear: import("d3-shape").CurveFactory;
|
package/services/curves.js
CHANGED
|
@@ -11,9 +11,9 @@ var __extends = (this && this.__extends) || (function () {
|
|
|
11
11
|
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
|
|
12
12
|
};
|
|
13
13
|
})();
|
|
14
|
-
import { curveBasis, curveBasisClosed, curveBasisOpen, curveBundle, curveCardinal, curveCardinalClosed, curveCardinalOpen, curveCatmullRom, curveCatmullRomClosed, curveCatmullRomOpen, curveLinear, curveLinearClosed, curveMonotoneX, curveMonotoneY, curveNatural, curveStep, curveStepAfter, curveStepBefore } from
|
|
14
|
+
import { curveBasis, curveBasisClosed, curveBasisOpen, curveBundle, curveCardinal, curveCardinalClosed, curveCardinalOpen, curveCatmullRom, curveCatmullRomClosed, curveCatmullRomOpen, curveLinear, curveLinearClosed, curveMonotoneX, curveMonotoneY, curveNatural, curveStep, curveStepAfter, curveStepBefore, } from 'd3-shape';
|
|
15
15
|
// Internal Imports
|
|
16
|
-
import { Service } from
|
|
16
|
+
import { Service } from './service';
|
|
17
17
|
var Curves = /** @class */ (function (_super) {
|
|
18
18
|
__extends(Curves, _super);
|
|
19
19
|
function Curves() {
|
|
@@ -36,17 +36,17 @@ var Curves = /** @class */ (function (_super) {
|
|
|
36
36
|
curveNatural: curveNatural,
|
|
37
37
|
curveStep: curveStep,
|
|
38
38
|
curveStepAfter: curveStepAfter,
|
|
39
|
-
curveStepBefore: curveStepBefore
|
|
39
|
+
curveStepBefore: curveStepBefore,
|
|
40
40
|
};
|
|
41
41
|
return _this;
|
|
42
42
|
}
|
|
43
43
|
Curves.prototype.getD3Curve = function () {
|
|
44
|
-
var curveName =
|
|
44
|
+
var curveName = 'curveLinear';
|
|
45
45
|
var curveOptions = this.model.getOptions().curve;
|
|
46
46
|
// Parse curve type whether the user provided a string
|
|
47
47
|
// Or an object with more options
|
|
48
48
|
if (curveOptions) {
|
|
49
|
-
if (typeof curveOptions ===
|
|
49
|
+
if (typeof curveOptions === 'string') {
|
|
50
50
|
// curve: 'string'
|
|
51
51
|
curveName = curveOptions;
|
|
52
52
|
}
|
|
@@ -69,7 +69,7 @@ var Curves = /** @class */ (function (_super) {
|
|
|
69
69
|
return curve_1;
|
|
70
70
|
}
|
|
71
71
|
console.warn("The curve type '" + curveName + "' is invalid, using 'curveLinear' instead");
|
|
72
|
-
return this.curveTypes[
|
|
72
|
+
return this.curveTypes['curveLinear'];
|
|
73
73
|
};
|
|
74
74
|
return Curves;
|
|
75
75
|
}(Service));
|
package/services/curves.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"curves.js","sourceRoot":"","sources":["curves.ts"],"names":[],"mappings":";;;;;;;;;;;;;AAAA,OAAO,EACN,UAAU,EACV,gBAAgB,EAChB,cAAc,EACd,WAAW,EACX,aAAa,EACb,mBAAmB,EACnB,iBAAiB,EACjB,eAAe,EACf,qBAAqB,EACrB,mBAAmB,EACnB,WAAW,EACX,iBAAiB,EACjB,cAAc,EACd,cAAc,EACd,YAAY,EACZ,SAAS,EACT,cAAc,EACd,eAAe,
|
|
1
|
+
{"version":3,"file":"curves.js","sourceRoot":"","sources":["curves.ts"],"names":[],"mappings":";;;;;;;;;;;;;AAAA,OAAO,EACN,UAAU,EACV,gBAAgB,EAChB,cAAc,EACd,WAAW,EACX,aAAa,EACb,mBAAmB,EACnB,iBAAiB,EACjB,eAAe,EACf,qBAAqB,EACrB,mBAAmB,EACnB,WAAW,EACX,iBAAiB,EACjB,cAAc,EACd,cAAc,EACd,YAAY,EACZ,SAAS,EACT,cAAc,EACd,eAAe,GAMf,MAAM,UAAU,CAAC;AAKlB,mBAAmB;AACnB,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC;IAA4B,0BAAO;IAAnC;QAAA,qEA2DC;QA1DA,gBAAU,GAAG;YACZ,WAAW,aAAA;YACX,iBAAiB,mBAAA;YACjB,UAAU,YAAA;YACV,gBAAgB,kBAAA;YAChB,cAAc,gBAAA;YACd,WAAW,aAAA;YACX,aAAa,eAAA;YACb,mBAAmB,qBAAA;YACnB,iBAAiB,mBAAA;YACjB,eAAe,iBAAA;YACf,qBAAqB,uBAAA;YACrB,mBAAmB,qBAAA;YACnB,cAAc,gBAAA;YACd,cAAc,gBAAA;YACd,YAAY,cAAA;YACZ,SAAS,WAAA;YACT,cAAc,gBAAA;YACd,eAAe,iBAAA;SACf,CAAC;;IAuCH,CAAC;IArCA,2BAAU,GAAV;QACC,IAAI,SAAS,GAAG,aAAa,CAAC;QAC9B,IAAM,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE,CAAC,KAAK,CAAC;QAEnD,sDAAsD;QACtD,iCAAiC;QACjC,IAAI,YAAY,EAAE;YACjB,IAAI,OAAO,YAAY,KAAK,QAAQ,EAAE;gBACrC,kBAAkB;gBAClB,SAAS,GAAG,YAAY,CAAC;aACzB;iBAAM;gBACN,4BAA4B;gBAC5B,SAAS,GAAG,YAAY,CAAC,IAAI,CAAC;aAC9B;SACD;QAED,IAAI,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE;YAC/B,iCAAiC;YACjC,IAAI,OAAK,GAAG,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;YAEvC,8CAA8C;YAC9C,IAAI,YAAY,EAAE;gBACjB,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,OAAO,CAAC,UAAC,UAAU;oBAC5C,IAAI,OAAK,CAAC,UAAU,CAAC,EAAE;wBACtB,OAAK,GAAG,OAAK,CAAC,UAAU,CAAC,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC,CAAC;qBACpD;gBACF,CAAC,CAAC,CAAC;aACH;YAED,OAAO,OAAK,CAAC;SACb;QAED,OAAO,CAAC,IAAI,CACX,qBAAmB,SAAS,8CAA2C,CACvE,CAAC;QACF,OAAO,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;IACvC,CAAC;IACF,aAAC;AAAD,CAAC,AA3DD,CAA4B,OAAO,GA2DlC","sourcesContent":["import {\n\tcurveBasis,\n\tcurveBasisClosed,\n\tcurveBasisOpen,\n\tcurveBundle,\n\tcurveCardinal,\n\tcurveCardinalClosed,\n\tcurveCardinalOpen,\n\tcurveCatmullRom,\n\tcurveCatmullRomClosed,\n\tcurveCatmullRomOpen,\n\tcurveLinear,\n\tcurveLinearClosed,\n\tcurveMonotoneX,\n\tcurveMonotoneY,\n\tcurveNatural,\n\tcurveStep,\n\tcurveStepAfter,\n\tcurveStepBefore,\n\t// the imports below are needed because of typescript bug (error TS4029)\n\tCurveBundleFactory,\n\tCurveCardinalFactory,\n\tCurveCatmullRomFactory,\n\tCurveGenerator,\n} from 'd3-shape';\n\n// this import is needed because of typescript bug (error TS4029)\nimport { Path } from 'd3-path';\n\n// Internal Imports\nimport { Service } from './service';\n\nexport class Curves extends Service {\n\tcurveTypes = {\n\t\tcurveLinear,\n\t\tcurveLinearClosed,\n\t\tcurveBasis,\n\t\tcurveBasisClosed,\n\t\tcurveBasisOpen,\n\t\tcurveBundle,\n\t\tcurveCardinal,\n\t\tcurveCardinalClosed,\n\t\tcurveCardinalOpen,\n\t\tcurveCatmullRom,\n\t\tcurveCatmullRomClosed,\n\t\tcurveCatmullRomOpen,\n\t\tcurveMonotoneX,\n\t\tcurveMonotoneY,\n\t\tcurveNatural,\n\t\tcurveStep,\n\t\tcurveStepAfter,\n\t\tcurveStepBefore,\n\t};\n\n\tgetD3Curve() {\n\t\tlet curveName = 'curveLinear';\n\t\tconst curveOptions = this.model.getOptions().curve;\n\n\t\t// Parse curve type whether the user provided a string\n\t\t// Or an object with more options\n\t\tif (curveOptions) {\n\t\t\tif (typeof curveOptions === 'string') {\n\t\t\t\t// curve: 'string'\n\t\t\t\tcurveName = curveOptions;\n\t\t\t} else {\n\t\t\t\t// curve: { name: 'string' }\n\t\t\t\tcurveName = curveOptions.name;\n\t\t\t}\n\t\t}\n\n\t\tif (this.curveTypes[curveName]) {\n\t\t\t// Grab correct d3 curve function\n\t\t\tlet curve = this.curveTypes[curveName];\n\n\t\t\t// Apply user-provided options to the d3 curve\n\t\t\tif (curveOptions) {\n\t\t\t\tObject.keys(curveOptions).forEach((optionName) => {\n\t\t\t\t\tif (curve[optionName]) {\n\t\t\t\t\t\tcurve = curve[optionName](curveOptions[optionName]);\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n\n\t\t\treturn curve;\n\t\t}\n\n\t\tconsole.warn(\n\t\t\t`The curve type '${curveName}' is invalid, using 'curveLinear' instead`\n\t\t);\n\t\treturn this.curveTypes['curveLinear'];\n\t}\n}\n"]}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { Service } from
|
|
2
|
-
import { Selection } from
|
|
1
|
+
import { Service } from '../service';
|
|
2
|
+
import { Selection } from 'd3-selection';
|
|
3
3
|
export declare class DOMUtils extends Service {
|
|
4
4
|
static getSVGElementSize(svgSelector: Selection<any, any, any, any>, options?: any): any;
|
|
5
5
|
static appendOrSelect(parent: any, query: any): any;
|
|
@@ -12,16 +12,16 @@ var __extends = (this && this.__extends) || (function () {
|
|
|
12
12
|
};
|
|
13
13
|
})();
|
|
14
14
|
// Internal Imports
|
|
15
|
-
import { Service } from
|
|
16
|
-
import { Events, Alignments } from
|
|
15
|
+
import { Service } from '../service';
|
|
16
|
+
import { Events, Alignments } from './../../interfaces';
|
|
17
17
|
// D3 Imports
|
|
18
|
-
import { select } from
|
|
19
|
-
import { Tools } from
|
|
18
|
+
import { select } from 'd3-selection';
|
|
19
|
+
import { Tools } from '../../tools';
|
|
20
20
|
// import the settings for the css prefix
|
|
21
|
-
import settings from
|
|
21
|
+
import settings from 'carbon-components/es/globals/js/settings';
|
|
22
22
|
// MISC
|
|
23
|
-
import ResizeObserver from
|
|
24
|
-
var CSS_VERIFIER_ELEMENT_CLASSNAME =
|
|
23
|
+
import ResizeObserver from 'resize-observer-polyfill';
|
|
24
|
+
var CSS_VERIFIER_ELEMENT_CLASSNAME = 'DONT_STYLE_ME_css_styles_verifier';
|
|
25
25
|
var DOMUtils = /** @class */ (function (_super) {
|
|
26
26
|
__extends(DOMUtils, _super);
|
|
27
27
|
function DOMUtils() {
|
|
@@ -33,7 +33,7 @@ var DOMUtils = /** @class */ (function (_super) {
|
|
|
33
33
|
}
|
|
34
34
|
var finalDimensions = {
|
|
35
35
|
width: 0,
|
|
36
|
-
height: 0
|
|
36
|
+
height: 0,
|
|
37
37
|
};
|
|
38
38
|
var validateAndSetDimensions = function (dimensions) {
|
|
39
39
|
if (dimensions) {
|
|
@@ -43,7 +43,7 @@ var DOMUtils = /** @class */ (function (_super) {
|
|
|
43
43
|
var dimensionNumber = parseFloat(dimension);
|
|
44
44
|
if (dimension &&
|
|
45
45
|
dimensionNumber > finalDimensions[dimensionKey] &&
|
|
46
|
-
(
|
|
46
|
+
('' + dimension).indexOf('%') === -1) {
|
|
47
47
|
finalDimensions[dimensionKey] = dimensionNumber;
|
|
48
48
|
}
|
|
49
49
|
}
|
|
@@ -51,8 +51,8 @@ var DOMUtils = /** @class */ (function (_super) {
|
|
|
51
51
|
}
|
|
52
52
|
};
|
|
53
53
|
var attrDimensions = {
|
|
54
|
-
width: svgSelector.attr(
|
|
55
|
-
height: svgSelector.attr(
|
|
54
|
+
width: svgSelector.attr('width'),
|
|
55
|
+
height: svgSelector.attr('height'),
|
|
56
56
|
};
|
|
57
57
|
var bbox, bboxDimensions, boundingRect, boundingRectDimensions;
|
|
58
58
|
// In many versions of Firefox
|
|
@@ -61,7 +61,7 @@ var DOMUtils = /** @class */ (function (_super) {
|
|
|
61
61
|
bbox = svgSelector.node().getBBox();
|
|
62
62
|
bboxDimensions = {
|
|
63
63
|
width: bbox.width,
|
|
64
|
-
height: bbox.height
|
|
64
|
+
height: bbox.height,
|
|
65
65
|
};
|
|
66
66
|
}
|
|
67
67
|
catch (e) { }
|
|
@@ -69,13 +69,13 @@ var DOMUtils = /** @class */ (function (_super) {
|
|
|
69
69
|
boundingRect = svgSelector.node().getBoundingClientRect();
|
|
70
70
|
boundingRectDimensions = {
|
|
71
71
|
width: boundingRect.width,
|
|
72
|
-
height: boundingRect.height
|
|
72
|
+
height: boundingRect.height,
|
|
73
73
|
};
|
|
74
74
|
}
|
|
75
75
|
catch (e) { }
|
|
76
76
|
var clientDimensions = {
|
|
77
77
|
width: svgSelector.node().clientWidth,
|
|
78
|
-
height: svgSelector.node().clientHeight
|
|
78
|
+
height: svgSelector.node().clientHeight,
|
|
79
79
|
};
|
|
80
80
|
// If both attribute values are numbers
|
|
81
81
|
// And not percentages or NaN
|
|
@@ -107,8 +107,8 @@ var DOMUtils = /** @class */ (function (_super) {
|
|
|
107
107
|
}
|
|
108
108
|
try {
|
|
109
109
|
var nativeDimensions = {
|
|
110
|
-
width: Tools.getProperty(svgSelector.node(),
|
|
111
|
-
height: Tools.getProperty(svgSelector.node(),
|
|
110
|
+
width: Tools.getProperty(svgSelector.node(), 'width', 'baseVal', 'value'),
|
|
111
|
+
height: Tools.getProperty(svgSelector.node(), 'height', 'baseVal', 'value'),
|
|
112
112
|
};
|
|
113
113
|
validateAndSetDimensions(nativeDimensions);
|
|
114
114
|
}
|
|
@@ -123,7 +123,7 @@ var DOMUtils = /** @class */ (function (_super) {
|
|
|
123
123
|
var selection = parent.select("" + query);
|
|
124
124
|
if (selection.empty()) {
|
|
125
125
|
// see if there is an id
|
|
126
|
-
var querySections = query.split(
|
|
126
|
+
var querySections = query.split('#');
|
|
127
127
|
var elementToAppend = void 0;
|
|
128
128
|
var id = void 0;
|
|
129
129
|
// if there is an id
|
|
@@ -131,24 +131,24 @@ var DOMUtils = /** @class */ (function (_super) {
|
|
|
131
131
|
// take out the element to append
|
|
132
132
|
elementToAppend = querySections[0];
|
|
133
133
|
// split it by classes
|
|
134
|
-
querySections = querySections[1].split(
|
|
134
|
+
querySections = querySections[1].split('.');
|
|
135
135
|
// the first string is the id
|
|
136
136
|
id = querySections[0];
|
|
137
137
|
}
|
|
138
138
|
else {
|
|
139
|
-
querySections = query.split(
|
|
139
|
+
querySections = query.split('.');
|
|
140
140
|
elementToAppend = querySections[0];
|
|
141
141
|
}
|
|
142
142
|
return parent
|
|
143
143
|
.append(elementToAppend)
|
|
144
|
-
.attr(
|
|
145
|
-
.attr(
|
|
144
|
+
.attr('id', id)
|
|
145
|
+
.attr('class', querySections.slice(1).join(' '));
|
|
146
146
|
}
|
|
147
147
|
return selection;
|
|
148
148
|
};
|
|
149
149
|
DOMUtils.getAlignmentOffset = function (alignment, svg, parent) {
|
|
150
150
|
var svgDimensions = DOMUtils.getSVGElementSize(svg, {
|
|
151
|
-
useBBox: true
|
|
151
|
+
useBBox: true,
|
|
152
152
|
});
|
|
153
153
|
var width = DOMUtils.getSVGElementSize(parent, { useAttr: true }).width;
|
|
154
154
|
var alignmentOffset = 0;
|
|
@@ -194,17 +194,17 @@ var DOMUtils = /** @class */ (function (_super) {
|
|
|
194
194
|
}
|
|
195
195
|
};
|
|
196
196
|
DOMUtils.prototype.getHolder = function () {
|
|
197
|
-
return this.model.get(
|
|
197
|
+
return this.model.get('holder');
|
|
198
198
|
};
|
|
199
199
|
DOMUtils.prototype.addSVGElement = function () {
|
|
200
200
|
var options = this.model.getOptions();
|
|
201
|
-
var chartsprefix = Tools.getProperty(options,
|
|
201
|
+
var chartsprefix = Tools.getProperty(options, 'style', 'prefix');
|
|
202
202
|
var svg = select(this.getHolder())
|
|
203
|
-
.append(
|
|
203
|
+
.append('svg')
|
|
204
204
|
.classed(settings.prefix + "--" + chartsprefix + "--chart-svg", true)
|
|
205
|
-
.attr(
|
|
206
|
-
.attr(
|
|
207
|
-
svg.append(
|
|
205
|
+
.attr('height', '100%')
|
|
206
|
+
.attr('width', '100%');
|
|
207
|
+
svg.append('g').attr('class', CSS_VERIFIER_ELEMENT_CLASSNAME);
|
|
208
208
|
this.svg = svg.node();
|
|
209
209
|
};
|
|
210
210
|
DOMUtils.prototype.verifyCSSStylesBeingApplied = function () {
|
|
@@ -217,9 +217,9 @@ var DOMUtils = /** @class */ (function (_super) {
|
|
|
217
217
|
.select("g." + CSS_VERIFIER_ELEMENT_CLASSNAME)
|
|
218
218
|
.node();
|
|
219
219
|
var computedStyles = getComputedStyle(cssVerifierElement);
|
|
220
|
-
if (computedStyles.getPropertyValue(
|
|
221
|
-
computedStyles.getPropertyValue(
|
|
222
|
-
console.error(
|
|
220
|
+
if (computedStyles.getPropertyValue('overflow') !== 'hidden' ||
|
|
221
|
+
computedStyles.getPropertyValue('opacity') !== '0') {
|
|
222
|
+
console.error('Missing CSS styles for Carbon Charts. Please read the Carbon Charts getting started guide.');
|
|
223
223
|
}
|
|
224
224
|
});
|
|
225
225
|
};
|
|
@@ -227,20 +227,20 @@ var DOMUtils = /** @class */ (function (_super) {
|
|
|
227
227
|
// if there is a set height on the holder, leave the chart svg height at 100%
|
|
228
228
|
if (!this.model.getOptions().height) {
|
|
229
229
|
var chartHeight = DOMUtils.getSVGElementSize(select(this.svg), { useBBox: true }).height;
|
|
230
|
-
var chartSVGSelector = select(this.svg).attr(
|
|
230
|
+
var chartSVGSelector = select(this.svg).attr('class');
|
|
231
231
|
var children = select(this.svg).selectAll("." + chartSVGSelector + " > svg");
|
|
232
232
|
// get the height of the children SVGs (spacers, titles, etc)
|
|
233
233
|
var childrenHeight_1 = 0;
|
|
234
234
|
children.nodes().forEach(function (childSVG) {
|
|
235
235
|
childrenHeight_1 += Number(DOMUtils.getSVGElementSize(select(childSVG), {
|
|
236
|
-
useBBox: true
|
|
236
|
+
useBBox: true,
|
|
237
237
|
}).height);
|
|
238
238
|
});
|
|
239
239
|
// set the chart svg height to the children height
|
|
240
240
|
// forcing the chart not to take up any more space than it requires
|
|
241
241
|
childrenHeight_1 <= chartHeight
|
|
242
|
-
? select(this.svg).attr(
|
|
243
|
-
: select(this.svg).attr(
|
|
242
|
+
? select(this.svg).attr('height', childrenHeight_1)
|
|
243
|
+
: select(this.svg).attr('height', '100%');
|
|
244
244
|
}
|
|
245
245
|
};
|
|
246
246
|
DOMUtils.prototype.getMainSVG = function () {
|
|
@@ -253,11 +253,11 @@ var DOMUtils = /** @class */ (function (_super) {
|
|
|
253
253
|
return;
|
|
254
254
|
}
|
|
255
255
|
select(holder)
|
|
256
|
-
.on(
|
|
256
|
+
.on('mouseover', function () {
|
|
257
257
|
// Dispatch event
|
|
258
258
|
_this.services.events.dispatchEvent(Events.Chart.MOUSEOVER);
|
|
259
259
|
})
|
|
260
|
-
.on(
|
|
260
|
+
.on('mouseout', function () {
|
|
261
261
|
// Dispatch event
|
|
262
262
|
_this.services.events.dispatchEvent(Events.Chart.MOUSEOUT);
|
|
263
263
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dom-utils.js","sourceRoot":"","sources":["dom-utils.ts"],"names":[],"mappings":"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","sourcesContent":["// Internal Imports\nimport { Service } from \"../service\";\nimport { Events, Alignments } from \"./../../interfaces\";\n\n// D3 Imports\nimport { select, Selection } from \"d3-selection\";\nimport { Tools } from \"../../tools\";\n\n// import the settings for the css prefix\nimport settings from \"carbon-components/es/globals/js/settings\";\n\n// MISC\nimport ResizeObserver from \"resize-observer-polyfill\";\n\nconst CSS_VERIFIER_ELEMENT_CLASSNAME = \"DONT_STYLE_ME_css_styles_verifier\";\n\nexport class DOMUtils extends Service {\n\tstatic getSVGElementSize(\n\t\tsvgSelector: Selection<any, any, any, any>,\n\t\toptions?: any\n\t) {\n\t\tif (!svgSelector.attr) {\n\t\t\tsvgSelector = select(svgSelector as any);\n\t\t}\n\n\t\tconst finalDimensions = {\n\t\t\twidth: 0,\n\t\t\theight: 0\n\t\t};\n\n\t\tconst validateAndSetDimensions = (dimensions) => {\n\t\t\tif (dimensions) {\n\t\t\t\tObject.keys(finalDimensions).forEach((dimensionKey) => {\n\t\t\t\t\tif (dimensions[dimensionKey]) {\n\t\t\t\t\t\tconst dimension = dimensions[dimensionKey];\n\t\t\t\t\t\tconst dimensionNumber = parseFloat(dimension);\n\t\t\t\t\t\tif (\n\t\t\t\t\t\t\tdimension &&\n\t\t\t\t\t\t\tdimensionNumber > finalDimensions[dimensionKey] &&\n\t\t\t\t\t\t\t(\"\" + dimension).indexOf(\"%\") === -1\n\t\t\t\t\t\t) {\n\t\t\t\t\t\t\tfinalDimensions[dimensionKey] = dimensionNumber;\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};\n\n\t\tconst attrDimensions = {\n\t\t\twidth: svgSelector.attr(\"width\"),\n\t\t\theight: svgSelector.attr(\"height\")\n\t\t};\n\n\t\tlet bbox, bboxDimensions, boundingRect, boundingRectDimensions;\n\t\t// In many versions of Firefox\n\t\t// getBBox will cause an \"NSFailure\" error\n\t\ttry {\n\t\t\tbbox = svgSelector.node().getBBox();\n\t\t\tbboxDimensions = {\n\t\t\t\twidth: bbox.width,\n\t\t\t\theight: bbox.height\n\t\t\t};\n\t\t} catch (e) {}\n\n\t\ttry {\n\t\t\tboundingRect = svgSelector.node().getBoundingClientRect();\n\t\t\tboundingRectDimensions = {\n\t\t\t\twidth: boundingRect.width,\n\t\t\t\theight: boundingRect.height\n\t\t\t};\n\t\t} catch (e) {}\n\n\t\tconst clientDimensions = {\n\t\t\twidth: svgSelector.node().clientWidth,\n\t\t\theight: svgSelector.node().clientHeight\n\t\t};\n\n\t\t// If both attribute values are numbers\n\t\t// And not percentages or NaN\n\t\tif (options) {\n\t\t\tif (options.useAttrs) {\n\t\t\t\tvalidateAndSetDimensions(attrDimensions);\n\n\t\t\t\tif (finalDimensions.width > 0 && finalDimensions.height > 0) {\n\t\t\t\t\treturn finalDimensions;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (options.useClientDimensions) {\n\t\t\t\tvalidateAndSetDimensions(clientDimensions);\n\n\t\t\t\tif (finalDimensions.width > 0 && finalDimensions.height > 0) {\n\t\t\t\t\treturn clientDimensions;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (options.useBBox) {\n\t\t\t\tvalidateAndSetDimensions(bboxDimensions);\n\n\t\t\t\tif (finalDimensions.width > 0 && finalDimensions.height > 0) {\n\t\t\t\t\treturn bboxDimensions;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (options.useBoundingRect) {\n\t\t\t\tvalidateAndSetDimensions(boundingRectDimensions);\n\n\t\t\t\tif (finalDimensions.width > 0 && finalDimensions.height > 0) {\n\t\t\t\t\treturn boundingRectDimensions;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\ttry {\n\t\t\tconst nativeDimensions = {\n\t\t\t\twidth: Tools.getProperty(\n\t\t\t\t\tsvgSelector.node(),\n\t\t\t\t\t\"width\",\n\t\t\t\t\t\"baseVal\",\n\t\t\t\t\t\"value\"\n\t\t\t\t),\n\t\t\t\theight: Tools.getProperty(\n\t\t\t\t\tsvgSelector.node(),\n\t\t\t\t\t\"height\",\n\t\t\t\t\t\"baseVal\",\n\t\t\t\t\t\"value\"\n\t\t\t\t)\n\t\t\t};\n\n\t\t\tvalidateAndSetDimensions(nativeDimensions);\n\t\t} catch (e) {\n\t\t\tvalidateAndSetDimensions(clientDimensions);\n\t\t\tvalidateAndSetDimensions(bboxDimensions);\n\t\t\tvalidateAndSetDimensions(attrDimensions);\n\t\t}\n\n\t\treturn finalDimensions;\n\t}\n\n\tstatic appendOrSelect(parent, query) {\n\t\tconst selection = parent.select(`${query}`);\n\n\t\tif (selection.empty()) {\n\t\t\t// see if there is an id\n\t\t\tlet querySections = query.split(\"#\");\n\t\t\tlet elementToAppend;\n\t\t\tlet id;\n\t\t\t// if there is an id\n\t\t\tif (querySections.length === 2) {\n\t\t\t\t// take out the element to append\n\t\t\t\telementToAppend = querySections[0];\n\t\t\t\t// split it by classes\n\t\t\t\tquerySections = querySections[1].split(\".\");\n\t\t\t\t// the first string is the id\n\t\t\t\tid = querySections[0];\n\t\t\t} else {\n\t\t\t\tquerySections = query.split(\".\");\n\t\t\t\telementToAppend = querySections[0];\n\t\t\t}\n\n\t\t\treturn parent\n\t\t\t\t.append(elementToAppend)\n\t\t\t\t.attr(\"id\", id)\n\t\t\t\t.attr(\"class\", querySections.slice(1).join(\" \"));\n\t\t}\n\n\t\treturn selection;\n\t}\n\n\tstatic getAlignmentOffset(alignment, svg, parent) {\n\t\tconst svgDimensions = DOMUtils.getSVGElementSize(svg, {\n\t\t\tuseBBox: true\n\t\t});\n\t\tconst { width } = DOMUtils.getSVGElementSize(parent, { useAttr: true });\n\n\t\tlet alignmentOffset = 0;\n\t\tif (alignment === Alignments.CENTER) {\n\t\t\talignmentOffset = Math.floor((width - svgDimensions.width) / 2);\n\t\t} else if (alignment === Alignments.RIGHT) {\n\t\t\talignmentOffset = width - svgDimensions.width;\n\t\t}\n\n\t\treturn alignmentOffset;\n\t}\n\n\tprotected svg: Element;\n\tprotected width: string;\n\tprotected height: string;\n\n\tinit() {\n\t\t// Add width & height to the chart holder if necessary, and add a classname\n\t\tthis.styleHolderElement();\n\n\t\t// Add main SVG\n\t\tthis.addSVGElement();\n\t\tthis.verifyCSSStylesBeingApplied();\n\n\t\tif (this.model.getOptions().resizable) {\n\t\t\tthis.addResizeListener();\n\t\t}\n\n\t\tthis.addHolderListeners();\n\t}\n\n\tupdate() {\n\t\tthis.styleHolderElement();\n\t}\n\n\tstyleHolderElement() {\n\t\tconst holderElement = this.getHolder() as HTMLElement;\n\n\t\t// Add class to chart holder\n\t\tselect(this.getHolder()).classed(\n\t\t\t`${settings.prefix}--chart-holder`,\n\t\t\ttrue\n\t\t);\n\n\t\t// In order for resize events to not clash with these updates\n\t\t// We'll check if the width & height values passed in options\n\t\t// Have changed, before setting them to the holder\n\t\tconst { width, height } = this.model.getOptions();\n\t\tif (width !== this.width) {\n\t\t\t// Apply formatted width attribute to chart\n\t\t\tholderElement.style.width = width;\n\n\t\t\tthis.width = width;\n\t\t}\n\n\t\tif (height !== this.height) {\n\t\t\t// Apply formatted width attribute to chart\n\t\t\tholderElement.style.height = height;\n\n\t\t\tthis.height = height;\n\t\t}\n\t}\n\n\tgetHolder() {\n\t\treturn this.model.get(\"holder\");\n\t}\n\n\taddSVGElement() {\n\t\tconst options = this.model.getOptions();\n\t\tconst chartsprefix = Tools.getProperty(options, \"style\", \"prefix\");\n\n\t\tconst svg = select(this.getHolder())\n\t\t\t.append(\"svg\")\n\t\t\t.classed(`${settings.prefix}--${chartsprefix}--chart-svg`, true)\n\t\t\t.attr(\"height\", \"100%\")\n\t\t\t.attr(\"width\", \"100%\");\n\n\t\tsvg.append(\"g\").attr(\"class\", CSS_VERIFIER_ELEMENT_CLASSNAME);\n\n\t\tthis.svg = svg.node();\n\t}\n\n\tverifyCSSStylesBeingApplied() {\n\t\t// setTimeout is needed here since in `addSVGElement()` we're appending the\n\t\t// CSS verifier element, and need to allow some time for it to become available\n\t\t// in the DOM\n\t\tsetTimeout(() => {\n\t\t\tconst cssVerifierElement = select(this.svg)\n\t\t\t\t.select(`g.${CSS_VERIFIER_ELEMENT_CLASSNAME}`)\n\t\t\t\t.node();\n\t\t\tconst computedStyles = getComputedStyle(cssVerifierElement as any);\n\t\t\tif (\n\t\t\t\tcomputedStyles.getPropertyValue(\"overflow\") !== \"hidden\" ||\n\t\t\t\tcomputedStyles.getPropertyValue(\"opacity\") !== \"0\"\n\t\t\t) {\n\t\t\t\tconsole.error(\n\t\t\t\t\t\"Missing CSS styles for Carbon Charts. Please read the Carbon Charts getting started guide.\"\n\t\t\t\t);\n\t\t\t}\n\t\t});\n\t}\n\n\tsetSVGMaxHeight() {\n\t\t// if there is a set height on the holder, leave the chart svg height at 100%\n\t\tif (!this.model.getOptions().height) {\n\t\t\tconst { height: chartHeight } = DOMUtils.getSVGElementSize(\n\t\t\t\tselect(this.svg),\n\t\t\t\t{ useBBox: true }\n\t\t\t);\n\t\t\tconst chartSVGSelector = select(this.svg).attr(\"class\");\n\t\t\tconst children = select(this.svg).selectAll(\n\t\t\t\t`.${chartSVGSelector} > svg`\n\t\t\t);\n\n\t\t\t// get the height of the children SVGs (spacers, titles, etc)\n\t\t\tlet childrenHeight = 0;\n\t\t\tchildren.nodes().forEach(function (childSVG) {\n\t\t\t\tchildrenHeight += Number(\n\t\t\t\t\tDOMUtils.getSVGElementSize(select(childSVG), {\n\t\t\t\t\t\tuseBBox: true\n\t\t\t\t\t}).height\n\t\t\t\t);\n\t\t\t});\n\n\t\t\t// set the chart svg height to the children height\n\t\t\t// forcing the chart not to take up any more space than it requires\n\t\t\tchildrenHeight <= chartHeight\n\t\t\t\t? select(this.svg).attr(\"height\", childrenHeight)\n\t\t\t\t: select(this.svg).attr(\"height\", \"100%\");\n\t\t}\n\t}\n\n\tgetMainSVG() {\n\t\treturn this.svg;\n\t}\n\n\taddHolderListeners() {\n\t\tconst holder = this.getHolder();\n\n\t\tif (!holder) {\n\t\t\treturn;\n\t\t}\n\n\t\tselect(holder)\n\t\t\t.on(\"mouseover\", () => {\n\t\t\t\t// Dispatch event\n\t\t\t\tthis.services.events.dispatchEvent(Events.Chart.MOUSEOVER);\n\t\t\t})\n\t\t\t.on(\"mouseout\", () => {\n\t\t\t\t// Dispatch event\n\t\t\t\tthis.services.events.dispatchEvent(Events.Chart.MOUSEOUT);\n\t\t\t});\n\t}\n\n\taddResizeListener() {\n\t\tconst holder = this.getHolder();\n\n\t\tif (!holder) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Grab current dimensions of the chart holder\n\t\tlet containerWidth = holder.clientWidth;\n\t\tlet containerHeight = holder.clientHeight;\n\n\t\t// The resize callback function\n\t\tconst resizeCallback = Tools.debounce((entries, observer) => {\n\t\t\tif (!holder) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif (\n\t\t\t\tMath.abs(containerWidth - holder.clientWidth) > 1 ||\n\t\t\t\tMath.abs(containerHeight - holder.clientHeight) > 1\n\t\t\t) {\n\t\t\t\tcontainerWidth = holder.clientWidth;\n\t\t\t\tcontainerHeight = holder.clientHeight;\n\n\t\t\t\tthis.services.events.dispatchEvent(Events.Chart.RESIZE);\n\t\t\t}\n\t\t}, 12.5);\n\n\t\t// Observe the behaviour of resizing on the holder\n\t\tconst resizeObserver = new ResizeObserver(resizeCallback);\n\t\tresizeObserver.observe(holder);\n\t}\n}\n"]}
|
|
1
|
+
{"version":3,"file":"dom-utils.js","sourceRoot":"","sources":["dom-utils.ts"],"names":[],"mappings":"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","sourcesContent":["// Internal Imports\nimport { Service } from '../service';\nimport { Events, Alignments } from './../../interfaces';\n\n// D3 Imports\nimport { select, Selection } from 'd3-selection';\nimport { Tools } from '../../tools';\n\n// import the settings for the css prefix\nimport settings from 'carbon-components/es/globals/js/settings';\n\n// MISC\nimport ResizeObserver from 'resize-observer-polyfill';\n\nconst CSS_VERIFIER_ELEMENT_CLASSNAME = 'DONT_STYLE_ME_css_styles_verifier';\n\nexport class DOMUtils extends Service {\n\tstatic getSVGElementSize(\n\t\tsvgSelector: Selection<any, any, any, any>,\n\t\toptions?: any\n\t) {\n\t\tif (!svgSelector.attr) {\n\t\t\tsvgSelector = select(svgSelector as any);\n\t\t}\n\n\t\tconst finalDimensions = {\n\t\t\twidth: 0,\n\t\t\theight: 0,\n\t\t};\n\n\t\tconst validateAndSetDimensions = (dimensions) => {\n\t\t\tif (dimensions) {\n\t\t\t\tObject.keys(finalDimensions).forEach((dimensionKey) => {\n\t\t\t\t\tif (dimensions[dimensionKey]) {\n\t\t\t\t\t\tconst dimension = dimensions[dimensionKey];\n\t\t\t\t\t\tconst dimensionNumber = parseFloat(dimension);\n\t\t\t\t\t\tif (\n\t\t\t\t\t\t\tdimension &&\n\t\t\t\t\t\t\tdimensionNumber > finalDimensions[dimensionKey] &&\n\t\t\t\t\t\t\t('' + dimension).indexOf('%') === -1\n\t\t\t\t\t\t) {\n\t\t\t\t\t\t\tfinalDimensions[dimensionKey] = dimensionNumber;\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};\n\n\t\tconst attrDimensions = {\n\t\t\twidth: svgSelector.attr('width'),\n\t\t\theight: svgSelector.attr('height'),\n\t\t};\n\n\t\tlet bbox, bboxDimensions, boundingRect, boundingRectDimensions;\n\t\t// In many versions of Firefox\n\t\t// getBBox will cause an \"NSFailure\" error\n\t\ttry {\n\t\t\tbbox = svgSelector.node().getBBox();\n\t\t\tbboxDimensions = {\n\t\t\t\twidth: bbox.width,\n\t\t\t\theight: bbox.height,\n\t\t\t};\n\t\t} catch (e) {}\n\n\t\ttry {\n\t\t\tboundingRect = svgSelector.node().getBoundingClientRect();\n\t\t\tboundingRectDimensions = {\n\t\t\t\twidth: boundingRect.width,\n\t\t\t\theight: boundingRect.height,\n\t\t\t};\n\t\t} catch (e) {}\n\n\t\tconst clientDimensions = {\n\t\t\twidth: svgSelector.node().clientWidth,\n\t\t\theight: svgSelector.node().clientHeight,\n\t\t};\n\n\t\t// If both attribute values are numbers\n\t\t// And not percentages or NaN\n\t\tif (options) {\n\t\t\tif (options.useAttrs) {\n\t\t\t\tvalidateAndSetDimensions(attrDimensions);\n\n\t\t\t\tif (finalDimensions.width > 0 && finalDimensions.height > 0) {\n\t\t\t\t\treturn finalDimensions;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (options.useClientDimensions) {\n\t\t\t\tvalidateAndSetDimensions(clientDimensions);\n\n\t\t\t\tif (finalDimensions.width > 0 && finalDimensions.height > 0) {\n\t\t\t\t\treturn clientDimensions;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (options.useBBox) {\n\t\t\t\tvalidateAndSetDimensions(bboxDimensions);\n\n\t\t\t\tif (finalDimensions.width > 0 && finalDimensions.height > 0) {\n\t\t\t\t\treturn bboxDimensions;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (options.useBoundingRect) {\n\t\t\t\tvalidateAndSetDimensions(boundingRectDimensions);\n\n\t\t\t\tif (finalDimensions.width > 0 && finalDimensions.height > 0) {\n\t\t\t\t\treturn boundingRectDimensions;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\ttry {\n\t\t\tconst nativeDimensions = {\n\t\t\t\twidth: Tools.getProperty(\n\t\t\t\t\tsvgSelector.node(),\n\t\t\t\t\t'width',\n\t\t\t\t\t'baseVal',\n\t\t\t\t\t'value'\n\t\t\t\t),\n\t\t\t\theight: Tools.getProperty(\n\t\t\t\t\tsvgSelector.node(),\n\t\t\t\t\t'height',\n\t\t\t\t\t'baseVal',\n\t\t\t\t\t'value'\n\t\t\t\t),\n\t\t\t};\n\n\t\t\tvalidateAndSetDimensions(nativeDimensions);\n\t\t} catch (e) {\n\t\t\tvalidateAndSetDimensions(clientDimensions);\n\t\t\tvalidateAndSetDimensions(bboxDimensions);\n\t\t\tvalidateAndSetDimensions(attrDimensions);\n\t\t}\n\n\t\treturn finalDimensions;\n\t}\n\n\tstatic appendOrSelect(parent, query) {\n\t\tconst selection = parent.select(`${query}`);\n\n\t\tif (selection.empty()) {\n\t\t\t// see if there is an id\n\t\t\tlet querySections = query.split('#');\n\t\t\tlet elementToAppend;\n\t\t\tlet id;\n\t\t\t// if there is an id\n\t\t\tif (querySections.length === 2) {\n\t\t\t\t// take out the element to append\n\t\t\t\telementToAppend = querySections[0];\n\t\t\t\t// split it by classes\n\t\t\t\tquerySections = querySections[1].split('.');\n\t\t\t\t// the first string is the id\n\t\t\t\tid = querySections[0];\n\t\t\t} else {\n\t\t\t\tquerySections = query.split('.');\n\t\t\t\telementToAppend = querySections[0];\n\t\t\t}\n\n\t\t\treturn parent\n\t\t\t\t.append(elementToAppend)\n\t\t\t\t.attr('id', id)\n\t\t\t\t.attr('class', querySections.slice(1).join(' '));\n\t\t}\n\n\t\treturn selection;\n\t}\n\n\tstatic getAlignmentOffset(alignment, svg, parent) {\n\t\tconst svgDimensions = DOMUtils.getSVGElementSize(svg, {\n\t\t\tuseBBox: true,\n\t\t});\n\t\tconst { width } = DOMUtils.getSVGElementSize(parent, { useAttr: true });\n\n\t\tlet alignmentOffset = 0;\n\t\tif (alignment === Alignments.CENTER) {\n\t\t\talignmentOffset = Math.floor((width - svgDimensions.width) / 2);\n\t\t} else if (alignment === Alignments.RIGHT) {\n\t\t\talignmentOffset = width - svgDimensions.width;\n\t\t}\n\n\t\treturn alignmentOffset;\n\t}\n\n\tprotected svg: Element;\n\tprotected width: string;\n\tprotected height: string;\n\n\tinit() {\n\t\t// Add width & height to the chart holder if necessary, and add a classname\n\t\tthis.styleHolderElement();\n\n\t\t// Add main SVG\n\t\tthis.addSVGElement();\n\t\tthis.verifyCSSStylesBeingApplied();\n\n\t\tif (this.model.getOptions().resizable) {\n\t\t\tthis.addResizeListener();\n\t\t}\n\n\t\tthis.addHolderListeners();\n\t}\n\n\tupdate() {\n\t\tthis.styleHolderElement();\n\t}\n\n\tstyleHolderElement() {\n\t\tconst holderElement = this.getHolder() as HTMLElement;\n\n\t\t// Add class to chart holder\n\t\tselect(this.getHolder()).classed(\n\t\t\t`${settings.prefix}--chart-holder`,\n\t\t\ttrue\n\t\t);\n\n\t\t// In order for resize events to not clash with these updates\n\t\t// We'll check if the width & height values passed in options\n\t\t// Have changed, before setting them to the holder\n\t\tconst { width, height } = this.model.getOptions();\n\t\tif (width !== this.width) {\n\t\t\t// Apply formatted width attribute to chart\n\t\t\tholderElement.style.width = width;\n\n\t\t\tthis.width = width;\n\t\t}\n\n\t\tif (height !== this.height) {\n\t\t\t// Apply formatted width attribute to chart\n\t\t\tholderElement.style.height = height;\n\n\t\t\tthis.height = height;\n\t\t}\n\t}\n\n\tgetHolder() {\n\t\treturn this.model.get('holder');\n\t}\n\n\taddSVGElement() {\n\t\tconst options = this.model.getOptions();\n\t\tconst chartsprefix = Tools.getProperty(options, 'style', 'prefix');\n\n\t\tconst svg = select(this.getHolder())\n\t\t\t.append('svg')\n\t\t\t.classed(`${settings.prefix}--${chartsprefix}--chart-svg`, true)\n\t\t\t.attr('height', '100%')\n\t\t\t.attr('width', '100%');\n\n\t\tsvg.append('g').attr('class', CSS_VERIFIER_ELEMENT_CLASSNAME);\n\n\t\tthis.svg = svg.node();\n\t}\n\n\tverifyCSSStylesBeingApplied() {\n\t\t// setTimeout is needed here since in `addSVGElement()` we're appending the\n\t\t// CSS verifier element, and need to allow some time for it to become available\n\t\t// in the DOM\n\t\tsetTimeout(() => {\n\t\t\tconst cssVerifierElement = select(this.svg)\n\t\t\t\t.select(`g.${CSS_VERIFIER_ELEMENT_CLASSNAME}`)\n\t\t\t\t.node();\n\t\t\tconst computedStyles = getComputedStyle(cssVerifierElement as any);\n\t\t\tif (\n\t\t\t\tcomputedStyles.getPropertyValue('overflow') !== 'hidden' ||\n\t\t\t\tcomputedStyles.getPropertyValue('opacity') !== '0'\n\t\t\t) {\n\t\t\t\tconsole.error(\n\t\t\t\t\t'Missing CSS styles for Carbon Charts. Please read the Carbon Charts getting started guide.'\n\t\t\t\t);\n\t\t\t}\n\t\t});\n\t}\n\n\tsetSVGMaxHeight() {\n\t\t// if there is a set height on the holder, leave the chart svg height at 100%\n\t\tif (!this.model.getOptions().height) {\n\t\t\tconst { height: chartHeight } = DOMUtils.getSVGElementSize(\n\t\t\t\tselect(this.svg),\n\t\t\t\t{ useBBox: true }\n\t\t\t);\n\t\t\tconst chartSVGSelector = select(this.svg).attr('class');\n\t\t\tconst children = select(this.svg).selectAll(\n\t\t\t\t`.${chartSVGSelector} > svg`\n\t\t\t);\n\n\t\t\t// get the height of the children SVGs (spacers, titles, etc)\n\t\t\tlet childrenHeight = 0;\n\t\t\tchildren.nodes().forEach(function (childSVG) {\n\t\t\t\tchildrenHeight += Number(\n\t\t\t\t\tDOMUtils.getSVGElementSize(select(childSVG), {\n\t\t\t\t\t\tuseBBox: true,\n\t\t\t\t\t}).height\n\t\t\t\t);\n\t\t\t});\n\n\t\t\t// set the chart svg height to the children height\n\t\t\t// forcing the chart not to take up any more space than it requires\n\t\t\tchildrenHeight <= chartHeight\n\t\t\t\t? select(this.svg).attr('height', childrenHeight)\n\t\t\t\t: select(this.svg).attr('height', '100%');\n\t\t}\n\t}\n\n\tgetMainSVG() {\n\t\treturn this.svg;\n\t}\n\n\taddHolderListeners() {\n\t\tconst holder = this.getHolder();\n\n\t\tif (!holder) {\n\t\t\treturn;\n\t\t}\n\n\t\tselect(holder)\n\t\t\t.on('mouseover', () => {\n\t\t\t\t// Dispatch event\n\t\t\t\tthis.services.events.dispatchEvent(Events.Chart.MOUSEOVER);\n\t\t\t})\n\t\t\t.on('mouseout', () => {\n\t\t\t\t// Dispatch event\n\t\t\t\tthis.services.events.dispatchEvent(Events.Chart.MOUSEOUT);\n\t\t\t});\n\t}\n\n\taddResizeListener() {\n\t\tconst holder = this.getHolder();\n\n\t\tif (!holder) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Grab current dimensions of the chart holder\n\t\tlet containerWidth = holder.clientWidth;\n\t\tlet containerHeight = holder.clientHeight;\n\n\t\t// The resize callback function\n\t\tconst resizeCallback = Tools.debounce((entries, observer) => {\n\t\t\tif (!holder) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif (\n\t\t\t\tMath.abs(containerWidth - holder.clientWidth) > 1 ||\n\t\t\t\tMath.abs(containerHeight - holder.clientHeight) > 1\n\t\t\t) {\n\t\t\t\tcontainerWidth = holder.clientWidth;\n\t\t\t\tcontainerHeight = holder.clientHeight;\n\n\t\t\t\tthis.services.events.dispatchEvent(Events.Chart.RESIZE);\n\t\t\t}\n\t\t}, 12.5);\n\n\t\t// Observe the behaviour of resizing on the holder\n\t\tconst resizeObserver = new ResizeObserver(resizeCallback);\n\t\tresizeObserver.observe(holder);\n\t}\n}\n"]}
|
|
@@ -12,7 +12,7 @@ var __extends = (this && this.__extends) || (function () {
|
|
|
12
12
|
};
|
|
13
13
|
})();
|
|
14
14
|
// Internal Imports
|
|
15
|
-
import { Service } from
|
|
15
|
+
import { Service } from '../service';
|
|
16
16
|
var Events = /** @class */ (function (_super) {
|
|
17
17
|
__extends(Events, _super);
|
|
18
18
|
function Events() {
|
|
@@ -38,11 +38,11 @@ var Events = /** @class */ (function (_super) {
|
|
|
38
38
|
var newEvent;
|
|
39
39
|
if (eventDetail) {
|
|
40
40
|
newEvent = new CustomEvent(eventType, {
|
|
41
|
-
detail: eventDetail
|
|
41
|
+
detail: eventDetail,
|
|
42
42
|
});
|
|
43
43
|
}
|
|
44
44
|
else {
|
|
45
|
-
newEvent = document.createEvent(
|
|
45
|
+
newEvent = document.createEvent('Event');
|
|
46
46
|
newEvent.initEvent(eventType, false, true);
|
|
47
47
|
}
|
|
48
48
|
this.documentFragment.dispatchEvent(newEvent);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"events.js","sourceRoot":"","sources":["events.ts"],"names":[],"mappings":";;;;;;;;;;;;;AAAA,mBAAmB;AACnB,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAErC;IAA4B,0BAAO;IAAnC;;IAoCA,CAAC;IAhCA,qBAAI,GAAJ;QACC,sCAAsC;QACtC,IAAI,CAAC,gBAAgB,GAAG,QAAQ,CAAC,sBAAsB,EAAE,CAAC;IAC3D,CAAC;IAED,iCAAgB,GAAhB,UAAiB,IAAY,EAAE,QAAkB;QAChD,gDAAgD;QAChD,0EAA0E;QAC1E,2BAA2B;QAC3B,IAAI,CAAC,gBAAgB,CAAC,gBAAgB,CAAC,IAAI,EAAE,QAAe,CAAC,CAAC;IAC/D,CAAC;IAED,oCAAmB,GAAnB,UAAoB,IAAY,EAAE,QAAkB;QACnD,gDAAgD;QAChD,0EAA0E;QAC1E,2BAA2B;QAC3B,IAAI,CAAC,gBAAgB,CAAC,mBAAmB,CAAC,IAAI,EAAE,QAAe,CAAC,CAAC;IAClE,CAAC;IAED,8BAAa,GAAb,UAAc,SAAiB,EAAE,WAAoB;QACpD,IAAI,QAAQ,CAAC;QACb,IAAI,WAAW,EAAE;YAChB,QAAQ,GAAG,IAAI,WAAW,CAAC,SAAS,EAAE;gBACrC,MAAM,EAAE,WAAW;aACnB,CAAC,CAAC;SACH;aAAM;YACN,QAAQ,GAAG,QAAQ,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;YACzC,QAAQ,CAAC,SAAS,CAAC,SAAS,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;SAC3C;QAED,IAAI,CAAC,gBAAgB,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;IAC/C,CAAC;IACF,aAAC;AAAD,CAAC,AApCD,CAA4B,OAAO,GAoClC","sourcesContent":["// Internal Imports\nimport { Service } from
|
|
1
|
+
{"version":3,"file":"events.js","sourceRoot":"","sources":["events.ts"],"names":[],"mappings":";;;;;;;;;;;;;AAAA,mBAAmB;AACnB,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAErC;IAA4B,0BAAO;IAAnC;;IAoCA,CAAC;IAhCA,qBAAI,GAAJ;QACC,sCAAsC;QACtC,IAAI,CAAC,gBAAgB,GAAG,QAAQ,CAAC,sBAAsB,EAAE,CAAC;IAC3D,CAAC;IAED,iCAAgB,GAAhB,UAAiB,IAAY,EAAE,QAAkB;QAChD,gDAAgD;QAChD,0EAA0E;QAC1E,2BAA2B;QAC3B,IAAI,CAAC,gBAAgB,CAAC,gBAAgB,CAAC,IAAI,EAAE,QAAe,CAAC,CAAC;IAC/D,CAAC;IAED,oCAAmB,GAAnB,UAAoB,IAAY,EAAE,QAAkB;QACnD,gDAAgD;QAChD,0EAA0E;QAC1E,2BAA2B;QAC3B,IAAI,CAAC,gBAAgB,CAAC,mBAAmB,CAAC,IAAI,EAAE,QAAe,CAAC,CAAC;IAClE,CAAC;IAED,8BAAa,GAAb,UAAc,SAAiB,EAAE,WAAoB;QACpD,IAAI,QAAQ,CAAC;QACb,IAAI,WAAW,EAAE;YAChB,QAAQ,GAAG,IAAI,WAAW,CAAC,SAAS,EAAE;gBACrC,MAAM,EAAE,WAAW;aACnB,CAAC,CAAC;SACH;aAAM;YACN,QAAQ,GAAG,QAAQ,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;YACzC,QAAQ,CAAC,SAAS,CAAC,SAAS,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;SAC3C;QAED,IAAI,CAAC,gBAAgB,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;IAC/C,CAAC;IACF,aAAC;AAAD,CAAC,AApCD,CAA4B,OAAO,GAoClC","sourcesContent":["// Internal Imports\nimport { Service } from '../service';\n\nexport class Events extends Service {\n\t// DOM Event target\n\tdocumentFragment: DocumentFragment;\n\n\tinit() {\n\t\t// Setup the event fragment on the DOM\n\t\tthis.documentFragment = document.createDocumentFragment();\n\t}\n\n\taddEventListener(type: string, listener: Function) {\n\t\t// Need the casting to any here since typescript\n\t\t// Is expecting a function of type EventListenerOrEventListenerObject here\n\t\t// Which seems unreasonable\n\t\tthis.documentFragment.addEventListener(type, listener as any);\n\t}\n\n\tremoveEventListener(type: string, listener: Function) {\n\t\t// Need the casting to any here since typescript\n\t\t// Is expecting a function of type EventListenerOrEventListenerObject here\n\t\t// Which seems unreasonable\n\t\tthis.documentFragment.removeEventListener(type, listener as any);\n\t}\n\n\tdispatchEvent(eventType: string, eventDetail?: object) {\n\t\tlet newEvent;\n\t\tif (eventDetail) {\n\t\t\tnewEvent = new CustomEvent(eventType, {\n\t\t\t\tdetail: eventDetail,\n\t\t\t});\n\t\t} else {\n\t\t\tnewEvent = document.createEvent('Event');\n\t\t\tnewEvent.initEvent(eventType, false, true);\n\t\t}\n\n\t\tthis.documentFragment.dispatchEvent(newEvent);\n\t}\n}\n"]}
|