Skip to content

Commit 29126cf

Browse files
authored
Use standard visualizations instead of d3 (#3168)
1 parent 860c9b1 commit 29126cf

File tree

93 files changed

+752
-723
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

93 files changed

+752
-723
lines changed

src/server/components/charts-engine/components/wizard-worker/index.ts

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ import type {ServerChartsConfig, Shared} from '../../../../../shared';
44
import {WizardVisualizationId, isGravityChartsVisualization} from '../../../../../shared';
55
import {getTranslationFn} from '../../../../../shared/modules/language';
66
import {datalensModule} from '../../../../modes/charts/plugins/datalens/private-module';
7+
import {mapChartsConfigToServerConfig} from '../../../../modes/charts/plugins/datalens/utils/config-helpers';
78
import {createI18nInstance} from '../../../../utils/language';
89
import {getChartApiContext} from '../processor/chart-api-context';
910
import {Console} from '../processor/console';
@@ -57,7 +58,7 @@ const worker: WizardWorker = {
5758
datalensModule.setConsole(console);
5859

5960
let result;
60-
const serverChartConfig = shared as ServerChartsConfig;
61+
const serverChartConfig = mapChartsConfigToServerConfig(shared as ServerChartsConfig);
6162
const visualizationId = serverChartConfig?.visualization?.id;
6263
switch (visualizationId) {
6364
case WizardVisualizationId.FlatTable:
@@ -142,7 +143,7 @@ const worker: WizardWorker = {
142143
const console = new Console({});
143144
datalensModule.setConsole(console);
144145

145-
const serverChartConfig = shared as ServerChartsConfig;
146+
const serverChartConfig = mapChartsConfigToServerConfig(shared as ServerChartsConfig);
146147
const shouldUseGravityCharts = isGravityChartsVisualization({
147148
features,
148149
id: serverChartConfig?.visualization?.id,

src/server/configs/shared/datalens-chart-template.ts

Lines changed: 10 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ import type {Request} from '@gravity-ui/expresskit';
33
import type {ExtendedChartsConfig} from '../../../shared';
44
import {
55
Feature,
6+
WizardType,
67
WizardVisualizationId,
78
getDatasetLinks,
89
isGravityChartsVisualization,
@@ -15,35 +16,33 @@ export default {
1516
return {};
1617
},
1718
identifyChartType: (chart: ExtendedChartsConfig, req: Request) => {
19+
const config = mapChartsConfigToLatestVersion(chart);
1820
let visualizationId;
1921

20-
if (
21-
chart.visualization &&
22-
chart.visualization.id &&
23-
/[a-zA-Z]+/.test(chart.visualization.id)
24-
) {
25-
visualizationId = chart.visualization.id;
22+
if (config.visualization?.id && /[a-zA-Z]+/.test(chart.visualization.id)) {
23+
visualizationId = config.visualization.id;
2624
} else {
2725
throw new Error('UNABLE_TO_IDENTIFY_CHART_TYPE');
2826
}
2927

3028
const {ctx} = req;
29+
const isEnabledServerFeature = ctx.get('isEnabledServerFeature');
3130
const features = {
32-
GravityChartsForPieAndTreemap: ctx.get('isEnabledServerFeature')(
31+
GravityChartsForPieAndTreemap: isEnabledServerFeature(
3332
Feature.GravityChartsForPieAndTreemap,
3433
),
35-
GravityChartsForBarYAndScatter: ctx.get('isEnabledServerFeature')(
34+
GravityChartsForBarYAndScatter: isEnabledServerFeature(
3635
Feature.GravityChartsForBarYAndScatter,
3736
),
38-
GravityChartsForLineAreaAndBarX: ctx.get('isEnabledServerFeature')(
37+
GravityChartsForLineAreaAndBarX: isEnabledServerFeature(
3938
Feature.GravityChartsForLineAreaAndBarX,
4039
),
4140
};
4241

4342
if (
4443
isGravityChartsVisualization({id: visualizationId as WizardVisualizationId, features})
4544
) {
46-
return 'd3_wizard_node';
45+
return WizardType.GravityChartsWizardNode;
4746
}
4847

4948
switch (visualizationId) {
@@ -58,7 +57,7 @@ export default {
5857
return 'ymap_wizard_node';
5958
}
6059
case WizardVisualizationId.Metric: {
61-
const {placeholders} = chart.visualization;
60+
const {placeholders} = config.visualization;
6261
// @ts-ignore will be removed after migration to v5
6362
const dataType = placeholders.find((p) => p.id === 'measures')?.items[0]?.data_type;
6463
const useMarkup = dataType === 'markup';

src/server/configs/shared/ql-chart-template.ts

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -31,14 +31,15 @@ export default {
3131
const id = visualization.id;
3232

3333
const {ctx} = req;
34+
const isEnabledServerFeature = ctx.get('isEnabledServerFeature');
3435
const features = {
35-
GravityChartsForPieAndTreemap: ctx.get('isEnabledServerFeature')(
36+
GravityChartsForPieAndTreemap: isEnabledServerFeature(
3637
Feature.GravityChartsForPieAndTreemap,
3738
),
38-
GravityChartsForBarYAndScatter: ctx.get('isEnabledServerFeature')(
39+
GravityChartsForBarYAndScatter: isEnabledServerFeature(
3940
Feature.GravityChartsForBarYAndScatter,
4041
),
41-
GravityChartsForLineAreaAndBarX: ctx.get('isEnabledServerFeature')(
42+
GravityChartsForLineAreaAndBarX: isEnabledServerFeature(
4243
Feature.GravityChartsForLineAreaAndBarX,
4344
),
4445
};

src/server/modes/charts/plugins/datalens/config/index.ts

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -39,19 +39,14 @@ function getActionParamsEvents(
3939
};
4040
}
4141
case WizardVisualizationId.Line:
42-
case WizardVisualizationId.LineD3:
4342
case WizardVisualizationId.Area:
4443
case WizardVisualizationId.Column:
4544
case WizardVisualizationId.Column100p:
46-
case WizardVisualizationId.BarXD3:
4745
case WizardVisualizationId.Bar:
4846
case WizardVisualizationId.Bar100p:
4947
case WizardVisualizationId.Scatter:
50-
case WizardVisualizationId.ScatterD3:
5148
case WizardVisualizationId.Pie:
52-
case WizardVisualizationId.PieD3:
5349
case WizardVisualizationId.Donut:
54-
case WizardVisualizationId.DonutD3:
5550
case WizardVisualizationId.CombinedChart: {
5651
return {
5752
click: [{handler: {type: 'setActionParams'}, scope: 'point'}],

src/server/modes/charts/plugins/datalens/gravity-charts/utils/index.ts

Lines changed: 1 addition & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -142,19 +142,11 @@ export function getBaseChartConfig(args: {
142142
const visualizationId = visualization.id as WizardVisualizationId;
143143
const visualizationWithoutAxis = [
144144
WizardVisualizationId.Pie,
145-
WizardVisualizationId.PieD3,
146145
WizardVisualizationId.Donut,
147-
WizardVisualizationId.DonutD3,
148146
WizardVisualizationId.Treemap,
149-
WizardVisualizationId.TreemapD3,
150147
];
151148

152-
const visualizationWithYMainAxis = [
153-
WizardVisualizationId.Bar,
154-
WizardVisualizationId.Bar100p,
155-
WizardVisualizationId.BarYD3,
156-
WizardVisualizationId.BarY100pD3,
157-
];
149+
const visualizationWithYMainAxis = [WizardVisualizationId.Bar, WizardVisualizationId.Bar100p];
158150

159151
if (!visualizationWithoutAxis.includes(visualizationId)) {
160152
const [xMin, xMax] = getAxisMinMax(xPlaceholderSettings);

src/server/modes/charts/plugins/datalens/js/helpers/misc/prepare-single-result.ts

Lines changed: 0 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -165,16 +165,6 @@ export default ({
165165
break;
166166
}
167167

168-
case WizardVisualizationId.LineD3: {
169-
if (isMonitoringOrPrometheusChart(chartType)) {
170-
prepare = prepareLineTime;
171-
} else {
172-
prepare = prepareGravityChartLine;
173-
}
174-
rowsLimit = 75000;
175-
break;
176-
}
177-
178168
case WizardVisualizationId.Bar:
179169
case WizardVisualizationId.Bar100p: {
180170
if (plugin === 'gravity-charts') {
@@ -186,19 +176,6 @@ export default ({
186176
break;
187177
}
188178

189-
case WizardVisualizationId.BarYD3:
190-
case WizardVisualizationId.BarY100pD3: {
191-
prepare = prepareGravityChartsBarY;
192-
rowsLimit = 75000;
193-
break;
194-
}
195-
196-
case WizardVisualizationId.BarXD3: {
197-
prepare = prepareGravityChartBarX;
198-
rowsLimit = 75000;
199-
break;
200-
}
201-
202179
case WizardVisualizationId.Scatter:
203180
if (plugin === 'gravity-charts') {
204181
prepare = prepareGravityChartsScatter;
@@ -208,11 +185,6 @@ export default ({
208185
rowsLimit = 75000;
209186
break;
210187

211-
case WizardVisualizationId.ScatterD3:
212-
prepare = prepareGravityChartsScatter;
213-
rowsLimit = 75000;
214-
break;
215-
216188
case WizardVisualizationId.Pie:
217189
case WizardVisualizationId.Donut:
218190
if (plugin === 'gravity-charts') {
@@ -223,12 +195,6 @@ export default ({
223195
rowsLimit = 1000;
224196
break;
225197

226-
case WizardVisualizationId.PieD3:
227-
case WizardVisualizationId.DonutD3:
228-
prepare = prepareD3Pie;
229-
rowsLimit = 1000;
230-
break;
231-
232198
case WizardVisualizationId.Metric:
233199
prepare = prepareMetricData;
234200
rowsLimit = 1000;
@@ -243,11 +209,6 @@ export default ({
243209
rowsLimit = 800;
244210
break;
245211

246-
case WizardVisualizationId.TreemapD3:
247-
prepare = prepareD3Treemap;
248-
rowsLimit = 800;
249-
break;
250-
251212
case WizardVisualizationId.FlatTable:
252213
prepare = prepareFlatTableData;
253214
rowsLimit = 100000;

src/server/modes/charts/plugins/datalens/js/js.ts

Lines changed: 0 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -520,21 +520,6 @@ function prepareSingleResult({
520520
break;
521521
}
522522

523-
case WizardVisualizationId.BarYD3:
524-
case WizardVisualizationId.BarY100pD3: {
525-
prepare = prepareGravityChartsBarY;
526-
rowsLimit = 75000;
527-
break;
528-
}
529-
530-
case WizardVisualizationId.LineD3: {
531-
shapes = shared.shapes || [];
532-
shapesConfig = shared.shapesConfig;
533-
prepare = prepareGravityChartLine;
534-
rowsLimit = 75000;
535-
break;
536-
}
537-
538523
case WizardVisualizationId.Column:
539524
case WizardVisualizationId.Column100p: {
540525
if (plugin === 'gravity-charts') {
@@ -582,12 +567,6 @@ function prepareSingleResult({
582567
rowsLimit = 1000;
583568
break;
584569

585-
case WizardVisualizationId.PieD3:
586-
case WizardVisualizationId.DonutD3:
587-
prepare = prepareD3Pie;
588-
rowsLimit = 1000;
589-
break;
590-
591570
case 'metric':
592571
prepare = prepareMetricData;
593572
rowsLimit = 1000;
@@ -602,11 +581,6 @@ function prepareSingleResult({
602581
rowsLimit = 800;
603582
break;
604583

605-
case WizardVisualizationId.TreemapD3:
606-
prepare = prepareD3Treemap;
607-
rowsLimit = 800;
608-
break;
609-
610584
case 'flatTable':
611585
prepare = prepareFlatTableData;
612586
rowsLimit = 100000;

src/server/modes/charts/plugins/datalens/preparers/line/helpers/color-helpers/colorizeByGradient.ts

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -19,11 +19,8 @@ export const colorizeByGradient = (
1919
switch (visualizationId) {
2020
case WizardVisualizationId.Column:
2121
case WizardVisualizationId.Column100p:
22-
case WizardVisualizationId.BarXD3:
2322
case WizardVisualizationId.Bar:
24-
case WizardVisualizationId.Bar100p:
25-
case WizardVisualizationId.BarYD3:
26-
case WizardVisualizationId.BarY100pD3: {
23+
case WizardVisualizationId.Bar100p: {
2724
colorizeColumnAndBarGraphs(options.graphs, options.colorsConfig);
2825
}
2926
}

src/server/modes/charts/plugins/datalens/preparers/line/prepare-line-data.ts

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -550,10 +550,7 @@ export function prepareLineData(args: PrepareFunctionArgs) {
550550
});
551551
}
552552

553-
if (
554-
visualizationId === WizardVisualizationId.Line ||
555-
visualizationId === WizardVisualizationId.LineD3
556-
) {
553+
if (visualizationId === WizardVisualizationId.Line) {
557554
mapAndShapeGraph({
558555
graphs,
559556
shapesConfig,

src/server/modes/charts/plugins/datalens/preparers/pie/gravity-charts.ts

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,12 @@ import type {ChartData, PieSeries, PieSeriesData} from '@gravity-ui/chartkit/gra
22
import merge from 'lodash/merge';
33

44
import type {SeriesExportSettings} from '../../../../../../../shared';
5-
import {formatNumber, getFormatOptions, isMeasureValue} from '../../../../../../../shared';
5+
import {
6+
WizardVisualizationId,
7+
formatNumber,
8+
getFormatOptions,
9+
isMeasureValue,
10+
} from '../../../../../../../shared';
611
import {getFakeTitleOrTitle} from '../../../../../../../shared/modules/fields';
712
import {isHtmlField, isMarkdownField, isMarkupField} from '../../../../../../../shared/types/index';
813
import {getBaseChartConfig} from '../../gravity-charts/utils';
@@ -12,7 +17,7 @@ import {getLegendColorScale} from '../helpers/legend';
1217
import type {PiePoint, PrepareFunctionArgs} from '../types';
1318

1419
import preparePieData from './prepare-pie-data';
15-
import {getFormattedValue, isColoringByMeasure, isDonut} from './utils';
20+
import {getFormattedValue, isColoringByMeasure} from './utils';
1621

1722
type ExtendedPieSeriesData = Omit<PieSeriesData, 'label'> & {
1823
drillDownFilterValue?: string;
@@ -81,7 +86,7 @@ export function prepareD3Pie(args: PrepareFunctionArgs) {
8186
},
8287
};
8388

84-
if (isDonut({visualizationId})) {
89+
if (visualizationId === WizardVisualizationId.Donut) {
8590
seriesConfig.innerRadius = '50%';
8691

8792
if (measure && totals) {

0 commit comments

Comments
 (0)