Merge pull request #8273 from drarmstr/crossfilter-groupAll

Crossfilter group all
This commit is contained in:
Horiuchi_H
2016-02-29 14:59:56 +09:00
2 changed files with 16 additions and 9 deletions
+5
View File
@@ -24,6 +24,11 @@ var payments = crossfilter<Payment>([
{date: "2011-11-14T17:29:52Z", quantity: 1, total: 200, tip: 100, type: "visa"}
]);
var total_payments : number = payments.groupAll<number>().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
+11 -9
View File
@@ -58,12 +58,12 @@ declare module CrossFilter {
(array: T[], lo: number, hi: number): T[];
}
export interface GroupAll<T> {
reduce<TValue>(add: (p: TValue, v: T) => TValue, remove: (p: TValue, v: T) => TValue, initial: () => TValue): GroupAll<T>;
reduceCount(): GroupAll<T>;
reduceSum(value: Selector<T>): GroupAll<T>;
dispose(): GroupAll<T>;
value(): T;
export interface GroupAll<T, TValue> {
reduce<TValue>(add: (p: TValue, v: T) => TValue, remove: (p: TValue, v: T) => TValue, initial: () => TValue): GroupAll<T, TValue>;
reduceCount(): GroupAll<T, TValue>;
reduceSum(value: Selector<T>): GroupAll<T, TValue>;
dispose(): GroupAll<T, TValue>;
value(): TValue;
}
export interface Grouping<TKey, TValue> {
@@ -87,7 +87,8 @@ declare module CrossFilter {
add(records: T[]): CrossFilter<T>;
remove(): CrossFilter<T>;
size(): number;
groupAll(): GroupAll<T>;
GroupAll(): GroupAll<T, T>;
groupAll<TValue>(): GroupAll<T, TValue>;
dimension<TDimension>(value: (data: T) => TDimension): Dimension<T, TDimension>;
}
@@ -103,8 +104,9 @@ declare module CrossFilter {
bottom(k: number): T[];
dispose(): void;
group(): Group<T, TDimension, TDimension>;
group<TGroup>(groupValue: (data: TDimension) => TGroup): Group<T, TDimension, TGroup>;
groupAll(): GroupAll<T>;
group<TGroup>(groupValue: (data: TDimension) => TGroup): Group<T, TDimension, TGroup>;
groupAll(): GroupAll<T, T>;
groupAll<TValue>(): GroupAll<T, TValue>;
}
}