[XY Charts] fix partial histogram endzones annotations (#93091) (#93640)

This commit is contained in:
Nick Partridge 2021-03-04 13:16:59 -06:00 committed by GitHub
parent b528e66dd5
commit 3c3e63f975
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
6 changed files with 27 additions and 27 deletions

View file

@ -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 {};

View file

@ -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<ChartsPluginSetup['theme']>(
'xy charts.theme'
);

View file

@ -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<VisParams> = async (vis, params) => {
const schemas = getVisSchemas(vis, params);
@ -42,6 +43,14 @@ export const toExpressionAst: VisToExpressionAst<VisParams> = 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 };

View file

@ -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 {

View file

@ -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'],

View file

@ -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' });