update visualization configuration

This commit is contained in:
ppisljar 2017-08-23 10:42:07 +02:00
parent 6959725fd7
commit c96fec8ba2
2 changed files with 37 additions and 0 deletions

View file

@ -16,6 +16,7 @@ import { PersistedState } from 'ui/persisted_state';
import { UtilsBrushEventProvider } from 'ui/utils/brush_event'; import { UtilsBrushEventProvider } from 'ui/utils/brush_event';
import { FilterBarQueryFilterProvider } from 'ui/filter_bar/query_filter'; import { FilterBarQueryFilterProvider } from 'ui/filter_bar/query_filter';
import { FilterBarClickHandlerProvider } from 'ui/filter_bar/filter_bar_click_handler'; import { FilterBarClickHandlerProvider } from 'ui/filter_bar/filter_bar_click_handler';
import { updateVisualizationConfig } from './vis_update';
export function VisProvider(Private, indexPatterns, timefilter, getAppState) { export function VisProvider(Private, indexPatterns, timefilter, getAppState) {
const visTypes = Private(VisTypesRegistryProvider); const visTypes = Private(VisTypesRegistryProvider);
@ -81,6 +82,8 @@ export function VisProvider(Private, indexPatterns, timefilter, getAppState) {
_.cloneDeep(this.type.visConfig.defaults || {}) _.cloneDeep(this.type.visConfig.defaults || {})
); );
updateVisualizationConfig(state.params, this.params);
this.aggs = new AggConfigs(this, state.aggs); this.aggs = new AggConfigs(this, state.aggs);
} }

View file

@ -0,0 +1,34 @@
const updateVisualizationConfig = (stateConfig, config) => {
if (!stateConfig || stateConfig.seriesParams) return;
if (!['line', 'area', 'histogram'].includes(config.type)) return;
// update value axis options
const isUserDefinedYAxis = config.setYExtents;
let mode = config.mode || 'normal';
if (['stacked', 'overlap'].includes(mode)) mode = 'normal';
config.valueAxes[0].scale = {
...config.valueAxes[0].scale,
type: config.scale || 'linear',
setYExtents: config.setYExtents || false,
defaultYExtents: config.defaultYExtents || true,
min: isUserDefinedYAxis ? config.yAxis.min : undefined,
max: isUserDefinedYAxis ? config.yAxis.max : undefined,
mode: mode
};
// update series options
let interpolate = config.interpolate;
if (config.smoothLines) interpolate = 'cardinal';
const stacked = ['stacked', 'percentage', 'wiggle', 'silhouette'].includes(config.mode);
config.seriesParams[0] = {
...config.seriesParams[0],
type: config.type || 'line',
mode: stacked ? 'stacked' : 'normal',
interpolate: interpolate,
drawLinesBetweenPoints: config.drawLinesBetweenPoints,
showCircles: config.showCircles,
radiusRatio: config.radiusRatio
};
};
export { updateVisualizationConfig };