From eac73459d2ab652697425ebeba9c49bf86a05d95 Mon Sep 17 00:00:00 2001 From: Nick Partridge Date: Thu, 4 Mar 2021 11:06:33 -0600 Subject: [PATCH] [XY Charts] fix partial histogram endzones annotations (#93091) --- src/plugins/vis_type_xy/public/plugin.ts | 2 -- src/plugins/vis_type_xy/public/services.ts | 4 ---- src/plugins/vis_type_xy/public/to_ast.ts | 9 +++++++++ .../vis_type_xy/public/utils/domain.ts | 20 +++++++++---------- test/functional/apps/visualize/_area_chart.ts | 9 +-------- .../apps/visualize/_point_series_options.ts | 10 ++++++++-- 6 files changed, 27 insertions(+), 27 deletions(-) diff --git a/src/plugins/vis_type_xy/public/plugin.ts b/src/plugins/vis_type_xy/public/plugin.ts index 75a2f4fb6895c..d414da8f6dc97 100644 --- a/src/plugins/vis_type_xy/public/plugin.ts +++ b/src/plugins/vis_type_xy/public/plugin.ts @@ -18,7 +18,6 @@ import { setDataActions, setFormatService, setThemeService, - setTimefilter, setUISettings, setDocLinks, setPalettesService, @@ -80,7 +79,6 @@ export class VisTypeXyPlugin public start(core: CoreStart, { data }: VisTypeXyPluginStartDependencies) { setFormatService(data.fieldFormats); setDataActions(data.actions); - setTimefilter(data.query.timefilter.timefilter); setDocLinks(core.docLinks); return {}; diff --git a/src/plugins/vis_type_xy/public/services.ts b/src/plugins/vis_type_xy/public/services.ts index 3f6a344091d76..b5dd6152605dc 100644 --- a/src/plugins/vis_type_xy/public/services.ts +++ b/src/plugins/vis_type_xy/public/services.ts @@ -24,10 +24,6 @@ export const [getFormatService, setFormatService] = createGetterSetter< DataPublicPluginStart['fieldFormats'] >('xy data.fieldFormats'); -export const [getTimefilter, setTimefilter] = createGetterSetter< - DataPublicPluginStart['query']['timefilter']['timefilter'] ->('xy data.query.timefilter.timefilter'); - export const [getThemeService, setThemeService] = createGetterSetter( 'xy charts.theme' ); diff --git a/src/plugins/vis_type_xy/public/to_ast.ts b/src/plugins/vis_type_xy/public/to_ast.ts index 7f990b01c2d07..84331af3a5329 100644 --- a/src/plugins/vis_type_xy/public/to_ast.ts +++ b/src/plugins/vis_type_xy/public/to_ast.ts @@ -16,6 +16,7 @@ import { DateHistogramParams, Dimensions, HistogramParams, VisParams } from './t import { visName, VisTypeXyExpressionFunctionDefinition } from './xy_vis_fn'; import { XyVisType } from '../common'; import { getEsaggsFn } from './to_ast_esaggs'; +import { TimeRangeBounds } from '../../data/common'; export const toExpressionAst: VisToExpressionAst = async (vis, params) => { const schemas = getVisSchemas(vis, params); @@ -42,6 +43,14 @@ export const toExpressionAst: VisToExpressionAst = async (vis, params .duration(esValue, esUnit) .asMilliseconds(); (dimensions.x.params as DateHistogramParams).format = xAgg.buckets.getScaledDateFormat(); + const bounds = xAgg.buckets.getBounds() as TimeRangeBounds | undefined; + + if (bounds && bounds?.min && bounds?.max) { + (dimensions.x.params as DateHistogramParams).bounds = { + min: bounds.min.valueOf(), + max: bounds.max.valueOf(), + }; + } } else if (xAgg.type.name === BUCKET_TYPES.HISTOGRAM) { const intervalParam = xAgg.type.paramByName('interval'); const output = { params: {} as any }; diff --git a/src/plugins/vis_type_xy/public/utils/domain.ts b/src/plugins/vis_type_xy/public/utils/domain.ts index a59b2fd20cb5a..322ffc087766c 100644 --- a/src/plugins/vis_type_xy/public/utils/domain.ts +++ b/src/plugins/vis_type_xy/public/utils/domain.ts @@ -14,22 +14,20 @@ import { DomainRange } from '@elastic/charts'; import { getAdjustedInterval } from '../../../charts/public'; import { Datatable } from '../../../expressions/public'; -import { getTimefilter } from '../services'; import { Aspect, DateHistogramParams, HistogramParams } from '../types'; export const getXDomain = (params: Aspect['params']): DomainRange => { const minInterval = (params as DateHistogramParams | HistogramParams)?.interval ?? undefined; + const bounds = (params as DateHistogramParams).date + ? (params as DateHistogramParams).bounds + : null; - if ((params as DateHistogramParams).date) { - const bounds = getTimefilter().getActiveBounds(); - - if (bounds) { - return { - min: bounds.min ? bounds.min.valueOf() : undefined, - max: bounds.max ? bounds.max.valueOf() : undefined, - minInterval, - }; - } + if (bounds) { + return { + min: bounds.min as number, + max: bounds.max as number, + minInterval, + }; } return { diff --git a/test/functional/apps/visualize/_area_chart.ts b/test/functional/apps/visualize/_area_chart.ts index 9b8abc7ae60a8..05fbdc2e0c283 100644 --- a/test/functional/apps/visualize/_area_chart.ts +++ b/test/functional/apps/visualize/_area_chart.ts @@ -96,14 +96,7 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) { it('should show correct chart', async function () { const xAxisLabels = await PageObjects.visChart.getExpectedValue( ['2015-09-20 00:00', '2015-09-21 00:00', '2015-09-22 00:00', '2015-09-23 00:00'], - [ - '2015-09-20 00:00', - '2015-09-20 12:00', - '2015-09-21 00:00', - '2015-09-21 12:00', - '2015-09-22 00:00', - '2015-09-22 12:00', - ] + ['2015-09-19 12:00', '2015-09-20 12:00', '2015-09-21 12:00', '2015-09-22 12:00'] ); const yAxisLabels = await PageObjects.visChart.getExpectedValue( ['0', '200', '400', '600', '800', '1,000', '1,200', '1,400', '1,600'], diff --git a/test/functional/apps/visualize/_point_series_options.ts b/test/functional/apps/visualize/_point_series_options.ts index 09f9694ea9474..ac641fb554b0b 100644 --- a/test/functional/apps/visualize/_point_series_options.ts +++ b/test/functional/apps/visualize/_point_series_options.ts @@ -269,7 +269,7 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) { it('should show round labels in default timezone', async function () { const expectedLabels = await PageObjects.visChart.getExpectedValue( ['2015-09-20 00:00', '2015-09-21 00:00', '2015-09-22 00:00'], - ['2015-09-20 00:00', '2015-09-20 18:00', '2015-09-21 12:00', '2015-09-22 06:00'] + ['2015-09-19 12:00', '2015-09-20 12:00', '2015-09-21 12:00', '2015-09-22 12:00'] ); await initChart(); const labels = await PageObjects.visChart.getXAxisLabels(); @@ -279,7 +279,13 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) { it('should show round labels in different timezone', async function () { const expectedLabels = await PageObjects.visChart.getExpectedValue( ['2015-09-20 00:00', '2015-09-21 00:00', '2015-09-22 00:00'], - ['2015-09-19 18:00', '2015-09-20 12:00', '2015-09-21 06:00', '2015-09-22 00:00'] + [ + '2015-09-19 12:00', + '2015-09-20 06:00', + '2015-09-21 00:00', + '2015-09-21 18:00', + '2015-09-22 12:00', + ] ); await kibanaServer.uiSettings.update({ 'dateFormat:tz': 'America/Phoenix' });