UNPKG

@equinor/videx-wellog

Version:

Visualisation components for wellbore log data

84 lines (83 loc) 2.8 kB
import { TrackOptions } from '../interfaces'; import { AnyPlotOptions } from '../../plots/interfaces'; import { Scale, Domain } from '../../common/interfaces'; import { Plot } from '../../plots'; /** * Config object used to define a plot in the graph track options */ export interface PlotConfig { id: string | number; type: string; options?: AnyPlotOptions; } export declare type PlotCreatorFunction = (config: PlotConfig, trackScale: Scale) => Plot; /** * Factory object for creating an instance of a plot given a type */ export interface PlotFactory { [propName: string]: PlotCreatorFunction; } interface PaddingConfig { size: number; hideExcessData: boolean; } /** * Available graph track options */ export interface GraphTrackOptions extends TrackOptions { /** * Collection of plot config objects */ plots?: PlotConfig[]; /** * Data for all plots in the track. May be of any type or a function or promise * returning data. The plots will need to have a data accessor function defined, that * can pick the data it needs from this value. */ data?: Promise<any> | Function | any; /** * Whether or not to show the loader or not (if configured) */ showLoader?: boolean; /** * Scale type to use. This scale applies to all plots unless the plot config has its * own scale and domain set. Can be 'linear' or 'log'. */ scale?: string; /** * Domain to use for the graph data range */ domain?: Domain; /** * Determines if the legend should be clickable to toggle plots on/off when used within a * LogController with graphLegendConfig enabled. Default is true. */ togglePlotFromLegend?: boolean; /** * Plot factory to use. If using custom plot types, you need to pass an extended/custom plot * factory that knows how to create an instance of plot types which are not part of the libs * standard plot types. */ plotFactory?: PlotFactory; /** * An optional function to transform the track data before being passed to the plots. This * is typically used to downsample data at low zoom levels. */ transform?: (data: any, scale: Scale) => Promise<any>; /** * Set to true to always run data transform function. By default (false), transforms will only run * if the domain (zoom level) changes. */ alwaysTransform?: boolean; /** * Option to add spacing around the track, for when information may extend beyond the track itself, * for example stat dip tail that defines aziumuth */ padding?: PaddingConfig; /** * Option to only use major ticks in the graph track */ majorTicksOnly?: boolean; forceDataUpdateOnToggle?: boolean; } export {};