/*! * Copyright (c) Microsoft Corporation. * Licensed under the MIT License. */ import { ColorContext, InsightSetup, RenderOptions, RenderResult, SelectionState, Setup, Transition, ViewerOptions } from './types'; import { Camera, Column } from '@msrvida/chart-types'; import { Insight, SignalValues, SpecCapabilities } from '@msrvida/sanddance-specs'; import * as searchExpression from '@msrvida/search-expression'; import * as VegaMorphCharts from '@msrvida/vega-morphcharts'; import { ViewGl_Class } from '@msrvida/vega-morphcharts/dist/es6/vega-classes/viewGl'; import { Spec } from 'vega-typings'; import Search = searchExpression.Search; /** * Component to view a SandDance data visualization. */ export declare class Viewer { element: HTMLElement; /** * Default Viewer options. */ static defaultViewerOptions: ViewerOptions; /** * Behavior specified by the visualization type. */ specCapabilities: SpecCapabilities; /** * Viewer options object. */ options: ViewerOptions; /** * Vega specification. */ vegaSpec: Spec; /** * Vega View instance. */ vegaViewGl: ViewGl_Class; /** * Presenter which does the rendering. */ presenter: VegaMorphCharts.Presenter; /** * Insight object for chart layout. */ insight: Insight; /** * Setup object for visual rendering of Insight. */ setup: Setup; /** * Color contexts. There is only one color context until data is filtered, after which colors may be re-mapped in another color context. */ colorContexts: ColorContext[]; /** * Index of current color context. Change this and then call renderSameLayout(). */ currentColorContext: number; private _axisSelection; private _specColumns; private _dataScope; private _animator; private _details; private _tooltip; private _shouldSaveColorContext; private _lastPresenterConfig; private _characterSet; /** * Instantiate a new Viewer. * @param element Parent HTMLElement to present within. * @param options Optional viewer options object. */ constructor(element: HTMLElement, options?: Partial); private changeColorContexts; private applyLegendColorContext; private onAnimateDataChange; private onDataChanged; private convertSearchToSet; private convertSetToSearch; private getSpecColumnsWithFilteredStats; private renderNewLayout; /** * Render the same layout with new options. * @param newViewerOptions New options object. */ renderSameLayout(newViewerOptions?: Partial): void; private getView; private transformData; /** * Render data into a visualization. * @param insightSetup InsightSetup object to create a visualization rendering. * @param data Array of data objects. * @param renderOptions Optional RenderOptions object. */ render(insightSetup: InsightSetup, data: object[], renderOptions?: RenderOptions): Promise; private shouldViewstateTransition; private configForSignalCapture; private onPresent; private _render; private overrideAxisLabels; private preLayer; private preStage; private onCubeClick; private onCubeHover; private onTextHover; private getMorphChartsColors; private createConfig; /** * Filter the data and animate. * @param search Filter expression, see https://vega.github.io/vega/docs/expressions/ * @param rebase Optional flag to apply to entire dataset. A false value will apply the filter upon any existing filter. */ filter(search: Search, rebase?: boolean): Promise; /** * Remove any filtration and animate. */ reset(): Promise; /** * Select cubes by a filter expression. * @param search Filter expression, see https://vega.github.io/vega/docs/expressions/ */ select(search: Search): Promise; /** * Removes any selection. */ deselect(): Promise; /** * Gets the current selection. */ getSelection(): SelectionState; /** * Set one data row to the active state. */ activate(datum: object): Promise; /** * Deactivate item. */ deActivate(): Promise; /** * Gets the current camera. * @param transitionFinal Optional flag to get camera destination when transition completes. */ getCamera(transitionFinal?: boolean): Camera; /** * Sets the current camera. * @param camera Camera to set. */ setCamera(camera: Camera): void; /** * Gets the current insight with signal values. */ getInsight(): Insight; /** * Gets column stats from current data (filtered or all). * @param column Column to get stats for. */ getColumnStats(column: Column): import("@msrvida/chart-types").ColumnStats; /** * Gets current signal values. */ getSignalValues(): SignalValues; assignTransitionStagger(transition: Transition): void; finalize(): void; }