diff --git a/types/dc/index.d.ts b/types/dc/index.d.ts index 9100acdc26..c242c7215f 100644 --- a/types/dc/index.d.ts +++ b/types/dc/index.d.ts @@ -3,6 +3,7 @@ // Definitions by: hans windhoff // matt traynham // matthias jobst +// kiran mathew mohan // Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped import * as d3 from "d3"; @@ -63,12 +64,13 @@ declare namespace dc { } export interface Events { - trigger(fn: () => void, delay?: number): void; + trigger(closure: () => void, delay?: number): void; } export interface Errors { Exception(msg: string): void; - InvalidStateException(msg: string): void; + InvalidStateException(): void; + BadArgumentException(): void; } export interface Filter { @@ -76,21 +78,28 @@ declare namespace dc { } export interface Filters { - RangedFilter(low: any, high: any): Filter; - TwoDimensionalFilter(arr: Array): Filter; - RangedTwoDimensionalFilter(arr: Array): Filter; + RangedFilter(low: number, high: number): Filter; + TwoDimensionalFilter(filter: Array): Filter; + RangedTwoDimensionalFilter(arr: Array>): Filter; + HierarchyFilter(path: string): Filter; } export interface Logger { enableDebugLog: boolean; - warn(msg: string): void; - debug(msg: string): void; + warn(msg: string): Logger; + warnOnce(msg: string): Logger; + debug(msg: string): Logger; deprecate(fn: Function, msg: string): void; + annotate(fn: Function, msg: string): Logger; + } + + export interface Config { + defaultColors(colors?: Array): Array | Config; } export interface Printers { filters(filters: Array): string; - filter(filter: any): string; + filter(filter: Printers['filters'] | any | Array): string; } export interface Round { @@ -101,17 +110,19 @@ declare namespace dc { export interface Utils { printSingleValue(filter: any): string; - add(l: any, r: any): any; - subtract(l: any, r: any): any; + add(l: Date | number, r: string | number, t?: Function | string): Date | number; + subtract(l: Date | number, r: string | number, t?: Function | string): Date | number; isNumber(n: any): boolean; isFloat(n: any): boolean; isInteger(n: any): boolean; isNegligible(n: any): boolean; - clamp(n: number, min: number, max: number): number; + clamp(val: number, min: number, max: number): number; + constant(x: any): () => any; uniqueId(): number; nameToId(name: string): string; - appendOrSelect(parent: d3.Selection, selector: string, tag: any): d3.Selection; + appendOrSelect(parent: d3.Selection, selector: string, tag: string): d3.Selection; safeNumber(n: any): number; + arraysEqual(a1: Array | null, a2: Array | null): boolean; } export interface Legend { @@ -121,10 +132,19 @@ declare namespace dc { itemHeight: IGetSet; horizontal: IGetSet; legendWidth: IGetSet; - legendText: IGetSet; itemWidth: IGetSet; autoItemWidth: IGetSet; - render: () => void; + legendText: IGetSet; + maxItems: IGetSet; + } + + export interface HtmlLegend { + container: IGetSet; + legendItemClass: IGetSet; + highlightSelected: IGetSet; + horizontal: IGetSet; + legendText: IGetSet; + maxItems: IGetSet; } export interface BaseMixin { @@ -265,11 +285,25 @@ declare namespace dc { export interface PieChart extends CapMixin, ColorMixin, BaseMixin { slicesCap: IGetSet; + externalRadiusPadding: IGetSet; innerRadius: IGetSet; radius: IGetSet; cx: IGetSet; cy: IGetSet; minAngleForLabel: IGetSet; + emptyTitle: IGetSet; + externalLabels: IGetSet; + drawPaths: IGetSet; + } + + export interface SunburstChart extends CapMixin, ColorMixin, BaseMixin { + innerRadius: IGetSet; + radius: IGetSet; + cx: IGetSet; + cy: IGetSet; + minAngleForLabel: IGetSet; + emptyTitle: IGetSet; + externalLabels: IGetSet; } export interface BarChart extends StackMixin, CoordinateGridMixin { @@ -292,8 +326,9 @@ declare namespace dc { defined: IGetSet, LineChart>; dashStyle: IGetSet, LineChart>; renderArea: IGetSet; + xyTipsOn: IGetSet; dotRadius: IGetSet; - renderDataPoints: IGetSet; + renderDataPoints: IGetSet; } export interface DataCountWidgetHTML { @@ -307,19 +342,25 @@ declare namespace dc { } export interface DataTableWidget extends BaseMixin { + section: IGetSet; size: IGetSet; - showGroups: IGetSet; + beginSlice: IGetSet; + endSlice: IGetSet; columns: IGetSet | Columns>, DataTableWidget>; sortBy: IGetSet, DataTableWidget>; - order: IGetSet<(a: any, b: any) => number, DataTableWidget>; + order: IGetSet; + showSections: IGetSet; } export interface DataGridWidget extends BaseMixin { - size: IGetSet; - html: IGetSet, DataTableWidget>; - htmlGroup: IGetSet, DataTableWidget>; - sortBy: IGetSet, DataTableWidget>; - order: IGetSet<(a: any, b: any) => number, DataTableWidget>; + section: IGetSet; + beginSlice: IGetSet; + endSlice: IGetSet; + size: IGetSet; + html: IGetSet, DataGridWidget>; + htmlSection: IGetSet, DataGridWidget>; + sortBy: IGetSet, DataGridWidget>; + order: IGetSet<(a: any, b: any) => number, DataGridWidget>; } export interface BubbleChart extends BubbleMixin, CoordinateGridMixin { @@ -328,13 +369,14 @@ declare namespace dc { export interface ICompositeChart extends CoordinateGridMixin { useRightAxisGridLines: IGetSet>; - childOptions: IGetSet>; - rightYAxisLabel: IGetSet>; + childOptions: IGetSet>; + rightYAxisLabel(rightYAxisLabel?: string, padding?: number): IGetSet>; compose: IGetSet>, ICompositeChart>; children(): Array>; shareColors: IGetSet>; shareTitle: IGetSet>; rightY: IGetSet<(n: any) => any, ICompositeChart>; + alignYAxes: IGetSet>; rightYAxis: IGetSet>; } @@ -354,22 +396,22 @@ declare namespace dc { } export interface GeoChoroplethChart extends ColorMixin, BaseMixin { - overlayGeoJson(json: any, name: string, keyAccessor: Accessor): void; + overlayGeoJson(json: any, name: string, keyAccessor: Accessor): GeoChoroplethChart; projection: IGetSet; geoJsons(): Array; geoPath(): d3.geo.Path; - removeGeoJson(name: string): void; + removeGeoJson(name: string): GeoChoroplethChart; } export interface BubbleOverlayChart extends BubbleMixin, BaseMixin { - point(name: string, x: number, y: number): void; + point(name: string, x: number, y: number): BubbleOverlayChart; } export interface RowChart extends CapMixin, MarginMixin, ColorMixin, BaseMixin { x: IGetSet, RowChart>; renderTitleLabel: IGetSet; xAxis: IGetSet; - fixedBarHeight: IGetSet; + fixedBarHeight: IGetSet; gap: IGetSet; elasticX: IGetSet; labelOffsetX: IGetSet; @@ -378,11 +420,22 @@ declare namespace dc { } export interface ScatterPlot extends CoordinateGridMixin { + resetSvg(): d3.svg.Symbol; + resizeCanvas(): void; + useCanvas: IGetSet; + canvas: IGetSet, ScatterPlot>; existenceAccessor: IGetSet, ScatterPlot>; symbol: IGetSet, ScatterPlot>; + customSymbol: IGetSet; symbolSize: IGetSet; highlightedSize: IGetSet; + excludedSize: IGetSet; + excludedColor: IGetSet; + excludedOpacity: IGetSet; hiddenSize: IGetSet; + emptyColor: IGetSet; + emptyOpacity: IGetSet; + nonemptyOpacity: IGetSet; } export interface NumberDisplayWidgetHTML { @@ -400,18 +453,28 @@ declare namespace dc { export interface HeatMap extends ColorMixin, MarginMixin, BaseMixin { colsLabel: IGetSet, HeatMap>; rowsLabel: IGetSet, HeatMap>; - rows: IGetSet, HeatMap>; - cols: IGetSet, HeatMap>; + rows: IGetSet, HeatMap>; + rowOrdering: IGetSet, HeatMap>; + cols: IGetSet, HeatMap>; + colOrdering: IGetSet, HeatMap>; boxOnClick: IGetSet<(d: any) => void, HeatMap>; xAxisOnClick: IGetSet<(d: any) => void, HeatMap>; yAxisOnClick: IGetSet<(d: any) => void, HeatMap>; + xBorderRadius: IGetSet; + yBorderRadius: IGetSet; } export interface BoxPlot extends CoordinateGridMixin { boxPadding: IGetSet; outerPadding: IGetSet; - boxWidth: IGetSet; + boxWidth: IGetSet; tickFormat: IGetSet, BoxPlot>; + yRangePadding: IGetSet; + renderDataPoints: IGetSet; + dataOpacity: IGetSet; + dataWidthPortion: IGetSet; + showOutliers: IGetSet; + boldOutliers: IGetSet; } // https://github.com/dc-js/dc.js/blob/master/src/select-menu.js @@ -424,6 +487,20 @@ declare namespace dc { numberVisible: IGetSet; } + export interface TextFilterWidget extends BaseMixin { + normalize: IGetSet; + placeHolder: IGetSet; + filterFunctionFactory: IGetSet; + } + + export interface CBoxMenu extends BaseMixin { + order: IGetSet; + promptText: IGetSet; + filterDisplayed: IGetSet; + multiple: IGetSet; + promptValue: IGetSet; + } + export interface ChartRegistry { has(chart: BaseMixin): boolean; register(chart: BaseMixin, group?: string): void; @@ -443,25 +520,28 @@ declare namespace dc { renderAll(group?: string): void; redrawAll(group?: string): void; disableTransitions: boolean; - transition(selections: d3.Selection, duration: number, callback: (s: d3.Selection) => void): void; + transition(selections: d3.Selection, duration?: number | Function, delay?: number | Function, name?: string): d3.Transition | d3.Selection; + optionalTransition(enable: boolean, duration?: number | Function, delay?: number | Function, name?: string): (selection: d3.Selection) => Base['transition'] | d3.Selection; + afterTransition(transition: d3.Transition, callback: (transition: d3.Transition) => void): void; units: Units; - events: Events; - errors: Errors; + round: Round; + override(obj: any, functionName: string, newFunction: Function): void; instanceOfChart(object: any): boolean; - logger: Logger; - override(object: any, fnName: string, newFn: Function): void; + errors: Errors; + dateFormat: d3.time.Format; printers: Printers; pluck(n: string, f?: Accessor): Accessor; - round: Round; utils: Utils; - + logger: Logger; + config: Config; + events: Events; + filters: Filters; // http://dc-js.github.io/dc.js/docs/html/core.js.html, Line 20 version: string; - legend(): Legend; - - pieChart(parent: string, chartGroup?: string): PieChart; + pieChart(parent: string | Node | d3.Selection, chartGroup?: string): PieChart; + sunburstChart(parent: string | Node | d3.Selection, chartGroup?: string): SunburstChart; // http://dc-js.github.io/dc.js/docs/html/dc.barChart.html barChart(parent: string | CompositeChart, chartGroup?: string): BarChart; // http://dc-js.github.io/dc.js/docs/html/dc.lineChart.html @@ -475,10 +555,14 @@ declare namespace dc { geoChoroplethChart(parent: string, chartGroup?: string): GeoChoroplethChart; bubbleOverlayChart(parent: string, chartGroup?: string): BubbleOverlayChart; rowChart(parent: string, chartGroup?: string): RowChart; + legend(): Legend; + htmlLegend(): HtmlLegend; scatterPlot(parent: string, chartGroup?: string): ScatterPlot; numberDisplay(parent: string, chartGroup?: string): NumberDisplayWidget; heatMap(parent: string, chartGroup?: string): HeatMap; boxPlot(parent: string, chartGroup?: string): BoxPlot; selectMenu(parent: string, chartGroup?: string): SelectMenu; + textFilterWidget(parent: string, chartGroup?: string): TextFilterWidget; + cboxMenu(parent: string, chartGroup?: string): CBoxMenu; } }