@vaadin/charts 22.0.1 → 23.0.0-alpha3
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/package.json +4 -4
- package/src/vaadin-chart-series.d.ts +1 -1
- package/src/vaadin-chart-series.js +2 -2
- package/src/vaadin-chart.d.ts +1 -1
- package/src/vaadin-chart.js +39 -32
- package/theme/lumo/vaadin-chart-styles.js +84 -0
- package/theme/lumo/vaadin-chart.js +2 -0
- package/theme/material/vaadin-chart-styles.js +84 -0
- package/theme/material/vaadin-chart.js +2 -0
- package/theme/vaadin-chart-base-theme.js +1028 -0
- package/vaadin-chart.js +1 -2
- package/theme/vaadin-chart-default-theme.js +0 -1010
- package/vaadin-chart-default-theme.js +0 -1
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@vaadin/charts",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "23.0.0-alpha3",
|
|
4
4
|
"publishConfig": {
|
|
5
5
|
"access": "public"
|
|
6
6
|
},
|
|
@@ -33,9 +33,9 @@
|
|
|
33
33
|
],
|
|
34
34
|
"dependencies": {
|
|
35
35
|
"@polymer/polymer": "^3.0.0",
|
|
36
|
-
"@vaadin/component-base": "
|
|
36
|
+
"@vaadin/component-base": "23.0.0-alpha3",
|
|
37
37
|
"@vaadin/vaadin-license-checker": "^2.1.0",
|
|
38
|
-
"@vaadin/vaadin-themable-mixin": "
|
|
38
|
+
"@vaadin/vaadin-themable-mixin": "23.0.0-alpha3",
|
|
39
39
|
"highcharts": "9.2.2"
|
|
40
40
|
},
|
|
41
41
|
"devDependencies": {
|
|
@@ -43,5 +43,5 @@
|
|
|
43
43
|
"@vaadin/testing-helpers": "^0.3.2",
|
|
44
44
|
"sinon": "^9.2.4"
|
|
45
45
|
},
|
|
46
|
-
"gitHead": "
|
|
46
|
+
"gitHead": "490037919a9e054cc002c1b3be0c94a1603e1a44"
|
|
47
47
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* @license
|
|
3
|
-
* Copyright (c) 2015 -
|
|
3
|
+
* Copyright (c) 2015 - 2022 Vaadin Ltd.
|
|
4
4
|
* This program is available under Commercial Vaadin Developer License 4.0, available at https://vaadin.com/license/cvdl-4.0.
|
|
5
5
|
*/
|
|
6
6
|
import { PointOptionsObject, Series, SeriesOptionsType } from 'highcharts';
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* @license
|
|
3
|
-
* Copyright (c) 2015 -
|
|
3
|
+
* Copyright (c) 2015 - 2022 Vaadin Ltd.
|
|
4
4
|
* This program is available under Commercial Vaadin Developer License 4.0, available at https://vaadin.com/license/cvdl-4.0.
|
|
5
5
|
*/
|
|
6
6
|
import { PolymerElement } from '@polymer/polymer/polymer-element.js';
|
|
@@ -371,7 +371,7 @@ class ChartSeries extends PolymerElement {
|
|
|
371
371
|
if (parent && parent instanceof Chart) {
|
|
372
372
|
if (unit && !parent.__getAxis(unit)) {
|
|
373
373
|
const title = { title: { text: unit } };
|
|
374
|
-
parent.__addAxis(
|
|
374
|
+
parent.__addAxis({ id: unit, axisGenerated: true, ...title });
|
|
375
375
|
}
|
|
376
376
|
series.update({ yAxis: unit || 0 });
|
|
377
377
|
|
package/src/vaadin-chart.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* @license
|
|
3
|
-
* Copyright (c) 2015 -
|
|
3
|
+
* Copyright (c) 2015 - 2022 Vaadin Ltd.
|
|
4
4
|
* This program is available under Commercial Vaadin Developer License 4.0, available at https://vaadin.com/license/cvdl-4.0.
|
|
5
5
|
*/
|
|
6
6
|
import { Axis, Chart as HighchartsChart, ExtremesObject, Options, Point, Series } from 'highcharts';
|
package/src/vaadin-chart.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* @license
|
|
3
|
-
* Copyright (c) 2015 -
|
|
3
|
+
* Copyright (c) 2015 - 2022 Vaadin Ltd.
|
|
4
4
|
* This program is available under Commercial Vaadin Developer License 4.0, available at https://vaadin.com/license/cvdl-4.0.
|
|
5
5
|
*/
|
|
6
6
|
import '@vaadin/vaadin-license-checker/vaadin-license-checker.js';
|
|
@@ -30,7 +30,7 @@ import { ThemableMixin } from '@vaadin/vaadin-themable-mixin/vaadin-themable-mix
|
|
|
30
30
|
import { ChartSeries } from './vaadin-chart-series.js';
|
|
31
31
|
|
|
32
32
|
/** @private */
|
|
33
|
-
export
|
|
33
|
+
export function deepMerge(target, source) {
|
|
34
34
|
const isObject = (item) => item && typeof item === 'object' && !Array.isArray(item);
|
|
35
35
|
|
|
36
36
|
if (isObject(source) && isObject(target)) {
|
|
@@ -48,15 +48,17 @@ export const deepMerge = function deepMerge(target, source) {
|
|
|
48
48
|
}
|
|
49
49
|
|
|
50
50
|
return target;
|
|
51
|
-
}
|
|
51
|
+
}
|
|
52
52
|
|
|
53
53
|
['exportChart', 'exportChartLocal', 'getSVG'].forEach((methodName) => {
|
|
54
|
-
|
|
54
|
+
/* eslint-disable no-invalid-this */
|
|
55
|
+
Highcharts.wrap(Highcharts.Chart.prototype, methodName, function (proceed, ...args) {
|
|
55
56
|
Highcharts.fireEvent(this, 'beforeExport');
|
|
56
|
-
const result = proceed.apply(this,
|
|
57
|
+
const result = proceed.apply(this, args);
|
|
57
58
|
Highcharts.fireEvent(this, 'afterExport');
|
|
58
59
|
return result;
|
|
59
60
|
});
|
|
61
|
+
/* eslint-enable no-invalid-this */
|
|
60
62
|
});
|
|
61
63
|
|
|
62
64
|
/**
|
|
@@ -259,11 +261,10 @@ class Chart extends ElementMixin(ThemableMixin(PolymerElement)) {
|
|
|
259
261
|
}
|
|
260
262
|
|
|
261
263
|
/** @private */
|
|
262
|
-
static __callHighchartsFunction(functionName, redrawCharts) {
|
|
264
|
+
static __callHighchartsFunction(functionName, redrawCharts, ...args) {
|
|
263
265
|
const functionToCall = Highcharts[functionName];
|
|
264
|
-
const argumentsForCall = Array.prototype.splice.call(arguments, 2);
|
|
265
266
|
if (functionToCall && typeof functionToCall === 'function') {
|
|
266
|
-
functionToCall.apply(this.configuration,
|
|
267
|
+
functionToCall.apply(this.configuration, args);
|
|
267
268
|
if (redrawCharts) {
|
|
268
269
|
Highcharts.charts.forEach((c) => c.redraw());
|
|
269
270
|
}
|
|
@@ -527,7 +528,7 @@ class Chart extends ElementMixin(ThemableMixin(PolymerElement)) {
|
|
|
527
528
|
return;
|
|
528
529
|
}
|
|
529
530
|
|
|
530
|
-
const options =
|
|
531
|
+
const options = { ...this.options, ...this._jsonConfigurationBuffer };
|
|
531
532
|
this._jsonConfigurationBuffer = null;
|
|
532
533
|
this.__initChart(options);
|
|
533
534
|
this.__addChildObserver();
|
|
@@ -541,7 +542,7 @@ class Chart extends ElementMixin(ThemableMixin(PolymerElement)) {
|
|
|
541
542
|
* @return {!Options}
|
|
542
543
|
*/
|
|
543
544
|
get options() {
|
|
544
|
-
const options =
|
|
545
|
+
const options = { ...this._baseConfig };
|
|
545
546
|
deepMerge(options, this.additionalOptions);
|
|
546
547
|
|
|
547
548
|
if (this.type) {
|
|
@@ -636,7 +637,7 @@ class Chart extends ElementMixin(ThemableMixin(PolymerElement)) {
|
|
|
636
637
|
if (this.chart3d) {
|
|
637
638
|
options.chart = options.chart || {};
|
|
638
639
|
|
|
639
|
-
options.chart.options3d =
|
|
640
|
+
options.chart.options3d = { ...this._baseChart3d, ...options.chart.options3d };
|
|
640
641
|
}
|
|
641
642
|
|
|
642
643
|
return options;
|
|
@@ -1037,6 +1038,7 @@ class Chart extends ElementMixin(ThemableMixin(PolymerElement)) {
|
|
|
1037
1038
|
/** @private */
|
|
1038
1039
|
__initChart(options) {
|
|
1039
1040
|
this.__initEventsListeners(options);
|
|
1041
|
+
this.__updateStyledMode(options);
|
|
1040
1042
|
if (this.timeline) {
|
|
1041
1043
|
this.configuration = Highcharts.stockChart(this.$.chart, options);
|
|
1042
1044
|
} else {
|
|
@@ -1044,6 +1046,12 @@ class Chart extends ElementMixin(ThemableMixin(PolymerElement)) {
|
|
|
1044
1046
|
}
|
|
1045
1047
|
}
|
|
1046
1048
|
|
|
1049
|
+
/** @private */
|
|
1050
|
+
__updateStyledMode(options) {
|
|
1051
|
+
const styledMode = options.chart.styledMode;
|
|
1052
|
+
this.$.chart.toggleAttribute('styled-mode', !!styledMode);
|
|
1053
|
+
}
|
|
1054
|
+
|
|
1047
1055
|
/** @protected */
|
|
1048
1056
|
disconnectedCallback() {
|
|
1049
1057
|
super.disconnectedCallback();
|
|
@@ -1147,7 +1155,7 @@ class Chart extends ElementMixin(ThemableMixin(PolymerElement)) {
|
|
|
1147
1155
|
}
|
|
1148
1156
|
|
|
1149
1157
|
if (resetConfiguration) {
|
|
1150
|
-
const initialOptions =
|
|
1158
|
+
const initialOptions = { ...this.options, ...this._jsonConfigurationBuffer };
|
|
1151
1159
|
|
|
1152
1160
|
this.__initChart(initialOptions);
|
|
1153
1161
|
|
|
@@ -1212,8 +1220,10 @@ class Chart extends ElementMixin(ThemableMixin(PolymerElement)) {
|
|
|
1212
1220
|
const targetProperty = jsonConfiguration[attr];
|
|
1213
1221
|
if (attr.indexOf('_fn_') === 0 && (typeof targetProperty === 'string' || targetProperty instanceof String)) {
|
|
1214
1222
|
try {
|
|
1223
|
+
// eslint-disable-next-line no-eval
|
|
1215
1224
|
jsonConfiguration[attr.substr(4)] = eval('(' + targetProperty + ')');
|
|
1216
1225
|
} catch (e) {
|
|
1226
|
+
// eslint-disable-next-line no-eval
|
|
1217
1227
|
jsonConfiguration[attr.substr(4)] = eval('(function(){' + targetProperty + '})');
|
|
1218
1228
|
}
|
|
1219
1229
|
delete jsonConfiguration[attr];
|
|
@@ -1320,7 +1330,7 @@ class Chart extends ElementMixin(ThemableMixin(PolymerElement)) {
|
|
|
1320
1330
|
|
|
1321
1331
|
const shadowStyles = this.shadowRoot.querySelectorAll('style');
|
|
1322
1332
|
for (let i = 0; i < shadowStyles.length; i++) {
|
|
1323
|
-
effectiveCss
|
|
1333
|
+
effectiveCss += shadowStyles[i].textContent;
|
|
1324
1334
|
}
|
|
1325
1335
|
|
|
1326
1336
|
// Strip off host selectors that target individual instances
|
|
@@ -1332,7 +1342,7 @@ class Chart extends ElementMixin(ThemableMixin(PolymerElement)) {
|
|
|
1332
1342
|
// Zoom out a bit to avoid clipping the chart's edge on paper
|
|
1333
1343
|
effectiveCss =
|
|
1334
1344
|
effectiveCss +
|
|
1335
|
-
|
|
1345
|
+
'body {' +
|
|
1336
1346
|
' -moz-transform: scale(0.9, 0.9);' + // Mozilla
|
|
1337
1347
|
' zoom: 0.9;' + // Others
|
|
1338
1348
|
' zoom: 90%;' + // Webkit
|
|
@@ -1609,12 +1619,11 @@ class Chart extends ElementMixin(ThemableMixin(PolymerElement)) {
|
|
|
1609
1619
|
if (chart3d) {
|
|
1610
1620
|
config.update({
|
|
1611
1621
|
chart: {
|
|
1612
|
-
options3d:
|
|
1613
|
-
|
|
1614
|
-
this.
|
|
1615
|
-
|
|
1616
|
-
|
|
1617
|
-
)
|
|
1622
|
+
options3d: {
|
|
1623
|
+
...this._baseChart3d,
|
|
1624
|
+
...(this.additionalOptions && this.additionalOptions.chart && this.additionalOptions.chart.options3d),
|
|
1625
|
+
enabled: true
|
|
1626
|
+
}
|
|
1618
1627
|
}
|
|
1619
1628
|
});
|
|
1620
1629
|
} else {
|
|
@@ -1655,30 +1664,28 @@ class Chart extends ElementMixin(ThemableMixin(PolymerElement)) {
|
|
|
1655
1664
|
}
|
|
1656
1665
|
|
|
1657
1666
|
/** @private */
|
|
1658
|
-
__callChartFunction(functionName) {
|
|
1667
|
+
__callChartFunction(functionName, ...args) {
|
|
1659
1668
|
if (this.configuration) {
|
|
1660
1669
|
const functionToCall = this.configuration[functionName];
|
|
1661
|
-
const argumentsForCall = Array.prototype.splice.call(arguments, 1);
|
|
1662
1670
|
if (functionToCall && typeof functionToCall === 'function') {
|
|
1663
|
-
functionToCall.apply(this.configuration,
|
|
1671
|
+
functionToCall.apply(this.configuration, args);
|
|
1664
1672
|
}
|
|
1665
1673
|
}
|
|
1666
1674
|
}
|
|
1667
1675
|
|
|
1668
1676
|
/** @private */
|
|
1669
|
-
__callSeriesFunction(functionName, seriesIndex) {
|
|
1677
|
+
__callSeriesFunction(functionName, seriesIndex, ...args) {
|
|
1670
1678
|
if (this.configuration && this.configuration.series[seriesIndex]) {
|
|
1671
1679
|
const series = this.configuration.series[seriesIndex];
|
|
1672
1680
|
const functionToCall = series[functionName];
|
|
1673
|
-
const argumentsForCall = Array.prototype.splice.call(arguments, 2);
|
|
1674
1681
|
if (functionToCall && typeof functionToCall === 'function') {
|
|
1675
|
-
functionToCall.apply(series,
|
|
1682
|
+
functionToCall.apply(series, args);
|
|
1676
1683
|
}
|
|
1677
1684
|
}
|
|
1678
1685
|
}
|
|
1679
1686
|
|
|
1680
1687
|
/** @private */
|
|
1681
|
-
__callAxisFunction(functionName, axisCategory, axisIndex) {
|
|
1688
|
+
__callAxisFunction(functionName, axisCategory, axisIndex, ...args) {
|
|
1682
1689
|
/*
|
|
1683
1690
|
* axisCategory:
|
|
1684
1691
|
* 0 - xAxis
|
|
@@ -1701,20 +1708,21 @@ class Chart extends ElementMixin(ThemableMixin(PolymerElement)) {
|
|
|
1701
1708
|
case 3:
|
|
1702
1709
|
axes = this.configuration.colorAxis;
|
|
1703
1710
|
break;
|
|
1711
|
+
default:
|
|
1712
|
+
break;
|
|
1704
1713
|
}
|
|
1705
1714
|
if (axes && axes[axisIndex]) {
|
|
1706
1715
|
const axis = axes[axisIndex];
|
|
1707
1716
|
const functionToCall = axis[functionName];
|
|
1708
|
-
const argumentsForCall = Array.prototype.splice.call(arguments, 3);
|
|
1709
1717
|
if (functionToCall && typeof functionToCall === 'function') {
|
|
1710
|
-
functionToCall.apply(axis,
|
|
1718
|
+
functionToCall.apply(axis, args);
|
|
1711
1719
|
}
|
|
1712
1720
|
}
|
|
1713
1721
|
}
|
|
1714
1722
|
}
|
|
1715
1723
|
|
|
1716
1724
|
/** @private */
|
|
1717
|
-
__callPointFunction(functionName, seriesIndex, pointIndex) {
|
|
1725
|
+
__callPointFunction(functionName, seriesIndex, pointIndex, ...args) {
|
|
1718
1726
|
if (
|
|
1719
1727
|
this.configuration &&
|
|
1720
1728
|
this.configuration.series[seriesIndex] &&
|
|
@@ -1722,9 +1730,8 @@ class Chart extends ElementMixin(ThemableMixin(PolymerElement)) {
|
|
|
1722
1730
|
) {
|
|
1723
1731
|
const point = this.configuration.series[seriesIndex].data[pointIndex];
|
|
1724
1732
|
const functionToCall = point[functionName];
|
|
1725
|
-
const argumentsForCall = Array.prototype.splice.call(arguments, 3);
|
|
1726
1733
|
if (functionToCall && typeof functionToCall === 'function') {
|
|
1727
|
-
functionToCall.apply(point,
|
|
1734
|
+
functionToCall.apply(point, args);
|
|
1728
1735
|
}
|
|
1729
1736
|
}
|
|
1730
1737
|
}
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
import '../vaadin-chart-base-theme.js';
|
|
2
|
+
import '@vaadin/vaadin-lumo-styles/color.js';
|
|
3
|
+
import '@vaadin/vaadin-lumo-styles/typography.js';
|
|
4
|
+
import { css, registerStyles } from '@vaadin/vaadin-themable-mixin/register-styles.js';
|
|
5
|
+
|
|
6
|
+
const chartColors = css`
|
|
7
|
+
:host {
|
|
8
|
+
--vaadin-charts-color-0: #5ac2f7;
|
|
9
|
+
--vaadin-charts-color-1: #1676f3;
|
|
10
|
+
--vaadin-charts-color-2: #ff7d94;
|
|
11
|
+
--vaadin-charts-color-3: #c5164e;
|
|
12
|
+
--vaadin-charts-color-4: #15c15d;
|
|
13
|
+
--vaadin-charts-color-5: #0e8151;
|
|
14
|
+
--vaadin-charts-color-6: #c18ed2;
|
|
15
|
+
--vaadin-charts-color-7: #9233b3;
|
|
16
|
+
--vaadin-charts-color-8: #fda253;
|
|
17
|
+
--vaadin-charts-color-9: #e24932;
|
|
18
|
+
--vaadin-charts-color-positive: var(--vaadin-charts-color-4, #15c15d);
|
|
19
|
+
--vaadin-charts-color-negative: var(--vaadin-charts-color-9, #e24932);
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
:host([theme~='gradient']) {
|
|
23
|
+
--vaadin-charts-color-0: #1676f3;
|
|
24
|
+
--vaadin-charts-color-1: #13bbf0;
|
|
25
|
+
--vaadin-charts-color-2: #1ee;
|
|
26
|
+
--vaadin-charts-color-3: #0cd9bf;
|
|
27
|
+
--vaadin-charts-color-4: #06be81;
|
|
28
|
+
--vaadin-charts-color-5: #00a344;
|
|
29
|
+
--vaadin-charts-color-6: #41c639;
|
|
30
|
+
--vaadin-charts-color-7: #8aed2c;
|
|
31
|
+
--vaadin-charts-color-8: #c0e632;
|
|
32
|
+
--vaadin-charts-color-9: #f6db3a;
|
|
33
|
+
--vaadin-charts-color-positive: var(--vaadin-charts-color-6);
|
|
34
|
+
--vaadin-charts-color-negative: var(--vaadin-charts-color-1);
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
:host([theme~='monotone']) {
|
|
38
|
+
--vaadin-charts-color-0: #1676f3;
|
|
39
|
+
--vaadin-charts-color-1: #4795f5;
|
|
40
|
+
--vaadin-charts-color-2: #71b0f7;
|
|
41
|
+
--vaadin-charts-color-3: #a0cef9;
|
|
42
|
+
--vaadin-charts-color-4: #bce0fa;
|
|
43
|
+
--vaadin-charts-color-5: #a8d8ed;
|
|
44
|
+
--vaadin-charts-color-6: #7fc3dd;
|
|
45
|
+
--vaadin-charts-color-7: #54adcc;
|
|
46
|
+
--vaadin-charts-color-8: #2b99bc;
|
|
47
|
+
--vaadin-charts-color-9: #0284ac;
|
|
48
|
+
--vaadin-charts-color-positive: var(--vaadin-charts-color-3);
|
|
49
|
+
--vaadin-charts-color-negative: var(--vaadin-charts-color-9);
|
|
50
|
+
}
|
|
51
|
+
`;
|
|
52
|
+
|
|
53
|
+
const chartTheme = css`
|
|
54
|
+
:host {
|
|
55
|
+
--vaadin-charts-background: var(--lumo-base-color);
|
|
56
|
+
--vaadin-charts-title-label: var(--lumo-header-text-color);
|
|
57
|
+
--vaadin-charts-axis-title: var(--lumo-secondary-text-color);
|
|
58
|
+
--vaadin-charts-axis-label: var(--lumo-secondary-text-color);
|
|
59
|
+
--vaadin-charts-data-label: var(--lumo-body-text-color);
|
|
60
|
+
--vaadin-charts-secondary-label: var(--lumo-secondary-text-color);
|
|
61
|
+
--vaadin-charts-axis-line: var(--lumo-contrast-5pct);
|
|
62
|
+
--vaadin-charts-grid-line: var(--lumo-contrast-20pct);
|
|
63
|
+
--vaadin-charts-disabled-label: var(--lumo-disabled-text-color);
|
|
64
|
+
--vaadin-charts-contrast: var(--lumo-contrast);
|
|
65
|
+
--vaadin-charts-contrast-5pct: var(--lumo-contrast-5pct);
|
|
66
|
+
--vaadin-charts-contrast-10pct: var(--lumo-contrast-10pct);
|
|
67
|
+
--vaadin-charts-contrast-20pct: var(--lumo-contrast-20pct);
|
|
68
|
+
--vaadin-charts-contrast-60pct: var(--lumo-contrast-60pct);
|
|
69
|
+
--vaadin-charts-tooltip-background: var(--lumo-base-color);
|
|
70
|
+
--vaadin-charts-tooltip-border-color: inherit;
|
|
71
|
+
--vaadin-charts-button-label: var(--lumo-primary-text-color);
|
|
72
|
+
--vaadin-charts-button-background: var(--lumo-contrast-5pct);
|
|
73
|
+
--vaadin-charts-button-hover-background: var(--lumo-primary-color-10pct);
|
|
74
|
+
--vaadin-charts-button-active-label: var(--lumo-primary-contrast-color);
|
|
75
|
+
--vaadin-charts-button-active-background: var(--lumo-primary-color);
|
|
76
|
+
--vaadin-charts-xaxis-line-width: 0;
|
|
77
|
+
--vaadin-charts-tooltip-background-opacity: 1;
|
|
78
|
+
font-family: var(--lumo-font-family);
|
|
79
|
+
}
|
|
80
|
+
`;
|
|
81
|
+
|
|
82
|
+
registerStyles('vaadin-chart', [chartColors, chartTheme], { moduleId: 'lumo-chart' });
|
|
83
|
+
|
|
84
|
+
export { chartColors, chartTheme };
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
import '../vaadin-chart-base-theme.js';
|
|
2
|
+
import '@vaadin/vaadin-material-styles/color.js';
|
|
3
|
+
import '@vaadin/vaadin-material-styles/typography.js';
|
|
4
|
+
import { css, registerStyles } from '@vaadin/vaadin-themable-mixin/register-styles.js';
|
|
5
|
+
|
|
6
|
+
const chartColors = css`
|
|
7
|
+
:host {
|
|
8
|
+
--vaadin-charts-color-0: #6200ee;
|
|
9
|
+
--vaadin-charts-color-1: #2fa69a;
|
|
10
|
+
--vaadin-charts-color-2: #ec611f;
|
|
11
|
+
--vaadin-charts-color-3: #fec02f;
|
|
12
|
+
--vaadin-charts-color-4: #ff4193;
|
|
13
|
+
--vaadin-charts-color-5: #007dee;
|
|
14
|
+
--vaadin-charts-color-6: #b064fc;
|
|
15
|
+
--vaadin-charts-color-7: #0c5d56;
|
|
16
|
+
--vaadin-charts-color-8: #42c6ff;
|
|
17
|
+
--vaadin-charts-color-9: #b00020;
|
|
18
|
+
--vaadin-charts-color-positive: var(--vaadin-charts-color-1, #2fa69a);
|
|
19
|
+
--vaadin-charts-color-negative: var(--vaadin-charts-color-9, #b00020);
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
:host([theme~='gradient']) {
|
|
23
|
+
--vaadin-charts-color-0: #6200ee;
|
|
24
|
+
--vaadin-charts-color-1: #6962e8;
|
|
25
|
+
--vaadin-charts-color-2: #619fe1;
|
|
26
|
+
--vaadin-charts-color-3: #2fbfd3;
|
|
27
|
+
--vaadin-charts-color-4: #03dac6;
|
|
28
|
+
--vaadin-charts-color-5: #5bd091;
|
|
29
|
+
--vaadin-charts-color-6: #acc65e;
|
|
30
|
+
--vaadin-charts-color-7: #ffbc2b;
|
|
31
|
+
--vaadin-charts-color-8: #fe9940;
|
|
32
|
+
--vaadin-charts-color-9: #fd695e;
|
|
33
|
+
--vaadin-charts-color-positive: var(--vaadin-charts-color-6);
|
|
34
|
+
--vaadin-charts-color-negative: var(--vaadin-charts-color-9);
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
:host([theme~='monotone']) {
|
|
38
|
+
--vaadin-charts-color-0: #6200ee;
|
|
39
|
+
--vaadin-charts-color-1: #7f39fb;
|
|
40
|
+
--vaadin-charts-color-2: #985eff;
|
|
41
|
+
--vaadin-charts-color-3: #bb86fc;
|
|
42
|
+
--vaadin-charts-color-4: #dbb2ff;
|
|
43
|
+
--vaadin-charts-color-5: #ecddfd;
|
|
44
|
+
--vaadin-charts-color-6: #9fe3eb;
|
|
45
|
+
--vaadin-charts-color-7: #03dac6;
|
|
46
|
+
--vaadin-charts-color-8: #00c4b4;
|
|
47
|
+
--vaadin-charts-color-9: #01a299;
|
|
48
|
+
--vaadin-charts-color-positive: var(--vaadin-charts-color-8);
|
|
49
|
+
--vaadin-charts-color-negative: var(--vaadin-charts-color-0);
|
|
50
|
+
}
|
|
51
|
+
`;
|
|
52
|
+
|
|
53
|
+
const chartTheme = css`
|
|
54
|
+
:host {
|
|
55
|
+
--vaadin-charts-background: var(--material-background-color);
|
|
56
|
+
--vaadin-charts-title-label: var(--material-body-text-color);
|
|
57
|
+
--vaadin-charts-axis-title: var(--material-secondary-text-color);
|
|
58
|
+
--vaadin-charts-axis-label: var(--material-secondary-text-color);
|
|
59
|
+
--vaadin-charts-data-label: var(--material-body-text-color);
|
|
60
|
+
--vaadin-charts-secondary-label: var(--material-secondary-text-color);
|
|
61
|
+
--vaadin-charts-axis-line: var(--vaadin-charts-contrast-5pct);
|
|
62
|
+
--vaadin-charts-grid-line: var(--vaadin-charts-contrast-10pct);
|
|
63
|
+
--vaadin-charts-disabled-label: var(--material-disabled-text-color);
|
|
64
|
+
--vaadin-charts-contrast: var(--material-body-text-color);
|
|
65
|
+
--vaadin-charts-contrast-5pct: var(--material-secondary-background-color);
|
|
66
|
+
--vaadin-charts-contrast-10pct: var(--material-divider-color);
|
|
67
|
+
--vaadin-charts-contrast-20pct: var(--material-disabled-color);
|
|
68
|
+
--vaadin-charts-contrast-60pct: var(--material-secondary-text-color);
|
|
69
|
+
--vaadin-charts-tooltip-background: var(--material-background-color);
|
|
70
|
+
--vaadin-charts-tooltip-border-color: var(--material-background-color);
|
|
71
|
+
--vaadin-charts-button-label: var(--material-primary-color);
|
|
72
|
+
--vaadin-charts-button-background: var(--material-background-color);
|
|
73
|
+
--vaadin-charts-button-hover-background: var(--material-secondary-background-color);
|
|
74
|
+
--vaadin-charts-button-active-label: var(--material-primary-contrast-color);
|
|
75
|
+
--vaadin-charts-button-active-background: var(--material-primary-color);
|
|
76
|
+
--vaadin-charts-xaxis-line-width: 0;
|
|
77
|
+
--vaadin-charts-tooltip-background-opacity: 1;
|
|
78
|
+
font-family: var(--material-font-family);
|
|
79
|
+
}
|
|
80
|
+
`;
|
|
81
|
+
|
|
82
|
+
registerStyles('vaadin-chart', [chartColors, chartTheme], { moduleId: 'material-chart' });
|
|
83
|
+
|
|
84
|
+
export { chartColors, chartTheme };
|