diff --git a/src/plugins/vis_types/xy/public/utils/get_series_params.test.ts b/src/plugins/vis_types/xy/public/utils/get_series_params.test.ts index 67b8a1c160d40..5c22527d5b9d7 100644 --- a/src/plugins/vis_types/xy/public/utils/get_series_params.test.ts +++ b/src/plugins/vis_types/xy/public/utils/get_series_params.test.ts @@ -45,7 +45,7 @@ describe('getSeriesParams', () => { ); expect(seriesParams).toStrictEqual([ { - circlesRadius: 3, + circlesRadius: 1, data: { id: '1', label: 'Total quantity', diff --git a/src/plugins/vis_types/xy/public/utils/get_series_params.ts b/src/plugins/vis_types/xy/public/utils/get_series_params.ts index 987c8df83b01f..0acd2a0913282 100644 --- a/src/plugins/vis_types/xy/public/utils/get_series_params.ts +++ b/src/plugins/vis_types/xy/public/utils/get_series_params.ts @@ -22,7 +22,7 @@ const makeSerie = ( type: ChartType.Line, drawLinesBetweenPoints: true, showCircles: true, - circlesRadius: 3, + circlesRadius: 1, interpolate: InterpolationMode.Linear, lineWidth: 2, valueAxis: defaultValueAxis, diff --git a/src/plugins/vis_types/xy/public/vis_types/area.ts b/src/plugins/vis_types/xy/public/vis_types/area.ts index 3b8f78db25d36..47fc190f13091 100644 --- a/src/plugins/vis_types/xy/public/vis_types/area.ts +++ b/src/plugins/vis_types/xy/public/vis_types/area.ts @@ -97,7 +97,7 @@ export const areaVisTypeDefinition = { drawLinesBetweenPoints: true, lineWidth: 2, showCircles: true, - circlesRadius: 3, + circlesRadius: 1, interpolate: InterpolationMode.Linear, valueAxis: 'ValueAxis-1', }, diff --git a/src/plugins/vis_types/xy/public/vis_types/histogram.ts b/src/plugins/vis_types/xy/public/vis_types/histogram.ts index 79b3fd72de452..5b312e8bc76a5 100644 --- a/src/plugins/vis_types/xy/public/vis_types/histogram.ts +++ b/src/plugins/vis_types/xy/public/vis_types/histogram.ts @@ -101,7 +101,7 @@ export const histogramVisTypeDefinition = { drawLinesBetweenPoints: true, lineWidth: 2, showCircles: true, - circlesRadius: 3, + circlesRadius: 1, }, ], radiusRatio: 0, diff --git a/src/plugins/vis_types/xy/public/vis_types/horizontal_bar.ts b/src/plugins/vis_types/xy/public/vis_types/horizontal_bar.ts index 5ac833190dd38..bf98fa20a93cf 100644 --- a/src/plugins/vis_types/xy/public/vis_types/horizontal_bar.ts +++ b/src/plugins/vis_types/xy/public/vis_types/horizontal_bar.ts @@ -102,7 +102,7 @@ export const horizontalBarVisTypeDefinition = { drawLinesBetweenPoints: true, lineWidth: 2, showCircles: true, - circlesRadius: 3, + circlesRadius: 1, }, ], addTooltip: true, diff --git a/src/plugins/vis_types/xy/public/vis_types/line.ts b/src/plugins/vis_types/xy/public/vis_types/line.ts index f7467ca53fa0e..c76c197a11808 100644 --- a/src/plugins/vis_types/xy/public/vis_types/line.ts +++ b/src/plugins/vis_types/xy/public/vis_types/line.ts @@ -99,7 +99,7 @@ export const lineVisTypeDefinition = { lineWidth: 2, interpolate: InterpolationMode.Linear, showCircles: true, - circlesRadius: 3, + circlesRadius: 1, }, ], addTooltip: true, diff --git a/src/plugins/visualizations/server/migrations/visualization_saved_object_migrations.test.ts b/src/plugins/visualizations/server/migrations/visualization_saved_object_migrations.test.ts index 1f6fbfeb47e59..06e06a4fefa0c 100644 --- a/src/plugins/visualizations/server/migrations/visualization_saved_object_migrations.test.ts +++ b/src/plugins/visualizations/server/migrations/visualization_saved_object_migrations.test.ts @@ -1674,7 +1674,8 @@ describe('migration visualization', () => { type = 'area', categoryAxes?: object[], valueAxes?: object[], - hasPalette = false + hasPalette = false, + hasCirclesRadius = false ) => ({ attributes: { title: 'My Vis', @@ -1694,6 +1695,21 @@ describe('migration visualization', () => { labels: {}, }, ], + seriesParams: [ + { + show: true, + type, + mode: 'stacked', + drawLinesBetweenPoints: true, + lineWidth: 2, + showCircles: true, + interpolate: 'linear', + valueAxis: 'ValueAxis-1', + ...(hasCirclesRadius && { + circlesRadius: 3, + }), + }, + ], ...(hasPalette && { palette: { type: 'palette', @@ -1732,6 +1748,20 @@ describe('migration visualization', () => { expect(palette.name).toEqual('default'); }); + it("should decorate existing docs with the circlesRadius attribute if it doesn't exist", () => { + const migratedTestDoc = migrate(getTestDoc()); + const [result] = JSON.parse(migratedTestDoc.attributes.visState).params.seriesParams; + + expect(result.circlesRadius).toEqual(1); + }); + + it('should not decorate existing docs with the circlesRadius attribute if it exists', () => { + const migratedTestDoc = migrate(getTestDoc('area', undefined, undefined, true, true)); + const [result] = JSON.parse(migratedTestDoc.attributes.visState).params.seriesParams; + + expect(result.circlesRadius).toEqual(3); + }); + describe('labels.filter', () => { it('should keep existing categoryAxes labels.filter value', () => { const migratedTestDoc = migrate(getTestDoc('area', [{ labels: { filter: false } }])); diff --git a/src/plugins/visualizations/server/migrations/visualization_saved_object_migrations.ts b/src/plugins/visualizations/server/migrations/visualization_saved_object_migrations.ts index b598d34943e6c..4c8771a2f6924 100644 --- a/src/plugins/visualizations/server/migrations/visualization_saved_object_migrations.ts +++ b/src/plugins/visualizations/server/migrations/visualization_saved_object_migrations.ts @@ -867,6 +867,20 @@ const decorateAxes = ( }, })); +/** + * Defaults circlesRadius to 1 if it is not configured + */ +const addCirclesRadius = (axes: T[]): T[] => + axes.map((axis) => { + const hasCircleRadiusAttribute = Number.isFinite(axis?.circlesRadius); + return { + ...axis, + ...(!hasCircleRadiusAttribute && { + circlesRadius: 1, + }), + }; + }); + // Inlined from vis_type_xy const CHART_TYPE_AREA = 'area'; const CHART_TYPE_LINE = 'line'; @@ -913,10 +927,12 @@ const migrateVislibAreaLineBarTypes: SavedObjectMigrationFn = (doc) => valueAxes: visState.params.valueAxes && decorateAxes(visState.params.valueAxes, isHorizontalBar), + seriesParams: + visState.params.seriesParams && addCirclesRadius(visState.params.seriesParams), isVislibVis: true, detailedTooltip: true, ...(isLineOrArea && { - fittingFunction: 'zero', + fittingFunction: 'linear', }), }, }),