From 7cdeddfc0dc5188cafde9f2ff2e97f574028030e Mon Sep 17 00:00:00 2001 From: anuti Date: Mon, 13 Jun 2016 19:26:06 +0200 Subject: [PATCH 1/8] Create chart2.d.ts Chart JS library has been updated to version 2.0 although no one has yet created the proper definitions files. For this reason I propose my file while being aware that still needs lots of work. In addition to the usual bug there are shortcomings in the definition of many functions, as the official guide does not specify the parameter's types. in the hope that this can help someone. --- chartjs/chart2.d.ts | 392 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 392 insertions(+) create mode 100644 chartjs/chart2.d.ts diff --git a/chartjs/chart2.d.ts b/chartjs/chart2.d.ts new file mode 100644 index 0000000000..7ae02a6ebf --- /dev/null +++ b/chartjs/chart2.d.ts @@ -0,0 +1,392 @@ +/* TYPES */ +declare enum ChartType { + line, bar, radar, doughnut, polarArea, bubble +} +declare enum TimeUnit { + millisecond, second, minute, + hour, day, week, + month, quarter, year +} +interface ChartLegendItem { + text?: string; + fillStyle?: string; + hidden?: boolean; + lineCap?: string; + lineDash?: number[]; + lineDashOffset?: number; + lineJoin?: string; + lineWidth?: number; + strokeStyle?: string; +} +interface ChartTooltipItem { + xLabel?: string; + yLabel?: string; + datasetIndex?: number; + index?: number; +} +interface ChartTooltipCallback { + beforeTitle?: (item?: ChartTooltipItem[], data?: any) => void; + title?: (item?: ChartTooltipItem[], data?: any) => void; + afterTitle?: (item?: ChartTooltipItem[], data?: any) => void; + beforeBody?: (item?: ChartTooltipItem[], data?: any) => void; + beforeLabel?: (tooltipItem?: ChartTooltipItem, data?: any) => void; + label?: (tooltipItem?: ChartTooltipItem, data?: any) => void; + afterLabel?: (tooltipItem?: ChartTooltipItem, data?: any) => void; + afterBody?: (item?: ChartTooltipItem[], data?: any) => void; + beforeFooter?: (item?: ChartTooltipItem[], data?: any) => void; + footer?: (item?: ChartTooltipItem[], data?: any) => void; + afterfooter?: (item?: ChartTooltipItem[], data?: any) => void; +} +interface ChartAnimationParameter { + chartInstance?: any; + animationObject?: any; +} +interface ChartPoint { + x?: number; + y?: number; +} + +/* END */ + +/* Configuration */ +interface ChartConfiguration { + type?: string; + data?: ChartData; + options?: ChartOptions; +} + +/* END */ + +/* DATA */ +interface ChartData { + +} + +interface LinearChartData extends ChartData { + labels?: string[]; + datasets?: ChartDataSets[]; +} + +/* END */ + +/* Options */ +interface ChartOptions { + responsive?: boolean; + responsiveAnimationDuration?: number; + maintainAspectRatio?: boolean; + events?: string[]; + onClick?: (any?: any) => any; + title?: ChartTitleOptions; + legend?: ChartLegendOptions; + tooltip?: ChartTooltipOptions; + hover?: ChartHoverOptions; + animation?: ChartAnimationOptions; + elements?: ChartElementsOptions; + scales?: ChartScales; +} + +interface ChartFontOptions { + defaultFontColor?: string; + defaultFontFamily?: string; + defaultFontSize?: number; + defaultFontStyle?: string; +} + +interface ChartTitleOptions { + display?: boolean; + position?: string; + fullWdith?: boolean; + fontSize?: number; + fontFamily?: string; + fontColor?: string; + fontStyle?: string; + padding?: number; + text?: string; +} + +interface ChartLegendOptions { + display?: boolean; + position?: string; + fullWidth?: boolean; + onClick?: (event, legendItem) => void; + labels?: ChartLegendLabelOptions; +} + +interface ChartLegendLabelOptions { + boxWidth?: number; + fontSize?: number; + fontStyle?: number; + fontColor?: string; + fontFamily?: string; + padding?: number; + generateLabels?: (chart) => any; +} + +interface ChartTooltipOptions { + enabled?: boolean; + custom?: (a) => void; + mode?: string; + backgroundColor?: string; + titleFontFamily?: string; + titleFontSize?: number; + titleFontStyle?: string; + titleFontColor?: string; + titleSpacing?: number; + titleMarginBottom?: number; + bodyFontFamily?: string; + bodyFontSize?: number; + bodyFontStyle?: string; + bodyFontColor?: string; + bodySpacing?: number; + footerFontFamily?: string; + footerFontSize?: number; + footerFontStyle?: string; + footerFontColor?: string; + footerSpacing?: number; + footerMarginTop?: number; + xPadding?: number; + yPadding?: number; + caretSize?: number; + cornerRadius?: number; + multiKeyBackground?: string; + callbacks?: ChartTooltipCallback; +} + +interface ChartHoverOptions { + mode?: string; + animationDuration?: number; + onHover?: (active) => void; +} + +interface ChartAnimationObject { + currentStep?: number; + numSteps?: number; + easing?: string; + render?: (arg) => void; + onAnimationProgress?: (arg) => void; + onAnimationComplete?: (arg) => void; +} + +interface ChartAnimationOptions { + duration?: number; + easing?: string; + onProgress?: (chart) => void; + onComplete?: (chart) => void; +} + +interface ChartElementsOptions { + point?: ChartPointOptions; + line?: ChartLineOptions; + arg?: ChartArcOtpions; + rectangle?: ChartRectangleOptions; +} + +interface ChartArcOtpions { + backgroundColor?: string; + borderColor?: string; + borderWidth?: number; +} + +interface ChartLineOptions { + tension?: number; + backgroundColor?: string; + borderWidth?: number; + borderColor?: string; + borderCapStyle?: string; + borderDash?: any[]; + borderDashOffset?: number; + borderJoinStyle?: string; +} + +interface ChartPointOptions { + radius?: number; + pointStyle?: string; + backgroundColor?: string; + borderWidth?: number; + borderColor?: string; + hitRadius?: number; + hoverRadius?: number; + hoverBorderWidth?: number; +} + +interface ChartRectangleOptions { + backgroundColor?: string; + borderWidth?: number; + borderColor?: string; + borderSkipped?: string; +} +interface GridLineOptions { + display?: boolean; + color?: string; + lineWidth?: number; + drawBorder?: boolean; + drawOnChartArea?: boolean; + drawticks?: boolean; + tickMarkLength?: number; + zeroLineWidth?: number; + zeroLineColor?: string; + offsetGridLines?: boolean; +} + +interface ScaleTitleOptions { + display?: boolean; + labelString?: string; + fontColor?: string; + fontFamily?: string; + fontSize?: number; + fontStyle?: string; +} + +interface TickOptions { + autoSkip?: boolean; + callback?: (value, index, values) => string; + display?: boolean; + fontColor?: string; + fontFamily?: string; + fontSize?: number; + fontStyle?: string; + labelOffset?: number; + maxRotation?: number; + minRotation?: number; + mirror?: boolean; + padding?: number; + reverse?: boolean; + min?: any; + max?: any; +} +interface AngleLineOptions { + display?: boolean; + color?: string; + lineWidth?: number; +} + +interface PointLabelOptions { + callback?: (arg) => any; + fontColor?: string; + fontFamily?: string; + fontSize?: number; + fontStyle?: string; +} + +interface TickOptions { + backdropColor?: string; + backdropPaddingX?: number; + backdropPaddingY?: number; + maxTicksLimit?: number; + showLabelBackdrop?: boolean; +} +interface LinearTickOptions extends TickOptions { + beginAtZero?: boolean; + min?: number; + max?: number; + maxTicksLimit?: number; + stepSize?: number; + suggestedMin?: number; + suggestedMax?: number; +} + +interface LogarithmicTickOptions extends TickOptions { + min?: number; + max?: number; +} +/* END */ + +/* DATASETS */ +interface ChartDataSets { + backgroundColor?: string[]; + borderWidth?: number; + borderColor?: string[]; + borderCapStyle?: string; + borderDash?: number[]; + borderDashOffset?: number; + borderJoinStyle?: string; + data?: number[] | ChartPoint[]; + fill?: boolean; + label?: string; + lineTension?: number; + pointBorderColor?: string | string[]; + pointBackgroundColor?: string | string[]; + pointBorderWidth?: number | number[]; + pointRadius?: number | number[]; + pointHoverRadius?: number | number[]; + pointHitRadius?: number | number[]; + pointHoverBackgroundColor?: string | string[]; + pointHoverBorderColor?: string | string[]; + pointHoverBorderWidth?: number | number[]; + pointStyle?: string | string[] | HTMLImageElement | HTMLImageElement[]; + xAxisID?: string; + yAxisID?: string; +} +/* END */ + +/* SCALES */ +interface ChartScales { + type?: string; + display?: boolean; + position?: string; + beforeUpdate?: (scale?: any) => void; + beforeSetDimension?: (scale?: any) => void; + beforeDataLimits?: (scale?: any) => void; + beforeBuildTicks?: (scale?: any) => void; + beforeTickToLabelConversion?: (scale?: any) => void; + beforeCalculateTickRotation?: (scale?: any) => void; + beforeFit?: (scale?: any) => void; + afterUpdate?: (scale?: any) => void; + afterSetDimension?: (scale?: any) => void; + afterDataLimits?: (scale?: any) => void; + afterBuildTicks?: (scale?: any) => void; + afterTickToLabelConversion?: (scale?: any) => void; + afterCalculateTickRotation?: (scale?: any) => void; + afterFit?: (scale?: any) => void; + gridLines?: GridLineOptions; + scaleLabel?: ScaleTitleOptions; + ticks?: TickOptions; +} + +interface LinearScale extends ChartScales { + ticks?: LinearTickOptions; +} + + +interface LogarithmicScale extends ChartScales { + ticks?: LogarithmicTickOptions; +} + +interface TimeScale extends ChartScales { + displayFormats?: string; + isoWeekday?: boolean; + max?: string; + min?: string; + parser?: string | ((arg) => moment.MomentDateObject); + round?: string; + tooltipFormat?: string; + unit?: TimeUnit; + unitStepSize?: number; +} + +interface RadialLinearScale { + lineArc?: boolean; + angleLines?: AngleLineOptions; + pointLabels?: PointLabelOptions; + ticks?: TickOptions; +} +/* END */ + +declare var Chart: { + new (context: CanvasRenderingContext2D, options: ChartConfiguration): {}; + destroy: () => {}; + update: (duration, lazy) => {}; + render: (duration, lazy) => {}; + stop: () => {}; + resize: () => {}; + clear: () => {}; + toBase64: () => string; + generateLegend: () => {}; + getElementAtEvent: (e) => {}; + getElementsAtEvent: (e) => {}[]; + getDatasetAtEvent: (e) => {}[]; + + defaults: { + global: ChartOptions; + } +}; From 160f9f51a0662505e1671e87492097db9aedd1c3 Mon Sep 17 00:00:00 2001 From: anuti Date: Mon, 13 Jun 2016 20:36:25 +0200 Subject: [PATCH 2/8] Update chart2.d.ts --- chartjs/chart2.d.ts | 34 +++++++++++++++++----------------- 1 file changed, 17 insertions(+), 17 deletions(-) diff --git a/chartjs/chart2.d.ts b/chartjs/chart2.d.ts index 7ae02a6ebf..f80e8d9897 100644 --- a/chartjs/chart2.d.ts +++ b/chartjs/chart2.d.ts @@ -108,7 +108,7 @@ interface ChartLegendOptions { display?: boolean; position?: string; fullWidth?: boolean; - onClick?: (event, legendItem) => void; + onClick?: (event: any, legendItem: any) => void; labels?: ChartLegendLabelOptions; } @@ -119,12 +119,12 @@ interface ChartLegendLabelOptions { fontColor?: string; fontFamily?: string; padding?: number; - generateLabels?: (chart) => any; + generateLabels?: (chart: any) => any; } interface ChartTooltipOptions { enabled?: boolean; - custom?: (a) => void; + custom?: (a: any) => void; mode?: string; backgroundColor?: string; titleFontFamily?: string; @@ -155,23 +155,23 @@ interface ChartTooltipOptions { interface ChartHoverOptions { mode?: string; animationDuration?: number; - onHover?: (active) => void; + onHover?: (active: any) => void; } interface ChartAnimationObject { currentStep?: number; numSteps?: number; easing?: string; - render?: (arg) => void; - onAnimationProgress?: (arg) => void; - onAnimationComplete?: (arg) => void; + render?: (arg: any) => void; + onAnimationProgress?: (arg: any) => void; + onAnimationComplete?: (arg: any) => void; } interface ChartAnimationOptions { duration?: number; easing?: string; - onProgress?: (chart) => void; - onComplete?: (chart) => void; + onProgress?: (chart: any) => void; + onComplete?: (chart: any) => void; } interface ChartElementsOptions { @@ -239,7 +239,7 @@ interface ScaleTitleOptions { interface TickOptions { autoSkip?: boolean; - callback?: (value, index, values) => string; + callback?: (value: any, index: any, values: any) => string; display?: boolean; fontColor?: string; fontFamily?: string; @@ -261,7 +261,7 @@ interface AngleLineOptions { } interface PointLabelOptions { - callback?: (arg) => any; + callback?: (arg: any) => any; fontColor?: string; fontFamily?: string; fontSize?: number; @@ -357,7 +357,7 @@ interface TimeScale extends ChartScales { isoWeekday?: boolean; max?: string; min?: string; - parser?: string | ((arg) => moment.MomentDateObject); + parser?: string | ((arg: any) => moment.MomentDateObject); round?: string; tooltipFormat?: string; unit?: TimeUnit; @@ -375,16 +375,16 @@ interface RadialLinearScale { declare var Chart: { new (context: CanvasRenderingContext2D, options: ChartConfiguration): {}; destroy: () => {}; - update: (duration, lazy) => {}; - render: (duration, lazy) => {}; + update: (duration: any, lazy: any) => {}; + render: (duration: any, lazy: any) => {}; stop: () => {}; resize: () => {}; clear: () => {}; toBase64: () => string; generateLegend: () => {}; - getElementAtEvent: (e) => {}; - getElementsAtEvent: (e) => {}[]; - getDatasetAtEvent: (e) => {}[]; + getElementAtEvent: (e: any) => {}; + getElementsAtEvent: (e: any) => {}[]; + getDatasetAtEvent: (e: any) => {}[]; defaults: { global: ChartOptions; From cfafb5a2f70a744102cdc9b9ce6abaa9adfe4d7a Mon Sep 17 00:00:00 2001 From: anuti Date: Mon, 13 Jun 2016 20:40:02 +0200 Subject: [PATCH 3/8] Update chart2.d.ts --- chartjs/chart2.d.ts | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/chartjs/chart2.d.ts b/chartjs/chart2.d.ts index f80e8d9897..b3ac83f33d 100644 --- a/chartjs/chart2.d.ts +++ b/chartjs/chart2.d.ts @@ -1,4 +1,4 @@ -/* TYPES */ +// TYPES declare enum ChartType { line, bar, radar, doughnut, polarArea, bubble } @@ -46,18 +46,18 @@ interface ChartPoint { y?: number; } -/* END */ +// END -/* Configuration */ +// Configuration interface ChartConfiguration { type?: string; data?: ChartData; options?: ChartOptions; } -/* END */ +// END -/* DATA */ +// DATA interface ChartData { } @@ -67,9 +67,9 @@ interface LinearChartData extends ChartData { datasets?: ChartDataSets[]; } -/* END */ +// END -/* Options */ +// Options interface ChartOptions { responsive?: boolean; responsiveAnimationDuration?: number; @@ -289,9 +289,9 @@ interface LogarithmicTickOptions extends TickOptions { min?: number; max?: number; } -/* END */ +// END -/* DATASETS */ +// DATASETS interface ChartDataSets { backgroundColor?: string[]; borderWidth?: number; @@ -317,9 +317,9 @@ interface ChartDataSets { xAxisID?: string; yAxisID?: string; } -/* END */ +// END -/* SCALES */ +// SCALES interface ChartScales { type?: string; display?: boolean; @@ -370,7 +370,7 @@ interface RadialLinearScale { pointLabels?: PointLabelOptions; ticks?: TickOptions; } -/* END */ +// END declare var Chart: { new (context: CanvasRenderingContext2D, options: ChartConfiguration): {}; From 40a3ecb89d7dccb88b1dd65279fca6e635724d4b Mon Sep 17 00:00:00 2001 From: anuti Date: Fri, 1 Jul 2016 11:46:00 +0200 Subject: [PATCH 4/8] Update chart2.d.ts --- chartjs/chart2.d.ts | 16 ---------------- 1 file changed, 16 deletions(-) diff --git a/chartjs/chart2.d.ts b/chartjs/chart2.d.ts index b3ac83f33d..7c30802074 100644 --- a/chartjs/chart2.d.ts +++ b/chartjs/chart2.d.ts @@ -1,4 +1,3 @@ -// TYPES declare enum ChartType { line, bar, radar, doughnut, polarArea, bubble } @@ -46,18 +45,12 @@ interface ChartPoint { y?: number; } -// END - -// Configuration interface ChartConfiguration { type?: string; data?: ChartData; options?: ChartOptions; } -// END - -// DATA interface ChartData { } @@ -67,9 +60,6 @@ interface LinearChartData extends ChartData { datasets?: ChartDataSets[]; } -// END - -// Options interface ChartOptions { responsive?: boolean; responsiveAnimationDuration?: number; @@ -289,9 +279,7 @@ interface LogarithmicTickOptions extends TickOptions { min?: number; max?: number; } -// END -// DATASETS interface ChartDataSets { backgroundColor?: string[]; borderWidth?: number; @@ -317,9 +305,7 @@ interface ChartDataSets { xAxisID?: string; yAxisID?: string; } -// END -// SCALES interface ChartScales { type?: string; display?: boolean; @@ -347,7 +333,6 @@ interface LinearScale extends ChartScales { ticks?: LinearTickOptions; } - interface LogarithmicScale extends ChartScales { ticks?: LogarithmicTickOptions; } @@ -370,7 +355,6 @@ interface RadialLinearScale { pointLabels?: PointLabelOptions; ticks?: TickOptions; } -// END declare var Chart: { new (context: CanvasRenderingContext2D, options: ChartConfiguration): {}; From 517371c47a937d9fb3859e9b694b9f60e17e5cba Mon Sep 17 00:00:00 2001 From: anuti Date: Fri, 1 Jul 2016 12:06:12 +0200 Subject: [PATCH 5/8] Update chart2.d.ts --- chartjs/chart2.d.ts | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/chartjs/chart2.d.ts b/chartjs/chart2.d.ts index 7c30802074..5ea06e9ba6 100644 --- a/chartjs/chart2.d.ts +++ b/chartjs/chart2.d.ts @@ -1,3 +1,8 @@ +// Type definitions for Chart.js +// Project: https://github.com/nnnick/Chart.js +// Definitions by: Alberto Nuti +// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped + declare enum ChartType { line, bar, radar, doughnut, polarArea, bubble } From 02c79d8200ba886ffe4590a89e4ced8e29ee51ab Mon Sep 17 00:00:00 2001 From: anuti Date: Fri, 1 Jul 2016 12:08:22 +0200 Subject: [PATCH 6/8] Update chart2.d.ts --- chartjs/chart2.d.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/chartjs/chart2.d.ts b/chartjs/chart2.d.ts index 5ea06e9ba6..2d77f4c502 100644 --- a/chartjs/chart2.d.ts +++ b/chartjs/chart2.d.ts @@ -347,7 +347,7 @@ interface TimeScale extends ChartScales { isoWeekday?: boolean; max?: string; min?: string; - parser?: string | ((arg: any) => moment.MomentDateObject); + parser?: string | ((arg: any) => any); round?: string; tooltipFormat?: string; unit?: TimeUnit; From ebb8c657d2b4c92e676b1620ab4d3014e44b8995 Mon Sep 17 00:00:00 2001 From: anuti Date: Mon, 11 Jul 2016 11:45:30 +0200 Subject: [PATCH 7/8] Rename chart2.d.ts to chartjs.d.ts --- chartjs/{chart2.d.ts => chartjs.d.ts} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename chartjs/{chart2.d.ts => chartjs.d.ts} (100%) diff --git a/chartjs/chart2.d.ts b/chartjs/chartjs.d.ts similarity index 100% rename from chartjs/chart2.d.ts rename to chartjs/chartjs.d.ts From 24a0e0c16b45e2270d84fb4900f6ecfe4f46ed37 Mon Sep 17 00:00:00 2001 From: anuti Date: Thu, 21 Jul 2016 13:53:32 +0200 Subject: [PATCH 8/8] Rename chartjs/chartjs.d.ts to chart.js/chart.js.d.ts --- chartjs/chartjs.d.ts => chart.js/chart.js.d.ts | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename chartjs/chartjs.d.ts => chart.js/chart.js.d.ts (100%) diff --git a/chartjs/chartjs.d.ts b/chart.js/chart.js.d.ts similarity index 100% rename from chartjs/chartjs.d.ts rename to chart.js/chart.js.d.ts