Merge pull request #26513 from alexdor/master

[chart.js] Add getDatasetMeta fucntion to chart
This commit is contained in:
Paul van Brenk
2018-06-26 13:31:55 -07:00
committed by GitHub
2 changed files with 76 additions and 28 deletions

View File

@@ -1,18 +1,18 @@
import { Chart, ChartData, Point } from 'chart.js';
import { Chart, ChartData, Point } from "chart.js";
// alternative:
// import chartjs = require('chart.js');
// => chartjs.Chart
const chart: Chart = new Chart(new CanvasRenderingContext2D(), {
type: 'bar',
type: "bar",
data: {
labels: ['group 1'],
labels: ["group 1"],
datasets: [
{
backgroundColor: '#000000',
backgroundColor: "#000000",
borderWidth: 1,
label: 'test',
label: "test",
data: [1]
}
]
@@ -22,7 +22,7 @@ const chart: Chart = new Chart(new CanvasRenderingContext2D(), {
intersect: true
},
onHover(ev: MouseEvent, points: any[]) {
return;
return;
},
title: {
text: ["foo", "bar"]
@@ -35,21 +35,23 @@ const chart: Chart = new Chart(new CanvasRenderingContext2D(), {
caretPadding: 2,
displayColors: true,
borderColor: "rgba(0,0,0,0)",
borderWidth: 1,
borderWidth: 1
},
scales: {
xAxes: [{
ticks: {
callback: Math.floor
},
gridLines: {
display: false,
borderDash: [5, 15],
borderDashOffset: 2,
zeroLineBorderDash: [5, 15],
zeroLineBorderDashOffset: 2
xAxes: [
{
ticks: {
callback: Math.floor
},
gridLines: {
display: false,
borderDash: [5, 15],
borderDashOffset: 2,
zeroLineBorderDash: [5, 15],
zeroLineBorderDashOffset: 2
}
}
}]
]
},
legend: {
display: true,
@@ -58,11 +60,13 @@ const chart: Chart = new Chart(new CanvasRenderingContext2D(), {
padding: 40
}
},
devicePixelRatio: 2,
devicePixelRatio: 2
}
});
chart.update();
console.log(chart.getDatasetMeta(0));
console.log(chart.ctx && chart.ctx.font);
console.log(chart.canvas && chart.canvas.tagName);
if (chart.chartArea) {

View File

@@ -13,6 +13,7 @@
// Ken Elkabany <https://github.com/braincore>
// Slavik Nychkalo <https://github.com/gebeto>
// Francesco Benedetto <https://github.com/frabnt>
// Alexandros Dorodoulis <https://github.com/alexdor>
// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped
// TypeScript Version: 2.3
@@ -35,8 +36,9 @@ declare class Chart {
getElementAtEvent: (e: any) => {};
getElementsAtEvent: (e: any) => Array<{}>;
getDatasetAtEvent: (e: any) => Array<{}>;
ctx: CanvasRenderingContext2D|null;
canvas: HTMLCanvasElement|null;
getDatasetMeta: (index: number) => Meta;
ctx: CanvasRenderingContext2D | null;
canvas: HTMLCanvasElement | null;
chartArea: Chart.ChartArea;
static pluginService: PluginServiceStatic;
static plugins: PluginServiceStatic;
@@ -100,6 +102,48 @@ interface Size {
width: number;
}
interface Meta {
type: Chart.ChartType;
data: MetaData[];
dataset?: Chart.ChartDataSets;
controller: { [key: string]: any; };
hidden?: boolean;
total?: string;
xAxisID?: string;
yAxisID?: string;
"$filler"?: { [key: string]: any; };
}
interface MetaData {
_chart: Chart;
_datasetIndex: number;
_index: number;
_model: Model;
_start?: any;
_view: Model;
_xScale: Chart.ChartScales;
_yScale: Chart.ChartScales;
hidden?: boolean;
}
interface Model {
backgroundColor: string;
borderColor: string;
borderWidth?: number;
controlPointNextX: number;
controlPointNextY: number;
controlPointPreviousX: number;
controlPointPreviousY: number;
hitRadius: number;
pointStyle: string;
radius: string;
skip?: boolean;
steppedLine?: undefined;
tension: number;
x: number;
y: number;
}
declare namespace Chart {
type ChartType = 'line' | 'bar' | 'horizontalBar' | 'radar' | 'doughnut' | 'polarArea' | 'bubble' | 'pie';
@@ -298,7 +342,7 @@ declare namespace Chart {
}
interface ChartTooltipsStaticConfiguration {
positioners: {[mode: string]: ChartTooltipPositioner};
positioners: { [mode: string]: ChartTooltipPositioner };
}
type ChartTooltipPositioner = (elements: any[], eventPosition: Point) => Point;
@@ -372,14 +416,14 @@ declare namespace Chart {
}
interface ChartLayoutOptions {
padding?: ChartLayoutPaddingObject | number;
padding?: ChartLayoutPaddingObject | number;
}
interface ChartLayoutPaddingObject {
top?: number;
right?: number;
bottom?: number;
left?: number;
top?: number;
right?: number;
bottom?: number;
left?: number;
}
interface GridLineOptions {
@@ -415,7 +459,7 @@ declare namespace Chart {
backdropPaddingX?: number;
backdropPaddingY?: number;
beginAtZero?: boolean;
callback?(value: any, index: any, values: any): string|number;
callback?(value: any, index: any, values: any): string | number;
display?: boolean;
fontColor?: ChartColor;
fontFamily?: string;