summaryrefslogtreecommitdiff
path: root/www/crm/wp-content/plugins/civicrm/civicrm/bower_components/crossfilter2/index.d.ts
diff options
context:
space:
mode:
Diffstat (limited to 'www/crm/wp-content/plugins/civicrm/civicrm/bower_components/crossfilter2/index.d.ts')
-rw-r--r--www/crm/wp-content/plugins/civicrm/civicrm/bower_components/crossfilter2/index.d.ts148
1 files changed, 148 insertions, 0 deletions
diff --git a/www/crm/wp-content/plugins/civicrm/civicrm/bower_components/crossfilter2/index.d.ts b/www/crm/wp-content/plugins/civicrm/civicrm/bower_components/crossfilter2/index.d.ts
new file mode 100644
index 00000000..798d27a5
--- /dev/null
+++ b/www/crm/wp-content/plugins/civicrm/civicrm/bower_components/crossfilter2/index.d.ts
@@ -0,0 +1,148 @@
+export = crossfilter;
+
+declare function crossfilter<T>(records?: T[]): crossfilter.Crossfilter<T>;
+
+declare namespace crossfilter {
+ export type ComparableValue = string | number | boolean;
+
+ export interface ComparableObject {
+ valueOf(): ComparableValue;
+ }
+
+ export type NaturallyOrderedValue = ComparableValue | ComparableObject;
+
+ export type Predicate<T> = (record: T) => boolean;
+
+ export type TSelectorValue = NaturallyOrderedValue | NaturallyOrderedValue[];
+ export type OrderedValueSelector<TRecord, TValue extends TSelectorValue = NaturallyOrderedValue> = (
+ record: TRecord,
+ ) => TValue;
+
+ export type FilterValue =
+ | NaturallyOrderedValue
+ | [NaturallyOrderedValue, NaturallyOrderedValue]
+ | Predicate<NaturallyOrderedValue>;
+
+ export interface Grouping<TKey extends NaturallyOrderedValue, TValue> {
+ key: TKey;
+ value: TValue;
+ }
+
+ export interface Group<TRecord, TKey extends NaturallyOrderedValue, TValue> {
+ top(k: number): Array<Grouping<TKey, TValue>>;
+ all(): Array<Grouping<TKey, TValue>>;
+ reduce(
+ add: (p: TValue, v: TRecord, nf: boolean) => TValue,
+ remove: (p: TValue, v: TRecord, nf: boolean) => TValue,
+ initial: () => TValue,
+ ): Group<TRecord, TKey, TValue>;
+ reduceCount(): Group<TRecord, TKey, TValue>;
+ reduceSum(selector: (record: TRecord) => number): Group<TRecord, TKey, TValue>;
+ order(selector: (value: TValue) => NaturallyOrderedValue): Group<TRecord, TKey, TValue>;
+ orderNatural(): Group<TRecord, TKey, TValue>;
+ size(): number;
+ dispose(): Group<TRecord, TKey, TValue>;
+ }
+
+ export interface GroupAll<TRecord, TValue> {
+ reduce(
+ add: (p: TValue, v: TRecord, nf: boolean) => TValue,
+ remove: (p: TValue, v: TRecord, nf: boolean) => TValue,
+ initial: () => TValue,
+ ): GroupAll<TRecord, TValue>;
+ reduceCount(): GroupAll<TRecord, TValue>;
+ reduceSum(selector: (record: TRecord) => number): GroupAll<TRecord, TValue>;
+ dispose(): GroupAll<TRecord, TValue>;
+ value(): TValue;
+ }
+
+ export interface Dimension<TRecord, TValue extends NaturallyOrderedValue> {
+ filter(filterValue: FilterValue): Dimension<TRecord, TValue>;
+ filterExact(value: TValue): Dimension<TRecord, TValue>;
+ filterRange(range: [TValue, TValue]): Dimension<TRecord, TValue>;
+ filterFunction(predicate: Predicate<TValue>): Dimension<TRecord, TValue>;
+ filterAll(): Dimension<TRecord, TValue>;
+ currentFilter(): FilterValue | undefined;
+ hasCurrentFilter(): boolean;
+ top(k: number, offset?: number): TRecord[];
+ bottom(k: number, offset?: number): TRecord[];
+ group<TKey extends NaturallyOrderedValue, TGroupValue>(
+ groupValue?: (value: TValue) => TKey,
+ ): Group<TRecord, TKey, TGroupValue>;
+ groupAll<TGroupValue>(): GroupAll<TRecord, TGroupValue>;
+ dispose(): Dimension<TRecord, TValue>;
+ accessor(record: TRecord): NaturallyOrderedValue;
+ id(): number;
+ }
+
+ export enum EventType {
+ DATA_ADDED = 'dataAdded',
+ DATA_REMOVED = 'dataRemoved',
+ FILTERED = 'filtered',
+ }
+
+ export interface Crossfilter<T> {
+ add(records: T[]): Crossfilter<T>;
+ remove(predicate?: Predicate<T>): void;
+ dimension<TValue extends NaturallyOrderedValue>(
+ selector: OrderedValueSelector<T, TValue | TValue[]>,
+ isArray?: boolean,
+ ): Dimension<T, TValue>;
+ groupAll<TGroupValue>(): GroupAll<T, TGroupValue>;
+ size(): number;
+ all(): T[];
+ allFiltered(): T[];
+ onChange(callback: (type: EventType) => void): () => void;
+ isElementFiltered(index: number, ignoreDimensions?: number[]): boolean;
+ }
+
+ export type HeapSelector<T> = (records: T[], lo: number, hi: number, k: number) => T[];
+
+ export interface Heap<T> {
+ (records: T[], lo: number, hi: number): T[];
+ sort(records: T[], lo: number, hi: number): T[];
+ }
+
+ export type Sorter<T> = (records: T[], lo: number, hi: number) => T[];
+
+ export type Bisection<T> = (records: T[], record: T, lo: number, hi: number) => number;
+
+ export interface Bisector<T> extends Bisection<T> {
+ left: Bisection<T>;
+ right: Bisection<T>;
+ }
+
+ export const version: string;
+
+ namespace heap {
+ export function by<T>(selector: OrderedValueSelector<T>): Heap<T>;
+ }
+
+ export function heap<T>(records: T[], lo: number, hi: number): T[];
+
+ namespace heapselect {
+ export function by<T>(selector: OrderedValueSelector<T>): HeapSelector<T>;
+ }
+
+ export function heapselect<T>(records: T[], lo: number, hi: number, k: number): T[];
+
+ namespace bisect {
+ export function by<T>(selector: OrderedValueSelector<T>): Bisector<T>;
+ }
+
+ export function bisect<T>(records: T[], record: T, lo: number, hi: number): number;
+
+ namespace insertionsort {
+ export function by<T>(selector: OrderedValueSelector<T>): Sorter<T>;
+ }
+
+ export function insertionsort<T>(records: T[], lo: number, hi: number): T[];
+
+ namespace quicksort {
+ export function by<T>(selector: OrderedValueSelector<T>): Sorter<T>;
+ }
+
+ export function quicksort<T>(records: T[], lo: number, hi: number): T[];
+
+ export function permute<T>(records: T[], index: number[], deep: number): T[];
+}