UNPKG

virool-pivot

Version:

A web-based exploratory visualization UI for Druid.io

146 lines (145 loc) 6 kB
import { List, OrderedSet } from 'immutable'; import { Instance } from 'immutable-class'; import { Timezone } from 'chronoshift'; import { Expression, RefExpression, TimeRange, ApplyAction, SortAction, Set } from 'plywood'; import { DataSource } from '../data-source/data-source'; import { Filter, FilterJS } from '../filter/filter'; import { Highlight, HighlightJS } from '../highlight/highlight'; import { Splits, SplitsJS } from '../splits/splits'; import { SplitCombine } from '../split-combine/split-combine'; import { Dimension } from '../dimension/dimension'; import { Measure } from '../measure/measure'; import { Colors, ColorsJS } from '../colors/colors'; import { Manifest, Resolve } from '../manifest/manifest'; export interface VisualizationAndResolve { visualization: Manifest; resolve: Resolve; } /** * FairGame - Run all visualizations pretending that there is no current * UnfairGame - Run all visualizations but mark current vis as current * KeepAlways - Just keep the current one */ export declare enum VisStrategy { FairGame = 0, UnfairGame = 1, KeepAlways = 2, } export interface EssenceValue { visualizations?: List<Manifest>; dataSource?: DataSource; visualization: Manifest; timezone: Timezone; filter: Filter; splits: Splits; multiMeasureMode: boolean; singleMeasure: string; selectedMeasures: OrderedSet<string>; pinnedDimensions: OrderedSet<string>; colors: Colors; pinnedSort: string; compare: Filter; highlight: Highlight; } export interface EssenceJS { visualization?: string; timezone?: string; filter?: FilterJS; splits?: SplitsJS; multiMeasureMode?: boolean; singleMeasure?: string; selectedMeasures?: string[]; pinnedDimensions?: string[]; colors?: ColorsJS; pinnedSort?: string; compare?: FilterJS; highlight?: HighlightJS; } export interface EssenceContext { dataSource: DataSource; visualizations: List<Manifest>; } export declare class Essence implements Instance<EssenceValue, EssenceJS> { static isEssence(candidate: any): candidate is Essence; static getBestVisualization(visualizations: List<Manifest>, dataSource: DataSource, splits: Splits, colors: Colors, currentVisualization: Manifest): VisualizationAndResolve; static fromHash(hash: string, context: EssenceContext): Essence; static fromDataSource(dataSource: DataSource, context: EssenceContext): Essence; static fromJS(parameters: EssenceJS, context?: EssenceContext): Essence; dataSource: DataSource; visualizations: List<Manifest>; visualization: Manifest; timezone: Timezone; filter: Filter; splits: Splits; multiMeasureMode: boolean; singleMeasure: string; selectedMeasures: OrderedSet<string>; pinnedDimensions: OrderedSet<string>; colors: Colors; pinnedSort: string; compare: Filter; highlight: Highlight; visResolve: Resolve; constructor(parameters: EssenceValue); valueOf(): EssenceValue; toJS(): EssenceJS; toJSON(): EssenceJS; toString(): string; equals(other: Essence): boolean; toHash(): string; getURL(urlPrefix: string): string; getTimeAttribute(): RefExpression; getTimeDimension(): Dimension; evaluateSelection(selection: Expression, now?: Date): TimeRange; getEffectiveFilter(highlightId?: string, unfilterDimension?: Dimension): Filter; getTimeSelection(): Expression; isFixedMeasureMode(): boolean; getEffectiveMultiMeasureMode(): boolean; getEffectiveMeasures(): List<Measure>; getMeasures(): List<Measure>; getEffectiveSelectedMeasure(): OrderedSet<string>; differentDataSource(other: Essence): boolean; differentTimezone(other: Essence): boolean; differentTimezoneMatters(other: Essence): boolean; differentFilter(other: Essence): boolean; differentSplits(other: Essence): boolean; differentEffectiveSplits(other: Essence): boolean; differentColors(other: Essence): boolean; differentSelectedMeasures(other: Essence): boolean; differentEffectiveMeasures(other: Essence): boolean; newSelectedMeasures(other: Essence): boolean; newEffectiveMeasures(other: Essence): boolean; differentPinnedDimensions(other: Essence): boolean; differentPinnedSort(other: Essence): boolean; differentCompare(other: Essence): boolean; differentHighligh(other: Essence): boolean; differentEffectiveFilter(other: Essence, highlightId?: string, unfilterDimension?: Dimension): boolean; highlightOn(owner: string, measure?: string): boolean; highlightOnDifferentMeasure(owner: string, measure: string): boolean; getSingleHighlightSet(): Set; getApplyForSort(sort: SortAction): ApplyAction; getCommonSort(): SortAction; updateDataSource(newDataSource: DataSource): Essence; changeFilter(filter: Filter, removeHighlight?: boolean): Essence; changeTimezone(newTimezone: Timezone): Essence; changeTimeSelection(check: Expression): Essence; convertToSpecificFilter(): Essence; changeSplits(splits: Splits, strategy: VisStrategy): Essence; changeSplit(splitCombine: SplitCombine, strategy: VisStrategy): Essence; addSplit(split: SplitCombine, strategy: VisStrategy): Essence; removeSplit(split: SplitCombine, strategy: VisStrategy): Essence; updateSplitsWithFilter(): Essence; changeColors(colors: Colors): Essence; changeVisualization(visualization: Manifest): Essence; pin(dimension: Dimension): Essence; unpin(dimension: Dimension): Essence; getPinnedSortMeasure(): Measure; changePinnedSortMeasure(measure: Measure): Essence; toggleMultiMeasureMode(): Essence; changeSingleMeasure(measure: Measure): Essence; toggleSelectedMeasure(measure: Measure): Essence; toggleEffectiveMeasure(measure: Measure): Essence; acceptHighlight(): Essence; changeHighlight(owner: string, measure: string, delta: Filter): Essence; dropHighlight(): Essence; }