yahoo-swiv
Version:
A web-based exploratory visualization UI for Druid.io
46 lines (45 loc) • 1.55 kB
TypeScript
import { List } from 'immutable';
import { BaseImmutable, Property } from 'immutable-class';
import { Expression, Datum, ApplyAction, AttributeInfo } from 'swiv-plywood';
export interface MeasureValue {
name: string;
title?: string;
units?: string;
formula?: string;
format?: string;
}
export interface MeasureJS {
name: string;
title?: string;
units?: string;
formula?: string;
format?: string;
}
export declare class Measure extends BaseImmutable<MeasureValue, MeasureJS> {
static DEFAULT_FORMAT: string;
static INTEGER_FORMAT: string;
static isMeasure(candidate: any): candidate is Measure;
static getMeasure(measures: List<Measure>, measureName: string): Measure;
static getAggregateReferences(ex: Expression): string[];
static getCountDistinctReferences(ex: Expression): string[];
static measuresFromAttributeInfo(attribute: AttributeInfo): Measure[];
static fromJS(parameters: MeasureJS): Measure;
static PROPERTIES: Property[];
name: string;
title: string;
units: string;
formula: string;
expression: Expression;
format: string;
formatFn: (n: number) => string;
constructor(parameters: MeasureValue);
toApplyAction(): ApplyAction;
formatDatum(datum: Datum): string;
getTitle: () => string;
changeTitle: (newTitle: string) => this;
getTitleWithUnits(): string;
getFormula: () => string;
changeFormula: (newFormula: string) => this;
getFormat: () => string;
changeFormat: (newFormat: string) => this;
}