diff --git a/crossfilter/crossfilter-tests.ts b/crossfilter/crossfilter-tests.ts index 745ed3aa48..fb80ddd9bb 100644 --- a/crossfilter/crossfilter-tests.ts +++ b/crossfilter/crossfilter-tests.ts @@ -24,6 +24,11 @@ var payments = crossfilter([ {date: "2011-11-14T17:29:52Z", quantity: 1, total: 200, tip: 100, type: "visa"} ]); +var total_payments : number = payments.groupAll().reduce( + function(p,v) { return p+=v.total; }, + function(p,v) { return p-=v.total; }, + function() { return 0; } ).value(); + var paymentsByTotal = payments.dimension((d) => d.total); // Filters diff --git a/crossfilter/crossfilter.d.ts b/crossfilter/crossfilter.d.ts index c98d208672..9e506aa43e 100644 --- a/crossfilter/crossfilter.d.ts +++ b/crossfilter/crossfilter.d.ts @@ -58,12 +58,12 @@ declare module CrossFilter { (array: T[], lo: number, hi: number): T[]; } - export interface GroupAll { - reduce(add: (p: TValue, v: T) => TValue, remove: (p: TValue, v: T) => TValue, initial: () => TValue): GroupAll; - reduceCount(): GroupAll; - reduceSum(value: Selector): GroupAll; - dispose(): GroupAll; - value(): T; + export interface GroupAll { + reduce(add: (p: TValue, v: T) => TValue, remove: (p: TValue, v: T) => TValue, initial: () => TValue): GroupAll; + reduceCount(): GroupAll; + reduceSum(value: Selector): GroupAll; + dispose(): GroupAll; + value(): TValue; } export interface Grouping { @@ -87,7 +87,8 @@ declare module CrossFilter { add(records: T[]): CrossFilter; remove(): CrossFilter; size(): number; - groupAll(): GroupAll; + GroupAll(): GroupAll; + groupAll(): GroupAll; dimension(value: (data: T) => TDimension): Dimension; } @@ -103,8 +104,9 @@ declare module CrossFilter { bottom(k: number): T[]; dispose(): void; group(): Group; - group(groupValue: (data: TDimension) => TGroup): Group; - groupAll(): GroupAll; + group(groupValue: (data: TDimension) => TGroup): Group; + groupAll(): GroupAll; + groupAll(): GroupAll; } }