@triptease/tt-bar-chart 0.1.0 → 0.1.1
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/dist/src/TtBarChart.d.ts
CHANGED
|
@@ -1,9 +1,11 @@
|
|
|
1
1
|
import { LitElement } from 'lit';
|
|
2
2
|
import { Dataset } from './types.js';
|
|
3
3
|
export declare class TtBarChart extends LitElement {
|
|
4
|
-
labels
|
|
5
|
-
datasets
|
|
6
|
-
direction
|
|
4
|
+
labels: string[];
|
|
5
|
+
datasets: Dataset[];
|
|
6
|
+
direction: 'horizontal' | 'vertical';
|
|
7
|
+
xAxisLabel?: string;
|
|
8
|
+
yAxisLabel?: string;
|
|
7
9
|
showGrid: boolean;
|
|
8
10
|
showLegend: boolean;
|
|
9
11
|
showSeriesLabel: boolean;
|
package/dist/src/TtBarChart.js
CHANGED
|
@@ -7,6 +7,8 @@ import { formatter, jsonConvertor } from './utils.js';
|
|
|
7
7
|
let TtBarChart = class TtBarChart extends LitElement {
|
|
8
8
|
constructor() {
|
|
9
9
|
super(...arguments);
|
|
10
|
+
this.labels = [];
|
|
11
|
+
this.datasets = [];
|
|
10
12
|
this.direction = 'horizontal';
|
|
11
13
|
this.showGrid = false;
|
|
12
14
|
this.showLegend = false;
|
|
@@ -25,12 +27,11 @@ let TtBarChart = class TtBarChart extends LitElement {
|
|
|
25
27
|
}
|
|
26
28
|
firstUpdated() {
|
|
27
29
|
const divElement = this.renderRoot.querySelector(`#${this.id}`);
|
|
28
|
-
// Should never happen; this is just to satisfy Typescript
|
|
29
30
|
if (!divElement) {
|
|
30
31
|
throw new Error('No div element');
|
|
31
32
|
}
|
|
32
33
|
const chart = echarts.init(divElement);
|
|
33
|
-
const series =
|
|
34
|
+
const series = this.datasets.map((dataset) => ({
|
|
34
35
|
name: dataset.label,
|
|
35
36
|
type: 'bar',
|
|
36
37
|
data: dataset.data,
|
|
@@ -46,11 +47,15 @@ let TtBarChart = class TtBarChart extends LitElement {
|
|
|
46
47
|
show: this.showLegend,
|
|
47
48
|
},
|
|
48
49
|
xAxis: {
|
|
50
|
+
name: this.xAxisLabel,
|
|
51
|
+
nameLocation: "center",
|
|
49
52
|
type: this.direction === 'horizontal' ? 'value' : 'category',
|
|
50
53
|
data: this.direction === 'horizontal' ? undefined : this.labels,
|
|
51
54
|
splitLine: { show: this.showGrid },
|
|
52
55
|
},
|
|
53
56
|
yAxis: {
|
|
57
|
+
name: this.yAxisLabel,
|
|
58
|
+
nameLocation: "center",
|
|
54
59
|
type: this.direction === 'horizontal' ? 'category' : 'value',
|
|
55
60
|
data: this.direction === 'horizontal' ? this.labels : undefined,
|
|
56
61
|
splitLine: { show: this.showGrid },
|
|
@@ -77,6 +82,12 @@ __decorate([
|
|
|
77
82
|
__decorate([
|
|
78
83
|
property({ type: String })
|
|
79
84
|
], TtBarChart.prototype, "direction", void 0);
|
|
85
|
+
__decorate([
|
|
86
|
+
property({ type: String, attribute: 'x-axis-label' })
|
|
87
|
+
], TtBarChart.prototype, "xAxisLabel", void 0);
|
|
88
|
+
__decorate([
|
|
89
|
+
property({ type: String, attribute: 'y-axis-label' })
|
|
90
|
+
], TtBarChart.prototype, "yAxisLabel", void 0);
|
|
80
91
|
__decorate([
|
|
81
92
|
property({ type: Boolean, attribute: 'show-grid' })
|
|
82
93
|
], TtBarChart.prototype, "showGrid", void 0);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TtBarChart.js","sourceRoot":"","sources":["../../src/TtBarChart.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,KAAK,CAAC;AACvC,gFAAgF;AAChF,OAAO,KAAK,OAAO,MAAM,SAAS,CAAC;AACnC,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAE5D,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAG/C,IAAM,UAAU,GAAhB,MAAM,UAAW,SAAQ,UAAU;IAAnC;;
|
|
1
|
+
{"version":3,"file":"TtBarChart.js","sourceRoot":"","sources":["../../src/TtBarChart.ts"],"names":[],"mappings":"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","sourcesContent":["import { html, LitElement } from 'lit';\n// @ts-expect-error Known error - https://github.com/apache/echarts/issues/21250\nimport * as echarts from 'echarts';\nimport { customElement, property } from 'lit/decorators.js';\nimport { Dataset } from './types.js';\nimport { formatter, jsonConvertor } from './utils.js';\n\n@customElement('tt-bar-chart')\nexport class TtBarChart extends LitElement {\n @property({ type: Array, converter: jsonConvertor, attribute: 'categories' })\n labels: string[] = [];\n\n @property({ type: Array, converter: jsonConvertor })\n datasets: Dataset[] = [];\n\n @property({ type: String })\n direction: 'horizontal' | 'vertical' = 'horizontal';\n\n @property({ type: String, attribute: 'x-axis-label' })\n xAxisLabel?: string;\n\n @property({ type: String, attribute: 'y-axis-label' })\n yAxisLabel?: string;\n\n @property({ type: Boolean, attribute: 'show-grid' })\n showGrid: boolean = false;\n\n @property({ type: Boolean, attribute: 'show-legend' })\n showLegend: boolean = false;\n\n @property({ type: Boolean, attribute: 'show-series-label' })\n showSeriesLabel: boolean = false;\n\n @property({ type: Boolean, attribute: 'show-tooltip' })\n showTooltip: boolean = false;\n\n private getSeriesColor = (dataset: Dataset) => {\n if (this.datasets && this.datasets.length > 1) return undefined;\n if (dataset.color) return dataset.color;\n\n return '#4d35a1';\n };\n\n render() {\n return html` <div id=${this.id} style=\"width: 100%; height:100%;\"></div> `;\n }\n\n protected firstUpdated() {\n const divElement = this.renderRoot.querySelector(`#${this.id}`) as HTMLDivElement;\n\n if (!divElement) {\n throw new Error('No div element');\n }\n\n const chart = echarts.init(divElement);\n\n const series: echarts.SeriesOption[] = this.datasets.map((dataset) => ({\n name: dataset.label,\n type: 'bar',\n data: dataset.data,\n color: this.getSeriesColor(dataset),\n label: {\n show: this.showSeriesLabel,\n position: 'right',\n formatter: ({ value }: { value: number }) => formatter.format(value),\n },\n }));\n\n const option: echarts.EChartsOption = {\n legend: {\n show: this.showLegend,\n },\n xAxis: {\n name: this.xAxisLabel,\n nameLocation: \"center\",\n type: this.direction === 'horizontal' ? 'value' : 'category',\n data: this.direction === 'horizontal' ? undefined : this.labels,\n splitLine: { show: this.showGrid },\n },\n yAxis: {\n name: this.yAxisLabel,\n nameLocation: \"center\",\n type: this.direction === 'horizontal' ? 'category' : 'value',\n data: this.direction === 'horizontal' ? this.labels : undefined,\n splitLine: { show: this.showGrid },\n },\n ...(this.showTooltip && {\n tooltip: {\n trigger: 'axis',\n axisPointer: {\n type: 'shadow',\n },\n },\n }),\n series,\n };\n\n chart.setOption(option);\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'tt-bar-chart': TtBarChart;\n }\n}\n"]}
|
package/dist/src/types.d.ts
CHANGED
|
@@ -1,9 +1,11 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
interface TTBarChartAttributes {
|
|
3
3
|
id: string;
|
|
4
|
-
categories
|
|
5
|
-
datasets
|
|
4
|
+
categories?: string;
|
|
5
|
+
datasets?: string;
|
|
6
6
|
direction?: 'horizontal' | 'vertical';
|
|
7
|
+
'x-axis-label'?: string;
|
|
8
|
+
'y-axis-label'?: string;
|
|
7
9
|
color?: string;
|
|
8
10
|
'show-grid'?: boolean;
|
|
9
11
|
'show-legend'?: boolean;
|
package/dist/src/types.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"","sourcesContent":["import React from 'react';\n\ninterface TTBarChartAttributes {\n id: string;\n categories
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"","sourcesContent":["import React from 'react';\n\ninterface TTBarChartAttributes {\n id: string;\n categories?: string;\n datasets?: string;\n direction?: 'horizontal' | 'vertical';\n 'x-axis-label'?: string;\n 'y-axis-label'?: string;\n color?: string;\n 'show-grid'?: boolean;\n 'show-legend'?: boolean;\n 'show-series-label'?: boolean;\n 'show-tooltip'?: boolean;\n}\n\nexport interface Dataset {\n label: string;\n data: number[];\n color?: string;\n}\n\ndeclare global {\n namespace JSX {\n interface IntrinsicElements {\n 'tt-bar-chart': React.DetailedHTMLProps<React.HTMLAttributes<HTMLElement> & TTBarChartAttributes, HTMLElement>;\n }\n }\n}\n"]}
|
package/package.json
CHANGED